0 -.OB "VDC-POKE.OBJ,P,W" 1 -; 2 -;DEMO F. BEF/FN-ERWEITERUNG STK 08/97 3 -; 4 - .BA $1300 5 -; 6 - .EQ TSEARCH=$43E2; TOKEN IN TAB AB Y/A SUCHEN 7 - .EQ TSNFIND=$4326; TOKEN NICHT GEFUNDEN 8 - .EQ TSFIND=$43B2; TOKEN GEFUNDEN 9 - .EQ TLIST=$516E; TOKEN LISTEN 10 - .EQ FNEND=$77DA; ENDE FN-AUSWERTUNG 11 - .EQ CHKKET=$7956; TEST AUF ) 12 - .EQ CHRGET=$0380; NAECHSTES ZEICHEN HOLEN 13 - .EQ CHRGOT=$0386; AKTUELLES ZEICHEN HOLEN 14 -; 15 - .EQ ESCTOKEN=$030C; TOKENWANDLUNG 16 - .EQ ESCLIST=$030E; LISTEN 17 - .EQ ESCBEF=$0310; BEFEHL AUSFUEHREN 18 - .EQ ESCFN=$02FC; FUNKTION AUSFUEHREN 19 -; 20 -INIT LDX #5 ;VEKTOREN 21 -INITLOOP LDA VECTAB,X ;INITIAL. 22 - STA ESCTOKEN,X 23 - DEX 24 - BPL INITLOOP 25 - LDA #<(FN) 26 - STA ESCFN 27 - LDA #>(FN) 28 - STA ESCFN+1 29 - RTS 30 -; 31 -TOKEN LDY #<(BEFTAB) ;BEFEHL IN 32 - LDA #>(BEFTAB) ;TAB SU- 33 - JSR TSEARCH ;CHEN 34 - BCS BEFFUND ;GEFUNDEN 35 - LDY #<(FNTAB) ;FUNKTION 36 - LDA #>(FNTAB) ;IN TAB 37 - JSR TSEARCH ;SUCHEN 38 - BCC NOFIND 39 - LDX #$FF ;FNFLAG 40 - BNE VECFUND 41 -NOFIND JSR CHRGOT ;NICHT 42 - JMP TSNFIND ;GEFUNDEN 43 -BEFFUND LDX #$00 ;BEFFLAG 44 -VECFUND JMP TSFIND ;EINTRAGEN 45 -; 46 -LIST BNE FNLIST ;FN O.BEF? 47 - LDX #<(BEFTAB) ;BEFTAB 48 - LDY #>(BEFTAB) ;O. 49 - BNE ALLIST 50 -FNLIST LDX #<(FNTAB) ;FNTAB 51 - LDY #>(FNTAB) 52 -ALLIST STX $24 ;IN $24 53 - STY $25 54 - TAX ;A:TOKEN 55 - JMP TLIST ;AUSGEBEN 56 -; 57 -BEF ASL ;TOKENNR. 58 - TAX ;*2 59 - LDA BEFADR+1,X ;ADR.-1 60 - PHA ;AUF STACK 61 - LDA BEFADR,X 62 - PHA 63 - JMP CHRGET ;AUFRUFEN 64 -; 65 -FN JSR FNEX ;AUSFUEHREN 66 - JSR CHKKET ;)? 67 - JMP FNEND ;STDENDE 68 -FNEX ASL ;TOKENNR. 69 - TAX ;*2 70 - LDA FNADR+1,X ;ADR.-1 71 - PHA ;AUF STACK 72 - LDA FNADR,X 73 - PHA 74 - RTS ;AUFRUFEN 75 -; 76 -;WERTE FUER ESC-VEKTOREN 77 -VECTAB .WO TOKEN,LIST,BEF 78 -; 79 -;ADRESSE DER BEFEHLE 80 -BEFADR .WO RPOKE-1,VPOKE-1 81 -; 82 -;ADRESSE DER FUNKTIONEN 83 -FNADR .WO RPEEK-1,VPEEK-1 84 -; 85 -;LISTE DER BEFEHLE 86 -BEFTAB .TX "RPOKÅVPOKÅ" 87 - .BY 0 88 -;LISTE DER FUNKTIONEN 89 -FNTAB .TX "RPEEËVPEEË" 90 - .BY 0 91 -; 92 -; 93 - .EQ WRITEVDC=$CDCC; A IN VDC-REG X 94 - .EQ READVDC=$CDDA; VDC-REG X IN A 95 - .EQ GETBYTE=$87F4; BYTE NACH X 96 - .EQ GETPAR=$8803; WORD NACH $16, BYTE NACH X 97 - .EQ CHKCOM=$795C; TEST AUF , 98 - .EQ NUMTEST=$77DA; TEST AUF NUMERISCH 99 - .EQ FACWRD=$AF0C; FAC NACH WORD IN $16 U. Y/A 100 - .EQ INTFAC=$AF03; INT IN Y/A NACH FAC 101 - .EQ ILLEGAL=$7D28; ILLEGAL QUANTITY 102 - .EQ BANK15=$A845; ROMS UND I/O EIN 103 - .EQ HELP=$FB ; ZWISCHENSPEICHER 104 - .EQ LOCATION=18; VDCREG FUER VDCRAM-ADRESSE 105 - .EQ DATA=31 ; VDCREG FUER WERT IN/AUS VDCRAM 106 -; 107 -RPOKE JSR GETBYTE ;REGISTER 108 - CPX #37 ;<37? 109 - BCC REGOK ;JA: OK 110 -ILL JMP ILLEGAL ;NEIN: ERROR 111 -REGOK STX HELP ;MERKEN 112 - JSR CHKCOM ;,? 113 - JSR GETBYTE ;WERT 114 - TXA 115 - LDX HELP 116 -WVDC JSR BANK15 ;IO EIN 117 - JMP WRITEVDC ;SCHREIBEN 118 -; 119 -VPOKE JSR GETPAR ;ADR,WERT 120 - TXA ;LESEN 121 - PHA ;WERT MERKEN 122 - LDX #LOCATION ;VDC-RAM 123 - LDA $17 ;ADRESSIEREN 124 - JSR WVDC 125 - INX 126 - LDA $16 127 - JSR WRITEVDC 128 - LDX #DATA ;WERT 129 - PLA ;SCHREIBEN 130 - JMP WRITEVDC 131 -; 132 -RPEEK JSR NUMTEST ;ZAHL? 133 - JSR FACWRD ;FAC->Y/A 134 - CMP #0 ;HIGH=0? 135 - BNE ILL ;NEIN: ERROR 136 -NOHIGH CPY #37 ;LOW<37? 137 - BCS ILL ;NEIN: ERROR 138 - TYA ;Y->X 139 - TAX 140 - JSR BANK15 ;IO EIN 141 -READREG JSR READVDC ;REG LESEN 142 - TAY ;LOW IN Y 143 - LDA #0 ;HIGH=0 144 - JMP INTFAC ;Y/A->FAC 145 -; 146 -VPEEK JSR NUMTEST ;ZAHL? 147 - JSR FACWRD ;FAC->Y/A 148 - LDX #LOCATION ;VDC-RAM 149 - JSR WVDC ;ADRESSIEREN 150 - TYA 151 - INX 152 - JSR WRITEVDC 153 - LDX #DATA ;REGISTER 154 - BNE READREG ;LESEN 155 -.EN