Assemblerlisting fuer den Soft-Reset NEVE2: EQU #1D88 ; Adresse, auf die IND KM TEST BREAK nach ; einem Warmstart initialisiert wird REST: EQU 1004 ; Startadresse nach einem Warmstart, hier ; als Beispiel Warmstart des ASSMON auf 1000 ; Initialisierung ; Verbiegen des Vektors) INIT: LD HL,NEVEC LD (#BDEF),HL ; hier evtl. Text ausgeben RET ; neues IND KM TEST BREAK NEVEC: LD HL,#B63D ; Testen auf SHIFT+CTRL+ESC, wie Original IND BIT 2,(HL) RET Z LD A,C XOR #A0 JP NZ,#1E19 ; auf dieser ROM-Adresse geht es weiter, wenn PUSH BC ; kein SHIFT + CTRL + ESC erkannt wurde INC HL LD B,#A KEYADD: ADC A,(HL) DEC HL DJNZ KEYADD ; das Original ist genauso POP BC CP #A4 JP NZ,#1E19 ; kein SHIFT + CTRL + ESC ; Warmstart LD BC,#7F89 ; einige Baustein-Initialisierungen OUT (C),C DI ; identisch mit ROM LD BC,#F782 OUT (C),C LD BC,#F400 OUT (C),C LD BC,#F600 OUT (C),C LD HL,#5E5 LD BC,#BC0F OUTS: OUT (C),C DEC HL LD A,(HL) INC B OUT (C),A DEC B DEC C JP P,OUTS LD SP,#C000 ; neuer Systemstack LD HL,#681 LD BC,#EE3D ; weiter initialisieren CALL #6A2 ; ROM: Tabelle ausgeben LD DE,MESS ; Systemmeldugsadresse LD HL,NEWST ; Startadresse Vordergrundprogramm JP #61F ; diese ROM-Routine initialisiert das System ; und fuehrt CALL (DE) und JP (HL) aus MESS: LD HL,NEVE2 ; Zeiger auf den zweiten Wert stellen LD (#BDEF),HL ; Ausgabe von Text waere moeglich RET ; dansch startet NEWST NEWST: CALL #B909 ; HI KL L ROM DISABLE, ROM OFF von 0...3FFF LD HL,REST JP (HL)