94 lines
2.4 KiB
Plaintext
94 lines
2.4 KiB
Plaintext
>>>>> Starting pass1...
|
|
Symbol-> X_Lo 0800H (2048)
|
|
Symbol-> X_Hi 0801H (2049)
|
|
Symbol-> Y_Lo 0802H (2050)
|
|
Symbol-> Y_Hi 0803H (2051)
|
|
Symbol-> Z_Lo 0804H (2052)
|
|
Symbol-> Z_Hi 0805H (2053)
|
|
Symbol-> Carry_Lo 0806H (2054)
|
|
Symbol-> Carry_Hi 0807H (2055)
|
|
Label-> ADD16: 0401H
|
|
Label-> ADD16J1: 0417H
|
|
Label-> ADD16J2: 042DH
|
|
Label-> ADD16J3: 043EH
|
|
<<<<< end of pass1
|
|
\ RAM Variables
|
|
0800: ORG 0800H \RAM at 0800h
|
|
DEF X_Lo *1
|
|
DEF X_Hi *1
|
|
DEF Y_Lo *1
|
|
DEF Y_Hi *1
|
|
DEF Z_Lo *1
|
|
DEF Z_Hi *1
|
|
DEF Carry_Lo *1
|
|
DEF Carry_Hi *1
|
|
0400: ORG 0400h
|
|
\
|
|
\ load some numbers
|
|
\
|
|
\ Put numbers in X and Y at 0800H by hand from Control Panel.
|
|
\
|
|
\
|
|
\ 16bit ADD X + Y -> Z + Carry_Hi
|
|
\
|
|
|
|
\
|
|
0400: 00 NOP
|
|
ADD16:
|
|
0401: 0C WAIT
|
|
0402: BC 08 06 STAZ Carry_Lo \Clear lo carry
|
|
0405: A0 08 00 LDAA X_Lo
|
|
0408: A1 08 02 LDAB Y_Lo
|
|
040B: 22 ADD \ADD lo bytes
|
|
040C: 94 08 04 STAC Z_Lo \store partial sum
|
|
040F: 5C 04 17 BRNO ADD16J1: \test OVF bit to see if Carry required
|
|
0412: 98 01 LDIA 01h \must be OVF, set a Carry_Lo
|
|
0414: 84 08 06 STAA Carry_Lo
|
|
ADD16J1:
|
|
0417: BC 08 07 STAZ Carry_Hi \Clear hi carry
|
|
041A: A0 08 01 LDAA X_Hi
|
|
041D: A1 08 03 LDAB Y_Hi
|
|
0420: 22 ADD \ADD hi bytes
|
|
0421: 94 08 05 STAC Z_Hi \store hi partial sum
|
|
0424: 5C 04 2D BRNO ADD16J2:
|
|
0427: A0 00 01 LDAA 01h \might be a hi carry
|
|
042A: 84 08 07 STAA Carry_Hi
|
|
ADD16J2:
|
|
042D: D0 MOVC,A
|
|
042E: A1 08 06 LDAB Carry_Lo \include any lo carry
|
|
0431: 22 ADD
|
|
0432: 94 08 05 STAC Z_Hi
|
|
0435: 5C 04 3E BRNO ADD16J3:
|
|
0438: A0 00 01 LDAA 01h
|
|
043B: 84 08 07 STAA Carry_Hi \which may trigger a hi carry
|
|
ADD16J3:
|
|
\
|
|
043E: 60 04 01 BRA ADD16:
|
|
\
|
|
\ end of ADD16
|
|
|
|
|
|
Labels
|
|
======
|
|
0401: ADD16:
|
|
0417: ADD16J1:
|
|
042D: ADD16J2:
|
|
043E: ADD16J3:
|
|
|
|
Symbols
|
|
======
|
|
X_Lo: 0800
|
|
X_Hi: 0801
|
|
Y_Lo: 0802
|
|
Y_Hi: 0803
|
|
Z_Lo: 0804
|
|
Z_Hi: 0805
|
|
Carry_Lo: 0806
|
|
Carry_Hi: 0807
|
|
|
|
|
|
Constants
|
|
=========
|
|
|
|
0:Errors
|