002
14.01.2017, 14:42 Uhr
maleuma
|
Ich hätte auch noch eine erweiterte Variante, falls Du noch unterscheiden musst zwischen KC85/2, KC85/3 mit CAOS 3.1 und KC85/3 mit CAOS 3.4:
Quellcode: | ; ; Test, welche CAOS-Version vorliegt und abspeichern in Arbeitszelle "VERSION" ; (zur Unterscheidung CAOS 3.1 und CAOS 3.4 wird das Menuewort BASIC im ROM-E ; gesucht, welches unter 4.3 wie beim KC85/4 am Anfang des ROM-E steht, aber ; auf einer anderen Adresse...) ; PA: CY=1 CAOS 3.4 oder hoeher ; A CAOS-Versionsnummer BCD ; VR: AF
KCTEST: LD A,(0E011H) ; Beim ist KC85/4 hier immer BASIC-Menuewort CP 7Fh ; KC 85/4 ? JR NZ,KCT1 SCF ; wir haben CAOS 4.x LD A,(CAOSNR) ; Versionsnummer steht seit CAOS 4.1 immer hier JR KCT4 ; KCT1: PUSH HL ; Beim KC85/3 Suche nach Menuewort "BASIC" PUSH DE ; im ROM E -> dann CAOS 3.4 PUSH BC LD A,7FH ; A = CAOS-Prologbyte LD DE,BASIC ; DE = Vergleichszeichenkette LD HL,0E000h ; HL = Beginn Suchbereich LD BC,100h ; BC = Laenge des Suchbereichs CALL PV1 ; BASIC-Menuewort suchen ab E000h DB ZSUCH ; wenn vorhanden, dann CAOS 3.4 oder hoeher LD A,34h ; CAOS 3.4 melden JR C,KCT3 ; Menuewort gefunden LD HL,0E800H LD (HL),0FFH ; Beim KC85/2 ist hier kein ROM, evtl. aber RAM? LD A,(HL) ; Testen was drin steht in der Speicherzelle INC A LD A,31h ; CAOS 3.1 melden JR NZ,KCT3 LD A,22h ; CAOS 2.2 melden KCT3: POP BC POP DE POP HL KCT4: LD (VERSION),A ; fuer weitere Abfragen hier ablegen RET ; BASIC: DB 'BASIC',0 ; Vergleichskette fuer Suche CAOS 3.4
|
-- Mario. |