;----------------- ; PASCAL 1.4 ; ; M-CODE ROUTINEN ; FUER DEN C-64 ; (FETCH.E) ;22.11.1985 ; ORG $4000 ;----------------- ;** KONSTANTEN ** " BNE SONDERF LDA #172 BNE SONDERR SONDER5 CMP #">" BNE SONDER6 LDA AUS+1,X CMP #"=" BNE SONDERF LDA #173 BNE SONDERR SONDER6 CMP #"." BNE SONDER7 LDA AUS+1,X CMP #"." BNE SONDERF LDA #174 BNE SONDERR SONDER7 CMP #"(" BNE SONDERF LDA AUS+1,X CMP #"*" BEQ KOMMENT ; SONDERF ; LDA AUS,X INX DFD $2C ; SONDERR ; INX INX JMP GETS^ ; KOMMENT ;AKTIVE KOMMENTARE ;PRUEFEN: ; INX JSR UHOLE CMP #"$" BNE KOMMENT9 JSR UHOLE CMP #INCLUDE FILE KOMMENT1 CMP #"R" BNE KOMMENT9 ;RANGE CHECK JSR UHOLE LDY #0 CMP #"-" BEQ KOMMENT2 CMP #"+" BNE KOMMENT9 INY KOMMENT2 STY TSTFLG ; KOMMENT8 JSR UHOLE KOMMENT9 CMP #"*" BNE KOMMENT8 LDA AUS+1,X CMP #")" BNE KOMMENT8 INX INX JMP GETS1 ; GETS4 CMP #"A" BCC GETS5 ; ;BEZEICHNER ODER ;WORTSYMBOL: ; STX XREG LDA #128 STA CODE LDY #0 LDA VGL,Y ; WSYM1 AND #$7F WSYM2 CMP AUS,X BEQ WSYM4 BCS WSYM5 WSYM^ LDX XREG WSYM3 INY LDA VGL,Y BPL WSYM3 INC CODE BNE WSYM1 WSYM4 INX INY LDA VGL,Y BPL WSYM2 DEX DEY ;*** GLEICH *** LDA AUS+1,X JSR UTEST BCS WSYM^ INX LDA CODE BNE GETS^ ;***UNGLEICH*** ;BEZEICHNER NACH ;ID KOPIEREN WSYM5 LDX XREG LDA AUS,X LDY #0 BEZ1 CPY # BUCHSTABE ; ODER ZAHL ;----------------- CMP #"[" BCS TEST1 CMP #"0" BCC TEST2 CMP #"A" BCS TEST2 CMP #":" BCC TEST3 TEST1 CLC TEST2 RTS TEST3 SEC RTS ;----------------- UXCHNG ;UMSCHALTUNG ;AUF FILE ".." ;X ENTHAELT INDEX ;AUF NAMEN IN TAB ;----------------- INX STX XREG LDA #1 JSR CLOSE LDA #1 LDX #8 LDY #3 JSR SETLFS LDY #0 LDX XREG ;"....",P,R XCH1 LDA AUS,X CMP # ZEILENENDE ;AM TEXTENDE ;FROM:=0 ;----------------- INC ZNR BNE LESF1 INC ZNR+1 LESF1 LDX #1 JSR CHKIN LDX #0 ; LESF2 JSR CHRIN STA AUS,X INX CPX ZEILENENDE ;255-> TEXTENDE ;----------------- LDA FROM BNE ULESF ; JSR RAMON ; INC ZNR1 BNE LES1 INC ZNR1+1 LES1 LDA ZNR1 STA ZNR LDX ZNR1+1 STX ZNR+1 CMP LAST BNE LES2 CPX LAST+1 BNE LES2 ;**PROGRAMMENDE LDA #255 STA AUS LDA #0 STA AUS+1 BEQ LES4 ; LES2 LDY #0 LES3 LDA (INTEGER,WERT ; IN NUMBER ;AKKU:=254 ;=>REAL,ADRESSE ; IN NUMBER ;XR ENTHAELT DEN ; TEXTZEIGER ;----------------- STX INDEX ;**SETZE ZEIGER: CLC LDA #[AUS ADC INDEX STA ID ;+13 -> TABBEZ[TX] ;+11 -> TX ;(