Listing of file='APP9.DOC;01' on disk='vmedia/asmtut_disk5-sector.ccvf'
### Disk Sector 3 ### 00: 37 00 38 00 08 00 00 00 80 25 01 00 ff ff 00 00 7.8......%...... 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 30: 00 00 00 00 00 00 00 ff 00 00 00 00 00 00 48 00 ..............H. 40: 3b 09 41 53 53 45 4d 42 4c 59 20 4c 41 4e 47 55 ;.ASSEMBLY LANGU 50: 41 47 45 20 54 55 54 4f 52 49 41 4c 20 53 45 52 AGE TUTORIAL SER 60: 49 45 53 0d 0a 0d 0a 3b 09 41 70 70 65 6e 64 69 IES....;.Appendi 70: 78 20 20 23 39 20 20 20 20 53 61 6d 70 6c 65 20 x #9 Sample ### Disk Sector 4 ### 00: 50 52 4f 47 52 41 4d 20 23 34 0d 0a 0d 0a 3b 09 PROGRAM #4....;. 10: 52 45 46 45 52 20 4b 49 4c 4f 42 41 55 44 2c 20 REFER KILOBAUD, 20: 41 50 52 49 4c 20 38 31 2c 20 50 41 47 45 20 31 APRIL 81, PAGE 1 30: 36 34 0d 0a 0d 0a 3b 09 27 53 4f 52 54 41 27 20 64....;.'SORTA' 40: 53 4f 52 54 53 20 41 20 42 55 46 46 45 52 20 50 SORTS A BUFFER P 50: 52 4f 56 49 44 45 44 20 42 59 20 41 4e 4f 54 48 ROVIDED BY ANOTH 60: 45 52 20 50 52 4f 47 52 41 4d 0d 0a 3b 09 4f 52 ER PROGRAM..;.OR 70: 20 42 59 20 42 45 49 4e 47 20 49 4e 43 4f 52 50 BY BEING INCORP ### Disk Sector 5 ### 00: 4f 52 41 54 45 44 20 49 4e 20 41 4e 4f 54 48 45 ORATED IN ANOTHE 10: 52 20 50 52 4f 47 52 41 4d 0d 0a 0d 0a 3b 09 54 R PROGRAM....;.T 20: 48 49 53 20 52 4f 55 54 49 4e 45 20 4e 45 45 44 HIS ROUTINE NEED 30: 53 20 54 4f 20 42 45 20 27 54 4f 4c 44 27 20 54 S TO BE 'TOLD' T 40: 48 45 20 46 4f 4c 4c 4f 57 49 4e 47 3a 0d 0a 3b HE FOLLOWING:..; 50: 09 4e 75 6d 62 65 72 20 6f 66 20 52 65 63 6f 72 .Number of Recor 60: 64 73 20 74 6f 20 62 65 20 73 6f 72 74 65 64 0d ds to be sorted. 70: 0a 3b 09 4c 65 6e 67 74 68 20 6f 66 20 65 61 63 .;.Length of eac ### Disk Sector 6 ### 00: 68 20 52 65 63 6f 72 64 0d 0a 3b 09 54 68 65 20 h Record..;.The 10: 41 64 64 72 65 73 73 20 6f 66 20 74 68 65 20 42 Address of the B 20: 75 66 66 65 72 20 69 6e 20 77 68 69 63 68 20 74 uffer in which t 30: 68 65 79 20 61 72 65 20 73 74 6f 72 65 64 0d 0a hey are stored.. 40: 0d 0a 3b 09 53 4f 52 54 49 4e 47 20 41 4c 47 4f ..;.SORTING ALGO 50: 52 49 54 48 4d 20 49 53 20 27 53 48 45 4c 4c 2d RITHM IS 'SHELL- 60: 4d 45 54 5a 4e 45 52 27 20 41 53 20 50 45 52 20 METZNER' AS PER 70: 54 48 45 20 41 43 43 4f 4d 50 41 4e 59 49 4e 47 THE ACCOMPANYING ### Disk Sector 7 ### 00: 0d 0a 09 46 4c 4f 57 20 43 48 41 52 54 2e 0d 0a ...FLOW CHART... 10: 0d 0a 3b 09 52 4f 55 54 49 4e 45 20 49 53 20 32 ..;.ROUTINE IS 2 20: 30 33 20 42 59 54 45 53 20 4c 4f 4e 47 20 49 4e 03 BYTES LONG IN 30: 43 4c 20 31 36 20 42 59 54 45 53 20 27 53 43 52 CL 16 BYTES 'SCR 40: 41 54 43 48 20 41 52 45 41 27 0d 0a 0d 0a 3b 09 ATCH AREA'....;. 50: 41 53 20 54 48 49 53 20 49 53 20 41 20 53 55 42 AS THIS IS A SUB 60: 2d 52 4f 55 54 49 4e 45 2c 20 4e 4f 20 53 54 41 -ROUTINE, NO STA 70: 43 4b 20 49 53 20 53 45 54 20 55 50 20 41 4e 44 CK IS SET UP AND ### Disk Sector 8 ### 00: 20 49 54 20 52 45 54 55 52 4e 53 0d 0a 0d 0a 3b IT RETURNS....; 10: 09 54 4f 20 54 48 45 20 43 41 4c 4c 45 52 20 57 .TO THE CALLER W 20: 49 54 48 20 41 20 56 41 4c 49 44 20 53 54 41 43 ITH A VALID STAC 30: 4b 0d 0a 0d 0a 3b 09 4e 4f 54 45 20 54 48 45 20 K....;.NOTE THE 40: 55 53 45 20 4f 46 20 54 48 45 20 53 54 41 43 4b USE OF THE STACK 50: 20 54 4f 20 48 4f 4c 44 20 4a 20 26 20 4b 20 41 TO HOLD J & K A 60: 4c 4c 4f 57 49 4e 47 20 54 48 45 53 45 20 31 36 LLOWING THESE 16 70: 20 42 49 54 0d 0a 3b 09 56 41 4c 55 45 53 20 54 BIT..;.VALUES T ### Disk Sector 9 ### 00: 4f 20 42 45 20 50 4c 41 43 45 44 20 49 4e 20 41 O BE PLACED IN A 10: 4e 59 20 52 45 47 49 53 54 45 52 20 50 41 49 52 NY REGISTER PAIR 20: 20 55 53 49 4e 47 20 4f 4e 4c 59 20 32 20 42 59 USING ONLY 2 BY 30: 54 45 53 0d 0a 3b 09 28 50 4f 50 20 46 4f 4c 4c TES..;.(POP FOLL 40: 4f 57 45 44 20 42 59 20 50 55 53 48 29 0d 0a 0d OWED BY PUSH)... 50: 0a 4f 52 49 47 3a 09 4f 52 47 09 30 42 45 30 30 .ORIG:.ORG.0BE00 60: 48 09 09 3b 46 49 54 20 55 4e 44 45 52 20 54 4f H..;FIT UNDER TO 70: 50 20 4f 46 20 31 36 4b 0d 0a 0d 0a 4e 31 09 45 P OF 16K....N1.E ### Disk Sector 10 ### 00: 51 55 09 4f 52 49 47 09 09 3b 4e 4f 2e 20 4f 46 QU.ORIG..;NO. OF 10: 20 52 45 43 4f 52 44 53 20 50 4f 4b 45 44 20 48 RECORDS POKED H 20: 45 52 45 0d 0a 4d 31 09 45 51 55 09 4e 31 2b 32 ERE..M1.EQU.N1+2 30: 09 09 3b 49 4e 49 54 49 41 4c 4c 59 20 4d 3d 4e ..;INITIALLY M=N 40: 2c 50 4f 4b 45 20 4e 20 48 45 52 45 20 54 4f 4f ,POKE N HERE TOO 50: 0d 0a 4b 31 09 45 51 55 09 4d 31 2b 32 09 09 3b ..K1.EQU.M1+2..; 60: 52 45 43 4f 52 44 20 4c 45 4e 47 54 48 20 50 4f RECORD LENGTH PO 70: 4b 45 44 20 48 45 52 45 20 41 53 20 32 20 42 59 KED HERE AS 2 BY ### Disk Sector 11 ### 00: 54 45 53 0d 0a 4a 31 09 45 51 55 09 4b 31 2b 32 TES..J1.EQU.K1+2 10: 09 09 3b 42 41 53 45 20 41 44 44 52 45 53 53 20 ..;BASE ADDRESS 20: 4f 46 20 42 55 46 46 45 52 20 50 4f 4b 45 44 20 OF BUFFER POKED 30: 48 45 52 45 0d 0a 49 31 09 45 51 55 09 4a 31 2b HERE..I1.EQU.J1+ 40: 32 09 09 3b 49 31 20 26 20 4a 31 20 50 4f 49 4e 2..;I1 & J1 POIN 50: 54 20 54 4f 20 52 45 43 4f 52 44 53 20 46 4f 52 T TO RECORDS FOR 60: 20 43 4f 4d 50 41 52 49 53 4f 4e 0d 0a 4d 4c 31 COMPARISON..ML1 70: 09 45 51 55 09 49 31 2b 32 09 09 3b 48 4f 4c 44 .EQU.I1+2..;HOLD ### Disk Sector 12 ### 00: 53 20 4d 31 2a 4c 31 0d 0a 44 4a 31 09 45 51 55 S M1*L1..DJ1.EQU 10: 09 4d 4c 31 2b 32 09 09 3b 44 49 53 50 4c 41 43 .ML1+2..;DISPLAC 20: 45 4d 45 4e 54 20 46 4f 52 20 4a 20 52 45 43 4f EMENT FOR J RECO 30: 52 44 0d 0a 44 49 31 09 45 51 55 09 44 4a 31 2b RD..DI1.EQU.DJ1+ 40: 32 09 09 3b 44 49 53 50 4c 41 43 45 4d 45 4e 54 2..;DISPLACEMENT 50: 20 46 4f 52 20 49 20 52 45 43 4f 52 44 0d 0a 0d FOR I RECORD... 60: 0a 09 44 53 09 31 36 09 09 3b 41 4c 4c 4f 57 20 ..DS.16..;ALLOW 70: 53 50 41 43 45 20 46 4f 52 20 41 42 4f 56 45 20 SPACE FOR ABOVE ### Disk Sector 13 ### 00: 53 43 52 41 54 43 48 20 41 52 45 41 0d 0a 0d 0a SCRATCH AREA.... 10: 53 54 41 52 54 3a 09 4c 48 4c 44 09 4a 31 09 09 START:.LHLD.J1.. 20: 3b 55 53 45 20 53 54 41 43 4b 20 54 4f 20 48 4f ;USE STACK TO HO 30: 4c 44 20 54 57 4f 20 56 41 4c 55 45 53 0d 0a 09 LD TWO VALUES... 40: 50 55 53 48 09 48 09 09 3b 53 54 41 43 4b 20 42 PUSH.H..;STACK B 50: 55 46 46 45 52 20 41 44 44 52 0d 0a 09 4c 48 4c UFFER ADDR...LHL 60: 44 09 4b 31 0d 0a 09 50 55 53 48 09 48 09 09 3b D.K1...PUSH.H..; 70: 53 54 41 43 4b 20 52 45 43 20 4c 45 4e 47 54 48 STACK REC LENGTH ### Disk Sector 14 ### 00: 0d 0a 0d 0a 44 49 56 3a 09 58 52 41 09 41 09 09 ....DIV:.XRA.A.. 10: 3b 48 41 4c 56 45 20 4d 31 2e 2e 2e 2e 0d 0a 09 ;HALVE M1....... 20: 4c 48 4c 44 09 4d 31 0d 0a 09 4d 4f 56 09 41 2c LHLD.M1...MOV.A, 30: 48 0d 0a 09 52 41 52 0d 0a 09 4d 4f 56 09 48 2c H...RAR...MOV.H, 40: 41 0d 0a 09 4d 4f 56 09 41 2c 4c 0d 0a 09 52 41 A...MOV.A,L...RA 50: 52 0d 0a 09 4d 4f 56 09 4c 2c 41 0d 0a 09 53 48 R...MOV.L,A...SH 60: 4c 44 09 4d 31 09 09 3b 2e 2e 2e 2e 2e 41 4e 44 LD.M1..;.....AND 70: 20 53 54 4f 52 45 20 49 54 0d 0a 0d 0a 09 4f 52 STORE IT.....OR ### Disk Sector 15 ### 00: 41 09 48 09 09 3b 4d 3d 30 3f 0d 0a 09 4a 4e 5a A.H..;M=0?...JNZ 10: 09 4e 44 4f 4e 0d 0a 09 50 4f 50 09 42 09 09 3b .NDON...POP.B..; 20: 44 4f 4e 45 2c 20 53 4f 20 55 4e 53 54 41 43 4b DONE, SO UNSTACK 30: 20 4f 55 52 20 50 4f 49 4e 54 45 52 53 0d 0a 09 OUR POINTERS... 40: 50 4f 50 09 44 09 09 3b 41 4e 44 20 52 45 54 55 POP.D..;AND RETU 50: 52 4e 0d 0a 09 52 45 54 09 09 09 3b 54 4f 20 43 RN...RET...;TO C 60: 41 4c 4c 45 52 0d 0a 0d 0a 3b 09 4b 20 3d 20 4e ALLER....;.K = N 70: 20 2d 20 4d 0d 0a 0d 0a 4e 44 4f 4e 3a 09 58 43 - M....NDON:.XC ### Disk Sector 16 ### 00: 48 47 09 09 09 3b 4d 20 49 4e 20 44 45 0d 0a 09 HG...;M IN DE... 10: 4c 48 4c 44 09 4e 31 0d 0a 09 4d 4f 56 09 41 2c LHLD.N1...MOV.A, 20: 4c 09 09 3b 47 45 54 20 4e 2d 4d 0d 0a 09 53 55 L..;GET N-M...SU 30: 42 09 45 0d 0a 09 4d 4f 56 09 4c 2c 41 0d 0a 09 B.E...MOV.L,A... 40: 4d 4f 56 09 41 2c 48 0d 0a 09 53 42 42 09 44 0d MOV.A,H...SBB.D. 50: 0a 09 4d 4f 56 09 48 2c 41 0d 0a 09 53 48 4c 44 ..MOV.H,A...SHLD 60: 09 4b 31 09 09 3b 53 54 4f 52 45 20 4e 45 57 20 .K1..;STORE NEW 70: 4b 0d 0a 0d 0a 09 4c 58 49 09 48 2c 31 09 09 3b K.....LXI.H,1..; ### Disk Sector 17 ### 00: 49 3d 4a 3d 31 0d 0a 09 53 48 4c 44 09 4a 31 0d I=J=1...SHLD.J1. 10: 0a 09 53 48 4c 44 09 49 31 0d 0a 0d 0a 3b 09 43 ..SHLD.I1....;.C 20: 41 4c 43 20 26 20 53 41 56 45 20 41 44 44 52 20 ALC & SAVE ADDR 30: 4f 46 46 53 45 54 53 20 4d 31 2a 4c 31 20 46 4f OFFSETS M1*L1 FO 40: 52 20 45 41 43 48 20 4e 45 57 20 42 4c 4f 43 4b R EACH NEW BLOCK 50: 0d 0a 0d 0a 09 44 43 52 09 4c 09 09 3b 5a 45 52 .....DCR.L..;ZER 60: 4f 20 48 4c 0d 0a 09 50 4f 50 09 42 09 09 3b 4c O HL...POP.B..;L 70: 45 4e 20 4f 46 20 52 45 43 4f 52 44 0d 0a 09 50 EN OF RECORD...P ### Disk Sector 18 ### 00: 55 53 48 09 42 09 09 3b 45 58 54 52 41 43 54 45 USH.B..;EXTRACTE 10: 44 20 42 55 54 20 50 52 45 53 45 52 56 45 44 0d D BUT PRESERVED. 20: 0a 4c 50 31 3a 09 44 41 44 09 44 09 09 3b 41 44 .LP1:.DAD.D..;AD 30: 44 20 4f 4e 45 20 4c 45 4e 20 54 4f 20 48 4c 0d D ONE LEN TO HL. 40: 0a 09 44 43 58 09 42 09 09 3b 43 48 45 43 4b 20 ..DCX.B..;CHECK 50: 46 4f 52 20 43 3d 30 20 41 53 53 55 4d 4e 47 20 FOR C=0 ASSUMNG 60: 4c 45 4e 20 3c 3d 20 32 35 35 0d 0a 09 4d 4f 56 LEN <= 255...MOV 70: 09 41 2c 42 09 09 3b 47 49 56 49 4e 47 20 42 3d .A,B..;GIVING B= ### Disk Sector 19 ### 00: 30 0d 0a 09 4f 52 41 09 43 0d 0a 09 4a 4e 5a 09 0...ORA.C...JNZ. 10: 4c 50 31 09 09 3b 41 44 44 20 4e 45 58 54 20 4c LP1..;ADD NEXT L 20: 45 4e 0d 0a 09 53 48 4c 44 09 4d 4c 31 09 09 3b EN...SHLD.ML1..; 30: 53 54 4f 52 45 20 50 52 4f 44 55 43 54 0d 0a 0d STORE PRODUCT... 40: 0a 09 09 3b 43 41 4c 43 20 26 20 53 41 56 45 20 ...;CALC & SAVE 50: 44 28 4a 29 2c 20 44 28 49 29 2c 20 44 28 49 2b D(J), D(I), D(I+ 60: 4d 29 0d 0a 0d 0a 09 58 43 48 47 09 09 09 3b 4d M).....XCHG...;M 70: 4c 31 20 49 4e 20 44 45 0d 0a 09 50 4f 50 09 42 L1 IN DE...POP.B ### Disk Sector 20 ### 00: 09 09 3b 47 45 54 20 4d 31 0d 0a 09 50 4f 50 09 ..;GET M1...POP. 10: 48 09 09 3b 41 4e 44 20 50 52 45 56 49 4f 55 53 H..;AND PREVIOUS 20: 20 4f 46 46 53 45 54 0d 0a 09 50 55 53 48 09 48 OFFSET...PUSH.H 30: 09 09 3b 41 4e 44 20 52 45 53 54 4f 52 45 20 54 ..;AND RESTORE T 40: 48 45 4d 0d 0a 09 50 55 53 48 09 42 0d 0a 4c 50 HEM...PUSH.B..LP 50: 32 3a 09 53 48 4c 44 09 44 4a 31 09 09 3b 4c 4f 2:.SHLD.DJ1..;LO 60: 4f 50 20 42 41 43 4b 20 54 4f 20 48 45 52 45 20 OP BACK TO HERE 70: 49 46 20 42 4c 4f 43 4b 0d 0a 09 53 48 4c 44 09 IF BLOCK...SHLD. ### Disk Sector 21 ### 00: 44 49 31 09 09 3b 4e 4f 54 20 59 45 54 20 53 4f DI1..;NOT YET SO 10: 52 54 45 44 0d 0a 09 58 43 48 47 0d 0a 09 44 41 RTED...XCHG...DA 20: 44 09 44 0d 0a 09 58 43 48 47 09 09 09 3b 48 4c D.D...XCHG...;HL 30: 20 48 41 53 20 44 28 49 29 2c 44 45 20 48 41 53 HAS D(I),DE HAS 40: 20 44 28 49 2b 4d 29 0d 0a 0d 0a 3b 09 43 4f 4d D(I+M)....;.COM 50: 50 41 52 45 20 53 54 52 49 4e 47 53 20 41 4e 44 PARE STRINGS AND 60: 20 53 57 49 54 43 48 0d 0a 0d 0a 43 50 31 3a 09 SWITCH....CP1:. 70: 50 4f 50 09 42 09 09 3b 4c 45 4e 0d 0a 09 50 55 POP.B..;LEN...PU ### Disk Sector 22 ### 00: 53 48 09 42 0d 0a 4c 50 33 3a 09 4c 44 41 58 09 SH.B..LP3:.LDAX. 10: 44 09 09 3b 42 59 54 45 20 46 52 4f 4d 20 28 49 D..;BYTE FROM (I 20: 2b 4d 29 0d 0a 09 53 55 42 09 4d 09 09 3b 56 53 +M)...SUB.M..;VS 30: 20 42 59 54 45 20 46 52 4f 4d 20 49 0d 0a 09 4a BYTE FROM I...J 40: 4e 5a 09 4e 45 51 0d 0a 09 49 4e 58 09 48 09 09 NZ.NEQ...INX.H.. 50: 3b 49 46 20 45 51 55 41 4c 2c 20 43 4f 4d 50 41 ;IF EQUAL, COMPA 60: 52 45 20 4e 45 58 54 20 50 41 49 52 0d 0a 09 49 RE NEXT PAIR...I 70: 4e 58 09 44 0d 0a 09 44 43 58 09 42 0d 0a 09 4d NX.D...DCX.B...M ### Disk Sector 23 ### 00: 4f 56 09 41 2c 42 09 09 3b 4c 41 53 54 20 42 59 OV.A,B..;LAST BY 10: 54 45 3f 0d 0a 09 4f 52 41 09 43 0d 0a 09 4a 4e TE?...ORA.C...JN 20: 5a 09 4c 50 33 0d 0a 09 4a 4d 50 09 4e 53 57 09 Z.LP3...JMP.NSW. 30: 09 3b 4e 4f 20 53 57 41 50 20 41 53 20 41 4c 4c .;NO SWAP AS ALL 40: 20 45 51 55 41 4c 0d 0a 0d 0a 3b 09 55 4e 45 51 EQUAL....;.UNEQ 50: 55 41 4c 2c 20 42 55 54 20 57 48 49 43 48 20 57 UAL, BUT WHICH W 60: 41 59 3f 0d 0a 0d 0a 4e 45 51 3a 09 4a 4e 43 09 AY?....NEQ:.JNC. 70: 4e 53 57 09 09 3b 49 46 20 44 28 49 29 20 3c 20 NSW..;IF D(I) < ### Disk Sector 24 ### 00: 44 28 49 2b 4d 29 2c 20 44 4f 4e 27 54 20 53 57 D(I+M), DON'T SW 10: 41 50 0d 0a 09 09 09 09 3b 43 48 41 4e 47 45 20 AP......;CHANGE 20: 54 4f 20 4a 43 20 46 4f 52 20 44 45 53 43 45 4e TO JC FOR DESCEN 30: 44 49 4e 47 20 4f 52 44 45 52 0d 0a 0d 0a 53 57 DING ORDER....SW 40: 3a 09 50 55 53 48 09 42 09 09 3b 53 57 41 50 20 :.PUSH.B..;SWAP 50: 52 45 43 4f 52 44 53 2c 20 4c 45 4e 20 43 4f 55 RECORDS, LEN COU 60: 4e 54 45 52 20 49 4e 20 42 0d 0a 09 4d 4f 56 09 NTER IN B...MOV. 70: 42 2c 4d 09 09 3b 49 20 42 59 54 45 20 49 4e 20 B,M..;I BYTE IN ### Disk Sector 25 ### 00: 54 45 4d 50 20 53 54 4f 52 45 20 42 0d 0a 09 4c TEMP STORE B...L 10: 44 41 58 09 44 09 09 3b 49 2b 4d 20 42 59 54 45 DAX.D..;I+M BYTE 20: 0d 0a 09 4d 4f 56 09 4d 2c 41 09 09 3b 49 2b 4d ...MOV.M,A..;I+M 30: 20 2d 3e 20 49 0d 0a 09 4d 4f 56 09 41 2c 42 09 -> I...MOV.A,B. 40: 09 3b 41 20 49 53 20 54 52 41 4e 53 46 45 52 20 .;A IS TRANSFER 50: 52 45 47 49 53 54 45 52 0d 0a 09 53 54 41 58 09 REGISTER...STAX. 60: 44 09 09 3b 49 20 2d 3e 20 49 2b 4d 0d 0a 09 49 D..;I -> I+M...I 70: 4e 58 09 48 09 09 3b 4e 45 58 54 20 49 0d 0a 09 NX.H..;NEXT I... ### Disk Sector 26 ### 00: 49 4e 58 09 44 09 09 3b 4e 45 58 54 20 49 2b 4d INX.D..;NEXT I+M 10: 0d 0a 09 50 4f 50 09 42 09 09 3b 52 45 53 54 4f ...POP.B..;RESTO 20: 52 45 20 43 4f 55 4e 54 45 52 0d 0a 09 44 43 58 RE COUNTER...DCX 30: 09 42 0d 0a 09 4d 4f 56 09 41 2c 42 09 09 3b 41 .B...MOV.A,B..;A 40: 4c 4c 20 44 4f 4e 45 3f 0d 0a 09 4f 52 41 09 43 LL DONE?...ORA.C 50: 0d 0a 09 4a 4e 5a 09 53 57 09 09 3b 4e 4f 0d 0a ...JNZ.SW..;NO.. 60: 0d 0a 3b 09 52 45 43 4f 52 44 20 53 57 41 50 50 ..;.RECORD SWAPP 70: 45 44 2c 20 43 48 45 43 4b 20 49 46 20 49 31 2d ED, CHECK IF I1- ### Disk Sector 27 ### 00: 4d 31 20 3c 20 31 0d 0a 0d 0a 09 4c 48 4c 44 09 M1 < 1.....LHLD. 10: 4d 31 0d 0a 09 4d 4f 56 09 41 2c 48 0d 0a 09 43 M1...MOV.A,H...C 20: 4d 41 0d 0a 09 4d 4f 56 09 44 2c 41 09 09 3b 44 MA...MOV.D,A..;D 30: 20 3d 20 2d 48 0d 0a 09 4d 4f 56 09 41 2c 4c 0d = -H...MOV.A,L. 40: 0a 09 43 4d 41 0d 0a 09 4d 4f 56 09 45 2c 41 09 ..CMA...MOV.E,A. 50: 09 3b 45 20 3d 20 2d 4c 0d 0a 09 4c 48 4c 44 09 .;E = -L...LHLD. 60: 49 31 09 09 3b 49 31 2d 4d 31 20 49 4e 20 48 4c I1..;I1-M1 IN HL 70: 20 28 4f 4e 45 53 20 43 4f 4d 50 4c 45 4d 45 4e (ONES COMPLEMEN ### Disk Sector 28 ### 00: 54 29 0d 0a 09 44 41 44 09 44 0d 0a 09 4a 4e 43 T)...DAD.D...JNC 10: 09 4e 53 57 09 09 3b 28 49 31 2d 4d 31 29 20 3c .NSW..;(I1-M1) < 20: 31 0d 0a 0d 0a 3b 09 43 41 4c 43 20 4e 45 57 20 1....;.CALC NEW 30: 44 28 49 29 2c 20 44 28 49 2b 4d 29 0d 0a 0d 0a D(I), D(I+M).... 40: 09 49 4e 58 09 48 09 09 3b 49 31 3d 49 31 2d 4d .INX.H..;I1=I1-M 50: 31 20 28 41 44 44 20 31 20 46 4f 52 20 54 57 4f 1 (ADD 1 FOR TWO 60: 53 20 43 4f 4d 50 4c 45 4d 45 4e 54 29 0d 0a 09 S COMPLEMENT)... 70: 53 48 4c 44 09 49 31 0d 0a 09 4c 48 4c 44 09 44 SHLD.I1...LHLD.D ### Disk Sector 29 ### 00: 4a 31 09 09 3b 4f 4c 44 20 44 28 49 29 3d 4e 45 J1..;OLD D(I)=NE 10: 57 20 44 28 49 2b 4d 29 0d 0a 09 58 43 48 47 09 W D(I+M)...XCHG. 20: 09 09 3b 49 4e 20 44 45 0d 0a 09 4c 48 4c 44 09 ..;IN DE...LHLD. 30: 4d 4c 31 0d 0a 09 4d 4f 56 09 41 2c 45 0d 0a 09 ML1...MOV.A,E... 40: 53 55 42 09 4c 0d 0a 09 4d 4f 56 09 4c 2c 41 0d SUB.L...MOV.L,A. 50: 0a 09 4d 4f 56 09 41 2c 44 0d 0a 09 53 42 42 09 ..MOV.A,D...SBB. 60: 48 0d 0a 09 4d 4f 56 09 48 2c 41 0d 0a 09 53 48 H...MOV.H,A...SH 70: 4c 44 09 44 49 31 09 09 3b 44 49 31 20 3d 20 44 LD.DI1..;DI1 = D ### Disk Sector 30 ### 00: 49 31 2d 4d 4c 31 0d 0a 09 4a 4d 50 09 43 50 31 I1-ML1...JMP.CP1 10: 0d 0a 0d 0a 3b 09 49 4e 43 52 45 4d 45 4e 54 20 ....;.INCREMENT 20: 4a 20 41 4e 44 20 43 48 45 43 4b 20 46 4f 52 20 J AND CHECK FOR 30: 4a 3e 4b 0d 0a 0d 0a 4e 53 57 3a 09 4c 48 4c 44 J>K....NSW:.LHLD 40: 09 4a 31 0d 0a 09 49 4e 58 09 48 09 09 3b 4a 3d .J1...INX.H..;J= 50: 4a 2b 31 0d 0a 09 53 48 4c 44 09 4a 31 0d 0a 09 J+1...SHLD.J1... 60: 53 48 4c 44 09 49 31 0d 0a 09 58 43 48 47 0d 0a SHLD.I1...XCHG.. 70: 09 4c 48 4c 44 09 4b 31 0d 0a 09 4d 4f 56 09 41 .LHLD.K1...MOV.A ### Disk Sector 31 ### 00: 2c 4c 09 09 3b 4b 2d 4a 20 43 41 4c 43 55 4c 41 ,L..;K-J CALCULA 10: 54 49 4f 4e 0d 0a 09 53 55 42 09 45 0d 0a 09 4d TION...SUB.E...M 20: 4f 56 09 41 2c 48 0d 0a 09 53 42 42 09 44 0d 0a OV.A,H...SBB.D.. 30: 09 4a 43 09 44 49 56 09 09 3b 4a 20 3e 20 4b 2c .JC.DIV..;J > K, 40: 20 4e 45 58 54 20 48 41 4c 46 20 49 4e 54 45 52 NEXT HALF INTER 50: 56 41 4c 0d 0a 0d 0a 3b 09 43 41 4c 43 20 4e 45 VAL....;.CALC NE 60: 57 20 44 28 4a 29 2c 20 44 28 49 29 0d 0a 0d 0a W D(J), D(I).... 70: 09 4c 48 4c 44 09 44 4a 31 0d 0a 09 50 4f 50 09 .LHLD.DJ1...POP. ### Disk Sector 32 ### 00: 44 09 09 3b 4c 45 4e 20 49 4e 20 44 45 0d 0a 09 D..;LEN IN DE... 10: 50 55 53 48 09 44 0d 0a 09 44 41 44 09 44 09 09 PUSH.D...DAD.D.. 20: 3b 4e 45 57 20 44 28 4a 29 3d 4f 4c 44 20 44 28 ;NEW D(J)=OLD D( 30: 4a 2b 31 29 0d 0a 09 58 43 48 47 0d 0a 09 4c 48 J+1)...XCHG...LH 40: 4c 44 09 4d 4c 31 09 09 3b 53 54 49 4c 4c 20 49 LD.ML1..;STILL I 50: 4e 20 43 55 52 52 45 4e 54 20 42 4c 4f 43 4b 20 N CURRENT BLOCK 60: 53 4f 20 4d 4c 31 20 56 41 4c 49 44 0d 0a 09 58 SO ML1 VALID...X 70: 43 48 47 09 09 09 3b 44 28 4a 29 20 49 4e 20 48 CHG...;D(J) IN H ### Disk Sector 33 ### 00: 4c 2c 20 4d 4c 31 20 49 4e 20 44 45 0d 0a 09 4a L, ML1 IN DE...J 10: 4d 50 09 4c 50 32 0d 0a 0d 0a 45 4e 44 09 53 54 MP.LP2....END.ST 20: 41 52 54 0d 0a 0d 0a 00 00 00 00 00 00 00 00 00 ART............. 30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................