home *** CD-ROM | disk | FTP | other *** search
- */beginfile BASIC4_asm
- ; --------------------------------------------------------------
- ; BASIC4_asm - BASIC bits
- ; - last modified 27/08/95
- ; QDOS-Amiga sources by Rainer Kowallik
- ; ...some changes by Mark J Swift
- ; --------------------------------------------------------------
- L072C2:
- BP_LET:
- MOVEM.L D4/A0/A3-A5,-(A7)
- MOVE.B 1(A6,A3.L),D0
- ANDI.B #$0F,D0
- SUBQ.B #2,D0
- BGT.S L072EE
- BEQ.S L072F8
- CMPI.B #$03,0(A6,A3.L)
- BEQ.S L072E4
- ADDQ.B #2,D0
- BGT.S L07350
- BRA L07396
- L072E4 ADDQ.B #2,D0
- BGT L073B4
- BRA L073BE
- L072EE MOVEQ #$02,D1
- BSR.S L07308
- ADD.L D1,BV_RIP(A6) ;arith stack
- BRA.S L07330
- L072F8 MOVEQ #$06,D1
- BSR.S L07308
- MOVE.L 2(A6,A1.L),$02(A6,A0.L)
- ADD.L D1,BV_RIP(A6) ;arith stack
- BRA.S L07330
- L07308 MOVE.L 4(A6,A3.L),D4
- BGE.S L07310
- BSR.S L07338
- L07310 MOVEA.L BV_VVBAS(A6),A0 ;variable values
- ADDA.L D4,A0
- MOVEA.L BV_RIP(A6),A1 ;arith stack
- MOVE.W 0(A6,A1.L),0(A6,A0.L)
- L07320 MOVEQ #1,D0
- SUB.B 0(A6,A3.L),D0
- BLT.S L07334
- MOVE.B #2,0(A6,A3.L)
- BRA.S L07334
- L07330 MOVEM.L (A7)+,D4/A0/A3-A5
- L07334 MOVEQ #0,D0
- RTS
- L07338 MOVEM.L A2-A3,-(A7)
- JSR L04DF6(PC) ;*/undomodify BSR L04DF6
- MOVEM.L (A7)+,A2-A3
- MOVE.L A0,D4
- SUB.L BV_VVBAS(A6),D4 ;variable values
- MOVE.L D4,4(A6,A3.L)
- RTS
- L07350 BSR.S L073C6
- ANDI.L #$0000FFFF,D1
- MOVE.L $04(A6,A3.L),D4
- BLT.S L07382
- MOVEA.L BV_VVBAS(A6),A0 ;variable values
- ADDA.L D4,A0
- MOVEQ #$01,D2
- ADD.W 0(A6,A0.L),D2
- BCLR #0,D2
- CMP.W D1,D2
- BEQ.S L07388
- ADDQ.L #2,D2
- MOVEM.L D1/A1/A3,-(A7)
- MOVE.L D2,D1
- JSR L04FE8(PC) ;*/undomodify BSR L04FE8
- MOVEM.L (A7)+,D1/A1/A3
- L07382 ADDQ.L #2,D1
- BSR.S L07338
- SUBQ.L #2,D1
- L07388 BSR.S L073DE
- BSR.S L073EC
- MOVEQ #0,D0
- MOVEQ #0,D2
- BSR.S L07400
- BSR.S L07320
- L07394 BRA.S L07330
- L07396 MOVE.B #1,1(A6,A3.L)
- BSR.S L073C6
- SUBQ.W #1,D5
- ADDQ.W #2,A2
- ADDA.W D5,A2
- MOVEA.L A2,A0
- SUB.W D5,D6
- MOVE.W D6,D2
- BSR L0743C
- ADDQ.W #2,A1
- L073B0 BSR.S L07400
- BRA.S L07394
- L073B4 BSR.S L073C6
- BSR.S L0742C
- BSR.S L073DE
- BSR.S L073EC
- BRA.S L073B0
- L073BE BSR.S L073C6
- BSR.S L0742C
- BSR.S L073DE
- BRA.S L073B0
- L073C6 MOVEA.L BV_RIP(A6),A1 ;arith stack
- MOVEQ #0,D1
- MOVE.W 0(A6,A1.L),D1
- MOVE.W D1,D0
- SWAP D1
- MOVE.W D0,D1
- ADDQ.W #1,D1
- BCLR #0,D1
- RTS
- L073DE MOVEA.L BV_VVBAS(A6),A0 ;variable values
- ADDA.L D4,A0
- MOVEA.L BV_RIP(A6),A1 ;arith stack
- ADDQ.W #2,A1
- RTS
- L073EC MOVE.W -$02(A6,A1.L),0(A6,A0.L)
- CMP.W 0(A6,A0.L),D1
- BCC.S L073FC
- MOVE.W D1,0(A6,A0.L)
- L073FC ADDQ.W #2,A0
- RTS
- L07400 TST.W D1
- L07402 BEQ.S L07412
- MOVE.B 0(A6,A1.L),0(A6,A0.L)
- ADDQ.W #1,A0
- ADDQ.W #1,A1
- SUBQ.W #1,D1
- BRA.S L07402
- L07412 TST.W D2
- L07414 BEQ.S L07422
- MOVE.B #$20,0(A6,A0.L)
- ADDQ.W #1,A0
- SUBQ.W #1,D2
- BRA.S L07414
- L07422 ADDA.W D0,A1
- MOVE.L A1,BV_RIP(A6) ;arith stack
- MOVEQ #0,D0
- RTS
- L0742C MOVEA.L 4(A6,A3.L),A0
- ADDA.L BV_VVBAS(A6),A0 ;variable values
- MOVE.W 6(A6,A0.L),D2
- MOVE.L 0(A6,A0.L),D4
- L0743C MOVE.W D1,D0
- SWAP D1
- CMP.W D2,D1
- BHI.S L0744A
- SUB.W D1,D2
- SUB.W D1,D0
- RTS
- L0744A MOVE.W D2,D1
- SUB.W D2,D0
- MOVEQ #0,D2
- RTS
- L07452 MOVE.B 1(A6,A3.L),D5
- LSR.B #4,D5
- ANDI.B #$0F,1(A6,A3.L)
- ADDQ.W #8,A3
- RTS
- ; --------------------------------------------------------------
- ;*/endfile
-