*/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
