Compucolor.org – Virtual Media

Listing of file='APP5.DOC;01' on disk='vmedia/asmtut_disk4-sector.ccvf'

### Disk Sector 197 ###
00: 3c 00 3c 00 05 00 00 00 80 25 01 00 08 0e 14 ff   <.<......%......
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
20: ff 00 ff 00 00 00 00 00 ff 00 00 00 00 00 00 00   ................
30: 00 00 00 00 00 00 00 ff 00 00 00 00 00 00 84 00   ................
40: 11 41 53 53 45 4d 42 4c 59 20 4c 41 4e 47 55 41   .ASSEMBLY LANGUA
50: 47 45 20 54 55 54 4f 52 49 41 4c 20 53 45 52 49   GE TUTORIAL SERI
60: 45 53 0d 10 11 09 41 70 70 65 6e 64 69 78 20 20   ES....Appendix
70: 20 23 35 20 20 20 20 55 74 69 6c 69 74 79 20 52    #5    Utility R
### Disk Sector 198 ###
00: 6f 75 74 69 6e 65 73 0d 2a 2a 2a 2a 2a 2a 2a 2a   outines.********
10: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   ****************
20: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   ****************
30: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   ****************
40: 2a 2a 2a aa 4d 4f 56 44 48 3a 09 09 3b 52 4f 4d   ***.MOVDH:..;ROM
50: 20 52 4f 55 54 49 4e 45 20 54 4f 20 4d 4f 56 45    ROUTINE TO MOVE
60: 20 42 20 42 59 54 45 53 20 46 52 4f 4d 20 48 4c    B BYTES FROM HL
70: 20 54 4f 20 44 45 0d 09 09 3b 3c 42 3e 20 48 4f    TO DE...;<B> HO
### Disk Sector 199 ###
00: 4c 44 53 20 23 20 42 59 54 45 53 20 54 4f 20 42   LDS # BYTES TO B
10: 45 20 4d 4f 56 45 44 0d 09 09 3b 3c 48 4c 3e 20   E MOVED...;<HL>
20: 49 53 20 4c 4f 57 45 53 54 20 41 44 44 52 20 4f   IS LOWEST ADDR O
30: 46 20 53 45 43 54 49 4f 4e 20 54 4f 20 42 45 20   F SECTION TO BE
40: 4d 4f 56 45 44 0d 09 09 3b 3c 44 45 3e 20 49 53   MOVED...;<DE> IS
50: 20 44 49 54 54 4f 09 09 09 54 4f 20 52 45 43 45    DITTO...TO RECE
60: 49 56 45 0d 09 4d 4f 56 09 41 2c 4d 09 3b 46 45   IVE..MOV.A,M.;FE
70: 54 43 48 20 43 4f 4e 54 45 4e 54 53 20 54 4f 20   TCH CONTENTS TO
### Disk Sector 200 ###
00: 42 45 20 4d 4f 56 45 44 0d 09 53 54 41 58 09 44   BE MOVED..STAX.D
10: 09 3b 53 54 4f 52 45 20 43 4f 4e 54 45 4e 54 53   .;STORE CONTENTS
20: 20 49 4e 20 4e 45 57 20 4c 4f 43 41 54 49 4f 4e    IN NEW LOCATION
30: 0d 09 44 43 52 09 42 09 3b 44 45 43 52 45 4d 45   ..DCR.B.;DECREME
40: 4e 54 20 43 4f 55 4e 54 45 52 0d 09 52 5a 09 09   NT COUNTER..RZ..
50: 3b 49 46 20 43 4f 55 4e 54 45 52 20 3d 20 30 2c   ;IF COUNTER = 0,
60: 54 48 45 4e 20 52 45 54 55 52 4e 0d 09 49 4e 58   THEN RETURN..INX
70: 09 48 09 3b 4f 54 48 45 52 57 49 53 45 2c 20 41   .H.;OTHERWISE, A
### Disk Sector 201 ###
00: 44 56 41 4e 43 45 20 46 52 4f 4d 20 50 4f 49 4e   DVANCE FROM POIN
10: 54 45 52 0d 09 49 4e 58 09 44 09 3b 41 44 56 41   TER..INX.D.;ADVA
20: 4e 43 45 20 54 4f 20 50 4f 49 4e 54 45 52 0d 09   NCE TO POINTER..
30: 4a 4d 50 09 4d 4f 56 44 48 09 3b 43 4f 4e 54 49   JMP.MOVDH.;CONTI
40: 4e 55 45 20 54 52 41 4e 53 46 45 52 0d 2a 2a 2a   NUE TRANSFER.***
50: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   ****************
60: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   ****************
70: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   ****************
### Disk Sector 202 ###
00: 2a 2a 2a 2a 2a 2a 2a 2a aa 4d 4f 56 45 41 44 3a   ********.MOVEAD:
10: 09 09 3b 4d 4f 56 45 20 4d 4f 52 45 20 54 48 41   ..;MOVE MORE THA
20: 4e 20 30 46 46 48 20 42 59 54 45 53 20 46 52 4f   N 0FFH BYTES FRO
30: 4d 20 48 4c 0d 09 09 3b 54 4f 20 44 45 0d 09 09   M HL...;TO DE...
40: 3b 3c 48 4c 3e 20 49 53 20 4c 4f 57 45 53 54 20   ;<HL> IS LOWEST
50: 41 44 44 52 20 46 52 4f 4d 0d 09 09 3b 3c 44 45   ADDR FROM...;<DE
60: 3e 20 49 53 20 4c 4f 57 45 53 54 20 41 44 44 52   > IS LOWEST ADDR
70: 20 54 4f 0d 09 09 3b 3c 42 43 3e 20 49 53 20 4c    TO...;<BC> IS L
### Disk Sector 203 ###
00: 41 53 54 20 41 44 44 52 20 46 52 4f 4d 0d 09 4d   AST ADDR FROM..M
10: 4f 56 09 41 2c 4d 09 3b 46 45 54 43 48 20 43 4f   OV.A,M.;FETCH CO
20: 4e 54 45 4e 54 53 20 54 4f 20 42 45 20 4d 4f 56   NTENTS TO BE MOV
30: 45 44 0d 09 53 54 41 58 09 44 09 3b 53 54 4f 52   ED..STAX.D.;STOR
40: 45 20 43 4f 4e 54 45 4e 54 53 20 49 4e 20 4e 45   E CONTENTS IN NE
50: 57 20 4c 4f 43 41 54 49 4f 4e 0d 09 4d 4f 56 09   W LOCATION..MOV.
60: 41 2c 48 09 3b 46 45 54 43 48 20 48 49 47 48 20   A,H.;FETCH HIGH
70: 50 4f 52 54 49 4f 4e 20 4f 46 20 46 52 4f 4d 20   PORTION OF FROM
### Disk Sector 204 ###
00: 41 44 44 52 0d 09 43 4d 50 09 42 09 3b 49 53 20   ADDR..CMP.B.;IS
10: 46 52 4f 4d 20 50 41 47 45 20 3d 20 50 41 47 45   FROM PAGE = PAGE
20: 20 4c 49 4d 49 54 3f 0d 09 4a 4e 5a 09 4d 4f 56    LIMIT?..JNZ.MOV
30: 41 44 31 09 3b 4e 4f 2c 20 43 4f 4e 54 49 4e 55   AD1.;NO, CONTINU
40: 45 20 54 52 41 4e 53 46 45 52 0d 09 4d 4f 56 09   E TRANSFER..MOV.
50: 41 2c 4c 09 3b 59 45 53 2c 46 45 54 43 48 20 4c   A,L.;YES,FETCH L
60: 4f 57 20 50 4f 52 54 49 4f 4e 20 4f 46 20 46 52   OW PORTION OF FR
70: 4f 4d 20 41 44 44 52 0d 09 43 4d 50 09 43 09 3b   OM ADDR..CMP.C.;
### Disk Sector 205 ###
00: 49 53 20 46 52 4f 4d 20 4c 4f 57 20 3d 20 4c 4f   IS FROM LOW = LO
10: 57 20 41 44 44 52 20 4c 49 4d 49 54 3f 0d 09 52   W ADDR LIMIT?..R
20: 5a 09 09 3b 59 45 53 2c 20 52 45 54 55 52 4e 20   Z..;YES, RETURN
30: 54 4f 20 43 41 4c 4c 49 4e 47 20 50 52 4f 47 52   TO CALLING PROGR
40: 41 4d 0d 4d 4f 56 41 44 31 3a 09 49 4e 58 09 48   AM.MOVAD1:.INX.H
50: 09 3b 4e 4f 2c 20 41 44 56 41 4e 43 45 20 46 52   .;NO, ADVANCE FR
60: 4f 4d 20 50 4f 49 4e 54 45 52 0d 09 49 4e 58 09   OM POINTER..INX.
70: 44 09 3b 41 44 56 41 4e 43 45 20 54 4f 20 50 4f   D.;ADVANCE TO PO
### Disk Sector 206 ###
00: 49 4e 54 45 52 0d 09 4a 4d 50 09 4d 4f 56 45 41   INTER..JMP.MOVEA
10: 44 09 3b 43 4f 4e 54 49 4e 55 45 20 57 49 54 48   D.;CONTINUE WITH
20: 20 4e 45 58 54 20 54 52 41 4e 53 46 45 52 0d 2a    NEXT TRANSFER.*
30: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   ****************
40: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   ****************
50: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   ****************
60: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a aa 46 49 4c 4d 45   **********.FILME
70: 4d 3a 09 09 3b 46 49 4c 4c 53 20 4d 45 4d 4f 52   M:..;FILLS MEMOR
### Disk Sector 207 ###
00: 59 20 42 4c 4f 43 4b 20 57 49 54 48 20 41 20 43   Y BLOCK WITH A C
10: 4f 4e 53 54 41 4e 54 0d 09 09 3b 42 4c 4f 43 4b   ONSTANT...;BLOCK
20: 20 53 49 5a 45 20 28 31 2d 32 35 36 29 20 49 4e    SIZE (1-256) IN
30: 20 3c 42 3e 0d 09 09 3b 3c 48 4c 3e 20 49 53 20    <B>...;<HL> IS
40: 4c 4f 57 45 53 54 20 41 44 44 52 20 4f 46 20 42   LOWEST ADDR OF B
50: 4c 4f 43 4b 0d 09 09 3b 43 4f 4e 53 54 41 4e 54   LOCK...;CONSTANT
60: 20 49 53 20 44 45 46 49 4e 45 44 20 45 4c 53 45    IS DEFINED ELSE
70: 57 48 45 52 45 20 42 59 20 41 4e 20 45 51 55 0d   WHERE BY AN EQU.
### Disk Sector 208 ###
00: 09 4d 56 49 09 4d 2c 43 4f 4e 53 54 41 4e 54 09   .MVI.M,CONSTANT.
10: 3b 46 49 4c 4c 20 42 59 54 45 20 41 54 20 3c 48   ;FILL BYTE AT <H
20: 4c 3e 20 57 49 54 48 20 43 4f 4e 53 54 41 4e 54   L> WITH CONSTANT
30: 0d 09 44 43 52 09 42 09 09 3b 44 45 43 52 45 4d   ..DCR.B..;DECREM
40: 45 4e 54 20 54 48 45 20 43 4f 55 4e 54 45 52 0d   ENT THE COUNTER.
50: 09 52 5a 09 09 09 3b 49 46 20 43 4f 55 4e 54 45   .RZ...;IF COUNTE
60: 52 20 3d 20 30 2c 20 54 48 45 4e 20 44 4f 4e 45   R = 0, THEN DONE
70: 0d 09 49 4e 58 09 48 09 09 3b 4f 54 48 45 52 57   ..INX.H..;OTHERW
### Disk Sector 209 ###
00: 49 53 45 20 41 44 56 41 4e 43 45 20 4d 45 4d 4f   ISE ADVANCE MEMO
10: 52 59 20 50 4f 49 4e 54 45 52 0d 09 4a 4d 50 09   RY POINTER..JMP.
20: 46 49 4c 4d 45 4d 09 09 3b 41 4e 44 20 43 4f 4e   FILMEM..;AND CON
30: 54 49 4e 55 45 20 46 49 4c 4c 49 4e 47 0d 2a 2a   TINUE FILLING.**
40: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   ****************
50: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   ****************
60: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   ****************
70: 2a 2a 2a 2a 2a 2a 2a 2a 2a aa 4c 4d 54 43 48 4b   *********.LMTCHK
### Disk Sector 210 ###
00: 3a 09 09 3b 43 48 45 43 4b 53 20 46 4f 52 20 42   :..;CHECKS FOR B
10: 59 54 45 20 57 49 54 48 49 4e 20 4c 49 4d 49 54   YTE WITHIN LIMIT
20: 53 20 53 55 43 48 20 41 53 0d 09 09 3b 41 53 43   S SUCH AS...;ASC
30: 49 49 20 55 50 50 45 52 20 43 41 53 45 2e 0d 09   II UPPER CASE...
40: 09 3b 52 45 54 55 52 4e 53 20 57 49 54 48 20 43   .;RETURNS WITH C
50: 20 46 4c 41 47 20 49 4e 44 49 43 41 54 49 4e 47    FLAG INDICATING
60: 20 52 45 53 55 4c 54 0d 09 43 50 49 09 4c 4f 57    RESULT..CPI.LOW
70: 45 52 09 3b 49 53 20 44 41 54 41 20 42 59 54 45   ER.;IS DATA BYTE
### Disk Sector 211 ###
00: 20 4c 45 53 53 20 54 48 41 4e 20 4c 4f 57 45 52    LESS THAN LOWER
10: 20 4c 49 4d 49 54 0d 09 52 43 09 09 3b 59 45 53    LIMIT..RC..;YES
20: 2c 20 4e 4f 54 20 49 4e 20 4c 49 4d 49 54 53 2c   , NOT IN LIMITS,
30: 20 52 45 54 55 52 4e 20 57 49 54 48 20 43 3d 31    RETURN WITH C=1
40: 0d 09 43 50 49 09 55 50 50 45 52 09 3b 49 53 20   ..CPI.UPPER.;IS
50: 44 41 54 41 20 42 59 54 45 20 47 52 45 41 54 45   DATA BYTE GREATE
60: 52 20 54 48 41 4e 20 55 50 50 45 52 20 4c 49 4d   R THAN UPPER LIM
70: 49 54 0d 09 43 4d 43 09 09 3b 49 46 20 53 4f 20   IT..CMC..;IF SO
### Disk Sector 212 ###
00: 52 45 54 55 52 4e 20 57 49 54 48 20 43 3d 31 2e   RETURN WITH C=1.
10: 20 4f 54 48 45 52 57 49 53 45 2c 0d 09 52 45 54    OTHERWISE,..RET
20: 09 09 3b 42 59 54 45 20 49 53 20 49 4e 20 4c 49   ..;BYTE IS IN LI
30: 4d 49 54 53 2c 20 52 45 54 55 52 4e 20 57 49 54   MITS, RETURN WIT
40: 48 20 43 3d 30 0d 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   H C=0.**********
50: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   ****************
60: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   ****************
70: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   ****************
### Disk Sector 213 ###
00: 2a aa 53 31 4f 55 54 3a 09 09 3b 52 4f 4d 20 52   *.S1OUT:..;ROM R
10: 4f 55 54 49 4e 45 0d 09 09 3b 53 45 4e 44 53 20   OUTINE...;SENDS
20: 41 20 42 59 54 45 20 54 4f 20 54 48 45 20 53 45   A BYTE TO THE SE
30: 52 49 41 4c 20 50 4f 52 54 20 57 49 54 48 0d 09   RIAL PORT WITH..
40: 09 3b 48 41 4e 44 53 48 41 4b 45 20 4f 46 20 53   .;HANDSHAKE OF S
50: 4f 52 54 53 2e 20 42 59 54 45 20 4d 55 53 54 20   ORTS. BYTE MUST
60: 42 45 20 49 4e 20 3c 45 3e 20 41 4e 44 0d 09 09   BE IN <E> AND...
70: 3b 59 4f 55 20 55 53 55 41 4c 4c 59 0d 09 09 3b   ;YOU USUALLY...;
### Disk Sector 214 ###
00: 4e 45 45 44 20 54 4f 20 50 52 45 53 45 52 56 45   NEED TO PRESERVE
10: 20 3c 41 3e 20 42 45 46 4f 52 45 20 43 41 4c 4c    <A> BEFORE CALL
20: 49 4e 47 20 42 59 20 50 4f 50 0d 09 09 3b 50 53   ING BY POP...;PS
30: 57 0d 09 49 4e 09 30 33 48 09 3b 52 45 41 44 20   W..IN.03H.;READ
40: 53 54 41 54 55 53 20 4f 4e 20 54 4d 53 20 35 35   STATUS ON TMS 55
50: 30 31 0d 09 41 4e 49 09 31 30 48 09 3b 58 4d 49   01..ANI.10H.;XMI
60: 54 20 42 55 46 46 45 52 20 45 4d 50 54 59 3f 0d   T BUFFER EMPTY?.
70: 09 4a 5a 09 53 31 4f 55 54 09 3b 4e 4f 0d 09 49   .JZ.S1OUT.;NO..I
### Disk Sector 215 ###
00: 4e 09 30 31 48 09 3b 43 4c 45 41 52 20 54 4f 20   N.01H.;CLEAR TO
10: 53 45 4e 44 20 4f 4b 3f 0d 09 41 4e 49 09 38 30   SEND OK?..ANI.80
20: 48 09 3b 0d 09 4a 5a 09 53 31 4f 55 54 09 3b 4e   H.;..JZ.S1OUT.;N
30: 4f 0d 09 4d 4f 56 09 41 2c 45 09 3b 53 45 4e 44   O..MOV.A,E.;SEND
40: 20 49 54 0d 09 4f 55 54 09 30 36 48 09 3b 4f 55    IT..OUT.06H.;OU
50: 54 0d 09 52 45 54 0d 2a 2a 2a 2a 2a 2a 2a 2a 2a   T..RET.*********
60: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   ****************
70: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   ****************
### Disk Sector 216 ###
00: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   ****************
10: 2a 2a aa 53 41 56 45 3a 09 09 3b 52 4f 4d 20 52   **.SAVE:..;ROM R
20: 4f 55 54 49 4e 45 20 54 4f 20 53 41 56 45 20 41   OUTINE TO SAVE A
30: 4c 4c 20 52 45 47 49 53 54 45 52 53 0d 09 09 3b   LL REGISTERS...;
40: 43 41 4c 4c 45 44 20 4f 4e 20 45 4e 54 52 59 20   CALLED ON ENTRY
50: 54 4f 20 41 4e 59 20 53 55 42 52 4f 55 54 49 4e   TO ANY SUBROUTIN
60: 45 0d 09 09 3b 53 41 56 45 53 20 41 4c 4c 20 52   E...;SAVES ALL R
70: 45 47 49 53 54 45 52 53 20 41 4e 44 20 57 48 45   EGISTERS AND WHE
### Disk Sector 217 ###
00: 4e 20 53 55 42 52 4f 55 54 49 4e 45 0d 09 09 3b   N SUBROUTINE...;
10: 52 45 54 27 53 2c 20 52 45 53 54 4f 52 45 53 20   RET'S, RESTORES
20: 54 48 45 4d 20 41 4c 4c 20 41 55 54 4f 4d 41 54   THEM ALL AUTOMAT
30: 49 43 41 4c 4c 59 0d 0d 09 58 54 48 4c 09 09 3b   ICALLY...XTHL..;
40: 53 41 56 45 20 48 4c 20 57 48 49 4c 45 20 4c 4f   SAVE HL WHILE LO
50: 41 44 49 4e 47 20 41 44 44 52 45 53 53 0d 09 50   ADING ADDRESS..P
60: 55 53 48 09 44 09 3b 54 4f 20 52 45 53 54 4f 52   USH.D.;TO RESTOR
70: 45 20 45 58 45 43 55 54 49 4f 4e 20 41 54 0d 09   E EXECUTION AT..
### Disk Sector 218 ###
00: 50 55 53 48 09 42 09 3b 54 48 45 4e 20 53 41 56   PUSH.B.;THEN SAV
10: 45 20 41 4c 4c 20 52 45 47 49 53 54 45 52 53 0d   E ALL REGISTERS.
20: 09 50 55 53 48 09 50 53 57 09 3b 41 4e 44 20 53   .PUSH.PSW.;AND S
30: 54 41 54 55 53 0d 09 43 41 4c 4c 09 4a 4d 50 48   TATUS..CALL.JMPH
40: 4c 09 3b 50 55 53 48 20 24 2b 33 20 41 53 20 52   L.;PUSH $+3 AS R
50: 45 54 55 52 4e 20 41 44 44 52 45 53 53 0d 09 50   ETURN ADDRESS..P
60: 4f 50 09 50 53 57 09 3b 41 4e 44 20 52 45 53 55   OP.PSW.;AND RESU
70: 4d 45 20 45 58 45 43 55 54 49 4f 4e 20 4f 46 20   ME EXECUTION OF
### Disk Sector 219 ###
00: 43 41 4c 4c 45 52 0d 09 50 4f 50 09 42 09 3b 54   CALLER..POP.B.;T
10: 48 45 4e 20 52 45 53 54 4f 52 45 20 41 4c 4c 20   HEN RESTORE ALL
20: 52 45 47 49 53 54 45 52 53 0d 09 50 4f 50 09 44   REGISTERS..POP.D
30: 09 3b 41 4e 44 20 53 54 41 54 55 53 0d 09 50 4f   .;AND STATUS..PO
40: 50 09 48 0d 09 45 49 09 09 3b 53 41 56 45 20 49   P.H..EI..;SAVE I
50: 53 20 55 53 55 41 4c 4c 59 20 55 53 45 44 20 49   S USUALLY USED I
60: 4e 20 53 45 52 56 49 43 49 4e 47 0d 09 52 45 54   N SERVICING..RET
70: 09 09 3b 49 4e 54 45 52 52 55 50 54 53 0d 4a 4d   ..;INTERRUPTS.JM
### Disk Sector 220 ###
00: 50 48 4c 3a 09 50 43 48 4c 09 09 3b 4a 4d 50 20   PHL:.PCHL..;JMP
10: 54 48 52 55 20 48 45 52 45 20 54 4f 20 52 4f 55   THRU HERE TO ROU
20: 54 49 4e 45 0d 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   TINE.***********
30: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   ****************
40: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   ****************
50: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   ****************
60: aa 42 4e 32 44 45 43 3a 09 09 09 3b 43 4f 4e 56   .BN2DEC:...;CONV
70: 45 52 54 20 31 36 20 42 49 4e 41 52 59 20 42 49   ERT 16 BINARY BI
### Disk Sector 221 ###
00: 54 53 20 54 4f 20 42 43 44 20 35 20 44 49 47 49   TS TO BCD 5 DIGI
10: 54 0d 09 09 09 3b 41 53 43 49 49 0d 09 09 09 3b   T....;ASCII....;
20: 42 49 4e 41 52 59 20 42 49 54 53 20 41 52 45 20   BINARY BITS ARE
30: 49 4e 20 44 45 20 4f 4e 20 45 4e 54 52 59 20 41   IN DE ON ENTRY A
40: 4e 44 20 54 48 45 a0 09 09 09 3b 46 49 56 45 20   ND THE....;FIVE
50: 42 43 44 20 44 49 47 49 54 53 20 41 52 45 20 53   BCD DIGITS ARE S
60: 54 4f 52 45 44 20 49 4e 20 54 48 45 20 35 0d 09   TORED IN THE 5..
70: 09 09 3b 4c 4f 43 41 54 49 4f 4e 53 20 43 4f 4d   ..;LOCATIONS COM
### Disk Sector 222 ###
00: 4d 45 4e 43 49 4e 47 20 41 54 20 27 44 45 43 44   MENCING AT 'DECD
10: 49 47 27 0d 09 4c 58 49 20 48 2c 44 45 43 44 49   IG'..LXI H,DECDI
20: 47 09 3b 53 45 54 20 55 50 20 50 4f 49 4e 54 45   G.;SET UP POINTE
30: 52 0d 09 43 41 4c 4c 09 53 41 56 45 09 09 3b 52   R..CALL.SAVE..;R
40: 4f 55 54 49 4e 45 20 55 53 45 53 20 41 4c 4c 20   OUTINE USES ALL
50: 52 45 47 49 53 54 45 52 53 0d 09 58 43 48 47 09   REGISTERS..XCHG.
60: 09 09 3b 42 49 54 53 20 49 4e 20 48 4c 2c 20 44   ..;BITS IN HL, D
70: 45 20 49 53 20 50 4f 49 4e 54 45 52 0d 09 4c 58   E IS POINTER..LX
### Disk Sector 223 ###
00: 49 20 42 2c 2d 31 30 30 30 30 09 3b 47 45 54 20   I B,-10000.;GET
10: 4c 45 46 54 4d 4f 53 54 20 44 49 47 49 54 0d 09   LEFTMOST DIGIT..
20: 43 41 4c 4c 20 44 45 43 4e 4f 0d 09 4c 58 49 20   CALL DECNO..LXI
30: 42 2c 2d 31 30 30 30 09 3b 4e 45 58 54 20 44 49   B,-1000.;NEXT DI
40: 47 49 54 0d 09 43 41 4c 4c 20 44 45 43 4e 4f 0d   GIT..CALL DECNO.
50: 09 4c 58 49 20 42 2c 2d 31 30 30 09 3b 41 47 41   .LXI B,-100.;AGA
60: 49 4e 0d 09 43 41 4c 4c 20 44 45 43 4e 4f 0d 09   IN..CALL DECNO..
70: 4c 58 49 20 42 2c 2d 31 30 09 3b 32 6e 64 20 46   LXI B,-10.;2nd F
### Disk Sector 224 ###
00: 52 4f 4d 20 52 49 47 48 54 0d 09 43 41 4c 4c 20   ROM RIGHT..CALL
10: 44 45 43 4e 4f 0d 09 4d 4f 56 09 41 2c 4c 09 3b   DECNO..MOV.A,L.;
20: 52 45 4d 41 49 4e 44 45 52 20 3d 20 52 49 47 48   REMAINDER = RIGH
30: 54 4d 4f 53 54 20 44 49 47 49 54 0d 09 41 44 49   TMOST DIGIT..ADI
40: 09 33 30 48 09 3b 54 4f 20 41 53 43 49 49 0d 09   .30H.;TO ASCII..
50: 53 54 41 58 09 44 09 3b 26 20 53 54 4f 52 45 44   STAX.D.;& STORED
60: 0d 09 52 45 54 0d 44 45 43 4e 4f 3a 09 4d 56 49   ..RET.DECNO:.MVI
70: 09 41 2c 33 30 48 09 3b 41 53 43 49 49 20 30 0d   .A,30H.;ASCII 0.
### Disk Sector 225 ###
00: 09 50 55 53 48 09 44 09 3b 53 54 41 43 4b 20 44   .PUSH.D.;STACK D
10: 45 43 44 49 47 20 50 4f 49 4e 54 45 52 0d 44 45   ECDIG POINTER.DE
20: 43 4e 4f 31 3a 09 4d 4f 56 09 45 2c 4c 09 3b 53   CNO1:.MOV.E,L.;S
30: 41 56 45 20 52 45 4d 41 49 4e 44 45 52 20 54 4f   AVE REMAINDER TO
40: 20 44 45 0d 09 4d 4f 56 09 44 2c 48 0d 09 49 4e    DE..MOV.D,H..IN
50: 52 09 41 09 3b 41 4e 54 49 43 49 50 41 54 45 20   R.A.;ANTICIPATE
60: 44 49 47 49 54 0d 09 44 41 44 09 42 09 3b 53 55   DIGIT..DAD.B.;SU
70: 42 54 52 41 43 54 20 44 49 56 49 53 4f 52 0d 09   BTRACT DIVISOR..
### Disk Sector 226 ###
00: 4a 43 09 44 45 43 4e 4f 31 3b 57 41 53 20 45 4e   JC.DECNO1;WAS EN
10: 4f 55 47 48 20 46 4f 52 20 53 55 42 54 52 41 43   OUGH FOR SUBTRAC
20: 54 49 4f 4e 0d 09 44 43 52 09 41 09 3b 4e 4f 54   TION..DCR.A.;NOT
30: 20 45 4e 4f 55 47 48 20 4c 45 46 54 20 53 4f 0d    ENOUGH LEFT SO.
40: 09 4d 4f 56 09 4c 2c 45 09 3b 43 41 4e 43 45 4c   .MOV.L,E.;CANCEL
50: 20 4c 41 53 54 20 44 41 44 20 4f 50 45 52 41 54    LAST DAD OPERAT
60: 49 4f 4e 0d 09 4d 4f 56 09 48 2c 44 0d 09 50 4f   ION..MOV.H,D..PO
70: 50 09 44 09 3b 52 45 53 54 4f 52 45 20 50 4f 49   P.D.;RESTORE POI
### Disk Sector 227 ###
00: 4e 54 45 52 0d 09 53 54 41 58 09 44 09 3b 26 20   NTER..STAX.D.;&
10: 53 54 4f 57 20 44 49 47 49 54 0d 09 49 4e 58 09   STOW DIGIT..INX.
20: 44 09 3b 26 20 42 55 4d 50 20 50 4f 49 4e 54 45   D.;& BUMP POINTE
30: 52 0d 09 52 45 54 0d 2a 2a 2a 2a 2a 2a 2a 2a 2a   R..RET.*********
40: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   ****************
50: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   ****************
60: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   ****************
70: 2a 2a 0d 0d 00 00 00 00 00 00 00 00 00 00 00 00   **..............