User`s manual

ISIS-II
8080/8085
MACRO
ASSEMBLER,
X108
SDK85
PAGE
43
LOC
OBJ
071B 21C407
071E 110300
0721
7E
0722
B7
0723
CA
11
06
0726
B9
0727
CA2E07
072A
19
072B
C32107
072E
23
072F
44
0730
4D
0731
C9
0732
37
0733
C9
0734
3AFD20
SEQ
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
SOURCE
STATEMENT
SAVE
LOCATION
CORRESPONDING
TO
THE
REGISTER. THIS
ADDRESS
POINTS
INTO
RTAB.
IF
NO
MATCH
OCCURS,
THEN
THE
REGISTER
IDENTIFIER
IS
ILLEGAL
AND
CONTROL
IS
PASSED
TO
THE
ERROR
ROUTINE.
;
RGADR:
RGA05:
RGA10:
LXI
LXI
MOV
ORA
JZ
CMP
JZ
DAD
JMP
INX
MOV
MOV
RET
H,RTAB
D,RTABS
A,M
A
ERROR
C
RGA10
D
RGA05
H
B,H
C,L
HL
GETS
ADDRESS
OF
TABLE
START
DE
GET
SIZE
OF
A
TABLE
ENTRY
GET
REGISTER
IDENTIFIER
CHECK
FOR
TABLE
END
(IDENTIFIER
IS
0)
IF
AT
END
OF
TABLE,
ARGUMENT
IS
ILLEGAL
ELSE,
COMPARE
TABLE
ENTRY
AND
ARGUMENT
IF
EQUAL,
WE'VE
FOUND
WHAT
WE'RE
LOOKING
FOR
ELSE,
INCREMENT
TABLE
POINTER
TO
NEXT
ENTRY
TRY
AGAIN
IF
A
MATCH,
INCREMENT
TABLE
POINTER
TO
/SAVE
LOCATION
ADDRESS
RETURN
THIS
VALUE
;
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
,
FUNCTION:
SRET
INPUTS:
NONE
OUTPUTS:
CARRY
CALLS:
NOTHING
DESTROYS:
CARRY
DESCRIPTION:
SRET
IS
JUMPED
TO
BY
ROUTINES
WISHING
TO
RETURN
SUCCESS.
;
SRET:
STC
RET
SRET
SETS
THE
CARRY
TRUE
AND
THEN
RETURNS
TO
THE
CALLER
OF
THE
ROUTINE
INVOKING
SRET.
SET
CARRY
TRUE
RETURN
APPROPRIATELY
;
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
,
FUNCTION:
STHFO
INPUTS:
DE
-
16
BI~
ADDRESS
OF
BYTE
TO
BE
STORED
INTO
OUTPUTS:
NONE
CALLS:
STHLF
DESTROYS:
A,B,C,H,L,F/F'S
DESCRIPTION:
STHFO
CHECKS
THE
HALF
BYTE
FLAG
IN
TEMP
TO
SEE
IF
IT
IS
SET
TO
LOWER.
IF
SO,
STHFO
STORES
A 0
TO
PAD
OUT
THE
LOWER
HALF
OF
THE
ADDRESSED
BYTE;
OTHERWISE,
THE
ROUTINE
TAKES
NO
ACTION.
;
STHFO:
LDA
TEMP
GET
HALF
BYTE
FLAG