* * GAME09 interpreter * ifp1 use defsfile endc nam Game09 ttl Game09 tylg set Prgrm+Objct atrv set ReEnt+rev rev set $01 edition set 1 mod eom,name,tylg,atrv,start,size org 0 dpage rmb $96 DP00 equ $00 DP42 equ $42 DP46 equ $46 DP4A equ $4A DP4B equ $4B DP4E equ $4E DP4F equ $4F DP50 equ $50 DP52 equ $52 DP58 equ $58 DP7E equ $7E DP82 equ $82 DP83 equ $83 DP84 equ $84 DP86 equ $86 DP88 equ $88 DP8A equ $8A DP8C equ $8C DP8D equ $8D DP8E equ $8E DP94 equ $94 DPWORK rmb 2 DPSTK rmb 2 linebuf rmb 256 program rmb 10000 size equ . name fcs "Game09" fcb edition start * clrb * os9 F$Exit LC000 BRA LC005 LC002 NOP LC003 BRA LC014 LC005 TFR U,D TFR A,DP STU LC63F,PCR LBSR LC165 LC032 LBSR LC370 BCS LC06D STX <$42 LBSR LC1D3 BEQ LC024 LC03E BSR LC09C LC040 BMI LC024 STX <$42 LC044 LEAX +$02,X LDA ,X+ CMPA #$20 BNE LC05B LBSR LC1D3 BNE LC05F LEAX +$01,X TST ,X BRA LC040 LC057 LDS OPCMD,PCR LC680 LDX ,Y BMI LC6E7 CMPX ,S BEQ LC68C LEAY +$05,Y BRA LC680 LC68C LEAY +$03,Y LEAS +$02,S LDX ,S LDA -$01,Y BEQ LC6C3 PSHS Y,A LDA #$20 LC69A CMPA ,X+ BEQ LC69A LDA ,-X STX +$03,S LC6A2 BITA #$DF BEQ LC6B0 CMPA #$2C BEQ LC6AE BSR LC6C9 BRA LC6B3 LC6AE LEAX +$01,X LC6B0 LDD #$FFFF LC6B3 PSHU B,A LDA ,X DEC ,S BNE LC6A2 LDD +$03,S STX +$03,S TFR D,X PULS Y,A LC6C3 LDD ,Y JSR D,Y PULS PC,U,X LC6C9 LBSR LC521 LC6CC PSHS B LDB ,X BITB #$DF BEQ LC6E5 CMPB #$2C BEQ LC6E3 CMPB #$29 BEQ LC6E3 PULS B LBSR LC29C BRA LC6CC LC6E3 LEAX +$01,X LC6E5 PULS PC,B LC6E7 PULS U,X,B,A LBRA LC4F9 LC6EC LEAX +$01,X LDB ,X+ LC6F0 LDA ,X+ BEQ LC6F8 CMPA #$22 BNE LC6F0 LC6F8 CLRA RTS GETCH LDA #0 PSHS B LEAX ,S LDY #1 OS9 I$Read PULS B BCS GETCH OUTCH PSHS B LEAX ,S LDA #1 LDY #1 OS9 I$Write PULS B,PC SENSE LDA #0 LDB #SS.Ready OS9 i$GetStt RTS * COMMAND TABLE CONSIST.... * COMMAND NAME (2 BYTE) * PARAMETER COUNT (1 BYTE) * OFSET TO SUBROUTIE FROM HERE (1 WORD) ************************** OPCMD FCB 'A','T',2 START LINE,STEP FDB CAUTO-* FCB 'R','N',3 RENUM first line no,inc,renum start FDB RENUM-* * FCB 'R','D',3 DISK READ address,track,sector * FDB GETDK-* * FCB 'W','R',3 DISK WRITE * FDB PUTDK-* FCB 'S','Y',0 TO SYSTEM FDB SYSTEM-* FDB -1,-1,-1,-1,-1,-1 ************************* RENUM LDD ,U++ BPL LC762 CLRA CLRB LC762 STD <$4A LBSR LC09C BMI LC789 LDD ,U++ BPL LC770 LDD #$00A LC770 LDY ,U++ BPL LC779 LDY #LC3E8 LC779 STY ,X++ LBSR LC173 LEAY D,Y LC781 TST ,X+ BNE LC781 TST ,X BPL LC779 LC789 RTS CAUTO LDD ,U++ BPL LC791 LDD #$00A LC791 STD <$8A LDD ,U BEQ LC79E BPL LC79C LDD #LC3E8 LC79C STD <$88 LC79E CLR <$8C RTS BSR LC7B6 * LBSR LCD09 BNE LC7B1 RTS BSR LC7B6 * LBSR LCD0C BNE LC7B1 RTS LC7B1 LDA #$44 LBRA LC4F9 LC7B6 LDX +$04,U LDA +$03,U LDB +$01,U RTS SYSTEM clrb os9 F$Exit rts emod eom equ * end