
responsible
for
saving
the
first
two
parameters
before
calling
$AT.
For
example,
if
a
subroutine
expects
5
parameters,
it should
look
like:
P1:
P2:
P3:
SHLD
XCHG
SHLD
MVI
LXI
CALL
P1
P2
A,3
H,P3
$AT
;SAVE
PARAMETER
1
;SAVE
PARAMETER
2
;NO. OF PARAMETERS
LEFT
;POINTER
TO LOCAL
AREA
;TRANSFER
THE OTHER
3 PARAMETERS
•
[Body of subroutine]
•
RET
OS
OS
OS
;RETURN
TO CALLER
;SPACE FOR PARAMETER
1
;SPACE
FOR PARAMETER
2
;SPACE FOR PARAMETERS
3-5
00100
00200
00300
00400
00500
00600
00700
00800
00900
01000
01100
01200
01300
01400
01500
01600
01700
01800
01900
02000
02100
02200
02300
.
,
i[B,C]
; (H,L]
; [A]
ARGUMENT
TRANSFER
POINTS
TO
3RO PARAM.
POINTS
TO LOCAL
STORAGE
FOR PA.~
3
CONTAINS
THE
i
OF PARAMS
TO XFER (TOTAL-2)
ENTRY
$AT
$AT:
XCHG
MOV
H,B
MOV
L,C
AT1 :
MOV
C,M
L,'nC
H
MOV
B,M
INX
H
XCHG
MOV
M,C
INX
B
MOV
M,B
INX
B
XCHG
OCR
A
JNZ
AT1
RET
i[B,C]
=
PARAM
ADR
i[H,L]
POINTS
TO LOCAL
STORAGE
iSTORE PARAM
IN LOCAL
AREA
iSINCE GOING
BACK
TO AT1
;TRANSFERRED
ALL
PA.~S?
iNO,
COpy MORE
;YES,
RETURN
Summary of Contents for Basic Interpreter Basic 80
Page 1: ...5IA iC intc tit tcl c t ...
Page 2: ......
Page 6: ... ...
Page 10: ......
Page 26: ......
Page 33: ...2 5 Intentially left blank ...
Page 37: ...BASIC SO COMMANDS AND STATEMENTS 2 9 Intentially left blank ...
Page 112: ......
Page 136: ......
Page 140: ......
Page 160: ......
Page 165: ......
Page 166: ......
Page 174: ......
Page 176: ......
Page 182: ......
Page 184: ......
Page 190: ......