|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metricsIndex: 8 C E F I V
Length: 1182720 (0x120c00) Description: Bits:30005981/disk1.imd Turn Key Data Entry System/Datenerfassungspaket - Vers. 1.90 Types: 8" Floppy Disk, CpmFSAuto, ImdContainer Notes: CpmFSAuto,512,2048,16,0x0,1<2<3<4,2:0-76:1
Media: [0, 0, 1] … [76, 1, 15] {512: 2310} Signature: CpmFSAuto,512,2048,16,0x0,1<2<3<4,2:0-76:1 Confidence score: +15/-2 Sector size: 512 Block size: 2048 Directory entries: 16 Block number size: 16 Extent-mask: 0x00 Sector-interleave: 1, 5, 9, 13, 2, 6, 10, 14, 3, 7, 11, 15, 4, 8, 12 Tracks: (2, 0), (2, 1), (3, 0), (3, 1), (4, 0), (4, 1) […] (74, 0), (74, 1), (75, 0), (75, 1), (76, 0), (76, 1)
user | bc | length | name | artifact |
---|---|---|---|---|
0 | 0 | 5504 | CHAININF.COM | ⟦0039458cb⟧ |
0 | 0 | 128 | CHAININF.DEP | ⟦7c6cc0015⟧ |
0 | 0 | 39040 | ENTRY.COM | ⟦cc063770c⟧ |
0 | 0 | 34176 | ENTRYME.COM | ⟦827bd7d77⟧ |
0 | 0 | 38016 | FORMAT.COM | ⟦beee28f3a⟧ |
0 | 0 | 37376 | VERIFY.COM | ⟦3a8da84fb⟧ |
0x000000…000200 (0, 0, 1) 0xe5[0x200] […0x1d…] 0x003c00…003c20 (1, 0, 1) c3 5c cf c3 58 cf 7f 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 4f 50 59 52 49 47 48 ┆ Ø X COPYRIGH┆ 0x003c20…003c40 54 20 28 43 29 20 31 39 37 39 2c 20 44 49 47 49 54 41 4c 20 52 45 53 45 41 52 43 48 20 20 00 00 ┆T (C) 1979, DIGITAL RESEARCH ┆ 0x003c40…003c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x1…] 0x003c80…003ca0 00 00 00 00 00 00 00 00 08 cc 00 00 5f 0e 02 c3 05 00 c5 cd 8c cc c1 c9 3e 0d cd 92 cc 3e 0a c3 ┆ _ > > ┆ 0x003ca0…003cc0 92 cc 3e 20 c3 92 cc c5 cd 98 cc e1 7e b7 c8 23 e5 cd 8c cc e1 c3 ac cc 0e 0d c3 05 00 5f 0e 0e ┆ > ü # _ ┆ 0x003cc0…003ce0 c3 05 00 cd 05 00 32 ee d3 3c c9 0e 0f c3 c3 cc af 32 ed d3 11 cd d3 c3 cb cc 0e 10 c3 c3 cc 0e ┆ 2 < 2 ┆ 0x003ce0…003d00 11 c3 c3 cc 0e 12 c3 c3 cc 11 cd d3 c3 df cc 0e 13 c3 05 00 cd 05 00 b7 c9 0e 14 c3 f4 cc 11 cd ┆ ┆ 0x003d00…003d20 d3 c3 f9 cc 0e 15 c3 f4 cc 0e 16 c3 c3 cc 0e 17 c3 05 00 1e ff 0e 20 c3 05 00 cd 13 cd 87 87 87 ┆ ┆ 0x003d20…003d40 87 21 ef d3 b6 32 04 00 c9 3a ef d3 32 04 00 c9 fe 61 d8 fe 7b d0 e6 5f c9 3a ab d3 b7 ca 96 cd ┆ ! 2 : 2 a æ _ : ┆ 0x003d40…003d60 3a ef d3 b7 3e 00 c4 bd cc 11 ac d3 cd cb cc ca 96 cd 3a bb d3 3d 32 cc d3 11 ac d3 cd f9 cc c2 ┆: > : =2 ┆ 0x003d60…003d80 96 cd 11 07 cc 21 80 00 06 80 cd 42 d0 21 ba d3 36 00 23 35 11 ac d3 cd da cc ca 96 cd 3a ef d3 ┆ ! B ! 6 #5 : ┆ 0x003d80…003da0 b7 c4 bd cc 21 08 cc cd ac cc cd c2 cd ca a7 cd cd dd cd c3 82 cf cd dd cd cd 1a cd 0e 0a 11 06 ┆ ! ┆ 0x003da0…003dc0 cc cd 05 00 cd 29 cd 21 07 cc 46 23 78 b7 ca ba cd 7e cd 30 cd 77 05 c3 ab cd 77 21 08 cc 22 88 ┆ ) ! F#x ü 0 w w! " ┆ 0x003dc0…003de0 cc c9 0e 0b cd 05 00 b7 c8 0e 01 cd 05 00 b7 c9 0e 19 c3 05 00 11 80 00 0e 1a c3 05 00 21 ab d3 ┆ ! ┆ 0x003de0…003e00 7e b7 c8 36 00 af cd bd cc 11 ac d3 cd ef cc 3a ef d3 c3 bd cc 11 28 cf 21 00 d4 06 06 1a be c2 ┆ü 6 : ( ! ┆ 0x003e00…003e20 (1, 0, 2) d5 16 08 00 00 0f c3 11 d4 99 d4 a5 d4 ab d4 b1 d4 eb 22 43 d7 eb 7b 32 d6 e1 21 00 00 22 45 d7 ┆ "C æ2 ! "E ┆ 0x003e20…003e40 39 22 0f d7 31 41 d7 af 32 e0 e1 32 de e1 21 74 e1 e5 79 fe 29 d0 4b 21 47 d4 5f 16 00 19 19 5e ┆9" 1A 2 2 !t y ) K!G _ ^┆ 0x003e40…003e60 23 56 2a 43 d7 eb e9 03 e2 c8 d6 90 d5 ce d6 12 e2 0f e2 d4 d6 ed d6 f3 d6 f8 d6 e1 d5 fe d6 7e ┆#V*C ü┆ 0x003e60…003e80 e0 83 e0 45 e0 9c e0 a5 e0 ab e0 c8 e0 d7 e0 e0 e0 e6 e0 ec e0 f5 e0 fe e0 04 e1 0a e1 11 e1 2c ┆ E ,┆ 0x003e80…003ea0 d9 17 e1 1d e1 26 e1 2d e1 41 e1 47 e1 4d e1 0e e0 53 e1 04 d7 04 d7 9b e1 21 ca d4 cd e5 d4 fe ┆ & - A G M S ! ┆ 0x003ea0…003ec0 03 ca 00 00 c9 21 d5 d4 c3 b4 d4 21 e1 d4 c3 b4 d4 21 dc d4 cd e5 d4 c3 00 00 42 64 6f 73 20 45 ┆ ! ! ! Bdos E┆ 0x003ec0…003ee0 72 72 20 4f 6e 20 20 3a 20 24 42 61 64 20 53 65 63 74 6f 72 24 53 65 6c 65 63 74 24 46 69 6c 65 ┆rr On : $Bad Sector$Select$File┆ 0x003ee0…003f00 20 52 2f 4f 24 e5 cd c9 d5 3a 42 d7 c6 41 32 c6 d4 01 ba d4 cd d3 d5 c1 cd d3 d5 21 0e d7 7e 36 ┆ R/O$ :B A2 ! ü6┆ 0x003f00…003f20 00 b7 c0 c3 09 e2 cd fb d4 cd 14 d5 d8 f5 4f cd 90 d5 f1 c9 fe 0d c8 fe 0a c8 fe 09 c8 fe 08 c8 ┆ O ┆ 0x003f20…003f40 fe 20 c9 3a 0e d7 b7 c2 45 d5 cd 06 e2 e6 01 c8 cd 09 e2 fe 13 c2 42 d5 cd 09 e2 fe 03 ca 00 00 ┆ : E B ┆ 0x003f40…003f60 af c9 32 0e d7 3e 01 c9 3a 0a d7 b7 c2 62 d5 c5 cd 23 d5 c1 c5 cd 0c e2 c1 c5 3a 0d d7 b7 c4 0f ┆ 2 > : b # : ┆ 0x003f60…003f80 e2 c1 79 21 0c d7 fe 7f c8 34 fe 20 d0 35 7e b7 c8 79 fe 08 c2 79 d5 35 c9 fe 0a c0 36 00 c9 79 ┆ y! 4 5ü y y 5 6 y┆ 0x003f80…003fa0 cd 14 d5 d2 90 d5 f5 0e 5e cd 48 d5 f1 f6 40 4f 79 fe 09 c2 48 d5 0e 20 cd 48 d5 3a 0c d7 e6 07 ┆ ^ H @Oy H H : ┆ 0x003fa0…003fc0 c2 96 d5 c9 cd ac d5 0e 20 cd 0c e2 0e 08 c3 0c e2 0e 23 cd 48 d5 cd c9 d5 3a 0c d7 21 0b d7 be ┆ # H : ! ┆ 0x003fc0…003fe0 d0 0e 20 cd 48 d5 c3 b9 d5 0e 0d cd 48 d5 0e 0a c3 48 d5 0a fe 24 c8 03 c5 4f cd 90 d5 c1 c3 d3 ┆ H H H $ O ┆ 0x003fe0…004000 d5 3a 0c d7 32 0b d7 2a 43 d7 4e 23 e5 06 00 c5 e5 cd fb d4 e6 7f e1 c1 fe 0d ca c1 d6 fe 0a ca ┆ : 2 *C N# ┆ 0x004000…004020 (1, 0, 3) 20 d5 06 00 2a 43 d7 09 eb cd 5e d9 c1 cd 4f d7 cd c3 d7 c3 c6 d9 cd 54 d9 0e 0c cd 18 db 2a 43 ┆ *C ^ O T *C┆ 0x004020…004040 d7 7e 11 10 00 19 77 cd f5 d9 c8 cd 44 d9 0e 10 1e 0c cd 01 dc cd 2d db c3 27 dc 0e 0c cd 18 db ┆ ü w D - ' ┆ 0x004040…004060 cd f5 d9 c8 0e 00 1e 0c cd 01 dc cd 2d db c3 40 dc 0e 0f cd 18 db cd f5 d9 c8 cd a6 d8 7e f5 e5 ┆ - @ ü ┆ 0x004060…004080 cd 5e d9 eb 2a 43 d7 0e 20 d5 cd 4f d7 cd 78 d9 d1 21 0c 00 19 4e 21 0f 00 19 46 e1 f1 77 79 be ┆ ^ *C O x ! N! F wy ┆ 0x004080…0040a0 78 ca 8b dc 3e 00 da 8b dc 3e 80 2a 43 d7 11 0f 00 19 77 c9 7e 23 b6 2b c0 1a 77 13 23 1a 77 1b ┆x > > *C w ü# + w # w ┆ 0x0040a0…0040c0 2b c9 af 32 45 d7 32 ea e1 32 eb e1 cd 1e d9 c0 cd 69 d9 e6 80 c0 0e 0f cd 18 db cd f5 d9 c8 01 ┆+ 2E 2 2 i ┆ 0x0040c0…0040e0 10 00 cd 5e d9 09 eb 2a 43 d7 09 0e 10 3a dd e1 b7 ca e8 dc 7e b7 1a c2 db dc 77 b7 c2 e1 dc 7e ┆ ^ *C : ü w ü┆ 0x0040e0…004100 12 be c2 1f dd c3 fd dc cd 94 dc eb cd 94 dc eb 1a be c2 1f dd 13 23 1a be c2 1f dd 0d 13 23 0d ┆ # # ┆ 0x004100…004120 c2 cd dc 01 ec ff 09 eb 09 1a be da 17 dd 77 01 03 00 09 eb 09 7e 12 3e ff 32 d2 e1 c3 10 dc 21 ┆ w ü > 2 !┆ 0x004120…004140 45 d7 35 c9 cd 54 d9 2a 43 d7 e5 21 ac e1 22 43 d7 0e 01 cd 18 db cd f5 d9 e1 22 43 d7 c8 eb 21 ┆E 5 T *C ! "C "C !┆ 0x004140…004160 0f 00 19 0e 11 af 77 23 0d c2 46 dd 21 0d 00 19 77 cd 8c d9 cd fd db c3 78 d9 af 32 d2 e1 cd a2 ┆ w# F ! w x 2 ┆ 0x004160…004180 dc cd f5 d9 c8 2a 43 d7 01 0c 00 09 7e 3c e6 1f 77 ca 83 dd 47 3a c5 e1 a0 21 d2 e1 a6 ca 8e dd ┆ *C ü< w G: ! ┆ 0x004180…0041a0 c3 ac dd 01 02 00 09 34 7e e6 0f ca b6 dd 0e 0f cd 18 db cd f5 d9 c2 ac dd 3a d3 e1 3c ca b6 dd ┆ 4ü : < ┆ 0x0041a0…0041c0 cd 24 dd cd f5 d9 ca b6 dd c3 af dd cd 5a dc cd bb d8 af c3 01 d7 cd 05 d7 c3 78 d9 3e 01 32 d5 ┆ $ Z x > 2 ┆ 0x0041c0…0041e0 e1 3e ff 32 d3 e1 cd bb d8 3a e3 e1 21 e1 e1 be da e6 dd fe 80 c2 fb dd cd 5a dd af 32 e3 e1 3a ┆ > 2 : ! Z 2 :┆ 0x0041e0…004200 45 d7 b7 c2 fb dd cd 77 d8 cd 84 d8 ca fb dd cd 8a d8 cd d1 d7 cd b2 d7 c3 d2 d8 c3 05 d7 3e 01 ┆E w > ┆ 0x004200…004400 (1, 0, 4) 0xe5[0x200] 0x004400…004420 (1, 0, 5) cf cf 13 23 05 c2 fd cd c9 cd 98 cc 2a 8a cc 7e fe 20 ca 22 ce b7 ca 22 ce e5 cd 8c cc e1 23 c3 ┆ # * ü " " # ┆ 0x004420…004440 0f ce 3e 3f cd 8c cc cd 98 cc cd dd cd c3 82 cf 1a b7 c8 fe 20 da 09 ce c8 fe 3d c8 fe 5f c8 fe ┆ >? = _ ┆ 0x004440…004460 2e c8 fe 3a c8 fe 3b c8 fe 3c c8 fe 3e c8 c9 1a b7 c8 fe 20 c0 13 c3 4f ce 85 6f d0 24 c9 3e 00 ┆. : ; < > O o $ > ┆ 0x004460…004480 21 cd d3 cd 59 ce e5 e5 af 32 f0 d3 2a 88 cc eb cd 4f ce eb 22 8a cc eb e1 1a b7 ca 89 ce de 40 ┆! Y 2 * O " @┆ 0x004480…0044a0 47 13 1a fe 3a ca 90 ce 1b 3a ef d3 77 c3 96 ce 78 32 f0 d3 70 13 06 08 cd 30 ce ca b9 ce 23 fe ┆G : : w x2 p 0 # ┆ 0x0044a0…0044c0 2a c2 a9 ce 36 3f c3 ab ce 77 13 05 c2 98 ce cd 30 ce ca c0 ce 13 c3 af ce 23 36 20 05 c2 b9 ce ┆* 6? w 0 #6 ┆ 0x0044c0…0044e0 06 03 fe 2e c2 e9 ce 13 cd 30 ce ca e9 ce 23 fe 2a c2 d9 ce 36 3f c3 db ce 77 13 05 c2 c8 ce cd ┆ . 0 # * 6? w ┆ 0x0044e0…004500 30 ce ca f0 ce 13 c3 df ce 23 36 20 05 c2 e9 ce 06 03 23 36 00 05 c2 f2 ce eb 22 88 cc e1 01 0b ┆0 #6 #6 " ┆ 0x004500…004520 00 23 7e fe 3f c2 09 cf 04 0d c2 01 cf 78 b7 c9 44 49 52 20 45 52 41 20 54 59 50 45 53 41 56 45 ┆ #ü ? x DIR ERA TYPESAVE┆ 0x004520…004540 52 45 4e 20 55 53 45 52 d5 16 08 00 00 0f 21 10 cf 0e 00 79 fe 06 d0 11 ce d3 06 04 1a be c2 4f ┆REN USER ! y O┆ 0x004540…004560 cf 13 23 05 c2 3c cf 1a fe 20 c2 54 cf 79 c9 23 05 c2 4f cf 0c c3 33 cf af 32 07 cc 31 ab d3 c5 ┆ # < T y # O 3 2 1 ┆ 0x004560…004580 79 1f 1f 1f 1f e6 0f 5f cd 15 cd cd b8 cc 32 ab d3 c1 79 e6 0f 32 ef d3 cd bd cc 3a 07 cc b7 c2 ┆y _ 2 y 2 : ┆ 0x004580…0045a0 98 cf 31 ab d3 cd 98 cc cd d0 cd c6 41 cd 8c cc 3e 3e cd 8c cc cd 39 cd 11 80 00 cd d8 cd cd d0 ┆ 1 A >> 9 ┆ 0x0045a0…0045c0 cd 32 ef d3 cd 5e ce c4 09 ce 3a f0 d3 b7 c2 a5 d2 cd 2e cf 21 c1 cf 5f 16 00 19 19 7e 23 66 6f ┆ 2 ^ : . ! _ ü#fo┆ 0x0045c0…0045e0 e9 77 d0 1f d1 5d d1 ad d1 10 d2 8e d2 a5 d2 21 f3 76 22 00 cc 21 00 cc e9 01 df cf c3 a7 cc 52 ┆ w Å ! v" ! R┆ 0x0045e0…004600 45 41 44 20 45 52 52 4f 52 00 01 f0 cf c3 a7 cc 4e 4f 20 46 49 4c 45 00 cd 5e ce 3a f0 d3 b7 c2 ┆EAD ERROR NO FILE ^ : ┆ 0x004600…004620 (1, 0, 6) c1 d6 fe 08 c2 16 d6 78 b7 ca ef d5 05 3a 0c d7 32 0a d7 c3 70 d6 fe 7f c2 26 d6 78 b7 ca ef d5 ┆ x : 2 p & x ┆ 0x004620…004640 7e 05 2b c3 a9 d6 fe 05 c2 37 d6 c5 e5 cd c9 d5 af 32 0b d7 c3 f1 d5 fe 10 c2 48 d6 e5 21 0d d7 ┆ü + 7 2 H ! ┆ 0x004640…004660 3e 01 96 77 e1 c3 ef d5 fe 18 c2 5f d6 e1 3a 0b d7 21 0c d7 be d2 e1 d5 35 cd a4 d5 c3 4e d6 fe ┆> w _ : ! 5 N ┆ 0x004660…004680 15 c2 6b d6 cd b1 d5 e1 c3 e1 d5 fe 12 c2 a6 d6 c5 cd b1 d5 c1 e1 e5 c5 78 b7 ca 8a d6 23 4e 05 ┆ k x #N ┆ 0x004680…0046a0 c5 e5 cd 7f d5 e1 c1 c3 78 d6 e5 3a 0a d7 b7 ca f1 d5 21 0c d7 96 32 0a d7 cd a4 d5 21 0a d7 35 ┆ x : ! 2 ! 5┆ 0x0046a0…0046c0 c2 99 d6 c3 f1 d5 23 77 04 c5 e5 4f cd 7f d5 e1 c1 7e fe 03 78 c2 bd d6 fe 01 ca 00 00 b9 da ef ┆ #w O ü x ┆ 0x0046c0…0046e0 d5 e1 70 0e 0d c3 48 d5 cd 06 d5 c3 01 d7 cd 15 e2 c3 01 d7 79 3c ca e0 d6 3c ca 06 e2 c3 0c e2 ┆ p H y< < ┆ 0x0046e0…004700 cd 06 e2 b7 ca 91 e1 cd 09 e2 c3 01 d7 3a 03 00 c3 01 d7 21 03 00 71 c9 eb 4d 44 c3 d3 d5 cd 23 ┆ : ! q MD #┆ 0x004700…004720 d5 32 45 d7 c9 3e 01 c3 01 d7 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ 2E > ┆ 0x004720…004740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x004740…004760 00 00 00 00 00 00 00 21 0b d4 5e 23 56 eb e9 0c 0d c8 1a 77 13 23 c3 50 d7 3a 42 d7 4f cd 1b e2 ┆ ! ^#V w # P :B O ┆ 0x004760…004780 7c b5 c8 5e 23 56 23 22 b3 e1 23 23 22 b5 e1 23 23 22 b7 e1 23 23 eb 22 d0 e1 21 b9 e1 0e 08 cd ┆ø ^#V#" ##" ##" ## " ! ┆ 0x004780…0047a0 4f d7 2a bb e1 eb 21 c1 e1 0e 0f cd 4f d7 2a c6 e1 7c 21 dd e1 36 ff b7 ca 9d d7 36 00 3e ff b7 ┆O * ! O * ø! 6 6 > ┆ 0x0047a0…0047c0 c9 cd 18 e2 af 2a b5 e1 77 23 77 2a b7 e1 77 23 77 c9 cd 27 e2 c3 bb d7 cd 2a e2 b7 c8 21 09 d4 ┆ * w#w* w#w ' * ! ┆ 0x0047c0…0047e0 c3 4a d7 2a ea e1 0e 02 cd ea d8 22 e5 e1 22 ec e1 21 e5 e1 4e 23 46 2a b7 e1 5e 23 56 2a b5 e1 ┆ J * " " ! N#F* ^#V* ┆ 0x0047e0…004800 7e 23 66 6f 79 93 78 9a d2 fa d7 e5 2a c1 e1 7b 95 5f 7a 9c 57 e1 2b c3 e4 d7 e5 2a c1 e1 19 da ┆ü#foy x * æ _z W + * ┆ 0x004800…004820 (1, 0, 7) 32 d5 e1 3e 00 32 d3 e1 cd 54 d9 2a 43 d7 cd 47 d9 cd bb d8 3a e3 e1 fe 80 d2 05 d7 cd 77 d8 cd ┆2 > 2 T *C G : w ┆ 0x004820…004840 84 d8 0e 00 c2 6e de cd 3e d8 32 d7 e1 01 00 00 b7 ca 3b de 4f 0b cd 5e d8 44 4d cd be db 7d b4 ┆ n > 2 ; O ^ DM å ┆ 0x004840…004860 c2 48 de 3e 02 c3 01 d7 22 e5 e1 eb 2a 43 d7 01 10 00 09 3a dd e1 b7 3a d7 e1 ca 64 de cd 64 d9 ┆ H > " *C : : d d ┆ 0x004860…004880 73 c3 6c de 4f 06 00 09 09 73 23 72 0e 02 3a 45 d7 b7 c0 c5 cd 8a d8 3a d5 e1 3d 3d c2 bb de c1 ┆s l O s#r :E : == ┆ 0x004880…0048a0 c5 79 3d 3d c2 bb de e5 2a b9 e1 57 77 23 14 f2 8c de cd e0 d9 2a e7 e1 0e 02 22 e5 e1 c5 cd d1 ┆ y== * Ww# * " ┆ 0x0048a0…0048c0 d7 c1 cd b8 d7 2a e5 e1 0e 00 3a c4 e1 47 a5 b8 23 c2 9a de e1 22 e5 e1 cd da d9 cd d1 d7 c1 c5 ┆ * : G # " ┆ 0x0048c0…0048e0 cd b8 d7 c1 3a e3 e1 21 e1 e1 be da d2 de 77 34 0e 02 0d 0d c2 df de f5 cd 69 d9 e6 7f 77 f1 fe ┆ : ! w4 i w ┆ 0x0048e0…004900 7f c2 00 df 3a d5 e1 fe 01 c2 00 df cd d2 d8 cd 5a dd 21 45 d7 7e b7 c2 fe de 3d 32 e3 e1 36 00 ┆ : Z !E ü =2 6 ┆ 0x004900…004920 c3 d2 d8 af 32 d5 e1 c5 2a 43 d7 eb 21 21 00 19 7e e6 7f f5 7e 17 23 7e 17 e6 1f 4f 7e 1f 1f 1f ┆ 2 *C !! ü ü #ü Oü ┆ 0x004920…004940 1f e6 0f 47 f1 23 6e 2c 2d 2e 06 c2 8b df 21 20 00 19 77 21 0c 00 19 79 96 c2 47 df 21 0e 00 19 ┆ G #n,-. ! w! y G ! ┆ 0x004940…004960 78 96 e6 7f ca 7f df c5 d5 cd a2 dc d1 c1 2e 03 3a 45 d7 3c ca 84 df 21 0c 00 19 71 21 0e 00 19 ┆x . :E < ! q! ┆ 0x004960…004980 70 cd 51 dc 3a 45 d7 3c c2 7f df c1 c5 2e 04 0c ca 84 df cd 24 dd 2e 05 3a 45 d7 3c ca 84 df c1 ┆p Q :E < . $ . :E < ┆ 0x004980…0049a0 af c3 01 d7 e5 cd 69 d9 36 c0 e1 c1 7d 32 45 d7 c3 78 d9 0e ff cd 03 df cc c1 dd c9 0e 00 cd 03 ┆ i 6 å2E x ┆ 0x0049a0…0049c0 df cc 03 de c9 eb 19 4e 06 00 21 0c 00 19 7e 0f e6 80 81 4f 3e 00 88 47 7e 0f e6 0f 80 47 21 0e ┆ N ! ü O> Gü G! ┆ 0x0049c0…0049e0 00 19 7e 87 87 87 87 f5 80 47 f5 e1 7d e1 b5 e6 01 c9 0e 0c cd 18 db 2a 43 d7 11 21 00 19 e5 72 ┆ ü G å *C ! r┆ 0x0049e0…004a00 23 72 23 72 cd f5 d9 ca 0c e0 cd 5e d9 11 0f 00 cd a5 df e1 e5 5f 79 96 23 78 9e 23 7b 9e da 06 ┆#r#r ^ _y #x #æ ┆ 0x004a00…004c00 (1, 0, 8) 0xe5[0x200] 0x004c00…004c20 (1, 0, 9) 09 ce 21 ce d3 01 0b 00 7e fe 20 ca 33 d0 23 d6 30 fe 0a d2 09 ce 57 78 e6 e0 c2 09 ce 78 07 07 ┆ ! ü 3 # 0 Wx x ┆ 0x004c20…004c40 07 80 da 09 ce 80 da 09 ce 82 da 09 ce 47 0d c2 08 d0 c9 7e fe 20 c2 09 ce 23 0d c2 33 d0 78 c9 ┆ G ü # 3 x ┆ 0x004c40…004c60 06 03 7e 12 23 13 05 c2 42 d0 c9 21 80 00 81 cd 59 ce 7e c9 af 32 cd d3 3a f0 d3 b7 c8 3d 21 ef ┆ ü # B ! Y ü 2 : =! ┆ 0x004c60…004c80 d3 be c8 c3 bd cc 3a f0 d3 b7 c8 3d 21 ef d3 be c8 3a ef d3 c3 bd cc cd 5e ce cd 54 d0 21 ce d3 ┆ : =! : ^ T ! ┆ 0x004c80…004ca0 7e fe 20 c2 8f d0 06 0b 36 3f 23 05 c2 88 d0 1e 00 d5 cd e9 cc cc ea cf ca 1b d1 3a ee d3 0f 0f ┆ü 6?# : ┆ 0x004ca0…004cc0 0f e6 60 4f 3e 0a cd 4b d0 17 da 0f d1 d1 7b 1c d5 e6 03 f5 c2 cc d0 cd 98 cc c5 cd d0 cd c1 c6 ┆ `O> K æ ┆ 0x004cc0…004ce0 41 cd 92 cc 3e 3a cd 92 cc c3 d4 d0 cd a2 cc 3e 3a cd 92 cc cd a2 cc 06 01 78 cd 4b d0 e6 7f fe ┆A >: >: x K ┆ 0x004ce0…004d00 20 c2 f9 d0 f1 f5 fe 03 c2 f7 d0 3e 09 cd 4b d0 e6 7f fe 20 ca 0e d1 3e 20 cd 92 cc 04 78 fe 0c ┆ > K > x ┆ 0x004d00…004d20 d2 0e d1 fe 09 c2 d9 d0 cd a2 cc c3 d9 d0 f1 cd c2 cd c2 1b d1 cd e4 cc c3 98 d0 d1 c3 86 d3 cd ┆ ┆ 0x004d20…004d40 5e ce fe 0b c2 42 d1 01 52 d1 cd a7 cc cd 39 cd 21 07 cc 35 c2 82 cf 23 7e fe 59 c2 82 cf 23 22 ┆^ B R 9 ! 5 #ü Y #"┆ 0x004d40…004d60 88 cc cd 54 d0 11 cd d3 cd ef cc 3c cc ea cf c3 86 d3 41 4c 4c 20 28 59 2f 4e 29 3f 00 cd 5e ce ┆ T < ALL (Y/N)? ^ ┆ 0x004d60…004d80 c2 09 ce cd 54 d0 cd d0 cc ca a7 d1 cd 98 cc 21 f1 d3 36 ff 21 f1 d3 7e fe 80 da 87 d1 e5 cd fe ┆ T ! 6 ! ü ┆ 0x004d80…004da0 cc e1 c2 a0 d1 af 77 34 21 80 00 cd 59 ce 7e fe 1a ca 86 d3 cd 8c cc cd c2 cd c2 86 d3 c3 74 d1 ┆ w4! Y ü t ┆ 0x004da0…004dc0 3d ca 86 d3 cd d9 cf cd 66 d0 c3 09 ce cd f8 cf f5 cd 5e ce c2 09 ce cd 54 d0 11 cd d3 d5 cd ef ┆= f ^ T ┆ 0x004dc0…004de0 cc d1 cd 09 cd ca fb d1 af 32 ed d3 f1 6f 26 00 29 11 00 01 7c b5 ca f1 d1 2b e5 21 80 00 19 e5 ┆ 2 o& ) ø + ! ┆ 0x004de0…004e00 cd d8 cd 11 cd d3 cd 04 cd d1 e1 c2 fb d1 c3 d4 d1 11 cd d3 cd da cc 3c c2 01 d2 01 07 d2 cd a7 ┆ < ┆ 0x004e00…004e20 (1, 0, 10) 0f d8 79 95 78 9c da 0f d8 eb e1 23 c3 fa d7 e1 c5 d5 e5 eb 2a ce e1 19 44 4d cd 1e e2 d1 2a b5 ┆ y x # * DM * ┆ 0x004e20…004e40 e1 73 23 72 d1 2a b7 e1 73 23 72 c1 79 93 4f 78 9a 47 2a d0 e1 eb cd 30 e2 4d 44 c3 21 e2 21 c3 ┆ s#r * s#r y Ox G* 0 MD ! ! ┆ 0x004e40…004e60 e1 4e 3a e3 e1 b7 1f 0d c2 45 d8 47 3e 08 96 4f 3a e2 e1 0d ca 5c d8 b7 17 c3 53 d8 80 c9 2a 43 ┆ N: E G> O: Ø S *C┆ 0x004e60…004e80 d7 11 10 00 19 09 3a dd e1 b7 ca 71 d8 6e 26 00 c9 09 5e 23 56 eb c9 cd 3e d8 4f 06 00 cd 5e d8 ┆ : q n& ^#V > O ^ ┆ 0x004e80…004ea0 22 e5 e1 c9 2a e5 e1 7d b4 c9 3a c3 e1 2a e5 e1 29 3d c2 90 d8 22 e7 e1 3a c4 e1 4f 3a e3 e1 a1 ┆" * å : * )= " : O: ┆ 0x004ea0…004ec0 b5 6f 22 e5 e1 c9 2a 43 d7 11 0c 00 19 c9 2a 43 d7 11 0f 00 19 eb 21 11 00 19 c9 cd ae d8 7e 32 ┆ o" *C *C ! ü2┆ 0x004ec0…004ee0 e3 e1 eb 7e 32 e1 e1 cd a6 d8 3a c5 e1 a6 32 e2 e1 c9 cd ae d8 3a d5 e1 fe 02 c2 de d8 af 4f 3a ┆ ü2 : 2 : O:┆ 0x004ee0…004f00 e3 e1 81 77 eb 3a e1 e1 77 c9 0c 0d c8 7c b7 1f 67 7d 1f 6f c3 eb d8 0e 80 2a b9 e1 af 86 23 0d ┆ w : w ø gå o * # ┆ 0x004f00…004f20 c2 fd d8 c9 0c 0d c8 29 c3 05 d9 c5 3a 42 d7 4f 21 01 00 cd 04 d9 c1 79 b5 6f 78 b4 67 c9 2a ad ┆ ) :B O! y ox g * ┆ 0x004f20…004f40 e1 3a 42 d7 4f cd ea d8 7d e6 01 c9 21 ad e1 4e 23 46 cd 0b d9 22 ad e1 2a c8 e1 23 eb 2a b3 e1 ┆ :B O å ! N#F " * # * ┆ 0x004f40…004f60 73 23 72 c9 cd 5e d9 11 09 00 19 7e 17 d0 21 0f d4 c3 4a d7 cd 1e d9 c8 21 0d d4 c3 4a d7 2a b9 ┆s#r ^ ü ! J ! J * ┆ 0x004f60…004f80 e1 3a e9 e1 85 6f d0 24 c9 2a 43 d7 11 0e 00 19 7e c9 cd 69 d9 36 00 c9 cd 69 d9 f6 80 77 c9 2a ┆ : o $ *C ü i 6 i w *┆ 0x004f80…004fa0 ea e1 eb 2a b3 e1 7b 96 23 7a 9e c9 cd 7f d9 d8 13 72 2b 73 c9 7b 95 6f 7a 9c 67 c9 0e ff 2a ec ┆ * æ #z r+s æ oz g * ┆ 0x004fa0…004fc0 e1 eb 2a cc e1 cd 95 d9 d0 c5 cd f7 d8 2a bd e1 eb 2a ec e1 19 c1 0c ca c4 d9 be c8 cd 7f d9 d0 ┆ * * * ┆ 0x004fc0…004fe0 cd 2c d9 c9 77 c9 cd 9c d9 cd e0 d9 0e 01 cd b8 d7 c3 da d9 cd e0 d9 cd b2 d7 21 b1 e1 c3 e3 d9 ┆ , w ! ┆ 0x004fe0…005000 21 b9 e1 4e 23 46 c3 24 e2 2a b9 e1 eb 2a b1 e1 0e 80 c3 4f d7 21 ea e1 7e 23 be c0 3c c9 21 ff ┆! N#F $ * * O ! ü# < ! ┆ 0x005000…005020 (1, 0, 11) e0 73 2b 70 2b 71 cd 2d db c3 e4 df e1 c9 2a 43 d7 11 20 00 cd a5 df 21 21 00 19 71 23 70 23 77 ┆ s+p+q - *C !! q#p#w┆ 0x005020…005040 c9 2a af e1 3a 42 d7 4f cd ea d8 e5 eb cd 59 d7 e1 cc 47 d7 7d 1f d8 2a af e1 4d 44 cd 0b d9 22 ┆ * :B O Y G å * MD "┆ 0x005040…005060 af e1 c3 a3 da 3a d6 e1 21 42 d7 be c8 77 c3 21 e0 3e ff 32 de e1 2a 43 d7 7e e6 1f 3d 32 d6 e1 ┆ : !B w ! > 2 *C ü =2 ┆ 0x005060…005080 fe 1e d2 75 e0 3a 42 d7 32 df e1 7e 32 e0 e1 e6 e0 77 cd 45 e0 3a 41 d7 2a 43 d7 b6 77 c9 3e 22 ┆ u :B 2 ü2 w E :A *C w >"┆ 0x005080…0050a0 c3 01 d7 21 00 00 22 ad e1 22 af e1 af 32 42 d7 21 80 00 22 b1 e1 cd da d9 c3 21 e0 cd 72 d9 cd ┆ ! " " 2B ! " ! r ┆ 0x0050a0…0050c0 51 e0 c3 51 dc cd 51 e0 c3 a2 dc 0e 00 eb 7e fe 3f ca c2 e0 cd a6 d8 7e fe 3f c4 72 d9 cd 51 e0 ┆Q Q Q ü ? ü ? r Q ┆ 0x0050c0…0050e0 0e 0f cd 18 db c3 e9 d9 2a d9 e1 22 43 d7 cd 51 e0 cd 2d db c3 e9 d9 cd 51 e0 cd 9c db c3 01 db ┆ * "C Q - Q ┆ 0x0050e0…005100 cd 51 e0 c3 bc dd cd 51 e0 c3 fe dd cd 72 d9 cd 51 e0 c3 24 dd cd 51 e0 cd 16 dc c3 01 db 2a af ┆ Q Q r Q $ Q * ┆ 0x005100…005120 e1 c3 29 e1 3a 42 d7 c3 01 d7 eb 22 b1 e1 c3 da d9 2a bf e1 c3 29 e1 2a ad e1 c3 29 e1 cd 51 e0 ┆ ) :B " * ) * ) Q ┆ 0x005120…005140 cd 3b dc c3 01 db 2a bb e1 22 45 d7 c9 3a d6 e1 fe ff c2 3b e1 3a 41 d7 c3 01 d7 e6 1f 32 41 d7 ┆ ; * "E : ; :A 2A ┆ 0x005140…005160 c9 cd 51 e0 c3 93 df cd 51 e0 c3 9c df cd 51 e0 c3 d2 df 2a 43 d7 7d 2f 5f 7c 2f 2a af e1 a4 57 ┆ Q Q Q *C å/_ø/* W┆ 0x005160…005180 7d a3 5f 2a ad e1 eb 22 af e1 7d a3 6f 7c a2 67 22 ad e1 c9 3a de e1 b7 ca 91 e1 2a 43 d7 36 00 ┆å _* " å oø g" : *C 6 ┆ 0x005180…0051a0 3a e0 e1 b7 ca 91 e1 77 3a df e1 32 d6 e1 cd 45 e0 2a 0f d7 f9 2a 45 d7 7d 44 c9 cd 51 e0 3e 02 ┆: w: 2 E * *E åD Q > ┆ 0x0051a0…0051c0 32 d5 e1 0e 00 cd 07 df cc 03 de c9 e5 00 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆2 ┆ 0x0051c0…0051e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x1…] 0x005200…005400 (1, 0, 12) 0xe5[0x200] 0x005400…005420 (1, 0, 13) cc cd d5 cd c3 86 d3 4e 4f 20 53 50 41 43 45 00 cd 5e ce c2 09 ce 3a f0 d3 f5 cd 54 d0 cd e9 cc ┆ NO SPACE ^ : T ┆ 0x005420…005440 c2 79 d2 21 cd d3 11 dd d3 06 10 cd 42 d0 2a 88 cc eb cd 4f ce fe 3d ca 3f d2 fe 5f c2 73 d2 eb ┆ y ! B * O = ? _ s ┆ 0x005440…005460 23 22 88 cc cd 5e ce c2 73 d2 f1 47 21 f0 d3 7e b7 ca 59 d2 b8 70 c2 73 d2 70 af 32 cd d3 cd e9 ┆#" ^ s G! ü Y p s p 2 ┆ 0x005460…005480 cc ca 6d d2 11 cd d3 cd 0e cd c3 86 d3 cd ea cf c3 86 d3 cd 66 d0 c3 09 ce 01 82 d2 cd a7 cc c3 ┆ m f ┆ 0x005480…0054a0 86 d3 46 49 4c 45 20 45 58 49 53 54 53 00 cd f8 cf fe 10 d2 09 ce 5f 3a ce d3 fe 20 ca 09 ce cd ┆ FILE EXISTS _: ┆ 0x0054a0…0054c0 15 cd c3 89 d3 cd f5 cd 3a ce d3 fe 20 c2 c4 d2 3a f0 d3 b7 ca 89 d3 3d 32 ef d3 cd 29 cd cd bd ┆ : : =2 ) ┆ 0x0054c0…0054e0 cc c3 89 d3 11 d6 d3 1a fe 20 c2 09 ce d5 cd 54 d0 d1 21 83 d3 cd 40 d0 cd d0 cc ca 6b d3 21 00 ┆ T ! @ k ! ┆ 0x0054e0…005500 01 e5 eb cd d8 cd 11 cd d3 cd f9 cc c2 01 d3 e1 11 80 00 19 11 00 cc 7d 93 7c 9a d2 71 d3 c3 e1 ┆ å ø q ┆ 0x005500…005520 d2 e1 3d c2 71 d3 cd 66 d0 cd 5e ce 21 f0 d3 e5 7e 32 cd d3 3e 10 cd 60 ce e1 7e 32 dd d3 af 32 ┆ = q f ^ ! ü2 > ` ü2 2┆ 0x005520…005540 ed d3 11 5c 00 21 cd d3 06 21 cd 42 d0 21 08 cc 7e b7 ca 3e d3 fe 20 ca 3e d3 23 c3 30 d3 06 00 ┆ Ø ! ! B ! ü > > # 0 ┆ 0x005540…005560 11 81 00 7e 12 b7 ca 4f d3 04 23 13 c3 43 d3 78 32 80 00 cd 98 cc cd d5 cd cd 1a cd cd 00 01 31 ┆ ü O # C x2 1┆ 0x005560…005580 ab d3 cd 29 cd cd bd cc c3 82 cf cd 66 d0 c3 09 ce 01 7a d3 cd a7 cc c3 86 d3 42 41 44 20 4c 4f ┆ ) f z BAD LO┆ 0x005580…0055a0 41 44 00 43 4f 4d cd 66 d0 cd 5e ce 3a ce d3 d6 20 21 f0 d3 b6 c2 09 ce c3 82 cf 00 00 00 00 00 ┆AD COM f ^ : ! ┆ 0x0055a0…0055c0 00 00 00 00 00 00 00 00 00 00 00 00 00 24 24 24 20 20 20 20 20 53 55 42 00 00 00 00 00 00 00 00 ┆ $$$ SUB ┆ 0x0055c0…0055e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x1…] 0x005600…005620 (1, 0, 14) ff 22 ea e1 c9 2a c8 e1 eb 2a ea e1 23 22 ea e1 cd 95 d9 d2 19 da c3 fe d9 3a ea e1 e6 03 06 05 ┆ " * * #" : ┆ 0x005620…005640 87 05 c2 20 da 32 e9 e1 b7 c0 c5 cd c3 d7 cd d4 d9 c1 c3 9e d9 79 e6 07 3c 5f 57 79 0f 0f 0f e6 ┆ 2 y <_Wy ┆ 0x005640…005660 1f 4f 78 87 87 87 87 87 b1 4f 78 0f 0f 0f e6 1f 47 2a bf e1 09 7e 07 1d c2 56 da c9 d5 cd 35 da ┆ Ox Ox G* ü V 5 ┆ 0x005660…005680 e6 fe c1 b1 0f 15 c2 64 da 77 c9 cd 5e d9 11 10 00 19 c5 0e 11 d1 0d c8 d5 3a dd e1 b7 ca 88 da ┆ d w ^ : ┆ 0x005680…0056a0 c5 e5 4e 06 00 c3 8e da 0d c5 4e 23 46 e5 79 b0 ca 9d da 2a c6 e1 7d 91 7c 98 d4 5c da e1 23 c1 ┆ N N#F y * å ø Ø # ┆ 0x0056a0…0056c0 c3 75 da 2a c6 e1 0e 03 cd ea d8 23 44 4d 2a bf e1 36 00 23 0b 78 b1 c2 b1 da 2a ca e1 eb 2a bf ┆ u * #DM* 6 # x * * ┆ 0x0056c0…0056e0 e1 73 23 72 cd a1 d7 2a b3 e1 36 03 23 36 00 cd fe d9 0e ff cd 05 da cd f5 d9 c8 cd 5e d9 3e e5 ┆ s#r * 6 #6 ^ > ┆ 0x0056e0…005700 be ca d2 da 3a 41 d7 be c2 f6 da 23 7e d6 24 c2 f6 da 3d 32 45 d7 0e 01 cd 6b da cd 8c d9 c3 d2 ┆ :A #ü $ =2E k ┆ 0x005700…005720 da 3a d4 e1 c3 01 d7 c5 f5 3a c5 e1 2f 47 79 a0 4f f1 a0 91 e6 1f c1 c9 3e ff 32 d4 e1 21 d8 e1 ┆ : : /Gy O > 2 ! ┆ 0x005720…005740 71 2a 43 d7 22 d9 e1 cd fe d9 cd a1 d7 0e 00 cd 05 da cd f5 d9 ca 94 db 2a d9 e1 eb 1a fe e5 ca ┆q*C " * ┆ 0x005740…005760 4a db d5 cd 7f d9 d1 d2 94 db cd 5e d9 3a d8 e1 4f 06 00 79 b7 ca 83 db 1a fe 3f ca 7c db 78 fe ┆J ^ : O y ? ø x ┆ 0x005760…005780 0d ca 7c db fe 0c 1a ca 73 db 96 e6 7f c2 2d db c3 7c db c5 4e cd 07 db c1 c2 2d db 13 23 04 0d ┆ ø s - ø N - # ┆ 0x005780…0057a0 c3 53 db 3a ea e1 e6 03 32 45 d7 21 d4 e1 7e 17 d0 af 77 c9 cd fe d9 3e ff c3 01 d7 cd 54 d9 0e ┆ S : 2E ! ü w > T ┆ 0x0057a0…0057c0 0c cd 18 db cd f5 d9 c8 cd 44 d9 cd 5e d9 36 e5 0e 00 cd 6b da cd c6 d9 cd 2d db c3 a4 db 50 59 ┆ D ^ 6 k - PY┆ 0x0057c0…0057e0 79 b0 ca d1 db 0b d5 c5 cd 35 da 1f d2 ec db c1 d1 2a c6 e1 7b 95 7a 9c d2 f4 db 13 c5 d5 42 4b ┆y 5 * æ z BK┆ 0x0057e0…005800 cd 35 da 1f d2 ec db d1 c1 c3 c0 db 17 3c cd 64 da e1 d1 c9 79 b0 c2 c0 db 21 00 00 c9 0e 00 1e ┆ 5 < d y ! ┆ 0x005800…005a00 (1, 0, 15) 0xe5[0x200] […0xf…] 0x007800…007820 (2, 0, 1) [0, 'CHAININF.COM', 0, 43, 'xl=00', 'bc=00', 'xh=00', 'rc=2b', '0-0-0-0-0-0-0-0-0-0-0', [2, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]] 0x007820…007840 [0, 'FORMAT.COM', 0, 128, 'xl=00', 'bc=00', 'xh=00', 'rc=80', '0-0-0-0-0-0-0-0-0-0-0', [5, 0, 6, 0, 7, 0, 8, 0, 9, 0, 10, 0, 11, 0, 12, 0]] 0x007840…007860 [0, 'FORMAT.COM', 1, 128, 'xl=01', 'bc=00', 'xh=00', 'rc=80', '0-0-0-0-0-0-0-0-0-0-0', [13, 0, 14, 0, 15, 0, 16, 0, 17, 0, 18, 0, 19, 0, 20, 0]] 0x007860…007880 [0, 'FORMAT.COM', 2, 41, 'xl=02', 'bc=00', 'xh=00', 'rc=29', '0-0-0-0-0-0-0-0-0-0-0', [21, 0, 22, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]] 0x007880…0078a0 [0, 'ENTRYME.COM', 0, 128, 'xl=00', 'bc=00', 'xh=00', 'rc=80', '0-0-0-0-0-0-0-0-0-0-0', [24, 0, 25, 0, 26, 0, 27, 0, 28, 0, 29, 0, 30, 0, 31, 0]] 0x0078a0…0078c0 [0, 'ENTRYME.COM', 1, 128, 'xl=01', 'bc=00', 'xh=00', 'rc=80', '0-0-0-0-0-0-0-0-0-0-0', [32, 0, 33, 0, 34, 0, 35, 0, 36, 0, 37, 0, 38, 0, 39, 0]] 0x0078c0…0078e0 [0, 'ENTRYME.COM', 2, 11, 'xl=02', 'bc=00', 'xh=00', 'rc=0b', '0-0-0-0-0-0-0-0-0-0-0', [40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]] 0x0078e0…007900 [0, 'ENTRY.COM', 0, 128, 'xl=00', 'bc=00', 'xh=00', 'rc=80', '0-0-0-0-0-0-0-0-0-0-0', [41, 0, 42, 0, 43, 0, 44, 0, 45, 0, 46, 0, 47, 0, 48, 0]] 0x007900…007920 [0, 'ENTRY.COM', 1, 128, 'xl=01', 'bc=00', 'xh=00', 'rc=80', '0-0-0-0-0-0-0-0-0-0-0', [49, 0, 50, 0, 51, 0, 52, 0, 53, 0, 54, 0, 55, 0, 56, 0]] 0x007920…007940 [0, 'ENTRY.COM', 2, 49, 'xl=02', 'bc=00', 'xh=00', 'rc=31', '0-0-0-0-0-0-0-0-0-0-0', [57, 0, 58, 0, 59, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0]] 0x007940…007960 [0, 'VERIFY.COM', 0, 128, 'xl=00', 'bc=00', 'xh=00', 'rc=80', '0-0-0-0-0-0-0-0-0-0-0', [61, 0, 62, 0, 63, 0, 64, 0, 65, 0, 66, 0, 67, 0, 68, 0]] 0x007960…007980 [0, 'VERIFY.COM', 1, 128, 'xl=01', 'bc=00', 'xh=00', 'rc=80', '0-0-0-0-0-0-0-0-0-0-0', [69, 0, 70, 0, 71, 0, 72, 0, 73, 0, 74, 0, 75, 0, 76, 0]] 0x007980…0079a0 [0, 'VERIFY.COM', 2, 36, 'xl=02', 'bc=00', 'xh=00', 'rc=24', '0-0-0-0-0-0-0-0-0-0-0', [77, 0, 78, 0, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]] 0x0079a0…0079c0 [0, 'CHAININF.DEP', 0, 1, 'xl=00', 'bc=00', 'xh=00', 'rc=01', '0-0-0-0-0-0-0-0-0-0-0', [80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]] 0x0079c0…0079e0 [0, 'DEPFORM.DEP', 0, 0, 'xl=00', 'bc=00', 'xh=00', 'rc=00', '0-0-0-0-0-0-0-0-0-0-0', [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]] 0x0079e0…007a00 Dirent {Status=0xe5} 0x007a00…007a20 (2, 0, 2) e5 53 45 52 49 41 4c 20 20 42 41 4b 00 00 00 6a b3 00 b4 00 b5 00 b6 00 ba 00 bb 00 bc 00 00 00 ┆ SERIAL BAK j ┆ 0x007a20…007a40 e5 53 45 52 49 41 4c 20 20 50 52 4e 00 00 00 80 bd 00 4e 01 4f 01 51 01 52 01 53 01 54 01 55 01 ┆ SERIAL PRN N O Q R S T U ┆ 0x007a40…007a60 e5 53 45 52 49 41 4c 20 20 48 45 58 00 00 00 22 50 01 56 01 5a 01 00 00 00 00 00 00 00 00 00 00 ┆ SERIAL HEX "P V Z ┆ 0x007a60…007a80 e5 53 45 52 49 41 4c 20 20 50 52 4e 01 00 00 24 57 01 58 01 59 01 00 00 00 00 00 00 00 00 00 00 ┆ SERIAL PRN $W X Y ┆ 0x007a80…007aa0 e5 46 35 20 20 20 20 20 20 20 20 20 08 00 00 80 92 01 93 01 94 01 95 01 96 01 97 01 98 01 99 01 ┆ F5 ┆ 0x007aa0…007ac0 e5 46 35 20 20 20 20 20 20 20 20 20 09 00 00 80 9a 01 9b 01 9c 01 9d 01 9e 01 9f 01 a0 01 a1 01 ┆ F5 ┆ 0x007ac0…007ae0 e5 46 35 20 20 20 20 20 20 20 20 20 0a 00 00 80 a2 01 a3 01 a4 01 a5 01 a6 01 a7 01 a8 01 a9 01 ┆ F5 ┆ 0x007ae0…007b00 e5 46 35 20 20 20 20 20 20 20 20 20 0b 00 00 75 aa 01 ab 01 ac 01 ad 01 ae 01 af 01 b0 01 b1 01 ┆ F5 u ┆ 0x007b00…007b20 e5 46 35 20 20 20 20 20 20 20 20 20 0b 00 00 75 ab 01 ac 01 ad 01 ae 01 af 01 b0 01 b1 01 b2 01 ┆ F5 u ┆ 0x007b20…007b40 e5 50 31 20 20 20 20 20 20 43 4f 4d 01 00 00 7e ba 01 bb 01 bc 01 bd 01 be 01 bf 01 c0 01 c1 01 ┆ P1 COM ü ┆ 0x007b40…007b60 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 ┆ ┆ […0x5…] 0x007c00…007e00 (2, 0, 3) DataBlock {»CHAININF.COM«} […0x1…] 0x008000…008020 (2, 0, 5) e5 58 52 45 46 20 20 20 20 43 4f 4d 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ XREF COM ┆ 0x008020…008040 e5 44 41 54 41 53 54 41 52 43 4f 4d 00 00 00 80 4f 00 50 00 51 00 52 00 53 00 54 00 55 00 56 00 ┆ DATASTARCOM O P Q R S T U V ┆ 0x008040…008060 e5 44 41 54 41 53 54 41 52 43 4f 4d 01 00 00 3c 57 00 58 00 59 00 5a 00 00 00 00 00 00 00 00 00 ┆ DATASTARCOM <W X Y Z ┆ 0x008060…008080 e5 58 46 45 52 20 20 20 20 43 4f 4d 00 00 00 05 5b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ XFER COM Æ ┆ 0x008080…0080a0 e5 49 42 4d 43 50 4d 20 20 43 4f 4d 00 00 00 42 5c 00 5d 00 5e 00 5f 00 60 00 00 00 00 00 00 00 ┆ IBMCPM COM BØ Å ^ _ ` ┆ 0x0080a0…0080c0 e5 53 45 52 49 41 4c 20 20 43 4f 4d 00 00 00 0c 61 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ SERIAL COM a ┆ 0x0080c0…0080e0 e5 42 41 43 4b 55 50 20 20 43 4f 4d 00 00 00 08 62 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ BACKUP COM b ┆ 0x0080e0…008100 e5 41 53 53 49 47 4e 20 20 43 4f 4d 00 00 00 03 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ASSIGN COM c ┆ 0x008100…008120 e5 54 52 41 4e 53 46 45 52 43 4f 4d 00 00 00 07 64 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ TRANSFERCOM d ┆ 0x008120…008140 e5 57 53 4f 56 4c 59 31 20 4f 56 52 00 00 00 80 75 00 76 00 77 00 78 00 79 00 7a 00 7b 00 7c 00 ┆ WSOVLY1 OVR u v w x y z æ ø ┆ 0x008140…008160 e5 44 41 54 41 53 54 41 52 43 4f 4d 00 00 00 80 63 00 64 00 65 00 66 00 67 00 68 00 69 00 6a 00 ┆ DATASTARCOM c d e f g h i j ┆ 0x008160…008180 e5 44 41 54 41 53 54 41 52 43 4f 4d 01 00 00 3c 6b 00 6c 00 6d 00 6e 00 00 00 00 00 00 00 00 00 ┆ DATASTARCOM <k l m n ┆ 0x008180…0081a0 e5 57 53 4f 56 4c 59 31 20 4f 56 52 01 00 00 56 7d 00 7e 00 7f 00 80 00 81 00 82 00 00 00 00 00 ┆ WSOVLY1 OVR Vå ü ┆ 0x0081a0…0081c0 e5 57 53 4d 53 47 53 20 20 4f 56 52 00 00 00 80 83 00 84 00 85 00 86 00 87 00 88 00 89 00 8a 00 ┆ WSMSGS OVR ┆ 0x0081c0…0081e0 e5 57 53 4d 53 47 53 20 20 4f 56 52 01 00 00 44 8b 00 8c 00 8d 00 8e 00 8f 00 00 00 00 00 00 00 ┆ WSMSGS OVR D ┆ 0x0081e0…008200 e5 54 52 41 4e 53 46 45 52 41 53 4d 00 00 00 2e 91 00 92 00 a1 00 00 00 00 00 00 00 00 00 00 00 ┆ TRANSFERASM . ┆ 0x008200…008400 (2, 0, 6) 0xe5[0x200] 0x008400…008600 (2, 0, 7) DataBlock {»CHAININF.COM«} […0x1…] 0x008800…008820 (2, 0, 9) e5 54 52 41 4e 53 46 45 52 42 41 4b 00 00 00 2e 90 00 93 00 a0 00 00 00 00 00 00 00 00 00 00 00 ┆ TRANSFERBAK . ┆ 0x008820…008840 e5 54 52 41 4e 53 46 45 52 50 52 4e 00 00 00 54 94 00 95 00 96 00 a2 00 a3 00 b7 00 00 00 00 00 ┆ TRANSFERPRN T ┆ 0x008840…008860 e5 54 52 41 4e 53 46 45 52 48 45 58 00 00 00 12 97 00 b8 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ TRANSFERHEX ┆ 0x008860…008880 e5 56 45 52 59 20 20 20 20 42 41 44 00 00 00 07 98 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ VERY BAD ┆ 0x008880…0088a0 e5 46 56 4e 20 20 20 20 20 42 41 4b 00 00 00 38 e1 00 e2 00 e3 00 e4 00 00 00 00 00 00 00 00 00 ┆ FVN BAK 8 ┆ 0x0088a0…0088c0 e5 42 41 43 4b 55 50 20 20 42 41 4b 00 00 00 38 cc 00 cd 00 d0 00 da 00 00 00 00 00 00 00 00 00 ┆ BACKUP BAK 8 ┆ 0x0088c0…0088e0 e5 41 53 53 49 47 4e 20 20 41 53 4d 00 00 00 19 a4 00 a5 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ASSIGN ASM ┆ 0x0088e0…008900 e5 58 46 45 52 20 20 20 20 43 4f 4d 00 00 00 05 9c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ XFER COM ┆ 0x008900…008920 e5 49 42 4d 43 50 4d 20 20 43 4f 4d 00 00 00 42 a8 00 a9 00 aa 00 ab 00 ac 00 00 00 00 00 00 00 ┆ IBMCPM COM B ┆ 0x008920…008940 e5 41 53 53 49 47 4e 20 20 42 41 4b 00 00 00 19 ad 00 ae 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ASSIGN BAK ┆ 0x008940…008960 e5 53 45 52 49 41 4c 20 20 50 52 4e 00 00 00 80 bd 00 be 00 bf 00 c1 00 c2 00 c3 00 c4 00 c5 00 ┆ SERIAL PRN ┆ 0x008960…008980 e5 53 45 52 49 41 4c 20 20 48 45 58 00 00 00 22 c0 00 c6 00 ca 00 00 00 00 00 00 00 00 00 00 00 ┆ SERIAL HEX " ┆ 0x008980…0089a0 e5 53 45 52 49 41 4c 20 20 50 52 4e 01 00 00 24 c7 00 c8 00 c9 00 00 00 00 00 00 00 00 00 00 00 ┆ SERIAL PRN $ ┆ 0x0089a0…0089c0 e5 53 45 52 49 41 4c 20 20 43 4f 4d 00 00 00 0c cb 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ SERIAL COM ┆ 0x0089c0…0089e0 e5 42 41 43 4b 55 50 20 20 41 53 4d 00 00 00 38 a6 00 ce 00 cf 00 d1 00 00 00 00 00 00 00 00 00 ┆ BACKUP ASM 8 ┆ 0x0089e0…008a00 e5 42 41 43 4b 55 50 20 20 50 52 4e 00 00 00 64 d2 00 d3 00 d4 00 d6 00 d7 00 d8 00 dc 00 00 00 ┆ BACKUP PRN d ┆ 0x008a00…008c00 (2, 0, 10) 0xe5[0x200] 0x008c00…008e00 (2, 0, 11) DataBlock {»CHAININF.COM«} […0x1…] 0x009000…009020 (2, 0, 13) e5 42 41 43 4b 55 50 20 20 48 45 58 00 00 00 15 d5 00 d9 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ BACKUP HEX ┆ 0x009020…009040 e5 42 41 43 4b 55 50 20 20 43 4f 4d 00 00 00 08 db 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ BACKUP COM ┆ 0x009040…009060 e5 4d 45 52 47 50 52 49 4e 4f 56 52 00 00 00 3c dd 00 de 00 df 00 e0 00 00 00 00 00 00 00 00 00 ┆ MERGPRINOVR < ┆ 0x009060…009080 e5 46 56 4e 20 20 20 20 20 20 20 20 00 00 00 38 e5 00 e6 00 e7 00 e8 00 00 00 00 00 00 00 00 00 ┆ FVN 8 ┆ 0x009080…0090a0 e5 4c 50 20 20 20 20 20 20 20 20 20 00 00 00 01 e9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ LP ┆ 0x0090a0…0090c0 e5 42 20 20 20 20 20 20 20 20 20 20 01 00 00 56 f1 00 f2 00 f3 00 f4 00 f5 00 f6 00 00 00 00 00 ┆ B V ┆ 0x0090c0…0090e0 e5 53 54 41 54 34 20 20 20 43 4f 4d 00 00 00 29 e7 00 e8 00 e9 00 00 00 00 00 00 00 00 00 00 00 ┆ STAT4 COM ) ┆ 0x0090e0…009100 e5 53 54 41 54 35 20 20 20 43 4f 4d 00 00 00 29 ea 00 eb 00 ec 00 00 00 00 00 00 00 00 00 00 00 ┆ STAT5 COM ) ┆ 0x009100…009120 e5 46 34 20 20 20 20 20 20 20 20 20 08 00 00 80 2e 01 2f 01 30 01 31 01 32 01 33 01 34 01 35 01 ┆ F4 . / 0 1 2 3 4 5 ┆ 0x009120…009140 e5 46 34 20 20 20 20 20 20 20 20 20 09 00 00 80 36 01 37 01 38 01 39 01 3a 01 3b 01 3c 01 3d 01 ┆ F4 6 7 8 9 : ; < = ┆ 0x009140…009160 e5 46 34 20 20 20 20 20 20 20 20 20 0a 00 00 80 3e 01 3f 01 40 01 41 01 42 01 43 01 44 01 45 01 ┆ F4 > ? @ A B C D E ┆ 0x009160…009180 e5 46 34 20 20 20 20 20 20 20 20 20 0b 00 00 75 46 01 47 01 48 01 49 01 4a 01 4b 01 4c 01 4d 01 ┆ F4 uF G H I J K L M ┆ 0x009180…0091a0 e5 41 53 53 49 47 4e 20 20 50 52 4e 00 00 00 2e a7 00 af 00 b0 00 00 00 00 00 00 00 00 00 00 00 ┆ ASSIGN PRN . ┆ 0x0091a0…0091c0 e5 41 53 53 49 47 4e 20 20 48 45 58 00 00 00 07 b1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ASSIGN HEX ┆ 0x0091c0…0091e0 e5 41 53 53 49 47 4e 20 20 43 4f 4d 00 00 00 03 b2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ASSIGN COM ┆ 0x0091e0…009200 e5 54 52 41 4e 53 46 45 52 43 4f 4d 00 00 00 07 b9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ TRANSFERCOM ┆ 0x009200…009400 (2, 0, 14) 0xe5[0x200] 0x009400…009600 (2, 0, 15) DataBlock {»CHAININF.COM«} […0x1…] 0x009800…009820 (2, 1, 2) c2 fd 0c c9 0c 0d c8 29 c3 05 0d c5 3a 42 0b 4f 21 01 00 cd 04 0d c1 79 b5 6f 78 b4 67 c9 2a ad ┆ ) :B O! y ox g * ┆ 0x009820…009840 15 3a 42 0b 4f cd ea 0c 7d e6 01 c9 21 ad 15 4e 23 46 cd 0b 0d 22 ad 15 2a c8 15 23 eb 2a b3 15 ┆ :B O å ! N#F " * # * ┆ 0x009840…009860 73 23 72 c9 cd 5e 0d 11 09 00 19 7e 17 d0 21 0f 08 c3 4a 0b cd 1e 0d c8 21 0d 08 c3 4a 0b 2a b9 ┆s#r ^ ü ! J ! J * ┆ 0x009860…009880 15 3a e9 15 85 6f d0 24 c9 2a 43 0b 11 0e 00 19 7e c9 cd 69 0d 36 00 c9 cd 69 0d f6 80 77 c9 2a ┆ : o $ *C ü i 6 i w *┆ 0x009880…0098a0 ea 15 eb 2a b3 15 7b 96 23 7a 9e c9 cd 7f 0d d8 13 72 2b 73 c9 7b 95 6f 7a 9c 67 c9 0e ff 2a ec ┆ * æ #z r+s æ oz g * ┆ 0x0098a0…0098c0 15 eb 2a cc 15 cd 95 0d d0 c5 cd f7 0c 2a bd 15 eb 2a ec 15 19 c1 0c ca c4 0d be c8 cd 7f 0d d0 ┆ * * * ┆ 0x0098c0…0098e0 cd 2c 0d c9 77 c9 cd 9c 0d cd e0 0d 0e 01 cd b8 0b c3 da 0d cd e0 0d cd b2 0b 21 b1 15 c3 e3 0d ┆ , w ! ┆ 0x0098e0…009900 21 b9 15 4e 23 46 c3 24 16 2a b9 15 eb 2a b1 15 0e 80 c3 4f 0b 21 ea 15 7e 23 be c0 3c c9 21 ff ┆! N#F $ * * O ! ü# < ! ┆ 0x009900…009920 ff 22 ea 15 c9 2a c8 15 eb 2a ea 15 23 22 ea 15 cd 95 0d d2 19 0e c3 fe 0d 3a ea 15 e6 03 06 05 ┆ " * * #" : ┆ 0x009920…009940 87 05 c2 20 0e 32 e9 15 b7 c0 c5 cd c3 0b cd d4 0d c1 c3 9e 0d 79 e6 07 3c 5f 57 79 0f 0f 0f e6 ┆ 2 y <_Wy ┆ 0x009940…009960 1f 4f 78 87 87 87 87 87 b1 4f 78 0f 0f 0f e6 1f 47 2a bf 15 09 7e 07 1d c2 56 0e c9 d5 cd 35 0e ┆ Ox Ox G* ü V 5 ┆ 0x009960…009980 e6 fe c1 b1 0f 15 c2 64 0e 77 c9 cd 5e 0d 11 10 00 19 c5 0e 11 d1 0d c8 d5 3a dd 15 b7 ca 88 0e ┆ d w ^ : ┆ 0x009980…0099a0 c5 e5 4e 06 00 c3 8e 0e 0d c5 4e 23 46 e5 79 b0 ca 9d 0e 2a c6 15 7d 91 7c 98 d4 5c 0e e1 23 c1 ┆ N N#F y * å ø Ø # ┆ 0x0099a0…0099c0 c3 75 0e 2a c6 15 0e 03 cd ea 0c 23 44 4d 2a bf 15 36 00 23 0b 78 b1 c2 b1 0e 2a ca 15 eb 2a bf ┆ u * #DM* 6 # x * * ┆ 0x0099c0…0099e0 15 73 23 72 cd a1 0b 2a b3 15 36 03 23 36 00 cd fe 0d 0e ff cd 05 0e cd f5 0d c8 cd 5e 0d 3e e5 ┆ s#r * 6 #6 ^ > ┆ 0x0099e0…009a00 be ca d2 0e 3a 41 0b be c2 f6 0e 23 7e d6 24 c2 f6 0e 3d 32 45 0b 0e 01 cd 6b 0e cd 8c 0d c3 d2 ┆ :A #ü $ =2E k ┆ 0x009a00…009c00 (2, 1, 3) DataBlock {»FORMAT.COM«} […0x1…] 0x009e00…00a000 (2, 1, 5) DataBlock {»CHAININF.COM«} 0x00a000…00a200 (2, 1, 6) DataBlock {»FORMAT.COM«} […0x2…] 0x00a600…00a800 (2, 1, 9) DataBlock {»CHAININF.COM«} 0x00a800…00aa00 (2, 1, 10) DataBlock {»FORMAT.COM«} […0x2…] 0x00ae00…00af80 (2, 1, 13) DataBlock {»CHAININF.COM«} 0x00af80…00afa0 7d cd be 11 ca 05 15 fe 01 ca 91 14 fe 03 c2 02 15 60 69 22 60 16 21 a1 14 22 69 16 d1 c1 c3 ce ┆å `i"` ! "i ┆ 0x00afa0…00afc0 14 cd 4d 0e d0 cd 47 07 21 3e 00 c3 09 04 cd 3d 07 7c b2 c2 fe 03 2c ca c8 14 2d 3a 66 16 b7 ca ┆ M G !> = ø , -:f ┆ 0x00afc0…00afe0 05 15 e5 2a 67 16 e3 c9 21 9a 02 22 69 16 c5 d5 7b cd cf 09 e5 66 24 25 ca ec 14 d5 e5 21 e5 14 ┆ *g ! "i æ f$% ! ┆ 0x00afe0…00b000 e5 2a 69 16 e9 e1 d1 12 13 c3 d7 14 e1 d1 c1 c9 7c 92 c0 7d 93 c9 e5 21 00 00 22 60 16 e1 c9 f1 ┆ *i ø å ! "` ┆ 0x00b000…00b200 (2, 1, 14) DataBlock {»FORMAT.COM«} […0x3f…] 0x012e80…012ea0 c9 21 3f 8b 7e 07 37 1f 77 3f 1f 23 23 77 79 07 37 1f 4f 1f ae c9 2a 3d 8b e3 e5 2a 3f 8b e3 e9 ┆ !? ü 7 w? ##wy 7 O *= *? ┆ 0x012ea0…012ec0 e1 e3 22 3f 8b e1 e3 22 3d 8b c9 61 6a 53 58 cd f2 93 14 15 ca 89 94 4a 53 5c 45 21 40 8b 96 d2 ┆ "? "= ajSX JSØE!@ ┆ 0x012ec0…012ee0 89 94 2f 3c 77 c3 69 94 06 00 21 20 8b 7e b7 c2 e5 93 78 d6 38 c2 da 93 47 c9 c6 40 47 16 08 cd ┆ /<w i ! ü x 8 G @G ┆ 0x012ee0…012f00 50 94 c3 ca 93 fa f0 93 cd 3d 94 04 b7 f2 e5 93 78 c9 06 00 7c b7 c2 1f 94 b5 c2 06 94 b2 c2 0f ┆P = x ø ┆ 0x012f00…012f20 94 b3 c2 18 94 c9 65 6a 53 58 06 08 c3 1f 94 eb 11 00 00 06 10 c3 1f 94 63 68 11 00 00 06 18 7c ┆ ejSX ch ø┆ 0x012f20…012f40 b7 fa 34 94 7b 17 5f 7a 17 57 7d 17 6f 7c 17 67 04 c3 20 94 22 1b 8b eb 22 19 8b 78 c9 e5 21 19 ┆ 4 æ _z Wå oø g " " x ! ┆ 0x012f40…012f60 8b 1e 08 b7 7e 17 77 23 1d c2 44 94 e1 c9 16 04 cd 3d 94 15 c2 50 94 c9 11 71 94 d5 cd c3 6c 13 ┆ ü w# D = P q l ┆ 0x012f60…012f80 11 ff ff 4a 21 40 8b 71 c9 78 21 40 8b b7 fc 7b 94 46 23 7e e6 80 a9 4f c3 ab 94 1c c0 14 c0 0c ┆ J!@ q x!@ æ F#ü O ┆ 0x012f80…012fa0 c0 0e 80 34 c0 c3 5c 94 e1 af 67 6f 22 3d 8b 22 3f 8b c9 e5 cd b9 94 e1 73 23 72 23 71 23 70 c3 ┆ 4 Ø go"= "? s#r#q#p ┆ 0x012fa0…012fc0 cb 94 cd c3 94 e5 cd ae 94 e1 c9 cd cb 94 eb 22 3d 8b eb 60 69 22 3f 8b c9 2a 3d 8b eb 2a 3f 8b ┆ "= `i"? *= *? ┆ 0x012fc0…012fe0 44 4d c9 5e 23 56 23 4e 23 46 23 78 b7 c8 79 c3 da 94 3a 40 8b b7 c8 3a 3f 8b 17 9f b7 37 c0 c6 ┆DM ^#V#N#F#x y :@ :? 7 ┆ 0x012fe0…013000 01 c9 7c 2f 47 7d 2f 4f 03 21 00 00 3e 11 f5 b7 c3 fd 94 f5 e5 09 d2 fc 94 f1 37 3e e1 7b 17 5f ┆ ø/Gå/O ! > 7> æ _┆ 0x013000…013200 (5, 0, 3) DataBlock {»ENTRYME.COM«} […0x1…] 0x013400…013600 (5, 0, 5) DataBlock {»FORMAT.COM«} 0x013600…013620 (5, 0, 6) c3 33 04 20 20 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 39 37 39 2c 20 44 69 67 69 74 61 ┆ 3 Copyright (c) 1979, Digita┆ 0x013620…013640 6c 20 52 65 73 65 61 72 63 68 3f 3f 3f 3f 3f 3f 3f 3f 3f 3f 3f 3f 00 00 00 43 4f 4e 3a 52 44 52 ┆l Research???????????? CON:RDR┆ 0x013640…013660 3a 50 55 4e 3a 4c 53 54 3a 44 45 56 3a 56 41 4c 3a 55 53 52 3a 44 53 4b 3a 54 54 59 3a 43 52 54 ┆:PUN:LST:DEV:VAL:USR:DSK:TTY:CRT┆ 0x013660…013680 3a 42 41 54 3a 55 43 31 3a 54 54 59 3a 50 54 52 3a 55 52 31 3a 55 52 32 3a 54 54 59 3a 50 54 50 ┆:BAT:UC1:TTY:PTR:UR1:UR2:TTY:PTP┆ 0x013680…0136a0 3a 55 50 31 3a 55 50 32 3a 54 54 59 3a 43 52 54 3a 4c 50 54 3a 55 4c 31 3a 52 2f 4f 00 52 2f 57 ┆:UP1:UP2:TTY:CRT:LPT:UL1:R/O R/W┆ 0x0136a0…0136c0 00 53 59 53 00 44 49 52 00 52 2f 4f 20 52 2f 57 20 53 59 53 20 44 49 52 20 2a 2a 20 41 62 6f 72 ┆ SYS DIR R/O R/W SYS DIR ** Abor┆ 0x0136c0…0136e0 74 65 64 20 2a 2a 00 41 63 74 69 76 65 20 55 73 65 72 20 3a 00 41 63 74 69 76 65 20 46 69 6c 65 ┆ted ** Active User : Active File┆ 0x0136e0…013700 73 3a 00 20 20 20 20 00 20 44 72 69 76 65 20 43 68 61 72 61 63 74 65 72 69 73 74 69 63 73 00 36 ┆s: Drive Characteristics 6┆ 0x013700…013720 35 35 33 36 3a 20 00 31 32 38 20 42 79 74 65 20 52 65 63 6f 72 64 20 43 61 70 61 63 69 74 79 00 ┆5536: 128 Byte Record Capacity ┆ 0x013720…013740 4b 69 6c 6f 62 79 74 65 20 44 72 69 76 65 20 20 43 61 70 61 63 69 74 79 00 33 32 20 20 42 79 74 ┆Kilobyte Drive Capacity 32 Byt┆ 0x013740…013760 65 20 44 69 72 65 63 74 6f 72 79 20 45 6e 74 72 69 65 73 00 43 68 65 63 6b 65 64 20 20 44 69 72 ┆e Directory Entries Checked Dir┆ 0x013760…013780 65 63 74 6f 72 79 20 45 6e 74 72 69 65 73 00 52 65 63 6f 72 64 73 2f 20 45 78 74 65 6e 74 00 52 ┆ectory Entries Records/ Extent R┆ 0x013780…0137a0 65 63 6f 72 64 73 2f 20 42 6c 6f 63 6b 00 53 65 63 74 6f 72 73 2f 20 54 72 61 63 6b 00 52 65 73 ┆ecords/ Block Sectors/ Track Res┆ 0x0137a0…0137c0 65 72 76 65 64 20 54 72 61 63 6b 73 00 20 69 73 20 00 54 65 6d 70 20 52 2f 4f 20 44 69 73 6b 3a ┆erved Tracks is Temp R/O Disk:┆ 0x0137c0…0137e0 20 64 3a 3d 52 2f 4f 00 53 65 74 20 49 6e 64 69 63 61 74 6f 72 3a 20 64 3a 66 69 6c 65 6e 61 6d ┆ d:=R/O Set Indicator: d:filenam┆ 0x0137e0…013800 65 2e 74 79 70 20 24 52 2f 4f 20 24 52 2f 57 20 24 53 59 53 20 24 44 49 52 00 44 69 73 6b 20 53 ┆e.typ $R/O $R/W $SYS $DIR Disk S┆ 0x013800…013a00 (5, 0, 7) DataBlock {»ENTRYME.COM«} […0x1…] 0x013c00…013e00 (5, 0, 9) DataBlock {»FORMAT.COM«} 0x013e00…014000 (5, 0, 10) DataBlock {»ENTRYME.COM«} […0x2…] 0x014400…014600 (5, 0, 13) DataBlock {»FORMAT.COM«} 0x014600…014800 (5, 0, 14) DataBlock {»ENTRYME.COM«} […0x32…] 0x01ab80…01aba0 c5 cd 15 86 f1 b7 fc 8f 84 eb c9 cd b4 5e 89 af 4f 93 5f 79 9a 57 c9 21 74 7c 7e 2f 77 af 6f 90 ┆ ^ O _y W !tøü/w o ┆ 0x01aba0…01abc0 47 7d 9b 5f 7d 9a 57 7d 99 4f c9 cd c9 84 cd e1 85 c1 d1 c9 21 72 7c 7e 07 37 1f 77 3f 1f 23 23 ┆Gå _å Wå O !røü 7 w? ##┆ 0x01abc0…01abe0 77 79 07 37 1f 4f 1f ae c9 2a 70 7c e3 e5 2a 72 7c e3 e9 e1 e3 22 72 7c e1 e3 22 70 7c c9 61 6a ┆wy 7 O *pø *rø "rø "pø aj┆ 0x01abe0…01ac00 53 58 cd 25 85 14 15 ca bc 85 4a 53 5c 45 21 73 7c 96 d2 bc 85 2f 3c 77 c3 9c 85 06 00 21 53 7c ┆SX % JSØE!sø /<w !Sø┆ 0x01ac00…01ae00 (7, 0, 5) DataBlock {»ENTRYME.COM«} […0x2…] 0x01b200…01b220 (7, 0, 8) 45 53 45 4e 54 2a 2a 2a 0d 0a 00 00 00 00 00 00 12 5e 10 70 ff 07 00 00 00 23 5d 42 49 53 2d 30 ┆ESENT*** ^ p #ÅBIS-0┆ 0x01b220…01b240 34 35 20 55 4e 41 42 4c 45 20 54 4f 20 4c 4f 41 44 20 42 49 53 33 37 38 30 43 2e 43 4f 4d 0d 0a ┆45 UNABLE TO LOAD BIS3780C.COM ┆ 0x01b240…01b260 24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5a 58 5a 58 5a 58 5a 5c 00 00 00 00 00 00 00 01 ┆$ ZXZXZXZØ ┆ 0x01b260…01b280 10 ac 00 00 00 00 00 00 00 00 4c 50 3a 41 3a 00 42 49 53 33 37 38 30 43 43 4f 4d 00 00 00 00 00 ┆ LP:A: BIS3780CCOM ┆ 0x01b280…01b2a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1a 5f 1a 5f 9b 5e 1a 5f 00 00 01 1e c8 5c 01 ┆ _ _ ^ _ Ø ┆ 0x01b2a0…01b2c0 ff e4 5c 2a 2a 54 52 41 4e 53 4d 49 54 54 45 44 20 44 41 54 41 2a 2a 0d 0a 2a 2a 2a 52 45 43 45 ┆ Ø**TRANSMITTED DATA** ***RECE┆ 0x01b2c0…01b2e0 49 56 45 44 20 44 41 54 41 2a 2a 2a 2a 0d 0a 2a 2a 2a 45 4e 44 20 4f 46 20 44 49 41 47 4e 4f 53 ┆IVED DATA**** ***END OF DIAGNOS┆ 0x01b2e0…01b300 54 49 43 20 44 55 4d 50 2a 2a 2a 0d 0a 2a 2a 2a 4e 4f 20 54 52 41 43 45 20 44 41 54 41 20 50 52 ┆TIC DUMP*** ***NO TRACE DATA PR┆ 0x01b300…01b320 45 53 45 4e 54 2a 2a 2a 0d 0a 00 00 00 00 00 00 12 5e 10 70 ff 07 00 00 00 23 5d 42 49 53 2d 30 ┆ESENT*** ^ p #ÅBIS-0┆ 0x01b320…01b340 34 35 20 55 4e 41 42 4c 45 20 54 4f 20 4c 4f 41 44 20 42 49 53 33 37 38 30 43 2e 43 4f 4d 0d 0a ┆45 UNABLE TO LOAD BIS3780C.COM ┆ 0x01b340…01b360 24 00 00 00 00 00 00 00 00 61 60 79 60 95 60 ab 60 c5 60 e1 60 01 61 17 61 31 61 31 61 31 61 31 ┆$ a`y` ` ` ` ` a a1a1a1a1┆ 0x01b360…01b380 61 04 00 00 50 00 1c 33 89 2d 07 6a 60 2a 26 57 2e f6 30 04 2c 65 30 57 26 04 00 00 50 00 1c 33 ┆a P 3 - j`*&W. 0 ,e0W& P 3┆ 0x01b380…01b3a0 89 2d 09 82 60 2a 26 57 2e f6 30 04 2c 65 30 98 21 a4 20 37 27 04 00 00 50 00 10 33 64 2d 06 9e ┆ - `*&W. 0 ,e0 ! 7' P 3d- ┆ 0x01b3a0…01b3c0 60 2a 26 63 2e cc 30 28 33 57 26 04 00 00 50 00 10 33 64 2d 08 b4 60 2a 26 63 2e cc 30 28 33 98 ┆`*&c. 0(3W& P 3d- `*&c. 0(3 ┆ 0x01b3c0…01b3e0 21 a4 20 37 27 00 00 02 50 00 1c 33 89 2d 09 ce 60 2a 26 56 26 20 2c 6f 2e 04 2c 65 30 88 33 57 ┆! 7' P 3 - `*&V& ,o. ,e0 3W┆ 0x01b3e0…01b400 26 00 00 02 50 00 1c 33 89 2d 0b ea 60 2a 26 56 26 20 2c 6f 2e 04 2c 65 30 cb 2d 88 33 a4 20 37 ┆& P 3 - `*&V& ,o. ,e0 - 3 7┆ 0x01b400…01b600 (7, 0, 9) DataBlock {»ENTRYME.COM«} […0x2…] 0x01ba00…01bc00 (7, 0, 12) DataBlock {»ENTRY.COM«} 0x01bc00…01be00 (7, 0, 13) DataBlock {»ENTRYME.COM«} […0x2…] 0x01c200…01c400 (7, 1, 1) DataBlock {»ENTRY.COM«} […0x4b…] 0x025880…0258a0 5c 8f 7e 2f 77 af 6f 90 47 7d 9b 5f 7d 9a 57 7d 99 4f c9 cd b1 97 cd c9 98 c1 d1 c9 21 5a 8f 7e ┆Ø ü/w o Gå _å Wå O !Z ü┆ 0x0258a0…0258c0 07 37 1f 77 3f 1f 23 23 77 79 07 37 1f 4f 1f ae c9 2a 58 8f e3 e5 2a 5a 8f e3 e9 e1 e3 22 5a 8f ┆ 7 w? ##wy 7 O *X *Z "Z ┆ 0x0258c0…0258e0 e1 e3 22 58 8f c9 61 6a 53 58 cd 0d 98 14 15 ca a4 98 4a 53 5c 45 21 5b 8f 96 d2 a4 98 2f 3c 77 ┆ "X ajSX JSØE!Æ /<w┆ 0x0258e0…025900 c3 84 98 06 00 21 3b 8f 7e b7 c2 00 98 78 d6 38 c2 f5 97 47 c9 c6 40 47 16 08 cd 6b 98 c3 e5 97 ┆ !; ü x 8 G @G k ┆ 0x025900…025920 fa 0b 98 cd 58 98 04 b7 f2 00 98 78 c9 06 00 7c b7 c2 3a 98 b5 c2 21 98 b2 c2 2a 98 b3 c2 33 98 ┆ X x ø : ! * 3 ┆ 0x025920…025940 c9 65 6a 53 58 06 08 c3 3a 98 eb 11 00 00 06 10 c3 3a 98 63 68 11 00 00 06 18 7c b7 fa 4f 98 7b ┆ ejSX : : ch ø O æ┆ 0x025940…025960 17 5f 7a 17 57 7d 17 6f 7c 17 67 04 c3 3b 98 22 36 8f eb 22 34 8f 78 c9 e5 21 34 8f 1e 08 b7 7e ┆ _z Wå oø g ; "6 "4 x !4 ü┆ 0x025960…025980 17 77 23 1d c2 5f 98 e1 c9 16 04 cd 58 98 15 c2 6b 98 c9 11 8c 98 d5 cd 38 71 13 11 ff ff 4a 21 ┆ w# _ X k 8q J!┆ 0x025980…0259a0 5b 8f 71 c9 78 21 5b 8f b7 fc 96 98 46 23 7e e6 80 a9 4f c3 c6 98 1c c0 14 c0 0c c0 0e 80 34 c0 ┆Æ q x!Æ F#ü O 4 ┆ 0x0259a0…0259c0 c3 77 98 e1 af 67 6f 22 58 8f 22 5a 8f c9 e5 cd d4 98 e1 73 23 72 23 71 23 70 c3 e6 98 cd de 98 ┆ w go"X "Z s#r#q#p ┆ 0x0259c0…0259e0 e5 cd c9 98 e1 c9 cd e6 98 eb 22 58 8f eb 60 69 22 5a 8f c9 2a 58 8f eb 2a 5a 8f 44 4d c9 5e 23 ┆ "X `i"Z *X *Z DM ^#┆ 0x0259e0…025a00 56 23 4e 23 46 23 78 b7 c8 79 c3 f5 98 3a 5b 8f b7 c8 3a 5a 8f 17 9f b7 37 c0 c6 01 c9 7c 2f 47 ┆V#N#F#x y :Æ :Z 7 ø/G┆ 0x025a00…025c00 (10, 0, 2) DataBlock {»VERIFY.COM«} […0x2…] 0x026000…026200 (10, 0, 5) 0x00[0x200] 0x026200…026400 (10, 0, 6) DataBlock {»VERIFY.COM«} […0x2…] 0x026800…026a00 (10, 0, 9) 0x00[0x200] 0x026a00…026c00 (10, 0, 10) DataBlock {»VERIFY.COM«} […0x2…] 0x027000…027200 (10, 0, 13) 0x00[0x200] 0x027200…027400 (10, 0, 14) DataBlock {»VERIFY.COM«} […0x3e…] 0x02f000…02f020 (12, 1, 2) 06 cd 73 07 21 0d 44 7e b7 c2 26 07 36 ff cd 8d 0e 11 71 0a cd 7e 07 2a c0 39 22 61 0a 2a c2 39 ┆ s ! Dü & 6 q ü * 9"a * 9┆ 0x02f020…02f040 22 63 0a c3 61 03 21 71 0a cd a4 07 c3 61 03 cd ad 07 ca 41 07 2a 71 11 22 65 0a cd 68 2d cd d5 ┆"c a !q a A *q "e h- ┆ 0x02f040…02f060 09 cd 92 07 2a 2b 2c 3a 5c 0a fe 05 ca 5c 07 fe 00 ca 61 03 7c b5 ca 3a 08 c3 61 03 7c b5 c2 6a ┆ *+,:Ø Ø a ø : a ø j┆ 0x02f060…02f080 07 cd af 05 cd eb 2c c3 61 03 21 7f 43 cd 77 3a c3 fe 06 21 5c 0a 7e 36 08 11 68 0a 12 13 21 69 ┆ , a ! C w: !Ø ü6 h !i┆ 0x02f080…02f0a0 11 06 08 cd b7 38 c9 3a a8 18 b7 c8 3a 5c 0a fe 08 c0 cd 9c 07 cd 0e 09 cd 6d 21 c9 21 68 0a 7e ┆ 8 : :Ø m! !h ü┆ 0x02f0a0…02f0c0 32 5c 0a 23 11 69 11 06 08 cd b7 38 c9 cd 63 0c 2a 27 2c 11 5c 00 af 12 7e fe 0d c8 d6 41 23 da ┆2Ø # i 8 c *', Ø ü A# ┆ 0x02f0c0…02f0e0 c7 07 3c 12 36 3a 23 e5 d5 da ce 07 2b 2b 01 0d 0e eb 2a 6d 43 cd b2 40 eb cd e2 07 d1 e1 13 01 ┆ < 6:# ++ *mC @ ┆ 0x02f0e0…02f100 0d 0b 7e 23 b9 c2 eb 07 3e 20 2b 12 13 05 c2 e2 07 23 b7 c9 21 67 0a 7e b7 c8 36 00 cd ac 30 2a ┆ ü# > + # !g ü 6 0*┆ 0x02f100…02f120 61 0a 22 c0 39 2a 63 0a 22 c2 39 2a 65 0a 22 71 11 cd 72 2d c9 3e 40 c3 1b 08 af 0e bf cd 23 08 ┆a " 9*c " 9*e "q r- >@ # ┆ 0x02f120…02f140 c3 61 03 47 21 5b 0a 7e a1 b0 77 c9 3e 80 c3 32 08 af 0e 7f cd 23 08 c3 47 08 06 00 c3 5a 08 06 ┆ a G!Æ ü w > 2 # G Z ┆ 0x02f140…02f160 01 c3 ca 08 cd 5d 0c 06 02 af 32 60 0a c3 ca 08 06 03 c3 ca 08 06 04 cd eb 2c cd d0 08 cd 6b 08 ┆ Å 2` , k ┆ 0x02f160…02f180 ca fe 06 c3 44 07 06 05 c3 57 08 3a 5c 0a fe 04 ca 83 08 fe 05 ca 83 08 fe 00 c0 3a 69 11 e6 01 ┆ D W :Ø :i ┆ 0x02f180…02f1a0 fe 01 c0 3a 67 0a b7 c9 2a 2b 2c eb 21 5c 0a 7e fe ff c2 a6 08 d5 06 00 cd d0 08 d1 7a b3 c4 7d ┆ :g *+, !Ø ü z å┆ 0x02f1a0…02f1c0 16 d8 0e 0a 37 c9 7e fe 08 c8 cd 6b 08 c2 b7 08 cd 7d 16 d2 b0 08 c9 7e fe 00 c8 fe 05 c8 7a b3 ┆ 7 ü k å ü z ┆ 0x02f1c0…02f1e0 c0 21 79 43 cd 77 3a c3 b0 08 cd d0 08 c3 61 03 21 5c 0a 70 eb 3a 5c 0a fe 08 c2 e0 08 3a 68 0a ┆ !yC w: a !Ø p :Ø :h ┆ 0x02f1e0…02f200 fe 02 da f3 08 c2 f2 08 3a 5b 0a e6 80 3e 02 ca f3 08 3c 2a 65 43 44 4d 2a 63 43 cd b2 40 b7 ca ┆ :Æ > <*eCDM*cC @ ┆ 0x02f200…02f220 (12, 1, 3) 44 4d 2a 52 11 22 58 11 22 5a 11 e5 cd 40 0e cd ab 18 cd 56 0c 13 e1 eb cd c8 2d 44 4d 2a 52 11 ┆DM*R "X "Z @ V -DM*R ┆ 0x02f220…02f240 22 5a 11 cd 40 0e 44 4d 2a 52 11 cd f1 2c 11 5d 11 3a 5c 0a d6 05 ca 3b 0f af 12 cd 2a 10 cd 8c ┆"Z @ DM*R , Å :Ø ; * ┆ 0x02f240…02f260 2d 22 71 11 af 32 73 11 cd a1 0b cd b8 11 e5 21 00 00 22 29 2c 3a 82 18 e6 40 ca 0b 10 2a 94 18 ┆-"q 2s ! "),: @ * ┆ 0x02f260…02f280 23 23 7e 3d ca 0b 10 21 98 18 22 2d 2c 36 01 23 3a 89 18 77 23 3a 7d 18 77 2a 94 18 eb 3a 82 18 ┆##ü= ! "-,6 #: w#:å w* : ┆ 0x02f280…02f2a0 e6 80 3e 07 c2 89 0f 3e 03 cd 2a 10 cd 8c 2d 22 96 18 2a 94 18 11 5c 00 06 09 cd b7 38 3a 73 11 ┆ > > * -" * Ø 8:s ┆ 0x02f2a0…02f2c0 4f af 32 9b 18 47 cd a1 0b e5 04 cd 34 0c eb 21 04 00 19 7e e6 04 ca d2 0f 21 0d 00 19 79 be c2 ┆O 2 G 4 ! ü ! y ┆ 0x02f2c0…02f2e0 d2 0f 3a 9b 18 77 78 32 9b 18 21 04 00 19 7e e6 fb 77 e1 cd 65 0b c2 a9 0f 11 96 18 2a 94 18 eb ┆ : wx2 ! ü w e * ┆ 0x02f2e0…02f300 06 06 cd b7 38 2a a0 18 cd b8 11 3a 82 18 e6 40 ca 01 10 2a 94 18 11 5c 00 06 09 cd 1d 10 ca a1 ┆ 8* : @ * Ø ┆ 0x02f300…02f320 0f 2a a0 18 0c cd 65 0b c2 e8 0f 21 73 11 34 e1 cd 65 0b c2 4b 0f 2a 71 11 cd 72 2d c9 1a be c0 ┆ * e !s 4 e K *q r- ┆ 0x02f320…02f340 23 13 05 c2 1d 10 c9 cd 65 10 21 29 44 d5 cd 45 10 d1 2a 44 2c 22 32 2c 21 2c 44 cd 45 10 cd 67 ┆# e !)D E *D,"2,!,D E g┆ 0x02f340…02f360 2c c2 11 11 c9 4f cd 72 10 79 c5 cd cf 2d c1 ca 63 10 c5 1a b7 cc b7 10 12 79 f6 80 cd f0 2d c2 ┆, O r y - c y - ┆ 0x02f360…02f380 11 11 c1 79 c9 d5 f5 0e 0d cd 54 39 cd 53 0b f1 d1 c9 d5 c5 eb 01 09 00 09 eb 06 03 cd b7 38 c1 ┆ y T9 S 8 ┆ 0x02f380…02f3a0 d1 c9 2a 32 2c 7e 32 5d 11 cd 8f 10 2a 44 2c e5 eb 21 10 00 45 19 eb cd b7 38 23 11 5e 11 06 08 ┆ *2,ü2Å *D, ! E 8# ^ ┆ 0x02f3a0…02f3c0 eb cd b7 38 d1 0e 17 cd 54 39 c9 e5 c5 21 a3 43 06 01 cd b9 3f c1 e1 e5 d5 c5 21 80 00 06 08 13 ┆ 8 T9 ! C ? ! ┆ 0x02f3c0…02f3e0 cd 01 11 3e 2e cd 0d 11 06 03 1a f5 cd 01 11 36 00 f1 fe 4e 21 9f 43 06 08 c2 e0 10 21 a1 43 04 ┆ >. 6 N! C ! C ┆ 0x02f3e0…02f400 cd b9 3f cd 1d 41 4f cd 23 3e 79 c1 d1 e1 fe 03 ca 00 00 e6 5f d6 41 fa ab 10 fe 10 d2 ab 10 3c ┆ ? AO #>y _ A <┆ 0x02f400…02f420 (12, 1, 4) 17 0e 11 c3 0d 17 0e 13 c3 0d 17 0e 0a 79 32 a8 18 37 c9 3a 5c 0a fe 02 c2 6a 18 37 c9 cd 35 17 ┆ y2 7 :Ø j 7 5 ┆ 0x02f420…02f440 ca 6a 18 c9 21 a2 18 7e 36 00 f5 cd 94 17 f1 be ca 35 17 b7 c9 3a 7e 0a b7 c8 37 c9 cd 8c 17 d8 ┆ j ! ü6 5 :ü 7 ┆ 0x02f440…02f460 cd 51 17 ca 3c 17 cd 8c 17 d8 cd 51 17 c2 46 17 c9 d5 cd ae 14 d1 7e e6 7f c9 cd d3 3c cd a3 3b ┆ Q < Q F ü < ;┆ 0x02f460…02f480 af c9 cd 8c 17 d0 cd 17 18 d8 cd 7d 17 34 c9 21 a2 18 7e b7 c8 35 cd 7d 17 dc 94 17 c9 cd b9 14 ┆ å 4 ! ü 5 å ┆ 0x02f480…02f4a0 c0 21 a2 18 7e b7 37 c8 35 c3 7d 17 cd ea 14 0e 06 37 c8 34 cd b9 14 c0 cd ea 14 37 c8 34 c3 94 ┆ ! ü 7 5 å 7 4 7 4 ┆ 0x02f4a0…02f4c0 17 cd 0d 18 c8 da b6 17 1c 43 cd cb 17 d4 c7 17 2b d2 aa 17 af c9 3a 7d 18 93 47 cd cb 17 d4 c7 ┆ C + :å G ┆ 0x02f4c0…02f4e0 17 23 d2 bb 17 af c9 05 c0 37 c9 e5 7d 2a 9e 18 95 32 a3 18 cd f2 17 e1 c8 7a e6 7f fe 02 da ec ┆ # 7 å* 2 z ┆ 0x02f4e0…02f500 17 c5 4f 3a a3 18 cd 81 13 79 c1 d0 56 cd 67 12 af c9 21 7d 18 be c8 cd 3a 15 cd e1 14 c8 67 cd ┆ O: y V g !å : g ┆ 0x02f500…02f520 1c 15 ca 0a 18 7c cd 2b 15 c8 fe 58 c9 cd ae 14 cd 2a 18 cd b9 14 c8 cd f8 14 c2 23 18 cd 16 15 ┆ ø + X * # ┆ 0x02f520…02f540 fe 01 c9 e5 2a a2 18 bd e1 c9 cd 1c 15 c0 16 01 c9 cd 0d 18 c8 da 4b 18 2a 9e 18 3a a2 18 3c 47 ┆ * K * : <G┆ 0x02f540…02f560 cd bb 17 c9 f5 7a cd 67 12 f1 c9 3a 7d 18 93 5f d5 16 00 19 d1 2b 43 c4 aa 17 c9 21 f3 43 cd 77 ┆ z g :å _ +C ! C w┆ 0x02f560…02f580 3a c3 61 18 21 e7 43 c3 6d 18 21 e5 43 79 fe 20 d2 75 18 c6 40 32 01 44 cd 77 3a b7 c9 1e 34 cd ┆: a ! C m ! Cy u @2 D w: 4 ┆ 0x02f580…02f5a0 30 34 c3 6b 34 22 90 2e 2a 06 00 2b f9 2b 2b 22 1e 2e 2a 90 2e e5 3a 28 2e b7 c2 00 00 32 21 2e ┆04 k4" .* + ++" .* . :(. 2!.┆ 0x02f5a0…02f5c0 2a 1e 2e f9 cd 16 00 3a ad 33 fe 3e 80 cd b6 18 cd 5d 0c c9 3e 00 32 db 1f af cd a1 0b cd b8 11 ┆* . : 3 > Å > 2 ┆ 0x02f5c0…02f5e0 cd 0b 19 cd cd 18 cd 65 0b c2 bd 18 c9 e5 cd f9 18 3a db 1f d6 80 ca dc 18 7e e6 fc 77 e1 3a 5c ┆ e : ü w :Ø┆ 0x02f5e0…02f600 0a fe 04 c0 06 01 c3 eb 18 06 00 e5 cd f9 18 7e e6 fe b0 77 32 84 18 e1 c9 2a a0 18 cd 34 0c d5 ┆ ü w2 * 4 ┆ 0x02f600…02f800 (12, 1, 5) DataBlock {»VERIFY.COM«} 0x02f800…02f880 (12, 1, 6) DataBlock {»CHAININF.DEP«} 0x02f880…02f8a0 00 45 4e 54 52 59 4d 45 20 43 4f 4d 00 00 00 80 18 00 19 00 1a 00 1b 00 1c 00 1d 00 1e 00 1f 00 ┆ ENTRYME COM ┆ 0x02f8a0…02f8c0 00 45 4e 54 52 59 4d 45 20 43 4f 4d 01 00 00 80 20 00 21 00 22 00 23 00 24 00 25 00 26 00 27 00 ┆ ENTRYME COM ! " # $ % & ' ┆ 0x02f8c0…02f8e0 00 45 4e 54 52 59 4d 45 20 43 4f 4d 02 00 00 0b 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ENTRYME COM ( ┆ 0x02f8e0…02f900 00 45 4e 54 52 59 20 20 20 43 4f 4d 00 00 00 80 29 00 2a 00 2b 00 2c 00 2d 00 2e 00 2f 00 30 00 ┆ ENTRY COM ) * + , - . / 0 ┆ 0x02f900…02f920 00 45 4e 54 52 59 20 20 20 43 4f 4d 01 00 00 80 31 00 32 00 33 00 34 00 35 00 36 00 37 00 38 00 ┆ ENTRY COM 1 2 3 4 5 6 7 8 ┆ 0x02f920…02f940 00 45 4e 54 52 59 20 20 20 43 4f 4d 02 00 00 31 39 00 3a 00 3b 00 3c 00 00 00 00 00 00 00 00 00 ┆ ENTRY COM 19 : ; < ┆ 0x02f940…02f960 00 56 45 52 49 46 59 20 20 43 4f 4d 00 00 00 80 3d 00 3e 00 3f 00 40 00 41 00 42 00 43 00 44 00 ┆ VERIFY COM = > ? @ A B C D ┆ 0x02f960…02f980 00 56 45 52 49 46 59 20 20 43 4f 4d 01 00 00 80 45 00 46 00 47 00 48 00 49 00 4a 00 4b 00 4c 00 ┆ VERIFY COM E F G H I J K L ┆ 0x02f980…02f9a0 00 56 45 52 49 46 59 20 20 43 4f 4d 02 00 00 24 4d 00 4e 00 4f 00 00 00 00 00 00 00 00 00 00 00 ┆ VERIFY COM $M N O ┆ 0x02f9a0…02f9c0 00 43 48 41 49 4e 49 4e 46 44 45 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ CHAININFDEP ┆ 0x02f9c0…02f9e0 e5 44 45 50 46 4f 52 4d 20 44 45 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ DEPFORM DEP ┆ 0x02f9e0…02fa00 e5 58 52 45 46 20 20 20 20 43 4f 4d 01 00 00 80 40 00 41 00 42 00 43 00 44 00 45 00 46 00 47 00 ┆ XREF COM @ A B C D E F G ┆ 0x02fa00…02fa20 (12, 1, 7) c9 1a 13 fe 20 c4 0d 11 05 c2 01 11 c9 77 23 c9 af 32 25 11 21 20 11 11 93 43 cd ee 16 c3 76 0e ┆ w# 2% ! C v ┆ 0x02fa20…02fa40 81 ff 02 fe 82 00 2a 27 2c 36 ff 23 36 ff eb 2a 5a 11 13 7e 12 23 fe 0d c2 32 11 cd 61 37 cd ac ┆ *',6 #6 *Z ü # 2 a7 ┆ 0x02fa40…02fa60 30 c9 0b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆0 ┆ 0x02fa60…02fa80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 af 32 a8 18 3e 04 32 db 1f cd ┆ 2 > 2 ┆ 0x02fa80…02faa0 15 12 c0 cd f5 3a cd 93 12 cd bc 12 d8 21 db 1f 7e f5 36 04 cd e7 12 cd 1d 41 32 a6 18 4f cd 02 ┆ : ! ü 6 A2 O ┆ 0x02faa0…02fac0 1a cd f3 12 f5 cd 95 1a cd 09 3a f1 d2 94 11 f1 32 db 1f cd 6d 15 79 c9 e5 d5 c5 22 a0 18 7e fe ┆ : 2 m y " ü ┆ 0x02fac0…02fae0 10 d2 c5 11 23 23 11 7d 18 06 0f cd b7 38 22 8c 18 3a 7d 18 5f 01 00 00 3a 82 18 e6 02 ca e1 11 ┆ ## å 8" :å _ : ┆ 0x02fae0…02fb00 4b 09 22 8e 18 09 22 90 18 3a 82 18 e6 04 4f ca f4 11 4b 09 22 92 18 09 22 94 18 cd 22 15 ca 05 ┆K " " : O K " " " ┆ 0x02fb00…02fb20 12 01 0c 00 09 22 9c 18 2a 7e 18 cd 00 3c 22 9e 18 c1 d1 e1 c9 cd b8 11 0e 01 cd 5d 12 c8 3a 84 ┆ " *ü <" Å : ┆ 0x02fb20…02fb40 18 e6 04 c2 43 12 3a 81 18 e6 02 c8 cd 48 12 c8 3a 81 18 e6 20 ca 43 12 3a a6 18 b9 c8 cd 7c 1d ┆ C : H : C : ø ┆ 0x02fb40…02fb60 fe 02 c8 0e 06 79 b7 c9 3a 67 0a b7 c0 e5 2a 2b 2c 7d b4 e1 c0 3a 81 18 e6 80 d6 80 c9 cd 1c 15 ┆ y :g *+,å : ┆ 0x02fb60…02fb80 c8 3a 5f 0a fe 01 c9 c5 46 cd 9b 0b 90 e6 7f c4 79 12 c1 7c 32 aa 18 7e c9 3a db 1f fe 01 c8 3e ┆ :_ F y ø2 ü : >┆ 0x02fb80…02fba0 ff 32 a7 18 cd e4 18 3a db 1f fe 04 c0 06 03 cd eb 18 c9 e5 cd 9c 12 cd b9 3a e1 c9 3a 7e 0a b7 ┆ 2 : : :ü ┆ 0x02fba0…02fbc0 21 4a 43 c8 3a 5f 0a b7 21 11 43 c0 3a 5c 0a fe 00 c8 fe 02 21 37 43 c8 21 24 43 c9 21 a2 18 cd ┆!JC :_ ! C :Ø !7C !$C ! ┆ 0x02fbc0…02fbe0 ca 12 7e 3c 32 a5 18 3e 06 c9 cd 1c 15 36 00 ca 94 17 cd f8 14 77 c0 cd 16 15 77 ca 94 17 3a 7d ┆ ü<2 > 6 w w :å┆ 0x02fbe0…02fc00 18 77 cd 7d 17 34 c9 cd f5 3a cd fb 39 c9 77 c4 fb 39 c9 79 fe 7f ca 5f 15 fe 20 da d5 15 fe 2a ┆ w å 4 : 9 w 9 y _ *┆ 0x02fc00…02fc20 (12, 1, 8) 11 07 00 19 d1 c9 3e 00 32 db 1f cd 2f 19 3a db 1f fe 80 c4 66 19 cd c5 19 cd 02 1a cd 95 1a c9 ┆ > 2 / : f ┆ 0x02fc20…02fc40 2a 27 2c eb 3e 01 c3 b6 18 eb 3e 40 c3 b6 18 e5 d5 c5 cd 14 1b f5 7e e6 7e ca 52 19 3a db 1f fe ┆*', > >@ ü ü R : ┆ 0x02fc40…02fc60 00 c2 52 19 cd 31 15 ca 52 19 0a d6 58 fe 02 da 5b 19 3a db 1f e6 80 07 cd 9b 0b 23 03 f1 3d c2 ┆ R 1 R X Æ : # = ┆ 0x02fc60…02fc80 35 19 c1 d1 e1 c9 3a db 1f fe 00 c8 e5 c5 21 82 18 46 c5 fe 40 ca 7d 19 fe 01 c2 89 19 3a 81 18 ┆5 : ! F @ å : ┆ 0x02fc80…02fca0 e6 40 ca 89 19 78 e6 fd 77 cd bc 12 cd bd 19 ca b5 19 b7 ca b5 19 fe 2e c2 a6 19 cd f8 14 3e 2e ┆ @ x w . >.┆ 0x02fca0…02fcc0 ca a6 19 3a 2f 44 4f d5 cd 1d 13 d1 d2 8c 19 cd bd 19 c2 af 19 c1 21 82 18 70 c1 e1 c9 1a fe 0d ┆ :/DO ! p ┆ 0x02fcc0…02fce0 c8 13 fe 2c c9 cd 31 15 c8 e5 d5 c5 cd ef 19 cd 14 1b 5f 16 00 7e e6 7f 4f 7a cd 81 13 da e4 19 ┆ , 1 _ ü Oz ┆ 0x02fce0…02fd00 af cd 9b 0b 23 14 7a bb c2 d5 19 c1 d1 e1 c9 cd 14 1b cd f8 14 c8 4f 06 00 09 eb 09 7e eb cd 9b ┆ # z O ü ┆ 0x02fd00…02fd20 0b c9 e5 d5 c5 cd 42 1a da 2a 1a ca 26 1a 7e e6 7f b9 c2 22 1a af cd 9b 0b 23 1d c2 0e 1a c1 d1 ┆ B * & ü " # ┆ 0x02fd20…02fd40 e1 c9 90 cc 9b 0b c1 d1 e1 c9 16 00 19 2b 7e e6 7f b9 c2 22 1a af cd 9b 0b 2b 1d c2 2e 1a c1 d1 ┆ +ü " + . ┆ 0x02fd40…02fd60 e1 c9 cd 1c 15 c8 cd 02 15 4f cd 0c 15 47 b1 c8 2a 9e 18 3a 7d 18 5f cd 16 15 c0 3c 37 c9 cd 31 ┆ O G * :å _ <7 1┆ 0x02fd60…02fd80 15 c8 e5 d5 c5 cd 0f 1b f5 cd c3 1a 3a dc 1f cc 9b 0b cd f8 14 c4 84 1a 23 13 03 f1 3d c2 68 1a ┆ : # = h ┆ 0x02fd80…02fda0 c1 d1 e1 c9 e5 21 a2 18 34 be e1 c0 36 2e cd 1c 15 c0 36 01 c9 e5 d5 c5 cd ab 1a cd 1c 15 cc ef ┆ ! 4 6. 6 ┆ 0x02fda0…02fdc0 19 cd ce 1a cd 31 1b c1 d1 e1 c9 cd 31 15 c8 cd 14 1b f5 cd c3 1a 1a cc 9b 0b 23 13 03 f1 3d c2 ┆ 1 1 # = ┆ 0x02fdc0…02fde0 b2 1a c9 7e e6 7f 0a c2 e1 14 cd de 14 c9 cd 31 15 c8 cd 14 1b f5 cd eb 1a ca e2 1a 3a dc 1f cd ┆ ü 1 : ┆ 0x02fde0…02fe00 9b 0b 23 13 03 f1 3d c2 d5 1a c9 0a cd e4 14 16 01 c2 0d 1b fe 27 c2 fa 1a 14 2b cd 06 1b 23 c8 ┆ # = ' + # ┆ 0x02fe00…02fe20 (12, 1, 9) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x02fe20…02fe40 00 00 00 00 00 00 00 00 00 00 0d 43 09 5e 04 00 af 32 80 00 cd 2e 0b cd 32 3c cd 80 0a c3 46 03 ┆ C ^ 2 . 2< F ┆ 0x02fe40…02fe60 cd 2e 0b cd 32 3c 2a 2c 03 22 7b 0a cd a8 0c cd b0 0d c4 d5 0e c2 4c 03 cd fd 0e cd d3 3c cd c0 ┆ . 2<*, "æ L < ┆ 0x02fe60…02fe80 03 3a f3 39 b7 c2 11 11 cd e4 3a cd 88 08 79 d4 31 09 da 80 03 cd a1 0b cd 76 11 f5 cd 87 07 f1 ┆ : 9 : y 1 v ┆ 0x02fe80…02fea0 4f 21 92 03 fe 17 da d9 15 cd 6a 18 2a a0 18 c3 78 03 89 03 04 04 cb 06 89 03 31 08 d5 06 31 04 ┆O! j * x 1 1 ┆ 0x02fea0…02fec0 89 03 89 03 2c 08 3a 08 3f 08 98 06 50 08 1a 08 d3 05 15 08 fe 06 f1 06 66 08 c1 06 d8 05 55 08 ┆ , : ? P f U ┆ 0x02fec0…02fee0 cd 6d 21 3e 03 32 5c 0a cd ab 18 3e ff 32 5c 0a cd 09 34 2a 27 2c e5 7e 22 27 2c 3c 23 ca d7 03 ┆ m!> 2Ø > 2Ø 4*', ü"',<# ┆ 0x02fee0…02ff00 cd 20 19 cd 56 0c e1 22 27 2c 36 0d cd b4 18 3a 69 11 e6 04 c8 cd b8 1f cd a1 0b cd b8 11 06 04 ┆ V "',6 :i ┆ 0x02ff00…02ff20 cd eb 18 c9 3a 5f 0a b7 ca 17 04 21 5e 0a 7e b7 ca 8c 03 35 c3 3c 04 2a a0 18 cd 6e 0b ca 78 03 ┆ :_ !^ ü 5 < * n x ┆ 0x02ff20…02ff40 cd 15 12 c2 17 04 e5 cd bc 12 e1 da 17 04 c3 78 03 3a 5f 0a b7 ca 79 04 21 5e 0a 34 5e 2a 2d 2c ┆ x :_ y !^ 4^*-,┆ 0x02ff40…02ff60 7e bb ca 4e 04 16 00 19 19 23 7e c3 75 03 cd 18 42 cd a8 41 cd c2 0b cd fb 30 da 10 11 c2 6d 04 ┆ü N #ü u B A 0 m ┆ 0x02ff60…02ff80 cd 0e 09 cd 25 0a af 32 5f 0a c3 c1 06 21 75 43 cd 77 3a cd 62 09 c3 75 03 2a a0 18 cd 65 0b c2 ┆ % 2_ !uC w: b u * e ┆ 0x02ff80…02ffa0 78 03 cd 18 42 cd 1c 15 ca 44 08 af cd a1 0b cd b8 11 3a 81 18 e6 02 c2 a3 04 cd 81 1b dc c9 05 ┆x B D : ┆ 0x02ffa0…02ffc0 da 80 03 cd 65 0b c2 8f 04 3a 5c 0a fe 08 ca 2f 07 fe 04 ca c6 04 b7 c2 72 05 3a 67 0a b7 c2 ed ┆ e :Ø / r :g ┆ 0x02ffc0…02ffe0 04 3e 04 cd d8 08 0e 0c 3a 6a 11 b9 da de 04 0c 21 7e 0a 77 cd e6 1c 74 da 80 03 c3 c8 04 cd d5 ┆ > :j !ü w t ┆ 0x02ffe0…030000 08 3a 5c 0a fe 04 ca 8b 05 b7 c2 54 05 21 6f 43 cd 4d 0a da 61 03 c2 c1 06 cd 09 05 c2 c1 06 3a ┆ :Ø T !oC M a :┆ 0x030000…030020 (12, 1, 10) 03 ca 00 00 d1 d5 0e 1a cd 05 00 11 5c 00 0e 14 cd 05 00 d1 21 80 00 19 eb b7 ca 8c 00 fe 01 c2 ┆ Ø ! ┆ 0x030020…030040 00 00 11 80 00 0e 1a cd 05 00 f1 c3 09 01 2a 0d 43 11 0d 43 19 eb 2a 2c 03 cd b9 39 da 40 0b eb ┆ * C C *, 9 @ ┆ 0x030040…030060 11 64 00 19 22 2c 03 d1 f9 d5 0e 19 cd 54 39 32 5c 11 c9 0e 0e 3a 5c 11 5f cd 54 39 11 80 00 0e ┆ d ", T92Ø :Ø _ T9 ┆ 0x030060…030080 1a cd 54 39 c9 c5 cd 8c 0b 09 c1 7e b7 c9 d5 2b 5e 16 00 7b b7 23 ca 8a 0b fe 0d d2 84 0b 57 2b ┆ T9 ü +^ æ # W+┆ 0x030080…0300a0 2b 5e 23 23 cd 5a 0e 19 f6 ff d1 c9 4e 06 00 79 fe 0d d0 b7 c8 47 23 4e 2b c9 79 ae e6 7f ae 77 ┆+^## Z N y G#N+ y w┆ 0x0300a0…0300c0 c9 2a 6f 11 be d2 72 0e 23 23 b7 c8 f5 cd 65 0b f1 3d c2 ac 0b c9 eb 2a 56 11 eb cd f2 0b 2a 56 ┆ *o r ## e = *V *V┆ 0x0300c0…0300e0 11 c9 2a 56 11 eb 2a 2d 2c 4e 3a 67 0a 47 23 7e 23 e5 c5 46 cd a1 0b cd b8 11 cd 21 0c cd f2 0b ┆ *V *-,N:g G#ü# F ! ┆ 0x0300e0…030100 c1 e1 3a 81 18 a0 47 0d c2 ce 0b 2a 56 11 32 7f 0a c9 cd 05 0c af cd 3b 0c 0c 3e 20 0d ca 10 0c ┆ : G *V 2 ; > ┆ 0x030100…030120 12 13 c3 fc 0b cd 17 0c c0 cd 02 1a cd 5e 1a c9 cd 17 0c cc 95 1a c9 cd 1c 15 c8 3a 81 18 e6 40 ┆ ^ : @┆ 0x030120…030140 c9 d5 cd 34 0c 46 23 5e 23 56 23 4e eb c5 cd 00 3c c1 d1 c9 7e fe 0d 23 d0 23 c9 32 48 0c 48 7e ┆ 4 F#^#V#N < ü # # 2H Hü┆ 0x030140…030160 e6 7f fe 2c c2 49 0c f6 80 12 b7 ca 50 0c 0d 13 23 05 c2 3f 0c c9 2a 5a 11 af c3 68 0c 2a 58 11 ┆ , I P # ? *Z h *X ┆ 0x030160…030180 c3 66 0c 2a 27 2c 3e 80 47 eb 2a 6f 11 23 23 e5 cd b8 11 c5 3a 81 18 b0 e6 80 ca 8b 0c cd 21 0c ┆ f *',> G *o ## : ! ┆ 0x030180…0301a0 cd 05 0c 3e 80 cd 3b 0c cd 10 0c 3e 2c 12 13 c1 e1 cd 65 0b c2 6f 0c 1b 3e 0d 12 c9 eb 01 00 01 ┆ > ; >, e o > ┆ 0x0301a0…0301c0 cd 6a 3f fe 03 ca 00 00 3a 5c 0a fe 05 ca c9 0c 21 80 00 7e b7 c2 3b 0d cd 65 10 21 85 43 06 06 ┆ j? :Ø ! ü ; e ! C ┆ 0x0301c0…0301e0 cd b9 3f 21 42 11 cd 5a 40 21 43 11 7e b7 11 87 43 ca 9c 0c 47 4f 23 7e fe 60 da e0 0c e6 5f 77 ┆ ?!B Z@!C ü C GO#ü ` _w┆ 0x0301e0…030200 23 05 c2 d7 0c 36 00 21 45 11 7e 2b fe 3a 3e 00 c2 05 0d 7e d6 40 23 23 0d 0d 11 89 43 ca 9c 0c ┆# 6 !E ü+ :> ü @## C ┆ 0x030200…030220 (12, 1, 11) cc 0d 13 cd 1a 12 37 cc 1d 13 0e 06 c9 cd 1c 15 c0 0e 01 c9 cd 55 15 c5 4f cd 38 13 c1 cd b9 14 ┆ 7 U O 8 ┆ 0x030220…030240 ca 64 13 cd 17 18 ca 52 13 cd f2 14 ca 14 13 3a a2 18 cd 81 13 d2 c6 13 cd ae 14 79 cd 67 12 cd ┆ d R : y g ┆ 0x030240…030260 62 17 d8 cd ea 14 c4 51 17 c8 cd 28 15 ca 3f 13 b7 c9 cd 1c 15 ca 38 13 3a 2f 44 b9 ca 29 13 cd ┆b Q ( ? 8 :/D ) ┆ 0x030260…030280 64 13 b7 c9 cd ae 14 51 43 2b af 32 aa 18 cd aa 17 3a aa 18 b7 ca 64 18 2a 9e 18 7e e6 7f c8 37 ┆d QC+ 2 : d * ü 7┆ 0x030280…0302a0 c9 32 a3 18 cd 3a 15 cd de 14 37 c8 79 fe 01 37 c8 3a a3 18 cd 58 15 b7 37 c8 fe 5f 37 c8 e5 d5 ┆ 2 : 7 y 7 : X 7 _7 ┆ 0x0302a0…0302c0 c5 21 2f 44 cd b8 13 fe 13 d2 5b 18 21 d5 13 cd d9 15 79 c1 4f d1 e1 c9 e5 be 23 c2 b9 13 2b 7d ┆ !/D Æ ! y O # +å┆ 0x0302c0…0302e0 e1 95 32 a4 18 c9 3a a4 18 5f 16 00 21 bf 43 19 19 cd 6d 18 c9 fb 13 11 14 20 14 2d 14 4d 14 2a ┆ 2 : _ ! C m - M *┆ 0x0302e0…030300 14 4a 14 55 14 5c 14 26 14 46 14 6b 14 80 14 67 14 7c 14 88 14 8f 14 63 14 78 14 3a a3 18 cd 58 ┆ J U Ø & F k g ø c x : X┆ 0x030300…030320 15 91 fe 01 d8 21 a2 18 46 cd 6f 17 7e 70 c3 81 13 79 fe 26 c8 fe 27 c8 fe 2c c8 d6 23 fe 0c d8 ┆ ! F o üp y & ' , # ┆ 0x030320…030340 79 d6 30 fe 0a c9 cd 20 14 d8 cd 96 14 79 d6 41 fe 1a d8 21 ff 43 cd c7 40 79 b7 34 35 f8 be 37 ┆y 0 y A ! C @y 45 7┆ 0x030340…030360 c8 23 13 c3 3a 14 cd 20 14 d8 cd 96 14 79 fe 20 37 c4 2d 14 c9 cd 2d 14 d4 20 14 c9 cd 4d 14 d4 ┆ # : y 7 - - M ┆ 0x030360…030380 20 14 c9 cd 20 14 d8 cd 2d 14 d8 79 d6 61 fe 1a d8 21 fd 43 cd 36 14 c9 cd 20 14 d8 cd 2d 14 d8 ┆ - y a ! C 6 - ┆ 0x030380…0303a0 79 fe 20 37 c4 6b 14 c9 cd 20 14 d4 6b 14 c9 cd 20 14 d4 80 14 c9 79 11 00 00 cd 6b 14 d0 ca a5 ┆y 7 k k y k ┆ 0x0303a0…0303c0 14 c6 41 4f c9 21 ff 43 cd c7 40 19 4e c9 2a 9e 18 3a a2 18 5f 16 00 19 c9 e5 cd ea 14 e1 c8 cd ┆ AO ! C @ N * : _ ┆ 0x0303c0…0303e0 37 15 32 a9 18 e5 cd 51 17 c4 1c 15 e1 3a a9 18 ca d6 14 fe 58 c8 fe 22 c8 fe 2f 37 3f c9 fe 7e ┆7 2 Q : X " /7? ü┆ 0x0303e0…030400 c8 fe 22 c8 fe 27 c8 fe 2f c9 21 a2 18 3a 7d 18 be c9 cd 37 15 fe 27 c9 3a 80 18 e6 20 c8 3a 83 ┆ " ' / ! :å 7 ' : : ┆ 0x030400…030420 (12, 1, 12) 23 cd 06 1b 2b c9 7e e6 7e c2 0d 1b 14 15 c9 3e ff 32 a2 18 cd 1c 15 3e 00 c2 1e 1b 3e 01 32 dc ┆# + ü ü > 2 > > 2 ┆ 0x030420…030440 1f 3a 7d 18 2a 8c 18 44 4d 2a 8e 18 eb 2a 9e 18 c9 cd 42 1a c8 16 00 da 63 1b cd 7b 1b c2 4d 1b ┆ :å * DM* * B c æ M ┆ 0x030440…030460 15 1d ca 4d 1b 23 cd 7b 1b ca 41 1b 2b 78 b7 c4 9b 0b cd 50 1a 7e e6 7f cc 9a 0b 23 1d c2 55 1b ┆ M # æ A +x P ü # U ┆ 0x030460…030480 7a b7 c9 19 2b cd 7b 1b c2 4d 1b 15 1d ca 4d 1b 2b cd 7b 1b ca 6c 1b 23 c3 4d 1b 7e e6 7f c8 b9 ┆z + æ M M + æ l # M ü ┆ 0x030480…0304a0 c9 e5 d5 c5 cd 93 12 cd 94 1b d4 1e 1c d4 a3 1c c1 d1 e1 c9 cd a6 1b d0 cd f5 3a 21 f5 43 cd 49 ┆ :! C I┆ 0x0304a0…0304c0 1c cd 8d 11 37 c9 cd 02 1a cd 14 1b 5f 3a 80 18 e6 01 57 cd 31 15 c2 bb 1b 44 4d 7e e6 7f ca c6 ┆ 7 _: W 1 DMü ┆ 0x0304c0…0304e0 1b 16 00 c3 cc 1b 0a fe 21 ca f4 1b 23 03 1d c2 bb 1b 7a b7 c2 fd 1b cd 14 1b 57 cd f8 14 cc 16 ┆ ! # z W ┆ 0x0304e0…030500 15 c4 04 1c cd 11 1c 5a cd f8 14 3e 00 cc 16 15 b7 cc 04 1c cd 96 1c f5 cd 31 1b f1 c9 cd bc 12 ┆ Z > 1 ┆ 0x030500…030520 37 c3 f7 1b 7e e6 7f c0 23 15 c2 04 1c e1 c3 f7 1b 7e e6 7f c8 23 15 c2 11 1c e1 c3 f7 1b 3a 82 ┆7 ü # ü # : ┆ 0x030520…030540 18 e6 04 c8 cd 4f 1c d0 cd 33 1c 21 f7 43 cd 9e 1b 37 c9 3a 7d 18 32 04 44 32 09 44 2a 90 18 22 ┆ O 3 ! C 7 :å 2 D2 D* "┆ 0x030540…030560 05 44 2a 92 18 22 0a 44 c9 cd f5 3a c3 77 3a 2a 90 18 eb 2a 9e 18 3a 7d 18 47 7e e6 7f ca 6a 1c ┆ D* " D : w:* * :å Gü j ┆ 0x030560…030580 1a cd 8b 1c da 70 1c c2 95 1c 23 13 05 c2 5a 1c 2a 92 18 eb 2a 9e 18 3a 7d 18 47 1a b7 c4 8b 1c ┆ p # Z * * :å G ┆ 0x030580…0305a0 da 95 1c c0 23 13 05 c2 7b 1c c9 c5 47 7e e6 7f 4f 78 b9 c1 c9 58 3a 7d 18 93 32 a2 18 3c 32 a5 ┆ # æ Gü Ox X:å 2 <2 ┆ 0x0305a0…0305c0 18 37 c9 3a 82 18 e6 08 c8 cd b8 1c d0 21 fb 43 cd 49 1c cd 86 11 37 c9 2a a0 18 eb af 47 cd a1 ┆ 7 : ! C I 7 * G ┆ 0x0305c0…0305e0 0b cd b9 39 ca d1 1c 04 cd 65 0b c2 c1 1c c3 5b 18 21 e1 1c 70 06 05 cd dd 20 3a e6 28 b7 c8 37 ┆ 9 e Æ ! p : ( 7┆ 0x0305e0…030600 c9 c5 fa fe 31 31 e5 d5 c5 11 0a 00 cd 4e 1e ca 30 1d cd b8 11 cd 76 1d ca 2e 1d cd 02 1a 2a 9e ┆ 11 N 0 v . * ┆ 0x030600…030620 (12, 1, 13) 67 0a b7 cc 56 0c c3 61 03 cd c2 0b cd fb 30 da 10 11 cc 20 05 cd 63 0c cd fd 35 da 10 11 af c9 ┆g V a 0 c 5 ┆ 0x030620…030640 3a 69 11 e6 06 c8 e6 04 3a 5c 0a c2 43 05 fe 04 ca 39 05 3a 7f 0a e6 02 c0 e1 21 83 43 cd 77 3a ┆:i :Ø C 9 : ! C w:┆ 0x030640…030660 f6 ff c9 fe 04 ca 4d 05 3a 67 0a b7 c0 e1 cd c3 1f c3 09 05 21 71 43 cd 4d 0a da 61 03 c2 c1 06 ┆ M :g !qC M a ┆ 0x030660…030680 cd 4d 38 da 10 11 cd 09 05 ca 61 03 cd 76 38 c3 c1 06 3a a7 18 b7 c2 ba 04 21 73 43 cd 4d 0a c2 ┆ M8 a v8 : !sC M ┆ 0x030680…0306a0 c1 06 dc 4d 38 da 10 11 c3 61 03 cd af 05 cd 09 05 c2 a3 05 cd 56 0c cd bc 05 cd 4d 38 da 10 11 ┆ M8 a V M8 ┆ 0x0306a0…0306c0 c3 61 03 cd bc 05 cd 7d 16 d2 a6 05 c3 81 03 2a 79 0a cd 68 2d 2a 65 0a cd 72 2d c9 2a 65 0a cd ┆ a å *y h-*e r- *e ┆ 0x0306c0…0306e0 68 2d 2a 79 0a cd 72 2d c9 4f 3a 5c 0a fe 04 c8 79 37 c9 3e ff c3 d9 05 af 32 7d 0a 16 00 2a 6d ┆h-*y r- O:Ø y7 > 2å *m┆ 0x0306e0…030700 11 3e 0d cd 3b 06 1e 00 43 7e cd 56 06 23 cd 3b 06 1c 3a 6b 11 bb c2 e9 05 06 00 14 3a 6c 11 ba ┆ > ; Cü V # ; :k :l ┆ 0x030700…030720 ca 0e 06 3e 0a cd 3b 06 cd e0 41 ca e1 05 3e 0c cd 3b 06 cd e0 41 c2 31 06 3a 5c 0a fe 02 c2 31 ┆ > ; A > ; A 1 :Ø 1┆ 0x030720…030740 06 af 0e bf cd 23 08 cd 31 09 cd 59 42 04 c2 dc 05 cd e0 41 c4 1d 41 af c3 75 03 04 fe 20 c8 d5 ┆ # 1 YB A A u ┆ 0x030740…030760 f5 0e 05 05 ca 4f 06 1e 20 cd 54 39 c3 43 06 f1 5f cd 54 39 d1 c9 e6 7f fe 20 d2 5f 06 3e 20 e5 ┆ O T9 C _ T9 _ > ┆ 0x030760…030780 2a 7d 0a 2c e1 c0 e5 21 97 06 35 e1 c0 e5 c5 4f af cd a1 0b e5 cd 34 0c 46 23 7e bb 23 7e e1 c2 ┆*å , ! 5 O 4 F#ü #ü ┆ 0x030780…0307a0 86 06 ba ca 8f 06 cd 65 0b c2 74 06 01 20 01 78 32 97 06 79 c1 e1 c9 01 3a 5f 0a b7 ca ab 06 2a ┆ e t x2 y :_ *┆ 0x0307a0…0307c0 2d 2c 5e 1d 21 5e 0a 73 c3 3c 04 2a a0 18 e5 cd 15 12 c2 b7 06 d1 e5 cd 65 0b c2 af 06 e1 c3 78 ┆-,^ !^ s < * e x┆ 0x0307c0…0307e0 03 3a 5f 0a b7 c4 68 09 c3 75 03 3a 5f 0a b7 c2 4e 04 c3 82 04 cd f7 06 cd 26 11 cd d3 3c cd 53 ┆ :_ h u :_ N & < S┆ 0x0307e0…030800 0b 2a 7b 0a 22 2c 03 af 32 80 00 32 0d 44 c3 4c 03 cd f7 06 c3 61 03 cd f4 07 cd 0e 09 c9 cd f7 ┆ *æ ", 2 2 D L a ┆ 0x030800…030820 (12, 1, 14) fe 11 d2 9c 0c 11 5c 00 12 13 06 08 cd 18 0d 06 03 7e b7 0e 01 c2 f9 0c 7e b7 3e 20 ca 32 0d 7e ┆ Ø ü ü > 2 ü┆ 0x030820…030840 fe 03 ca 84 0e fe 30 d8 fe 5b d0 d6 3a fe 07 d8 7e 23 12 13 05 c2 18 0d af 12 c9 47 05 fa b8 0c ┆ 0 Æ : ü# G ┆ 0x030840…030860 23 7e fe 20 ca 3c 0d 04 78 fe 0c d2 b8 0c 11 43 11 12 13 cd b7 38 af 12 c3 c9 0c 22 6d 11 01 04 ┆#ü < x C 8 "m ┆ 0x030860…030880 00 21 69 11 cd 22 0e 3a 6c 11 47 3a 6b 11 cd 71 42 42 4b 2a 6d 11 cd 22 0e 22 6f 11 11 01 00 0e ┆ !i " :l G:k qBBK*m " "o ┆ 0x030880…0308a0 02 e5 cd 22 0e e3 4e eb 09 eb e1 0e 01 cd 22 0e 2b 4e 23 79 b7 ca ad 0d fe 0d d2 a9 0d c5 0e 01 ┆ " N " +N#y ┆ 0x0308a0…0308c0 cd 22 0e c1 41 2b 4e 23 0b 0b c3 81 0d eb af c9 11 5c 00 cd 2a 39 21 80 00 36 00 c0 3a 5c 0a fe ┆ " A+N# Ø *9! 6 :Ø ┆ 0x0308c0…0308e0 05 c4 9f 0a 21 00 01 22 50 11 01 08 00 21 5e 11 cd 22 0e cd cb 0e 21 5f 43 cd c7 40 eb 21 43 11 ┆ ! "P !^ " !_C @ !C ┆ 0x0308e0…030900 46 4e 23 cd b7 38 3e 0b 91 3c 4f 3e 20 12 13 0d c2 ed 0d 21 5d 00 11 5e 11 06 08 cd b7 38 03 2a ┆FN# 8> <O> !Å ^ 8 *┆ 0x030900…030920 2c 03 22 2d 2c cd 22 0e 2b 7e 87 4f 23 c4 22 0e 22 56 11 eb 2a 2d 2c 01 78 00 09 cd 5b 0d 22 29 ┆, "-, " +ü O# " "V *-, x Æ ")┆ 0x030920…030940 2c c9 d5 e5 cd 40 0e d1 2a 50 11 7c 3d cc 62 0e 7e 12 23 13 0b 78 b1 c2 2b 0e 22 50 11 eb d1 c9 ┆, @ *P ø= b ü # x + "P ┆ 0x030940…030960 09 22 52 11 eb cd 5a 0e 2a 06 00 25 19 d2 54 0e 22 54 11 c9 11 93 43 c3 75 0e 7b 2f 5f 7a 2f 57 ┆ "R Z * % T "T C u æ/_z/W┆ 0x030960…030980 13 c9 d5 c5 0e 14 11 5c 00 cd 54 39 c1 d1 21 80 00 c8 11 8b 43 eb 3a f4 39 c6 41 32 01 44 01 0d ┆ Ø T9 ! C : 9 A2 D ┆ 0x030980…0309a0 01 cd 6a 3f cd 3d 3a cd 53 0b c3 00 00 11 5c 00 06 0c cd b7 38 11 80 00 0e 1a cd 54 39 11 5c 00 ┆ j? =: S Ø 8 T9 Ø ┆ 0x0309a0…0309c0 cd 2a 39 11 91 43 c2 75 0e 21 00 01 22 50 11 2a c0 39 01 09 00 cd 22 0e 2a c0 39 cd 5b 0d 2a 52 ┆ *9 C u ! "P * 9 " * 9 Æ *R┆ 0x0309c0…0309e0 11 22 c0 39 2a 54 11 22 c2 39 c9 3a 5e 11 b7 f0 3e 03 c3 f7 0e 21 43 11 11 80 00 46 23 cd b7 38 ┆ " 9*T " 9 :^ > !C F# 8┆ 0x0309e0…030a00 af 12 21 8d 43 01 00 01 cd 6a 3f 21 80 00 36 00 e6 5f fe 41 c0 3e ff 21 19 44 c3 b3 0a 2a 29 2c ┆ ! C j?! 6 _ A > ! D *),┆ 0x030a00…030a20 (12, 1, 15) 18 c9 3a 80 18 e6 04 c8 3a 85 18 c9 3a 80 18 e6 08 c8 3a 86 18 c9 3a 80 18 e6 10 c9 3a 5c 0a fe ┆ : : : : : :Ø ┆ 0x030a20…030a40 03 c9 3a 82 18 e6 40 c9 cd 37 15 fe 59 c8 fe 7e c9 3a 82 18 e6 02 c9 3a a2 18 e5 2a 8c 18 d5 5f ┆ : @ 7 Y ü : : * _┆ 0x030a40…030a60 cd 31 15 ca 52 15 3a 7d 18 3d bb da 5b 18 16 00 19 7e d1 e1 c9 3a a2 18 e5 2a 8e 18 c3 3e 15 cd ┆ 1 R :å = Æ ü : * > ┆ 0x030a60…030a80 6f 17 cd 31 18 cd 17 18 d4 62 17 b7 c9 e5 d5 c5 cd 88 15 cd 5d 12 ca 84 15 3a db 1f fe 02 c4 22 ┆o 1 b Å : "┆ 0x030a80…030aa0 15 c4 82 1d c1 d1 e1 c9 cd 31 15 c0 cd 16 15 2a 9e 18 3a 7d 18 4f c2 af 15 41 5d 54 1a 13 e6 7f ┆ 1 * :å O AÅT ┆ 0x030aa0…030ac0 ca a8 15 05 cd 9b 0b 23 0d c2 9c 15 c3 c7 15 06 00 09 5d 54 41 2b 7e e6 7f ca c3 15 05 1b eb cd ┆ # ÅTA+ü ┆ 0x030ac0…030ae0 9b 0b eb 0d c2 b5 15 04 cd 02 15 4f 05 c8 cd 9a 0b 23 c3 cc 15 21 e6 15 79 d5 5f 16 00 19 19 5e ┆ O # ! y _ ^┆ 0x030ae0…030b00 23 56 eb d1 b7 e9 6a 18 24 17 11 17 26 16 62 17 7d 16 40 17 31 18 6f 17 40 17 94 3a 6a 18 1d 17 ┆#V j $ & b å @ 1 o @ :j ┆ 0x030b00…030b20 41 16 13 17 11 17 13 17 6a 18 6a 18 6f 17 1d 17 11 17 a1 17 6a 18 6a 18 6a 18 5a 17 6a 18 6a 18 ┆A j j o j j j Z j j ┆ 0x030b20…030b40 6a 18 6a 18 6a 18 2a 27 2c 3a 5f 0a b7 c2 38 16 3a 5c 0a fe 00 c2 6a 18 cd 45 16 cd 5a 16 cd 02 ┆j j j *',:_ 8 :Ø j E Z ┆ 0x030b40…030b60 1a 0e 06 37 c9 eb 2a a0 18 cd 6e 0b c8 1a fe 0d c8 13 fe 2c c2 4d 16 c3 49 16 2a 9e 18 e5 21 dd ┆ 7 * n , M I * ! ┆ 0x030b60…030b80 1f 22 9e 18 cd 0b 19 e1 22 9e 18 3a 7d 18 47 11 dd 1f 1a cd 67 12 23 13 05 c2 72 16 c9 21 bb 43 ┆ " " :å G g # r ! C┆ 0x030b80…030ba0 3a 67 0a b7 ca 8a 16 21 bd 43 0e 00 cd 79 3a d6 20 c8 fe 20 da 7d 16 e6 1f 4f 32 4d 44 21 42 44 ┆:g ! C y: å O2MD!BD┆ 0x030ba0…030bc0 cd b8 13 fe 0b ca 7d 16 21 af 16 cd d9 15 c9 c5 16 0d 17 f7 16 0d 17 0d 17 0d 17 06 17 0d 17 0d ┆ å ! ┆ 0x030bc0…030be0 17 01 17 0b 17 0e 00 21 a5 43 cd 79 3a d6 20 fe 20 3f d2 7d 16 e6 1f 32 4d 44 21 42 44 23 11 a7 ┆ ! C y: ? å 2MD!BD# ┆ 0x030be0…030c00 43 cd ee 16 0e 00 fe 0a c4 79 3a c3 7d 16 cd b8 13 6f 26 00 29 19 c9 3a 67 0a b7 ca 7d 16 c3 0d ┆C y: å o& ) :g å ┆ 0x030c00…030c20 (13, 0, 1) 18 3a 7d 18 47 af b6 23 05 c2 06 1d 47 cd 95 1a 04 05 ca 2e 1d cd 37 1d 3a a8 18 b7 c2 2f 1d cd ┆ :å G # G . 7 : / ┆ 0x030c20…030c40 94 1b d4 1e 1c d4 a3 1c da 15 1d cd e9 18 37 3f c1 d1 e1 ca 8b 1e c9 cd f5 3a 3a 82 18 e6 60 fe ┆ 7? :: ` ┆ 0x030c40…030c60 20 da 68 1d c2 9b 1d cd 66 1e cd 5f 1d c0 cd 74 1e d0 21 f9 43 cd 77 3a cd 5f 1d c0 c3 47 1d cd ┆ h f _ t ! C w: _ G ┆ 0x030c60…030c80 2f 19 cd 95 1a cd 09 3a cd 86 11 3a a8 18 b7 c8 37 c9 11 f6 ff c9 3a 84 18 e6 01 c9 3a 84 18 e6 ┆/ : : 7 : : ┆ 0x030c80…030ca0 02 c9 cd 76 1d c8 3e ff 32 a8 18 2a a0 18 e5 cd 9b 1d e1 cd b8 11 af 32 a8 18 c9 3e 02 32 db 1f ┆ v > 2 * 2 > 2 ┆ 0x030ca0…030cc0 2a 71 11 cd 68 2d 2a 94 18 11 96 18 06 06 cd b7 38 2a 96 18 e5 cd 72 2d 2a c0 39 22 27 2c 2a c2 ┆*q h-* 8* r-* 9"',* ┆ 0x030cc0…030ce0 39 22 29 2c 2a 9e 18 3a 7d 18 47 cd b6 0b cd fb 30 da 10 11 c2 22 1e 3a bf 39 b7 3e 81 ca 11 11 ┆9"),* :å G 0 " : 9 > ┆ 0x030ce0…030d00 cd e9 18 3a 9b 18 b7 ca 0a 1e 3d cd a1 0b cd b8 11 cd 7c 1d c2 03 1e 3a 88 18 cd 38 1e cd 0b 19 ┆ : = ø : 8 ┆ 0x030d00…030d20 cd f6 1e 3a 8a 18 b7 c2 ea 1d 2a c0 39 7e 36 00 23 b7 c2 0d 1e e1 cd 68 2d 2a 71 11 cd 72 2d f6 ┆ : * 9ü6 # h-*q r- ┆ 0x030d20…030d40 ff c9 3a a8 18 b7 fa 0a 1e 21 fb 43 cd 77 3a cd 65 1d c2 0a 1e c3 c4 1d 2a 27 2c eb b7 c8 47 1a ┆ : ! C w: e *', G ┆ 0x030d40…030d60 fe 0d c8 13 fe 2c c2 3f 1e 05 c2 3f 1e c9 af cd a1 0b e5 cd 34 0c 19 7e e1 b9 ca 64 1e cd 65 0b ┆ , ? ? 4 ü d e ┆ 0x030d60…030d80 c2 52 1e c9 b7 c9 2a 9e 18 11 dd 1f 3a 7d 18 47 cd b7 38 c9 2a 9e 18 11 dd 1f 3a 7d 18 47 1a be ┆ R * :å G 8 * :å G ┆ 0x030d80…030da0 37 c0 23 13 05 c2 7e 1e b7 04 c9 e5 d5 c5 11 0e 00 cd 4e 1e c4 9b 1e c1 d1 e1 c9 3e 03 32 db 1f ┆7 # ü N > 2 ┆ 0x030da0…030dc0 cd b8 11 cd 7c 1d c2 fe 1e 3a 81 18 e6 80 c4 13 1f 2a 9c 18 46 23 3a 81 18 e6 10 c2 df 1e cd c4 ┆ ø : * F#: ┆ 0x030dc0…030de0 1e c3 f6 1e cd dd 20 da 27 1f d5 cd 63 1f 21 dd 1f d1 cd 9e 23 da 27 1f c2 f0 1e cd 06 19 c9 e5 ┆ ' c ! # ' ┆ 0x030de0…030e00 c5 cd 63 1f c1 e1 4b 11 dd 1f cd ff 21 da 27 1f 11 dd 1f cd 0b 19 3a 81 18 e6 01 cc 09 3a cd 94 ┆ c K ! ' : : ┆ 0x030e00…030e20 (13, 0, 2) 2c b7 c8 7d 2f 6f 7c 2f 67 23 c9 21 af bb c8 7e 02 1d 23 03 c3 0e 25 af bb c8 71 23 1d c3 19 25 ┆, å/oø/g# ! ü # % q# %┆ 0x030e20…030e40 fe f7 d0 e6 7f c8 d6 30 fe 0a d8 cd 65 23 c3 20 25 1f 1f 1f 1f e6 0f c9 87 87 87 87 c9 3a 12 2c ┆ 0 e# % : ,┆ 0x030e40…030e60 3d 32 12 2c c9 3a 12 2c 3c 32 12 2c 07 d0 3e fb c3 5f 25 3e fc c3 5f 25 3e fd c3 5f 25 3e ff 2a ┆=2 , : ,<2 , > _%> _%> _%> *┆ 0x030e60…030e80 24 2c f9 37 c9 3e fe 37 c9 af 32 12 2c c9 0e 00 1e 10 21 13 2c c3 17 25 01 0e 00 c3 81 25 01 07 ┆$, 7 > 7 2 , ! , % % ┆ 0x030e80…030ea0 00 09 2b 54 5d 7e f5 cd 38 25 0d ca 9c 25 47 2b 7e f5 cd 31 25 b0 12 1b f1 c3 87 25 12 f1 cd 31 ┆ +TÅü 8% %G+ü 1% % 1┆ 0x030ea0…030ec0 25 c9 0e 08 f5 2b 54 5d cd 31 25 0d 47 ca bd 25 23 7e f5 cd 38 25 b0 12 13 f1 c3 a8 25 f1 cd 38 ┆% +TÅ 1% G %#ü 8% % 8┆ 0x030ec0…030ee0 25 b0 12 c9 21 21 2c 7e e6 f0 c0 21 14 2c cd 78 25 cd 3d 25 c8 c3 c4 25 21 06 00 09 01 21 2c 1e ┆% !!,ü ! , x% =% %! !, ┆ 0x030ee0…030f00 07 0a be c0 1d c8 2b 0b c3 e1 25 0a c6 05 27 c3 f8 25 0a c6 50 27 3e 00 02 d0 03 0a ce 00 27 c3 ┆ + % ' % P'> ' ┆ 0x030f00…030f20 f8 25 21 22 2c 7e b7 c8 af 77 2b 36 10 3e 06 2b 36 00 3d c2 0f 26 c3 45 25 60 69 7e 47 e6 80 32 ┆ %!",ü w+6 > +6 = & E%`iüG 2┆ 0x030f20…030f40 11 2c 78 e6 7f 32 12 2c 01 1b 2c 1e 07 23 c3 0c 25 3a 11 2c 57 3a 12 2c b7 ca 47 26 b2 02 03 1e ┆ ,x 2 , , # %: ,W: , G& ┆ 0x030f40…030f60 07 21 1b 2c c3 0c 25 02 c9 af 1a 8e 27 12 0d c8 13 23 c3 4a 26 37 3e 99 ce 00 96 eb 86 27 77 eb ┆ ! , % ' # J&7> 'w ┆ 0x030f60…030f80 0d c8 13 23 c3 56 26 eb 37 3e 99 ce 00 96 eb 86 27 eb 77 0d c8 13 23 c3 69 26 3e 80 c3 80 26 af ┆ # V& 7> ' w # i&> & ┆ 0x030f80…030fa0 32 51 27 af 32 1a 2c 3a 12 2c 57 b7 c2 9b 26 cd 19 26 21 11 2c 3a 51 27 ae 77 c9 0a b7 c8 e6 7f ┆2Q' 2 ,: ,W & &! ,:Q' w ┆ 0x030fa0…030fc0 ba c5 d2 b5 26 01 48 27 cd 31 26 c1 cd 19 26 21 11 2c c3 c1 26 01 48 27 1e 08 e1 cd 0c 25 21 48 ┆ & H' 1& &! , & H' %!H┆ 0x030fc0…030fe0 27 3a 51 27 ae 77 3a 48 27 47 e6 80 32 50 27 78 e6 7f 57 21 12 2c 96 fe 10 01 48 27 d2 19 26 72 ┆':Q' w:H'G 2P'x W! , H' &r┆ 0x030fe0…031000 b7 ca f7 26 f5 21 1b 2c af cd a2 25 f1 3d c2 e4 26 01 1a 2c cd f2 25 3a 50 27 47 3a 11 2c b8 c2 ┆ & ! , % = & , %:P'G: , ┆ 0x031000…031020 (13, 0, 3) 2c 2a c2 39 22 29 2c cd 63 32 c2 1e 2d 3a bf 39 b7 ca 48 2d 2a 5c 2c eb cd a5 2d c3 fe 2c 2a c0 ┆,* 9"), c2 -: 9 H-*Ø, - ,* ┆ 0x031020…031040 39 d1 cd c8 2d 22 34 2c eb 44 4d 2a 39 2c cd 50 2d 13 e5 cd a5 2d e1 36 0d 23 22 32 2c 0a 77 03 ┆9 -"4, DM*9, P- - 6 #"2, w ┆ 0x031040…031060 23 1b 7a b3 c2 3d 2d c9 21 26 2c 7e e6 fb 77 e1 e5 d5 eb 2a c0 39 cd c8 2d eb 2a c2 39 19 22 c2 ┆# z =- !&,ü w * 9 - * 9 " ┆ 0x031060…031080 39 d1 e1 22 c0 39 af c9 e5 d5 c5 eb 21 26 2c c3 78 2d e5 d5 c5 11 26 2c cd 83 2d 47 cd b7 38 c1 ┆9 " 9 !&, x- &, -G 8 ┆ 0x031080…0310a0 d1 e1 c9 7e e6 04 3e 41 c8 3e 10 c9 2a c0 39 e5 d5 c5 3a 26 2c cd 84 2d 5f 16 00 cd a5 2d c1 d1 ┆ ü >A > * 9 :&, -_ - ┆ 0x0310a0…0310c0 e1 cd 68 2d c9 cd b5 2d d0 3e 81 cd 87 39 2a c4 39 f9 c3 e7 2c 2a c0 39 19 22 c0 39 e5 2a c2 39 ┆ h- - > 9* 9 ,* 9 " 9 * 9┆ 0x0310c0…0310e0 cd c8 2d 22 c2 39 e1 c9 7d 93 6f 7c 9a 67 c9 32 26 2c f5 2a c0 39 22 44 2c e5 d5 11 21 00 cd b5 ┆ -" 9 å oø g 2&, * 9"D, ! ┆ 0x0310e0…031100 2d e1 d1 d5 06 0c cd b7 38 af 12 cd 1b 39 d1 f1 32 26 2c cd 2a 39 c4 17 2e c0 3a 26 2c e6 02 ca ┆- 8 9 2&, *9 . :&, ┆ 0x031100…031120 04 2e af c9 eb cd a2 39 cd 2a 39 c4 2f 39 0e 15 cc 54 39 cc 06 39 c9 3a 26 2c ee 80 e6 82 3e fe ┆ . 9 *9 /9 T9 9 :&, > ┆ 0x031120…031140 cc 2f 39 c9 e5 3e 03 32 c9 39 d5 11 11 00 cd a5 2d d1 e1 e5 d5 3e ff cd 6f 30 cd 5d 30 d1 21 0c ┆ /9 > 2 9 - > o0 Å0 ! ┆ 0x031140…031160 00 19 34 3a c9 39 fe 03 cc 2a 39 ca 2a 2e 3a 26 2c e6 02 c2 6b 2e 21 0f 00 19 06 11 af 77 23 05 ┆ 4: 9 *9 *.:&, k.! w# ┆ 0x031160…031180 c2 5d 2e 21 c9 39 35 f2 2a 2e 7e 21 0c 00 19 86 e1 c9 21 00 00 22 37 2c 22 36 2c 2a 34 2c cd 09 ┆ Å.! 95 *.ü! ! "7,"6,*4, ┆ 0x031180…0311a0 2f f8 22 37 2c cd 4b 2f c2 ab 2d 2a 39 2c eb 21 36 2c 34 1a 13 fe 1a c2 92 2e 35 c9 21 00 00 22 ┆/ "7, K/ -*9, !6,4 .5 ! "┆ 0x0311a0…0311c0 2b 2c 22 48 2c 22 4a 2c 2a 46 2c cd 09 2f f8 22 49 2c e5 cd e6 2f c2 ab 2d e1 af cd 24 2f eb 44 ┆+,"H,"J,*F, / "I, / - $/ D┆ 0x0311c0…0311e0 4d af 93 5f ca ce 2e 03 3a 2f 2c 83 c6 06 5f 32 48 2c 2a 4c 2c 19 7e fe 1a c2 c7 2e 60 69 22 2b ┆M _ . :/, _2H,*L, ü .`i"+┆ 0x0311e0…031200 2c af 67 6f cd 5c 34 2a 4c 2c 7e b7 f0 32 4b 2c cd fb 2e 5e 23 56 eb 22 2b 2c c9 23 3a 2f 2c fe ┆, go Ø4*L,ü 2K, .^#V "+, #:/, ┆ 0x031200…031220 (13, 0, 4) d5 2a 29 2c eb 2a 5c 2c cd b9 39 32 bf 39 d1 1a ca 18 35 13 23 22 5c 2c e1 c9 7e fe 1a ca d9 30 ┆ *), *Ø, 92 9 5 #"Ø, ü 0┆ 0x031220…031240 23 0c f2 36 35 0e 00 2a 3b 2c 23 f5 cd 4b 2f c4 db 30 f1 2a 39 2c fe 0d c2 43 35 7e fe 0a cc 1a ┆# 65 *;,# K/ 0 *9, C5ü ┆ 0x031240…031260 35 3e 0d bf c9 e5 d5 c5 2a 30 2c eb 2a 2d 2c 4e 23 7e 23 46 23 e5 cd 7d 35 cd 65 35 e1 0d c2 51 ┆5> *0, *-,N#ü#F# å5 e5 Q┆ 0x031260…031280 35 c1 d1 e1 c9 7e fe 2c ca 70 35 fe 0d c2 73 35 3e 20 2b e6 7f 12 23 13 05 c2 65 35 c9 2a 27 2c ┆5 ü , p5 s5> + # e5 *',┆ 0x031280…0312a0 b7 c8 f5 7e 23 fe 2c c2 83 35 f1 3d c2 82 35 c9 e5 d5 c5 2a 30 2c 3a 2f 2c 47 7e b7 3d fa b3 35 ┆ ü# , 5 = 5 *0,:/,Gü = 5┆ 0x0312a0…0312c0 1a fe 01 ca ac 35 be 3e fe c2 b3 35 23 13 05 c2 a0 35 af c1 d1 e1 32 5e 2c c9 e5 d5 c5 2a 27 2c ┆ 5 > 5# 5 2^, *',┆ 0x0312c0…0312e0 cd db 35 c2 d7 35 7e fe 0d ca cd 35 23 1a 13 d6 0d c2 c0 35 32 5e 2c c1 d1 e1 c9 cd f0 35 47 eb ┆ 5 5ü 5# 52^, 5G ┆ 0x0312e0…031300 cd f0 35 eb fe 01 ca db 35 b8 c0 b7 c2 db 35 c9 7e d6 2c c8 7e d6 0d c8 7e 23 e6 7f c9 cd b9 30 ┆ 5 5 5 ü , ü ü# 0┆ 0x031300…031320 cd 06 36 c3 ef 30 3a 4b 2c b7 c2 3f 36 3a 5e 2c 3c c2 20 36 2a 2b 2c 23 22 2b 2c 3e ff c3 64 36 ┆ 6 0:K, ?6:^,< 6*+,#"+,> d6┆ 0x031320…031340 32 4b 2c 2a ca 39 7c b5 c2 33 36 cd 3f 36 cd 81 36 af c9 23 7c b5 c2 3c 36 22 5f 2c cd 81 36 3a ┆2K,* 9ø 36 ?6 6 #ø <6"_, 6:┆ 0x031340…031360 50 2c 2a 51 2c cd 5c 34 c4 7f 39 3a 66 2c f5 2a 61 2c e5 2a 49 2c 22 61 2c 3a 48 2c 32 66 2c cd ┆P,*Q, Ø4 9:f, *a, *I,"a,:H,2f, ┆ 0x031360…031380 c7 36 e1 f1 22 61 2c 32 66 2c cd 45 35 2a 37 2c 22 63 2c 3a 36 2c 32 65 2c cd 11 37 cd 61 37 af ┆ 6 "a,2f, E5*7,"c,:6,2e, 7 a7 ┆ 0x031380…0313a0 c9 af 67 6f cd 5c 34 c4 db 30 3a 48 2c 2a 49 2c f5 cd 11 37 f1 22 61 2c 32 66 2c 2a 2b 2c eb 2a ┆ go Ø4 0:H,*I, 7 "a,2f,*+, *┆ 0x0313a0…0313c0 63 2c e5 2a 30 2c 36 ff 3a 2f 2c fe 03 da bf 36 23 73 23 72 af 67 6f cd cd 36 e1 22 63 2c c9 eb ┆c, *0,6 :/, 6#s#r go 6 "c, ┆ 0x0313c0…0313e0 2b 22 63 2c c3 b4 36 2a 51 2c 3a 50 2c f5 cd e6 2f c4 84 39 f1 cd df 36 cd ff 2f c4 84 39 c9 2a ┆+"c, 6*Q,:P, / 9 6 / 9 *┆ 0x0313e0…031400 30 2c eb 2a 4c 2c 4f 06 00 09 3a 2f 2c 47 cd ac 37 06 06 eb 2a 63 2c 23 22 63 2c 2a 65 2c 24 2c ┆0, *L,O :/,G 7 *c,#"c,*e,$,┆ 0x031400…031420 (13, 0, 5) 1b d4 1e 1c d4 a3 1c d2 24 1f cd 7c 1d c2 fe 1e 37 79 c9 3a 5c 0a fe 00 2a 5a 11 ca 38 16 fe 04 ┆ $ ø 7y :Ø *Z 8 ┆ 0x031420…031440 ca 38 16 f1 f6 ff c9 21 4b 1f 32 50 1f 11 e9 43 cd ee 16 3e 2a cd 51 1f cd 09 3a cd 77 3a cd 06 ┆ 8 !K 2P C >* Q : w: ┆ 0x031440…031460 19 cd 09 3a 3e 14 32 a8 18 37 c9 ff fe fd fc fb 00 e5 c5 4f 3a 7d 18 2a 9e 18 71 23 3d c2 5a 1f ┆ :> 2 7 O:å * q#= Z ┆ 0x031460…031480 c1 e1 c9 3a 7d 18 47 5f 3a 82 18 e6 02 4f c8 21 00 00 4c e5 2a 8e 18 eb 2a 8c 18 7e fe 21 ca 85 ┆ :å G_: O ! L * * ü ! ┆ 0x031480…0314a0 1f b7 c2 9b 1f 0c 1a fe 5e c2 8f 1f e3 69 e3 e5 21 2f 44 be e1 c2 9b 1f e3 61 e3 23 13 05 c2 7b ┆ ^ i !/D a # æ┆ 0x0314a0…0314c0 1f e1 41 59 7d cd b0 1f 6f 7c cd b0 1f 4f 7d c9 b7 c8 57 78 92 42 05 c9 2a 2d 2c 5e 16 00 19 19 ┆ AYå oø Oå Wx B *-,^ ┆ 0x0314c0…0314e0 2b 7e c9 cd b8 1f 11 d7 1f 12 cd a1 0b cd b8 11 eb 06 04 cd c4 1e c9 00 fd fe 31 00 00 00 00 52 ┆+ü 1 R┆ 0x0314e0…031500 45 43 4f 52 50 cb 49 00 00 00 61 bb 06 00 00 4c 4f 43 50 52 56 d0 3b 00 00 00 61 03 00 00 00 52 ┆ECORP I a LOCPRV ; a R┆ 0x031500…031520 45 43 4f 52 4c 38 3d 00 00 00 61 05 00 00 00 52 45 43 4f 52 43 4c 3c 00 00 00 61 9c 0d 00 00 46 ┆ECORL8= a RECORCL< a F┆ 0x031520…031540 52 45 45 43 00 00 00 00 00 61 9a 0d 00 00 46 52 45 45 50 9a 3c 00 00 00 61 91 0c 00 00 43 4f 50 ┆REEC a FREEP < a COP┆ 0x031540…031560 59 48 4c 01 46 00 00 00 61 42 01 00 00 53 41 56 45 4b 42 6a 3c 00 00 00 61 4c 01 00 00 53 45 54 ┆YHL F aB SAVEKBj< aL SET┆ 0x031560…031580 4b 42 5d 43 00 00 00 61 66 01 00 00 41 4c 4c 4f 43 42 00 00 00 00 00 61 2e 0d 00 00 49 4d 44 4f ┆KBÅC af ALLOCB a. IMDO┆ 0x031580…0315a0 53 5b 3c 00 00 00 61 04 0d 00 00 46 4f 50 45 4e c8 3d 00 00 00 61 09 0d 00 00 46 4d 41 4b 45 b2 ┆SÆ< a FOPEN = a FMAKE ┆ 0x0315a0…0315c0 3e 00 00 00 61 10 06 00 00 53 45 4c 45 43 54 28 3d 00 00 00 61 2e 07 00 00 4e 58 54 44 54 41 a2 ┆> a SELECT(= a. NXTDTA ┆ 0x0315c0…0315e0 3e 00 00 00 61 60 07 00 00 50 52 56 44 54 41 46 42 00 00 00 61 c5 00 00 00 43 4c 4e 58 e5 21 02 ┆> a` PRVDTAFB a CLNX ! ┆ 0x0315e0…031600 00 39 22 24 2c e1 af 32 9d 24 c5 0e 00 cd 09 21 cd 9e 21 d2 dc 21 cd 92 21 ca 05 21 c5 d5 cd ac ┆ 9"$, 2 $ ! ! ! ! ! ┆ 0x031600…031620 (13, 0, 6) 20 27 11 1b 2c 0e 07 21 49 27 cd 49 26 d0 21 1b 2c 3e 01 cd a2 25 cd 45 25 01 1a 2c cd f2 25 c9 ┆ ' , !I' I& ! ,> % E% , % ┆ 0x031620…031640 01 49 27 1e 07 cd d8 25 ca 69 25 11 1b 2c 21 49 27 0e 07 da 3c 27 cd 55 26 c3 c4 25 3a 50 27 32 ┆ I' % i% ,!I' <' U& %:P'2┆ 0x031640…031660 11 2c cd 67 26 c3 c4 25 00 21 2a 01 00 00 52 53 46 52 22 27 28 01 15 28 21 1b 2c 1e 07 cd 0c 25 ┆ , g& % !* RSFR"'( (! , %┆ 0x031660…031680 01 1c 28 21 15 28 1e 07 cd 0c 25 21 1c 28 cd 7e 25 32 23 28 0e 00 1e 0f 21 14 2c cd 17 25 21 14 ┆ (! ( %! ( ü%2#( ! , %! ┆ 0x031680…0316a0 2c 22 24 28 3e 07 32 26 28 2a 27 28 7e 23 22 27 28 b7 ca cd 27 f5 e6 0f ca b3 27 11 15 28 2a 24 ┆,"$(> 2&(*'(ü#"'( ' ' (*$┆ 0x0316a0…0316c0 28 eb 0e 07 f5 cd 49 26 d2 ae 27 13 eb 34 f1 3d c2 9b 27 f1 cd 31 25 b7 ca cd 27 11 1c 28 2a 24 ┆( I& ' 4 = ' 1% ' (*$┆ 0x0316c0…0316e0 28 eb 0e 08 f5 cd 49 26 f1 3d c2 bb 27 21 26 28 35 c8 2a 24 28 23 22 24 28 c3 89 27 3a 12 2c b7 ┆( I& = '!&(5 *$(#"$( ': , ┆ 0x0316e0…031700 c8 0a b7 ca 69 25 57 e6 80 21 11 2c ae 77 23 7a e6 7f 57 d6 40 86 fa 0c 28 77 60 69 23 cd 52 27 ┆ i%W ! , w#z W @ (w`i# R'┆ 0x031700…031720 cd c4 25 01 1a 2c cd f2 25 c3 02 26 7a fe 40 da 69 25 c3 4e 25 21 a3 0d 00 00 41 44 44 45 58 43 ┆ % , % &z @ i% N%! ADDEXC┆ 0x031720…031740 00 00 00 00 00 21 04 02 00 0a 57 e6 7f ca 53 25 5f 21 12 2c 7e b7 32 e6 28 c8 93 5f c6 41 77 f2 ┆ ! W S%_! ,ü 2 ( _ Aw ┆ 0x031740…031760 4a 28 7b 07 da 69 25 c3 4e 25 7a e6 80 2b ae 77 3e 10 32 e5 28 03 60 69 1e 07 01 d5 28 af 02 03 ┆J(æ i% N%z + w> 2 ( `i ( ┆ 0x031760…031780 cd 0c 25 af 32 dd 28 32 1a 2c af 3f 47 11 1a 2c 21 d5 28 0e 08 d2 7f 28 04 cd 55 26 c3 6d 28 cd ┆ % 2 (2 , ?G ,! ( ( U& m( ┆ 0x031780…0317a0 49 26 05 21 dd 28 7e 80 77 3a e5 28 3d 32 e5 28 01 08 00 ca b4 28 cd 81 25 3a 21 2c e6 f0 c2 aa ┆I& ! (ü w: (=2 ( ( %:!, ┆ 0x0317a0…0317c0 28 21 1b 2c cd 7e 25 c3 6a 28 af 21 d6 28 cd a2 25 c3 6a 28 eb 2b b6 0d c2 b5 28 32 e6 28 01 1a ┆(! , ü% j( ! ( % j( + (2 ( ┆ 0x0317c0…0317e0 2c 1e 08 21 dd 28 cd 0c 25 cd c4 25 01 1a 2c cd f2 25 c3 02 26 a1 02 00 00 47 45 4f 46 49 31 00 ┆, ! ( % % , % & GEOFI1 ┆ 0x0317e0…031800 00 00 00 00 21 36 08 c5 cd 53 21 0b af 02 03 c5 cd 31 26 c1 cd 91 29 c1 c5 cd dc 27 c1 c5 cd 31 ┆ !6 S! 1& ) ' 1┆ 0x031800…031820 (13, 0, 7) 03 d0 23 23 fe 01 c8 23 c9 11 00 00 42 7e 4f eb 09 eb 0e 11 09 b7 fa 0d 2f 1b eb b4 c9 29 17 05 ┆ ## # BüO / ) ┆ 0x031820…031840 c2 1d 2f c9 4f 06 07 af cd 1d 2f 09 f5 3a 2f 2c c6 06 4f f1 f5 cd cc 38 f1 3c 11 ff ff 13 09 da ┆ / O / :/, O 8 < ┆ 0x031840…031860 3d 2f 3d c2 3d 2f cd cc 38 09 c9 3e ff b7 ca 5c 2f d5 11 3b 2c cd a5 37 d1 3e 00 c8 22 3b 2c 3e ┆=/= =/ 8 > Ø/ ;, 7 > ";,>┆ 0x031860…031880 14 c3 69 2f 3e 15 2a 3b 2c e5 d5 c5 f5 cd a3 2f 32 4c 2f e5 2a 39 2c eb 0e 1a cd 54 39 2a 32 2c ┆ i/> *;, /2L/ *9, T9*2,┆ 0x031880…0318a0 eb c1 cd 3e 30 2a 34 2c 22 f5 39 3a 43 2c c4 91 30 f1 4f cd 54 39 21 4c 2f cc af 2f c4 42 39 c1 ┆ >0*4," 9:C, 0 O T9!L/ / B9 ┆ 0x0318a0…0318c0 d1 e1 c9 d6 15 4f 7d 29 e6 7f 6f d6 7f b1 c9 7e b7 c2 e4 2f 21 20 00 19 7e b7 21 0c 00 19 f2 d5 ┆ Oå) o ü /! ü ! ┆ 0x0318c0…0318e0 2f e5 70 34 eb cd 89 39 eb cd 2f 39 c4 db 30 3e ff cd 84 39 e1 35 cd 2a 39 c4 db 30 2a f5 39 3e ┆/ p4 9 /9 0> 9 5 *9 0* 9>┆ 0x0318e0…031900 ff cd 4b 30 af c9 3e ff b7 ca f7 2f d5 11 4e 2c cd a5 37 d1 3e 00 c8 22 4e 2c 3e 14 c3 04 30 3e ┆ K0 > / N, 7 > "N,> 0>┆ 0x031900…031920 15 2a 4e 2c e5 d5 c5 f5 cd a3 2f 32 e7 2f e5 2a 4c 2c eb 0e 1a cd 54 39 2a 44 2c eb c1 cd 3e 30 ┆ *N, /2 / *L, T9*D, >0┆ 0x031920…031940 2a 46 2c 22 f5 39 3a 53 2c c4 91 30 f1 4f cd 54 39 21 e7 2f cc af 2f c4 42 39 c1 d1 e1 c9 21 20 ┆*F," 9:S, 0 O T9! / / B9 ! ┆ 0x031940…031960 00 19 71 21 0c 00 19 7e 70 b8 c9 e5 d5 c5 d5 cd 6f 30 cd 5d 30 d1 dc 06 39 c1 d1 e1 c9 1a be c2 ┆ q! üp o0 Å0 9 ┆ 0x031960…031980 69 30 13 23 05 c2 5d 30 c9 eb cd b7 38 37 c9 e5 21 0c 00 19 be c2 7d 30 3e 82 cd 84 39 7e 23 23 ┆i0 # Å0 87 ! å0> 9ü##┆ 0x031980…0319a0 23 eb e1 01 11 00 b7 ca 8f 30 09 3d c2 8a 30 41 c9 e5 d5 c5 cd 6f 30 cd b7 38 c1 d1 e1 c9 2a 32 ┆# 0 = 0A o0 8 *2┆ 0x0319a0…0319c0 2c eb cd 96 39 2a 44 2c eb cd 96 39 2a 32 2c cd 89 39 2a 44 2c cd 89 39 c9 22 c6 39 e3 d5 c5 e5 ┆, 9*D, 9*2, 9*D, 9 " 9 ┆ 0x0319c0…0319e0 2a c6 39 e5 21 c8 39 34 c2 d2 30 21 04 00 39 22 c4 39 e1 c9 fe 01 c2 db 30 b7 c9 cd 84 39 e1 22 ┆* 9 ! 94 0! 9" 9 0 9 "┆ 0x0319e0…031a00 00 01 37 2a c4 39 f9 21 c8 39 36 ff c3 f7 30 21 c8 39 35 3a 5e 2c b7 c1 d1 e1 c9 cd b9 30 cd 04 ┆ 7* 9 ! 96 0! 95:^, 0 ┆ 0x031a00…031a20 (13, 0, 8) 22 65 2c eb 11 61 2c cd ac 37 eb cd 6b 34 eb 79 c9 e5 d5 c5 2a 49 2c cd e6 2f c4 7f 39 3a 48 2c ┆"e, a, 7 k4 y *I, / 9:H,┆ 0x031a20…031a40 cd df 36 32 48 2c 36 1a cd ff 2f c4 84 39 22 49 2c 2a 44 2c eb 2a 46 2c 3a 53 2c cd 4b 30 c4 84 ┆ 62H,6 / 9"I,*D, *F,:S, K0 ┆ 0x031a40…031a60 39 c1 d1 e1 c9 e5 d5 c5 2a 3e 2c cd 4b 2f c4 84 39 3a 3d 2c cd 95 37 cd 64 2f c4 84 39 c1 d1 e1 ┆9 *>, K/ 9:=, 7 d/ 9 ┆ 0x031a60…031a80 c9 e5 d5 c5 2a 37 2c cd 4b 2f c4 7f 39 3a 36 2c cd 95 37 32 36 2c 36 1a cd 64 2f c4 84 39 22 37 ┆ *7, K/ 9:6, 726,6 d/ 9"7┆ 0x031a80…031aa0 2c 2a 32 2c eb 2a 34 2c 3a 43 2c cd 4b 30 c4 84 39 c1 d1 e1 c9 2a 27 2c eb 4f 06 00 2a 39 2c 09 ┆,*2, *4,:C, K0 9 *', O *9, ┆ 0x031aa0…031ac0 cd ce 37 79 c9 1a bd c0 13 1a bc c9 1a 77 13 23 0c f2 c9 37 0e 00 cd ff 2f c2 84 39 2a 4e 2c 23 ┆ 7y w # 7 / 9*N,#┆ 0x031ac0…031ae0 cd e6 2f c4 7f 39 2a 4c 2c 05 c2 ac 37 c9 cd 17 38 c2 e6 37 1a 13 cd 31 38 fe 2c ca ce 37 fe 0d ┆ / 9*L, 7 8 7 18 , 7 ┆ 0x031ae0…031b00 ca 0b 38 c3 d4 37 cd 2f 38 1a cd 11 38 ca fe 37 13 e6 7f fe 22 cc 31 38 cd 31 38 c3 e9 37 cd 2f ┆ 8 7 /8 8 7 " 18 18 7 /┆ 0x031b00…031b20 38 1a 13 cd 31 38 fe 0d c2 ce 37 3e 0a cd 31 38 c9 fe 2c c8 fe 0d c9 1a 3c c8 d5 1a 13 cd 11 38 ┆8 18 7> 18 , < 8┆ 0x031b20…031b40 ca 2d 38 b7 fa 2d 38 fe 22 c2 1b 38 b7 d1 c9 3e 22 77 23 0c f0 f5 cd 64 2f c2 84 39 2a 3b 2c 23 ┆ -8 -8 " 8 >"w# d/ 9*;,#┆ 0x031b40…031b60 cd 4b 2f c4 7f 39 2a 39 2c 0e 00 f1 c9 3a 5e 2c b7 f8 cd b9 30 2a 3e 2c 22 f9 39 3a 3d 2c 32 f8 ┆ K/ 9*9, :^, 0*>," 9:=,2 ┆ 0x031b60…031b80 39 cd 3c 34 c4 db 30 7e 32 f7 39 36 ff cd 64 2f c4 84 39 c3 ef 30 cd b9 30 2a f9 39 22 3e 2c 3a ┆9 <4 0ü2 96 d/ 9 0 0* 9">,:┆ 0x031b80…031ba0 f8 39 32 3d 2c cd 3c 34 c4 db 30 3a f7 39 77 c3 6d 38 3a 5e 2c b7 f8 cd b9 30 2a 5c 2c eb 2a 27 ┆ 92=, <4 0: 9w m8:^, 0*Ø, *'┆ 0x031ba0…031bc0 2c 7e 23 1b fe 0d c2 a1 38 7a b3 ca 48 37 cd 06 36 cd 52 38 c3 ef 30 7e 12 23 13 05 c2 b7 38 c9 ┆,ü# 8z H7 6 R8 0ü # 8 ┆ 0x031bc0…031be0 7c b7 1f 67 7d 1f 6f 05 c2 c0 38 c9 79 2f 4f 78 2f 47 03 c9 01 00 00 eb 60 69 b7 1f d2 e5 38 f5 ┆ø gå o 8 y/Ox/G `i 8 ┆ 0x031be0…031c00 19 78 81 47 f1 b7 c8 f5 eb 29 eb 79 17 4f f1 c3 da 38 e3 d5 c5 5e 0e 02 cd 54 39 23 7e b7 c2 f5 ┆ x G ) y O 8 ^ T9#ü ┆ 0x031c00…031c20 (13, 0, 9) 21 d5 c3 ed 20 78 c1 47 c9 cd 86 21 fe f8 ca ea 20 fe fe ca 3d 21 e5 c5 cd 2b 21 44 4d cd 83 22 ┆! x G ! =! +!DM "┆ 0x031c20…031c40 cd 53 21 c5 cd 31 26 d1 c1 e1 c9 cd a1 0b cd 34 0c 4e 23 5e 23 56 eb c5 cd 00 3c d1 c9 e5 1e 00 ┆ S! 1& 4 N#^#V < ┆ 0x031c40…031c60 cd 8d 21 3d fa 4e 21 1c cd 86 21 c2 40 21 e3 c5 c3 1b 21 e5 2a c0 39 7e b7 ca 67 21 87 da 5d 25 ┆ != N! ! @! ! * 9ü g! Å%┆ 0x031c60…031c80 01 09 00 09 c3 57 21 34 23 44 4d e1 c9 2a c2 39 eb 2a c0 39 36 ff eb 01 f7 ff 09 d0 eb 36 00 01 ┆ W!4#DM * 9 * 96 6 ┆ 0x031c80…031ca0 09 00 09 c3 74 21 cd 8d 21 c8 23 05 c9 78 b7 c8 7e c9 78 b7 c8 7e fe f7 c0 cd 86 21 af c9 e5 d5 ┆ t! ! # x ü x ü ! ┆ 0x031ca0…031cc0 c5 79 f5 cd ac 21 f1 b9 c1 d1 e1 c9 cd 86 21 e5 21 c0 21 be 23 4e 23 5e 23 56 23 c2 b3 21 e1 c9 ┆ y ! ! ! ! #N#^#V# ! ┆ 0x031cc0…031ce0 00 01 58 25 f7 01 58 25 fd 02 7f 26 fc 02 7a 26 fb 03 dc 27 fa 03 29 28 f9 04 e7 28 78 c1 e3 f5 ┆ X% X% & z& ' )( (x ┆ 0x031ce0…031d00 d5 cd f1 21 c1 c5 cd 31 26 d1 f1 e1 c1 47 c3 f0 20 c5 d5 cd f8 21 c1 c9 2b 36 00 23 c3 1b 26 cd ┆ ! 1& G ! +6 # & ┆ 0x031d00…031d20 0e 22 d8 79 b7 c4 86 21 c2 ff 21 af 12 c9 cd 86 21 fe ff ca 68 22 d5 f5 11 00 00 cd 8d 21 fe f8 ┆ " y ! ! ! h" ! ┆ 0x031d20…031d40 c2 33 22 cd 86 21 cd 86 21 57 cd 86 21 5f b7 c2 33 22 1d eb 22 66 22 eb f1 e3 c5 e5 cd 2b 21 7b ┆ 3" ! !W !_ 3" "f" +!æ┆ 0x031d40…031d60 cd 4f 22 d1 c1 c5 47 cd 68 22 69 c1 4d e1 c9 eb 2a 66 22 eb 14 15 c8 4a 0d 06 00 09 91 d2 62 22 ┆ O" G h"i M *f" J b"┆ 0x031d60…031d80 af c9 bb d8 7b c9 00 00 04 b7 05 c8 7e fe f7 d0 23 e6 7f fe 20 da 69 22 0c 0d c8 0d f6 80 12 13 ┆ æ ü # i" ┆ 0x031d80…031da0 c3 69 22 7b 32 9c 23 cd 4f 23 11 21 2c af 32 9b 23 cd 65 23 fe 20 ca 91 22 fe 2b ca a8 22 fe 2d ┆ i"æ2 # O# !, 2 # e# " + " -┆ 0x031da0…031dc0 c2 ab 22 3e 80 32 11 2c cd 65 23 fe 30 ca a8 22 c3 b6 22 cd 65 23 06 00 e5 21 2f 44 be e1 ca df ┆ "> 2 , e# 0 " " e# !/D ┆ 0x031dc0…031de0 22 fe 45 ca ed 22 fe 65 ca ed 22 cd 20 25 d2 26 23 47 cd 82 23 3a 9b 23 b7 cc 45 25 c3 b3 22 3a ┆" E " e " % &#G #: # E% ":┆ 0x031de0…031e00 9b 23 1f da 26 23 2f 32 9b 23 c3 b3 22 cd 65 23 fe 20 ca ed 22 47 d6 2d 5f ca 02 23 c6 02 78 c2 ┆ # &#/2 # " e# "G -_ # x ┆ 0x031e00…031e20 (13, 0, 10) 26 c1 0a 57 e6 80 32 d1 2a 7a e6 7f 02 c5 cd 19 26 c1 c5 cd a8 24 c1 c5 0a fe 44 d2 86 29 cd 7a ┆& W 2 *z & $ D ) z┆ 0x031e20…031e40 26 1e 08 01 b1 2a 21 f6 2a cd 0c 25 af 32 b9 2a 3e 0f 01 76 2b cd d7 2b 01 b9 2a cd 31 26 c1 c5 ┆& *! * % 2 *> v+ + * 1& ┆ 0x031e40…031e60 cd 19 26 cd d3 24 e5 01 b9 2a cd 19 26 e1 7c b7 c2 86 29 7d 01 d2 2a 21 f2 2a b7 ca 7b 29 96 da ┆ & $ * & ø )å *! * æ) ┆ 0x031e60…031e80 6e 29 f5 c5 e5 cd dc 27 e1 c1 f1 c3 5a 29 86 23 03 03 03 03 03 03 03 03 c3 5e 29 3a d1 2a b7 c4 ┆n) ' Z) # ^): * ┆ 0x031e80…031ea0 a0 2a c1 c3 31 26 3a d1 2a b7 c1 ca 4e 25 c3 69 25 0a 32 d6 2b c5 3e 41 02 01 7e 2b cd 19 26 c1 ┆ * 1&: * N% i% 2 + >A ü+ & ┆ 0x031ea0…031ec0 c5 cd dc 27 01 b1 2a c5 cd 31 26 01 f6 2a cd 7f 26 01 b9 2a cd 31 26 c1 cd 19 26 01 f6 2a cd 7a ┆ ' * 1& * & * 1& & * z┆ 0x031ec0…031ee0 26 01 b9 2a cd 29 28 01 c1 2a c5 cd 31 26 af 32 b9 2a 01 b1 2a 21 ae 2b 1e 08 cd 0c 25 c1 cd dc ┆& * )( * 1& 2 * *! + % ┆ 0x031ee0…031f00 27 01 ce 2b 3e 04 cd d7 2b 01 c9 2a cd 31 26 01 09 2c cd 19 26 01 b1 2a 21 8e 2b 1e 08 cd 0c 25 ┆' +> + * 1& , & *! + %┆ 0x031f00…031f20 01 a6 2b 3e 03 cd d7 2b 01 c9 2a cd 29 28 01 c1 2a cd dc 27 01 b1 2a cd 31 26 3a d6 2b d6 41 4f ┆ +> + * )( * ' * 1&: + AO┆ 0x031f20…031f40 07 3e 00 d2 27 2a 2f 47 cd 41 2a 01 fe 2a cd 7f 26 01 86 2b cd dc 27 01 b1 2a cd 7f 26 c1 c3 31 ┆ > '*/G A* * & + ' * & 1┆ 0x031f40…031f60 26 21 21 2c 22 9e 2a cd 4f 23 7c b5 ca 69 25 7c 07 d2 60 2a 7d 2f 6f 7c 2f 67 23 3e 80 32 11 2c ┆&!!," * O#ø i%ø `*å/oø/g#> 2 ,┆ 0x031f60…031f80 11 94 2a d5 e3 5e 23 56 23 e3 06 00 7d 93 6f 7c 9a 67 fa 79 2a 04 c3 6c 2a 19 e5 2a 9e 2a eb cd ┆ * ^#V# å oø g y* l* * * ┆ 0x031f80…031fa0 82 23 cd 45 25 eb 22 9e 2a e1 7b fe 01 c2 64 2a e1 c3 c4 25 10 27 e8 03 64 00 0a 00 01 00 44 4d ┆ # E% " * æ d* % ' d DM┆ 0x031fa0…031fc0 01 b1 2a c5 cd 31 26 01 f6 2a cd 19 26 c1 c3 29 28 00 00 00 00 21 70 0d 00 00 44 45 4c 46 49 4c ┆ * 1& * & )( !p DELFIL┆ 0x031fc0…031fe0 00 00 00 00 00 21 93 04 00 00 49 4e 49 54 43 00 00 00 5c 64 80 80 90 14 35 62 45 04 48 79 65 64 ┆ ! INITC Ød 5bE Hyed┆ 0x031fe0…032000 02 22 42 41 31 03 50 81 59 54 41 90 45 28 18 28 18 27 40 0a 04 01 41 00 00 00 00 00 00 10 40 00 ┆ "BA1 P YTA E( ( '@ A @ ┆ 0x032000…032020 (13, 0, 11) 31 c3 ef 30 eb 3a 26 2c e6 04 c2 ac 31 21 ff ff 22 ca 39 22 65 2c 7d 2a 2b 2c 22 cc 39 d5 2a ca ┆1 0 :&, 1! " 9"e,å*+," 9 * ┆ 0x032020…032040 39 eb 2a cc 39 19 06 01 23 23 cd c0 38 2b cd b9 39 22 5f 2c d1 ca 5b 31 d5 cd 1f 32 cd 7c 34 c4 ┆9 * 9 ## 8+ 9"_, Æ1 2 ø4 ┆ 0x032040…032060 db 30 d1 cd 90 35 c2 4a 31 37 f5 d4 60 34 f1 2a 5f 2c da 1a 31 22 ca 39 c3 1d 31 23 7d b4 ca 67 ┆ 0 5 J17 `4 *_, 1" 9 1#å g┆ 0x032060…032080 31 2b d5 cd 1f 32 d1 32 50 2c 22 51 2c 01 00 00 c5 e5 f5 cd 7c 34 37 cc 90 35 da 98 31 cd 60 34 ┆1+ 2 2P,"Q, ø47 5 1 `4┆ 0x032080…0320a0 f1 e1 c1 32 50 2c 22 51 2c 3a 5e 2c b7 cc b6 32 c8 cd 94 32 d8 c3 70 31 b7 e1 e1 e1 22 5f 2c 2a ┆ 2P,"Q,:^, 2 2 p1 "_,*┆ 0x0320a0…0320c0 65 2c 22 3d 2c 2a 63 2c 22 3e 2c c9 2a 34 2c 44 4d 2a 32 2c 09 2b cd 10 32 cd 90 35 c8 3f d8 2a ┆e,"=,*c,">, *4,DM*2, + 2 5 ? *┆ 0x0320c0…0320e0 32 2c cd 10 32 cd 90 35 c8 d8 22 ca 39 22 cc 39 cd 04 32 cd 10 32 eb e5 2a cc 39 cd b9 39 e1 eb ┆2, 2 5 " 9" 9 2 2 * 9 9 ┆ 0x0320e0…032100 ca ef 31 cd 90 35 ca cd 31 da cd 31 c3 ca 31 2a ca 39 cd 18 32 cd 90 35 c8 d8 7e 23 fe 0d c2 fa ┆ 1 5 1 1 1* 9 2 5 ü# ┆ 0x032100…032120 31 c3 f2 31 78 b7 1f 47 79 1f 4f 2a ca 39 09 c9 2b 7e fe 0d c2 10 32 23 22 27 2c cd 45 35 c9 d5 ┆1 1x Gy O* 9 +ü 2#"', E5 ┆ 0x032120…032140 c5 3a 2f 2c c6 06 cd d4 38 7d e6 7f bd 6c 60 29 c1 d1 c8 b7 23 c9 cd b9 30 cd 3f 32 c3 ef 30 47 ┆ :/, 8å l`) # 0 ?2 0G┆ 0x032140…032160 eb cd 52 32 c0 cd ba 35 c2 41 32 c9 fa 86 33 c3 54 33 78 87 d2 4c 32 fa e1 32 cd b9 30 cd 63 32 ┆ R2 5 A2 3 T3x L2 2 0 c2┆ 0x032160…032180 c3 ef 30 cd 7b 33 ca 77 32 2a 51 2c 3a 50 2c cd 88 32 c0 cd 94 32 d8 32 50 2c 22 51 2c cd 88 32 ┆ 0 æ3 w2*Q,:P, 2 2 2P,"Q, 2┆ 0x032180…0321a0 c0 cd b6 32 c2 73 32 c9 cd 5c 34 c8 3e ff 32 5e 2c b7 37 c9 2a 5f 2c 44 4d 3a 66 2c b7 2a 61 2c ┆ 2 s2 Ø4 > 2^, 7 *_,DM:f, *a,┆ 0x0321a0…0321c0 f0 60 69 23 d5 11 2b 2c cd a5 37 d1 ca 8c 32 22 5f 2c cd 1f 32 c9 e5 d5 c5 2a 30 2c 7e 3c ca d8 ┆ `i# +, 7 2"_, 2 *0,ü< ┆ 0x0321c0…0321e0 32 cd 9f 31 cd 2b 34 37 3e 01 c2 d8 32 2a 27 2c 7e b7 3c ca d8 32 3e 02 3d 3d 32 5e 2c c1 d1 e1 ┆2 1 +47> 2*',ü < 2> ==2^, ┆ 0x0321e0…032200 c9 cd b9 30 21 5e 2c 7e b7 ca f5 32 cd 04 31 cd b6 32 ca 42 33 2a 51 2c 22 ce 39 3a 50 2c 32 d0 ┆ 0!^,ü 2 1 2 B3*Q," 9:P,2 ┆ 0x032200…032220 (13, 0, 12) 38 23 c1 d1 e3 c9 cd 1b 39 c5 0e 10 cd 54 39 c1 fe fe c2 19 39 3e 83 b7 c9 af c9 e5 d5 c5 0e 1a ┆8# 9 T9 9> ┆ 0x032220…032240 11 80 00 cd 05 00 c1 d1 e1 c9 0e 0f c3 31 39 0e 16 cd 54 39 fe f5 d2 d9 30 e5 21 20 00 19 af 77 ┆ 19 T9 0 ! w┆ 0x032240…032260 e1 c9 fe ff ca 4c 39 fe 02 c2 d9 30 cd 84 39 eb cd 89 39 eb e5 c5 d5 79 d6 0f fe 09 d2 b1 39 1a ┆ L9 0 9 9 y 9 ┆ 0x032260…032280 47 d5 c5 cd 9c 39 32 f4 39 5f 0e 0e cd 05 00 c1 d1 af 12 c5 cd 05 00 c1 e1 70 eb b7 c1 e1 c9 fe ┆G 92 9_ p ┆ 0x032280…0322a0 01 ca d9 30 32 f3 39 b7 c9 e5 d5 c5 cd a2 39 cd 96 39 c1 d1 e1 c9 0e 13 cd 54 39 c9 3d f0 3a 5c ┆ 02 9 9 9 T9 = :Ø┆ 0x0322a0…0322c0 11 c9 11 d2 39 d5 06 0c cd b7 38 eb 70 2b 34 d1 c9 cd 05 00 d1 c1 e1 b7 c9 7a 94 c0 7b 95 c9 c4 ┆ 9 8 p+4 z æ ┆ 0x0322c0…0322e0 90 55 f6 ff c9 af 32 0a ff 7a 32 25 72 e5 2a 44 72 7a cd 27 17 22 26 72 e1 3a 47 72 32 28 72 c9 ┆ U 2 z2%r *Drz ' "&r :Gr2(r ┆ 0x0322e0…032300 e5 21 7c 38 ae e1 c5 e5 21 0a 72 46 36 00 e1 cd dc 54 4f 00 00 0a 72 79 c1 c8 e5 e5 cd 50 3a 67 ┆ !ø8 ! rF6 TO ry P:g┆ 0x032300…032320 cd 5e 3a 6f cd 3c 3d e1 c9 e5 d5 c5 2a 16 3c 3a 7f 18 67 cd 00 3c cd 6c 3a cd 50 3a 4f d4 fe 40 ┆ ^:o <= * <: g < l: P:O @┆ 0x032320…032340 c1 d1 e1 c9 e5 d5 c5 3a 1c 3c 3d 4f cd 6c 3a 2a 22 43 78 f6 80 47 cd fe 40 c1 d1 e1 c9 3a 40 02 ┆ : <=O l:*"Cx G @ :@ ┆ 0x032340…032360 3d 67 cd b4 3c 6f cd 3c 3d cd be 3c cd 9e 3c c9 e5 3a 7f 18 2a 17 3c 95 2a 1c 3c 85 e1 c9 e5 3a ┆=g <o <= < < : * < * < :┆ 0x032360…032380 7e 18 2a 16 3c 95 2a a2 18 85 e1 c9 cd b4 3c 47 3a 6b 11 b8 d0 47 c9 0e 1b 06 01 cd 6a 3f cd a3 ┆ü * < * <G:k G j? ┆ 0x032380…0323a0 3b 79 c9 3a 1b 3c c3 8b 3a 3e 06 06 01 cd e5 40 cd 59 42 c9 e5 d5 c5 21 1a 3c 7e 2f 77 cd ad 3a ┆;y : < :> @ YB ! <ü/w :┆ 0x0323a0…0323c0 cd 83 3a cd f5 3a cd a3 3b c1 d1 e1 c9 3a 1a 3c 21 1b 3c a6 3c 32 1c 3c c9 e5 d5 c5 11 1b 3c 1a ┆ : : ; : <! < <2 < < ┆ 0x0323c0…0323e0 4f 7e 12 b9 f5 23 47 87 80 47 11 20 3c cd b7 38 f1 ca eb 3b cd ad 3a cd 83 3a cd f5 3a cd a3 3b ┆Oü #G G < 8 ; : : : ;┆ 0x0323e0…032400 c1 d1 e1 c9 e5 d5 c5 af 32 17 3c 32 16 3c cd 96 3b c1 d1 e1 c9 e5 d5 c5 cd 09 3b f5 cd 2f 3b 47 ┆ 2 <2 < ; ; /;G┆ 0x032400…032420 (13, 0, 13) 05 23 cd 65 23 06 00 cd 20 25 d2 26 23 47 cd 65 23 cd 20 25 d2 1f 23 4f 78 87 87 80 87 81 47 7b ┆ # e# % &#G e# % #Ox Gæ┆ 0x032420…032440 b7 c2 26 23 90 47 0e 0e 21 21 2c 7e b7 c2 39 23 2b 0d c2 2b 23 32 12 2c c9 21 12 2c 78 86 77 17 ┆ &# G !!,ü 9#+ +#2 , ! ,x w ┆ 0x032440…032460 da 4e 25 cd c4 25 01 1a 2c cd f2 25 c3 02 26 c5 af 32 11 2c cd 6e 25 3e 40 32 12 2c e1 3e aa 32 ┆ N% % , % & 2 , n%>@2 , > 2┆ 0x032460…032480 9d 23 0e 1c c9 3a 9c 23 b7 c8 3d 32 9c 23 7e e6 7f fe 02 7e 23 da 65 23 fe 30 d8 fe 3a d0 32 9d ┆ # : # =2 #ü ü# e# 0 : 2 ┆ 0x032480…0324a0 24 c9 af b1 c8 0d 3a 9d 23 07 32 9d 23 d2 96 23 78 cd 38 25 12 c9 1a b0 12 1b c9 80 00 00 22 a3 ┆$ : # 2 # #x 8% " ┆ 0x0324a0…0324c0 24 60 69 22 9e 24 32 a0 24 eb cd f8 21 cd 51 24 11 a1 24 21 9f 24 3a 11 2c b7 ca c3 23 7e b7 ca ┆$`i" $2 $ ! Q$ $! $: , #ü ┆ 0x0324c0…0324e0 65 25 35 3a a0 24 4f 3a 12 2c b7 ca d0 23 d6 40 0c 0d ca da 23 96 32 a2 24 7e b7 f2 e2 23 2f 3c ┆e%5: $O: , # @ # 2 $ü #/<┆ 0x0324e0…032500 12 af c2 ee 23 34 35 ca ee 23 eb 34 eb 3c 34 4f 0c be d2 65 25 3a 11 2c b7 3e 2d c4 94 24 3a 9e ┆ #45 # 4 <4O e%: , >- $: ┆ 0x032500…032520 24 81 47 05 0d 3e 2e cc 94 24 cd 61 24 cd 94 24 05 c2 04 24 3a a0 24 b7 ca 48 24 3e 45 cd 94 24 ┆$ G >. $ a$ $ $: $ H$>E $┆ 0x032520…032540 3a a2 24 b7 0e 20 f2 2d 24 2f 3c 0e 2d 47 79 cd 94 24 78 0e 2f 0c d6 0a f2 35 24 c6 0a 47 79 cd ┆: $ -$/< -Gy $x / 5$ Gy ┆ 0x032540…032560 94 24 78 f6 30 cd 94 24 af cd 94 24 3a 9d 24 b7 c9 21 21 2c 22 a6 24 3e 0e 32 a5 24 af 32 a1 24 ┆ $x 0 $ $: $ !!," $> 2 $ 2 $┆ 0x032560…032580 c9 e5 3a 12 2c b7 ca 72 24 21 a1 24 7e b7 ca 76 24 35 3e 30 e1 c9 21 a5 24 7e b7 ca 72 24 35 2a ┆ : , r$! $ü v$5>0 ! $ü r$5*┆ 0x032580…0325a0 a6 24 0f 7e d2 8b 24 2b 22 a6 24 d4 31 25 e6 0f f6 30 e1 c9 2a a3 24 77 23 22 a3 24 c9 21 0e 00 ┆ $ ü $+" $ 1% 0 * $w#" $ ! ┆ 0x0325a0…0325c0 00 00 44 41 54 41 4c a1 60 69 7e e6 7f fe 41 d2 b5 24 36 00 c9 47 3e 4d 90 d8 3c 47 0f e6 7f 23 ┆ DATAL `iü A $6 G>M <G #┆ 0x0325c0…0325e0 b7 ca cb 24 36 00 23 3d c2 c4 24 78 0f d0 3e f0 a6 77 c9 cd 51 24 21 00 00 3a 12 2c b7 c8 d6 41 ┆ $6 #= $x > w Q$! : , A┆ 0x0325e0…032600 f8 3c 32 0b 25 29 54 5d 19 29 19 cd 61 24 e6 0f 16 00 5f 19 3a 0b 25 3d 32 0b 25 c2 e5 24 3a 11 ┆ <2 %)TÅ ) a$ _ : %=2 % $: ┆ 0x032600…032620 (13, 0, 14) 00 00 00 00 00 50 40 92 99 99 99 99 99 99 40 99 99 99 99 99 99 49 40 68 66 66 66 66 66 16 3f 68 ┆ P@ @ I@hfffff ?h┆ 0x032620…032640 66 66 66 66 66 41 3e 35 33 33 33 33 33 83 3e 89 88 88 88 88 88 13 3d 69 12 84 69 12 84 19 3c 89 ┆fffffA>533333 > =i i < ┆ 0x032640…032660 15 30 87 15 80 24 3b 86 39 22 19 73 55 27 3a 86 39 22 19 73 55 27 39 42 54 38 08 21 05 25 38 68 ┆ 0 $; 9" sU': 9" sU'9BT8 ! %8h┆ 0x032660…032680 78 98 56 67 87 20 37 22 68 83 43 90 05 16 36 30 77 59 45 07 47 11 34 01 82 31 37 16 47 76 40 81 ┆x Vg 7"h C 60wYE G 4 17 Gv@ ┆ 0x032680…0326a0 16 60 76 27 62 31 41 40 99 92 50 58 02 23 43 60 51 08 49 22 55 26 c3 80 65 28 48 83 94 42 43 54 ┆ `v'b1A@ PX #C`Q I"U& e(H BCT┆ 0x0326a0…0326c0 03 97 62 44 76 19 c2 52 11 57 61 47 76 22 43 88 25 54 24 61 27 13 c3 99 19 99 48 95 89 25 43 73 ┆ bDv R WaGv"C %T$a' H %Cs┆ 0x0326c0…0326e0 72 62 89 01 86 15 c2 22 28 48 84 64 41 31 41 00 00 00 00 00 00 10 00 f5 c5 01 09 2c cd 31 26 c1 ┆rb "(H dA1A , 1& ┆ 0x0326e0…032700 c5 c3 ec 2b f5 c5 cd 7f 26 01 09 2c cd dc 27 c1 21 f8 ff 09 44 4d f1 3d c2 e4 2b 01 b9 2a 0a b7 ┆ + & , ' ! DM = + * ┆ 0x032700…032720 c4 dc 27 01 b1 2a c3 7f 26 00 21 41 05 00 00 4c 4f 43 41 54 32 00 00 00 00 00 21 4a 05 00 00 4c ┆ ' * & !A LOCAT2 !J L┆ 0x032720…032740 4f 43 54 32 41 00 48 00 00 00 21 72 05 00 00 4c 4f 43 41 54 34 00 00 00 00 00 21 57 05 00 00 4c ┆OCT2A H !r LOCAT4 !W L┆ 0x032740…032760 4f 43 41 54 33 9b 49 00 00 00 21 90 06 00 00 43 4b 47 4f 4f 44 00 00 00 00 00 21 6e 06 00 00 4e ┆OCAT3 I ! CKGOOD !n N┆ 0x032760…032780 58 54 4e 44 58 00 00 e5 d5 c5 cd 1b 39 21 ff ff 22 4e 2c 22 3b 2c 22 5e 2c 23 39 22 c4 39 2a 2d ┆XTNDX 9! "N,";,"^,#9" 9*-┆ 0x032780…0327a0 2c 56 af 23 23 86 15 c2 83 2c 32 2f 2c 2a c0 39 5f 22 30 2c cd a5 2d eb 2a 29 2c 23 eb 22 27 2c ┆,V ## ,2/,* 9_"0, - *),# "',┆ 0x0327a0…0327c0 36 0d cd a5 2d 1e 80 22 39 2c cd a5 2d 22 4c 2c cd a5 2d 2a c0 39 22 34 2c eb 2a 32 2c eb cd 24 ┆6 - "9, -"L, -* 9"4, *2, $┆ 0x0327c0…0327e0 2e 32 43 2c 2a c0 39 22 46 2c eb 2a 44 2c eb cd 24 2e 32 53 2c cd 72 2e cd 9c 2e 3a 26 2c e6 04 ┆.2C,* 9"F, *D, $.2S, r. .:&, ┆ 0x0327e0…032800 c4 fa 2c 3a f3 39 b7 c1 d1 e1 c9 3e ff 32 5e 2c c9 22 c0 39 60 69 22 c2 39 c9 2a c0 39 e5 22 27 ┆ ,: 9 > 2^, " 9`i" 9 * 9 "'┆ 0x032800…032820 (13, 0, 15) 39 2a 5f 2c cd 1f 32 cd 45 33 c2 1e 33 2a 5f 2c 7c b5 3e ff ca 3e 33 2b 22 5f 2c cd 1f 32 22 51 ┆9*_, 2 E3 3*_,ø > >3+"_, 2"Q┆ 0x032820…032840 2c 32 50 2c cd 5c 34 c4 db 30 3a 66 2c 47 04 2a 61 2c c4 45 33 c2 1e 33 cd b6 32 c2 f5 32 b7 32 ┆,2P, Ø4 0:f,G *a, E3 3 2 2 2┆ 0x032840…032860 5e 2c c3 ef 30 eb 2a ce 39 eb 47 3a d0 39 b8 cc b9 39 78 c9 cd b9 30 cd 7b 33 ca 63 33 2a 40 2c ┆^, 0 * 9 G: 9 9x 0 æ3 c3*@,┆ 0x032860…032880 3a 42 2c cd 6f 33 fe fe ca 5d 33 b7 c3 ef 30 22 3e 2c 32 3d 2c e5 d5 c5 c3 c4 32 3a 5e 2c 3c c0 ┆:B, o3 Å3 0">,2=, 2:^,< ┆ 0x032880…0328a0 67 6f 22 5f 2c c9 cd b9 30 cd 9a 33 fe fe cc b2 33 fe fe ca 8e 33 b7 c3 ef 30 3a 5e 2c b7 ca b2 ┆go"_, 0 3 3 3 0:^, ┆ 0x0328a0…0328c0 33 2a 37 2c 22 3e 2c 3a 36 2c 32 3d 2c b5 b4 3e ff c8 2a 3e 2c cd 4b 2f c4 db 30 3a 3d 2c 22 40 ┆3*7,">,:6,2=, > *>, K/ 0:=,"@┆ 0x0328c0…0328e0 2c 32 42 2c 4f cd 00 34 cd e4 33 d8 ca c8 33 cd e4 33 da dd 33 c2 cf 33 0c f2 df 33 23 0e 00 79 ┆,2B,O 4 3 3 3 3 3 3# y┆ 0x0328e0…032900 cd 6f 33 c9 1b b7 0d fc f2 33 d8 1a fe 0d c8 fe 0a c9 7c b5 ca 8c 32 2b cd 4b 2f c4 db 30 0e 7f ┆ o3 3 ø 2+ K/ 0 ┆ 0x032900…032920 eb 2a 39 2c 06 00 09 eb c9 cd a1 33 3e ff 32 5e 2c 2a 27 2c 7e 23 a6 3c c0 2a 3e 2c 22 37 2c 3a ┆ *9, 3> 2^,*',ü# < *>,"7,:┆ 0x032920…032940 3d 2c 32 36 2c c9 3a 5e 2c b7 c9 cd 3c 34 cd be 34 79 32 42 2c 2a 3b 2c 22 40 2c c9 2a 3e 2c cd ┆=,26, :^, <4 4y2B,*;,"@, *>, ┆ 0x032940…032960 4b 2f 21 00 00 22 5c 2c b7 c4 d4 30 c0 2a 27 2c eb 2a 39 2c 3a 3d 2c 4f 06 00 09 c9 cd 7c 34 c0 ┆K/! "Ø, 0 *', *9,:=,O ø4 ┆ 0x032960…032980 d5 06 06 11 61 2c cd a1 34 d1 c0 2a 63 2c 2b 22 63 2c 2a 65 2c 25 2d 22 65 2c b7 c9 4f c5 cd e6 ┆ a, 4 *c,+"c,*e,%-"e, O ┆ 0x032980…0329a0 2f c1 b7 c4 d4 30 c0 d5 2a 30 2c eb 06 00 2a 4c 2c 09 3a 2f 2c 47 cd 9b 34 d1 c9 7e fe 1a ca d9 ┆/ 0 *0, *L, :/,G 4 ü ┆ 0x0329a0…0329c0 30 7e 12 23 13 0c f2 b8 34 0e 00 2a 4e 2c 23 cd e6 2f c4 db 30 2a 4c 2c 05 c2 a1 34 af c9 cd 1a ┆0ü # 4 *N,# / 0*L, 4 ┆ 0x0329c0…0329e0 35 c0 fe 22 ca e8 34 cd fe 34 fe 2c ca be 34 fe 0d c8 cd 1a 35 c0 c3 c7 34 cd 1a 35 c0 cd fe 34 ┆5 " 4 4 , 4 5 4 5 4┆ 0x0329e0…032a00 fe 2c ca be 34 fe 0d c8 cd 1a 35 c0 fe 22 ca d9 34 fe 2c c2 f8 34 f6 80 cd fe 34 c3 e8 34 12 e5 ┆ , 4 5 " 4 , 4 4 4 ┆ 0x032a00…032a20 (13, 1, 1) f1 b0 c4 96 3b c1 d1 e1 c9 21 16 3c cd b4 3c 5f 3a 7e 18 57 3a 7d 18 47 0e 0f bb 3a 6b 11 da 44 ┆ ; ! < <_:ü W:å G :k D┆ 0x032a20…032a40 3b 78 82 f5 3a a2 18 82 57 f1 06 00 c3 44 3b 3a 40 02 2a 1c 3c 95 5f 3a 7f 18 57 21 17 3c 01 03 ┆;x : W D;:@ * < _: W! < ┆ 0x032a40…032a60 00 3a 6c 11 93 d2 49 3b af ca 82 3b 32 15 3c 7e b7 ca 59 3b 81 ba d2 6d 3b 7e 83 91 4f 7a 80 b9 ┆ :l I; ;2 <ü Y; m;ü Oz ┆ 0x032a60…032a80 d2 6d 3b 3a 15 3c be da 82 3b 3e 00 c9 3a 15 3c 4f 7b 1f 5f 78 b7 1f 82 93 d2 7d 3b af b9 da 82 ┆ m;: < ;> : <Oæ _x å; ┆ 0x032a80…032aa0 3b 79 4e 77 91 c9 e5 d5 c5 cd 09 3b b7 f5 c4 96 3b f1 c1 d1 e1 c9 2a 16 3c cd 00 3c 22 18 3c cd ┆;yNw ; ; * < <" < ┆ 0x032aa0…032ac0 a3 3b c9 3a b2 42 e5 d5 c5 6f cd fb 39 cd e8 3b 3a 1c 3c bd d2 e4 3b 4f 7d f5 cd 6c 3a 5f 16 00 ┆ ; : B o 9 ;: < ;Oå l:_ ┆ 0x032ac0…032ae0 e5 2a 17 3c 3a 6c 11 95 2a 1c 3c 85 e1 bd da d2 3b 7d 2a 18 3c cd fe 40 19 0c b9 c2 d5 3b f1 91 ┆ * <:l * < ;å* < @ ; ┆ 0x032ae0…032b00 41 c4 e5 40 c1 d1 e1 c9 e5 d5 c5 2a c5 42 eb 21 1d 3c 3a 1c 3c 4f 87 81 47 cd b7 38 c1 d1 e1 c9 ┆A @ * B ! <: <O G 8 ┆ 0x032b00…032b20 44 4d 3a 6b 11 cd 71 42 2a 6d 11 19 c9 7c 2f 67 7d 2f 6f 23 c9 72 00 00 6d 11 ff 06 07 cf c6 46 ┆DM:k qB*m ø/gå/o# r m F┆ 0x032b20…032b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e5 d5 c5 3a 40 02 32 b2 42 47 2a b3 02 22 ┆ :@ 2 BG* "┆ 0x032b40…032b60 0b 43 cd 99 3c 2a 2c 03 c2 53 3c 22 0b 43 0e 00 cd 60 42 22 c5 42 3a 40 02 5f 16 00 19 19 19 22 ┆ C <*, S<" C `B" B:@ _ "┆ 0x032b60…032b80 2c 03 3a 4d 02 21 56 02 86 21 5b 02 86 c6 02 32 0a 43 1e 03 2a 01 00 19 22 fd 41 19 22 04 42 19 ┆, :M !V !Æ 2 C * " A " B ┆ 0x032b80…032ba0 22 ac 3e cd a7 02 21 95 02 cd ea 3d 3a b1 02 cd 1b 3e cd d3 3c c1 d1 e1 c9 3a b2 02 b7 c9 cd aa ┆" > ! =: > < : ┆ 0x032ba0…032bc0 02 21 9e 02 cd ea 3d cd 1e 3e c9 3c 3d c8 cd 99 41 c3 ac 3c 3a ad 02 b7 3a 41 02 c0 3d c9 af 32 ┆ ! = > <= A <: :A = 2┆ 0x032bc0…032be0 b9 42 3a b8 42 fe ff c8 e5 2a b6 42 ae e6 80 ae 77 e1 c9 3a b6 02 32 b9 42 e5 d5 c5 2a 40 02 eb ┆ B: B * B w : 2 B *@ ┆ 0x032be0…032c00 2a 0b 43 22 b4 42 22 b6 42 3e 20 32 b8 42 cd 99 3c c2 07 3d 21 ff ff 22 be 42 cd 6e 3e 63 25 2e ┆* C" B" B> 2 B < =! " B n>c%.┆ 0x032c00…032c20 (13, 1, 2) 00 00 00 00 00 00 00 ff 00 00 00 00 00 fc 1a fc 1a 06 4f 41 02 4f 90 02 4f df 02 4f 2e 03 4f 7d ┆ OA O O O. Oå┆ 0x032c20…032c40 03 4f 6a 04 06 4f 41 02 4f 90 02 4f cc 03 4f 2e 03 4f 7d 03 4f 6a 04 06 4f 41 02 4f 90 02 4f cc ┆ Oj OA O O O. Oå Oj OA O O ┆ 0x032c40…032c60 03 4f 2e 03 4f 1b 04 4f 6a 04 06 4f 41 02 4f f6 04 4f cc 03 4f 2e 03 4f 1b 04 4f 6a 04 c8 04 ec ┆ O. O Oj OA O O O. O Oj ┆ 0x032c60…032c80 04 f6 04 46 05 0f 00 af 05 15 00 c4 05 cb 05 d9 05 60 06 c8 06 0a 07 34 07 55 07 8d 07 f0 07 30 ┆ F ` 4 U 0┆ 0x032c80…032ca0 08 88 08 bd 08 2f 0b af 09 69 0a d4 08 66 0b ad 09 44 09 09 09 20 09 32 09 f7 08 5b 09 6d 09 ec ┆ / i f D 2 Æ m ┆ 0x032ca0…032cc0 0b 0a 0c 37 0c 70 0d 2e 0f 3c 11 cd 11 bb 12 31 14 9d 10 2e 15 19 16 69 16 bc 17 b9 0d c6 0d 00 ┆ 7 p . < 1 . i ┆ 0x032cc0…032ce0 19 2d 19 42 19 52 19 62 19 6a 19 7a 19 97 19 af 19 b7 19 cc 19 4a 19 5a 19 6a 19 7a 19 87 19 a7 ┆ - B R b j z J Z j z ┆ 0x032ce0…032d00 19 b7 19 cc 19 22 1a 4b 1a 63 1a 91 1a c9 1a fa 1a 1a 1b c9 1a 30 1b 4a 1b 78 1b d6 1b fa 1b fb ┆ " K c 0 J x ┆ 0x032d00…032d20 1b 00 00 02 e0 30 da 00 02 c2 0a 1e 00 00 42 41 54 43 48 20 20 20 43 4f 4d 00 46 4f 52 4d 47 45 ┆ 0 BATCH COM FORMGE┆ 0x032d20…032d40 4e 20 43 4f 4d 00 00 00 00 44 54 41 4e 44 58 2e 38 39 41 42 43 44 45 46 47 48 61 62 63 64 65 66 ┆N COM DTANDX.89ABCDEFGHabcdef┆ 0x032d40…032d60 67 68 0a 16 12 0d 0b 09 06 05 04 02 01 00 43 55 52 53 4f 52 3a 20 20 20 20 20 5e 41 3d 70 72 65 ┆gh CURSOR: ^A=pre┆ 0x032d60…032d80 76 20 66 69 65 6c 64 20 20 20 20 20 5e 53 3d 6c 65 66 74 20 63 68 61 72 20 20 20 20 5e 44 3d 72 ┆v field ^S=left char ^D=r┆ 0x032d80…032da0 69 67 68 74 20 63 68 61 72 20 20 20 20 5e 46 3d 6e 65 78 74 20 66 69 65 6c 64 20 20 20 20 20 20 ┆ight char ^F=next field ┆ 0x032da0…032dc0 20 20 20 20 20 20 20 20 20 5e 54 3d 66 69 72 73 74 20 66 69 65 6c 64 20 20 20 20 5e 4c 3d 6c 61 ┆ ^T=first field ^L=la┆ 0x032dc0…032de0 73 74 20 66 69 65 6c 64 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆st field ┆ 0x032de0…032e00 20 20 20 20 20 20 20 20 20 20 20 20 46 49 45 4c 44 20 45 44 49 54 3a 20 5e 47 3d 64 65 6c 65 74 ┆ FIELD EDIT: ^G=delet┆ 0x032e00…032e20 (13, 1, 3) 01 89 09 00 46 69 6c 65 20 6e 6f 74 20 66 6f 75 6e 64 01 89 09 00 49 6e 73 75 66 66 69 63 69 65 ┆ File not found Insufficie┆ 0x032e20…032e40 6e 74 20 6d 65 6d 6f 72 79 01 89 09 00 44 69 72 65 63 74 6f 72 79 20 6f 6e 20 64 01 33 09 00 44 ┆nt memory Directory on d 3 D┆ 0x032e40…032e60 69 73 6b 20 01 f4 01 3a 20 66 75 6c 6c 01 89 09 00 42 41 54 43 48 2e 43 4f 4d 20 6e 6f 74 20 66 ┆isk : full BATCH.COM not f┆ 0x032e60…032e80 6f 75 6e 64 01 89 09 00 45 6e 64 20 6f 66 20 73 65 73 73 69 6f 6e 01 89 09 00 44 69 73 6b 20 01 ┆ound End of session Disk ┆ 0x032e80…032ea0 f4 01 3a 20 72 65 61 64 2f 77 72 69 74 65 20 66 61 69 6c 75 72 65 2e 0d 52 65 70 6c 61 63 65 20 ┆ : read/write failure. Replace ┆ 0x032ea0…032ec0 73 79 73 74 65 6d 20 64 69 73 6b 2c 20 74 79 70 65 20 72 65 74 75 72 6e 2e 00 0d 00 0d 20 54 68 ┆system disk, type return. Th┆ 0x032ec0…032ee0 65 20 66 6f 72 6d 20 64 65 66 69 6e 69 74 69 6f 6e 20 66 69 6c 65 20 69 73 20 77 68 65 72 65 20 ┆e form definition file is where ┆ 0x032ee0…032f00 74 68 65 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 73 20 66 6f 72 20 79 6f 75 72 20 66 6f 72 6d ┆the specifications for your form┆ 0x032f00…032f20 20 61 72 65 0d 20 73 74 6f 72 65 64 2e 20 20 49 66 20 79 6f 75 20 68 61 76 65 20 6e 6f 74 20 79 ┆ are stored. If you have not y┆ 0x032f20…032f40 65 74 20 64 65 73 69 67 6e 65 64 20 61 20 66 6f 72 6d 2c 20 63 68 6f 6f 73 65 20 61 20 6e 61 6d ┆et designed a form, choose a nam┆ 0x032f40…032f60 65 20 66 6f 72 20 74 68 65 20 66 6f 72 6d 0d 20 64 65 66 69 6e 69 74 69 6f 6e 20 66 69 6c 65 20 ┆e for the form definition file ┆ 0x032f60…032f80 61 6e 64 20 65 6e 74 65 72 20 69 74 20 68 65 72 65 2e 01 f3 0a 00 0d 20 41 20 66 6f 72 6d 20 64 ┆and enter it here. A form d┆ 0x032f80…032fa0 65 66 69 6e 69 74 69 6f 6e 20 6e 61 6d 65 20 69 73 20 65 69 67 68 74 20 28 6f 72 20 6c 65 73 73 ┆efinition name is eight (or less┆ 0x032fa0…032fc0 29 20 6c 65 74 74 65 72 73 20 61 6e 64 2f 6f 72 20 6e 75 6d 62 65 72 73 2c 0d 20 6f 70 74 69 6f ┆) letters and/or numbers, optio┆ 0x032fc0…032fe0 6e 61 6c 6c 79 20 70 72 65 63 65 65 64 65 64 20 62 79 20 61 20 64 69 73 6b 20 64 72 69 76 65 20 ┆nally preceeded by a disk drive ┆ 0x032fe0…033000 28 6c 65 74 74 65 72 20 41 2d 50 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 63 6f 6c 6f 6e 29 2e 0d ┆(letter A-P followed by colon). ┆ 0x033000…033020 (13, 1, 4) 20 66 69 6c 65 20 6d 61 69 6e 74 65 6e 61 6e 63 65 20 69 73 20 72 65 71 75 69 72 65 64 2c 20 65 ┆ file maintenance is required, e┆ 0x033020…033040 01 50 08 20 77 68 65 6e 20 61 20 62 61 74 63 68 20 66 69 6c 65 20 6e 61 6d 65 20 69 73 20 72 65 ┆ P when a batch file name is re┆ 0x033040…033060 71 75 65 73 74 65 64 2e 00 52 3d 52 45 53 54 4f 52 45 20 4d 41 49 4e 20 46 49 4c 45 20 69 73 20 ┆quested. R=RESTORE MAIN FILE is ┆ 0x033060…033080 75 73 65 64 20 74 6f 20 52 45 54 55 52 4e 20 54 4f 20 50 52 49 4d 41 52 59 20 44 41 54 41 42 41 ┆used to RETURN TO PRIMARY DATABA┆ 0x033080…0330a0 53 45 20 4f 50 45 52 41 54 49 4f 4e 2e 20 20 49 74 0d 69 73 20 6f 6e 6c 79 20 75 73 65 66 75 6c ┆SE OPERATION. It is only useful┆ 0x0330a0…0330c0 20 77 68 65 6e 20 61 20 62 61 74 63 68 20 66 69 6c 65 20 68 61 73 20 62 65 65 6e 20 73 65 6c 65 ┆ when a batch file has been sele┆ 0x0330c0…0330e0 63 74 65 64 20 61 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 66 69 6c 65 2e 00 4d 3d 45 44 49 54 ┆cted as the current file. M=EDIT┆ 0x0330e0…033100 20 53 43 41 4e 20 4d 41 53 4b 20 69 73 20 75 73 65 64 20 74 6f 20 41 4c 54 45 52 20 54 48 45 20 ┆ SCAN MASK is used to ALTER THE ┆ 0x033100…033120 43 55 52 52 45 4e 54 20 53 43 41 4e 20 4d 41 53 4b 2e 20 20 57 68 65 6e 20 74 68 65 20 66 6f 72 ┆CURRENT SCAN MASK. When the for┆ 0x033120…033140 6d 20 69 73 0d 70 72 65 73 65 6e 74 65 64 2c 20 61 6e 79 20 64 61 74 61 66 69 65 6c 64 20 6d 61 ┆m is presented, any datafield ma┆ 0x033140…033160 79 20 62 65 20 65 6e 74 65 72 65 64 2e 20 20 49 66 20 61 20 53 43 41 4e 20 4d 4f 44 45 20 69 73 ┆y be entered. If a SCAN MODE is┆ 0x033160…033180 20 74 68 65 6e 20 73 65 6c 65 63 74 65 64 2c 0d 6f 6e 6c 79 20 72 65 63 6f 72 64 73 20 74 68 61 ┆ then selected, only records tha┆ 0x033180…0331a0 74 20 6d 61 74 63 68 20 74 68 65 20 65 6e 74 65 72 65 64 20 64 61 74 61 66 69 65 6c 64 73 20 28 ┆t match the entered datafields (┆ 0x0331a0…0331c0 6f 72 20 70 6f 72 74 69 6f 6e 73 20 74 68 65 72 65 6f 66 29 20 77 69 6c 6c 0d 62 65 20 64 69 73 ┆or portions thereof) will be dis┆ 0x0331c0…0331e0 70 6c 61 79 65 64 2e 00 4b 3d 53 45 4c 45 43 54 20 42 59 20 4b 45 59 20 4d 4f 44 45 20 69 73 20 ┆played. K=SELECT BY KEY MODE is ┆ 0x0331e0…033200 75 73 65 64 20 74 6f 20 53 45 4c 45 43 54 20 49 4e 44 49 56 49 44 55 41 4c 20 52 45 43 4f 52 44 ┆used to SELECT INDIVIDUAL RECORD┆ 0x033200…033220 (13, 1, 5) 00 cd 3c 3d 2a 0b 43 42 36 20 05 23 c2 08 3d cd 99 3c c2 1f 3d 0e 0d cd a4 3e 0e 0a cd a4 3e 1d ┆ <=* CB6 # = < = > > ┆ 0x033220…033240 c2 07 3d 2a c5 42 3a 40 02 47 80 80 73 23 3d c2 2c 3d 21 00 00 cd 3c 3d c1 d1 e1 c9 f5 af 32 c4 ┆ =* B:@ G s#= ,=! <= 2 ┆ 0x033240…033260 42 f1 c3 48 3d cd bb 41 e5 d5 c5 f5 3a b9 42 b7 c2 c2 3d e5 5c 55 2a c2 42 7b bc c2 7a 3d 7a 95 ┆B H= A : B = ØU* Bæ z=z ┆ 0x033260…033280 ca af 3d 47 3a 0a 43 b8 da 7a 3d 2a b6 42 4e cd a4 3e 23 05 c2 6e 3d c3 af 3d 3a 67 02 b7 c2 bb ┆ =G: C z=* BN ># n= =:g ┆ 0x033280…0332a0 3d 21 4d 02 cd ea 3d 2a 61 02 19 4d 54 3a 60 02 b7 ca 96 3d 4c 55 cd a4 3e 21 56 02 cd ea 3d 4a ┆=!M =*a MT:` =LU >!V =J┆ 0x0332a0…0332c0 cd a4 3e 21 5b 02 cd ea 3d 3a b0 02 cd 1b 3e e1 cd d8 3d cd 6e 3e f1 c1 d1 e1 c9 eb cd 67 02 c3 ┆ >!Æ =: > = n> g ┆ 0x0332c0…0332e0 a9 3d cd c2 3c cd d8 3d 2a b4 42 22 b6 42 7e 32 b8 42 f6 80 77 c3 b6 3d e5 d5 c5 22 be 42 44 4d ┆ = < =* B" Bü2 B w = " BDM┆ 0x0332e0…033300 cd 60 42 22 b4 42 c1 d1 e1 c9 3e 01 32 08 43 46 04 05 c8 23 4e 79 e6 7e fe 02 cc 03 3e cd 3e 3e ┆ `B" B > 2 CF #Ny ü > >>┆ 0x033300…033320 c3 f1 3d e5 d5 eb 2a 8c 18 79 e6 80 b6 4f 1b 23 1a e6 7e fe 02 ca 09 3e d1 e1 c9 cd ab 3c af 32 ┆ = * y O # ü > < 2┆ 0x033320…033340 08 43 c9 79 fe 20 d2 32 3e fe 0d c0 e5 cd 09 40 e1 c9 cd 3e 3e e5 2a be 42 cd 3c 3d e1 c9 e5 d5 ┆ C y 2> @ >> * B <= ┆ 0x033340…033360 c5 3a 08 43 b7 c2 a7 3e 79 cd b5 3e 4f cd 54 3e c1 d1 e1 c9 cd 99 3c c2 7b 3e 79 2a b4 42 be ca ┆ : C >y >O T> < æ>y* B ┆ 0x033360…033380 8c 3e 2a be 42 cd 48 3d cd a4 3e cd 8c 3e 2a be 42 22 c2 42 2a b4 42 22 b6 42 c9 2a b6 42 eb 2a ┆ >* B H= > >* B" B* B" B * B *┆ 0x033380…0333a0 b4 42 cd b9 39 c2 8c 3e 79 32 b8 42 21 be 42 34 2a b4 42 71 23 22 b4 42 c5 3a bf 42 4f 06 00 cd ┆ B 9 >y2 B! B4* Bq#" B : BO ┆ 0x0333a0…0333c0 fe 40 c1 c9 e5 d5 c5 cd 2a 3f 79 cd 00 00 cd f9 41 c1 d1 e1 c9 07 fe 02 d2 bd 3e c6 be fe 04 d2 ┆ @ *?y A > ┆ 0x0333c0…0333e0 c4 3e c6 52 0f c9 e5 d5 c5 0e 20 cd b4 3c 2a be 42 95 47 ca e6 3e eb 21 70 02 7e b7 c2 ea 3e cd ┆ > R <* B G > !p ü > ┆ 0x0333e0…033400 3e 3e 05 c2 df 3e c1 d1 e1 c9 e5 2a b4 42 0e 00 7e 36 20 96 b1 4f 23 05 c2 f0 3e e1 b7 ca 0e 3f ┆>> > * B ü6 O# > ?┆ 0x033400…033420 (13, 1, 6) 65 20 63 68 61 72 20 20 20 20 5e 56 3d 69 6e 73 65 72 74 20 68 6f 6c 65 20 20 5e 43 3d 63 6f 70 ┆e char ^V=insert hole ^C=cop┆ 0x033420…033440 79 20 66 72 6f 6d 20 70 72 65 76 69 6f 75 73 20 72 65 63 6f 72 64 20 20 20 20 20 4f 54 48 45 52 ┆y from previous record OTHER┆ 0x033440…033460 3a 20 20 20 20 20 20 5e 5a 3d 72 65 73 74 6f 72 65 20 73 63 72 65 65 6e 20 5e 55 3d 70 72 69 6e ┆: ^Z=restore screen ^U=prin┆ 0x033460…033480 74 20 66 6f 72 6d 20 20 20 5e 4f 3d 70 72 69 6e 74 20 64 61 74 61 20 20 20 20 5e 4a 3d 68 65 6c ┆t form ^O=print data ^J=hel┆ 0x033480…0334a0 70 20 6f 6e 2f 6f 66 66 20 20 45 4e 44 2f 45 58 49 54 3a 20 20 20 5e 42 3d 65 6e 64 20 65 6e 74 ┆p on/off END/EXIT: ^B=end ent┆ 0x0334a0…0334c0 72 79 20 20 20 20 20 20 5e 45 3d 65 78 69 74 20 63 75 72 72 65 6e 74 20 6d 6f 64 65 20 20 20 20 ┆ry ^E=exit current mode ┆ 0x0334c0…0334e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 46 49 45 4c 44 20 45 ┆ FIELD E┆ 0x0334e0…033500 44 49 54 3a 20 5e 47 3d 64 65 6c 65 74 65 20 63 68 61 72 20 20 20 20 5e 56 3d 69 6e 73 65 72 74 ┆DIT: ^G=delete char ^V=insert┆ 0x033500…033520 20 68 6f 6c 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ hole ┆ 0x033520…033540 20 20 20 20 20 20 20 20 45 4e 44 2f 45 58 49 54 3a 20 20 20 5e 42 3d 65 6e 64 20 65 6e 74 72 79 ┆ END/EXIT: ^B=end entry┆ 0x033540…033560 20 20 20 20 20 20 5e 4e 3d 6e 65 78 74 20 72 65 63 6f 72 64 20 20 5e 50 3d 70 72 65 76 20 72 65 ┆ ^N=next record ^P=prev re┆ 0x033560…033580 63 6f 72 64 20 20 20 5e 45 3d 65 78 69 74 20 6d 6f 64 65 20 20 20 20 5f 5f 5f 5f 5f 5f 5f 5f 5f ┆cord ^E=exit mode _________┆ 0x033580…0335a0 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f ┆________________________________┆ […0x1…] 0x0335c0…0335e0 5f 5f 5f 5f 5f 5f 41 44 44 20 4d 4f 44 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆______ADD MODE ┆ 0x0335e0…033600 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 72 65 6e 74 20 66 6f 72 6d 3d 20 20 20 20 20 20 20 ┆ current form= ┆ 0x033600…033620 (13, 1, 7) 0d 0d 50 72 65 73 73 20 52 45 54 55 52 4e 20 6b 65 79 20 74 6f 20 65 6e 74 65 72 20 66 6f 72 6d ┆ Press RETURN key to enter form┆ 0x033620…033640 20 6e 61 6d 65 20 6f 72 20 65 6e 74 65 72 20 5e 43 20 74 6f 20 65 78 69 74 3a 20 00 45 6e 74 65 ┆ name or enter ^C to exit: Ente┆ 0x033640…033660 72 20 6e 61 6d 65 20 6f 66 20 66 6f 72 6d 20 64 65 66 69 6e 69 74 69 6f 6e 20 66 69 6c 65 20 28 ┆r name of form definition file (┆ 0x033660…033680 6f 72 20 70 72 65 73 73 20 52 45 54 55 52 4e 29 3a 20 00 20 54 68 65 20 66 6f 72 6d 20 64 65 66 ┆or press RETURN): The form def┆ 0x033680…0336a0 69 6e 69 74 69 6f 6e 20 66 69 6c 65 2c 20 01 80 00 2c 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 ┆inition file, , does not exis┆ 0x0336a0…0336c0 74 20 79 65 74 2e 0d 20 44 6f 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 63 72 65 61 74 65 20 69 74 ┆t yet. Do you want to create it┆ 0x0336c0…0336e0 20 28 41 29 20 6f 72 20 65 6e 74 65 72 20 61 20 64 69 66 66 65 72 65 6e 74 20 66 6f 72 6d 20 6e ┆ (A) or enter a different form n┆ 0x0336e0…033700 61 6d 65 20 28 42 29 3f 0d 0d 45 6e 74 65 72 20 41 20 6f 72 20 42 3a 20 00 01 16 0c 64 61 74 61 ┆ame (B)? Enter A or B: data┆ 0x033700…033720 20 66 69 6c 65 20 28 01 80 00 29 20 20 28 41 2f 42 2e 2e 2e 29 20 00 01 16 0c 69 6e 64 65 78 01 ┆ file ( ) (A/B...) index ┆ 0x033720…033740 f3 0b 00 45 6e 74 65 72 20 64 69 73 6b 20 64 72 69 76 65 20 74 6f 20 75 73 65 20 66 6f 72 20 74 ┆ Enter disk drive to use for t┆ 0x033740…033760 68 65 20 00 0d 20 54 68 65 20 64 61 74 61 20 66 69 6c 65 20 69 73 20 75 73 65 64 20 74 6f 20 73 ┆he The data file is used to s┆ 0x033760…033780 74 6f 72 65 20 74 68 65 20 64 61 74 61 20 65 6e 74 65 72 65 64 20 74 68 72 6f 75 67 68 20 74 68 ┆tore the data entered through th┆ 0x033780…0337a0 65 20 44 61 74 61 73 74 61 72 0d 20 70 72 6f 67 72 61 6d 20 62 79 20 72 65 63 6f 72 64 2e 20 20 ┆e Datastar program by record. ┆ 0x0337a0…0337c0 54 68 65 20 69 6e 64 65 78 20 66 69 6c 65 20 69 73 20 75 73 65 64 20 66 6f 72 20 74 68 65 20 73 ┆The index file is used for the s┆ 0x0337c0…0337e0 65 6c 65 63 74 2d 62 79 2d 6b 65 79 20 6f 70 74 69 6f 6e 0d 20 61 6e 64 20 66 6f 72 20 73 63 61 ┆elect-by-key option and for sca┆ 0x0337e0…033800 6e 6e 69 6e 67 20 74 68 65 20 66 69 6c 65 20 69 6e 20 69 6e 64 65 78 20 6f 72 64 65 72 2e 20 20 ┆nning the file in index order. ┆ 0x033800…033820 (13, 1, 8) 53 20 46 52 4f 4d 20 54 48 45 20 46 49 4c 45 20 66 6f 72 0d 73 63 72 65 65 6e 20 64 69 73 70 6c ┆S FROM THE FILE for screen displ┆ 0x033820…033840 61 79 2e 20 20 57 68 65 6e 20 74 68 65 20 66 6f 72 6d 20 69 73 20 70 72 65 73 65 6e 74 65 64 2c ┆ay. When the form is presented,┆ 0x033840…033860 20 65 6e 74 72 79 20 77 69 6c 6c 20 62 65 20 72 65 71 75 69 72 65 64 20 61 74 20 65 61 63 68 0d ┆ entry will be required at each ┆ 0x033860…033880 22 6b 65 79 22 20 66 69 65 6c 64 20 74 68 61 74 20 74 68 65 20 63 75 72 73 6f 72 20 73 74 6f 70 ┆"key" field that the cursor stop┆ 0x033880…0338a0 73 20 61 74 2e 20 20 57 68 65 6e 20 65 6e 74 72 79 20 69 73 20 63 6f 6d 70 6c 65 74 65 2c 20 74 ┆s at. When entry is complete, t┆ 0x0338a0…0338c0 68 65 20 66 69 72 73 74 0d 72 65 63 6f 72 64 20 69 6e 20 74 68 65 20 66 69 6c 65 20 74 68 61 74 ┆he first record in the file that┆ 0x0338c0…0338e0 20 65 78 61 63 74 6c 79 20 6d 61 74 63 68 65 73 20 69 6e 20 74 68 65 20 65 6e 74 65 72 65 64 20 ┆ exactly matches in the entered ┆ 0x0338e0…033900 70 6f 73 69 74 69 6f 6e 73 20 77 69 6c 6c 20 62 65 0d 64 69 73 70 6c 61 79 65 64 2e 20 20 54 68 ┆positions will be displayed. Th┆ 0x033900…033920 69 73 20 73 65 61 72 63 68 20 6d 6f 64 65 20 69 73 20 66 61 73 74 65 72 20 74 68 61 6e 20 74 68 ┆is search mode is faster than th┆ 0x033920…033940 65 20 53 43 41 4e 20 4d 4f 44 45 20 73 65 61 72 63 68 20 77 69 74 68 20 6d 61 73 6b 2e 00 49 3d ┆e SCAN MODE search with mask. I=┆ 0x033940…033960 53 43 41 4e 20 49 4e 20 49 4e 44 45 58 20 46 49 4c 45 20 4f 52 44 45 52 20 69 73 20 75 73 65 64 ┆SCAN IN INDEX FILE ORDER is used┆ 0x033960…033980 20 74 6f 20 52 45 56 49 45 57 20 54 48 45 20 43 55 52 52 45 4e 54 20 46 49 4c 45 20 49 4e 20 53 ┆ to REVIEW THE CURRENT FILE IN S┆ 0x033980…0339a0 4f 52 54 20 4f 52 44 45 52 2e 0d 54 68 65 20 63 6f 6d 6d 61 6e 64 73 20 5e 50 20 61 6e 64 20 5e ┆ORT ORDER. The commands ^P and ^┆ 0x0339a0…0339c0 4e 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 64 69 73 70 6c 61 79 20 74 68 65 20 50 72 65 ┆N can be used to display the Pre┆ 0x0339c0…0339e0 76 69 6f 75 73 20 6f 72 20 4e 65 78 74 20 72 65 63 6f 72 64 2e 0d 54 68 65 20 73 63 61 6e 20 6d ┆vious or Next record. The scan m┆ 0x0339e0…033a00 61 73 6b 20 63 61 6e 20 62 65 20 65 64 69 74 65 64 20 73 6f 20 74 68 61 74 20 74 68 69 73 20 6d ┆ask can be edited so that this m┆ 0x033a00…033a20 (13, 1, 9) eb cd 45 3d eb cd ea 3d 3a b1 02 cd 1b 3e c1 d1 e1 c9 3a b5 02 b7 c2 20 3f 3a b3 42 b7 c3 30 3f ┆ E= =: > : ?: B 0?┆ 0x033a20…033a40 e5 2a b6 42 7e ee 80 77 e1 c9 3a b3 42 a9 f0 a9 ca 48 3f af 32 b3 42 e5 21 8e 02 7e b7 c2 43 3f ┆ * Bü w : B H? 2 B ! ü C?┆ 0x033a40…033a60 21 87 02 cd 56 3f e1 c9 e5 21 87 02 cd 56 3f e1 3e ff 32 b3 42 c9 3a 08 43 f5 c5 cd ea 3d 3a b1 ┆! V? ! V? > 2 B : C =: ┆ 0x033a60…033a80 02 cd 1b 3e c1 f1 32 08 43 c9 cd 83 3f cd cd 41 ca 6d 3f cd 7e 3f c2 6a 3f 4f cd a8 41 c9 0c 0d ┆ > 2 C ? A m? ü? j?O A ┆ 0x033a80…033aa0 c8 b9 c9 e5 d5 c5 e5 60 2e 00 cd 59 42 cd e0 41 cc 45 3d e1 cd ce 3f cd e0 41 c2 b5 3f 2a be 42 ┆ `. YB A E= ? A ?* B┆ 0x033aa0…033ac0 e5 cd c6 3e 44 04 78 d6 06 2f 3c dc e5 40 cd 59 42 e1 cd 48 3d c1 d1 e1 c9 3e 00 c3 bf 3f 79 e5 ┆ >D x /< @ YB H= > ?y ┆ 0x033ac0…033ae0 6f 60 cd 15 40 e1 cd ce 3f af 32 c4 42 c9 e5 d5 c5 cd c7 40 06 00 16 01 e5 2a be 42 cd b4 3c 95 ┆o` @ ? 2 B @ * B < ┆ 0x033ae0…033b00 5f e1 7e 4f 23 fe 20 da 2e 40 fe 80 ca 46 40 cd e0 41 cc 3e 3e 04 05 ca fe 3f 05 ca 46 40 1d c2 ┆_ üO# .@ F@ A >> ? F@ ┆ 0x033b00…033b20 e2 3f e5 cd 09 40 c3 dc 3f cd e0 41 cc c6 3e 2a be 42 24 2e 00 cd e0 41 cc 45 3d c9 46 23 14 d5 ┆ ? @ ? A >* B$. A E= F# ┆ 0x033b20…033b40 5e 23 56 23 e3 eb 7c b7 c4 b2 40 c3 e2 3f fe 0d ca 02 40 04 05 c2 f5 3f fe 01 ca 1e 40 fe 02 ca ┆^#V# ø @ ? @ ? @ ┆ 0x033b40…033b60 1c 40 b7 c2 f5 3f 15 c2 e1 3f 2a be 42 cd e0 41 cc c6 3e cd 45 3d c1 d1 e1 c9 e5 d5 c5 46 23 e5 ┆ @ ? ?* B A > E= F# ┆ 0x033b60…033b80 23 1e 00 cd 1d 41 e6 7f fe 7f c2 6f 40 3e 08 fe 20 da 85 40 4f cd 23 3e 71 23 1c 05 c2 63 40 e1 ┆# A o@> @O #>q# c@ ┆ 0x033b80…033ba0 73 c1 d1 e1 c9 fe 03 ca 00 00 fe 0d 36 00 ca 7f 40 cd 97 40 c3 63 40 fe 08 c0 7b b7 c8 e5 2a be ┆s 6 @ @ c@ æ * ┆ 0x033ba0…033bc0 42 2d cd 3c 3d 0e 20 cd 23 3e cd 3c 3d e1 2b 04 1d c9 d5 f5 eb 2a 0f 43 eb 7a 3c bc da c4 40 11 ┆B- <= #> <= + * C z< @ ┆ 0x033bc0…033be0 0d 43 15 19 f1 d1 c9 d5 f5 11 5b 43 cd b9 39 d2 e2 40 11 01 44 cd b9 39 da e2 40 5e 23 56 eb cd ┆ C ÆC 9 @ D 9 @^#V ┆ 0x033be0…033c00 b2 40 f1 d1 c9 e5 c5 48 f5 cd b4 3c 47 f1 2a 61 43 f5 cd fe 40 f1 0c 3d c2 f1 40 c1 e1 c9 f5 3a ┆ @ H <G *aC @ = @ :┆ 0x033c00…033c20 (13, 1, 10) 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ […0x1…] 0x033c40…033c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 44 44 20 4d 4f 44 45 20 20 20 20 20 ┆ ADD MODE ┆ 0x033c60…033c80 20 20 4c 4f 43 41 54 45 20 4b 45 59 20 4d 4f 44 45 20 20 53 43 41 4e 20 4d 4f 44 45 20 28 44 29 ┆ LOCATE KEY MODE SCAN MODE (D)┆ 0x033c80…033ca0 20 20 53 43 41 4e 20 4d 4f 44 45 20 28 49 29 45 44 49 54 20 53 43 41 4e 20 4d 41 53 4b 20 56 45 ┆ SCAN MODE (I)EDIT SCAN MASK VE┆ 0x033ca0…033cc0 52 49 46 59 20 4d 4f 44 45 20 20 20 20 4d 41 49 4e 54 45 4e 41 4e 43 45 20 20 20 20 2c 20 50 4c ┆RIFY MODE MAINTENANCE , PL┆ 0x033cc0…033ce0 45 41 53 45 20 45 4e 54 45 52 20 4b 45 59 20 20 20 2f 42 41 54 43 48 20 20 20 20 20 20 20 20 20 ┆EASE ENTER KEY /BATCH ┆ 0x033ce0…033d00 20 20 20 20 20 20 0d 48 69 74 20 52 45 54 55 52 4e 20 74 6f 20 66 69 6c 65 20 65 6e 74 65 72 65 ┆ Hit RETURN to file entere┆ 0x033d00…033d20 64 20 64 61 74 61 20 6f 72 20 52 55 42 20 74 6f 20 65 72 61 73 65 20 61 6c 6c 20 69 74 65 6d 73 ┆d data or RUB to erase all items┆ 0x033d20…033d40 20 6f 6e 20 73 63 72 65 65 6e 2e 0d 54 79 70 65 20 61 6e 79 20 6f 74 68 65 72 20 63 68 61 72 61 ┆ on screen. Type any other chara┆ 0x033d40…033d60 63 74 65 72 20 74 6f 20 72 65 74 75 72 6e 20 74 6f 20 74 6f 70 20 6f 66 20 66 6f 72 6d 20 61 6e ┆cter to return to top of form an┆ 0x033d60…033d80 64 20 63 6f 6e 74 69 6e 75 65 3a 20 00 48 69 74 20 52 45 54 55 52 4e 20 74 6f 20 66 69 6c 65 20 ┆d continue: Hit RETURN to file ┆ 0x033d80…033da0 75 70 64 61 74 65 64 20 64 61 74 61 20 6f 72 20 52 55 42 20 74 6f 20 6c 65 61 76 65 20 66 69 6c ┆updated data or RUB to leave fil┆ 0x033da0…033dc0 65 64 20 64 61 74 61 20 61 73 0d 69 74 20 77 61 73 20 61 6e 64 20 62 65 67 69 6e 20 75 70 64 61 ┆ed data as it was and begin upda┆ 0x033dc0…033de0 74 69 6e 67 20 61 6e 6f 74 68 65 72 20 66 6f 72 6d 01 1d 06 00 0d 48 69 74 20 52 45 54 55 52 4e ┆ting another form Hit RETURN┆ 0x033de0…033e00 20 74 6f 20 67 6f 20 74 6f 20 6e 65 78 74 20 66 6f 72 6d 20 6f 72 20 52 55 42 20 74 6f 20 72 65 ┆ to go to next form or RUB to re┆ 0x033e00…033e20 (13, 1, 11) 49 66 20 74 68 65 73 65 20 66 69 6c 65 73 20 64 6f 6e 27 74 20 65 78 69 73 74 0d 20 79 65 74 2c ┆If these files don't exist yet,┆ 0x033e20…033e40 20 74 68 65 79 20 77 69 6c 6c 20 62 65 20 63 72 65 61 74 65 64 20 6f 6e 20 74 68 65 20 64 72 69 ┆ they will be created on the dri┆ 0x033e40…033e60 76 65 20 79 6f 75 20 73 65 6c 65 63 74 2e 20 20 41 20 64 69 73 6b 20 64 72 69 76 65 20 69 73 0d ┆ve you select. A disk drive is ┆ 0x033e60…033e80 20 73 70 65 63 69 66 69 65 64 20 62 79 20 61 20 6c 65 74 74 65 72 20 41 2d 50 2e 0d 00 57 68 69 ┆ specified by a letter A-P. Whi┆ 0x033e80…033ea0 63 68 20 63 6f 6d 6d 61 6e 64 20 77 6f 75 6c 64 20 79 6f 75 20 6c 69 6b 65 20 65 78 70 6c 61 69 ┆ch command would you like explai┆ 0x033ea0…033ec0 6e 65 64 3f 20 28 41 2f 4b 2f 45 2f 49 2f 44 2f 4d 2f 42 2f 56 2f 52 2f 46 29 3a 0d 01 fb 0d 01 ┆ned? (A/K/E/I/D/M/B/V/R/F): ┆ 0x033ec0…033ee0 c2 0e 01 e0 0e 00 01 d6 0d 01 fb 0d 01 e0 0e 01 f7 0e 00 01 d6 0d 01 fb 0d 01 c2 0e 01 e0 0e 01 ┆ ┆ 0x033ee0…033f00 f7 0e 00 45 6e 74 65 72 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 73 65 6c 65 63 74 20 6e 65 77 ┆ Enter character to select new┆ 0x033f00…033f20 20 6d 6f 64 65 3a 0d 00 20 41 20 3d 20 41 44 44 20 6e 65 77 20 72 65 63 6f 72 64 73 20 20 20 20 ┆ mode: A = ADD new records ┆ 0x033f20…033f40 20 20 4b 20 3d 20 73 65 6c 65 63 74 20 72 65 63 6f 72 64 73 20 62 79 20 4b 45 59 20 20 20 20 45 ┆ K = select records by KEY E┆ 0x033f40…033f60 20 3d 20 45 78 69 74 20 63 75 72 72 65 6e 74 20 66 6f 72 6d 0d 20 49 20 3d 20 53 43 41 4e 20 69 ┆ = Exit current form I = SCAN i┆ 0x033f60…033f80 6e 20 49 6e 64 65 78 20 6f 72 64 65 72 20 20 44 20 3d 20 53 43 41 4e 20 69 6e 20 44 61 74 61 20 ┆n Index order D = SCAN in Data ┆ 0x033f80…033fa0 66 69 6c 65 20 6f 72 64 65 72 20 20 4d 20 3d 20 65 64 69 74 20 73 63 61 6e 20 4d 61 73 6b 0d 20 ┆file order M = edit scan Mask ┆ 0x033fa0…033fc0 42 20 3d 20 73 65 6c 65 63 74 20 42 61 74 63 68 20 66 69 6c 65 20 20 20 20 56 20 3d 20 56 65 72 ┆B = select Batch file V = Ver┆ 0x033fc0…033fe0 69 66 79 20 62 61 74 63 68 20 66 69 6c 65 00 20 20 20 20 20 20 20 20 52 20 3d 20 52 65 73 74 6f ┆ify batch file R = Resto┆ 0x033fe0…034000 72 65 20 6d 61 69 6e 20 66 69 6c 65 00 0d 20 46 20 3d 20 46 69 6c 65 20 6d 61 69 6e 74 65 6e 61 ┆re main file F = File maintena┆ 0x034000…034020 (13, 1, 12) 6f 64 65 20 77 69 6c 6c 20 6f 6e 6c 79 20 70 72 65 73 65 6e 74 20 63 65 72 74 61 69 6e 0d 72 65 ┆ode will only present certain re┆ 0x034020…034040 63 6f 72 64 73 20 6f 75 74 20 6f 66 20 74 68 65 20 64 61 74 61 62 61 73 65 2e 00 45 3d 45 58 49 ┆cords out of the database. E=EXI┆ 0x034040…034060 54 20 43 55 52 52 45 4e 54 20 46 4f 52 4d 20 69 73 20 75 73 65 64 20 74 6f 20 43 48 41 4e 47 45 ┆T CURRENT FORM is used to CHANGE┆ 0x034060…034080 20 46 4f 52 4d 53 20 6f 72 20 45 58 49 54 20 44 41 54 41 53 54 41 52 20 45 4e 54 49 52 45 4c 59 ┆ FORMS or EXIT DATASTAR ENTIRELY┆ 0x034080…0340a0 2e 0d 41 66 74 65 72 20 65 78 69 74 74 69 6e 67 20 63 75 72 72 65 6e 74 20 66 6f 72 6d 20 28 75 ┆. After exitting current form (u┆ 0x0340a0…0340c0 73 69 6e 67 20 74 68 65 20 5e 45 45 20 63 6f 6d 6d 61 6e 64 29 3a 0d 20 20 20 74 6f 20 63 68 61 ┆sing the ^EE command): to cha┆ 0x0340c0…0340e0 6e 67 65 20 66 6f 72 6d 73 2c 20 65 6e 74 65 72 20 61 20 6e 65 77 20 66 6f 72 6d 20 6e 61 6d 65 ┆nge forms, enter a new form name┆ 0x0340e0…034100 0d 20 20 20 74 6f 20 65 78 69 74 20 44 41 54 41 53 54 41 52 20 61 6e 64 20 72 65 74 75 72 6e 20 ┆ to exit DATASTAR and return ┆ 0x034100…034120 74 6f 20 74 68 65 20 43 50 2f 4d 20 6f 70 65 72 61 74 69 6e 67 20 73 79 73 74 65 6d 2c 20 74 79 ┆to the CP/M operating system, ty┆ 0x034120…034140 70 65 20 5e 43 00 44 3d 53 43 41 4e 20 49 4e 20 44 41 54 41 20 46 49 4c 45 20 4f 52 44 45 52 20 ┆pe ^C D=SCAN IN DATA FILE ORDER ┆ 0x034140…034160 69 73 20 75 73 65 64 20 74 6f 20 52 45 56 49 45 57 20 54 48 45 20 43 55 52 52 45 4e 54 20 46 49 ┆is used to REVIEW THE CURRENT FI┆ 0x034160…034180 4c 45 20 49 4e 20 45 4e 54 52 59 20 4f 52 44 45 52 2e 01 7d 14 00 42 3d 53 45 4c 45 43 54 20 42 ┆LE IN ENTRY ORDER. å B=SELECT B┆ 0x034180…0341a0 41 54 43 48 20 46 49 4c 45 20 69 73 20 75 73 65 64 20 74 6f 20 53 45 4c 45 43 54 20 41 4e 20 41 ┆ATCH FILE is used to SELECT AN A┆ 0x0341a0…0341c0 4c 54 45 52 4e 41 54 45 20 46 49 4c 45 20 66 6f 72 20 75 73 65 20 69 6e 20 61 6c 6c 0d 64 61 74 ┆LTERNATE FILE for use in all dat┆ 0x0341c0…0341e0 61 62 61 73 65 20 6f 70 65 72 61 74 69 6f 6e 73 2e 20 20 42 61 74 63 68 20 66 69 6c 65 20 70 72 ┆abase operations. Batch file pr┆ 0x0341e0…034200 6f 63 65 73 73 69 6e 67 20 69 73 20 69 64 65 6e 74 69 63 61 6c 20 74 6f 20 70 72 69 6d 61 72 79 ┆ocessing is identical to primary┆ 0x034200…034220 (13, 1, 13) 40 02 3d b9 da 1b 41 e5 d5 c5 eb 2a c5 42 06 00 09 09 09 c1 70 23 73 23 72 d1 e1 f1 c9 e5 d5 c5 ┆@ = A * B p#s#r ┆ 0x034220…034240 cd cd 41 c2 41 41 cd 18 42 ca 20 41 cd a8 41 cd 48 41 47 f4 f3 41 04 05 fc 7c 41 cd cd 41 ca 36 ┆ A AA B A A HAG A øA A 6┆ 0x034240…034260 41 cd a8 41 c1 d1 e1 c9 3a b7 02 b7 c8 e5 c5 cd 73 41 0c 46 cd 99 3c ca 5e 41 3a b8 42 47 cd b4 ┆A A : sA F < ^A: BG ┆ 0x034260…034280 3c b9 78 ca 69 41 23 b6 2b 0d ca 6f 41 2b b6 b7 c1 e1 c9 2a be 42 44 4d cd 60 42 c9 cd 7f 41 cd ┆< x iA# + oA+ * BDM `B A ┆ 0x034280…0342a0 12 3f c5 06 02 3e ff cd 90 41 05 c2 85 41 c1 c9 cd 99 41 c0 3d c2 90 41 c9 e5 c5 4f af 3d c2 9d ┆ ? > A A A = A O = ┆ 0x0342a0…0342c0 41 cd e0 41 79 c1 e1 c9 e5 21 c4 42 34 35 36 00 e1 c8 e5 2a c0 42 cd 48 3d e1 c9 3a c4 42 b7 c0 ┆A Ay ! B456 * B H= : B ┆ 0x0342c0…0342e0 3c 32 c4 42 e5 2a be 42 22 c0 42 e1 c9 cd e0 41 c8 e5 2a ba 42 36 00 cd eb 41 22 ba 42 e1 b7 c9 ┆<2 B * B" B A * B6 A" B ┆ 0x0342e0…034300 cd f9 41 e5 2a ba 42 7e e1 b7 c9 23 34 35 f0 21 c7 42 c9 e5 d5 c5 c3 03 42 e5 d5 c5 cd 00 00 b7 ┆ A * Bü #45 ! B B ┆ 0x034300…034320 ca 14 42 cd 00 00 b7 ca 14 42 2a bc 42 77 cd eb 41 22 bc 42 c1 d1 e1 c9 e5 d5 c5 2a c5 42 06 00 ┆ B B* Bw A" B * B ┆ 0x034320…034340 7e 36 00 23 5e 23 56 23 b7 c2 3d 42 04 3a 40 02 b8 c2 20 42 cd a8 41 af 3c c1 d1 e1 c9 0e 00 cd ┆ü6 #^#V# =B :@ B A < ┆ 0x034340…034360 60 42 cd 84 42 ca 55 42 cd 45 3d eb 04 05 c4 f4 3d cd c6 3e af c1 d1 e1 c9 cd 18 42 ca 59 42 c9 ┆`B B UB E= = > B YB ┆ 0x034360…034380 d5 c5 f5 3a 41 02 cd 71 42 2a 0b 43 19 f1 c1 d1 c9 6f af 67 57 59 78 1f d2 7e 42 eb 19 eb 29 b7 ┆ :A qB* C o gWYx üB ) ┆ 0x034380…0343a0 c2 77 42 c9 c5 f5 e6 7f 47 f1 b7 eb f4 b2 40 eb 1a cd b5 3e be c2 af 42 0c 13 23 05 c2 90 42 0d ┆ wB G @ > B # B ┆ 0x0343a0…0343c0 0c cd b4 3c b9 ca af 42 7e fe 20 23 ca a0 42 e1 69 c9 00 00 00 00 00 00 ff 00 c7 42 c7 42 00 00 ┆ < Bü # B i B B ┆ 0x0343c0…0343e0 00 00 ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x0343e0…034400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x034400…034420 (13, 1, 14) 6d 6f 76 65 20 64 61 74 61 20 66 72 6f 6d 20 66 69 6c 65 01 1d 06 00 0d 4b 65 79 20 6e 6f 74 20 ┆move data from file Key not ┆ 0x034420…034440 66 6f 75 6e 64 2e 20 48 69 74 20 45 53 43 20 74 6f 20 72 65 2d 65 6e 74 65 72 20 6b 65 79 3a 20 ┆found. Hit ESC to re-enter key: ┆ 0x034440…034460 00 0d 45 6e 64 20 6f 66 20 66 69 6c 65 2e 0d 01 b5 08 63 6f 6e 74 69 6e 75 65 20 73 63 61 6e 3a ┆ End of file. continue scan:┆ 0x034460…034480 20 00 0d 46 69 6c 65 20 69 73 20 65 6d 70 74 79 20 73 6f 20 61 64 64 20 6d 6f 64 65 20 69 73 20 ┆ File is empty so add mode is ┆ 0x034480…0344a0 74 68 65 20 6f 6e 6c 79 20 6c 65 67 61 6c 20 6d 6f 64 65 2e 0d 01 a9 08 2e 00 0d 54 68 65 20 66 ┆the only legal mode. . The f┆ 0x0344a0…0344c0 69 6c 65 20 64 6f 65 73 20 6e 6f 74 20 63 6f 6e 74 61 69 6e 20 61 6e 79 20 72 65 63 6f 72 64 73 ┆ile does not contain any records┆ 0x0344c0…0344e0 20 74 6f 20 6d 61 74 63 68 20 74 68 65 20 73 63 61 6e 20 6d 61 73 6b 2e 0d 01 b5 08 63 6f 6e 74 ┆ to match the scan mask. cont┆ 0x0344e0…034500 69 6e 75 65 20 69 6e 20 45 44 49 54 20 53 43 41 4e 20 4d 41 53 4b 20 6d 6f 64 65 2e 00 0d 54 68 ┆inue in EDIT SCAN MASK mode. Th┆ 0x034500…034520 65 20 62 61 74 63 68 20 66 69 6c 65 20 68 61 73 20 62 65 65 6e 20 76 65 72 69 66 69 65 64 2e 0d ┆e batch file has been verified. ┆ 0x034520…034540 01 b5 08 65 6e 74 65 72 20 61 6e 6f 74 68 65 72 20 62 61 74 63 68 20 6e 61 6d 65 2e 00 0d 54 68 ┆ enter another batch name. Th┆ 0x034540…034560 61 74 20 66 69 6c 65 20 69 73 20 69 6e 20 75 73 65 2e 20 0d 01 b5 08 65 01 50 08 2e 00 6e 74 65 ┆at file is in use. e P . nte┆ 0x034560…034580 72 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 61 20 66 69 6c 65 20 74 6f 20 75 73 65 0d 66 6f 72 20 ┆r the name of a file to use for ┆ 0x034580…0345a0 74 65 6d 70 6f 72 61 72 79 20 77 6f 72 6b 20 73 70 61 63 65 00 0d 46 69 6c 65 20 6d 61 69 6e 74 ┆temporary work space File maint┆ 0x0345a0…0345c0 65 6e 61 6e 63 65 20 69 73 20 63 6f 6d 70 6c 65 74 65 01 1a 1a 00 48 69 74 20 45 53 43 20 6b 65 ┆enance is complete Hit ESC ke┆ 0x0345c0…0345e0 79 00 01 a9 08 20 74 6f 20 00 0d 4b 65 79 20 61 6c 72 65 61 64 79 20 65 78 69 73 74 73 01 1a 1a ┆y to Key already exists ┆ 0x0345e0…034600 00 43 61 6e 27 74 20 72 65 61 64 20 66 6f 72 6d 20 64 65 66 69 6e 69 74 69 6f 6e 20 66 69 6c 65 ┆ Can't read form definition file┆ 0x034600…034620 (13, 1, 15) 6e 63 65 00 20 20 20 20 20 4a 20 3d 20 48 65 6c 70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆nce J = Help ┆ 0x034620…034640 20 20 20 20 20 20 53 50 41 43 45 20 3d 20 63 75 72 72 65 6e 74 20 6d 6f 64 65 00 56 3d 56 45 52 ┆ SPACE = current mode V=VER┆ 0x034640…034660 49 46 59 20 4d 4f 44 45 20 69 73 20 75 73 65 64 20 74 6f 20 43 48 45 43 4b 20 54 48 45 20 56 41 ┆IFY MODE is used to CHECK THE VA┆ 0x034660…034680 4c 49 44 49 54 59 20 4f 46 20 43 45 52 54 41 49 4e 20 46 49 45 4c 44 53 20 49 4e 20 41 20 42 41 ┆LIDITY OF CERTAIN FIELDS IN A BA┆ 0x034680…0346a0 54 43 48 20 46 49 4c 45 2e 0d 57 68 65 6e 20 74 68 65 20 66 6f 72 6d 20 69 73 20 70 72 65 73 65 ┆TCH FILE. When the form is prese┆ 0x0346a0…0346c0 6e 74 65 64 2c 20 65 61 63 68 20 64 61 74 61 66 69 65 6c 64 20 74 68 61 74 20 74 68 65 20 63 75 ┆nted, each datafield that the cu┆ 0x0346c0…0346e0 72 73 6f 72 20 73 74 6f 70 73 20 61 74 20 77 69 6c 6c 0d 72 65 71 75 69 72 65 20 65 69 74 68 65 ┆rsor stops at will require eithe┆ 0x0346e0…034700 72 20 61 20 76 69 73 75 61 6c 20 63 68 65 63 6b 20 6f 72 20 63 6f 6d 70 6c 65 74 65 20 72 65 2d ┆r a visual check or complete re-┆ 0x034700…034720 65 6e 74 72 79 2e 20 20 49 6e 20 61 64 64 69 74 69 6f 6e 2c 20 63 65 72 74 61 69 6e 0d 69 6c 6c ┆entry. In addition, certain ill┆ 0x034720…034740 65 67 61 6c 20 66 69 65 6c 64 73 20 77 69 6c 6c 20 72 65 71 75 69 72 65 20 72 65 2d 65 6e 74 72 ┆egal fields will require re-entr┆ 0x034740…034760 79 2e 20 20 57 68 65 6e 20 74 68 65 20 72 65 63 6f 72 64 20 68 61 73 20 62 65 65 6e 20 76 65 72 ┆y. When the record has been ver┆ 0x034760…034780 69 66 69 65 64 0d 69 74 20 77 69 6c 6c 20 62 65 20 72 65 6d 6f 76 65 64 20 66 72 6f 6d 20 74 68 ┆ified it will be removed from th┆ 0x034780…0347a0 65 20 62 61 74 63 68 20 66 69 6c 65 20 61 6e 64 20 70 6c 61 63 65 64 20 69 6e 20 74 68 65 20 6d ┆e batch file and placed in the m┆ 0x0347a0…0347c0 61 69 6e 20 66 69 6c 65 2e 00 46 3d 46 49 4c 45 20 4d 41 49 4e 54 45 4e 41 4e 43 45 20 69 73 20 ┆ain file. F=FILE MAINTENANCE is ┆ 0x0347c0…0347e0 75 73 65 64 20 74 6f 20 4f 52 44 45 52 20 54 48 45 20 50 52 49 4d 41 52 59 20 46 49 4c 45 20 61 ┆used to ORDER THE PRIMARY FILE a┆ 0x0347e0…034800 6e 64 20 72 65 6d 6f 76 65 20 64 65 6c 65 74 65 64 0d 72 65 63 6f 72 64 73 2e 20 20 57 68 65 6e ┆nd remove deleted records. When┆ 0x034800…034820 (14, 0, 1) 0d 66 69 6c 65 20 70 72 6f 63 65 73 73 69 6e 67 20 77 69 74 68 20 74 68 65 20 66 6f 6c 6c 6f 77 ┆ file processing with the follow┆ 0x034820…034840 69 6e 67 20 74 77 6f 20 65 78 63 65 70 74 69 6f 6e 73 3a 0d 20 57 68 65 6e 20 61 20 62 61 74 63 ┆ing two exceptions: When a batc┆ 0x034840…034860 68 20 66 69 6c 65 20 69 73 20 73 65 6c 65 63 74 65 64 2c 20 76 65 72 69 66 69 63 61 74 69 6f 6e ┆h file is selected, verification┆ 0x034860…034880 20 69 73 20 6e 6f 74 20 70 65 72 66 6f 72 6d 65 64 20 69 6e 20 41 44 44 20 4d 4f 44 45 2e 0d 20 ┆ is not performed in ADD MODE. ┆ 0x034880…0348a0 49 74 20 69 73 20 6e 6f 74 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 65 6e 74 65 72 20 76 65 72 69 ┆It is not possible to enter veri┆ 0x0348a0…0348c0 66 79 20 6d 6f 64 65 20 75 6e 6c 65 73 73 20 61 20 62 61 74 63 68 20 66 69 6c 65 20 69 73 20 73 ┆fy mode unless a batch file is s┆ 0x0348c0…0348e0 65 6c 65 63 74 65 64 2e 00 41 3d 41 44 44 20 4d 4f 44 45 20 69 73 20 75 73 65 64 20 74 6f 20 45 ┆elected. A=ADD MODE is used to E┆ 0x0348e0…034900 4e 54 45 52 20 4e 45 57 20 52 45 43 4f 52 44 53 20 49 4e 54 4f 20 54 48 45 20 43 55 52 52 45 4e ┆NTER NEW RECORDS INTO THE CURREN┆ 0x034900…034920 54 20 46 49 4c 45 20 28 70 72 69 6d 61 72 79 20 6f 72 0d 62 61 74 63 68 29 2e 20 20 57 68 65 6e ┆T FILE (primary or batch). When┆ 0x034920…034940 20 61 6e 20 65 6d 70 74 79 20 66 6f 72 6d 20 69 73 20 66 69 72 73 74 20 70 72 65 73 65 6e 74 65 ┆ an empty form is first presente┆ 0x034940…034960 64 2c 20 65 61 63 68 20 64 61 74 61 66 69 65 6c 64 20 74 68 61 74 20 74 68 65 0d 63 75 72 73 6f ┆d, each datafield that the curso┆ 0x034960…034980 72 20 73 74 6f 70 73 20 61 74 20 77 69 6c 6c 20 72 65 71 75 69 72 65 20 65 6e 74 72 79 20 62 79 ┆r stops at will require entry by┆ 0x034980…0349a0 20 74 68 65 20 6f 70 65 72 61 74 6f 72 2e 20 20 41 66 74 65 72 20 65 6e 74 72 79 20 69 73 0d 63 ┆ the operator. After entry is c┆ 0x0349a0…0349c0 6f 6d 70 6c 65 74 65 2c 20 76 65 72 69 66 69 63 61 74 69 6f 6e 20 6d 61 79 20 62 65 20 72 65 71 ┆omplete, verification may be req┆ 0x0349c0…0349e0 75 69 72 65 64 20 75 6e 6c 65 73 73 20 61 20 62 61 74 63 68 20 66 69 6c 65 20 68 61 73 20 62 65 ┆uired unless a batch file has be┆ 0x0349e0…034a00 65 6e 0d 73 65 6c 65 63 74 65 64 20 28 73 65 65 20 53 45 4c 45 43 54 20 42 41 54 43 48 20 46 49 ┆en selected (see SELECT BATCH FI┆ 0x034a00…034a20 (14, 0, 2) 31 ec 02 0e 10 11 6c 00 21 ac 02 1a 13 77 23 0d c2 0b 01 af 32 cc 02 11 5c 00 cd cb 01 11 f3 01 ┆1 l ! w# 2 Ø ┆ 0x034a20…034a40 3c cc b9 01 11 ed 02 3e 00 32 ab 02 d5 cd e9 01 11 5c 00 cd da 01 b7 c2 51 01 d1 21 80 00 19 eb ┆< > 2 Ø Q ! ┆ 0x034a40…034a60 d5 cd e9 01 21 ab 02 11 4b 02 34 cc b9 01 c3 30 01 d1 11 58 02 cd ee 01 cd c1 01 11 02 00 cd c6 ┆ ! K 4 0 X ┆ 0x034a60…034a80 01 11 ac 02 cd d5 01 11 ac 02 cd e4 01 11 02 02 3c cc b9 01 11 ed 02 d5 cd e9 01 11 ac 02 cd df ┆ < ┆ 0x034a80…034aa0 01 11 15 02 b7 c4 b9 01 d1 21 80 00 19 eb d5 cd e9 01 21 ab 02 35 c2 7b 01 d1 11 ac 02 cd d0 01 ┆ ! ! 5 æ ┆ 0x034aa0…034ac0 11 27 02 3c cc b9 01 11 84 02 cd ee 01 cd c1 01 11 01 00 cd c6 01 11 38 02 0e 09 cd 05 00 c3 00 ┆ ' < 8 ┆ 0x034ac0…034ae0 00 0e 01 c3 05 00 0e 25 c3 05 00 0e 0f c3 05 00 0e 10 c3 05 00 0e 13 c3 05 00 0e 14 c3 05 00 0e ┆ % ┆ 0x034ae0…034b00 15 c3 05 00 0e 16 c3 05 00 0e 1a c3 05 00 0e 09 c3 05 00 4e 4f 20 53 4f 55 52 43 45 20 46 49 4c ┆ NO SOURCE FIL┆ 0x034b00…034b20 45 24 4e 4f 20 44 49 52 45 43 54 4f 52 59 20 53 50 41 43 45 24 4f 55 54 20 4f 46 20 44 41 54 41 ┆E$NO DIRECTORY SPACE$OUT OF DATA┆ 0x034b20…034b40 20 53 50 41 43 45 24 57 52 49 54 45 20 50 52 4f 54 45 43 54 45 44 3f 24 54 52 41 4e 53 46 45 52 ┆ SPACE$WRITE PROTECTED?$TRANSFER┆ 0x034b40…034b60 20 43 4f 4d 50 4c 45 54 45 44 24 46 49 4c 45 20 54 4f 4f 20 42 49 47 24 49 4e 53 45 52 54 20 44 ┆ COMPLETED$FILE TOO BIG$INSERT D┆ 0x034b60…034b80 45 53 54 49 4e 41 54 49 4f 4e 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 54 55 52 4e ┆ESTINATION DISK AND TYPE <RETURN┆ 0x034b80…034ba0 3e 0d 0a 24 49 4e 53 45 52 54 20 53 4f 55 52 43 45 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 ┆> $INSERT SOURCE DISK AND TYPE ┆ 0x034ba0…034bc0 3c 52 45 54 55 52 4e 3e 0d 0a 24 00 01 cd c1 01 11 01 00 cd c6 01 11 38 02 0e 09 cd 05 00 c3 00 ┆<RETURN> $ 8 ┆ 0x034bc0…034be0 00 0e 01 c3 05 00 0e 25 c3 05 00 0e 0f c3 05 00 0e 10 c3 05 00 0e 13 c3 05 00 0e 14 c3 05 00 0e ┆ % ┆ 0x034be0…034c00 15 c3 05 00 0e 16 c3 05 00 0e 1a c3 05 00 00 09 c3 05 00 4e 4f 20 53 4f 55 52 43 45 20 46 49 4c ┆ NO SOURCE FIL┆ 0x034c00…034c20 (14, 0, 3) c3 82 01 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 39 37 39 2c 31 39 38 30 20 50 72 65 63 69 ┆ Copyright (c) 1979,1980 Preci┆ 0x034c20…034c40 73 69 6f 6e 20 43 6f 6d 70 75 74 65 72 20 43 6f 72 70 6f 72 61 74 69 6f 6e 20 61 6e 64 20 4c 69 ┆sion Computer Corporation and Li┆ 0x034c40…034c60 66 65 62 6f 61 74 20 41 73 73 6f 63 69 61 74 65 73 20 2d 20 41 6c 6c 20 52 69 67 68 74 73 20 52 ┆feboat Associates - All Rights R┆ 0x034c60…034c80 65 73 65 72 76 65 64 20 20 20 76 65 72 73 69 6f 6e 20 6f 66 20 31 30 2f 31 37 2f 38 30 20 10 02 ┆eserved version of 10/17/80 ┆ 0x034c80…034ca0 57 02 31 27 21 0e 0c cd 05 00 b7 c2 c1 01 3e 04 32 a8 1a 3e 44 32 a9 1a c3 a6 01 78 b1 c8 7e 12 ┆W 1'! > 2 >D2 x ü ┆ 0x034ca0…034cc0 23 13 0b c3 9b 01 21 be 19 11 94 17 01 2d 00 cd 9b 01 21 cd 20 11 99 20 01 1a 00 cd 9b 01 c3 0e ┆# ! - ! ┆ 0x034cc0…034ce0 02 3e 10 32 a8 1a 3e 50 32 a9 1a 21 eb 19 11 94 17 01 2d 00 cd 9b 01 01 02 00 11 b3 20 2a 01 00 ┆ > 2 >P2 ! - * ┆ 0x034ce0…034d00 f5 3e 2d 85 6f 3e 00 8c 67 f1 22 ee 01 cd 30 e3 3e 02 bd c2 b2 01 21 b3 20 11 99 20 01 1a 00 cd ┆ >- o> g " 0 > ! ┆ 0x034d00…034d20 9b 01 21 18 1a 11 94 17 01 2d 00 cd 9b 01 3e 00 3e 00 c3 4f 02 2c 31 39 22 15 02 21 17 02 70 c5 ┆ ! - > > O ,19" ! p ┆ 0x034d20…034d40 d5 e5 01 f6 ff 11 ff ff 6f 26 00 09 13 da 2b 02 01 0a 00 09 eb 3a 17 02 3d 32 17 02 7d c4 1f 02 ┆ o& + : =2 å ┆ 0x034d40…034d60 7b c6 30 2a 15 02 77 23 22 15 02 e1 d1 c1 c9 c3 61 02 06 02 cd 18 02 3e 00 21 2e 15 06 02 cd 18 ┆æ 0* w#" a > !. ┆ 0x034d60…034d80 02 21 2c 15 11 6e 17 01 04 00 cd 9b 01 11 c9 14 0e 09 cd 05 00 0e 01 cd 05 00 3e ff 32 8e 1a 32 ┆ !, n > 2 2┆ 0x034d80…034da0 8f 1a 11 06 17 0e 09 cd 05 00 0e 0a 11 45 1a 3e 01 12 cd 05 00 c3 ac 02 7e fe 61 da a6 02 fe 7b ┆ E > ü a æ┆ 0x034da0…034dc0 d2 a6 02 d6 20 77 23 05 c2 98 02 c9 21 47 1a 06 01 cd 98 02 c3 c2 02 0c 0d c8 1a 96 c0 23 13 c3 ┆ w# !G # ┆ 0x034dc0…034de0 b8 02 11 47 1a 0e 01 21 d0 02 cd b7 02 c3 d1 02 45 ca 1f 03 11 47 1a 0e 01 21 e2 02 cd b7 02 c3 ┆ G ! E G ! ┆ 0x034de0…034e00 e3 02 46 cc c1 03 11 47 1a 0e 01 21 f4 02 cd b7 02 c3 f5 02 44 cc 51 05 11 47 1a 0e 01 21 06 03 ┆ F G ! D Q G ! ┆ 0x034e00…034e20 (14, 0, 4) 46 90 da 11 09 32 ab 1a 3a aa 1a 32 a4 1a c3 50 09 3a a7 1a 3c ca 55 09 21 89 1a 4e 21 83 1a 46 ┆F 2 : 2 P : < U ! N! F┆ 0x034e20…034e40 21 95 1d 3e 00 cd 75 0f 3a 85 1a b8 c2 3b 09 3a 8d 1a b9 c2 3b 09 3e ff 32 a7 1a 0c 79 fe 1b c2 ┆! > u : ; : ; > 2 y ┆ 0x034e40…034e60 45 09 0e 01 04 21 89 1a 71 21 83 1a 70 cd 38 0c b7 e1 d1 c1 c9 c3 8c 09 0d 0a 07 49 42 4d 20 64 ┆E ! q! p 8 IBM d┆ 0x034e60…034e80 69 73 6b 65 74 74 65 20 69 73 20 66 75 6c 6c 2e 20 20 53 70 6c 69 74 20 74 68 65 20 69 6e 70 75 ┆iskette is full. Split the inpu┆ 0x034e80…034ea0 74 20 66 69 6c 65 20 69 6e 74 6f 24 11 58 09 0e 09 cd 05 00 c3 bf 09 20 6d 75 6c 74 69 70 6c 65 ┆t file into$ X multiple┆ 0x034ea0…034ec0 20 73 6d 61 6c 6c 65 72 20 66 69 6c 65 73 2c 20 61 6e 64 20 74 72 79 20 61 67 61 69 6e 2e 24 11 ┆ smaller files, and try again.$ ┆ 0x034ec0…034ee0 97 09 0e 09 cd 05 00 c3 e6 09 0d 0a 50 72 65 73 73 20 61 6e 79 20 6b 65 79 20 74 6f 20 63 6f 6e ┆ Press any key to con┆ 0x034ee0…034f00 74 69 6e 75 65 24 11 ca 09 0e 09 cd 05 00 e1 d1 c1 37 c9 3a ab 1a 21 aa 1a 46 90 da 04 0a cd e8 ┆tinue$ 7 : ! F ┆ 0x034f00…034f20 08 c3 f3 09 cd e8 08 3a 89 1a 3d d2 14 0a 3e 1a 21 83 1a 35 21 dc 1b 06 02 cd 18 02 3a 83 1a 21 ┆ : = > ! 5! : !┆ 0x034f20…034f40 d9 1b 06 02 cd 18 02 21 82 1a 46 21 88 1a 4e 21 b3 1b 36 30 21 8f 1b 3e 01 cd 75 0f 11 d3 18 0e ┆ ! F! N! 60! > u ┆ 0x034f40…034f60 09 cd 05 00 c3 4a 0a 0d 0a 24 11 47 0a 0e 09 cd 05 00 21 8f 1b 0e 3e c5 e5 5e 0e 02 cd 05 00 e1 ┆ J $ G ! > ^ ┆ 0x034f60…034f80 c1 23 0d c2 57 0a 21 d1 1b 0e 0e c5 e5 5e 0e 02 cd 05 00 e1 c1 23 0d c2 6b 0a c3 a6 0a 0d 0a 41 ┆ # W ! ^ # k A┆ 0x034f80…034fa0 62 6f 76 65 20 49 42 4d 20 64 61 74 61 20 73 65 74 20 63 72 65 61 74 65 64 20 62 79 20 63 6f 6e ┆bove IBM data set created by con┆ 0x034fa0…034fc0 76 65 72 74 2e 24 11 7d 0a 0e 09 cd 05 00 2a a2 1a 7c b5 ca b4 0b c3 bd 0a 0d 0a 07 24 11 b9 0a ┆vert.$ å * ø $ ┆ 0x034fc0…034fe0 0e 09 cd 05 00 c3 ee 0a c5 d5 e5 01 f6 ff 11 ff ff 09 13 da d1 0a 01 0a 00 09 eb 7c b5 c4 c8 0a ┆ ø ┆ 0x034fe0…035000 7b c6 30 5f 0e 02 5f cd 05 00 e1 d1 c1 c9 2a a2 1a cd c8 0a c3 03 0b 20 69 6e 70 75 74 20 6c 69 ┆æ 0_ _ * input li┆ 0x035000…035020 (14, 0, 5) 4c 45 20 6d 65 73 73 61 67 65 29 2e 00 0d 22 2e 22 20 69 73 20 74 68 65 20 6f 6e 6c 79 20 63 68 ┆LE message). "." is the only ch┆ 0x035020…035040 61 72 61 63 74 65 72 20 61 6c 6c 6f 77 65 64 20 68 65 72 65 2e 0d 01 0f 1a 00 0d 30 2d 39 2c 20 ┆aracter allowed here. 0-9, ┆ 0x035040…035060 22 23 24 25 28 29 2a 2b 2d 2e 22 01 e8 19 00 0d 30 2d 39 01 e8 19 00 0d 61 2d 7a 01 e8 19 00 0d ┆"#$%()*+-." 0-9 a-z ┆ 0x035060…035080 41 2d 5a 01 e8 19 00 0d 61 2d 7a 01 de 19 00 0d 41 2d 5a 01 de 19 00 0d 41 2d 5a 20 61 6e 64 20 ┆A-Z a-z A-Z A-Z and ┆ 0x035080…0350a0 61 2d 7a 01 e8 19 00 0d 41 2d 5a 2c 20 61 2d 7a 01 de 19 00 0d 61 2d 7a 20 61 6e 64 20 30 2d 39 ┆a-z A-Z, a-z a-z and 0-9┆ 0x0350a0…0350c0 01 e8 19 00 0d 41 2d 5a 20 61 6e 64 20 30 2d 39 01 e8 19 00 0d 61 2d 7a 01 d9 19 00 0d 41 2d 5a ┆ A-Z and 0-9 a-z A-Z┆ 0x0350c0…0350e0 01 d9 19 00 0d 41 2d 5a 2c 20 61 2d 7a 20 61 6e 64 20 30 2d 39 01 e8 19 00 0d 41 2d 5a 2c 20 61 ┆ A-Z, a-z and 0-9 A-Z, a┆ 0x0350e0…035100 2d 7a 01 d9 19 00 2c 20 30 2d 39 20 61 6e 64 20 73 70 61 63 65 20 61 72 65 20 74 68 65 20 6f 6e ┆-z , 0-9 and space are the on┆ 0x035100…035120 6c 79 20 63 68 61 72 61 63 74 65 72 73 20 61 6c 6c 6f 77 65 64 20 68 65 72 65 2e 0d 01 f4 01 20 ┆ly characters allowed here. ┆ 0x035120…035140 69 67 6e 6f 72 65 64 2e 20 01 a9 08 3a 20 00 0d 5e 01 f4 01 20 55 6e 69 6d 70 6c 65 6d 65 6e 74 ┆ignored. : ^ Unimplement┆ 0x035140…035160 65 64 20 63 6f 6e 74 72 6f 6c 20 63 68 61 72 61 63 74 65 72 01 1a 1a 00 0d 49 6c 6c 65 67 61 6c ┆ed control character Illegal┆ 0x035160…035180 20 63 68 61 72 61 63 74 65 72 3b 20 01 0f 1a 00 0d 4e 6f 74 20 65 6e 6f 75 67 68 20 6d 65 6d 6f ┆ character; Not enough memo┆ 0x035180…0351a0 72 79 20 74 6f 20 63 6f 6d 70 6c 65 74 65 20 63 61 6c 63 75 6c 61 74 69 6f 6e 01 1a 1a 00 0d 52 ┆ry to complete calculation R┆ 0x0351a0…0351c0 65 73 75 6c 74 20 6f 66 20 63 61 6c 63 75 6c 61 74 69 6f 6e 20 6c 61 72 67 65 72 20 74 68 61 6e ┆esult of calculation larger than┆ 0x0351c0…0351e0 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 66 69 65 6c 64 01 1a 1a 00 0d 46 61 74 61 6c 20 70 72 6f ┆ destination field Fatal pro┆ 0x0351e0…035200 67 72 61 6d 20 65 72 72 6f 72 2e 0d 50 6c 65 61 73 65 20 72 65 70 6f 72 74 20 6f 63 63 75 72 61 ┆gram error. Please report occura┆ 0x035200…035220 (14, 0, 6) 45 24 4e 4f 20 44 49 52 45 43 54 4f 52 59 20 53 50 41 43 45 24 4f 55 54 20 4f 46 20 44 41 54 41 ┆E$NO DIRECTORY SPACE$OUT OF DATA┆ 0x035220…035240 20 53 50 41 43 45 24 57 52 49 54 45 20 50 52 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ SPACE$WRITE PR ┆ 0x035240…035260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x1…] 0x035280…0352a0 01 11 15 02 b7 c4 b9 01 d1 21 80 00 19 eb d5 cd e9 01 21 ab 02 35 c2 7b 01 d1 11 ac 02 cd d0 01 ┆ ! ! 5 æ ┆ 0x0352a0…0352c0 11 27 02 3c cc b9 01 11 84 02 cd ee 01 cd c1 01 11 01 00 cd c6 01 11 38 02 0e 09 cd 05 00 c3 00 ┆ ' < 8 ┆ 0x0352c0…0352e0 00 0e 01 c3 05 00 0e 25 c3 05 00 0e 0f c3 05 00 0e 10 c3 05 00 0e 13 c3 05 00 0e 14 c3 05 00 0e ┆ % ┆ 0x0352e0…035300 15 c3 05 00 0e 16 c3 05 00 0e 1a c3 05 00 0e 09 c3 05 00 4e 4f 20 53 4f 55 52 43 45 20 46 49 4c ┆ NO SOURCE FIL┆ 0x035300…035320 45 24 4e 4f 20 44 49 52 45 43 54 4f 52 59 20 53 50 41 43 45 24 4f 55 54 20 4f 46 20 44 41 54 41 ┆E$NO DIRECTORY SPACE$OUT OF DATA┆ 0x035320…035340 20 53 50 41 43 45 24 57 52 49 54 45 20 50 52 4f 54 45 43 54 45 44 3f 24 54 52 41 4e 53 46 45 52 ┆ SPACE$WRITE PROTECTED?$TRANSFER┆ 0x035340…035360 20 43 4f 4d 50 4c 45 54 45 44 24 46 49 4c 45 20 54 4f 4f 20 42 49 47 24 49 4e 53 45 52 54 20 44 ┆ COMPLETED$FILE TOO BIG$INSERT D┆ 0x035360…035380 45 53 54 49 4e 41 54 49 4f 4e 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 54 55 52 4e ┆ESTINATION DISK AND TYPE <RETURN┆ 0x035380…0353a0 3e 0d 0a 24 49 4e 53 45 52 54 20 53 4f 55 52 43 45 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 ┆> $INSERT SOURCE DISK AND TYPE ┆ 0x0353a0…0353c0 3c 52 45 54 55 52 4e 3e 0d 0a 24 00 01 cd c1 01 11 01 00 cd c6 01 11 38 02 0e 09 cd 05 00 c3 00 ┆<RETURN> $ 8 ┆ 0x0353c0…0353e0 00 0e 01 c3 05 00 0e 25 c3 05 00 0e 0f c3 05 00 0e 10 c3 05 00 0e 13 c3 05 00 0e 14 c3 05 00 0e ┆ % ┆ 0x0353e0…035400 15 c3 05 00 0e 16 c3 05 00 0e 1a c3 05 00 00 09 c3 05 00 4e 4f 20 53 4f 55 52 43 45 20 46 49 4c ┆ NO SOURCE FIL┆ 0x035400…035420 (14, 0, 7) cd b7 02 c3 07 03 43 cc f5 05 11 47 1a 0e 01 21 18 03 cd b7 02 c3 19 03 49 cc 5f 0c c3 82 02 c3 ┆ C G ! I _ ┆ 0x035420…035440 4d 03 0d 0a 07 50 6c 65 61 73 65 20 70 6c 61 63 65 20 61 20 43 50 4d 20 64 69 73 6b 65 74 74 65 ┆M Please place a CPM diskette┆ 0x035440…035460 20 69 6e 20 64 72 69 76 65 20 41 3a 24 11 22 03 0e 09 cd 05 00 c3 72 03 20 66 6f 72 20 61 20 73 ┆ in drive A:$ " r for a s┆ 0x035460…035480 79 73 74 65 6d 20 77 61 72 6d 20 73 74 61 72 74 2e 24 11 58 03 0e 09 cd 05 00 c3 99 03 0d 0a 50 ┆ystem warm start.$ X P┆ 0x035480…0354a0 72 65 73 73 20 61 6e 79 20 6b 65 79 20 77 68 65 6e 20 72 65 61 64 79 2e 24 11 7d 03 0e 09 cd 05 ┆ress any key when ready.$ å ┆ 0x0354a0…0354c0 00 0e 01 cd 05 00 11 00 00 0e 0e cd 05 00 2a 01 00 f5 3e 00 85 6f 3e 00 8c 67 f1 22 bf 03 cd 00 ┆ * > o> g " ┆ 0x0354c0…0354e0 00 c5 d5 e5 01 01 00 21 82 1a 70 21 88 1a 71 21 8e 1a 5e 3e ff bb cc 99 10 c3 0a 04 0d 0a 07 59 ┆ ! p! q! ^> Y┆ 0x0354e0…035500 6f 75 20 61 72 65 20 61 62 6f 75 74 20 74 6f 20 77 72 69 74 65 20 61 6e 20 49 42 4d 20 64 69 72 ┆ou are about to write an IBM dir┆ 0x035500…035520 65 63 74 6f 72 79 20 6f 6e 24 11 dc 03 0e 09 cd 05 00 c3 2d 04 20 74 68 65 20 64 69 73 6b 65 74 ┆ectory on$ - the disket┆ 0x035520…035540 74 65 20 69 6e 20 64 72 69 76 65 20 24 11 15 04 0e 09 cd 05 00 3a 8e 1a c6 41 0e 02 5f cd 05 00 ┆te in drive $ : A _ ┆ 0x035540…035560 c3 46 04 3a 2e 24 11 43 04 0e 09 cd 05 00 c3 78 04 0d 0a 50 72 65 73 73 20 23 20 74 6f 20 63 6f ┆ F :.$ C x Press # to co┆ 0x035560…035580 6e 74 69 6e 75 65 2c 20 6f 72 20 2a 20 74 6f 20 61 62 6f 72 74 2e 20 24 11 51 04 0e 09 cd 05 00 ┆ntinue, or * to abort. $ Q ┆ 0x035580…0355a0 0e 01 cd 05 00 fe 2a ca 4d 05 fe 23 c2 4e 04 21 8f 1b 0e 50 1e 20 73 23 0d c2 96 04 21 df 1b 0e ┆ * M # N ! P s# ! ┆ 0x0355a0…0355c0 30 1e 00 73 23 0d c2 a3 04 21 88 1a 4e 79 fe 05 da 32 05 c2 c7 04 c5 21 73 1a 11 8f 1b 01 05 00 ┆0 s# ! Ny 2 !s ┆ 0x0355c0…0355e0 cd 9b 01 c1 c3 32 05 fe 06 c2 de 04 c5 21 8f 1b 0e 05 1e 20 73 23 0d c2 d4 04 c1 c3 32 05 fe 07 ┆ 2 ! s# 2 ┆ 0x0355e0…035600 c2 f9 04 c5 21 78 1a 11 8f 1b 01 0a 00 cd 9b 01 21 de 1b 36 57 c1 c3 32 05 fe 08 c2 0f 05 c5 21 ┆ !x ! 6W 2 !┆ 0x035600…035620 (14, 0, 8) 6e 65 24 11 f7 0a 0e 09 cd 05 00 2a a2 1a 2d ca 27 0b c3 1c 0b 73 20 77 65 72 65 24 11 15 0b 0e ┆ne$ * - ' s were$ ┆ 0x035620…035640 09 cd 05 00 c3 37 0b c3 2f 0b 20 77 61 73 24 11 2a 0b 0e 09 cd 05 00 c3 60 0b 20 67 72 65 61 74 ┆ 7 / was$ * ` great┆ 0x035640…035660 65 72 20 74 68 61 6e 20 6f 75 74 70 75 74 20 72 65 63 6f 72 64 20 6c 65 6e 67 74 68 2e 20 20 24 ┆er than output record length. $┆ 0x035660…035680 11 3a 0b 0e 09 cd 05 00 c3 6e 0b 0d 0a 24 11 6b 0b 0e 09 cd 05 00 c3 ac 0b 54 68 65 20 6c 6f 6e ┆ : n $ k The lon┆ 0x035680…0356a0 67 20 6c 69 6e 65 73 20 77 65 72 65 20 73 70 61 6e 6e 65 64 20 61 63 72 6f 73 73 20 6f 75 74 70 ┆g lines were spanned across outp┆ 0x0356a0…0356c0 75 74 20 72 65 63 6f 72 64 73 2e 24 11 79 0b 0e 09 cd 05 00 c3 d6 0b 0d 0a 20 20 50 72 65 73 73 ┆ut records.$ y Press┆ 0x0356c0…0356e0 20 61 6e 79 20 6b 65 79 20 74 6f 20 63 6f 6e 74 69 6e 75 65 2e 24 11 b7 0b 0e 09 cd 05 00 0e 01 ┆ any key to continue.$ ┆ 0x0356e0…035700 cd 05 00 af f5 11 ad 1a 0e 10 cd 05 00 3e ff 32 8f 1a f1 e1 d1 c1 c9 f1 37 c3 e4 0b af b8 c2 05 ┆ > 2 7 ┆ 0x035700…035720 0c cd 0b 0c d8 7e 23 05 e6 7f c9 c5 d5 e5 21 13 1d 01 ad 1a cd 67 12 da 34 0c 3d ca 34 0c 21 13 ┆ ü# ! g 4 = 4 ! ┆ 0x035720…035740 1d 22 9a 1a 3e 80 32 a5 1a e1 d1 c1 21 a5 1a 46 21 13 1d c9 e1 d1 c1 c9 c5 d5 e5 21 95 1d 0e 80 ┆ " > 2 ! F! ! ┆ 0x035740…035760 1e 00 73 23 0d c2 42 0c 21 95 1d 22 98 1a 21 aa 1a 7e 32 a4 1a 3e 80 96 32 ab 1a e1 d1 c1 c9 c5 ┆ s# B ! " ! ü2 > 2 ┆ 0x035760…035780 d5 e5 01 08 00 21 82 1a 70 21 88 1a 71 c3 ab 0c 0d 0a 50 6c 65 61 73 65 20 65 6e 74 65 72 20 64 ┆ ! p! q Please enter d┆ 0x035780…0357a0 61 74 61 20 73 65 74 20 6e 61 6d 65 20 6f 66 20 49 42 4d 20 66 69 6c 65 20 74 6f 20 62 65 20 63 ┆ata set name of IBM file to be c┆ 0x0357a0…0357c0 6f 6e 76 65 72 74 65 64 3a 20 24 11 70 0c 0e 09 cd 05 00 0e 0a 11 4b 1a 3e 11 12 cd 05 00 21 4d ┆onverted: $ p K > !M┆ 0x0357c0…0357e0 1a 06 11 cd 98 02 c3 ef 0c 0d 0a 50 6c 65 61 73 65 20 65 6e 74 65 72 20 6e 61 6d 65 20 6f 66 20 ┆ Please enter name of ┆ 0x0357e0…035800 43 50 4d 20 66 69 6c 65 20 77 68 65 72 65 24 11 c9 0c 0e 09 cd 05 00 c3 13 0d 20 64 61 74 61 20 ┆CPM file where$ data ┆ 0x035800…035820 (14, 0, 9) 6e 63 65 01 1a 1a 00 0d 5a 65 72 6f 20 64 69 76 69 73 6f 72 20 69 6e 20 63 61 6c 63 75 6c 61 74 ┆nce Zero divisor in calculat┆ 0x035820…035840 69 6f 6e 01 1a 1a 00 0d 45 78 70 6f 6e 65 6e 74 20 6f 76 65 72 66 6c 6f 77 01 1a 1a 00 0d 46 69 ┆ion Exponent overflow Fi┆ 0x035840…035860 65 6c 64 20 69 73 20 6e 6f 74 20 63 6f 6d 70 6c 65 74 65 01 1a 1a 00 0d 46 69 65 6c 64 20 76 61 ┆eld is not complete Field va┆ 0x035860…035880 6c 75 65 20 6d 75 73 74 20 6c 69 65 20 62 65 74 77 65 65 6e 0d 20 01 f6 01 20 26 0d 20 01 fb 01 ┆lue must lie between & ┆ 0x035880…0358a0 0d 01 1c 1a 00 0d 46 69 65 6c 64 20 64 6f 65 73 20 6e 6f 74 20 65 78 61 63 74 6c 79 20 6d 61 74 ┆ Field does not exactly mat┆ 0x0358a0…0358c0 63 68 20 70 72 65 76 69 6f 75 73 20 65 6e 74 72 79 2e 0d 50 6c 65 61 73 65 20 65 6e 74 65 72 20 ┆ch previous entry. Please enter ┆ 0x0358c0…0358e0 66 69 65 6c 64 20 74 77 69 63 65 20 77 69 74 68 20 74 68 65 20 73 61 6d 65 20 76 61 6c 75 65 01 ┆field twice with the same value ┆ 0x0358e0…035900 1a 1a 00 0d 49 6c 6c 65 67 61 6c 20 66 69 65 6c 64 2e 20 20 50 6c 65 61 73 65 20 72 65 2d 65 6e ┆ Illegal field. Please re-en┆ 0x035900…035920 74 65 72 01 1a 1a 00 ff ff 6c 64 20 64 6f 65 73 20 6e 6f 74 20 65 78 61 63 74 6c 79 20 6d 61 74 ┆ter ld does not exactly mat┆ 0x035920…035940 63 68 20 70 72 65 76 69 6f 75 73 20 65 6e 74 72 79 2e 0d 50 6c 65 61 73 65 20 65 6e 74 65 72 20 ┆ch previous entry. Please enter ┆ 0x035940…035960 66 69 65 6c 64 20 74 77 69 63 65 20 77 69 74 68 20 74 68 65 20 73 61 6d 65 20 76 61 6c 75 65 01 ┆field twice with the same value ┆ 0x035960…035980 27 5c 00 0d 49 6c 6c 65 67 61 6c 20 66 69 65 6c 64 2e 20 20 50 6c 65 61 73 65 20 72 65 2d 65 6e ┆'Ø Illegal field. Please re-en┆ 0x035980…0359a0 00 00 00 ff 00 c7 42 c7 42 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ B B ┆ 0x0359a0…0359c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x0359c0…0359e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 00 00 00 00 fc 1a fc 1a 06 4f 4e 44 ┆ OND┆ 0x0359e0…035a00 4f 9d 44 4f ec 44 4f 3b 45 4f 8a 45 4f 77 46 06 4f 4e 44 4f 9d 44 4f d9 45 4f 3b 45 4f 8a 45 4f ┆O DO DO;EO EOwF ONDO DO EO;EO EO┆ 0x035a00…035a20 (14, 0, 10) 74 69 6f 6e 73 20 74 68 61 74 20 66 6f 6c 6c 6f 77 2c 20 74 68 65 20 61 6e 73 77 65 72 73 20 79 ┆tions that follow, the answers y┆ 0x035a20…035a40 6f 75 20 67 69 76 65 20 77 69 6c 6c 20 61 70 70 6c 79 0d 74 6f 20 74 68 65 20 63 75 72 72 65 6e ┆ou give will apply to the curren┆ 0x035a40…035a60 74 20 66 69 65 6c 64 20 6f 6e 6c 79 2e 20 20 54 6f 20 72 65 74 75 72 6e 20 74 6f 20 62 61 63 6b ┆t field only. To return to back┆ 0x035a60…035a80 67 72 6f 75 6e 64 20 64 65 66 69 6e 69 74 69 6f 6e 2c 20 74 79 70 65 20 5e 43 2e 0d 0d 54 68 69 ┆ground definition, type ^C. Thi┆ 0x035a80…035aa0 73 20 69 74 65 6d 20 61 6c 6c 6f 77 73 20 79 6f 75 20 74 6f 20 73 70 65 63 69 66 79 20 74 68 65 ┆s item allows you to specify the┆ 0x035aa0…035ac0 20 6f 72 64 65 72 20 69 6e 20 77 68 69 63 68 20 66 69 65 6c 64 73 20 77 69 6c 6c 20 62 65 0d 70 ┆ order in which fields will be p┆ 0x035ac0…035ae0 72 6f 63 65 73 73 65 64 20 64 75 72 69 6e 67 20 74 68 65 20 64 61 74 61 20 65 6e 74 72 79 20 70 ┆rocessed during the data entry p┆ 0x035ae0…035b00 68 61 73 65 2e 0d 00 20 20 4b 65 79 20 6f 72 64 65 72 3a fc 00 54 68 65 20 6b 65 79 20 66 69 65 ┆hase. Key order: The key fie┆ 0x035b00…035b20 6c 64 28 73 29 20 69 73 2f 61 72 65 20 74 68 65 20 66 69 65 6c 64 28 73 29 20 6f 6e 20 77 68 69 ┆ld(s) is/are the field(s) on whi┆ 0x035b20…035b40 63 68 20 74 68 65 20 66 69 6c 65 20 69 73 20 73 6f 72 74 65 64 2e 20 20 49 66 0d 74 68 65 72 65 ┆ch the file is sorted. If there┆ 0x035b40…035b60 20 69 73 20 6d 6f 72 65 20 74 68 61 6e 20 6f 6e 65 20 6b 65 79 20 66 69 65 6c 64 2c 20 74 68 65 ┆ is more than one key field, the┆ 0x035b60…035b80 79 20 61 72 65 20 63 6f 6d 62 69 6e 65 64 20 66 6f 72 20 73 6f 72 74 69 6e 67 2e 20 20 54 68 65 ┆y are combined for sorting. The┆ 0x035b80…035ba0 0d 66 69 65 6c 64 20 77 69 74 68 20 6b 65 79 20 6f 72 64 65 72 20 6f 66 20 30 30 31 20 77 69 6c ┆ field with key order of 001 wil┆ 0x035ba0…035bc0 6c 20 62 65 20 74 68 65 20 6d 6f 73 74 20 73 69 67 6e 69 66 69 63 61 6e 74 20 66 69 65 6c 64 20 ┆l be the most significant field ┆ 0x035bc0…035be0 69 6e 20 74 68 65 20 73 6f 72 74 2e 0d 00 20 20 54 69 65 20 62 72 65 61 6b 65 72 20 66 69 65 6c ┆in the sort. Tie breaker fiel┆ 0x035be0…035c00 64 3f 20 28 59 2f 4e 29 fc 00 41 20 74 69 65 20 62 72 65 61 6b 65 72 20 66 69 65 6c 64 20 69 73 ┆d? (Y/N) A tie breaker field is┆ 0x035c00…035c20 (14, 0, 11) ef 1a 11 8f 1b 01 50 00 cd 9b 01 c1 c3 32 05 fe 09 c2 25 05 c5 21 3f 1b 11 8f 1b 01 50 00 cd 9b ┆ P 2 % !? P ┆ 0x035c20…035c40 01 c1 c3 32 05 fe 1b ca 48 05 21 98 1b 06 02 cd 18 02 21 82 1a 46 21 8f 1b 3e 01 cd 75 0f 3a 88 ┆ 2 H ! ! F! > u : ┆ 0x035c40…035c60 1a 3c 32 88 1a c3 a9 04 af e1 d1 c1 c9 37 c3 49 05 c5 d5 e5 01 08 00 21 82 1a 70 21 88 1a 71 21 ┆ <2 7 I ! p! q!┆ 0x035c60…035c80 8e 1a 5e 3e ff bb cc 99 10 11 d3 18 0e 09 cd 05 00 21 88 1a 4e fe 1b ca c4 05 21 82 1a 46 21 8f ┆ ^> ! N ! F! ┆ 0x035c80…035ca0 1b cd 06 10 c3 8a 05 0d 0a 24 11 87 05 0e 09 cd 05 00 21 8f 1b 0e 3e c5 e5 5e 0e 02 cd 05 00 e1 ┆ $ ! > ^ ┆ 0x035ca0…035cc0 c1 23 0d c2 97 05 21 d1 1b 0e 0e c5 e5 5e 0e 02 cd 05 00 e1 c1 23 0d c2 ab 05 3a 88 1a 3c 32 88 ┆ # ! ^ # : <2 ┆ 0x035cc0…035ce0 1a c3 71 05 c3 e4 05 0d 0a 50 72 65 73 73 20 61 6e 79 20 6b 65 79 20 74 6f 20 63 6f 6e 74 69 6e ┆ q Press any key to contin┆ 0x035ce0…035d00 75 65 2e 24 11 c7 05 0e 09 cd 05 00 0e 01 cd 05 00 e1 d1 c1 c9 c5 d5 e5 cd c1 03 da f8 0b c3 33 ┆ue.$ 3┆ 0x035d00…035d20 06 0d 0a 50 6c 65 61 73 65 20 65 6e 74 65 72 20 6e 61 6d 65 20 6f 66 20 43 50 4d 20 66 69 6c 65 ┆ Please enter name of CPM file┆ 0x035d20…035d40 20 74 6f 20 62 65 20 63 6f 6e 76 65 72 74 65 64 3a 20 24 11 01 06 0e 09 cd 05 00 0e 0a 11 5e 1a ┆ to be converted: $ ^ ┆ 0x035d40…035d60 3e 0c 12 cd 05 00 21 60 1a 06 0c cd 98 02 21 5f 1a 4e 21 60 1a 06 00 09 36 20 21 ad 1a 0e 21 1e ┆> !` !_ N!` 6 ! ! ┆ 0x035d60…035d80 00 73 23 0d c2 61 06 11 60 1a c3 b9 06 36 00 23 e5 0e 0b 3e 20 77 23 0d c2 75 06 e1 0e 08 1a fe ┆ s# a ` 6 # > w# u ┆ 0x035d80…035da0 20 c2 88 06 13 c3 7e 06 1a fe 00 c8 fe 20 c8 fe 2e ca 9d 06 77 23 13 0d f2 88 06 37 c9 13 79 b7 ┆ ü . w# 7 y ┆ 0x035da0…035dc0 ca a8 06 23 0d c2 a3 06 0e 03 1a fe 00 c8 fe 20 c8 77 23 13 0d c2 aa 06 c9 21 ad 1a cd 6d 06 eb ┆ # w# ! m ┆ 0x035dc0…035de0 c3 f9 06 0d 0a 50 6c 65 61 73 65 20 65 6e 74 65 72 20 49 42 4d 20 64 61 74 61 20 73 65 74 20 6e ┆ Please enter IBM data set n┆ 0x035de0…035e00 61 6d 65 20 77 68 65 72 65 20 64 61 74 61 20 69 73 20 74 6f 20 62 65 20 24 11 c3 06 0e 09 cd 05 ┆ame where data is to be $ ┆ 0x035e00…035e20 (14, 0, 12) 69 73 20 74 6f 20 62 65 20 77 72 69 74 74 65 6e 3a 20 24 11 fa 0c 0e 09 cd 05 00 0e 0a 11 5e 1a ┆is to be written: $ ^ ┆ 0x035e20…035e40 3e 0c 12 cd 05 00 21 60 1a 06 0c cd 98 02 21 5f 1a 4e 21 60 1a 06 00 09 36 20 21 ce 1a 0e 21 1e ┆> !` !_ N!` 6 ! ! ┆ 0x035e40…035e60 00 73 23 0d c2 41 0d 11 60 1a 21 ce 1a cd 6d 06 eb 21 88 1a 4e fe 1b ca 1a 0f 21 82 1a 46 21 8f ┆ s# A ` ! m ! N ! F! ┆ 0x035e60…035e80 1b cd 06 10 da 64 0f 21 4c 1a 4e 11 94 1b 21 4d 1a cd b7 02 ca 81 0d 3a 88 1a 3c 32 88 1a c3 51 ┆ d !L N !M : <2 Q┆ 0x035e80…035ea0 0d 11 d3 18 0e 09 cd 05 00 c3 8f 0d 0d 0a 24 11 8c 0d 0e 09 cd 05 00 21 8f 1b 0e 3e c5 e5 5e 0e ┆ $ ! > ^ ┆ 0x035ea0…035ec0 02 cd 05 00 e1 c1 23 0d c2 9c 0d 21 d1 1b 0e 0e c5 e5 5e 0e 02 cd 05 00 e1 c1 23 0d c2 b0 0d c3 ┆ # ! ^ # ┆ 0x035ec0…035ee0 e3 0d 0d 0a 50 72 6f 63 65 73 73 69 6e 67 20 61 62 6f 76 65 20 49 42 4d 20 64 61 74 61 20 73 65 ┆ Processing above IBM data se┆ 0x035ee0…035f00 74 2e 24 11 c2 0d 0e 09 cd 05 00 3e 20 32 ad 1b 32 db 1b 21 a7 1b cd ae 07 7d 32 aa 1a 21 ab 1b ┆t.$ > 2 2 ! å2 ! ┆ 0x035f00…035f20 cd ae 07 7d 32 83 1a 21 ae 1b cd ae 07 7d 32 89 1a 21 d9 1b cd ae 07 7d 32 84 1a 21 dc 1b cd ae ┆ å2 ! å2 ! å2 ! ┆ 0x035f20…035f40 07 7d 32 8c 1a cd 74 14 21 89 1a 4e 21 83 1a 46 21 13 1d cd 06 10 da 64 0f 21 13 1d 22 9a 1a 2a ┆ å2 t ! N! F! d ! " *┆ 0x035f40…035f60 9a 1a 22 9c 1a 3a aa 1a 4f 06 00 09 22 9a 1a 11 94 1d 7c ba c2 59 0e 7d bb d2 d9 0e 2a 9c 1a 11 ┆ " : O " ø Y å * ┆ 0x035f60…035f80 17 1e cd 9b 01 21 17 1e 22 9c 1a eb 2b 3a aa 1a 4f 3e 20 be c2 7c 0e 2b 0d c2 73 0e 23 0c 36 0d ┆ ! " +: O> ø + s # 6 ┆ 0x035f80…035fa0 23 0c 36 0a 21 a5 1a 71 21 a5 1a 4e 06 00 3a a4 1a b9 d2 96 0e 4f 21 a6 1a 71 2a 98 1a eb 2a 9c ┆# 6 ! q! N : O! q* * ┆ 0x035fa0…035fc0 1a cd 9b 01 22 9c 1a eb 22 98 1a 3a a4 1a 21 a6 1a 4e 91 32 a4 1a c2 c8 0e 01 ce 1a 21 95 1d cd ┆ " " : ! N 2 ! ┆ 0x035fc0…035fe0 17 12 da 64 0f cd 74 14 21 a6 1a 4e 3a a5 1a 91 32 a5 1a c2 88 0e c3 3f 0e 21 89 1a 34 3e 1a be ┆ d t ! N: 2 ? ! 4> ┆ 0x035fe0…036000 d2 e9 0e 36 01 21 83 1a 34 21 83 1a 3a 84 1a be c2 28 0e 21 89 1a 3a 8c 1a be d2 28 0e 01 ce 1a ┆ 6 ! 4! : ( ! : ( ┆ 0x036000…036020 (14, 0, 13) 20 20 20 65 78 70 72 65 73 73 69 6f 6e 20 65 6e 74 72 79 2c 20 73 75 62 73 74 69 74 75 74 69 6e ┆ expression entry, substitutin┆ 0x036020…036040 67 20 76 61 6c 69 64 20 66 69 65 6c 64 20 6e 75 6d 62 65 72 73 20 66 6f 72 20 61 6c 6c 20 22 3f ┆g valid field numbers for all "?┆ 0x036040…036060 22 2e 29 0d 00 20 30 30 30 20 20 20 49 6e 76 61 6c 69 64 20 72 61 6e 67 65 20 63 68 65 63 6b 20 ┆".) 000 Invalid range check ┆ 0x036060…036080 6c 69 6d 69 74 73 01 3b 15 72 61 6e 67 65 20 63 68 65 63 6b 20 6c 69 6d 69 74 73 20 61 72 65 20 ┆limits ; range check limits are ┆ 0x036080…0360a0 72 65 61 63 68 65 64 2c 20 74 68 65 6e 20 65 64 69 74 0d 20 20 20 20 20 20 20 20 20 72 61 6e 67 ┆reached, then edit rang┆ 0x0360a0…0360c0 65 20 6c 69 6d 69 74 73 20 73 6f 20 74 68 61 74 20 74 68 65 20 6d 69 6e 69 6d 75 6d 20 76 61 6c ┆e limits so that the minimum val┆ 0x0360c0…0360e0 75 65 20 69 73 20 6c 65 73 73 20 74 68 61 6e 20 74 68 65 20 6d 61 78 69 6d 75 6d 2e 29 0d 00 20 ┆ue is less than the maximum.) ┆ 0x0360e0…036100 30 30 30 20 20 20 55 6e 73 70 65 63 69 66 69 65 64 20 76 65 72 69 66 79 2f 63 61 6c 63 75 6c 61 ┆000 Unspecified verify/calcula┆ 0x036100…036120 74 65 20 6f 72 64 65 72 01 3b 15 6f 72 64 65 72 20 69 73 20 72 65 61 63 68 65 64 2c 20 74 68 65 ┆te order ; order is reached, the┆ 0x036120…036140 6e 20 65 6e 74 65 72 20 6f 72 64 65 72 2e 29 0d 00 07 20 3f 3f 3f 20 20 20 4b 65 79 20 6c 65 6e ┆n enter order.) ??? Key len┆ 0x036140…036160 67 74 68 20 69 73 20 67 72 65 61 74 65 72 20 74 68 61 6e 20 31 32 30 20 63 68 61 72 61 63 74 65 ┆gth is greater than 120 characte┆ 0x036160…036180 72 73 2e 0d 20 20 20 20 20 20 20 28 50 6f 73 69 74 69 6f 6e 20 63 75 72 73 6f 72 20 61 74 20 6b ┆rs. (Position cursor at k┆ 0x036180…0361a0 65 79 20 66 69 65 6c 64 28 73 29 2c 20 75 73 65 20 5e 4b 20 74 6f 20 72 65 6d 6f 76 65 20 22 2a ┆ey field(s), use ^K to remove "*┆ 0x0361a0…0361c0 22 2e 29 0d 00 2e 0d 20 20 20 20 20 20 20 20 28 5e 52 2c 20 52 45 54 55 52 4e 20 6b 65 79 20 75 ┆".) . (^R, RETURN key u┆ 0x0361c0…0361e0 6e 74 69 6c 20 80 0d 01 b3 15 4c 3d 4c 69 73 74 20 65 72 72 6f 72 73 20 6f 6e 20 4c 53 54 3a 20 ┆ntil L=List errors on LST: ┆ 0x0361e0…036200 64 65 76 69 63 65 01 3a 16 4c 01 a9 15 00 01 b3 15 44 3d 73 61 76 65 20 66 6f 72 6d 20 61 6e 64 ┆device : L D=save form and┆ 0x036200…036220 (14, 0, 14) 20 61 20 6b 65 79 20 66 69 65 6c 64 20 65 6e 74 65 72 65 64 20 62 79 20 44 61 74 61 53 74 61 72 ┆ a key field entered by DataStar┆ 0x036220…036240 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 0d 64 61 74 61 20 65 6e 74 72 79 20 6f 70 65 72 61 ┆ instead of the data entry opera┆ 0x036240…036260 74 65 72 2c 20 74 6f 20 63 72 65 61 74 65 20 61 20 75 6e 69 71 75 65 20 6b 65 79 2e 0d 0d 45 6e ┆ter, to create a unique key. En┆ 0x036260…036280 74 65 72 20 61 20 59 20 68 65 72 65 20 74 6f 20 68 61 76 65 20 44 61 74 61 53 74 61 72 20 6d 61 ┆ter a Y here to have DataStar ma┆ 0x036280…0362a0 69 6e 74 61 69 6e 20 74 68 65 20 66 69 6c 65 20 62 79 20 65 6e 74 65 72 69 6e 67 20 74 68 65 20 ┆intain the file by entering the ┆ 0x0362a0…0362c0 6c 6f 77 65 73 74 0d 6e 75 6d 65 72 69 63 20 76 61 6c 75 65 20 68 65 72 65 20 74 68 61 74 20 77 ┆lowest numeric value here that w┆ 0x0362c0…0362e0 69 6c 6c 20 63 72 65 61 74 65 20 61 20 75 6e 69 71 75 65 20 6b 65 79 20 77 68 65 6e 65 76 65 72 ┆ill create a unique key whenever┆ 0x0362e0…036300 20 6e 65 63 65 73 73 61 72 79 2e 0d 00 20 20 52 65 66 75 73 65 20 64 75 70 6c 69 63 61 74 65 20 ┆ necessary. Refuse duplicate ┆ 0x036300…036320 6b 65 79 73 3f 20 28 59 2f 4e 29 fc 00 54 68 69 73 20 69 74 65 6d 20 69 73 20 75 73 65 64 20 74 ┆keys? (Y/N) This item is used t┆ 0x036320…036340 6f 20 74 6f 20 63 72 65 61 74 65 20 66 69 6c 65 73 20 77 69 74 68 20 75 6e 69 71 75 65 20 6b 65 ┆o to create files with unique ke┆ 0x036340…036360 79 73 2e 20 20 49 66 20 74 68 65 20 64 61 74 61 20 65 6e 74 72 79 0d 6f 70 65 72 61 74 6f 72 20 ┆ys. If the data entry operator ┆ 0x036360…036380 61 74 74 65 6d 70 74 73 20 74 6f 20 65 6e 74 65 72 20 61 20 72 65 63 6f 72 64 20 77 69 74 68 20 ┆attempts to enter a record with ┆ 0x036380…0363a0 74 68 65 20 73 61 6d 65 20 6b 65 79 20 61 73 20 61 20 72 65 63 6f 72 64 20 61 6c 72 65 61 64 79 ┆the same key as a record already┆ 0x0363a0…0363c0 0d 69 6e 20 74 68 65 20 66 69 6c 65 2c 20 61 6e 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 77 ┆ in the file, an error message w┆ 0x0363c0…0363e0 69 6c 6c 20 62 65 20 67 65 6e 65 72 61 74 65 64 20 61 6e 64 20 74 68 65 20 65 6e 74 72 79 20 72 ┆ill be generated and the entry r┆ 0x0363e0…036400 65 66 75 73 65 64 2e 0d 00 20 20 43 6f 70 79 20 61 74 74 72 69 62 75 74 65 73 20 6f 66 20 66 69 ┆efused. Copy attributes of fi┆ 0x036400…036420 (14, 0, 15) 00 c3 0e 07 77 72 69 74 74 65 6e 3a 20 24 11 04 07 0e 09 cd 05 00 0e 0a 11 4b 1a 3e 11 12 cd 05 ┆ written: $ K > ┆ 0x036420…036440 00 21 4d 1a 06 11 cd 98 02 01 08 00 21 82 1a 70 21 88 1a 71 21 8f 1b cd 06 10 da f8 0b 21 94 1b ┆ !M ! p! q! ! ┆ 0x036440…036460 0e 11 1e 20 73 23 0d c2 44 07 06 00 21 4c 1a 4e 21 4d 1a 11 94 1b cd 9b 01 c3 8c 07 0d 0a 50 6c ┆ s# D !L N!M Pl┆ 0x036460…036480 65 61 73 65 20 65 6e 74 65 72 20 72 65 63 6f 72 64 20 6c 65 6e 67 74 68 20 66 6f 72 20 49 42 4d ┆ease enter record length for IBM┆ 0x036480…0364a0 20 64 61 74 61 20 73 65 74 2e 20 24 11 5c 07 0e 09 cd 05 00 0e 0a 11 6d 1a 3e 03 12 cd 05 00 21 ┆ data set. $ Ø m > !┆ 0x0364a0…0364c0 6e 1a 4e 21 6f 1a 06 00 09 36 20 c3 c9 07 11 00 00 eb 1a d6 30 a7 f8 fe 0a 3f d8 13 29 e5 29 29 ┆n N!o 6 0 ? ) ))┆ 0x0364c0…0364e0 c1 09 4f 06 00 09 c3 b2 07 21 6f 1a cd ae 07 7d af bc c2 df 07 7d b7 ca df 07 fe 81 da 36 08 c3 ┆ O !o å å 6 ┆ 0x0364e0…036500 0e 08 0d 0a 07 52 65 63 6f 72 64 20 6c 65 6e 67 74 68 20 6d 75 73 74 20 62 65 20 62 65 74 77 65 ┆ Record length must be betwe┆ 0x036500…036520 65 6e 20 31 20 61 6e 64 20 31 32 38 2e 24 11 e2 07 0e 09 cd 05 00 c3 2b 08 20 20 50 6c 65 61 73 ┆en 1 and 128.$ + Pleas┆ 0x036520…036540 65 20 72 65 65 6e 74 65 72 2e 24 11 19 08 0e 09 cd 05 00 c3 59 07 32 aa 1a 21 a7 1b 06 03 cd 18 ┆e reenter.$ Y 2 ! ┆ 0x036540…036560 02 3e 01 32 83 1a 32 89 1a af 32 a7 1a 32 b3 1b 21 b1 1b cd ae 07 7d 32 85 1a 21 b4 1b cd ae 07 ┆ > 2 2 2 2 ! å2 ! ┆ 0x036560…036580 7d 32 8d 1a cd 38 0c af 32 a5 1a 21 00 00 22 a2 1a 21 a5 1a 46 21 a4 1a 4e 2a 98 1a eb 2a 9a 1a ┆å2 8 2 ! " ! F! N* * ┆ 0x036580…0365a0 cd fc 0b da f3 09 fe 1a ca f3 09 fe 0d ca 95 08 fe 0a c2 cb 08 cd fc 0b da f3 09 fe 1a ca f3 09 ┆ ┆ 0x0365a0…0365c0 fe 0d ca 95 08 fe 0a ca 95 08 f5 22 9a 1a 21 a5 1a 70 cd e8 08 da f7 0b 21 a5 1a 46 21 a4 1a 4e ┆ " ! p ! F! N┆ 0x0365c0…0365e0 2a 98 1a eb 2a 9a 1a f1 c3 86 08 f5 af b9 c2 e1 08 22 9a 1a 2a a2 1a 23 22 a2 1a 2a 9a 1a c3 ab ┆* * " * #" * ┆ 0x0365e0…036600 08 f1 12 0d 13 c3 80 08 c5 d5 e5 eb 0c 0d ca f7 08 36 20 23 c3 ed 08 22 98 1a 3a ab 1a 21 aa 1a ┆ 6 # " : ! ┆ 0x036600…036620 (14, 1, 1) 21 95 1d cd 17 12 da 64 0f 11 ce 1a 0e 10 cd 05 00 3e ff 32 8f 1a e1 d1 c1 c9 c3 42 0f 0d 0a 07 ┆! d > 2 B ┆ 0x036620…036640 46 69 6c 65 20 6e 6f 74 20 66 6f 75 6e 64 2e 20 50 72 65 73 73 20 61 6e 79 20 6b 65 79 20 74 6f ┆File not found. Press any key to┆ 0x036640…036660 20 24 11 1d 0f 0e 09 cd 05 00 c3 57 0f 63 6f 6e 74 69 6e 75 65 2e 24 11 4d 0f 0e 09 cd 05 00 0e ┆ $ W continue.$ M ┆ 0x036660…036680 01 cd 05 00 11 ce 1a 0e 10 cd 05 00 3e ff 32 8f 1a 37 c3 16 0f c5 d5 e5 32 ac 1a 22 90 1a 21 86 ┆ > 2 7 2 " ! ┆ 0x036680…0366a0 1a 70 21 8a 1a 71 2a 90 1a 11 0f 1c 06 80 cd 93 14 21 8e 1a 5e 3e ff bb cc 99 10 0e 0e cd 05 00 ┆ p! q* ! ^> ┆ 0x0366a0…0366c0 21 86 1a 4e 2a 01 00 f5 3e 1b 85 6f 3e 00 8c 67 f1 22 b5 0f cd 00 00 21 8a 1a 6e 26 00 11 98 20 ┆! N* > o> g " ! n& ┆ 0x0366c0…0366e0 19 4e 2a 01 00 f5 3e 1e 85 6f 3e 00 8c 67 f1 22 d3 0f cd 00 00 01 0f 1c 2a 01 00 f5 3e 21 85 6f ┆ N* > o> g " * >! o┆ 0x0366e0…036700 3e 00 8c 67 f1 22 e9 0f cd 00 00 21 ac 1a 4e 2a 01 00 f5 3e 27 85 6f 3e 00 8c 67 f1 22 00 10 cd ┆> g " ! N* >' o> g " ┆ 0x036700…036720 00 00 e1 d1 c1 c9 c5 d5 e5 22 92 1a 21 87 1a 70 21 8b 1a 71 21 8e 1a 5e 3e ff bb cc 99 10 0e 0e ┆ " ! p! q! ^> ┆ 0x036720…036740 cd 05 00 21 87 1a 4e 2a 01 00 f5 3e 1b 85 6f 3e 00 8c 67 f1 22 38 10 cd 00 00 21 8b 1a 6e 26 00 ┆ ! N* > o> g "8 ! n& ┆ 0x036740…036760 11 98 20 19 4e 2a 01 00 f5 3e 1e 85 6f 3e 00 8c 67 f1 22 56 10 cd 00 00 01 0f 1c 2a 01 00 f5 3e ┆ N* > o> g "V * >┆ 0x036760…036780 21 85 6f 3e 00 8c 67 f1 22 6c 10 cd 00 00 2a 01 00 f5 3e 24 85 6f 3e 00 8c 67 f1 22 7f 10 cd 00 ┆! o> g "l * >$ o> g " ┆ 0x036780…0367a0 00 b7 c2 95 10 2a 92 1a 11 0f 1c eb 06 80 cd ae 14 e1 d1 c1 c9 37 c3 91 10 c3 c8 10 0d 0a 57 68 ┆ * 7 Wh┆ 0x0367a0…0367c0 69 63 68 20 64 72 69 76 65 20 77 69 6c 6c 20 74 68 65 20 49 42 4d 20 64 69 73 6b 65 74 74 65 20 ┆ich drive will the IBM diskette ┆ 0x0367c0…0367e0 62 65 20 6f 6e 3f 20 24 11 9c 10 0e 09 cd 05 00 0e 0a 11 48 1a 3e 01 12 cd 05 00 21 4a 1a 06 01 ┆be on? $ H > !J ┆ 0x0367e0…036800 cd 98 02 3a 4a 1a d6 41 da f3 10 21 a8 1a 46 b8 da 3e 11 c3 1d 11 0d 0a 07 44 72 69 76 65 20 6d ┆ :J A ! F > Drive m┆ 0x036800…036820 (14, 1, 2) 6e 2e 0a 0a 0a 24 0d 0a 0a 0a 0a 0a 0a 0d 0a 09 09 20 20 20 20 20 20 20 20 20 20 4c 69 66 65 62 ┆n. $ Lifeb┆ 0x036820…036840 6f 61 74 20 41 73 73 6f 63 69 61 74 65 73 0d 0a 09 09 20 49 42 4d 2f 43 50 4d 20 44 69 73 6b 65 ┆oat Associates IBM/CPM Diske┆ 0x036840…036860 74 74 65 20 55 74 69 6c 69 74 79 20 56 65 72 73 69 6f 6e 20 31 2e 31 0d 0a 09 09 09 20 53 65 72 ┆tte Utility Version 1.1 Ser┆ 0x036860…036880 69 61 6c 20 4e 75 6d 62 65 72 20 4c 42 2d 31 31 31 31 0d 0a 09 09 09 20 20 43 6f 70 79 72 69 67 ┆ial Number LB-1111 Copyrig┆ 0x036880…0368a0 68 74 28 63 29 20 31 39 37 39 0d 0a 0a 0a 0a 09 20 20 20 20 20 20 20 20 20 20 20 41 73 73 75 6d ┆ht(c) 1979 Assum┆ 0x0368a0…0368c0 69 6e 67 20 73 74 61 6e 64 61 72 64 20 43 50 4d 20 32 2e 30 20 42 49 4f 53 2e 20 20 20 20 20 20 ┆ing standard CPM 2.0 BIOS. ┆ 0x0368c0…0368e0 20 0d 0a 0a 0d 0a 0a 09 09 4f 70 74 69 6f 6e 09 46 75 6e 63 74 69 6f 6e 20 74 6f 20 62 65 20 70 ┆ Option Function to be p┆ 0x0368e0…036900 65 72 66 6f 72 6d 65 64 0d 0a 09 09 45 09 54 65 72 6d 69 6e 61 74 65 20 70 72 6f 67 72 61 6d 20 ┆erformed E Terminate program ┆ 0x036900…036920 61 6e 64 20 72 65 74 75 72 6e 20 63 6f 6e 74 72 6f 6c 20 74 6f 20 43 50 4d 0d 0a 09 09 46 09 49 ┆and return control to CPM F I┆ 0x036920…036940 6e 69 74 69 61 6c 69 7a 65 20 64 69 72 65 63 74 6f 72 79 20 6f 6e 20 49 42 4d 20 64 69 73 6b 65 ┆nitialize directory on IBM diske┆ 0x036940…036960 74 74 65 0d 0a 09 09 44 09 44 69 73 70 6c 61 79 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 6f ┆tte D Display the directory o┆ 0x036960…036980 6e 20 61 6e 20 49 42 4d 20 64 69 73 6b 65 74 74 65 0d 0a 09 09 43 09 43 6f 6e 76 65 72 74 20 61 ┆n an IBM diskette C Convert a┆ 0x036980…0369a0 20 43 50 4d 20 66 69 6c 65 20 74 6f 20 49 42 4d 20 66 6f 72 6d 61 74 0d 0a 09 09 49 09 43 6f 6e ┆ CPM file to IBM format I Con┆ 0x0369a0…0369c0 76 65 72 74 20 61 6e 20 49 42 4d 20 66 69 6c 65 20 74 6f 20 43 50 4d 20 66 6f 72 6d 61 74 0d 0a ┆vert an IBM file to CPM format ┆ 0x0369c0…0369e0 0a 09 09 45 6e 74 65 72 20 6f 70 74 69 6f 6e 20 3a 20 24 0d 0a 0a 0d 0a 20 20 20 20 20 20 20 20 ┆ Enter option : $ ┆ 0x0369e0…036a00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 54 41 52 54 20 20 45 4e 44 20 20 ┆ START END ┆ 0x036a00…036a20 (14, 1, 3) 67 68 69 7c 2c 25 5f 3e 3f 70 71 72 73 74 75 76 77 78 60 3a 23 40 27 3d 22 80 61 62 63 64 65 66 ┆ghiø,%_>?pqrstuvwx`:#@'=" abcdef┆ 0x036a20…036a40 67 68 69 8a 8b 8c 8d 8e 8f 90 6a 6b 6c 6d 6e 6f 70 71 72 9a 9b 9c 9d 9e 9f a0 7e 73 74 75 76 77 ┆ghi jklmnopqr üstuvw┆ 0x036a40…036a60 78 79 7a aa ab ac ad ae af b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 ba bb bc 5d be bf 7b 41 42 43 44 45 46 ┆xyz Å æABCDEF┆ 0x036a60…036a80 47 48 49 ca cb cc cd ce cf 7d 4a 4b 4c 4d 4e 4f 50 51 52 da db dc dd de df 5c e1 53 54 55 56 57 ┆GHI åJKLMNOPQR Ø STUVW┆ 0x036a80…036aa0 58 59 5a ea eb ec ed ee ef 30 31 32 33 34 35 36 37 38 39 fa fb fc fd fe ff 00 01 02 03 04 05 06 ┆XYZ 0123456789 ┆ 0x036aa0…036ac0 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 40 5a 7f 7b 5b 6c 50 ┆ @Z æÆlP┆ 0x036ac0…036ae0 7d 4d 5d 5c 4e 6b 60 4b 61 f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 7a 5e 4c 7e 6e 6f 7c c1 c2 c3 c4 c5 c6 ┆åMÅØNk`Ka z^Lünoø ┆ 0x036ae0…036b00 c7 c8 c9 d1 d2 d3 d4 d5 d6 d7 d8 d9 e2 e3 e4 e5 e6 e7 e8 e9 ad e0 bd 5f 6d 79 81 82 83 84 85 86 ┆ _my ┆ 0x036b00…036b20 87 88 89 91 92 93 94 95 96 97 98 99 a2 a3 a4 a5 a6 a7 a8 a9 c0 6a d0 a1 07 00 01 02 03 04 05 06 ┆ j ┆ 0x036b20…036b40 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 40 5a 7f 7b 5b 6c 50 ┆ @Z æÆlP┆ 0x036b40…036b60 7d 4d 5d 5c 4e 6b 60 4b 61 f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 7a 5e 4c 7e 6e 6f 7c c1 c2 c3 c4 c5 c6 ┆åMÅØNk`Ka z^Lünoø ┆ 0x036b60…036b80 c7 c8 c9 d1 d2 d3 d4 d5 d6 d7 d8 d9 e2 e3 e4 e5 e6 e7 e8 e9 ad e0 bd 5f 6d 79 81 82 83 84 85 86 ┆ _my ┆ 0x036b80…036ba0 87 88 89 91 92 93 94 95 96 97 98 99 a2 a3 a4 a5 a6 a7 a8 a9 c0 6a d0 a1 07 01 02 03 04 05 06 07 ┆ j ┆ 0x036ba0…036bc0 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 00 0d 09 16 05 12 01 0e 0a 17 06 13 02 ┆ ┆ 0x036bc0…036be0 0f 0b 18 07 14 03 10 0c 19 08 15 04 11 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 ┆ ┆ 0x036be0…036c00 14 15 16 17 18 19 1a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x036c00…036c20 (14, 1, 4) 20 20 20 20 20 59 20 3d 20 61 75 74 6f 2d 63 6f 70 79 2f 6d 61 79 20 65 6e 74 65 72 fd 20 20 22 ┆ Y = auto-copy/may enter "┆ 0x036c20…036c40 20 3d 20 63 6f 6e 73 74 61 6e 74 20 69 6e 20 74 68 69 73 20 70 6f 73 69 74 69 6f 6e 20 20 20 7e ┆ = constant in this position ü┆ 0x036c40…036c60 20 3d 20 63 6f 6e 73 74 61 6e 74 2f 6d 61 79 20 65 6e 74 65 72 fd 20 20 27 20 3d 20 63 6f 6e 73 ┆ = constant/may enter ' = cons┆ 0x036c60…036c80 74 61 6e 74 20 69 66 20 64 61 74 61 20 6f 6e 20 20 20 20 20 20 20 20 20 2f 20 3d 20 63 6f 6e 73 ┆tant if data on / = cons┆ 0x036c80…036ca0 74 61 6e 74 20 69 66 20 64 61 74 61 20 6f 6e 20 6f 6e 65 fd 20 20 20 20 20 20 62 6f 74 68 20 73 ┆tant if data on one both s┆ 0x036ca0…036cc0 69 64 65 73 20 6f 66 20 63 6f 6e 73 74 61 6e 74 20 20 20 20 20 20 20 20 20 20 73 69 64 65 20 6f ┆ides of constant side o┆ 0x036cc0…036ce0 6e 6c 79 fd fd 45 6e 74 65 72 2f 63 68 61 6e 67 65 20 74 68 65 20 65 6e 74 72 79 20 63 6f 6e 74 ┆nly Enter/change the entry cont┆ 0x036ce0…036d00 72 6f 6c 20 6d 61 73 6b 3a 00 54 68 65 20 65 6e 74 72 79 20 63 6f 6e 74 72 6f 6c 20 6d 61 73 6b ┆rol mask: The entry control mask┆ 0x036d00…036d20 20 75 73 65 73 20 6f 6e 65 20 6f 66 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 68 61 72 61 ┆ uses one of the following chara┆ 0x036d20…036d40 63 74 65 72 73 3a 20 21 5f 58 59 22 27 7e 2f 0d 69 6e 20 65 61 63 68 20 70 6f 73 69 74 69 6f 6e ┆cters: !_XY"'ü/ in each position┆ 0x036d40…036d60 20 6f 66 20 74 68 65 20 66 69 65 6c 64 2e 20 20 54 68 69 73 20 61 6c 6c 6f 77 73 20 79 6f 75 20 ┆ of the field. This allows you ┆ 0x036d60…036d80 74 6f 20 63 6f 6e 74 72 6f 6c 20 77 68 65 74 68 65 72 20 6f 72 0d 6e 6f 74 20 74 68 65 72 65 20 ┆to control whether or not there ┆ 0x036d80…036da0 6d 75 73 74 20 62 65 20 64 61 74 61 20 74 68 65 72 65 2c 20 61 73 20 77 65 6c 6c 20 61 73 20 77 ┆must be data there, as well as w┆ 0x036da0…036dc0 68 65 72 65 20 69 74 20 63 6f 6d 65 73 20 66 72 6f 6d 2e 20 20 54 68 65 0d 63 6f 6e 73 74 61 6e ┆here it comes from. The constan┆ 0x036dc0…036de0 74 73 20 61 72 65 20 73 69 6d 70 6c 79 20 63 68 61 72 61 63 74 65 72 73 20 74 68 61 74 20 79 6f ┆ts are simply characters that yo┆ 0x036de0…036e00 75 20 77 69 6c 6c 20 73 75 70 70 6c 79 20 69 6e 20 74 68 65 20 6e 65 78 74 20 71 75 65 73 74 69 ┆u will supply in the next questi┆ 0x036e00…036e20 (14, 1, 5) 75 73 74 20 62 65 20 69 6e 20 74 68 65 20 72 61 6e 67 65 20 6f 66 20 41 20 74 6f 20 24 11 f6 10 ┆ust be in the range of A to $ ┆ 0x036e20…036e40 0e 09 cd 05 00 3a a9 1a 0e 02 5f cd 05 00 c3 33 11 2e 24 11 31 11 0e 09 cd 05 00 c3 80 11 21 8f ┆ : _ 3 .$ 1 ! ┆ 0x036e40…036e60 1a 5e bb c2 9f 11 c3 78 11 0d 0a 07 49 42 4d 20 64 72 69 76 65 20 6d 75 73 74 20 62 65 20 64 69 ┆ ^ x IBM drive must be di┆ 0x036e60…036e80 66 66 65 72 65 6e 74 20 66 72 6f 6d 20 43 50 4d 20 64 72 69 76 65 2e 24 11 49 11 0e 09 cd 05 00 ┆fferent from CPM drive.$ I ┆ 0x036e80…036ea0 c3 94 11 20 50 6c 65 61 73 65 20 72 65 65 6e 74 65 72 2e 24 11 83 11 0e 09 cd 05 00 c3 99 10 32 ┆ Please reenter.$ 2┆ 0x036ea0…036ec0 8e 1a c3 cc 11 0d 0a 07 50 6c 65 61 73 65 20 70 6c 61 63 65 20 49 42 4d 20 64 69 73 6b 65 74 74 ┆ Please place IBM diskett┆ 0x036ec0…036ee0 65 20 69 6e 20 64 72 69 76 65 20 24 11 a5 11 0e 09 cd 05 00 3a 8e 1a c6 41 0e 02 5f cd 05 00 c3 ┆e in drive $ : A _ ┆ 0x036ee0…036f00 05 12 3a 2e 20 54 68 65 6e 20 70 72 65 73 73 20 61 6e 79 20 6b 65 79 20 74 6f 20 63 6f 6e 74 69 ┆ :. Then press any key to conti┆ 0x036f00…036f20 6e 75 65 2e 24 11 e2 11 0e 09 cd 05 00 0e 01 cd 05 00 21 8e 1a 5e c9 c5 d5 e5 22 94 1a c5 e1 22 ┆nue.$ ! ^ " "┆ 0x036f20…036f40 9e 1a 21 8f 1a 5e 3e ff bb c2 41 12 cd f2 12 2a 9e 1a 1c 73 eb d5 0e 13 cd 05 00 d1 0e 16 cd 05 ┆ ! ^> A * s ┆ 0x036f40…036f60 00 2a 94 1a 11 91 1c 01 80 00 cd 9b 01 11 91 1c 0e 1a cd 05 00 2a 9e 1a eb 0e 15 cd 05 00 b7 ca ┆ * * ┆ 0x036f60…036f80 63 12 37 e1 d1 c1 c9 c5 d5 e5 22 96 1a c5 e1 22 a0 1a 21 8f 1a 5e 3e ff bb c2 8e 12 cd f2 12 2a ┆c 7 " " ! ^> *┆ 0x036f80…036fa0 a0 1a 1c 73 eb 0e 0f cd 05 00 3c ca b4 12 11 91 1c 0e 1a cd 05 00 2a a0 1a eb 0e 14 cd 05 00 b7 ┆ s < * ┆ 0x036fa0…036fc0 c2 ee 12 2a 96 1a eb 21 91 1c 01 80 00 cd 9b 01 e1 d1 c1 c9 c3 e6 12 0d 0a 07 43 50 2f 4d 20 66 ┆ * ! CP/M f┆ 0x036fc0…036fe0 69 6c 65 20 6e 6f 74 20 66 6f 75 6e 64 2e 20 20 43 6f 6e 76 65 72 73 69 6f 6e 20 61 62 61 6e 64 ┆ile not found. Conversion aband┆ 0x036fe0…037000 6f 6e 65 64 2e 24 11 b7 12 0e 09 cd 05 00 37 c3 b0 12 c3 21 13 0d 0a 57 68 69 63 68 20 64 72 69 ┆oned.$ 7 ! Which dri┆ 0x037000…037020 (14, 1, 6) 20 20 20 20 20 56 53 20 20 43 52 45 41 20 20 20 20 20 20 20 20 20 20 45 58 50 49 52 20 20 20 20 ┆ VS CREA EXPIR ┆ 0x037020…037040 45 4e 44 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 4c 4f 43 4b ┆END BLOCK┆ 0x037040…037060 20 20 20 4f 46 20 20 20 20 4f 46 20 20 20 20 20 20 20 4f 45 20 20 54 49 4f 4e 20 20 20 20 20 20 ┆ OF OF OE TION ┆ 0x037060…037080 20 20 20 20 41 54 49 4f 4e 20 20 20 20 4f 46 20 0d 0a 20 20 20 20 44 41 54 41 20 53 45 54 20 4e ┆ ATION OF DATA SET N┆ 0x037080…0370a0 41 4d 45 20 20 20 20 20 4c 4e 47 54 48 20 45 58 54 4e 54 20 45 58 54 4e 54 20 20 20 20 20 20 4c ┆AME LNGTH EXTNT EXTNT L┆ 0x0370a0…0370c0 51 20 20 44 41 54 45 20 20 20 20 20 20 20 20 20 20 20 44 41 54 45 20 20 20 44 41 54 41 24 20 20 ┆Q DATE DATE DATA$ ┆ 0x0370c0…0370e0 20 20 20 20 20 41 73 73 75 6d 69 6e 67 20 73 74 61 6e 64 61 72 64 20 43 50 4d 20 31 2e 34 20 42 ┆ Assuming standard CPM 1.4 B┆ 0x0370e0…037100 49 4f 53 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 73 73 75 6d 69 6e 67 20 73 74 61 6e 64 ┆IOS. Assuming stand┆ 0x037100…037120 61 72 64 20 43 50 4d 20 32 2e 30 20 42 49 4f 53 2e 20 20 20 20 20 20 20 41 73 73 75 6d 69 6e 67 ┆ard CPM 2.0 BIOS. Assuming┆ 0x037120…037140 20 43 50 4d 20 32 2e 30 20 42 49 4f 53 20 77 69 74 68 20 73 65 63 74 6f 72 20 64 65 62 6c 6f 63 ┆ CPM 2.0 BIOS with sector debloc┆ 0x037140…037160 6b 69 6e 67 2e 01 00 03 00 00 46 00 00 20 20 20 20 20 4f 45 20 20 54 49 4f 4e 20 20 20 20 00 00 ┆king. F OE TION ┆ 0x037160…037180 20 20 20 20 41 54 49 4f 4e 20 20 20 20 00 00 20 0d 0a 20 45 52 4d 41 50 56 4f 4c 31 49 42 4d 49 ┆ ATION ERMAPVOL1IBMI┆ 0x037180…0371a0 52 44 00 00 00 00 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆RD ┆ 0x0371a0…0371c0 00 00 00 00 00 00 00 00 10 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ P ┆ 0x0371c0…0371e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x0371e0…037200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 48 44 52 31 20 44 41 54 41 20 20 20 20 20 20 20 20 ┆ HDR1 DATA ┆ 0x037200…037220 (14, 1, 7) 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 00 00 00 00 0a 00 40 02 17 ┆AAAAAAAAAAAAAAAAAAAAAAA @ ┆ 0x037220…037240 02 b3 20 00 02 95 02 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 ┆ AAAAAAAAAAAAAAAAAAAAAAAAA┆ 0x037240…037260 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 3c ca 5e 21 eb e1 73 23 72 b7 c3 cc 1f af 12 ┆AAAAAAAAAAAAAAAAA< ^! s#r ┆ 0x037260…037280 37 e1 c3 cc 1f 3e ff c5 47 e5 21 22 00 19 cd 95 1f 7d e6 7f 4f 29 7c 21 0c 00 19 be ca a0 21 e5 ┆7 > G !" å O)ø! ! ┆ 0x037280…0372a0 f5 21 21 00 19 7e b7 c4 0f 20 36 00 f1 e1 77 cd d0 1f 0f 3c c2 a0 21 78 b7 37 ca a9 21 cd 3a 20 ┆ !! ü 6 w < !x 7 ! : ┆ 0x0372a0…0372c0 21 20 00 19 71 23 7e b0 77 e1 f5 eb cd d9 1f 1a eb f1 c1 c9 11 5c 27 af 12 cd f1 22 23 fe 2b ca ┆! q#ü w Ø' "# + ┆ 0x0372c0…0372e0 b9 21 fe 2d c2 cd 21 3e ff 12 c3 b9 21 2b 11 ff ff eb 22 5a 27 eb cd f1 22 fe 23 23 ca 0f 22 2b ┆ ! - !> !+ "Z' " ## "+┆ 0x0372e0…037300 cd 29 22 11 01 00 d2 0f 22 1b 7e cd 29 22 d2 0a 22 23 e5 62 6b 19 29 19 29 da 15 22 d6 30 5f 16 ┆ )" " ü )" "# bk ) ) " 0_ ┆ 0x037300…037320 87 88 89 91 92 93 94 95 96 97 98 99 a2 a3 a4 a5 a6 a7 a8 a9 c0 6a d0 a1 07 00 01 02 03 04 05 06 ┆ j ┆ 0x037320…037340 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 40 5a 7f 7b 5b 6c 50 ┆ @Z æÆlP┆ 0x037340…037360 7d 4d 5d 5c 4e 6b 60 4b 61 f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 7a 5e 4c 7e 6e 6f 7c c1 c2 c3 c4 c5 c6 ┆åMÅØNk`Ka z^Lünoø ┆ 0x037360…037380 c7 c8 c9 d1 d2 d3 d4 d5 d6 d7 d8 d9 e2 e3 e4 e5 e6 e7 e8 e9 ad e0 bd 5f 6d 79 81 82 83 84 85 86 ┆ _my ┆ 0x037380…0373a0 87 88 89 91 92 93 94 95 96 97 98 99 a2 a3 a4 a5 a6 a7 a8 a9 c0 6a d0 a1 07 01 02 03 04 05 06 07 ┆ j ┆ 0x0373a0…0373c0 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 00 0d 09 16 05 12 01 0e 0a 17 06 13 02 ┆ ┆ 0x0373c0…0373e0 0f 0b 18 07 14 03 10 0c 19 08 15 04 11 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 ┆ ┆ 0x0373e0…037400 14 15 16 17 18 19 1a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x037400…037420 (14, 1, 8) c3 bc 01 43 4f 50 59 52 49 47 48 54 20 28 43 29 20 31 39 38 30 2c 20 44 49 47 49 54 41 4c 20 52 ┆ COPYRIGHT (C) 1980, DIGITAL R┆ 0x037420…037440 45 53 45 41 52 43 48 20 c3 35 01 c3 3c 01 c3 47 01 1a 1a 1a 1a af cd 89 01 c3 4c 01 3e 01 32 34 ┆ESEARCH 5 < G L > 24┆ 0x037440…037460 01 cd 89 01 c3 50 01 3e 01 cd 89 01 af 32 34 01 21 31 01 4e cd 92 01 2a 32 01 16 00 3a 0a 07 5f ┆ P > 24 !1 N *2 : _┆ 0x037460…037480 d5 e5 4a cd 9a 01 c1 c5 cd a2 01 3a 34 01 b7 c2 78 01 cd aa 01 c3 7b 01 cd b2 01 e1 11 80 00 19 ┆ J :4 x æ ┆ 0x037480…0374a0 d1 14 b7 c0 1d c2 60 01 c9 4f 2a 01 00 11 18 00 19 e9 2a 01 00 11 1b 00 19 e9 2a 01 00 11 1e 00 ┆ ` O* * * ┆ 0x0374a0…0374c0 19 e9 2a 01 00 11 21 00 19 e9 2a 01 00 11 24 00 19 e9 2a 01 00 11 27 00 19 0e 02 e9 31 0a 07 0e ┆ * ! * $ * ' 1 ┆ 0x0374c0…0374e0 78 db 14 e6 80 ca ca 01 0e 48 79 32 0a 07 cd b0 04 cd cc 03 21 83 06 71 23 70 21 c4 06 46 23 eb ┆x Hy2 ! q#p! F# ┆ 0x0374e0…037500 21 87 06 1a b7 ca ef 01 13 77 23 05 c2 e3 01 36 2d 23 36 24 cd e5 04 cd cc 03 21 a3 06 71 23 70 ┆! w# 6-#6$ ! q#p┆ 0x037500…037520 21 c4 06 3e 05 96 21 a5 06 ca 13 02 36 30 23 3d c2 0c 02 11 c5 06 1a b7 ca 21 02 77 23 13 c3 16 ┆! > ! 60#= ! w# ┆ 0x037520…037540 02 cd 7e 04 cd bf 03 3e 00 32 cd 06 cd 29 05 cd 43 05 cd 4f 05 cd bf 03 21 31 01 36 01 21 90 06 ┆ ü > 2 ) C O !1 6 ! ┆ 0x037540…037560 36 30 23 36 30 21 0b 07 22 32 01 cd 28 01 ca 57 02 cd 0d 06 c3 21 02 3a 31 01 fe 01 c2 c5 02 21 ┆60#60! "2 ( W ! :1 !┆ 0x037560…037580 0b 07 01 00 08 e5 c5 11 ab 06 0e 0c 1a 2f be c2 b6 02 23 13 1a 2f be c2 b6 02 23 13 0d c2 6c 02 ┆ / # / # l ┆ 0x037580…0375a0 c1 d1 e5 eb 2a 83 06 eb 73 23 36 16 23 72 23 36 00 23 eb 2a a3 06 eb 72 23 73 c1 c5 11 0b 0f 7b ┆ * s#6 #r#6 # * r#s æ┆ 0x0375a0…0375c0 91 6f 7a 98 67 22 ce 06 e1 0e 06 7e 12 13 23 0d c2 ab 02 c3 32 03 c1 e1 23 0b 79 b0 c2 65 02 cd ┆ oz g" ü # 2 # y e ┆ 0x0375c0…0375e0 9d 05 c3 21 02 fe 00 c2 32 03 21 00 00 01 00 3c e5 c5 11 ab 06 0e 0c e5 cd 2e 04 1a 2f be e1 c2 ┆ ! 2 ! < . / ┆ 0x0375e0…037600 23 03 23 13 e5 cd 2e 04 1a 2f be e1 c2 23 03 23 13 0d c2 d7 02 c1 d1 e5 cd 5c 04 e1 eb 2a ce 06 ┆# # . / # # Ø * ┆ 0x037600…037620 (14, 1, 9) 76 65 20 77 69 6c 6c 20 74 68 65 20 43 50 4d 20 64 69 73 6b 65 74 74 65 20 62 65 20 6f 6e 3f 20 ┆ve will the CPM diskette be on? ┆ 0x037620…037640 24 11 f5 12 0e 09 cd 05 00 0e 0a 11 48 1a 3e 01 12 cd 05 00 21 4a 1a 06 01 cd 98 02 3a 4a 1a d6 ┆$ H > !J :J ┆ 0x037640…037660 41 da 4c 13 21 a8 1a 46 b8 da 97 13 c3 76 13 0d 0a 07 44 72 69 76 65 20 6d 75 73 74 20 62 65 20 ┆A L ! F v Drive must be ┆ 0x037660…037680 69 6e 20 74 68 65 20 72 61 6e 67 65 20 6f 66 20 41 20 74 6f 20 24 11 4f 13 0e 09 cd 05 00 3a a9 ┆in the range of A to $ O : ┆ 0x037680…0376a0 1a 0e 02 5f cd 05 00 c3 8c 13 2e 24 11 8a 13 0e 09 cd 05 00 c3 d9 13 21 8e 1a 5e bb c2 f8 13 c3 ┆ _ .$ ! ^ ┆ 0x0376a0…0376c0 d1 13 0d 0a 07 43 50 4d 20 64 72 69 76 65 20 6d 75 73 74 20 62 65 20 64 69 66 66 65 72 65 6e 74 ┆ CPM drive must be different┆ 0x0376c0…0376e0 20 66 72 6f 6d 20 49 42 4d 20 64 72 69 76 65 2e 24 11 a2 13 0e 09 cd 05 00 c3 ed 13 20 50 6c 65 ┆ from IBM drive.$ Ple┆ 0x0376e0…037700 61 73 65 20 72 65 65 6e 74 65 72 2e 24 11 dc 13 0e 09 cd 05 00 c3 f2 12 32 8f 1a c3 24 14 0d 0a ┆ase reenter.$ 2 $ ┆ 0x037700…037720 50 6c 65 61 73 65 20 70 6c 61 63 65 20 43 50 4d 20 64 69 73 6b 65 74 74 65 20 69 6e 20 64 72 69 ┆Please place CPM diskette in dri┆ 0x037720…037740 76 65 20 24 11 fe 13 0e 09 cd 05 00 3a 8f 1a c6 41 0e 02 5f cd 05 00 c3 5d 14 3a 2e 20 54 68 65 ┆ve $ : A _ Å :. The┆ 0x037740…037760 6e 20 70 72 65 73 73 20 61 6e 79 20 6b 65 79 20 74 6f 20 63 6f 6e 74 69 6e 75 65 2e 24 11 3a 14 ┆n press any key to continue.$ : ┆ 0x037760…037780 0e 09 cd 05 00 0e 01 cd 05 00 0e 0d cd 05 00 21 8f 1a 5e c9 c5 d5 e5 21 95 1d 0e 80 1e 1a 73 23 ┆ ! ^ ! s#┆ 0x037780…0377a0 0d c2 7e 14 21 95 1d 22 98 1a 3e 80 32 a4 1a e1 d1 c1 c9 c5 d5 e5 7e 23 e5 c5 21 99 1f 4f 06 00 ┆ ü ! " > 2 ü# ! O ┆ 0x0377a0…0377c0 09 7e 12 13 c1 e1 05 c2 96 14 e1 d1 c1 c9 c5 d5 e5 7e 23 e5 c5 21 99 1e 4f 06 00 09 7e 12 13 c1 ┆ ü ü# ! O ü ┆ 0x0377c0…0377e0 e1 05 c2 b1 14 e1 d1 c1 c9 0a 0a 0d 0a 09 09 20 20 20 20 20 20 20 20 20 20 4c 69 66 65 62 6f 61 ┆ Lifeboa┆ 0x0377e0…037800 74 20 41 73 73 6f 63 69 61 74 65 73 0d 0a 09 09 20 49 42 4d 2f 43 50 4d 20 44 69 73 6b 65 74 74 ┆t Associates IBM/CPM Diskett┆ 0x037800…037820 (14, 1, 10) 20 20 20 20 20 20 20 30 38 30 20 30 31 30 30 31 20 37 33 30 32 36 20 20 20 20 20 20 20 20 20 20 ┆ 080 01001 73026 ┆ 0x037820…037840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 31 30 30 31 20 44 ┆ 01001 D┆ 0x037840…037860 44 52 31 20 44 41 54 41 30 39 20 20 20 20 20 20 20 20 20 20 20 20 20 30 38 30 20 37 34 30 30 31 ┆DR1 DATA09 080 74001┆ 0x037860…037880 20 37 33 30 32 36 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ 73026 ┆ 0x037880…0378a0 20 20 20 20 20 20 20 20 20 37 34 30 30 31 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ 74001 ┆ 0x0378a0…0378c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x1…] 0x0378e0…037900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 48 44 52 31 20 44 41 54 41 20 20 20 20 20 20 20 20 ┆ HDR1 DATA ┆ 0x037900…037920 20 20 20 20 20 20 20 30 38 30 20 30 31 30 30 31 20 37 33 30 32 36 20 20 20 20 20 20 20 20 20 20 ┆ 080 01001 73026 ┆ 0x037920…037940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 31 30 30 31 20 44 ┆ 01001 D┆ 0x037940…037960 44 52 31 20 44 41 54 41 30 39 20 20 20 20 20 20 20 20 20 20 20 20 20 30 38 30 20 37 34 30 30 31 ┆DR1 DATA09 080 74001┆ 0x037960…037980 20 37 33 30 32 36 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ 73026 ┆ 0x037980…0379a0 20 20 20 20 20 20 20 20 20 37 34 30 30 31 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ 74001 ┆ 0x0379a0…0379c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x1…] 0x0379e0…037a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 48 44 52 31 20 44 41 54 41 20 20 20 20 20 20 20 20 ┆ HDR1 DATA ┆ 0x037a00…037a20 (14, 1, 11) 63 74 65 72 73 20 61 72 65 20 63 6f 6d 70 61 72 65 64 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 ┆cters are compared according to ┆ 0x037a20…037a40 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 65 71 75 65 6e 63 65 3a 0d 20 20 20 20 73 70 61 63 ┆the following sequence: spac┆ 0x037a40…037a60 65 20 21 22 23 24 25 26 27 28 29 29 2a 2b 2c 2d 2e 2f 30 2d 39 3a 3b 3c 3d 3e 3f 40 41 2d 5a 5b ┆e !"#$%&'())*+,-./0-9:;<=>?@A-ZÆ┆ 0x037a60…037a80 5c 5d 5e 5f 60 61 2d 7a 7b 7c 7d 7e 20 20 20 20 28 68 69 67 68 65 73 74 29 0d 0d 45 6e 74 65 72 ┆ØÅ^_`a-zæøåü (highest) Enter┆ 0x037a80…037aa0 20 74 68 65 20 73 6d 61 6c 6c 65 73 74 20 61 63 63 65 70 74 61 62 6c 65 20 76 61 6c 75 65 20 66 ┆ the smallest acceptable value f┆ 0x037aa0…037ac0 6f 72 20 74 68 69 73 20 66 69 65 6c 64 2e 0d 00 20 20 20 45 6e 74 65 72 2f 63 68 61 6e 67 65 20 ┆or this field. Enter/change ┆ 0x037ac0…037ae0 74 68 65 20 6d 61 78 69 6d 75 6d 20 66 69 65 6c 64 20 76 61 6c 75 65 3a 00 41 20 66 69 65 6c 64 ┆the maximum field value: A field┆ 0x037ae0…037b00 20 69 73 20 63 6f 6d 70 61 72 65 64 20 6f 6e 20 61 20 63 68 61 72 61 63 74 65 72 20 62 79 20 63 ┆ is compared on a character by c┆ 0x037b00…037b20 68 61 72 61 63 74 65 72 20 62 61 73 69 73 20 74 6f 20 64 65 74 65 72 6d 69 6e 65 0d 61 63 63 65 ┆haracter basis to determine acce┆ 0x037b20…037b40 70 74 61 62 6c 69 74 79 2e 20 43 68 61 72 61 63 74 65 72 73 20 61 72 65 20 63 6f 6d 70 61 72 65 ┆ptablity. Characters are compare┆ 0x037b40…037b60 64 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 65 71 ┆d according to the following seq┆ 0x037b60…037b80 75 65 6e 63 65 3a 0d 20 20 20 20 73 70 61 63 65 20 21 22 23 24 25 26 27 28 29 29 2a 2b 2c 2d 2e ┆uence: space !"#$%&'())*+,-.┆ 0x037b80…037ba0 2f 30 2d 39 3a 3b 3c 3d 3e 3f 40 41 2d 5a 5b 5c 5d 5e 5f 60 61 2d 7a 7b 7c 7d 7e 20 20 20 20 28 ┆/0-9:;<=>?@A-ZÆØÅ^_`a-zæøåü (┆ 0x037ba0…037bc0 68 69 67 68 65 73 74 29 0d 0d 45 6e 74 65 72 20 74 68 65 20 6c 61 72 67 65 73 74 20 61 63 63 65 ┆highest) Enter the largest acce┆ 0x037bc0…037be0 70 74 61 62 6c 65 20 76 61 6c 75 65 20 66 6f 72 20 74 68 69 73 20 66 69 65 6c 64 2e 0d 00 fd 20 ┆ptable value for this field. ┆ 0x037be0…037c00 20 45 64 69 74 20 6d 61 73 6b 3f 20 28 59 2f 4e 29 fc 00 41 6e 20 65 64 69 74 20 6d 61 73 6b 20 ┆ Edit mask? (Y/N) An edit mask ┆ 0x037c00…037c20 (14, 1, 12) 19 7d b7 c2 2c 03 eb 21 cd 06 36 00 34 7b d6 00 47 7a de 0d da 1c 03 57 58 c3 0c 03 eb 22 ce 06 ┆ å , ! 6 4æ Gz WX " ┆ 0x037c20…037c40 c3 32 03 c1 e1 23 0b 78 b1 c2 d0 02 cd 78 05 c3 21 02 21 cd 06 7e b7 ca 44 03 35 c2 44 03 2a ce ┆ 2 # x x ! ! ü D 5 D * ┆ 0x037c40…037c60 06 cd 5c 04 21 0b 07 01 00 3c 3e e5 be c2 70 03 23 0b 79 b0 c2 4a 03 3a cd 06 b7 ca 64 03 cd 78 ┆ Ø ! <> p # y J : d x┆ 0x037c60…037c80 05 c3 21 02 11 8e 06 cd c4 03 cd 0b 04 c3 27 02 cd 2b 01 ca 7c 03 cd 33 06 c3 27 02 21 0b 43 22 ┆ ! ' + ø 3 ' ! C"┆ 0x037c80…037ca0 32 01 cd 2e 01 ca 8e 03 cd 5a 06 c3 27 02 21 0b 07 11 0b 43 01 00 3c 1a be c2 b9 03 23 13 0b 79 ┆2 . Z ' ! C < # y┆ 0x037ca0…037cc0 b0 c2 97 03 21 31 01 34 21 91 06 34 7e fe 3a da 45 02 36 30 2b 34 c3 45 02 cd c9 05 c3 27 02 0e ┆ !1 4! 4ü : E 60+4 E ' ┆ 0x037cc0…037ce0 01 c3 05 00 0e 09 c3 05 00 cd 06 05 11 c3 06 0e 0a cd 05 00 21 c4 06 7e b7 ca c9 03 23 5f 16 00 ┆ ! ü #_ ┆ 0x037ce0…037d00 19 36 00 21 c5 06 01 00 00 7e b7 c8 d6 30 fe 0a d2 c9 03 e5 c5 e1 29 29 29 09 09 e5 c1 e1 23 81 ┆ 6 ! ü 0 ))) # ┆ 0x037d00…037d20 4f 3e 00 88 47 da c9 03 c3 e9 03 2a a3 06 23 22 a3 06 7d b4 ca 28 04 21 a9 06 06 05 34 7e fe 3a ┆O> G * #" å ( ! 4ü :┆ 0x037d20…037d40 d8 36 30 2b 05 c2 1c 04 cd ee 05 c3 00 00 d5 7d e6 7f 5f 7d 17 7c 17 6f 26 00 d5 11 d0 06 19 d1 ┆ 60+ å _å ø o& ┆ 0x037d40…037d60 af 7e 3d 1f 67 3e 00 1f b3 6f 11 0b 07 19 d1 c9 e5 d5 f5 cd 2e 04 f1 77 d1 e1 23 c9 3a 83 06 cd ┆ ü= g> o . w # : ┆ 0x037d60…037d80 50 04 3e 16 cd 50 04 3a 84 06 cd 50 04 af cd 50 04 11 a4 06 1a cd 50 04 1b 1a cd 50 04 c9 11 84 ┆P > P : P P P P ┆ 0x037d80…037da0 04 c3 c4 03 0d 0a 49 4e 53 45 52 54 20 43 4f 4e 54 52 4f 4c 20 44 49 53 4b 45 54 54 45 20 49 4e ┆ INSERT CONTROL DISKETTE IN┆ 0x037da0…037dc0 20 41 2c 20 54 59 50 45 20 52 45 54 55 52 4e 24 11 b6 04 c3 c4 03 0d 0a 43 50 2f 4d 20 56 45 52 ┆ A, TYPE RETURN$ CP/M VER┆ 0x037dc0…037de0 20 32 2e 32 20 53 45 52 49 41 4c 49 5a 41 54 49 4f 4e 2c 0d 0a 4f 52 49 47 49 4e 20 4e 55 4d 42 ┆ 2.2 SERIALIZATION, ORIGIN NUMB┆ 0x037de0…037e00 45 52 3f 20 24 11 eb 04 c3 c4 03 0d 0a 53 54 41 52 54 49 4e 47 20 53 45 52 49 41 4c 20 4e 55 4d ┆ER? $ STARTING SERIAL NUM┆ 0x037e00…037e20 (14, 1, 13) 65 20 55 74 69 6c 69 74 79 20 56 65 72 73 69 6f 6e 20 31 2e 31 0d 0a 09 09 09 20 53 65 72 69 61 ┆e Utility Version 1.1 Seria┆ 0x037e20…037e40 6c 20 4e 75 6d 62 65 72 20 4c 42 2d 30 31 31 37 0d 0a 09 09 09 20 20 43 6f 70 79 72 69 67 68 74 ┆l Number LB-0117 Copyright┆ 0x037e40…037e60 28 63 29 20 31 39 37 39 0d 0a 0a 0a 09 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 61 20 67 ┆(c) 1979 This program is a g┆ 0x037e60…037e80 65 6e 65 72 61 6c 20 49 42 4d 2f 43 50 4d 20 64 69 73 6b 65 74 74 65 20 75 74 69 6c 69 74 79 2e ┆eneral IBM/CPM diskette utility.┆ 0x037e80…037ea0 20 49 74 0d 0a 09 70 65 72 66 6f 72 6d 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 66 75 6e ┆ It performs the following fun┆ 0x037ea0…037ec0 63 74 69 6f 6e 73 3a 0d 0a 0a 09 09 31 29 09 46 6f 72 6d 61 74 20 61 6e 20 49 42 4d 20 64 69 73 ┆ctions: 1) Format an IBM dis┆ 0x037ec0…037ee0 6b 65 74 74 65 20 64 69 72 65 63 74 6f 72 79 0d 0a 09 09 32 29 09 44 69 73 70 6c 61 79 20 61 6e ┆kette directory 2) Display an┆ 0x037ee0…037f00 20 49 42 4d 20 64 69 73 6b 65 74 74 65 20 64 69 72 65 63 74 6f 72 79 0d 0a 09 09 33 29 09 52 65 ┆ IBM diskette directory 3) Re┆ 0x037f00…037f20 61 64 20 61 20 43 50 4d 20 66 69 6c 65 2c 20 63 6f 6e 76 65 72 74 20 69 74 20 74 6f 20 49 42 4d ┆ad a CPM file, convert it to IBM┆ 0x037f20…037f40 20 66 6f 72 6d 61 74 20 61 6e 64 20 77 72 69 74 65 0d 0a 09 09 09 69 74 20 6f 6e 20 61 6e 20 49 ┆ format and write it on an I┆ 0x037f40…037f60 42 4d 20 64 69 73 6b 65 74 74 65 0d 0a 09 09 34 29 09 52 65 61 64 20 61 6e 20 49 42 4d 20 66 69 ┆BM diskette 4) Read an IBM fi┆ 0x037f60…037f80 6c 65 2c 20 63 6f 6e 76 65 72 74 20 69 74 20 74 6f 20 43 50 4d 20 66 6f 72 6d 61 74 20 61 6e 64 ┆le, convert it to CPM format and┆ 0x037f80…037fa0 20 77 72 69 74 65 0d 0a 09 09 09 69 74 20 6f 6e 20 61 20 43 50 4d 20 64 69 73 6b 65 74 74 65 0d ┆ write it on a CPM diskette ┆ 0x037fa0…037fc0 0a 0a 09 54 68 65 20 70 72 6f 67 72 61 6d 20 77 69 6c 6c 20 61 6c 77 61 79 73 20 66 6f 72 6d 61 ┆ The program will always forma┆ 0x037fc0…037fe0 74 20 61 6e 20 49 42 4d 20 64 69 73 6b 65 74 74 65 20 62 65 66 6f 72 65 20 77 72 69 74 69 6e 67 ┆t an IBM diskette before writing┆ 0x037fe0…038000 20 6f 6e 20 69 74 2e 0d 0a 0a 09 50 72 65 73 73 20 61 6e 79 20 6b 65 79 20 74 6f 20 62 65 67 69 ┆ on it. Press any key to begi┆ 0x038000…038020 (14, 1, 14) 20 20 20 20 20 20 20 30 38 30 20 30 31 30 30 31 20 37 33 30 32 36 20 20 20 20 20 20 20 20 20 20 ┆ 080 01001 73026 ┆ 0x038020…038040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 31 30 30 31 20 44 ┆ 01001 D┆ 0x038040…038060 44 52 31 20 44 41 54 41 30 39 20 20 20 20 20 20 20 20 20 20 20 20 20 30 38 30 20 37 34 30 30 31 ┆DR1 DATA09 080 74001┆ 0x038060…038080 20 37 33 30 32 36 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ 73026 ┆ 0x038080…0380a0 20 20 20 20 20 20 20 20 20 37 34 30 30 31 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ 74001 ┆ 0x0380a0…0380c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x1…] 0x0380e0…038100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 48 44 52 31 20 44 41 54 41 20 20 20 20 20 20 20 20 ┆ HDR1 DATA ┆ 0x038100…038120 20 20 20 20 20 20 20 30 38 30 20 30 31 30 30 31 20 37 33 30 32 36 20 20 20 20 20 20 20 20 20 20 ┆ 080 01001 73026 ┆ 0x038120…038140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 31 30 30 31 20 44 ┆ 01001 D┆ 0x038140…038160 44 52 31 20 44 41 54 41 30 39 20 20 20 20 20 20 20 20 20 20 20 20 20 30 38 30 20 37 34 30 30 31 ┆DR1 DATA09 080 74001┆ 0x038160…038180 20 37 33 30 32 36 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ 73026 ┆ 0x038180…0381a0 20 20 20 20 20 20 20 20 20 37 34 30 30 31 20 00 00 00 00 00 00 00 00 00 00 00 01 02 03 04 05 06 ┆ 74001 ┆ 0x0381a0…0381c0 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 ┆ !"#$%&┆ 0x0381c0…0381e0 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f 20 41 42 43 44 45 46 ┆'()*+,-./0123456789:;<=>? ABCDEF┆ 0x0381e0…038200 47 48 49 4a 2e 3c 28 2b 4f 26 51 52 53 54 55 56 57 58 59 21 24 2a 29 3b 5e 2d 2f 62 63 64 65 66 ┆GHIJ.<(+O&QRSTUVWXY!$*);^-/bcdef┆ 0x038200…038220 (14, 1, 15) 61 6c 6c 6f 77 73 20 79 6f 75 20 74 6f 20 63 6f 6e 74 72 6f 6c 20 74 68 65 20 65 6e 74 72 79 20 ┆allows you to control the entry ┆ 0x038220…038240 61 6e 64 20 63 6f 6e 74 65 6e 74 20 6f 66 20 61 20 66 69 65 6c 64 20 6f 6e 0d 61 20 63 68 61 72 ┆and content of a field on a char┆ 0x038240…038260 61 63 74 65 72 20 62 79 20 63 68 61 72 61 63 74 65 72 20 62 61 73 69 73 2e 20 20 54 68 69 73 20 ┆acter by character basis. This ┆ 0x038260…038280 69 6e 63 6c 75 64 65 73 20 69 6e 73 65 72 74 69 6e 67 20 63 6f 6e 73 74 61 6e 74 73 2c 0d 63 6f ┆includes inserting constants, co┆ 0x038280…0382a0 70 79 69 6e 67 20 64 61 74 61 20 66 72 6f 6d 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 66 6f 72 ┆pying data from the previous for┆ 0x0382a0…0382c0 6d 2c 20 72 65 71 75 69 72 69 6e 67 20 65 6e 74 72 79 20 61 74 20 63 65 72 74 61 69 6e 20 70 6f ┆m, requiring entry at certain po┆ 0x0382c0…0382e0 73 69 74 69 6f 6e 73 2c 0d 61 73 20 77 65 6c 6c 20 61 73 20 70 72 6f 76 69 64 69 6e 67 20 63 6f ┆sitions, as well as providing co┆ 0x0382e0…038300 6e 74 72 6f 6c 20 6f 76 65 72 20 74 68 65 20 61 63 74 75 61 6c 20 63 68 61 72 61 63 74 65 72 73 ┆ntrol over the actual characters┆ 0x038300…038320 20 74 68 61 74 20 6d 61 79 20 62 65 0d 65 6e 74 65 72 65 64 20 61 74 20 65 61 63 68 20 70 6f 73 ┆ that may be entered at each pos┆ 0x038320…038340 69 74 69 6f 6e 2e 0d 0d 41 20 59 20 61 6e 73 77 65 72 20 77 69 6c 6c 20 61 6c 6c 6f 77 20 79 6f ┆ition. A Y answer will allow yo┆ 0x038340…038360 75 20 74 6f 20 65 6e 74 65 72 20 61 6e 20 65 64 69 74 20 6d 61 73 6b 20 69 6e 20 74 77 6f 20 73 ┆u to enter an edit mask in two s┆ 0x038360…038380 74 65 70 73 3a 20 20 65 6e 74 72 79 0d 61 6e 64 20 63 6f 6e 74 65 6e 74 20 63 6f 6e 74 72 6f 6c ┆teps: entry and content control┆ 0x038380…0383a0 2e 0d 00 fd 45 6e 74 72 79 20 43 6f 6e 74 72 6f 6c 20 43 68 61 72 61 63 74 65 72 20 43 6f 64 65 ┆. Entry Control Character Code┆ 0x0383a0…0383c0 73 3a fd fd 20 20 21 20 3d 20 6d 75 73 74 20 65 6e 74 65 72 20 61 20 63 68 61 72 61 63 74 65 72 ┆s: ! = must enter a character┆ 0x0383c0…0383e0 20 20 20 20 20 20 5f 20 3d 20 6d 61 79 20 65 6e 74 65 72 20 6f 72 20 6c 65 61 76 65 20 62 6c 61 ┆ _ = may enter or leave bla┆ 0x0383e0…038400 6e 6b fd 20 20 58 20 3d 20 61 75 74 6f 6d 61 74 69 63 20 63 6f 70 79 20 20 20 20 20 20 20 20 20 ┆nk X = automatic copy ┆ 0x038400…038420 (15, 0, 1) 42 45 52 3f 20 24 11 0c 05 c3 c4 03 0d 0a 49 4e 56 41 4c 49 44 20 4e 55 4d 42 45 52 2c 20 54 52 ┆BER? $ INVALID NUMBER, TR┆ 0x038420…038440 59 20 41 47 41 49 4e 20 24 11 2f 05 c3 c4 03 0d 0a 53 45 52 49 41 4c 49 5a 49 4e 47 20 44 49 53 ┆Y AGAIN $ / SERIALIZING DIS┆ 0x038440…038460 4b 20 24 11 87 06 cd c4 03 11 a5 06 c3 c4 03 11 55 05 c3 c4 03 0d 0a 49 4e 53 45 52 54 20 4e 45 ┆K $ U INSERT NE┆ 0x038460…038480 57 20 44 49 53 4b 45 54 54 45 2c 20 54 59 50 45 20 52 45 54 55 52 4e 24 11 7e 05 c3 c4 03 0d 0a ┆W DISKETTE, TYPE RETURN$ ü ┆ 0x038480…0384a0 42 41 44 20 4d 4f 56 43 50 4d 2e 43 4f 4d 20 46 49 4c 45 2c 20 52 45 50 4c 41 43 45 24 11 a3 05 ┆BAD MOVCPM.COM FILE, REPLACE$ ┆ 0x0384a0…0384c0 c3 c4 03 0d 0a 4e 4f 4e 20 43 50 2f 4d 20 44 49 53 4b 45 54 54 45 2c 20 43 41 4e 4e 4f 54 20 53 ┆ NON CP/M DISKETTE, CANNOT S┆ 0x0384c0…0384e0 45 52 49 41 4c 49 5a 45 24 11 cf 05 c3 c4 03 0d 0a 56 45 52 49 46 49 43 41 54 49 4f 4e 20 45 52 ┆ERIALIZE$ VERIFICATION ER┆ 0x0384e0…038500 52 4f 52 2c 20 42 41 44 20 44 49 53 4b 24 11 f4 05 c3 c4 03 0d 0a 53 45 52 49 41 4c 20 4e 55 4d ┆ROR, BAD DISK$ SERIAL NUM┆ 0x038500…038520 42 45 52 20 4f 56 45 52 46 4c 4f 57 24 11 13 06 c3 c4 03 0d 0a 45 52 52 4f 52 20 4f 4e 20 53 4f ┆BER OVERFLOW$ ERROR ON SO┆ 0x038520…038540 55 52 43 45 20 44 49 53 4b 2c 20 52 45 50 4c 41 43 45 24 11 39 06 c3 c4 03 0d 0a 43 41 4e 4e 4f ┆URCE DISK, REPLACE$ 9 CANNO┆ 0x038540…038560 54 20 57 52 49 54 45 20 4e 45 57 20 44 49 53 4b 2c 20 52 45 50 4c 41 43 45 24 11 60 06 c3 c4 03 ┆T WRITE NEW DISK, REPLACE$ ` ┆ 0x038560…038580 0d 0a 43 41 4e 4e 4f 54 20 52 45 2d 52 45 41 44 20 4e 45 57 20 44 49 53 4b 2c 20 52 45 50 4c 41 ┆ CANNOT RE-READ NEW DISK, REPLA┆ 0x038580…0385a0 43 45 24 20 4d 0d 0a 30 30 30 30 30 2d 24 0d 0a 30 30 20 54 52 41 43 4b 53 20 56 45 52 49 46 49 ┆CE$ M 00000-$ 00 TRACKS VERIFI┆ 0x0385a0…0385c0 45 44 24 0d 0a 30 30 30 30 30 24 bb b6 ad df ba ad be df ab a6 af ba ac be a9 ba ad ba b1 df aa ┆ED$ 00000$ ┆ 0x0385c0…0385e0 ac ba ad 07 4c 49 5a 45 24 11 cf 05 c3 c4 03 0d 01 07 0d 13 19 05 0b 11 17 03 09 0f 15 02 08 0e ┆ LIZE$ ┆ 0x0385e0…038600 14 1a 06 0c 12 18 04 0a 10 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x038600…038620 (15, 0, 2) 02 11 01 14 02 0c 00 16 02 11 17 3c 02 11 1a 3e 02 1a 00 02 61 17 00 44 61 12 00 d2 63 03 00 ee ┆ < > a Da c ┆ 0x038620…038640 63 7f 00 1f 64 1f 00 1f 64 07 00 40 64 19 00 40 02 11 7f 42 02 11 1f 42 02 11 19 44 02 14 00 89 ┆c d d @d @ B B D ┆ 0x038640…038660 64 16 00 9f 61 02 00 89 67 11 11 3a 02 0e 00 a5 61 09 00 d1 64 0d 00 55 63 10 00 c5 61 0b 08 18 ┆d a g : a d Uc a ┆ 0x038660…038680 02 0b 42 5f 66 0b 4b 60 66 0b 30 64 66 0b 31 65 66 0b 32 66 66 0b 33 67 66 0b 34 68 66 0b 35 69 ┆ B_f K`f 0df 1ef 2ff 3gf 4hf 5i┆ 0x038680…0386a0 66 0b 36 6a 66 0b 37 6b 66 0b 38 6c 66 0b 39 6d 66 0b 16 0c 02 0b 03 0e 02 0b 19 10 02 0b 1a 88 ┆f 6jf 7kf 8lf 9mf ┆ 0x0386a0…0386c0 32 15 00 bb 30 0b 18 00 02 0b 04 02 02 0b 13 04 02 0b 11 06 02 0b 12 08 02 0b 17 0a 02 0b 0a 0a ┆2 0 ┆ 0x0386c0…0386e0 01 0b 06 74 29 0b 10 06 01 0b 0c 12 01 0b 0f 0e 01 0b 05 10 01 0f 0c 1e 02 0f 12 20 02 0f 09 22 ┆ t) "┆ 0x0386e0…038700 02 0f 0e 24 02 0f 06 34 02 0f 17 26 02 0f 0a 28 02 0f 16 2a 02 0f 04 2c 02 0f 14 2e 02 0f 10 30 ┆ $ 4 & ( * , . 0┆ 0x038700…038720 02 0f 05 36 02 0f 08 38 02 0f 07 46 02 0f 18 1c 02 0f 03 32 02 0f 13 1a 02 0a 04 a4 00 0a 13 a6 ┆ 6 8 F 2 ┆ 0x038720…038740 00 0a 06 a8 00 0a 10 aa 00 0a 02 ae 00 0a 0d b0 00 0a 09 b6 00 0a 16 b2 00 0a 12 ac 00 00 00 00 ┆ ┆ 0x038740…038760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x038760…038780 00 00 10 00 28 45 1a 00 ae 29 17 00 b5 29 16 00 88 32 00 00 00 00 00 30 04 7d 04 62 06 00 13 04 ┆ (E ) ) 2 0 å b ┆ 0x038780…0387a0 10 06 1a 17 15 1b 00 00 00 00 00 00 00 00 01 02 ff 03 02 00 00 00 02 0d 0a 00 00 00 00 00 00 00 ┆ ┆ 0x0387a0…0387c0 00 02 0d 00 00 00 00 00 00 00 00 00 00 00 00 01 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x0387c0…0387e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x0387e0…038800 00 00 00 00 00 00 00 01 0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x038800…038820 (15, 0, 3) 67 0a b7 cc 56 0c c3 61 03 cd c2 0b cd fb 30 da 10 11 cc 20 05 cd 63 0c cd fd 35 da 10 11 af c9 ┆g V a 0 c 5 ┆ 0x038820…038840 3a 69 11 e6 06 c8 e6 04 3a 5c 0a c2 43 05 fe 04 ca 39 05 3a 7f 0a e6 02 c0 e1 21 83 43 cd 77 3a ┆:i :Ø C 9 : ! C w:┆ 0x038840…038860 f6 ff c9 fe 04 ca 4d 05 3a 67 0a b7 c0 e1 cd c3 1f c3 09 05 21 71 43 cd 4d 0a da 61 03 c2 c1 06 ┆ M :g !qC M a ┆ 0x038860…038880 cd 4d 38 da 10 11 cd 09 05 ca 61 03 cd 76 38 c3 c1 06 3a a7 18 b7 c2 ba 04 21 73 43 cd 4d 0a c2 ┆ M8 a v8 : !sC M ┆ 0x038880…0388a0 c1 06 dc 4d 38 da 10 11 c3 61 03 cd af 05 cd 09 05 c2 a3 05 cd 56 0c cd bc 05 cd 4d 38 da 10 11 ┆ M8 a V M8 ┆ 0x0388a0…0388c0 c3 61 03 cd bc 05 cd 7d 16 d2 a6 05 c3 81 03 2a 79 0a cd 68 2d 2a 65 0a cd 72 2d c9 2a 65 0a cd ┆ a å *y h-*e r- *e ┆ 0x0388c0…0388e0 68 2d 2a 79 0a cd 72 2d c9 4f 3a 5c 0a fe 04 c8 79 37 c9 3e ff c3 d9 05 af 32 7d 0a 16 00 2a 6d ┆h-*y r- O:Ø y7 > 2å *m┆ 0x0388e0…038900 11 3e 0d cd 3b 06 1e 00 43 7e cd 56 06 23 cd 3b 06 1c 3a 6b 11 bb c2 e9 05 06 00 14 3a 6c 11 ba ┆ > ; Cü V # ; :k :l ┆ 0x038900…038920 ca 0e 06 3e 0a cd 3b 06 cd e0 41 ca e1 05 3e 0c cd 3b 06 cd e0 41 c2 31 06 3a 5c 0a fe 02 c2 31 ┆ > ; A > ; A 1 :Ø 1┆ 0x038920…038940 06 af 0e bf cd 23 08 cd 31 09 cd 59 42 04 c2 dc 05 cd e0 41 c4 1d 41 af c3 75 03 04 fe 20 c8 d5 ┆ # 1 YB A A u ┆ 0x038940…038960 f5 0e 05 05 ca 4f 06 1e 20 cd 54 39 c3 43 06 f1 5f cd 54 39 d1 c9 e6 7f fe 20 d2 5f 06 3e 20 e5 ┆ O T9 C _ T9 _ > ┆ 0x038960…038980 2a 7d 0a 2c e1 c0 e5 21 97 06 35 e1 c0 e5 c5 4f af cd a1 0b e5 cd 34 0c 46 23 7e bb 23 7e e1 c2 ┆*å , ! 5 O 4 F#ü #ü ┆ 0x038980…0389a0 86 06 ba ca 8f 06 cd 65 0b c2 74 06 01 20 01 78 32 97 06 79 c1 e1 c9 01 3a 5f 0a b7 ca ab 06 2a ┆ e t x2 y :_ *┆ 0x0389a0…0389c0 2d 2c 5e 1d 21 5e 0a 73 c3 3c 04 2a a0 18 e5 cd 15 12 c2 b7 06 d1 e5 cd 65 0b c2 af 06 e1 c3 78 ┆-,^ !^ s < * e x┆ 0x0389c0…0389e0 03 3a 5f 0a b7 c4 68 09 c3 75 03 3a 5f 0a b7 c2 4e 04 c3 82 04 cd f7 06 cd 26 11 cd d3 3c cd 53 ┆ :_ h u :_ N & < S┆ 0x0389e0…038a00 0b 2a 7b 0a 22 2c 03 af 32 80 00 32 0d 44 c3 4c 03 cd f7 06 c3 61 03 cd f4 07 cd 0e 09 c9 cd f7 ┆ *æ ", 2 2 D L a ┆ 0x038a00…038a20 (15, 0, 4) fe 11 d2 9c 0c 11 5c 00 12 13 06 08 cd 18 0d 06 03 7e b7 0e 01 c2 f9 0c 7e b7 3e 20 ca 32 0d 7e ┆ Ø ü ü > 2 ü┆ 0x038a20…038a40 fe 03 ca 84 0e fe 30 d8 fe 5b d0 d6 3a fe 07 d8 7e 23 12 13 05 c2 18 0d af 12 c9 47 05 fa b8 0c ┆ 0 Æ : ü# G ┆ 0x038a40…038a60 23 7e fe 20 ca 3c 0d 04 78 fe 0c d2 b8 0c 11 43 11 12 13 cd b7 38 af 12 c3 c9 0c 22 6d 11 01 04 ┆#ü < x C 8 "m ┆ 0x038a60…038a80 00 21 69 11 cd 22 0e 3a 6c 11 47 3a 6b 11 cd 71 42 42 4b 2a 6d 11 cd 22 0e 22 6f 11 11 01 00 0e ┆ !i " :l G:k qBBK*m " "o ┆ 0x038a80…038aa0 02 e5 cd 22 0e e3 4e eb 09 eb e1 0e 01 cd 22 0e 2b 4e 23 79 b7 ca ad 0d fe 0d d2 a9 0d c5 0e 01 ┆ " N " +N#y ┆ 0x038aa0…038ac0 cd 22 0e c1 41 2b 4e 23 0b 0b c3 81 0d eb af c9 11 5c 00 cd 2a 39 21 80 00 36 00 c0 3a 5c 0a fe ┆ " A+N# Ø *9! 6 :Ø ┆ 0x038ac0…038ae0 05 c4 9f 0a 21 00 01 22 50 11 01 08 00 21 5e 11 cd 22 0e cd cb 0e 21 5f 43 cd c7 40 eb 21 43 11 ┆ ! "P !^ " !_C @ !C ┆ 0x038ae0…038b00 46 4e 23 cd b7 38 3e 0b 91 3c 4f 3e 20 12 13 0d c2 ed 0d 21 5d 00 11 5e 11 06 08 cd b7 38 03 2a ┆FN# 8> <O> !Å ^ 8 *┆ 0x038b00…038b20 2c 03 22 2d 2c cd 22 0e 2b 7e 87 4f 23 c4 22 0e 22 56 11 eb 2a 2d 2c 01 78 00 09 cd 5b 0d 22 29 ┆, "-, " +ü O# " "V *-, x Æ ")┆ 0x038b20…038b40 2c c9 d5 e5 cd 40 0e d1 2a 50 11 7c 3d cc 62 0e 7e 12 23 13 0b 78 b1 c2 2b 0e 22 50 11 eb d1 c9 ┆, @ *P ø= b ü # x + "P ┆ 0x038b40…038b60 09 22 52 11 eb cd 5a 0e 2a 06 00 25 19 d2 54 0e 22 54 11 c9 11 93 43 c3 75 0e 7b 2f 5f 7a 2f 57 ┆ "R Z * % T "T C u æ/_z/W┆ 0x038b60…038b80 13 c9 d5 c5 0e 14 11 5c 00 cd 54 39 c1 d1 21 80 00 c8 11 8b 43 eb 3a f4 39 c6 41 32 01 44 01 0d ┆ Ø T9 ! C : 9 A2 D ┆ 0x038b80…038ba0 01 cd 6a 3f cd 3d 3a cd 53 0b c3 00 00 11 5c 00 06 0c cd b7 38 11 80 00 0e 1a cd 54 39 11 5c 00 ┆ j? =: S Ø 8 T9 Ø ┆ 0x038ba0…038bc0 cd 2a 39 11 91 43 c2 75 0e 21 00 01 22 50 11 2a c0 39 01 09 00 cd 22 0e 2a c0 39 cd 5b 0d 2a 52 ┆ *9 C u ! "P * 9 " * 9 Æ *R┆ 0x038bc0…038be0 11 22 c0 39 2a 54 11 22 c2 39 c9 3a 5e 11 b7 f0 3e 03 c3 f7 0e 21 43 11 11 80 00 46 23 cd b7 38 ┆ " 9*T " 9 :^ > !C F# 8┆ 0x038be0…038c00 af 12 21 8d 43 01 00 01 cd 6a 3f 21 80 00 36 00 e6 5f fe 41 c0 3e ff 21 19 44 c3 b3 0a 2a 29 2c ┆ ! C j?! 6 _ A > ! D *),┆ 0x038c00…038c20 (15, 0, 5) 0d 72 65 63 6f 72 64 2e 0d 00 20 66 72 6f 6d 20 74 68 65 20 66 69 65 6c 64 20 62 65 66 6f 72 65 ┆ record. from the field before┆ 0x038c20…038c40 20 74 68 65 20 64 61 74 61 20 69 73 20 72 65 63 6f 72 64 65 64 2e 0d 0d 41 20 59 20 61 6e 73 77 ┆ the data is recorded. A Y answ┆ 0x038c40…038c60 65 72 20 68 65 72 65 20 77 69 6c 6c 20 69 6e 63 6c 75 64 65 20 65 64 69 74 20 63 68 61 72 61 63 ┆er here will include edit charac┆ 0x038c60…038c80 74 65 72 73 20 61 73 20 77 65 6c 6c 20 61 73 20 64 61 74 61 20 69 6e 20 74 68 65 20 64 69 73 6b ┆ters as well as data in the disk┆ 0x038c80…038ca0 66 69 65 64 20 66 69 65 6c 64 2c 0d 61 20 64 6f 6c 6c 61 72 20 73 69 67 6e 20 77 69 6c 6c 20 62 ┆fied field, a dollar sign will b┆ 0x038ca0…038cc0 65 20 61 64 64 65 64 20 74 6f 20 74 68 65 20 6c 65 66 74 20 6f 66 20 74 68 65 20 64 61 74 61 20 ┆e added to the left of the data ┆ 0x038cc0…038ce0 65 6e 74 65 72 65 64 2e 0d 0d 41 20 59 20 61 6e 73 77 65 72 20 77 69 6c 6c 20 70 72 6f 76 69 64 ┆entered. A Y answer will provid┆ 0x038ce0…038d00 65 20 61 20 66 6c 6f 61 74 69 6e 67 20 63 68 61 72 61 63 74 65 72 20 66 6f 72 20 74 68 65 20 66 ┆e a floating character for the f┆ 0x038d00…038d20 06 00 1c 00 19 01 01 cc 02 d8 00 be cc 03 d9 da c8 a1 2e d8 d9 9b be b3 08 01 ff 07 fe ff 00 00 ┆ . ┆ 0x038d20…038d40 00 00 00 00 00 00 00 00 00 00 08 8b a1 0c d8 d9 9b d8 d9 9b be 61 95 41 82 bf d9 01 82 cc 02 b9 ┆ a A ┆ 0x038d40…038d60 f6 ad 00 02 36 00 04 00 02 00 09 00 46 00 1a 01 d9 d8 cf 03 b6 02 03 a6 20 46 49 4c 45 4e 41 4d ┆ 6 F FILENAM┆ 0x038d60…038d80 45 20 3a 20 3c 20 63 2f 72 20 66 6f 72 20 55 6e 69 74 20 49 2f 4f 20 3e 20 d7 00 cd 00 13 9e 00 ┆E : < c/r for Unit I/O > ┆ 0x038d80…038da0 b6 02 02 c6 05 50 cd 00 12 9e 00 b6 02 02 cd 00 15 9e 00 c6 05 00 be 00 c5 a1 f6 da 00 cd 00 06 ┆ P ┆ 0x038da0…038dc0 9e 00 da c6 05 01 00 cd 00 05 9e 22 00 cb a1 34 d7 a6 21 45 72 72 6f 72 20 6f 70 65 6e 69 6e 67 ┆ " 4 !Error opening┆ 0x038dc0…038de0 20 66 69 6c 65 2e 20 20 49 6f 72 65 73 75 6c 74 20 69 73 20 9e 22 00 cf 12 db a2 04 00 9a d9 d8 ┆ file. Ioresult is " ┆ 0x038de0…038e00 cf 03 b9 42 db cc 2f ca 2f a2 04 01 9a ca 2f a2 03 00 9a c6 05 cf 1a ca 2f a2 05 c6 05 aa 50 ca ┆ B / / / / P ┆ 0x038e00…038e20 (15, 0, 6) 00 00 00 00 00 00 00 00 00 00 00 2d 5f 00 00 c9 00 00 c9 00 00 00 00 00 00 00 00 b7 c9 5f 0e 05 ┆ -_ _ ┆ 0x038e20…038e40 cd 05 00 b7 c9 00 37 c9 db 05 00 e6 01 ee 01 37 c0 b7 c9 d3 04 00 c9 db 05 00 e6 02 ee 02 37 c0 ┆ 7 7 7 ┆ 0x038e40…038e60 db 04 00 b7 c9 00 00 00 00 00 00 00 00 b7 c9 00 00 c9 00 37 c9 00 00 00 00 b7 c9 cd 77 07 cd a7 ┆ 7 w ┆ 0x038e60…038e80 20 c3 6e 07 cd 77 07 cd 10 1d c4 27 1d 57 78 32 03 00 7a b7 c0 37 c9 57 3a 03 00 47 e6 fc f6 01 ┆ n w ' Wx2 z 7 W: G ┆ 0x038e80…038ea0 c3 6f 07 00 00 00 00 7f 00 00 00 00 00 00 02 1b 02 1b 1e 00 00 01 00 7e 00 02 1b 1f 00 00 00 01 ┆ o ü ┆ 0x038ea0…038ec0 00 7e 00 02 1b 35 00 00 02 1b 36 00 00 01 20 00 00 00 01 08 00 00 00 01 0a 00 00 00 02 1b 0a 00 ┆ ü 5 6 ┆ 0x038ec0…038ee0 00 02 1b 59 00 02 1b 5a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 52 43 44 54 54 56 56 32 ┆ Y Z RCDTTVV2┆ 0x038ee0…038f00 43 43 54 54 42 54 32 53 54 54 54 54 54 54 54 54 54 54 43 42 54 54 54 54 56 55 55 55 56 55 55 56 ┆CCTTBT2STTTTTTTTTTCBTTTTVUUUVUUV┆ 0x038f00…038f20 56 53 53 56 55 66 56 56 54 56 56 54 55 56 56 67 56 56 55 54 56 54 56 55 54 54 54 54 54 54 53 54 ┆VSSVUfVVTVVTUVVgVVUTVTVUTTTTTTST┆ 0x038f20…038f40 54 52 52 54 52 66 54 54 54 54 53 53 53 54 54 66 54 54 54 54 56 54 56 55 36 02 4e 00 98 00 9c 00 ┆TRRTRfTTTTSSSTTfTTTTVTVU6 N ┆ 0x038f40…038f60 9b 00 a8 00 b5 00 49 00 51 00 59 00 64 00 58 00 66 00 6a 00 6c 00 79 00 b0 00 b3 00 d9 00 1c 01 ┆ I Q Y d X f j l y ┆ 0x038f60…038f80 25 01 32 01 37 01 3f 01 51 01 58 01 69 01 76 01 84 01 98 01 a7 01 ae 01 b4 01 bd 01 bc 01 a5 01 ┆% 2 7 ? Q X i v ┆ 0x038f80…038fa0 ba 01 00 00 00 00 59 4e 20 40 40 40 40 20 00 20 6f 6e 20 28 cf c6 c6 29 00 20 6f 66 66 20 28 cf ┆ YN @@@@ on ( ) off ( ┆ 0x038fa0…038fc0 ce 29 00 0d 0a 00 20 49 4e 54 45 52 4e 41 4c 20 45 52 52 4f 52 00 46 41 54 41 4c 00 a0 a0 a0 00 ┆ ) INTERNAL ERROR FATAL ┆ 0x038fc0…038fe0 20 4e 41 4d 45 20 4f 46 20 15 20 54 4f 20 00 46 49 4c 45 00 4d 45 52 47 45 2d 00 50 72 69 6e 74 ┆ NAME OF TO FILE MERGE- Print┆ 0x038fe0…039000 20 61 20 66 69 6c 65 20 20 00 a0 d3 d4 cf d0 a0 d0 d2 c9 ce d4 a0 20 20 00 c3 cf ce d4 c9 ce d5 ┆ a file ┆ 0x039000…039020 (15, 0, 7) 06 cd 73 07 21 0d 44 7e b7 c2 26 07 36 ff cd 8d 0e 11 71 0a cd 7e 07 2a c0 39 22 61 0a 2a c2 39 ┆ s ! Dü & 6 q ü * 9"a * 9┆ 0x039020…039040 22 63 0a c3 61 03 21 71 0a cd a4 07 c3 61 03 cd ad 07 ca 41 07 2a 71 11 22 65 0a cd 68 2d cd d5 ┆"c a !q a A *q "e h- ┆ 0x039040…039060 09 cd 92 07 2a 2b 2c 3a 5c 0a fe 05 ca 5c 07 fe 00 ca 61 03 7c b5 ca 3a 08 c3 61 03 7c b5 c2 6a ┆ *+,:Ø Ø a ø : a ø j┆ 0x039060…039080 07 cd af 05 cd eb 2c c3 61 03 21 7f 43 cd 77 3a c3 fe 06 21 5c 0a 7e 36 08 11 68 0a 12 13 21 69 ┆ , a ! C w: !Ø ü6 h !i┆ 0x039080…0390a0 11 06 08 cd b7 38 c9 3a a8 18 b7 c8 3a 5c 0a fe 08 c0 cd 9c 07 cd 0e 09 cd 6d 21 c9 21 68 0a 7e ┆ 8 : :Ø m! !h ü┆ 0x0390a0…0390c0 32 5c 0a 23 11 69 11 06 08 cd b7 38 c9 cd 63 0c 2a 27 2c 11 5c 00 af 12 7e fe 0d c8 d6 41 23 da ┆2Ø # i 8 c *', Ø ü A# ┆ 0x0390c0…0390e0 c7 07 3c 12 36 3a 23 e5 d5 da ce 07 2b 2b 01 0d 0e eb 2a 6d 43 cd b2 40 eb cd e2 07 d1 e1 13 01 ┆ < 6:# ++ *mC @ ┆ 0x0390e0…039100 0d 0b 7e 23 b9 c2 eb 07 3e 20 2b 12 13 05 c2 e2 07 23 b7 c9 21 67 0a 7e b7 c8 36 00 cd ac 30 2a ┆ ü# > + # !g ü 6 0*┆ 0x039100…039120 61 0a 22 c0 39 2a 63 0a 22 c2 39 2a 65 0a 22 71 11 cd 72 2d c9 3e 40 c3 1b 08 af 0e bf cd 23 08 ┆a " 9*c " 9*e "q r- >@ # ┆ 0x039120…039140 c3 61 03 47 21 5b 0a 7e a1 b0 77 c9 3e 80 c3 32 08 af 0e 7f cd 23 08 c3 47 08 06 00 c3 5a 08 06 ┆ a G!Æ ü w > 2 # G Z ┆ 0x039140…039160 01 c3 ca 08 cd 5d 0c 06 02 af 32 60 0a c3 ca 08 06 03 c3 ca 08 06 04 cd eb 2c cd d0 08 cd 6b 08 ┆ Å 2` , k ┆ 0x039160…039180 ca fe 06 c3 44 07 06 05 c3 57 08 3a 5c 0a fe 04 ca 83 08 fe 05 ca 83 08 fe 00 c0 3a 69 11 e6 01 ┆ D W :Ø :i ┆ 0x039180…0391a0 fe 01 c0 3a 67 0a b7 c9 2a 2b 2c eb 21 5c 0a 7e fe ff c2 a6 08 d5 06 00 cd d0 08 d1 7a b3 c4 7d ┆ :g *+, !Ø ü z å┆ 0x0391a0…0391c0 16 d8 0e 0a 37 c9 7e fe 08 c8 cd 6b 08 c2 b7 08 cd 7d 16 d2 b0 08 c9 7e fe 00 c8 fe 05 c8 7a b3 ┆ 7 ü k å ü z ┆ 0x0391c0…0391e0 c0 21 79 43 cd 77 3a c3 b0 08 cd d0 08 c3 61 03 21 5c 0a 70 eb 3a 5c 0a fe 08 c2 e0 08 3a 68 0a ┆ !yC w: a !Ø p :Ø :h ┆ 0x0391e0…039200 fe 02 da f3 08 c2 f2 08 3a 5b 0a e6 80 3e 02 ca f3 08 3c 2a 65 43 44 4d 2a 63 43 cd b2 40 b7 ca ┆ :Æ > <*eCDM*cC @ ┆ 0x039200…039220 (15, 0, 8) 44 4d 2a 52 11 22 58 11 22 5a 11 e5 cd 40 0e cd ab 18 cd 56 0c 13 e1 eb cd c8 2d 44 4d 2a 52 11 ┆DM*R "X "Z @ V -DM*R ┆ 0x039220…039240 22 5a 11 cd 40 0e 44 4d 2a 52 11 cd f1 2c 11 5d 11 3a 5c 0a d6 05 ca 3b 0f af 12 cd 2a 10 cd 8c ┆"Z @ DM*R , Å :Ø ; * ┆ 0x039240…039260 2d 22 71 11 af 32 73 11 cd a1 0b cd b8 11 e5 21 00 00 22 29 2c 3a 82 18 e6 40 ca 0b 10 2a 94 18 ┆-"q 2s ! "),: @ * ┆ 0x039260…039280 23 23 7e 3d ca 0b 10 21 98 18 22 2d 2c 36 01 23 3a 89 18 77 23 3a 7d 18 77 2a 94 18 eb 3a 82 18 ┆##ü= ! "-,6 #: w#:å w* : ┆ 0x039280…0392a0 e6 80 3e 07 c2 89 0f 3e 03 cd 2a 10 cd 8c 2d 22 96 18 2a 94 18 11 5c 00 06 09 cd b7 38 3a 73 11 ┆ > > * -" * Ø 8:s ┆ 0x0392a0…0392c0 4f af 32 9b 18 47 cd a1 0b e5 04 cd 34 0c eb 21 04 00 19 7e e6 04 ca d2 0f 21 0d 00 19 79 be c2 ┆O 2 G 4 ! ü ! y ┆ 0x0392c0…0392e0 d2 0f 3a 9b 18 77 78 32 9b 18 21 04 00 19 7e e6 fb 77 e1 cd 65 0b c2 a9 0f 11 96 18 2a 94 18 eb ┆ : wx2 ! ü w e * ┆ 0x0392e0…039300 06 06 cd b7 38 2a a0 18 cd b8 11 3a 82 18 e6 40 ca 01 10 2a 94 18 11 5c 00 06 09 cd 1d 10 ca a1 ┆ 8* : @ * Ø ┆ 0x039300…039320 0f 2a a0 18 0c cd 65 0b c2 e8 0f 21 73 11 34 e1 cd 65 0b c2 4b 0f 2a 71 11 cd 72 2d c9 1a be c0 ┆ * e !s 4 e K *q r- ┆ 0x039320…039340 23 13 05 c2 1d 10 c9 cd 65 10 21 29 44 d5 cd 45 10 d1 2a 44 2c 22 32 2c 21 2c 44 cd 45 10 cd 67 ┆# e !)D E *D,"2,!,D E g┆ 0x039340…039360 2c c2 11 11 c9 4f cd 72 10 79 c5 cd cf 2d c1 ca 63 10 c5 1a b7 cc b7 10 12 79 f6 80 cd f0 2d c2 ┆, O r y - c y - ┆ 0x039360…039380 11 11 c1 79 c9 d5 f5 0e 0d cd 54 39 cd 53 0b f1 d1 c9 d5 c5 eb 01 09 00 09 eb 06 03 cd b7 38 c1 ┆ y T9 S 8 ┆ 0x039380…0393a0 d1 c9 2a 32 2c 7e 32 5d 11 cd 8f 10 2a 44 2c e5 eb 21 10 00 45 19 eb cd b7 38 23 11 5e 11 06 08 ┆ *2,ü2Å *D, ! E 8# ^ ┆ 0x0393a0…0393c0 eb cd b7 38 d1 0e 17 cd 54 39 c9 e5 c5 21 a3 43 06 01 cd b9 3f c1 e1 e5 d5 c5 21 80 00 06 08 13 ┆ 8 T9 ! C ? ! ┆ 0x0393c0…0393e0 cd 01 11 3e 2e cd 0d 11 06 03 1a f5 cd 01 11 36 00 f1 fe 4e 21 9f 43 06 08 c2 e0 10 21 a1 43 04 ┆ >. 6 N! C ! C ┆ 0x0393e0…039400 cd b9 3f cd 1d 41 4f cd 23 3e 79 c1 d1 e1 fe 03 ca 00 00 e6 5f d6 41 fa ab 10 fe 10 d2 ab 10 3c ┆ ? AO #>y _ A <┆ 0x039400…039420 (15, 0, 9) e1 22 9f 04 31 ca 04 11 61 03 cd 47 03 11 7f 03 cd 47 03 cd 4c 03 0e 00 fe 41 ca 23 01 fe 42 c2 ┆ " 1 a G G L A # B ┆ 0x039420…039440 0d 01 0c 79 32 a4 04 11 9b 03 cd 47 03 cd 4c 03 0e 00 fe 41 ca 3d 01 fe 42 c2 27 01 0c 79 32 a5 ┆ y2 G L A = B ' y2 ┆ 0x039440…039460 04 2a 01 00 11 34 00 19 46 23 4e 21 a4 04 be 3e 00 ca 78 01 78 b9 11 bc 03 c4 3e 03 c5 11 9c 04 ┆ * 4 F#N! > x x > ┆ 0x039460…039480 cd 47 03 11 d3 03 cd 47 03 cd 4c 03 11 fa 03 cd 47 03 cd 4c 03 c1 3e 01 32 a6 04 79 fe 00 c2 93 ┆ G G L G L > 2 y ┆ 0x039480…0394a0 01 3e 00 32 a1 04 3e 4c 32 a2 04 3e 1a 32 a3 04 c3 c1 01 fe 08 c2 aa 01 3e 01 32 a1 04 3e 3d 32 ┆ > 2 >L2 > 2 > 2 >=2┆ 0x0394a0…0394c0 a2 04 3e 78 32 a3 04 c3 c1 01 fe 10 11 bc 03 c4 3e 03 3e 01 32 a1 04 3e 1f 32 a2 04 3e 48 32 a3 ┆ >x2 > > 2 > 2 >H2 ┆ 0x0394c0…0394e0 04 3a a1 04 32 a7 04 3e 00 32 a8 04 3a a6 04 b7 c2 dc 01 11 d3 03 cd 47 03 cd 4c 03 3a a4 04 cd ┆ : 2 > 2 : G L : ┆ 0x0394e0…039500 05 03 21 68 01 22 a9 04 11 cb 04 d5 cd 22 03 3a a7 04 4f cd 0e 03 3a a8 04 4f 3a a7 04 47 c5 cd ┆ !h " " : O : O: G ┆ 0x039500…039520 18 03 cd 2c 03 11 26 04 b7 c4 51 03 c1 0c 3a a3 04 b9 c2 25 02 3a a2 04 b8 ca 49 02 04 0e 00 c5 ┆ , & Q : % : I ┆ 0x039520…039540 48 cd 0e 03 c1 c5 cd 18 03 2a a9 04 2b 22 a9 04 c1 7c b7 c2 3b 02 7d b7 ca 49 02 d1 21 80 00 19 ┆H * +" ø ; å I ! ┆ 0x039540…039560 eb d5 c5 cd 22 03 c3 02 02 d1 3a a6 04 b7 c2 5a 02 11 fa 03 cd 47 03 cd 4c 03 3a a5 04 cd 05 03 ┆ " : Z G L : ┆ 0x039560…039580 21 68 01 22 a9 04 11 cb 04 d5 cd 22 03 3a a7 04 4f cd 0e 03 3a a8 04 4f 3a a7 04 47 c5 cd 18 03 ┆!h " " : O : O: G ┆ 0x039580…0395a0 cd 34 03 11 42 04 b7 c4 51 03 c1 0c 3a a3 04 b9 c2 a3 02 3a a2 04 b8 ca d6 02 04 0e 00 c5 48 cd ┆ 4 B Q : : H ┆ 0x0395a0…0395c0 0e 03 c1 c5 cd 18 03 2a a9 04 2b 22 a9 04 c1 7c b7 c2 b9 02 7d b7 ca c7 02 d1 21 80 00 19 eb d5 ┆ * +" ø å ! ┆ 0x0395c0…0395e0 c5 cd 22 03 c3 80 02 78 32 a7 04 79 32 a8 04 d1 cd eb 02 c3 cc 01 cd eb 02 11 8a 04 cd 47 03 11 ┆ " x2 y2 G ┆ 0x0395e0…039600 63 04 cd 47 03 cd 4c 03 c3 00 00 3a a7 04 4f 0d cd 0e 03 3a a8 04 4f cd 18 03 cd 2c 03 11 42 04 ┆c G L : O : O , B ┆ 0x039600…039620 (15, 0, 10) e1 22 21 02 31 63 02 21 80 00 34 5e 34 16 00 19 36 20 2a 01 00 11 34 00 19 22 19 02 7e 32 1b 02 ┆ "! 1c ! 4^4 6 * 4 " ü2 ┆ 0x039620…039640 23 7e 32 1c 02 2a 1b 02 22 1d 02 21 80 00 23 22 1f 02 c3 45 01 21 80 00 35 ca a3 01 2a 1f 02 7e ┆#ü2 * " ! #" E ! 5 * ü┆ 0x039640…039660 23 22 1f 02 c9 01 00 00 cd 35 01 fe 41 ca 56 01 fe 42 c2 45 01 04 cd 35 01 fe 3a c2 45 01 cd 35 ┆#" 5 A V B E 5 : E 5┆ 0x039660…039680 01 fe 3d c2 45 01 cd 35 01 fe 53 ca 88 01 fe 44 c2 45 01 cd 35 01 fe 44 c2 45 01 cd 35 01 fe 20 ┆ = E 5 S D E 5 D E 5 ┆ 0x039680…0396a0 c2 45 01 0e 08 c3 98 01 cd 35 01 fe 53 c2 45 01 cd 35 01 fe 20 c2 45 01 21 1d 02 16 00 58 19 71 ┆ E 5 S E 5 E ! X q┆ 0x0396a0…0396c0 c3 45 01 db 14 e6 80 c2 b6 01 2a 19 02 3a 1d 02 77 23 3a 1e 02 77 11 fb 01 cd f6 01 cd c6 01 cd ┆ E * : w#: w ┆ 0x0396c0…0396e0 cb 01 2a 21 02 e9 0e 01 c3 05 00 0e 0d 11 03 00 c3 05 00 0e 0f c3 05 00 0e 10 c3 05 00 0e 13 c3 ┆ *! ┆ 0x0396e0…039700 05 00 0e 14 c3 05 00 0e 15 c3 05 00 0e 16 c3 05 00 0e 1a c3 05 00 0e 09 c3 05 00 49 4e 53 45 52 ┆ INSER┆ 0x039700…039720 54 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 54 55 52 4e 3e 24 00 00 00 00 00 00 00 ┆T DISK AND TYPE <RETURN>$ ┆ 0x039720…039740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x2…] 0x039780…0397a0 31 43 44 33 35 30 31 46 45 35 33 43 32 34 35 30 31 39 39 0d 0a 3a 31 30 30 31 39 30 30 30 43 44 ┆1CD3501FE53C2450199 :10019000CD┆ 0x0397a0…0397c0 33 35 30 31 46 45 32 30 43 32 34 35 30 31 32 31 31 44 30 32 31 36 30 30 35 38 31 39 37 31 46 45 ┆3501FE20C24501211D021600581971FE┆ 0x0397c0…0397e0 0d 0a 3a 31 30 30 31 41 30 30 30 43 33 34 35 30 31 44 42 31 34 45 36 38 30 43 32 42 36 30 31 32 ┆ :1001A000C34501DB14E680C2B6012┆ 0x0397e0…039800 41 31 39 30 32 33 41 31 44 30 32 44 41 0d 0a 3a 31 30 30 31 42 30 30 30 37 37 32 33 33 41 31 45 ┆A19023A1D02DA :1001B00077233A1E┆ 0x039800…039820 (15, 0, 11) e1 22 05 04 31 47 04 21 80 00 34 5e 34 16 00 19 36 20 2a 01 00 11 34 00 19 22 f8 03 7e 32 fa 03 ┆ " 1G ! 4^4 6 * 4 " ü2 ┆ 0x039820…039840 23 7e 32 fb 03 2a fa 03 22 fe 03 22 00 04 3a 5c 00 b7 cc e8 01 3d 32 02 04 3a 6c 00 b7 cc e8 01 ┆#ü2 * " " :Ø =2 :l ┆ 0x039840…039860 3d 32 03 04 21 80 00 23 22 fc 03 c3 5e 01 21 80 00 35 ca cd 01 2a fc 03 7e 23 22 fc 03 c9 01 00 ┆=2 ! #" ^ ! 5 * ü#" ┆ 0x039860…039880 00 cd 4e 01 fe 53 ca 70 01 fe 44 c2 5e 01 06 02 cd 4e 01 fe 3a c2 5e 01 cd 4e 01 fe 3d c2 5e 01 ┆ N S p D ^ N : ^ N = ^ ┆ 0x039880…0398a0 cd 4e 01 fe 53 ca a2 01 fe 44 c2 5e 01 cd 4e 01 fe 44 c2 5e 01 cd 4e 01 fe 20 c2 5e 01 0e 08 c3 ┆ N S D ^ N D ^ N ^ ┆ 0x0398a0…0398c0 b2 01 cd 4e 01 fe 53 c2 5e 01 cd 4e 01 fe 20 c2 5e 01 21 fe 03 16 00 58 19 78 b7 3a 02 04 ca c4 ┆ N S ^ N ^ ! X x : ┆ 0x0398c0…0398e0 01 3a 03 04 b7 ca c9 01 23 71 c3 5e 01 db 14 e6 80 ca ed 01 2a fa 03 22 fe 03 22 00 04 c3 ed 01 ┆ : #q ^ * " " ┆ 0x0398e0…039900 eb 2a f8 03 73 23 72 c9 cd 08 03 3c c9 0e 10 11 6c 00 21 07 04 1a 13 77 23 0d c2 f5 01 af 32 27 ┆ * s#r < l ! w# 2'┆ 0x039900…039920 04 11 aa 03 cd 03 03 cd ca 02 2a fe 03 cd e0 01 cd db 02 11 5c 00 cd e0 02 11 0d 03 3c cc c2 02 ┆ * Ø < ┆ 0x039920…039940 11 48 04 3e 00 32 04 04 d5 cd fe 02 11 5c 00 cd ef 02 b7 c2 4d 02 d1 21 80 00 19 eb d5 cd fe 02 ┆ H > 2 Ø M ! ┆ 0x039940…039960 21 04 04 11 6f 03 34 cc c2 02 c3 2c 02 d1 11 7e 03 cd 03 03 cd ca 02 2a 00 04 cd e0 01 cd db 02 ┆! o 4 , ü * ┆ 0x039960…039980 11 07 04 cd ea 02 11 07 04 cd f9 02 11 1e 03 3c cc c2 02 11 48 04 d5 cd fe 02 11 07 04 cd f4 02 ┆ < H ┆ 0x039980…0399a0 11 33 03 b7 c4 c2 02 d1 21 80 00 19 eb d5 cd fe 02 21 04 04 35 c2 7a 02 d1 11 07 04 cd e5 02 11 ┆ 3 ! ! 5 z ┆ 0x0399a0…0399c0 47 03 3c cc c2 02 11 5a 03 cd 03 03 11 d1 03 cd 03 03 cd ca 02 2a fa 03 cd e0 01 cd db 02 2a 05 ┆G < Z * * ┆ 0x0399c0…0399e0 04 e9 0e 09 cd 05 00 c3 ac 02 0e 01 cd 05 00 fe 03 c0 2a fa 03 cd e0 01 c3 00 00 0e 0d c3 05 00 ┆ * ┆ 0x0399e0…039a00 0e 0f c3 05 00 0e 10 c3 05 00 0e 13 c3 05 00 0e 14 c3 05 00 0e 15 c3 05 00 0e 16 c3 05 00 0e 1a ┆ ┆ 0x039a00…039a20 (15, 0, 12) c9 1a 13 fe 20 c4 0d 11 05 c2 01 11 c9 77 23 c9 af 32 25 11 21 20 11 11 93 43 cd ee 16 c3 76 0e ┆ w# 2% ! C v ┆ 0x039a20…039a40 81 ff 02 fe 82 00 2a 27 2c 36 ff 23 36 ff eb 2a 5a 11 13 7e 12 23 fe 0d c2 32 11 cd 61 37 cd ac ┆ *',6 #6 *Z ü # 2 a7 ┆ 0x039a40…039a60 30 c9 0b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆0 ┆ 0x039a60…039a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 af 32 a8 18 3e 04 32 db 1f cd ┆ 2 > 2 ┆ 0x039a80…039aa0 15 12 c0 cd f5 3a cd 93 12 cd bc 12 d8 21 db 1f 7e f5 36 04 cd e7 12 cd 1d 41 32 a6 18 4f cd 02 ┆ : ! ü 6 A2 O ┆ 0x039aa0…039ac0 1a cd f3 12 f5 cd 95 1a cd 09 3a f1 d2 94 11 f1 32 db 1f cd 6d 15 79 c9 e5 d5 c5 22 a0 18 7e fe ┆ : 2 m y " ü ┆ 0x039ac0…039ae0 10 d2 c5 11 23 23 11 7d 18 06 0f cd b7 38 22 8c 18 3a 7d 18 5f 01 00 00 3a 82 18 e6 02 ca e1 11 ┆ ## å 8" :å _ : ┆ 0x039ae0…039b00 4b 09 22 8e 18 09 22 90 18 3a 82 18 e6 04 4f ca f4 11 4b 09 22 92 18 09 22 94 18 cd 22 15 ca 05 ┆K " " : O K " " " ┆ 0x039b00…039b20 12 01 0c 00 09 22 9c 18 2a 7e 18 cd 00 3c 22 9e 18 c1 d1 e1 c9 cd b8 11 0e 01 cd 5d 12 c8 3a 84 ┆ " *ü <" Å : ┆ 0x039b20…039b40 18 e6 04 c2 43 12 3a 81 18 e6 02 c8 cd 48 12 c8 3a 81 18 e6 20 ca 43 12 3a a6 18 b9 c8 cd 7c 1d ┆ C : H : C : ø ┆ 0x039b40…039b60 fe 02 c8 0e 06 79 b7 c9 3a 67 0a b7 c0 e5 2a 2b 2c 7d b4 e1 c0 3a 81 18 e6 80 d6 80 c9 cd 1c 15 ┆ y :g *+,å : ┆ 0x039b60…039b80 c8 3a 5f 0a fe 01 c9 c5 46 cd 9b 0b 90 e6 7f c4 79 12 c1 7c 32 aa 18 7e c9 3a db 1f fe 01 c8 3e ┆ :_ F y ø2 ü : >┆ 0x039b80…039ba0 ff 32 a7 18 cd e4 18 3a db 1f fe 04 c0 06 03 cd eb 18 c9 e5 cd 9c 12 cd b9 3a e1 c9 3a 7e 0a b7 ┆ 2 : : :ü ┆ 0x039ba0…039bc0 21 4a 43 c8 3a 5f 0a b7 21 11 43 c0 3a 5c 0a fe 00 c8 fe 02 21 37 43 c8 21 24 43 c9 21 a2 18 cd ┆!JC :_ ! C :Ø !7C !$C ! ┆ 0x039bc0…039be0 ca 12 7e 3c 32 a5 18 3e 06 c9 cd 1c 15 36 00 ca 94 17 cd f8 14 77 c0 cd 16 15 77 ca 94 17 3a 7d ┆ ü<2 > 6 w w :å┆ 0x039be0…039c00 18 77 cd 7d 17 34 c9 cd f5 3a cd fb 39 c9 77 c4 fb 39 c9 79 fe 7f ca 5f 15 fe 20 da d5 15 fe 2a ┆ w å 4 : 9 w 9 y _ *┆ 0x039c00…039c20 (15, 0, 13) b7 c4 51 03 c9 4f 2a 01 00 11 18 00 19 e9 2a 01 00 11 1b 00 19 06 00 e9 2a 01 00 11 1e 00 19 06 ┆ Q O* * * ┆ 0x039c20…039c40 00 e9 2a 01 00 42 4b 11 21 00 19 e9 2a 01 00 11 24 00 19 e9 2a 01 00 11 27 00 19 0e 02 e9 0e 09 ┆ * BK ! * $ * ' ┆ 0x039c40…039c60 cd 05 00 2a 9f 04 e9 0e 09 c3 05 00 0e 01 c3 05 00 0e 09 cd 05 00 0e 01 cd 05 00 fe 03 ca 00 00 ┆ * ┆ 0x039c60…039c80 c9 52 43 37 30 30 20 20 43 50 2f 4d 20 20 42 41 43 4b 55 50 20 20 55 54 49 4c 49 54 59 0d 24 0d ┆ RC700 CP/M BACKUP UTILITY $ ┆ 0x039c80…039ca0 0a 0a 53 4f 55 52 43 45 20 44 52 49 56 45 20 28 41 20 4f 52 20 42 29 20 3f 20 24 0d 0a 0a 44 45 ┆ SOURCE DRIVE (A OR B) ? $ DE┆ 0x039ca0…039cc0 53 54 49 4e 41 54 49 4f 4e 20 44 52 49 56 45 20 28 41 20 4f 52 20 42 29 20 3f 20 24 0d 0a 0a 42 ┆STINATION DRIVE (A OR B) ? $ B┆ 0x039cc0…039ce0 41 43 4b 55 50 20 4e 4f 54 20 50 4f 53 53 49 42 4c 45 24 0d 0a 49 4e 53 45 52 54 20 53 4f 55 52 ┆ACKUP NOT POSSIBLE$ INSERT SOUR┆ 0x039ce0…039d00 43 45 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 54 55 52 4e 3e 24 0d 0a 49 4e 53 45 ┆CE DISK AND TYPE <RETURN>$ INSE┆ 0x039d00…039d20 52 54 20 44 45 53 54 49 4e 41 54 49 4f 4e 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 ┆RT DESTINATION DISK AND TYPE <RE┆ 0x039d20…039d40 54 55 52 4e 3e 24 0d 0a 42 41 44 20 53 45 43 54 4f 52 20 4f 4e 20 53 4f 55 52 43 45 20 44 49 53 ┆TURN>$ BAD SECTOR ON SOURCE DIS┆ 0x039d40…039d60 4b 24 0d 0a 42 41 44 20 53 45 43 54 4f 52 20 4f 4e 20 44 45 53 54 49 4e 41 54 49 4f 4e 20 44 49 ┆K$ BAD SECTOR ON DESTINATION DI┆ 0x039d60…039d80 53 4b 24 0d 0a 49 4e 53 45 52 54 20 53 59 53 54 45 4d 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 ┆SK$ INSERT SYSTEM DISK AND TYPE┆ 0x039d80…039da0 20 3c 52 45 54 55 52 4e 3e 24 0d 0a 42 41 43 4b 55 50 20 43 4f 4d 50 4c 45 54 45 24 0d 0a 24 00 ┆ <RETURN>$ BACKUP COMPLETE$ $ ┆ 0x039da0…039dc0 00 00 00 00 00 00 00 00 00 00 00 52 49 56 45 20 28 41 20 4f 52 20 42 29 20 3f 20 24 0d 0a 0a 42 ┆ RIVE (A OR B) ? $ B┆ 0x039dc0…039de0 41 43 4b 55 50 20 4e 4f 54 20 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ACKUP NOT P ┆ 0x039de0…039e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x1…] 0x039e20…039e40 00 00 00 00 00 00 00 00 00 00 0d 43 09 5e 04 00 af 32 80 00 cd 2e 0b cd 32 3c cd 80 0a c3 46 03 ┆ C ^ 2 . 2< F ┆ 0x039e40…039e60 cd 2e 0b cd 32 3c 2a 2c 03 22 7b 0a cd a8 0c cd b0 0d c4 d5 0e c2 4c 03 cd fd 0e cd d3 3c cd c0 ┆ . 2<*, "æ L < ┆ 0x039e60…039e80 03 3a f3 39 b7 c2 11 11 cd e4 3a cd 88 08 79 d4 31 09 da 80 03 cd a1 0b cd 76 11 f5 cd 87 07 f1 ┆ : 9 : y 1 v ┆ 0x039e80…039ea0 4f 21 92 03 fe 17 da d9 15 cd 6a 18 2a a0 18 c3 78 03 89 03 04 04 cb 06 89 03 31 08 d5 06 31 04 ┆O! j * x 1 1 ┆ 0x039ea0…039ec0 89 03 89 03 2c 08 3a 08 3f 08 98 06 50 08 1a 08 d3 05 15 08 fe 06 f1 06 66 08 c1 06 d8 05 55 08 ┆ , : ? P f U ┆ 0x039ec0…039ee0 cd 6d 21 3e 03 32 5c 0a cd ab 18 3e ff 32 5c 0a cd 09 34 2a 27 2c e5 7e 22 27 2c 3c 23 ca d7 03 ┆ m!> 2Ø > 2Ø 4*', ü"',<# ┆ 0x039ee0…039f00 cd 20 19 cd 56 0c e1 22 27 2c 36 0d cd b4 18 3a 69 11 e6 04 c8 cd b8 1f cd a1 0b cd b8 11 06 04 ┆ V "',6 :i ┆ 0x039f00…039f20 cd eb 18 c9 3a 5f 0a b7 ca 17 04 21 5e 0a 7e b7 ca 8c 03 35 c3 3c 04 2a a0 18 cd 6e 0b ca 78 03 ┆ :_ !^ ü 5 < * n x ┆ 0x039f20…039f40 cd 15 12 c2 17 04 e5 cd bc 12 e1 da 17 04 c3 78 03 3a 5f 0a b7 ca 79 04 21 5e 0a 34 5e 2a 2d 2c ┆ x :_ y !^ 4^*-,┆ 0x039f40…039f60 7e bb ca 4e 04 16 00 19 19 23 7e c3 75 03 cd 18 42 cd a8 41 cd c2 0b cd fb 30 da 10 11 c2 6d 04 ┆ü N #ü u B A 0 m ┆ 0x039f60…039f80 cd 0e 09 cd 25 0a af 32 5f 0a c3 c1 06 21 75 43 cd 77 3a cd 62 09 c3 75 03 2a a0 18 cd 65 0b c2 ┆ % 2_ !uC w: b u * e ┆ 0x039f80…039fa0 78 03 cd 18 42 cd 1c 15 ca 44 08 af cd a1 0b cd b8 11 3a 81 18 e6 02 c2 a3 04 cd 81 1b dc c9 05 ┆x B D : ┆ 0x039fa0…039fc0 da 80 03 cd 65 0b c2 8f 04 3a 5c 0a fe 08 ca 2f 07 fe 04 ca c6 04 b7 c2 72 05 3a 67 0a b7 c2 ed ┆ e :Ø / r :g ┆ 0x039fc0…039fe0 04 3e 04 cd d8 08 0e 0c 3a 6a 11 b9 da de 04 0c 21 7e 0a 77 cd e6 1c 74 da 80 03 c3 c8 04 cd d5 ┆ > :j !ü w t ┆ 0x039fe0…03a000 08 3a 5c 0a fe 04 ca 8b 05 b7 c2 54 05 21 6f 43 cd 4d 0a da 61 03 c2 c1 06 cd 09 05 c2 c1 06 3a ┆ :Ø T !oC M a :┆ 0x03a000…03a020 (15, 0, 15) c3 05 00 0e 09 c3 05 00 0e 19 c3 05 00 4e 4f 20 53 4f 55 52 43 45 20 46 49 4c 45 0d 0a 24 4e 4f ┆ NO SOURCE FILE $NO┆ 0x03a020…03a040 20 44 49 52 45 43 54 4f 52 59 20 53 50 41 43 45 0d 0a 24 4f 55 54 20 4f 46 20 44 41 54 41 20 53 ┆ DIRECTORY SPACE $OUT OF DATA S┆ 0x03a040…03a060 50 41 43 45 0d 0a 24 57 52 49 54 45 20 50 52 4f 54 45 43 54 45 44 3f 0d 0a 24 54 52 41 4e 53 46 ┆PACE $WRITE PROTECTED? $TRANSF┆ 0x03a060…03a080 45 52 20 43 4f 4d 50 4c 45 54 45 44 0d 0a 24 46 49 4c 45 20 54 4f 4f 20 42 49 47 0d 0a 24 49 4e ┆ER COMPLETED $FILE TOO BIG $IN┆ 0x03a080…03a0a0 53 45 52 54 20 44 45 53 54 49 4e 41 54 49 4f 4e 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c ┆SERT DESTINATION DISK AND TYPE <┆ 0x03a0a0…03a0c0 52 45 54 55 52 4e 3e 0d 0a 24 49 4e 53 45 52 54 20 53 4f 55 52 43 45 20 44 49 53 4b 20 41 4e 44 ┆RETURN> $INSERT SOURCE DISK AND┆ 0x03a0c0…03a0e0 20 54 59 50 45 20 3c 52 45 54 55 52 4e 3e 0d 0a 24 49 4e 53 45 52 54 20 53 59 53 54 45 4d 20 44 ┆ TYPE <RETURN> $INSERT SYSTEM D┆ 0x03a0e0…03a100 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 54 55 52 4e 3e 0d 0a 24 00 00 00 00 00 00 00 00 ┆ISK AND TYPE <RETURN> $ ┆ 0x03a100…03a120 00 00 00 00 00 00 00 00 0e 19 c3 05 00 4e 4f 20 53 4f 55 52 43 45 20 46 49 4c 45 0d 0a 24 4e 4f ┆ NO SOURCE FILE $NO┆ 0x03a120…03a140 20 44 49 52 45 43 54 4f 52 59 20 53 50 41 43 45 0d 0a 24 4f 55 54 20 4f 46 20 44 41 54 41 20 53 ┆ DIRECTORY SPACE $OUT OF DATA S┆ 0x03a140…03a160 50 41 43 45 0d 0a 24 57 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆PACE $W ┆ 0x03a160…03a180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x03a180…03a1a0 11 33 03 b7 c4 c2 02 d1 21 80 00 19 eb d5 cd fe 02 21 04 04 35 c2 7a 02 d1 11 07 04 cd e5 02 11 ┆ 3 ! ! 5 z ┆ 0x03a1a0…03a1c0 47 03 3c cc c2 02 11 5a 03 cd 03 03 11 d1 03 cd 03 03 cd ca 02 2a fa 03 cd e0 01 cd db 02 2a 05 ┆G < Z * * ┆ 0x03a1c0…03a1e0 04 e9 0e 09 cd 05 00 c3 ac 02 0e 01 cd 05 00 fe 03 c0 2a fa 03 cd e0 01 c3 00 00 0e 0d c3 05 00 ┆ * ┆ 0x03a1e0…03a200 0e 0f c3 05 00 0e 10 c3 05 00 0e 13 c3 05 00 0e 14 c3 05 00 0e 15 c3 05 00 0e 16 c3 05 00 0e 1a ┆ ┆ 0x03a200…03a220 (15, 1, 1) cc 0d 13 cd 1a 12 37 cc 1d 13 0e 06 c9 cd 1c 15 c0 0e 01 c9 cd 55 15 c5 4f cd 38 13 c1 cd b9 14 ┆ 7 U O 8 ┆ 0x03a220…03a240 ca 64 13 cd 17 18 ca 52 13 cd f2 14 ca 14 13 3a a2 18 cd 81 13 d2 c6 13 cd ae 14 79 cd 67 12 cd ┆ d R : y g ┆ 0x03a240…03a260 62 17 d8 cd ea 14 c4 51 17 c8 cd 28 15 ca 3f 13 b7 c9 cd 1c 15 ca 38 13 3a 2f 44 b9 ca 29 13 cd ┆b Q ( ? 8 :/D ) ┆ 0x03a260…03a280 64 13 b7 c9 cd ae 14 51 43 2b af 32 aa 18 cd aa 17 3a aa 18 b7 ca 64 18 2a 9e 18 7e e6 7f c8 37 ┆d QC+ 2 : d * ü 7┆ 0x03a280…03a2a0 c9 32 a3 18 cd 3a 15 cd de 14 37 c8 79 fe 01 37 c8 3a a3 18 cd 58 15 b7 37 c8 fe 5f 37 c8 e5 d5 ┆ 2 : 7 y 7 : X 7 _7 ┆ 0x03a2a0…03a2c0 c5 21 2f 44 cd b8 13 fe 13 d2 5b 18 21 d5 13 cd d9 15 79 c1 4f d1 e1 c9 e5 be 23 c2 b9 13 2b 7d ┆ !/D Æ ! y O # +å┆ 0x03a2c0…03a2e0 e1 95 32 a4 18 c9 3a a4 18 5f 16 00 21 bf 43 19 19 cd 6d 18 c9 fb 13 11 14 20 14 2d 14 4d 14 2a ┆ 2 : _ ! C m - M *┆ 0x03a2e0…03a300 14 4a 14 55 14 5c 14 26 14 46 14 6b 14 80 14 67 14 7c 14 88 14 8f 14 63 14 78 14 3a a3 18 cd 58 ┆ J U Ø & F k g ø c x : X┆ 0x03a300…03a320 15 91 fe 01 d8 21 a2 18 46 cd 6f 17 7e 70 c3 81 13 79 fe 26 c8 fe 27 c8 fe 2c c8 d6 23 fe 0c d8 ┆ ! F o üp y & ' , # ┆ 0x03a320…03a340 79 d6 30 fe 0a c9 cd 20 14 d8 cd 96 14 79 d6 41 fe 1a d8 21 ff 43 cd c7 40 79 b7 34 35 f8 be 37 ┆y 0 y A ! C @y 45 7┆ 0x03a340…03a360 c8 23 13 c3 3a 14 cd 20 14 d8 cd 96 14 79 fe 20 37 c4 2d 14 c9 cd 2d 14 d4 20 14 c9 cd 4d 14 d4 ┆ # : y 7 - - M ┆ 0x03a360…03a380 20 14 c9 cd 20 14 d8 cd 2d 14 d8 79 d6 61 fe 1a d8 21 fd 43 cd 36 14 c9 cd 20 14 d8 cd 2d 14 d8 ┆ - y a ! C 6 - ┆ 0x03a380…03a3a0 79 fe 20 37 c4 6b 14 c9 cd 20 14 d4 6b 14 c9 cd 20 14 d4 80 14 c9 79 11 00 00 cd 6b 14 d0 ca a5 ┆y 7 k k y k ┆ 0x03a3a0…03a3c0 14 c6 41 4f c9 21 ff 43 cd c7 40 19 4e c9 2a 9e 18 3a a2 18 5f 16 00 19 c9 e5 cd ea 14 e1 c8 cd ┆ AO ! C @ N * : _ ┆ 0x03a3c0…03a3e0 37 15 32 a9 18 e5 cd 51 17 c4 1c 15 e1 3a a9 18 ca d6 14 fe 58 c8 fe 22 c8 fe 2f 37 3f c9 fe 7e ┆7 2 Q : X " /7? ü┆ 0x03a3e0…03a400 c8 fe 22 c8 fe 27 c8 fe 2f c9 21 a2 18 3a 7d 18 be c9 cd 37 15 fe 27 c9 3a 80 18 e6 20 c8 3a 83 ┆ " ' / ! :å 7 ' : : ┆ 0x03a400…03a420 (15, 1, 2) 23 cd 06 1b 2b c9 7e e6 7e c2 0d 1b 14 15 c9 3e ff 32 a2 18 cd 1c 15 3e 00 c2 1e 1b 3e 01 32 dc ┆# + ü ü > 2 > > 2 ┆ 0x03a420…03a440 1f 3a 7d 18 2a 8c 18 44 4d 2a 8e 18 eb 2a 9e 18 c9 cd 42 1a c8 16 00 da 63 1b cd 7b 1b c2 4d 1b ┆ :å * DM* * B c æ M ┆ 0x03a440…03a460 15 1d ca 4d 1b 23 cd 7b 1b ca 41 1b 2b 78 b7 c4 9b 0b cd 50 1a 7e e6 7f cc 9a 0b 23 1d c2 55 1b ┆ M # æ A +x P ü # U ┆ 0x03a460…03a480 7a b7 c9 19 2b cd 7b 1b c2 4d 1b 15 1d ca 4d 1b 2b cd 7b 1b ca 6c 1b 23 c3 4d 1b 7e e6 7f c8 b9 ┆z + æ M M + æ l # M ü ┆ 0x03a480…03a4a0 c9 e5 d5 c5 cd 93 12 cd 94 1b d4 1e 1c d4 a3 1c c1 d1 e1 c9 cd a6 1b d0 cd f5 3a 21 f5 43 cd 49 ┆ :! C I┆ 0x03a4a0…03a4c0 1c cd 8d 11 37 c9 cd 02 1a cd 14 1b 5f 3a 80 18 e6 01 57 cd 31 15 c2 bb 1b 44 4d 7e e6 7f ca c6 ┆ 7 _: W 1 DMü ┆ 0x03a4c0…03a4e0 1b 16 00 c3 cc 1b 0a fe 21 ca f4 1b 23 03 1d c2 bb 1b 7a b7 c2 fd 1b cd 14 1b 57 cd f8 14 cc 16 ┆ ! # z W ┆ 0x03a4e0…03a500 15 c4 04 1c cd 11 1c 5a cd f8 14 3e 00 cc 16 15 b7 cc 04 1c cd 96 1c f5 cd 31 1b f1 c9 cd bc 12 ┆ Z > 1 ┆ 0x03a500…03a520 37 c3 f7 1b 7e e6 7f c0 23 15 c2 04 1c e1 c3 f7 1b 7e e6 7f c8 23 15 c2 11 1c e1 c3 f7 1b 3a 82 ┆7 ü # ü # : ┆ 0x03a520…03a540 18 e6 04 c8 cd 4f 1c d0 cd 33 1c 21 f7 43 cd 9e 1b 37 c9 3a 7d 18 32 04 44 32 09 44 2a 90 18 22 ┆ O 3 ! C 7 :å 2 D2 D* "┆ 0x03a540…03a560 05 44 2a 92 18 22 0a 44 c9 cd f5 3a c3 77 3a 2a 90 18 eb 2a 9e 18 3a 7d 18 47 7e e6 7f ca 6a 1c ┆ D* " D : w:* * :å Gü j ┆ 0x03a560…03a580 1a cd 8b 1c da 70 1c c2 95 1c 23 13 05 c2 5a 1c 2a 92 18 eb 2a 9e 18 3a 7d 18 47 1a b7 c4 8b 1c ┆ p # Z * * :å G ┆ 0x03a580…03a5a0 da 95 1c c0 23 13 05 c2 7b 1c c9 c5 47 7e e6 7f 4f 78 b9 c1 c9 58 3a 7d 18 93 32 a2 18 3c 32 a5 ┆ # æ Gü Ox X:å 2 <2 ┆ 0x03a5a0…03a5c0 18 37 c9 3a 82 18 e6 08 c8 cd b8 1c d0 21 fb 43 cd 49 1c cd 86 11 37 c9 2a a0 18 eb af 47 cd a1 ┆ 7 : ! C I 7 * G ┆ 0x03a5c0…03a5e0 0b cd b9 39 ca d1 1c 04 cd 65 0b c2 c1 1c c3 5b 18 21 e1 1c 70 06 05 cd dd 20 3a e6 28 b7 c8 37 ┆ 9 e Æ ! p : ( 7┆ 0x03a5e0…03a600 c9 c5 fa fe 31 31 e5 d5 c5 11 0a 00 cd 4e 1e ca 30 1d cd b8 11 cd 76 1d ca 2e 1d cd 02 1a 2a 9e ┆ 11 N 0 v . * ┆ 0x03a600…03a620 (15, 1, 3) 05 23 cd 65 23 06 00 cd 20 25 d2 26 23 47 cd 65 23 cd 20 25 d2 1f 23 4f 78 87 87 80 87 81 47 7b ┆ # e# % &#G e# % #Ox Gæ┆ 0x03a620…03a640 b7 c2 26 23 90 47 0e 0e 21 21 2c 7e b7 c2 39 23 2b 0d c2 2b 23 32 12 2c c9 21 12 2c 78 86 77 17 ┆ &# G !!,ü 9#+ +#2 , ! ,x w ┆ 0x03a640…03a660 da 4e 25 cd c4 25 01 1a 2c cd f2 25 c3 02 26 c5 af 32 11 2c cd 6e 25 3e 40 32 12 2c e1 3e aa 32 ┆ N% % , % & 2 , n%>@2 , > 2┆ 0x03a660…03a680 9d 23 0e 1c c9 3a 9c 23 b7 c8 3d 32 9c 23 7e e6 7f fe 02 7e 23 da 65 23 fe 30 d8 fe 3a d0 32 9d ┆ # : # =2 #ü ü# e# 0 : 2 ┆ 0x03a680…03a6a0 24 c9 af b1 c8 0d 3a 9d 23 07 32 9d 23 d2 96 23 78 cd 38 25 12 c9 1a b0 12 1b c9 80 00 00 22 a3 ┆$ : # 2 # #x 8% " ┆ 0x03a6a0…03a6c0 24 60 69 22 9e 24 32 a0 24 eb cd f8 21 cd 51 24 11 a1 24 21 9f 24 3a 11 2c b7 ca c3 23 7e b7 ca ┆$`i" $2 $ ! Q$ $! $: , #ü ┆ 0x03a6c0…03a6e0 65 25 35 3a a0 24 4f 3a 12 2c b7 ca d0 23 d6 40 0c 0d ca da 23 96 32 a2 24 7e b7 f2 e2 23 2f 3c ┆e%5: $O: , # @ # 2 $ü #/<┆ 0x03a6e0…03a700 12 af c2 ee 23 34 35 ca ee 23 eb 34 eb 3c 34 4f 0c be d2 65 25 3a 11 2c b7 3e 2d c4 94 24 3a 9e ┆ #45 # 4 <4O e%: , >- $: ┆ 0x03a700…03a720 24 81 47 05 0d 3e 2e cc 94 24 cd 61 24 cd 94 24 05 c2 04 24 3a a0 24 b7 ca 48 24 3e 45 cd 94 24 ┆$ G >. $ a$ $ $: $ H$>E $┆ 0x03a720…03a740 3a a2 24 b7 0e 20 f2 2d 24 2f 3c 0e 2d 47 79 cd 94 24 78 0e 2f 0c d6 0a f2 35 24 c6 0a 47 79 cd ┆: $ -$/< -Gy $x / 5$ Gy ┆ 0x03a740…03a760 94 24 78 f6 30 cd 94 24 af cd 94 24 3a 9d 24 b7 c9 21 21 2c 22 a6 24 3e 0e 32 a5 24 af 32 a1 24 ┆ $x 0 $ $: $ !!," $> 2 $ 2 $┆ 0x03a760…03a780 c9 e5 3a 12 2c b7 ca 72 24 21 a1 24 7e b7 ca 76 24 35 3e 30 e1 c9 21 a5 24 7e b7 ca 72 24 35 2a ┆ : , r$! $ü v$5>0 ! $ü r$5*┆ 0x03a780…03a7a0 a6 24 0f 7e d2 8b 24 2b 22 a6 24 d4 31 25 e6 0f f6 30 e1 c9 2a a3 24 77 23 22 a3 24 c9 21 0e 00 ┆ $ ü $+" $ 1% 0 * $w#" $ ! ┆ 0x03a7a0…03a7c0 00 00 44 41 54 41 4c a1 60 69 7e e6 7f fe 41 d2 b5 24 36 00 c9 47 3e 4d 90 d8 3c 47 0f e6 7f 23 ┆ DATAL `iü A $6 G>M <G #┆ 0x03a7c0…03a7e0 b7 ca cb 24 36 00 23 3d c2 c4 24 78 0f d0 3e f0 a6 77 c9 cd 51 24 21 00 00 3a 12 2c b7 c8 d6 41 ┆ $6 #= $x > w Q$! : , A┆ 0x03a7e0…03a800 f8 3c 32 0b 25 29 54 5d 19 29 19 cd 61 24 e6 0f 16 00 5f 19 3a 0b 25 3d 32 0b 25 c2 e5 24 3a 11 ┆ <2 %)TÅ ) a$ _ : %=2 % $: ┆ 0x03a800…03a820 (15, 1, 4) 00 00 00 00 00 50 40 92 99 99 99 99 99 99 40 99 99 99 99 99 99 49 40 68 66 66 66 66 66 16 3f 68 ┆ P@ @ I@hfffff ?h┆ 0x03a820…03a840 66 66 66 66 66 41 3e 35 33 33 33 33 33 83 3e 89 88 88 88 88 88 13 3d 69 12 84 69 12 84 19 3c 89 ┆fffffA>533333 > =i i < ┆ 0x03a840…03a860 15 30 87 15 80 24 3b 86 39 22 19 73 55 27 3a 86 39 22 19 73 55 27 39 42 54 38 08 21 05 25 38 68 ┆ 0 $; 9" sU': 9" sU'9BT8 ! %8h┆ 0x03a860…03a880 78 98 56 67 87 20 37 22 68 83 43 90 05 16 36 30 77 59 45 07 47 11 34 01 82 31 37 16 47 76 40 81 ┆x Vg 7"h C 60wYE G 4 17 Gv@ ┆ 0x03a880…03a8a0 16 60 76 27 62 31 41 40 99 92 50 58 02 23 43 60 51 08 49 22 55 26 c3 80 65 28 48 83 94 42 43 54 ┆ `v'b1A@ PX #C`Q I"U& e(H BCT┆ 0x03a8a0…03a8c0 03 97 62 44 76 19 c2 52 11 57 61 47 76 22 43 88 25 54 24 61 27 13 c3 99 19 99 48 95 89 25 43 73 ┆ bDv R WaGv"C %T$a' H %Cs┆ 0x03a8c0…03a8e0 72 62 89 01 86 15 c2 22 28 48 84 64 41 31 41 00 00 00 00 00 00 10 00 f5 c5 01 09 2c cd 31 26 c1 ┆rb "(H dA1A , 1& ┆ 0x03a8e0…03a900 c5 c3 ec 2b f5 c5 cd 7f 26 01 09 2c cd dc 27 c1 21 f8 ff 09 44 4d f1 3d c2 e4 2b 01 b9 2a 0a b7 ┆ + & , ' ! DM = + * ┆ 0x03a900…03a920 c4 dc 27 01 b1 2a c3 7f 26 00 21 41 05 00 00 4c 4f 43 41 54 32 00 00 00 00 00 21 4a 05 00 00 4c ┆ ' * & !A LOCAT2 !J L┆ 0x03a920…03a940 4f 43 54 32 41 00 48 00 00 00 21 72 05 00 00 4c 4f 43 41 54 34 00 00 00 00 00 21 57 05 00 00 4c ┆OCT2A H !r LOCAT4 !W L┆ 0x03a940…03a960 4f 43 41 54 33 9b 49 00 00 00 21 90 06 00 00 43 4b 47 4f 4f 44 00 00 00 00 00 21 6e 06 00 00 4e ┆OCAT3 I ! CKGOOD !n N┆ 0x03a960…03a980 58 54 4e 44 58 00 00 e5 d5 c5 cd 1b 39 21 ff ff 22 4e 2c 22 3b 2c 22 5e 2c 23 39 22 c4 39 2a 2d ┆XTNDX 9! "N,";,"^,#9" 9*-┆ 0x03a980…03a9a0 2c 56 af 23 23 86 15 c2 83 2c 32 2f 2c 2a c0 39 5f 22 30 2c cd a5 2d eb 2a 29 2c 23 eb 22 27 2c ┆,V ## ,2/,* 9_"0, - *),# "',┆ 0x03a9a0…03a9c0 36 0d cd a5 2d 1e 80 22 39 2c cd a5 2d 22 4c 2c cd a5 2d 2a c0 39 22 34 2c eb 2a 32 2c eb cd 24 ┆6 - "9, -"L, -* 9"4, *2, $┆ 0x03a9c0…03a9e0 2e 32 43 2c 2a c0 39 22 46 2c eb 2a 44 2c eb cd 24 2e 32 53 2c cd 72 2e cd 9c 2e 3a 26 2c e6 04 ┆.2C,* 9"F, *D, $.2S, r. .:&, ┆ 0x03a9e0…03aa00 c4 fa 2c 3a f3 39 b7 c1 d1 e1 c9 3e ff 32 5e 2c c9 22 c0 39 60 69 22 c2 39 c9 2a c0 39 e5 22 27 ┆ ,: 9 > 2^, " 9`i" 9 * 9 "'┆ 0x03aa00…03aa20 (15, 1, 5) 18 c9 3a 80 18 e6 04 c8 3a 85 18 c9 3a 80 18 e6 08 c8 3a 86 18 c9 3a 80 18 e6 10 c9 3a 5c 0a fe ┆ : : : : : :Ø ┆ 0x03aa20…03aa40 03 c9 3a 82 18 e6 40 c9 cd 37 15 fe 59 c8 fe 7e c9 3a 82 18 e6 02 c9 3a a2 18 e5 2a 8c 18 d5 5f ┆ : @ 7 Y ü : : * _┆ 0x03aa40…03aa60 cd 31 15 ca 52 15 3a 7d 18 3d bb da 5b 18 16 00 19 7e d1 e1 c9 3a a2 18 e5 2a 8e 18 c3 3e 15 cd ┆ 1 R :å = Æ ü : * > ┆ 0x03aa60…03aa80 6f 17 cd 31 18 cd 17 18 d4 62 17 b7 c9 e5 d5 c5 cd 88 15 cd 5d 12 ca 84 15 3a db 1f fe 02 c4 22 ┆o 1 b Å : "┆ 0x03aa80…03aaa0 15 c4 82 1d c1 d1 e1 c9 cd 31 15 c0 cd 16 15 2a 9e 18 3a 7d 18 4f c2 af 15 41 5d 54 1a 13 e6 7f ┆ 1 * :å O AÅT ┆ 0x03aaa0…03aac0 ca a8 15 05 cd 9b 0b 23 0d c2 9c 15 c3 c7 15 06 00 09 5d 54 41 2b 7e e6 7f ca c3 15 05 1b eb cd ┆ # ÅTA+ü ┆ 0x03aac0…03aae0 9b 0b eb 0d c2 b5 15 04 cd 02 15 4f 05 c8 cd 9a 0b 23 c3 cc 15 21 e6 15 79 d5 5f 16 00 19 19 5e ┆ O # ! y _ ^┆ 0x03aae0…03ab00 23 56 eb d1 b7 e9 6a 18 24 17 11 17 26 16 62 17 7d 16 40 17 31 18 6f 17 40 17 94 3a 6a 18 1d 17 ┆#V j $ & b å @ 1 o @ :j ┆ 0x03ab00…03ab20 41 16 13 17 11 17 13 17 6a 18 6a 18 6f 17 1d 17 11 17 a1 17 6a 18 6a 18 6a 18 5a 17 6a 18 6a 18 ┆A j j o j j j Z j j ┆ 0x03ab20…03ab40 6a 18 6a 18 6a 18 2a 27 2c 3a 5f 0a b7 c2 38 16 3a 5c 0a fe 00 c2 6a 18 cd 45 16 cd 5a 16 cd 02 ┆j j j *',:_ 8 :Ø j E Z ┆ 0x03ab40…03ab60 1a 0e 06 37 c9 eb 2a a0 18 cd 6e 0b c8 1a fe 0d c8 13 fe 2c c2 4d 16 c3 49 16 2a 9e 18 e5 21 dd ┆ 7 * n , M I * ! ┆ 0x03ab60…03ab80 1f 22 9e 18 cd 0b 19 e1 22 9e 18 3a 7d 18 47 11 dd 1f 1a cd 67 12 23 13 05 c2 72 16 c9 21 bb 43 ┆ " " :å G g # r ! C┆ 0x03ab80…03aba0 3a 67 0a b7 ca 8a 16 21 bd 43 0e 00 cd 79 3a d6 20 c8 fe 20 da 7d 16 e6 1f 4f 32 4d 44 21 42 44 ┆:g ! C y: å O2MD!BD┆ 0x03aba0…03abc0 cd b8 13 fe 0b ca 7d 16 21 af 16 cd d9 15 c9 c5 16 0d 17 f7 16 0d 17 0d 17 0d 17 06 17 0d 17 0d ┆ å ! ┆ 0x03abc0…03abe0 17 01 17 0b 17 0e 00 21 a5 43 cd 79 3a d6 20 fe 20 3f d2 7d 16 e6 1f 32 4d 44 21 42 44 23 11 a7 ┆ ! C y: ? å 2MD!BD# ┆ 0x03abe0…03ac00 43 cd ee 16 0e 00 fe 0a c4 79 3a c3 7d 16 cd b8 13 6f 26 00 29 19 c9 3a 67 0a b7 ca 7d 16 c3 0d ┆C y: å o& ) :g å ┆ 0x03ac00…03ac20 (15, 1, 6) 18 3a 7d 18 47 af b6 23 05 c2 06 1d 47 cd 95 1a 04 05 ca 2e 1d cd 37 1d 3a a8 18 b7 c2 2f 1d cd ┆ :å G # G . 7 : / ┆ 0x03ac20…03ac40 94 1b d4 1e 1c d4 a3 1c da 15 1d cd e9 18 37 3f c1 d1 e1 ca 8b 1e c9 cd f5 3a 3a 82 18 e6 60 fe ┆ 7? :: ` ┆ 0x03ac40…03ac60 20 da 68 1d c2 9b 1d cd 66 1e cd 5f 1d c0 cd 74 1e d0 21 f9 43 cd 77 3a cd 5f 1d c0 c3 47 1d cd ┆ h f _ t ! C w: _ G ┆ 0x03ac60…03ac80 2f 19 cd 95 1a cd 09 3a cd 86 11 3a a8 18 b7 c8 37 c9 11 f6 ff c9 3a 84 18 e6 01 c9 3a 84 18 e6 ┆/ : : 7 : : ┆ 0x03ac80…03aca0 02 c9 cd 76 1d c8 3e ff 32 a8 18 2a a0 18 e5 cd 9b 1d e1 cd b8 11 af 32 a8 18 c9 3e 02 32 db 1f ┆ v > 2 * 2 > 2 ┆ 0x03aca0…03acc0 2a 71 11 cd 68 2d 2a 94 18 11 96 18 06 06 cd b7 38 2a 96 18 e5 cd 72 2d 2a c0 39 22 27 2c 2a c2 ┆*q h-* 8* r-* 9"',* ┆ 0x03acc0…03ace0 39 22 29 2c 2a 9e 18 3a 7d 18 47 cd b6 0b cd fb 30 da 10 11 c2 22 1e 3a bf 39 b7 3e 81 ca 11 11 ┆9"),* :å G 0 " : 9 > ┆ 0x03ace0…03ad00 cd e9 18 3a 9b 18 b7 ca 0a 1e 3d cd a1 0b cd b8 11 cd 7c 1d c2 03 1e 3a 88 18 cd 38 1e cd 0b 19 ┆ : = ø : 8 ┆ 0x03ad00…03ad20 cd f6 1e 3a 8a 18 b7 c2 ea 1d 2a c0 39 7e 36 00 23 b7 c2 0d 1e e1 cd 68 2d 2a 71 11 cd 72 2d f6 ┆ : * 9ü6 # h-*q r- ┆ 0x03ad20…03ad40 ff c9 3a a8 18 b7 fa 0a 1e 21 fb 43 cd 77 3a cd 65 1d c2 0a 1e c3 c4 1d 2a 27 2c eb b7 c8 47 1a ┆ : ! C w: e *', G ┆ 0x03ad40…03ad60 fe 0d c8 13 fe 2c c2 3f 1e 05 c2 3f 1e c9 af cd a1 0b e5 cd 34 0c 19 7e e1 b9 ca 64 1e cd 65 0b ┆ , ? ? 4 ü d e ┆ 0x03ad60…03ad80 c2 52 1e c9 b7 c9 2a 9e 18 11 dd 1f 3a 7d 18 47 cd b7 38 c9 2a 9e 18 11 dd 1f 3a 7d 18 47 1a be ┆ R * :å G 8 * :å G ┆ 0x03ad80…03ada0 37 c0 23 13 05 c2 7e 1e b7 04 c9 e5 d5 c5 11 0e 00 cd 4e 1e c4 9b 1e c1 d1 e1 c9 3e 03 32 db 1f ┆7 # ü N > 2 ┆ 0x03ada0…03adc0 cd b8 11 cd 7c 1d c2 fe 1e 3a 81 18 e6 80 c4 13 1f 2a 9c 18 46 23 3a 81 18 e6 10 c2 df 1e cd c4 ┆ ø : * F#: ┆ 0x03adc0…03ade0 1e c3 f6 1e cd dd 20 da 27 1f d5 cd 63 1f 21 dd 1f d1 cd 9e 23 da 27 1f c2 f0 1e cd 06 19 c9 e5 ┆ ' c ! # ' ┆ 0x03ade0…03ae00 c5 cd 63 1f c1 e1 4b 11 dd 1f cd ff 21 da 27 1f 11 dd 1f cd 0b 19 3a 81 18 e6 01 cc 09 3a cd 94 ┆ c K ! ' : : ┆ 0x03ae00…03ae20 (15, 1, 7) 2c b7 c8 7d 2f 6f 7c 2f 67 23 c9 21 af bb c8 7e 02 1d 23 03 c3 0e 25 af bb c8 71 23 1d c3 19 25 ┆, å/oø/g# ! ü # % q# %┆ 0x03ae20…03ae40 fe f7 d0 e6 7f c8 d6 30 fe 0a d8 cd 65 23 c3 20 25 1f 1f 1f 1f e6 0f c9 87 87 87 87 c9 3a 12 2c ┆ 0 e# % : ,┆ 0x03ae40…03ae60 3d 32 12 2c c9 3a 12 2c 3c 32 12 2c 07 d0 3e fb c3 5f 25 3e fc c3 5f 25 3e fd c3 5f 25 3e ff 2a ┆=2 , : ,<2 , > _%> _%> _%> *┆ 0x03ae60…03ae80 24 2c f9 37 c9 3e fe 37 c9 af 32 12 2c c9 0e 00 1e 10 21 13 2c c3 17 25 01 0e 00 c3 81 25 01 07 ┆$, 7 > 7 2 , ! , % % ┆ 0x03ae80…03aea0 00 09 2b 54 5d 7e f5 cd 38 25 0d ca 9c 25 47 2b 7e f5 cd 31 25 b0 12 1b f1 c3 87 25 12 f1 cd 31 ┆ +TÅü 8% %G+ü 1% % 1┆ 0x03aea0…03aec0 25 c9 0e 08 f5 2b 54 5d cd 31 25 0d 47 ca bd 25 23 7e f5 cd 38 25 b0 12 13 f1 c3 a8 25 f1 cd 38 ┆% +TÅ 1% G %#ü 8% % 8┆ 0x03aec0…03aee0 25 b0 12 c9 21 21 2c 7e e6 f0 c0 21 14 2c cd 78 25 cd 3d 25 c8 c3 c4 25 21 06 00 09 01 21 2c 1e ┆% !!,ü ! , x% =% %! !, ┆ 0x03aee0…03af00 07 0a be c0 1d c8 2b 0b c3 e1 25 0a c6 05 27 c3 f8 25 0a c6 50 27 3e 00 02 d0 03 0a ce 00 27 c3 ┆ + % ' % P'> ' ┆ 0x03af00…03af20 f8 25 21 22 2c 7e b7 c8 af 77 2b 36 10 3e 06 2b 36 00 3d c2 0f 26 c3 45 25 60 69 7e 47 e6 80 32 ┆ %!",ü w+6 > +6 = & E%`iüG 2┆ 0x03af20…03af40 11 2c 78 e6 7f 32 12 2c 01 1b 2c 1e 07 23 c3 0c 25 3a 11 2c 57 3a 12 2c b7 ca 47 26 b2 02 03 1e ┆ ,x 2 , , # %: ,W: , G& ┆ 0x03af40…03af60 07 21 1b 2c c3 0c 25 02 c9 af 1a 8e 27 12 0d c8 13 23 c3 4a 26 37 3e 99 ce 00 96 eb 86 27 77 eb ┆ ! , % ' # J&7> 'w ┆ 0x03af60…03af80 0d c8 13 23 c3 56 26 eb 37 3e 99 ce 00 96 eb 86 27 eb 77 0d c8 13 23 c3 69 26 3e 80 c3 80 26 af ┆ # V& 7> ' w # i&> & ┆ 0x03af80…03afa0 32 51 27 af 32 1a 2c 3a 12 2c 57 b7 c2 9b 26 cd 19 26 21 11 2c 3a 51 27 ae 77 c9 0a b7 c8 e6 7f ┆2Q' 2 ,: ,W & &! ,:Q' w ┆ 0x03afa0…03afc0 ba c5 d2 b5 26 01 48 27 cd 31 26 c1 cd 19 26 21 11 2c c3 c1 26 01 48 27 1e 08 e1 cd 0c 25 21 48 ┆ & H' 1& &! , & H' %!H┆ 0x03afc0…03afe0 27 3a 51 27 ae 77 3a 48 27 47 e6 80 32 50 27 78 e6 7f 57 21 12 2c 96 fe 10 01 48 27 d2 19 26 72 ┆':Q' w:H'G 2P'x W! , H' &r┆ 0x03afe0…03b000 b7 ca f7 26 f5 21 1b 2c af cd a2 25 f1 3d c2 e4 26 01 1a 2c cd f2 25 3a 50 27 47 3a 11 2c b8 c2 ┆ & ! , % = & , %:P'G: , ┆ 0x03b000…03b020 (15, 1, 8) 2c 2a c2 39 22 29 2c cd 63 32 c2 1e 2d 3a bf 39 b7 ca 48 2d 2a 5c 2c eb cd a5 2d c3 fe 2c 2a c0 ┆,* 9"), c2 -: 9 H-*Ø, - ,* ┆ 0x03b020…03b040 39 d1 cd c8 2d 22 34 2c eb 44 4d 2a 39 2c cd 50 2d 13 e5 cd a5 2d e1 36 0d 23 22 32 2c 0a 77 03 ┆9 -"4, DM*9, P- - 6 #"2, w ┆ 0x03b040…03b060 23 1b 7a b3 c2 3d 2d c9 21 26 2c 7e e6 fb 77 e1 e5 d5 eb 2a c0 39 cd c8 2d eb 2a c2 39 19 22 c2 ┆# z =- !&,ü w * 9 - * 9 " ┆ 0x03b060…03b080 39 d1 e1 22 c0 39 af c9 e5 d5 c5 eb 21 26 2c c3 78 2d e5 d5 c5 11 26 2c cd 83 2d 47 cd b7 38 c1 ┆9 " 9 !&, x- &, -G 8 ┆ 0x03b080…03b0a0 d1 e1 c9 7e e6 04 3e 41 c8 3e 10 c9 2a c0 39 e5 d5 c5 3a 26 2c cd 84 2d 5f 16 00 cd a5 2d c1 d1 ┆ ü >A > * 9 :&, -_ - ┆ 0x03b0a0…03b0c0 e1 cd 68 2d c9 cd b5 2d d0 3e 81 cd 87 39 2a c4 39 f9 c3 e7 2c 2a c0 39 19 22 c0 39 e5 2a c2 39 ┆ h- - > 9* 9 ,* 9 " 9 * 9┆ 0x03b0c0…03b0e0 cd c8 2d 22 c2 39 e1 c9 7d 93 6f 7c 9a 67 c9 32 26 2c f5 2a c0 39 22 44 2c e5 d5 11 21 00 cd b5 ┆ -" 9 å oø g 2&, * 9"D, ! ┆ 0x03b0e0…03b100 2d e1 d1 d5 06 0c cd b7 38 af 12 cd 1b 39 d1 f1 32 26 2c cd 2a 39 c4 17 2e c0 3a 26 2c e6 02 ca ┆- 8 9 2&, *9 . :&, ┆ 0x03b100…03b120 04 2e af c9 eb cd a2 39 cd 2a 39 c4 2f 39 0e 15 cc 54 39 cc 06 39 c9 3a 26 2c ee 80 e6 82 3e fe ┆ . 9 *9 /9 T9 9 :&, > ┆ 0x03b120…03b140 cc 2f 39 c9 e5 3e 03 32 c9 39 d5 11 11 00 cd a5 2d d1 e1 e5 d5 3e ff cd 6f 30 cd 5d 30 d1 21 0c ┆ /9 > 2 9 - > o0 Å0 ! ┆ 0x03b140…03b160 00 19 34 3a c9 39 fe 03 cc 2a 39 ca 2a 2e 3a 26 2c e6 02 c2 6b 2e 21 0f 00 19 06 11 af 77 23 05 ┆ 4: 9 *9 *.:&, k.! w# ┆ 0x03b160…03b180 c2 5d 2e 21 c9 39 35 f2 2a 2e 7e 21 0c 00 19 86 e1 c9 21 00 00 22 37 2c 22 36 2c 2a 34 2c cd 09 ┆ Å.! 95 *.ü! ! "7,"6,*4, ┆ 0x03b180…03b1a0 2f f8 22 37 2c cd 4b 2f c2 ab 2d 2a 39 2c eb 21 36 2c 34 1a 13 fe 1a c2 92 2e 35 c9 21 00 00 22 ┆/ "7, K/ -*9, !6,4 .5 ! "┆ 0x03b1a0…03b1c0 2b 2c 22 48 2c 22 4a 2c 2a 46 2c cd 09 2f f8 22 49 2c e5 cd e6 2f c2 ab 2d e1 af cd 24 2f eb 44 ┆+,"H,"J,*F, / "I, / - $/ D┆ 0x03b1c0…03b1e0 4d af 93 5f ca ce 2e 03 3a 2f 2c 83 c6 06 5f 32 48 2c 2a 4c 2c 19 7e fe 1a c2 c7 2e 60 69 22 2b ┆M _ . :/, _2H,*L, ü .`i"+┆ 0x03b1e0…03b200 2c af 67 6f cd 5c 34 2a 4c 2c 7e b7 f0 32 4b 2c cd fb 2e 5e 23 56 eb 22 2b 2c c9 23 3a 2f 2c fe ┆, go Ø4*L,ü 2K, .^#V "+, #:/, ┆ 0x03b200…03b220 (15, 1, 9) 17 0e 11 c3 0d 17 0e 13 c3 0d 17 0e 0a 79 32 a8 18 37 c9 3a 5c 0a fe 02 c2 6a 18 37 c9 cd 35 17 ┆ y2 7 :Ø j 7 5 ┆ 0x03b220…03b240 ca 6a 18 c9 21 a2 18 7e 36 00 f5 cd 94 17 f1 be ca 35 17 b7 c9 3a 7e 0a b7 c8 37 c9 cd 8c 17 d8 ┆ j ! ü6 5 :ü 7 ┆ 0x03b240…03b260 cd 51 17 ca 3c 17 cd 8c 17 d8 cd 51 17 c2 46 17 c9 d5 cd ae 14 d1 7e e6 7f c9 cd d3 3c cd a3 3b ┆ Q < Q F ü < ;┆ 0x03b260…03b280 af c9 cd 8c 17 d0 cd 17 18 d8 cd 7d 17 34 c9 21 a2 18 7e b7 c8 35 cd 7d 17 dc 94 17 c9 cd b9 14 ┆ å 4 ! ü 5 å ┆ 0x03b280…03b2a0 c0 21 a2 18 7e b7 37 c8 35 c3 7d 17 cd ea 14 0e 06 37 c8 34 cd b9 14 c0 cd ea 14 37 c8 34 c3 94 ┆ ! ü 7 5 å 7 4 7 4 ┆ 0x03b2a0…03b2c0 17 cd 0d 18 c8 da b6 17 1c 43 cd cb 17 d4 c7 17 2b d2 aa 17 af c9 3a 7d 18 93 47 cd cb 17 d4 c7 ┆ C + :å G ┆ 0x03b2c0…03b2e0 17 23 d2 bb 17 af c9 05 c0 37 c9 e5 7d 2a 9e 18 95 32 a3 18 cd f2 17 e1 c8 7a e6 7f fe 02 da ec ┆ # 7 å* 2 z ┆ 0x03b2e0…03b300 17 c5 4f 3a a3 18 cd 81 13 79 c1 d0 56 cd 67 12 af c9 21 7d 18 be c8 cd 3a 15 cd e1 14 c8 67 cd ┆ O: y V g !å : g ┆ 0x03b300…03b320 1c 15 ca 0a 18 7c cd 2b 15 c8 fe 58 c9 cd ae 14 cd 2a 18 cd b9 14 c8 cd f8 14 c2 23 18 cd 16 15 ┆ ø + X * # ┆ 0x03b320…03b340 fe 01 c9 e5 2a a2 18 bd e1 c9 cd 1c 15 c0 16 01 c9 cd 0d 18 c8 da 4b 18 2a 9e 18 3a a2 18 3c 47 ┆ * K * : <G┆ 0x03b340…03b360 cd bb 17 c9 f5 7a cd 67 12 f1 c9 3a 7d 18 93 5f d5 16 00 19 d1 2b 43 c4 aa 17 c9 21 f3 43 cd 77 ┆ z g :å _ +C ! C w┆ 0x03b360…03b380 3a c3 61 18 21 e7 43 c3 6d 18 21 e5 43 79 fe 20 d2 75 18 c6 40 32 01 44 cd 77 3a b7 c9 1e 34 cd ┆: a ! C m ! Cy u @2 D w: 4 ┆ 0x03b380…03b3a0 30 34 c3 6b 34 22 90 2e 2a 06 00 2b f9 2b 2b 22 1e 2e 2a 90 2e e5 3a 28 2e b7 c2 00 00 32 21 2e ┆04 k4" .* + ++" .* . :(. 2!.┆ 0x03b3a0…03b3c0 2a 1e 2e f9 cd 16 00 3a ad 33 fe 3e 80 cd b6 18 cd 5d 0c c9 3e 00 32 db 1f af cd a1 0b cd b8 11 ┆* . : 3 > Å > 2 ┆ 0x03b3c0…03b3e0 cd 0b 19 cd cd 18 cd 65 0b c2 bd 18 c9 e5 cd f9 18 3a db 1f d6 80 ca dc 18 7e e6 fc 77 e1 3a 5c ┆ e : ü w :Ø┆ 0x03b3e0…03b400 0a fe 04 c0 06 01 c3 eb 18 06 00 e5 cd f9 18 7e e6 fe b0 77 32 84 18 e1 c9 2a a0 18 cd 34 0c d5 ┆ ü w2 * 4 ┆ 0x03b400…03b420 (15, 1, 10) 1b d4 1e 1c d4 a3 1c d2 24 1f cd 7c 1d c2 fe 1e 37 79 c9 3a 5c 0a fe 00 2a 5a 11 ca 38 16 fe 04 ┆ $ ø 7y :Ø *Z 8 ┆ 0x03b420…03b440 ca 38 16 f1 f6 ff c9 21 4b 1f 32 50 1f 11 e9 43 cd ee 16 3e 2a cd 51 1f cd 09 3a cd 77 3a cd 06 ┆ 8 !K 2P C >* Q : w: ┆ 0x03b440…03b460 19 cd 09 3a 3e 14 32 a8 18 37 c9 ff fe fd fc fb 00 e5 c5 4f 3a 7d 18 2a 9e 18 71 23 3d c2 5a 1f ┆ :> 2 7 O:å * q#= Z ┆ 0x03b460…03b480 c1 e1 c9 3a 7d 18 47 5f 3a 82 18 e6 02 4f c8 21 00 00 4c e5 2a 8e 18 eb 2a 8c 18 7e fe 21 ca 85 ┆ :å G_: O ! L * * ü ! ┆ 0x03b480…03b4a0 1f b7 c2 9b 1f 0c 1a fe 5e c2 8f 1f e3 69 e3 e5 21 2f 44 be e1 c2 9b 1f e3 61 e3 23 13 05 c2 7b ┆ ^ i !/D a # æ┆ 0x03b4a0…03b4c0 1f e1 41 59 7d cd b0 1f 6f 7c cd b0 1f 4f 7d c9 b7 c8 57 78 92 42 05 c9 2a 2d 2c 5e 16 00 19 19 ┆ AYå oø Oå Wx B *-,^ ┆ 0x03b4c0…03b4e0 2b 7e c9 cd b8 1f 11 d7 1f 12 cd a1 0b cd b8 11 eb 06 04 cd c4 1e c9 00 fd fe 31 00 00 00 00 52 ┆+ü 1 R┆ 0x03b4e0…03b500 45 43 4f 52 50 cb 49 00 00 00 61 bb 06 00 00 4c 4f 43 50 52 56 d0 3b 00 00 00 61 03 00 00 00 52 ┆ECORP I a LOCPRV ; a R┆ 0x03b500…03b520 45 43 4f 52 4c 38 3d 00 00 00 61 05 00 00 00 52 45 43 4f 52 43 4c 3c 00 00 00 61 9c 0d 00 00 46 ┆ECORL8= a RECORCL< a F┆ 0x03b520…03b540 52 45 45 43 00 00 00 00 00 61 9a 0d 00 00 46 52 45 45 50 9a 3c 00 00 00 61 91 0c 00 00 43 4f 50 ┆REEC a FREEP < a COP┆ 0x03b540…03b560 59 48 4c 01 46 00 00 00 61 42 01 00 00 53 41 56 45 4b 42 6a 3c 00 00 00 61 4c 01 00 00 53 45 54 ┆YHL F aB SAVEKBj< aL SET┆ 0x03b560…03b580 4b 42 5d 43 00 00 00 61 66 01 00 00 41 4c 4c 4f 43 42 00 00 00 00 00 61 2e 0d 00 00 49 4d 44 4f ┆KBÅC af ALLOCB a. IMDO┆ 0x03b580…03b5a0 53 5b 3c 00 00 00 61 04 0d 00 00 46 4f 50 45 4e c8 3d 00 00 00 61 09 0d 00 00 46 4d 41 4b 45 b2 ┆SÆ< a FOPEN = a FMAKE ┆ 0x03b5a0…03b5c0 3e 00 00 00 61 10 06 00 00 53 45 4c 45 43 54 28 3d 00 00 00 61 2e 07 00 00 4e 58 54 44 54 41 a2 ┆> a SELECT(= a. NXTDTA ┆ 0x03b5c0…03b5e0 3e 00 00 00 61 60 07 00 00 50 52 56 44 54 41 46 42 00 00 00 61 c5 00 00 00 43 4c 4e 58 e5 21 02 ┆> a` PRVDTAFB a CLNX ! ┆ 0x03b5e0…03b600 00 39 22 24 2c e1 af 32 9d 24 c5 0e 00 cd 09 21 cd 9e 21 d2 dc 21 cd 92 21 ca 05 21 c5 d5 cd ac ┆ 9"$, 2 $ ! ! ! ! ! ┆ 0x03b600…03b620 (15, 1, 11) 20 27 11 1b 2c 0e 07 21 49 27 cd 49 26 d0 21 1b 2c 3e 01 cd a2 25 cd 45 25 01 1a 2c cd f2 25 c9 ┆ ' , !I' I& ! ,> % E% , % ┆ 0x03b620…03b640 01 49 27 1e 07 cd d8 25 ca 69 25 11 1b 2c 21 49 27 0e 07 da 3c 27 cd 55 26 c3 c4 25 3a 50 27 32 ┆ I' % i% ,!I' <' U& %:P'2┆ 0x03b640…03b660 11 2c cd 67 26 c3 c4 25 00 21 2a 01 00 00 52 53 46 52 22 27 28 01 15 28 21 1b 2c 1e 07 cd 0c 25 ┆ , g& % !* RSFR"'( (! , %┆ 0x03b660…03b680 01 1c 28 21 15 28 1e 07 cd 0c 25 21 1c 28 cd 7e 25 32 23 28 0e 00 1e 0f 21 14 2c cd 17 25 21 14 ┆ (! ( %! ( ü%2#( ! , %! ┆ 0x03b680…03b6a0 2c 22 24 28 3e 07 32 26 28 2a 27 28 7e 23 22 27 28 b7 ca cd 27 f5 e6 0f ca b3 27 11 15 28 2a 24 ┆,"$(> 2&(*'(ü#"'( ' ' (*$┆ 0x03b6a0…03b6c0 28 eb 0e 07 f5 cd 49 26 d2 ae 27 13 eb 34 f1 3d c2 9b 27 f1 cd 31 25 b7 ca cd 27 11 1c 28 2a 24 ┆( I& ' 4 = ' 1% ' (*$┆ 0x03b6c0…03b6e0 28 eb 0e 08 f5 cd 49 26 f1 3d c2 bb 27 21 26 28 35 c8 2a 24 28 23 22 24 28 c3 89 27 3a 12 2c b7 ┆( I& = '!&(5 *$(#"$( ': , ┆ 0x03b6e0…03b700 c8 0a b7 ca 69 25 57 e6 80 21 11 2c ae 77 23 7a e6 7f 57 d6 40 86 fa 0c 28 77 60 69 23 cd 52 27 ┆ i%W ! , w#z W @ (w`i# R'┆ 0x03b700…03b720 cd c4 25 01 1a 2c cd f2 25 c3 02 26 7a fe 40 da 69 25 c3 4e 25 21 a3 0d 00 00 41 44 44 45 58 43 ┆ % , % &z @ i% N%! ADDEXC┆ 0x03b720…03b740 00 00 00 00 00 21 04 02 00 0a 57 e6 7f ca 53 25 5f 21 12 2c 7e b7 32 e6 28 c8 93 5f c6 41 77 f2 ┆ ! W S%_! ,ü 2 ( _ Aw ┆ 0x03b740…03b760 4a 28 7b 07 da 69 25 c3 4e 25 7a e6 80 2b ae 77 3e 10 32 e5 28 03 60 69 1e 07 01 d5 28 af 02 03 ┆J(æ i% N%z + w> 2 ( `i ( ┆ 0x03b760…03b780 cd 0c 25 af 32 dd 28 32 1a 2c af 3f 47 11 1a 2c 21 d5 28 0e 08 d2 7f 28 04 cd 55 26 c3 6d 28 cd ┆ % 2 (2 , ?G ,! ( ( U& m( ┆ 0x03b780…03b7a0 49 26 05 21 dd 28 7e 80 77 3a e5 28 3d 32 e5 28 01 08 00 ca b4 28 cd 81 25 3a 21 2c e6 f0 c2 aa ┆I& ! (ü w: (=2 ( ( %:!, ┆ 0x03b7a0…03b7c0 28 21 1b 2c cd 7e 25 c3 6a 28 af 21 d6 28 cd a2 25 c3 6a 28 eb 2b b6 0d c2 b5 28 32 e6 28 01 1a ┆(! , ü% j( ! ( % j( + (2 ( ┆ 0x03b7c0…03b7e0 2c 1e 08 21 dd 28 cd 0c 25 cd c4 25 01 1a 2c cd f2 25 c3 02 26 a1 02 00 00 47 45 4f 46 49 31 00 ┆, ! ( % % , % & GEOFI1 ┆ 0x03b7e0…03b800 00 00 00 00 21 36 08 c5 cd 53 21 0b af 02 03 c5 cd 31 26 c1 cd 91 29 c1 c5 cd dc 27 c1 c5 cd 31 ┆ !6 S! 1& ) ' 1┆ 0x03b800…03b820 (15, 1, 12) 03 d0 23 23 fe 01 c8 23 c9 11 00 00 42 7e 4f eb 09 eb 0e 11 09 b7 fa 0d 2f 1b eb b4 c9 29 17 05 ┆ ## # BüO / ) ┆ 0x03b820…03b840 c2 1d 2f c9 4f 06 07 af cd 1d 2f 09 f5 3a 2f 2c c6 06 4f f1 f5 cd cc 38 f1 3c 11 ff ff 13 09 da ┆ / O / :/, O 8 < ┆ 0x03b840…03b860 3d 2f 3d c2 3d 2f cd cc 38 09 c9 3e ff b7 ca 5c 2f d5 11 3b 2c cd a5 37 d1 3e 00 c8 22 3b 2c 3e ┆=/= =/ 8 > Ø/ ;, 7 > ";,>┆ 0x03b860…03b880 14 c3 69 2f 3e 15 2a 3b 2c e5 d5 c5 f5 cd a3 2f 32 4c 2f e5 2a 39 2c eb 0e 1a cd 54 39 2a 32 2c ┆ i/> *;, /2L/ *9, T9*2,┆ 0x03b880…03b8a0 eb c1 cd 3e 30 2a 34 2c 22 f5 39 3a 43 2c c4 91 30 f1 4f cd 54 39 21 4c 2f cc af 2f c4 42 39 c1 ┆ >0*4," 9:C, 0 O T9!L/ / B9 ┆ 0x03b8a0…03b8c0 d1 e1 c9 d6 15 4f 7d 29 e6 7f 6f d6 7f b1 c9 7e b7 c2 e4 2f 21 20 00 19 7e b7 21 0c 00 19 f2 d5 ┆ Oå) o ü /! ü ! ┆ 0x03b8c0…03b8e0 2f e5 70 34 eb cd 89 39 eb cd 2f 39 c4 db 30 3e ff cd 84 39 e1 35 cd 2a 39 c4 db 30 2a f5 39 3e ┆/ p4 9 /9 0> 9 5 *9 0* 9>┆ 0x03b8e0…03b900 ff cd 4b 30 af c9 3e ff b7 ca f7 2f d5 11 4e 2c cd a5 37 d1 3e 00 c8 22 4e 2c 3e 14 c3 04 30 3e ┆ K0 > / N, 7 > "N,> 0>┆ 0x03b900…03b920 15 2a 4e 2c e5 d5 c5 f5 cd a3 2f 32 e7 2f e5 2a 4c 2c eb 0e 1a cd 54 39 2a 44 2c eb c1 cd 3e 30 ┆ *N, /2 / *L, T9*D, >0┆ 0x03b920…03b940 2a 46 2c 22 f5 39 3a 53 2c c4 91 30 f1 4f cd 54 39 21 e7 2f cc af 2f c4 42 39 c1 d1 e1 c9 21 20 ┆*F," 9:S, 0 O T9! / / B9 ! ┆ 0x03b940…03b960 00 19 71 21 0c 00 19 7e 70 b8 c9 e5 d5 c5 d5 cd 6f 30 cd 5d 30 d1 dc 06 39 c1 d1 e1 c9 1a be c2 ┆ q! üp o0 Å0 9 ┆ 0x03b960…03b980 69 30 13 23 05 c2 5d 30 c9 eb cd b7 38 37 c9 e5 21 0c 00 19 be c2 7d 30 3e 82 cd 84 39 7e 23 23 ┆i0 # Å0 87 ! å0> 9ü##┆ 0x03b980…03b9a0 23 eb e1 01 11 00 b7 ca 8f 30 09 3d c2 8a 30 41 c9 e5 d5 c5 cd 6f 30 cd b7 38 c1 d1 e1 c9 2a 32 ┆# 0 = 0A o0 8 *2┆ 0x03b9a0…03b9c0 2c eb cd 96 39 2a 44 2c eb cd 96 39 2a 32 2c cd 89 39 2a 44 2c cd 89 39 c9 22 c6 39 e3 d5 c5 e5 ┆, 9*D, 9*2, 9*D, 9 " 9 ┆ 0x03b9c0…03b9e0 2a c6 39 e5 21 c8 39 34 c2 d2 30 21 04 00 39 22 c4 39 e1 c9 fe 01 c2 db 30 b7 c9 cd 84 39 e1 22 ┆* 9 ! 94 0! 9" 9 0 9 "┆ 0x03b9e0…03ba00 00 01 37 2a c4 39 f9 21 c8 39 36 ff c3 f7 30 21 c8 39 35 3a 5e 2c b7 c1 d1 e1 c9 cd b9 30 cd 04 ┆ 7* 9 ! 96 0! 95:^, 0 ┆ 0x03ba00…03ba20 (15, 1, 13) 11 07 00 19 d1 c9 3e 00 32 db 1f cd 2f 19 3a db 1f fe 80 c4 66 19 cd c5 19 cd 02 1a cd 95 1a c9 ┆ > 2 / : f ┆ 0x03ba20…03ba40 2a 27 2c eb 3e 01 c3 b6 18 eb 3e 40 c3 b6 18 e5 d5 c5 cd 14 1b f5 7e e6 7e ca 52 19 3a db 1f fe ┆*', > >@ ü ü R : ┆ 0x03ba40…03ba60 00 c2 52 19 cd 31 15 ca 52 19 0a d6 58 fe 02 da 5b 19 3a db 1f e6 80 07 cd 9b 0b 23 03 f1 3d c2 ┆ R 1 R X Æ : # = ┆ 0x03ba60…03ba80 35 19 c1 d1 e1 c9 3a db 1f fe 00 c8 e5 c5 21 82 18 46 c5 fe 40 ca 7d 19 fe 01 c2 89 19 3a 81 18 ┆5 : ! F @ å : ┆ 0x03ba80…03baa0 e6 40 ca 89 19 78 e6 fd 77 cd bc 12 cd bd 19 ca b5 19 b7 ca b5 19 fe 2e c2 a6 19 cd f8 14 3e 2e ┆ @ x w . >.┆ 0x03baa0…03bac0 ca a6 19 3a 2f 44 4f d5 cd 1d 13 d1 d2 8c 19 cd bd 19 c2 af 19 c1 21 82 18 70 c1 e1 c9 1a fe 0d ┆ :/DO ! p ┆ 0x03bac0…03bae0 c8 13 fe 2c c9 cd 31 15 c8 e5 d5 c5 cd ef 19 cd 14 1b 5f 16 00 7e e6 7f 4f 7a cd 81 13 da e4 19 ┆ , 1 _ ü Oz ┆ 0x03bae0…03bb00 af cd 9b 0b 23 14 7a bb c2 d5 19 c1 d1 e1 c9 cd 14 1b cd f8 14 c8 4f 06 00 09 eb 09 7e eb cd 9b ┆ # z O ü ┆ 0x03bb00…03bb20 0b c9 e5 d5 c5 cd 42 1a da 2a 1a ca 26 1a 7e e6 7f b9 c2 22 1a af cd 9b 0b 23 1d c2 0e 1a c1 d1 ┆ B * & ü " # ┆ 0x03bb20…03bb40 e1 c9 90 cc 9b 0b c1 d1 e1 c9 16 00 19 2b 7e e6 7f b9 c2 22 1a af cd 9b 0b 2b 1d c2 2e 1a c1 d1 ┆ +ü " + . ┆ 0x03bb40…03bb60 e1 c9 cd 1c 15 c8 cd 02 15 4f cd 0c 15 47 b1 c8 2a 9e 18 3a 7d 18 5f cd 16 15 c0 3c 37 c9 cd 31 ┆ O G * :å _ <7 1┆ 0x03bb60…03bb80 15 c8 e5 d5 c5 cd 0f 1b f5 cd c3 1a 3a dc 1f cc 9b 0b cd f8 14 c4 84 1a 23 13 03 f1 3d c2 68 1a ┆ : # = h ┆ 0x03bb80…03bba0 c1 d1 e1 c9 e5 21 a2 18 34 be e1 c0 36 2e cd 1c 15 c0 36 01 c9 e5 d5 c5 cd ab 1a cd 1c 15 cc ef ┆ ! 4 6. 6 ┆ 0x03bba0…03bbc0 19 cd ce 1a cd 31 1b c1 d1 e1 c9 cd 31 15 c8 cd 14 1b f5 cd c3 1a 1a cc 9b 0b 23 13 03 f1 3d c2 ┆ 1 1 # = ┆ 0x03bbc0…03bbe0 b2 1a c9 7e e6 7f 0a c2 e1 14 cd de 14 c9 cd 31 15 c8 cd 14 1b f5 cd eb 1a ca e2 1a 3a dc 1f cd ┆ ü 1 : ┆ 0x03bbe0…03bc00 9b 0b 23 13 03 f1 3d c2 d5 1a c9 0a cd e4 14 16 01 c2 0d 1b fe 27 c2 fa 1a 14 2b cd 06 1b 23 c8 ┆ # = ' + # ┆ 0x03bc00…03bc20 (15, 1, 14) 21 d5 c3 ed 20 78 c1 47 c9 cd 86 21 fe f8 ca ea 20 fe fe ca 3d 21 e5 c5 cd 2b 21 44 4d cd 83 22 ┆! x G ! =! +!DM "┆ 0x03bc20…03bc40 cd 53 21 c5 cd 31 26 d1 c1 e1 c9 cd a1 0b cd 34 0c 4e 23 5e 23 56 eb c5 cd 00 3c d1 c9 e5 1e 00 ┆ S! 1& 4 N#^#V < ┆ 0x03bc40…03bc60 cd 8d 21 3d fa 4e 21 1c cd 86 21 c2 40 21 e3 c5 c3 1b 21 e5 2a c0 39 7e b7 ca 67 21 87 da 5d 25 ┆ != N! ! @! ! * 9ü g! Å%┆ 0x03bc60…03bc80 01 09 00 09 c3 57 21 34 23 44 4d e1 c9 2a c2 39 eb 2a c0 39 36 ff eb 01 f7 ff 09 d0 eb 36 00 01 ┆ W!4#DM * 9 * 96 6 ┆ 0x03bc80…03bca0 09 00 09 c3 74 21 cd 8d 21 c8 23 05 c9 78 b7 c8 7e c9 78 b7 c8 7e fe f7 c0 cd 86 21 af c9 e5 d5 ┆ t! ! # x ü x ü ! ┆ 0x03bca0…03bcc0 c5 79 f5 cd ac 21 f1 b9 c1 d1 e1 c9 cd 86 21 e5 21 c0 21 be 23 4e 23 5e 23 56 23 c2 b3 21 e1 c9 ┆ y ! ! ! ! #N#^#V# ! ┆ 0x03bcc0…03bce0 00 01 58 25 f7 01 58 25 fd 02 7f 26 fc 02 7a 26 fb 03 dc 27 fa 03 29 28 f9 04 e7 28 78 c1 e3 f5 ┆ X% X% & z& ' )( (x ┆ 0x03bce0…03bd00 d5 cd f1 21 c1 c5 cd 31 26 d1 f1 e1 c1 47 c3 f0 20 c5 d5 cd f8 21 c1 c9 2b 36 00 23 c3 1b 26 cd ┆ ! 1& G ! +6 # & ┆ 0x03bd00…03bd20 0e 22 d8 79 b7 c4 86 21 c2 ff 21 af 12 c9 cd 86 21 fe ff ca 68 22 d5 f5 11 00 00 cd 8d 21 fe f8 ┆ " y ! ! ! h" ! ┆ 0x03bd20…03bd40 c2 33 22 cd 86 21 cd 86 21 57 cd 86 21 5f b7 c2 33 22 1d eb 22 66 22 eb f1 e3 c5 e5 cd 2b 21 7b ┆ 3" ! !W !_ 3" "f" +!æ┆ 0x03bd40…03bd60 cd 4f 22 d1 c1 c5 47 cd 68 22 69 c1 4d e1 c9 eb 2a 66 22 eb 14 15 c8 4a 0d 06 00 09 91 d2 62 22 ┆ O" G h"i M *f" J b"┆ 0x03bd60…03bd80 af c9 bb d8 7b c9 00 00 04 b7 05 c8 7e fe f7 d0 23 e6 7f fe 20 da 69 22 0c 0d c8 0d f6 80 12 13 ┆ æ ü # i" ┆ 0x03bd80…03bda0 c3 69 22 7b 32 9c 23 cd 4f 23 11 21 2c af 32 9b 23 cd 65 23 fe 20 ca 91 22 fe 2b ca a8 22 fe 2d ┆ i"æ2 # O# !, 2 # e# " + " -┆ 0x03bda0…03bdc0 c2 ab 22 3e 80 32 11 2c cd 65 23 fe 30 ca a8 22 c3 b6 22 cd 65 23 06 00 e5 21 2f 44 be e1 ca df ┆ "> 2 , e# 0 " " e# !/D ┆ 0x03bdc0…03bde0 22 fe 45 ca ed 22 fe 65 ca ed 22 cd 20 25 d2 26 23 47 cd 82 23 3a 9b 23 b7 cc 45 25 c3 b3 22 3a ┆" E " e " % &#G #: # E% ":┆ 0x03bde0…03be00 9b 23 1f da 26 23 2f 32 9b 23 c3 b3 22 cd 65 23 fe 20 ca ed 22 47 d6 2d 5f ca 02 23 c6 02 78 c2 ┆ # &#/2 # " e# "G -_ # x ┆ 0x03be00…03be20 (15, 1, 15) 26 c1 0a 57 e6 80 32 d1 2a 7a e6 7f 02 c5 cd 19 26 c1 c5 cd a8 24 c1 c5 0a fe 44 d2 86 29 cd 7a ┆& W 2 *z & $ D ) z┆ 0x03be20…03be40 26 1e 08 01 b1 2a 21 f6 2a cd 0c 25 af 32 b9 2a 3e 0f 01 76 2b cd d7 2b 01 b9 2a cd 31 26 c1 c5 ┆& *! * % 2 *> v+ + * 1& ┆ 0x03be40…03be60 cd 19 26 cd d3 24 e5 01 b9 2a cd 19 26 e1 7c b7 c2 86 29 7d 01 d2 2a 21 f2 2a b7 ca 7b 29 96 da ┆ & $ * & ø )å *! * æ) ┆ 0x03be60…03be80 6e 29 f5 c5 e5 cd dc 27 e1 c1 f1 c3 5a 29 86 23 03 03 03 03 03 03 03 03 c3 5e 29 3a d1 2a b7 c4 ┆n) ' Z) # ^): * ┆ 0x03be80…03bea0 a0 2a c1 c3 31 26 3a d1 2a b7 c1 ca 4e 25 c3 69 25 0a 32 d6 2b c5 3e 41 02 01 7e 2b cd 19 26 c1 ┆ * 1&: * N% i% 2 + >A ü+ & ┆ 0x03bea0…03bec0 c5 cd dc 27 01 b1 2a c5 cd 31 26 01 f6 2a cd 7f 26 01 b9 2a cd 31 26 c1 cd 19 26 01 f6 2a cd 7a ┆ ' * 1& * & * 1& & * z┆ 0x03bec0…03bee0 26 01 b9 2a cd 29 28 01 c1 2a c5 cd 31 26 af 32 b9 2a 01 b1 2a 21 ae 2b 1e 08 cd 0c 25 c1 cd dc ┆& * )( * 1& 2 * *! + % ┆ 0x03bee0…03bf00 27 01 ce 2b 3e 04 cd d7 2b 01 c9 2a cd 31 26 01 09 2c cd 19 26 01 b1 2a 21 8e 2b 1e 08 cd 0c 25 ┆' +> + * 1& , & *! + %┆ 0x03bf00…03bf20 01 a6 2b 3e 03 cd d7 2b 01 c9 2a cd 29 28 01 c1 2a cd dc 27 01 b1 2a cd 31 26 3a d6 2b d6 41 4f ┆ +> + * )( * ' * 1&: + AO┆ 0x03bf20…03bf40 07 3e 00 d2 27 2a 2f 47 cd 41 2a 01 fe 2a cd 7f 26 01 86 2b cd dc 27 01 b1 2a cd 7f 26 c1 c3 31 ┆ > '*/G A* * & + ' * & 1┆ 0x03bf40…03bf60 26 21 21 2c 22 9e 2a cd 4f 23 7c b5 ca 69 25 7c 07 d2 60 2a 7d 2f 6f 7c 2f 67 23 3e 80 32 11 2c ┆&!!," * O#ø i%ø `*å/oø/g#> 2 ,┆ 0x03bf60…03bf80 11 94 2a d5 e3 5e 23 56 23 e3 06 00 7d 93 6f 7c 9a 67 fa 79 2a 04 c3 6c 2a 19 e5 2a 9e 2a eb cd ┆ * ^#V# å oø g y* l* * * ┆ 0x03bf80…03bfa0 82 23 cd 45 25 eb 22 9e 2a e1 7b fe 01 c2 64 2a e1 c3 c4 25 10 27 e8 03 64 00 0a 00 01 00 44 4d ┆ # E% " * æ d* % ' d DM┆ 0x03bfa0…03bfc0 01 b1 2a c5 cd 31 26 01 f6 2a cd 19 26 c1 c3 29 28 00 00 00 00 21 70 0d 00 00 44 45 4c 46 49 4c ┆ * 1& * & )( !p DELFIL┆ 0x03bfc0…03bfe0 00 00 00 00 00 21 93 04 00 00 49 4e 49 54 43 00 00 00 5c 64 80 80 90 14 35 62 45 04 48 79 65 64 ┆ ! INITC Ød 5bE Hyed┆ 0x03bfe0…03c000 02 22 42 41 31 03 50 81 59 54 41 90 45 28 18 28 18 27 40 0a 04 01 41 00 00 00 00 00 00 10 40 00 ┆ "BA1 P YTA E( ( '@ A @ ┆ 0x03c000…03c020 (16, 0, 1) 31 c3 ef 30 eb 3a 26 2c e6 04 c2 ac 31 21 ff ff 22 ca 39 22 65 2c 7d 2a 2b 2c 22 cc 39 d5 2a ca ┆1 0 :&, 1! " 9"e,å*+," 9 * ┆ 0x03c020…03c040 39 eb 2a cc 39 19 06 01 23 23 cd c0 38 2b cd b9 39 22 5f 2c d1 ca 5b 31 d5 cd 1f 32 cd 7c 34 c4 ┆9 * 9 ## 8+ 9"_, Æ1 2 ø4 ┆ 0x03c040…03c060 db 30 d1 cd 90 35 c2 4a 31 37 f5 d4 60 34 f1 2a 5f 2c da 1a 31 22 ca 39 c3 1d 31 23 7d b4 ca 67 ┆ 0 5 J17 `4 *_, 1" 9 1#å g┆ 0x03c060…03c080 31 2b d5 cd 1f 32 d1 32 50 2c 22 51 2c 01 00 00 c5 e5 f5 cd 7c 34 37 cc 90 35 da 98 31 cd 60 34 ┆1+ 2 2P,"Q, ø47 5 1 `4┆ 0x03c080…03c0a0 f1 e1 c1 32 50 2c 22 51 2c 3a 5e 2c b7 cc b6 32 c8 cd 94 32 d8 c3 70 31 b7 e1 e1 e1 22 5f 2c 2a ┆ 2P,"Q,:^, 2 2 p1 "_,*┆ 0x03c0a0…03c0c0 65 2c 22 3d 2c 2a 63 2c 22 3e 2c c9 2a 34 2c 44 4d 2a 32 2c 09 2b cd 10 32 cd 90 35 c8 3f d8 2a ┆e,"=,*c,">, *4,DM*2, + 2 5 ? *┆ 0x03c0c0…03c0e0 32 2c cd 10 32 cd 90 35 c8 d8 22 ca 39 22 cc 39 cd 04 32 cd 10 32 eb e5 2a cc 39 cd b9 39 e1 eb ┆2, 2 5 " 9" 9 2 2 * 9 9 ┆ 0x03c0e0…03c100 ca ef 31 cd 90 35 ca cd 31 da cd 31 c3 ca 31 2a ca 39 cd 18 32 cd 90 35 c8 d8 7e 23 fe 0d c2 fa ┆ 1 5 1 1 1* 9 2 5 ü# ┆ 0x03c100…03c120 31 c3 f2 31 78 b7 1f 47 79 1f 4f 2a ca 39 09 c9 2b 7e fe 0d c2 10 32 23 22 27 2c cd 45 35 c9 d5 ┆1 1x Gy O* 9 +ü 2#"', E5 ┆ 0x03c120…03c140 c5 3a 2f 2c c6 06 cd d4 38 7d e6 7f bd 6c 60 29 c1 d1 c8 b7 23 c9 cd b9 30 cd 3f 32 c3 ef 30 47 ┆ :/, 8å l`) # 0 ?2 0G┆ 0x03c140…03c160 eb cd 52 32 c0 cd ba 35 c2 41 32 c9 fa 86 33 c3 54 33 78 87 d2 4c 32 fa e1 32 cd b9 30 cd 63 32 ┆ R2 5 A2 3 T3x L2 2 0 c2┆ 0x03c160…03c180 c3 ef 30 cd 7b 33 ca 77 32 2a 51 2c 3a 50 2c cd 88 32 c0 cd 94 32 d8 32 50 2c 22 51 2c cd 88 32 ┆ 0 æ3 w2*Q,:P, 2 2 2P,"Q, 2┆ 0x03c180…03c1a0 c0 cd b6 32 c2 73 32 c9 cd 5c 34 c8 3e ff 32 5e 2c b7 37 c9 2a 5f 2c 44 4d 3a 66 2c b7 2a 61 2c ┆ 2 s2 Ø4 > 2^, 7 *_,DM:f, *a,┆ 0x03c1a0…03c1c0 f0 60 69 23 d5 11 2b 2c cd a5 37 d1 ca 8c 32 22 5f 2c cd 1f 32 c9 e5 d5 c5 2a 30 2c 7e 3c ca d8 ┆ `i# +, 7 2"_, 2 *0,ü< ┆ 0x03c1c0…03c1e0 32 cd 9f 31 cd 2b 34 37 3e 01 c2 d8 32 2a 27 2c 7e b7 3c ca d8 32 3e 02 3d 3d 32 5e 2c c1 d1 e1 ┆2 1 +47> 2*',ü < 2> ==2^, ┆ 0x03c1e0…03c200 c9 cd b9 30 21 5e 2c 7e b7 ca f5 32 cd 04 31 cd b6 32 ca 42 33 2a 51 2c 22 ce 39 3a 50 2c 32 d0 ┆ 0!^,ü 2 1 2 B3*Q," 9:P,2 ┆ 0x03c200…03c220 (16, 0, 2) 38 23 c1 d1 e3 c9 cd 1b 39 c5 0e 10 cd 54 39 c1 fe fe c2 19 39 3e 83 b7 c9 af c9 e5 d5 c5 0e 1a ┆8# 9 T9 9> ┆ 0x03c220…03c240 11 80 00 cd 05 00 c1 d1 e1 c9 0e 0f c3 31 39 0e 16 cd 54 39 fe f5 d2 d9 30 e5 21 20 00 19 af 77 ┆ 19 T9 0 ! w┆ 0x03c240…03c260 e1 c9 fe ff ca 4c 39 fe 02 c2 d9 30 cd 84 39 eb cd 89 39 eb e5 c5 d5 79 d6 0f fe 09 d2 b1 39 1a ┆ L9 0 9 9 y 9 ┆ 0x03c260…03c280 47 d5 c5 cd 9c 39 32 f4 39 5f 0e 0e cd 05 00 c1 d1 af 12 c5 cd 05 00 c1 e1 70 eb b7 c1 e1 c9 fe ┆G 92 9_ p ┆ 0x03c280…03c2a0 01 ca d9 30 32 f3 39 b7 c9 e5 d5 c5 cd a2 39 cd 96 39 c1 d1 e1 c9 0e 13 cd 54 39 c9 3d f0 3a 5c ┆ 02 9 9 9 T9 = :Ø┆ 0x03c2a0…03c2c0 11 c9 11 d2 39 d5 06 0c cd b7 38 eb 70 2b 34 d1 c9 cd 05 00 d1 c1 e1 b7 c9 7a 94 c0 7b 95 c9 c4 ┆ 9 8 p+4 z æ ┆ 0x03c2c0…03c2e0 90 55 f6 ff c9 af 32 0a ff 7a 32 25 72 e5 2a 44 72 7a cd 27 17 22 26 72 e1 3a 47 72 32 28 72 c9 ┆ U 2 z2%r *Drz ' "&r :Gr2(r ┆ 0x03c2e0…03c300 e5 21 7c 38 ae e1 c5 e5 21 0a 72 46 36 00 e1 cd dc 54 4f 00 00 0a 72 79 c1 c8 e5 e5 cd 50 3a 67 ┆ !ø8 ! rF6 TO ry P:g┆ 0x03c300…03c320 cd 5e 3a 6f cd 3c 3d e1 c9 e5 d5 c5 2a 16 3c 3a 7f 18 67 cd 00 3c cd 6c 3a cd 50 3a 4f d4 fe 40 ┆ ^:o <= * <: g < l: P:O @┆ 0x03c320…03c340 c1 d1 e1 c9 e5 d5 c5 3a 1c 3c 3d 4f cd 6c 3a 2a 22 43 78 f6 80 47 cd fe 40 c1 d1 e1 c9 3a 40 02 ┆ : <=O l:*"Cx G @ :@ ┆ 0x03c340…03c360 3d 67 cd b4 3c 6f cd 3c 3d cd be 3c cd 9e 3c c9 e5 3a 7f 18 2a 17 3c 95 2a 1c 3c 85 e1 c9 e5 3a ┆=g <o <= < < : * < * < :┆ 0x03c360…03c380 7e 18 2a 16 3c 95 2a a2 18 85 e1 c9 cd b4 3c 47 3a 6b 11 b8 d0 47 c9 0e 1b 06 01 cd 6a 3f cd a3 ┆ü * < * <G:k G j? ┆ 0x03c380…03c3a0 3b 79 c9 3a 1b 3c c3 8b 3a 3e 06 06 01 cd e5 40 cd 59 42 c9 e5 d5 c5 21 1a 3c 7e 2f 77 cd ad 3a ┆;y : < :> @ YB ! <ü/w :┆ 0x03c3a0…03c3c0 cd 83 3a cd f5 3a cd a3 3b c1 d1 e1 c9 3a 1a 3c 21 1b 3c a6 3c 32 1c 3c c9 e5 d5 c5 11 1b 3c 1a ┆ : : ; : <! < <2 < < ┆ 0x03c3c0…03c3e0 4f 7e 12 b9 f5 23 47 87 80 47 11 20 3c cd b7 38 f1 ca eb 3b cd ad 3a cd 83 3a cd f5 3a cd a3 3b ┆Oü #G G < 8 ; : : : ;┆ 0x03c3e0…03c400 c1 d1 e1 c9 e5 d5 c5 af 32 17 3c 32 16 3c cd 96 3b c1 d1 e1 c9 e5 d5 c5 cd 09 3b f5 cd 2f 3b 47 ┆ 2 <2 < ; ; /;G┆ 0x03c400…03c420 (16, 0, 3) 40 02 3d b9 da 1b 41 e5 d5 c5 eb 2a c5 42 06 00 09 09 09 c1 70 23 73 23 72 d1 e1 f1 c9 e5 d5 c5 ┆@ = A * B p#s#r ┆ 0x03c420…03c440 cd cd 41 c2 41 41 cd 18 42 ca 20 41 cd a8 41 cd 48 41 47 f4 f3 41 04 05 fc 7c 41 cd cd 41 ca 36 ┆ A AA B A A HAG A øA A 6┆ 0x03c440…03c460 41 cd a8 41 c1 d1 e1 c9 3a b7 02 b7 c8 e5 c5 cd 73 41 0c 46 cd 99 3c ca 5e 41 3a b8 42 47 cd b4 ┆A A : sA F < ^A: BG ┆ 0x03c460…03c480 3c b9 78 ca 69 41 23 b6 2b 0d ca 6f 41 2b b6 b7 c1 e1 c9 2a be 42 44 4d cd 60 42 c9 cd 7f 41 cd ┆< x iA# + oA+ * BDM `B A ┆ 0x03c480…03c4a0 12 3f c5 06 02 3e ff cd 90 41 05 c2 85 41 c1 c9 cd 99 41 c0 3d c2 90 41 c9 e5 c5 4f af 3d c2 9d ┆ ? > A A A = A O = ┆ 0x03c4a0…03c4c0 41 cd e0 41 79 c1 e1 c9 e5 21 c4 42 34 35 36 00 e1 c8 e5 2a c0 42 cd 48 3d e1 c9 3a c4 42 b7 c0 ┆A Ay ! B456 * B H= : B ┆ 0x03c4c0…03c4e0 3c 32 c4 42 e5 2a be 42 22 c0 42 e1 c9 cd e0 41 c8 e5 2a ba 42 36 00 cd eb 41 22 ba 42 e1 b7 c9 ┆<2 B * B" B A * B6 A" B ┆ 0x03c4e0…03c500 cd f9 41 e5 2a ba 42 7e e1 b7 c9 23 34 35 f0 21 c7 42 c9 e5 d5 c5 c3 03 42 e5 d5 c5 cd 00 00 b7 ┆ A * Bü #45 ! B B ┆ 0x03c500…03c520 ca 14 42 cd 00 00 b7 ca 14 42 2a bc 42 77 cd eb 41 22 bc 42 c1 d1 e1 c9 e5 d5 c5 2a c5 42 06 00 ┆ B B* Bw A" B * B ┆ 0x03c520…03c540 7e 36 00 23 5e 23 56 23 b7 c2 3d 42 04 3a 40 02 b8 c2 20 42 cd a8 41 af 3c c1 d1 e1 c9 0e 00 cd ┆ü6 #^#V# =B :@ B A < ┆ 0x03c540…03c560 60 42 cd 84 42 ca 55 42 cd 45 3d eb 04 05 c4 f4 3d cd c6 3e af c1 d1 e1 c9 cd 18 42 ca 59 42 c9 ┆`B B UB E= = > B YB ┆ 0x03c560…03c580 d5 c5 f5 3a 41 02 cd 71 42 2a 0b 43 19 f1 c1 d1 c9 6f af 67 57 59 78 1f d2 7e 42 eb 19 eb 29 b7 ┆ :A qB* C o gWYx üB ) ┆ 0x03c580…03c5a0 c2 77 42 c9 c5 f5 e6 7f 47 f1 b7 eb f4 b2 40 eb 1a cd b5 3e be c2 af 42 0c 13 23 05 c2 90 42 0d ┆ wB G @ > B # B ┆ 0x03c5a0…03c5c0 0c cd b4 3c b9 ca af 42 7e fe 20 23 ca a0 42 e1 69 c9 00 00 00 00 00 00 ff 00 c7 42 c7 42 00 00 ┆ < Bü # B i B B ┆ 0x03c5c0…03c5e0 00 00 ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x03c5e0…03c600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x03c600…03c620 (16, 0, 4) 6d 6f 76 65 20 64 61 74 61 20 66 72 6f 6d 20 66 69 6c 65 01 1d 06 00 0d 4b 65 79 20 6e 6f 74 20 ┆move data from file Key not ┆ 0x03c620…03c640 66 6f 75 6e 64 2e 20 48 69 74 20 45 53 43 20 74 6f 20 72 65 2d 65 6e 74 65 72 20 6b 65 79 3a 20 ┆found. Hit ESC to re-enter key: ┆ 0x03c640…03c660 00 0d 45 6e 64 20 6f 66 20 66 69 6c 65 2e 0d 01 b5 08 63 6f 6e 74 69 6e 75 65 20 73 63 61 6e 3a ┆ End of file. continue scan:┆ 0x03c660…03c680 20 00 0d 46 69 6c 65 20 69 73 20 65 6d 70 74 79 20 73 6f 20 61 64 64 20 6d 6f 64 65 20 69 73 20 ┆ File is empty so add mode is ┆ 0x03c680…03c6a0 74 68 65 20 6f 6e 6c 79 20 6c 65 67 61 6c 20 6d 6f 64 65 2e 0d 01 a9 08 2e 00 0d 54 68 65 20 66 ┆the only legal mode. . The f┆ 0x03c6a0…03c6c0 69 6c 65 20 64 6f 65 73 20 6e 6f 74 20 63 6f 6e 74 61 69 6e 20 61 6e 79 20 72 65 63 6f 72 64 73 ┆ile does not contain any records┆ 0x03c6c0…03c6e0 20 74 6f 20 6d 61 74 63 68 20 74 68 65 20 73 63 61 6e 20 6d 61 73 6b 2e 0d 01 b5 08 63 6f 6e 74 ┆ to match the scan mask. cont┆ 0x03c6e0…03c700 69 6e 75 65 20 69 6e 20 45 44 49 54 20 53 43 41 4e 20 4d 41 53 4b 20 6d 6f 64 65 2e 00 0d 54 68 ┆inue in EDIT SCAN MASK mode. Th┆ 0x03c700…03c720 65 20 62 61 74 63 68 20 66 69 6c 65 20 68 61 73 20 62 65 65 6e 20 76 65 72 69 66 69 65 64 2e 0d ┆e batch file has been verified. ┆ 0x03c720…03c740 01 b5 08 65 6e 74 65 72 20 61 6e 6f 74 68 65 72 20 62 61 74 63 68 20 6e 61 6d 65 2e 00 0d 54 68 ┆ enter another batch name. Th┆ 0x03c740…03c760 61 74 20 66 69 6c 65 20 69 73 20 69 6e 20 75 73 65 2e 20 0d 01 b5 08 65 01 50 08 2e 00 6e 74 65 ┆at file is in use. e P . nte┆ 0x03c760…03c780 72 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 61 20 66 69 6c 65 20 74 6f 20 75 73 65 0d 66 6f 72 20 ┆r the name of a file to use for ┆ 0x03c780…03c7a0 74 65 6d 70 6f 72 61 72 79 20 77 6f 72 6b 20 73 70 61 63 65 00 0d 46 69 6c 65 20 6d 61 69 6e 74 ┆temporary work space File maint┆ 0x03c7a0…03c7c0 65 6e 61 6e 63 65 20 69 73 20 63 6f 6d 70 6c 65 74 65 01 1a 1a 00 48 69 74 20 45 53 43 20 6b 65 ┆enance is complete Hit ESC ke┆ 0x03c7c0…03c7e0 79 00 01 a9 08 20 74 6f 20 00 0d 4b 65 79 20 61 6c 72 65 61 64 79 20 65 78 69 73 74 73 01 1a 1a ┆y to Key already exists ┆ 0x03c7e0…03c800 00 43 61 6e 27 74 20 72 65 61 64 20 66 6f 72 6d 20 64 65 66 69 6e 69 74 69 6f 6e 20 66 69 6c 65 ┆ Can't read form definition file┆ 0x03c800…03c820 (16, 0, 5) 39 2a 5f 2c cd 1f 32 cd 45 33 c2 1e 33 2a 5f 2c 7c b5 3e ff ca 3e 33 2b 22 5f 2c cd 1f 32 22 51 ┆9*_, 2 E3 3*_,ø > >3+"_, 2"Q┆ 0x03c820…03c840 2c 32 50 2c cd 5c 34 c4 db 30 3a 66 2c 47 04 2a 61 2c c4 45 33 c2 1e 33 cd b6 32 c2 f5 32 b7 32 ┆,2P, Ø4 0:f,G *a, E3 3 2 2 2┆ 0x03c840…03c860 5e 2c c3 ef 30 eb 2a ce 39 eb 47 3a d0 39 b8 cc b9 39 78 c9 cd b9 30 cd 7b 33 ca 63 33 2a 40 2c ┆^, 0 * 9 G: 9 9x 0 æ3 c3*@,┆ 0x03c860…03c880 3a 42 2c cd 6f 33 fe fe ca 5d 33 b7 c3 ef 30 22 3e 2c 32 3d 2c e5 d5 c5 c3 c4 32 3a 5e 2c 3c c0 ┆:B, o3 Å3 0">,2=, 2:^,< ┆ 0x03c880…03c8a0 67 6f 22 5f 2c c9 cd b9 30 cd 9a 33 fe fe cc b2 33 fe fe ca 8e 33 b7 c3 ef 30 3a 5e 2c b7 ca b2 ┆go"_, 0 3 3 3 0:^, ┆ 0x03c8a0…03c8c0 33 2a 37 2c 22 3e 2c 3a 36 2c 32 3d 2c b5 b4 3e ff c8 2a 3e 2c cd 4b 2f c4 db 30 3a 3d 2c 22 40 ┆3*7,">,:6,2=, > *>, K/ 0:=,"@┆ 0x03c8c0…03c8e0 2c 32 42 2c 4f cd 00 34 cd e4 33 d8 ca c8 33 cd e4 33 da dd 33 c2 cf 33 0c f2 df 33 23 0e 00 79 ┆,2B,O 4 3 3 3 3 3 3# y┆ 0x03c8e0…03c900 cd 6f 33 c9 1b b7 0d fc f2 33 d8 1a fe 0d c8 fe 0a c9 7c b5 ca 8c 32 2b cd 4b 2f c4 db 30 0e 7f ┆ o3 3 ø 2+ K/ 0 ┆ 0x03c900…03c920 eb 2a 39 2c 06 00 09 eb c9 cd a1 33 3e ff 32 5e 2c 2a 27 2c 7e 23 a6 3c c0 2a 3e 2c 22 37 2c 3a ┆ *9, 3> 2^,*',ü# < *>,"7,:┆ 0x03c920…03c940 3d 2c 32 36 2c c9 3a 5e 2c b7 c9 cd 3c 34 cd be 34 79 32 42 2c 2a 3b 2c 22 40 2c c9 2a 3e 2c cd ┆=,26, :^, <4 4y2B,*;,"@, *>, ┆ 0x03c940…03c960 4b 2f 21 00 00 22 5c 2c b7 c4 d4 30 c0 2a 27 2c eb 2a 39 2c 3a 3d 2c 4f 06 00 09 c9 cd 7c 34 c0 ┆K/! "Ø, 0 *', *9,:=,O ø4 ┆ 0x03c960…03c980 d5 06 06 11 61 2c cd a1 34 d1 c0 2a 63 2c 2b 22 63 2c 2a 65 2c 25 2d 22 65 2c b7 c9 4f c5 cd e6 ┆ a, 4 *c,+"c,*e,%-"e, O ┆ 0x03c980…03c9a0 2f c1 b7 c4 d4 30 c0 d5 2a 30 2c eb 06 00 2a 4c 2c 09 3a 2f 2c 47 cd 9b 34 d1 c9 7e fe 1a ca d9 ┆/ 0 *0, *L, :/,G 4 ü ┆ 0x03c9a0…03c9c0 30 7e 12 23 13 0c f2 b8 34 0e 00 2a 4e 2c 23 cd e6 2f c4 db 30 2a 4c 2c 05 c2 a1 34 af c9 cd 1a ┆0ü # 4 *N,# / 0*L, 4 ┆ 0x03c9c0…03c9e0 35 c0 fe 22 ca e8 34 cd fe 34 fe 2c ca be 34 fe 0d c8 cd 1a 35 c0 c3 c7 34 cd 1a 35 c0 cd fe 34 ┆5 " 4 4 , 4 5 4 5 4┆ 0x03c9e0…03ca00 fe 2c ca be 34 fe 0d c8 cd 1a 35 c0 fe 22 ca d9 34 fe 2c c2 f8 34 f6 80 cd fe 34 c3 e8 34 12 e5 ┆ , 4 5 " 4 , 4 4 4 ┆ 0x03ca00…03ca20 (16, 0, 6) f1 b0 c4 96 3b c1 d1 e1 c9 21 16 3c cd b4 3c 5f 3a 7e 18 57 3a 7d 18 47 0e 0f bb 3a 6b 11 da 44 ┆ ; ! < <_:ü W:å G :k D┆ 0x03ca20…03ca40 3b 78 82 f5 3a a2 18 82 57 f1 06 00 c3 44 3b 3a 40 02 2a 1c 3c 95 5f 3a 7f 18 57 21 17 3c 01 03 ┆;x : W D;:@ * < _: W! < ┆ 0x03ca40…03ca60 00 3a 6c 11 93 d2 49 3b af ca 82 3b 32 15 3c 7e b7 ca 59 3b 81 ba d2 6d 3b 7e 83 91 4f 7a 80 b9 ┆ :l I; ;2 <ü Y; m;ü Oz ┆ 0x03ca60…03ca80 d2 6d 3b 3a 15 3c be da 82 3b 3e 00 c9 3a 15 3c 4f 7b 1f 5f 78 b7 1f 82 93 d2 7d 3b af b9 da 82 ┆ m;: < ;> : <Oæ _x å; ┆ 0x03ca80…03caa0 3b 79 4e 77 91 c9 e5 d5 c5 cd 09 3b b7 f5 c4 96 3b f1 c1 d1 e1 c9 2a 16 3c cd 00 3c 22 18 3c cd ┆;yNw ; ; * < <" < ┆ 0x03caa0…03cac0 a3 3b c9 3a b2 42 e5 d5 c5 6f cd fb 39 cd e8 3b 3a 1c 3c bd d2 e4 3b 4f 7d f5 cd 6c 3a 5f 16 00 ┆ ; : B o 9 ;: < ;Oå l:_ ┆ 0x03cac0…03cae0 e5 2a 17 3c 3a 6c 11 95 2a 1c 3c 85 e1 bd da d2 3b 7d 2a 18 3c cd fe 40 19 0c b9 c2 d5 3b f1 91 ┆ * <:l * < ;å* < @ ; ┆ 0x03cae0…03cb00 41 c4 e5 40 c1 d1 e1 c9 e5 d5 c5 2a c5 42 eb 21 1d 3c 3a 1c 3c 4f 87 81 47 cd b7 38 c1 d1 e1 c9 ┆A @ * B ! <: <O G 8 ┆ 0x03cb00…03cb20 44 4d 3a 6b 11 cd 71 42 2a 6d 11 19 c9 7c 2f 67 7d 2f 6f 23 c9 72 00 00 6d 11 ff 06 07 cf c6 46 ┆DM:k qB*m ø/gå/o# r m F┆ 0x03cb20…03cb40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e5 d5 c5 3a 40 02 32 b2 42 47 2a b3 02 22 ┆ :@ 2 BG* "┆ 0x03cb40…03cb60 0b 43 cd 99 3c 2a 2c 03 c2 53 3c 22 0b 43 0e 00 cd 60 42 22 c5 42 3a 40 02 5f 16 00 19 19 19 22 ┆ C <*, S<" C `B" B:@ _ "┆ 0x03cb60…03cb80 2c 03 3a 4d 02 21 56 02 86 21 5b 02 86 c6 02 32 0a 43 1e 03 2a 01 00 19 22 fd 41 19 22 04 42 19 ┆, :M !V !Æ 2 C * " A " B ┆ 0x03cb80…03cba0 22 ac 3e cd a7 02 21 95 02 cd ea 3d 3a b1 02 cd 1b 3e cd d3 3c c1 d1 e1 c9 3a b2 02 b7 c9 cd aa ┆" > ! =: > < : ┆ 0x03cba0…03cbc0 02 21 9e 02 cd ea 3d cd 1e 3e c9 3c 3d c8 cd 99 41 c3 ac 3c 3a ad 02 b7 3a 41 02 c0 3d c9 af 32 ┆ ! = > <= A <: :A = 2┆ 0x03cbc0…03cbe0 b9 42 3a b8 42 fe ff c8 e5 2a b6 42 ae e6 80 ae 77 e1 c9 3a b6 02 32 b9 42 e5 d5 c5 2a 40 02 eb ┆ B: B * B w : 2 B *@ ┆ 0x03cbe0…03cc00 2a 0b 43 22 b4 42 22 b6 42 3e 20 32 b8 42 cd 99 3c c2 07 3d 21 ff ff 22 be 42 cd 6e 3e 63 25 2e ┆* C" B" B> 2 B < =! " B n>c%.┆ 0x03cc00…03cc20 (16, 0, 7) 00 00 00 00 00 00 00 ff 00 00 00 00 00 fc 1a fc 1a 06 4f 41 02 4f 90 02 4f df 02 4f 2e 03 4f 7d ┆ OA O O O. Oå┆ 0x03cc20…03cc40 03 4f 6a 04 06 4f 41 02 4f 90 02 4f cc 03 4f 2e 03 4f 7d 03 4f 6a 04 06 4f 41 02 4f 90 02 4f cc ┆ Oj OA O O O. Oå Oj OA O O ┆ 0x03cc40…03cc60 03 4f 2e 03 4f 1b 04 4f 6a 04 06 4f 41 02 4f f6 04 4f cc 03 4f 2e 03 4f 1b 04 4f 6a 04 c8 04 ec ┆ O. O Oj OA O O O. O Oj ┆ 0x03cc60…03cc80 04 f6 04 46 05 0f 00 af 05 15 00 c4 05 cb 05 d9 05 60 06 c8 06 0a 07 34 07 55 07 8d 07 f0 07 30 ┆ F ` 4 U 0┆ 0x03cc80…03cca0 08 88 08 bd 08 2f 0b af 09 69 0a d4 08 66 0b ad 09 44 09 09 09 20 09 32 09 f7 08 5b 09 6d 09 ec ┆ / i f D 2 Æ m ┆ 0x03cca0…03ccc0 0b 0a 0c 37 0c 70 0d 2e 0f 3c 11 cd 11 bb 12 31 14 9d 10 2e 15 19 16 69 16 bc 17 b9 0d c6 0d 00 ┆ 7 p . < 1 . i ┆ 0x03ccc0…03cce0 19 2d 19 42 19 52 19 62 19 6a 19 7a 19 97 19 af 19 b7 19 cc 19 4a 19 5a 19 6a 19 7a 19 87 19 a7 ┆ - B R b j z J Z j z ┆ 0x03cce0…03cd00 19 b7 19 cc 19 22 1a 4b 1a 63 1a 91 1a c9 1a fa 1a 1a 1b c9 1a 30 1b 4a 1b 78 1b d6 1b fa 1b fb ┆ " K c 0 J x ┆ 0x03cd00…03cd20 1b 00 00 02 e0 30 da 00 02 c2 0a 1e 00 00 42 41 54 43 48 20 20 20 43 4f 4d 00 46 4f 52 4d 47 45 ┆ 0 BATCH COM FORMGE┆ 0x03cd20…03cd40 4e 20 43 4f 4d 00 00 00 00 44 54 41 4e 44 58 2e 38 39 41 42 43 44 45 46 47 48 61 62 63 64 65 66 ┆N COM DTANDX.89ABCDEFGHabcdef┆ 0x03cd40…03cd60 67 68 0a 16 12 0d 0b 09 06 05 04 02 01 00 43 55 52 53 4f 52 3a 20 20 20 20 20 5e 41 3d 70 72 65 ┆gh CURSOR: ^A=pre┆ 0x03cd60…03cd80 76 20 66 69 65 6c 64 20 20 20 20 20 5e 53 3d 6c 65 66 74 20 63 68 61 72 20 20 20 20 5e 44 3d 72 ┆v field ^S=left char ^D=r┆ 0x03cd80…03cda0 69 67 68 74 20 63 68 61 72 20 20 20 20 5e 46 3d 6e 65 78 74 20 66 69 65 6c 64 20 20 20 20 20 20 ┆ight char ^F=next field ┆ 0x03cda0…03cdc0 20 20 20 20 20 20 20 20 20 5e 54 3d 66 69 72 73 74 20 66 69 65 6c 64 20 20 20 20 5e 4c 3d 6c 61 ┆ ^T=first field ^L=la┆ 0x03cdc0…03cde0 73 74 20 66 69 65 6c 64 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆st field ┆ 0x03cde0…03ce00 20 20 20 20 20 20 20 20 20 20 20 20 46 49 45 4c 44 20 45 44 49 54 3a 20 5e 47 3d 64 65 6c 65 74 ┆ FIELD EDIT: ^G=delet┆ 0x03ce00…03ce20 (16, 0, 8) 01 89 09 00 46 69 6c 65 20 6e 6f 74 20 66 6f 75 6e 64 01 89 09 00 49 6e 73 75 66 66 69 63 69 65 ┆ File not found Insufficie┆ 0x03ce20…03ce40 6e 74 20 6d 65 6d 6f 72 79 01 89 09 00 44 69 72 65 63 74 6f 72 79 20 6f 6e 20 64 01 33 09 00 44 ┆nt memory Directory on d 3 D┆ 0x03ce40…03ce60 69 73 6b 20 01 f4 01 3a 20 66 75 6c 6c 01 89 09 00 42 41 54 43 48 2e 43 4f 4d 20 6e 6f 74 20 66 ┆isk : full BATCH.COM not f┆ 0x03ce60…03ce80 6f 75 6e 64 01 89 09 00 45 6e 64 20 6f 66 20 73 65 73 73 69 6f 6e 01 89 09 00 44 69 73 6b 20 01 ┆ound End of session Disk ┆ 0x03ce80…03cea0 f4 01 3a 20 72 65 61 64 2f 77 72 69 74 65 20 66 61 69 6c 75 72 65 2e 0d 52 65 70 6c 61 63 65 20 ┆ : read/write failure. Replace ┆ 0x03cea0…03cec0 73 79 73 74 65 6d 20 64 69 73 6b 2c 20 74 79 70 65 20 72 65 74 75 72 6e 2e 00 0d 00 0d 20 54 68 ┆system disk, type return. Th┆ 0x03cec0…03cee0 65 20 66 6f 72 6d 20 64 65 66 69 6e 69 74 69 6f 6e 20 66 69 6c 65 20 69 73 20 77 68 65 72 65 20 ┆e form definition file is where ┆ 0x03cee0…03cf00 74 68 65 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 73 20 66 6f 72 20 79 6f 75 72 20 66 6f 72 6d ┆the specifications for your form┆ 0x03cf00…03cf20 20 61 72 65 0d 20 73 74 6f 72 65 64 2e 20 20 49 66 20 79 6f 75 20 68 61 76 65 20 6e 6f 74 20 79 ┆ are stored. If you have not y┆ 0x03cf20…03cf40 65 74 20 64 65 73 69 67 6e 65 64 20 61 20 66 6f 72 6d 2c 20 63 68 6f 6f 73 65 20 61 20 6e 61 6d ┆et designed a form, choose a nam┆ 0x03cf40…03cf60 65 20 66 6f 72 20 74 68 65 20 66 6f 72 6d 0d 20 64 65 66 69 6e 69 74 69 6f 6e 20 66 69 6c 65 20 ┆e for the form definition file ┆ 0x03cf60…03cf80 61 6e 64 20 65 6e 74 65 72 20 69 74 20 68 65 72 65 2e 01 f3 0a 00 0d 20 41 20 66 6f 72 6d 20 64 ┆and enter it here. A form d┆ 0x03cf80…03cfa0 65 66 69 6e 69 74 69 6f 6e 20 6e 61 6d 65 20 69 73 20 65 69 67 68 74 20 28 6f 72 20 6c 65 73 73 ┆efinition name is eight (or less┆ 0x03cfa0…03cfc0 29 20 6c 65 74 74 65 72 73 20 61 6e 64 2f 6f 72 20 6e 75 6d 62 65 72 73 2c 0d 20 6f 70 74 69 6f ┆) letters and/or numbers, optio┆ 0x03cfc0…03cfe0 6e 61 6c 6c 79 20 70 72 65 63 65 65 64 65 64 20 62 79 20 61 20 64 69 73 6b 20 64 72 69 76 65 20 ┆nally preceeded by a disk drive ┆ 0x03cfe0…03d000 28 6c 65 74 74 65 72 20 41 2d 50 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 63 6f 6c 6f 6e 29 2e 0d ┆(letter A-P followed by colon). ┆ 0x03d000…03d020 (16, 0, 9) d5 2a 29 2c eb 2a 5c 2c cd b9 39 32 bf 39 d1 1a ca 18 35 13 23 22 5c 2c e1 c9 7e fe 1a ca d9 30 ┆ *), *Ø, 92 9 5 #"Ø, ü 0┆ 0x03d020…03d040 23 0c f2 36 35 0e 00 2a 3b 2c 23 f5 cd 4b 2f c4 db 30 f1 2a 39 2c fe 0d c2 43 35 7e fe 0a cc 1a ┆# 65 *;,# K/ 0 *9, C5ü ┆ 0x03d040…03d060 35 3e 0d bf c9 e5 d5 c5 2a 30 2c eb 2a 2d 2c 4e 23 7e 23 46 23 e5 cd 7d 35 cd 65 35 e1 0d c2 51 ┆5> *0, *-,N#ü#F# å5 e5 Q┆ 0x03d060…03d080 35 c1 d1 e1 c9 7e fe 2c ca 70 35 fe 0d c2 73 35 3e 20 2b e6 7f 12 23 13 05 c2 65 35 c9 2a 27 2c ┆5 ü , p5 s5> + # e5 *',┆ 0x03d080…03d0a0 b7 c8 f5 7e 23 fe 2c c2 83 35 f1 3d c2 82 35 c9 e5 d5 c5 2a 30 2c 3a 2f 2c 47 7e b7 3d fa b3 35 ┆ ü# , 5 = 5 *0,:/,Gü = 5┆ 0x03d0a0…03d0c0 1a fe 01 ca ac 35 be 3e fe c2 b3 35 23 13 05 c2 a0 35 af c1 d1 e1 32 5e 2c c9 e5 d5 c5 2a 27 2c ┆ 5 > 5# 5 2^, *',┆ 0x03d0c0…03d0e0 cd db 35 c2 d7 35 7e fe 0d ca cd 35 23 1a 13 d6 0d c2 c0 35 32 5e 2c c1 d1 e1 c9 cd f0 35 47 eb ┆ 5 5ü 5# 52^, 5G ┆ 0x03d0e0…03d100 cd f0 35 eb fe 01 ca db 35 b8 c0 b7 c2 db 35 c9 7e d6 2c c8 7e d6 0d c8 7e 23 e6 7f c9 cd b9 30 ┆ 5 5 5 ü , ü ü# 0┆ 0x03d100…03d120 cd 06 36 c3 ef 30 3a 4b 2c b7 c2 3f 36 3a 5e 2c 3c c2 20 36 2a 2b 2c 23 22 2b 2c 3e ff c3 64 36 ┆ 6 0:K, ?6:^,< 6*+,#"+,> d6┆ 0x03d120…03d140 32 4b 2c 2a ca 39 7c b5 c2 33 36 cd 3f 36 cd 81 36 af c9 23 7c b5 c2 3c 36 22 5f 2c cd 81 36 3a ┆2K,* 9ø 36 ?6 6 #ø <6"_, 6:┆ 0x03d140…03d160 50 2c 2a 51 2c cd 5c 34 c4 7f 39 3a 66 2c f5 2a 61 2c e5 2a 49 2c 22 61 2c 3a 48 2c 32 66 2c cd ┆P,*Q, Ø4 9:f, *a, *I,"a,:H,2f, ┆ 0x03d160…03d180 c7 36 e1 f1 22 61 2c 32 66 2c cd 45 35 2a 37 2c 22 63 2c 3a 36 2c 32 65 2c cd 11 37 cd 61 37 af ┆ 6 "a,2f, E5*7,"c,:6,2e, 7 a7 ┆ 0x03d180…03d1a0 c9 af 67 6f cd 5c 34 c4 db 30 3a 48 2c 2a 49 2c f5 cd 11 37 f1 22 61 2c 32 66 2c 2a 2b 2c eb 2a ┆ go Ø4 0:H,*I, 7 "a,2f,*+, *┆ 0x03d1a0…03d1c0 63 2c e5 2a 30 2c 36 ff 3a 2f 2c fe 03 da bf 36 23 73 23 72 af 67 6f cd cd 36 e1 22 63 2c c9 eb ┆c, *0,6 :/, 6#s#r go 6 "c, ┆ 0x03d1c0…03d1e0 2b 22 63 2c c3 b4 36 2a 51 2c 3a 50 2c f5 cd e6 2f c4 84 39 f1 cd df 36 cd ff 2f c4 84 39 c9 2a ┆+"c, 6*Q,:P, / 9 6 / 9 *┆ 0x03d1e0…03d200 30 2c eb 2a 4c 2c 4f 06 00 09 3a 2f 2c 47 cd ac 37 06 06 eb 2a 63 2c 23 22 63 2c 2a 65 2c 24 2c ┆0, *L,O :/,G 7 *c,#"c,*e,$,┆ 0x03d200…03d220 (16, 0, 10) 00 cd 3c 3d 2a 0b 43 42 36 20 05 23 c2 08 3d cd 99 3c c2 1f 3d 0e 0d cd a4 3e 0e 0a cd a4 3e 1d ┆ <=* CB6 # = < = > > ┆ 0x03d220…03d240 c2 07 3d 2a c5 42 3a 40 02 47 80 80 73 23 3d c2 2c 3d 21 00 00 cd 3c 3d c1 d1 e1 c9 f5 af 32 c4 ┆ =* B:@ G s#= ,=! <= 2 ┆ 0x03d240…03d260 42 f1 c3 48 3d cd bb 41 e5 d5 c5 f5 3a b9 42 b7 c2 c2 3d e5 5c 55 2a c2 42 7b bc c2 7a 3d 7a 95 ┆B H= A : B = ØU* Bæ z=z ┆ 0x03d260…03d280 ca af 3d 47 3a 0a 43 b8 da 7a 3d 2a b6 42 4e cd a4 3e 23 05 c2 6e 3d c3 af 3d 3a 67 02 b7 c2 bb ┆ =G: C z=* BN ># n= =:g ┆ 0x03d280…03d2a0 3d 21 4d 02 cd ea 3d 2a 61 02 19 4d 54 3a 60 02 b7 ca 96 3d 4c 55 cd a4 3e 21 56 02 cd ea 3d 4a ┆=!M =*a MT:` =LU >!V =J┆ 0x03d2a0…03d2c0 cd a4 3e 21 5b 02 cd ea 3d 3a b0 02 cd 1b 3e e1 cd d8 3d cd 6e 3e f1 c1 d1 e1 c9 eb cd 67 02 c3 ┆ >!Æ =: > = n> g ┆ 0x03d2c0…03d2e0 a9 3d cd c2 3c cd d8 3d 2a b4 42 22 b6 42 7e 32 b8 42 f6 80 77 c3 b6 3d e5 d5 c5 22 be 42 44 4d ┆ = < =* B" Bü2 B w = " BDM┆ 0x03d2e0…03d300 cd 60 42 22 b4 42 c1 d1 e1 c9 3e 01 32 08 43 46 04 05 c8 23 4e 79 e6 7e fe 02 cc 03 3e cd 3e 3e ┆ `B" B > 2 CF #Ny ü > >>┆ 0x03d300…03d320 c3 f1 3d e5 d5 eb 2a 8c 18 79 e6 80 b6 4f 1b 23 1a e6 7e fe 02 ca 09 3e d1 e1 c9 cd ab 3c af 32 ┆ = * y O # ü > < 2┆ 0x03d320…03d340 08 43 c9 79 fe 20 d2 32 3e fe 0d c0 e5 cd 09 40 e1 c9 cd 3e 3e e5 2a be 42 cd 3c 3d e1 c9 e5 d5 ┆ C y 2> @ >> * B <= ┆ 0x03d340…03d360 c5 3a 08 43 b7 c2 a7 3e 79 cd b5 3e 4f cd 54 3e c1 d1 e1 c9 cd 99 3c c2 7b 3e 79 2a b4 42 be ca ┆ : C >y >O T> < æ>y* B ┆ 0x03d360…03d380 8c 3e 2a be 42 cd 48 3d cd a4 3e cd 8c 3e 2a be 42 22 c2 42 2a b4 42 22 b6 42 c9 2a b6 42 eb 2a ┆ >* B H= > >* B" B* B" B * B *┆ 0x03d380…03d3a0 b4 42 cd b9 39 c2 8c 3e 79 32 b8 42 21 be 42 34 2a b4 42 71 23 22 b4 42 c5 3a bf 42 4f 06 00 cd ┆ B 9 >y2 B! B4* Bq#" B : BO ┆ 0x03d3a0…03d3c0 fe 40 c1 c9 e5 d5 c5 cd 2a 3f 79 cd 00 00 cd f9 41 c1 d1 e1 c9 07 fe 02 d2 bd 3e c6 be fe 04 d2 ┆ @ *?y A > ┆ 0x03d3c0…03d3e0 c4 3e c6 52 0f c9 e5 d5 c5 0e 20 cd b4 3c 2a be 42 95 47 ca e6 3e eb 21 70 02 7e b7 c2 ea 3e cd ┆ > R <* B G > !p ü > ┆ 0x03d3e0…03d400 3e 3e 05 c2 df 3e c1 d1 e1 c9 e5 2a b4 42 0e 00 7e 36 20 96 b1 4f 23 05 c2 f0 3e e1 b7 ca 0e 3f ┆>> > * B ü6 O# > ?┆ 0x03d400…03d420 (16, 0, 11) 65 20 63 68 61 72 20 20 20 20 5e 56 3d 69 6e 73 65 72 74 20 68 6f 6c 65 20 20 5e 43 3d 63 6f 70 ┆e char ^V=insert hole ^C=cop┆ 0x03d420…03d440 79 20 66 72 6f 6d 20 70 72 65 76 69 6f 75 73 20 72 65 63 6f 72 64 20 20 20 20 20 4f 54 48 45 52 ┆y from previous record OTHER┆ 0x03d440…03d460 3a 20 20 20 20 20 20 5e 5a 3d 72 65 73 74 6f 72 65 20 73 63 72 65 65 6e 20 5e 55 3d 70 72 69 6e ┆: ^Z=restore screen ^U=prin┆ 0x03d460…03d480 74 20 66 6f 72 6d 20 20 20 5e 4f 3d 70 72 69 6e 74 20 64 61 74 61 20 20 20 20 5e 4a 3d 68 65 6c ┆t form ^O=print data ^J=hel┆ 0x03d480…03d4a0 70 20 6f 6e 2f 6f 66 66 20 20 45 4e 44 2f 45 58 49 54 3a 20 20 20 5e 42 3d 65 6e 64 20 65 6e 74 ┆p on/off END/EXIT: ^B=end ent┆ 0x03d4a0…03d4c0 72 79 20 20 20 20 20 20 5e 45 3d 65 78 69 74 20 63 75 72 72 65 6e 74 20 6d 6f 64 65 20 20 20 20 ┆ry ^E=exit current mode ┆ 0x03d4c0…03d4e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 46 49 45 4c 44 20 45 ┆ FIELD E┆ 0x03d4e0…03d500 44 49 54 3a 20 5e 47 3d 64 65 6c 65 74 65 20 63 68 61 72 20 20 20 20 5e 56 3d 69 6e 73 65 72 74 ┆DIT: ^G=delete char ^V=insert┆ 0x03d500…03d520 20 68 6f 6c 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ hole ┆ 0x03d520…03d540 20 20 20 20 20 20 20 20 45 4e 44 2f 45 58 49 54 3a 20 20 20 5e 42 3d 65 6e 64 20 65 6e 74 72 79 ┆ END/EXIT: ^B=end entry┆ 0x03d540…03d560 20 20 20 20 20 20 5e 4e 3d 6e 65 78 74 20 72 65 63 6f 72 64 20 20 5e 50 3d 70 72 65 76 20 72 65 ┆ ^N=next record ^P=prev re┆ 0x03d560…03d580 63 6f 72 64 20 20 20 5e 45 3d 65 78 69 74 20 6d 6f 64 65 20 20 20 20 5f 5f 5f 5f 5f 5f 5f 5f 5f ┆cord ^E=exit mode _________┆ 0x03d580…03d5a0 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f ┆________________________________┆ […0x1…] 0x03d5c0…03d5e0 5f 5f 5f 5f 5f 5f 41 44 44 20 4d 4f 44 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆______ADD MODE ┆ 0x03d5e0…03d600 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 72 65 6e 74 20 66 6f 72 6d 3d 20 20 20 20 20 20 20 ┆ current form= ┆ 0x03d600…03d620 (16, 0, 12) 0d 0d 50 72 65 73 73 20 52 45 54 55 52 4e 20 6b 65 79 20 74 6f 20 65 6e 74 65 72 20 66 6f 72 6d ┆ Press RETURN key to enter form┆ 0x03d620…03d640 20 6e 61 6d 65 20 6f 72 20 65 6e 74 65 72 20 5e 43 20 74 6f 20 65 78 69 74 3a 20 00 45 6e 74 65 ┆ name or enter ^C to exit: Ente┆ 0x03d640…03d660 72 20 6e 61 6d 65 20 6f 66 20 66 6f 72 6d 20 64 65 66 69 6e 69 74 69 6f 6e 20 66 69 6c 65 20 28 ┆r name of form definition file (┆ 0x03d660…03d680 6f 72 20 70 72 65 73 73 20 52 45 54 55 52 4e 29 3a 20 00 20 54 68 65 20 66 6f 72 6d 20 64 65 66 ┆or press RETURN): The form def┆ 0x03d680…03d6a0 69 6e 69 74 69 6f 6e 20 66 69 6c 65 2c 20 01 80 00 2c 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 ┆inition file, , does not exis┆ 0x03d6a0…03d6c0 74 20 79 65 74 2e 0d 20 44 6f 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 63 72 65 61 74 65 20 69 74 ┆t yet. Do you want to create it┆ 0x03d6c0…03d6e0 20 28 41 29 20 6f 72 20 65 6e 74 65 72 20 61 20 64 69 66 66 65 72 65 6e 74 20 66 6f 72 6d 20 6e ┆ (A) or enter a different form n┆ 0x03d6e0…03d700 61 6d 65 20 28 42 29 3f 0d 0d 45 6e 74 65 72 20 41 20 6f 72 20 42 3a 20 00 01 16 0c 64 61 74 61 ┆ame (B)? Enter A or B: data┆ 0x03d700…03d720 20 66 69 6c 65 20 28 01 80 00 29 20 20 28 41 2f 42 2e 2e 2e 29 20 00 01 16 0c 69 6e 64 65 78 01 ┆ file ( ) (A/B...) index ┆ 0x03d720…03d740 f3 0b 00 45 6e 74 65 72 20 64 69 73 6b 20 64 72 69 76 65 20 74 6f 20 75 73 65 20 66 6f 72 20 74 ┆ Enter disk drive to use for t┆ 0x03d740…03d760 68 65 20 00 0d 20 54 68 65 20 64 61 74 61 20 66 69 6c 65 20 69 73 20 75 73 65 64 20 74 6f 20 73 ┆he The data file is used to s┆ 0x03d760…03d780 74 6f 72 65 20 74 68 65 20 64 61 74 61 20 65 6e 74 65 72 65 64 20 74 68 72 6f 75 67 68 20 74 68 ┆tore the data entered through th┆ 0x03d780…03d7a0 65 20 44 61 74 61 73 74 61 72 0d 20 70 72 6f 67 72 61 6d 20 62 79 20 72 65 63 6f 72 64 2e 20 20 ┆e Datastar program by record. ┆ 0x03d7a0…03d7c0 54 68 65 20 69 6e 64 65 78 20 66 69 6c 65 20 69 73 20 75 73 65 64 20 66 6f 72 20 74 68 65 20 73 ┆The index file is used for the s┆ 0x03d7c0…03d7e0 65 6c 65 63 74 2d 62 79 2d 6b 65 79 20 6f 70 74 69 6f 6e 0d 20 61 6e 64 20 66 6f 72 20 73 63 61 ┆elect-by-key option and for sca┆ 0x03d7e0…03d800 6e 6e 69 6e 67 20 74 68 65 20 66 69 6c 65 20 69 6e 20 69 6e 64 65 78 20 6f 72 64 65 72 2e 20 20 ┆nning the file in index order. ┆ 0x03d800…03d820 (16, 0, 13) 22 65 2c eb 11 61 2c cd ac 37 eb cd 6b 34 eb 79 c9 e5 d5 c5 2a 49 2c cd e6 2f c4 7f 39 3a 48 2c ┆"e, a, 7 k4 y *I, / 9:H,┆ 0x03d820…03d840 cd df 36 32 48 2c 36 1a cd ff 2f c4 84 39 22 49 2c 2a 44 2c eb 2a 46 2c 3a 53 2c cd 4b 30 c4 84 ┆ 62H,6 / 9"I,*D, *F,:S, K0 ┆ 0x03d840…03d860 39 c1 d1 e1 c9 e5 d5 c5 2a 3e 2c cd 4b 2f c4 84 39 3a 3d 2c cd 95 37 cd 64 2f c4 84 39 c1 d1 e1 ┆9 *>, K/ 9:=, 7 d/ 9 ┆ 0x03d860…03d880 c9 e5 d5 c5 2a 37 2c cd 4b 2f c4 7f 39 3a 36 2c cd 95 37 32 36 2c 36 1a cd 64 2f c4 84 39 22 37 ┆ *7, K/ 9:6, 726,6 d/ 9"7┆ 0x03d880…03d8a0 2c 2a 32 2c eb 2a 34 2c 3a 43 2c cd 4b 30 c4 84 39 c1 d1 e1 c9 2a 27 2c eb 4f 06 00 2a 39 2c 09 ┆,*2, *4,:C, K0 9 *', O *9, ┆ 0x03d8a0…03d8c0 cd ce 37 79 c9 1a bd c0 13 1a bc c9 1a 77 13 23 0c f2 c9 37 0e 00 cd ff 2f c2 84 39 2a 4e 2c 23 ┆ 7y w # 7 / 9*N,#┆ 0x03d8c0…03d8e0 cd e6 2f c4 7f 39 2a 4c 2c 05 c2 ac 37 c9 cd 17 38 c2 e6 37 1a 13 cd 31 38 fe 2c ca ce 37 fe 0d ┆ / 9*L, 7 8 7 18 , 7 ┆ 0x03d8e0…03d900 ca 0b 38 c3 d4 37 cd 2f 38 1a cd 11 38 ca fe 37 13 e6 7f fe 22 cc 31 38 cd 31 38 c3 e9 37 cd 2f ┆ 8 7 /8 8 7 " 18 18 7 /┆ 0x03d900…03d920 38 1a 13 cd 31 38 fe 0d c2 ce 37 3e 0a cd 31 38 c9 fe 2c c8 fe 0d c9 1a 3c c8 d5 1a 13 cd 11 38 ┆8 18 7> 18 , < 8┆ 0x03d920…03d940 ca 2d 38 b7 fa 2d 38 fe 22 c2 1b 38 b7 d1 c9 3e 22 77 23 0c f0 f5 cd 64 2f c2 84 39 2a 3b 2c 23 ┆ -8 -8 " 8 >"w# d/ 9*;,#┆ 0x03d940…03d960 cd 4b 2f c4 7f 39 2a 39 2c 0e 00 f1 c9 3a 5e 2c b7 f8 cd b9 30 2a 3e 2c 22 f9 39 3a 3d 2c 32 f8 ┆ K/ 9*9, :^, 0*>," 9:=,2 ┆ 0x03d960…03d980 39 cd 3c 34 c4 db 30 7e 32 f7 39 36 ff cd 64 2f c4 84 39 c3 ef 30 cd b9 30 2a f9 39 22 3e 2c 3a ┆9 <4 0ü2 96 d/ 9 0 0* 9">,:┆ 0x03d980…03d9a0 f8 39 32 3d 2c cd 3c 34 c4 db 30 3a f7 39 77 c3 6d 38 3a 5e 2c b7 f8 cd b9 30 2a 5c 2c eb 2a 27 ┆ 92=, <4 0: 9w m8:^, 0*Ø, *'┆ 0x03d9a0…03d9c0 2c 7e 23 1b fe 0d c2 a1 38 7a b3 ca 48 37 cd 06 36 cd 52 38 c3 ef 30 7e 12 23 13 05 c2 b7 38 c9 ┆,ü# 8z H7 6 R8 0ü # 8 ┆ 0x03d9c0…03d9e0 7c b7 1f 67 7d 1f 6f 05 c2 c0 38 c9 79 2f 4f 78 2f 47 03 c9 01 00 00 eb 60 69 b7 1f d2 e5 38 f5 ┆ø gå o 8 y/Ox/G `i 8 ┆ 0x03d9e0…03da00 19 78 81 47 f1 b7 c8 f5 eb 29 eb 79 17 4f f1 c3 da 38 e3 d5 c5 5e 0e 02 cd 54 39 23 7e b7 c2 f5 ┆ x G ) y O 8 ^ T9#ü ┆ 0x03da00…03da20 (16, 0, 14) eb cd 45 3d eb cd ea 3d 3a b1 02 cd 1b 3e c1 d1 e1 c9 3a b5 02 b7 c2 20 3f 3a b3 42 b7 c3 30 3f ┆ E= =: > : ?: B 0?┆ 0x03da20…03da40 e5 2a b6 42 7e ee 80 77 e1 c9 3a b3 42 a9 f0 a9 ca 48 3f af 32 b3 42 e5 21 8e 02 7e b7 c2 43 3f ┆ * Bü w : B H? 2 B ! ü C?┆ 0x03da40…03da60 21 87 02 cd 56 3f e1 c9 e5 21 87 02 cd 56 3f e1 3e ff 32 b3 42 c9 3a 08 43 f5 c5 cd ea 3d 3a b1 ┆! V? ! V? > 2 B : C =: ┆ 0x03da60…03da80 02 cd 1b 3e c1 f1 32 08 43 c9 cd 83 3f cd cd 41 ca 6d 3f cd 7e 3f c2 6a 3f 4f cd a8 41 c9 0c 0d ┆ > 2 C ? A m? ü? j?O A ┆ 0x03da80…03daa0 c8 b9 c9 e5 d5 c5 e5 60 2e 00 cd 59 42 cd e0 41 cc 45 3d e1 cd ce 3f cd e0 41 c2 b5 3f 2a be 42 ┆ `. YB A E= ? A ?* B┆ 0x03daa0…03dac0 e5 cd c6 3e 44 04 78 d6 06 2f 3c dc e5 40 cd 59 42 e1 cd 48 3d c1 d1 e1 c9 3e 00 c3 bf 3f 79 e5 ┆ >D x /< @ YB H= > ?y ┆ 0x03dac0…03dae0 6f 60 cd 15 40 e1 cd ce 3f af 32 c4 42 c9 e5 d5 c5 cd c7 40 06 00 16 01 e5 2a be 42 cd b4 3c 95 ┆o` @ ? 2 B @ * B < ┆ 0x03dae0…03db00 5f e1 7e 4f 23 fe 20 da 2e 40 fe 80 ca 46 40 cd e0 41 cc 3e 3e 04 05 ca fe 3f 05 ca 46 40 1d c2 ┆_ üO# .@ F@ A >> ? F@ ┆ 0x03db00…03db20 e2 3f e5 cd 09 40 c3 dc 3f cd e0 41 cc c6 3e 2a be 42 24 2e 00 cd e0 41 cc 45 3d c9 46 23 14 d5 ┆ ? @ ? A >* B$. A E= F# ┆ 0x03db20…03db40 5e 23 56 23 e3 eb 7c b7 c4 b2 40 c3 e2 3f fe 0d ca 02 40 04 05 c2 f5 3f fe 01 ca 1e 40 fe 02 ca ┆^#V# ø @ ? @ ? @ ┆ 0x03db40…03db60 1c 40 b7 c2 f5 3f 15 c2 e1 3f 2a be 42 cd e0 41 cc c6 3e cd 45 3d c1 d1 e1 c9 e5 d5 c5 46 23 e5 ┆ @ ? ?* B A > E= F# ┆ 0x03db60…03db80 23 1e 00 cd 1d 41 e6 7f fe 7f c2 6f 40 3e 08 fe 20 da 85 40 4f cd 23 3e 71 23 1c 05 c2 63 40 e1 ┆# A o@> @O #>q# c@ ┆ 0x03db80…03dba0 73 c1 d1 e1 c9 fe 03 ca 00 00 fe 0d 36 00 ca 7f 40 cd 97 40 c3 63 40 fe 08 c0 7b b7 c8 e5 2a be ┆s 6 @ @ c@ æ * ┆ 0x03dba0…03dbc0 42 2d cd 3c 3d 0e 20 cd 23 3e cd 3c 3d e1 2b 04 1d c9 d5 f5 eb 2a 0f 43 eb 7a 3c bc da c4 40 11 ┆B- <= #> <= + * C z< @ ┆ 0x03dbc0…03dbe0 0d 43 15 19 f1 d1 c9 d5 f5 11 5b 43 cd b9 39 d2 e2 40 11 01 44 cd b9 39 da e2 40 5e 23 56 eb cd ┆ C ÆC 9 @ D 9 @^#V ┆ 0x03dbe0…03dc00 b2 40 f1 d1 c9 e5 c5 48 f5 cd b4 3c 47 f1 2a 61 43 f5 cd fe 40 f1 0c 3d c2 f1 40 c1 e1 c9 f5 3a ┆ @ H <G *aC @ = @ :┆ 0x03dc00…03dc20 (16, 0, 15) 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ […0x1…] 0x03dc40…03dc60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 44 44 20 4d 4f 44 45 20 20 20 20 20 ┆ ADD MODE ┆ 0x03dc60…03dc80 20 20 4c 4f 43 41 54 45 20 4b 45 59 20 4d 4f 44 45 20 20 53 43 41 4e 20 4d 4f 44 45 20 28 44 29 ┆ LOCATE KEY MODE SCAN MODE (D)┆ 0x03dc80…03dca0 20 20 53 43 41 4e 20 4d 4f 44 45 20 28 49 29 45 44 49 54 20 53 43 41 4e 20 4d 41 53 4b 20 56 45 ┆ SCAN MODE (I)EDIT SCAN MASK VE┆ 0x03dca0…03dcc0 52 49 46 59 20 4d 4f 44 45 20 20 20 20 4d 41 49 4e 54 45 4e 41 4e 43 45 20 20 20 20 2c 20 50 4c ┆RIFY MODE MAINTENANCE , PL┆ 0x03dcc0…03dce0 45 41 53 45 20 45 4e 54 45 52 20 4b 45 59 20 20 20 2f 42 41 54 43 48 20 20 20 20 20 20 20 20 20 ┆EASE ENTER KEY /BATCH ┆ 0x03dce0…03dd00 20 20 20 20 20 20 0d 48 69 74 20 52 45 54 55 52 4e 20 74 6f 20 66 69 6c 65 20 65 6e 74 65 72 65 ┆ Hit RETURN to file entere┆ 0x03dd00…03dd20 64 20 64 61 74 61 20 6f 72 20 52 55 42 20 74 6f 20 65 72 61 73 65 20 61 6c 6c 20 69 74 65 6d 73 ┆d data or RUB to erase all items┆ 0x03dd20…03dd40 20 6f 6e 20 73 63 72 65 65 6e 2e 0d 54 79 70 65 20 61 6e 79 20 6f 74 68 65 72 20 63 68 61 72 61 ┆ on screen. Type any other chara┆ 0x03dd40…03dd60 63 74 65 72 20 74 6f 20 72 65 74 75 72 6e 20 74 6f 20 74 6f 70 20 6f 66 20 66 6f 72 6d 20 61 6e ┆cter to return to top of form an┆ 0x03dd60…03dd80 64 20 63 6f 6e 74 69 6e 75 65 3a 20 00 48 69 74 20 52 45 54 55 52 4e 20 74 6f 20 66 69 6c 65 20 ┆d continue: Hit RETURN to file ┆ 0x03dd80…03dda0 75 70 64 61 74 65 64 20 64 61 74 61 20 6f 72 20 52 55 42 20 74 6f 20 6c 65 61 76 65 20 66 69 6c ┆updated data or RUB to leave fil┆ 0x03dda0…03ddc0 65 64 20 64 61 74 61 20 61 73 0d 69 74 20 77 61 73 20 61 6e 64 20 62 65 67 69 6e 20 75 70 64 61 ┆ed data as it was and begin upda┆ 0x03ddc0…03dde0 74 69 6e 67 20 61 6e 6f 74 68 65 72 20 66 6f 72 6d 01 1d 06 00 0d 48 69 74 20 52 45 54 55 52 4e ┆ting another form Hit RETURN┆ 0x03dde0…03de00 20 74 6f 20 67 6f 20 74 6f 20 6e 65 78 74 20 66 6f 72 6d 20 6f 72 20 52 55 42 20 74 6f 20 72 65 ┆ to go to next form or RUB to re┆ 0x03de00…03de20 (16, 1, 1) 49 66 20 74 68 65 73 65 20 66 69 6c 65 73 20 64 6f 6e 27 74 20 65 78 69 73 74 0d 20 79 65 74 2c ┆If these files don't exist yet,┆ 0x03de20…03de40 20 74 68 65 79 20 77 69 6c 6c 20 62 65 20 63 72 65 61 74 65 64 20 6f 6e 20 74 68 65 20 64 72 69 ┆ they will be created on the dri┆ 0x03de40…03de60 76 65 20 79 6f 75 20 73 65 6c 65 63 74 2e 20 20 41 20 64 69 73 6b 20 64 72 69 76 65 20 69 73 0d ┆ve you select. A disk drive is ┆ 0x03de60…03de80 20 73 70 65 63 69 66 69 65 64 20 62 79 20 61 20 6c 65 74 74 65 72 20 41 2d 50 2e 0d 00 57 68 69 ┆ specified by a letter A-P. Whi┆ 0x03de80…03dea0 63 68 20 63 6f 6d 6d 61 6e 64 20 77 6f 75 6c 64 20 79 6f 75 20 6c 69 6b 65 20 65 78 70 6c 61 69 ┆ch command would you like explai┆ 0x03dea0…03dec0 6e 65 64 3f 20 28 41 2f 4b 2f 45 2f 49 2f 44 2f 4d 2f 42 2f 56 2f 52 2f 46 29 3a 0d 01 fb 0d 01 ┆ned? (A/K/E/I/D/M/B/V/R/F): ┆ 0x03dec0…03dee0 c2 0e 01 e0 0e 00 01 d6 0d 01 fb 0d 01 e0 0e 01 f7 0e 00 01 d6 0d 01 fb 0d 01 c2 0e 01 e0 0e 01 ┆ ┆ 0x03dee0…03df00 f7 0e 00 45 6e 74 65 72 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 73 65 6c 65 63 74 20 6e 65 77 ┆ Enter character to select new┆ 0x03df00…03df20 20 6d 6f 64 65 3a 0d 00 20 41 20 3d 20 41 44 44 20 6e 65 77 20 72 65 63 6f 72 64 73 20 20 20 20 ┆ mode: A = ADD new records ┆ 0x03df20…03df40 20 20 4b 20 3d 20 73 65 6c 65 63 74 20 72 65 63 6f 72 64 73 20 62 79 20 4b 45 59 20 20 20 20 45 ┆ K = select records by KEY E┆ 0x03df40…03df60 20 3d 20 45 78 69 74 20 63 75 72 72 65 6e 74 20 66 6f 72 6d 0d 20 49 20 3d 20 53 43 41 4e 20 69 ┆ = Exit current form I = SCAN i┆ 0x03df60…03df80 6e 20 49 6e 64 65 78 20 6f 72 64 65 72 20 20 44 20 3d 20 53 43 41 4e 20 69 6e 20 44 61 74 61 20 ┆n Index order D = SCAN in Data ┆ 0x03df80…03dfa0 66 69 6c 65 20 6f 72 64 65 72 20 20 4d 20 3d 20 65 64 69 74 20 73 63 61 6e 20 4d 61 73 6b 0d 20 ┆file order M = edit scan Mask ┆ 0x03dfa0…03dfc0 42 20 3d 20 73 65 6c 65 63 74 20 42 61 74 63 68 20 66 69 6c 65 20 20 20 20 56 20 3d 20 56 65 72 ┆B = select Batch file V = Ver┆ 0x03dfc0…03dfe0 69 66 79 20 62 61 74 63 68 20 66 69 6c 65 00 20 20 20 20 20 20 20 20 52 20 3d 20 52 65 73 74 6f ┆ify batch file R = Resto┆ 0x03dfe0…03e000 72 65 20 6d 61 69 6e 20 66 69 6c 65 00 0d 20 46 20 3d 20 46 69 6c 65 20 6d 61 69 6e 74 65 6e 61 ┆re main file F = File maintena┆ 0x03e000…03e020 (16, 1, 2) 6f 64 65 20 77 69 6c 6c 20 6f 6e 6c 79 20 70 72 65 73 65 6e 74 20 63 65 72 74 61 69 6e 0d 72 65 ┆ode will only present certain re┆ 0x03e020…03e040 63 6f 72 64 73 20 6f 75 74 20 6f 66 20 74 68 65 20 64 61 74 61 62 61 73 65 2e 00 45 3d 45 58 49 ┆cords out of the database. E=EXI┆ 0x03e040…03e060 54 20 43 55 52 52 45 4e 54 20 46 4f 52 4d 20 69 73 20 75 73 65 64 20 74 6f 20 43 48 41 4e 47 45 ┆T CURRENT FORM is used to CHANGE┆ 0x03e060…03e080 20 46 4f 52 4d 53 20 6f 72 20 45 58 49 54 20 44 41 54 41 53 54 41 52 20 45 4e 54 49 52 45 4c 59 ┆ FORMS or EXIT DATASTAR ENTIRELY┆ 0x03e080…03e0a0 2e 0d 41 66 74 65 72 20 65 78 69 74 74 69 6e 67 20 63 75 72 72 65 6e 74 20 66 6f 72 6d 20 28 75 ┆. After exitting current form (u┆ 0x03e0a0…03e0c0 73 69 6e 67 20 74 68 65 20 5e 45 45 20 63 6f 6d 6d 61 6e 64 29 3a 0d 20 20 20 74 6f 20 63 68 61 ┆sing the ^EE command): to cha┆ 0x03e0c0…03e0e0 6e 67 65 20 66 6f 72 6d 73 2c 20 65 6e 74 65 72 20 61 20 6e 65 77 20 66 6f 72 6d 20 6e 61 6d 65 ┆nge forms, enter a new form name┆ 0x03e0e0…03e100 0d 20 20 20 74 6f 20 65 78 69 74 20 44 41 54 41 53 54 41 52 20 61 6e 64 20 72 65 74 75 72 6e 20 ┆ to exit DATASTAR and return ┆ 0x03e100…03e120 74 6f 20 74 68 65 20 43 50 2f 4d 20 6f 70 65 72 61 74 69 6e 67 20 73 79 73 74 65 6d 2c 20 74 79 ┆to the CP/M operating system, ty┆ 0x03e120…03e140 70 65 20 5e 43 00 44 3d 53 43 41 4e 20 49 4e 20 44 41 54 41 20 46 49 4c 45 20 4f 52 44 45 52 20 ┆pe ^C D=SCAN IN DATA FILE ORDER ┆ 0x03e140…03e160 69 73 20 75 73 65 64 20 74 6f 20 52 45 56 49 45 57 20 54 48 45 20 43 55 52 52 45 4e 54 20 46 49 ┆is used to REVIEW THE CURRENT FI┆ 0x03e160…03e180 4c 45 20 49 4e 20 45 4e 54 52 59 20 4f 52 44 45 52 2e 01 7d 14 00 42 3d 53 45 4c 45 43 54 20 42 ┆LE IN ENTRY ORDER. å B=SELECT B┆ 0x03e180…03e1a0 41 54 43 48 20 46 49 4c 45 20 69 73 20 75 73 65 64 20 74 6f 20 53 45 4c 45 43 54 20 41 4e 20 41 ┆ATCH FILE is used to SELECT AN A┆ 0x03e1a0…03e1c0 4c 54 45 52 4e 41 54 45 20 46 49 4c 45 20 66 6f 72 20 75 73 65 20 69 6e 20 61 6c 6c 0d 64 61 74 ┆LTERNATE FILE for use in all dat┆ 0x03e1c0…03e1e0 61 62 61 73 65 20 6f 70 65 72 61 74 69 6f 6e 73 2e 20 20 42 61 74 63 68 20 66 69 6c 65 20 70 72 ┆abase operations. Batch file pr┆ 0x03e1e0…03e200 6f 63 65 73 73 69 6e 67 20 69 73 20 69 64 65 6e 74 69 63 61 6c 20 74 6f 20 70 72 69 6d 61 72 79 ┆ocessing is identical to primary┆ 0x03e200…03e220 (16, 1, 3) 20 3a 20 20 57 69 64 74 68 20 69 6e 20 77 6f 72 64 73 20 6f 66 20 6f 75 74 70 75 74 20 6c 69 6e ┆ : Width in words of output lin┆ 0x03e220…03e240 65 2e 20 20 31 20 3c 3d 20 57 69 64 74 68 20 3c 3d 20 31 35 20 0d 10 2a 0d 10 2a 0d 10 2a 54 68 ┆e. 1 <= Width <= 15 * * *Th┆ 0x03e240…03e260 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 68 61 76 65 20 74 68 72 65 65 20 62 6f 6f 6c 65 61 6e 73 20 ┆e following have three booleans ┆ 0x03e260…03e280 74 68 61 74 20 68 61 76 65 20 74 6f 20 62 65 20 73 70 65 63 69 66 69 65 64 2e 0d 10 2a 54 68 65 ┆that have to be specified. *The┆ 0x03e280…03e2a0 20 55 53 45 20 76 61 72 69 61 62 6c 65 20 28 20 74 68 65 20 75 6e 74 69 74 6c 65 64 20 66 69 72 ┆ USE variable ( the untitled fir┆ 0x03e2a0…03e2c0 73 74 20 63 6f 6c 75 6d 6e 20 29 20 74 65 6c 6c 73 20 44 55 4d 50 0d 10 2a 77 68 65 74 68 65 72 ┆st column ) tells DUMP *whether┆ 0x03e2c0…03e2e0 20 6f 72 20 6e 6f 74 20 74 6f 20 65 76 65 6e 20 63 6f 6e 73 69 64 65 72 20 70 72 69 6e 74 69 6e ┆ or not to even consider printin┆ 0x03e2e0…03e300 67 20 6f 75 74 20 69 6e 20 74 68 61 74 20 66 6f 72 6d 61 74 2e 0d 10 2a 0d 10 2a 54 68 65 20 46 ┆g out in that format. * *The F┆ 0x03e300…03e320 4c 49 50 20 63 6f 6c 75 6d 6e 20 74 65 6c 6c 73 20 44 55 4d 50 20 77 68 65 74 68 65 72 20 6f 72 ┆LIP column tells DUMP whether or┆ 0x03e320…03e340 20 6e 6f 74 20 74 6f 20 66 6c 69 70 20 74 68 65 20 62 79 74 65 73 0d 10 2a 62 65 66 6f 72 65 20 ┆ not to flip the bytes *before ┆ 0x03e340…03e360 64 69 73 70 6c 61 79 69 6e 67 20 74 68 65 20 77 6f 72 64 20 69 6e 20 74 68 61 74 20 66 6f 72 6d ┆displaying the word in that form┆ 0x03e360…03e380 61 74 2e 0d 10 2a 0d 10 2a 54 68 65 20 42 4f 54 48 20 63 6f 6c 75 6d 6e 20 69 73 20 66 6f 72 20 ┆at. * *The BOTH column is for ┆ 0x03e380…03e3a0 73 69 6d 75 6c 74 61 6e 65 6f 75 73 6c 79 20 64 69 73 70 6c 61 79 69 6e 67 20 62 6f 74 68 20 46 ┆simultaneously displaying both F┆ 0x03e3a0…03e3c0 6c 69 70 70 65 64 0d 10 2a 61 6e 64 20 6e 6f 6e 2d 46 6c 69 70 70 65 64 20 76 65 72 73 69 6f 6e ┆lipped *and non-Flipped version┆ 0x03e3c0…03e3e0 73 20 6f 66 20 74 68 65 20 6c 69 6e 65 2e 20 20 49 66 20 42 4f 54 48 20 69 73 20 74 72 75 65 2c ┆s of the line. If BOTH is true,┆ 0x03e3e0…03e400 20 69 74 20 64 6f 65 73 0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ it does ┆ 0x03e400…03e420 (16, 1, 4) cd 8f 10 3e 0c cd 14 11 e1 d1 c1 37 c9 2a 93 3d 23 7e 2b b7 c2 a8 0f 3a f5 3c b7 c0 cd f3 10 cd ┆ > 7 * =#ü+ : < ┆ 0x03e420…03e440 6b 0f 3a 23 3d f5 cd 21 10 f5 21 28 3d cd 54 10 2a ff 3c 7c b7 c2 40 0f 7d fe 0a 3e 20 dc 14 11 ┆k :#= ! !(= T * <ø @ å > ┆ 0x03e440…03e460 cd 90 0f f1 cd 0e 10 f1 32 23 3d cd 4f 0f c9 22 fd 3c d1 21 0d 3d 01 8e 0f f1 be 0a c4 14 11 2b ┆ 2#= O " < ! = +┆ 0x03e460…03e480 0b 0a 3c c2 59 0f d5 2a fd 3c c9 22 fd 3c d1 21 06 3d 01 87 0f 7e f5 b7 0a c4 14 11 23 03 0a 3c ┆ < Y * < " < ! = ü # <┆ 0x03e480…03e4a0 c2 75 0f c3 66 0f ff 02 04 13 18 10 14 16 19 ff c5 d5 06 00 11 14 11 cd 43 18 d1 c1 c9 f5 3e 0d ┆ u f C > ┆ 0x03e4a0…03e4c0 cd 14 11 3e 0a c3 15 11 23 7e 2b b7 c8 c5 e5 cd f3 10 e1 c1 cd 6b 0f 3a 23 3d f5 cd 21 10 f5 7e ┆ > #ü+ k :#= ! ü┆ 0x03e4c0…03e4e0 cd 0e 10 23 7e b7 ca 43 0f fe 5c c2 d7 0f 23 7e b7 ca 43 0f c3 08 10 fe 23 c2 e7 0f e5 2a ff 3c ┆ #ü C Ø #ü C # * <┆ 0x03e4e0…03e500 cd 90 0f e1 c3 c3 0f fe 0b c2 08 10 3a ff 3c 1f da c3 0f 23 7e e6 7f ca 43 0f fe 20 ca f3 0f fe ┆ : < #ü C ┆ 0x03e500…03e520 09 ca f3 0f 2b c3 c3 0f cd 14 11 c3 c3 0f e5 21 64 12 e5 6f 3a e6 3c b7 7d ca 32 10 3e 15 c3 da ┆ + !d o: < å 2 > ┆ 0x03e520…03e540 10 3a e6 3c b7 3a 23 3d e5 c4 3d 0b e1 c9 3e ff fe af 21 23 3d be c8 77 3a e6 3c b7 7e c2 4b 10 ┆ : < :#= = > !#= w: < ü K ┆ 0x03e540…03e560 b7 3e 01 c2 48 10 3e 0e c3 35 12 cd 3d 0b 6f 3e 15 c3 da 10 5e 23 7e cd 0e 10 1c 1d c8 3e 20 cd ┆ > H > 5 = o> ^#ü > ┆ 0x03e560…03e580 35 12 c3 5b 10 eb 2a 01 3d 3a e7 3c b7 ca 7a 10 eb cd 2c 17 7c b7 f8 c3 b2 10 3a 0e 3d cd 3f 17 ┆5 Æ * =: < z , ø : = ? ┆ 0x03e580…03e5a0 cd 68 17 d8 cd 9d 0f 3a 05 3d b7 c8 c3 66 10 3a e7 3c b7 4e 23 cd 55 17 c2 ad 10 0c 0d ca 72 11 ┆ h : = f : < N# U r ┆ 0x03e5a0…03e5c0 3e 0d cd 14 11 3e 0a cd 35 12 c3 9c 10 3e 0d cd 14 11 2b 7c fe 14 23 d0 e5 3e 1b cd c2 10 e1 c3 ┆> > 5 > +ø # > ┆ 0x03e5c0…03e5e0 72 11 d5 eb 21 22 ff 19 eb d2 d6 10 2e de 67 cd da 10 7c c3 c4 10 d1 2c 2d c8 f5 3a 8b 36 b7 c2 ┆r !" . g ø ,- : 6 ┆ 0x03e5e0…03e600 b4 12 f1 cd 35 12 7d fe de da ee 10 3e de c6 20 c3 35 12 47 21 04 3d 7e 36 ff 21 8d 36 b6 78 c0 ┆ 5 å > 5 G! =ü6 ! 6 x ┆ 0x03e600…03e620 (16, 1, 5) 6e 63 65 00 20 20 20 20 20 4a 20 3d 20 48 65 6c 70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆nce J = Help ┆ 0x03e620…03e640 20 20 20 20 20 20 53 50 41 43 45 20 3d 20 63 75 72 72 65 6e 74 20 6d 6f 64 65 00 56 3d 56 45 52 ┆ SPACE = current mode V=VER┆ 0x03e640…03e660 49 46 59 20 4d 4f 44 45 20 69 73 20 75 73 65 64 20 74 6f 20 43 48 45 43 4b 20 54 48 45 20 56 41 ┆IFY MODE is used to CHECK THE VA┆ 0x03e660…03e680 4c 49 44 49 54 59 20 4f 46 20 43 45 52 54 41 49 4e 20 46 49 45 4c 44 53 20 49 4e 20 41 20 42 41 ┆LIDITY OF CERTAIN FIELDS IN A BA┆ 0x03e680…03e6a0 54 43 48 20 46 49 4c 45 2e 0d 57 68 65 6e 20 74 68 65 20 66 6f 72 6d 20 69 73 20 70 72 65 73 65 ┆TCH FILE. When the form is prese┆ 0x03e6a0…03e6c0 6e 74 65 64 2c 20 65 61 63 68 20 64 61 74 61 66 69 65 6c 64 20 74 68 61 74 20 74 68 65 20 63 75 ┆nted, each datafield that the cu┆ 0x03e6c0…03e6e0 72 73 6f 72 20 73 74 6f 70 73 20 61 74 20 77 69 6c 6c 0d 72 65 71 75 69 72 65 20 65 69 74 68 65 ┆rsor stops at will require eithe┆ 0x03e6e0…03e700 72 20 61 20 76 69 73 75 61 6c 20 63 68 65 63 6b 20 6f 72 20 63 6f 6d 70 6c 65 74 65 20 72 65 2d ┆r a visual check or complete re-┆ 0x03e700…03e720 65 6e 74 72 79 2e 20 20 49 6e 20 61 64 64 69 74 69 6f 6e 2c 20 63 65 72 74 61 69 6e 0d 69 6c 6c ┆entry. In addition, certain ill┆ 0x03e720…03e740 65 67 61 6c 20 66 69 65 6c 64 73 20 77 69 6c 6c 20 72 65 71 75 69 72 65 20 72 65 2d 65 6e 74 72 ┆egal fields will require re-entr┆ 0x03e740…03e760 79 2e 20 20 57 68 65 6e 20 74 68 65 20 72 65 63 6f 72 64 20 68 61 73 20 62 65 65 6e 20 76 65 72 ┆y. When the record has been ver┆ 0x03e760…03e780 69 66 69 65 64 0d 69 74 20 77 69 6c 6c 20 62 65 20 72 65 6d 6f 76 65 64 20 66 72 6f 6d 20 74 68 ┆ified it will be removed from th┆ 0x03e780…03e7a0 65 20 62 61 74 63 68 20 66 69 6c 65 20 61 6e 64 20 70 6c 61 63 65 64 20 69 6e 20 74 68 65 20 6d ┆e batch file and placed in the m┆ 0x03e7a0…03e7c0 61 69 6e 20 66 69 6c 65 2e 00 46 3d 46 49 4c 45 20 4d 41 49 4e 54 45 4e 41 4e 43 45 20 69 73 20 ┆ain file. F=FILE MAINTENANCE is ┆ 0x03e7c0…03e7e0 75 73 65 64 20 74 6f 20 4f 52 44 45 52 20 54 48 45 20 50 52 49 4d 41 52 59 20 46 49 4c 45 20 61 ┆used to ORDER THE PRIMARY FILE a┆ 0x03e7e0…03e800 6e 64 20 72 65 6d 6f 76 65 20 64 65 6c 65 74 65 64 0d 72 65 63 6f 72 64 73 2e 20 20 57 68 65 6e ┆nd remove deleted records. When┆ 0x03e800…03e820 (16, 1, 6) 0d 66 69 6c 65 20 70 72 6f 63 65 73 73 69 6e 67 20 77 69 74 68 20 74 68 65 20 66 6f 6c 6c 6f 77 ┆ file processing with the follow┆ 0x03e820…03e840 69 6e 67 20 74 77 6f 20 65 78 63 65 70 74 69 6f 6e 73 3a 0d 20 57 68 65 6e 20 61 20 62 61 74 63 ┆ing two exceptions: When a batc┆ 0x03e840…03e860 68 20 66 69 6c 65 20 69 73 20 73 65 6c 65 63 74 65 64 2c 20 76 65 72 69 66 69 63 61 74 69 6f 6e ┆h file is selected, verification┆ 0x03e860…03e880 20 69 73 20 6e 6f 74 20 70 65 72 66 6f 72 6d 65 64 20 69 6e 20 41 44 44 20 4d 4f 44 45 2e 0d 20 ┆ is not performed in ADD MODE. ┆ 0x03e880…03e8a0 49 74 20 69 73 20 6e 6f 74 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 65 6e 74 65 72 20 76 65 72 69 ┆It is not possible to enter veri┆ 0x03e8a0…03e8c0 66 79 20 6d 6f 64 65 20 75 6e 6c 65 73 73 20 61 20 62 61 74 63 68 20 66 69 6c 65 20 69 73 20 73 ┆fy mode unless a batch file is s┆ 0x03e8c0…03e8e0 65 6c 65 63 74 65 64 2e 00 41 3d 41 44 44 20 4d 4f 44 45 20 69 73 20 75 73 65 64 20 74 6f 20 45 ┆elected. A=ADD MODE is used to E┆ 0x03e8e0…03e900 4e 54 45 52 20 4e 45 57 20 52 45 43 4f 52 44 53 20 49 4e 54 4f 20 54 48 45 20 43 55 52 52 45 4e ┆NTER NEW RECORDS INTO THE CURREN┆ 0x03e900…03e920 54 20 46 49 4c 45 20 28 70 72 69 6d 61 72 79 20 6f 72 0d 62 61 74 63 68 29 2e 20 20 57 68 65 6e ┆T FILE (primary or batch). When┆ 0x03e920…03e940 20 61 6e 20 65 6d 70 74 79 20 66 6f 72 6d 20 69 73 20 66 69 72 73 74 20 70 72 65 73 65 6e 74 65 ┆ an empty form is first presente┆ 0x03e940…03e960 64 2c 20 65 61 63 68 20 64 61 74 61 66 69 65 6c 64 20 74 68 61 74 20 74 68 65 0d 63 75 72 73 6f ┆d, each datafield that the curso┆ 0x03e960…03e980 72 20 73 74 6f 70 73 20 61 74 20 77 69 6c 6c 20 72 65 71 75 69 72 65 20 65 6e 74 72 79 20 62 79 ┆r stops at will require entry by┆ 0x03e980…03e9a0 20 74 68 65 20 6f 70 65 72 61 74 6f 72 2e 20 20 41 66 74 65 72 20 65 6e 74 72 79 20 69 73 0d 63 ┆ the operator. After entry is c┆ 0x03e9a0…03e9c0 6f 6d 70 6c 65 74 65 2c 20 76 65 72 69 66 69 63 61 74 69 6f 6e 20 6d 61 79 20 62 65 20 72 65 71 ┆omplete, verification may be req┆ 0x03e9c0…03e9e0 75 69 72 65 64 20 75 6e 6c 65 73 73 20 61 20 62 61 74 63 68 20 66 69 6c 65 20 68 61 73 20 62 65 ┆uired unless a batch file has be┆ 0x03e9e0…03ea00 65 6e 0d 73 65 6c 65 63 74 65 64 20 28 73 65 65 20 53 45 4c 45 43 54 20 42 41 54 43 48 20 46 49 ┆en selected (see SELECT BATCH FI┆ 0x03ea00…03ea20 (16, 1, 7) c5 a0 d0 d2 c9 ce d4 00 13 13 13 13 00 0d 0a 2a 2a 2a 20 46 41 54 41 4c 20 45 52 52 20 46 32 35 ┆ *** FATAL ERR F25┆ 0x03ea20…03ea40 3a 20 4e 4f 54 20 45 4e 55 46 20 4d 45 4d 4f 52 59 0d 0a 24 00 0e 20 46 69 6c 65 20 19 20 6e 6f ┆: NOT ENUF MEMORY $ File no┆ 0x03ea40…03ea60 74 20 66 6f 75 6e 64 2e 20 20 4d 65 6e 75 73 20 26 20 0e 20 6d 65 73 73 61 67 65 73 20 77 69 6c ┆t found. Menus & messages wil┆ 0x03ea60…03ea80 6c 20 64 69 73 70 6c 61 79 20 61 73 20 40 40 40 40 20 6f 6e 6c 79 2e 20 0e 00 a0 20 20 57 41 49 ┆l display as @@@@ only. WAI┆ 0x03ea80…03eaa0 54 20 20 0e 00 20 50 52 49 4e 54 5c 50 41 55 53 45 44 20 00 6d 65 72 67 65 2d 00 70 72 69 6e 74 ┆T PRINTØPAUSED merge- print┆ 0x03eaa0…03eac0 69 6e 67 5c 00 20 20 5c 65 64 69 74 69 6e 67 5c 6e 6f 5c 66 69 6c 65 5c 00 f0 e1 f2 f4 e9 e1 ec ┆ingØ ØeditingØnoØfileØ ┆ 0x03eac0…03eae0 20 00 c4 c9 d2 c5 c3 d4 cf d2 d9 20 ef e6 20 e4 e9 f3 eb 20 00 20 20 de da bd f3 e3 f2 ef ec ec ┆ ┆ 0x03eae0…03eb00 20 f5 f0 00 20 de d7 bd f3 e3 f2 ef ec ec 20 e4 ef f7 ee 00 2a 2a 2a 20 50 72 65 73 73 20 45 53 ┆ *** Press ES┆ 0x03eb00…03eb20 43 41 50 45 20 4b 65 79 20 00 0e 2a 2a 2a 20 49 4e 54 45 52 52 55 50 54 45 44 00 0e 2a 2a 2a 20 ┆CAPE Key *** INTERRUPTED *** ┆ 0x03eb20…03eb40 10 20 45 00 0e 2a 2a 2a 11 20 49 00 0e 2a 2a 2a 20 12 20 10 20 46 00 3a 20 00 0e 0e 0e 00 00 00 ┆ E *** I *** F : ┆ 0x03eb40…03eb60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x03eb60…03eb80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c5 e5 47 21 7f 0a cd 3f 17 7e b7 78 e1 c1 f8 37 c9 81 ┆ G! ? ü x 7 ┆ 0x03eb80…03eba0 00 00 00 00 00 03 03 01 81 81 00 00 81 00 03 00 00 00 00 00 81 00 00 00 00 81 81 81 81 00 03 d5 ┆ ┆ 0x03eba0…03ebc0 e5 2a 14 3d 3a 0e 3d cd 3f 17 e5 2a 1c 3d eb 2a 10 3d cd 2c 17 7c b7 f2 bd 0a 21 00 00 d1 cd 68 ┆ * =: = ? * = * = , ø ! h┆ 0x03ebc0…03ebe0 17 da c5 0a eb 22 2b 3d e1 d1 c9 e5 21 00 00 22 32 3d 22 34 3d 23 22 30 3d e1 7e d6 01 d8 32 2d ┆ "+= ! "2="4=#"0= ü 2-┆ 0x03ebe0…03ec00 3d 23 5e 23 56 23 23 96 da f2 0a 32 33 3d 7e 32 2d 3d 2b 7e 32 31 3d 23 23 f5 cd 55 17 f1 eb cd ┆=#^#V## 23=ü2-=+ü21=## U ┆ 0x03ec00…03ec20 (16, 1, 8) 21 26 3d 5e 1c 1d c8 cd 21 10 f5 cd 54 10 f1 cd 0e 10 78 c9 f5 c5 d5 e5 21 ab 32 e5 47 e6 80 4f ┆!&=^ ! T x ! 2 G O┆ 0x03ec20…03ec40 a8 21 95 03 be c2 2a 11 3e 20 fe 7f c2 31 11 3e 7e fe 1e c8 fe 1f c2 3b 11 3e 2d fe 20 d2 2d 12 ┆ ! * > 1 >ü ; >- - ┆ 0x03ec40…03ec60 fe 09 c2 57 11 21 03 3d 7e 3c e6 07 3e 20 ca 2d 12 cd 2e 12 c3 45 11 fe 0d c2 65 11 21 00 00 22 ┆ W ! =ü< > - . E e ! "┆ 0x03ec60…03ec80 03 3d c3 20 12 fe 0a c2 af 11 cd 20 12 2a 0e 3d 26 00 eb 2a 01 3d 19 22 01 3d eb 2a 10 3d cd 68 ┆ = * =& * = " = * = h┆ 0x03ec80…03eca0 17 d8 2a 01 3d 7c b5 c8 cd 6b 0f 21 00 00 22 01 3d 2a ff 3c 23 22 ff 3c af 32 05 3d cd 4f 0f 2a ┆ * =ø k ! " =* <#" < 2 = O *┆ 0x03eca0…03ecc0 0e 3d 3e 1c cd da 10 2a 2a 3d 3e 1d c3 da 10 fe 0c c2 e4 11 3a 8c 36 b7 c2 d1 11 2a 01 3d 7c b5 ┆ => **=> : 6 * =ø ┆ 0x03ecc0…03ece0 c8 3a e7 3c b7 2a 10 3d c2 65 10 cd 9d 0f c3 bb 11 cd 6b 0f 3e 0c cd 35 12 2a 01 3d 7c b5 ca 9c ┆ : < * = e k > 5 * =ø ┆ 0x03ece0…03ed00 11 c3 8b 11 fe 0b c8 fe 01 ca 2e 10 fe 0e ca 31 10 cd 6e 0a d2 24 12 ca 08 12 ea 2d 12 f5 21 03 ┆ . 1 n $ - ! ┆ 0x03ed00…03ed20 3d 7e b7 ca 07 12 35 f1 11 06 3d 21 87 0f 47 be eb cc 78 17 eb 13 23 7e 3c 78 c2 0f 12 cd f3 10 ┆=ü 5 =! G x #ü<x ┆ 0x03ed20…03ed40 b1 c3 35 12 f5 3e 5e cd 2e 12 f1 c6 40 b1 cd f3 10 21 03 3d 34 e5 d5 f5 fe 21 fc b6 12 cd 66 12 ┆ 5 >^ . @ ! =4 ! f ┆ 0x03ed40…03ed60 da 62 12 3a 8b 36 b7 c2 14 3e 3a 8c 36 2f 21 8e 36 b6 21 f8 3c b6 36 ff 3e 0c cc 76 12 f1 f5 cd ┆ b : 6 >: 6/! 6 ! < 6 > v ┆ 0x03ed60…03ed80 76 12 f1 d1 e1 c9 3a f7 3c b7 37 c0 2a ff 3c eb 2a ee 3c c3 68 17 f5 cd 01 13 d2 b4 12 cd 84 12 ┆v : < 7 * < * < h ┆ 0x03ed80…03eda0 f1 c3 76 12 cd 28 13 fc 8e 12 c4 81 0b c9 3e ff 32 01 38 c3 81 0b f5 c5 cd 55 27 cd 81 0b 0e 00 ┆ v ( > 2 8 U' ┆ 0x03eda0…03edc0 cd 7b 1c c2 98 12 cd 28 13 fc 8e 12 cc 81 0b 0d c2 a0 12 c1 f1 c9 f5 cd 7b 1c c4 81 0b f1 c9 3a ┆ æ ( æ :┆ 0x03edc0…03ede0 8b 36 b7 c2 cf 12 cd 84 12 c2 c6 12 c3 d2 12 cd 17 3e e5 3a 8b 36 b7 c2 f0 12 3e 1a cd 01 13 cd ┆ 6 > : 6 > ┆ 0x03ede0…03ee00 28 13 cd 38 1d ca f0 12 3a 37 3d fe c0 da df 12 11 6b 3d cd d8 18 21 00 00 22 ff 37 22 01 38 e1 ┆( 8 :7= k= ! " 7" 8 ┆ 0x03ee00…03ee20 (16, 1, 9) 20 66 69 6c 65 20 6d 61 69 6e 74 65 6e 61 6e 63 65 20 69 73 20 72 65 71 75 69 72 65 64 2c 20 65 ┆ file maintenance is required, e┆ 0x03ee20…03ee40 01 50 08 20 77 68 65 6e 20 61 20 62 61 74 63 68 20 66 69 6c 65 20 6e 61 6d 65 20 69 73 20 72 65 ┆ P when a batch file name is re┆ 0x03ee40…03ee60 71 75 65 73 74 65 64 2e 00 52 3d 52 45 53 54 4f 52 45 20 4d 41 49 4e 20 46 49 4c 45 20 69 73 20 ┆quested. R=RESTORE MAIN FILE is ┆ 0x03ee60…03ee80 75 73 65 64 20 74 6f 20 52 45 54 55 52 4e 20 54 4f 20 50 52 49 4d 41 52 59 20 44 41 54 41 42 41 ┆used to RETURN TO PRIMARY DATABA┆ 0x03ee80…03eea0 53 45 20 4f 50 45 52 41 54 49 4f 4e 2e 20 20 49 74 0d 69 73 20 6f 6e 6c 79 20 75 73 65 66 75 6c ┆SE OPERATION. It is only useful┆ 0x03eea0…03eec0 20 77 68 65 6e 20 61 20 62 61 74 63 68 20 66 69 6c 65 20 68 61 73 20 62 65 65 6e 20 73 65 6c 65 ┆ when a batch file has been sele┆ 0x03eec0…03eee0 63 74 65 64 20 61 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 66 69 6c 65 2e 00 4d 3d 45 44 49 54 ┆cted as the current file. M=EDIT┆ 0x03eee0…03ef00 20 53 43 41 4e 20 4d 41 53 4b 20 69 73 20 75 73 65 64 20 74 6f 20 41 4c 54 45 52 20 54 48 45 20 ┆ SCAN MASK is used to ALTER THE ┆ 0x03ef00…03ef20 43 55 52 52 45 4e 54 20 53 43 41 4e 20 4d 41 53 4b 2e 20 20 57 68 65 6e 20 74 68 65 20 66 6f 72 ┆CURRENT SCAN MASK. When the for┆ 0x03ef20…03ef40 6d 20 69 73 0d 70 72 65 73 65 6e 74 65 64 2c 20 61 6e 79 20 64 61 74 61 66 69 65 6c 64 20 6d 61 ┆m is presented, any datafield ma┆ 0x03ef40…03ef60 79 20 62 65 20 65 6e 74 65 72 65 64 2e 20 20 49 66 20 61 20 53 43 41 4e 20 4d 4f 44 45 20 69 73 ┆y be entered. If a SCAN MODE is┆ 0x03ef60…03ef80 20 74 68 65 6e 20 73 65 6c 65 63 74 65 64 2c 0d 6f 6e 6c 79 20 72 65 63 6f 72 64 73 20 74 68 61 ┆ then selected, only records tha┆ 0x03ef80…03efa0 74 20 6d 61 74 63 68 20 74 68 65 20 65 6e 74 65 72 65 64 20 64 61 74 61 66 69 65 6c 64 73 20 28 ┆t match the entered datafields (┆ 0x03efa0…03efc0 6f 72 20 70 6f 72 74 69 6f 6e 73 20 74 68 65 72 65 6f 66 29 20 77 69 6c 6c 0d 62 65 20 64 69 73 ┆or portions thereof) will be dis┆ 0x03efc0…03efe0 70 6c 61 79 65 64 2e 00 4b 3d 53 45 4c 45 43 54 20 42 59 20 4b 45 59 20 4d 4f 44 45 20 69 73 20 ┆played. K=SELECT BY KEY MODE is ┆ 0x03efe0…03f000 75 73 65 64 20 74 6f 20 53 45 4c 45 43 54 20 49 4e 44 49 56 49 44 55 41 4c 20 52 45 43 4f 52 44 ┆used to SELECT INDIVIDUAL RECORD┆ 0x03f000…03f020 (16, 1, 10) 4c 45 20 6d 65 73 73 61 67 65 29 2e 00 0d 22 2e 22 20 69 73 20 74 68 65 20 6f 6e 6c 79 20 63 68 ┆LE message). "." is the only ch┆ 0x03f020…03f040 61 72 61 63 74 65 72 20 61 6c 6c 6f 77 65 64 20 68 65 72 65 2e 0d 01 0f 1a 00 0d 30 2d 39 2c 20 ┆aracter allowed here. 0-9, ┆ 0x03f040…03f060 22 23 24 25 28 29 2a 2b 2d 2e 22 01 e8 19 00 0d 30 2d 39 01 e8 19 00 0d 61 2d 7a 01 e8 19 00 0d ┆"#$%()*+-." 0-9 a-z ┆ 0x03f060…03f080 41 2d 5a 01 e8 19 00 0d 61 2d 7a 01 de 19 00 0d 41 2d 5a 01 de 19 00 0d 41 2d 5a 20 61 6e 64 20 ┆A-Z a-z A-Z A-Z and ┆ 0x03f080…03f0a0 61 2d 7a 01 e8 19 00 0d 41 2d 5a 2c 20 61 2d 7a 01 de 19 00 0d 61 2d 7a 20 61 6e 64 20 30 2d 39 ┆a-z A-Z, a-z a-z and 0-9┆ 0x03f0a0…03f0c0 01 e8 19 00 0d 41 2d 5a 20 61 6e 64 20 30 2d 39 01 e8 19 00 0d 61 2d 7a 01 d9 19 00 0d 41 2d 5a ┆ A-Z and 0-9 a-z A-Z┆ 0x03f0c0…03f0e0 01 d9 19 00 0d 41 2d 5a 2c 20 61 2d 7a 20 61 6e 64 20 30 2d 39 01 e8 19 00 0d 41 2d 5a 2c 20 61 ┆ A-Z, a-z and 0-9 A-Z, a┆ 0x03f0e0…03f100 2d 7a 01 d9 19 00 2c 20 30 2d 39 20 61 6e 64 20 73 70 61 63 65 20 61 72 65 20 74 68 65 20 6f 6e ┆-z , 0-9 and space are the on┆ 0x03f100…03f120 6c 79 20 63 68 61 72 61 63 74 65 72 73 20 61 6c 6c 6f 77 65 64 20 68 65 72 65 2e 0d 01 f4 01 20 ┆ly characters allowed here. ┆ 0x03f120…03f140 69 67 6e 6f 72 65 64 2e 20 01 a9 08 3a 20 00 0d 5e 01 f4 01 20 55 6e 69 6d 70 6c 65 6d 65 6e 74 ┆ignored. : ^ Unimplement┆ 0x03f140…03f160 65 64 20 63 6f 6e 74 72 6f 6c 20 63 68 61 72 61 63 74 65 72 01 1a 1a 00 0d 49 6c 6c 65 67 61 6c ┆ed control character Illegal┆ 0x03f160…03f180 20 63 68 61 72 61 63 74 65 72 3b 20 01 0f 1a 00 0d 4e 6f 74 20 65 6e 6f 75 67 68 20 6d 65 6d 6f ┆ character; Not enough memo┆ 0x03f180…03f1a0 72 79 20 74 6f 20 63 6f 6d 70 6c 65 74 65 20 63 61 6c 63 75 6c 61 74 69 6f 6e 01 1a 1a 00 0d 52 ┆ry to complete calculation R┆ 0x03f1a0…03f1c0 65 73 75 6c 74 20 6f 66 20 63 61 6c 63 75 6c 61 74 69 6f 6e 20 6c 61 72 67 65 72 20 74 68 61 6e ┆esult of calculation larger than┆ 0x03f1c0…03f1e0 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 66 69 65 6c 64 01 1a 1a 00 0d 46 61 74 61 6c 20 70 72 6f ┆ destination field Fatal pro┆ 0x03f1e0…03f200 67 72 61 6d 20 65 72 72 6f 72 2e 0d 50 6c 65 61 73 65 20 72 65 70 6f 72 74 20 6f 63 63 75 72 61 ┆gram error. Please report occura┆ 0x03f200…03f220 (16, 1, 11) 46 17 22 2e 3d cd 2c 17 7c b7 f8 22 34 3d eb 22 2e 3d c9 c5 4f 3a 0e 3d f5 d5 e5 06 00 21 00 00 ┆F ".= , ø "4= ".= O: = ! ┆ 0x03f220…03f240 3c 3d ca 29 0b 09 c3 21 0b eb e1 71 23 73 23 72 d1 23 f1 77 c1 c9 77 23 cd 21 10 77 c9 21 23 3d ┆<= ) ! q#s#r # w w# ! w !#=┆ 0x03f240…03f260 7e b7 23 ca 47 0b 23 7e c9 cd 7b 1c c0 e5 2a 00 38 7c 2f a5 21 18 07 a6 e1 c8 cd 28 13 f2 65 0b ┆ü # G #ü æ * 8ø/ ! ( e ┆ 0x03f260…03f280 3e ff 32 01 38 c3 7b 1c f5 cd 49 0b f1 c9 cd 7b 1c c0 e5 2a 00 38 7c 2f a5 e1 c8 cd 81 0b c3 7b ┆> 2 8 æ I æ * 8ø/ æ┆ 0x03f280…03f2a0 1c c5 d5 e5 f5 2a f9 3c eb 21 00 00 39 22 f9 3c eb f9 f1 c3 5b 1a 3a ff 37 b7 c2 1f 45 cd b3 0b ┆ * < ! 9" < Æ : 7 E ┆ 0x03f2a0…03f2c0 f5 cd 27 0c 22 95 3d f1 fe 1a cc bf 12 cd 81 0b c3 9d 0b cd 0c 0c 3a f7 3c b7 c2 c4 0b cd ca 0b ┆ ' " = : < ┆ 0x03f2c0…03f2e0 78 b1 7e c0 3e 1a c9 cd 0c 0c 78 b7 c0 3a 44 3d b7 c8 eb 2a 9b 3d 22 95 3d eb cd c2 16 eb 22 97 ┆x ü > x :D= * =" = " ┆ 0x03f2e0…03f300 3d cd 96 12 e5 11 80 00 19 eb 2a 99 3d cd 68 17 d2 08 0c eb e3 cd 49 0b 11 45 3d cd a3 19 e1 da ┆= * = h I E= ┆ 0x03f300…03f320 0c 0c 22 97 3d c3 e4 0b e1 cd 81 0b 21 95 3d cd 51 17 cd 35 17 eb c9 cd 51 17 c3 68 17 1e 00 c3 ┆ " = ! = Q 5 Q h ┆ 0x03f320…03f340 2c 0c 1e ff c3 2c 0c eb 2a f4 3c eb 57 cd b6 0e 7b b7 ca 45 0c 7a e6 7f e5 21 94 03 ae 21 8d 36 ┆, , * < W æ E z ! ! 6┆ 0x03f340…03f360 b6 e1 ca 88 0c 7a e6 7f fe 1a c2 53 0c 3e 0c 57 01 01 00 5f ee 0c e5 21 05 3d b6 e1 7a c4 30 0e ┆ z S > W _ ! = z 0 ┆ 0x03f360…03f380 23 3e ff 32 f4 3c 7b fe 0c c8 fe 0a c8 af 32 f4 3c e5 cd 66 12 e1 d0 cd b6 12 0b 78 b1 c8 7e e6 ┆#> 2 <æ 2 < f x ü ┆ 0x03f380…03f3a0 7f fe 20 d8 23 c3 7a 0c eb 0b 21 00 00 39 22 fb 3c c5 d5 21 c8 0c cd 68 25 da be 0c ca be 0c fc ┆ # z ! 9" < ! h% ┆ 0x03f3a0…03f3c0 b0 0c cd af 0c cd 18 0e 2a fb 3c f9 13 eb c9 e9 3a ff 37 b7 ca be 0c 1b 1b 03 03 c3 22 45 3a ff ┆ * < : 7 "E: ┆ 0x03f3c0…03f3e0 37 b7 c4 25 45 c3 a5 0c 4c 48 11 0d 53 52 23 0d 55 4a d1 0d 42 50 ea 0d 50 4c 2b 0d 4d 54 37 0d ┆7 %E LH SR# UJ BP PL+ MT7 ┆ 0x03f3e0…03f400 4d 42 3d 0d 48 4d 43 0d 46 4d 49 0d 43 57 4f 0d 50 43 60 0d 50 4f 57 0d 50 41 75 0d 43 50 6f 0d ┆MB= HMC FMI CWO PC` POW PAu CPo ┆ 0x03f400…03f420 (16, 1, 12) c9 3c c8 3d c8 c5 e5 47 3a 02 38 b7 37 ca 24 13 2a 9f 3d 7e b7 37 c2 24 13 70 23 7e 3c cc 4e 13 ┆ < = G: 8 7 $ * =ü 7 $ p#ü< N ┆ 0x03f420…03f440 22 9f 3d af 78 e1 c1 c9 c5 47 3a 02 38 b7 78 c1 c8 c5 d5 e5 f5 2a 51 3c eb 21 00 00 39 f1 f5 22 ┆" = x G: 8 x *Q< ! 9 "┆ 0x03f440…03f460 51 3c eb f9 c1 78 c3 5b 1a af 3c c3 31 13 2a a3 3d 23 c9 3a bf 3c 47 3a 76 3c 4f 3a 58 3c 3c c2 ┆Q< x Æ < 1 * =# : <G:v<O:X<< ┆ 0x03f460…03f480 68 13 cd 9a 14 c3 81 13 3a c6 3c 3d ca 7e 13 3c c2 81 13 3a d7 3c b7 ca 81 13 78 ee a0 c8 f6 ff ┆h : <= ü < : < x ┆ 0x03f480…03f4a0 fe af 3e 06 c4 3e 14 16 00 5f 78 32 76 3c 3a c2 3c b7 2a 78 3c ca 9f 13 2a 6a 3c 3a 72 3c 67 22 ┆ > > _x2v<: < *x< *j<:r<g"┆ 0x03f4a0…03f4c0 c0 3c ca a8 13 79 48 47 2a 6a 3c 3a 72 3c 67 22 78 3c 3a 77 3c 6f 26 00 7b 32 77 3c 19 79 b7 ca ┆ < yHG*j<:r<g"x<:w<o& æ2w< y ┆ 0x03f4c0…03f4e0 cc 13 11 f4 ff 19 3a c1 3c cd 3f 17 eb 79 e6 5f 21 c0 3c a6 2a ea 3c eb c4 2c 17 eb 3a 58 3c 3c ┆ : < ? y _! < * < , :X<<┆ 0x03f4e0…03f500 ca 31 14 21 c6 3c 35 7e 3c c2 2d 14 34 21 d7 3c 7e b7 ca 2d 14 35 2a de 3c 19 eb 3a c0 3c b7 2a ┆ 1 ! <5ü< - 4! <ü - 5* < : < *┆ 0x03f500…03f520 e0 3c c4 3b 14 21 e4 3c cd 34 14 3a d2 3c b7 c2 17 14 79 b7 f2 2d 14 2a da 3c 19 eb e6 7f cd b4 ┆ < ; ! < 4 : < y - * < ┆ 0x03f520…03f540 17 2a dc 3c cc 3b 14 21 e2 3c cd 34 14 af 32 d2 3c c3 11 3e 7e b7 c8 35 2a ea 3c 19 eb c9 3a d3 ┆ * < ; ! < 4 2 < >ü 5* < : ┆ 0x03f540…03f560 07 b7 c2 8c 14 78 e6 7f c8 fe 20 ca 8c 14 fe 06 c2 55 14 3e 20 fe 07 c2 5c 14 3e 7f fe 20 da 8c ┆ x U > Ø > ┆ 0x03f560…03f580 14 e5 21 b8 07 cd 3f 17 3a 6e 3c b7 7e c2 76 14 1f 1f 1f 1f 3d 00 e6 07 3c 00 3c 2a ea 3c 2d ca ┆ ! ? :n< ü v = < <* <- ┆ 0x03f580…03f5a0 8a 14 fe 06 d2 88 14 3c e6 fe e1 c9 3e 06 c9 cd 3e 14 87 11 0c 00 19 c3 46 17 cd b0 14 78 e6 5f ┆ < > > F x _┆ 0x03f5a0…03f5c0 cc 38 1d c4 2b 15 79 b7 f0 fe a0 c8 32 d2 3c c9 3a d1 3c b7 c2 e4 14 21 c6 3c 34 21 ce 3c 34 78 ┆ 8 + y 2 < : < ! <4! <4x┆ 0x03f5c0…03f5e0 fe a0 2a cc 3c c2 d2 14 3a 72 3c cd 3f 17 22 cc 3c c9 cd 8f 14 22 cc 3c 21 cf 3c 34 3a 6a 3c b7 ┆ * < :r< ? " < " <! <4:j< ┆ 0x03f5e0…03f600 c8 23 34 c9 21 c7 3c 34 78 fe a0 c2 fb 14 3a 72 3c 2a ca 3c cd 3f 17 22 ca 3c c9 21 c8 3c cd db ┆ #4 ! <4x :r<* < ? " < ! < ┆ 0x03f600…03f620 (16, 1, 13) 53 20 46 52 4f 4d 20 54 48 45 20 46 49 4c 45 20 66 6f 72 0d 73 63 72 65 65 6e 20 64 69 73 70 6c ┆S FROM THE FILE for screen displ┆ 0x03f620…03f640 61 79 2e 20 20 57 68 65 6e 20 74 68 65 20 66 6f 72 6d 20 69 73 20 70 72 65 73 65 6e 74 65 64 2c ┆ay. When the form is presented,┆ 0x03f640…03f660 20 65 6e 74 72 79 20 77 69 6c 6c 20 62 65 20 72 65 71 75 69 72 65 64 20 61 74 20 65 61 63 68 0d ┆ entry will be required at each ┆ 0x03f660…03f680 22 6b 65 79 22 20 66 69 65 6c 64 20 74 68 61 74 20 74 68 65 20 63 75 72 73 6f 72 20 73 74 6f 70 ┆"key" field that the cursor stop┆ 0x03f680…03f6a0 73 20 61 74 2e 20 20 57 68 65 6e 20 65 6e 74 72 79 20 69 73 20 63 6f 6d 70 6c 65 74 65 2c 20 74 ┆s at. When entry is complete, t┆ 0x03f6a0…03f6c0 68 65 20 66 69 72 73 74 0d 72 65 63 6f 72 64 20 69 6e 20 74 68 65 20 66 69 6c 65 20 74 68 61 74 ┆he first record in the file that┆ 0x03f6c0…03f6e0 20 65 78 61 63 74 6c 79 20 6d 61 74 63 68 65 73 20 69 6e 20 74 68 65 20 65 6e 74 65 72 65 64 20 ┆ exactly matches in the entered ┆ 0x03f6e0…03f700 70 6f 73 69 74 69 6f 6e 73 20 77 69 6c 6c 20 62 65 0d 64 69 73 70 6c 61 79 65 64 2e 20 20 54 68 ┆positions will be displayed. Th┆ 0x03f700…03f720 69 73 20 73 65 61 72 63 68 20 6d 6f 64 65 20 69 73 20 66 61 73 74 65 72 20 74 68 61 6e 20 74 68 ┆is search mode is faster than th┆ 0x03f720…03f740 65 20 53 43 41 4e 20 4d 4f 44 45 20 73 65 61 72 63 68 20 77 69 74 68 20 6d 61 73 6b 2e 00 49 3d ┆e SCAN MODE search with mask. I=┆ 0x03f740…03f760 53 43 41 4e 20 49 4e 20 49 4e 44 45 58 20 46 49 4c 45 20 4f 52 44 45 52 20 69 73 20 75 73 65 64 ┆SCAN IN INDEX FILE ORDER is used┆ 0x03f760…03f780 20 74 6f 20 52 45 56 49 45 57 20 54 48 45 20 43 55 52 52 45 4e 54 20 46 49 4c 45 20 49 4e 20 53 ┆ to REVIEW THE CURRENT FILE IN S┆ 0x03f780…03f7a0 4f 52 54 20 4f 52 44 45 52 2e 0d 54 68 65 20 63 6f 6d 6d 61 6e 64 73 20 5e 50 20 61 6e 64 20 5e ┆ORT ORDER. The commands ^P and ^┆ 0x03f7a0…03f7c0 4e 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 64 69 73 70 6c 61 79 20 74 68 65 20 50 72 65 ┆N can be used to display the Pre┆ 0x03f7c0…03f7e0 76 69 6f 75 73 20 6f 72 20 4e 65 78 74 20 72 65 63 6f 72 64 2e 0d 54 68 65 20 73 63 61 6e 20 6d ┆vious or Next record. The scan m┆ 0x03f7e0…03f800 61 73 6b 20 63 61 6e 20 62 65 20 65 64 69 74 65 64 20 73 6f 20 74 68 61 74 20 74 68 69 73 20 6d ┆ask can be edited so that this m┆ 0x03f800…03f820 (16, 1, 14) 6e 63 65 01 1a 1a 00 0d 5a 65 72 6f 20 64 69 76 69 73 6f 72 20 69 6e 20 63 61 6c 63 75 6c 61 74 ┆nce Zero divisor in calculat┆ 0x03f820…03f840 69 6f 6e 01 1a 1a 00 0d 45 78 70 6f 6e 65 6e 74 20 6f 76 65 72 66 6c 6f 77 01 1a 1a 00 0d 46 69 ┆ion Exponent overflow Fi┆ 0x03f840…03f860 65 6c 64 20 69 73 20 6e 6f 74 20 63 6f 6d 70 6c 65 74 65 01 1a 1a 00 0d 46 69 65 6c 64 20 76 61 ┆eld is not complete Field va┆ 0x03f860…03f880 6c 75 65 20 6d 75 73 74 20 6c 69 65 20 62 65 74 77 65 65 6e 0d 20 01 f6 01 20 26 0d 20 01 fb 01 ┆lue must lie between & ┆ 0x03f880…03f8a0 0d 01 1c 1a 00 0d 46 69 65 6c 64 20 64 6f 65 73 20 6e 6f 74 20 65 78 61 63 74 6c 79 20 6d 61 74 ┆ Field does not exactly mat┆ 0x03f8a0…03f8c0 63 68 20 70 72 65 76 69 6f 75 73 20 65 6e 74 72 79 2e 0d 50 6c 65 61 73 65 20 65 6e 74 65 72 20 ┆ch previous entry. Please enter ┆ 0x03f8c0…03f8e0 66 69 65 6c 64 20 74 77 69 63 65 20 77 69 74 68 20 74 68 65 20 73 61 6d 65 20 76 61 6c 75 65 01 ┆field twice with the same value ┆ 0x03f8e0…03f900 1a 1a 00 0d 49 6c 6c 65 67 61 6c 20 66 69 65 6c 64 2e 20 20 50 6c 65 61 73 65 20 72 65 2d 65 6e ┆ Illegal field. Please re-en┆ 0x03f900…03f920 74 65 72 01 1a 1a 00 ff ff 6c 64 20 64 6f 65 73 20 6e 6f 74 20 65 78 61 63 74 6c 79 20 6d 61 74 ┆ter ld does not exactly mat┆ 0x03f920…03f940 63 68 20 70 72 65 76 69 6f 75 73 20 65 6e 74 72 79 2e 0d 50 6c 65 61 73 65 20 65 6e 74 65 72 20 ┆ch previous entry. Please enter ┆ 0x03f940…03f960 66 69 65 6c 64 20 74 77 69 63 65 20 77 69 74 68 20 74 68 65 20 73 61 6d 65 20 76 61 6c 75 65 01 ┆field twice with the same value ┆ 0x03f960…03f980 27 5c 00 0d 49 6c 6c 65 67 61 6c 20 66 69 65 6c 64 2e 20 20 50 6c 65 61 73 65 20 72 65 2d 65 6e ┆'Ø Illegal field. Please re-en┆ 0x03f980…03f9a0 00 00 00 ff 00 c7 42 c7 42 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ B B ┆ 0x03f9a0…03f9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x03f9c0…03f9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 00 00 00 00 fc 1a fc 1a 06 4f 4e 44 ┆ OND┆ 0x03f9e0…03fa00 4f 9d 44 4f ec 44 4f 3b 45 4f 8a 45 4f 77 46 06 4f 4e 44 4f 9d 44 4f d9 45 4f 3b 45 4f 8a 45 4f ┆O DO DO;EO EOwF ONDO DO EO;EO EO┆ 0x03fa00…03fa20 (16, 1, 15) 50 4e 80 0d 4f 50 7a 0d 48 45 a0 0d 46 4f 9a 0d 00 21 0e 3d 3e 1c f5 cd 07 0e 77 cd 9f 0a f1 6e ┆PN OPz HE FO ! => w n┆ 0x03fa20…03fa40 c3 da 10 21 2a 3d 3e 1d c3 16 0d 21 0f 3d cd 07 0e cd 13 0b c3 9f 0a 21 13 3d c3 2e 0d 21 1b 3d ┆ !*=> ! = ! = . ! =┆ 0x03fa40…03fa60 c3 2e 0d 21 17 3d c3 2e 0d 21 1f 3d c3 2e 0d cd 3d 0b 3e 15 c3 16 0d 21 26 3d cd 07 0e c3 36 0b ┆ . ! = . ! = . = > !&= 6 ┆ 0x03fa60…03fa80 21 28 3d cd 07 0e d6 02 d2 6c 0d af c3 36 0b cd 07 0e c3 b8 0e 3e 0c c3 30 0e 3e ff 32 f5 3c c9 ┆!(= l 6 > 0 > 2 < ┆ 0x03fa80…03faa0 cd b2 25 da 96 0d c5 d5 cd 6b 0f 22 ff 3c cd 4f 0f cd 9f 11 d1 c1 af c3 7c 0d 2a 93 3d c3 a3 0d ┆ % k " < O ø * = ┆ 0x03faa0…03fac0 2a 91 3d 3e c6 e5 6f e3 cd 21 10 77 23 cd f7 25 ca cd 0d e6 7f fe 20 c2 c0 0d cd f7 25 ca cd 0d ┆* => o ! w# % % ┆ 0x03fac0…03fae0 fe 0d ca cd 0d 77 23 e3 2d e3 c2 ba 0d 36 00 e1 c9 3e 09 f5 cd b2 25 da e0 0d c2 be 0c c3 e6 0d ┆ w# - 6 > % ┆ 0x03fae0…03fb00 21 ef 0d cd f8 0d f1 c3 da 10 3e 1e c3 d3 0d 4f 4e ff ff 4f 46 00 ff 00 cd a2 25 1b 03 c4 68 25 ┆! > ON OF % h%┆ 0x03fb00…03fb20 ca be 0c fa be 0c c9 e5 cd 0e 0e 7d e1 c9 cd b2 25 da be 0c c2 be 0c c9 03 1b cd 38 1d cd f7 25 ┆ å % 8 %┆ 0x03fb20…03fb40 da 27 0e c8 c3 1d 0e cd 38 1d fe 0a c8 1b 03 c9 c5 d5 e5 f5 cd 60 0e cd 56 0e f1 f5 e6 7f ee 0c ┆ ' 8 ` V ┆ 0x03fb40…03fb60 21 8d 36 b6 c2 4d 0e cd d7 0e c3 52 0e f1 f5 cd 14 11 f1 c3 5b 1a cd 66 12 d8 3e ff 32 f6 3c c9 ┆! 6 M R Æ f > 2 < ┆ 0x03fb60…03fb80 21 05 3d 7e b7 c0 36 ff cd a3 0e cd 66 12 da 7f 0e 3a 8e 36 21 f6 3c a6 36 00 3e 03 c4 35 12 3a ┆! =ü 6 f : 6! < 6 > 5 :┆ 0x03fb80…03fba0 8d 36 b7 c0 21 13 3d cd cb 0a d8 21 33 3d cd 8f 10 2a 91 3d cd a8 0f 21 30 3d cd 8f 10 21 2d 3d ┆ 6 ! = !3= * = !0= !-=┆ 0x03fba0…03fbc0 c3 8f 10 2a f0 3c eb 2a ff 3c 7a b3 c4 68 17 d0 3e ff 32 f7 3c c9 3e 01 d5 e5 2a 01 3d 16 00 5f ┆ * < * <z h > 2 < > * = _┆ 0x03fbc0…03fbe0 3a 0e 3d 3c 3d ca cc 0e 19 c3 c4 0e eb 2a 2b 3d eb cd 68 17 e1 d1 d0 3a 8d 36 b7 c0 c5 d5 e5 cd ┆: =<= *+= h : 6 ┆ 0x03fbe0…03fc00 60 0e cd 56 0e 2a 2b 3d cd 65 10 21 1b 3d cd cb 0a da 03 0f 21 2d 3d cd 8f 10 cd 0d 0f 21 30 3d ┆` V *+= e ! = !-= !0=┆ 0x03fc00…03fc20 (17, 0, 1) 14 78 fe 20 c8 2a c8 3c eb 2a d7 3c 19 22 d7 3c 2a ca 3c eb 2a c4 3c 19 cd 8f 14 22 c4 3c 21 00 ┆ x * < * < " <* < * < " <! ┆ 0x03fc20…03fc40 00 22 c8 3c 22 ca 3c 22 c7 3c c9 21 d2 3c 7e 36 00 e6 7f c4 4a 15 79 e6 5f c0 21 00 00 22 cf 3c ┆ " <" <" < ! <ü6 J y _ ! " <┆ 0x03fc40…03fc60 22 ce 3c cd 8f 14 22 cc 3c c9 21 d3 3c 34 cd b4 17 c2 58 15 21 d5 3c 34 21 d1 3c 7e b7 c0 3a 53 ┆" < " < ! <4 X ! <4! <ü :S┆ 0x03fc60…03fc80 3c b7 c8 35 2a cf 3c 22 d7 3c 3a c6 3c 21 ce 3c 96 32 c6 3c 2a cc 3c 22 c4 3c c9 2a c4 3c 7c b5 ┆< 5* <" <: <! < 2 <* <" < * <ø ┆ 0x03fc80…03fca0 c8 3a d7 3c b7 c8 eb 2a d3 3c 29 eb 0e 00 3a 72 3c b7 1f 47 24 25 f2 a1 15 cd bd 15 3d 3d f2 94 ┆ : < * <) :r< G$% == ┆ 0x03fca0…03fcc0 15 78 fe 05 d4 bd 15 78 fe 04 d4 bd 15 79 32 da 3c b7 f2 ba 15 3e ff 32 db 3c c3 c2 15 19 0d 0d ┆ x x y2 < > 2 < ┆ 0x03fcc0…03fce0 05 c9 3a ea 3c 3d ca d1 15 7c 07 0f 1f 67 7d 1f 6f 7c b7 f2 ef 15 eb 2a d7 3c 26 00 19 e5 2a ea ┆ : <= ø gå oø * <& * ┆ 0x03fce0…03fd00 3c eb 2a de 3c cd 2c 17 22 de 3c e1 c3 d1 15 22 c4 3c 3a d4 07 b7 c4 85 16 cd 71 16 f4 85 16 cd ┆< * < , " < " <: q ┆ 0x03fd00…03fd20 95 16 cd 7c 16 0e 06 cd 71 16 fa 1d 16 cd 4d 16 d2 36 16 cd 85 16 0d c2 07 16 c3 36 16 cd 85 16 ┆ ø q M 6 6 ┆ 0x03fd20…03fd40 cd 4d 16 d2 36 16 cd 7c 16 cd 4d 16 d2 36 16 2a c4 3c 22 e4 3c c9 3a d3 3c b7 ca 2f 16 cd 85 16 ┆ M 6 ø M 6 * <" < : < / ┆ 0x03fd40…03fd60 f2 3d 16 cd 8c 16 2a c4 3c 22 e2 3c c9 2a d3 3c 29 eb 2a d5 3c 19 54 5d 19 3a 72 3c fe 0c da 62 ┆ = * <" < * <) * < TÅ :r< b┆ 0x03fd60…03fd80 16 19 3a d4 07 b7 ca 6a 16 19 eb 2a c4 3c c3 68 17 2a d7 3c 26 00 11 de 3c c3 9b 16 2a d8 3c 11 ┆ : j * < h * <& < * < ┆ 0x03fd80…03fda0 e0 3c c3 9b 16 cd 95 16 f8 cd 95 16 2a d5 3c 11 dc 3c c3 9b 16 2a d3 3c 11 da 3c e5 d5 eb 2a c4 ┆ < * < < * < < * ┆ 0x03fda0…03fdc0 3c cd 2c 17 7c b7 fa bc 16 22 c4 3c e1 3a ea 3c 86 77 23 7e ce 00 77 2b eb e1 af c9 d1 e1 c9 01 ┆< , ø " < : < w#ü w+ ┆ 0x03fdc0…03fde0 03 00 cd 68 17 c2 cf 16 09 eb 09 01 00 00 c9 04 0c c3 d8 16 7e 12 23 13 0d c2 d4 16 05 c2 d4 16 ┆ h ü # ┆ 0x03fde0…03fe00 c9 cd 68 17 c2 f6 16 af 91 4f 3e 00 98 47 af 09 eb 09 01 00 00 c9 04 0c c3 ff 16 2b 1b 7e 12 0d ┆ h O> G + ü ┆ 0x03fe00…03fe20 (17, 0, 2) ba 02 b7 ca 10 1d c5 d5 e5 cd ba 02 b7 c3 5b 1a 3e 03 cd 29 1d b7 c9 3a bd 02 b7 ca 27 1d c5 d5 ┆ Æ > ) : ' ┆ 0x03fe20…03fe40 e5 cd bd 02 c3 5b 1a 3e 06 c5 d5 e5 21 5b 1a e5 2a 01 00 cd 3f 17 79 e9 e5 f5 21 d7 02 35 c2 48 ┆ Æ > !Æ * ? y ! 5 H┆ 0x03fe40…03fe60 1d 2b 7e 23 77 cd 4b 1d f1 e1 c9 cd ff 1c f5 c4 ab 1c f1 c9 f5 c5 e5 21 9e 37 22 9a 37 22 9c 37 ┆ +ü#w K ! 7" 7" 7┆ 0x03fe60…03fe80 01 50 00 cd 08 17 e1 c1 f1 c9 fe 0d c8 fe 0a c8 c5 47 3a 1e 37 4f 78 cd 82 1d 3a 49 02 0c b9 78 ┆ P G: 7Ox :I x┆ 0x03fe80…03fea0 c1 c9 03 fe 20 d0 03 fe 09 c0 f5 0b 0b 79 f6 07 4f 03 f1 c9 c5 4e 23 46 fe 20 dc 6e 0a da a8 1d ┆ y O N#F n ┆ 0x03fea0…03fec0 cd 82 1d 70 2b 71 c1 c9 ca a3 1d 03 ea a3 1d 0b 0b c3 a3 1d cd 65 21 f5 c5 d5 e5 cd 49 0b eb 2a ┆ p+q e! I *┆ 0x03fec0…03fee0 77 39 eb 3a 49 02 4f 26 00 3a 48 02 3d 95 e5 21 aa 02 b6 e1 c2 d8 1d 0d 44 e5 d5 cd 44 23 d1 3a ┆w9 :I O& :H = ! D D# :┆ 0x03fee0…03ff00 20 37 b7 c2 1f 1e 1a be c2 f6 1d 23 13 04 0d c2 e6 1d e1 c3 19 1e d5 c5 06 00 09 eb 09 eb c1 2b ┆ 7 # +┆ 0x03ff00…03ff20 1b 1a be c2 0a 1e 0d c2 ff 1d d1 e1 60 cd bc 22 1a cd cf 1f 13 0d c2 10 1e e1 d1 c1 f1 b7 c9 cd ┆ ` " ┆ 0x03ff20…03ff40 c8 20 06 00 eb cd c3 02 cd c2 16 cd c9 02 cd f2 20 c3 f2 1d e5 21 1e 37 86 3c 21 49 02 be e1 d8 ┆ ! 7 <!I ┆ 0x03ff40…03ff60 f5 e5 cd 38 1d cd 77 1e 2a 1d 37 cd c5 21 c3 71 1e f5 e5 cd 77 1e 21 49 02 3a 1e 37 3c be d2 69 ┆ 8 w * 7 ! q w !I : 7< i┆ 0x03ff60…03ff80 1e 3e 20 cd cf 1f c3 59 1e 2a 1d 37 3e 2b cc cf 1f 2c 26 00 c3 be 22 f5 e5 3a 1d 37 3c 21 48 02 ┆ > Y * 7>+ ,& " : 7<!H ┆ 0x03ff80…03ffa0 be da e9 20 3e 0a cd cf 1f 2a 1d 37 2d c3 be 22 f5 3e 0f cd 98 1e f1 c9 fe 0e ca 40 1e d5 cd b4 ┆ > * 7- " > @ ┆ 0x03ffa0…03ffc0 1e ca ad 1e d1 f5 ee 80 cd 6d 1f f1 c9 eb cd d0 1a eb d1 c9 fe 1a ca 0b 1f d0 fe 18 ca fc 1e d2 ┆ m ┆ 0x03ffc0…03ffe0 12 1f fe 16 ca da 1e d2 e7 1e fe 0f da 2e 1f eb 21 2c 08 87 cd 3f 17 eb af c9 3a ff 37 b7 11 3e ┆ . !, ? : 7 >┆ 0x03ffe0…040000 08 c8 11 3c 08 af c9 11 40 08 3a 00 38 b7 c8 11 42 08 3a 01 38 b7 c8 11 44 08 af c9 cd a5 24 cd ┆ < @ : 8 B : 8 D $ ┆ 0x040000…040020 (17, 0, 3) 00 22 9d 38 22 9f 38 e1 af 32 9b 38 32 9a 38 32 94 38 32 98 38 cd 43 21 cd e3 24 32 99 38 c3 db ┆ " 8" 8 2 82 82 82 8 C! $2 8 ┆ 0x040020…040040 32 cd e3 24 c3 43 21 3a cf 02 c3 3c 25 3a d0 02 c3 3c 25 3a d1 02 c3 3c 25 3a d2 02 c5 47 4f cd ┆2 $ C!: <%: <%: <%: GO ┆ 0x040040…040060 7b 1c c2 5a 25 3a 00 38 b7 ca 54 25 0b 0b 79 e6 07 cc 6e 0b 0b 78 b7 f2 3f 25 c1 c3 7b 1c 00 e6 ┆æ Z%: 8 T% y n x ?% æ ┆ 0x040060…040080 7f e5 21 94 03 be e1 c9 cd f7 25 c8 e6 df 32 5e 25 cd f7 25 c8 e6 df d5 5f 3a 5e 25 57 7e b7 ca ┆ ! % 2^% % _:^%Wü ┆ 0x040080…0400a0 9c 25 ba 23 ca 8d 25 23 23 23 c3 7d 25 7e bb c2 87 25 23 5e 23 56 eb f6 01 c3 9e 25 f6 ff d1 c3 ┆ % # %### å%ü %#^#V % ┆ 0x0400a0…0400c0 38 1d cd f7 25 c8 fe 20 ca a2 25 fe 09 ca a2 25 b7 c9 21 00 00 cd a2 25 da ec 25 ca ee 25 d6 30 ┆8 % % % ! % % % 0┆ 0x0400c0…0400e0 da ec 25 fe 0a d2 ec 25 d5 54 5d 29 29 19 29 5f 16 00 19 d1 cd f7 25 da e7 25 ca e9 25 d6 30 da ┆ % % TÅ)) )_ % % % 0 ┆ 0x0400e0…040100 e7 25 fe 0a da c8 25 03 1b 7c b7 c9 03 1b 37 c9 cd f7 25 c8 c3 f0 25 78 b1 c8 0b 13 1a e6 7f b7 ┆ % % ø 7 % %x ┆ 0x040100…040120 37 c8 fe 0c 37 c8 fe 0a 37 c8 fe 1a 37 c8 d0 3f c9 2d 3a 2d 3a 2d 3a 2d 3a 2d 3a 09 3a 0b 3a 0d ┆7 7 7 7 ? -:-:-:-:-: : : ┆ 0x040120…040140 3a 0f 3a 11 3a 2d 3a 13 3a 15 3a 2d 3a 2d 3a 17 3a 19 3a 1b 3a 1d 3a 1f 3a 2d 3a 2d 3a 2d 3a 2b ┆: : :-: : :-:-: : : : : :-:-:-:+┆ 0x040140…040160 3a 2d 3a 23 3a 2d 3a 25 3a 27 3a 29 3a 2d 3a 2d 3a 2d 3a 2d 3a 2d 3a 2d 3a 6b 3a 2d 3a 6f 3a 71 ┆:-:#:-:%:':):-:-:-:-:-:-:k:-:o:q┆ 0x040160…040180 3a 73 3a 75 3a 77 3a 79 3a 7b 3a 2d 3a 7f 3a 81 3a 2d 3a 2d 3a 2d 3a 85 3a 87 3a 89 3a 2d 3a 2d ┆:s:u:w:y:æ:-: : :-:-:-: : : :-:-┆ 0x040180…0401a0 3a 21 74 08 c3 a3 26 cd 39 27 d5 cd b6 22 cd b7 1a 78 08 cd 45 27 e1 cd d0 1a cd 40 1e c3 28 2d ┆:!t & 9' " x E' @ (-┆ 0x0401a0…0401c0 21 76 08 e5 cd 39 27 e1 d5 e5 fe af f5 cd 19 33 cd 97 2f 3a a0 38 32 9e 38 cd 40 21 cd f1 24 f1 ┆!v 9' 3 /: 82 8 @! $ ┆ 0x0401c0…0401e0 e1 f5 cd d0 1a f1 b7 c4 45 27 e1 cd d0 1a cd b7 1a 7c 08 3e 17 cd 34 1e cd b7 1a 70 08 cd 0d 33 ┆ E' ø > 4 p 3┆ 0x0401e0…040200 cd 54 1d cd ca 24 af 32 9f 38 3a a0 38 32 9e 38 cd b1 1b 21 85 06 be c2 f0 26 af 32 9b 38 cd 18 ┆ T $ 2 8: 82 8 ! & 2 8 ┆ 0x040200…040220 (17, 0, 4) c3 e1 2c 21 00 00 39 31 03 36 3e ff cd 30 2d ff 21 00 00 39 31 03 36 af cd 30 2d c3 00 00 3a 00 ┆ ,! 91 6> 0- ! 91 6 0- : ┆ 0x040220…040240 38 b7 21 03 15 c4 70 33 cd a1 22 2a 03 36 f9 c9 32 05 36 21 00 00 39 22 03 36 cd 81 2d cd c8 2e ┆8 ! p3 "* 6 2 6! 9" 6 - .┆ 0x040240…040260 3a 5d 00 fe 20 ca 4d 2d cd 5c 33 08 00 cd 39 25 cd 39 25 c3 a5 2f f5 cd 82 2f 3a 8f 36 fe 9c c2 ┆:Å M- Ø3 9% 9% / /: 6 ┆ 0x040260…040280 10 2d 3a 99 37 fe 9c c2 10 2d f1 2a 03 36 f9 f5 cd 7b 2d f1 b7 c4 81 26 c3 a5 2f cd 06 2e c3 c8 ┆ -: 7 - * 6 æ- & / . ┆ 0x040280…0402a0 2e 3a 5d 03 c6 14 21 07 00 be da 9b 2d 21 5a 08 cd dc 1a eb cd f7 17 09 c3 1b 2d 21 34 02 7e b7 ┆.:Å ! -!Z -!4 ü ┆ 0x0402a0…0402c0 c4 ff 37 01 09 01 21 90 36 cd 08 17 01 65 01 21 ff 37 cd 08 17 3a b0 02 32 20 37 cd 24 2e cd 54 ┆ 7 ! 6 e ! 7 : 2 7 $. T┆ 0x0402c0…0402e0 22 cd 9a 2e 21 02 00 cd 4f 21 21 53 01 cd e5 1a 21 17 01 cd e5 1a cd 90 1e 21 8f 01 cd fe 2d 23 ┆" .! O!!S ! ! -#┆ 0x0402e0…040300 cd fe 2d 23 cd fe 2d 23 cd fe 2d 3a 60 03 32 18 37 3a 63 03 32 2b 02 cd 76 19 32 1f 37 c9 cd b7 ┆ -# -# -:` 2 7:c 2+ v 2 7 ┆ 0x040300…040320 1a 58 08 c3 e5 1a 01 65 01 21 ff 37 cd 08 17 3a b0 02 32 20 37 cd 24 2e cd 8f 22 cd 95 2e 3a 1f ┆ X e ! 7 : 2 7 $. " .: ┆ 0x040320…040340 37 c3 7c 18 2a 06 00 11 fa ff 19 cd 4c 2e 22 79 39 3a 49 02 cd 46 17 2b 2b 22 77 39 22 7d 39 cd ┆7 ø * L."y9:I F ++"w9"å9 ┆ 0x040340…040360 a5 2e 22 7b 39 22 64 39 22 66 39 c9 e5 2a b1 02 3a 20 37 b7 c2 6d 2e 2a 48 02 4c 26 00 eb 62 6a ┆ ."æ9"d9"f9 * : 7 m.*H L& bj┆ 0x040360…040380 19 0d c2 60 2e eb e1 cd 2c 17 2b e5 23 22 68 39 22 72 39 e5 2a 48 02 2d cd 44 23 22 6e 39 eb 22 ┆ `. , + #"h9"r9 *H - D#"n9 "┆ 0x040380…0403a0 70 39 eb e3 e5 cd 2b 17 22 6c 39 d1 e1 cd 2c 17 22 6a 39 e1 c9 3a 20 37 b7 c0 2a 48 02 cd 90 1e ┆p9 + "l9 , "j9 : 7 *H ┆ 0x0403a0…0403c0 2d c2 9d 2e c9 e5 7c d6 10 21 5d 03 96 fe 08 d2 b4 2e 3e 08 6f 26 00 29 29 29 29 3e 04 bc d2 c3 ┆- . ø !Å .> o& ))))> ┆ 0x0403c0…0403e0 2e 67 6f eb e1 c3 2c 17 cd 2c 33 cd f8 2e cd 1a 2f 3e 01 32 6b 38 3a 48 02 d6 01 32 6d 38 3d 32 ┆.go , ,3 . /> 2k8:H 2m8=2┆ 0x0403e0…040400 70 38 3d 32 6f 38 cd 42 2f 3a 80 39 c6 16 2a 91 39 bc 3e 19 d4 87 26 c9 01 0c 00 11 40 39 21 f2 ┆p8=2o8 B/: 9 * 9 > & @9! ┆ 0x040400…040420 (17, 0, 5) c2 fb 16 05 c2 fb 16 c9 78 b1 c8 0b 36 00 23 c3 08 17 06 00 24 25 f0 05 25 24 f0 f5 af 95 6f 3e ┆ x 6 # $% %$ o>┆ 0x040420…040440 00 9c 67 f1 c9 eb cd 1b 17 eb c9 eb d5 eb cd 1b 17 eb 19 d1 c9 e5 cd 2c 17 44 4d e1 78 b1 c9 85 ┆ g , DM x ┆ 0x040440…040460 6f 7c ce 00 67 c9 e5 67 7d 94 e1 6f 7c de 00 67 c9 5e 23 56 23 7e 23 66 6f c9 0e 03 1a ae e6 7f ┆oø g gå oø g ^#V#ü#fo ┆ 0x040460…040480 c0 13 23 0d c2 5c 17 c9 c5 47 7a 94 c2 71 17 7b 95 78 c1 c9 be f0 7e c9 f5 7e 2f 77 f1 c9 7e cd ┆ # Ø Gz q æ x ü ü/w ü ┆ 0x040480…0404a0 96 17 c0 23 c3 7e 17 fe 0c c8 fe 8c c8 c3 9d 17 fe 0c c8 fe 8c c8 cd a6 17 c8 fe 8d c8 fe 0d c8 ┆ # ü ┆ 0x0404a0…0404c0 fe 0a c8 fe 8a c9 fe a0 c8 fe 89 c8 fe 20 c8 fe 09 c9 e6 7f fe 3a c8 fe 2e c8 fe 2c c8 fe 3b c8 ┆ : . , ; ┆ 0x0404c0…0404e0 fe 3f c8 fe 21 c9 fe 30 3f d0 fe 3a c9 b7 c8 fe 20 d0 f6 40 c9 cd cd 17 cd e2 17 fe 5b d0 fe 41 ┆ ? ! 0? : @ Æ A┆ 0x0404e0…040500 3f c9 fe 61 d8 fe 7b d0 e6 df c9 cd 55 27 d5 11 80 00 cd f7 17 1a d1 e3 c5 4e 23 d5 e5 cd 05 00 ┆? a æ U' N# ┆ 0x040500…040520 e1 d1 c1 e3 c9 77 b7 c8 c6 40 77 23 36 3a 23 36 00 c9 1a cd 05 18 c5 d5 0e 08 cd 33 18 13 1a e6 ┆ w @w#6:#6 3 ┆ 0x040520…040540 7f fe 20 ca 2e 18 36 2e 23 0e 03 cd 34 18 36 00 d1 c1 c9 13 1a e6 7f fe 20 ca 3e 18 77 23 0d c2 ┆ . 6.# 4 6 > w# ┆ 0x040540…040560 33 18 c9 f5 c5 d5 e5 cd 4d 18 c3 ab 32 d5 c5 11 ff ff 01 f6 ff 09 13 da 55 18 eb c1 7b c6 3a d1 ┆3 M 2 U æ : ┆ 0x040560…040580 d5 f5 05 f2 67 18 04 7c b5 b0 e5 c4 4d 18 e1 f1 c9 d5 cd 76 19 5f cd eb 17 0d 7b d1 d5 e5 32 1f ┆ g ø M v _ æ 2 ┆ 0x040580…0405a0 37 5f cd 76 19 3d 1d 21 04 00 be c2 8f 18 73 cd eb 17 0e e1 d1 c3 c7 29 c5 cd 76 19 47 0e 01 b9 ┆7_ v = ! s ) v G ┆ 0x0405a0…0405c0 ca af 18 1a b9 c2 aa 18 48 47 78 12 cd c4 18 79 c1 c0 12 cd ba 18 c0 af 12 c9 cd c4 18 c0 eb 22 ┆ HGx y "┆ 0x0405c0…0405e0 65 38 eb c9 cd eb 17 0f 3c e5 21 23 00 19 36 00 2b 36 00 e1 c9 11 f4 38 1b 1b 1a 13 13 b7 c8 cd ┆e8 < !# 6 +6 8 ┆ 0x0405e0…040600 eb 17 10 3c c0 3e 1c cd 87 26 e5 2a bc 38 22 be 38 e1 11 f4 38 cd d8 18 cd eb 17 13 cd c7 29 1b ┆ < > & * 8" 8 8 ) ┆ 0x040600…040620 (17, 0, 6) b1 1b cd 2c 27 cd 08 25 c3 6a 1f e5 2a 65 38 c3 18 1f e5 2a 65 38 36 00 eb 2a 77 39 e5 cd 12 18 ┆ ,' % j *e8 *e86 *w9 ┆ 0x040620…040640 d1 e1 1a b7 ca 6a 1f cd a5 1e 13 c3 22 1f fe 05 ca 34 1f d0 fe 01 d8 23 f5 cd 9c 1b 5e 23 cd 9c ┆ j " 4 # ^# ┆ 0x040640…040660 1b f1 56 fe 01 c8 fe 02 ca 60 1f fe 03 ca 65 1f fe 04 ca 22 1f 1a b7 11 46 08 c8 11 48 08 af c9 ┆ V ` e " F H ┆ 0x040660…040680 eb 19 2b eb c9 eb cd d6 1a 2b d1 d1 c9 f5 c5 4f 3a 21 37 a1 47 79 e6 7f fe 1e ca 82 1f fe 1f c2 ┆ + + O:!7 Gy ┆ 0x040680…0406a0 89 1f 3a b7 03 a8 c3 6f 1f fe 7f c2 90 1f 3e 7e cd 6a 1d dc 51 1e fe 09 c2 ab 1f 3e 20 cd c9 1f ┆ : o >ü j Q > ┆ 0x0406a0…0406c0 3a 1e 37 e6 07 c2 9b 1f c3 c6 1f fe 20 d2 c3 1f fe 0a ca c3 1f fe 0d ca c3 1f f5 3e 5e cd c9 1f ┆: 7 >^ ┆ 0x0406c0…0406e0 f1 c6 40 cd c9 1f c1 f1 c9 fe 20 da cf 1f b0 f5 3a 20 37 b7 c2 f0 1f f1 f5 fe 20 cc 68 0b d4 b4 ┆ @ : 7 h ┆ 0x0406e0…040700 20 e5 21 b3 02 34 35 c2 ec 1f e6 7f e1 cd 84 20 f1 e5 f5 cd c8 20 21 1e 37 e6 7f fe 0a ca 21 20 ┆ ! 45 ! 7 ! ┆ 0x040700…040720 fe 0d ca 19 20 34 cd c3 02 2a 72 39 f1 f5 77 cd c9 02 23 cd ef 20 f1 e1 c9 36 00 2a 74 39 c3 13 ┆ 4 *r9 w # 6 *t9 ┆ 0x040720…040740 20 2b 34 3a 48 02 3d be da 42 20 3a 49 02 f5 2a 74 39 cd 3f 17 22 74 39 f1 2a 72 39 cd 3f 17 c3 ┆ +4:H = B :I *t9 ? "t9 *r9 ? ┆ 0x040740…040760 13 20 35 2a 68 39 f1 fe e5 c5 d5 cd c8 20 eb 2a 49 02 26 00 e5 19 eb e5 2a 6e 39 cd 35 17 e1 eb ┆ 5*h9 *I & *n9 5 ┆ 0x040760…040780 cd 38 1d cd c3 02 cd c2 16 cd c9 02 cd 38 1d e1 cd c3 02 3e 20 12 13 2d c2 75 20 cd c9 02 d1 c1 ┆ 8 8 > - u ┆ 0x040780…0407a0 e1 c3 f2 20 f5 c5 4f 3a c0 02 b7 ca 9f 20 d5 e5 79 f5 cd 2d 23 f1 2a 1d 37 cd c0 02 c3 ab 32 3e ┆ O: y -# * 7 2>┆ 0x0407a0…0407c0 09 cd 29 1d c1 f1 c9 f5 c5 4f c3 9f 20 f5 af cd b4 20 f1 c9 e5 21 17 37 ae f2 c5 20 ae 77 e1 fa ┆ ) O ! 7 w ┆ 0x0407c0…0407e0 49 22 c3 3d 22 ae e1 c9 f5 3a 1a 37 b7 ca ea 20 e5 c5 cd c3 02 2a 72 39 7e e6 7f 47 3a 76 39 b0 ┆I" =" : 7 *r9ü G:v9 ┆ 0x0407e0…040800 77 cd c9 02 af 32 68 38 c1 e1 f1 c9 cd c8 20 22 72 39 f5 3a 1a 37 b7 c2 0f 21 3a b0 02 b7 ca ea ┆w 2h8 "r9 : 7 !: ┆ 0x040800…040820 (17, 0, 7) 25 c3 a5 2f 21 67 38 7e b7 c8 36 00 2a 9c 37 7e cd 54 1d 21 7f 38 b6 36 00 c8 3a ca 38 b7 c4 8f ┆% /!g8ü 6 * 7ü T ! 8 6 : 8 ┆ 0x040820…040840 49 21 7e 08 e5 21 72 08 e5 c3 ab 26 f5 cd 7b 1c 3a 67 38 b7 c2 1a 27 f1 c9 6f 26 00 29 11 11 26 ┆I!ü !r & æ :g8 ' o& ) &┆ 0x040840…040860 19 5e 23 56 c9 6f 26 00 11 a5 1e 44 cd 43 18 cd b7 1a 7a 08 c9 f5 e5 3a ca 38 2f 21 03 38 b6 c2 ┆ ^#V o& D C z : 8/! 8 ┆ 0x040860…040880 82 27 35 3a 68 38 f5 cd 68 0b 2a 1d 37 e5 21 00 09 cd 4f 21 cd b7 1a 5e 08 e1 cd 4f 21 f1 b7 cc ┆ '5:h8 h * 7 ! O! ^ O! ┆ 0x040880…0408a0 c8 20 e1 f1 c3 68 0b f5 c5 d5 e5 2a a4 38 7c b5 21 03 38 b6 c2 9d 27 cd 49 0b c2 ab 32 af 32 03 ┆ h * 8ø ! 8 ' I 2 2 ┆ 0x0408a0…0408c0 38 2a 77 39 22 a8 38 e5 cd f6 27 3a 01 38 b7 ca b7 27 cd bb 28 60 08 3a ca 38 b7 c2 e5 27 3a 00 ┆8*w9" 8 ': 8 ' (` : 8 ': ┆ 0x0408c0…0408e0 38 b7 ca df 27 cd 50 28 3a ff 37 b7 ca d4 27 cd bb 28 62 08 cd bb 28 64 08 21 d4 36 cd cc 28 cd ┆8 ' P(: 7 ' (b (d ! 6 ( ┆ 0x0408e0…040900 bb 28 66 08 af c4 23 5d 3a 49 02 4f cd 38 28 d1 21 00 00 c3 d8 1d 3a 7f 38 b7 2a 75 38 c4 58 28 ┆ (f #Å:I O 8( ! : 8 *u8 X(┆ 0x040900…040920 2a 72 38 cd 58 28 3a 74 38 cd 5d 28 3e 07 c3 38 28 3a 82 38 32 72 38 f5 c5 d5 e5 2a 77 39 22 a8 ┆*r8 X(:t8 Å(> 8(: 82r8 *w9" ┆ 0x040920…040940 38 e5 cd f6 27 d1 4f c3 f0 27 c5 47 3a 49 02 fe 50 78 da 37 28 c6 10 c1 d5 e5 cd 50 28 f5 2a 77 ┆8 ' O ' G:I Px 7( P( *w┆ 0x040940…040960 39 eb 2a a8 38 cd 2c 17 f1 bd d2 3a 28 e1 d1 c9 f5 3e 20 cd 5d 28 f1 c9 7d cd 5d 28 7c b7 c8 fe ┆9 * 8 , :( > Å( å Å(ø ┆ 0x040960…040980 20 d2 6d 28 f5 3e 5e cd 5d 28 f1 c6 40 d5 e5 21 21 37 fe 5c c2 7c 28 3e 20 c3 81 28 fe 20 ca 82 ┆ m( >^ Å( @ !!7 Ø ø(> ( ┆ 0x040980…0409a0 28 ae 23 a6 2a 79 39 2b 2b eb 2a a8 38 77 cd 68 17 da 98 28 23 22 a8 38 e1 d1 c9 f5 e5 3a 01 38 ┆( # *y9++ * 8w h (#" 8 : 8┆ 0x0409a0…0409c0 b7 c2 b6 28 3a 29 02 e6 fe ca b3 28 3a 23 37 21 77 38 a6 cc 50 28 e1 f1 cd 2a 28 e3 d5 5e 23 56 ┆ (:) (:#7!w8 P( *( ^#V┆ 0x0409c0…0409e0 23 eb cd c9 28 eb d1 e3 c9 cd d6 1a 7e 23 b7 c8 cd 5d 28 c3 cc 28 c5 e5 3a 26 02 21 2b 02 b6 21 ┆# ( ü# Å( ( :& !+ !┆ 0x0409e0…040a00 ca 38 a6 c2 ec 28 32 a2 38 c3 28 29 21 a2 38 4e 36 00 cd f5 32 71 21 a1 38 46 77 4f 90 c4 2b 29 ┆ 8 (2 8 ()! 8N6 2q! 8FwO +)┆ 0x040a00…040a20 (17, 0, 8) 03 cd c2 16 21 18 37 7e b7 ca 1a 2f cd f9 1a c2 1a 2f 36 00 21 5c 08 22 07 38 2a 5c 03 22 7f 39 ┆ ! 7ü / /6 !Ø " 8*Ø " 9┆ 0x040a20…040a40 22 81 39 22 83 39 2a 83 39 22 85 39 22 87 39 22 89 39 22 8b 39 22 8d 39 22 8f 39 2a 66 39 22 91 ┆" 9" 9* 9" 9" 9" 9" 9" 9" 9*f9" ┆ 0x040a40…040a60 39 c9 3a 48 02 fe 10 da 6b 2f fe 79 d2 6b 2f fe 36 d4 64 2f 3a 49 02 fe 40 da 6b 2f fe fb d4 6b ┆9 :H k/ y k/ 6 d/:I @ k/ k┆ 0x040a60…040a80 2f fe 7e d8 21 33 3a 22 07 38 c9 3e 17 cd 87 26 21 13 00 11 99 01 19 eb 2a 06 00 01 fa ff 09 c3 ┆/ ü !3:" 8 > &! * ┆ 0x040a80…040aa0 2c 17 cd 70 2f 01 13 00 11 20 02 cd c2 16 01 99 01 11 01 36 c3 c2 16 21 00 08 22 b4 38 22 b6 38 ┆, p/ 6 ! " 8" 8┆ 0x040aa0…040ac0 af 32 b3 38 c9 2a 03 36 f9 af 32 7f 38 2f 32 84 38 cd 97 2f 21 00 00 22 a4 38 22 9d 38 22 9f 38 ┆ 2 8 * 6 2 8/2 8 /! " 8" 8" 8┆ 0x040ac0…040ae0 3a 99 38 cd db 32 21 b1 2f e5 cd 04 27 3e ff 32 95 38 21 01 38 7e 2f 2b a6 2b a6 21 0d 0f c4 70 ┆: 8 2! / '> 2 8! 8ü/+ + ! p┆ 0x040ae0…040b00 33 3a ca 38 b7 c2 74 4f 2a 77 06 11 06 00 cd 33 30 d8 af 32 3f 39 cd 54 33 f5 e5 cd 17 28 3a 00 ┆3: 8 tO*w 30 2?9 T3 (: ┆ 0x040b00…040b20 38 b7 c2 0b 30 2a 81 39 22 83 39 cd 0d 33 af 32 95 38 e1 d5 7c 3d 11 3b 35 ca 23 30 3d 11 4d 5f ┆8 0* 9" 9 3 2 8 ø= ;5 #0= M_┆ 0x040b20…040b40 c2 30 30 eb 16 00 19 5e 23 56 eb d1 f1 cd 70 33 d1 f1 e9 af 32 72 38 32 73 38 32 74 38 32 9b 38 ┆ 00 ^#V p3 2r82s82t82 8┆ 0x040b40…040b60 cd 18 25 3e ff 32 95 38 cd a1 31 cd cf 30 ca 33 30 32 72 38 d5 e5 47 0e 00 3a ca 38 b7 c2 6c 30 ┆ %> 2 8 1 0 302r8 G : 8 l0┆ 0x040b60…040b80 78 fe 0d ca b8 30 cd e2 17 e6 3f 47 11 04 00 7e b7 ca b8 30 b8 ca 7c 30 19 c3 6f 30 23 7e b7 ca ┆x 0 ?G ü 0 ø0 o0#ü ┆ 0x040b80…040ba0 bc 30 3a ca 38 a6 3c 23 5e 23 56 2b 2b cc 0e 50 af 32 95 38 cd cf 30 ca 7d 30 32 73 38 cd e2 17 ┆ 0: 8 <#^#V++ P 2 8 0 å02s8 ┆ 0x040ba0…040bc0 4f 7e a9 e6 bf ca bc 30 23 23 23 7e b7 ca b8 30 b8 23 ca a1 30 c3 a8 30 37 e1 d1 c9 23 5e 23 56 ┆Oü 0###ü 0 # 0 07 #^#V┆ 0x040bc0…040be0 eb d1 d1 7c b7 c0 11 93 39 19 eb 21 9e 24 c9 cd 1f 31 c3 bb 1b e5 2a 1d 37 cd 49 0b cc a0 32 cd ┆ ø 9 ! $ 1 * 7 I 2 ┆ 0x040be0…040c00 36 31 cd 49 0b d5 cc ed 30 d1 c3 31 31 11 9e 38 1a b7 ca 00 31 3d cd 43 21 cd b7 1a 80 08 af 12 ┆61 I 0 11 8 1= C! ┆ 0x040c00…040c20 (17, 0, 9) cd bc 19 13 c3 bc 19 3a cb 38 b7 c0 d5 11 1b 39 cd ba 18 d1 c8 e5 cd e1 32 2a 1d 37 e5 21 01 00 ┆ : 8 9 2* 7 ! ┆ 0x040c20…040c40 cd 4f 21 cd b7 1a bd 39 e1 cd 4f 21 e1 3a ca 38 b7 c8 e5 21 cb 38 7e 36 ff e1 b7 c0 d5 11 1b 39 ┆ O! 9 O! : 8 ! 8ü6 9┆ 0x040c40…040c60 cd f8 18 d1 c9 cd f8 18 cd c9 18 cd eb 17 16 3c c0 3e 1b cd 87 26 cd eb 17 11 c3 61 19 cd eb 17 ┆ < > & a ┆ 0x040c60…040c80 12 fe ff c8 e6 03 87 87 87 87 87 21 80 00 cd 3f 17 f6 ff c9 b7 c0 cd f7 17 19 3c c9 c5 d5 e5 d5 ┆ ! ? < ┆ 0x040c80…040ca0 21 10 00 19 01 10 00 eb cd c2 16 36 00 d1 21 19 00 19 eb e1 e5 cd bf 16 e1 d1 c1 cd c7 29 cd eb ┆! 6 ! ) ┆ 0x040ca0…040cc0 17 17 c9 cd ae 19 d4 35 1a c9 cd 3c 1a d8 af cd 68 1a da bc 19 cd f7 17 14 b7 3d c0 1b af 12 13 ┆ 5 < h = ┆ 0x040cc0…040ce0 37 c9 e5 62 6b 2b 2b 7e b7 cc 45 19 36 ff e1 cd f9 19 c0 f5 e5 21 f4 38 cd 68 17 e1 ca ee 19 3a ┆7 bk++ü E 6 ! 8 h :┆ 0x040ce0…040d00 f3 38 b7 d5 cc ea 18 d1 f1 cd f9 19 c0 f5 e5 21 1b 39 1a be e1 cc 07 19 f1 cd 66 1a cd f7 17 15 ┆ 8 ! 9 f ┆ 0x040d00…040d20 fe 01 c8 fe ff c8 fe 02 c9 c5 e5 d5 01 80 00 11 ce 3b d5 cd c2 16 e1 d1 cd 1e 1a e1 c1 c9 cd 2c ┆ ; ,┆ 0x040d20…040d40 1a c0 fe 02 c2 51 19 3e 0c cd 81 26 cd c2 19 f5 c4 35 1a f1 c9 c5 01 01 00 c3 40 1a c5 01 ff ff ┆ Q > & 5 @ ┆ 0x040d40…040d60 d5 e5 1b 3e ff 12 21 23 00 19 e5 cd 55 17 09 7c a5 3c ca 5f 1a eb e1 73 23 72 b7 e1 d1 c1 c9 af ┆ > !# U ø < _ s#r ┆ 0x040d60…040d80 12 37 e1 c3 5b 1a 3e ff c5 47 e5 21 22 00 19 cd 55 17 7d e6 7f 4f 29 7c 21 0c 00 19 be ca a1 1a ┆ 7 Æ > G !" U å O)ø! ┆ 0x040d80…040da0 e5 f5 21 21 00 19 7e b7 c4 df 18 36 00 f1 e1 77 cd eb 17 0f 3c c2 a1 1a 78 b7 37 ca aa 1a cd 4b ┆ !! ü 6 w < x 7 K┆ 0x040da0…040dc0 19 21 20 00 19 71 23 7e b0 77 e1 f5 eb cd f7 17 1a eb f1 c1 c3 55 27 e3 cd bd 1a e3 c9 d5 5e 23 ┆ ! q#ü w U' ^#┆ 0x040dc0…040de0 56 23 e5 eb f5 cd d0 1a f1 e1 d1 c9 cd 49 0b c0 cd d6 1a c3 ea 1a d5 cd 44 1b d1 d0 d5 5e 23 56 ┆V# I D ^#V┆ 0x040de0…040e00 2b 19 d1 b7 c9 d5 cd 44 1b d1 7e b7 ca 49 0b cd 98 1e 23 cd 9c 1b c3 ea 1a 3a 3f 39 b7 c0 32 4c ┆+ D ü I # :?9 2L┆ 0x040e00…040e20 (17, 0, 10) 20 c5 d5 e5 2a 1d 37 cd 27 23 e1 d1 c1 f1 c9 e5 21 68 38 7e b7 c2 2d 21 35 cd c3 02 2a 72 39 7e ┆ * 7 '# !h8ü -!5 *r9ü┆ 0x040e20…040e40 ee 80 77 ee 80 e6 80 32 76 39 cd c9 02 e1 f1 c9 e3 e5 2a 1d 37 e3 cd e5 1a e3 cd bc 22 e1 e3 c9 ┆ w 2v9 * 7 " ┆ 0x040e40…040e60 3a 99 38 e5 6f 26 00 cd 4c 21 e1 c9 cd 65 21 f5 d5 eb 2a 1d 37 eb cd 68 17 c4 bc 22 cd 7b 1c d1 ┆: 8 o& L! e! * 7 h " æ ┆ 0x040e60…040e80 f1 c9 2a 69 38 f5 3a 6b 38 85 6f f1 c9 2a 1d 37 f5 7d cd 78 21 6f f1 c9 e5 21 6b 38 96 e1 c9 3a ┆ *i8 :k8 o * 7 å x!o !k8 :┆ 0x040e80…040ea0 af 02 f5 cd b2 21 f1 f5 3a d8 02 b7 c2 a1 21 f1 3c 3d c8 f5 cd 38 1d af 00 3d c2 99 21 f1 c3 91 ┆ ! : ! <= 8 = ! ┆ 0x040ea0…040ec0 21 d5 16 00 5f cd f7 17 90 cd 4b 1d c2 a9 21 d1 f1 c9 3a 20 37 b7 c0 7e 3c 3d c8 23 f5 7e cd 84 ┆! _ K ! : 7 ü<= # ü ┆ 0x040ec0…040ee0 20 f1 c3 b9 21 f5 c5 d5 e5 eb 21 ab 32 e5 3a 48 02 3d 93 21 aa 02 b6 3a 49 02 c2 de 21 3d 92 c8 ┆ ! ! 2 :H = ! :I != ┆ 0x040ee0…040f00 d8 4f d5 eb cd 44 23 d1 3a 20 37 b7 c2 2a 22 7e fe 20 c2 fc 21 23 14 0d c2 ef 21 c9 e5 79 cd 3f ┆ O D# : 7 *"ü !# ! y ?┆ 0x040f00…040f20 17 0c 0d 2b 7e fe 20 ca 02 22 e1 cd ad 20 eb cd 4f 21 21 6d 02 7e b7 f5 c4 7f 21 f1 c2 29 22 41 ┆ +ü " O!!m ü ! )"A┆ 0x040f20…040f40 3e 20 cd 84 20 05 c2 20 22 eb cd c8 20 cd c3 02 36 20 23 0d c2 30 22 cd c9 02 c3 f2 20 f5 e5 21 ┆> " 6 # 0" !┆ 0x040f40…040f60 8b 02 7e b7 c2 4e 22 e1 f1 f5 e5 21 84 02 cd 7f 21 e1 f1 c9 f5 e5 3a 20 37 b7 f5 3a b3 02 c2 68 ┆ ü N" ! ! : 7 : h┆ 0x040f60…040f80 22 b7 c2 6c 22 3a 84 02 b7 ca 6e 22 3e 80 32 21 37 ee 7f 32 22 37 f1 ca 80 22 3a b4 02 32 1a 37 ┆" l": n"> 2!7 2"7 ": 2 7┆ 0x040f80…040fa0 c5 d5 cd a4 02 d1 c1 21 92 02 cd 7f 21 e1 f1 f5 e5 cd b6 22 e1 f1 f5 e5 cd c8 20 2a 1d 37 c3 d9 ┆ ! ! " * 7 ┆ 0x040fa0…040fc0 22 f5 e5 cd 8f 22 21 9b 02 cd 7f 21 c5 d5 cd a7 02 d1 c1 e1 f1 c9 2a 48 02 2d 26 00 f5 e5 d5 e5 ┆" "! ! *H -& ┆ 0x040fc0…040fe0 22 1d 37 cd 44 23 cd ec 20 eb 22 74 39 e1 d1 3a 1a 37 b7 c2 51 22 cd ad 20 c5 d5 cd e9 22 d1 c1 ┆" 7 D# "t9 : 7 Q" " ┆ 0x040fe0…041000 e1 3a ae 02 cd 87 21 f1 c9 3a 64 02 b7 c2 27 23 eb 2a 5e 02 19 5c 3a 5d 02 b7 c2 fe 22 eb e5 21 ┆ : ! :d '# *^ Ø:Å " !┆ 0x041000…041020 (17, 0, 11) 3a a3 38 b7 c2 28 29 3a 26 02 b7 3e 01 c4 36 29 81 32 a2 38 c6 03 21 6d 38 be da 28 29 af 32 a2 ┆: 8 ():& > 6) 2 8 !m8 () 2 ┆ 0x041020…041040 38 32 a1 38 2f 32 a3 38 e1 c1 c9 f5 af 32 a3 38 f1 c9 35 f0 34 c9 c5 3a 49 02 3d 47 cd 4a 29 3d ┆82 8/2 8 2 8 5 4 :I =G J)=┆ 0x041040…041060 0e 00 0c 90 d2 42 29 79 c1 c9 cd 21 33 3a 28 37 c8 e5 21 08 36 be d2 5a 29 7e e1 c9 cd 49 0b c0 ┆ B)y !3:(7 ! 6 Z)ü I ┆ 0x041060…041080 3a ca 38 b7 c8 c5 d5 e5 cd 8f 5e 3a a2 38 cd db 32 c3 5b 1a cd c7 29 3a 2b 02 0f 0f 17 17 2f c3 ┆: 8 ^: 8 2 Æ ):+ / ┆ 0x041080…0410a0 84 29 3e fe c5 e5 21 2b 02 46 77 a0 3e 00 32 94 38 e1 c1 c0 af 32 89 38 c3 be 29 cd d0 29 32 87 ┆ )> !+ Fw > 2 8 2 8 ) )2 ┆ 0x0410a0…0410c0 38 0c 3a 6d 38 c2 aa 29 d6 05 32 88 38 c9 3a 8a 38 3c c3 bb 29 3a 8a 38 b7 c8 3d 32 8a 38 e5 21 ┆8 :m8 ) 2 8 : 8< ): 8 =2 8 !┆ 0x0410c0…0410e0 00 00 22 8b 38 e1 c9 f5 af 32 91 38 f1 c3 be 29 e5 cd 38 1d 3a ca 38 4f 2f e6 08 47 3a 2b 02 fe ┆ " 8 2 8 ) 8 : 8O/ G:+ ┆ 0x0410e0…041100 fe 3a 99 38 c2 ea 29 6f 23 7d 21 9c 38 c4 74 17 e1 b8 f0 78 c9 3a 2b 02 b7 ca 94 29 cd 49 0b c0 ┆ : 8 )o#å! 8 t x :+ ) I ┆ 0x041100…041120 c5 d5 e5 cd 10 2a 3a 89 38 3d cd db 32 c3 5b 1a cd d0 29 21 9c 38 cd 74 17 47 3a 6d 38 90 1f 1f ┆ *: 8= 2 Æ )! 8 t G:m8 ┆ 0x041120…041140 0c 0d ca 26 2a 1f e6 0f 80 21 87 38 be fc be 29 3a 8b 38 b7 cc 9b 29 3a 87 38 57 3a 88 38 92 fe ┆ &* ! 8 ): 8 ): 8W: 8 ┆ 0x041140…041160 02 fa 94 29 5f 3a 8b 38 21 8a 38 96 3c bb f2 bf 2a 3a 8c 38 b7 c2 bf 2a cd 17 2b 0e ff 14 1e 00 ┆ )_: 8! 8 < *: 8 * + ┆ 0x041160…041180 0c 0c c8 0d cd 4b 2b 3a 93 38 2f 3c 83 5f 79 21 8a 38 be d2 7c 2a 04 05 ca 60 2a 71 79 21 8b 38 ┆ K+: 8/< _y! 8 ø* `*qy! 8┆ 0x041180…0411a0 be da ae 2a 3c 32 8b 38 cd aa 2c 7a 3c 32 89 38 cd 49 0b 21 91 38 a6 c0 3a ca 38 a6 ca ae 2a 3a ┆ *<2 8 ,z<2 8 I ! 8 : 8 *:┆ 0x0411a0…0411c0 8a 38 bb d2 ae 2a 14 7a 32 88 38 c3 bc 2a 14 04 05 7a c2 bc 2a 21 88 38 be da 60 2a 32 89 38 2a ┆ 8 * z2 8 * z *! 8 `*2 8*┆ 0x0411c0…0411e0 77 39 22 a8 38 3a 8a 38 4f 3a 8c 38 47 2f b1 21 68 08 c4 c9 28 cd bb 28 6a 08 cd 76 19 2a a8 38 ┆w9" 8: 8O: 8G/ !h ( (j v * 8┆ 0x0411e0…041200 cd 05 18 22 a8 38 cd 38 1d 78 2f cd 0f 2b 21 6c 08 c4 c9 28 79 cd 0f 2b ca 02 2b 3e 14 cd 9b 28 ┆ " 8 8 x/ +!l (y + +> (┆ 0x041200…041220 (17, 0, 12) 13 1a b7 c8 cd 4f 21 cd 33 25 c2 1c 31 1a 13 12 1b 3d cd 43 21 cd b7 1a b5 39 af 12 c3 87 27 3e ┆ O! 3% 1 = C! 9 '>┆ 0x041220…041240 ff 32 85 38 cd a0 32 cd 36 31 e5 cd ad 20 cd 62 21 cd 4f 21 e1 c9 cd f5 29 cd d6 28 3a ca 38 b7 ┆ 2 8 2 61 b! O! ) (: 8 ┆ 0x041240…041260 ca 50 31 e5 cd f5 32 3d 21 69 38 be f4 a0 32 e1 3a ca 38 b7 c4 7a 5a cd 87 27 cd 49 0b c0 e5 3a ┆ P1 2=!i8 2 : 8 zZ ' I :┆ 0x041260…041280 9c 38 21 89 38 cd 74 17 6f 3a ca 38 b7 c2 74 31 3a 6d 38 6f 3a 99 38 bd f2 9d 31 e5 f5 21 87 38 ┆ 8! 8 t o: 8 t1:m8o: 8 1 ! 8┆ 0x041280…0412a0 be da 8b 31 21 89 38 be da 97 31 6f 26 00 cd 65 21 cd 49 0b cc c5 21 f1 e1 3c c3 77 31 e1 c3 5c ┆ 1! 8 1o& e! I ! < w1 Ø┆ 0x0412a0…0412c0 29 c5 e5 3a 96 38 21 86 38 b6 c4 a0 32 36 00 cd 4e 1c 3a ca 38 47 3a 18 37 4f 2a 07 38 7c b5 21 ┆) : 8! 8 26 N : 8G: 7O* 8ø !┆ 0x0412c0…0412e0 94 38 ca c7 31 36 00 3a 96 38 e5 21 98 38 ae e1 a0 a1 ca d7 31 36 00 cd 49 0b b6 c2 61 32 cd 17 ┆ 8 16 : 8 ! 8 16 I a2 ┆ 0x0412e0…041300 28 cd 08 25 3a 01 38 a0 a1 21 b9 39 c4 d0 1a 3a 04 38 a1 21 bb 39 c4 d0 1a 3a 96 38 a0 ca 0b 32 ┆( %: 8 ! 9 : 8 ! 9 : 8 2┆ 0x041300…041320 32 98 38 cd b7 1a b7 39 c3 23 32 78 2f b1 fe 03 da 23 32 cd 70 32 b7 f2 20 32 cd 6d 21 22 69 38 ┆2 8 9 #2x/ #2 p2 2 m!"i8┆ 0x041320…041340 cd 40 1e cd b3 24 3a 99 38 32 9c 38 3a 96 38 b7 ca 40 32 21 98 38 7e b7 36 ff 21 b7 39 cc d0 1a ┆ @ $: 82 8: 8 @2! 8ü 6 ! 9 ┆ 0x041340…041360 2a 07 38 7c b5 f5 c4 d0 1a 21 00 00 22 07 38 cd b3 24 3a 99 38 32 9a 38 f1 c2 61 32 3e ff 32 94 ┆* 8ø ! " 8 $: 82 8 a2> 2 ┆ 0x041360…041380 38 21 04 38 7e 36 00 b7 e1 c1 c8 af 32 94 38 c9 f5 d5 e5 3a 49 02 fe 50 da 7d 32 13 13 21 93 39 ┆8! 8ü6 2 8 :I P å2 ! 9┆ 0x041380…0413a0 19 cd d0 1a e1 d1 f1 c9 3a 05 36 b7 c8 cd ad 20 cd 8f 22 cd 38 00 cd e1 32 af 32 94 38 c3 a5 2f ┆ : 6 " 8 2 2 8 /┆ 0x0413a0…0413c0 f5 c5 d5 e5 3a ca 38 b7 c4 9b 50 e1 d1 c1 f1 c9 e5 21 99 38 be da b9 32 77 3a ca 38 b7 ca c9 32 ┆ : 8 P ! 8 2w: 8 2┆ 0x0413c0…0413e0 3a 6f 38 3d be f2 c9 32 77 7e 3d 21 87 38 be f4 be 29 21 a1 38 be f4 2b 29 e1 c9 cd e7 32 c3 a6 ┆:o8= 2wü=! 8 )! 8 +) 2 ┆ 0x0413e0…041400 5c cd e7 32 c3 b5 5c f5 3a ca 38 b7 ca f1 32 f1 c9 f1 33 33 c9 e5 3a 99 38 21 9c 38 cd 74 17 21 ┆Ø 2 Ø : 8 2 33 : 8! 8 t !┆ 0x041400…041420 (17, 0, 13) 39 d5 11 40 39 cd 98 18 d1 c8 e5 3e ff 32 3f 39 21 62 39 34 21 93 39 d5 11 40 39 cd a3 19 d1 21 ┆9 @9 > 2?9!b94! 9 @9 !┆ 0x041420…041440 13 3a af cd 7b 1b cd 7b 1b d5 2a 93 39 eb 2a 0e 01 cd 68 17 ca 3d 1b 21 95 39 22 07 38 d1 3a 3f ┆ : æ æ * 9 * h = ! 9" 8 :?┆ 0x041440…041460 39 b7 e1 c9 11 92 39 cd 68 17 3f d8 11 cc 3a cd 68 17 d8 cd f9 1a ca ab 1b cd 55 17 25 7d e6 7f ┆9 9 h ? : h U %å ┆ 0x041460…041480 f5 29 eb 3a 62 39 3d 21 4d 3b ba ca 98 1b 3d ba ca 95 1b 7a 32 62 39 f1 21 cd 3a f5 d5 11 40 39 ┆ ) :b9=!M; = z2b9 ! : @9┆ 0x041480…0414a0 cd a3 19 da a9 1b cd 49 0b 3e 80 cd 3f 17 cd a3 19 da a9 1b d1 21 cd 3a f1 c3 3f 17 d5 11 cd 3b ┆ I > ? ! : ? ;┆ 0x0414a0…0414c0 cd 68 17 d1 c0 af c3 78 1b d1 f1 21 3a 08 c3 dc 1a cd d5 30 cd bb 1b ca b1 1b c9 e5 cd c3 02 3a ┆ h x !: 0 :┆ 0x0414c0…0414e0 76 39 2a 72 39 2b b6 23 23 b6 2b cd 07 1c 21 b5 02 a6 f2 ff 1b cd 4e 1c ca 02 1c cd c3 02 7e cd ┆v9*r9+ ## + ! N ü ┆ 0x0414e0…041500 07 1c 2f cd b4 20 cd 27 25 cd c8 20 cd c3 02 7e cd 07 1c cd b4 20 cd 2d 25 cd f2 20 ca d5 1b cd ┆ / '% ü -% ┆ 0x041500…041520 0d 1c cd ad 20 e1 c9 f5 cd c9 02 f1 c9 e5 cd 3f 1c ca 26 1c f5 36 00 23 7e 3c c2 20 1c 21 9e 37 ┆ ? & 6 #ü< ! 7┆ 0x041520…041540 22 9c 37 c3 3a 1d e1 3a 00 38 2f b7 cc ff 1c c2 45 1c cd 6e 0b cd 49 0b cd 4e 1c c2 0d 1c c9 2a ┆" 7 : : 8/ E n I N *┆ 0x041540…041560 9c 37 7e b7 c9 cd c4 1c b7 ca 45 1c b7 c9 d5 e5 2a 05 38 eb 2a 00 38 22 05 38 cd 68 17 e1 d1 ca ┆ 7ü E * 8 * 8" 8 h ┆ 0x041560…041580 67 1c af 32 94 38 c9 3a 03 38 2f b7 c0 e5 2a 1d 37 cd 87 27 cd 4f 21 e1 f6 ff c9 e5 cd ff 1c ca ┆g 2 8 : 8/ * 7 ' O! ┆ 0x041580…0415a0 a1 1c cd ff 1c ca a1 1c cd ab 1c 7e b7 ca 82 1c 3e 21 cd 6d 1f 3e 07 cd 84 20 cd e1 32 e1 f6 ff ┆ ü >! m > 2 ┆ 0x0415a0…0415c0 c9 2a 9c 37 7e b7 e1 c8 f6 ff c9 2a 9a 37 7e b7 c0 cd c4 1c b7 c8 77 23 7e 3c c2 c0 1c 21 9e 37 ┆ * 7ü * 7ü w#ü< ! 7┆ 0x0415c0…0415e0 22 9a 37 c9 cd e5 1c fe 7f c0 f5 e5 3a 20 37 2f 21 b8 02 a6 ca e2 1c 3a b9 02 cd 84 20 2a 72 39 ┆" 7 : 7/! : *r9┆ 0x0415e0…041600 2b 77 e1 f1 c9 cd 17 1d e5 f5 2a b6 02 7c b5 ca f4 1c 36 00 f1 21 84 06 be e1 c0 32 67 38 c9 3a ┆+w * ø 6 ! 2g8 :┆ 0x041600…041620 (17, 0, 14) 4a 02 cd 12 23 21 53 02 d1 cd 12 23 21 58 02 c3 b7 21 cd b7 21 3a 60 02 47 b7 7b ca 84 20 16 00 ┆J #!S #!X ! !:` G æ ┆ 0x041620…041640 eb 11 84 20 c3 43 18 cd 2d 23 c3 64 02 e5 2a 68 39 eb 2a 74 39 cd 35 17 2a 72 39 cd 2c 17 eb e1 ┆ C -# d *h9 *t9 5 *r9 , ┆ 0x041640…041660 c9 6f 26 00 c5 55 5c 2a 68 39 06 00 3a 49 02 4f 14 c3 55 23 09 15 c2 54 23 eb 19 c1 c9 e5 2a 2b ┆ o& UØ*h9 :I O U# T# *+┆ 0x041660…041680 02 e3 cd 72 23 e3 f5 7d 21 2b 02 be c4 84 29 f1 e1 c9 c5 d5 e5 3e ff 32 95 38 2a 1d 37 22 aa 38 ┆ r# å!+ ) > 2 8* 7" 8┆ 0x041680…0416a0 e1 e5 0e 00 eb cd b1 1b fe 0d ca 6e 24 fe 0a ca 6e 24 fe 1b ca 6e 24 cd 2c 27 21 85 23 e5 fe 01 ┆ n$ n$ n$ ,'! # ┆ 0x0416a0…0416c0 ca ad 23 fe 18 ca ad 23 fe 19 c2 bc 23 2a aa 38 e5 cd c5 21 e1 cd bc 22 e1 c3 80 23 21 7e 06 be ┆ # # #* 8 ! " #!ü ┆ 0x0416c0…0416e0 ca d2 23 fe 7f ca d2 23 fe 1f ca d2 23 fe 08 c2 f2 23 cd 66 24 c8 fe 1e ca e5 23 fe 1f ca e5 23 ┆ # # # # f$ # #┆ 0x0416e0…041700 fe 20 dc e5 23 2a 1d 37 25 cd 4f 21 cd 30 21 20 00 c9 fe 12 c2 01 24 1a b7 c8 cd 35 24 d8 c3 f7 ┆ #* 7% O! 0! $ 5$ ┆ 0x041700…041720 23 21 7f 06 be c2 0e 24 1a b7 c8 c3 35 24 fe 2d c2 1d 24 21 23 02 34 35 ca 1d 24 3e 1e 21 81 06 ┆#! $ 5$ - $!# 45 $> ! ┆ 0x041720…041740 be ca 82 29 23 be ca ae 29 23 be ca b5 29 21 80 06 be cc b1 1b 6f 79 3c b8 3f d8 e5 3a 49 02 3d ┆ )# )# )! oy< ? :I =┆ 0x041740…041760 3d 3d 21 1e 37 96 7d e1 d8 eb 7e 73 23 b7 c2 53 24 36 00 eb 0c 7d fe 09 c2 62 24 3e 5e cd a5 1e ┆==! 7 å üs# S$6 å b$>^ ┆ 0x041760…041780 3e 49 b7 c3 a5 1e 79 b7 c8 0d 3c 1b 1a c9 f5 af 12 32 95 38 f1 e1 2b 71 23 d1 c1 c9 cd 08 25 3a ┆>I y < 2 8 +q# %:┆ 0x041780…0417a0 18 37 fe 02 d8 3a 48 02 fe 17 d8 cd e3 24 3c 32 9f 38 32 9e 38 32 9d 38 c6 02 32 9b 38 c9 cd 08 ┆ 7 :H $<2 82 82 8 2 8 ┆ 0x0417a0…0417c0 25 eb cd d0 1a cd 30 21 0e 00 f5 3e 01 c3 b5 24 cd 40 1e f5 af cd d2 24 f1 c9 e3 cd bd 1a e3 c3 ┆% 0! > $ @ $ ┆ 0x0417c0…0417e0 b3 24 cd 21 25 e3 cd bd 1a e3 cd 30 21 0e 0e 00 3e 02 e5 21 1d 37 86 cd 78 21 e1 f5 cd b0 32 f1 ┆ $ !% 0! > ! 7 x! 2 ┆ 0x0417e0…041800 c3 db 32 e5 3a 9a 38 21 9b 38 be f2 ef 24 7e e1 c9 e5 3a 1d 37 c6 06 21 6d 38 be e1 f8 e5 21 00 ┆ 2 : 8! 8 $ü : 7 !m8 ! ┆ 0x041800…041820 (17, 0, 15) 6e 08 3a 49 02 cd 38 28 3a 87 38 57 c3 aa 2c 21 95 38 34 35 f0 b7 c9 c5 d5 e5 af 32 8c 38 32 93 ┆n :I 8(: 8W ,! 845 2 82 ┆ 0x041820…041840 38 2a 7d 39 22 8f 38 3a 91 38 b7 c2 48 2b af 32 92 38 11 ef 37 cd 56 19 cd 9d 2c cd e8 2b 3a 92 ┆8*å9" 8: 8 H+ 2 8 7 V , +: ┆ 0x041840…041860 38 32 91 38 b7 c4 b1 2c c3 5b 1a c5 d5 e5 3a 49 02 4f 06 0d 2a 77 39 e5 36 20 23 3d c2 58 2b e1 ┆82 8 , Æ :I O *w9 6 #= X+ ┆ 0x041860…041880 23 cd 78 2b 11 0d 00 19 78 c6 0d 47 b9 da 61 2b e1 d1 c1 3a 8c 38 47 c9 c5 d5 e5 eb 2a 8f 38 2b ┆# x+ x G a+ : 8G * 8+┆ 0x041880…0418a0 46 2b 4e 0a 3c ca a4 2b 22 8f 38 cd 38 1d cd bf 2b 2b 46 2b 4e 0a 3c 57 3a 92 38 b2 cc e8 2b 0a ┆F+N < +" 8 8 ++F+N <W: 8 + ┆ 0x0418a0…0418c0 3c c2 a9 2b 3e ff 32 8c 38 c3 5b 1a 03 cd bf 2b 2b 2b 2b 44 4d 3e ff 32 93 38 3e 2e 12 13 fe e5 ┆< +> 2 8 Æ ++++DM> 2 8>. ┆ 0x0418c0…0418e0 21 78 2c 23 23 23 0a be ca ac 2b 23 7e b7 c2 c3 2b 0a e6 7f 12 0a 03 13 b7 f2 d1 2b fe fa 01 78 ┆!x,### +#ü + + x┆ 0x0418e0…041900 2c e1 1b ca bf 2b 13 c9 d5 e5 af 32 91 38 2a 7d 39 22 8f 38 eb 2a 7b 39 e5 36 ff eb 2b 72 2b 73 ┆, + 2 8*å9" 8 *æ9 6 +r+s┆ 0x041900…041920 eb e5 01 10 00 09 cd 68 17 e1 da 26 2c 3a 92 38 b7 c2 26 2c d5 cd 2a 2c e5 2b 7e f6 80 77 cd 95 ┆ h &,: 8 &, *, +ü w ┆ 0x041920…041940 2c e1 d1 c3 f9 2b c1 e1 d1 c9 e5 2a 8d 38 01 09 00 09 eb 21 74 2c d5 fe e1 d1 0e 04 09 0d 7e b7 ┆, + * 8 !t, ü ┆ 0x041940…041960 ca 6f 2c d5 e5 1a ae 13 23 e6 7f c2 38 2c 0d c2 45 2c 7e b7 e1 d1 e1 f2 65 2c f5 cd 67 2c f1 36 ┆ o, # 8, E,ü e, g, 6┆ 0x041960…041980 2e 23 77 23 c9 77 23 3e 20 12 13 12 13 12 fe e1 eb 2a 8d 38 eb c3 16 18 42 41 cb fa 49 4e d4 75 ┆.#w# w#> * 8 BA IN u┆ 0x041980…0419a0 48 45 d8 76 52 45 cc 77 43 4f cd 78 4f 56 d2 79 24 24 a4 7a 00 d5 11 ef 37 cd 5d 19 d1 22 8d 38 ┆HE vRE wCO xOV y$$ z 7 Å " 8┆ 0x0419a0…0419c0 cd 38 1d c0 3e ff 32 92 38 c9 e5 6a cd b4 1d e1 c9 2a 7d 39 c3 be 2c c1 e1 e1 23 70 2b 71 cd 38 ┆ 8 > 2 8 j *å9 , #p+q 8┆ 0x0419c0…0419e0 1d 2b 46 2b 4e 0a 3c c8 e5 c3 db 2c c1 e1 23 56 70 2b 5e 71 42 4b c3 db 2c c1 e1 2b 56 2b 5e e5 ┆ +F+N < , #Vp+^qBK , +V+^ ┆ 0x0419e0…041a00 c5 0a e6 7f 6f 1a fe ff ca b7 2c e6 7f bd da cc 2c c2 d9 2c 0a b7 fa d9 2c 1a b7 fa cc 2c 03 13 ┆ o , , , , , ┆ 0x041a00…041a20 (17, 1, 1) 89 38 cd 74 17 21 a2 38 cd 74 17 e1 c9 e5 2a 83 39 22 85 39 22 87 39 e1 c9 f5 3e ff 32 84 38 f1 ┆ 8 t ! 8 t * 9" 9" 9 > 2 8 ┆ 0x041a20…041a40 c9 3a 20 02 2f e5 21 77 38 b6 e1 c9 21 ff 03 11 0b 38 01 0b 00 c5 cd c2 16 c1 21 0b 04 11 31 38 ┆ : / !w8 ! 8 ! 18┆ 0x041a40…041a60 cd c2 16 21 2e 38 36 2e 21 54 38 36 2f 3a 10 01 32 5a 38 c9 af 32 09 38 32 2f 38 c9 e3 f5 7e 23 ┆ !.86.!T86/: 2Z8 2 82/8 ü#┆ 0x041a60…041a80 32 5f 38 7e 32 61 38 23 22 63 38 f1 e1 c3 93 33 f5 7d 32 5f 38 7c 32 61 38 f1 e3 22 63 38 e1 c3 ┆2_8ü2a8#"c8 3 å2_8ø2a8 "c8 ┆ 0x041a80…041aa0 93 33 e3 f5 7e 23 32 5f 38 7e 23 32 61 38 22 63 38 f1 e3 e5 f5 c5 d5 3a 5f 38 3d fe 11 3e 24 d4 ┆ 3 ü#2_8ü#2a8"c8 :_8= >$ ┆ 0x041aa0…041ac0 a0 26 cd bf 33 c4 d6 33 69 60 29 11 a4 34 19 5e 23 56 2a 61 38 19 11 0d 00 19 d1 c1 f1 e3 c9 2a ┆ & 3 3i`) 4 ^#V*a8 *┆ 0x041ac0…041ae0 5f 38 29 29 29 11 aa 34 19 4e 06 00 eb 21 55 38 09 3a 5f 38 be c9 c5 e5 d5 36 00 69 60 29 11 a4 ┆_8))) 4 N !U8 :_8 6 i`) ┆ 0x041ae0…041b00 34 19 5e 23 56 e1 e5 c5 d5 c5 23 5e 23 56 23 cd 89 34 7e 23 e5 66 6f 29 44 4d 21 22 00 19 71 23 ┆4 ^#V #^#V# 4ü# fo)DM!" q#┆ 0x041b00…041b20 70 e1 23 4e 23 46 e1 c5 01 ad 34 09 c1 7e b9 3e 29 dc 81 26 e1 e5 0c c3 20 34 cd 7a 34 cd 7a 34 ┆p #N#F 4 ü >) & 4 z4 z4┆ 0x041b20…041b40 0d c2 1a 34 e1 7e fe 9a 3e 27 c4 81 26 23 3a 5f 38 be 3e 2c c4 81 26 d1 d5 eb 13 c5 01 5a 38 09 ┆ 4 ü >' &#:_8 >, & Z8 ┆ 0x041b40…041b60 c1 1a b8 3e 2a c4 81 26 1a 77 13 0e 05 21 5a 38 1a b7 ca 5b 34 be 3e 2b c4 81 26 13 23 0d c2 50 ┆ >* & w !Z8 Æ4 >+ & # P┆ 0x041b60…041b80 34 eb 5e 23 56 1a fe 9b 3e 28 c4 81 26 d1 21 55 38 19 3a 5f 38 77 d1 e1 c1 c9 cd a3 19 3e 26 dc ┆4 ^#V >( & !U8 :_8w >& ┆ 0x041b80…041ba0 81 26 d5 11 80 00 19 d1 c9 cd 95 34 c0 21 24 00 19 7e cd 81 26 1b 1a 13 b7 c0 cd 98 18 c8 1b 3e ┆ & 4 !$ ü & >┆ 0x041ba0…041bc0 ff 12 13 c9 00 00 00 3e 00 45 00 6c 00 79 07 27 05 06 02 0a 38 32 00 27 04 00 03 0a 38 08 00 05 ┆ > E l y ' 82 ' 8 ┆ 0x041bc0…041be0 01 00 03 0a 38 0d 00 04 01 00 03 0a 38 14 00 04 01 00 03 0a 38 2e 00 04 01 00 03 0a 38 18 00 05 ┆ 8 8 8. 8 ┆ 0x041be0…041c00 01 00 03 0a 38 1f 00 04 01 00 03 0a 38 11 00 03 01 00 01 0a 38 5c 00 07 05 00 01 0a 38 63 00 07 ┆ 8 8 8Ø 8c ┆ 0x041c00…041c20 (17, 1, 2) 11 59 43 fe 0d c8 11 8a 43 fe 0a c8 11 93 43 fe 0c c8 11 a4 43 fe 1f c8 11 4c 40 fe 1a c8 11 8c ┆ YC C C C L@ ┆ 0x041c20…041c40 42 fe 0b c8 11 21 40 fe 09 ca 3a 3f 11 25 40 fe 1e ca 3a 3f fe 1b c0 11 8d 43 36 00 23 cd 4a 3f ┆B !@ :? %@ :? C6 # J?┆ 0x041c40…041c60 d6 20 bf c9 cd 4a 3f e6 7f c9 7e 3c cc 4e 13 7e b7 c0 cd 31 13 c3 4f 3f cd 73 3f cd 5c 40 2a ae ┆ J? ü< N ü 1 O? s? Ø@* ┆ 0x041c60…041c80 3c 3a b2 3c 4f 0c 0d c8 7e 3c cc 4e 13 36 00 23 c3 66 3f 21 00 00 39 11 20 00 42 4b cd 2c 17 f9 ┆<: <O ü< N 6 # f?! 9 BK , ┆ 0x041c80…041ca0 eb 21 6a 3c d5 e5 c5 cd c2 16 af 32 c2 3c 2f 32 58 3c 21 32 00 cd e6 40 21 9c 3c cd a5 40 21 00 ┆ !j< 2 </2X<!2 @! < @! ┆ 0x041ca0…041cc0 00 22 76 3c 2a 9d 3d cd ae 40 ca f0 3f fe 03 ca f0 3f fe 06 ca f0 3f fe 07 ca f0 3f fe 11 ca f0 ┆ "v<* = @ ? ? ? ? ┆ 0x041cc0…041ce0 3f fe 17 ca f0 3f fe 05 ca f0 3f fe 12 ca f0 3f fe 21 d2 f0 3f 46 36 00 23 cd c5 40 c2 e9 3f cd ┆? ? ? ? ! ?F6 # @ ? ┆ 0x041ce0…041d00 4a 3f 7e 36 00 23 d6 20 4f 78 cd a1 41 c3 a7 3f 22 ae 3c 21 6a 3c 11 8a 3c 01 12 00 cd c2 16 21 ┆J?ü6 # Ox A ?" <!j< < !┆ 0x041d00…041d20 c4 3c 01 22 00 cd 08 17 af 32 c3 3c 3a 54 3c b7 cc e0 41 cd 59 40 cd 7b 15 c1 d1 e1 cd c2 16 f9 ┆ < " 2 <:T< A Y@ æ ┆ 0x041d20…041d40 c9 32 53 3c c9 32 54 3c c9 cd e9 43 f6 ff cd 31 13 01 00 04 cd 49 13 0b 78 b1 c2 34 40 21 4f 3c ┆ 2S< 2T< C 1 I x 4@!O<┆ 0x041d40…041d60 7e 36 00 b7 fa 29 40 3a 50 3c b7 c8 cd aa 43 cd 10 07 af 32 02 38 c3 31 13 3e ff fe af 32 58 3c ┆ü6 )@:P< C 2 8 1 > 2X<┆ 0x041d60…041d80 af 32 d2 3c 3a c3 3c 21 58 3c b6 c2 92 40 2a 7a 3c eb 2a 81 3c cd 2c 17 eb 2a ac 3c 19 cd 18 17 ┆ 2 <: <!X< @*z< * < , * < ┆ 0x041d80…041da0 e5 2a 9a 3c 19 cd 18 17 d1 cd 68 17 d2 92 40 f6 ff fe af 32 c2 3c f5 cc 00 41 f1 c4 54 41 cd 7b ┆ * < h @ 2 < A TA æ┆ 0x041da0…041dc0 1c c4 49 13 c9 11 6a 3c 01 10 00 c3 c2 16 cd 4a 3f e6 7f fe 0d c8 fe 0a c8 fe 0c c8 fe 1a c8 fe ┆ I j< J? ┆ 0x041dc0…041de0 1f c8 c3 d0 40 e6 7f fe 1c c8 fe 15 c8 fe 1d c8 fe 1b c8 fe 09 c8 fe 1e c9 2b 7e 3c c2 e4 40 2a ┆ @ +ü< @*┆ 0x041de0…041e00 a1 3d 2b 2b 7e c9 11 6f 3c 19 1a be 3e 14 cd f8 40 3e 16 cd f8 40 3e 19 c4 a1 41 23 13 1a be c9 ┆ =++ü o< > @> @> A# ┆ 0x041e00…041e20 (17, 1, 3) ae 6d 79 fe 03 c2 28 6e e5 21 ce 38 1a be e1 ca 1a 6e cd b7 1a 95 3a c3 ae 6d cd ba 18 ca 28 6e ┆ my (n ! 8 n : m (n┆ 0x041e20…041e40 cd b7 1a 93 3a c3 ae 6d 79 fe 04 c2 5c 6e cd 84 6e c2 ae 6d cd ba 18 ca 5c 6e cd b7 1a 9b 3a cd ┆ : my Øn n m Øn : ┆ 0x041e40…041e60 ca 24 cd b1 1b cd 2c 27 cd d5 17 e5 21 86 08 be ca 55 6e 23 7e e1 cd a5 1e c2 ae 6d f6 ff f5 cd ┆ $ ,' ! Un#ü m ┆ 0x041e60…041e80 a5 24 f1 e1 e3 f5 7d 21 2b 02 be c4 84 29 f1 e1 c1 c9 cd b7 1a 65 3a e1 e5 cd e5 1a cd ba 24 67 ┆ $ å!+ ) e: $g┆ 0x041e80…041ea0 3a c3 ae 6d c5 e5 d5 21 0a 38 cd c2 6e 3a ca 38 b7 ca a6 6e 21 5c 00 cd c2 6e 21 6d 71 cd c2 6e ┆: m ! 8 n: 8 n!Ø n!mq n┆ 0x041ea0…041ec0 21 f4 38 cd c2 6e 3a 00 38 b7 ca be 6e 21 45 3d cd c2 6e 3a 8b 36 b7 21 6b 3d c4 c2 6e af d1 e1 ┆! 8 n: 8 n!E= n: 6 !k= n ┆ 0x041ec0…041ee0 c1 c9 c1 d1 d5 c5 1a be c0 23 13 0e 0b cd 5c 17 c0 f1 cd b7 1a a1 3a f6 ff c3 be 6e c5 d5 d5 af ┆ # Ø : n ┆ 0x041ee0…041f00 0e 10 12 13 0d c2 e2 6e d1 d5 cd 4d 6f 12 13 0e 08 cd 13 6f fe 2e c2 fa 6e 23 0e 03 cd 13 6f d1 ┆ n Mo o . n# o ┆ 0x041f00…041f20 13 1a 1b fe 20 ca 0f 6f cd 7e 17 b7 d1 c1 c9 37 d1 c1 c9 cd 31 6f ca 26 6f 12 13 0d c2 13 6f cd ┆ o ü 7 1o &o o ┆ 0x041f20…041f40 31 6f c2 1f 6f c9 f5 3e 20 12 13 0d c2 27 6f f1 c9 7e cd 3c 6f c8 23 cd e2 17 b7 c9 fe 2e c8 fe ┆1o o > 'o ü <o # . ┆ 0x041f40…041f60 3a c8 fe 2a c8 fe 3f c8 fe 20 d0 bf c9 cd 7e 17 23 7e 2b fe 3a c2 65 6f 7e cd d8 17 d2 65 6f d6 ┆: * ? ü #ü+ : eoü eo ┆ 0x041f60…041f80 40 23 23 b7 c9 78 37 c9 cd 6a 6d 02 22 6c c8 cd 79 6d 03 24 6c ca 68 6f cd 8d 6f 21 ce 38 e5 01 ┆@## x7 jm "l ym $l ho o! 8 ┆ 0x041f80…041fa0 10 00 09 eb 36 00 cd c2 16 d1 c3 9b 19 3a 00 38 21 8b 36 a6 21 ca 38 b6 cc 71 18 c9 cd 03 70 d8 ┆ 6 : 8! 6 ! 8 q p ┆ 0x041fa0…041fc0 cd 6a 6d 01 26 6c c8 cd 79 6d 04 28 6c ca a0 6f d5 cd 26 70 d1 d8 cd 8d 6f cd 45 19 3e ff 32 81 ┆ jm &l ym (l o &p o E > 2 ┆ 0x041fc0…041fe0 6c af 47 4f 79 b7 c2 df 18 2a 85 39 11 ce 38 cd a3 19 da ed 6f 04 78 3c ca ee 6f 11 80 00 19 e5 ┆l GOy * 9 8 o x< o ┆ 0x041fe0…042000 19 eb 2a 89 39 cd 68 17 e1 da cc 6f fe 0d 04 2a 85 39 11 83 6c 05 ca c4 6f cd 1e 1a 11 80 00 19 ┆ * 9 h o * 9 l o ┆ 0x042000…042020 (17, 1, 4) 17 7c b7 1f 1f 1f e6 3c c6 04 32 c5 38 07 32 c8 38 7c fe 44 21 00 04 22 c0 38 3e 08 32 c6 38 da ┆ ø < 2 8 2 8ø D! " 8> 2 8 ┆ 0x042020…042040 23 6d 29 22 c2 38 da 2a 6d 87 32 c7 38 c9 21 86 37 be 77 c8 b7 f5 21 20 02 01 0a 00 cc 08 17 3e ┆#m)" 8 *m 2 8 ! 7 w ! >┆ 0x042040…042060 ff 32 25 02 f1 eb 21 85 03 c4 c2 16 c9 3a 00 38 21 8b 36 a6 cc 71 18 21 5c 00 7e cd 74 19 77 11 ┆ 2% ! : 8! 6 q !Ø ü t w ┆ 0x042060…042080 6d 71 d5 01 10 00 cd c2 16 e1 3a 6c 00 b7 ca 72 6d 77 3a 5c 00 be ca 7e 6d 3e ff 32 b8 38 e5 11 ┆mq :l rmw:Ø üm> 2 8 ┆ 0x042080…0420a0 1b 39 01 09 00 cd c2 16 21 1c 6c cd dc 1a cd bf 16 e1 7e 11 f4 38 12 21 18 6c 01 0b 00 13 cd dc ┆ 9 ! l ü 8 ! l ┆ 0x0420a0…0420c0 1a cd c2 16 21 92 36 11 5c 00 cd 12 18 3a b8 38 b7 ca bd 6d 36 20 23 3a 6d 71 cd 05 18 21 a8 36 ┆ ! 6 Ø : 8 m6 #:mq ! 6┆ 0x0420c0…0420e0 11 6d 71 cd 12 18 21 d4 36 7e b7 cc 12 18 3a b8 38 b7 11 6d 71 c4 ba 18 3e 0b c4 81 26 11 5c 00 ┆ mq ! 6ü : 8 mq > & Ø ┆ 0x0420e0…042100 cd ba 18 3e ff ca ee 6d 32 5b 00 c3 f9 6d 32 b9 38 cd b7 1a 1e 6c cd 39 25 11 76 71 21 1a 6c cd ┆ > m2Æ m2 8 l 9% vq! l ┆ 0x042100…042120 dc 1a cd bf 16 3a 85 37 cd 2e 6d 3a 2b 02 32 1b 37 3a 1c 37 cd 84 29 cd 94 29 3a 00 38 b7 c4 48 ┆ : 7 .m:+ 2 7: 7 ) ): 8 H┆ 0x042120…042140 6e d2 2a 6e 21 5f 3a 22 07 38 3a 18 37 3d e6 fe 2a 07 38 b4 b5 21 61 03 b6 21 19 37 b6 c2 47 6e ┆n *n!_:" 8: 7= * 8 !a ! 7 Gn┆ 0x042140…042160 35 21 35 3a 22 07 38 c9 e5 d5 c5 11 45 3d 21 5c 00 0e 0c cd 5c 17 c1 d1 e1 37 c8 3f c9 9b 00 00 ┆5!5:" 8 E=!Ø Ø 7 ? ┆ 0x042160…042180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x4…] 0x042200…042220 (17, 1, 5) 06 00 01 0a 38 01 00 07 02 00 01 0a 38 6a 00 01 01 00 02 30 38 01 00 1d 12 00 03 0a 38 23 00 05 ┆ 8 8j 08 8# ┆ 0x042220…042240 01 00 04 0a 38 28 00 06 01 00 03 0a 38 59 00 03 01 00 03 0a 38 1d 00 02 01 00 00 03 0f 03 12 02 ┆ 8( 8Y 8 ┆ 0x042240…042260 00 05 00 05 03 02 06 0e 00 02 09 02 0c 02 03 c3 5f 35 c3 7c 35 3e 65 01 fc 0a ed 41 d3 fd c9 3a ┆ _5 ø5>e A :┆ 0x042260…042280 29 07 32 6c 35 32 7a 35 3a 3e 03 d3 00 21 00 00 2b 7d b4 c2 70 35 3a 3a 03 d3 00 c9 3e 19 01 fc ┆) 2l52z5:> ! +å p5:: > ┆ 0x042280…0422a0 0a ed 41 d3 fd c9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ A ┆ 0x0422a0…0422c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x2…] 0x042300…042320 00 00 00 00 00 00 00 00 38 00 00 01 00 00 10 00 01 00 00 10 00 01 00 00 10 00 01 00 00 10 00 01 ┆ 8 ┆ 0x042320…042340 00 00 10 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x042340…042360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x1…] 0x042380…0423a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 9c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x0423a0…0423c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x2…] 0x042400…042420 (17, 1, 6) 2a 9a 3c cd 5c 43 21 20 00 cd e6 40 21 8a 3c cd a5 40 2a ae 3c 1e 00 cd ae 40 ca 39 41 46 23 cd ┆* < ØC! @! < @* < @ 9AF# ┆ 0x042420…042440 c5 40 c2 2e 41 cd 4a 3f 7e d6 20 4f 23 1c 78 cd a1 41 1c 7b fe fe da 17 41 3e 20 cd a1 41 22 b0 ┆ @ .A J?ü O# x A æ A> A" ┆ 0x042440…042460 3c 22 9d 3d 7b 32 b2 3c 21 6a 3c 11 9c 3c 01 12 00 c3 c2 16 3a c7 3c 32 c6 3c 21 32 00 cd e6 40 ┆<" =æ2 <!j< < : <2 <!2 @┆ 0x042460…042480 21 9c 3c cd a5 40 2a ac 3c cd 5c 43 2a b0 3c 3a b2 3c 5f cd d9 40 47 7b b7 ca 9b 41 48 cd d9 40 ┆! < @* < ØC* <: <_ @Gæ AH @┆ 0x042480…0424a0 47 cd c5 40 79 c2 94 41 1d ca 95 41 d6 20 4f cd d9 40 78 46 1d cd a1 41 c3 77 41 2a ac 3c c3 5c ┆G @y A A O @xF A wA* < Ø┆ 0x0424a0…0424c0 43 c5 d5 e5 11 5b 1a d5 32 bf 3c 57 e6 7f 47 fe 20 d2 99 42 fe 07 ca 99 42 fe 06 ca 99 42 14 15 ┆C Æ 2 <W G B B B ┆ 0x0424c0…0424e0 f2 c6 41 32 d2 3c 11 72 3c fe 15 ca de 41 11 74 3c fe 1d ca de 41 11 73 3c fe 1c c2 e6 41 eb 71 ┆ A2 < r< A t< A s< A q┆ 0x0424e0…042500 3e ff 32 c3 3c c9 11 c9 06 fe 11 ca 06 42 11 ce 06 fe 17 ca 06 42 11 d3 06 fe 05 ca 06 42 11 d8 ┆> 2 < B B B ┆ 0x042500…042520 06 fe 12 c2 3e 42 cd e9 43 cd e0 41 3a 58 3c b7 f8 1a 3d cc 24 42 3c 3c 3d c8 f5 13 1a cd 96 44 ┆ >B C A:X< = $B<<= D┆ 0x042520…042540 f1 c3 18 42 f5 13 1a 1b fe 0e ca 39 42 fe 0f c2 7c 17 af 32 75 3c f1 f1 c9 3e 80 c3 33 42 fe 03 ┆ B 9B ø 2u< > 3B ┆ 0x042540…042560 c2 4e 42 cd e0 41 3a 58 3c b7 f8 c3 29 40 11 93 42 21 6a 3c 1a b8 ca 31 43 23 13 3c c2 54 42 78 ┆ NB A:X< )@ B!j< 1C# < TBx┆ 0x042560…042580 fe 08 ca 1e 43 01 67 43 11 6a 43 21 70 3c fe 16 ca 34 43 d5 50 59 c1 2b fe 14 ca 34 43 fe 19 ca ┆ C gC jC!p< 4C PY + 4C ┆ 0x042580…0425a0 f4 42 fe 0b c2 92 42 3a 58 3c b7 f8 cd e9 43 c3 3d 40 ff 02 04 13 18 10 ff c5 cd 53 13 c1 48 cd ┆ B B:X< C =@ S H ┆ 0x0425a0…0425c0 bf 42 3a 6a 3c b7 c8 78 fe 20 c8 3a 91 06 3d c8 f5 2a ea 3c eb cd 3e 43 cd bf 42 f1 c3 ae 42 51 ┆ B:j< x : = * < >C B BQ┆ 0x0425c0…0425e0 3a 58 3c b7 f8 cd da 42 3a 6b 3c b7 c8 3a 92 06 3d c8 f5 cd da 42 f1 c3 d0 42 7a cd f4 42 7a fe ┆:X< B:k< : = B Bz Bz ┆ 0x0425e0…042600 20 c8 3a 6c 3c b7 3a 0c 07 c4 f4 42 3a 6d 3c b7 3a 0b 07 c8 c5 d5 e5 21 5b 1a e5 fe 20 c8 d2 5a ┆ :l< : B:m< : !Æ Z┆ 0x042600…042620 (17, 1, 7) c3 f2 6f cd 60 70 21 00 08 cd 68 17 d0 cd 1b 70 d2 03 70 21 9f 3a 22 07 38 37 c9 3a ca 38 b7 37 ┆ o `p! h p p! :" 87 : 8 7┆ 0x042620…042640 c8 cd 5c 33 01 03 cd 03 70 d8 cd 1b 70 21 89 39 cd 35 70 b7 c9 c5 d5 e5 eb 21 81 39 23 cd 68 17 ┆ Ø3 p p! 9 5p ! 9# h ┆ 0x042640…042660 2b da 4d 70 cd 84 70 cd 77 70 c3 3c 70 21 8f 39 cd 68 17 d2 5b 1a cd a2 70 2b 2b 2b 2b c3 50 70 ┆+ Mp p wp <p! 9 h Æ p++++ Pp┆ 0x042660…042680 c5 e5 11 00 00 21 7f 39 cd c2 70 eb 09 eb cd 77 70 d2 68 70 e1 c1 c9 d5 23 23 23 23 11 90 39 cd ┆ ! 9 p wp hp #### 9 ┆ 0x042680…0426a0 68 17 d1 c9 c5 d5 e5 cd c2 70 2b 2b cd 51 17 e3 73 23 72 2b e3 cd c2 16 e1 e5 23 23 73 23 72 c3 ┆h p++ Q s#r+ ##s#r ┆ 0x0426a0…0426c0 5b 1a c5 d5 e5 e5 2b 2b cd c2 70 e1 e5 cd 51 17 eb e3 23 72 2b 73 e3 cd e1 16 e1 2b 72 2b 73 c3 ┆Æ ++ p Q #r+s +r+s ┆ 0x0426c0…0426e0 5b 1a d5 e5 cd 51 17 cd 35 17 e1 d1 c9 9b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆Æ Q 5 ┆ 0x0426e0…042700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x042700…042720 9a 03 01 14 00 00 00 00 ad 6f 1e 00 00 c3 38 00 c3 6c 6d c3 bf 6c c3 6a 6c c3 8f 6c c3 a0 6d c3 ┆ o 8 lm l jl l m ┆ 0x042720…042740 99 6d c3 6f 6d c3 ac 6f 42 00 0a 00 13 00 1b 00 24 00 25 00 20 3f 20 28 59 2f 4e 29 3a 20 00 0e ┆ m om oB $ % ? (Y/N): ┆ 0x042740…042760 13 14 45 44 49 54 3f 20 00 0e 13 20 53 41 56 49 4e 47 20 00 15 20 00 42 41 4b 00 00 00 00 00 00 ┆ EDIT? SAVING BAK ┆ 0x042760…042780 00 00 00 00 00 00 00 00 00 00 cd 03 6f 3e ff 32 04 38 cd ee 6c 01 92 71 cd 00 4e cd c5 6c 3a 5c ┆ o> 2 8 l q N l:Ø┆ 0x042780…0427a0 00 32 6c 00 3a 6d 71 32 5c 00 cd 5c 33 08 06 cd 08 25 3a c9 38 b7 c2 a7 6c cd b7 1a d7 39 cd 3f ┆ 2l :mq2Ø Ø3 %: 8 l 9 ?┆ 0x0427a0…0427c0 6f cd 39 25 c3 b3 6c cd b7 1a d9 39 cd 45 6f cd 53 6f c0 cd 2c 27 11 6d 71 cd e1 6c c3 c5 6c cd ┆o 9% l 9 Eo So ,' mq l l ┆ 0x0427c0…0427e0 03 6f cd ee 6c 11 f4 38 cd e1 6c af 32 ca 38 32 94 38 3a 2b 02 32 1c 37 3a 1b 37 cd 84 29 c3 26 ┆ o l 8 l 2 82 8:+ 2 7: 7 ) &┆ 0x0427e0…042800 2f 1b 1b 1a 13 13 b7 c8 cd df 18 c3 f8 18 cd 10 6d 3a b9 38 b7 c2 07 6d cd 2d 19 11 5c 00 21 32 ┆/ m: 8 m - Ø !2┆ 0x042800…042820 (17, 1, 8) 9a 04 01 14 00 00 00 00 b4 6f 15 00 00 c3 61 6c c3 94 6c c3 ae 6e c3 e7 6e c3 f8 6e c3 8c 6e 42 ┆ o al l n n n nB┆ 0x042820…042840 00 04 00 0c 00 0e 13 14 52 45 41 44 3f 20 00 0e 13 14 57 52 49 54 45 20 4d 41 52 4b 45 44 20 54 ┆ READ? WRITE MARKED T┆ 0x042840…042860 45 58 54 20 4f 4e 3f 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆EXT ON? ┆ 0x042860…042880 00 cd e5 6c 01 21 6c c8 21 9e 71 cd 86 66 cd 2c 27 11 ce 38 21 ce 3b cd a3 19 da 8e 6c cd 9a 4c ┆ l !l ! q f ,' 8! ; l L┆ 0x042880…0428a0 f5 06 00 4f 11 ce 3b cd b3 49 f1 da 6e 6c 21 9e 71 c3 11 67 cd 9c 6f cd e5 6c 04 23 6c c8 1b 1b ┆ O ; I nl! q g o l #l ┆ 0x0428a0…0428c0 af 12 cd 89 6f cd 2c 27 1e 00 21 80 00 cd cd 4e e5 01 c6 71 1e 00 21 81 00 cd 23 4e da cf 6c 2a ┆ o ,' ! N q ! #N l*┆ 0x0428c0…0428e0 8d 39 11 ce 38 cd 09 1a e1 cd 88 45 c3 a8 6c e1 2a 8d 39 3a c7 71 cd 19 4c 11 ce 38 cd 1e 1a cd ┆ 9 8 E l * 9: q L 8 ┆ 0x0428e0…042900 df 18 c3 f2 6e 11 ce 38 21 be 36 e3 7e 23 f5 cd 7c 24 cd 21 25 cd bd 1a cd ca 24 f1 e3 c5 4f e5 ┆ n 8! 6 ü# ø$ !% $ O ┆ 0x042900…042920 2a 2b 02 e3 e5 cd 19 33 2a 1d 37 22 ac 38 eb 22 65 38 eb 2a ac 38 cd 4f 21 cd a5 24 e1 e5 06 14 ┆*+ 3* 7" 8 "e8 * 8 O! $ ┆ 0x042920…042940 cd 72 23 cd b0 24 7e b7 ca 78 6d cd fe 6d da 8c 6d b7 c2 8c 6d e1 e5 cd 12 18 79 3d cc ba 18 ca ┆ r# $ü xm m m m y= ┆ 0x042940…042960 9e 6d 79 fe 04 c2 76 6d cd a6 6d c2 0e 6d cd ba 18 ca 76 6d cd b7 1a 9b 3a cd ca 24 cd b1 1b cd ┆ my vm m m vm : $ ┆ 0x042960…042980 2c 27 cd d5 17 e5 21 86 08 be ca 6f 6d 23 7e e1 cd a5 1e c2 0e 6d f6 ff f5 cd a5 24 f1 e1 e3 f5 ┆,' ! om#ü m $ ┆ 0x042980…0429a0 7d 21 2b 02 be c4 84 29 f1 e1 c1 c9 cd b7 1a 65 3a e1 e5 cd e5 1a cd ba 24 67 3a c3 0e 6d cd ba ┆å!+ ) e: $g: m ┆ 0x0429a0…0429c0 24 69 3a c3 0e 6d c5 e5 d5 21 0a 38 cd e4 6d 3a ca 38 b7 ca c8 6d 21 5c 00 cd e4 6d 21 6d 71 cd ┆$i: m ! 8 m: 8 m!Ø m!mq ┆ 0x0429c0…0429e0 e4 6d 21 f4 38 cd e4 6d 3a 00 38 b7 ca e0 6d 21 45 3d cd e4 6d 3a 8b 36 b7 21 6b 3d c4 e4 6d af ┆ m! 8 m: 8 m!E= m: 6 !k= m ┆ 0x0429e0…042a00 d1 e1 c1 c9 c1 d1 d5 c5 1a be c0 23 13 0e 0b cd 5c 17 c0 f1 cd b7 1a a1 3a f6 ff c3 e0 6d c5 d5 ┆ # Ø : m ┆ 0x042a00…042a20 (17, 1, 9) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x3…] 0x042a80…042aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 9c 9e 37 9e 37 00 00 ┆ 7 7 ┆ 0x042aa0…042ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x1…] 0x042ae0…042b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 3f 3f 3f 3f 3f 3f 3f 3f 3f 3f 3f 00 00 00 00 21 ┆ ??????????? !┆ 0x042b00…042b20 17 01 cd 6e 38 21 53 01 cd 6e 38 cd 66 38 0f 0f 59 6f 75 20 61 72 65 20 74 72 79 69 6e 67 20 74 ┆ n8!S n8 f8 You are trying t┆ 0x042b20…042b40 6f 20 72 75 6e 20 61 6e 20 75 6e 69 6e 73 74 61 6c 6c 65 64 20 57 4f 52 44 53 54 41 52 2e 0f 0f ┆o run an uninstalled WORDSTAR. ┆ 0x042b40…042b60 50 6c 65 61 73 65 20 72 75 6e 20 49 4e 53 54 41 4c 4c 20 66 69 72 73 74 2e 0f 0f 00 c3 1b 2d cd ┆Please run INSTALL first. - ┆ 0x042b60…042b80 66 38 0d 0a 00 c9 e3 f5 cd 71 38 f1 e3 c9 cd 5f 38 7e e6 7f c8 fe 0f cc 5f 38 c4 a7 20 23 c3 71 ┆f8 q8 _8ü _8 # q┆ 0x042b80…042ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 9c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x042ba0…042bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x2…] 0x042c00…042c20 (17, 1, 10) 44 fe 19 ca 5a 44 fe 07 ca 5a 44 fe 06 ca 5a 44 ff e5 2a 36 3d 23 22 36 3d cd 49 13 e1 c9 2a 72 ┆D ZD ZD ZD *6=#"6= I *r┆ 0x042c20…042c40 3c 26 00 eb cd 25 17 c3 3e 43 7e b7 ca 31 43 50 59 c3 78 17 cd 2a 43 2a 74 3c 26 00 eb e9 3a c2 ┆<& % >Cü 1CPY x *C*t<& : ┆ 0x042c40…042c60 3c b7 ca 48 43 cd 25 17 e5 2a 7a 3c 19 22 7a 3c 2a 81 3c 19 22 81 3c e1 c9 21 00 00 eb 2a 7a 3c ┆< HC % *z< "z<* < " < ! *z<┆ 0x042c60…042c80 cd 2c 17 eb c3 45 43 cd 25 17 d5 e5 2a 83 3c 19 22 83 3c 2a 7c 3c 19 eb 2a 39 3e eb 7c b7 f4 68 ┆ , EC % * < " <*ø< *9> ø h┆ 0x042c80…042ca0 17 dc 2c 17 22 7c 3c e1 d1 c9 3a 73 3c 5f 16 00 c3 6a 43 2a 7c 3c 7c b5 c8 eb 2a 39 3e cd 2c 17 ┆ , "ø< :s<_ jC*ø<ø *9> , ┆ 0x042ca0…042cc0 eb c3 6a 43 cd 0d 07 c3 20 3e cd e9 43 21 23 3e c3 99 44 3a 9e 07 4f 7c b5 c8 cd 12 17 eb cd 68 ┆ jC > C!#> D: Oø h┆ 0x042cc0…042ce0 17 d2 ca 43 21 00 00 c3 cf 43 eb 1b cd 2c 17 79 4b b7 ca e1 43 79 b7 1f 4f d2 e1 43 1b 23 7a b3 ┆ C! C , yK Cy O C #z ┆ 0x042ce0…042d00 c8 78 b7 fc 1b 17 f6 01 c9 c5 d5 e5 21 5b 1a e5 3a 7b 3c b7 fc 59 43 af 2a 35 3e eb 2a 83 3c cd ┆ x !Æ :æ< YC *5> * < ┆ 0x042d00…042d20 b6 43 ca 11 44 22 83 3c 21 26 3e cd 99 44 c3 f7 43 2a 7a 3c eb 2a 37 3e 2b cd 68 17 da 20 44 eb ┆ C D" <!&> D C*z< *7>+ h D ┆ 0x042d20…042d40 2a 7e 3c eb cd 2c 17 22 81 3c eb 2a 35 3e 29 eb cd b3 43 c8 22 81 3c 2a 7e 3c cd 2c 17 04 05 fa ┆*ü< , " < *5>) C " <*ü< , ┆ 0x042d40…042d60 44 44 19 19 22 7e 3c 7b e6 01 4f 7a 1f 57 7b 1f 5f 21 29 3e cd 99 44 c3 11 44 f5 cd e9 43 f1 cd ┆DD "ü<æ Oz Wæ _!)> D D C ┆ 0x042d60…042d80 38 1d c5 d5 e5 fe 3c da 73 44 fe 60 d2 73 44 21 75 3c b6 21 5b 1a e5 fe 19 c2 88 44 21 71 3c cd ┆8 < sD ` sD!u< !Æ D!q< ┆ 0x042d80…042da0 31 43 3a 71 3c c3 2f 3e fe 06 c2 8f 44 3e 20 fe 07 c2 96 44 3e 7f 21 2c 3e e5 2a 58 3c 2d 2c e1 ┆1C:q< /> D> D> !,> *X<-, ┆ 0x042da0…042dc0 f8 f5 c5 d5 e5 cd 3d 43 d2 b5 44 cd 11 43 e1 d1 c1 f1 c3 99 44 21 00 00 22 36 3d c3 ab 32 9b 1a ┆ =C D C D! "6= 2 ┆ 0x042dc0…042de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x1…] 0x042e00…042e20 (17, 1, 11) 6c cd dc 1a cd 7c 19 11 6d 71 21 65 00 c3 7c 19 cd 35 6d cd 2c 27 cd 4e 6d cd 35 6d d2 13 6d 21 ┆l ø mq!e ø 5m ,' Nm 5m m!┆ 0x042e20…042e40 89 39 cd 08 4b 2a 89 39 79 cd 19 4c 11 6d 71 cd 1e 1a c3 df 18 c5 d5 e5 21 91 39 16 78 cd 1b 4d ┆ 9 K* 9y L mq ! 9 x M┆ 0x042e40…042e60 cd b2 4c ca 36 4c 79 b7 c2 68 4c c3 36 4c c5 d5 e5 21 81 00 22 b4 38 21 91 39 cd 78 4a 2a 8f 39 ┆ L 6Ly hL 6L ! " 8! 9 xJ* 9┆ 0x042e60…042e80 cd 88 45 cd 64 4b d2 63 6d c3 36 4c cd bf 6c 3a 00 38 b7 ca 28 2d cd 08 25 cd c2 24 d5 39 cd d5 ┆ E dK cm 6L l: 8 (- % $ 9 ┆ 0x042e80…042ea0 30 cd 6e 0b c4 b1 1b cd 2c 27 3a 01 38 b7 c0 3a 00 38 b7 ca 28 2d c3 81 6d 11 cf 39 af c3 a5 6d ┆0 n ,': 8 : 8 (- m 9 m┆ 0x042ea0…042ec0 11 d1 39 3e ff 32 85 37 47 2a ff 37 7c a5 21 57 3a c2 8c 6f 3a 00 38 b7 c4 75 6f d8 cd 08 25 3a ┆ 9> 2 7G* 7ø !W: o: 8 uo %:┆ 0x042ec0…042ee0 18 37 b7 ca d3 6d eb cd cc 1a 21 d3 39 cd cc 1a cd a5 24 3a 99 38 32 9b 38 04 cc 7f 24 11 5c 00 ┆ 7 m ! 9 $: 82 8 $ Ø ┆ 0x042ee0…042f00 21 92 36 cd f1 6d 2c 6c c8 32 6c 00 cd 5c 33 08 03 af e3 cd 21 25 cd bd 1a cd ca 24 e3 c5 e5 2a ┆! 6 m,l 2l Ø3 !% $ *┆ 0x042f00…042f20 2b 02 e3 e5 cd 19 33 2a 1d 37 22 ac 38 eb 22 65 38 eb 2a ac 38 cd 4f 21 cd a5 24 e1 e5 06 14 cd ┆+ 3* 7" 8 "e8 * 8 O! $ ┆ 0x042f20…042f40 72 23 2b 77 23 cd b0 24 7e b7 ca 4f 6e cd 75 6e da 63 6e b7 ca 46 6e cd e6 6e da 63 6e 47 cd 7e ┆r#+w# $ü On un cn Fn n cnG ü┆ 0x042f40…042f60 17 b7 c2 63 6e 78 47 e1 e5 cd 12 18 78 fe ff f5 cd a5 24 f1 e1 e3 f5 7d 21 2b 02 be c4 84 29 f1 ┆ cnxG x $ å!+ ) ┆ 0x042f60…042f80 e1 c1 c9 cd b7 1a 65 3a e1 e5 cd e5 1a cd ba 24 67 3a c3 0d 6e c5 d5 d5 af 0e 10 12 13 0d c2 7b ┆ e: $g: n æ┆ 0x042f80…042fa0 6e d1 d5 cd e6 6e 12 13 0e 08 cd ac 6e fe 2e c2 93 6e 23 0e 03 cd ac 6e d1 13 1a 1b fe 20 ca a8 ┆n n n . n# n ┆ 0x042fa0…042fc0 6e cd 7e 17 b7 d1 c1 c9 37 d1 c1 c9 cd ca 6e ca bf 6e 12 13 0d c2 ac 6e cd ca 6e c2 b8 6e c9 f5 ┆n ü 7 n n n n n ┆ 0x042fc0…042fe0 3e 20 12 13 0d c2 c0 6e f1 c9 7e cd d5 6e c8 23 cd e2 17 b7 c9 fe 2e c8 fe 3a c8 fe 2a c8 fe 3f ┆> n ü n # . : * ?┆ 0x042fe0…043000 c8 fe 20 d0 bf c9 cd 7e 17 23 7e 2b fe 3a c2 fe 6e 7e cd d8 17 d2 fe 6e d6 40 23 23 b7 c9 cd 76 ┆ ü #ü+ : nü n @## v┆ 0x043000…043020 (17, 1, 12) d5 af 0e 10 12 13 0d c2 04 6e d1 d5 cd 6f 6e 12 13 0e 08 cd 35 6e fe 2e c2 1c 6e 23 0e 03 cd 35 ┆ n on 5n . n# 5┆ 0x043020…043040 6e d1 13 1a 1b fe 20 ca 31 6e cd 7e 17 b7 d1 c1 c9 37 d1 c1 c9 cd 53 6e ca 48 6e 12 13 0d c2 35 ┆n 1n ü 7 Sn Hn 5┆ 0x043040…043060 6e cd 53 6e c2 41 6e c9 f5 3e 20 12 13 0d c2 49 6e f1 c9 7e cd 5e 6e c8 23 cd e2 17 b7 c9 fe 2e ┆n Sn An > In ü ^n # .┆ 0x043060…043080 c8 fe 3a c8 fe 2a c8 fe 3f c8 fe 20 d0 bf c9 cd 7e 17 23 7e 2b fe 3a c2 87 6e 7e cd d8 17 d2 87 ┆ : * ? ü #ü+ : nü ┆ 0x043080…0430a0 6e d6 40 23 23 b7 c9 cd 76 19 37 c9 3a c2 71 21 c6 71 a6 fe 90 ca 10 6f cd e6 66 f5 21 c2 71 cd ┆n @## v 7 : q! q o f ! q ┆ 0x0430a0…0430c0 e6 66 3e 06 cc 81 26 f1 c0 3e 07 cd 81 26 16 ff cd 1c 6f 21 a2 71 cd 17 67 01 c2 71 c5 cd 52 4e ┆ f> & > & o! q g q RN┆ 0x0430c0…0430e0 7a e6 7f 57 01 ce 71 cd 62 4e e1 cd 86 66 21 85 39 cd 08 4b 2a 85 39 eb cd b3 49 cd 0d 33 21 c6 ┆z W q bN f! 9 K* 9 I 3! ┆ 0x0430e0…043100 71 cd 86 66 c3 f2 6e 16 00 cd 1c 6f cd f2 6e c3 b9 6e 21 a2 71 c3 11 67 cd 89 6f 01 c6 71 cd 2c ┆q f n o n n! q g o q ,┆ 0x043100…043120 27 cd 50 67 ca 0d 6f cd de 45 c3 fe 6e cd f2 6e 21 c2 71 cd df 66 21 c6 71 c3 df 66 d5 cd 89 6f ┆' Pg o E n n! q f! q f o┆ 0x043120…043140 37 c2 3f 6f 2a 83 39 eb 2a 91 39 cd 2c 17 11 ff e4 19 da 38 6f 21 55 00 eb 2a c7 71 cd 68 17 3e ┆7 ?o* 9 * 9 , 8o!U * q h >┆ 0x043140…043160 09 dc 81 26 e5 cd 0d 33 1e 00 cd cd 4e c1 d1 cd d5 49 c8 cd 2c 27 d5 cd 49 0b 69 78 c6 08 67 22 ┆ & 3 N I ,' I ix g"┆ 0x043160…043180 b6 38 21 87 39 cd ee 49 2a 8d 39 eb 2a 87 39 1a 77 23 13 0d c2 6f 6f 22 87 39 eb d1 7a b7 cc 88 ┆ 8! 9 I* 9 * 9 w# oo" 9 z ┆ 0x043180…0431a0 45 c4 de 45 05 c2 56 6f c9 cd 9c 6f 21 c2 71 cd 11 67 3a c9 71 b7 f0 3e 08 cd 81 26 3a c2 71 fe ┆E E Vo o! q g: q > &: q ┆ 0x0431a0…0431c0 90 3e 06 c4 81 26 3a c6 71 fe 90 c8 3e 07 cd 81 26 cd 38 00 9b 00 00 00 00 00 00 00 00 00 00 00 ┆ > &: q > & 8 ┆ 0x0431c0…0431e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x1…] 0x043200…043220 (17, 1, 13) 00 00 00 20 43 4f 50 59 52 49 47 48 54 20 28 43 29 20 31 39 38 31 2c 20 4d 49 43 52 4f 50 52 4f ┆ COPYRIGHT (C) 1981, MICROPRO┆ 0x043220…043240 20 49 4e 54 45 52 4e 41 54 49 4f 4e 41 4c 2c 20 0d 0a 20 53 41 4e 20 52 41 46 41 45 4c 2c 20 43 ┆ INTERNATIONAL, SAN RAFAEL, C┆ 0x043240…043260 41 4c 49 46 4f 52 4e 49 41 2c 20 55 53 41 2e 20 0d 0a 20 41 4c 4c 20 52 49 47 48 54 53 20 52 45 ┆ALIFORNIA, USA. ALL RIGHTS RE┆ 0x043260…043280 53 45 52 56 45 44 2e 20 0d 0a 0a 20 57 6f 72 64 53 74 61 72 20 72 65 6c 65 61 73 65 20 32 2e 32 ┆SERVED. WordStar release 2.2┆ 0x043280…0432a0 36 20 6f 76 65 72 6c 61 79 20 66 69 6c 65 20 6e 75 6d 62 65 72 20 31 2e 20 20 0d 0a 20 6f 76 65 ┆6 overlay file number 1. ove┆ 0x0432a0…0432c0 72 6c 61 79 73 20 66 6f 72 20 6e 6f 2d 66 69 6c 65 20 63 6f 6d 6d 61 6e 64 73 20 61 6e 64 20 65 ┆rlays for no-file commands and e┆ 0x0432c0…0432e0 64 69 74 69 6e 67 20 0d 0a 1a 20 4e 4f 53 45 59 2c 20 41 52 45 4e 27 54 20 59 4f 55 3f 20 20 0d ┆diting NOSEY, AREN'T YOU? ┆ 0x0432e0…043300 0a 1a 00 00 01 00 02 00 03 00 04 00 05 00 06 00 07 00 08 00 09 00 0a 00 0b 00 0c 00 0d 00 0e 00 ┆ ┆ 0x043300…043320 9a 0b 02 14 00 00 00 00 be 44 00 00 00 c9 c3 bd 3e c3 3e 43 00 00 c9 00 00 c9 00 00 00 00 00 00 ┆ D > >C ┆ 0x043320…043340 c3 45 3e c3 3f 3e c3 4f 3e c3 5a 3e c3 63 3e c3 49 3e 00 00 00 ff 03 30 06 10 02 00 00 00 00 06 ┆ E> ?> O> Z> c> I> 0 ┆ 0x043340…043360 38 cd 79 3e d8 cd 8d 3e af e6 40 32 a9 3e c9 0e 00 cd 96 3e 01 a7 20 c3 69 3e cd 96 3e 01 ab 10 ┆8 y> > @2 > > i> > ┆ 0x043360…043380 c3 69 3e 2f d3 f8 01 ad 08 cd 79 3e d8 3a a9 3e b1 d3 fa a9 f6 af d3 fa c9 3a a9 3e f6 8f d3 fa ┆ i>/ y> : > : > ┆ 0x043380…0433a0 db f8 f5 e6 02 cc 8d 3e f1 a0 c8 37 c9 3e ae d3 fa 3e af d3 fa c9 78 e6 04 b2 0c 0d ca a1 3e f6 ┆ > 7 > > x > ┆ 0x0433a0…0433c0 08 2f d3 f9 7b 2f d3 f8 c9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3a 9e 07 ┆ / æ/ : ┆ 0x0433c0…0433e0 b7 ca c6 3e 3e 01 3c 32 ea 3c 21 6a 3c 11 9c 3c 01 0b 00 cd c2 16 cd df 3e cd 58 3f c3 d6 3e af ┆ >> <2 <!j< < > X? > ┆ 0x0433e0…043400 32 58 3c cd 3d 40 2a 9d 3d cd fd 3e c0 36 00 23 22 9d 3d eb cd 3d 43 cd 49 13 c3 df 3e cd 44 3f ┆2X< =@* = > 6 #" = =C I > D?┆ 0x043400…043420 (17, 1, 14) 9a 02 01 14 00 00 00 00 cd 70 12 00 00 c3 c7 6c c3 fd 6c c3 bd 6c c3 9c 6f c3 68 6f 65 00 0c 00 ┆ p l l l o hoe ┆ 0x043420…043440 0d 00 17 00 21 00 2e 00 3b 00 20 3f 00 0e 13 14 44 45 4c 45 54 45 3f 20 00 0e 13 14 52 45 4e 41 ┆ ! . ; ? DELETE? RENA┆ 0x043440…043460 4d 45 3f 20 00 89 89 a0 20 4e 45 57 20 4e 41 4d 45 3f 20 00 0e 13 14 43 4f 50 59 20 46 52 4f 4d ┆ME? NEW NAME? COPY FROM┆ 0x043460…043480 3f 20 00 13 14 43 4f 50 59 20 20 54 4f 20 3f 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆? COPY TO ? ┆ 0x043480…0434a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x0434a0…0434c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 cd 6a 6d ┆ jm┆ 0x0434c0…0434e0 02 20 6c c8 c3 f8 18 cd 08 25 3a 18 37 b7 21 c9 39 c4 cc 1a cd b7 1a cb 39 3a 18 37 c6 30 cd a5 ┆ l %: 7 ! 9 9: 7 0 ┆ 0x0434e0…043500 1e cd b7 1a cd 39 cd ca 24 cd b1 1b cd a5 1e d6 30 d8 fe 04 d0 32 18 37 af 32 9c 38 c9 cd 08 25 ┆ 9 $ 0 2 7 2 8 %┆ 0x043500…043520 3a 18 37 b7 21 c3 39 c4 cc 1a cd b7 1a c5 39 cd 76 19 21 ae 38 e5 cd 05 18 e1 cd e5 1a cd b0 24 ┆: 7 ! 9 9 v ! 8 $┆ 0x043520…043540 3a 99 38 32 9b 38 cd 21 25 cd b7 1a c7 39 cd ca 24 06 04 21 12 37 cd 5d 23 cd 7e 17 b7 c8 cd d8 ┆: 82 8 !% 9 $ ! 7 Å# ü ┆ 0x043540…043560 17 d2 56 6d d6 40 5f 23 7e fe 3a c2 4f 6d 23 cd 7e 17 b7 ca 5e 6d cd b7 1a 1e 6c c3 26 6d 3e 01 ┆ Vm @_#ü : Om# ü ^m l &m> ┆ 0x043560…043580 cd 7c 18 cd 8d 6f 7b c3 7c 18 11 ce 38 21 be 36 cd 7c 24 cd 21 25 c3 91 6d 21 a8 6c 7e b7 c2 8e ┆ ø oæ ø 8! 6 ø$ !% m! lü ┆ 0x043580…0435a0 6d 11 be 36 e5 1a 77 13 23 b7 c2 85 6d e1 11 83 6c e3 7e 23 f5 cd bd 1a cd ca 24 f1 e3 c5 4f e5 ┆m 6 w # m l ü# $ O ┆ 0x0435a0…0435c0 2a 2b 02 e3 e5 2a 1d 37 22 ac 38 cd 19 33 eb 22 65 38 eb 2a ac 38 cd 4f 21 cd a5 24 e1 e5 06 14 ┆*+ * 7" 8 3 "e8 * 8 O! $ ┆ 0x0435c0…0435e0 cd 72 23 cd b0 24 7e b7 ca 5e 6e 79 fe 03 3a ce 38 c4 76 19 47 cd dc 6e da 72 6e b7 c2 72 6e e1 ┆ r# $ü ^ny : 8 v G n rn rn ┆ 0x0435e0…043600 e5 cd 12 18 79 3d e6 fe cc ba 18 c2 f6 6d cd ba 24 69 3a c3 ae 6d 79 fe 02 c2 02 6e cd 84 6e c2 ┆ y= m $i: my n n ┆ 0x043600…043620 (17, 1, 15) 19 37 c9 cd 08 25 3a 00 38 b7 c4 97 6f d2 18 6f cd c2 24 5b 3a c3 27 6f 3a 00 38 b7 c4 90 6f d2 ┆ 7 %: 8 o o $Æ: 'o: 8 o ┆ 0x043620…043640 3a 6f cd c2 24 5d 3a cd d5 30 cd 6e 0b c4 b1 1b cd 2c 27 3a 00 38 b7 c2 2a 6f cd c2 24 2e 6c cd ┆:o $Å: 0 n ,': 8 *o $.l ┆ 0x043640…043660 45 6f c3 d5 30 cd b7 1a 30 6c 21 a8 36 cd e5 1a c3 ca 24 cd b7 1a 2a 6c cd 69 6f e5 21 86 08 be ┆Eo 0 0l! 6 $ *l io ! ┆ 0x043660…043680 ca 65 6f 23 7e e1 c3 a5 1e cd ca 24 cd b1 1b cd 2c 27 c3 d5 17 d5 2a 7f 39 eb 2a 91 39 cd 2c 17 ┆ eo#ü $ ,' * 9 * 9 , ┆ 0x043680…0436a0 11 21 29 cd 68 17 d1 3f d0 21 f1 39 22 07 38 c9 e5 21 1b 39 c3 9b 6f e5 21 5c 00 d5 c5 11 45 3d ┆ !) h ? ! 9" 8 ! 9 o !Ø E=┆ 0x0436a0…0436c0 0e 0c cd 5c 17 c1 d1 e1 37 c8 3f c9 ff 9b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ Ø 7 ? ┆ 0x0436c0…0436e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x1…] 0x043700…043720 9a 08 01 14 00 00 00 00 5d 6e 0c 00 00 c3 4a 6c c3 4f 6c c3 55 6c 34 00 08 00 0e 00 0f 00 10 00 ┆ Ån Jl Ol Ul4 ┆ 0x043720…043740 45 44 42 41 43 4b 55 50 24 24 24 42 41 4b 0e 4e 45 57 20 46 49 4c 45 0e 0e 00 00 00 00 00 00 00 ┆EDBACKUP$$$BAK NEW FILE ┆ 0x043740…043760 00 00 00 00 00 00 00 00 00 00 3e ff 32 85 37 cd 60 6c cd 90 6c cd 9f 6c cd 4d 6d cd 5c 33 01 00 ┆ > 2 7 `l l l Mm Ø3 ┆ 0x043760…043780 3a 90 36 b7 c0 3a 62 03 32 23 37 3e ff cd 2e 6d 3a 7f 03 32 26 37 32 24 37 3a 49 02 d6 05 21 80 ┆: 6 :b 2#7> .m: 2&72$7:I ! ┆ 0x043780…0437a0 03 be da 86 6c 7e 3c 32 28 37 3e ff 32 90 36 c9 21 91 71 01 65 01 cd 08 17 3e ff 32 92 71 c9 11 ┆ lü<2(7> 2 6 ! q e > 2 q ┆ 0x0437a0…0437c0 65 00 d5 21 1a 6c cd dc 1a cd 5a 17 d1 ca bc 6c 21 1c 6c cd dc 1a cd 5a 17 c2 c5 6c 21 59 3a 22 ┆e ! l Z l! l Z l!Y:"┆ 0x0437c0…0437e0 07 38 c3 53 2d 01 91 00 21 00 71 cd 08 17 01 c9 00 21 77 38 cd 08 17 32 5b 00 32 68 00 32 6b 00 ┆ 8 S- ! q !w8 2Æ 2h 2k ┆ 0x0437e0…043800 32 7d 00 cd 26 2f 2a 66 39 11 00 fe 19 22 00 71 22 91 39 cd f7 6c c9 2a 7f 39 eb 2a 91 39 cd 2c ┆2å &/*f9 " q" 9 l * 9 * 9 ,┆ 0x043800…043820 (18, 0, 1) 9a 06 01 14 00 04 00 00 c2 70 0c 00 00 c3 a7 6c c3 af 6c c3 32 6d 8a 00 0e 00 15 00 23 00 39 00 ┆ p l l 2m # 9 ┆ 0x043820…043840 49 00 57 00 57 00 0e 13 46 49 4e 44 3f 20 00 13 52 45 50 4c 41 43 45 20 57 49 54 48 3f 20 00 13 ┆I W W FIND? REPLACE WITH? ┆ 0x043840…043860 4f 50 54 49 4f 4e 53 3f 20 28 3f 20 46 4f 52 20 49 4e 46 4f 29 20 00 0e 2a 2a 2a 20 4e 4f 54 20 ┆OPTIONS? (? FOR INFO) *** NOT ┆ 0x043860…043880 46 4f 55 4e 44 3a 20 22 00 52 45 50 4c 41 43 45 5c 28 59 2f 4e 29 3a 20 00 13 00 20 3f 3f 3f 00 ┆FOUND: " REPLACEØ(Y/N): ??? ┆ 0x043880…0438a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x0438a0…0438c0 02 00 04 2b 37 22 00 da 32 6d 3e 00 c3 b4 6c da 32 6d 3e ff 32 7a 37 4f cd 7c 24 cd 21 25 cd b7 ┆ +7" 2m> l 2m> 2z7O ø$ !% ┆ 0x0438c0…0438e0 1a 18 6c cd ca 24 21 2b 37 06 1f cd 5d 23 32 78 37 79 b7 ca ee 6c 3e 2c cd 34 1e cd b7 1a 1a 6c ┆ l $!+7 Å#2x7y l>, 4 l┆ 0x0438e0…043900 cd ca 24 21 4d 37 06 1f cd 5d 23 32 78 37 3e 29 cd 34 1e cd a5 24 2a 1d 37 e5 21 7b 37 01 0a 00 ┆ $!M7 Å#2x7>) 4 $* 7 !æ7 ┆ 0x043900…043920 cd 08 17 3e 01 32 7d 37 32 7c 37 3a 78 37 fe 1b e1 ca 2f 6d e5 cd 4f 21 cd b7 1a 1c 6c 21 6d 37 ┆ > 2å72ø7:x7 /m O! l!m7┆ 0x043920…043940 06 0a cd 5d 23 cd f4 6e e1 da f9 6c cd 40 1e c3 35 6d d4 11 28 3a 84 37 b7 ca 48 6d 3a 7b 37 b7 ┆ Å# n l @ 5m (: 7 Hm:æ7 ┆ 0x043940…043960 f5 cc 33 67 f1 c4 39 67 2a 7d 37 22 7f 37 cd 34 6e cd 2c 27 21 ce 71 cd c3 66 cd 9a 6d d2 71 6d ┆ 3g 9g*å7" 7 4n ,'! q f m qm┆ 0x043960…043980 2a 7f 37 7c b5 c8 21 a0 6c e5 21 1e 6c e5 c3 ab 26 3a 7a 37 b7 c4 d1 6d 2a 7f 37 7c b5 ca 84 6d ┆* 7ø ! l ! l &:z7 m* 7ø m┆ 0x043980…0439a0 2b 22 7f 37 3a 81 37 b4 b5 c2 51 6d c9 cd 38 1d 3a 7b 37 b7 fa bd 4c c3 59 4c cd 19 33 cd c8 20 ┆+" 7: 7 Qm 8 :æ7 L YL 3 ┆ 0x0439a0…0439c0 cd 84 6e 11 f7 72 cd 9e 6f da b2 6d cd 84 6e c3 cb 6d cd 88 45 cd 2c 27 cd 8d 6d d2 a3 6d 3a 7b ┆ n r o m n m E ,' m m:æ┆ 0x0439c0…0439e0 37 b7 f5 cc 39 67 f1 c4 33 67 37 f5 cd f2 20 f1 c9 3a 7b 37 b7 3a 79 37 cc 2b 6e 3a 7c 37 b7 f5 ┆7 9g 3g7 :æ7 :y7 +n:ø7 ┆ 0x0439e0…043a00 cc 24 6e f1 c4 9e 6e d2 fb 6d 3a 7b 37 b7 c0 3a 79 37 2a 8d 39 cd 3f 17 c3 88 45 cd a9 64 3a 79 ┆ $n n m:æ7 :y7* 9 ? E d:y┆ 0x043a00…043a20 (18, 0, 2) ff 55 4d 4e 02 46 ff 00 20 54 41 42 20 41 54 20 43 4f 4c 00 20 43 4c 45 41 52 02 2e ff 02 2f ff ┆ UMN F TAB AT COL CLEAR . / ┆ 0x043a20…043a40 3b 20 41 20 66 6f 72 20 61 6c 6c 29 3f 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆; A for all)? ┆ 0x043a40…043a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 cd c2 24 3f 6c cd b1 1b cd a5 1e d6 31 d8 3c fe 0a ┆ $?l 1 < ┆ 0x043a60…043a80 d0 32 29 02 c9 21 77 38 7e 36 00 b7 c2 71 6d 36 02 c3 2b 29 21 88 37 11 41 6c cd b3 6d c8 32 26 ┆ 2) !w8ü6 qm6 +)! 7 Al m 2&┆ 0x043a80…043aa0 37 32 24 37 3c 3c 3c 21 28 37 be d8 77 c9 21 8e 37 11 43 6c cd b3 6d c8 fe 02 d2 9f 6d 3e 02 3c ┆72$7<<<!(7 w ! 7 Cl m m> <┆ 0x043aa0…043ac0 32 28 37 3d 3d 3d 21 24 37 be d0 77 21 26 37 be d0 77 c9 cd 7a 6f cd 2b 29 3d fe ff c0 78 fe 1b ┆2(7===!$7 w!&7 w zo +)= x ┆ 0x043ac0…043ae0 ca c5 6d af c9 2a 22 71 7c b7 7d ca d4 6d 3e ff f2 d4 6d 3c fe ef d8 3e ef fe ff c9 21 20 02 c3 ┆ m *"qø å m> m< > ! ┆ 0x043ae0…043b00 06 6e 21 21 02 c3 78 17 21 22 02 c3 78 17 21 23 02 c3 78 17 21 24 02 c3 78 17 21 25 02 cd 78 17 ┆ n!! x !" x !# x !$ x !% x ┆ 0x043b00…043b20 c3 19 33 21 26 02 cd 2b 29 c3 78 17 3a 27 02 b7 21 28 02 c2 fd 6d 21 fd 39 22 07 38 c9 11 45 6c ┆ 3!& +) x :' !( m! 9" 8 El┆ 0x043b20…043b40 21 94 37 cd 7f 6f cd b6 6d c8 5f 7a fe 23 ca 36 6e 16 01 c3 5f 6e 16 07 c3 5f 6e cd 2b 29 01 79 ┆! 7 o m _z # 6n _n _n +) y┆ 0x043b40…043b60 00 21 09 36 cd 08 17 c3 81 6e 11 47 6c 21 94 37 0e 41 cd 81 6f da 3b 6e cd b6 6d c8 5f 16 00 f5 ┆ ! 6 n Gl! 7 A o ;n m _ ┆ 0x043b60…043b80 e5 7b cd d4 6d b7 1f f5 21 09 36 cd 3f 17 f1 1e 0f da 7a 6e eb 29 29 29 29 eb 7b 2f a6 b2 77 e1 ┆ æ m ! 6 ? zn )))) æ/ w ┆ 0x043b80…043ba0 f1 f5 e5 1e f2 21 81 36 2b 1d 1d ca 99 6e 7e b7 ca 88 6e e6 0f c2 99 6e 1d 7b 32 08 36 e1 f1 c3 ┆ ! 6+ nü n n æ2 6 ┆ 0x043ba0…043bc0 2b 29 cd 8f 67 cd 13 6f da ea 6e 2b cd de 45 21 b6 71 cd c8 66 cd 37 6f 2a 66 71 eb 2a 26 37 cd ┆+) g o n+ E! q f 7o*fq *&7 ┆ 0x043bc0…043be0 2c 17 eb 2a 28 37 19 eb 2a 64 71 19 7c b7 fa ea 6e cd d3 5b 7d b7 ca ea 6e e5 21 b6 71 cd 17 67 ┆, *(7 *dq ø n Æå n ! q g┆ 0x043be0…043c00 e1 3e 20 cd 6b 46 2d c2 e1 6e 21 b2 71 c3 17 67 cd 8f 67 cd 13 6f da 10 6f 2b cd 88 45 cd 34 6f ┆ > kF- n! q g g o o+ E 4o┆ 0x043c00…043c20 (18, 0, 3) 9a 0f 01 14 00 00 00 00 a4 7e ca 03 00 00 00 c9 c3 24 7a c9 c5 d5 e5 cd de 6e 2b 2b cd 51 17 e3 ┆ ü $z n++ Q ┆ 0x043c20…043c40 73 23 72 2b e3 cd c2 16 e1 e5 23 23 73 23 72 c3 5b 1a c5 d5 e5 e5 2b 2b cd de 6e e1 e5 cd 51 17 ┆s#r+ ##s#r Æ ++ n Q ┆ 0x043c40…043c60 eb e3 23 72 2b 73 e3 cd e1 16 e1 2b 72 2b 73 c3 5b 1a d5 e5 cd 51 17 cd 35 17 e1 d1 c9 9b 00 00 ┆ #r+s +r+s Æ Q 5 ┆ 0x043c60…043c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x3…] 0x043ce0…043d00 c3 01 7b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ æ ┆ 0x043d00…043d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x043d20…043d40 00 00 00 00 e1 31 67 7c e5 2a 06 00 22 67 7c 2a 01 00 22 69 7c e5 11 6b 7c cd 71 7b e1 11 fd ff ┆ 1gø * "gø* "iø kø qæ ┆ 0x043d40…043d60 19 01 39 00 11 6f 7c cd 74 7b 11 b6 79 cd d3 7b ca 83 7a cd de 7b ca 83 7a da 83 7a 01 21 00 11 ┆ 9 oø tæ y æ z æ z z ! ┆ 0x043d60…043d80 5c 00 21 13 79 cd 74 7b 01 80 00 11 80 00 21 34 79 cd 74 7b cd 40 7b 11 80 00 cd c5 7b 1a cd 00 ┆Ø ! y tæ !4y tæ @æ æ ┆ 0x043d80…043da0 01 3e 00 31 65 7c b7 f5 2a 67 7c 22 06 00 2a 69 7c 22 01 00 eb 21 06 00 19 e5 21 6b 7c cd 6c 7b ┆ > 1eø *gø" *iø" ! !kø læ┆ 0x043da0…043dc0 d1 21 78 7c cd 6c 7b 06 00 11 aa 7c cd d3 7b c2 c8 7a 21 d8 7c cd 7f 7b cd a6 7b 21 e4 7c cd 7f ┆ !xø læ ø æ z! ø æ æ! ø ┆ 0x043dc0…043de0 7b 04 cd d3 7b ca 09 7c c5 cd de 7b c1 ca 15 7c da 0f 7c 24 3a d2 7c bc d2 15 7c 2a ce 7c 3a d0 ┆æ æ ø æ ø ø$: ø ø* ø: ┆ 0x043de0…043e00 7c be c2 1b 7c 3e 20 32 5d 00 f1 c0 04 05 c0 f5 21 d6 7c cd 7f 7b cd a6 7b 21 e4 7c cd 7f 7b f1 ┆ø ø> 2Å ! ø æ æ! ø æ ┆ 0x043e00…043e20 (18, 0, 4) 25 cd bd 1a cd ca 24 f1 e3 c5 4f e5 2a 2b 02 e3 e5 cd 19 33 2a 1d 37 22 ac 38 2a ac 38 cd 4f 21 ┆% $ O *+ 3* 7" 8* 8 O!┆ 0x043e20…043e40 cd a5 24 e1 e5 06 14 cd 72 23 2b 77 23 cd b0 24 7e b7 ca 50 6e cd 7e 6e da 64 6e b7 c2 64 6e 47 ┆ $ r#+w# $ü Pn ün dn dnG┆ 0x043e40…043e60 e1 e5 cd 12 18 79 3d cc ba 18 ca 76 6e 78 fe ff f5 cd a5 24 f1 e1 e3 f5 7d 21 2b 02 be c4 84 29 ┆ y= vnx $ å!+ )┆ 0x043e60…043e80 f1 e1 c1 c9 cd b7 1a 65 3a e1 e5 cd e5 1a cd ba 24 67 3a c3 1a 6e cd ba 24 69 3a c3 1a 6e c5 d5 ┆ e: $g: n $i: n ┆ 0x043e80…043ea0 d5 af 0e 10 12 13 0d c2 84 6e d1 d5 cd ef 6e 12 13 0e 08 cd b5 6e fe 2e c2 9c 6e 23 0e 03 cd b5 ┆ n n n . n# ┆ 0x043ea0…043ec0 6e d1 13 1a 1b fe 20 ca b1 6e cd 7e 17 b7 d1 c1 c9 37 d1 c1 c9 cd d3 6e ca c8 6e 12 13 0d c2 b5 ┆n n ü 7 n n ┆ 0x043ec0…043ee0 6e cd d3 6e c2 c1 6e c9 f5 3e 20 12 13 0d c2 c9 6e f1 c9 7e cd de 6e c8 23 cd e2 17 b7 c9 fe 2e ┆n n n > n ü n # .┆ 0x043ee0…043f00 c8 fe 3a c8 fe 2a c8 fe 3f c8 fe 20 d0 bf c9 cd 7e 17 23 7e 2b fe 3a c2 07 6f 7e cd d8 17 d2 07 ┆ : * ? ü #ü+ : oü ┆ 0x043f00…043f20 6f d6 40 23 23 b7 c9 cd 76 19 37 c9 e5 cd f1 24 2a 1d 37 26 00 cd 4f 21 62 6b cd d0 1a cd a5 24 ┆o @## v 7 $* 7& O!bk $┆ 0x043f20…043f40 e1 e5 06 05 cd 5d 23 cd 7e 17 d5 cd 3c 6f cd 7e 17 b7 eb d1 c2 10 6f e3 e1 c3 b0 24 11 00 00 7e ┆ Å# ü <o ü o $ ü┆ 0x043f40…043f60 fe 3a d0 d6 30 d8 23 e5 62 6b 19 29 19 29 dc 5d 6f 5f 16 00 19 dc 5d 6f eb e1 c3 3f 6f 21 ff ff ┆ : 0 # bk ) ) Åo_ Åo ?o! ┆ 0x043f60…043f80 c9 2a 7f 39 eb 2a 91 39 cd 2c 17 11 21 27 cd 68 17 3f d0 21 ef 39 22 07 38 c9 9b 00 00 00 00 00 ┆ * 9 * 9 , !' h ? ! 9" 8 ┆ 0x043f80…043fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x3…] 0x044000…044020 (18, 0, 5) 37 2a 8d 39 cd 3f 17 cd de 45 2a 77 39 eb 13 21 4d 37 cd 63 6e eb 1b cd ae 49 3a 7b 37 b7 3a 4c ┆7* 9 ? E*w9 !M7 cn I:æ7 :L┆ 0x044020…044040 37 c4 2b 6e cd 49 0b cc 1f 31 c9 2a 8b 39 cd 46 17 c3 88 45 c5 e5 21 2b 37 11 f7 72 3a 82 37 b7 ┆7 +n I 1 * 9 F E !+7 r: 7 ┆ 0x044040…044060 c2 49 6e cd 63 6e c3 5b 6e 13 cd 63 6e 3e 13 2b 77 12 13 af 12 79 3c 3c 2b 77 23 eb 79 32 79 37 ┆ In cn Æn cn> +w y<<+w# y2y7┆ 0x044060…044080 e1 c1 c9 0e 00 d5 7e b7 ca 7e 6e fe 0e c2 77 6e 3e 0d 12 13 0c 3e 0a 12 23 13 0c c3 66 6e 12 e1 ┆ ü ün wn> > # fn ┆ 0x044080…0440a0 2b 71 23 c9 3a 82 37 b7 c8 3a 7b 37 b7 c2 96 6e cd c4 4d c3 99 6e cd 5f 4d 3f d0 c3 88 45 21 20 ┆+q# : 7 :æ7 n M n _M? E! ┆ 0x0440a0…0440c0 6c 22 a4 38 cd a0 32 cd 87 27 cd 27 31 cd c9 6e f6 40 fe 59 f5 ca ba 6e 3e 4e 21 21 37 b6 cd a5 ┆l" 8 2 ' '1 n @ Y n>N!!7 ┆ 0x0440c0…0440e0 1e cd ad 20 f1 37 c0 b7 c9 2a 72 39 7e cd b4 20 cd 27 25 cd ad 20 2a a6 38 cd 4f 21 cd 2d 25 c2 ┆ 7 *r9ü '% * 8 O! -% ┆ 0x0440e0…044100 eb 6e cd 62 21 cd 4f 21 c3 c9 6e cd 2c 27 cd b1 1b c3 e2 17 b7 d8 cd 7e 17 cd cd 17 cd e2 17 b7 ┆ n b! O! n ,' ü ┆ 0x044100…044120 c8 11 f5 6e d5 cd 97 6f da 6f 6f 23 fe 3f c2 18 6f cd ba 24 bf 39 37 c9 fe 42 ca 22 6f fe 2d c2 ┆ n o oo# ? o $ 97 B "o - ┆ 0x044120…044140 28 6f 3e ff 32 7b 37 c9 fe 47 c2 36 6f 3e ff 32 84 37 32 81 37 c9 fe 4e c2 40 6f af 32 7c 37 c9 ┆(o> 2æ7 G 6o> 2 72 7 N @o 2ø7 ┆ 0x044140…044160 fe 57 c2 4b 6f 3e ff 32 82 37 c9 fe 55 c2 56 6f 3e ff 32 83 37 c9 f5 3e 09 cd 34 1e cd b7 1a 22 ┆ W Ko> 2 7 U Vo> 2 7 > 4 "┆ 0x044160…044180 6c f1 cd a5 1e cd b7 1a 24 6c cd ca 24 37 c9 11 00 00 7e cd 97 6f d0 23 e5 62 6b 19 29 19 29 dc ┆l $l $7 ü o # bk ) ) ┆ 0x044180…0441a0 93 6f d6 30 5f 16 00 19 dc 93 6f 22 7d 37 eb e1 c3 72 6f 21 ff ff c9 fe 30 3f d0 fe 3a c9 3a 7b ┆ o 0_ o"å7 ro! 0? : :æ┆ 0x0441a0…0441c0 37 b7 fa b6 6f 21 8d 39 cd cc 6f 2a 8d 39 d8 cd de 6f d8 c3 88 45 21 89 39 cd cc 6f 2a 8b 39 d8 ┆7 o! 9 o* 9 o E! 9 o* 9 ┆ 0x0441c0…0441e0 1b 1a 13 cd 46 17 cd 06 70 c3 b2 6f cd 08 4b 03 1b 1a 13 c5 47 79 90 c1 4f 78 de 00 47 c9 1a b7 ┆ F p o K Gy Ox G ┆ 0x0441e0…044200 c8 d5 cd 2d 70 da 04 70 05 0d e5 13 1a b7 ca 03 70 be 23 ca eb 6f 2b cd 57 70 23 ca eb 6f e1 d1 ┆ -p p p # o+ Wp# o ┆ 0x044200…044220 (18, 0, 6) 3a 64 71 cd 7e 6d 3a 66 71 3d cd 98 6d cd 2b 29 c3 ea 6e cd 54 4d e5 2a 50 71 22 64 71 e1 cd ad ┆:dq üm:fq= m +) n TM *Pq"dq ┆ 0x044220…044240 67 d8 e6 7f cd 87 17 37 c8 cd be 67 cd ac 17 ca 16 6f b7 c9 16 0c fe 16 00 2a 64 71 22 50 71 cd ┆g 7 g o *dq"Pq ┆ 0x044240…044260 54 4d e5 2a 50 71 22 66 71 e1 3a 50 71 5f cd ad 67 d8 e6 7f cd 87 17 c8 cd be 67 cd ac 17 ca 4a ┆TM *Pq"fq :Pq_ g g J┆ 0x044260…044280 6f 14 15 ca 42 6f d5 fe 21 cc 31 6e fe 23 cc 36 6e fe 2d cc 5d 6e d1 c3 42 6f 0e 80 c3 81 6f 0e ┆o Bo ! 1n # 6n - Ån Bo o ┆ 0x044280…0442a0 81 d5 e5 e1 d1 d5 e5 cd 21 25 eb cd d0 1a eb cd a5 24 06 04 cd 5d 23 47 79 fe 81 c2 af 6f 16 00 ┆ !% $ Å#Gy o ┆ 0x0442a0…0442c0 cd 7e 17 fe 23 ca ad 6f fe 21 c2 af 6f 57 23 cd 7e 17 cd e2 17 b9 37 ca cd 6f d5 cd d1 6f cd 7e ┆ ü # o ! oW# ü 7 o o ü┆ 0x0442c0…0442e0 17 b2 7b d1 c2 83 6f fe f1 d2 83 6f b7 e1 e3 e1 c9 11 00 00 7e fe 3a d0 d6 30 d8 23 e5 62 6b 19 ┆ æ o o ü : 0 # bk ┆ 0x0442e0…044300 29 19 29 cd 3f 17 eb e1 c3 d4 6f 9b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆) ) ? o ┆ 0x044300…044320 9a 0e 01 14 00 00 00 00 4f 70 06 00 00 c3 f7 6c e7 00 0a 00 0c 00 17 00 21 00 2f 00 0f 0f 0e 00 ┆ Op l ! / ┆ 0x044320…044340 0e 13 20 43 4f 4d 4d 41 4e 44 3f 20 00 89 20 57 48 41 54 3f 3f 3f 20 0e 00 89 20 19 20 4e 4f 54 ┆ COMMAND? WHAT??? NOT┆ 0x044340…044360 20 46 4f 55 4e 44 20 0e 00 0e 20 45 6e 74 65 72 20 6e 61 6d 65 20 6f 66 20 70 72 6f 67 72 61 6d ┆ FOUND Enter name of program┆ 0x044360…044380 20 79 6f 75 20 77 69 73 68 20 74 6f 20 52 75 6e 2c 09 09 0e 20 6f 70 74 69 6f 6e 61 6c 6c 79 20 ┆ you wish to Run, optionally ┆ 0x044380…0443a0 66 6f 6c 6c 6f 77 65 64 20 62 79 20 61 70 70 72 6f 70 72 69 61 74 65 20 61 72 67 75 6d 65 6e 74 ┆followed by appropriate argument┆ 0x0443a0…0443c0 73 2e 09 0e 20 20 20 20 45 78 61 6d 70 6c 65 20 28 73 68 6f 77 73 20 64 69 73 6b 20 73 70 61 63 ┆s. Example (shows disk spac┆ 0x0443c0…0443e0 65 29 3a 20 20 20 20 20 53 54 41 54 09 0e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆e): STAT ┆ 0x0443e0…044400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3a 00 38 b7 ca 05 6d 21 8b ┆ : 8 m! ┆ 0x044400…044420 (18, 0, 7) c9 f5 79 fe 00 ca 81 7a fe 0a ca 14 7b f1 e5 2a 67 7c e3 c9 3e ff 32 6e 7c f1 cd 0e 7b f5 af 32 ┆ y z æ *gø > 2nø æ 2┆ 0x044420…044440 6e 7c f1 c9 cd 78 7c f5 fe 03 c2 22 7b 3a 6e 7c b7 ca 22 7b 31 65 7c 21 e6 7c cd 7f 7b c3 81 7a ┆nø xø "æ:nø "æ1eø! ø æ z┆ 0x044440…044460 21 e0 79 22 06 00 2a 01 00 eb 21 3d 7b e5 d5 cd 6c 7b d1 21 06 00 19 eb 21 69 7b cd 6c 7b 21 72 ┆! y" * !=æ læ ! !iæ læ!r┆ 0x044460…044480 7c 22 01 00 eb e1 c3 71 7b c3 24 7b 3a d3 7c b7 c0 01 03 00 78 b1 c8 7e 12 23 13 0b c3 74 7b d5 ┆ø" qæ $æ: ø x ü # tæ ┆ 0x044480…0444a0 5e 23 56 2b 19 d1 7e 23 fe 1a ca 95 7b b7 c8 cd a0 7b c3 86 7b e5 21 95 7e cd 86 7b e1 c3 86 7b ┆^#V+ ü# æ æ æ ! ü æ æ┆ 0x0444a0…0444c0 4f 3e 09 c3 ac 7b af 32 6e 7c 3e 06 c5 d5 e5 2a 01 00 5f 16 00 19 79 cd be 7b e1 d1 c1 c9 e9 eb ┆O> æ 2nø> * _ y æ ┆ 0x0444c0…0444e0 cd c5 7b 1a eb e3 c5 4e 23 d5 e5 cd 05 00 e1 d1 c1 e3 c9 c5 21 80 00 cd bf 7b 0f c1 3c c9 21 20 ┆ æ N# ! æ < ! ┆ 0x0444e0…044500 00 19 36 00 21 00 01 06 00 cd bf 7b 14 3d ca 04 7c 04 d5 11 80 00 19 11 93 78 7c ba d1 da e9 7b ┆ 6 ! æ = ø xø æ┆ 0x044500…044520 37 3e 35 c9 78 b7 3e 34 c9 21 da 7c c3 1e 7c 21 dc 7c c3 1e 7c 21 de 7c c3 1e 7c 21 e0 7c e5 21 ┆7>5 x >4 ! ø ø! ø ø! ø ø! ø !┆ 0x044520…044540 e2 7c cd 7f 7b e1 cd 7f 7b 21 e8 7c cd 7f 7b cd a6 7b c3 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ø æ æ! ø æ æ ┆ 0x044540…044560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x3…] 0x0445c0…0445e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c1 01 14 00 38 00 64 00 83 00 a7 00 ┆ 8 d ┆ 0x0445e0…044600 c6 00 f5 00 f5 00 f6 00 f9 00 0d 0a 48 69 74 20 61 6e 79 20 6b 65 79 20 74 6f 20 72 65 74 75 72 ┆ Hit any key to retur┆ 0x044600…044620 (18, 0, 8) 9a 01 04 14 00 00 00 00 e9 6b 0a 00 00 c3 35 4f c3 13 4b c9 6a 00 14 00 18 00 1d 00 1f 00 22 00 ┆ k 5O K j " ┆ 0x044620…044640 26 00 2c 00 34 00 00 00 38 00 50 41 47 45 5c 00 20 4c 49 4e 45 5c 00 46 43 3d 00 20 46 4c 3d 00 ┆& , 4 8 PAGEØ LINEØ FC= FL= ┆ 0x044640…044660 20 43 4f 4c 5c 00 4d 41 52 5c 52 45 4c 00 49 4e 53 45 52 54 5c 4f 4e 00 64 65 63 69 6d 61 6c 00 ┆ COLØ MARØREL INSERTØON decimal ┆ 0x044660…044680 4c 49 4e 45 5c 53 50 41 43 49 4e 47 5c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 59 00 ┆LINEØSPACINGØ Y ┆ 0x044680…0446a0 3d 3e f9 08 fa fb 36 38 f5 cd 71 4e ca b2 45 da b5 45 c5 d5 e5 eb 2a 8d 39 eb cd 35 17 22 8d 39 ┆=> 68 qN E E * 9 5 " 9┆ 0x0446a0…0446c0 d5 60 69 1e 00 cd 3c 4e cd 06 4e d1 cd 9a 46 e1 d1 c1 f1 b7 c9 c5 d5 e5 eb 2a 8b 39 cd 35 17 eb ┆ `i <N N F * 9 5 ┆ 0x0446c0…0446e0 cd e6 48 2a 8d 39 eb c5 cd e1 16 22 8b 39 eb 22 8d 39 e1 1e 00 cd 06 4e cd 8f 49 c3 af 45 f5 c5 ┆ H* 9 " 9 " 9 N I E ┆ 0x0446e0…044700 d5 e5 eb 2a 8d 39 eb 22 8d 39 cd 2c 17 1e 00 cd 18 46 cd 48 4e 03 03 03 0a b7 fa 0d 46 0b 0b 0a ┆ * 9 " 9 , F HN F ┆ 0x044700…044720 95 02 03 0a 9c 02 03 0a 9b 02 fc 62 46 03 15 c2 f5 45 cd 0c 4a c3 af 45 7c b5 c0 e1 c3 af 45 f5 ┆ bF E J Eø E ┆ 0x044720…044740 c5 d5 e5 eb 2a 8b 39 cd 35 17 eb 22 8b 39 cd e6 48 1e 00 60 69 cd 18 46 cd 48 4e 03 d5 0a 57 03 ┆ * 9 5 " 9 H `i F HN W ┆ 0x044740…044760 0a b2 57 03 0a b2 d1 ca 4f 46 0a b7 f2 57 46 0b 0b cd 17 4e f4 62 46 03 15 c2 3b 46 cd 8f 49 c3 ┆ W OF WF N bF ;F I ┆ 0x044760…044780 12 46 0b 0b af 02 03 02 03 02 c9 f5 c5 d5 e5 f5 cd db 49 f1 2a 8b 39 77 23 22 8b 39 2b 01 01 00 ┆ F I * 9w#" 9+ ┆ 0x044780…0447a0 cd b0 46 60 69 1e 00 cd 18 46 cd 3c 4e c3 38 46 f5 c5 d5 e5 cd 9a 46 c3 83 46 f5 c5 d5 e5 2a 8b ┆ F`i F <N 8F F F * ┆ 0x0447a0…0447c0 39 e5 c5 eb cd c2 16 eb 22 8b 39 c1 e1 c3 b4 46 f5 c5 d5 e5 af 32 08 71 eb 78 b1 ca ab 32 3a 96 ┆9 " 9 F 2 q x 2: ┆ 0x0447c0…0447e0 03 b7 2a 89 39 cd 2c 17 1b 3a 27 02 2f b7 cc bc 47 ca ec 46 7c b5 ca 04 47 1a e6 7f fe 0a ca 04 ┆ * 9 , :' / G Fø G ┆ 0x0447e0…044800 47 fe 0c ca 04 47 1b 03 23 c3 d4 46 2a 89 39 2b eb 09 cd 35 17 21 00 00 22 04 71 22 06 71 22 02 ┆G G # F* 9+ 5 ! " q" q" ┆ 0x044800…044820 (18, 0, 9) c3 de 6f d1 d1 c9 1a b7 c8 23 d5 1a cd 42 70 da 04 70 05 0d e5 13 23 1a b7 ca 26 70 be ca 15 70 ┆ o # Bp p # &p p┆ 0x044820…044840 cd 57 70 ca 15 70 e1 d1 b7 c2 0a 70 c9 04 0c c3 38 70 be c4 57 70 23 c8 0d c2 32 70 05 c2 32 70 ┆ Wp p p 8p Wp# 2p 2p┆ 0x044840…044860 37 c9 04 0c c3 4d 70 2b be c4 57 70 c8 0d c2 47 70 05 c2 47 70 37 c9 ae fe 80 c2 60 70 ae bf c9 ┆7 Mp+ Wp Gp Gp7 `p ┆ 0x044860…044880 fe 20 ca 6a 70 fe a0 c2 88 70 ae fe 41 da 89 70 c5 47 e6 df fe 5b d2 84 70 3a 83 37 b7 ca 84 70 ┆ jp p A p G Æ p: 7 p┆ 0x044880…0448a0 78 c1 bf c9 78 c1 b7 c9 ae fe 1e ca ba 70 d0 fe 13 ca aa 70 fe 01 c8 fe 0f c0 13 1a 1b b7 c8 ae ┆x x p p ┆ 0x0448a0…0448c0 e6 7f 3e 0f ca b8 70 13 bf c9 7e e6 7f cd 97 6f d4 d8 17 3e 13 d2 a8 70 b7 c9 7e e6 7f fe 1f 3e ┆ > p ü o > p ü >┆ 0x0448c0…0448e0 1e c9 9b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x0448e0…044900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x044900…044920 9a 11 01 14 00 00 00 00 ed 6d 00 00 00 c3 c6 6c c3 d2 6c c3 d8 6c c3 ea 6c c3 28 6c c3 3a 6c c3 ┆ m l l l l (l :l ┆ 0x044920…044940 88 6c c3 99 6c c3 ec 6d cd 54 4d cd 62 4d da 37 6c cd a0 17 c2 2b 6c cd de 45 cd 37 63 cd b7 4d ┆ l l m TM bM 7l +l E 7c M┆ 0x044940…044960 cd c7 4d da 4d 6c cd a0 17 c2 40 6c 23 cd 1f 46 2a 2b 71 3a 69 38 4f 11 fc ff 7e e6 60 ca 6f 6c ┆ M Ml @l# F*+q:i8O ü ` ol┆ 0x044960…044980 79 cd e8 5c ca 6f 6c fa 6f 6c 0d 19 c3 5a 6c 7e e6 7e 77 79 cd e8 5c c2 85 6c 44 4d 32 1e 71 19 ┆y Ø ol ol Zlü üwy Ø lDM2 q ┆ 0x044980…0449a0 36 00 cd 91 52 c3 91 66 cd 54 4d cd 62 4d d8 cd 9a 17 c8 cd a0 64 c3 8b 6c 3a 4d 71 f5 2a 24 37 ┆6 R f TM bM d l:Mq *$7┆ 0x0449a0…0449c0 cd 6e 65 da b3 6c 2a 28 37 2b 2b 2b cd ae 68 eb da b6 6c 2a 26 37 22 24 37 f1 32 4d 71 21 ae 71 ┆ ne l*(7+++ h l*&7"$7 2Mq! q┆ 0x0449c0…0449e0 cd c8 66 c3 2b 29 2a 82 38 22 75 38 21 7f 38 c3 78 17 21 4e 61 c3 db 6c 21 0d 61 22 78 38 3e ff ┆ f +)* 8"u8! 8 x !Na l! a"x8> ┆ 0x0449e0…044a00 32 7f 38 21 00 00 22 75 38 c9 3a 96 38 b7 c0 2a 5e 71 eb 3a 5d 71 fe 1e c2 fc 6c 1c 01 ba 71 cd ┆2 8! "u8 : 8 *^q :Åq l q ┆ 0x044a00…044a20 (18, 0, 10) 3a 22 07 38 c9 cd 70 2f 11 a5 7e cd 68 17 21 8d 3a d2 01 6d af 32 59 38 cd 82 33 0f 00 21 aa 7c ┆:" 8 p/ ü h ! : m 2Y8 3 ! ø┆ 0x044a20…044a40 e5 01 21 00 cd 08 17 d1 d5 13 01 0b 00 21 e7 03 cd c2 16 d1 d5 cd 98 18 21 8f 3a d1 ca 01 6d 21 ┆ ! ! ! : m!┆ 0x044a40…044a60 95 7e cd 12 18 21 10 01 22 ce 7c 7e 32 d0 7c 21 81 38 22 d1 7c cd 08 25 3a 18 37 fe 02 21 1a 6c ┆ ü ! " øü2 ø! 8" ø %: 7 ! l┆ 0x044a60…044a80 d4 cc 1a cd b3 24 3a 99 38 32 9b 38 cd 7f 24 cd 21 25 cd ba 24 12 6c cd 21 25 cd b7 1a 14 6c cd ┆ $: 82 8 $ !% $ l !% l ┆ 0x044a80…044aa0 a5 24 21 51 70 06 4d cd 5d 23 cd 90 1e cd 7e 17 b7 c8 11 b6 79 cd 0e 6f d2 a3 6d cd b7 1a 16 6c ┆ $!Qp M Å# ü y o m l┆ 0x044aa0…044ac0 c3 77 6d e5 21 bf 79 36 43 23 36 4f 23 36 4d e1 cd ba 18 cc 98 18 c2 c1 6d cd b7 1a 18 6c c3 77 ┆ wm ! y6C#6O#6M m l w┆ 0x044ac0…044ae0 6d e5 11 13 79 cd 92 6e 11 23 79 cd 92 6e af 32 33 79 e1 11 34 79 0e ff d5 13 7e cd e2 17 12 23 ┆m y n #y n 23y 4y ü #┆ 0x044ae0…044b00 0c b7 c2 d9 6d d1 79 12 cd a5 24 21 2b 02 7e f5 af 77 32 9f 38 cd d5 30 f1 77 cd 96 22 cd 71 18 ┆ m y $!+ ü w2 8 0 w " q ┆ 0x044b00…044b20 2a 06 00 11 fa ff 19 11 da 79 01 06 00 cd c2 16 01 03 00 09 eb 09 eb 01 41 00 cd c2 16 cd 70 2f ┆* y A p/┆ 0x044b20…044b40 eb d5 01 13 00 21 20 02 cd c2 16 01 99 01 21 01 36 cd c2 16 21 a4 7e 11 da 79 cd 2c 17 eb e1 2b ┆ ! ! 6 ! ü y , +┆ 0x044b40…044b60 2b cd 2c 17 2e 00 e5 21 da 79 11 13 79 cd 2c 17 eb e1 cd 2c 17 e5 21 e0 79 11 13 79 cd 35 17 e1 ┆+ , . ! y y , , ! y y 5 ┆ 0x044b60…044b80 eb cd c2 16 d5 d5 21 35 7c 11 e0 79 cd 35 17 e1 e5 c5 cd 83 6f ef 6f e1 d1 19 e5 21 a4 7e 11 35 ┆ !5ø y 5 o o ! ü 5┆ 0x044b80…044ba0 7c cd 35 17 e1 eb cd c2 16 21 09 01 e3 11 44 00 19 e9 c5 d5 d5 af 0e 10 12 13 0d c2 98 6e d1 d5 ┆ø 5 ! D n ┆ 0x044ba0…044bc0 cd 66 6f 12 13 0e 08 cd c9 6e fe 2e c2 b0 6e 23 0e 03 cd c9 6e d1 13 1a 1b fe 20 ca c5 6e cd 7e ┆ fo n . n# n n ü┆ 0x044bc0…044be0 17 b7 d1 c1 c9 37 d1 c1 c9 cd f8 6e ca e9 6e fe 2a ca e1 6e 12 13 0d c2 c9 6e cd f8 6e c2 da 6e ┆ 7 n n * n n n n┆ 0x044be0…044c00 c9 3e 3f cd f1 6e c3 da 6e f5 3e 20 cd f1 6e f1 c9 12 13 0d c2 f1 6e c9 7e cd 03 6f c8 23 cd e2 ┆ >? n n > n n ü o # ┆ 0x044c00…044c20 (18, 0, 11) 6e 20 74 6f 20 57 6f 72 64 53 74 61 72 3a 20 00 0d 0a 52 65 70 6c 61 63 65 20 64 69 73 6b 65 74 ┆n to WordStar: Replace disket┆ 0x044c20…044c40 74 65 20 77 69 74 68 20 66 69 6c 65 20 1a 2c 20 68 69 74 20 61 6e 79 20 6b 65 79 3a 20 00 20 2a ┆te with file , hit any key: *┆ 0x044c40…044c60 2a 2a 20 66 69 6c 65 20 1a 20 73 74 69 6c 6c 20 6e 6f 74 20 66 6f 75 6e 64 20 2a 2a 2a 20 00 20 ┆** file still not found *** ┆ 0x044c60…044c80 2a 2a 2a 20 66 69 6c 65 20 1a 20 62 61 64 20 28 74 6f 6f 20 62 69 67 20 3f 3f 21 40 26 2a 29 20 ┆*** file bad (too big ??!@&*) ┆ 0x044c80…044ca0 2a 2a 2a 20 00 20 2a 2a 2a 20 66 69 6c 65 20 1a 20 62 61 64 20 28 74 6f 6f 20 73 68 6f 72 74 29 ┆*** *** file bad (too short)┆ 0x044ca0…044cc0 20 2a 2a 2a 20 00 20 2a 2a 2a 20 1a 20 66 6f 75 6e 64 20 69 73 20 62 61 64 20 6f 72 20 69 6e 63 ┆ *** *** found is bad or inc┆ 0x044cc0…044ce0 6f 6d 70 61 74 69 62 6c 65 20 76 65 72 73 69 6f 6e 20 2a 2a 2a 20 00 0d 0a 0d 0a 00 5e 43 0d 0a ┆ompatible version *** ^C ┆ 0x044ce0…044d00 00 0d 0a 0d 0a 20 43 61 6e 6e 6f 74 20 72 65 74 75 72 6e 20 74 6f 20 57 6f 72 64 53 74 61 72 2e ┆ Cannot return to WordStar.┆ 0x044d00…044d20 20 0d 0a 20 52 65 70 6c 61 63 65 20 73 79 73 74 65 6d 20 64 69 73 6b 20 28 69 66 20 72 65 6d 6f ┆ Replace system disk (if remo┆ 0x044d20…044d40 76 65 64 29 2c 20 0d 0a 20 48 69 74 20 61 6e 79 20 6b 65 79 20 74 6f 20 72 65 74 75 72 6e 20 74 ┆ved), Hit any key to return t┆ 0x044d40…044d60 6f 20 4f 70 65 72 61 74 69 6e 67 20 53 79 73 74 65 6d 3a 20 00 00 00 00 00 00 00 00 00 00 00 00 ┆o Operating System: ┆ 0x044d60…044d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x044d80…044da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 57 53 2e 43 4f 4d 20 20 20 20 20 ┆ WS.COM ┆ 0x044da0…044dc0 20 20 20 00 9b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x044dc0…044de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x1…] 0x044e00…044e20 (18, 0, 12) 71 cd a0 48 78 b1 ca ab 32 0b 13 1a cd 5f 25 ca 75 47 c3 1f 47 78 b1 ca ab 32 0b 13 1a e6 7f fe ┆q Hx 2 _% uG Gx 2 ┆ 0x044e20…044e40 0c ca 6f 47 fe 0a ca 41 47 1a fe 0d c2 15 47 78 b1 ca ab 32 0b 13 1a e6 7f fe 0a c2 1f 47 cd c2 ┆ oG AG Gx 2 G ┆ 0x044e40…044e60 63 2a 02 71 23 22 02 71 2a 06 71 23 22 06 71 3a 27 02 b7 ca 62 47 d5 eb 2a 1c 71 cd 68 17 d1 d2 ┆c* q#" q* q#" q:' bG * q h ┆ 0x044e60…044e80 6a 47 3e 0a cd a7 47 c3 04 47 3e 8a cd a7 47 cd 7f 47 c3 04 47 3a 96 03 b7 c4 ce 47 c3 04 47 d5 ┆jG> G G> G G G: G G ┆ 0x044e80…044ea0 2a 06 71 eb cd 99 47 73 23 72 d1 21 00 00 22 06 71 2a 04 71 23 22 04 71 c9 d5 2a 04 71 26 00 29 ┆* q Gs#r ! " q* q#" q * q& )┆ 0x044ea0…044ec0 eb 2a 00 71 19 d1 c9 eb be eb c8 67 3a 27 02 b7 c8 32 49 71 7c 12 62 6b 2b c3 2f 5c 3a 6c 71 fe ┆ * q g:' 2Iqø bk+ /Ø:lq ┆ 0x044ec0…044ee0 af e5 2a 04 71 b4 b5 2a 06 71 b4 b5 e1 c9 3a 27 02 b7 ca 06 48 cd bc 47 21 ec 47 ca e1 47 21 fc ┆ * q * q :' H G! G G! ┆ 0x044ee0…044f00 47 cd 68 25 da 0a 48 c8 fa 06 48 e9 4c 48 54 48 50 4c 69 48 4d 54 6f 48 4d 42 75 48 43 50 30 48 ┆G h% H H LHTHPLiHMToHMBuHCP0H┆ 0x044f00…044f20 50 41 1c 48 00 e1 cd f0 25 d0 fe 0c ca 7f 47 3e 0a cd a7 47 2a 02 71 23 22 02 71 c9 cd f0 25 d0 ┆PA H % G> G* q#" q % ┆ 0x044f20…044f40 fe 0c ca 0a 48 3e 8a cd a7 47 cd 14 48 c3 7f 47 cd b2 25 da 06 48 cd f0 25 d0 fe 0c ca 0a 48 d5 ┆ H> G H G % H % H ┆ 0x044f40…044f60 eb 2a 06 71 19 eb 2a 1c 71 23 cd 68 17 d1 d2 25 48 c3 0f 48 cd b2 25 da 06 48 c2 06 48 cd f0 25 ┆ * q * q# h %H H % H H %┆ 0x044f60…044f80 d0 67 7d 32 0b 71 c3 91 48 21 0c 71 c3 78 48 21 10 71 c3 78 48 21 18 71 e5 cd b2 25 da 05 48 c2 ┆ gå2 q H! q xH! q xH! q % H ┆ 0x044f80…044fa0 05 48 cd f0 25 d2 64 12 eb e3 57 7b cd 98 48 e1 eb cd b0 48 7c c3 0a 48 c5 4f 3a 0b 71 c3 18 0b ┆ H % d Wæ H Hø H O: q ┆ 0x044fa0…044fc0 c5 d5 21 66 03 11 0b 71 01 11 00 cd c2 16 d1 c1 c5 d5 e5 01 01 00 2a 11 71 eb 2a 19 71 19 eb 2a ┆ !f q * q * q *┆ 0x044fc0…044fe0 0d 71 cd 2c 17 7c b7 f2 cc 48 60 68 3a 0b 71 2f 3c 5f 16 ff 19 d2 de 48 0b 03 19 da d9 48 69 60 ┆ q , ø H`h: q/<_ H Hi`┆ 0x044fe0…045000 22 1c 71 c3 5b 1a f5 c5 d5 e5 09 eb af 32 08 71 78 b1 ca 25 49 0b 1b 1a fe 0a ca 1f 49 fe 8a ca ┆" q Æ 2 qx %I I ┆ 0x045000…045020 (18, 0, 13) 2e 4d cd 32 6d d0 21 b2 71 cd 17 67 2a 61 71 eb cd 54 4d cd 32 6d da 06 6d cd 37 63 21 ba 71 11 ┆.M 2m ! q g*aq TM 2m m 7c! q ┆ 0x045020…045040 a6 71 01 08 00 cd c2 16 cd fb 60 3e ff 32 96 38 37 c9 af 32 63 71 7b b7 c8 cd b9 6d d0 cd d8 6d ┆ q `> 2 87 2cqæ m m┆ 0x045040…045060 c2 36 6d 7b b7 c8 cd b9 6d d0 e5 2a 9c 03 cd e4 6d e1 37 3f c4 d8 17 d2 43 6d cd a7 6d 7b b7 ca ┆ 6mæ m * m 7? Cm mæ ┆ 0x045060…045080 78 6d cd b9 6d d0 cd 90 17 c8 cd d8 6d ca 86 6d cd a7 6d 3e ff 32 63 71 cd b9 6d d0 cd 90 17 c8 ┆xm m m m m> 2cq m ┆ 0x045080…0450a0 cd d8 6d c2 73 6d fe 45 37 c0 3a 63 71 b7 37 c0 cd b9 6d fe 53 ca 9d 6d fe 44 c2 a0 6d cd b9 6d ┆ m sm E7 :cq 7 m S m D m m┆ 0x0450a0…0450c0 fe 2d 37 c4 d8 17 c9 2b c5 01 b2 71 cd 8f 4e 1c eb 22 61 71 eb 1d c1 23 c9 7b b7 ca bf 6d 1d cd ┆ -7 + q N "aq # æ m ┆ 0x0450c0…0450e0 2c 27 15 c8 cd 62 4d 3f d0 e6 7f fe 20 dc 6e 0a da bf 6d cd e2 17 37 c9 e5 2a 9a 03 cd e4 6d e1 ┆,' bM? n m 7 * m ┆ 0x0450e0…045100 c9 be c8 23 34 35 c2 e1 6d fe ff c9 ff 9b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ #45 m ┆ 0x045100…045120 9a 07 01 14 00 04 00 00 eb 6f 33 00 00 c3 4f 6d c3 65 6d c3 74 6d c3 8e 6d c3 1d 6e c3 4a 6e c3 ┆ o3 Om em tm m n Jn ┆ 0x045120…045140 dc 6d c3 e2 6d c3 e8 6d c3 fa 6d c3 03 6e c3 0c 6e c3 a2 6e c3 f0 6e c3 ee 6d c3 f4 6d 12 01 12 ┆ m m m m n n n n m m ┆ 0x045140…045160 00 39 00 73 00 7b 00 cd 00 bf 00 49 00 51 00 30 00 20 45 4e 54 45 52 20 73 70 61 63 65 20 4f 52 ┆ 9 s æ I Q 0 ENTER space OR┆ 0x045160…045180 20 4e 45 57 20 4c 49 4e 45 20 53 50 41 43 49 4e 47 20 28 31 2d 39 29 3a 20 00 20 4c 45 46 54 20 ┆ NEW LINE SPACING (1-9): LEFT ┆ 0x045180…0451a0 4d 41 52 47 49 4e 20 43 4f 4c 55 4d 4e 20 4e 55 4d 42 45 52 02 b8 ff 75 6d 6e 29 3f 20 00 20 28 ┆MARGIN COLUMN NUMBER umn)? (┆ 0x0451a0…0451c0 45 53 43 41 50 45 20 66 6f 72 20 63 75 72 73 6f 72 20 63 6f 6c 00 20 52 49 47 48 54 02 92 ff 00 ┆ESCAPE for cursor col RIGHT ┆ 0x0451c0…0451e0 20 46 6f 72 20 64 65 63 69 6d 61 6c 20 74 61 62 20 73 74 6f 70 20 65 6e 74 65 72 20 22 23 22 20 ┆ For decimal tab stop enter "#" ┆ 0x0451e0…045200 61 6e 64 20 64 65 63 69 6d 61 6c 20 70 6f 69 6e 74 20 63 6f 6c 75 6d 6e 20 0e 20 53 45 54 02 4a ┆and decimal point column SET J┆ 0x045200…045220 (18, 0, 14) 17 b7 c9 fe 2e c8 fe 3a c8 fe 20 d0 bf c9 c5 d5 d5 af 0e 10 12 13 0d c2 14 6f d1 d5 cd 66 6f 12 ┆ . : o fo ┆ 0x045220…045240 13 0e 08 cd 34 6f fe 2e c2 2c 6f 23 0e 03 cd 34 6f c3 b5 6e cd 52 6f ca 47 6f 12 13 0d c2 34 6f ┆ 4o . ,o# 4o n Ro Go 4o┆ 0x045240…045260 cd 52 6f c2 40 6f c9 f5 3e 20 12 13 0d c2 48 6f f1 c9 7e cd 5d 6f c8 23 cd e2 17 b7 c9 fe 2a c8 ┆ Ro @o > Ho ü Åo # * ┆ 0x045260…045280 fe 3f c8 c3 03 6f cd 7e 17 23 7e 2b fe 3a c2 7e 6f 7e cd d8 17 d2 7e 6f d6 40 23 23 b7 c9 cd 76 ┆ ? o ü #ü+ : üoü üo @## v┆ 0x045280…0452a0 19 37 c9 e3 7e 23 e5 66 6f 22 eb 6f e1 23 e3 c5 e5 cd 2c 17 22 ed 6f e1 cd d1 6f cd de 6f 1a d2 ┆ 7 ü# fo" o # , " o o o ┆ 0x0452a0…0452c0 c4 6f e5 6f 13 cd de 6f d2 e8 6f 1a 67 d5 eb 2a ed 6f 19 d1 eb e3 73 23 7a d1 77 e3 2b 7c b5 e3 ┆ o o o o g * o s#z w +ø ┆ 0x0452c0…0452e0 ca cf 6f 7e 77 23 13 e3 2b 7c b5 e3 c2 9b 6f e1 c9 e5 2a eb 6f 46 23 22 eb 6f e1 0e 08 c9 78 17 ┆ oüw# +ø o * oF#" o x ┆ 0x0452e0…045300 47 f5 0d cc d1 6f f1 c9 cd 38 00 0a 48 69 74 60 00 00 00 00 00 00 00 03 06 19 b0 06 db 6d b0 1b ┆G o 8 Hit` m ┆ 0x045300…045320 01 b6 18 0c 61 80 1b 36 36 db 6d 9b 33 66 6d 98 00 6d b6 03 18 c1 98 c6 1b 36 db 60 18 c0 6d 81 ┆ a 66 m 3fm m 6 ` m ┆ 0x045320…045340 b6 00 06 00 18 d9 b3 0c c0 00 c0 60 00 00 c0 00 31 80 c3 00 36 db 6c d9 b6 c3 fd ff ff ff ff ff ┆ ` 1 6 l ┆ 0x045340…045360 ff fd ff ff ff ff ff ff ff ff ff ff ff ff ff 9b 00 00 74 20 66 6f 75 6e 64 20 2a 2a 2a 20 00 20 ┆ t found *** ┆ 0x045360…045380 2a 2a 2a 20 66 69 6c 65 20 1a 20 62 61 64 20 28 74 6f 6f 20 62 69 67 20 3f 3f 21 40 26 2a 29 20 ┆*** file bad (too big ??!@&*) ┆ 0x045380…0453a0 2a 2a 2a 20 00 20 2a 2a 2a 20 66 69 6c 65 20 1a 20 62 61 64 20 28 74 6f 6f 20 73 68 6f 72 74 00 ┆*** *** file bad (too short ┆ 0x0453a0…0453c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x2…] 0x045400…045420 (18, 0, 15) 9a 05 01 14 00 00 00 00 7a 6f 00 00 00 c3 28 6c c3 13 6c 3a ca 38 b7 c0 3a 00 38 b7 c0 11 30 38 ┆ zo (l l: 8 : 8 08┆ 0x045420…045440 cd 89 34 3e ff c3 75 6c 3a 00 38 b7 ca 75 6c 21 01 38 7e 36 00 b7 ca 43 6c 3a ff 37 b7 c8 cd 5c ┆ 4> ul: 8 ul! 8ü6 Cl: 7 Ø┆ 0x045440…045460 33 0d 0f 3e ff 32 4f 3c cd 08 25 3a ca 38 b7 ca 5d 6c cd b7 1a dd 39 21 d4 36 cd e5 1a cd b7 1a ┆3 > 2O< %: 8 Ål 9! 6 ┆ 0x045460…045480 df 39 cd c1 6d 3e 00 32 4f 3c 32 01 38 c0 2f 32 50 3c c3 d2 12 32 ff 37 3a ca 38 b7 c4 61 6f d8 ┆ 9 m> 2O<2 8 /2P< 2 7: 8 ao ┆ 0x045480…0454a0 01 42 01 21 4f 3c cd 08 17 01 04 00 11 8b 36 21 ca 03 cd c2 16 cd 08 25 11 45 3d 21 d4 36 cd f0 ┆ B !O< 6! % E=! 6 ┆ 0x0454a0…0454c0 6d db 39 c8 3a ca 38 b7 c4 7a 6d d2 c0 6c e5 2b 7e fe 1b 21 61 3a c2 bc 6c 22 07 38 c4 d0 1a e1 ┆m 9 : 8 zm l +ü !a: l" 8 ┆ 0x0454c0…0454e0 11 92 36 1a b7 c2 d0 6c 7e 12 b7 23 13 c2 c8 6c 21 d3 36 7e fe 1b c4 de 6c cd 5c 33 10 00 cd ba ┆ 6 lü # l! 6ü l Ø3 ┆ 0x0454e0…045500 24 e1 39 3a 99 38 3c 32 9b 38 cd de 6d 3a 9b 38 cd 43 21 cd b0 24 3d cd 43 21 11 e5 39 21 8b 36 ┆$ 9: 8<2 8 m: 8 C! $= C! 9! 6┆ 0x045500…045520 cd 8f 6d c2 1a 6d cd e9 6d 11 6b 3d 21 ea 36 cd f8 6d f5 39 ca ea 6c c3 1d 6d cd e9 6d 21 00 37 ┆ m m m k=! 6 m 9 l m m! 7┆ 0x045520…045540 11 e3 39 cd 0c 6f 22 ee 3c 21 06 37 11 f3 39 cd 0c 6f 22 f0 3c 21 0c 37 11 f7 39 3a ff 37 b7 c4 ┆ 9 o" <! 7 9 o" <! 7 9: 7 ┆ 0x045540…045560 0c 6f 22 f2 3c cd de 6d 11 e7 39 21 8c 36 3a d1 03 b7 cc 8f 6d 11 e9 39 23 cd 8f 6d 23 3a 8b 36 ┆ o" < m 9! 6: m 9# m#: 6┆ 0x045560…045580 b7 f5 2f 11 eb 39 cc 8f 6d 77 f1 c0 cd b7 1a ed 39 cd ca 24 cd b1 1b c3 2c 27 e5 d5 c5 21 5c 00 ┆ / 9 mw 9 $ ,' !Ø ┆ 0x045580…0455a0 11 45 3d 0e 0c cd 5c 17 c1 d1 e1 37 c8 3f c9 c5 e5 cd f1 24 eb cd d0 1a eb cd d2 6d 4e 21 86 08 ┆ E= Ø 7 ? $ mN! ┆ 0x0455a0…0455c0 be 06 ff ca af 6d 23 be 2b 06 00 ca af 6d 41 78 fe ff ca b6 6d 23 7e cd a5 1e 78 e1 70 c1 c3 90 ┆ m# + mAx m#ü x p ┆ 0x0455c0…0455e0 1e cd d2 6d e5 21 86 08 be ca ce 6d 23 7e e1 c3 a5 1e cd ca 24 cd b1 1b cd 2c 27 c3 d5 17 3a a0 ┆ m ! m#ü $ ,' : ┆ 0x0455e0…045600 38 32 9e 38 af 32 9f 38 c9 3a 9d 38 32 9f 38 c9 cd 7f 24 3e 01 c3 fc 6d 3e ff fe af e3 f5 cd 21 ┆82 8 2 8 : 82 8 $> m> !┆ 0x045600…045620 (18, 1, 1) 12 49 e6 7f fe 0c c2 f0 48 cd 4a 49 cd 60 49 c3 f0 48 3a 27 02 b7 ca 1f 49 cd 4a 49 cd 60 49 cd ┆ I H JI `I H:' I JI `I ┆ 0x045620…045640 33 49 c3 f0 48 3a 08 71 b7 1a 4f c4 71 49 e1 d1 c1 f1 c9 2a 02 71 2b 22 02 71 3a 96 03 b7 ca 58 ┆3I H: q O qI * q+" q: X┆ 0x045640…045660 49 cd 4a 49 3e ff 32 08 71 c9 13 1a 1b 21 08 71 34 35 c8 34 cd 5f 25 c8 2a 06 71 2b 22 06 71 c9 ┆I JI> 2 q ! q45 4 _% * q+" q ┆ 0x045660…045680 2a 04 71 2b 22 04 71 cd 99 47 cd 55 17 22 06 71 c9 2a 89 39 cd 2c 17 1b 41 7c b5 c8 23 1a 4f e6 ┆* q+" q G U " q * 9 , Aø # O ┆ 0x045680…0456a0 7f fe 0a ca 8b 49 fe 0c c2 77 49 78 c3 4d 49 f5 3a 08 71 b7 ca 31 49 c5 d5 e5 2a 8b 39 4e cd bd ┆ I wIx MI : q 1I * 9N ┆ 0x0456a0…0456c0 4c 2a 8b 39 eb cd 71 49 cd 8b 49 c3 ab 32 1a 13 4f 06 00 cd d5 49 c8 cd 0c 4a cd eb 49 cd c8 49 ┆L* 9 qI I 2 O I J I I┆ 0x0456c0…0456e0 0e 00 05 c2 ba 49 b7 c9 c5 06 00 0d 03 cd 90 46 eb 09 eb c1 c9 04 0c 0d c0 05 c9 d5 2a 8b 39 eb ┆ I F * 9 ┆ 0x0456e0…045700 2a 8d 39 cd 68 17 d1 21 8b 39 d8 21 8b 39 c5 d5 e5 cd 08 4b 78 b7 c2 5b 1a cd a3 4a 7a b7 c2 7b ┆* 9 h ! 9 ! 9 Kx Æ Jz æ┆ 0x045700…045720 4a cd 13 4b d2 f1 49 3e 11 cd a0 26 c5 d5 e5 f5 3e ff 32 c9 38 21 89 39 cd 6a 4a 2a 8f 71 19 eb ┆J K I> & > 2 8! 9 jJ* q ┆ 0x045720…045740 2a ba 38 cd 68 17 eb d2 2d 4a 22 ba 38 21 8d 39 cd 6a 4a cd 59 4a cd 2c 17 eb 2a bc 38 cd 68 17 ┆* 8 h -J" 8! 9 jJ YJ , * 8 h ┆ 0x045740…045760 eb da 47 4a 22 bc 38 eb 2a be 38 cd 68 17 eb da 55 4a 22 be 38 f1 c3 5b 1a d5 2a 16 39 eb 2a 7e ┆ GJ" 8 * 8 h UJ" 8 Æ * 9 *ü┆ 0x045760…045780 00 cd 2c 17 11 ff 7f 19 d1 c9 cd 08 4b 60 69 29 5c 16 00 d2 77 4a 14 c9 c5 d5 e5 eb 21 81 39 23 ┆ , K`i)Ø wJ ! 9#┆ 0x045780…0457a0 cd 68 17 2b da 90 4a cd c7 4a cd ba 4a c3 7f 4a 21 8f 39 cd 68 17 d2 5b 1a cd e5 4a 2b 2b 2b 2b ┆ h + J J J J! 9 h Æ J++++┆ 0x0457a0…0457c0 c3 93 4a c5 e5 11 00 00 21 7f 39 cd 08 4b eb 09 eb cd ba 4a d2 ab 4a e1 c1 c9 d5 23 23 23 23 11 ┆ J ! 9 K J J #### ┆ 0x0457c0…0457e0 90 39 cd 68 17 d1 c9 c5 d5 e5 cd 08 4b 2b 2b cd 51 17 e3 73 23 72 2b e3 cd c2 16 e1 e5 23 23 73 ┆ 9 h K++ Q s#r+ ##s┆ 0x0457e0…045800 23 72 c3 5b 1a c5 d5 e5 e5 2b 2b cd 08 4b e1 e5 cd 51 17 eb e3 23 72 2b 73 e3 cd e1 16 e1 2b 72 ┆#r Æ ++ K Q #r+s +r┆ 0x045800…045820 (18, 1, 2) cd ca 5c cd 91 52 cd 39 53 f1 d2 3d 51 2a 2d 71 7e e6 02 ca 1f 51 cd dc 5b cd 86 52 c3 0d 51 cd ┆ Ø R 9S =Q*-qü Q Æ R Q ┆ 0x045820…045840 fe 5c 0a e6 04 ca 3d 51 cd 04 5c cd 2d 53 c3 1f 51 cd 57 52 da cc 50 cd 34 53 cd 86 52 cd 69 52 ┆ Ø =Q Ø -S Q WR P 4S R iR┆ 0x045840…045860 da cc 50 cd af 51 01 a6 71 cd a5 51 7b a4 3c c4 37 63 01 aa 71 cd a5 51 7b b4 c4 37 63 01 ae 71 ┆ P Q q Qæ < 7c q Qæ 7c q┆ 0x045860…045880 cd a5 51 7b b7 f4 c2 63 cd 49 0b c0 af 32 49 71 3a 24 37 f5 21 9a 71 e5 cd c8 66 cd c0 47 c2 87 ┆ Qæ c I 2Iq:$7 ! q f G ┆ 0x045880…0458a0 51 21 92 71 cd 17 67 2a 2f 71 44 4d cd 50 67 c4 88 45 e1 cd 17 67 f1 32 24 37 3a 49 71 b7 c8 cd ┆Q! q g*/qDM Pg E g 2$7:Iq ┆ 0x0458a0…0458c0 34 53 c3 3d 51 cd 52 4e 01 ff ff 09 d8 1d c9 3a 69 38 cd 01 5d 60 69 22 2b 71 cd 52 4e cd 60 56 ┆4S =Q RN :i8 Å`i"+q RN `V┆ 0x0458c0…0458e0 3a 25 71 32 6a 38 2a 26 71 22 20 71 22 22 71 3a 28 71 32 1f 71 cd 49 0b 3a 1e 71 f4 e8 5c f4 a0 ┆:%q2j8*&q" q""q:(q2 q I : q Ø ┆ 0x0458e0…045900 5a 0a e6 20 ca 1a 52 3a 1e 71 3d cd 01 5d 21 82 45 be ca 17 52 0a e6 04 c2 1a 52 0a e6 11 fe 11 ┆Z R: q= Å! E R R ┆ 0x045900…045920 c2 17 52 cd 52 4e cd 60 56 2a 45 71 eb 2a 22 71 19 22 22 71 c3 d5 51 3e 3f fe af 32 24 71 21 85 ┆ R RN `V*Eq *"q ""q Q>? 2$q! ┆ 0x045920…045940 38 7e 36 00 2f b7 cc 49 0b c2 35 52 cd 62 21 cd ad 20 cd 4f 21 3a 77 38 3d f8 ca 44 52 cd 50 52 ┆8ü6 / I 5R b! O!:w8= DR PR┆ 0x045940…045960 da 4b 52 37 d4 50 52 d8 cd 2b 29 21 77 38 35 c9 cd 9a 68 d4 a4 68 c9 cd 56 54 d8 cd 22 54 37 f8 ┆ KR7 PR +)!w85 h h VT "T7 ┆ 0x045960…045980 c8 b7 c9 cd c0 5a cd 86 52 cd 57 52 d8 3a 1e 71 cd e8 5c fa 63 52 21 6f 38 96 b7 f8 c8 cd b1 5a ┆ Z R WR : q Ø cR!o8 Z┆ 0x045980…0459a0 cd 2d 53 c3 69 52 3e 01 c3 8e 52 3a 6d 38 cd 01 5d d5 e5 af 32 fe 71 3a 1e 71 57 21 85 45 be fa ┆ -S iR> R:m8 Å 2 q: qW! E ┆ 0x0459a0…0459c0 e2 52 21 fc ff 09 34 35 ca b1 52 cd 4c 54 c3 9b 52 3d 36 00 2b 2b 2b 2b e5 21 85 45 be e1 f2 b1 ┆ R! 45 R LT R=6 ++++ ! E ┆ 0x0459c0…0459e0 52 d5 cd e5 52 d1 21 fc ff 09 7e b7 ca c1 52 cd 4c 54 21 85 45 be fa e2 52 ba f2 c6 52 fe ff f2 ┆R R ! ü R LT! E R R ┆ 0x0459e0…045a00 c6 52 e1 d1 c9 cd 52 4e cd 02 56 da 22 53 16 10 cd 60 56 cd 23 4e da 15 53 f5 c5 cd 80 5c cd f8 ┆ R RN V "S `V #N S Ø ┆ 0x045a00…045a20 (18, 1, 3) b7 c0 3a 3a 71 e6 46 c0 3a 3b 71 cd 5f 25 c0 c5 e5 01 31 71 cd 9f 4d cd c7 4d e1 c1 3f d0 e6 7f ┆ ::q F :;q _% 1q M M ? ┆ 0x045a20…045a40 fe 0c c8 fe 0a c9 3a 27 02 e5 21 28 02 a6 e1 c9 3a 27 02 b7 c8 c5 d5 e5 21 00 00 44 39 22 4b 71 ┆ :' !( :' ! D9"Kq┆ 0x045a40…045a60 4a 2a 77 39 23 7e 2b cd 5f 25 ca 5d 59 eb 21 cd 59 cd 68 25 ca 6d 59 fa 6d 59 d4 64 59 2a 4b 71 ┆J*w9#ü+ _% ÅY ! Y h% mY mY dY*Kq┆ 0x045a60…045a80 f9 c3 5b 1a e9 c9 cd b2 25 da 6d 59 c8 01 7e 08 2a 4b 71 f9 e1 d1 3e 3f cd a5 59 cd 66 57 cd 83 ┆ Æ % mY ü *Kq >? Y fW ┆ 0x045a80…045aa0 59 c1 c9 e5 60 69 d5 cd d6 1a d1 7b 3d ca ae 59 7e b7 ca ae 59 23 cd a5 59 e3 77 23 e3 cd 9c 1b ┆Y `i æ= Yü Y# Y w# ┆ 0x045aa0…045ac0 14 1d c3 8b 59 e5 21 48 71 ae 21 21 37 ae e1 c9 3a b4 03 c3 66 57 cd 66 59 3a 27 02 b7 c8 3a 28 ┆ Y !Hq !!7 : fW fY:' :(┆ 0x045ac0…045ae0 02 b7 37 c4 52 5a d8 01 31 3a cd 70 59 4c 48 b6 59 50 4c b6 59 4d 54 b6 59 4d 42 b6 59 48 4d 66 ┆ 7 RZ 1: pYLH YPL YMT YMB YHMf┆ 0x045ae0…045b00 59 46 4d 66 59 50 43 66 59 50 4f 66 59 53 52 66 59 55 4a 66 59 42 50 66 59 43 57 66 59 50 41 65 ┆YFMfYPCfYPOfYSRfYUJfYBPfYCWfYPAe┆ 0x045b00…045b20 59 43 50 66 59 50 4e 65 59 4f 50 65 59 48 45 65 59 46 4f 65 59 49 47 65 59 50 46 b0 59 4f 4a b0 ┆YCPfYPNeYOPeYHEeYFOeYIGeYPF YOJ ┆ 0x045b20…045b40 59 49 4a b0 59 4c 4d b0 59 4c 53 b0 59 52 4d b0 59 43 53 b0 59 44 4d b0 59 53 56 b0 59 41 56 b0 ┆YIJ YLM YLS YRM YCS YDM YSV YAV ┆ 0x045b40…045b60 59 52 50 b0 59 44 46 b0 59 52 56 b0 59 46 49 b0 59 00 c5 d5 e5 21 5b 1a e5 01 31 71 cd 9f 4d 16 ┆YRP YDF YRV YFI Y !Æ 1q M ┆ 0x045b60…045b80 08 cd c7 4d d8 1b 14 15 b7 c8 cd 5f 25 ca 61 5a cd c7 4d cd 1c 59 c8 c3 65 5a f5 c5 d5 e5 cd fe ┆ M _% aZ M Y eZ ┆ 0x045b80…045ba0 5c cd 49 0b c2 97 5a 0a e6 80 cc 9a 5a cd 40 54 21 6d 38 be fa 81 5a c3 ab 32 cd 52 4e cd 60 56 ┆Ø I Z Z @T!m8 Z 2 RN `V┆ 0x045ba0…045bc0 0a e6 80 c0 0a f6 80 02 e5 2a 1e 71 cd b4 1d e1 c9 cd f5 32 cd 94 5c cd 62 5b cd 04 5c c3 91 5c ┆ * q 2 Ø bÆ Ø Ø┆ 0x045bc0…045be0 cd dc 5b cd f5 32 cd ff 5a c3 a6 5c cd 15 5d e5 21 6d 38 be e1 f2 0c 5c cd e8 5c fc f5 32 cd 62 ┆ Æ 2 Z Ø Å !m8 Ø Ø 2 b┆ 0x045be0…045c00 5b cd 0c 5c c3 91 5c cd 15 5d cd df 5b e5 21 6d 38 be e1 f0 b7 f2 fc 5a af cd 94 5c c3 ff 5a f5 ┆Æ Ø Ø Å Æ !m8 Z Ø Z ┆ 0x045c00…045c20 (18, 1, 4) 38 c9 3a 8c 38 2f 21 2b 02 a6 c2 ae 29 cd fe 5c 03 03 03 03 0a e6 02 c2 fb 60 cd e3 60 fc a4 60 ┆8 : 8/!+ ) Ø ` ` `┆ 0x045c20…045c40 21 86 38 35 cd b1 5a 3a 74 02 21 20 37 b6 c2 37 61 3e 03 cd e8 5c f8 3a 6f 38 cd 01 5d 0a e6 80 ┆! 85 Z:t ! 7 7a> Ø :o8 Å ┆ 0x045c40…045c60 c0 c3 9a 5a 3a 2b 02 21 8a 38 a6 c2 b5 29 2a 2d 71 2b 2b 2b 2b 7e e6 04 c2 fb 60 3a 69 38 21 6f ┆ Z:+ ! 8 )*-q++++ü `:i8!o┆ 0x045c60…045c80 38 be f4 b0 60 cd c0 5a cd 79 61 3a 7b 02 21 20 37 b6 c8 cd fe 5c c3 9a 5a 2a 2d 71 7e e6 04 c8 ┆8 ` Z ya:æ ! 7 Ø Z*-qü ┆ 0x045c80…045ca0 cd e1 32 cd 04 5c cd 34 53 cd fb 60 c3 79 61 e6 7f fe 0d c0 cd 62 4d d8 cd a0 17 c8 2b 03 c9 21 ┆ 2 Ø 4S ` ya bM + !┆ 0x045ca0…045cc0 23 37 c3 78 17 3a 24 37 f5 3a ab 71 3d c4 37 63 cd 87 63 2a 8b 39 2b 2b cd 88 45 3e 01 32 ab 71 ┆#7 x :$7 : q= 7c c* 9++ E> 2 q┆ 0x045cc0…045ce0 f1 32 24 37 c9 da e6 61 cd 11 28 11 16 00 cd 0e 50 cd 1f 31 2a 1d 37 cd b1 1b 32 7e 38 32 74 38 ┆ 2$7 a ( P 1* 7 2ü82t8┆ 0x045ce0…045d00 cd 17 28 cd 4f 21 fe 20 c8 cd d8 17 d2 f1 61 e6 1f fe 1a c8 c3 5d 62 cd fd 61 c3 a9 64 21 4a 71 ┆ ( O! a Åb a d!Jq┆ 0x045d00…045d20 36 00 32 7e 38 fe 2d c2 21 62 21 96 38 34 35 f5 c4 1f 62 f1 c2 89 67 21 23 02 34 35 ca 21 62 3e ┆6 2ü8 - !b! 845 b g!# 45 !b>┆ 0x045d20…045d40 1e f5 cd 5d 62 f1 21 22 04 34 35 ca 39 62 be 23 c2 29 62 3a 2d 04 cd 5d 62 cd 3f 1c c8 fe 20 d8 ┆ Åb !" 45 9b # )b:- Åb ? ┆ 0x045d40…045d60 fe 7e d0 3a 94 38 2f 21 4a 71 b6 21 7f 38 b6 c0 cd fd 4f cd 0d 1c c8 32 82 38 c3 fd 61 cd 28 63 ┆ ü : 8/!Jq ! 8 O 2 8 a (c┆ 0x045d60…045d80 f5 cd e2 67 f1 47 cd 43 63 78 d4 6a 1d dc a9 64 da 7b 62 21 1f 71 ae cd 6d 1f 78 cd 6b 46 fe 20 ┆ g G Ccx j d æb! q m x kF ┆ 0x045d80…045da0 dc a9 64 21 86 38 35 f5 cd e8 62 f1 f5 cd 2e 68 f1 fe 1e cc a9 64 ca c4 62 af 32 96 38 cd 5f 4d ┆ d! 85 b .h d b 2 8 _M┆ 0x045da0…045dc0 da c4 62 cd 9a 17 c8 e6 7f fe 20 dc a9 64 cd 43 63 d8 3a 23 37 b7 c2 a9 64 7e e6 7f fe 20 dc a9 ┆ b d Cc :#7 dü ┆ 0x045dc0…045de0 64 c3 de 45 2a 2b 71 7e 23 23 23 e6 02 ca dd 62 7e b7 f2 dd 62 af 77 2b 77 2b 77 23 23 23 11 f5 ┆d E*+qü### bü b w+w+w### ┆ 0x045de0…045e00 72 cd 68 17 d2 c7 62 c9 fe 20 d8 cd 43 63 d0 21 9e 71 e5 cd c8 66 21 a6 71 cd 17 67 cd c4 4d e6 ┆r h b Cc ! q f! q g M ┆ 0x045e00…045e20 (18, 1, 5) 2b 73 c3 5b 1a 21 8d 39 d5 e5 cd 51 17 cd 35 17 e1 d1 c9 cd 36 4b d0 c5 d5 e5 cd a3 4b da 5b 1a ┆+s Æ ! 9 Q 5 6K K Æ ┆ 0x045e20…045e40 3a c7 38 47 05 87 4f 0d cd a3 4b 05 ca 33 4b 0d c2 28 4b c3 61 4b c5 d5 e5 cd 64 4b da 5b 1a 21 ┆: 8G O K 3K (K aK dK Æ !┆ 0x045e40…045e60 b3 38 34 46 21 c8 38 af 86 05 c2 48 4b 3d f6 07 4f 3a c7 38 3d 47 cd 64 4b 05 ca 61 4b 0d c2 56 ┆ 84F! 8 HK= O: 8=G dK aK V┆ 0x045e60…045e80 4b c3 5a 1a 2a b4 38 eb 2a 8b 39 cd 2c 17 eb 2a 89 39 cd 68 17 d8 e5 2a 8f 71 eb 2a ba 38 cd 68 ┆K Z * 8 * 9 , * 9 h * q * 8 h┆ 0x045e80…045ea0 17 e1 11 6d 71 d2 8e 4b cd 35 1a c3 9b 4b cd 1e 1a eb 2a ba 38 23 22 ba 38 eb 04 11 80 00 19 22 ┆ mq K 5 K * 8#" 8 "┆ 0x045ea0…045ec0 89 39 c9 2a 8f 39 cd b2 4c c2 bb 4b 3a 18 39 57 cd 46 17 e5 7a cd 19 4c c3 c0 4b 11 80 ff 19 e5 ┆ 9 * 9 L K: 9W F z L K ┆ 0x045ec0…045ee0 e3 e5 2a b6 38 eb 2a 8d 39 19 d1 cd 68 17 eb e3 da bb 4c e5 2a bc 38 eb cd 59 4a cd 68 17 e1 d2 ┆ * 8 * 9 h L * 8 YJ h ┆ 0x045ee0…045f00 eb 4b 11 5c 00 cd 3c 1a c3 10 4c e5 2a be 38 eb cd 59 4a cd 68 17 e1 11 f4 38 d2 03 4c cd 35 1a ┆ K Ø < L * 8 YJ h 8 L 5 ┆ 0x045f00…045f20 c3 10 4c cd 1e 1a e5 2a be 38 2b 22 be 38 e1 04 cd b2 4c b7 e1 22 8f 39 c9 c5 d5 11 ce 3b d5 47 ┆ L * 8+" 8 L " 9 ; G┆ 0x045f20…045f40 0e 82 04 2b 1b 7e 12 23 13 0d 05 c2 25 4c 3e 1a 12 13 0d c2 2e 4c c3 5b 1a cd b2 4c c8 c5 d5 e5 ┆ + ü # %L> .L Æ L ┆ 0x045f40…045f60 cd a3 4a b7 14 15 cc 36 4b da 15 4d 2a c2 38 eb 21 91 39 cd 08 4d c3 68 4c c5 d5 e5 cd b2 4c ca ┆ J 6K M* 8 ! 9 M hL L ┆ 0x045f60…045f80 36 4c 21 91 39 cd ee 4c 2a 8f 39 cd 81 4c d4 9a 4c da 77 4c 32 18 39 22 8f 39 0d c2 6b 4c c3 61 ┆6L! 9 L* 9 L L wL2 9" 9 kL a┆ 0x045f80…045fa0 4b cd 38 1d 11 f3 38 1a 13 b7 37 c4 aa 19 d0 11 5b 00 1a 13 b7 37 c4 a3 19 c9 06 80 7e fe 1a ca ┆K 8 8 7 Æ 7 ü ┆ 0x045fa0…045fc0 ab 4c 23 05 c2 9c 4c 37 3e 80 c9 cd bc 19 3e 80 90 c9 e5 3a 5b 00 21 f3 38 b6 37 e1 c9 c5 d5 e5 ┆ L# L7> > :Æ ! 8 7 ┆ 0x045fc0…045fe0 3a 6c 71 b7 37 ca 36 4c 11 17 4b 21 89 39 cd f1 4c 2a 89 39 cd 38 1d 11 80 ff 19 11 6d 71 cd aa ┆:lq 7 6L K! 9 L* 9 8 mq ┆ 0x045fe0…046000 19 da 61 4b 22 89 39 0d c2 d4 4c c3 61 4b 11 36 4b e5 2a c2 38 d5 cd a3 4a cd 68 17 e1 dc 1a 4d ┆ aK" 9 L aK 6K * 8 J h M┆ 0x046000…046020 (18, 1, 6) 5b cd 2c 54 c1 f1 c2 f0 52 e5 7a e6 62 67 0a e6 95 b4 02 e1 c9 cd 2c 54 cd 40 54 7a e6 fe 57 c3 ┆Æ ,T R z bg ,T @Tz W ┆ 0x046020…046040 62 4e 16 15 c5 cd 80 5c cd 62 4e c1 c9 3a 70 38 3d c3 36 53 3e ff cd 01 5d d5 e5 21 04 00 09 0a ┆bN Ø bN :p8= 6S> Å ! ┆ 0x046040…046060 e6 04 ca 4c 53 7e e6 df 77 c3 5d 53 0a e6 01 ca 57 53 7e b7 c2 5d 53 cd 69 53 c3 60 53 cd 40 54 ┆ LSü w ÅS WSü ÅS iS `S @T┆ 0x046060…046080 cd 22 54 f2 3b 53 e1 d1 c9 cd 52 4e cd 22 54 f8 cd 60 56 0a f6 01 02 cd 40 54 cd 22 54 fa 1c 54 ┆ "T ;S RN "T `V @T "T T┆ 0x046080…0460a0 7a e6 02 c2 ec 53 0a e6 01 ca 1c 54 0a e6 02 c2 1c 54 cd 23 4e ca 09 53 f5 c5 cd 80 5c 0a e6 7f ┆z S T T #N S Ø ┆ 0x0460a0…0460c0 02 c1 f1 da cc 53 cd 60 56 cd 23 4e da c6 53 f5 cd e7 5a cd 2c 54 cd 40 54 f1 ca 09 53 cd 22 54 ┆ S `V #N S Z ,T @T S "T┆ 0x0460c0…0460e0 fa 1c 54 c3 a6 53 cd 2c 54 c3 73 53 c5 03 03 03 03 0a e6 01 ca 1b 54 cd 23 4e c1 ca e1 53 d2 1c ┆ T S ,T sS T #N S ┆ 0x0460e0…046100 54 f5 cd cc 5a f1 ca 09 53 c3 cc 53 c5 cd 80 5c 0a c1 e6 04 ca fc 53 16 10 c3 1c 54 0a e6 03 fe ┆T Z S S Ø S T ┆ 0x046100…046120 03 c2 07 54 0a e6 80 f6 13 57 cd 62 4e cd 40 54 cd 22 54 f2 fc 53 16 12 c3 1c 54 c1 cd 62 4e c3 ┆ T W bN @T "T S T bN ┆ 0x046120…046140 6c 53 3a 71 38 e5 21 1e 71 be e1 c9 d5 e5 c5 01 31 71 cd 52 4e 7a f6 01 57 c1 cd 62 4e e1 d1 c9 ┆lS:q8 ! q 1q RNz W bN ┆ 0x046140…046160 03 03 03 03 3a 1e 71 3c 32 1e 71 c9 cd 80 5c 3a 1e 71 3d c3 48 54 d5 e5 c5 2a 81 45 eb 21 fe 71 ┆ : q<2 q Ø: q= HT * E ! q┆ 0x046160…046180 23 23 23 23 14 1d ca ea 54 7e b7 ca 60 54 e6 04 c2 60 54 23 23 23 7e b7 fa 63 54 2b b6 2b b6 2b ┆#### Tü `T `T###ü cT+ + +┆ 0x046180…0461a0 c2 93 54 7a cd e8 5c f2 a9 54 7e e6 02 ca 60 54 c3 a9 54 15 2b 7e 47 2b b6 2b b6 2b ca a4 54 78 ┆ Tz Ø Tü `T T +üG+ + + Tx┆ 0x0461a0…0461c0 b7 f2 ea 54 7e b7 ca ea 54 7e e6 04 c2 ea 54 7e e6 02 ca ce 54 7a e5 21 85 45 be e1 fa ea 54 2b ┆ Tü Tü Tü Tz ! E T+┆ 0x0461c0…0461e0 2b 2b 2b 15 7e b7 ca ea 54 e6 06 c2 ea 54 44 4d 7a 21 84 45 be fa ea 54 21 86 45 be f2 ea 54 32 ┆+++ ü T TDMz! E T! E T2┆ 0x0461e0…046200 1e 71 32 69 38 b7 e1 e1 d1 c9 37 c1 e1 d1 c9 fe 20 d2 82 55 fe 09 c2 0f 55 f5 3e 20 cd ef 54 ca ┆ q2i8 7 U U > T ┆ 0x046200…046220 (18, 1, 7) e5 d5 c5 57 3a 20 37 b7 c2 19 5b 3a 7b 02 b7 c2 21 5b c1 d1 e1 f1 c3 b8 5c cd 37 5b c1 d1 e1 f1 ┆ W: 7 Æ:æ !Æ Ø 7Æ ┆ 0x046220…046240 c9 cd 37 5b cd 2a 22 21 7b 02 c1 e5 6a 26 00 cd 4f 21 e1 d1 c3 4e 22 3a 6b 38 82 57 d5 cd 41 23 ┆ 7Æ *"!æ j& O! N":k8 W A#┆ 0x046240…046260 e5 cd c8 20 eb 2a 70 39 cd 35 17 eb 2a 6e 39 eb cd c3 02 cd e1 16 cd c9 02 eb cd 35 17 e1 d1 c3 ┆ *p9 5 *n9 5 ┆ 0x046260…046280 f2 20 f5 e5 d5 57 cd 8c 5c 3a 20 37 b7 c2 b3 5b 3a 74 02 b7 c2 ba 5b 3e 03 ba f2 83 5b d1 e1 f1 ┆ W Ø: 7 Æ:t Æ> Æ ┆ 0x046280…0462a0 c3 b8 5c 3a 2b 02 b7 c2 7d 5b 3a 99 38 21 9c 38 b6 ca 9b 5b 3a 86 38 b7 ca 7d 5b af 32 94 38 cd ┆ Ø:+ åÆ: 8! 8 Æ: 8 åÆ 2 8 ┆ 0x0462a0…0462c0 be 29 cd 2b 29 cd b6 22 3e 0a cd 6d 1f d1 e1 f1 c3 a6 5c cd c3 5b d1 e1 f1 c9 cd c3 5b 21 74 02 ┆ ) +) "> m Ø Æ Æ!t ┆ 0x0462c0…0462e0 c3 2b 5b 3a 6b 38 82 57 d5 cd 41 23 d1 c3 48 20 cd d3 5b 7c 17 7c 1f 67 7d 1f 6f c9 01 fe 71 f5 ┆ +Æ:k8 W A# H Æø ø gå o q ┆ 0x0462e0…046300 c5 d5 e5 50 59 21 f2 72 cd 35 17 eb 21 04 00 19 eb cd e1 16 70 c3 ab 32 f5 c5 d5 e5 60 69 11 fe ┆ PY! r 5 ! p 2 `i ┆ 0x046300…046320 71 c3 15 5c f5 c5 01 fe 71 c3 0e 5c f5 c5 d5 e5 50 59 21 f2 72 cd 35 17 21 04 00 19 cd c2 16 eb ┆q Ø q Ø PY! r 5 ! ┆ 0x046320…046340 c3 f4 5b f5 c5 cd 04 5c 3d c2 25 5c f1 c1 c9 f5 c5 d5 e5 cd 9a 4e c3 42 5c f5 c5 d5 e5 44 4d cd ┆ Æ Ø= %Ø N BØ DM ┆ 0x046340…046360 52 4e cd 5c 5c d4 9f 5c c3 ab 32 f5 c5 d5 e5 cd 56 54 d4 9f 5c 03 03 03 03 c3 45 5c 01 02 72 3a ┆RN ØØ Ø 2 VT Ø EØ r:┆ 0x046360…046380 80 45 57 0a b7 ca 76 5c e6 04 c2 76 5c cd 23 4e ca 85 5c d2 80 5c 03 03 03 03 15 c2 63 5c 37 c9 ┆ EW vØ vØ #N Ø Ø cØ7 ┆ 0x046380…0463a0 0b 0b 0b 0b c9 0a e6 02 c2 80 5c c9 3a aa 02 b7 c0 3a 70 38 f5 c5 cd 04 5d cd 9f 5c c1 f1 c9 f5 ┆ Ø : :p8 Å Ø ┆ 0x0463a0…0463c0 0a e6 7e 02 f1 c9 f5 c5 d5 01 fe 71 e5 21 83 45 86 e1 c3 c5 5c 3a 82 45 f5 c5 d5 cd 04 5d e5 21 ┆ ü q ! E Ø: E Å !┆ 0x0463c0…0463e0 87 45 96 e1 2f 16 7f c3 d4 5c f5 c5 d5 57 3a 81 45 01 fe 71 5f 1c 1d ca e4 5c 0a a2 02 03 03 03 ┆ E / Ø W: E q_ Ø ┆ 0x0463e0…046400 03 c3 d6 5c d1 c1 f1 c9 c5 47 cd f5 32 4f 78 b9 c1 c9 e5 cd f5 32 21 6d 38 96 2f 3c e1 c9 cd f5 ┆ Ø G 2Ox 2!m8 /< ┆ 0x046400…046420 (18, 1, 8) 7f fe 20 c2 13 63 cd c7 4d da 13 63 23 cd 96 17 ca 1a 63 21 4e 71 34 c3 24 63 cd 1f 46 2a 22 71 ┆ c M c# c!Nq4 $c F*"q┆ 0x046420…046440 2b 22 22 71 e1 c3 17 67 2a ab 71 2d c2 33 63 21 92 03 be c4 96 17 c0 e5 21 00 00 22 4d 71 22 96 ┆+""q g* q- 3c! ! "Mq" ┆ 0x046440…046460 38 e1 c9 3a 4d 71 b7 c8 3a 23 37 b7 37 c0 3a ab 71 3d c8 b7 c9 cd 37 63 cd c2 63 cd a4 68 d2 6b ┆8 :Mq :#7 7 : q= 7c c h k┆ 0x046460…046480 63 21 77 38 7e 36 00 b7 c4 2b 29 1e 7f 21 86 38 35 3a 29 02 3d f5 cd 7f 63 f1 3d f2 75 63 c9 21 ┆c!w8ü6 +) ! 85:) = c = uc !┆ 0x046480…0464a0 23 37 34 35 ca 97 63 cd a9 64 3e 0d cd 6b 46 3e 0a cd 6b 46 c3 c4 62 cd 54 4d cd 62 4d da b9 63 ┆#745 c d> kF> kF b TM bM c┆ 0x0464a0…0464c0 fe 8d c2 b0 63 2b a3 be c4 0c 4a c4 2f 5c 77 23 cd a0 17 c2 9a 63 c3 88 45 cd 88 45 cd 4b 5c c3 ┆ c+ J /Øw# c E E KØ ┆ 0x0464c0…0464e0 8a 63 f5 e5 3a 26 37 21 24 37 be 77 c4 2b 29 e1 f1 c9 d4 11 28 cd c8 20 cd 12 64 cd dc 5b 3d c2 ┆ c :&7!$7 w +) ( d Æ= ┆ 0x0464e0…046500 db 63 cd 8b 52 cd 79 61 cd e5 65 c3 e1 32 d4 11 28 cd c8 20 cd 12 64 cd 23 5c cd 34 53 cd fe 5c ┆ c R ya e 2 ( d #Ø 4S Ø┆ 0x046500…046520 0a e6 02 ca e8 63 cd dc 5b cd 8b 52 cd fb 60 c3 fd 63 e5 cd f2 5c 1f 67 1f 84 e6 3f 3c e1 c9 3a ┆ c Æ R ` c Ø g ?< :┆ 0x046520…046540 a7 71 b7 cc 37 63 cd c4 4d cd 09 60 cd 1f 46 cd 55 64 2a 2b 71 11 f8 ff 19 7e e6 7e 77 c3 a6 64 ┆ q 7c M ` F Ud*+q ü üw d┆ 0x046540…046560 cd 5f 4d cd 8f 61 4f cd a3 64 21 ab 71 7e b7 79 c2 55 64 34 c9 e6 7f fe 20 d8 3a 4d 71 b7 c8 21 ┆ _M aO d! qü y Ud4 :Mq !┆ 0x046560…046580 4e 71 7e b7 ca 69 64 35 c9 21 9e 71 e5 cd c8 66 21 a6 71 e5 cd 17 67 3e 20 cd 6b 46 e1 cd c8 66 ┆Nqü id5 ! q f! q g> kF f┆ 0x046580…0465a0 e1 3a a1 71 b7 f4 17 67 c9 cd 5f 4d cd a6 17 c4 c4 4d cd 90 17 f5 cd 54 4d cd 67 60 f1 cc 89 60 ┆ : q g _M M TM g` `┆ 0x0465a0…0465c0 cd 37 63 cd de 45 cd 91 66 f5 e5 2a 2b 71 3a 21 71 b7 c2 bd 64 3a 20 71 fe 09 d2 c5 64 7e e6 7e ┆ 7c E f *+q:!q d: q dü ü┆ 0x0465c0…0465e0 77 2b 2b 2b 2b 7e e6 7e 77 3e ff 32 4a 71 e1 f1 c9 cd 37 63 cd fc 64 3a 4d 71 b7 c8 21 00 00 22 ┆w++++ü üw> 2Jq 7c d:Mq ! "┆ 0x0465e0…046600 ac 71 24 22 aa 71 cd b7 4d cd c7 4d da f6 64 cd 96 17 c2 e9 64 23 01 a6 71 c3 8f 4e cd 6b 65 d2 ┆ q$" q M M d d# q N ke ┆ 0x046600…046620 (18, 1, 9) 2a c0 38 29 24 24 eb e1 cd 1b 4d fe 08 da 13 4d d6 04 4f b7 c0 3e 12 cd a0 26 e9 cd 78 4a d5 cd ┆* 8)$$ M M O > & xJ ┆ 0x046620…046640 a3 4a e1 cd 68 17 d2 2a 4d eb 29 7c 4c c9 af 32 0a 71 d5 cd c4 4e c2 44 4d 2a 8d 39 af 32 09 71 ┆ J h *M )øL 2 q N DM* 9 2 q┆ 0x046640…046660 2f 32 0a 71 eb 2a 8b 39 da 4e 4d 2a 8f 39 cd 35 17 eb d1 c9 cd 05 4b 2a 8d 39 af 32 09 71 c9 cd ┆/2 q * 9 NM* 9 5 K* 9 2 q ┆ 0x046660…046680 54 4d 78 b1 cc 6c 4d d8 7e 23 0b c9 e5 21 09 71 7e 36 00 e1 b7 ca 8b 4d 32 0a 71 d5 2a 8d 39 eb ┆TMx lM ü# ! qü6 M2 q * 9 ┆ 0x046680…0466a0 2a 8f 39 cd 35 17 eb d1 78 b1 c0 01 9a 71 cd 8f 4e cd 39 4c cd 32 4d 78 b1 c0 37 2a 8f 39 c9 af ┆* 9 5 x q N 9L 2Mx 7* 9 ┆ 0x0466a0…0466c0 32 0a 71 d5 cd c4 4e eb 2a 8d 39 d2 b1 4d 2a 89 39 eb cd 35 17 d1 c9 d5 3e ff 32 09 71 2a 8b 39 ┆2 q N * 9 M* 9 5 > 2 q* 9┆ 0x0466c0…0466e0 eb c3 ae 4d cd b7 4d 78 b1 cc d1 4d d8 2b 7e 0b c9 e5 21 09 71 7e 36 ff e1 b7 c2 ef 4d 3d 32 0a ┆ M Mx M +ü ! qü6 M=2 ┆ 0x0466e0…046700 71 d5 21 89 39 cd 51 17 cd 35 17 d1 78 b1 c0 01 9a 71 cd 8f 4e cd bd 4c cd a3 4d 78 b1 c0 37 c9 ┆q ! 9 Q 5 x q N L Mx 7 ┆ 0x046700…046720 cd 52 4e cd 3c 4e c5 d5 cd 48 4e cd 16 4e 03 15 c2 0b 4e d1 c1 c9 03 0a 85 02 03 0a 8c 02 03 0a ┆ RN <N HN N N ┆ 0x046720…046740 8b 02 c9 c5 03 03 03 0a bb 37 fa 3a 4e 3f c2 3a 4e 0b 0a bc c2 3a 4e 0b 0a bd c1 c9 af 95 6f 3e ┆ 7 :N? :N :N o>┆ 0x046740…046760 00 9c 67 3e 00 9b 5f c9 f5 01 92 71 3a 7e 45 57 f1 c9 03 0a 6f 03 0a 67 03 0a 5f 0b 0b 0b 0a b7 ┆ g> _ q:üEW o g _ ┆ 0x046760…046780 57 c9 7a 02 03 7d 02 03 7c 02 03 7b 02 0b 0b 0b c9 d5 cd 77 4e d1 c9 eb 2a 8b 39 cd 68 17 eb d8 ┆W z å ø æ wN * 9 h ┆ 0x046780…0467a0 c8 eb 2a 8d 39 cd 68 17 eb d0 3e 10 cd a0 26 d5 e5 cd 9a 4e cd 63 4e e1 d1 c9 f5 c5 d5 cd 71 4e ┆ * 9 h > & N cN qN┆ 0x0467a0…0467c0 eb ca bd 4e 2a 8b 39 da ad 4e 2a 8d 39 eb 7d 93 6f 7c 9a 67 9f 5f c1 50 c1 f1 c3 38 1d 21 00 00 ┆ N* 9 N* 9 å oø g _ P 8 ! ┆ 0x0467c0…0467e0 5c c3 b6 4e d5 cd 52 4e cd cd 4e d1 c9 c5 d5 7b eb b7 fa 05 4f 3e 13 c4 a0 26 7a b3 ca 24 4f d5 ┆Ø N RN N æ O> &z $O ┆ 0x0467e0…046800 2a 8d 39 eb 2a 8f 39 cd 2c 17 d1 23 cd 68 17 2b da fa 4e cd 59 4c d2 df 4e eb 2a 8d 39 19 f6 01 ┆* 9 * 9 , # h + N YL N * 9 ┆ 0x046800…046820 (18, 1, 10) a1 55 3a 45 71 82 e6 07 c2 fa 54 f1 fe 00 c9 fe 1e c2 22 55 3a 25 02 b7 ca b1 55 cd 27 55 c8 c3 ┆ U:Eq T "U:% U 'U ┆ 0x046820…046840 f0 55 fe 1f c2 33 55 3a b7 03 e5 21 22 37 a6 e1 c3 ef 54 f5 cd 6e 0a d2 41 55 3a 25 02 b7 ca 63 ┆ U 3U: !"7 T n AU:% c┆ 0x046840…046860 55 3e 5e cd ef 54 ca a1 55 f1 f5 c6 40 cd ef 54 ca a1 55 f1 f5 cd 6e 0a dc f0 55 cc f0 55 e4 f7 ┆U>^ T U @ T U n U U ┆ 0x046860…046880 55 f1 c9 f1 e5 21 95 03 be e1 ca 80 55 f5 cd b1 55 f1 e5 2a 45 71 23 23 22 45 71 e1 cd 54 55 c9 ┆U ! U U *Eq##"Eq TU ┆ 0x046880…0468a0 3e 20 cc 38 1d fe 7f c2 8c 55 3e 7e 1d ca a2 55 e5 21 48 71 ae e1 77 23 3a 0a 71 b7 c4 bb 55 14 ┆> 8 U>ü U !Hq w#: q U ┆ 0x0468a0…0468c0 c9 f1 2a 43 71 22 45 71 2a 41 71 eb 2a 3f 71 bf c9 3a 0a 71 b7 c4 bb 55 f6 ff c9 af 32 0a 71 7a ┆ *Cq"Eq*Aq *?q : q U 2 qz┆ 0x0468c0…0468e0 32 25 71 e5 2a 45 71 7a cd 3f 17 22 26 71 e1 3a 48 71 32 28 71 c9 e5 21 21 37 ae e1 c5 e5 21 0a ┆2%q *Eqz ? "&q :Hq2(q !!7 ! ┆ 0x0468e0…046900 71 46 36 00 e1 cd ef 54 4f 78 32 0a 71 79 c1 c8 e5 2a 45 71 c3 fc 55 e5 2a 45 71 2b 2b 22 45 71 ┆qF6 TOx2 qy *Eq U *Eq++"Eq┆ 0x046900…046920 e1 c9 c5 d5 cd 9f 4d cd c7 4d f5 d4 22 56 f1 d1 c1 f5 cd 9a 4e f1 c9 c5 d5 cd b7 4d cd 38 56 d1 ┆ M M "V N M 8V ┆ 0x046920…046940 c1 c9 11 00 00 78 b1 cc 55 56 d8 2b 7e 0b 13 e6 7f fe 0a c2 25 56 23 c9 11 00 00 78 b1 cc 55 56 ┆ x UV +ü %V# x UV┆ 0x046940…046960 d8 2b 7e 0b 13 e6 7f 23 fe 0d c8 fe 0a c8 fe 0c c8 2b c3 3b 56 3e 08 ba d8 cd c7 4d d8 23 03 c9 ┆ +ü # + ;V> M # ┆ 0x046960…046980 c5 01 31 71 cd 62 4e 7a 32 3a 71 3e 10 32 39 71 af 32 3e 71 cd 73 58 cd 2e 4d e5 cd 62 4d 32 3b ┆ 1q bNz2:q> 29q 2>q sX .M bM2;┆ 0x046980…0469a0 71 da 85 56 03 3e 20 32 47 71 21 00 00 22 45 71 55 3a 49 02 5f 2a 77 39 3a 3a 71 e6 04 c2 5d 57 ┆q V > 2Gq! "EqU:I _*w9::q ÅW┆ 0x0469a0…0469c0 c3 a9 56 cd ef 54 ca 42 57 3a 48 71 e5 21 0a 71 b6 e1 c2 02 57 3a 3c 71 b7 ca c0 56 bb da c1 56 ┆ V T BW:Hq ! q W:<q V V┆ 0x0469c0…0469e0 7b 3d b9 da c7 56 79 b7 ca 02 57 eb e3 eb c5 4f 06 00 1a e6 7f fe 20 da e7 56 fe 7f ca e7 56 77 ┆æ= Vy W O V Vw┆ 0x0469e0…046a00 13 23 04 0d c2 d2 56 78 c1 eb e3 eb e5 67 7b 94 5f 7a 84 57 79 94 dc 38 00 4f 3a 3c 71 94 32 3c ┆ # Vx gæ _z Wy 8 O:<q 2<┆ 0x046a00…046a20 (18, 1, 11) 32 32 1e 71 f5 e5 6f 17 9f 67 29 29 01 1a 72 09 44 4d e1 f1 c9 e5 21 1a 72 cd 1b 17 09 cd d0 5b ┆22 q o g)) r DM ! r Æ┆ 0x046a20…046a40 7d e1 c9 3a 29 02 e6 fe ca 2d 5d 3e fe 21 23 37 86 46 4f 3a 77 38 b7 ca 3b 5d 0d 2a a4 38 7c b5 ┆å :) -Å> !#7 FO:w8 ;Å * 8ø ┆ 0x046a40…046a60 ca 46 5d 01 fd 00 3a 01 38 87 81 87 21 b8 38 86 87 80 87 4f 21 5c 00 06 0b 23 7e fe 20 ca 61 5d ┆ FÅ : 8 ! 8 O!Ø #ü aÅ┆ 0x046a60…046a80 0d 05 c2 59 5d 3a 49 02 81 fe 27 fa 77 5d cd 50 28 21 92 36 cd cc 28 cd 26 59 ca 9b 5d af cd 9b ┆ YÅ:I ' wÅ P(! 6 ( &Y Å ┆ 0x046a80…046aa0 28 16 45 2a 04 71 23 06 01 cd 84 5e cd bb 28 18 45 2a 06 71 23 cd 84 5e c3 c4 5d af cd 9b 28 1a ┆( E* q# ^ ( E* q# ^ Å ( ┆ 0x046aa0…046ac0 45 3a 95 71 5f 2a 93 71 cd 3c 4e 01 01 00 09 d2 b3 5d 1c cd 4e 5e cd bb 28 1c 45 2a 02 71 1e 00 ┆E: q_* q <N Å N^ ( E* q ┆ 0x046ac0…046ae0 23 cd 4e 5e cd bb 28 1e 45 2a 22 71 23 24 25 f2 da 5d cd 1b 17 3e 2d cd 5d 28 06 02 cd 84 5e 3a ┆# N^ ( E*"q#$% Å >- Å( ^:┆ 0x046ae0…046b00 24 71 cd 5d 28 2a a4 38 7c b5 ca 06 5e 3e 2b cd 2a 28 cd c9 28 2a 77 39 eb 2a a8 38 cd 2c 17 65 ┆$q Å(* 8ø ^>+ *( (*w9 * 8 , e┆ 0x046b00…046b20 2e 00 22 a6 38 c9 3a 23 37 f5 21 77 38 a6 cc 50 28 7e b7 ca 1d 5e 3e 1c cd 9b 28 20 45 3a 4d 71 ┆. " 8 :#7 !w8 P(ü ^> ( E:Mq┆ 0x046b20…046b40 b7 ca 2b 5e 3e 1c cd 9b 28 24 45 f1 b7 ca 37 5e 3e 25 cd 9b 28 22 45 3a 29 02 fe 02 fa 4d 5e f5 ┆ +^> ($E 7^>% ("E:) M^ ┆ 0x046b40…046b60 3e 30 cd 9b 28 28 45 f1 f6 30 cd 5d 28 c9 f5 c5 d5 e5 16 00 cd 5a 5e c3 19 1e d5 01 ff ff 11 18 ┆>0 ((E 0 Å( Z^ ┆ 0x046b60…046b80 fc 03 19 da 61 5e e3 2b 7c e3 b7 f2 61 5e 11 e8 03 19 d1 78 b1 ca 84 5e e5 60 69 11 00 00 cd 5a ┆ a^ +ø a^ x ^ `i Z┆ 0x046b80…046ba0 5e e1 06 03 d5 11 5d 28 cd 43 18 d1 c3 68 0b 3a a3 38 b7 c0 3a a1 38 57 1e 00 cd 4a 29 4f 2a 77 ┆^ Å( C h : 8 : 8W J)O*w┆ 0x046ba0…046bc0 39 3a 49 02 3d 47 3a 26 02 b7 c2 ba 5e 3a 2b 02 b7 c8 3a 22 37 e6 bd c3 e9 5e d5 e5 cd ff 5e 7b ┆9:I =G:& ^:+ :"7 ^ ^æ┆ 0x046bc0…046be0 21 24 37 be 7a d2 ca 5e e6 7f 21 22 37 a6 e1 77 d1 23 1c 0d ca e4 5e 05 c2 ba 5e 36 2b cd aa 2c ┆!$7 z ^ !"7 w # ^ ^6+ ,┆ 0x046be0…046c00 14 c3 9e 5e 3e 20 c3 eb 5e 77 23 05 c2 e9 5e 36 20 cd aa 2c 14 7a 32 a2 38 3e ff 32 a3 38 c9 7b ┆ ^> ^w# ^6 , z2 8> 2 8 æ┆ 0x046c00…046c20 (18, 1, 12) 12 65 d5 21 00 00 22 22 71 1e ff cd 6d 63 d1 7a b3 c8 3a 23 37 b7 c2 45 65 cd 54 4d e5 2a 22 71 ┆ e ! ""q mc z :#7 Ee TM *"q┆ 0x046c20…046c40 eb cd ae 68 eb e1 d2 88 45 cd 62 4d da 42 65 2b cd 9a 17 ca 42 65 23 e5 21 22 71 cd 94 1d e1 c3 ┆ h E bM Be+ Be# !"q ┆ 0x046c40…046c60 1c 65 cd 88 45 cd 4b 5c 3e 09 d5 cd e2 67 d1 3a 22 02 b7 3e 09 ca 7b 62 2a 22 71 eb cd ae 68 d2 ┆ e E KØ> g :" > æb*"q h ┆ 0x046c60…046c80 c4 62 3e 20 cd 6b 46 13 c3 5c 65 2a 22 71 0e 00 eb 13 3a 22 02 b7 c2 83 65 1b 7b f6 07 5f 13 af ┆ b> kF Øe*"q :" e æ _ ┆ 0x046c80…046ca0 c3 a5 65 7a b7 ca 99 65 fa 71 65 cd 38 1d 11 00 00 0c 37 c8 0d 0d c3 72 65 7b fe ef d2 8b 65 cd ┆ ez e qe 8 7 reæ e ┆ 0x046ca0…046cc0 c7 65 ca 71 65 e6 06 32 4d 71 cd 21 33 c2 c2 65 2a 28 37 cd ae 68 d2 8b 65 2a 26 37 cd ae 68 da ┆ e qe 2Mq !3 e*(7 h e*&7 h ┆ 0x046cc0…046ce0 71 65 0c 37 c8 b7 c9 e5 7b b7 1f f5 21 09 36 cd 3f 17 f1 7e da db 65 0f 0f 0f 0f e6 0f e1 c9 6f ┆qe 7 æ ! 6 ? ü e o┆ 0x046ce0…046d00 26 00 22 20 71 2a 2b 71 c5 d5 7e e6 02 ca f7 65 2b 2b 2b 2b c3 ea 65 7e e6 04 c4 de 60 c2 f7 65 ┆& " q*+q ü e++++ eü ` e┆ 0x046d00…046d20 22 2b 71 44 4d 23 af 96 cd de 60 86 5f cd 2e 4d cd 18 66 d1 c1 c3 88 45 e5 21 00 00 22 29 71 2a ┆"+qDM# ` _ .M f E ! ")q*┆ 0x046d20…046d40 20 71 55 7c b5 e1 c2 2c 66 7b b7 c0 cd 62 4d d8 2b 1c 1d ca 59 66 1d cd 9a 17 c8 23 e5 21 29 71 ┆ qUø ,fæ bM + Yf # !)q┆ 0x046d40…046d60 e6 7f cd 94 1d 23 3a 21 71 be fa 56 66 c2 25 66 2b 7a be d2 25 66 e1 2b c9 cd 88 45 c3 c4 4d 00 ┆ #:!q Vf %f+z %f + E M ┆ 0x046d60…046d80 00 00 00 00 00 00 00 00 00 00 00 00 00 11 5e 66 cd d4 66 fe 03 dc e1 32 e5 7e ee 90 23 b6 23 b6 ┆ ^f f 2 ü # # ┆ 0x046d80…046da0 23 b6 e1 ca df 66 36 90 cd 39 5c cd ca 66 cd 39 5c c5 d5 e5 cd a2 66 21 91 71 be 77 c4 19 33 c3 ┆# f6 9Ø f 9Ø f! q w 3 ┆ 0x046da0…046dc0 5b 1a 3a 21 37 b7 c8 01 c6 71 cd 52 4e 7a fe 90 3e 00 c0 01 c2 71 0a fe 90 3e 00 c0 cd 23 4e 3e ┆Æ :!7 q RNz > q > #N>┆ 0x046dc0…046de0 00 1f c9 36 10 c3 88 66 36 10 e5 23 af 77 23 77 23 77 e1 c9 cd 2c 17 7d 29 29 11 be 71 19 c9 7e ┆ 6 f6 # w#w#w , å)) q ü┆ 0x046de0…046e00 e6 7f 77 c3 8e 66 7e e6 10 c8 7e f6 80 be 77 c4 8e 66 f6 80 c9 00 00 00 00 00 00 00 00 00 00 00 ┆ w fü ü w f ┆ 0x046e00…046e20 (18, 1, 13) 3e 00 c3 2d 4f 3c 3e 13 c4 a0 26 d5 2a 8b 39 eb 2a 89 39 cd 2c 17 d1 cd 68 17 d2 24 4f cd bd 4c ┆> -O<> & * 9 * 9 , h $O L┆ 0x046e20…046e40 d2 0b 4f eb 2a 8b 39 19 7a b3 37 3e ff 32 09 71 d1 c1 c3 38 1d 3a 48 02 21 86 45 be da 41 4f 7e ┆ O * 9 z 7> 2 q 8 :H ! E AOü┆ 0x046e40…046e60 3d d6 01 32 6d 38 3d 32 70 38 f5 c6 05 be da 52 4f 7e 32 71 38 f1 3d 32 6f 38 cd 04 5d 60 69 22 ┆= 2m8=2p8 ROü2q8 =2o8 Å`i"┆ 0x046e60…046e80 2d 71 11 0c 00 19 22 2f 71 cd a0 48 3e ff 32 ca 38 c3 a5 2f cd 69 50 2a 78 38 11 3a 02 cd 68 17 ┆-q "/q H> 2 8 / iP*x8 : h ┆ 0x046e80…046ea0 ca af 4f 3a 7f 38 b7 ca af 4f 21 80 38 7e 36 ff b7 cc 4d 50 cd 1f 31 cd 95 5f da ab 4f 3a 7e 38 ┆ O: 8 O! 8ü6 MP 1 _ O:ü8┆ 0x046ea0…046ec0 2a 7c 38 eb 2a 78 38 37 c3 eb 4f af 32 7f 38 af 32 80 38 cd fd 4f cd 04 27 2a 79 06 11 0a 00 cd ┆*ø8 *x87 O 2 8 2 8 O '*y ┆ 0x046ec0…046ee0 33 30 d2 d3 4f 79 b7 c2 b6 4f 21 f7 61 78 fe 20 da b6 4f e5 2a 78 38 22 7a 38 e1 22 78 38 eb 22 ┆30 Oy O! ax O *x8"z8 "x8 "┆ 0x046ee0…046f00 7c 38 eb 79 32 83 38 78 32 82 38 f5 e5 3a 73 38 21 7f 38 b6 c2 fa 4f 32 72 38 c3 fb 2f 01 a2 71 ┆ø8 y2 8x2 8 :s8! 8 O2r8 / q┆ 0x046f00…046f20 c5 cd 52 4e 01 ca 71 cd 62 4e e1 c3 c8 66 3a 18 37 fe 02 da 44 50 cd 87 27 cd 33 25 c0 3a 99 38 ┆ RN q bN f: 7 DP ' 3% : 8┆ 0x046f20…046f40 f5 3e 09 cd b0 32 cd a0 32 f1 32 99 38 cd 49 0b c0 cd 08 25 cd 70 32 cd 40 1e cd b3 24 3a 99 38 ┆ > 2 2 2 8 I % p2 @ $: 8┆ 0x046f40…046f60 32 9b 38 c9 af 32 99 38 af 32 94 38 c9 3a 18 37 b7 c8 cd 40 21 cd ba 24 01 3a c9 cd c4 4d e6 7f ┆2 8 2 8 2 8 : 7 @! $ : M ┆ 0x046f60…046f80 fe 0d c0 cd 5f 4d cd 88 45 cd 5f 4d cd a0 17 ca 5b 50 cd 79 50 da 66 50 c9 e6 7f fe 1f c8 e5 21 ┆ _M E _M ÆP yP fP !┆ 0x046f80…046fa0 95 03 be e1 c8 fe 1e 11 25 02 ca 96 50 fe 20 dc 6e 0a d0 11 25 02 1a b7 c0 37 c9 cd 69 50 21 84 ┆ % P n % 7 iP! ┆ 0x046fa0…046fc0 38 7e 36 00 b7 ca 31 51 cd 57 52 da cc 50 60 69 2b 7e 2b b6 2b b6 2b c2 bc 50 36 00 21 02 00 09 ┆8ü6 1Q WR P`i+ü+ + + P6 ! ┆ 0x046fc0…046fe0 5e 23 56 13 13 7b e6 fc b2 ca fd 50 cd f2 5c 1f 1f e6 3f 47 cd f5 32 80 47 3a 6d 38 1f e6 7f fe ┆^#V æ P Ø ?G 2 G:m8 ┆ 0x046fe0…047000 0e da e6 50 3e 0e b8 d2 eb 50 78 3d cd 01 5d af 02 cd 40 54 11 00 10 63 6b cd 62 4e 37 f5 3e 7e ┆ P> Px= Å @T ck bN7 >ü┆ 0x047000…047020 (18, 1, 14) 71 e1 22 3f 71 eb 22 41 71 eb 2a 45 71 22 43 71 2a 3f 71 e5 21 3c 71 35 e1 ca 24 58 e3 cd 62 4d ┆q "?q "Aq *Eq"Cq*?q !<q5 $X bM┆ 0x047020…047040 e3 da 53 57 fe 8d ca b1 57 fe 0d ca ab 57 fe 8a ca 7b 57 e6 7f fe 0c ca 96 57 fe 0a c2 a3 56 c3 ┆ SW W W æW W V ┆ 0x047040…047060 8d 57 e3 2b e3 af 32 0a 71 3a ae 03 cd 6d 57 20 c3 db 57 3a ac 03 cd 6d 57 02 c3 db 57 3a ad 03 ┆ W + 2 q: mW W: mW W: ┆ 0x047060…047080 cd 66 57 c3 db 57 fe 20 c8 32 47 71 c9 cd 66 57 e3 3a 39 71 b6 32 39 71 23 e3 c9 cd 26 59 ca 8d ┆ fW W 2Gq fW :9q 29q# &Y ┆ 0x047080…0470a0 57 3a b1 03 cd 66 57 3a b8 03 c3 dd 57 3a b0 03 cd 66 57 c3 db 57 cd 26 59 3e 0c ca a3 56 cd ef ┆W: fW: W: fW W &Y> V ┆ 0x0470a0…0470c0 54 ca 42 57 cd 70 57 20 c3 81 57 3a b3 03 c3 b4 57 3a b2 03 cd 66 57 e3 cd 62 4d da d1 57 fe 0a ┆T BW pW W: W: fW bM W ┆ 0x0470c0…0470e0 ca da 57 fe 8a c2 d2 57 cd 26 59 ca da 57 c3 d9 57 23 3a af 03 cd 6d 57 40 2b e3 3e 20 4f cd b1 ┆ W W &Y W W#: mW@+ > O ┆ 0x0470e0…047100 55 e5 2a 45 71 7a cd 3f 17 22 45 71 e1 e3 c5 01 35 71 3a 39 71 cd 8f 4e c1 e3 af 77 cc fc 58 c2 ┆U *Eqz ? "Eq 5q:9q N w X ┆ 0x047100…047120 05 58 cd 30 59 3a 48 71 47 b1 c3 0f 58 77 23 1d c2 0d 58 3a 47 71 b0 77 cd 49 0b e1 01 35 71 cd ┆ X 0Y:HqG Xw# X:Gq w I 5q ┆ 0x047120…047140 52 4e c1 c9 3a 3d 71 3c 32 3e 71 3d b7 ca 64 58 fe 10 f2 64 58 e5 fe 03 f2 43 58 21 91 71 34 35 ┆RN :=q<2>q= dX dX CX! q45┆ 0x047140…047160 c2 63 58 21 b8 03 cd 3f 17 7e b7 ca 63 58 3e 3c e3 cd d6 55 e3 7e e1 c4 d6 55 3e 3e c4 d6 55 ca ┆ cX! ? ü cX>< U ü U>> U ┆ 0x047160…047180 49 57 e5 e1 e3 d5 e5 cd 9a 4e cd 73 58 e1 d1 e3 c3 13 57 c5 d5 e5 af 32 3d 71 3d 32 3c 71 3a 3a ┆IW N sX W 2=q=2<q::┆ 0x047180…0471a0 71 e6 02 c2 9e 58 16 01 01 c2 71 0a e6 90 fe 90 cc ce 58 03 03 03 03 14 7a fe 10 fa 8b 58 3a 91 ┆q X q X z X: ┆ 0x0471a0…0471c0 71 b7 ca c3 58 3a 3a 71 e6 04 01 c2 71 cc 23 4e ca c0 58 3f 01 c6 71 d4 23 4e ca c3 58 da c3 58 ┆q X::q q #N X? q #N X X┆ 0x0471c0…0471e0 3e 80 fe af 32 48 71 21 3c 71 34 c3 5b 1a c5 d5 e5 cd d7 58 c3 5b 1a 03 0a 95 6f 03 0a 9c c0 03 ┆> 2Hq!<q4 Æ X Æ o ┆ 0x0471e0…047200 0a 9b c0 7d 21 3c 71 be d0 b7 c2 f4 58 7a 21 3e 71 be d8 af 32 3c 71 7a 32 3d 71 c9 3a 96 03 2f ┆ å!<q Xz!>q 2<qz2=q : /┆ 0x047200…047220 (18, 1, 15) 16 ad 21 26 37 be da 26 5f c2 0e 5f 16 cc 3c 21 28 37 be da 1b 5f c2 26 5f 16 d2 cd 37 5f c8 16 ┆ !&7 &_ _ <!(7 _ &_ 7_ ┆ 0x047220…047240 a1 3d c8 16 a3 c9 16 20 cd 21 33 c4 37 5f c8 cd 1f 5f 7a ee 80 57 c9 7b b7 1f f5 21 09 36 cd 3f ┆ = !3 7_ _z W æ ! 6 ?┆ 0x047240…047260 17 f1 7e da 4a 5f 0f 0f 0f 0f e6 0f c9 03 03 03 06 03 09 03 0c 04 00 04 03 04 06 04 09 04 0c 06 ┆ ü J_ ┆ 0x047260…047280 00 06 03 06 06 04 0f 07 00 07 03 07 06 07 09 07 0c 07 0f 07 12 07 15 07 18 07 1b 07 1e 07 21 07 ┆ ! ┆ 0x047280…0472a0 24 07 27 07 2a 07 2d 11 00 11 03 11 06 11 0c 11 0f 11 12 11 15 3a 81 38 c6 07 67 44 4c 54 1e 04 ┆$ ' * - : 8 gDLT ┆ 0x0472a0…0472c0 cd 7b 1c ca be 5f cd 2c 27 cd b1 1b cd c6 17 3f d8 21 ac 5f cd 3f 17 7e 67 d6 07 32 81 38 3a 00 ┆ æ _ ,' ? ! _ ? üg 2 8: ┆ 0x0472c0…0472e0 38 b7 ca cb 5f cd 6e 0b c3 d3 5f 1d c2 a0 5f 15 c2 9e 5f 0d c2 9d 5f 05 c2 9c 5f c9 22 01 05 07 ┆8 _ n _ _ _ _ _ " ┆ 0x0472e0…047300 09 0c 0f 13 17 1c 21 86 38 35 cd 5f 4d c3 88 45 cd c4 4d cd fc 5f c3 88 45 cd c7 4d cd a0 17 ca ┆ ! 85 _M E M _ E M ┆ 0x047300…047320 0d 60 cd 79 50 da f9 5f c9 cd a0 17 c0 cd c7 4d d8 e6 7f fe 0d c8 23 c9 21 88 45 e5 cd c4 4d cd ┆ ` yP _ M # ! E M ┆ 0x047320…047340 fc 5f 23 03 cd c7 4d d8 cd a6 17 ca 24 60 e6 7f fe 0a ca 09 60 cd 87 17 c8 c3 46 60 cd c7 4d d8 ┆ _# M $` ` F` M ┆ 0x047340…047360 cd b2 17 23 c8 2b cd 90 17 c2 3c 60 23 c9 21 86 38 35 cd 54 4d cd 67 60 cd 89 60 c3 88 45 3a 49 ┆ # + <`# ! 85 TM g` ` E:I┆ 0x047360…047380 02 3d fe af c3 df 65 cd 62 4d d8 e6 7f fe 0d ca 8f 61 cd 87 17 c8 2b 03 cd 62 4d d8 cd b2 17 c8 ┆ = e bM a + bM ┆ 0x047380…0473a0 cd 90 17 c2 78 60 2b 03 c9 cd 62 4d d8 cd a6 17 ca 89 60 2b 03 c9 cd a4 60 3a 69 38 21 6f 38 be ┆ x`+ bM `+ `:i8!o8 ┆ 0x0473a0…0473c0 f2 0d 61 c9 cd db 60 7e e6 02 c2 fb 60 c3 e8 65 2a 2b 71 11 fc ff 19 7e e6 04 c2 fb 60 cd e8 65 ┆ a `ü ` e*+q ü ` e┆ 0x0473c0…0473e0 cd e3 60 f2 cf 60 fc 65 61 cd db 60 22 2b 71 cd 5f 4d fe 8a c0 cd 8b 52 c3 b0 60 2a 2b 71 23 23 ┆ ` ` ea `"+q _M R `*+q##┆ 0x0473e0…047400 23 23 c9 3a 69 38 3d c3 e8 5c cd f5 32 cd 04 5d 60 69 c3 e8 65 2a 2d 71 c3 e8 65 21 00 00 22 7f ┆## :i8= Ø 2 Å`i e*-q e! " ┆ 0x047400…047420 (19, 0, 1) 00 00 00 11 f4 66 cd d4 66 cd e6 66 3e 05 cc 81 26 3e ff cd 19 33 fe af c5 d5 e5 57 44 4d cd 50 ┆ f f f> &> 3 WDM P┆ 0x047420…047440 67 ca 5b 1a 7a b7 c4 2c 27 cd 88 45 af 32 b3 38 c3 1e 67 21 92 71 c3 11 67 cd 5f 4d d8 cd 2c 27 ┆g Æ z ,' E 2 8 g! q g _M ,'┆ 0x047440…047460 cd 19 33 21 00 08 5d cd cd 4e cd 88 45 c3 39 67 d5 cd 49 0b cd 52 4e 7b b4 b5 ca 87 67 7b b7 fa ┆ 3! Å N E 9g I RNæ gæ ┆ 0x047460…047480 73 67 c2 6b 67 7c fe 08 da 82 67 1e 00 21 00 08 c3 82 67 3c c2 7d 67 7c fe f9 d2 82 67 1e ff 21 ┆sg kgø g ! g< ågø g !┆ 0x047480…0474a0 00 f8 cd cd 4e f6 01 d1 c9 cd 11 28 c3 4f 68 cd 38 1d 21 b2 71 cd c8 66 cd 17 56 cd 38 1d cd 88 ┆ N ( Oh 8 ! q f V 8 ┆ 0x0474a0…0474c0 45 cd 4b 5c 21 00 00 22 50 71 c3 38 1d 3a 51 71 b7 fa 62 4d 3a 50 71 fe f3 da 62 4d 37 c9 e6 7f ┆E KØ! "Pq 8 :Qq bM:Pq bM7 ┆ 0x0474c0…0474e0 e5 21 50 71 cd 94 1d e1 c9 3a 96 03 b7 c8 2a 2b 71 7e e6 6e c0 44 4d cd c4 4e 7e cd 5f 25 37 c8 ┆ !Pq : *+qü n DM Nü _%7 ┆ 0x0474e0…047500 af c9 cd 87 17 c8 ee 09 4f ee 09 2a 22 71 eb 21 94 03 ae b2 b3 c8 cd 21 33 c0 2a 24 37 cd 2c 17 ┆ O *"q ! !3 *$7 , ┆ 0x047500…047520 45 2b 24 25 f8 c5 7a b3 c4 c9 67 c1 d8 cd a9 64 2a 24 37 22 22 71 cd 38 1d 3e a0 cd 6b 46 0c 0d ┆E+$% z g d*$7""q 8 > kF ┆ 0x047520…047540 37 3e 20 c4 6a 1d d4 6d 1f 05 c2 16 68 c9 4f cd ac 17 c4 9d 17 c8 cd 21 33 c0 21 22 71 79 cd 94 ┆7> j m h O !3 !"qy ┆ 0x047540…047560 1d cd a4 68 d0 cd c9 67 d8 3e ff 32 4a 71 fe af 32 4f 71 cd ba 68 da 8f 68 cd 00 69 cd 4b 5c da ┆ h g > 2Jq 2Oq h h i KØ ┆ 0x047560…047580 8f 68 2a 5b 71 eb 2a 28 37 cd 2c 17 22 5e 71 2b 7c b7 fa 83 68 cd cc 6b d8 3a 21 02 b7 c4 06 6b ┆ h*Æq *(7 , "^q+ø h k :! k┆ 0x047580…0475a0 cd 4b 5c cd 37 63 cd 3d 6a cd 4b 5c d2 59 68 cd 38 1d cd 88 45 af 32 96 38 c9 2a 22 71 eb 2a 24 ┆ KØ 7c =j KØ Yh 8 E 2 8 *"q *$┆ 0x0475a0…0475c0 37 c3 ae 68 2a 28 37 eb 2a 22 71 c3 ae 68 7a 94 ca b7 68 37 f8 3f c9 7b 95 c9 cd 8f 67 cd 54 4d ┆7 h*(7 *"q hz h7 ? æ g TM┆ 0x0475c0…0475e0 e5 2a 50 71 cd 9d 68 e1 d0 cd 62 4d d8 cd 87 17 37 c8 fe a0 ca e3 68 2b cd 9c 6a da e9 68 7e e6 ┆ *Pq h bM 7 h+ j hü ┆ 0x0475e0…047600 7f 77 23 cd be 67 c3 c0 68 cd 88 45 2a 50 71 eb 2a 24 37 22 50 71 cd 2c 17 45 cd 9e 6b c3 54 4d ┆ w# g h E*Pq *$7"Pq , E k TM┆ 0x047600…047620 (19, 0, 2) 9a 09 05 14 00 00 00 00 d9 44 00 00 00 c9 c3 12 3e c9 3a 86 07 b7 c4 97 43 21 6a 3c 11 9c 3c cd ┆ D > : C!j< < ┆ 0x047620…047640 c8 40 21 22 3e e5 af 32 58 3c cd 49 13 cd 7a 3f 2a 9d 3d cd 53 3e c2 c3 3e 36 00 23 22 9d 3d 21 ┆ @!"> 2X< I z?* = S> >6 #" =!┆ 0x047640…047660 26 3e e5 d5 21 55 3c 34 35 c8 35 f5 cd 59 3f f1 c3 44 3e cd 93 3e 11 a8 3e c8 11 45 3f fe 0d c8 ┆&> !U<45 5 Y? D> > > E? ┆ 0x047660…047680 11 2f 43 fe 0a c8 11 2f 43 fe 0c c8 11 60 3f fe 1f c8 11 89 3f fe 1a c8 11 21 42 fe 0b c8 11 54 ┆ /C /C `? ? !B T┆ 0x047680…0476a0 3f fe 09 ca 89 3e fe 1e c0 36 00 23 cd b5 3e d6 20 bf c9 cd af 3e fe 0d c0 e5 23 cd af 3e fe 0a ┆? > 6 # > > # > ┆ 0x0476a0…0476c0 c2 a5 3e c1 c9 e1 7e c9 af 02 21 55 3c 34 c9 cd b5 3e e6 7f c9 7e 3c cc 4e 13 7e b7 c0 cd 31 13 ┆ > ü !U<4 > ü< N ü 1 ┆ 0x0476c0…0476e0 c3 ba 3e 21 55 3c 7e fe 02 f4 58 3f 7e 36 00 32 56 3c cd 14 3f af 32 b3 3c 2a b0 3c cd 93 3e c2 ┆ >!U<ü X?ü6 2V< ? 2 <* < > ┆ 0x0476e0…047700 f3 3e 23 e5 21 b3 3c 34 34 cd aa 3e 7e e1 fe 02 fa dc 3e 22 9d 3d cd 99 3f 2a ae 3c 3a b2 3c cd ┆ ># ! <44 >ü >" = ?* <: < ┆ 0x047700…047720 05 3f 3a b3 3c 4f 0c 0d c8 7e 3c cc 4e 13 36 00 23 c3 07 3f 21 00 00 39 11 20 00 42 4b cd 2c 17 ┆ ?: <O ü< N 6 # ?! 9 BK , ┆ 0x047720…047740 f9 eb 21 6a 3c d5 e5 c5 cd c2 16 21 9c 3c 11 8a 3c cd c8 40 2a 9d 3d 22 ae 3c cd 23 40 c1 d1 e1 ┆ !j< ! < < @* =" < #@ ┆ 0x047740…047760 cd c2 16 f9 c9 d5 11 a1 06 af 32 85 3c 32 80 3c cd c8 44 d1 c9 7e b7 c8 35 d5 11 96 06 c3 49 3f ┆ 2 <2 < D ü 5 I?┆ 0x047760…047780 cd 0d 07 11 e7 06 c3 c8 44 f6 ff cd 31 13 01 00 04 cd 49 13 0b 78 b1 c2 71 3f 21 4f 3c 7e 36 00 ┆ D 1 I x q?!O<ü6 ┆ 0x047780…0477a0 b7 fa 69 3f 3a 50 3c b7 c8 11 f8 06 cd c8 44 cd 10 07 af 32 02 38 c3 31 13 af 32 58 3c 3a b9 3c ┆ i?:P< D 2 8 1 2X<: <┆ 0x0477a0…0477c0 e6 01 47 0e 02 3a ba 3c e6 04 57 2a 55 3c 3a e9 3c b7 ca e5 3f fa bb 3f 21 00 00 7d fe 02 fc 1d ┆ G : < W*U<: < ? ?! å ┆ 0x0477c0…0477e0 40 cd 14 40 78 cd d8 3f 21 56 3c 79 cd d3 3f 21 55 3c 7a f5 cd 55 3f f1 b7 c8 32 57 3c c5 d5 cd ┆@ @x ?!V<y ?!U<z U? 2W< ┆ 0x0477e0…047800 29 40 d1 c1 c9 7d b7 cc 1d 40 cd 14 40 7c b7 f5 c4 0d 40 78 cd d8 3f f1 c4 0d 40 79 cd d8 3f 7a ┆)@ å @ @ø @x ? @y ?z┆ 0x047800…047820 (19, 0, 3) 76 3c 2a 9d 3d cd 0c 40 ca 4e 3f fe 03 ca 4e 3f fe 06 ca 4e 3f fe 07 ca 4e 3f fe 11 ca 4e 3f fe ┆v<* = @ N? N? N? N? N? ┆ 0x047820…047840 17 ca 4e 3f fe 05 ca 4e 3f fe 12 ca 4e 3f fe 21 d2 4e 3f 46 36 00 23 cd 23 40 c2 47 3f cd a8 3e ┆ N? N? N? ! N?F6 # #@ G? >┆ 0x047840…047860 7e 36 00 23 d6 20 4f 78 cd fc 40 c3 05 3f 22 ae 3c 21 6a 3c 11 8a 3c 01 12 00 cd c2 16 21 c4 3c ┆ü6 # Ox @ ?" <!j< < ! <┆ 0x047860…047880 01 22 00 cd 08 17 af 32 c3 3c 3a 54 3c b7 cc 3b 41 cd b7 3f cd 7b 15 c1 d1 e1 cd c2 16 f9 c9 32 ┆ " 2 <:T< ;A ? æ 2┆ 0x047880…0478a0 53 3c c9 32 54 3c c9 cd dc 43 f6 ff cd 31 13 01 00 04 cd 49 13 0b 78 b1 c2 92 3f 21 4f 3c 7e 36 ┆S< 2T< C 1 I x ?!O<ü6┆ 0x0478a0…0478c0 00 b7 fa 87 3f 3a 50 3c b7 c8 cd b1 43 cd 10 07 af 32 02 38 c3 31 13 3e ff fe af 32 58 3c af 32 ┆ ?:P< C 2 8 1 > 2X< 2┆ 0x0478c0…0478e0 d2 3c 3a c3 3c 21 58 3c b6 c2 f0 3f 2a 7a 3c eb 2a 81 3c cd 2c 17 eb 2a ac 3c 19 cd 18 17 e5 2a ┆ <: <!X< ?*z< * < , * < *┆ 0x0478e0…047900 9a 3c 19 cd 18 17 d1 cd 68 17 d2 f0 3f f6 ff fe af 32 c2 3c f5 cc 5e 40 f1 c4 af 40 cd 7b 1c c4 ┆ < h ? 2 < ^@ @ æ ┆ 0x047900…047920 49 13 c9 11 6a 3c 01 10 00 c3 c2 16 cd a8 3e e6 7f fe 0d c8 fe 0a c8 fe 0c c8 fe 1a c8 fe 1f c8 ┆I j< > ┆ 0x047920…047940 c3 2e 40 e6 7f fe 1c c8 fe 15 c8 fe 1d c8 fe 1b c8 fe 09 c8 fe 1e c9 2b 7e 3c c2 42 40 2a a1 3d ┆ .@ +ü< B@* =┆ 0x047940…047960 2b 2b 7e c9 11 6f 3c 19 1a be 3e 14 cd 56 40 3e 16 cd 56 40 3e 19 c4 fc 40 23 13 1a be c9 2a 9a ┆++ü o< > V@> V@> @# * ┆ 0x047960…047980 3c cd 7f 43 21 20 00 cd 44 40 21 8a 3c cd 03 40 2a ae 3c 1e 00 cd 0c 40 ca 94 40 46 23 cd 23 40 ┆< C! D@! < @* < @ @F# #@┆ 0x047980…0479a0 c2 89 40 cd 9b 3e 4f 23 1c 78 cd fc 40 1c 7b fe fe da 75 40 3e 20 cd fc 40 22 b0 3c 22 9d 3d 7b ┆ @ >O# x @ æ u@> @" <" =æ┆ 0x0479a0…0479c0 32 b2 3c 21 6a 3c 11 9c 3c 01 12 00 c3 c2 16 3a c7 3c 32 c6 3c 21 32 00 cd 44 40 21 9c 3c cd 03 ┆2 <!j< < : <2 <!2 D@! < ┆ 0x0479c0…0479e0 40 2a ac 3c cd 7f 43 2a b0 3c 3a b2 3c 5f cd 37 40 47 7b b7 ca f6 40 48 cd 37 40 47 cd 23 40 79 ┆@* < C* <: <_ 7@Gæ @H 7@G #@y┆ 0x0479e0…047a00 c2 ef 40 1d ca f0 40 d6 20 4f cd 37 40 78 46 1d cd fc 40 c3 d2 40 2a ac 3c c3 7f 43 c5 d5 e5 11 ┆ @ @ O 7@xF @ @* < C ┆ 0x047a00…047a20 (19, 0, 4) 2a 9a 3c cd 5c 43 21 20 00 cd e6 40 21 8a 3c cd a5 40 2a ae 3c 1e 00 cd ae 40 ca 39 41 46 23 cd ┆* < ØC! @! < @* < @ 9AF# ┆ 0x047a20…047a40 c5 40 c2 2e 41 cd 4a 3f 7e d6 20 4f 23 1c 78 cd a1 41 1c 7b fe fe da 17 41 3e 20 cd a1 41 22 b0 ┆ @ .A J?ü O# x A æ A> A" ┆ 0x047a40…047a60 3c 22 9d 3d 7b 32 b2 3c 21 6a 3c 11 9c 3c 01 12 00 c3 c2 16 3a c7 3c 32 c6 3c 21 32 00 cd e6 40 ┆<" =æ2 <!j< < : <2 <!2 @┆ 0x047a60…047a80 21 9c 3c cd a5 40 2a ac 3c cd 5c 43 2a b0 3c 3a b2 3c 5f cd d9 40 47 7b b7 ca 9b 41 48 cd d9 40 ┆! < @* < ØC* <: <_ @Gæ AH @┆ 0x047a80…047aa0 47 cd c5 40 79 c2 94 41 1d ca 95 41 d6 20 4f cd d9 40 78 46 1d cd a1 41 c3 77 41 2a ac 3c c3 5c ┆G @y A A O @xF A wA* < Ø┆ 0x047aa0…047ac0 43 c5 d5 e5 11 5b 1a d5 32 bf 3c 57 e6 7f 47 fe 20 d2 99 42 fe 07 ca 99 42 fe 06 ca 99 42 14 15 ┆C Æ 2 <W G B B B ┆ 0x047ac0…047ae0 f2 c6 41 32 d2 3c 11 72 3c fe 15 ca de 41 11 74 3c fe 1d ca de 41 11 73 3c fe 1c c2 e6 41 eb 71 ┆ A2 < r< A t< A s< A q┆ 0x047ae0…047b00 3e ff 32 c3 3c c9 11 c9 06 fe 11 ca 06 42 11 ce 06 fe 17 ca 06 42 11 d3 06 fe 05 ca 06 42 11 d8 ┆> 2 < B B B ┆ 0x047b00…047b20 06 fe 12 c2 3e 42 cd e9 43 cd e0 41 3a 58 3c b7 f8 1a 3d cc 24 42 3c 3c 3d c8 f5 13 1a cd 96 44 ┆ >B C A:X< = $B<<= D┆ 0x047b20…047b40 f1 c3 18 42 f5 13 1a 1b fe 0e ca 39 42 fe 0f c2 7c 17 af 32 75 3c f1 f1 c9 3e 80 c3 33 42 fe 03 ┆ B 9B ø 2u< > 3B ┆ 0x047b40…047b60 c2 4e 42 cd e0 41 3a 58 3c b7 f8 c3 29 40 11 93 42 21 6a 3c 1a b8 ca 31 43 23 13 3c c2 54 42 78 ┆ NB A:X< )@ B!j< 1C# < TBx┆ 0x047b60…047b80 fe 08 ca 1e 43 01 67 43 11 6a 43 21 70 3c fe 16 ca 34 43 d5 50 59 c1 2b fe 14 ca 34 43 fe 19 ca ┆ C gC jC!p< 4C PY + 4C ┆ 0x047b80…047ba0 f4 42 fe 0b c2 92 42 3a 58 3c b7 f8 cd e9 43 c3 3d 40 ff 02 04 13 18 10 ff c5 cd 53 13 c1 48 cd ┆ B B:X< C =@ S H ┆ 0x047ba0…047bc0 bf 42 3a 6a 3c b7 c8 78 fe 20 c8 3a 91 06 3d c8 f5 2a ea 3c eb cd 3e 43 cd bf 42 f1 c3 ae 42 51 ┆ B:j< x : = * < >C B BQ┆ 0x047bc0…047be0 3a 58 3c b7 f8 cd da 42 3a 6b 3c b7 c8 3a 92 06 3d c8 f5 cd da 42 f1 c3 d0 42 7a cd f4 42 7a fe ┆:X< B:k< : = B Bz Bz ┆ 0x047be0…047c00 20 c8 3a 6c 3c b7 3a 0c 07 c4 f4 42 3a 6d 3c b7 3a 0b 07 c8 c5 d5 e5 21 5b 1a e5 fe 20 c8 d2 5a ┆ :l< : B:m< : !Æ Z┆ 0x047c00…047c20 (19, 0, 5) c5 e5 cd 38 1d 01 b6 71 3e 10 cd 8f 4e 21 52 71 01 08 00 cd 08 17 e1 c1 16 20 cd 5a 69 d8 ca 1a ┆ 8 q> N!Rq Zi ┆ 0x047c20…047c40 69 3e 0a 32 5a 71 3a 56 71 b7 c0 e5 3a 59 71 b7 ca 39 69 21 03 3a 22 07 38 e1 cd 5a 69 d8 e5 21 ┆i> 2Zq:Vq :Yq 9i! :" 8 Zi !┆ 0x047c40…047c60 5a 71 35 e1 c2 26 69 2a 57 71 22 5b 71 2a be 71 22 ba 71 2a c0 71 22 bc 71 c9 cd 97 6a d8 cd ae ┆Zq5 &i*Wq"Æq* q" q* q" q j ┆ 0x047c60…047c80 6a d8 fe 0d c2 6c 69 cd 8f 61 37 c9 e6 7f cd 87 17 37 c8 fe 1f c2 7a 69 3e 1e 2b 77 23 f5 5f cd ┆j li a7 7 zi> +w# _ ┆ 0x047c80…047ca0 c1 69 f1 57 e5 2a 50 71 e5 cd be 67 d5 2a 28 37 eb 2a 50 71 fe 1e c2 9a 69 23 cd ae 68 d1 d2 ba ┆ i W *Pq g *(7 *Pq i# h ┆ 0x047ca0…047cc0 69 3a 57 71 b7 c2 ba 69 e1 22 57 71 e1 e5 2b c5 01 be 71 3e 10 cd 8f 4e c1 e5 e1 e1 3a 57 71 b7 ┆i:Wq i "Wq + q> N :Wq ┆ 0x047cc0…047ce0 c9 7b cd 00 6b ca d8 69 7a cd 00 6b 3e 00 ca e3 69 7b cd ac 17 ca dc 69 32 59 71 c9 7a cd ac 17 ┆ æ k iz k> iæ i2Yq z ┆ 0x047ce0…047d00 c8 3e 01 c5 e5 47 cd 38 1d 21 52 71 7e 70 23 86 77 7a cd b4 17 78 ca fa 69 af 4f 23 7e 71 23 86 ┆ > G 8 !Rqüp# wz x i O#üq# ┆ 0x047d00…047d20 77 7a 32 5d 71 2a 50 71 fe 1e c2 0e 6a 23 22 5b 71 21 56 71 34 e1 e5 2b 78 f5 01 ba 71 3e 10 cd ┆wz2Åq*Pq j#"Æq!Vq4 +x q> ┆ 0x047d20…047d40 8f 4e f1 3d c2 38 6a 3a 09 71 f5 cd 9f 4d cd c7 4d f6 80 77 f1 32 09 71 e1 c1 c3 38 1d 01 ba 71 ┆ N = 8j: q M M w 2 q 8 q┆ 0x047d40…047d60 c5 cd 9f 4d cd c7 4d 57 fe 1e c2 4f 6a 36 1f c1 cd 2e 4d 1e 32 cd 97 6a d8 1d ca 6e 6a cd ae 6a ┆ M MW Oj6 .M 2 j nj j┆ 0x047d60…047d80 d8 57 cd ac 17 ca 55 6a cd 87 17 37 c8 2b cd 88 45 3a 29 02 3d 5f cd 38 1d 3e 8d cd 6b 46 3e 0a ┆ W Uj 7 + E:) =_ 8 > kF> ┆ 0x047d80…047da0 cd 6b 46 1d f2 76 6a cd 2c 27 2a 24 37 22 50 71 45 cd 9e 6b c3 54 4d 3a 4f 71 b7 c8 c5 d5 e5 cd ┆ kF vj ,'*$7"PqE k TM:Oq ┆ 0x047da0…047dc0 9a 4e 01 b2 71 cd 23 4e e1 d1 c1 c0 37 c9 cd 62 4d d8 fe 8d ca be 6a fe a0 ca be 6a b7 c9 2b cd ┆ N q #N 7 bM j j + ┆ 0x047dc0…047de0 88 45 cd 54 4d cd 62 4d da e2 6a fe a0 ca c5 6a fe 8d cc 4b 5c c2 de 6a cd 8f 61 c3 c5 6a 2b cd ┆ E TM bM j j KØ j a j+ ┆ 0x047de0…047e00 e8 6a cd de 45 c3 5f 4d cd 96 17 c8 e6 7f fe 0c c8 7a e6 7f cd 00 6b c8 cd ac 17 c8 2b 36 20 c9 ┆ j E _M z k +6 ┆ 0x047e00…047e20 (19, 0, 6) b7 c8 21 55 3c 35 cd 0d 40 7a cd d8 3f d5 11 a8 06 c3 49 3f 7c b7 c0 78 b1 4f 06 00 c9 7a b1 4f ┆ !U<5 @z ? I?ø x O z O┆ 0x047e20…047e40 16 00 c9 3e ff 32 57 3c fe af 32 58 3c cd 4b 40 3a b4 3c cd 3f 40 3c 21 91 06 be da 2a 40 c9 b7 ┆ > 2W< 2X< K@: < ?@<! *@ ┆ 0x047e40…047e60 ca 48 40 3a 58 3c b7 f0 33 33 c9 af 32 59 3c cd 64 40 3a b5 3c cd 3f 40 3a 59 3c 3c 21 92 06 be ┆ H@:X< 33 2Y< d@: < ?@:Y<<! ┆ 0x047e60…047e80 da 4c 40 c9 f6 ff 32 5a 3c cd 7a 40 cd 43 40 3a b6 3c b7 cd 7a 40 3a b7 3c b7 f5 21 5a 3c 34 f1 ┆ L@ 2Z< z@ C@: < z@: < !Z<4 ┆ 0x047e80…047ea0 c8 3e ff 3c 32 5b 3c cd 9a 40 3a 5a 3c b7 c0 3a 5b 3c 21 69 3c be da 83 40 c9 01 0e 00 21 5c 3c ┆ > <2Æ< @:Z< :Æ<!i< @ !Ø<┆ 0x047ea0…047ec0 cd 08 17 cd 1e 41 cd 7b 1c c4 49 13 3a e8 3c 21 58 3c b6 f8 21 b4 3c 01 0b 00 c3 08 17 e5 11 6a ┆ A æ I : <!X< ! < j┆ 0x047ec0…047ee0 3c cd c8 40 e1 11 b4 3c 01 0b 00 c3 c2 16 cd b5 3e e6 7f fe 0d c8 fe 0a c8 fe 0c c8 fe 1a c8 fe ┆< @ < > ┆ 0x047ee0…047f00 1f c8 c3 f0 40 e6 7f fe 1c c8 fe 15 c8 fe 1d c8 fe 09 c8 fe 1e c9 11 6f 3c 19 1a be 3e 14 cd 16 ┆ @ o< > ┆ 0x047f00…047f20 41 3e 16 cd 16 41 3e 19 cd 16 41 c8 7e b7 3e 01 c2 15 41 3e 0e b7 c4 69 41 23 13 1a be c9 3a 80 ┆A> A> A ü > A> iA# : ┆ 0x047f20…047f40 3c b7 c4 45 3f af 32 85 3c 21 20 00 cd f6 40 21 8a 3c cd bd 40 2a ae 3c 1e 00 cd ce 40 ca 59 41 ┆< E? 2 <! @! < @* < @ YA┆ 0x047f40…047f60 46 23 cd e5 40 c2 4e 41 cd 8c 3e 4f 23 1c 78 cd 69 41 1c 7b fe fe da 3a 41 22 b0 3c 7b 32 b2 3c ┆F# @ NA >O# x iA æ :A" <æ2 <┆ 0x047f60…047f80 21 6a 3c 11 9c 3c c3 c8 40 c5 d5 e5 11 5b 1a d5 57 e6 7f 47 fe 20 d2 2b 42 fe 07 ca 2b 42 fe 06 ┆!j< < @ Æ W G +B +B ┆ 0x047f80…047fa0 ca 2b 42 fe 15 c8 fe 1d c8 11 73 3c fe 1c c2 94 41 eb 71 c9 11 c9 06 fe 11 ca c8 44 11 ce 06 fe ┆ +B s< A q D ┆ 0x047fa0…047fc0 17 ca c8 44 11 d3 06 fe 05 ca c8 44 11 d8 06 fe 12 ca c8 44 fe 03 c2 bf 41 cd 43 40 c3 69 3f 11 ┆ D D D A C@ i? ┆ 0x047fc0…047fe0 25 42 21 6a 3c 1a b8 ca b0 44 23 13 3c c2 c5 41 78 fe 08 ca 4f 44 06 ff 11 b5 06 fe 01 ca ea 41 ┆%B!j< D# < Ax OD A┆ 0x047fe0…048000 06 00 11 ba 06 fe 0e c2 f1 41 78 32 72 3c c3 c8 44 21 71 3c 11 dd 06 01 e2 06 fe 19 ca ba 44 01 ┆ Ax2r< D!q< D ┆ 0x048000…048020 (19, 0, 7) 5b 1a d5 32 bf 3c 57 e6 7f 47 fe 20 d2 c4 41 fe 07 ca c4 41 fe 06 ca c4 41 14 15 f2 21 41 32 d2 ┆Æ 2 <W G A A A !A2 ┆ 0x048020…048040 3c 11 72 3c fe 15 ca 39 41 11 74 3c fe 1d ca 39 41 11 73 3c fe 1c c2 41 41 eb 71 3e ff 32 c3 3c ┆< r< 9A t< 9A s< AA q> 2 <┆ 0x048040…048060 c9 11 c9 06 fe 11 ca 61 41 11 ce 06 fe 17 ca 61 41 11 d3 06 fe 05 ca 61 41 11 d8 06 fe 12 c2 6a ┆ aA aA aA j┆ 0x048060…048080 41 cd dc 43 cd 3b 41 c3 50 43 fe 03 c2 7a 41 cd 3b 41 3a 58 3c b7 f8 c3 87 3f 11 be 41 21 6a 3c ┆A C ;A PC zA ;A:X< ? A!j<┆ 0x048080…0480a0 1a b8 ca 37 43 23 13 3c c2 80 41 78 fe 08 ca 24 43 01 8a 43 11 8d 43 21 70 3c fe 16 ca 3a 43 d5 ┆ 7C# < Ax $C C C!p< :C ┆ 0x0480a0…0480c0 50 59 c1 2b fe 14 ca 3a 43 fe 19 ca 1f 42 fe 0b c4 38 00 3a 58 3c b7 f8 cd dc 43 c3 9b 3f 02 04 ┆PY + :C B 8 :X< C ? ┆ 0x0480c0…0480e0 13 18 10 ff c5 cd 53 13 c1 48 cd ea 41 3a 6a 3c b7 c8 78 fe 20 c8 3a 91 06 3d c8 f5 2a ea 3c eb ┆ S H A:j< x : = * < ┆ 0x0480e0…048100 cd 61 43 cd ea 41 f1 c3 d9 41 51 3a 58 3c b7 f8 cd 05 42 3a 6b 3c b7 c8 3a 92 06 3d c8 f5 cd 05 ┆ aC A AQ:X< B:k< : = ┆ 0x048100…048120 42 f1 c3 fb 41 7a cd 1f 42 7a fe 20 c8 3a 6c 3c b7 3a 0c 07 c4 1f 42 3a 6d 3c b7 3a 0b 07 c8 c5 ┆B Az Bz :l< : B:m< : ┆ 0x048120…048140 d5 e5 21 5b 1a e5 fe 20 c8 c3 ba 43 f5 3a 58 3c b7 fa 7c 17 f1 c5 d5 e5 21 5b 1a e5 f5 3a 86 07 ┆ !Æ C :X< ø !Æ : ┆ 0x048140…048160 3d f4 aa 42 f1 47 c5 cd 57 42 c1 cd 7a 42 21 00 00 22 36 3d c3 49 13 3a 18 07 b7 ca 49 13 cd 68 ┆= B G WB zB! "6= I : I h┆ 0x048160…048180 42 d0 cd a0 42 c3 57 42 3a 17 07 b7 ca 1a 07 3d ca 28 07 3d ca 4c 07 c3 58 07 3a 17 07 b7 4f 78 ┆B B WB: = ( = L X : Ox┆ 0x048180…0481a0 ca 1d 07 0d ca 33 07 0d ca 4f 07 c3 5b 07 3a 17 07 b7 fa 25 07 3d ca 37 07 3d ca 52 07 c3 64 07 ┆ 3 O Æ : % = 7 = R d ┆ 0x0481a0…0481c0 e5 2a 36 3d 23 cd 51 42 e1 c9 3a 86 07 3d ca d5 42 cd 8e 42 da ca 42 21 ec 3c e6 7f fe 11 c2 c3 ┆ *6=# QB : = B B B! < ┆ 0x0481c0…0481e0 42 36 00 fe 13 c2 ca 42 36 80 3a ec 3c b7 f0 cd a0 42 c3 aa 42 cd f8 42 21 ed 3c 34 3a 87 07 3d ┆B6 B6 : < B B B! <4: =┆ 0x0481e0…048200 be d0 3e 01 32 ed 3c cd a0 42 cd f8 42 7e b7 fa e7 42 35 3e 03 c3 45 42 cd 8e 42 21 ec 3c d8 e6 ┆ > 2 < B Bü B5> EB B! < ┆ 0x048200…048220 (19, 0, 8) 44 fe 19 ca 5a 44 fe 07 ca 5a 44 fe 06 ca 5a 44 ff e5 2a 36 3d 23 22 36 3d cd 49 13 e1 c9 2a 72 ┆D ZD ZD ZD *6=#"6= I *r┆ 0x048220…048240 3c 26 00 eb cd 25 17 c3 3e 43 7e b7 ca 31 43 50 59 c3 78 17 cd 2a 43 2a 74 3c 26 00 eb e9 3a c2 ┆<& % >Cü 1CPY x *C*t<& : ┆ 0x048240…048260 3c b7 ca 48 43 cd 25 17 e5 2a 7a 3c 19 22 7a 3c 2a 81 3c 19 22 81 3c e1 c9 21 00 00 eb 2a 7a 3c ┆< HC % *z< "z<* < " < ! *z<┆ 0x048260…048280 cd 2c 17 eb c3 45 43 cd 25 17 d5 e5 2a 83 3c 19 22 83 3c 2a 7c 3c 19 eb 2a 39 3e eb 7c b7 f4 68 ┆ , EC % * < " <*ø< *9> ø h┆ 0x048280…0482a0 17 dc 2c 17 22 7c 3c e1 d1 c9 3a 73 3c 5f 16 00 c3 6a 43 2a 7c 3c 7c b5 c8 eb 2a 39 3e cd 2c 17 ┆ , "ø< :s<_ jC*ø<ø *9> , ┆ 0x0482a0…0482c0 eb c3 6a 43 cd 0d 07 c3 20 3e cd e9 43 21 23 3e c3 99 44 3a 9e 07 4f 7c b5 c8 cd 12 17 eb cd 68 ┆ jC > C!#> D: Oø h┆ 0x0482c0…0482e0 17 d2 ca 43 21 00 00 c3 cf 43 eb 1b cd 2c 17 79 4b b7 ca e1 43 79 b7 1f 4f d2 e1 43 1b 23 7a b3 ┆ C! C , yK Cy O C #z ┆ 0x0482e0…048300 c8 78 b7 fc 1b 17 f6 01 c9 c5 d5 e5 21 5b 1a e5 3a 7b 3c b7 fc 59 43 af 2a 35 3e eb 2a 83 3c cd ┆ x !Æ :æ< YC *5> * < ┆ 0x048300…048320 b6 43 ca 11 44 22 83 3c 21 26 3e cd 99 44 c3 f7 43 2a 7a 3c eb 2a 37 3e 2b cd 68 17 da 20 44 eb ┆ C D" <!&> D C*z< *7>+ h D ┆ 0x048320…048340 2a 7e 3c eb cd 2c 17 22 81 3c eb 2a 35 3e 29 eb cd b3 43 c8 22 81 3c 2a 7e 3c cd 2c 17 04 05 fa ┆*ü< , " < *5>) C " <*ü< , ┆ 0x048340…048360 44 44 19 19 22 7e 3c 7b e6 01 4f 7a 1f 57 7b 1f 5f 21 29 3e cd 99 44 c3 11 44 f5 cd e9 43 f1 cd ┆DD "ü<æ Oz Wæ _!)> D D C ┆ 0x048360…048380 38 1d c5 d5 e5 fe 3c da 73 44 fe 60 d2 73 44 21 75 3c b6 21 5b 1a e5 fe 19 c2 88 44 21 71 3c cd ┆8 < sD ` sD!u< !Æ D!q< ┆ 0x048380…0483a0 31 43 3a 71 3c c3 2f 3e fe 06 c2 8f 44 3e 20 fe 07 c2 96 44 3e 7f 21 2c 3e e5 2a 58 3c 2d 2c e1 ┆1C:q< /> D> D> !,> *X<-, ┆ 0x0483a0…0483c0 f8 f5 c5 d5 e5 cd 3d 43 d2 b5 44 cd 11 43 e1 d1 c1 f1 c3 99 44 21 00 00 22 36 3d c3 ab 32 9b 1a ┆ =C D C D! "6= 2 ┆ 0x0483c0…0483e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x1…] 0x048400…048420 (19, 0, 9) fe 2d c8 fe 1e c9 3a 53 71 b7 c8 47 3a 5e 71 21 68 71 36 ff 34 90 d2 14 6b 80 21 55 71 96 d2 24 ┆ - :Sq G:^q!hq6 4 k !Uq $┆ 0x048420…048440 6b 86 77 af 4f b7 1f d2 34 6b 21 60 71 34 ca 34 6b 3c 35 35 32 69 71 78 21 55 71 96 91 32 6a 71 ┆k w O 4k!`q4 4k<552iqx!Uq 2jq┆ 0x048440…048460 01 b6 71 cd 2e 4d cd 38 1d cd 62 4d da 8c 6b b7 f2 49 6b e5 cd 38 1d 21 53 71 35 ca 8b 6b cd b2 ┆ q .M 8 bM k Ik 8 !Sq5 k ┆ 0x048460…048480 17 3a 68 71 c2 6e 6b 21 55 71 35 f2 7d 6b 21 69 71 35 f2 7d 6b 21 6a 71 35 fa 7d 6b 3d 3c e1 ca ┆ :hq nk!Uq5 åk!iq5 åk!jq5 åk=< ┆ 0x048480…0484a0 49 6b cd 8f 6b cd 54 4d c3 49 6b e1 3a 5e 71 cd 88 45 21 5e 71 be da 9a 6b 7e 47 7e 90 77 cd 38 ┆Ik k TM Ik :^q E!^q küGü w 8┆ 0x0484a0…0484c0 1d 78 b7 c8 fe 10 da ab 6b 3e 10 4f 78 91 47 c5 06 00 11 bc 6b cd b3 49 c1 c3 9e 6b a0 a0 a0 a0 ┆ x k> Ox G k I k ┆ 0x0484c0…0484e0 a0 a0 a0 a0 a0 a0 a0 a0 a0 a0 a0 a0 3a 24 02 2f 21 4f 71 b6 c0 3a 53 71 1f b7 1f 21 99 03 86 21 ┆ :$ /!Oq :Sq ! !┆ 0x0484e0…048500 5e 71 be d0 cd 5c 33 11 09 9b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆^q Ø3 ┆ 0x048500…048520 9a 10 01 14 00 00 00 00 e9 6e 00 00 00 c3 16 6c 00 00 c9 c3 e5 6d cd 7c 6e 21 21 09 cd 68 17 d2 ┆ n l m øn!! h ┆ 0x048520…048540 38 6c 3a ca 38 b7 ca 31 6c cd 82 33 01 03 d2 16 6c 21 ef 39 22 07 38 c9 21 85 39 cd 51 6e 2a 81 ┆8l: 8 1l 3 l! 9" 8 ! 9 Qn* ┆ 0x048540…048560 39 22 9b 3d 22 97 3d 22 95 3d 11 00 04 19 22 99 3d 22 a3 3d 22 ab 3d 22 a7 3d 22 a5 3d 36 ff 23 ┆9" =" =" = " =" =" =" =" =6 #┆ 0x048560…048580 22 9f 3d 22 9d 3d 01 fe 01 cd 08 17 36 ff 23 22 a1 3d 22 a9 3d 22 91 3d 11 c8 00 19 22 93 3d 19 ┆" =" = 6 #" =" =" = " = ┆ 0x048580…0485a0 11 be 00 19 22 f9 3c 11 08 00 19 11 96 0b 73 23 72 11 bf 00 19 22 51 3c 11 08 00 19 11 0e 3e 73 ┆ " < s#r "Q< >s┆ 0x0485a0…0485c0 23 72 23 3a ff 37 b7 ca c6 6c e5 11 86 12 19 eb 2a 85 39 01 00 ff 09 cd 68 17 da c5 6c 21 bb 3a ┆#r#: 7 l * 9 h l! :┆ 0x0485c0…0485e0 22 07 38 d1 c9 e5 22 83 39 cd 0d 33 3e ff 32 44 3d 3a 8b 36 b7 c2 13 6d f5 3a 17 07 fe 03 3a 90 ┆" 8 " 9 3> 2D=: 6 m : : ┆ 0x0485e0…048600 06 c2 e6 6c 3e 01 32 e8 3c 3d f5 2f ca f0 6c af 32 e6 3c 32 e7 3c f1 3e 01 ca 0f 6d 3a bf 06 b7 ┆ l> 2 <= / l 2 <2 < > m: ┆ 0x048600…048620 (19, 0, 10) c4 06 11 bf 06 21 6f 3c fe 14 ca c0 44 d5 50 59 c1 21 70 3c fe 16 ca c0 44 fe 0b c2 24 42 cd 43 ┆ !o< D PY !p< D $B C┆ 0x048620…048640 40 c3 7a 3f ff 02 04 13 18 10 ff c5 3a e8 3c 3c cc 89 44 c1 3a 67 3c 21 5b 3c be ca 41 42 f0 06 ┆@ z? : << D :g<!Æ< AB ┆ 0x048640…048660 20 3a 6f 3c e6 01 4f 3a 70 3c e6 04 b1 ca 55 42 fe 05 c2 57 42 3e 02 21 57 3c a6 c2 60 42 06 20 ┆ :o< O:p< UB WB> !W< `B ┆ 0x048660…048680 48 3a 58 3c b7 f8 cc 94 42 3a e8 3c b7 3a 6a 3c fa 89 42 b7 c8 78 fe 20 c8 3a 91 06 3d c8 f5 cd ┆H:X< B: < :j< B x : = ┆ 0x048680…0486a0 43 44 cd 94 42 f1 c3 7c 42 b7 c2 8f 42 0e 20 3a 58 3c 3d f8 51 3a 59 3c b7 cc c3 42 3a e8 3c b7 ┆CD B øB B :X<= Q:Y< B: < ┆ 0x0486a0…0486c0 3a 6b 3c fa b8 42 b7 c8 3a 92 06 3d c8 f5 cd 43 44 cd c3 42 f1 c3 ab 42 b7 c2 be 42 16 20 3a 59 ┆:k< B : = CD B B B :Y┆ 0x0486c0…0486e0 3c 3d f8 c5 3a 5a 3c b7 7a cc 07 43 06 01 3a 0c 07 4f 3a 6c 3c cd e6 42 06 02 3a 0b 07 4f 3a 6d ┆<= :Z< z C : O:l< B : O:m┆ 0x0486e0…048700 3c cd e6 42 c1 c9 b7 ca f0 42 7a fe 20 c2 f2 42 0e 20 3a e8 3c c2 fa 42 b7 f0 b7 f2 03 43 3a 5a ┆< B Bz B : < B C:Z┆ 0x048700…048720 3c b8 c0 cd 3e 44 79 c5 d5 e5 21 5b 1a e5 fe 20 ca 25 43 d2 2b 43 06 20 fe 06 ca 2a 43 06 7f fe ┆< >Dy !Æ %C +C *C ┆ 0x048720…048740 07 ca 2a 43 ff 21 85 3c 34 c9 78 21 80 3c 34 f5 3a 58 3c b7 fa 7c 17 cd b3 43 f1 c5 d5 e5 21 5b ┆ *C ! <4 x! <4 :X< ø C !Æ┆ 0x048740…048760 1a e5 f5 3a 86 07 3d f4 c4 43 f1 47 c5 cd 5d 43 c1 cd 80 43 21 00 00 22 36 3d c3 49 13 3a 18 07 ┆ : = C G ÅC C! "6= I : ┆ 0x048760…048780 b7 ca 49 13 cd 6e 43 d0 cd a9 43 c3 5d 43 3a 17 07 b7 ca 1a 07 3d ca 28 07 3d ca 4c 07 c3 58 07 ┆ I nC C ÅC: = ( = L X ┆ 0x048780…0487a0 3a 17 07 b7 4f 78 ca 1d 07 0d ca 33 07 0d ca 4f 07 c3 5b 07 c3 5b 07 3a 17 07 b7 fa 25 07 3d ca ┆: Ox 3 O Æ Æ : % = ┆ 0x0487a0…0487c0 37 07 3d ca 52 07 c3 64 07 e5 2a 36 3d 23 cd 57 43 e1 c9 3a 85 3c b7 c8 3d 32 85 3c 3e 20 cd 3b ┆7 = R d *6=# WC : < =2 <> ;┆ 0x0487c0…0487e0 43 c3 b3 43 3a 86 07 3d ca ef 43 cd 97 43 da e4 43 21 ec 3c e6 7f fe 11 c2 dd 43 36 00 fe 13 c2 ┆C C: = C C C! < C6 ┆ 0x0487e0…048800 e4 43 36 80 3a ec 3c b7 f0 cd a9 43 c3 c4 43 cd 12 44 21 ed 3c 34 3a 87 07 3d be d0 3e 01 32 ed ┆ C6 : < C C D! <4: = > 2 ┆ 0x048800…048820 (19, 0, 11) 7f fe 06 c0 7e b7 f0 34 c9 3a 86 07 3d c0 c5 d5 e5 3a ed 3c c6 11 3f d2 1e 43 21 87 07 be d4 e2 ┆ ü 4 : = : < ? C! ┆ 0x048820…048840 42 c3 5b 1a 2a 72 3c 26 00 eb cd 25 17 c3 61 43 7e b7 ca 37 43 50 59 c3 78 17 cd 30 43 2a 74 3c ┆B Æ *r<& % aCü 7CPY x 0C*t<┆ 0x048840…048860 26 00 eb e9 21 71 3c 11 dd 06 01 e2 06 cd 30 43 cd 09 43 1a 3c 3d c8 f5 13 1a cd 2c 42 f1 c3 55 ┆& !q< 0C C <= ,B U┆ 0x048860…048880 43 3a c2 3c b7 ca 6b 43 cd 25 17 e5 2a 7a 3c 19 22 7a 3c 2a 81 3c 19 22 81 3c e1 c9 21 00 00 eb ┆C: < kC % *z< "z<* < " < ! ┆ 0x048880…0488a0 2a 7a 3c cd 2c 17 eb c3 68 43 cd 25 17 e5 2a 83 3c 19 22 83 3c e1 c9 3a 73 3c 5f 16 00 c3 8d 43 ┆*z< , hC % * < " < :s<_ C┆ 0x0488a0…0488c0 cd 0d 07 3e ff 32 86 3c 32 87 3c 11 e7 06 c3 50 43 cd dc 43 11 f8 06 c3 50 43 f5 cd dc 43 f1 fe ┆ > 2 <2 < PC C PC C ┆ 0x0488c0…0488e0 19 ca 44 43 fe 0c ca 2c 42 fe 06 ca d8 43 fe 07 ca d8 43 fe 20 dc 38 00 32 89 3c c9 c5 d5 e5 21 ┆ DC ,B C C 8 2 < !┆ 0x0488e0…048900 5b 1a e5 3a 7b 3c b7 fc 7c 43 cd 2c 44 21 89 3c 7e 36 00 b7 ca 01 44 f5 0e 00 cd 9c 44 f1 cd 82 ┆Æ :æ< øC ,D! <ü6 D D ┆ 0x048900…048920 44 af 2a 97 07 eb 2a 83 3c cd b5 44 c8 22 83 3c 21 87 3c 79 be 77 11 90 07 3a 95 07 c4 a9 44 11 ┆D * * < D " <! <y w : D ┆ 0x048920…048940 b7 07 21 bc 07 78 cd 68 44 c3 01 44 2a a1 07 eb 2a 81 3c cd b2 44 c8 22 81 3c 21 86 3c 7e 87 da ┆ ! x hD D* * < D " <! <ü ┆ 0x048940…048960 4c 44 b9 c2 4c 44 4e c5 cd 50 44 c1 21 2c 44 e5 cd 9c 44 21 89 3c 7e 36 00 b7 c2 70 44 21 88 3c ┆LD LDN PD !,D D! <ü6 pD! <┆ 0x048960…048980 78 ae 11 ad 07 21 b2 07 b7 f2 6d 44 eb c3 50 43 f5 21 88 3c 78 ae 70 78 11 a3 07 21 a8 07 fc 68 ┆x ! mD PC ! <x px ! h┆ 0x048980…0489a0 44 f1 d5 11 c1 07 fe 06 ca 97 44 11 c5 07 fe 07 ca 97 44 d1 c3 2c 42 cd 50 43 d1 c9 11 99 07 21 ┆D D D ,B PC !┆ 0x0489a0…0489c0 86 3c 79 be c8 77 3a 9f 07 81 4f cd 50 43 79 c3 2c 42 3a 9e 07 4f 7c b5 c8 cd 12 17 eb cd 68 17 ┆ <y w: O PCy ,B: Oø h ┆ 0x0489c0…0489e0 d2 c9 44 21 00 00 c3 ce 44 eb 1b cd 2c 17 79 4b b7 ca e0 44 79 b7 1f 4f d2 e0 44 1b 23 7a b3 c8 ┆ D! D , yK Dy O D #z ┆ 0x0489e0…048a00 78 b7 fc 1b 17 f6 01 c9 9b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆x ┆ 0x048a00…048a20 (19, 0, 12) c3 00 00 20 43 4f 50 59 52 49 47 48 54 28 43 29 20 31 39 38 30 20 4d 49 43 52 4f 50 52 4f 20 49 ┆ COPYRIGHT(C) 1980 MICROPRO I┆ 0x048a20…048a40 4e 54 45 52 4e 41 54 49 4f 4e 41 4c 2c 20 53 41 4e 20 52 41 46 41 45 4c 2c 20 43 41 4c 49 46 4f ┆NTERNATIONAL, SAN RAFAEL, CALIFO┆ 0x048a40…048a60 52 4e 49 41 2c 20 55 53 41 2e 20 41 4c 4c 20 52 49 47 48 54 53 20 52 45 53 45 52 56 45 44 2e 20 ┆RNIA, USA. ALL RIGHTS RESERVED. ┆ 0x048a60…048a80 20 57 6f 72 64 53 74 61 72 32 2e 32 36 20 4d 65 73 73 61 67 65 20 54 65 78 74 73 20 20 0d 0a 1a ┆ WordStar2.26 Message Texts ┆ 0x048a80…048aa0 0f 00 9e 19 08 62 00 03 00 03 76 07 43 05 12 09 9b 0a 3c 0c 02 0e 16 10 88 11 74 13 e7 14 b5 16 ┆ b v C < t ┆ 0x048aa0…048ac0 b5 16 80 18 ad 04 fa 18 1c 19 98 1a d5 1b a8 28 f1 1d df 1e ff 1e 99 1c a4 1d bd 1d 31 1f 70 20 ┆ ( 1 p ┆ 0x048ac0…048ae0 e8 20 59 23 60 24 79 24 80 25 c1 24 d8 24 8c 25 bb 25 3e 26 6c 26 86 26 aa 26 da 26 f3 27 69 22 ┆ Y#`$y$ % $ $ % %>&l& & & & 'i"┆ 0x048ae0…048b00 ec 25 57 26 19 26 08 62 08 62 3d 1b 08 62 73 19 72 1b 08 62 08 62 e1 28 fb 28 39 29 77 29 a0 29 ┆ %W& & b b= bs r b b ( (9)w) )┆ 0x048b00…048b20 de 29 50 2a 5a 2a 6e 2a 89 2a 9e 2a b5 2a 08 62 d8 2a 3b 2b 54 2b 92 2b d1 2b f1 2b 08 62 9e 1b ┆ )P*Z*n* * * * b *;+T+ + + + b ┆ 0x048b20…048b40 f8 19 17 04 7d 30 07 3f 7e 43 dd 5d 66 5c 3a 4c 7a 52 0c 4a 08 62 e7 45 08 62 08 62 08 62 08 62 ┆ å0 ?üC ÅfØ:LzR J b E b b b b┆ 0x048b40…048b60 08 62 08 62 f8 22 fd 2b a6 23 03 24 ae 21 fa 26 08 62 97 24 ab 24 ae 24 4b 2c 08 62 56 2c 56 2c ┆ b b " + # $ ! & b $ $ $K, bV,V,┆ 0x048b60…048b80 56 2c 56 2c 6c 2c 6c 2c 56 2c 08 62 89 2c a2 2c 08 62 02 2d 0c 2d 27 2d 5d 2d 8e 2d c2 2d 08 62 ┆V,V,l,l,V, b , , b - -'-Å- - - b┆ 0x048b80…048ba0 08 2e 22 2e 08 62 08 62 88 2e 08 62 3f 2e ae 2e 08 62 cc 2e e7 2e 12 2f 35 2f 40 2f 4c 2f 6b 2f ┆ .". b b . b?. . b . . /5/@/L/k/┆ 0x048ba0…048bc0 6d 2f 8f 2f a2 2f bd 2f 81 28 08 62 d2 2f eb 2f 08 62 18 30 08 62 4b 30 08 62 08 62 08 62 08 62 ┆m/ / / / ( b / / b 0 bK0 b b b b┆ 0x048bc0…048be0 08 62 08 62 08 62 08 62 08 62 08 62 08 62 08 62 08 62 08 62 08 62 08 62 08 62 08 62 08 62 08 62 ┆ b b b b b b b b b b b b b b b b┆ […0x1…] 0x048c00…048c20 (19, 0, 13) 3e 01 c2 0f 6d 3a a8 06 b7 3e 00 c2 0f 6d 2f 32 e9 3c f1 2f 21 ca 38 b6 cc 71 18 cd e5 6d 3a 8b ┆> m: > m/2 < /! 8 q m: ┆ 0x048c20…048c40 36 b7 c2 2e 6d 2f 32 02 38 3e 1f cd 01 13 3a 8b 36 b7 21 0c 00 c2 57 6d 3a e8 3c 21 09 00 3c ca ┆6 .m/2 8> : 6 ! Wm: <! < ┆ 0x048c40…048c60 57 6d 21 09 00 3d ca 57 6d 21 0b 00 3a 17 07 fe 03 ca 57 6d 21 0a 00 cd e2 6d 3a ff 37 b7 ca d1 ┆Wm! = Wm! : Wm! m: 7 ┆ 0x048c60…048c80 6d 21 0d 09 cd e2 6d e1 e3 22 31 61 01 00 01 09 22 1d 61 01 05 0a 09 22 23 61 e1 22 25 61 22 27 ┆m! m "1a " a "#a "%a"'┆ 0x048c80…048ca0 61 2b 36 00 21 77 5f 01 9d 01 cd 08 17 cd b6 54 21 c7 54 22 16 69 21 10 69 22 89 5f 2a 35 61 22 ┆a+6 !w_ T! T" i! i" _*5a"┆ 0x048ca0…048cc0 37 61 af 2a 17 61 22 19 61 77 2a 29 61 22 db 5f 22 d9 5f 2a 15 61 77 2a 3c 61 77 2a 2b 61 22 2f ┆7a * a" aw*)a" _" _* aw*<aw*+a"/┆ 0x048cc0…048ce0 61 77 2b 77 2f 32 77 5f 32 8b 5f 3a 86 03 32 9b 5f 3e ff 32 00 38 3a ff 37 b7 ca 6e 0b cd 5c 33 ┆aw+w/2w_2 _: 2 _> 2 8: 7 n Ø3┆ 0x048ce0…048d00 0d 0c cd 70 33 cd 26 6e cd 9f 0a 2a 91 3d cd 21 10 77 23 36 00 2a 93 3d 77 23 36 00 32 72 3c 3a ┆ p3 &n * = ! w#6 * =w#6 2r<:┆ 0x048d00…048d20 0e 3d 32 73 3c 3a 81 03 32 74 3c 32 2a 3d 2a d4 03 22 53 3c 21 01 00 22 ff 3c 3a d3 03 32 f5 3c ┆ =2s<: 2t<2*=* "S<! " <: 2 <┆ 0x048d20…048d40 3e ff 32 f4 3c c9 11 0e 3d 21 66 03 01 19 00 cd c2 16 cd 21 10 12 13 f5 23 3a 49 02 d6 04 4f be ┆> 2 < =!f ! #:I O ┆ 0x048d40…048d60 da 44 6e 4e 0c 2b 79 96 b7 1f 86 3d 12 13 f1 12 c9 c5 d5 e5 eb 21 81 39 23 cd 68 17 2b da 69 6e ┆ DnN +y = ! 9# h + in┆ 0x048d60…048d80 cd a0 6e cd 93 6e c3 58 6e 21 8f 39 cd 68 17 d2 5b 1a cd be 6e 2b 2b 2b 2b c3 6c 6e c5 e5 11 00 ┆ n n Xn! 9 h Æ n++++ ln ┆ 0x048d80…048da0 00 21 7f 39 cd de 6e eb 09 eb cd 93 6e d2 84 6e e1 c1 c9 d5 23 23 23 23 11 90 39 cd 68 17 d1 c9 ┆ ! 9 n n n #### 9 h ┆ 0x048da0…048dc0 c5 d5 e5 cd de 6e 2b 2b cd 51 17 e3 73 23 72 2b e3 cd c2 16 e1 e5 23 23 73 23 72 c3 5b 1a c5 d5 ┆ n++ Q s#r+ ##s#r Æ ┆ 0x048dc0…048de0 e5 e5 2b 2b cd de 6e e1 e5 cd 51 17 eb e3 23 72 2b 73 e3 cd e1 16 e1 2b 72 2b 73 c3 5b 1a d5 e5 ┆ ++ n Q #r+s +r+s Æ ┆ 0x048de0…048e00 cd 51 17 cd 35 17 e1 d1 c9 9b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ Q 5 ┆ 0x048e00…048e20 (19, 0, 14) 3c cd a9 43 cd 12 44 7e b7 fa 01 44 35 3e 03 c3 4b 43 cd 97 43 21 ec 3c d8 e6 7f fe 06 c0 7e b7 ┆< C Dü D5> KC C! < ü ┆ 0x048e20…048e40 f0 34 c9 3a 86 07 3d c0 c5 d5 e5 3a ed 3c c6 11 3f d2 38 44 21 87 07 be d4 fc 43 c3 5b 1a 3a e8 ┆ 4 : = : < ? 8D! C Æ : ┆ 0x048e40…048e60 3c b7 c0 c5 d5 e5 11 af 06 cd c8 44 c3 5b 1a 3a e8 3c b7 ca 43 44 21 66 3c 7e b7 c8 35 4e 2a 67 ┆< D Æ : < CD!f<ü 5N*g┆ 0x048e60…048e80 3c eb 21 5c 3c 19 1d 2b 23 1c 7b fe 0a d0 32 67 3c 79 be da 68 44 21 69 3c 7b be da 7f 44 77 3a ┆< !Ø< +# æ 2g<y hD!i<æ Dw:┆ 0x048e80…048ea0 5b 3c bb d8 21 85 3c 35 c9 2a 67 3c eb 21 5c 3c 19 3a 66 3c 1c 2b 1d ca 9e 44 be d2 95 44 23 3c ┆Æ< ! <5 *g< !Ø< :f< + D D#<┆ 0x048ea0…048ec0 32 66 3c 77 eb 22 67 3c c9 7e b7 ca b0 44 50 59 cd 78 17 01 4a 00 09 36 ff c9 cd a9 44 c3 c8 44 ┆2f<w "g< ü DPY x J 6 D D┆ 0x048ec0…048ee0 cd a9 44 3a e9 3c 3d c0 cd 23 44 1a 3c 3d c8 f5 13 1a cd 2f 43 f1 c3 cd 44 9b 00 00 00 00 00 00 ┆ D: <= #D <= /C D ┆ 0x048ee0…048f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x048f00…048f20 9a 0a 06 14 00 00 00 00 e8 44 00 00 00 c9 c3 18 3e c3 61 43 c3 17 3e c9 3a 86 07 b7 c4 8e 42 3a ┆ D > aC > : B:┆ 0x048f20…048f40 9e 07 b7 ca 28 3e 3e 01 3c 32 ea 3c 21 6a 3c 11 9c 3c 01 0b 00 cd c2 16 21 38 3e e5 cd 49 13 af ┆ (>> <2 <!j< < !8> I ┆ 0x048f40…048f60 32 58 3c cd 9b 3f 2a 9d 3d cd 5b 3e c2 b6 3e 36 00 23 22 9d 3d 21 3c 3e e5 eb e9 cd a2 3e 11 7c ┆2X< ?* = Æ> >6 #" =!<> > ø┆ 0x048f60…048f80 43 fe 0d c8 11 97 43 fe 0a c8 11 ba 43 fe 0c c8 11 a0 43 fe 1f c8 11 aa 3f fe 1a c8 11 b8 41 fe ┆C C C C ? A ┆ 0x048f80…048fa0 0b c8 11 7f 3f fe 09 ca 98 3e 11 83 3f fe 1e ca 98 3e fe 1b c0 11 9a 43 36 00 23 cd a8 3e d6 20 ┆ ? > ? > C6 # > ┆ 0x048fa0…048fc0 bf c9 cd a8 3e e6 7f c9 7e 3c cc 4e 13 7e b7 c0 cd 31 13 c3 ad 3e cd d1 3e cd ba 3f 2a ae 3c 3a ┆ > ü< N ü 1 > > ?* <:┆ 0x048fc0…048fe0 b2 3c 4f 0c 0d c8 7e 3c cc 4e 13 36 00 23 c3 c4 3e 21 00 00 39 11 20 00 42 4b cd 2c 17 f9 eb 21 ┆ <O ü< N 6 # >! 9 BK , !┆ 0x048fe0…049000 6a 3c d5 e5 c5 cd c2 16 af 32 c2 3c 2f 32 58 3c 21 32 00 cd 44 40 21 9c 3c cd 03 40 21 00 00 22 ┆j< 2 </2X<!2 D@! < @! "┆ 0x049000…049020 (19, 0, 15) 9a 0c 01 14 00 00 00 00 8e 3e 00 00 00 c9 c3 1b 3e c3 1a 3e c3 22 3e c3 35 3e c9 af cd 31 13 c3 ┆ > > > "> 5> 1 ┆ 0x049020…049040 1b 3e 21 a7 3d cd 17 0c eb d4 4b 3e f1 77 23 22 a7 3d d1 e1 c9 21 a7 3d cd 51 17 cd 2c 17 eb 7a ┆ >! = K> w#" = ! = Q , z┆ 0x049040…049060 b3 ca 4b 3e 1b 36 1a 23 c3 3f 3e cd 96 12 21 4f 3c 7e 36 00 b7 fc 8e 12 21 a5 3d cd 17 0c d2 81 ┆ K> 6 # ?> !O<ü6 ! = ┆ 0x049060…049080 3e eb 11 6b 3d cd 2c 1a c2 77 3e 21 c1 39 22 07 38 cd 8e 12 c3 4b 3e 11 80 00 19 22 a5 3d c3 4e ┆> k= , w>! 9" 8 K> " = N┆ 0x049080…0490a0 3e cd 81 0b 2a ab 3d 22 a5 3d 22 a7 3d c9 9b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆> * =" =" = ┆ 0x0490a0…0490c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x2…] 0x049100…049120 44 af 2a 97 07 eb 2a 83 3c cd b5 44 c8 22 83 3c 21 87 3c 79 be 77 11 90 07 3a 95 07 c4 a9 44 11 ┆D * * < D " <! <y w : D ┆ 0x049120…049140 b7 07 21 bc 07 78 cd 68 44 c3 01 44 2a a1 07 eb 2a 81 3c cd b2 44 c8 22 81 3c 21 86 3c 7e 87 da ┆ ! x hD D* * < D " <! <ü ┆ 0x049140…049160 4c 44 b9 c2 4c 44 4e c5 cd 50 44 c1 21 2c 44 e5 cd 9c 44 21 89 3c 7e 36 00 b7 c2 70 44 21 88 3c ┆LD LDN PD !,D D! <ü6 pD! <┆ 0x049160…049180 78 ae 11 ad 07 21 b2 07 b7 f2 6d 44 eb c3 50 43 f5 21 88 3c 78 ae 70 78 11 a3 07 21 a8 07 fc 68 ┆x ! mD PC ! <x px ! h┆ 0x049180…0491a0 44 f1 d5 11 c1 07 fe 06 ca 97 44 11 c5 07 fe 07 ca 97 44 d1 c3 2c 42 cd 50 43 d1 c9 11 99 07 21 ┆D D D ,B PC !┆ 0x0491a0…0491c0 86 3c 79 be c8 77 3a 9f 07 81 4f cd 50 43 79 c3 2c 42 3a 9e 07 4f 7c b5 c8 cd 12 17 eb cd 68 17 ┆ <y w: O PCy ,B: Oø h ┆ 0x0491c0…0491e0 d2 c9 44 21 00 00 c3 ce 44 eb 1b cd 2c 17 79 4b b7 ca e0 44 79 b7 1f 4f d2 e0 44 1b 23 7a b3 c8 ┆ D! D , yK Dy O D #z ┆ 0x0491e0…049200 78 b7 fc 1b 17 f6 01 c9 9b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆x ┆ 0x049200…049220 (19, 1, 1) 0e 13 20 44 3d 63 72 65 61 74 65 20 6f 72 20 65 64 69 74 20 61 20 44 6f 63 75 6d 65 6e 74 20 66 ┆ D=create or edit a Document f┆ 0x049220…049240 69 6c 65 09 20 20 48 3d 73 65 74 20 48 65 6c 70 20 6c 65 76 65 6c 20 0e 13 20 4e 3d 63 72 65 61 ┆ile H=set Help level N=crea┆ 0x049240…049260 74 65 20 6f 72 20 65 64 69 74 20 61 20 4e 6f 6e 2d 64 6f 63 75 6d 65 6e 74 20 66 69 6c 65 20 20 ┆te or edit a Non-document file ┆ 0x049260…049280 58 3d 65 58 69 74 20 74 6f 20 73 79 73 74 65 6d 20 0e 13 20 4d 3d 4d 65 72 67 65 2d 70 72 69 6e ┆X=eXit to system M=Merge-prin┆ 0x049280…0492a0 74 20 61 20 66 69 6c 65 09 09 20 20 50 3d 17 20 0e 13 20 46 3d 46 69 6c 65 20 64 69 72 65 63 74 ┆t a file P= F=File direct┆ 0x0492a0…0492c0 6f 72 79 05 2b 02 09 09 20 20 59 3d 64 65 6c 65 74 65 20 61 20 66 69 6c 65 20 20 0e 13 20 4c 3d ┆ory + Y=delete a file L=┆ 0x0492c0…0492e0 63 68 61 6e 67 65 20 4c 6f 67 67 65 64 20 64 69 73 6b 20 64 72 69 76 65 09 09 20 20 4f 3d 63 4f ┆change Logged disk drive O=cO┆ 0x0492e0…049300 70 79 20 61 20 66 69 6c 65 20 20 20 20 0e 13 20 52 3d 52 75 6e 20 61 20 70 72 6f 67 72 61 6d 09 ┆py a file R=Run a program ┆ 0x049300…049320 09 09 20 20 45 3d 72 45 6e 61 6d 65 20 61 20 66 69 6c 65 20 20 a0 00 0e 89 20 20 20 20 20 20 46 ┆ E=rEname a file F┆ 0x049320…049340 6f 72 20 6d 61 78 69 6d 75 6d 20 68 65 6c 70 20 28 66 75 6c 6c 20 6d 65 6e 75 20 64 69 73 70 6c ┆or maximum help (full menu displ┆ 0x049340…049360 61 79 29 2c 09 20 20 0e 89 20 20 20 20 20 20 20 73 65 6c 65 63 74 20 48 65 6c 70 20 4c 65 76 65 ┆ay), select Help Leve┆ 0x049360…049380 6c 20 33 20 62 79 20 74 79 70 69 6e 67 20 5e 4a 48 33 2e 09 20 20 0e 89 20 20 54 68 69 73 20 6d ┆l 3 by typing ^JH3. This m┆ 0x049380…0493a0 65 73 73 61 67 65 20 77 69 6c 6c 20 63 6c 65 61 72 20 77 68 65 6e 20 61 20 6b 65 79 20 69 73 20 ┆essage will clear when a key is ┆ 0x0493a0…0493c0 70 72 65 73 73 65 64 2e 20 20 0e 0e 00 0e 20 54 4f 20 48 59 50 48 45 4e 41 54 45 2c 20 50 52 45 ┆pressed. TO HYPHENATE, PRE┆ 0x0493c0…0493e0 53 53 20 2d 2e 20 42 65 66 6f 72 65 20 70 72 65 73 73 69 6e 67 20 2d 2c 20 79 6f 75 20 6d 61 79 ┆SS -. Before pressing -, you may┆ 0x0493e0…049400 20 0e 20 20 20 20 20 6d 6f 76 65 20 63 75 72 73 6f 72 3a 20 5e 53 3d 63 75 72 73 6f 72 20 6c 65 ┆ move cursor: ^S=cursor le┆ 0x049400…049420 (19, 1, 2) 20 20 58 3d 62 6f 74 74 6f 6d 20 20 20 20 44 3d 72 69 67 68 74 20 65 6e 44 20 6c 69 6e 65 20 0e ┆ X=bottom D=right enD line ┆ 0x049420…049440 09 20 20 52 3d 62 65 67 69 6e 6e 69 6e 67 20 66 69 6c 65 09 43 3d 65 6e 64 20 66 69 6c 65 09 30 ┆ R=beginning file C=end file 0┆ 0x049440…049460 2d 39 2c 20 42 2c 20 4b 2c 20 56 2c 20 50 20 3d 20 74 6f 20 6d 61 72 6b 65 72 20 20 0e 20 53 43 ┆-9, B, K, V, P = to marker SC┆ 0x049460…049480 52 4f 4c 4c 3a 09 09 20 20 5a 3d 63 6f 6e 74 69 6e 75 6f 75 73 20 75 70 09 57 3d 63 6f 6e 74 69 ┆ROLL: Z=continuous up W=conti┆ 0x049480…0494a0 6e 75 6f 75 73 20 64 6f 77 6e 09 20 20 20 20 20 0e 20 44 45 4c 45 54 45 20 54 4f 20 45 4e 44 20 ┆nuous down DELETE TO END ┆ 0x0494a0…0494c0 4c 49 4e 45 3a 09 20 20 44 45 4c 3d 6c 65 66 74 09 09 59 3d 72 69 67 68 74 09 09 09 20 20 20 20 ┆LINE: DEL=left Y=right ┆ 0x0494c0…0494e0 20 0e 20 46 49 4e 44 2c 20 52 45 50 4c 41 43 45 3a 09 09 20 20 46 3d 46 69 6e 64 20 61 20 73 74 ┆ FIND, REPLACE: F=Find a st┆ 0x0494e0…049500 72 69 6e 67 09 41 3d 66 69 6e 64 20 41 6e 64 20 73 75 62 73 74 69 74 75 74 65 09 20 20 20 20 20 ┆ring A=find And substitute ┆ 0x049500…049520 0e 20 52 45 50 45 41 54 20 4e 45 58 54 20 43 4f 4d 4d 41 4e 44 3a 09 20 20 51 3d 72 65 70 65 61 ┆ REPEAT NEXT COMMAND: Q=repea┆ 0x049520…049540 74 20 75 6e 74 69 6c 20 6b 65 79 20 70 72 65 73 73 65 64 09 09 09 20 20 20 20 20 00 13 a0 a0 20 ┆t until key pressed ┆ 0x049540…049560 5e 4b 20 50 52 45 46 49 58 20 20 20 20 20 28 74 6f 20 63 61 6e 63 65 6c 20 70 72 65 66 69 78 2c ┆^K PREFIX (to cancel prefix,┆ 0x049560…049580 20 70 72 65 73 73 20 53 50 41 43 45 20 62 61 72 29 20 0e 45 4e 44 20 45 44 49 54 2f 53 41 56 45 ┆ press SPACE bar) END EDIT/SAVE┆ 0x049580…0495a0 3a 09 44 3d 44 6f 6e 65 20 20 58 3d 64 6f 6e 65 2c 65 58 69 74 20 20 53 3d 53 61 76 65 2c 72 65 ┆: D=Done X=done,eXit S=Save,re┆ 0x0495a0…0495c0 65 64 69 74 20 20 51 3d 61 62 61 6e 64 6f 6e 0e 4d 41 52 4b 20 42 4c 4f 43 4b 3a 09 20 20 20 42 ┆edit Q=abandon MARK BLOCK: B┆ 0x0495c0…0495e0 3d 42 6c 6f 63 6b 20 73 74 61 72 74 20 4b 3d 62 6c 6f 63 4b 20 65 6e 64 20 20 20 48 3d 48 69 64 ┆=Block start K=blocK end H=Hid┆ 0x0495e0…049600 65 2f 64 69 73 70 6c 61 79 0e 42 4c 4f 43 4b 20 4f 50 45 52 41 54 49 4f 4e 53 3a 20 20 56 3d 6d ┆e/display BLOCK OPERATIONS: V=m┆ 0x049600…049620 (19, 1, 3) 6e 74 20 6e 65 78 74 20 63 68 61 72 61 63 74 65 72 20 52 45 54 55 52 4e 3d 6f 76 65 72 70 72 69 ┆nt next character RETURN=overpri┆ 0x049620…049640 6e 74 20 6e 65 78 74 20 6c 69 6e 65 20 0e 20 51 2c 20 57 2c 20 45 2c 20 52 20 3d 20 75 73 65 72 ┆nt next line Q, W, E, R = user┆ 0x049640…049660 20 70 72 69 6e 74 65 72 20 63 6f 6e 74 72 6f 6c 73 20 09 09 20 20 20 20 53 50 41 43 45 3d 63 61 ┆ printer controls SPACE=ca┆ 0x049660…049680 6e 63 65 6c 20 70 72 65 66 69 78 20 20 20 20 20 20 20 20 00 89 a0 20 20 5e 4f 20 50 52 45 46 49 ┆ncel prefix ^O PREFI┆ 0x049680…0496a0 58 3a 20 6f 6e 2d 73 63 72 65 65 6e 20 66 6f 72 6d 61 74 74 69 6e 67 20 63 6f 6d 6d 61 6e 64 73 ┆X: on-screen formatting commands┆ 0x0496a0…0496c0 20 20 0e 53 3d 6c 69 6e 65 20 53 70 61 63 69 6e 67 20 20 43 3d 43 65 6e 74 65 72 20 63 75 72 73 ┆ S=line Spacing C=Center curs┆ 0x0496c0…0496e0 6f 72 20 6c 69 6e 65 20 20 46 3d 6d 61 72 67 69 6e 73 2f 74 61 62 73 20 66 72 6f 6d 20 6c 69 6e ┆or line F=margins/tabs from lin┆ 0x0496e0…049700 65 0e 4c 3d 4c 65 66 74 20 6d 61 72 67 69 6e 20 20 20 58 3d 6d 61 72 67 69 6e 20 72 65 6c 65 61 ┆e L=Left margin X=margin relea┆ 0x049700…049720 73 65 20 20 20 20 20 20 45 3d 73 6f 66 74 20 ad 20 45 6e 74 72 79 20 05 23 02 0e 52 3d 52 69 67 ┆se E=soft Entry # R=Rig┆ 0x049720…049740 68 74 20 6d 61 72 67 69 6e 20 20 57 3d 57 6f 72 64 20 77 72 61 70 05 20 02 20 20 44 3d 20 ad 2c ┆ht margin W=Word wrap D= ,┆ 0x049740…049760 20 63 74 72 6c 20 64 73 70 79 05 25 02 0e 49 3d 73 65 74 20 74 61 62 20 73 74 6f 70 20 20 4a 3d ┆ ctrl dspy % I=set tab stop J=┆ 0x049760…049780 4a 75 73 74 69 66 79 05 21 02 20 20 20 20 50 3d 50 61 67 65 20 64 69 73 70 6c 61 79 20 05 28 02 ┆Justify ! P=Page display ( ┆ 0x049780…0497a0 0e 4e 3d 63 6c 65 61 72 20 74 61 62 20 20 20 20 20 56 3d 56 61 72 20 74 61 62 73 05 22 02 20 20 ┆ N=clear tab V=Var tabs " ┆ 0x0497a0…0497c0 20 54 3d 72 75 6c 65 72 20 64 69 73 70 6c 61 79 05 26 02 0e 47 3d 70 61 72 61 20 74 61 62 09 48 ┆ T=ruler display & G=para tab H┆ 0x0497c0…0497e0 3d 48 79 70 68 65 6e 2d 48 65 6c 70 05 24 02 09 20 20 20 53 50 41 43 45 3d 63 61 6e 63 65 6c 20 ┆=Hyphen-Help $ SPACE=cancel ┆ 0x0497e0…049800 70 72 65 66 69 78 00 89 89 20 20 5e 4f 20 50 52 45 46 49 58 3a 20 6f 6e 2d 73 63 72 65 65 6e 20 ┆prefix ^O PREFIX: on-screen ┆ 0x049800…049820 (19, 1, 4) 53 20 44 45 4c 45 54 45 44 20 20 0e 09 4f 4e 4c 59 20 41 46 54 45 52 20 45 44 49 54 20 49 53 20 ┆S DELETED ONLY AFTER EDIT IS ┆ 0x049820…049840 53 55 43 43 45 53 53 46 55 4c 4c 59 20 43 4f 4d 50 4c 45 54 45 44 29 2e 09 0e 0e 0e 00 0e 20 43 ┆SUCCESSFULLY COMPLETED). C┆ 0x049840…049860 41 4e 27 54 20 44 49 53 50 4c 41 59 20 50 41 47 45 20 42 52 45 41 4b 53 20 49 4e 20 41 20 4e 4f ┆AN'T DISPLAY PAGE BREAKS IN A NO┆ 0x049860…049880 4e 2d 44 4f 43 55 4d 45 4e 54 20 46 49 4c 45 20 0e 00 2a 2a 2a 20 57 41 52 4e 49 4e 47 3a 20 57 ┆N-DOCUMENT FILE *** WARNING: W┆ 0x049880…0498a0 4f 52 44 20 54 4f 4f 20 4c 4f 4e 47 20 54 4f 20 46 49 54 20 4d 41 52 47 49 4e 53 20 0e 00 20 50 ┆ORD TOO LONG TO FIT MARGINS P┆ 0x0498a0…0498c0 55 54 20 41 54 20 46 49 4c 45 20 42 45 47 49 4e 4e 49 4e 47 20 46 4f 52 20 43 4f 52 52 45 43 54 ┆UT AT FILE BEGINNING FOR CORRECT┆ 0x0498c0…0498e0 20 50 41 47 45 20 42 52 45 41 4b 20 44 49 53 50 4c 41 59 20 00 0e 0e 20 20 20 20 20 20 4e 6f 72 ┆ PAGE BREAK DISPLAY Nor┆ 0x0498e0…049900 6d 61 6c 6c 79 20 70 72 65 73 73 20 52 45 54 55 52 4e 20 6f 6e 6c 79 2c 20 6f 72 20 65 6e 74 65 ┆mally press RETURN only, or ente┆ 0x049900…049920 72 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 6f 66 3a 20 20 20 20 20 0e 20 6e 75 6d 62 65 72 3d 72 ┆r one or more of: number=r┆ 0x049920…049940 65 70 65 61 74 20 63 6f 75 6e 74 2c 20 20 42 3d 73 65 61 72 63 68 20 42 61 63 6b 77 61 72 64 73 ┆epeat count, B=search Backwards┆ 0x049940…049960 2c 20 20 57 3d 77 68 6f 6c 65 20 57 6f 72 64 73 20 6f 6e 6c 79 2c 0e 20 55 3d 69 67 6e 6f 72 65 ┆, W=whole Words only, U=ignore┆ 0x049960…049980 20 63 61 73 65 2c 20 4e 3d 72 65 70 6c 61 63 65 20 77 2f 6f 20 61 73 6b 69 6e 67 2c 20 47 3d 72 ┆ case, N=replace w/o asking, G=r┆ 0x049980…0499a0 65 70 6c 61 63 65 20 69 6e 20 65 6e 74 69 72 65 20 66 69 6c 65 2e 0e 0e 00 0e 20 48 45 4c 50 20 ┆eplace in entire file. HELP ┆ 0x0499a0…0499c0 4c 45 56 45 4c 53 09 09 09 09 09 09 20 20 20 20 20 20 0e 20 20 20 33 20 20 61 6c 6c 20 6d 65 6e ┆LEVELS 3 all men┆ 0x0499c0…0499e0 75 73 20 61 6e 64 20 65 78 70 6c 61 6e 61 74 69 6f 6e 73 20 64 69 73 70 6c 61 79 65 64 09 09 20 ┆us and explanations displayed ┆ 0x0499e0…049a00 20 20 20 20 20 0e 20 20 20 32 20 20 6d 61 69 6e 20 65 64 69 74 69 6e 67 20 6d 65 6e 75 20 28 31 ┆ 2 main editing menu (1┆ 0x049a00…049a20 (19, 1, 5) 66 74 2c 20 5e 44 3d 63 75 72 73 6f 72 20 72 69 67 68 74 2e 20 0e 20 49 66 20 68 79 70 68 65 6e ┆ft, ^D=cursor right. If hyphen┆ 0x049a20…049a40 61 74 69 6f 6e 20 6e 6f 74 20 64 65 73 69 72 65 64 2c 20 74 79 70 65 20 5e 42 2e 09 09 20 20 20 ┆ation not desired, type ^B. ┆ 0x049a40…049a60 0e 0e 00 20 43 55 52 53 4f 52 3a 20 20 20 20 5e 41 3d 6c 65 66 74 20 77 6f 72 64 20 20 20 20 20 ┆ CURSOR: ^A=left word ┆ 0x049a60…049a80 20 5e 53 3d 6c 65 66 74 20 63 68 61 72 20 20 20 20 5e 44 3d 72 69 67 68 74 20 63 68 61 72 20 20 ┆ ^S=left char ^D=right char ┆ 0x049a80…049aa0 20 20 5e 46 3d 72 69 67 68 74 20 77 6f 72 64 20 20 0e 09 20 20 20 20 5e 45 3d 75 70 20 6c 69 6e ┆ ^F=right word ^E=up lin┆ 0x049aa0…049ac0 65 20 20 20 20 20 20 20 20 5e 58 3d 64 6f 77 6e 20 6c 69 6e 65 09 09 09 09 20 20 20 20 20 20 0e ┆e ^X=down line ┆ 0x049ac0…049ae0 20 53 43 52 4f 4c 4c 3a 20 20 20 20 5e 5a 3d 75 70 20 6c 69 6e 65 20 20 20 20 20 20 20 20 5e 57 ┆ SCROLL: ^Z=up line ^W┆ 0x049ae0…049b00 3d 64 6f 77 6e 20 6c 69 6e 65 20 20 20 20 5e 43 3d 75 70 20 73 63 72 65 65 6e 20 20 20 20 20 5e ┆=down line ^C=up screen ^┆ 0x049b00…049b20 52 3d 64 6f 77 6e 20 73 63 72 65 65 6e 20 0e 20 44 45 4c 45 54 45 3a 20 20 20 20 44 45 4c 3d 63 ┆R=down screen DELETE: DEL=c┆ 0x049b20…049b40 68 61 72 20 6c 65 66 74 20 20 20 20 20 5e 47 3d 63 68 61 72 20 72 69 67 68 74 20 20 20 5e 54 3d ┆har left ^G=char right ^T=┆ 0x049b40…049b60 77 6f 72 64 20 72 69 67 68 74 20 20 20 20 5e 59 3d 65 6e 74 69 72 65 20 6c 69 6e 65 20 0e 20 4f ┆word right ^Y=entire line O┆ 0x049b60…049b80 54 48 45 52 3a 09 20 20 20 5e 56 3d 69 6e 73 65 72 74 20 6f 66 66 2f 6f 6e 20 20 20 5e 49 3d 74 ┆THER: ^V=insert off/on ^I=t┆ 0x049b80…049ba0 61 62 09 20 20 20 20 20 52 45 54 55 52 4e 3d 65 6e 64 20 70 61 72 61 20 20 20 5e 55 3d 73 74 6f ┆ab RETURN=end para ^U=sto┆ 0x049ba0…049bc0 70 09 20 20 20 20 20 20 0e 09 20 5e 4e 3d 69 6e 73 65 72 74 20 61 20 52 45 54 55 52 4e 20 20 20 ┆p ^N=insert a RETURN ┆ 0x049bc0…049be0 5e 42 3d 72 65 66 6f 72 6d 20 74 6f 20 65 6e 64 20 70 61 72 61 09 5e 4c 3d 66 69 6e 64 2f 72 65 ┆^B=reform to end para ^L=find/re┆ 0x049be0…049c00 70 6c 61 63 65 20 61 67 61 69 6e 20 0e 20 48 45 4c 50 3a 09 20 5e 4a 20 64 69 73 70 6c 61 79 73 ┆place again HELP: ^J displays┆ 0x049c00…049c20 (19, 1, 6) 6f 56 65 20 62 6c 6f 63 6b 09 20 43 3d 43 6f 70 79 20 62 6c 6f 63 6b 20 20 59 3d 64 65 6c 65 74 ┆oVe block C=Copy block Y=delet┆ 0x049c20…049c40 65 20 62 6c 6f 63 6b 0e 41 44 44 49 54 49 4f 4e 41 4c 20 46 49 4c 45 53 20 20 20 52 3d 52 65 61 ┆e block ADDITIONAL FILES R=Rea┆ 0x049c40…049c60 64 20 66 69 6c 65 20 20 20 57 3d 57 72 69 74 65 20 62 6c 6f 63 6b 20 20 4a 3d 64 65 6c 65 74 65 ┆d file W=Write block J=delete┆ 0x049c60…049c80 20 66 69 6c 65 0e 20 26 20 50 52 49 4e 54 49 4e 47 3a 09 20 20 20 4f 3d 63 4f 70 79 20 66 69 6c ┆ file & PRINTING: O=cOpy fil┆ 0x049c80…049ca0 65 09 20 45 3d 72 45 6e 61 6d 65 20 20 20 20 50 3d 17 0e 44 49 53 4b 20 26 20 44 49 52 45 43 54 ┆e E=rEname P= DISK & DIRECT┆ 0x049ca0…049cc0 4f 52 59 3a 20 20 4c 3d 4c 6f 67 20 64 69 73 6b 09 20 20 20 20 20 46 3d 46 69 6c 65 20 64 69 72 ┆ORY: L=Log disk F=File dir┆ 0x049cc0…049ce0 65 63 74 6f 72 79 05 2b 02 0e 50 4c 41 43 45 20 4d 41 52 4b 45 52 53 3a 09 20 20 20 30 2d 39 20 ┆ectory + PLACE MARKERS: 0-9 ┆ 0x049ce0…049d00 3d 20 73 65 74 2f 68 69 64 65 20 70 6c 61 63 65 20 6d 61 72 6b 65 72 20 30 2d 39 09 20 20 20 20 ┆= set/hide place marker 0-9 ┆ 0x049d00…049d20 20 00 13 13 20 20 5e 4b 20 50 52 45 46 49 58 09 09 20 20 28 74 6f 20 63 61 6e 63 65 6c 20 70 72 ┆ ^K PREFIX (to cancel pr┆ 0x049d20…049d40 65 66 69 78 2c 20 70 72 65 73 73 20 53 50 41 43 45 20 62 61 72 29 20 20 0e 20 45 4e 44 20 45 44 ┆efix, press SPACE bar) END ED┆ 0x049d40…049d60 49 54 2f 53 41 56 45 3a 09 20 20 20 20 44 3d 44 6f 6e 65 20 65 64 69 74 20 20 20 20 58 3d 64 6f ┆IT/SAVE: D=Done edit X=do┆ 0x049d60…049d80 6e 65 2c 20 65 58 69 74 20 20 20 53 3d 53 61 76 65 2c 20 72 65 65 64 69 74 20 20 20 51 3d 61 62 ┆ne, eXit S=Save, reedit Q=ab┆ 0x049d80…049da0 61 6e 64 6f 6e 20 0e 20 4d 41 52 4b 20 42 4c 4f 43 4b 3a 09 20 20 20 20 42 3d 42 6c 6f 63 6b 20 ┆andon MARK BLOCK: B=Block ┆ 0x049da0…049dc0 73 74 61 72 74 20 20 4b 3d 62 6c 6f 63 4b 20 65 6e 64 09 20 20 48 3d 48 69 64 65 2f 64 69 73 70 ┆start K=blocK end H=Hide/disp┆ 0x049dc0…049de0 6c 61 79 09 20 20 20 20 20 0e 20 42 4c 4f 43 4b 20 4f 50 45 52 41 54 49 4f 4e 53 3a 20 20 56 3d ┆lay BLOCK OPERATIONS: V=┆ 0x049de0…049e00 6d 6f 56 65 20 62 6c 6f 63 6b 20 20 20 43 3d 43 6f 70 79 20 62 6c 6f 63 6b 20 20 20 59 3d 64 65 ┆moVe block C=Copy block Y=de┆ 0x049e00…049e20 (19, 1, 7) 66 6f 72 6d 61 74 74 69 6e 67 20 63 6f 6d 6d 61 6e 64 73 20 20 0e 20 53 3d 73 65 74 20 6c 69 6e ┆formatting commands S=set lin┆ 0x049e20…049e40 65 20 53 70 61 63 69 6e 67 20 20 43 3d 43 65 6e 74 65 72 20 63 75 72 73 6f 72 20 6c 69 6e 65 20 ┆e Spacing C=Center cursor line ┆ 0x049e40…049e60 20 20 20 20 20 46 3d 6d 61 72 67 69 6e 73 2f 74 61 62 73 20 66 72 6f 6d 20 46 69 6c 65 20 6c 69 ┆ F=margins/tabs from File li┆ 0x049e60…049e80 6e 65 20 20 0e 20 4c 3d 73 65 74 20 4c 65 66 74 20 6d 61 72 67 69 6e 20 20 20 58 3d 6d 61 72 67 ┆ne L=set Left margin X=marg┆ 0x049e80…049ea0 69 6e 20 72 65 6c 65 61 73 65 20 20 20 20 20 20 20 20 20 20 45 3d 73 6f 66 74 20 68 79 70 68 65 ┆in release E=soft hyphe┆ 0x049ea0…049ec0 6e 20 ad 20 45 6e 74 72 79 05 23 02 20 0e 20 52 3d 73 65 74 20 52 69 67 68 74 20 6d 61 72 67 69 ┆n Entry # R=set Right margi┆ 0x049ec0…049ee0 6e 20 20 57 3d 57 6f 72 64 20 77 72 61 70 05 20 02 20 20 20 20 20 20 44 3d 20 ad 2c 20 70 72 69 ┆n W=Word wrap D= , pri┆ 0x049ee0…049f00 6e 74 20 63 74 72 6c 20 64 73 70 79 05 25 02 20 0e 20 49 3d 73 65 74 20 74 61 62 20 73 74 6f 70 ┆nt ctrl dspy % I=set tab stop┆ 0x049f00…049f20 20 20 20 20 20 20 4a 3d 4a 75 73 74 69 66 69 63 61 74 69 6f 6e 05 21 02 20 20 50 3d 50 61 67 65 ┆ J=Justification ! P=Page┆ 0x049f20…049f40 20 62 72 65 61 6b 20 64 69 73 70 6c 61 79 20 05 28 02 20 0e 20 4e 3d 63 6c 65 61 72 20 74 61 62 ┆ break display ( N=clear tab┆ 0x049f40…049f60 20 73 74 6f 70 20 20 20 20 56 3d 56 61 72 69 61 62 6c 65 20 74 61 62 73 05 22 02 20 20 54 3d 72 ┆ stop V=Variable tabs " T=r┆ 0x049f60…049f80 75 6c 65 72 20 64 69 73 70 6c 61 79 20 20 20 20 20 20 05 26 02 20 0e 20 47 3d 70 61 72 61 47 72 ┆uler display & G=paraGr┆ 0x049f80…049fa0 61 70 68 20 74 61 62 20 20 20 20 20 48 3d 48 79 70 68 65 6e 2d 48 65 6c 70 05 24 02 09 09 20 20 ┆aph tab H=Hyphen-Help $ ┆ 0x049fa0…049fc0 53 50 41 43 45 3d 63 61 6e 63 65 6c 20 70 72 65 66 69 78 20 00 89 13 20 20 20 20 5e 4a 20 50 52 ┆SPACE=cancel prefix ^J PR┆ 0x049fc0…049fe0 45 46 49 58 3a 20 68 65 6c 70 20 63 6f 6d 6d 61 6e 64 73 20 20 20 20 20 0e 20 48 20 3d 20 64 69 ┆EFIX: help commands H = di┆ 0x049fe0…04a000 73 70 6c 61 79 20 61 6e 64 20 73 65 74 20 48 65 6c 70 20 6c 65 76 65 6c 09 20 20 20 20 4d 20 3d ┆splay and set Help level M =┆ 0x04a000…04a020 (19, 1, 8) 2d 63 6f 6e 74 72 6f 6c 2d 63 68 61 72 20 63 6f 6d 6d 61 6e 64 73 29 20 73 75 70 70 72 65 73 73 ┆-control-char commands) suppress┆ 0x04a020…04a040 65 64 20 20 0e 20 20 20 31 20 20 70 72 65 66 69 78 20 6d 65 6e 75 73 20 28 32 2d 63 68 61 72 61 ┆ed 1 prefix menus (2-chara┆ 0x04a040…04a060 63 74 65 72 20 63 6f 6d 6d 61 6e 64 73 29 20 61 6c 73 6f 20 73 75 70 70 72 65 73 73 65 64 20 20 ┆cter commands) also suppressed ┆ 0x04a060…04a080 20 20 20 0e 20 20 20 30 20 20 63 6f 6d 6d 61 6e 64 20 65 78 70 6c 61 6e 61 74 69 6f 6e 73 20 28 ┆ 0 command explanations (┆ 0x04a080…04a0a0 69 6e 63 6c 75 64 69 6e 67 20 74 68 69 73 29 20 61 6c 73 6f 20 73 75 70 70 72 65 73 73 65 64 20 ┆including this) also suppressed ┆ 0x04a0a0…04a0c0 20 20 0e 00 0e 20 43 55 52 52 45 4e 54 20 48 45 4c 50 20 4c 45 56 45 4c 20 49 53 20 00 20 0e 0e ┆ CURRENT HELP LEVEL IS ┆ 0x04a0c0…04a0e0 20 45 4e 54 45 52 20 53 70 61 63 65 20 4f 52 20 4e 45 57 20 48 45 4c 50 20 4c 45 56 45 4c 20 28 ┆ ENTER Space OR NEW HELP LEVEL (┆ 0x04a0e0…04a100 30 2c 20 31 2c 20 32 2c 20 4f 52 20 33 29 3a 20 00 0e 20 54 68 65 20 4c 4f 47 47 45 44 20 44 49 ┆0, 1, 2, OR 3): The LOGGED DI┆ 0x04a100…04a120 53 4b 20 28 6f 72 20 43 75 72 72 65 6e 74 20 44 69 73 6b 20 6f 72 20 44 65 66 61 75 6c 74 20 44 ┆SK (or Current Disk or Default D┆ 0x04a120…04a140 69 73 6b 29 20 69 73 20 74 68 65 20 0e 20 64 69 73 6b 20 64 72 69 76 65 20 75 73 65 64 20 66 6f ┆isk) is the disk drive used fo┆ 0x04a140…04a160 72 20 66 69 6c 65 73 20 65 78 63 65 70 74 20 74 68 6f 73 65 20 66 69 6c 65 73 20 66 6f 72 20 77 ┆r files except those files for w┆ 0x04a160…04a180 68 69 63 68 09 20 20 0e 20 79 6f 75 20 65 6e 74 65 72 20 61 20 64 69 73 6b 20 64 72 69 76 65 20 ┆hich you enter a disk drive ┆ 0x04a180…04a1a0 6e 61 6d 65 20 61 73 20 70 61 72 74 20 6f 66 20 74 68 65 20 66 69 6c 65 20 6e 61 6d 65 2e 20 20 ┆name as part of the file name. ┆ 0x04a1a0…04a1c0 20 20 0e 20 57 6f 72 64 53 74 61 72 20 64 69 73 70 6c 61 79 73 20 74 68 65 20 46 69 6c 65 20 44 ┆ WordStar displays the File D┆ 0x04a1c0…04a1e0 69 72 65 63 74 6f 72 79 20 6f 66 20 74 68 65 20 4c 6f 67 67 65 64 20 44 69 73 6b 2e 20 0e 00 0e ┆irectory of the Logged Disk. ┆ 0x04a1e0…04a200 20 54 48 45 20 4c 4f 47 47 45 44 20 44 49 53 4b 20 44 52 49 56 45 20 49 53 20 4e 4f 57 20 00 0e ┆ THE LOGGED DISK DRIVE IS NOW ┆ 0x04a200…04a220 (19, 1, 9) 20 6d 65 6e 75 20 6f 66 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 63 6f 6d 6d 61 6e 64 73 09 09 09 ┆ menu of information commands ┆ 0x04a220…04a240 20 20 20 20 20 20 0e 20 50 52 45 46 49 58 20 4b 45 59 53 20 20 20 5e 51 20 5e 4a 20 5e 4b 20 5e ┆ PREFIX KEYS ^Q ^J ^K ^┆ 0x04a240…04a260 4f 20 5e 50 20 20 20 64 69 73 70 6c 61 79 20 6d 65 6e 75 73 20 6f 66 20 61 64 64 69 74 69 6f 6e ┆O ^P display menus of addition┆ 0x04a260…04a280 61 6c 20 63 6f 6d 6d 61 6e 64 73 20 20 20 20 20 20 20 20 20 20 00 43 55 52 53 4f 52 3a 20 20 20 ┆al commands CURSOR: ┆ 0x04a280…04a2a0 5e 41 3d 6c 65 66 74 20 77 6f 72 64 20 20 20 20 20 20 5e 53 3d 6c 65 66 74 20 63 68 61 72 20 20 ┆^A=left word ^S=left char ┆ 0x04a2a0…04a2c0 20 5e 44 3d 72 69 67 68 74 20 63 68 61 72 20 20 20 20 20 20 0e 09 20 20 5e 46 3d 72 69 67 68 74 ┆ ^D=right char ^F=right┆ 0x04a2c0…04a2e0 20 77 6f 72 64 20 20 20 20 20 5e 45 3d 75 70 20 6c 69 6e 65 09 20 20 5e 58 3d 64 6f 77 6e 20 6c ┆ word ^E=up line ^X=down l┆ 0x04a2e0…04a300 69 6e 65 09 20 20 20 20 20 20 0e 53 43 52 4f 4c 4c 3a 09 20 20 5e 5a 3d 75 70 20 6c 69 6e 65 09 ┆ine SCROLL: ^Z=up line ┆ 0x04a300…04a320 20 20 20 20 5e 57 3d 64 6f 77 6e 09 20 5e 43 3d 75 70 20 73 63 72 65 65 6e 20 20 5e 52 3d 64 6f ┆ ^W=down ^C=up screen ^R=do┆ 0x04a320…04a340 77 6e 0e 44 45 4c 45 54 45 3a 20 20 20 44 45 4c 3d 63 68 61 72 20 6c 65 66 74 09 20 20 20 20 5e ┆wn DELETE: DEL=char left ^┆ 0x04a340…04a360 47 3d 72 69 67 68 74 09 20 5e 54 3d 77 6f 72 64 20 20 20 20 20 20 20 5e 59 3d 6c 69 6e 65 0e 4f ┆G=right ^T=word ^Y=line O┆ 0x04a360…04a380 54 48 45 52 3a 09 20 5e 56 3d 69 6e 73 65 72 74 20 6f 66 66 2f 6f 6e 20 20 20 5e 49 3d 74 61 62 ┆THER: ^V=insert off/on ^I=tab┆ 0x04a380…04a3a0 20 20 20 52 45 54 55 52 4e 3d 65 6e 64 20 70 61 72 61 20 20 20 5e 55 3d 73 74 6f 70 0e 09 5e 4e ┆ RETURN=end para ^U=stop ^N┆ 0x04a3a0…04a3c0 3d 69 6e 73 65 72 74 20 61 20 52 45 54 55 52 4e 20 20 5e 42 3d 72 65 66 6f 72 6d 09 20 5e 4c 3d ┆=insert a RETURN ^B=reform ^L=┆ 0x04a3c0…04a3e0 66 69 6e 64 2f 72 65 70 6c 61 63 65 20 61 67 61 69 6e 0e 50 52 45 46 49 58 20 4b 45 59 53 20 20 ┆find/replace again PREFIX KEYS ┆ 0x04a3e0…04a400 5e 51 20 5e 4a 20 5e 4b 20 5e 4f 20 5e 50 20 20 64 69 73 70 6c 61 79 20 61 64 64 69 74 69 6f 6e ┆^Q ^J ^K ^O ^P display addition┆ 0x04a400…04a420 (19, 1, 10) 6c 65 74 65 20 62 6c 6f 63 6b 20 20 20 57 3d 57 72 69 74 65 20 20 20 0e 20 41 44 44 49 54 49 4f ┆lete block W=Write ADDITIO┆ 0x04a420…04a440 4e 41 4c 20 46 49 4c 45 53 20 20 20 52 3d 52 65 61 64 20 66 69 6c 65 20 20 20 20 57 3d 57 72 69 ┆NAL FILES R=Read file W=Wri┆ 0x04a440…04a460 74 65 20 62 6c 6f 63 6b 20 20 4a 3d 64 65 6c 65 74 65 20 66 69 6c 65 09 09 20 20 20 20 20 0e 20 ┆te block J=delete file ┆ 0x04a460…04a480 20 26 20 50 52 49 4e 54 49 4e 47 3a 09 20 20 20 20 4f 3d 63 4f 70 79 20 66 69 6c 65 20 20 20 20 ┆ & PRINTING: O=cOpy file ┆ 0x04a480…04a4a0 45 3d 72 45 6e 61 6d 65 20 66 69 6c 65 20 20 50 3d 17 09 20 20 20 20 20 0e 20 44 49 53 4b 20 26 ┆E=rEname file P= DISK &┆ 0x04a4a0…04a4c0 20 44 49 52 45 43 54 4f 52 59 3a 20 20 4c 3d 63 68 61 6e 67 65 20 4c 6f 67 67 65 64 20 64 69 73 ┆ DIRECTORY: L=change Logged dis┆ 0x04a4c0…04a4e0 6b 09 20 20 46 3d 46 69 6c 65 20 64 69 72 65 63 74 6f 72 79 05 2b 02 20 20 0e 20 50 4c 41 43 45 ┆k F=File directory + PLACE┆ 0x04a4e0…04a500 20 4d 41 52 4b 45 52 53 3a 20 20 20 20 20 30 2d 39 20 3d 20 73 65 74 2f 68 69 64 65 20 70 6c 61 ┆ MARKERS: 0-9 = set/hide pla┆ 0x04a500…04a520 63 65 20 6d 61 72 6b 65 72 20 30 2d 39 09 09 09 20 20 20 20 20 00 89 a0 20 5e 50 20 50 52 45 46 ┆ce marker 0-9 ^P PREF┆ 0x04a520…04a540 49 58 3a 20 50 75 74 20 43 6f 6e 74 72 6f 6c 20 43 68 61 72 61 63 74 65 72 20 69 6e 20 46 69 6c ┆IX: Put Control Character in Fil┆ 0x04a540…04a560 65 20 0e 56 3d 73 75 62 73 63 72 69 70 74 09 20 20 20 20 54 3d 73 75 70 65 72 73 63 72 69 70 74 ┆e V=subscript T=superscript┆ 0x04a560…04a580 09 59 3d 72 69 62 62 6f 6e 20 63 6f 6c 6f 72 20 63 68 61 6e 67 65 0e 53 3d 75 6e 64 65 72 53 63 ┆ Y=ribbon color change S=underSc┆ 0x04a580…04a5a0 6f 72 65 09 20 20 20 20 42 3d 42 6f 6c 64 66 61 63 65 09 09 44 3d 44 6f 75 62 6c 65 20 73 74 72 ┆ore B=Boldface D=Double str┆ 0x04a5a0…04a5c0 69 6b 65 20 20 20 20 20 20 0e 41 3d 61 6c 74 65 72 6e 61 74 65 20 70 69 74 63 68 20 20 20 4e 3d ┆ike A=alternate pitch N=┆ 0x04a5c0…04a5e0 73 74 61 6e 64 61 72 64 20 70 69 74 63 68 09 58 3d 73 74 72 69 6b 65 6f 75 74 20 62 65 67 69 6e ┆standard pitch X=strikeout begin┆ 0x04a5e0…04a600 2f 65 6e 64 0e 4f 3d 6e 6f 6e 2d 62 72 65 61 6b 20 73 70 61 63 65 20 20 20 46 3d 70 68 61 6e 74 ┆/end O=non-break space F=phant┆ 0x04a600…04a620 (19, 1, 11) 20 4d 61 72 67 69 6e 73 20 61 6e 64 20 74 61 62 73 20 0e 20 46 20 3d 20 46 6c 61 67 73 20 69 6e ┆ Margins and tabs F = Flags in┆ 0x04a620…04a640 20 72 69 67 68 74 20 73 63 72 65 65 6e 20 63 6f 6c 75 6d 6e 20 20 20 53 20 3d 20 53 74 61 74 75 ┆ right screen column S = Statu┆ 0x04a640…04a660 73 20 6c 69 6e 65 09 20 0e 20 49 20 3d 20 63 6f 6d 6d 61 6e 64 20 49 6e 64 65 78 3b 20 65 6e 74 ┆s line I = command Index; ent┆ 0x04a660…04a680 65 72 69 6e 67 20 74 65 78 74 20 20 20 52 20 3d 20 52 75 6c 65 72 20 6c 69 6e 65 09 20 0e 20 42 ┆ering text R = Ruler line B┆ 0x04a680…04a6a0 20 3d 20 70 61 72 61 67 72 61 70 68 20 72 65 66 6f 72 6d 20 28 5e 42 20 63 6f 6d 6d 61 6e 64 29 ┆ = paragraph reform (^B command)┆ 0x04a6a0…04a6c0 20 20 56 20 3d 20 6d 6f 56 69 6e 67 20 74 65 78 74 09 20 0e 20 44 20 3d 20 44 6f 74 20 63 6f 6d ┆ V = moVing text D = Dot com┆ 0x04a6c0…04a6e0 6d 61 6e 64 73 2c 20 70 72 69 6e 74 20 63 6f 6e 74 72 6f 6c 73 20 20 20 50 20 3d 20 50 6c 61 63 ┆mands, print controls P = Plac┆ 0x04a6e0…04a700 65 20 6d 61 72 6b 65 72 73 09 20 0e 09 09 09 09 20 20 20 20 53 50 41 43 45 3d 63 61 6e 63 65 6c ┆e markers SPACE=cancel┆ 0x04a700…04a720 20 70 72 65 66 69 78 20 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ prefix ┆ 0x04a720…04a740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x2…] 0x04a780…04a7a0 0e 20 5e 53 3d 64 65 6c 65 74 65 20 63 68 61 72 61 63 74 65 72 20 20 20 5e 59 3d 64 65 6c 65 74 ┆ ^S=delete character ^Y=delet┆ 0x04a7a0…04a7c0 65 20 65 6e 74 72 79 20 20 20 5e 46 3d 46 69 6c 65 20 64 69 72 65 63 74 6f 72 79 20 0e 20 5e 44 ┆e entry ^F=File directory ^D┆ 0x04a7c0…04a7e0 3d 72 65 73 74 6f 72 65 20 63 68 61 72 61 63 74 65 72 20 20 5e 52 3d 52 65 73 74 6f 72 65 20 65 ┆=restore character ^R=Restore e┆ 0x04a7e0…04a800 6e 74 72 79 20 20 5e 55 3d 63 61 6e 63 65 6c 20 63 6f 6d 6d 61 6e 64 20 0e 00 89 a0 20 20 54 59 ┆ntry ^U=cancel command TY┆ 0x04a800…04a820 (19, 1, 12) 20 4e 45 57 20 4c 4f 47 47 45 44 20 44 49 53 4b 20 44 52 49 56 45 20 28 6c 65 74 74 65 72 2c 20 ┆ NEW LOGGED DISK DRIVE (letter, ┆ 0x04a820…04a840 63 6f 6c 6f 6e 2c 20 52 45 54 55 52 4e 29 3f 20 00 0e 20 55 73 65 20 74 68 69 73 20 63 6f 6d 6d ┆colon, RETURN)? Use this comm┆ 0x04a840…04a860 61 6e 64 20 74 6f 20 63 72 65 61 74 65 20 61 6e 64 20 61 6c 74 65 72 20 70 72 6f 67 72 61 6d 20 ┆and to create and alter program ┆ 0x04a860…04a880 73 6f 75 72 63 65 20 66 69 6c 65 73 20 20 20 20 20 0e 20 20 20 61 6e 64 20 6f 74 68 65 72 20 6e ┆source files and other n┆ 0x04a880…04a8a0 6f 6e 2d 64 6f 63 75 6d 65 6e 74 73 2e 20 20 57 6f 72 64 20 77 72 61 70 20 64 65 66 61 75 6c 74 ┆on-documents. Word wrap default┆ 0x04a8a0…04a8c0 73 20 6f 66 66 3b 09 20 20 20 20 20 20 20 0e 20 20 20 74 61 62 62 69 6e 67 20 64 65 66 61 75 6c ┆s off; tabbing defaul┆ 0x04a8c0…04a8e0 74 73 20 74 6f 20 66 69 78 65 64 20 28 54 41 42 20 63 68 61 72 73 20 69 6e 20 66 69 6c 65 3b 20 ┆ts to fixed (TAB chars in file; ┆ 0x04a8e0…04a900 38 2d 63 6f 6c 20 73 74 6f 70 73 29 3b 20 0e 20 20 20 70 61 67 65 20 62 72 65 61 6b 73 20 6e 6f ┆8-col stops); page breaks no┆ 0x04a900…04a920 74 20 73 68 6f 77 6e 3b 20 68 69 20 62 69 74 20 66 6c 61 67 73 20 6e 6f 74 20 75 73 65 64 20 69 ┆t shown; hi bit flags not used i┆ 0x04a920…04a940 6e 20 66 69 6c 65 2e 20 20 20 20 20 20 20 0e 20 46 6f 72 20 6e 6f 72 6d 61 6c 20 77 6f 72 64 20 ┆n file. For normal word ┆ 0x04a940…04a960 70 72 6f 63 65 73 73 69 6e 67 20 75 73 65 73 2c 20 75 73 65 20 74 68 65 20 22 44 22 20 63 6f 6d ┆processing uses, use the "D" com┆ 0x04a960…04a980 6d 61 6e 64 20 69 6e 73 74 65 61 64 2e 20 0e 00 0e a0 20 55 73 65 20 74 68 69 73 20 63 6f 6d 6d ┆mand instead. Use this comm┆ 0x04a980…04a9a0 61 6e 64 20 74 6f 20 63 72 65 61 74 65 20 61 20 6e 65 77 20 64 6f 63 75 6d 65 6e 74 20 66 69 6c ┆and to create a new document fil┆ 0x04a9a0…04a9c0 65 2c 20 20 20 20 20 20 20 20 20 0e a0 20 6f 72 20 74 6f 20 69 6e 69 74 69 61 74 65 20 61 6c 74 ┆e, or to initiate alt┆ 0x04a9c0…04a9e0 65 72 61 74 69 6f 6e 20 6f 66 20 61 6e 20 65 78 69 73 74 69 6e 67 20 64 6f 63 75 6d 65 6e 74 20 ┆eration of an existing document ┆ 0x04a9e0…04aa00 66 69 6c 65 2e 20 0e 00 0e 13 20 41 20 66 69 6c 65 20 6e 61 6d 65 20 69 73 20 31 2d 38 20 6c 65 ┆file. A file name is 1-8 le┆ 0x04aa00…04aa20 (19, 1, 13) 61 6c 20 6d 65 6e 75 73 20 20 20 20 20 20 20 20 20 00 13 a0 a0 20 5e 51 20 50 52 45 46 49 58 20 ┆al menus ^Q PREFIX ┆ 0x04aa20…04aa40 20 20 20 20 20 28 74 6f 20 63 61 6e 63 65 6c 20 70 72 65 66 69 78 2c 20 70 72 65 73 73 20 53 50 ┆ (to cancel prefix, press SP┆ 0x04aa40…04aa60 41 43 45 20 62 61 72 29 20 0e 43 55 52 53 4f 52 3a 20 20 53 3d 6c 65 66 74 20 53 69 64 65 20 20 ┆ACE bar) CURSOR: S=left Side ┆ 0x04aa60…04aa80 20 45 3d 74 6f 70 20 20 58 3d 62 6f 74 74 6f 6d 20 20 20 44 3d 72 69 67 68 74 20 65 6e 44 20 6c ┆ E=top X=bottom D=right enD l┆ 0x04aa80…04aaa0 69 6e 65 20 20 20 20 20 0e 09 20 52 3d 62 65 67 69 6e 6e 69 6e 67 20 66 69 6c 65 20 20 20 43 3d ┆ine R=beginning file C=┆ 0x04aaa0…04aac0 65 6e 64 20 66 69 6c 65 20 20 20 30 2d 39 2c 42 2c 4b 2c 56 2c 50 3d 74 6f 20 6d 61 72 6b 65 72 ┆end file 0-9,B,K,V,P=to marker┆ 0x04aac0…04aae0 0e 53 43 52 4f 4c 4c 3a 09 09 20 20 20 20 20 20 5a 3d 63 6f 6e 74 69 6e 75 6f 75 73 20 75 70 09 ┆ SCROLL: Z=continuous up ┆ 0x04aae0…04ab00 20 57 3d 63 6f 6e 74 69 6e 75 6f 75 73 20 64 6f 77 6e 20 20 20 20 0e 44 45 4c 45 54 45 20 54 4f ┆ W=continuous down DELETE TO┆ 0x04ab00…04ab20 20 45 4e 44 20 4c 49 4e 45 3a 20 20 20 44 45 4c 3d 6c 65 66 74 09 09 20 59 3d 72 69 67 68 74 09 ┆ END LINE: DEL=left Y=right ┆ 0x04ab20…04ab40 20 20 20 20 20 20 0e 46 49 4e 44 2c 20 52 45 50 4c 41 43 45 3a 09 20 20 20 20 20 20 46 3d 46 69 ┆ FIND, REPLACE: F=Fi┆ 0x04ab40…04ab60 6e 64 20 61 20 73 74 72 69 6e 67 09 20 41 3d 66 69 6e 64 20 41 6e 64 20 73 75 62 73 74 69 74 75 ┆nd a string A=find And substitu┆ 0x04ab60…04ab80 74 65 0e 52 45 50 45 41 54 20 4e 45 58 54 20 43 4f 4d 4d 41 4e 44 3a 20 20 51 3d 72 65 70 65 61 ┆te REPEAT NEXT COMMAND: Q=repea┆ 0x04ab80…04aba0 74 20 75 6e 74 69 6c 20 6b 65 79 20 70 72 65 73 73 65 64 09 20 20 20 20 20 20 00 13 13 20 20 5e ┆t until key pressed ^┆ 0x04aba0…04abc0 51 20 50 52 45 46 49 58 09 09 20 20 28 74 6f 20 63 61 6e 63 65 6c 20 70 72 65 66 69 78 2c 20 70 ┆Q PREFIX (to cancel prefix, p┆ 0x04abc0…04abe0 72 65 73 73 20 53 50 41 43 45 20 62 61 72 29 20 20 0e 20 43 55 52 53 4f 52 3a 20 20 53 3d 6c 65 ┆ress SPACE bar) CURSOR: S=le┆ 0x04abe0…04ac00 66 74 20 53 69 64 65 20 73 63 72 65 65 6e 20 20 20 20 45 3d 74 6f 70 20 73 63 72 65 65 6e 20 20 ┆ft Side screen E=top screen ┆ 0x04ac00…04ac20 (19, 1, 14) 6f 6d 20 73 70 61 63 65 09 47 3d 70 68 61 6e 74 6f 6d 20 72 75 62 6f 75 74 20 20 20 20 20 0e 43 ┆om space G=phantom rubout C┆ 0x04ac20…04ac40 3d 70 61 75 73 65 09 09 20 20 20 20 48 3d 6f 76 65 72 70 72 69 6e 74 20 63 68 61 72 09 52 45 54 ┆=pause H=overprint char RET┆ 0x04ac40…04ac60 55 52 4e 3d 6f 76 65 72 70 72 69 6e 74 20 6c 69 6e 65 0e 51 2c 57 2c 45 2c 52 3d 75 73 65 72 20 ┆URN=overprint line Q,W,E,R=user ┆ 0x04ac60…04ac80 70 72 69 6e 74 65 72 20 63 6f 6e 74 72 6f 6c 73 09 09 53 50 41 43 45 3d 63 61 6e 63 65 6c 20 70 ┆printer controls SPACE=cancel p┆ 0x04ac80…04aca0 72 65 66 69 78 20 20 00 89 89 20 20 5e 50 20 50 52 45 46 49 58 3a 20 50 75 74 20 43 6f 6e 74 72 ┆refix ^P PREFIX: Put Contr┆ 0x04aca0…04acc0 6f 6c 20 43 68 61 72 61 63 74 65 72 20 69 6e 20 46 69 6c 65 20 20 0e 20 56 3d 73 75 62 73 63 72 ┆ol Character in File V=subscr┆ 0x04acc0…04ace0 69 70 74 20 62 65 67 69 6e 2f 65 6e 64 20 20 20 54 3d 73 75 70 65 72 73 63 72 69 70 74 20 62 65 ┆ipt begin/end T=superscript be┆ 0x04ace0…04ad00 67 69 6e 2f 65 6e 64 20 20 20 20 59 3d 72 69 62 62 6f 6e 20 63 6f 6c 6f 72 20 63 68 61 6e 67 65 ┆gin/end Y=ribbon color change┆ 0x04ad00…04ad20 20 20 20 20 20 20 0e 20 53 3d 75 6e 64 65 72 53 63 6f 72 65 20 62 65 67 69 6e 2f 65 6e 64 20 20 ┆ S=underScore begin/end ┆ 0x04ad20…04ad40 42 3d 42 6f 6c 64 66 61 63 65 20 62 65 67 69 6e 2f 65 6e 64 09 20 20 20 20 44 3d 44 6f 75 62 6c ┆B=Boldface begin/end D=Doubl┆ 0x04ad40…04ad60 65 20 73 74 72 69 6b 65 20 62 65 67 69 6e 2f 65 6e 64 20 20 0e 20 41 3d 61 6c 74 65 72 6e 61 74 ┆e strike begin/end A=alternat┆ 0x04ad60…04ad80 65 20 70 69 74 63 68 09 20 4e 3d 73 74 61 6e 64 61 72 64 20 70 69 74 63 68 09 20 20 20 20 58 3d ┆e pitch N=standard pitch X=┆ 0x04ad80…04ada0 73 74 72 69 6b 65 6f 75 74 20 62 65 67 69 6e 2f 65 6e 64 20 20 20 20 20 20 0e 20 4f 3d 6e 6f 6e ┆strikeout begin/end O=non┆ 0x04ada0…04adc0 2d 62 72 65 61 6b 20 73 70 61 63 65 09 20 46 3d 70 68 61 6e 74 6f 6d 20 73 70 61 63 65 09 20 20 ┆-break space F=phantom space ┆ 0x04adc0…04ade0 20 20 47 3d 70 68 2e 20 72 75 62 6f 75 74 20 28 73 65 65 20 6d 61 6e 75 61 6c 29 20 20 0e 20 43 ┆ G=ph. rubout (see manual) C┆ 0x04ade0…04ae00 3d 70 61 75 73 65 20 77 68 65 6e 20 70 72 69 6e 74 69 6e 67 20 20 20 48 3d 6f 76 65 72 70 72 69 ┆=pause when printing H=overpri┆ 0x04ae00…04ae20 (19, 1, 15) 50 45 20 5e 4b 50 20 54 4f 20 43 4f 4e 54 49 4e 55 45 20 50 52 49 4e 54 20 20 0e 00 13 20 54 4f ┆PE ^KP TO CONTINUE PRINT TO┆ 0x04ae20…04ae40 20 52 45 54 55 52 4e 20 43 55 52 53 4f 52 20 54 4f 20 50 4f 53 49 54 49 4f 4e 20 42 45 46 4f 52 ┆ RETURN CURSOR TO POSITION BEFOR┆ 0x04ae40…04ae60 45 20 53 41 56 45 2c 09 0e 13 20 54 59 50 45 20 5e 51 50 20 42 45 46 4f 52 45 20 54 59 50 49 4e ┆E SAVE, TYPE ^QP BEFORE TYPIN┆ 0x04ae60…04ae80 47 20 41 4e 59 54 48 49 4e 47 20 45 4c 53 45 2e 09 0e 00 13 13 20 54 59 50 45 20 31 2d 39 20 54 ┆G ANYTHING ELSE. TYPE 1-9 T┆ 0x04ae80…04aea0 4f 20 56 41 52 59 20 53 50 45 45 44 2c 20 53 50 41 43 45 20 54 4f 20 53 54 4f 50 20 0e 00 0e 2a ┆O VARY SPEED, SPACE TO STOP *┆ 0x04aea0…04aec0 2a 2a 20 57 41 52 4e 49 4e 47 3a 20 20 0e 20 57 52 4f 4e 47 20 56 45 52 53 49 4f 4e 20 4f 46 20 ┆** WARNING: WRONG VERSION OF ┆ 0x04aec0…04aee0 57 53 4d 53 47 53 2e 4f 56 52 20 2d 2d 20 09 0e 20 53 4f 4d 45 20 4d 45 53 53 41 47 45 53 20 4d ┆WSMSGS.OVR -- SOME MESSAGES M┆ 0x04aee0…04af00 41 59 20 42 45 20 49 4e 43 4f 52 52 45 43 54 2e 20 2a 2a 2a 09 0e 0e 00 2a 2a 2a 20 57 41 52 4e ┆AY BE INCORRECT. *** *** WARN┆ 0x04af00…04af20 49 4e 47 20 0e 20 53 43 52 45 45 4e 53 20 4f 56 45 52 20 34 38 20 4c 49 4e 45 53 20 48 49 47 48 ┆ING SCREENS OVER 48 LINES HIGH┆ 0x04af20…04af40 20 4f 52 20 31 32 30 20 43 4f 4c 55 4d 4e 53 20 57 49 44 45 20 20 0e 20 48 41 56 45 20 4e 4f 54 ┆ OR 120 COLUMNS WIDE HAVE NOT┆ 0x04af40…04af60 20 42 45 45 4e 20 54 45 53 54 45 44 20 41 4e 44 20 44 45 42 55 47 47 45 44 2e 20 50 52 4f 43 45 ┆ BEEN TESTED AND DEBUGGED. PROCE┆ 0x04af60…04af80 45 44 20 57 49 54 48 20 0e 20 43 41 55 54 49 4f 4e 3b 20 52 45 44 55 43 45 20 57 49 44 54 48 20 ┆ED WITH CAUTION; REDUCE WIDTH ┆ 0x04af80…04afa0 49 46 20 42 55 47 53 20 45 4e 43 4f 55 4e 54 45 52 45 44 2e 09 20 0e 00 0e 2a 2a 2a 20 57 41 52 ┆IF BUGS ENCOUNTERED. *** WAR┆ 0x04afa0…04afc0 4e 49 4e 47 3a 20 44 49 53 4b 20 46 55 4c 4c 2c 09 0e 09 44 45 4c 45 54 49 4e 47 20 4f 4c 44 20 ┆NING: DISK FULL, DELETING OLD ┆ 0x04afc0…04afe0 2e 42 41 4b 20 46 49 4c 45 20 54 4f 20 4d 41 4b 45 20 53 50 41 43 45 09 09 0e 09 28 4e 4f 52 4d ┆.BAK FILE TO MAKE SPACE (NORM┆ 0x04afe0…04b000 41 4c 4c 59 2c 20 54 48 45 20 50 52 45 56 49 4f 55 53 20 42 41 43 4b 55 50 20 46 49 4c 45 20 49 ┆ALLY, THE PREVIOUS BACKUP FILE I┆ 0x04b000…04b020 (20, 0, 1) 74 74 65 72 73 2f 64 69 67 69 74 73 2c 20 61 20 70 65 72 69 6f 64 2c 09 0e 13 20 61 6e 64 20 61 ┆tters/digits, a period, and a┆ 0x04b020…04b040 6e 20 6f 70 74 69 6f 6e 61 6c 20 30 2d 33 20 63 68 61 72 61 63 74 65 72 20 74 79 70 65 2e 09 09 ┆n optional 0-3 character type. ┆ 0x04b040…04b060 09 0e 13 20 46 69 6c 65 20 6e 61 6d 65 20 6d 61 79 20 62 65 20 70 72 65 63 65 64 65 64 20 62 79 ┆ File name may be preceded by┆ 0x04b060…04b080 20 64 69 73 6b 20 64 72 69 76 65 20 6c 65 74 74 65 72 20 41 2d 44 20 20 0e 13 20 61 6e 64 20 63 ┆ disk drive letter A-D and c┆ 0x04b080…04b0a0 6f 6c 6f 6e 2c 20 6f 74 68 65 72 77 69 73 65 20 63 75 72 72 65 6e 74 20 6c 6f 67 67 65 64 20 64 ┆olon, otherwise current logged d┆ 0x04b0a0…04b0c0 69 73 6b 20 69 73 20 75 73 65 64 2e 09 00 0e 20 57 41 52 4e 49 4e 47 3a 20 59 6f 75 20 61 72 65 ┆isk is used. WARNING: You are┆ 0x04b0c0…04b0e0 20 65 64 69 74 69 6e 67 20 74 68 65 20 73 61 6d 65 20 66 69 6c 65 20 61 73 20 79 6f 75 20 61 72 ┆ editing the same file as you ar┆ 0x04b0e0…04b100 65 20 70 72 69 6e 74 69 6e 67 2e 20 0e 20 57 6f 72 64 53 74 61 72 20 77 69 6c 6c 20 6e 6f 74 20 ┆e printing. WordStar will not ┆ 0x04b100…04b120 61 6c 6c 6f 77 20 79 6f 75 20 74 6f 20 73 61 76 65 20 74 68 65 20 65 64 69 74 65 64 20 76 65 72 ┆allow you to save the edited ver┆ 0x04b120…04b140 73 69 6f 6e 20 20 20 20 20 20 0e 20 75 6e 74 69 6c 20 74 68 65 20 70 72 69 6e 74 20 68 61 73 20 ┆sion until the print has ┆ 0x04b140…04b160 63 6f 6d 70 6c 65 74 65 64 20 6f 72 20 68 61 73 20 62 65 65 6e 20 61 62 61 6e 64 6f 6e 65 64 2e ┆completed or has been abandoned.┆ 0x04b160…04b180 09 20 20 20 20 20 0e 0e 00 0e 20 41 4c 4c 4f 57 20 50 52 49 4e 54 20 54 4f 20 46 49 4e 49 53 48 ┆ ALLOW PRINT TO FINISH┆ 0x04b180…04b1a0 20 42 45 46 4f 52 45 20 45 44 49 54 49 4e 47 20 41 20 46 49 4c 45 2e 20 0e 20 59 4f 55 52 20 53 ┆ BEFORE EDITING A FILE. YOUR S┆ 0x04b1a0…04b1c0 59 53 54 45 4d 20 44 4f 45 53 20 4e 4f 54 20 48 41 56 45 20 45 4e 4f 55 47 48 20 4d 45 4d 4f 52 ┆YSTEM DOES NOT HAVE ENOUGH MEMOR┆ 0x04b1c0…04b1e0 59 20 54 4f 20 20 20 0e 20 50 45 52 4d 49 54 20 53 49 4d 55 4c 54 41 4e 45 4f 55 53 20 45 44 49 ┆Y TO PERMIT SIMULTANEOUS EDI┆ 0x04b1e0…04b200 54 49 4e 47 20 41 4e 44 20 50 52 49 4e 54 49 4e 47 2e 20 20 20 20 0e 00 0e 20 43 41 4e 27 54 20 ┆TING AND PRINTING. CAN'T ┆ 0x04b200…04b220 (20, 0, 2) 20 42 45 47 49 4e 4e 49 4e 47 20 4e 4f 54 20 4d 41 52 4b 45 44 20 0e 09 20 20 20 20 20 20 28 4f ┆ BEGINNING NOT MARKED (O┆ 0x04b220…04b240 52 20 4d 41 52 4b 45 52 20 49 53 20 55 4e 44 49 53 50 4c 41 59 45 44 29 00 42 4c 4f 43 4b 20 45 ┆R MARKER IS UNDISPLAYED) BLOCK E┆ 0x04b240…04b260 4e 44 20 4e 4f 54 20 4d 41 52 4b 45 44 20 20 20 20 20 20 20 0e 09 20 20 20 20 20 20 28 4f 52 20 ┆ND NOT MARKED (OR ┆ 0x04b260…04b280 4d 41 52 4b 45 52 20 49 53 20 55 4e 44 49 53 50 4c 41 59 45 44 29 00 42 4c 4f 43 4b 20 45 4e 44 ┆MARKER IS UNDISPLAYED) BLOCK END┆ 0x04b280…04b2a0 20 4d 41 52 4b 45 52 20 42 45 46 4f 52 45 20 42 45 47 49 4e 4e 49 4e 47 20 4d 41 52 4b 45 52 00 ┆ MARKER BEFORE BEGINNING MARKER ┆ 0x04b2a0…04b2c0 42 4c 4f 43 4b 20 54 4f 4f 20 4c 4f 4e 47 20 2d 20 0e 09 20 20 20 20 20 20 4d 4f 56 45 20 4f 52 ┆BLOCK TOO LONG - MOVE OR┆ 0x04b2c0…04b2e0 20 44 45 4c 45 54 45 20 49 4e 20 54 57 4f 20 53 4d 41 4c 4c 45 52 20 42 4c 4f 43 4b 53 00 54 48 ┆ DELETE IN TWO SMALLER BLOCKS TH┆ 0x04b2e0…04b300 41 54 20 46 49 4c 45 20 45 58 49 53 54 53 20 4f 4e 20 44 45 53 54 49 4e 41 54 49 4f 4e 20 44 49 ┆AT FILE EXISTS ON DESTINATION DI┆ 0x04b300…04b320 53 4b 2e 20 0e 09 20 20 20 20 20 20 20 44 45 4c 45 54 45 20 45 58 49 53 54 49 4e 47 20 46 49 4c ┆SK. DELETE EXISTING FIL┆ 0x04b320…04b340 45 20 46 49 52 53 54 2c 20 20 0e 09 20 20 20 20 20 20 20 4f 52 20 55 53 45 20 41 20 44 49 46 46 ┆E FIRST, OR USE A DIFF┆ 0x04b340…04b360 45 52 45 4e 54 20 44 49 53 4b 45 54 54 45 2e 00 44 49 53 4b 20 46 55 4c 4c 00 49 4e 56 41 4c 49 ┆ERENT DISKETTE. DISK FULL INVALI┆ 0x04b360…04b380 44 20 43 4f 50 59 20 4c 45 4e 47 54 48 00 41 44 44 52 45 53 53 20 49 4e 20 22 48 4f 4c 45 22 20 ┆D COPY LENGTH ADDRESS IN "HOLE" ┆ 0x04b380…04b3a0 28 54 53 54 41 44 52 29 00 4d 45 4d 4f 52 59 20 46 55 4c 4c 20 28 4d 41 4b 32 35 36 29 00 4d 45 ┆(TSTADR) MEMORY FULL (MAK256) ME┆ 0x04b3a0…04b3c0 4d 4f 52 59 20 53 48 4f 52 54 41 47 45 20 28 4d 4b 53 50 29 00 50 4f 49 4e 54 45 52 20 3e 20 36 ┆MORY SHORTAGE (MKSP) POINTER > 6┆ 0x04b3c0…04b3e0 34 4b 20 46 52 4f 4d 20 43 55 52 53 4f 52 20 28 50 50 54 4f 41 44 29 00 4e 4f 54 20 45 4e 4f 55 ┆4K FROM CURSOR (PPTOAD) NOT ENOU┆ 0x04b3e0…04b400 47 48 20 4d 45 4d 4f 52 59 20 0e 20 20 4f 52 20 59 4f 55 52 20 4f 50 45 52 41 54 49 4e 47 20 53 ┆GH MEMORY OR YOUR OPERATING S┆ 0x04b400…04b420 (20, 0, 3) 6f 6b 65 20 75 6e 64 65 72 6c 69 6e 69 6e 67 2c 20 62 6f 6c 64 66 61 63 65 2c 20 73 75 62 73 63 ┆oke underlining, boldface, subsc┆ 0x04b420…04b440 72 69 70 74 73 2c 20 70 61 75 73 65 73 2c 20 65 74 63 2e 20 0e 20 20 20 20 20 54 68 65 79 20 61 ┆ripts, pauses, etc. They a┆ 0x04b440…04b460 72 65 20 65 6e 74 65 72 65 64 20 62 79 20 74 79 70 69 6e 67 20 5e 50 20 61 6e 64 20 61 20 6c 65 ┆re entered by typing ^P and a le┆ 0x04b460…04b480 74 74 65 72 2e 20 20 41 20 64 69 72 65 63 74 6f 72 79 20 20 0e 20 20 20 20 20 6f 66 20 6d 6f 73 ┆tter. A directory of mos┆ 0x04b480…04b4a0 74 20 70 72 69 6e 74 20 63 6f 6e 74 72 6f 6c 73 20 69 73 20 67 69 76 65 6e 20 6f 6e 20 74 68 65 ┆t print controls is given on the┆ 0x04b4a0…04b4c0 20 5e 50 20 50 52 45 46 49 58 20 4d 45 4e 55 3b 20 20 20 20 0e 20 20 20 20 20 73 65 65 20 6d 61 ┆ ^P PREFIX MENU; see ma┆ 0x04b4c0…04b4e0 6e 75 61 6c 20 66 6f 72 20 6d 6f 72 65 2e 09 09 09 09 20 20 20 20 20 20 20 0e 20 44 4f 54 20 43 ┆nual for more. DOT C┆ 0x04b4e0…04b500 4f 4d 4d 41 4e 44 53 20 61 72 65 20 73 70 65 63 69 61 6c 20 6c 69 6e 65 73 20 62 65 67 69 6e 6e ┆OMMANDS are special lines beginn┆ 0x04b500…04b520 69 6e 67 20 77 69 74 68 20 61 20 70 65 72 69 6f 64 20 61 6e 64 20 20 20 20 0e 20 20 20 20 20 61 ┆ing with a period and a┆ 0x04b520…04b540 20 74 77 6f 2d 6c 65 74 74 65 72 20 63 6f 64 65 2e 20 20 54 68 65 79 20 63 6f 6e 74 72 6f 6c 20 ┆ two-letter code. They control ┆ 0x04b540…04b560 70 61 67 65 20 62 72 65 61 6b 73 2c 20 68 65 61 64 69 6e 67 73 2c 20 20 20 0e 20 20 20 20 20 70 ┆page breaks, headings, p┆ 0x04b560…04b580 61 67 65 20 6e 75 6d 62 65 72 69 6e 67 2c 20 70 61 67 65 20 6c 61 79 6f 75 74 2c 20 65 74 63 2e ┆age numbering, page layout, etc.┆ 0x04b580…04b5a0 20 20 44 6f 74 20 63 6f 6d 6d 61 6e 64 73 20 61 72 65 20 20 20 20 20 20 20 0e 20 20 20 20 20 74 ┆ Dot commands are t┆ 0x04b5a0…04b5c0 79 70 65 64 20 69 6e 20 6c 69 6b 65 20 6f 74 68 65 72 20 74 65 78 74 2e 09 09 09 09 20 20 20 20 ┆yped in like other text. ┆ 0x04b5c0…04b5e0 20 20 20 0e 20 53 70 61 63 65 20 62 61 72 20 66 6f 72 20 44 4f 54 20 43 4f 4d 4d 41 4e 44 20 53 ┆ Space bar for DOT COMMAND S┆ 0x04b5e0…04b600 55 4d 4d 41 52 59 2c 20 5e 55 20 74 6f 20 72 65 74 75 72 6e 20 74 6f 20 65 64 69 74 69 6e 67 3a ┆UMMARY, ^U to return to editing:┆ 0x04b600…04b620 (20, 0, 4) 65 72 73 63 72 69 70 74 20 52 6f 6c 6c 20 69 6e 20 34 38 74 68 73 20 6f 66 20 61 6e 20 69 6e 63 ┆erscript Roll in 48ths of an inc┆ 0x04b620…04b640 68 20 20 28 33 29 20 0e 20 2e 55 4a 20 4f 46 46 2f 4f 4e 20 20 20 22 4d 69 63 72 6f 4a 75 73 74 ┆h (3) .UJ OFF/ON "MicroJust┆ 0x04b640…04b660 69 66 69 63 61 74 69 6f 6e 22 20 6f 66 66 2f 6f 6e 09 20 28 64 65 66 61 75 6c 74 20 4f 4e 29 20 ┆ification" off/on (default ON) ┆ 0x04b660…04b680 0e 20 20 20 20 20 20 20 20 55 73 65 20 69 6e 73 75 72 65 20 74 68 61 74 20 70 72 69 6e 74 65 64 ┆ Use insure that printed┆ 0x04b680…04b6a0 20 63 6f 6c 75 6d 6e 20 61 6c 69 67 6e 6d 65 6e 74 20 65 78 61 63 74 6c 79 20 20 20 20 20 20 0e ┆ column alignment exactly ┆ 0x04b6a0…04b6c0 20 20 20 20 20 20 20 20 6d 61 74 63 68 65 73 20 73 63 72 65 65 6e 2c 20 65 2e 67 2e 20 66 6f 72 ┆ matches screen, e.g. for┆ 0x04b6c0…04b6e0 20 74 61 62 75 6c 61 72 20 6d 61 74 65 72 69 61 6c 3a 09 20 20 20 20 20 20 0e 09 50 75 74 20 2e ┆ tabular material: Put .┆ 0x04b6e0…04b700 55 4a 20 4f 46 46 20 62 65 66 6f 72 65 20 74 61 62 6c 65 2c 20 70 75 74 20 2e 55 4a 20 4f 4e 20 ┆UJ OFF before table, put .UJ ON ┆ 0x04b700…04b720 61 66 74 65 72 20 74 61 62 6c 65 2e 20 20 20 20 20 0e 09 20 20 20 20 20 20 53 70 61 63 65 20 66 ┆after table. Space f┆ 0x04b720…04b740 6f 72 20 6e 65 78 74 20 66 72 61 6d 65 2c 20 5e 55 20 74 6f 20 72 65 74 75 72 6e 20 74 6f 20 65 ┆or next frame, ^U to return to e┆ 0x04b740…04b760 64 69 74 69 6e 67 3a 20 18 20 53 50 45 43 49 41 4c 20 43 48 41 52 41 43 54 45 52 53 20 69 6e 20 ┆diting: SPECIAL CHARACTERS in ┆ 0x04b760…04b780 48 45 41 44 49 4e 47 53 20 28 2e 48 45 29 20 61 6e 64 20 46 4f 4f 54 49 4e 47 53 20 28 2e 46 4f ┆HEADINGS (.HE) and FOOTINGS (.FO┆ 0x04b780…04b7a0 29 3a 20 20 20 20 20 0e 20 20 23 20 20 20 70 72 69 6e 74 73 20 61 73 20 63 75 72 72 65 6e 74 20 ┆): # prints as current ┆ 0x04b7a0…04b7c0 70 61 67 65 20 6e 75 6d 62 65 72 20 09 09 09 20 20 20 20 20 20 0e 20 20 5c 20 20 20 64 6f 20 6e ┆page number Ø do n┆ 0x04b7c0…04b7e0 6f 74 20 69 6e 74 65 72 70 72 65 74 20 6e 65 78 74 20 63 68 61 72 61 63 74 65 72 20 61 73 20 61 ┆ot interpret next character as a┆ 0x04b7e0…04b800 20 73 70 65 63 69 61 6c 20 63 68 61 72 61 63 74 65 72 20 20 0e 20 20 5e 4b 20 20 64 6f 20 6e 6f ┆ special character ^K do no┆ 0x04b800…04b820 (20, 0, 5) 45 44 49 54 20 41 20 46 49 4c 45 20 57 48 49 4c 45 20 4d 45 52 47 45 2d 50 52 49 4e 54 49 4e 47 ┆EDIT A FILE WHILE MERGE-PRINTING┆ 0x04b820…04b840 20 2d 2d 20 20 20 20 0e 20 46 49 4e 49 53 48 20 4f 52 20 41 42 41 4e 44 4f 4e 20 4d 45 52 47 45 ┆ -- FINISH OR ABANDON MERGE┆ 0x04b840…04b860 2d 50 52 49 4e 54 20 42 45 46 4f 52 45 20 45 44 49 54 49 4e 47 20 0e 0e 00 0e 89 89 20 46 49 4e ┆-PRINT BEFORE EDITING FIN┆ 0x04b860…04b880 49 53 48 49 4e 47 20 50 52 49 4e 54 20 42 45 46 4f 52 45 20 45 58 49 54 20 20 20 20 20 0e 89 89 ┆ISHING PRINT BEFORE EXIT ┆ 0x04b880…04b8a0 20 28 74 79 70 65 20 5e 55 20 74 6f 20 63 61 6e 63 65 6c 20 65 78 69 74 20 63 6f 6d 6d 61 6e 64 ┆ (type ^U to cancel exit command┆ 0x04b8a0…04b8c0 29 20 2e 2e 2e 00 0e 89 20 46 49 4e 49 53 48 49 4e 47 20 50 52 49 4e 54 20 4f 46 20 53 41 4d 45 ┆) ... FINISHING PRINT OF SAME┆ 0x04b8c0…04b8e0 20 46 49 4c 45 20 42 45 46 4f 52 45 20 53 41 56 49 4e 47 20 0e 89 20 28 54 79 70 65 20 5e 55 20 ┆ FILE BEFORE SAVING (Type ^U ┆ 0x04b8e0…04b900 74 6f 20 63 61 6e 63 65 6c 20 53 61 76 65 20 63 6f 6d 6d 61 6e 64 29 20 2e 2e 2e 20 20 20 20 20 ┆to cancel Save command) ... ┆ 0x04b900…04b920 20 20 00 0e 89 20 46 49 4e 49 53 48 49 4e 47 20 50 52 49 4e 54 20 4f 46 20 2e 42 41 4b 20 46 49 ┆ FINISHING PRINT OF .BAK FI┆ 0x04b920…04b940 4c 45 20 42 45 46 4f 52 45 20 53 41 56 49 4e 47 20 0e 89 20 28 54 79 70 65 20 5e 55 20 74 6f 20 ┆LE BEFORE SAVING (Type ^U to ┆ 0x04b940…04b960 63 61 6e 63 65 6c 20 53 61 76 65 20 63 6f 6d 6d 61 6e 64 29 20 2e 2e 2e 20 20 20 20 20 20 20 00 ┆cancel Save command) ... ┆ 0x04b960…04b980 0e 13 20 41 42 41 4e 44 4f 4e 49 4e 47 20 55 4e 43 48 41 4e 47 45 44 20 00 0e 13 20 41 42 41 4e ┆ ABANDONING UNCHANGED ABAN┆ 0x04b980…04b9a0 44 4f 4e 20 45 44 49 54 45 44 20 56 45 52 53 49 4f 4e 20 4f 46 20 00 89 89 20 49 4e 56 41 4c 49 ┆DON EDITED VERSION OF INVALI┆ 0x04b9a0…04b9c0 44 20 15 20 4e 41 4d 45 3a 20 00 20 0e 00 89 89 20 15 20 1a 20 4e 4f 54 20 46 4f 55 4e 44 20 0e ┆D NAME: NOT FOUND ┆ 0x04b9c0…04b9e0 00 0e 13 20 4e 6f 77 20 16 70 72 69 6e 74 69 6e 67 20 66 69 6c 65 20 00 0e 0e 13 20 22 59 22 20 ┆ Now printing file "Y" ┆ 0x04b9e0…04ba00 54 4f 20 41 42 41 4e 44 4f 4e 20 50 52 49 4e 54 2c 20 22 4e 22 20 54 4f 20 52 45 53 55 4d 45 2c ┆TO ABANDON PRINT, "N" TO RESUME,┆ 0x04ba00…04ba20 (20, 0, 6) 59 53 54 45 4d 20 49 53 20 4e 4f 54 20 20 20 20 20 20 0e 20 20 52 45 4c 4f 43 41 54 45 44 20 54 ┆YSTEM IS NOT RELOCATED T┆ 0x04ba20…04ba40 4f 20 4d 41 4b 45 20 41 4c 4c 20 52 41 4d 20 41 56 41 49 4c 41 42 4c 45 20 20 00 44 49 53 4b 45 ┆O MAKE ALL RAM AVAILABLE DISKE┆ 0x04ba40…04ba60 54 54 45 20 44 49 52 45 43 54 4f 52 59 20 46 55 4c 4c 20 00 43 4c 4f 53 45 20 46 41 49 4c 55 52 ┆TTE DIRECTORY FULL CLOSE FAILUR┆ 0x04ba60…04ba80 45 20 2d 20 0e 09 20 20 53 59 53 54 45 4d 20 46 41 49 4c 55 52 45 2c 20 4f 52 20 59 4f 55 20 43 ┆E - SYSTEM FAILURE, OR YOU C┆ 0x04ba80…04baa0 48 41 4e 47 45 44 20 44 49 53 4b 45 54 54 45 53 20 00 52 45 4e 41 4d 45 20 46 41 49 4c 55 52 45 ┆HANGED DISKETTES RENAME FAILURE┆ 0x04baa0…04bac0 20 2d 20 0e 09 20 20 53 59 53 54 45 4d 20 46 41 49 4c 55 52 45 2c 20 4f 52 20 59 4f 55 20 43 48 ┆ - SYSTEM FAILURE, OR YOU CH┆ 0x04bac0…04bae0 41 4e 47 45 44 20 44 49 53 4b 45 54 54 45 53 20 00 49 4e 56 41 4c 49 44 20 53 43 52 45 45 4e 20 ┆ANGED DISKETTES INVALID SCREEN ┆ 0x04bae0…04bb00 48 45 49 47 48 54 20 4f 52 20 57 49 44 54 48 20 00 10 20 4d 45 53 53 41 47 45 20 10 00 0e 20 43 ┆HEIGHT OR WIDTH MESSAGE C┆ 0x04bb00…04bb20 61 6e 27 74 20 65 64 69 74 20 61 20 66 69 6c 65 20 6f 66 20 74 79 70 65 20 2e 42 41 4b 20 6f 72 ┆an't edit a file of type .BAK or┆ 0x04bb20…04bb40 20 2e 24 24 24 20 0e 20 2d 2d 20 72 45 6e 61 6d 65 20 6f 72 20 63 4f 70 79 20 62 65 66 6f 72 65 ┆ .$$$ -- rEname or cOpy before┆ 0x04bb40…04bb60 20 65 64 69 74 69 6e 67 09 0e 00 42 41 44 20 4f 56 4c 59 20 23 00 42 41 44 20 4f 56 45 52 4c 41 ┆ editing BAD OVLY # BAD OVERLA┆ 0x04bb60…04bb80 59 20 46 49 4c 45 2c 20 4f 52 20 0e 20 57 52 4f 4e 47 20 56 45 52 53 49 4f 4e 20 4f 56 45 52 4c ┆Y FILE, OR WRONG VERSION OVERL┆ 0x04bb80…04bba0 41 59 20 46 49 4c 45 20 00 4f 76 65 72 6c 61 79 20 66 69 6c 65 20 19 20 4e 6f 74 20 46 6f 75 6e ┆AY FILE Overlay file Not Foun┆ 0x04bba0…04bbc0 64 00 20 46 49 4c 45 20 19 20 4e 4f 54 20 46 4f 55 4e 44 20 20 20 20 20 0e 89 20 28 54 68 65 20 ┆d FILE NOT FOUND (The ┆ 0x04bbc0…04bbe0 73 65 70 65 72 61 74 65 6c 79 20 73 6f 6c 64 20 66 69 6c 65 20 19 20 0e 89 20 20 69 73 20 72 65 ┆seperately sold file is re┆ 0x04bbe0…04bc00 71 75 69 72 65 64 20 66 6f 72 20 75 73 65 20 6f 66 20 4d 65 72 67 65 2d 70 72 69 6e 74 2e 29 20 ┆quired for use of Merge-print.) ┆ 0x04bc00…04bc20 (20, 0, 7) 20 20 18 09 09 20 20 2a 2a 2a 2a 2a 20 20 44 6f 74 20 43 6f 6d 6d 61 6e 64 73 20 20 2a 2a 2a 2a ┆ ***** Dot Commands ****┆ 0x04bc20…04bc40 2a 09 09 20 20 20 20 20 20 0e 20 20 20 20 20 50 55 54 20 45 41 43 48 20 44 4f 54 20 43 4f 4d 4d ┆* PUT EACH DOT COMM┆ 0x04bc40…04bc60 41 4e 44 20 4f 4e 20 53 45 50 41 52 41 54 45 20 4c 49 4e 45 2c 20 57 49 54 48 20 2e 20 49 4e 20 ┆AND ON SEPARATE LINE, WITH . IN ┆ 0x04bc60…04bc80 43 4f 4c 20 31 20 20 20 0e 20 2e 50 41 09 6e 65 77 20 50 41 67 65 09 09 09 09 09 20 20 20 20 20 ┆COL 1 .PA new PAge ┆ 0x04bc80…04bca0 20 0e 20 2e 43 50 20 6e 09 6e 65 77 20 70 61 67 65 20 69 66 20 6c 65 73 73 20 74 68 61 6e 20 6e ┆ .CP n new page if less than n┆ 0x04bca0…04bcc0 20 6c 69 6e 65 73 20 6c 65 66 74 20 6f 6e 20 74 68 69 73 20 70 61 67 65 09 20 20 20 20 20 20 0e ┆ lines left on this page ┆ 0x04bcc0…04bce0 20 2e 4f 50 09 4f 6d 69 74 20 50 61 67 65 20 6e 75 6d 62 65 72 73 20 77 68 65 6e 20 70 72 69 6e ┆ .OP Omit Page numbers when prin┆ 0x04bce0…04bd00 74 69 6e 67 2c 20 73 74 61 72 74 69 6e 67 20 74 68 69 73 20 70 61 67 65 20 20 20 0e 20 2e 50 4e ┆ting, starting this page .PN┆ 0x04bd00…04bd20 09 70 72 69 6e 74 20 50 61 67 65 20 4e 75 6d 62 65 72 73 2c 20 73 74 61 72 74 69 6e 67 20 74 68 ┆ print Page Numbers, starting th┆ 0x04bd20…04bd40 69 73 20 70 61 67 65 09 20 20 20 20 28 64 65 66 61 75 6c 74 29 20 0e 20 2e 50 4e 20 6e 09 73 65 ┆is page (default) .PN n se┆ 0x04bd40…04bd60 74 20 50 61 67 65 20 4e 75 6d 62 65 72 20 74 6f 20 6e 2c 20 70 72 69 6e 74 20 70 61 67 65 20 6e ┆t Page Number to n, print page n┆ 0x04bd60…04bd80 75 6d 62 65 72 73 09 20 20 20 20 20 20 0e 20 2e 50 43 20 6e 09 50 61 67 65 20 6e 75 6d 62 65 72 ┆umbers .PC n Page number┆ 0x04bd80…04bda0 20 43 6f 6c 75 6d 6e 20 28 64 65 66 61 75 6c 74 20 33 33 20 28 33 30 20 69 66 20 36 34 2d 63 6f ┆ Column (default 33 (30 if 64-co┆ 0x04bda0…04bdc0 6c 20 73 63 72 65 65 6e 29 29 20 0e 20 2e 50 4f 20 6e 09 50 61 67 65 20 4f 66 66 73 65 74 3a 20 ┆l screen)) .PO n Page Offset: ┆ 0x04bdc0…04bde0 65 78 74 72 61 20 69 6e 64 65 6e 74 20 77 68 65 6e 20 70 72 69 6e 74 65 64 09 20 20 28 64 65 66 ┆extra indent when printed (def┆ 0x04bde0…04be00 61 75 6c 74 20 38 29 20 0e 20 2e 2e 20 74 65 78 74 20 20 20 63 6f 6d 6d 65 6e 74 2c 20 6e 6f 74 ┆ault 8) .. text comment, not┆ 0x04be00…04be20 (20, 0, 8) 74 20 70 72 69 6e 74 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 70 61 63 65 73 20 69 66 20 6f 6e 20 65 ┆t print following spaces if on e┆ 0x04be20…04be40 76 65 6e 2d 6e 75 6d 62 65 72 65 64 20 70 61 67 65 20 20 0e 20 50 41 47 45 20 4e 55 4d 42 45 52 ┆ven-numbered page PAGE NUMBER┆ 0x04be40…04be60 20 50 4f 53 49 54 49 4f 4e 49 4e 47 3a 20 49 66 20 61 20 66 6f 6f 74 69 6e 67 20 74 65 78 74 20 ┆ POSITIONING: If a footing text ┆ 0x04be60…04be80 69 73 20 73 70 65 63 69 66 69 65 64 20 28 2e 46 4f 20 0e 20 20 64 6f 74 20 63 6f 6d 6d 61 6e 64 ┆is specified (.FO dot command┆ 0x04be80…04bea0 29 2c 20 74 68 65 20 64 65 66 61 75 6c 74 20 62 6f 74 74 6f 6d 20 63 65 6e 74 65 72 20 70 61 67 ┆), the default bottom center pag┆ 0x04bea0…04bec0 65 20 6e 75 6d 62 65 72 20 69 73 20 6e 6f 74 20 20 0e 20 20 70 72 69 6e 74 65 64 2e 20 20 55 73 ┆e number is not printed. Us┆ 0x04bec0…04bee0 65 20 61 20 23 20 69 6e 20 68 65 61 64 69 6e 67 20 6f 72 20 66 6f 6f 74 69 6e 67 20 74 6f 20 70 ┆e a # in heading or footing to p┆ 0x04bee0…04bf00 6f 73 69 74 69 6f 6e 20 70 61 67 65 20 20 20 20 0e 20 20 6e 75 6d 62 65 72 20 77 68 65 72 65 20 ┆osition page number where ┆ 0x04bf00…04bf20 64 65 73 69 72 65 64 2e 20 20 5e 4b 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 73 70 61 63 65 73 20 ┆desired. ^K followed by spaces ┆ 0x04bf20…04bf40 66 6f 6c 6c 6f 77 65 64 20 62 79 20 23 20 20 0e 20 20 6d 61 79 20 62 65 20 75 73 65 64 20 74 6f ┆followed by # may be used to┆ 0x04bf40…04bf60 20 70 72 6f 64 75 63 65 20 61 6c 74 65 72 6e 61 74 69 6e 67 20 6c 65 66 74 2f 72 69 67 68 74 20 ┆ produce alternating left/right ┆ 0x04bf60…04bf80 70 61 67 65 20 6e 75 6d 62 65 72 73 2e 20 0e 09 20 20 20 20 20 20 53 70 61 63 65 20 66 6f 72 20 ┆page numbers. Space for ┆ 0x04bf80…04bfa0 6e 65 78 74 20 66 72 61 6d 65 2c 20 5e 55 20 74 6f 20 72 65 74 75 72 6e 20 74 6f 20 65 64 69 74 ┆next frame, ^U to return to edit┆ 0x04bfa0…04bfc0 69 6e 67 3a 20 18 09 20 20 20 20 2a 2a 2a 2a 2a 20 20 4d 65 72 67 65 2d 50 72 69 6e 74 20 44 6f ┆ing: ***** Merge-Print Do┆ 0x04bfc0…04bfe0 74 20 43 6f 6d 6d 61 6e 64 73 20 20 2a 2a 2a 2a 2a 09 20 20 20 20 20 20 0e 20 2e 44 46 20 66 69 ┆t Commands ***** .DF fi┆ 0x04bfe0…04c000 6c 65 6e 61 6d 65 09 09 20 73 70 65 63 69 66 79 20 44 61 74 61 20 46 69 6c 65 20 66 6f 72 20 2e ┆lename specify Data File for .┆ 0x04c000…04c020 (20, 0, 9) 20 5e 55 20 54 4f 20 48 4f 4c 44 3a 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ^U TO HOLD: ┆ 0x04c020…04c040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x2…] 0x04c080…04c0a0 0e 13 14 16 50 52 49 4e 54 3f 20 00 13 20 46 6f 72 20 64 65 66 61 75 6c 74 20 70 72 65 73 73 20 ┆ PRINT? For default press ┆ 0x04c0a0…04c0c0 52 45 54 55 52 4e 20 66 6f 72 20 65 61 63 68 20 71 75 65 73 74 69 6f 6e 3a 0e 00 13 13 20 53 54 ┆RETURN for each question: ST┆ 0x04c0c0…04c0e0 41 52 54 20 41 54 20 50 41 47 45 20 4e 55 4d 42 45 52 20 28 52 45 54 55 52 4e 20 66 6f 72 20 62 ┆ART AT PAGE NUMBER (RETURN for b┆ 0x04c0e0…04c100 65 67 69 6e 6e 69 6e 67 29 3f 20 00 13 13 20 53 54 4f 50 20 41 46 54 45 52 20 50 41 47 45 20 4e ┆eginning)? STOP AFTER PAGE N┆ 0x04c100…04c120 55 4d 42 45 52 20 28 52 45 54 55 52 4e 20 66 6f 72 20 65 6e 64 29 3f 20 00 13 13 20 4e 55 4d 42 ┆UMBER (RETURN for end)? NUMB┆ 0x04c120…04c140 45 52 20 4f 46 20 43 4f 50 49 45 53 20 28 52 45 54 55 52 4e 20 66 6f 72 20 31 29 3f 20 00 13 13 ┆ER OF COPIES (RETURN for 1)? ┆ 0x04c140…04c160 20 44 49 53 4b 20 15 20 4f 55 54 50 55 54 20 28 59 2f 4e 29 3a 20 00 13 13 20 20 20 4f 55 54 50 ┆ DISK OUTPUT (Y/N): OUTP┆ 0x04c160…04c180 55 54 20 15 20 4e 41 4d 45 3f 20 00 13 13 20 55 53 45 20 46 4f 52 4d 20 46 45 45 44 53 20 28 59 ┆UT NAME? USE FORM FEEDS (Y┆ 0x04c180…04c1a0 2f 4e 29 3a 20 00 13 13 20 53 55 50 50 52 45 53 53 20 50 41 47 45 20 46 4f 52 4d 41 54 54 49 4e ┆/N): SUPPRESS PAGE FORMATTIN┆ 0x04c1a0…04c1c0 47 20 28 59 2f 4e 29 3a 20 00 13 13 20 50 41 55 53 45 20 46 4f 52 20 50 41 50 45 52 20 43 48 41 ┆G (Y/N): PAUSE FOR PAPER CHA┆ 0x04c1c0…04c1e0 4e 47 45 20 42 45 54 57 45 45 4e 20 50 41 47 45 53 20 28 59 2f 4e 29 3a 20 00 13 20 52 65 61 64 ┆NGE BETWEEN PAGES (Y/N): Read┆ 0x04c1e0…04c200 79 20 70 72 69 6e 74 65 72 2c 20 70 72 65 73 73 20 52 45 54 55 52 4e 3a 20 00 20 57 41 52 4e 49 ┆y printer, press RETURN: WARNI┆ 0x04c200…04c220 (20, 0, 10) 20 00 4e 4f 54 20 46 4f 55 4e 44 00 50 52 4f 47 52 41 4d 20 49 53 20 41 4e 20 45 4d 50 54 59 20 ┆ NOT FOUND PROGRAM IS AN EMPTY ┆ 0x04c220…04c240 46 49 4c 45 21 3f 00 50 52 4f 47 52 41 4d 20 54 4f 4f 20 42 49 47 20 46 4f 52 20 0e 20 4d 45 4d ┆FILE!? PROGRAM TOO BIG FOR MEM┆ 0x04c240…04c260 4f 52 59 20 41 56 41 49 4c 41 42 4c 45 20 55 4e 44 45 52 20 57 6f 72 64 53 74 61 72 00 0e 20 4c ┆ORY AVAILABLE UNDER WordStar L┆ 0x04c260…04c280 45 54 20 50 52 49 4e 54 20 43 4f 4d 50 4c 45 54 45 20 42 45 46 4f 52 45 20 52 55 4e 4e 49 4e 47 ┆ET PRINT COMPLETE BEFORE RUNNING┆ 0x04c280…04c2a0 20 41 20 50 52 4f 47 52 41 4d 20 0e 0e 00 0e 20 4e 4f 54 20 45 4e 4f 55 47 48 20 4d 45 4d 4f 52 ┆ A PROGRAM NOT ENOUGH MEMOR┆ 0x04c2a0…04c2c0 59 20 54 4f 20 55 53 45 20 22 52 55 4e 20 50 52 4f 47 52 41 4d 22 20 43 4f 4d 4d 41 4e 44 20 0e ┆Y TO USE "RUN PROGRAM" COMMAND ┆ 0x04c2c0…04c2e0 0e 00 0e 20 46 69 6c 65 20 19 20 4e 6f 74 20 46 6f 75 6e 64 20 2d 2d 20 0e 20 43 61 6e 27 74 20 ┆ File Not Found -- Can't ┆ 0x04c2e0…04c300 52 75 6e 20 61 20 70 72 6f 67 72 61 6d 20 75 6e 6c 65 73 73 20 19 20 69 73 20 61 76 61 69 6c 61 ┆Run a program unless is availa┆ 0x04c300…04c320 62 6c 65 2e 20 0e 0e 00 89 89 20 46 49 4c 45 20 1a 20 41 4c 52 45 41 44 59 20 45 58 49 53 54 53 ┆ble. FILE ALREADY EXISTS┆ 0x04c320…04c340 20 00 89 89 20 46 49 4c 45 20 1a 20 4e 4f 54 20 4f 4e 20 53 41 4d 45 20 44 52 49 56 45 20 00 0e ┆ FILE NOT ON SAME DRIVE ┆ 0x04c340…04c360 13 20 54 4f 4f 20 4c 49 54 54 4c 45 20 4d 45 4d 4f 52 59 20 54 4f 20 43 4f 50 59 20 57 48 49 4c ┆ TOO LITTLE MEMORY TO COPY WHIL┆ 0x04c360…04c380 45 20 0e 13 20 45 44 49 54 49 4e 47 20 4f 52 20 4d 45 52 47 45 2d 50 52 49 4e 54 49 4e 47 20 20 ┆E EDITING OR MERGE-PRINTING ┆ 0x04c380…04c3a0 20 20 20 20 20 0e 0e 00 89 20 46 49 4c 45 20 1a 20 45 58 49 53 54 53 20 2d 2d 20 4f 56 45 52 57 ┆ FILE EXISTS -- OVERW┆ 0x04c3a0…04c3c0 52 49 54 45 3f 20 28 59 2f 4e 29 3a 20 00 89 89 20 46 49 4c 45 20 1a 20 49 4e 20 55 53 45 20 42 ┆RITE? (Y/N): FILE IN USE B┆ 0x04c3c0…04c3e0 59 20 57 6f 72 64 53 74 61 72 20 00 0e 89 09 09 20 20 20 20 0e 89 20 20 50 3d 17 20 20 0e 89 09 ┆Y WordStar P= ┆ 0x04c3e0…04c400 09 20 20 20 20 a0 00 0e 0e 13 20 50 72 65 73 73 20 73 70 61 63 65 20 62 61 72 20 61 66 74 65 72 ┆ Press space bar after┆ 0x04c400…04c420 (20, 0, 11) 20 70 72 69 6e 74 65 64 09 09 09 09 20 20 20 20 20 20 0e 09 09 09 20 20 20 20 20 70 72 65 73 73 ┆ printed press┆ 0x04c420…04c440 20 73 70 61 63 65 20 62 61 72 20 66 6f 72 20 6e 65 78 74 20 66 72 61 6d 65 3a 20 18 20 2e 48 45 ┆ space bar for next frame: .HE┆ 0x04c440…04c460 20 74 65 78 74 20 20 20 48 45 61 64 69 6e 67 20 75 73 65 64 20 75 6e 74 69 6c 20 6e 65 78 74 20 ┆ text HEading used until next ┆ 0x04c460…04c480 2e 48 45 09 20 20 20 20 20 20 28 64 65 66 61 75 6c 74 20 62 6c 61 6e 6b 29 20 0e 20 2e 46 4f 20 ┆.HE (default blank) .FO ┆ 0x04c480…04c4a0 74 65 78 74 20 20 20 46 4f 6f 6f 74 69 6e 67 20 20 20 28 72 65 70 6c 61 63 65 73 20 70 61 67 65 ┆text FOooting (replaces page┆ 0x04c4a0…04c4c0 20 6e 75 6d 62 65 72 29 09 20 20 20 20 20 20 28 62 6c 61 6e 6b 29 20 0e 20 2e 50 4c 20 6e 20 20 ┆ number) (blank) .PL n ┆ 0x04c4c0…04c4e0 50 61 70 65 72 20 4c 65 6e 67 74 68 3a 20 20 74 6f 74 61 6c 20 6e 75 6d 62 65 72 20 6f 66 20 6c ┆Paper Length: total number of l┆ 0x04c4e0…04c500 69 6e 65 73 09 20 28 64 65 66 61 75 6c 74 20 36 36 29 20 0e 20 2e 4d 54 20 6e 20 20 4d 61 72 67 ┆ines (default 66) .MT n Marg┆ 0x04c500…04c520 69 6e 20 61 74 20 54 6f 70 3a 20 23 20 6c 69 6e 65 73 2c 20 74 6f 70 20 70 61 70 65 72 20 74 6f ┆in at Top: # lines, top paper to┆ 0x04c520…04c540 20 74 65 78 74 09 20 20 28 33 29 20 0e 20 2e 4d 42 20 6e 09 4d 61 72 67 69 6e 20 61 74 20 42 6f ┆ text (3) .MB n Margin at Bo┆ 0x04c540…04c560 74 74 6f 6d 3a 20 23 20 6c 69 6e 65 73 2c 20 65 6e 64 20 74 65 78 74 20 74 6f 20 65 6e 64 20 70 ┆ttom: # lines, end text to end p┆ 0x04c560…04c580 61 70 65 72 20 20 28 38 29 20 0e 20 20 20 20 20 20 23 20 6c 69 6e 65 73 20 74 65 78 74 20 6f 6e ┆aper (8) # lines text on┆ 0x04c580…04c5a0 20 70 61 67 65 20 69 73 20 20 50 4c 20 2d 20 4d 54 20 2d 20 4d 42 20 20 28 64 65 66 61 75 6c 74 ┆ page is PL - MT - MB (default┆ 0x04c5a0…04c5c0 73 20 74 6f 20 35 35 29 20 0e 20 2e 48 4d 20 6e 09 48 65 61 64 69 6e 67 20 4d 61 72 67 69 6e 3a ┆s to 55) .HM n Heading Margin:┆ 0x04c5c0…04c5e0 20 62 6c 61 6e 6b 20 6c 69 6e 65 73 20 62 65 74 77 65 65 6e 20 68 65 61 64 20 61 6e 64 20 74 65 ┆ blank lines between head and te┆ 0x04c5e0…04c600 78 74 20 28 32 29 20 0e 20 2e 46 4d 20 6e 09 46 6f 6f 74 69 6e 67 20 4d 61 72 67 69 6e 3a 20 62 ┆xt (2) .FM n Footing Margin: b┆ 0x04c600…04c620 (20, 0, 12) 52 56 09 20 20 20 20 20 20 0e 20 2e 52 56 20 6e 61 6d 65 2c 6e 61 6d 65 2c 6e 61 6d 65 2c 2e 2e ┆RV .RV name,name,name,..┆ 0x04c620…04c640 2e 20 20 52 65 61 64 20 56 61 72 69 61 62 6c 65 20 76 61 6c 75 65 73 20 66 72 6f 6d 20 64 61 74 ┆. Read Variable values from dat┆ 0x04c640…04c660 61 20 66 69 6c 65 20 20 0e 20 2e 41 56 20 22 70 72 6f 6d 70 74 22 2c 6e 61 6d 65 09 20 41 73 6b ┆a file .AV "prompt",name Ask┆ 0x04c660…04c680 20 6f 70 65 72 61 74 6f 72 20 66 6f 72 20 56 61 72 69 61 62 6c 65 20 76 61 6c 75 65 20 20 20 20 ┆ operator for Variable value ┆ 0x04c680…04c6a0 20 20 0e 20 20 26 6e 61 6d 65 26 09 20 20 20 61 6e 79 77 68 65 72 65 20 69 6e 20 64 6f 63 27 74 ┆ &name& anywhere in doc't┆ 0x04c6a0…04c6c0 20 70 72 69 6e 74 73 20 61 73 20 76 61 72 69 61 62 6c 65 20 76 61 6c 75 65 2e 0e 20 20 20 20 20 ┆ prints as variable value. ┆ 0x04c6c0…04c6e0 76 61 72 69 61 62 6c 65 20 6e 61 6d 65 73 20 61 72 65 20 6c 65 74 74 65 72 20 74 68 65 6e 20 30 ┆variable names are letter then 0┆ 0x04c6e0…04c700 2d 33 39 20 6c 65 74 74 65 72 73 2c 20 64 69 67 69 74 73 2c 20 2d 27 73 2e 0e 20 2e 46 49 20 66 ┆-39 letters, digits, -'s. .FI f┆ 0x04c700…04c720 69 6c 65 6e 61 6d 65 09 09 20 49 6e 73 65 72 74 20 64 6f 63 75 6d 65 6e 74 20 46 69 6c 65 09 09 ┆ilename Insert document File ┆ 0x04c720…04c740 20 20 20 20 20 20 0e 20 2e 44 4d 20 6d 65 73 73 61 67 65 09 09 20 44 69 73 70 6c 61 79 20 4d 65 ┆ .DM message Display Me┆ 0x04c740…04c760 73 73 61 67 65 20 09 09 20 20 20 20 20 20 0e 20 53 65 65 20 6d 61 6e 75 61 6c 20 66 6f 72 20 64 ┆ssage See manual for d┆ 0x04c760…04c780 65 74 61 69 6c 73 20 61 6e 64 20 61 64 64 69 74 69 6f 6e 61 6c 20 63 6f 6d 6d 61 6e 64 73 2e 20 ┆etails and additional commands. ┆ 0x04c780…04c7a0 20 4d 65 72 67 65 2d 50 72 69 6e 74 20 0e 20 69 73 20 61 6e 20 6f 70 74 69 6f 6e 61 6c 20 66 65 ┆ Merge-Print is an optional fe┆ 0x04c7a0…04c7c0 61 74 75 72 65 2c 20 6f 70 65 72 61 74 69 6f 6e 61 6c 20 6f 6e 6c 79 20 69 66 20 4d 45 52 47 50 ┆ature, operational only if MERGP┆ 0x04c7c0…04c7e0 52 49 4e 2e 4f 56 52 20 69 73 20 20 0e 20 6f 6e 20 79 6f 75 72 20 64 69 73 6b 65 74 74 65 2e 09 ┆RIN.OVR is on your diskette. ┆ 0x04c7e0…04c800 20 50 72 65 73 73 20 61 6e 79 20 6b 65 79 20 74 6f 20 72 65 74 75 72 6e 20 74 6f 20 65 64 69 74 ┆ Press any key to return to edit┆ 0x04c800…04c820 (20, 0, 13) 4e 47 3a 20 59 6f 75 20 61 72 65 20 70 72 69 6e 74 69 6e 67 20 74 68 65 20 73 61 6d 65 20 66 69 ┆NG: You are printing the same fi┆ 0x04c820…04c840 6c 65 20 61 73 20 79 6f 75 20 61 72 65 20 65 64 69 74 69 6e 67 2e 20 0e 20 54 68 65 20 6c 61 73 ┆le as you are editing. The las┆ 0x04c840…04c860 74 20 73 61 76 65 64 20 76 65 72 73 69 6f 6e 20 77 69 6c 6c 20 62 65 20 70 72 69 6e 74 65 64 2c ┆t saved version will be printed,┆ 0x04c860…04c880 20 6e 6f 74 20 72 65 66 6c 65 63 74 69 6e 67 20 75 6e 2d 20 20 0e 20 73 61 76 65 64 20 63 68 61 ┆ not reflecting un- saved cha┆ 0x04c880…04c8a0 6e 67 65 73 2e 20 20 46 75 72 74 68 65 72 6d 6f 72 65 2c 20 57 6f 72 64 53 74 61 72 20 77 69 6c ┆nges. Furthermore, WordStar wil┆ 0x04c8a0…04c8c0 6c 20 6e 6f 74 20 61 6c 6c 6f 77 20 79 6f 75 20 74 6f 20 0e 20 73 61 76 65 20 74 68 65 20 66 69 ┆l not allow you to save the fi┆ 0x04c8c0…04c8e0 6c 65 20 62 65 69 6e 67 20 65 64 69 74 65 64 20 77 68 69 6c 65 20 74 68 65 20 70 72 69 6e 74 20 ┆le being edited while the print ┆ 0x04c8e0…04c900 69 73 20 69 6e 20 70 72 6f 67 72 65 73 73 2e 20 20 0e 00 0e 20 45 4e 44 20 45 44 49 54 20 28 5e ┆is in progress. END EDIT (^┆ 0x04c900…04c920 4b 44 29 20 42 45 46 4f 52 45 20 53 54 41 52 54 49 4e 47 20 50 52 49 4e 54 2e 09 20 20 20 20 20 ┆KD) BEFORE STARTING PRINT. ┆ 0x04c920…04c940 20 0e 20 59 4f 55 52 20 53 59 53 54 45 4d 20 44 4f 45 53 20 4e 4f 54 20 48 41 56 45 20 45 4e 4f ┆ YOUR SYSTEM DOES NOT HAVE ENO┆ 0x04c940…04c960 55 47 48 20 4d 45 4d 4f 52 59 20 54 4f 20 20 20 0e 20 50 45 52 4d 49 54 20 53 49 4d 55 4c 54 41 ┆UGH MEMORY TO PERMIT SIMULTA┆ 0x04c960…04c980 4e 45 4f 55 53 20 45 44 49 54 49 4e 47 20 41 4e 44 20 50 52 49 4e 54 49 4e 47 2e 20 20 20 20 0e ┆NEOUS EDITING AND PRINTING. ┆ 0x04c980…04c9a0 00 0e 20 54 4f 4f 20 4c 49 54 54 4c 45 20 4d 45 4d 4f 52 59 20 46 4f 52 20 4d 45 52 47 45 2d 50 ┆ TOO LITTLE MEMORY FOR MERGE-P┆ 0x04c9a0…04c9c0 52 49 4e 54 20 0e 0e 00 0e 20 2a 2a 2a 20 20 50 52 49 4e 54 20 4f 55 54 50 55 54 20 44 49 53 4b ┆RINT *** PRINT OUTPUT DISK┆ 0x04c9c0…04c9e0 20 49 53 20 46 55 4c 4c 2e 20 20 50 52 49 4e 54 20 50 41 55 53 45 44 2e 20 20 2a 2a 2a 20 0e 0e ┆ IS FULL. PRINT PAUSED. *** ┆ 0x04c9e0…04ca00 00 54 48 41 54 20 50 4c 41 43 45 20 4d 41 52 4b 45 52 20 4e 4f 54 20 53 45 54 00 42 4c 4f 43 4b ┆ THAT PLACE MARKER NOT SET BLOCK┆ 0x04ca00…04ca20 (20, 0, 14) 20 72 65 61 64 69 6e 67 20 73 63 72 65 65 6e 3a 20 00 20 2a 2a 2a 20 49 6e 76 61 6c 69 64 20 44 ┆ reading screen: *** Invalid D┆ 0x04ca20…04ca40 6f 74 20 43 6f 6d 6d 61 6e 64 20 49 67 6e 6f 72 65 64 3a 20 00 20 2a 2a 2a 20 46 69 6c 65 20 00 ┆ot Command Ignored: *** File ┆ 0x04ca40…04ca60 20 4e 6f 74 20 46 6f 75 6e 64 20 00 20 2a 2a 2a 20 42 75 74 20 66 6f 75 6e 64 2c 20 61 6e 64 20 ┆ Not Found *** But found, and ┆ 0x04ca60…04ca80 77 69 6c 6c 20 75 73 65 2c 20 00 20 00 20 2a 2a 2a 20 43 61 6e 6e 6f 74 20 63 68 61 6e 67 65 20 ┆will use, *** Cannot change ┆ 0x04ca80…04caa0 64 69 73 6b 20 69 6e 20 64 72 69 76 65 20 00 2c 20 72 65 71 75 65 73 74 20 69 67 6e 6f 72 65 64 ┆disk in drive , request ignored┆ 0x04caa0…04cac0 20 00 49 6e 73 65 72 74 20 64 69 73 6b 65 74 74 65 20 77 69 74 68 20 66 69 6c 65 20 00 20 74 68 ┆ Insert diskette with file th┆ 0x04cac0…04cae0 65 6e 20 70 72 65 73 73 20 52 45 54 55 52 4e 3a 20 00 20 2a 2a 2a 20 4e 6f 20 2e 44 46 20 62 65 ┆en press RETURN: *** No .DF be┆ 0x04cae0…04cb00 66 6f 72 65 20 2e 52 56 3a 20 00 20 2a 2a 2a 20 57 41 52 4e 49 4e 47 3a 20 4f 76 65 72 6c 6f 6e ┆fore .RV: *** WARNING: Overlon┆ 0x04cb00…04cb20 67 20 64 61 74 61 20 76 61 6c 75 65 20 74 72 75 6e 63 61 74 65 64 20 00 20 2a 2a 2a 20 49 6e 76 ┆g data value truncated *** Inv┆ 0x04cb20…04cb40 61 6c 69 64 20 76 61 72 69 61 62 6c 65 20 6e 61 6d 65 20 69 6e 20 2e 52 56 20 63 6f 6d 6d 61 6e ┆alid variable name in .RV comman┆ 0x04cb40…04cb60 64 20 69 67 6e 6f 72 65 64 20 00 20 2a 2a 2a 20 57 41 52 4e 49 4e 47 3a 20 44 61 74 61 20 65 78 ┆d ignored *** WARNING: Data ex┆ 0x04cb60…04cb80 68 61 75 73 74 65 64 2c 20 6e 75 6c 6c 20 76 61 6c 75 65 28 73 29 20 75 73 65 64 20 00 20 20 20 ┆hausted, null value(s) used ┆ 0x04cb80…04cba0 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 2a 2a 2a 2a 20 20 50 72 69 6e 74 20 44 69 72 65 63 74 ┆ ***** Print Direct┆ 0x04cba0…04cbc0 69 76 65 73 20 20 2a 2a 2a 2a 2a 09 09 20 20 20 20 20 20 20 0e 20 50 52 49 4e 54 20 43 4f 4e 54 ┆ives ***** PRINT CONT┆ 0x04cbc0…04cbe0 52 4f 4c 20 43 48 41 52 41 43 54 45 52 53 20 6d 61 79 20 62 65 20 65 6e 74 65 72 65 64 20 61 6e ┆ROL CHARACTERS may be entered an┆ 0x04cbe0…04cc00 79 77 68 65 72 65 20 69 6e 20 61 20 6c 69 6e 65 20 20 20 20 0e 20 20 20 20 20 74 6f 20 69 6e 76 ┆ywhere in a line to inv┆ 0x04cc00…04cc20 (20, 0, 15) 6c 61 6e 6b 20 6c 69 6e 65 73 2c 20 74 65 78 74 20 74 6f 20 66 6f 6f 74 69 6e 67 09 20 20 28 32 ┆lank lines, text to footing (2┆ 0x04cc20…04cc40 29 20 0e 20 20 20 20 20 20 46 4f 52 20 50 41 47 45 20 42 52 45 41 4b 53 20 54 4f 20 44 49 53 50 ┆) FOR PAGE BREAKS TO DISP┆ 0x04cc40…04cc60 4c 41 59 20 41 53 20 54 48 45 59 20 57 49 4c 4c 20 50 52 49 4e 54 2c 20 55 53 45 20 20 20 20 20 ┆LAY AS THEY WILL PRINT, USE ┆ 0x04cc60…04cc80 20 0e 20 20 20 2e 50 4c 2c 2e 4d 54 2c 2e 4d 42 2c 20 41 4e 44 20 2e 4c 48 20 28 6e 65 78 74 20 ┆ .PL,.MT,.MB, AND .LH (next ┆ 0x04cc80…04cca0 66 72 61 6d 65 29 20 41 54 20 46 49 4c 45 20 42 45 47 49 4e 4e 49 4e 47 20 4f 4e 4c 59 2e 20 20 ┆frame) AT FILE BEGINNING ONLY. ┆ 0x04cca0…04ccc0 0e 09 09 09 20 20 20 44 65 70 72 65 73 73 20 73 70 61 63 65 20 62 61 72 20 66 6f 72 20 6e 65 78 ┆ Depress space bar for nex┆ 0x04ccc0…04cce0 74 20 66 72 61 6d 65 3a 20 18 20 20 20 20 54 48 45 20 46 4f 4c 4c 4f 57 49 4e 47 20 57 4f 52 4b ┆t frame: THE FOLLOWING WORK┆ 0x04cce0…04cd00 20 4f 4e 4c 59 20 57 49 54 48 20 49 4e 43 52 45 4d 45 4e 54 41 4c 20 50 52 49 4e 54 45 52 53 3a ┆ ONLY WITH INCREMENTAL PRINTERS:┆ 0x04cd00…04cd20 09 20 20 20 20 20 20 0e 20 2e 4c 48 20 6e 20 20 4c 69 6e 65 20 48 65 69 67 68 74 20 69 6e 20 34 ┆ .LH n Line Height in 4┆ 0x04cd20…04cd40 38 74 68 73 20 6f 66 20 61 6e 20 69 6e 63 68 09 09 20 20 28 64 65 66 61 75 6c 74 20 38 29 20 0e ┆8ths of an inch (default 8) ┆ 0x04cd40…04cd60 20 2e 43 57 20 6e 20 20 43 68 61 72 61 63 74 65 72 20 57 69 64 74 68 20 69 6e 20 31 32 30 74 68 ┆ .CW n Character Width in 120th┆ 0x04cd60…04cd80 73 20 6f 66 20 61 6e 20 69 6e 63 68 2c 20 66 6f 72 20 73 74 61 6e 64 61 72 64 20 6f 72 20 0e 09 ┆s of an inch, for standard or ┆ 0x04cd80…04cda0 61 6c 74 65 72 6e 61 74 65 20 70 69 74 63 68 2c 20 77 68 69 63 68 65 76 65 72 20 69 73 20 69 6e ┆alternate pitch, whichever is in┆ 0x04cda0…04cdc0 20 75 73 65 20 28 73 65 65 20 5e 50 20 6d 65 6e 75 29 2e 20 20 20 0e 20 09 09 20 20 28 64 65 66 ┆ use (see ^P menu). (def┆ 0x04cdc0…04cde0 61 75 6c 74 20 31 32 20 66 6f 72 20 73 74 61 6e 64 61 72 64 2c 20 31 30 20 66 6f 72 20 61 6c 74 ┆ault 12 for standard, 10 for alt┆ 0x04cde0…04ce00 65 72 6e 61 74 65 29 20 0e 20 2e 53 52 20 6e 20 20 53 75 62 73 63 72 69 70 74 20 2f 20 53 75 70 ┆ernate) .SR n Subscript / Sup┆ 0x04ce00…04ce20 (20, 1, 1) 69 6e 67 3a 20 18 00 09 2a 2a 2a 2a 2a 20 20 53 54 41 54 55 53 20 4c 49 4e 45 20 28 74 6f 70 20 ┆ing: ***** STATUS LINE (top ┆ 0x04ce20…04ce40 6c 69 6e 65 20 6f 66 20 73 63 72 65 65 6e 29 20 20 2a 2a 2a 2a 2a 20 20 20 20 20 20 20 20 0e 20 ┆line of screen) ***** ┆ 0x04ce40…04ce60 5e 4a 53 09 20 20 20 20 20 20 61 74 20 6c 65 66 74 20 65 6e 64 20 6f 66 20 6c 69 6e 65 20 69 73 ┆^JS at left end of line is┆ 0x04ce60…04ce80 20 63 6f 6d 6d 61 6e 64 20 6e 6f 77 20 65 78 65 63 75 74 69 6e 67 20 20 20 20 0e 20 41 3a 4e 41 ┆ command now executing A:NA┆ 0x04ce80…04cea0 4d 45 2e 54 59 50 20 20 20 69 73 20 6e 61 6d 65 20 6f 66 20 66 69 6c 65 20 79 6f 75 20 61 72 65 ┆ME.TYP is name of file you are┆ 0x04cea0…04cec0 20 6e 6f 77 20 65 64 69 74 69 6e 67 09 20 20 20 20 20 20 0e 20 50 41 47 45 20 6e 20 20 20 20 20 ┆ now editing PAGE n ┆ 0x04cec0…04cee0 20 20 69 73 20 70 61 67 65 20 6e 75 6d 62 65 72 20 6f 66 20 63 75 72 73 6f 72 20 28 64 69 73 72 ┆ is page number of cursor (disr┆ 0x04cee0…04cf00 65 67 61 72 64 73 20 2e 50 4e 27 73 29 20 20 20 20 20 0e 20 4c 49 4e 45 20 6e 20 20 20 20 20 20 ┆egards .PN's) LINE n ┆ 0x04cf00…04cf20 20 69 73 20 70 72 69 6e 74 6f 75 74 20 6c 69 6e 65 20 6f 6e 20 70 61 67 65 20 6f 66 20 63 75 72 ┆ is printout line on page of cur┆ 0x04cf20…04cf40 73 6f 72 20 70 6f 73 69 74 69 6f 6e 20 20 20 20 20 0e 20 43 4f 4c 20 6e 20 20 20 20 20 20 20 20 ┆sor position COL n ┆ 0x04cf40…04cf60 69 73 20 70 72 69 6e 74 6f 75 74 20 63 6f 6c 75 6d 6e 20 6f 6e 20 6c 69 6e 65 20 6f 66 20 63 75 ┆is printout column on line of cu┆ 0x04cf60…04cf80 72 73 6f 72 20 70 6f 73 69 74 69 6f 6e 20 20 20 0e 20 49 4e 53 45 52 54 20 4f 4e 20 20 20 20 73 ┆rsor position INSERT ON s┆ 0x04cf80…04cfa0 68 6f 77 73 20 69 66 20 63 68 61 72 61 63 74 65 72 20 69 6e 73 65 72 74 69 6f 6e 20 69 73 20 6f ┆hows if character insertion is o┆ 0x04cfa0…04cfc0 6e 20 28 5e 56 20 63 6f 6d 6d 61 6e 64 29 20 0e 20 4d 41 52 20 52 45 4c 20 20 20 20 20 20 73 68 ┆n (^V command) MAR REL sh┆ 0x04cfc0…04cfe0 6f 77 73 20 69 66 20 6d 61 72 67 69 6e 73 20 61 72 65 20 72 65 6c 65 61 73 65 64 20 28 5e 4f 58 ┆ows if margins are released (^OX┆ 0x04cfe0…04d000 20 63 6f 6d 6d 61 6e 64 29 20 20 20 20 20 0e 20 64 65 63 69 6d 61 6c 20 20 20 20 20 20 73 68 6f ┆ command) decimal sho┆ 0x04d000…04d020 (20, 1, 2) 70 72 69 6e 74 20 28 77 68 69 6c 65 20 65 64 69 74 69 6e 67 29 09 20 20 20 20 5e 4b 50 09 09 09 ┆print (while editing) ^KP ┆ 0x04d020…04d040 09 20 20 20 20 0e 20 73 65 74 20 74 61 62 73 20 61 6e 64 20 6d 61 72 67 69 6e 73 09 20 20 20 20 ┆ set tabs and margins ┆ 0x04d040…04d060 6f 6e 20 5e 4f 20 6d 65 6e 75 09 09 09 20 20 20 20 0e 20 72 65 66 6f 72 6d 61 74 20 74 65 78 74 ┆on ^O menu reformat text┆ 0x04d060…04d080 09 09 20 20 20 20 5e 42 3b 20 5e 4a 42 20 67 69 76 65 73 20 69 6e 66 6f 09 09 20 20 20 20 0e 20 ┆ ^B; ^JB gives info ┆ 0x04d080…04d0a0 66 69 6e 64 20 61 20 73 74 72 69 6e 67 3b 20 72 65 70 6c 61 63 65 09 20 20 20 20 5e 51 46 3b 20 ┆find a string; replace ^QF; ┆ 0x04d0a0…04d0c0 5e 51 41 3b 20 5e 4c 20 72 65 70 65 61 74 73 20 6c 61 73 74 20 09 20 20 20 20 0e 09 09 20 20 20 ┆^QA; ^L repeats last ┆ 0x04d0c0…04d0e0 20 20 20 70 72 65 73 73 20 73 70 61 63 65 20 62 61 72 20 66 6f 72 20 22 65 6e 74 65 72 69 6e 67 ┆ press space bar for "entering┆ 0x04d0e0…04d100 20 74 65 78 74 22 3a 20 18 09 20 20 20 20 20 20 20 2a 2a 2a 2a 2a 20 20 45 4e 54 45 52 49 4e 47 ┆ text": ***** ENTERING┆ 0x04d100…04d120 20 54 45 58 54 20 20 2a 2a 2a 2a 2a 09 09 20 20 20 20 20 0e 20 54 6f 20 65 6e 74 65 72 20 74 65 ┆ TEXT ***** To enter te┆ 0x04d120…04d140 78 74 20 61 74 20 63 75 72 73 6f 72 20 70 6f 73 69 74 69 6f 6e 2c 20 6a 75 73 74 20 74 79 70 65 ┆xt at cursor position, just type┆ 0x04d140…04d160 20 74 68 65 20 74 65 78 74 2e 09 20 20 20 20 20 0e 20 55 73 65 20 52 45 54 55 52 4e 20 6b 65 79 ┆ the text. Use RETURN key┆ 0x04d160…04d180 20 66 6f 72 20 70 61 72 61 67 72 61 70 68 20 65 6e 64 20 6f 72 20 6f 74 68 65 72 20 66 69 78 65 ┆ for paragraph end or other fixe┆ 0x04d180…04d1a0 64 20 6c 69 6e 65 20 62 72 65 61 6b 3b 20 0e 20 20 20 20 20 20 6c 65 74 20 77 6f 72 64 20 77 72 ┆d line break; let word wr┆ 0x04d1a0…04d1c0 61 70 20 66 6f 72 6d 20 6c 69 6e 65 73 20 77 69 74 68 69 6e 20 70 61 72 61 67 72 61 70 68 2e 09 ┆ap form lines within paragraph. ┆ 0x04d1c0…04d1e0 20 20 20 20 20 0e 20 54 79 70 65 20 5e 56 20 74 6f 20 74 75 72 6e 20 69 6e 73 65 72 74 69 6f 6e ┆ Type ^V to turn insertion┆ 0x04d1e0…04d200 20 6f 66 66 20 28 74 6f 20 6f 76 65 72 74 79 70 65 29 20 6f 72 20 62 61 63 6b 20 6f 6e 2e 20 20 ┆ off (to overtype) or back on. ┆ 0x04d200…04d220 (20, 1, 3) 72 69 61 67 65 20 72 65 74 75 72 6e 20 28 3c 20 69 6e 20 72 69 67 68 74 6d 6f 73 74 20 63 6f 6c ┆riage return (< in rightmost col┆ 0x04d220…04d240 75 6d 6e 29 2e 09 09 20 20 20 20 20 0e 20 54 68 75 73 2c 20 69 74 20 69 73 20 69 6d 70 6f 72 74 ┆umn). Thus, it is import┆ 0x04d240…04d260 61 6e 74 20 6e 6f 74 20 74 6f 20 75 73 65 20 52 45 54 55 52 4e 20 62 65 74 77 65 65 6e 20 6c 69 ┆ant not to use RETURN between li┆ 0x04d260…04d280 6e 65 73 09 20 20 20 20 20 0e 20 20 20 20 20 77 69 74 68 69 6e 20 61 20 70 61 72 61 67 72 61 70 ┆nes within a paragrap┆ 0x04d280…04d2a0 68 20 77 68 65 6e 20 65 6e 74 65 72 69 6e 67 20 74 65 78 74 2e 09 09 20 20 20 20 20 0e 20 5e 42 ┆h when entering text. ^B┆ 0x04d2a0…04d2c0 20 6d 61 79 20 62 65 20 75 73 65 64 20 74 6f 20 66 6f 72 6d 20 68 61 6e 67 69 6e 67 20 69 6e 64 ┆ may be used to form hanging ind┆ 0x04d2c0…04d2e0 65 6e 74 73 2c 20 63 68 61 6e 67 65 20 6d 61 72 67 69 6e 73 20 69 6e 20 20 20 0e 20 20 20 20 20 ┆ents, change margins in ┆ 0x04d2e0…04d300 6d 69 64 2d 70 61 72 61 67 72 61 70 68 2c 20 65 74 63 2e 20 20 54 68 65 20 65 78 61 63 74 20 72 ┆mid-paragraph, etc. The exact r┆ 0x04d300…04d320 75 6c 65 20 69 73 3a 09 09 20 20 20 20 20 0e 20 20 20 20 20 22 5e 42 20 73 74 61 72 74 73 20 6f ┆ule is: "^B starts o┆ 0x04d320…04d340 6e 20 74 68 65 20 63 75 72 73 6f 72 20 6c 69 6e 65 2c 20 61 74 20 74 68 65 20 6c 65 66 74 20 6d ┆n the cursor line, at the left m┆ 0x04d340…04d360 61 72 67 69 6e 20 63 6f 6c 2d 20 20 0e 20 20 20 20 20 75 6d 6e 2c 20 6f 72 20 61 74 20 74 68 65 ┆argin col- umn, or at the┆ 0x04d360…04d380 20 63 75 72 73 6f 72 20 70 6f 73 69 74 69 6f 6e 2c 20 77 68 69 63 68 65 76 65 72 20 69 73 20 66 ┆ cursor position, whichever is f┆ 0x04d380…04d3a0 61 72 74 68 65 72 20 20 20 20 0e 20 20 20 20 20 6c 65 66 74 2c 20 61 6e 64 20 70 72 6f 63 65 65 ┆arther left, and procee┆ 0x04d3a0…04d3c0 64 73 20 74 6f 20 74 68 65 20 6e 65 78 74 20 27 68 61 72 64 27 20 63 61 72 72 69 61 67 65 20 72 ┆ds to the next 'hard' carriage r┆ 0x04d3c0…04d3e0 65 74 75 72 6e 22 2e 20 0e 09 09 09 09 09 20 20 20 70 72 65 73 73 20 73 70 61 63 65 20 62 61 72 ┆eturn". press space bar┆ 0x04d3e0…04d400 3a 20 18 09 09 2a 2a 2a 2a 2a 20 20 48 79 70 68 65 6e 2d 48 65 6c 70 20 20 2a 2a 2a 2a 2a 09 09 ┆: ***** Hyphen-Help ***** ┆ 0x04d400…04d420 (20, 1, 4) 53 20 20 2a 2a 2a 2a 2a 09 09 20 20 20 20 20 20 0e 09 09 09 09 09 09 09 20 20 20 20 20 20 0e 20 ┆S ***** ┆ 0x04d420…04d440 54 6f 20 73 65 74 20 61 20 74 61 62 3a 20 74 79 70 65 20 5e 4f 49 2e 20 57 6f 72 64 53 74 61 72 ┆To set a tab: type ^OI. WordStar┆ 0x04d440…04d460 20 77 69 6c 6c 20 61 73 6b 20 66 6f 72 20 63 6f 6c 75 6d 6e 20 6e 75 6d 62 65 72 2e 20 0e 20 20 ┆ will ask for column number. ┆ 0x04d460…04d480 20 20 54 79 70 65 20 63 6f 6c 75 6d 6e 20 6e 75 6d 62 65 72 20 61 6e 64 20 70 72 65 73 73 20 52 ┆ Type column number and press R┆ 0x04d480…04d4a0 45 54 55 52 4e 2e 20 20 4f 72 2c 20 74 6f 20 75 73 65 20 63 75 72 73 6f 72 20 20 20 0e 20 20 20 ┆ETURN. Or, to use cursor ┆ 0x04d4a0…04d4c0 20 63 6f 6c 75 6d 6e 2c 20 70 72 65 73 73 20 74 68 65 20 45 53 43 41 50 45 20 6b 65 79 2e 20 20 ┆ column, press the ESCAPE key. ┆ 0x04d4c0…04d4e0 54 6f 20 73 65 74 20 61 20 64 65 63 69 6d 61 6c 20 74 61 62 20 73 74 6f 70 2c 20 0e 20 20 20 20 ┆To set a decimal tab stop, ┆ 0x04d4e0…04d500 74 79 70 65 20 22 23 22 20 62 65 66 6f 72 65 20 74 79 70 69 6e 67 20 63 6f 6c 75 6d 6e 20 6e 75 ┆type "#" before typing column nu┆ 0x04d500…04d520 6d 62 65 72 20 6f 72 20 70 72 65 73 73 69 6e 67 20 45 53 43 41 50 45 2e 20 20 0e 20 54 6f 20 63 ┆mber or pressing ESCAPE. To c┆ 0x04d520…04d540 6c 65 61 72 20 61 20 74 61 62 20 73 74 6f 70 20 6f 72 20 61 6c 6c 20 74 61 62 20 73 74 6f 70 73 ┆lear a tab stop or all tab stops┆ 0x04d540…04d560 3a 20 74 79 70 65 20 5e 4f 4e 2e 09 20 20 20 20 20 20 0e 20 54 6f 20 74 61 62 3a 20 74 79 70 65 ┆: type ^ON. To tab: type┆ 0x04d560…04d580 20 5e 49 2c 20 6f 72 20 70 72 65 73 73 20 54 41 42 20 6b 65 79 20 69 66 20 70 72 65 73 65 6e 74 ┆ ^I, or press TAB key if present┆ 0x04d580…04d5a0 2e 20 20 54 61 62 62 69 6e 67 09 20 20 20 20 20 20 0e 20 20 20 20 69 6e 73 65 72 74 73 20 73 70 ┆. Tabbing inserts sp┆ 0x04d5a0…04d5c0 61 63 65 73 20 74 6f 20 6e 65 78 74 20 74 61 62 20 73 74 6f 70 20 69 66 20 69 6e 73 65 72 74 69 ┆aces to next tab stop if inserti┆ 0x04d5c0…04d5e0 6f 6e 20 28 5e 56 29 20 69 73 20 6f 6e 2e 20 20 0e 20 20 20 20 54 61 62 62 69 6e 67 20 61 64 76 ┆on (^V) is on. Tabbing adv┆ 0x04d5e0…04d600 61 6e 63 65 73 20 63 75 72 73 6f 72 20 6f 76 65 72 20 74 65 78 74 20 69 66 20 69 6e 73 65 72 74 ┆ances cursor over text if insert┆ 0x04d600…04d620 (20, 1, 5) 77 73 20 64 75 72 69 6e 67 20 64 65 63 69 6d 61 6c 20 74 61 62 62 69 6e 67 09 09 20 20 20 20 20 ┆ws during decimal tabbing ┆ 0x04d620…04d640 20 0e 20 4c 49 4e 45 20 53 50 41 43 49 4e 47 20 6e 20 20 73 68 6f 77 73 20 69 66 20 6c 69 6e 65 ┆ LINE SPACING n shows if line┆ 0x04d640…04d660 20 73 70 61 63 69 6e 67 20 69 73 20 6e 6f 74 20 31 20 28 5e 4f 53 20 63 6f 6d 6d 61 6e 64 29 20 ┆ spacing is not 1 (^OS command) ┆ 0x04d660…04d680 0e 20 50 52 49 4e 54 20 50 41 55 53 45 20 20 20 20 20 73 68 6f 77 73 20 69 66 20 70 72 69 6e 74 ┆ PRINT PAUSE shows if print┆ 0x04d680…04d6a0 65 72 20 69 73 20 73 74 6f 70 70 65 64 20 28 5e 4b 50 20 74 6f 20 72 65 73 75 6d 65 29 20 20 0e ┆er is stopped (^KP to resume) ┆ 0x04d6a0…04d6c0 20 77 68 65 6e 20 57 41 49 54 20 61 70 70 65 61 72 73 2c 20 73 74 6f 70 20 74 79 70 69 6e 67 2e ┆ when WAIT appears, stop typing.┆ 0x04d6c0…04d6e0 09 20 20 20 20 50 72 65 73 73 20 73 70 61 63 65 20 62 61 72 3a 20 18 20 20 20 20 49 66 20 70 61 ┆ Press space bar: If pa┆ 0x04d6e0…04d700 67 65 20 62 72 65 61 6b 20 64 69 73 70 6c 61 79 20 69 73 20 4f 46 46 20 28 5e 4f 50 20 63 6f 6d ┆ge break display is OFF (^OP com┆ 0x04d700…04d720 6d 61 6e 64 29 20 6f 72 20 65 64 69 74 20 20 20 20 20 0e 20 20 20 20 77 61 73 20 73 74 61 72 74 ┆mand) or edit was start┆ 0x04d720…04d740 65 64 20 77 69 74 68 20 4e 20 63 6f 6d 6d 61 6e 64 2c 20 74 68 65 6e 20 53 74 61 74 75 73 20 4c ┆ed with N command, then Status L┆ 0x04d740…04d760 69 6e 65 20 73 68 6f 77 73 20 20 20 20 20 0e 20 20 20 20 20 46 43 3d 6e 6e 6e 6e 20 46 4c 3d 6e ┆ine shows FC=nnnn FL=n┆ 0x04d760…04d780 6e 6e 6e 20 20 20 69 6e 20 70 6c 61 63 65 20 6f 66 20 20 20 50 41 47 45 20 6e 20 20 4c 49 4e 45 ┆nnn in place of PAGE n LINE┆ 0x04d780…04d7a0 20 6e 20 2e 20 20 20 20 20 20 0e 09 09 09 09 09 09 09 20 20 20 0e 20 46 43 3d 6e 6e 6e 6e 20 20 ┆ n . FC=nnnn ┆ 0x04d7a0…04d7c0 20 20 63 75 72 73 6f 72 20 70 6f 73 69 74 69 6f 6e 20 69 6e 20 63 68 61 72 61 63 74 65 72 73 20 ┆ cursor position in characters ┆ 0x04d7c0…04d7e0 28 62 79 74 65 73 29 20 66 72 6f 6d 20 20 20 20 20 0e 09 20 20 20 20 62 65 67 69 6e 6e 69 6e 67 ┆(bytes) from beginning┆ 0x04d7e0…04d800 20 6f 66 20 66 69 6c 65 09 09 09 09 20 20 20 0e 20 46 4c 3d 6e 6e 6e 6e 20 20 20 20 63 75 72 73 ┆ of file FL=nnnn curs┆ 0x04d800…04d820 (20, 1, 6) 20 20 20 0e 20 5e 4e 20 6d 61 79 20 62 65 20 75 73 65 64 20 74 6f 20 63 72 65 61 74 65 20 62 6c ┆ ^N may be used to create bl┆ 0x04d820…04d840 61 6e 6b 20 6c 69 6e 65 73 20 61 68 65 61 64 20 6f 66 20 63 75 72 73 6f 72 2c 09 20 20 20 20 20 ┆ank lines ahead of cursor, ┆ 0x04d840…04d860 0e 20 20 20 20 20 20 61 73 20 62 65 66 6f 72 65 20 69 6e 73 65 72 74 69 6e 67 20 61 20 70 61 72 ┆ as before inserting a par┆ 0x04d860…04d880 61 67 72 61 70 68 2e 09 09 09 20 20 20 20 20 0e 20 55 73 65 20 5e 42 20 74 6f 20 72 65 61 6c 69 ┆agraph. Use ^B to reali┆ 0x04d880…04d8a0 67 6e 20 6d 61 72 67 69 6e 73 20 61 66 74 65 72 20 63 6f 72 72 65 63 74 69 6f 6e 73 2e 09 09 20 ┆gn margins after corrections. ┆ 0x04d8a0…04d8c0 20 20 20 20 0e 20 5e 4a 4d 20 73 68 6f 77 73 20 69 6e 66 6f 20 6f 6e 20 6d 61 72 67 69 6e 73 2c ┆ ^JM shows info on margins,┆ 0x04d8c0…04d8e0 20 74 61 62 73 2c 20 74 61 62 6c 65 20 65 6e 74 72 79 2c 20 6f 75 74 6c 69 6e 65 20 65 6e 74 72 ┆ tabs, table entry, outline entr┆ 0x04d8e0…04d900 79 2e 0e 09 09 09 20 20 20 20 20 70 72 65 73 73 20 73 70 61 63 65 20 62 61 72 20 61 66 74 65 72 ┆y. press space bar after┆ 0x04d900…04d920 20 72 65 61 64 69 6e 67 3a 20 18 00 20 20 20 20 20 20 20 20 20 20 20 2a 2a 2a 2a 2a 20 20 54 4f ┆ reading: ***** TO┆ 0x04d920…04d940 20 4d 4f 56 45 20 41 20 42 4c 4f 43 4b 20 4f 46 20 54 45 58 54 20 20 2a 2a 2a 2a 2a 09 20 20 20 ┆ MOVE A BLOCK OF TEXT ***** ┆ 0x04d940…04d960 20 20 0e 20 31 2e 20 20 50 75 74 20 63 75 72 73 6f 72 20 6f 6e 20 66 69 72 73 74 20 63 68 61 72 ┆ 1. Put cursor on first char┆ 0x04d960…04d980 61 63 74 65 72 2c 20 74 79 70 65 20 5e 4b 42 20 74 6f 20 6d 61 72 6b 20 73 74 61 72 74 2e 20 20 ┆acter, type ^KB to mark start. ┆ 0x04d980…04d9a0 0e 20 32 2e 20 20 50 75 74 20 63 75 72 73 6f 72 20 61 66 74 65 72 20 6c 61 73 74 20 63 68 61 72 ┆ 2. Put cursor after last char┆ 0x04d9a0…04d9c0 61 63 74 65 72 2c 20 74 79 70 65 20 5e 4b 4b 20 74 6f 20 6d 61 72 6b 20 65 6e 64 20 20 20 0e 20 ┆acter, type ^KK to mark end ┆ 0x04d9c0…04d9e0 20 20 20 20 28 66 6f 72 20 65 6e 64 20 6c 69 6e 65 2c 20 75 73 65 20 73 74 61 72 74 20 6e 65 78 ┆ (for end line, use start nex┆ 0x04d9e0…04da00 74 20 6c 69 6e 65 20 74 6f 20 69 6e 63 6c 75 64 65 20 52 45 54 55 52 4e 29 2e 20 20 0e 20 33 2e ┆t line to include RETURN). 3.┆ 0x04da00…04da20 (20, 1, 7) 20 20 20 20 0e 20 5e 42 20 77 69 6c 6c 20 6f 63 63 61 73 69 6f 6e 61 6c 6c 79 20 73 74 6f 70 20 ┆ ^B will occasionally stop ┆ 0x04da20…04da40 62 65 66 6f 72 65 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 70 61 72 61 67 72 61 70 68 20 ┆before the end of the paragraph ┆ 0x04da40…04da60 20 0e 20 20 20 20 20 61 6e 64 20 61 73 6b 20 79 6f 75 20 77 68 65 74 68 65 72 20 79 6f 75 20 77 ┆ and ask you whether you w┆ 0x04da60…04da80 69 73 68 20 61 20 77 6f 72 64 20 68 79 70 68 65 6e 61 74 65 64 2e 09 20 20 20 20 0e 20 46 6f 6c ┆ish a word hyphenated. Fol┆ 0x04da80…04daa0 6c 6f 77 69 6e 67 20 74 68 65 20 69 6e 73 74 72 75 63 74 69 6f 6e 73 20 74 68 61 74 20 61 70 70 ┆lowing the instructions that app┆ 0x04daa0…04dac0 65 61 72 20 6f 6e 20 74 68 65 20 73 63 72 65 65 6e 2c 20 6d 6f 76 65 20 0e 20 20 20 20 20 74 68 ┆ear on the screen, move th┆ 0x04dac0…04dae0 65 20 63 75 72 73 6f 72 20 69 66 20 64 65 73 69 72 65 64 20 74 6f 20 61 64 6a 75 73 74 20 74 68 ┆e cursor if desired to adjust th┆ 0x04dae0…04db00 65 20 68 79 70 68 65 6e 20 70 6f 73 69 74 69 6f 6e 2c 20 20 20 0e 20 20 20 20 20 74 68 65 6e 20 ┆e hyphen position, then ┆ 0x04db00…04db20 70 72 65 73 73 20 22 2d 22 20 74 6f 20 68 79 70 68 65 6e 61 74 65 2c 20 6f 72 20 5e 42 20 74 6f ┆press "-" to hyphenate, or ^B to┆ 0x04db20…04db40 20 6e 6f 74 20 68 79 70 68 65 6e 61 74 65 2e 20 20 20 0e 20 54 6f 20 74 75 72 6e 20 6f 66 66 20 ┆ not hyphenate. To turn off ┆ 0x04db40…04db60 22 68 79 70 68 65 6e 2d 68 65 6c 70 22 2c 20 74 79 70 65 20 5e 4f 48 2e 09 09 09 20 20 20 20 0e ┆"hyphen-help", type ^OH. ┆ 0x04db60…04db80 09 09 09 09 09 20 20 70 72 65 73 73 20 73 70 61 63 65 20 62 61 72 3a 20 18 00 09 09 20 20 2a 2a ┆ press space bar: **┆ 0x04db80…04dba0 2a 2a 2a 20 20 4d 41 52 47 49 4e 53 20 20 2a 2a 2a 2a 2a 09 09 09 20 20 20 20 20 20 0e 20 54 6f ┆*** MARGINS ***** To┆ 0x04dba0…04dbc0 20 73 65 74 20 6c 65 66 74 20 6d 61 72 67 69 6e 3a 20 54 79 70 65 20 5e 4f 4c 2e 20 57 6f 72 64 ┆ set left margin: Type ^OL. Word┆ 0x04dbc0…04dbe0 53 74 61 72 20 77 69 6c 6c 20 61 73 6b 73 20 66 6f 72 20 63 6f 6c 75 6d 6e 2e 20 0e 20 20 20 20 ┆Star will asks for column. ┆ 0x04dbe0…04dc00 20 54 79 70 65 20 64 65 73 69 72 65 64 20 63 6f 6c 75 6d 6e 20 6e 75 6d 62 65 72 20 31 2d 32 34 ┆ Type desired column number 1-24┆ 0x04dc00…04dc20 (20, 1, 8) 69 6f 6e 20 69 73 20 6f 66 66 2e 20 20 20 20 0e 09 09 09 09 09 20 20 20 20 70 72 65 73 73 20 73 ┆ion is off. press s┆ 0x04dc20…04dc40 70 61 63 65 20 62 61 72 3a 20 18 20 20 20 20 45 4e 54 45 52 49 4e 47 20 41 20 43 4f 4c 55 4d 4e ┆pace bar: ENTERING A COLUMN┆ 0x04dc40…04dc60 41 52 20 54 41 42 4c 45 20 2d 2d 20 57 65 20 53 75 67 67 65 73 74 3a 09 09 20 20 20 20 20 0e 09 ┆AR TABLE -- We Suggest: ┆ 0x04dc60…04dc80 09 09 09 09 09 09 20 20 20 20 20 0e 20 53 65 74 20 61 20 74 61 62 20 73 74 6f 70 20 66 6f 72 20 ┆ Set a tab stop for ┆ 0x04dc80…04dca0 65 61 63 68 20 63 6f 6c 75 6d 6e 20 6f 66 20 74 61 62 6c 65 2e 09 09 20 20 20 20 20 0e 20 43 6c ┆each column of table. Cl┆ 0x04dca0…04dcc0 65 61 72 20 61 6c 6c 20 6f 74 68 65 72 20 74 61 62 20 73 74 6f 70 73 2e 09 09 09 09 20 20 20 20 ┆ear all other tab stops. ┆ 0x04dcc0…04dce0 20 0e 20 49 66 20 6e 6f 74 20 61 74 20 65 6e 64 20 66 69 6c 65 2c 20 74 75 72 6e 20 6f 6e 20 69 ┆ If not at end file, turn on i┆ 0x04dce0…04dd00 6e 73 65 72 74 69 6f 6e 20 28 5e 56 29 2c 09 09 20 20 20 20 20 0e 20 20 20 20 6f 72 20 75 73 65 ┆nsertion (^V), or use┆ 0x04dd00…04dd20 20 5e 4e 20 74 6f 20 6d 61 6b 65 20 62 6c 61 6e 6b 20 6c 69 6e 65 73 2e 09 09 09 20 20 20 20 20 ┆ ^N to make blank lines. ┆ 0x04dd20…04dd40 0e 20 54 61 62 20 28 5e 49 29 20 61 66 74 65 72 20 65 6e 74 65 72 69 6e 67 20 65 61 63 68 20 74 ┆ Tab (^I) after entering each t┆ 0x04dd40…04dd60 61 62 6c 65 20 69 74 65 6d 2e 20 20 41 66 74 65 72 20 6c 61 73 74 20 63 6f 6c 75 6d 6e 20 0e 20 ┆able item. After last column ┆ 0x04dd60…04dd80 20 20 20 6f 6e 20 61 20 6c 69 6e 65 2c 20 74 61 62 62 69 6e 67 20 77 69 6c 6c 20 6d 6f 76 65 20 ┆ on a line, tabbing will move ┆ 0x04dd80…04dda0 74 6f 20 66 69 72 73 74 20 69 74 65 6d 20 6f 6e 20 6e 65 78 74 20 6c 69 6e 65 2e 20 0e 09 09 09 ┆to first item on next line. ┆ 0x04dda0…04ddc0 09 09 09 20 73 70 61 63 65 20 62 61 72 3a 20 18 20 20 20 20 4f 55 54 4c 49 4e 45 20 46 4f 52 4d ┆ space bar: OUTLINE FORM┆ 0x04ddc0…04dde0 41 54 20 54 45 58 54 20 45 4e 54 52 59 20 2d 2d 20 57 65 20 53 75 67 67 65 73 74 3a 09 09 20 20 ┆AT TEXT ENTRY -- We Suggest: ┆ 0x04dde0…04de00 20 20 0e 20 53 65 74 20 74 61 62 20 73 74 6f 70 73 20 61 74 20 64 65 73 69 72 65 64 20 69 6e 64 ┆ Set tab stops at desired ind┆ 0x04de00…04de20 (20, 1, 9) 6f 72 20 70 6f 73 69 74 69 6f 6e 20 69 6e 20 66 69 6c 65 20 6c 69 6e 65 73 20 66 72 6f 6d 20 62 ┆or position in file lines from b┆ 0x04de20…04de40 65 67 69 6e 6e 69 6e 67 20 20 20 0e 09 20 20 20 20 6f 66 20 66 69 6c 65 2c 20 69 6e 63 6c 75 64 ┆eginning of file, includ┆ 0x04de40…04de60 69 6e 67 20 64 6f 74 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 73 09 20 20 20 0e 09 09 09 09 09 09 ┆ing dot command lines ┆ 0x04de60…04de80 09 20 20 20 0e 09 09 09 09 09 20 20 20 20 20 20 20 73 70 61 63 65 20 62 61 72 3a 20 18 00 20 20 ┆ space bar: ┆ 0x04de80…04dea0 2a 2a 2a 2a 2a 20 20 46 4c 41 47 20 43 48 41 52 41 43 54 45 52 53 20 28 72 69 67 68 74 6d 6f 73 ┆***** FLAG CHARACTERS (rightmos┆ 0x04dea0…04dec0 74 20 63 6f 6c 75 6d 6e 20 6f 66 20 73 63 72 65 65 6e 29 20 20 2a 2a 2a 2a 2a 20 20 0e 20 20 3c ┆t column of screen) ***** <┆ 0x04dec0…04dee0 20 20 20 20 20 6c 69 6e 65 20 65 6e 64 73 20 69 6e 20 22 68 61 72 64 22 20 63 61 72 72 69 61 67 ┆ line ends in "hard" carriag┆ 0x04dee0…04df00 65 20 72 65 74 75 72 6e 2c 20 65 6e 74 65 72 65 64 20 62 79 20 75 73 65 72 20 20 0e 20 73 70 61 ┆e return, entered by user spa┆ 0x04df00…04df20 63 65 20 20 74 68 69 73 20 6c 69 6e 65 20 62 72 65 61 6b 20 61 72 6f 73 65 20 66 72 6f 6d 20 77 ┆ce this line break arose from w┆ 0x04df20…04df40 6f 72 64 20 77 72 61 70 20 6f 72 20 70 61 72 61 67 72 61 70 68 20 20 20 20 20 0e 20 09 20 20 72 ┆ord wrap or paragraph r┆ 0x04df40…04df60 65 66 6f 72 6d 2c 20 61 6e 64 20 6d 61 79 20 6d 6f 76 65 64 20 6f 6e 20 73 75 62 73 65 71 75 65 ┆eform, and may moved on subseque┆ 0x04df60…04df80 6e 74 20 72 65 66 6f 72 6d 09 20 20 20 20 20 20 0e 20 20 2b 20 20 20 20 20 74 68 69 73 20 6c 69 ┆nt reform + this li┆ 0x04df80…04dfa0 6e 65 20 6f 66 20 64 6f 63 75 6d 65 6e 74 20 63 6f 6e 74 69 6e 75 65 73 20 6f 6e 20 6e 65 78 74 ┆ne of document continues on next┆ 0x04dfa0…04dfc0 20 73 63 72 65 65 6e 20 6c 69 6e 65 20 20 20 0e 20 20 2d 20 20 20 20 20 6e 65 78 74 20 6c 69 6e ┆ screen line - next lin┆ 0x04dfc0…04dfe0 65 20 77 69 6c 6c 20 6f 76 65 72 70 72 69 6e 74 20 74 68 69 73 20 6c 69 6e 65 09 09 20 20 20 20 ┆e will overprint this line ┆ 0x04dfe0…04e000 20 20 0e 20 20 3f 20 20 20 20 20 75 6e 72 65 63 6f 67 6e 69 7a 65 64 20 6f 72 20 69 6e 63 6f 6d ┆ ? unrecognized or incom┆ 0x04e000…04e020 (20, 1, 10) 20 20 50 75 74 20 63 75 72 73 6f 72 20 61 74 20 64 65 73 74 69 6e 61 74 69 6f 6e 2c 20 74 79 70 ┆ Put cursor at destination, typ┆ 0x04e020…04e040 65 20 5e 4b 56 20 74 6f 20 6d 6f 76 65 20 74 68 65 20 74 65 78 74 2c 20 20 20 0e 20 20 20 20 20 ┆e ^KV to move the text, ┆ 0x04e040…04e060 6f 72 20 5e 4b 43 20 74 6f 20 6d 61 6b 65 20 61 20 64 75 70 6c 69 63 61 74 65 20 63 6f 70 79 2e ┆or ^KC to make a duplicate copy.┆ 0x04e060…04e080 09 09 09 20 20 20 20 20 0e 20 54 6f 20 75 6e 64 69 73 70 6c 61 79 20 6d 61 72 6b 65 72 73 20 61 ┆ To undisplay markers a┆ 0x04e080…04e0a0 66 74 65 72 77 61 72 64 73 2c 20 75 73 65 20 5e 4b 48 2e 09 09 20 20 20 20 20 0e 20 5e 4b 42 20 ┆fterwards, use ^KH. ^KB ┆ 0x04e0a0…04e0c0 61 6e 64 20 5e 4b 4b 20 6d 61 79 20 62 65 20 65 6e 74 65 72 65 64 20 69 6e 20 65 69 74 68 65 72 ┆and ^KK may be entered in either┆ 0x04e0c0…04e0e0 20 6f 72 64 65 72 2c 20 77 69 74 68 20 6f 72 20 77 69 74 68 6f 75 74 20 0e 20 20 20 20 20 6f 74 ┆ order, with or without ot┆ 0x04e0e0…04e100 68 65 72 20 69 6e 74 65 72 76 65 6e 69 6e 67 20 63 6f 6d 6d 61 6e 64 73 2e 09 09 09 20 20 20 20 ┆her intervening commands. ┆ 0x04e100…04e120 20 0e 20 41 6c 6c 20 61 62 6f 76 65 20 63 6f 6d 6d 61 6e 64 73 20 61 72 65 20 6f 6e 20 5e 4b 20 ┆ All above commands are on ^K ┆ 0x04e120…04e140 6d 65 6e 75 2e 09 70 72 65 73 73 20 73 70 61 63 65 20 62 61 72 3a 20 20 18 00 09 20 20 20 20 20 ┆menu. press space bar: ┆ 0x04e140…04e160 2a 2a 2a 2a 2a 20 20 50 41 52 41 47 52 41 50 48 20 52 45 46 4f 52 4d 20 28 5e 42 29 20 20 2a 2a ┆***** PARAGRAPH REFORM (^B) **┆ 0x04e160…04e180 2a 2a 2a 20 09 20 20 20 20 20 20 0e 20 54 6f 20 72 65 61 6c 69 67 6e 20 6d 61 72 67 69 6e 73 20 ┆*** To realign margins ┆ 0x04e180…04e1a0 6f 66 20 61 20 70 61 72 61 67 72 61 70 68 20 61 66 74 65 72 20 63 6f 72 72 65 63 74 69 6f 6e 73 ┆of a paragraph after corrections┆ 0x04e1a0…04e1c0 2c 20 70 6c 61 63 65 20 20 20 0e 20 20 20 20 20 63 75 72 73 6f 72 20 61 74 20 62 65 67 69 6e 6e ┆, place cursor at beginn┆ 0x04e1c0…04e1e0 69 6e 67 20 6f 66 20 70 61 72 61 67 72 61 70 68 20 61 6e 64 20 74 79 70 65 20 5e 42 2e 09 20 20 ┆ing of paragraph and type ^B. ┆ 0x04e1e0…04e200 20 20 20 20 0e 20 54 6f 20 63 68 61 6e 67 65 20 6d 61 72 67 69 6e 73 20 6f 66 20 70 61 72 61 67 ┆ To change margins of parag┆ 0x04e200…04e220 (20, 1, 11) 30 20 61 6e 64 20 70 72 65 73 73 20 52 45 54 55 52 4e 2e 09 20 20 20 20 20 20 0e 20 20 20 20 20 ┆0 and press RETURN. ┆ 0x04e220…04e240 4f 72 2c 20 74 6f 20 75 73 65 20 63 6f 6c 75 6d 6e 20 6f 66 20 63 75 72 73 6f 72 20 69 6e 20 66 ┆Or, to use column of cursor in f┆ 0x04e240…04e260 69 6c 65 2c 20 6a 75 73 74 20 70 72 65 73 73 20 45 53 43 41 50 45 2e 20 20 0e 20 54 6f 20 73 65 ┆ile, just press ESCAPE. To se┆ 0x04e260…04e280 74 20 72 69 67 68 74 20 6d 61 72 67 69 6e 3a 20 74 79 70 65 20 5e 4f 52 2c 20 70 72 6f 63 65 65 ┆t right margin: type ^OR, procee┆ 0x04e280…04e2a0 64 20 61 73 20 61 62 6f 76 65 2e 09 20 20 20 20 20 20 0e 20 54 6f 20 73 65 74 20 62 6f 74 68 20 ┆d as above. To set both ┆ 0x04e2a0…04e2c0 6d 61 72 67 69 6e 73 20 74 6f 20 6d 61 74 63 68 20 74 65 78 74 20 69 6e 20 61 20 6c 69 6e 65 20 ┆margins to match text in a line ┆ 0x04e2c0…04e2e0 61 6c 72 65 61 64 79 20 65 6e 74 65 72 65 64 3a 20 0e 20 20 20 20 20 70 6c 61 63 65 20 63 75 72 ┆already entered: place cur┆ 0x04e2e0…04e300 73 6f 72 20 69 6e 20 74 68 61 74 20 6c 69 6e 65 2c 20 74 79 70 65 20 5e 4f 46 2e 09 09 20 20 20 ┆sor in that line, type ^OF. ┆ 0x04e300…04e320 20 20 20 0e 20 54 6f 20 74 65 6d 70 6f 72 61 72 69 6c 79 20 73 65 74 20 6c 65 66 74 20 6d 61 72 ┆ To temporarily set left mar┆ 0x04e320…04e340 67 69 6e 20 74 6f 20 6e 65 78 74 20 74 61 62 20 73 74 6f 70 3a 20 74 79 70 65 20 5e 4f 47 2e 20 ┆gin to next tab stop: type ^OG. ┆ 0x04e340…04e360 20 20 0e 20 4d 61 72 67 69 6e 73 20 61 70 70 6c 79 20 74 6f 20 74 65 78 74 20 73 75 62 73 65 71 ┆ Margins apply to text subseq┆ 0x04e360…04e380 75 65 6e 74 6c 79 20 65 6e 74 65 72 65 64 2e 20 20 54 6f 20 72 65 6d 61 72 67 69 6e 61 74 65 20 ┆uently entered. To remarginate ┆ 0x04e380…04e3a0 20 0e 20 20 20 20 20 74 65 78 74 20 61 6c 72 65 61 64 79 20 65 6e 74 65 72 65 64 3a 20 73 65 74 ┆ text already entered: set┆ 0x04e3a0…04e3c0 20 6d 61 72 67 69 6e 73 20 61 6e 64 20 75 73 65 20 5e 42 2e 09 20 20 20 20 20 20 0e 09 09 09 20 ┆ margins and use ^B. ┆ 0x04e3c0…04e3e0 20 20 20 20 20 70 72 65 73 73 20 73 70 61 63 65 20 62 61 72 20 61 66 74 65 72 20 72 65 61 64 69 ┆ press space bar after readi┆ 0x04e3e0…04e400 6e 67 3a 20 18 20 20 20 20 20 20 20 20 2a 2a 2a 2a 2a 20 20 4c 49 4e 45 20 53 50 41 43 49 4e 47 ┆ng: ***** LINE SPACING┆ 0x04e400…04e420 (20, 1, 12) 65 6e 74 61 74 69 6f 6e 73 2e 09 09 09 20 20 20 20 0e 20 53 65 74 20 72 69 67 68 74 20 6d 61 72 ┆entations. Set right mar┆ 0x04e420…04e440 67 69 6e 20 61 73 20 64 65 73 69 72 65 64 2e 09 09 09 09 20 20 20 20 0e 20 46 6f 72 20 65 61 63 ┆gin as desired. For eac┆ 0x04e440…04e460 68 20 69 74 65 6d 3a 09 09 09 09 09 09 20 20 20 20 0e 09 54 79 70 65 20 5e 4f 47 27 73 20 61 73 ┆h item: Type ^OG's as┆ 0x04e460…04e480 20 72 65 71 75 69 72 65 64 20 66 6f 72 20 69 74 65 6d 20 6e 75 6d 62 65 72 20 69 6e 64 65 6e 74 ┆ required for item number indent┆ 0x04e480…04e4a0 61 74 69 6f 6e 2e 20 0e 09 54 79 70 65 20 69 74 65 6d 20 6e 75 6d 62 65 72 2e 09 09 09 09 20 20 ┆ation. Type item number. ┆ 0x04e4a0…04e4c0 20 20 0e 09 54 79 70 65 20 5e 4f 47 2e 09 09 09 09 09 20 20 20 20 0e 09 54 79 70 65 20 74 65 78 ┆ Type ^OG. Type tex┆ 0x04e4c0…04e4e0 74 20 6f 66 20 69 74 65 6d 2c 20 77 69 74 68 6f 75 74 20 75 73 69 6e 67 20 52 45 54 55 52 4e 2e ┆t of item, without using RETURN.┆ 0x04e4e0…04e500 09 20 20 20 20 0e 09 41 74 20 65 6e 64 20 6f 66 20 69 74 65 6d 2c 20 70 72 65 73 73 20 52 45 54 ┆ At end of item, press RET┆ 0x04e500…04e520 55 52 4e 2e 20 20 4c 65 66 74 20 6d 61 72 67 69 6e 20 72 65 73 65 74 73 2e 20 20 0e 09 50 72 65 ┆URN. Left margin resets. Pre┆ 0x04e520…04e540 73 73 20 52 45 54 55 52 4e 20 61 67 61 69 6e 20 69 66 20 62 6c 61 6e 6b 20 6c 69 6e 65 20 64 65 ┆ss RETURN again if blank line de┆ 0x04e540…04e560 73 69 72 65 64 2e 09 20 20 20 20 0e 09 09 09 09 09 20 20 70 72 65 73 73 20 73 70 61 63 65 20 62 ┆sired. press space b┆ 0x04e560…04e580 61 72 3a 20 18 00 09 20 20 20 20 20 20 20 2a 2a 2a 2a 2a 20 20 52 55 4c 45 52 20 4c 49 4e 45 20 ┆ar: ***** RULER LINE ┆ 0x04e580…04e5a0 20 2a 2a 2a 2a 2a 09 09 09 0e 09 09 09 09 09 09 09 0e 20 20 4c 2d 2d 2d 2d 21 2d 2d 2d 2d 21 2d ┆ ***** L----!----!-┆ 0x04e5a0…04e5c0 2d 2d 2d 21 2d 2d 2d 2d 21 2d 2d 2d 2d 21 2d 2d 2d 2d 21 2d 2d 2d 2d 21 2d 2d 2d 2d 21 2d 2d 2d ┆---!----!----!----!----!----!---┆ 0x04e5c0…04e5e0 2d 2d 2d 2d 2d 2d 52 09 0e 09 09 09 09 09 09 09 0e 20 20 4c 20 20 20 4c 65 66 74 20 6d 61 72 67 ┆------R L Left marg┆ 0x04e5e0…04e600 69 6e 20 28 73 65 74 20 77 69 74 68 20 5e 4f 4c 29 09 09 09 0e 20 20 52 20 20 20 52 69 67 68 74 ┆in (set with ^OL) R Right┆ 0x04e600…04e620 (20, 1, 13) 70 6c 65 74 65 20 64 6f 74 20 63 6f 6d 6d 61 6e 64 09 09 20 20 20 20 20 20 0e 20 20 4d 20 20 20 ┆plete dot command M ┆ 0x04e620…04e640 20 20 4d 65 72 67 65 2d 50 72 69 6e 74 20 28 6f 70 74 69 6f 6e 61 6c 20 66 65 61 74 75 72 65 29 ┆ Merge-Print (optional feature)┆ 0x04e640…04e660 20 64 6f 74 20 63 6f 6d 6d 61 6e 64 09 20 20 20 20 20 20 0e 20 20 50 20 20 20 20 20 70 61 67 65 ┆ dot command P page┆ 0x04e660…04e680 20 62 72 65 61 6b 09 09 09 09 09 20 20 20 20 20 20 0e 20 20 3a 20 20 20 20 20 74 68 69 73 20 73 ┆ break : this s┆ 0x04e680…04e6a0 63 72 65 65 6e 20 6c 69 6e 65 20 69 73 20 62 65 66 6f 72 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f ┆creen line is before beginning o┆ 0x04e6a0…04e6c0 66 20 64 6f 63 75 6d 65 6e 74 20 20 20 20 20 20 0e 20 20 2e 20 20 20 20 20 61 66 74 65 72 20 65 ┆f document . after e┆ 0x04e6c0…04e6e0 6e 64 20 6f 66 20 64 6f 63 75 6d 65 6e 74 09 09 20 20 20 20 70 72 65 73 73 20 73 70 61 63 65 20 ┆nd of document press space ┆ 0x04e6e0…04e700 62 61 72 3a 20 18 00 20 20 20 20 43 4f 4d 4d 41 4e 44 53 20 54 4f 20 2d 2d 09 09 41 52 45 20 2d ┆bar: COMMANDS TO -- ARE -┆ 0x04e700…04e720 2d 09 09 09 20 20 20 20 0e 20 6d 6f 76 65 20 63 75 72 73 6f 72 09 09 20 20 20 20 6f 6e 20 6d 61 ┆- move cursor on ma┆ 0x04e720…04e740 69 6e 20 61 6e 64 20 5e 51 20 6d 65 6e 75 73 09 20 20 20 20 0e 20 73 63 72 6f 6c 6c 20 66 69 6c ┆in and ^Q menus scroll fil┆ 0x04e740…04e760 65 20 75 70 20 6f 72 20 64 6f 77 6e 09 20 20 20 20 6f 6e 20 6d 61 69 6e 20 6d 65 6e 75 3b 20 61 ┆e up or down on main menu; a┆ 0x04e760…04e780 6c 73 6f 20 66 69 6e 64 20 28 5e 51 46 29 20 20 20 0e 20 64 65 6c 65 74 65 20 74 65 78 74 09 09 ┆lso find (^QF) delete text ┆ 0x04e780…04e7a0 20 20 20 20 6f 6e 20 6d 61 69 6e 20 61 6e 64 20 5e 51 20 6d 65 6e 75 73 3b 20 61 6c 73 6f 20 5e ┆ on main and ^Q menus; also ^┆ 0x04e7a0…04e7c0 4b 59 20 20 0e 20 6d 6f 76 65 20 6f 72 20 63 6f 70 79 20 74 65 78 74 09 20 20 20 20 6f 6e 20 5e ┆KY move or copy text on ^┆ 0x04e7c0…04e7e0 4b 20 6d 65 6e 75 09 09 09 20 20 20 20 0e 20 65 6e 64 20 65 64 69 74 20 2f 20 73 61 76 65 20 66 ┆K menu end edit / save f┆ 0x04e7e0…04e800 69 6c 65 09 20 20 20 20 5e 4b 44 3b 20 73 65 65 20 5e 4b 20 6d 65 6e 75 09 09 20 20 20 20 0e 20 ┆ile ^KD; see ^K menu ┆ 0x04e800…04e820 (20, 1, 14) 72 61 70 68 20 61 6c 72 65 61 64 79 20 65 6e 74 65 72 65 64 2c 20 73 65 74 20 6d 61 72 67 69 6e ┆raph already entered, set margin┆ 0x04e820…04e840 73 20 20 0e 20 20 20 20 20 28 5e 4f 4c 2c 20 5e 4f 52 29 2c 20 70 6c 61 63 65 20 63 75 72 73 6f ┆s (^OL, ^OR), place curso┆ 0x04e840…04e860 72 20 61 74 20 70 61 72 61 67 72 61 70 68 20 62 65 67 69 6e 6e 69 6e 67 2c 20 74 79 70 65 20 5e ┆r at paragraph beginning, type ^┆ 0x04e860…04e880 42 2e 0e 20 54 6f 20 63 68 61 6e 67 65 20 62 65 74 77 65 65 6e 20 6a 75 73 74 69 66 69 65 64 20 ┆B. To change between justified ┆ 0x04e880…04e8a0 61 6e 64 20 72 61 67 67 65 64 20 72 69 67 68 74 2c 20 6f 72 20 63 68 61 6e 67 65 20 6c 69 6e 65 ┆and ragged right, or change line┆ 0x04e8a0…04e8c0 20 0e 20 20 20 20 20 73 70 61 63 69 6e 67 2c 20 73 65 74 20 64 65 73 69 72 65 64 20 6a 75 73 74 ┆ spacing, set desired just┆ 0x04e8c0…04e8e0 69 66 69 63 61 74 69 6f 6e 20 28 5e 4f 4a 29 20 26 20 6c 69 6e 65 20 73 70 61 63 69 6e 67 20 20 ┆ification (^OJ) & line spacing ┆ 0x04e8e0…04e900 0e 20 20 20 20 20 28 5e 4f 53 29 2c 20 70 6c 61 63 65 20 63 75 72 73 6f 72 20 61 74 20 70 61 72 ┆ (^OS), place cursor at par┆ 0x04e900…04e920 61 67 72 61 70 68 20 62 65 67 69 6e 6e 69 6e 67 2c 20 61 6e 64 20 74 79 70 65 20 5e 42 2e 20 0e ┆agraph beginning, and type ^B. ┆ 0x04e920…04e940 20 54 6f 20 6f 62 74 61 69 6e 20 57 6f 72 64 53 74 61 72 27 73 20 68 65 6c 70 20 69 6e 20 68 79 ┆ To obtain WordStar's help in hy┆ 0x04e940…04e960 70 68 65 6e 61 74 69 6e 67 20 6c 6f 6e 67 20 77 6f 72 64 73 2c 20 70 6c 61 63 65 20 20 20 0e 20 ┆phenating long words, place ┆ 0x04e960…04e980 20 20 20 20 63 75 72 73 6f 72 20 61 74 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 70 61 72 61 67 ┆ cursor at beginning of parag┆ 0x04e980…04e9a0 72 61 70 68 20 61 6e 64 20 74 79 70 65 20 5e 42 2e 09 20 20 20 20 20 20 0e 09 09 09 09 20 20 70 ┆raph and type ^B. p┆ 0x04e9a0…04e9c0 72 65 73 73 20 73 70 61 63 65 20 62 61 72 20 66 6f 72 20 6d 6f 72 65 3a 20 18 20 5e 42 20 72 65 ┆ress space bar for more: ^B re┆ 0x04e9c0…04e9e0 66 6f 72 6d 73 20 6c 69 6e 65 73 20 74 6f 20 65 6e 64 20 6f 66 20 70 61 72 61 67 72 61 70 68 20 ┆forms lines to end of paragraph ┆ 0x04e9e0…04ea00 61 73 20 69 6e 64 69 63 61 74 65 64 20 62 79 20 22 68 61 72 64 22 20 0e 20 20 20 20 20 63 61 72 ┆as indicated by "hard" car┆ 0x04ea00…04ea20 (20, 1, 15) 20 41 4e 44 20 4a 55 53 54 49 46 49 43 41 54 49 4f 4e 20 20 2a 2a 2a 2a 2a 09 20 20 20 20 20 0e ┆ AND JUSTIFICATION ***** ┆ 0x04ea20…04ea40 09 09 09 09 09 09 09 20 20 20 20 20 0e 20 54 6f 20 73 65 74 20 6c 69 6e 65 20 73 70 61 63 69 6e ┆ To set line spacin┆ 0x04ea40…04ea60 67 3a 20 74 79 70 65 20 5e 4f 53 2e 20 20 57 6f 72 64 53 74 61 72 20 77 69 6c 6c 20 61 73 6b 20 ┆g: type ^OS. WordStar will ask ┆ 0x04ea60…04ea80 66 6f 72 20 6c 69 6e 65 20 20 0e 20 20 20 20 20 73 70 61 63 69 6e 67 2e 20 20 45 6e 74 65 72 20 ┆for line spacing. Enter ┆ 0x04ea80…04eaa0 61 20 64 69 67 69 74 20 31 20 74 68 72 75 20 39 2e 09 09 09 20 20 20 20 20 0e 20 54 6f 20 74 75 ┆a digit 1 thru 9. To tu┆ 0x04eaa0…04eac0 72 6e 20 6a 75 73 74 69 66 69 63 61 74 69 6f 6e 20 6f 66 66 20 28 66 6f 72 20 72 61 67 67 65 64 ┆rn justification off (for ragged┆ 0x04eac0…04eae0 20 72 69 67 68 74 20 66 6f 72 6d 61 74 29 2c 09 20 20 20 20 20 0e 20 20 20 20 20 6f 72 20 74 6f ┆ right format), or to┆ 0x04eae0…04eb00 20 74 75 72 6e 20 6a 75 73 74 69 66 69 63 61 74 69 6f 6e 20 62 61 63 6b 20 6f 6e 3a 20 74 79 70 ┆ turn justification back on: typ┆ 0x04eb00…04eb20 65 20 5e 4f 4a 2e 09 20 20 20 20 20 0e 20 4c 69 6e 65 20 73 70 61 63 69 6e 67 20 61 6e 64 20 6a ┆e ^OJ. Line spacing and j┆ 0x04eb20…04eb40 75 73 74 69 66 69 63 61 74 69 6f 6e 20 73 65 74 74 69 6e 67 73 20 61 70 70 6c 79 20 74 6f 20 74 ┆ustification settings apply to t┆ 0x04eb40…04eb60 65 78 74 09 20 20 20 20 20 0e 20 20 20 20 20 73 75 62 73 65 71 75 65 6e 74 6c 79 20 65 6e 74 65 ┆ext subsequently ente┆ 0x04eb60…04eb80 72 65 64 3b 20 74 68 65 79 20 6d 61 79 20 62 65 20 61 70 70 6c 69 65 64 20 74 6f 20 70 72 65 76 ┆red; they may be applied to prev┆ 0x04eb80…04eba0 69 6f 75 73 6c 79 20 0e 20 20 20 20 20 65 6e 74 65 72 65 64 20 74 65 78 74 20 77 69 74 68 20 74 ┆iously entered text with t┆ 0x04eba0…04ebc0 68 65 20 70 61 72 61 67 72 61 70 68 20 72 65 66 6f 72 6d 20 63 6f 6d 6d 61 6e 64 20 28 5e 42 29 ┆he paragraph reform command (^B)┆ 0x04ebc0…04ebe0 2e 20 20 20 20 0e 09 09 09 20 20 20 70 72 65 73 73 20 73 70 61 63 65 20 62 61 72 20 66 6f 72 20 ┆. press space bar for ┆ 0x04ebe0…04ec00 22 54 61 62 20 53 74 6f 70 73 22 3a 20 18 09 09 20 2a 2a 2a 2a 2a 20 20 54 41 42 20 53 54 4f 50 ┆"Tab Stops": ***** TAB STOP┆ 0x04ec00…04ec20 (21, 0, 1) 20 6d 61 72 67 69 6e 20 28 73 65 74 20 77 69 74 68 20 5e 4f 52 29 09 09 09 0e 20 20 21 20 20 20 ┆ margin (set with ^OR) ! ┆ 0x04ec20…04ec40 72 65 67 75 6c 61 72 20 74 61 62 20 73 74 6f 70 20 28 73 65 74 20 77 69 74 68 20 5e 4f 49 2c 20 ┆regular tab stop (set with ^OI, ┆ 0x04ec40…04ec60 63 6c 65 61 72 20 77 69 74 68 20 5e 4f 4e 29 09 0e 20 20 23 20 20 20 64 65 63 69 6d 61 6c 20 74 ┆clear with ^ON) # decimal t┆ 0x04ec60…04ec80 61 62 20 73 74 6f 70 20 28 73 65 74 20 77 69 74 68 20 5e 4f 49 2c 20 63 6c 65 61 72 20 77 69 74 ┆ab stop (set with ^OI, clear wit┆ 0x04ec80…04eca0 68 20 5e 4f 4e 29 09 0e 20 20 2d 20 20 20 6f 74 68 65 72 20 70 6f 73 69 74 69 6f 6e 73 20 62 65 ┆h ^ON) - other positions be┆ 0x04eca0…04ecc0 74 77 65 65 6e 20 6d 61 72 67 69 6e 73 09 09 09 0e 09 09 09 09 09 09 09 0e 09 09 09 70 72 65 73 ┆tween margins pres┆ 0x04ecc0…04ece0 73 20 73 70 61 63 65 20 62 61 72 20 61 66 74 65 72 20 72 65 61 64 69 6e 67 3a 20 18 00 20 20 20 ┆s space bar after reading: ┆ 0x04ece0…04ed00 20 20 20 20 20 20 20 20 20 20 20 2a 2a 2a 2a 2a 20 20 50 4c 41 43 45 20 4d 41 52 4b 45 52 53 20 ┆ ***** PLACE MARKERS ┆ 0x04ed00…04ed20 20 2a 2a 2a 2a 2a 09 09 20 20 0e 09 09 09 09 09 09 09 20 20 0e 20 55 70 20 74 6f 20 31 30 20 70 ┆ ***** Up to 10 p┆ 0x04ed20…04ed40 6c 61 63 65 20 6d 61 72 6b 65 72 73 2c 20 69 64 65 6e 74 69 66 69 65 64 20 62 79 20 6e 75 6d 62 ┆lace markers, identified by numb┆ 0x04ed40…04ed60 65 72 73 20 28 6e 29 20 30 2d 39 2c 20 20 20 0e 20 20 20 20 20 6d 61 79 20 62 65 20 73 65 74 20 ┆ers (n) 0-9, may be set ┆ 0x04ed60…04ed80 69 6e 20 61 20 66 69 6c 65 20 77 68 69 6c 65 20 74 68 65 20 66 69 6c 65 20 69 73 20 62 65 69 6e ┆in a file while the file is bein┆ 0x04ed80…04eda0 67 20 65 64 69 74 65 64 2e 20 0e 20 54 6f 20 73 65 74 20 70 6c 61 63 65 20 6d 61 72 6b 65 72 20 ┆g edited. To set place marker ┆ 0x04eda0…04edc0 6e 20 61 74 20 74 68 65 20 63 75 72 73 6f 72 20 70 6f 73 69 74 69 6f 6e 3a 20 74 79 70 65 20 5e ┆n at the cursor position: type ^┆ 0x04edc0…04ede0 4b 6e 2e 20 20 0e 20 20 20 20 20 bc ee be 20 77 69 6c 6c 20 64 69 73 70 6c 61 79 20 74 6f 20 69 ┆Kn. will display to i┆ 0x04ede0…04ee00 6e 64 69 63 61 74 65 20 74 68 65 20 6d 61 72 6b 65 72 20 70 6f 73 69 74 69 6f 6e 2e 09 20 20 0e ┆ndicate the marker position. ┆ 0x04ee00…04ee20 (21, 0, 2) d7 00 cd 00 13 9e 00 b6 03 03 cd 00 16 9e 00 b6 03 04 a5 05 cd 00 10 9e 00 ec 59 c3 ec 79 c3 8d ┆ Y y ┆ 0x04ee20…04ee40 a1 03 00 ab 12 ec 07 c3 a9 12 93 8d a1 f6 a9 12 a1 51 00 ab 06 0f cc 01 ed d8 c8 a1 46 a5 82 c4 ┆ Q F ┆ 0x04ee40…04ee60 04 ed 8f 00 c7 ff 01 88 be a5 82 c4 04 ed 8f 01 82 00 c7 ff 01 88 be 82 00 cb a1 15 ae 18 01 ab ┆ ┆ 0x04ee60…04ee80 07 ae 15 a5 82 b4 ed 00 0f 88 a4 01 a9 1b 9a b9 0b a5 82 b4 ed 00 0f 88 a4 01 64 9a ed 01 82 ab ┆ d ┆ 0x04ee80…04eea0 06 b9 f4 cd 01 02 00 ab 13 ad 00 cd 54 00 dd 00 02 00 00 00 0b 00 ec 00 1d 02 cd 01 02 00 0a cd ┆ T ┆ 0x04eea0…04eec0 00 1d b6 02 03 a6 31 20 20 20 20 20 20 20 20 20 20 44 6f 20 79 6f 75 20 77 69 73 68 20 74 6f 20 ┆ 1 Do you wish to ┆ 0x04eec0…04eee0 6b 65 65 70 20 74 72 61 63 6b 20 6f 66 20 72 65 66 65 72 65 6e 63 65 73 d7 00 cd 00 13 9e 00 b6 ┆keep track of references ┆ 0x04eee0…04ef00 02 03 eb 00 cd 00 11 9e 00 b6 02 03 d7 a6 32 20 20 20 20 20 20 20 20 20 74 6f 20 61 20 70 61 72 ┆ 2 to a par┆ 0x04ef00…04ef20 74 69 63 75 6c 61 72 20 70 72 6f 63 65 64 75 72 65 27 73 20 64 61 74 61 20 73 65 67 6d 65 6e 74 ┆ticular procedure's data segment┆ 0x04ef20…04ef40 3f 00 cd 00 13 9e 00 b6 02 04 a5 05 cd 00 10 9e 00 ec 59 c3 ec 79 c3 8d ab 12 a9 12 a1 04 ce 1d ┆? Y y ┆ 0x04ef40…04ef60 b9 03 00 ab 13 cd 01 02 00 0a cd 00 1d b6 02 03 d7 a6 26 44 6f 20 79 6f 75 20 77 69 73 68 20 63 ┆ &Do you wish c┆ 0x04ef60…04ef80 6f 6e 74 72 6f 6c 20 6f 76 65 72 20 64 69 73 2d 61 73 73 65 6d 62 6c 79 3f 00 cd 00 13 9e 00 b6 ┆ontrol over dis-assembly? ┆ 0x04ef80…04efa0 02 04 a5 05 cd 00 10 9e 00 ec 59 c3 ec 79 c3 8d ab 16 a9 16 a1 f6 cd 01 02 00 07 cd 00 1d b6 02 ┆ Y y ┆ 0x04efa0…04efc0 03 07 00 cd 00 11 9e 00 b6 02 03 a6 3b 2a 2a 2a 20 20 57 41 52 4e 49 4e 47 20 20 2d 20 2d 20 20 ┆ ;*** WARNING - - ┆ 0x04efc0…04efe0 53 54 41 54 49 53 54 49 43 53 20 41 52 45 20 47 41 54 48 45 52 45 44 20 4f 4e 20 44 49 53 2d 41 ┆STATISTICS ARE GATHERED ON DIS-A┆ 0x04efe0…04f000 53 53 45 4d 42 4c 45 44 d7 00 cd 00 13 9e 00 b6 02 03 d7 a6 15 20 50 52 4f 43 45 44 55 52 45 53 ┆SSEMBLED PROCEDURES┆ 0x04f000…04f020 (21, 0, 3) 53 41 56 45 20 46 44 20 46 4f 52 4d 41 54 53 0d 0a 09 4c 58 49 09 44 2c 46 44 46 4f 52 4d 09 3b ┆SAVE FD FORMATS LXI D,FDFORM ;┆ 0x04f020…04f040 0d 0a 09 44 41 44 09 44 09 09 3b 0d 0a 09 53 48 4c 44 09 41 46 4f 52 4d 09 09 3b 0d 0a 09 4d 4f ┆ DAD D ; SHLD AFORM ; MO┆ 0x04f040…04f060 56 09 41 2c 4d 09 09 3b 0d 0a 09 53 54 41 09 53 46 4f 52 4d 09 09 3b 0d 0a 09 49 4e 58 09 48 09 ┆V A,M ; STA SFORM ; INX H ┆ 0x04f060…04f080 09 3b 0d 0a 09 4d 4f 56 09 41 2c 4d 09 09 3b 0d 0a 09 53 54 41 09 53 46 4f 52 4d 2b 31 09 09 3b ┆ ; MOV A,M ; STA SFORM+1 ;┆ 0x04f080…04f0a0 0d 0a 09 4c 48 4c 44 09 53 46 4f 52 4d 09 09 3b 0d 0a 09 53 48 4c 44 09 53 46 09 09 3b 0d 0a 09 ┆ LHLD SFORM ; SHLD SF ; ┆ 0x04f0a0…04f0c0 53 48 4c 44 09 44 46 09 09 3b 0d 0a 09 4c 44 41 09 46 43 42 31 09 09 3b 0d 0a 09 4f 52 41 09 41 ┆SHLD DF ; LDA FCB1 ; ORA A┆ 0x04f0c0…04f0e0 09 09 3b 0d 0a 09 43 5a 09 47 45 54 44 44 09 09 3b 0d 0a 09 44 43 52 09 41 09 09 3b 0d 0a 09 53 ┆ ; CZ GETDD ; DCR A ; S┆ 0x04f0e0…04f100 54 41 09 53 44 52 49 56 09 09 3b 0d 0a 09 4c 44 41 09 46 43 42 32 09 09 3b 0d 0a 09 4f 52 41 09 ┆TA SDRIV ; LDA FCB2 ; ORA ┆ 0x04f100…04f120 41 09 09 3b 0d 0a 09 43 5a 09 47 45 54 44 44 09 09 3b 0d 0a 09 44 43 52 09 41 09 09 3b 0d 0a 09 ┆A ; CZ GETDD ; DCR A ; ┆ 0x04f120…04f140 53 54 41 09 44 44 52 49 56 09 09 3b 0d 0a 09 4c 58 49 09 48 2c 44 42 55 46 46 09 09 3b 20 53 45 ┆STA DDRIV ; LXI H,DBUFF ; SE┆ 0x04f140…04f160 54 55 50 20 43 48 41 52 20 53 43 41 4e 0d 0a 09 49 4e 58 09 48 09 09 3b 0d 0a 09 53 48 4c 44 09 ┆TUP CHAR SCAN INX H ; SHLD ┆ 0x04f160…04f180 43 41 44 44 52 09 09 3b 0d 0a 09 4a 4d 50 09 53 43 41 4e 09 09 3b 0d 0a 0d 0a 4e 43 48 41 52 3a ┆CADDR ; JMP SCAN ; NCHAR:┆ 0x04f180…04f1a0 20 20 4c 58 49 09 48 2c 44 42 55 46 46 09 09 3b 20 47 45 54 20 4e 45 58 54 20 43 48 41 52 3a 0d ┆ LXI H,DBUFF ; GET NEXT CHAR: ┆ 0x04f1a0…04f1c0 0a 09 44 43 52 09 4d 09 09 3b 0d 0a 09 4a 5a 09 53 45 54 46 44 46 09 09 3b 20 49 46 20 45 4f 4c ┆ DCR M ; JZ SETFDF ; IF EOL┆ 0x04f1c0…04f1e0 20 54 48 45 4e 20 45 58 49 54 0d 0a 09 4c 48 4c 44 09 43 41 44 44 52 09 09 3b 0d 0a 09 4d 4f 56 ┆ THEN EXIT LHLD CADDR ; MOV┆ 0x04f1e0…04f200 09 41 2c 4d 09 09 3b 20 20 20 20 20 20 20 20 45 4c 53 45 20 50 49 43 4b 55 50 20 43 48 41 52 3b ┆ A,M ; ELSE PICKUP CHAR;┆ 0x04f200…04f220 (21, 0, 4) 53 41 56 45 20 46 44 20 46 4f 52 4d 41 54 53 0d 0a 09 4c 58 49 09 44 2c 46 44 46 4f 52 4d 09 3b ┆SAVE FD FORMATS LXI D,FDFORM ;┆ 0x04f220…04f240 0d 0a 09 44 41 44 09 44 09 09 3b 0d 0a 09 53 48 4c 44 09 41 46 4f 52 4d 09 09 3b 0d 0a 09 4d 4f ┆ DAD D ; SHLD AFORM ; MO┆ 0x04f240…04f260 56 09 41 2c 4d 09 09 3b 0d 0a 09 53 54 41 09 53 46 4f 52 4d 09 09 3b 0d 0a 09 49 4e 58 09 48 09 ┆V A,M ; STA SFORM ; INX H ┆ 0x04f260…04f280 09 3b 0d 0a 09 4d 4f 56 09 41 2c 4d 09 09 3b 0d 0a 09 53 54 41 09 53 46 4f 52 4d 2b 31 09 09 3b ┆ ; MOV A,M ; STA SFORM+1 ;┆ 0x04f280…04f2a0 0d 0a 09 4c 48 4c 44 09 53 46 4f 52 4d 09 09 3b 0d 0a 09 53 48 4c 44 09 53 46 09 09 3b 0d 0a 09 ┆ LHLD SFORM ; SHLD SF ; ┆ 0x04f2a0…04f2c0 53 48 4c 44 09 44 46 09 09 3b 0d 0a 09 4c 44 41 09 46 43 42 31 09 09 3b 0d 0a 09 4f 52 41 09 41 ┆SHLD DF ; LDA FCB1 ; ORA A┆ 0x04f2c0…04f2e0 09 09 3b 0d 0a 09 43 5a 09 47 45 54 44 44 09 09 3b 0d 0a 09 44 43 52 09 41 09 09 3b 0d 0a 09 53 ┆ ; CZ GETDD ; DCR A ; S┆ 0x04f2e0…04f300 54 41 09 53 44 52 49 56 09 09 3b 0d 0a 09 4c 44 41 09 46 43 42 32 09 09 3b 0d 0a 09 4f 52 41 09 ┆TA SDRIV ; LDA FCB2 ; ORA ┆ 0x04f300…04f320 41 09 09 3b 0d 0a 09 43 5a 09 47 45 54 44 44 09 09 3b 0d 0a 09 44 43 52 09 41 09 09 3b 0d 0a 09 ┆A ; CZ GETDD ; DCR A ; ┆ 0x04f320…04f340 53 54 41 09 44 44 52 49 56 09 09 3b 0d 0a 09 4c 58 49 09 48 2c 44 42 55 46 46 09 09 3b 20 53 45 ┆STA DDRIV ; LXI H,DBUFF ; SE┆ 0x04f340…04f360 54 55 50 20 43 48 41 52 20 53 43 41 4e 0d 0a 09 49 4e 58 09 48 09 09 3b 0d 0a 09 53 48 4c 44 09 ┆TUP CHAR SCAN INX H ; SHLD ┆ 0x04f360…04f380 43 41 44 44 52 09 09 3b 0d 0a 09 4a 4d 50 09 53 43 41 4e 09 09 3b 0d 0a 0d 0a 4e 43 48 41 52 3a ┆CADDR ; JMP SCAN ; NCHAR:┆ 0x04f380…04f3a0 20 20 4c 58 49 09 48 2c 44 42 55 46 46 09 09 3b 20 47 45 54 20 4e 45 58 54 20 43 48 41 52 3a 0d ┆ LXI H,DBUFF ; GET NEXT CHAR: ┆ 0x04f3a0…04f3c0 0a 09 44 43 52 09 4d 09 09 3b 0d 0a 09 4a 5a 09 53 45 54 46 44 46 09 09 3b 20 49 46 20 45 4f 4c ┆ DCR M ; JZ SETFDF ; IF EOL┆ 0x04f3c0…04f3e0 20 54 48 45 4e 20 45 58 49 54 0d 0a 09 4c 48 4c 44 09 43 41 44 44 52 09 09 3b 0d 0a 09 4d 4f 56 ┆ THEN EXIT LHLD CADDR ; MOV┆ 0x04f3e0…04f400 09 41 2c 4d 09 09 3b 20 20 20 20 20 20 20 20 45 4c 53 45 20 50 49 43 4b 55 50 20 43 48 41 52 3b ┆ A,M ; ELSE PICKUP CHAR;┆ 0x04f400…04f420 (21, 0, 5) 20 54 6f 20 72 65 74 75 72 6e 20 74 68 65 20 63 75 72 73 6f 72 20 74 6f 20 70 6c 61 63 65 20 6d ┆ To return the cursor to place m┆ 0x04f420…04f440 61 72 6b 65 72 20 6e 3a 20 74 79 70 65 20 5e 51 6e 20 61 6e 79 09 20 20 0e 20 20 20 20 20 74 69 ┆arker n: type ^Qn any ti┆ 0x04f440…04f460 6d 65 20 64 75 72 69 6e 67 20 74 68 65 20 73 61 6d 65 20 65 64 69 74 2e 09 09 09 09 20 20 0e 20 ┆me during the same edit. ┆ 0x04f460…04f480 54 6f 20 72 65 6d 6f 76 65 20 74 68 65 20 bc ee be 20 66 72 6f 6d 20 74 68 65 20 64 69 73 70 6c ┆To remove the from the displ┆ 0x04f480…04f4a0 61 79 3a 20 74 79 70 65 20 5e 4b 6e 20 77 68 65 6e 20 74 68 65 09 20 20 0e 20 20 20 20 20 63 75 ┆ay: type ^Kn when the cu┆ 0x04f4a0…04f4c0 72 73 6f 72 20 69 73 20 61 6c 72 65 61 64 79 20 61 74 20 74 68 65 20 6d 61 72 6b 65 72 20 70 6f ┆rsor is already at the marker po┆ 0x04f4c0…04f4e0 73 69 74 69 6f 6e 2e 09 09 20 20 0e 09 09 09 09 09 70 72 65 73 73 20 73 70 61 63 65 20 62 61 72 ┆sition. press space bar┆ 0x04f4e0…04f500 3a 20 18 09 2a 2a 2a 2a 2a 20 20 4f 54 48 45 52 20 4d 41 52 4b 45 52 20 26 20 52 45 4c 41 54 45 ┆: ***** OTHER MARKER & RELATE┆ 0x04f500…04f520 44 20 43 4f 4d 4d 41 4e 44 53 20 2a 2a 2a 2a 2a 09 20 20 20 20 20 0e 09 09 09 09 09 09 09 20 20 ┆D COMMANDS ***** ┆ 0x04f520…04f540 20 20 20 0e 20 54 68 65 20 62 6c 6f 63 6b 20 62 65 67 69 6e 6e 69 6e 67 20 6d 61 72 6b 65 72 2c ┆ The block beginning marker,┆ 0x04f540…04f560 20 bc c2 be 2c 20 61 6e 64 20 74 68 65 20 62 6c 6f 63 6b 20 65 6e 64 20 6d 61 72 6b 65 72 2c 20 ┆ , and the block end marker, ┆ 0x04f560…04f580 20 0e 20 20 20 20 20 20 bc cb be 2c 20 61 72 65 20 73 65 74 20 61 6e 64 20 6d 6f 76 65 64 20 74 ┆ , are set and moved t┆ 0x04f580…04f5a0 6f 20 69 6e 20 61 20 73 69 6d 69 6c 61 72 20 6d 61 6e 6e 65 72 3b 20 74 68 65 20 20 20 20 20 0e ┆o in a similar manner; the ┆ 0x04f5a0…04f5c0 20 20 20 20 20 20 74 65 78 74 20 62 65 74 77 65 65 6e 20 74 68 65 73 65 20 6d 61 72 6b 65 72 73 ┆ text between these markers┆ 0x04f5c0…04f5e0 20 63 61 6e 20 62 65 20 6d 6f 76 65 64 20 28 5e 4b 56 29 2c 20 63 6f 70 69 65 64 20 20 0e 20 20 ┆ can be moved (^KV), copied ┆ 0x04f5e0…04f600 20 20 20 20 28 5e 4b 43 29 2c 20 64 65 6c 65 74 65 64 20 28 5e 4b 59 29 2c 20 6f 72 20 77 72 69 ┆ (^KC), deleted (^KY), or wri┆ 0x04f600…04f620 (21, 0, 6) d8 b9 f6 d9 d7 a6 16 20 20 20 20 20 20 20 20 20 50 61 72 61 6d 65 74 65 72 20 6f 6e 65 00 cd 00 ┆ Parameter one ┆ 0x04f620…04f640 13 9e 00 d9 cd 00 16 9e 00 b9 f4 d9 d7 a6 20 42 69 74 73 20 75 73 65 64 20 20 20 20 54 6f 74 61 ┆ Bits used Tota┆ 0x04f640…04f660 6c 20 20 20 20 50 65 72 63 65 6e 74 61 67 65 00 cd 00 13 9e 00 d9 cd 00 16 9e 00 b9 f4 d9 d7 a6 ┆l Percentage ┆ 0x04f660…04f680 37 20 20 20 20 20 20 20 20 20 50 61 72 61 6d 65 74 65 72 20 6f 6e 65 20 20 20 20 20 20 20 20 20 ┆7 Parameter one ┆ 0x04f680…04f6a0 20 20 50 61 72 61 6d 65 74 65 72 20 74 77 6f 20 20 20 20 20 20 20 20 20 00 cd 00 13 9e 00 d9 cd ┆ Parameter two ┆ 0x04f6a0…04f6c0 00 16 9e 00 b9 f4 d9 a6 37 42 69 74 73 20 75 73 65 64 20 20 20 20 54 6f 74 61 6c 20 20 20 20 50 ┆ 7Bits used Total P┆ 0x04f6c0…04f6e0 65 72 63 65 6e 74 61 67 65 20 20 20 20 54 6f 74 61 6c 20 20 20 20 50 65 72 63 65 6e 74 61 67 65 ┆ercentage Total Percentage┆ 0x04f6e0…04f700 d7 00 cd 00 13 9e 00 d9 cd 00 16 9e 00 b9 f4 d9 d7 a6 2e 20 20 20 20 20 20 20 20 20 50 61 72 61 ┆ . Para┆ 0x04f700…04f720 6d 65 74 65 72 20 6f 6e 65 20 20 20 20 20 20 20 20 20 20 20 50 61 72 61 6d 65 74 65 72 20 74 77 ┆meter one Parameter tw┆ 0x04f720…04f740 6f 00 cd 00 13 9e 00 d9 d7 a6 1a 20 20 20 20 20 20 20 20 20 20 20 43 61 73 65 20 74 61 62 6c 65 ┆o Case table┆ 0x04f740…04f760 20 73 69 7a 65 00 cd 00 13 9e 00 d9 cd 00 16 9e 00 b9 f4 d9 d7 a6 37 42 69 74 73 20 75 73 65 64 ┆ size 7Bits used┆ 0x04f760…04f780 20 20 20 20 54 6f 74 61 6c 20 20 20 20 50 65 72 63 65 6e 74 61 67 65 20 20 20 20 54 6f 74 61 6c ┆ Total Percentage Total┆ 0x04f780…04f7a0 20 20 20 20 50 65 72 63 65 6e 74 61 67 65 00 cd 00 13 9e 00 d9 a6 17 20 20 20 20 54 6f 74 61 6c ┆ Percentage Total┆ 0x04f7a0…04f7c0 20 20 20 20 50 65 72 63 65 6e 74 61 67 65 d7 00 cd 00 13 9e 00 d9 cd 00 16 9e 00 b9 f4 d9 d7 a6 ┆ Percentage ┆ 0x04f7c0…04f7e0 2a 46 6c 61 76 6f 72 20 20 20 20 20 20 54 6f 74 61 6c 20 20 20 20 50 65 72 63 65 6e 74 61 67 65 ┆*Flavor Total Percentage┆ 0x04f7e0…04f800 20 20 20 20 20 46 6c 61 76 6f 72 00 cd 00 13 9e 00 d9 d7 a6 19 20 20 20 20 20 20 54 6f 74 61 6c ┆ Flavor Total┆ 0x04f800…04f820 (21, 0, 7) 0d 0a 09 49 4e 58 09 48 09 09 3b 0d 0a 09 53 48 4c 44 09 43 41 44 44 52 09 09 3b 0d 0a 09 52 45 ┆ INX H ; SHLD CADDR ; RE┆ 0x04f820…04f840 54 09 09 20 09 3b 20 52 45 54 55 52 4e 3b 0d 0a 0d 0a 53 43 41 4e 3a 09 4c 58 49 09 42 2c 30 09 ┆T ; RETURN; SCAN: LXI B,0 ┆ 0x04f840…04f860 09 3b 20 44 52 49 56 45 2c 44 45 4e 53 49 54 59 3a 3d 53 2c 53 53 0d 0a 09 43 41 4c 4c 09 4e 43 ┆ ; DRIVE,DENSITY:=S,SS CALL NC┆ 0x04f860…04f880 48 41 52 09 09 3b 0d 0a 09 43 50 49 09 27 53 27 09 09 3b 20 53 45 41 52 43 48 20 53 20 4f 52 20 ┆HAR ; CPI 'S' ; SEARCH S OR ┆ 0x04f880…04f8a0 44 20 44 52 49 56 45 3a 0d 0a 09 4a 5a 09 53 43 4f 4c 09 09 3b 0d 0a 09 43 50 49 09 27 44 27 09 ┆D DRIVE: JZ SCOL ; CPI 'D' ┆ 0x04f8a0…04f8c0 09 3b 0d 0a 09 4a 4e 5a 09 53 43 41 4e 09 09 3b 0d 0a 09 4d 56 49 09 42 2c 32 09 09 3b 0d 0a 53 ┆ ; JNZ SCAN ; MVI B,2 ; S┆ 0x04f8c0…04f8e0 43 4f 4c 3a 09 43 41 4c 4c 09 4e 43 48 41 52 09 09 3b 20 53 45 41 52 43 48 20 43 4f 4c 4f 4e 3a ┆COL: CALL NCHAR ; SEARCH COLON:┆ 0x04f8e0…04f900 0d 0a 09 43 50 49 09 27 3a 27 09 09 3b 0d 0a 09 4a 4e 5a 09 53 43 41 4e 09 09 3b 0d 0a 09 43 41 ┆ CPI ':' ; JNZ SCAN ; CA┆ 0x04f900…04f920 4c 4c 09 4e 43 48 41 52 09 09 3b 20 53 45 41 52 43 48 20 45 51 55 41 4c 3a 0d 0a 09 43 50 49 09 ┆LL NCHAR ; SEARCH EQUAL: CPI ┆ 0x04f920…04f940 27 3d 27 09 09 3b 0d 0a 09 4a 4e 5a 09 53 43 41 4e 09 09 3b 0d 0a 09 43 41 4c 4c 09 4e 43 48 41 ┆'=' ; JNZ SCAN ; CALL NCHA┆ 0x04f940…04f960 52 09 09 3b 20 53 45 41 52 43 48 20 44 45 4e 53 49 54 59 3a 0d 0a 09 43 50 49 09 27 53 27 09 09 ┆R ; SEARCH DENSITY: CPI 'S' ┆ 0x04f960…04f980 3b 0d 0a 09 4a 5a 09 53 53 53 09 09 3b 0d 0a 09 43 50 49 09 27 44 27 09 09 3b 0d 0a 09 4a 4e 5a ┆; JZ SSS ; CPI 'D' ; JNZ┆ 0x04f980…04f9a0 09 53 43 41 4e 09 09 3b 0d 0a 09 43 41 4c 4c 09 4e 43 48 41 52 09 09 3b 0d 0a 09 43 50 49 09 27 ┆ SCAN ; CALL NCHAR ; CPI '┆ 0x04f9a0…04f9c0 44 27 09 09 3b 0d 0a 09 4a 4e 5a 09 53 43 41 4e 09 09 3b 0d 0a 09 43 41 4c 4c 09 4e 43 48 41 52 ┆D' ; JNZ SCAN ; CALL NCHAR┆ 0x04f9c0…04f9e0 09 09 3b 20 53 45 41 52 43 48 20 53 50 41 43 45 3a 0d 0a 09 43 50 49 09 27 20 27 09 09 3b 0d 0a ┆ ; SEARCH SPACE: CPI ' ' ; ┆ 0x04f9e0…04fa00 09 4a 4e 5a 09 53 43 41 4e 09 09 3b 0d 0a 09 4d 56 49 09 43 2c 38 09 09 3b 0d 0a 09 4a 4d 50 09 ┆ JNZ SCAN ; MVI C,8 ; JMP ┆ 0x04fa00…04fa20 (21, 0, 8) 0d 0a 09 49 4e 58 09 48 09 09 3b 0d 0a 09 53 48 4c 44 09 43 41 44 44 52 09 09 3b 0d 0a 09 52 45 ┆ INX H ; SHLD CADDR ; RE┆ 0x04fa20…04fa40 54 09 09 20 09 3b 20 52 45 54 55 52 4e 3b 0d 0a 0d 0a 53 43 41 4e 3a 09 4c 58 49 09 42 2c 30 09 ┆T ; RETURN; SCAN: LXI B,0 ┆ 0x04fa40…04fa60 09 3b 20 44 52 49 56 45 2c 44 45 4e 53 49 54 59 3a 3d 53 2c 53 53 0d 0a 09 43 41 4c 4c 09 4e 43 ┆ ; DRIVE,DENSITY:=S,SS CALL NC┆ 0x04fa60…04fa80 48 41 52 09 09 3b 0d 0a 09 43 50 49 09 27 53 27 09 09 3b 20 53 45 41 52 43 48 20 53 20 4f 52 20 ┆HAR ; CPI 'S' ; SEARCH S OR ┆ 0x04fa80…04faa0 44 20 44 52 49 56 45 3a 0d 0a 09 4a 5a 09 53 43 4f 4c 09 09 3b 0d 0a 09 43 50 49 09 27 44 27 09 ┆D DRIVE: JZ SCOL ; CPI 'D' ┆ 0x04faa0…04fac0 09 3b 0d 0a 09 4a 4e 5a 09 53 43 41 4e 09 09 3b 0d 0a 09 4d 56 49 09 42 2c 32 09 09 3b 0d 0a 53 ┆ ; JNZ SCAN ; MVI B,2 ; S┆ 0x04fac0…04fae0 43 4f 4c 3a 09 43 41 4c 4c 09 4e 43 48 41 52 09 09 3b 20 53 45 41 52 43 48 20 43 4f 4c 4f 4e 3a ┆COL: CALL NCHAR ; SEARCH COLON:┆ 0x04fae0…04fb00 0d 0a 09 43 50 49 09 27 3a 27 09 09 3b 0d 0a 09 4a 4e 5a 09 53 43 41 4e 09 09 3b 0d 0a 09 43 41 ┆ CPI ':' ; JNZ SCAN ; CA┆ 0x04fb00…04fb20 4c 4c 09 4e 43 48 41 52 09 09 3b 20 53 45 41 52 43 48 20 45 51 55 41 4c 3a 0d 0a 09 43 50 49 09 ┆LL NCHAR ; SEARCH EQUAL: CPI ┆ 0x04fb20…04fb40 27 3d 27 09 09 3b 0d 0a 09 4a 4e 5a 09 53 43 41 4e 09 09 3b 0d 0a 09 43 41 4c 4c 09 4e 43 48 41 ┆'=' ; JNZ SCAN ; CALL NCHA┆ 0x04fb40…04fb60 52 09 09 3b 20 53 45 41 52 43 48 20 44 45 4e 53 49 54 59 3a 0d 0a 09 43 50 49 09 27 53 27 09 09 ┆R ; SEARCH DENSITY: CPI 'S' ┆ 0x04fb60…04fb80 3b 0d 0a 09 4a 5a 09 53 53 53 09 09 3b 0d 0a 09 43 50 49 09 27 44 27 09 09 3b 0d 0a 09 4a 4e 5a ┆; JZ SSS ; CPI 'D' ; JNZ┆ 0x04fb80…04fba0 09 53 43 41 4e 09 09 3b 0d 0a 09 43 41 4c 4c 09 4e 43 48 41 52 09 09 3b 0d 0a 09 43 50 49 09 27 ┆ SCAN ; CALL NCHAR ; CPI '┆ 0x04fba0…04fbc0 44 27 09 09 3b 0d 0a 09 4a 4e 5a 09 53 43 41 4e 09 09 3b 0d 0a 09 43 41 4c 4c 09 4e 43 48 41 52 ┆D' ; JNZ SCAN ; CALL NCHAR┆ 0x04fbc0…04fbe0 09 09 3b 20 53 45 41 52 43 48 20 53 50 41 43 45 3a 0d 0a 09 43 50 49 09 27 20 27 09 09 3b 0d 0a ┆ ; SEARCH SPACE: CPI ' ' ; ┆ 0x04fbe0…04fc00 09 4a 4e 5a 09 53 43 41 4e 09 09 3b 0d 0a 09 4d 56 49 09 43 2c 38 09 09 3b 0d 0a 09 4a 4d 50 09 ┆ JNZ SCAN ; MVI C,8 ; JMP ┆ 0x04fc00…04fc20 (21, 0, 9) 74 74 65 6e 20 74 6f 20 61 20 66 69 6c 65 20 28 5e 4b 57 29 2e 09 20 20 20 20 20 0e 09 09 09 09 ┆tten to a file (^KW). ┆ 0x04fc20…04fc40 09 09 09 20 20 20 20 20 0e 20 5e 51 50 20 20 6d 6f 76 65 73 20 63 75 72 73 6f 72 20 74 6f 20 69 ┆ ^QP moves cursor to i┆ 0x04fc40…04fc60 74 73 20 70 6f 73 69 74 69 6f 6e 20 62 65 66 6f 72 65 20 70 72 65 63 65 64 69 6e 67 20 63 6f 6d ┆ts position before preceding com┆ 0x04fc60…04fc80 6d 61 6e 64 2e 20 0e 09 09 09 09 09 09 09 20 20 20 20 20 0e 20 5e 51 56 20 20 6d 6f 76 65 73 20 ┆mand. ^QV moves ┆ 0x04fc80…04fca0 63 75 72 73 6f 72 20 74 6f 20 73 74 61 72 74 20 6f 66 20 6c 61 73 74 20 66 69 6e 64 2f 72 65 70 ┆cursor to start of last find/rep┆ 0x04fca0…04fcc0 6c 61 63 65 2c 20 6f 72 20 74 6f 20 20 20 20 20 20 0e 20 20 20 20 20 20 20 20 20 73 6f 75 72 63 ┆lace, or to sourc┆ 0x04fcc0…04fce0 65 20 6f 66 20 74 65 78 74 20 66 6f 72 20 6c 61 73 74 20 62 6c 6f 63 6b 20 6d 6f 76 65 20 6f 72 ┆e of text for last block move or┆ 0x04fce0…04fd00 20 63 6f 70 79 2e 09 20 20 20 20 20 0e 09 09 09 09 09 20 20 20 70 72 65 73 73 20 73 70 61 63 65 ┆ copy. press space┆ 0x04fd00…04fd20 20 62 61 72 3a 20 18 00 20 49 46 20 54 48 49 53 20 44 49 53 50 4c 41 59 53 20 59 4f 55 20 41 52 ┆ bar: IF THIS DISPLAYS YOU AR┆ 0x04fd20…04fd40 45 20 55 53 49 4e 47 20 57 52 4f 4e 47 20 56 45 52 53 49 4f 4e 20 4f 46 20 57 53 4d 53 47 53 2e ┆E USING WRONG VERSION OF WSMSGS.┆ 0x04fd40…04fd60 4f 56 52 20 0e 00 65 78 74 20 66 6f 72 20 6c 61 73 74 20 62 6c 6f 63 6b 20 6d 6f 76 65 20 6f 72 ┆OVR ext for last block move or┆ 0x04fd60…04fd80 20 63 6f 70 79 2e 09 20 20 20 20 20 0e 09 09 09 09 09 20 20 20 70 72 65 73 73 20 73 70 61 63 65 ┆ copy. press space┆ 0x04fd80…04fda0 3a 17 07 b7 4f 78 ca 1d 07 0d ca 33 07 0d ca 4f 07 c3 5b 07 c3 5b 07 3a 17 07 b7 fa 25 07 3d ca ┆: Ox 3 O Æ Æ : % = ┆ 0x04fda0…04fdc0 37 07 3d ca 52 07 c3 64 07 e5 2a 36 3d 23 cd 57 43 e1 c9 3a 85 3c b7 c8 3d 32 85 3c 3e 20 cd 3b ┆7 = R d *6=# WC : < =2 <> ;┆ 0x04fdc0…04fde0 43 c3 b3 43 3a 86 07 3d ca ef 43 cd 97 43 da e4 43 21 ec 3c e6 7f fe 11 c2 dd 43 36 00 fe 13 c2 ┆C C: = C C C! < C6 ┆ 0x04fde0…04fe00 e4 43 36 80 3a ec 3c b7 f0 cd a9 43 c3 c4 43 cd 12 44 21 ed 3c 34 3a 87 07 3d be d0 3e 01 32 ed ┆ C6 : < C C D! <4: = > 2 ┆ 0x04fe00…04fe20 (21, 0, 10) 3b 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆;*******************************┆ 0x04fe20…04fe40 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆********************************┆ 0x04fe40…04fe60 2a 0d 0a 3b 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆* ;* ┆ 0x04fe60…04fe80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x04fe80…04fea0 20 20 20 2a 0d 0a 3b 2a 20 20 20 20 20 46 49 4c 45 20 54 52 41 4e 53 46 45 52 20 55 54 49 4c 49 ┆ * ;* FILE TRANSFER UTILI┆ 0x04fea0…04fec0 54 59 20 20 20 20 2d 20 20 20 20 56 45 52 53 49 4f 4e 20 20 38 31 2e 30 36 2e 32 39 20 20 20 20 ┆TY - VERSION 81.06.29 ┆ 0x04fec0…04fee0 20 20 20 20 20 20 2a 0d 0a 3b 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ * ;* ┆ 0x04fee0…04ff00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x04ff00…04ff20 20 20 20 20 20 20 20 20 20 2a 0d 0a 3b 2a 20 20 20 20 20 54 52 41 4e 53 46 45 52 20 20 41 3a 58 ┆ * ;* TRANSFER A:X┆ 0x04ff20…04ff40 2e 59 20 20 42 3a 55 2e 56 20 20 44 3a 3d 46 46 20 20 44 3a 3d 46 46 20 20 20 20 20 20 20 20 20 ┆.Y B:U.V D:=FF D:=FF ┆ 0x04ff40…04ff60 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 3b 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ * ;* ┆ 0x04ff60…04ff80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x04ff80…04ffa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 3b 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆ * ;*************┆ 0x04ffa0…04ffc0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆********************************┆ 0x04ffc0…04ffe0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 0a 0d 0a 42 4f 4f 54 09 45 51 55 09 ┆******************* BOOT EQU ┆ 0x04ffe0…050000 30 30 30 30 48 0d 0a 42 44 4f 53 09 45 51 55 09 30 30 30 35 48 0d 0a 46 43 42 31 09 45 51 55 09 ┆0000H BDOS EQU 0005H FCB1 EQU ┆ 0x050000…050020 (21, 0, 11) 3b 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆;*******************************┆ 0x050020…050040 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆********************************┆ 0x050040…050060 2a 0d 0a 3b 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆* ;* ┆ 0x050060…050080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x050080…0500a0 20 20 20 2a 0d 0a 3b 2a 20 20 20 20 20 46 49 4c 45 20 54 52 41 4e 53 46 45 52 20 55 54 49 4c 49 ┆ * ;* FILE TRANSFER UTILI┆ 0x0500a0…0500c0 54 59 20 20 20 20 2d 20 20 20 20 56 45 52 53 49 4f 4e 20 20 38 31 2e 30 36 2e 32 39 20 20 20 20 ┆TY - VERSION 81.06.29 ┆ 0x0500c0…0500e0 20 20 20 20 20 20 2a 0d 0a 3b 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ * ;* ┆ 0x0500e0…050100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x050100…050120 20 20 20 20 20 20 20 20 20 2a 0d 0a 3b 2a 20 20 20 20 20 54 52 41 4e 53 46 45 52 20 20 41 3a 58 ┆ * ;* TRANSFER A:X┆ 0x050120…050140 2e 59 20 20 42 3a 55 2e 56 20 20 44 3a 3d 46 46 20 20 44 3a 3d 46 46 20 20 20 20 20 20 20 20 20 ┆.Y B:U.V D:=FF D:=FF ┆ 0x050140…050160 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 3b 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ * ;* ┆ 0x050160…050180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x050180…0501a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 3b 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆ * ;*************┆ 0x0501a0…0501c0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆********************************┆ 0x0501c0…0501e0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 0a 0d 0a 42 4f 4f 54 09 45 51 55 09 ┆******************* BOOT EQU ┆ 0x0501e0…050200 30 30 30 30 48 0d 0a 42 44 4f 53 09 45 51 55 09 30 30 30 35 48 0d 0a 46 43 42 31 09 45 51 55 09 ┆0000H BDOS EQU 0005H FCB1 EQU ┆ 0x050200…050220 (21, 0, 12) 53 45 54 43 46 09 09 3b 0d 0a 53 53 53 3a 09 43 41 4c 4c 09 4e 43 48 41 52 09 09 3b 0d 0a 09 43 ┆SETCF ; SSS: CALL NCHAR ; C┆ 0x050220…050240 50 49 09 27 53 27 09 09 3b 0d 0a 09 4a 4e 5a 09 53 43 41 4e 09 09 3b 0d 0a 09 43 41 4c 4c 09 4e ┆PI 'S' ; JNZ SCAN ; CALL N┆ 0x050240…050260 43 48 41 52 09 09 3b 0d 0a 09 43 50 49 09 27 20 27 09 09 3b 0d 0a 09 4a 4e 5a 09 53 43 41 4e 09 ┆CHAR ; CPI ' ' ; JNZ SCAN ┆ 0x050260…050280 09 3b 0d 0a 53 45 54 43 46 3a 09 4c 58 49 09 48 2c 53 46 09 09 3b 20 53 45 54 20 43 55 52 52 45 ┆ ; SETCF: LXI H,SF ; SET CURRE┆ 0x050280…0502a0 4e 54 20 46 4f 52 4d 41 54 3a 0d 0a 09 4d 56 49 09 44 2c 30 09 09 3b 0d 0a 09 4d 4f 56 09 45 2c ┆NT FORMAT: MVI D,0 ; MOV E,┆ 0x0502a0…0502c0 42 09 09 3b 0d 0a 09 44 41 44 09 44 09 09 3b 0d 0a 09 4d 4f 56 09 41 2c 42 09 09 3b 0d 0a 09 4f ┆B ; DAD D ; MOV A,B ; O┆ 0x0502c0…0502e0 52 41 09 41 09 09 3b 0d 0a 09 4c 44 41 09 53 44 52 49 56 09 09 3b 0d 0a 09 4a 5a 09 53 45 54 30 ┆RA A ; LDA SDRIV ; JZ SET0┆ 0x0502e0…050300 09 09 3b 0d 0a 09 4c 44 41 09 44 44 52 49 56 09 09 3b 0d 0a 53 45 54 30 3a 09 4f 52 41 09 41 09 ┆ ; LDA DDRIV ; SET0: ORA A ┆ 0x050300…050320 09 3b 0d 0a 09 4a 5a 09 53 45 54 31 09 09 3b 0d 0a 09 49 4e 58 09 48 09 09 3b 0d 0a 53 45 54 31 ┆ ; JZ SET1 ; INX H ; SET1┆ 0x050320…050340 3a 09 4d 4f 56 09 4d 2c 43 09 09 3b 0d 0a 09 4a 4d 50 09 53 43 41 4e 09 09 3b 20 47 4f 54 4f 20 ┆: MOV M,C ; JMP SCAN ; GOTO ┆ 0x050340…050360 53 43 41 4e 20 46 4f 52 20 4e 45 58 54 3b 0d 0a 0d 0a 53 45 54 46 44 46 3a 20 49 4e 09 53 57 31 ┆SCAN FOR NEXT; SETFDF: IN SW1┆ 0x050360…050380 09 09 3b 20 49 46 20 4d 41 58 49 20 46 4c 4f 50 50 59 20 54 48 45 4e 0d 0a 09 41 4e 49 09 30 38 ┆ ; IF MAXI FLOPPY THEN ANI 08┆ 0x050380…0503a0 30 48 09 09 3b 20 20 47 4f 54 4f 20 53 45 54 46 43 42 3b 0d 0a 09 4a 5a 09 53 45 54 46 43 42 09 ┆0H ; GOTO SETFCB; JZ SETFCB ┆ 0x0503a0…0503c0 09 3b 0d 0a 09 4c 48 4c 44 09 53 46 4f 52 4d 09 09 3b 20 52 45 53 45 54 20 46 4c 4f 50 50 59 20 ┆ ; LHLD SFORM ; RESET FLOPPY ┆ 0x0503c0…0503e0 46 4f 52 4d 41 54 53 3b 0d 0a 09 53 48 4c 44 09 53 46 09 09 3b 0d 0a 09 53 48 4c 44 09 44 46 09 ┆FORMATS; SHLD SF ; SHLD DF ┆ 0x0503e0…050400 09 3b 0d 0a 09 4a 4d 50 09 53 45 54 46 43 42 09 09 3b 20 47 4f 54 4f 20 53 45 54 20 46 43 42 3b ┆ ; JMP SETFCB ; GOTO SET FCB;┆ 0x050400…050420 (21, 0, 13) 9a 0c 01 14 00 00 00 00 8e 3e 00 00 00 c9 c3 1b 3e c3 1a 3e c3 22 3e c3 35 3e c9 af cd 31 13 c3 ┆ > > > "> 5> 1 ┆ 0x050420…050440 1b 3e 21 a7 3d cd 17 0c eb d4 4b 3e f1 77 23 22 a7 3d d1 e1 c9 21 a7 3d cd 51 17 cd 2c 17 eb 7a ┆ >! = K> w#" = ! = Q , z┆ 0x050440…050460 b3 ca 4b 3e 1b 36 1a 23 c3 3f 3e cd 96 12 21 4f 3c 7e 36 00 b7 fc 8e 12 21 a5 3d cd 17 0c d2 81 ┆ K> 6 # ?> !O<ü6 ! = ┆ 0x050460…050480 3e eb 11 6b 3d cd 2c 1a c2 77 3e 21 c1 39 22 07 38 cd 8e 12 c3 4b 3e 11 80 00 19 22 a5 3d c3 4e ┆> k= , w>! 9" 8 K> " = N┆ 0x050480…0504a0 3e cd 81 0b 2a ab 3d 22 a5 3d 22 a7 3d c9 9b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆> * =" =" = ┆ 0x0504a0…0504c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x2…] 0x050500…050520 44 af 2a 97 07 eb 2a 83 3c cd b5 44 c8 22 83 3c 21 87 3c 79 be 77 11 90 07 3a 95 07 c4 a9 44 11 ┆D * * < D " <! <y w : D ┆ 0x050520…050540 b7 07 21 bc 07 78 cd 68 44 c3 01 44 2a a1 07 eb 2a 81 3c cd b2 44 c8 22 81 3c 21 86 3c 7e 87 da ┆ ! x hD D* * < D " <! <ü ┆ 0x050540…050560 4c 44 b9 c2 4c 44 4e c5 cd 50 44 c1 21 2c 44 e5 cd 9c 44 21 89 3c 7e 36 00 b7 c2 70 44 21 88 3c ┆LD LDN PD !,D D! <ü6 pD! <┆ 0x050560…050580 78 ae 11 ad 07 21 b2 07 b7 f2 6d 44 eb c3 50 43 f5 21 88 3c 78 ae 70 78 11 a3 07 21 a8 07 fc 68 ┆x ! mD PC ! <x px ! h┆ 0x050580…0505a0 44 f1 d5 11 c1 07 fe 06 ca 97 44 11 c5 07 fe 07 ca 97 44 d1 c3 2c 42 cd 50 43 d1 c9 11 99 07 21 ┆D D D ,B PC !┆ 0x0505a0…0505c0 86 3c 79 be c8 77 3a 9f 07 81 4f cd 50 43 79 c3 2c 42 3a 9e 07 4f 7c b5 c8 cd 12 17 eb cd 68 17 ┆ <y w: O PCy ,B: Oø h ┆ 0x0505c0…0505e0 d2 c9 44 21 00 00 c3 ce 44 eb 1b cd 2c 17 79 4b b7 ca e0 44 79 b7 1f 4f d2 e0 44 1b 23 7a b3 c8 ┆ D! D , yK Dy O D #z ┆ 0x0505e0…050600 78 b7 fc 1b 17 f6 01 c9 9b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆x ┆ 0x050600…050620 (21, 0, 14) 30 30 35 43 48 0d 0a 53 46 43 42 09 45 51 55 09 46 43 42 31 0d 0a 46 43 42 32 09 45 51 55 09 30 ┆005CH SFCB EQU FCB1 FCB2 EQU 0┆ 0x050620…050640 30 36 43 48 0d 0a 44 42 55 46 46 20 20 20 45 51 55 09 30 30 38 30 48 0d 0a 54 50 41 09 45 51 55 ┆06CH DBUFF EQU 0080H TPA EQU┆ 0x050640…050660 09 30 31 30 30 48 0d 0a 0d 0a 57 42 4f 4f 54 20 20 20 45 51 55 20 20 20 20 20 31 0d 0a 46 44 46 ┆ 0100H WBOOT EQU 1 FDF┆ 0x050660…050680 4f 52 4d 20 20 45 51 55 20 20 20 20 20 35 32 0d 0a 53 57 31 20 20 20 20 20 45 51 55 20 20 20 20 ┆ORM EQU 52 SW1 EQU ┆ 0x050680…0506a0 20 31 34 48 0d 0a 43 4f 4e 53 49 46 09 45 51 55 09 31 0d 0a 50 52 49 4e 54 46 09 45 51 55 09 39 ┆ 14H CONSIF EQU 1 PRINTF EQU 9┆ 0x0506a0…0506c0 0d 0a 52 45 53 45 54 46 09 45 51 55 09 31 33 0d 0a 4f 50 45 4e 46 09 45 51 55 09 31 35 0d 0a 43 ┆ RESETF EQU 13 OPENF EQU 15 C┆ 0x0506c0…0506e0 4c 4f 53 45 46 09 45 51 55 09 31 36 0d 0a 44 45 4c 45 54 45 46 09 45 51 55 09 31 39 0d 0a 52 45 ┆LOSEF EQU 16 DELETEF EQU 19 RE┆ 0x0506e0…050700 41 44 46 09 45 51 55 09 32 30 0d 0a 57 52 49 54 45 46 09 45 51 55 09 32 31 0d 0a 4d 41 4b 45 46 ┆ADF EQU 20 WRITEF EQU 21 MAKEF┆ 0x050700…050720 09 45 51 55 09 32 32 0d 0a 43 55 52 44 46 09 45 51 55 09 32 35 0d 0a 53 44 4d 41 46 09 45 51 55 ┆ EQU 22 CURDF EQU 25 SDMAF EQU┆ 0x050720…050740 09 32 36 0d 0a 0d 0a 09 4f 52 47 09 54 50 41 0d 0a 0d 0a 09 50 4f 50 09 48 09 09 3b 20 53 41 56 ┆ 26 ORG TPA POP H ; SAV┆ 0x050740…050760 45 20 52 45 54 55 52 4e 20 54 4f 20 43 43 50 0d 0a 09 53 48 4c 44 09 43 43 50 52 45 54 09 09 3b ┆E RETURN TO CCP SHLD CCPRET ;┆ 0x050760…050780 0d 0a 09 4c 58 49 09 53 50 2c 53 54 41 43 4b 09 3b 20 53 45 54 20 4c 4f 43 41 4c 20 53 54 41 43 ┆ LXI SP,STACK ; SET LOCAL STAC┆ 0x050780…0507a0 4b 0d 0a 09 4c 58 49 09 48 2c 44 42 55 46 46 09 09 3b 20 50 41 44 20 43 4f 4d 4d 41 4e 44 20 42 ┆K LXI H,DBUFF ; PAD COMMAND B┆ 0x0507a0…0507c0 55 46 46 45 52 0d 0a 09 49 4e 52 09 4d 09 09 3b 0d 0a 09 4d 4f 56 09 45 2c 4d 09 09 3b 0d 0a 09 ┆UFFER INR M ; MOV E,M ; ┆ 0x0507c0…0507e0 49 4e 52 09 4d 09 09 3b 0d 0a 09 4d 56 49 09 44 2c 30 09 09 3b 0d 0a 09 44 41 44 09 44 09 09 3b ┆INR M ; MVI D,0 ; DAD D ;┆ 0x0507e0…050800 0d 0a 09 4d 56 49 09 4d 2c 27 20 27 09 09 3b 0d 0a 09 4c 48 4c 44 09 57 42 4f 4f 54 09 09 3b 20 ┆ MVI M,' ' ; LHLD WBOOT ; ┆ 0x050800…050820 (21, 0, 15) 30 30 35 43 48 0d 0a 53 46 43 42 09 45 51 55 09 46 43 42 31 0d 0a 46 43 42 32 09 45 51 55 09 30 ┆005CH SFCB EQU FCB1 FCB2 EQU 0┆ 0x050820…050840 30 36 43 48 0d 0a 44 42 55 46 46 20 20 20 45 51 55 09 30 30 38 30 48 0d 0a 54 50 41 09 45 51 55 ┆06CH DBUFF EQU 0080H TPA EQU┆ 0x050840…050860 09 30 31 30 30 48 0d 0a 0d 0a 57 42 4f 4f 54 20 20 20 45 51 55 20 20 20 20 20 31 0d 0a 46 44 46 ┆ 0100H WBOOT EQU 1 FDF┆ 0x050860…050880 4f 52 4d 20 20 45 51 55 20 20 20 20 20 35 32 0d 0a 53 57 31 20 20 20 20 20 45 51 55 20 20 20 20 ┆ORM EQU 52 SW1 EQU ┆ 0x050880…0508a0 20 31 34 48 0d 0a 43 4f 4e 53 49 46 09 45 51 55 09 31 0d 0a 50 52 49 4e 54 46 09 45 51 55 09 39 ┆ 14H CONSIF EQU 1 PRINTF EQU 9┆ 0x0508a0…0508c0 0d 0a 52 45 53 45 54 46 09 45 51 55 09 31 33 0d 0a 4f 50 45 4e 46 09 45 51 55 09 31 35 0d 0a 43 ┆ RESETF EQU 13 OPENF EQU 15 C┆ 0x0508c0…0508e0 4c 4f 53 45 46 09 45 51 55 09 31 36 0d 0a 44 45 4c 45 54 45 46 09 45 51 55 09 31 39 0d 0a 52 45 ┆LOSEF EQU 16 DELETEF EQU 19 RE┆ 0x0508e0…050900 41 44 46 09 45 51 55 09 32 30 0d 0a 57 52 49 54 45 46 09 45 51 55 09 32 31 0d 0a 4d 41 4b 45 46 ┆ADF EQU 20 WRITEF EQU 21 MAKEF┆ 0x050900…050920 09 45 51 55 09 32 32 0d 0a 43 55 52 44 46 09 45 51 55 09 32 35 0d 0a 53 44 4d 41 46 09 45 51 55 ┆ EQU 22 CURDF EQU 25 SDMAF EQU┆ 0x050920…050940 09 32 36 0d 0a 0d 0a 09 4f 52 47 09 54 50 41 0d 0a 0d 0a 09 50 4f 50 09 48 09 09 3b 20 53 41 56 ┆ 26 ORG TPA POP H ; SAV┆ 0x050940…050960 45 20 52 45 54 55 52 4e 20 54 4f 20 43 43 50 0d 0a 09 53 48 4c 44 09 43 43 50 52 45 54 09 09 3b ┆E RETURN TO CCP SHLD CCPRET ;┆ 0x050960…050980 0d 0a 09 4c 58 49 09 53 50 2c 53 54 41 43 4b 09 3b 20 53 45 54 20 4c 4f 43 41 4c 20 53 54 41 43 ┆ LXI SP,STACK ; SET LOCAL STAC┆ 0x050980…0509a0 4b 0d 0a 09 4c 58 49 09 48 2c 44 42 55 46 46 09 09 3b 20 50 41 44 20 43 4f 4d 4d 41 4e 44 20 42 ┆K LXI H,DBUFF ; PAD COMMAND B┆ 0x0509a0…0509c0 55 46 46 45 52 0d 0a 09 49 4e 52 09 4d 09 09 3b 0d 0a 09 4d 4f 56 09 45 2c 4d 09 09 3b 0d 0a 09 ┆UFFER INR M ; MOV E,M ; ┆ 0x0509c0…0509e0 49 4e 52 09 4d 09 09 3b 0d 0a 09 4d 56 49 09 44 2c 30 09 09 3b 0d 0a 09 44 41 44 09 44 09 09 3b ┆INR M ; MVI D,0 ; DAD D ;┆ 0x0509e0…050a00 0d 0a 09 4d 56 49 09 4d 2c 27 20 27 09 09 3b 0d 0a 09 4c 48 4c 44 09 57 42 4f 4f 54 09 09 3b 20 ┆ MVI M,' ' ; LHLD WBOOT ; ┆ 0x050a00…050a20 (21, 1, 1) 0d 0a 0d 0a 53 45 54 46 3a 09 58 43 48 47 09 09 09 3b 20 53 45 54 20 46 44 20 46 4f 52 4d 41 54 ┆ SETF: XCHG ; SET FD FORMAT┆ 0x050a20…050a40 53 3a 0d 0a 09 4c 48 4c 44 09 41 46 4f 52 4d 09 09 3b 0d 0a 09 4d 4f 56 09 4d 2c 45 09 09 3b 0d ┆S: LHLD AFORM ; MOV M,E ; ┆ 0x050a40…050a60 0a 09 49 4e 58 09 48 09 09 3b 0d 0a 09 4d 4f 56 09 4d 2c 44 09 09 3b 0d 0a 09 52 45 54 09 09 09 ┆ INX H ; MOV M,D ; RET ┆ 0x050a60…050a80 3b 0d 0a 0d 0a 47 45 54 44 44 3a 09 43 41 4c 4c 09 52 45 54 43 44 09 09 3b 20 47 45 54 20 44 45 ┆; GETDD: CALL RETCD ; GET DE┆ 0x050a80…050aa0 46 41 55 4c 54 20 44 52 49 56 45 3a 0d 0a 09 49 4e 52 09 41 09 09 3b 0d 0a 09 52 45 54 09 09 09 ┆FAULT DRIVE: INR A ; RET ┆ 0x050aa0…050ac0 3b 0d 0a 0d 0a 53 45 54 46 43 42 3a 09 4d 56 49 09 43 2c 31 36 09 09 3b 0d 0a 09 4c 58 49 09 44 ┆; SETFCB: MVI C,16 ; LXI D┆ 0x050ac0…050ae0 2c 46 43 42 32 09 09 3b 20 53 45 54 55 50 20 44 46 43 42 0d 0a 09 4c 58 49 09 48 2c 44 46 43 42 ┆,FCB2 ; SETUP DFCB LXI H,DFCB┆ 0x050ae0…050b00 09 09 3b 0d 0a 4d 46 43 42 3a 09 4c 44 41 58 09 44 09 09 3b 0d 0a 09 49 4e 58 09 44 09 09 3b 0d ┆ ; MFCB: LDAX D ; INX D ; ┆ 0x050b00…050b20 0a 09 4d 4f 56 09 4d 2c 41 09 09 3b 0d 0a 09 49 4e 58 09 48 09 09 3b 0d 0a 09 44 43 52 09 43 09 ┆ MOV M,A ; INX H ; DCR C ┆ 0x050b20…050b40 09 3b 0d 0a 09 4a 4e 5a 09 4d 46 43 42 09 09 3b 0d 0a 09 58 52 41 09 41 09 09 3b 0d 0a 09 53 54 ┆ ; JNZ MFCB ; XRA A ; ST┆ 0x050b40…050b60 41 09 44 46 43 42 43 52 09 09 3b 20 43 55 52 52 45 4e 54 20 52 45 43 28 44 46 43 42 29 3a 3d 30 ┆A DFCBCR ; CURRENT REC(DFCB):=0┆ 0x050b60…050b80 3b 0d 0a 09 4c 58 49 09 44 2c 53 57 4f 50 44 09 09 3b 0d 0a 09 43 41 4c 4c 09 50 52 49 4e 54 09 ┆; LXI D,SWOPD ; CALL PRINT ┆ 0x050b80…050ba0 09 3b 0d 0a 09 43 41 4c 4c 09 43 4f 4e 53 49 09 09 3b 0d 0a 09 4c 48 4c 44 09 53 46 09 09 3b 0d ┆ ; CALL CONSI ; LHLD SF ; ┆ 0x050ba0…050bc0 0a 09 43 41 4c 4c 09 53 45 54 46 09 09 3b 20 53 45 54 20 53 4f 55 52 43 45 20 46 4f 52 4d 41 54 ┆ CALL SETF ; SET SOURCE FORMAT┆ 0x050bc0…050be0 0d 0a 09 43 41 4c 4c 09 52 45 53 45 54 09 09 3b 0d 0a 09 4c 58 49 09 44 2c 53 46 43 42 09 09 3b ┆ CALL RESET ; LXI D,SFCB ;┆ 0x050be0…050c00 0d 0a 09 43 41 4c 4c 09 4f 50 45 4e 09 09 3b 20 4f 50 45 4e 20 53 4f 55 52 43 45 20 46 49 4c 45 ┆ CALL OPEN ; OPEN SOURCE FILE┆ 0x050c00…050c20 (21, 1, 2) 0d 0a 0d 0a 53 45 54 46 3a 09 58 43 48 47 09 09 09 3b 20 53 45 54 20 46 44 20 46 4f 52 4d 41 54 ┆ SETF: XCHG ; SET FD FORMAT┆ 0x050c20…050c40 53 3a 0d 0a 09 4c 48 4c 44 09 41 46 4f 52 4d 09 09 3b 0d 0a 09 4d 4f 56 09 4d 2c 44 09 09 3b 0d ┆S: LHLD AFORM ; MOV M,D ; ┆ 0x050c40…050c60 0a 09 49 4e 58 09 48 09 09 3b 0d 0a 09 4d 4f 56 09 4d 2c 45 09 09 3b 0d 0a 09 52 45 54 09 09 09 ┆ INX H ; MOV M,E ; RET ┆ 0x050c60…050c80 3b 0d 0a 0d 0a 47 45 54 44 44 3a 09 43 41 4c 4c 09 52 45 54 43 44 09 09 3b 20 47 45 54 20 44 45 ┆; GETDD: CALL RETCD ; GET DE┆ 0x050c80…050ca0 46 41 55 4c 54 20 44 52 49 56 45 3a 0d 0a 09 49 4e 52 09 41 09 09 3b 0d 0a 09 52 45 54 09 09 09 ┆FAULT DRIVE: INR A ; RET ┆ 0x050ca0…050cc0 3b 0d 0a 0d 0a 53 45 54 46 43 42 3a 09 4d 56 49 09 43 2c 31 36 09 09 3b 0d 0a 09 4c 58 49 09 44 ┆; SETFCB: MVI C,16 ; LXI D┆ 0x050cc0…050ce0 2c 46 43 42 32 09 09 3b 20 53 45 54 55 50 20 44 46 43 42 0d 0a 09 4c 58 49 09 48 2c 44 46 43 42 ┆,FCB2 ; SETUP DFCB LXI H,DFCB┆ 0x050ce0…050d00 09 09 3b 0d 0a 4d 46 43 42 3a 09 4c 44 41 58 09 44 09 09 3b 0d 0a 09 49 4e 58 09 44 09 09 3b 0d ┆ ; MFCB: LDAX D ; INX D ; ┆ 0x050d00…050d20 0a 09 4d 4f 56 09 4d 2c 41 09 09 3b 0d 0a 09 49 4e 58 09 48 09 09 3b 0d 0a 09 44 43 52 09 43 09 ┆ MOV M,A ; INX H ; DCR C ┆ 0x050d20…050d40 09 3b 0d 0a 09 4a 4e 5a 09 4d 46 43 42 09 09 3b 0d 0a 09 58 52 41 09 41 09 09 3b 0d 0a 09 53 54 ┆ ; JNZ MFCB ; XRA A ; ST┆ 0x050d40…050d60 41 09 44 46 43 42 43 52 09 09 3b 20 43 55 52 52 45 4e 54 20 52 45 43 28 44 46 43 42 29 3a 3d 30 ┆A DFCBCR ; CURRENT REC(DFCB):=0┆ 0x050d60…050d80 3b 0d 0a 09 4c 58 49 09 44 2c 53 57 4f 50 44 09 09 3b 0d 0a 09 43 41 4c 4c 09 50 52 49 4e 54 09 ┆; LXI D,SWOPD ; CALL PRINT ┆ 0x050d80…050da0 09 3b 0d 0a 09 43 41 4c 4c 09 43 4f 4e 53 49 09 09 3b 0d 0a 09 4c 48 4c 44 09 53 46 09 09 3b 0d ┆ ; CALL CONSI ; LHLD SF ; ┆ 0x050da0…050dc0 0a 09 43 41 4c 4c 09 53 45 54 46 09 09 3b 20 53 45 54 20 53 4f 55 52 43 45 20 46 4f 52 4d 41 54 ┆ CALL SETF ; SET SOURCE FORMAT┆ 0x050dc0…050de0 0d 0a 09 43 41 4c 4c 09 52 45 53 45 54 09 09 3b 0d 0a 09 4c 58 49 09 44 2c 53 46 43 42 09 09 3b ┆ CALL RESET ; LXI D,SFCB ;┆ 0x050de0…050e00 0d 0a 09 43 41 4c 4c 09 4f 50 45 4e 09 09 3b 20 4f 50 45 4e 20 53 4f 55 52 43 45 20 46 49 4c 45 ┆ CALL OPEN ; OPEN SOURCE FILE┆ 0x050e00…050e20 (21, 1, 3) 20 20 20 20 20 20 3b 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆ ;*************************┆ 0x050e20…050e40 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆********************************┆ 0x050e40…050e60 2a 2a 2a 2a 2a 2a 2a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 30 30 30 ┆******* 0000┆ 0x050e60…050e80 20 3d 20 20 20 20 20 20 20 20 20 42 4f 4f 54 09 45 51 55 09 30 30 30 30 48 0d 0a 20 30 30 30 35 ┆ = BOOT EQU 0000H 0005┆ 0x050e80…050ea0 20 3d 20 20 20 20 20 20 20 20 20 42 44 4f 53 09 45 51 55 09 30 30 30 35 48 0d 0a 20 30 30 35 43 ┆ = BDOS EQU 0005H 005C┆ 0x050ea0…050ec0 20 3d 20 20 20 20 20 20 20 20 20 46 43 42 31 09 45 51 55 09 30 30 35 43 48 0d 0a 20 30 30 35 43 ┆ = FCB1 EQU 005CH 005C┆ 0x050ec0…050ee0 20 3d 20 20 20 20 20 20 20 20 20 53 46 43 42 09 45 51 55 09 46 43 42 31 0d 0a 20 30 30 36 43 20 ┆ = SFCB EQU FCB1 006C ┆ 0x050ee0…050f00 3d 20 20 20 20 20 20 20 20 20 46 43 42 32 09 45 51 55 09 30 30 36 43 48 0d 0a 20 30 30 38 30 20 ┆= FCB2 EQU 006CH 0080 ┆ 0x050f00…050f20 3d 20 20 20 20 20 20 20 20 20 44 42 55 46 46 20 20 20 45 51 55 09 30 30 38 30 48 0d 0a 20 30 31 ┆= DBUFF EQU 0080H 01┆ 0x050f20…050f40 30 30 20 3d 20 20 20 20 20 20 20 20 20 54 50 41 09 45 51 55 09 30 31 30 30 48 0d 0a 20 20 20 20 ┆00 = TPA EQU 0100H ┆ 0x050f40…050f60 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 30 30 31 20 3d 20 20 20 20 20 20 20 20 20 57 42 ┆ 0001 = WB┆ 0x050f60…050f80 4f 4f 54 20 20 20 45 51 55 20 20 20 20 20 31 0d 0a 20 30 30 33 34 20 3d 20 20 20 20 20 20 20 20 ┆OOT EQU 1 0034 = ┆ 0x050f80…050fa0 20 46 44 46 4f 52 4d 20 20 45 51 55 20 20 20 20 20 35 32 0d 0a 20 30 30 31 34 20 3d 20 20 20 20 ┆ FDFORM EQU 52 0014 = ┆ 0x050fa0…050fc0 20 20 20 20 20 53 57 31 20 20 20 20 20 45 51 55 20 20 20 20 20 31 34 48 0d 0a 20 30 30 30 31 20 ┆ SW1 EQU 14H 0001 ┆ 0x050fc0…050fe0 3d 20 20 20 20 20 20 20 20 20 43 4f 4e 53 49 46 09 45 51 55 09 31 0d 0a 20 30 30 30 39 20 3d 20 ┆= CONSIF EQU 1 0009 = ┆ 0x050fe0…051000 20 20 20 20 20 20 20 20 50 52 49 4e 54 46 09 45 51 55 09 39 0d 0a 20 30 30 30 44 20 3d 20 20 20 ┆ PRINTF EQU 9 000D = ┆ 0x051000…051020 (21, 1, 4) 46 09 09 3b 20 47 45 54 20 4e 45 58 54 20 43 48 41 52 3a 0d 0a 20 30 31 35 31 20 33 35 20 20 20 ┆F ; GET NEXT CHAR: 0151 35 ┆ 0x051020…051040 20 20 20 20 20 09 44 43 52 09 4d 09 09 3b 0d 0a 20 30 31 35 32 20 43 41 43 44 30 31 20 20 20 20 ┆ DCR M ; 0152 CACD01 ┆ 0x051040…051060 09 4a 5a 09 53 45 54 46 44 46 09 09 3b 20 49 46 20 45 4f 4c 20 54 48 45 4e 20 45 58 49 54 0d 0a ┆ JZ SETFDF ; IF EOL THEN EXIT ┆ 0x051060…051080 20 30 31 35 35 20 32 41 46 43 30 33 20 20 20 20 09 4c 48 4c 44 09 43 41 44 44 52 09 09 3b 0d 0a ┆ 0155 2AFC03 LHLD CADDR ; ┆ 0x051080…0510a0 20 30 31 35 38 20 37 45 20 20 20 20 20 20 20 20 09 4d 4f 56 09 41 2c 4d 09 09 3b 20 20 20 20 20 ┆ 0158 7E MOV A,M ; ┆ 0x0510a0…0510c0 20 20 20 45 4c 53 45 20 50 49 43 4b 55 50 20 43 48 41 52 3b 0d 0a 20 30 31 35 39 20 32 33 20 20 ┆ ELSE PICKUP CHAR; 0159 23 ┆ 0x0510c0…0510e0 20 20 20 20 20 20 09 49 4e 58 09 48 09 09 3b 0d 0a 20 30 31 35 41 20 32 32 46 43 30 33 20 20 20 ┆ INX H ; 015A 22FC03 ┆ 0x0510e0…051100 20 09 53 48 4c 44 09 43 41 44 44 52 09 09 3b 0d 0a 20 30 31 35 44 20 43 39 20 20 20 20 20 20 20 ┆ SHLD CADDR ; 015D C9 ┆ 0x051100…051120 20 09 52 45 54 09 09 20 09 3b 20 52 45 54 55 52 4e 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 ┆ RET ; RETURN; ┆ 0x051120…051140 20 20 20 20 0d 0a 20 30 31 35 45 20 30 31 30 30 30 30 20 20 20 20 53 43 41 4e 3a 09 4c 58 49 09 ┆ 015E 010000 SCAN: LXI ┆ 0x051140…051160 42 2c 30 09 09 3b 20 44 52 49 56 45 2c 44 45 4e 53 49 54 59 3a 3d 53 2c 53 53 0d 0a 20 30 31 36 ┆B,0 ; DRIVE,DENSITY:=S,SS 016┆ 0x051160…051180 31 20 43 44 34 45 30 31 20 20 20 20 09 43 41 4c 4c 09 4e 43 48 41 52 09 09 3b 0d 0a 20 30 31 36 ┆1 CD4E01 CALL NCHAR ; 016┆ 0x051180…0511a0 34 20 46 45 35 33 20 20 20 20 20 20 09 43 50 49 09 27 53 27 09 09 3b 20 53 45 41 52 43 48 20 53 ┆4 FE53 CPI 'S' ; SEARCH S┆ 0x0511a0…0511c0 20 4f 52 20 44 20 44 52 49 56 45 3a 0d 0a 20 30 31 36 36 20 43 41 37 30 30 31 20 20 20 20 09 4a ┆ OR D DRIVE: 0166 CA7001 J┆ 0x0511c0…0511e0 5a 09 53 43 4f 4c 09 09 3b 0d 0a 20 30 31 36 39 20 46 45 34 34 20 20 20 20 20 20 09 43 50 49 09 ┆Z SCOL ; 0169 FE44 CPI ┆ 0x0511e0…051200 27 44 27 09 09 3b 0d 0a 20 30 31 36 42 20 43 32 35 45 30 31 20 20 20 20 09 4a 4e 5a 09 53 43 41 ┆'D' ; 016B C25E01 JNZ SCA┆ 0x051200…051220 (21, 1, 5) 0d 0a 09 4c 58 49 09 44 2c 4e 4f 46 49 4c 45 09 3b 0d 0a 09 49 4e 52 09 41 09 09 3b 0d 0a 09 43 ┆ LXI D,NOFILE ; INR A ; C┆ 0x051220…051240 5a 09 46 49 4e 49 53 09 09 3b 0d 0a 09 4c 58 49 09 44 2c 42 55 46 09 09 3b 0d 0a 09 4d 56 49 09 ┆Z FINIS ; LXI D,BUF ; MVI ┆ 0x051240…051260 41 2c 30 09 09 3b 20 53 45 43 54 4f 52 43 4f 55 4e 54 3a 3d 20 31 3b 0d 0a 09 53 54 41 09 53 45 ┆A,0 ; SECTORCOUNT:= 1; STA SE┆ 0x051260…051280 43 43 4e 54 09 09 3b 0d 0a 09 50 55 53 48 09 44 09 09 3b 0d 0a 09 43 41 4c 4c 09 53 45 54 44 4d ┆CCNT ; PUSH D ; CALL SETDM┆ 0x051280…0512a0 41 09 09 3b 20 53 45 54 20 42 55 46 46 45 52 20 41 44 44 52 45 53 53 0d 0a 52 44 41 54 41 3a 09 ┆A ; SET BUFFER ADDRESS RDATA: ┆ 0x0512a0…0512c0 4c 58 49 09 44 2c 53 46 43 42 09 09 3b 0d 0a 09 43 41 4c 4c 09 52 45 41 44 09 09 3b 0d 0a 09 4f ┆LXI D,SFCB ; CALL READ ; O┆ 0x0512c0…0512e0 52 41 09 41 09 09 3b 20 52 45 41 44 20 52 45 43 4f 52 44 3a 0d 0a 09 4a 4e 5a 09 45 4f 46 49 4c ┆RA A ; READ RECORD: JNZ EOFIL┆ 0x0512e0…051300 45 09 09 3b 0d 0a 09 50 4f 50 09 44 09 09 3b 20 49 46 20 45 4f 46 20 54 48 45 4e 20 47 4f 54 4f ┆E ; POP D ; IF EOF THEN GOTO┆ 0x051300…051320 20 43 48 41 4e 47 45 20 44 49 53 4b 3b 0d 0a 09 4c 58 49 09 48 2c 31 32 38 09 09 3b 0d 0a 09 44 ┆ CHANGE DISK; LXI H,128 ; D┆ 0x051320…051340 41 44 09 44 09 09 3b 0d 0a 09 58 43 48 47 09 09 09 3b 0d 0a 09 50 55 53 48 09 44 09 09 3b 0d 0a ┆AD D ; XCHG ; PUSH D ; ┆ 0x051340…051360 09 43 41 4c 4c 09 53 45 54 44 4d 41 09 09 3b 20 53 45 54 20 42 55 46 41 44 52 0d 0a 09 4c 58 49 ┆ CALL SETDMA ; SET BUFADR LXI┆ 0x051360…051380 09 48 2c 53 45 43 43 4e 54 09 3b 0d 0a 09 4c 58 49 09 44 2c 54 4f 4f 42 49 47 09 3b 0d 0a 09 49 ┆ H,SECCNT ; LXI D,TOOBIG ; I┆ 0x051380…0513a0 4e 52 09 4d 09 09 3b 20 53 45 43 54 4f 52 43 4f 55 4e 54 3a 3d 53 45 43 54 4f 52 43 4f 55 4e 54 ┆NR M ; SECTORCOUNT:=SECTORCOUNT┆ 0x0513a0…0513c0 2b 31 3b 0d 0a 09 43 5a 09 46 49 4e 49 53 09 09 3b 20 49 46 20 46 49 4c 45 20 54 4f 4f 20 42 49 ┆+1; CZ FINIS ; IF FILE TOO BI┆ 0x0513c0…0513e0 47 20 46 4f 52 20 42 55 46 3a 20 45 58 49 54 3b 0d 0a 09 4a 4d 50 09 52 44 41 54 41 09 09 3b 20 ┆G FOR BUF: EXIT; JMP RDATA ; ┆ 0x0513e0…051400 47 4f 54 4f 20 52 45 41 44 20 4e 45 58 54 3b 0d 0a 45 4f 46 49 4c 45 3a 09 50 4f 50 09 44 09 09 ┆GOTO READ NEXT; EOFILE: POP D ┆ 0x051400…051420 (21, 1, 6) 0d 0a 09 4c 58 49 09 44 2c 4e 4f 46 49 4c 45 09 3b 0d 0a 09 49 4e 52 09 41 09 09 3b 0d 0a 09 43 ┆ LXI D,NOFILE ; INR A ; C┆ 0x051420…051440 5a 09 46 49 4e 49 53 09 09 3b 0d 0a 09 4c 58 49 09 44 2c 42 55 46 09 09 3b 0d 0a 09 4d 56 49 09 ┆Z FINIS ; LXI D,BUF ; MVI ┆ 0x051440…051460 41 2c 30 09 09 3b 20 53 45 43 54 4f 52 43 4f 55 4e 54 3a 3d 20 31 3b 0d 0a 09 53 54 41 09 53 45 ┆A,0 ; SECTORCOUNT:= 1; STA SE┆ 0x051460…051480 43 43 4e 54 09 09 3b 0d 0a 09 50 55 53 48 09 44 09 09 3b 0d 0a 09 43 41 4c 4c 09 53 45 54 44 4d ┆CCNT ; PUSH D ; CALL SETDM┆ 0x051480…0514a0 41 09 09 3b 20 53 45 54 20 42 55 46 46 45 52 20 41 44 44 52 45 53 53 0d 0a 52 44 41 54 41 3a 09 ┆A ; SET BUFFER ADDRESS RDATA: ┆ 0x0514a0…0514c0 4c 58 49 09 44 2c 53 46 43 42 09 09 3b 0d 0a 09 43 41 4c 4c 09 52 45 41 44 09 09 3b 0d 0a 09 4f ┆LXI D,SFCB ; CALL READ ; O┆ 0x0514c0…0514e0 52 41 09 41 09 09 3b 20 52 45 41 44 20 52 45 43 4f 52 44 3a 0d 0a 09 4a 4e 5a 09 45 4f 46 49 4c ┆RA A ; READ RECORD: JNZ EOFIL┆ 0x0514e0…051500 45 09 09 3b 0d 0a 09 50 4f 50 09 44 09 09 3b 20 49 46 20 45 4f 46 20 54 48 45 4e 20 47 4f 54 4f ┆E ; POP D ; IF EOF THEN GOTO┆ 0x051500…051520 20 43 48 41 4e 47 45 20 44 49 53 4b 3b 0d 0a 09 4c 58 49 09 48 2c 31 32 38 09 09 3b 0d 0a 09 44 ┆ CHANGE DISK; LXI H,128 ; D┆ 0x051520…051540 41 44 09 44 09 09 3b 0d 0a 09 58 43 48 47 09 09 09 3b 0d 0a 09 50 55 53 48 09 44 09 09 3b 0d 0a ┆AD D ; XCHG ; PUSH D ; ┆ 0x051540…051560 09 43 41 4c 4c 09 53 45 54 44 4d 41 09 09 3b 20 53 45 54 20 42 55 46 41 44 52 0d 0a 09 4c 58 49 ┆ CALL SETDMA ; SET BUFADR LXI┆ 0x051560…051580 09 48 2c 53 45 43 43 4e 54 09 3b 0d 0a 09 4c 58 49 09 44 2c 54 4f 4f 42 49 47 09 3b 0d 0a 09 49 ┆ H,SECCNT ; LXI D,TOOBIG ; I┆ 0x051580…0515a0 4e 52 09 4d 09 09 3b 20 53 45 43 54 4f 52 43 4f 55 4e 54 3a 3d 53 45 43 54 4f 52 43 4f 55 4e 54 ┆NR M ; SECTORCOUNT:=SECTORCOUNT┆ 0x0515a0…0515c0 2b 31 3b 0d 0a 09 43 5a 09 46 49 4e 49 53 09 09 3b 20 49 46 20 46 49 4c 45 20 54 4f 4f 20 42 49 ┆+1; CZ FINIS ; IF FILE TOO BI┆ 0x0515c0…0515e0 47 20 46 4f 52 20 42 55 46 3a 20 45 58 49 54 3b 0d 0a 09 4a 4d 50 09 52 44 41 54 41 09 09 3b 20 ┆G FOR BUF: EXIT; JMP RDATA ; ┆ 0x0515e0…051600 47 4f 54 4f 20 52 45 41 44 20 4e 45 58 54 3b 0d 0a 45 4f 46 49 4c 45 3a 09 50 4f 50 09 44 09 09 ┆GOTO READ NEXT; EOFILE: POP D ┆ 0x051600…051620 (21, 1, 7) 20 20 20 20 20 20 52 45 53 45 54 46 09 45 51 55 09 31 33 0d 0a 20 30 30 30 46 20 3d 20 20 20 20 ┆ RESETF EQU 13 000F = ┆ 0x051620…051640 20 20 20 20 20 4f 50 45 4e 46 09 45 51 55 09 31 35 0d 0a 20 30 30 31 30 20 3d 20 20 20 20 20 20 ┆ OPENF EQU 15 0010 = ┆ 0x051640…051660 20 20 20 43 4c 4f 53 45 46 09 45 51 55 09 31 36 0d 0a 20 30 30 31 33 20 3d 20 20 20 20 20 20 20 ┆ CLOSEF EQU 16 0013 = ┆ 0x051660…051680 20 20 44 45 4c 45 54 45 46 09 45 51 55 09 31 39 0d 0a 20 30 30 31 34 20 3d 20 20 20 20 20 20 20 ┆ DELETEF EQU 19 0014 = ┆ 0x051680…0516a0 20 20 52 45 41 44 46 09 45 51 55 09 32 30 0d 0a 20 30 30 31 35 20 3d 20 20 20 20 20 20 20 20 20 ┆ READF EQU 20 0015 = ┆ 0x0516a0…0516c0 57 52 49 54 45 46 09 45 51 55 09 32 31 0d 0a 20 30 30 31 36 20 3d 20 20 20 20 20 20 20 20 20 4d ┆WRITEF EQU 21 0016 = M┆ 0x0516c0…0516e0 41 4b 45 46 09 45 51 55 09 32 32 0d 0a 20 30 30 31 39 20 3d 20 20 20 20 20 20 20 20 20 43 55 52 ┆AKEF EQU 22 0019 = CUR┆ 0x0516e0…051700 44 46 09 45 51 55 09 32 35 0d 0a 20 30 30 31 41 20 3d 20 20 20 20 20 20 20 20 20 53 44 4d 41 46 ┆DF EQU 25 001A = SDMAF┆ 0x051700…051720 09 45 51 55 09 32 36 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 31 30 30 ┆ EQU 26 0100┆ 0x051720…051740 20 20 20 20 20 20 20 20 20 20 20 09 4f 52 47 09 54 50 41 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ┆ ORG TPA ┆ 0x051740…051760 20 20 20 20 20 0d 0a 20 30 31 30 30 20 45 31 20 20 20 20 20 20 20 20 09 50 4f 50 09 48 09 09 3b ┆ 0100 E1 POP H ;┆ 0x051760…051780 20 53 41 56 45 20 52 45 54 55 52 4e 20 54 4f 20 43 43 50 0d 0a 20 30 31 30 31 20 32 32 30 35 30 ┆ SAVE RETURN TO CCP 0101 22050┆ 0x051780…0517a0 34 20 20 20 20 09 53 48 4c 44 09 43 43 50 52 45 54 09 09 3b 0d 0a 20 30 31 30 34 20 33 31 34 37 ┆4 SHLD CCPRET ; 0104 3147┆ 0x0517a0…0517c0 30 34 20 20 20 20 09 4c 58 49 09 53 50 2c 53 54 41 43 4b 09 3b 20 53 45 54 20 4c 4f 43 41 4c 20 ┆04 LXI SP,STACK ; SET LOCAL ┆ 0x0517c0…0517e0 53 54 41 43 4b 0d 0a 20 30 31 30 37 20 32 31 38 30 30 30 20 20 20 20 09 4c 58 49 09 48 2c 44 42 ┆STACK 0107 218000 LXI H,DB┆ 0x0517e0…051800 55 46 46 09 09 3b 20 50 41 44 20 43 4f 4d 4d 41 4e 44 20 42 55 46 46 45 52 0d 0a 20 30 31 30 41 ┆UFF ; PAD COMMAND BUFFER 010A┆ 0x051800…051820 (21, 1, 8) 4e 09 09 3b 0d 0a 20 30 31 36 45 20 30 36 30 32 20 20 20 20 20 20 09 4d 56 49 09 42 2c 32 09 09 ┆N ; 016E 0602 MVI B,2 ┆ 0x051820…051840 3b 0d 0a 20 30 31 37 30 20 43 44 34 45 30 31 20 20 20 20 53 43 4f 4c 3a 09 43 41 4c 4c 09 4e 43 ┆; 0170 CD4E01 SCOL: CALL NC┆ 0x051840…051860 48 41 52 09 09 3b 20 53 45 41 52 43 48 20 43 4f 4c 4f 4e 3a 0d 0a 20 30 31 37 33 20 46 45 33 41 ┆HAR ; SEARCH COLON: 0173 FE3A┆ 0x051860…051880 20 20 20 20 20 20 09 43 50 49 09 27 3a 27 09 09 3b 0d 0a 20 30 31 37 35 20 43 32 35 45 30 31 20 ┆ CPI ':' ; 0175 C25E01 ┆ 0x051880…0518a0 20 20 20 09 4a 4e 5a 09 53 43 41 4e 09 09 3b 0d 0a 20 30 31 37 38 20 43 44 34 45 30 31 20 20 20 ┆ JNZ SCAN ; 0178 CD4E01 ┆ 0x0518a0…0518c0 20 09 43 41 4c 4c 09 4e 43 48 41 52 09 09 3b 20 53 45 41 52 43 48 20 45 51 55 41 4c 3a 0d 0a 20 ┆ CALL NCHAR ; SEARCH EQUAL: ┆ 0x0518c0…0518e0 30 31 37 42 20 46 45 33 44 20 20 20 20 20 20 09 43 50 49 09 27 3d 27 09 09 3b 0d 0a 20 30 31 37 ┆017B FE3D CPI '=' ; 017┆ 0x0518e0…051900 44 20 43 32 35 45 30 31 20 20 20 20 09 4a 4e 5a 09 53 43 41 4e 09 09 3b 0d 0a 20 30 31 38 30 20 ┆D C25E01 JNZ SCAN ; 0180 ┆ 0x051900…051920 43 44 34 45 30 31 20 20 20 20 09 43 41 4c 4c 09 4e 43 48 41 52 09 09 3b 20 53 45 41 52 43 48 20 ┆CD4E01 CALL NCHAR ; SEARCH ┆ 0x051920…051940 44 45 4e 53 49 54 59 3a 0d 0a 20 30 31 38 33 20 46 45 35 33 20 20 20 20 20 20 09 43 50 49 09 27 ┆DENSITY: 0183 FE53 CPI '┆ 0x051940…051960 53 27 09 09 3b 0d 0a 20 30 31 38 35 20 43 41 41 32 30 31 20 20 20 20 09 4a 5a 09 53 53 53 09 09 ┆S' ; 0185 CAA201 JZ SSS ┆ 0x051960…051980 3b 0d 0a 20 30 31 38 38 20 46 45 34 34 20 20 20 20 20 20 09 43 50 49 09 27 44 27 09 09 3b 0d 0a ┆; 0188 FE44 CPI 'D' ; ┆ 0x051980…0519a0 20 30 31 38 41 20 43 32 35 45 30 31 20 20 20 20 09 4a 4e 5a 09 53 43 41 4e 09 09 3b 0d 0a 20 30 ┆ 018A C25E01 JNZ SCAN ; 0┆ 0x0519a0…0519c0 31 38 44 20 43 44 34 45 30 31 20 20 20 20 09 43 41 4c 4c 09 4e 43 48 41 52 09 09 3b 0d 0a 20 30 ┆18D CD4E01 CALL NCHAR ; 0┆ 0x0519c0…0519e0 31 39 30 20 46 45 34 34 20 20 20 20 20 20 09 43 50 49 09 27 44 27 09 09 3b 0d 0a 20 30 31 39 32 ┆190 FE44 CPI 'D' ; 0192┆ 0x0519e0…051a00 20 43 32 35 45 30 31 20 20 20 20 09 4a 4e 5a 09 53 43 41 4e 09 09 3b 0d 0a 20 30 31 39 35 20 43 ┆ C25E01 JNZ SCAN ; 0195 C┆ 0x051a00…051a20 (21, 1, 9) 3b 0d 0a 09 4c 58 49 09 44 2c 53 57 4f 50 53 09 09 3b 20 43 48 41 4e 47 45 20 44 49 53 4b 3a 0d ┆; LXI D,SWOPS ; CHANGE DISK: ┆ 0x051a20…051a40 0a 09 43 41 4c 4c 09 50 52 49 4e 54 09 09 3b 0d 0a 09 43 41 4c 4c 09 43 4f 4e 53 49 09 09 3b 20 ┆ CALL PRINT ; CALL CONSI ; ┆ 0x051a40…051a60 57 41 49 54 3b 0d 0a 09 4c 48 4c 44 09 44 46 09 09 3b 0d 0a 09 43 41 4c 4c 09 53 45 54 46 09 09 ┆WAIT; LHLD DF ; CALL SETF ┆ 0x051a60…051a80 3b 0d 0a 09 43 41 4c 4c 09 52 45 53 45 54 09 09 3b 20 52 45 53 45 54 20 44 52 49 56 45 53 3b 0d ┆; CALL RESET ; RESET DRIVES; ┆ 0x051a80…051aa0 0a 09 4c 58 49 09 44 2c 44 46 43 42 09 09 3b 0d 0a 09 43 41 4c 4c 09 44 45 4c 45 54 45 09 09 3b ┆ LXI D,DFCB ; CALL DELETE ;┆ 0x051aa0…051ac0 20 44 45 4c 45 54 45 20 44 45 53 54 49 4e 41 54 49 4f 4e 20 46 49 4c 45 3b 0d 0a 09 4c 58 49 09 ┆ DELETE DESTINATION FILE; LXI ┆ 0x051ac0…051ae0 44 2c 44 46 43 42 09 09 3b 0d 0a 09 43 41 4c 4c 09 4d 41 4b 45 09 09 3b 20 43 52 45 41 54 45 20 ┆D,DFCB ; CALL MAKE ; CREATE ┆ 0x051ae0…051b00 44 45 53 54 49 4e 41 54 49 4f 4e 20 46 49 4c 45 3b 0d 0a 09 4c 58 49 09 44 2c 4e 4f 44 49 52 09 ┆DESTINATION FILE; LXI D,NODIR ┆ 0x051b00…051b20 09 3b 0d 0a 09 49 4e 52 09 41 09 09 3b 0d 0a 09 43 5a 09 46 49 4e 49 53 09 09 3b 0d 0a 09 4c 58 ┆ ; INR A ; CZ FINIS ; LX┆ 0x051b20…051b40 49 09 44 2c 42 55 46 09 09 3b 0d 0a 09 50 55 53 48 09 44 09 09 3b 0d 0a 09 43 41 4c 4c 09 53 45 ┆I D,BUF ; PUSH D ; CALL SE┆ 0x051b40…051b60 54 44 4d 41 09 09 3b 20 53 45 54 20 42 55 46 46 45 52 20 41 44 44 52 45 53 53 0d 0a 57 44 41 54 ┆TDMA ; SET BUFFER ADDRESS WDAT┆ 0x051b60…051b80 41 3a 09 4c 58 49 09 44 2c 44 46 43 42 09 09 3b 0d 0a 09 43 41 4c 4c 09 57 52 49 54 45 09 09 3b ┆A: LXI D,DFCB ; CALL WRITE ;┆ 0x051b80…051ba0 20 57 52 49 54 45 20 52 45 43 4f 52 44 3a 0d 0a 09 4c 58 49 09 44 2c 53 50 41 43 45 09 09 3b 0d ┆ WRITE RECORD: LXI D,SPACE ; ┆ 0x051ba0…051bc0 0a 09 4f 52 41 09 41 09 09 3b 0d 0a 09 43 4e 5a 09 46 49 4e 49 53 09 09 3b 0d 0a 09 50 4f 50 09 ┆ ORA A ; CNZ FINIS ; POP ┆ 0x051bc0…051be0 44 09 09 3b 20 55 50 44 41 54 45 20 42 55 46 41 44 52 0d 0a 09 4c 58 49 09 48 2c 31 32 38 09 09 ┆D ; UPDATE BUFADR LXI H,128 ┆ 0x051be0…051c00 3b 0d 0a 09 44 41 44 09 44 09 09 3b 0d 0a 09 58 43 48 47 09 09 09 3b 0d 0a 09 50 55 53 48 09 44 ┆; DAD D ; XCHG ; PUSH D┆ 0x051c00…051c20 (21, 1, 10) 3b 0d 0a 09 4c 58 49 09 44 2c 53 57 4f 50 53 09 09 3b 20 43 48 41 4e 47 45 20 44 49 53 4b 3a 0d ┆; LXI D,SWOPS ; CHANGE DISK: ┆ 0x051c20…051c40 0a 09 43 41 4c 4c 09 50 52 49 4e 54 09 09 3b 0d 0a 09 43 41 4c 4c 09 43 4f 4e 53 49 09 09 3b 20 ┆ CALL PRINT ; CALL CONSI ; ┆ 0x051c40…051c60 57 41 49 54 3b 0d 0a 09 4c 48 4c 44 09 44 46 09 09 3b 0d 0a 09 43 41 4c 4c 09 53 45 54 46 09 09 ┆WAIT; LHLD DF ; CALL SETF ┆ 0x051c60…051c80 3b 0d 0a 09 43 41 4c 4c 09 52 45 53 45 54 09 09 3b 20 52 45 53 45 54 20 44 52 49 56 45 53 3b 0d ┆; CALL RESET ; RESET DRIVES; ┆ 0x051c80…051ca0 0a 09 4c 58 49 09 44 2c 44 46 43 42 09 09 3b 0d 0a 09 43 41 4c 4c 09 44 45 4c 45 54 45 09 09 3b ┆ LXI D,DFCB ; CALL DELETE ;┆ 0x051ca0…051cc0 20 44 45 4c 45 54 45 20 44 45 53 54 49 4e 41 54 49 4f 4e 20 46 49 4c 45 3b 0d 0a 09 4c 58 49 09 ┆ DELETE DESTINATION FILE; LXI ┆ 0x051cc0…051ce0 44 2c 44 46 43 42 09 09 3b 0d 0a 09 43 41 4c 4c 09 4d 41 4b 45 09 09 3b 20 43 52 45 41 54 45 20 ┆D,DFCB ; CALL MAKE ; CREATE ┆ 0x051ce0…051d00 44 45 53 54 49 4e 41 54 49 4f 4e 20 46 49 4c 45 3b 0d 0a 09 4c 58 49 09 44 2c 4e 4f 44 49 52 09 ┆DESTINATION FILE; LXI D,NODIR ┆ 0x051d00…051d20 09 3b 0d 0a 09 49 4e 52 09 41 09 09 3b 0d 0a 09 43 5a 09 46 49 4e 49 53 09 09 3b 0d 0a 09 4c 58 ┆ ; INR A ; CZ FINIS ; LX┆ 0x051d20…051d40 49 09 44 2c 42 55 46 09 09 3b 0d 0a 09 50 55 53 48 09 44 09 09 3b 0d 0a 09 43 41 4c 4c 09 53 45 ┆I D,BUF ; PUSH D ; CALL SE┆ 0x051d40…051d60 54 44 4d 41 09 09 3b 20 53 45 54 20 42 55 46 46 45 52 20 41 44 44 52 45 53 53 0d 0a 57 44 41 54 ┆TDMA ; SET BUFFER ADDRESS WDAT┆ 0x051d60…051d80 41 3a 09 4c 58 49 09 44 2c 44 46 43 42 09 09 3b 0d 0a 09 43 41 4c 4c 09 57 52 49 54 45 09 09 3b ┆A: LXI D,DFCB ; CALL WRITE ;┆ 0x051d80…051da0 20 57 52 49 54 45 20 52 45 43 4f 52 44 3a 0d 0a 09 4c 58 49 09 44 2c 53 50 41 43 45 09 09 3b 0d ┆ WRITE RECORD: LXI D,SPACE ; ┆ 0x051da0…051dc0 0a 09 4f 52 41 09 41 09 09 3b 0d 0a 09 43 4e 5a 09 46 49 4e 49 53 09 09 3b 0d 0a 09 50 4f 50 09 ┆ ORA A ; CNZ FINIS ; POP ┆ 0x051dc0…051de0 44 09 09 3b 20 55 50 44 41 54 45 20 42 55 46 41 44 52 0d 0a 09 4c 58 49 09 48 2c 31 32 38 09 09 ┆D ; UPDATE BUFADR LXI H,128 ┆ 0x051de0…051e00 3b 0d 0a 09 44 41 44 09 44 09 09 3b 0d 0a 09 58 43 48 47 09 09 09 3b 0d 0a 09 50 55 53 48 09 44 ┆; DAD D ; XCHG ; PUSH D┆ 0x051e00…051e20 (21, 1, 11) 20 33 34 20 20 20 20 20 20 20 20 09 49 4e 52 09 4d 09 09 3b 0d 0a 20 30 31 30 42 20 35 45 20 20 ┆ 34 INR M ; 010B 5E ┆ 0x051e20…051e40 20 20 20 20 20 20 09 4d 4f 56 09 45 2c 4d 09 09 3b 0d 0a 20 30 31 30 43 20 33 34 20 20 20 20 20 ┆ MOV E,M ; 010C 34 ┆ 0x051e40…051e60 20 20 20 09 49 4e 52 09 4d 09 09 3b 0d 0a 20 30 31 30 44 20 31 36 30 30 20 20 20 20 20 20 09 4d ┆ INR M ; 010D 1600 M┆ 0x051e60…051e80 56 49 09 44 2c 30 09 09 3b 0d 0a 20 30 31 30 46 20 31 39 20 20 20 20 20 20 20 20 09 44 41 44 09 ┆VI D,0 ; 010F 19 DAD ┆ 0x051e80…051ea0 44 09 09 3b 0d 0a 20 30 31 31 30 20 33 36 32 30 20 20 20 20 20 20 09 4d 56 49 09 4d 2c 27 20 27 ┆D ; 0110 3620 MVI M,' '┆ 0x051ea0…051ec0 09 09 3b 0d 0a 20 30 31 31 32 20 32 41 30 31 30 30 20 20 20 20 09 4c 48 4c 44 09 57 42 4f 4f 54 ┆ ; 0112 2A0100 LHLD WBOOT┆ 0x051ec0…051ee0 09 09 3b 20 53 41 56 45 20 46 44 20 46 4f 52 4d 41 54 53 0d 0a 20 30 31 31 35 20 31 31 33 34 30 ┆ ; SAVE FD FORMATS 0115 11340┆ 0x051ee0…051f00 30 20 20 20 20 09 4c 58 49 09 44 2c 46 44 46 4f 52 4d 09 3b 0d 0a 20 30 31 31 38 20 31 39 20 20 ┆0 LXI D,FDFORM ; 0118 19 ┆ 0x051f00…051f20 20 20 20 20 20 20 09 44 41 44 09 44 09 09 3b 0d 0a 20 30 31 31 39 20 32 32 46 38 30 33 20 20 20 ┆ DAD D ; 0119 22F803 ┆ 0x051f20…051f40 20 09 53 48 4c 44 09 41 46 4f 52 4d 09 09 3b 0d 0a 20 30 31 31 43 20 37 45 20 20 20 20 20 20 20 ┆ SHLD AFORM ; 011C 7E ┆ 0x051f40…051f60 20 09 4d 4f 56 09 41 2c 4d 09 09 3b 0d 0a 20 30 31 31 44 20 33 32 46 41 30 33 20 20 20 20 09 53 ┆ MOV A,M ; 011D 32FA03 S┆ 0x051f60…051f80 54 41 09 53 46 4f 52 4d 09 09 3b 0d 0a 20 30 31 32 30 20 32 33 20 20 20 20 20 20 20 20 09 49 4e ┆TA SFORM ; 0120 23 IN┆ 0x051f80…051fa0 58 09 48 09 09 3b 0d 0a 20 30 31 32 31 20 37 45 20 20 20 20 20 20 20 20 09 4d 4f 56 09 41 2c 4d ┆X H ; 0121 7E MOV A,M┆ 0x051fa0…051fc0 09 09 3b 0d 0a 20 30 31 32 32 20 33 32 46 42 30 33 20 20 20 20 09 53 54 41 09 53 46 4f 52 4d 2b ┆ ; 0122 32FB03 STA SFORM+┆ 0x051fc0…051fe0 31 09 09 3b 0d 0a 20 30 31 32 35 20 32 41 46 41 30 33 20 20 20 20 09 4c 48 4c 44 09 53 46 4f 52 ┆1 ; 0125 2AFA03 LHLD SFOR┆ 0x051fe0…052000 4d 09 09 3b 0d 0a 20 30 31 32 38 20 32 32 46 45 30 33 20 20 20 20 09 53 48 4c 44 09 53 46 09 09 ┆M ; 0128 22FE03 SHLD SF ┆ 0x052000…052020 (21, 1, 12) 44 34 45 30 31 20 20 20 20 09 43 41 4c 4c 09 4e 43 48 41 52 09 09 3b 20 53 45 41 52 43 48 20 53 ┆D4E01 CALL NCHAR ; SEARCH S┆ 0x052020…052040 50 41 43 45 3a 0d 0a 20 30 31 39 38 20 46 45 32 30 20 20 20 20 20 20 09 43 50 49 09 27 20 27 09 ┆PACE: 0198 FE20 CPI ' ' ┆ 0x052040…052060 09 3b 0d 0a 20 30 31 39 41 20 43 32 35 45 30 31 20 20 20 20 09 4a 4e 5a 09 53 43 41 4e 09 09 3b ┆ ; 019A C25E01 JNZ SCAN ;┆ 0x052060…052080 0d 0a 20 30 31 39 44 20 30 45 30 38 20 20 20 20 20 20 09 4d 56 49 09 43 2c 38 09 09 3b 0d 0a 20 ┆ 019D 0E08 MVI C,8 ; ┆ 0x052080…0520a0 30 31 39 46 20 43 33 42 32 30 31 20 20 20 20 09 4a 4d 50 09 53 45 54 43 46 09 09 3b 0d 0a 20 30 ┆019F C3B201 JMP SETCF ; 0┆ 0x0520a0…0520c0 31 41 32 20 43 44 34 45 30 31 20 20 20 20 53 53 53 3a 09 43 41 4c 4c 09 4e 43 48 41 52 09 09 3b ┆1A2 CD4E01 SSS: CALL NCHAR ;┆ 0x0520c0…0520e0 0d 0a 20 30 31 41 35 20 46 45 35 33 20 20 20 20 20 20 09 43 50 49 09 27 53 27 09 09 3b 0d 0a 20 ┆ 01A5 FE53 CPI 'S' ; ┆ 0x0520e0…052100 30 31 41 37 20 43 32 35 45 30 31 20 20 20 20 09 4a 4e 5a 09 53 43 41 4e 09 09 3b 0d 0a 20 30 31 ┆01A7 C25E01 JNZ SCAN ; 01┆ 0x052100…052120 41 41 20 43 44 34 45 30 31 20 20 20 20 09 43 41 4c 4c 09 4e 43 48 41 52 09 09 3b 0d 0a 20 30 31 ┆AA CD4E01 CALL NCHAR ; 01┆ 0x052120…052140 41 44 20 46 45 32 30 20 20 20 20 20 20 09 43 50 49 09 27 20 27 09 09 3b 0d 0a 20 30 31 41 46 20 ┆AD FE20 CPI ' ' ; 01AF ┆ 0x052140…052160 43 32 35 45 30 31 20 20 20 20 09 4a 4e 5a 09 53 43 41 4e 09 09 3b 0d 0a 20 30 31 42 32 20 32 31 ┆C25E01 JNZ SCAN ; 01B2 21┆ 0x052160…052180 46 45 30 33 20 20 20 20 53 45 54 43 46 3a 09 4c 58 49 09 48 2c 53 46 09 09 3b 20 53 45 54 20 43 ┆FE03 SETCF: LXI H,SF ; SET C┆ 0x052180…0521a0 55 52 52 45 4e 54 20 46 4f 52 4d 41 54 3a 0d 0a 20 30 31 42 35 20 31 36 30 30 20 20 20 20 20 20 ┆URRENT FORMAT: 01B5 1600 ┆ 0x0521a0…0521c0 09 4d 56 49 09 44 2c 30 09 09 3b 0d 0a 20 30 31 42 37 20 35 38 20 20 20 20 20 20 20 20 09 4d 4f ┆ MVI D,0 ; 01B7 58 MO┆ 0x0521c0…0521e0 56 09 45 2c 42 09 09 3b 0d 0a 20 30 31 42 38 20 31 39 20 20 20 20 20 20 20 20 09 44 41 44 09 44 ┆V E,B ; 01B8 19 DAD D┆ 0x0521e0…052200 09 09 3b 0d 0a 20 30 31 42 39 20 37 38 20 20 20 20 20 20 20 20 09 4d 4f 56 09 41 2c 42 09 09 3b ┆ ; 01B9 78 MOV A,B ;┆ 0x052200…052220 (21, 1, 13) 53 45 54 43 46 09 09 3b 0d 0a 53 53 53 3a 09 43 41 4c 4c 09 4e 43 48 41 52 09 09 3b 0d 0a 09 43 ┆SETCF ; SSS: CALL NCHAR ; C┆ 0x052220…052240 50 49 09 27 53 27 09 09 3b 0d 0a 09 4a 4e 5a 09 53 43 41 4e 09 09 3b 0d 0a 09 43 41 4c 4c 09 4e ┆PI 'S' ; JNZ SCAN ; CALL N┆ 0x052240…052260 43 48 41 52 09 09 3b 0d 0a 09 43 50 49 09 27 20 27 09 09 3b 0d 0a 09 4a 4e 5a 09 53 43 41 4e 09 ┆CHAR ; CPI ' ' ; JNZ SCAN ┆ 0x052260…052280 09 3b 0d 0a 53 45 54 43 46 3a 09 4c 58 49 09 48 2c 53 46 09 09 3b 20 53 45 54 20 43 55 52 52 45 ┆ ; SETCF: LXI H,SF ; SET CURRE┆ 0x052280…0522a0 4e 54 20 46 4f 52 4d 41 54 3a 0d 0a 09 4d 56 49 09 44 2c 30 09 09 3b 0d 0a 09 4d 4f 56 09 45 2c ┆NT FORMAT: MVI D,0 ; MOV E,┆ 0x0522a0…0522c0 42 09 09 3b 0d 0a 09 44 41 44 09 44 09 09 3b 0d 0a 09 4d 4f 56 09 41 2c 42 09 09 3b 0d 0a 09 4f ┆B ; DAD D ; MOV A,B ; O┆ 0x0522c0…0522e0 52 41 09 41 09 09 3b 0d 0a 09 4c 44 41 09 53 44 52 49 56 09 09 3b 0d 0a 09 4a 5a 09 53 45 54 30 ┆RA A ; LDA SDRIV ; JZ SET0┆ 0x0522e0…052300 09 09 3b 0d 0a 09 4c 44 41 09 44 44 52 49 56 09 09 3b 0d 0a 53 45 54 30 3a 09 4f 52 41 09 41 09 ┆ ; LDA DDRIV ; SET0: ORA A ┆ 0x052300…052320 09 3b 0d 0a 09 4a 5a 09 53 45 54 31 09 09 3b 0d 0a 09 49 4e 58 09 48 09 09 3b 0d 0a 53 45 54 31 ┆ ; JZ SET1 ; INX H ; SET1┆ 0x052320…052340 3a 09 4d 4f 56 09 4d 2c 43 09 09 3b 0d 0a 09 4a 4d 50 09 53 43 41 4e 09 09 3b 20 47 4f 54 4f 20 ┆: MOV M,C ; JMP SCAN ; GOTO ┆ 0x052340…052360 53 43 41 4e 20 46 4f 52 20 4e 45 58 54 3b 0d 0a 0d 0a 53 45 54 46 44 46 3a 20 49 4e 09 53 57 31 ┆SCAN FOR NEXT; SETFDF: IN SW1┆ 0x052360…052380 09 09 3b 20 49 46 20 4d 41 58 49 20 46 4c 4f 50 50 59 20 54 48 45 4e 0d 0a 09 41 4e 49 09 30 38 ┆ ; IF MAXI FLOPPY THEN ANI 08┆ 0x052380…0523a0 30 48 09 09 3b 20 20 47 4f 54 4f 20 53 45 54 46 43 42 3b 0d 0a 09 4a 5a 09 53 45 54 46 43 42 09 ┆0H ; GOTO SETFCB; JZ SETFCB ┆ 0x0523a0…0523c0 09 3b 0d 0a 09 4c 48 4c 44 09 53 46 4f 52 4d 09 09 3b 20 52 45 53 45 54 20 46 4c 4f 50 50 59 20 ┆ ; LHLD SFORM ; RESET FLOPPY ┆ 0x0523c0…0523e0 46 4f 52 4d 41 54 53 3b 0d 0a 09 53 48 4c 44 09 53 46 09 09 3b 0d 0a 09 53 48 4c 44 09 44 46 09 ┆FORMATS; SHLD SF ; SHLD DF ┆ 0x0523e0…052400 09 3b 0d 0a 09 4a 4d 50 09 53 45 54 46 43 42 09 09 3b 20 47 4f 54 4f 20 53 45 54 20 46 43 42 3b ┆ ; JMP SETFCB ; GOTO SET FCB;┆ 0x052400…052420 (21, 1, 14) 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆ ;***********┆ 0x052420…052440 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆********************************┆ 0x052440…052460 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 0a 20 20 20 20 20 20 20 20 20 ┆********************* ┆ 0x052460…052480 20 20 20 20 20 20 20 3b 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ;* ┆ 0x052480…0524a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x0524a0…0524c0 20 20 20 20 20 20 20 2a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 2a 20 20 20 20 ┆ * ;* ┆ 0x0524c0…0524e0 20 46 49 4c 45 20 54 52 41 4e 53 46 45 52 20 55 54 49 4c 49 54 59 20 20 20 20 2d 20 20 20 20 56 ┆ FILE TRANSFER UTILITY - V┆ 0x0524e0…052500 45 52 53 49 4f 4e 20 20 38 31 2e 30 36 2e 32 39 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 20 20 20 ┆ERSION 81.06.29 * ┆ 0x052500…052520 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ;* ┆ 0x052520…052540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x052540…052560 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ * ┆ 0x052560…052580 3b 2a 20 20 20 20 20 54 52 41 4e 53 46 45 52 20 20 41 3a 58 2e 59 20 20 42 3a 55 2e 56 20 20 44 ┆;* TRANSFER A:X.Y B:U.V D┆ 0x052580…0525a0 3a 3d 46 46 20 20 44 3a 3d 46 46 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆:=FF D:=FF ┆ 0x0525a0…0525c0 2a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 2a 20 20 20 20 20 20 20 20 20 20 20 ┆* ;* ┆ 0x0525c0…0525e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x0525e0…052600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 20 20 20 20 20 20 20 20 20 20 ┆ * ┆ 0x052600…052620 (21, 1, 15) 3b 0d 0a 20 30 31 32 42 20 32 32 30 30 30 34 20 20 20 20 09 53 48 4c 44 09 44 46 09 09 3b 0d 0a ┆; 012B 220004 SHLD DF ; ┆ 0x052620…052640 20 30 31 32 45 20 33 41 35 43 30 30 20 20 20 20 09 4c 44 41 09 46 43 42 31 09 09 3b 0d 0a 20 30 ┆ 012E 3A5C00 LDA FCB1 ; 0┆ 0x052640…052660 31 33 31 20 42 37 20 20 20 20 20 20 20 20 09 4f 52 41 09 41 09 09 3b 0d 0a 20 30 31 33 32 20 43 ┆131 B7 ORA A ; 0132 C┆ 0x052660…052680 43 45 38 30 31 20 20 20 20 09 43 5a 09 47 45 54 44 44 09 09 3b 0d 0a 20 30 31 33 35 20 33 44 20 ┆CE801 CZ GETDD ; 0135 3D ┆ 0x052680…0526a0 20 20 20 20 20 20 20 09 44 43 52 09 41 09 09 3b 0d 0a 20 30 31 33 36 20 33 32 30 32 30 34 20 20 ┆ DCR A ; 0136 320204 ┆ 0x0526a0…0526c0 20 20 09 53 54 41 09 53 44 52 49 56 09 09 3b 0d 0a 20 30 31 33 39 20 33 41 36 43 30 30 20 20 20 ┆ STA SDRIV ; 0139 3A6C00 ┆ 0x0526c0…0526e0 20 09 4c 44 41 09 46 43 42 32 09 09 3b 0d 0a 20 30 31 33 43 20 42 37 20 20 20 20 20 20 20 20 09 ┆ LDA FCB2 ; 013C B7 ┆ 0x0526e0…052700 4f 52 41 09 41 09 09 3b 0d 0a 20 30 31 33 44 20 43 43 45 38 30 31 20 20 20 20 09 43 5a 09 47 45 ┆ORA A ; 013D CCE801 CZ GE┆ 0x052700…052720 54 44 44 09 09 3b 0d 0a 20 30 31 34 30 20 33 44 20 20 20 20 20 20 20 20 09 44 43 52 09 41 09 09 ┆TDD ; 0140 3D DCR A ┆ 0x052720…052740 3b 0d 0a 20 30 31 34 31 20 33 32 30 33 30 34 20 20 20 20 09 53 54 41 09 44 44 52 49 56 09 09 3b ┆; 0141 320304 STA DDRIV ;┆ 0x052740…052760 0d 0a 20 30 31 34 34 20 32 31 38 30 30 30 20 20 20 20 09 4c 58 49 09 48 2c 44 42 55 46 46 09 09 ┆ 0144 218000 LXI H,DBUFF ┆ 0x052760…052780 3b 20 53 45 54 55 50 20 43 48 41 52 20 53 43 41 4e 0d 0a 20 30 31 34 37 20 32 33 20 20 20 20 20 ┆; SETUP CHAR SCAN 0147 23 ┆ 0x052780…0527a0 20 20 20 09 49 4e 58 09 48 09 09 3b 0d 0a 20 30 31 34 38 20 32 32 46 43 30 33 20 20 20 20 09 53 ┆ INX H ; 0148 22FC03 S┆ 0x0527a0…0527c0 48 4c 44 09 43 41 44 44 52 09 09 3b 0d 0a 20 30 31 34 42 20 43 33 35 45 30 31 20 20 20 20 09 4a ┆HLD CADDR ; 014B C35E01 J┆ 0x0527c0…0527e0 4d 50 09 53 43 41 4e 09 09 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 ┆MP SCAN ; 0┆ 0x0527e0…052800 31 34 45 20 32 31 38 30 30 30 20 20 20 20 4e 43 48 41 52 3a 20 20 4c 58 49 09 48 2c 44 42 55 46 ┆14E 218000 NCHAR: LXI H,DBUF┆ 0x052800…052820 (22, 0, 1) 0d 0a 20 30 31 42 41 20 42 37 20 20 20 20 20 20 20 20 09 4f 52 41 09 41 09 09 3b 0d 0a 20 30 31 ┆ 01BA B7 ORA A ; 01┆ 0x052820…052840 42 42 20 33 41 30 32 30 34 20 20 20 20 09 4c 44 41 09 53 44 52 49 56 09 09 3b 0d 0a 20 30 31 42 ┆BB 3A0204 LDA SDRIV ; 01B┆ 0x052840…052860 45 20 43 41 43 34 30 31 20 20 20 20 09 4a 5a 09 53 45 54 30 09 09 3b 0d 0a 20 30 31 43 31 20 33 ┆E CAC401 JZ SET0 ; 01C1 3┆ 0x052860…052880 41 30 33 30 34 20 20 20 20 09 4c 44 41 09 44 44 52 49 56 09 09 3b 0d 0a 20 30 31 43 34 20 42 37 ┆A0304 LDA DDRIV ; 01C4 B7┆ 0x052880…0528a0 20 20 20 20 20 20 20 20 53 45 54 30 3a 09 4f 52 41 09 41 09 09 3b 0d 0a 20 30 31 43 35 20 43 41 ┆ SET0: ORA A ; 01C5 CA┆ 0x0528a0…0528c0 43 39 30 31 20 20 20 20 09 4a 5a 09 53 45 54 31 09 09 3b 0d 0a 20 30 31 43 38 20 32 33 20 20 20 ┆C901 JZ SET1 ; 01C8 23 ┆ 0x0528c0…0528e0 20 20 20 20 20 09 49 4e 58 09 48 09 09 3b 0d 0a 20 30 31 43 39 20 37 31 20 20 20 20 20 20 20 20 ┆ INX H ; 01C9 71 ┆ 0x0528e0…052900 53 45 54 31 3a 09 4d 4f 56 09 4d 2c 43 09 09 3b 0d 0a 20 30 31 43 41 20 43 33 35 45 30 31 20 20 ┆SET1: MOV M,C ; 01CA C35E01 ┆ 0x052900…052920 20 20 09 4a 4d 50 09 53 43 41 4e 09 09 3b 20 47 4f 54 4f 20 53 43 41 4e 20 46 4f 52 20 4e 45 58 ┆ JMP SCAN ; GOTO SCAN FOR NEX┆ 0x052920…052940 54 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 31 43 44 20 44 42 31 34 ┆T; 01CD DB14┆ 0x052940…052960 20 20 20 20 20 20 53 45 54 46 44 46 3a 20 49 4e 09 53 57 31 09 09 3b 20 49 46 20 4d 41 58 49 20 ┆ SETFDF: IN SW1 ; IF MAXI ┆ 0x052960…052980 46 4c 4f 50 50 59 20 54 48 45 4e 0d 0a 20 30 31 43 46 20 45 36 38 30 20 20 20 20 20 20 09 41 4e ┆FLOPPY THEN 01CF E680 AN┆ 0x052980…0529a0 49 09 30 38 30 48 09 09 3b 20 20 47 4f 54 4f 20 53 45 54 46 43 42 3b 0d 0a 20 30 31 44 31 20 43 ┆I 080H ; GOTO SETFCB; 01D1 C┆ 0x0529a0…0529c0 41 45 44 30 31 20 20 20 20 09 4a 5a 09 53 45 54 46 43 42 09 09 3b 0d 0a 20 30 31 44 34 20 32 41 ┆AED01 JZ SETFCB ; 01D4 2A┆ 0x0529c0…0529e0 46 41 30 33 20 20 20 20 09 4c 48 4c 44 09 53 46 4f 52 4d 09 09 3b 20 52 45 53 45 54 20 46 4c 4f ┆FA03 LHLD SFORM ; RESET FLO┆ 0x0529e0…052a00 50 50 59 20 46 4f 52 4d 41 54 53 3b 0d 0a 20 30 31 44 37 20 32 32 46 45 30 33 20 20 20 20 09 53 ┆PPY FORMATS; 01D7 22FE03 S┆ 0x052a00…052a20 (22, 0, 2) 3a 31 30 30 31 30 30 30 30 45 31 32 32 30 35 30 34 33 31 34 37 30 34 32 31 38 30 30 30 33 34 35 ┆:10010000E1220504314704218000345┆ 0x052a20…052a40 45 33 34 31 36 30 30 31 39 44 31 0d 0a 3a 31 30 30 31 31 30 30 30 33 36 32 30 32 41 30 31 30 30 ┆E34160019D1 :1001100036202A0100┆ 0x052a40…052a60 31 31 33 34 30 30 31 39 32 32 46 38 30 33 37 45 33 32 46 41 30 33 33 36 0d 0a 3a 31 30 30 31 32 ┆1134001922F8037E32FA0336 :10012┆ 0x052a60…052a80 30 30 30 32 33 37 45 33 32 46 42 30 33 32 41 46 41 30 33 32 32 46 45 30 33 32 32 30 30 30 34 33 ┆000237E32FB032AFA0322FE032200043┆ 0x052a80…052aa0 41 35 43 46 38 0d 0a 3a 31 30 30 31 33 30 30 30 30 30 42 37 43 43 45 38 30 31 33 44 33 32 30 32 ┆A5CF8 :1001300000B7CCE8013D3202┆ 0x052aa0…052ac0 30 34 33 41 36 43 30 30 42 37 43 43 45 38 30 31 43 43 0d 0a 3a 31 30 30 31 34 30 30 30 33 44 33 ┆043A6C00B7CCE801CC :100140003D3┆ 0x052ac0…052ae0 32 30 33 30 34 32 31 38 30 30 30 32 33 32 32 46 43 30 33 43 33 35 45 30 31 32 31 38 30 39 31 0d ┆203042180002322FC03C35E01218091 ┆ 0x052ae0…052b00 0a 3a 31 30 30 31 35 30 30 30 30 30 33 35 43 41 43 44 30 31 32 41 46 43 30 33 37 45 32 33 32 32 ┆ :100150000035CACD012AFC037E2322┆ 0x052b00…052b20 46 43 30 33 43 39 30 31 30 30 31 44 0d 0a 3a 31 30 30 31 36 30 30 30 30 30 43 44 34 45 30 31 46 ┆FC03C901001D :1001600000CD4E01F┆ 0x052b20…052b40 45 35 33 43 41 37 30 30 31 46 45 34 34 43 32 35 45 30 31 30 36 30 32 37 43 0d 0a 3a 31 30 30 31 ┆E53CA7001FE44C25E0106027C :1001┆ 0x052b40…052b60 37 30 30 30 43 44 34 45 30 31 46 45 33 41 43 32 35 45 30 31 43 44 34 45 30 31 46 45 33 44 43 32 ┆7000CD4E01FE3AC25E01CD4E01FE3DC2┆ 0x052b60…052b80 35 45 30 31 39 32 0d 0a 3a 31 30 30 31 38 30 30 30 43 44 34 45 30 31 46 45 35 33 43 41 41 32 30 ┆5E0192 :10018000CD4E01FE53CAA20┆ 0x052b80…052ba0 31 46 45 34 34 43 32 35 45 30 31 43 44 34 45 30 31 31 36 0d 0a 3a 31 30 30 31 39 30 30 30 46 45 ┆1FE44C25E01CD4E0116 :10019000FE┆ 0x052ba0…052bc0 34 34 43 32 35 45 30 31 43 44 34 45 30 31 46 45 32 30 43 32 35 45 30 31 30 45 30 38 43 33 43 38 ┆44C25E01CD4E01FE20C25E010E08C3C8┆ 0x052bc0…052be0 0d 0a 3a 31 30 30 31 41 30 30 30 42 32 30 31 43 44 34 45 30 31 46 45 35 33 43 32 35 45 30 31 43 ┆ :1001A000B201CD4E01FE53C25E01C┆ 0x052be0…052c00 44 34 45 30 31 46 45 32 30 43 32 31 32 0d 0a 3a 31 30 30 31 42 30 30 30 35 45 30 31 32 31 46 45 ┆D4E01FE20C212 :1001B0005E0121FE┆ 0x052c00…052c20 (22, 0, 3) e1 22 f9 03 31 3b 04 21 80 00 34 5e 34 16 00 19 36 20 2a 01 00 11 34 00 19 22 ec 03 7e 32 ee 03 ┆ " 1; ! 4^4 6 * 4 " ü2 ┆ 0x052c20…052c40 23 7e 32 ef 03 2a ee 03 22 f2 03 22 f4 03 3a 5c 00 b7 cc e8 01 3d 32 f6 03 3a 6c 00 b7 cc e8 01 ┆#ü2 * " " :Ø =2 :l ┆ 0x052c40…052c60 3d 32 f7 03 21 80 00 23 22 f0 03 c3 5e 01 21 80 00 35 ca cd 01 2a f0 03 7e 23 22 f0 03 c9 01 00 ┆=2 ! #" ^ ! 5 * ü#" ┆ 0x052c60…052c80 00 cd 4e 01 fe 53 ca 70 01 fe 44 c2 5e 01 06 02 cd 4e 01 fe 3a c2 5e 01 cd 4e 01 fe 3d c2 5e 01 ┆ N S p D ^ N : ^ N = ^ ┆ 0x052c80…052ca0 cd 4e 01 fe 53 ca a2 01 fe 44 c2 5e 01 cd 4e 01 fe 44 c2 5e 01 cd 4e 01 fe 20 c2 5e 01 0e 08 c3 ┆ N S D ^ N D ^ N ^ ┆ 0x052ca0…052cc0 b2 01 cd 4e 01 fe 53 c2 5e 01 cd 4e 01 fe 20 c2 5e 01 21 f2 03 16 00 58 19 78 b7 3a f6 03 ca c4 ┆ N S ^ N ^ ! X x : ┆ 0x052cc0…052ce0 01 3a f7 03 b7 ca c9 01 22 71 c3 5e 01 db 14 e6 80 ca ed 01 2a ee 03 22 f2 03 22 f4 03 c3 ed 01 ┆ : "q ^ * " " ┆ 0x052ce0…052d00 eb 2a ec 03 72 23 73 c9 cd fc 02 3c c9 0e 10 11 6c 00 21 fb 03 1a 13 77 23 0d c2 f5 01 af 32 1b ┆ * r#s < l ! w# 2 ┆ 0x052d00…052d20 04 11 9e 03 cd f7 02 cd ca 02 2a f2 03 cd e0 01 cd cf 02 11 5c 00 cd d4 02 11 01 03 3c cc c2 02 ┆ * Ø < ┆ 0x052d20…052d40 11 3c 04 3e 00 32 f8 03 d5 cd f2 02 11 5c 00 cd e3 02 b7 c2 4d 02 d1 21 80 00 19 eb d5 cd f2 02 ┆ < > 2 Ø M ! ┆ 0x052d40…052d60 21 f8 03 11 63 03 34 cc c2 02 c3 2c 02 d1 11 72 03 cd f7 02 cd ca 02 2a f4 03 cd e0 01 cd cf 02 ┆! c 4 , r * ┆ 0x052d60…052d80 11 fb 03 cd de 02 11 fb 03 cd ed 02 11 12 03 3c cc c2 02 11 3c 04 d5 cd f2 02 11 fb 03 cd e8 02 ┆ < < ┆ 0x052d80…052da0 11 27 03 b7 c4 c2 02 d1 21 80 00 19 eb d5 cd f2 02 21 f8 03 35 c2 7a 02 d1 11 fb 03 cd d9 02 11 ┆ ' ! ! 5 z ┆ 0x052da0…052dc0 3b 03 3c cc c2 02 11 4e 03 cd f7 02 11 c5 03 cd f7 02 cd ca 02 2a ee 03 cd e0 01 cd cf 02 2a f9 ┆; < N * * ┆ 0x052dc0…052de0 03 e9 0e 09 cd 05 00 c3 ac 02 0e 01 c3 05 00 0e 0d c3 05 00 0e 0f c3 05 00 0e 10 c3 05 00 0e 13 ┆ ┆ 0x052de0…052e00 c3 05 00 0e 14 c3 05 00 0e 15 c3 05 00 0e 16 c3 05 00 0e 1a c3 05 00 0e 09 c3 05 00 0e 19 c3 05 ┆ ┆ 0x052e00…052e20 (22, 0, 4) 4c 48 4c 44 20 42 55 46 46 41 20 3b 47 45 54 20 44 4d 41 20 41 44 44 52 45 53 53 0d 0a 09 09 4d ┆LHLD BUFFA ;GET DMA ADDRESS M┆ 0x052e20…052e40 56 49 20 44 2c 30 21 20 4c 44 41 20 53 50 54 21 20 4d 4f 56 20 45 2c 41 20 3b 20 44 3d 30 2c 20 ┆VI D,0! LDA SPT! MOV E,A ; D=0, ┆ 0x052e40…052e60 45 3d 53 50 54 0d 0a 09 09 52 57 24 4c 4f 4f 50 3a 20 3b 52 45 41 44 2f 57 52 49 54 45 20 4c 4f ┆E=SPT RW$LOOP: ;READ/WRITE LO┆ 0x052e60…052e80 4f 50 0d 0a 09 09 09 50 55 53 48 20 44 21 20 50 55 53 48 20 48 0d 0a 09 09 09 4d 4f 56 20 43 2c ┆OP PUSH D! PUSH H MOV C,┆ 0x052e80…052ea0 44 21 20 43 41 4c 4c 20 53 45 43 20 3b 53 45 43 54 4f 52 20 53 45 54 0d 0a 09 09 09 50 4f 50 20 ┆D! CALL SEC ;SECTOR SET POP ┆ 0x052ea0…052ec0 42 21 20 50 55 53 48 20 42 20 3b 47 45 54 20 44 4d 41 20 41 44 44 52 45 53 53 0d 0a 09 09 09 43 ┆B! PUSH B ;GET DMA ADDRESS C┆ 0x052ec0…052ee0 41 4c 4c 20 44 4d 41 20 3b 44 4d 41 20 41 44 44 52 45 53 53 20 53 45 54 0d 0a 09 09 09 3b 50 45 ┆ALL DMA ;DMA ADDRESS SET ;PE┆ 0x052ee0…052f00 52 46 4f 52 4d 20 49 4f 20 46 55 4e 43 54 49 4f 4e 0d 0a 09 09 09 4c 44 41 20 49 4f 46 21 20 4f ┆RFORM IO FUNCTION LDA IOF! O┆ 0x052f00…052f20 52 41 20 41 20 3b 53 45 54 20 46 4c 41 47 53 2c 20 30 3d 52 45 41 44 2c 20 31 3d 57 52 49 54 45 ┆RA A ;SET FLAGS, 0=READ, 1=WRITE┆ 0x052f20…052f40 0d 0a 09 09 09 4a 4e 5a 20 57 52 49 54 45 46 55 4e 43 0d 0a 09 09 09 09 3b 52 45 41 44 20 44 49 ┆ JNZ WRITEFUNC ;READ DI┆ 0x052f40…052f60 53 4b 0d 0a 09 09 09 09 43 41 4c 4c 20 44 52 45 41 44 0d 0a 09 09 09 09 4a 4d 50 20 52 57 43 4f ┆SK CALL DREAD JMP RWCO┆ 0x052f60…052f80 4d 50 4c 45 54 45 0d 0a 09 09 09 57 52 49 54 45 46 55 4e 43 3a 0d 0a 09 09 09 09 3b 57 52 49 54 ┆MPLETE WRITEFUNC: ;WRIT┆ 0x052f80…052fa0 45 20 44 49 53 4b 0d 0a 09 09 09 09 43 41 4c 4c 20 44 57 52 49 54 45 0d 0a 09 09 09 52 57 43 4f ┆E DISK CALL DWRITE RWCO┆ 0x052fa0…052fc0 4d 50 4c 45 54 45 3a 20 3b 46 55 4e 43 54 49 4f 4e 20 43 4f 4d 50 4c 45 54 45 0d 0a 09 09 09 09 ┆MPLETE: ;FUNCTION COMPLETE ┆ 0x052fc0…052fe0 50 4f 50 20 48 20 3b 52 45 43 41 4c 4c 20 44 4d 41 20 41 44 44 52 45 53 53 0d 0a 09 09 09 09 4c ┆POP H ;RECALL DMA ADDRESS L┆ 0x052fe0…053000 58 49 20 44 2c 38 30 48 21 20 44 41 44 20 44 20 3b 54 4f 20 4e 45 58 54 20 44 4d 41 0d 0a 09 09 ┆XI D,80H! DAD D ;TO NEXT DMA ┆ 0x053000…053020 (22, 0, 5) 48 4c 44 09 53 46 09 09 3b 0d 0a 20 30 31 44 41 20 32 32 30 30 30 34 20 20 20 20 09 53 48 4c 44 ┆HLD SF ; 01DA 220004 SHLD┆ 0x053020…053040 09 44 46 09 09 3b 0d 0a 20 30 31 44 44 20 43 33 45 44 30 31 20 20 20 20 09 4a 4d 50 09 53 45 54 ┆ DF ; 01DD C3ED01 JMP SET┆ 0x053040…053060 46 43 42 09 09 3b 20 47 4f 54 4f 20 53 45 54 20 46 43 42 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 ┆FCB ; GOTO SET FCB; ┆ 0x053060…053080 20 20 20 20 20 20 0d 0a 20 30 31 45 30 20 45 42 20 20 20 20 20 20 20 20 53 45 54 46 3a 09 58 43 ┆ 01E0 EB SETF: XC┆ 0x053080…0530a0 48 47 09 09 09 3b 20 53 45 54 20 46 44 20 46 4f 52 4d 41 54 53 3a 0d 0a 20 30 31 45 31 20 32 41 ┆HG ; SET FD FORMATS: 01E1 2A┆ 0x0530a0…0530c0 46 38 30 33 20 20 20 20 09 4c 48 4c 44 09 41 46 4f 52 4d 09 09 3b 0d 0a 20 30 31 45 34 20 37 33 ┆F803 LHLD AFORM ; 01E4 73┆ 0x0530c0…0530e0 20 20 20 20 20 20 20 20 09 4d 4f 56 09 4d 2c 45 09 09 3b 0d 0a 20 30 31 45 35 20 32 33 20 20 20 ┆ MOV M,E ; 01E5 23 ┆ 0x0530e0…053100 20 20 20 20 20 09 49 4e 58 09 48 09 09 3b 0d 0a 20 30 31 45 36 20 37 32 20 20 20 20 20 20 20 20 ┆ INX H ; 01E6 72 ┆ 0x053100…053120 09 4d 4f 56 09 4d 2c 44 09 09 3b 0d 0a 20 30 31 45 37 20 43 39 20 20 20 20 20 20 20 20 09 52 45 ┆ MOV M,D ; 01E7 C9 RE┆ 0x053120…053140 54 09 09 09 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 31 45 38 20 43 ┆T ; 01E8 C┆ 0x053140…053160 44 30 38 30 33 20 20 20 20 47 45 54 44 44 3a 09 43 41 4c 4c 09 52 45 54 43 44 09 09 3b 20 47 45 ┆D0803 GETDD: CALL RETCD ; GE┆ 0x053160…053180 54 20 44 45 46 41 55 4c 54 20 44 52 49 56 45 3a 0d 0a 20 30 31 45 42 20 33 43 20 20 20 20 20 20 ┆T DEFAULT DRIVE: 01EB 3C ┆ 0x053180…0531a0 20 20 09 49 4e 52 09 41 09 09 3b 0d 0a 20 30 31 45 43 20 43 39 20 20 20 20 20 20 20 20 09 52 45 ┆ INR A ; 01EC C9 RE┆ 0x0531a0…0531c0 54 09 09 09 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 31 45 44 20 30 ┆T ; 01ED 0┆ 0x0531c0…0531e0 45 31 30 20 20 20 20 20 20 53 45 54 46 43 42 3a 09 4d 56 49 09 43 2c 31 36 09 09 3b 0d 0a 20 30 ┆E10 SETFCB: MVI C,16 ; 0┆ 0x0531e0…053200 31 45 46 20 31 31 36 43 30 30 20 20 20 20 09 4c 58 49 09 44 2c 46 43 42 32 09 09 3b 20 53 45 54 ┆1EF 116C00 LXI D,FCB2 ; SET┆ 0x053200…053220 (22, 0, 6) 30 33 31 36 30 30 35 38 31 39 37 38 42 37 33 41 30 32 30 34 43 41 43 34 33 41 0d 0a 3a 31 30 30 ┆031600581978B73A0204CAC43A :100┆ 0x053220…053240 31 43 30 30 30 30 31 33 41 30 33 30 34 42 37 43 41 43 39 30 31 32 33 37 31 43 33 35 45 30 31 44 ┆1C000013A0304B7CAC9012371C35E01D┆ 0x053240…053260 42 31 34 45 36 31 37 0d 0a 3a 31 30 30 31 44 30 30 30 38 30 43 41 45 44 30 31 32 41 46 41 30 33 ┆B14E617 :1001D00080CAED012AFA03┆ 0x053260…053280 32 32 46 45 30 33 32 32 30 30 30 34 43 33 45 44 30 31 43 36 0d 0a 3a 31 30 30 31 45 30 30 30 45 ┆22FE03220004C3ED01C6 :1001E000E┆ 0x053280…0532a0 42 32 41 46 38 30 33 37 33 32 33 37 32 43 39 43 44 30 38 30 33 33 43 43 39 30 45 31 30 31 31 32 ┆B2AF803732372C9CD08033CC90E10112┆ 0x0532a0…0532c0 32 0d 0a 3a 31 30 30 31 46 30 30 30 36 43 30 30 32 31 30 37 30 34 31 41 31 33 37 37 32 33 30 44 ┆2 :1001F0006C002107041A1377230D┆ 0x0532c0…0532e0 43 32 46 35 30 31 41 46 33 32 32 37 44 33 0d 0a 3a 31 30 30 32 30 30 30 30 30 34 31 31 41 41 30 ┆C2F501AF3227D3 :100200000411AA0┆ 0x0532e0…053300 33 43 44 30 33 30 33 43 44 43 41 30 32 32 41 46 45 30 33 43 44 45 30 30 31 45 37 0d 0a 3a 31 30 ┆3CD0303CDCA022AFE03CDE001E7 :10┆ 0x053300…053320 30 32 31 30 30 30 43 44 44 42 30 32 31 31 35 43 30 30 43 44 45 30 30 32 31 31 30 44 30 33 33 43 ┆021000CDDB02115C00CDE002110D033C┆ 0x053320…053340 43 43 43 32 30 32 32 42 0d 0a 3a 31 30 30 32 32 30 30 30 31 31 34 38 30 34 33 45 30 30 33 32 30 ┆CCC2022B :100220001148043E00320┆ 0x053340…053360 34 30 34 44 35 43 44 46 45 30 32 31 31 35 43 30 30 43 44 31 44 0d 0a 3a 31 30 30 32 33 30 30 30 ┆404D5CDFE02115C00CD1D :10023000┆ 0x053360…053380 45 46 30 32 42 37 43 32 34 44 30 32 44 31 32 31 38 30 30 30 31 39 45 42 44 35 43 44 46 45 30 32 ┆EF02B7C24D02D121800019EBD5CDFE02┆ 0x053380…0533a0 45 44 0d 0a 3a 31 30 30 32 34 30 30 30 32 31 30 34 30 34 31 31 36 46 30 33 33 34 43 43 43 32 30 ┆ED :10024000210404116F0334CCC20┆ 0x0533a0…0533c0 32 43 33 32 43 30 32 44 31 31 31 37 45 45 44 0d 0a 3a 31 30 30 32 35 30 30 30 30 33 43 44 30 33 ┆2C32C02D1117EED :1002500003CD03┆ 0x0533c0…0533e0 30 33 43 44 43 41 30 32 32 41 30 30 30 34 43 44 45 30 30 31 43 44 44 42 30 32 41 39 0d 0a 3a 31 ┆03CDCA022A0004CDE001CDDB02A9 :1┆ 0x0533e0…053400 30 30 32 36 30 30 30 31 31 30 37 30 34 43 44 45 41 30 32 31 31 30 37 30 34 43 44 46 39 30 32 31 ┆0026000110704CDEA02110704CDF9021┆ 0x053400…053420 (22, 0, 7) 00 4e 4f 20 53 4f 55 52 43 45 20 46 49 4c 45 0d 0a 24 4e 4f 20 44 49 52 45 43 54 4f 52 59 20 53 ┆ NO SOURCE FILE $NO DIRECTORY S┆ 0x053420…053440 50 41 43 45 0d 0a 24 4f 55 54 20 4f 46 20 44 41 54 41 20 53 50 41 43 45 0d 0a 24 57 52 49 54 45 ┆PACE $OUT OF DATA SPACE $WRITE┆ 0x053440…053460 20 50 52 4f 54 45 43 54 45 44 3f 0d 0a 24 54 52 41 4e 53 46 45 52 20 43 4f 4d 50 4c 45 54 45 44 ┆ PROTECTED? $TRANSFER COMPLETED┆ 0x053460…053480 0d 0a 24 46 49 4c 45 20 54 4f 4f 20 42 49 47 0d 0a 24 49 4e 53 45 52 54 20 44 45 53 54 49 4e 41 ┆ $FILE TOO BIG $INSERT DESTINA┆ 0x053480…0534a0 54 49 4f 4e 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 54 55 52 4e 3e 0d 0a 24 49 4e ┆TION DISK AND TYPE <RETURN> $IN┆ 0x0534a0…0534c0 53 45 52 54 20 53 4f 55 52 43 45 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 54 55 52 ┆SERT SOURCE DISK AND TYPE <RETUR┆ 0x0534c0…0534e0 4e 3e 0d 0a 24 49 4e 53 45 52 54 20 53 59 53 54 45 4d 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 ┆N> $INSERT SYSTEM DISK AND TYPE┆ 0x0534e0…053500 20 3c 52 45 54 55 52 4e 3e 0d 0a 24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0e 19 c3 05 ┆ <RETURN> $ ┆ 0x053500…053520 00 4e 4f 20 53 4f 55 52 43 45 20 46 49 4c 45 0d 0a 24 4e 4f 20 44 49 52 45 43 54 4f 52 59 20 53 ┆ NO SOURCE FILE $NO DIRECTORY S┆ 0x053520…053540 50 41 43 45 0d 0a 24 4f 55 54 20 4f 46 20 44 41 54 41 20 53 50 41 43 45 0d 0a 24 57 00 00 00 00 ┆PACE $OUT OF DATA SPACE $W ┆ 0x053540…053560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x1…] 0x053580…0535a0 33 44 0d 0a 3a 31 30 30 32 34 30 30 30 32 30 34 33 34 46 34 44 35 30 34 43 34 35 35 34 34 35 34 ┆3D :1002400020434F4D504C4554454┆ 0x0535a0…0535c0 34 32 34 34 36 34 39 34 43 34 35 32 30 38 44 0d 0a 3a 31 30 30 32 35 30 30 30 35 34 34 46 34 46 ┆42446494C45208D :10025000544F4F┆ 0x0535c0…0535e0 32 30 34 32 34 39 34 37 32 34 34 39 34 45 35 33 34 35 35 32 35 34 32 30 34 34 35 44 0d 0a 3a 31 ┆2042494724494E5345525420445D :1┆ 0x0535e0…053600 30 30 32 36 30 30 30 34 35 35 33 35 34 34 39 34 45 34 31 35 34 34 39 34 46 34 45 32 30 34 34 34 ┆0026000455354494E4154494F4E20444┆ 0x053600…053620 (22, 0, 8) 09 09 50 4f 50 20 44 20 3b 52 45 43 41 4c 4c 20 53 45 43 54 4f 52 20 41 4e 44 20 43 4f 55 4e 54 ┆ POP D ;RECALL SECTOR AND COUNT┆ 0x053620…053640 0d 0a 09 09 09 09 49 4e 52 20 44 20 3b 4e 45 58 54 20 53 45 43 54 4f 52 0d 0a 09 09 09 3b 20 43 ┆ INR D ;NEXT SECTOR ; C┆ 0x053640…053660 48 45 43 4b 20 45 52 52 4f 52 20 43 4f 4e 44 49 54 49 4f 4e 53 0d 0a 09 09 09 4f 52 41 20 41 21 ┆HECK ERROR CONDITIONS ORA A!┆ 0x053660…053680 20 52 4e 5a 20 3b 52 45 54 55 52 4e 20 57 49 54 48 20 4e 4f 4e 20 5a 45 52 4f 20 46 4c 41 47 20 ┆ RNZ ;RETURN WITH NON ZERO FLAG ┆ 0x053680…0536a0 53 45 54 0d 0a 09 09 09 44 43 52 20 45 20 3b 43 4f 55 4e 54 20 3d 20 43 4f 55 4e 54 20 2d 20 31 ┆SET DCR E ;COUNT = COUNT - 1┆ 0x0536a0…0536c0 0d 0a 09 09 09 4a 4e 5a 20 52 57 24 4c 4f 4f 50 20 3b 46 4f 52 20 41 4e 4f 54 48 45 52 20 53 45 ┆ JNZ RW$LOOP ;FOR ANOTHER SE┆ 0x0536c0…0536e0 43 54 4f 52 0d 0a 09 09 09 52 45 54 20 3b 57 49 54 48 20 5a 45 52 4f 20 46 4c 41 47 20 53 45 54 ┆CTOR RET ;WITH ZERO FLAG SET┆ 0x0536e0…053700 20 46 4f 52 20 49 4f 20 43 4f 4d 50 4c 45 54 45 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 55 54 49 4c 49 54 ┆ FOR IO COMPLETE ; ; ; UTILIT┆ 0x053700…053720 59 20 53 55 42 52 4f 55 54 49 4e 45 53 20 46 4f 52 20 44 49 52 45 43 54 20 44 49 53 4b 20 49 4f ┆Y SUBROUTINES FOR DIRECT DISK IO┆ 0x053720…053740 0d 0a 57 42 4f 4f 54 09 45 51 55 09 31 09 3b 57 41 52 4d 20 42 4f 4f 54 20 41 44 44 52 45 53 53 ┆ WBOOT EQU 1 ;WARM BOOT ADDRESS┆ 0x053740…053760 0d 0a 53 45 4c 44 53 4b 09 45 51 55 09 32 34 09 3b 53 45 4c 45 43 54 20 44 49 53 4b 0d 0a 53 45 ┆ SELDSK EQU 24 ;SELECT DISK SE┆ 0x053760…053780 54 54 52 4b 09 45 51 55 09 32 37 09 3b 53 45 54 20 54 52 41 43 4b 0d 0a 53 45 54 53 45 43 09 45 ┆TTRK EQU 27 ;SET TRACK SETSEC E┆ 0x053780…0537a0 51 55 09 33 30 09 3b 53 45 54 20 53 45 43 54 4f 52 0d 0a 53 45 54 44 4d 41 09 45 51 55 09 33 33 ┆QU 30 ;SET SECTOR SETDMA EQU 33┆ 0x0537a0…0537c0 09 3b 53 45 54 20 44 4d 41 20 41 44 44 52 45 53 53 0d 0a 52 45 41 44 46 09 45 51 55 09 33 36 09 ┆ ;SET DMA ADDRESS READF EQU 36 ┆ 0x0537c0…0537e0 3b 52 45 41 44 20 44 49 53 4b 0d 0a 57 52 49 54 46 09 45 51 55 09 33 39 09 3b 57 52 49 54 45 20 ┆;READ DISK WRITF EQU 39 ;WRITE ┆ 0x0537e0…053800 44 49 53 4b 0d 0a 3b 0d 0a 53 45 4c 3a 09 3b 53 45 4c 45 43 54 20 44 52 49 56 45 20 47 49 56 45 ┆DISK ; SEL: ;SELECT DRIVE GIVE┆ 0x053800…053820 (22, 0, 9) 55 50 20 44 46 43 42 0d 0a 20 30 31 46 32 20 32 31 30 37 30 34 20 20 20 20 09 4c 58 49 09 48 2c ┆UP DFCB 01F2 210704 LXI H,┆ 0x053820…053840 44 46 43 42 09 09 3b 0d 0a 20 30 31 46 35 20 31 41 20 20 20 20 20 20 20 20 4d 46 43 42 3a 09 4c ┆DFCB ; 01F5 1A MFCB: L┆ 0x053840…053860 44 41 58 09 44 09 09 3b 0d 0a 20 30 31 46 36 20 31 33 20 20 20 20 20 20 20 20 09 49 4e 58 09 44 ┆DAX D ; 01F6 13 INX D┆ 0x053860…053880 09 09 3b 0d 0a 20 30 31 46 37 20 37 37 20 20 20 20 20 20 20 20 09 4d 4f 56 09 4d 2c 41 09 09 3b ┆ ; 01F7 77 MOV M,A ;┆ 0x053880…0538a0 0d 0a 20 30 31 46 38 20 32 33 20 20 20 20 20 20 20 20 09 49 4e 58 09 48 09 09 3b 0d 0a 20 30 31 ┆ 01F8 23 INX H ; 01┆ 0x0538a0…0538c0 46 39 20 30 44 20 20 20 20 20 20 20 20 09 44 43 52 09 43 09 09 3b 0d 0a 20 30 31 46 41 20 43 32 ┆F9 0D DCR C ; 01FA C2┆ 0x0538c0…0538e0 46 35 30 31 20 20 20 20 09 4a 4e 5a 09 4d 46 43 42 09 09 3b 0d 0a 20 30 31 46 44 20 41 46 20 20 ┆F501 JNZ MFCB ; 01FD AF ┆ 0x0538e0…053900 20 20 20 20 20 20 09 58 52 41 09 41 09 09 3b 0d 0a 20 30 31 46 45 20 33 32 32 37 30 34 20 20 20 ┆ XRA A ; 01FE 322704 ┆ 0x053900…053920 20 09 53 54 41 09 44 46 43 42 43 52 09 09 3b 20 43 55 52 52 45 4e 54 20 52 45 43 28 44 46 43 42 ┆ STA DFCBCR ; CURRENT REC(DFCB┆ 0x053920…053940 29 3a 3d 30 3b 0d 0a 20 30 32 30 31 20 31 31 41 41 30 33 20 20 20 20 09 4c 58 49 09 44 2c 53 57 ┆):=0; 0201 11AA03 LXI D,SW┆ 0x053940…053960 4f 50 44 09 09 3b 0d 0a 20 30 32 30 34 20 43 44 30 33 30 33 20 20 20 20 09 43 41 4c 4c 09 50 52 ┆OPD ; 0204 CD0303 CALL PR┆ 0x053960…053980 49 4e 54 09 09 3b 0d 0a 20 30 32 30 37 20 43 44 43 41 30 32 20 20 20 20 09 43 41 4c 4c 09 43 4f ┆INT ; 0207 CDCA02 CALL CO┆ 0x053980…0539a0 4e 53 49 09 09 3b 0d 0a 20 30 32 30 41 20 32 41 46 45 30 33 20 20 20 20 09 4c 48 4c 44 09 53 46 ┆NSI ; 020A 2AFE03 LHLD SF┆ 0x0539a0…0539c0 09 09 3b 0d 0a 20 30 32 30 44 20 43 44 45 30 30 31 20 20 20 20 09 43 41 4c 4c 09 53 45 54 46 09 ┆ ; 020D CDE001 CALL SETF ┆ 0x0539c0…0539e0 09 3b 20 53 45 54 20 53 4f 55 52 43 45 20 46 4f 52 4d 41 54 0d 0a 20 30 32 31 30 20 43 44 44 42 ┆ ; SET SOURCE FORMAT 0210 CDDB┆ 0x0539e0…053a00 30 32 20 20 20 20 09 43 41 4c 4c 09 52 45 53 45 54 09 09 3b 0d 0a 20 30 32 31 33 20 31 31 35 43 ┆02 CALL RESET ; 0213 115C┆ 0x053a00…053a20 (22, 0, 10) 31 31 45 30 33 33 43 36 37 0d 0a 3a 31 30 30 32 37 30 30 30 43 43 43 32 30 32 31 31 34 38 30 34 ┆11E033C67 :10027000CCC202114804┆ 0x053a20…053a40 44 35 43 44 46 45 30 32 31 31 30 37 30 34 43 44 46 34 30 32 31 30 0d 0a 3a 31 30 30 32 38 30 30 ┆D5CDFE02110704CDF40210 :1002800┆ 0x053a40…053a60 30 31 31 33 33 30 33 42 37 43 34 43 32 30 32 44 31 32 31 38 30 30 30 31 39 45 42 44 35 43 44 46 ┆0113303B7C4C202D121800019EBD5CDF┆ 0x053a60…053a80 45 44 32 0d 0a 3a 31 30 30 32 39 30 30 30 30 32 32 31 30 34 30 34 33 35 43 32 37 41 30 32 44 31 ┆ED2 :100290000221040435C27A02D1┆ 0x053a80…053aa0 31 31 30 37 30 34 43 44 45 35 30 32 31 31 30 45 0d 0a 3a 31 30 30 32 41 30 30 30 34 37 30 33 33 ┆110704CDE502110E :1002A00047033┆ 0x053aa0…053ac0 43 43 43 43 32 30 32 31 31 35 41 30 33 43 44 30 33 30 33 31 31 44 31 30 33 43 44 34 35 0d 0a 3a ┆CCCC202115A03CD030311D103CD45 :┆ 0x053ac0…053ae0 31 30 30 32 42 30 30 30 30 33 30 33 43 44 43 41 30 32 32 41 46 41 30 33 43 44 45 30 30 31 43 44 ┆1002B0000303CDCA022AFA03CDE001CD┆ 0x053ae0…053b00 44 42 30 32 32 41 30 35 46 31 0d 0a 3a 31 30 30 32 43 30 30 30 30 34 45 39 30 45 30 39 43 44 30 ┆DB022A05F1 :1002C00004E90E09CD0┆ 0x053b00…053b20 35 30 30 43 33 41 43 30 32 30 45 30 31 43 44 30 35 30 30 46 45 30 38 0d 0a 3a 31 30 30 32 44 30 ┆500C3AC020E01CD0500FE08 :1002D0┆ 0x053b20…053b40 30 30 30 33 43 30 32 41 46 41 30 33 43 44 45 30 30 31 43 33 30 30 30 30 30 45 30 44 43 33 30 35 ┆0003C02AFA03CDE001C300000E0DC305┆ 0x053b40…053b60 30 30 45 30 0d 0a 3a 31 30 30 32 45 30 30 30 30 45 30 46 43 33 30 35 30 30 30 45 31 30 43 33 30 ┆00E0 :1002E0000E0FC305000E10C30┆ 0x053b60…053b80 35 30 30 30 45 31 33 43 33 30 35 30 30 30 45 34 43 0d 0a 3a 31 30 30 32 46 30 30 30 31 34 43 33 ┆5000E13C305000E4C :1002F00014C3┆ 0x053b80…053ba0 30 35 30 30 30 45 31 35 43 33 30 35 30 30 30 45 31 36 43 33 30 35 30 30 30 45 31 41 32 33 0d 0a ┆05000E15C305000E16C305000E1A23 ┆ 0x053ba0…053bc0 3a 31 30 30 33 30 30 30 30 43 33 30 35 30 30 30 45 30 39 43 33 30 35 30 30 30 45 31 39 43 33 30 ┆:10030000C305000E09C305000E19C30┆ 0x053bc0…053be0 35 30 30 34 45 34 46 32 30 39 41 0d 0a 3a 31 30 30 33 31 30 30 30 35 33 34 46 35 35 35 32 34 33 ┆5004E4F209A :10031000534F555243┆ 0x053be0…053c00 34 35 32 30 34 36 34 39 34 43 34 35 30 44 30 41 32 34 34 45 34 46 46 34 0d 0a 3a 31 30 30 33 32 ┆452046494C450D0A244E4FF4 :10032┆ 0x053c00…053c20 (22, 0, 11) 39 35 33 34 42 32 30 32 35 0d 0a 3a 31 30 30 32 37 30 30 30 34 31 34 45 34 34 32 30 35 34 35 39 ┆9534B2025 :10027000414E44205459┆ 0x053c20…053c40 35 30 34 35 32 30 33 43 35 32 34 35 35 34 35 35 35 32 34 45 30 44 0d 0a 3a 31 30 30 32 38 30 30 ┆5045203C52455455524E0D :1002800┆ 0x053c40…053c60 30 33 45 30 44 30 41 32 34 34 39 34 45 35 33 34 35 35 32 35 34 32 30 35 33 34 46 35 35 35 32 34 ┆03E0D0A24494E5345525420534F55524┆ 0x053c60…053c80 33 37 34 0d 0a 3a 31 30 30 32 39 30 30 30 34 35 32 30 34 34 34 39 35 33 34 42 32 30 34 31 34 45 ┆374 :1002900045204449534B20414E┆ 0x053c80…053ca0 34 34 32 30 35 34 35 39 35 30 34 35 32 30 35 39 0d 0a 3a 30 43 30 32 41 30 30 30 33 43 35 32 34 ┆4420545950452059 :0C02A0003C524┆ 0x053ca0…053cc0 35 35 34 35 35 35 32 34 45 33 45 30 44 30 41 32 34 30 30 42 44 0d 0a 3a 30 32 30 32 45 44 30 30 ┆55455524E3E0D0A2400BD :0202ED00┆ 0x053cc0…053ce0 30 30 30 30 30 46 0d 0a 3a 30 31 30 33 32 46 30 30 30 30 43 44 0d 0a 3a 30 30 30 31 30 30 30 30 ┆00000F :01032F0000CD :00010000┆ 0x053ce0…053d00 46 46 0d 0a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆FF ┆ 0x053d00…053d20 16 50 49 50 20 53 54 41 54 33 2e 43 4f 4d 3d 53 54 41 54 2e 43 4f 4d 00 24 24 35 0d 0a 45 52 41 ┆ PIP STAT3.COM=STAT.COM $$5 ERA┆ 0x053d20…053d40 20 53 54 41 54 31 2e 43 4f 4d 0d 0a 45 52 41 20 53 54 41 54 32 2e 43 4f 4d 0d 0a 45 52 41 20 53 ┆ STAT1.COM ERA STAT2.COM ERA S┆ 0x053d40…053d60 54 41 54 33 2e 43 4f 4d 0d 0a 45 52 41 20 53 54 41 54 34 2e 43 4f 4d 0d 0a 45 52 41 20 53 54 41 ┆TAT3.COM ERA STAT4.COM ERA STA┆ 0x053d60…053d80 54 35 2e 43 4f 4d 0d 0a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆T5.COM ┆ 0x053d80…053da0 05 53 54 41 54 32 00 24 54 33 2e 43 4f 4d 3d 53 54 41 54 2e 43 4f 4d 00 24 24 35 0d 0a 45 52 41 ┆ STAT2 $T3.COM=STAT.COM $$5 ERA┆ 0x053da0…053dc0 20 53 54 41 54 31 2e 43 4f 4d 0d 0a 45 52 41 20 53 54 41 54 32 2e 43 4f 4d 0d 0a 45 52 41 20 53 ┆ STAT1.COM ERA STAT2.COM ERA S┆ 0x053dc0…053de0 54 41 54 33 2e 43 4f 4d 0d 0a 45 52 41 20 53 54 41 54 34 2e 43 4f 4d 0d 0a 45 52 41 20 53 54 41 ┆TAT3.COM ERA STAT4.COM ERA STA┆ 0x053de0…053e00 54 35 2e 43 4f 4d 0d 0a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆T5.COM ┆ 0x053e00…053e20 (22, 0, 12) 4e 20 42 59 20 52 45 47 49 53 54 45 52 20 41 0d 0a 09 4d 4f 56 20 43 2c 41 21 20 4c 48 4c 44 20 ┆N BY REGISTER A MOV C,A! LHLD ┆ 0x053e20…053e40 57 42 4f 4f 54 21 20 4c 58 49 20 44 2c 53 45 4c 44 53 4b 21 20 44 41 44 20 44 21 20 50 43 48 4c ┆WBOOT! LXI D,SELDSK! DAD D! PCHL┆ 0x053e40…053e60 0d 0a 3b 0d 0a 54 52 4b 3a 09 3b 53 45 54 20 54 52 41 43 4b 20 47 49 56 45 4e 20 42 59 20 43 0d ┆ ; TRK: ;SET TRACK GIVEN BY C ┆ 0x053e60…053e80 0a 09 4c 48 4c 44 20 57 42 4f 4f 54 21 20 4c 58 49 20 44 2c 53 45 54 54 52 4b 21 20 44 41 44 20 ┆ LHLD WBOOT! LXI D,SETTRK! DAD ┆ 0x053e80…053ea0 44 21 20 50 43 48 4c 0d 0a 3b 0d 0a 53 45 43 3a 09 3b 53 45 54 20 53 45 43 54 4f 52 20 47 49 56 ┆D! PCHL ; SEC: ;SET SECTOR GIV┆ 0x053ea0…053ec0 45 4e 20 42 59 20 43 0d 0a 09 4c 48 4c 44 20 57 42 4f 4f 54 21 20 4c 58 49 20 44 2c 53 45 54 53 ┆EN BY C LHLD WBOOT! LXI D,SETS┆ 0x053ec0…053ee0 45 43 21 20 44 41 44 20 44 21 20 50 43 48 4c 0d 0a 3b 0d 0a 44 4d 41 3a 09 3b 53 45 54 20 44 4d ┆EC! DAD D! PCHL ; DMA: ;SET DM┆ 0x053ee0…053f00 41 20 41 44 44 52 45 53 53 20 54 4f 20 56 41 4c 55 45 20 4f 46 20 42 2c 43 0d 0a 09 4c 48 4c 44 ┆A ADDRESS TO VALUE OF B,C LHLD┆ 0x053f00…053f20 20 57 42 4f 4f 54 21 20 4c 58 49 20 44 2c 53 45 54 44 4d 41 21 20 44 41 44 20 44 21 20 50 43 48 ┆ WBOOT! LXI D,SETDMA! DAD D! PCH┆ 0x053f20…053f40 4c 0d 0a 3b 0d 0a 44 52 45 41 44 3a 09 3b 50 45 52 46 4f 52 4d 20 52 45 41 44 20 4f 50 45 52 41 ┆L ; DREAD: ;PERFORM READ OPERA┆ 0x053f40…053f60 54 49 4f 4e 0d 0a 09 4c 48 4c 44 20 57 42 4f 4f 54 21 20 4c 58 49 20 44 2c 52 45 41 44 46 21 20 ┆TION LHLD WBOOT! LXI D,READF! ┆ 0x053f60…053f80 44 41 44 20 44 21 20 50 43 48 4c 0d 0a 3b 0d 0a 44 57 52 49 54 45 3a 09 3b 50 45 52 46 4f 52 4d ┆DAD D! PCHL ; DWRITE: ;PERFORM┆ 0x053f80…053fa0 20 57 52 49 54 45 20 4f 50 45 52 41 54 49 4f 4e 0d 0a 09 4c 48 4c 44 20 57 42 4f 4f 54 21 20 4c ┆ WRITE OPERATION LHLD WBOOT! L┆ 0x053fa0…053fc0 58 49 20 44 2c 57 52 49 54 46 21 20 44 41 44 20 44 21 20 4d 56 49 20 43 2c 32 20 21 20 50 43 48 ┆XI D,WRITF! DAD D! MVI C,2 ! PCH┆ 0x053fc0…053fe0 4c 0d 0a 3b 0d 0a 53 54 41 52 54 3a 0d 0a 09 4c 58 49 09 53 50 2c 53 54 41 43 4b 0d 0a 09 4d 56 ┆L ; START: LXI SP,STACK MV┆ 0x053fe0…054000 49 09 43 2c 31 32 30 0d 0a 09 49 4e 09 53 57 31 0d 0a 09 41 4e 49 09 30 38 30 48 0d 0a 09 4a 5a ┆I C,120 IN SW1 ANI 080H JZ┆ 0x054000…054020 (22, 0, 13) 30 30 20 20 20 20 09 4c 58 49 09 44 2c 53 46 43 42 09 09 3b 0d 0a 20 30 32 31 36 20 43 44 45 30 ┆00 LXI D,SFCB ; 0216 CDE0┆ 0x054020…054040 30 32 20 20 20 20 09 43 41 4c 4c 09 4f 50 45 4e 09 09 3b 20 4f 50 45 4e 20 53 4f 55 52 43 45 20 ┆02 CALL OPEN ; OPEN SOURCE ┆ 0x054040…054060 46 49 4c 45 0d 0a 20 30 32 31 39 20 31 31 30 44 30 33 20 20 20 20 09 4c 58 49 09 44 2c 4e 4f 46 ┆FILE 0219 110D03 LXI D,NOF┆ 0x054060…054080 49 4c 45 09 3b 0d 0a 20 30 32 31 43 20 33 43 20 20 20 20 20 20 20 20 09 49 4e 52 09 41 09 09 3b ┆ILE ; 021C 3C INR A ;┆ 0x054080…0540a0 0d 0a 20 30 32 31 44 20 43 43 43 32 30 32 20 20 20 20 09 43 5a 09 46 49 4e 49 53 09 09 3b 0d 0a ┆ 021D CCC202 CZ FINIS ; ┆ 0x0540a0…0540c0 20 30 32 32 30 20 31 31 34 38 30 34 20 20 20 20 09 4c 58 49 09 44 2c 42 55 46 09 09 3b 0d 0a 20 ┆ 0220 114804 LXI D,BUF ; ┆ 0x0540c0…0540e0 30 32 32 33 20 33 45 30 30 20 20 20 20 20 20 09 4d 56 49 09 41 2c 30 09 09 3b 20 53 45 43 54 4f ┆0223 3E00 MVI A,0 ; SECTO┆ 0x0540e0…054100 52 43 4f 55 4e 54 3a 3d 20 31 3b 0d 0a 20 30 32 32 35 20 33 32 30 34 30 34 20 20 20 20 09 53 54 ┆RCOUNT:= 1; 0225 320404 ST┆ 0x054100…054120 41 09 53 45 43 43 4e 54 09 09 3b 0d 0a 20 30 32 32 38 20 44 35 20 20 20 20 20 20 20 20 09 50 55 ┆A SECCNT ; 0228 D5 PU┆ 0x054120…054140 53 48 09 44 09 09 3b 0d 0a 20 30 32 32 39 20 43 44 46 45 30 32 20 20 20 20 09 43 41 4c 4c 09 53 ┆SH D ; 0229 CDFE02 CALL S┆ 0x054140…054160 45 54 44 4d 41 09 09 3b 20 53 45 54 20 42 55 46 46 45 52 20 41 44 44 52 45 53 53 0d 0a 20 30 32 ┆ETDMA ; SET BUFFER ADDRESS 02┆ 0x054160…054180 32 43 20 31 31 35 43 30 30 20 20 20 20 52 44 41 54 41 3a 09 4c 58 49 09 44 2c 53 46 43 42 09 09 ┆2C 115C00 RDATA: LXI D,SFCB ┆ 0x054180…0541a0 3b 0d 0a 20 30 32 32 46 20 43 44 45 46 30 32 20 20 20 20 09 43 41 4c 4c 09 52 45 41 44 09 09 3b ┆; 022F CDEF02 CALL READ ;┆ 0x0541a0…0541c0 0d 0a 20 30 32 33 32 20 42 37 20 20 20 20 20 20 20 20 09 4f 52 41 09 41 09 09 3b 20 52 45 41 44 ┆ 0232 B7 ORA A ; READ┆ 0x0541c0…0541e0 20 52 45 43 4f 52 44 3a 0d 0a 20 30 32 33 33 20 43 32 34 44 30 32 20 20 20 20 09 4a 4e 5a 09 45 ┆ RECORD: 0233 C24D02 JNZ E┆ 0x0541e0…054200 4f 46 49 4c 45 09 09 3b 0d 0a 20 30 32 33 36 20 44 31 20 20 20 20 20 20 20 20 09 50 4f 50 09 44 ┆OFILE ; 0236 D1 POP D┆ 0x054200…054220 (22, 0, 14) 30 30 30 32 30 34 34 34 39 35 32 34 35 34 33 35 34 34 46 35 32 35 39 32 30 35 33 35 30 34 31 34 ┆000204449524543544F5259205350414┆ 0x054220…054240 33 34 35 36 43 0d 0a 3a 31 30 30 33 33 30 30 30 30 44 30 41 32 34 34 46 35 35 35 34 32 30 34 46 ┆3456C :100330000D0A244F5554204F┆ 0x054240…054260 34 36 32 30 34 34 34 31 35 34 34 31 32 30 35 33 32 38 0d 0a 3a 31 30 30 33 34 30 30 30 35 30 34 ┆462044415441205328 :10034000504┆ 0x054260…054280 31 34 33 34 35 30 44 30 41 32 34 35 37 35 32 34 39 35 34 34 35 32 30 35 30 35 32 34 46 42 44 0d ┆143450D0A2457524954452050524FBD ┆ 0x054280…0542a0 0a 3a 31 30 30 33 35 30 30 30 35 34 34 35 34 33 35 34 34 35 34 34 33 46 30 44 30 41 32 34 35 34 ┆ :100350005445435445443F0D0A2454┆ 0x0542a0…0542c0 35 32 34 31 34 45 35 33 34 36 39 43 0d 0a 3a 31 30 30 33 36 30 30 30 34 35 35 32 32 30 34 33 34 ┆52414E53469C :10036000455220434┆ 0x0542c0…0542e0 46 34 44 35 30 34 43 34 35 35 34 34 35 34 34 30 44 30 41 32 34 34 36 42 38 0d 0a 3a 31 30 30 33 ┆F4D504C455445440D0A2446B8 :1003┆ 0x0542e0…054300 37 30 30 30 34 39 34 43 34 35 32 30 35 34 34 46 34 46 32 30 34 32 34 39 34 37 30 44 30 41 32 34 ┆7000494C4520544F4F204249470D0A24┆ 0x054300…054320 34 39 34 45 43 44 0d 0a 3a 31 30 30 33 38 30 30 30 35 33 34 35 35 32 35 34 32 30 34 34 34 35 35 ┆494ECD :10038000534552542044455┆ 0x054320…054340 33 35 34 34 39 34 45 34 31 35 34 34 39 34 46 34 45 43 44 0d 0a 3a 31 30 30 33 39 30 30 30 32 30 ┆354494E4154494F4ECD :1003900020┆ 0x054340…054360 34 34 34 39 35 33 34 42 32 30 34 31 34 45 34 34 32 30 35 34 35 39 35 30 34 35 32 30 33 43 36 31 ┆4449534B20414E442054595045203C61┆ 0x054360…054380 0d 0a 3a 31 30 30 33 41 30 30 30 35 32 34 35 35 34 35 35 35 32 34 45 33 45 30 44 30 41 32 34 34 ┆ :1003A00052455455524E3E0D0A244┆ 0x054380…0543a0 39 34 45 35 33 34 35 35 32 35 34 31 46 0d 0a 3a 31 30 30 33 42 30 30 30 32 30 35 33 34 46 35 35 ┆94E534552541F :1003B00020534F55┆ 0x0543a0…0543c0 35 32 34 33 34 35 32 30 34 34 34 39 35 33 34 42 32 30 34 31 34 45 34 34 30 45 0d 0a 3a 31 30 30 ┆524345204449534B20414E440E :100┆ 0x0543c0…0543e0 33 43 30 30 30 32 30 35 34 35 39 35 30 34 35 32 30 33 43 35 32 34 35 35 34 35 35 35 32 34 45 33 ┆3C0002054595045203C52455455524E3┆ 0x0543e0…054400 45 30 44 30 41 33 41 0d 0a 3a 31 30 30 33 44 30 30 30 32 34 34 39 34 45 35 33 34 35 35 32 35 34 ┆E0D0A3A :1003D00024494E53455254┆ 0x054400…054420 (22, 0, 15) 16 50 49 50 20 53 54 41 54 32 2e 43 4f 4d 3d 53 54 41 54 2e 43 4f 4d 00 24 24 35 0d 0a 45 52 41 ┆ PIP STAT2.COM=STAT.COM $$5 ERA┆ 0x054420…054440 20 53 54 41 54 31 2e 43 4f 4d 0d 0a 45 52 41 20 53 54 41 54 32 2e 43 4f 4d 0d 0a 45 52 41 20 53 ┆ STAT1.COM ERA STAT2.COM ERA S┆ 0x054440…054460 54 41 54 33 2e 43 4f 4d 0d 0a 45 52 41 20 53 54 41 54 34 2e 43 4f 4d 0d 0a 45 52 41 20 53 54 41 ┆TAT3.COM ERA STAT4.COM ERA STA┆ 0x054460…054480 54 35 2e 43 4f 4d 0d 0a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆T5.COM ┆ 0x054480…0544a0 05 53 54 41 54 31 00 24 54 32 2e 43 4f 4d 3d 53 54 41 54 2e 43 4f 4d 00 24 24 35 0d 0a 45 52 41 ┆ STAT1 $T2.COM=STAT.COM $$5 ERA┆ 0x0544a0…0544c0 20 53 54 41 54 31 2e 43 4f 4d 0d 0a 45 52 41 20 53 54 41 54 32 2e 43 4f 4d 0d 0a 45 52 41 20 53 ┆ STAT1.COM ERA STAT2.COM ERA S┆ 0x0544c0…0544e0 54 41 54 33 2e 43 4f 4d 0d 0a 45 52 41 20 53 54 41 54 34 2e 43 4f 4d 0d 0a 45 52 41 20 53 54 41 ┆TAT3.COM ERA STAT4.COM ERA STA┆ 0x0544e0…054500 54 35 2e 43 4f 4d 0d 0a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆T5.COM ┆ 0x054500…054520 16 50 49 50 20 53 54 41 54 31 2e 43 4f 4d 3d 53 54 41 54 2e 43 4f 4d 00 24 24 35 0d 0a 45 52 41 ┆ PIP STAT1.COM=STAT.COM $$5 ERA┆ 0x054520…054540 20 53 54 41 54 31 2e 43 4f 4d 0d 0a 45 52 41 20 53 54 41 54 32 2e 43 4f 4d 0d 0a 45 52 41 20 53 ┆ STAT1.COM ERA STAT2.COM ERA S┆ 0x054540…054560 54 41 54 33 2e 43 4f 4d 0d 0a 45 52 41 20 53 54 41 54 34 2e 43 4f 4d 0d 0a 45 52 41 20 53 54 41 ┆TAT3.COM ERA STAT4.COM ERA STA┆ 0x054560…054580 54 35 2e 43 4f 4d 0d 0a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆T5.COM ┆ 0x054580…0545a0 05 53 54 41 54 32 00 24 54 33 2e 43 4f 4d 3d 53 54 41 54 2e 43 4f 4d 00 24 24 35 0d 0a 45 52 41 ┆ STAT2 $T3.COM=STAT.COM $$5 ERA┆ 0x0545a0…0545c0 20 53 54 41 54 31 2e 43 4f 4d 0d 0a 45 52 41 20 53 54 41 54 32 2e 43 4f 4d 0d 0a 45 52 41 20 53 ┆ STAT1.COM ERA STAT2.COM ERA S┆ 0x0545c0…0545e0 54 41 54 33 2e 43 4f 4d 0d 0a 45 52 41 20 53 54 41 54 34 2e 43 4f 4d 0d 0a 45 52 41 20 53 54 41 ┆TAT3.COM ERA STAT4.COM ERA STA┆ 0x0545e0…054600 54 35 2e 43 4f 4d 0d 0a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆T5.COM ┆ 0x054600…054620 (22, 1, 1) 09 53 45 54 53 50 54 0d 0a 09 4d 56 49 09 43 2c 37 32 0d 0a 53 45 54 53 50 54 3a 09 4d 4f 56 09 ┆ SETSPT MVI C,72 SETSPT: MOV ┆ 0x054620…054640 41 2c 43 0d 0a 09 53 54 41 09 53 50 54 0d 0a 09 43 41 4c 4c 09 4f 52 47 4d 53 47 09 3b 4f 52 49 ┆A,C STA SPT CALL ORGMSG ;ORI┆ 0x054640…054660 47 49 4e 20 50 52 4f 4d 50 54 0d 0a 09 43 41 4c 4c 09 52 45 41 44 0d 0a 09 4c 58 49 20 48 2c 4f ┆GIN PROMPT CALL READ LXI H,O┆ 0x054660…054680 52 49 47 49 4e 21 20 4d 4f 56 20 4d 2c 43 21 20 69 6e 78 20 68 21 20 6d 6f 76 20 6d 2c 62 20 3b ┆RIGIN! MOV M,C! inx h! mov m,b ;┆ 0x054680…0546a0 53 41 56 45 44 20 54 48 45 20 4f 52 49 47 49 4e 20 4e 55 4d 42 45 52 0d 0a 09 4c 58 49 20 48 2c ┆SAVED THE ORIGIN NUMBER LXI H,┆ 0x0546a0…0546c0 43 4f 4d 4c 45 4e 21 20 4d 4f 56 20 42 2c 4d 21 20 49 4e 58 20 48 21 20 58 43 48 47 0d 0a 09 4c ┆COMLEN! MOV B,M! INX H! XCHG L┆ 0x0546c0…0546e0 58 49 20 48 2c 41 4f 52 49 47 49 4e 20 3b 41 53 43 49 49 20 56 45 52 53 49 4f 4e 20 4f 46 20 54 ┆XI H,AORIGIN ;ASCII VERSION OF T┆ 0x0546e0…054700 48 45 20 4f 52 49 47 49 4e 0d 0a 09 4f 52 47 32 3a 20 4c 44 41 58 20 44 21 20 4f 52 41 20 41 21 ┆HE ORIGIN ORG2: LDAX D! ORA A!┆ 0x054700…054720 20 4a 5a 20 4f 52 47 33 0d 0a 09 09 49 4e 58 20 44 21 20 4d 4f 56 20 4d 2c 41 21 20 49 4e 58 20 ┆ JZ ORG3 INX D! MOV M,A! INX ┆ 0x054720…054740 48 21 20 44 43 52 20 42 21 20 4a 4e 5a 20 4f 52 47 32 0d 0a 09 09 3b 41 53 43 49 49 20 56 45 52 ┆H! DCR B! JNZ ORG2 ;ASCII VER┆ 0x054740…054760 53 49 4f 4e 20 4d 4f 56 45 44 20 54 4f 20 42 55 46 46 45 52 2c 20 50 41 44 20 49 54 0d 0a 09 4f ┆SION MOVED TO BUFFER, PAD IT O┆ 0x054760…054780 52 47 33 3a 09 4d 56 49 20 4d 2c 27 2d 27 21 20 49 4e 58 20 48 21 20 4d 56 49 20 4d 2c 27 24 27 ┆RG3: MVI M,'-'! INX H! MVI M,'$'┆ 0x054780…0547a0 20 3b 52 45 41 44 59 20 46 4f 52 20 50 52 49 4e 54 49 4e 47 0d 0a 3b 0d 0a 3b 09 4e 4f 57 20 52 ┆ ;READY FOR PRINTING ; ; NOW R┆ 0x0547a0…0547c0 45 41 44 20 54 48 45 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 0d 0a 09 43 41 4c 4c 20 53 45 52 ┆EAD THE SERIAL NUMBER CALL SER┆ 0x0547c0…0547e0 4d 53 47 21 20 43 41 4c 4c 20 52 45 41 44 0d 0a 09 4c 58 49 20 48 2c 42 53 45 52 49 41 4c 21 20 ┆MSG! CALL READ LXI H,BSERIAL! ┆ 0x0547e0…054800 4d 4f 56 20 4d 2c 43 21 20 49 4e 58 20 48 21 20 4d 4f 56 20 4d 2c 42 20 3b 42 49 4e 41 52 59 20 ┆MOV M,C! INX H! MOV M,B ;BINARY ┆ 0x054800…054820 (22, 1, 2) 09 58 43 48 47 21 20 4c 48 4c 44 20 42 53 45 52 49 41 4c 21 20 58 43 48 47 21 20 4d 4f 56 20 4d ┆ XCHG! LHLD BSERIAL! XCHG! MOV M┆ 0x054820…054840 2c 44 21 20 49 4e 58 20 48 21 20 4d 4f 56 20 4d 2c 45 0d 0a 09 09 3b 46 49 52 53 54 20 53 45 52 ┆,D! INX H! MOV M,E ;FIRST SER┆ 0x054840…054860 49 41 4c 20 4e 55 4d 42 45 52 20 49 53 20 53 54 4f 52 45 44 2c 20 4e 4f 57 20 43 4f 50 59 20 54 ┆IAL NUMBER IS STORED, NOW COPY T┆ 0x054860…054880 4f 20 42 44 4f 53 0d 0a 09 09 50 4f 50 20 42 21 20 50 55 53 48 20 42 21 20 4c 58 49 20 44 2c 42 ┆O BDOS POP B! PUSH B! LXI D,B┆ 0x054880…0548a0 44 4f 53 56 0d 0a 3b 09 09 43 4f 4d 50 55 54 45 20 44 49 46 46 45 52 45 4e 43 45 20 49 4e 20 41 ┆DOSV ; COMPUTE DIFFERENCE IN A┆ 0x0548a0…0548c0 44 44 52 45 53 53 45 53 20 46 4f 52 20 4c 41 54 45 52 0d 0a 09 09 4d 4f 56 20 41 2c 45 21 20 53 ┆DDRESSES FOR LATER MOV A,E! S┆ 0x0548c0…0548e0 55 42 20 43 21 20 4d 4f 56 20 4c 2c 41 0d 0a 09 09 4d 4f 56 20 41 2c 44 21 20 53 42 42 20 42 21 ┆UB C! MOV L,A MOV A,D! SBB B!┆ 0x0548e0…054900 20 4d 4f 56 20 48 2c 41 21 20 53 48 4c 44 20 53 44 49 46 46 0d 0a 09 09 50 4f 50 20 48 21 20 4d ┆ MOV H,A! SHLD SDIFF POP H! M┆ 0x054900…054920 56 49 20 43 2c 36 20 3b 4c 45 4e 47 54 48 20 4f 46 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 0d ┆VI C,6 ;LENGTH OF SERIAL NUMBER ┆ 0x054920…054940 0a 3b 09 09 48 2c 4c 20 41 44 44 52 45 53 53 20 53 54 41 52 54 20 4f 46 20 53 45 52 49 41 4c 20 ┆ ; H,L ADDRESS START OF SERIAL ┆ 0x054940…054960 4e 55 4d 42 45 52 2c 20 44 2c 45 20 41 44 44 52 45 53 53 20 53 45 43 4f 4e 44 20 23 0d 0a 09 09 ┆NUMBER, D,E ADDRESS SECOND # ┆ 0x054960…054980 43 4f 50 59 30 3a 20 4d 4f 56 20 41 2c 4d 21 20 53 54 41 58 20 44 21 20 49 4e 58 20 44 21 20 49 ┆COPY0: MOV A,M! STAX D! INX D! I┆ 0x054980…0549a0 4e 58 20 48 21 20 44 43 52 20 43 0d 0a 09 09 09 4a 4e 5a 20 43 4f 50 59 30 0d 0a 09 09 3b 42 44 ┆NX H! DCR C JNZ COPY0 ;BD┆ 0x0549a0…0549c0 4f 53 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 20 49 53 20 43 4f 50 49 45 44 0d 0a 09 09 4a 4d ┆OS SERIAL NUMBER IS COPIED JM┆ 0x0549c0…0549e0 50 20 52 44 54 52 4b 4e 0d 0a 09 09 3b 0d 0a 09 4e 4f 4d 41 54 43 48 3a 20 3b 54 52 59 20 46 4f ┆P RDTRKN ; NOMATCH: ;TRY FO┆ 0x0549e0…054a00 52 20 4e 45 58 54 20 4d 41 54 43 48 0d 0a 09 09 50 4f 50 20 42 21 20 50 4f 50 20 48 21 20 49 4e ┆R NEXT MATCH POP B! POP H! IN┆ 0x054a00…054a20 (22, 1, 3) 4b 0d 0a 09 09 3b 0d 0a 09 52 44 54 52 4b 4e 3a 0d 0a 09 09 3b 43 48 45 43 4b 20 46 4f 52 20 4d ┆K ; RDTRKN: ;CHECK FOR M┆ 0x054a20…054a40 4f 56 43 50 4d 2e 43 4f 4d 20 53 45 52 49 41 4c 49 5a 41 54 49 4f 4e 0d 0a 09 09 4c 58 49 20 48 ┆OVCPM.COM SERIALIZATION LXI H┆ 0x054a40…054a60 2c 53 54 52 41 43 4b 21 20 4d 4f 56 20 41 2c 4d 21 20 4f 52 41 20 41 21 20 4a 5a 20 4e 4f 53 45 ┆,STRACK! MOV A,M! ORA A! JZ NOSE┆ 0x054a60…054a80 52 0d 0a 09 09 3b 41 4c 52 45 41 44 59 20 53 45 52 49 41 4c 49 5a 45 44 20 49 46 20 53 54 52 41 ┆R ;ALREADY SERIALIZED IF STRA┆ 0x054a80…054aa0 43 4b 3d 30 0d 0a 09 09 44 43 52 20 4d 21 20 4a 4e 5a 20 4e 4f 53 45 52 20 3b 4e 4f 54 20 4f 4e ┆CK=0 DCR M! JNZ NOSER ;NOT ON┆ 0x054aa0…054ac0 20 50 52 4f 50 45 52 20 54 52 41 43 4b 0d 0a 09 09 3b 4f 4e 20 50 52 4f 50 45 52 20 54 52 41 43 ┆ PROPER TRACK ;ON PROPER TRAC┆ 0x054ac0…054ae0 4b 2c 20 53 44 49 46 46 20 43 4f 4e 54 41 49 4e 53 20 49 4e 44 45 58 20 54 4f 20 42 44 4f 53 20 ┆K, SDIFF CONTAINS INDEX TO BDOS ┆ 0x054ae0…054b00 53 45 52 49 41 4c 23 0d 0a 09 09 09 4c 48 4c 44 20 53 44 49 46 46 21 20 43 41 4c 4c 20 53 54 53 ┆SERIAL# LHLD SDIFF! CALL STS┆ 0x054b00…054b20 45 52 49 41 4c 0d 0a 09 4e 4f 53 45 52 3a 0d 0a 09 09 3b 54 52 41 43 4b 20 49 4e 20 4d 45 4d 4f ┆ERIAL NOSER: ;TRACK IN MEMO┆ 0x054b20…054b40 52 59 2c 20 43 48 45 43 4b 20 46 4f 52 20 4c 41 53 54 20 54 52 41 43 4b 0d 0a 09 09 4c 58 49 20 ┆RY, CHECK FOR LAST TRACK LXI ┆ 0x054b40…054b60 48 2c 49 42 55 46 46 21 20 4c 58 49 20 42 2c 54 52 4c 45 4e 0d 0a 09 09 54 52 43 4f 4d 50 3a 09 ┆H,IBUFF! LXI B,TRLEN TRCOMP: ┆ 0x054b60…054b80 4d 56 49 20 41 2c 30 45 35 48 21 20 43 4d 50 20 4d 21 20 4a 4e 5a 20 57 52 54 52 4b 0d 0a 09 09 ┆MVI A,0E5H! CMP M! JNZ WRTRK ┆ 0x054b80…054ba0 09 49 4e 58 20 48 21 20 44 43 58 20 42 21 20 4d 4f 56 20 41 2c 43 21 20 4f 52 41 20 42 21 20 4a ┆ INX H! DCX B! MOV A,C! ORA B! J┆ 0x054ba0…054bc0 4e 5a 20 54 52 43 4f 4d 50 0d 0a 09 09 3b 45 4e 44 20 4f 46 20 43 4f 50 59 2c 20 41 4c 4c 20 30 ┆NZ TRCOMP ;END OF COPY, ALL 0┆ 0x054bc0…054be0 45 35 48 27 53 0d 0a 09 09 4c 44 41 20 53 54 52 41 43 4b 21 20 4f 52 41 20 41 21 20 4a 5a 20 45 ┆E5H'S LDA STRACK! ORA A! JZ E┆ 0x054be0…054c00 4e 44 43 4f 50 59 0d 0a 09 09 09 3b 4e 4f 54 20 5a 45 52 4f 2c 20 43 4f 55 4c 44 20 4e 4f 54 20 ┆NDCOPY ;NOT ZERO, COULD NOT ┆ 0x054c00…054c20 (22, 1, 4) c9 21 67 15 72 2b 73 2b 70 2b 71 21 68 15 36 01 3e 00 11 66 15 cd ea 14 b5 ca 72 07 2a 64 15 eb ┆ !g r+s+p+q!h 6 > f r *d ┆ 0x054c20…054c40 2a 66 15 cd 7f 14 21 69 15 73 2a 64 15 eb cd 81 14 22 64 15 50 59 21 0a 00 cd 7f 14 eb 22 66 15 ┆*f !i s*d "d PY! "f ┆ 0x054c40…054c60 3e 00 cd d3 14 b5 c6 ff 9f 21 68 15 a6 23 f5 7e 93 d6 01 9f c1 48 a1 1f d2 61 07 cd ab 04 c3 6f ┆> !h # ü H a o┆ 0x054c60…054c80 07 21 68 15 36 00 3a 69 15 c6 30 4f cd 90 04 c3 10 07 c9 21 6d 15 72 2b 73 2b 70 2b 71 2a 6c 15 ┆ !h 6 :i 0O !m r+s+p+q*l ┆ 0x054c80…054ca0 11 54 15 e5 cd 5a 14 eb e1 73 23 72 2a 6c 15 eb 01 00 04 cd e2 14 da b6 07 2a 6c 15 eb 01 00 04 ┆ T Z s#r*l *l ┆ 0x054ca0…054cc0 cd e2 14 eb 2b 73 23 72 2a 6a 15 4e 23 46 03 2b 71 23 70 c3 8c 07 c9 21 6e 15 71 21 00 00 22 6f ┆ +s#r*j N#F +q#p !n q! "o┆ 0x054cc0…054ce0 15 22 71 15 7d 32 75 15 6f 26 00 22 73 15 01 05 00 2a 1e 15 09 eb 01 73 15 cd dd 14 da 0e 08 3a ┆ "q å2u o& "s * s :┆ 0x054ce0…054d00 6e 15 1f d2 f1 07 2a 73 15 44 4d cd db 05 32 75 15 3a 75 15 1f da 01 08 11 71 15 01 6f 15 cd 73 ┆n *s DM 2u :u q o s┆ 0x054d00…054d20 07 11 01 00 2a 73 15 19 22 73 15 d2 ce 07 2a 6f 15 c9 01 b9 01 cd d2 04 c9 01 c7 01 cd d2 04 cd ┆ *s "s *o ┆ 0x054d20…054d40 8a 05 4f 06 00 11 0a 00 cd 01 07 01 d5 01 cd d2 04 21 76 15 36 00 3e 1f 21 76 15 be da 51 08 2a ┆ O !v 6 > !v Q *┆ 0x054d40…054d60 76 15 26 00 01 77 15 09 36 00 60 69 2b 34 c2 36 08 01 cf 29 cd 41 05 01 2a 01 cd 19 05 3a 27 15 ┆v & w 6 `i+4 6 ) A * :' ┆ 0x054d60…054d80 fe ff ca 93 08 3a 27 15 e6 03 87 87 87 87 87 4f 06 00 21 cf 29 09 7e 32 76 15 fe e5 ca 8d 08 3a ┆ :' O ! ) ü2v :┆ 0x054d80…054da0 76 15 e6 1f 4f 06 00 21 77 15 09 36 01 cd 2c 05 c3 5d 08 21 76 15 36 00 3e 1f 21 76 15 be da c2 ┆v O !w 6 , Å !v 6 > !v ┆ 0x054da0…054dc0 08 2a 76 15 26 00 01 77 15 09 7e 1f d2 bb 08 2a 76 15 4d 06 00 11 0a 00 cd 01 07 21 76 15 34 c2 ┆ *v & w ü *v M !v 4 ┆ 0x054dc0…054de0 98 08 c9 01 e3 01 cd d2 04 cd 38 05 c6 41 4f cd 90 04 0e 3a cd 90 04 01 e8 01 cd b1 04 2a 1e 15 ┆ 8 AO : * ┆ 0x054de0…054e00 23 23 4e 21 01 00 cd bd 14 22 97 15 01 05 00 2a 1e 15 09 4e 23 46 03 2a 97 15 eb cd a0 14 22 99 ┆##N! " * N#F * " ┆ 0x054e00…054e20 (22, 1, 5) 43 4f 50 49 45 44 0d 0a 09 4c 58 49 20 48 2c 43 4f 4d 4c 45 4e 21 20 4d 56 49 20 41 2c 35 21 20 ┆COPIED LXI H,COMLEN! MVI A,5! ┆ 0x054e20…054e40 53 55 42 20 4d 20 3b 44 49 46 46 45 52 45 4e 43 45 20 49 4e 20 52 45 47 2d 41 0d 0a 09 4c 58 49 ┆SUB M ;DIFFERENCE IN REG-A LXI┆ 0x054e40…054e60 20 48 2c 41 53 45 52 49 41 4c 21 20 4a 5a 20 50 41 44 31 20 3b 50 41 44 20 48 49 47 48 20 4f 52 ┆ H,ASERIAL! JZ PAD1 ;PAD HIGH OR┆ 0x054e60…054e80 44 45 52 20 50 4f 53 49 54 49 4f 4e 53 20 57 49 54 48 20 30 0d 0a 09 50 41 44 30 3a 09 4d 56 49 ┆DER POSITIONS WITH 0 PAD0: MVI┆ 0x054e80…054ea0 20 4d 2c 27 30 27 21 20 49 4e 58 20 48 21 20 44 43 52 20 41 21 20 4a 4e 5a 20 50 41 44 30 0d 0a ┆ M,'0'! INX H! DCR A! JNZ PAD0 ┆ 0x054ea0…054ec0 09 50 41 44 31 3a 09 4c 58 49 20 44 2c 43 42 55 46 46 20 3b 41 44 44 52 45 53 53 49 4e 47 20 42 ┆ PAD1: LXI D,CBUFF ;ADDRESSING B┆ 0x054ec0…054ee0 55 46 46 45 52 0d 0a 09 50 41 44 32 3a 09 4c 44 41 58 20 44 21 20 4f 52 41 20 41 21 20 4a 5a 20 ┆UFFER PAD2: LDAX D! ORA A! JZ ┆ 0x054ee0…054f00 50 41 44 33 20 3b 4c 4f 4f 4b 49 4e 47 20 46 4f 52 20 42 49 4e 41 52 59 20 30 0d 0a 09 09 4d 4f ┆PAD3 ;LOOKING FOR BINARY 0 MO┆ 0x054f00…054f20 56 20 4d 2c 41 21 20 49 4e 58 20 48 21 20 49 4e 58 20 44 21 20 4a 4d 50 20 50 41 44 32 20 3b 46 ┆V M,A! INX H! INX D! JMP PAD2 ;F┆ 0x054f20…054f40 4f 52 20 41 4e 4f 54 48 45 52 20 43 48 41 52 0d 0a 09 50 41 44 33 3a 09 3b 45 4e 44 20 4f 46 20 ┆OR ANOTHER CHAR PAD3: ;END OF ┆ 0x054f40…054f60 41 53 43 49 49 20 46 49 4c 4c 20 28 4e 4f 57 20 52 49 47 48 54 20 41 44 4a 55 53 54 45 44 20 49 ┆ASCII FILL (NOW RIGHT ADJUSTED I┆ 0x054f60…054f80 4e 20 41 53 45 52 49 41 4c 29 0d 0a 3b 0d 0a 52 44 44 53 4b 3a 09 3b 52 45 41 44 20 44 49 53 4b ┆N ASERIAL) ; RDDSK: ;READ DISK┆ 0x054f80…054fa0 20 41 4e 44 20 43 4f 50 59 0d 0a 09 43 41 4c 4c 20 49 4e 53 4d 53 47 21 20 43 41 4c 4c 20 43 49 ┆ AND COPY CALL INSMSG! CALL CI┆ 0x054fa0…054fc0 20 3b 57 41 49 54 20 46 4f 52 20 52 45 53 50 4f 4e 53 45 0d 0a 3b 0d 0a 4e 45 58 54 44 49 53 4b ┆ ;WAIT FOR RESPONSE ; NEXTDISK┆ 0x054fc0…054fe0 3a 0d 0a 09 4d 56 49 20 41 2c 30 21 20 53 54 41 20 53 54 52 41 43 4b 20 3b 4d 41 52 4b 20 41 53 ┆: MVI A,0! STA STRACK ;MARK AS┆ 0x054fe0…055000 20 4d 4f 56 43 50 4d 2e 43 4f 4d 20 20 53 45 52 49 41 4c 49 5a 45 44 0d 0a 09 43 41 4c 4c 20 43 ┆ MOVCPM.COM SERIALIZED CALL C┆ 0x055000…055020 (22, 1, 6) 58 20 48 21 20 44 43 58 20 42 21 20 4d 4f 56 20 41 2c 43 21 20 4f 52 41 20 42 0d 0a 09 09 4a 4e ┆X H! DCX B! MOV A,C! ORA B JN┆ 0x055020…055040 5a 20 53 45 41 52 43 48 0d 0a 09 09 3b 4e 4f 54 20 46 4f 55 4e 44 0d 0a 09 09 43 41 4c 4c 20 42 ┆Z SEARCH ;NOT FOUND CALL B┆ 0x055040…055060 41 44 44 53 4b 21 20 4a 4d 50 20 52 44 44 53 4b 0d 0a 09 3b 0d 0a 09 51 54 52 4b 33 3a 09 3b 49 ┆ADDSK! JMP RDDSK ; QTRK3: ;I┆ 0x055060…055080 53 20 54 48 49 53 20 54 52 41 43 4b 20 4d 4f 56 54 52 4b 3f 20 49 46 20 53 4f 2c 20 4c 4f 4f 4b ┆S THIS TRACK MOVTRK? IF SO, LOOK┆ 0x055080…0550a0 20 46 4f 52 20 43 50 4d 2e 43 4f 4d 0d 0a 09 09 43 50 49 20 4d 4f 56 54 52 4b 21 20 4a 4e 5a 20 ┆ FOR CPM.COM CPI MOVTRK! JNZ ┆ 0x0550a0…0550c0 52 44 54 52 4b 4e 0d 0a 09 09 3b 4c 4f 4f 4b 20 46 4f 52 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 ┆RDTRKN ;LOOK FOR SERIAL NUMBE┆ 0x0550c0…0550e0 52 0d 0a 09 09 4c 58 49 20 48 2c 30 21 20 4c 58 49 20 42 2c 54 52 4c 45 4e 20 3b 54 52 41 43 4b ┆R LXI H,0! LXI B,TRLEN ;TRACK┆ 0x0550e0…055100 20 4c 45 4e 47 54 48 20 49 4e 20 42 2c 43 0d 0a 09 09 51 54 52 30 3a 20 50 55 53 48 20 48 21 20 ┆ LENGTH IN B,C QTR0: PUSH H! ┆ 0x055100…055120 50 55 53 48 20 42 20 3b 53 41 56 45 20 42 41 53 45 20 41 44 44 52 45 53 53 20 41 4e 44 20 4c 45 ┆PUSH B ;SAVE BASE ADDRESS AND LE┆ 0x055120…055140 4e 47 54 48 0d 0a 09 09 09 4c 58 49 20 44 2c 43 4f 4d 50 41 52 45 21 20 4d 56 49 20 43 2c 43 4f ┆NGTH LXI D,COMPARE! MVI C,CO┆ 0x055140…055160 4d 50 4c 45 4e 0d 0a 09 09 09 51 54 52 31 3a 20 3b 54 52 59 20 54 4f 20 4d 41 54 43 48 20 41 4e ┆MPLEN QTR1: ;TRY TO MATCH AN┆ 0x055160…055180 4f 54 48 45 52 20 43 48 41 52 0d 0a 09 09 09 09 50 55 53 48 20 48 21 20 43 41 4c 4c 20 54 52 41 ┆OTHER CHAR PUSH H! CALL TRA┆ 0x055180…0551a0 4e 53 4c 41 54 45 21 20 4c 44 41 58 20 44 0d 0a 09 09 09 09 43 4d 41 21 20 43 4d 50 20 4d 21 20 ┆NSLATE! LDAX D CMA! CMP M! ┆ 0x0551a0…0551c0 3b 46 4c 41 47 53 20 53 45 54 20 49 46 20 45 51 55 41 4c 0d 0a 09 09 09 09 50 4f 50 20 48 21 20 ┆;FLAGS SET IF EQUAL POP H! ┆ 0x0551c0…0551e0 4a 4e 5a 20 4e 4f 4d 41 54 33 0d 0a 09 09 09 09 49 4e 58 20 48 21 20 49 4e 58 20 44 21 0d 0a 09 ┆JNZ NOMAT3 INX H! INX D! ┆ 0x0551e0…055200 09 09 09 50 55 53 48 20 48 21 20 43 41 4c 4c 20 54 52 41 4e 53 4c 41 54 45 21 20 4c 44 41 58 20 ┆ PUSH H! CALL TRANSLATE! LDAX ┆ 0x055200…055220 (22, 1, 7) 31 ec 02 0e 10 11 6c 00 21 ac 02 1a 13 77 23 0d c2 0b 01 af 32 cc 02 11 5c 00 cd cb 01 11 f3 01 ┆1 l ! w# 2 Ø ┆ 0x055220…055240 3c cc b9 01 11 ed 02 3e 00 32 ab 02 d5 cd e9 01 11 5c 00 cd da 01 b7 c2 51 01 d1 21 80 00 19 eb ┆< > 2 Ø Q ! ┆ 0x055240…055260 d5 cd e9 01 21 ab 02 11 4b 02 34 cc b9 01 c3 30 01 d1 11 58 02 cd ee 01 cd c1 01 11 02 00 cd c6 ┆ ! K 4 0 X ┆ 0x055260…055280 01 11 ac 02 cd d5 01 11 ac 02 cd e4 01 11 02 02 3c cc b9 01 11 ed 02 d5 cd e9 01 11 ac 02 cd df ┆ < ┆ 0x055280…0552a0 01 11 15 02 b7 c4 b9 01 d1 21 80 00 19 eb d5 cd e9 01 21 ab 02 35 c2 7b 01 d1 11 ac 02 cd d0 01 ┆ ! ! 5 æ ┆ 0x0552a0…0552c0 11 27 02 3c cc b9 01 11 84 02 cd ee 01 cd c1 01 11 01 00 cd c6 01 11 38 02 0e 09 cd 05 00 c3 00 ┆ ' < 8 ┆ 0x0552c0…0552e0 00 0e 01 c3 05 00 0e 25 c3 05 00 0e 0f c3 05 00 0e 10 c3 05 00 0e 13 c3 05 00 0e 14 c3 05 00 0e ┆ % ┆ 0x0552e0…055300 15 c3 05 00 0e 16 c3 05 00 0e 1a c3 05 00 0e 09 c3 05 00 4e 4f 20 53 4f 55 52 43 45 20 46 49 4c ┆ NO SOURCE FIL┆ 0x055300…055320 45 24 4e 4f 20 44 49 52 45 43 54 4f 52 59 20 53 50 41 43 45 24 4f 55 54 20 4f 46 20 44 41 54 41 ┆E$NO DIRECTORY SPACE$OUT OF DATA┆ 0x055320…055340 20 53 50 41 43 45 24 57 52 49 54 45 20 50 52 4f 54 45 43 54 45 44 3f 24 54 52 41 4e 53 46 45 52 ┆ SPACE$WRITE PROTECTED?$TRANSFER┆ 0x055340…055360 20 43 4f 4d 50 4c 45 54 45 44 24 46 49 4c 45 20 54 4f 4f 20 42 49 47 24 49 4e 53 45 52 54 20 44 ┆ COMPLETED$FILE TOO BIG$INSERT D┆ 0x055360…055380 45 53 54 49 4e 41 54 49 4f 4e 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 54 55 52 4e ┆ESTINATION DISK AND TYPE <RETURN┆ 0x055380…0553a0 3e 0d 0a 24 49 4e 53 45 52 54 20 53 4f 55 52 43 45 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 ┆> $INSERT SOURCE DISK AND TYPE ┆ 0x0553a0…0553c0 3c 52 45 54 55 52 4e 3e 0d 0a 24 00 01 cd c1 01 11 01 00 cd c6 01 11 38 02 0e 09 cd 05 00 c3 00 ┆<RETURN> $ 8 ┆ 0x0553c0…0553e0 00 0e 01 c3 05 00 0e 25 c3 05 00 0e 0f c3 05 00 0e 10 c3 05 00 0e 13 c3 05 00 0e 14 c3 05 00 0e ┆ % ┆ 0x0553e0…055400 15 c3 05 00 0e 16 c3 05 00 0e 1a c3 05 00 00 09 c3 05 00 4e 4f 20 53 4f 55 52 43 45 20 46 49 4c ┆ NO SOURCE FIL┆ 0x055400…055420 (22, 1, 8) 46 49 4e 44 20 53 45 43 4f 4e 44 20 53 45 52 20 4e 55 4d 42 45 52 0d 0a 09 09 09 43 41 4c 4c 20 ┆FIND SECOND SER NUMBER CALL ┆ 0x055420…055440 42 41 44 43 4f 4d 21 20 4a 4d 50 20 52 44 44 53 4b 0d 0a 09 09 45 4e 44 43 4f 50 59 3a 0d 0a 09 ┆BADCOM! JMP RDDSK ENDCOPY: ┆ 0x055440…055460 09 4c 58 49 20 44 2c 54 52 4d 53 47 21 20 43 41 4c 4c 20 50 52 4d 53 47 0d 0a 09 09 43 41 4c 4c ┆ LXI D,TRMSG! CALL PRMSG CALL┆ 0x055460…055480 20 49 4e 43 53 45 52 49 41 4c 21 20 4a 4d 50 20 4e 45 58 54 44 49 53 4b 0d 0a 09 3b 0d 0a 09 3b ┆ INCSERIAL! JMP NEXTDISK ; ;┆ 0x055480…0554a0 4e 4f 54 20 45 4e 44 20 4f 46 20 43 4f 50 59 2c 20 57 52 49 54 45 20 54 52 41 43 4b 20 54 4f 20 ┆NOT END OF COPY, WRITE TRACK TO ┆ 0x0554a0…0554c0 44 49 53 4b 20 46 52 4f 4d 20 49 42 55 46 46 0d 0a 09 57 52 54 52 4b 3a 09 43 41 4c 4c 20 57 52 ┆DISK FROM IBUFF WRTRK: CALL WR┆ 0x0554c0…0554e0 49 54 54 52 4b 0d 0a 09 09 4a 5a 20 57 52 4f 4b 21 20 43 41 4c 4c 20 57 52 49 54 45 30 4d 53 47 ┆ITTRK JZ WROK! CALL WRITE0MSG┆ 0x0554e0…055500 21 20 4a 4d 50 20 4e 45 58 54 44 49 53 4b 0d 0a 09 57 52 4f 4b 3a 0d 0a 09 09 3b 57 52 49 54 54 ┆! JMP NEXTDISK WROK: ;WRITT┆ 0x055500…055520 45 4e 20 54 4f 20 44 49 53 4b 2c 20 4e 4f 57 20 52 45 41 44 20 49 54 20 42 41 43 4b 20 41 4e 44 ┆EN TO DISK, NOW READ IT BACK AND┆ 0x055520…055540 20 43 4f 4d 50 41 52 45 0d 0a 09 09 4c 58 49 20 48 2c 4f 42 55 46 46 21 20 53 48 4c 44 20 42 55 ┆ COMPARE LXI H,OBUFF! SHLD BU┆ 0x055540…055560 46 46 41 21 20 43 41 4c 4c 20 52 45 52 45 41 44 0d 0a 09 09 09 4a 5a 20 52 45 41 44 31 4f 4b 21 ┆FFA! CALL REREAD JZ READ1OK!┆ 0x055560…055580 20 43 41 4c 4c 20 52 45 41 44 31 4d 53 47 21 20 4a 4d 50 20 4e 45 58 54 44 49 53 4b 0d 0a 09 09 ┆ CALL READ1MSG! JMP NEXTDISK ┆ 0x055580…0555a0 52 45 41 44 31 4f 4b 3a 0d 0a 09 09 4c 58 49 20 48 2c 49 42 55 46 46 21 20 4c 58 49 20 44 2c 4f ┆READ1OK: LXI H,IBUFF! LXI D,O┆ 0x0555a0…0555c0 42 55 46 46 21 20 4c 58 49 20 42 2c 54 52 4c 45 4e 0d 0a 09 09 57 52 43 4f 4d 50 3a 20 4c 44 41 ┆BUFF! LXI B,TRLEN WRCOMP: LDA┆ 0x0555c0…0555e0 58 20 44 21 20 43 4d 50 20 4d 21 20 4a 4e 5a 20 57 52 45 52 52 0d 0a 09 09 09 49 4e 58 20 48 21 ┆X D! CMP M! JNZ WRERR INX H!┆ 0x0555e0…055600 20 49 4e 58 20 44 21 20 44 43 58 20 42 21 20 4d 4f 56 20 41 2c 43 21 20 4f 52 41 20 42 0d 0a 09 ┆ INX D! DCX B! MOV A,C! ORA B ┆ 0x055600…055620 (22, 1, 9) 55 52 4d 53 47 21 20 43 41 4c 4c 20 41 53 45 52 4d 53 47 21 20 43 41 4c 4c 20 4e 45 57 4d 53 47 ┆URMSG! CALL ASERMSG! CALL NEWMSG┆ 0x055620…055640 21 20 43 41 4c 4c 20 43 49 0d 0a 09 3b 4e 45 57 20 44 49 53 4b 20 49 53 20 52 45 41 44 59 2c 20 ┆! CALL CI ;NEW DISK IS READY, ┆ 0x055640…055660 54 52 59 20 54 48 45 20 43 4f 50 59 20 4f 50 45 52 41 54 49 4f 4e 0d 0a 09 4c 58 49 20 48 2c 54 ┆TRY THE COPY OPERATION LXI H,T┆ 0x055660…055680 52 41 43 4b 21 20 4d 56 49 20 4d 2c 31 20 3b 43 4c 45 41 52 20 54 48 45 20 54 52 41 43 4b 20 4e ┆RACK! MVI M,1 ;CLEAR THE TRACK N┆ 0x055680…0556a0 55 4d 42 45 52 0d 0a 09 4c 58 49 20 48 2c 54 52 43 4f 55 4e 54 21 20 4d 56 49 20 4d 2c 27 30 27 ┆UMBER LXI H,TRCOUNT! MVI M,'0'┆ 0x0556a0…0556c0 21 20 49 4e 58 20 48 21 20 4d 56 49 20 4d 2c 27 30 27 0d 0a 3b 0d 0a 52 44 54 52 4b 3a 09 3b 52 ┆! INX H! MVI M,'0' ; RDTRK: ;R┆ 0x0556c0…0556e0 45 41 44 20 54 48 45 20 4e 45 58 54 20 53 4f 55 52 43 45 20 54 52 41 43 4b 2c 20 43 4f 4d 50 41 ┆EAD THE NEXT SOURCE TRACK, COMPA┆ 0x0556e0…055700 52 45 20 57 49 54 48 20 30 45 35 48 20 46 4f 52 20 45 4e 44 0d 0a 09 4c 58 49 20 48 2c 49 42 55 ┆RE WITH 0E5H FOR END LXI H,IBU┆ 0x055700…055720 46 46 21 20 53 48 4c 44 20 42 55 46 46 41 21 20 43 41 4c 4c 20 52 45 41 44 54 52 4b 0d 0a 09 09 ┆FF! SHLD BUFFA! CALL READTRK ┆ 0x055720…055740 4a 5a 20 52 45 41 44 4f 4b 21 20 43 41 4c 4c 20 52 45 41 44 30 4d 53 47 21 20 4a 4d 50 20 52 44 ┆JZ READOK! CALL READ0MSG! JMP RD┆ 0x055740…055760 44 53 4b 0d 0a 09 52 45 41 44 4f 4b 3a 0d 0a 09 3b 54 52 41 43 4b 20 49 53 20 49 4e 20 4d 45 4d ┆DSK READOK: ;TRACK IS IN MEM┆ 0x055760…055780 4f 52 59 2c 20 54 52 41 43 4b 20 31 3f 0d 0a 09 4c 44 41 20 54 52 41 43 4b 21 20 43 50 49 20 31 ┆ORY, TRACK 1? LDA TRACK! CPI 1┆ 0x055780…0557a0 21 20 4a 4e 5a 20 51 54 52 4b 33 0d 0a 09 09 3b 54 52 41 43 4b 20 30 2c 20 4c 4f 4f 4b 20 46 4f ┆! JNZ QTRK3 ;TRACK 0, LOOK FO┆ 0x0557a0…0557c0 52 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 0d 0a 09 09 4c 58 49 20 48 2c 43 43 50 56 21 20 4c ┆R SERIAL NUMBER LXI H,CCPV! L┆ 0x0557c0…0557e0 58 49 20 42 2c 53 4c 45 4e 0d 0a 09 09 53 45 41 52 43 48 3a 09 50 55 53 48 20 48 21 20 50 55 53 ┆XI B,SLEN SEARCH: PUSH H! PUS┆ 0x0557e0…055800 48 20 42 21 20 4c 58 49 20 44 2c 43 4f 4d 50 41 52 45 21 20 4d 56 49 20 43 2c 43 4f 4d 50 4c 45 ┆H B! LXI D,COMPARE! MVI C,COMPLE┆ 0x055800…055820 (22, 1, 10) 44 0d 0a 09 09 09 09 43 4d 41 21 20 43 4d 50 20 4d 21 20 50 4f 50 20 48 21 20 4a 4e 5a 20 4e 4f ┆D CMA! CMP M! POP H! JNZ NO┆ 0x055820…055840 4d 41 54 33 0d 0a 09 09 09 09 3b 43 4f 4e 54 49 4e 55 45 20 54 4f 20 4d 41 54 43 48 0d 0a 09 09 ┆MAT3 ;CONTINUE TO MATCH ┆ 0x055840…055860 09 09 49 4e 58 20 48 21 20 49 4e 58 20 44 21 20 44 43 52 20 43 21 20 4a 4e 5a 20 51 54 52 31 0d ┆ INX H! INX D! DCR C! JNZ QTR1 ┆ 0x055860…055880 0a 09 09 09 3b 43 4f 4d 50 4c 45 54 45 20 4d 41 54 43 48 2c 20 46 49 4c 4c 20 53 45 52 49 41 4c ┆ ;COMPLETE MATCH, FILL SERIAL┆ 0x055880…0558a0 20 4e 55 4d 42 45 52 53 0d 0a 09 09 09 50 4f 50 20 42 21 20 50 4f 50 20 44 20 3b 54 4f 20 43 4c ┆ NUMBERS POP B! POP D ;TO CL┆ 0x0558a0…0558c0 45 41 52 20 54 48 45 20 53 54 41 43 4b 0d 0a 09 09 09 50 55 53 48 20 48 20 3b 53 41 56 45 20 53 ┆EAR THE STACK PUSH H ;SAVE S┆ 0x0558c0…0558e0 4f 55 52 43 45 20 41 44 44 52 45 53 53 0d 0a 09 09 09 43 41 4c 4c 20 53 54 53 45 52 49 41 4c 20 ┆OURCE ADDRESS CALL STSERIAL ┆ 0x0558e0…055900 3b 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 20 53 54 4f 52 45 44 0d 0a 09 09 09 50 4f 50 20 48 20 ┆;SERIAL NUMBER STORED POP H ┆ 0x055900…055920 3b 52 45 43 41 4c 4c 20 53 4f 55 52 43 45 20 41 44 44 52 45 53 53 0d 0a 09 09 09 58 43 48 47 21 ┆;RECALL SOURCE ADDRESS XCHG!┆ 0x055920…055940 20 4c 48 4c 44 20 53 44 49 46 46 21 20 44 41 44 20 44 20 3b 48 2c 4c 20 53 48 4f 55 4c 44 20 41 ┆ LHLD SDIFF! DAD D ;H,L SHOULD A┆ 0x055940…055960 44 44 52 45 53 53 20 53 45 52 23 32 0d 0a 09 09 09 4d 4f 56 20 41 2c 4c 21 20 4f 52 41 20 41 21 ┆DDRESS SER#2 MOV A,L! ORA A!┆ 0x055960…055980 20 4a 4e 5a 20 51 54 52 32 20 3b 4d 55 53 54 20 42 45 20 4c 4f 57 20 5a 45 52 4f 0d 0a 09 09 09 ┆ JNZ QTR2 ;MUST BE LOW ZERO ┆ 0x055980…0559a0 3b 53 45 54 55 50 20 53 54 52 41 43 4b 20 54 4f 20 53 45 52 49 41 4c 49 5a 45 20 57 48 45 4e 20 ┆;SETUP STRACK TO SERIALIZE WHEN ┆ 0x0559a0…0559c0 50 52 4f 50 45 52 20 54 52 4b 20 46 4f 55 4e 44 0d 0a 09 09 09 58 43 48 47 21 20 4c 58 49 20 48 ┆PROPER TRK FOUND XCHG! LXI H┆ 0x0559c0…0559e0 2c 53 54 52 41 43 4b 20 3b 44 49 46 46 45 52 45 4e 43 45 20 49 4e 20 44 2c 45 0d 0a 09 09 09 4d ┆,STRACK ;DIFFERENCE IN D,E M┆ 0x0559e0…055a00 56 49 20 4d 2c 30 20 3b 43 4f 55 4e 54 20 53 54 52 41 43 4b 20 55 50 20 46 4f 52 20 45 41 43 48 ┆VI M,0 ;COUNT STRACK UP FOR EACH┆ 0x055a00…055a20 (22, 1, 11) 45 24 4e 4f 20 44 49 52 45 43 54 4f 52 59 20 53 50 41 43 45 24 4f 55 54 20 4f 46 20 44 41 54 41 ┆E$NO DIRECTORY SPACE$OUT OF DATA┆ 0x055a20…055a40 20 53 50 41 43 45 24 57 52 49 54 45 20 50 52 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ SPACE$WRITE PR ┆ 0x055a40…055a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x1…] 0x055a80…055aa0 01 11 15 02 b7 c4 b9 01 d1 21 80 00 19 eb d5 cd e9 01 21 a7 02 35 c2 7b 01 d1 11 a8 02 cd d0 01 ┆ ! ! 5 æ ┆ 0x055aa0…055ac0 11 27 02 3c cc b9 01 11 82 02 cd ee 01 cd c1 01 11 01 00 cd c6 01 11 38 02 0e 09 cd 05 00 c3 00 ┆ ' < 8 ┆ 0x055ac0…055ae0 00 0e 01 c3 05 00 0e 25 c3 05 00 0e 0f c3 05 00 0e 10 c3 05 00 0e 13 c3 05 00 0e 14 c3 05 00 0e ┆ % ┆ 0x055ae0…055b00 15 c3 05 00 0e 16 c3 05 00 0e 1a c3 05 00 0e 09 c3 05 00 4e 4f 20 53 4f 55 52 43 45 20 46 49 4c ┆ NO SOURCE FIL┆ 0x055b00…055b20 45 24 4e 4f 20 44 49 52 45 43 54 4f 52 59 20 53 50 41 43 45 24 4f 55 54 20 4f 46 20 44 41 54 41 ┆E$NO DIRECTORY SPACE$OUT OF DATA┆ 0x055b20…055b40 20 53 50 41 43 45 24 57 52 49 54 45 20 50 52 4f 54 45 43 54 45 44 3f 24 54 52 41 4e 53 46 45 52 ┆ SPACE$WRITE PROTECTED?$TRANSFER┆ 0x055b40…055b60 20 43 4f 4d 50 4c 45 54 45 44 24 46 49 4c 45 20 54 4f 4f 20 42 49 47 24 49 4e 53 45 52 54 20 44 ┆ COMPLETED$FILE TOO BIG$INSERT D┆ 0x055b60…055b80 45 53 54 49 4e 41 54 49 4f 4e 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 54 55 52 4e ┆ESTINATION DISK AND TYPE <RETURN┆ 0x055b80…055ba0 3e 24 49 4e 53 45 52 54 20 53 4f 55 52 43 45 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 ┆>$INSERT SOURCE DISK AND TYPE <R┆ 0x055ba0…055bc0 45 54 55 52 4e 3e 24 00 82 02 cd ee 01 cd c1 01 11 01 00 cd c6 01 11 38 02 0e 09 cd 05 00 c3 00 ┆ETURN>$ 8 ┆ 0x055bc0…055be0 00 0e 01 c3 05 00 0e 25 c3 05 00 0e 0f c3 05 00 0e 10 c3 05 00 0e 13 c3 05 00 0e 14 c3 05 00 0e ┆ % ┆ 0x055be0…055c00 15 c3 05 00 0e 16 c3 05 00 00 00 c3 05 00 0e 09 c3 05 00 4e 4f 20 53 4f 55 52 43 45 20 46 49 4c ┆ NO SOURCE FIL┆ 0x055c00…055c20 (22, 1, 12) 09 09 4a 4e 5a 20 57 52 43 4f 4d 50 0d 0a 09 09 3b 43 4f 4d 50 41 52 45 20 57 45 4e 54 20 4f 4b ┆ JNZ WRCOMP ;COMPARE WENT OK┆ 0x055c20…055c40 2c 20 49 4e 43 52 45 4d 45 4e 54 20 54 52 41 43 4b 20 43 4f 55 4e 54 20 41 4e 44 20 43 59 43 4c ┆, INCREMENT TRACK COUNT AND CYCL┆ 0x055c40…055c60 45 0d 0a 09 09 4c 58 49 20 48 2c 54 52 41 43 4b 21 20 49 4e 52 20 4d 0d 0a 09 09 4c 58 49 20 48 ┆E LXI H,TRACK! INR M LXI H┆ 0x055c60…055c80 2c 54 52 43 4f 55 4e 54 2b 31 21 20 49 4e 52 20 4d 21 20 4d 4f 56 20 41 2c 4d 21 20 43 50 49 20 ┆,TRCOUNT+1! INR M! MOV A,M! CPI ┆ 0x055c80…055ca0 27 39 27 2b 31 0d 0a 09 09 4a 43 20 52 44 54 52 4b 20 3b 4f 56 45 52 46 4c 4f 57 20 54 4f 20 48 ┆'9'+1 JC RDTRK ;OVERFLOW TO H┆ 0x055ca0…055cc0 49 47 48 20 4f 52 44 45 52 20 54 52 41 43 4b 20 4e 55 4d 42 45 52 0d 0a 09 09 4d 56 49 20 4d 2c ┆IGH ORDER TRACK NUMBER MVI M,┆ 0x055cc0…055ce0 27 30 27 21 20 44 43 58 20 48 21 20 49 4e 52 20 4d 21 20 4a 4d 50 20 52 44 54 52 4b 0d 0a 09 09 ┆'0'! DCX H! INR M! JMP RDTRK ┆ 0x055ce0…055d00 3b 0d 0a 09 57 52 45 52 52 3a 09 3b 56 45 52 49 46 59 20 45 52 52 4f 52 0d 0a 09 09 43 41 4c 4c ┆; WRERR: ;VERIFY ERROR CALL┆ 0x055d00…055d20 20 56 45 52 45 52 52 21 20 4a 4d 50 20 4e 45 58 54 44 49 53 4b 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 55 ┆ VERERR! JMP NEXTDISK ; ; ; U┆ 0x055d20…055d40 54 49 4c 49 54 59 20 53 55 42 52 4f 55 54 49 4e 45 53 0d 0a 43 49 3a 09 4d 56 49 20 43 2c 43 4f ┆TILITY SUBROUTINES CI: MVI C,CO┆ 0x055d40…055d60 4e 49 4e 21 20 4a 4d 50 20 42 44 4f 53 20 3b 52 45 41 44 20 41 20 43 48 41 52 41 43 54 45 52 0d ┆NIN! JMP BDOS ;READ A CHARACTER ┆ 0x055d60…055d80 0a 3b 0d 0a 50 52 4d 53 47 3a 09 4d 56 49 20 43 2c 50 42 55 46 46 21 20 4a 4d 50 20 42 44 4f 53 ┆ ; PRMSG: MVI C,PBUFF! JMP BDOS┆ 0x055d80…055da0 20 3b 50 52 49 4e 54 20 41 20 42 55 46 46 45 52 0d 0a 3b 0d 0a 52 44 45 52 52 3a 09 43 41 4c 4c ┆ ;PRINT A BUFFER ; RDERR: CALL┆ 0x055da0…055dc0 20 49 4e 56 41 4c 49 44 0d 0a 3b 0d 0a 52 45 41 44 3a 09 3b 52 45 41 44 20 43 4f 4e 53 54 41 4e ┆ INVALID ; READ: ;READ CONSTAN┆ 0x055dc0…055de0 54 20 56 41 4c 55 45 20 54 4f 20 42 2c 43 0d 0a 09 4c 58 49 20 44 2c 4d 41 58 4c 45 4e 21 20 4d ┆T VALUE TO B,C LXI D,MAXLEN! M┆ 0x055de0…055e00 56 49 20 43 2c 52 44 42 55 46 46 21 20 43 41 4c 4c 20 42 44 4f 53 20 3b 42 55 46 46 45 52 20 46 ┆VI C,RDBUFF! CALL BDOS ;BUFFER F┆ 0x055e00…055e20 (22, 1, 13) 4e 0d 0a 09 09 43 4f 4d 50 30 3a 09 4c 44 41 58 20 44 21 20 43 4d 41 21 20 43 4d 50 20 4d 21 20 ┆N COMP0: LDAX D! CMA! CMP M! ┆ 0x055e20…055e40 4a 4e 5a 20 4e 4f 4d 41 54 43 48 0d 0a 09 09 09 49 4e 58 20 48 21 20 49 4e 58 20 44 21 20 4c 44 ┆JNZ NOMATCH INX H! INX D! LD┆ 0x055e40…055e60 41 58 20 44 21 20 43 4d 41 21 20 43 4d 50 20 4d 21 20 4a 4e 5a 20 4e 4f 4d 41 54 43 48 0d 0a 09 ┆AX D! CMA! CMP M! JNZ NOMATCH ┆ 0x055e60…055e80 09 09 49 4e 58 20 48 21 20 49 4e 58 20 44 21 20 44 43 52 20 43 21 20 4a 4e 5a 20 43 4f 4d 50 30 ┆ INX H! INX D! DCR C! JNZ COMP0┆ 0x055e80…055ea0 0d 0a 09 09 3b 4d 41 54 43 48 20 43 4f 4d 50 4c 45 54 45 2c 20 57 45 20 48 41 56 45 20 46 4f 55 ┆ ;MATCH COMPLETE, WE HAVE FOU┆ 0x055ea0…055ec0 4e 44 20 54 48 45 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 0d 0a 09 09 50 4f 50 20 42 21 20 50 ┆ND THE SERIAL NUMBER POP B! P┆ 0x055ec0…055ee0 4f 50 20 44 20 3b 43 4c 45 41 52 53 20 53 54 41 43 4b 0d 0a 09 09 50 55 53 48 20 48 20 3b 53 41 ┆OP D ;CLEARS STACK PUSH H ;SA┆ 0x055ee0…055f00 56 45 20 41 20 43 4f 50 59 20 4f 46 20 54 48 45 20 53 54 41 52 54 20 41 44 44 52 45 53 53 20 4f ┆VE A COPY OF THE START ADDRESS O┆ 0x055f00…055f20 46 20 54 48 45 20 53 45 52 20 23 0d 0a 09 09 78 63 68 67 20 21 20 6c 68 6c 64 20 4f 52 49 47 49 ┆F THE SER # xchg ! lhld ORIGI┆ 0x055f20…055f40 4e 21 20 78 63 68 67 21 20 4d 4f 56 20 4d 2c 65 20 3b 20 6c 6f 77 20 62 79 74 65 28 6f 72 69 67 ┆N! xchg! MOV M,e ; low byte(orig┆ 0x055f40…055f60 69 6e 29 0d 0a 09 09 49 4e 58 20 48 21 20 4d 56 49 20 4d 2c 56 45 52 53 49 4f 4e 20 3b 56 45 52 ┆in) INX H! MVI M,VERSION ;VER┆ 0x055f60…055f80 53 49 4f 4e 20 4e 55 4d 42 45 52 20 49 4e 20 42 49 4e 41 52 59 0d 0a 09 09 69 6e 78 20 68 21 20 ┆SION NUMBER IN BINARY inx h! ┆ 0x055f80…055fa0 6d 6f 76 20 6d 2c 64 20 3b 20 68 69 67 68 20 62 79 74 65 28 6f 72 69 67 69 6e 29 0d 0a 09 09 09 ┆mov m,d ; high byte(origin) ┆ 0x055fa0…055fc0 49 4e 58 20 48 21 20 4d 76 69 20 4d 2c 30 20 3b 20 6e 65 78 74 20 62 79 74 65 20 7a 65 72 6f 65 ┆INX H! Mvi M,0 ; next byte zeroe┆ 0x055fc0…055fe0 64 20 28 6e 6f 74 20 75 73 65 64 20 79 65 74 29 0d 0a 09 09 09 49 4e 58 20 48 20 3b 52 45 41 44 ┆d (not used yet) INX H ;READ┆ 0x055fe0…056000 59 20 54 4f 20 41 43 43 45 50 54 20 54 48 45 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 0d 0a 09 ┆Y TO ACCEPT THE SERIAL NUMBER ┆ 0x056000…056020 (22, 1, 14) 20 54 52 41 43 4b 20 53 49 5a 45 0d 0a 09 09 09 44 4c 4f 4f 50 3a 20 49 4e 52 20 4d 20 3b 53 54 ┆ TRACK SIZE DLOOP: INR M ;ST┆ 0x056020…056040 52 41 43 4b 20 3d 20 53 54 52 41 43 4b 20 2b 20 31 0d 0a 09 09 09 09 4d 4f 56 20 41 2c 45 21 20 ┆RACK = STRACK + 1 MOV A,E! ┆ 0x056040…056060 53 55 49 20 28 32 36 2a 31 32 38 29 20 41 4e 44 20 30 46 46 48 0d 0a 09 09 09 09 4d 4f 56 20 42 ┆SUI (26*128) AND 0FFH MOV B┆ 0x056060…056080 2c 41 20 3b 53 41 56 45 20 4c 4f 57 20 4f 52 44 45 52 20 44 49 46 46 45 52 45 4e 43 45 0d 0a 09 ┆,A ;SAVE LOW ORDER DIFFERENCE ┆ 0x056080…0560a0 09 09 09 4d 4f 56 20 41 2c 44 21 20 53 42 49 20 28 32 36 2a 31 32 38 29 20 53 48 52 20 38 0d 0a ┆ MOV A,D! SBI (26*128) SHR 8 ┆ 0x0560a0…0560c0 09 09 09 09 4a 43 20 45 44 4c 4f 4f 50 20 3b 43 41 52 52 59 20 49 46 20 54 4f 4f 20 4d 41 4e 59 ┆ JC EDLOOP ;CARRY IF TOO MANY┆ 0x0560c0…0560e0 20 53 55 42 54 52 41 43 54 53 0d 0a 09 09 09 09 4d 4f 56 20 44 2c 41 21 20 4d 4f 56 20 45 2c 42 ┆ SUBTRACTS MOV D,A! MOV E,B┆ 0x0560e0…056100 20 3b 52 45 53 45 54 20 54 4f 20 4c 4f 57 45 52 20 56 41 4c 55 45 0d 0a 09 09 09 09 4a 4d 50 20 ┆ ;RESET TO LOWER VALUE JMP ┆ 0x056100…056120 44 4c 4f 4f 50 0d 0a 09 09 09 45 44 4c 4f 4f 50 3a 09 3b 44 2c 45 20 43 4f 4e 54 41 49 4e 20 4f ┆DLOOP EDLOOP: ;D,E CONTAIN O┆ 0x056120…056140 46 46 53 45 54 20 49 4e 54 4f 20 54 52 41 43 4b 20 53 54 52 41 43 4b 0d 0a 09 09 09 09 58 43 48 ┆FFSET INTO TRACK STRACK XCH┆ 0x056140…056160 47 21 20 53 48 4c 44 20 53 44 49 46 46 0d 0a 09 09 09 4a 4d 50 20 52 44 54 52 4b 4e 0d 0a 09 09 ┆G! SHLD SDIFF JMP RDTRKN ┆ 0x056160…056180 09 4e 4f 4d 41 54 33 3a 09 3b 4e 4f 20 4d 41 54 43 48 20 4f 4e 20 43 55 52 52 45 4e 54 20 53 54 ┆ NOMAT3: ;NO MATCH ON CURRENT ST┆ 0x056180…0561a0 52 49 4e 47 0d 0a 09 09 09 50 4f 50 20 42 21 20 50 4f 50 20 48 21 20 49 4e 58 20 48 21 20 44 43 ┆RING POP B! POP H! INX H! DC┆ 0x0561a0…0561c0 58 20 42 0d 0a 09 09 09 4d 4f 56 20 41 2c 42 21 20 4f 52 41 20 43 21 20 4a 4e 5a 20 51 54 52 30 ┆X B MOV A,B! ORA C! JNZ QTR0┆ 0x0561c0…0561e0 20 3b 46 4f 52 20 41 4e 4f 54 48 45 52 20 53 43 41 4e 0d 0a 09 09 09 3b 4e 4f 54 20 46 4f 55 4e ┆ ;FOR ANOTHER SCAN ;NOT FOUN┆ 0x0561e0…056200 44 0d 0a 09 09 51 54 52 32 3a 09 43 41 4c 4c 20 42 41 44 43 4f 4d 21 20 4a 4d 50 20 52 44 44 53 ┆D QTR2: CALL BADCOM! JMP RDDS┆ 0x056200…056220 (22, 1, 15) 0e 0e cd 4c 14 c9 21 2a 15 70 2b 71 2a 29 15 eb 0e 0f cd 4f 14 32 27 15 c9 21 2c 15 70 2b 71 2a ┆ L !* p+q*) O 2' !, p+q*┆ 0x056220…056240 2b 15 eb 0e 11 cd 4f 14 32 27 15 c9 11 00 00 0e 12 cd 4f 14 32 27 15 c9 11 00 00 0e 19 cd 4f 14 ┆+ O 2' O 2' O ┆ 0x056240…056260 c9 21 2e 15 70 2b 71 2a 2d 15 eb 0e 1a cd 4c 14 c9 11 00 00 0e 1b cd 52 14 c9 11 00 00 0e 18 cd ┆ !. p+q*- L R ┆ 0x056260…056280 52 14 c9 11 00 00 0e 1c cd 4c 14 c9 11 00 00 0e 1d cd 52 14 c9 11 5c 00 0e 1e cd 4c 14 c9 11 00 ┆R L R Ø L ┆ 0x056280…0562a0 00 0e 1f cd 52 14 22 1e 15 c9 11 ff 00 0e 20 cd 4f 14 c9 21 2f 15 71 2a 2f 15 26 00 eb 0e 20 cd ┆ R " O !/ q*/ & ┆ 0x0562a0…0562c0 4c 14 c9 21 31 15 70 2b 71 2a 30 15 eb 0e 23 cd 4c 14 c9 cd 7e 05 2a 1e 15 23 23 4e 21 01 00 cd ┆L !1 p+q*0 # L ü * ##N! ┆ 0x0562c0…0562e0 bd 14 11 80 00 cd 9e 14 22 54 15 c9 21 56 15 71 2a 56 15 4d cd f6 04 cd b3 05 c9 21 58 15 70 2b ┆ "T !V q*V M !X p+┆ 0x0562e0…056300 71 0e 03 21 57 15 cd c3 14 eb 2a 20 15 19 3e 07 11 57 15 e5 cd 72 14 23 4d e1 cd b2 14 c9 21 5f ┆q !W * > W r #M !_┆ 0x056300…056320 15 70 2b 71 21 60 15 36 00 3e 03 21 60 15 be da 36 06 2a 60 15 26 00 eb 2a 5e 15 19 e5 2a 60 15 ┆ p+q!` 6 > !` 6 *` & *^ *` ┆ 0x056320…056340 26 00 01 59 15 09 d1 1a be ca 2f 06 3e 00 c9 21 60 15 34 c2 09 06 3e 01 c9 2a 5d 15 26 00 01 80 ┆& Y / > !` 4 > *Å & ┆ 0x056340…056360 00 09 7e fe 20 c2 4f 06 21 5d 15 34 c3 39 06 21 61 15 36 00 3a 61 15 fe 04 d2 e6 06 2a 5d 15 26 ┆ ü O !Å 4 9 !a 6 :a *Å &┆ 0x056360…056380 00 01 80 00 09 7e 32 62 15 4f 3e 01 b9 d2 7a 06 2a 62 15 4d cd eb 06 c3 7f 06 0e 20 cd eb 06 3e ┆ ü2b O> z *b M >┆ 0x056380…0563a0 01 21 62 15 96 9f 2f f5 7e d6 2c d6 01 9f c1 48 b1 f5 7e d6 3a d6 01 9f c1 48 b1 f5 7e d6 2a d6 ┆ !b / ü , H ü : H ü * ┆ 0x0563a0…0563c0 01 9f c1 48 b1 f5 7e d6 2e d6 01 9f c1 48 b1 f5 7e d6 3e d6 01 9f c1 48 b1 f5 7e d6 3c d6 01 9f ┆ H ü . H ü > H ü < ┆ 0x0563c0…0563e0 c1 48 b1 f5 7e d6 3d d6 01 9f c1 48 b1 1f d2 df 06 2a 5d 15 26 00 01 80 00 09 36 01 c3 e3 06 21 ┆ H ü = H *Å & 6 !┆ 0x0563e0…056400 5d 15 34 c3 54 06 21 5d 15 34 c9 21 63 15 71 2a 61 15 26 00 01 59 15 09 3a 63 15 77 21 61 15 34 ┆Å 4 T !Å 4 !c q*a & Y :c w!a 4┆ 0x056400…056420 (23, 0, 1) 49 4c 4c 45 44 0d 0a 09 4c 58 49 20 48 2c 43 4f 4d 4c 45 4e 21 20 4d 4f 56 20 41 2c 4d 21 20 4f ┆ILLED LXI H,COMLEN! MOV A,M! O┆ 0x056420…056440 52 41 20 41 21 20 4a 5a 20 52 44 45 52 52 20 3b 4e 4f 4e 20 5a 45 52 4f 20 4c 45 4e 47 54 48 0d ┆RA A! JZ RDERR ;NON ZERO LENGTH ┆ 0x056440…056460 0a 09 49 4e 58 20 48 21 20 4d 4f 56 20 45 2c 41 21 20 4d 56 49 20 44 2c 30 21 20 44 41 44 20 44 ┆ INX H! MOV E,A! MVI D,0! DAD D┆ 0x056460…056480 20 3b 48 2c 4c 20 41 44 44 52 45 53 53 20 4c 41 53 54 20 50 4f 53 2b 31 0d 0a 09 4d 56 49 20 4d ┆ ;H,L ADDRESS LAST POS+1 MVI M┆ 0x056480…0564a0 2c 30 20 3b 43 4c 45 41 52 45 44 20 46 4f 52 20 45 4e 44 20 4f 46 20 53 43 41 4e 0d 0a 09 4c 58 ┆,0 ;CLEARED FOR END OF SCAN LX┆ 0x0564a0…0564c0 49 20 48 2c 43 42 55 46 46 21 20 4c 58 49 20 42 2c 30 0d 0a 09 43 4f 4e 56 3a 09 4d 4f 56 20 41 ┆I H,CBUFF! LXI B,0 CONV: MOV A┆ 0x0564c0…0564e0 2c 4d 21 20 4f 52 41 20 41 21 20 52 5a 20 3b 52 45 54 55 52 4e 20 49 46 20 45 4e 44 20 4f 46 20 ┆,M! ORA A! RZ ;RETURN IF END OF ┆ 0x0564e0…056500 43 4f 4e 56 45 52 54 0d 0a 09 09 53 55 49 20 27 30 27 21 20 43 50 49 20 31 30 21 20 4a 4e 43 20 ┆CONVERT SUI '0'! CPI 10! JNC ┆ 0x056500…056520 52 44 45 52 52 0d 0a 09 09 50 55 53 48 20 48 21 20 50 55 53 48 20 42 21 20 50 4f 50 20 48 20 3b ┆RDERR PUSH H! PUSH B! POP H ;┆ 0x056520…056540 42 2c 43 20 43 4f 50 49 45 44 20 54 4f 20 48 2c 4c 0d 0a 09 09 44 41 44 20 48 21 20 44 41 44 20 ┆B,C COPIED TO H,L DAD H! DAD ┆ 0x056540…056560 48 21 20 44 41 44 20 48 21 20 44 41 44 20 42 21 20 44 41 44 20 42 0d 0a 09 09 50 55 53 48 20 48 ┆H! DAD H! DAD B! DAD B PUSH H┆ 0x056560…056580 21 20 50 4f 50 20 42 21 20 50 4f 50 20 48 20 3b 42 43 3d 42 43 2a 31 30 0d 0a 09 09 49 4e 58 20 ┆! POP B! POP H ;BC=BC*10 INX ┆ 0x056580…0565a0 48 21 20 41 44 44 20 43 21 20 4d 4f 56 20 43 2c 41 21 20 4d 56 49 20 41 2c 30 21 20 41 44 43 20 ┆H! ADD C! MOV C,A! MVI A,0! ADC ┆ 0x0565a0…0565c0 42 21 20 4d 4f 56 20 42 2c 41 0d 0a 09 09 4a 43 20 52 44 45 52 52 21 20 4a 4d 50 20 43 4f 4e 56 ┆B! MOV B,A JC RDERR! JMP CONV┆ 0x0565c0…0565e0 20 3b 54 45 53 54 45 44 20 46 4f 52 20 4f 56 45 52 46 4c 4f 57 0d 0a 09 3b 0d 0a 49 4e 43 53 45 ┆ ;TESTED FOR OVERFLOW ; INCSE┆ 0x0565e0…056600 52 49 41 4c 3a 0d 0a 09 3b 49 4e 43 52 45 4d 45 4e 54 20 54 48 45 20 53 45 52 49 41 4c 20 4e 55 ┆RIAL: ;INCREMENT THE SERIAL NU┆ 0x056600…056620 (23, 0, 2) 0a 09 4c 44 41 58 20 44 21 20 43 41 4c 4c 20 53 54 42 59 54 45 0d 0a 09 44 43 58 20 44 20 3b 41 ┆ LDAX D! CALL STBYTE DCX D ;A┆ 0x056620…056640 44 44 52 45 53 53 20 4c 4f 57 20 4f 52 44 45 52 20 42 59 54 45 0d 0a 09 4c 44 41 58 20 44 21 20 ┆DDRESS LOW ORDER BYTE LDAX D! ┆ 0x056640…056660 43 41 4c 4c 20 53 54 42 59 54 45 0d 0a 09 52 45 54 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 50 52 49 4e 54 ┆CALL STBYTE RET ; ; ; PRINT┆ 0x056660…056680 20 53 54 52 49 4e 47 53 0d 0a 49 4e 53 4d 53 47 3a 0d 0a 09 4c 58 49 20 44 2c 24 2b 36 21 20 4a ┆ STRINGS INSMSG: LXI D,$+6! J┆ 0x056680…0566a0 4d 50 20 50 52 4d 53 47 0d 0a 09 44 42 20 43 52 2c 4c 46 2c 27 49 4e 53 45 52 54 20 43 4f 4e 54 ┆MP PRMSG DB CR,LF,'INSERT CONT┆ 0x0566a0…0566c0 52 4f 4c 20 44 49 53 4b 45 54 54 45 20 49 4e 20 41 2c 20 54 59 50 45 20 52 45 54 55 52 4e 24 27 ┆ROL DISKETTE IN A, TYPE RETURN$'┆ 0x0566c0…0566e0 0d 0a 3b 0d 0a 4f 52 47 4d 53 47 3a 0d 0a 09 4c 58 49 20 44 2c 24 2b 36 21 20 4a 4d 50 20 50 52 ┆ ; ORGMSG: LXI D,$+6! JMP PR┆ 0x0566e0…056700 4d 53 47 0d 0a 09 44 42 20 43 52 2c 4c 46 2c 27 43 50 2f 4d 20 56 45 52 20 27 0d 0a 09 44 42 20 ┆MSG DB CR,LF,'CP/M VER ' DB ┆ 0x056700…056720 56 45 52 53 49 4f 4e 2f 31 30 2b 27 30 27 2c 27 2e 27 2c 56 45 52 53 49 4f 4e 20 4d 4f 44 20 31 ┆VERSION/10+'0','.',VERSION MOD 1┆ 0x056720…056740 30 20 2b 27 30 27 0d 0a 09 44 42 20 27 20 53 45 52 49 41 4c 49 5a 41 54 49 4f 4e 2c 27 2c 43 52 ┆0 +'0' DB ' SERIALIZATION,',CR┆ 0x056740…056760 2c 4c 46 0d 0a 09 44 42 20 27 4f 52 49 47 49 4e 20 4e 55 4d 42 45 52 3f 20 24 27 0d 0a 3b 0d 0a ┆,LF DB 'ORIGIN NUMBER? $' ; ┆ 0x056760…056780 53 45 52 4d 53 47 3a 0d 0a 09 4c 58 49 20 44 2c 24 2b 36 21 20 4a 4d 50 20 50 52 4d 53 47 0d 0a ┆SERMSG: LXI D,$+6! JMP PRMSG ┆ 0x056780…0567a0 09 44 42 20 43 52 2c 4c 46 2c 27 53 54 41 52 54 49 4e 47 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 ┆ DB CR,LF,'STARTING SERIAL NUMBE┆ 0x0567a0…0567c0 52 3f 20 24 27 0d 0a 3b 0d 0a 49 4e 56 41 4c 49 44 3a 0d 0a 09 4c 58 49 20 44 2c 24 2b 36 21 20 ┆R? $' ; INVALID: LXI D,$+6! ┆ 0x0567c0…0567e0 4a 4d 50 20 50 52 4d 53 47 0d 0a 09 44 42 20 43 52 2c 4c 46 2c 27 49 4e 56 41 4c 49 44 20 4e 55 ┆JMP PRMSG DB CR,LF,'INVALID NU┆ 0x0567e0…056800 4d 42 45 52 2c 20 54 52 59 20 41 47 41 49 4e 20 24 27 0d 0a 3b 0d 0a 43 55 52 4d 53 47 3a 0d 0a ┆MBER, TRY AGAIN $' ; CURMSG: ┆ 0x056800…056820 (23, 0, 3) 53 54 41 43 4b 0d 0a 53 54 41 43 4b 3a 0d 0a 53 50 54 3a 09 44 53 09 31 0d 0a 54 52 4c 45 4e 09 ┆STACK STACK: SPT: DS 1 TRLEN ┆ 0x056820…056840 45 51 55 09 31 32 30 2a 31 32 38 09 3b 42 55 46 46 45 52 20 53 49 5a 45 0d 0a 49 42 55 46 46 3a ┆EQU 120*128 ;BUFFER SIZE IBUFF:┆ 0x056840…056860 09 44 53 09 54 52 4c 45 4e 0d 0a 4f 42 55 46 46 3a 09 44 53 09 54 52 4c 45 4e 0d 0a 43 43 50 56 ┆ DS TRLEN OBUFF: DS TRLEN CCPV┆ 0x056860…056880 09 45 51 55 09 49 42 55 46 46 2b 4f 46 46 53 45 54 0d 0a 42 44 4f 53 56 09 45 51 55 09 49 42 55 ┆ EQU IBUFF+OFFSET BDOSV EQU IBU┆ 0x056880…0568a0 46 46 2b 28 42 44 4f 53 42 2d 43 43 50 42 29 2b 4f 46 46 53 45 54 0d 0a 09 45 4e 44 09 54 50 41 ┆FF+(BDOSB-CCPB)+OFFSET END TPA┆ 0x0568a0…0568c0 0d 0a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆ ┆ 0x0568c0…0568e0 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆ ┆ […0x1…] 0x056900…056920 09 44 53 09 31 09 3b 53 45 52 49 41 4c 49 5a 45 20 54 52 41 43 4b 20 46 4f 52 20 43 50 4d 2e 43 ┆ DS 1 ;SERIALIZE TRACK FOR CPM.C┆ 0x056920…056940 4f 4d 20 46 49 4c 45 20 57 48 45 4e 20 45 4e 43 4f 55 4e 54 45 52 45 44 0d 0a 53 44 49 46 46 3a ┆OM FILE WHEN ENCOUNTERED SDIFF:┆ 0x056940…056960 09 44 53 09 32 09 3b 44 49 46 46 45 52 45 4e 43 45 20 42 45 54 57 45 45 4e 20 54 57 4f 20 53 45 ┆ DS 2 ;DIFFERENCE BETWEEN TWO SE┆ 0x056960…056980 52 49 41 4c 20 4e 55 4d 42 45 52 20 41 44 44 52 45 53 53 45 53 0d 0a 3b 09 53 45 43 54 4f 52 20 ┆RIAL NUMBER ADDRESSES ; SECTOR ┆ 0x056980…0569a0 54 52 41 4e 53 4c 41 54 49 4f 4e 20 56 45 43 54 4f 52 0d 0a 54 52 41 4e 3a 09 44 42 09 31 2c 37 ┆TRANSLATION VECTOR TRAN: DB 1,7┆ 0x0569a0…0569c0 2c 31 33 2c 31 39 2c 20 32 35 2c 35 2c 31 31 2c 31 37 0d 0a 09 44 42 09 32 33 2c 33 2c 39 2c 31 ┆,13,19, 25,5,11,17 DB 23,3,9,1┆ 0x0569c0…0569e0 35 2c 20 32 31 2c 32 2c 38 2c 31 34 0d 0a 09 44 42 09 32 30 2c 32 36 2c 36 2c 31 32 2c 20 31 38 ┆5, 21,2,8,14 DB 20,26,6,12, 18┆ 0x0569e0…056a00 2c 32 34 2c 34 2c 31 30 0d 0a 09 44 42 09 31 36 2c 32 32 0d 0a 3b 0d 0a 09 44 53 09 33 32 09 3b ┆,24,4,10 DB 16,22 ; DS 32 ;┆ 0x056a00…056a20 (23, 0, 4) 4f 46 49 4c 45 3a 09 44 42 09 27 4e 4f 20 53 4f 55 52 43 45 20 46 49 4c 45 27 2c 31 33 2c 31 30 ┆OFILE: DB 'NO SOURCE FILE',13,10┆ 0x056a20…056a40 2c 33 36 0d 0a 4e 4f 44 49 52 3a 09 44 42 09 27 4e 4f 20 44 49 52 45 43 54 4f 52 59 20 53 50 41 ┆,36 NODIR: DB 'NO DIRECTORY SPA┆ 0x056a40…056a60 43 45 27 2c 31 33 2c 31 30 2c 33 36 0d 0a 53 50 41 43 45 3a 09 44 42 09 27 4f 55 54 20 4f 46 20 ┆CE',13,10,36 SPACE: DB 'OUT OF ┆ 0x056a60…056a80 44 41 54 41 20 53 50 41 43 45 27 2c 31 33 2c 31 30 2c 33 36 0d 0a 57 52 50 52 4f 54 3a 20 44 42 ┆DATA SPACE',13,10,36 WRPROT: DB┆ 0x056a80…056aa0 09 27 57 52 49 54 45 20 50 52 4f 54 45 43 54 45 44 3f 27 2c 31 33 2c 31 30 2c 33 36 0d 0a 4e 4f ┆ 'WRITE PROTECTED?',13,10,36 NO┆ 0x056aa0…056ac0 52 4d 41 4c 3a 20 44 42 09 27 54 52 41 4e 53 46 45 52 20 43 4f 4d 50 4c 45 54 45 44 27 2c 31 33 ┆RMAL: DB 'TRANSFER COMPLETED',13┆ 0x056ac0…056ae0 2c 31 30 2c 33 36 0d 0a 54 4f 4f 42 49 47 3a 09 44 42 09 27 46 49 4c 45 20 54 4f 4f 20 42 49 47 ┆,10,36 TOOBIG: DB 'FILE TOO BIG┆ 0x056ae0…056b00 27 2c 31 33 2c 31 30 2c 33 36 0d 0a 53 57 4f 50 53 3a 09 44 42 09 27 49 4e 53 45 52 54 20 44 45 ┆',13,10,36 SWOPS: DB 'INSERT DE┆ 0x056b00…056b20 53 54 49 4e 41 54 49 4f 4e 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 54 55 52 4e 3e ┆STINATION DISK AND TYPE <RETURN>┆ 0x056b20…056b40 27 2c 31 33 2c 31 30 2c 33 36 0d 0a 53 57 4f 50 44 3a 20 20 44 42 09 27 49 4e 53 45 52 54 20 53 ┆',13,10,36 SWOPD: DB 'INSERT S┆ 0x056b40…056b60 4f 55 52 43 45 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 54 55 52 4e 3e 27 2c 31 33 ┆OURCE DISK AND TYPE <RETURN>',13┆ 0x056b60…056b80 2c 31 30 2c 33 36 0d 0a 53 57 4f 50 59 3a 20 20 44 42 09 27 49 4e 53 45 52 54 20 53 59 53 54 45 ┆,10,36 SWOPY: DB 'INSERT SYSTE┆ 0x056b80…056ba0 4d 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 54 55 52 4e 3e 27 2c 31 33 2c 31 30 2c ┆M DISK AND TYPE <RETURN>',13,10,┆ 0x056ba0…056bc0 33 36 0d 0a 0d 0a 41 46 4f 52 4d 3a 09 44 57 09 30 0d 0a 53 46 4f 52 4d 3a 09 44 57 09 30 0d 0a ┆36 AFORM: DW 0 SFORM: DW 0 ┆ 0x056bc0…056be0 43 41 44 44 52 3a 09 44 57 09 30 0d 0a 53 46 3a 09 44 57 09 30 0d 0a 44 46 3a 09 44 57 09 30 0d ┆CADDR: DW 0 SF: DW 0 DF: DW 0 ┆ 0x056be0…056c00 0a 53 44 52 49 56 3a 09 44 42 09 30 0d 0a 44 44 52 49 56 3a 09 44 42 09 30 0d 0a 0d 0a 0d 0a 53 ┆ SDRIV: DB 0 DDRIV: DB 0 S┆ 0x056c00…056c20 (23, 0, 5) 4d 42 45 52 0d 0a 09 4c 48 4c 44 20 42 53 45 52 49 41 4c 21 20 49 4e 58 20 48 21 20 53 48 4c 44 ┆MBER LHLD BSERIAL! INX H! SHLD┆ 0x056c20…056c40 20 42 53 45 52 49 41 4c 20 3b 54 45 53 54 20 46 4f 52 20 4f 56 45 52 46 4c 4f 57 0d 0a 09 4d 4f ┆ BSERIAL ;TEST FOR OVERFLOW MO┆ 0x056c40…056c60 56 20 41 2c 4c 21 20 4f 52 41 20 48 21 20 4a 5a 20 53 45 52 4f 56 45 52 0d 0a 09 3b 0d 0a 09 4c ┆V A,L! ORA H! JZ SEROVER ; L┆ 0x056c60…056c80 58 49 20 48 2c 41 53 45 52 49 41 4c 2b 34 21 20 4d 56 49 20 42 2c 35 20 3b 4c 45 4e 47 54 48 20 ┆XI H,ASERIAL+4! MVI B,5 ;LENGTH ┆ 0x056c80…056ca0 4f 46 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 0d 0a 09 49 4e 43 30 3a 09 49 4e 52 20 4d 21 20 ┆OF SERIAL NUMBER INC0: INR M! ┆ 0x056ca0…056cc0 4d 4f 56 20 41 2c 4d 21 20 43 50 49 20 27 39 27 2b 31 21 20 52 43 20 3b 52 45 54 55 52 4e 20 49 ┆MOV A,M! CPI '9'+1! RC ;RETURN I┆ 0x056cc0…056ce0 46 20 4e 4f 20 43 41 52 52 59 0d 0a 09 09 4d 56 49 20 4d 2c 27 30 27 20 3b 43 4c 45 41 52 20 54 ┆F NO CARRY MVI M,'0' ;CLEAR T┆ 0x056ce0…056d00 48 45 20 4e 55 4d 42 45 52 0d 0a 09 09 44 43 58 20 48 21 20 44 43 52 20 42 21 20 4a 4e 5a 20 49 ┆HE NUMBER DCX H! DCR B! JNZ I┆ 0x056d00…056d20 4e 43 30 0d 0a 09 3b 0d 0a 09 53 45 52 4f 56 45 52 3a 0d 0a 09 09 3b 4f 56 45 52 46 4c 4f 57 20 ┆NC0 ; SEROVER: ;OVERFLOW ┆ 0x056d20…056d40 49 4e 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 0d 0a 09 09 43 41 4c 4c 20 4f 56 45 52 4d 53 47 ┆IN SERIAL NUMBER CALL OVERMSG┆ 0x056d40…056d60 0d 0a 09 09 4a 4d 50 20 42 4f 4f 54 0d 0a 09 3b 0d 0a 54 52 41 4e 53 4c 41 54 45 3a 0d 0a 09 3b ┆ JMP BOOT ; TRANSLATE: ;┆ 0x056d60…056d80 54 52 41 4e 53 4c 41 54 45 20 54 48 45 20 52 45 4c 41 54 49 56 45 20 41 44 44 52 45 53 53 20 49 ┆TRANSLATE THE RELATIVE ADDRESS I┆ 0x056d80…056da0 4e 20 48 2c 4c 20 54 4f 20 41 42 53 4f 4c 55 54 45 20 41 44 44 52 45 53 53 0d 0a 09 3b 49 4e 20 ┆N H,L TO ABSOLUTE ADDRESS ;IN ┆ 0x056da0…056dc0 49 42 55 46 46 2c 20 41 53 53 55 4d 49 4e 47 20 53 45 43 54 4f 52 53 20 41 52 45 20 53 4b 45 57 ┆IBUFF, ASSUMING SECTORS ARE SKEW┆ 0x056dc0…056de0 45 44 0d 0a 09 50 55 53 48 20 44 21 20 4d 4f 56 20 41 2c 4c 21 20 41 4e 49 20 37 46 48 21 20 4d ┆ED PUSH D! MOV A,L! ANI 7FH! M┆ 0x056de0…056e00 4f 56 20 45 2c 41 20 3b 4c 53 20 37 20 42 49 54 53 20 4f 46 20 41 44 44 52 45 53 53 20 53 41 56 ┆OV E,A ;LS 7 BITS OF ADDRESS SAV┆ 0x056e00…056e20 (23, 0, 6) 09 4c 58 49 20 44 2c 24 2b 36 21 20 4a 4d 50 20 50 52 4d 53 47 0d 0a 09 44 42 20 43 52 2c 4c 46 ┆ LXI D,$+6! JMP PRMSG DB CR,LF┆ 0x056e20…056e40 2c 27 53 45 52 49 41 4c 49 5a 49 4e 47 20 44 49 53 4b 20 24 27 0d 0a 3b 0d 0a 41 53 45 52 4d 53 ┆,'SERIALIZING DISK $' ; ASERMS┆ 0x056e40…056e60 47 3a 0d 0a 09 4c 58 49 20 44 2c 41 4f 52 49 47 49 4e 21 20 43 41 4c 4c 20 50 52 4d 53 47 0d 0a ┆G: LXI D,AORIGIN! CALL PRMSG ┆ 0x056e60…056e80 09 4c 58 49 20 44 2c 41 53 45 52 49 41 4c 21 20 4a 4d 50 20 50 52 4d 53 47 0d 0a 3b 0d 0a 4e 45 ┆ LXI D,ASERIAL! JMP PRMSG ; NE┆ 0x056e80…056ea0 57 4d 53 47 3a 0d 0a 09 4c 58 49 20 44 2c 24 2b 36 21 20 4a 4d 50 20 50 52 4d 53 47 0d 0a 09 44 ┆WMSG: LXI D,$+6! JMP PRMSG D┆ 0x056ea0…056ec0 42 20 43 52 2c 4c 46 2c 27 49 4e 53 45 52 54 20 4e 45 57 20 44 49 53 4b 45 54 54 45 2c 20 54 59 ┆B CR,LF,'INSERT NEW DISKETTE, TY┆ 0x056ec0…056ee0 50 45 20 52 45 54 55 52 4e 24 27 0d 0a 3b 0d 0a 42 41 44 43 4f 4d 3a 0d 0a 09 4c 58 49 20 44 2c ┆PE RETURN$' ; BADCOM: LXI D,┆ 0x056ee0…056f00 24 2b 36 21 20 4a 4d 50 20 50 52 4d 53 47 0d 0a 09 44 42 20 43 52 2c 4c 46 2c 27 42 41 44 20 4d ┆$+6! JMP PRMSG DB CR,LF,'BAD M┆ 0x056f00…056f20 4f 56 43 50 4d 2e 43 4f 4d 20 46 49 4c 45 2c 20 52 45 50 4c 41 43 45 24 27 0d 0a 3b 0d 0a 42 41 ┆OVCPM.COM FILE, REPLACE$' ; BA┆ 0x056f20…056f40 44 44 53 4b 3a 0d 0a 09 4c 58 49 20 44 2c 24 2b 36 21 20 4a 4d 50 20 50 52 4d 53 47 0d 0a 09 44 ┆DDSK: LXI D,$+6! JMP PRMSG D┆ 0x056f40…056f60 42 20 43 52 2c 4c 46 2c 27 4e 4f 4e 20 43 50 2f 4d 20 44 49 53 4b 45 54 54 45 2c 20 43 41 4e 4e ┆B CR,LF,'NON CP/M DISKETTE, CANN┆ 0x056f60…056f80 4f 54 20 53 45 52 49 41 4c 49 5a 45 24 27 0d 0a 3b 0d 0a 56 45 52 45 52 52 3a 0d 0a 09 4c 58 49 ┆OT SERIALIZE$' ; VERERR: LXI┆ 0x056f80…056fa0 20 44 2c 24 2b 36 21 20 4a 4d 50 20 50 52 4d 53 47 0d 0a 09 44 42 20 43 52 2c 4c 46 2c 27 56 45 ┆ D,$+6! JMP PRMSG DB CR,LF,'VE┆ 0x056fa0…056fc0 52 49 46 49 43 41 54 49 4f 4e 20 45 52 52 4f 52 2c 20 42 41 44 20 44 49 53 4b 24 27 0d 0a 3b 0d ┆RIFICATION ERROR, BAD DISK$' ; ┆ 0x056fc0…056fe0 0a 4f 56 45 52 4d 53 47 3a 0d 0a 09 4c 58 49 20 44 2c 24 2b 36 21 20 4a 4d 50 20 50 52 4d 53 47 ┆ OVERMSG: LXI D,$+6! JMP PRMSG┆ 0x056fe0…057000 0d 0a 09 44 42 20 43 52 2c 4c 46 2c 27 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 20 4f 56 45 52 46 ┆ DB CR,LF,'SERIAL NUMBER OVERF┆ 0x057000…057020 (23, 0, 7) 74 0d 0a 09 72 65 74 0d 0a 69 6e 73 74 61 31 3a 09 69 6e 09 64 73 74 61 74 2b 31 30 68 0d 0a 09 ┆t ret insta1: in dstat+10h ┆ 0x057020…057040 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 61 74 61 20 61 72 65 61 73 20 28 6d 75 73 74 ┆ret ; ; ; ; data areas (must┆ 0x057040…057060 20 62 65 20 69 6e 20 72 61 6d 29 0d 0a 64 62 61 6e 6b 3a 09 64 62 09 30 09 3b 64 69 73 6b 20 62 ┆ be in ram) dbank: db 0 ;disk b┆ 0x057060…057080 61 6e 6b 20 30 30 20 69 66 20 64 72 69 76 65 20 30 2c 31 0d 0a 09 09 09 3b 09 20 20 20 31 30 20 ┆ank 00 if drive 0,1 ; 10 ┆ 0x057080…0570a0 69 66 20 64 72 69 76 65 20 32 2c 33 0d 0a 69 6f 70 62 3a 09 3b 69 6f 20 70 61 72 61 6d 65 74 65 ┆if drive 2,3 iopb: ;io paramete┆ 0x0570a0…0570c0 72 20 62 6c 6f 63 6b 0d 0a 09 64 62 09 38 30 68 09 3b 6e 6f 72 6d 61 6c 20 69 2f 6f 20 6f 70 65 ┆r block db 80h ;normal i/o ope┆ 0x0570c0…0570e0 72 61 74 69 6f 6e 0d 0a 69 6f 66 3a 09 64 62 09 72 65 61 64 66 09 3b 69 6f 20 66 75 6e 63 74 69 ┆ration iof: db readf ;io functi┆ 0x0570e0…057100 6f 6e 2c 20 69 6e 69 74 69 61 6c 20 72 65 61 64 0d 0a 69 6f 6e 3a 09 64 62 09 31 09 3b 6e 75 6d ┆on, initial read ion: db 1 ;num┆ 0x057100…057120 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 20 74 6f 20 72 65 61 64 0d 0a 69 6f 74 3a 09 64 62 09 ┆ber of sectors to read iot: db ┆ 0x057120…057140 6f 66 66 73 65 74 09 3b 74 72 61 63 6b 20 6e 75 6d 62 65 72 0d 0a 69 6f 73 3a 09 64 62 09 31 09 ┆offset ;track number ios: db 1 ┆ 0x057140…057160 3b 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 0d 0a 69 6f 64 3a 09 64 77 09 62 75 66 66 09 3b 69 6f ┆;sector number iod: dw buff ;io┆ 0x057160…057180 20 61 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 65 66 69 6e 65 20 72 61 6d 20 61 72 65 ┆ address ; ; ; define ram are┆ 0x057180…0571a0 61 73 20 66 6f 72 20 62 64 6f 73 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 09 65 6e 64 65 66 0d 0a 09 ┆as for bdos operation endef ┆ 0x0571a0…0571c0 65 6e 64 0d 0a 3b 09 4d 44 53 2d 38 30 30 20 49 2f 4f 20 44 72 69 76 65 72 73 20 66 6f 72 20 43 ┆end ; MDS-800 I/O Drivers for C┆ 0x0571c0…0571e0 50 2f 4d 20 32 2e 32 0d 0a 3b 09 28 66 6f 75 72 20 64 72 69 76 65 20 73 69 6e 67 6c 65 20 64 65 ┆P/M 2.2 ; (four drive single de┆ 0x0571e0…057200 6e 73 69 74 79 20 76 65 72 73 69 6f 6e 29 0d 0a 3b 0d 0a 3b 09 56 65 72 73 69 6f 6e 20 32 2e 32 ┆nsity version) ; ; Version 2.2┆ 0x057200…057220 (23, 0, 8) 45 43 43 4e 54 3a 20 44 42 09 30 0d 0a 43 43 50 52 45 54 3a 20 44 57 09 30 0d 0a 0d 0a 44 46 43 ┆ECCNT: DB 0 CCPRET: DW 0 DFC┆ 0x057220…057240 42 3a 09 44 53 09 33 33 09 09 3b 20 44 45 53 54 49 4e 41 54 49 4f 4e 20 46 43 42 0d 0a 44 46 43 ┆B: DS 33 ; DESTINATION FCB DFC┆ 0x057240…057260 42 43 52 09 45 51 55 09 44 46 43 42 2b 33 32 09 09 3b 0d 0a 0d 0a 09 44 53 09 33 31 09 09 3b 0d ┆BCR EQU DFCB+32 ; DS 31 ; ┆ 0x057260…057280 0a 53 54 41 43 4b 3a 09 44 53 09 31 09 09 3b 20 4c 4f 43 41 4c 20 53 54 41 43 4b 0d 0a 0d 0a 42 ┆ STACK: DS 1 ; LOCAL STACK B┆ 0x057280…0572a0 55 46 3a 09 44 57 09 30 09 09 3b 20 52 45 41 44 2f 57 52 49 54 45 20 42 55 46 46 45 52 0d 0a 0d ┆UF: DW 0 ; READ/WRITE BUFFER ┆ 0x0572a0…0572c0 0a 09 45 4e 44 09 30 31 30 30 48 0d 0a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆ END 0100H ┆ 0x0572c0…0572e0 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆ ┆ […0x1…] 0x057300…057320 53 54 49 4e 41 54 49 4f 4e 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 54 55 52 4e 3e ┆STINATION DISK AND TYPE <RETURN>┆ 0x057320…057340 27 2c 31 33 2c 31 30 2c 33 36 0d 0a 53 57 4f 50 44 3a 20 20 44 42 09 27 49 4e 53 45 52 54 20 53 ┆',13,10,36 SWOPD: DB 'INSERT S┆ 0x057340…057360 4f 55 52 43 45 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 54 55 52 4e 3e 27 2c 31 33 ┆OURCE DISK AND TYPE <RETURN>',13┆ 0x057360…057380 2c 31 30 2c 33 36 0d 0a 53 57 4f 50 59 3a 20 20 44 42 09 27 49 4e 53 45 52 54 20 53 59 53 54 45 ┆,10,36 SWOPY: DB 'INSERT SYSTE┆ 0x057380…0573a0 4d 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 54 55 52 4e 3e 27 2c 31 33 2c 31 30 2c ┆M DISK AND TYPE <RETURN>',13,10,┆ 0x0573a0…0573c0 33 36 0d 0a 0d 0a 41 46 4f 52 4d 3a 09 44 57 09 30 0d 0a 53 46 4f 52 4d 3a 09 44 57 09 30 0d 0a ┆36 AFORM: DW 0 SFORM: DW 0 ┆ 0x0573c0…0573e0 43 41 44 44 52 3a 09 44 57 09 30 0d 0a 53 46 3a 09 44 57 09 30 0d 0a 44 46 3a 09 44 57 09 30 0d ┆CADDR: DW 0 SF: DW 0 DF: DW 0 ┆ 0x0573e0…057400 0a 53 44 52 49 56 3a 09 44 42 09 30 0d 0a 44 44 52 49 56 3a 09 44 42 09 30 0d 0a 0d 0a 0d 0a 53 ┆ SDRIV: DB 0 DDRIV: DB 0 S┆ 0x057400…057420 (23, 0, 9) 45 44 0d 0a 09 09 4d 4f 56 20 41 2c 4c 21 20 52 41 4c 20 3b 43 41 52 52 59 20 47 45 54 53 20 4d ┆ED MOV A,L! RAL ;CARRY GETS M┆ 0x057420…057440 53 42 0d 0a 09 09 4d 4f 56 20 41 2c 48 21 20 52 41 4c 20 3b 43 41 52 52 59 20 47 4f 45 53 20 54 ┆SB MOV A,H! RAL ;CARRY GOES T┆ 0x057440…057460 4f 20 4c 53 42 0d 0a 09 09 4d 4f 56 20 4c 2c 41 21 20 4d 56 49 20 48 2c 30 20 3b 48 2c 4c 20 43 ┆O LSB MOV L,A! MVI H,0 ;H,L C┆ 0x057460…057480 4f 4e 54 41 49 4e 20 49 4e 44 45 58 20 49 4e 54 4f 20 54 52 41 4e 53 4c 41 54 45 20 54 41 42 4c ┆ONTAIN INDEX INTO TRANSLATE TABL┆ 0x057480…0574a0 45 0d 0a 09 09 50 55 53 48 20 44 21 20 4c 58 49 20 44 2c 54 52 41 4e 21 20 44 41 44 20 44 21 20 ┆E PUSH D! LXI D,TRAN! DAD D! ┆ 0x0574a0…0574c0 50 4f 50 20 44 0d 0a 09 09 3b 48 2c 4c 20 41 44 44 52 45 53 53 20 54 52 41 4e 53 4c 41 54 49 4f ┆POP D ;H,L ADDRESS TRANSLATIO┆ 0x0574c0…0574e0 4e 20 45 4c 45 4d 45 4e 54 2c 20 43 4f 4e 56 45 52 54 20 54 4f 20 52 45 4c 20 41 44 44 52 45 53 ┆N ELEMENT, CONVERT TO REL ADDRES┆ 0x0574e0…057500 53 0d 0a 09 09 58 52 41 20 41 21 20 4d 4f 56 20 41 2c 4d 21 20 44 43 52 20 41 20 21 20 52 41 52 ┆S XRA A! MOV A,M! DCR A ! RAR┆ 0x057500…057520 20 3b 43 41 52 52 59 20 47 45 54 53 20 4c 53 42 2c 20 4d 53 42 3d 30 0d 0a 09 09 4d 4f 56 20 48 ┆ ;CARRY GETS LSB, MSB=0 MOV H┆ 0x057520…057540 2c 41 21 20 4d 56 49 20 41 2c 30 21 20 52 41 52 20 3b 43 41 52 52 59 20 47 4f 45 53 20 54 4f 20 ┆,A! MVI A,0! RAR ;CARRY GOES TO ┆ 0x057540…057560 4d 53 42 0d 0a 09 09 4f 52 41 20 45 20 3b 52 45 43 4c 41 49 4d 20 54 48 45 20 4c 45 41 53 54 20 ┆MSB ORA E ;RECLAIM THE LEAST ┆ 0x057560…057580 53 49 47 4e 49 46 49 43 41 4e 54 20 37 20 42 49 54 53 0d 0a 09 09 4d 4f 56 20 4c 2c 41 21 20 4c ┆SIGNIFICANT 7 BITS MOV L,A! L┆ 0x057580…0575a0 58 49 20 44 2c 49 42 55 46 46 21 20 44 41 44 20 44 20 3b 41 42 53 4f 4c 55 54 45 20 41 44 44 52 ┆XI D,IBUFF! DAD D ;ABSOLUTE ADDR┆ 0x0575a0…0575c0 45 53 53 20 49 4e 20 48 2c 4c 0d 0a 09 09 50 4f 50 20 44 20 3b 52 45 43 41 4c 4c 20 53 54 41 43 ┆ESS IN H,L POP D ;RECALL STAC┆ 0x0575c0…0575e0 4b 45 44 20 44 20 56 41 4c 55 45 0d 0a 09 09 52 45 54 0d 0a 3b 0d 0a 53 54 42 59 54 45 3a 09 3b ┆KED D VALUE RET ; STBYTE: ;┆ 0x0575e0…057600 53 54 4f 52 45 20 42 59 54 45 20 56 41 4c 55 45 20 47 49 56 45 4e 20 42 59 20 52 45 47 49 53 54 ┆STORE BYTE VALUE GIVEN BY REGIST┆ 0x057600…057620 (23, 0, 10) 4c 4f 57 24 27 0d 0a 52 45 41 44 30 4d 53 47 3a 0d 0a 09 4c 58 49 20 44 2c 24 2b 36 21 20 4a 4d ┆LOW$' READ0MSG: LXI D,$+6! JM┆ 0x057620…057640 50 20 50 52 4d 53 47 0d 0a 09 44 42 20 43 52 2c 4c 46 2c 27 45 52 52 4f 52 20 4f 4e 20 53 4f 55 ┆P PRMSG DB CR,LF,'ERROR ON SOU┆ 0x057640…057660 52 43 45 20 44 49 53 4b 2c 20 52 45 50 4c 41 43 45 24 27 0d 0a 3b 0d 0a 57 52 49 54 45 30 4d 53 ┆RCE DISK, REPLACE$' ; WRITE0MS┆ 0x057660…057680 47 3a 0d 0a 09 4c 58 49 20 44 2c 24 2b 36 21 20 4a 4d 50 20 50 52 4d 53 47 0d 0a 09 44 42 20 43 ┆G: LXI D,$+6! JMP PRMSG DB C┆ 0x057680…0576a0 52 2c 4c 46 2c 27 43 41 4e 4e 4f 54 20 57 52 49 54 45 20 4e 45 57 20 44 49 53 4b 2c 20 52 45 50 ┆R,LF,'CANNOT WRITE NEW DISK, REP┆ 0x0576a0…0576c0 4c 41 43 45 24 27 0d 0a 3b 0d 0a 52 45 41 44 31 4d 53 47 3a 0d 0a 09 4c 58 49 20 44 2c 24 2b 36 ┆LACE$' ; READ1MSG: LXI D,$+6┆ 0x0576c0…0576e0 21 20 4a 4d 50 20 50 52 4d 53 47 0d 0a 09 44 42 20 43 52 2c 4c 46 2c 27 43 41 4e 4e 4f 54 20 52 ┆! JMP PRMSG DB CR,LF,'CANNOT R┆ 0x0576e0…057700 45 2d 52 45 41 44 20 4e 45 57 20 44 49 53 4b 2c 20 52 45 50 4c 41 43 45 24 27 0d 0a 3b 0d 0a 3b ┆E-READ NEW DISK, REPLACE$' ; ;┆ 0x057700…057720 0d 0a 3b 09 4d 49 53 43 45 4c 4c 41 4e 45 4f 55 53 20 44 41 54 41 20 41 52 45 41 53 0d 0a 3b 0d ┆ ; MISCELLANEOUS DATA AREAS ; ┆ 0x057720…057740 0a 4f 52 49 47 49 4e 3a 09 44 53 09 32 09 3b 42 49 4e 41 52 59 20 4f 52 49 47 49 4e 0d 0a 41 4f ┆ ORIGIN: DS 2 ;BINARY ORIGIN AO┆ 0x057740…057760 52 49 47 3a 09 44 42 09 43 52 2c 4c 46 0d 0a 41 4f 52 49 47 49 4e 3a 0d 0a 09 44 42 09 27 30 30 ┆RIG: DB CR,LF AORIGIN: DB '00┆ 0x057760…057780 30 30 30 2d 24 27 0d 0a 54 52 4d 53 47 3a 09 44 42 09 43 52 2c 4c 46 0d 0a 54 52 43 4f 55 4e 54 ┆000-$' TRMSG: DB CR,LF TRCOUNT┆ 0x057780…0577a0 3a 0d 0a 09 44 42 09 27 30 30 20 54 52 41 43 4b 53 20 56 45 52 49 46 49 45 44 24 27 0d 0a 42 53 ┆: DB '00 TRACKS VERIFIED$' BS┆ 0x0577a0…0577c0 45 52 49 41 4c 3a 0d 0a 09 44 53 09 32 09 3b 42 49 4e 41 52 59 20 53 45 52 49 41 4c 20 4e 55 4d ┆ERIAL: DS 2 ;BINARY SERIAL NUM┆ 0x0577c0…0577e0 42 45 52 0d 0a 41 53 45 52 49 41 4c 3a 0d 0a 09 44 42 09 27 30 30 30 30 30 24 27 0d 0a 43 4f 4d ┆BER ASERIAL: DB '00000$' COM┆ 0x0577e0…057800 50 41 52 45 3a 0d 0a 09 3b 43 4f 4d 4d 41 4e 44 53 20 41 52 45 20 45 4e 43 4f 44 45 44 20 54 4f ┆PARE: ;COMMANDS ARE ENCODED TO┆ 0x057800…057820 (23, 0, 11) 09 09 3b 0d 0a 09 43 41 4c 4c 09 53 45 54 44 4d 41 09 09 3b 0d 0a 09 4c 58 49 09 48 2c 53 45 43 ┆ ; CALL SETDMA ; LXI H,SEC┆ 0x057820…057840 43 4e 54 09 3b 20 53 45 43 54 4f 52 43 4f 55 4e 54 3a 3d 53 45 43 54 4f 49 52 43 4f 55 4e 54 2d ┆CNT ; SECTORCOUNT:=SECTOIRCOUNT-┆ 0x057840…057860 31 3b 0d 0a 09 44 43 52 09 4d 09 09 3b 0d 0a 09 4a 4e 5a 09 57 44 41 54 41 09 09 3b 20 49 46 20 ┆1; DCR M ; JNZ WDATA ; IF ┆ 0x057860…057880 53 45 43 54 4f 52 43 4f 55 4e 54 3e 30 20 54 48 45 4e 20 47 4f 54 4f 20 57 52 49 54 45 52 45 43 ┆SECTORCOUNT>0 THEN GOTO WRITEREC┆ 0x057880…0578a0 3b 0d 0a 09 50 4f 50 09 44 09 09 3b 0d 0a 09 4c 58 49 09 44 2c 44 46 43 42 09 09 3b 0d 0a 09 43 ┆; POP D ; LXI D,DFCB ; C┆ 0x0578a0…0578c0 41 4c 4c 09 43 4c 4f 53 45 09 09 3b 20 43 4c 4f 53 45 20 44 45 53 54 49 4e 41 54 49 4f 4e 20 46 ┆ALL CLOSE ; CLOSE DESTINATION F┆ 0x0578c0…0578e0 49 4c 45 3b 0d 0a 09 4c 58 49 09 44 2c 57 52 50 52 4f 54 09 3b 0d 0a 09 49 4e 52 09 41 09 09 3b ┆ILE; LXI D,WRPROT ; INR A ;┆ 0x0578e0…057900 0d 0a 09 43 5a 09 46 49 4e 49 53 09 09 3b 0d 0a 09 4c 58 49 09 44 2c 4e 4f 52 4d 41 4c 09 3b 0d ┆ CZ FINIS ; LXI D,NORMAL ; ┆ 0x057900…057920 0a 09 43 41 4c 4c 09 50 52 49 4e 54 09 09 3b 0d 0a 4d 53 59 53 46 3a 09 4c 58 49 09 44 2c 53 57 ┆ CALL PRINT ; MSYSF: LXI D,SW┆ 0x057920…057940 4f 50 59 09 09 3b 0d 0a 09 43 41 4c 4c 09 50 52 49 4e 54 09 09 3b 0d 0a 09 43 41 4c 4c 09 43 4f ┆OPY ; CALL PRINT ; CALL CO┆ 0x057940…057960 4e 53 49 09 09 3b 20 57 41 49 54 20 44 49 53 4b 20 43 48 41 4e 47 45 44 20 42 41 43 4b 3b 0d 0a ┆NSI ; WAIT DISK CHANGED BACK; ┆ 0x057960…057980 09 4c 48 4c 44 09 53 46 4f 52 4d 09 09 3b 0d 0a 09 43 41 4c 4c 09 53 45 54 46 09 09 3b 0d 0a 09 ┆ LHLD SFORM ; CALL SETF ; ┆ 0x057980…0579a0 43 41 4c 4c 09 52 45 53 45 54 09 09 3b 20 52 45 53 45 54 20 44 52 49 56 45 53 3b 0d 0a 09 4c 48 ┆CALL RESET ; RESET DRIVES; LH┆ 0x0579a0…0579c0 4c 44 09 43 43 50 52 45 54 09 09 3b 20 52 45 54 55 52 4e 20 54 4f 20 43 43 50 0d 0a 09 50 43 48 ┆LD CCPRET ; RETURN TO CCP PCH┆ 0x0579c0…0579e0 4c 09 09 09 3b 0d 0a 0d 0a 46 49 4e 49 53 3a 09 4d 56 49 09 43 2c 50 52 49 4e 54 46 09 3b 20 50 ┆L ; FINIS: MVI C,PRINTF ; P┆ 0x0579e0…057a00 52 49 4e 54 20 4d 45 53 53 41 47 45 3a 0d 0a 09 43 41 4c 4c 09 42 44 4f 53 09 09 3b 0d 0a 09 4a ┆RINT MESSAGE: CALL BDOS ; J┆ 0x057a00…057a20 (23, 0, 12) 09 09 3b 0d 0a 09 43 41 4c 4c 09 53 45 54 44 4d 41 09 09 3b 0d 0a 09 4c 58 49 09 48 2c 53 45 43 ┆ ; CALL SETDMA ; LXI H,SEC┆ 0x057a20…057a40 43 4e 54 09 3b 20 53 45 43 54 4f 52 43 4f 55 4e 54 3a 3d 53 45 43 54 4f 49 52 43 4f 55 4e 54 2d ┆CNT ; SECTORCOUNT:=SECTOIRCOUNT-┆ 0x057a40…057a60 31 3b 0d 0a 09 44 43 52 09 4d 09 09 3b 0d 0a 09 4a 4e 5a 09 57 44 41 54 41 09 09 3b 20 49 46 20 ┆1; DCR M ; JNZ WDATA ; IF ┆ 0x057a60…057a80 53 45 43 54 4f 52 43 4f 55 4e 54 3e 30 20 54 48 45 4e 20 47 4f 54 4f 20 57 52 49 54 45 52 45 43 ┆SECTORCOUNT>0 THEN GOTO WRITEREC┆ 0x057a80…057aa0 3b 0d 0a 09 50 4f 50 09 44 09 09 3b 0d 0a 09 4c 58 49 09 44 2c 44 46 43 42 09 09 3b 0d 0a 09 43 ┆; POP D ; LXI D,DFCB ; C┆ 0x057aa0…057ac0 41 4c 4c 09 43 4c 4f 53 45 09 09 3b 20 43 4c 4f 53 45 20 44 45 53 54 49 4e 41 54 49 4f 4e 20 46 ┆ALL CLOSE ; CLOSE DESTINATION F┆ 0x057ac0…057ae0 49 4c 45 3b 0d 0a 09 4c 58 49 09 44 2c 57 52 50 52 4f 54 09 3b 0d 0a 09 49 4e 52 09 41 09 09 3b ┆ILE; LXI D,WRPROT ; INR A ;┆ 0x057ae0…057b00 0d 0a 09 43 5a 09 46 49 4e 49 53 09 09 3b 0d 0a 09 4c 58 49 09 44 2c 4e 4f 52 4d 41 4c 09 3b 0d ┆ CZ FINIS ; LXI D,NORMAL ; ┆ 0x057b00…057b20 0a 09 43 41 4c 4c 09 50 52 49 4e 54 09 09 3b 0d 0a 4d 53 59 53 46 3a 09 4c 58 49 09 44 2c 53 57 ┆ CALL PRINT ; MSYSF: LXI D,SW┆ 0x057b20…057b40 4f 50 59 09 09 3b 0d 0a 09 43 41 4c 4c 09 50 52 49 4e 54 09 09 3b 0d 0a 09 43 41 4c 4c 09 43 4f ┆OPY ; CALL PRINT ; CALL CO┆ 0x057b40…057b60 4e 53 49 09 09 3b 20 57 41 49 54 20 44 49 53 4b 20 43 48 41 4e 47 45 44 20 42 41 43 4b 3b 0d 0a ┆NSI ; WAIT DISK CHANGED BACK; ┆ 0x057b60…057b80 09 4c 48 4c 44 09 53 46 4f 52 4d 09 09 3b 0d 0a 09 43 41 4c 4c 09 53 45 54 46 09 09 3b 0d 0a 09 ┆ LHLD SFORM ; CALL SETF ; ┆ 0x057b80…057ba0 43 41 4c 4c 09 52 45 53 45 54 09 09 3b 20 52 45 53 45 54 20 44 52 49 56 45 53 3b 0d 0a 09 4c 48 ┆CALL RESET ; RESET DRIVES; LH┆ 0x057ba0…057bc0 4c 44 09 43 43 50 52 45 54 09 09 3b 20 52 45 54 55 52 4e 20 54 4f 20 43 43 50 0d 0a 09 50 43 48 ┆LD CCPRET ; RETURN TO CCP PCH┆ 0x057bc0…057be0 4c 09 09 09 3b 0d 0a 0d 0a 46 49 4e 49 53 3a 09 4d 56 49 09 43 2c 50 52 49 4e 54 46 09 3b 20 50 ┆L ; FINIS: MVI C,PRINTF ; P┆ 0x057be0…057c00 52 49 4e 54 20 4d 45 53 53 41 47 45 3a 0d 0a 09 43 41 4c 4c 09 42 44 4f 53 09 09 3b 0d 0a 09 4a ┆RINT MESSAGE: CALL BDOS ; J┆ 0x057c00…057c20 (23, 0, 13) 45 52 20 41 20 54 4f 20 54 52 41 4e 53 4c 41 54 45 44 0d 0a 09 3b 41 44 44 52 45 53 53 20 47 49 ┆ER A TO TRANSLATED ;ADDRESS GI┆ 0x057c20…057c40 56 45 4e 20 42 59 20 48 2c 4c 2e 20 20 49 4e 43 52 45 4d 45 4e 54 20 48 2c 4c 20 55 50 4f 4e 20 ┆VEN BY H,L. INCREMENT H,L UPON ┆ 0x057c40…057c60 52 45 54 55 52 4e 0d 0a 09 50 55 53 48 20 48 21 20 50 55 53 48 20 44 21 20 50 55 53 48 20 50 53 ┆RETURN PUSH H! PUSH D! PUSH PS┆ 0x057c60…057c80 57 0d 0a 09 43 41 4c 4c 20 54 52 41 4e 53 4c 41 54 45 21 20 50 4f 50 20 50 53 57 0d 0a 09 4d 4f ┆W CALL TRANSLATE! POP PSW MO┆ 0x057c80…057ca0 56 20 4d 2c 41 21 20 50 4f 50 20 44 21 20 50 4f 50 20 48 21 20 49 4e 58 20 48 21 20 52 45 54 0d ┆V M,A! POP D! POP H! INX H! RET ┆ 0x057ca0…057cc0 0a 3b 0d 0a 53 54 53 45 52 49 41 4c 3a 0d 0a 09 3b 53 54 4f 52 45 20 54 48 45 20 53 45 52 49 41 ┆ ; STSERIAL: ;STORE THE SERIA┆ 0x057cc0…057ce0 4c 20 4e 55 4d 42 45 52 20 49 4e 54 4f 20 41 44 44 52 45 53 53 20 47 49 56 45 4e 20 42 59 20 48 ┆L NUMBER INTO ADDRESS GIVEN BY H┆ 0x057ce0…057d00 2c 4c 0d 0a 09 4c 44 41 20 4f 52 49 47 49 4e 21 20 43 41 4c 4c 20 53 54 42 59 54 45 20 3b 42 59 ┆,L LDA ORIGIN! CALL STBYTE ;BY┆ 0x057d00…057d20 54 45 20 53 54 4f 52 45 44 2c 20 48 2c 4c 20 49 4e 43 52 45 4d 45 4e 54 45 44 0d 0a 09 4d 56 49 ┆TE STORED, H,L INCREMENTED MVI┆ 0x057d20…057d40 20 41 2c 56 45 52 53 49 4f 4e 21 20 43 41 4c 4c 20 53 54 42 59 54 45 20 3b 56 45 52 53 49 4f 4e ┆ A,VERSION! CALL STBYTE ;VERSION┆ 0x057d40…057d60 20 4e 55 4d 42 45 52 0d 0a 09 09 6c 64 61 20 6f 72 69 67 69 6e 2b 31 20 21 20 63 61 6c 6c 20 73 ┆ NUMBER lda origin+1 ! call s┆ 0x057d60…057d80 74 62 79 74 65 09 3b 20 73 74 75 66 66 20 68 69 67 68 28 6f 72 69 67 69 6e 29 0d 0a 09 09 58 52 ┆tbyte ; stuff high(origin) XR┆ 0x057d80…057da0 41 20 41 21 20 43 41 4c 4c 20 53 54 42 59 54 45 20 3b 5a 45 52 4f 20 42 59 54 45 0d 0a 09 3b 4e ┆A A! CALL STBYTE ;ZERO BYTE ;N┆ 0x057da0…057dc0 4f 57 20 4d 4f 56 45 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 20 54 4f 20 4c 41 53 54 20 54 57 ┆OW MOVE SERIAL NUMBER TO LAST TW┆ 0x057dc0…057de0 4f 20 42 59 54 45 53 0d 0a 09 4c 58 49 20 44 2c 42 53 45 52 49 41 4c 2b 31 20 3b 41 44 44 52 45 ┆O BYTES LXI D,BSERIAL+1 ;ADDRE┆ 0x057de0…057e00 53 53 20 48 49 47 48 20 4f 52 44 45 52 20 50 4f 53 49 54 49 4f 4e 20 4f 46 20 53 45 52 20 23 0d ┆SS HIGH ORDER POSITION OF SER # ┆ 0x057e00…057e20 (23, 0, 14) 20 4d 41 4b 45 20 44 49 53 41 53 53 45 4d 42 4c 59 20 48 41 52 44 45 52 0d 0a 09 44 57 09 4e 4f ┆ MAKE DISASSEMBLY HARDER DW NO┆ 0x057e20…057e40 54 20 27 44 49 27 2c 4e 4f 54 20 27 52 20 27 0d 0a 09 44 57 09 4e 4f 54 20 27 45 52 27 2c 4e 4f ┆T 'DI',NOT 'R ' DW NOT 'ER',NO┆ 0x057e40…057e60 54 20 27 41 20 27 0d 0a 09 44 57 09 4e 4f 54 20 27 54 59 27 2c 4e 4f 54 20 27 50 45 27 0d 0a 09 ┆T 'A ' DW NOT 'TY',NOT 'PE' ┆ 0x057e60…057e80 44 57 09 4e 4f 54 20 27 53 41 27 2c 4e 4f 54 20 27 56 45 27 0d 0a 09 44 57 09 4e 4f 54 20 27 52 ┆DW NOT 'SA',NOT 'VE' DW NOT 'R┆ 0x057e80…057ea0 45 27 2c 4e 4f 54 20 27 4e 20 27 0d 0a 09 44 57 09 4e 4f 54 20 27 55 53 27 2c 4e 4f 54 20 27 45 ┆E',NOT 'N ' DW NOT 'US',NOT 'E┆ 0x057ea0…057ec0 52 27 0d 0a 09 43 4f 4d 50 4c 45 4e 20 45 51 55 20 28 24 2d 43 4f 4d 50 41 52 45 29 2f 32 0d 0a ┆R' COMPLEN EQU ($-COMPARE)/2 ┆ 0x057ec0…057ee0 3b 09 49 4e 50 55 54 20 42 55 46 46 45 52 0d 0a 4d 41 58 4c 45 4e 3a 09 44 42 09 37 0d 0a 43 4f ┆; INPUT BUFFER MAXLEN: DB 7 CO┆ 0x057ee0…057f00 4d 4c 45 4e 3a 09 44 53 09 31 0d 0a 43 42 55 46 46 3a 09 44 53 09 38 0d 0a 53 54 52 41 43 4b 3a ┆MLEN: DS 1 CBUFF: DS 8 STRACK:┆ 0x057f00…057f20 09 44 53 09 31 09 3b 53 45 52 49 41 4c 49 5a 45 20 54 52 41 43 4b 20 46 4f 52 20 43 50 4d 2e 43 ┆ DS 1 ;SERIALIZE TRACK FOR CPM.C┆ 0x057f20…057f40 4f 4d 20 46 49 4c 45 20 57 48 45 4e 20 45 4e 43 4f 55 4e 54 45 52 45 44 0d 0a 53 44 49 46 46 3a ┆OM FILE WHEN ENCOUNTERED SDIFF:┆ 0x057f40…057f60 09 44 53 09 32 09 3b 44 49 46 46 45 52 45 4e 43 45 20 42 45 54 57 45 45 4e 20 54 57 4f 20 53 45 ┆ DS 2 ;DIFFERENCE BETWEEN TWO SE┆ 0x057f60…057f80 52 49 41 4c 20 4e 55 4d 42 45 52 20 41 44 44 52 45 53 53 45 53 0d 0a 3b 09 53 45 43 54 4f 52 20 ┆RIAL NUMBER ADDRESSES ; SECTOR ┆ 0x057f80…057fa0 54 52 41 4e 53 4c 41 54 49 4f 4e 20 56 45 43 54 4f 52 0d 0a 54 52 41 4e 3a 09 44 42 09 31 2c 37 ┆TRANSLATION VECTOR TRAN: DB 1,7┆ 0x057fa0…057fc0 2c 31 33 2c 31 39 2c 20 32 35 2c 35 2c 31 31 2c 31 37 0d 0a 09 44 42 09 32 33 2c 33 2c 39 2c 31 ┆,13,19, 25,5,11,17 DB 23,3,9,1┆ 0x057fc0…057fe0 35 2c 20 32 31 2c 32 2c 38 2c 31 34 0d 0a 09 44 42 09 32 30 2c 32 36 2c 36 2c 31 32 2c 20 31 38 ┆5, 21,2,8,14 DB 20,26,6,12, 18┆ 0x057fe0…058000 2c 32 34 2c 34 2c 31 30 0d 0a 09 44 42 09 31 36 2c 32 32 0d 0a 3b 0d 0a 09 44 53 09 33 32 09 3b ┆,24,4,10 DB 16,22 ; DS 32 ;┆ 0x058000…058020 (23, 0, 15) 4d 50 09 4d 53 59 53 46 09 09 3b 0d 0a 0d 0a 43 4f 4e 53 49 3a 09 4d 56 49 09 43 2c 43 4f 4e 53 ┆MP MSYSF ; CONSI: MVI C,CONS┆ 0x058020…058040 49 46 09 3b 0d 0a 09 43 41 4c 4c 09 42 44 4f 53 09 09 3b 0d 0a 09 43 50 49 09 33 09 09 3b 0d 0a ┆IF ; CALL BDOS ; CPI 3 ; ┆ 0x058040…058060 09 52 4e 5a 09 09 09 3b 09 09 09 0d 0a 09 4c 48 4c 44 09 53 46 4f 52 4d 09 09 3b 0d 0a 09 43 41 ┆ RNZ ; LHLD SFORM ; CA┆ 0x058060…058080 4c 4c 09 53 45 54 46 09 09 3b 0d 0a 09 4a 4d 50 09 42 4f 4f 54 0d 0a 0d 0a 52 45 53 45 54 3a 09 ┆LL SETF ; JMP BOOT RESET: ┆ 0x058080…0580a0 4d 56 49 09 43 2c 52 45 53 45 54 46 09 3b 0d 0a 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d 0a 0d 0a ┆MVI C,RESETF ; JMP BDOS ; ┆ 0x0580a0…0580c0 4f 50 45 4e 3a 09 4d 56 49 09 43 2c 4f 50 45 4e 46 09 09 3b 0d 0a 09 4a 4d 50 09 42 44 4f 53 09 ┆OPEN: MVI C,OPENF ; JMP BDOS ┆ 0x0580c0…0580e0 09 3b 0d 0a 0d 0a 43 4c 4f 53 45 3a 09 4d 56 49 09 43 2c 43 4c 4f 53 45 46 09 3b 0d 0a 09 4a 4d ┆ ; CLOSE: MVI C,CLOSEF ; JM┆ 0x0580e0…058100 50 09 42 44 4f 53 09 09 3b 0d 0a 0d 0a 44 45 4c 45 54 45 3a 09 4d 56 49 09 43 2c 44 45 4c 45 54 ┆P BDOS ; DELETE: MVI C,DELET┆ 0x058100…058120 45 46 09 3b 0d 0a 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d 0a 0d 0a 52 45 41 44 3a 09 4d 56 49 09 ┆EF ; JMP BDOS ; READ: MVI ┆ 0x058120…058140 43 2c 52 45 41 44 46 09 09 3b 0d 0a 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d 0a 0d 0a 57 52 49 54 ┆C,READF ; JMP BDOS ; WRIT┆ 0x058140…058160 45 3a 09 4d 56 49 09 43 2c 57 52 49 54 45 46 09 3b 0d 0a 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d ┆E: MVI C,WRITEF ; JMP BDOS ; ┆ 0x058160…058180 0a 0d 0a 4d 41 4b 45 3a 09 4d 56 49 09 43 2c 4d 41 4b 45 46 09 09 3b 0d 0a 09 4a 4d 50 09 42 44 ┆ MAKE: MVI C,MAKEF ; JMP BD┆ 0x058180…0581a0 4f 53 09 09 3b 0d 0a 0d 0a 53 45 54 44 4d 41 3a 09 4d 56 49 09 43 2c 53 44 4d 41 46 09 09 3b 0d ┆OS ; SETDMA: MVI C,SDMAF ; ┆ 0x0581a0…0581c0 0a 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d 0a 0d 0a 50 52 49 4e 54 3a 09 4d 56 49 09 43 2c 50 52 ┆ JMP BDOS ; PRINT: MVI C,PR┆ 0x0581c0…0581e0 49 4e 54 46 09 3b 0d 0a 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d 0a 0d 0a 52 45 54 43 44 3a 09 4d ┆INTF ; JMP BDOS ; RETCD: M┆ 0x0581e0…058200 56 49 09 43 2c 43 55 52 44 46 09 09 3b 0d 0a 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d 0a 0d 0a 4e ┆VI C,CURDF ; JMP BDOS ; N┆ 0x058200…058220 (23, 1, 1) 4d 50 09 4d 53 59 53 46 09 09 3b 0d 0a 0d 0a 43 4f 4e 53 49 3a 09 4d 56 49 09 43 2c 43 4f 4e 53 ┆MP MSYSF ; CONSI: MVI C,CONS┆ 0x058220…058240 49 46 09 3b 0d 0a 09 43 41 4c 4c 09 42 44 4f 53 09 09 3b 0d 0a 09 43 50 49 09 33 09 09 3b 0d 0a ┆IF ; CALL BDOS ; CPI 3 ; ┆ 0x058240…058260 09 52 4e 5a 09 09 09 3b 09 09 09 0d 0a 09 4c 48 4c 44 09 53 46 4f 52 4d 09 09 3b 0d 0a 09 43 41 ┆ RNZ ; LHLD SFORM ; CA┆ 0x058260…058280 4c 4c 09 53 45 54 46 09 09 3b 0d 0a 09 4a 4d 50 09 42 4f 4f 54 0d 0a 0d 0a 52 45 53 45 54 3a 09 ┆LL SETF ; JMP BOOT RESET: ┆ 0x058280…0582a0 4d 56 49 09 43 2c 52 45 53 45 54 46 09 3b 0d 0a 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d 0a 0d 0a ┆MVI C,RESETF ; JMP BDOS ; ┆ 0x0582a0…0582c0 4f 50 45 4e 3a 09 4d 56 49 09 43 2c 4f 50 45 4e 46 09 09 3b 0d 0a 09 4a 4d 50 09 42 44 4f 53 09 ┆OPEN: MVI C,OPENF ; JMP BDOS ┆ 0x0582c0…0582e0 09 3b 0d 0a 0d 0a 43 4c 4f 53 45 3a 09 4d 56 49 09 43 2c 43 4c 4f 53 45 46 09 3b 0d 0a 09 4a 4d ┆ ; CLOSE: MVI C,CLOSEF ; JM┆ 0x0582e0…058300 50 09 42 44 4f 53 09 09 3b 0d 0a 0d 0a 44 45 4c 45 54 45 3a 09 4d 56 49 09 43 2c 44 45 4c 45 54 ┆P BDOS ; DELETE: MVI C,DELET┆ 0x058300…058320 45 46 09 3b 0d 0a 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d 0a 0d 0a 52 45 41 44 3a 09 4d 56 49 09 ┆EF ; JMP BDOS ; READ: MVI ┆ 0x058320…058340 43 2c 52 45 41 44 46 09 09 3b 0d 0a 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d 0a 0d 0a 57 52 49 54 ┆C,READF ; JMP BDOS ; WRIT┆ 0x058340…058360 45 3a 09 4d 56 49 09 43 2c 57 52 49 54 45 46 09 3b 0d 0a 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d ┆E: MVI C,WRITEF ; JMP BDOS ; ┆ 0x058360…058380 0a 0d 0a 4d 41 4b 45 3a 09 4d 56 49 09 43 2c 4d 41 4b 45 46 09 09 3b 0d 0a 09 4a 4d 50 09 42 44 ┆ MAKE: MVI C,MAKEF ; JMP BD┆ 0x058380…0583a0 4f 53 09 09 3b 0d 0a 0d 0a 53 45 54 44 4d 41 3a 09 4d 56 49 09 43 2c 53 44 4d 41 46 09 09 3b 0d ┆OS ; SETDMA: MVI C,SDMAF ; ┆ 0x0583a0…0583c0 0a 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d 0a 0d 0a 50 52 49 4e 54 3a 09 4d 56 49 09 43 2c 50 52 ┆ JMP BDOS ; PRINT: MVI C,PR┆ 0x0583c0…0583e0 49 4e 54 46 09 3b 0d 0a 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d 0a 0d 0a 52 45 54 43 44 3a 09 4d ┆INTF ; JMP BDOS ; RETCD: M┆ 0x0583e0…058400 56 49 09 43 2c 43 55 52 44 46 09 09 3b 0d 0a 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d 0a 0d 0a 4e ┆VI C,CURDF ; JMP BDOS ; N┆ 0x058400…058420 (23, 1, 2) 33 20 20 20 20 09 43 41 4c 4c 09 50 52 49 4e 54 09 09 3b 0d 0a 20 30 32 35 34 20 43 44 43 41 30 ┆3 CALL PRINT ; 0254 CDCA0┆ 0x058420…058440 32 20 20 20 20 09 43 41 4c 4c 09 43 4f 4e 53 49 09 09 3b 20 57 41 49 54 3b 0d 0a 20 30 32 35 37 ┆2 CALL CONSI ; WAIT; 0257┆ 0x058440…058460 20 32 41 30 30 30 34 20 20 20 20 09 4c 48 4c 44 09 44 46 09 09 3b 0d 0a 20 30 32 35 41 20 43 44 ┆ 2A0004 LHLD DF ; 025A CD┆ 0x058460…058480 45 30 30 31 20 20 20 20 09 43 41 4c 4c 09 53 45 54 46 09 09 3b 0d 0a 20 30 32 35 44 20 43 44 44 ┆E001 CALL SETF ; 025D CDD┆ 0x058480…0584a0 42 30 32 20 20 20 20 09 43 41 4c 4c 09 52 45 53 45 54 09 09 3b 20 52 45 53 45 54 20 44 52 49 56 ┆B02 CALL RESET ; RESET DRIV┆ 0x0584a0…0584c0 45 53 3b 0d 0a 20 30 32 36 30 20 31 31 30 37 30 34 20 20 20 20 09 4c 58 49 09 44 2c 44 46 43 42 ┆ES; 0260 110704 LXI D,DFCB┆ 0x0584c0…0584e0 09 09 3b 0d 0a 20 30 32 36 33 20 43 44 45 41 30 32 20 20 20 20 09 43 41 4c 4c 09 44 45 4c 45 54 ┆ ; 0263 CDEA02 CALL DELET┆ 0x0584e0…058500 45 09 09 3b 20 44 45 4c 45 54 45 20 44 45 53 54 49 4e 41 54 49 4f 4e 20 46 49 4c 45 3b 0d 0a 20 ┆E ; DELETE DESTINATION FILE; ┆ 0x058500…058520 30 32 36 36 20 31 31 30 37 30 34 20 20 20 20 09 4c 58 49 09 44 2c 44 46 43 42 09 09 3b 0d 0a 20 ┆0266 110704 LXI D,DFCB ; ┆ 0x058520…058540 30 32 36 39 20 43 44 46 39 30 32 20 20 20 20 09 43 41 4c 4c 09 4d 41 4b 45 09 09 3b 20 43 52 45 ┆0269 CDF902 CALL MAKE ; CRE┆ 0x058540…058560 41 54 45 20 44 45 53 54 49 4e 41 54 49 4f 4e 20 46 49 4c 45 3b 0d 0a 20 30 32 36 43 20 31 31 31 ┆ATE DESTINATION FILE; 026C 111┆ 0x058560…058580 45 30 33 20 20 20 20 09 4c 58 49 09 44 2c 4e 4f 44 49 52 09 09 3b 0d 0a 20 30 32 36 46 20 33 43 ┆E03 LXI D,NODIR ; 026F 3C┆ 0x058580…0585a0 20 20 20 20 20 20 20 20 09 49 4e 52 09 41 09 09 3b 0d 0a 20 30 32 37 30 20 43 43 43 32 30 32 20 ┆ INR A ; 0270 CCC202 ┆ 0x0585a0…0585c0 20 20 20 09 43 5a 09 46 49 4e 49 53 09 09 3b 0d 0a 20 30 32 37 33 20 31 31 34 38 30 34 20 20 20 ┆ CZ FINIS ; 0273 114804 ┆ 0x0585c0…0585e0 20 09 4c 58 49 09 44 2c 42 55 46 09 09 3b 0d 0a 20 30 32 37 36 20 44 35 20 20 20 20 20 20 20 20 ┆ LXI D,BUF ; 0276 D5 ┆ 0x0585e0…058600 09 50 55 53 48 09 44 09 09 3b 0d 0a 20 30 32 37 37 20 43 44 46 45 30 32 20 20 20 20 09 43 41 4c ┆ PUSH D ; 0277 CDFE02 CAL┆ 0x058600…058620 (23, 1, 3) 45 54 3a 09 4d 56 49 09 43 2c 52 45 53 45 54 46 09 3b 0d 0a 20 30 32 44 44 20 43 33 30 35 30 30 ┆ET: MVI C,RESETF ; 02DD C30500┆ 0x058620…058640 20 20 20 20 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ JMP BDOS ; ┆ 0x058640…058660 20 20 0d 0a 20 30 32 45 30 20 30 45 30 46 20 20 20 20 20 20 4f 50 45 4e 3a 09 4d 56 49 09 43 2c ┆ 02E0 0E0F OPEN: MVI C,┆ 0x058660…058680 4f 50 45 4e 46 09 09 3b 0d 0a 20 30 32 45 32 20 43 33 30 35 30 30 20 20 20 20 09 4a 4d 50 09 42 ┆OPENF ; 02E2 C30500 JMP B┆ 0x058680…0586a0 44 4f 53 09 09 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 32 45 35 20 ┆DOS ; 02E5 ┆ 0x0586a0…0586c0 30 45 31 30 20 20 20 20 20 20 43 4c 4f 53 45 3a 09 4d 56 49 09 43 2c 43 4c 4f 53 45 46 09 3b 0d ┆0E10 CLOSE: MVI C,CLOSEF ; ┆ 0x0586c0…0586e0 0a 20 30 32 45 37 20 43 33 30 35 30 30 20 20 20 20 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d 0a 20 ┆ 02E7 C30500 JMP BDOS ; ┆ 0x0586e0…058700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 32 45 41 20 30 45 31 33 20 20 20 20 20 ┆ 02EA 0E13 ┆ 0x058700…058720 20 44 45 4c 45 54 45 3a 09 4d 56 49 09 43 2c 44 45 4c 45 54 45 46 09 3b 0d 0a 20 30 32 45 43 20 ┆ DELETE: MVI C,DELETEF ; 02EC ┆ 0x058720…058740 43 33 30 35 30 30 20 20 20 20 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d 0a 20 20 20 20 20 20 20 20 ┆C30500 JMP BDOS ; ┆ 0x058740…058760 20 20 20 20 20 20 20 20 0d 0a 20 30 32 45 46 20 30 45 31 34 20 20 20 20 20 20 52 45 41 44 3a 09 ┆ 02EF 0E14 READ: ┆ 0x058760…058780 4d 56 49 09 43 2c 52 45 41 44 46 09 09 3b 0d 0a 20 30 32 46 31 20 43 33 30 35 30 30 20 20 20 20 ┆MVI C,READF ; 02F1 C30500 ┆ 0x058780…0587a0 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a ┆ JMP BDOS ; ┆ 0x0587a0…0587c0 20 30 32 46 34 20 30 45 31 35 20 20 20 20 20 20 57 52 49 54 45 3a 09 4d 56 49 09 43 2c 57 52 49 ┆ 02F4 0E15 WRITE: MVI C,WRI┆ 0x0587c0…0587e0 54 45 46 09 3b 0d 0a 20 30 32 46 36 20 43 33 30 35 30 30 20 20 20 20 09 4a 4d 50 09 42 44 4f 53 ┆TEF ; 02F6 C30500 JMP BDOS┆ 0x0587e0…058800 09 09 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 32 46 39 20 30 45 31 ┆ ; 02F9 0E1┆ 0x058800…058820 (23, 1, 4) 30 30 35 43 48 0d 0a 53 46 43 42 09 45 51 55 09 46 43 42 31 0d 0a 46 43 42 32 09 45 51 55 09 30 ┆005CH SFCB EQU FCB1 FCB2 EQU 0┆ 0x058820…058840 30 36 43 48 0d 0a 44 42 55 46 46 20 20 20 45 51 55 09 30 30 38 30 48 0d 0a 54 50 41 09 45 51 55 ┆06CH DBUFF EQU 0080H TPA EQU┆ 0x058840…058860 09 30 31 30 30 48 0d 0a 0d 0a 57 42 4f 4f 54 20 20 20 45 51 55 20 20 20 20 20 31 0d 0a 46 44 46 ┆ 0100H WBOOT EQU 1 FDF┆ 0x058860…058880 4f 52 4d 20 20 45 51 55 20 20 20 20 20 35 32 0d 0a 53 57 31 20 20 20 20 20 45 51 55 20 20 20 20 ┆ORM EQU 52 SW1 EQU ┆ 0x058880…0588a0 20 31 34 48 0d 0a 43 4f 4e 53 49 46 09 45 51 55 09 31 0d 0a 50 52 49 4e 54 46 09 45 51 55 09 39 ┆ 14H CONSIF EQU 1 PRINTF EQU 9┆ 0x0588a0…0588c0 0d 0a 52 45 53 45 54 46 09 45 51 55 09 31 33 0d 0a 4f 50 45 4e 46 09 45 51 55 09 31 35 0d 0a 43 ┆ RESETF EQU 13 OPENF EQU 15 C┆ 0x0588c0…0588e0 4c 4f 53 45 46 09 45 51 55 09 31 36 0d 0a 44 45 4c 45 54 45 46 09 45 51 55 09 31 39 0d 0a 52 45 ┆LOSEF EQU 16 DELETEF EQU 19 RE┆ 0x0588e0…058900 41 44 46 09 45 51 55 09 32 30 0d 0a 57 52 49 54 45 46 09 45 51 55 09 32 31 0d 0a 4d 41 4b 45 46 ┆ADF EQU 20 WRITEF EQU 21 MAKEF┆ 0x058900…058920 09 45 51 55 09 32 32 0d 0a 53 44 4d 41 46 09 45 51 55 09 32 36 0d 0a 0d 0a 09 4f 52 47 09 54 50 ┆ EQU 22 SDMAF EQU 26 ORG TP┆ 0x058920…058940 41 0d 0a 0d 0a 09 50 4f 50 09 48 09 09 3b 20 53 41 56 45 20 52 45 54 55 52 4e 20 54 4f 20 43 43 ┆A POP H ; SAVE RETURN TO CC┆ 0x058940…058960 50 0d 0a 09 53 48 4c 44 09 43 43 50 52 45 54 09 09 3b 0d 0a 09 4c 58 49 09 53 50 2c 53 54 41 43 ┆P SHLD CCPRET ; LXI SP,STAC┆ 0x058960…058980 4b 09 3b 20 53 45 54 20 4c 4f 43 41 4c 20 53 54 41 43 4b 0d 0a 09 4c 58 49 09 48 2c 44 42 55 46 ┆K ; SET LOCAL STACK LXI H,DBUF┆ 0x058980…0589a0 46 09 09 3b 20 50 41 44 20 43 4f 4d 4d 41 4e 44 20 42 55 46 46 45 52 0d 0a 09 49 4e 52 09 4d 09 ┆F ; PAD COMMAND BUFFER INR M ┆ 0x0589a0…0589c0 09 3b 0d 0a 09 4d 4f 56 09 45 2c 4d 09 09 3b 0d 0a 09 49 4e 52 09 4d 09 09 3b 0d 0a 09 4d 56 49 ┆ ; MOV E,M ; INR M ; MVI┆ 0x0589c0…0589e0 09 44 2c 30 09 09 3b 0d 0a 09 44 41 44 09 44 09 09 3b 0d 0a 09 4d 56 49 09 4d 2c 27 20 27 09 09 ┆ D,0 ; DAD D ; MVI M,' ' ┆ 0x0589e0…058a00 3b 0d 0a 09 4c 48 4c 44 09 57 42 4f 4f 54 09 09 3b 20 53 41 56 45 20 46 44 20 46 4f 52 4d 41 54 ┆; LHLD WBOOT ; SAVE FD FORMAT┆ 0x058a00…058a20 (23, 1, 5) 4f 46 49 4c 45 3a 09 44 42 09 27 4e 4f 20 53 4f 55 52 43 45 20 46 49 4c 45 27 2c 31 33 2c 31 30 ┆OFILE: DB 'NO SOURCE FILE',13,10┆ 0x058a20…058a40 2c 33 36 0d 0a 4e 4f 44 49 52 3a 09 44 42 09 27 4e 4f 20 44 49 52 45 43 54 4f 52 59 20 53 50 41 ┆,36 NODIR: DB 'NO DIRECTORY SPA┆ 0x058a40…058a60 43 45 27 2c 31 33 2c 31 30 2c 33 36 0d 0a 53 50 41 43 45 3a 09 44 42 09 27 4f 55 54 20 4f 46 20 ┆CE',13,10,36 SPACE: DB 'OUT OF ┆ 0x058a60…058a80 44 41 54 41 20 53 50 41 43 45 27 2c 31 33 2c 31 30 2c 33 36 0d 0a 57 52 50 52 4f 54 3a 20 44 42 ┆DATA SPACE',13,10,36 WRPROT: DB┆ 0x058a80…058aa0 09 27 57 52 49 54 45 20 50 52 4f 54 45 43 54 45 44 3f 27 2c 31 33 2c 31 30 2c 33 36 0d 0a 4e 4f ┆ 'WRITE PROTECTED?',13,10,36 NO┆ 0x058aa0…058ac0 52 4d 41 4c 3a 20 44 42 09 27 54 52 41 4e 53 46 45 52 20 43 4f 4d 50 4c 45 54 45 44 27 2c 31 33 ┆RMAL: DB 'TRANSFER COMPLETED',13┆ 0x058ac0…058ae0 2c 31 30 2c 33 36 0d 0a 54 4f 4f 42 49 47 3a 09 44 42 09 27 46 49 4c 45 20 54 4f 4f 20 42 49 47 ┆,10,36 TOOBIG: DB 'FILE TOO BIG┆ 0x058ae0…058b00 27 2c 31 33 2c 31 30 2c 33 36 0d 0a 53 57 4f 50 53 3a 09 44 42 09 27 49 4e 53 45 52 54 20 44 45 ┆',13,10,36 SWOPS: DB 'INSERT DE┆ 0x058b00…058b20 53 54 49 4e 41 54 49 4f 4e 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 54 55 52 4e 3e ┆STINATION DISK AND TYPE <RETURN>┆ 0x058b20…058b40 27 2c 31 33 2c 31 30 2c 33 36 0d 0a 53 57 4f 50 44 3a 20 20 44 42 09 27 49 4e 53 45 52 54 20 53 ┆',13,10,36 SWOPD: DB 'INSERT S┆ 0x058b40…058b60 4f 55 52 43 45 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 54 55 52 4e 3e 27 2c 31 33 ┆OURCE DISK AND TYPE <RETURN>',13┆ 0x058b60…058b80 2c 31 30 2c 33 36 0d 0a 53 57 4f 50 59 3a 20 20 44 42 09 27 49 4e 53 45 52 54 20 53 59 53 54 45 ┆,10,36 SWOPY: DB 'INSERT SYSTE┆ 0x058b80…058ba0 4d 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 54 55 52 4e 3e 27 2c 31 33 2c 31 30 2c ┆M DISK AND TYPE <RETURN>',13,10,┆ 0x058ba0…058bc0 33 36 0d 0a 0d 0a 41 46 4f 52 4d 3a 09 44 57 09 30 0d 0a 53 46 4f 52 4d 3a 09 44 57 09 30 0d 0a ┆36 AFORM: DW 0 SFORM: DW 0 ┆ 0x058bc0…058be0 43 41 44 44 52 3a 09 44 57 09 30 0d 0a 53 46 3a 09 44 57 09 30 0d 0a 44 46 3a 09 44 57 09 30 0d ┆CADDR: DW 0 SF: DW 0 DF: DW 0 ┆ 0x058be0…058c00 0a 53 44 52 49 56 3a 09 44 42 09 30 0d 0a 44 44 52 49 56 3a 09 44 42 09 30 0d 0a 0d 0a 0d 0a 53 ┆ SDRIV: DB 0 DDRIV: DB 0 S┆ 0x058c00…058c20 (23, 1, 6) 4c 09 53 45 54 44 4d 41 09 09 3b 20 53 45 54 20 42 55 46 46 45 52 20 41 44 44 52 45 53 53 0d 0a ┆L SETDMA ; SET BUFFER ADDRESS ┆ 0x058c20…058c40 20 30 32 37 41 20 31 31 30 37 30 34 20 20 20 20 57 44 41 54 41 3a 09 4c 58 49 09 44 2c 44 46 43 ┆ 027A 110704 WDATA: LXI D,DFC┆ 0x058c40…058c60 42 09 09 3b 0d 0a 20 30 32 37 44 20 43 44 46 34 30 32 20 20 20 20 09 43 41 4c 4c 09 57 52 49 54 ┆B ; 027D CDF402 CALL WRIT┆ 0x058c60…058c80 45 09 09 3b 20 57 52 49 54 45 20 52 45 43 4f 52 44 3a 0d 0a 20 30 32 38 30 20 31 31 33 33 30 33 ┆E ; WRITE RECORD: 0280 113303┆ 0x058c80…058ca0 20 20 20 20 09 4c 58 49 09 44 2c 53 50 41 43 45 09 09 3b 0d 0a 20 30 32 38 33 20 42 37 20 20 20 ┆ LXI D,SPACE ; 0283 B7 ┆ 0x058ca0…058cc0 20 20 20 20 20 09 4f 52 41 09 41 09 09 3b 0d 0a 20 30 32 38 34 20 43 34 43 32 30 32 20 20 20 20 ┆ ORA A ; 0284 C4C202 ┆ 0x058cc0…058ce0 09 43 4e 5a 09 46 49 4e 49 53 09 09 3b 0d 0a 20 30 32 38 37 20 44 31 20 20 20 20 20 20 20 20 09 ┆ CNZ FINIS ; 0287 D1 ┆ 0x058ce0…058d00 50 4f 50 09 44 09 09 3b 20 55 50 44 41 54 45 20 42 55 46 41 44 52 0d 0a 20 30 32 38 38 20 32 31 ┆POP D ; UPDATE BUFADR 0288 21┆ 0x058d00…058d20 38 30 30 30 20 20 20 20 09 4c 58 49 09 48 2c 31 32 38 09 09 3b 0d 0a 20 30 32 38 42 20 31 39 20 ┆8000 LXI H,128 ; 028B 19 ┆ 0x058d20…058d40 20 20 20 20 20 20 20 09 44 41 44 09 44 09 09 3b 0d 0a 20 30 32 38 43 20 45 42 20 20 20 20 20 20 ┆ DAD D ; 028C EB ┆ 0x058d40…058d60 20 20 09 58 43 48 47 09 09 09 3b 0d 0a 20 30 32 38 44 20 44 35 20 20 20 20 20 20 20 20 09 50 55 ┆ XCHG ; 028D D5 PU┆ 0x058d60…058d80 53 48 09 44 09 09 3b 0d 0a 20 30 32 38 45 20 43 44 46 45 30 32 20 20 20 20 09 43 41 4c 4c 09 53 ┆SH D ; 028E CDFE02 CALL S┆ 0x058d80…058da0 45 54 44 4d 41 09 09 3b 0d 0a 20 30 32 39 31 20 32 31 30 34 30 34 20 20 20 20 09 4c 58 49 09 48 ┆ETDMA ; 0291 210404 LXI H┆ 0x058da0…058dc0 2c 53 45 43 43 4e 54 09 3b 20 53 45 43 54 4f 52 43 4f 55 4e 54 3a 3d 53 45 43 54 4f 49 52 43 4f ┆,SECCNT ; SECTORCOUNT:=SECTOIRCO┆ 0x058dc0…058de0 55 4e 54 2d 31 3b 0d 0a 20 30 32 39 34 20 33 35 20 20 20 20 20 20 20 20 09 44 43 52 09 4d 09 09 ┆UNT-1; 0294 35 DCR M ┆ 0x058de0…058e00 3b 0d 0a 20 30 32 39 35 20 43 32 37 41 30 32 20 20 20 20 09 4a 4e 5a 09 57 44 41 54 41 09 09 3b ┆; 0295 C27A02 JNZ WDATA ;┆ 0x058e00…058e20 (23, 1, 7) 36 20 20 20 20 20 20 4d 41 4b 45 3a 09 4d 56 49 09 43 2c 4d 41 4b 45 46 09 09 3b 0d 0a 20 30 32 ┆6 MAKE: MVI C,MAKEF ; 02┆ 0x058e20…058e40 46 42 20 43 33 30 35 30 30 20 20 20 20 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d 0a 20 20 20 20 20 ┆FB C30500 JMP BDOS ; ┆ 0x058e40…058e60 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 32 46 45 20 30 45 31 41 20 20 20 20 20 20 53 45 54 ┆ 02FE 0E1A SET┆ 0x058e60…058e80 44 4d 41 3a 09 4d 56 49 09 43 2c 53 44 4d 41 46 09 09 3b 0d 0a 20 30 33 30 30 20 43 33 30 35 30 ┆DMA: MVI C,SDMAF ; 0300 C3050┆ 0x058e80…058ea0 30 20 20 20 20 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆0 JMP BDOS ; ┆ 0x058ea0…058ec0 20 20 20 0d 0a 20 30 33 30 33 20 30 45 30 39 20 20 20 20 20 20 50 52 49 4e 54 3a 09 4d 56 49 09 ┆ 0303 0E09 PRINT: MVI ┆ 0x058ec0…058ee0 43 2c 50 52 49 4e 54 46 09 3b 0d 0a 20 30 33 30 35 20 43 33 30 35 30 30 20 20 20 20 09 4a 4d 50 ┆C,PRINTF ; 0305 C30500 JMP┆ 0x058ee0…058f00 09 42 44 4f 53 09 09 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 33 30 ┆ BDOS ; 030┆ 0x058f00…058f20 38 20 30 45 31 39 20 20 20 20 20 20 52 45 54 43 44 3a 09 4d 56 49 09 43 2c 43 55 52 44 46 09 09 ┆8 0E19 RETCD: MVI C,CURDF ┆ 0x058f20…058f40 3b 0d 0a 20 30 33 30 41 20 43 33 30 35 30 30 20 20 20 20 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d ┆; 030A C30500 JMP BDOS ; ┆ 0x058f40…058f60 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 33 30 44 20 34 45 34 46 32 30 35 ┆ 030D 4E4F205┆ 0x058f60…058f80 33 34 46 4e 4f 46 49 4c 45 3a 09 44 42 09 27 4e 4f 20 53 4f 55 52 43 45 20 46 49 4c 45 27 2c 31 ┆34FNOFILE: DB 'NO SOURCE FILE',1┆ 0x058f80…058fa0 33 2c 31 30 2c 33 36 0d 0a 20 30 33 31 45 20 34 45 34 46 32 30 34 34 34 39 4e 4f 44 49 52 3a 09 ┆3,10,36 031E 4E4F204449NODIR: ┆ 0x058fa0…058fc0 44 42 09 27 4e 4f 20 44 49 52 45 43 54 4f 52 59 20 53 50 41 43 45 27 2c 31 33 2c 31 30 2c 33 36 ┆DB 'NO DIRECTORY SPACE',13,10,36┆ 0x058fc0…058fe0 0d 0a 20 30 33 33 33 20 34 46 35 35 35 34 32 30 34 46 53 50 41 43 45 3a 09 44 42 09 27 4f 55 54 ┆ 0333 4F5554204FSPACE: DB 'OUT┆ 0x058fe0…059000 20 4f 46 20 44 41 54 41 20 53 50 41 43 45 27 2c 31 33 2c 31 30 2c 33 36 0d 0a 20 30 33 34 37 20 ┆ OF DATA SPACE',13,10,36 0347 ┆ 0x059000…059020 (23, 1, 8) 53 0d 0a 09 4c 58 49 09 44 2c 46 44 46 4f 52 4d 09 3b 0d 0a 09 44 41 44 09 44 09 09 3b 0d 0a 09 ┆S LXI D,FDFORM ; DAD D ; ┆ 0x059020…059040 53 48 4c 44 09 41 46 4f 52 4d 09 09 3b 0d 0a 09 4d 4f 56 09 41 2c 4d 09 09 3b 0d 0a 09 53 54 41 ┆SHLD AFORM ; MOV A,M ; STA┆ 0x059040…059060 09 53 46 4f 52 4d 09 09 3b 0d 0a 09 49 4e 58 09 48 09 09 3b 0d 0a 09 4d 4f 56 09 41 2c 4d 09 09 ┆ SFORM ; INX H ; MOV A,M ┆ 0x059060…059080 3b 0d 0a 09 53 54 41 09 53 46 4f 52 4d 2b 31 09 09 3b 0d 0a 09 4c 48 4c 44 09 53 46 4f 52 4d 09 ┆; STA SFORM+1 ; LHLD SFORM ┆ 0x059080…0590a0 09 3b 0d 0a 09 53 48 4c 44 09 43 46 4f 52 4d 09 09 3b 0d 0a 09 4c 58 49 09 48 2c 44 42 55 46 46 ┆ ; SHLD CFORM ; LXI H,DBUFF┆ 0x0590a0…0590c0 09 09 3b 20 53 45 54 55 50 20 43 48 41 52 20 53 43 41 4e 0d 0a 09 49 4e 58 09 48 09 09 3b 0d 0a ┆ ; SETUP CHAR SCAN INX H ; ┆ 0x0590c0…0590e0 09 53 48 4c 44 09 43 41 44 44 52 09 09 3b 0d 0a 09 4a 4d 50 09 53 43 41 4e 09 09 3b 0d 0a 0d 0a ┆ SHLD CADDR ; JMP SCAN ; ┆ 0x0590e0…059100 4e 43 48 41 52 3a 20 20 4c 58 49 09 48 2c 44 42 55 46 46 09 09 3b 20 47 45 54 20 4e 45 58 54 20 ┆NCHAR: LXI H,DBUFF ; GET NEXT ┆ 0x059100…059120 43 48 41 52 3a 0d 0a 09 44 43 52 09 4d 09 09 3b 0d 0a 09 4a 5a 09 53 45 54 46 44 46 09 09 3b 20 ┆CHAR: DCR M ; JZ SETFDF ; ┆ 0x059120…059140 49 46 20 45 4f 4c 20 54 48 45 4e 20 45 58 49 54 0d 0a 09 4c 48 4c 44 09 43 41 44 44 52 09 09 3b ┆IF EOL THEN EXIT LHLD CADDR ;┆ 0x059140…059160 0d 0a 09 4d 4f 56 09 41 2c 4d 09 09 3b 20 20 20 20 20 20 20 20 45 4c 53 45 20 50 49 43 4b 55 50 ┆ MOV A,M ; ELSE PICKUP┆ 0x059160…059180 20 43 48 41 52 3b 0d 0a 09 49 4e 58 09 48 09 09 3b 0d 0a 09 53 48 4c 44 09 43 41 44 44 52 09 09 ┆ CHAR; INX H ; SHLD CADDR ┆ 0x059180…0591a0 3b 0d 0a 09 52 45 54 09 09 20 09 3b 20 52 45 54 55 52 4e 3b 0d 0a 0d 0a 53 43 41 4e 3a 09 4c 58 ┆; RET ; RETURN; SCAN: LX┆ 0x0591a0…0591c0 49 09 42 2c 30 09 09 3b 20 44 52 49 56 45 2c 44 45 4e 53 49 54 59 3a 3d 41 2c 53 53 0d 0a 09 43 ┆I B,0 ; DRIVE,DENSITY:=A,SS C┆ 0x0591c0…0591e0 41 4c 4c 09 4e 43 48 41 52 09 09 3b 0d 0a 09 43 50 49 09 27 41 27 09 09 3b 20 53 45 41 52 43 48 ┆ALL NCHAR ; CPI 'A' ; SEARCH┆ 0x0591e0…059200 20 41 20 4f 52 20 42 20 44 52 49 56 45 3a 0d 0a 09 4a 5a 09 53 43 4f 4c 09 09 3b 0d 0a 09 43 50 ┆ A OR B DRIVE: JZ SCOL ; CP┆ 0x059200…059220 (23, 1, 9) 45 43 43 4e 54 3a 20 44 42 09 30 0d 0a 43 43 50 52 45 54 3a 20 44 57 09 30 0d 0a 0d 0a 44 46 43 ┆ECCNT: DB 0 CCPRET: DW 0 DFC┆ 0x059220…059240 42 3a 09 44 53 09 33 33 09 09 3b 20 44 45 53 54 49 4e 41 54 49 4f 4e 20 46 43 42 0d 0a 44 46 43 ┆B: DS 33 ; DESTINATION FCB DFC┆ 0x059240…059260 42 43 52 09 45 51 55 09 44 46 43 42 2b 33 32 09 09 3b 0d 0a 0d 0a 09 44 53 09 33 31 09 09 3b 0d ┆BCR EQU DFCB+32 ; DS 31 ; ┆ 0x059260…059280 0a 53 54 41 43 4b 3a 09 44 53 09 31 09 09 3b 20 4c 4f 43 41 4c 20 53 54 41 43 4b 0d 0a 0d 0a 42 ┆ STACK: DS 1 ; LOCAL STACK B┆ 0x059280…0592a0 55 46 3a 09 44 57 09 30 09 09 3b 20 52 45 41 44 2f 57 52 49 54 45 20 42 55 46 46 45 52 0d 0a 0d ┆UF: DW 0 ; READ/WRITE BUFFER ┆ 0x0592a0…0592c0 0a 09 45 4e 44 09 30 31 30 30 48 0d 0a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆ END 0100H ┆ 0x0592c0…0592e0 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆ ┆ […0x1…] 0x059300…059320 53 54 49 4e 41 54 49 4f 4e 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 54 55 52 4e 3e ┆STINATION DISK AND TYPE <RETURN>┆ 0x059320…059340 27 2c 31 33 2c 31 30 2c 33 36 0d 0a 53 57 4f 50 44 3a 20 20 44 42 09 27 49 4e 53 45 52 54 20 53 ┆',13,10,36 SWOPD: DB 'INSERT S┆ 0x059340…059360 4f 55 52 43 45 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 54 55 52 4e 3e 27 2c 31 33 ┆OURCE DISK AND TYPE <RETURN>',13┆ 0x059360…059380 2c 31 30 2c 33 36 0d 0a 53 57 4f 50 59 3a 20 20 44 42 09 27 49 4e 53 45 52 54 20 53 59 53 54 45 ┆,10,36 SWOPY: DB 'INSERT SYSTE┆ 0x059380…0593a0 4d 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 54 55 52 4e 3e 27 2c 31 33 2c 31 30 2c ┆M DISK AND TYPE <RETURN>',13,10,┆ 0x0593a0…0593c0 33 36 0d 0a 0d 0a 41 46 4f 52 4d 3a 09 44 57 09 30 0d 0a 53 46 4f 52 4d 3a 09 44 57 09 30 0d 0a ┆36 AFORM: DW 0 SFORM: DW 0 ┆ 0x0593c0…0593e0 43 41 44 44 52 3a 09 44 57 09 30 0d 0a 53 46 3a 09 44 57 09 30 0d 0a 44 46 3a 09 44 57 09 30 0d ┆CADDR: DW 0 SF: DW 0 DF: DW 0 ┆ 0x0593e0…059400 0a 53 44 52 49 56 3a 09 44 42 09 30 0d 0a 44 44 52 49 56 3a 09 44 42 09 30 0d 0a 0d 0a 0d 0a 53 ┆ SDRIV: DB 0 DDRIV: DB 0 S┆ 0x059400…059420 (23, 1, 10) 20 49 46 20 53 45 43 54 4f 52 43 4f 55 4e 54 3e 30 20 54 48 45 4e 20 47 4f 54 4f 20 57 52 49 54 ┆ IF SECTORCOUNT>0 THEN GOTO WRIT┆ 0x059420…059440 45 52 45 43 3b 0d 0a 20 30 32 39 38 20 44 31 20 20 20 20 20 20 20 20 09 50 4f 50 09 44 09 09 3b ┆EREC; 0298 D1 POP D ;┆ 0x059440…059460 0d 0a 20 30 32 39 39 20 31 31 30 37 30 34 20 20 20 20 09 4c 58 49 09 44 2c 44 46 43 42 09 09 3b ┆ 0299 110704 LXI D,DFCB ;┆ 0x059460…059480 0d 0a 20 30 32 39 43 20 43 44 45 35 30 32 20 20 20 20 09 43 41 4c 4c 09 43 4c 4f 53 45 09 09 3b ┆ 029C CDE502 CALL CLOSE ;┆ 0x059480…0594a0 20 43 4c 4f 53 45 20 44 45 53 54 49 4e 41 54 49 4f 4e 20 46 49 4c 45 3b 0d 0a 20 30 32 39 46 20 ┆ CLOSE DESTINATION FILE; 029F ┆ 0x0594a0…0594c0 31 31 34 37 30 33 20 20 20 20 09 4c 58 49 09 44 2c 57 52 50 52 4f 54 09 3b 0d 0a 20 30 32 41 32 ┆114703 LXI D,WRPROT ; 02A2┆ 0x0594c0…0594e0 20 33 43 20 20 20 20 20 20 20 20 09 49 4e 52 09 41 09 09 3b 0d 0a 20 30 32 41 33 20 43 43 43 32 ┆ 3C INR A ; 02A3 CCC2┆ 0x0594e0…059500 30 32 20 20 20 20 09 43 5a 09 46 49 4e 49 53 09 09 3b 0d 0a 20 30 32 41 36 20 31 31 35 41 30 33 ┆02 CZ FINIS ; 02A6 115A03┆ 0x059500…059520 20 20 20 20 09 4c 58 49 09 44 2c 4e 4f 52 4d 41 4c 09 3b 0d 0a 20 30 32 41 39 20 43 44 30 33 30 ┆ LXI D,NORMAL ; 02A9 CD030┆ 0x059520…059540 33 20 20 20 20 09 43 41 4c 4c 09 50 52 49 4e 54 09 09 3b 0d 0a 20 30 32 41 43 20 31 31 44 31 30 ┆3 CALL PRINT ; 02AC 11D10┆ 0x059540…059560 33 20 20 20 20 4d 53 59 53 46 3a 09 4c 58 49 09 44 2c 53 57 4f 50 59 09 09 3b 0d 0a 20 30 32 41 ┆3 MSYSF: LXI D,SWOPY ; 02A┆ 0x059560…059580 46 20 43 44 30 33 30 33 20 20 20 20 09 43 41 4c 4c 09 50 52 49 4e 54 09 09 3b 0d 0a 20 30 32 42 ┆F CD0303 CALL PRINT ; 02B┆ 0x059580…0595a0 32 20 43 44 43 41 30 32 20 20 20 20 09 43 41 4c 4c 09 43 4f 4e 53 49 09 09 3b 20 57 41 49 54 20 ┆2 CDCA02 CALL CONSI ; WAIT ┆ 0x0595a0…0595c0 44 49 53 4b 20 43 48 41 4e 47 45 44 20 42 41 43 4b 3b 0d 0a 20 30 32 42 35 20 32 41 46 41 30 33 ┆DISK CHANGED BACK; 02B5 2AFA03┆ 0x0595c0…0595e0 20 20 20 20 09 4c 48 4c 44 09 53 46 4f 52 4d 09 09 3b 0d 0a 20 30 32 42 38 20 43 44 45 30 30 31 ┆ LHLD SFORM ; 02B8 CDE001┆ 0x0595e0…059600 20 20 20 20 09 43 41 4c 4c 09 53 45 54 46 09 09 3b 0d 0a 20 30 32 42 42 20 43 44 44 42 30 32 20 ┆ CALL SETF ; 02BB CDDB02 ┆ 0x059600…059620 (23, 1, 11) 35 37 35 32 34 39 35 34 34 35 57 52 50 52 4f 54 3a 20 44 42 09 27 57 52 49 54 45 20 50 52 4f 54 ┆5752495445WRPROT: DB 'WRITE PROT┆ 0x059620…059640 45 43 54 45 44 3f 27 2c 31 33 2c 31 30 2c 33 36 0d 0a 20 30 33 35 41 20 35 34 35 32 34 31 34 45 ┆ECTED?',13,10,36 035A 5452414E┆ 0x059640…059660 35 33 4e 4f 52 4d 41 4c 3a 20 44 42 09 27 54 52 41 4e 53 46 45 52 20 43 4f 4d 50 4c 45 54 45 44 ┆53NORMAL: DB 'TRANSFER COMPLETED┆ 0x059660…059680 27 2c 31 33 2c 31 30 2c 33 36 0d 0a 20 30 33 36 46 20 34 36 34 39 34 43 34 35 32 30 54 4f 4f 42 ┆',13,10,36 036F 46494C4520TOOB┆ 0x059680…0596a0 49 47 3a 09 44 42 09 27 46 49 4c 45 20 54 4f 4f 20 42 49 47 27 2c 31 33 2c 31 30 2c 33 36 0d 0a ┆IG: DB 'FILE TOO BIG',13,10,36 ┆ 0x0596a0…0596c0 20 30 33 37 45 20 34 39 34 45 35 33 34 35 35 32 53 57 4f 50 53 3a 09 44 42 09 27 49 4e 53 45 52 ┆ 037E 494E534552SWOPS: DB 'INSER┆ 0x0596c0…0596e0 54 20 44 45 53 54 49 4e 41 54 49 4f 4e 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 54 ┆T DESTINATION DISK AND TYPE <RET┆ 0x0596e0…059700 55 52 4e 3e 27 2c 31 33 2c 31 30 2c 33 36 0d 0a 20 30 33 41 41 20 34 39 34 45 35 33 34 35 35 32 ┆URN>',13,10,36 03AA 494E534552┆ 0x059700…059720 53 57 4f 50 44 3a 20 20 44 42 09 27 49 4e 53 45 52 54 20 53 4f 55 52 43 45 20 44 49 53 4b 20 41 ┆SWOPD: DB 'INSERT SOURCE DISK A┆ 0x059720…059740 4e 44 20 54 59 50 45 20 3c 52 45 54 55 52 4e 3e 27 2c 31 33 2c 31 30 2c 33 36 0d 0a 20 30 33 44 ┆ND TYPE <RETURN>',13,10,36 03D┆ 0x059740…059760 31 20 34 39 34 45 35 33 34 35 35 32 53 57 4f 50 59 3a 20 20 44 42 09 27 49 4e 53 45 52 54 20 53 ┆1 494E534552SWOPY: DB 'INSERT S┆ 0x059760…059780 59 53 54 45 4d 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 54 55 52 4e 3e 27 2c 31 33 ┆YSTEM DISK AND TYPE <RETURN>',13┆ 0x059780…0597a0 2c 31 30 2c 33 36 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 33 46 38 20 ┆,10,36 03F8 ┆ 0x0597a0…0597c0 30 30 30 30 20 20 20 20 20 20 41 46 4f 52 4d 3a 09 44 57 09 30 0d 0a 20 30 33 46 41 20 30 30 30 ┆0000 AFORM: DW 0 03FA 000┆ 0x0597c0…0597e0 30 20 20 20 20 20 20 53 46 4f 52 4d 3a 09 44 57 09 30 0d 0a 20 30 33 46 43 20 30 30 30 30 20 20 ┆0 SFORM: DW 0 03FC 0000 ┆ 0x0597e0…059800 20 20 20 20 43 41 44 44 52 3a 09 44 57 09 30 0d 0a 20 30 33 46 45 20 30 30 30 30 20 20 20 20 20 ┆ CADDR: DW 0 03FE 0000 ┆ 0x059800…059820 (23, 1, 12) 49 09 27 42 27 09 09 3b 0d 0a 09 4a 4e 5a 09 53 43 41 4e 09 09 3b 0d 0a 09 49 4e 52 09 42 09 09 ┆I 'B' ; JNZ SCAN ; INR B ┆ 0x059820…059840 3b 0d 0a 53 43 4f 4c 3a 09 43 41 4c 4c 09 4e 43 48 41 52 09 09 3b 20 53 45 41 52 43 48 20 43 4f ┆; SCOL: CALL NCHAR ; SEARCH CO┆ 0x059840…059860 4c 4f 4e 3a 0d 0a 09 43 50 49 09 27 3a 27 09 09 3b 0d 0a 09 4a 4e 5a 09 53 43 41 4e 09 09 3b 0d ┆LON: CPI ':' ; JNZ SCAN ; ┆ 0x059860…059880 0a 09 43 41 4c 4c 09 4e 43 48 41 52 09 09 3b 20 53 45 41 52 43 48 20 45 51 55 41 4c 3a 0d 0a 09 ┆ CALL NCHAR ; SEARCH EQUAL: ┆ 0x059880…0598a0 43 50 49 09 27 3d 27 09 09 3b 0d 0a 09 4a 4e 5a 09 53 43 41 4e 09 09 3b 0d 0a 09 43 41 4c 4c 09 ┆CPI '=' ; JNZ SCAN ; CALL ┆ 0x0598a0…0598c0 4e 43 48 41 52 09 09 3b 20 53 45 41 52 43 48 20 44 45 4e 53 49 54 59 3a 0d 0a 09 43 50 49 09 27 ┆NCHAR ; SEARCH DENSITY: CPI '┆ 0x0598c0…0598e0 53 27 09 09 3b 0d 0a 09 4a 5a 09 53 53 53 09 09 3b 0d 0a 09 43 50 49 09 27 44 27 09 09 3b 0d 0a ┆S' ; JZ SSS ; CPI 'D' ; ┆ 0x0598e0…059900 09 4a 4e 5a 09 53 43 41 4e 09 09 3b 0d 0a 09 43 41 4c 4c 09 4e 43 48 41 52 09 09 3b 0d 0a 09 43 ┆ JNZ SCAN ; CALL NCHAR ; C┆ 0x059900…059920 50 49 09 27 44 27 09 09 3b 0d 0a 09 4a 4e 5a 09 53 43 41 4e 09 09 3b 0d 0a 09 43 41 4c 4c 09 4e ┆PI 'D' ; JNZ SCAN ; CALL N┆ 0x059920…059940 43 48 41 52 09 09 3b 20 53 45 41 52 43 48 20 53 50 41 43 45 3a 0d 0a 09 43 50 49 09 27 20 27 09 ┆CHAR ; SEARCH SPACE: CPI ' ' ┆ 0x059940…059960 09 3b 0d 0a 09 4a 4e 5a 09 53 43 41 4e 09 09 3b 0d 0a 09 4d 56 49 09 43 2c 38 09 09 3b 0d 0a 09 ┆ ; JNZ SCAN ; MVI C,8 ; ┆ 0x059960…059980 4a 4d 50 09 53 45 54 43 46 09 09 3b 0d 0a 53 53 53 3a 09 43 41 4c 4c 09 4e 43 48 41 52 09 09 3b ┆JMP SETCF ; SSS: CALL NCHAR ;┆ 0x059980…0599a0 0d 0a 09 43 50 49 09 27 53 27 09 09 3b 0d 0a 09 4a 4e 5a 09 53 43 41 4e 09 09 3b 0d 0a 09 43 41 ┆ CPI 'S' ; JNZ SCAN ; CA┆ 0x0599a0…0599c0 4c 4c 09 4e 43 48 41 52 09 09 3b 0d 0a 09 43 50 49 09 27 20 27 09 09 3b 0d 0a 09 4a 4e 5a 09 53 ┆LL NCHAR ; CPI ' ' ; JNZ S┆ 0x0599c0…0599e0 43 41 4e 09 09 3b 0d 0a 53 45 54 43 46 3a 09 4c 58 49 09 48 2c 43 46 4f 52 4d 09 09 3b 20 53 45 ┆CAN ; SETCF: LXI H,CFORM ; SE┆ 0x0599e0…059a00 54 20 43 55 52 52 45 4e 54 20 46 4f 52 4d 41 54 3a 0d 0a 09 4d 56 49 09 44 2c 30 09 09 3b 0d 0a ┆T CURRENT FORMAT: MVI D,0 ; ┆ 0x059a00…059a20 (23, 1, 13) 09 09 3b 20 49 46 20 45 4f 46 20 54 48 45 4e 20 47 4f 54 4f 20 43 48 41 4e 47 45 20 44 49 53 4b ┆ ; IF EOF THEN GOTO CHANGE DISK┆ 0x059a20…059a40 3b 0d 0a 20 30 32 33 37 20 32 31 38 30 30 30 20 20 20 20 09 4c 58 49 09 48 2c 31 32 38 09 09 3b ┆; 0237 218000 LXI H,128 ;┆ 0x059a40…059a60 0d 0a 20 30 32 33 41 20 31 39 20 20 20 20 20 20 20 20 09 44 41 44 09 44 09 09 3b 0d 0a 20 30 32 ┆ 023A 19 DAD D ; 02┆ 0x059a60…059a80 33 42 20 45 42 20 20 20 20 20 20 20 20 09 58 43 48 47 09 09 09 3b 0d 0a 20 30 32 33 43 20 44 35 ┆3B EB XCHG ; 023C D5┆ 0x059a80…059aa0 20 20 20 20 20 20 20 20 09 50 55 53 48 09 44 09 09 3b 0d 0a 20 30 32 33 44 20 43 44 46 45 30 32 ┆ PUSH D ; 023D CDFE02┆ 0x059aa0…059ac0 20 20 20 20 09 43 41 4c 4c 09 53 45 54 44 4d 41 09 09 3b 20 53 45 54 20 42 55 46 41 44 52 0d 0a ┆ CALL SETDMA ; SET BUFADR ┆ 0x059ac0…059ae0 20 30 32 34 30 20 32 31 30 34 30 34 20 20 20 20 09 4c 58 49 09 48 2c 53 45 43 43 4e 54 09 3b 0d ┆ 0240 210404 LXI H,SECCNT ; ┆ 0x059ae0…059b00 0a 20 30 32 34 33 20 31 31 36 46 30 33 20 20 20 20 09 4c 58 49 09 44 2c 54 4f 4f 42 49 47 09 3b ┆ 0243 116F03 LXI D,TOOBIG ;┆ 0x059b00…059b20 0d 0a 20 30 32 34 36 20 33 34 20 20 20 20 20 20 20 20 09 49 4e 52 09 4d 09 09 3b 20 53 45 43 54 ┆ 0246 34 INR M ; SECT┆ 0x059b20…059b40 4f 52 43 4f 55 4e 54 3a 3d 53 45 43 54 4f 52 43 4f 55 4e 54 2b 31 3b 0d 0a 20 30 32 34 37 20 43 ┆ORCOUNT:=SECTORCOUNT+1; 0247 C┆ 0x059b40…059b60 43 43 32 30 32 20 20 20 20 09 43 5a 09 46 49 4e 49 53 09 09 3b 20 49 46 20 46 49 4c 45 20 54 4f ┆CC202 CZ FINIS ; IF FILE TO┆ 0x059b60…059b80 4f 20 42 49 47 20 46 4f 52 20 42 55 46 3a 20 45 58 49 54 3b 0d 0a 20 30 32 34 41 20 43 33 32 43 ┆O BIG FOR BUF: EXIT; 024A C32C┆ 0x059b80…059ba0 30 32 20 20 20 20 09 4a 4d 50 09 52 44 41 54 41 09 09 3b 20 47 4f 54 4f 20 52 45 41 44 20 4e 45 ┆02 JMP RDATA ; GOTO READ NE┆ 0x059ba0…059bc0 58 54 3b 0d 0a 20 30 32 34 44 20 44 31 20 20 20 20 20 20 20 20 45 4f 46 49 4c 45 3a 09 50 4f 50 ┆XT; 024D D1 EOFILE: POP┆ 0x059bc0…059be0 09 44 09 09 3b 0d 0a 20 30 32 34 45 20 31 31 37 45 30 33 20 20 20 20 09 4c 58 49 09 44 2c 53 57 ┆ D ; 024E 117E03 LXI D,SW┆ 0x059be0…059c00 4f 50 53 09 09 3b 20 43 48 41 4e 47 45 20 44 49 53 4b 3a 0d 0a 20 30 32 35 31 20 43 44 30 33 30 ┆OPS ; CHANGE DISK: 0251 CD030┆ 0x059c00…059c20 (23, 1, 14) 20 20 20 09 43 41 4c 4c 09 52 45 53 45 54 09 09 3b 20 52 45 53 45 54 20 44 52 49 56 45 53 3b 0d ┆ CALL RESET ; RESET DRIVES; ┆ 0x059c20…059c40 0a 20 30 32 42 45 20 32 41 30 35 30 34 20 20 20 20 09 4c 48 4c 44 09 43 43 50 52 45 54 09 09 3b ┆ 02BE 2A0504 LHLD CCPRET ;┆ 0x059c40…059c60 20 52 45 54 55 52 4e 20 54 4f 20 43 43 50 0d 0a 20 30 32 43 31 20 45 39 20 20 20 20 20 20 20 20 ┆ RETURN TO CCP 02C1 E9 ┆ 0x059c60…059c80 09 50 43 48 4c 09 09 09 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 32 ┆ PCHL ; 02┆ 0x059c80…059ca0 43 32 20 30 45 30 39 20 20 20 20 20 20 46 49 4e 49 53 3a 09 4d 56 49 09 43 2c 50 52 49 4e 54 46 ┆C2 0E09 FINIS: MVI C,PRINTF┆ 0x059ca0…059cc0 09 3b 20 50 52 49 4e 54 20 4d 45 53 53 41 47 45 3a 0d 0a 20 30 32 43 34 20 43 44 30 35 30 30 20 ┆ ; PRINT MESSAGE: 02C4 CD0500 ┆ 0x059cc0…059ce0 20 20 20 09 43 41 4c 4c 09 42 44 4f 53 09 09 3b 0d 0a 20 30 32 43 37 20 43 33 41 43 30 32 20 20 ┆ CALL BDOS ; 02C7 C3AC02 ┆ 0x059ce0…059d00 20 20 09 4a 4d 50 09 4d 53 59 53 46 09 09 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ JMP MSYSF ; ┆ 0x059d00…059d20 20 0d 0a 20 30 32 43 41 20 30 45 30 31 20 20 20 20 20 20 43 4f 4e 53 49 3a 09 4d 56 49 09 43 2c ┆ 02CA 0E01 CONSI: MVI C,┆ 0x059d20…059d40 43 4f 4e 53 49 46 09 3b 0d 0a 20 30 32 43 43 20 43 44 30 35 30 30 20 20 20 20 09 43 41 4c 4c 09 ┆CONSIF ; 02CC CD0500 CALL ┆ 0x059d40…059d60 42 44 4f 53 09 09 3b 0d 0a 20 30 32 43 46 20 46 45 30 33 20 20 20 20 20 20 09 43 50 49 09 33 09 ┆BDOS ; 02CF FE03 CPI 3 ┆ 0x059d60…059d80 09 3b 0d 0a 20 30 32 44 31 20 43 30 20 20 20 20 20 20 20 20 09 52 4e 5a 09 09 09 3b 09 09 09 0d ┆ ; 02D1 C0 RNZ ; ┆ 0x059d80…059da0 0a 20 30 32 44 32 20 32 41 46 41 30 33 20 20 20 20 09 4c 48 4c 44 09 53 46 4f 52 4d 09 09 3b 0d ┆ 02D2 2AFA03 LHLD SFORM ; ┆ 0x059da0…059dc0 0a 20 30 32 44 35 20 43 44 45 30 30 31 20 20 20 20 09 43 41 4c 4c 09 53 45 54 46 09 09 3b 0d 0a ┆ 02D5 CDE001 CALL SETF ; ┆ 0x059dc0…059de0 20 30 32 44 38 20 43 33 30 30 30 30 20 20 20 20 09 4a 4d 50 09 42 4f 4f 54 0d 0a 20 20 20 20 20 ┆ 02D8 C30000 JMP BOOT ┆ 0x059de0…059e00 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 32 44 42 20 30 45 30 44 20 20 20 20 20 20 52 45 53 ┆ 02DB 0E0D RES┆ 0x059e00…059e20 (23, 1, 15) 3b 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆;*******************************┆ 0x059e20…059e40 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆********************************┆ 0x059e40…059e60 2a 0d 0a 3b 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆* ;* ┆ 0x059e60…059e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x059e80…059ea0 20 20 20 2a 0d 0a 3b 2a 20 20 20 20 20 41 53 53 49 47 4e 20 20 20 20 20 20 20 20 55 54 49 4c 49 ┆ * ;* ASSIGN UTILI┆ 0x059ea0…059ec0 54 59 20 20 20 20 2d 20 20 20 20 56 45 52 53 49 4f 4e 20 20 38 31 2e 30 36 2e 32 39 20 20 20 20 ┆TY - VERSION 81.06.29 ┆ 0x059ec0…059ee0 20 20 20 20 20 20 2a 0d 0a 3b 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ * ;* ┆ 0x059ee0…059f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x059f00…059f20 20 20 20 20 20 20 20 20 20 2a 0d 0a 3b 2a 20 20 20 20 20 41 53 53 49 47 4e 20 20 20 44 3a 3d 46 ┆ * ;* ASSIGN D:=F┆ 0x059f20…059f40 46 20 20 44 3a 3d 46 46 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆F D:=FF ┆ 0x059f40…059f60 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 3b 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ * ;* ┆ 0x059f60…059f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x059f80…059fa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 3b 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆ * ;*************┆ 0x059fa0…059fc0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆********************************┆ 0x059fc0…059fe0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 0a 0d 0a 42 4f 4f 54 09 45 51 55 09 ┆******************* BOOT EQU ┆ 0x059fe0…05a000 30 30 30 30 48 0d 0a 42 44 4f 53 09 45 51 55 09 30 30 30 35 48 0d 0a 46 43 42 31 09 45 51 55 09 ┆0000H BDOS EQU 0005H FCB1 EQU ┆ 0x05a000…05a020 (24, 0, 1) 09 4d 4f 56 09 45 2c 42 09 09 3b 0d 0a 09 44 41 44 09 44 09 09 3b 0d 0a 09 4d 4f 56 09 4d 2c 43 ┆ MOV E,B ; DAD D ; MOV M,C┆ 0x05a020…05a040 09 09 3b 0d 0a 09 4a 4d 50 09 53 43 41 4e 09 09 3b 20 47 4f 54 4f 20 53 43 41 4e 20 46 4f 52 20 ┆ ; JMP SCAN ; GOTO SCAN FOR ┆ 0x05a040…05a060 4e 45 58 54 3b 0d 0a 0d 0a 53 45 54 46 44 46 3a 20 49 4e 09 53 57 31 09 09 3b 20 49 46 20 4d 49 ┆NEXT; SETFDF: IN SW1 ; IF MI┆ 0x05a060…05a080 4e 49 20 46 4c 4f 50 50 59 20 54 48 45 4e 0d 0a 09 41 4e 49 09 30 38 30 48 09 09 3b 20 20 47 4f ┆NI FLOPPY THEN ANI 080H ; GO┆ 0x05a080…05a0a0 54 4f 20 46 49 4e 49 53 3b 0d 0a 09 4a 4e 5a 09 46 49 4e 49 53 09 09 3b 0d 0a 09 4c 48 4c 44 09 ┆TO FINIS; JNZ FINIS ; LHLD ┆ 0x05a0a0…05a0c0 41 46 4f 52 4d 09 09 3b 20 53 45 54 20 46 4c 4f 50 50 59 20 46 4f 52 4d 41 54 53 3a 0d 0a 09 4c ┆AFORM ; SET FLOPPY FORMATS: L┆ 0x05a0c0…05a0e0 44 41 09 43 46 4f 52 4d 09 09 3b 0d 0a 09 4d 4f 56 09 4d 2c 41 09 09 3b 0d 0a 09 49 4e 58 09 48 ┆DA CFORM ; MOV M,A ; INX H┆ 0x05a0e0…05a100 09 09 3b 0d 0a 09 4c 44 41 09 43 46 4f 52 4d 2b 31 09 09 3b 0d 0a 09 4d 4f 56 09 4d 2c 41 09 09 ┆ ; LDA CFORM+1 ; MOV M,A ┆ 0x05a100…05a120 3b 0d 0a 0d 0a 46 49 4e 49 53 3a 09 4c 58 49 09 44 2c 53 57 4f 50 09 09 3b 0d 0a 09 43 41 4c 4c ┆; FINIS: LXI D,SWOP ; CALL┆ 0x05a120…05a140 09 50 52 49 4e 54 09 09 3b 0d 0a 09 43 41 4c 4c 09 43 4f 4e 53 49 09 09 3b 0d 0a 09 43 41 4c 4c ┆ PRINT ; CALL CONSI ; CALL┆ 0x05a140…05a160 09 52 45 53 45 54 09 09 3b 20 52 45 53 45 54 20 44 52 49 56 45 53 3b 0d 0a 09 4c 48 4c 44 09 43 ┆ RESET ; RESET DRIVES; LHLD C┆ 0x05a160…05a180 43 50 52 45 54 09 09 3b 0d 0a 09 50 43 48 4c 09 09 09 3b 20 52 45 54 55 52 4e 20 54 4f 20 43 43 ┆CPRET ; PCHL ; RETURN TO CC┆ 0x05a180…05a1a0 50 0d 0a 0d 0a 0d 0a 43 4f 4e 53 49 3a 09 4d 56 49 09 43 2c 43 4f 4e 53 49 46 09 3b 0d 0a 09 4a ┆P CONSI: MVI C,CONSIF ; J┆ 0x05a1a0…05a1c0 4d 50 09 42 44 4f 53 09 09 3b 0d 0a 0d 0a 52 45 53 45 54 3a 09 4d 56 49 09 43 2c 52 45 53 45 54 ┆MP BDOS ; RESET: MVI C,RESET┆ 0x05a1c0…05a1e0 46 09 3b 0d 0a 09 4c 58 49 09 20 44 2c 33 09 09 3b 0d 0a 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d ┆F ; LXI D,3 ; JMP BDOS ; ┆ 0x05a1e0…05a200 0a 0d 0a 4f 50 45 4e 3a 09 4d 56 49 09 43 2c 4f 50 45 4e 46 09 09 3b 0d 0a 09 4a 4d 50 09 42 44 ┆ OPEN: MVI C,OPENF ; JMP BD┆ 0x05a200…05a220 (24, 0, 2) 3b 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆;*******************************┆ 0x05a220…05a240 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆********************************┆ 0x05a240…05a260 2a 2a 2a 0d 0a 3b 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆*** ;* ┆ 0x05a260…05a280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x05a280…05a2a0 20 20 20 20 20 20 20 2a 0d 0a 3b 2a 20 20 20 20 20 42 41 43 4b 55 50 20 20 55 54 49 4c 49 54 59 ┆ * ;* BACKUP UTILITY┆ 0x05a2a0…05a2c0 20 20 2d 20 20 56 45 52 53 49 4f 4e 20 20 38 31 2e 30 37 2e 30 38 20 20 20 20 20 20 20 20 20 20 ┆ - VERSION 81.07.08 ┆ 0x05a2c0…05a2e0 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 3b 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ * ;* ┆ 0x05a2e0…05a300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x05a300…05a320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 3b 2a 20 20 20 20 20 42 41 43 4b 55 ┆ * ;* BACKU┆ 0x05a320…05a340 50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆P ┆ 0x05a340…05a360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 3b 2a 20 20 20 20 20 ┆ * ;* ┆ 0x05a360…05a380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x05a380…05a3a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 3b 2a ┆ * ;*┆ 0x05a3a0…05a3c0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆********************************┆ […0x1…] 0x05a3e0…05a400 2a 0d 0a 0d 0a 0d 0a 54 50 41 09 45 51 55 09 31 30 30 48 0d 0a 42 44 4f 53 09 45 51 55 09 30 30 ┆* TPA EQU 100H BDOS EQU 00┆ 0x05a400…05a420 (24, 0, 3) 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆ ;***********┆ 0x05a420…05a440 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆********************************┆ 0x05a440…05a460 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 0a 20 20 20 20 20 20 20 20 20 ┆********************* ┆ 0x05a460…05a480 20 20 20 20 20 20 20 3b 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ;* ┆ 0x05a480…05a4a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x05a4a0…05a4c0 20 20 20 20 20 20 20 2a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 2a 20 20 20 20 ┆ * ;* ┆ 0x05a4c0…05a4e0 20 41 53 53 49 47 4e 20 20 20 20 20 20 20 20 55 54 49 4c 49 54 59 20 20 20 20 2d 20 20 20 20 56 ┆ ASSIGN UTILITY - V┆ 0x05a4e0…05a500 45 52 53 49 4f 4e 20 20 38 31 2e 30 36 2e 32 39 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 20 20 20 ┆ERSION 81.06.29 * ┆ 0x05a500…05a520 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ;* ┆ 0x05a520…05a540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x05a540…05a560 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ * ┆ 0x05a560…05a580 3b 2a 20 20 20 20 20 41 53 53 49 47 4e 20 20 20 44 3a 3d 46 46 20 20 44 3a 3d 46 46 20 20 20 20 ┆;* ASSIGN D:=FF D:=FF ┆ 0x05a580…05a5a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x05a5a0…05a5c0 2a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 2a 20 20 20 20 20 20 20 20 20 20 20 ┆* ;* ┆ 0x05a5c0…05a5e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x05a5e0…05a600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 20 20 20 20 20 20 20 20 20 20 ┆ * ┆ 0x05a600…05a620 (24, 0, 4) c3 82 01 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 39 37 39 2c 31 39 38 30 20 50 72 65 63 69 ┆ Copyright (c) 1979,1980 Preci┆ 0x05a620…05a640 73 69 6f 6e 20 43 6f 6d 70 75 74 65 72 20 43 6f 72 70 6f 72 61 74 69 6f 6e 20 61 6e 64 20 4c 69 ┆sion Computer Corporation and Li┆ 0x05a640…05a660 66 65 62 6f 61 74 20 41 73 73 6f 63 69 61 74 65 73 20 2d 20 41 6c 6c 20 52 69 67 68 74 73 20 52 ┆feboat Associates - All Rights R┆ 0x05a660…05a680 65 73 65 72 76 65 64 20 20 20 76 65 72 73 69 6f 6e 20 6f 66 20 31 30 2f 31 37 2f 38 30 20 10 02 ┆eserved version of 10/17/80 ┆ 0x05a680…05a6a0 57 02 31 27 21 0e 0c cd 05 00 b7 c2 c1 01 3e 04 32 a8 1a 3e 44 32 a9 1a c3 a6 01 78 b1 c8 7e 12 ┆W 1'! > 2 >D2 x ü ┆ 0x05a6a0…05a6c0 23 13 0b c3 9b 01 21 be 19 11 94 17 01 2d 00 cd 9b 01 21 cd 20 11 99 20 01 1a 00 cd 9b 01 c3 0e ┆# ! - ! ┆ 0x05a6c0…05a6e0 02 3e 10 32 a8 1a 3e 50 32 a9 1a 21 eb 19 11 94 17 01 2d 00 cd 9b 01 01 02 00 11 b3 20 2a 01 00 ┆ > 2 >P2 ! - * ┆ 0x05a6e0…05a700 f5 3e 2d 85 6f 3e 00 8c 67 f1 22 ee 01 cd 30 e3 3e 02 bd c2 b2 01 21 b3 20 11 99 20 01 1a 00 cd ┆ >- o> g " 0 > ! ┆ 0x05a700…05a720 9b 01 21 18 1a 11 94 17 01 2d 00 cd 9b 01 3e 00 3e 00 c3 4f 02 2c 31 39 22 15 02 21 17 02 70 c5 ┆ ! - > > O ,19" ! p ┆ 0x05a720…05a740 d5 e5 01 f6 ff 11 ff ff 6f 26 00 09 13 da 2b 02 01 0a 00 09 eb 3a 17 02 3d 32 17 02 7d c4 1f 02 ┆ o& + : =2 å ┆ 0x05a740…05a760 7b c6 30 2a 15 02 77 23 22 15 02 e1 d1 c1 c9 c3 61 02 06 02 cd 18 02 3e 00 21 2e 15 06 02 cd 18 ┆æ 0* w#" a > !. ┆ 0x05a760…05a780 02 21 2c 15 11 6e 17 01 04 00 cd 9b 01 11 c9 14 0e 09 cd 05 00 0e 01 cd 05 00 3e ff 32 8e 1a 32 ┆ !, n > 2 2┆ 0x05a780…05a7a0 8f 1a 11 06 17 0e 09 cd 05 00 0e 0a 11 45 1a 3e 01 12 cd 05 00 c3 ac 02 7e fe 61 da a6 02 fe 7b ┆ E > ü a æ┆ 0x05a7a0…05a7c0 d2 a6 02 d6 20 77 23 05 c2 98 02 c9 21 47 1a 06 01 cd 98 02 c3 c2 02 0c 0d c8 1a 96 c0 23 13 c3 ┆ w# !G # ┆ 0x05a7c0…05a7e0 b8 02 11 47 1a 0e 01 21 d0 02 cd b7 02 c3 d1 02 45 ca 1f 03 11 47 1a 0e 01 21 e2 02 cd b7 02 c3 ┆ G ! E G ! ┆ 0x05a7e0…05a800 e3 02 46 cc c1 03 11 47 1a 0e 01 21 f4 02 cd b7 02 c3 f5 02 44 cc 51 05 11 47 1a 0e 01 21 06 03 ┆ F G ! D Q G ! ┆ 0x05a800…05a820 (24, 0, 5) 4f 53 09 09 3b 0d 0a 0d 0a 43 4c 4f 53 45 3a 09 4d 56 49 09 43 2c 43 4c 4f 53 45 46 09 3b 0d 0a ┆OS ; CLOSE: MVI C,CLOSEF ; ┆ 0x05a820…05a840 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d 0a 0d 0a 44 45 4c 45 54 45 3a 09 4d 56 49 09 43 2c 44 45 ┆ JMP BDOS ; DELETE: MVI C,DE┆ 0x05a840…05a860 4c 45 54 45 46 09 3b 0d 0a 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d 0a 0d 0a 52 45 41 44 3a 09 4d ┆LETEF ; JMP BDOS ; READ: M┆ 0x05a860…05a880 56 49 09 43 2c 52 45 41 44 46 09 09 3b 0d 0a 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d 0a 0d 0a 57 ┆VI C,READF ; JMP BDOS ; W┆ 0x05a880…05a8a0 52 49 54 45 3a 09 4d 56 49 09 43 2c 57 52 49 54 45 46 09 3b 0d 0a 09 4a 4d 50 09 42 44 4f 53 09 ┆RITE: MVI C,WRITEF ; JMP BDOS ┆ 0x05a8a0…05a8c0 09 3b 0d 0a 0d 0a 4d 41 4b 45 3a 09 4d 56 49 09 43 2c 4d 41 4b 45 46 09 09 3b 0d 0a 09 4a 4d 50 ┆ ; MAKE: MVI C,MAKEF ; JMP┆ 0x05a8c0…05a8e0 09 42 44 4f 53 09 09 3b 0d 0a 0d 0a 53 45 54 44 4d 41 3a 09 4d 56 49 09 43 2c 53 44 4d 41 46 09 ┆ BDOS ; SETDMA: MVI C,SDMAF ┆ 0x05a8e0…05a900 09 3b 0d 0a 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d 0a 0d 0a 50 52 49 4e 54 3a 09 4d 56 49 09 43 ┆ ; JMP BDOS ; PRINT: MVI C┆ 0x05a900…05a920 2c 50 52 49 4e 54 46 09 3b 0d 0a 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d 0a 0d 0a 0d 0a 53 57 4f ┆,PRINTF ; JMP BDOS ; SWO┆ 0x05a920…05a940 50 3a 09 44 42 09 27 49 4e 53 45 52 54 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 54 ┆P: DB 'INSERT DISK AND TYPE <RET┆ 0x05a940…05a960 55 52 4e 3e 27 2c 33 36 0d 0a 0d 0a 41 46 4f 52 4d 3a 09 44 57 09 30 0d 0a 53 46 4f 52 4d 3a 09 ┆URN>',36 AFORM: DW 0 SFORM: ┆ 0x05a960…05a980 44 57 09 30 0d 0a 43 46 4f 52 4d 3a 20 20 44 57 09 30 0d 0a 43 41 44 44 52 3a 09 44 57 09 30 0d ┆DW 0 CFORM: DW 0 CADDR: DW 0 ┆ 0x05a980…05a9a0 0a 0d 0a 0d 0a 43 43 50 52 45 54 3a 20 44 57 09 30 0d 0a 0d 0a 44 46 43 42 3a 09 44 53 09 33 33 ┆ CCPRET: DW 0 DFCB: DS 33┆ 0x05a9a0…05a9c0 09 09 3b 20 44 45 53 54 49 4e 41 54 49 4f 4e 20 46 43 42 0d 0a 44 46 43 42 43 52 09 45 51 55 09 ┆ ; DESTINATION FCB DFCBCR EQU ┆ 0x05a9c0…05a9e0 44 46 43 42 2b 33 32 09 09 3b 0d 0a 0d 0a 09 44 53 09 33 31 09 09 3b 0d 0a 53 54 41 43 4b 3a 09 ┆DFCB+32 ; DS 31 ; STACK: ┆ 0x05a9e0…05aa00 44 53 09 31 09 09 3b 20 4c 4f 43 41 4c 20 53 54 41 43 4b 0d 0a 0d 0a 0d 0a 09 45 4e 44 09 30 31 ┆DS 1 ; LOCAL STACK END 01┆ 0x05aa00…05aa20 (24, 0, 6) 30 35 48 0d 0a 42 4f 4f 54 09 45 51 55 09 30 30 30 30 48 0d 0a 0d 0a 43 4f 4e 53 49 46 09 45 51 ┆05H BOOT EQU 0000H CONSIF EQ┆ 0x05aa20…05aa40 55 09 31 0d 0a 50 52 49 4e 54 46 09 45 51 55 09 39 0d 0a 57 42 4f 4f 54 09 45 51 55 09 31 0d 0a ┆U 1 PRINTF EQU 9 WBOOT EQU 1 ┆ 0x05aa40…05aa60 53 45 4c 44 53 4b 09 45 51 55 09 32 34 0d 0a 53 45 54 54 52 4b 09 45 51 55 09 32 37 0d 0a 53 45 ┆SELDSK EQU 24 SETTRK EQU 27 SE┆ 0x05aa60…05aa80 54 53 45 43 09 45 51 55 09 33 30 0d 0a 53 45 54 44 4d 41 09 45 51 55 09 33 33 0d 0a 52 45 41 44 ┆TSEC EQU 30 SETDMA EQU 33 READ┆ 0x05aa80…05aaa0 46 09 45 51 55 09 33 36 0d 0a 57 52 49 54 45 46 09 45 51 55 09 33 39 0d 0a 46 44 46 4f 52 4d 09 ┆F EQU 36 WRITEF EQU 39 FDFORM ┆ 0x05aaa0…05aac0 45 51 55 09 35 32 0d 0a 53 53 38 09 45 51 55 09 30 0d 0a 44 44 38 09 45 51 55 09 38 0d 0a 44 44 ┆EQU 52 SS8 EQU 0 DD8 EQU 8 DD┆ 0x05aac0…05aae0 35 09 45 51 55 09 31 36 0d 0a 0d 0a 0d 0a 09 4f 52 47 09 54 50 41 0d 0a 0d 0a 09 50 4f 50 09 48 ┆5 EQU 16 ORG TPA POP H┆ 0x05aae0…05ab00 09 3b 20 53 41 56 45 20 52 45 54 55 52 4e 20 54 4f 20 43 43 50 3b 0d 0a 09 53 48 4c 44 09 43 43 ┆ ; SAVE RETURN TO CCP; SHLD CC┆ 0x05ab00…05ab20 50 52 45 54 09 3b 0d 0a 09 4c 58 49 09 53 50 2c 53 54 41 43 4b 3b 0d 0a 09 4c 58 49 09 44 2c 48 ┆PRET ; LXI SP,STACK; LXI D,H┆ 0x05ab20…05ab40 45 41 44 09 3b 20 50 52 49 4e 54 20 48 45 41 44 49 4e 47 3b 0d 0a 09 43 41 4c 4c 09 50 52 49 4e ┆EAD ; PRINT HEADING; CALL PRIN┆ 0x05ab40…05ab60 54 09 3b 0d 0a 50 53 50 3a 09 4c 58 49 09 44 2c 53 44 53 50 45 43 3b 20 50 52 49 4e 54 20 53 4f ┆T ; PSP: LXI D,SDSPEC; PRINT SO┆ 0x05ab60…05ab80 55 52 43 45 20 50 52 4f 4d 50 54 3b 0d 0a 09 43 41 4c 4c 09 50 52 49 4e 54 09 3b 0d 0a 09 43 41 ┆URCE PROMPT; CALL PRINT ; CA┆ 0x05ab80…05aba0 4c 4c 09 43 4f 4e 53 49 09 3b 20 47 45 54 20 53 4f 55 52 43 45 20 44 52 49 56 45 3b 0d 0a 09 4d ┆LL CONSI ; GET SOURCE DRIVE; M┆ 0x05aba0…05abc0 56 49 09 43 2c 30 09 3b 0d 0a 09 43 50 49 09 27 41 27 09 3b 0d 0a 09 4a 5a 09 53 45 54 53 44 09 ┆VI C,0 ; CPI 'A' ; JZ SETSD ┆ 0x05abc0…05abe0 3b 0d 0a 09 43 50 49 09 27 42 27 09 3b 0d 0a 09 4a 4e 5a 09 50 53 50 09 3b 0d 0a 09 49 4e 52 09 ┆; CPI 'B' ; JNZ PSP ; INR ┆ 0x05abe0…05ac00 43 09 3b 0d 0a 53 45 54 53 44 3a 09 4d 4f 56 09 41 2c 43 09 3b 0d 0a 09 53 54 41 09 53 44 52 49 ┆C ; SETSD: MOV A,C ; STA SDRI┆ 0x05ac00…05ac20 (24, 0, 7) 20 20 20 20 20 20 3b 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆ ;*************************┆ 0x05ac20…05ac40 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆********************************┆ 0x05ac40…05ac60 2a 2a 2a 2a 2a 2a 2a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 30 30 30 ┆******* 0000┆ 0x05ac60…05ac80 20 3d 20 20 20 20 20 20 20 20 20 42 4f 4f 54 09 45 51 55 09 30 30 30 30 48 0d 0a 20 30 30 30 35 ┆ = BOOT EQU 0000H 0005┆ 0x05ac80…05aca0 20 3d 20 20 20 20 20 20 20 20 20 42 44 4f 53 09 45 51 55 09 30 30 30 35 48 0d 0a 20 30 30 35 43 ┆ = BDOS EQU 0005H 005C┆ 0x05aca0…05acc0 20 3d 20 20 20 20 20 20 20 20 20 46 43 42 31 09 45 51 55 09 30 30 35 43 48 0d 0a 20 30 30 35 43 ┆ = FCB1 EQU 005CH 005C┆ 0x05acc0…05ace0 20 3d 20 20 20 20 20 20 20 20 20 53 46 43 42 09 45 51 55 09 46 43 42 31 0d 0a 20 30 30 36 43 20 ┆ = SFCB EQU FCB1 006C ┆ 0x05ace0…05ad00 3d 20 20 20 20 20 20 20 20 20 46 43 42 32 09 45 51 55 09 30 30 36 43 48 0d 0a 20 30 30 38 30 20 ┆= FCB2 EQU 006CH 0080 ┆ 0x05ad00…05ad20 3d 20 20 20 20 20 20 20 20 20 44 42 55 46 46 20 20 20 45 51 55 09 30 30 38 30 48 0d 0a 20 30 31 ┆= DBUFF EQU 0080H 01┆ 0x05ad20…05ad40 30 30 20 3d 20 20 20 20 20 20 20 20 20 54 50 41 09 45 51 55 09 30 31 30 30 48 0d 0a 20 20 20 20 ┆00 = TPA EQU 0100H ┆ 0x05ad40…05ad60 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 30 30 31 20 3d 20 20 20 20 20 20 20 20 20 57 42 ┆ 0001 = WB┆ 0x05ad60…05ad80 4f 4f 54 20 20 20 45 51 55 20 20 20 20 20 31 0d 0a 20 30 30 33 34 20 3d 20 20 20 20 20 20 20 20 ┆OOT EQU 1 0034 = ┆ 0x05ad80…05ada0 20 46 44 46 4f 52 4d 20 20 45 51 55 20 20 20 20 20 35 32 0d 0a 20 30 30 31 34 20 3d 20 20 20 20 ┆ FDFORM EQU 52 0014 = ┆ 0x05ada0…05adc0 20 20 20 20 20 53 57 31 20 20 20 20 20 45 51 55 20 20 20 20 20 31 34 48 0d 0a 20 30 30 30 31 20 ┆ SW1 EQU 14H 0001 ┆ 0x05adc0…05ade0 3d 20 20 20 20 20 20 20 20 20 43 4f 4e 53 49 46 09 45 51 55 09 31 0d 0a 20 30 30 30 39 20 3d 20 ┆= CONSIF EQU 1 0009 = ┆ 0x05ade0…05ae00 20 20 20 20 20 20 20 20 50 52 49 4e 54 46 09 45 51 55 09 39 0d 0a 20 30 30 30 44 20 3d 20 20 20 ┆ PRINTF EQU 9 000D = ┆ 0x05ae00…05ae20 (24, 0, 8) cd b7 02 c3 07 03 43 cc f5 05 11 47 1a 0e 01 21 18 03 cd b7 02 c3 19 03 49 cc 5f 0c c3 82 02 c3 ┆ C G ! I _ ┆ 0x05ae20…05ae40 4d 03 0d 0a 07 50 6c 65 61 73 65 20 70 6c 61 63 65 20 61 20 43 50 4d 20 64 69 73 6b 65 74 74 65 ┆M Please place a CPM diskette┆ 0x05ae40…05ae60 20 69 6e 20 64 72 69 76 65 20 41 3a 24 11 22 03 0e 09 cd 05 00 c3 72 03 20 66 6f 72 20 61 20 73 ┆ in drive A:$ " r for a s┆ 0x05ae60…05ae80 79 73 74 65 6d 20 77 61 72 6d 20 73 74 61 72 74 2e 24 11 58 03 0e 09 cd 05 00 c3 99 03 0d 0a 50 ┆ystem warm start.$ X P┆ 0x05ae80…05aea0 72 65 73 73 20 61 6e 79 20 6b 65 79 20 77 68 65 6e 20 72 65 61 64 79 2e 24 11 7d 03 0e 09 cd 05 ┆ress any key when ready.$ å ┆ 0x05aea0…05aec0 00 0e 01 cd 05 00 11 00 00 0e 0e cd 05 00 2a 01 00 f5 3e 00 85 6f 3e 00 8c 67 f1 22 bf 03 cd 00 ┆ * > o> g " ┆ 0x05aec0…05aee0 00 c5 d5 e5 01 01 00 21 82 1a 70 21 88 1a 71 21 8e 1a 5e 3e ff bb cc 99 10 c3 0a 04 0d 0a 07 59 ┆ ! p! q! ^> Y┆ 0x05aee0…05af00 6f 75 20 61 72 65 20 61 62 6f 75 74 20 74 6f 20 77 72 69 74 65 20 61 6e 20 49 42 4d 20 64 69 72 ┆ou are about to write an IBM dir┆ 0x05af00…05af20 65 63 74 6f 72 79 20 6f 6e 24 11 dc 03 0e 09 cd 05 00 c3 2d 04 20 74 68 65 20 64 69 73 6b 65 74 ┆ectory on$ - the disket┆ 0x05af20…05af40 74 65 20 69 6e 20 64 72 69 76 65 20 24 11 15 04 0e 09 cd 05 00 3a 8e 1a c6 41 0e 02 5f cd 05 00 ┆te in drive $ : A _ ┆ 0x05af40…05af60 c3 46 04 3a 2e 24 11 43 04 0e 09 cd 05 00 c3 78 04 0d 0a 50 72 65 73 73 20 23 20 74 6f 20 63 6f ┆ F :.$ C x Press # to co┆ 0x05af60…05af80 6e 74 69 6e 75 65 2c 20 6f 72 20 2a 20 74 6f 20 61 62 6f 72 74 2e 20 24 11 51 04 0e 09 cd 05 00 ┆ntinue, or * to abort. $ Q ┆ 0x05af80…05afa0 0e 01 cd 05 00 fe 2a ca 4d 05 fe 23 c2 4e 04 21 8f 1b 0e 50 1e 20 73 23 0d c2 96 04 21 df 1b 0e ┆ * M # N ! P s# ! ┆ 0x05afa0…05afc0 30 1e 00 73 23 0d c2 a3 04 21 88 1a 4e 79 fe 05 da 32 05 c2 c7 04 c5 21 73 1a 11 8f 1b 01 05 00 ┆0 s# ! Ny 2 !s ┆ 0x05afc0…05afe0 cd 9b 01 c1 c3 32 05 fe 06 c2 de 04 c5 21 8f 1b 0e 05 1e 20 73 23 0d c2 d4 04 c1 c3 32 05 fe 07 ┆ 2 ! s# 2 ┆ 0x05afe0…05b000 c2 f9 04 c5 21 78 1a 11 8f 1b 01 0a 00 cd 9b 01 21 de 1b 36 57 c1 c3 32 05 fe 08 c2 0f 05 c5 21 ┆ !x ! 6W 2 !┆ 0x05b000…05b020 (24, 0, 9) 30 30 48 0d 0a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆00H ┆ 0x05b020…05b040 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆ ┆ […0x2…] 0x05b080…05b0a0 52 49 54 45 3a 09 4d 56 49 09 43 2c 57 52 49 54 45 46 09 3b 0d 0a 09 4a 4d 50 09 42 44 4f 53 09 ┆RITE: MVI C,WRITEF ; JMP BDOS ┆ 0x05b0a0…05b0c0 09 3b 0d 0a 0d 0a 4d 41 4b 45 3a 09 4d 56 49 09 43 2c 4d 41 4b 45 46 09 09 3b 0d 0a 09 4a 4d 50 ┆ ; MAKE: MVI C,MAKEF ; JMP┆ 0x05b0c0…05b0e0 09 42 44 4f 53 09 09 3b 0d 0a 0d 0a 53 45 54 44 4d 41 3a 09 4d 56 49 09 43 2c 53 44 4d 41 46 09 ┆ BDOS ; SETDMA: MVI C,SDMAF ┆ 0x05b0e0…05b100 09 3b 0d 0a 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d 0a 0d 0a 50 52 49 4e 54 3a 09 4d 56 49 09 43 ┆ ; JMP BDOS ; PRINT: MVI C┆ 0x05b100…05b120 2c 50 52 49 4e 54 46 09 3b 0d 0a 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d 0a 0d 0a 0d 0a 53 57 4f ┆,PRINTF ; JMP BDOS ; SWO┆ 0x05b120…05b140 50 3a 09 44 42 09 27 49 4e 53 45 52 54 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 54 ┆P: DB 'INSERT DISK AND TYPE <RET┆ 0x05b140…05b160 55 52 4e 3e 27 2c 33 36 0d 0a 0d 0a 41 46 4f 52 4d 3a 09 44 57 09 30 0d 0a 53 46 4f 52 4d 3a 09 ┆URN>',36 AFORM: DW 0 SFORM: ┆ 0x05b160…05b180 44 57 09 30 0d 0a 43 46 4f 52 4d 3a 20 20 44 57 09 30 0d 0a 43 41 44 44 52 3a 09 44 57 09 30 0d ┆DW 0 CFORM: DW 0 CADDR: DW 0 ┆ 0x05b180…05b1a0 0a 0d 0a 0d 0a 43 43 50 52 45 54 3a 20 44 57 09 30 0d 0a 0d 0a 44 46 43 42 3a 09 44 53 09 33 33 ┆ CCPRET: DW 0 DFCB: DS 33┆ 0x05b1a0…05b1c0 09 09 3b 20 44 45 53 54 49 4e 41 54 49 4f 4e 20 46 43 42 0d 0a 44 46 43 42 43 52 09 45 51 55 09 ┆ ; DESTINATION FCB DFCBCR EQU ┆ 0x05b1c0…05b1e0 44 46 43 42 2b 33 32 09 09 3b 0d 0a 0d 0a 09 44 53 09 33 31 09 09 3b 0d 0a 53 54 41 43 4b 3a 09 ┆DFCB+32 ; DS 31 ; STACK: ┆ 0x05b1e0…05b200 44 53 09 31 09 09 3b 20 4c 4f 43 41 4c 20 53 54 41 43 4b 0d 0a 0d 0a 0d 0a 09 45 4e 44 09 30 31 ┆DS 1 ; LOCAL STACK END 01┆ 0x05b200…05b220 (24, 0, 10) 56 09 3b 0d 0a 50 44 50 3a 09 4c 58 49 09 44 2c 44 44 53 50 45 43 3b 20 50 52 49 4e 54 20 44 45 ┆V ; PDP: LXI D,DDSPEC; PRINT DE┆ 0x05b220…05b240 53 54 49 4e 41 54 49 4f 4e 20 50 52 4f 4d 50 54 3b 0d 0a 09 43 41 4c 4c 09 50 52 49 4e 54 09 3b ┆STINATION PROMPT; CALL PRINT ;┆ 0x05b240…05b260 0d 0a 09 43 41 4c 4c 09 43 4f 4e 53 49 09 3b 20 47 45 54 20 44 45 53 54 49 4e 41 54 49 4f 4e 20 ┆ CALL CONSI ; GET DESTINATION ┆ 0x05b260…05b280 44 52 49 56 45 3b 0d 0a 09 4d 56 49 09 43 2c 30 09 3b 0d 0a 09 43 50 49 09 27 41 27 09 3b 0d 0a ┆DRIVE; MVI C,0 ; CPI 'A' ; ┆ 0x05b280…05b2a0 09 4a 5a 09 53 45 54 44 44 09 3b 0d 0a 09 43 50 49 09 27 42 27 09 3b 0d 0a 09 4a 4e 5a 09 50 44 ┆ JZ SETDD ; CPI 'B' ; JNZ PD┆ 0x05b2a0…05b2c0 50 09 3b 0d 0a 09 49 4e 52 09 43 09 3b 0d 0a 53 45 54 44 44 3a 09 4d 4f 56 09 41 2c 43 09 3b 0d ┆P ; INR C ; SETDD: MOV A,C ; ┆ 0x05b2c0…05b2e0 0a 09 53 54 41 09 44 44 52 49 56 09 3b 0d 0a 09 4c 48 4c 44 09 57 42 4f 4f 54 09 3b 20 42 43 3a ┆ STA DDRIV ; LHLD WBOOT ; BC:┆ 0x05b2e0…05b300 3d 20 46 4c 4f 50 50 59 20 46 4f 52 4d 41 54 53 3b 0d 0a 09 4c 58 49 09 44 2c 46 44 46 4f 52 4d ┆= FLOPPY FORMATS; LXI D,FDFORM┆ 0x05b300…05b320 3b 0d 0a 09 44 41 44 09 44 09 3b 0d 0a 09 4d 4f 56 09 42 2c 4d 09 3b 0d 0a 09 49 4e 58 09 48 09 ┆; DAD D ; MOV B,M ; INX H ┆ 0x05b320…05b340 3b 0d 0a 09 4d 4f 56 09 43 2c 4d 09 3b 0d 0a 09 4c 58 49 09 48 2c 53 44 52 49 56 09 3b 20 49 46 ┆; MOV C,M ; LXI H,SDRIV ; IF┆ 0x05b340…05b360 20 53 4f 55 52 43 45 20 44 52 49 56 45 20 3c 3e 0d 0a 09 43 4d 50 09 4d 09 3b 20 20 44 45 53 54 ┆ SOURCE DRIVE <> CMP M ; DEST┆ 0x05b360…05b380 49 4e 41 54 49 4f 4e 20 44 52 49 56 45 20 54 48 45 4e 0d 0a 09 4d 56 49 09 41 2c 30 09 3b 0d 0a ┆INATION DRIVE THEN MVI A,0 ; ┆ 0x05b380…05b3a0 09 4a 5a 09 53 45 54 44 46 09 3b 0d 0a 09 4d 4f 56 09 41 2c 42 09 3b 0d 0a 09 43 4d 50 09 43 09 ┆ JZ SETDF ; MOV A,B ; CMP C ┆ 0x05b3a0…05b3c0 3b 20 49 46 20 46 4f 52 4d 41 54 28 41 29 3c 3e 46 4f 52 4d 41 54 28 42 29 20 54 48 45 4e 0d 0a ┆; IF FORMAT(A)<>FORMAT(B) THEN ┆ 0x05b3c0…05b3e0 09 4c 58 49 09 44 2c 4e 4f 54 4f 4b 09 3b 0d 0a 09 43 4e 5a 09 46 49 4e 49 53 09 3b 20 20 45 58 ┆ LXI D,NOTOK ; CNZ FINIS ; EX┆ 0x05b3e0…05b400 49 54 28 4e 4f 54 20 41 4c 4c 4f 57 45 44 29 3b 0d 0a 09 50 55 53 48 09 42 09 3b 0d 0a 09 4c 58 ┆IT(NOT ALLOWED); PUSH B ; LX┆ 0x05b400…05b420 (24, 0, 11) 20 20 20 20 20 20 52 45 53 45 54 46 09 45 51 55 09 31 33 0d 0a 20 30 30 30 46 20 3d 20 20 20 20 ┆ RESETF EQU 13 000F = ┆ 0x05b420…05b440 20 20 20 20 20 4f 50 45 4e 46 09 45 51 55 09 31 35 0d 0a 20 30 30 31 30 20 3d 20 20 20 20 20 20 ┆ OPENF EQU 15 0010 = ┆ 0x05b440…05b460 20 20 20 43 4c 4f 53 45 46 09 45 51 55 09 31 36 0d 0a 20 30 30 31 33 20 3d 20 20 20 20 20 20 20 ┆ CLOSEF EQU 16 0013 = ┆ 0x05b460…05b480 20 20 44 45 4c 45 54 45 46 09 45 51 55 09 31 39 0d 0a 20 30 30 31 34 20 3d 20 20 20 20 20 20 20 ┆ DELETEF EQU 19 0014 = ┆ 0x05b480…05b4a0 20 20 52 45 41 44 46 09 45 51 55 09 32 30 0d 0a 20 30 30 31 35 20 3d 20 20 20 20 20 20 20 20 20 ┆ READF EQU 20 0015 = ┆ 0x05b4a0…05b4c0 57 52 49 54 45 46 09 45 51 55 09 32 31 0d 0a 20 30 30 31 36 20 3d 20 20 20 20 20 20 20 20 20 4d ┆WRITEF EQU 21 0016 = M┆ 0x05b4c0…05b4e0 41 4b 45 46 09 45 51 55 09 32 32 0d 0a 20 30 30 31 41 20 3d 20 20 20 20 20 20 20 20 20 53 44 4d ┆AKEF EQU 22 001A = SDM┆ 0x05b4e0…05b500 41 46 09 45 51 55 09 32 36 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 31 ┆AF EQU 26 01┆ 0x05b500…05b520 30 30 20 20 20 20 20 20 20 20 20 20 20 09 4f 52 47 09 54 50 41 0d 0a 20 20 20 20 20 20 20 20 20 ┆00 ORG TPA ┆ 0x05b520…05b540 20 20 20 20 20 20 20 0d 0a 20 30 31 30 30 20 45 31 20 20 20 20 20 20 20 20 09 50 4f 50 09 48 09 ┆ 0100 E1 POP H ┆ 0x05b540…05b560 09 3b 20 53 41 56 45 20 52 45 54 55 52 4e 20 54 4f 20 43 43 50 0d 0a 20 30 31 30 31 20 32 32 32 ┆ ; SAVE RETURN TO CCP 0101 222┆ 0x05b560…05b580 31 30 32 20 20 20 20 09 53 48 4c 44 09 43 43 50 52 45 54 09 09 3b 0d 0a 20 30 31 30 34 20 33 31 ┆102 SHLD CCPRET ; 0104 31┆ 0x05b580…05b5a0 36 33 30 32 20 20 20 20 09 4c 58 49 09 53 50 2c 53 54 41 43 4b 09 3b 20 53 45 54 20 4c 4f 43 41 ┆6302 LXI SP,STACK ; SET LOCA┆ 0x05b5a0…05b5c0 4c 20 53 54 41 43 4b 0d 0a 20 30 31 30 37 20 32 31 38 30 30 30 20 20 20 20 09 4c 58 49 09 48 2c ┆L STACK 0107 218000 LXI H,┆ 0x05b5c0…05b5e0 44 42 55 46 46 09 09 3b 20 50 41 44 20 43 4f 4d 4d 41 4e 44 20 42 55 46 46 45 52 0d 0a 20 30 31 ┆DBUFF ; PAD COMMAND BUFFER 01┆ 0x05b5e0…05b600 30 41 20 33 34 20 20 20 20 20 20 20 20 09 49 4e 52 09 4d 09 09 3b 0d 0a 20 30 31 30 42 20 35 45 ┆0A 34 INR M ; 010B 5E┆ 0x05b600…05b620 (24, 0, 12) ef 1a 11 8f 1b 01 50 00 cd 9b 01 c1 c3 32 05 fe 09 c2 25 05 c5 21 3f 1b 11 8f 1b 01 50 00 cd 9b ┆ P 2 % !? P ┆ 0x05b620…05b640 01 c1 c3 32 05 fe 1b ca 48 05 21 98 1b 06 02 cd 18 02 21 82 1a 46 21 8f 1b 3e 01 cd 75 0f 3a 88 ┆ 2 H ! ! F! > u : ┆ 0x05b640…05b660 1a 3c 32 88 1a c3 a9 04 af e1 d1 c1 c9 37 c3 49 05 c5 d5 e5 01 08 00 21 82 1a 70 21 88 1a 71 21 ┆ <2 7 I ! p! q!┆ 0x05b660…05b680 8e 1a 5e 3e ff bb cc 99 10 11 d3 18 0e 09 cd 05 00 21 88 1a 4e fe 1b ca c4 05 21 82 1a 46 21 8f ┆ ^> ! N ! F! ┆ 0x05b680…05b6a0 1b cd 06 10 c3 8a 05 0d 0a 24 11 87 05 0e 09 cd 05 00 21 8f 1b 0e 3e c5 e5 5e 0e 02 cd 05 00 e1 ┆ $ ! > ^ ┆ 0x05b6a0…05b6c0 c1 23 0d c2 97 05 21 d1 1b 0e 0e c5 e5 5e 0e 02 cd 05 00 e1 c1 23 0d c2 ab 05 3a 88 1a 3c 32 88 ┆ # ! ^ # : <2 ┆ 0x05b6c0…05b6e0 1a c3 71 05 c3 e4 05 0d 0a 50 72 65 73 73 20 61 6e 79 20 6b 65 79 20 74 6f 20 63 6f 6e 74 69 6e ┆ q Press any key to contin┆ 0x05b6e0…05b700 75 65 2e 24 11 c7 05 0e 09 cd 05 00 0e 01 cd 05 00 e1 d1 c1 c9 c5 d5 e5 cd c1 03 da f8 0b c3 33 ┆ue.$ 3┆ 0x05b700…05b720 06 0d 0a 50 6c 65 61 73 65 20 65 6e 74 65 72 20 6e 61 6d 65 20 6f 66 20 43 50 4d 20 66 69 6c 65 ┆ Please enter name of CPM file┆ 0x05b720…05b740 20 74 6f 20 62 65 20 63 6f 6e 76 65 72 74 65 64 3a 20 24 11 01 06 0e 09 cd 05 00 0e 0a 11 5e 1a ┆ to be converted: $ ^ ┆ 0x05b740…05b760 3e 0c 12 cd 05 00 21 60 1a 06 0c cd 98 02 21 5f 1a 4e 21 60 1a 06 00 09 36 20 21 ad 1a 0e 21 1e ┆> !` !_ N!` 6 ! ! ┆ 0x05b760…05b780 00 73 23 0d c2 61 06 11 60 1a c3 b9 06 36 00 23 e5 0e 0b 3e 20 77 23 0d c2 75 06 e1 0e 08 1a fe ┆ s# a ` 6 # > w# u ┆ 0x05b780…05b7a0 20 c2 88 06 13 c3 7e 06 1a fe 00 c8 fe 20 c8 fe 2e ca 9d 06 77 23 13 0d f2 88 06 37 c9 13 79 b7 ┆ ü . w# 7 y ┆ 0x05b7a0…05b7c0 ca a8 06 23 0d c2 a3 06 0e 03 1a fe 00 c8 fe 20 c8 77 23 13 0d c2 aa 06 c9 21 ad 1a cd 6d 06 eb ┆ # w# ! m ┆ 0x05b7c0…05b7e0 c3 f9 06 0d 0a 50 6c 65 61 73 65 20 65 6e 74 65 72 20 49 42 4d 20 64 61 74 61 20 73 65 74 20 6e ┆ Please enter IBM data set n┆ 0x05b7e0…05b800 61 6d 65 20 77 68 65 72 65 20 64 61 74 61 20 69 73 20 74 6f 20 62 65 20 24 11 c3 06 0e 09 cd 05 ┆ame where data is to be $ ┆ 0x05b800…05b820 (24, 0, 13) 3a 09 4c 58 49 09 44 2c 44 46 43 42 09 09 3b 0d 0a 09 43 41 4c 4c 09 57 52 49 54 45 09 09 3b 20 ┆: LXI D,DFCB ; CALL WRITE ; ┆ 0x05b820…05b840 57 52 49 54 45 20 52 45 43 4f 52 44 3a 0d 0a 09 4c 58 49 09 44 2c 53 50 41 43 45 09 09 3b 0d 0a ┆WRITE RECORD: LXI D,SPACE ; ┆ 0x05b840…05b860 09 4f 52 41 09 41 09 09 3b 0d 0a 09 43 4e 5a 09 46 49 4e 49 53 09 09 3b 0d 0a 09 50 4f 50 09 44 ┆ ORA A ; CNZ FINIS ; POP D┆ 0x05b860…05b880 09 09 3b 20 55 50 44 41 54 45 20 42 55 46 41 44 52 0d 0a 09 4c 58 49 09 48 2c 31 32 38 09 09 3b ┆ ; UPDATE BUFADR LXI H,128 ;┆ 0x05b880…05b8a0 0d 0a 09 44 41 44 09 44 09 09 3b 0d 0a 09 58 43 48 47 09 09 09 3b 0d 0a 09 50 55 53 48 09 44 09 ┆ DAD D ; XCHG ; PUSH D ┆ 0x05b8a0…05b8c0 09 3b 0d 0a 09 43 41 4c 4c 09 53 45 54 44 4d 41 09 09 3b 0d 0a 09 4c 58 49 09 48 2c 53 45 43 43 ┆ ; CALL SETDMA ; LXI H,SECC┆ 0x05b8c0…05b8e0 4e 54 09 3b 20 53 45 43 54 4f 52 43 4f 55 4e 54 3a 3d 53 45 43 54 4f 49 52 43 4f 55 4e 54 2d 31 ┆NT ; SECTORCOUNT:=SECTOIRCOUNT-1┆ 0x05b8e0…05b900 3b 0d 0a 09 44 43 52 09 4d 09 09 3b 0d 0a 09 4a 4e 5a 09 57 44 41 54 41 09 09 3b 20 49 46 20 53 ┆; DCR M ; JNZ WDATA ; IF S┆ 0x05b900…05b920 45 43 54 4f 52 43 4f 55 4e 54 3e 30 20 54 48 45 4e 20 47 4f 54 4f 20 57 52 49 54 45 52 45 43 3b ┆ECTORCOUNT>0 THEN GOTO WRITEREC;┆ 0x05b920…05b940 0d 0a 09 50 4f 50 09 44 09 09 3b 0d 0a 09 4c 58 49 09 44 2c 44 46 43 42 09 09 3b 0d 0a 09 43 41 ┆ POP D ; LXI D,DFCB ; CA┆ 0x05b940…05b960 4c 4c 09 43 4c 4f 53 45 09 09 3b 20 43 4c 4f 53 45 20 44 45 53 54 49 4e 41 54 49 4f 4e 20 46 49 ┆LL CLOSE ; CLOSE DESTINATION FI┆ 0x05b960…05b980 4c 45 3b 0d 0a 09 4c 58 49 09 44 2c 57 52 50 52 4f 54 09 3b 0d 0a 09 49 4e 52 09 41 09 09 3b 0d ┆LE; LXI D,WRPROT ; INR A ; ┆ 0x05b980…05b9a0 0a 09 43 5a 09 46 49 4e 49 53 09 09 3b 0d 0a 09 4c 58 49 09 44 2c 4e 4f 52 4d 41 4c 09 3b 0d 0a ┆ CZ FINIS ; LXI D,NORMAL ; ┆ 0x05b9a0…05b9c0 09 43 41 4c 4c 09 50 52 49 4e 54 09 09 3b 0d 0a 09 4c 58 49 09 44 2c 53 57 4f 50 59 09 09 3b 0d ┆ CALL PRINT ; LXI D,SWOPY ; ┆ 0x05b9c0…05b9e0 0a 09 43 41 4c 4c 09 50 52 49 4e 54 09 09 3b 0d 0a 09 43 41 4c 4c 09 43 4f 4e 53 49 09 09 3b 20 ┆ CALL PRINT ; CALL CONSI ; ┆ 0x05b9e0…05ba00 57 41 49 54 20 44 49 53 4b 20 43 48 41 4e 47 45 44 20 42 41 43 4b 3b 0d 0a 09 43 41 4c 4c 09 52 ┆WAIT DISK CHANGED BACK; CALL R┆ 0x05ba00…05ba20 (24, 0, 14) 49 09 44 2c 43 52 4c 46 09 3b 0d 0a 09 43 41 4c 4c 09 50 52 49 4e 54 09 3b 0d 0a 09 4c 58 49 09 ┆I D,CRLF ; CALL PRINT ; LXI ┆ 0x05ba20…05ba40 44 2c 4d 53 44 49 53 4b 3b 0d 0a 09 43 41 4c 4c 09 50 52 49 4e 54 09 3b 20 57 41 49 54 20 46 4f ┆D,MSDISK; CALL PRINT ; WAIT FO┆ 0x05ba40…05ba60 52 20 53 4f 55 52 43 45 20 44 49 53 4b 3a 0d 0a 09 43 41 4c 4c 09 43 4f 4e 53 49 09 3b 0d 0a 09 ┆R SOURCE DISK: CALL CONSI ; ┆ 0x05ba60…05ba80 4c 58 49 09 44 2c 4d 44 44 49 53 4b 3b 0d 0a 09 43 41 4c 4c 09 50 52 49 4e 54 09 3b 20 57 41 49 ┆LXI D,MDDISK; CALL PRINT ; WAI┆ 0x05ba80…05baa0 54 20 46 4f 52 20 44 45 53 54 49 4e 41 54 49 4f 4e 20 44 49 53 4b 3a 0d 0a 09 43 41 4c 4c 09 43 ┆T FOR DESTINATION DISK: CALL C┆ 0x05baa0…05bac0 4f 4e 53 49 09 3b 0d 0a 09 50 4f 50 09 42 09 3b 0d 0a 09 4d 56 49 09 41 2c 31 09 3b 0d 0a 53 45 ┆ONSI ; POP B ; MVI A,1 ; SE┆ 0x05bac0…05bae0 54 44 46 3a 09 53 54 41 09 44 46 4c 41 47 09 3b 0d 0a 09 4d 4f 56 09 41 2c 43 09 3b 0d 0a 09 43 ┆TDF: STA DFLAG ; MOV A,C ; C┆ 0x05bae0…05bb00 50 49 09 53 53 38 09 3b 20 28 46 49 52 53 54 20 54 52 41 43 4b 2c 4c 41 53 54 20 54 52 41 43 4b ┆PI SS8 ; (FIRST TRACK,LAST TRACK┆ 0x05bb00…05bb20 2c 0d 0a 09 4a 4e 5a 09 53 45 54 44 38 09 3b 20 20 53 45 43 54 4f 52 53 20 50 52 20 54 52 41 43 ┆, JNZ SETD8 ; SECTORS PR TRAC┆ 0x05bb20…05bb40 4b 29 20 3a 3d 0d 0a 09 4d 56 49 09 41 2c 30 09 3b 0d 0a 09 53 54 41 09 46 54 52 4b 09 3b 0d 0a ┆K) := MVI A,0 ; STA FTRK ; ┆ 0x05bb40…05bb60 09 4d 56 49 09 41 2c 37 36 09 3b 20 20 49 46 20 46 4f 52 4d 41 54 3d 20 38 22 20 53 53 20 54 48 ┆ MVI A,76 ; IF FORMAT= 8" SS TH┆ 0x05bb60…05bb80 45 4e 0d 0a 09 53 54 41 09 4c 54 52 4b 09 3b 20 20 20 28 30 2c 37 36 2c 32 36 29 20 20 20 20 20 ┆EN STA LTRK ; (0,76,26) ┆ 0x05bb80…05bba0 20 20 45 4c 53 45 0d 0a 09 4d 56 49 09 41 2c 32 36 09 3b 0d 0a 09 53 54 41 09 53 50 54 09 3b 0d ┆ ELSE MVI A,26 ; STA SPT ; ┆ 0x05bba0…05bbc0 0a 09 4a 4d 50 09 53 45 54 43 54 09 3b 20 20 0d 0a 53 45 54 44 38 3a 09 43 50 49 09 44 44 38 09 ┆ JMP SETCT ; SETD8: CPI DD8 ┆ 0x05bbc0…05bbe0 3b 20 20 49 46 20 46 4f 52 4d 41 54 3d 20 38 22 20 44 44 20 54 48 45 4e 0d 0a 09 4a 4e 5a 09 53 ┆; IF FORMAT= 8" DD THEN JNZ S┆ 0x05bbe0…05bc00 45 54 35 09 3b 20 20 20 28 31 2c 36 31 2c 31 32 30 29 20 20 20 20 20 20 45 4c 53 45 0d 0a 09 4d ┆ET5 ; (1,61,120) ELSE M┆ 0x05bc00…05bc20 (24, 0, 15) 20 20 20 20 20 20 20 20 09 4d 4f 56 09 45 2c 4d 09 09 3b 0d 0a 20 30 31 30 43 20 33 34 20 20 20 ┆ MOV E,M ; 010C 34 ┆ 0x05bc20…05bc40 20 20 20 20 20 09 49 4e 52 09 4d 09 09 3b 0d 0a 20 30 31 30 44 20 31 36 30 30 20 20 20 20 20 20 ┆ INR M ; 010D 1600 ┆ 0x05bc40…05bc60 09 4d 56 49 09 44 2c 30 09 09 3b 0d 0a 20 30 31 30 46 20 31 39 20 20 20 20 20 20 20 20 09 44 41 ┆ MVI D,0 ; 010F 19 DA┆ 0x05bc60…05bc80 44 09 44 09 09 3b 0d 0a 20 30 31 31 30 20 33 36 32 30 20 20 20 20 20 20 09 4d 56 49 09 4d 2c 27 ┆D D ; 0110 3620 MVI M,'┆ 0x05bc80…05bca0 20 27 09 09 3b 0d 0a 20 30 31 31 32 20 32 41 30 31 30 30 20 20 20 20 09 4c 48 4c 44 09 57 42 4f ┆ ' ; 0112 2A0100 LHLD WBO┆ 0x05bca0…05bcc0 4f 54 09 09 3b 20 53 41 56 45 20 46 44 20 46 4f 52 4d 41 54 53 0d 0a 20 30 31 31 35 20 31 31 33 ┆OT ; SAVE FD FORMATS 0115 113┆ 0x05bcc0…05bce0 34 30 30 20 20 20 20 09 4c 58 49 09 44 2c 46 44 46 4f 52 4d 09 3b 0d 0a 20 30 31 31 38 20 31 39 ┆400 LXI D,FDFORM ; 0118 19┆ 0x05bce0…05bd00 20 20 20 20 20 20 20 20 09 44 41 44 09 44 09 09 3b 0d 0a 20 30 31 31 39 20 32 32 31 39 30 32 20 ┆ DAD D ; 0119 221902 ┆ 0x05bd00…05bd20 20 20 20 09 53 48 4c 44 09 41 46 4f 52 4d 09 09 3b 0d 0a 20 30 31 31 43 20 37 45 20 20 20 20 20 ┆ SHLD AFORM ; 011C 7E ┆ 0x05bd20…05bd40 20 20 20 09 4d 4f 56 09 41 2c 4d 09 09 3b 0d 0a 20 30 31 31 44 20 33 32 31 42 30 32 20 20 20 20 ┆ MOV A,M ; 011D 321B02 ┆ 0x05bd40…05bd60 09 53 54 41 09 53 46 4f 52 4d 09 09 3b 0d 0a 20 30 31 32 30 20 32 33 20 20 20 20 20 20 20 20 09 ┆ STA SFORM ; 0120 23 ┆ 0x05bd60…05bd80 49 4e 58 09 48 09 09 3b 0d 0a 20 30 31 32 31 20 37 45 20 20 20 20 20 20 20 20 09 4d 4f 56 09 41 ┆INX H ; 0121 7E MOV A┆ 0x05bd80…05bda0 2c 4d 09 09 3b 0d 0a 20 30 31 32 32 20 33 32 31 43 30 32 20 20 20 20 09 53 54 41 09 53 46 4f 52 ┆,M ; 0122 321C02 STA SFOR┆ 0x05bda0…05bdc0 4d 2b 31 09 09 3b 0d 0a 20 30 31 32 35 20 32 41 31 42 30 32 20 20 20 20 09 4c 48 4c 44 09 53 46 ┆M+1 ; 0125 2A1B02 LHLD SF┆ 0x05bdc0…05bde0 4f 52 4d 09 09 3b 0d 0a 20 30 31 32 38 20 32 32 31 44 30 32 20 20 20 20 09 53 48 4c 44 09 43 46 ┆ORM ; 0128 221D02 SHLD CF┆ 0x05bde0…05be00 4f 52 4d 09 09 3b 0d 0a 20 30 31 32 42 20 32 31 38 30 30 30 20 20 20 20 09 4c 58 49 09 48 2c 44 ┆ORM ; 012B 218000 LXI H,D┆ 0x05be00…05be20 (24, 1, 1) 00 c3 0e 07 77 72 69 74 74 65 6e 3a 20 24 11 04 07 0e 09 cd 05 00 0e 0a 11 4b 1a 3e 11 12 cd 05 ┆ written: $ K > ┆ 0x05be20…05be40 00 21 4d 1a 06 11 cd 98 02 01 08 00 21 82 1a 70 21 88 1a 71 21 8f 1b cd 06 10 da f8 0b 21 94 1b ┆ !M ! p! q! ! ┆ 0x05be40…05be60 0e 11 1e 20 73 23 0d c2 44 07 06 00 21 4c 1a 4e 21 4d 1a 11 94 1b cd 9b 01 c3 8c 07 0d 0a 50 6c ┆ s# D !L N!M Pl┆ 0x05be60…05be80 65 61 73 65 20 65 6e 74 65 72 20 72 65 63 6f 72 64 20 6c 65 6e 67 74 68 20 66 6f 72 20 49 42 4d ┆ease enter record length for IBM┆ 0x05be80…05bea0 20 64 61 74 61 20 73 65 74 2e 20 24 11 5c 07 0e 09 cd 05 00 0e 0a 11 6d 1a 3e 03 12 cd 05 00 21 ┆ data set. $ Ø m > !┆ 0x05bea0…05bec0 6e 1a 4e 21 6f 1a 06 00 09 36 20 c3 c9 07 11 00 00 eb 1a d6 30 a7 f8 fe 0a 3f d8 13 29 e5 29 29 ┆n N!o 6 0 ? ) ))┆ 0x05bec0…05bee0 c1 09 4f 06 00 09 c3 b2 07 21 6f 1a cd ae 07 7d af bc c2 df 07 7d b7 ca df 07 fe 81 da 36 08 c3 ┆ O !o å å 6 ┆ 0x05bee0…05bf00 0e 08 0d 0a 07 52 65 63 6f 72 64 20 6c 65 6e 67 74 68 20 6d 75 73 74 20 62 65 20 62 65 74 77 65 ┆ Record length must be betwe┆ 0x05bf00…05bf20 65 6e 20 31 20 61 6e 64 20 31 32 38 2e 24 11 e2 07 0e 09 cd 05 00 c3 2b 08 20 20 50 6c 65 61 73 ┆en 1 and 128.$ + Pleas┆ 0x05bf20…05bf40 65 20 72 65 65 6e 74 65 72 2e 24 11 19 08 0e 09 cd 05 00 c3 59 07 32 aa 1a 21 a7 1b 06 03 cd 18 ┆e reenter.$ Y 2 ! ┆ 0x05bf40…05bf60 02 3e 01 32 83 1a 32 89 1a af 32 a7 1a 32 b3 1b 21 b1 1b cd ae 07 7d 32 85 1a 21 b4 1b cd ae 07 ┆ > 2 2 2 2 ! å2 ! ┆ 0x05bf60…05bf80 7d 32 8d 1a cd 38 0c af 32 a5 1a 21 00 00 22 a2 1a 21 a5 1a 46 21 a4 1a 4e 2a 98 1a eb 2a 9a 1a ┆å2 8 2 ! " ! F! N* * ┆ 0x05bf80…05bfa0 cd fc 0b da f3 09 fe 1a ca f3 09 fe 0d ca 95 08 fe 0a c2 cb 08 cd fc 0b da f3 09 fe 1a ca f3 09 ┆ ┆ 0x05bfa0…05bfc0 fe 0d ca 95 08 fe 0a ca 95 08 f5 22 9a 1a 21 a5 1a 70 cd e8 08 da f7 0b 21 a5 1a 46 21 a4 1a 4e ┆ " ! p ! F! N┆ 0x05bfc0…05bfe0 2a 98 1a eb 2a 9a 1a f1 c3 86 08 f5 af b9 c2 e1 08 22 9a 1a 2a a2 1a 23 22 a2 1a 2a 9a 1a c3 ab ┆* * " * #" * ┆ 0x05bfe0…05c000 08 f1 12 0d 13 c3 80 08 c5 d5 e5 eb 0c 0d ca f7 08 36 20 23 c3 ed 08 22 98 1a 3a ab 1a 21 aa 1a ┆ 6 # " : ! ┆ 0x05c000…05c020 (24, 1, 2) 21 95 1d cd 17 12 da 64 0f 11 ce 1a 0e 10 cd 05 00 3e ff 32 8f 1a e1 d1 c1 c9 c3 42 0f 0d 0a 07 ┆! d > 2 B ┆ 0x05c020…05c040 46 69 6c 65 20 6e 6f 74 20 66 6f 75 6e 64 2e 20 50 72 65 73 73 20 61 6e 79 20 6b 65 79 20 74 6f ┆File not found. Press any key to┆ 0x05c040…05c060 20 24 11 1d 0f 0e 09 cd 05 00 c3 57 0f 63 6f 6e 74 69 6e 75 65 2e 24 11 4d 0f 0e 09 cd 05 00 0e ┆ $ W continue.$ M ┆ 0x05c060…05c080 01 cd 05 00 11 ce 1a 0e 10 cd 05 00 3e ff 32 8f 1a 37 c3 16 0f c5 d5 e5 32 ac 1a 22 90 1a 21 86 ┆ > 2 7 2 " ! ┆ 0x05c080…05c0a0 1a 70 21 8a 1a 71 2a 90 1a 11 0f 1c 06 80 cd 93 14 21 8e 1a 5e 3e ff bb cc 99 10 0e 0e cd 05 00 ┆ p! q* ! ^> ┆ 0x05c0a0…05c0c0 21 86 1a 4e 2a 01 00 f5 3e 1b 85 6f 3e 00 8c 67 f1 22 b5 0f cd 00 00 21 8a 1a 6e 26 00 11 98 20 ┆! N* > o> g " ! n& ┆ 0x05c0c0…05c0e0 19 4e 2a 01 00 f5 3e 1e 85 6f 3e 00 8c 67 f1 22 d3 0f cd 00 00 01 0f 1c 2a 01 00 f5 3e 21 85 6f ┆ N* > o> g " * >! o┆ 0x05c0e0…05c100 3e 00 8c 67 f1 22 e9 0f cd 00 00 21 ac 1a 4e 2a 01 00 f5 3e 27 85 6f 3e 00 8c 67 f1 22 00 10 cd ┆> g " ! N* >' o> g " ┆ 0x05c100…05c120 00 00 e1 d1 c1 c9 c5 d5 e5 22 92 1a 21 87 1a 70 21 8b 1a 71 21 8e 1a 5e 3e ff bb cc 99 10 0e 0e ┆ " ! p! q! ^> ┆ 0x05c120…05c140 cd 05 00 21 87 1a 4e 2a 01 00 f5 3e 1b 85 6f 3e 00 8c 67 f1 22 38 10 cd 00 00 21 8b 1a 6e 26 00 ┆ ! N* > o> g "8 ! n& ┆ 0x05c140…05c160 11 98 20 19 4e 2a 01 00 f5 3e 1e 85 6f 3e 00 8c 67 f1 22 56 10 cd 00 00 01 0f 1c 2a 01 00 f5 3e ┆ N* > o> g "V * >┆ 0x05c160…05c180 21 85 6f 3e 00 8c 67 f1 22 6c 10 cd 00 00 2a 01 00 f5 3e 24 85 6f 3e 00 8c 67 f1 22 7f 10 cd 00 ┆! o> g "l * >$ o> g " ┆ 0x05c180…05c1a0 00 b7 c2 95 10 2a 92 1a 11 0f 1c eb 06 80 cd ae 14 e1 d1 c1 c9 37 c3 91 10 c3 c8 10 0d 0a 57 68 ┆ * 7 Wh┆ 0x05c1a0…05c1c0 69 63 68 20 64 72 69 76 65 20 77 69 6c 6c 20 74 68 65 20 49 42 4d 20 64 69 73 6b 65 74 74 65 20 ┆ich drive will the IBM diskette ┆ 0x05c1c0…05c1e0 62 65 20 6f 6e 3f 20 24 11 9c 10 0e 09 cd 05 00 0e 0a 11 48 1a 3e 01 12 cd 05 00 21 4a 1a 06 01 ┆be on? $ H > !J ┆ 0x05c1e0…05c200 cd 98 02 3a 4a 1a d6 41 da f3 10 21 a8 1a 46 b8 da 3e 11 c3 1d 11 0d 0a 07 44 72 69 76 65 20 6d ┆ :J A ! F > Drive m┆ 0x05c200…05c220 (24, 1, 3) 6e 2e 0a 0a 0a 24 0d 0a 0a 0a 0a 0a 0a 0d 0a 09 09 20 20 20 20 20 20 20 20 20 20 4c 69 66 65 62 ┆n. $ Lifeb┆ 0x05c220…05c240 6f 61 74 20 41 73 73 6f 63 69 61 74 65 73 0d 0a 09 09 20 49 42 4d 2f 43 50 4d 20 44 69 73 6b 65 ┆oat Associates IBM/CPM Diske┆ 0x05c240…05c260 74 74 65 20 55 74 69 6c 69 74 79 20 56 65 72 73 69 6f 6e 20 31 2e 31 0d 0a 09 09 09 20 53 65 72 ┆tte Utility Version 1.1 Ser┆ 0x05c260…05c280 69 61 6c 20 4e 75 6d 62 65 72 20 4c 42 2d 31 31 31 31 0d 0a 09 09 09 20 20 43 6f 70 79 72 69 67 ┆ial Number LB-1111 Copyrig┆ 0x05c280…05c2a0 68 74 28 63 29 20 31 39 37 39 0d 0a 0a 0a 0a 09 20 20 20 20 20 20 20 20 20 20 20 41 73 73 75 6d ┆ht(c) 1979 Assum┆ 0x05c2a0…05c2c0 69 6e 67 20 73 74 61 6e 64 61 72 64 20 43 50 4d 20 32 2e 30 20 42 49 4f 53 2e 20 20 20 20 20 20 ┆ing standard CPM 2.0 BIOS. ┆ 0x05c2c0…05c2e0 20 0d 0a 0a 0d 0a 0a 09 09 4f 70 74 69 6f 6e 09 46 75 6e 63 74 69 6f 6e 20 74 6f 20 62 65 20 70 ┆ Option Function to be p┆ 0x05c2e0…05c300 65 72 66 6f 72 6d 65 64 0d 0a 09 09 45 09 54 65 72 6d 69 6e 61 74 65 20 70 72 6f 67 72 61 6d 20 ┆erformed E Terminate program ┆ 0x05c300…05c320 61 6e 64 20 72 65 74 75 72 6e 20 63 6f 6e 74 72 6f 6c 20 74 6f 20 43 50 4d 0d 0a 09 09 46 09 49 ┆and return control to CPM F I┆ 0x05c320…05c340 6e 69 74 69 61 6c 69 7a 65 20 64 69 72 65 63 74 6f 72 79 20 6f 6e 20 49 42 4d 20 64 69 73 6b 65 ┆nitialize directory on IBM diske┆ 0x05c340…05c360 74 74 65 0d 0a 09 09 44 09 44 69 73 70 6c 61 79 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 6f ┆tte D Display the directory o┆ 0x05c360…05c380 6e 20 61 6e 20 49 42 4d 20 64 69 73 6b 65 74 74 65 0d 0a 09 09 43 09 43 6f 6e 76 65 72 74 20 61 ┆n an IBM diskette C Convert a┆ 0x05c380…05c3a0 20 43 50 4d 20 66 69 6c 65 20 74 6f 20 49 42 4d 20 66 6f 72 6d 61 74 0d 0a 09 09 49 09 43 6f 6e ┆ CPM file to IBM format I Con┆ 0x05c3a0…05c3c0 76 65 72 74 20 61 6e 20 49 42 4d 20 66 69 6c 65 20 74 6f 20 43 50 4d 20 66 6f 72 6d 61 74 0d 0a ┆vert an IBM file to CPM format ┆ 0x05c3c0…05c3e0 0a 09 09 45 6e 74 65 72 20 6f 70 74 69 6f 6e 20 3a 20 24 0d 0a 0a 0d 0a 20 20 20 20 20 20 20 20 ┆ Enter option : $ ┆ 0x05c3e0…05c400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 54 41 52 54 20 20 45 4e 44 20 20 ┆ START END ┆ 0x05c400…05c420 (24, 1, 4) 67 68 69 7c 2c 25 5f 3e 3f 70 71 72 73 74 75 76 77 78 60 3a 23 40 27 3d 22 80 61 62 63 64 65 66 ┆ghiø,%_>?pqrstuvwx`:#@'=" abcdef┆ 0x05c420…05c440 67 68 69 8a 8b 8c 8d 8e 8f 90 6a 6b 6c 6d 6e 6f 70 71 72 9a 9b 9c 9d 9e 9f a0 7e 73 74 75 76 77 ┆ghi jklmnopqr üstuvw┆ 0x05c440…05c460 78 79 7a aa ab ac ad ae af b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 ba bb bc 5d be bf 7b 41 42 43 44 45 46 ┆xyz Å æABCDEF┆ 0x05c460…05c480 47 48 49 ca cb cc cd ce cf 7d 4a 4b 4c 4d 4e 4f 50 51 52 da db dc dd de df 5c e1 53 54 55 56 57 ┆GHI åJKLMNOPQR Ø STUVW┆ 0x05c480…05c4a0 58 59 5a ea eb ec ed ee ef 30 31 32 33 34 35 36 37 38 39 fa fb fc fd fe ff 00 01 02 03 04 05 06 ┆XYZ 0123456789 ┆ 0x05c4a0…05c4c0 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 40 5a 7f 7b 5b 6c 50 ┆ @Z æÆlP┆ 0x05c4c0…05c4e0 7d 4d 5d 5c 4e 6b 60 4b 61 f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 7a 5e 4c 7e 6e 6f 7c c1 c2 c3 c4 c5 c6 ┆åMÅØNk`Ka z^Lünoø ┆ 0x05c4e0…05c500 c7 c8 c9 d1 d2 d3 d4 d5 d6 d7 d8 d9 e2 e3 e4 e5 e6 e7 e8 e9 ad e0 bd 5f 6d 79 81 82 83 84 85 86 ┆ _my ┆ 0x05c500…05c520 87 88 89 91 92 93 94 95 96 97 98 99 a2 a3 a4 a5 a6 a7 a8 a9 c0 6a d0 a1 07 00 01 02 03 04 05 06 ┆ j ┆ 0x05c520…05c540 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 40 5a 7f 7b 5b 6c 50 ┆ @Z æÆlP┆ 0x05c540…05c560 7d 4d 5d 5c 4e 6b 60 4b 61 f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 7a 5e 4c 7e 6e 6f 7c c1 c2 c3 c4 c5 c6 ┆åMÅØNk`Ka z^Lünoø ┆ 0x05c560…05c580 c7 c8 c9 d1 d2 d3 d4 d5 d6 d7 d8 d9 e2 e3 e4 e5 e6 e7 e8 e9 ad e0 bd 5f 6d 79 81 82 83 84 85 86 ┆ _my ┆ 0x05c580…05c5a0 87 88 89 91 92 93 94 95 96 97 98 99 a2 a3 a4 a5 a6 a7 a8 a9 c0 6a d0 a1 07 01 02 03 04 05 06 07 ┆ j ┆ 0x05c5a0…05c5c0 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 00 0d 09 16 05 12 01 0e 0a 17 06 13 02 ┆ ┆ 0x05c5c0…05c5e0 0f 0b 18 07 14 03 10 0c 19 08 15 04 11 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 ┆ ┆ 0x05c5e0…05c600 14 15 16 17 18 19 1a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x05c600…05c620 (24, 1, 5) 46 90 da 11 09 32 ab 1a 3a aa 1a 32 a4 1a c3 50 09 3a a7 1a 3c ca 55 09 21 89 1a 4e 21 83 1a 46 ┆F 2 : 2 P : < U ! N! F┆ 0x05c620…05c640 21 95 1d 3e 00 cd 75 0f 3a 85 1a b8 c2 3b 09 3a 8d 1a b9 c2 3b 09 3e ff 32 a7 1a 0c 79 fe 1b c2 ┆! > u : ; : ; > 2 y ┆ 0x05c640…05c660 45 09 0e 01 04 21 89 1a 71 21 83 1a 70 cd 38 0c b7 e1 d1 c1 c9 c3 8c 09 0d 0a 07 49 42 4d 20 64 ┆E ! q! p 8 IBM d┆ 0x05c660…05c680 69 73 6b 65 74 74 65 20 69 73 20 66 75 6c 6c 2e 20 20 53 70 6c 69 74 20 74 68 65 20 69 6e 70 75 ┆iskette is full. Split the inpu┆ 0x05c680…05c6a0 74 20 66 69 6c 65 20 69 6e 74 6f 24 11 58 09 0e 09 cd 05 00 c3 bf 09 20 6d 75 6c 74 69 70 6c 65 ┆t file into$ X multiple┆ 0x05c6a0…05c6c0 20 73 6d 61 6c 6c 65 72 20 66 69 6c 65 73 2c 20 61 6e 64 20 74 72 79 20 61 67 61 69 6e 2e 24 11 ┆ smaller files, and try again.$ ┆ 0x05c6c0…05c6e0 97 09 0e 09 cd 05 00 c3 e6 09 0d 0a 50 72 65 73 73 20 61 6e 79 20 6b 65 79 20 74 6f 20 63 6f 6e ┆ Press any key to con┆ 0x05c6e0…05c700 74 69 6e 75 65 24 11 ca 09 0e 09 cd 05 00 e1 d1 c1 37 c9 3a ab 1a 21 aa 1a 46 90 da 04 0a cd e8 ┆tinue$ 7 : ! F ┆ 0x05c700…05c720 08 c3 f3 09 cd e8 08 3a 89 1a 3d d2 14 0a 3e 1a 21 83 1a 35 21 dc 1b 06 02 cd 18 02 3a 83 1a 21 ┆ : = > ! 5! : !┆ 0x05c720…05c740 d9 1b 06 02 cd 18 02 21 82 1a 46 21 88 1a 4e 21 b3 1b 36 30 21 8f 1b 3e 01 cd 75 0f 11 d3 18 0e ┆ ! F! N! 60! > u ┆ 0x05c740…05c760 09 cd 05 00 c3 4a 0a 0d 0a 24 11 47 0a 0e 09 cd 05 00 21 8f 1b 0e 3e c5 e5 5e 0e 02 cd 05 00 e1 ┆ J $ G ! > ^ ┆ 0x05c760…05c780 c1 23 0d c2 57 0a 21 d1 1b 0e 0e c5 e5 5e 0e 02 cd 05 00 e1 c1 23 0d c2 6b 0a c3 a6 0a 0d 0a 41 ┆ # W ! ^ # k A┆ 0x05c780…05c7a0 62 6f 76 65 20 49 42 4d 20 64 61 74 61 20 73 65 74 20 63 72 65 61 74 65 64 20 62 79 20 63 6f 6e ┆bove IBM data set created by con┆ 0x05c7a0…05c7c0 76 65 72 74 2e 24 11 7d 0a 0e 09 cd 05 00 2a a2 1a 7c b5 ca b4 0b c3 bd 0a 0d 0a 07 24 11 b9 0a ┆vert.$ å * ø $ ┆ 0x05c7c0…05c7e0 0e 09 cd 05 00 c3 ee 0a c5 d5 e5 01 f6 ff 11 ff ff 09 13 da d1 0a 01 0a 00 09 eb 7c b5 c4 c8 0a ┆ ø ┆ 0x05c7e0…05c800 7b c6 30 5f 0e 02 5f cd 05 00 e1 d1 c1 c9 2a a2 1a cd c8 0a c3 03 0b 20 69 6e 70 75 74 20 6c 69 ┆æ 0_ _ * input li┆ 0x05c800…05c820 (24, 1, 6) 75 73 74 20 62 65 20 69 6e 20 74 68 65 20 72 61 6e 67 65 20 6f 66 20 41 20 74 6f 20 24 11 f6 10 ┆ust be in the range of A to $ ┆ 0x05c820…05c840 0e 09 cd 05 00 3a a9 1a 0e 02 5f cd 05 00 c3 33 11 2e 24 11 31 11 0e 09 cd 05 00 c3 80 11 21 8f ┆ : _ 3 .$ 1 ! ┆ 0x05c840…05c860 1a 5e bb c2 9f 11 c3 78 11 0d 0a 07 49 42 4d 20 64 72 69 76 65 20 6d 75 73 74 20 62 65 20 64 69 ┆ ^ x IBM drive must be di┆ 0x05c860…05c880 66 66 65 72 65 6e 74 20 66 72 6f 6d 20 43 50 4d 20 64 72 69 76 65 2e 24 11 49 11 0e 09 cd 05 00 ┆fferent from CPM drive.$ I ┆ 0x05c880…05c8a0 c3 94 11 20 50 6c 65 61 73 65 20 72 65 65 6e 74 65 72 2e 24 11 83 11 0e 09 cd 05 00 c3 99 10 32 ┆ Please reenter.$ 2┆ 0x05c8a0…05c8c0 8e 1a c3 cc 11 0d 0a 07 50 6c 65 61 73 65 20 70 6c 61 63 65 20 49 42 4d 20 64 69 73 6b 65 74 74 ┆ Please place IBM diskett┆ 0x05c8c0…05c8e0 65 20 69 6e 20 64 72 69 76 65 20 24 11 a5 11 0e 09 cd 05 00 3a 8e 1a c6 41 0e 02 5f cd 05 00 c3 ┆e in drive $ : A _ ┆ 0x05c8e0…05c900 05 12 3a 2e 20 54 68 65 6e 20 70 72 65 73 73 20 61 6e 79 20 6b 65 79 20 74 6f 20 63 6f 6e 74 69 ┆ :. Then press any key to conti┆ 0x05c900…05c920 6e 75 65 2e 24 11 e2 11 0e 09 cd 05 00 0e 01 cd 05 00 21 8e 1a 5e c9 c5 d5 e5 22 94 1a c5 e1 22 ┆nue.$ ! ^ " "┆ 0x05c920…05c940 9e 1a 21 8f 1a 5e 3e ff bb c2 41 12 cd f2 12 2a 9e 1a 1c 73 eb d5 0e 13 cd 05 00 d1 0e 16 cd 05 ┆ ! ^> A * s ┆ 0x05c940…05c960 00 2a 94 1a 11 91 1c 01 80 00 cd 9b 01 11 91 1c 0e 1a cd 05 00 2a 9e 1a eb 0e 15 cd 05 00 b7 ca ┆ * * ┆ 0x05c960…05c980 63 12 37 e1 d1 c1 c9 c5 d5 e5 22 96 1a c5 e1 22 a0 1a 21 8f 1a 5e 3e ff bb c2 8e 12 cd f2 12 2a ┆c 7 " " ! ^> *┆ 0x05c980…05c9a0 a0 1a 1c 73 eb 0e 0f cd 05 00 3c ca b4 12 11 91 1c 0e 1a cd 05 00 2a a0 1a eb 0e 14 cd 05 00 b7 ┆ s < * ┆ 0x05c9a0…05c9c0 c2 ee 12 2a 96 1a eb 21 91 1c 01 80 00 cd 9b 01 e1 d1 c1 c9 c3 e6 12 0d 0a 07 43 50 2f 4d 20 66 ┆ * ! CP/M f┆ 0x05c9c0…05c9e0 69 6c 65 20 6e 6f 74 20 66 6f 75 6e 64 2e 20 20 43 6f 6e 76 65 72 73 69 6f 6e 20 61 62 61 6e 64 ┆ile not found. Conversion aband┆ 0x05c9e0…05ca00 6f 6e 65 64 2e 24 11 b7 12 0e 09 cd 05 00 37 c3 b0 12 c3 21 13 0d 0a 57 68 69 63 68 20 64 72 69 ┆oned.$ 7 ! Which dri┆ 0x05ca00…05ca20 (24, 1, 7) 20 20 20 20 20 56 53 20 20 43 52 45 41 20 20 20 20 20 20 20 20 20 20 45 58 50 49 52 20 20 20 20 ┆ VS CREA EXPIR ┆ 0x05ca20…05ca40 45 4e 44 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 4c 4f 43 4b ┆END BLOCK┆ 0x05ca40…05ca60 20 20 20 4f 46 20 20 20 20 4f 46 20 20 20 20 20 20 20 4f 45 20 20 54 49 4f 4e 20 20 20 20 20 20 ┆ OF OF OE TION ┆ 0x05ca60…05ca80 20 20 20 20 41 54 49 4f 4e 20 20 20 20 4f 46 20 0d 0a 20 20 20 20 44 41 54 41 20 53 45 54 20 4e ┆ ATION OF DATA SET N┆ 0x05ca80…05caa0 41 4d 45 20 20 20 20 20 4c 4e 47 54 48 20 45 58 54 4e 54 20 45 58 54 4e 54 20 20 20 20 20 20 4c ┆AME LNGTH EXTNT EXTNT L┆ 0x05caa0…05cac0 51 20 20 44 41 54 45 20 20 20 20 20 20 20 20 20 20 20 44 41 54 45 20 20 20 44 41 54 41 24 20 20 ┆Q DATE DATE DATA$ ┆ 0x05cac0…05cae0 20 20 20 20 20 41 73 73 75 6d 69 6e 67 20 73 74 61 6e 64 61 72 64 20 43 50 4d 20 31 2e 34 20 42 ┆ Assuming standard CPM 1.4 B┆ 0x05cae0…05cb00 49 4f 53 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 73 73 75 6d 69 6e 67 20 73 74 61 6e 64 ┆IOS. Assuming stand┆ 0x05cb00…05cb20 61 72 64 20 43 50 4d 20 32 2e 30 20 42 49 4f 53 2e 20 20 20 20 20 20 20 41 73 73 75 6d 69 6e 67 ┆ard CPM 2.0 BIOS. Assuming┆ 0x05cb20…05cb40 20 43 50 4d 20 32 2e 30 20 42 49 4f 53 20 77 69 74 68 20 73 65 63 74 6f 72 20 64 65 62 6c 6f 63 ┆ CPM 2.0 BIOS with sector debloc┆ 0x05cb40…05cb60 6b 69 6e 67 2e 01 00 03 00 00 46 00 00 20 20 20 20 20 4f 45 20 20 54 49 4f 4e 20 20 20 20 00 00 ┆king. F OE TION ┆ 0x05cb60…05cb80 20 20 20 20 41 54 49 4f 4e 20 20 20 20 00 00 20 0d 0a 20 45 52 4d 41 50 56 4f 4c 31 49 42 4d 49 ┆ ATION ERMAPVOL1IBMI┆ 0x05cb80…05cba0 52 44 00 00 00 00 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆RD ┆ 0x05cba0…05cbc0 00 00 00 00 00 00 00 00 10 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ P ┆ 0x05cbc0…05cbe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x05cbe0…05cc00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 48 44 52 31 20 44 41 54 41 20 20 20 20 20 20 20 20 ┆ HDR1 DATA ┆ 0x05cc00…05cc20 (24, 1, 8) 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 00 00 00 00 0a 00 40 02 17 ┆AAAAAAAAAAAAAAAAAAAAAAA @ ┆ 0x05cc20…05cc40 02 b3 20 00 02 95 02 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 ┆ AAAAAAAAAAAAAAAAAAAAAAAAA┆ 0x05cc40…05cc60 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 3c ca 5e 21 eb e1 73 23 72 b7 c3 cc 1f af 12 ┆AAAAAAAAAAAAAAAAA< ^! s#r ┆ 0x05cc60…05cc80 37 e1 c3 cc 1f 3e ff c5 47 e5 21 22 00 19 cd 95 1f 7d e6 7f 4f 29 7c 21 0c 00 19 be ca a0 21 e5 ┆7 > G !" å O)ø! ! ┆ 0x05cc80…05cca0 f5 21 21 00 19 7e b7 c4 0f 20 36 00 f1 e1 77 cd d0 1f 0f 3c c2 a0 21 78 b7 37 ca a9 21 cd 3a 20 ┆ !! ü 6 w < !x 7 ! : ┆ 0x05cca0…05ccc0 21 20 00 19 71 23 7e b0 77 e1 f5 eb cd d9 1f 1a eb f1 c1 c9 11 5c 27 af 12 cd f1 22 23 fe 2b ca ┆! q#ü w Ø' "# + ┆ 0x05ccc0…05cce0 b9 21 fe 2d c2 cd 21 3e ff 12 c3 b9 21 2b 11 ff ff eb 22 5a 27 eb cd f1 22 fe 23 23 ca 0f 22 2b ┆ ! - !> !+ "Z' " ## "+┆ 0x05cce0…05cd00 cd 29 22 11 01 00 d2 0f 22 1b 7e cd 29 22 d2 0a 22 23 e5 62 6b 19 29 19 29 da 15 22 d6 30 5f 16 ┆ )" " ü )" "# bk ) ) " 0_ ┆ 0x05cd00…05cd20 87 88 89 91 92 93 94 95 96 97 98 99 a2 a3 a4 a5 a6 a7 a8 a9 c0 6a d0 a1 07 00 01 02 03 04 05 06 ┆ j ┆ 0x05cd20…05cd40 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 40 5a 7f 7b 5b 6c 50 ┆ @Z æÆlP┆ 0x05cd40…05cd60 7d 4d 5d 5c 4e 6b 60 4b 61 f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 7a 5e 4c 7e 6e 6f 7c c1 c2 c3 c4 c5 c6 ┆åMÅØNk`Ka z^Lünoø ┆ 0x05cd60…05cd80 c7 c8 c9 d1 d2 d3 d4 d5 d6 d7 d8 d9 e2 e3 e4 e5 e6 e7 e8 e9 ad e0 bd 5f 6d 79 81 82 83 84 85 86 ┆ _my ┆ 0x05cd80…05cda0 87 88 89 91 92 93 94 95 96 97 98 99 a2 a3 a4 a5 a6 a7 a8 a9 c0 6a d0 a1 07 01 02 03 04 05 06 07 ┆ j ┆ 0x05cda0…05cdc0 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 00 0d 09 16 05 12 01 0e 0a 17 06 13 02 ┆ ┆ 0x05cdc0…05cde0 0f 0b 18 07 14 03 10 0c 19 08 15 04 11 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 ┆ ┆ 0x05cde0…05ce00 14 15 16 17 18 19 1a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x05ce00…05ce20 (24, 1, 9) 6e 65 24 11 f7 0a 0e 09 cd 05 00 2a a2 1a 2d ca 27 0b c3 1c 0b 73 20 77 65 72 65 24 11 15 0b 0e ┆ne$ * - ' s were$ ┆ 0x05ce20…05ce40 09 cd 05 00 c3 37 0b c3 2f 0b 20 77 61 73 24 11 2a 0b 0e 09 cd 05 00 c3 60 0b 20 67 72 65 61 74 ┆ 7 / was$ * ` great┆ 0x05ce40…05ce60 65 72 20 74 68 61 6e 20 6f 75 74 70 75 74 20 72 65 63 6f 72 64 20 6c 65 6e 67 74 68 2e 20 20 24 ┆er than output record length. $┆ 0x05ce60…05ce80 11 3a 0b 0e 09 cd 05 00 c3 6e 0b 0d 0a 24 11 6b 0b 0e 09 cd 05 00 c3 ac 0b 54 68 65 20 6c 6f 6e ┆ : n $ k The lon┆ 0x05ce80…05cea0 67 20 6c 69 6e 65 73 20 77 65 72 65 20 73 70 61 6e 6e 65 64 20 61 63 72 6f 73 73 20 6f 75 74 70 ┆g lines were spanned across outp┆ 0x05cea0…05cec0 75 74 20 72 65 63 6f 72 64 73 2e 24 11 79 0b 0e 09 cd 05 00 c3 d6 0b 0d 0a 20 20 50 72 65 73 73 ┆ut records.$ y Press┆ 0x05cec0…05cee0 20 61 6e 79 20 6b 65 79 20 74 6f 20 63 6f 6e 74 69 6e 75 65 2e 24 11 b7 0b 0e 09 cd 05 00 0e 01 ┆ any key to continue.$ ┆ 0x05cee0…05cf00 cd 05 00 af f5 11 ad 1a 0e 10 cd 05 00 3e ff 32 8f 1a f1 e1 d1 c1 c9 f1 37 c3 e4 0b af b8 c2 05 ┆ > 2 7 ┆ 0x05cf00…05cf20 0c cd 0b 0c d8 7e 23 05 e6 7f c9 c5 d5 e5 21 13 1d 01 ad 1a cd 67 12 da 34 0c 3d ca 34 0c 21 13 ┆ ü# ! g 4 = 4 ! ┆ 0x05cf20…05cf40 1d 22 9a 1a 3e 80 32 a5 1a e1 d1 c1 21 a5 1a 46 21 13 1d c9 e1 d1 c1 c9 c5 d5 e5 21 95 1d 0e 80 ┆ " > 2 ! F! ! ┆ 0x05cf40…05cf60 1e 00 73 23 0d c2 42 0c 21 95 1d 22 98 1a 21 aa 1a 7e 32 a4 1a 3e 80 96 32 ab 1a e1 d1 c1 c9 c5 ┆ s# B ! " ! ü2 > 2 ┆ 0x05cf60…05cf80 d5 e5 01 08 00 21 82 1a 70 21 88 1a 71 c3 ab 0c 0d 0a 50 6c 65 61 73 65 20 65 6e 74 65 72 20 64 ┆ ! p! q Please enter d┆ 0x05cf80…05cfa0 61 74 61 20 73 65 74 20 6e 61 6d 65 20 6f 66 20 49 42 4d 20 66 69 6c 65 20 74 6f 20 62 65 20 63 ┆ata set name of IBM file to be c┆ 0x05cfa0…05cfc0 6f 6e 76 65 72 74 65 64 3a 20 24 11 70 0c 0e 09 cd 05 00 0e 0a 11 4b 1a 3e 11 12 cd 05 00 21 4d ┆onverted: $ p K > !M┆ 0x05cfc0…05cfe0 1a 06 11 cd 98 02 c3 ef 0c 0d 0a 50 6c 65 61 73 65 20 65 6e 74 65 72 20 6e 61 6d 65 20 6f 66 20 ┆ Please enter name of ┆ 0x05cfe0…05d000 43 50 4d 20 66 69 6c 65 20 77 68 65 72 65 24 11 c9 0c 0e 09 cd 05 00 c3 13 0d 20 64 61 74 61 20 ┆CPM file where$ data ┆ 0x05d000…05d020 (24, 1, 10) 76 65 20 77 69 6c 6c 20 74 68 65 20 43 50 4d 20 64 69 73 6b 65 74 74 65 20 62 65 20 6f 6e 3f 20 ┆ve will the CPM diskette be on? ┆ 0x05d020…05d040 24 11 f5 12 0e 09 cd 05 00 0e 0a 11 48 1a 3e 01 12 cd 05 00 21 4a 1a 06 01 cd 98 02 3a 4a 1a d6 ┆$ H > !J :J ┆ 0x05d040…05d060 41 da 4c 13 21 a8 1a 46 b8 da 97 13 c3 76 13 0d 0a 07 44 72 69 76 65 20 6d 75 73 74 20 62 65 20 ┆A L ! F v Drive must be ┆ 0x05d060…05d080 69 6e 20 74 68 65 20 72 61 6e 67 65 20 6f 66 20 41 20 74 6f 20 24 11 4f 13 0e 09 cd 05 00 3a a9 ┆in the range of A to $ O : ┆ 0x05d080…05d0a0 1a 0e 02 5f cd 05 00 c3 8c 13 2e 24 11 8a 13 0e 09 cd 05 00 c3 d9 13 21 8e 1a 5e bb c2 f8 13 c3 ┆ _ .$ ! ^ ┆ 0x05d0a0…05d0c0 d1 13 0d 0a 07 43 50 4d 20 64 72 69 76 65 20 6d 75 73 74 20 62 65 20 64 69 66 66 65 72 65 6e 74 ┆ CPM drive must be different┆ 0x05d0c0…05d0e0 20 66 72 6f 6d 20 49 42 4d 20 64 72 69 76 65 2e 24 11 a2 13 0e 09 cd 05 00 c3 ed 13 20 50 6c 65 ┆ from IBM drive.$ Ple┆ 0x05d0e0…05d100 61 73 65 20 72 65 65 6e 74 65 72 2e 24 11 dc 13 0e 09 cd 05 00 c3 f2 12 32 8f 1a c3 24 14 0d 0a ┆ase reenter.$ 2 $ ┆ 0x05d100…05d120 50 6c 65 61 73 65 20 70 6c 61 63 65 20 43 50 4d 20 64 69 73 6b 65 74 74 65 20 69 6e 20 64 72 69 ┆Please place CPM diskette in dri┆ 0x05d120…05d140 76 65 20 24 11 fe 13 0e 09 cd 05 00 3a 8f 1a c6 41 0e 02 5f cd 05 00 c3 5d 14 3a 2e 20 54 68 65 ┆ve $ : A _ Å :. The┆ 0x05d140…05d160 6e 20 70 72 65 73 73 20 61 6e 79 20 6b 65 79 20 74 6f 20 63 6f 6e 74 69 6e 75 65 2e 24 11 3a 14 ┆n press any key to continue.$ : ┆ 0x05d160…05d180 0e 09 cd 05 00 0e 01 cd 05 00 0e 0d cd 05 00 21 8f 1a 5e c9 c5 d5 e5 21 95 1d 0e 80 1e 1a 73 23 ┆ ! ^ ! s#┆ 0x05d180…05d1a0 0d c2 7e 14 21 95 1d 22 98 1a 3e 80 32 a4 1a e1 d1 c1 c9 c5 d5 e5 7e 23 e5 c5 21 99 1f 4f 06 00 ┆ ü ! " > 2 ü# ! O ┆ 0x05d1a0…05d1c0 09 7e 12 13 c1 e1 05 c2 96 14 e1 d1 c1 c9 c5 d5 e5 7e 23 e5 c5 21 99 1e 4f 06 00 09 7e 12 13 c1 ┆ ü ü# ! O ü ┆ 0x05d1c0…05d1e0 e1 05 c2 b1 14 e1 d1 c1 c9 0a 0a 0d 0a 09 09 20 20 20 20 20 20 20 20 20 20 4c 69 66 65 62 6f 61 ┆ Lifeboa┆ 0x05d1e0…05d200 74 20 41 73 73 6f 63 69 61 74 65 73 0d 0a 09 09 20 49 42 4d 2f 43 50 4d 20 44 69 73 6b 65 74 74 ┆t Associates IBM/CPM Diskett┆ 0x05d200…05d220 (24, 1, 11) 20 20 20 20 20 20 20 30 38 30 20 30 31 30 30 31 20 37 33 30 32 36 20 20 20 20 20 20 20 20 20 20 ┆ 080 01001 73026 ┆ 0x05d220…05d240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 31 30 30 31 20 44 ┆ 01001 D┆ 0x05d240…05d260 44 52 31 20 44 41 54 41 30 39 20 20 20 20 20 20 20 20 20 20 20 20 20 30 38 30 20 37 34 30 30 31 ┆DR1 DATA09 080 74001┆ 0x05d260…05d280 20 37 33 30 32 36 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ 73026 ┆ 0x05d280…05d2a0 20 20 20 20 20 20 20 20 20 37 34 30 30 31 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ 74001 ┆ 0x05d2a0…05d2c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x1…] 0x05d2e0…05d300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 48 44 52 31 20 44 41 54 41 20 20 20 20 20 20 20 20 ┆ HDR1 DATA ┆ 0x05d300…05d320 20 20 20 20 20 20 20 30 38 30 20 30 31 30 30 31 20 37 33 30 32 36 20 20 20 20 20 20 20 20 20 20 ┆ 080 01001 73026 ┆ 0x05d320…05d340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 31 30 30 31 20 44 ┆ 01001 D┆ 0x05d340…05d360 44 52 31 20 44 41 54 41 30 39 20 20 20 20 20 20 20 20 20 20 20 20 20 30 38 30 20 37 34 30 30 31 ┆DR1 DATA09 080 74001┆ 0x05d360…05d380 20 37 33 30 32 36 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ 73026 ┆ 0x05d380…05d3a0 20 20 20 20 20 20 20 20 20 37 34 30 30 31 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ 74001 ┆ 0x05d3a0…05d3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x1…] 0x05d3e0…05d400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 48 44 52 31 20 44 41 54 41 20 20 20 20 20 20 20 20 ┆ HDR1 DATA ┆ 0x05d400…05d420 (24, 1, 12) 0d 0a 63 70 6d 6c 09 65 71 75 09 24 2d 63 70 6d 62 09 3b 6c 65 6e 67 74 68 20 28 69 6e 20 62 79 ┆ cpml equ $-cpmb ;length (in by┆ 0x05d420…05d440 74 65 73 29 20 6f 66 20 63 70 6d 20 73 79 73 74 65 6d 0d 0a 6e 73 65 63 74 73 09 65 71 75 09 63 ┆tes) of cpm system nsects equ c┆ 0x05d440…05d460 70 6d 6c 2f 31 32 38 09 3b 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 20 74 6f 20 6c 6f ┆pml/128 ;number of sectors to lo┆ 0x05d460…05d480 61 64 0d 0a 6f 66 66 73 65 74 09 65 71 75 09 32 09 3b 6e 75 6d 62 65 72 20 6f 66 20 64 69 73 6b ┆ad offset equ 2 ;number of disk┆ 0x05d480…05d4a0 20 74 72 61 63 6b 73 20 75 73 65 64 20 62 79 20 63 70 2f 6d 0d 0a 63 64 69 73 6b 09 65 71 75 09 ┆ tracks used by cp/m cdisk equ ┆ 0x05d4a0…05d4c0 30 30 30 34 68 09 3b 61 64 64 72 65 73 73 20 6f 66 20 6c 61 73 74 20 6c 6f 67 67 65 64 20 64 69 ┆0004h ;address of last logged di┆ 0x05d4c0…05d4e0 73 6b 20 6f 6e 20 77 61 72 6d 20 73 74 61 72 74 0d 0a 62 75 66 66 09 65 71 75 09 30 30 38 30 68 ┆sk on warm start buff equ 0080h┆ 0x05d4e0…05d500 09 3b 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 0d 0a 72 65 74 72 79 09 ┆ ;default buffer address retry ┆ 0x05d500…05d520 65 71 75 09 31 30 09 3b 6d 61 78 20 72 65 74 72 69 65 73 20 6f 6e 20 64 69 73 6b 20 69 2f 6f 20 ┆equ 10 ;max retries on disk i/o ┆ 0x05d520…05d540 62 65 66 6f 72 65 20 65 72 72 6f 72 0d 0a 3b 0d 0a 3b 09 70 65 72 66 6f 72 6d 20 66 6f 6c 6c 6f ┆before error ; ; perform follo┆ 0x05d540…05d560 77 69 6e 67 20 66 75 6e 63 74 69 6f 6e 73 0d 0a 3b 09 62 6f 6f 74 09 63 6f 6c 64 20 73 74 61 72 ┆wing functions ; boot cold star┆ 0x05d560…05d580 74 0d 0a 3b 09 77 62 6f 6f 74 09 77 61 72 6d 20 73 74 61 72 74 20 28 73 61 76 65 20 69 2f 6f 20 ┆t ; wboot warm start (save i/o ┆ 0x05d580…05d5a0 62 79 74 65 29 0d 0a 3b 09 28 62 6f 6f 74 20 61 6e 64 20 77 62 6f 6f 74 20 61 72 65 20 74 68 65 ┆byte) ; (boot and wboot are the┆ 0x05d5a0…05d5c0 20 73 61 6d 65 20 66 6f 72 20 6d 64 73 29 0d 0a 3b 09 63 6f 6e 73 74 09 63 6f 6e 73 6f 6c 65 20 ┆ same for mds) ; const console ┆ 0x05d5c0…05d5e0 73 74 61 74 75 73 0d 0a 3b 09 09 72 65 67 2d 61 20 3d 20 30 30 20 69 66 20 6e 6f 20 63 68 61 72 ┆status ; reg-a = 00 if no char┆ 0x05d5e0…05d600 61 63 74 65 72 20 72 65 61 64 79 0d 0a 3b 09 09 72 65 67 2d 61 20 3d 20 66 66 20 69 66 20 63 68 ┆acter ready ; reg-a = ff if ch┆ 0x05d600…05d620 (24, 1, 13) 69 73 20 74 6f 20 62 65 20 77 72 69 74 74 65 6e 3a 20 24 11 fa 0c 0e 09 cd 05 00 0e 0a 11 5e 1a ┆is to be written: $ ^ ┆ 0x05d620…05d640 3e 0c 12 cd 05 00 21 60 1a 06 0c cd 98 02 21 5f 1a 4e 21 60 1a 06 00 09 36 20 21 ce 1a 0e 21 1e ┆> !` !_ N!` 6 ! ! ┆ 0x05d640…05d660 00 73 23 0d c2 41 0d 11 60 1a 21 ce 1a cd 6d 06 eb 21 88 1a 4e fe 1b ca 1a 0f 21 82 1a 46 21 8f ┆ s# A ` ! m ! N ! F! ┆ 0x05d660…05d680 1b cd 06 10 da 64 0f 21 4c 1a 4e 11 94 1b 21 4d 1a cd b7 02 ca 81 0d 3a 88 1a 3c 32 88 1a c3 51 ┆ d !L N !M : <2 Q┆ 0x05d680…05d6a0 0d 11 d3 18 0e 09 cd 05 00 c3 8f 0d 0d 0a 24 11 8c 0d 0e 09 cd 05 00 21 8f 1b 0e 3e c5 e5 5e 0e ┆ $ ! > ^ ┆ 0x05d6a0…05d6c0 02 cd 05 00 e1 c1 23 0d c2 9c 0d 21 d1 1b 0e 0e c5 e5 5e 0e 02 cd 05 00 e1 c1 23 0d c2 b0 0d c3 ┆ # ! ^ # ┆ 0x05d6c0…05d6e0 e3 0d 0d 0a 50 72 6f 63 65 73 73 69 6e 67 20 61 62 6f 76 65 20 49 42 4d 20 64 61 74 61 20 73 65 ┆ Processing above IBM data se┆ 0x05d6e0…05d700 74 2e 24 11 c2 0d 0e 09 cd 05 00 3e 20 32 ad 1b 32 db 1b 21 a7 1b cd ae 07 7d 32 aa 1a 21 ab 1b ┆t.$ > 2 2 ! å2 ! ┆ 0x05d700…05d720 cd ae 07 7d 32 83 1a 21 ae 1b cd ae 07 7d 32 89 1a 21 d9 1b cd ae 07 7d 32 84 1a 21 dc 1b cd ae ┆ å2 ! å2 ! å2 ! ┆ 0x05d720…05d740 07 7d 32 8c 1a cd 74 14 21 89 1a 4e 21 83 1a 46 21 13 1d cd 06 10 da 64 0f 21 13 1d 22 9a 1a 2a ┆ å2 t ! N! F! d ! " *┆ 0x05d740…05d760 9a 1a 22 9c 1a 3a aa 1a 4f 06 00 09 22 9a 1a 11 94 1d 7c ba c2 59 0e 7d bb d2 d9 0e 2a 9c 1a 11 ┆ " : O " ø Y å * ┆ 0x05d760…05d780 17 1e cd 9b 01 21 17 1e 22 9c 1a eb 2b 3a aa 1a 4f 3e 20 be c2 7c 0e 2b 0d c2 73 0e 23 0c 36 0d ┆ ! " +: O> ø + s # 6 ┆ 0x05d780…05d7a0 23 0c 36 0a 21 a5 1a 71 21 a5 1a 4e 06 00 3a a4 1a b9 d2 96 0e 4f 21 a6 1a 71 2a 98 1a eb 2a 9c ┆# 6 ! q! N : O! q* * ┆ 0x05d7a0…05d7c0 1a cd 9b 01 22 9c 1a eb 22 98 1a 3a a4 1a 21 a6 1a 4e 91 32 a4 1a c2 c8 0e 01 ce 1a 21 95 1d cd ┆ " " : ! N 2 ! ┆ 0x05d7c0…05d7e0 17 12 da 64 0f cd 74 14 21 a6 1a 4e 3a a5 1a 91 32 a5 1a c2 88 0e c3 3f 0e 21 89 1a 34 3e 1a be ┆ d t ! N: 2 ? ! 4> ┆ 0x05d7e0…05d800 d2 e9 0e 36 01 21 83 1a 34 21 83 1a 3a 84 1a be c2 28 0e 21 89 1a 3a 8c 1a be d2 28 0e 01 ce 1a ┆ 6 ! 4! : ( ! : ( ┆ 0x05d800…05d820 (24, 1, 14) 65 20 55 74 69 6c 69 74 79 20 56 65 72 73 69 6f 6e 20 31 2e 31 0d 0a 09 09 09 20 53 65 72 69 61 ┆e Utility Version 1.1 Seria┆ 0x05d820…05d840 6c 20 4e 75 6d 62 65 72 20 4c 42 2d 30 31 31 37 0d 0a 09 09 09 20 20 43 6f 70 79 72 69 67 68 74 ┆l Number LB-0117 Copyright┆ 0x05d840…05d860 28 63 29 20 31 39 37 39 0d 0a 0a 0a 09 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 61 20 67 ┆(c) 1979 This program is a g┆ 0x05d860…05d880 65 6e 65 72 61 6c 20 49 42 4d 2f 43 50 4d 20 64 69 73 6b 65 74 74 65 20 75 74 69 6c 69 74 79 2e ┆eneral IBM/CPM diskette utility.┆ 0x05d880…05d8a0 20 49 74 0d 0a 09 70 65 72 66 6f 72 6d 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 66 75 6e ┆ It performs the following fun┆ 0x05d8a0…05d8c0 63 74 69 6f 6e 73 3a 0d 0a 0a 09 09 31 29 09 46 6f 72 6d 61 74 20 61 6e 20 49 42 4d 20 64 69 73 ┆ctions: 1) Format an IBM dis┆ 0x05d8c0…05d8e0 6b 65 74 74 65 20 64 69 72 65 63 74 6f 72 79 0d 0a 09 09 32 29 09 44 69 73 70 6c 61 79 20 61 6e ┆kette directory 2) Display an┆ 0x05d8e0…05d900 20 49 42 4d 20 64 69 73 6b 65 74 74 65 20 64 69 72 65 63 74 6f 72 79 0d 0a 09 09 33 29 09 52 65 ┆ IBM diskette directory 3) Re┆ 0x05d900…05d920 61 64 20 61 20 43 50 4d 20 66 69 6c 65 2c 20 63 6f 6e 76 65 72 74 20 69 74 20 74 6f 20 49 42 4d ┆ad a CPM file, convert it to IBM┆ 0x05d920…05d940 20 66 6f 72 6d 61 74 20 61 6e 64 20 77 72 69 74 65 0d 0a 09 09 09 69 74 20 6f 6e 20 61 6e 20 49 ┆ format and write it on an I┆ 0x05d940…05d960 42 4d 20 64 69 73 6b 65 74 74 65 0d 0a 09 09 34 29 09 52 65 61 64 20 61 6e 20 49 42 4d 20 66 69 ┆BM diskette 4) Read an IBM fi┆ 0x05d960…05d980 6c 65 2c 20 63 6f 6e 76 65 72 74 20 69 74 20 74 6f 20 43 50 4d 20 66 6f 72 6d 61 74 20 61 6e 64 ┆le, convert it to CPM format and┆ 0x05d980…05d9a0 20 77 72 69 74 65 0d 0a 09 09 09 69 74 20 6f 6e 20 61 20 43 50 4d 20 64 69 73 6b 65 74 74 65 0d ┆ write it on a CPM diskette ┆ 0x05d9a0…05d9c0 0a 0a 09 54 68 65 20 70 72 6f 67 72 61 6d 20 77 69 6c 6c 20 61 6c 77 61 79 73 20 66 6f 72 6d 61 ┆ The program will always forma┆ 0x05d9c0…05d9e0 74 20 61 6e 20 49 42 4d 20 64 69 73 6b 65 74 74 65 20 62 65 66 6f 72 65 20 77 72 69 74 69 6e 67 ┆t an IBM diskette before writing┆ 0x05d9e0…05da00 20 6f 6e 20 69 74 2e 0d 0a 0a 09 50 72 65 73 73 20 61 6e 79 20 6b 65 79 20 74 6f 20 62 65 67 69 ┆ on it. Press any key to begi┆ 0x05da00…05da20 (24, 1, 15) 20 20 20 20 20 20 20 30 38 30 20 30 31 30 30 31 20 37 33 30 32 36 20 20 20 20 20 20 20 20 20 20 ┆ 080 01001 73026 ┆ 0x05da20…05da40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 31 30 30 31 20 44 ┆ 01001 D┆ 0x05da40…05da60 44 52 31 20 44 41 54 41 30 39 20 20 20 20 20 20 20 20 20 20 20 20 20 30 38 30 20 37 34 30 30 31 ┆DR1 DATA09 080 74001┆ 0x05da60…05da80 20 37 33 30 32 36 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ 73026 ┆ 0x05da80…05daa0 20 20 20 20 20 20 20 20 20 37 34 30 30 31 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ 74001 ┆ 0x05daa0…05dac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x1…] 0x05dae0…05db00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 48 44 52 31 20 44 41 54 41 20 20 20 20 20 20 20 20 ┆ HDR1 DATA ┆ 0x05db00…05db20 20 20 20 20 20 20 20 30 38 30 20 30 31 30 30 31 20 37 33 30 32 36 20 20 20 20 20 20 20 20 20 20 ┆ 080 01001 73026 ┆ 0x05db20…05db40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 31 30 30 31 20 44 ┆ 01001 D┆ 0x05db40…05db60 44 52 31 20 44 41 54 41 30 39 20 20 20 20 20 20 20 20 20 20 20 20 20 30 38 30 20 37 34 30 30 31 ┆DR1 DATA09 080 74001┆ 0x05db60…05db80 20 37 33 30 32 36 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ 73026 ┆ 0x05db80…05dba0 20 20 20 20 20 20 20 20 20 37 34 30 30 31 20 00 00 00 00 00 00 00 00 00 00 00 01 02 03 04 05 06 ┆ 74001 ┆ 0x05dba0…05dbc0 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 ┆ !"#$%&┆ 0x05dbc0…05dbe0 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f 20 41 42 43 44 45 46 ┆'()*+,-./0123456789:;<=>? ABCDEF┆ 0x05dbe0…05dc00 47 48 49 4a 2e 3c 28 2b 4f 26 51 52 53 54 55 56 57 58 59 21 24 2a 29 3b 5e 2d 2f 62 63 64 65 66 ┆GHIJ.<(+O&QRSTUVWXY!$*);^-/bcdef┆ 0x05dc00…05dc20 (25, 0, 1) 61 72 61 63 74 65 72 20 72 65 61 64 79 0d 0a 3b 09 63 6f 6e 69 6e 09 63 6f 6e 73 6f 6c 65 20 63 ┆aracter ready ; conin console c┆ 0x05dc20…05dc40 68 61 72 61 63 74 65 72 20 69 6e 20 28 72 65 73 75 6c 74 20 69 6e 20 72 65 67 2d 61 29 0d 0a 3b ┆haracter in (result in reg-a) ;┆ 0x05dc40…05dc60 09 63 6f 6e 6f 75 74 09 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 6f 75 74 20 28 63 ┆ conout console character out (c┆ 0x05dc60…05dc80 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 6c 69 73 74 09 6c 69 73 74 20 6f 75 74 20 28 ┆har in reg-c) ; list list out (┆ 0x05dc80…05dca0 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 70 75 6e 63 68 09 70 75 6e 63 68 20 6f 75 ┆char in reg-c) ; punch punch ou┆ 0x05dca0…05dcc0 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 72 65 61 64 65 72 09 70 61 70 65 ┆t (char in reg-c) ; reader pape┆ 0x05dcc0…05dce0 72 20 74 61 70 65 20 72 65 61 64 65 72 20 69 6e 20 28 72 65 73 75 6c 74 20 74 6f 20 72 65 67 2d ┆r tape reader in (result to reg-┆ 0x05dce0…05dd00 61 29 0d 0a 3b 09 68 6f 6d 65 09 6d 6f 76 65 20 74 6f 20 74 72 61 63 6b 20 30 30 0d 0a 3b 0d 0a ┆a) ; home move to track 00 ; ┆ 0x05dd00…05dd20 3b 09 28 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 61 6c 6c 73 20 73 65 74 2d 75 70 20 74 68 ┆; (the following calls set-up th┆ 0x05dd20…05dd40 65 20 69 6f 20 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 20 66 6f 72 20 74 68 65 0d 0a 3b 09 ┆e io parameter block for the ; ┆ 0x05dd40…05dd60 6d 64 73 2c 20 77 68 69 63 68 20 69 73 20 75 73 65 64 20 74 6f 20 70 65 72 66 6f 72 6d 20 73 75 ┆mds, which is used to perform su┆ 0x05dd60…05dd80 62 73 65 71 75 65 6e 74 20 72 65 61 64 73 20 61 6e 64 20 77 72 69 74 65 73 29 0d 0a 3b 09 73 65 ┆bsequent reads and writes) ; se┆ 0x05dd80…05dda0 6c 64 73 6b 09 73 65 6c 65 63 74 20 64 69 73 6b 20 67 69 76 65 6e 20 62 79 20 72 65 67 2d 63 20 ┆ldsk select disk given by reg-c ┆ 0x05dda0…05ddc0 28 30 2c 31 2c 32 2e 2e 2e 29 0d 0a 3b 09 73 65 74 74 72 6b 09 73 65 74 20 74 72 61 63 6b 20 61 ┆(0,1,2...) ; settrk set track a┆ 0x05ddc0…05dde0 64 64 72 65 73 73 20 28 30 2c 2e 2e 2e 37 36 29 20 66 6f 72 20 73 75 62 73 65 71 75 65 6e 74 20 ┆ddress (0,...76) for subsequent ┆ 0x05dde0…05de00 72 65 61 64 2f 77 72 69 74 65 0d 0a 3b 09 73 65 74 73 65 63 09 73 65 74 20 73 65 63 74 6f 72 20 ┆read/write ; setsec set sector ┆ 0x05de00…05de20 (25, 0, 2) 53 0d 0a 09 4c 58 49 09 44 2c 46 44 46 4f 52 4d 09 3b 0d 0a 09 44 41 44 09 44 09 09 3b 0d 0a 09 ┆S LXI D,FDFORM ; DAD D ; ┆ 0x05de20…05de40 53 48 4c 44 09 41 46 4f 52 4d 09 09 3b 0d 0a 09 4d 4f 56 09 41 2c 4d 09 09 3b 0d 0a 09 53 54 41 ┆SHLD AFORM ; MOV A,M ; STA┆ 0x05de40…05de60 09 53 46 4f 52 4d 09 09 3b 0d 0a 09 49 4e 58 09 48 09 09 3b 0d 0a 09 4d 4f 56 09 41 2c 4d 09 09 ┆ SFORM ; INX H ; MOV A,M ┆ 0x05de60…05de80 3b 0d 0a 09 53 54 41 09 53 46 4f 52 4d 2b 31 09 09 3b 0d 0a 09 4c 48 4c 44 09 53 46 4f 52 4d 09 ┆; STA SFORM+1 ; LHLD SFORM ┆ 0x05de80…05dea0 09 3b 0d 0a 09 53 48 4c 44 09 43 46 4f 52 4d 09 09 3b 0d 0a 09 4c 58 49 09 48 2c 44 42 55 46 46 ┆ ; SHLD CFORM ; LXI H,DBUFF┆ 0x05dea0…05dec0 09 09 3b 20 53 45 54 55 50 20 43 48 41 52 20 53 43 41 4e 0d 0a 09 49 4e 58 09 48 09 09 3b 0d 0a ┆ ; SETUP CHAR SCAN INX H ; ┆ 0x05dec0…05dee0 09 53 48 4c 44 09 43 41 44 44 52 09 09 3b 0d 0a 09 4a 4d 50 09 53 43 41 4e 09 09 3b 0d 0a 0d 0a ┆ SHLD CADDR ; JMP SCAN ; ┆ 0x05dee0…05df00 4e 43 48 41 52 3a 20 20 4c 58 49 09 48 2c 44 42 55 46 46 09 09 3b 20 47 45 54 20 4e 45 58 54 20 ┆NCHAR: LXI H,DBUFF ; GET NEXT ┆ 0x05df00…05df20 43 48 41 52 3a 0d 0a 09 44 43 52 09 4d 09 09 3b 0d 0a 09 4a 5a 09 53 45 54 46 44 46 09 09 3b 20 ┆CHAR: DCR M ; JZ SETFDF ; ┆ 0x05df20…05df40 49 46 20 45 4f 4c 20 54 48 45 4e 20 45 58 49 54 0d 0a 09 4c 48 4c 44 09 43 41 44 44 52 09 09 3b ┆IF EOL THEN EXIT LHLD CADDR ;┆ 0x05df40…05df60 0d 0a 09 4d 4f 56 09 41 2c 4d 09 09 3b 20 20 20 20 20 20 20 20 45 4c 53 45 20 50 49 43 4b 55 50 ┆ MOV A,M ; ELSE PICKUP┆ 0x05df60…05df80 20 43 48 41 52 3b 0d 0a 09 49 4e 58 09 48 09 09 3b 0d 0a 09 53 48 4c 44 09 43 41 44 44 52 09 09 ┆ CHAR; INX H ; SHLD CADDR ┆ 0x05df80…05dfa0 3b 0d 0a 09 52 45 54 09 09 20 09 3b 20 52 45 54 55 52 4e 3b 0d 0a 0d 0a 53 43 41 4e 3a 09 4c 58 ┆; RET ; RETURN; SCAN: LX┆ 0x05dfa0…05dfc0 49 09 42 2c 30 09 09 3b 20 44 52 49 56 45 2c 44 45 4e 53 49 54 59 3a 3d 41 2c 53 53 0d 0a 09 43 ┆I B,0 ; DRIVE,DENSITY:=A,SS C┆ 0x05dfc0…05dfe0 41 4c 4c 09 4e 43 48 41 52 09 09 3b 0d 0a 09 43 50 49 09 27 41 27 09 09 3b 20 53 45 41 52 43 48 ┆ALL NCHAR ; CPI 'A' ; SEARCH┆ 0x05dfe0…05e000 20 41 20 4f 52 20 42 20 44 52 49 56 45 3a 0d 0a 09 4a 5a 09 53 43 4f 4c 09 09 3b 0d 0a 09 43 50 ┆ A OR B DRIVE: JZ SCOL ; CP┆ 0x05e000…05e020 (25, 0, 3) 30 30 48 0d 0a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆00H ┆ 0x05e020…05e040 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆ ┆ […0x2…] 0x05e080…05e0a0 52 49 54 45 3a 09 4d 56 49 09 43 2c 57 52 49 54 45 46 09 3b 0d 0a 09 4a 4d 50 09 42 44 4f 53 09 ┆RITE: MVI C,WRITEF ; JMP BDOS ┆ 0x05e0a0…05e0c0 09 3b 0d 0a 0d 0a 4d 41 4b 45 3a 09 4d 56 49 09 43 2c 4d 41 4b 45 46 09 09 3b 0d 0a 09 4a 4d 50 ┆ ; MAKE: MVI C,MAKEF ; JMP┆ 0x05e0c0…05e0e0 09 42 44 4f 53 09 09 3b 0d 0a 0d 0a 53 45 54 44 4d 41 3a 09 4d 56 49 09 43 2c 53 44 4d 41 46 09 ┆ BDOS ; SETDMA: MVI C,SDMAF ┆ 0x05e0e0…05e100 09 3b 0d 0a 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d 0a 0d 0a 50 52 49 4e 54 3a 09 4d 56 49 09 43 ┆ ; JMP BDOS ; PRINT: MVI C┆ 0x05e100…05e120 2c 50 52 49 4e 54 46 09 3b 0d 0a 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d 0a 0d 0a 0d 0a 53 57 4f ┆,PRINTF ; JMP BDOS ; SWO┆ 0x05e120…05e140 50 3a 09 44 42 09 27 49 4e 53 45 52 54 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 54 ┆P: DB 'INSERT DISK AND TYPE <RET┆ 0x05e140…05e160 55 52 4e 3e 27 2c 33 36 0d 0a 0d 0a 41 46 4f 52 4d 3a 09 44 57 09 30 0d 0a 53 46 4f 52 4d 3a 09 ┆URN>',36 AFORM: DW 0 SFORM: ┆ 0x05e160…05e180 44 57 09 30 0d 0a 43 46 4f 52 4d 3a 20 20 44 57 09 30 0d 0a 43 41 44 44 52 3a 09 44 57 09 30 0d ┆DW 0 CFORM: DW 0 CADDR: DW 0 ┆ 0x05e180…05e1a0 0a 0d 0a 0d 0a 43 43 50 52 45 54 3a 20 44 57 09 30 0d 0a 0d 0a 44 46 43 42 3a 09 44 53 09 33 33 ┆ CCPRET: DW 0 DFCB: DS 33┆ 0x05e1a0…05e1c0 09 09 3b 20 44 45 53 54 49 4e 41 54 49 4f 4e 20 46 43 42 0d 0a 44 46 43 42 43 52 09 45 51 55 09 ┆ ; DESTINATION FCB DFCBCR EQU ┆ 0x05e1c0…05e1e0 44 46 43 42 2b 33 32 09 09 3b 0d 0a 0d 0a 09 44 53 09 33 31 09 09 3b 0d 0a 53 54 41 43 4b 3a 09 ┆DFCB+32 ; DS 31 ; STACK: ┆ 0x05e1e0…05e200 44 53 09 31 09 09 3b 20 4c 4f 43 41 4c 20 53 54 41 43 4b 0d 0a 0d 0a 0d 0a 09 45 4e 44 09 30 31 ┆DS 1 ; LOCAL STACK END 01┆ 0x05e200…05e220 (25, 0, 4) 53 53 09 09 3b 0d 0a 20 30 31 36 45 20 46 45 34 34 20 20 20 20 20 20 09 43 50 49 09 27 44 27 09 ┆SS ; 016E FE44 CPI 'D' ┆ 0x05e220…05e240 09 3b 0d 0a 20 30 31 37 30 20 43 32 34 35 30 31 20 20 20 20 09 4a 4e 5a 09 53 43 41 4e 09 09 3b ┆ ; 0170 C24501 JNZ SCAN ;┆ 0x05e240…05e260 0d 0a 20 30 31 37 33 20 43 44 33 35 30 31 20 20 20 20 09 43 41 4c 4c 09 4e 43 48 41 52 09 09 3b ┆ 0173 CD3501 CALL NCHAR ;┆ 0x05e260…05e280 0d 0a 20 30 31 37 36 20 46 45 34 34 20 20 20 20 20 20 09 43 50 49 09 27 44 27 09 09 3b 0d 0a 20 ┆ 0176 FE44 CPI 'D' ; ┆ 0x05e280…05e2a0 30 31 37 38 20 43 32 34 35 30 31 20 20 20 20 09 4a 4e 5a 09 53 43 41 4e 09 09 3b 0d 0a 20 30 31 ┆0178 C24501 JNZ SCAN ; 01┆ 0x05e2a0…05e2c0 37 42 20 43 44 33 35 30 31 20 20 20 20 09 43 41 4c 4c 09 4e 43 48 41 52 09 09 3b 20 53 45 41 52 ┆7B CD3501 CALL NCHAR ; SEAR┆ 0x05e2c0…05e2e0 43 48 20 53 50 41 43 45 3a 0d 0a 20 30 31 37 45 20 46 45 32 30 20 20 20 20 20 20 09 43 50 49 09 ┆CH SPACE: 017E FE20 CPI ┆ 0x05e2e0…05e300 27 20 27 09 09 3b 0d 0a 20 30 31 38 30 20 43 32 34 35 30 31 20 20 20 20 09 4a 4e 5a 09 53 43 41 ┆' ' ; 0180 C24501 JNZ SCA┆ 0x05e300…05e320 4e 09 09 3b 0d 0a 20 30 31 38 33 20 30 45 30 38 20 20 20 20 20 20 09 4d 56 49 09 43 2c 38 09 09 ┆N ; 0183 0E08 MVI C,8 ┆ 0x05e320…05e340 3b 0d 0a 20 30 31 38 35 20 43 33 39 38 30 31 20 20 20 20 09 4a 4d 50 09 53 45 54 43 46 09 09 3b ┆; 0185 C39801 JMP SETCF ;┆ 0x05e340…05e360 0d 0a 20 30 31 38 38 20 43 44 33 35 30 31 20 20 20 20 53 53 53 3a 09 43 41 4c 4c 09 4e 43 48 41 ┆ 0188 CD3501 SSS: CALL NCHA┆ 0x05e360…05e380 52 09 09 3b 0d 0a 20 30 31 38 42 20 46 45 35 33 20 20 20 20 20 20 09 43 50 49 09 27 53 27 09 09 ┆R ; 018B FE53 CPI 'S' ┆ 0x05e380…05e3a0 3b 0d 0a 20 30 31 38 44 20 43 32 34 35 30 31 20 20 20 20 09 4a 4e 5a 09 53 43 41 4e 09 09 3b 0d ┆; 018D C24501 JNZ SCAN ; ┆ 0x05e3a0…05e3c0 0a 20 30 31 39 30 20 43 44 33 35 30 31 20 20 20 20 09 43 41 4c 4c 09 4e 43 48 41 52 09 09 3b 0d ┆ 0190 CD3501 CALL NCHAR ; ┆ 0x05e3c0…05e3e0 0a 20 30 31 39 33 20 46 45 32 30 20 20 20 20 20 20 09 43 50 49 09 27 20 27 09 09 3b 0d 0a 20 30 ┆ 0193 FE20 CPI ' ' ; 0┆ 0x05e3e0…05e400 31 39 35 20 43 32 34 35 30 31 20 20 20 20 09 4a 4e 5a 09 53 43 41 4e 09 09 3b 0d 0a 20 30 31 39 ┆195 C24501 JNZ SCAN ; 019┆ 0x05e400…05e420 (25, 0, 5) 61 64 64 72 65 73 73 20 28 31 2c 2e 2e 2e 2c 32 36 29 20 66 6f 72 20 73 75 62 73 65 71 75 65 6e ┆address (1,...,26) for subsequen┆ 0x05e420…05e440 74 20 72 65 61 64 2f 77 72 69 74 65 0d 0a 3b 09 73 65 74 64 6d 61 09 73 65 74 20 73 75 62 73 65 ┆t read/write ; setdma set subse┆ 0x05e440…05e460 71 75 65 6e 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 28 69 6e 69 74 69 61 6c 6c 79 20 38 30 68 ┆quent dma address (initially 80h┆ 0x05e460…05e480 29 0d 0a 3b 0d 0a 3b 09 28 72 65 61 64 20 61 6e 64 20 77 72 69 74 65 20 61 73 73 75 6d 65 20 70 ┆) ; ; (read and write assume p┆ 0x05e480…05e4a0 72 65 76 69 6f 75 73 20 63 61 6c 6c 73 20 74 6f 20 73 65 74 20 75 70 20 74 68 65 20 69 6f 20 70 ┆revious calls to set up the io p┆ 0x05e4a0…05e4c0 61 72 61 6d 65 74 65 72 73 29 0d 0a 3b 09 72 65 61 64 09 72 65 61 64 20 74 72 61 63 6b 2f 73 65 ┆arameters) ; read read track/se┆ 0x05e4c0…05e4e0 63 74 6f 72 20 74 6f 20 70 72 65 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 3b 09 77 72 ┆ctor to preset dma address ; wr┆ 0x05e4e0…05e500 69 74 65 09 77 72 69 74 65 20 74 72 61 63 6b 2f 73 65 63 74 6f 72 20 66 72 6f 6d 20 70 72 65 73 ┆ite write track/sector from pres┆ 0x05e500…05e520 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b 09 6a 75 6d 70 20 76 65 63 74 6f 72 ┆et dma address ; ; jump vector┆ 0x05e520…05e540 20 66 6f 72 20 69 6e 64 69 76 69 75 61 6c 20 72 6f 75 74 69 6e 65 73 0d 0a 09 6a 6d 70 09 62 6f ┆ for indiviual routines jmp bo┆ 0x05e540…05e560 6f 74 0d 0a 77 62 6f 6f 74 65 3a 09 6a 6d 70 09 77 62 6f 6f 74 0d 0a 09 6a 6d 70 09 63 6f 6e 73 ┆ot wboote: jmp wboot jmp cons┆ 0x05e560…05e580 74 0d 0a 09 6a 6d 70 09 63 6f 6e 69 6e 0d 0a 09 6a 6d 70 09 63 6f 6e 6f 75 74 0d 0a 09 6a 6d 70 ┆t jmp conin jmp conout jmp┆ 0x05e580…05e5a0 09 6c 69 73 74 0d 0a 09 6a 6d 70 09 70 75 6e 63 68 0d 0a 09 6a 6d 70 09 72 65 61 64 65 72 0d 0a ┆ list jmp punch jmp reader ┆ 0x05e5a0…05e5c0 09 6a 6d 70 09 68 6f 6d 65 0d 0a 09 6a 6d 70 09 73 65 6c 64 73 6b 0d 0a 09 6a 6d 70 09 73 65 74 ┆ jmp home jmp seldsk jmp set┆ 0x05e5c0…05e5e0 74 72 6b 0d 0a 09 6a 6d 70 09 73 65 74 73 65 63 0d 0a 09 6a 6d 70 09 73 65 74 64 6d 61 0d 0a 09 ┆trk jmp setsec jmp setdma ┆ 0x05e5e0…05e600 6a 6d 70 09 72 65 61 64 0d 0a 09 6a 6d 70 09 77 72 69 74 65 0d 0a 09 6a 6d 70 09 6c 69 73 74 73 ┆jmp read jmp write jmp lists┆ 0x05e600…05e620 (25, 0, 6) 49 09 27 42 27 09 09 3b 0d 0a 09 4a 4e 5a 09 53 43 41 4e 09 09 3b 0d 0a 09 49 4e 52 09 42 09 09 ┆I 'B' ; JNZ SCAN ; INR B ┆ 0x05e620…05e640 3b 0d 0a 53 43 4f 4c 3a 09 43 41 4c 4c 09 4e 43 48 41 52 09 09 3b 20 53 45 41 52 43 48 20 43 4f ┆; SCOL: CALL NCHAR ; SEARCH CO┆ 0x05e640…05e660 4c 4f 4e 3a 0d 0a 09 43 50 49 09 27 3a 27 09 09 3b 0d 0a 09 4a 4e 5a 09 53 43 41 4e 09 09 3b 0d ┆LON: CPI ':' ; JNZ SCAN ; ┆ 0x05e660…05e680 0a 09 43 41 4c 4c 09 4e 43 48 41 52 09 09 3b 20 53 45 41 52 43 48 20 45 51 55 41 4c 3a 0d 0a 09 ┆ CALL NCHAR ; SEARCH EQUAL: ┆ 0x05e680…05e6a0 43 50 49 09 27 3d 27 09 09 3b 0d 0a 09 4a 4e 5a 09 53 43 41 4e 09 09 3b 0d 0a 09 43 41 4c 4c 09 ┆CPI '=' ; JNZ SCAN ; CALL ┆ 0x05e6a0…05e6c0 4e 43 48 41 52 09 09 3b 20 53 45 41 52 43 48 20 44 45 4e 53 49 54 59 3a 0d 0a 09 43 50 49 09 27 ┆NCHAR ; SEARCH DENSITY: CPI '┆ 0x05e6c0…05e6e0 53 27 09 09 3b 0d 0a 09 4a 5a 09 53 53 53 09 09 3b 0d 0a 09 43 50 49 09 27 44 27 09 09 3b 0d 0a ┆S' ; JZ SSS ; CPI 'D' ; ┆ 0x05e6e0…05e700 09 4a 4e 5a 09 53 43 41 4e 09 09 3b 0d 0a 09 43 41 4c 4c 09 4e 43 48 41 52 09 09 3b 0d 0a 09 43 ┆ JNZ SCAN ; CALL NCHAR ; C┆ 0x05e700…05e720 50 49 09 27 44 27 09 09 3b 0d 0a 09 4a 4e 5a 09 53 43 41 4e 09 09 3b 0d 0a 09 43 41 4c 4c 09 4e ┆PI 'D' ; JNZ SCAN ; CALL N┆ 0x05e720…05e740 43 48 41 52 09 09 3b 20 53 45 41 52 43 48 20 53 50 41 43 45 3a 0d 0a 09 43 50 49 09 27 20 27 09 ┆CHAR ; SEARCH SPACE: CPI ' ' ┆ 0x05e740…05e760 09 3b 0d 0a 09 4a 4e 5a 09 53 43 41 4e 09 09 3b 0d 0a 09 4d 56 49 09 43 2c 38 09 09 3b 0d 0a 09 ┆ ; JNZ SCAN ; MVI C,8 ; ┆ 0x05e760…05e780 4a 4d 50 09 53 45 54 43 46 09 09 3b 0d 0a 53 53 53 3a 09 43 41 4c 4c 09 4e 43 48 41 52 09 09 3b ┆JMP SETCF ; SSS: CALL NCHAR ;┆ 0x05e780…05e7a0 0d 0a 09 43 50 49 09 27 53 27 09 09 3b 0d 0a 09 4a 4e 5a 09 53 43 41 4e 09 09 3b 0d 0a 09 43 41 ┆ CPI 'S' ; JNZ SCAN ; CA┆ 0x05e7a0…05e7c0 4c 4c 09 4e 43 48 41 52 09 09 3b 0d 0a 09 43 50 49 09 27 20 27 09 09 3b 0d 0a 09 4a 4e 5a 09 53 ┆LL NCHAR ; CPI ' ' ; JNZ S┆ 0x05e7c0…05e7e0 43 41 4e 09 09 3b 0d 0a 53 45 54 43 46 3a 09 4c 58 49 09 48 2c 43 46 4f 52 4d 09 09 3b 20 53 45 ┆CAN ; SETCF: LXI H,CFORM ; SE┆ 0x05e7e0…05e800 54 20 43 55 52 52 45 4e 54 20 46 4f 52 4d 41 54 3a 0d 0a 09 4d 56 49 09 44 2c 30 09 09 3b 0d 0a ┆T CURRENT FORMAT: MVI D,0 ; ┆ 0x05e800…05e820 (25, 0, 7) 6e 2e 0a 0a 0a 24 0d 0a 0a 0a 0a 0a 0a 0d 0a 09 09 20 20 20 20 20 20 20 20 20 20 4c 69 66 65 62 ┆n. $ Lifeb┆ 0x05e820…05e840 6f 61 74 20 41 73 73 6f 63 69 61 74 65 73 0d 0a 09 09 20 49 42 4d 2f 43 50 4d 20 44 69 73 6b 65 ┆oat Associates IBM/CPM Diske┆ 0x05e840…05e860 74 74 65 20 55 74 69 6c 69 74 79 20 56 65 72 73 69 6f 6e 20 31 2e 31 0d 0a 09 09 09 20 53 65 72 ┆tte Utility Version 1.1 Ser┆ 0x05e860…05e880 69 61 6c 20 4e 75 6d 62 65 72 20 4c 42 2d 31 31 31 31 0d 0a 09 09 09 20 20 43 6f 70 79 72 69 67 ┆ial Number LB-1111 Copyrig┆ 0x05e880…05e8a0 68 74 28 63 29 20 31 39 37 39 0d 0a 0a 0a 0a 09 20 20 20 20 20 20 20 20 20 20 20 41 73 73 75 6d ┆ht(c) 1979 Assum┆ 0x05e8a0…05e8c0 69 6e 67 20 73 74 61 6e 64 61 72 64 20 43 50 4d 20 32 2e 30 20 42 49 4f 53 2e 20 20 20 20 20 20 ┆ing standard CPM 2.0 BIOS. ┆ 0x05e8c0…05e8e0 20 0d 0a 0a 0d 0a 0a 09 09 4f 70 74 69 6f 6e 09 46 75 6e 63 74 69 6f 6e 20 74 6f 20 62 65 20 70 ┆ Option Function to be p┆ 0x05e8e0…05e900 65 72 66 6f 72 6d 65 64 0d 0a 09 09 45 09 54 65 72 6d 69 6e 61 74 65 20 70 72 6f 67 72 61 6d 20 ┆erformed E Terminate program ┆ 0x05e900…05e920 61 6e 64 20 72 65 74 75 72 6e 20 63 6f 6e 74 72 6f 6c 20 74 6f 20 43 50 4d 0d 0a 09 09 46 09 49 ┆and return control to CPM F I┆ 0x05e920…05e940 6e 69 74 69 61 6c 69 7a 65 20 64 69 72 65 63 74 6f 72 79 20 6f 6e 20 49 42 4d 20 64 69 73 6b 65 ┆nitialize directory on IBM diske┆ 0x05e940…05e960 74 74 65 0d 0a 09 09 44 09 44 69 73 70 6c 61 79 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 6f ┆tte D Display the directory o┆ 0x05e960…05e980 6e 20 61 6e 20 49 42 4d 20 64 69 73 6b 65 74 74 65 0d 0a 09 09 43 09 43 6f 6e 76 65 72 74 20 61 ┆n an IBM diskette C Convert a┆ 0x05e980…05e9a0 20 43 50 4d 20 66 69 6c 65 20 74 6f 20 49 42 4d 20 66 6f 72 6d 61 74 0d 0a 09 09 49 09 43 6f 6e ┆ CPM file to IBM format I Con┆ 0x05e9a0…05e9c0 76 65 72 74 20 61 6e 20 49 42 4d 20 66 69 6c 65 20 74 6f 20 43 50 4d 20 66 6f 72 6d 61 74 0d 0a ┆vert an IBM file to CPM format ┆ 0x05e9c0…05e9e0 0a 09 09 45 6e 74 65 72 20 6f 70 74 69 6f 6e 20 3a 20 24 0d 0a 0a 0d 0a 20 20 20 20 20 20 20 20 ┆ Enter option : $ ┆ 0x05e9e0…05ea00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 54 41 52 54 20 20 45 4e 44 20 20 ┆ START END ┆ 0x05ea00…05ea20 (25, 0, 8) 38 20 32 31 31 44 30 32 20 20 20 20 53 45 54 43 46 3a 09 4c 58 49 09 48 2c 43 46 4f 52 4d 09 09 ┆8 211D02 SETCF: LXI H,CFORM ┆ 0x05ea20…05ea40 3b 20 53 45 54 20 43 55 52 52 45 4e 54 20 46 4f 52 4d 41 54 3a 0d 0a 20 30 31 39 42 20 31 36 30 ┆; SET CURRENT FORMAT: 019B 160┆ 0x05ea40…05ea60 30 20 20 20 20 20 20 09 4d 56 49 09 44 2c 30 09 09 3b 0d 0a 20 30 31 39 44 20 35 38 20 20 20 20 ┆0 MVI D,0 ; 019D 58 ┆ 0x05ea60…05ea80 20 20 20 20 09 4d 4f 56 09 45 2c 42 09 09 3b 0d 0a 20 30 31 39 45 20 31 39 20 20 20 20 20 20 20 ┆ MOV E,B ; 019E 19 ┆ 0x05ea80…05eaa0 20 09 44 41 44 09 44 09 09 3b 0d 0a 20 30 31 39 46 20 37 31 20 20 20 20 20 20 20 20 09 4d 4f 56 ┆ DAD D ; 019F 71 MOV┆ 0x05eaa0…05eac0 09 4d 2c 43 09 09 3b 0d 0a 20 30 31 41 30 20 43 33 34 35 30 31 20 20 20 20 09 4a 4d 50 09 53 43 ┆ M,C ; 01A0 C34501 JMP SC┆ 0x05eac0…05eae0 41 4e 09 09 3b 20 47 4f 54 4f 20 53 43 41 4e 20 46 4f 52 20 4e 45 58 54 3b 0d 0a 20 20 20 20 20 ┆AN ; GOTO SCAN FOR NEXT; ┆ 0x05eae0…05eb00 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 31 41 33 20 44 42 31 34 20 20 20 20 20 20 53 45 54 ┆ 01A3 DB14 SET┆ 0x05eb00…05eb20 46 44 46 3a 20 49 4e 09 53 57 31 09 09 3b 20 49 46 20 4d 49 4e 49 20 46 4c 4f 50 50 59 20 54 48 ┆FDF: IN SW1 ; IF MINI FLOPPY TH┆ 0x05eb20…05eb40 45 4e 0d 0a 20 30 31 41 35 20 45 36 38 30 20 20 20 20 20 20 09 41 4e 49 09 30 38 30 48 09 09 3b ┆EN 01A5 E680 ANI 080H ;┆ 0x05eb40…05eb60 20 20 47 4f 54 4f 20 46 49 4e 49 53 3b 0d 0a 20 30 31 41 37 20 43 32 42 36 30 31 20 20 20 20 09 ┆ GOTO FINIS; 01A7 C2B601 ┆ 0x05eb60…05eb80 4a 4e 5a 09 46 49 4e 49 53 09 09 3b 0d 0a 20 30 31 41 41 20 32 41 31 39 30 32 20 20 20 20 09 4c ┆JNZ FINIS ; 01AA 2A1902 L┆ 0x05eb80…05eba0 48 4c 44 09 41 46 4f 52 4d 09 09 3b 20 53 45 54 20 46 4c 4f 50 50 59 20 46 4f 52 4d 41 54 53 3a ┆HLD AFORM ; SET FLOPPY FORMATS:┆ 0x05eba0…05ebc0 0d 0a 20 30 31 41 44 20 33 41 31 44 30 32 20 20 20 20 09 4c 44 41 09 43 46 4f 52 4d 09 09 3b 0d ┆ 01AD 3A1D02 LDA CFORM ; ┆ 0x05ebc0…05ebe0 0a 20 30 31 42 30 20 37 37 20 20 20 20 20 20 20 20 09 4d 4f 56 09 4d 2c 41 09 09 3b 0d 0a 20 30 ┆ 01B0 77 MOV M,A ; 0┆ 0x05ebe0…05ec00 31 42 31 20 32 33 20 20 20 20 20 20 20 20 09 49 4e 58 09 48 09 09 3b 0d 0a 20 30 31 42 32 20 33 ┆1B1 23 INX H ; 01B2 3┆ 0x05ec00…05ec20 (25, 0, 9) 3b 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆;*******************************┆ 0x05ec20…05ec40 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆********************************┆ 0x05ec40…05ec60 2a 0d 0a 3b 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆* ;* ┆ 0x05ec60…05ec80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x05ec80…05eca0 20 20 20 2a 0d 0a 3b 2a 20 20 20 20 20 41 53 53 49 47 4e 20 20 20 20 20 20 20 20 55 54 49 4c 49 ┆ * ;* ASSIGN UTILI┆ 0x05eca0…05ecc0 54 59 20 20 20 20 2d 20 20 20 20 56 45 52 53 49 4f 4e 20 20 38 31 2e 30 36 2e 32 39 20 20 20 20 ┆TY - VERSION 81.06.29 ┆ 0x05ecc0…05ece0 20 20 20 20 20 20 2a 0d 0a 3b 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ * ;* ┆ 0x05ece0…05ed00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x05ed00…05ed20 20 20 20 20 20 20 20 20 20 2a 0d 0a 3b 2a 20 20 20 20 20 41 53 53 49 47 4e 20 20 20 44 3a 3d 46 ┆ * ;* ASSIGN D:=F┆ 0x05ed20…05ed40 46 20 20 44 3a 3d 46 46 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆F D:=FF ┆ 0x05ed40…05ed60 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 3b 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ * ;* ┆ 0x05ed60…05ed80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x05ed80…05eda0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 3b 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆ * ;*************┆ 0x05eda0…05edc0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆********************************┆ 0x05edc0…05ede0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 0a 0d 0a 42 4f 4f 54 09 45 51 55 09 ┆******************* BOOT EQU ┆ 0x05ede0…05ee00 30 30 30 30 48 0d 0a 42 44 4f 53 09 45 51 55 09 30 30 30 35 48 0d 0a 46 43 42 31 09 45 51 55 09 ┆0000H BDOS EQU 0005H FCB1 EQU ┆ 0x05ee00…05ee20 (25, 0, 10) 09 4d 4f 56 09 45 2c 42 09 09 3b 0d 0a 09 44 41 44 09 44 09 09 3b 0d 0a 09 4d 4f 56 09 4d 2c 43 ┆ MOV E,B ; DAD D ; MOV M,C┆ 0x05ee20…05ee40 09 09 3b 0d 0a 09 4a 4d 50 09 53 43 41 4e 09 09 3b 20 47 4f 54 4f 20 53 43 41 4e 20 46 4f 52 20 ┆ ; JMP SCAN ; GOTO SCAN FOR ┆ 0x05ee40…05ee60 4e 45 58 54 3b 0d 0a 0d 0a 53 45 54 46 44 46 3a 20 49 4e 09 53 57 31 09 09 3b 20 49 46 20 4d 49 ┆NEXT; SETFDF: IN SW1 ; IF MI┆ 0x05ee60…05ee80 4e 49 20 46 4c 4f 50 50 59 20 54 48 45 4e 0d 0a 09 41 4e 49 09 30 38 30 48 09 09 3b 20 20 47 4f ┆NI FLOPPY THEN ANI 080H ; GO┆ 0x05ee80…05eea0 54 4f 20 46 49 4e 49 53 3b 0d 0a 09 4a 4e 5a 09 46 49 4e 49 53 09 09 3b 0d 0a 09 4c 48 4c 44 09 ┆TO FINIS; JNZ FINIS ; LHLD ┆ 0x05eea0…05eec0 41 46 4f 52 4d 09 09 3b 20 53 45 54 20 46 4c 4f 50 50 59 20 46 4f 52 4d 41 54 53 3a 0d 0a 09 4c ┆AFORM ; SET FLOPPY FORMATS: L┆ 0x05eec0…05eee0 44 41 09 43 46 4f 52 4d 09 09 3b 0d 0a 09 4d 4f 56 09 4d 2c 41 09 09 3b 0d 0a 09 49 4e 58 09 48 ┆DA CFORM ; MOV M,A ; INX H┆ 0x05eee0…05ef00 09 09 3b 0d 0a 09 4c 44 41 09 43 46 4f 52 4d 2b 31 09 09 3b 0d 0a 09 4d 4f 56 09 4d 2c 41 09 09 ┆ ; LDA CFORM+1 ; MOV M,A ┆ 0x05ef00…05ef20 3b 0d 0a 0d 0a 46 49 4e 49 53 3a 09 4c 58 49 09 44 2c 53 57 4f 50 09 09 3b 0d 0a 09 43 41 4c 4c ┆; FINIS: LXI D,SWOP ; CALL┆ 0x05ef20…05ef40 09 50 52 49 4e 54 09 09 3b 0d 0a 09 43 41 4c 4c 09 43 4f 4e 53 49 09 09 3b 0d 0a 09 43 41 4c 4c ┆ PRINT ; CALL CONSI ; CALL┆ 0x05ef40…05ef60 09 52 45 53 45 54 09 09 3b 20 52 45 53 45 54 20 44 52 49 56 45 53 3b 0d 0a 09 4c 48 4c 44 09 43 ┆ RESET ; RESET DRIVES; LHLD C┆ 0x05ef60…05ef80 43 50 52 45 54 09 09 3b 0d 0a 09 50 43 48 4c 09 09 09 3b 20 52 45 54 55 52 4e 20 54 4f 20 43 43 ┆CPRET ; PCHL ; RETURN TO CC┆ 0x05ef80…05efa0 50 0d 0a 0d 0a 0d 0a 43 4f 4e 53 49 3a 09 4d 56 49 09 43 2c 43 4f 4e 53 49 46 09 3b 0d 0a 09 4a ┆P CONSI: MVI C,CONSIF ; J┆ 0x05efa0…05efc0 4d 50 09 42 44 4f 53 09 09 3b 0d 0a 0d 0a 52 45 53 45 54 3a 09 4d 56 49 09 43 2c 52 45 53 45 54 ┆MP BDOS ; RESET: MVI C,RESET┆ 0x05efc0…05efe0 46 09 3b 0d 0a 09 4c 58 49 09 20 44 2c 33 09 09 3b 0d 0a 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d ┆F ; LXI D,3 ; JMP BDOS ; ┆ 0x05efe0…05f000 0a 0d 0a 4f 50 45 4e 3a 09 4d 56 49 09 43 2c 4f 50 45 4e 46 09 09 3b 0d 0a 09 4a 4d 50 09 42 44 ┆ OPEN: MVI C,OPENF ; JMP BD┆ 0x05f000…05f020 (25, 0, 11) 42 55 46 46 09 09 3b 20 53 45 54 55 50 20 43 48 41 52 20 53 43 41 4e 0d 0a 20 30 31 32 45 20 32 ┆BUFF ; SETUP CHAR SCAN 012E 2┆ 0x05f020…05f040 33 20 20 20 20 20 20 20 20 09 49 4e 58 09 48 09 09 3b 0d 0a 20 30 31 32 46 20 32 32 31 46 30 32 ┆3 INX H ; 012F 221F02┆ 0x05f040…05f060 20 20 20 20 09 53 48 4c 44 09 43 41 44 44 52 09 09 3b 0d 0a 20 30 31 33 32 20 43 33 34 35 30 31 ┆ SHLD CADDR ; 0132 C34501┆ 0x05f060…05f080 20 20 20 20 09 4a 4d 50 09 53 43 41 4e 09 09 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ JMP SCAN ; ┆ 0x05f080…05f0a0 20 20 0d 0a 20 30 31 33 35 20 32 31 38 30 30 30 20 20 20 20 4e 43 48 41 52 3a 20 20 4c 58 49 09 ┆ 0135 218000 NCHAR: LXI ┆ 0x05f0a0…05f0c0 48 2c 44 42 55 46 46 09 09 3b 20 47 45 54 20 4e 45 58 54 20 43 48 41 52 3a 0d 0a 20 30 31 33 38 ┆H,DBUFF ; GET NEXT CHAR: 0138┆ 0x05f0c0…05f0e0 20 33 35 20 20 20 20 20 20 20 20 09 44 43 52 09 4d 09 09 3b 0d 0a 20 30 31 33 39 20 43 41 41 33 ┆ 35 DCR M ; 0139 CAA3┆ 0x05f0e0…05f100 30 31 20 20 20 20 09 4a 5a 09 53 45 54 46 44 46 09 09 3b 20 49 46 20 45 4f 4c 20 54 48 45 4e 20 ┆01 JZ SETFDF ; IF EOL THEN ┆ 0x05f100…05f120 45 58 49 54 0d 0a 20 30 31 33 43 20 32 41 31 46 30 32 20 20 20 20 09 4c 48 4c 44 09 43 41 44 44 ┆EXIT 013C 2A1F02 LHLD CADD┆ 0x05f120…05f140 52 09 09 3b 0d 0a 20 30 31 33 46 20 37 45 20 20 20 20 20 20 20 20 09 4d 4f 56 09 41 2c 4d 09 09 ┆R ; 013F 7E MOV A,M ┆ 0x05f140…05f160 3b 20 20 20 20 20 20 20 20 45 4c 53 45 20 50 49 43 4b 55 50 20 43 48 41 52 3b 0d 0a 20 30 31 34 ┆; ELSE PICKUP CHAR; 014┆ 0x05f160…05f180 30 20 32 33 20 20 20 20 20 20 20 20 09 49 4e 58 09 48 09 09 3b 0d 0a 20 30 31 34 31 20 32 32 31 ┆0 23 INX H ; 0141 221┆ 0x05f180…05f1a0 46 30 32 20 20 20 20 09 53 48 4c 44 09 43 41 44 44 52 09 09 3b 0d 0a 20 30 31 34 34 20 43 39 20 ┆F02 SHLD CADDR ; 0144 C9 ┆ 0x05f1a0…05f1c0 20 20 20 20 20 20 20 09 52 45 54 09 09 20 09 3b 20 52 45 54 55 52 4e 3b 0d 0a 20 20 20 20 20 20 ┆ RET ; RETURN; ┆ 0x05f1c0…05f1e0 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 31 34 35 20 30 31 30 30 30 30 20 20 20 20 53 43 41 4e ┆ 0145 010000 SCAN┆ 0x05f1e0…05f200 3a 09 4c 58 49 09 42 2c 30 09 09 3b 20 44 52 49 56 45 2c 44 45 4e 53 49 54 59 3a 3d 41 2c 53 53 ┆: LXI B,0 ; DRIVE,DENSITY:=A,SS┆ 0x05f200…05f220 (25, 0, 12) 41 31 45 30 32 20 20 20 20 09 4c 44 41 09 43 46 4f 52 4d 2b 31 09 09 3b 0d 0a 20 30 31 42 35 20 ┆A1E02 LDA CFORM+1 ; 01B5 ┆ 0x05f220…05f240 37 37 20 20 20 20 20 20 20 20 09 4d 4f 56 09 4d 2c 41 09 09 3b 0d 0a 20 20 20 20 20 20 20 20 20 ┆77 MOV M,A ; ┆ 0x05f240…05f260 20 20 20 20 20 20 20 0d 0a 20 30 31 42 36 20 31 31 46 42 30 31 20 20 20 20 46 49 4e 49 53 3a 09 ┆ 01B6 11FB01 FINIS: ┆ 0x05f260…05f280 4c 58 49 09 44 2c 53 57 4f 50 09 09 3b 0d 0a 20 30 31 42 39 20 43 44 46 36 30 31 20 20 20 20 09 ┆LXI D,SWOP ; 01B9 CDF601 ┆ 0x05f280…05f2a0 43 41 4c 4c 09 50 52 49 4e 54 09 09 3b 0d 0a 20 30 31 42 43 20 43 44 43 36 30 31 20 20 20 20 09 ┆CALL PRINT ; 01BC CDC601 ┆ 0x05f2a0…05f2c0 43 41 4c 4c 09 43 4f 4e 53 49 09 09 3b 0d 0a 20 30 31 42 46 20 43 44 43 42 30 31 20 20 20 20 09 ┆CALL CONSI ; 01BF CDCB01 ┆ 0x05f2c0…05f2e0 43 41 4c 4c 09 52 45 53 45 54 09 09 3b 20 52 45 53 45 54 20 44 52 49 56 45 53 3b 0d 0a 20 30 31 ┆CALL RESET ; RESET DRIVES; 01┆ 0x05f2e0…05f300 43 32 20 32 41 32 31 30 32 20 20 20 20 09 4c 48 4c 44 09 43 43 50 52 45 54 09 09 3b 0d 0a 20 30 ┆C2 2A2102 LHLD CCPRET ; 0┆ 0x05f300…05f320 31 43 35 20 45 39 20 20 20 20 20 20 20 20 09 50 43 48 4c 09 09 09 3b 20 52 45 54 55 52 4e 20 54 ┆1C5 E9 PCHL ; RETURN T┆ 0x05f320…05f340 4f 20 43 43 50 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 ┆O CCP ┆ 0x05f340…05f360 20 20 20 20 20 20 20 20 20 0d 0a 20 30 31 43 36 20 30 45 30 31 20 20 20 20 20 20 43 4f 4e 53 49 ┆ 01C6 0E01 CONSI┆ 0x05f360…05f380 3a 09 4d 56 49 09 43 2c 43 4f 4e 53 49 46 09 3b 0d 0a 20 30 31 43 38 20 43 33 30 35 30 30 20 20 ┆: MVI C,CONSIF ; 01C8 C30500 ┆ 0x05f380…05f3a0 20 20 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ JMP BDOS ; ┆ 0x05f3a0…05f3c0 0d 0a 20 30 31 43 42 20 30 45 30 44 20 20 20 20 20 20 52 45 53 45 54 3a 09 4d 56 49 09 43 2c 52 ┆ 01CB 0E0D RESET: MVI C,R┆ 0x05f3c0…05f3e0 45 53 45 54 46 09 3b 0d 0a 20 30 31 43 44 20 31 31 30 33 30 30 20 20 20 20 09 4c 58 49 09 20 44 ┆ESETF ; 01CD 110300 LXI D┆ 0x05f3e0…05f400 2c 33 09 09 3b 0d 0a 20 30 31 44 30 20 43 33 30 35 30 30 20 20 20 20 09 4a 4d 50 09 42 44 4f 53 ┆,3 ; 01D0 C30500 JMP BDOS┆ 0x05f400…05f420 (25, 0, 13) 30 30 35 43 48 0d 0a 53 46 43 42 09 45 51 55 09 46 43 42 31 0d 0a 46 43 42 32 09 45 51 55 09 30 ┆005CH SFCB EQU FCB1 FCB2 EQU 0┆ 0x05f420…05f440 30 36 43 48 0d 0a 44 42 55 46 46 20 20 20 45 51 55 09 30 30 38 30 48 0d 0a 54 50 41 09 45 51 55 ┆06CH DBUFF EQU 0080H TPA EQU┆ 0x05f440…05f460 09 30 31 30 30 48 0d 0a 0d 0a 57 42 4f 4f 54 20 20 20 45 51 55 20 20 20 20 20 31 0d 0a 46 44 46 ┆ 0100H WBOOT EQU 1 FDF┆ 0x05f460…05f480 4f 52 4d 20 20 45 51 55 20 20 20 20 20 35 32 0d 0a 53 57 31 20 20 20 20 20 45 51 55 20 20 20 20 ┆ORM EQU 52 SW1 EQU ┆ 0x05f480…05f4a0 20 31 34 48 0d 0a 43 4f 4e 53 49 46 09 45 51 55 09 31 0d 0a 50 52 49 4e 54 46 09 45 51 55 09 39 ┆ 14H CONSIF EQU 1 PRINTF EQU 9┆ 0x05f4a0…05f4c0 0d 0a 52 45 53 45 54 46 09 45 51 55 09 33 37 0d 0a 4f 50 45 4e 46 09 45 51 55 09 31 35 0d 0a 43 ┆ RESETF EQU 37 OPENF EQU 15 C┆ 0x05f4c0…05f4e0 4c 4f 53 45 46 09 45 51 55 09 31 36 0d 0a 44 45 4c 45 54 45 46 09 45 51 55 09 31 39 0d 0a 52 45 ┆LOSEF EQU 16 DELETEF EQU 19 RE┆ 0x05f4e0…05f500 41 44 46 09 45 51 55 09 32 30 0d 0a 57 52 49 54 45 46 09 45 51 55 09 32 31 0d 0a 4d 41 4b 45 46 ┆ADF EQU 20 WRITEF EQU 21 MAKEF┆ 0x05f500…05f520 09 45 51 55 09 32 32 0d 0a 53 44 4d 41 46 09 45 51 55 09 32 36 0d 0a 0d 0a 09 4f 52 47 09 54 50 ┆ EQU 22 SDMAF EQU 26 ORG TP┆ 0x05f520…05f540 41 0d 0a 0d 0a 09 50 4f 50 09 48 09 09 3b 20 53 41 56 45 20 52 45 54 55 52 4e 20 54 4f 20 43 43 ┆A POP H ; SAVE RETURN TO CC┆ 0x05f540…05f560 50 0d 0a 09 53 48 4c 44 09 43 43 50 52 45 54 09 09 3b 0d 0a 09 4c 58 49 09 53 50 2c 53 54 41 43 ┆P SHLD CCPRET ; LXI SP,STAC┆ 0x05f560…05f580 4b 09 3b 20 53 45 54 20 4c 4f 43 41 4c 20 53 54 41 43 4b 0d 0a 09 4c 58 49 09 48 2c 44 42 55 46 ┆K ; SET LOCAL STACK LXI H,DBUF┆ 0x05f580…05f5a0 46 09 09 3b 20 50 41 44 20 43 4f 4d 4d 41 4e 44 20 42 55 46 46 45 52 0d 0a 09 49 4e 52 09 4d 09 ┆F ; PAD COMMAND BUFFER INR M ┆ 0x05f5a0…05f5c0 09 3b 0d 0a 09 4d 4f 56 09 45 2c 4d 09 09 3b 0d 0a 09 49 4e 52 09 4d 09 09 3b 0d 0a 09 4d 56 49 ┆ ; MOV E,M ; INR M ; MVI┆ 0x05f5c0…05f5e0 09 44 2c 30 09 09 3b 0d 0a 09 44 41 44 09 44 09 09 3b 0d 0a 09 4d 56 49 09 4d 2c 27 20 27 09 09 ┆ D,0 ; DAD D ; MVI M,' ' ┆ 0x05f5e0…05f600 3b 0d 0a 09 4c 48 4c 44 09 57 42 4f 4f 54 09 09 3b 20 53 41 56 45 20 46 44 20 46 4f 52 4d 41 54 ┆; LHLD WBOOT ; SAVE FD FORMAT┆ 0x05f600…05f620 (25, 0, 14) 4f 53 09 09 3b 0d 0a 0d 0a 43 4c 4f 53 45 3a 09 4d 56 49 09 43 2c 43 4c 4f 53 45 46 09 3b 0d 0a ┆OS ; CLOSE: MVI C,CLOSEF ; ┆ 0x05f620…05f640 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d 0a 0d 0a 44 45 4c 45 54 45 3a 09 4d 56 49 09 43 2c 44 45 ┆ JMP BDOS ; DELETE: MVI C,DE┆ 0x05f640…05f660 4c 45 54 45 46 09 3b 0d 0a 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d 0a 0d 0a 52 45 41 44 3a 09 4d ┆LETEF ; JMP BDOS ; READ: M┆ 0x05f660…05f680 56 49 09 43 2c 52 45 41 44 46 09 09 3b 0d 0a 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d 0a 0d 0a 57 ┆VI C,READF ; JMP BDOS ; W┆ 0x05f680…05f6a0 52 49 54 45 3a 09 4d 56 49 09 43 2c 57 52 49 54 45 46 09 3b 0d 0a 09 4a 4d 50 09 42 44 4f 53 09 ┆RITE: MVI C,WRITEF ; JMP BDOS ┆ 0x05f6a0…05f6c0 09 3b 0d 0a 0d 0a 4d 41 4b 45 3a 09 4d 56 49 09 43 2c 4d 41 4b 45 46 09 09 3b 0d 0a 09 4a 4d 50 ┆ ; MAKE: MVI C,MAKEF ; JMP┆ 0x05f6c0…05f6e0 09 42 44 4f 53 09 09 3b 0d 0a 0d 0a 53 45 54 44 4d 41 3a 09 4d 56 49 09 43 2c 53 44 4d 41 46 09 ┆ BDOS ; SETDMA: MVI C,SDMAF ┆ 0x05f6e0…05f700 09 3b 0d 0a 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d 0a 0d 0a 50 52 49 4e 54 3a 09 4d 56 49 09 43 ┆ ; JMP BDOS ; PRINT: MVI C┆ 0x05f700…05f720 2c 50 52 49 4e 54 46 09 3b 0d 0a 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d 0a 0d 0a 0d 0a 53 57 4f ┆,PRINTF ; JMP BDOS ; SWO┆ 0x05f720…05f740 50 3a 09 44 42 09 27 49 4e 53 45 52 54 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 54 ┆P: DB 'INSERT DISK AND TYPE <RET┆ 0x05f740…05f760 55 52 4e 3e 27 2c 33 36 0d 0a 0d 0a 41 46 4f 52 4d 3a 09 44 57 09 30 0d 0a 53 46 4f 52 4d 3a 09 ┆URN>',36 AFORM: DW 0 SFORM: ┆ 0x05f760…05f780 44 57 09 30 0d 0a 43 46 4f 52 4d 3a 20 20 44 57 09 30 0d 0a 43 41 44 44 52 3a 09 44 57 09 30 0d ┆DW 0 CFORM: DW 0 CADDR: DW 0 ┆ 0x05f780…05f7a0 0a 0d 0a 0d 0a 43 43 50 52 45 54 3a 20 44 57 09 30 0d 0a 0d 0a 44 46 43 42 3a 09 44 53 09 33 33 ┆ CCPRET: DW 0 DFCB: DS 33┆ 0x05f7a0…05f7c0 09 09 3b 20 44 45 53 54 49 4e 41 54 49 4f 4e 20 46 43 42 0d 0a 44 46 43 42 43 52 09 45 51 55 09 ┆ ; DESTINATION FCB DFCBCR EQU ┆ 0x05f7c0…05f7e0 44 46 43 42 2b 33 32 09 09 3b 0d 0a 0d 0a 09 44 53 09 33 31 09 09 3b 0d 0a 53 54 41 43 4b 3a 09 ┆DFCB+32 ; DS 31 ; STACK: ┆ 0x05f7e0…05f800 44 53 09 31 09 09 3b 20 4c 4f 43 41 4c 20 53 54 41 43 4b 0d 0a 0d 0a 0d 0a 09 45 4e 44 09 30 31 ┆DS 1 ; LOCAL STACK END 01┆ 0x05f800…05f820 (25, 0, 15) 0d 0a 20 30 31 34 38 20 43 44 33 35 30 31 20 20 20 20 09 43 41 4c 4c 09 4e 43 48 41 52 09 09 3b ┆ 0148 CD3501 CALL NCHAR ;┆ 0x05f820…05f840 0d 0a 20 30 31 34 42 20 46 45 34 31 20 20 20 20 20 20 09 43 50 49 09 27 41 27 09 09 3b 20 53 45 ┆ 014B FE41 CPI 'A' ; SE┆ 0x05f840…05f860 41 52 43 48 20 41 20 4f 52 20 42 20 44 52 49 56 45 3a 0d 0a 20 30 31 34 44 20 43 41 35 36 30 31 ┆ARCH A OR B DRIVE: 014D CA5601┆ 0x05f860…05f880 20 20 20 20 09 4a 5a 09 53 43 4f 4c 09 09 3b 0d 0a 20 30 31 35 30 20 46 45 34 32 20 20 20 20 20 ┆ JZ SCOL ; 0150 FE42 ┆ 0x05f880…05f8a0 20 09 43 50 49 09 27 42 27 09 09 3b 0d 0a 20 30 31 35 32 20 43 32 34 35 30 31 20 20 20 20 09 4a ┆ CPI 'B' ; 0152 C24501 J┆ 0x05f8a0…05f8c0 4e 5a 09 53 43 41 4e 09 09 3b 0d 0a 20 30 31 35 35 20 30 34 20 20 20 20 20 20 20 20 09 49 4e 52 ┆NZ SCAN ; 0155 04 INR┆ 0x05f8c0…05f8e0 09 42 09 09 3b 0d 0a 20 30 31 35 36 20 43 44 33 35 30 31 20 20 20 20 53 43 4f 4c 3a 09 43 41 4c ┆ B ; 0156 CD3501 SCOL: CAL┆ 0x05f8e0…05f900 4c 09 4e 43 48 41 52 09 09 3b 20 53 45 41 52 43 48 20 43 4f 4c 4f 4e 3a 0d 0a 20 30 31 35 39 20 ┆L NCHAR ; SEARCH COLON: 0159 ┆ 0x05f900…05f920 46 45 33 41 20 20 20 20 20 20 09 43 50 49 09 27 3a 27 09 09 3b 0d 0a 20 30 31 35 42 20 43 32 34 ┆FE3A CPI ':' ; 015B C24┆ 0x05f920…05f940 35 30 31 20 20 20 20 09 4a 4e 5a 09 53 43 41 4e 09 09 3b 0d 0a 20 30 31 35 45 20 43 44 33 35 30 ┆501 JNZ SCAN ; 015E CD350┆ 0x05f940…05f960 31 20 20 20 20 09 43 41 4c 4c 09 4e 43 48 41 52 09 09 3b 20 53 45 41 52 43 48 20 45 51 55 41 4c ┆1 CALL NCHAR ; SEARCH EQUAL┆ 0x05f960…05f980 3a 0d 0a 20 30 31 36 31 20 46 45 33 44 20 20 20 20 20 20 09 43 50 49 09 27 3d 27 09 09 3b 0d 0a ┆: 0161 FE3D CPI '=' ; ┆ 0x05f980…05f9a0 20 30 31 36 33 20 43 32 34 35 30 31 20 20 20 20 09 4a 4e 5a 09 53 43 41 4e 09 09 3b 0d 0a 20 30 ┆ 0163 C24501 JNZ SCAN ; 0┆ 0x05f9a0…05f9c0 31 36 36 20 43 44 33 35 30 31 20 20 20 20 09 43 41 4c 4c 09 4e 43 48 41 52 09 09 3b 20 53 45 41 ┆166 CD3501 CALL NCHAR ; SEA┆ 0x05f9c0…05f9e0 52 43 48 20 44 45 4e 53 49 54 59 3a 0d 0a 20 30 31 36 39 20 46 45 35 33 20 20 20 20 20 20 09 43 ┆RCH DENSITY: 0169 FE53 C┆ 0x05f9e0…05fa00 50 49 09 27 53 27 09 09 3b 0d 0a 20 30 31 36 42 20 43 41 38 38 30 31 20 20 20 20 09 4a 5a 09 53 ┆PI 'S' ; 016B CA8801 JZ S┆ 0x05fa00…05fa20 (25, 1, 1) 09 09 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 31 44 33 20 30 45 30 ┆ ; 01D3 0E0┆ 0x05fa20…05fa40 46 20 20 20 20 20 20 4f 50 45 4e 3a 09 4d 56 49 09 43 2c 4f 50 45 4e 46 09 09 3b 0d 0a 20 30 31 ┆F OPEN: MVI C,OPENF ; 01┆ 0x05fa40…05fa60 44 35 20 43 33 30 35 30 30 20 20 20 20 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d 0a 20 20 20 20 20 ┆D5 C30500 JMP BDOS ; ┆ 0x05fa60…05fa80 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 31 44 38 20 30 45 31 30 20 20 20 20 20 20 43 4c 4f ┆ 01D8 0E10 CLO┆ 0x05fa80…05faa0 53 45 3a 09 4d 56 49 09 43 2c 43 4c 4f 53 45 46 09 3b 0d 0a 20 30 31 44 41 20 43 33 30 35 30 30 ┆SE: MVI C,CLOSEF ; 01DA C30500┆ 0x05faa0…05fac0 20 20 20 20 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ JMP BDOS ; ┆ 0x05fac0…05fae0 20 20 0d 0a 20 30 31 44 44 20 30 45 31 33 20 20 20 20 20 20 44 45 4c 45 54 45 3a 09 4d 56 49 09 ┆ 01DD 0E13 DELETE: MVI ┆ 0x05fae0…05fb00 43 2c 44 45 4c 45 54 45 46 09 3b 0d 0a 20 30 31 44 46 20 43 33 30 35 30 30 20 20 20 20 09 4a 4d ┆C,DELETEF ; 01DF C30500 JM┆ 0x05fb00…05fb20 50 09 42 44 4f 53 09 09 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 31 ┆P BDOS ; 01┆ 0x05fb20…05fb40 45 32 20 30 45 31 34 20 20 20 20 20 20 52 45 41 44 3a 09 4d 56 49 09 43 2c 52 45 41 44 46 09 09 ┆E2 0E14 READ: MVI C,READF ┆ 0x05fb40…05fb60 3b 0d 0a 20 30 31 45 34 20 43 33 30 35 30 30 20 20 20 20 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d ┆; 01E4 C30500 JMP BDOS ; ┆ 0x05fb60…05fb80 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 31 45 37 20 30 45 31 35 20 20 20 ┆ 01E7 0E15 ┆ 0x05fb80…05fba0 20 20 20 57 52 49 54 45 3a 09 4d 56 49 09 43 2c 57 52 49 54 45 46 09 3b 0d 0a 20 30 31 45 39 20 ┆ WRITE: MVI C,WRITEF ; 01E9 ┆ 0x05fba0…05fbc0 43 33 30 35 30 30 20 20 20 20 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d 0a 20 20 20 20 20 20 20 20 ┆C30500 JMP BDOS ; ┆ 0x05fbc0…05fbe0 20 20 20 20 20 20 20 20 0d 0a 20 30 31 45 43 20 30 45 31 36 20 20 20 20 20 20 4d 41 4b 45 3a 09 ┆ 01EC 0E16 MAKE: ┆ 0x05fbe0…05fc00 4d 56 49 09 43 2c 4d 41 4b 45 46 09 09 3b 0d 0a 20 30 31 45 45 20 43 33 30 35 30 30 20 20 20 20 ┆MVI C,MAKEF ; 01EE C30500 ┆ 0x05fc00…05fc20 (25, 1, 2) 30 32 37 37 31 31 46 42 30 31 43 44 46 36 30 31 43 44 43 36 30 31 43 44 41 32 0d 0a 3a 31 30 30 ┆027711FB01CDF601CDC601CDA2 :100┆ 0x05fc20…05fc40 31 43 30 30 30 43 42 30 31 32 41 32 31 30 32 45 39 30 45 30 31 43 33 30 35 30 30 30 45 30 44 31 ┆1C000CB012A2102E90E01C305000E0D1┆ 0x05fc40…05fc60 31 30 33 30 30 32 37 0d 0a 3a 31 30 30 31 44 30 30 30 43 33 30 35 30 30 30 45 30 46 43 33 30 35 ┆1030027 :1001D000C305000E0FC305┆ 0x05fc60…05fc80 30 30 30 45 31 30 43 33 30 35 30 30 30 45 31 33 43 33 41 38 0d 0a 3a 31 30 30 31 45 30 30 30 30 ┆000E10C305000E13C3A8 :1001E0000┆ 0x05fc80…05fca0 35 30 30 30 45 31 34 43 33 30 35 30 30 30 45 31 35 43 33 30 35 30 30 30 45 31 36 43 33 30 35 34 ┆5000E14C305000E15C305000E16C3054┆ 0x05fca0…05fcc0 39 0d 0a 3a 31 30 30 31 46 30 30 30 30 30 30 45 31 41 43 33 30 35 30 30 30 45 30 39 43 33 30 35 ┆9 :1001F000000E1AC305000E09C305┆ 0x05fcc0…05fce0 30 30 34 39 34 45 35 33 34 35 35 32 41 46 0d 0a 3a 31 30 30 32 30 30 30 30 35 34 32 30 34 34 34 ┆00494E534552AF :100200005420444┆ 0x05fce0…05fd00 39 35 33 34 42 32 30 34 31 34 45 34 34 32 30 35 34 35 39 35 30 34 35 32 30 44 41 0d 0a 3a 31 30 ┆9534B20414E44205459504520DA :10┆ 0x05fd00…05fd20 30 32 31 30 30 30 33 43 35 32 34 35 35 34 35 35 35 32 34 45 33 45 32 34 30 30 30 30 30 30 30 30 ┆0210003C52455455524E3E2400000000┆ 0x05fd20…05fd40 30 30 30 30 30 30 36 30 0d 0a 3a 30 33 30 32 32 30 30 30 30 30 30 30 30 30 44 42 0d 0a 3a 30 30 ┆00000060 :03022000000000DB :00┆ 0x05fd40…05fd60 30 31 30 30 30 30 46 46 0d 0a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆010000FF ┆ 0x05fd60…05fd80 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆ ┆ 0x05fd80…05fda0 31 43 44 33 35 30 31 46 45 35 33 43 32 34 35 30 31 39 39 0d 0a 3a 31 30 30 31 39 30 30 30 43 44 ┆1CD3501FE53C2450199 :10019000CD┆ 0x05fda0…05fdc0 33 35 30 31 46 45 32 30 43 32 34 35 30 31 32 31 31 44 30 32 31 36 30 30 35 38 31 39 37 31 46 45 ┆3501FE20C24501211D021600581971FE┆ 0x05fdc0…05fde0 0d 0a 3a 31 30 30 31 41 30 30 30 43 33 34 35 30 31 44 42 31 34 45 36 38 30 43 32 42 36 30 31 32 ┆ :1001A000C34501DB14E680C2B6012┆ 0x05fde0…05fe00 41 31 39 30 32 33 41 31 44 30 32 44 41 0d 0a 3a 31 30 30 31 42 30 30 30 37 37 32 33 33 41 31 45 ┆A19023A1D02DA :1001B00077233A1E┆ 0x05fe00…05fe20 (25, 1, 3) 3a 09 4d 56 49 09 43 2c 43 4c 4f 53 45 46 09 3b 0d 0a 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d 0a ┆: MVI C,CLOSEF ; JMP BDOS ; ┆ 0x05fe20…05fe40 0d 0a 44 45 4c 45 54 45 3a 09 4d 56 49 09 43 2c 44 45 4c 45 54 45 46 09 3b 0d 0a 09 4a 4d 50 09 ┆ DELETE: MVI C,DELETEF ; JMP ┆ 0x05fe40…05fe60 42 44 4f 53 09 09 3b 0d 0a 0d 0a 52 45 41 44 3a 09 4d 56 49 09 43 2c 52 45 41 44 46 09 09 3b 0d ┆BDOS ; READ: MVI C,READF ; ┆ 0x05fe60…05fe80 0a 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d 0a 0d 0a 57 52 49 54 45 3a 09 4d 56 49 09 43 2c 57 52 ┆ JMP BDOS ; WRITE: MVI C,WR┆ 0x05fe80…05fea0 49 54 45 46 09 3b 0d 0a 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d 0a 0d 0a 4d 41 4b 45 3a 09 4d 56 ┆ITEF ; JMP BDOS ; MAKE: MV┆ 0x05fea0…05fec0 49 09 43 2c 4d 41 4b 45 46 09 09 3b 0d 0a 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d 0a 0d 0a 53 45 ┆I C,MAKEF ; JMP BDOS ; SE┆ 0x05fec0…05fee0 54 44 4d 41 3a 09 4d 56 49 09 43 2c 53 44 4d 41 46 09 09 3b 0d 0a 09 4a 4d 50 09 42 44 4f 53 09 ┆TDMA: MVI C,SDMAF ; JMP BDOS ┆ 0x05fee0…05ff00 09 3b 0d 0a 0d 0a 50 52 49 4e 54 3a 09 4d 56 49 09 43 2c 50 52 49 4e 54 46 09 3b 0d 0a 09 4a 4d ┆ ; PRINT: MVI C,PRINTF ; JM┆ 0x05ff00…05ff20 50 09 42 44 4f 53 09 09 3b 0d 0a 0d 0a 0d 0a 53 57 4f 50 3a 09 44 42 09 27 49 4e 53 45 52 20 44 ┆P BDOS ; SWOP: DB 'INSER D┆ 0x05ff20…05ff40 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 54 55 52 4e 3e 27 2c 31 33 2c 31 30 2c 33 36 0d ┆ISK AND TYPE <RETURN>',13,10,36 ┆ 0x05ff40…05ff60 0a 0d 0a 41 46 4f 52 4d 3a 09 44 57 09 30 0d 0a 53 46 4f 52 4d 3a 09 44 57 09 30 0d 0a 43 46 4f ┆ AFORM: DW 0 SFORM: DW 0 CFO┆ 0x05ff60…05ff80 52 4d 3a 20 20 44 57 09 30 0d 0a 43 41 44 44 52 3a 09 44 57 09 30 0d 0a 0d 0a 0d 0a 43 43 50 52 ┆RM: DW 0 CADDR: DW 0 CCPR┆ 0x05ff80…05ffa0 45 54 3a 20 44 57 09 30 0d 0a 0d 0a 44 46 43 42 3a 09 44 53 09 33 33 09 09 3b 20 44 45 53 54 49 ┆ET: DW 0 DFCB: DS 33 ; DESTI┆ 0x05ffa0…05ffc0 4e 41 54 49 4f 4e 20 46 43 42 0d 0a 44 46 43 42 43 52 09 45 51 55 09 44 46 43 42 2b 33 32 09 09 ┆NATION FCB DFCBCR EQU DFCB+32 ┆ 0x05ffc0…05ffe0 3b 0d 0a 0d 0a 09 44 53 09 33 31 09 09 3b 0d 0a 53 54 41 43 4b 3a 09 44 53 09 31 09 09 3b 20 4c ┆; DS 31 ; STACK: DS 1 ; L┆ 0x05ffe0…060000 4f 43 41 4c 20 53 54 41 43 4b 0d 0a 0d 0a 0d 0a 09 45 4e 44 09 30 31 30 30 48 0d 0a 1a 1a 1a 1a ┆OCAL STACK END 0100H ┆ 0x060000…060020 (25, 1, 4) 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆********************************┆ 0x060020…060040 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 0a 3b 0d 0a ┆*************************** ; ┆ 0x060040…060060 3b 0d 0a 3b 09 43 4f 50 59 52 49 47 48 54 20 28 43 29 20 31 39 37 36 2c 20 31 39 37 37 2c 20 31 ┆; ; COPYRIGHT (C) 1976, 1977, 1┆ 0x060060…060080 39 37 38 2c 20 31 39 37 39 2c 20 31 39 38 30 0d 0a 3b 09 44 49 47 49 54 41 4c 20 52 45 53 45 41 ┆978, 1979, 1980 ; DIGITAL RESEA┆ 0x060080…0600a0 52 43 48 0d 0a 3b 09 42 4f 58 20 35 37 39 20 50 41 43 49 46 49 43 20 47 52 4f 56 45 0d 0a 3b 09 ┆RCH ; BOX 579 PACIFIC GROVE ; ┆ 0x0600a0…0600c0 43 41 4c 49 46 4f 52 4e 49 41 2c 20 39 33 39 35 30 0d 0a 3b 0d 0a 54 50 41 09 45 51 55 09 31 30 ┆CALIFORNIA, 93950 ; TPA EQU 10┆ 0x0600c0…0600e0 30 48 09 3b 54 52 41 4e 53 49 45 4e 54 20 50 52 4f 47 52 41 4d 20 41 52 45 41 0d 0a 09 4f 52 47 ┆0H ;TRANSIENT PROGRAM AREA ORG┆ 0x0600e0…060100 09 54 50 41 0d 0a 09 4a 4d 50 09 53 54 41 52 54 0d 0a 09 44 42 09 27 43 4f 50 59 52 49 47 48 54 ┆ TPA JMP START DB 'COPYRIGHT┆ 0x060100…060120 20 28 43 29 20 31 39 38 30 2c 20 44 49 47 49 54 41 4c 20 52 45 53 45 41 52 43 48 20 27 0d 0a 3b ┆ (C) 1980, DIGITAL RESEARCH ' ;┆ 0x060120…060140 0d 0a 3b 09 47 4c 4f 42 41 4c 20 45 51 55 41 54 45 53 0d 0a 42 4f 4f 54 09 45 51 55 09 30 30 30 ┆ ; GLOBAL EQUATES BOOT EQU 000┆ 0x060140…060160 30 48 0d 0a 42 44 4f 53 09 45 51 55 09 30 30 30 35 48 0d 0a 43 4f 4e 49 4e 09 45 51 55 09 31 09 ┆0H BDOS EQU 0005H CONIN EQU 1 ┆ 0x060160…060180 3b 52 45 41 44 20 43 4f 4e 53 4f 4c 45 20 44 45 56 49 43 45 0d 0a 52 44 42 55 46 46 09 45 51 55 ┆;READ CONSOLE DEVICE RDBUFF EQU┆ 0x060180…0601a0 09 31 30 09 3b 52 45 41 44 20 42 55 46 46 45 52 0d 0a 50 42 55 46 46 09 45 51 55 09 39 09 3b 50 ┆ 10 ;READ BUFFER PBUFF EQU 9 ;P┆ 0x0601a0…0601c0 52 49 4e 54 20 42 55 46 46 45 52 0d 0a 43 52 09 45 51 55 09 30 44 48 0d 0a 4c 46 09 45 51 55 09 ┆RINT BUFFER CR EQU 0DH LF EQU ┆ 0x0601c0…0601e0 30 41 48 0d 0a 53 57 31 09 45 51 55 09 31 34 48 0d 0a 3b 0d 0a 43 43 50 42 09 45 51 55 09 32 39 ┆0AH SW1 EQU 14H ; CCPB EQU 29┆ 0x0601e0…060200 30 30 48 09 3b 43 4f 4e 53 4f 4c 45 20 50 52 4f 43 45 53 53 4f 52 20 42 41 53 45 0d 0a 42 44 4f ┆00H ;CONSOLE PROCESSOR BASE BDO┆ 0x060200…060220 (25, 1, 5) 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a ┆ JMP BDOS ; ┆ 0x060220…060240 20 30 31 46 31 20 30 45 31 41 20 20 20 20 20 20 53 45 54 44 4d 41 3a 09 4d 56 49 09 43 2c 53 44 ┆ 01F1 0E1A SETDMA: MVI C,SD┆ 0x060240…060260 4d 41 46 09 09 3b 0d 0a 20 30 31 46 33 20 43 33 30 35 30 30 20 20 20 20 09 4a 4d 50 09 42 44 4f ┆MAF ; 01F3 C30500 JMP BDO┆ 0x060260…060280 53 09 09 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 31 46 36 20 30 45 ┆S ; 01F6 0E┆ 0x060280…0602a0 30 39 20 20 20 20 20 20 50 52 49 4e 54 3a 09 4d 56 49 09 43 2c 50 52 49 4e 54 46 09 3b 0d 0a 20 ┆09 PRINT: MVI C,PRINTF ; ┆ 0x0602a0…0602c0 30 31 46 38 20 43 33 30 35 30 30 20 20 20 20 09 4a 4d 50 09 42 44 4f 53 09 09 3b 0d 0a 20 20 20 ┆01F8 C30500 JMP BDOS ; ┆ 0x0602c0…0602e0 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d ┆ ┆ 0x0602e0…060300 0a 20 30 31 46 42 20 34 39 34 45 35 33 34 35 35 32 53 57 4f 50 3a 09 44 42 09 27 49 4e 53 45 52 ┆ 01FB 494E534552SWOP: DB 'INSER┆ 0x060300…060320 54 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 54 55 52 4e 3e 27 2c 33 36 0d 0a 20 20 ┆T DISK AND TYPE <RETURN>',36 ┆ 0x060320…060340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 32 31 39 20 30 30 30 30 20 20 20 20 20 20 ┆ 0219 0000 ┆ 0x060340…060360 41 46 4f 52 4d 3a 09 44 57 09 30 0d 0a 20 30 32 31 42 20 30 30 30 30 20 20 20 20 20 20 53 46 4f ┆AFORM: DW 0 021B 0000 SFO┆ 0x060360…060380 52 4d 3a 09 44 57 09 30 0d 0a 20 30 32 31 44 20 30 30 30 30 20 20 20 20 20 20 43 46 4f 52 4d 3a ┆RM: DW 0 021D 0000 CFORM:┆ 0x060380…0603a0 20 20 44 57 09 30 0d 0a 20 30 32 31 46 20 30 30 30 30 20 20 20 20 20 20 43 41 44 44 52 3a 09 44 ┆ DW 0 021F 0000 CADDR: D┆ 0x0603a0…0603c0 57 09 30 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 ┆W 0 ┆ 0x0603c0…0603e0 20 20 20 20 20 20 20 0d 0a 20 30 32 32 31 20 30 30 30 30 20 20 20 20 20 20 43 43 50 52 45 54 3a ┆ 0221 0000 CCPRET:┆ 0x0603e0…060400 20 44 57 09 30 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 32 32 33 20 20 ┆ DW 0 0223 ┆ 0x060400…060420 (25, 1, 6) 53 0d 0a 09 4c 58 49 09 44 2c 46 44 46 4f 52 4d 09 3b 0d 0a 09 44 41 44 09 44 09 09 3b 0d 0a 09 ┆S LXI D,FDFORM ; DAD D ; ┆ 0x060420…060440 53 48 4c 44 09 41 46 4f 52 4d 09 09 3b 0d 0a 09 4d 4f 56 09 41 2c 4d 09 09 3b 0d 0a 09 53 54 41 ┆SHLD AFORM ; MOV A,M ; STA┆ 0x060440…060460 09 53 46 4f 52 4d 09 09 3b 0d 0a 09 49 4e 58 09 48 09 09 3b 0d 0a 09 4d 4f 56 09 41 2c 4d 09 09 ┆ SFORM ; INX H ; MOV A,M ┆ 0x060460…060480 3b 0d 0a 09 53 54 41 09 53 46 4f 52 4d 2b 31 09 09 3b 0d 0a 09 4c 48 4c 44 09 53 46 4f 52 4d 09 ┆; STA SFORM+1 ; LHLD SFORM ┆ 0x060480…0604a0 09 3b 0d 0a 09 53 48 4c 44 09 43 46 4f 52 4d 09 09 3b 0d 0a 09 4c 58 49 09 48 2c 44 42 55 46 46 ┆ ; SHLD CFORM ; LXI H,DBUFF┆ 0x0604a0…0604c0 09 09 3b 20 53 45 54 55 50 20 43 48 41 52 20 53 43 41 4e 0d 0a 09 49 4e 58 09 48 09 09 3b 0d 0a ┆ ; SETUP CHAR SCAN INX H ; ┆ 0x0604c0…0604e0 09 53 48 4c 44 09 43 41 44 44 52 09 09 3b 0d 0a 09 4a 4d 50 09 53 43 41 4e 09 09 3b 0d 0a 0d 0a ┆ SHLD CADDR ; JMP SCAN ; ┆ 0x0604e0…060500 4e 43 48 41 52 3a 20 20 4c 58 49 09 48 2c 44 42 55 46 46 09 09 3b 20 47 45 54 20 4e 45 58 54 20 ┆NCHAR: LXI H,DBUFF ; GET NEXT ┆ 0x060500…060520 43 48 41 52 3a 0d 0a 09 44 43 52 09 4d 09 09 3b 0d 0a 09 4a 5a 09 53 45 54 46 44 46 09 09 3b 20 ┆CHAR: DCR M ; JZ SETFDF ; ┆ 0x060520…060540 49 46 20 45 4f 4c 20 54 48 45 4e 20 45 58 49 54 0d 0a 09 4c 48 4c 44 09 43 41 44 44 52 09 09 3b ┆IF EOL THEN EXIT LHLD CADDR ;┆ 0x060540…060560 0d 0a 09 4d 4f 56 09 41 2c 4d 09 09 3b 20 20 20 20 20 20 20 20 45 4c 53 45 20 50 49 43 4b 55 50 ┆ MOV A,M ; ELSE PICKUP┆ 0x060560…060580 20 43 48 41 52 3b 0d 0a 09 49 4e 58 09 48 09 09 3b 0d 0a 09 53 48 4c 44 09 43 41 44 44 52 09 09 ┆ CHAR; INX H ; SHLD CADDR ┆ 0x060580…0605a0 3b 0d 0a 09 52 45 54 09 09 20 09 3b 20 52 45 54 55 52 4e 3b 0d 0a 0d 0a 53 43 41 4e 3a 09 4c 58 ┆; RET ; RETURN; SCAN: LX┆ 0x0605a0…0605c0 49 09 42 2c 30 09 09 3b 20 44 52 49 56 45 2c 44 45 4e 53 49 54 59 3a 3d 41 2c 53 53 0d 0a 09 43 ┆I B,0 ; DRIVE,DENSITY:=A,SS C┆ 0x0605c0…0605e0 41 4c 4c 09 4e 43 48 41 52 09 09 3b 0d 0a 09 43 50 49 09 27 41 27 09 09 3b 20 53 45 41 52 43 48 ┆ALL NCHAR ; CPI 'A' ; SEARCH┆ 0x0605e0…060600 20 41 20 4f 52 20 42 20 44 52 49 56 45 3a 0d 0a 09 4a 5a 09 53 43 4f 4c 09 09 3b 0d 0a 09 43 50 ┆ A OR B DRIVE: JZ SCOL ; CP┆ 0x060600…060620 (25, 1, 7) 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 6c 69 73 74 09 6c 69 73 74 20 ┆ut (char in reg-c) ; list list ┆ 0x060620…060640 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 70 75 6e 63 68 09 70 75 6e ┆out (char in reg-c) ; punch pun┆ 0x060640…060660 63 68 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 72 65 61 64 65 72 ┆ch out (char in reg-c) ; reader┆ 0x060660…060680 09 70 61 70 65 72 20 74 61 70 65 20 72 65 61 64 65 72 20 69 6e 20 28 72 65 73 75 6c 74 20 74 6f ┆ paper tape reader in (result to┆ 0x060680…0606a0 20 72 65 67 2d 61 29 0d 0a 3b 09 68 6f 6d 65 09 6d 6f 76 65 20 74 6f 20 74 72 61 63 6b 20 30 30 ┆ reg-a) ; home move to track 00┆ 0x0606a0…0606c0 0d 0a 3b 0d 0a 3b 09 28 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 61 6c 6c 73 20 73 65 74 2d ┆ ; ; (the following calls set-┆ 0x0606c0…0606e0 75 70 20 74 68 65 20 69 6f 20 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 20 66 6f 72 20 74 68 ┆up the io parameter block for th┆ 0x0606e0…060700 65 0d 0a 3b 09 6d 64 73 2c 20 77 68 69 63 68 20 69 73 20 75 73 65 64 20 74 6f 20 70 65 72 66 6f ┆e ; mds, which is used to perfo┆ 0x060700…060720 72 6d 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 73 20 61 6e 64 20 77 72 69 74 65 73 29 0d ┆rm subsequent reads and writes) ┆ 0x060720…060740 0a 3b 09 73 65 6c 64 73 6b 09 73 65 6c 65 63 74 20 64 69 73 6b 20 67 69 76 65 6e 20 62 79 20 72 ┆ ; seldsk select disk given by r┆ 0x060740…060760 65 67 2d 63 20 28 30 2c 31 2c 32 2e 2e 2e 29 0d 0a 3b 09 73 65 74 74 72 6b 09 73 65 74 20 74 72 ┆eg-c (0,1,2...) ; settrk set tr┆ 0x060760…060780 61 63 6b 20 61 64 64 72 65 73 73 20 28 30 2c 2e 2e 2e 37 36 29 20 66 6f 72 20 73 75 62 73 65 71 ┆ack address (0,...76) for subseq┆ 0x060780…0607a0 75 65 6e 74 20 72 65 61 64 2f 77 72 69 74 65 0d 0a 3b 09 73 65 74 73 65 63 09 73 65 74 20 73 65 ┆uent read/write ; setsec set se┆ 0x0607a0…0607c0 63 74 6f 72 20 61 64 64 72 65 73 73 20 28 31 2c 2e 2e 2e 2c 32 36 29 20 66 6f 72 20 73 75 62 73 ┆ctor address (1,...,26) for subs┆ 0x0607c0…0607e0 65 71 75 65 6e 74 20 72 65 61 64 2f 77 72 69 74 65 0d 0a 3b 09 73 65 74 64 6d 61 09 73 65 74 20 ┆equent read/write ; setdma set ┆ 0x0607e0…060800 73 75 62 73 65 71 75 65 6e 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 28 69 6e 69 74 69 61 6c 6c ┆subsequent dma address (initiall┆ 0x060800…060820 (25, 1, 8) 53 42 09 45 51 55 09 33 31 30 30 48 09 3b 42 41 53 49 43 20 44 4f 53 20 42 41 53 45 0d 0a 4f 46 ┆SB EQU 3100H ;BASIC DOS BASE OF┆ 0x060820…060840 46 53 45 54 09 45 51 55 09 30 30 48 09 3b 53 50 41 43 45 20 46 4f 52 20 43 4f 4c 44 20 42 4f 4f ┆FSET EQU 00H ;SPACE FOR COLD BOO┆ 0x060840…060860 54 20 4f 4e 20 44 49 53 4b 0d 0a 53 4c 45 4e 09 45 51 55 09 42 44 4f 53 42 2d 43 43 50 42 09 3b ┆T ON DISK SLEN EQU BDOSB-CCPB ;┆ 0x060860…060880 53 45 41 52 43 48 20 4c 45 4e 47 54 48 20 46 4f 52 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 0d ┆SEARCH LENGTH FOR SERIAL NUMBER ┆ 0x060880…0608a0 0a 3b 0d 0a 52 45 41 44 54 52 4b 09 45 51 55 09 24 0d 0a 57 52 49 54 54 52 4b 09 45 51 55 09 24 ┆ ; READTRK EQU $ WRITTRK EQU $┆ 0x0608a0…0608c0 2b 33 0d 0a 52 45 52 45 41 44 09 45 51 55 09 24 2b 36 0d 0a 3b 09 54 52 41 43 4b 20 52 45 41 44 ┆+3 REREAD EQU $+6 ; TRACK READ┆ 0x0608c0…0608e0 2f 57 52 49 54 45 20 52 4f 55 54 49 4e 45 53 2c 20 46 49 4c 4c 45 44 20 49 4e 20 4c 41 54 45 52 ┆/WRITE ROUTINES, FILLED IN LATER┆ 0x0608e0…060900 0d 0a 09 4a 4d 50 09 52 45 41 44 24 44 49 53 4b 0d 0a 09 4a 4d 50 09 57 52 49 54 45 24 44 49 53 ┆ JMP READ$DISK JMP WRITE$DIS┆ 0x060900…060920 4b 0d 0a 09 4a 4d 50 09 52 45 24 52 45 41 44 24 44 49 53 4b 0d 0a 54 52 41 43 4b 3a 09 44 53 09 ┆K JMP RE$READ$DISK TRACK: DS ┆ 0x060920…060940 31 09 3b 53 45 54 20 54 4f 20 54 52 41 43 4b 20 54 4f 20 52 45 41 44 2f 57 52 49 54 45 0d 0a 42 ┆1 ;SET TO TRACK TO READ/WRITE B┆ 0x060940…060960 55 46 46 41 3a 09 44 53 09 32 09 3b 53 45 54 20 54 4f 20 42 55 46 46 45 52 20 41 44 44 52 45 53 ┆UFFA: DS 2 ;SET TO BUFFER ADDRES┆ 0x060960…060980 53 20 54 4f 20 52 45 41 44 2f 57 52 49 54 45 0d 0a 49 4f 46 3a 09 44 53 09 31 09 3b 49 4f 20 46 ┆S TO READ/WRITE IOF: DS 1 ;IO F┆ 0x060980…0609a0 55 4e 43 54 49 4f 4e 20 30 20 3d 20 52 45 41 44 2c 20 31 20 3d 20 57 52 49 54 45 0d 0a 3b 0d 0a ┆UNCTION 0 = READ, 1 = WRITE ; ┆ 0x0609a0…0609c0 52 45 41 44 24 44 49 53 4b 3a 0d 0a 09 3b 52 45 41 44 20 44 49 53 4b 20 44 52 49 56 45 20 41 2c ┆READ$DISK: ;READ DISK DRIVE A,┆ 0x0609c0…0609e0 20 46 52 4f 4d 20 54 52 41 43 4b 20 27 54 52 41 43 4b 27 0d 0a 09 3b 49 4e 54 4f 20 54 48 45 20 ┆ FROM TRACK 'TRACK' ;INTO THE ┆ 0x0609e0…060a00 41 44 44 52 45 53 53 20 47 49 56 45 4e 20 42 59 20 27 42 55 46 46 41 27 0d 0a 09 58 52 41 20 41 ┆ADDRESS GIVEN BY 'BUFFA' XRA A┆ 0x060a00…060a20 (25, 1, 9) 20 20 20 20 20 20 20 20 20 44 46 43 42 3a 09 44 53 09 33 33 09 09 3b 20 44 45 53 54 49 4e 41 54 ┆ DFCB: DS 33 ; DESTINAT┆ 0x060a20…060a40 49 4f 4e 20 46 43 42 0d 0a 20 30 32 34 33 20 3d 20 20 20 20 20 20 20 20 20 44 46 43 42 43 52 09 ┆ION FCB 0243 = DFCBCR ┆ 0x060a40…060a60 45 51 55 09 44 46 43 42 2b 33 32 09 09 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆EQU DFCB+32 ; ┆ 0x060a60…060a80 0d 0a 20 30 32 34 34 20 20 20 20 20 20 20 20 20 20 20 09 44 53 09 33 31 09 09 3b 0d 0a 20 30 32 ┆ 0244 DS 31 ; 02┆ 0x060a80…060aa0 36 33 20 20 20 20 20 20 20 20 20 20 20 53 54 41 43 4b 3a 09 44 53 09 31 09 09 3b 20 4c 4f 43 41 ┆63 STACK: DS 1 ; LOCA┆ 0x060aa0…060ac0 4c 20 53 54 41 43 4b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 ┆L STACK ┆ 0x060ac0…060ae0 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 32 36 34 20 20 20 20 20 20 20 20 20 20 20 09 45 4e ┆ 0264 EN┆ 0x060ae0…060b00 44 09 30 31 30 30 48 0d 0a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆D 0100H ┆ 0x060b00…060b20 64 69 73 6b 20 73 74 61 74 75 73 20 63 68 61 6e 67 65 64 20 20 20 20 20 20 20 31 31 20 28 6e 6f ┆disk status changed 11 (no┆ 0x060b20…060b40 74 20 75 73 65 64 29 0d 0a 09 63 70 69 09 31 30 62 09 09 3b 72 65 61 64 79 20 73 74 61 74 75 73 ┆t used) cpi 10b ;ready status┆ 0x060b40…060b60 20 63 68 61 6e 67 65 3f 0d 0a 09 6a 7a 09 77 72 65 61 64 79 0d 0a 3b 0d 0a 3b 09 6d 75 73 74 20 ┆ change? jz wready ; ; must ┆ 0x060b60…060b80 62 65 20 30 30 20 69 6e 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 0d 0a 09 6f 72 61 09 61 ┆be 00 in the accumulator ora a┆ 0x060b80…060ba0 0d 0a 09 6a 6e 7a 09 77 65 72 72 6f 72 09 09 3b 73 6f 6d 65 20 6f 74 68 65 72 20 63 6f 6e 64 69 ┆ jnz werror ;some other condi┆ 0x060ba0…060bc0 74 69 6f 6e 2c 20 72 65 74 72 79 0d 0a 3b 0d 0a 3b 09 63 68 65 63 6b 20 69 2f 6f 20 65 72 72 6f ┆tion, retry ; ; check i/o erro┆ 0x060bc0…060be0 72 20 62 69 74 73 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 0d 0a 09 72 61 6c 0d 0a 09 6a 63 09 ┆r bits call inbyte ral jc ┆ 0x060be0…060c00 77 72 65 61 64 79 09 09 3b 75 6e 69 74 20 6e 6f 74 20 72 65 61 64 79 0d 0a 09 72 61 72 0d 0a 09 ┆wready ;unit not ready rar ┆ 0x060c00…060c20 (25, 1, 10) 49 09 27 42 27 09 09 3b 0d 0a 09 4a 4e 5a 09 53 43 41 4e 09 09 3b 0d 0a 09 49 4e 52 09 42 09 09 ┆I 'B' ; JNZ SCAN ; INR B ┆ 0x060c20…060c40 3b 0d 0a 53 43 4f 4c 3a 09 43 41 4c 4c 09 4e 43 48 41 52 09 09 3b 20 53 45 41 52 43 48 20 43 4f ┆; SCOL: CALL NCHAR ; SEARCH CO┆ 0x060c40…060c60 4c 4f 4e 3a 0d 0a 09 43 50 49 09 27 3a 27 09 09 3b 0d 0a 09 4a 4e 5a 09 53 43 41 4e 09 09 3b 0d ┆LON: CPI ':' ; JNZ SCAN ; ┆ 0x060c60…060c80 0a 09 43 41 4c 4c 09 4e 43 48 41 52 09 09 3b 20 53 45 41 52 43 48 20 45 51 55 41 4c 3a 0d 0a 09 ┆ CALL NCHAR ; SEARCH EQUAL: ┆ 0x060c80…060ca0 43 50 49 09 27 3d 27 09 09 3b 0d 0a 09 4a 4e 5a 09 53 43 41 4e 09 09 3b 0d 0a 09 43 41 4c 4c 09 ┆CPI '=' ; JNZ SCAN ; CALL ┆ 0x060ca0…060cc0 4e 43 48 41 52 09 09 3b 20 53 45 41 52 43 48 20 44 45 4e 53 49 54 59 3a 0d 0a 09 43 50 49 09 27 ┆NCHAR ; SEARCH DENSITY: CPI '┆ 0x060cc0…060ce0 53 27 09 09 3b 0d 0a 09 4a 5a 09 53 53 53 09 09 3b 0d 0a 09 43 50 49 09 27 44 27 09 09 3b 0d 0a ┆S' ; JZ SSS ; CPI 'D' ; ┆ 0x060ce0…060d00 09 4a 4e 5a 09 53 43 41 4e 09 09 3b 0d 0a 09 43 41 4c 4c 09 4e 43 48 41 52 09 09 3b 0d 0a 09 43 ┆ JNZ SCAN ; CALL NCHAR ; C┆ 0x060d00…060d20 50 49 09 27 44 27 09 09 3b 0d 0a 09 4a 4e 5a 09 53 43 41 4e 09 09 3b 0d 0a 09 43 41 4c 4c 09 4e ┆PI 'D' ; JNZ SCAN ; CALL N┆ 0x060d20…060d40 43 48 41 52 09 09 3b 20 53 45 41 52 43 48 20 53 50 41 43 45 3a 0d 0a 09 43 50 49 09 27 20 27 09 ┆CHAR ; SEARCH SPACE: CPI ' ' ┆ 0x060d40…060d60 09 3b 0d 0a 09 4a 4e 5a 09 53 43 41 4e 09 09 3b 0d 0a 09 4d 56 49 09 43 2c 38 09 09 3b 0d 0a 09 ┆ ; JNZ SCAN ; MVI C,8 ; ┆ 0x060d60…060d80 4a 4d 50 09 53 45 54 43 46 09 09 3b 0d 0a 53 53 53 3a 09 43 41 4c 4c 09 4e 43 48 41 52 09 09 3b ┆JMP SETCF ; SSS: CALL NCHAR ;┆ 0x060d80…060da0 0d 0a 09 43 50 49 09 27 53 27 09 09 3b 0d 0a 09 4a 4e 5a 09 53 43 41 4e 09 09 3b 0d 0a 09 43 41 ┆ CPI 'S' ; JNZ SCAN ; CA┆ 0x060da0…060dc0 4c 4c 09 4e 43 48 41 52 09 09 3b 0d 0a 09 43 50 49 09 27 20 27 09 09 3b 0d 0a 09 4a 4e 5a 09 53 ┆LL NCHAR ; CPI ' ' ; JNZ S┆ 0x060dc0…060de0 43 41 4e 09 09 3b 0d 0a 53 45 54 43 46 3a 09 4c 58 49 09 48 2c 43 46 4f 52 4d 09 09 3b 20 53 45 ┆CAN ; SETCF: LXI H,CFORM ; SE┆ 0x060de0…060e00 54 20 43 55 52 52 45 4e 54 20 46 4f 52 4d 41 54 3a 0d 0a 09 4d 56 49 09 44 2c 30 09 09 3b 0d 0a ┆T CURRENT FORMAT: MVI D,0 ; ┆ 0x060e00…060e20 (25, 1, 11) 79 20 38 30 68 29 0d 0a 3b 0d 0a 3b 09 28 72 65 61 64 20 61 6e 64 20 77 72 69 74 65 20 61 73 73 ┆y 80h) ; ; (read and write ass┆ 0x060e20…060e40 75 6d 65 20 70 72 65 76 69 6f 75 73 20 63 61 6c 6c 73 20 74 6f 20 73 65 74 20 75 70 20 74 68 65 ┆ume previous calls to set up the┆ 0x060e40…060e60 20 69 6f 20 70 61 72 61 6d 65 74 65 72 73 29 0d 0a 3b 09 72 65 61 64 09 72 65 61 64 20 74 72 61 ┆ io parameters) ; read read tra┆ 0x060e60…060e80 63 6b 2f 73 65 63 74 6f 72 20 74 6f 20 70 72 65 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d ┆ck/sector to preset dma address ┆ 0x060e80…060ea0 0a 3b 09 77 72 69 74 65 09 77 72 69 74 65 20 74 72 61 63 6b 2f 73 65 63 74 6f 72 20 66 72 6f 6d ┆ ; write write track/sector from┆ 0x060ea0…060ec0 20 70 72 65 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b 09 6a 75 6d 70 20 76 ┆ preset dma address ; ; jump v┆ 0x060ec0…060ee0 65 63 74 6f 72 20 66 6f 72 20 69 6e 64 69 76 69 75 61 6c 20 72 6f 75 74 69 6e 65 73 0d 0a 09 6a ┆ector for indiviual routines j┆ 0x060ee0…060f00 6d 70 09 62 6f 6f 74 0d 0a 77 62 6f 6f 74 65 3a 09 6a 6d 70 09 77 62 6f 6f 74 0d 0a 09 6a 6d 70 ┆mp boot wboote: jmp wboot jmp┆ 0x060f00…060f20 09 63 6f 6e 73 74 0d 0a 09 6a 6d 70 09 63 6f 6e 69 6e 0d 0a 09 6a 6d 70 09 63 6f 6e 6f 75 74 0d ┆ const jmp conin jmp conout ┆ 0x060f20…060f40 0a 09 6a 6d 70 09 6c 69 73 74 0d 0a 09 6a 6d 70 09 70 75 6e 63 68 0d 0a 09 6a 6d 70 09 72 65 61 ┆ jmp list jmp punch jmp rea┆ 0x060f40…060f60 64 65 72 0d 0a 09 6a 6d 70 09 68 6f 6d 65 0d 0a 09 6a 6d 70 09 73 65 6c 64 73 6b 0d 0a 09 6a 6d ┆der jmp home jmp seldsk jm┆ 0x060f60…060f80 70 09 73 65 74 74 72 6b 0d 0a 09 6a 6d 70 09 73 65 74 73 65 63 0d 0a 09 6a 6d 70 09 73 65 74 64 ┆p settrk jmp setsec jmp setd┆ 0x060f80…060fa0 6d 61 0d 0a 09 6a 6d 70 09 72 65 61 64 0d 0a 09 6a 6d 70 09 77 72 69 74 65 0d 0a 09 6a 6d 70 09 ┆ma jmp read jmp write jmp ┆ 0x060fa0…060fc0 6c 69 73 74 73 74 09 3b 6c 69 73 74 20 73 74 61 74 75 73 0d 0a 09 6a 6d 70 09 73 65 63 74 72 61 ┆listst ;list status jmp sectra┆ 0x060fc0…060fe0 6e 0d 0a 3b 0d 0a 09 6d 61 63 6c 69 62 09 64 69 73 6b 64 65 66 09 3b 6c 6f 61 64 20 74 68 65 20 ┆n ; maclib diskdef ;load the ┆ 0x060fe0…061000 64 69 73 6b 20 64 65 66 69 6e 69 74 69 6f 6e 20 6c 69 62 72 61 72 79 0d 0a 09 64 69 73 6b 73 09 ┆disk definition library disks ┆ 0x061000…061020 (25, 1, 12) 21 20 43 41 4c 4c 20 53 45 4c 20 3b 53 45 4c 45 43 54 20 44 52 49 56 45 20 41 0d 0a 09 4a 4d 50 ┆! CALL SEL ;SELECT DRIVE A JMP┆ 0x061020…061040 20 52 45 41 44 24 44 0d 0a 3b 0d 0a 3b 0d 0a 57 52 49 54 45 24 44 49 53 4b 3a 0d 0a 09 3b 57 52 ┆ READ$D ; ; WRITE$DISK: ;WR┆ 0x061040…061060 49 54 45 20 54 4f 20 44 49 53 4b 20 44 52 49 56 45 20 42 2c 20 54 4f 20 54 52 41 43 4b 20 27 54 ┆ITE TO DISK DRIVE B, TO TRACK 'T┆ 0x061060…061080 52 41 43 4b 27 0d 0a 09 3b 46 52 4f 4d 20 54 48 45 20 41 44 44 52 45 53 53 20 47 49 56 45 4e 20 ┆RACK' ;FROM THE ADDRESS GIVEN ┆ 0x061080…0610a0 42 59 20 27 42 55 46 46 41 27 0d 0a 09 4d 56 49 20 41 2c 31 21 20 53 54 41 20 49 4f 46 20 3b 53 ┆BY 'BUFFA' MVI A,1! STA IOF ;S┆ 0x0610a0…0610c0 45 54 20 49 4f 46 55 4e 43 54 49 4f 4e 20 54 4f 20 57 52 49 54 45 0d 0a 09 43 41 4c 4c 20 53 45 ┆ET IOFUNCTION TO WRITE CALL SE┆ 0x0610c0…0610e0 4c 20 3b 53 45 4c 45 43 54 20 44 52 49 56 45 20 42 0d 0a 09 4a 4d 50 20 52 57 24 44 49 53 4b 0d ┆L ;SELECT DRIVE B JMP RW$DISK ┆ 0x0610e0…061100 0a 3b 0d 0a 52 45 24 52 45 41 44 24 44 49 53 4b 3a 0d 0a 09 3b 52 45 41 44 20 46 52 4f 4d 20 44 ┆ ; RE$READ$DISK: ;READ FROM D┆ 0x061100…061120 49 53 4b 20 44 52 49 56 45 20 42 2c 20 46 52 4f 4d 20 54 52 41 43 4b 20 27 54 52 41 43 4b 27 0d ┆ISK DRIVE B, FROM TRACK 'TRACK' ┆ 0x061120…061140 0a 09 3b 54 4f 20 54 48 45 20 41 44 44 52 45 53 53 20 47 49 56 45 4e 20 42 59 20 27 42 55 46 46 ┆ ;TO THE ADDRESS GIVEN BY 'BUFF┆ 0x061140…061160 41 27 0d 0a 09 4d 56 49 20 41 2c 31 21 20 43 41 4c 4c 20 53 45 4c 20 3b 44 52 49 56 45 20 42 20 ┆A' MVI A,1! CALL SEL ;DRIVE B ┆ 0x061160…061180 53 45 4c 45 43 54 45 44 0d 0a 09 52 45 41 44 24 44 3a 20 58 52 41 20 41 21 20 53 54 41 20 49 4f ┆SELECTED READ$D: XRA A! STA IO┆ 0x061180…0611a0 46 20 3b 53 45 54 20 54 4f 20 52 45 41 44 20 46 55 4e 43 54 49 4f 4e 0d 0a 09 52 57 24 44 49 53 ┆F ;SET TO READ FUNCTION RW$DIS┆ 0x0611a0…0611c0 4b 3a 20 3b 52 45 41 44 20 4f 52 20 57 52 49 54 45 20 44 49 53 4b 0d 0a 09 09 4c 58 49 20 48 2c ┆K: ;READ OR WRITE DISK LXI H,┆ 0x0611c0…0611e0 54 52 41 43 4b 21 20 4d 4f 56 20 43 2c 4d 20 3b 47 45 54 20 54 52 41 43 4b 20 4e 55 4d 42 45 52 ┆TRACK! MOV C,M ;GET TRACK NUMBER┆ 0x0611e0…061200 0d 0a 09 09 43 41 4c 4c 20 54 52 4b 20 3b 54 52 41 43 4b 20 53 45 4c 45 43 54 45 44 0d 0a 09 09 ┆ CALL TRK ;TRACK SELECTED ┆ 0x061200…061220 (25, 1, 13) 3a 31 30 30 31 30 30 30 30 45 31 32 32 32 31 30 32 33 31 36 33 30 32 32 31 38 30 30 30 33 34 35 ┆:10010000E1222102316302218000345┆ 0x061220…061240 45 33 34 31 36 30 30 31 39 39 44 0d 0a 3a 31 30 30 31 31 30 30 30 33 36 32 30 32 41 30 31 30 30 ┆E341600199D :1001100036202A0100┆ 0x061240…061260 31 31 33 34 30 30 31 39 32 32 31 39 30 32 37 45 33 32 31 42 30 32 46 36 0d 0a 3a 31 30 30 31 32 ┆113400192219027E321B02F6 :10012┆ 0x061260…061280 30 30 30 32 33 37 45 33 32 31 43 30 32 32 41 31 42 30 32 32 32 31 44 30 32 32 31 38 30 30 30 32 ┆000237E321C022A1B02221D022180002┆ 0x061280…0612a0 33 32 32 37 30 0d 0a 3a 31 30 30 31 33 30 30 30 31 46 30 32 43 33 34 35 30 31 32 31 38 30 30 30 ┆32270 :100130001F02C34501218000┆ 0x0612a0…0612c0 33 35 43 41 41 33 30 31 32 41 31 46 30 32 37 45 38 38 0d 0a 3a 31 30 30 31 34 30 30 30 32 33 32 ┆35CAA3012A1F027E88 :10014000232┆ 0x0612c0…0612e0 32 31 46 30 32 43 39 30 31 30 30 30 30 43 44 33 35 30 31 46 45 34 31 43 41 35 36 30 31 31 43 0d ┆21F02C9010000CD3501FE41CA56011C ┆ 0x0612e0…061300 0a 3a 31 30 30 31 35 30 30 30 46 45 34 32 43 32 34 35 30 31 30 34 43 44 33 35 30 31 46 45 33 41 ┆ :10015000FE42C2450104CD3501FE3A┆ 0x061300…061320 43 32 34 35 30 31 43 44 33 35 30 45 0d 0a 3a 31 30 30 31 36 30 30 30 30 31 46 45 33 44 43 32 34 ┆C24501CD350E :1001600001FE3DC24┆ 0x061320…061340 35 30 31 43 44 33 35 30 31 46 45 35 33 43 41 38 38 30 31 46 45 34 34 36 32 0d 0a 3a 31 30 30 31 ┆501CD3501FE53CA8801FE4462 :1001┆ 0x061340…061360 37 30 30 30 43 32 34 35 30 31 43 44 33 35 30 31 46 45 34 34 43 32 34 35 30 31 43 44 33 35 30 31 ┆7000C24501CD3501FE44C24501CD3501┆ 0x061360…061380 46 45 32 30 30 39 0d 0a 3a 31 30 30 31 38 30 30 30 43 32 34 35 30 31 30 45 30 38 43 33 39 38 30 ┆FE2009 :10018000C245010E08C3980┆ 0x061380…0613a0 31 43 44 33 35 30 31 46 45 35 33 43 32 34 35 30 31 39 39 0d 0a 3a 31 30 30 31 39 30 30 30 43 44 ┆1CD3501FE53C2450199 :10019000CD┆ 0x0613a0…0613c0 33 35 30 31 46 45 32 30 43 32 34 35 30 31 32 31 31 44 30 32 31 36 30 30 35 38 31 39 37 31 46 45 ┆3501FE20C24501211D021600581971FE┆ 0x0613c0…0613e0 0d 0a 3a 31 30 30 31 41 30 30 30 43 33 34 35 30 31 44 42 31 34 45 36 38 30 43 32 42 36 30 31 32 ┆ :1001A000C34501DB14E680C2B6012┆ 0x0613e0…061400 41 31 39 30 32 33 41 31 44 30 32 44 41 0d 0a 3a 31 30 30 31 42 30 30 30 37 37 32 33 33 41 31 45 ┆A19023A1D02DA :1001B00077233A1E┆ 0x061400…061420 (25, 1, 14) e1 22 21 02 31 63 02 21 80 00 34 5e 34 16 00 19 36 20 2a 01 00 11 34 00 19 22 19 02 7e 32 1b 02 ┆ "! 1c ! 4^4 6 * 4 " ü2 ┆ 0x061420…061440 23 7e 32 1c 02 2a 1b 02 22 1d 02 21 80 00 23 22 1f 02 c3 45 01 21 80 00 35 ca a3 01 2a 1f 02 7e ┆#ü2 * " ! #" E ! 5 * ü┆ 0x061440…061460 23 22 1f 02 c9 01 00 00 cd 35 01 fe 41 ca 56 01 fe 42 c2 45 01 04 cd 35 01 fe 3a c2 45 01 cd 35 ┆#" 5 A V B E 5 : E 5┆ 0x061460…061480 01 fe 3d c2 45 01 cd 35 01 fe 53 ca 88 01 fe 44 c2 45 01 cd 35 01 fe 44 c2 45 01 cd 35 01 fe 20 ┆ = E 5 S D E 5 D E 5 ┆ 0x061480…0614a0 c2 45 01 0e 08 c3 98 01 cd 35 01 fe 53 c2 45 01 cd 35 01 fe 20 c2 45 01 21 1d 02 16 00 58 19 71 ┆ E 5 S E 5 E ! X q┆ 0x0614a0…0614c0 c3 45 01 db 14 e6 80 c2 b6 01 2a 19 02 3a 1d 02 77 23 3a 1e 02 77 11 fb 01 cd f6 01 cd c6 01 cd ┆ E * : w#: w ┆ 0x0614c0…0614e0 cb 01 2a 21 02 e9 0e 01 c3 05 00 0e 0d 11 03 00 c3 05 00 0e 0f c3 05 00 0e 10 c3 05 00 0e 13 c3 ┆ *! ┆ 0x0614e0…061500 05 00 0e 14 c3 05 00 0e 15 c3 05 00 0e 16 c3 05 00 0e 1a c3 05 00 0e 09 c3 05 00 49 4e 53 45 52 ┆ INSER┆ 0x061500…061520 54 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 54 55 52 4e 3e 24 00 00 00 00 00 00 00 ┆T DISK AND TYPE <RETURN>$ ┆ 0x061520…061540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x2…] 0x061580…0615a0 31 43 44 33 35 30 31 46 45 35 33 43 32 34 35 30 31 39 39 0d 0a 3a 31 30 30 31 39 30 30 30 43 44 ┆1CD3501FE53C2450199 :10019000CD┆ 0x0615a0…0615c0 33 35 30 31 46 45 32 30 43 32 34 35 30 31 32 31 31 44 30 32 31 36 30 30 35 38 31 39 37 31 46 45 ┆3501FE20C24501211D021600581971FE┆ 0x0615c0…0615e0 0d 0a 3a 31 30 30 31 41 30 30 30 43 33 34 35 30 31 44 42 31 34 45 36 38 30 43 32 42 36 30 31 32 ┆ :1001A000C34501DB14E680C2B6012┆ 0x0615e0…061600 41 31 39 30 32 33 41 31 44 30 32 44 41 0d 0a 3a 31 30 30 31 42 30 30 30 37 37 32 33 33 41 31 45 ┆A19023A1D02DA :1001B00077233A1E┆ 0x061600…061620 (25, 1, 15) 09 54 49 54 4c 45 09 27 50 52 4f 47 52 41 4d 20 53 45 52 49 41 4c 49 5a 41 54 49 4f 4e 20 46 4f ┆ TITLE 'PROGRAM SERIALIZATION FO┆ 0x061620…061640 52 20 43 50 2f 4d 20 32 2e 32 20 32 2f 38 30 27 0d 0a 0d 0a 3b 20 4f 72 69 67 69 6e 20 23 20 65 ┆R CP/M 2.2 2/80' ; Origin # e┆ 0x061640…061660 78 70 61 6e 64 65 64 20 74 6f 20 31 36 20 62 69 74 73 20 30 33 20 4e 6f 76 20 38 30 20 4a 52 50 ┆xpanded to 16 bits 03 Nov 80 JRP┆ 0x061660…061680 2e 0d 0a 0d 0a 3b 20 4d 4f 44 49 46 49 45 44 20 54 4f 20 53 55 50 50 4f 52 54 20 44 4f 55 42 4c ┆. ; MODIFIED TO SUPPORT DOUBL┆ 0x061680…0616a0 45 20 44 45 4e 53 49 54 59 20 4f 4e 4c 59 20 20 2d 20 20 32 36 4a 55 4e 38 31 20 2f 20 46 56 4e ┆E DENSITY ONLY - 26JUN81 / FVN┆ 0x0616a0…0616c0 0d 0a 0d 0a 0d 0a 56 45 52 53 49 4f 4e 09 45 51 55 09 32 32 09 3b 56 45 52 53 49 4f 4e 20 32 2e ┆ VERSION EQU 22 ;VERSION 2.┆ 0x0616c0…0616e0 32 0d 0a 4d 4f 56 54 52 4b 09 45 51 55 09 30 09 3b 54 52 41 43 4b 20 43 4f 4e 54 41 49 4e 49 4e ┆2 MOVTRK EQU 0 ;TRACK CONTAININ┆ 0x0616e0…061700 47 20 4d 4f 56 43 50 4d 20 50 52 4f 47 52 41 4d 0d 0a 3b 0d 0a 3b 09 50 52 4f 47 52 41 4d 20 53 ┆G MOVCPM PROGRAM ; ; PROGRAM S┆ 0x061700…061720 45 52 49 41 4c 49 5a 41 54 49 4f 4e 20 46 4f 52 20 43 50 2f 4d 20 44 49 53 4b 45 54 54 45 53 0d ┆ERIALIZATION FOR CP/M DISKETTES ┆ 0x061720…061740 0a 3b 0d 0a 3b 09 4e 4f 54 45 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆ ; ; NOTE *********************┆ 0x061740…061760 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆********************************┆ 0x061760…061780 2a 2a 2a 2a 2a 0d 0a 3b 09 54 48 49 53 20 50 52 4f 47 52 41 4d 20 43 4f 4e 54 41 49 4e 53 20 44 ┆***** ; THIS PROGRAM CONTAINS D┆ 0x061780…0617a0 49 47 49 54 41 4c 20 52 45 53 45 41 52 43 48 20 50 52 4f 50 52 49 45 54 41 52 59 20 49 4e 46 4f ┆IGITAL RESEARCH PROPRIETARY INFO┆ 0x0617a0…0617c0 52 4d 41 54 49 4f 4e 2c 0d 0a 3b 09 41 4e 44 20 4d 55 53 54 20 4e 4f 54 20 42 45 20 52 45 50 52 ┆RMATION, ; AND MUST NOT BE REPR┆ 0x0617c0…0617e0 4f 44 55 43 45 44 2c 20 43 4f 50 49 45 44 2c 20 4f 52 20 54 52 41 4e 53 43 52 49 42 45 44 20 49 ┆ODUCED, COPIED, OR TRANSCRIBED I┆ 0x0617e0…061800 4e 20 41 4e 59 20 46 4f 52 4d 0d 0a 3b 09 57 48 41 54 53 4f 45 56 45 52 0d 0a 3b 09 2a 2a 2a 2a ┆N ANY FORM ; WHATSOEVER ; ****┆ 0x061800…061820 (26, 0, 1) 4c 48 4c 44 20 42 55 46 46 41 20 3b 47 45 54 20 44 4d 41 20 41 44 44 52 45 53 53 0d 0a 09 09 4d ┆LHLD BUFFA ;GET DMA ADDRESS M┆ 0x061820…061840 56 49 20 44 2c 30 21 20 4c 44 41 20 53 50 54 21 20 4d 4f 56 20 45 2c 41 20 3b 20 44 3d 30 2c 20 ┆VI D,0! LDA SPT! MOV E,A ; D=0, ┆ 0x061840…061860 45 3d 53 50 54 0d 0a 09 09 52 57 24 4c 4f 4f 50 3a 20 3b 52 45 41 44 2f 57 52 49 54 45 20 4c 4f ┆E=SPT RW$LOOP: ;READ/WRITE LO┆ 0x061860…061880 4f 50 0d 0a 09 09 09 50 55 53 48 20 44 21 20 50 55 53 48 20 48 0d 0a 09 09 09 4d 4f 56 20 43 2c ┆OP PUSH D! PUSH H MOV C,┆ 0x061880…0618a0 44 21 20 43 41 4c 4c 20 53 45 43 20 3b 53 45 43 54 4f 52 20 53 45 54 0d 0a 09 09 09 50 4f 50 20 ┆D! CALL SEC ;SECTOR SET POP ┆ 0x0618a0…0618c0 42 21 20 50 55 53 48 20 42 20 3b 47 45 54 20 44 4d 41 20 41 44 44 52 45 53 53 0d 0a 09 09 09 43 ┆B! PUSH B ;GET DMA ADDRESS C┆ 0x0618c0…0618e0 41 4c 4c 20 44 4d 41 20 3b 44 4d 41 20 41 44 44 52 45 53 53 20 53 45 54 0d 0a 09 09 09 3b 50 45 ┆ALL DMA ;DMA ADDRESS SET ;PE┆ 0x0618e0…061900 52 46 4f 52 4d 20 49 4f 20 46 55 4e 43 54 49 4f 4e 0d 0a 09 09 09 4c 44 41 20 49 4f 46 21 20 4f ┆RFORM IO FUNCTION LDA IOF! O┆ 0x061900…061920 52 41 20 41 20 3b 53 45 54 20 46 4c 41 47 53 2c 20 30 3d 52 45 41 44 2c 20 31 3d 57 52 49 54 45 ┆RA A ;SET FLAGS, 0=READ, 1=WRITE┆ 0x061920…061940 0d 0a 09 09 09 4a 4e 5a 20 57 52 49 54 45 46 55 4e 43 0d 0a 09 09 09 09 3b 52 45 41 44 20 44 49 ┆ JNZ WRITEFUNC ;READ DI┆ 0x061940…061960 53 4b 0d 0a 09 09 09 09 43 41 4c 4c 20 44 52 45 41 44 0d 0a 09 09 09 09 4a 4d 50 20 52 57 43 4f ┆SK CALL DREAD JMP RWCO┆ 0x061960…061980 4d 50 4c 45 54 45 0d 0a 09 09 09 57 52 49 54 45 46 55 4e 43 3a 0d 0a 09 09 09 09 3b 57 52 49 54 ┆MPLETE WRITEFUNC: ;WRIT┆ 0x061980…0619a0 45 20 44 49 53 4b 0d 0a 09 09 09 09 43 41 4c 4c 20 44 57 52 49 54 45 0d 0a 09 09 09 52 57 43 4f ┆E DISK CALL DWRITE RWCO┆ 0x0619a0…0619c0 4d 50 4c 45 54 45 3a 20 3b 46 55 4e 43 54 49 4f 4e 20 43 4f 4d 50 4c 45 54 45 0d 0a 09 09 09 09 ┆MPLETE: ;FUNCTION COMPLETE ┆ 0x0619c0…0619e0 50 4f 50 20 48 20 3b 52 45 43 41 4c 4c 20 44 4d 41 20 41 44 44 52 45 53 53 0d 0a 09 09 09 09 4c ┆POP H ;RECALL DMA ADDRESS L┆ 0x0619e0…061a00 58 49 20 44 2c 38 30 48 21 20 44 41 44 20 44 20 3b 54 4f 20 4e 45 58 54 20 44 4d 41 0d 0a 09 09 ┆XI D,80H! DAD D ;TO NEXT DMA ┆ 0x061a00…061a20 (26, 0, 2) 58 49 20 48 2c 43 4f 4d 4c 45 4e 21 20 4d 56 49 20 41 2c 35 21 20 53 55 42 20 4d 20 3b 44 49 46 ┆XI H,COMLEN! MVI A,5! SUB M ;DIF┆ 0x061a20…061a40 46 45 52 45 4e 43 45 20 49 4e 20 52 45 47 2d 41 0d 0a 09 4c 58 49 20 48 2c 41 53 45 52 49 41 4c ┆FERENCE IN REG-A LXI H,ASERIAL┆ 0x061a40…061a60 21 20 4a 5a 20 50 41 44 31 20 3b 50 41 44 20 48 49 47 48 20 4f 52 44 45 52 20 50 4f 53 49 54 49 ┆! JZ PAD1 ;PAD HIGH ORDER POSITI┆ 0x061a60…061a80 4f 4e 53 20 57 49 54 48 20 30 0d 0a 09 50 41 44 30 3a 09 4d 56 49 20 4d 2c 27 30 27 21 20 49 4e ┆ONS WITH 0 PAD0: MVI M,'0'! IN┆ 0x061a80…061aa0 58 20 48 21 20 44 43 52 20 41 21 20 4a 4e 5a 20 50 41 44 30 0d 0a 09 50 41 44 31 3a 09 4c 58 49 ┆X H! DCR A! JNZ PAD0 PAD1: LXI┆ 0x061aa0…061ac0 20 44 2c 43 42 55 46 46 20 3b 41 44 44 52 45 53 53 49 4e 47 20 42 55 46 46 45 52 0d 0a 09 50 41 ┆ D,CBUFF ;ADDRESSING BUFFER PA┆ 0x061ac0…061ae0 44 32 3a 09 4c 44 41 58 20 44 21 20 4f 52 41 20 41 21 20 4a 5a 20 50 41 44 33 20 3b 4c 4f 4f 4b ┆D2: LDAX D! ORA A! JZ PAD3 ;LOOK┆ 0x061ae0…061b00 49 4e 47 20 46 4f 52 20 42 49 4e 41 52 59 20 30 0d 0a 09 09 4d 4f 56 20 4d 2c 41 21 20 49 4e 58 ┆ING FOR BINARY 0 MOV M,A! INX┆ 0x061b00…061b20 20 48 21 20 49 4e 58 20 44 21 20 4a 4d 50 20 50 41 44 32 20 3b 46 4f 52 20 41 4e 4f 54 48 45 52 ┆ H! INX D! JMP PAD2 ;FOR ANOTHER┆ 0x061b20…061b40 20 43 48 41 52 0d 0a 09 50 41 44 33 3a 09 3b 45 4e 44 20 4f 46 20 41 53 43 49 49 20 46 49 4c 4c ┆ CHAR PAD3: ;END OF ASCII FILL┆ 0x061b40…061b60 20 28 4e 4f 57 20 52 49 47 48 54 20 41 44 4a 55 53 54 45 44 20 49 4e 20 41 53 45 52 49 41 4c 29 ┆ (NOW RIGHT ADJUSTED IN ASERIAL)┆ 0x061b60…061b80 0d 0a 3b 0d 0a 52 44 44 53 4b 3a 09 3b 52 45 41 44 20 44 49 53 4b 20 41 4e 44 20 43 4f 50 59 0d ┆ ; RDDSK: ;READ DISK AND COPY ┆ 0x061b80…061ba0 0a 09 43 41 4c 4c 20 49 4e 53 4d 53 47 21 20 43 41 4c 4c 20 43 49 20 3b 57 41 49 54 20 46 4f 52 ┆ CALL INSMSG! CALL CI ;WAIT FOR┆ 0x061ba0…061bc0 20 52 45 53 50 4f 4e 53 45 0d 0a 3b 0d 0a 4e 45 58 54 44 49 53 4b 3a 0d 0a 09 4d 56 49 20 41 2c ┆ RESPONSE ; NEXTDISK: MVI A,┆ 0x061bc0…061be0 30 21 20 53 54 41 20 53 54 52 41 43 4b 20 3b 4d 41 52 4b 20 41 53 20 4d 4f 56 43 50 4d 2e 43 4f ┆0! STA STRACK ;MARK AS MOVCPM.CO┆ 0x061be0…061c00 4d 20 20 53 45 52 49 41 4c 49 5a 45 44 0d 0a 09 43 41 4c 4c 20 43 55 52 4d 53 47 21 20 43 41 4c ┆M SERIALIZED CALL CURMSG! CAL┆ 0x061c00…061c20 (26, 0, 3) 21 20 4d 4f 56 20 41 2c 43 21 20 4f 52 41 20 42 0d 0a 09 09 4a 4e 5a 20 53 45 41 52 43 48 0d 0a ┆! MOV A,C! ORA B JNZ SEARCH ┆ 0x061c20…061c40 09 09 3b 4e 4f 54 20 46 4f 55 4e 44 0d 0a 09 09 43 41 4c 4c 20 42 41 44 44 53 4b 21 20 4a 4d 50 ┆ ;NOT FOUND CALL BADDSK! JMP┆ 0x061c40…061c60 20 52 44 44 53 4b 0d 0a 09 3b 0d 0a 09 51 54 52 4b 33 3a 09 3b 49 53 20 54 48 49 53 20 54 52 41 ┆ RDDSK ; QTRK3: ;IS THIS TRA┆ 0x061c60…061c80 43 4b 20 4d 4f 56 54 52 4b 3f 20 49 46 20 53 4f 2c 20 4c 4f 4f 4b 20 46 4f 52 20 43 50 4d 2e 43 ┆CK MOVTRK? IF SO, LOOK FOR CPM.C┆ 0x061c80…061ca0 4f 4d 0d 0a 09 09 43 50 49 20 4d 4f 56 54 52 4b 21 20 4a 4e 5a 20 52 44 54 52 4b 4e 0d 0a 09 09 ┆OM CPI MOVTRK! JNZ RDTRKN ┆ 0x061ca0…061cc0 3b 4c 4f 4f 4b 20 46 4f 52 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 0d 0a 09 09 4c 58 49 20 48 ┆;LOOK FOR SERIAL NUMBER LXI H┆ 0x061cc0…061ce0 2c 30 21 20 4c 58 49 20 42 2c 54 52 4c 45 4e 20 3b 54 52 41 43 4b 20 4c 45 4e 47 54 48 20 49 4e ┆,0! LXI B,TRLEN ;TRACK LENGTH IN┆ 0x061ce0…061d00 20 42 2c 43 0d 0a 09 09 51 54 52 30 3a 20 50 55 53 48 20 48 21 20 50 55 53 48 20 42 20 3b 53 41 ┆ B,C QTR0: PUSH H! PUSH B ;SA┆ 0x061d00…061d20 56 45 20 42 41 53 45 20 41 44 44 52 45 53 53 20 41 4e 44 20 4c 45 4e 47 54 48 0d 0a 09 09 09 4c ┆VE BASE ADDRESS AND LENGTH L┆ 0x061d20…061d40 58 49 20 44 2c 43 4f 4d 50 41 52 45 21 20 4d 56 49 20 43 2c 43 4f 4d 50 4c 45 4e 0d 0a 09 09 09 ┆XI D,COMPARE! MVI C,COMPLEN ┆ 0x061d40…061d60 51 54 52 31 3a 20 3b 54 52 59 20 54 4f 20 4d 41 54 43 48 20 41 4e 4f 54 48 45 52 20 43 48 41 52 ┆QTR1: ;TRY TO MATCH ANOTHER CHAR┆ 0x061d60…061d80 0d 0a 09 09 09 09 50 55 53 48 20 48 21 20 43 41 4c 4c 20 54 52 41 4e 53 4c 41 54 45 21 20 4c 44 ┆ PUSH H! CALL TRANSLATE! LD┆ 0x061d80…061da0 41 58 20 44 0d 0a 09 09 09 09 43 4d 41 21 20 43 4d 50 20 4d 21 20 3b 46 4c 41 47 53 20 53 45 54 ┆AX D CMA! CMP M! ;FLAGS SET┆ 0x061da0…061dc0 20 49 46 20 45 51 55 41 4c 0d 0a 09 09 09 09 50 4f 50 20 48 21 20 4a 4e 5a 20 4e 4f 4d 41 54 33 ┆ IF EQUAL POP H! JNZ NOMAT3┆ 0x061dc0…061de0 0d 0a 09 09 09 09 49 4e 58 20 48 21 20 49 4e 58 20 44 21 0d 0a 09 09 09 09 50 55 53 48 20 48 21 ┆ INX H! INX D! PUSH H!┆ 0x061de0…061e00 20 43 41 4c 4c 20 54 52 41 4e 53 4c 41 54 45 21 20 4c 44 41 58 20 44 0d 0a 09 09 09 09 43 4d 41 ┆ CALL TRANSLATE! LDAX D CMA┆ 0x061e00…061e20 (26, 0, 4) 20 53 46 3a 09 44 57 09 30 0d 0a 20 30 34 30 30 20 30 30 30 30 20 20 20 20 20 20 44 46 3a 09 44 ┆ SF: DW 0 0400 0000 DF: D┆ 0x061e20…061e40 57 09 30 0d 0a 20 30 34 30 32 20 30 30 20 20 20 20 20 20 20 20 53 44 52 49 56 3a 09 44 42 09 30 ┆W 0 0402 00 SDRIV: DB 0┆ 0x061e40…061e60 0d 0a 20 30 34 30 33 20 30 30 20 20 20 20 20 20 20 20 44 44 52 49 56 3a 09 44 42 09 30 0d 0a 20 ┆ 0403 00 DDRIV: DB 0 ┆ 0x061e60…061e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x061e80…061ea0 20 0d 0a 20 30 34 30 34 20 30 30 20 20 20 20 20 20 20 20 53 45 43 43 4e 54 3a 20 44 42 09 30 0d ┆ 0404 00 SECCNT: DB 0 ┆ 0x061ea0…061ec0 0a 20 30 34 30 35 20 30 30 30 30 20 20 20 20 20 20 43 43 50 52 45 54 3a 20 44 57 09 30 0d 0a 20 ┆ 0405 0000 CCPRET: DW 0 ┆ 0x061ec0…061ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 34 30 37 20 20 20 20 20 20 20 20 20 20 ┆ 0407 ┆ 0x061ee0…061f00 20 44 46 43 42 3a 09 44 53 09 33 33 09 09 3b 20 44 45 53 54 49 4e 41 54 49 4f 4e 20 46 43 42 0d ┆ DFCB: DS 33 ; DESTINATION FCB ┆ 0x061f00…061f20 0a 20 30 34 32 37 20 3d 20 20 20 20 20 20 20 20 20 44 46 43 42 43 52 09 45 51 55 09 44 46 43 42 ┆ 0427 = DFCBCR EQU DFCB┆ 0x061f20…061f40 2b 33 32 09 09 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 34 32 38 20 ┆+32 ; 0428 ┆ 0x061f40…061f60 20 20 20 20 20 20 20 20 20 20 09 44 53 09 33 31 09 09 3b 0d 0a 20 30 34 34 37 20 20 20 20 20 20 ┆ DS 31 ; 0447 ┆ 0x061f60…061f80 20 20 20 20 20 53 54 41 43 4b 3a 09 44 53 09 31 09 09 3b 20 4c 4f 43 41 4c 20 53 54 41 43 4b 0d ┆ STACK: DS 1 ; LOCAL STACK ┆ 0x061f80…061fa0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 34 34 38 20 30 30 30 30 20 20 20 ┆ 0448 0000 ┆ 0x061fa0…061fc0 20 20 20 42 55 46 3a 09 44 57 09 30 09 09 3b 20 52 45 41 44 2f 57 52 49 54 45 20 42 55 46 46 45 ┆ BUF: DW 0 ; READ/WRITE BUFFE┆ 0x061fc0…061fe0 52 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 34 34 41 20 20 20 20 20 20 ┆R 044A ┆ 0x061fe0…062000 20 20 20 20 20 09 45 4e 44 09 30 31 30 30 48 0d 0a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆ END 0100H ┆ 0x062000…062020 (26, 0, 5) 09 09 50 4f 50 20 44 20 3b 52 45 43 41 4c 4c 20 53 45 43 54 4f 52 20 41 4e 44 20 43 4f 55 4e 54 ┆ POP D ;RECALL SECTOR AND COUNT┆ 0x062020…062040 0d 0a 09 09 09 09 49 4e 52 20 44 20 3b 4e 45 58 54 20 53 45 43 54 4f 52 0d 0a 09 09 09 3b 20 43 ┆ INR D ;NEXT SECTOR ; C┆ 0x062040…062060 48 45 43 4b 20 45 52 52 4f 52 20 43 4f 4e 44 49 54 49 4f 4e 53 0d 0a 09 09 09 4f 52 41 20 41 21 ┆HECK ERROR CONDITIONS ORA A!┆ 0x062060…062080 20 52 4e 5a 20 3b 52 45 54 55 52 4e 20 57 49 54 48 20 4e 4f 4e 20 5a 45 52 4f 20 46 4c 41 47 20 ┆ RNZ ;RETURN WITH NON ZERO FLAG ┆ 0x062080…0620a0 53 45 54 0d 0a 09 09 09 44 43 52 20 45 20 3b 43 4f 55 4e 54 20 3d 20 43 4f 55 4e 54 20 2d 20 31 ┆SET DCR E ;COUNT = COUNT - 1┆ 0x0620a0…0620c0 0d 0a 09 09 09 4a 4e 5a 20 52 57 24 4c 4f 4f 50 20 3b 46 4f 52 20 41 4e 4f 54 48 45 52 20 53 45 ┆ JNZ RW$LOOP ;FOR ANOTHER SE┆ 0x0620c0…0620e0 43 54 4f 52 0d 0a 09 09 09 52 45 54 20 3b 57 49 54 48 20 5a 45 52 4f 20 46 4c 41 47 20 53 45 54 ┆CTOR RET ;WITH ZERO FLAG SET┆ 0x0620e0…062100 20 46 4f 52 20 49 4f 20 43 4f 4d 50 4c 45 54 45 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 55 54 49 4c 49 54 ┆ FOR IO COMPLETE ; ; ; UTILIT┆ 0x062100…062120 59 20 53 55 42 52 4f 55 54 49 4e 45 53 20 46 4f 52 20 44 49 52 45 43 54 20 44 49 53 4b 20 49 4f ┆Y SUBROUTINES FOR DIRECT DISK IO┆ 0x062120…062140 0d 0a 57 42 4f 4f 54 09 45 51 55 09 31 09 3b 57 41 52 4d 20 42 4f 4f 54 20 41 44 44 52 45 53 53 ┆ WBOOT EQU 1 ;WARM BOOT ADDRESS┆ 0x062140…062160 0d 0a 53 45 4c 44 53 4b 09 45 51 55 09 32 34 09 3b 53 45 4c 45 43 54 20 44 49 53 4b 0d 0a 53 45 ┆ SELDSK EQU 24 ;SELECT DISK SE┆ 0x062160…062180 54 54 52 4b 09 45 51 55 09 32 37 09 3b 53 45 54 20 54 52 41 43 4b 0d 0a 53 45 54 53 45 43 09 45 ┆TTRK EQU 27 ;SET TRACK SETSEC E┆ 0x062180…0621a0 51 55 09 33 30 09 3b 53 45 54 20 53 45 43 54 4f 52 0d 0a 53 45 54 44 4d 41 09 45 51 55 09 33 33 ┆QU 30 ;SET SECTOR SETDMA EQU 33┆ 0x0621a0…0621c0 09 3b 53 45 54 20 44 4d 41 20 41 44 44 52 45 53 53 0d 0a 52 45 41 44 46 09 45 51 55 09 33 36 09 ┆ ;SET DMA ADDRESS READF EQU 36 ┆ 0x0621c0…0621e0 3b 52 45 41 44 20 44 49 53 4b 0d 0a 57 52 49 54 46 09 45 51 55 09 33 39 09 3b 57 52 49 54 45 20 ┆;READ DISK WRITF EQU 39 ;WRITE ┆ 0x0621e0…062200 44 49 53 4b 0d 0a 3b 0d 0a 53 45 4c 3a 09 3b 53 45 4c 45 43 54 20 44 52 49 56 45 20 47 49 56 45 ┆DISK ; SEL: ;SELECT DRIVE GIVE┆ 0x062200…062220 (26, 0, 6) 4c 20 41 53 45 52 4d 53 47 21 20 43 41 4c 4c 20 4e 45 57 4d 53 47 21 20 43 41 4c 4c 20 43 49 0d ┆L ASERMSG! CALL NEWMSG! CALL CI ┆ 0x062220…062240 0a 09 3b 4e 45 57 20 44 49 53 4b 20 49 53 20 52 45 41 44 59 2c 20 54 52 59 20 54 48 45 20 43 4f ┆ ;NEW DISK IS READY, TRY THE CO┆ 0x062240…062260 50 59 20 4f 50 45 52 41 54 49 4f 4e 0d 0a 09 4c 58 49 20 48 2c 54 52 41 43 4b 21 20 4d 56 49 20 ┆PY OPERATION LXI H,TRACK! MVI ┆ 0x062260…062280 4d 2c 31 20 3b 43 4c 45 41 52 20 54 48 45 20 54 52 41 43 4b 20 4e 55 4d 42 45 52 0d 0a 09 4c 58 ┆M,1 ;CLEAR THE TRACK NUMBER LX┆ 0x062280…0622a0 49 20 48 2c 54 52 43 4f 55 4e 54 21 20 4d 56 49 20 4d 2c 27 30 27 21 20 49 4e 58 20 48 21 20 4d ┆I H,TRCOUNT! MVI M,'0'! INX H! M┆ 0x0622a0…0622c0 56 49 20 4d 2c 27 30 27 0d 0a 3b 0d 0a 52 44 54 52 4b 3a 09 3b 52 45 41 44 20 54 48 45 20 4e 45 ┆VI M,'0' ; RDTRK: ;READ THE NE┆ 0x0622c0…0622e0 58 54 20 53 4f 55 52 43 45 20 54 52 41 43 4b 2c 20 43 4f 4d 50 41 52 45 20 57 49 54 48 20 30 45 ┆XT SOURCE TRACK, COMPARE WITH 0E┆ 0x0622e0…062300 35 48 20 46 4f 52 20 45 4e 44 0d 0a 09 4c 58 49 20 48 2c 49 42 55 46 46 21 20 53 48 4c 44 20 42 ┆5H FOR END LXI H,IBUFF! SHLD B┆ 0x062300…062320 55 46 46 41 21 20 43 41 4c 4c 20 52 45 41 44 54 52 4b 0d 0a 09 09 4a 5a 20 52 45 41 44 4f 4b 21 ┆UFFA! CALL READTRK JZ READOK!┆ 0x062320…062340 20 43 41 4c 4c 20 52 45 41 44 30 4d 53 47 21 20 4a 4d 50 20 52 44 44 53 4b 0d 0a 09 52 45 41 44 ┆ CALL READ0MSG! JMP RDDSK READ┆ 0x062340…062360 4f 4b 3a 0d 0a 09 3b 54 52 41 43 4b 20 49 53 20 49 4e 20 4d 45 4d 4f 52 59 2c 20 54 52 41 43 4b ┆OK: ;TRACK IS IN MEMORY, TRACK┆ 0x062360…062380 20 31 3f 0d 0a 09 4c 44 41 20 54 52 41 43 4b 21 20 43 50 49 20 31 21 20 4a 4e 5a 20 51 54 52 4b ┆ 1? LDA TRACK! CPI 1! JNZ QTRK┆ 0x062380…0623a0 33 0d 0a 09 09 3b 54 52 41 43 4b 20 30 2c 20 4c 4f 4f 4b 20 46 4f 52 20 53 45 52 49 41 4c 20 4e ┆3 ;TRACK 0, LOOK FOR SERIAL N┆ 0x0623a0…0623c0 55 4d 42 45 52 0d 0a 09 09 4c 58 49 20 48 2c 43 43 50 56 21 20 4c 58 49 20 42 2c 53 4c 45 4e 0d ┆UMBER LXI H,CCPV! LXI B,SLEN ┆ 0x0623c0…0623e0 0a 09 09 53 45 41 52 43 48 3a 09 50 55 53 48 20 48 21 20 50 55 53 48 20 42 21 20 4c 58 49 20 44 ┆ SEARCH: PUSH H! PUSH B! LXI D┆ 0x0623e0…062400 2c 43 4f 4d 50 41 52 45 21 20 4d 56 49 20 43 2c 43 4f 4d 50 4c 45 4e 0d 0a 09 09 43 4f 4d 50 30 ┆,COMPARE! MVI C,COMPLEN COMP0┆ 0x062400…062420 (26, 0, 7) 21 20 43 4d 50 20 4d 21 20 50 4f 50 20 48 21 20 4a 4e 5a 20 4e 4f 4d 41 54 33 0d 0a 09 09 09 09 ┆! CMP M! POP H! JNZ NOMAT3 ┆ 0x062420…062440 3b 43 4f 4e 54 49 4e 55 45 20 54 4f 20 4d 41 54 43 48 0d 0a 09 09 09 09 49 4e 58 20 48 21 20 49 ┆;CONTINUE TO MATCH INX H! I┆ 0x062440…062460 4e 58 20 44 21 20 44 43 52 20 43 21 20 4a 4e 5a 20 51 54 52 31 0d 0a 09 09 09 3b 43 4f 4d 50 4c ┆NX D! DCR C! JNZ QTR1 ;COMPL┆ 0x062460…062480 45 54 45 20 4d 41 54 43 48 2c 20 46 49 4c 4c 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 53 0d 0a ┆ETE MATCH, FILL SERIAL NUMBERS ┆ 0x062480…0624a0 09 09 09 50 4f 50 20 42 21 20 50 4f 50 20 44 20 3b 54 4f 20 43 4c 45 41 52 20 54 48 45 20 53 54 ┆ POP B! POP D ;TO CLEAR THE ST┆ 0x0624a0…0624c0 41 43 4b 0d 0a 09 09 09 50 55 53 48 20 48 20 3b 53 41 56 45 20 53 4f 55 52 43 45 20 41 44 44 52 ┆ACK PUSH H ;SAVE SOURCE ADDR┆ 0x0624c0…0624e0 45 53 53 0d 0a 09 09 09 43 41 4c 4c 20 53 54 53 45 52 49 41 4c 20 3b 53 45 52 49 41 4c 20 4e 55 ┆ESS CALL STSERIAL ;SERIAL NU┆ 0x0624e0…062500 4d 42 45 52 20 53 54 4f 52 45 44 0d 0a 09 09 09 50 4f 50 20 48 20 3b 52 45 43 41 4c 4c 20 53 4f ┆MBER STORED POP H ;RECALL SO┆ 0x062500…062520 55 52 43 45 20 41 44 44 52 45 53 53 0d 0a 09 09 09 58 43 48 47 21 20 4c 48 4c 44 20 53 44 49 46 ┆URCE ADDRESS XCHG! LHLD SDIF┆ 0x062520…062540 46 21 20 44 41 44 20 44 20 3b 48 2c 4c 20 53 48 4f 55 4c 44 20 41 44 44 52 45 53 53 20 53 45 52 ┆F! DAD D ;H,L SHOULD ADDRESS SER┆ 0x062540…062560 23 32 0d 0a 09 09 09 4d 4f 56 20 41 2c 4c 21 20 4f 52 41 20 41 21 20 4a 4e 5a 20 51 54 52 32 20 ┆#2 MOV A,L! ORA A! JNZ QTR2 ┆ 0x062560…062580 3b 4d 55 53 54 20 42 45 20 4c 4f 57 20 5a 45 52 4f 0d 0a 09 09 09 3b 53 45 54 55 50 20 53 54 52 ┆;MUST BE LOW ZERO ;SETUP STR┆ 0x062580…0625a0 41 43 4b 20 54 4f 20 53 45 52 49 41 4c 49 5a 45 20 57 48 45 4e 20 50 52 4f 50 45 52 20 54 52 4b ┆ACK TO SERIALIZE WHEN PROPER TRK┆ 0x0625a0…0625c0 20 46 4f 55 4e 44 0d 0a 09 09 09 58 43 48 47 21 20 4c 58 49 20 48 2c 53 54 52 41 43 4b 20 3b 44 ┆ FOUND XCHG! LXI H,STRACK ;D┆ 0x0625c0…0625e0 49 46 46 45 52 45 4e 43 45 20 49 4e 20 44 2c 45 0d 0a 09 09 09 4d 56 49 20 4d 2c 30 20 3b 43 4f ┆IFFERENCE IN D,E MVI M,0 ;CO┆ 0x0625e0…062600 55 4e 54 20 53 54 52 41 43 4b 20 55 50 20 46 4f 52 20 45 41 43 48 20 54 52 41 43 4b 20 53 49 5a ┆UNT STRACK UP FOR EACH TRACK SIZ┆ 0x062600…062620 (26, 0, 8) 61 73 20 6e 6f 74 20 72 65 61 64 79 29 0d 0a 3b 09 36 09 2d 20 77 72 69 74 65 20 65 72 72 6f 72 ┆as not ready) ; 6 - write error┆ 0x062620…062640 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 37 09 2d 20 6e ┆ (hardware malfunction) ; 7 - n┆ 0x062640…062660 6f 74 20 72 65 61 64 79 0d 0a 3b 09 28 61 63 63 75 6d 75 6c 61 74 6f 72 20 62 69 74 73 20 61 72 ┆ot ready ; (accumulator bits ar┆ 0x062660…062680 65 20 6e 75 6d 62 65 72 65 64 20 37 20 36 20 35 20 34 20 33 20 32 20 31 20 30 29 0d 0a 3b 0d 0a ┆e numbered 7 6 5 4 3 2 1 0) ; ┆ 0x062680…0626a0 3b 09 69 74 20 6d 61 79 20 62 65 20 75 73 65 66 75 6c 20 74 6f 20 66 69 6c 74 65 72 20 6f 75 74 ┆; it may be useful to filter out┆ 0x0626a0…0626c0 20 74 68 65 20 76 61 72 69 6f 75 73 20 63 6f 6e 64 69 74 69 6f 6e 73 2c 0d 0a 3b 09 62 75 74 20 ┆ the various conditions, ; but ┆ 0x0626c0…0626e0 77 65 20 77 69 6c 6c 20 67 65 74 20 61 20 70 65 72 6d 61 6e 65 6e 74 20 65 72 72 6f 72 20 6d 65 ┆we will get a permanent error me┆ 0x0626e0…062700 73 73 61 67 65 20 69 66 20 69 74 20 69 73 20 6e 6f 74 0d 0a 3b 09 72 65 63 6f 76 65 72 61 62 6c ┆ssage if it is not ; recoverabl┆ 0x062700…062720 65 2e 20 20 69 6e 20 61 6e 79 20 63 61 73 65 2c 20 74 68 65 20 6e 6f 74 20 72 65 61 64 79 20 63 ┆e. in any case, the not ready c┆ 0x062720…062740 6f 6e 64 69 74 69 6f 6e 20 69 73 0d 0a 3b 09 74 72 65 61 74 65 64 20 61 73 20 61 20 73 65 70 61 ┆ondition is ; treated as a sepa┆ 0x062740…062760 72 61 74 65 20 63 6f 6e 64 69 74 69 6f 6e 20 66 6f 72 20 6c 61 74 65 72 20 69 6d 70 72 6f 76 65 ┆rate condition for later improve┆ 0x062760…062780 6d 65 6e 74 0d 0a 74 72 79 63 6f 75 6e 74 3a 0d 0a 3b 09 72 65 67 69 73 74 65 72 20 63 20 63 6f ┆ment trycount: ; register c co┆ 0x062780…0627a0 6e 74 61 69 6e 73 20 72 65 74 72 79 20 63 6f 75 6e 74 2c 20 64 65 63 72 65 6d 65 6e 74 20 27 74 ┆ntains retry count, decrement 't┆ 0x0627a0…0627c0 69 6c 20 7a 65 72 6f 0d 0a 09 64 63 72 09 63 0d 0a 09 6a 6e 7a 09 72 65 77 61 69 74 09 3b 66 6f ┆il zero dcr c jnz rewait ;fo┆ 0x0627c0…0627e0 72 20 61 6e 6f 74 68 65 72 20 74 72 79 0d 0a 3b 0d 0a 3b 09 63 61 6e 6e 6f 74 20 72 65 63 6f 76 ┆r another try ; ; cannot recov┆ 0x0627e0…062800 65 72 20 66 72 6f 6d 20 65 72 72 6f 72 0d 0a 09 6d 76 69 09 61 2c 31 09 3b 65 72 72 6f 72 20 63 ┆er from error mvi a,1 ;error c┆ 0x062800…062820 (26, 0, 9) 4e 20 42 59 20 52 45 47 49 53 54 45 52 20 41 0d 0a 09 4d 4f 56 20 43 2c 41 21 20 4c 48 4c 44 20 ┆N BY REGISTER A MOV C,A! LHLD ┆ 0x062820…062840 57 42 4f 4f 54 21 20 4c 58 49 20 44 2c 53 45 4c 44 53 4b 21 20 44 41 44 20 44 21 20 50 43 48 4c ┆WBOOT! LXI D,SELDSK! DAD D! PCHL┆ 0x062840…062860 0d 0a 3b 0d 0a 54 52 4b 3a 09 3b 53 45 54 20 54 52 41 43 4b 20 47 49 56 45 4e 20 42 59 20 43 0d ┆ ; TRK: ;SET TRACK GIVEN BY C ┆ 0x062860…062880 0a 09 4c 48 4c 44 20 57 42 4f 4f 54 21 20 4c 58 49 20 44 2c 53 45 54 54 52 4b 21 20 44 41 44 20 ┆ LHLD WBOOT! LXI D,SETTRK! DAD ┆ 0x062880…0628a0 44 21 20 50 43 48 4c 0d 0a 3b 0d 0a 53 45 43 3a 09 3b 53 45 54 20 53 45 43 54 4f 52 20 47 49 56 ┆D! PCHL ; SEC: ;SET SECTOR GIV┆ 0x0628a0…0628c0 45 4e 20 42 59 20 43 0d 0a 09 4c 48 4c 44 20 57 42 4f 4f 54 21 20 4c 58 49 20 44 2c 53 45 54 53 ┆EN BY C LHLD WBOOT! LXI D,SETS┆ 0x0628c0…0628e0 45 43 21 20 44 41 44 20 44 21 20 50 43 48 4c 0d 0a 3b 0d 0a 44 4d 41 3a 09 3b 53 45 54 20 44 4d ┆EC! DAD D! PCHL ; DMA: ;SET DM┆ 0x0628e0…062900 41 20 41 44 44 52 45 53 53 20 54 4f 20 56 41 4c 55 45 20 4f 46 20 42 2c 43 0d 0a 09 4c 48 4c 44 ┆A ADDRESS TO VALUE OF B,C LHLD┆ 0x062900…062920 20 57 42 4f 4f 54 21 20 4c 58 49 20 44 2c 53 45 54 44 4d 41 21 20 44 41 44 20 44 21 20 50 43 48 ┆ WBOOT! LXI D,SETDMA! DAD D! PCH┆ 0x062920…062940 4c 0d 0a 3b 0d 0a 44 52 45 41 44 3a 09 3b 50 45 52 46 4f 52 4d 20 52 45 41 44 20 4f 50 45 52 41 ┆L ; DREAD: ;PERFORM READ OPERA┆ 0x062940…062960 54 49 4f 4e 0d 0a 09 4c 48 4c 44 20 57 42 4f 4f 54 21 20 4c 58 49 20 44 2c 52 45 41 44 46 21 20 ┆TION LHLD WBOOT! LXI D,READF! ┆ 0x062960…062980 44 41 44 20 44 21 20 50 43 48 4c 0d 0a 3b 0d 0a 44 57 52 49 54 45 3a 09 3b 50 45 52 46 4f 52 4d ┆DAD D! PCHL ; DWRITE: ;PERFORM┆ 0x062980…0629a0 20 57 52 49 54 45 20 4f 50 45 52 41 54 49 4f 4e 0d 0a 09 4c 48 4c 44 20 57 42 4f 4f 54 21 20 4c ┆ WRITE OPERATION LHLD WBOOT! L┆ 0x0629a0…0629c0 58 49 20 44 2c 57 52 49 54 46 21 20 44 41 44 20 44 21 20 50 43 48 4c 0d 0a 3b 0d 0a 53 54 41 52 ┆XI D,WRITF! DAD D! PCHL ; STAR┆ 0x0629c0…0629e0 54 3a 0d 0a 09 4c 58 49 09 53 50 2c 53 54 41 43 4b 0d 0a 09 4d 56 49 09 43 2c 31 32 30 0d 0a 09 ┆T: LXI SP,STACK MVI C,120 ┆ 0x0629e0…062a00 49 4e 09 53 57 31 0d 0a 09 41 4e 49 09 30 38 30 48 0d 0a 09 4a 5a 09 53 45 54 53 50 54 0d 0a 09 ┆IN SW1 ANI 080H JZ SETSPT ┆ 0x062a00…062a20 (26, 0, 10) 3a 09 4c 44 41 58 20 44 21 20 43 4d 41 21 20 43 4d 50 20 4d 21 20 4a 4e 5a 20 4e 4f 4d 41 54 43 ┆: LDAX D! CMA! CMP M! JNZ NOMATC┆ 0x062a20…062a40 48 0d 0a 09 09 09 49 4e 58 20 48 21 20 49 4e 58 20 44 21 20 4c 44 41 58 20 44 21 20 43 4d 41 21 ┆H INX H! INX D! LDAX D! CMA!┆ 0x062a40…062a60 20 43 4d 50 20 4d 21 20 4a 4e 5a 20 4e 4f 4d 41 54 43 48 0d 0a 09 09 09 49 4e 58 20 48 21 20 49 ┆ CMP M! JNZ NOMATCH INX H! I┆ 0x062a60…062a80 4e 58 20 44 21 20 44 43 52 20 43 21 20 4a 4e 5a 20 43 4f 4d 50 30 0d 0a 09 09 3b 4d 41 54 43 48 ┆NX D! DCR C! JNZ COMP0 ;MATCH┆ 0x062a80…062aa0 20 43 4f 4d 50 4c 45 54 45 2c 20 57 45 20 48 41 56 45 20 46 4f 55 4e 44 20 54 48 45 20 53 45 52 ┆ COMPLETE, WE HAVE FOUND THE SER┆ 0x062aa0…062ac0 49 41 4c 20 4e 55 4d 42 45 52 0d 0a 09 09 50 4f 50 20 42 21 20 50 4f 50 20 44 20 3b 43 4c 45 41 ┆IAL NUMBER POP B! POP D ;CLEA┆ 0x062ac0…062ae0 52 53 20 53 54 41 43 4b 0d 0a 09 09 50 55 53 48 20 48 20 3b 53 41 56 45 20 41 20 43 4f 50 59 20 ┆RS STACK PUSH H ;SAVE A COPY ┆ 0x062ae0…062b00 4f 46 20 54 48 45 20 53 54 41 52 54 20 41 44 44 52 45 53 53 20 4f 46 20 54 48 45 20 53 45 52 20 ┆OF THE START ADDRESS OF THE SER ┆ 0x062b00…062b20 23 0d 0a 09 09 78 63 68 67 20 21 20 6c 68 6c 64 20 4f 52 49 47 49 4e 21 20 78 63 68 67 21 20 4d ┆# xchg ! lhld ORIGIN! xchg! M┆ 0x062b20…062b40 4f 56 20 4d 2c 65 20 3b 20 6c 6f 77 20 62 79 74 65 28 6f 72 69 67 69 6e 29 0d 0a 09 09 49 4e 58 ┆OV M,e ; low byte(origin) INX┆ 0x062b40…062b60 20 48 21 20 4d 56 49 20 4d 2c 56 45 52 53 49 4f 4e 20 3b 56 45 52 53 49 4f 4e 20 4e 55 4d 42 45 ┆ H! MVI M,VERSION ;VERSION NUMBE┆ 0x062b60…062b80 52 20 49 4e 20 42 49 4e 41 52 59 0d 0a 09 09 69 6e 78 20 68 21 20 6d 6f 76 20 6d 2c 64 20 3b 20 ┆R IN BINARY inx h! mov m,d ; ┆ 0x062b80…062ba0 68 69 67 68 20 62 79 74 65 28 6f 72 69 67 69 6e 29 0d 0a 09 09 09 49 4e 58 20 48 21 20 4d 76 69 ┆high byte(origin) INX H! Mvi┆ 0x062ba0…062bc0 20 4d 2c 30 20 3b 20 6e 65 78 74 20 62 79 74 65 20 7a 65 72 6f 65 64 20 28 6e 6f 74 20 75 73 65 ┆ M,0 ; next byte zeroed (not use┆ 0x062bc0…062be0 64 20 79 65 74 29 0d 0a 09 09 09 49 4e 58 20 48 20 3b 52 45 41 44 59 20 54 4f 20 41 43 43 45 50 ┆d yet) INX H ;READY TO ACCEP┆ 0x062be0…062c00 54 20 54 48 45 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 0d 0a 09 09 58 43 48 47 21 20 4c 48 4c ┆T THE SERIAL NUMBER XCHG! LHL┆ 0x062c00…062c20 (26, 0, 11) 45 0d 0a 09 09 09 44 4c 4f 4f 50 3a 20 49 4e 52 20 4d 20 3b 53 54 52 41 43 4b 20 3d 20 53 54 52 ┆E DLOOP: INR M ;STRACK = STR┆ 0x062c20…062c40 41 43 4b 20 2b 20 31 0d 0a 09 09 09 09 4d 4f 56 20 41 2c 45 21 20 53 55 49 20 28 32 36 2a 31 32 ┆ACK + 1 MOV A,E! SUI (26*12┆ 0x062c40…062c60 38 29 20 41 4e 44 20 30 46 46 48 0d 0a 09 09 09 09 4d 4f 56 20 42 2c 41 20 3b 53 41 56 45 20 4c ┆8) AND 0FFH MOV B,A ;SAVE L┆ 0x062c60…062c80 4f 57 20 4f 52 44 45 52 20 44 49 46 46 45 52 45 4e 43 45 0d 0a 09 09 09 09 4d 4f 56 20 41 2c 44 ┆OW ORDER DIFFERENCE MOV A,D┆ 0x062c80…062ca0 21 20 53 42 49 20 28 32 36 2a 31 32 38 29 20 53 48 52 20 38 0d 0a 09 09 09 09 4a 43 20 45 44 4c ┆! SBI (26*128) SHR 8 JC EDL┆ 0x062ca0…062cc0 4f 4f 50 20 3b 43 41 52 52 59 20 49 46 20 54 4f 4f 20 4d 41 4e 59 20 53 55 42 54 52 41 43 54 53 ┆OOP ;CARRY IF TOO MANY SUBTRACTS┆ 0x062cc0…062ce0 0d 0a 09 09 09 09 4d 4f 56 20 44 2c 41 21 20 4d 4f 56 20 45 2c 42 20 3b 52 45 53 45 54 20 54 4f ┆ MOV D,A! MOV E,B ;RESET TO┆ 0x062ce0…062d00 20 4c 4f 57 45 52 20 56 41 4c 55 45 0d 0a 09 09 09 09 4a 4d 50 20 44 4c 4f 4f 50 0d 0a 09 09 09 ┆ LOWER VALUE JMP DLOOP ┆ 0x062d00…062d20 45 44 4c 4f 4f 50 3a 09 3b 44 2c 45 20 43 4f 4e 54 41 49 4e 20 4f 46 46 53 45 54 20 49 4e 54 4f ┆EDLOOP: ;D,E CONTAIN OFFSET INTO┆ 0x062d20…062d40 20 54 52 41 43 4b 20 53 54 52 41 43 4b 0d 0a 09 09 09 09 58 43 48 47 21 20 53 48 4c 44 20 53 44 ┆ TRACK STRACK XCHG! SHLD SD┆ 0x062d40…062d60 49 46 46 0d 0a 09 09 09 4a 4d 50 20 52 44 54 52 4b 4e 0d 0a 09 09 09 4e 4f 4d 41 54 33 3a 09 3b ┆IFF JMP RDTRKN NOMAT3: ;┆ 0x062d60…062d80 4e 4f 20 4d 41 54 43 48 20 4f 4e 20 43 55 52 52 45 4e 54 20 53 54 52 49 4e 47 0d 0a 09 09 09 50 ┆NO MATCH ON CURRENT STRING P┆ 0x062d80…062da0 4f 50 20 42 21 20 50 4f 50 20 48 21 20 49 4e 58 20 48 21 20 44 43 58 20 42 0d 0a 09 09 09 4d 4f ┆OP B! POP H! INX H! DCX B MO┆ 0x062da0…062dc0 56 20 41 2c 42 21 20 4f 52 41 20 43 21 20 4a 4e 5a 20 51 54 52 30 20 3b 46 4f 52 20 41 4e 4f 54 ┆V A,B! ORA C! JNZ QTR0 ;FOR ANOT┆ 0x062dc0…062de0 48 45 52 20 53 43 41 4e 0d 0a 09 09 09 3b 4e 4f 54 20 46 4f 55 4e 44 0d 0a 09 09 51 54 52 32 3a ┆HER SCAN ;NOT FOUND QTR2:┆ 0x062de0…062e00 09 43 41 4c 4c 20 42 41 44 43 4f 4d 21 20 4a 4d 50 20 52 44 44 53 4b 0d 0a 09 09 3b 0d 0a 09 52 ┆ CALL BADCOM! JMP RDDSK ; R┆ 0x062e00…062e20 (26, 0, 12) 6f 64 65 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 09 69 6e 74 79 70 65 2c 20 69 6e 62 79 74 65 2c 20 ┆ode ret ; ; intype, inbyte, ┆ 0x062e20…062e40 69 6e 73 74 61 74 20 72 65 61 64 20 64 72 69 76 65 20 62 61 6e 6b 20 30 30 20 6f 72 20 31 30 0d ┆instat read drive bank 00 or 10 ┆ 0x062e40…062e60 0a 69 6e 74 79 70 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a ┆ intype: lda dbank ora a jnz┆ 0x062e60…062e80 09 69 6e 74 79 70 31 09 3b 73 6b 69 70 20 74 6f 20 62 61 6e 6b 20 31 30 0d 0a 09 69 6e 09 72 74 ┆ intyp1 ;skip to bank 10 in rt┆ 0x062e80…062ea0 79 70 65 0d 0a 09 72 65 74 0d 0a 69 6e 74 79 70 31 3a 09 69 6e 09 72 74 79 70 65 2b 31 30 68 09 ┆ype ret intyp1: in rtype+10h ┆ 0x062ea0…062ec0 3b 37 38 20 66 6f 72 20 30 2c 31 20 20 38 38 20 66 6f 72 20 32 2c 33 0d 0a 09 72 65 74 0d 0a 3b ┆;78 for 0,1 88 for 2,3 ret ;┆ 0x062ec0…062ee0 0d 0a 69 6e 62 79 74 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e ┆ inbyte: lda dbank ora a jn┆ 0x062ee0…062f00 7a 09 69 6e 62 79 74 31 0d 0a 09 69 6e 09 72 62 79 74 65 0d 0a 09 72 65 74 0d 0a 69 6e 62 79 74 ┆z inbyt1 in rbyte ret inbyt┆ 0x062f00…062f20 31 3a 09 69 6e 09 72 62 79 74 65 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 69 6e 73 74 61 74 ┆1: in rbyte+10h ret ; instat┆ 0x062f20…062f40 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 73 74 61 31 ┆: lda dbank ora a jnz insta1┆ 0x062f40…062f60 0d 0a 09 69 6e 09 64 73 74 61 74 0d 0a 09 72 65 74 0d 0a 69 6e 73 74 61 31 3a 09 69 6e 09 64 73 ┆ in dstat ret insta1: in ds┆ 0x062f60…062f80 74 61 74 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 61 74 61 20 61 ┆tat+10h ret ; ; ; ; data a┆ 0x062f80…062fa0 72 65 61 73 20 28 6d 75 73 74 20 62 65 20 69 6e 20 72 61 6d 29 0d 0a 64 62 61 6e 6b 3a 09 64 62 ┆reas (must be in ram) dbank: db┆ 0x062fa0…062fc0 09 30 09 3b 64 69 73 6b 20 62 61 6e 6b 20 30 30 20 69 66 20 64 72 69 76 65 20 30 2c 31 0d 0a 09 ┆ 0 ;disk bank 00 if drive 0,1 ┆ 0x062fc0…062fe0 09 09 3b 09 20 20 20 31 30 20 69 66 20 64 72 69 76 65 20 32 2c 33 0d 0a 69 6f 70 62 3a 09 3b 69 ┆ ; 10 if drive 2,3 iopb: ;i┆ 0x062fe0…063000 6f 20 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 0d 0a 09 64 62 09 38 30 68 09 3b 6e 6f 72 6d ┆o parameter block db 80h ;norm┆ 0x063000…063020 (26, 0, 13) 4d 56 49 09 43 2c 37 32 0d 0a 53 45 54 53 50 54 3a 09 4d 4f 56 09 41 2c 43 0d 0a 09 53 54 41 09 ┆MVI C,72 SETSPT: MOV A,C STA ┆ 0x063020…063040 53 50 54 0d 0a 09 43 41 4c 4c 09 4f 52 47 4d 53 47 09 3b 4f 52 49 47 49 4e 20 50 52 4f 4d 50 54 ┆SPT CALL ORGMSG ;ORIGIN PROMPT┆ 0x063040…063060 0d 0a 09 43 41 4c 4c 09 52 45 41 44 0d 0a 09 4c 58 49 20 48 2c 4f 52 49 47 49 4e 21 20 4d 4f 56 ┆ CALL READ LXI H,ORIGIN! MOV┆ 0x063060…063080 20 4d 2c 43 21 20 69 6e 78 20 68 21 20 6d 6f 76 20 6d 2c 62 20 3b 53 41 56 45 44 20 54 48 45 20 ┆ M,C! inx h! mov m,b ;SAVED THE ┆ 0x063080…0630a0 4f 52 49 47 49 4e 20 4e 55 4d 42 45 52 0d 0a 09 4c 58 49 20 48 2c 43 4f 4d 4c 45 4e 21 20 4d 4f ┆ORIGIN NUMBER LXI H,COMLEN! MO┆ 0x0630a0…0630c0 56 20 42 2c 4d 21 20 49 4e 58 20 48 21 20 58 43 48 47 0d 0a 09 4c 58 49 20 48 2c 41 4f 52 49 47 ┆V B,M! INX H! XCHG LXI H,AORIG┆ 0x0630c0…0630e0 49 4e 20 3b 41 53 43 49 49 20 56 45 52 53 49 4f 4e 20 4f 46 20 54 48 45 20 4f 52 49 47 49 4e 0d ┆IN ;ASCII VERSION OF THE ORIGIN ┆ 0x0630e0…063100 0a 09 4f 52 47 32 3a 20 4c 44 41 58 20 44 21 20 4f 52 41 20 41 21 20 4a 5a 20 4f 52 47 33 0d 0a ┆ ORG2: LDAX D! ORA A! JZ ORG3 ┆ 0x063100…063120 09 09 49 4e 58 20 44 21 20 4d 4f 56 20 4d 2c 41 21 20 49 4e 58 20 48 21 20 44 43 52 20 42 21 20 ┆ INX D! MOV M,A! INX H! DCR B! ┆ 0x063120…063140 4a 4e 5a 20 4f 52 47 32 0d 0a 09 09 3b 41 53 43 49 49 20 56 45 52 53 49 4f 4e 20 4d 4f 56 45 44 ┆JNZ ORG2 ;ASCII VERSION MOVED┆ 0x063140…063160 20 54 4f 20 42 55 46 46 45 52 2c 20 50 41 44 20 49 54 0d 0a 09 4f 52 47 33 3a 09 4d 56 49 20 4d ┆ TO BUFFER, PAD IT ORG3: MVI M┆ 0x063160…063180 2c 27 2d 27 21 20 49 4e 58 20 48 21 20 4d 56 49 20 4d 2c 27 24 27 20 3b 52 45 41 44 59 20 46 4f ┆,'-'! INX H! MVI M,'$' ;READY FO┆ 0x063180…0631a0 52 20 50 52 49 4e 54 49 4e 47 0d 0a 3b 0d 0a 3b 09 4e 4f 57 20 52 45 41 44 20 54 48 45 20 53 45 ┆R PRINTING ; ; NOW READ THE SE┆ 0x0631a0…0631c0 52 49 41 4c 20 4e 55 4d 42 45 52 0d 0a 09 43 41 4c 4c 20 53 45 52 4d 53 47 21 20 43 41 4c 4c 20 ┆RIAL NUMBER CALL SERMSG! CALL ┆ 0x0631c0…0631e0 52 45 41 44 0d 0a 09 4c 58 49 20 48 2c 42 53 45 52 49 41 4c 21 20 4d 4f 56 20 4d 2c 43 21 20 49 ┆READ LXI H,BSERIAL! MOV M,C! I┆ 0x0631e0…063200 4e 58 20 48 21 20 4d 4f 56 20 4d 2c 42 20 3b 42 49 4e 41 52 59 20 43 4f 50 49 45 44 0d 0a 09 4c ┆NX H! MOV M,B ;BINARY COPIED L┆ 0x063200…063220 (26, 0, 14) 44 20 42 53 45 52 49 41 4c 21 20 58 43 48 47 21 20 4d 4f 56 20 4d 2c 44 21 20 49 4e 58 20 48 21 ┆D BSERIAL! XCHG! MOV M,D! INX H!┆ 0x063220…063240 20 4d 4f 56 20 4d 2c 45 0d 0a 09 09 3b 46 49 52 53 54 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 ┆ MOV M,E ;FIRST SERIAL NUMBER┆ 0x063240…063260 20 49 53 20 53 54 4f 52 45 44 2c 20 4e 4f 57 20 43 4f 50 59 20 54 4f 20 42 44 4f 53 0d 0a 09 09 ┆ IS STORED, NOW COPY TO BDOS ┆ 0x063260…063280 50 4f 50 20 42 21 20 50 55 53 48 20 42 21 20 4c 58 49 20 44 2c 42 44 4f 53 56 0d 0a 3b 09 09 43 ┆POP B! PUSH B! LXI D,BDOSV ; C┆ 0x063280…0632a0 4f 4d 50 55 54 45 20 44 49 46 46 45 52 45 4e 43 45 20 49 4e 20 41 44 44 52 45 53 53 45 53 20 46 ┆OMPUTE DIFFERENCE IN ADDRESSES F┆ 0x0632a0…0632c0 4f 52 20 4c 41 54 45 52 0d 0a 09 09 4d 4f 56 20 41 2c 45 21 20 53 55 42 20 43 21 20 4d 4f 56 20 ┆OR LATER MOV A,E! SUB C! MOV ┆ 0x0632c0…0632e0 4c 2c 41 0d 0a 09 09 4d 4f 56 20 41 2c 44 21 20 53 42 42 20 42 21 20 4d 4f 56 20 48 2c 41 21 20 ┆L,A MOV A,D! SBB B! MOV H,A! ┆ 0x0632e0…063300 53 48 4c 44 20 53 44 49 46 46 0d 0a 09 09 50 4f 50 20 48 21 20 4d 56 49 20 43 2c 36 20 3b 4c 45 ┆SHLD SDIFF POP H! MVI C,6 ;LE┆ 0x063300…063320 4e 47 54 48 20 4f 46 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 0d 0a 3b 09 09 48 2c 4c 20 41 44 ┆NGTH OF SERIAL NUMBER ; H,L AD┆ 0x063320…063340 44 52 45 53 53 20 53 54 41 52 54 20 4f 46 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 2c 20 44 2c ┆DRESS START OF SERIAL NUMBER, D,┆ 0x063340…063360 45 20 41 44 44 52 45 53 53 20 53 45 43 4f 4e 44 20 23 0d 0a 09 09 43 4f 50 59 30 3a 20 4d 4f 56 ┆E ADDRESS SECOND # COPY0: MOV┆ 0x063360…063380 20 41 2c 4d 21 20 53 54 41 58 20 44 21 20 49 4e 58 20 44 21 20 49 4e 58 20 48 21 20 44 43 52 20 ┆ A,M! STAX D! INX D! INX H! DCR ┆ 0x063380…0633a0 43 0d 0a 09 09 09 4a 4e 5a 20 43 4f 50 59 30 0d 0a 09 09 3b 42 44 4f 53 20 53 45 52 49 41 4c 20 ┆C JNZ COPY0 ;BDOS SERIAL ┆ 0x0633a0…0633c0 4e 55 4d 42 45 52 20 49 53 20 43 4f 50 49 45 44 0d 0a 09 09 4a 4d 50 20 52 44 54 52 4b 4e 0d 0a ┆NUMBER IS COPIED JMP RDTRKN ┆ 0x0633c0…0633e0 09 09 3b 0d 0a 09 4e 4f 4d 41 54 43 48 3a 20 3b 54 52 59 20 46 4f 52 20 4e 45 58 54 20 4d 41 54 ┆ ; NOMATCH: ;TRY FOR NEXT MAT┆ 0x0633e0…063400 43 48 0d 0a 09 09 50 4f 50 20 42 21 20 50 4f 50 20 48 21 20 49 4e 58 20 48 21 20 44 43 58 20 42 ┆CH POP B! POP H! INX H! DCX B┆ 0x063400…063420 (26, 0, 15) 44 54 52 4b 4e 3a 0d 0a 09 09 3b 43 48 45 43 4b 20 46 4f 52 20 4d 4f 56 43 50 4d 2e 43 4f 4d 20 ┆DTRKN: ;CHECK FOR MOVCPM.COM ┆ 0x063420…063440 53 45 52 49 41 4c 49 5a 41 54 49 4f 4e 0d 0a 09 09 4c 58 49 20 48 2c 53 54 52 41 43 4b 21 20 4d ┆SERIALIZATION LXI H,STRACK! M┆ 0x063440…063460 4f 56 20 41 2c 4d 21 20 4f 52 41 20 41 21 20 4a 5a 20 4e 4f 53 45 52 0d 0a 09 09 3b 41 4c 52 45 ┆OV A,M! ORA A! JZ NOSER ;ALRE┆ 0x063460…063480 41 44 59 20 53 45 52 49 41 4c 49 5a 45 44 20 49 46 20 53 54 52 41 43 4b 3d 30 0d 0a 09 09 44 43 ┆ADY SERIALIZED IF STRACK=0 DC┆ 0x063480…0634a0 52 20 4d 21 20 4a 4e 5a 20 4e 4f 53 45 52 20 3b 4e 4f 54 20 4f 4e 20 50 52 4f 50 45 52 20 54 52 ┆R M! JNZ NOSER ;NOT ON PROPER TR┆ 0x0634a0…0634c0 41 43 4b 0d 0a 09 09 3b 4f 4e 20 50 52 4f 50 45 52 20 54 52 41 43 4b 2c 20 53 44 49 46 46 20 43 ┆ACK ;ON PROPER TRACK, SDIFF C┆ 0x0634c0…0634e0 4f 4e 54 41 49 4e 53 20 49 4e 44 45 58 20 54 4f 20 42 44 4f 53 20 53 45 52 49 41 4c 23 0d 0a 09 ┆ONTAINS INDEX TO BDOS SERIAL# ┆ 0x0634e0…063500 09 09 4c 48 4c 44 20 53 44 49 46 46 21 20 43 41 4c 4c 20 53 54 53 45 52 49 41 4c 0d 0a 09 4e 4f ┆ LHLD SDIFF! CALL STSERIAL NO┆ 0x063500…063520 53 45 52 3a 0d 0a 09 09 3b 54 52 41 43 4b 20 49 4e 20 4d 45 4d 4f 52 59 2c 20 43 48 45 43 4b 20 ┆SER: ;TRACK IN MEMORY, CHECK ┆ 0x063520…063540 46 4f 52 20 4c 41 53 54 20 54 52 41 43 4b 0d 0a 09 09 4c 58 49 20 48 2c 49 42 55 46 46 21 20 4c ┆FOR LAST TRACK LXI H,IBUFF! L┆ 0x063540…063560 58 49 20 42 2c 54 52 4c 45 4e 0d 0a 09 09 54 52 43 4f 4d 50 3a 09 4d 56 49 20 41 2c 30 45 35 48 ┆XI B,TRLEN TRCOMP: MVI A,0E5H┆ 0x063560…063580 21 20 43 4d 50 20 4d 21 20 4a 4e 5a 20 57 52 54 52 4b 0d 0a 09 09 09 49 4e 58 20 48 21 20 44 43 ┆! CMP M! JNZ WRTRK INX H! DC┆ 0x063580…0635a0 58 20 42 21 20 4d 4f 56 20 41 2c 43 21 20 4f 52 41 20 42 21 20 4a 4e 5a 20 54 52 43 4f 4d 50 0d ┆X B! MOV A,C! ORA B! JNZ TRCOMP ┆ 0x0635a0…0635c0 0a 09 09 3b 45 4e 44 20 4f 46 20 43 4f 50 59 2c 20 41 4c 4c 20 30 45 35 48 27 53 0d 0a 09 09 4c ┆ ;END OF COPY, ALL 0E5H'S L┆ 0x0635c0…0635e0 44 41 20 53 54 52 41 43 4b 21 20 4f 52 41 20 41 21 20 4a 5a 20 45 4e 44 43 4f 50 59 0d 0a 09 09 ┆DA STRACK! ORA A! JZ ENDCOPY ┆ 0x0635e0…063600 09 3b 4e 4f 54 20 5a 45 52 4f 2c 20 43 4f 55 4c 44 20 4e 4f 54 20 46 49 4e 44 20 53 45 43 4f 4e ┆ ;NOT ZERO, COULD NOT FIND SECON┆ 0x063600…063620 (26, 1, 1) 61 6c 20 69 2f 6f 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 69 6f 66 3a 09 64 62 09 72 65 61 64 66 09 ┆al i/o operation iof: db readf ┆ 0x063620…063640 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 2c 20 69 6e 69 74 69 61 6c 20 72 65 61 64 0d 0a 69 6f 6e 3a ┆;io function, initial read ion:┆ 0x063640…063660 09 64 62 09 31 09 3b 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 20 74 6f 20 72 65 61 64 ┆ db 1 ;number of sectors to read┆ 0x063660…063680 0d 0a 69 6f 74 3a 09 64 62 09 6f 66 66 73 65 74 09 3b 74 72 61 63 6b 20 6e 75 6d 62 65 72 0d 0a ┆ iot: db offset ;track number ┆ 0x063680…0636a0 69 6f 73 3a 09 64 62 09 31 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 0d 0a 69 6f 64 3a 09 64 ┆ios: db 1 ;sector number iod: d┆ 0x0636a0…0636c0 77 09 62 75 66 66 09 3b 69 6f 20 61 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 65 66 69 ┆w buff ;io address ; ; ; defi┆ 0x0636c0…0636e0 6e 65 20 72 61 6d 20 61 72 65 61 73 20 66 6f 72 20 62 64 6f 73 20 6f 70 65 72 61 74 69 6f 6e 0d ┆ne ram areas for bdos operation ┆ 0x0636e0…063700 0a 09 65 6e 64 65 66 0d 0a 09 65 6e 64 0d 0a 3b 09 4d 44 53 2d 38 30 30 20 49 2f 4f 20 44 72 69 ┆ endef end ; MDS-800 I/O Dri┆ 0x063700…063720 76 65 72 73 20 66 6f 72 20 43 50 2f 4d 20 32 2e 32 0d 0a 3b 09 28 66 6f 75 72 20 64 72 69 76 65 ┆vers for CP/M 2.2 ; (four drive┆ 0x063720…063740 20 73 69 6e 67 6c 65 20 64 65 6e 73 69 74 79 20 76 65 72 73 69 6f 6e 29 0d 0a 3b 0d 0a 3b 09 56 ┆ single density version) ; ; V┆ 0x063740…063760 65 72 73 69 6f 6e 20 32 2e 32 20 46 65 62 72 75 61 72 79 2c 20 31 39 38 30 0d 0a 3b 0d 0a 76 65 ┆ersion 2.2 February, 1980 ; ve┆ 0x063760…063780 72 73 09 65 71 75 09 32 32 09 3b 76 65 72 73 69 6f 6e 20 32 2e 32 0d 0a 3b 0d 0a 3b 09 43 6f 70 ┆rs equ 22 ;version 2.2 ; ; Cop┆ 0x063780…0637a0 79 72 69 67 68 74 20 28 63 29 20 31 39 38 30 0d 0a 3b 09 44 69 67 69 74 61 6c 20 52 65 73 65 61 ┆yright (c) 1980 ; Digital Resea┆ 0x0637a0…0637c0 72 63 68 0d 0a 3b 09 42 6f 78 20 35 37 39 2c 20 50 61 63 69 66 69 63 20 47 72 6f 76 65 0d 0a 3b ┆rch ; Box 579, Pacific Grove ;┆ 0x0637c0…0637e0 09 43 61 6c 69 66 6f 72 6e 69 61 2c 20 39 33 39 35 30 0d 0a 3b 0d 0a 3b 0d 0a 74 72 75 65 09 65 ┆ California, 93950 ; ; true e┆ 0x0637e0…063800 71 75 09 30 66 66 66 66 68 09 3b 76 61 6c 75 65 20 6f 66 20 22 74 72 75 65 22 0d 0a 66 61 6c 73 ┆qu 0ffffh ;value of "true" fals┆ 0x063800…063820 (26, 1, 2) 64 20 74 72 61 63 6b 2f 73 65 63 74 6f 72 20 74 6f 20 70 72 65 73 65 74 20 64 6d 61 20 61 64 64 ┆d track/sector to preset dma add┆ 0x063820…063840 72 65 73 73 0d 0a 3b 09 77 72 69 74 65 09 77 72 69 74 65 20 74 72 61 63 6b 2f 73 65 63 74 6f 72 ┆ress ; write write track/sector┆ 0x063840…063860 20 66 72 6f 6d 20 70 72 65 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b 09 6a ┆ from preset dma address ; ; j┆ 0x063860…063880 75 6d 70 20 76 65 63 74 6f 72 20 66 6f 72 20 69 6e 64 69 76 69 75 61 6c 20 72 6f 75 74 69 6e 65 ┆ump vector for indiviual routine┆ 0x063880…0638a0 73 0d 0a 09 6a 6d 70 09 62 6f 6f 74 0d 0a 77 62 6f 6f 74 65 3a 09 6a 6d 70 09 77 62 6f 6f 74 0d ┆s jmp boot wboote: jmp wboot ┆ 0x0638a0…0638c0 0a 09 6a 6d 70 09 63 6f 6e 73 74 0d 0a 09 6a 6d 70 09 63 6f 6e 69 6e 0d 0a 09 6a 6d 70 09 63 6f ┆ jmp const jmp conin jmp co┆ 0x0638c0…0638e0 6e 6f 75 74 0d 0a 09 6a 6d 70 09 6c 69 73 74 0d 0a 09 6a 6d 70 09 70 75 6e 63 68 0d 0a 09 6a 6d ┆nout jmp list jmp punch jm┆ 0x0638e0…063900 70 09 72 65 61 64 65 72 0d 0a 09 6a 6d 70 09 68 6f 6d 65 0d 0a 09 6a 6d 70 09 73 65 6c 64 73 6b ┆p reader jmp home jmp seldsk┆ 0x063900…063920 0d 0a 09 6a 6d 70 09 73 65 74 74 72 6b 0d 0a 09 6a 6d 70 09 73 65 74 73 65 63 0d 0a 09 6a 6d 70 ┆ jmp settrk jmp setsec jmp┆ 0x063920…063940 09 73 65 74 64 6d 61 0d 0a 09 6a 6d 70 09 72 65 61 64 0d 0a 09 6a 6d 70 09 77 72 69 74 65 0d 0a ┆ setdma jmp read jmp write ┆ 0x063940…063960 09 6a 6d 70 09 6c 69 73 74 73 74 09 3b 6c 69 73 74 20 73 74 61 74 75 73 0d 0a 09 6a 6d 70 09 73 ┆ jmp listst ;list status jmp s┆ 0x063960…063980 65 63 74 72 61 6e 0d 0a 3b 0d 0a 09 6d 61 63 6c 69 62 09 64 69 73 6b 64 65 66 09 3b 6c 6f 61 64 ┆ectran ; maclib diskdef ;load┆ 0x063980…0639a0 20 74 68 65 20 64 69 73 6b 20 64 65 66 69 6e 69 74 69 6f 6e 20 6c 69 62 72 61 72 79 0d 0a 09 64 ┆ the disk definition library d┆ 0x0639a0…0639c0 69 73 6b 73 09 34 09 3b 66 6f 75 72 20 64 69 73 6b 73 0d 0a 09 64 69 73 6b 64 65 66 09 30 2c 31 ┆isks 4 ;four disks diskdef 0,1┆ 0x0639c0…0639e0 2c 32 36 2c 36 2c 31 30 32 34 2c 32 34 33 2c 36 34 2c 36 34 2c 6f 66 66 73 65 74 0d 0a 09 64 69 ┆,26,6,1024,243,64,64,offset di┆ 0x0639e0…063a00 73 6b 64 65 66 09 31 2c 30 0d 0a 09 64 69 73 6b 64 65 66 09 32 2c 30 0d 0a 09 64 69 73 6b 64 65 ┆skdef 1,0 diskdef 2,0 diskde┆ 0x063a00…063a20 (26, 1, 3) 64 69 66 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 09 64 62 09 27 30 30 27 09 3b 6d 65 6d ┆dif if not test db '00' ;mem┆ 0x063a20…063a40 6f 72 79 20 73 69 7a 65 20 66 69 6c 6c 65 64 20 62 79 20 72 65 6c 6f 63 61 74 6f 72 0d 0a 09 65 ┆ory size filled by relocator e┆ 0x063a40…063a60 6e 64 69 66 0d 0a 09 64 62 09 27 6b 20 43 50 2f 4d 20 76 65 72 73 20 27 0d 0a 09 64 62 09 76 65 ┆ndif db 'k CP/M vers ' db ve┆ 0x063a60…063a80 72 73 2f 31 30 2b 27 30 27 2c 27 2e 27 2c 76 65 72 73 20 6d 6f 64 20 31 30 2b 27 30 27 0d 0a 09 ┆rs/10+'0','.',vers mod 10+'0' ┆ 0x063a80…063aa0 64 62 09 63 72 2c 6c 66 2c 30 0d 0a 3b 0d 0a 62 6f 6f 74 3a 09 3b 70 72 69 6e 74 20 73 69 67 6e ┆db cr,lf,0 ; boot: ;print sign┆ 0x063aa0…063ac0 6f 6e 20 6d 65 73 73 61 67 65 20 61 6e 64 20 67 6f 20 74 6f 20 63 63 70 0d 0a 3b 09 28 6e 6f 74 ┆on message and go to ccp ; (not┆ 0x063ac0…063ae0 65 3a 20 6d 64 73 20 62 6f 6f 74 20 69 6e 69 74 69 61 6c 69 7a 65 64 20 69 6f 62 79 74 65 20 61 ┆e: mds boot initialized iobyte a┆ 0x063ae0…063b00 74 20 30 30 30 33 68 29 0d 0a 09 6c 78 69 09 73 70 2c 62 75 66 66 2b 38 30 68 0d 0a 09 6c 78 69 ┆t 0003h) lxi sp,buff+80h lxi┆ 0x063b00…063b20 09 68 2c 73 69 67 6e 6f 6e 0d 0a 09 63 61 6c 6c 09 70 72 6d 73 67 09 3b 70 72 69 6e 74 20 6d 65 ┆ h,signon call prmsg ;print me┆ 0x063b20…063b40 73 73 61 67 65 0d 0a 09 78 72 61 09 61 09 3b 63 6c 65 61 72 20 61 63 63 75 6d 75 6c 61 74 6f 72 ┆ssage xra a ;clear accumulator┆ 0x063b40…063b60 0d 0a 09 73 74 61 09 63 64 69 73 6b 09 3b 73 65 74 20 69 6e 69 74 69 61 6c 6c 79 20 74 6f 20 64 ┆ sta cdisk ;set initially to d┆ 0x063b60…063b80 69 73 6b 20 61 0d 0a 09 6a 6d 70 09 67 6f 63 70 6d 09 3b 67 6f 20 74 6f 20 63 70 2f 6d 0d 0a 3b ┆isk a jmp gocpm ;go to cp/m ;┆ 0x063b80…063ba0 0d 0a 3b 0d 0a 77 62 6f 6f 74 3a 3b 09 6c 6f 61 64 65 72 20 6f 6e 20 74 72 61 63 6b 20 30 2c 20 ┆ ; wboot:; loader on track 0, ┆ 0x063ba0…063bc0 73 65 63 74 6f 72 20 31 2c 20 77 68 69 63 68 20 77 69 6c 6c 20 62 65 20 73 6b 69 70 70 65 64 20 ┆sector 1, which will be skipped ┆ 0x063bc0…063be0 66 6f 72 20 77 61 72 6d 20 0d 0a 3b 09 72 65 61 64 20 63 70 2f 6d 20 66 72 6f 6d 20 64 69 73 6b ┆for warm ; read cp/m from disk┆ 0x063be0…063c00 20 2d 20 61 73 73 75 6d 69 6e 67 20 74 68 65 72 65 20 69 73 20 61 20 31 32 38 20 62 79 74 65 20 ┆ - assuming there is a 128 byte ┆ 0x063c00…063c20 (26, 1, 4) 44 20 42 53 45 52 49 41 4c 21 20 49 4e 58 20 48 21 20 53 48 4c 44 20 42 53 45 52 49 41 4c 20 3b ┆D BSERIAL! INX H! SHLD BSERIAL ;┆ 0x063c20…063c40 54 45 53 54 20 46 4f 52 20 4f 56 45 52 46 4c 4f 57 0d 0a 09 4d 4f 56 20 41 2c 4c 21 20 4f 52 41 ┆TEST FOR OVERFLOW MOV A,L! ORA┆ 0x063c40…063c60 20 48 21 20 4a 5a 20 53 45 52 4f 56 45 52 0d 0a 09 3b 0d 0a 09 4c 58 49 20 48 2c 41 53 45 52 49 ┆ H! JZ SEROVER ; LXI H,ASERI┆ 0x063c60…063c80 41 4c 2b 34 21 20 4d 56 49 20 42 2c 35 20 3b 4c 45 4e 47 54 48 20 4f 46 20 53 45 52 49 41 4c 20 ┆AL+4! MVI B,5 ;LENGTH OF SERIAL ┆ 0x063c80…063ca0 4e 55 4d 42 45 52 0d 0a 09 49 4e 43 30 3a 09 49 4e 52 20 4d 21 20 4d 4f 56 20 41 2c 4d 21 20 43 ┆NUMBER INC0: INR M! MOV A,M! C┆ 0x063ca0…063cc0 50 49 20 27 39 27 2b 31 21 20 52 43 20 3b 52 45 54 55 52 4e 20 49 46 20 4e 4f 20 43 41 52 52 59 ┆PI '9'+1! RC ;RETURN IF NO CARRY┆ 0x063cc0…063ce0 0d 0a 09 09 4d 56 49 20 4d 2c 27 30 27 20 3b 43 4c 45 41 52 20 54 48 45 20 4e 55 4d 42 45 52 0d ┆ MVI M,'0' ;CLEAR THE NUMBER ┆ 0x063ce0…063d00 0a 09 09 44 43 58 20 48 21 20 44 43 52 20 42 21 20 4a 4e 5a 20 49 4e 43 30 0d 0a 09 3b 0d 0a 09 ┆ DCX H! DCR B! JNZ INC0 ; ┆ 0x063d00…063d20 53 45 52 4f 56 45 52 3a 0d 0a 09 09 3b 4f 56 45 52 46 4c 4f 57 20 49 4e 20 53 45 52 49 41 4c 20 ┆SEROVER: ;OVERFLOW IN SERIAL ┆ 0x063d20…063d40 4e 55 4d 42 45 52 0d 0a 09 09 43 41 4c 4c 20 4f 56 45 52 4d 53 47 0d 0a 09 09 4a 4d 50 20 42 4f ┆NUMBER CALL OVERMSG JMP BO┆ 0x063d40…063d60 4f 54 0d 0a 09 3b 0d 0a 54 52 41 4e 53 4c 41 54 45 3a 0d 0a 09 3b 54 52 41 4e 53 4c 41 54 45 20 ┆OT ; TRANSLATE: ;TRANSLATE ┆ 0x063d60…063d80 54 48 45 20 52 45 4c 41 54 49 56 45 20 41 44 44 52 45 53 53 20 49 4e 20 48 2c 4c 20 54 4f 20 41 ┆THE RELATIVE ADDRESS IN H,L TO A┆ 0x063d80…063da0 42 53 4f 4c 55 54 45 20 41 44 44 52 45 53 53 0d 0a 09 3b 49 4e 20 49 42 55 46 46 2c 20 41 53 53 ┆BSOLUTE ADDRESS ;IN IBUFF, ASS┆ 0x063da0…063dc0 55 4d 49 4e 47 20 53 45 43 54 4f 52 53 20 41 52 45 20 53 4b 45 57 45 44 0d 0a 09 50 55 53 48 20 ┆UMING SECTORS ARE SKEWED PUSH ┆ 0x063dc0…063de0 44 21 20 4d 4f 56 20 41 2c 4c 21 20 41 4e 49 20 37 46 48 21 20 4d 4f 56 20 45 2c 41 20 3b 4c 53 ┆D! MOV A,L! ANI 7FH! MOV E,A ;LS┆ 0x063de0…063e00 20 37 20 42 49 54 53 20 4f 46 20 41 44 44 52 45 53 53 20 53 41 56 45 44 0d 0a 09 09 4d 4f 56 20 ┆ 7 BITS OF ADDRESS SAVED MOV ┆ 0x063e00…063e20 (26, 1, 5) 32 30 35 33 35 39 35 33 35 34 34 35 34 44 32 30 34 34 42 42 0d 0a 3a 31 30 30 33 45 30 30 30 34 ┆2053595354454D2044BB :1003E0004┆ 0x063e20…063e40 39 35 33 34 42 32 30 34 31 34 45 34 34 32 30 35 34 35 39 35 30 34 35 32 30 33 43 35 32 34 35 44 ┆9534B20414E442054595045203C5245D┆ 0x063e40…063e60 45 0d 0a 3a 31 30 30 33 46 30 30 30 35 34 35 35 35 32 34 45 33 45 30 44 30 41 32 34 30 30 30 30 ┆E :1003F0005455524E3E0D0A240000┆ 0x063e60…063e80 30 30 30 30 30 30 30 30 30 30 30 30 33 42 0d 0a 3a 30 37 30 34 30 30 30 30 30 30 30 30 30 30 30 ┆0000000000003B :070400000000000┆ 0x063e80…063ea0 30 30 30 30 30 30 30 46 35 0d 0a 3a 30 32 30 34 34 38 30 30 30 30 30 30 42 32 0d 0a 3a 30 30 30 ┆0000000F5 :020448000000B2 :000┆ 0x063ea0…063ec0 31 30 30 30 30 46 46 0d 0a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆10000FF ┆ 0x063ec0…063ee0 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆ ┆ […0x1…] 0x063f00…063f20 34 39 34 45 43 44 0d 0a 3a 31 30 30 33 38 30 30 30 35 33 34 35 35 32 35 34 32 30 34 34 34 35 35 ┆494ECD :10038000534552542044455┆ 0x063f20…063f40 33 35 34 34 39 34 45 34 31 35 34 34 39 34 46 34 45 43 44 0d 0a 3a 31 30 30 33 39 30 30 30 32 30 ┆354494E4154494F4ECD :1003900020┆ 0x063f40…063f60 34 34 34 39 35 33 34 42 32 30 34 31 34 45 34 34 32 30 35 34 35 39 35 30 34 35 32 30 33 43 36 31 ┆4449534B20414E442054595045203C61┆ 0x063f60…063f80 0d 0a 3a 31 30 30 33 41 30 30 30 35 32 34 35 35 34 35 35 35 32 34 45 33 45 30 44 30 41 32 34 34 ┆ :1003A00052455455524E3E0D0A244┆ 0x063f80…063fa0 39 34 45 35 33 34 35 35 32 35 34 31 46 0d 0a 3a 31 30 30 33 42 30 30 30 32 30 35 33 34 46 35 35 ┆94E534552541F :1003B00020534F55┆ 0x063fa0…063fc0 35 32 34 33 34 35 32 30 34 34 34 39 35 33 34 42 32 30 34 31 34 45 34 34 30 45 0d 0a 3a 31 30 30 ┆524345204449534B20414E440E :100┆ 0x063fc0…063fe0 33 43 30 30 30 32 30 35 34 35 39 35 30 34 35 32 30 33 43 35 32 34 35 35 34 35 35 35 32 34 45 33 ┆3C0002054595045203C52455455524E3┆ 0x063fe0…064000 45 30 44 30 41 33 41 0d 0a 3a 31 30 30 33 44 30 30 30 32 34 34 39 34 45 35 33 34 35 35 32 35 34 ┆E0D0A3A :1003D00024494E53455254┆ 0x064000…064020 (26, 1, 6) e1 22 05 04 31 47 04 21 80 00 34 5e 34 16 00 19 36 20 2a 01 00 11 34 00 19 22 f8 03 7e 32 fa 03 ┆ " 1G ! 4^4 6 * 4 " ü2 ┆ 0x064020…064040 23 7e 32 fb 03 2a fa 03 22 fe 03 22 00 04 3a 5c 00 b7 cc e8 01 3d 32 02 04 3a 6c 00 b7 cc e8 01 ┆#ü2 * " " :Ø =2 :l ┆ 0x064040…064060 3d 32 03 04 21 80 00 23 22 fc 03 c3 5e 01 21 80 00 35 ca cd 01 2a fc 03 7e 23 22 fc 03 c9 01 00 ┆=2 ! #" ^ ! 5 * ü#" ┆ 0x064060…064080 00 cd 4e 01 fe 53 ca 70 01 fe 44 c2 5e 01 06 02 cd 4e 01 fe 3a c2 5e 01 cd 4e 01 fe 3d c2 5e 01 ┆ N S p D ^ N : ^ N = ^ ┆ 0x064080…0640a0 cd 4e 01 fe 53 ca a2 01 fe 44 c2 5e 01 cd 4e 01 fe 44 c2 5e 01 cd 4e 01 fe 20 c2 5e 01 0e 08 c3 ┆ N S D ^ N D ^ N ^ ┆ 0x0640a0…0640c0 b2 01 cd 4e 01 fe 53 c2 5e 01 cd 4e 01 fe 20 c2 5e 01 21 fe 03 16 00 58 19 78 b7 3a 02 04 ca c4 ┆ N S ^ N ^ ! X x : ┆ 0x0640c0…0640e0 01 3a 03 04 b7 ca c9 01 23 71 c3 5e 01 db 14 e6 80 ca ed 01 2a fa 03 22 fe 03 22 00 04 c3 ed 01 ┆ : #q ^ * " " ┆ 0x0640e0…064100 eb 2a f8 03 73 23 72 c9 cd 08 03 3c c9 0e 10 11 6c 00 21 07 04 1a 13 77 23 0d c2 f5 01 af 32 27 ┆ * s#r < l ! w# 2'┆ 0x064100…064120 04 11 aa 03 cd 03 03 cd ca 02 2a fe 03 cd e0 01 cd db 02 11 5c 00 cd e0 02 11 0d 03 3c cc c2 02 ┆ * Ø < ┆ 0x064120…064140 11 48 04 3e 00 32 04 04 d5 cd fe 02 11 5c 00 cd ef 02 b7 c2 4d 02 d1 21 80 00 19 eb d5 cd fe 02 ┆ H > 2 Ø M ! ┆ 0x064140…064160 21 04 04 11 6f 03 34 cc c2 02 c3 2c 02 d1 11 7e 03 cd 03 03 cd ca 02 2a 00 04 cd e0 01 cd db 02 ┆! o 4 , ü * ┆ 0x064160…064180 11 07 04 cd ea 02 11 07 04 cd f9 02 11 1e 03 3c cc c2 02 11 48 04 d5 cd fe 02 11 07 04 cd f4 02 ┆ < H ┆ 0x064180…0641a0 11 33 03 b7 c4 c2 02 d1 21 80 00 19 eb d5 cd fe 02 21 04 04 35 c2 7a 02 d1 11 07 04 cd e5 02 11 ┆ 3 ! ! 5 z ┆ 0x0641a0…0641c0 47 03 3c cc c2 02 11 5a 03 cd 03 03 11 d1 03 cd 03 03 cd ca 02 2a fa 03 cd e0 01 cd db 02 2a 05 ┆G < Z * * ┆ 0x0641c0…0641e0 04 e9 0e 09 cd 05 00 c3 ac 02 0e 01 cd 05 00 fe 03 c0 2a fa 03 cd e0 01 c3 00 00 0e 0d c3 05 00 ┆ * ┆ 0x0641e0…064200 0e 0f c3 05 00 0e 10 c3 05 00 0e 13 c3 05 00 0e 14 c3 05 00 0e 15 c3 05 00 0e 16 c3 05 00 0e 1a ┆ ┆ 0x064200…064220 (26, 1, 7) 44 20 53 45 52 20 4e 55 4d 42 45 52 0d 0a 09 09 09 43 41 4c 4c 20 42 41 44 43 4f 4d 21 20 4a 4d ┆D SER NUMBER CALL BADCOM! JM┆ 0x064220…064240 50 20 52 44 44 53 4b 0d 0a 09 09 45 4e 44 43 4f 50 59 3a 0d 0a 09 09 4c 58 49 20 44 2c 54 52 4d ┆P RDDSK ENDCOPY: LXI D,TRM┆ 0x064240…064260 53 47 21 20 43 41 4c 4c 20 50 52 4d 53 47 0d 0a 09 09 43 41 4c 4c 20 49 4e 43 53 45 52 49 41 4c ┆SG! CALL PRMSG CALL INCSERIAL┆ 0x064260…064280 21 20 4a 4d 50 20 4e 45 58 54 44 49 53 4b 0d 0a 09 3b 0d 0a 09 3b 4e 4f 54 20 45 4e 44 20 4f 46 ┆! JMP NEXTDISK ; ;NOT END OF┆ 0x064280…0642a0 20 43 4f 50 59 2c 20 57 52 49 54 45 20 54 52 41 43 4b 20 54 4f 20 44 49 53 4b 20 46 52 4f 4d 20 ┆ COPY, WRITE TRACK TO DISK FROM ┆ 0x0642a0…0642c0 49 42 55 46 46 0d 0a 09 57 52 54 52 4b 3a 09 43 41 4c 4c 20 57 52 49 54 54 52 4b 0d 0a 09 09 4a ┆IBUFF WRTRK: CALL WRITTRK J┆ 0x0642c0…0642e0 5a 20 57 52 4f 4b 21 20 43 41 4c 4c 20 57 52 49 54 45 30 4d 53 47 21 20 4a 4d 50 20 4e 45 58 54 ┆Z WROK! CALL WRITE0MSG! JMP NEXT┆ 0x0642e0…064300 44 49 53 4b 0d 0a 09 57 52 4f 4b 3a 0d 0a 09 09 3b 57 52 49 54 54 45 4e 20 54 4f 20 44 49 53 4b ┆DISK WROK: ;WRITTEN TO DISK┆ 0x064300…064320 2c 20 4e 4f 57 20 52 45 41 44 20 49 54 20 42 41 43 4b 20 41 4e 44 20 43 4f 4d 50 41 52 45 0d 0a ┆, NOW READ IT BACK AND COMPARE ┆ 0x064320…064340 09 09 4c 58 49 20 48 2c 4f 42 55 46 46 21 20 53 48 4c 44 20 42 55 46 46 41 21 20 43 41 4c 4c 20 ┆ LXI H,OBUFF! SHLD BUFFA! CALL ┆ 0x064340…064360 52 45 52 45 41 44 0d 0a 09 09 09 4a 5a 20 52 45 41 44 31 4f 4b 21 20 43 41 4c 4c 20 52 45 41 44 ┆REREAD JZ READ1OK! CALL READ┆ 0x064360…064380 31 4d 53 47 21 20 4a 4d 50 20 4e 45 58 54 44 49 53 4b 0d 0a 09 09 52 45 41 44 31 4f 4b 3a 0d 0a ┆1MSG! JMP NEXTDISK READ1OK: ┆ 0x064380…0643a0 09 09 4c 58 49 20 48 2c 49 42 55 46 46 21 20 4c 58 49 20 44 2c 4f 42 55 46 46 21 20 4c 58 49 20 ┆ LXI H,IBUFF! LXI D,OBUFF! LXI ┆ 0x0643a0…0643c0 42 2c 54 52 4c 45 4e 0d 0a 09 09 57 52 43 4f 4d 50 3a 20 4c 44 41 58 20 44 21 20 43 4d 50 20 4d ┆B,TRLEN WRCOMP: LDAX D! CMP M┆ 0x0643c0…0643e0 21 20 4a 4e 5a 20 57 52 45 52 52 0d 0a 09 09 09 49 4e 58 20 48 21 20 49 4e 58 20 44 21 20 44 43 ┆! JNZ WRERR INX H! INX D! DC┆ 0x0643e0…064400 58 20 42 21 20 4d 4f 56 20 41 2c 43 21 20 4f 52 41 20 42 0d 0a 09 09 09 4a 4e 5a 20 57 52 43 4f ┆X B! MOV A,C! ORA B JNZ WRCO┆ 0x064400…064420 (26, 1, 8) 41 2c 4c 21 20 52 41 4c 20 3b 43 41 52 52 59 20 47 45 54 53 20 4d 53 42 0d 0a 09 09 4d 4f 56 20 ┆A,L! RAL ;CARRY GETS MSB MOV ┆ 0x064420…064440 41 2c 48 21 20 52 41 4c 20 3b 43 41 52 52 59 20 47 4f 45 53 20 54 4f 20 4c 53 42 0d 0a 09 09 4d ┆A,H! RAL ;CARRY GOES TO LSB M┆ 0x064440…064460 4f 56 20 4c 2c 41 21 20 4d 56 49 20 48 2c 30 20 3b 48 2c 4c 20 43 4f 4e 54 41 49 4e 20 49 4e 44 ┆OV L,A! MVI H,0 ;H,L CONTAIN IND┆ 0x064460…064480 45 58 20 49 4e 54 4f 20 54 52 41 4e 53 4c 41 54 45 20 54 41 42 4c 45 0d 0a 09 09 50 55 53 48 20 ┆EX INTO TRANSLATE TABLE PUSH ┆ 0x064480…0644a0 44 21 20 4c 58 49 20 44 2c 54 52 41 4e 21 20 44 41 44 20 44 21 20 50 4f 50 20 44 0d 0a 09 09 3b ┆D! LXI D,TRAN! DAD D! POP D ;┆ 0x0644a0…0644c0 48 2c 4c 20 41 44 44 52 45 53 53 20 54 52 41 4e 53 4c 41 54 49 4f 4e 20 45 4c 45 4d 45 4e 54 2c ┆H,L ADDRESS TRANSLATION ELEMENT,┆ 0x0644c0…0644e0 20 43 4f 4e 56 45 52 54 20 54 4f 20 52 45 4c 20 41 44 44 52 45 53 53 0d 0a 09 09 58 52 41 20 41 ┆ CONVERT TO REL ADDRESS XRA A┆ 0x0644e0…064500 21 20 4d 4f 56 20 41 2c 4d 21 20 44 43 52 20 41 20 21 20 52 41 52 20 3b 43 41 52 52 59 20 47 45 ┆! MOV A,M! DCR A ! RAR ;CARRY GE┆ 0x064500…064520 54 53 20 4c 53 42 2c 20 4d 53 42 3d 30 0d 0a 09 09 4d 4f 56 20 48 2c 41 21 20 4d 56 49 20 41 2c ┆TS LSB, MSB=0 MOV H,A! MVI A,┆ 0x064520…064540 30 21 20 52 41 52 20 3b 43 41 52 52 59 20 47 4f 45 53 20 54 4f 20 4d 53 42 0d 0a 09 09 4f 52 41 ┆0! RAR ;CARRY GOES TO MSB ORA┆ 0x064540…064560 20 45 20 3b 52 45 43 4c 41 49 4d 20 54 48 45 20 4c 45 41 53 54 20 53 49 47 4e 49 46 49 43 41 4e ┆ E ;RECLAIM THE LEAST SIGNIFICAN┆ 0x064560…064580 54 20 37 20 42 49 54 53 0d 0a 09 09 4d 4f 56 20 4c 2c 41 21 20 4c 58 49 20 44 2c 49 42 55 46 46 ┆T 7 BITS MOV L,A! LXI D,IBUFF┆ 0x064580…0645a0 21 20 44 41 44 20 44 20 3b 41 42 53 4f 4c 55 54 45 20 41 44 44 52 45 53 53 20 49 4e 20 48 2c 4c ┆! DAD D ;ABSOLUTE ADDRESS IN H,L┆ 0x0645a0…0645c0 0d 0a 09 09 50 4f 50 20 44 20 3b 52 45 43 41 4c 4c 20 53 54 41 43 4b 45 44 20 44 20 56 41 4c 55 ┆ POP D ;RECALL STACKED D VALU┆ 0x0645c0…0645e0 45 0d 0a 09 09 52 45 54 0d 0a 3b 0d 0a 53 54 42 59 54 45 3a 09 3b 53 54 4f 52 45 20 42 59 54 45 ┆E RET ; STBYTE: ;STORE BYTE┆ 0x0645e0…064600 20 56 41 4c 55 45 20 47 49 56 45 4e 20 42 59 20 52 45 47 49 53 54 45 52 20 41 20 54 4f 20 54 52 ┆ VALUE GIVEN BY REGISTER A TO TR┆ 0x064600…064620 (26, 1, 9) 20 6c 6f 67 67 65 64 20 64 69 73 6b 20 6f 6e 20 77 61 72 6d 20 73 74 61 72 74 0d 0a 62 75 66 66 ┆ logged disk on warm start buff┆ 0x064620…064640 09 65 71 75 09 30 30 38 30 68 09 3b 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 ┆ equ 0080h ;default buffer addre┆ 0x064640…064660 73 73 0d 0a 72 65 74 72 79 09 65 71 75 09 31 30 09 3b 6d 61 78 20 72 65 74 72 69 65 73 20 6f 6e ┆ss retry equ 10 ;max retries on┆ 0x064660…064680 20 64 69 73 6b 20 69 2f 6f 20 62 65 66 6f 72 65 20 65 72 72 6f 72 0d 0a 3b 0d 0a 3b 09 70 65 72 ┆ disk i/o before error ; ; per┆ 0x064680…0646a0 66 6f 72 6d 20 66 6f 6c 6c 6f 77 69 6e 67 20 66 75 6e 63 74 69 6f 6e 73 0d 0a 3b 09 62 6f 6f 74 ┆form following functions ; boot┆ 0x0646a0…0646c0 09 63 6f 6c 64 20 73 74 61 72 74 0d 0a 3b 09 77 62 6f 6f 74 09 77 61 72 6d 20 73 74 61 72 74 20 ┆ cold start ; wboot warm start ┆ 0x0646c0…0646e0 28 73 61 76 65 20 69 2f 6f 20 62 79 74 65 29 0d 0a 3b 09 28 62 6f 6f 74 20 61 6e 64 20 77 62 6f ┆(save i/o byte) ; (boot and wbo┆ 0x0646e0…064700 6f 74 20 61 72 65 20 74 68 65 20 73 61 6d 65 20 66 6f 72 20 6d 64 73 29 0d 0a 3b 09 63 6f 6e 73 ┆ot are the same for mds) ; cons┆ 0x064700…064720 74 09 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 0d 0a 3b 09 09 72 65 67 2d 61 20 3d 20 30 30 20 ┆t console status ; reg-a = 00 ┆ 0x064720…064740 69 66 20 6e 6f 20 63 68 61 72 61 63 74 65 72 20 72 65 61 64 79 0d 0a 3b 09 09 72 65 67 2d 61 20 ┆if no character ready ; reg-a ┆ 0x064740…064760 3d 20 66 66 20 69 66 20 63 68 61 72 61 63 74 65 72 20 72 65 61 64 79 0d 0a 3b 09 63 6f 6e 69 6e ┆= ff if character ready ; conin┆ 0x064760…064780 09 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 28 72 65 73 75 6c 74 20 69 6e ┆ console character in (result in┆ 0x064780…0647a0 20 72 65 67 2d 61 29 0d 0a 3b 09 63 6f 6e 6f 75 74 09 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 ┆ reg-a) ; conout console charac┆ 0x0647a0…0647c0 74 65 72 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 6c 69 73 74 09 ┆ter out (char in reg-c) ; list ┆ 0x0647c0…0647e0 6c 69 73 74 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 70 75 6e 63 ┆list out (char in reg-c) ; punc┆ 0x0647e0…064800 68 09 70 75 6e 63 68 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 72 ┆h punch out (char in reg-c) ; r┆ 0x064800…064820 (26, 1, 10) c3 05 00 0e 09 c3 05 00 0e 19 c3 05 00 4e 4f 20 53 4f 55 52 43 45 20 46 49 4c 45 0d 0a 24 4e 4f ┆ NO SOURCE FILE $NO┆ 0x064820…064840 20 44 49 52 45 43 54 4f 52 59 20 53 50 41 43 45 0d 0a 24 4f 55 54 20 4f 46 20 44 41 54 41 20 53 ┆ DIRECTORY SPACE $OUT OF DATA S┆ 0x064840…064860 50 41 43 45 0d 0a 24 57 52 49 54 45 20 50 52 4f 54 45 43 54 45 44 3f 0d 0a 24 54 52 41 4e 53 46 ┆PACE $WRITE PROTECTED? $TRANSF┆ 0x064860…064880 45 52 20 43 4f 4d 50 4c 45 54 45 44 0d 0a 24 46 49 4c 45 20 54 4f 4f 20 42 49 47 0d 0a 24 49 4e ┆ER COMPLETED $FILE TOO BIG $IN┆ 0x064880…0648a0 53 45 52 54 20 44 45 53 54 49 4e 41 54 49 4f 4e 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c ┆SERT DESTINATION DISK AND TYPE <┆ 0x0648a0…0648c0 52 45 54 55 52 4e 3e 0d 0a 24 49 4e 53 45 52 54 20 53 4f 55 52 43 45 20 44 49 53 4b 20 41 4e 44 ┆RETURN> $INSERT SOURCE DISK AND┆ 0x0648c0…0648e0 20 54 59 50 45 20 3c 52 45 54 55 52 4e 3e 0d 0a 24 49 4e 53 45 52 54 20 53 59 53 54 45 4d 20 44 ┆ TYPE <RETURN> $INSERT SYSTEM D┆ 0x0648e0…064900 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 54 55 52 4e 3e 0d 0a 24 00 00 00 00 00 00 00 00 ┆ISK AND TYPE <RETURN> $ ┆ 0x064900…064920 00 00 00 00 00 00 00 00 0e 19 c3 05 00 4e 4f 20 53 4f 55 52 43 45 20 46 49 4c 45 0d 0a 24 4e 4f ┆ NO SOURCE FILE $NO┆ 0x064920…064940 20 44 49 52 45 43 54 4f 52 59 20 53 50 41 43 45 0d 0a 24 4f 55 54 20 4f 46 20 44 41 54 41 20 53 ┆ DIRECTORY SPACE $OUT OF DATA S┆ 0x064940…064960 50 41 43 45 0d 0a 24 57 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆PACE $W ┆ 0x064960…064980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x064980…0649a0 72 6f 6d 20 63 20 74 6f 20 6c 69 73 74 20 64 65 76 69 63 65 0d 0a 63 73 74 73 09 65 71 75 09 30 ┆rom c to list device csts equ 0┆ 0x0649a0…0649c0 66 38 31 32 68 09 3b 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 20 30 30 2f 66 66 20 74 6f 20 72 ┆f812h ;console status 00/ff to r┆ 0x0649c0…0649e0 65 67 69 73 74 65 72 20 61 0d 0a 3b 0d 0a 3b 09 64 69 73 6b 20 70 6f 72 74 73 20 61 6e 64 20 63 ┆egister a ; ; disk ports and c┆ 0x0649e0…064a00 6f 6d 6d 61 6e 64 73 0d 0a 62 61 73 65 09 65 71 75 09 37 38 68 09 3b 62 61 73 65 20 6f 66 20 64 ┆ommands base equ 78h ;base of d┆ 0x064a00…064a20 (26, 1, 11) 4d 50 0d 0a 09 09 3b 43 4f 4d 50 41 52 45 20 57 45 4e 54 20 4f 4b 2c 20 49 4e 43 52 45 4d 45 4e ┆MP ;COMPARE WENT OK, INCREMEN┆ 0x064a20…064a40 54 20 54 52 41 43 4b 20 43 4f 55 4e 54 20 41 4e 44 20 43 59 43 4c 45 0d 0a 09 09 4c 58 49 20 48 ┆T TRACK COUNT AND CYCLE LXI H┆ 0x064a40…064a60 2c 54 52 41 43 4b 21 20 49 4e 52 20 4d 0d 0a 09 09 4c 58 49 20 48 2c 54 52 43 4f 55 4e 54 2b 31 ┆,TRACK! INR M LXI H,TRCOUNT+1┆ 0x064a60…064a80 21 20 49 4e 52 20 4d 21 20 4d 4f 56 20 41 2c 4d 21 20 43 50 49 20 27 39 27 2b 31 0d 0a 09 09 4a ┆! INR M! MOV A,M! CPI '9'+1 J┆ 0x064a80…064aa0 43 20 52 44 54 52 4b 20 3b 4f 56 45 52 46 4c 4f 57 20 54 4f 20 48 49 47 48 20 4f 52 44 45 52 20 ┆C RDTRK ;OVERFLOW TO HIGH ORDER ┆ 0x064aa0…064ac0 54 52 41 43 4b 20 4e 55 4d 42 45 52 0d 0a 09 09 4d 56 49 20 4d 2c 27 30 27 21 20 44 43 58 20 48 ┆TRACK NUMBER MVI M,'0'! DCX H┆ 0x064ac0…064ae0 21 20 49 4e 52 20 4d 21 20 4a 4d 50 20 52 44 54 52 4b 0d 0a 09 09 3b 0d 0a 09 57 52 45 52 52 3a ┆! INR M! JMP RDTRK ; WRERR:┆ 0x064ae0…064b00 09 3b 56 45 52 49 46 59 20 45 52 52 4f 52 0d 0a 09 09 43 41 4c 4c 20 56 45 52 45 52 52 21 20 4a ┆ ;VERIFY ERROR CALL VERERR! J┆ 0x064b00…064b20 4d 50 20 4e 45 58 54 44 49 53 4b 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 55 54 49 4c 49 54 59 20 53 55 42 ┆MP NEXTDISK ; ; ; UTILITY SUB┆ 0x064b20…064b40 52 4f 55 54 49 4e 45 53 0d 0a 43 49 3a 09 4d 56 49 20 43 2c 43 4f 4e 49 4e 21 20 4a 4d 50 20 42 ┆ROUTINES CI: MVI C,CONIN! JMP B┆ 0x064b40…064b60 44 4f 53 20 3b 52 45 41 44 20 41 20 43 48 41 52 41 43 54 45 52 0d 0a 3b 0d 0a 50 52 4d 53 47 3a ┆DOS ;READ A CHARACTER ; PRMSG:┆ 0x064b60…064b80 09 4d 56 49 20 43 2c 50 42 55 46 46 21 20 4a 4d 50 20 42 44 4f 53 20 3b 50 52 49 4e 54 20 41 20 ┆ MVI C,PBUFF! JMP BDOS ;PRINT A ┆ 0x064b80…064ba0 42 55 46 46 45 52 0d 0a 3b 0d 0a 52 44 45 52 52 3a 09 43 41 4c 4c 20 49 4e 56 41 4c 49 44 0d 0a ┆BUFFER ; RDERR: CALL INVALID ┆ 0x064ba0…064bc0 3b 0d 0a 52 45 41 44 3a 09 3b 52 45 41 44 20 43 4f 4e 53 54 41 4e 54 20 56 41 4c 55 45 20 54 4f ┆; READ: ;READ CONSTANT VALUE TO┆ 0x064bc0…064be0 20 42 2c 43 0d 0a 09 4c 58 49 20 44 2c 4d 41 58 4c 45 4e 21 20 4d 56 49 20 43 2c 52 44 42 55 46 ┆ B,C LXI D,MAXLEN! MVI C,RDBUF┆ 0x064be0…064c00 46 21 20 43 41 4c 4c 20 42 44 4f 53 20 3b 42 55 46 46 45 52 20 46 49 4c 4c 45 44 0d 0a 09 4c 58 ┆F! CALL BDOS ;BUFFER FILLED LX┆ 0x064c00…064c20 (26, 1, 12) 41 4e 53 4c 41 54 45 44 0d 0a 09 3b 41 44 44 52 45 53 53 20 47 49 56 45 4e 20 42 59 20 48 2c 4c ┆ANSLATED ;ADDRESS GIVEN BY H,L┆ 0x064c20…064c40 2e 20 20 49 4e 43 52 45 4d 45 4e 54 20 48 2c 4c 20 55 50 4f 4e 20 52 45 54 55 52 4e 0d 0a 09 50 ┆. INCREMENT H,L UPON RETURN P┆ 0x064c40…064c60 55 53 48 20 48 21 20 50 55 53 48 20 44 21 20 50 55 53 48 20 50 53 57 0d 0a 09 43 41 4c 4c 20 54 ┆USH H! PUSH D! PUSH PSW CALL T┆ 0x064c60…064c80 52 41 4e 53 4c 41 54 45 21 20 50 4f 50 20 50 53 57 0d 0a 09 4d 4f 56 20 4d 2c 41 21 20 50 4f 50 ┆RANSLATE! POP PSW MOV M,A! POP┆ 0x064c80…064ca0 20 44 21 20 50 4f 50 20 48 21 20 49 4e 58 20 48 21 20 52 45 54 0d 0a 3b 0d 0a 53 54 53 45 52 49 ┆ D! POP H! INX H! RET ; STSERI┆ 0x064ca0…064cc0 41 4c 3a 0d 0a 09 3b 53 54 4f 52 45 20 54 48 45 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 20 49 ┆AL: ;STORE THE SERIAL NUMBER I┆ 0x064cc0…064ce0 4e 54 4f 20 41 44 44 52 45 53 53 20 47 49 56 45 4e 20 42 59 20 48 2c 4c 0d 0a 09 4c 44 41 20 4f ┆NTO ADDRESS GIVEN BY H,L LDA O┆ 0x064ce0…064d00 52 49 47 49 4e 21 20 43 41 4c 4c 20 53 54 42 59 54 45 20 3b 42 59 54 45 20 53 54 4f 52 45 44 2c ┆RIGIN! CALL STBYTE ;BYTE STORED,┆ 0x064d00…064d20 20 48 2c 4c 20 49 4e 43 52 45 4d 45 4e 54 45 44 0d 0a 09 4d 56 49 20 41 2c 56 45 52 53 49 4f 4e ┆ H,L INCREMENTED MVI A,VERSION┆ 0x064d20…064d40 21 20 43 41 4c 4c 20 53 54 42 59 54 45 20 3b 56 45 52 53 49 4f 4e 20 4e 55 4d 42 45 52 0d 0a 09 ┆! CALL STBYTE ;VERSION NUMBER ┆ 0x064d40…064d60 09 6c 64 61 20 6f 72 69 67 69 6e 2b 31 20 21 20 63 61 6c 6c 20 73 74 62 79 74 65 09 3b 20 73 74 ┆ lda origin+1 ! call stbyte ; st┆ 0x064d60…064d80 75 66 66 20 68 69 67 68 28 6f 72 69 67 69 6e 29 0d 0a 09 09 58 52 41 20 41 21 20 43 41 4c 4c 20 ┆uff high(origin) XRA A! CALL ┆ 0x064d80…064da0 53 54 42 59 54 45 20 3b 5a 45 52 4f 20 42 59 54 45 0d 0a 09 3b 4e 4f 57 20 4d 4f 56 45 20 53 45 ┆STBYTE ;ZERO BYTE ;NOW MOVE SE┆ 0x064da0…064dc0 52 49 41 4c 20 4e 55 4d 42 45 52 20 54 4f 20 4c 41 53 54 20 54 57 4f 20 42 59 54 45 53 0d 0a 09 ┆RIAL NUMBER TO LAST TWO BYTES ┆ 0x064dc0…064de0 4c 58 49 20 44 2c 42 53 45 52 49 41 4c 2b 31 20 3b 41 44 44 52 45 53 53 20 48 49 47 48 20 4f 52 ┆LXI D,BSERIAL+1 ;ADDRESS HIGH OR┆ 0x064de0…064e00 44 45 52 20 50 4f 53 49 54 49 4f 4e 20 4f 46 20 53 45 52 20 23 0d 0a 09 4c 44 41 58 20 44 21 20 ┆DER POSITION OF SER # LDAX D! ┆ 0x064e00…064e20 (26, 1, 13) 65 61 64 65 72 09 70 61 70 65 72 20 74 61 70 65 20 72 65 61 64 65 72 20 69 6e 20 28 72 65 73 75 ┆eader paper tape reader in (resu┆ 0x064e20…064e40 6c 74 20 74 6f 20 72 65 67 2d 61 29 0d 0a 3b 09 68 6f 6d 65 09 6d 6f 76 65 20 74 6f 20 74 72 61 ┆lt to reg-a) ; home move to tra┆ 0x064e40…064e60 63 6b 20 30 30 0d 0a 3b 0d 0a 3b 09 28 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 61 6c 6c 73 ┆ck 00 ; ; (the following calls┆ 0x064e60…064e80 20 73 65 74 2d 75 70 20 74 68 65 20 69 6f 20 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 20 66 ┆ set-up the io parameter block f┆ 0x064e80…064ea0 6f 72 20 74 68 65 0d 0a 3b 09 6d 64 73 2c 20 77 68 69 63 68 20 69 73 20 75 73 65 64 20 74 6f 20 ┆or the ; mds, which is used to ┆ 0x064ea0…064ec0 70 65 72 66 6f 72 6d 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 73 20 61 6e 64 20 77 72 69 ┆perform subsequent reads and wri┆ 0x064ec0…064ee0 74 65 73 29 0d 0a 3b 09 73 65 6c 64 73 6b 09 73 65 6c 65 63 74 20 64 69 73 6b 20 67 69 76 65 6e ┆tes) ; seldsk select disk given┆ 0x064ee0…064f00 20 62 79 20 72 65 67 2d 63 20 28 30 2c 31 2c 32 2e 2e 2e 29 0d 0a 3b 09 73 65 74 74 72 6b 09 73 ┆ by reg-c (0,1,2...) ; settrk s┆ 0x064f00…064f20 65 74 20 74 72 61 63 6b 20 61 64 64 72 65 73 73 20 28 30 2c 2e 2e 2e 37 36 29 20 66 6f 72 20 73 ┆et track address (0,...76) for s┆ 0x064f20…064f40 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 2f 77 72 69 74 65 0d 0a 3b 09 73 65 74 73 65 63 09 73 ┆ubsequent read/write ; setsec s┆ 0x064f40…064f60 65 74 20 73 65 63 74 6f 72 20 61 64 64 72 65 73 73 20 28 31 2c 2e 2e 2e 2c 32 36 29 20 66 6f 72 ┆et sector address (1,...,26) for┆ 0x064f60…064f80 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 2f 77 72 69 74 65 0d 0a 3b 09 73 65 74 64 6d 61 ┆ subsequent read/write ; setdma┆ 0x064f80…064fa0 09 73 65 74 20 73 75 62 73 65 71 75 65 6e 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 28 69 6e 69 ┆ set subsequent dma address (ini┆ 0x064fa0…064fc0 74 69 61 6c 6c 79 20 38 30 68 29 0d 0a 3b 0d 0a 3b 09 28 72 65 61 64 20 61 6e 64 20 77 72 69 74 ┆tially 80h) ; ; (read and writ┆ 0x064fc0…064fe0 65 20 61 73 73 75 6d 65 20 70 72 65 76 69 6f 75 73 20 63 61 6c 6c 73 20 74 6f 20 73 65 74 20 75 ┆e assume previous calls to set u┆ 0x064fe0…065000 70 20 74 68 65 20 69 6f 20 70 61 72 61 6d 65 74 65 72 73 29 0d 0a 3b 09 72 65 61 64 09 72 65 61 ┆p the io parameters) ; read rea┆ 0x065000…065020 (26, 1, 14) 69 73 6b 20 63 6f 6d 6d 61 6e 64 20 69 6f 20 70 6f 72 74 73 0d 0a 64 73 74 61 74 09 65 71 75 09 ┆isk command io ports dstat equ ┆ 0x065020…065040 62 61 73 65 09 3b 64 69 73 6b 20 73 74 61 74 75 73 20 28 69 6e 70 75 74 29 0d 0a 72 74 79 70 65 ┆base ;disk status (input) rtype┆ 0x065040…065060 09 65 71 75 09 62 61 73 65 2b 31 09 3b 72 65 73 75 6c 74 20 74 79 70 65 20 28 69 6e 70 75 74 29 ┆ equ base+1 ;result type (input)┆ 0x065060…065080 0d 0a 72 62 79 74 65 09 65 71 75 09 62 61 73 65 2b 33 09 3b 72 65 73 75 6c 74 20 62 79 74 65 20 ┆ rbyte equ base+3 ;result byte ┆ 0x065080…0650a0 28 69 6e 70 75 74 29 0d 0a 3b 0d 0a 69 6c 6f 77 09 65 71 75 09 62 61 73 65 2b 31 09 3b 69 6f 70 ┆(input) ; ilow equ base+1 ;iop┆ 0x0650a0…0650c0 62 20 6c 6f 77 20 61 64 64 72 65 73 73 20 28 6f 75 74 70 75 74 29 0d 0a 69 68 69 67 68 09 65 71 ┆b low address (output) ihigh eq┆ 0x0650c0…0650e0 75 09 62 61 73 65 2b 32 09 3b 69 6f 70 62 20 68 69 67 68 20 61 64 64 72 65 73 73 20 28 6f 75 74 ┆u base+2 ;iopb high address (out┆ 0x0650e0…065100 70 75 74 29 0d 0a 3b 0d 0a 72 65 61 64 66 09 65 71 75 09 34 68 09 3b 72 65 61 64 20 66 75 6e 63 ┆put) ; readf equ 4h ;read func┆ 0x065100…065120 74 69 6f 6e 0d 0a 77 72 69 74 66 09 65 71 75 09 36 68 09 3b 77 72 69 74 65 20 66 75 6e 63 74 69 ┆tion writf equ 6h ;write functi┆ 0x065120…065140 6f 6e 0d 0a 72 65 63 61 6c 09 65 71 75 09 33 68 09 3b 72 65 63 61 6c 69 62 72 61 74 65 20 64 72 ┆on recal equ 3h ;recalibrate dr┆ 0x065140…065160 69 76 65 0d 0a 69 6f 72 64 79 09 65 71 75 09 34 68 09 3b 69 2f 6f 20 66 69 6e 69 73 68 65 64 20 ┆ive iordy equ 4h ;i/o finished ┆ 0x065160…065180 6d 61 73 6b 0d 0a 63 72 09 65 71 75 09 30 64 68 09 3b 63 61 72 72 69 61 67 65 20 72 65 74 75 72 ┆mask cr equ 0dh ;carriage retur┆ 0x065180…0651a0 6e 0d 0a 6c 66 09 65 71 75 09 30 61 68 09 3b 6c 69 6e 65 20 66 65 65 64 0d 0a 3b 0d 0a 73 69 67 ┆n lf equ 0ah ;line feed ; sig┆ 0x0651a0…0651c0 6e 6f 6e 3a 09 3b 73 69 67 6e 6f 6e 20 6d 65 73 73 61 67 65 3a 20 78 78 6b 20 63 70 2f 6d 20 76 ┆non: ;signon message: xxk cp/m v┆ 0x0651c0…0651e0 65 72 73 20 79 2e 79 0d 0a 09 64 62 09 63 72 2c 6c 66 2c 6c 66 0d 0a 09 69 66 09 74 65 73 74 0d ┆ers y.y db cr,lf,lf if test ┆ 0x0651e0…065200 0a 09 64 62 09 27 33 32 27 09 3b 33 32 6b 20 65 78 61 6d 70 6c 65 20 62 69 6f 73 0d 0a 09 65 6e ┆ db '32' ;32k example bios en┆ 0x065200…065220 (26, 1, 15) 49 20 48 2c 43 4f 4d 4c 45 4e 21 20 4d 4f 56 20 41 2c 4d 21 20 4f 52 41 20 41 21 20 4a 5a 20 52 ┆I H,COMLEN! MOV A,M! ORA A! JZ R┆ 0x065220…065240 44 45 52 52 20 3b 4e 4f 4e 20 5a 45 52 4f 20 4c 45 4e 47 54 48 0d 0a 09 49 4e 58 20 48 21 20 4d ┆DERR ;NON ZERO LENGTH INX H! M┆ 0x065240…065260 4f 56 20 45 2c 41 21 20 4d 56 49 20 44 2c 30 21 20 44 41 44 20 44 20 3b 48 2c 4c 20 41 44 44 52 ┆OV E,A! MVI D,0! DAD D ;H,L ADDR┆ 0x065260…065280 45 53 53 20 4c 41 53 54 20 50 4f 53 2b 31 0d 0a 09 4d 56 49 20 4d 2c 30 20 3b 43 4c 45 41 52 45 ┆ESS LAST POS+1 MVI M,0 ;CLEARE┆ 0x065280…0652a0 44 20 46 4f 52 20 45 4e 44 20 4f 46 20 53 43 41 4e 0d 0a 09 4c 58 49 20 48 2c 43 42 55 46 46 21 ┆D FOR END OF SCAN LXI H,CBUFF!┆ 0x0652a0…0652c0 20 4c 58 49 20 42 2c 30 0d 0a 09 43 4f 4e 56 3a 09 4d 4f 56 20 41 2c 4d 21 20 4f 52 41 20 41 21 ┆ LXI B,0 CONV: MOV A,M! ORA A!┆ 0x0652c0…0652e0 20 52 5a 20 3b 52 45 54 55 52 4e 20 49 46 20 45 4e 44 20 4f 46 20 43 4f 4e 56 45 52 54 0d 0a 09 ┆ RZ ;RETURN IF END OF CONVERT ┆ 0x0652e0…065300 09 53 55 49 20 27 30 27 21 20 43 50 49 20 31 30 21 20 4a 4e 43 20 52 44 45 52 52 0d 0a 09 09 50 ┆ SUI '0'! CPI 10! JNC RDERR P┆ 0x065300…065320 55 53 48 20 48 21 20 50 55 53 48 20 42 21 20 50 4f 50 20 48 20 3b 42 2c 43 20 43 4f 50 49 45 44 ┆USH H! PUSH B! POP H ;B,C COPIED┆ 0x065320…065340 20 54 4f 20 48 2c 4c 0d 0a 09 09 44 41 44 20 48 21 20 44 41 44 20 48 21 20 44 41 44 20 48 21 20 ┆ TO H,L DAD H! DAD H! DAD H! ┆ 0x065340…065360 44 41 44 20 42 21 20 44 41 44 20 42 0d 0a 09 09 50 55 53 48 20 48 21 20 50 4f 50 20 42 21 20 50 ┆DAD B! DAD B PUSH H! POP B! P┆ 0x065360…065380 4f 50 20 48 20 3b 42 43 3d 42 43 2a 31 30 0d 0a 09 09 49 4e 58 20 48 21 20 41 44 44 20 43 21 20 ┆OP H ;BC=BC*10 INX H! ADD C! ┆ 0x065380…0653a0 4d 4f 56 20 43 2c 41 21 20 4d 56 49 20 41 2c 30 21 20 41 44 43 20 42 21 20 4d 4f 56 20 42 2c 41 ┆MOV C,A! MVI A,0! ADC B! MOV B,A┆ 0x0653a0…0653c0 0d 0a 09 09 4a 43 20 52 44 45 52 52 21 20 4a 4d 50 20 43 4f 4e 56 20 3b 54 45 53 54 45 44 20 46 ┆ JC RDERR! JMP CONV ;TESTED F┆ 0x0653c0…0653e0 4f 52 20 4f 56 45 52 46 4c 4f 57 0d 0a 09 3b 0d 0a 49 4e 43 53 45 52 49 41 4c 3a 0d 0a 09 3b 49 ┆OR OVERFLOW ; INCSERIAL: ;I┆ 0x0653e0…065400 4e 43 52 45 4d 45 4e 54 20 54 48 45 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 0d 0a 09 4c 48 4c ┆NCREMENT THE SERIAL NUMBER LHL┆ 0x065400…065420 (27, 0, 1) 43 41 4c 4c 20 53 54 42 59 54 45 0d 0a 09 44 43 58 20 44 20 3b 41 44 44 52 45 53 53 20 4c 4f 57 ┆CALL STBYTE DCX D ;ADDRESS LOW┆ 0x065420…065440 20 4f 52 44 45 52 20 42 59 54 45 0d 0a 09 4c 44 41 58 20 44 21 20 43 41 4c 4c 20 53 54 42 59 54 ┆ ORDER BYTE LDAX D! CALL STBYT┆ 0x065440…065460 45 0d 0a 09 52 45 54 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 50 52 49 4e 54 20 53 54 52 49 4e 47 53 0d 0a ┆E RET ; ; ; PRINT STRINGS ┆ 0x065460…065480 49 4e 53 4d 53 47 3a 0d 0a 09 4c 58 49 20 44 2c 24 2b 36 21 20 4a 4d 50 20 50 52 4d 53 47 0d 0a ┆INSMSG: LXI D,$+6! JMP PRMSG ┆ 0x065480…0654a0 09 44 42 20 43 52 2c 4c 46 2c 27 49 4e 53 45 52 54 20 43 4f 4e 54 52 4f 4c 20 44 49 53 4b 45 54 ┆ DB CR,LF,'INSERT CONTROL DISKET┆ 0x0654a0…0654c0 54 45 20 49 4e 20 41 2c 20 54 59 50 45 20 52 45 54 55 52 4e 24 27 0d 0a 3b 0d 0a 4f 52 47 4d 53 ┆TE IN A, TYPE RETURN$' ; ORGMS┆ 0x0654c0…0654e0 47 3a 0d 0a 09 4c 58 49 20 44 2c 24 2b 36 21 20 4a 4d 50 20 50 52 4d 53 47 0d 0a 09 44 42 20 43 ┆G: LXI D,$+6! JMP PRMSG DB C┆ 0x0654e0…065500 52 2c 4c 46 2c 27 43 50 2f 4d 20 56 45 52 20 27 0d 0a 09 44 42 20 56 45 52 53 49 4f 4e 2f 31 30 ┆R,LF,'CP/M VER ' DB VERSION/10┆ 0x065500…065520 2b 27 30 27 2c 27 2e 27 2c 56 45 52 53 49 4f 4e 20 4d 4f 44 20 31 30 20 2b 27 30 27 0d 0a 09 44 ┆+'0','.',VERSION MOD 10 +'0' D┆ 0x065520…065540 42 20 27 20 53 45 52 49 41 4c 49 5a 41 54 49 4f 4e 2c 27 2c 43 52 2c 4c 46 0d 0a 09 44 42 20 27 ┆B ' SERIALIZATION,',CR,LF DB '┆ 0x065540…065560 4f 52 49 47 49 4e 20 4e 55 4d 42 45 52 3f 20 24 27 0d 0a 3b 0d 0a 53 45 52 4d 53 47 3a 0d 0a 09 ┆ORIGIN NUMBER? $' ; SERMSG: ┆ 0x065560…065580 4c 58 49 20 44 2c 24 2b 36 21 20 4a 4d 50 20 50 52 4d 53 47 0d 0a 09 44 42 20 43 52 2c 4c 46 2c ┆LXI D,$+6! JMP PRMSG DB CR,LF,┆ 0x065580…0655a0 27 53 54 41 52 54 49 4e 47 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 3f 20 24 27 0d 0a 3b 0d 0a ┆'STARTING SERIAL NUMBER? $' ; ┆ 0x0655a0…0655c0 49 4e 56 41 4c 49 44 3a 0d 0a 09 4c 58 49 20 44 2c 24 2b 36 21 20 4a 4d 50 20 50 52 4d 53 47 0d ┆INVALID: LXI D,$+6! JMP PRMSG ┆ 0x0655c0…0655e0 0a 09 44 42 20 43 52 2c 4c 46 2c 27 49 4e 56 41 4c 49 44 20 4e 55 4d 42 45 52 2c 20 54 52 59 20 ┆ DB CR,LF,'INVALID NUMBER, TRY ┆ 0x0655e0…065600 41 47 41 49 4e 20 24 27 0d 0a 3b 0d 0a 43 55 52 4d 53 47 3a 0d 0a 09 4c 58 49 20 44 2c 24 2b 36 ┆AGAIN $' ; CURMSG: LXI D,$+6┆ 0x065600…065620 (27, 0, 2) 43 4b 3a 0d 0a 53 50 54 3a 09 44 53 09 31 0d 0a 54 52 4c 45 4e 09 45 51 55 09 31 32 30 2a 31 32 ┆CK: SPT: DS 1 TRLEN EQU 120*12┆ 0x065620…065640 38 09 3b 42 55 46 46 45 52 20 53 49 5a 45 0d 0a 49 42 55 46 46 3a 09 44 53 09 54 52 4c 45 4e 0d ┆8 ;BUFFER SIZE IBUFF: DS TRLEN ┆ 0x065640…065660 0a 4f 42 55 46 46 3a 09 44 53 09 54 52 4c 45 4e 0d 0a 43 43 50 56 09 45 51 55 09 49 42 55 46 46 ┆ OBUFF: DS TRLEN CCPV EQU IBUFF┆ 0x065660…065680 2b 4f 46 46 53 45 54 0d 0a 42 44 4f 53 56 09 45 51 55 09 49 42 55 46 46 2b 28 42 44 4f 53 42 2d ┆+OFFSET BDOSV EQU IBUFF+(BDOSB-┆ 0x065680…0656a0 43 43 50 42 29 2b 4f 46 46 53 45 54 0d 0a 09 45 4e 44 09 54 50 41 0d 0a 1a 1a 1a 1a 1a 1a 1a 1a ┆CCPB)+OFFSET END TPA ┆ 0x0656a0…0656c0 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆ ┆ […0x2…] 0x065700…065720 49 41 4c 49 5a 45 20 54 52 41 43 4b 20 46 4f 52 20 43 50 4d 2e 43 4f 4d 20 46 49 4c 45 20 57 48 ┆IALIZE TRACK FOR CPM.COM FILE WH┆ 0x065720…065740 45 4e 20 45 4e 43 4f 55 4e 54 45 52 45 44 0d 0a 53 44 49 46 46 3a 09 44 53 09 32 09 3b 44 49 46 ┆EN ENCOUNTERED SDIFF: DS 2 ;DIF┆ 0x065740…065760 46 45 52 45 4e 43 45 20 42 45 54 57 45 45 4e 20 54 57 4f 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 ┆FERENCE BETWEEN TWO SERIAL NUMBE┆ 0x065760…065780 52 20 41 44 44 52 45 53 53 45 53 0d 0a 3b 09 53 45 43 54 4f 52 20 54 52 41 4e 53 4c 41 54 49 4f ┆R ADDRESSES ; SECTOR TRANSLATIO┆ 0x065780…0657a0 4e 20 56 45 43 54 4f 52 0d 0a 54 52 41 4e 3a 09 44 42 09 31 2c 37 2c 31 33 2c 31 39 2c 20 32 35 ┆N VECTOR TRAN: DB 1,7,13,19, 25┆ 0x0657a0…0657c0 2c 35 2c 31 31 2c 31 37 0d 0a 09 44 42 09 32 33 2c 33 2c 39 2c 31 35 2c 20 32 31 2c 32 2c 38 2c ┆,5,11,17 DB 23,3,9,15, 21,2,8,┆ 0x0657c0…0657e0 31 34 0d 0a 09 44 42 09 32 30 2c 32 36 2c 36 2c 31 32 2c 20 31 38 2c 32 34 2c 34 2c 31 30 0d 0a ┆14 DB 20,26,6,12, 18,24,4,10 ┆ 0x0657e0…065800 09 44 42 09 31 36 2c 32 32 0d 0a 3b 0d 0a 09 44 53 09 33 32 09 3b 53 54 41 43 4b 0d 0a 53 54 41 ┆ DB 16,22 ; DS 32 ;STACK STA┆ 0x065800…065820 (27, 0, 3) 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 09 43 41 4c 49 46 4f 52 4e 49 41 2c 20 ┆ ; CALIFORNIA, ┆ 0x065820…065840 39 33 39 35 30 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 30 31 30 30 20 ┆93950 ; 0100 ┆ 0x065840…065860 3d 20 20 20 20 20 20 20 20 20 54 50 41 09 45 51 55 09 31 30 30 48 09 3b 54 52 41 4e 53 49 45 4e ┆= TPA EQU 100H ;TRANSIEN┆ 0x065860…065880 54 20 50 52 4f 47 52 41 4d 20 41 52 45 41 0d 0a 20 30 31 30 30 20 20 20 20 20 20 20 20 20 20 20 ┆T PROGRAM AREA 0100 ┆ 0x065880…0658a0 09 4f 52 47 09 54 50 41 0d 0a 20 30 31 30 30 20 43 33 42 43 30 31 20 20 20 20 09 4a 4d 50 09 53 ┆ ORG TPA 0100 C3BC01 JMP S┆ 0x0658a0…0658c0 54 41 52 54 0d 0a 20 30 31 30 33 20 34 33 34 46 35 30 35 39 35 32 09 44 42 09 27 43 4f 50 59 52 ┆TART 0103 434F505952 DB 'COPYR┆ 0x0658c0…0658e0 49 47 48 54 20 28 43 29 20 31 39 38 30 2c 20 44 49 47 49 54 41 4c 20 52 45 53 45 41 52 43 48 20 ┆IGHT (C) 1980, DIGITAL RESEARCH ┆ 0x0658e0…065900 27 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 ┆' ; ┆ 0x065900…065920 20 20 20 20 20 20 3b 09 47 4c 4f 42 41 4c 20 45 51 55 41 54 45 53 0d 0a 20 30 30 30 30 20 3d 20 ┆ ; GLOBAL EQUATES 0000 = ┆ 0x065920…065940 20 20 20 20 20 20 20 20 42 4f 4f 54 09 45 51 55 09 30 30 30 30 48 0d 0a 20 30 30 30 35 20 3d 20 ┆ BOOT EQU 0000H 0005 = ┆ 0x065940…065960 20 20 20 20 20 20 20 20 42 44 4f 53 09 45 51 55 09 30 30 30 35 48 0d 0a 20 30 30 30 31 20 3d 20 ┆ BDOS EQU 0005H 0001 = ┆ 0x065960…065980 20 20 20 20 20 20 20 20 43 4f 4e 49 4e 09 45 51 55 09 31 09 3b 52 45 41 44 20 43 4f 4e 53 4f 4c ┆ CONIN EQU 1 ;READ CONSOL┆ 0x065980…0659a0 45 20 44 45 56 49 43 45 0d 0a 20 30 30 30 41 20 3d 20 20 20 20 20 20 20 20 20 52 44 42 55 46 46 ┆E DEVICE 000A = RDBUFF┆ 0x0659a0…0659c0 09 45 51 55 09 31 30 09 3b 52 45 41 44 20 42 55 46 46 45 52 0d 0a 20 30 30 30 39 20 3d 20 20 20 ┆ EQU 10 ;READ BUFFER 0009 = ┆ 0x0659c0…0659e0 20 20 20 20 20 20 50 42 55 46 46 09 45 51 55 09 39 09 3b 50 52 49 4e 54 20 42 55 46 46 45 52 0d ┆ PBUFF EQU 9 ;PRINT BUFFER ┆ 0x0659e0…065a00 0a 20 30 30 30 44 20 3d 20 20 20 20 20 20 20 20 20 43 52 09 45 51 55 09 30 44 48 0d 0a 20 30 30 ┆ 000D = CR EQU 0DH 00┆ 0x065a00…065a20 (27, 0, 4) 31 34 43 20 41 46 33 32 33 34 30 31 20 20 09 52 45 41 44 24 44 3a 20 58 52 41 20 41 21 20 53 54 ┆14C AF323401 READ$D: XRA A! ST┆ 0x065a20…065a40 41 20 49 4f 46 20 3b 53 45 54 20 54 4f 20 52 45 41 44 20 46 55 4e 43 54 49 4f 4e 0d 0a 20 20 20 ┆A IOF ;SET TO READ FUNCTION ┆ 0x065a40…065a60 20 20 20 20 20 20 20 20 20 20 20 20 20 09 52 57 24 44 49 53 4b 3a 20 3b 52 45 41 44 20 4f 52 20 ┆ RW$DISK: ;READ OR ┆ 0x065a60…065a80 57 52 49 54 45 20 44 49 53 4b 0d 0a 20 30 31 35 30 20 32 31 33 31 30 31 34 45 20 20 09 09 4c 58 ┆WRITE DISK 0150 2131014E LX┆ 0x065a80…065aa0 49 20 48 2c 54 52 41 43 4b 21 20 4d 4f 56 20 43 2c 4d 20 3b 47 45 54 20 54 52 41 43 4b 20 4e 55 ┆I H,TRACK! MOV C,M ;GET TRACK NU┆ 0x065aa0…065ac0 4d 42 45 52 0d 0a 20 30 31 35 34 20 43 44 39 32 30 31 20 20 20 20 09 09 43 41 4c 4c 20 54 52 4b ┆MBER 0154 CD9201 CALL TRK┆ 0x065ac0…065ae0 20 3b 54 52 41 43 4b 20 53 45 4c 45 43 54 45 44 0d 0a 20 30 31 35 37 20 32 41 33 32 30 31 20 20 ┆ ;TRACK SELECTED 0157 2A3201 ┆ 0x065ae0…065b00 20 20 09 09 4c 48 4c 44 20 42 55 46 46 41 20 3b 47 45 54 20 44 4d 41 20 41 44 44 52 45 53 53 0d ┆ LHLD BUFFA ;GET DMA ADDRESS ┆ 0x065b00…065b20 0a 20 30 31 35 41 20 31 36 30 30 33 41 30 41 30 37 09 09 4d 56 49 20 44 2c 30 21 20 4c 44 41 20 ┆ 015A 16003A0A07 MVI D,0! LDA ┆ 0x065b20…065b40 53 50 54 21 20 4d 4f 56 20 45 2c 41 20 3b 20 44 3d 30 2c 20 45 3d 53 50 54 0d 0a 20 20 20 20 20 ┆SPT! MOV E,A ; D=0, E=SPT ┆ 0x065b40…065b60 20 20 20 20 20 20 20 20 20 20 20 09 09 52 57 24 4c 4f 4f 50 3a 20 3b 52 45 41 44 2f 57 52 49 54 ┆ RW$LOOP: ;READ/WRIT┆ 0x065b60…065b80 45 20 4c 4f 4f 50 0d 0a 20 30 31 36 30 20 44 35 45 35 20 20 20 20 20 20 09 09 09 50 55 53 48 20 ┆E LOOP 0160 D5E5 PUSH ┆ 0x065b80…065ba0 44 21 20 50 55 53 48 20 48 0d 0a 20 30 31 36 32 20 34 41 43 44 39 41 30 31 20 20 09 09 09 4d 4f ┆D! PUSH H 0162 4ACD9A01 MO┆ 0x065ba0…065bc0 56 20 43 2c 44 21 20 43 41 4c 4c 20 53 45 43 20 3b 53 45 43 54 4f 52 20 53 45 54 0d 0a 20 30 31 ┆V C,D! CALL SEC ;SECTOR SET 01┆ 0x065bc0…065be0 36 36 20 43 31 43 35 20 20 20 20 20 20 09 09 09 50 4f 50 20 42 21 20 50 55 53 48 20 42 20 3b 47 ┆66 C1C5 POP B! PUSH B ;G┆ 0x065be0…065c00 45 54 20 44 4d 41 20 41 44 44 52 45 53 53 0d 0a 20 30 31 36 38 20 43 44 41 32 30 31 20 20 20 20 ┆ET DMA ADDRESS 0168 CDA201 ┆ 0x065c00…065c20 (27, 0, 5) 21 20 4a 4d 50 20 50 52 4d 53 47 0d 0a 09 44 42 20 43 52 2c 4c 46 2c 27 53 45 52 49 41 4c 49 5a ┆! JMP PRMSG DB CR,LF,'SERIALIZ┆ 0x065c20…065c40 49 4e 47 20 44 49 53 4b 20 24 27 0d 0a 3b 0d 0a 41 53 45 52 4d 53 47 3a 0d 0a 09 4c 58 49 20 44 ┆ING DISK $' ; ASERMSG: LXI D┆ 0x065c40…065c60 2c 41 4f 52 49 47 49 4e 21 20 43 41 4c 4c 20 50 52 4d 53 47 0d 0a 09 4c 58 49 20 44 2c 41 53 45 ┆,AORIGIN! CALL PRMSG LXI D,ASE┆ 0x065c60…065c80 52 49 41 4c 21 20 4a 4d 50 20 50 52 4d 53 47 0d 0a 3b 0d 0a 4e 45 57 4d 53 47 3a 0d 0a 09 4c 58 ┆RIAL! JMP PRMSG ; NEWMSG: LX┆ 0x065c80…065ca0 49 20 44 2c 24 2b 36 21 20 4a 4d 50 20 50 52 4d 53 47 0d 0a 09 44 42 20 43 52 2c 4c 46 2c 27 49 ┆I D,$+6! JMP PRMSG DB CR,LF,'I┆ 0x065ca0…065cc0 4e 53 45 52 54 20 4e 45 57 20 44 49 53 4b 45 54 54 45 2c 20 54 59 50 45 20 52 45 54 55 52 4e 24 ┆NSERT NEW DISKETTE, TYPE RETURN$┆ 0x065cc0…065ce0 27 0d 0a 3b 0d 0a 42 41 44 43 4f 4d 3a 0d 0a 09 4c 58 49 20 44 2c 24 2b 36 21 20 4a 4d 50 20 50 ┆' ; BADCOM: LXI D,$+6! JMP P┆ 0x065ce0…065d00 52 4d 53 47 0d 0a 09 44 42 20 43 52 2c 4c 46 2c 27 42 41 44 20 4d 4f 56 43 50 4d 2e 43 4f 4d 20 ┆RMSG DB CR,LF,'BAD MOVCPM.COM ┆ 0x065d00…065d20 46 49 4c 45 2c 20 52 45 50 4c 41 43 45 24 27 0d 0a 3b 0d 0a 42 41 44 44 53 4b 3a 0d 0a 09 4c 58 ┆FILE, REPLACE$' ; BADDSK: LX┆ 0x065d20…065d40 49 20 44 2c 24 2b 36 21 20 4a 4d 50 20 50 52 4d 53 47 0d 0a 09 44 42 20 43 52 2c 4c 46 2c 27 4e ┆I D,$+6! JMP PRMSG DB CR,LF,'N┆ 0x065d40…065d60 4f 4e 20 43 50 2f 4d 20 44 49 53 4b 45 54 54 45 2c 20 43 41 4e 4e 4f 54 20 53 45 52 49 41 4c 49 ┆ON CP/M DISKETTE, CANNOT SERIALI┆ 0x065d60…065d80 5a 45 24 27 0d 0a 3b 0d 0a 56 45 52 45 52 52 3a 0d 0a 09 4c 58 49 20 44 2c 24 2b 36 21 20 4a 4d ┆ZE$' ; VERERR: LXI D,$+6! JM┆ 0x065d80…065da0 50 20 50 52 4d 53 47 0d 0a 09 44 42 20 43 52 2c 4c 46 2c 27 56 45 52 49 46 49 43 41 54 49 4f 4e ┆P PRMSG DB CR,LF,'VERIFICATION┆ 0x065da0…065dc0 20 45 52 52 4f 52 2c 20 42 41 44 20 44 49 53 4b 24 27 0d 0a 3b 0d 0a 4f 56 45 52 4d 53 47 3a 0d ┆ ERROR, BAD DISK$' ; OVERMSG: ┆ 0x065dc0…065de0 0a 09 4c 58 49 20 44 2c 24 2b 36 21 20 4a 4d 50 20 50 52 4d 53 47 0d 0a 09 44 42 20 43 52 2c 4c ┆ LXI D,$+6! JMP PRMSG DB CR,L┆ 0x065de0…065e00 46 2c 27 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 20 4f 56 45 52 46 4c 4f 57 24 27 0d 0a 52 45 41 ┆F,'SERIAL NUMBER OVERFLOW$' REA┆ 0x065e00…065e20 (27, 0, 6) 65 71 75 09 34 68 09 3b 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 77 72 69 74 66 09 65 71 75 ┆equ 4h ;read function writf equ┆ 0x065e20…065e40 09 36 68 09 3b 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 72 65 63 61 6c 09 65 71 75 09 33 ┆ 6h ;write function recal equ 3┆ 0x065e40…065e60 68 09 3b 72 65 63 61 6c 69 62 72 61 74 65 20 64 72 69 76 65 0d 0a 69 6f 72 64 79 09 65 71 75 09 ┆h ;recalibrate drive iordy equ ┆ 0x065e60…065e80 34 68 09 3b 69 2f 6f 20 66 69 6e 69 73 68 65 64 20 6d 61 73 6b 0d 0a 63 72 09 65 71 75 09 30 64 ┆4h ;i/o finished mask cr equ 0d┆ 0x065e80…065ea0 68 09 3b 63 61 72 72 69 61 67 65 20 72 65 74 75 72 6e 0d 0a 6c 66 09 65 71 75 09 30 61 68 09 3b ┆h ;carriage return lf equ 0ah ;┆ 0x065ea0…065ec0 6c 69 6e 65 20 66 65 65 64 0d 0a 3b 0d 0a 73 69 67 6e 6f 6e 3a 09 3b 73 69 67 6e 6f 6e 20 6d 65 ┆line feed ; signon: ;signon me┆ 0x065ec0…065ee0 73 73 61 67 65 3a 20 78 78 6b 20 63 70 2f 6d 20 76 65 72 73 20 79 2e 79 0d 0a 09 64 62 09 63 72 ┆ssage: xxk cp/m vers y.y db cr┆ 0x065ee0…065f00 2c 6c 66 2c 6c 66 0d 0a 09 69 66 09 74 65 73 74 0d 0a 09 64 62 09 27 33 32 27 09 3b 33 32 6b 20 ┆,lf,lf if test db '32' ;32k ┆ 0x065f00…065f20 65 78 61 6d 70 6c 65 20 62 69 6f 73 0d 0a 09 65 6e 64 69 66 0d 0a 09 69 66 09 6e 6f 74 20 74 65 ┆example bios endif if not te┆ 0x065f20…065f40 73 74 0d 0a 09 64 62 09 27 30 30 27 09 3b 6d 65 6d 6f 72 79 20 73 69 7a 65 20 66 69 6c 6c 65 64 ┆st db '00' ;memory size filled┆ 0x065f40…065f60 20 62 79 20 72 65 6c 6f 63 61 74 6f 72 0d 0a 09 65 6e 64 69 66 0d 0a 09 64 62 09 27 6b 20 43 50 ┆ by relocator endif db 'k CP┆ 0x065f60…065f80 2f 4d 20 76 65 72 73 20 27 0d 0a 09 64 62 09 76 65 72 73 2f 31 30 2b 27 30 27 2c 27 2e 27 2c 76 ┆/M vers ' db vers/10+'0','.',v┆ 0x065f80…065fa0 65 72 73 20 6d 6f 64 20 31 30 2b 27 30 27 0d 0a 09 64 62 09 63 72 2c 6c 66 2c 30 0d 0a 3b 0d 0a ┆ers mod 10+'0' db cr,lf,0 ; ┆ 0x065fa0…065fc0 62 6f 6f 74 3a 09 3b 70 72 69 6e 74 20 73 69 67 6e 6f 6e 20 6d 65 73 73 61 67 65 20 61 6e 64 20 ┆boot: ;print signon message and ┆ 0x065fc0…065fe0 67 6f 20 74 6f 20 63 63 70 0d 0a 3b 09 28 6e 6f 74 65 3a 20 6d 64 73 20 62 6f 6f 74 20 69 6e 69 ┆go to ccp ; (note: mds boot ini┆ 0x065fe0…066000 74 69 61 6c 69 7a 65 64 20 69 6f 62 79 74 65 20 61 74 20 30 30 30 33 68 29 0d 0a 09 6c 78 69 09 ┆tialized iobyte at 0003h) lxi ┆ 0x066000…066020 (27, 0, 7) 30 41 20 3d 20 20 20 20 20 20 20 20 20 4c 46 09 45 51 55 09 30 41 48 0d 0a 20 30 30 31 34 20 3d ┆0A = LF EQU 0AH 0014 =┆ 0x066020…066040 20 20 20 20 20 20 20 20 20 53 57 31 09 45 51 55 09 31 34 48 0d 0a 20 20 20 20 20 20 20 20 20 20 ┆ SW1 EQU 14H ┆ 0x066040…066060 20 20 20 20 20 20 3b 0d 0a 20 32 39 30 30 20 3d 20 20 20 20 20 20 20 20 20 43 43 50 42 09 45 51 ┆ ; 2900 = CCPB EQ┆ 0x066060…066080 55 09 32 39 30 30 48 09 3b 43 4f 4e 53 4f 4c 45 20 50 52 4f 43 45 53 53 4f 52 20 42 41 53 45 0d ┆U 2900H ;CONSOLE PROCESSOR BASE ┆ 0x066080…0660a0 0a 20 33 31 30 30 20 3d 20 20 20 20 20 20 20 20 20 42 44 4f 53 42 09 45 51 55 09 33 31 30 30 48 ┆ 3100 = BDOSB EQU 3100H┆ 0x0660a0…0660c0 09 3b 42 41 53 49 43 20 44 4f 53 20 42 41 53 45 0d 0a 20 30 30 30 30 20 3d 20 20 20 20 20 20 20 ┆ ;BASIC DOS BASE 0000 = ┆ 0x0660c0…0660e0 20 20 4f 46 46 53 45 54 09 45 51 55 09 30 30 48 09 3b 53 50 41 43 45 20 46 4f 52 20 43 4f 4c 44 ┆ OFFSET EQU 00H ;SPACE FOR COLD┆ 0x0660e0…066100 20 42 4f 4f 54 20 4f 4e 20 44 49 53 4b 0d 0a 20 30 38 30 30 20 3d 20 20 20 20 20 20 20 20 20 53 ┆ BOOT ON DISK 0800 = S┆ 0x066100…066120 4c 45 4e 09 45 51 55 09 42 44 4f 53 42 2d 43 43 50 42 09 3b 53 45 41 52 43 48 20 4c 45 4e 47 54 ┆LEN EQU BDOSB-CCPB ;SEARCH LENGT┆ 0x066120…066140 48 20 46 4f 52 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ┆H FOR SERIAL NUMBER ┆ 0x066140…066160 20 20 20 20 20 3b 0d 0a 20 30 31 32 38 20 3d 20 20 20 20 20 20 20 20 20 52 45 41 44 54 52 4b 09 ┆ ; 0128 = READTRK ┆ 0x066160…066180 45 51 55 09 24 0d 0a 20 30 31 32 42 20 3d 20 20 20 20 20 20 20 20 20 57 52 49 54 54 52 4b 09 45 ┆EQU $ 012B = WRITTRK E┆ 0x066180…0661a0 51 55 09 24 2b 33 0d 0a 20 30 31 32 45 20 3d 20 20 20 20 20 20 20 20 20 52 45 52 45 41 44 09 45 ┆QU $+3 012E = REREAD E┆ 0x0661a0…0661c0 51 55 09 24 2b 36 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 09 54 52 41 43 4b 20 ┆QU $+6 ; TRACK ┆ 0x0661c0…0661e0 52 45 41 44 2f 57 52 49 54 45 20 52 4f 55 54 49 4e 45 53 2c 20 46 49 4c 4c 45 44 20 49 4e 20 4c ┆READ/WRITE ROUTINES, FILLED IN L┆ 0x0661e0…066200 41 54 45 52 0d 0a 20 30 31 32 38 20 43 33 33 35 30 31 20 20 20 20 09 4a 4d 50 09 52 45 41 44 24 ┆ATER 0128 C33501 JMP READ$┆ 0x066200…066220 (27, 0, 8) 09 09 09 43 41 4c 4c 20 44 4d 41 20 3b 44 4d 41 20 41 44 44 52 45 53 53 20 53 45 54 0d 0a 20 20 ┆ CALL DMA ;DMA ADDRESS SET ┆ 0x066220…066240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 09 3b 50 45 52 46 4f 52 4d 20 49 4f 20 46 55 4e ┆ ;PERFORM IO FUN┆ 0x066240…066260 43 54 49 4f 4e 0d 0a 20 30 31 36 42 20 33 41 33 34 30 31 42 37 20 20 09 09 09 4c 44 41 20 49 4f ┆CTION 016B 3A3401B7 LDA IO┆ 0x066260…066280 46 21 20 4f 52 41 20 41 20 3b 53 45 54 20 46 4c 41 47 53 2c 20 30 3d 52 45 41 44 2c 20 31 3d 57 ┆F! ORA A ;SET FLAGS, 0=READ, 1=W┆ 0x066280…0662a0 52 49 54 45 0d 0a 20 30 31 36 46 20 43 32 37 38 30 31 20 20 20 20 09 09 09 4a 4e 5a 20 57 52 49 ┆RITE 016F C27801 JNZ WRI┆ 0x0662a0…0662c0 54 45 46 55 4e 43 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 09 09 3b 52 45 41 ┆TEFUNC ;REA┆ 0x0662c0…0662e0 44 20 44 49 53 4b 0d 0a 20 30 31 37 32 20 43 44 41 41 30 31 20 20 20 20 09 09 09 09 43 41 4c 4c ┆D DISK 0172 CDAA01 CALL┆ 0x0662e0…066300 20 44 52 45 41 44 0d 0a 20 30 31 37 35 20 43 33 37 42 30 31 20 20 20 20 09 09 09 09 4a 4d 50 20 ┆ DREAD 0175 C37B01 JMP ┆ 0x066300…066320 52 57 43 4f 4d 50 4c 45 54 45 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 09 57 ┆RWCOMPLETE W┆ 0x066320…066340 52 49 54 45 46 55 4e 43 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 09 09 3b ┆RITEFUNC: ;┆ 0x066340…066360 57 52 49 54 45 20 44 49 53 4b 0d 0a 20 30 31 37 38 20 43 44 42 32 30 31 20 20 20 20 09 09 09 09 ┆WRITE DISK 0178 CDB201 ┆ 0x066360…066380 43 41 4c 4c 20 44 57 52 49 54 45 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 09 ┆CALL DWRITE ┆ 0x066380…0663a0 52 57 43 4f 4d 50 4c 45 54 45 3a 20 3b 46 55 4e 43 54 49 4f 4e 20 43 4f 4d 50 4c 45 54 45 0d 0a ┆RWCOMPLETE: ;FUNCTION COMPLETE ┆ 0x0663a0…0663c0 20 30 31 37 42 20 45 31 20 20 20 20 20 20 20 20 09 09 09 09 50 4f 50 20 48 20 3b 52 45 43 41 4c ┆ 017B E1 POP H ;RECAL┆ 0x0663c0…0663e0 4c 20 44 4d 41 20 41 44 44 52 45 53 53 0d 0a 20 30 31 37 43 20 31 31 38 30 30 30 31 39 20 20 09 ┆L DMA ADDRESS 017C 11800019 ┆ 0x0663e0…066400 09 09 09 4c 58 49 20 44 2c 38 30 48 21 20 44 41 44 20 44 20 3b 54 4f 20 4e 45 58 54 20 44 4d 41 ┆ LXI D,80H! DAD D ;TO NEXT DMA┆ 0x066400…066420 (27, 0, 9) 44 30 4d 53 47 3a 0d 0a 09 4c 58 49 20 44 2c 24 2b 36 21 20 4a 4d 50 20 50 52 4d 53 47 0d 0a 09 ┆D0MSG: LXI D,$+6! JMP PRMSG ┆ 0x066420…066440 44 42 20 43 52 2c 4c 46 2c 27 45 52 52 4f 52 20 4f 4e 20 53 4f 55 52 43 45 20 44 49 53 4b 2c 20 ┆DB CR,LF,'ERROR ON SOURCE DISK, ┆ 0x066440…066460 52 45 50 4c 41 43 45 24 27 0d 0a 3b 0d 0a 57 52 49 54 45 30 4d 53 47 3a 0d 0a 09 4c 58 49 20 44 ┆REPLACE$' ; WRITE0MSG: LXI D┆ 0x066460…066480 2c 24 2b 36 21 20 4a 4d 50 20 50 52 4d 53 47 0d 0a 09 44 42 20 43 52 2c 4c 46 2c 27 43 41 4e 4e ┆,$+6! JMP PRMSG DB CR,LF,'CANN┆ 0x066480…0664a0 4f 54 20 57 52 49 54 45 20 4e 45 57 20 44 49 53 4b 2c 20 52 45 50 4c 41 43 45 24 27 0d 0a 3b 0d ┆OT WRITE NEW DISK, REPLACE$' ; ┆ 0x0664a0…0664c0 0a 52 45 41 44 31 4d 53 47 3a 0d 0a 09 4c 58 49 20 44 2c 24 2b 36 21 20 4a 4d 50 20 50 52 4d 53 ┆ READ1MSG: LXI D,$+6! JMP PRMS┆ 0x0664c0…0664e0 47 0d 0a 09 44 42 20 43 52 2c 4c 46 2c 27 43 41 4e 4e 4f 54 20 52 45 2d 52 45 41 44 20 4e 45 57 ┆G DB CR,LF,'CANNOT RE-READ NEW┆ 0x0664e0…066500 20 44 49 53 4b 2c 20 52 45 50 4c 41 43 45 24 27 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 4d 49 53 43 45 4c ┆ DISK, REPLACE$' ; ; ; MISCEL┆ 0x066500…066520 4c 41 4e 45 4f 55 53 20 44 41 54 41 20 41 52 45 41 53 0d 0a 3b 0d 0a 4f 52 49 47 49 4e 3a 09 44 ┆LANEOUS DATA AREAS ; ORIGIN: D┆ 0x066520…066540 53 09 32 09 3b 42 49 4e 41 52 59 20 4f 52 49 47 49 4e 0d 0a 41 4f 52 49 47 3a 09 44 42 09 43 52 ┆S 2 ;BINARY ORIGIN AORIG: DB CR┆ 0x066540…066560 2c 4c 46 0d 0a 41 4f 52 49 47 49 4e 3a 0d 0a 09 44 42 09 27 30 30 30 30 30 2d 24 27 0d 0a 54 52 ┆,LF AORIGIN: DB '00000-$' TR┆ 0x066560…066580 4d 53 47 3a 09 44 42 09 43 52 2c 4c 46 0d 0a 54 52 43 4f 55 4e 54 3a 0d 0a 09 44 42 09 27 30 30 ┆MSG: DB CR,LF TRCOUNT: DB '00┆ 0x066580…0665a0 20 54 52 41 43 4b 53 20 56 45 52 49 46 49 45 44 24 27 0d 0a 42 53 45 52 49 41 4c 3a 0d 0a 09 44 ┆ TRACKS VERIFIED$' BSERIAL: D┆ 0x0665a0…0665c0 53 09 32 09 3b 42 49 4e 41 52 59 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 0d 0a 41 53 45 52 49 ┆S 2 ;BINARY SERIAL NUMBER ASERI┆ 0x0665c0…0665e0 41 4c 3a 0d 0a 09 44 42 09 27 30 30 30 30 30 24 27 0d 0a 43 4f 4d 50 41 52 45 3a 0d 0a 09 3b 43 ┆AL: DB '00000$' COMPARE: ;C┆ 0x0665e0…066600 4f 4d 4d 41 4e 44 53 20 41 52 45 20 45 4e 43 4f 44 45 44 20 54 4f 20 4d 41 4b 45 20 44 49 53 41 ┆OMMANDS ARE ENCODED TO MAKE DISA┆ 0x066600…066620 (27, 0, 10) 0d 0a 0d 0a 4e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 54 49 54 4c 45 09 27 50 52 4f 47 ┆ N TITLE 'PROG┆ 0x066620…066640 52 41 4d 20 53 45 52 49 41 4c 49 5a 41 54 49 4f 4e 20 46 4f 52 20 43 50 2f 4d 20 32 2e 32 20 32 ┆RAM SERIALIZATION FOR CP/M 2.2 2┆ 0x066640…066660 2f 38 30 27 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 ┆/80' ┆ 0x066660…066680 20 20 20 20 20 20 20 20 3b 20 4f 72 69 67 69 6e 20 23 20 65 78 70 61 6e 64 65 64 20 74 6f 20 31 ┆ ; Origin # expanded to 1┆ 0x066680…0666a0 36 20 62 69 74 73 20 30 33 20 4e 6f 76 20 38 30 20 4a 52 50 2e 0d 0a 20 20 20 20 20 20 20 20 20 ┆6 bits 03 Nov 80 JRP. ┆ 0x0666a0…0666c0 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 4d 4f 44 49 46 ┆ ; MODIF┆ 0x0666c0…0666e0 49 45 44 20 54 4f 20 53 55 50 50 4f 52 54 20 44 4f 55 42 4c 45 20 44 45 4e 53 49 54 59 20 4f 4e ┆IED TO SUPPORT DOUBLE DENSITY ON┆ 0x0666e0…066700 4c 59 20 20 2d 20 20 32 36 4a 55 4e 38 31 20 2f 20 46 56 4e 0d 0a 20 20 20 20 20 20 20 20 20 20 ┆LY - 26JUN81 / FVN ┆ 0x066700…066720 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 30 31 36 20 ┆ 0016 ┆ 0x066720…066740 3d 20 20 20 20 20 20 20 20 20 56 45 52 53 49 4f 4e 09 45 51 55 09 32 32 09 3b 56 45 52 53 49 4f ┆= VERSION EQU 22 ;VERSIO┆ 0x066740…066760 4e 20 32 2e 32 0d 0a 20 30 30 30 30 20 3d 20 20 20 20 20 20 20 20 20 4d 4f 56 54 52 4b 09 45 51 ┆N 2.2 0000 = MOVTRK EQ┆ 0x066760…066780 55 09 30 09 3b 54 52 41 43 4b 20 43 4f 4e 54 41 49 4e 49 4e 47 20 4d 4f 56 43 50 4d 20 50 52 4f ┆U 0 ;TRACK CONTAINING MOVCPM PRO┆ 0x066780…0667a0 47 52 41 4d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 ┆GRAM ; ┆ 0x0667a0…0667c0 20 20 20 20 20 20 20 20 20 3b 09 50 52 4f 47 52 41 4d 20 53 45 52 49 41 4c 49 5a 41 54 49 4f 4e ┆ ; PROGRAM SERIALIZATION┆ 0x0667c0…0667e0 20 46 4f 52 20 43 50 2f 4d 20 44 49 53 4b 45 54 54 45 53 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ┆ FOR CP/M DISKETTES ┆ 0x0667e0…066800 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 09 4e 4f 54 45 20 2a ┆ ; ; NOTE *┆ 0x066800…066820 (27, 0, 11) 44 49 53 4b 0d 0a 20 30 31 32 42 20 43 33 33 43 30 31 20 20 20 20 09 4a 4d 50 09 57 52 49 54 45 ┆DISK 012B C33C01 JMP WRITE┆ 0x066820…066840 24 44 49 53 4b 0d 0a 20 30 31 32 45 20 43 33 34 37 30 31 20 20 20 20 09 4a 4d 50 09 52 45 24 52 ┆$DISK 012E C34701 JMP RE$R┆ 0x066840…066860 45 41 44 24 44 49 53 4b 0d 0a 20 30 31 33 31 20 20 20 20 20 20 20 20 20 20 20 54 52 41 43 4b 3a ┆EAD$DISK 0131 TRACK:┆ 0x066860…066880 09 44 53 09 31 09 3b 53 45 54 20 54 4f 20 54 52 41 43 4b 20 54 4f 20 52 45 41 44 2f 57 52 49 54 ┆ DS 1 ;SET TO TRACK TO READ/WRIT┆ 0x066880…0668a0 45 0d 0a 20 30 31 33 32 20 20 20 20 20 20 20 20 20 20 20 42 55 46 46 41 3a 09 44 53 09 32 09 3b ┆E 0132 BUFFA: DS 2 ;┆ 0x0668a0…0668c0 53 45 54 20 54 4f 20 42 55 46 46 45 52 20 41 44 44 52 45 53 53 20 54 4f 20 52 45 41 44 2f 57 52 ┆SET TO BUFFER ADDRESS TO READ/WR┆ 0x0668c0…0668e0 49 54 45 0d 0a 20 30 31 33 34 20 20 20 20 20 20 20 20 20 20 20 49 4f 46 3a 09 44 53 09 31 09 3b ┆ITE 0134 IOF: DS 1 ;┆ 0x0668e0…066900 49 4f 20 46 55 4e 43 54 49 4f 4e 20 30 20 3d 20 52 45 41 44 2c 20 31 20 3d 20 57 52 49 54 45 0d ┆IO FUNCTION 0 = READ, 1 = WRITE ┆ 0x066900…066920 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ; ┆ 0x066920…066940 20 20 20 20 52 45 41 44 24 44 49 53 4b 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ READ$DISK: ┆ 0x066940…066960 09 3b 52 45 41 44 20 44 49 53 4b 20 44 52 49 56 45 20 41 2c 20 46 52 4f 4d 20 54 52 41 43 4b 20 ┆ ;READ DISK DRIVE A, FROM TRACK ┆ 0x066960…066980 27 54 52 41 43 4b 27 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 3b 49 4e 54 4f 20 ┆'TRACK' ;INTO ┆ 0x066980…0669a0 54 48 45 20 41 44 44 52 45 53 53 20 47 49 56 45 4e 20 42 59 20 27 42 55 46 46 41 27 0d 0a 20 30 ┆THE ADDRESS GIVEN BY 'BUFFA' 0┆ 0x0669a0…0669c0 31 33 35 20 41 46 43 44 38 39 30 31 20 20 09 58 52 41 20 41 21 20 43 41 4c 4c 20 53 45 4c 20 3b ┆135 AFCD8901 XRA A! CALL SEL ;┆ 0x0669c0…0669e0 53 45 4c 45 43 54 20 44 52 49 56 45 20 41 0d 0a 20 30 31 33 39 20 43 33 34 43 30 31 20 20 20 20 ┆SELECT DRIVE A 0139 C34C01 ┆ 0x0669e0…066a00 09 4a 4d 50 20 52 45 41 44 24 44 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a ┆ JMP READ$D ; ┆ 0x066a00…066a20 (27, 0, 12) 0d 0a 20 30 31 38 30 20 44 31 20 20 20 20 20 20 20 20 09 09 09 09 50 4f 50 20 44 20 3b 52 45 43 ┆ 0180 D1 POP D ;REC┆ 0x066a20…066a40 41 4c 4c 20 53 45 43 54 4f 52 20 41 4e 44 20 43 4f 55 4e 54 0d 0a 20 30 31 38 31 20 31 34 20 20 ┆ALL SECTOR AND COUNT 0181 14 ┆ 0x066a40…066a60 20 20 20 20 20 20 09 09 09 09 49 4e 52 20 44 20 3b 4e 45 58 54 20 53 45 43 54 4f 52 0d 0a 20 20 ┆ INR D ;NEXT SECTOR ┆ 0x066a60…066a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 09 3b 20 43 48 45 43 4b 20 45 52 52 4f 52 20 43 ┆ ; CHECK ERROR C┆ 0x066a80…066aa0 4f 4e 44 49 54 49 4f 4e 53 0d 0a 20 30 31 38 32 20 42 37 43 30 20 20 20 20 20 20 09 09 09 4f 52 ┆ONDITIONS 0182 B7C0 OR┆ 0x066aa0…066ac0 41 20 41 21 20 52 4e 5a 20 3b 52 45 54 55 52 4e 20 57 49 54 48 20 4e 4f 4e 20 5a 45 52 4f 20 46 ┆A A! RNZ ;RETURN WITH NON ZERO F┆ 0x066ac0…066ae0 4c 41 47 20 53 45 54 0d 0a 20 30 31 38 34 20 31 44 20 20 20 20 20 20 20 20 09 09 09 44 43 52 20 ┆LAG SET 0184 1D DCR ┆ 0x066ae0…066b00 45 20 3b 43 4f 55 4e 54 20 3d 20 43 4f 55 4e 54 20 2d 20 31 0d 0a 20 30 31 38 35 20 43 32 36 30 ┆E ;COUNT = COUNT - 1 0185 C260┆ 0x066b00…066b20 30 31 20 20 20 20 09 09 09 4a 4e 5a 20 52 57 24 4c 4f 4f 50 20 3b 46 4f 52 20 41 4e 4f 54 48 45 ┆01 JNZ RW$LOOP ;FOR ANOTHE┆ 0x066b20…066b40 52 20 53 45 43 54 4f 52 0d 0a 20 30 31 38 38 20 43 39 20 20 20 20 20 20 20 20 09 09 09 52 45 54 ┆R SECTOR 0188 C9 RET┆ 0x066b40…066b60 20 3b 57 49 54 48 20 5a 45 52 4f 20 46 4c 41 47 20 53 45 54 20 46 4f 52 20 49 4f 20 43 4f 4d 50 ┆ ;WITH ZERO FLAG SET FOR IO COMP┆ 0x066b60…066b80 4c 45 54 45 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 ┆LETE ; ┆ 0x066b80…066ba0 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 09 55 54 ┆ ; ; UT┆ 0x066ba0…066bc0 49 4c 49 54 59 20 53 55 42 52 4f 55 54 49 4e 45 53 20 46 4f 52 20 44 49 52 45 43 54 20 44 49 53 ┆ILITY SUBROUTINES FOR DIRECT DIS┆ 0x066bc0…066be0 4b 20 49 4f 0d 0a 20 30 30 30 31 20 3d 20 20 20 20 20 20 20 20 20 57 42 4f 4f 54 09 45 51 55 09 ┆K IO 0001 = WBOOT EQU ┆ 0x066be0…066c00 31 09 3b 57 41 52 4d 20 42 4f 4f 54 20 41 44 44 52 45 53 53 0d 0a 20 30 30 31 38 20 3d 20 20 20 ┆1 ;WARM BOOT ADDRESS 0018 = ┆ 0x066c00…066c20 (27, 0, 13) 53 53 45 4d 42 4c 59 20 48 41 52 44 45 52 0d 0a 09 44 57 09 4e 4f 54 20 27 44 49 27 2c 4e 4f 54 ┆SSEMBLY HARDER DW NOT 'DI',NOT┆ 0x066c20…066c40 20 27 52 20 27 0d 0a 09 44 57 09 4e 4f 54 20 27 45 52 27 2c 4e 4f 54 20 27 41 20 27 0d 0a 09 44 ┆ 'R ' DW NOT 'ER',NOT 'A ' D┆ 0x066c40…066c60 57 09 4e 4f 54 20 27 54 59 27 2c 4e 4f 54 20 27 50 45 27 0d 0a 09 44 57 09 4e 4f 54 20 27 53 41 ┆W NOT 'TY',NOT 'PE' DW NOT 'SA┆ 0x066c60…066c80 27 2c 4e 4f 54 20 27 56 45 27 0d 0a 09 44 57 09 4e 4f 54 20 27 52 45 27 2c 4e 4f 54 20 27 4e 20 ┆',NOT 'VE' DW NOT 'RE',NOT 'N ┆ 0x066c80…066ca0 27 0d 0a 09 44 57 09 4e 4f 54 20 27 55 53 27 2c 4e 4f 54 20 27 45 52 27 0d 0a 09 43 4f 4d 50 4c ┆' DW NOT 'US',NOT 'ER' COMPL┆ 0x066ca0…066cc0 45 4e 20 45 51 55 20 28 24 2d 43 4f 4d 50 41 52 45 29 2f 32 0d 0a 3b 09 49 4e 50 55 54 20 42 55 ┆EN EQU ($-COMPARE)/2 ; INPUT BU┆ 0x066cc0…066ce0 46 46 45 52 0d 0a 4d 41 58 4c 45 4e 3a 09 44 42 09 37 0d 0a 43 4f 4d 4c 45 4e 3a 09 44 53 09 31 ┆FFER MAXLEN: DB 7 COMLEN: DS 1┆ 0x066ce0…066d00 0d 0a 43 42 55 46 46 3a 09 44 53 09 38 0d 0a 53 54 52 41 43 4b 3a 09 44 53 09 31 09 3b 53 45 52 ┆ CBUFF: DS 8 STRACK: DS 1 ;SER┆ 0x066d00…066d20 49 41 4c 49 5a 45 20 54 52 41 43 4b 20 46 4f 52 20 43 50 4d 2e 43 4f 4d 20 46 49 4c 45 20 57 48 ┆IALIZE TRACK FOR CPM.COM FILE WH┆ 0x066d20…066d40 45 4e 20 45 4e 43 4f 55 4e 54 45 52 45 44 0d 0a 53 44 49 46 46 3a 09 44 53 09 32 09 3b 44 49 46 ┆EN ENCOUNTERED SDIFF: DS 2 ;DIF┆ 0x066d40…066d60 46 45 52 45 4e 43 45 20 42 45 54 57 45 45 4e 20 54 57 4f 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 ┆FERENCE BETWEEN TWO SERIAL NUMBE┆ 0x066d60…066d80 52 20 41 44 44 52 45 53 53 45 53 0d 0a 3b 09 53 45 43 54 4f 52 20 54 52 41 4e 53 4c 41 54 49 4f ┆R ADDRESSES ; SECTOR TRANSLATIO┆ 0x066d80…066da0 4e 20 56 45 43 54 4f 52 0d 0a 54 52 41 4e 3a 09 44 42 09 31 2c 37 2c 31 33 2c 31 39 2c 20 32 35 ┆N VECTOR TRAN: DB 1,7,13,19, 25┆ 0x066da0…066dc0 2c 35 2c 31 31 2c 31 37 0d 0a 09 44 42 09 32 33 2c 33 2c 39 2c 31 35 2c 20 32 31 2c 32 2c 38 2c ┆,5,11,17 DB 23,3,9,15, 21,2,8,┆ 0x066dc0…066de0 31 34 0d 0a 09 44 42 09 32 30 2c 32 36 2c 36 2c 31 32 2c 20 31 38 2c 32 34 2c 34 2c 31 30 0d 0a ┆14 DB 20,26,6,12, 18,24,4,10 ┆ 0x066de0…066e00 09 44 42 09 31 36 2c 32 32 0d 0a 3b 0d 0a 09 44 53 09 33 32 09 3b 53 54 41 43 4b 0d 0a 53 54 41 ┆ DB 16,22 ; DS 32 ;STACK STA┆ 0x066e00…066e20 (27, 0, 14) 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆********************************┆ 0x066e20…066e40 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 0a 20 20 20 20 20 ┆************************* ┆ 0x066e40…066e60 20 20 20 20 20 20 20 20 20 20 20 3b 09 54 48 49 53 20 50 52 4f 47 52 41 4d 20 43 4f 4e 54 41 49 ┆ ; THIS PROGRAM CONTAI┆ 0x066e60…066e80 4e 53 20 44 49 47 49 54 41 4c 20 52 45 53 45 41 52 43 48 20 50 52 4f 50 52 49 45 54 41 52 59 20 ┆NS DIGITAL RESEARCH PROPRIETARY ┆ 0x066e80…066ea0 49 4e 46 4f 52 4d 41 54 49 4f 4e 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 09 ┆INFORMATION, ; ┆ 0x066ea0…066ec0 41 4e 44 20 4d 55 53 54 20 4e 4f 54 20 42 45 20 52 45 50 52 4f 44 55 43 45 44 2c 20 43 4f 50 49 ┆AND MUST NOT BE REPRODUCED, COPI┆ 0x066ec0…066ee0 45 44 2c 20 4f 52 20 54 52 41 4e 53 43 52 49 42 45 44 20 49 4e 20 41 4e 59 20 46 4f 52 4d 0d 0a ┆ED, OR TRANSCRIBED IN ANY FORM ┆ 0x066ee0…066f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 09 57 48 41 54 53 4f 45 56 45 52 0d 0a 20 20 ┆ ; WHATSOEVER ┆ 0x066f00…066f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 09 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆ ; ****************┆ 0x066f20…066f40 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆********************************┆ 0x066f40…066f60 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆*************** ┆ 0x066f60…066f80 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 ┆ ; ; ┆ 0x066f80…066fa0 20 20 20 20 20 20 20 3b 09 43 4f 50 59 52 49 47 48 54 20 28 43 29 20 31 39 37 36 2c 20 31 39 37 ┆ ; COPYRIGHT (C) 1976, 197┆ 0x066fa0…066fc0 37 2c 20 31 39 37 38 2c 20 31 39 37 39 2c 20 31 39 38 30 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ┆7, 1978, 1979, 1980 ┆ 0x066fc0…066fe0 20 20 20 20 20 3b 09 44 49 47 49 54 41 4c 20 52 45 53 45 41 52 43 48 0d 0a 20 20 20 20 20 20 20 ┆ ; DIGITAL RESEARCH ┆ 0x066fe0…067000 20 20 20 20 20 20 20 20 20 3b 09 42 4f 58 20 35 37 39 20 50 41 43 49 46 49 43 20 47 52 4f 56 45 ┆ ; BOX 579 PACIFIC GROVE┆ 0x067000…067020 (27, 0, 15) 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ; ┆ 0x067020…067040 20 20 20 57 52 49 54 45 24 44 49 53 4b 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ WRITE$DISK: ┆ 0x067040…067060 09 3b 57 52 49 54 45 20 54 4f 20 44 49 53 4b 20 44 52 49 56 45 20 42 2c 20 54 4f 20 54 52 41 43 ┆ ;WRITE TO DISK DRIVE B, TO TRAC┆ 0x067060…067080 4b 20 27 54 52 41 43 4b 27 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 3b 46 52 4f ┆K 'TRACK' ;FRO┆ 0x067080…0670a0 4d 20 54 48 45 20 41 44 44 52 45 53 53 20 47 49 56 45 4e 20 42 59 20 27 42 55 46 46 41 27 0d 0a ┆M THE ADDRESS GIVEN BY 'BUFFA' ┆ 0x0670a0…0670c0 20 30 31 33 43 20 33 45 30 31 33 32 33 34 30 31 09 4d 56 49 20 41 2c 31 21 20 53 54 41 20 49 4f ┆ 013C 3E01323401 MVI A,1! STA IO┆ 0x0670c0…0670e0 46 20 3b 53 45 54 20 49 4f 46 55 4e 43 54 49 4f 4e 20 54 4f 20 57 52 49 54 45 0d 0a 20 30 31 34 ┆F ;SET IOFUNCTION TO WRITE 014┆ 0x0670e0…067100 31 20 43 44 38 39 30 31 20 20 20 20 09 43 41 4c 4c 20 53 45 4c 20 3b 53 45 4c 45 43 54 20 44 52 ┆1 CD8901 CALL SEL ;SELECT DR┆ 0x067100…067120 49 56 45 20 42 0d 0a 20 30 31 34 34 20 43 33 35 30 30 31 20 20 20 20 09 4a 4d 50 20 52 57 24 44 ┆IVE B 0144 C35001 JMP RW$D┆ 0x067120…067140 49 53 4b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 ┆ISK ; ┆ 0x067140…067160 20 20 20 20 20 20 20 20 52 45 24 52 45 41 44 24 44 49 53 4b 3a 0d 0a 20 20 20 20 20 20 20 20 20 ┆ RE$READ$DISK: ┆ 0x067160…067180 20 20 20 20 20 20 20 09 3b 52 45 41 44 20 46 52 4f 4d 20 44 49 53 4b 20 44 52 49 56 45 20 42 2c ┆ ;READ FROM DISK DRIVE B,┆ 0x067180…0671a0 20 46 52 4f 4d 20 54 52 41 43 4b 20 27 54 52 41 43 4b 27 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ┆ FROM TRACK 'TRACK' ┆ 0x0671a0…0671c0 20 20 20 20 20 09 3b 54 4f 20 54 48 45 20 41 44 44 52 45 53 53 20 47 49 56 45 4e 20 42 59 20 27 ┆ ;TO THE ADDRESS GIVEN BY '┆ 0x0671c0…0671e0 42 55 46 46 41 27 0d 0a 20 30 31 34 37 20 33 45 30 31 43 44 38 39 30 31 09 4d 56 49 20 41 2c 31 ┆BUFFA' 0147 3E01CD8901 MVI A,1┆ 0x0671e0…067200 21 20 43 41 4c 4c 20 53 45 4c 20 3b 44 52 49 56 45 20 42 20 53 45 4c 45 43 54 45 44 0d 0a 20 30 ┆! CALL SEL ;DRIVE B SELECTED 0┆ 0x067200…067220 (27, 1, 1) 20 20 20 20 20 20 53 45 4c 44 53 4b 09 45 51 55 09 32 34 09 3b 53 45 4c 45 43 54 20 44 49 53 4b ┆ SELDSK EQU 24 ;SELECT DISK┆ 0x067220…067240 0d 0a 20 30 30 31 42 20 3d 20 20 20 20 20 20 20 20 20 53 45 54 54 52 4b 09 45 51 55 09 32 37 09 ┆ 001B = SETTRK EQU 27 ┆ 0x067240…067260 3b 53 45 54 20 54 52 41 43 4b 0d 0a 20 30 30 31 45 20 3d 20 20 20 20 20 20 20 20 20 53 45 54 53 ┆;SET TRACK 001E = SETS┆ 0x067260…067280 45 43 09 45 51 55 09 33 30 09 3b 53 45 54 20 53 45 43 54 4f 52 0d 0a 20 30 30 32 31 20 3d 20 20 ┆EC EQU 30 ;SET SECTOR 0021 = ┆ 0x067280…0672a0 20 20 20 20 20 20 20 53 45 54 44 4d 41 09 45 51 55 09 33 33 09 3b 53 45 54 20 44 4d 41 20 41 44 ┆ SETDMA EQU 33 ;SET DMA AD┆ 0x0672a0…0672c0 44 52 45 53 53 0d 0a 20 30 30 32 34 20 3d 20 20 20 20 20 20 20 20 20 52 45 41 44 46 09 45 51 55 ┆DRESS 0024 = READF EQU┆ 0x0672c0…0672e0 09 33 36 09 3b 52 45 41 44 20 44 49 53 4b 0d 0a 20 30 30 32 37 20 3d 20 20 20 20 20 20 20 20 20 ┆ 36 ;READ DISK 0027 = ┆ 0x0672e0…067300 57 52 49 54 46 09 45 51 55 09 33 39 09 3b 57 52 49 54 45 20 44 49 53 4b 0d 0a 20 20 20 20 20 20 ┆WRITF EQU 39 ;WRITE DISK ┆ 0x067300…067320 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 45 4c ┆ ; SEL┆ 0x067320…067340 3a 09 3b 53 45 4c 45 43 54 20 44 52 49 56 45 20 47 49 56 45 4e 20 42 59 20 52 45 47 49 53 54 45 ┆: ;SELECT DRIVE GIVEN BY REGISTE┆ 0x067340…067360 52 20 41 0d 0a 20 30 31 38 39 20 34 46 32 41 30 31 30 30 31 31 09 4d 4f 56 20 43 2c 41 21 20 4c ┆R A 0189 4F2A010011 MOV C,A! L┆ 0x067360…067380 48 4c 44 20 57 42 4f 4f 54 21 20 4c 58 49 20 44 2c 53 45 4c 44 53 4b 21 20 44 41 44 20 44 21 20 ┆HLD WBOOT! LXI D,SELDSK! DAD D! ┆ 0x067380…0673a0 50 43 48 4c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 ┆PCHL ; ┆ 0x0673a0…0673c0 20 20 20 20 20 20 20 20 20 54 52 4b 3a 09 3b 53 45 54 20 54 52 41 43 4b 20 47 49 56 45 4e 20 42 ┆ TRK: ;SET TRACK GIVEN B┆ 0x0673c0…0673e0 59 20 43 0d 0a 20 30 31 39 32 20 32 41 30 31 30 30 31 31 31 42 09 4c 48 4c 44 20 57 42 4f 4f 54 ┆Y C 0192 2A0100111B LHLD WBOOT┆ 0x0673e0…067400 21 20 4c 58 49 20 44 2c 53 45 54 54 52 4b 21 20 44 41 44 20 44 21 20 50 43 48 4c 0d 0a 20 20 20 ┆! LXI D,SETTRK! DAD D! PCHL ┆ 0x067400…067420 (27, 1, 2) 30 30 31 42 35 30 30 31 31 32 37 30 30 31 39 30 45 30 32 45 39 33 31 30 41 30 37 30 45 37 38 44 ┆001B500112700190E02E9310A070E78D┆ 0x067420…067440 42 31 34 45 36 38 30 44 33 0d 0a 3a 31 30 30 31 43 35 30 30 43 41 43 41 30 31 30 45 34 38 37 39 ┆B14E680D3 :1001C500CACA010E4879┆ 0x067440…067460 33 32 30 41 30 37 43 44 42 30 30 34 43 44 43 43 30 33 32 31 34 35 0d 0a 3a 31 30 30 31 44 35 30 ┆320A07CDB004CDCC032145 :1001D50┆ 0x067460…067480 30 38 33 30 36 37 31 32 33 37 30 32 31 43 34 30 36 34 36 32 33 45 42 32 31 38 37 30 36 31 41 42 ┆0830671237021C4064623EB2187061AB┆ 0x067480…0674a0 37 43 46 0d 0a 3a 31 30 30 31 45 35 30 30 43 41 45 46 30 31 31 33 37 37 32 33 30 35 43 32 45 33 ┆7CF :1001E500CAEF0113772305C2E3┆ 0x0674a0…0674c0 30 31 33 36 32 44 32 33 33 36 32 34 43 44 34 42 0d 0a 3a 31 30 30 31 46 35 30 30 45 35 30 34 43 ┆01362D233624CD4B :1001F500E504C┆ 0x0674c0…0674e0 44 43 43 30 33 32 31 41 33 30 36 37 31 32 33 37 30 32 31 43 34 30 36 33 45 30 35 37 39 0d 0a 3a ┆DCC0321A30671237021C4063E0579 :┆ 0x0674e0…067500 31 30 30 32 30 35 30 30 39 36 32 31 41 35 30 36 43 41 31 33 30 32 33 36 33 30 32 33 33 44 43 32 ┆100205009621A506CA13023630233DC2┆ 0x067500…067520 30 43 30 32 31 31 43 35 33 43 0d 0a 3a 31 30 30 32 31 35 30 30 30 36 31 41 42 37 43 41 32 31 30 ┆0C0211C53C :10021500061AB7CA210┆ 0x067520…067540 32 37 37 32 33 31 33 43 33 31 36 30 32 43 44 37 45 30 34 43 44 37 31 0d 0a 3a 31 30 30 32 32 35 ┆2772313C31602CD7E04CD71 :100225┆ 0x067540…067560 30 30 42 46 30 33 33 45 30 30 33 32 43 44 30 36 43 44 32 39 30 35 43 44 34 33 30 35 43 44 34 46 ┆00BF033E0032CD06CD2905CD4305CD4F┆ 0x067560…067580 30 35 39 33 0d 0a 3a 31 30 30 32 33 35 30 30 43 44 42 46 30 33 32 31 33 31 30 31 33 36 30 31 32 ┆0593 :10023500CDBF0321310136012┆ 0x067580…0675a0 31 39 30 30 36 33 36 33 30 32 33 33 36 33 30 46 41 0d 0a 3a 31 30 30 32 34 35 30 30 32 31 30 42 ┆190063630233630FA :10024500210B┆ 0x0675a0…0675c0 30 37 32 32 33 32 30 31 43 44 32 38 30 31 43 41 35 37 30 32 43 44 30 44 30 36 43 33 36 35 0d 0a ┆07223201CD2801CA5702CD0D06C365 ┆ 0x0675c0…0675e0 3a 31 30 30 32 35 35 30 30 32 31 30 32 33 41 33 31 30 31 46 45 30 31 43 32 43 35 30 32 32 31 30 ┆:1002550021023A3101FE01C2C502210┆ 0x0675e0…067600 42 30 37 30 31 30 30 30 38 34 36 0d 0a 3a 31 30 30 32 36 35 30 30 45 35 43 35 31 31 41 42 30 36 ┆B0701000846 :10026500E5C511AB06┆ 0x067600…067620 (27, 1, 3) 09 4c 58 49 20 48 2c 41 53 45 52 49 41 4c 21 20 4a 5a 20 50 41 44 31 20 3b 50 41 44 20 48 49 47 ┆ LXI H,ASERIAL! JZ PAD1 ;PAD HIG┆ 0x067620…067640 48 20 4f 52 44 45 52 20 50 4f 53 49 54 49 4f 4e 53 20 57 49 54 48 20 30 0d 0a 20 30 32 30 43 20 ┆H ORDER POSITIONS WITH 0 020C ┆ 0x067640…067660 33 36 33 30 32 33 33 44 43 32 09 50 41 44 30 3a 09 4d 56 49 20 4d 2c 27 30 27 21 20 49 4e 58 20 ┆3630233DC2 PAD0: MVI M,'0'! INX ┆ 0x067660…067680 48 21 20 44 43 52 20 41 21 20 4a 4e 5a 20 50 41 44 30 0d 0a 20 30 32 31 33 20 31 31 43 35 30 36 ┆H! DCR A! JNZ PAD0 0213 11C506┆ 0x067680…0676a0 20 20 20 20 09 50 41 44 31 3a 09 4c 58 49 20 44 2c 43 42 55 46 46 20 3b 41 44 44 52 45 53 53 49 ┆ PAD1: LXI D,CBUFF ;ADDRESSI┆ 0x0676a0…0676c0 4e 47 20 42 55 46 46 45 52 0d 0a 20 30 32 31 36 20 31 41 42 37 43 41 32 31 30 32 09 50 41 44 32 ┆NG BUFFER 0216 1AB7CA2102 PAD2┆ 0x0676c0…0676e0 3a 09 4c 44 41 58 20 44 21 20 4f 52 41 20 41 21 20 4a 5a 20 50 41 44 33 20 3b 4c 4f 4f 4b 49 4e ┆: LDAX D! ORA A! JZ PAD3 ;LOOKIN┆ 0x0676e0…067700 47 20 46 4f 52 20 42 49 4e 41 52 59 20 30 0d 0a 20 30 32 31 42 20 37 37 32 33 31 33 43 33 31 36 ┆G FOR BINARY 0 021B 772313C316┆ 0x067700…067720 09 09 4d 4f 56 20 4d 2c 41 21 20 49 4e 58 20 48 21 20 49 4e 58 20 44 21 20 4a 4d 50 20 50 41 44 ┆ MOV M,A! INX H! INX D! JMP PAD┆ 0x067720…067740 32 20 3b 46 4f 52 20 41 4e 4f 54 48 45 52 20 43 48 41 52 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ┆2 ;FOR ANOTHER CHAR ┆ 0x067740…067760 20 20 20 20 20 09 50 41 44 33 3a 09 3b 45 4e 44 20 4f 46 20 41 53 43 49 49 20 46 49 4c 4c 20 28 ┆ PAD3: ;END OF ASCII FILL (┆ 0x067760…067780 4e 4f 57 20 52 49 47 48 54 20 41 44 4a 55 53 54 45 44 20 49 4e 20 41 53 45 52 49 41 4c 29 0d 0a ┆NOW RIGHT ADJUSTED IN ASERIAL) ┆ 0x067780…0677a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ; ┆ 0x0677a0…0677c0 20 20 20 52 44 44 53 4b 3a 09 3b 52 45 41 44 20 44 49 53 4b 20 41 4e 44 20 43 4f 50 59 0d 0a 20 ┆ RDDSK: ;READ DISK AND COPY ┆ 0x0677c0…0677e0 30 32 32 31 20 43 44 37 45 30 34 43 44 42 46 09 43 41 4c 4c 20 49 4e 53 4d 53 47 21 20 43 41 4c ┆0221 CD7E04CDBF CALL INSMSG! CAL┆ 0x0677e0…067800 4c 20 43 49 20 3b 57 41 49 54 20 46 4f 52 20 52 45 53 50 4f 4e 53 45 0d 0a 20 20 20 20 20 20 20 ┆L CI ;WAIT FOR RESPONSE ┆ 0x067800…067820 (27, 1, 4) 52 0d 0a 20 30 32 39 32 20 45 42 32 41 41 33 30 36 45 42 09 09 58 43 48 47 21 20 4c 48 4c 44 20 ┆R 0292 EB2AA306EB XCHG! LHLD ┆ 0x067820…067840 42 53 45 52 49 41 4c 21 20 58 43 48 47 21 20 4d 4f 56 20 4d 2c 44 21 20 49 4e 58 20 48 21 20 4d ┆BSERIAL! XCHG! MOV M,D! INX H! M┆ 0x067840…067860 4f 56 20 4d 2c 45 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 3b 46 49 52 53 54 ┆OV M,E ;FIRST┆ 0x067860…067880 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 20 49 53 20 53 54 4f 52 45 44 2c 20 4e 4f 57 20 43 4f ┆ SERIAL NUMBER IS STORED, NOW CO┆ 0x067880…0678a0 50 59 20 54 4f 20 42 44 4f 53 0d 0a 20 30 32 39 41 20 43 31 43 35 31 31 30 42 30 46 09 09 50 4f ┆PY TO BDOS 029A C1C5110B0F PO┆ 0x0678a0…0678c0 50 20 42 21 20 50 55 53 48 20 42 21 20 4c 58 49 20 44 2c 42 44 4f 53 56 0d 0a 20 20 20 20 20 20 ┆P B! PUSH B! LXI D,BDOSV ┆ 0x0678c0…0678e0 20 20 20 20 20 20 20 20 20 20 3b 09 09 43 4f 4d 50 55 54 45 20 44 49 46 46 45 52 45 4e 43 45 20 ┆ ; COMPUTE DIFFERENCE ┆ 0x0678e0…067900 49 4e 20 41 44 44 52 45 53 53 45 53 20 46 4f 52 20 4c 41 54 45 52 0d 0a 20 30 32 39 46 20 37 42 ┆IN ADDRESSES FOR LATER 029F 7B┆ 0x067900…067920 39 31 36 46 20 20 20 20 09 09 4d 4f 56 20 41 2c 45 21 20 53 55 42 20 43 21 20 4d 4f 56 20 4c 2c ┆916F MOV A,E! SUB C! MOV L,┆ 0x067920…067940 41 0d 0a 20 30 32 41 32 20 37 41 39 38 36 37 32 32 43 45 09 09 4d 4f 56 20 41 2c 44 21 20 53 42 ┆A 02A2 7A986722CE MOV A,D! SB┆ 0x067940…067960 42 20 42 21 20 4d 4f 56 20 48 2c 41 21 20 53 48 4c 44 20 53 44 49 46 46 0d 0a 20 30 32 41 38 20 ┆B B! MOV H,A! SHLD SDIFF 02A8 ┆ 0x067960…067980 45 31 30 45 30 36 20 20 20 20 09 09 50 4f 50 20 48 21 20 4d 56 49 20 43 2c 36 20 3b 4c 45 4e 47 ┆E10E06 POP H! MVI C,6 ;LENG┆ 0x067980…0679a0 54 48 20 4f 46 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ┆TH OF SERIAL NUMBER ┆ 0x0679a0…0679c0 20 20 20 20 20 3b 09 09 48 2c 4c 20 41 44 44 52 45 53 53 20 53 54 41 52 54 20 4f 46 20 53 45 52 ┆ ; H,L ADDRESS START OF SER┆ 0x0679c0…0679e0 49 41 4c 20 4e 55 4d 42 45 52 2c 20 44 2c 45 20 41 44 44 52 45 53 53 20 53 45 43 4f 4e 44 20 23 ┆IAL NUMBER, D,E ADDRESS SECOND #┆ 0x0679e0…067a00 0d 0a 20 30 32 41 42 20 37 45 31 32 31 33 32 33 30 44 09 09 43 4f 50 59 30 3a 20 4d 4f 56 20 41 ┆ 02AB 7E1213230D COPY0: MOV A┆ 0x067a00…067a20 (27, 1, 5) 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ; ┆ 0x067a20…067a40 53 45 43 3a 09 3b 53 45 54 20 53 45 43 54 4f 52 20 47 49 56 45 4e 20 42 59 20 43 0d 0a 20 30 31 ┆SEC: ;SET SECTOR GIVEN BY C 01┆ 0x067a40…067a60 39 41 20 32 41 30 31 30 30 31 31 31 45 09 4c 48 4c 44 20 57 42 4f 4f 54 21 20 4c 58 49 20 44 2c ┆9A 2A0100111E LHLD WBOOT! LXI D,┆ 0x067a60…067a80 53 45 54 53 45 43 21 20 44 41 44 20 44 21 20 50 43 48 4c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ┆SETSEC! DAD D! PCHL ┆ 0x067a80…067aa0 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 4d 41 3a 09 3b 53 45 ┆ ; DMA: ;SE┆ 0x067aa0…067ac0 54 20 44 4d 41 20 41 44 44 52 45 53 53 20 54 4f 20 56 41 4c 55 45 20 4f 46 20 42 2c 43 0d 0a 20 ┆T DMA ADDRESS TO VALUE OF B,C ┆ 0x067ac0…067ae0 30 31 41 32 20 32 41 30 31 30 30 31 31 32 31 09 4c 48 4c 44 20 57 42 4f 4f 54 21 20 4c 58 49 20 ┆01A2 2A01001121 LHLD WBOOT! LXI ┆ 0x067ae0…067b00 44 2c 53 45 54 44 4d 41 21 20 44 41 44 20 44 21 20 50 43 48 4c 0d 0a 20 20 20 20 20 20 20 20 20 ┆D,SETDMA! DAD D! PCHL ┆ 0x067b00…067b20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 52 45 41 44 3a ┆ ; DREAD:┆ 0x067b20…067b40 09 3b 50 45 52 46 4f 52 4d 20 52 45 41 44 20 4f 50 45 52 41 54 49 4f 4e 0d 0a 20 30 31 41 41 20 ┆ ;PERFORM READ OPERATION 01AA ┆ 0x067b40…067b60 32 41 30 31 30 30 31 31 32 34 09 4c 48 4c 44 20 57 42 4f 4f 54 21 20 4c 58 49 20 44 2c 52 45 41 ┆2A01001124 LHLD WBOOT! LXI D,REA┆ 0x067b60…067b80 44 46 21 20 44 41 44 20 44 21 20 50 43 48 4c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆DF! DAD D! PCHL ┆ 0x067b80…067ba0 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 57 52 49 54 45 3a 09 3b 50 45 52 ┆ ; DWRITE: ;PER┆ 0x067ba0…067bc0 46 4f 52 4d 20 57 52 49 54 45 20 4f 50 45 52 41 54 49 4f 4e 0d 0a 20 30 31 42 32 20 32 41 30 31 ┆FORM WRITE OPERATION 01B2 2A01┆ 0x067bc0…067be0 30 30 31 31 32 37 09 4c 48 4c 44 20 57 42 4f 4f 54 21 20 4c 58 49 20 44 2c 57 52 49 54 46 21 20 ┆001127 LHLD WBOOT! LXI D,WRITF! ┆ 0x067be0…067c00 44 41 44 20 44 21 20 4d 56 49 20 43 2c 32 20 21 20 50 43 48 4c 0d 0a 20 20 20 20 20 20 20 20 20 ┆DAD D! MVI C,2 ! PCHL ┆ 0x067c00…067c20 (27, 1, 6) 30 45 30 43 31 41 32 46 42 45 43 32 42 36 30 32 32 33 31 33 31 41 33 32 0d 0a 3a 31 30 30 32 37 ┆0E0C1A2FBEC2B60223131A32 :10027┆ 0x067c20…067c40 35 30 30 32 46 42 45 43 32 42 36 30 32 32 33 31 33 30 44 43 32 36 43 30 32 43 31 44 31 45 35 45 ┆5002FBEC2B60223130DC26C02C1D1E5E┆ 0x067c40…067c60 42 32 41 31 33 0d 0a 3a 31 30 30 32 38 35 30 30 38 33 30 36 45 42 37 33 32 33 33 36 31 36 32 33 ┆B2A13 :100285008306EB7323361623┆ 0x067c60…067c80 37 32 32 33 33 36 30 30 32 33 45 42 32 41 41 33 34 41 0d 0a 3a 31 30 30 32 39 35 30 30 30 36 45 ┆7223360023EB2AA34A :1002950006E┆ 0x067c80…067ca0 42 37 32 32 33 37 33 43 31 43 35 31 31 30 42 30 46 37 42 39 31 36 46 37 41 39 38 36 37 42 42 0d ┆B722373C1C5110B0F7B916F7A9867BB ┆ 0x067ca0…067cc0 0a 3a 31 30 30 32 41 35 30 30 32 32 43 45 30 36 45 31 30 45 30 36 37 45 31 32 31 33 32 33 30 44 ┆ :1002A50022CE06E10E067E1213230D┆ 0x067cc0…067ce0 43 32 41 42 30 32 43 33 33 32 32 37 0d 0a 3a 31 30 30 32 42 35 30 30 30 33 43 31 45 31 32 33 30 ┆C2AB02C33227 :1002B50003C1E1230┆ 0x067ce0…067d00 42 37 39 42 30 43 32 36 35 30 32 43 44 39 44 30 35 43 33 32 31 30 32 42 46 0d 0a 3a 31 30 30 32 ┆B79B0C26502CD9D05C32102BF :1002┆ 0x067d00…067d20 43 35 30 30 46 45 30 30 43 32 33 32 30 33 32 31 30 30 30 30 30 31 30 30 33 43 45 35 43 35 31 31 ┆C500FE00C2320321000001003CE5C511┆ 0x067d20…067d40 41 42 30 36 36 41 0d 0a 3a 31 30 30 32 44 35 30 30 30 45 30 43 45 35 43 44 32 45 30 34 31 41 32 ┆AB066A :1002D5000E0CE5CD2E041A2┆ 0x067d40…067d60 46 42 45 45 31 43 32 32 33 30 33 32 33 31 33 45 35 33 30 0d 0a 3a 31 30 30 32 45 35 30 30 43 44 ┆FBEE1C223032313E530 :1002E500CD┆ 0x067d60…067d80 32 45 30 34 31 41 32 46 42 45 45 31 43 32 32 33 30 33 32 33 31 33 30 44 43 32 44 37 30 32 35 43 ┆2E041A2FBEE1C2230323130DC2D7025C┆ 0x067d80…067da0 0d 0a 3a 31 30 30 32 46 35 30 30 43 31 44 31 45 35 43 44 35 43 30 34 45 31 45 42 32 41 43 45 30 ┆ :1002F500C1D1E5CD5C04E1EB2ACE0┆ 0x067da0…067dc0 36 31 39 37 44 42 37 43 32 32 43 35 30 0d 0a 3a 31 30 30 33 30 35 30 30 30 33 45 42 32 31 43 44 ┆6197DB7C22C50 :1003050003EB21CD┆ 0x067dc0…067de0 30 36 33 36 30 30 33 34 37 42 44 36 30 30 34 37 37 41 44 45 30 44 44 41 43 35 0d 0a 3a 31 30 30 ┆063600347BD600477ADE0DDAC5 :100┆ 0x067de0…067e00 33 31 35 30 30 31 43 30 33 35 37 35 38 43 33 30 43 30 33 45 42 32 32 43 45 30 36 43 33 33 32 30 ┆315001C035758C30C03EB22CE06C3320┆ 0x067e00…067e20 (27, 1, 7) 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4e 45 58 54 ┆ ; NEXT┆ 0x067e20…067e40 44 49 53 4b 3a 0d 0a 20 30 32 32 37 20 33 45 30 30 33 32 43 44 30 36 09 4d 56 49 20 41 2c 30 21 ┆DISK: 0227 3E0032CD06 MVI A,0!┆ 0x067e40…067e60 20 53 54 41 20 53 54 52 41 43 4b 20 3b 4d 41 52 4b 20 41 53 20 4d 4f 56 43 50 4d 2e 43 4f 4d 20 ┆ STA STRACK ;MARK AS MOVCPM.COM ┆ 0x067e60…067e80 20 53 45 52 49 41 4c 49 5a 45 44 0d 0a 20 30 32 32 43 20 43 44 32 39 30 35 43 44 34 33 09 43 41 ┆ SERIALIZED 022C CD2905CD43 CA┆ 0x067e80…067ea0 4c 4c 20 43 55 52 4d 53 47 21 20 43 41 4c 4c 20 41 53 45 52 4d 53 47 21 20 43 41 4c 4c 20 4e 45 ┆LL CURMSG! CALL ASERMSG! CALL NE┆ 0x067ea0…067ec0 57 4d 53 47 21 20 43 41 4c 4c 20 43 49 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 ┆WMSG! CALL CI ┆ 0x067ec0…067ee0 3b 4e 45 57 20 44 49 53 4b 20 49 53 20 52 45 41 44 59 2c 20 54 52 59 20 54 48 45 20 43 4f 50 59 ┆;NEW DISK IS READY, TRY THE COPY┆ 0x067ee0…067f00 20 4f 50 45 52 41 54 49 4f 4e 0d 0a 20 30 32 33 38 20 32 31 33 31 30 31 33 36 30 31 09 4c 58 49 ┆ OPERATION 0238 2131013601 LXI┆ 0x067f00…067f20 20 48 2c 54 52 41 43 4b 21 20 4d 56 49 20 4d 2c 31 20 3b 43 4c 45 41 52 20 54 48 45 20 54 52 41 ┆ H,TRACK! MVI M,1 ;CLEAR THE TRA┆ 0x067f20…067f40 43 4b 20 4e 55 4d 42 45 52 0d 0a 20 30 32 33 44 20 32 31 39 30 30 36 33 36 33 30 09 4c 58 49 20 ┆CK NUMBER 023D 2190063630 LXI ┆ 0x067f40…067f60 48 2c 54 52 43 4f 55 4e 54 21 20 4d 56 49 20 4d 2c 27 30 27 21 20 49 4e 58 20 48 21 20 4d 56 49 ┆H,TRCOUNT! MVI M,'0'! INX H! MVI┆ 0x067f60…067f80 20 4d 2c 27 30 27 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 ┆ M,'0' ; ┆ 0x067f80…067fa0 20 20 20 20 20 20 20 20 20 20 20 52 44 54 52 4b 3a 09 3b 52 45 41 44 20 54 48 45 20 4e 45 58 54 ┆ RDTRK: ;READ THE NEXT┆ 0x067fa0…067fc0 20 53 4f 55 52 43 45 20 54 52 41 43 4b 2c 20 43 4f 4d 50 41 52 45 20 57 49 54 48 20 30 45 35 48 ┆ SOURCE TRACK, COMPARE WITH 0E5H┆ 0x067fc0…067fe0 20 46 4f 52 20 45 4e 44 0d 0a 20 30 32 34 35 20 32 31 30 42 30 37 32 32 33 32 09 4c 58 49 20 48 ┆ FOR END 0245 210B072232 LXI H┆ 0x067fe0…068000 2c 49 42 55 46 46 21 20 53 48 4c 44 20 42 55 46 46 41 21 20 43 41 4c 4c 20 52 45 41 44 54 52 4b ┆,IBUFF! SHLD BUFFA! CALL READTRK┆ 0x068000…068020 (27, 1, 8) 2c 4d 21 20 53 54 41 58 20 44 21 20 49 4e 58 20 44 21 20 49 4e 58 20 48 21 20 44 43 52 20 43 0d ┆,M! STAX D! INX D! INX H! DCR C ┆ 0x068020…068040 0a 20 30 32 42 30 20 43 32 41 42 30 32 20 20 20 20 09 09 09 4a 4e 5a 20 43 4f 50 59 30 0d 0a 20 ┆ 02B0 C2AB02 JNZ COPY0 ┆ 0x068040…068060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 3b 42 44 4f 53 20 53 45 52 49 41 4c 20 4e 55 ┆ ;BDOS SERIAL NU┆ 0x068060…068080 4d 42 45 52 20 49 53 20 43 4f 50 49 45 44 0d 0a 20 30 32 42 33 20 43 33 33 32 30 33 20 20 20 20 ┆MBER IS COPIED 02B3 C33203 ┆ 0x068080…0680a0 09 09 4a 4d 50 20 52 44 54 52 4b 4e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 ┆ JMP RDTRKN ┆ 0x0680a0…0680c0 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 4e 4f 4d 41 54 43 48 3a 20 3b 54 52 ┆; NOMATCH: ;TR┆ 0x0680c0…0680e0 59 20 46 4f 52 20 4e 45 58 54 20 4d 41 54 43 48 0d 0a 20 30 32 42 36 20 43 31 45 31 32 33 30 42 ┆Y FOR NEXT MATCH 02B6 C1E1230B┆ 0x0680e0…068100 37 39 09 09 50 4f 50 20 42 21 20 50 4f 50 20 48 21 20 49 4e 58 20 48 21 20 44 43 58 20 42 21 20 ┆79 POP B! POP H! INX H! DCX B! ┆ 0x068100…068120 4d 4f 56 20 41 2c 43 21 20 4f 52 41 20 42 0d 0a 20 30 32 42 43 20 43 32 36 35 30 32 20 20 20 20 ┆MOV A,C! ORA B 02BC C26502 ┆ 0x068120…068140 09 09 4a 4e 5a 20 53 45 41 52 43 48 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 ┆ JNZ SEARCH ┆ 0x068140…068160 3b 4e 4f 54 20 46 4f 55 4e 44 0d 0a 20 30 32 42 46 20 43 44 39 44 30 35 43 33 32 31 09 09 43 41 ┆;NOT FOUND 02BF CD9D05C321 CA┆ 0x068160…068180 4c 4c 20 42 41 44 44 53 4b 21 20 4a 4d 50 20 52 44 44 53 4b 0d 0a 20 20 20 20 20 20 20 20 20 20 ┆LL BADDSK! JMP RDDSK ┆ 0x068180…0681a0 20 20 20 20 20 20 09 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 51 54 52 4b 33 ┆ ; QTRK3┆ 0x0681a0…0681c0 3a 09 3b 49 53 20 54 48 49 53 20 54 52 41 43 4b 20 4d 4f 56 54 52 4b 3f 20 49 46 20 53 4f 2c 20 ┆: ;IS THIS TRACK MOVTRK? IF SO, ┆ 0x0681c0…0681e0 4c 4f 4f 4b 20 46 4f 52 20 43 50 4d 2e 43 4f 4d 0d 0a 20 30 32 43 35 20 46 45 30 30 43 32 33 32 ┆LOOK FOR CPM.COM 02C5 FE00C232┆ 0x0681e0…068200 30 33 09 09 43 50 49 20 4d 4f 56 54 52 4b 21 20 4a 4e 5a 20 52 44 54 52 4b 4e 0d 0a 20 20 20 20 ┆03 CPI MOVTRK! JNZ RDTRKN ┆ 0x068200…068220 (27, 1, 9) 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 54 41 52 54 3a ┆ ; START:┆ 0x068220…068240 0d 0a 20 30 31 42 43 20 33 31 30 41 30 37 20 20 20 20 09 4c 58 49 09 53 50 2c 53 54 41 43 4b 0d ┆ 01BC 310A07 LXI SP,STACK ┆ 0x068240…068260 0a 20 30 31 42 46 20 30 45 37 38 20 20 20 20 20 20 09 4d 56 49 09 43 2c 31 32 30 0d 0a 20 30 31 ┆ 01BF 0E78 MVI C,120 01┆ 0x068260…068280 43 31 20 44 42 31 34 20 20 20 20 20 20 09 49 4e 09 53 57 31 0d 0a 20 30 31 43 33 20 45 36 38 30 ┆C1 DB14 IN SW1 01C3 E680┆ 0x068280…0682a0 20 20 20 20 20 20 09 41 4e 49 09 30 38 30 48 0d 0a 20 30 31 43 35 20 43 41 43 41 30 31 20 20 20 ┆ ANI 080H 01C5 CACA01 ┆ 0x0682a0…0682c0 20 09 4a 5a 09 53 45 54 53 50 54 0d 0a 20 30 31 43 38 20 30 45 34 38 20 20 20 20 20 20 09 4d 56 ┆ JZ SETSPT 01C8 0E48 MV┆ 0x0682c0…0682e0 49 09 43 2c 37 32 0d 0a 20 30 31 43 41 20 37 39 20 20 20 20 20 20 20 20 53 45 54 53 50 54 3a 09 ┆I C,72 01CA 79 SETSPT: ┆ 0x0682e0…068300 4d 4f 56 09 41 2c 43 0d 0a 20 30 31 43 42 20 33 32 30 41 30 37 20 20 20 20 09 53 54 41 09 53 50 ┆MOV A,C 01CB 320A07 STA SP┆ 0x068300…068320 54 0d 0a 20 30 31 43 45 20 43 44 42 30 30 34 20 20 20 20 09 43 41 4c 4c 09 4f 52 47 4d 53 47 09 ┆T 01CE CDB004 CALL ORGMSG ┆ 0x068320…068340 3b 4f 52 49 47 49 4e 20 50 52 4f 4d 50 54 0d 0a 20 30 31 44 31 20 43 44 43 43 30 33 20 20 20 20 ┆;ORIGIN PROMPT 01D1 CDCC03 ┆ 0x068340…068360 09 43 41 4c 4c 09 52 45 41 44 0d 0a 20 30 31 44 34 20 32 31 38 33 30 36 37 31 32 33 09 4c 58 49 ┆ CALL READ 01D4 2183067123 LXI┆ 0x068360…068380 20 48 2c 4f 52 49 47 49 4e 21 20 4d 4f 56 20 4d 2c 43 21 20 69 6e 78 20 68 21 20 6d 6f 76 20 6d ┆ H,ORIGIN! MOV M,C! inx h! mov m┆ 0x068380…0683a0 2c 62 20 3b 53 41 56 45 44 20 54 48 45 20 4f 52 49 47 49 4e 20 4e 55 4d 42 45 52 0d 0a 20 30 31 ┆,b ;SAVED THE ORIGIN NUMBER 01┆ 0x0683a0…0683c0 44 41 20 32 31 43 34 30 36 34 36 32 33 09 4c 58 49 20 48 2c 43 4f 4d 4c 45 4e 21 20 4d 4f 56 20 ┆DA 21C4064623 LXI H,COMLEN! MOV ┆ 0x0683c0…0683e0 42 2c 4d 21 20 49 4e 58 20 48 21 20 58 43 48 47 0d 0a 20 30 31 45 30 20 32 31 38 37 30 36 20 20 ┆B,M! INX H! XCHG 01E0 218706 ┆ 0x0683e0…068400 20 20 09 4c 58 49 20 48 2c 41 4f 52 49 47 49 4e 20 3b 41 53 43 49 49 20 56 45 52 53 49 4f 4e 20 ┆ LXI H,AORIGIN ;ASCII VERSION ┆ 0x068400…068420 (27, 1, 10) 33 43 31 45 31 42 44 0d 0a 3a 31 30 30 33 32 35 30 30 32 33 30 42 37 38 42 31 43 32 44 30 30 32 ┆3C1E1BD :10032500230B78B1C2D002┆ 0x068420…068440 43 44 37 38 30 35 43 33 32 31 30 32 32 31 43 44 30 36 42 39 0d 0a 3a 31 30 30 33 33 35 30 30 37 ┆CD7805C3210221CD06B9 :100335007┆ 0x068440…068460 45 42 37 43 41 34 34 30 33 33 35 43 32 34 34 30 33 32 41 43 45 30 36 43 44 35 43 30 34 32 31 45 ┆EB7CA440335C244032ACE06CD5C0421E┆ 0x068460…068480 38 0d 0a 3a 31 30 30 33 34 35 30 30 30 42 30 37 30 31 30 30 33 43 33 45 45 35 42 45 43 32 37 30 ┆8 :100345000B0701003C3EE5BEC270┆ 0x068480…0684a0 30 33 32 33 30 42 37 39 42 30 43 32 32 41 0d 0a 3a 31 30 30 33 35 35 30 30 34 41 30 33 33 41 43 ┆03230B79B0C22A :100355004A033AC┆ 0x0684a0…0684c0 44 30 36 42 37 43 41 36 34 30 33 43 44 37 38 30 35 43 33 32 31 30 32 31 31 31 35 0d 0a 3a 31 30 ┆D06B7CA6403CD7805C321021115 :10┆ 0x0684c0…0684e0 30 33 36 35 30 30 38 45 30 36 43 44 43 34 30 33 43 44 30 42 30 34 43 33 32 37 30 32 43 44 32 42 ┆0365008E06CDC403CD0B04C32702CD2B┆ 0x0684e0…068500 30 31 43 41 37 43 35 39 0d 0a 3a 31 30 30 33 37 35 30 30 30 33 43 44 33 33 30 36 43 33 32 37 30 ┆01CA7C59 :1003750003CD3306C3270┆ 0x068500…068520 32 32 31 30 42 34 33 32 32 33 32 30 31 43 44 32 45 30 31 43 33 0d 0a 3a 31 30 30 33 38 35 30 30 ┆2210B43223201CD2E01C3 :10038500┆ 0x068520…068540 43 41 38 45 30 33 43 44 35 41 30 36 43 33 32 37 30 32 32 31 30 42 30 37 31 31 30 42 34 33 30 31 ┆CA8E03CD5A06C32702210B07110B4301┆ 0x068540…068560 36 31 0d 0a 3a 31 30 30 33 39 35 30 30 30 30 33 43 31 41 42 45 43 32 42 39 30 33 32 33 31 33 30 ┆61 :10039500003C1ABEC2B90323130┆ 0x068560…068580 42 37 39 42 30 43 32 39 37 30 33 32 31 44 46 0d 0a 3a 31 30 30 33 41 35 30 30 33 31 30 31 33 34 ┆B79B0C2970321DF :1003A500310134┆ 0x068580…0685a0 32 31 39 31 30 36 33 34 37 45 46 45 33 41 44 41 34 35 30 32 33 36 33 30 32 42 38 45 0d 0a 3a 31 ┆219106347EFE3ADA450236302B8E :1┆ 0x0685a0…0685c0 30 30 33 42 35 30 30 33 34 43 33 34 35 30 32 43 44 43 39 30 35 43 33 32 37 30 32 30 45 30 31 43 ┆003B50034C34502CDC905C327020E01C┆ 0x0685c0…0685e0 33 30 35 30 30 30 45 38 45 0d 0a 3a 31 30 30 33 43 35 30 30 30 39 43 33 30 35 30 30 43 44 30 36 ┆305000E8E :1003C50009C30500CD06┆ 0x0685e0…068600 30 35 31 31 43 33 30 36 30 45 30 41 43 44 30 35 30 30 32 31 39 41 0d 0a 3a 31 30 30 33 44 35 30 ┆0511C3060E0ACD0500219A :1003D50┆ 0x068600…068620 (27, 1, 11) 0d 0a 20 30 32 34 45 20 43 41 35 37 30 32 43 44 30 44 09 09 4a 5a 20 52 45 41 44 4f 4b 21 20 43 ┆ 024E CA5702CD0D JZ READOK! C┆ 0x068620…068640 41 4c 4c 20 52 45 41 44 30 4d 53 47 21 20 4a 4d 50 20 52 44 44 53 4b 0d 0a 20 20 20 20 20 20 20 ┆ALL READ0MSG! JMP RDDSK ┆ 0x068640…068660 20 20 20 20 20 20 20 20 20 09 52 45 41 44 4f 4b 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ READOK: ┆ 0x068660…068680 20 20 20 09 3b 54 52 41 43 4b 20 49 53 20 49 4e 20 4d 45 4d 4f 52 59 2c 20 54 52 41 43 4b 20 31 ┆ ;TRACK IS IN MEMORY, TRACK 1┆ 0x068680…0686a0 3f 0d 0a 20 30 32 35 37 20 33 41 33 31 30 31 46 45 30 31 09 4c 44 41 20 54 52 41 43 4b 21 20 43 ┆? 0257 3A3101FE01 LDA TRACK! C┆ 0x0686a0…0686c0 50 49 20 31 21 20 4a 4e 5a 20 51 54 52 4b 33 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆PI 1! JNZ QTRK3 ┆ 0x0686c0…0686e0 20 09 09 3b 54 52 41 43 4b 20 30 2c 20 4c 4f 4f 4b 20 46 4f 52 20 53 45 52 49 41 4c 20 4e 55 4d ┆ ;TRACK 0, LOOK FOR SERIAL NUM┆ 0x0686e0…068700 42 45 52 0d 0a 20 30 32 35 46 20 32 31 30 42 30 37 30 31 30 30 09 09 4c 58 49 20 48 2c 43 43 50 ┆BER 025F 210B070100 LXI H,CCP┆ 0x068700…068720 56 21 20 4c 58 49 20 42 2c 53 4c 45 4e 0d 0a 20 30 32 36 35 20 45 35 43 35 31 31 41 42 30 36 09 ┆V! LXI B,SLEN 0265 E5C511AB06 ┆ 0x068720…068740 09 53 45 41 52 43 48 3a 09 50 55 53 48 20 48 21 20 50 55 53 48 20 42 21 20 4c 58 49 20 44 2c 43 ┆ SEARCH: PUSH H! PUSH B! LXI D,C┆ 0x068740…068760 4f 4d 50 41 52 45 21 20 4d 56 49 20 43 2c 43 4f 4d 50 4c 45 4e 0d 0a 20 30 32 36 43 20 31 41 32 ┆OMPARE! MVI C,COMPLEN 026C 1A2┆ 0x068760…068780 46 42 45 43 32 42 36 09 09 43 4f 4d 50 30 3a 09 4c 44 41 58 20 44 21 20 43 4d 41 21 20 43 4d 50 ┆FBEC2B6 COMP0: LDAX D! CMA! CMP┆ 0x068780…0687a0 20 4d 21 20 4a 4e 5a 20 4e 4f 4d 41 54 43 48 0d 0a 20 30 32 37 32 20 32 33 31 33 31 41 32 46 42 ┆ M! JNZ NOMATCH 0272 23131A2FB┆ 0x0687a0…0687c0 45 09 09 09 49 4e 58 20 48 21 20 49 4e 58 20 44 21 20 4c 44 41 58 20 44 21 20 43 4d 41 21 20 43 ┆E INX H! INX D! LDAX D! CMA! C┆ 0x0687c0…0687e0 4d 50 20 4d 21 20 4a 4e 5a 20 4e 4f 4d 41 54 43 48 0d 0a 20 30 32 37 41 20 32 33 31 33 30 44 43 ┆MP M! JNZ NOMATCH 027A 23130DC┆ 0x0687e0…068800 32 36 43 09 09 09 49 4e 58 20 48 21 20 49 4e 58 20 44 21 20 44 43 52 20 43 21 20 4a 4e 5a 20 43 ┆26C INX H! INX D! DCR C! JNZ C┆ 0x068800…068820 (27, 1, 12) 20 20 20 20 20 20 20 20 20 20 20 20 09 09 3b 4c 4f 4f 4b 20 46 4f 52 20 53 45 52 49 41 4c 20 4e ┆ ;LOOK FOR SERIAL N┆ 0x068820…068840 55 4d 42 45 52 0d 0a 20 30 32 43 41 20 32 31 30 30 30 30 30 31 30 30 09 09 4c 58 49 20 48 2c 30 ┆UMBER 02CA 2100000100 LXI H,0┆ 0x068840…068860 21 20 4c 58 49 20 42 2c 54 52 4c 45 4e 20 3b 54 52 41 43 4b 20 4c 45 4e 47 54 48 20 49 4e 20 42 ┆! LXI B,TRLEN ;TRACK LENGTH IN B┆ 0x068860…068880 2c 43 0d 0a 20 30 32 44 30 20 45 35 43 35 20 20 20 20 20 20 09 09 51 54 52 30 3a 20 50 55 53 48 ┆,C 02D0 E5C5 QTR0: PUSH┆ 0x068880…0688a0 20 48 21 20 50 55 53 48 20 42 20 3b 53 41 56 45 20 42 41 53 45 20 41 44 44 52 45 53 53 20 41 4e ┆ H! PUSH B ;SAVE BASE ADDRESS AN┆ 0x0688a0…0688c0 44 20 4c 45 4e 47 54 48 0d 0a 20 30 32 44 32 20 31 31 41 42 30 36 30 45 30 43 09 09 09 4c 58 49 ┆D LENGTH 02D2 11AB060E0C LXI┆ 0x0688c0…0688e0 20 44 2c 43 4f 4d 50 41 52 45 21 20 4d 56 49 20 43 2c 43 4f 4d 50 4c 45 4e 0d 0a 20 20 20 20 20 ┆ D,COMPARE! MVI C,COMPLEN ┆ 0x0688e0…068900 20 20 20 20 20 20 20 20 20 20 20 09 09 09 51 54 52 31 3a 20 3b 54 52 59 20 54 4f 20 4d 41 54 43 ┆ QTR1: ;TRY TO MATC┆ 0x068900…068920 48 20 41 4e 4f 54 48 45 52 20 43 48 41 52 0d 0a 20 30 32 44 37 20 45 35 43 44 32 45 30 34 31 41 ┆H ANOTHER CHAR 02D7 E5CD2E041A┆ 0x068920…068940 09 09 09 09 50 55 53 48 20 48 21 20 43 41 4c 4c 20 54 52 41 4e 53 4c 41 54 45 21 20 4c 44 41 58 ┆ PUSH H! CALL TRANSLATE! LDAX┆ 0x068940…068960 20 44 0d 0a 20 30 32 44 43 20 32 46 42 45 20 20 20 20 20 20 09 09 09 09 43 4d 41 21 20 43 4d 50 ┆ D 02DC 2FBE CMA! CMP┆ 0x068960…068980 20 4d 21 20 3b 46 4c 41 47 53 20 53 45 54 20 49 46 20 45 51 55 41 4c 0d 0a 20 30 32 44 45 20 45 ┆ M! ;FLAGS SET IF EQUAL 02DE E┆ 0x068980…0689a0 31 43 32 32 33 30 33 20 20 09 09 09 09 50 4f 50 20 48 21 20 4a 4e 5a 20 4e 4f 4d 41 54 33 0d 0a ┆1C22303 POP H! JNZ NOMAT3 ┆ 0x0689a0…0689c0 20 30 32 45 32 20 32 33 31 33 20 20 20 20 20 20 09 09 09 09 49 4e 58 20 48 21 20 49 4e 58 20 44 ┆ 02E2 2313 INX H! INX D┆ 0x0689c0…0689e0 21 0d 0a 20 30 32 45 34 20 45 35 43 44 32 45 30 34 31 41 09 09 09 09 50 55 53 48 20 48 21 20 43 ┆! 02E4 E5CD2E041A PUSH H! C┆ 0x0689e0…068a00 41 4c 4c 20 54 52 41 4e 53 4c 41 54 45 21 20 4c 44 41 58 20 44 0d 0a 20 30 32 45 39 20 32 46 42 ┆ALL TRANSLATE! LDAX D 02E9 2FB┆ 0x068a00…068a20 (27, 1, 13) 3a 31 30 30 31 30 30 30 30 43 33 42 43 30 31 34 33 34 46 35 30 35 39 35 32 34 39 34 37 34 38 35 ┆:10010000C3BC01434F5059524947485┆ 0x068a20…068a40 34 32 30 32 38 34 33 32 39 30 32 0d 0a 3a 31 30 30 31 31 30 30 30 32 30 33 31 33 39 33 38 33 30 ┆42028432902 :100110002031393830┆ 0x068a40…068a60 32 43 32 30 34 34 34 39 34 37 34 39 35 34 34 31 34 43 32 30 35 32 33 31 0d 0a 3a 31 30 30 31 32 ┆2C204449474954414C205231 :10012┆ 0x068a60…068a80 30 30 30 34 35 35 33 34 35 34 31 35 32 34 33 34 38 32 30 43 33 33 35 30 31 43 33 33 43 30 31 43 ┆0004553454152434820C33501C33C01C┆ 0x068a80…068aa0 33 34 37 42 31 0d 0a 3a 30 31 30 31 33 30 30 30 30 31 43 44 0d 0a 3a 31 30 30 31 33 35 30 30 41 ┆347B1 :0101300001CD :10013500A┆ 0x068aa0…068ac0 46 43 44 38 39 30 31 43 33 34 43 30 31 33 45 30 31 33 32 33 34 30 31 43 44 38 39 30 31 43 33 45 ┆FCD8901C34C013E01323401CD8901C3E┆ 0x068ac0…068ae0 34 0d 0a 3a 31 30 30 31 34 35 30 30 35 30 30 31 33 45 30 31 43 44 38 39 30 31 41 46 33 32 33 34 ┆4 :1001450050013E01CD8901AF3234┆ 0x068ae0…068b00 30 31 32 31 33 31 30 31 34 45 43 44 33 46 0d 0a 3a 31 30 30 31 35 35 30 30 39 32 30 31 32 41 33 ┆012131014ECD3F :1001550092012A3┆ 0x068b00…068b20 32 30 31 31 36 30 30 33 41 30 41 30 37 35 46 44 35 45 35 34 41 43 44 39 41 37 46 0d 0a 3a 31 30 ┆20116003A0A075FD5E54ACD9A7F :10┆ 0x068b20…068b40 30 31 36 35 30 30 30 31 43 31 43 35 43 44 41 32 30 31 33 41 33 34 30 31 42 37 43 32 37 38 30 31 ┆01650001C1C5CDA2013A3401B7C27801┆ 0x068b40…068b60 43 44 41 41 30 31 42 41 0d 0a 3a 31 30 30 31 37 35 30 30 43 33 37 42 30 31 43 44 42 32 30 31 45 ┆CDAA01BA :10017500C37B01CDB201E┆ 0x068b60…068b80 31 31 31 38 30 30 30 31 39 44 31 31 34 42 37 43 30 31 44 42 37 0d 0a 3a 31 30 30 31 38 35 30 30 ┆111800019D114B7C01DB7 :10018500┆ 0x068b80…068ba0 43 32 36 30 30 31 43 39 34 46 32 41 30 31 30 30 31 31 31 38 30 30 31 39 45 39 32 41 30 31 30 30 ┆C26001C94F2A010011180019E92A0100┆ 0x068ba0…068bc0 41 45 0d 0a 3a 31 30 30 31 39 35 30 30 31 31 31 42 30 30 31 39 45 39 32 41 30 31 30 30 31 31 31 ┆AE :10019500111B0019E92A0100111┆ 0x068bc0…068be0 45 30 30 31 39 45 39 32 41 30 31 30 30 41 35 0d 0a 3a 31 30 30 31 41 35 30 30 31 31 32 31 30 30 ┆E0019E92A0100A5 :1001A500112100┆ 0x068be0…068c00 31 39 45 39 32 41 30 31 30 30 31 31 32 34 30 30 31 39 45 39 32 41 30 31 30 30 38 39 0d 0a 3a 31 ┆19E92A010011240019E92A010089 :1┆ 0x068c00…068c20 (27, 1, 14) 4f 46 20 54 48 45 20 4f 52 49 47 49 4e 0d 0a 20 30 31 45 33 20 31 41 42 37 43 41 45 46 30 31 09 ┆OF THE ORIGIN 01E3 1AB7CAEF01 ┆ 0x068c20…068c40 4f 52 47 32 3a 20 4c 44 41 58 20 44 21 20 4f 52 41 20 41 21 20 4a 5a 20 4f 52 47 33 0d 0a 20 30 ┆ORG2: LDAX D! ORA A! JZ ORG3 0┆ 0x068c40…068c60 31 45 38 20 31 33 37 37 32 33 30 35 43 32 09 09 49 4e 58 20 44 21 20 4d 4f 56 20 4d 2c 41 21 20 ┆1E8 13772305C2 INX D! MOV M,A! ┆ 0x068c60…068c80 49 4e 58 20 48 21 20 44 43 52 20 42 21 20 4a 4e 5a 20 4f 52 47 32 0d 0a 20 20 20 20 20 20 20 20 ┆INX H! DCR B! JNZ ORG2 ┆ 0x068c80…068ca0 20 20 20 20 20 20 20 20 09 09 3b 41 53 43 49 49 20 56 45 52 53 49 4f 4e 20 4d 4f 56 45 44 20 54 ┆ ;ASCII VERSION MOVED T┆ 0x068ca0…068cc0 4f 20 42 55 46 46 45 52 2c 20 50 41 44 20 49 54 0d 0a 20 30 31 45 46 20 33 36 32 44 32 33 33 36 ┆O BUFFER, PAD IT 01EF 362D2336┆ 0x068cc0…068ce0 32 34 09 4f 52 47 33 3a 09 4d 56 49 20 4d 2c 27 2d 27 21 20 49 4e 58 20 48 21 20 4d 56 49 20 4d ┆24 ORG3: MVI M,'-'! INX H! MVI M┆ 0x068ce0…068d00 2c 27 24 27 20 3b 52 45 41 44 59 20 46 4f 52 20 50 52 49 4e 54 49 4e 47 0d 0a 20 20 20 20 20 20 ┆,'$' ;READY FOR PRINTING ┆ 0x068d00…068d20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 09 4e ┆ ; ; N┆ 0x068d20…068d40 4f 57 20 52 45 41 44 20 54 48 45 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 0d 0a 20 30 31 46 34 ┆OW READ THE SERIAL NUMBER 01F4┆ 0x068d40…068d60 20 43 44 45 35 30 34 43 44 43 43 09 43 41 4c 4c 20 53 45 52 4d 53 47 21 20 43 41 4c 4c 20 52 45 ┆ CDE504CDCC CALL SERMSG! CALL RE┆ 0x068d60…068d80 41 44 0d 0a 20 30 31 46 41 20 32 31 41 33 30 36 37 31 32 33 09 4c 58 49 20 48 2c 42 53 45 52 49 ┆AD 01FA 21A3067123 LXI H,BSERI┆ 0x068d80…068da0 41 4c 21 20 4d 4f 56 20 4d 2c 43 21 20 49 4e 58 20 48 21 20 4d 4f 56 20 4d 2c 42 20 3b 42 49 4e ┆AL! MOV M,C! INX H! MOV M,B ;BIN┆ 0x068da0…068dc0 41 52 59 20 43 4f 50 49 45 44 0d 0a 20 30 32 30 30 20 32 31 43 34 30 36 33 45 30 35 09 4c 58 49 ┆ARY COPIED 0200 21C4063E05 LXI┆ 0x068dc0…068de0 20 48 2c 43 4f 4d 4c 45 4e 21 20 4d 56 49 20 41 2c 35 21 20 53 55 42 20 4d 20 3b 44 49 46 46 45 ┆ H,COMLEN! MVI A,5! SUB M ;DIFFE┆ 0x068de0…068e00 52 45 4e 43 45 20 49 4e 20 52 45 47 2d 41 0d 0a 20 30 32 30 36 20 32 31 41 35 30 36 43 41 31 33 ┆RENCE IN REG-A 0206 21A506CA13┆ 0x068e00…068e20 (27, 1, 15) 4f 4d 50 30 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 3b 4d 41 54 43 48 20 43 ┆OMP0 ;MATCH C┆ 0x068e20…068e40 4f 4d 50 4c 45 54 45 2c 20 57 45 20 48 41 56 45 20 46 4f 55 4e 44 20 54 48 45 20 53 45 52 49 41 ┆OMPLETE, WE HAVE FOUND THE SERIA┆ 0x068e40…068e60 4c 20 4e 55 4d 42 45 52 0d 0a 20 30 32 38 30 20 43 31 44 31 20 20 20 20 20 20 09 09 50 4f 50 20 ┆L NUMBER 0280 C1D1 POP ┆ 0x068e60…068e80 42 21 20 50 4f 50 20 44 20 3b 43 4c 45 41 52 53 20 53 54 41 43 4b 0d 0a 20 30 32 38 32 20 45 35 ┆B! POP D ;CLEARS STACK 0282 E5┆ 0x068e80…068ea0 20 20 20 20 20 20 20 20 09 09 50 55 53 48 20 48 20 3b 53 41 56 45 20 41 20 43 4f 50 59 20 4f 46 ┆ PUSH H ;SAVE A COPY OF┆ 0x068ea0…068ec0 20 54 48 45 20 53 54 41 52 54 20 41 44 44 52 45 53 53 20 4f 46 20 54 48 45 20 53 45 52 20 23 0d ┆ THE START ADDRESS OF THE SER # ┆ 0x068ec0…068ee0 0a 20 30 32 38 33 20 45 42 32 41 38 33 30 36 45 42 09 09 78 63 68 67 20 21 20 6c 68 6c 64 20 4f ┆ 0283 EB2A8306EB xchg ! lhld O┆ 0x068ee0…068f00 52 49 47 49 4e 21 20 78 63 68 67 21 20 4d 4f 56 20 4d 2c 65 20 3b 20 6c 6f 77 20 62 79 74 65 28 ┆RIGIN! xchg! MOV M,e ; low byte(┆ 0x068f00…068f20 6f 72 69 67 69 6e 29 0d 0a 20 30 32 38 39 20 32 33 33 36 31 36 20 20 20 20 09 09 49 4e 58 20 48 ┆origin) 0289 233616 INX H┆ 0x068f20…068f40 21 20 4d 56 49 20 4d 2c 56 45 52 53 49 4f 4e 20 3b 56 45 52 53 49 4f 4e 20 4e 55 4d 42 45 52 20 ┆! MVI M,VERSION ;VERSION NUMBER ┆ 0x068f40…068f60 49 4e 20 42 49 4e 41 52 59 0d 0a 20 30 32 38 43 20 32 33 37 32 20 20 20 20 20 20 09 09 69 6e 78 ┆IN BINARY 028C 2372 inx┆ 0x068f60…068f80 20 68 21 20 6d 6f 76 20 6d 2c 64 20 3b 20 68 69 67 68 20 62 79 74 65 28 6f 72 69 67 69 6e 29 0d ┆ h! mov m,d ; high byte(origin) ┆ 0x068f80…068fa0 0a 20 30 32 38 45 20 32 33 33 36 30 30 20 20 20 20 09 09 09 49 4e 58 20 48 21 20 4d 76 69 20 4d ┆ 028E 233600 INX H! Mvi M┆ 0x068fa0…068fc0 2c 30 20 3b 20 6e 65 78 74 20 62 79 74 65 20 7a 65 72 6f 65 64 20 28 6e 6f 74 20 75 73 65 64 20 ┆,0 ; next byte zeroed (not used ┆ 0x068fc0…068fe0 79 65 74 29 0d 0a 20 30 32 39 31 20 32 33 20 20 20 20 20 20 20 20 09 09 09 49 4e 58 20 48 20 3b ┆yet) 0291 23 INX H ;┆ 0x068fe0…069000 52 45 41 44 59 20 54 4f 20 41 43 43 45 50 54 20 54 48 45 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 ┆READY TO ACCEPT THE SERIAL NUMBE┆ 0x069000…069020 (28, 0, 1) 45 45 31 43 32 32 33 09 09 09 09 43 4d 41 21 20 43 4d 50 20 4d 21 20 50 4f 50 20 48 21 20 4a 4e ┆EE1C223 CMA! CMP M! POP H! JN┆ 0x069020…069040 5a 20 4e 4f 4d 41 54 33 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 09 09 3b 43 ┆Z NOMAT3 ;C┆ 0x069040…069060 4f 4e 54 49 4e 55 45 20 54 4f 20 4d 41 54 43 48 0d 0a 20 30 32 45 46 20 32 33 31 33 30 44 43 32 ┆ONTINUE TO MATCH 02EF 23130DC2┆ 0x069060…069080 44 37 09 09 09 09 49 4e 58 20 48 21 20 49 4e 58 20 44 21 20 44 43 52 20 43 21 20 4a 4e 5a 20 51 ┆D7 INX H! INX D! DCR C! JNZ Q┆ 0x069080…0690a0 54 52 31 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 09 3b 43 4f 4d 50 4c 45 54 ┆TR1 ;COMPLET┆ 0x0690a0…0690c0 45 20 4d 41 54 43 48 2c 20 46 49 4c 4c 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 53 0d 0a 20 30 ┆E MATCH, FILL SERIAL NUMBERS 0┆ 0x0690c0…0690e0 32 46 35 20 43 31 44 31 20 20 20 20 20 20 09 09 09 50 4f 50 20 42 21 20 50 4f 50 20 44 20 3b 54 ┆2F5 C1D1 POP B! POP D ;T┆ 0x0690e0…069100 4f 20 43 4c 45 41 52 20 54 48 45 20 53 54 41 43 4b 0d 0a 20 30 32 46 37 20 45 35 20 20 20 20 20 ┆O CLEAR THE STACK 02F7 E5 ┆ 0x069100…069120 20 20 20 09 09 09 50 55 53 48 20 48 20 3b 53 41 56 45 20 53 4f 55 52 43 45 20 41 44 44 52 45 53 ┆ PUSH H ;SAVE SOURCE ADDRES┆ 0x069120…069140 53 0d 0a 20 30 32 46 38 20 43 44 35 43 30 34 20 20 20 20 09 09 09 43 41 4c 4c 20 53 54 53 45 52 ┆S 02F8 CD5C04 CALL STSER┆ 0x069140…069160 49 41 4c 20 3b 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 20 53 54 4f 52 45 44 0d 0a 20 30 32 46 42 ┆IAL ;SERIAL NUMBER STORED 02FB┆ 0x069160…069180 20 45 31 20 20 20 20 20 20 20 20 09 09 09 50 4f 50 20 48 20 3b 52 45 43 41 4c 4c 20 53 4f 55 52 ┆ E1 POP H ;RECALL SOUR┆ 0x069180…0691a0 43 45 20 41 44 44 52 45 53 53 0d 0a 20 30 32 46 43 20 45 42 32 41 43 45 30 36 31 39 09 09 09 58 ┆CE ADDRESS 02FC EB2ACE0619 X┆ 0x0691a0…0691c0 43 48 47 21 20 4c 48 4c 44 20 53 44 49 46 46 21 20 44 41 44 20 44 20 3b 48 2c 4c 20 53 48 4f 55 ┆CHG! LHLD SDIFF! DAD D ;H,L SHOU┆ 0x0691c0…0691e0 4c 44 20 41 44 44 52 45 53 53 20 53 45 52 23 32 0d 0a 20 30 33 30 31 20 37 44 42 37 43 32 32 43 ┆LD ADDRESS SER#2 0301 7DB7C22C┆ 0x0691e0…069200 30 33 09 09 09 4d 4f 56 20 41 2c 4c 21 20 4f 52 41 20 41 21 20 4a 4e 5a 20 51 54 52 32 20 3b 4d ┆03 MOV A,L! ORA A! JNZ QTR2 ;M┆ 0x069200…069220 (28, 0, 2) 43 32 09 09 09 49 4e 58 20 48 21 20 44 43 58 20 42 21 20 4d 4f 56 20 41 2c 43 21 20 4f 52 41 20 ┆C2 INX H! DCX B! MOV A,C! ORA ┆ 0x069220…069240 42 21 20 4a 4e 5a 20 54 52 43 4f 4d 50 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 ┆B! JNZ TRCOMP ┆ 0x069240…069260 09 3b 45 4e 44 20 4f 46 20 43 4f 50 59 2c 20 41 4c 4c 20 30 45 35 48 27 53 0d 0a 20 30 33 35 37 ┆ ;END OF COPY, ALL 0E5H'S 0357┆ 0x069260…069280 20 33 41 43 44 30 36 42 37 43 41 09 09 4c 44 41 20 53 54 52 41 43 4b 21 20 4f 52 41 20 41 21 20 ┆ 3ACD06B7CA LDA STRACK! ORA A! ┆ 0x069280…0692a0 4a 5a 20 45 4e 44 43 4f 50 59 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 09 3b ┆JZ ENDCOPY ;┆ 0x0692a0…0692c0 4e 4f 54 20 5a 45 52 4f 2c 20 43 4f 55 4c 44 20 4e 4f 54 20 46 49 4e 44 20 53 45 43 4f 4e 44 20 ┆NOT ZERO, COULD NOT FIND SECOND ┆ 0x0692c0…0692e0 53 45 52 20 4e 55 4d 42 45 52 0d 0a 20 30 33 35 45 20 43 44 37 38 30 35 43 33 32 31 09 09 09 43 ┆SER NUMBER 035E CD7805C321 C┆ 0x0692e0…069300 41 4c 4c 20 42 41 44 43 4f 4d 21 20 4a 4d 50 20 52 44 44 53 4b 0d 0a 20 20 20 20 20 20 20 20 20 ┆ALL BADCOM! JMP RDDSK ┆ 0x069300…069320 20 20 20 20 20 20 20 09 09 45 4e 44 43 4f 50 59 3a 0d 0a 20 30 33 36 34 20 31 31 38 45 30 36 43 ┆ ENDCOPY: 0364 118E06C┆ 0x069320…069340 44 43 34 09 09 4c 58 49 20 44 2c 54 52 4d 53 47 21 20 43 41 4c 4c 20 50 52 4d 53 47 0d 0a 20 30 ┆DC4 LXI D,TRMSG! CALL PRMSG 0┆ 0x069340…069360 33 36 41 20 43 44 30 42 30 34 43 33 32 37 09 09 43 41 4c 4c 20 49 4e 43 53 45 52 49 41 4c 21 20 ┆36A CD0B04C327 CALL INCSERIAL! ┆ 0x069360…069380 4a 4d 50 20 4e 45 58 54 44 49 53 4b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 3b ┆JMP NEXTDISK ;┆ 0x069380…0693a0 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 3b 4e 4f 54 20 45 4e 44 20 4f 46 20 43 ┆ ;NOT END OF C┆ 0x0693a0…0693c0 4f 50 59 2c 20 57 52 49 54 45 20 54 52 41 43 4b 20 54 4f 20 44 49 53 4b 20 46 52 4f 4d 20 49 42 ┆OPY, WRITE TRACK TO DISK FROM IB┆ 0x0693c0…0693e0 55 46 46 0d 0a 20 30 33 37 30 20 43 44 32 42 30 31 20 20 20 20 09 57 52 54 52 4b 3a 09 43 41 4c ┆UFF 0370 CD2B01 WRTRK: CAL┆ 0x0693e0…069400 4c 20 57 52 49 54 54 52 4b 0d 0a 20 30 33 37 33 20 43 41 37 43 30 33 43 44 33 33 09 09 4a 5a 20 ┆L WRITTRK 0373 CA7C03CD33 JZ ┆ 0x069400…069420 (28, 0, 3) 4f 56 20 41 2c 4d 21 20 4f 52 41 20 41 21 20 52 5a 20 3b 52 45 54 55 52 4e 20 49 46 20 45 4e 44 ┆OV A,M! ORA A! RZ ;RETURN IF END┆ 0x069420…069440 20 4f 46 20 43 4f 4e 56 45 52 54 0d 0a 20 30 33 45 43 20 44 36 33 30 46 45 30 41 44 32 09 09 53 ┆ OF CONVERT 03EC D630FE0AD2 S┆ 0x069440…069460 55 49 20 27 30 27 21 20 43 50 49 20 31 30 21 20 4a 4e 43 20 52 44 45 52 52 0d 0a 20 30 33 46 33 ┆UI '0'! CPI 10! JNC RDERR 03F3┆ 0x069460…069480 20 45 35 43 35 45 31 20 20 20 20 09 09 50 55 53 48 20 48 21 20 50 55 53 48 20 42 21 20 50 4f 50 ┆ E5C5E1 PUSH H! PUSH B! POP┆ 0x069480…0694a0 20 48 20 3b 42 2c 43 20 43 4f 50 49 45 44 20 54 4f 20 48 2c 4c 0d 0a 20 30 33 46 36 20 32 39 32 ┆ H ;B,C COPIED TO H,L 03F6 292┆ 0x0694a0…0694c0 39 32 39 30 39 30 39 09 09 44 41 44 20 48 21 20 44 41 44 20 48 21 20 44 41 44 20 48 21 20 44 41 ┆9290909 DAD H! DAD H! DAD H! DA┆ 0x0694c0…0694e0 44 20 42 21 20 44 41 44 20 42 0d 0a 20 30 33 46 42 20 45 35 43 31 45 31 20 20 20 20 09 09 50 55 ┆D B! DAD B 03FB E5C1E1 PU┆ 0x0694e0…069500 53 48 20 48 21 20 50 4f 50 20 42 21 20 50 4f 50 20 48 20 3b 42 43 3d 42 43 2a 31 30 0d 0a 20 30 ┆SH H! POP B! POP H ;BC=BC*10 0┆ 0x069500…069520 33 46 45 20 32 33 38 31 34 46 33 45 30 30 09 09 49 4e 58 20 48 21 20 41 44 44 20 43 21 20 4d 4f ┆3FE 23814F3E00 INX H! ADD C! MO┆ 0x069520…069540 56 20 43 2c 41 21 20 4d 56 49 20 41 2c 30 21 20 41 44 43 20 42 21 20 4d 4f 56 20 42 2c 41 0d 0a ┆V C,A! MVI A,0! ADC B! MOV B,A ┆ 0x069540…069560 20 30 34 30 35 20 44 41 43 39 30 33 43 33 45 39 09 09 4a 43 20 52 44 45 52 52 21 20 4a 4d 50 20 ┆ 0405 DAC903C3E9 JC RDERR! JMP ┆ 0x069560…069580 43 4f 4e 56 20 3b 54 45 53 54 45 44 20 46 4f 52 20 4f 56 45 52 46 4c 4f 57 0d 0a 20 20 20 20 20 ┆CONV ;TESTED FOR OVERFLOW ┆ 0x069580…0695a0 20 20 20 20 20 20 20 20 20 20 20 09 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 ┆ ; I┆ 0x0695a0…0695c0 4e 43 53 45 52 49 41 4c 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 3b 49 4e 43 ┆NCSERIAL: ;INC┆ 0x0695c0…0695e0 52 45 4d 45 4e 54 20 54 48 45 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 0d 0a 20 30 34 30 42 20 ┆REMENT THE SERIAL NUMBER 040B ┆ 0x0695e0…069600 32 41 41 33 30 36 32 33 32 32 09 4c 48 4c 44 20 42 53 45 52 49 41 4c 21 20 49 4e 58 20 48 21 20 ┆2AA3062322 LHLD BSERIAL! INX H! ┆ 0x069600…069620 (28, 0, 4) 30 43 34 30 36 37 45 42 37 43 41 43 39 30 33 32 33 35 46 31 36 30 30 31 39 33 36 30 30 32 31 43 ┆0C4067EB7CAC903235F160019360021C┆ 0x069620…069640 35 42 36 0d 0a 3a 31 30 30 33 45 35 30 30 30 36 30 31 30 30 30 30 37 45 42 37 43 38 44 36 33 30 ┆5B6 :1003E500060100007EB7C8D630┆ 0x069640…069660 46 45 30 41 44 32 43 39 30 33 45 35 43 35 41 45 0d 0a 3a 31 30 30 33 46 35 30 30 45 31 32 39 32 ┆FE0AD2C903E5C5AE :1003F500E1292┆ 0x069660…069680 39 32 39 30 39 30 39 45 35 43 31 45 31 32 33 38 31 34 46 33 45 30 30 38 38 34 37 30 33 0d 0a 3a ┆9290909E5C1E123814F3E00884703 :┆ 0x069680…0696a0 31 30 30 34 30 35 30 30 44 41 43 39 30 33 43 33 45 39 30 33 32 41 41 33 30 36 32 33 32 32 41 33 ┆10040500DAC903C3E9032AA3062322A3┆ 0x0696a0…0696c0 30 36 37 44 42 34 43 41 44 36 0d 0a 3a 31 30 30 34 31 35 30 30 32 38 30 34 32 31 41 39 30 36 30 ┆067DB4CAD6 :10041500280421A9060┆ 0x0696c0…0696e0 36 30 35 33 34 37 45 46 45 33 41 44 38 33 36 33 30 32 42 30 35 37 38 0d 0a 3a 31 30 30 34 32 35 ┆605347EFE3AD836302B0578 :100425┆ 0x0696e0…069700 30 30 43 32 31 43 30 34 43 44 45 45 30 35 43 33 30 30 30 30 44 35 37 44 45 36 37 46 35 46 37 44 ┆00C21C04CDEE05C30000D57DE67F5F7D┆ 0x069700…069720 31 37 42 38 0d 0a 3a 31 30 30 34 33 35 30 30 37 43 31 37 36 46 32 36 30 30 44 35 31 31 44 30 30 ┆17B8 :100435007C176F2600D511D00┆ 0x069720…069740 36 31 39 44 31 41 46 37 45 33 44 31 46 36 37 46 39 0d 0a 3a 31 30 30 34 34 35 30 30 33 45 30 30 ┆619D1AF7E3D1F67F9 :100445003E00┆ 0x069740…069760 31 46 42 33 36 46 31 31 30 42 30 37 31 39 44 31 43 39 45 35 44 35 46 35 43 44 32 45 41 38 0d 0a ┆1FB36F110B0719D1C9E5D5F5CD2EA8 ┆ 0x069760…069780 3a 31 30 30 34 35 35 30 30 30 34 46 31 37 37 44 31 45 31 32 33 43 39 33 41 38 33 30 36 43 44 35 ┆:1004550004F177D1E123C93A8306CD5┆ 0x069780…0697a0 30 30 34 33 45 31 36 43 44 38 38 0d 0a 3a 31 30 30 34 36 35 30 30 35 30 30 34 33 41 38 34 30 36 ┆0043E16CD88 :1004650050043A8406┆ 0x0697a0…0697c0 43 44 35 30 30 34 41 46 43 44 35 30 30 34 31 31 41 34 30 36 31 41 41 39 0d 0a 3a 31 30 30 34 37 ┆CD5004AFCD500411A4061AA9 :10047┆ 0x0697c0…0697e0 35 30 30 43 44 35 30 30 34 31 42 31 41 43 44 35 30 30 34 43 39 31 31 38 34 30 34 43 33 43 34 30 ┆500CD50041B1ACD5004C9118404C3C40┆ 0x0697e0…069800 33 30 44 30 37 0d 0a 3a 31 30 30 34 38 35 30 30 30 41 34 39 34 45 35 33 34 35 35 32 35 34 32 30 ┆30D07 :100485000A494E5345525420┆ 0x069800…069820 (28, 0, 5) 55 53 54 20 42 45 20 4c 4f 57 20 5a 45 52 4f 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆UST BE LOW ZERO ┆ 0x069820…069840 20 09 09 09 3b 53 45 54 55 50 20 53 54 52 41 43 4b 20 54 4f 20 53 45 52 49 41 4c 49 5a 45 20 57 ┆ ;SETUP STRACK TO SERIALIZE W┆ 0x069840…069860 48 45 4e 20 50 52 4f 50 45 52 20 54 52 4b 20 46 4f 55 4e 44 0d 0a 20 30 33 30 36 20 45 42 32 31 ┆HEN PROPER TRK FOUND 0306 EB21┆ 0x069860…069880 43 44 30 36 20 20 09 09 09 58 43 48 47 21 20 4c 58 49 20 48 2c 53 54 52 41 43 4b 20 3b 44 49 46 ┆CD06 XCHG! LXI H,STRACK ;DIF┆ 0x069880…0698a0 46 45 52 45 4e 43 45 20 49 4e 20 44 2c 45 0d 0a 20 30 33 30 41 20 33 36 30 30 20 20 20 20 20 20 ┆FERENCE IN D,E 030A 3600 ┆ 0x0698a0…0698c0 09 09 09 4d 56 49 20 4d 2c 30 20 3b 43 4f 55 4e 54 20 53 54 52 41 43 4b 20 55 50 20 46 4f 52 20 ┆ MVI M,0 ;COUNT STRACK UP FOR ┆ 0x0698c0…0698e0 45 41 43 48 20 54 52 41 43 4b 20 53 49 5a 45 0d 0a 20 30 33 30 43 20 33 34 20 20 20 20 20 20 20 ┆EACH TRACK SIZE 030C 34 ┆ 0x0698e0…069900 20 09 09 09 44 4c 4f 4f 50 3a 20 49 4e 52 20 4d 20 3b 53 54 52 41 43 4b 20 3d 20 53 54 52 41 43 ┆ DLOOP: INR M ;STRACK = STRAC┆ 0x069900…069920 4b 20 2b 20 31 0d 0a 20 30 33 30 44 20 37 42 44 36 30 30 20 20 20 20 09 09 09 09 4d 4f 56 20 41 ┆K + 1 030D 7BD600 MOV A┆ 0x069920…069940 2c 45 21 20 53 55 49 20 28 32 36 2a 31 32 38 29 20 41 4e 44 20 30 46 46 48 0d 0a 20 30 33 31 30 ┆,E! SUI (26*128) AND 0FFH 0310┆ 0x069940…069960 20 34 37 20 20 20 20 20 20 20 20 09 09 09 09 4d 4f 56 20 42 2c 41 20 3b 53 41 56 45 20 4c 4f 57 ┆ 47 MOV B,A ;SAVE LOW┆ 0x069960…069980 20 4f 52 44 45 52 20 44 49 46 46 45 52 45 4e 43 45 0d 0a 20 30 33 31 31 20 37 41 44 45 30 44 20 ┆ ORDER DIFFERENCE 0311 7ADE0D ┆ 0x069980…0699a0 20 20 20 09 09 09 09 4d 4f 56 20 41 2c 44 21 20 53 42 49 20 28 32 36 2a 31 32 38 29 20 53 48 52 ┆ MOV A,D! SBI (26*128) SHR┆ 0x0699a0…0699c0 20 38 0d 0a 20 30 33 31 34 20 44 41 31 43 30 33 20 20 20 20 09 09 09 09 4a 43 20 45 44 4c 4f 4f ┆ 8 0314 DA1C03 JC EDLOO┆ 0x0699c0…0699e0 50 20 3b 43 41 52 52 59 20 49 46 20 54 4f 4f 20 4d 41 4e 59 20 53 55 42 54 52 41 43 54 53 0d 0a ┆P ;CARRY IF TOO MANY SUBTRACTS ┆ 0x0699e0…069a00 20 30 33 31 37 20 35 37 35 38 20 20 20 20 20 20 09 09 09 09 4d 4f 56 20 44 2c 41 21 20 4d 4f 56 ┆ 0317 5758 MOV D,A! MOV┆ 0x069a00…069a20 (28, 0, 6) 57 52 4f 4b 21 20 43 41 4c 4c 20 57 52 49 54 45 30 4d 53 47 21 20 4a 4d 50 20 4e 45 58 54 44 49 ┆WROK! CALL WRITE0MSG! JMP NEXTDI┆ 0x069a20…069a40 53 4b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 57 52 4f 4b 3a 0d 0a 20 20 20 20 ┆SK WROK: ┆ 0x069a40…069a60 20 20 20 20 20 20 20 20 20 20 20 20 09 09 3b 57 52 49 54 54 45 4e 20 54 4f 20 44 49 53 4b 2c 20 ┆ ;WRITTEN TO DISK, ┆ 0x069a60…069a80 4e 4f 57 20 52 45 41 44 20 49 54 20 42 41 43 4b 20 41 4e 44 20 43 4f 4d 50 41 52 45 0d 0a 20 30 ┆NOW READ IT BACK AND COMPARE 0┆ 0x069a80…069aa0 33 37 43 20 32 31 30 42 34 33 32 32 33 32 09 09 4c 58 49 20 48 2c 4f 42 55 46 46 21 20 53 48 4c ┆37C 210B432232 LXI H,OBUFF! SHL┆ 0x069aa0…069ac0 44 20 42 55 46 46 41 21 20 43 41 4c 4c 20 52 45 52 45 41 44 0d 0a 20 30 33 38 35 20 43 41 38 45 ┆D BUFFA! CALL REREAD 0385 CA8E┆ 0x069ac0…069ae0 30 33 43 44 35 41 09 09 09 4a 5a 20 52 45 41 44 31 4f 4b 21 20 43 41 4c 4c 20 52 45 41 44 31 4d ┆03CD5A JZ READ1OK! CALL READ1M┆ 0x069ae0…069b00 53 47 21 20 4a 4d 50 20 4e 45 58 54 44 49 53 4b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆SG! JMP NEXTDISK ┆ 0x069b00…069b20 20 20 09 09 52 45 41 44 31 4f 4b 3a 0d 0a 20 30 33 38 45 20 32 31 30 42 30 37 31 31 30 42 09 09 ┆ READ1OK: 038E 210B07110B ┆ 0x069b20…069b40 4c 58 49 20 48 2c 49 42 55 46 46 21 20 4c 58 49 20 44 2c 4f 42 55 46 46 21 20 4c 58 49 20 42 2c ┆LXI H,IBUFF! LXI D,OBUFF! LXI B,┆ 0x069b40…069b60 54 52 4c 45 4e 0d 0a 20 30 33 39 37 20 31 41 42 45 43 32 42 39 30 33 09 09 57 52 43 4f 4d 50 3a ┆TRLEN 0397 1ABEC2B903 WRCOMP:┆ 0x069b60…069b80 20 4c 44 41 58 20 44 21 20 43 4d 50 20 4d 21 20 4a 4e 5a 20 57 52 45 52 52 0d 0a 20 30 33 39 43 ┆ LDAX D! CMP M! JNZ WRERR 039C┆ 0x069b80…069ba0 20 32 33 31 33 30 42 37 39 42 30 09 09 09 49 4e 58 20 48 21 20 49 4e 58 20 44 21 20 44 43 58 20 ┆ 23130B79B0 INX H! INX D! DCX ┆ 0x069ba0…069bc0 42 21 20 4d 4f 56 20 41 2c 43 21 20 4f 52 41 20 42 0d 0a 20 30 33 41 31 20 43 32 39 37 30 33 20 ┆B! MOV A,C! ORA B 03A1 C29703 ┆ 0x069bc0…069be0 20 20 20 09 09 09 4a 4e 5a 20 57 52 43 4f 4d 50 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ JNZ WRCOMP ┆ 0x069be0…069c00 20 20 09 09 3b 43 4f 4d 50 41 52 45 20 57 45 4e 54 20 4f 4b 2c 20 49 4e 43 52 45 4d 45 4e 54 20 ┆ ;COMPARE WENT OK, INCREMENT ┆ 0x069c00…069c20 (28, 0, 7) 53 48 4c 44 20 42 53 45 52 49 41 4c 20 3b 54 45 53 54 20 46 4f 52 20 4f 56 45 52 46 4c 4f 57 0d ┆SHLD BSERIAL ;TEST FOR OVERFLOW ┆ 0x069c20…069c40 0a 20 30 34 31 32 20 37 44 42 34 43 41 32 38 30 34 09 4d 4f 56 20 41 2c 4c 21 20 4f 52 41 20 48 ┆ 0412 7DB4CA2804 MOV A,L! ORA H┆ 0x069c40…069c60 21 20 4a 5a 20 53 45 52 4f 56 45 52 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 3b ┆! JZ SEROVER ;┆ 0x069c60…069c80 0d 0a 20 30 34 31 37 20 32 31 41 39 30 36 30 36 30 35 09 4c 58 49 20 48 2c 41 53 45 52 49 41 4c ┆ 0417 21A9060605 LXI H,ASERIAL┆ 0x069c80…069ca0 2b 34 21 20 4d 56 49 20 42 2c 35 20 3b 4c 45 4e 47 54 48 20 4f 46 20 53 45 52 49 41 4c 20 4e 55 ┆+4! MVI B,5 ;LENGTH OF SERIAL NU┆ 0x069ca0…069cc0 4d 42 45 52 0d 0a 20 30 34 31 43 20 33 34 37 45 46 45 33 41 44 38 09 49 4e 43 30 3a 09 49 4e 52 ┆MBER 041C 347EFE3AD8 INC0: INR┆ 0x069cc0…069ce0 20 4d 21 20 4d 4f 56 20 41 2c 4d 21 20 43 50 49 20 27 39 27 2b 31 21 20 52 43 20 3b 52 45 54 55 ┆ M! MOV A,M! CPI '9'+1! RC ;RETU┆ 0x069ce0…069d00 52 4e 20 49 46 20 4e 4f 20 43 41 52 52 59 0d 0a 20 30 34 32 31 20 33 36 33 30 20 20 20 20 20 20 ┆RN IF NO CARRY 0421 3630 ┆ 0x069d00…069d20 09 09 4d 56 49 20 4d 2c 27 30 27 20 3b 43 4c 45 41 52 20 54 48 45 20 4e 55 4d 42 45 52 0d 0a 20 ┆ MVI M,'0' ;CLEAR THE NUMBER ┆ 0x069d20…069d40 30 34 32 33 20 32 42 30 35 43 32 31 43 30 34 09 09 44 43 58 20 48 21 20 44 43 52 20 42 21 20 4a ┆0423 2B05C21C04 DCX H! DCR B! J┆ 0x069d40…069d60 4e 5a 20 49 4e 43 30 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 3b 0d 0a 20 20 20 ┆NZ INC0 ; ┆ 0x069d60…069d80 20 20 20 20 20 20 20 20 20 20 20 20 20 09 53 45 52 4f 56 45 52 3a 0d 0a 20 20 20 20 20 20 20 20 ┆ SEROVER: ┆ 0x069d80…069da0 20 20 20 20 20 20 20 20 09 09 3b 4f 56 45 52 46 4c 4f 57 20 49 4e 20 53 45 52 49 41 4c 20 4e 55 ┆ ;OVERFLOW IN SERIAL NU┆ 0x069da0…069dc0 4d 42 45 52 0d 0a 20 30 34 32 38 20 43 44 45 45 30 35 20 20 20 20 09 09 43 41 4c 4c 20 4f 56 45 ┆MBER 0428 CDEE05 CALL OVE┆ 0x069dc0…069de0 52 4d 53 47 0d 0a 20 30 34 32 42 20 43 33 30 30 30 30 20 20 20 20 09 09 4a 4d 50 20 42 4f 4f 54 ┆RMSG 042B C30000 JMP BOOT┆ 0x069de0…069e00 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 ┆ ; ┆ 0x069e00…069e20 (28, 0, 8) 34 33 34 46 34 45 35 34 35 32 34 46 34 43 32 30 32 37 0d 0a 3a 31 30 30 34 39 35 30 30 34 34 34 ┆434F4E54524F4C2027 :10049500444┆ 0x069e20…069e40 39 35 33 34 42 34 35 35 34 35 34 34 35 32 30 34 39 34 45 32 30 34 31 32 43 32 30 35 34 34 32 0d ┆9534B4554544520494E20412C205442 ┆ 0x069e40…069e60 0a 3a 31 30 30 34 41 35 30 30 35 39 35 30 34 35 32 30 35 32 34 35 35 34 35 35 35 32 34 45 32 34 ┆ :1004A5005950452052455455524E24┆ 0x069e60…069e80 31 31 42 36 30 34 43 33 43 34 45 33 0d 0a 3a 31 30 30 34 42 35 30 30 30 33 30 44 30 41 34 33 35 ┆11B604C3C4E3 :1004B500030D0A435┆ 0x069e80…069ea0 30 32 46 34 44 32 30 35 36 34 35 35 32 32 30 33 32 32 45 33 32 32 30 32 46 0d 0a 3a 31 30 30 34 ┆02F4D2056455220322E32202F :1004┆ 0x069ea0…069ec0 43 35 30 30 35 33 34 35 35 32 34 39 34 31 34 43 34 39 35 41 34 31 35 34 34 39 34 46 34 45 32 43 ┆C50053455249414C495A4154494F4E2C┆ 0x069ec0…069ee0 30 44 30 41 30 36 0d 0a 3a 31 30 30 34 44 35 30 30 34 46 35 32 34 39 34 37 34 39 34 45 32 30 34 ┆0D0A06 :1004D5004F524947494E204┆ 0x069ee0…069f00 45 35 35 34 44 34 32 34 35 35 32 33 46 32 30 32 34 45 33 0d 0a 3a 31 30 30 34 45 35 30 30 31 31 ┆E554D4245523F2024E3 :1004E50011┆ 0x069f00…069f20 45 42 30 34 43 33 43 34 30 33 30 44 30 41 35 33 35 34 34 31 35 32 35 34 34 39 34 45 34 37 46 41 ┆EB04C3C4030D0A5354415254494E47FA┆ 0x069f20…069f40 0d 0a 3a 31 30 30 34 46 35 30 30 32 30 35 33 34 35 35 32 34 39 34 31 34 43 32 30 34 45 35 35 34 ┆ :1004F5002053455249414C204E554┆ 0x069f40…069f60 44 34 32 34 35 35 32 33 46 32 30 43 46 0d 0a 3a 31 30 30 35 30 35 30 30 32 34 31 31 30 43 30 35 ┆D4245523F20CF :1005050024110C05┆ 0x069f60…069f80 43 33 43 34 30 33 30 44 30 41 34 39 34 45 35 36 34 31 34 43 34 39 34 34 46 38 0d 0a 3a 31 30 30 ┆C3C4030D0A494E56414C4944F8 :100┆ 0x069f80…069fa0 35 31 35 30 30 32 30 34 45 35 35 34 44 34 32 34 35 35 32 32 43 32 30 35 34 35 32 35 39 32 30 34 ┆51500204E554D4245522C20545259204┆ 0x069fa0…069fc0 31 34 37 34 31 42 39 0d 0a 3a 31 30 30 35 32 35 30 30 34 39 34 45 32 30 32 34 31 31 32 46 30 35 ┆14741B9 :10052500494E2024112F05┆ 0x069fc0…069fe0 43 33 43 34 30 33 30 44 30 41 35 33 34 35 35 32 34 39 44 32 0d 0a 3a 31 30 30 35 33 35 30 30 34 ┆C3C4030D0A53455249D2 :100535004┆ 0x069fe0…06a000 31 34 43 34 39 35 41 34 39 34 45 34 37 32 30 34 34 34 39 35 33 34 42 32 30 32 34 31 31 38 37 38 ┆14C495A494E47204449534B202411878┆ 0x06a000…06a020 (28, 0, 9) 20 45 2c 42 20 3b 52 45 53 45 54 20 54 4f 20 4c 4f 57 45 52 20 56 41 4c 55 45 0d 0a 20 30 33 31 ┆ E,B ;RESET TO LOWER VALUE 031┆ 0x06a020…06a040 39 20 43 33 30 43 30 33 20 20 20 20 09 09 09 09 4a 4d 50 20 44 4c 4f 4f 50 0d 0a 20 20 20 20 20 ┆9 C30C03 JMP DLOOP ┆ 0x06a040…06a060 20 20 20 20 20 20 20 20 20 20 20 09 09 09 45 44 4c 4f 4f 50 3a 09 3b 44 2c 45 20 43 4f 4e 54 41 ┆ EDLOOP: ;D,E CONTA┆ 0x06a060…06a080 49 4e 20 4f 46 46 53 45 54 20 49 4e 54 4f 20 54 52 41 43 4b 20 53 54 52 41 43 4b 0d 0a 20 30 33 ┆IN OFFSET INTO TRACK STRACK 03┆ 0x06a080…06a0a0 31 43 20 45 42 32 32 43 45 30 36 20 20 09 09 09 09 58 43 48 47 21 20 53 48 4c 44 20 53 44 49 46 ┆1C EB22CE06 XCHG! SHLD SDIF┆ 0x06a0a0…06a0c0 46 0d 0a 20 30 33 32 30 20 43 33 33 32 30 33 20 20 20 20 09 09 09 4a 4d 50 20 52 44 54 52 4b 4e ┆F 0320 C33203 JMP RDTRKN┆ 0x06a0c0…06a0e0 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 09 4e 4f 4d 41 54 33 3a 09 3b 4e 4f ┆ NOMAT3: ;NO┆ 0x06a0e0…06a100 20 4d 41 54 43 48 20 4f 4e 20 43 55 52 52 45 4e 54 20 53 54 52 49 4e 47 0d 0a 20 30 33 32 33 20 ┆ MATCH ON CURRENT STRING 0323 ┆ 0x06a100…06a120 43 31 45 31 32 33 30 42 20 20 09 09 09 50 4f 50 20 42 21 20 50 4f 50 20 48 21 20 49 4e 58 20 48 ┆C1E1230B POP B! POP H! INX H┆ 0x06a120…06a140 21 20 44 43 58 20 42 0d 0a 20 30 33 32 37 20 37 38 42 31 43 32 44 30 30 32 09 09 09 4d 4f 56 20 ┆! DCX B 0327 78B1C2D002 MOV ┆ 0x06a140…06a160 41 2c 42 21 20 4f 52 41 20 43 21 20 4a 4e 5a 20 51 54 52 30 20 3b 46 4f 52 20 41 4e 4f 54 48 45 ┆A,B! ORA C! JNZ QTR0 ;FOR ANOTHE┆ 0x06a160…06a180 52 20 53 43 41 4e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 09 3b 4e 4f 54 20 ┆R SCAN ;NOT ┆ 0x06a180…06a1a0 46 4f 55 4e 44 0d 0a 20 30 33 32 43 20 43 44 37 38 30 35 43 33 32 31 09 09 51 54 52 32 3a 09 43 ┆FOUND 032C CD7805C321 QTR2: C┆ 0x06a1a0…06a1c0 41 4c 4c 20 42 41 44 43 4f 4d 21 20 4a 4d 50 20 52 44 44 53 4b 0d 0a 20 20 20 20 20 20 20 20 20 ┆ALL BADCOM! JMP RDDSK ┆ 0x06a1c0…06a1e0 20 20 20 20 20 20 20 09 09 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 52 44 54 ┆ ; RDT┆ 0x06a1e0…06a200 52 4b 4e 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 3b 43 48 45 43 4b 20 46 ┆RKN: ;CHECK F┆ 0x06a200…06a220 (28, 0, 10) 54 52 41 43 4b 20 43 4f 55 4e 54 20 41 4e 44 20 43 59 43 4c 45 0d 0a 20 30 33 41 34 20 32 31 33 ┆TRACK COUNT AND CYCLE 03A4 213┆ 0x06a220…06a240 31 30 31 33 34 20 20 09 09 4c 58 49 20 48 2c 54 52 41 43 4b 21 20 49 4e 52 20 4d 0d 0a 20 30 33 ┆10134 LXI H,TRACK! INR M 03┆ 0x06a240…06a260 41 38 20 32 31 39 31 30 36 33 34 37 45 09 09 4c 58 49 20 48 2c 54 52 43 4f 55 4e 54 2b 31 21 20 ┆A8 219106347E LXI H,TRCOUNT+1! ┆ 0x06a260…06a280 49 4e 52 20 4d 21 20 4d 4f 56 20 41 2c 4d 21 20 43 50 49 20 27 39 27 2b 31 0d 0a 20 30 33 41 46 ┆INR M! MOV A,M! CPI '9'+1 03AF┆ 0x06a280…06a2a0 20 44 41 34 35 30 32 20 20 20 20 09 09 4a 43 20 52 44 54 52 4b 20 3b 4f 56 45 52 46 4c 4f 57 20 ┆ DA4502 JC RDTRK ;OVERFLOW ┆ 0x06a2a0…06a2c0 54 4f 20 48 49 47 48 20 4f 52 44 45 52 20 54 52 41 43 4b 20 4e 55 4d 42 45 52 0d 0a 20 30 33 42 ┆TO HIGH ORDER TRACK NUMBER 03B┆ 0x06a2c0…06a2e0 32 20 33 36 33 30 32 42 33 34 43 33 09 09 4d 56 49 20 4d 2c 27 30 27 21 20 44 43 58 20 48 21 20 ┆2 36302B34C3 MVI M,'0'! DCX H! ┆ 0x06a2e0…06a300 49 4e 52 20 4d 21 20 4a 4d 50 20 52 44 54 52 4b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆INR M! JMP RDTRK ┆ 0x06a300…06a320 20 20 09 09 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 57 52 45 52 52 3a 09 3b ┆ ; WRERR: ;┆ 0x06a320…06a340 56 45 52 49 46 59 20 45 52 52 4f 52 0d 0a 20 30 33 42 39 20 43 44 43 39 30 35 43 33 32 37 09 09 ┆VERIFY ERROR 03B9 CDC905C327 ┆ 0x06a340…06a360 43 41 4c 4c 20 56 45 52 45 52 52 21 20 4a 4d 50 20 4e 45 58 54 44 49 53 4b 0d 0a 20 20 20 20 20 ┆CALL VERERR! JMP NEXTDISK ┆ 0x06a360…06a380 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d ┆ ; ; ┆ 0x06a380…06a3a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 09 55 54 49 4c 49 54 59 20 53 55 42 52 4f ┆ ; UTILITY SUBRO┆ 0x06a3a0…06a3c0 55 54 49 4e 45 53 0d 0a 20 30 33 42 46 20 30 45 30 31 43 33 30 35 30 30 43 49 3a 09 4d 56 49 20 ┆UTINES 03BF 0E01C30500CI: MVI ┆ 0x06a3c0…06a3e0 43 2c 43 4f 4e 49 4e 21 20 4a 4d 50 20 42 44 4f 53 20 3b 52 45 41 44 20 41 20 43 48 41 52 41 43 ┆C,CONIN! JMP BDOS ;READ A CHARAC┆ 0x06a3e0…06a400 54 45 52 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 30 33 43 34 20 30 45 ┆TER ; 03C4 0E┆ 0x06a400…06a420 (28, 0, 11) 20 20 20 20 20 20 54 52 41 4e 53 4c 41 54 45 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ TRANSLATE: ┆ 0x06a420…06a440 20 20 09 3b 54 52 41 4e 53 4c 41 54 45 20 54 48 45 20 52 45 4c 41 54 49 56 45 20 41 44 44 52 45 ┆ ;TRANSLATE THE RELATIVE ADDRE┆ 0x06a440…06a460 53 53 20 49 4e 20 48 2c 4c 20 54 4f 20 41 42 53 4f 4c 55 54 45 20 41 44 44 52 45 53 53 0d 0a 20 ┆SS IN H,L TO ABSOLUTE ADDRESS ┆ 0x06a460…06a480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 3b 49 4e 20 49 42 55 46 46 2c 20 41 53 53 55 4d ┆ ;IN IBUFF, ASSUM┆ 0x06a480…06a4a0 49 4e 47 20 53 45 43 54 4f 52 53 20 41 52 45 20 53 4b 45 57 45 44 0d 0a 20 30 34 32 45 20 44 35 ┆ING SECTORS ARE SKEWED 042E D5┆ 0x06a4a0…06a4c0 37 44 45 36 37 46 35 46 09 50 55 53 48 20 44 21 20 4d 4f 56 20 41 2c 4c 21 20 41 4e 49 20 37 46 ┆7DE67F5F PUSH D! MOV A,L! ANI 7F┆ 0x06a4c0…06a4e0 48 21 20 4d 4f 56 20 45 2c 41 20 3b 4c 53 20 37 20 42 49 54 53 20 4f 46 20 41 44 44 52 45 53 53 ┆H! MOV E,A ;LS 7 BITS OF ADDRESS┆ 0x06a4e0…06a500 20 53 41 56 45 44 0d 0a 20 30 34 33 33 20 37 44 31 37 20 20 20 20 20 20 09 09 4d 4f 56 20 41 2c ┆ SAVED 0433 7D17 MOV A,┆ 0x06a500…06a520 4c 21 20 52 41 4c 20 3b 43 41 52 52 59 20 47 45 54 53 20 4d 53 42 0d 0a 20 30 34 33 35 20 37 43 ┆L! RAL ;CARRY GETS MSB 0435 7C┆ 0x06a520…06a540 31 37 20 20 20 20 20 20 09 09 4d 4f 56 20 41 2c 48 21 20 52 41 4c 20 3b 43 41 52 52 59 20 47 4f ┆17 MOV A,H! RAL ;CARRY GO┆ 0x06a540…06a560 45 53 20 54 4f 20 4c 53 42 0d 0a 20 30 34 33 37 20 36 46 32 36 30 30 20 20 20 20 09 09 4d 4f 56 ┆ES TO LSB 0437 6F2600 MOV┆ 0x06a560…06a580 20 4c 2c 41 21 20 4d 56 49 20 48 2c 30 20 3b 48 2c 4c 20 43 4f 4e 54 41 49 4e 20 49 4e 44 45 58 ┆ L,A! MVI H,0 ;H,L CONTAIN INDEX┆ 0x06a580…06a5a0 20 49 4e 54 4f 20 54 52 41 4e 53 4c 41 54 45 20 54 41 42 4c 45 0d 0a 20 30 34 33 41 20 44 35 31 ┆ INTO TRANSLATE TABLE 043A D51┆ 0x06a5a0…06a5c0 31 44 30 30 36 31 39 09 09 50 55 53 48 20 44 21 20 4c 58 49 20 44 2c 54 52 41 4e 21 20 44 41 44 ┆1D00619 PUSH D! LXI D,TRAN! DAD┆ 0x06a5c0…06a5e0 20 44 21 20 50 4f 50 20 44 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 3b 48 2c ┆ D! POP D ;H,┆ 0x06a5e0…06a600 4c 20 41 44 44 52 45 53 53 20 54 52 41 4e 53 4c 41 54 49 4f 4e 20 45 4c 45 4d 45 4e 54 2c 20 43 ┆L ADDRESS TRANSLATION ELEMENT, C┆ 0x06a600…06a620 (28, 0, 12) 31 0d 0a 3a 31 30 30 35 34 35 30 30 30 36 43 44 43 34 30 33 31 31 41 35 30 36 43 33 43 34 30 33 ┆1 :1005450006CDC40311A506C3C403┆ 0x06a620…06a640 31 31 35 35 30 35 43 33 43 34 30 33 44 31 0d 0a 3a 31 30 30 35 35 35 30 30 30 44 30 41 34 39 34 ┆115505C3C403D1 :100555000D0A494┆ 0x06a640…06a660 45 35 33 34 35 35 32 35 34 32 30 34 45 34 35 35 37 32 30 34 34 34 39 35 33 41 30 0d 0a 3a 31 30 ┆E53455254204E455720444953A0 :10┆ 0x06a660…06a680 30 35 36 35 30 30 34 42 34 35 35 34 35 34 34 35 32 43 32 30 35 34 35 39 35 30 34 35 32 30 35 32 ┆0565004B455454452C20545950452052┆ 0x06a680…06a6a0 34 35 35 34 35 35 31 42 0d 0a 3a 31 30 30 35 37 35 30 30 35 32 34 45 32 34 31 31 37 45 30 35 43 ┆4554551B :10057500524E24117E05C┆ 0x06a6a0…06a6c0 33 43 34 30 33 30 44 30 41 34 32 34 31 34 34 32 30 34 44 34 39 0d 0a 3a 31 30 30 35 38 35 30 30 ┆3C4030D0A424144204D49 :10058500┆ 0x06a6c0…06a6e0 34 46 35 36 34 33 35 30 34 44 32 45 34 33 34 46 34 44 32 30 34 36 34 39 34 43 34 35 32 43 32 30 ┆4F5643504D2E434F4D2046494C452C20┆ 0x06a6e0…06a700 34 38 0d 0a 3a 31 30 30 35 39 35 30 30 35 32 34 35 35 30 34 43 34 31 34 33 34 35 32 34 31 31 41 ┆48 :100595005245504C4143452411A┆ 0x06a700…06a720 33 30 35 43 33 43 34 30 33 30 44 30 41 44 43 0d 0a 3a 31 30 30 35 41 35 30 30 34 45 34 46 34 45 ┆305C3C4030D0ADC :1005A5004E4F4E┆ 0x06a720…06a740 32 30 34 33 35 30 32 46 34 44 32 30 34 34 34 39 35 33 34 42 34 35 35 34 35 34 46 34 0d 0a 3a 31 ┆2043502F4D204449534B455454F4 :1┆ 0x06a740…06a760 30 30 35 42 35 30 30 34 35 32 43 32 30 34 33 34 31 34 45 34 45 34 46 35 34 32 30 35 33 34 35 35 ┆005B500452C2043414E4E4F542053455┆ 0x06a760…06a780 32 34 39 34 31 34 43 30 32 0d 0a 3a 31 30 30 35 43 35 30 30 34 39 35 41 34 35 32 34 31 31 43 46 ┆249414C02 :1005C500495A452411CF┆ 0x06a780…06a7a0 30 35 43 33 43 34 30 33 30 44 30 41 35 36 34 35 35 32 34 39 35 45 0d 0a 3a 31 30 30 35 44 35 30 ┆05C3C4030D0A564552495E :1005D50┆ 0x06a7a0…06a7c0 30 34 36 34 39 34 33 34 31 35 34 34 39 34 46 34 45 32 30 34 35 35 32 35 32 34 46 35 32 32 43 32 ┆04649434154494F4E204552524F522C2┆ 0x06a7c0…06a7e0 30 44 33 0d 0a 3a 31 30 30 35 45 35 30 30 34 32 34 31 34 34 32 30 34 34 34 39 35 33 34 42 32 34 ┆0D3 :1005E500424144204449534B24┆ 0x06a7e0…06a800 31 31 46 34 30 35 43 33 43 34 30 33 30 44 32 46 0d 0a 3a 31 30 30 35 46 35 30 30 30 41 35 33 34 ┆11F405C3C4030D2F :1005F5000A534┆ 0x06a800…06a820 (28, 0, 13) 4f 52 20 4d 4f 56 43 50 4d 2e 43 4f 4d 20 53 45 52 49 41 4c 49 5a 41 54 49 4f 4e 0d 0a 20 30 33 ┆OR MOVCPM.COM SERIALIZATION 03┆ 0x06a820…06a840 33 32 20 32 31 43 44 30 36 37 45 42 37 09 09 4c 58 49 20 48 2c 53 54 52 41 43 4b 21 20 4d 4f 56 ┆32 21CD067EB7 LXI H,STRACK! MOV┆ 0x06a840…06a860 20 41 2c 4d 21 20 4f 52 41 20 41 21 20 4a 5a 20 4e 4f 53 45 52 0d 0a 20 20 20 20 20 20 20 20 20 ┆ A,M! ORA A! JZ NOSER ┆ 0x06a860…06a880 20 20 20 20 20 20 20 09 09 3b 41 4c 52 45 41 44 59 20 53 45 52 49 41 4c 49 5a 45 44 20 49 46 20 ┆ ;ALREADY SERIALIZED IF ┆ 0x06a880…06a8a0 53 54 52 41 43 4b 3d 30 0d 0a 20 30 33 33 41 20 33 35 43 32 34 34 30 33 20 20 09 09 44 43 52 20 ┆STRACK=0 033A 35C24403 DCR ┆ 0x06a8a0…06a8c0 4d 21 20 4a 4e 5a 20 4e 4f 53 45 52 20 3b 4e 4f 54 20 4f 4e 20 50 52 4f 50 45 52 20 54 52 41 43 ┆M! JNZ NOSER ;NOT ON PROPER TRAC┆ 0x06a8c0…06a8e0 4b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 3b 4f 4e 20 50 52 4f 50 45 52 20 ┆K ;ON PROPER ┆ 0x06a8e0…06a900 54 52 41 43 4b 2c 20 53 44 49 46 46 20 43 4f 4e 54 41 49 4e 53 20 49 4e 44 45 58 20 54 4f 20 42 ┆TRACK, SDIFF CONTAINS INDEX TO B┆ 0x06a900…06a920 44 4f 53 20 53 45 52 49 41 4c 23 0d 0a 20 30 33 33 45 20 32 41 43 45 30 36 43 44 35 43 09 09 09 ┆DOS SERIAL# 033E 2ACE06CD5C ┆ 0x06a920…06a940 4c 48 4c 44 20 53 44 49 46 46 21 20 43 41 4c 4c 20 53 54 53 45 52 49 41 4c 0d 0a 20 20 20 20 20 ┆LHLD SDIFF! CALL STSERIAL ┆ 0x06a940…06a960 20 20 20 20 20 20 20 20 20 20 20 09 4e 4f 53 45 52 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 ┆ NOSER: ┆ 0x06a960…06a980 20 20 20 20 09 09 3b 54 52 41 43 4b 20 49 4e 20 4d 45 4d 4f 52 59 2c 20 43 48 45 43 4b 20 46 4f ┆ ;TRACK IN MEMORY, CHECK FO┆ 0x06a980…06a9a0 52 20 4c 41 53 54 20 54 52 41 43 4b 0d 0a 20 30 33 34 34 20 32 31 30 42 30 37 30 31 30 30 09 09 ┆R LAST TRACK 0344 210B070100 ┆ 0x06a9a0…06a9c0 4c 58 49 20 48 2c 49 42 55 46 46 21 20 4c 58 49 20 42 2c 54 52 4c 45 4e 0d 0a 20 30 33 34 41 20 ┆LXI H,IBUFF! LXI B,TRLEN 034A ┆ 0x06a9c0…06a9e0 33 45 45 35 42 45 43 32 37 30 09 09 54 52 43 4f 4d 50 3a 09 4d 56 49 20 41 2c 30 45 35 48 21 20 ┆3EE5BEC270 TRCOMP: MVI A,0E5H! ┆ 0x06a9e0…06aa00 43 4d 50 20 4d 21 20 4a 4e 5a 20 57 52 54 52 4b 0d 0a 20 30 33 35 30 20 32 33 30 42 37 39 42 30 ┆CMP M! JNZ WRTRK 0350 230B79B0┆ 0x06aa00…06aa20 (28, 0, 14) 30 39 43 33 30 35 30 30 50 52 4d 53 47 3a 09 4d 56 49 20 43 2c 50 42 55 46 46 21 20 4a 4d 50 20 ┆09C30500PRMSG: MVI C,PBUFF! JMP ┆ 0x06aa20…06aa40 42 44 4f 53 20 3b 50 52 49 4e 54 20 41 20 42 55 46 46 45 52 0d 0a 20 20 20 20 20 20 20 20 20 20 ┆BDOS ;PRINT A BUFFER ┆ 0x06aa40…06aa60 20 20 20 20 20 20 3b 0d 0a 20 30 33 43 39 20 43 44 30 36 30 35 20 20 20 20 52 44 45 52 52 3a 09 ┆ ; 03C9 CD0605 RDERR: ┆ 0x06aa60…06aa80 43 41 4c 4c 20 49 4e 56 41 4c 49 44 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d ┆CALL INVALID ; ┆ 0x06aa80…06aaa0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 45 41 44 3a 09 3b 52 45 41 44 20 43 4f 4e ┆ READ: ;READ CON┆ 0x06aaa0…06aac0 53 54 41 4e 54 20 56 41 4c 55 45 20 54 4f 20 42 2c 43 0d 0a 20 30 33 43 43 20 31 31 43 33 30 36 ┆STANT VALUE TO B,C 03CC 11C306┆ 0x06aac0…06aae0 30 45 30 41 09 4c 58 49 20 44 2c 4d 41 58 4c 45 4e 21 20 4d 56 49 20 43 2c 52 44 42 55 46 46 21 ┆0E0A LXI D,MAXLEN! MVI C,RDBUFF!┆ 0x06aae0…06ab00 20 43 41 4c 4c 20 42 44 4f 53 20 3b 42 55 46 46 45 52 20 46 49 4c 4c 45 44 0d 0a 20 30 33 44 34 ┆ CALL BDOS ;BUFFER FILLED 03D4┆ 0x06ab00…06ab20 20 32 31 43 34 30 36 37 45 42 37 09 4c 58 49 20 48 2c 43 4f 4d 4c 45 4e 21 20 4d 4f 56 20 41 2c ┆ 21C4067EB7 LXI H,COMLEN! MOV A,┆ 0x06ab20…06ab40 4d 21 20 4f 52 41 20 41 21 20 4a 5a 20 52 44 45 52 52 20 3b 4e 4f 4e 20 5a 45 52 4f 20 4c 45 4e ┆M! ORA A! JZ RDERR ;NON ZERO LEN┆ 0x06ab40…06ab60 47 54 48 0d 0a 20 30 33 44 43 20 32 33 35 46 31 36 30 30 31 39 09 49 4e 58 20 48 21 20 4d 4f 56 ┆GTH 03DC 235F160019 INX H! MOV┆ 0x06ab60…06ab80 20 45 2c 41 21 20 4d 56 49 20 44 2c 30 21 20 44 41 44 20 44 20 3b 48 2c 4c 20 41 44 44 52 45 53 ┆ E,A! MVI D,0! DAD D ;H,L ADDRES┆ 0x06ab80…06aba0 53 20 4c 41 53 54 20 50 4f 53 2b 31 0d 0a 20 30 33 45 31 20 33 36 30 30 20 20 20 20 20 20 09 4d ┆S LAST POS+1 03E1 3600 M┆ 0x06aba0…06abc0 56 49 20 4d 2c 30 20 3b 43 4c 45 41 52 45 44 20 46 4f 52 20 45 4e 44 20 4f 46 20 53 43 41 4e 0d ┆VI M,0 ;CLEARED FOR END OF SCAN ┆ 0x06abc0…06abe0 0a 20 30 33 45 33 20 32 31 43 35 30 36 30 31 30 30 09 4c 58 49 20 48 2c 43 42 55 46 46 21 20 4c ┆ 03E3 21C5060100 LXI H,CBUFF! L┆ 0x06abe0…06ac00 58 49 20 42 2c 30 0d 0a 20 30 33 45 39 20 37 45 42 37 43 38 20 20 20 20 09 43 4f 4e 56 3a 09 4d ┆XI B,0 03E9 7EB7C8 CONV: M┆ 0x06ac00…06ac20 (28, 0, 15) 4f 4e 56 45 52 54 20 54 4f 20 52 45 4c 20 41 44 44 52 45 53 53 0d 0a 20 30 34 34 30 20 41 46 37 ┆ONVERT TO REL ADDRESS 0440 AF7┆ 0x06ac20…06ac40 45 33 44 31 46 20 20 09 09 58 52 41 20 41 21 20 4d 4f 56 20 41 2c 4d 21 20 44 43 52 20 41 20 21 ┆E3D1F XRA A! MOV A,M! DCR A !┆ 0x06ac40…06ac60 20 52 41 52 20 3b 43 41 52 52 59 20 47 45 54 53 20 4c 53 42 2c 20 4d 53 42 3d 30 0d 0a 20 30 34 ┆ RAR ;CARRY GETS LSB, MSB=0 04┆ 0x06ac60…06ac80 34 34 20 36 37 33 45 30 30 31 46 20 20 09 09 4d 4f 56 20 48 2c 41 21 20 4d 56 49 20 41 2c 30 21 ┆44 673E001F MOV H,A! MVI A,0!┆ 0x06ac80…06aca0 20 52 41 52 20 3b 43 41 52 52 59 20 47 4f 45 53 20 54 4f 20 4d 53 42 0d 0a 20 30 34 34 38 20 42 ┆ RAR ;CARRY GOES TO MSB 0448 B┆ 0x06aca0…06acc0 33 20 20 20 20 20 20 20 20 09 09 4f 52 41 20 45 20 3b 52 45 43 4c 41 49 4d 20 54 48 45 20 4c 45 ┆3 ORA E ;RECLAIM THE LE┆ 0x06acc0…06ace0 41 53 54 20 53 49 47 4e 49 46 49 43 41 4e 54 20 37 20 42 49 54 53 0d 0a 20 30 34 34 39 20 36 46 ┆AST SIGNIFICANT 7 BITS 0449 6F┆ 0x06ace0…06ad00 31 31 30 42 30 37 31 39 09 09 4d 4f 56 20 4c 2c 41 21 20 4c 58 49 20 44 2c 49 42 55 46 46 21 20 ┆110B0719 MOV L,A! LXI D,IBUFF! ┆ 0x06ad00…06ad20 44 41 44 20 44 20 3b 41 42 53 4f 4c 55 54 45 20 41 44 44 52 45 53 53 20 49 4e 20 48 2c 4c 0d 0a ┆DAD D ;ABSOLUTE ADDRESS IN H,L ┆ 0x06ad20…06ad40 20 30 34 34 45 20 44 31 20 20 20 20 20 20 20 20 09 09 50 4f 50 20 44 20 3b 52 45 43 41 4c 4c 20 ┆ 044E D1 POP D ;RECALL ┆ 0x06ad40…06ad60 53 54 41 43 4b 45 44 20 44 20 56 41 4c 55 45 0d 0a 20 30 34 34 46 20 43 39 20 20 20 20 20 20 20 ┆STACKED D VALUE 044F C9 ┆ 0x06ad60…06ad80 20 09 09 52 45 54 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 ┆ RET ; ┆ 0x06ad80…06ada0 20 20 20 20 20 20 20 20 20 20 20 53 54 42 59 54 45 3a 09 3b 53 54 4f 52 45 20 42 59 54 45 20 56 ┆ STBYTE: ;STORE BYTE V┆ 0x06ada0…06adc0 41 4c 55 45 20 47 49 56 45 4e 20 42 59 20 52 45 47 49 53 54 45 52 20 41 20 54 4f 20 54 52 41 4e ┆ALUE GIVEN BY REGISTER A TO TRAN┆ 0x06adc0…06ade0 53 4c 41 54 45 44 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 3b 41 44 44 52 45 53 ┆SLATED ;ADDRES┆ 0x06ade0…06ae00 53 20 47 49 56 45 4e 20 42 59 20 48 2c 4c 2e 20 20 49 4e 43 52 45 4d 45 4e 54 20 48 2c 4c 20 55 ┆S GIVEN BY H,L. INCREMENT H,L U┆ 0x06ae00…06ae20 (28, 1, 1) 35 35 32 34 39 34 31 34 43 32 30 34 45 35 35 34 44 34 32 34 35 35 32 32 30 34 46 44 34 0d 0a 3a ┆55249414C204E554D424552204FD4 :┆ 0x06ae20…06ae40 31 30 30 36 30 35 30 30 35 36 34 35 35 32 34 36 34 43 34 46 35 37 32 34 31 31 31 33 30 36 43 33 ┆10060500564552464C4F5724111306C3┆ 0x06ae40…06ae60 43 34 30 33 30 44 30 41 44 31 0d 0a 3a 31 30 30 36 31 35 30 30 34 35 35 32 35 32 34 46 35 32 32 ┆C4030D0AD1 :100615004552524F522┆ 0x06ae60…06ae80 30 34 46 34 45 32 30 35 33 34 46 35 35 35 32 34 33 34 35 32 30 37 44 0d 0a 3a 31 30 30 36 32 35 ┆04F4E20534F55524345207D :100625┆ 0x06ae80…06aea0 30 30 34 34 34 39 35 33 34 42 32 43 32 30 35 32 34 35 35 30 34 43 34 31 34 33 34 35 32 34 31 31 ┆004449534B2C205245504C4143452411┆ 0x06aea0…06aec0 33 39 45 34 0d 0a 3a 31 30 30 36 33 35 30 30 30 36 43 33 43 34 30 33 30 44 30 41 34 33 34 31 34 ┆39E4 :1006350006C3C4030D0A43414┆ 0x06aec0…06aee0 45 34 45 34 46 35 34 32 30 35 37 35 32 34 39 33 39 0d 0a 3a 31 30 30 36 34 35 30 30 35 34 34 35 ┆E4E4F542057524939 :100645005445┆ 0x06aee0…06af00 32 30 34 45 34 35 35 37 32 30 34 34 34 39 35 33 34 42 32 43 32 30 35 32 34 35 35 30 38 34 0d 0a ┆204E4557204449534B2C2052455084 ┆ 0x06af00…06af20 3a 31 30 30 36 35 35 30 30 34 43 34 31 34 33 34 35 32 34 31 31 36 30 30 36 43 33 43 34 30 33 30 ┆:100655004C41434524116006C3C4030┆ 0x06af20…06af40 44 30 41 34 33 34 31 34 45 37 32 0d 0a 3a 31 30 30 36 36 35 30 30 34 45 34 46 35 34 32 30 35 32 ┆D0A43414E72 :100665004E4F542052┆ 0x06af40…06af60 34 35 32 44 35 32 34 35 34 31 34 34 32 30 34 45 34 35 35 37 32 30 36 41 0d 0a 3a 30 45 30 36 37 ┆452D52454144204E4557206A :0E067┆ 0x06af60…06af80 35 30 30 34 34 34 39 35 33 34 42 32 43 32 30 35 32 34 35 35 30 34 43 34 31 34 33 34 35 32 34 45 ┆5004449534B2C205245504C41434524E┆ 0x06af80…06afa0 30 0d 0a 3a 31 30 30 36 38 35 30 30 30 44 30 41 33 30 33 30 33 30 33 30 33 30 32 44 32 34 30 44 ┆0 :100685000D0A30303030302D240D┆ 0x06afa0…06afc0 30 41 33 30 33 30 32 30 35 34 35 32 44 30 0d 0a 3a 30 45 30 36 39 35 30 30 34 31 34 33 34 42 35 ┆0A3030205452D0 :0E06950041434B5┆ 0x06afc0…06afe0 33 32 30 35 36 34 35 35 32 34 39 34 36 34 39 34 35 34 34 32 34 41 33 0d 0a 3a 31 30 30 36 41 35 ┆320564552494649454424A3 :1006A5┆ 0x06afe0…06b000 30 30 33 30 33 30 33 30 33 30 33 30 32 34 42 42 42 36 41 44 44 46 42 41 41 44 42 45 44 46 41 42 ┆00303030303024BBB6ADDFBAADBEDFAB┆ 0x06b000…06b020 (28, 1, 2) 41 49 4e 20 24 27 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 ┆AIN $' ; ┆ 0x06b020…06b040 20 20 20 20 20 20 20 20 20 20 20 43 55 52 4d 53 47 3a 0d 0a 20 30 35 32 39 20 31 31 32 46 30 35 ┆ CURMSG: 0529 112F05┆ 0x06b040…06b060 43 33 43 34 09 4c 58 49 20 44 2c 24 2b 36 21 20 4a 4d 50 20 50 52 4d 53 47 0d 0a 20 30 35 32 46 ┆C3C4 LXI D,$+6! JMP PRMSG 052F┆ 0x06b060…06b080 20 30 44 30 41 35 33 34 35 35 32 09 44 42 20 43 52 2c 4c 46 2c 27 53 45 52 49 41 4c 49 5a 49 4e ┆ 0D0A534552 DB CR,LF,'SERIALIZIN┆ 0x06b080…06b0a0 47 20 44 49 53 4b 20 24 27 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 ┆G DISK $' ; ┆ 0x06b0a0…06b0c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 53 45 52 4d 53 47 3a 0d 0a 20 30 35 34 33 20 31 31 ┆ ASERMSG: 0543 11┆ 0x06b0c0…06b0e0 38 37 30 36 43 44 43 34 09 4c 58 49 20 44 2c 41 4f 52 49 47 49 4e 21 20 43 41 4c 4c 20 50 52 4d ┆8706CDC4 LXI D,AORIGIN! CALL PRM┆ 0x06b0e0…06b100 53 47 0d 0a 20 30 35 34 39 20 31 31 41 35 30 36 43 33 43 34 09 4c 58 49 20 44 2c 41 53 45 52 49 ┆SG 0549 11A506C3C4 LXI D,ASERI┆ 0x06b100…06b120 41 4c 21 20 4a 4d 50 20 50 52 4d 53 47 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b ┆AL! JMP PRMSG ;┆ 0x06b120…06b140 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4e 45 57 4d 53 47 3a 0d 0a 20 30 35 34 46 ┆ NEWMSG: 054F┆ 0x06b140…06b160 20 31 31 35 35 30 35 43 33 43 34 09 4c 58 49 20 44 2c 24 2b 36 21 20 4a 4d 50 20 50 52 4d 53 47 ┆ 115505C3C4 LXI D,$+6! JMP PRMSG┆ 0x06b160…06b180 0d 0a 20 30 35 35 35 20 30 44 30 41 34 39 34 45 35 33 09 44 42 20 43 52 2c 4c 46 2c 27 49 4e 53 ┆ 0555 0D0A494E53 DB CR,LF,'INS┆ 0x06b180…06b1a0 45 52 54 20 4e 45 57 20 44 49 53 4b 45 54 54 45 2c 20 54 59 50 45 20 52 45 54 55 52 4e 24 27 0d ┆ERT NEW DISKETTE, TYPE RETURN$' ┆ 0x06b1a0…06b1c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ; ┆ 0x06b1c0…06b1e0 20 20 20 20 42 41 44 43 4f 4d 3a 0d 0a 20 30 35 37 38 20 31 31 37 45 30 35 43 33 43 34 09 4c 58 ┆ BADCOM: 0578 117E05C3C4 LX┆ 0x06b1e0…06b200 49 20 44 2c 24 2b 36 21 20 4a 4d 50 20 50 52 4d 53 47 0d 0a 20 30 35 37 45 20 30 44 30 41 34 32 ┆I D,$+6! JMP PRMSG 057E 0D0A42┆ 0x06b200…06b220 (28, 1, 3) 33 20 41 42 41 36 41 46 42 41 20 20 09 44 57 09 4e 4f 54 20 27 54 59 27 2c 4e 4f 54 20 27 50 45 ┆3 ABA6AFBA DW NOT 'TY',NOT 'PE┆ 0x06b220…06b240 27 0d 0a 20 30 36 42 37 20 41 43 42 45 41 39 42 41 20 20 09 44 57 09 4e 4f 54 20 27 53 41 27 2c ┆' 06B7 ACBEA9BA DW NOT 'SA',┆ 0x06b240…06b260 4e 4f 54 20 27 56 45 27 0d 0a 20 30 36 42 42 20 41 44 42 41 42 31 44 46 20 20 09 44 57 09 4e 4f ┆NOT 'VE' 06BB ADBAB1DF DW NO┆ 0x06b260…06b280 54 20 27 52 45 27 2c 4e 4f 54 20 27 4e 20 27 0d 0a 20 30 36 42 46 20 41 41 41 43 42 41 41 44 20 ┆T 'RE',NOT 'N ' 06BF AAACBAAD ┆ 0x06b280…06b2a0 20 09 44 57 09 4e 4f 54 20 27 55 53 27 2c 4e 4f 54 20 27 45 52 27 0d 0a 20 30 30 30 43 20 3d 20 ┆ DW NOT 'US',NOT 'ER' 000C = ┆ 0x06b2a0…06b2c0 20 20 20 20 20 20 20 20 09 43 4f 4d 50 4c 45 4e 20 45 51 55 20 28 24 2d 43 4f 4d 50 41 52 45 29 ┆ COMPLEN EQU ($-COMPARE)┆ 0x06b2c0…06b2e0 2f 32 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 09 49 4e 50 55 54 20 42 55 46 46 ┆/2 ; INPUT BUFF┆ 0x06b2e0…06b300 45 52 0d 0a 20 30 36 43 33 20 30 37 20 20 20 20 20 20 20 20 4d 41 58 4c 45 4e 3a 09 44 42 09 37 ┆ER 06C3 07 MAXLEN: DB 7┆ 0x06b300…06b320 0d 0a 20 30 36 43 34 20 20 20 20 20 20 20 20 20 20 20 43 4f 4d 4c 45 4e 3a 09 44 53 09 31 0d 0a ┆ 06C4 COMLEN: DS 1 ┆ 0x06b320…06b340 20 30 36 43 35 20 20 20 20 20 20 20 20 20 20 20 43 42 55 46 46 3a 09 44 53 09 38 0d 0a 20 30 36 ┆ 06C5 CBUFF: DS 8 06┆ 0x06b340…06b360 43 44 20 20 20 20 20 20 20 20 20 20 20 53 54 52 41 43 4b 3a 09 44 53 09 31 09 3b 53 45 52 49 41 ┆CD STRACK: DS 1 ;SERIA┆ 0x06b360…06b380 4c 49 5a 45 20 54 52 41 43 4b 20 46 4f 52 20 43 50 4d 2e 43 4f 4d 20 46 49 4c 45 20 57 48 45 4e ┆LIZE TRACK FOR CPM.COM FILE WHEN┆ 0x06b380…06b3a0 20 45 4e 43 4f 55 4e 54 45 52 45 44 0d 0a 20 30 36 43 45 20 20 20 20 20 20 20 20 20 20 20 53 44 ┆ ENCOUNTERED 06CE SD┆ 0x06b3a0…06b3c0 49 46 46 3a 09 44 53 09 32 09 3b 44 49 46 46 45 52 45 4e 43 45 20 42 45 54 57 45 45 4e 20 54 57 ┆IFF: DS 2 ;DIFFERENCE BETWEEN TW┆ 0x06b3c0…06b3e0 4f 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 20 41 44 44 52 45 53 53 45 53 0d 0a 20 20 20 20 20 ┆O SERIAL NUMBER ADDRESSES ┆ 0x06b3e0…06b400 20 20 20 20 20 20 20 20 20 20 20 3b 09 53 45 43 54 4f 52 20 54 52 41 4e 53 4c 41 54 49 4f 4e 20 ┆ ; SECTOR TRANSLATION ┆ 0x06b400…06b420 (28, 1, 4) 69 73 6b 20 62 61 6e 6b 20 30 30 20 69 66 20 64 72 69 76 65 20 30 2c 31 0d 0a 09 09 09 3b 09 20 ┆isk bank 00 if drive 0,1 ; ┆ 0x06b420…06b440 20 20 31 30 20 69 66 20 64 72 69 76 65 20 32 2c 33 0d 0a 69 6f 70 62 3a 09 3b 69 6f 20 70 61 72 ┆ 10 if drive 2,3 iopb: ;io par┆ 0x06b440…06b460 61 6d 65 74 65 72 20 62 6c 6f 63 6b 0d 0a 09 64 62 09 38 30 68 09 3b 6e 6f 72 6d 61 6c 20 69 2f ┆ameter block db 80h ;normal i/┆ 0x06b460…06b480 6f 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 69 6f 66 3a 09 64 62 09 72 65 61 64 66 09 3b 69 6f 20 66 ┆o operation iof: db readf ;io f┆ 0x06b480…06b4a0 75 6e 63 74 69 6f 6e 2c 20 69 6e 69 74 69 61 6c 20 72 65 61 64 0d 0a 69 6f 6e 3a 09 64 62 09 31 ┆unction, initial read ion: db 1┆ 0x06b4a0…06b4c0 09 3b 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 20 74 6f 20 72 65 61 64 0d 0a 69 6f 74 ┆ ;number of sectors to read iot┆ 0x06b4c0…06b4e0 3a 09 64 62 09 6f 66 66 73 65 74 09 3b 74 72 61 63 6b 20 6e 75 6d 62 65 72 0d 0a 69 6f 73 3a 09 ┆: db offset ;track number ios: ┆ 0x06b4e0…06b500 64 62 09 31 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 0d 0a 69 6f 64 3a 09 64 77 09 62 75 66 ┆db 1 ;sector number iod: dw buf┆ 0x06b500…06b520 66 09 3b 69 6f 20 61 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 65 66 69 6e 65 20 72 61 ┆f ;io address ; ; ; define ra┆ 0x06b520…06b540 6d 20 61 72 65 61 73 20 66 6f 72 20 62 64 6f 73 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 09 65 6e 64 ┆m areas for bdos operation end┆ 0x06b540…06b560 65 66 0d 0a 09 65 6e 64 0d 0a 3b 09 4d 44 53 2d 38 30 30 20 49 2f 4f 20 44 72 69 76 65 72 73 20 ┆ef end ; MDS-800 I/O Drivers ┆ 0x06b560…06b580 66 6f 72 20 43 50 2f 4d 20 32 2e 32 0d 0a 3b 09 28 66 6f 75 72 20 64 72 69 76 65 20 73 69 6e 67 ┆for CP/M 2.2 ; (four drive sing┆ 0x06b580…06b5a0 6c 65 20 64 65 6e 73 69 74 79 20 76 65 72 73 69 6f 6e 29 0d 0a 3b 0d 0a 3b 09 56 65 72 73 69 6f ┆le density version) ; ; Versio┆ 0x06b5a0…06b5c0 6e 20 32 2e 32 20 46 65 62 72 75 61 72 79 2c 20 31 39 38 30 0d 0a 3b 0d 0a 76 65 72 73 09 65 71 ┆n 2.2 February, 1980 ; vers eq┆ 0x06b5c0…06b5e0 75 09 32 32 09 3b 76 65 72 73 69 6f 6e 20 32 2e 32 0d 0a 3b 0d 0a 3b 09 43 6f 70 79 72 69 67 68 ┆u 22 ;version 2.2 ; ; Copyrigh┆ 0x06b5e0…06b600 74 20 28 63 29 20 31 39 38 30 0d 0a 3b 09 44 69 67 69 74 61 6c 20 52 65 73 65 61 72 63 68 0d 0a ┆t (c) 1980 ; Digital Research ┆ 0x06b600…06b620 (28, 1, 5) 50 4f 4e 20 52 45 54 55 52 4e 0d 0a 20 30 34 35 30 20 45 35 44 35 46 35 20 20 20 20 09 50 55 53 ┆PON RETURN 0450 E5D5F5 PUS┆ 0x06b620…06b640 48 20 48 21 20 50 55 53 48 20 44 21 20 50 55 53 48 20 50 53 57 0d 0a 20 30 34 35 33 20 43 44 32 ┆H H! PUSH D! PUSH PSW 0453 CD2┆ 0x06b640…06b660 45 30 34 46 31 20 20 09 43 41 4c 4c 20 54 52 41 4e 53 4c 41 54 45 21 20 50 4f 50 20 50 53 57 0d ┆E04F1 CALL TRANSLATE! POP PSW ┆ 0x06b660…06b680 0a 20 30 34 35 37 20 37 37 44 31 45 31 32 33 43 39 09 4d 4f 56 20 4d 2c 41 21 20 50 4f 50 20 44 ┆ 0457 77D1E123C9 MOV M,A! POP D┆ 0x06b680…06b6a0 21 20 50 4f 50 20 48 21 20 49 4e 58 20 48 21 20 52 45 54 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ┆! POP H! INX H! RET ┆ 0x06b6a0…06b6c0 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 54 53 45 52 49 41 4c ┆ ; STSERIAL┆ 0x06b6c0…06b6e0 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 3b 53 54 4f 52 45 20 54 48 45 20 53 ┆: ;STORE THE S┆ 0x06b6e0…06b700 45 52 49 41 4c 20 4e 55 4d 42 45 52 20 49 4e 54 4f 20 41 44 44 52 45 53 53 20 47 49 56 45 4e 20 ┆ERIAL NUMBER INTO ADDRESS GIVEN ┆ 0x06b700…06b720 42 59 20 48 2c 4c 0d 0a 20 30 34 35 43 20 33 41 38 33 30 36 43 44 35 30 09 4c 44 41 20 4f 52 49 ┆BY H,L 045C 3A8306CD50 LDA ORI┆ 0x06b720…06b740 47 49 4e 21 20 43 41 4c 4c 20 53 54 42 59 54 45 20 3b 42 59 54 45 20 53 54 4f 52 45 44 2c 20 48 ┆GIN! CALL STBYTE ;BYTE STORED, H┆ 0x06b740…06b760 2c 4c 20 49 4e 43 52 45 4d 45 4e 54 45 44 0d 0a 20 30 34 36 32 20 33 45 31 36 43 44 35 30 30 34 ┆,L INCREMENTED 0462 3E16CD5004┆ 0x06b760…06b780 09 4d 56 49 20 41 2c 56 45 52 53 49 4f 4e 21 20 43 41 4c 4c 20 53 54 42 59 54 45 20 3b 56 45 52 ┆ MVI A,VERSION! CALL STBYTE ;VER┆ 0x06b780…06b7a0 53 49 4f 4e 20 4e 55 4d 42 45 52 0d 0a 20 30 34 36 37 20 33 41 38 34 30 36 43 44 35 30 09 09 6c ┆SION NUMBER 0467 3A8406CD50 l┆ 0x06b7a0…06b7c0 64 61 20 6f 72 69 67 69 6e 2b 31 20 21 20 63 61 6c 6c 20 73 74 62 79 74 65 09 3b 20 73 74 75 66 ┆da origin+1 ! call stbyte ; stuf┆ 0x06b7c0…06b7e0 66 20 68 69 67 68 28 6f 72 69 67 69 6e 29 0d 0a 20 30 34 36 44 20 41 46 43 44 35 30 30 34 20 20 ┆f high(origin) 046D AFCD5004 ┆ 0x06b7e0…06b800 09 09 58 52 41 20 41 21 20 43 41 4c 4c 20 53 54 42 59 54 45 20 3b 5a 45 52 4f 20 42 59 54 45 0d ┆ XRA A! CALL STBYTE ;ZERO BYTE ┆ 0x06b800…06b820 (28, 1, 6) 34 31 34 34 09 44 42 20 43 52 2c 4c 46 2c 27 42 41 44 20 4d 4f 56 43 50 4d 2e 43 4f 4d 20 46 49 ┆4144 DB CR,LF,'BAD MOVCPM.COM FI┆ 0x06b820…06b840 4c 45 2c 20 52 45 50 4c 41 43 45 24 27 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b ┆LE, REPLACE$' ;┆ 0x06b840…06b860 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 41 44 44 53 4b 3a 0d 0a 20 30 35 39 44 ┆ BADDSK: 059D┆ 0x06b860…06b880 20 31 31 41 33 30 35 43 33 43 34 09 4c 58 49 20 44 2c 24 2b 36 21 20 4a 4d 50 20 50 52 4d 53 47 ┆ 11A305C3C4 LXI D,$+6! JMP PRMSG┆ 0x06b880…06b8a0 0d 0a 20 30 35 41 33 20 30 44 30 41 34 45 34 46 34 45 09 44 42 20 43 52 2c 4c 46 2c 27 4e 4f 4e ┆ 05A3 0D0A4E4F4E DB CR,LF,'NON┆ 0x06b8a0…06b8c0 20 43 50 2f 4d 20 44 49 53 4b 45 54 54 45 2c 20 43 41 4e 4e 4f 54 20 53 45 52 49 41 4c 49 5a 45 ┆ CP/M DISKETTE, CANNOT SERIALIZE┆ 0x06b8c0…06b8e0 24 27 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 ┆$' ; ┆ 0x06b8e0…06b900 20 20 20 20 20 20 20 56 45 52 45 52 52 3a 0d 0a 20 30 35 43 39 20 31 31 43 46 30 35 43 33 43 34 ┆ VERERR: 05C9 11CF05C3C4┆ 0x06b900…06b920 09 4c 58 49 20 44 2c 24 2b 36 21 20 4a 4d 50 20 50 52 4d 53 47 0d 0a 20 30 35 43 46 20 30 44 30 ┆ LXI D,$+6! JMP PRMSG 05CF 0D0┆ 0x06b920…06b940 41 35 36 34 35 35 32 09 44 42 20 43 52 2c 4c 46 2c 27 56 45 52 49 46 49 43 41 54 49 4f 4e 20 45 ┆A564552 DB CR,LF,'VERIFICATION E┆ 0x06b940…06b960 52 52 4f 52 2c 20 42 41 44 20 44 49 53 4b 24 27 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆RROR, BAD DISK$' ┆ 0x06b960…06b980 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4f 56 45 52 4d 53 47 3a 0d 0a 20 ┆ ; OVERMSG: ┆ 0x06b980…06b9a0 30 35 45 45 20 31 31 46 34 30 35 43 33 43 34 09 4c 58 49 20 44 2c 24 2b 36 21 20 4a 4d 50 20 50 ┆05EE 11F405C3C4 LXI D,$+6! JMP P┆ 0x06b9a0…06b9c0 52 4d 53 47 0d 0a 20 30 35 46 34 20 30 44 30 41 35 33 34 35 35 32 09 44 42 20 43 52 2c 4c 46 2c ┆RMSG 05F4 0D0A534552 DB CR,LF,┆ 0x06b9c0…06b9e0 27 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 20 4f 56 45 52 46 4c 4f 57 24 27 0d 0a 20 20 20 20 20 ┆'SERIAL NUMBER OVERFLOW$' ┆ 0x06b9e0…06ba00 20 20 20 20 20 20 20 20 20 20 20 52 45 41 44 30 4d 53 47 3a 0d 0a 20 30 36 30 44 20 31 31 31 33 ┆ READ0MSG: 060D 1113┆ 0x06ba00…06ba20 (28, 1, 7) 56 45 43 54 4f 52 0d 0a 20 30 36 44 30 20 30 31 30 37 30 44 31 33 31 39 54 52 41 4e 3a 09 44 42 ┆VECTOR 06D0 01070D1319TRAN: DB┆ 0x06ba20…06ba40 09 31 2c 37 2c 31 33 2c 31 39 2c 20 32 35 2c 35 2c 31 31 2c 31 37 0d 0a 20 30 36 44 38 20 31 37 ┆ 1,7,13,19, 25,5,11,17 06D8 17┆ 0x06ba40…06ba60 30 33 30 39 30 46 31 35 09 44 42 09 32 33 2c 33 2c 39 2c 31 35 2c 20 32 31 2c 32 2c 38 2c 31 34 ┆03090F15 DB 23,3,9,15, 21,2,8,14┆ 0x06ba60…06ba80 0d 0a 20 30 36 45 30 20 31 34 31 41 30 36 30 43 31 32 09 44 42 09 32 30 2c 32 36 2c 36 2c 31 32 ┆ 06E0 141A060C12 DB 20,26,6,12┆ 0x06ba80…06baa0 2c 20 31 38 2c 32 34 2c 34 2c 31 30 0d 0a 20 30 36 45 38 20 31 30 31 36 20 20 20 20 20 20 09 44 ┆, 18,24,4,10 06E8 1016 D┆ 0x06baa0…06bac0 42 09 31 36 2c 32 32 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 30 36 45 ┆B 16,22 ; 06E┆ 0x06bac0…06bae0 41 20 20 20 20 20 20 20 20 20 20 20 09 44 53 09 33 32 09 3b 53 54 41 43 4b 0d 0a 20 20 20 20 20 ┆A DS 32 ;STACK ┆ 0x06bae0…06bb00 20 20 20 20 20 20 20 20 20 20 20 53 54 41 43 4b 3a 0d 0a 20 30 37 30 41 20 20 20 20 20 20 20 20 ┆ STACK: 070A ┆ 0x06bb00…06bb20 20 20 20 53 50 54 3a 09 44 53 09 31 0d 0a 20 33 43 30 30 20 3d 20 20 20 20 20 20 20 20 20 54 52 ┆ SPT: DS 1 3C00 = TR┆ 0x06bb20…06bb40 4c 45 4e 09 45 51 55 09 31 32 30 2a 31 32 38 09 3b 42 55 46 46 45 52 20 53 49 5a 45 0d 0a 20 30 ┆LEN EQU 120*128 ;BUFFER SIZE 0┆ 0x06bb40…06bb60 37 30 42 20 20 20 20 20 20 20 20 20 20 20 49 42 55 46 46 3a 09 44 53 09 54 52 4c 45 4e 0d 0a 20 ┆70B IBUFF: DS TRLEN ┆ 0x06bb60…06bb80 34 33 30 42 20 20 20 20 20 20 20 20 20 20 20 4f 42 55 46 46 3a 09 44 53 09 54 52 4c 45 4e 0d 0a ┆430B OBUFF: DS TRLEN ┆ 0x06bb80…06bba0 20 30 37 30 42 20 3d 20 20 20 20 20 20 20 20 20 43 43 50 56 09 45 51 55 09 49 42 55 46 46 2b 4f ┆ 070B = CCPV EQU IBUFF+O┆ 0x06bba0…06bbc0 46 46 53 45 54 0d 0a 20 30 46 30 42 20 3d 20 20 20 20 20 20 20 20 20 42 44 4f 53 56 09 45 51 55 ┆FFSET 0F0B = BDOSV EQU┆ 0x06bbc0…06bbe0 09 49 42 55 46 46 2b 28 42 44 4f 53 42 2d 43 43 50 42 29 2b 4f 46 46 53 45 54 0d 0a 20 37 46 30 ┆ IBUFF+(BDOSB-CCPB)+OFFSET 7F0┆ 0x06bbe0…06bc00 42 20 20 20 20 20 20 20 20 20 20 20 09 45 4e 44 09 54 50 41 0d 0a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆B END TPA ┆ 0x06bc00…06bc20 (28, 1, 8) 41 36 44 46 0d 0a 3a 30 46 30 36 42 35 30 30 41 46 42 41 41 43 42 45 41 39 42 41 41 44 42 41 42 ┆A6DF :0F06B500AFBAACBEA9BAADBAB┆ 0x06bc20…06bc40 31 44 46 41 41 41 43 42 41 41 44 30 37 34 35 0d 0a 3a 31 30 30 36 44 30 30 30 30 31 30 37 30 44 ┆1DFAAACBAAD0745 :1006D00001070D┆ 0x06bc40…06bc60 31 33 31 39 30 35 30 42 31 31 31 37 30 33 30 39 30 46 31 35 30 32 30 38 30 45 35 39 0d 0a 3a 30 ┆1319050B111703090F1502080E59 :0┆ 0x06bc60…06bc80 41 30 36 45 30 30 30 31 34 31 41 30 36 30 43 31 32 31 38 30 34 30 41 31 30 31 36 37 32 0d 0a 3a ┆A06E000141A060C1218040A101672 :┆ 0x06bc80…06bca0 30 30 30 31 30 30 30 30 46 46 0d 0a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆00010000FF ┆ 0x06bca0…06bcc0 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆ ┆ […0x2…] 0x06bd00…06bd20 3a 31 30 30 36 35 35 30 30 34 43 34 31 34 33 34 35 32 34 31 31 36 30 30 36 43 33 43 34 30 33 30 ┆:100655004C41434524116006C3C4030┆ 0x06bd20…06bd40 44 30 41 34 33 34 31 34 45 37 32 0d 0a 3a 31 30 30 36 36 35 30 30 34 45 34 46 35 34 32 30 35 32 ┆D0A43414E72 :100665004E4F542052┆ 0x06bd40…06bd60 34 35 32 44 35 32 34 35 34 31 34 34 32 30 34 45 34 35 35 37 32 30 36 41 0d 0a 3a 30 45 30 36 37 ┆452D52454144204E4557206A :0E067┆ 0x06bd60…06bd80 35 30 30 34 34 34 39 35 33 34 42 32 43 32 30 35 32 34 35 35 30 34 43 34 31 34 33 34 35 32 34 45 ┆5004449534B2C205245504C41434524E┆ 0x06bd80…06bda0 30 0d 0a 3a 31 30 30 36 38 35 30 30 30 44 30 41 33 30 33 30 33 30 33 30 33 30 32 44 32 34 30 44 ┆0 :100685000D0A30303030302D240D┆ 0x06bda0…06bdc0 30 41 33 30 33 30 32 30 35 34 35 32 44 30 0d 0a 3a 30 45 30 36 39 35 30 30 34 31 34 33 34 42 35 ┆0A3030205452D0 :0E06950041434B5┆ 0x06bdc0…06bde0 33 32 30 35 36 34 35 35 32 34 39 34 36 34 39 34 35 34 34 32 34 41 33 0d 0a 3a 31 30 30 36 41 35 ┆320564552494649454424A3 :1006A5┆ 0x06bde0…06be00 30 30 33 30 33 30 33 30 33 30 33 30 32 34 42 42 42 36 41 44 44 46 42 41 41 44 42 45 44 46 41 42 ┆00303030303024BBB6ADDFBAADBEDFAB┆ 0x06be00…06be20 (28, 1, 9) 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 3b 4e 4f 57 20 4d 4f 56 45 20 53 45 52 49 ┆ ;NOW MOVE SERI┆ 0x06be20…06be40 41 4c 20 4e 55 4d 42 45 52 20 54 4f 20 4c 41 53 54 20 54 57 4f 20 42 59 54 45 53 0d 0a 20 30 34 ┆AL NUMBER TO LAST TWO BYTES 04┆ 0x06be40…06be60 37 31 20 31 31 41 34 30 36 20 20 20 20 09 4c 58 49 20 44 2c 42 53 45 52 49 41 4c 2b 31 20 3b 41 ┆71 11A406 LXI D,BSERIAL+1 ;A┆ 0x06be60…06be80 44 44 52 45 53 53 20 48 49 47 48 20 4f 52 44 45 52 20 50 4f 53 49 54 49 4f 4e 20 4f 46 20 53 45 ┆DDRESS HIGH ORDER POSITION OF SE┆ 0x06be80…06bea0 52 20 23 0d 0a 20 30 34 37 34 20 31 41 43 44 35 30 30 34 20 20 09 4c 44 41 58 20 44 21 20 43 41 ┆R # 0474 1ACD5004 LDAX D! CA┆ 0x06bea0…06bec0 4c 4c 20 53 54 42 59 54 45 0d 0a 20 30 34 37 38 20 31 42 20 20 20 20 20 20 20 20 09 44 43 58 20 ┆LL STBYTE 0478 1B DCX ┆ 0x06bec0…06bee0 44 20 3b 41 44 44 52 45 53 53 20 4c 4f 57 20 4f 52 44 45 52 20 42 59 54 45 0d 0a 20 30 34 37 39 ┆D ;ADDRESS LOW ORDER BYTE 0479┆ 0x06bee0…06bf00 20 31 41 43 44 35 30 30 34 20 20 09 4c 44 41 58 20 44 21 20 43 41 4c 4c 20 53 54 42 59 54 45 0d ┆ 1ACD5004 LDAX D! CALL STBYTE ┆ 0x06bf00…06bf20 0a 20 30 34 37 44 20 43 39 20 20 20 20 20 20 20 20 09 52 45 54 0d 0a 20 20 20 20 20 20 20 20 20 ┆ 047D C9 RET ┆ 0x06bf20…06bf40 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 ┆ ; ; ┆ 0x06bf40…06bf60 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 09 50 52 49 4e 54 20 53 54 52 49 4e 47 53 0d 0a 20 20 ┆ ; PRINT STRINGS ┆ 0x06bf60…06bf80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 4e 53 4d 53 47 3a 0d 0a 20 30 34 37 45 20 31 31 38 ┆ INSMSG: 047E 118┆ 0x06bf80…06bfa0 34 30 34 43 33 43 34 09 4c 58 49 20 44 2c 24 2b 36 21 20 4a 4d 50 20 50 52 4d 53 47 0d 0a 20 30 ┆404C3C4 LXI D,$+6! JMP PRMSG 0┆ 0x06bfa0…06bfc0 34 38 34 20 30 44 30 41 34 39 34 45 35 33 09 44 42 20 43 52 2c 4c 46 2c 27 49 4e 53 45 52 54 20 ┆484 0D0A494E53 DB CR,LF,'INSERT ┆ 0x06bfc0…06bfe0 43 4f 4e 54 52 4f 4c 20 44 49 53 4b 45 54 54 45 20 49 4e 20 41 2c 20 54 59 50 45 20 52 45 54 55 ┆CONTROL DISKETTE IN A, TYPE RETU┆ 0x06bfe0…06c000 52 4e 24 27 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 ┆RN$' ; ┆ 0x06c000…06c020 (28, 1, 10) 30 36 43 33 43 34 09 4c 58 49 20 44 2c 24 2b 36 21 20 4a 4d 50 20 50 52 4d 53 47 0d 0a 20 30 36 ┆06C3C4 LXI D,$+6! JMP PRMSG 06┆ 0x06c020…06c040 31 33 20 30 44 30 41 34 35 35 32 35 32 09 44 42 20 43 52 2c 4c 46 2c 27 45 52 52 4f 52 20 4f 4e ┆13 0D0A455252 DB CR,LF,'ERROR ON┆ 0x06c040…06c060 20 53 4f 55 52 43 45 20 44 49 53 4b 2c 20 52 45 50 4c 41 43 45 24 27 0d 0a 20 20 20 20 20 20 20 ┆ SOURCE DISK, REPLACE$' ┆ 0x06c060…06c080 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 57 52 49 54 ┆ ; WRIT┆ 0x06c080…06c0a0 45 30 4d 53 47 3a 0d 0a 20 30 36 33 33 20 31 31 33 39 30 36 43 33 43 34 09 4c 58 49 20 44 2c 24 ┆E0MSG: 0633 113906C3C4 LXI D,$┆ 0x06c0a0…06c0c0 2b 36 21 20 4a 4d 50 20 50 52 4d 53 47 0d 0a 20 30 36 33 39 20 30 44 30 41 34 33 34 31 34 45 09 ┆+6! JMP PRMSG 0639 0D0A43414E ┆ 0x06c0c0…06c0e0 44 42 20 43 52 2c 4c 46 2c 27 43 41 4e 4e 4f 54 20 57 52 49 54 45 20 4e 45 57 20 44 49 53 4b 2c ┆DB CR,LF,'CANNOT WRITE NEW DISK,┆ 0x06c0e0…06c100 20 52 45 50 4c 41 43 45 24 27 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 ┆ REPLACE$' ; ┆ 0x06c100…06c120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 45 41 44 31 4d 53 47 3a 0d 0a 20 30 36 35 41 20 ┆ READ1MSG: 065A ┆ 0x06c120…06c140 31 31 36 30 30 36 43 33 43 34 09 4c 58 49 20 44 2c 24 2b 36 21 20 4a 4d 50 20 50 52 4d 53 47 0d ┆116006C3C4 LXI D,$+6! JMP PRMSG ┆ 0x06c140…06c160 0a 20 30 36 36 30 20 30 44 30 41 34 33 34 31 34 45 09 44 42 20 43 52 2c 4c 46 2c 27 43 41 4e 4e ┆ 0660 0D0A43414E DB CR,LF,'CANN┆ 0x06c160…06c180 4f 54 20 52 45 2d 52 45 41 44 20 4e 45 57 20 44 49 53 4b 2c 20 52 45 50 4c 41 43 45 24 27 0d 0a ┆OT RE-READ NEW DISK, REPLACE$' ┆ 0x06c180…06c1a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ; ┆ 0x06c1a0…06c1c0 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 09 4d 49 53 43 45 4c 4c 41 ┆ ; ; MISCELLA┆ 0x06c1c0…06c1e0 4e 45 4f 55 53 20 44 41 54 41 20 41 52 45 41 53 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆NEOUS DATA AREAS ┆ 0x06c1e0…06c200 20 20 3b 0d 0a 20 30 36 38 33 20 20 20 20 20 20 20 20 20 20 20 4f 52 49 47 49 4e 3a 09 44 53 09 ┆ ; 0683 ORIGIN: DS ┆ 0x06c200…06c220 (28, 1, 11) 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 34 09 2d 20 64 61 74 61 20 6f 76 65 72 2f 75 6e 64 65 72 ┆function) ; 4 - data over/under┆ 0x06c220…06c240 20 66 6c 6f 77 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 ┆ flow (hardware malfunction) ; ┆ 0x06c240…06c260 35 09 2d 20 77 72 69 74 65 20 70 72 6f 74 65 63 74 20 28 74 72 65 61 74 65 64 20 61 73 20 6e 6f ┆5 - write protect (treated as no┆ 0x06c260…06c280 74 20 72 65 61 64 79 29 0d 0a 3b 09 36 09 2d 20 77 72 69 74 65 20 65 72 72 6f 72 20 28 68 61 72 ┆t ready) ; 6 - write error (har┆ 0x06c280…06c2a0 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 37 09 2d 20 6e 6f 74 20 72 65 ┆dware malfunction) ; 7 - not re┆ 0x06c2a0…06c2c0 61 64 79 0d 0a 3b 09 28 61 63 63 75 6d 75 6c 61 74 6f 72 20 62 69 74 73 20 61 72 65 20 6e 75 6d ┆ady ; (accumulator bits are num┆ 0x06c2c0…06c2e0 62 65 72 65 64 20 37 20 36 20 35 20 34 20 33 20 32 20 31 20 30 29 0d 0a 3b 0d 0a 3b 09 69 74 20 ┆bered 7 6 5 4 3 2 1 0) ; ; it ┆ 0x06c2e0…06c300 6d 61 79 20 62 65 20 75 73 65 66 75 6c 20 74 6f 20 66 69 6c 74 65 72 20 6f 75 74 20 74 68 65 20 ┆may be useful to filter out the ┆ 0x06c300…06c320 76 61 72 69 6f 75 73 20 63 6f 6e 64 69 74 69 6f 6e 73 2c 0d 0a 3b 09 62 75 74 20 77 65 20 77 69 ┆various conditions, ; but we wi┆ 0x06c320…06c340 6c 6c 20 67 65 74 20 61 20 70 65 72 6d 61 6e 65 6e 74 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 ┆ll get a permanent error message┆ 0x06c340…06c360 20 69 66 20 69 74 20 69 73 20 6e 6f 74 0d 0a 3b 09 72 65 63 6f 76 65 72 61 62 6c 65 2e 20 20 69 ┆ if it is not ; recoverable. i┆ 0x06c360…06c380 6e 20 61 6e 79 20 63 61 73 65 2c 20 74 68 65 20 6e 6f 74 20 72 65 61 64 79 20 63 6f 6e 64 69 74 ┆n any case, the not ready condit┆ 0x06c380…06c3a0 69 6f 6e 20 69 73 0d 0a 3b 09 74 72 65 61 74 65 64 20 61 73 20 61 20 73 65 70 61 72 61 74 65 20 ┆ion is ; treated as a separate ┆ 0x06c3a0…06c3c0 63 6f 6e 64 69 74 69 6f 6e 20 66 6f 72 20 6c 61 74 65 72 20 69 6d 70 72 6f 76 65 6d 65 6e 74 0d ┆condition for later improvement ┆ 0x06c3c0…06c3e0 0a 74 72 79 63 6f 75 6e 74 3a 0d 0a 3b 09 72 65 67 69 73 74 65 72 20 63 20 63 6f 6e 74 61 69 6e ┆ trycount: ; register c contain┆ 0x06c3e0…06c400 73 20 72 65 74 72 79 20 63 6f 75 6e 74 2c 20 64 65 63 72 65 6d 65 6e 74 20 27 74 69 6c 20 7a 65 ┆s retry count, decrement 'til ze┆ 0x06c400…06c420 (28, 1, 12) 74 6f 20 6c 6f 61 64 0d 0a 6f 66 66 73 65 74 09 65 71 75 09 32 09 3b 6e 75 6d 62 65 72 20 6f 66 ┆to load offset equ 2 ;number of┆ 0x06c420…06c440 20 64 69 73 6b 20 74 72 61 63 6b 73 20 75 73 65 64 20 62 79 20 63 70 2f 6d 0d 0a 63 64 69 73 6b ┆ disk tracks used by cp/m cdisk┆ 0x06c440…06c460 09 65 71 75 09 30 30 30 34 68 09 3b 61 64 64 72 65 73 73 20 6f 66 20 6c 61 73 74 20 6c 6f 67 67 ┆ equ 0004h ;address of last logg┆ 0x06c460…06c480 65 64 20 64 69 73 6b 20 6f 6e 20 77 61 72 6d 20 73 74 61 72 74 0d 0a 62 75 66 66 09 65 71 75 09 ┆ed disk on warm start buff equ ┆ 0x06c480…06c4a0 30 30 38 30 68 09 3b 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 0d 0a 72 ┆0080h ;default buffer address r┆ 0x06c4a0…06c4c0 65 74 72 79 09 65 71 75 09 31 30 09 3b 6d 61 78 20 72 65 74 72 69 65 73 20 6f 6e 20 64 69 73 6b ┆etry equ 10 ;max retries on disk┆ 0x06c4c0…06c4e0 20 69 2f 6f 20 62 65 66 6f 72 65 20 65 72 72 6f 72 0d 0a 3b 0d 0a 3b 09 70 65 72 66 6f 72 6d 20 ┆ i/o before error ; ; perform ┆ 0x06c4e0…06c500 66 6f 6c 6c 6f 77 69 6e 67 20 66 75 6e 63 74 69 6f 6e 73 0d 0a 3b 09 62 6f 6f 74 09 63 6f 6c 64 ┆following functions ; boot cold┆ 0x06c500…06c520 20 73 74 61 72 74 0d 0a 3b 09 77 62 6f 6f 74 09 77 61 72 6d 20 73 74 61 72 74 20 28 73 61 76 65 ┆ start ; wboot warm start (save┆ 0x06c520…06c540 20 69 2f 6f 20 62 79 74 65 29 0d 0a 3b 09 28 62 6f 6f 74 20 61 6e 64 20 77 62 6f 6f 74 20 61 72 ┆ i/o byte) ; (boot and wboot ar┆ 0x06c540…06c560 65 20 74 68 65 20 73 61 6d 65 20 66 6f 72 20 6d 64 73 29 0d 0a 3b 09 63 6f 6e 73 74 09 63 6f 6e ┆e the same for mds) ; const con┆ 0x06c560…06c580 73 6f 6c 65 20 73 74 61 74 75 73 0d 0a 3b 09 09 72 65 67 2d 61 20 3d 20 30 30 20 69 66 20 6e 6f ┆sole status ; reg-a = 00 if no┆ 0x06c580…06c5a0 20 63 68 61 72 61 63 74 65 72 20 72 65 61 64 79 0d 0a 3b 09 09 72 65 67 2d 61 20 3d 20 66 66 20 ┆ character ready ; reg-a = ff ┆ 0x06c5a0…06c5c0 69 66 20 63 68 61 72 61 63 74 65 72 20 72 65 61 64 79 0d 0a 3b 09 63 6f 6e 69 6e 09 63 6f 6e 73 ┆if character ready ; conin cons┆ 0x06c5c0…06c5e0 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 28 72 65 73 75 6c 74 20 69 6e 20 72 65 67 2d ┆ole character in (result in reg-┆ 0x06c5e0…06c600 61 29 0d 0a 3b 09 63 6f 6e 6f 75 74 09 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 6f ┆a) ; conout console character o┆ 0x06c600…06c620 (28, 1, 13) 20 20 20 20 20 20 20 20 20 4f 52 47 4d 53 47 3a 0d 0a 20 30 34 42 30 20 31 31 42 36 30 34 43 33 ┆ ORGMSG: 04B0 11B604C3┆ 0x06c620…06c640 43 34 09 4c 58 49 20 44 2c 24 2b 36 21 20 4a 4d 50 20 50 52 4d 53 47 0d 0a 20 30 34 42 36 20 30 ┆C4 LXI D,$+6! JMP PRMSG 04B6 0┆ 0x06c640…06c660 44 30 41 34 33 35 30 32 46 09 44 42 20 43 52 2c 4c 46 2c 27 43 50 2f 4d 20 56 45 52 20 27 0d 0a ┆D0A43502F DB CR,LF,'CP/M VER ' ┆ 0x06c660…06c680 20 30 34 43 31 20 33 32 32 45 33 32 20 20 20 20 09 44 42 20 56 45 52 53 49 4f 4e 2f 31 30 2b 27 ┆ 04C1 322E32 DB VERSION/10+'┆ 0x06c680…06c6a0 30 27 2c 27 2e 27 2c 56 45 52 53 49 4f 4e 20 4d 4f 44 20 31 30 20 2b 27 30 27 0d 0a 20 30 34 43 ┆0','.',VERSION MOD 10 +'0' 04C┆ 0x06c6a0…06c6c0 34 20 32 30 35 33 34 35 35 32 34 39 09 44 42 20 27 20 53 45 52 49 41 4c 49 5a 41 54 49 4f 4e 2c ┆4 2053455249 DB ' SERIALIZATION,┆ 0x06c6c0…06c6e0 27 2c 43 52 2c 4c 46 0d 0a 20 30 34 44 35 20 34 46 35 32 34 39 34 37 34 39 09 44 42 20 27 4f 52 ┆',CR,LF 04D5 4F52494749 DB 'OR┆ 0x06c6e0…06c700 49 47 49 4e 20 4e 55 4d 42 45 52 3f 20 24 27 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆IGIN NUMBER? $' ┆ 0x06c700…06c720 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 45 52 4d 53 47 3a 0d 0a 20 30 34 ┆ ; SERMSG: 04┆ 0x06c720…06c740 45 35 20 31 31 45 42 30 34 43 33 43 34 09 4c 58 49 20 44 2c 24 2b 36 21 20 4a 4d 50 20 50 52 4d ┆E5 11EB04C3C4 LXI D,$+6! JMP PRM┆ 0x06c740…06c760 53 47 0d 0a 20 30 34 45 42 20 30 44 30 41 35 33 35 34 34 31 09 44 42 20 43 52 2c 4c 46 2c 27 53 ┆SG 04EB 0D0A535441 DB CR,LF,'S┆ 0x06c760…06c780 54 41 52 54 49 4e 47 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 3f 20 24 27 0d 0a 20 20 20 20 20 ┆TARTING SERIAL NUMBER? $' ┆ 0x06c780…06c7a0 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 4e ┆ ; IN┆ 0x06c7a0…06c7c0 56 41 4c 49 44 3a 0d 0a 20 30 35 30 36 20 31 31 30 43 30 35 43 33 43 34 09 4c 58 49 20 44 2c 24 ┆VALID: 0506 110C05C3C4 LXI D,$┆ 0x06c7c0…06c7e0 2b 36 21 20 4a 4d 50 20 50 52 4d 53 47 0d 0a 20 30 35 30 43 20 30 44 30 41 34 39 34 45 35 36 09 ┆+6! JMP PRMSG 050C 0D0A494E56 ┆ 0x06c7e0…06c800 44 42 20 43 52 2c 4c 46 2c 27 49 4e 56 41 4c 49 44 20 4e 55 4d 42 45 52 2c 20 54 52 59 20 41 47 ┆DB CR,LF,'INVALID NUMBER, TRY AG┆ 0x06c800…06c820 (28, 1, 14) 32 09 3b 42 49 4e 41 52 59 20 4f 52 49 47 49 4e 0d 0a 20 30 36 38 35 20 30 44 30 41 20 20 20 20 ┆2 ;BINARY ORIGIN 0685 0D0A ┆ 0x06c820…06c840 20 20 41 4f 52 49 47 3a 09 44 42 09 43 52 2c 4c 46 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ AORIG: DB CR,LF ┆ 0x06c840…06c860 20 20 20 41 4f 52 49 47 49 4e 3a 0d 0a 20 30 36 38 37 20 33 30 33 30 33 30 33 30 33 30 09 44 42 ┆ AORIGIN: 0687 3030303030 DB┆ 0x06c860…06c880 09 27 30 30 30 30 30 2d 24 27 0d 0a 20 30 36 38 45 20 30 44 30 41 20 20 20 20 20 20 54 52 4d 53 ┆ '00000-$' 068E 0D0A TRMS┆ 0x06c880…06c8a0 47 3a 09 44 42 09 43 52 2c 4c 46 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 54 52 43 ┆G: DB CR,LF TRC┆ 0x06c8a0…06c8c0 4f 55 4e 54 3a 0d 0a 20 30 36 39 30 20 33 30 33 30 32 30 35 34 35 32 09 44 42 09 27 30 30 20 54 ┆OUNT: 0690 3030205452 DB '00 T┆ 0x06c8c0…06c8e0 52 41 43 4b 53 20 56 45 52 49 46 49 45 44 24 27 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆RACKS VERIFIED$' ┆ 0x06c8e0…06c900 20 20 42 53 45 52 49 41 4c 3a 0d 0a 20 30 36 41 33 20 20 20 20 20 20 20 20 20 20 20 09 44 53 09 ┆ BSERIAL: 06A3 DS ┆ 0x06c900…06c920 32 09 3b 42 49 4e 41 52 59 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 0d 0a 20 20 20 20 20 20 20 ┆2 ;BINARY SERIAL NUMBER ┆ 0x06c920…06c940 20 20 20 20 20 20 20 20 20 41 53 45 52 49 41 4c 3a 0d 0a 20 30 36 41 35 20 33 30 33 30 33 30 33 ┆ ASERIAL: 06A5 3030303┆ 0x06c940…06c960 30 33 30 09 44 42 09 27 30 30 30 30 30 24 27 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆030 DB '00000$' ┆ 0x06c960…06c980 20 43 4f 4d 50 41 52 45 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 3b 43 4f 4d ┆ COMPARE: ;COM┆ 0x06c980…06c9a0 4d 41 4e 44 53 20 41 52 45 20 45 4e 43 4f 44 45 44 20 54 4f 20 4d 41 4b 45 20 44 49 53 41 53 53 ┆MANDS ARE ENCODED TO MAKE DISASS┆ 0x06c9a0…06c9c0 45 4d 42 4c 59 20 48 41 52 44 45 52 0d 0a 20 30 36 41 42 20 42 42 42 36 41 44 44 46 20 20 09 44 ┆EMBLY HARDER 06AB BBB6ADDF D┆ 0x06c9c0…06c9e0 57 09 4e 4f 54 20 27 44 49 27 2c 4e 4f 54 20 27 52 20 27 0d 0a 20 30 36 41 46 20 42 41 41 44 42 ┆W NOT 'DI',NOT 'R ' 06AF BAADB┆ 0x06c9e0…06ca00 45 44 46 20 20 09 44 57 09 4e 4f 54 20 27 45 52 27 2c 4e 4f 54 20 27 41 20 27 0d 0a 20 30 36 42 ┆EDF DW NOT 'ER',NOT 'A ' 06B┆ 0x06ca00…06ca20 (28, 1, 15) 72 6f 0d 0a 09 64 63 72 09 63 0d 0a 09 6a 6e 7a 09 72 65 77 61 69 74 09 3b 66 6f 72 20 61 6e 6f ┆ro dcr c jnz rewait ;for ano┆ 0x06ca20…06ca40 74 68 65 72 20 74 72 79 0d 0a 3b 0d 0a 3b 09 63 61 6e 6e 6f 74 20 72 65 63 6f 76 65 72 20 66 72 ┆ther try ; ; cannot recover fr┆ 0x06ca40…06ca60 6f 6d 20 65 72 72 6f 72 0d 0a 09 6d 76 69 09 61 2c 31 09 3b 65 72 72 6f 72 20 63 6f 64 65 0d 0a ┆om error mvi a,1 ;error code ┆ 0x06ca60…06ca80 09 72 65 74 0d 0a 3b 0d 0a 3b 09 69 6e 74 79 70 65 2c 20 69 6e 62 79 74 65 2c 20 69 6e 73 74 61 ┆ ret ; ; intype, inbyte, insta┆ 0x06ca80…06caa0 74 20 72 65 61 64 20 64 72 69 76 65 20 62 61 6e 6b 20 30 30 20 6f 72 20 31 30 0d 0a 69 6e 74 79 ┆t read drive bank 00 or 10 inty┆ 0x06caa0…06cac0 70 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 74 79 ┆pe: lda dbank ora a jnz inty┆ 0x06cac0…06cae0 70 31 09 3b 73 6b 69 70 20 74 6f 20 62 61 6e 6b 20 31 30 0d 0a 09 69 6e 09 72 74 79 70 65 0d 0a ┆p1 ;skip to bank 10 in rtype ┆ 0x06cae0…06cb00 09 72 65 74 0d 0a 69 6e 74 79 70 31 3a 09 69 6e 09 72 74 79 70 65 2b 31 30 68 09 3b 37 38 20 66 ┆ ret intyp1: in rtype+10h ;78 f┆ 0x06cb00…06cb20 6f 72 20 30 2c 31 20 20 38 38 20 66 6f 72 20 32 2c 33 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 69 6e 62 ┆or 0,1 88 for 2,3 ret ; inb┆ 0x06cb20…06cb40 79 74 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 62 ┆yte: lda dbank ora a jnz inb┆ 0x06cb40…06cb60 79 74 31 0d 0a 09 69 6e 09 72 62 79 74 65 0d 0a 09 72 65 74 0d 0a 69 6e 62 79 74 31 3a 09 69 6e ┆yt1 in rbyte ret inbyt1: in┆ 0x06cb60…06cb80 09 72 62 79 74 65 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 69 6e 73 74 61 74 3a 09 6c 64 61 ┆ rbyte+10h ret ; instat: lda┆ 0x06cb80…06cba0 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 73 74 61 31 0d 0a 09 69 6e ┆ dbank ora a jnz insta1 in┆ 0x06cba0…06cbc0 09 64 73 74 61 74 0d 0a 09 72 65 74 0d 0a 69 6e 73 74 61 31 3a 09 69 6e 09 64 73 74 61 74 2b 31 ┆ dstat ret insta1: in dstat+1┆ 0x06cbc0…06cbe0 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 61 74 61 20 61 72 65 61 73 20 ┆0h ret ; ; ; ; data areas ┆ 0x06cbe0…06cc00 28 6d 75 73 74 20 62 65 20 69 6e 20 72 61 6d 29 0d 0a 64 62 61 6e 6b 3a 09 64 62 09 30 09 3b 64 ┆(must be in ram) dbank: db 0 ;d┆ 0x06cc00…06cc20 (29, 0, 1) 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 6c 69 73 74 09 6c 69 73 74 20 ┆ut (char in reg-c) ; list list ┆ 0x06cc20…06cc40 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 70 75 6e 63 68 09 70 75 6e ┆out (char in reg-c) ; punch pun┆ 0x06cc40…06cc60 63 68 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 72 65 61 64 65 72 ┆ch out (char in reg-c) ; reader┆ 0x06cc60…06cc80 09 70 61 70 65 72 20 74 61 70 65 20 72 65 61 64 65 72 20 69 6e 20 28 72 65 73 75 6c 74 20 74 6f ┆ paper tape reader in (result to┆ 0x06cc80…06cca0 20 72 65 67 2d 61 29 0d 0a 3b 09 68 6f 6d 65 09 6d 6f 76 65 20 74 6f 20 74 72 61 63 6b 20 30 30 ┆ reg-a) ; home move to track 00┆ 0x06cca0…06ccc0 0d 0a 3b 0d 0a 3b 09 28 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 61 6c 6c 73 20 73 65 74 2d ┆ ; ; (the following calls set-┆ 0x06ccc0…06cce0 75 70 20 74 68 65 20 69 6f 20 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 20 66 6f 72 20 74 68 ┆up the io parameter block for th┆ 0x06cce0…06cd00 65 0d 0a 3b 09 6d 64 73 2c 20 77 68 69 63 68 20 69 73 20 75 73 65 64 20 74 6f 20 70 65 72 66 6f ┆e ; mds, which is used to perfo┆ 0x06cd00…06cd20 72 6d 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 73 20 61 6e 64 20 77 72 69 74 65 73 29 0d ┆rm subsequent reads and writes) ┆ 0x06cd20…06cd40 0a 3b 09 73 65 6c 64 73 6b 09 73 65 6c 65 63 74 20 64 69 73 6b 20 67 69 76 65 6e 20 62 79 20 72 ┆ ; seldsk select disk given by r┆ 0x06cd40…06cd60 65 67 2d 63 20 28 30 2c 31 2c 32 2e 2e 2e 29 0d 0a 3b 09 73 65 74 74 72 6b 09 73 65 74 20 74 72 ┆eg-c (0,1,2...) ; settrk set tr┆ 0x06cd60…06cd80 61 63 6b 20 61 64 64 72 65 73 73 20 28 30 2c 2e 2e 2e 37 36 29 20 66 6f 72 20 73 75 62 73 65 71 ┆ack address (0,...76) for subseq┆ 0x06cd80…06cda0 75 65 6e 74 20 72 65 61 64 2f 77 72 69 74 65 0d 0a 3b 09 73 65 74 73 65 63 09 73 65 74 20 73 65 ┆uent read/write ; setsec set se┆ 0x06cda0…06cdc0 63 74 6f 72 20 61 64 64 72 65 73 73 20 28 31 2c 2e 2e 2e 2c 32 36 29 20 66 6f 72 20 73 75 62 73 ┆ctor address (1,...,26) for subs┆ 0x06cdc0…06cde0 65 71 75 65 6e 74 20 72 65 61 64 2f 77 72 69 74 65 0d 0a 3b 09 73 65 74 64 6d 61 09 73 65 74 20 ┆equent read/write ; setdma set ┆ 0x06cde0…06ce00 73 75 62 73 65 71 75 65 6e 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 28 69 6e 69 74 69 61 6c 6c ┆subsequent dma address (initiall┆ 0x06ce00…06ce20 (29, 0, 2) 42 45 52 3f 20 24 11 0c 05 c3 c4 03 0d 0a 49 4e 56 41 4c 49 44 20 4e 55 4d 42 45 52 2c 20 54 52 ┆BER? $ INVALID NUMBER, TR┆ 0x06ce20…06ce40 59 20 41 47 41 49 4e 20 24 11 2f 05 c3 c4 03 0d 0a 53 45 52 49 41 4c 49 5a 49 4e 47 20 44 49 53 ┆Y AGAIN $ / SERIALIZING DIS┆ 0x06ce40…06ce60 4b 20 24 11 87 06 cd c4 03 11 a5 06 c3 c4 03 11 55 05 c3 c4 03 0d 0a 49 4e 53 45 52 54 20 4e 45 ┆K $ U INSERT NE┆ 0x06ce60…06ce80 57 20 44 49 53 4b 45 54 54 45 2c 20 54 59 50 45 20 52 45 54 55 52 4e 24 11 7e 05 c3 c4 03 0d 0a ┆W DISKETTE, TYPE RETURN$ ü ┆ 0x06ce80…06cea0 42 41 44 20 4d 4f 56 43 50 4d 2e 43 4f 4d 20 46 49 4c 45 2c 20 52 45 50 4c 41 43 45 24 11 a3 05 ┆BAD MOVCPM.COM FILE, REPLACE$ ┆ 0x06cea0…06cec0 c3 c4 03 0d 0a 4e 4f 4e 20 43 50 2f 4d 20 44 49 53 4b 45 54 54 45 2c 20 43 41 4e 4e 4f 54 20 53 ┆ NON CP/M DISKETTE, CANNOT S┆ 0x06cec0…06cee0 45 52 49 41 4c 49 5a 45 24 11 cf 05 c3 c4 03 0d 0a 56 45 52 49 46 49 43 41 54 49 4f 4e 20 45 52 ┆ERIALIZE$ VERIFICATION ER┆ 0x06cee0…06cf00 52 4f 52 2c 20 42 41 44 20 44 49 53 4b 24 11 f4 05 c3 c4 03 0d 0a 53 45 52 49 41 4c 20 4e 55 4d ┆ROR, BAD DISK$ SERIAL NUM┆ 0x06cf00…06cf20 42 45 52 20 4f 56 45 52 46 4c 4f 57 24 11 13 06 c3 c4 03 0d 0a 45 52 52 4f 52 20 4f 4e 20 53 4f ┆BER OVERFLOW$ ERROR ON SO┆ 0x06cf20…06cf40 55 52 43 45 20 44 49 53 4b 2c 20 52 45 50 4c 41 43 45 24 11 39 06 c3 c4 03 0d 0a 43 41 4e 4e 4f ┆URCE DISK, REPLACE$ 9 CANNO┆ 0x06cf40…06cf60 54 20 57 52 49 54 45 20 4e 45 57 20 44 49 53 4b 2c 20 52 45 50 4c 41 43 45 24 11 60 06 c3 c4 03 ┆T WRITE NEW DISK, REPLACE$ ` ┆ 0x06cf60…06cf80 0d 0a 43 41 4e 4e 4f 54 20 52 45 2d 52 45 41 44 20 4e 45 57 20 44 49 53 4b 2c 20 52 45 50 4c 41 ┆ CANNOT RE-READ NEW DISK, REPLA┆ 0x06cf80…06cfa0 43 45 24 20 4d 0d 0a 30 30 30 30 30 2d 24 0d 0a 30 30 20 54 52 41 43 4b 53 20 56 45 52 49 46 49 ┆CE$ M 00000-$ 00 TRACKS VERIFI┆ 0x06cfa0…06cfc0 45 44 24 0d 0a 30 30 30 30 30 24 bb b6 ad df ba ad be df ab a6 af ba ac be a9 ba ad ba b1 df aa ┆ED$ 00000$ ┆ 0x06cfc0…06cfe0 ac ba ad 07 4c 49 5a 45 24 11 cf 05 c3 c4 03 0d 01 07 0d 13 19 05 0b 11 17 03 09 0f 15 02 08 0e ┆ LIZE$ ┆ 0x06cfe0…06d000 14 1a 06 0c 12 18 04 0a 10 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x06d000…06d020 (29, 0, 3) 56 09 3b 0d 0a 50 44 50 3a 09 4c 58 49 09 44 2c 44 44 53 50 45 43 3b 20 50 52 49 4e 54 20 44 45 ┆V ; PDP: LXI D,DDSPEC; PRINT DE┆ 0x06d020…06d040 53 54 49 4e 41 54 49 4f 4e 20 50 52 4f 4d 50 54 3b 0d 0a 09 43 41 4c 4c 09 50 52 49 4e 54 09 3b ┆STINATION PROMPT; CALL PRINT ;┆ 0x06d040…06d060 0d 0a 09 43 41 4c 4c 09 43 4f 4e 53 49 09 3b 20 47 45 54 20 44 45 53 54 49 4e 41 54 49 4f 4e 20 ┆ CALL CONSI ; GET DESTINATION ┆ 0x06d060…06d080 44 52 49 56 45 3b 0d 0a 09 4d 56 49 09 43 2c 30 09 3b 0d 0a 09 43 50 49 09 27 41 27 09 3b 0d 0a ┆DRIVE; MVI C,0 ; CPI 'A' ; ┆ 0x06d080…06d0a0 09 4a 5a 09 53 45 54 44 44 09 3b 0d 0a 09 43 50 49 09 27 42 27 09 3b 0d 0a 09 4a 4e 5a 09 50 44 ┆ JZ SETDD ; CPI 'B' ; JNZ PD┆ 0x06d0a0…06d0c0 50 09 3b 0d 0a 09 49 4e 52 09 43 09 3b 0d 0a 53 45 54 44 44 3a 09 4d 4f 56 09 41 2c 43 09 3b 0d ┆P ; INR C ; SETDD: MOV A,C ; ┆ 0x06d0c0…06d0e0 0a 09 53 54 41 09 44 44 52 49 56 09 3b 0d 0a 09 4c 48 4c 44 09 57 42 4f 4f 54 09 3b 20 42 43 3a ┆ STA DDRIV ; LHLD WBOOT ; BC:┆ 0x06d0e0…06d100 3d 20 46 4c 4f 50 50 59 20 46 4f 52 4d 41 54 53 3b 0d 0a 09 4c 58 49 09 44 2c 46 44 46 4f 52 4d ┆= FLOPPY FORMATS; LXI D,FDFORM┆ 0x06d100…06d120 3b 0d 0a 09 44 41 44 09 44 09 3b 0d 0a 09 4d 4f 56 09 42 2c 4d 09 3b 0d 0a 09 49 4e 58 09 48 09 ┆; DAD D ; MOV B,M ; INX H ┆ 0x06d120…06d140 3b 0d 0a 09 4d 4f 56 09 43 2c 4d 09 3b 0d 0a 09 4c 58 49 09 48 2c 53 44 52 49 56 09 3b 20 49 46 ┆; MOV C,M ; LXI H,SDRIV ; IF┆ 0x06d140…06d160 20 53 4f 55 52 43 45 20 44 52 49 56 45 20 3c 3e 0d 0a 09 43 4d 50 09 4d 09 3b 20 20 44 45 53 54 ┆ SOURCE DRIVE <> CMP M ; DEST┆ 0x06d160…06d180 49 4e 41 54 49 4f 4e 20 44 52 49 56 45 20 54 48 45 4e 0d 0a 09 4d 56 49 09 41 2c 30 09 3b 0d 0a ┆INATION DRIVE THEN MVI A,0 ; ┆ 0x06d180…06d1a0 09 4a 5a 09 53 45 54 44 46 09 3b 0d 0a 09 4d 4f 56 09 41 2c 42 09 3b 0d 0a 09 43 4d 50 09 43 09 ┆ JZ SETDF ; MOV A,B ; CMP C ┆ 0x06d1a0…06d1c0 3b 20 49 46 20 46 4f 52 4d 41 54 28 41 29 3c 3e 46 4f 52 4d 41 54 28 42 29 20 54 48 45 4e 0d 0a ┆; IF FORMAT(A)<>FORMAT(B) THEN ┆ 0x06d1c0…06d1e0 09 4c 58 49 09 44 2c 4e 4f 54 4f 4b 09 3b 0d 0a 09 43 4e 5a 09 46 49 4e 49 53 09 3b 20 20 45 58 ┆ LXI D,NOTOK ; CNZ FINIS ; EX┆ 0x06d1e0…06d200 49 54 28 4e 4f 54 20 41 4c 4c 4f 57 45 44 29 3b 0d 0a 09 50 55 53 48 09 42 09 3b 0d 0a 09 4c 58 ┆IT(NOT ALLOWED); PUSH B ; LX┆ 0x06d200…06d220 (29, 0, 4) 4a 4e 5a 09 4e 45 58 54 53 09 3b 20 42 45 47 49 4e 0d 0a 09 4c 44 41 09 4c 54 52 4b 09 3b 0d 0a ┆JNZ NEXTS ; BEGIN LDA LTRK ; ┆ 0x06d220…06d240 09 43 4d 50 09 42 09 3b 20 20 20 20 49 46 20 54 52 4b 3d 4c 41 53 54 20 54 48 45 4e 20 47 4f 54 ┆ CMP B ; IF TRK=LAST THEN GOT┆ 0x06d240…06d260 4f 20 57 52 49 54 45 3b 0d 0a 09 4a 5a 09 57 44 41 54 09 3b 0d 0a 09 49 4e 52 09 42 09 3b 20 20 ┆O WRITE; JZ WDAT ; INR B ; ┆ 0x06d260…06d280 20 20 54 52 4b 3a 3d 54 52 4b 2b 31 3b 0d 0a 09 4d 56 49 09 43 2c 30 09 3b 20 20 20 20 53 45 43 ┆ TRK:=TRK+1; MVI C,0 ; SEC┆ 0x06d280…06d2a0 3a 3d 30 3b 0d 0a 09 50 55 53 48 09 42 09 3b 0d 0a 09 4d 4f 56 09 43 2c 42 09 3b 0d 0a 09 43 41 ┆:=0; PUSH B ; MOV C,B ; CA┆ 0x06d2a0…06d2c0 4c 4c 09 54 52 4b 09 3b 20 20 20 20 53 45 54 20 54 52 41 43 4b 28 54 52 4b 29 3b 0d 0a 09 50 4f ┆LL TRK ; SET TRACK(TRK); PO┆ 0x06d2c0…06d2e0 50 09 42 09 3b 20 45 4e 44 3b 0d 0a 4e 45 58 54 53 3a 20 20 50 55 53 48 09 42 09 3b 0d 0a 09 43 ┆P B ; END; NEXTS: PUSH B ; C┆ 0x06d2e0…06d300 41 4c 4c 09 53 45 43 09 3b 20 53 45 54 20 53 45 43 54 4f 52 28 53 45 43 29 3b 0d 0a 09 4c 48 4c ┆ALL SEC ; SET SECTOR(SEC); LHL┆ 0x06d300…06d320 44 09 53 45 43 43 4e 54 09 3b 0d 0a 09 44 43 58 09 48 09 3b 20 53 45 43 54 4f 52 43 4f 55 4e 54 ┆D SECCNT ; DCX H ; SECTORCOUNT┆ 0x06d320…06d340 3a 3d 53 45 43 54 4f 52 43 4f 55 4e 54 2d 31 3b 0d 0a 09 53 48 4c 44 09 53 45 43 43 4e 54 09 3b ┆:=SECTORCOUNT-1; SHLD SECCNT ;┆ 0x06d340…06d360 0d 0a 09 50 4f 50 09 42 09 3b 0d 0a 09 4d 4f 56 09 41 2c 48 09 3b 20 49 46 20 53 45 43 54 4f 52 ┆ POP B ; MOV A,H ; IF SECTOR┆ 0x06d360…06d380 43 4f 55 4e 54 3d 30 20 54 48 45 4e 20 47 4f 54 4f 20 57 52 49 54 45 3b 0d 0a 09 4f 52 41 09 41 ┆COUNT=0 THEN GOTO WRITE; ORA A┆ 0x06d380…06d3a0 09 3b 0d 0a 09 4a 4e 5a 09 53 44 4d 41 09 3b 0d 0a 09 4d 4f 56 09 41 2c 4c 09 3b 0d 0a 09 4f 52 ┆ ; JNZ SDMA ; MOV A,L ; OR┆ 0x06d3a0…06d3c0 41 09 41 09 3b 0d 0a 09 4a 5a 09 57 44 41 54 09 3b 0d 0a 53 44 4d 41 3a 09 50 4f 50 09 44 09 3b ┆A A ; JZ WDAT ; SDMA: POP D ;┆ 0x06d3c0…06d3e0 0d 0a 09 4c 58 49 09 48 2c 31 32 38 09 3b 20 44 4d 41 20 41 44 44 52 3a 3d 20 44 4d 41 20 41 44 ┆ LXI H,128 ; DMA ADDR:= DMA AD┆ 0x06d3e0…06d400 44 52 20 2b 20 31 32 38 3b 0d 0a 09 44 41 44 09 44 09 3b 0d 0a 09 58 43 48 47 09 09 3b 0d 0a 09 ┆DR + 128; DAD D ; XCHG ; ┆ 0x06d400…06d420 (29, 0, 5) 79 20 38 30 68 29 0d 0a 3b 0d 0a 3b 09 28 72 65 61 64 20 61 6e 64 20 77 72 69 74 65 20 61 73 73 ┆y 80h) ; ; (read and write ass┆ 0x06d420…06d440 75 6d 65 20 70 72 65 76 69 6f 75 73 20 63 61 6c 6c 73 20 74 6f 20 73 65 74 20 75 70 20 74 68 65 ┆ume previous calls to set up the┆ 0x06d440…06d460 20 69 6f 20 70 61 72 61 6d 65 74 65 72 73 29 0d 0a 3b 09 72 65 61 64 09 72 65 61 64 20 74 72 61 ┆ io parameters) ; read read tra┆ 0x06d460…06d480 63 6b 2f 73 65 63 74 6f 72 20 74 6f 20 70 72 65 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d ┆ck/sector to preset dma address ┆ 0x06d480…06d4a0 0a 3b 09 77 72 69 74 65 09 77 72 69 74 65 20 74 72 61 63 6b 2f 73 65 63 74 6f 72 20 66 72 6f 6d ┆ ; write write track/sector from┆ 0x06d4a0…06d4c0 20 70 72 65 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b 09 6a 75 6d 70 20 76 ┆ preset dma address ; ; jump v┆ 0x06d4c0…06d4e0 65 63 74 6f 72 20 66 6f 72 20 69 6e 64 69 76 69 75 61 6c 20 72 6f 75 74 69 6e 65 73 0d 0a 09 6a ┆ector for indiviual routines j┆ 0x06d4e0…06d500 6d 70 09 62 6f 6f 74 0d 0a 77 62 6f 6f 74 65 3a 09 6a 6d 70 09 77 62 6f 6f 74 0d 0a 09 6a 6d 70 ┆mp boot wboote: jmp wboot jmp┆ 0x06d500…06d520 09 63 6f 6e 73 74 0d 0a 09 6a 6d 70 09 63 6f 6e 69 6e 0d 0a 09 6a 6d 70 09 63 6f 6e 6f 75 74 0d ┆ const jmp conin jmp conout ┆ 0x06d520…06d540 0a 09 6a 6d 70 09 6c 69 73 74 0d 0a 09 6a 6d 70 09 70 75 6e 63 68 0d 0a 09 6a 6d 70 09 72 65 61 ┆ jmp list jmp punch jmp rea┆ 0x06d540…06d560 64 65 72 0d 0a 09 6a 6d 70 09 68 6f 6d 65 0d 0a 09 6a 6d 70 09 73 65 6c 64 73 6b 0d 0a 09 6a 6d ┆der jmp home jmp seldsk jm┆ 0x06d560…06d580 70 09 73 65 74 74 72 6b 0d 0a 09 6a 6d 70 09 73 65 74 73 65 63 0d 0a 09 6a 6d 70 09 73 65 74 64 ┆p settrk jmp setsec jmp setd┆ 0x06d580…06d5a0 6d 61 0d 0a 09 6a 6d 70 09 72 65 61 64 0d 0a 09 6a 6d 70 09 77 72 69 74 65 0d 0a 09 6a 6d 70 09 ┆ma jmp read jmp write jmp ┆ 0x06d5a0…06d5c0 6c 69 73 74 73 74 09 3b 6c 69 73 74 20 73 74 61 74 75 73 0d 0a 09 6a 6d 70 09 73 65 63 74 72 61 ┆listst ;list status jmp sectra┆ 0x06d5c0…06d5e0 6e 0d 0a 3b 0d 0a 09 6d 61 63 6c 69 62 09 64 69 73 6b 64 65 66 09 3b 6c 6f 61 64 20 74 68 65 20 ┆n ; maclib diskdef ;load the ┆ 0x06d5e0…06d600 64 69 73 6b 20 64 65 66 69 6e 69 74 69 6f 6e 20 6c 69 62 72 61 72 79 0d 0a 09 64 69 73 6b 73 09 ┆disk definition library disks ┆ 0x06d600…06d620 (29, 0, 6) 3b 73 69 67 6e 6f 6e 20 6d 65 73 73 61 67 65 3a 20 78 78 6b 20 63 70 2f 6d 20 76 65 72 73 20 79 ┆;signon message: xxk cp/m vers y┆ 0x06d620…06d640 2e 79 0d 0a 09 64 62 09 63 72 2c 6c 66 2c 6c 66 0d 0a 09 69 66 09 74 65 73 74 0d 0a 09 64 62 09 ┆.y db cr,lf,lf if test db ┆ 0x06d640…06d660 27 33 32 27 09 3b 33 32 6b 20 65 78 61 6d 70 6c 65 20 62 69 6f 73 0d 0a 09 65 6e 64 69 66 0d 0a ┆'32' ;32k example bios endif ┆ 0x06d660…06d680 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 09 64 62 09 27 30 30 27 09 3b 6d 65 6d 6f 72 79 20 73 ┆ if not test db '00' ;memory s┆ 0x06d680…06d6a0 69 7a 65 20 66 69 6c 6c 65 64 20 62 79 20 72 65 6c 6f 63 61 74 6f 72 0d 0a 09 65 6e 64 69 66 0d ┆ize filled by relocator endif ┆ 0x06d6a0…06d6c0 0a 09 64 62 09 27 6b 20 43 50 2f 4d 20 76 65 72 73 20 27 0d 0a 09 64 62 09 76 65 72 73 2f 31 30 ┆ db 'k CP/M vers ' db vers/10┆ 0x06d6c0…06d6e0 2b 27 30 27 2c 27 2e 27 2c 76 65 72 73 20 6d 6f 64 20 31 30 2b 27 30 27 0d 0a 09 64 62 09 63 72 ┆+'0','.',vers mod 10+'0' db cr┆ 0x06d6e0…06d700 2c 6c 66 2c 30 0d 0a 3b 0d 0a 62 6f 6f 74 3a 09 3b 70 72 69 6e 74 20 73 69 67 6e 6f 6e 20 6d 65 ┆,lf,0 ; boot: ;print signon me┆ 0x06d700…06d720 73 73 61 67 65 20 61 6e 64 20 67 6f 20 74 6f 20 63 63 70 0d 0a 3b 09 28 6e 6f 74 65 3a 20 6d 64 ┆ssage and go to ccp ; (note: md┆ 0x06d720…06d740 73 20 62 6f 6f 74 20 69 6e 69 74 69 61 6c 69 7a 65 64 20 69 6f 62 79 74 65 20 61 74 20 30 30 30 ┆s boot initialized iobyte at 000┆ 0x06d740…06d760 33 68 29 0d 0a 09 6c 78 69 09 73 70 2c 62 75 66 66 2b 38 30 68 0d 0a 09 6c 78 69 09 68 2c 73 69 ┆3h) lxi sp,buff+80h lxi h,si┆ 0x06d760…06d780 67 6e 6f 6e 0d 0a 09 63 61 6c 6c 09 70 72 6d 73 67 09 3b 70 72 69 6e 74 20 6d 65 73 73 61 67 65 ┆gnon call prmsg ;print message┆ 0x06d780…06d7a0 0d 0a 09 78 72 61 09 61 09 3b 63 6c 65 61 72 20 61 63 63 75 6d 75 6c 61 74 6f 72 0d 0a 09 73 74 ┆ xra a ;clear accumulator st┆ 0x06d7a0…06d7c0 61 09 63 64 69 73 6b 09 3b 73 65 74 20 69 6e 69 74 69 61 6c 6c 79 20 74 6f 20 64 69 73 6b 20 61 ┆a cdisk ;set initially to disk a┆ 0x06d7c0…06d7e0 0d 0a 09 6a 6d 70 09 67 6f 63 70 6d 09 3b 67 6f 20 74 6f 20 63 70 2f 6d 0d 0a 3b 0d 0a 3b 0d 0a ┆ jmp gocpm ;go to cp/m ; ; ┆ 0x06d7e0…06d800 77 62 6f 6f 74 3a 3b 09 6c 6f 61 64 65 72 20 6f 6e 20 74 72 61 63 6b 20 30 2c 20 73 65 63 74 6f ┆wboot:; loader on track 0, secto┆ 0x06d800…06d820 (29, 0, 7) 49 09 44 2c 43 52 4c 46 09 3b 0d 0a 09 43 41 4c 4c 09 50 52 49 4e 54 09 3b 0d 0a 09 4c 58 49 09 ┆I D,CRLF ; CALL PRINT ; LXI ┆ 0x06d820…06d840 44 2c 4d 53 44 49 53 4b 3b 0d 0a 09 43 41 4c 4c 09 50 52 49 4e 54 09 3b 20 57 41 49 54 20 46 4f ┆D,MSDISK; CALL PRINT ; WAIT FO┆ 0x06d840…06d860 52 20 53 4f 55 52 43 45 20 44 49 53 4b 3a 0d 0a 09 43 41 4c 4c 09 43 4f 4e 53 49 09 3b 0d 0a 09 ┆R SOURCE DISK: CALL CONSI ; ┆ 0x06d860…06d880 4c 58 49 09 44 2c 4d 44 44 49 53 4b 3b 0d 0a 09 43 41 4c 4c 09 50 52 49 4e 54 09 3b 20 57 41 49 ┆LXI D,MDDISK; CALL PRINT ; WAI┆ 0x06d880…06d8a0 54 20 46 4f 52 20 44 45 53 54 49 4e 41 54 49 4f 4e 20 44 49 53 4b 3a 0d 0a 09 43 41 4c 4c 09 43 ┆T FOR DESTINATION DISK: CALL C┆ 0x06d8a0…06d8c0 4f 4e 53 49 09 3b 0d 0a 09 50 4f 50 09 42 09 3b 0d 0a 09 4d 56 49 09 41 2c 31 09 3b 0d 0a 53 45 ┆ONSI ; POP B ; MVI A,1 ; SE┆ 0x06d8c0…06d8e0 54 44 46 3a 09 53 54 41 09 44 46 4c 41 47 09 3b 0d 0a 09 4d 4f 56 09 41 2c 43 09 3b 0d 0a 09 43 ┆TDF: STA DFLAG ; MOV A,C ; C┆ 0x06d8e0…06d900 50 49 09 53 53 38 09 3b 20 28 46 49 52 53 54 20 54 52 41 43 4b 2c 4c 41 53 54 20 54 52 41 43 4b ┆PI SS8 ; (FIRST TRACK,LAST TRACK┆ 0x06d900…06d920 2c 0d 0a 09 4a 4e 5a 09 53 45 54 44 38 09 3b 20 20 53 45 43 54 4f 52 53 20 50 52 20 54 52 41 43 ┆, JNZ SETD8 ; SECTORS PR TRAC┆ 0x06d920…06d940 4b 29 20 3a 3d 0d 0a 09 4d 56 49 09 41 2c 30 09 3b 0d 0a 09 53 54 41 09 46 54 52 4b 09 3b 0d 0a ┆K) := MVI A,0 ; STA FTRK ; ┆ 0x06d940…06d960 09 4d 56 49 09 41 2c 37 36 09 3b 20 20 49 46 20 46 4f 52 4d 41 54 3d 20 38 22 20 53 53 20 54 48 ┆ MVI A,76 ; IF FORMAT= 8" SS TH┆ 0x06d960…06d980 45 4e 0d 0a 09 53 54 41 09 4c 54 52 4b 09 3b 20 20 20 28 30 2c 37 36 2c 32 36 29 20 20 20 20 20 ┆EN STA LTRK ; (0,76,26) ┆ 0x06d980…06d9a0 20 20 45 4c 53 45 0d 0a 09 4d 56 49 09 41 2c 32 36 09 3b 0d 0a 09 53 54 41 09 53 50 54 09 3b 0d ┆ ELSE MVI A,26 ; STA SPT ; ┆ 0x06d9a0…06d9c0 0a 09 4a 4d 50 09 53 45 54 43 54 09 3b 20 20 0d 0a 53 45 54 44 38 3a 09 43 50 49 09 44 44 38 09 ┆ JMP SETCT ; SETD8: CPI DD8 ┆ 0x06d9c0…06d9e0 3b 20 20 49 46 20 46 4f 52 4d 41 54 3d 20 38 22 20 44 44 20 54 48 45 4e 0d 0a 09 4a 4e 5a 09 53 ┆; IF FORMAT= 8" DD THEN JNZ S┆ 0x06d9e0…06da00 45 54 35 09 3b 20 20 20 28 31 2c 36 31 2c 31 32 30 29 20 20 20 20 20 20 45 4c 53 45 0d 0a 09 4d ┆ET5 ; (1,61,120) ELSE M┆ 0x06da00…06da20 (29, 0, 8) 50 55 53 48 09 44 09 3b 0d 0a 09 50 55 53 48 09 42 09 3b 0d 0a 09 43 41 4c 4c 09 44 4d 41 09 3b ┆PUSH D ; PUSH B ; CALL DMA ;┆ 0x06da20…06da40 0d 0a 09 4a 4d 50 09 52 45 41 44 53 09 3b 20 47 4f 54 4f 20 52 45 41 44 20 53 45 43 54 4f 52 3b ┆ JMP READS ; GOTO READ SECTOR;┆ 0x06da40…06da60 0d 0a 57 44 41 54 3a 09 50 4f 50 09 44 09 3b 20 57 52 49 54 45 20 44 41 54 41 3a 0d 0a 09 4c 44 ┆ WDAT: POP D ; WRITE DATA: LD┆ 0x06da60…06da80 41 09 44 46 4c 41 47 09 3b 0d 0a 09 4f 52 41 09 41 09 3b 20 49 46 20 44 45 53 54 49 4e 41 54 49 ┆A DFLAG ; ORA A ; IF DESTINATI┆ 0x06da80…06daa0 4f 4e 20 44 52 49 56 45 20 3d 20 53 4f 55 52 43 45 20 44 52 49 56 45 0d 0a 09 4a 4e 5a 09 53 45 ┆ON DRIVE = SOURCE DRIVE JNZ SE┆ 0x06daa0…06dac0 4c 44 45 09 3b 20 20 54 48 45 4e 20 57 41 49 54 20 46 4f 52 20 44 49 53 4b 20 43 48 41 4e 47 45 ┆LDE ; THEN WAIT FOR DISK CHANGE┆ 0x06dac0…06dae0 3b 0d 0a 09 4c 58 49 09 44 2c 4d 44 44 49 53 4b 3b 0d 0a 09 43 41 4c 4c 09 50 52 49 4e 54 09 3b ┆; LXI D,MDDISK; CALL PRINT ;┆ 0x06dae0…06db00 0d 0a 09 43 41 4c 4c 09 43 4f 4e 53 49 09 3b 0d 0a 53 45 4c 44 45 3a 09 4c 44 41 09 44 44 52 49 ┆ CALL CONSI ; SELDE: LDA DDRI┆ 0x06db00…06db20 56 09 3b 0d 0a 09 43 41 4c 4c 09 53 45 4c 09 3b 20 53 45 4c 45 43 54 28 44 45 53 54 49 4e 41 54 ┆V ; CALL SEL ; SELECT(DESTINAT┆ 0x06db20…06db40 49 4f 4e 20 44 52 49 56 45 29 3b 0d 0a 09 4c 58 49 09 48 2c 33 36 30 09 3b 0d 0a 09 53 48 4c 44 ┆ION DRIVE); LXI H,360 ; SHLD┆ 0x06db40…06db60 09 53 45 43 43 4e 54 09 3b 20 53 45 43 54 4f 52 43 4f 55 4e 54 3a 3d 20 33 36 30 3b 0d 0a 09 4c ┆ SECCNT ; SECTORCOUNT:= 360; L┆ 0x06db60…06db80 58 49 09 44 2c 42 55 46 09 3b 0d 0a 09 50 55 53 48 09 44 09 3b 0d 0a 09 43 41 4c 4c 09 44 4d 41 ┆XI D,BUF ; PUSH D ; CALL DMA┆ 0x06db80…06dba0 09 3b 20 44 4d 41 20 41 44 44 52 3a 3d 20 53 54 41 52 54 20 4f 46 20 42 55 46 46 45 52 3b 0d 0a ┆ ; DMA ADDR:= START OF BUFFER; ┆ 0x06dba0…06dbc0 09 4c 44 41 09 43 55 52 54 52 4b 09 3b 0d 0a 09 4d 4f 56 09 43 2c 41 09 3b 0d 0a 09 43 41 4c 4c ┆ LDA CURTRK ; MOV C,A ; CALL┆ 0x06dbc0…06dbe0 09 54 52 4b 09 3b 20 53 45 54 20 54 52 41 43 4b 28 54 52 4b 3a 3d 43 55 52 20 54 52 4b 29 3b 0d ┆ TRK ; SET TRACK(TRK:=CUR TRK); ┆ 0x06dbe0…06dc00 0a 09 4c 44 41 09 43 55 52 53 45 43 09 3b 0d 0a 09 4d 4f 56 09 43 2c 41 09 3b 0d 0a 09 4c 44 41 ┆ LDA CURSEC ; MOV C,A ; LDA┆ 0x06dc00…06dc20 (29, 0, 9) c3 bc 01 43 4f 50 59 52 49 47 48 54 20 28 43 29 20 31 39 38 30 2c 20 44 49 47 49 54 41 4c 20 52 ┆ COPYRIGHT (C) 1980, DIGITAL R┆ 0x06dc20…06dc40 45 53 45 41 52 43 48 20 c3 35 01 c3 3c 01 c3 47 01 1a 1a 1a 1a af cd 89 01 c3 4c 01 3e 01 32 34 ┆ESEARCH 5 < G L > 24┆ 0x06dc40…06dc60 01 cd 89 01 c3 50 01 3e 01 cd 89 01 af 32 34 01 21 31 01 4e cd 92 01 2a 32 01 16 00 3a 0a 07 5f ┆ P > 24 !1 N *2 : _┆ 0x06dc60…06dc80 d5 e5 4a cd 9a 01 c1 c5 cd a2 01 3a 34 01 b7 c2 78 01 cd aa 01 c3 7b 01 cd b2 01 e1 11 80 00 19 ┆ J :4 x æ ┆ 0x06dc80…06dca0 d1 14 b7 c0 1d c2 60 01 c9 4f 2a 01 00 11 18 00 19 e9 2a 01 00 11 1b 00 19 e9 2a 01 00 11 1e 00 ┆ ` O* * * ┆ 0x06dca0…06dcc0 19 e9 2a 01 00 11 21 00 19 e9 2a 01 00 11 24 00 19 e9 2a 01 00 11 27 00 19 0e 02 e9 31 0a 07 0e ┆ * ! * $ * ' 1 ┆ 0x06dcc0…06dce0 78 db 14 e6 80 ca ca 01 0e 48 79 32 0a 07 cd b0 04 cd cc 03 21 83 06 71 23 70 21 c4 06 46 23 eb ┆x Hy2 ! q#p! F# ┆ 0x06dce0…06dd00 21 87 06 1a b7 ca ef 01 13 77 23 05 c2 e3 01 36 2d 23 36 24 cd e5 04 cd cc 03 21 a3 06 71 23 70 ┆! w# 6-#6$ ! q#p┆ 0x06dd00…06dd20 21 c4 06 3e 05 96 21 a5 06 ca 13 02 36 30 23 3d c2 0c 02 11 c5 06 1a b7 ca 21 02 77 23 13 c3 16 ┆! > ! 60#= ! w# ┆ 0x06dd20…06dd40 02 cd 7e 04 cd bf 03 3e 00 32 cd 06 cd 29 05 cd 43 05 cd 4f 05 cd bf 03 21 31 01 36 01 21 90 06 ┆ ü > 2 ) C O !1 6 ! ┆ 0x06dd40…06dd60 36 30 23 36 30 21 0b 07 22 32 01 cd 28 01 ca 57 02 cd 0d 06 c3 21 02 3a 31 01 fe 01 c2 c5 02 21 ┆60#60! "2 ( W ! :1 !┆ 0x06dd60…06dd80 0b 07 01 00 08 e5 c5 11 ab 06 0e 0c 1a 2f be c2 b6 02 23 13 1a 2f be c2 b6 02 23 13 0d c2 6c 02 ┆ / # / # l ┆ 0x06dd80…06dda0 c1 d1 e5 eb 2a 83 06 eb 73 23 36 16 23 72 23 36 00 23 eb 2a a3 06 eb 72 23 73 c1 c5 11 0b 0f 7b ┆ * s#6 #r#6 # * r#s æ┆ 0x06dda0…06ddc0 91 6f 7a 98 67 22 ce 06 e1 0e 06 7e 12 13 23 0d c2 ab 02 c3 32 03 c1 e1 23 0b 79 b0 c2 65 02 cd ┆ oz g" ü # 2 # y e ┆ 0x06ddc0…06dde0 9d 05 c3 21 02 fe 00 c2 32 03 21 00 00 01 00 3c e5 c5 11 ab 06 0e 0c e5 cd 2e 04 1a 2f be e1 c2 ┆ ! 2 ! < . / ┆ 0x06dde0…06de00 23 03 23 13 e5 cd 2e 04 1a 2f be e1 c2 23 03 23 13 0d c2 d7 02 c1 d1 e5 cd 5c 04 e1 eb 2a ce 06 ┆# # . / # # Ø * ┆ 0x06de00…06de20 (29, 0, 10) 3b 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆;*******************************┆ 0x06de20…06de40 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆********************************┆ 0x06de40…06de60 2a 2a 2a 0d 0a 3b 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆*** ;* ┆ 0x06de60…06de80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x06de80…06dea0 20 20 20 20 20 20 20 2a 0d 0a 3b 2a 20 20 20 20 20 42 41 43 4b 55 50 20 20 55 54 49 4c 49 54 59 ┆ * ;* BACKUP UTILITY┆ 0x06dea0…06dec0 20 20 2d 20 20 56 45 52 53 49 4f 4e 20 20 38 31 2e 30 37 2e 30 38 20 20 20 20 20 20 20 20 20 20 ┆ - VERSION 81.07.08 ┆ 0x06dec0…06dee0 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 3b 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ * ;* ┆ 0x06dee0…06df00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x06df00…06df20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 3b 2a 20 20 20 20 20 42 41 43 4b 55 ┆ * ;* BACKU┆ 0x06df20…06df40 50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆P ┆ 0x06df40…06df60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 3b 2a 20 20 20 20 20 ┆ * ;* ┆ 0x06df60…06df80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x06df80…06dfa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 3b 2a ┆ * ;*┆ 0x06dfa0…06dfc0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆********************************┆ […0x1…] 0x06dfe0…06e000 2a 0d 0a 0d 0a 0d 0a 54 50 41 09 45 51 55 09 31 30 30 48 0d 0a 42 44 4f 53 09 45 51 55 09 30 30 ┆* TPA EQU 100H BDOS EQU 00┆ 0x06e000…06e020 (29, 0, 11) 56 49 09 41 2c 31 09 3b 0d 0a 09 53 54 41 09 46 54 52 4b 09 3b 0d 0a 09 4d 56 49 09 41 2c 36 31 ┆VI A,1 ; STA FTRK ; MVI A,61┆ 0x06e020…06e040 09 3b 0d 0a 09 53 54 41 09 4c 54 52 4b 09 3b 0d 0a 09 4d 56 49 09 41 2c 31 32 30 09 3b 0d 0a 09 ┆ ; STA LTRK ; MVI A,120 ; ┆ 0x06e040…06e060 53 54 41 09 53 50 54 09 3b 0d 0a 09 4a 4d 50 09 53 45 54 43 54 09 3b 0d 0a 53 45 54 35 3a 09 43 ┆STA SPT ; JMP SETCT ; SET5: C┆ 0x06e060…06e080 50 49 09 44 44 35 09 3b 20 20 49 46 20 46 4f 52 4d 41 54 3d 20 35 22 20 44 44 20 54 48 45 4e 0d ┆PI DD5 ; IF FORMAT= 5" DD THEN ┆ 0x06e080…06e0a0 0a 09 4c 58 49 09 44 2c 4e 4f 54 4f 4b 09 3b 20 20 20 28 31 2c 33 31 2c 37 32 29 3b 0d 0a 09 43 ┆ LXI D,NOTOK ; (1,31,72); C┆ 0x06e0a0…06e0c0 4e 5a 09 46 49 4e 49 53 09 3b 0d 0a 09 4d 56 49 09 41 2c 31 09 3b 0d 0a 09 53 54 41 09 46 54 52 ┆NZ FINIS ; MVI A,1 ; STA FTR┆ 0x06e0c0…06e0e0 4b 09 3b 0d 0a 09 4d 56 49 09 41 2c 33 31 09 3b 0d 0a 09 53 54 41 09 4c 54 52 4b 09 3b 0d 0a 09 ┆K ; MVI A,31 ; STA LTRK ; ┆ 0x06e0e0…06e100 4d 56 49 09 41 2c 37 32 09 3b 0d 0a 09 53 54 41 09 53 50 54 09 3b 0d 0a 53 45 54 43 54 3a 09 4c ┆MVI A,72 ; STA SPT ; SETCT: L┆ 0x06e100…06e120 44 41 09 46 54 52 4b 09 3b 0d 0a 09 53 54 41 09 43 55 52 54 52 4b 09 3b 20 43 55 52 54 52 4b 3a ┆DA FTRK ; STA CURTRK ; CURTRK:┆ 0x06e120…06e140 3d 46 49 52 53 54 20 54 52 41 43 4b 3b 0d 0a 09 4d 56 49 09 41 2c 30 09 3b 0d 0a 09 53 54 41 09 ┆=FIRST TRACK; MVI A,0 ; STA ┆ 0x06e140…06e160 43 55 52 53 45 43 09 3b 20 43 55 52 53 45 43 3a 3d 20 30 3b 0d 0a 0d 0a 52 44 41 54 3a 09 4c 44 ┆CURSEC ; CURSEC:= 0; RDAT: LD┆ 0x06e160…06e180 41 09 44 46 4c 41 47 09 3b 20 52 45 41 44 20 44 41 54 41 3a 0d 0a 09 4f 52 41 09 41 09 3b 0d 0a ┆A DFLAG ; READ DATA: ORA A ; ┆ 0x06e180…06e1a0 09 4a 4e 5a 09 53 45 4c 53 44 09 3b 20 49 46 20 53 4f 55 52 43 45 20 44 52 49 56 45 20 3d 20 44 ┆ JNZ SELSD ; IF SOURCE DRIVE = D┆ 0x06e1a0…06e1c0 45 53 54 49 4e 41 54 49 4f 4e 20 44 52 49 56 45 0d 0a 09 4c 58 49 09 44 2c 4d 53 44 49 53 4b 3b ┆ESTINATION DRIVE LXI D,MSDISK;┆ 0x06e1c0…06e1e0 20 20 54 48 45 4e 20 57 41 49 54 20 46 4f 52 20 44 49 53 4b 20 43 48 41 4e 47 45 3b 0d 0a 09 43 ┆ THEN WAIT FOR DISK CHANGE; C┆ 0x06e1e0…06e200 41 4c 4c 09 50 52 49 4e 54 09 3b 0d 0a 09 43 41 4c 4c 09 43 4f 4e 53 49 09 3b 0d 0a 53 45 4c 53 ┆ALL PRINT ; CALL CONSI ; SELS┆ 0x06e200…06e220 (29, 0, 12) 56 49 09 41 2c 31 09 3b 0d 0a 09 53 54 41 09 46 54 52 4b 09 3b 0d 0a 09 4d 56 49 09 41 2c 36 31 ┆VI A,1 ; STA FTRK ; MVI A,61┆ 0x06e220…06e240 09 3b 0d 0a 09 53 54 41 09 4c 54 52 4b 09 3b 0d 0a 09 4d 56 49 09 41 2c 31 32 30 09 3b 0d 0a 09 ┆ ; STA LTRK ; MVI A,120 ; ┆ 0x06e240…06e260 53 54 41 09 53 50 54 09 3b 0d 0a 09 4a 4d 50 09 53 45 54 43 54 09 3b 0d 0a 53 45 54 35 3a 09 43 ┆STA SPT ; JMP SETCT ; SET5: C┆ 0x06e260…06e280 50 49 09 44 44 35 09 3b 20 20 49 46 20 46 4f 52 4d 41 54 3d 20 35 22 20 44 44 20 54 48 45 4e 0d ┆PI DD5 ; IF FORMAT= 5" DD THEN ┆ 0x06e280…06e2a0 0a 09 4c 58 49 09 44 2c 4e 4f 54 4f 4b 09 3b 20 20 20 28 31 2c 33 31 2c 37 32 29 3b 0d 0a 09 43 ┆ LXI D,NOTOK ; (1,31,72); C┆ 0x06e2a0…06e2c0 4e 5a 09 46 49 4e 49 53 09 3b 0d 0a 09 4d 56 49 09 41 2c 31 09 3b 0d 0a 09 53 54 41 09 46 54 52 ┆NZ FINIS ; MVI A,1 ; STA FTR┆ 0x06e2c0…06e2e0 4b 09 3b 0d 0a 09 4d 56 49 09 41 2c 33 31 09 3b 0d 0a 09 53 54 41 09 4c 54 52 4b 09 3b 0d 0a 09 ┆K ; MVI A,31 ; STA LTRK ; ┆ 0x06e2e0…06e300 4d 56 49 09 41 2c 37 32 09 3b 0d 0a 09 53 54 41 09 53 50 54 09 3b 0d 0a 53 45 54 43 54 3a 09 4c ┆MVI A,72 ; STA SPT ; SETCT: L┆ 0x06e300…06e320 44 41 09 46 54 52 4b 09 3b 0d 0a 09 53 54 41 09 43 55 52 54 52 4b 09 3b 20 43 55 52 54 52 4b 3a ┆DA FTRK ; STA CURTRK ; CURTRK:┆ 0x06e320…06e340 3d 46 49 52 53 54 20 54 52 41 43 4b 3b 0d 0a 09 4d 56 49 09 41 2c 30 09 3b 0d 0a 09 53 54 41 09 ┆=FIRST TRACK; MVI A,0 ; STA ┆ 0x06e340…06e360 43 55 52 53 45 43 09 3b 20 43 55 52 53 45 43 3a 3d 20 30 3b 0d 0a 0d 0a 52 44 41 54 3a 09 4c 44 ┆CURSEC ; CURSEC:= 0; RDAT: LD┆ 0x06e360…06e380 41 09 44 46 4c 41 47 09 3b 20 52 45 41 44 20 44 41 54 41 3a 0d 0a 09 4f 52 41 09 41 09 3b 0d 0a ┆A DFLAG ; READ DATA: ORA A ; ┆ 0x06e380…06e3a0 09 4a 4e 5a 09 53 45 4c 53 44 09 3b 20 49 46 20 53 4f 55 52 43 45 20 44 52 49 56 45 20 3d 20 44 ┆ JNZ SELSD ; IF SOURCE DRIVE = D┆ 0x06e3a0…06e3c0 45 53 54 49 4e 41 54 49 4f 4e 20 44 52 49 56 45 0d 0a 09 4c 58 49 09 44 2c 4d 53 44 49 53 4b 3b ┆ESTINATION DRIVE LXI D,MSDISK;┆ 0x06e3c0…06e3e0 20 20 54 48 45 4e 20 57 41 49 54 20 46 4f 52 20 44 49 53 4b 20 43 48 41 4e 47 45 3b 0d 0a 09 43 ┆ THEN WAIT FOR DISK CHANGE; C┆ 0x06e3e0…06e400 41 4c 4c 09 50 52 49 4e 54 09 3b 0d 0a 09 43 41 4c 4c 09 43 4f 4e 53 49 09 3b 0d 0a 53 45 4c 53 ┆ALL PRINT ; CALL CONSI ; SELS┆ 0x06e400…06e420 (29, 0, 13) 19 7d b7 c2 2c 03 eb 21 cd 06 36 00 34 7b d6 00 47 7a de 0d da 1c 03 57 58 c3 0c 03 eb 22 ce 06 ┆ å , ! 6 4æ Gz WX " ┆ 0x06e420…06e440 c3 32 03 c1 e1 23 0b 78 b1 c2 d0 02 cd 78 05 c3 21 02 21 cd 06 7e b7 ca 44 03 35 c2 44 03 2a ce ┆ 2 # x x ! ! ü D 5 D * ┆ 0x06e440…06e460 06 cd 5c 04 21 0b 07 01 00 3c 3e e5 be c2 70 03 23 0b 79 b0 c2 4a 03 3a cd 06 b7 ca 64 03 cd 78 ┆ Ø ! <> p # y J : d x┆ 0x06e460…06e480 05 c3 21 02 11 8e 06 cd c4 03 cd 0b 04 c3 27 02 cd 2b 01 ca 7c 03 cd 33 06 c3 27 02 21 0b 43 22 ┆ ! ' + ø 3 ' ! C"┆ 0x06e480…06e4a0 32 01 cd 2e 01 ca 8e 03 cd 5a 06 c3 27 02 21 0b 07 11 0b 43 01 00 3c 1a be c2 b9 03 23 13 0b 79 ┆2 . Z ' ! C < # y┆ 0x06e4a0…06e4c0 b0 c2 97 03 21 31 01 34 21 91 06 34 7e fe 3a da 45 02 36 30 2b 34 c3 45 02 cd c9 05 c3 27 02 0e ┆ !1 4! 4ü : E 60+4 E ' ┆ 0x06e4c0…06e4e0 01 c3 05 00 0e 09 c3 05 00 cd 06 05 11 c3 06 0e 0a cd 05 00 21 c4 06 7e b7 ca c9 03 23 5f 16 00 ┆ ! ü #_ ┆ 0x06e4e0…06e500 19 36 00 21 c5 06 01 00 00 7e b7 c8 d6 30 fe 0a d2 c9 03 e5 c5 e1 29 29 29 09 09 e5 c1 e1 23 81 ┆ 6 ! ü 0 ))) # ┆ 0x06e500…06e520 4f 3e 00 88 47 da c9 03 c3 e9 03 2a a3 06 23 22 a3 06 7d b4 ca 28 04 21 a9 06 06 05 34 7e fe 3a ┆O> G * #" å ( ! 4ü :┆ 0x06e520…06e540 d8 36 30 2b 05 c2 1c 04 cd ee 05 c3 00 00 d5 7d e6 7f 5f 7d 17 7c 17 6f 26 00 d5 11 d0 06 19 d1 ┆ 60+ å _å ø o& ┆ 0x06e540…06e560 af 7e 3d 1f 67 3e 00 1f b3 6f 11 0b 07 19 d1 c9 e5 d5 f5 cd 2e 04 f1 77 d1 e1 23 c9 3a 83 06 cd ┆ ü= g> o . w # : ┆ 0x06e560…06e580 50 04 3e 16 cd 50 04 3a 84 06 cd 50 04 af cd 50 04 11 a4 06 1a cd 50 04 1b 1a cd 50 04 c9 11 84 ┆P > P : P P P P ┆ 0x06e580…06e5a0 04 c3 c4 03 0d 0a 49 4e 53 45 52 54 20 43 4f 4e 54 52 4f 4c 20 44 49 53 4b 45 54 54 45 20 49 4e ┆ INSERT CONTROL DISKETTE IN┆ 0x06e5a0…06e5c0 20 41 2c 20 54 59 50 45 20 52 45 54 55 52 4e 24 11 b6 04 c3 c4 03 0d 0a 43 50 2f 4d 20 56 45 52 ┆ A, TYPE RETURN$ CP/M VER┆ 0x06e5c0…06e5e0 20 32 2e 32 20 53 45 52 49 41 4c 49 5a 41 54 49 4f 4e 2c 0d 0a 4f 52 49 47 49 4e 20 4e 55 4d 42 ┆ 2.2 SERIALIZATION, ORIGIN NUMB┆ 0x06e5e0…06e600 45 52 3f 20 24 11 eb 04 c3 c4 03 0d 0a 53 54 41 52 54 49 4e 47 20 53 45 52 49 41 4c 20 4e 55 4d ┆ER? $ STARTING SERIAL NUM┆ 0x06e600…06e620 (29, 0, 14) 30 35 48 0d 0a 42 4f 4f 54 09 45 51 55 09 30 30 30 30 48 0d 0a 0d 0a 43 4f 4e 53 49 46 09 45 51 ┆05H BOOT EQU 0000H CONSIF EQ┆ 0x06e620…06e640 55 09 31 0d 0a 50 52 49 4e 54 46 09 45 51 55 09 39 0d 0a 57 42 4f 4f 54 09 45 51 55 09 31 0d 0a ┆U 1 PRINTF EQU 9 WBOOT EQU 1 ┆ 0x06e640…06e660 53 45 4c 44 53 4b 09 45 51 55 09 32 34 0d 0a 53 45 54 54 52 4b 09 45 51 55 09 32 37 0d 0a 53 45 ┆SELDSK EQU 24 SETTRK EQU 27 SE┆ 0x06e660…06e680 54 53 45 43 09 45 51 55 09 33 30 0d 0a 53 45 54 44 4d 41 09 45 51 55 09 33 33 0d 0a 52 45 41 44 ┆TSEC EQU 30 SETDMA EQU 33 READ┆ 0x06e680…06e6a0 46 09 45 51 55 09 33 36 0d 0a 57 52 49 54 45 46 09 45 51 55 09 33 39 0d 0a 46 44 46 4f 52 4d 09 ┆F EQU 36 WRITEF EQU 39 FDFORM ┆ 0x06e6a0…06e6c0 45 51 55 09 35 32 0d 0a 53 53 38 09 45 51 55 09 30 0d 0a 44 44 38 09 45 51 55 09 38 0d 0a 44 44 ┆EQU 52 SS8 EQU 0 DD8 EQU 8 DD┆ 0x06e6c0…06e6e0 35 09 45 51 55 09 31 36 0d 0a 0d 0a 0d 0a 09 4f 52 47 09 54 50 41 0d 0a 0d 0a 09 50 4f 50 09 48 ┆5 EQU 16 ORG TPA POP H┆ 0x06e6e0…06e700 09 3b 20 53 41 56 45 20 52 45 54 55 52 4e 20 54 4f 20 43 43 50 3b 0d 0a 09 53 48 4c 44 09 43 43 ┆ ; SAVE RETURN TO CCP; SHLD CC┆ 0x06e700…06e720 50 52 45 54 09 3b 0d 0a 09 4c 58 49 09 53 50 2c 53 54 41 43 4b 3b 0d 0a 09 4c 58 49 09 44 2c 48 ┆PRET ; LXI SP,STACK; LXI D,H┆ 0x06e720…06e740 45 41 44 09 3b 20 50 52 49 4e 54 20 48 45 41 44 49 4e 47 3b 0d 0a 09 43 41 4c 4c 09 50 52 49 4e ┆EAD ; PRINT HEADING; CALL PRIN┆ 0x06e740…06e760 54 09 3b 0d 0a 50 53 50 3a 09 4c 58 49 09 44 2c 53 44 53 50 45 43 3b 20 50 52 49 4e 54 20 53 4f ┆T ; PSP: LXI D,SDSPEC; PRINT SO┆ 0x06e760…06e780 55 52 43 45 20 50 52 4f 4d 50 54 3b 0d 0a 09 43 41 4c 4c 09 50 52 49 4e 54 09 3b 0d 0a 09 43 41 ┆URCE PROMPT; CALL PRINT ; CA┆ 0x06e780…06e7a0 4c 4c 09 43 4f 4e 53 49 09 3b 20 47 45 54 20 53 4f 55 52 43 45 20 44 52 49 56 45 3b 0d 0a 09 4d ┆LL CONSI ; GET SOURCE DRIVE; M┆ 0x06e7a0…06e7c0 56 49 09 43 2c 30 09 3b 0d 0a 09 43 50 49 09 27 41 27 09 3b 0d 0a 09 4a 5a 09 53 45 54 53 44 09 ┆VI C,0 ; CPI 'A' ; JZ SETSD ┆ 0x06e7c0…06e7e0 3b 0d 0a 09 43 50 49 09 27 42 27 09 3b 0d 0a 09 4a 4e 5a 09 50 53 50 09 3b 0d 0a 09 49 4e 52 09 ┆; CPI 'B' ; JNZ PSP ; INR ┆ 0x06e7e0…06e800 43 09 3b 0d 0a 53 45 54 53 44 3a 09 4d 4f 56 09 41 2c 43 09 3b 0d 0a 09 53 54 41 09 53 44 52 49 ┆C ; SETSD: MOV A,C ; STA SDRI┆ 0x06e800…06e820 (29, 0, 15) 44 3a 09 4c 44 41 09 53 44 52 49 56 09 3b 20 53 45 4c 45 43 54 28 53 4f 55 52 43 45 20 44 52 49 ┆D: LDA SDRIV ; SELECT(SOURCE DRI┆ 0x06e820…06e840 56 45 29 3a 0d 0a 09 43 41 4c 4c 09 53 45 4c 09 3b 0d 0a 09 4c 58 49 09 48 2c 33 36 30 09 3b 0d ┆VE): CALL SEL ; LXI H,360 ; ┆ 0x06e840…06e860 0a 09 53 48 4c 44 09 53 45 43 43 4e 54 09 3b 20 53 45 43 54 4f 52 43 4f 55 4e 54 3a 3d 20 33 36 ┆ SHLD SECCNT ; SECTORCOUNT:= 36┆ 0x06e860…06e880 30 3b 0d 0a 09 4c 58 49 09 44 2c 42 55 46 09 3b 0d 0a 09 50 55 53 48 09 44 09 3b 0d 0a 09 43 41 ┆0; LXI D,BUF ; PUSH D ; CA┆ 0x06e880…06e8a0 4c 4c 09 44 4d 41 09 3b 20 44 4d 41 20 41 44 44 52 3a 3d 20 53 54 41 52 54 20 4f 46 20 42 55 46 ┆LL DMA ; DMA ADDR:= START OF BUF┆ 0x06e8a0…06e8c0 46 45 52 3b 0d 0a 09 4c 44 41 09 43 55 52 54 52 4b 09 3b 0d 0a 09 4d 4f 56 09 43 2c 41 09 3b 0d ┆FER; LDA CURTRK ; MOV C,A ; ┆ 0x06e8c0…06e8e0 0a 09 43 41 4c 4c 09 54 52 4b 09 3b 20 53 45 54 20 54 52 41 43 4b 28 54 52 4b 3a 3d 43 55 52 20 ┆ CALL TRK ; SET TRACK(TRK:=CUR ┆ 0x06e8e0…06e900 54 52 4b 29 3b 0d 0a 09 4c 44 41 09 43 55 52 53 45 43 09 3b 0d 0a 09 4d 4f 56 09 43 2c 41 09 3b ┆TRK); LDA CURSEC ; MOV C,A ;┆ 0x06e900…06e920 0d 0a 09 4c 44 41 09 43 55 52 54 52 4b 09 3b 0d 0a 09 4d 4f 56 09 42 2c 41 09 3b 0d 0a 09 50 55 ┆ LDA CURTRK ; MOV B,A ; PU┆ 0x06e920…06e940 53 48 09 42 09 3b 0d 0a 09 43 41 4c 4c 09 53 45 43 09 3b 20 53 45 54 20 53 45 43 54 4f 52 28 53 ┆SH B ; CALL SEC ; SET SECTOR(S┆ 0x06e940…06e960 45 43 3a 3d 43 55 52 20 53 45 43 29 3b 0d 0a 52 45 41 44 53 3a 09 43 41 4c 4c 09 44 52 45 41 44 ┆EC:=CUR SEC); READS: CALL DREAD┆ 0x06e960…06e980 09 3b 20 52 45 41 44 20 53 45 43 54 4f 52 3b 0d 0a 09 4c 58 49 09 44 2c 42 41 44 53 09 3b 0d 0a ┆ ; READ SECTOR; LXI D,BADS ; ┆ 0x06e980…06e9a0 09 4f 52 41 09 41 09 3b 20 49 46 20 45 52 52 4f 52 53 20 54 48 45 4e 20 50 52 49 4e 54 20 57 41 ┆ ORA A ; IF ERRORS THEN PRINT WA┆ 0x06e9a0…06e9c0 52 4e 49 4e 47 3b 0d 0a 09 43 4e 5a 09 45 52 52 4f 52 09 3b 0d 0a 09 50 4f 50 09 42 09 3b 0d 0a ┆RNING; CNZ ERROR ; POP B ; ┆ 0x06e9c0…06e9e0 09 49 4e 52 09 43 09 3b 20 53 45 43 3a 3d 20 53 45 43 20 2b 20 31 3b 0d 0a 09 4c 44 41 09 53 50 ┆ INR C ; SEC:= SEC + 1; LDA SP┆ 0x06e9e0…06ea00 54 09 3b 0d 0a 09 43 4d 50 09 43 09 3b 20 49 46 20 53 45 43 3d 53 50 54 20 54 48 45 4e 0d 0a 09 ┆T ; CMP C ; IF SEC=SPT THEN ┆ 0x06ea00…06ea20 (29, 1, 1) 44 3a 09 4c 44 41 09 53 44 52 49 56 09 3b 20 53 45 4c 45 43 54 28 53 4f 55 52 43 45 20 44 52 49 ┆D: LDA SDRIV ; SELECT(SOURCE DRI┆ 0x06ea20…06ea40 56 45 29 3a 0d 0a 09 43 41 4c 4c 09 53 45 4c 09 3b 0d 0a 09 4c 58 49 09 48 2c 33 36 30 09 3b 0d ┆VE): CALL SEL ; LXI H,360 ; ┆ 0x06ea40…06ea60 0a 09 53 48 4c 44 09 53 45 43 43 4e 54 09 3b 20 53 45 43 54 4f 52 43 4f 55 4e 54 3a 3d 20 33 36 ┆ SHLD SECCNT ; SECTORCOUNT:= 36┆ 0x06ea60…06ea80 30 3b 0d 0a 09 4c 58 49 09 44 2c 42 55 46 09 3b 0d 0a 09 50 55 53 48 09 44 09 3b 0d 0a 09 43 41 ┆0; LXI D,BUF ; PUSH D ; CA┆ 0x06ea80…06eaa0 4c 4c 09 44 4d 41 09 3b 20 44 4d 41 20 41 44 44 52 3a 3d 20 53 54 41 52 54 20 4f 46 20 42 55 46 ┆LL DMA ; DMA ADDR:= START OF BUF┆ 0x06eaa0…06eac0 46 45 52 3b 0d 0a 09 4c 44 41 09 43 55 52 54 52 4b 09 3b 0d 0a 09 4d 4f 56 09 43 2c 41 09 3b 0d ┆FER; LDA CURTRK ; MOV C,A ; ┆ 0x06eac0…06eae0 0a 09 43 41 4c 4c 09 54 52 4b 09 3b 20 53 45 54 20 54 52 41 43 4b 28 54 52 4b 3a 3d 43 55 52 20 ┆ CALL TRK ; SET TRACK(TRK:=CUR ┆ 0x06eae0…06eb00 54 52 4b 29 3b 0d 0a 09 4c 44 41 09 43 55 52 53 45 43 09 3b 0d 0a 09 4d 4f 56 09 43 2c 41 09 3b ┆TRK); LDA CURSEC ; MOV C,A ;┆ 0x06eb00…06eb20 0d 0a 09 4c 44 41 09 43 55 52 54 52 4b 09 3b 0d 0a 09 4d 4f 56 09 42 2c 41 09 3b 0d 0a 09 50 55 ┆ LDA CURTRK ; MOV B,A ; PU┆ 0x06eb20…06eb40 53 48 09 42 09 3b 0d 0a 09 43 41 4c 4c 09 53 45 43 09 3b 20 53 45 54 20 53 45 43 54 4f 52 28 53 ┆SH B ; CALL SEC ; SET SECTOR(S┆ 0x06eb40…06eb60 45 43 3a 3d 43 55 52 20 53 45 43 29 3b 0d 0a 52 45 41 44 53 3a 09 43 41 4c 4c 09 44 52 45 41 44 ┆EC:=CUR SEC); READS: CALL DREAD┆ 0x06eb60…06eb80 09 3b 20 52 45 41 44 20 53 45 43 54 4f 52 3b 0d 0a 09 4c 58 49 09 44 2c 42 41 44 53 09 3b 0d 0a ┆ ; READ SECTOR; LXI D,BADS ; ┆ 0x06eb80…06eba0 09 4f 52 41 09 41 09 3b 20 49 46 20 45 52 52 4f 52 53 20 54 48 45 4e 20 50 52 49 4e 54 20 57 41 ┆ ORA A ; IF ERRORS THEN PRINT WA┆ 0x06eba0…06ebc0 52 4e 49 4e 47 3b 0d 0a 09 43 4e 5a 09 45 52 52 4f 52 09 3b 0d 0a 09 50 4f 50 09 42 09 3b 0d 0a ┆RNING; CNZ ERROR ; POP B ; ┆ 0x06ebc0…06ebe0 09 49 4e 52 09 43 09 3b 20 53 45 43 3a 3d 20 53 45 43 20 2b 20 31 3b 0d 0a 09 4c 44 41 09 53 50 ┆ INR C ; SEC:= SEC + 1; LDA SP┆ 0x06ebe0…06ec00 54 09 3b 0d 0a 09 43 4d 50 09 43 09 3b 20 49 46 20 53 45 43 3d 53 50 54 20 54 48 45 4e 0d 0a 09 ┆T ; CMP C ; IF SEC=SPT THEN ┆ 0x06ec00…06ec20 (29, 1, 2) 09 3b 0d 0a 09 44 43 58 09 48 09 3b 20 53 45 43 54 4f 52 43 4f 55 4e 54 3a 3d 53 45 43 54 4f 52 ┆ ; DCX H ; SECTORCOUNT:=SECTOR┆ 0x06ec20…06ec40 43 4f 55 4e 54 2d 31 3b 0d 0a 09 53 48 4c 44 09 53 45 43 43 4e 54 09 3b 0d 0a 09 50 4f 50 09 42 ┆COUNT-1; SHLD SECCNT ; POP B┆ 0x06ec40…06ec60 09 3b 20 49 46 20 53 45 43 54 4f 52 43 4f 55 4e 54 3d 30 20 54 48 45 4e 0d 0a 09 4d 4f 56 09 41 ┆ ; IF SECTORCOUNT=0 THEN MOV A┆ 0x06ec60…06ec80 2c 48 09 3b 20 20 47 4f 54 4f 20 4e 45 58 54 20 52 45 41 44 3b 0d 0a 09 4f 52 41 09 41 09 3b 0d ┆,H ; GOTO NEXT READ; ORA A ; ┆ 0x06ec80…06eca0 0a 09 4a 4e 5a 09 44 44 4d 41 09 3b 0d 0a 09 4d 4f 56 09 41 2c 4c 09 3b 0d 0a 09 4f 52 41 09 41 ┆ JNZ DDMA ; MOV A,L ; ORA A┆ 0x06eca0…06ecc0 09 3b 0d 0a 09 4a 5a 09 4e 44 41 54 09 3b 0d 0a 44 44 4d 41 3a 09 50 4f 50 09 44 09 3b 0d 0a 09 ┆ ; JZ NDAT ; DDMA: POP D ; ┆ 0x06ecc0…06ece0 4c 58 49 09 48 2c 31 32 38 09 3b 0d 0a 09 44 41 44 09 44 09 3b 0d 0a 09 58 43 48 47 09 09 3b 0d ┆LXI H,128 ; DAD D ; XCHG ; ┆ 0x06ece0…06ed00 0a 09 50 55 53 48 09 44 09 3b 0d 0a 09 50 55 53 48 09 42 09 3b 20 44 4d 41 20 41 44 44 52 3a 3d ┆ PUSH D ; PUSH B ; DMA ADDR:=┆ 0x06ed00…06ed20 20 44 4d 41 20 41 44 44 52 20 2b 20 31 32 38 3b 0d 0a 09 43 41 4c 4c 09 44 4d 41 09 3b 0d 0a 09 ┆ DMA ADDR + 128; CALL DMA ; ┆ 0x06ed20…06ed40 4a 4d 50 09 57 52 49 54 45 44 09 3b 20 47 4f 54 4f 20 57 52 49 54 45 20 53 45 43 54 4f 52 3b 0d ┆JMP WRITED ; GOTO WRITE SECTOR; ┆ 0x06ed40…06ed60 0a 0d 0a 4e 44 41 54 3a 09 4d 4f 56 09 41 2c 42 09 3b 20 4e 45 58 54 20 52 45 41 44 3a 0d 0a 09 ┆ NDAT: MOV A,B ; NEXT READ: ┆ 0x06ed60…06ed80 53 54 41 09 43 55 52 54 52 4b 09 3b 0d 0a 09 4d 4f 56 09 41 2c 43 09 3b 20 43 55 52 54 52 4b 3a ┆STA CURTRK ; MOV A,C ; CURTRK:┆ 0x06ed80…06eda0 3d 54 52 4b 3b 0d 0a 09 53 54 41 09 43 55 52 53 45 43 09 3b 20 43 55 52 53 45 43 3a 3d 53 45 43 ┆=TRK; STA CURSEC ; CURSEC:=SEC┆ 0x06eda0…06edc0 3b 0d 0a 09 50 4f 50 09 44 09 3b 0d 0a 09 43 41 4c 4c 09 46 4c 55 53 48 09 3b 20 46 4c 55 53 48 ┆; POP D ; CALL FLUSH ; FLUSH┆ 0x06edc0…06ede0 20 42 55 46 46 45 52 3b 0d 0a 09 4a 4d 50 09 52 44 41 54 09 3b 20 47 4f 54 4f 20 52 45 41 44 20 ┆ BUFFER; JMP RDAT ; GOTO READ ┆ 0x06ede0…06ee00 44 41 54 41 3b 0d 0a 0d 0a 45 44 41 54 3a 09 43 41 4c 4c 09 46 4c 55 53 48 09 3b 20 45 4e 44 20 ┆DATA; EDAT: CALL FLUSH ; END ┆ 0x06ee00…06ee20 (29, 1, 3) 09 3b 0d 0a 09 44 43 58 09 48 09 3b 20 53 45 43 54 4f 52 43 4f 55 4e 54 3a 3d 53 45 43 54 4f 52 ┆ ; DCX H ; SECTORCOUNT:=SECTOR┆ 0x06ee20…06ee40 43 4f 55 4e 54 2d 31 3b 0d 0a 09 53 48 4c 44 09 53 45 43 43 4e 54 09 3b 0d 0a 09 50 4f 50 09 42 ┆COUNT-1; SHLD SECCNT ; POP B┆ 0x06ee40…06ee60 09 3b 20 49 46 20 53 45 43 54 4f 52 43 4f 55 4e 54 3d 30 20 54 48 45 4e 0d 0a 09 4d 4f 56 09 41 ┆ ; IF SECTORCOUNT=0 THEN MOV A┆ 0x06ee60…06ee80 2c 48 09 3b 20 20 47 4f 54 4f 20 4e 45 58 54 20 52 45 41 44 3b 0d 0a 09 4f 52 41 09 41 09 3b 0d ┆,H ; GOTO NEXT READ; ORA A ; ┆ 0x06ee80…06eea0 0a 09 4a 4e 5a 09 44 44 4d 41 09 3b 0d 0a 09 4d 4f 56 09 41 2c 4c 09 3b 0d 0a 09 4f 52 41 09 41 ┆ JNZ DDMA ; MOV A,L ; ORA A┆ 0x06eea0…06eec0 09 3b 0d 0a 09 4a 5a 09 4e 44 41 54 09 3b 0d 0a 44 44 4d 41 3a 09 50 4f 50 09 44 09 3b 0d 0a 09 ┆ ; JZ NDAT ; DDMA: POP D ; ┆ 0x06eec0…06eee0 4c 58 49 09 48 2c 31 32 38 09 3b 0d 0a 09 44 41 44 09 44 09 3b 0d 0a 09 58 43 48 47 09 09 3b 0d ┆LXI H,128 ; DAD D ; XCHG ; ┆ 0x06eee0…06ef00 0a 09 50 55 53 48 09 44 09 3b 0d 0a 09 50 55 53 48 09 42 09 3b 20 44 4d 41 20 41 44 44 52 3a 3d ┆ PUSH D ; PUSH B ; DMA ADDR:=┆ 0x06ef00…06ef20 20 44 4d 41 20 41 44 44 52 20 2b 20 31 32 38 3b 0d 0a 09 43 41 4c 4c 09 44 4d 41 09 3b 0d 0a 09 ┆ DMA ADDR + 128; CALL DMA ; ┆ 0x06ef20…06ef40 4a 4d 50 09 57 52 49 54 45 44 09 3b 20 47 4f 54 4f 20 57 52 49 54 45 20 53 45 43 54 4f 52 3b 0d ┆JMP WRITED ; GOTO WRITE SECTOR; ┆ 0x06ef40…06ef60 0a 0d 0a 4e 44 41 54 3a 09 4d 4f 56 09 41 2c 42 09 3b 20 4e 45 58 54 20 52 45 41 44 3a 0d 0a 09 ┆ NDAT: MOV A,B ; NEXT READ: ┆ 0x06ef60…06ef80 53 54 41 09 43 55 52 54 52 4b 09 3b 0d 0a 09 4d 4f 56 09 41 2c 43 09 3b 20 43 55 52 54 52 4b 3a ┆STA CURTRK ; MOV A,C ; CURTRK:┆ 0x06ef80…06efa0 3d 54 52 4b 3b 0d 0a 09 53 54 41 09 43 55 52 53 45 43 09 3b 20 43 55 52 53 45 43 3a 3d 53 45 43 ┆=TRK; STA CURSEC ; CURSEC:=SEC┆ 0x06efa0…06efc0 3b 0d 0a 09 50 4f 50 09 44 09 3b 0d 0a 09 43 41 4c 4c 09 46 4c 55 53 48 09 3b 20 46 4c 55 53 48 ┆; POP D ; CALL FLUSH ; FLUSH┆ 0x06efc0…06efe0 20 42 55 46 46 45 52 3b 0d 0a 09 4a 4d 50 09 52 44 41 54 09 3b 20 47 4f 54 4f 20 52 45 41 44 20 ┆ BUFFER; JMP RDAT ; GOTO READ ┆ 0x06efe0…06f000 44 41 54 41 3b 0d 0a 0d 0a 45 44 41 54 3a 09 43 41 4c 4c 09 46 4c 55 53 48 09 3b 20 45 4e 44 20 ┆DATA; EDAT: CALL FLUSH ; END ┆ 0x06f000…06f020 (29, 1, 4) 3e 27 2c 33 36 0d 0a 42 41 44 53 3a 09 44 42 09 31 33 2c 31 30 2c 27 42 41 44 20 53 45 43 54 4f ┆>',36 BADS: DB 13,10,'BAD SECTO┆ 0x06f020…06f040 52 20 4f 4e 20 53 4f 55 52 43 45 20 44 49 53 4b 27 2c 33 36 0d 0a 42 41 44 44 3a 09 44 42 09 31 ┆R ON SOURCE DISK',36 BADD: DB 1┆ 0x06f040…06f060 33 2c 31 30 2c 27 42 41 44 20 53 45 43 54 4f 52 20 4f 4e 20 44 45 53 54 49 4e 41 54 49 4f 4e 20 ┆3,10,'BAD SECTOR ON DESTINATION ┆ 0x06f060…06f080 44 49 53 4b 27 2c 33 36 0d 0a 4d 53 59 53 44 3a 09 44 42 09 31 33 2c 31 30 2c 27 49 4e 53 45 52 ┆DISK',36 MSYSD: DB 13,10,'INSER┆ 0x06f080…06f0a0 54 20 53 59 53 54 45 4d 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 54 55 52 4e 3e 27 ┆T SYSTEM DISK AND TYPE <RETURN>'┆ 0x06f0a0…06f0c0 2c 33 36 0d 0a 4f 4b 3a 09 44 42 09 31 33 2c 31 30 2c 27 42 41 43 4b 55 50 20 43 4f 4d 50 4c 45 ┆,36 OK: DB 13,10,'BACKUP COMPLE┆ 0x06f0c0…06f0e0 54 45 27 2c 33 36 0d 0a 43 52 4c 46 3a 09 44 42 09 31 33 2c 31 30 2c 33 36 0d 0a 0d 0a 43 43 50 ┆TE',36 CRLF: DB 13,10,36 CCP┆ 0x06f0e0…06f100 52 45 54 3a 09 44 57 09 30 0d 0a 0d 0a 46 54 52 4b 3a 09 44 42 09 30 0d 0a 4c 54 52 4b 3a 09 44 ┆RET: DW 0 FTRK: DB 0 LTRK: D┆ 0x06f100…06f120 42 09 30 0d 0a 53 50 54 3a 09 44 42 09 30 0d 0a 53 44 52 49 56 3a 09 44 42 09 30 0d 0a 44 44 52 ┆B 0 SPT: DB 0 SDRIV: DB 0 DDR┆ 0x06f120…06f140 49 56 3a 09 44 42 09 30 0d 0a 44 46 4c 41 47 3a 09 44 42 09 30 0d 0a 0d 0a 43 55 52 54 52 4b 3a ┆IV: DB 0 DFLAG: DB 0 CURTRK:┆ 0x06f140…06f160 09 44 42 09 30 0d 0a 43 55 52 53 45 43 3a 09 44 42 09 30 0d 0a 53 45 43 43 4e 54 3a 09 44 57 09 ┆ DB 0 CURSEC: DB 0 SECCNT: DW ┆ 0x06f160…06f180 30 0d 0a 0d 0a 09 44 53 09 33 31 0d 0a 53 54 41 43 4b 3a 09 44 53 09 31 09 3b 20 4c 4f 43 41 4c ┆0 DS 31 STACK: DS 1 ; LOCAL┆ 0x06f180…06f1a0 20 53 54 41 43 4b 0d 0a 0d 0a 42 55 46 3a 09 44 57 09 30 09 3b 20 52 45 41 44 2f 57 52 49 54 45 ┆ STACK BUF: DW 0 ; READ/WRITE┆ 0x06f1a0…06f1c0 20 42 55 46 46 45 52 0d 0a 0d 0a 09 45 4e 44 09 31 30 30 48 09 3b 0d 0a 1a 1a 1a 1a 1a 1a 1a 1a ┆ BUFFER END 100H ; ┆ 0x06f1c0…06f1e0 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆ ┆ […0x1…] 0x06f200…06f220 (29, 1, 5) 4a 4e 5a 09 4e 45 58 54 53 09 3b 20 42 45 47 49 4e 0d 0a 09 4c 44 41 09 4c 54 52 4b 09 3b 0d 0a ┆JNZ NEXTS ; BEGIN LDA LTRK ; ┆ 0x06f220…06f240 09 43 4d 50 09 42 09 3b 20 20 20 20 49 46 20 54 52 4b 3d 4c 41 53 54 20 54 48 45 4e 20 47 4f 54 ┆ CMP B ; IF TRK=LAST THEN GOT┆ 0x06f240…06f260 4f 20 57 52 49 54 45 3b 0d 0a 09 4a 5a 09 57 44 41 54 09 3b 0d 0a 09 49 4e 52 09 42 09 3b 20 20 ┆O WRITE; JZ WDAT ; INR B ; ┆ 0x06f260…06f280 20 20 54 52 4b 3a 3d 54 52 4b 2b 31 3b 0d 0a 09 4d 56 49 09 43 2c 30 09 3b 20 20 20 20 53 45 43 ┆ TRK:=TRK+1; MVI C,0 ; SEC┆ 0x06f280…06f2a0 3a 3d 30 3b 0d 0a 09 50 55 53 48 09 42 09 3b 0d 0a 09 4d 4f 56 09 43 2c 42 09 3b 0d 0a 09 43 41 ┆:=0; PUSH B ; MOV C,B ; CA┆ 0x06f2a0…06f2c0 4c 4c 09 54 52 4b 09 3b 20 20 20 20 53 45 54 20 54 52 41 43 4b 28 54 52 4b 29 3b 0d 0a 09 50 4f ┆LL TRK ; SET TRACK(TRK); PO┆ 0x06f2c0…06f2e0 50 09 42 09 3b 20 45 4e 44 3b 0d 0a 4e 45 58 54 53 3a 20 20 50 55 53 48 09 42 09 3b 0d 0a 09 43 ┆P B ; END; NEXTS: PUSH B ; C┆ 0x06f2e0…06f300 41 4c 4c 09 53 45 43 09 3b 20 53 45 54 20 53 45 43 54 4f 52 28 53 45 43 29 3b 0d 0a 09 4c 48 4c ┆ALL SEC ; SET SECTOR(SEC); LHL┆ 0x06f300…06f320 44 09 53 45 43 43 4e 54 09 3b 0d 0a 09 44 43 58 09 48 09 3b 20 53 45 43 54 4f 52 43 4f 55 4e 54 ┆D SECCNT ; DCX H ; SECTORCOUNT┆ 0x06f320…06f340 3a 3d 53 45 43 54 4f 52 43 4f 55 4e 54 2d 31 3b 0d 0a 09 53 48 4c 44 09 53 45 43 43 4e 54 09 3b ┆:=SECTORCOUNT-1; SHLD SECCNT ;┆ 0x06f340…06f360 0d 0a 09 50 4f 50 09 42 09 3b 0d 0a 09 4d 4f 56 09 41 2c 48 09 3b 20 49 46 20 53 45 43 54 4f 52 ┆ POP B ; MOV A,H ; IF SECTOR┆ 0x06f360…06f380 43 4f 55 4e 54 3d 30 20 54 48 45 4e 20 47 4f 54 4f 20 57 52 49 54 45 3b 0d 0a 09 4f 52 41 09 41 ┆COUNT=0 THEN GOTO WRITE; ORA A┆ 0x06f380…06f3a0 09 3b 0d 0a 09 4a 4e 5a 09 53 44 4d 41 09 3b 0d 0a 09 4d 4f 56 09 41 2c 4c 09 3b 0d 0a 09 4f 52 ┆ ; JNZ SDMA ; MOV A,L ; OR┆ 0x06f3a0…06f3c0 41 09 41 09 3b 0d 0a 09 4a 5a 09 57 44 41 54 09 3b 0d 0a 53 44 4d 41 3a 09 50 4f 50 09 44 09 3b ┆A A ; JZ WDAT ; SDMA: POP D ;┆ 0x06f3c0…06f3e0 0d 0a 09 4c 58 49 09 48 2c 31 32 38 09 3b 20 44 4d 41 20 41 44 44 52 3a 3d 20 44 4d 41 20 41 44 ┆ LXI H,128 ; DMA ADDR:= DMA AD┆ 0x06f3e0…06f400 44 52 20 2b 20 31 32 38 3b 0d 0a 09 44 41 44 09 44 09 3b 0d 0a 09 58 43 48 47 09 09 3b 0d 0a 09 ┆DR + 128; DAD D ; XCHG ; ┆ 0x06f400…06f420 (29, 1, 6) 4f 46 20 43 4f 50 59 3a 0d 0a 09 4c 58 49 09 44 2c 4f 4b 09 3b 0d 0a 09 43 41 4c 4c 09 50 52 49 ┆OF COPY: LXI D,OK ; CALL PRI┆ 0x06f420…06f440 4e 54 09 3b 20 43 4f 50 59 20 43 4f 4d 50 4c 45 54 45 3b 0d 0a 09 4c 58 49 09 44 2c 4d 53 59 53 ┆NT ; COPY COMPLETE; LXI D,MSYS┆ 0x06f440…06f460 44 09 3b 0d 0a 09 43 41 4c 4c 09 50 52 49 4e 54 09 3b 20 57 41 49 54 20 46 4f 52 20 43 48 41 4e ┆D ; CALL PRINT ; WAIT FOR CHAN┆ 0x06f460…06f480 47 45 20 54 4f 20 53 59 53 54 45 4d 20 44 49 53 4b 3a 0d 0a 09 43 41 4c 4c 09 43 4f 4e 53 49 09 ┆GE TO SYSTEM DISK: CALL CONSI ┆ 0x06f480…06f4a0 3b 0d 0a 09 4a 4d 50 09 42 4f 4f 54 09 3b 20 57 41 52 4d 20 42 4f 4f 54 0d 0a 0d 0a 46 4c 55 53 ┆; JMP BOOT ; WARM BOOT FLUS┆ 0x06f4a0…06f4c0 48 3a 09 4c 44 41 09 43 55 52 54 52 4b 09 3b 20 46 4f 52 43 45 20 42 55 46 46 45 52 20 57 52 49 ┆H: LDA CURTRK ; FORCE BUFFER WRI┆ 0x06f4c0…06f4e0 54 45 3a 0d 0a 09 4d 4f 56 09 43 2c 41 09 3b 0d 0a 09 44 43 52 09 43 09 3b 0d 0a 09 43 41 4c 4c ┆TE: MOV C,A ; DCR C ; CALL┆ 0x06f4e0…06f500 09 54 52 4b 09 3b 20 53 45 54 20 54 52 41 43 4b 28 43 55 52 54 52 4b 2d 31 29 3b 0d 0a 09 4c 44 ┆ TRK ; SET TRACK(CURTRK-1); LD┆ 0x06f500…06f520 41 09 43 55 52 53 45 43 09 3b 0d 0a 09 4d 4f 56 09 43 2c 41 09 3b 0d 0a 09 43 41 4c 4c 09 53 45 ┆A CURSEC ; MOV C,A ; CALL SE┆ 0x06f520…06f540 43 09 3b 20 53 45 54 20 53 45 43 54 4f 52 28 43 55 52 53 45 43 29 3b 0d 0a 09 43 41 4c 4c 09 44 ┆C ; SET SECTOR(CURSEC); CALL D┆ 0x06f540…06f560 52 45 41 44 09 3b 0d 0a 09 4c 58 49 09 44 2c 42 41 44 44 09 3b 0d 0a 09 4f 52 41 09 41 09 3b 20 ┆READ ; LXI D,BADD ; ORA A ; ┆ 0x06f560…06f580 49 46 20 45 52 52 4f 52 20 54 48 45 4e 20 50 52 49 4e 54 20 57 41 52 4e 49 4e 47 3b 0d 0a 09 43 ┆IF ERROR THEN PRINT WARNING; C┆ 0x06f580…06f5a0 4e 5a 09 45 52 52 4f 52 09 3b 0d 0a 09 52 45 54 09 09 3b 0d 0a 0d 0a 53 45 4c 3a 09 4d 4f 56 09 ┆NZ ERROR ; RET ; SEL: MOV ┆ 0x06f5a0…06f5c0 43 2c 41 09 3b 20 53 45 4c 45 43 54 20 44 52 49 56 45 20 49 4e 20 41 3a 0d 0a 09 4c 48 4c 44 09 ┆C,A ; SELECT DRIVE IN A: LHLD ┆ 0x06f5c0…06f5e0 57 42 4f 4f 54 09 3b 0d 0a 09 4c 58 49 09 44 2c 53 45 4c 44 53 4b 3b 0d 0a 09 44 41 44 09 44 09 ┆WBOOT ; LXI D,SELDSK; DAD D ┆ 0x06f5e0…06f600 3b 0d 0a 09 50 43 48 4c 09 09 3b 0d 0a 0d 0a 54 52 4b 3a 09 4c 48 4c 44 09 57 42 4f 4f 54 09 3b ┆; PCHL ; TRK: LHLD WBOOT ;┆ 0x06f600…06f620 (29, 1, 7) 4f 46 20 43 4f 50 59 3a 0d 0a 09 4c 58 49 09 44 2c 4f 4b 09 3b 0d 0a 09 43 41 4c 4c 09 50 52 49 ┆OF COPY: LXI D,OK ; CALL PRI┆ 0x06f620…06f640 4e 54 09 3b 20 43 4f 50 59 20 43 4f 4d 50 4c 45 54 45 3b 0d 0a 09 4c 58 49 09 44 2c 4d 53 59 53 ┆NT ; COPY COMPLETE; LXI D,MSYS┆ 0x06f640…06f660 44 09 3b 0d 0a 09 43 41 4c 4c 09 50 52 49 4e 54 09 3b 20 57 41 49 54 20 46 4f 52 20 43 48 41 4e ┆D ; CALL PRINT ; WAIT FOR CHAN┆ 0x06f660…06f680 47 45 20 54 4f 20 53 59 53 54 45 4d 20 44 49 53 4b 3a 0d 0a 09 43 41 4c 4c 09 43 4f 4e 53 49 09 ┆GE TO SYSTEM DISK: CALL CONSI ┆ 0x06f680…06f6a0 3b 0d 0a 09 4a 4d 50 09 42 4f 4f 54 09 3b 20 57 41 52 4d 20 42 4f 4f 54 0d 0a 0d 0a 46 4c 55 53 ┆; JMP BOOT ; WARM BOOT FLUS┆ 0x06f6a0…06f6c0 48 3a 09 4c 44 41 09 43 55 52 54 52 4b 09 3b 20 46 4f 52 43 45 20 42 55 46 46 45 52 20 57 52 49 ┆H: LDA CURTRK ; FORCE BUFFER WRI┆ 0x06f6c0…06f6e0 54 45 3a 0d 0a 09 4d 4f 56 09 43 2c 41 09 3b 0d 0a 09 44 43 52 09 43 09 3b 0d 0a 09 43 41 4c 4c ┆TE: MOV C,A ; DCR C ; CALL┆ 0x06f6e0…06f700 09 54 52 4b 09 3b 20 53 45 54 20 54 52 41 43 4b 28 43 55 52 54 52 4b 2d 31 29 3b 0d 0a 09 4c 44 ┆ TRK ; SET TRACK(CURTRK-1); LD┆ 0x06f700…06f720 41 09 43 55 52 53 45 43 09 3b 0d 0a 09 4d 4f 56 09 43 2c 41 09 3b 0d 0a 09 43 41 4c 4c 09 53 45 ┆A CURSEC ; MOV C,A ; CALL SE┆ 0x06f720…06f740 43 09 3b 20 53 45 54 20 53 45 43 54 4f 52 28 43 55 52 53 45 43 29 3b 0d 0a 09 43 41 4c 4c 09 44 ┆C ; SET SECTOR(CURSEC); CALL D┆ 0x06f740…06f760 52 45 41 44 09 3b 0d 0a 09 4c 58 49 09 44 2c 42 41 44 44 09 3b 0d 0a 09 4f 52 41 09 41 09 3b 20 ┆READ ; LXI D,BADD ; ORA A ; ┆ 0x06f760…06f780 49 46 20 45 52 52 4f 52 20 54 48 45 4e 20 50 52 49 4e 54 20 57 41 52 4e 49 4e 47 3b 0d 0a 09 43 ┆IF ERROR THEN PRINT WARNING; C┆ 0x06f780…06f7a0 4e 5a 09 45 52 52 4f 52 09 3b 0d 0a 09 52 45 54 09 09 3b 0d 0a 0d 0a 53 45 4c 3a 09 4d 4f 56 09 ┆NZ ERROR ; RET ; SEL: MOV ┆ 0x06f7a0…06f7c0 43 2c 41 09 3b 20 53 45 4c 45 43 54 20 44 52 49 56 45 20 49 4e 20 41 3a 0d 0a 09 4c 48 4c 44 09 ┆C,A ; SELECT DRIVE IN A: LHLD ┆ 0x06f7c0…06f7e0 57 42 4f 4f 54 09 3b 0d 0a 09 4c 58 49 09 44 2c 53 45 4c 44 53 4b 3b 0d 0a 09 44 41 44 09 44 09 ┆WBOOT ; LXI D,SELDSK; DAD D ┆ 0x06f7e0…06f800 3b 0d 0a 09 50 43 48 4c 09 09 3b 0d 0a 0d 0a 54 52 4b 3a 09 4c 48 4c 44 09 57 42 4f 4f 54 09 3b ┆; PCHL ; TRK: LHLD WBOOT ;┆ 0x06f800…06f820 (29, 1, 8) c3 e1 2c 21 00 00 39 31 03 36 3e ff cd 30 2d ff 21 00 00 39 31 03 36 af cd 30 2d c3 00 00 3a 00 ┆ ,! 91 6> 0- ! 91 6 0- : ┆ 0x06f820…06f840 38 b7 21 03 15 c4 70 33 cd a1 22 2a 03 36 f9 c9 32 05 36 21 00 00 39 22 03 36 cd 81 2d cd c8 2e ┆8 ! p3 "* 6 2 6! 9" 6 - .┆ 0x06f840…06f860 3a 5d 00 fe 20 ca 4d 2d cd 5c 33 08 00 cd 39 25 cd 39 25 c3 a5 2f f5 cd 82 2f 3a 8f 36 fe 9c c2 ┆:Å M- Ø3 9% 9% / /: 6 ┆ 0x06f860…06f880 10 2d 3a 99 37 fe 9c c2 10 2d f1 2a 03 36 f9 f5 cd 7b 2d f1 b7 c4 81 26 c3 a5 2f cd 06 2e c3 c8 ┆ -: 7 - * 6 æ- & / . ┆ 0x06f880…06f8a0 2e 3a 5d 03 c6 14 21 07 00 be da 9b 2d 21 5a 08 cd dc 1a eb cd f7 17 09 c3 1b 2d 21 34 02 7e b7 ┆.:Å ! -!Z -!4 ü ┆ 0x06f8a0…06f8c0 c4 ff 37 01 09 01 21 90 36 cd 08 17 01 65 01 21 ff 37 cd 08 17 3a b0 02 32 20 37 cd 24 2e cd 54 ┆ 7 ! 6 e ! 7 : 2 7 $. T┆ 0x06f8c0…06f8e0 22 cd 9a 2e 21 02 00 cd 4f 21 21 53 01 cd e5 1a 21 17 01 cd e5 1a cd 90 1e 21 8f 01 cd fe 2d 23 ┆" .! O!!S ! ! -#┆ 0x06f8e0…06f900 cd fe 2d 23 cd fe 2d 23 cd fe 2d 3a 60 03 32 18 37 3a 63 03 32 2b 02 cd 76 19 32 1f 37 c9 cd b7 ┆ -# -# -:` 2 7:c 2+ v 2 7 ┆ 0x06f900…06f920 1a 58 08 c3 e5 1a 01 65 01 21 ff 37 cd 08 17 3a b0 02 32 20 37 cd 24 2e cd 8f 22 cd 95 2e 3a 1f ┆ X e ! 7 : 2 7 $. " .: ┆ 0x06f920…06f940 37 c3 7c 18 2a 06 00 11 fa ff 19 cd 4c 2e 22 79 39 3a 49 02 cd 46 17 2b 2b 22 77 39 22 7d 39 cd ┆7 ø * L."y9:I F ++"w9"å9 ┆ 0x06f940…06f960 a5 2e 22 7b 39 22 64 39 22 66 39 c9 e5 2a b1 02 3a 20 37 b7 c2 6d 2e 2a 48 02 4c 26 00 eb 62 6a ┆ ."æ9"d9"f9 * : 7 m.*H L& bj┆ 0x06f960…06f980 19 0d c2 60 2e eb e1 cd 2c 17 2b e5 23 22 68 39 22 72 39 e5 2a 48 02 2d cd 44 23 22 6e 39 eb 22 ┆ `. , + #"h9"r9 *H - D#"n9 "┆ 0x06f980…06f9a0 70 39 eb e3 e5 cd 2b 17 22 6c 39 d1 e1 cd 2c 17 22 6a 39 e1 c9 3a 20 37 b7 c0 2a 48 02 cd 90 1e ┆p9 + "l9 , "j9 : 7 *H ┆ 0x06f9a0…06f9c0 2d c2 9d 2e c9 e5 7c d6 10 21 5d 03 96 fe 08 d2 b4 2e 3e 08 6f 26 00 29 29 29 29 3e 04 bc d2 c3 ┆- . ø !Å .> o& ))))> ┆ 0x06f9c0…06f9e0 2e 67 6f eb e1 c3 2c 17 cd 2c 33 cd f8 2e cd 1a 2f 3e 01 32 6b 38 3a 48 02 d6 01 32 6d 38 3d 32 ┆.go , ,3 . /> 2k8:H 2m8=2┆ 0x06f9e0…06fa00 70 38 3d 32 6f 38 cd 42 2f 3a 80 39 c6 16 2a 91 39 bc 3e 19 d4 87 26 c9 01 0c 00 11 40 39 21 f2 ┆p8=2o8 B/: 9 * 9 > & @9! ┆ 0x06fa00…06fa20 (29, 1, 9) 50 55 53 48 09 44 09 3b 0d 0a 09 50 55 53 48 09 42 09 3b 0d 0a 09 43 41 4c 4c 09 44 4d 41 09 3b ┆PUSH D ; PUSH B ; CALL DMA ;┆ 0x06fa20…06fa40 0d 0a 09 4a 4d 50 09 52 45 41 44 53 09 3b 20 47 4f 54 4f 20 52 45 41 44 20 53 45 43 54 4f 52 3b ┆ JMP READS ; GOTO READ SECTOR;┆ 0x06fa40…06fa60 0d 0a 57 44 41 54 3a 09 50 4f 50 09 44 09 3b 20 57 52 49 54 45 20 44 41 54 41 3a 0d 0a 09 4c 44 ┆ WDAT: POP D ; WRITE DATA: LD┆ 0x06fa60…06fa80 41 09 44 46 4c 41 47 09 3b 0d 0a 09 4f 52 41 09 41 09 3b 20 49 46 20 44 45 53 54 49 4e 41 54 49 ┆A DFLAG ; ORA A ; IF DESTINATI┆ 0x06fa80…06faa0 4f 4e 20 44 52 49 56 45 20 3d 20 53 4f 55 52 43 45 20 44 52 49 56 45 0d 0a 09 4a 4e 5a 09 53 45 ┆ON DRIVE = SOURCE DRIVE JNZ SE┆ 0x06faa0…06fac0 4c 44 45 09 3b 20 20 54 48 45 4e 20 57 41 49 54 20 46 4f 52 20 44 49 53 4b 20 43 48 41 4e 47 45 ┆LDE ; THEN WAIT FOR DISK CHANGE┆ 0x06fac0…06fae0 3b 0d 0a 09 4c 58 49 09 44 2c 4d 44 44 49 53 4b 3b 0d 0a 09 43 41 4c 4c 09 50 52 49 4e 54 09 3b ┆; LXI D,MDDISK; CALL PRINT ;┆ 0x06fae0…06fb00 0d 0a 09 43 41 4c 4c 09 43 4f 4e 53 49 09 3b 0d 0a 53 45 4c 44 45 3a 09 4c 44 41 09 44 44 52 49 ┆ CALL CONSI ; SELDE: LDA DDRI┆ 0x06fb00…06fb20 56 09 3b 0d 0a 09 43 41 4c 4c 09 53 45 4c 09 3b 20 53 45 4c 45 43 54 28 44 45 53 54 49 4e 41 54 ┆V ; CALL SEL ; SELECT(DESTINAT┆ 0x06fb20…06fb40 49 4f 4e 20 44 52 49 56 45 29 3b 0d 0a 09 4c 58 49 09 48 2c 33 36 30 09 3b 0d 0a 09 53 48 4c 44 ┆ION DRIVE); LXI H,360 ; SHLD┆ 0x06fb40…06fb60 09 53 45 43 43 4e 54 09 3b 20 53 45 43 54 4f 52 43 4f 55 4e 54 3a 3d 20 33 36 30 3b 0d 0a 09 4c ┆ SECCNT ; SECTORCOUNT:= 360; L┆ 0x06fb60…06fb80 58 49 09 44 2c 42 55 46 09 3b 0d 0a 09 50 55 53 48 09 44 09 3b 0d 0a 09 43 41 4c 4c 09 44 4d 41 ┆XI D,BUF ; PUSH D ; CALL DMA┆ 0x06fb80…06fba0 09 3b 20 44 4d 41 20 41 44 44 52 3a 3d 20 53 54 41 52 54 20 4f 46 20 42 55 46 46 45 52 3b 0d 0a ┆ ; DMA ADDR:= START OF BUFFER; ┆ 0x06fba0…06fbc0 09 4c 44 41 09 43 55 52 54 52 4b 09 3b 0d 0a 09 4d 4f 56 09 43 2c 41 09 3b 0d 0a 09 43 41 4c 4c ┆ LDA CURTRK ; MOV C,A ; CALL┆ 0x06fbc0…06fbe0 09 54 52 4b 09 3b 20 53 45 54 20 54 52 41 43 4b 28 54 52 4b 3a 3d 43 55 52 20 54 52 4b 29 3b 0d ┆ TRK ; SET TRACK(TRK:=CUR TRK); ┆ 0x06fbe0…06fc00 0a 09 4c 44 41 09 43 55 52 53 45 43 09 3b 0d 0a 09 4d 4f 56 09 43 2c 41 09 3b 0d 0a 09 4c 44 41 ┆ LDA CURSEC ; MOV C,A ; LDA┆ 0x06fc00…06fc20 (29, 1, 10) 20 53 45 54 20 54 52 41 43 4b 20 49 4e 20 43 3a 0d 0a 09 4c 58 49 09 44 2c 53 45 54 54 52 4b 3b ┆ SET TRACK IN C: LXI D,SETTRK;┆ 0x06fc20…06fc40 0d 0a 09 44 41 44 09 44 09 3b 0d 0a 09 4d 56 49 09 42 2c 30 09 3b 0d 0a 09 50 43 48 4c 09 09 3b ┆ DAD D ; MVI B,0 ; PCHL ;┆ 0x06fc40…06fc60 0d 0a 0d 0a 53 45 43 3a 09 4c 48 4c 44 09 57 42 4f 4f 54 09 3b 20 53 45 54 20 53 45 43 54 4f 52 ┆ SEC: LHLD WBOOT ; SET SECTOR┆ 0x06fc60…06fc80 20 49 4e 20 43 3a 0d 0a 09 4c 58 49 09 44 2c 53 45 54 53 45 43 3b 0d 0a 09 44 41 44 09 44 09 3b ┆ IN C: LXI D,SETSEC; DAD D ;┆ 0x06fc80…06fca0 0d 0a 09 4d 56 49 09 42 2c 30 09 3b 0d 0a 09 50 43 48 4c 09 09 3b 0d 0a 0d 0a 44 4d 41 3a 09 4c ┆ MVI B,0 ; PCHL ; DMA: L┆ 0x06fca0…06fcc0 48 4c 44 09 57 42 4f 4f 54 09 3b 20 53 45 54 20 44 4d 41 20 41 44 44 52 45 53 53 20 49 4e 20 44 ┆HLD WBOOT ; SET DMA ADDRESS IN D┆ 0x06fcc0…06fce0 2c 45 3a 0d 0a 09 4d 4f 56 09 42 2c 44 09 3b 0d 0a 09 4d 4f 56 09 43 2c 45 09 3b 0d 0a 09 4c 58 ┆,E: MOV B,D ; MOV C,E ; LX┆ 0x06fce0…06fd00 49 09 44 2c 53 45 54 44 4d 41 3b 0d 0a 09 44 41 44 09 44 09 3b 0d 0a 09 50 43 48 4c 09 09 3b 0d ┆I D,SETDMA; DAD D ; PCHL ; ┆ 0x06fd00…06fd20 0a 0d 0a 44 52 45 41 44 3a 09 4c 48 4c 44 09 57 42 4f 4f 54 09 3b 20 52 45 41 44 20 53 45 43 54 ┆ DREAD: LHLD WBOOT ; READ SECT┆ 0x06fd20…06fd40 4f 52 3a 0d 0a 09 4c 58 49 09 44 2c 52 45 41 44 46 09 3b 0d 0a 09 44 41 44 09 44 09 3b 0d 0a 09 ┆OR: LXI D,READF ; DAD D ; ┆ 0x06fd40…06fd60 50 43 48 4c 09 09 3b 0d 0a 0d 0a 44 57 52 49 54 45 3a 09 4c 48 4c 44 09 57 42 4f 4f 54 09 3b 20 ┆PCHL ; DWRITE: LHLD WBOOT ; ┆ 0x06fd60…06fd80 57 52 49 54 45 20 53 45 43 54 4f 52 3a 0d 0a 09 4c 58 49 09 44 2c 57 52 49 54 45 46 3b 0d 0a 09 ┆WRITE SECTOR: LXI D,WRITEF; ┆ 0x06fd80…06fda0 44 41 44 09 44 09 3b 0d 0a 09 4d 56 49 09 43 2c 32 09 3b 20 57 52 49 54 45 20 54 59 50 45 3a 3d ┆DAD D ; MVI C,2 ; WRITE TYPE:=┆ 0x06fda0…06fdc0 20 55 4e 41 4c 4c 4f 43 41 54 45 44 3b 0d 0a 09 50 43 48 4c 09 09 3b 0d 0a 0d 0a 46 49 4e 49 53 ┆ UNALLOCATED; PCHL ; FINIS┆ 0x06fdc0…06fde0 3a 09 4d 56 49 09 43 2c 50 52 49 4e 54 46 3b 0d 0a 09 43 41 4c 4c 09 42 44 4f 53 09 3b 0d 0a 09 ┆: MVI C,PRINTF; CALL BDOS ; ┆ 0x06fde0…06fe00 4c 48 4c 44 09 43 43 50 52 45 54 09 3b 0d 0a 09 50 43 48 4c 09 09 3b 20 52 45 54 55 52 4e 20 54 ┆LHLD CCPRET ; PCHL ; RETURN T┆ 0x06fe00…06fe20 (29, 1, 11) 20 53 45 54 20 54 52 41 43 4b 20 49 4e 20 43 3a 0d 0a 09 4c 58 49 09 44 2c 53 45 54 54 52 4b 3b ┆ SET TRACK IN C: LXI D,SETTRK;┆ 0x06fe20…06fe40 0d 0a 09 44 41 44 09 44 09 3b 0d 0a 09 4d 56 49 09 42 2c 30 09 3b 0d 0a 09 50 43 48 4c 09 09 3b ┆ DAD D ; MVI B,0 ; PCHL ;┆ 0x06fe40…06fe60 0d 0a 0d 0a 53 45 43 3a 09 4c 48 4c 44 09 57 42 4f 4f 54 09 3b 20 53 45 54 20 53 45 43 54 4f 52 ┆ SEC: LHLD WBOOT ; SET SECTOR┆ 0x06fe60…06fe80 20 49 4e 20 43 3a 0d 0a 09 4c 58 49 09 44 2c 53 45 54 53 45 43 3b 0d 0a 09 44 41 44 09 44 09 3b ┆ IN C: LXI D,SETSEC; DAD D ;┆ 0x06fe80…06fea0 0d 0a 09 4d 56 49 09 42 2c 30 09 3b 0d 0a 09 50 43 48 4c 09 09 3b 0d 0a 0d 0a 44 4d 41 3a 09 4c ┆ MVI B,0 ; PCHL ; DMA: L┆ 0x06fea0…06fec0 48 4c 44 09 57 42 4f 4f 54 09 3b 20 53 45 54 20 44 4d 41 20 41 44 44 52 45 53 53 20 49 4e 20 44 ┆HLD WBOOT ; SET DMA ADDRESS IN D┆ 0x06fec0…06fee0 2c 45 3a 0d 0a 09 4d 4f 56 09 42 2c 44 09 3b 0d 0a 09 4d 4f 56 09 43 2c 45 09 3b 0d 0a 09 4c 58 ┆,E: MOV B,D ; MOV C,E ; LX┆ 0x06fee0…06ff00 49 09 44 2c 53 45 54 44 4d 41 3b 0d 0a 09 44 41 44 09 44 09 3b 0d 0a 09 50 43 48 4c 09 09 3b 0d ┆I D,SETDMA; DAD D ; PCHL ; ┆ 0x06ff00…06ff20 0a 0d 0a 44 52 45 41 44 3a 09 4c 48 4c 44 09 57 42 4f 4f 54 09 3b 20 52 45 41 44 20 53 45 43 54 ┆ DREAD: LHLD WBOOT ; READ SECT┆ 0x06ff20…06ff40 4f 52 3a 0d 0a 09 4c 58 49 09 44 2c 52 45 41 44 46 09 3b 0d 0a 09 44 41 44 09 44 09 3b 0d 0a 09 ┆OR: LXI D,READF ; DAD D ; ┆ 0x06ff40…06ff60 50 43 48 4c 09 09 3b 0d 0a 0d 0a 44 57 52 49 54 45 3a 09 4c 48 4c 44 09 57 42 4f 4f 54 09 3b 20 ┆PCHL ; DWRITE: LHLD WBOOT ; ┆ 0x06ff60…06ff80 57 52 49 54 45 20 53 45 43 54 4f 52 3a 0d 0a 09 4c 58 49 09 44 2c 57 52 49 54 45 46 3b 0d 0a 09 ┆WRITE SECTOR: LXI D,WRITEF; ┆ 0x06ff80…06ffa0 44 41 44 09 44 09 3b 0d 0a 09 50 43 48 4c 09 09 3b 0d 0a 0d 0a 46 49 4e 49 53 3a 09 4d 56 49 09 ┆DAD D ; PCHL ; FINIS: MVI ┆ 0x06ffa0…06ffc0 43 2c 50 52 49 4e 54 46 3b 0d 0a 09 43 41 4c 4c 09 42 44 4f 53 09 3b 0d 0a 09 4c 48 4c 44 09 43 ┆C,PRINTF; CALL BDOS ; LHLD C┆ 0x06ffc0…06ffe0 43 50 52 45 54 09 3b 0d 0a 09 50 43 48 4c 09 09 3b 20 52 45 54 55 52 4e 20 54 4f 20 43 43 50 3b ┆CPRET ; PCHL ; RETURN TO CCP;┆ 0x06ffe0…070000 0d 0a 0d 0a 50 52 49 4e 54 3a 09 4d 56 49 09 43 2c 50 52 49 4e 54 46 3b 0d 0a 09 4a 4d 50 09 42 ┆ PRINT: MVI C,PRINTF; JMP B┆ 0x070000…070020 (29, 1, 12) 03 cd c2 16 21 18 37 7e b7 ca 1a 2f cd f9 1a c2 1a 2f 36 00 21 5c 08 22 07 38 2a 5c 03 22 7f 39 ┆ ! 7ü / /6 !Ø " 8*Ø " 9┆ 0x070020…070040 22 81 39 22 83 39 2a 83 39 22 85 39 22 87 39 22 89 39 22 8b 39 22 8d 39 22 8f 39 2a 66 39 22 91 ┆" 9" 9* 9" 9" 9" 9" 9" 9" 9*f9" ┆ 0x070040…070060 39 c9 3a 48 02 fe 10 da 6b 2f fe 79 d2 6b 2f fe 36 d4 64 2f 3a 49 02 fe 40 da 6b 2f fe fb d4 6b ┆9 :H k/ y k/ 6 d/:I @ k/ k┆ 0x070060…070080 2f fe 7e d8 21 33 3a 22 07 38 c9 3e 17 cd 87 26 21 13 00 11 99 01 19 eb 2a 06 00 01 fa ff 09 c3 ┆/ ü !3:" 8 > &! * ┆ 0x070080…0700a0 2c 17 cd 70 2f 01 13 00 11 20 02 cd c2 16 01 99 01 11 01 36 c3 c2 16 21 00 08 22 b4 38 22 b6 38 ┆, p/ 6 ! " 8" 8┆ 0x0700a0…0700c0 af 32 b3 38 c9 2a 03 36 f9 af 32 7f 38 2f 32 84 38 cd 97 2f 21 00 00 22 a4 38 22 9d 38 22 9f 38 ┆ 2 8 * 6 2 8/2 8 /! " 8" 8" 8┆ 0x0700c0…0700e0 3a 99 38 cd db 32 21 b1 2f e5 cd 04 27 3e ff 32 95 38 21 01 38 7e 2f 2b a6 2b a6 21 0d 0f c4 70 ┆: 8 2! / '> 2 8! 8ü/+ + ! p┆ 0x0700e0…070100 33 3a ca 38 b7 c2 74 4f 2a 77 06 11 06 00 cd 33 30 d8 af 32 3f 39 cd 54 33 f5 e5 cd 17 28 3a 00 ┆3: 8 tO*w 30 2?9 T3 (: ┆ 0x070100…070120 38 b7 c2 0b 30 2a 81 39 22 83 39 cd 0d 33 af 32 95 38 e1 d5 7c 3d 11 3b 35 ca 23 30 3d 11 4d 5f ┆8 0* 9" 9 3 2 8 ø= ;5 #0= M_┆ 0x070120…070140 c2 30 30 eb 16 00 19 5e 23 56 eb d1 f1 cd 70 33 d1 f1 e9 af 32 72 38 32 73 38 32 74 38 32 9b 38 ┆ 00 ^#V p3 2r82s82t82 8┆ 0x070140…070160 cd 18 25 3e ff 32 95 38 cd a1 31 cd cf 30 ca 33 30 32 72 38 d5 e5 47 0e 00 3a ca 38 b7 c2 6c 30 ┆ %> 2 8 1 0 302r8 G : 8 l0┆ 0x070160…070180 78 fe 0d ca b8 30 cd e2 17 e6 3f 47 11 04 00 7e b7 ca b8 30 b8 ca 7c 30 19 c3 6f 30 23 7e b7 ca ┆x 0 ?G ü 0 ø0 o0#ü ┆ 0x070180…0701a0 bc 30 3a ca 38 a6 3c 23 5e 23 56 2b 2b cc 0e 50 af 32 95 38 cd cf 30 ca 7d 30 32 73 38 cd e2 17 ┆ 0: 8 <#^#V++ P 2 8 0 å02s8 ┆ 0x0701a0…0701c0 4f 7e a9 e6 bf ca bc 30 23 23 23 7e b7 ca b8 30 b8 23 ca a1 30 c3 a8 30 37 e1 d1 c9 23 5e 23 56 ┆Oü 0###ü 0 # 0 07 #^#V┆ 0x0701c0…0701e0 eb d1 d1 7c b7 c0 11 93 39 19 eb 21 9e 24 c9 cd 1f 31 c3 bb 1b e5 2a 1d 37 cd 49 0b cc a0 32 cd ┆ ø 9 ! $ 1 * 7 I 2 ┆ 0x0701e0…070200 36 31 cd 49 0b d5 cc ed 30 d1 c3 31 31 11 9e 38 1a b7 ca 00 31 3d cd 43 21 cd b7 1a 80 08 af 12 ┆61 I 0 11 8 1= C! ┆ 0x070200…070220 (29, 1, 13) 09 43 55 52 54 52 4b 09 3b 0d 0a 09 4d 4f 56 09 42 2c 41 09 3b 0d 0a 09 50 55 53 48 09 42 09 3b ┆ CURTRK ; MOV B,A ; PUSH B ;┆ 0x070220…070240 20 53 45 54 20 53 45 43 54 4f 52 28 53 45 43 3a 3d 43 55 52 20 53 45 43 29 3b 0d 0a 09 43 41 4c ┆ SET SECTOR(SEC:=CUR SEC); CAL┆ 0x070240…070260 4c 09 53 45 43 09 3b 0d 0a 57 52 49 54 45 44 3a 09 43 41 4c 4c 09 44 57 52 49 54 45 09 3b 20 57 ┆L SEC ; WRITED: CALL DWRITE ; W┆ 0x070260…070280 52 49 54 45 20 53 45 43 54 4f 52 3b 0d 0a 09 4c 58 49 09 44 2c 42 41 44 44 09 3b 0d 0a 09 4f 52 ┆RITE SECTOR; LXI D,BADD ; OR┆ 0x070280…0702a0 41 09 41 09 3b 20 49 46 20 45 52 52 4f 52 53 20 54 48 45 4e 20 50 52 49 4e 54 20 57 41 52 4e 49 ┆A A ; IF ERRORS THEN PRINT WARNI┆ 0x0702a0…0702c0 4e 47 3b 0d 0a 09 43 4e 5a 09 45 52 52 4f 52 09 3b 0d 0a 09 50 4f 50 09 42 09 3b 0d 0a 09 49 4e ┆NG; CNZ ERROR ; POP B ; IN┆ 0x0702c0…0702e0 52 09 43 09 3b 20 53 45 43 3a 3d 20 53 45 43 2b 31 3b 0d 0a 09 4c 44 41 09 53 50 54 09 3b 0d 0a ┆R C ; SEC:= SEC+1; LDA SPT ; ┆ 0x0702e0…070300 09 43 4d 50 09 43 09 3b 20 49 46 20 53 45 43 3d 53 50 54 20 54 48 45 4e 0d 0a 09 4a 4e 5a 09 4e ┆ CMP C ; IF SEC=SPT THEN JNZ N┆ 0x070300…070320 45 58 54 44 09 3b 20 42 45 47 49 4e 0d 0a 09 4c 44 41 09 4c 54 52 4b 09 3b 0d 0a 09 43 4d 50 09 ┆EXTD ; BEGIN LDA LTRK ; CMP ┆ 0x070320…070340 42 09 3b 20 20 20 20 49 46 20 54 52 4b 3d 4c 41 53 54 20 54 48 45 4e 20 47 4f 54 4f 20 45 4e 44 ┆B ; IF TRK=LAST THEN GOTO END┆ 0x070340…070360 3b 0d 0a 09 4a 5a 09 45 44 41 54 09 3b 0d 0a 09 49 4e 52 09 42 09 3b 20 20 20 20 54 52 4b 3a 3d ┆; JZ EDAT ; INR B ; TRK:=┆ 0x070360…070380 54 52 4b 2b 31 3b 0d 0a 09 4d 56 49 09 43 2c 30 09 3b 20 20 20 20 53 45 43 3a 3d 30 3b 0d 0a 09 ┆TRK+1; MVI C,0 ; SEC:=0; ┆ 0x070380…0703a0 50 55 53 48 09 42 09 3b 0d 0a 09 4d 4f 56 09 43 2c 42 09 3b 0d 0a 09 43 41 4c 4c 09 54 52 4b 09 ┆PUSH B ; MOV C,B ; CALL TRK ┆ 0x0703a0…0703c0 3b 20 20 20 20 53 45 54 20 54 52 41 43 4b 28 54 52 4b 29 3b 0d 0a 09 50 4f 50 09 42 09 3b 20 45 ┆; SET TRACK(TRK); POP B ; E┆ 0x0703c0…0703e0 4e 44 3b 0d 0a 4e 45 58 54 44 3a 09 50 55 53 48 09 42 09 3b 0d 0a 09 43 41 4c 4c 09 53 45 43 09 ┆ND; NEXTD: PUSH B ; CALL SEC ┆ 0x0703e0…070400 3b 20 53 45 54 20 53 45 43 54 4f 52 28 53 45 43 29 3b 0d 0a 09 4c 48 4c 44 09 53 45 43 43 4e 54 ┆; SET SECTOR(SEC); LHLD SECCNT┆ 0x070400…070420 (29, 1, 14) 09 43 55 52 54 52 4b 09 3b 0d 0a 09 4d 4f 56 09 42 2c 41 09 3b 0d 0a 09 50 55 53 48 09 42 09 3b ┆ CURTRK ; MOV B,A ; PUSH B ;┆ 0x070420…070440 20 53 45 54 20 53 45 43 54 4f 52 28 53 45 43 3a 3d 43 55 52 20 53 45 43 29 3b 0d 0a 09 43 41 4c ┆ SET SECTOR(SEC:=CUR SEC); CAL┆ 0x070440…070460 4c 09 53 45 43 09 3b 0d 0a 57 52 49 54 45 44 3a 09 43 41 4c 4c 09 44 57 52 49 54 45 09 3b 20 57 ┆L SEC ; WRITED: CALL DWRITE ; W┆ 0x070460…070480 52 49 54 45 20 53 45 43 54 4f 52 3b 0d 0a 09 4c 58 49 09 44 2c 42 41 44 44 09 3b 0d 0a 09 4f 52 ┆RITE SECTOR; LXI D,BADD ; OR┆ 0x070480…0704a0 41 09 41 09 3b 20 49 46 20 45 52 52 4f 52 53 20 54 48 45 4e 20 50 52 49 4e 54 20 57 41 52 4e 49 ┆A A ; IF ERRORS THEN PRINT WARNI┆ 0x0704a0…0704c0 4e 47 3b 0d 0a 09 43 4e 5a 09 45 52 52 4f 52 09 3b 0d 0a 09 50 4f 50 09 42 09 3b 0d 0a 09 49 4e ┆NG; CNZ ERROR ; POP B ; IN┆ 0x0704c0…0704e0 52 09 43 09 3b 20 53 45 43 3a 3d 20 53 45 43 2b 31 3b 0d 0a 09 4c 44 41 09 53 50 54 09 3b 0d 0a ┆R C ; SEC:= SEC+1; LDA SPT ; ┆ 0x0704e0…070500 09 43 4d 50 09 43 09 3b 20 49 46 20 53 45 43 3d 53 50 54 20 54 48 45 4e 0d 0a 09 4a 4e 5a 09 4e ┆ CMP C ; IF SEC=SPT THEN JNZ N┆ 0x070500…070520 45 58 54 44 09 3b 20 42 45 47 49 4e 0d 0a 09 4c 44 41 09 4c 54 52 4b 09 3b 0d 0a 09 43 4d 50 09 ┆EXTD ; BEGIN LDA LTRK ; CMP ┆ 0x070520…070540 42 09 3b 20 20 20 20 49 46 20 54 52 4b 3d 4c 41 53 54 20 54 48 45 4e 20 47 4f 54 4f 20 45 4e 44 ┆B ; IF TRK=LAST THEN GOTO END┆ 0x070540…070560 3b 0d 0a 09 4a 5a 09 45 44 41 54 09 3b 0d 0a 09 49 4e 52 09 42 09 3b 20 20 20 20 54 52 4b 3a 3d ┆; JZ EDAT ; INR B ; TRK:=┆ 0x070560…070580 54 52 4b 2b 31 3b 0d 0a 09 4d 56 49 09 43 2c 30 09 3b 20 20 20 20 53 45 43 3a 3d 30 3b 0d 0a 09 ┆TRK+1; MVI C,0 ; SEC:=0; ┆ 0x070580…0705a0 50 55 53 48 09 42 09 3b 0d 0a 09 4d 4f 56 09 43 2c 42 09 3b 0d 0a 09 43 41 4c 4c 09 54 52 4b 09 ┆PUSH B ; MOV C,B ; CALL TRK ┆ 0x0705a0…0705c0 3b 20 20 20 20 53 45 54 20 54 52 41 43 4b 28 54 52 4b 29 3b 0d 0a 09 50 4f 50 09 42 09 3b 20 45 ┆; SET TRACK(TRK); POP B ; E┆ 0x0705c0…0705e0 4e 44 3b 0d 0a 4e 45 58 54 44 3a 09 50 55 53 48 09 42 09 3b 0d 0a 09 43 41 4c 4c 09 53 45 43 09 ┆ND; NEXTD: PUSH B ; CALL SEC ┆ 0x0705e0…070600 3b 20 53 45 54 20 53 45 43 54 4f 52 28 53 45 43 29 3b 0d 0a 09 4c 48 4c 44 09 53 45 43 43 4e 54 ┆; SET SECTOR(SEC); LHLD SECCNT┆ 0x070600…070620 (29, 1, 15) 4f 20 43 43 50 3b 0d 0a 0d 0a 50 52 49 4e 54 3a 09 4d 56 49 09 43 2c 50 52 49 4e 54 46 3b 0d 0a ┆O CCP; PRINT: MVI C,PRINTF; ┆ 0x070620…070640 09 4a 4d 50 09 42 44 4f 53 09 3b 0d 0a 0d 0a 43 4f 4e 53 49 3a 09 4d 56 49 09 43 2c 43 4f 4e 53 ┆ JMP BDOS ; CONSI: MVI C,CONS┆ 0x070640…070660 49 46 3b 0d 0a 09 4a 4d 50 09 42 44 4f 53 09 3b 0d 0a 0d 0a 45 52 52 4f 52 3a 09 4d 56 49 09 43 ┆IF; JMP BDOS ; ERROR: MVI C┆ 0x070660…070680 2c 50 52 49 4e 54 46 3b 20 44 49 53 4b 20 45 52 52 4f 52 3a 0d 0a 09 43 41 4c 4c 09 42 44 4f 53 ┆,PRINTF; DISK ERROR: CALL BDOS┆ 0x070680…0706a0 09 3b 0d 0a 09 4d 56 49 09 43 2c 43 4f 4e 53 49 46 3b 0d 0a 09 43 41 4c 4c 09 42 44 4f 53 09 3b ┆ ; MVI C,CONSIF; CALL BDOS ;┆ 0x0706a0…0706c0 0d 0a 09 43 50 49 09 33 09 3b 0d 0a 09 4a 5a 09 42 4f 4f 54 09 3b 0d 0a 09 52 45 54 09 09 3b 0d ┆ CPI 3 ; JZ BOOT ; RET ; ┆ 0x0706c0…0706e0 0a 0d 0a 48 45 41 44 3a 09 44 42 09 27 52 43 37 30 30 20 20 43 50 2f 4d 20 20 42 41 43 4b 55 50 ┆ HEAD: DB 'RC700 CP/M BACKUP┆ 0x0706e0…070700 20 20 55 54 49 4c 49 54 59 27 2c 31 33 2c 33 36 0d 0a 53 44 53 50 45 43 3a 09 44 42 09 31 33 2c ┆ UTILITY',13,36 SDSPEC: DB 13,┆ 0x070700…070720 31 30 2c 31 30 2c 27 53 4f 55 52 43 45 20 44 52 49 56 45 20 28 41 20 4f 52 20 42 29 20 3f 20 27 ┆10,10,'SOURCE DRIVE (A OR B) ? '┆ 0x070720…070740 2c 33 36 0d 0a 44 44 53 50 45 43 3a 09 44 42 09 31 33 2c 31 30 2c 31 30 2c 27 44 45 53 54 49 4e ┆,36 DDSPEC: DB 13,10,10,'DESTIN┆ 0x070740…070760 41 54 49 4f 4e 20 44 52 49 56 45 20 28 41 20 4f 52 20 42 29 20 3f 20 27 2c 33 36 0d 0a 4e 4f 54 ┆ATION DRIVE (A OR B) ? ',36 NOT┆ 0x070760…070780 4f 4b 3a 09 44 42 09 31 33 2c 31 30 2c 31 30 2c 27 42 41 43 4b 55 50 20 4e 4f 54 20 50 4f 53 53 ┆OK: DB 13,10,10,'BACKUP NOT POSS┆ 0x070780…0707a0 49 42 4c 45 27 2c 33 36 0d 0a 4d 53 44 49 53 4b 3a 20 44 42 09 31 33 2c 31 30 2c 27 49 4e 53 45 ┆IBLE',36 MSDISK: DB 13,10,'INSE┆ 0x0707a0…0707c0 52 54 20 53 4f 55 52 43 45 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 54 55 52 4e 3e ┆RT SOURCE DISK AND TYPE <RETURN>┆ 0x0707c0…0707e0 27 2c 33 36 0d 0a 4d 44 44 49 53 4b 3a 20 44 42 09 31 33 2c 31 30 2c 27 49 4e 53 45 52 54 20 44 ┆',36 MDDISK: DB 13,10,'INSERT D┆ 0x0707e0…070800 45 53 54 49 4e 41 54 49 4f 4e 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 54 55 52 4e ┆ESTINATION DISK AND TYPE <RETURN┆ 0x070800…070820 (30, 0, 1) 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆ ;***********┆ 0x070820…070840 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆********************************┆ 0x070840…070860 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 0a 20 20 20 20 20 20 20 ┆*********************** ┆ 0x070860…070880 20 20 20 20 20 20 20 20 20 3b 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ;* ┆ 0x070880…0708a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x0708a0…0708c0 20 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 2a ┆ * ;*┆ 0x0708c0…0708e0 20 20 20 20 20 42 41 43 4b 55 50 20 20 55 54 49 4c 49 54 59 20 20 2d 20 20 56 45 52 53 49 4f 4e ┆ BACKUP UTILITY - VERSION┆ 0x0708e0…070900 20 20 38 31 2e 30 37 2e 30 38 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ 81.07.08 ┆ 0x070900…070920 2a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 2a 20 20 20 20 20 20 20 20 20 20 20 ┆* ;* ┆ 0x070920…070940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x070940…070960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 20 20 20 20 20 20 20 20 ┆ * ┆ 0x070960…070980 20 20 20 20 20 20 20 20 3b 2a 20 20 20 20 20 42 41 43 4b 55 50 20 20 20 20 20 20 20 20 20 20 20 ┆ ;* BACKUP ┆ 0x070980…0709a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x0709a0…0709c0 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 2a 20 ┆ * ;* ┆ 0x0709c0…0709e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x0709e0…070a00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a ┆ *┆ 0x070a00…070a20 (30, 0, 2) 5a 09 50 44 50 09 3b 0d 0a 20 30 31 33 43 20 30 43 20 20 20 20 20 20 20 20 09 49 4e 52 09 43 09 ┆Z PDP ; 013C 0C INR C ┆ 0x070a20…070a40 3b 0d 0a 20 30 31 33 44 20 37 39 20 20 20 20 20 20 20 20 53 45 54 44 44 3a 09 4d 4f 56 09 41 2c ┆; 013D 79 SETDD: MOV A,┆ 0x070a40…070a60 43 09 3b 0d 0a 20 30 31 33 45 20 33 32 41 35 30 34 20 20 20 20 09 53 54 41 09 44 44 52 49 56 09 ┆C ; 013E 32A504 STA DDRIV ┆ 0x070a60…070a80 3b 0d 0a 20 30 31 34 31 20 32 41 30 31 30 30 20 20 20 20 09 4c 48 4c 44 09 57 42 4f 4f 54 09 3b ┆; 0141 2A0100 LHLD WBOOT ;┆ 0x070a80…070aa0 20 42 43 3a 3d 20 46 4c 4f 50 50 59 20 46 4f 52 4d 41 54 53 3b 0d 0a 20 30 31 34 34 20 31 31 33 ┆ BC:= FLOPPY FORMATS; 0144 113┆ 0x070aa0…070ac0 34 30 30 20 20 20 20 09 4c 58 49 09 44 2c 46 44 46 4f 52 4d 3b 0d 0a 20 30 31 34 37 20 31 39 20 ┆400 LXI D,FDFORM; 0147 19 ┆ 0x070ac0…070ae0 20 20 20 20 20 20 20 09 44 41 44 09 44 09 3b 0d 0a 20 30 31 34 38 20 34 36 20 20 20 20 20 20 20 ┆ DAD D ; 0148 46 ┆ 0x070ae0…070b00 20 09 4d 4f 56 09 42 2c 4d 09 3b 0d 0a 20 30 31 34 39 20 32 33 20 20 20 20 20 20 20 20 09 49 4e ┆ MOV B,M ; 0149 23 IN┆ 0x070b00…070b20 58 09 48 09 3b 0d 0a 20 30 31 34 41 20 34 45 20 20 20 20 20 20 20 20 09 4d 4f 56 09 43 2c 4d 09 ┆X H ; 014A 4E MOV C,M ┆ 0x070b20…070b40 3b 0d 0a 20 30 31 34 42 20 32 31 41 34 30 34 20 20 20 20 09 4c 58 49 09 48 2c 53 44 52 49 56 09 ┆; 014B 21A404 LXI H,SDRIV ┆ 0x070b40…070b60 3b 20 49 46 20 53 4f 55 52 43 45 20 44 52 49 56 45 20 3c 3e 0d 0a 20 30 31 34 45 20 42 45 20 20 ┆; IF SOURCE DRIVE <> 014E BE ┆ 0x070b60…070b80 20 20 20 20 20 20 09 43 4d 50 09 4d 09 3b 20 20 44 45 53 54 49 4e 41 54 49 4f 4e 20 44 52 49 56 ┆ CMP M ; DESTINATION DRIV┆ 0x070b80…070ba0 45 20 54 48 45 4e 0d 0a 20 30 31 34 46 20 33 45 30 30 20 20 20 20 20 20 09 4d 56 49 09 41 2c 30 ┆E THEN 014F 3E00 MVI A,0┆ 0x070ba0…070bc0 09 3b 0d 0a 20 30 31 35 31 20 43 41 37 38 30 31 20 20 20 20 09 4a 5a 09 53 45 54 44 46 09 3b 0d ┆ ; 0151 CA7801 JZ SETDF ; ┆ 0x070bc0…070be0 0a 20 30 31 35 34 20 37 38 20 20 20 20 20 20 20 20 09 4d 4f 56 09 41 2c 42 09 3b 0d 0a 20 30 31 ┆ 0154 78 MOV A,B ; 01┆ 0x070be0…070c00 35 35 20 42 39 20 20 20 20 20 20 20 20 09 43 4d 50 09 43 09 3b 20 49 46 20 46 4f 52 4d 41 54 28 ┆55 B9 CMP C ; IF FORMAT(┆ 0x070c00…070c20 (30, 0, 3) 54 3a 09 4c 44 41 09 46 54 52 4b 09 3b 0d 0a 20 30 31 43 34 20 33 32 41 37 30 34 20 20 20 20 09 ┆T: LDA FTRK ; 01C4 32A704 ┆ 0x070c20…070c40 53 54 41 09 43 55 52 54 52 4b 09 3b 20 43 55 52 54 52 4b 3a 3d 46 49 52 53 54 20 54 52 41 43 4b ┆STA CURTRK ; CURTRK:=FIRST TRACK┆ 0x070c40…070c60 3b 0d 0a 20 30 31 43 37 20 33 45 30 30 20 20 20 20 20 20 09 4d 56 49 09 41 2c 30 09 3b 0d 0a 20 ┆; 01C7 3E00 MVI A,0 ; ┆ 0x070c60…070c80 30 31 43 39 20 33 32 41 38 30 34 20 20 20 20 09 53 54 41 09 43 55 52 53 45 43 09 3b 20 43 55 52 ┆01C9 32A804 STA CURSEC ; CUR┆ 0x070c80…070ca0 53 45 43 3a 3d 20 30 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 31 43 ┆SEC:= 0; 01C┆ 0x070ca0…070cc0 43 20 33 41 41 36 30 34 20 20 20 20 52 44 41 54 3a 09 4c 44 41 09 44 46 4c 41 47 09 3b 20 52 45 ┆C 3AA604 RDAT: LDA DFLAG ; RE┆ 0x070cc0…070ce0 41 44 20 44 41 54 41 3a 0d 0a 20 30 31 43 46 20 42 37 20 20 20 20 20 20 20 20 09 4f 52 41 09 41 ┆AD DATA: 01CF B7 ORA A┆ 0x070ce0…070d00 09 3b 0d 0a 20 30 31 44 30 20 43 32 44 43 30 31 20 20 20 20 09 4a 4e 5a 09 53 45 4c 53 44 09 3b ┆ ; 01D0 C2DC01 JNZ SELSD ;┆ 0x070d00…070d20 20 49 46 20 53 4f 55 52 43 45 20 44 52 49 56 45 20 3d 20 44 45 53 54 49 4e 41 54 49 4f 4e 20 44 ┆ IF SOURCE DRIVE = DESTINATION D┆ 0x070d20…070d40 52 49 56 45 0d 0a 20 30 31 44 33 20 31 31 44 33 30 33 20 20 20 20 09 4c 58 49 09 44 2c 4d 53 44 ┆RIVE 01D3 11D303 LXI D,MSD┆ 0x070d40…070d60 49 53 4b 3b 20 20 54 48 45 4e 20 57 41 49 54 20 46 4f 52 20 44 49 53 4b 20 43 48 41 4e 47 45 3b ┆ISK; THEN WAIT FOR DISK CHANGE;┆ 0x070d60…070d80 0d 0a 20 30 31 44 36 20 43 44 34 37 30 33 20 20 20 20 09 43 41 4c 4c 09 50 52 49 4e 54 09 3b 0d ┆ 01D6 CD4703 CALL PRINT ; ┆ 0x070d80…070da0 0a 20 30 31 44 39 20 43 44 34 43 30 33 20 20 20 20 09 43 41 4c 4c 09 43 4f 4e 53 49 09 3b 0d 0a ┆ 01D9 CD4C03 CALL CONSI ; ┆ 0x070da0…070dc0 20 30 31 44 43 20 33 41 41 34 30 34 20 20 20 20 53 45 4c 53 44 3a 09 4c 44 41 09 53 44 52 49 56 ┆ 01DC 3AA404 SELSD: LDA SDRIV┆ 0x070dc0…070de0 09 3b 20 53 45 4c 45 43 54 28 53 4f 55 52 43 45 20 44 52 49 56 45 29 3a 0d 0a 20 30 31 44 46 20 ┆ ; SELECT(SOURCE DRIVE): 01DF ┆ 0x070de0…070e00 43 44 30 35 30 33 20 20 20 20 09 43 41 4c 4c 09 53 45 4c 09 3b 0d 0a 20 30 31 45 32 20 32 31 36 ┆CD0503 CALL SEL ; 01E2 216┆ 0x070e00…070e20 (30, 0, 4) 3a 31 30 30 31 30 30 30 30 45 31 32 32 39 46 30 34 33 31 43 41 30 34 31 31 36 31 30 33 43 44 34 ┆:10010000E1229F0431CA04116103CD4┆ 0x070e20…070e40 37 30 33 31 31 37 46 30 33 32 42 0d 0a 3a 31 30 30 31 31 30 30 30 43 44 34 37 30 33 43 44 34 43 ┆703117F032B :10011000CD4703CD4C┆ 0x070e40…070e60 30 33 30 45 30 30 46 45 34 31 43 41 32 33 30 31 46 45 34 32 43 32 36 46 0d 0a 3a 31 30 30 31 32 ┆030E00FE41CA2301FE42C26F :10012┆ 0x070e60…070e80 30 30 30 30 44 30 31 30 43 37 39 33 32 41 34 30 34 31 31 39 42 30 33 43 44 34 37 30 33 43 44 34 ┆0000D010C7932A404119B03CD4703CD4┆ 0x070e80…070ea0 43 30 33 38 30 0d 0a 3a 31 30 30 31 33 30 30 30 30 45 30 30 46 45 34 31 43 41 33 44 30 31 46 45 ┆C0380 :100130000E00FE41CA3D01FE┆ 0x070ea0…070ec0 34 32 43 32 32 37 30 31 30 43 37 39 33 32 41 35 45 34 0d 0a 3a 31 30 30 31 34 30 30 30 30 34 32 ┆42C227010C7932A5E4 :10014000042┆ 0x070ec0…070ee0 41 30 31 30 30 31 31 33 34 30 30 31 39 34 36 32 33 34 45 32 31 41 34 30 34 42 45 33 45 41 36 0d ┆A01001134001946234E21A404BE3EA6 ┆ 0x070ee0…070f00 0a 3a 31 30 30 31 35 30 30 30 30 30 43 41 37 38 30 31 37 38 42 39 31 31 42 43 30 33 43 34 33 45 ┆ :1001500000CA780178B911BC03C43E┆ 0x070f00…070f20 30 33 43 35 31 31 39 43 30 34 45 30 0d 0a 3a 31 30 30 31 36 30 30 30 43 44 34 37 30 33 31 31 44 ┆03C5119C04E0 :10016000CD470311D┆ 0x070f20…070f40 33 30 33 43 44 34 37 30 33 43 44 34 43 30 33 31 31 46 41 30 33 43 44 38 33 0d 0a 3a 31 30 30 31 ┆303CD4703CD4C0311FA03CD83 :1001┆ 0x070f40…070f60 37 30 30 30 34 37 30 33 43 44 34 43 30 33 43 31 33 45 30 31 33 32 41 36 30 34 37 39 46 45 30 30 ┆70004703CD4C03C13E0132A60479FE00┆ 0x070f60…070f80 43 32 39 33 37 31 0d 0a 3a 31 30 30 31 38 30 30 30 30 31 33 45 30 30 33 32 41 31 30 34 33 45 34 ┆C29371 :10018000013E0032A1043E4┆ 0x070f80…070fa0 43 33 32 41 32 30 34 33 45 31 41 33 32 41 33 30 34 43 36 0d 0a 3a 31 30 30 31 39 30 30 30 43 33 ┆C32A2043E1A32A304C6 :10019000C3┆ 0x070fa0…070fc0 43 31 30 31 46 45 30 38 43 32 41 41 30 31 33 45 30 31 33 32 41 31 30 34 33 45 33 44 33 32 41 34 ┆C101FE08C2AA013E0132A1043E3D32A4┆ 0x070fc0…070fe0 0d 0a 3a 31 30 30 31 41 30 30 30 41 32 30 34 33 45 37 38 33 32 41 33 30 34 43 33 43 31 30 31 46 ┆ :1001A000A2043E7832A304C3C101F┆ 0x070fe0…071000 45 31 30 31 31 42 43 30 33 43 34 46 33 0d 0a 3a 31 30 30 31 42 30 30 30 33 45 30 33 33 45 30 31 ┆E1011BC03C4F3 :1001B0003E033E01┆ 0x071000…071020 (30, 0, 5) 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆ ;*************┆ 0x071020…071040 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆********************************┆ 0x071040…071060 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 0a 20 20 20 20 20 20 20 20 20 ┆********************* ┆ 0x071060…071080 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 31 30 30 ┆ 0100┆ 0x071080…0710a0 20 3d 20 20 20 20 20 20 20 20 20 54 50 41 09 45 51 55 09 31 30 30 48 0d 0a 20 30 30 30 35 20 3d ┆ = TPA EQU 100H 0005 =┆ 0x0710a0…0710c0 20 20 20 20 20 20 20 20 20 42 44 4f 53 09 45 51 55 09 30 30 30 35 48 0d 0a 20 30 30 30 30 20 3d ┆ BDOS EQU 0005H 0000 =┆ 0x0710c0…0710e0 20 20 20 20 20 20 20 20 20 42 4f 4f 54 09 45 51 55 09 30 30 30 30 48 0d 0a 20 20 20 20 20 20 20 ┆ BOOT EQU 0000H ┆ 0x0710e0…071100 20 20 20 20 20 20 20 20 20 0d 0a 20 30 30 30 31 20 3d 20 20 20 20 20 20 20 20 20 43 4f 4e 53 49 ┆ 0001 = CONSI┆ 0x071100…071120 46 09 45 51 55 09 31 0d 0a 20 30 30 30 39 20 3d 20 20 20 20 20 20 20 20 20 50 52 49 4e 54 46 09 ┆F EQU 1 0009 = PRINTF ┆ 0x071120…071140 45 51 55 09 39 0d 0a 20 30 30 30 31 20 3d 20 20 20 20 20 20 20 20 20 57 42 4f 4f 54 09 45 51 55 ┆EQU 9 0001 = WBOOT EQU┆ 0x071140…071160 09 31 0d 0a 20 30 30 31 38 20 3d 20 20 20 20 20 20 20 20 20 53 45 4c 44 53 4b 09 45 51 55 09 32 ┆ 1 0018 = SELDSK EQU 2┆ 0x071160…071180 34 0d 0a 20 30 30 31 42 20 3d 20 20 20 20 20 20 20 20 20 53 45 54 54 52 4b 09 45 51 55 09 32 37 ┆4 001B = SETTRK EQU 27┆ 0x071180…0711a0 0d 0a 20 30 30 31 45 20 3d 20 20 20 20 20 20 20 20 20 53 45 54 53 45 43 09 45 51 55 09 33 30 0d ┆ 001E = SETSEC EQU 30 ┆ 0x0711a0…0711c0 0a 20 30 30 32 31 20 3d 20 20 20 20 20 20 20 20 20 53 45 54 44 4d 41 09 45 51 55 09 33 33 0d 0a ┆ 0021 = SETDMA EQU 33 ┆ 0x0711c0…0711e0 20 30 30 32 34 20 3d 20 20 20 20 20 20 20 20 20 52 45 41 44 46 09 45 51 55 09 33 36 0d 0a 20 30 ┆ 0024 = READF EQU 36 0┆ 0x0711e0…071200 30 32 37 20 3d 20 20 20 20 20 20 20 20 20 57 52 49 54 45 46 09 45 51 55 09 33 39 0d 0a 20 30 30 ┆027 = WRITEF EQU 39 00┆ 0x071200…071220 (30, 0, 6) 41 29 3c 3e 46 4f 52 4d 41 54 28 42 29 20 54 48 45 4e 0d 0a 20 30 31 35 36 20 31 31 42 43 30 33 ┆A)<>FORMAT(B) THEN 0156 11BC03┆ 0x071220…071240 20 20 20 20 09 4c 58 49 09 44 2c 4e 4f 54 4f 4b 09 3b 0d 0a 20 30 31 35 39 20 43 34 33 45 30 33 ┆ LXI D,NOTOK ; 0159 C43E03┆ 0x071240…071260 20 20 20 20 09 43 4e 5a 09 46 49 4e 49 53 09 3b 20 20 45 58 49 54 28 4e 4f 54 20 41 4c 4c 4f 57 ┆ CNZ FINIS ; EXIT(NOT ALLOW┆ 0x071260…071280 45 44 29 3b 0d 0a 20 30 31 35 43 20 43 35 20 20 20 20 20 20 20 20 09 50 55 53 48 09 42 09 3b 0d ┆ED); 015C C5 PUSH B ; ┆ 0x071280…0712a0 0a 20 30 31 35 44 20 31 31 39 43 30 34 20 20 20 20 09 4c 58 49 09 44 2c 43 52 4c 46 09 3b 0d 0a ┆ 015D 119C04 LXI D,CRLF ; ┆ 0x0712a0…0712c0 20 30 31 36 30 20 43 44 34 37 30 33 20 20 20 20 09 43 41 4c 4c 09 50 52 49 4e 54 09 3b 0d 0a 20 ┆ 0160 CD4703 CALL PRINT ; ┆ 0x0712c0…0712e0 30 31 36 33 20 31 31 44 33 30 33 20 20 20 20 09 4c 58 49 09 44 2c 4d 53 44 49 53 4b 3b 0d 0a 20 ┆0163 11D303 LXI D,MSDISK; ┆ 0x0712e0…071300 30 31 36 36 20 43 44 34 37 30 33 20 20 20 20 09 43 41 4c 4c 09 50 52 49 4e 54 09 3b 20 57 41 49 ┆0166 CD4703 CALL PRINT ; WAI┆ 0x071300…071320 54 20 46 4f 52 20 53 4f 55 52 43 45 20 44 49 53 4b 3a 0d 0a 20 30 31 36 39 20 43 44 34 43 30 33 ┆T FOR SOURCE DISK: 0169 CD4C03┆ 0x071320…071340 20 20 20 20 09 43 41 4c 4c 09 43 4f 4e 53 49 09 3b 0d 0a 20 30 31 36 43 20 31 31 46 41 30 33 20 ┆ CALL CONSI ; 016C 11FA03 ┆ 0x071340…071360 20 20 20 09 4c 58 49 09 44 2c 4d 44 44 49 53 4b 3b 0d 0a 20 30 31 36 46 20 43 44 34 37 30 33 20 ┆ LXI D,MDDISK; 016F CD4703 ┆ 0x071360…071380 20 20 20 09 43 41 4c 4c 09 50 52 49 4e 54 09 3b 20 57 41 49 54 20 46 4f 52 20 44 45 53 54 49 4e ┆ CALL PRINT ; WAIT FOR DESTIN┆ 0x071380…0713a0 41 54 49 4f 4e 20 44 49 53 4b 3a 0d 0a 20 30 31 37 32 20 43 44 34 43 30 33 20 20 20 20 09 43 41 ┆ATION DISK: 0172 CD4C03 CA┆ 0x0713a0…0713c0 4c 4c 09 43 4f 4e 53 49 09 3b 0d 0a 20 30 31 37 35 20 43 31 20 20 20 20 20 20 20 20 09 50 4f 50 ┆LL CONSI ; 0175 C1 POP┆ 0x0713c0…0713e0 09 42 09 3b 0d 0a 20 30 31 37 36 20 33 45 30 31 20 20 20 20 20 20 09 4d 56 49 09 41 2c 31 09 3b ┆ B ; 0176 3E01 MVI A,1 ;┆ 0x0713e0…071400 0d 0a 20 30 31 37 38 20 33 32 41 36 30 34 20 20 20 20 53 45 54 44 46 3a 09 53 54 41 09 44 46 4c ┆ 0178 32A604 SETDF: STA DFL┆ 0x071400…071420 (30, 0, 7) 38 30 31 20 20 20 20 09 4c 58 49 09 48 2c 33 36 30 09 3b 0d 0a 20 30 31 45 35 20 32 32 41 39 30 ┆801 LXI H,360 ; 01E5 22A90┆ 0x071420…071440 34 20 20 20 20 09 53 48 4c 44 09 53 45 43 43 4e 54 09 3b 20 53 45 43 54 4f 52 43 4f 55 4e 54 3a ┆4 SHLD SECCNT ; SECTORCOUNT:┆ 0x071440…071460 3d 20 33 36 30 3b 0d 0a 20 30 31 45 38 20 31 31 43 42 30 34 20 20 20 20 09 4c 58 49 09 44 2c 42 ┆= 360; 01E8 11CB04 LXI D,B┆ 0x071460…071480 55 46 09 3b 0d 0a 20 30 31 45 42 20 44 35 20 20 20 20 20 20 20 20 09 50 55 53 48 09 44 09 3b 0d ┆UF ; 01EB D5 PUSH D ; ┆ 0x071480…0714a0 0a 20 30 31 45 43 20 43 44 32 32 30 33 20 20 20 20 09 43 41 4c 4c 09 44 4d 41 09 3b 20 44 4d 41 ┆ 01EC CD2203 CALL DMA ; DMA┆ 0x0714a0…0714c0 20 41 44 44 52 3a 3d 20 53 54 41 52 54 20 4f 46 20 42 55 46 46 45 52 3b 0d 0a 20 30 31 45 46 20 ┆ ADDR:= START OF BUFFER; 01EF ┆ 0x0714c0…0714e0 33 41 41 37 30 34 20 20 20 20 09 4c 44 41 09 43 55 52 54 52 4b 09 3b 0d 0a 20 30 31 46 32 20 34 ┆3AA704 LDA CURTRK ; 01F2 4┆ 0x0714e0…071500 46 20 20 20 20 20 20 20 20 09 4d 4f 56 09 43 2c 41 09 3b 0d 0a 20 30 31 46 33 20 43 44 30 45 30 ┆F MOV C,A ; 01F3 CD0E0┆ 0x071500…071520 33 20 20 20 20 09 43 41 4c 4c 09 54 52 4b 09 3b 20 53 45 54 20 54 52 41 43 4b 28 54 52 4b 3a 3d ┆3 CALL TRK ; SET TRACK(TRK:=┆ 0x071520…071540 43 55 52 20 54 52 4b 29 3b 0d 0a 20 30 31 46 36 20 33 41 41 38 30 34 20 20 20 20 09 4c 44 41 09 ┆CUR TRK); 01F6 3AA804 LDA ┆ 0x071540…071560 43 55 52 53 45 43 09 3b 0d 0a 20 30 31 46 39 20 34 46 20 20 20 20 20 20 20 20 09 4d 4f 56 09 43 ┆CURSEC ; 01F9 4F MOV C┆ 0x071560…071580 2c 41 09 3b 0d 0a 20 30 31 46 41 20 33 41 41 37 30 34 20 20 20 20 09 4c 44 41 09 43 55 52 54 52 ┆,A ; 01FA 3AA704 LDA CURTR┆ 0x071580…0715a0 4b 09 3b 0d 0a 20 30 31 46 44 20 34 37 20 20 20 20 20 20 20 20 09 4d 4f 56 09 42 2c 41 09 3b 0d ┆K ; 01FD 47 MOV B,A ; ┆ 0x0715a0…0715c0 0a 20 30 31 46 45 20 43 35 20 20 20 20 20 20 20 20 09 50 55 53 48 09 42 09 3b 0d 0a 20 30 31 46 ┆ 01FE C5 PUSH B ; 01F┆ 0x0715c0…0715e0 46 20 43 44 31 38 30 33 20 20 20 20 09 43 41 4c 4c 09 53 45 43 09 3b 20 53 45 54 20 53 45 43 54 ┆F CD1803 CALL SEC ; SET SECT┆ 0x0715e0…071600 4f 52 28 53 45 43 3a 3d 43 55 52 20 53 45 43 29 3b 0d 0a 20 30 32 30 32 20 43 44 32 43 30 33 20 ┆OR(SEC:=CUR SEC); 0202 CD2C03 ┆ 0x071600…071620 (30, 0, 8) 33 32 41 31 30 34 33 45 31 46 33 32 41 32 30 34 33 45 34 38 33 32 41 33 35 38 0d 0a 3a 31 30 30 ┆32A1043E1F32A2043E4832A358 :100┆ 0x071620…071640 31 43 30 30 30 30 34 33 41 41 31 30 34 33 32 41 37 30 34 33 45 30 30 33 32 41 38 30 34 33 41 41 ┆1C000043AA10432A7043E0032A8043AA┆ 0x071640…071660 36 30 34 42 37 42 38 0d 0a 3a 31 30 30 31 44 30 30 30 43 32 44 43 30 31 31 31 44 33 30 33 43 44 ┆604B7B8 :1001D000C2DC0111D303CD┆ 0x071660…071680 34 37 30 33 43 44 34 43 30 33 33 41 41 34 30 34 43 44 42 37 0d 0a 3a 31 30 30 31 45 30 30 30 30 ┆4703CD4C033AA404CDB7 :1001E0000┆ 0x071680…0716a0 35 30 33 32 31 36 38 30 31 32 32 41 39 30 34 31 31 43 42 30 34 44 35 43 44 32 32 30 33 33 41 43 ┆50321680122A90411CB04D5CD22033AC┆ 0x0716a0…0716c0 44 0d 0a 3a 31 30 30 31 46 30 30 30 41 37 30 34 34 46 43 44 30 45 30 33 33 41 41 38 30 34 34 46 ┆D :1001F000A7044FCD0E033AA8044F┆ 0x0716c0…0716e0 33 41 41 37 30 34 34 37 43 35 43 44 33 34 0d 0a 3a 31 30 30 32 30 30 30 30 31 38 30 33 43 44 32 ┆3AA70447C5CD34 :100200001803CD2┆ 0x0716e0…071700 43 30 33 31 31 32 36 30 34 42 37 43 34 35 31 30 33 43 31 30 43 33 41 41 33 32 33 0d 0a 3a 31 30 ┆C03112604B7C45103C10C3AA323 :10┆ 0x071700…071720 30 32 31 30 30 30 30 34 42 39 43 32 32 35 30 32 33 41 41 32 30 34 42 38 43 41 34 39 30 32 30 34 ┆02100004B9C225023AA204B8CA490204┆ 0x071720…071740 30 45 30 30 43 35 42 34 0d 0a 3a 31 30 30 32 32 30 30 30 34 38 43 44 30 45 30 33 43 31 43 35 43 ┆0E00C5B4 :1002200048CD0E03C1C5C┆ 0x071740…071760 44 31 38 30 33 32 41 41 39 30 34 32 42 32 32 41 39 30 34 36 39 0d 0a 3a 31 30 30 32 33 30 30 30 ┆D18032AA9042B22A90469 :10023000┆ 0x071760…071780 43 31 37 43 42 37 43 32 33 42 30 32 37 44 42 37 43 41 34 39 30 32 44 31 32 31 38 30 30 30 31 39 ┆C17CB7C23B027DB7CA4902D121800019┆ 0x071780…0717a0 46 37 0d 0a 3a 31 30 30 32 34 30 30 30 45 42 44 35 43 35 43 44 32 32 30 33 43 33 30 32 30 32 44 ┆F7 :10024000EBD5C5CD2203C30202D┆ 0x0717a0…0717c0 31 33 41 41 36 30 34 42 37 43 32 35 41 45 38 0d 0a 3a 31 30 30 32 35 30 30 30 30 32 31 31 46 41 ┆13AA604B7C25AE8 :100250000211FA┆ 0x0717c0…0717e0 30 33 43 44 34 37 30 33 43 44 34 43 30 33 33 41 41 35 30 34 43 44 30 35 30 33 41 33 0d 0a 3a 31 ┆03CD4703CD4C033AA504CD0503A3 :1┆ 0x0717e0…071800 30 30 32 36 30 30 30 32 31 36 38 30 31 32 32 41 39 30 34 31 31 43 42 30 34 44 35 43 44 32 32 30 ┆002600021680122A90411CB04D5CD220┆ 0x071800…071820 (30, 0, 9) 33 34 20 3d 20 20 20 20 20 20 20 20 20 46 44 46 4f 52 4d 09 45 51 55 09 35 32 0d 0a 20 30 30 30 ┆34 = FDFORM EQU 52 000┆ 0x071820…071840 30 20 3d 20 20 20 20 20 20 20 20 20 53 53 38 09 45 51 55 09 30 0d 0a 20 30 30 30 38 20 3d 20 20 ┆0 = SS8 EQU 0 0008 = ┆ 0x071840…071860 20 20 20 20 20 20 20 44 44 38 09 45 51 55 09 38 0d 0a 20 30 30 31 30 20 3d 20 20 20 20 20 20 20 ┆ DD8 EQU 8 0010 = ┆ 0x071860…071880 20 20 44 44 35 09 45 51 55 09 31 36 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a ┆ DD5 EQU 16 ┆ 0x071880…0718a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 31 30 30 20 20 20 20 20 20 20 20 20 ┆ 0100 ┆ 0x0718a0…0718c0 20 20 09 4f 52 47 09 54 50 41 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 ┆ ORG TPA 0┆ 0x0718c0…0718e0 31 30 30 20 45 31 20 20 20 20 20 20 20 20 09 50 4f 50 09 48 09 3b 20 53 41 56 45 20 52 45 54 55 ┆100 E1 POP H ; SAVE RETU┆ 0x0718e0…071900 52 4e 20 54 4f 20 43 43 50 3b 0d 0a 20 30 31 30 31 20 32 32 39 46 30 34 20 20 20 20 09 53 48 4c ┆RN TO CCP; 0101 229F04 SHL┆ 0x071900…071920 44 09 43 43 50 52 45 54 09 3b 0d 0a 20 30 31 30 34 20 33 31 43 41 30 34 20 20 20 20 09 4c 58 49 ┆D CCPRET ; 0104 31CA04 LXI┆ 0x071920…071940 09 53 50 2c 53 54 41 43 4b 3b 0d 0a 20 30 31 30 37 20 31 31 36 31 30 33 20 20 20 20 09 4c 58 49 ┆ SP,STACK; 0107 116103 LXI┆ 0x071940…071960 09 44 2c 48 45 41 44 09 3b 20 50 52 49 4e 54 20 48 45 41 44 49 4e 47 3b 0d 0a 20 30 31 30 41 20 ┆ D,HEAD ; PRINT HEADING; 010A ┆ 0x071960…071980 43 44 34 37 30 33 20 20 20 20 09 43 41 4c 4c 09 50 52 49 4e 54 09 3b 0d 0a 20 30 31 30 44 20 31 ┆CD4703 CALL PRINT ; 010D 1┆ 0x071980…0719a0 31 37 46 30 33 20 20 20 20 50 53 50 3a 09 4c 58 49 09 44 2c 53 44 53 50 45 43 3b 20 50 52 49 4e ┆17F03 PSP: LXI D,SDSPEC; PRIN┆ 0x0719a0…0719c0 54 20 53 4f 55 52 43 45 20 50 52 4f 4d 50 54 3b 0d 0a 20 30 31 31 30 20 43 44 34 37 30 33 20 20 ┆T SOURCE PROMPT; 0110 CD4703 ┆ 0x0719c0…0719e0 20 20 09 43 41 4c 4c 09 50 52 49 4e 54 09 3b 0d 0a 20 30 31 31 33 20 43 44 34 43 30 33 20 20 20 ┆ CALL PRINT ; 0113 CD4C03 ┆ 0x0719e0…071a00 20 09 43 41 4c 4c 09 43 4f 4e 53 49 09 3b 20 47 45 54 20 53 4f 55 52 43 45 20 44 52 49 56 45 3b ┆ CALL CONSI ; GET SOURCE DRIVE;┆ 0x071a00…071a20 (30, 0, 10) 41 47 09 3b 0d 0a 20 30 31 37 42 20 37 39 20 20 20 20 20 20 20 20 09 4d 4f 56 09 41 2c 43 09 3b ┆AG ; 017B 79 MOV A,C ;┆ 0x071a20…071a40 0d 0a 20 30 31 37 43 20 46 45 30 30 20 20 20 20 20 20 09 43 50 49 09 53 53 38 09 3b 20 28 46 49 ┆ 017C FE00 CPI SS8 ; (FI┆ 0x071a40…071a60 52 53 54 20 54 52 41 43 4b 2c 4c 41 53 54 20 54 52 41 43 4b 2c 0d 0a 20 30 31 37 45 20 43 32 39 ┆RST TRACK,LAST TRACK, 017E C29┆ 0x071a60…071a80 33 30 31 20 20 20 20 09 4a 4e 5a 09 53 45 54 44 38 09 3b 20 20 53 45 43 54 4f 52 53 20 50 52 20 ┆301 JNZ SETD8 ; SECTORS PR ┆ 0x071a80…071aa0 54 52 41 43 4b 29 20 3a 3d 0d 0a 20 30 31 38 31 20 33 45 30 30 20 20 20 20 20 20 09 4d 56 49 09 ┆TRACK) := 0181 3E00 MVI ┆ 0x071aa0…071ac0 41 2c 30 09 3b 0d 0a 20 30 31 38 33 20 33 32 41 31 30 34 20 20 20 20 09 53 54 41 09 46 54 52 4b ┆A,0 ; 0183 32A104 STA FTRK┆ 0x071ac0…071ae0 09 3b 0d 0a 20 30 31 38 36 20 33 45 34 43 20 20 20 20 20 20 09 4d 56 49 09 41 2c 37 36 09 3b 20 ┆ ; 0186 3E4C MVI A,76 ; ┆ 0x071ae0…071b00 20 49 46 20 46 4f 52 4d 41 54 3d 20 38 22 20 53 53 20 54 48 45 4e 0d 0a 20 30 31 38 38 20 33 32 ┆ IF FORMAT= 8" SS THEN 0188 32┆ 0x071b00…071b20 41 32 30 34 20 20 20 20 09 53 54 41 09 4c 54 52 4b 09 3b 20 20 20 28 30 2c 37 36 2c 32 36 29 20 ┆A204 STA LTRK ; (0,76,26) ┆ 0x071b20…071b40 20 20 20 20 20 20 45 4c 53 45 0d 0a 20 30 31 38 42 20 33 45 31 41 20 20 20 20 20 20 09 4d 56 49 ┆ ELSE 018B 3E1A MVI┆ 0x071b40…071b60 09 41 2c 32 36 09 3b 0d 0a 20 30 31 38 44 20 33 32 41 33 30 34 20 20 20 20 09 53 54 41 09 53 50 ┆ A,26 ; 018D 32A304 STA SP┆ 0x071b60…071b80 54 09 3b 0d 0a 20 30 31 39 30 20 43 33 43 31 30 31 20 20 20 20 09 4a 4d 50 09 53 45 54 43 54 09 ┆T ; 0190 C3C101 JMP SETCT ┆ 0x071b80…071ba0 3b 20 20 0d 0a 20 30 31 39 33 20 46 45 30 38 20 20 20 20 20 20 53 45 54 44 38 3a 09 43 50 49 09 ┆; 0193 FE08 SETD8: CPI ┆ 0x071ba0…071bc0 44 44 38 09 3b 20 20 49 46 20 46 4f 52 4d 41 54 3d 20 38 22 20 44 44 20 54 48 45 4e 0d 0a 20 30 ┆DD8 ; IF FORMAT= 8" DD THEN 0┆ 0x071bc0…071be0 31 39 35 20 43 32 41 41 30 31 20 20 20 20 09 4a 4e 5a 09 53 45 54 35 09 3b 20 20 20 28 31 2c 36 ┆195 C2AA01 JNZ SET5 ; (1,6┆ 0x071be0…071c00 31 2c 31 32 30 29 20 20 20 20 20 20 45 4c 53 45 0d 0a 20 30 31 39 38 20 33 45 30 31 20 20 20 20 ┆1,120) ELSE 0198 3E01 ┆ 0x071c00…071c20 (30, 0, 11) 20 20 20 52 45 41 44 53 3a 09 43 41 4c 4c 09 44 52 45 41 44 09 3b 20 52 45 41 44 20 53 45 43 54 ┆ READS: CALL DREAD ; READ SECT┆ 0x071c20…071c40 4f 52 3b 0d 0a 20 30 32 30 35 20 31 31 32 36 30 34 20 20 20 20 09 4c 58 49 09 44 2c 42 41 44 53 ┆OR; 0205 112604 LXI D,BADS┆ 0x071c40…071c60 09 3b 0d 0a 20 30 32 30 38 20 42 37 20 20 20 20 20 20 20 20 09 4f 52 41 09 41 09 3b 20 49 46 20 ┆ ; 0208 B7 ORA A ; IF ┆ 0x071c60…071c80 45 52 52 4f 52 53 20 54 48 45 4e 20 50 52 49 4e 54 20 57 41 52 4e 49 4e 47 3b 0d 0a 20 30 32 30 ┆ERRORS THEN PRINT WARNING; 020┆ 0x071c80…071ca0 39 20 43 34 35 31 30 33 20 20 20 20 09 43 4e 5a 09 45 52 52 4f 52 09 3b 0d 0a 20 30 32 30 43 20 ┆9 C45103 CNZ ERROR ; 020C ┆ 0x071ca0…071cc0 43 31 20 20 20 20 20 20 20 20 09 50 4f 50 09 42 09 3b 0d 0a 20 30 32 30 44 20 30 43 20 20 20 20 ┆C1 POP B ; 020D 0C ┆ 0x071cc0…071ce0 20 20 20 20 09 49 4e 52 09 43 09 3b 20 53 45 43 3a 3d 20 53 45 43 20 2b 20 31 3b 0d 0a 20 30 32 ┆ INR C ; SEC:= SEC + 1; 02┆ 0x071ce0…071d00 30 45 20 33 41 41 33 30 34 20 20 20 20 09 4c 44 41 09 53 50 54 09 3b 0d 0a 20 30 32 31 31 20 42 ┆0E 3AA304 LDA SPT ; 0211 B┆ 0x071d00…071d20 39 20 20 20 20 20 20 20 20 09 43 4d 50 09 43 09 3b 20 49 46 20 53 45 43 3d 53 50 54 20 54 48 45 ┆9 CMP C ; IF SEC=SPT THE┆ 0x071d20…071d40 4e 0d 0a 20 30 32 31 32 20 43 32 32 35 30 32 20 20 20 20 09 4a 4e 5a 09 4e 45 58 54 53 09 3b 20 ┆N 0212 C22502 JNZ NEXTS ; ┆ 0x071d40…071d60 42 45 47 49 4e 0d 0a 20 30 32 31 35 20 33 41 41 32 30 34 20 20 20 20 09 4c 44 41 09 4c 54 52 4b ┆BEGIN 0215 3AA204 LDA LTRK┆ 0x071d60…071d80 09 3b 0d 0a 20 30 32 31 38 20 42 38 20 20 20 20 20 20 20 20 09 43 4d 50 09 42 09 3b 20 20 20 20 ┆ ; 0218 B8 CMP B ; ┆ 0x071d80…071da0 49 46 20 54 52 4b 3d 4c 41 53 54 20 54 48 45 4e 20 47 4f 54 4f 20 57 52 49 54 45 3b 0d 0a 20 30 ┆IF TRK=LAST THEN GOTO WRITE; 0┆ 0x071da0…071dc0 32 31 39 20 43 41 34 39 30 32 20 20 20 20 09 4a 5a 09 57 44 41 54 09 3b 0d 0a 20 30 32 31 43 20 ┆219 CA4902 JZ WDAT ; 021C ┆ 0x071dc0…071de0 30 34 20 20 20 20 20 20 20 20 09 49 4e 52 09 42 09 3b 20 20 20 20 54 52 4b 3a 3d 54 52 4b 2b 31 ┆04 INR B ; TRK:=TRK+1┆ 0x071de0…071e00 3b 0d 0a 20 30 32 31 44 20 30 45 30 30 20 20 20 20 20 20 09 4d 56 49 09 43 2c 30 09 3b 20 20 20 ┆; 021D 0E00 MVI C,0 ; ┆ 0x071e00…071e20 (30, 0, 12) 33 33 41 41 37 30 34 41 39 0d 0a 3a 31 30 30 32 37 30 30 30 34 46 43 44 30 45 30 33 33 41 41 38 ┆33AA704A9 :100270004FCD0E033AA8┆ 0x071e20…071e40 30 34 34 46 33 41 41 37 30 34 34 37 43 35 43 44 31 38 30 33 34 33 0d 0a 3a 31 30 30 32 38 30 30 ┆044F3AA70447C5CD180343 :1002800┆ 0x071e40…071e60 30 43 44 33 34 30 33 31 31 34 32 30 34 42 37 43 34 35 31 30 33 43 31 30 43 33 41 41 33 30 34 42 ┆0CD3403114204B7C45103C10C3AA304B┆ 0x071e60…071e80 39 44 44 0d 0a 3a 31 30 30 32 39 30 30 30 43 32 41 33 30 32 33 41 41 32 30 34 42 38 43 41 44 36 ┆9DD :10029000C2A3023AA204B8CAD6┆ 0x071e80…071ea0 30 32 30 34 30 45 30 30 43 35 34 38 43 44 44 31 0d 0a 3a 31 30 30 32 41 30 30 30 30 45 30 33 43 ┆02040E00C548CDD1 :1002A0000E03C┆ 0x071ea0…071ec0 31 43 35 43 44 31 38 30 33 32 41 41 39 30 34 32 42 32 32 41 39 30 34 43 31 37 43 43 31 0d 0a 3a ┆1C5CD18032AA9042B22A904C17CC1 :┆ 0x071ec0…071ee0 31 30 30 32 42 30 30 30 42 37 43 32 42 39 30 32 37 44 42 37 43 41 43 37 30 32 44 31 32 31 38 30 ┆1002B000B7C2B9027DB7CAC702D12180┆ 0x071ee0…071f00 30 30 31 39 45 42 44 35 46 38 0d 0a 3a 31 30 30 32 43 30 30 30 43 35 43 44 32 32 30 33 43 33 38 ┆0019EBD5F8 :1002C000C5CD2203C38┆ 0x071f00…071f20 30 30 32 37 38 33 32 41 37 30 34 37 39 33 32 41 38 30 34 44 31 42 35 0d 0a 3a 31 30 30 32 44 30 ┆0027832A7047932A804D1B5 :1002D0┆ 0x071f20…071f40 30 30 43 44 45 42 30 32 43 33 43 43 30 31 43 44 45 42 30 32 31 31 38 41 30 34 43 44 34 37 30 33 ┆00CDEB02C3CC01CDEB02118A04CD4703┆ 0x071f40…071f60 31 31 35 33 0d 0a 3a 31 30 30 32 45 30 30 30 36 33 30 34 43 44 34 37 30 33 43 44 34 43 30 33 43 ┆1153 :1002E0006304CD4703CD4C03C┆ 0x071f60…071f80 33 30 30 30 30 33 41 41 37 30 34 34 46 30 44 37 30 0d 0a 3a 31 30 30 32 46 30 30 30 43 44 30 45 ┆300003AA7044F0D70 :1002F000CD0E┆ 0x071f80…071fa0 30 33 33 41 41 38 30 34 34 46 43 44 31 38 30 33 43 44 32 43 30 33 31 31 34 32 30 34 42 30 0d 0a ┆033AA8044FCD1803CD2C03114204B0 ┆ 0x071fa0…071fc0 3a 31 30 30 33 30 30 30 30 42 37 43 34 35 31 30 33 43 39 34 46 32 41 30 31 30 30 31 31 31 38 30 ┆:10030000B7C45103C94F2A010011180┆ 0x071fc0…071fe0 30 31 39 45 39 32 41 30 31 38 35 0d 0a 3a 31 30 30 33 31 30 30 30 30 30 31 31 31 42 30 30 31 39 ┆019E92A0185 :1003100000111B0019┆ 0x071fe0…072000 30 36 30 30 45 39 32 41 30 31 30 30 31 31 31 45 30 30 31 39 30 36 33 30 0d 0a 3a 31 30 30 33 32 ┆0600E92A0100111E00190630 :10032┆ 0x072000…072020 (30, 0, 13) 0d 0a 20 30 31 31 36 20 30 45 30 30 20 20 20 20 20 20 09 4d 56 49 09 43 2c 30 09 3b 0d 0a 20 30 ┆ 0116 0E00 MVI C,0 ; 0┆ 0x072020…072040 31 31 38 20 46 45 34 31 20 20 20 20 20 20 09 43 50 49 09 27 41 27 09 3b 0d 0a 20 30 31 31 41 20 ┆118 FE41 CPI 'A' ; 011A ┆ 0x072040…072060 43 41 32 33 30 31 20 20 20 20 09 4a 5a 09 53 45 54 53 44 09 3b 0d 0a 20 30 31 31 44 20 46 45 34 ┆CA2301 JZ SETSD ; 011D FE4┆ 0x072060…072080 32 20 20 20 20 20 20 09 43 50 49 09 27 42 27 09 3b 0d 0a 20 30 31 31 46 20 43 32 30 44 30 31 20 ┆2 CPI 'B' ; 011F C20D01 ┆ 0x072080…0720a0 20 20 20 09 4a 4e 5a 09 50 53 50 09 3b 0d 0a 20 30 31 32 32 20 30 43 20 20 20 20 20 20 20 20 09 ┆ JNZ PSP ; 0122 0C ┆ 0x0720a0…0720c0 49 4e 52 09 43 09 3b 0d 0a 20 30 31 32 33 20 37 39 20 20 20 20 20 20 20 20 53 45 54 53 44 3a 09 ┆INR C ; 0123 79 SETSD: ┆ 0x0720c0…0720e0 4d 4f 56 09 41 2c 43 09 3b 0d 0a 20 30 31 32 34 20 33 32 41 34 30 34 20 20 20 20 09 53 54 41 09 ┆MOV A,C ; 0124 32A404 STA ┆ 0x0720e0…072100 53 44 52 49 56 09 3b 0d 0a 20 30 31 32 37 20 31 31 39 42 30 33 20 20 20 20 50 44 50 3a 09 4c 58 ┆SDRIV ; 0127 119B03 PDP: LX┆ 0x072100…072120 49 09 44 2c 44 44 53 50 45 43 3b 20 50 52 49 4e 54 20 44 45 53 54 49 4e 41 54 49 4f 4e 20 50 52 ┆I D,DDSPEC; PRINT DESTINATION PR┆ 0x072120…072140 4f 4d 50 54 3b 0d 0a 20 30 31 32 41 20 43 44 34 37 30 33 20 20 20 20 09 43 41 4c 4c 09 50 52 49 ┆OMPT; 012A CD4703 CALL PRI┆ 0x072140…072160 4e 54 09 3b 0d 0a 20 30 31 32 44 20 43 44 34 43 30 33 20 20 20 20 09 43 41 4c 4c 09 43 4f 4e 53 ┆NT ; 012D CD4C03 CALL CONS┆ 0x072160…072180 49 09 3b 20 47 45 54 20 44 45 53 54 49 4e 41 54 49 4f 4e 20 44 52 49 56 45 3b 0d 0a 20 30 31 33 ┆I ; GET DESTINATION DRIVE; 013┆ 0x072180…0721a0 30 20 30 45 30 30 20 20 20 20 20 20 09 4d 56 49 09 43 2c 30 09 3b 0d 0a 20 30 31 33 32 20 46 45 ┆0 0E00 MVI C,0 ; 0132 FE┆ 0x0721a0…0721c0 34 31 20 20 20 20 20 20 09 43 50 49 09 27 41 27 09 3b 0d 0a 20 30 31 33 34 20 43 41 33 44 30 31 ┆41 CPI 'A' ; 0134 CA3D01┆ 0x0721c0…0721e0 20 20 20 20 09 4a 5a 09 53 45 54 44 44 09 3b 0d 0a 20 30 31 33 37 20 46 45 34 32 20 20 20 20 20 ┆ JZ SETDD ; 0137 FE42 ┆ 0x0721e0…072200 20 09 43 50 49 09 27 42 27 09 3b 0d 0a 20 30 31 33 39 20 43 32 32 37 30 31 20 20 20 20 09 4a 4e ┆ CPI 'B' ; 0139 C22701 JN┆ 0x072200…072220 (30, 0, 14) 20 20 09 4d 56 49 09 41 2c 31 09 3b 0d 0a 20 30 31 39 41 20 33 32 41 31 30 34 20 20 20 20 09 53 ┆ MVI A,1 ; 019A 32A104 S┆ 0x072220…072240 54 41 09 46 54 52 4b 09 3b 0d 0a 20 30 31 39 44 20 33 45 33 44 20 20 20 20 20 20 09 4d 56 49 09 ┆TA FTRK ; 019D 3E3D MVI ┆ 0x072240…072260 41 2c 36 31 09 3b 0d 0a 20 30 31 39 46 20 33 32 41 32 30 34 20 20 20 20 09 53 54 41 09 4c 54 52 ┆A,61 ; 019F 32A204 STA LTR┆ 0x072260…072280 4b 09 3b 0d 0a 20 30 31 41 32 20 33 45 37 38 20 20 20 20 20 20 09 4d 56 49 09 41 2c 31 32 30 09 ┆K ; 01A2 3E78 MVI A,120 ┆ 0x072280…0722a0 3b 0d 0a 20 30 31 41 34 20 33 32 41 33 30 34 20 20 20 20 09 53 54 41 09 53 50 54 09 3b 0d 0a 20 ┆; 01A4 32A304 STA SPT ; ┆ 0x0722a0…0722c0 30 31 41 37 20 43 33 43 31 30 31 20 20 20 20 09 4a 4d 50 09 53 45 54 43 54 09 3b 0d 0a 20 30 31 ┆01A7 C3C101 JMP SETCT ; 01┆ 0x0722c0…0722e0 41 41 20 46 45 31 30 20 20 20 20 20 20 53 45 54 35 3a 09 43 50 49 09 44 44 35 09 3b 20 20 49 46 ┆AA FE10 SET5: CPI DD5 ; IF┆ 0x0722e0…072300 20 46 4f 52 4d 41 54 3d 20 35 22 20 44 44 20 54 48 45 4e 0d 0a 20 30 31 41 43 20 31 31 42 43 30 ┆ FORMAT= 5" DD THEN 01AC 11BC0┆ 0x072300…072320 33 20 20 20 20 09 4c 58 49 09 44 2c 4e 4f 54 4f 4b 09 3b 20 20 20 28 31 2c 33 31 2c 37 32 29 3b ┆3 LXI D,NOTOK ; (1,31,72);┆ 0x072320…072340 0d 0a 20 30 31 41 46 20 43 34 33 45 30 33 20 20 20 20 09 43 4e 5a 09 46 49 4e 49 53 09 3b 0d 0a ┆ 01AF C43E03 CNZ FINIS ; ┆ 0x072340…072360 20 30 31 42 32 20 33 45 30 31 20 20 20 20 20 20 09 4d 56 49 09 41 2c 31 09 3b 0d 0a 20 30 31 42 ┆ 01B2 3E01 MVI A,1 ; 01B┆ 0x072360…072380 34 20 33 32 41 31 30 34 20 20 20 20 09 53 54 41 09 46 54 52 4b 09 3b 0d 0a 20 30 31 42 37 20 33 ┆4 32A104 STA FTRK ; 01B7 3┆ 0x072380…0723a0 45 31 46 20 20 20 20 20 20 09 4d 56 49 09 41 2c 33 31 09 3b 0d 0a 20 30 31 42 39 20 33 32 41 32 ┆E1F MVI A,31 ; 01B9 32A2┆ 0x0723a0…0723c0 30 34 20 20 20 20 09 53 54 41 09 4c 54 52 4b 09 3b 0d 0a 20 30 31 42 43 20 33 45 34 38 20 20 20 ┆04 STA LTRK ; 01BC 3E48 ┆ 0x0723c0…0723e0 20 20 20 09 4d 56 49 09 41 2c 37 32 09 3b 0d 0a 20 30 31 42 45 20 33 32 41 33 30 34 20 20 20 20 ┆ MVI A,72 ; 01BE 32A304 ┆ 0x0723e0…072400 09 53 54 41 09 53 50 54 09 3b 0d 0a 20 30 31 43 31 20 33 41 41 31 30 34 20 20 20 20 53 45 54 43 ┆ STA SPT ; 01C1 3AA104 SETC┆ 0x072400…072420 (30, 0, 15) 20 53 45 43 3a 3d 30 3b 0d 0a 20 30 32 31 46 20 43 35 20 20 20 20 20 20 20 20 09 50 55 53 48 09 ┆ SEC:=0; 021F C5 PUSH ┆ 0x072420…072440 42 09 3b 0d 0a 20 30 32 32 30 20 34 38 20 20 20 20 20 20 20 20 09 4d 4f 56 09 43 2c 42 09 3b 0d ┆B ; 0220 48 MOV C,B ; ┆ 0x072440…072460 0a 20 30 32 32 31 20 43 44 30 45 30 33 20 20 20 20 09 43 41 4c 4c 09 54 52 4b 09 3b 20 20 20 20 ┆ 0221 CD0E03 CALL TRK ; ┆ 0x072460…072480 53 45 54 20 54 52 41 43 4b 28 54 52 4b 29 3b 0d 0a 20 30 32 32 34 20 43 31 20 20 20 20 20 20 20 ┆SET TRACK(TRK); 0224 C1 ┆ 0x072480…0724a0 20 09 50 4f 50 09 42 09 3b 20 45 4e 44 3b 0d 0a 20 30 32 32 35 20 43 35 20 20 20 20 20 20 20 20 ┆ POP B ; END; 0225 C5 ┆ 0x0724a0…0724c0 4e 45 58 54 53 3a 20 20 50 55 53 48 09 42 09 3b 0d 0a 20 30 32 32 36 20 43 44 31 38 30 33 20 20 ┆NEXTS: PUSH B ; 0226 CD1803 ┆ 0x0724c0…0724e0 20 20 09 43 41 4c 4c 09 53 45 43 09 3b 20 53 45 54 20 53 45 43 54 4f 52 28 53 45 43 29 3b 0d 0a ┆ CALL SEC ; SET SECTOR(SEC); ┆ 0x0724e0…072500 20 30 32 32 39 20 32 41 41 39 30 34 20 20 20 20 09 4c 48 4c 44 09 53 45 43 43 4e 54 09 3b 0d 0a ┆ 0229 2AA904 LHLD SECCNT ; ┆ 0x072500…072520 20 30 32 32 43 20 32 42 20 20 20 20 20 20 20 20 09 44 43 58 09 48 09 3b 20 53 45 43 54 4f 52 43 ┆ 022C 2B DCX H ; SECTORC┆ 0x072520…072540 4f 55 4e 54 3a 3d 53 45 43 54 4f 52 43 4f 55 4e 54 2d 31 3b 0d 0a 20 30 32 32 44 20 32 32 41 39 ┆OUNT:=SECTORCOUNT-1; 022D 22A9┆ 0x072540…072560 30 34 20 20 20 20 09 53 48 4c 44 09 53 45 43 43 4e 54 09 3b 0d 0a 20 30 32 33 30 20 43 31 20 20 ┆04 SHLD SECCNT ; 0230 C1 ┆ 0x072560…072580 20 20 20 20 20 20 09 50 4f 50 09 42 09 3b 0d 0a 20 30 32 33 31 20 37 43 20 20 20 20 20 20 20 20 ┆ POP B ; 0231 7C ┆ 0x072580…0725a0 09 4d 4f 56 09 41 2c 48 09 3b 20 49 46 20 53 45 43 54 4f 52 43 4f 55 4e 54 3d 30 20 54 48 45 4e ┆ MOV A,H ; IF SECTORCOUNT=0 THEN┆ 0x0725a0…0725c0 20 47 4f 54 4f 20 57 52 49 54 45 3b 0d 0a 20 30 32 33 32 20 42 37 20 20 20 20 20 20 20 20 09 4f ┆ GOTO WRITE; 0232 B7 O┆ 0x0725c0…0725e0 52 41 09 41 09 3b 0d 0a 20 30 32 33 33 20 43 32 33 42 30 32 20 20 20 20 09 4a 4e 5a 09 53 44 4d ┆RA A ; 0233 C23B02 JNZ SDM┆ 0x0725e0…072600 41 09 3b 0d 0a 20 30 32 33 36 20 37 44 20 20 20 20 20 20 20 20 09 4d 4f 56 09 41 2c 4c 09 3b 0d ┆A ; 0236 7D MOV A,L ; ┆ 0x072600…072620 (30, 1, 1) 30 30 30 30 30 45 39 32 41 30 31 30 30 34 32 34 42 31 31 32 31 30 30 31 39 45 39 32 41 30 31 30 ┆00000E92A0100424B11210019E92A010┆ 0x072620…072640 30 31 31 42 43 0d 0a 3a 31 30 30 33 33 30 30 30 32 34 30 30 31 39 45 39 32 41 30 31 30 30 31 31 ┆011BC :10033000240019E92A010011┆ 0x072640…072660 32 37 30 30 31 39 30 45 30 32 45 39 30 45 30 39 30 42 0d 0a 3a 31 30 30 33 34 30 30 30 43 44 30 ┆2700190E02E90E090B :10034000CD0┆ 0x072660…072680 35 30 30 32 41 39 46 30 34 45 39 30 45 30 39 43 33 30 35 30 30 30 45 30 31 43 33 30 35 36 46 0d ┆5002A9F04E90E09C305000E01C3056F ┆ 0x072680…0726a0 0a 3a 31 30 30 33 35 30 30 30 30 30 30 45 30 39 43 44 30 35 30 30 30 45 30 31 43 44 30 35 30 30 ┆ :10035000000E09CD05000E01CD0500┆ 0x0726a0…0726c0 46 45 30 33 43 41 30 30 30 30 30 38 0d 0a 3a 31 30 30 33 36 30 30 30 43 39 35 32 34 33 33 37 33 ┆FE03CA000008 :10036000C95243373┆ 0x0726c0…0726e0 30 33 30 32 30 32 30 34 33 35 30 32 46 34 44 32 30 32 30 34 32 34 31 38 36 0d 0a 3a 31 30 30 33 ┆030202043502F4D2020424186 :1003┆ 0x0726e0…072700 37 30 30 30 34 33 34 42 35 35 35 30 32 30 32 30 35 35 35 34 34 39 34 43 34 39 35 34 35 39 30 44 ┆7000434B555020205554494C4954590D┆ 0x072700…072720 32 34 30 44 39 38 0d 0a 3a 31 30 30 33 38 30 30 30 30 41 30 41 35 33 34 46 35 35 35 32 34 33 34 ┆240D98 :100380000A0A534F5552434┆ 0x072720…072740 35 32 30 34 34 35 32 34 39 35 36 34 35 32 30 32 38 41 36 0d 0a 3a 31 30 30 33 39 30 30 30 34 31 ┆52044524956452028A6 :1003900041┆ 0x072740…072760 32 30 34 46 35 32 32 30 34 32 32 39 32 30 33 46 32 30 32 34 30 44 30 41 30 41 34 34 34 35 38 33 ┆204F52204229203F20240D0A0A444583┆ 0x072760…072780 0d 0a 3a 31 30 30 33 41 30 30 30 35 33 35 34 34 39 34 45 34 31 35 34 34 39 34 46 34 45 32 30 34 ┆ :1003A0005354494E4154494F4E204┆ 0x072780…0727a0 34 35 32 34 39 35 36 34 35 32 30 44 41 0d 0a 3a 31 30 30 33 42 30 30 30 32 38 34 31 32 30 34 46 ┆45249564520DA :1003B0002841204F┆ 0x0727a0…0727c0 35 32 32 30 34 32 32 39 32 30 33 46 32 30 32 34 30 44 30 41 30 41 34 32 38 32 0d 0a 3a 31 30 30 ┆52204229203F20240D0A0A4282 :100┆ 0x0727c0…0727e0 33 43 30 30 30 34 31 34 33 34 42 35 35 35 30 32 30 34 45 34 46 35 34 32 30 35 30 34 46 35 33 35 ┆3C00041434B5550204E4F5420504F535┆ 0x0727e0…072800 33 34 39 34 32 42 38 0d 0a 3a 31 30 30 33 44 30 30 30 34 43 34 35 32 34 30 44 30 41 34 39 34 45 ┆34942B8 :1003D0004C45240D0A494E┆ 0x072800…072820 (30, 1, 2) 4e 5a 09 4e 45 58 54 44 09 3b 20 42 45 47 49 4e 0d 0a 20 30 32 39 33 20 33 41 41 32 30 34 20 20 ┆NZ NEXTD ; BEGIN 0293 3AA204 ┆ 0x072820…072840 20 20 09 4c 44 41 09 4c 54 52 4b 09 3b 0d 0a 20 30 32 39 36 20 42 38 20 20 20 20 20 20 20 20 09 ┆ LDA LTRK ; 0296 B8 ┆ 0x072840…072860 43 4d 50 09 42 09 3b 20 20 20 20 49 46 20 54 52 4b 3d 4c 41 53 54 20 54 48 45 4e 20 47 4f 54 4f ┆CMP B ; IF TRK=LAST THEN GOTO┆ 0x072860…072880 20 45 4e 44 3b 0d 0a 20 30 32 39 37 20 43 41 44 36 30 32 20 20 20 20 09 4a 5a 09 45 44 41 54 09 ┆ END; 0297 CAD602 JZ EDAT ┆ 0x072880…0728a0 3b 0d 0a 20 30 32 39 41 20 30 34 20 20 20 20 20 20 20 20 09 49 4e 52 09 42 09 3b 20 20 20 20 54 ┆; 029A 04 INR B ; T┆ 0x0728a0…0728c0 52 4b 3a 3d 54 52 4b 2b 31 3b 0d 0a 20 30 32 39 42 20 30 45 30 30 20 20 20 20 20 20 09 4d 56 49 ┆RK:=TRK+1; 029B 0E00 MVI┆ 0x0728c0…0728e0 09 43 2c 30 09 3b 20 20 20 20 53 45 43 3a 3d 30 3b 0d 0a 20 30 32 39 44 20 43 35 20 20 20 20 20 ┆ C,0 ; SEC:=0; 029D C5 ┆ 0x0728e0…072900 20 20 20 09 50 55 53 48 09 42 09 3b 0d 0a 20 30 32 39 45 20 34 38 20 20 20 20 20 20 20 20 09 4d ┆ PUSH B ; 029E 48 M┆ 0x072900…072920 4f 56 09 43 2c 42 09 3b 0d 0a 20 30 32 39 46 20 43 44 30 45 30 33 20 20 20 20 09 43 41 4c 4c 09 ┆OV C,B ; 029F CD0E03 CALL ┆ 0x072920…072940 54 52 4b 09 3b 20 20 20 20 53 45 54 20 54 52 41 43 4b 28 54 52 4b 29 3b 0d 0a 20 30 32 41 32 20 ┆TRK ; SET TRACK(TRK); 02A2 ┆ 0x072940…072960 43 31 20 20 20 20 20 20 20 20 09 50 4f 50 09 42 09 3b 20 45 4e 44 3b 0d 0a 20 30 32 41 33 20 43 ┆C1 POP B ; END; 02A3 C┆ 0x072960…072980 35 20 20 20 20 20 20 20 20 4e 45 58 54 44 3a 09 50 55 53 48 09 42 09 3b 0d 0a 20 30 32 41 34 20 ┆5 NEXTD: PUSH B ; 02A4 ┆ 0x072980…0729a0 43 44 31 38 30 33 20 20 20 20 09 43 41 4c 4c 09 53 45 43 09 3b 20 53 45 54 20 53 45 43 54 4f 52 ┆CD1803 CALL SEC ; SET SECTOR┆ 0x0729a0…0729c0 28 53 45 43 29 3b 0d 0a 20 30 32 41 37 20 32 41 41 39 30 34 20 20 20 20 09 4c 48 4c 44 09 53 45 ┆(SEC); 02A7 2AA904 LHLD SE┆ 0x0729c0…0729e0 43 43 4e 54 09 3b 0d 0a 20 30 32 41 41 20 32 42 20 20 20 20 20 20 20 20 09 44 43 58 09 48 09 3b ┆CCNT ; 02AA 2B DCX H ;┆ 0x0729e0…072a00 20 53 45 43 54 4f 52 43 4f 55 4e 54 3a 3d 53 45 43 54 4f 52 43 4f 55 4e 54 2d 31 3b 0d 0a 20 30 ┆ SECTORCOUNT:=SECTORCOUNT-1; 0┆ 0x072a00…072a20 (30, 1, 3) 0d 0a 20 30 33 30 31 20 43 34 35 31 30 33 20 20 20 20 09 43 4e 5a 09 45 52 52 4f 52 09 3b 0d 0a ┆ 0301 C45103 CNZ ERROR ; ┆ 0x072a20…072a40 20 30 33 30 34 20 43 39 20 20 20 20 20 20 20 20 09 52 45 54 09 09 3b 0d 0a 20 20 20 20 20 20 20 ┆ 0304 C9 RET ; ┆ 0x072a40…072a60 20 20 20 20 20 20 20 20 20 0d 0a 20 30 33 30 35 20 34 46 20 20 20 20 20 20 20 20 53 45 4c 3a 09 ┆ 0305 4F SEL: ┆ 0x072a60…072a80 4d 4f 56 09 43 2c 41 09 3b 20 53 45 4c 45 43 54 20 44 52 49 56 45 20 49 4e 20 41 3a 0d 0a 20 30 ┆MOV C,A ; SELECT DRIVE IN A: 0┆ 0x072a80…072aa0 33 30 36 20 32 41 30 31 30 30 20 20 20 20 09 4c 48 4c 44 09 57 42 4f 4f 54 09 3b 0d 0a 20 30 33 ┆306 2A0100 LHLD WBOOT ; 03┆ 0x072aa0…072ac0 30 39 20 31 31 31 38 30 30 20 20 20 20 09 4c 58 49 09 44 2c 53 45 4c 44 53 4b 3b 0d 0a 20 30 33 ┆09 111800 LXI D,SELDSK; 03┆ 0x072ac0…072ae0 30 43 20 31 39 20 20 20 20 20 20 20 20 09 44 41 44 09 44 09 3b 0d 0a 20 30 33 30 44 20 45 39 20 ┆0C 19 DAD D ; 030D E9 ┆ 0x072ae0…072b00 20 20 20 20 20 20 20 09 50 43 48 4c 09 09 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ PCHL ; ┆ 0x072b00…072b20 20 0d 0a 20 30 33 30 45 20 32 41 30 31 30 30 20 20 20 20 54 52 4b 3a 09 4c 48 4c 44 09 57 42 4f ┆ 030E 2A0100 TRK: LHLD WBO┆ 0x072b20…072b40 4f 54 09 3b 20 53 45 54 20 54 52 41 43 4b 20 49 4e 20 43 3a 0d 0a 20 30 33 31 31 20 31 31 31 42 ┆OT ; SET TRACK IN C: 0311 111B┆ 0x072b40…072b60 30 30 20 20 20 20 09 4c 58 49 09 44 2c 53 45 54 54 52 4b 3b 0d 0a 20 30 33 31 34 20 31 39 20 20 ┆00 LXI D,SETTRK; 0314 19 ┆ 0x072b60…072b80 20 20 20 20 20 20 09 44 41 44 09 44 09 3b 0d 0a 20 30 33 31 35 20 30 36 30 30 20 20 20 20 20 20 ┆ DAD D ; 0315 0600 ┆ 0x072b80…072ba0 09 4d 56 49 09 42 2c 30 09 3b 0d 0a 20 30 33 31 37 20 45 39 20 20 20 20 20 20 20 20 09 50 43 48 ┆ MVI B,0 ; 0317 E9 PCH┆ 0x072ba0…072bc0 4c 09 09 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 33 31 38 20 32 41 ┆L ; 0318 2A┆ 0x072bc0…072be0 30 31 30 30 20 20 20 20 53 45 43 3a 09 4c 48 4c 44 09 57 42 4f 4f 54 09 3b 20 53 45 54 20 53 45 ┆0100 SEC: LHLD WBOOT ; SET SE┆ 0x072be0…072c00 43 54 4f 52 20 49 4e 20 43 3a 0d 0a 20 30 33 31 42 20 31 31 31 45 30 30 20 20 20 20 09 4c 58 49 ┆CTOR IN C: 031B 111E00 LXI┆ 0x072c00…072c20 (30, 1, 4) 44 49 53 4b 3a 20 44 42 09 31 33 2c 31 30 2c 27 49 4e 53 45 52 54 20 53 4f 55 52 43 45 20 44 49 ┆DISK: DB 13,10,'INSERT SOURCE DI┆ 0x072c20…072c40 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 54 55 52 4e 3e 27 2c 33 36 0d 0a 20 30 33 46 41 20 ┆SK AND TYPE <RETURN>',36 03FA ┆ 0x072c40…072c60 30 44 30 41 34 39 34 45 35 33 4d 44 44 49 53 4b 3a 20 44 42 09 31 33 2c 31 30 2c 27 49 4e 53 45 ┆0D0A494E53MDDISK: DB 13,10,'INSE┆ 0x072c60…072c80 52 54 20 44 45 53 54 49 4e 41 54 49 4f 4e 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 ┆RT DESTINATION DISK AND TYPE <RE┆ 0x072c80…072ca0 54 55 52 4e 3e 27 2c 33 36 0d 0a 20 30 34 32 36 20 30 44 30 41 34 32 34 31 34 34 42 41 44 53 3a ┆TURN>',36 0426 0D0A424144BADS:┆ 0x072ca0…072cc0 09 44 42 09 31 33 2c 31 30 2c 27 42 41 44 20 53 45 43 54 4f 52 20 4f 4e 20 53 4f 55 52 43 45 20 ┆ DB 13,10,'BAD SECTOR ON SOURCE ┆ 0x072cc0…072ce0 44 49 53 4b 27 2c 33 36 0d 0a 20 30 34 34 32 20 30 44 30 41 34 32 34 31 34 34 42 41 44 44 3a 09 ┆DISK',36 0442 0D0A424144BADD: ┆ 0x072ce0…072d00 44 42 09 31 33 2c 31 30 2c 27 42 41 44 20 53 45 43 54 4f 52 20 4f 4e 20 44 45 53 54 49 4e 41 54 ┆DB 13,10,'BAD SECTOR ON DESTINAT┆ 0x072d00…072d20 49 4f 4e 20 44 49 53 4b 27 2c 33 36 0d 0a 20 30 34 36 33 20 30 44 30 41 34 39 34 45 35 33 4d 53 ┆ION DISK',36 0463 0D0A494E53MS┆ 0x072d20…072d40 59 53 44 3a 09 44 42 09 31 33 2c 31 30 2c 27 49 4e 53 45 52 54 20 53 59 53 54 45 4d 20 44 49 53 ┆YSD: DB 13,10,'INSERT SYSTEM DIS┆ 0x072d40…072d60 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 54 55 52 4e 3e 27 2c 33 36 0d 0a 20 30 34 38 41 20 30 ┆K AND TYPE <RETURN>',36 048A 0┆ 0x072d60…072d80 44 30 41 34 32 34 31 34 33 4f 4b 3a 09 44 42 09 31 33 2c 31 30 2c 27 42 41 43 4b 55 50 20 43 4f ┆D0A424143OK: DB 13,10,'BACKUP CO┆ 0x072d80…072da0 4d 50 4c 45 54 45 27 2c 33 36 0d 0a 20 30 34 39 43 20 30 44 30 41 32 34 20 20 20 20 43 52 4c 46 ┆MPLETE',36 049C 0D0A24 CRLF┆ 0x072da0…072dc0 3a 09 44 42 09 31 33 2c 31 30 2c 33 36 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d ┆: DB 13,10,36 ┆ 0x072dc0…072de0 0a 20 30 34 39 46 20 30 30 30 30 20 20 20 20 20 20 43 43 50 52 45 54 3a 09 44 57 09 30 0d 0a 20 ┆ 049F 0000 CCPRET: DW 0 ┆ 0x072de0…072e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 34 41 31 20 30 30 20 20 20 20 20 20 20 ┆ 04A1 00 ┆ 0x072e00…072e20 (30, 1, 5) 0a 20 30 32 33 37 20 42 37 20 20 20 20 20 20 20 20 09 4f 52 41 09 41 09 3b 0d 0a 20 30 32 33 38 ┆ 0237 B7 ORA A ; 0238┆ 0x072e20…072e40 20 43 41 34 39 30 32 20 20 20 20 09 4a 5a 09 57 44 41 54 09 3b 0d 0a 20 30 32 33 42 20 44 31 20 ┆ CA4902 JZ WDAT ; 023B D1 ┆ 0x072e40…072e60 20 20 20 20 20 20 20 53 44 4d 41 3a 09 50 4f 50 09 44 09 3b 0d 0a 20 30 32 33 43 20 32 31 38 30 ┆ SDMA: POP D ; 023C 2180┆ 0x072e60…072e80 30 30 20 20 20 20 09 4c 58 49 09 48 2c 31 32 38 09 3b 20 44 4d 41 20 41 44 44 52 3a 3d 20 44 4d ┆00 LXI H,128 ; DMA ADDR:= DM┆ 0x072e80…072ea0 41 20 41 44 44 52 20 2b 20 31 32 38 3b 0d 0a 20 30 32 33 46 20 31 39 20 20 20 20 20 20 20 20 09 ┆A ADDR + 128; 023F 19 ┆ 0x072ea0…072ec0 44 41 44 09 44 09 3b 0d 0a 20 30 32 34 30 20 45 42 20 20 20 20 20 20 20 20 09 58 43 48 47 09 09 ┆DAD D ; 0240 EB XCHG ┆ 0x072ec0…072ee0 3b 0d 0a 20 30 32 34 31 20 44 35 20 20 20 20 20 20 20 20 09 50 55 53 48 09 44 09 3b 0d 0a 20 30 ┆; 0241 D5 PUSH D ; 0┆ 0x072ee0…072f00 32 34 32 20 43 35 20 20 20 20 20 20 20 20 09 50 55 53 48 09 42 09 3b 0d 0a 20 30 32 34 33 20 43 ┆242 C5 PUSH B ; 0243 C┆ 0x072f00…072f20 44 32 32 30 33 20 20 20 20 09 43 41 4c 4c 09 44 4d 41 09 3b 0d 0a 20 30 32 34 36 20 43 33 30 32 ┆D2203 CALL DMA ; 0246 C302┆ 0x072f20…072f40 30 32 20 20 20 20 09 4a 4d 50 09 52 45 41 44 53 09 3b 20 47 4f 54 4f 20 52 45 41 44 20 53 45 43 ┆02 JMP READS ; GOTO READ SEC┆ 0x072f40…072f60 54 4f 52 3b 0d 0a 20 30 32 34 39 20 44 31 20 20 20 20 20 20 20 20 57 44 41 54 3a 09 50 4f 50 09 ┆TOR; 0249 D1 WDAT: POP ┆ 0x072f60…072f80 44 09 3b 20 57 52 49 54 45 20 44 41 54 41 3a 0d 0a 20 30 32 34 41 20 33 41 41 36 30 34 20 20 20 ┆D ; WRITE DATA: 024A 3AA604 ┆ 0x072f80…072fa0 20 09 4c 44 41 09 44 46 4c 41 47 09 3b 0d 0a 20 30 32 34 44 20 42 37 20 20 20 20 20 20 20 20 09 ┆ LDA DFLAG ; 024D B7 ┆ 0x072fa0…072fc0 4f 52 41 09 41 09 3b 20 49 46 20 44 45 53 54 49 4e 41 54 49 4f 4e 20 44 52 49 56 45 20 3d 20 53 ┆ORA A ; IF DESTINATION DRIVE = S┆ 0x072fc0…072fe0 4f 55 52 43 45 20 44 52 49 56 45 0d 0a 20 30 32 34 45 20 43 32 35 41 30 32 20 20 20 20 09 4a 4e ┆OURCE DRIVE 024E C25A02 JN┆ 0x072fe0…073000 5a 09 53 45 4c 44 45 09 3b 20 20 54 48 45 4e 20 57 41 49 54 20 46 4f 52 20 44 49 53 4b 20 43 48 ┆Z SELDE ; THEN WAIT FOR DISK CH┆ 0x073000…073020 (30, 1, 6) 32 41 42 20 32 32 41 39 30 34 20 20 20 20 09 53 48 4c 44 09 53 45 43 43 4e 54 09 3b 0d 0a 20 30 ┆2AB 22A904 SHLD SECCNT ; 0┆ 0x073020…073040 32 41 45 20 43 31 20 20 20 20 20 20 20 20 09 50 4f 50 09 42 09 3b 20 49 46 20 53 45 43 54 4f 52 ┆2AE C1 POP B ; IF SECTOR┆ 0x073040…073060 43 4f 55 4e 54 3d 30 20 54 48 45 4e 0d 0a 20 30 32 41 46 20 37 43 20 20 20 20 20 20 20 20 09 4d ┆COUNT=0 THEN 02AF 7C M┆ 0x073060…073080 4f 56 09 41 2c 48 09 3b 20 20 47 4f 54 4f 20 4e 45 58 54 20 52 45 41 44 3b 0d 0a 20 30 32 42 30 ┆OV A,H ; GOTO NEXT READ; 02B0┆ 0x073080…0730a0 20 42 37 20 20 20 20 20 20 20 20 09 4f 52 41 09 41 09 3b 0d 0a 20 30 32 42 31 20 43 32 42 39 30 ┆ B7 ORA A ; 02B1 C2B90┆ 0x0730a0…0730c0 32 20 20 20 20 09 4a 4e 5a 09 44 44 4d 41 09 3b 0d 0a 20 30 32 42 34 20 37 44 20 20 20 20 20 20 ┆2 JNZ DDMA ; 02B4 7D ┆ 0x0730c0…0730e0 20 20 09 4d 4f 56 09 41 2c 4c 09 3b 0d 0a 20 30 32 42 35 20 42 37 20 20 20 20 20 20 20 20 09 4f ┆ MOV A,L ; 02B5 B7 O┆ 0x0730e0…073100 52 41 09 41 09 3b 0d 0a 20 30 32 42 36 20 43 41 43 37 30 32 20 20 20 20 09 4a 5a 09 4e 44 41 54 ┆RA A ; 02B6 CAC702 JZ NDAT┆ 0x073100…073120 09 3b 0d 0a 20 30 32 42 39 20 44 31 20 20 20 20 20 20 20 20 44 44 4d 41 3a 09 50 4f 50 09 44 09 ┆ ; 02B9 D1 DDMA: POP D ┆ 0x073120…073140 3b 0d 0a 20 30 32 42 41 20 32 31 38 30 30 30 20 20 20 20 09 4c 58 49 09 48 2c 31 32 38 09 3b 0d ┆; 02BA 218000 LXI H,128 ; ┆ 0x073140…073160 0a 20 30 32 42 44 20 31 39 20 20 20 20 20 20 20 20 09 44 41 44 09 44 09 3b 0d 0a 20 30 32 42 45 ┆ 02BD 19 DAD D ; 02BE┆ 0x073160…073180 20 45 42 20 20 20 20 20 20 20 20 09 58 43 48 47 09 09 3b 0d 0a 20 30 32 42 46 20 44 35 20 20 20 ┆ EB XCHG ; 02BF D5 ┆ 0x073180…0731a0 20 20 20 20 20 09 50 55 53 48 09 44 09 3b 0d 0a 20 30 32 43 30 20 43 35 20 20 20 20 20 20 20 20 ┆ PUSH D ; 02C0 C5 ┆ 0x0731a0…0731c0 09 50 55 53 48 09 42 09 3b 20 44 4d 41 20 41 44 44 52 3a 3d 20 44 4d 41 20 41 44 44 52 20 2b 20 ┆ PUSH B ; DMA ADDR:= DMA ADDR + ┆ 0x0731c0…0731e0 31 32 38 3b 0d 0a 20 30 32 43 31 20 43 44 32 32 30 33 20 20 20 20 09 43 41 4c 4c 09 44 4d 41 09 ┆128; 02C1 CD2203 CALL DMA ┆ 0x0731e0…073200 3b 0d 0a 20 30 32 43 34 20 43 33 38 30 30 32 20 20 20 20 09 4a 4d 50 09 57 52 49 54 45 44 09 3b ┆; 02C4 C38002 JMP WRITED ;┆ 0x073200…073220 (30, 1, 7) 09 44 2c 53 45 54 53 45 43 3b 0d 0a 20 30 33 31 45 20 31 39 20 20 20 20 20 20 20 20 09 44 41 44 ┆ D,SETSEC; 031E 19 DAD┆ 0x073220…073240 09 44 09 3b 0d 0a 20 30 33 31 46 20 30 36 30 30 20 20 20 20 20 20 09 4d 56 49 09 42 2c 30 09 3b ┆ D ; 031F 0600 MVI B,0 ;┆ 0x073240…073260 0d 0a 20 30 33 32 31 20 45 39 20 20 20 20 20 20 20 20 09 50 43 48 4c 09 09 3b 0d 0a 20 20 20 20 ┆ 0321 E9 PCHL ; ┆ 0x073260…073280 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 33 32 32 20 32 41 30 31 30 30 20 20 20 20 44 4d ┆ 0322 2A0100 DM┆ 0x073280…0732a0 41 3a 09 4c 48 4c 44 09 57 42 4f 4f 54 09 3b 20 53 45 54 20 44 4d 41 20 41 44 44 52 45 53 53 20 ┆A: LHLD WBOOT ; SET DMA ADDRESS ┆ 0x0732a0…0732c0 49 4e 20 44 2c 45 3a 0d 0a 20 30 33 32 35 20 34 32 20 20 20 20 20 20 20 20 09 4d 4f 56 09 42 2c ┆IN D,E: 0325 42 MOV B,┆ 0x0732c0…0732e0 44 09 3b 0d 0a 20 30 33 32 36 20 34 42 20 20 20 20 20 20 20 20 09 4d 4f 56 09 43 2c 45 09 3b 0d ┆D ; 0326 4B MOV C,E ; ┆ 0x0732e0…073300 0a 20 30 33 32 37 20 31 31 32 31 30 30 20 20 20 20 09 4c 58 49 09 44 2c 53 45 54 44 4d 41 3b 0d ┆ 0327 112100 LXI D,SETDMA; ┆ 0x073300…073320 0a 20 30 33 32 41 20 31 39 20 20 20 20 20 20 20 20 09 44 41 44 09 44 09 3b 0d 0a 20 30 33 32 42 ┆ 032A 19 DAD D ; 032B┆ 0x073320…073340 20 45 39 20 20 20 20 20 20 20 20 09 50 43 48 4c 09 09 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ┆ E9 PCHL ; ┆ 0x073340…073360 20 20 20 20 20 0d 0a 20 30 33 32 43 20 32 41 30 31 30 30 20 20 20 20 44 52 45 41 44 3a 09 4c 48 ┆ 032C 2A0100 DREAD: LH┆ 0x073360…073380 4c 44 09 57 42 4f 4f 54 09 3b 20 52 45 41 44 20 53 45 43 54 4f 52 3a 0d 0a 20 30 33 32 46 20 31 ┆LD WBOOT ; READ SECTOR: 032F 1┆ 0x073380…0733a0 31 32 34 30 30 20 20 20 20 09 4c 58 49 09 44 2c 52 45 41 44 46 09 3b 0d 0a 20 30 33 33 32 20 31 ┆12400 LXI D,READF ; 0332 1┆ 0x0733a0…0733c0 39 20 20 20 20 20 20 20 20 09 44 41 44 09 44 09 3b 0d 0a 20 30 33 33 33 20 45 39 20 20 20 20 20 ┆9 DAD D ; 0333 E9 ┆ 0x0733c0…0733e0 20 20 20 09 50 43 48 4c 09 09 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 ┆ PCHL ; ┆ 0x0733e0…073400 30 33 33 34 20 32 41 30 31 30 30 20 20 20 20 44 57 52 49 54 45 3a 09 4c 48 4c 44 09 57 42 4f 4f ┆0334 2A0100 DWRITE: LHLD WBOO┆ 0x073400…073420 (30, 1, 8) 35 33 34 35 35 32 35 34 32 30 35 33 34 46 35 35 35 32 31 33 0d 0a 3a 31 30 30 33 45 30 30 30 34 ┆5345525420534F555213 :1003E0004┆ 0x073420…073440 33 34 35 32 30 34 34 34 39 35 33 34 42 32 30 34 31 34 45 34 34 32 30 35 34 35 39 35 30 34 35 45 ┆345204449534B20414E442054595045E┆ 0x073440…073460 35 0d 0a 3a 31 30 30 33 46 30 30 30 32 30 33 43 35 32 34 35 35 34 35 35 35 32 34 45 33 45 32 34 ┆5 :1003F000203C52455455524E3E24┆ 0x073460…073480 30 44 30 41 34 39 34 45 35 33 34 35 31 39 0d 0a 3a 31 30 30 34 30 30 30 30 35 32 35 34 32 30 34 ┆0D0A494E534519 :100400005254204┆ 0x073480…0734a0 34 34 35 35 33 35 34 34 39 34 45 34 31 35 34 34 39 34 46 34 45 32 30 34 34 38 30 0d 0a 3a 31 30 ┆4455354494E4154494F4E204480 :10┆ 0x0734a0…0734c0 30 34 31 30 30 30 34 39 35 33 34 42 32 30 34 31 34 45 34 34 32 30 35 34 35 39 35 30 34 35 32 30 ┆04100049534B20414E44205459504520┆ 0x0734c0…0734e0 33 43 35 32 34 35 41 44 0d 0a 3a 31 30 30 34 32 30 30 30 35 34 35 35 35 32 34 45 33 45 32 34 30 ┆3C5245AD :100420005455524E3E240┆ 0x0734e0…073500 44 30 41 34 32 34 31 34 34 32 30 35 33 34 35 34 33 35 34 46 34 0d 0a 3a 31 30 30 34 33 30 30 30 ┆D0A4241442053454354F4 :10043000┆ 0x073500…073520 34 46 35 32 32 30 34 46 34 45 32 30 35 33 34 46 35 35 35 32 34 33 34 35 32 30 34 34 34 39 35 33 ┆4F52204F4E20534F5552434520444953┆ 0x073520…073540 36 44 0d 0a 3a 31 30 30 34 34 30 30 30 34 42 32 34 30 44 30 41 34 32 34 31 34 34 32 30 35 33 34 ┆6D :100440004B240D0A42414420534┆ 0x073540…073560 35 34 33 35 34 34 46 35 32 32 30 34 46 30 30 0d 0a 3a 31 30 30 34 35 30 30 30 34 45 32 30 34 34 ┆543544F52204F00 :100450004E2044┆ 0x073560…073580 34 35 35 33 35 34 34 39 34 45 34 31 35 34 34 39 34 46 34 45 32 30 34 34 34 39 33 46 0d 0a 3a 31 ┆455354494E4154494F4E2044493F :1┆ 0x073580…0735a0 30 30 34 36 30 30 30 35 33 34 42 32 34 30 44 30 41 34 39 34 45 35 33 34 35 35 32 35 34 32 30 35 ┆0046000534B240D0A494E53455254205┆ 0x0735a0…0735c0 33 35 39 35 33 35 34 36 42 0d 0a 3a 31 30 30 34 37 30 30 30 34 35 34 44 32 30 34 34 34 39 35 33 ┆35953546B :10047000454D20444953┆ 0x0735c0…0735e0 34 42 32 30 34 31 34 45 34 34 32 30 35 34 35 39 35 30 34 35 34 41 0d 0a 3a 31 30 30 34 38 30 30 ┆4B20414E4420545950454A :1004800┆ 0x0735e0…073600 30 32 30 33 43 35 32 34 35 35 34 35 35 35 32 34 45 33 45 32 34 30 44 30 41 34 32 34 31 34 33 34 ┆0203C52455455524E3E240D0A4241434┆ 0x073600…073620 (30, 1, 9) 41 4e 47 45 3b 0d 0a 20 30 32 35 31 20 31 31 46 41 30 33 20 20 20 20 09 4c 58 49 09 44 2c 4d 44 ┆ANGE; 0251 11FA03 LXI D,MD┆ 0x073620…073640 44 49 53 4b 3b 0d 0a 20 30 32 35 34 20 43 44 34 37 30 33 20 20 20 20 09 43 41 4c 4c 09 50 52 49 ┆DISK; 0254 CD4703 CALL PRI┆ 0x073640…073660 4e 54 09 3b 0d 0a 20 30 32 35 37 20 43 44 34 43 30 33 20 20 20 20 09 43 41 4c 4c 09 43 4f 4e 53 ┆NT ; 0257 CD4C03 CALL CONS┆ 0x073660…073680 49 09 3b 0d 0a 20 30 32 35 41 20 33 41 41 35 30 34 20 20 20 20 53 45 4c 44 45 3a 09 4c 44 41 09 ┆I ; 025A 3AA504 SELDE: LDA ┆ 0x073680…0736a0 44 44 52 49 56 09 3b 0d 0a 20 30 32 35 44 20 43 44 30 35 30 33 20 20 20 20 09 43 41 4c 4c 09 53 ┆DDRIV ; 025D CD0503 CALL S┆ 0x0736a0…0736c0 45 4c 09 3b 20 53 45 4c 45 43 54 28 44 45 53 54 49 4e 41 54 49 4f 4e 20 44 52 49 56 45 29 3b 0d ┆EL ; SELECT(DESTINATION DRIVE); ┆ 0x0736c0…0736e0 0a 20 30 32 36 30 20 32 31 36 38 30 31 20 20 20 20 09 4c 58 49 09 48 2c 33 36 30 09 3b 0d 0a 20 ┆ 0260 216801 LXI H,360 ; ┆ 0x0736e0…073700 30 32 36 33 20 32 32 41 39 30 34 20 20 20 20 09 53 48 4c 44 09 53 45 43 43 4e 54 09 3b 20 53 45 ┆0263 22A904 SHLD SECCNT ; SE┆ 0x073700…073720 43 54 4f 52 43 4f 55 4e 54 3a 3d 20 33 36 30 3b 0d 0a 20 30 32 36 36 20 31 31 43 42 30 34 20 20 ┆CTORCOUNT:= 360; 0266 11CB04 ┆ 0x073720…073740 20 20 09 4c 58 49 09 44 2c 42 55 46 09 3b 0d 0a 20 30 32 36 39 20 44 35 20 20 20 20 20 20 20 20 ┆ LXI D,BUF ; 0269 D5 ┆ 0x073740…073760 09 50 55 53 48 09 44 09 3b 0d 0a 20 30 32 36 41 20 43 44 32 32 30 33 20 20 20 20 09 43 41 4c 4c ┆ PUSH D ; 026A CD2203 CALL┆ 0x073760…073780 09 44 4d 41 09 3b 20 44 4d 41 20 41 44 44 52 3a 3d 20 53 54 41 52 54 20 4f 46 20 42 55 46 46 45 ┆ DMA ; DMA ADDR:= START OF BUFFE┆ 0x073780…0737a0 52 3b 0d 0a 20 30 32 36 44 20 33 41 41 37 30 34 20 20 20 20 09 4c 44 41 09 43 55 52 54 52 4b 09 ┆R; 026D 3AA704 LDA CURTRK ┆ 0x0737a0…0737c0 3b 0d 0a 20 30 32 37 30 20 34 46 20 20 20 20 20 20 20 20 09 4d 4f 56 09 43 2c 41 09 3b 0d 0a 20 ┆; 0270 4F MOV C,A ; ┆ 0x0737c0…0737e0 30 32 37 31 20 43 44 30 45 30 33 20 20 20 20 09 43 41 4c 4c 09 54 52 4b 09 3b 20 53 45 54 20 54 ┆0271 CD0E03 CALL TRK ; SET T┆ 0x0737e0…073800 52 41 43 4b 28 54 52 4b 3a 3d 43 55 52 20 54 52 4b 29 3b 0d 0a 20 30 32 37 34 20 33 41 41 38 30 ┆RACK(TRK:=CUR TRK); 0274 3AA80┆ 0x073800…073820 (30, 1, 10) 20 47 4f 54 4f 20 57 52 49 54 45 20 53 45 43 54 4f 52 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ┆ GOTO WRITE SECTOR; ┆ 0x073820…073840 20 20 20 20 20 0d 0a 20 30 32 43 37 20 37 38 20 20 20 20 20 20 20 20 4e 44 41 54 3a 09 4d 4f 56 ┆ 02C7 78 NDAT: MOV┆ 0x073840…073860 09 41 2c 42 09 3b 20 4e 45 58 54 20 52 45 41 44 3a 0d 0a 20 30 32 43 38 20 33 32 41 37 30 34 20 ┆ A,B ; NEXT READ: 02C8 32A704 ┆ 0x073860…073880 20 20 20 09 53 54 41 09 43 55 52 54 52 4b 09 3b 0d 0a 20 30 32 43 42 20 37 39 20 20 20 20 20 20 ┆ STA CURTRK ; 02CB 79 ┆ 0x073880…0738a0 20 20 09 4d 4f 56 09 41 2c 43 09 3b 20 43 55 52 54 52 4b 3a 3d 54 52 4b 3b 0d 0a 20 30 32 43 43 ┆ MOV A,C ; CURTRK:=TRK; 02CC┆ 0x0738a0…0738c0 20 33 32 41 38 30 34 20 20 20 20 09 53 54 41 09 43 55 52 53 45 43 09 3b 20 43 55 52 53 45 43 3a ┆ 32A804 STA CURSEC ; CURSEC:┆ 0x0738c0…0738e0 3d 53 45 43 3b 0d 0a 20 30 32 43 46 20 44 31 20 20 20 20 20 20 20 20 09 50 4f 50 09 44 09 3b 0d ┆=SEC; 02CF D1 POP D ; ┆ 0x0738e0…073900 0a 20 30 32 44 30 20 43 44 45 42 30 32 20 20 20 20 09 43 41 4c 4c 09 46 4c 55 53 48 09 3b 20 46 ┆ 02D0 CDEB02 CALL FLUSH ; F┆ 0x073900…073920 4c 55 53 48 20 42 55 46 46 45 52 3b 0d 0a 20 30 32 44 33 20 43 33 43 43 30 31 20 20 20 20 09 4a ┆LUSH BUFFER; 02D3 C3CC01 J┆ 0x073920…073940 4d 50 09 52 44 41 54 09 3b 20 47 4f 54 4f 20 52 45 41 44 20 44 41 54 41 3b 0d 0a 20 20 20 20 20 ┆MP RDAT ; GOTO READ DATA; ┆ 0x073940…073960 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 32 44 36 20 43 44 45 42 30 32 20 20 20 20 45 44 41 ┆ 02D6 CDEB02 EDA┆ 0x073960…073980 54 3a 09 43 41 4c 4c 09 46 4c 55 53 48 09 3b 20 45 4e 44 20 4f 46 20 43 4f 50 59 3a 0d 0a 20 30 ┆T: CALL FLUSH ; END OF COPY: 0┆ 0x073980…0739a0 32 44 39 20 31 31 38 41 30 34 20 20 20 20 09 4c 58 49 09 44 2c 4f 4b 09 3b 0d 0a 20 30 32 44 43 ┆2D9 118A04 LXI D,OK ; 02DC┆ 0x0739a0…0739c0 20 43 44 34 37 30 33 20 20 20 20 09 43 41 4c 4c 09 50 52 49 4e 54 09 3b 20 43 4f 50 59 20 43 4f ┆ CD4703 CALL PRINT ; COPY CO┆ 0x0739c0…0739e0 4d 50 4c 45 54 45 3b 0d 0a 20 30 32 44 46 20 31 31 36 33 30 34 20 20 20 20 09 4c 58 49 09 44 2c ┆MPLETE; 02DF 116304 LXI D,┆ 0x0739e0…073a00 4d 53 59 53 44 09 3b 0d 0a 20 30 32 45 32 20 43 44 34 37 30 33 20 20 20 20 09 43 41 4c 4c 09 50 ┆MSYSD ; 02E2 CD4703 CALL P┆ 0x073a00…073a20 (30, 1, 11) 54 09 3b 20 57 52 49 54 45 20 53 45 43 54 4f 52 3a 0d 0a 20 30 33 33 37 20 31 31 32 37 30 30 20 ┆T ; WRITE SECTOR: 0337 112700 ┆ 0x073a20…073a40 20 20 20 09 4c 58 49 09 44 2c 57 52 49 54 45 46 3b 0d 0a 20 30 33 33 41 20 31 39 20 20 20 20 20 ┆ LXI D,WRITEF; 033A 19 ┆ 0x073a40…073a60 20 20 20 09 44 41 44 09 44 09 3b 0d 0a 20 30 33 33 42 20 30 45 30 32 20 20 20 20 20 20 09 4d 56 ┆ DAD D ; 033B 0E02 MV┆ 0x073a60…073a80 49 09 43 2c 32 09 3b 20 57 52 49 54 45 20 54 59 50 45 3a 3d 20 55 4e 41 4c 4c 4f 43 41 54 45 44 ┆I C,2 ; WRITE TYPE:= UNALLOCATED┆ 0x073a80…073aa0 3b 0d 0a 20 30 33 33 44 20 45 39 20 20 20 20 20 20 20 20 09 50 43 48 4c 09 09 3b 0d 0a 20 20 20 ┆; 033D E9 PCHL ; ┆ 0x073aa0…073ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 33 33 45 20 30 45 30 39 20 20 20 20 20 20 46 ┆ 033E 0E09 F┆ 0x073ac0…073ae0 49 4e 49 53 3a 09 4d 56 49 09 43 2c 50 52 49 4e 54 46 3b 0d 0a 20 30 33 34 30 20 43 44 30 35 30 ┆INIS: MVI C,PRINTF; 0340 CD050┆ 0x073ae0…073b00 30 20 20 20 20 09 43 41 4c 4c 09 42 44 4f 53 09 3b 0d 0a 20 30 33 34 33 20 32 41 39 46 30 34 20 ┆0 CALL BDOS ; 0343 2A9F04 ┆ 0x073b00…073b20 20 20 20 09 4c 48 4c 44 09 43 43 50 52 45 54 09 3b 0d 0a 20 30 33 34 36 20 45 39 20 20 20 20 20 ┆ LHLD CCPRET ; 0346 E9 ┆ 0x073b20…073b40 20 20 20 09 50 43 48 4c 09 09 3b 20 52 45 54 55 52 4e 20 54 4f 20 43 43 50 3b 0d 0a 20 20 20 20 ┆ PCHL ; RETURN TO CCP; ┆ 0x073b40…073b60 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 33 34 37 20 30 45 30 39 20 20 20 20 20 20 50 52 ┆ 0347 0E09 PR┆ 0x073b60…073b80 49 4e 54 3a 09 4d 56 49 09 43 2c 50 52 49 4e 54 46 3b 0d 0a 20 30 33 34 39 20 43 33 30 35 30 30 ┆INT: MVI C,PRINTF; 0349 C30500┆ 0x073b80…073ba0 20 20 20 20 09 4a 4d 50 09 42 44 4f 53 09 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ JMP BDOS ; ┆ 0x073ba0…073bc0 20 0d 0a 20 30 33 34 43 20 30 45 30 31 20 20 20 20 20 20 43 4f 4e 53 49 3a 09 4d 56 49 09 43 2c ┆ 034C 0E01 CONSI: MVI C,┆ 0x073bc0…073be0 43 4f 4e 53 49 46 3b 0d 0a 20 30 33 34 45 20 43 33 30 35 30 30 20 20 20 20 09 4a 4d 50 09 42 44 ┆CONSIF; 034E C30500 JMP BD┆ 0x073be0…073c00 4f 53 09 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 33 35 31 20 30 45 ┆OS ; 0351 0E┆ 0x073c00…073c20 (30, 1, 12) 42 41 36 0d 0a 3a 31 30 30 34 39 30 30 30 35 35 35 30 32 30 34 33 34 46 34 44 35 30 34 43 34 35 ┆BA6 :10049000555020434F4D504C45┆ 0x073c20…073c40 35 34 34 35 32 34 30 44 30 41 32 34 30 30 44 46 0d 0a 3a 30 42 30 34 41 30 30 30 30 30 30 30 30 ┆5445240D0A2400DF :0B04A00000000┆ 0x073c40…073c60 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 35 31 0d 0a 3a 30 32 30 34 43 42 30 30 30 30 ┆0000000000000000051 :0204CB0000┆ 0x073c60…073c80 30 30 32 46 0d 0a 3a 30 30 30 31 30 30 30 30 46 46 0d 0a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆002F :00010000FF ┆ 0x073c80…073ca0 09 68 2c 30 30 30 30 68 09 3b 72 65 74 75 72 6e 20 30 30 30 30 20 69 66 20 65 72 72 6f 72 0d 0a ┆ h,0000h ;return 0000 if error ┆ 0x073ca0…073cc0 09 6d 6f 76 09 61 2c 63 0d 0a 09 63 70 69 09 6e 64 69 73 6b 73 09 3b 74 6f 6f 20 6c 61 72 67 65 ┆ mov a,c cpi ndisks ;too large┆ 0x073cc0…073ce0 3f 0d 0a 09 72 6e 63 09 09 3b 6c 65 61 76 65 20 48 4c 20 3d 20 30 30 30 30 0d 0a 3b 0d 0a 09 61 ┆? rnc ;leave HL = 0000 ; a┆ 0x073ce0…073d00 6e 69 09 31 30 62 09 3b 30 30 20 30 30 20 66 6f 72 20 64 72 69 76 65 20 30 2c 31 20 61 6e 64 20 ┆ni 10b ;00 00 for drive 0,1 and ┆ 0x073d00…073d20 31 30 20 31 30 20 66 6f 72 20 64 72 69 76 65 20 32 2c 33 0d 0a 09 73 74 61 09 64 62 61 6e 6b 09 ┆10 10 for drive 2,3 sta dbank ┆ 0x073d20…073d40 3b 74 6f 20 73 65 6c 65 63 74 20 64 72 69 76 65 20 62 61 6e 6b 0d 0a 09 6d 6f 76 09 61 2c 63 09 ┆;to select drive bank mov a,c ┆ 0x073d40…073d60 3b 30 30 2c 20 30 31 2c 20 31 30 2c 20 31 31 0d 0a 09 61 6e 69 09 31 62 09 3b 6d 64 73 20 68 61 ┆;00, 01, 10, 11 ani 1b ;mds ha┆ 0x073d60…073d80 73 20 30 2c 31 20 61 74 20 37 38 2c 20 32 2c 33 20 61 74 20 38 38 0d 0a 09 6f 72 61 09 61 09 3b ┆s 0,1 at 78, 2,3 at 88 ora a ;┆ 0x073d80…073da0 72 65 73 75 6c 74 20 30 30 3f 0d 0a 09 6a 7a 09 73 65 74 64 72 69 76 65 0d 0a 09 6d 76 69 09 61 ┆result 00? jz setdrive mvi a┆ 0x073da0…073dc0 2c 30 30 31 31 30 30 30 30 62 09 3b 73 65 6c 65 63 74 73 20 64 72 69 76 65 20 31 20 69 6e 20 62 ┆,00110000b ;selects drive 1 in b┆ 0x073dc0…073de0 61 6e 6b 0d 0a 73 65 74 64 72 69 76 65 3a 0d 0a 09 6d 6f 76 09 62 2c 61 09 3b 73 61 76 65 20 74 ┆ank setdrive: mov b,a ;save t┆ 0x073de0…073e00 68 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6c 78 69 09 68 2c 69 6f 66 09 3b 69 6f 20 66 75 6e 63 ┆he function lxi h,iof ;io func┆ 0x073e00…073e20 (30, 1, 13) 34 20 20 20 20 09 4c 44 41 09 43 55 52 53 45 43 09 3b 0d 0a 20 30 32 37 37 20 34 46 20 20 20 20 ┆4 LDA CURSEC ; 0277 4F ┆ 0x073e20…073e40 20 20 20 20 09 4d 4f 56 09 43 2c 41 09 3b 0d 0a 20 30 32 37 38 20 33 41 41 37 30 34 20 20 20 20 ┆ MOV C,A ; 0278 3AA704 ┆ 0x073e40…073e60 09 4c 44 41 09 43 55 52 54 52 4b 09 3b 0d 0a 20 30 32 37 42 20 34 37 20 20 20 20 20 20 20 20 09 ┆ LDA CURTRK ; 027B 47 ┆ 0x073e60…073e80 4d 4f 56 09 42 2c 41 09 3b 0d 0a 20 30 32 37 43 20 43 35 20 20 20 20 20 20 20 20 09 50 55 53 48 ┆MOV B,A ; 027C C5 PUSH┆ 0x073e80…073ea0 09 42 09 3b 20 53 45 54 20 53 45 43 54 4f 52 28 53 45 43 3a 3d 43 55 52 20 53 45 43 29 3b 0d 0a ┆ B ; SET SECTOR(SEC:=CUR SEC); ┆ 0x073ea0…073ec0 20 30 32 37 44 20 43 44 31 38 30 33 20 20 20 20 09 43 41 4c 4c 09 53 45 43 09 3b 0d 0a 20 30 32 ┆ 027D CD1803 CALL SEC ; 02┆ 0x073ec0…073ee0 38 30 20 43 44 33 34 30 33 20 20 20 20 57 52 49 54 45 44 3a 09 43 41 4c 4c 09 44 57 52 49 54 45 ┆80 CD3403 WRITED: CALL DWRITE┆ 0x073ee0…073f00 09 3b 20 57 52 49 54 45 20 53 45 43 54 4f 52 3b 0d 0a 20 30 32 38 33 20 31 31 34 32 30 34 20 20 ┆ ; WRITE SECTOR; 0283 114204 ┆ 0x073f00…073f20 20 20 09 4c 58 49 09 44 2c 42 41 44 44 09 3b 0d 0a 20 30 32 38 36 20 42 37 20 20 20 20 20 20 20 ┆ LXI D,BADD ; 0286 B7 ┆ 0x073f20…073f40 20 09 4f 52 41 09 41 09 3b 20 49 46 20 45 52 52 4f 52 53 20 54 48 45 4e 20 50 52 49 4e 54 20 57 ┆ ORA A ; IF ERRORS THEN PRINT W┆ 0x073f40…073f60 41 52 4e 49 4e 47 3b 0d 0a 20 30 32 38 37 20 43 34 35 31 30 33 20 20 20 20 09 43 4e 5a 09 45 52 ┆ARNING; 0287 C45103 CNZ ER┆ 0x073f60…073f80 52 4f 52 09 3b 0d 0a 20 30 32 38 41 20 43 31 20 20 20 20 20 20 20 20 09 50 4f 50 09 42 09 3b 0d ┆ROR ; 028A C1 POP B ; ┆ 0x073f80…073fa0 0a 20 30 32 38 42 20 30 43 20 20 20 20 20 20 20 20 09 49 4e 52 09 43 09 3b 20 53 45 43 3a 3d 20 ┆ 028B 0C INR C ; SEC:= ┆ 0x073fa0…073fc0 53 45 43 2b 31 3b 0d 0a 20 30 32 38 43 20 33 41 41 33 30 34 20 20 20 20 09 4c 44 41 09 53 50 54 ┆SEC+1; 028C 3AA304 LDA SPT┆ 0x073fc0…073fe0 09 3b 0d 0a 20 30 32 38 46 20 42 39 20 20 20 20 20 20 20 20 09 43 4d 50 09 43 09 3b 20 49 46 20 ┆ ; 028F B9 CMP C ; IF ┆ 0x073fe0…074000 53 45 43 3d 53 50 54 20 54 48 45 4e 0d 0a 20 30 32 39 30 20 43 32 41 33 30 32 20 20 20 20 09 4a ┆SEC=SPT THEN 0290 C2A302 J┆ 0x074000…074020 (30, 1, 14) 52 49 4e 54 09 3b 20 57 41 49 54 20 46 4f 52 20 43 48 41 4e 47 45 20 54 4f 20 53 59 53 54 45 4d ┆RINT ; WAIT FOR CHANGE TO SYSTEM┆ 0x074020…074040 20 44 49 53 4b 3a 0d 0a 20 30 32 45 35 20 43 44 34 43 30 33 20 20 20 20 09 43 41 4c 4c 09 43 4f ┆ DISK: 02E5 CD4C03 CALL CO┆ 0x074040…074060 4e 53 49 09 3b 0d 0a 20 30 32 45 38 20 43 33 30 30 30 30 20 20 20 20 09 4a 4d 50 09 42 4f 4f 54 ┆NSI ; 02E8 C30000 JMP BOOT┆ 0x074060…074080 09 3b 20 57 41 52 4d 20 42 4f 4f 54 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a ┆ ; WARM BOOT ┆ 0x074080…0740a0 20 30 32 45 42 20 33 41 41 37 30 34 20 20 20 20 46 4c 55 53 48 3a 09 4c 44 41 09 43 55 52 54 52 ┆ 02EB 3AA704 FLUSH: LDA CURTR┆ 0x0740a0…0740c0 4b 09 3b 20 46 4f 52 43 45 20 42 55 46 46 45 52 20 57 52 49 54 45 3a 0d 0a 20 30 32 45 45 20 34 ┆K ; FORCE BUFFER WRITE: 02EE 4┆ 0x0740c0…0740e0 46 20 20 20 20 20 20 20 20 09 4d 4f 56 09 43 2c 41 09 3b 0d 0a 20 30 32 45 46 20 30 44 20 20 20 ┆F MOV C,A ; 02EF 0D ┆ 0x0740e0…074100 20 20 20 20 20 09 44 43 52 09 43 09 3b 0d 0a 20 30 32 46 30 20 43 44 30 45 30 33 20 20 20 20 09 ┆ DCR C ; 02F0 CD0E03 ┆ 0x074100…074120 43 41 4c 4c 09 54 52 4b 09 3b 20 53 45 54 20 54 52 41 43 4b 28 43 55 52 54 52 4b 2d 31 29 3b 0d ┆CALL TRK ; SET TRACK(CURTRK-1); ┆ 0x074120…074140 0a 20 30 32 46 33 20 33 41 41 38 30 34 20 20 20 20 09 4c 44 41 09 43 55 52 53 45 43 09 3b 0d 0a ┆ 02F3 3AA804 LDA CURSEC ; ┆ 0x074140…074160 20 30 32 46 36 20 34 46 20 20 20 20 20 20 20 20 09 4d 4f 56 09 43 2c 41 09 3b 0d 0a 20 30 32 46 ┆ 02F6 4F MOV C,A ; 02F┆ 0x074160…074180 37 20 43 44 31 38 30 33 20 20 20 20 09 43 41 4c 4c 09 53 45 43 09 3b 20 53 45 54 20 53 45 43 54 ┆7 CD1803 CALL SEC ; SET SECT┆ 0x074180…0741a0 4f 52 28 43 55 52 53 45 43 29 3b 0d 0a 20 30 32 46 41 20 43 44 32 43 30 33 20 20 20 20 09 43 41 ┆OR(CURSEC); 02FA CD2C03 CA┆ 0x0741a0…0741c0 4c 4c 09 44 52 45 41 44 09 3b 0d 0a 20 30 32 46 44 20 31 31 34 32 30 34 20 20 20 20 09 4c 58 49 ┆LL DREAD ; 02FD 114204 LXI┆ 0x0741c0…0741e0 09 44 2c 42 41 44 44 09 3b 0d 0a 20 30 33 30 30 20 42 37 20 20 20 20 20 20 20 20 09 4f 52 41 09 ┆ D,BADD ; 0300 B7 ORA ┆ 0x0741e0…074200 41 09 3b 20 49 46 20 45 52 52 4f 52 20 54 48 45 4e 20 50 52 49 4e 54 20 57 41 52 4e 49 4e 47 3b ┆A ; IF ERROR THEN PRINT WARNING;┆ 0x074200…074220 (30, 1, 15) 30 39 20 20 20 20 20 20 45 52 52 4f 52 3a 09 4d 56 49 09 43 2c 50 52 49 4e 54 46 3b 20 44 49 53 ┆09 ERROR: MVI C,PRINTF; DIS┆ 0x074220…074240 4b 20 45 52 52 4f 52 3a 0d 0a 20 30 33 35 33 20 43 44 30 35 30 30 20 20 20 20 09 43 41 4c 4c 09 ┆K ERROR: 0353 CD0500 CALL ┆ 0x074240…074260 42 44 4f 53 09 3b 0d 0a 20 30 33 35 36 20 30 45 30 31 20 20 20 20 20 20 09 4d 56 49 09 43 2c 43 ┆BDOS ; 0356 0E01 MVI C,C┆ 0x074260…074280 4f 4e 53 49 46 3b 0d 0a 20 30 33 35 38 20 43 44 30 35 30 30 20 20 20 20 09 43 41 4c 4c 09 42 44 ┆ONSIF; 0358 CD0500 CALL BD┆ 0x074280…0742a0 4f 53 09 3b 0d 0a 20 30 33 35 42 20 46 45 30 33 20 20 20 20 20 20 09 43 50 49 09 33 09 3b 0d 0a ┆OS ; 035B FE03 CPI 3 ; ┆ 0x0742a0…0742c0 20 30 33 35 44 20 43 41 30 30 30 30 20 20 20 20 09 4a 5a 09 42 4f 4f 54 09 3b 0d 0a 20 30 33 36 ┆ 035D CA0000 JZ BOOT ; 036┆ 0x0742c0…0742e0 30 20 43 39 20 20 20 20 20 20 20 20 09 52 45 54 09 09 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ┆0 C9 RET ; ┆ 0x0742e0…074300 20 20 20 20 20 0d 0a 20 30 33 36 31 20 35 32 34 33 33 37 33 30 33 30 48 45 41 44 3a 09 44 42 09 ┆ 0361 5243373030HEAD: DB ┆ 0x074300…074320 27 52 43 37 30 30 20 20 43 50 2f 4d 20 20 42 41 43 4b 55 50 20 20 55 54 49 4c 49 54 59 27 2c 31 ┆'RC700 CP/M BACKUP UTILITY',1┆ 0x074320…074340 33 2c 33 36 0d 0a 20 30 33 37 46 20 30 44 30 41 30 41 35 33 34 46 53 44 53 50 45 43 3a 09 44 42 ┆3,36 037F 0D0A0A534FSDSPEC: DB┆ 0x074340…074360 09 31 33 2c 31 30 2c 31 30 2c 27 53 4f 55 52 43 45 20 44 52 49 56 45 20 28 41 20 4f 52 20 42 29 ┆ 13,10,10,'SOURCE DRIVE (A OR B)┆ 0x074360…074380 20 3f 20 27 2c 33 36 0d 0a 20 30 33 39 42 20 30 44 30 41 30 41 34 34 34 35 44 44 53 50 45 43 3a ┆ ? ',36 039B 0D0A0A4445DDSPEC:┆ 0x074380…0743a0 09 44 42 09 31 33 2c 31 30 2c 31 30 2c 27 44 45 53 54 49 4e 41 54 49 4f 4e 20 44 52 49 56 45 20 ┆ DB 13,10,10,'DESTINATION DRIVE ┆ 0x0743a0…0743c0 28 41 20 4f 52 20 42 29 20 3f 20 27 2c 33 36 0d 0a 20 30 33 42 43 20 30 44 30 41 30 41 34 32 34 ┆(A OR B) ? ',36 03BC 0D0A0A424┆ 0x0743c0…0743e0 31 4e 4f 54 4f 4b 3a 09 44 42 09 31 33 2c 31 30 2c 31 30 2c 27 42 41 43 4b 55 50 20 4e 4f 54 20 ┆1NOTOK: DB 13,10,10,'BACKUP NOT ┆ 0x0743e0…074400 50 4f 53 53 49 42 4c 45 27 2c 33 36 0d 0a 20 30 33 44 33 20 30 44 30 41 34 39 34 45 35 33 4d 53 ┆POSSIBLE',36 03D3 0D0A494E53MS┆ 0x074400…074420 (31, 0, 1) 74 69 6f 6e 0d 0a 09 6d 6f 76 09 61 2c 6d 0d 0a 09 61 6e 69 09 31 31 30 30 31 31 31 31 62 09 3b ┆tion mov a,m ani 11001111b ;┆ 0x074420…074440 6d 61 73 6b 20 6f 75 74 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6f 72 61 09 62 09 3b 6d 61 ┆mask out disk number ora b ;ma┆ 0x074440…074460 73 6b 20 69 6e 20 6e 65 77 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6d 6f 76 09 6d 2c 61 09 ┆sk in new disk number mov m,a ┆ 0x074460…074480 3b 73 61 76 65 20 69 74 20 69 6e 20 69 6f 70 62 0d 0a 09 6d 6f 76 09 6c 2c 63 0d 0a 09 6d 76 69 ┆;save it in iopb mov l,c mvi┆ 0x074480…0744a0 09 68 2c 30 09 3b 48 4c 3d 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 64 61 64 09 68 09 3b 2a 32 ┆ h,0 ;HL=disk number dad h ;*2┆ 0x0744a0…0744c0 0d 0a 09 64 61 64 09 68 09 3b 2a 34 0d 0a 09 64 61 64 09 68 09 3b 2a 38 0d 0a 09 64 61 64 09 68 ┆ dad h ;*4 dad h ;*8 dad h┆ 0x0744c0…0744e0 09 3b 2a 31 36 0d 0a 09 6c 78 69 09 64 2c 64 70 62 61 73 65 0d 0a 09 64 61 64 09 64 09 3b 48 4c ┆ ;*16 lxi d,dpbase dad d ;HL┆ 0x0744e0…074500 3d 64 69 73 6b 20 68 65 61 64 65 72 20 74 61 62 6c 65 20 61 64 64 72 65 73 73 0d 0a 09 72 65 74 ┆=disk header table address ret┆ 0x074500…074520 0d 0a 3b 0d 0a 3b 0d 0a 73 65 74 74 72 6b 3a 09 3b 73 65 74 20 74 72 61 63 6b 20 61 64 64 72 65 ┆ ; ; settrk: ;set track addre┆ 0x074520…074540 73 73 20 67 69 76 65 6e 20 62 79 20 63 0d 0a 09 6c 78 69 09 68 2c 69 6f 74 0d 0a 09 6d 6f 76 09 ┆ss given by c lxi h,iot mov ┆ 0x074540…074560 6d 2c 63 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 73 65 74 73 65 63 3a 09 3b 73 65 74 20 73 65 63 74 6f ┆m,c ret ; setsec: ;set secto┆ 0x074560…074580 72 20 6e 75 6d 62 65 72 20 67 69 76 65 6e 20 62 79 20 63 0d 0a 09 6c 78 69 09 68 2c 69 6f 73 0d ┆r number given by c lxi h,ios ┆ 0x074580…0745a0 0a 09 6d 6f 76 09 6d 2c 63 0d 0a 09 72 65 74 0d 0a 73 65 63 74 72 61 6e 3a 0d 0a 09 09 3b 74 72 ┆ mov m,c ret sectran: ;tr┆ 0x0745a0…0745c0 61 6e 73 6c 61 74 65 20 73 65 63 74 6f 72 20 62 63 20 75 73 69 6e 67 20 74 61 62 6c 65 20 61 74 ┆anslate sector bc using table at┆ 0x0745c0…0745e0 20 64 65 0d 0a 09 6d 76 69 09 62 2c 30 09 3b 64 6f 75 62 6c 65 20 70 72 65 63 69 73 69 6f 6e 20 ┆ de mvi b,0 ;double precision ┆ 0x0745e0…074600 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 69 6e 20 42 43 0d 0a 09 78 63 68 67 09 09 3b 74 72 61 ┆sector number in BC xchg ;tra┆ 0x074600…074620 (31, 0, 2) 0a 09 6d 76 69 09 62 2c 69 6f 70 62 20 73 68 72 20 38 09 3b 68 69 67 68 20 61 64 64 72 65 73 73 ┆ mvi b,iopb shr 8 ;high address┆ 0x074620…074640 20 66 6f 72 20 69 6f 70 62 0d 0a 09 6a 6e 7a 09 69 6f 64 72 31 09 3b 64 72 69 76 65 20 62 61 6e ┆ for iopb jnz iodr1 ;drive ban┆ 0x074640…074660 6b 20 31 3f 0d 0a 09 6f 75 74 09 69 6c 6f 77 09 09 3b 6c 6f 77 20 61 64 64 72 65 73 73 20 74 6f ┆k 1? out ilow ;low address to┆ 0x074660…074680 20 63 6f 6e 74 72 6f 6c 6c 65 72 0d 0a 09 6d 6f 76 09 61 2c 62 0d 0a 09 6f 75 74 09 69 68 69 67 ┆ controller mov a,b out ihig┆ 0x074680…0746a0 68 09 3b 68 69 67 68 20 61 64 64 72 65 73 73 0d 0a 09 6a 6d 70 09 77 61 69 74 30 09 09 3b 74 6f ┆h ;high address jmp wait0 ;to┆ 0x0746a0…0746c0 20 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 65 0d 0a 3b 0d 0a 69 6f 64 72 31 3a 09 3b 64 ┆ wait for complete ; iodr1: ;d┆ 0x0746c0…0746e0 72 69 76 65 20 62 61 6e 6b 20 31 0d 0a 09 6f 75 74 09 69 6c 6f 77 2b 31 30 68 09 3b 38 38 20 66 ┆rive bank 1 out ilow+10h ;88 f┆ 0x0746e0…074700 6f 72 20 64 72 69 76 65 20 62 61 6e 6b 20 31 30 0d 0a 09 6d 6f 76 09 61 2c 62 0d 0a 09 6f 75 74 ┆or drive bank 10 mov a,b out┆ 0x074700…074720 09 69 68 69 67 68 2b 31 30 68 0d 0a 3b 0d 0a 77 61 69 74 30 3a 09 63 61 6c 6c 09 69 6e 73 74 61 ┆ ihigh+10h ; wait0: call insta┆ 0x074720…074740 74 09 09 3b 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 0d 0a 09 61 6e 69 09 69 6f ┆t ;wait for completion ani io┆ 0x074740…074760 72 64 79 09 09 3b 72 65 61 64 79 3f 0d 0a 09 6a 7a 09 77 61 69 74 30 0d 0a 3b 0d 0a 3b 09 63 68 ┆rdy ;ready? jz wait0 ; ; ch┆ 0x074760…074780 65 63 6b 20 69 6f 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 6f 6b 0d 0a 09 63 61 6c 6c 09 69 6e 74 79 ┆eck io completion ok call inty┆ 0x074780…0747a0 70 65 09 09 3b 6d 75 73 74 20 62 65 20 69 6f 20 63 6f 6d 70 6c 65 74 65 20 28 30 30 29 20 75 6e ┆pe ;must be io complete (00) un┆ 0x0747a0…0747c0 6c 69 6e 6b 65 64 0d 0a 3b 09 30 30 20 75 6e 6c 69 6e 6b 65 64 20 69 2f 6f 20 63 6f 6d 70 6c 65 ┆linked ; 00 unlinked i/o comple┆ 0x0747c0…0747e0 74 65 2c 20 20 20 20 30 31 20 6c 69 6e 6b 65 64 20 69 2f 6f 20 63 6f 6d 70 6c 65 74 65 20 28 6e ┆te, 01 linked i/o complete (n┆ 0x0747e0…074800 6f 74 20 75 73 65 64 29 0d 0a 3b 09 31 30 20 64 69 73 6b 20 73 74 61 74 75 73 20 63 68 61 6e 67 ┆ot used) ; 10 disk status chang┆ 0x074800…074820 (31, 0, 3) 33 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 69 6e 62 79 74 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 ┆3 ret ; inbyte: lda dbank ┆ 0x074820…074840 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 62 79 74 31 0d 0a 09 69 6e 09 72 62 79 74 65 0d 0a 09 ┆ora a jnz inbyt1 in rbyte ┆ 0x074840…074860 72 65 74 0d 0a 69 6e 62 79 74 31 3a 09 69 6e 09 72 62 79 74 65 2b 31 30 68 0d 0a 09 72 65 74 0d ┆ret inbyt1: in rbyte+10h ret ┆ 0x074860…074880 0a 3b 0d 0a 69 6e 73 74 61 74 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 ┆ ; instat: lda dbank ora a ┆ 0x074880…0748a0 6a 6e 7a 09 69 6e 73 74 61 31 0d 0a 09 69 6e 09 64 73 74 61 74 0d 0a 09 72 65 74 0d 0a 69 6e 73 ┆jnz insta1 in dstat ret ins┆ 0x0748a0…0748c0 74 61 31 3a 09 69 6e 09 64 73 74 61 74 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b ┆ta1: in dstat+10h ret ; ; ;┆ 0x0748c0…0748e0 0d 0a 3b 09 64 61 74 61 20 61 72 65 61 73 20 28 6d 75 73 74 20 62 65 20 69 6e 20 72 61 6d 29 0d ┆ ; data areas (must be in ram) ┆ 0x0748e0…074900 0a 64 62 61 6e 6b 3a 09 64 62 09 30 09 3b 64 69 73 6b 20 62 61 6e 6b 20 30 30 20 69 66 20 64 72 ┆ dbank: db 0 ;disk bank 00 if dr┆ 0x074900…074920 69 76 65 20 30 2c 31 0d 0a 09 09 09 3b 09 20 20 20 31 30 20 69 66 20 64 72 69 76 65 20 32 2c 33 ┆ive 0,1 ; 10 if drive 2,3┆ 0x074920…074940 0d 0a 69 6f 70 62 3a 09 3b 69 6f 20 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 0d 0a 09 64 62 ┆ iopb: ;io parameter block db┆ 0x074940…074960 09 38 30 68 09 3b 6e 6f 72 6d 61 6c 20 69 2f 6f 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 69 6f 66 3a ┆ 80h ;normal i/o operation iof:┆ 0x074960…074980 09 64 62 09 72 65 61 64 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 2c 20 69 6e 69 74 69 61 6c 20 ┆ db readf ;io function, initial ┆ 0x074980…0749a0 72 65 61 64 0d 0a 69 6f 6e 3a 09 64 62 09 31 09 3b 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f ┆read ion: db 1 ;number of secto┆ 0x0749a0…0749c0 72 73 20 74 6f 20 72 65 61 64 0d 0a 69 6f 74 3a 09 64 62 09 6f 66 66 73 65 74 09 3b 74 72 61 63 ┆rs to read iot: db offset ;trac┆ 0x0749c0…0749e0 6b 20 6e 75 6d 62 65 72 0d 0a 69 6f 73 3a 09 64 62 09 31 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 ┆k number ios: db 1 ;sector numb┆ 0x0749e0…074a00 65 72 0d 0a 69 6f 64 3a 09 64 77 09 62 75 66 66 09 3b 69 6f 20 61 64 64 72 65 73 73 0d 0a 3b 0d ┆er iod: dw buff ;io address ; ┆ 0x074a00…074a20 (31, 0, 4) 64 73 20 61 6e 64 20 77 72 69 74 65 73 29 0d 0a 3b 09 73 65 6c 64 73 6b 09 73 65 6c 65 63 74 20 ┆ds and writes) ; seldsk select ┆ 0x074a20…074a40 64 69 73 6b 20 67 69 76 65 6e 20 62 79 20 72 65 67 2d 63 20 28 30 2c 31 2c 32 2e 2e 2e 29 0d 0a ┆disk given by reg-c (0,1,2...) ┆ 0x074a40…074a60 3b 09 73 65 74 74 72 6b 09 73 65 74 20 74 72 61 63 6b 20 61 64 64 72 65 73 73 20 28 30 2c 2e 2e ┆; settrk set track address (0,..┆ 0x074a60…074a80 2e 37 36 29 20 66 6f 72 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 2f 77 72 69 74 65 0d 0a ┆.76) for subsequent read/write ┆ 0x074a80…074aa0 3b 09 73 65 74 73 65 63 09 73 65 74 20 73 65 63 74 6f 72 20 61 64 64 72 65 73 73 20 28 31 2c 2e ┆; setsec set sector address (1,.┆ 0x074aa0…074ac0 2e 2e 2c 32 36 29 20 66 6f 72 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 2f 77 72 69 74 65 ┆..,26) for subsequent read/write┆ 0x074ac0…074ae0 0d 0a 3b 09 73 65 74 64 6d 61 09 73 65 74 20 73 75 62 73 65 71 75 65 6e 74 20 64 6d 61 20 61 64 ┆ ; setdma set subsequent dma ad┆ 0x074ae0…074b00 64 72 65 73 73 20 28 69 6e 69 74 69 61 6c 6c 79 20 38 30 68 29 0d 0a 3b 0d 0a 3b 09 28 72 65 61 ┆dress (initially 80h) ; ; (rea┆ 0x074b00…074b20 64 20 61 6e 64 20 77 72 69 74 65 20 61 73 73 75 6d 65 20 70 72 65 76 69 6f 75 73 20 63 61 6c 6c ┆d and write assume previous call┆ 0x074b20…074b40 73 20 74 6f 20 73 65 74 20 75 70 20 74 68 65 20 69 6f 20 70 61 72 61 6d 65 74 65 72 73 29 0d 0a ┆s to set up the io parameters) ┆ 0x074b40…074b60 3b 09 72 65 61 64 09 72 65 61 64 20 74 72 61 63 6b 2f 73 65 63 74 6f 72 20 74 6f 20 70 72 65 73 ┆; read read track/sector to pres┆ 0x074b60…074b80 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 3b 09 77 72 69 74 65 09 77 72 69 74 65 20 74 72 ┆et dma address ; write write tr┆ 0x074b80…074ba0 61 63 6b 2f 73 65 63 74 6f 72 20 66 72 6f 6d 20 70 72 65 73 65 74 20 64 6d 61 20 61 64 64 72 65 ┆ack/sector from preset dma addre┆ 0x074ba0…074bc0 73 73 0d 0a 3b 0d 0a 3b 09 6a 75 6d 70 20 76 65 63 74 6f 72 20 66 6f 72 20 69 6e 64 69 76 69 75 ┆ss ; ; jump vector for indiviu┆ 0x074bc0…074be0 61 6c 20 72 6f 75 74 69 6e 65 73 0d 0a 09 6a 6d 70 09 62 6f 6f 74 0d 0a 77 62 6f 6f 74 65 3a 09 ┆al routines jmp boot wboote: ┆ 0x074be0…074c00 6a 6d 70 09 77 62 6f 6f 74 0d 0a 09 6a 6d 70 09 63 6f 6e 73 74 0d 0a 09 6a 6d 70 09 63 6f 6e 69 ┆jmp wboot jmp const jmp coni┆ 0x074c00…074c20 (31, 0, 5) 6e 73 6c 61 74 65 20 74 61 62 6c 65 20 61 64 64 72 65 73 73 20 74 6f 20 48 4c 0d 0a 09 64 61 64 ┆nslate table address to HL dad┆ 0x074c20…074c40 09 62 09 3b 74 72 61 6e 73 6c 61 74 65 28 73 65 63 74 6f 72 29 20 61 64 64 72 65 73 73 0d 0a 09 ┆ b ;translate(sector) address ┆ 0x074c40…074c60 6d 6f 76 09 61 2c 6d 09 3b 74 72 61 6e 73 6c 61 74 65 64 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 ┆mov a,m ;translated sector numbe┆ 0x074c60…074c80 72 20 74 6f 20 41 0d 0a 09 73 74 61 09 69 6f 73 0d 0a 09 6d 6f 76 09 6c 2c 61 09 3b 72 65 74 75 ┆r to A sta ios mov l,a ;retu┆ 0x074c80…074ca0 72 6e 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 69 6e 20 4c 0d 0a 09 72 65 74 0d 0a 3b 0d 0a ┆rn sector number in L ret ; ┆ 0x074ca0…074cc0 73 65 74 64 6d 61 3a 09 3b 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 67 69 76 65 6e 20 62 ┆setdma: ;set dma address given b┆ 0x074cc0…074ce0 79 20 72 65 67 73 20 62 2c 63 0d 0a 09 6d 6f 76 09 6c 2c 63 0d 0a 09 6d 6f 76 09 68 2c 62 0d 0a ┆y regs b,c mov l,c mov h,b ┆ 0x074ce0…074d00 09 73 68 6c 64 09 69 6f 64 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 72 65 61 64 3a 09 3b 72 65 61 64 20 ┆ shld iod ret ; read: ;read ┆ 0x074d00…074d20 6e 65 78 74 20 64 69 73 6b 20 72 65 63 6f 72 64 20 28 61 73 73 75 6d 69 6e 67 20 64 69 73 6b 2f ┆next disk record (assuming disk/┆ 0x074d20…074d40 74 72 6b 2f 73 65 63 2f 64 6d 61 20 73 65 74 29 0d 0a 09 6d 76 69 09 63 2c 72 65 61 64 66 09 3b ┆trk/sec/dma set) mvi c,readf ;┆ 0x074d40…074d60 73 65 74 20 74 6f 20 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 73 65 74 66 ┆set to read function call setf┆ 0x074d60…074d80 75 6e 63 0d 0a 09 63 61 6c 6c 09 77 61 69 74 69 6f 09 3b 70 65 72 66 6f 72 6d 20 72 65 61 64 20 ┆unc call waitio ;perform read ┆ 0x074d80…074da0 66 75 6e 63 74 69 6f 6e 0d 0a 09 72 65 74 09 09 3b 6d 61 79 20 68 61 76 65 20 65 72 72 6f 72 20 ┆function ret ;may have error ┆ 0x074da0…074dc0 73 65 74 20 69 6e 20 72 65 67 2d 61 0d 0a 3b 0d 0a 3b 0d 0a 77 72 69 74 65 3a 09 3b 64 69 73 6b ┆set in reg-a ; ; write: ;disk┆ 0x074dc0…074de0 20 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6d 76 69 09 63 2c 77 72 69 74 66 0d 0a 09 ┆ write function mvi c,writf ┆ 0x074de0…074e00 63 61 6c 6c 09 73 65 74 66 75 6e 63 09 3b 73 65 74 20 74 6f 20 77 72 69 74 65 20 66 75 6e 63 74 ┆call setfunc ;set to write funct┆ 0x074e00…074e20 (31, 0, 6) 65 64 20 20 20 20 20 20 20 31 31 20 28 6e 6f 74 20 75 73 65 64 29 0d 0a 09 63 70 69 09 31 30 62 ┆ed 11 (not used) cpi 10b┆ 0x074e20…074e40 09 09 3b 72 65 61 64 79 20 73 74 61 74 75 73 20 63 68 61 6e 67 65 3f 0d 0a 09 6a 7a 09 77 72 65 ┆ ;ready status change? jz wre┆ 0x074e40…074e60 61 64 79 0d 0a 3b 0d 0a 3b 09 6d 75 73 74 20 62 65 20 30 30 20 69 6e 20 74 68 65 20 61 63 63 75 ┆ady ; ; must be 00 in the accu┆ 0x074e60…074e80 6d 75 6c 61 74 6f 72 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 77 65 72 72 6f 72 09 09 3b 73 ┆mulator ora a jnz werror ;s┆ 0x074e80…074ea0 6f 6d 65 20 6f 74 68 65 72 20 63 6f 6e 64 69 74 69 6f 6e 2c 20 72 65 74 72 79 0d 0a 3b 0d 0a 3b ┆ome other condition, retry ; ;┆ 0x074ea0…074ec0 09 63 68 65 63 6b 20 69 2f 6f 20 65 72 72 6f 72 20 62 69 74 73 0d 0a 09 63 61 6c 6c 09 69 6e 62 ┆ check i/o error bits call inb┆ 0x074ec0…074ee0 79 74 65 0d 0a 09 72 61 6c 0d 0a 09 6a 63 09 77 72 65 61 64 79 09 09 3b 75 6e 69 74 20 6e 6f 74 ┆yte ral jc wready ;unit not┆ 0x074ee0…074f00 20 72 65 61 64 79 0d 0a 09 72 61 72 0d 0a 09 61 6e 69 09 31 31 31 31 31 31 31 30 62 09 3b 61 6e ┆ ready rar ani 11111110b ;an┆ 0x074f00…074f20 79 20 6f 74 68 65 72 20 65 72 72 6f 72 73 3f 20 20 28 64 65 6c 65 74 65 64 20 64 61 74 61 20 6f ┆y other errors? (deleted data o┆ 0x074f20…074f40 6b 29 0d 0a 09 6a 6e 7a 09 77 65 72 72 6f 72 0d 0a 3b 0d 0a 3b 09 72 65 61 64 20 6f 72 20 77 72 ┆k) jnz werror ; ; read or wr┆ 0x074f40…074f60 69 74 65 20 69 73 20 6f 6b 2c 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 63 6f 6e 74 61 69 6e 73 20 ┆ite is ok, accumulator contains ┆ 0x074f60…074f80 7a 65 72 6f 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 77 72 65 61 64 79 3a 09 3b 6e 6f 74 20 72 65 61 64 ┆zero ret ; wready: ;not read┆ 0x074f80…074fa0 79 2c 20 74 72 65 61 74 20 61 73 20 65 72 72 6f 72 20 66 6f 72 20 6e 6f 77 0d 0a 09 63 61 6c 6c ┆y, treat as error for now call┆ 0x074fa0…074fc0 09 69 6e 62 79 74 65 09 09 3b 63 6c 65 61 72 20 72 65 73 75 6c 74 20 62 79 74 65 0d 0a 09 6a 6d ┆ inbyte ;clear result byte jm┆ 0x074fc0…074fe0 70 09 74 72 79 63 6f 75 6e 74 0d 0a 3b 0d 0a 77 65 72 72 6f 72 3a 09 3b 72 65 74 75 72 6e 20 68 ┆p trycount ; werror: ;return h┆ 0x074fe0…075000 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 20 28 63 72 63 2c 20 74 72 61 63 6b 2c ┆ardware malfunction (crc, track,┆ 0x075000…075020 (31, 0, 7) 0a 3b 0d 0a 3b 09 64 65 66 69 6e 65 20 72 61 6d 20 61 72 65 61 73 20 66 6f 72 20 62 64 6f 73 20 ┆ ; ; define ram areas for bdos ┆ 0x075020…075040 6f 70 65 72 61 74 69 6f 6e 0d 0a 09 65 6e 64 65 66 0d 0a 09 65 6e 64 0d 0a 3b 09 4d 44 53 2d 38 ┆operation endef end ; MDS-8┆ 0x075040…075060 30 30 20 49 2f 4f 20 44 72 69 76 65 72 73 20 66 6f 72 20 43 50 2f 4d 20 32 2e 32 0d 0a 3b 09 28 ┆00 I/O Drivers for CP/M 2.2 ; (┆ 0x075060…075080 66 6f 75 72 20 64 72 69 76 65 20 73 69 6e 67 6c 65 20 64 65 6e 73 69 74 79 20 76 65 72 73 69 6f ┆four drive single density versio┆ 0x075080…0750a0 6e 29 0d 0a 3b 0d 0a 3b 09 56 65 72 73 69 6f 6e 20 32 2e 32 20 46 65 62 72 75 61 72 79 2c 20 31 ┆n) ; ; Version 2.2 February, 1┆ 0x0750a0…0750c0 39 38 30 0d 0a 3b 0d 0a 76 65 72 73 09 65 71 75 09 32 32 09 3b 76 65 72 73 69 6f 6e 20 32 2e 32 ┆980 ; vers equ 22 ;version 2.2┆ 0x0750c0…0750e0 0d 0a 3b 0d 0a 3b 09 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 39 38 30 0d 0a 3b 09 44 69 67 ┆ ; ; Copyright (c) 1980 ; Dig┆ 0x0750e0…075100 69 74 61 6c 20 52 65 73 65 61 72 63 68 0d 0a 3b 09 42 6f 78 20 35 37 39 2c 20 50 61 63 69 66 69 ┆ital Research ; Box 579, Pacifi┆ 0x075100…075120 63 20 47 72 6f 76 65 0d 0a 3b 09 43 61 6c 69 66 6f 72 6e 69 61 2c 20 39 33 39 35 30 0d 0a 3b 0d ┆c Grove ; California, 93950 ; ┆ 0x075120…075140 0a 3b 0d 0a 74 72 75 65 09 65 71 75 09 30 66 66 66 66 68 09 3b 76 61 6c 75 65 20 6f 66 20 22 74 ┆ ; true equ 0ffffh ;value of "t┆ 0x075140…075160 72 75 65 22 0d 0a 66 61 6c 73 65 09 65 71 75 09 6e 6f 74 20 74 72 75 65 09 3b 22 66 61 6c 73 65 ┆rue" false equ not true ;"false┆ 0x075160…075180 22 0d 0a 74 65 73 74 09 65 71 75 09 66 61 6c 73 65 09 3b 74 72 75 65 20 69 66 20 74 65 73 74 20 ┆" test equ false ;true if test ┆ 0x075180…0751a0 62 69 6f 73 0d 0a 3b 0d 0a 09 69 66 09 74 65 73 74 0d 0a 62 69 61 73 09 65 71 75 09 30 33 34 30 ┆bios ; if test bias equ 0340┆ 0x0751a0…0751c0 30 68 09 3b 62 61 73 65 20 6f 66 20 43 43 50 20 69 6e 20 74 65 73 74 20 73 79 73 74 65 6d 0d 0a ┆0h ;base of CCP in test system ┆ 0x0751c0…0751e0 09 65 6e 64 69 66 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 62 69 61 73 09 65 71 75 09 30 ┆ endif if not test bias equ 0┆ 0x0751e0…075200 30 30 30 68 09 3b 67 65 6e 65 72 61 74 65 20 72 65 6c 6f 63 61 74 61 62 6c 65 20 63 70 2f 6d 20 ┆000h ;generate relocatable cp/m ┆ 0x075200…075220 (31, 0, 8) 6e 0d 0a 09 6a 6d 70 09 63 6f 6e 6f 75 74 0d 0a 09 6a 6d 70 09 6c 69 73 74 0d 0a 09 6a 6d 70 09 ┆n jmp conout jmp list jmp ┆ 0x075220…075240 70 75 6e 63 68 0d 0a 09 6a 6d 70 09 72 65 61 64 65 72 0d 0a 09 6a 6d 70 09 68 6f 6d 65 0d 0a 09 ┆punch jmp reader jmp home ┆ 0x075240…075260 6a 6d 70 09 73 65 6c 64 73 6b 0d 0a 09 6a 6d 70 09 73 65 74 74 72 6b 0d 0a 09 6a 6d 70 09 73 65 ┆jmp seldsk jmp settrk jmp se┆ 0x075260…075280 74 73 65 63 0d 0a 09 6a 6d 70 09 73 65 74 64 6d 61 0d 0a 09 6a 6d 70 09 72 65 61 64 0d 0a 09 6a ┆tsec jmp setdma jmp read j┆ 0x075280…0752a0 6d 70 09 77 72 69 74 65 0d 0a 09 6a 6d 70 09 6c 69 73 74 73 74 09 3b 6c 69 73 74 20 73 74 61 74 ┆mp write jmp listst ;list stat┆ 0x0752a0…0752c0 75 73 0d 0a 09 6a 6d 70 09 73 65 63 74 72 61 6e 0d 0a 3b 0d 0a 09 6d 61 63 6c 69 62 09 64 69 73 ┆us jmp sectran ; maclib dis┆ 0x0752c0…0752e0 6b 64 65 66 09 3b 6c 6f 61 64 20 74 68 65 20 64 69 73 6b 20 64 65 66 69 6e 69 74 69 6f 6e 20 6c ┆kdef ;load the disk definition l┆ 0x0752e0…075300 69 62 72 61 72 79 0d 0a 09 64 69 73 6b 73 09 34 09 3b 66 6f 75 72 20 64 69 73 6b 73 0d 0a 09 64 ┆ibrary disks 4 ;four disks d┆ 0x075300…075320 69 73 6b 64 65 66 09 30 2c 31 2c 32 36 2c 36 2c 31 30 32 34 2c 32 34 33 2c 36 34 2c 36 34 2c 6f ┆iskdef 0,1,26,6,1024,243,64,64,o┆ 0x075320…075340 66 66 73 65 74 0d 0a 09 64 69 73 6b 64 65 66 09 31 2c 30 0d 0a 09 64 69 73 6b 64 65 66 09 32 2c ┆ffset diskdef 1,0 diskdef 2,┆ 0x075340…075360 30 0d 0a 09 64 69 73 6b 64 65 66 09 33 2c 30 0d 0a 3b 09 65 6e 64 65 66 20 6f 63 63 75 72 73 20 ┆0 diskdef 3,0 ; endef occurs ┆ 0x075360…075380 61 74 20 65 6e 64 20 6f 66 20 61 73 73 65 6d 62 6c 79 0d 0a 3b 0d 0a 3b 09 65 6e 64 20 6f 66 20 ┆at end of assembly ; ; end of ┆ 0x075380…0753a0 63 6f 6e 74 72 6f 6c 6c 65 72 20 2d 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 63 6f 64 65 2c 20 74 ┆controller - independent code, t┆ 0x0753a0…0753c0 68 65 20 72 65 6d 61 69 6e 69 6e 67 20 73 75 62 72 6f 75 74 69 6e 65 73 0d 0a 3b 09 61 72 65 20 ┆he remaining subroutines ; are ┆ 0x0753c0…0753e0 74 61 69 6c 6f 72 65 64 20 74 6f 20 74 68 65 20 70 61 72 74 69 63 75 6c 61 72 20 6f 70 65 72 61 ┆tailored to the particular opera┆ 0x0753e0…075400 74 69 6e 67 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 2c 20 61 6e 64 20 6d 75 73 74 0d 0a 3b 09 62 65 ┆ting environment, and must ; be┆ 0x075400…075420 (31, 0, 9) 44 4f 53 09 3b 0d 0a 0d 0a 43 4f 4e 53 49 3a 09 4d 56 49 09 43 2c 43 4f 4e 53 49 46 3b 0d 0a 09 ┆DOS ; CONSI: MVI C,CONSIF; ┆ 0x075420…075440 4a 4d 50 09 42 44 4f 53 09 3b 0d 0a 0d 0a 45 52 52 4f 52 3a 09 4d 56 49 09 43 2c 50 52 49 4e 54 ┆JMP BDOS ; ERROR: MVI C,PRINT┆ 0x075440…075460 46 3b 20 44 49 53 4b 20 45 52 52 4f 52 3a 0d 0a 09 43 41 4c 4c 09 42 44 4f 53 09 3b 0d 0a 09 4d ┆F; DISK ERROR: CALL BDOS ; M┆ 0x075460…075480 56 49 09 43 2c 43 4f 4e 53 49 46 3b 0d 0a 09 43 41 4c 4c 09 42 44 4f 53 09 3b 0d 0a 09 43 50 49 ┆VI C,CONSIF; CALL BDOS ; CPI┆ 0x075480…0754a0 09 33 09 3b 0d 0a 09 4a 5a 09 42 4f 4f 54 09 3b 0d 0a 09 52 45 54 09 09 3b 0d 0a 0d 0a 48 45 41 ┆ 3 ; JZ BOOT ; RET ; HEA┆ 0x0754a0…0754c0 44 3a 09 44 42 09 27 52 43 37 30 30 20 20 43 50 2f 4d 20 20 42 41 43 4b 55 50 20 20 55 54 49 4c ┆D: DB 'RC700 CP/M BACKUP UTIL┆ 0x0754c0…0754e0 49 54 59 27 2c 31 33 2c 33 36 0d 0a 53 44 53 50 45 43 3a 09 44 42 09 31 33 2c 31 30 2c 31 30 2c ┆ITY',13,36 SDSPEC: DB 13,10,10,┆ 0x0754e0…075500 27 53 4f 55 52 43 45 20 44 52 49 56 45 20 28 41 20 4f 52 20 42 29 20 3f 20 27 2c 33 36 0d 0a 44 ┆'SOURCE DRIVE (A OR B) ? ',36 D┆ 0x075500…075520 44 53 50 45 43 3a 09 44 42 09 31 33 2c 31 30 2c 31 30 2c 27 44 45 53 54 49 4e 41 54 49 4f 4e 20 ┆DSPEC: DB 13,10,10,'DESTINATION ┆ 0x075520…075540 44 52 49 56 45 20 28 41 20 4f 52 20 42 29 20 3f 20 27 2c 33 36 0d 0a 4e 4f 54 4f 4b 3a 09 44 42 ┆DRIVE (A OR B) ? ',36 NOTOK: DB┆ 0x075540…075560 09 31 33 2c 31 30 2c 31 30 2c 27 42 41 43 4b 55 50 20 4e 4f 54 20 50 4f 53 53 49 42 4c 45 27 2c ┆ 13,10,10,'BACKUP NOT POSSIBLE',┆ 0x075560…075580 33 36 0d 0a 4d 53 44 49 53 4b 3a 20 44 42 09 31 33 2c 31 30 2c 27 49 4e 53 45 52 54 20 53 4f 55 ┆36 MSDISK: DB 13,10,'INSERT SOU┆ 0x075580…0755a0 52 43 45 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 54 55 52 4e 3e 27 2c 33 36 0d 0a ┆RCE DISK AND TYPE <RETURN>',36 ┆ 0x0755a0…0755c0 4d 44 44 49 53 4b 3a 20 44 42 09 31 33 2c 31 30 2c 27 49 4e 53 45 52 54 20 44 45 53 54 49 4e 41 ┆MDDISK: DB 13,10,'INSERT DESTINA┆ 0x0755c0…0755e0 54 49 4f 4e 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 54 55 52 4e 3e 27 2c 33 36 0d ┆TION DISK AND TYPE <RETURN>',36 ┆ 0x0755e0…075600 0a 42 41 44 53 3a 09 44 42 09 31 33 2c 31 30 2c 27 42 41 44 20 53 45 43 54 4f 52 20 4f 4e 20 53 ┆ BADS: DB 13,10,'BAD SECTOR ON S┆ 0x075600…075620 (31, 0, 10) e1 22 9f 04 31 ca 04 11 61 03 cd 47 03 11 7f 03 cd 47 03 cd 4c 03 0e 00 fe 41 ca 23 01 fe 42 c2 ┆ " 1 a G G L A # B ┆ 0x075620…075640 0d 01 0c 79 32 a4 04 11 9b 03 cd 47 03 cd 4c 03 0e 00 fe 41 ca 3d 01 fe 42 c2 27 01 0c 79 32 a5 ┆ y2 G L A = B ' y2 ┆ 0x075640…075660 04 2a 01 00 11 34 00 19 46 23 4e 21 a4 04 be 3e 00 ca 78 01 78 b9 11 bc 03 c4 3e 03 c5 11 9c 04 ┆ * 4 F#N! > x x > ┆ 0x075660…075680 cd 47 03 11 d3 03 cd 47 03 cd 4c 03 11 fa 03 cd 47 03 cd 4c 03 c1 3e 01 32 a6 04 79 fe 00 c2 93 ┆ G G L G L > 2 y ┆ 0x075680…0756a0 01 3e 00 32 a1 04 3e 4c 32 a2 04 3e 1a 32 a3 04 c3 c1 01 fe 08 c2 aa 01 3e 01 32 a1 04 3e 3d 32 ┆ > 2 >L2 > 2 > 2 >=2┆ 0x0756a0…0756c0 a2 04 3e 78 32 a3 04 c3 c1 01 fe 10 11 bc 03 c4 3e 03 3e 01 32 a1 04 3e 1f 32 a2 04 3e 48 32 a3 ┆ >x2 > > 2 > 2 >H2 ┆ 0x0756c0…0756e0 04 3a a1 04 32 a7 04 3e 00 32 a8 04 3a a6 04 b7 c2 dc 01 11 d3 03 cd 47 03 cd 4c 03 3a a4 04 cd ┆ : 2 > 2 : G L : ┆ 0x0756e0…075700 05 03 21 68 01 22 a9 04 11 cb 04 d5 cd 22 03 3a a7 04 4f cd 0e 03 3a a8 04 4f 3a a7 04 47 c5 cd ┆ !h " " : O : O: G ┆ 0x075700…075720 18 03 cd 2c 03 11 26 04 b7 c4 51 03 c1 0c 3a a3 04 b9 c2 25 02 3a a2 04 b8 ca 49 02 04 0e 00 c5 ┆ , & Q : % : I ┆ 0x075720…075740 48 cd 0e 03 c1 c5 cd 18 03 2a a9 04 2b 22 a9 04 c1 7c b7 c2 3b 02 7d b7 ca 49 02 d1 21 80 00 19 ┆H * +" ø ; å I ! ┆ 0x075740…075760 eb d5 c5 cd 22 03 c3 02 02 d1 3a a6 04 b7 c2 5a 02 11 fa 03 cd 47 03 cd 4c 03 3a a5 04 cd 05 03 ┆ " : Z G L : ┆ 0x075760…075780 21 68 01 22 a9 04 11 cb 04 d5 cd 22 03 3a a7 04 4f cd 0e 03 3a a8 04 4f 3a a7 04 47 c5 cd 18 03 ┆!h " " : O : O: G ┆ 0x075780…0757a0 cd 34 03 11 42 04 b7 c4 51 03 c1 0c 3a a3 04 b9 c2 a3 02 3a a2 04 b8 ca d6 02 04 0e 00 c5 48 cd ┆ 4 B Q : : H ┆ 0x0757a0…0757c0 0e 03 c1 c5 cd 18 03 2a a9 04 2b 22 a9 04 c1 7c b7 c2 b9 02 7d b7 ca c7 02 d1 21 80 00 19 eb d5 ┆ * +" ø å ! ┆ 0x0757c0…0757e0 c5 cd 22 03 c3 80 02 78 32 a7 04 79 32 a8 04 d1 cd eb 02 c3 cc 01 cd eb 02 11 8a 04 cd 47 03 11 ┆ " x2 y2 G ┆ 0x0757e0…075800 63 04 cd 47 03 cd 4c 03 c3 00 00 3a a7 04 4f 0d cd 0e 03 3a a8 04 4f cd 18 03 cd 2c 03 11 42 04 ┆c G L : O : O , B ┆ 0x075800…075820 (31, 0, 11) 20 46 54 52 4b 3a 09 44 42 09 30 0d 0a 20 30 34 41 32 20 30 30 20 20 20 20 20 20 20 20 4c 54 52 ┆ FTRK: DB 0 04A2 00 LTR┆ 0x075820…075840 4b 3a 09 44 42 09 30 0d 0a 20 30 34 41 33 20 30 30 20 20 20 20 20 20 20 20 53 50 54 3a 09 44 42 ┆K: DB 0 04A3 00 SPT: DB┆ 0x075840…075860 09 30 0d 0a 20 30 34 41 34 20 30 30 20 20 20 20 20 20 20 20 53 44 52 49 56 3a 09 44 42 09 30 0d ┆ 0 04A4 00 SDRIV: DB 0 ┆ 0x075860…075880 0a 20 30 34 41 35 20 30 30 20 20 20 20 20 20 20 20 44 44 52 49 56 3a 09 44 42 09 30 0d 0a 20 30 ┆ 04A5 00 DDRIV: DB 0 0┆ 0x075880…0758a0 34 41 36 20 30 30 20 20 20 20 20 20 20 20 44 46 4c 41 47 3a 09 44 42 09 30 0d 0a 20 20 20 20 20 ┆4A6 00 DFLAG: DB 0 ┆ 0x0758a0…0758c0 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 34 41 37 20 30 30 20 20 20 20 20 20 20 20 43 55 52 ┆ 04A7 00 CUR┆ 0x0758c0…0758e0 54 52 4b 3a 09 44 42 09 30 0d 0a 20 30 34 41 38 20 30 30 20 20 20 20 20 20 20 20 43 55 52 53 45 ┆TRK: DB 0 04A8 00 CURSE┆ 0x0758e0…075900 43 3a 09 44 42 09 30 0d 0a 20 30 34 41 39 20 30 30 30 30 20 20 20 20 20 20 53 45 43 43 4e 54 3a ┆C: DB 0 04A9 0000 SECCNT:┆ 0x075900…075920 09 44 57 09 30 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 34 41 42 20 20 ┆ DW 0 04AB ┆ 0x075920…075940 20 20 20 20 20 20 20 20 20 09 44 53 09 33 31 0d 0a 20 30 34 43 41 20 20 20 20 20 20 20 20 20 20 ┆ DS 31 04CA ┆ 0x075940…075960 20 53 54 41 43 4b 3a 09 44 53 09 31 09 3b 20 4c 4f 43 41 4c 20 53 54 41 43 4b 0d 0a 20 20 20 20 ┆ STACK: DS 1 ; LOCAL STACK ┆ 0x075960…075980 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 34 43 42 20 30 30 30 30 20 20 20 20 20 20 42 55 ┆ 04CB 0000 BU┆ 0x075980…0759a0 46 3a 09 44 57 09 30 09 3b 20 52 45 41 44 2f 57 52 49 54 45 20 42 55 46 46 45 52 0d 0a 20 20 20 ┆F: DW 0 ; READ/WRITE BUFFER ┆ 0x0759a0…0759c0 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 30 34 43 44 20 20 20 20 20 20 20 20 20 20 20 09 ┆ 04CD ┆ 0x0759c0…0759e0 45 4e 44 09 31 30 30 48 09 3b 0d 0a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆END 100H ; ┆ 0x0759e0…075a00 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆ ┆ 0x075a00…075a20 (31, 0, 12) 00 00 00 20 43 4f 50 59 52 49 47 48 54 20 28 43 29 20 31 39 38 31 2c 20 4d 49 43 52 4f 50 52 4f ┆ COPYRIGHT (C) 1981, MICROPRO┆ 0x075a20…075a40 20 49 4e 54 45 52 4e 41 54 49 4f 4e 41 4c 2c 20 0d 0a 20 53 41 4e 20 52 41 46 41 45 4c 2c 20 43 ┆ INTERNATIONAL, SAN RAFAEL, C┆ 0x075a40…075a60 41 4c 49 46 4f 52 4e 49 41 2c 20 55 53 41 2e 20 0d 0a 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 ┆ALIFORNIA, USA. SERIAL NUMBER┆ 0x075a60…075a80 20 4d 50 38 33 30 38 55 51 20 0d 0a 20 41 4c 4c 20 52 49 47 48 54 53 20 52 45 53 45 52 56 45 44 ┆ MP8308UQ ALL RIGHTS RESERVED┆ 0x075a80…075aa0 2e 20 0d 0a 0a 20 57 6f 72 64 53 74 61 72 20 72 65 6c 65 61 73 65 20 32 2e 32 36 20 6f 76 65 72 ┆. WordStar release 2.26 over┆ 0x075aa0…075ac0 6c 61 79 20 66 69 6c 65 20 6e 75 6d 62 65 72 20 32 2e 20 20 0d 0a 20 4f 76 65 72 6c 61 79 73 20 ┆lay file number 2. Overlays ┆ 0x075ac0…075ae0 66 6f 72 20 4d 65 72 67 65 2d 50 72 69 6e 74 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆for Merge-Print. ┆ 0x075ae0…075b00 20 0d 0a 1a 20 4e 4f 53 45 59 2c 20 41 52 45 4e 27 54 20 59 4f 55 3f 20 20 0d 0a 1a 00 00 01 00 ┆ NOSEY, AREN'T YOU? ┆ 0x075b00…075b20 9a 0d 12 14 00 00 00 00 3e 61 21 00 00 c3 45 45 c3 45 45 c3 45 45 00 00 c9 c3 46 45 c3 46 45 c3 ┆ >a! EE EE EE FE FE ┆ 0x075b20…075b40 fb 4c c3 7c 47 c3 d3 47 c3 a6 45 1a 00 04 00 03 00 00 3f 20 00 00 00 00 00 00 00 00 00 00 00 00 ┆ L øG G E ? ┆ 0x075b40…075b60 00 00 00 00 00 c9 af 32 14 61 32 39 61 cd 82 33 10 03 2a 00 38 7d 2f b4 c2 13 46 cd db 45 af 32 ┆ 2 a29a 3 * 8å/ F E 2┆ 0x075b60…075b80 72 38 cd 27 31 cd 6e 0b 2a 00 38 7d 2f b4 c2 13 46 cd 7b 1c f5 c4 85 45 f1 c2 52 45 cd 4a 46 c2 ┆r8 '1 n * 8å/ F æ E RE JF ┆ 0x075b80…075ba0 52 45 c3 65 45 cd b1 1b 32 72 38 cd e2 17 e6 3f 47 cd 2c 27 2a 7b 06 7e b7 c8 b8 23 23 5e 23 56 ┆RE eE 2r8 ?G ,'*æ ü ##^#V┆ 0x075ba0…075bc0 23 c2 97 45 eb e9 3e ff 32 4f 3c 21 df 39 cd 27 46 cd c4 45 3e 00 32 4f 3c 32 01 38 c0 2f 32 50 ┆# E > 2O<! 9 'F E> 2O<2 8 /2P┆ 0x075bc0…075be0 3c c3 d2 12 cd b1 1b cd 2c 27 cd d5 17 e5 21 86 08 be ca d7 45 23 7e e1 c3 a5 1e 3a 14 61 b7 c0 ┆< ,' ! E#ü : a ┆ 0x075be0…075c00 21 00 00 22 9d 38 22 9f 38 cd 08 25 cd c2 24 a5 3a 3a 99 38 32 9b 38 21 39 61 be da ff 45 77 7e ┆! " 8" 8 % $ :: 82 8!9a Ewü┆ 0x075c00…075c20 (31, 0, 13) 4f 55 52 43 45 20 44 49 53 4b 27 2c 33 36 0d 0a 42 41 44 44 3a 09 44 42 09 31 33 2c 31 30 2c 27 ┆OURCE DISK',36 BADD: DB 13,10,'┆ 0x075c20…075c40 42 41 44 20 53 45 43 54 4f 52 20 4f 4e 20 44 45 53 54 49 4e 41 54 49 4f 4e 20 44 49 53 4b 27 2c ┆BAD SECTOR ON DESTINATION DISK',┆ 0x075c40…075c60 33 36 0d 0a 4d 53 59 53 44 3a 09 44 42 09 31 33 2c 31 30 2c 27 49 4e 53 45 52 54 20 53 59 53 54 ┆36 MSYSD: DB 13,10,'INSERT SYST┆ 0x075c60…075c80 45 4d 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 54 55 52 4e 3e 27 2c 33 36 0d 0a 4f ┆EM DISK AND TYPE <RETURN>',36 O┆ 0x075c80…075ca0 4b 3a 09 44 42 09 31 33 2c 31 30 2c 27 42 41 43 4b 55 50 20 43 4f 4d 50 4c 45 54 45 27 2c 33 36 ┆K: DB 13,10,'BACKUP COMPLETE',36┆ 0x075ca0…075cc0 0d 0a 43 52 4c 46 3a 09 44 42 09 31 33 2c 31 30 2c 33 36 0d 0a 0d 0a 43 43 50 52 45 54 3a 09 44 ┆ CRLF: DB 13,10,36 CCPRET: D┆ 0x075cc0…075ce0 57 09 30 0d 0a 0d 0a 46 54 52 4b 3a 09 44 42 09 30 0d 0a 4c 54 52 4b 3a 09 44 42 09 30 0d 0a 53 ┆W 0 FTRK: DB 0 LTRK: DB 0 S┆ 0x075ce0…075d00 50 54 3a 09 44 42 09 30 0d 0a 53 44 52 49 56 3a 09 44 42 09 30 0d 0a 44 44 52 49 56 3a 09 44 42 ┆PT: DB 0 SDRIV: DB 0 DDRIV: DB┆ 0x075d00…075d20 09 30 0d 0a 44 46 4c 41 47 3a 09 44 42 09 30 0d 0a 0d 0a 43 55 52 54 52 4b 3a 09 44 42 09 30 0d ┆ 0 DFLAG: DB 0 CURTRK: DB 0 ┆ 0x075d20…075d40 0a 43 55 52 53 45 43 3a 09 44 42 09 30 0d 0a 53 45 43 43 4e 54 3a 09 44 57 09 30 0d 0a 0d 0a 09 ┆ CURSEC: DB 0 SECCNT: DW 0 ┆ 0x075d40…075d60 44 53 09 33 31 0d 0a 53 54 41 43 4b 3a 09 44 53 09 31 09 3b 20 4c 4f 43 41 4c 20 53 54 41 43 4b ┆DS 31 STACK: DS 1 ; LOCAL STACK┆ 0x075d60…075d80 0d 0a 0d 0a 42 55 46 3a 09 44 57 09 30 09 3b 20 52 45 41 44 2f 57 52 49 54 45 20 42 55 46 46 45 ┆ BUF: DW 0 ; READ/WRITE BUFFE┆ 0x075d80…075da0 52 0d 0a 0d 0a 09 45 4e 44 09 31 30 30 48 09 3b 0d 0a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆R END 100H ; ┆ 0x075da0…075dc0 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆ ┆ […0x2…] 0x075e00…075e20 (31, 0, 14) b7 c4 51 03 c9 4f 2a 01 00 11 18 00 19 e9 2a 01 00 11 1b 00 19 06 00 e9 2a 01 00 11 1e 00 19 06 ┆ Q O* * * ┆ 0x075e20…075e40 00 e9 2a 01 00 42 4b 11 21 00 19 e9 2a 01 00 11 24 00 19 e9 2a 01 00 11 27 00 19 0e 02 e9 0e 09 ┆ * BK ! * $ * ' ┆ 0x075e40…075e60 cd 05 00 2a 9f 04 e9 0e 09 c3 05 00 0e 01 c3 05 00 0e 09 cd 05 00 0e 01 cd 05 00 fe 03 ca 00 00 ┆ * ┆ 0x075e60…075e80 c9 52 43 37 30 30 20 20 43 50 2f 4d 20 20 42 41 43 4b 55 50 20 20 55 54 49 4c 49 54 59 0d 24 0d ┆ RC700 CP/M BACKUP UTILITY $ ┆ 0x075e80…075ea0 0a 0a 53 4f 55 52 43 45 20 44 52 49 56 45 20 28 41 20 4f 52 20 42 29 20 3f 20 24 0d 0a 0a 44 45 ┆ SOURCE DRIVE (A OR B) ? $ DE┆ 0x075ea0…075ec0 53 54 49 4e 41 54 49 4f 4e 20 44 52 49 56 45 20 28 41 20 4f 52 20 42 29 20 3f 20 24 0d 0a 0a 42 ┆STINATION DRIVE (A OR B) ? $ B┆ 0x075ec0…075ee0 41 43 4b 55 50 20 4e 4f 54 20 50 4f 53 53 49 42 4c 45 24 0d 0a 49 4e 53 45 52 54 20 53 4f 55 52 ┆ACKUP NOT POSSIBLE$ INSERT SOUR┆ 0x075ee0…075f00 43 45 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 54 55 52 4e 3e 24 0d 0a 49 4e 53 45 ┆CE DISK AND TYPE <RETURN>$ INSE┆ 0x075f00…075f20 52 54 20 44 45 53 54 49 4e 41 54 49 4f 4e 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 ┆RT DESTINATION DISK AND TYPE <RE┆ 0x075f20…075f40 54 55 52 4e 3e 24 0d 0a 42 41 44 20 53 45 43 54 4f 52 20 4f 4e 20 53 4f 55 52 43 45 20 44 49 53 ┆TURN>$ BAD SECTOR ON SOURCE DIS┆ 0x075f40…075f60 4b 24 0d 0a 42 41 44 20 53 45 43 54 4f 52 20 4f 4e 20 44 45 53 54 49 4e 41 54 49 4f 4e 20 44 49 ┆K$ BAD SECTOR ON DESTINATION DI┆ 0x075f60…075f80 53 4b 24 0d 0a 49 4e 53 45 52 54 20 53 59 53 54 45 4d 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 ┆SK$ INSERT SYSTEM DISK AND TYPE┆ 0x075f80…075fa0 20 3c 52 45 54 55 52 4e 3e 24 0d 0a 42 41 43 4b 55 50 20 43 4f 4d 50 4c 45 54 45 24 0d 0a 24 00 ┆ <RETURN>$ BACKUP COMPLETE$ $ ┆ 0x075fa0…075fc0 00 00 00 00 00 00 00 00 00 00 00 52 49 56 45 20 28 41 20 4f 52 20 42 29 20 3f 20 24 0d 0a 0a 42 ┆ RIVE (A OR B) ? $ B┆ 0x075fc0…075fe0 41 43 4b 55 50 20 4e 4f 54 20 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ACKUP NOT P ┆ 0x075fe0…076000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x076000…076020 (31, 0, 15) 61 72 6d 20 73 74 61 72 74 20 28 73 61 76 65 20 69 2f 6f 20 62 79 74 65 29 0d 0a 3b 09 28 62 6f ┆arm start (save i/o byte) ; (bo┆ 0x076020…076040 6f 74 20 61 6e 64 20 77 62 6f 6f 74 20 61 72 65 20 74 68 65 20 73 61 6d 65 20 66 6f 72 20 6d 64 ┆ot and wboot are the same for md┆ 0x076040…076060 73 29 0d 0a 3b 09 63 6f 6e 73 74 09 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 0d 0a 3b 09 09 72 ┆s) ; const console status ; r┆ 0x076060…076080 65 67 2d 61 20 3d 20 30 30 20 69 66 20 6e 6f 20 63 68 61 72 61 63 74 65 72 20 72 65 61 64 79 0d ┆eg-a = 00 if no character ready ┆ 0x076080…0760a0 0a 3b 09 09 72 65 67 2d 61 20 3d 20 66 66 20 69 66 20 63 68 61 72 61 63 74 65 72 20 72 65 61 64 ┆ ; reg-a = ff if character read┆ 0x0760a0…0760c0 79 0d 0a 3b 09 63 6f 6e 69 6e 09 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 ┆y ; conin console character in ┆ 0x0760c0…0760e0 28 72 65 73 75 6c 74 20 69 6e 20 72 65 67 2d 61 29 0d 0a 3b 09 63 6f 6e 6f 75 74 09 63 6f 6e 73 ┆(result in reg-a) ; conout cons┆ 0x0760e0…076100 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 ┆ole character out (char in reg-c┆ 0x076100…076120 29 0d 0a 3b 09 6c 69 73 74 09 6c 69 73 74 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d ┆) ; list list out (char in reg-┆ 0x076120…076140 63 29 0d 0a 3b 09 70 75 6e 63 68 09 70 75 6e 63 68 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 ┆c) ; punch punch out (char in r┆ 0x076140…076160 65 67 2d 63 29 0d 0a 3b 09 72 65 61 64 65 72 09 70 61 70 65 72 20 74 61 70 65 20 72 65 61 64 65 ┆eg-c) ; reader paper tape reade┆ 0x076160…076180 72 20 69 6e 20 28 72 65 73 75 6c 74 20 74 6f 20 72 65 67 2d 61 29 0d 0a 3b 09 68 6f 6d 65 09 6d ┆r in (result to reg-a) ; home m┆ 0x076180…0761a0 6f 76 65 20 74 6f 20 74 72 61 63 6b 20 30 30 0d 0a 3b 0d 0a 3b 09 28 74 68 65 20 66 6f 6c 6c 6f ┆ove to track 00 ; ; (the follo┆ 0x0761a0…0761c0 77 69 6e 67 20 63 61 6c 6c 73 20 73 65 74 2d 75 70 20 74 68 65 20 69 6f 20 70 61 72 61 6d 65 74 ┆wing calls set-up the io paramet┆ 0x0761c0…0761e0 65 72 20 62 6c 6f 63 6b 20 66 6f 72 20 74 68 65 0d 0a 3b 09 6d 64 73 2c 20 77 68 69 63 68 20 69 ┆er block for the ; mds, which i┆ 0x0761e0…076200 73 20 75 73 65 64 20 74 6f 20 70 65 72 66 6f 72 6d 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 ┆s used to perform subsequent rea┆ 0x076200…076220 (31, 1, 1) cd b0 32 cd 6d 21 2d 22 69 38 3e ff 32 95 38 32 14 61 c9 3a 9b 38 21 39 61 be d0 21 a7 3a cd 27 ┆ 2 m!-"i8> 2 82 a : 8!9a ! : '┆ 0x076220…076240 46 cd b1 1b c3 a5 1e af 32 14 61 af cd 43 21 cd d0 1a 2a 1d 37 e5 cd 40 1e 3a 1d 37 cd 78 21 21 ┆F 2 a C! * 7 @ : 7 x!!┆ 0x076240…076260 9b 38 be da 36 46 e1 c3 4f 21 3a 8f 3d e6 4b c8 47 21 4f 3c 7e b7 ca 72 46 cd 28 13 fa 6a 46 ca ┆ 8 6F O!: = K G!O<ü rF ( jF ┆ 0x076260…076280 6a 46 3a 37 3d fe c0 da 59 46 36 00 f6 ff 32 01 38 c9 78 e6 bf b8 ca 88 46 f5 3a 9b 38 32 99 38 ┆jF:7= YF6 2 8 x F : 82 8┆ 0x076280…0762a0 32 39 61 f1 b7 ca cc 46 fe 08 ca bc 46 3d ca c8 46 cd d2 46 3a 1e 37 21 90 3d 86 c6 03 21 49 02 ┆29a F F= F F: 7! = !I ┆ 0x0762a0…0762c0 be d4 e4 46 3a 90 3d 47 04 3d fe c8 da b1 46 06 c9 2a 3c 61 cd 5d 23 3e 04 c3 cc 46 cd d2 46 cd ┆ F: =G = F *<a Å#> F F ┆ 0x0762c0…0762e0 b1 1b cd 6d 1f c3 cb 46 cd d2 46 af 32 8f 3d f6 ff c9 cd fe 46 2a 3a 61 7e b7 ca e7 46 cd 24 47 ┆ m F F 2 = F*:aü F $G┆ 0x0762e0…076300 23 c3 d8 46 cd 40 1e cd 0e 47 cd 31 47 2a 1d 37 e5 cd c5 21 2c 26 00 cd c5 21 e1 c3 4f 21 3a 39 ┆# F @ G 1G* 7 !,& ! O!:9┆ 0x076300…076320 61 3c 21 99 38 be d2 0a 47 7e 3d c3 43 21 3a 1d 37 c6 01 21 48 02 be d8 2a 1d 37 e5 cd 3f 47 e1 ┆a<! 8 Gü= C!: 7 !H * 7 ?G ┆ 0x076320…076340 2d c3 4f 21 e5 f5 cd 0e 47 f1 cd 6d 1f cd 0e 47 e1 3a 1d 37 3c cd 78 21 32 39 61 3c c3 b0 32 3a ┆- O! G m G : 7< x!29a< 2:┆ 0x076340…076360 9b 38 57 3a 20 37 b7 c2 6f 47 3a 74 02 b7 c2 60 47 af 32 14 61 cd be 29 cd b6 22 3e 0a c3 6d 1f ┆ 8W: 7 oG:t `G 2 a ) "> m ┆ 0x076360…076380 cd 6f 47 6a 26 00 cd 4f 21 21 74 02 c3 7f 21 3a 6b 38 82 57 d5 cd 41 23 d1 c3 48 20 13 1a 1b e6 ┆ oGj& O!!t !:k8 W A# H ┆ 0x076380…0763a0 7f 21 94 03 be 21 95 47 c8 21 96 47 cd 68 25 ca be 0c fa be 0c c9 50 46 ba 48 4f 4a c6 48 49 4a ┆ ! ! G ! G h% PF HOJ HIJ┆ 0x0763a0…0763c0 c0 48 4c 4d e5 48 4c 53 f3 48 52 4d f9 48 43 53 24 49 44 4d 2a 49 53 56 37 49 41 56 4c 49 44 46 ┆ HLM HLS HRM HCS$IDM*ISV7IAVLIDF┆ 0x0763c0…0763e0 06 48 52 56 8c 4b 49 47 95 47 46 49 f2 47 52 50 aa 48 00 21 a9 3a cd ba 49 cd b0 4a 2a fb 3c 2b ┆ HRV KIG GFI GRP H ! : I J* <+┆ 0x0763e0…076400 46 2b 4e 2b 56 2b 5e 1b 03 cd 65 4a cd b5 4a c3 96 12 cd 75 48 cd 90 48 cd 18 0e c5 d5 cd 71 51 ┆F+N+V+^ eJ J uH H qQ┆ 0x076400…076420 (31, 1, 2) 04 cd ec 53 3e ff 06 05 c3 ec 53 3a 7b 5f b7 ca 00 4d cd ec 4e cd 40 4f 3a 9b 5f b7 3a 87 5f 21 ┆ S> S:æ_ M N @O: _ : _!┆ 0x076420…076440 88 5f c2 2a 4e 21 82 5f c6 06 be dc 73 4d cd 5c 4f 21 00 00 22 79 5f 22 7c 5f af 32 86 5f 21 86 ┆ _ *N! _ sM ØO! "y_"ø_ 2 _! ┆ 0x076440…076460 5f 34 cd 83 50 fe 0a cc 83 50 7b fe 8d ca 3e 4e 21 85 5f 36 00 7b fe a0 c2 65 4e 34 cd 62 50 cd ┆_4 P Pæ >N! _6 æ eN4 bP ┆ 0x076460…076480 83 50 c3 55 4e 7b fe 8d ca 3e 4e cd a6 17 c2 7a 4e cd 62 50 cd 83 50 c3 65 4e fe 1a ca a0 4d cd ┆ P UNæ >N zN bP P eN M ┆ 0x076480…0764a0 87 17 ca 36 4d 3a 85 5f 06 02 cd ec 53 3a 86 5f 06 03 cd ec 53 3a 87 5f 32 88 5f cd ff 4d 3e ff ┆ 6M: _ S: _ S: _2 _ M> ┆ 0x0764a0…0764c0 32 78 5f 21 7f 5f 34 21 22 61 34 cd 73 4d d5 2a 1f 61 24 24 24 eb 2a 27 61 cd 68 17 d1 d2 c9 4e ┆2x_! _4!"a4 sM * a$$$ *'a h N┆ 0x0764c0…0764e0 3a 7e 5f 21 80 5f a6 fe 13 d4 cf 4e c3 47 4d cd 29 54 3a 87 5f 32 81 5f 32 82 5f 21 80 5f 7e fe ┆:ü_! _ N GM )T: _2 _2 _! _ü ┆ 0x0764e0…076500 f6 f2 e6 4e 36 f6 fe 06 f8 36 06 c9 3a 7f 5f b7 c2 f8 4e 3a 7e 5f b7 c0 3a 87 5f 21 88 5f be ca ┆ N6 6 : _ N:ü_ : _! _ ┆ 0x076500…076520 91 4d cd 2c 4f d8 cd 23 4f 3a 87 5f 21 88 5f 96 c6 03 fe 07 dc 23 4f 3a 87 5f 21 82 5f 96 c6 03 ┆ M ,O #O: _! _ #O: _! _ ┆ 0x076520…076540 fe 07 d0 21 80 5f 7e fe 80 c8 35 c9 3a 87 5f c6 06 21 82 5f be d8 3a 81 5f c6 06 21 87 5f be c9 ┆ ! _ü 5 : _ ! _ : _ ! _ ┆ 0x076540…076560 3a a9 5f b7 ca 4d 4f 3a ae 5f c3 58 4f 3a 80 5f b7 c8 3e ff f2 58 4f af 32 9b 5f c9 3a 7f 5f b7 ┆: _ MO: _ XO: _ > XO 2 _ : _ ┆ 0x076560…076580 c2 6c 4f 3a 87 5f 32 81 5f 32 82 5f 3a 9b 5f b7 c2 be 4f cd 3a 50 d2 93 4f 2a 79 5f cd 30 53 ca ┆ lO: _2 _2 _: _ O :P O*y_ 0S ┆ 0x076580…0765a0 93 4f 3d 21 82 5f be da a7 4f d6 06 d2 90 4f af c3 c5 4f cd 2c 4f d2 be 4f cd 3a 50 d4 cc 4f f5 ┆ O=! _ O O O ,O O :P O ┆ 0x0765a0…0765c0 d4 23 4f f1 d2 af 4f 3a 7f 5f fe 02 d2 cf 4e cd be 4f 3a 82 5f d6 04 21 81 5f be d8 77 c9 cd 3a ┆ #O O: _ N O: _ ! _ w :┆ 0x0765c0…0765e0 50 77 3a 87 5f 21 81 5f be d0 77 c9 3a 7e 5f b7 37 c0 cd 46 50 e5 3a 22 61 c6 03 21 7f 5f be d2 ┆Pw: _! _ w :ü_ 7 FP :"a ! _ ┆ 0x0765e0…076600 04 50 3a 83 5f 21 87 5f 96 da 04 50 fe 03 d2 04 50 e1 3a 81 5f 85 e5 21 83 5f be 7e da 04 50 e1 ┆ P: _! _ P P : _ ! _ ü P ┆ 0x076600…076620 (31, 1, 3) fe 0c c8 fe 1a c8 0c 71 c9 d5 21 9f 5f 11 93 5f 01 05 00 cd c2 16 01 93 5f 11 8e 5f 21 a4 5f 3e ┆ q ! _ _ _ _! _>┆ 0x076620…076640 05 f5 0a b7 7e ca 29 56 12 03 13 23 f1 3d c2 21 56 d1 d5 01 93 5f 11 8e 5f 21 98 5f 3e 05 f5 0a ┆ ü )V # = !V _ _! _> ┆ 0x076640…076660 b7 7e c2 46 56 12 03 13 23 f1 3d c2 3e 56 21 8e 5f 7e fe ef da 59 56 36 ef 46 23 7e fe 09 da 63 ┆ ü FV # = >V! _ü YV6 F#ü c┆ 0x076660…076680 56 36 ef 04 04 04 23 7e b8 d2 6d 56 70 fe f2 da 74 56 36 f2 d1 c9 e5 d5 2a 2d 61 1b 1b 1b eb 2a ┆V6 #ü mVp tV6 *-a *┆ 0x076680…0766a0 2f 61 cd 68 17 dc 92 56 d1 73 23 36 00 22 2f 61 e1 c9 cd ae 56 d0 3e ff 32 9d 5f cd ae 56 d0 36 ┆/a h V s#6 "/a V > 2 _ V 6┆ 0x0766a0…0766c0 0d 23 36 0a 23 36 00 cd ae 56 d0 2b 2b c9 cd 58 5a 2a 2f 61 c3 68 17 c5 d5 e5 7b 01 01 00 f5 cd ┆ #6 #6 V ++ XZ*/a h æ ┆ 0x0766c0…0766e0 1d 0c f1 fe 1a c2 5b 1a 2a 12 61 23 22 12 61 eb 2a f2 3c cd 68 17 d2 5b 1a 2a 03 3d 7c b5 3e 0d ┆ Æ * a#" a * < h Æ * =ø > ┆ 0x0766e0…076700 c4 14 11 21 06 3d 01 87 0f 7e b7 0a c4 14 11 23 03 0a 3c c2 e9 56 cd ba 49 cd 84 12 c2 f9 56 cd ┆ ! = ü # < V I V ┆ 0x076700…076720 13 6c af 32 dd 60 32 d8 60 2a 35 61 22 37 61 21 f7 3c 7e 36 00 b7 c2 1c 57 32 38 3d cd 80 51 c3 ┆ l 2 `2 `*5a"7a! <ü6 W28= Q ┆ 0x076720…076740 5b 1a ff 21 d8 5f 7e b7 ca 3b 57 35 2a d9 5f 5e 23 22 d9 5f c0 cd ea 57 c3 78 57 3a e2 5f b7 ca ┆Æ ! _ü ;W5* _^#" _ W xW: _ ┆ 0x076740…076760 75 57 2a df 5f 5e 3a e1 5f b7 ca 5f 57 3e ff 32 9c 5f 7b e6 7f fe 0e c2 5f 57 1e 0d 36 0a c9 23 ┆uW* _^: _ _W> 2 _æ _W 6 #┆ 0x076760…076780 22 df 5f 21 e2 5f 35 c0 21 e1 5f 7e 36 00 b7 c2 86 57 c3 78 57 cd 0e 59 3a dd 5f b7 7b cc a6 17 ┆" _! _5 ! _ü6 W xW Y: _ æ ┆ 0x076780…0767a0 ca 92 57 cd b5 57 21 dd 5f 36 ff 7b cd 67 5e c0 34 c9 cd ea 57 cd a6 57 cd f8 57 e5 e1 3e ff 32 ┆ W W! _6 æ g^ 4 W W W > 2┆ 0x0767a0…0767c0 dd 5f c3 23 57 e9 cd f8 57 d2 9c 57 cd 0e 59 cd a6 17 ca a6 57 7b e6 7f 21 db 03 be e1 c2 a5 57 ┆ _ #W W W Y Wæ ! W┆ 0x0767c0…0767e0 cd 08 58 3a e2 5f 21 dd 5f b6 77 c2 23 57 cd ac 57 cd 67 5e c2 98 57 cd ea 57 7b e6 7f fe 0d cc ┆ X: _! _ w #W W g^ W Wæ ┆ 0x0767e0…076800 0e 59 fe 0a cc 0e 59 c3 78 57 2a 29 61 22 db 5f 22 d9 5f af 32 d8 5f c9 2a db 5f 73 23 22 db 5f ┆ Y Y xW*)a" _" _ 2 _ * _s#" _┆ 0x076800…076820 (31, 1, 4) b7 ca 0c 5e 35 21 c6 5f 34 c3 1b 5e 2a cd 5f 2b 7e f6 80 77 e1 32 b2 5f 06 01 e5 21 c1 5f 7e 70 ┆ ^5! _4 ^* _+ü w 2 _ ! _üp┆ 0x076820…076840 23 86 77 7a cd b2 17 78 ca 2c 5e af 4f 23 7e 71 23 86 77 7a e6 7f 32 d3 5f 2a b0 5f fe 1e c2 42 ┆# wz x ,^ O#üq# wz 2 _* _ B┆ 0x076840…076860 5e 23 22 cb 5f 21 c5 5f 34 2a cd 5f 22 cf 5f e1 c9 e6 7f e5 21 b0 5f cd 94 1d e1 c9 e6 7f fe 2d ┆^#" _! _4* _" _ ! _ -┆ 0x076860…076880 c8 fe 1e c8 fe 1f c9 e6 7f cd 87 17 37 c8 b7 37 c8 fe 1a 37 c9 7a 94 ca 7e 5e 37 f8 3f c9 7b 95 ┆ 7 7 7 z ü^7 ? æ ┆ 0x076880…0768a0 c9 cd 84 12 c5 e5 3a c2 5f fe 7f da 90 5e 3e 7f 32 c2 5f 47 b7 ca a7 5e 3a 91 5f b7 ca a7 5e 2a ┆ : _ ^> 2 _G ^: _ ^*┆ 0x0768a0…0768c0 bc 5f 7c b7 f2 aa 5e 21 00 00 22 bc 5f 7d 21 d5 5f 36 ff 34 b7 ca bd 5e 90 d2 b3 5e 80 21 c4 5f ┆ _ø ^! " _å! _6 4 ^ ^ ! _┆ 0x0768c0…0768e0 96 d2 c7 5e 86 77 af 4f b7 1f d2 d7 5e 21 d4 5f 34 ca d7 5e 3c 35 35 32 d6 5f 78 21 c4 5f 96 91 ┆ ^ w O ^! _4 ^<552 _x! _ ┆ 0x0768e0…076900 32 d7 5f e1 c1 78 b1 c8 5e 7b b7 c8 23 0b fe a0 ca 10 5f fe 8d c2 21 5f 3a bb 5f b7 c2 21 5f af ┆2 _ x ^æ # _ !_: _ !_ ┆ 0x076900…076920 32 b9 5f 7e e6 7f fe 0a c2 0d 5f 23 0b c3 e5 5e 3a b9 5f b7 ca e5 5e 3d 32 b9 5f cd b7 56 c3 e5 ┆2 _ü _# ^: _ ^=2 _ V ┆ 0x076920…076940 5e cd b7 56 e5 1c 1d fc 2e 5f e1 c3 e5 5e 7b fe 8d c8 fe 8c c8 fe 8a c8 21 c2 5f 34 35 c8 35 16 ┆^ V ._ ^æ ! _45 5 ┆ 0x076940…076960 ff ca 65 5f cd b2 17 3a d5 5f c2 54 5f 21 c4 5f 35 f2 63 5f 21 d6 5f 35 f2 63 5f 21 d7 5f 35 fa ┆ e_ : _ T_! _5 c_! _5 c_! _5 ┆ 0x076960…076980 63 5f 3d 3c 57 21 bc 5f 1e a0 14 15 c8 34 35 c8 35 cd b7 56 c3 6b 5f 00 00 00 00 00 00 00 00 00 ┆c_=<W! _ 45 5 V k_ ┆ 0x076980…0769a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x3…] 0x076a00…076a20 (31, 1, 5) d1 c1 da be 0c c9 cd 75 48 3a d8 60 2f 21 da 60 b6 36 00 c2 33 48 c5 d5 11 02 61 1a cd 74 19 47 ┆ uH: `/! ` 6 3H a t G┆ 0x076a20…076a40 3a d7 60 cd 74 19 b8 0e 0b 21 df 60 13 cc 5c 17 d1 c1 c8 cd 90 48 c5 d5 2a 35 61 22 37 61 af 32 ┆: ` t ! ` Ø H *5a"7a 2┆ 0x076a40…076a60 dd 60 67 6f 22 39 3d 01 10 00 11 de 60 21 02 61 7e 32 d7 60 cd c2 16 11 de 60 cd fc 51 d1 c1 ca ┆ `go"9= `! aü2 ` ` Q ┆ 0x076a60…076a80 be 0c 3e 00 32 db 60 32 da 60 2f 32 dd 60 32 d8 60 32 41 3d c9 cd ea 4a d5 eb 23 11 02 61 cd 01 ┆ > 2 `2 `/2 `2 `2A= J # a ┆ 0x076a80…076aa0 4b 2b d1 f5 eb cd 2c 17 09 44 4d f1 da be 0c c9 cd e4 4a 21 a5 48 cd 68 25 3e 00 32 38 3d c8 f8 ┆K+ , DM J! H h%> 28= ┆ 0x076aa0…076ac0 2f 32 38 3d c9 43 48 ff ff 00 cd b2 25 da b4 48 22 3f 3d c9 3e ff 32 41 3d c9 21 a3 5f c3 c9 48 ┆/28= CH % H"?= > 2A= ! _ H┆ 0x076ac0…076ae0 21 a9 5f c3 c9 48 21 a2 5f e5 21 0e 49 cd f8 0d 7c e3 77 d5 11 05 00 19 d1 e3 7d fe fe ca e3 48 ┆! _ H! _ ! I ø w å H┆ 0x076ae0…076b00 e3 77 e3 e1 c9 21 9f 5f e5 cd d3 4a da 08 49 2d c3 03 49 21 a0 5f c3 fc 48 21 a1 5f e5 cd d3 4a ┆ w ! _ J I- I! _ H! _ J┆ 0x076b00…076b20 da 08 49 26 ff c3 d0 48 21 1b 49 c3 cd 48 44 49 fe 00 4f 4e ff ff 4f 46 00 ff 00 4f 4e fe ff 44 ┆ I& H! I HDI ON OF ON D┆ 0x076b20…076b40 49 fe 00 00 cd 96 12 3e 40 fe af 3c f5 cd 65 4a cd ba 49 f1 c3 b7 4a cd c4 49 da be 0c cd f4 4a ┆I >@ < eJ I J I J┆ 0x076b40…076b60 cd 65 4a c5 d5 4f cd cd 59 d1 c1 c9 cd 20 4a f5 cd e4 4a cd c4 49 da be 0c cd e4 4a f1 d2 7a 49 ┆ eJ O Y J J I J zI┆ 0x076b60…076b80 c5 d5 21 2d 45 cd 98 4a 21 ad 60 4e 06 00 23 cd c2 16 21 2f 45 cd a0 4a d1 c1 cd c8 4a 32 90 3d ┆ !-E J! `N # !/E J J2 =┆ 0x076b80…076ba0 c5 d5 cd 7f 59 ca 93 49 eb 2a 3c 61 eb 1b cd 2e 5a af 12 d1 c1 cd a6 49 2a 3c 61 2b 7e 23 cd 43 ┆ Y I *<a .Z I*<a+ü# C┆ 0x076ba0…076bc0 49 af 32 8f 3d c9 cd ba 49 3e 02 32 8f 3d cd 81 0b 3a 8f 3d fe 04 c2 ae 49 c9 3a 8b 36 b7 c0 3e ┆I 2 = I> 2 = : = I : 6 >┆ 0x076bc0…076be0 0b c3 35 12 21 29 00 e5 21 ae 60 cd ea 4a 37 3f c4 d8 17 da ea 49 e3 2e 00 e3 cd e2 17 e3 2c 2d ┆ 5 !) ! ` J7? I . ,-┆ 0x076be0…076c00 e3 ca ea 49 77 23 e3 2d 24 e3 cd f7 25 da 14 4a ca 16 4a fe 0d ca 14 4a cd d8 17 d4 c6 17 da da ┆ Iw# -$ % J J J ┆ 0x076c00…076c20 (31, 1, 6) 32 82 5f c9 e1 3a 81 5f 85 21 87 5f be c9 3a 7e 5f b7 c0 3a 22 61 b7 c8 c6 03 21 7f 5f be d0 cd ┆2 _ : _ ! _ :ü_ :"a ! _ ┆ 0x076c20…076c40 3a 50 21 83 5f be d0 cd 46 50 3a 81 5f 85 21 83 5f be d8 7e 32 82 5f c3 af 4f 3a 87 5f 21 82 5f ┆:P! _ FP: _ ! _ ü2 _ O: _! _┆ 0x076c40…076c60 be d2 45 50 7e c9 3a 22 61 2e 0f 3d 3d f8 2e 0c c8 2d 67 2d 25 c8 7d fe 08 d2 53 50 7c fe 05 d8 ┆ EPü :"a. == . -g-% å SPø ┆ 0x076c60…076c80 2d c9 e6 7f e5 21 79 5f cd 94 1d e1 c9 96 d8 fe 03 d0 86 77 c9 96 d2 7f 50 f2 7f 50 fe fe d0 86 ┆- !y_ w P P ┆ 0x076c80…076ca0 77 c9 06 53 c5 e5 cd 8c 50 e1 c1 c9 cd e7 53 2a 19 61 7e b7 ca 9e 50 23 22 19 61 c3 a1 50 cd 11 ┆w S P S* aü P#" a P ┆ 0x076ca0…076cc0 51 5f e6 7f 21 77 5f 46 0e ff fe 0c ca ba 50 fe 0a ca ba 50 fe 1a ca ba 50 0c 71 04 c0 21 94 03 ┆Q_ !w_F P P P q ! ┆ 0x076cc0…076ce0 be c2 81 0b cd 8c 50 21 ca 47 e6 df be ca d4 50 21 ce 47 be c2 e0 50 e5 cd 8c 50 e6 df e1 23 be ┆ P! G P! G P P # ┆ 0x076ce0…076d00 f5 c3 e7 50 cd 8c 50 0c 0d ca e4 50 6f f1 c2 03 51 d5 1e 0a cd e7 53 d1 7d fe 0a c2 00 51 1e 00 ┆ P P Po Q S å Q ┆ 0x076d00…076d20 cd 29 54 7d fe 0c c8 fe 1a c2 8c 50 1e 00 c3 8c 50 d5 cd b3 0b fe 1a ca 20 51 23 22 95 3d d1 c9 ┆ )Tå P P Q#" = ┆ 0x076d20…076d40 2a 3d 3d 23 22 3d 3d 3a 41 3d 21 d9 60 a6 ca 3a 51 cd 29 54 cd e5 4c c2 47 51 2a 3d 3d eb 2a 3f ┆*==#"==:A=! ` :Q )T L GQ*== *?┆ 0x076d40…076d60 3d cd 68 17 d2 51 51 af 32 38 3d cd 8c 51 c3 12 51 2a 15 61 34 35 3e 1a ca 1e 51 cd 18 53 11 45 ┆= h QQ 28= Q Q* a45> Q S E┆ 0x076d60…076d80 3d cd 41 52 c2 6b 51 af 32 38 3d cd 95 51 c3 12 51 cd a7 52 21 02 61 11 45 3d 01 10 00 cd c2 16 ┆= AR kQ 28= Q Q R! a E= ┆ 0x076d80…076da0 21 00 00 22 3d 3d 22 3f 3d 22 41 3d 21 00 00 22 39 3d 22 3b 3d cd ba 49 cd c2 51 3a f7 3c b7 c0 ┆! "=="?="A=! "9=";= I Q: < ┆ 0x076da0…076dc0 11 45 3d cd fc 51 2a 39 3d 22 67 3d 37 c8 3e ff 32 44 3d cd c7 0b 78 b1 c8 eb 2a 3b 3d 19 22 95 ┆ E= Q*9="g=7 > 2D= x *;= " ┆ 0x076dc0…076de0 3d c9 e5 af 32 44 3d 2a 9b 3d 22 95 3d 22 97 3d e1 c9 cd e3 51 c0 cd 98 18 c8 21 af 3a cd 8e 52 ┆= 2D=* =" =" = Q ! : R┆ 0x076de0…076e00 f6 ff c9 cd 49 0b 2a 39 3d 29 7c 21 0c 00 19 77 cd ba 18 c0 21 ab 3a cd 8e 52 af c9 3a 38 3d b7 ┆ I *9=)ø! w ! : R :8= ┆ 0x076e00…076e20 (31, 1, 7) 21 d8 5f 34 7e fe 47 c9 21 64 60 e5 cd 6c 58 79 32 e2 5f e1 22 df 5f d8 11 ae 60 cd 48 59 d8 78 ┆! _4ü G !d` lXy2 _ " _ ` HY x┆ 0x076e20…076e40 32 ad 60 cd 7f 59 c8 3e ff 32 9c 5f 7e 32 e1 5f 4e 11 e3 5f eb 22 df 5f eb 1b c5 cd 2e 5a c1 0c ┆2 ` Y > 2 _ü2 _N _ " _ .Z ┆ 0x076e40…076e60 3a ab 60 c3 55 58 0d c8 1b 1a cd a6 17 c2 46 58 3a ac 60 b7 c8 47 0d c8 1b 1a cd 5c 5e ca 46 58 ┆: ` UX FX: ` G Ø^ FX┆ 0x076e60…076e80 cd 96 17 ca 4a 58 1a b0 12 c3 46 58 01 00 47 cd 15 59 af 32 de 5f cd 29 59 d8 cd 4c 5a dd 03 c2 ┆ JX FX G Y 2 _ )Y LZ ┆ 0x076e80…076ea0 89 58 32 de 5f cd 29 59 d8 cd d8 17 3f d8 53 cd 1d 59 d8 cd d8 17 d4 c6 17 da 8e 58 fe 2d c4 61 ┆ X2 _ )Y ? S Y X - a┆ 0x076ea0…076ec0 5e ca 8e 58 7b fe a0 ca 8f 58 fe 8d c2 bb 58 cd 1d 59 d8 fe 0a ca 8f 58 c3 93 58 cd 2d 59 d8 cd ┆^ Xæ X X Y X X -Y ┆ 0x076ec0…076ee0 61 5e ca bb 58 cd 4c 5a de 03 c2 ee 58 cd 1d 59 d8 cd e2 17 cd 4c 5a df 03 c2 ee 58 32 de 5f cd ┆a^ X LZ X Y LZ X2 _ ┆ 0x076ee0…076f00 29 59 d8 cd 4c 5a de 03 ca cd 58 c3 d1 58 cd 4c 5a dc 03 37 c0 3a de 5f b7 c2 01 59 3e ff 32 dd ┆)Y LZ X X LZ 7 : _ Y> 2 ┆ 0x076f00…076f20 5f 7b e6 80 32 ab 60 b2 e6 80 32 ac 60 c9 cd d2 53 5f e6 7f c9 73 23 0c 05 37 c8 3f c9 cd 0e 59 ┆_æ 2 ` 2 ` S_ s# 7 ? Y┆ 0x076f20…076f40 cd 15 59 d8 fe 1a c3 19 59 cd 1d 59 d8 7b fe 8d c2 3f 59 cd 1d 59 d8 fe 0a ca 29 59 c3 2d 59 cd ┆ Y Y Y æ ?Y Y )Y -Y ┆ 0x076f40…076f60 a6 17 ca 29 59 e6 7f c9 06 00 7e 23 cd 4c 5a de 03 c8 cd 5b 59 d8 0d c2 4a 59 c9 e6 7f e5 21 db ┆ )Y ü# LZ ÆY JY ! ┆ 0x076f60…076f80 03 be ca 6c 59 23 be ca 6c 59 23 be e1 c4 96 17 c4 61 5e c8 cd e2 17 12 13 04 78 fe 29 3f c9 c5 ┆ lY# lY# a^ x )? ┆ 0x076f80…076fa0 2a 25 61 2b e5 11 ad 60 7e b7 ca 9b 59 4f 0c 1a ae c2 9e 59 2b 13 0d c2 8f 59 0c d1 c1 c9 e1 cd ┆*%a+ `ü YO Y+ Y ┆ 0x076fa0…076fc0 c3 59 c3 84 59 c5 e5 62 6b cd c3 59 7e b7 ca ba 59 cd 3d 5a cd 3d 5a c3 ac 59 12 eb 22 27 61 eb ┆ Y Y bk Yü Y =Z =Z Y "'a ┆ 0x076fc0…076fe0 e1 c1 c9 7e 2b cd 46 17 7e 2b c3 46 17 d5 c5 e5 cd 7f 59 c4 a5 59 d5 2a ad 60 26 00 79 cd 3f 17 ┆ ü+ F ü+ F Y Y * `& y ? ┆ 0x076fe0…077000 cd 2b 17 11 f6 ff 19 eb 2a 23 61 cd 68 17 2a 1f 61 d4 68 17 d1 d2 03 5a 2a 25 61 2b eb cd a5 59 ┆ + *#a h * a h Z*%a+ Y┆ 0x077000…077020 (31, 1, 8) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x7…] 0x077100…077120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3f 61 6b 62 00 00 00 00 00 00 00 ┆ ?akb ┆ 0x077120…077140 00 00 00 00 00 00 00 00 00 94 62 dc 62 0e 65 00 00 00 00 a0 66 a0 68 00 00 00 0e 65 d7 65 9b 00 ┆ b b e f h e e ┆ 0x077140…077160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x5…] 0x077200…077220 (31, 1, 9) 49 fe 2d ca da 49 cd 61 5e ca ea 49 fe 2c c4 a6 17 c2 d6 49 03 1b e1 7c 32 ad 60 7d b7 c0 37 c9 ┆I - I a^ I , I ø2 `å 7 ┆ 0x077220…077240 cd bd 4a cd a2 25 da fe 4a 37 c8 67 fe 27 ca 37 4a fe 22 37 c2 fe 4a 2e c7 e5 2a 3a 61 cd f7 25 ┆ J % J7 g ' 7J "7 J. *:a %┆ 0x077240…077260 da 5e 4a ca 5c 4a fe 0d ca 5e 4a 77 e3 2c 2d ca 56 4a e3 23 e3 2d bc e3 c2 3d 4a 2b 0b 13 03 1b ┆ ^J ØJ ^Jw ,- VJ # - =J+ ┆ 0x077260…077280 36 00 e1 b7 c9 cd bd 4a 2a 3a 61 e5 e5 21 c7 00 e3 cd f7 25 ca 92 4a e6 7f fe 20 c2 84 4a cd f7 ┆6 J*:a ! % J J ┆ 0x077280…0772a0 25 ca 92 4a fe 0d ca 92 4a 77 23 e3 24 2d e3 c2 7e 4a 36 00 e1 7c e1 c9 cd bd 4a eb 2a 3a 61 eb ┆% J Jw# $- üJ6 ø J *:a ┆ 0x0772a0…0772c0 cd d6 1a cd 9c 1b 7e 12 13 23 b7 c2 a3 4a 1b c9 d5 cd 98 4a d1 3e 01 32 8f 3d c3 81 0b 3a 8f 3d ┆ ü # J J > 2 = : =┆ 0x0772c0…0772e0 b7 c8 cd 81 0b c3 bd 4a cd b2 25 3e 00 d8 3e ff c0 7d c9 cd b2 25 d8 c2 be 0c 7d 3d fe f0 d2 be ┆ J %> > å % å= ┆ 0x0772e0…077300 0c 3c b7 c9 cd ea 4a cd f4 4a cd a2 25 da fe 4a c8 1b 03 c9 cd f7 25 da fe 4a c8 fe 2c c8 1b 03 ┆ < J J % J % J , ┆ 0x077300…077320 c9 c5 d5 d5 af 0e 10 12 13 0d c2 07 4b d1 d5 cd 6f 4b 12 13 0e 08 cd 35 4b fe 2e c2 1f 4b 23 0e ┆ K oK 5K . K# ┆ 0x077320…077340 03 cd 35 4b d1 13 1a 1b fe 20 ca 31 4b b7 d1 c1 c9 37 d1 c1 c9 cd 53 4b ca 48 4b 12 13 0d c2 35 ┆ 5K 1K 7 SK HK 5┆ 0x077340…077360 4b cd 53 4b c2 41 4b c9 f5 3e 20 12 13 0d c2 49 4b f1 c9 7e cd 5e 4b c8 23 cd e2 17 b7 c9 fe 2e ┆K SK AK > IK ü ^K # .┆ 0x077360…077380 c8 fe 3a c8 fe 2a c8 fe 3f c8 fe 20 d0 bf c9 cd 7e 17 23 7e 2b fe 3a c2 87 4b 7e cd d8 17 d2 87 ┆ : * ? ü #ü+ : Kü ┆ 0x077380…0773a0 4b d6 40 23 23 b7 c9 cd 76 19 37 c9 3a d8 60 b7 21 bf 3a f5 cc b0 4a f1 ca be 0c 21 d9 60 7e 36 ┆K @## v 7 : ` ! : J ! `ü6┆ 0x0773a0…0773c0 ff b7 cc 68 4c cd c4 49 d2 b7 4b 21 c5 3a cd b0 4a cd e3 4b c3 bf 4b cd e3 4b f5 cd 43 49 f1 21 ┆ hL I K! : J K K K CI !┆ 0x0773c0…0773e0 c1 3a dc b0 4a cd 86 4c cd e4 4a ca d3 4b fe 0d c2 a5 4b 3a db 60 b7 21 c9 3a c4 b0 4a 3e ff 32 ┆ : J L J K K: ` ! : J> 2┆ 0x0773e0…077400 dc 60 c9 c5 d5 cd bd 4a 2a 3a 61 e5 0e 00 51 cd 59 4c fe 1a c2 fa 4b 32 db 60 06 00 cd 94 4c cd ┆ ` J*:a Q YL K2 ` L ┆ 0x077400…077420 (31, 1, 10) ca d2 51 cd 41 52 c2 25 52 1a d5 f5 21 b3 3a cd 98 4a eb f1 cd 05 18 eb 21 b5 3a cd a0 4a cd b5 ┆ Q AR %R ! : J ! : J ┆ 0x077420…077440 4a d1 c3 d2 51 3a 8b 36 b7 cc 71 18 21 b7 3a cd 94 52 3e 08 32 8f 3d cd bd 4a cd e3 51 ca 25 52 ┆J Q: 6 q ! : R> 2 = J Q %R┆ 0x077440…077460 c9 3a 38 3d 2f b7 c0 c5 e5 1a cd 74 19 47 3a 8b 36 2f b7 3a 6b 3d cc 89 52 3a 40 39 c4 89 52 3a ┆ :8=/ t G: 6/ :k= R:@9 R:┆ 0x077460…077480 0a 38 c4 89 52 3a 30 38 c4 89 52 21 45 3d c4 82 52 ca 7f 52 3a dd 60 2f b7 21 de 60 cc 82 52 e1 ┆ 8 R:08 R!E= R R: `/ ! ` R ┆ 0x077480…0774a0 c1 c9 cd 68 17 ca e0 51 7e cd 74 19 b8 c9 cd 94 52 c3 b5 4a e5 d5 cd 98 4a eb d1 cd 12 18 eb e3 ┆ h Qü t R J J ┆ 0x0774a0…0774c0 23 23 cd a0 4a d1 c9 3a 41 3d 2a 3f 3d b4 b5 c2 d9 52 2a 15 61 7e b7 2a 12 61 23 eb 2a f2 3c cc ┆## J :A=*?= R* aü * a# * < ┆ 0x0774c0…0774e0 68 17 3e 00 d4 b3 0b fe 1a c2 d9 52 2a 15 61 11 01 00 19 3a 38 3d b6 77 c9 2a 67 3d e5 2a 97 3d ┆h > R* a :8= w *g= * =┆ 0x0774e0…077500 eb e3 2b e3 21 80 ff 19 eb 2a 95 3d cd 2c 17 7c b7 fa e1 52 22 3b 3d e1 22 39 3d 01 c8 00 2a 15 ┆ + ! * = , ø R";= "9= * ┆ 0x077500…077520 61 09 eb 21 1e 00 19 eb cd e1 16 36 ff 23 eb 21 38 3d 01 1d 00 c3 c2 16 2a 15 61 e5 23 11 38 3d ┆a ! 6 # !8= * a # 8=┆ 0x077520…077540 01 1d 00 cd c2 16 d1 01 c8 00 cd c2 16 af 12 c9 c5 d5 22 1b 61 06 00 2a 19 61 7e b7 c2 4b 53 2a ┆ " a * aü KS*┆ 0x077540…077560 17 61 22 19 61 70 0e 29 cd 54 53 2a 1b 61 7d 04 05 d1 c1 c9 7b fe a0 ca 68 53 fe 8d ca 68 53 cd ┆ a" ap ) TS* aå æ hS hS ┆ 0x077560…077580 a6 17 c2 6f 53 cd 82 53 cd 8d 53 d8 c3 55 53 47 cd 82 53 cd 5c 5e c8 cd 8d 53 d8 cd 96 17 c8 c3 ┆ oS S S USG S Ø^ S ┆ 0x077580…0775a0 6f 53 e6 7f e5 21 1b 61 cd 94 1d e1 c9 0d ca ce 53 7b fe 1a 37 c8 c5 e5 cd 11 51 e1 c1 77 23 36 ┆oS ! a Sæ 7 Q w#6┆ 0x0775a0…0775c0 00 53 5f fe 8d c8 e6 7f fe 0a c2 b4 53 7a fe 8d ca 8d 53 7b cd 67 5e 37 c8 e5 21 94 03 be e1 c2 ┆ S_ Sz Sæ g^7 ! ┆ 0x0775c0…0775e0 cb 53 7a fe 0a 37 c8 fe 0c 37 c8 7b b7 c9 06 00 37 c9 c5 d5 e5 f5 2a 89 5f eb 21 02 00 39 f1 22 ┆ Sz 7 7 æ 7 * _ ! 9 "┆ 0x0775e0…077600 89 5f eb f9 c3 5b 1a 7b b7 c8 06 01 d5 e5 57 2a 1f 61 78 3d ca 06 54 f5 3a 21 61 3d c2 02 54 36 ┆ _ Æ æ W* ax= T :!a= T6┆ 0x077600…077620 (31, 1, 11) c3 d6 59 21 ad 60 cd 1f 5a e1 c1 c5 e5 79 12 1b 06 00 cd 23 5a af 12 eb 22 27 61 e1 c1 d1 c9 4e ┆ Y! ` Z y #Z "'a N┆ 0x077620…077640 06 00 03 78 b1 c8 7e 12 23 1b 0b c3 23 5a 4e 06 00 03 78 b1 c8 7e 12 2b 13 0b c3 32 5a 4e 06 00 ┆ x ü # #ZN x ü + 2ZN ┆ 0x077640…077660 03 78 b1 c8 7e 12 2b 1b 0b c3 41 5a e3 d5 5e 23 56 23 eb be eb d1 e3 c9 c5 d5 e5 cd 64 5a da 5b ┆ x ü + AZ ^#V# dZ Æ┆ 0x077660…077680 5a c3 5b 1a cd 32 56 3a 93 5f 2a 94 5f 7c a5 2a 9d 5f b5 c8 cd a8 5a d2 99 5a 2b 7e 23 b7 c8 23 ┆Z Æ 2V: _* _ø * _ Z Z+ü# #┆ 0x077680…0776a0 22 cf 5f 3a 92 5f 2f 32 bb 5f af 32 bc 5f cd 9d 5b 3a be 5f 32 af 5f 37 c9 cd 81 0b cd 9d 5b cd ┆" _: _/2 _ 2 _ Æ: _2 _7 Æ ┆ 0x0776a0…0776c0 09 56 cd bf 5b c3 91 5a 3a 92 5f b7 c2 b9 5a 2a 2b 61 cd 0e 5c d8 c3 15 5b 2a 2b 61 cd 25 5c d8 ┆ V Æ Z: _ Z*+a Ø Æ*+a %Ø ┆ 0x0776c0…0776e0 ca c6 5a c3 15 5b 3e ff 2a 2b 61 cd 12 5d d8 3a c2 5f b7 c2 00 5b 3a c6 5f b7 ca 00 5b 3a 8d 5f ┆ Z Æ> *+a Å : _ Æ: _ Æ: _┆ 0x0776e0…077700 b7 ca f4 5a 2a cf 5f 1e 0a 7e 23 cd 67 5e 37 c8 1d c2 e9 5a 3a c6 5f b7 1f 2a 2b 61 cd 12 5d d8 ┆ Z* _ ü# g^7 Z: _ *+a Å ┆ 0x077700…077720 2a cb 5f eb 2a 90 5f 26 00 cd 2c 17 22 bc 5f 2b 7c b7 fa 15 5b 2a cf 5f 2b 7e cd a6 17 ca 18 5b ┆* _ * _& , " _+ø Æ* _+ü Æ┆ 0x077720…077740 e6 7f fe 1e c2 2d 5b 7e e6 80 f6 1f 77 2a cf 5f 1e 32 1d ca 97 5b 7e 23 cd a6 17 ca 32 5b fe 8d ┆ -Æü w* _ 2 Æü# 2Æ ┆ 0x077740…077760 c2 63 5b 7e e6 7f fe 0a c2 4c 5b 23 e5 21 be 5f 36 ff 21 bf 5f 34 23 36 00 e1 1d ca 97 5b 7e 23 ┆ cÆü LÆ# ! _6 ! _4#6 Æü#┆ 0x077760…077780 c3 3e 5b fe a0 c2 71 5b e5 21 c0 5f 34 e1 c3 5e 5b e5 cd a6 17 c2 81 5b 1d ca 96 5b 7e 23 c3 72 ┆ >Æ qÆ ! _4 ^Æ Æ Æü# r┆ 0x077780…0777a0 5b fe 8d c2 8b 5b e3 e1 c3 43 5b cd 67 5e c2 92 5b e3 e1 37 c8 e5 e1 2b 22 cf 5f b7 c9 cd 00 5c ┆Æ Æ CÆ g^ Æ 7 +" _ Ø┆ 0x0777a0…0777c0 2a 2b 61 eb 2a cf 5f cd 35 17 eb e5 cd 81 5e d1 1b 2b 13 23 7e 12 b7 c2 b2 5b eb 22 2f 61 c9 af ┆*+a * _ 5 ^ + #ü Æ "/a ┆ 0x0777c0…0777e0 32 8d 5f 3a 94 5f 21 92 5f a6 2f 21 be 5f a6 2a bf 5f c2 d8 5b 2a 8f 5f 2d 1e 8d cd b7 56 1e 0a ┆2 _: _! _ /! _ * _ Æ* _- V ┆ 0x0777e0…077800 cd b7 56 2d f2 d9 5b 3a 93 5f 21 92 5f a6 2f 21 be 5f a6 3a c0 5f c2 fc 5b 3a 8e 5f 32 8c 5f c9 ┆ V- Æ: _! _ /! _ : _ Æ: _2 _ ┆ 0x077800…077820 (31, 1, 12) 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ┆--------------------------------┆ 0x077820…077840 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ -------------- ┆ 0x077840…077860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 0d 0a 20 20 20 20 20 ┆ I ┆ 0x077860…077880 20 20 20 20 20 20 20 20 49 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ I ┆ 0x077880…0778a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 ┆ I ┆ 0x0778a0…0778c0 20 49 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ I ┆ 0x0778c0…0778e0 20 20 20 20 20 20 20 20 20 20 49 20 20 20 20 20 20 20 20 20 20 20 41 2f 53 20 20 52 20 45 20 47 ┆ I A/S R E G┆ 0x0778e0…077900 20 4e 20 45 20 43 20 45 20 4e 20 54 20 52 20 41 20 4c 20 45 0d 0a 20 4e 20 20 20 20 20 20 20 20 ┆ N E C E N T R A L E N ┆ 0x077900…077920 20 20 20 49 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ I ┆ 0x077920…077940 20 20 20 20 20 20 20 20 20 20 20 20 49 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 49 0d 0a 20 ┆ I I ┆ 0x077940…077960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x077960…077980 20 20 20 20 20 49 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 20 45 20 4e 20 ┆ I D E N ┆ 0x077980…0779a0 4d 20 41 20 52 20 4b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 49 0d 0a 20 20 20 20 20 20 20 ┆M A R K I ┆ 0x0779a0…0779c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 ┆ I┆ 0x0779c0…0779e0 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 49 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ I ┆ 0x0779e0…077a00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 0d 0a 20 20 20 20 20 ┆ I ┆ 0x077a00…077a20 (31, 1, 13) 4c 5a d8 03 c4 67 5e ca 35 4c cd 4c 5a d9 03 ca 1e 4c cd 42 4c cd a6 17 ca fc 4b c3 fa 4b cd 94 ┆LZ g^ 5L LZ L BL K K ┆ 0x077a20…077a40 4c cd 67 5e ca 38 4c cd 4c 5a d9 03 ca fa 4b cd 42 4c c3 1e 4c 79 90 4f 7a c6 ff 79 e1 d1 c1 c3 ┆L g^ 8L LZ K BL Ly Oz y ┆ 0x077a40…077a60 dd 4c 79 fe c8 7b d2 52 4c 77 23 0c cd a6 17 c0 04 c9 14 c0 15 e1 c3 38 4c cd d4 4c cd 96 17 c2 ┆ Ly æ RLw# 8L L ┆ 0x077a60…077a80 dd 4c cd a0 17 c2 59 4c cd d4 4c fe 7f c2 5c 4c cd d4 4c cd 67 5e c2 70 4c c3 5c 4c cd d4 4c cd ┆ L YL L ØL L g^ pL ØL L ┆ 0x077a80…077aa0 a6 17 ca 7c 4c c9 cd 7c 4c cd 4c 5a d8 03 cc 7c 4c c3 dd 4c e5 d5 2a 35 61 2b eb 2a 37 61 cd 68 ┆ øL øL LZ øL L *5a+ *7a h┆ 0x077aa0…077ac0 17 d2 c9 4c 3a dd 60 b7 3e 1a ca ca 4c 2a 33 61 e5 36 1a 11 de 60 cd a3 19 11 80 00 19 eb 2a 35 ┆ L: ` > L*3a 6 ` *5┆ 0x077ac0…077ae0 61 cd 68 17 eb da b1 4c e1 7e d1 5f e6 7f 23 22 37 61 e1 c9 d5 cd 94 4c d1 c9 cd d4 4c e5 2a 37 ┆a h L ü _ #"7a L L *7┆ 0x077ae0…077b00 61 2b c3 cf 4c 21 dc 60 7e b7 36 00 c4 70 4c cd da 4c fe 1a c0 3e ff 32 da 60 c9 cd d2 53 1e 00 ┆a+ L! `ü 6 pL L > 2 ` S ┆ 0x077b00…077b20 cd 83 50 cd 29 54 af 67 6f 32 9d 5f 22 79 5f 22 7b 5f 22 7d 5f 22 7f 5f 32 85 5f 7b fe a0 c2 2e ┆ P )T go2 _"y_"æ_"å_" _2 _æ .┆ 0x077b20…077b40 4d cd 62 50 21 85 5f 34 cd 83 50 c3 1b 4d 3a 85 5f 06 02 cd ec 53 7b fe 8d ca 0b 4e fe 1a ca a0 ┆M bP! _4 P M: _ Sæ N ┆ 0x077b40…077b60 4d cd 87 17 ca 9a 4d cd 50 4d cd 83 50 c3 36 4d 7b cd 62 50 cd ac 17 ca 79 4d 32 7b 5f 3a 79 5f ┆M M PM P 6Mæ bP yM2æ_:y_┆ 0x077b60…077b80 32 87 5f 7b b7 f0 3e ff 21 7c 5f be c2 72 4d 23 be c8 77 06 06 cd ec 53 c9 3a 7c 5f b7 c2 88 4d ┆2 _æ > !ø_ rM# w S :ø_ M┆ 0x077b80…077ba0 7a cd 96 17 c2 73 4d c9 7b fe a0 c0 3e ff 32 7e 5f 21 80 5f 7e fe 7f c8 34 c9 cd bc 4d c3 00 4d ┆z sM æ > 2ü_! _ü 4 M M┆ 0x077ba0…077bc0 cd bc 4d cd e7 53 cd 29 54 1e 00 cd 83 50 fe 1a c2 03 4d cd bf 12 cd 81 0b c3 b6 4d cd 40 4f 3a ┆ M S )T P M M @O:┆ 0x077bc0…077be0 9b 5f b7 21 88 5f c2 cf 4d cd 0e 50 21 82 5f 3a 87 5f be d2 d7 4d 7e 32 87 5f 32 88 5f cd 5c 4f ┆ _ ! _ M P! _: _ Mü2 _2 _ ØO┆ 0x077be0…077c00 3a 78 5f b7 c2 fc 4d 21 80 03 3a 49 02 d6 04 be da f4 4d 7e 3c 21 87 5f be d2 ff 4d 3a 87 5f 06 ┆:x_ M! :I Mü<! _ M: _ ┆ 0x077c00…077c20 (31, 1, 14) 00 23 f1 c3 0d 54 3a 21 61 3d ca 13 54 70 23 78 32 21 61 72 23 22 1f 61 36 00 23 36 00 24 24 eb ┆ # T:!a= Tp#x2!ar#" a6 #6 $$ ┆ 0x077c20…077c40 2a 27 61 cd 68 17 e1 d1 d8 c5 d5 e5 3a 9b 5f b7 c2 46 54 3a 82 5f 21 9a 5f 77 3a 84 5f cd 6d 50 ┆*'a h : _ FT: _! _w: _ mP┆ 0x077c40…077c60 3a 83 5f cd 6d 50 3a 82 5f 32 83 5f 21 84 5f cd 75 50 3e ff 32 9e 5f 2a 1d 61 7e 23 46 23 e5 21 ┆: _ mP: _2 _! _ uP> 2 _* aü#F# !┆ 0x077c60…077c80 5a 54 e3 fe 07 d0 87 e5 21 75 54 cd 3f 17 7e 23 66 6f e3 78 c9 83 54 8a 54 94 54 98 54 9c 54 af ┆ZT !uT ? ü#fo x T T T T T ┆ 0x077c80…077ca0 54 b3 54 e1 cd b6 54 c3 5b 1a cd d2 53 7e 23 b7 c2 8a 54 c9 32 98 5f c9 32 99 5f c9 e5 21 9a 5f ┆T T T Æ Sü# T 2 _ 2 _ ! _┆ 0x077ca0…077cc0 3a 9b 5f b7 c2 ac 54 78 be da ad 54 70 e1 c9 32 9d 5f c9 c3 58 5a af 32 22 61 32 21 61 2a 1d 61 ┆: _ Tx Tp 2 _ XZ 2"a2!a* a┆ 0x077cc0…077ce0 22 1f 61 77 23 77 c9 cd 92 55 af 32 9c 5f 2f 32 8d 5f 7b fe a0 ca c7 54 cd 09 56 3a 8e 5f 32 8c ┆" aw#w U 2 _/2 _æ T V: _2 ┆ 0x077ce0…077d00 5f 7b fe 8d ca fc 54 cd 67 5e ca 10 55 fe 1f c2 f6 54 ab f6 1e 5f cd 07 55 c3 e1 54 cd 07 55 fe ┆_æ T g^ U T _ U T U ┆ 0x077d00…077d20 0a cc 07 55 c3 e1 54 cd 76 56 cd 19 55 c3 92 55 cd 76 56 cd 58 5a c3 c7 54 2a 2f 61 cd 62 55 cd ┆ U T vV U U vV XZ T*/a bU ┆ 0x077d20…077d40 8b 55 c8 cd 62 55 7e fe a0 ca 2f 55 fe 8d c0 cd 62 55 7e fe a0 ca 2f 55 fe 8d ca 2f 55 cd 8b 55 ┆ U bUü /U bUü /U /U U┆ 0x077d40…077d60 c8 cd 5c 5e c8 cd 75 55 cd 75 55 2b fe 20 c2 53 55 77 c9 06 20 7e 70 47 23 b7 c2 55 55 77 22 2f ┆ Ø^ uU uU+ SUw üpG# UUw"/┆ 0x077d60…077d80 61 c9 2b 7e e6 7f fe 0a c0 2b 7e e6 7f fe 0d c8 23 7e e6 7f c9 2b 7e 23 e6 7f fe 0d c2 86 55 7e ┆a +ü +ü #ü +ü# Uü┆ 0x077d80…077da0 23 e6 7f fe 0a c0 7e 23 e6 7f c9 cd 67 5e c8 c3 ac 17 c5 e5 cd ed 55 21 94 03 ae 04 b0 7b ca a6 ┆# ü# g^ U! æ ┆ 0x077da0…077dc0 55 e6 7f e1 c1 c9 2a 31 61 e5 01 00 00 c3 b7 55 c5 e5 cd ed 55 e1 c1 73 fe 1a ca d0 55 fe 0c ca ┆U *1a U U s U ┆ 0x077dc0…077de0 d0 55 23 03 1e 00 fe 0a ca d0 55 0c 0d c2 b0 55 e1 d5 e5 09 e3 7e cd 22 0c eb e1 cd 35 17 eb 78 ┆ U# U U ü " 5 x┆ 0x077de0…077e00 b1 c2 d2 55 d1 7b b7 ca 94 55 c3 a1 55 d5 cd 23 57 e1 54 7b e6 7f 21 8b 5f 46 0e ff 71 fe 0a c8 ┆ U æ U U #W Tæ ! _F q ┆ 0x077e00…077e20 (31, 1, 15) 21 8c 5f 34 35 c8 1e a0 cd b7 56 c3 04 5c cd f9 5c 3e ff 32 b9 5f 7e fe 8d ca 9c 5c 23 cd 67 5e ┆! _45 V Ø Ø> 2 _ü Ø# g^┆ 0x077e20…077e40 37 c8 c3 16 5c cd f9 5c 7e e6 7f fe 1f c2 34 5c ae f6 1e 77 7e 5e fe 8d ca 91 5c 23 cd 67 5e ca ┆7 Ø Øü 4Ø wü^ Ø# g^ ┆ 0x077e40…077e60 8c 5c 7b b7 f2 5f 5c e5 21 b2 5f fe a0 c2 5d 5c 7e 21 b3 5f b7 3e a0 ca 5d 5c 21 b5 5f 34 e1 cd ┆ Øæ _Ø ! _ ÅØü! _ > ÅØ! _4 ┆ 0x077e60…077e80 51 5e cd a6 17 ca 28 5c 53 d5 e5 2a b5 5f eb 2a 90 5f 26 00 19 eb 2a b0 5f 22 b7 5f fe 1e c2 82 ┆Q^ (ØS * _ * _& * _" _ ┆ 0x077e80…077ea0 5c 23 cd 75 5e e1 d1 d2 28 5c af c9 cd d0 5c 37 c9 e5 cd a2 5c e1 fa 8a 5c cd d0 5c 22 cf 5f f6 ┆Ø# u^ (Ø Ø7 Ø Ø Ø" _ ┆ 0x077ea0…077ec0 ff c9 7a 2a 90 5f 26 00 eb 2a b7 5f e6 7f fe 1e c2 b4 5c 23 cd 2c 17 7c b7 f0 3a 91 5f b7 f8 eb ┆ z* _& * _ Ø# , ø : _ ┆ 0x077ec0…077ee0 2a b5 5f eb cd 2c 17 3a 82 50 cd 3f 17 7c b7 c9 d5 e5 2a 90 5f 26 00 eb 2a b5 5f 19 eb 2a b7 5f ┆* _ , : P ? ø * _& * _ * _┆ 0x077ee0…077f00 eb cd 2c 17 eb 3a 91 5f b7 c2 ef 5c 11 00 00 2a b3 5f 19 22 b9 5f e1 d1 c9 e5 2a 8c 5f 26 00 22 ┆ , : _ Ø * _ " _ * _& "┆ 0x077f00…077f20 b0 5f 21 b2 5f 01 17 00 cd 08 17 11 20 20 e1 c3 84 12 32 c9 5f cd f9 5c 22 cd 5f 3a af 5f e5 21 ┆ _! _ 2 _ Ø" _: _ !┆ 0x077f20…077f40 8d 5f b6 e1 c2 2b 5d 3c 32 b2 5f cd 56 5d d8 ca 2b 5d 3e 0a 32 ca 5f 3a c5 5f b7 c0 cd 56 5d d8 ┆ _ +Å<2 _ VÅ +Å> 2 _: _ VÅ ┆ 0x077f40…077f60 e5 21 ca 5f 35 e1 c2 37 5d 2a c7 5f 22 cb 5f 2a d1 5f 22 cf 5f c9 22 cd 5f 53 7e e6 7f fe 1f c2 ┆ ! _5 7Å* _" _* _" _ " _Sü ┆ 0x077f60…077f80 66 5d ae f6 1e 77 7e 5f 23 fe a0 ca 82 5d fe 8d c2 92 5d 32 b2 5f 7e e6 7f fe 0a c2 7f 5d 23 c3 ┆fÅ wü_# Å Å2 _ü Å# ┆ 0x077f80…077fa0 5a 5d 3a b2 5f b7 c2 5a 5d e5 21 b9 5f 34 e1 c3 a0 5d 7b cd 67 5e 37 c8 7b b7 f2 a0 5d 32 b2 5f ┆ZÅ: _ ZÅ ! _4 Åæ g^7 æ Å2 _┆ 0x077fa0…077fc0 cd dc 5d e5 2a b0 5f e5 7b cd 51 5e d5 2a 90 5f 26 00 eb 2a b0 5f fe 1e c2 bc 5d 23 cd 75 5e d1 ┆ Å * _ æ Q^ * _& * _ Å# u^ ┆ 0x077fc0…077fe0 d2 d5 5d 3a c7 5f b7 c2 d5 5d e1 22 c7 5f e1 e5 2b 22 d1 5f e5 e1 e1 3a c7 5f b7 c9 7a cd a6 17 ┆ Å: _ Å " _ +" _ : _ z ┆ 0x077fe0…078000 c8 b7 fa 15 5e cd 5c 5e 7b c2 f5 5d cd 5c 5e c8 06 00 c3 1a 5e cd a6 17 c0 e5 06 00 21 c9 5f 7e ┆ ^ Ø^æ Å Ø^ ^ ! _ü┆ 0x078000…078020 (32, 0, 1) 3b 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆;*******************************┆ 0x078020…078040 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆********************************┆ 0x078040…078060 2a 2a 2a 0d 0a 3b 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆*** ;* ┆ 0x078060…078080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x078080…0780a0 20 20 20 20 20 20 20 2a 0d 0a 3b 2a 20 20 20 20 20 42 41 43 4b 55 50 20 20 55 54 49 4c 49 54 59 ┆ * ;* BACKUP UTILITY┆ 0x0780a0…0780c0 20 20 2d 20 20 56 45 52 53 49 4f 4e 20 20 38 31 2e 30 37 2e 30 38 20 20 20 20 20 20 20 20 20 20 ┆ - VERSION 81.07.08 ┆ 0x0780c0…0780e0 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 3b 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ * ;* ┆ 0x0780e0…078100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x078100…078120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 3b 2a 20 20 20 20 20 42 41 43 4b 55 ┆ * ;* BACKU┆ 0x078120…078140 50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆P ┆ 0x078140…078160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 3b 2a 20 20 20 20 20 ┆ * ;* ┆ 0x078160…078180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x078180…0781a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 3b 2a ┆ * ;*┆ 0x0781a0…0781c0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆********************************┆ […0x1…] 0x0781e0…078200 2a 0d 0a 0d 0a 0d 0a 54 50 41 09 45 51 55 09 31 30 30 48 0d 0a 42 44 4f 53 09 45 51 55 09 30 30 ┆* TPA EQU 100H BDOS EQU 00┆ 0x078200…078220 (32, 0, 2) 56 49 09 41 2c 31 09 3b 0d 0a 09 53 54 41 09 46 54 52 4b 09 3b 0d 0a 09 4d 56 49 09 41 2c 36 31 ┆VI A,1 ; STA FTRK ; MVI A,61┆ 0x078220…078240 09 3b 0d 0a 09 53 54 41 09 4c 54 52 4b 09 3b 0d 0a 09 4d 56 49 09 41 2c 31 32 30 09 3b 0d 0a 09 ┆ ; STA LTRK ; MVI A,120 ; ┆ 0x078240…078260 53 54 41 09 53 50 54 09 3b 0d 0a 09 4a 4d 50 09 53 45 54 43 54 09 3b 0d 0a 53 45 54 35 3a 09 43 ┆STA SPT ; JMP SETCT ; SET5: C┆ 0x078260…078280 50 49 09 44 44 35 09 3b 20 20 49 46 20 46 4f 52 4d 41 54 3d 20 35 22 20 44 44 20 54 48 45 4e 0d ┆PI DD5 ; IF FORMAT= 5" DD THEN ┆ 0x078280…0782a0 0a 09 4c 58 49 09 44 2c 4e 4f 54 4f 4b 09 3b 20 20 20 28 31 2c 33 31 2c 37 32 29 3b 0d 0a 09 43 ┆ LXI D,NOTOK ; (1,31,72); C┆ 0x0782a0…0782c0 4e 5a 09 46 49 4e 49 53 09 3b 0d 0a 09 4d 56 49 09 41 2c 31 09 3b 0d 0a 09 53 54 41 09 46 54 52 ┆NZ FINIS ; MVI A,1 ; STA FTR┆ 0x0782c0…0782e0 4b 09 3b 0d 0a 09 4d 56 49 09 41 2c 33 31 09 3b 0d 0a 09 53 54 41 09 4c 54 52 4b 09 3b 0d 0a 09 ┆K ; MVI A,31 ; STA LTRK ; ┆ 0x0782e0…078300 4d 56 49 09 41 2c 37 32 09 3b 0d 0a 09 53 54 41 09 53 50 54 09 3b 0d 0a 53 45 54 43 54 3a 09 4c ┆MVI A,72 ; STA SPT ; SETCT: L┆ 0x078300…078320 44 41 09 46 54 52 4b 09 3b 0d 0a 09 53 54 41 09 43 55 52 54 52 4b 09 3b 20 43 55 52 54 52 4b 3a ┆DA FTRK ; STA CURTRK ; CURTRK:┆ 0x078320…078340 3d 46 49 52 53 54 20 54 52 41 43 4b 3b 0d 0a 09 4d 56 49 09 41 2c 30 09 3b 0d 0a 09 53 54 41 09 ┆=FIRST TRACK; MVI A,0 ; STA ┆ 0x078340…078360 43 55 52 53 45 43 09 3b 20 43 55 52 53 45 43 3a 3d 20 30 3b 0d 0a 0d 0a 52 44 41 54 3a 09 4c 44 ┆CURSEC ; CURSEC:= 0; RDAT: LD┆ 0x078360…078380 41 09 44 46 4c 41 47 09 3b 20 52 45 41 44 20 44 41 54 41 3a 0d 0a 09 4f 52 41 09 41 09 3b 0d 0a ┆A DFLAG ; READ DATA: ORA A ; ┆ 0x078380…0783a0 09 4a 4e 5a 09 53 45 4c 53 44 09 3b 20 49 46 20 53 4f 55 52 43 45 20 44 52 49 56 45 20 3d 20 44 ┆ JNZ SELSD ; IF SOURCE DRIVE = D┆ 0x0783a0…0783c0 45 53 54 49 4e 41 54 49 4f 4e 20 44 52 49 56 45 0d 0a 09 4c 58 49 09 44 2c 4d 53 44 49 53 4b 3b ┆ESTINATION DRIVE LXI D,MSDISK;┆ 0x0783c0…0783e0 20 20 54 48 45 4e 20 57 41 49 54 20 46 4f 52 20 44 49 53 4b 20 43 48 41 4e 47 45 3b 0d 0a 09 43 ┆ THEN WAIT FOR DISK CHANGE; C┆ 0x0783e0…078400 41 4c 4c 09 50 52 49 4e 54 09 3b 0d 0a 09 43 41 4c 4c 09 43 4f 4e 53 49 09 3b 0d 0a 53 45 4c 53 ┆ALL PRINT ; CALL CONSI ; SELS┆ 0x078400…078420 (32, 0, 3) 09 43 55 52 54 52 4b 09 3b 0d 0a 09 4d 4f 56 09 42 2c 41 09 3b 0d 0a 09 50 55 53 48 09 42 09 3b ┆ CURTRK ; MOV B,A ; PUSH B ;┆ 0x078420…078440 20 53 45 54 20 53 45 43 54 4f 52 28 53 45 43 3a 3d 43 55 52 20 53 45 43 29 3b 0d 0a 09 43 41 4c ┆ SET SECTOR(SEC:=CUR SEC); CAL┆ 0x078440…078460 4c 09 53 45 43 09 3b 0d 0a 57 52 49 54 45 44 3a 09 43 41 4c 4c 09 44 57 52 49 54 45 09 3b 20 57 ┆L SEC ; WRITED: CALL DWRITE ; W┆ 0x078460…078480 52 49 54 45 20 53 45 43 54 4f 52 3b 0d 0a 09 4c 58 49 09 44 2c 42 41 44 44 09 3b 0d 0a 09 4f 52 ┆RITE SECTOR; LXI D,BADD ; OR┆ 0x078480…0784a0 41 09 41 09 3b 20 49 46 20 45 52 52 4f 52 53 20 54 48 45 4e 20 50 52 49 4e 54 20 57 41 52 4e 49 ┆A A ; IF ERRORS THEN PRINT WARNI┆ 0x0784a0…0784c0 4e 47 3b 0d 0a 09 43 4e 5a 09 45 52 52 4f 52 09 3b 0d 0a 09 50 4f 50 09 42 09 3b 0d 0a 09 49 4e ┆NG; CNZ ERROR ; POP B ; IN┆ 0x0784c0…0784e0 52 09 43 09 3b 20 53 45 43 3a 3d 20 53 45 43 2b 31 3b 0d 0a 09 4c 44 41 09 53 50 54 09 3b 0d 0a ┆R C ; SEC:= SEC+1; LDA SPT ; ┆ 0x0784e0…078500 09 43 4d 50 09 43 09 3b 20 49 46 20 53 45 43 3d 53 50 54 20 54 48 45 4e 0d 0a 09 4a 4e 5a 09 4e ┆ CMP C ; IF SEC=SPT THEN JNZ N┆ 0x078500…078520 45 58 54 44 09 3b 20 42 45 47 49 4e 0d 0a 09 4c 44 41 09 4c 54 52 4b 09 3b 0d 0a 09 43 4d 50 09 ┆EXTD ; BEGIN LDA LTRK ; CMP ┆ 0x078520…078540 42 09 3b 20 20 20 20 49 46 20 54 52 4b 3d 4c 41 53 54 20 54 48 45 4e 20 47 4f 54 4f 20 45 4e 44 ┆B ; IF TRK=LAST THEN GOTO END┆ 0x078540…078560 3b 0d 0a 09 4a 5a 09 45 44 41 54 09 3b 0d 0a 09 49 4e 52 09 42 09 3b 20 20 20 20 54 52 4b 3a 3d ┆; JZ EDAT ; INR B ; TRK:=┆ 0x078560…078580 54 52 4b 2b 31 3b 0d 0a 09 4d 56 49 09 43 2c 30 09 3b 20 20 20 20 53 45 43 3a 3d 30 3b 0d 0a 09 ┆TRK+1; MVI C,0 ; SEC:=0; ┆ 0x078580…0785a0 50 55 53 48 09 42 09 3b 0d 0a 09 4d 4f 56 09 43 2c 42 09 3b 0d 0a 09 43 41 4c 4c 09 54 52 4b 09 ┆PUSH B ; MOV C,B ; CALL TRK ┆ 0x0785a0…0785c0 3b 20 20 20 20 53 45 54 20 54 52 41 43 4b 28 54 52 4b 29 3b 0d 0a 09 50 4f 50 09 42 09 3b 20 45 ┆; SET TRACK(TRK); POP B ; E┆ 0x0785c0…0785e0 4e 44 3b 0d 0a 4e 45 58 54 44 3a 09 50 55 53 48 09 42 09 3b 0d 0a 09 43 41 4c 4c 09 53 45 43 09 ┆ND; NEXTD: PUSH B ; CALL SEC ┆ 0x0785e0…078600 3b 20 53 45 54 20 53 45 43 54 4f 52 28 53 45 43 29 3b 0d 0a 09 4c 48 4c 44 09 53 45 43 43 4e 54 ┆; SET SECTOR(SEC); LHLD SECCNT┆ 0x078600…078620 (32, 0, 4) 44 4f 53 09 3b 0d 0a 0d 0a 43 4f 4e 53 49 3a 09 4d 56 49 09 43 2c 43 4f 4e 53 49 46 3b 0d 0a 09 ┆DOS ; CONSI: MVI C,CONSIF; ┆ 0x078620…078640 4a 4d 50 09 42 44 4f 53 09 3b 0d 0a 0d 0a 45 52 52 4f 52 3a 09 4d 56 49 09 43 2c 50 52 49 4e 54 ┆JMP BDOS ; ERROR: MVI C,PRINT┆ 0x078640…078660 46 3b 20 44 49 53 4b 20 45 52 52 4f 52 3a 0d 0a 09 43 41 4c 4c 09 42 44 4f 53 09 3b 0d 0a 09 4d ┆F; DISK ERROR: CALL BDOS ; M┆ 0x078660…078680 56 49 09 43 2c 43 4f 4e 53 49 46 3b 0d 0a 09 43 41 4c 4c 09 42 44 4f 53 09 3b 0d 0a 09 43 50 49 ┆VI C,CONSIF; CALL BDOS ; CPI┆ 0x078680…0786a0 09 33 09 3b 0d 0a 09 4a 5a 09 42 4f 4f 54 09 3b 0d 0a 09 52 45 54 09 09 3b 0d 0a 0d 0a 48 45 41 ┆ 3 ; JZ BOOT ; RET ; HEA┆ 0x0786a0…0786c0 44 3a 09 44 42 09 27 52 43 37 30 30 20 20 43 50 2f 4d 20 20 42 41 43 4b 55 50 20 20 55 54 49 4c ┆D: DB 'RC700 CP/M BACKUP UTIL┆ 0x0786c0…0786e0 49 54 59 27 2c 31 33 2c 33 36 0d 0a 53 44 53 50 45 43 3a 09 44 42 09 31 33 2c 31 30 2c 31 30 2c ┆ITY',13,36 SDSPEC: DB 13,10,10,┆ 0x0786e0…078700 27 53 4f 55 52 43 45 20 44 52 49 56 45 20 28 41 20 4f 52 20 42 29 20 3f 20 27 2c 33 36 0d 0a 44 ┆'SOURCE DRIVE (A OR B) ? ',36 D┆ 0x078700…078720 44 53 50 45 43 3a 09 44 42 09 31 33 2c 31 30 2c 31 30 2c 27 44 45 53 54 49 4e 41 54 49 4f 4e 20 ┆DSPEC: DB 13,10,10,'DESTINATION ┆ 0x078720…078740 44 52 49 56 45 20 28 41 20 4f 52 20 42 29 20 3f 20 27 2c 33 36 0d 0a 4e 4f 54 4f 4b 3a 09 44 42 ┆DRIVE (A OR B) ? ',36 NOTOK: DB┆ 0x078740…078760 09 31 33 2c 31 30 2c 31 30 2c 27 42 41 43 4b 55 50 20 4e 4f 54 20 50 4f 53 53 49 42 4c 45 27 2c ┆ 13,10,10,'BACKUP NOT POSSIBLE',┆ 0x078760…078780 33 36 0d 0a 4d 53 44 49 53 4b 3a 20 44 42 09 31 33 2c 31 30 2c 27 49 4e 53 45 52 54 20 53 4f 55 ┆36 MSDISK: DB 13,10,'INSERT SOU┆ 0x078780…0787a0 52 43 45 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 54 55 52 4e 3e 27 2c 33 36 0d 0a ┆RCE DISK AND TYPE <RETURN>',36 ┆ 0x0787a0…0787c0 4d 44 44 49 53 4b 3a 20 44 42 09 31 33 2c 31 30 2c 27 49 4e 53 45 52 54 20 44 45 53 54 49 4e 41 ┆MDDISK: DB 13,10,'INSERT DESTINA┆ 0x0787c0…0787e0 54 49 4f 4e 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 54 55 52 4e 3e 27 2c 33 36 0d ┆TION DISK AND TYPE <RETURN>',36 ┆ 0x0787e0…078800 0a 42 41 44 53 3a 09 44 42 09 31 33 2c 31 30 2c 27 42 41 44 20 53 45 43 54 4f 52 20 4f 4e 20 53 ┆ BADS: DB 13,10,'BAD SECTOR ON S┆ 0x078800…078820 (32, 0, 5) 30 35 48 0d 0a 42 4f 4f 54 09 45 51 55 09 30 30 30 30 48 0d 0a 0d 0a 43 4f 4e 53 49 46 09 45 51 ┆05H BOOT EQU 0000H CONSIF EQ┆ 0x078820…078840 55 09 31 0d 0a 50 52 49 4e 54 46 09 45 51 55 09 39 0d 0a 57 42 4f 4f 54 09 45 51 55 09 31 0d 0a ┆U 1 PRINTF EQU 9 WBOOT EQU 1 ┆ 0x078840…078860 53 45 4c 44 53 4b 09 45 51 55 09 32 34 0d 0a 53 45 54 54 52 4b 09 45 51 55 09 32 37 0d 0a 53 45 ┆SELDSK EQU 24 SETTRK EQU 27 SE┆ 0x078860…078880 54 53 45 43 09 45 51 55 09 33 30 0d 0a 53 45 54 44 4d 41 09 45 51 55 09 33 33 0d 0a 52 45 41 44 ┆TSEC EQU 30 SETDMA EQU 33 READ┆ 0x078880…0788a0 46 09 45 51 55 09 33 36 0d 0a 57 52 49 54 45 46 09 45 51 55 09 33 39 0d 0a 46 44 46 4f 52 4d 09 ┆F EQU 36 WRITEF EQU 39 FDFORM ┆ 0x0788a0…0788c0 45 51 55 09 35 32 0d 0a 53 53 38 09 45 51 55 09 30 0d 0a 44 44 38 09 45 51 55 09 38 0d 0a 44 44 ┆EQU 52 SS8 EQU 0 DD8 EQU 8 DD┆ 0x0788c0…0788e0 35 09 45 51 55 09 31 36 0d 0a 0d 0a 0d 0a 09 4f 52 47 09 54 50 41 0d 0a 0d 0a 09 50 4f 50 09 48 ┆5 EQU 16 ORG TPA POP H┆ 0x0788e0…078900 09 3b 20 53 41 56 45 20 52 45 54 55 52 4e 20 54 4f 20 43 43 50 3b 0d 0a 09 53 48 4c 44 09 43 43 ┆ ; SAVE RETURN TO CCP; SHLD CC┆ 0x078900…078920 50 52 45 54 09 3b 0d 0a 09 4c 58 49 09 53 50 2c 53 54 41 43 4b 3b 0d 0a 09 4c 58 49 09 44 2c 48 ┆PRET ; LXI SP,STACK; LXI D,H┆ 0x078920…078940 45 41 44 09 3b 20 50 52 49 4e 54 20 48 45 41 44 49 4e 47 3b 0d 0a 09 43 41 4c 4c 09 50 52 49 4e ┆EAD ; PRINT HEADING; CALL PRIN┆ 0x078940…078960 54 09 3b 0d 0a 50 53 50 3a 09 4c 58 49 09 44 2c 53 44 53 50 45 43 3b 20 50 52 49 4e 54 20 53 4f ┆T ; PSP: LXI D,SDSPEC; PRINT SO┆ 0x078960…078980 55 52 43 45 20 50 52 4f 4d 50 54 3b 0d 0a 09 43 41 4c 4c 09 50 52 49 4e 54 09 3b 0d 0a 09 43 41 ┆URCE PROMPT; CALL PRINT ; CA┆ 0x078980…0789a0 4c 4c 09 43 4f 4e 53 49 09 3b 20 47 45 54 20 53 4f 55 52 43 45 20 44 52 49 56 45 3b 0d 0a 09 4d ┆LL CONSI ; GET SOURCE DRIVE; M┆ 0x0789a0…0789c0 56 49 09 43 2c 30 09 3b 0d 0a 09 43 50 49 09 27 41 27 09 3b 0d 0a 09 4a 5a 09 53 45 54 53 44 09 ┆VI C,0 ; CPI 'A' ; JZ SETSD ┆ 0x0789c0…0789e0 3b 0d 0a 09 43 50 49 09 27 42 27 09 3b 0d 0a 09 4a 4e 5a 09 50 53 50 09 3b 0d 0a 09 49 4e 52 09 ┆; CPI 'B' ; JNZ PSP ; INR ┆ 0x0789e0…078a00 43 09 3b 0d 0a 53 45 54 53 44 3a 09 4d 4f 56 09 41 2c 43 09 3b 0d 0a 09 53 54 41 09 53 44 52 49 ┆C ; SETSD: MOV A,C ; STA SDRI┆ 0x078a00…078a20 (32, 0, 6) 44 3a 09 4c 44 41 09 53 44 52 49 56 09 3b 20 53 45 4c 45 43 54 28 53 4f 55 52 43 45 20 44 52 49 ┆D: LDA SDRIV ; SELECT(SOURCE DRI┆ 0x078a20…078a40 56 45 29 3a 0d 0a 09 43 41 4c 4c 09 53 45 4c 09 3b 0d 0a 09 4c 58 49 09 48 2c 33 36 30 09 3b 0d ┆VE): CALL SEL ; LXI H,360 ; ┆ 0x078a40…078a60 0a 09 53 48 4c 44 09 53 45 43 43 4e 54 09 3b 20 53 45 43 54 4f 52 43 4f 55 4e 54 3a 3d 20 33 36 ┆ SHLD SECCNT ; SECTORCOUNT:= 36┆ 0x078a60…078a80 30 3b 0d 0a 09 4c 58 49 09 44 2c 42 55 46 09 3b 0d 0a 09 50 55 53 48 09 44 09 3b 0d 0a 09 43 41 ┆0; LXI D,BUF ; PUSH D ; CA┆ 0x078a80…078aa0 4c 4c 09 44 4d 41 09 3b 20 44 4d 41 20 41 44 44 52 3a 3d 20 53 54 41 52 54 20 4f 46 20 42 55 46 ┆LL DMA ; DMA ADDR:= START OF BUF┆ 0x078aa0…078ac0 46 45 52 3b 0d 0a 09 4c 44 41 09 43 55 52 54 52 4b 09 3b 0d 0a 09 4d 4f 56 09 43 2c 41 09 3b 0d ┆FER; LDA CURTRK ; MOV C,A ; ┆ 0x078ac0…078ae0 0a 09 43 41 4c 4c 09 54 52 4b 09 3b 20 53 45 54 20 54 52 41 43 4b 28 54 52 4b 3a 3d 43 55 52 20 ┆ CALL TRK ; SET TRACK(TRK:=CUR ┆ 0x078ae0…078b00 54 52 4b 29 3b 0d 0a 09 4c 44 41 09 43 55 52 53 45 43 09 3b 0d 0a 09 4d 4f 56 09 43 2c 41 09 3b ┆TRK); LDA CURSEC ; MOV C,A ;┆ 0x078b00…078b20 0d 0a 09 4c 44 41 09 43 55 52 54 52 4b 09 3b 0d 0a 09 4d 4f 56 09 42 2c 41 09 3b 0d 0a 09 50 55 ┆ LDA CURTRK ; MOV B,A ; PU┆ 0x078b20…078b40 53 48 09 42 09 3b 0d 0a 09 43 41 4c 4c 09 53 45 43 09 3b 20 53 45 54 20 53 45 43 54 4f 52 28 53 ┆SH B ; CALL SEC ; SET SECTOR(S┆ 0x078b40…078b60 45 43 3a 3d 43 55 52 20 53 45 43 29 3b 0d 0a 52 45 41 44 53 3a 09 43 41 4c 4c 09 44 52 45 41 44 ┆EC:=CUR SEC); READS: CALL DREAD┆ 0x078b60…078b80 09 3b 20 52 45 41 44 20 53 45 43 54 4f 52 3b 0d 0a 09 4c 58 49 09 44 2c 42 41 44 53 09 3b 0d 0a ┆ ; READ SECTOR; LXI D,BADS ; ┆ 0x078b80…078ba0 09 4f 52 41 09 41 09 3b 20 49 46 20 45 52 52 4f 52 53 20 54 48 45 4e 20 50 52 49 4e 54 20 57 41 ┆ ORA A ; IF ERRORS THEN PRINT WA┆ 0x078ba0…078bc0 52 4e 49 4e 47 3b 0d 0a 09 43 4e 5a 09 45 52 52 4f 52 09 3b 0d 0a 09 50 4f 50 09 42 09 3b 0d 0a ┆RNING; CNZ ERROR ; POP B ; ┆ 0x078bc0…078be0 09 49 4e 52 09 43 09 3b 20 53 45 43 3a 3d 20 53 45 43 20 2b 20 31 3b 0d 0a 09 4c 44 41 09 53 50 ┆ INR C ; SEC:= SEC + 1; LDA SP┆ 0x078be0…078c00 54 09 3b 0d 0a 09 43 4d 50 09 43 09 3b 20 49 46 20 53 45 43 3d 53 50 54 20 54 48 45 4e 0d 0a 09 ┆T ; CMP C ; IF SEC=SPT THEN ┆ 0x078c00…078c20 (32, 0, 7) 09 3b 0d 0a 09 44 43 58 09 48 09 3b 20 53 45 43 54 4f 52 43 4f 55 4e 54 3a 3d 53 45 43 54 4f 52 ┆ ; DCX H ; SECTORCOUNT:=SECTOR┆ 0x078c20…078c40 43 4f 55 4e 54 2d 31 3b 0d 0a 09 53 48 4c 44 09 53 45 43 43 4e 54 09 3b 0d 0a 09 50 4f 50 09 42 ┆COUNT-1; SHLD SECCNT ; POP B┆ 0x078c40…078c60 09 3b 20 49 46 20 53 45 43 54 4f 52 43 4f 55 4e 54 3d 30 20 54 48 45 4e 0d 0a 09 4d 4f 56 09 41 ┆ ; IF SECTORCOUNT=0 THEN MOV A┆ 0x078c60…078c80 2c 48 09 3b 20 20 47 4f 54 4f 20 4e 45 58 54 20 52 45 41 44 3b 0d 0a 09 4f 52 41 09 41 09 3b 0d ┆,H ; GOTO NEXT READ; ORA A ; ┆ 0x078c80…078ca0 0a 09 4a 4e 5a 09 44 44 4d 41 09 3b 0d 0a 09 4d 4f 56 09 41 2c 4c 09 3b 0d 0a 09 4f 52 41 09 41 ┆ JNZ DDMA ; MOV A,L ; ORA A┆ 0x078ca0…078cc0 09 3b 0d 0a 09 4a 5a 09 4e 44 41 54 09 3b 0d 0a 44 44 4d 41 3a 09 50 4f 50 09 44 09 3b 0d 0a 09 ┆ ; JZ NDAT ; DDMA: POP D ; ┆ 0x078cc0…078ce0 4c 58 49 09 48 2c 31 32 38 09 3b 0d 0a 09 44 41 44 09 44 09 3b 0d 0a 09 58 43 48 47 09 09 3b 0d ┆LXI H,128 ; DAD D ; XCHG ; ┆ 0x078ce0…078d00 0a 09 50 55 53 48 09 44 09 3b 0d 0a 09 50 55 53 48 09 42 09 3b 20 44 4d 41 20 41 44 44 52 3a 3d ┆ PUSH D ; PUSH B ; DMA ADDR:=┆ 0x078d00…078d20 20 44 4d 41 20 41 44 44 52 20 2b 20 31 32 38 3b 0d 0a 09 43 41 4c 4c 09 44 4d 41 09 3b 0d 0a 09 ┆ DMA ADDR + 128; CALL DMA ; ┆ 0x078d20…078d40 4a 4d 50 09 57 52 49 54 45 44 09 3b 20 47 4f 54 4f 20 57 52 49 54 45 20 53 45 43 54 4f 52 3b 0d ┆JMP WRITED ; GOTO WRITE SECTOR; ┆ 0x078d40…078d60 0a 0d 0a 4e 44 41 54 3a 09 4d 4f 56 09 41 2c 42 09 3b 20 4e 45 58 54 20 52 45 41 44 3a 0d 0a 09 ┆ NDAT: MOV A,B ; NEXT READ: ┆ 0x078d60…078d80 53 54 41 09 43 55 52 54 52 4b 09 3b 0d 0a 09 4d 4f 56 09 41 2c 43 09 3b 20 43 55 52 54 52 4b 3a ┆STA CURTRK ; MOV A,C ; CURTRK:┆ 0x078d80…078da0 3d 54 52 4b 3b 0d 0a 09 53 54 41 09 43 55 52 53 45 43 09 3b 20 43 55 52 53 45 43 3a 3d 53 45 43 ┆=TRK; STA CURSEC ; CURSEC:=SEC┆ 0x078da0…078dc0 3b 0d 0a 09 50 4f 50 09 44 09 3b 0d 0a 09 43 41 4c 4c 09 46 4c 55 53 48 09 3b 20 46 4c 55 53 48 ┆; POP D ; CALL FLUSH ; FLUSH┆ 0x078dc0…078de0 20 42 55 46 46 45 52 3b 0d 0a 09 4a 4d 50 09 52 44 41 54 09 3b 20 47 4f 54 4f 20 52 45 41 44 20 ┆ BUFFER; JMP RDAT ; GOTO READ ┆ 0x078de0…078e00 44 41 54 41 3b 0d 0a 0d 0a 45 44 41 54 3a 09 43 41 4c 4c 09 46 4c 55 53 48 09 3b 20 45 4e 44 20 ┆DATA; EDAT: CALL FLUSH ; END ┆ 0x078e00…078e20 (32, 0, 8) 4f 55 52 43 45 20 44 49 53 4b 27 2c 33 36 0d 0a 42 41 44 44 3a 09 44 42 09 31 33 2c 31 30 2c 27 ┆OURCE DISK',36 BADD: DB 13,10,'┆ 0x078e20…078e40 42 41 44 20 53 45 43 54 4f 52 20 4f 4e 20 44 45 53 54 49 4e 41 54 49 4f 4e 20 44 49 53 4b 27 2c ┆BAD SECTOR ON DESTINATION DISK',┆ 0x078e40…078e60 33 36 0d 0a 4d 53 59 53 44 3a 09 44 42 09 31 33 2c 31 30 2c 27 49 4e 53 45 52 54 20 53 59 53 54 ┆36 MSYSD: DB 13,10,'INSERT SYST┆ 0x078e60…078e80 45 4d 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 54 55 52 4e 3e 27 2c 33 36 0d 0a 4f ┆EM DISK AND TYPE <RETURN>',36 O┆ 0x078e80…078ea0 4b 3a 09 44 42 09 31 33 2c 31 30 2c 27 42 41 43 4b 55 50 20 43 4f 4d 50 4c 45 54 45 27 2c 33 36 ┆K: DB 13,10,'BACKUP COMPLETE',36┆ 0x078ea0…078ec0 0d 0a 43 52 4c 46 3a 09 44 42 09 31 33 2c 31 30 2c 33 36 0d 0a 0d 0a 43 43 50 52 45 54 3a 09 44 ┆ CRLF: DB 13,10,36 CCPRET: D┆ 0x078ec0…078ee0 57 09 30 0d 0a 0d 0a 46 54 52 4b 3a 09 44 42 09 30 0d 0a 4c 54 52 4b 3a 09 44 42 09 30 0d 0a 53 ┆W 0 FTRK: DB 0 LTRK: DB 0 S┆ 0x078ee0…078f00 50 54 3a 09 44 42 09 30 0d 0a 53 44 52 49 56 3a 09 44 42 09 30 0d 0a 44 44 52 49 56 3a 09 44 42 ┆PT: DB 0 SDRIV: DB 0 DDRIV: DB┆ 0x078f00…078f20 09 30 0d 0a 44 46 4c 41 47 3a 09 44 42 09 30 0d 0a 0d 0a 43 55 52 54 52 4b 3a 09 44 42 09 30 0d ┆ 0 DFLAG: DB 0 CURTRK: DB 0 ┆ 0x078f20…078f40 0a 43 55 52 53 45 43 3a 09 44 42 09 30 0d 0a 53 45 43 43 4e 54 3a 09 44 57 09 30 0d 0a 0d 0a 09 ┆ CURSEC: DB 0 SECCNT: DW 0 ┆ 0x078f40…078f60 44 53 09 33 31 0d 0a 53 54 41 43 4b 3a 09 44 53 09 31 09 3b 20 4c 4f 43 41 4c 20 53 54 41 43 4b ┆DS 31 STACK: DS 1 ; LOCAL STACK┆ 0x078f60…078f80 0d 0a 0d 0a 42 55 46 3a 09 44 57 09 30 09 3b 20 52 45 41 44 2f 57 52 49 54 45 20 42 55 46 46 45 ┆ BUF: DW 0 ; READ/WRITE BUFFE┆ 0x078f80…078fa0 52 0d 0a 0d 0a 09 45 4e 44 09 31 30 30 48 09 3b 0d 0a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆R END 100H ; ┆ 0x078fa0…078fc0 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆ ┆ […0x2…] 0x079000…079020 (32, 0, 9) 56 09 3b 0d 0a 50 44 50 3a 09 4c 58 49 09 44 2c 44 44 53 50 45 43 3b 20 50 52 49 4e 54 20 44 45 ┆V ; PDP: LXI D,DDSPEC; PRINT DE┆ 0x079020…079040 53 54 49 4e 41 54 49 4f 4e 20 50 52 4f 4d 50 54 3b 0d 0a 09 43 41 4c 4c 09 50 52 49 4e 54 09 3b ┆STINATION PROMPT; CALL PRINT ;┆ 0x079040…079060 0d 0a 09 43 41 4c 4c 09 43 4f 4e 53 49 09 3b 20 47 45 54 20 44 45 53 54 49 4e 41 54 49 4f 4e 20 ┆ CALL CONSI ; GET DESTINATION ┆ 0x079060…079080 44 52 49 56 45 3b 0d 0a 09 4d 56 49 09 43 2c 30 09 3b 0d 0a 09 43 50 49 09 27 41 27 09 3b 0d 0a ┆DRIVE; MVI C,0 ; CPI 'A' ; ┆ 0x079080…0790a0 09 4a 5a 09 53 45 54 44 44 09 3b 0d 0a 09 43 50 49 09 27 42 27 09 3b 0d 0a 09 4a 4e 5a 09 50 44 ┆ JZ SETDD ; CPI 'B' ; JNZ PD┆ 0x0790a0…0790c0 50 09 3b 0d 0a 09 49 4e 52 09 43 09 3b 0d 0a 53 45 54 44 44 3a 09 4d 4f 56 09 41 2c 43 09 3b 0d ┆P ; INR C ; SETDD: MOV A,C ; ┆ 0x0790c0…0790e0 0a 09 53 54 41 09 44 44 52 49 56 09 3b 0d 0a 09 4c 48 4c 44 09 57 42 4f 4f 54 09 3b 20 42 43 3a ┆ STA DDRIV ; LHLD WBOOT ; BC:┆ 0x0790e0…079100 3d 20 46 4c 4f 50 50 59 20 46 4f 52 4d 41 54 53 3b 0d 0a 09 4c 58 49 09 44 2c 46 44 46 4f 52 4d ┆= FLOPPY FORMATS; LXI D,FDFORM┆ 0x079100…079120 3b 0d 0a 09 44 41 44 09 44 09 3b 0d 0a 09 4d 4f 56 09 42 2c 4d 09 3b 0d 0a 09 49 4e 58 09 48 09 ┆; DAD D ; MOV B,M ; INX H ┆ 0x079120…079140 3b 0d 0a 09 4d 4f 56 09 43 2c 4d 09 3b 0d 0a 09 4c 58 49 09 48 2c 53 44 52 49 56 09 3b 20 49 46 ┆; MOV C,M ; LXI H,SDRIV ; IF┆ 0x079140…079160 20 53 4f 55 52 43 45 20 44 52 49 56 45 20 3c 3e 0d 0a 09 43 4d 50 09 4d 09 3b 20 20 44 45 53 54 ┆ SOURCE DRIVE <> CMP M ; DEST┆ 0x079160…079180 49 4e 41 54 49 4f 4e 20 44 52 49 56 45 20 54 48 45 4e 0d 0a 09 4d 56 49 09 41 2c 30 09 3b 0d 0a ┆INATION DRIVE THEN MVI A,0 ; ┆ 0x079180…0791a0 09 4a 5a 09 53 45 54 44 46 09 3b 0d 0a 09 4d 4f 56 09 41 2c 42 09 3b 0d 0a 09 43 4d 50 09 43 09 ┆ JZ SETDF ; MOV A,B ; CMP C ┆ 0x0791a0…0791c0 3b 20 49 46 20 46 4f 52 4d 41 54 28 41 29 3c 3e 46 4f 52 4d 41 54 28 42 29 20 54 48 45 4e 0d 0a ┆; IF FORMAT(A)<>FORMAT(B) THEN ┆ 0x0791c0…0791e0 09 4c 58 49 09 44 2c 4e 4f 54 4f 4b 09 3b 0d 0a 09 43 4e 5a 09 46 49 4e 49 53 09 3b 20 20 45 58 ┆ LXI D,NOTOK ; CNZ FINIS ; EX┆ 0x0791e0…079200 49 54 28 4e 4f 54 20 41 4c 4c 4f 57 45 44 29 3b 0d 0a 09 50 55 53 48 09 42 09 3b 0d 0a 09 4c 58 ┆IT(NOT ALLOWED); PUSH B ; LX┆ 0x079200…079220 (32, 0, 10) 4a 4e 5a 09 4e 45 58 54 53 09 3b 20 42 45 47 49 4e 0d 0a 09 4c 44 41 09 4c 54 52 4b 09 3b 0d 0a ┆JNZ NEXTS ; BEGIN LDA LTRK ; ┆ 0x079220…079240 09 43 4d 50 09 42 09 3b 20 20 20 20 49 46 20 54 52 4b 3d 4c 41 53 54 20 54 48 45 4e 20 47 4f 54 ┆ CMP B ; IF TRK=LAST THEN GOT┆ 0x079240…079260 4f 20 57 52 49 54 45 3b 0d 0a 09 4a 5a 09 57 44 41 54 09 3b 0d 0a 09 49 4e 52 09 42 09 3b 20 20 ┆O WRITE; JZ WDAT ; INR B ; ┆ 0x079260…079280 20 20 54 52 4b 3a 3d 54 52 4b 2b 31 3b 0d 0a 09 4d 56 49 09 43 2c 30 09 3b 20 20 20 20 53 45 43 ┆ TRK:=TRK+1; MVI C,0 ; SEC┆ 0x079280…0792a0 3a 3d 30 3b 0d 0a 09 50 55 53 48 09 42 09 3b 0d 0a 09 4d 4f 56 09 43 2c 42 09 3b 0d 0a 09 43 41 ┆:=0; PUSH B ; MOV C,B ; CA┆ 0x0792a0…0792c0 4c 4c 09 54 52 4b 09 3b 20 20 20 20 53 45 54 20 54 52 41 43 4b 28 54 52 4b 29 3b 0d 0a 09 50 4f ┆LL TRK ; SET TRACK(TRK); PO┆ 0x0792c0…0792e0 50 09 42 09 3b 20 45 4e 44 3b 0d 0a 4e 45 58 54 53 3a 20 20 50 55 53 48 09 42 09 3b 0d 0a 09 43 ┆P B ; END; NEXTS: PUSH B ; C┆ 0x0792e0…079300 41 4c 4c 09 53 45 43 09 3b 20 53 45 54 20 53 45 43 54 4f 52 28 53 45 43 29 3b 0d 0a 09 4c 48 4c ┆ALL SEC ; SET SECTOR(SEC); LHL┆ 0x079300…079320 44 09 53 45 43 43 4e 54 09 3b 0d 0a 09 44 43 58 09 48 09 3b 20 53 45 43 54 4f 52 43 4f 55 4e 54 ┆D SECCNT ; DCX H ; SECTORCOUNT┆ 0x079320…079340 3a 3d 53 45 43 54 4f 52 43 4f 55 4e 54 2d 31 3b 0d 0a 09 53 48 4c 44 09 53 45 43 43 4e 54 09 3b ┆:=SECTORCOUNT-1; SHLD SECCNT ;┆ 0x079340…079360 0d 0a 09 50 4f 50 09 42 09 3b 0d 0a 09 4d 4f 56 09 41 2c 48 09 3b 20 49 46 20 53 45 43 54 4f 52 ┆ POP B ; MOV A,H ; IF SECTOR┆ 0x079360…079380 43 4f 55 4e 54 3d 30 20 54 48 45 4e 20 47 4f 54 4f 20 57 52 49 54 45 3b 0d 0a 09 4f 52 41 09 41 ┆COUNT=0 THEN GOTO WRITE; ORA A┆ 0x079380…0793a0 09 3b 0d 0a 09 4a 4e 5a 09 53 44 4d 41 09 3b 0d 0a 09 4d 4f 56 09 41 2c 4c 09 3b 0d 0a 09 4f 52 ┆ ; JNZ SDMA ; MOV A,L ; OR┆ 0x0793a0…0793c0 41 09 41 09 3b 0d 0a 09 4a 5a 09 57 44 41 54 09 3b 0d 0a 53 44 4d 41 3a 09 50 4f 50 09 44 09 3b ┆A A ; JZ WDAT ; SDMA: POP D ;┆ 0x0793c0…0793e0 0d 0a 09 4c 58 49 09 48 2c 31 32 38 09 3b 20 44 4d 41 20 41 44 44 52 3a 3d 20 44 4d 41 20 41 44 ┆ LXI H,128 ; DMA ADDR:= DMA AD┆ 0x0793e0…079400 44 52 20 2b 20 31 32 38 3b 0d 0a 09 44 41 44 09 44 09 3b 0d 0a 09 58 43 48 47 09 09 3b 0d 0a 09 ┆DR + 128; DAD D ; XCHG ; ┆ 0x079400…079420 (32, 0, 11) 4f 46 20 43 4f 50 59 3a 0d 0a 09 4c 58 49 09 44 2c 4f 4b 09 3b 0d 0a 09 43 41 4c 4c 09 50 52 49 ┆OF COPY: LXI D,OK ; CALL PRI┆ 0x079420…079440 4e 54 09 3b 20 43 4f 50 59 20 43 4f 4d 50 4c 45 54 45 3b 0d 0a 09 4c 58 49 09 44 2c 4d 53 59 53 ┆NT ; COPY COMPLETE; LXI D,MSYS┆ 0x079440…079460 44 09 3b 0d 0a 09 43 41 4c 4c 09 50 52 49 4e 54 09 3b 20 57 41 49 54 20 46 4f 52 20 43 48 41 4e ┆D ; CALL PRINT ; WAIT FOR CHAN┆ 0x079460…079480 47 45 20 54 4f 20 53 59 53 54 45 4d 20 44 49 53 4b 3a 0d 0a 09 43 41 4c 4c 09 43 4f 4e 53 49 09 ┆GE TO SYSTEM DISK: CALL CONSI ┆ 0x079480…0794a0 3b 0d 0a 09 4a 4d 50 09 42 4f 4f 54 09 3b 20 57 41 52 4d 20 42 4f 4f 54 0d 0a 0d 0a 46 4c 55 53 ┆; JMP BOOT ; WARM BOOT FLUS┆ 0x0794a0…0794c0 48 3a 09 4c 44 41 09 43 55 52 54 52 4b 09 3b 20 46 4f 52 43 45 20 42 55 46 46 45 52 20 57 52 49 ┆H: LDA CURTRK ; FORCE BUFFER WRI┆ 0x0794c0…0794e0 54 45 3a 0d 0a 09 4d 4f 56 09 43 2c 41 09 3b 0d 0a 09 44 43 52 09 43 09 3b 0d 0a 09 43 41 4c 4c ┆TE: MOV C,A ; DCR C ; CALL┆ 0x0794e0…079500 09 54 52 4b 09 3b 20 53 45 54 20 54 52 41 43 4b 28 43 55 52 54 52 4b 2d 31 29 3b 0d 0a 09 4c 44 ┆ TRK ; SET TRACK(CURTRK-1); LD┆ 0x079500…079520 41 09 43 55 52 53 45 43 09 3b 0d 0a 09 4d 4f 56 09 43 2c 41 09 3b 0d 0a 09 43 41 4c 4c 09 53 45 ┆A CURSEC ; MOV C,A ; CALL SE┆ 0x079520…079540 43 09 3b 20 53 45 54 20 53 45 43 54 4f 52 28 43 55 52 53 45 43 29 3b 0d 0a 09 43 41 4c 4c 09 44 ┆C ; SET SECTOR(CURSEC); CALL D┆ 0x079540…079560 52 45 41 44 09 3b 0d 0a 09 4c 58 49 09 44 2c 42 41 44 44 09 3b 0d 0a 09 4f 52 41 09 41 09 3b 20 ┆READ ; LXI D,BADD ; ORA A ; ┆ 0x079560…079580 49 46 20 45 52 52 4f 52 20 54 48 45 4e 20 50 52 49 4e 54 20 57 41 52 4e 49 4e 47 3b 0d 0a 09 43 ┆IF ERROR THEN PRINT WARNING; C┆ 0x079580…0795a0 4e 5a 09 45 52 52 4f 52 09 3b 0d 0a 09 52 45 54 09 09 3b 0d 0a 0d 0a 53 45 4c 3a 09 4d 4f 56 09 ┆NZ ERROR ; RET ; SEL: MOV ┆ 0x0795a0…0795c0 43 2c 41 09 3b 20 53 45 4c 45 43 54 20 44 52 49 56 45 20 49 4e 20 41 3a 0d 0a 09 4c 48 4c 44 09 ┆C,A ; SELECT DRIVE IN A: LHLD ┆ 0x0795c0…0795e0 57 42 4f 4f 54 09 3b 0d 0a 09 4c 58 49 09 44 2c 53 45 4c 44 53 4b 3b 0d 0a 09 44 41 44 09 44 09 ┆WBOOT ; LXI D,SELDSK; DAD D ┆ 0x0795e0…079600 3b 0d 0a 09 50 43 48 4c 09 09 3b 0d 0a 0d 0a 54 52 4b 3a 09 4c 48 4c 44 09 57 42 4f 4f 54 09 3b ┆; PCHL ; TRK: LHLD WBOOT ;┆ 0x079600…079620 (32, 0, 12) 0e 0e cd 4c 14 c9 21 2a 15 70 2b 71 2a 29 15 eb 0e 0f cd 4f 14 32 27 15 c9 21 2c 15 70 2b 71 2a ┆ L !* p+q*) O 2' !, p+q*┆ 0x079620…079640 2b 15 eb 0e 11 cd 4f 14 32 27 15 c9 11 00 00 0e 12 cd 4f 14 32 27 15 c9 11 00 00 0e 19 cd 4f 14 ┆+ O 2' O 2' O ┆ 0x079640…079660 c9 21 2e 15 70 2b 71 2a 2d 15 eb 0e 1a cd 4c 14 c9 11 00 00 0e 1b cd 52 14 c9 11 00 00 0e 18 cd ┆ !. p+q*- L R ┆ 0x079660…079680 52 14 c9 11 00 00 0e 1c cd 4c 14 c9 11 00 00 0e 1d cd 52 14 c9 11 5c 00 0e 1e cd 4c 14 c9 11 00 ┆R L R Ø L ┆ 0x079680…0796a0 00 0e 1f cd 52 14 22 1e 15 c9 11 ff 00 0e 20 cd 4f 14 c9 21 2f 15 71 2a 2f 15 26 00 eb 0e 20 cd ┆ R " O !/ q*/ & ┆ 0x0796a0…0796c0 4c 14 c9 21 31 15 70 2b 71 2a 30 15 eb 0e 23 cd 4c 14 c9 cd 7e 05 2a 1e 15 23 23 4e 21 01 00 cd ┆L !1 p+q*0 # L ü * ##N! ┆ 0x0796c0…0796e0 bd 14 11 80 00 cd 9e 14 22 54 15 c9 21 56 15 71 2a 56 15 4d cd f6 04 cd b3 05 c9 21 58 15 70 2b ┆ "T !V q*V M !X p+┆ 0x0796e0…079700 71 0e 03 21 57 15 cd c3 14 eb 2a 20 15 19 3e 07 11 57 15 e5 cd 72 14 23 4d e1 cd b2 14 c9 21 5f ┆q !W * > W r #M !_┆ 0x079700…079720 15 70 2b 71 21 60 15 36 00 3e 03 21 60 15 be da 36 06 2a 60 15 26 00 eb 2a 5e 15 19 e5 2a 60 15 ┆ p+q!` 6 > !` 6 *` & *^ *` ┆ 0x079720…079740 26 00 01 59 15 09 d1 1a be ca 2f 06 3e 00 c9 21 60 15 34 c2 09 06 3e 01 c9 2a 5d 15 26 00 01 80 ┆& Y / > !` 4 > *Å & ┆ 0x079740…079760 00 09 7e fe 20 c2 4f 06 21 5d 15 34 c3 39 06 21 61 15 36 00 3a 61 15 fe 04 d2 e6 06 2a 5d 15 26 ┆ ü O !Å 4 9 !a 6 :a *Å &┆ 0x079760…079780 00 01 80 00 09 7e 32 62 15 4f 3e 01 b9 d2 7a 06 2a 62 15 4d cd eb 06 c3 7f 06 0e 20 cd eb 06 3e ┆ ü2b O> z *b M >┆ 0x079780…0797a0 01 21 62 15 96 9f 2f f5 7e d6 2c d6 01 9f c1 48 b1 f5 7e d6 3a d6 01 9f c1 48 b1 f5 7e d6 2a d6 ┆ !b / ü , H ü : H ü * ┆ 0x0797a0…0797c0 01 9f c1 48 b1 f5 7e d6 2e d6 01 9f c1 48 b1 f5 7e d6 3e d6 01 9f c1 48 b1 f5 7e d6 3c d6 01 9f ┆ H ü . H ü > H ü < ┆ 0x0797c0…0797e0 c1 48 b1 f5 7e d6 3d d6 01 9f c1 48 b1 1f d2 df 06 2a 5d 15 26 00 01 80 00 09 36 01 c3 e3 06 21 ┆ H ü = H *Å & 6 !┆ 0x0797e0…079800 5d 15 34 c3 54 06 21 5d 15 34 c9 21 63 15 71 2a 61 15 26 00 01 59 15 09 3a 63 15 77 21 61 15 34 ┆Å 4 T !Å 4 !c q*a & Y :c w!a 4┆ 0x079800…079820 (32, 0, 13) 49 09 44 2c 43 52 4c 46 09 3b 0d 0a 09 43 41 4c 4c 09 50 52 49 4e 54 09 3b 0d 0a 09 4c 58 49 09 ┆I D,CRLF ; CALL PRINT ; LXI ┆ 0x079820…079840 44 2c 4d 53 44 49 53 4b 3b 0d 0a 09 43 41 4c 4c 09 50 52 49 4e 54 09 3b 20 57 41 49 54 20 46 4f ┆D,MSDISK; CALL PRINT ; WAIT FO┆ 0x079840…079860 52 20 53 4f 55 52 43 45 20 44 49 53 4b 3a 0d 0a 09 43 41 4c 4c 09 43 4f 4e 53 49 09 3b 0d 0a 09 ┆R SOURCE DISK: CALL CONSI ; ┆ 0x079860…079880 4c 58 49 09 44 2c 4d 44 44 49 53 4b 3b 0d 0a 09 43 41 4c 4c 09 50 52 49 4e 54 09 3b 20 57 41 49 ┆LXI D,MDDISK; CALL PRINT ; WAI┆ 0x079880…0798a0 54 20 46 4f 52 20 44 45 53 54 49 4e 41 54 49 4f 4e 20 44 49 53 4b 3a 0d 0a 09 43 41 4c 4c 09 43 ┆T FOR DESTINATION DISK: CALL C┆ 0x0798a0…0798c0 4f 4e 53 49 09 3b 0d 0a 09 50 4f 50 09 42 09 3b 0d 0a 09 4d 56 49 09 41 2c 31 09 3b 0d 0a 53 45 ┆ONSI ; POP B ; MVI A,1 ; SE┆ 0x0798c0…0798e0 54 44 46 3a 09 53 54 41 09 44 46 4c 41 47 09 3b 0d 0a 09 4d 4f 56 09 41 2c 43 09 3b 0d 0a 09 43 ┆TDF: STA DFLAG ; MOV A,C ; C┆ 0x0798e0…079900 50 49 09 53 53 38 09 3b 20 28 46 49 52 53 54 20 54 52 41 43 4b 2c 4c 41 53 54 20 54 52 41 43 4b ┆PI SS8 ; (FIRST TRACK,LAST TRACK┆ 0x079900…079920 2c 0d 0a 09 4a 4e 5a 09 53 45 54 44 38 09 3b 20 20 53 45 43 54 4f 52 53 20 50 52 20 54 52 41 43 ┆, JNZ SETD8 ; SECTORS PR TRAC┆ 0x079920…079940 4b 29 20 3a 3d 0d 0a 09 4d 56 49 09 41 2c 30 09 3b 0d 0a 09 53 54 41 09 46 54 52 4b 09 3b 0d 0a ┆K) := MVI A,0 ; STA FTRK ; ┆ 0x079940…079960 09 4d 56 49 09 41 2c 37 36 09 3b 20 20 49 46 20 46 4f 52 4d 41 54 3d 20 38 22 20 53 53 20 54 48 ┆ MVI A,76 ; IF FORMAT= 8" SS TH┆ 0x079960…079980 45 4e 0d 0a 09 53 54 41 09 4c 54 52 4b 09 3b 20 20 20 28 30 2c 37 36 2c 32 36 29 20 20 20 20 20 ┆EN STA LTRK ; (0,76,26) ┆ 0x079980…0799a0 20 20 45 4c 53 45 0d 0a 09 4d 56 49 09 41 2c 32 36 09 3b 0d 0a 09 53 54 41 09 53 50 54 09 3b 0d ┆ ELSE MVI A,26 ; STA SPT ; ┆ 0x0799a0…0799c0 0a 09 4a 4d 50 09 53 45 54 43 54 09 3b 20 20 0d 0a 53 45 54 44 38 3a 09 43 50 49 09 44 44 38 09 ┆ JMP SETCT ; SETD8: CPI DD8 ┆ 0x0799c0…0799e0 3b 20 20 49 46 20 46 4f 52 4d 41 54 3d 20 38 22 20 44 44 20 54 48 45 4e 0d 0a 09 4a 4e 5a 09 53 ┆; IF FORMAT= 8" DD THEN JNZ S┆ 0x0799e0…079a00 45 54 35 09 3b 20 20 20 28 31 2c 36 31 2c 31 32 30 29 20 20 20 20 20 20 45 4c 53 45 0d 0a 09 4d ┆ET5 ; (1,61,120) ELSE M┆ 0x079a00…079a20 (32, 0, 14) 50 55 53 48 09 44 09 3b 0d 0a 09 50 55 53 48 09 42 09 3b 0d 0a 09 43 41 4c 4c 09 44 4d 41 09 3b ┆PUSH D ; PUSH B ; CALL DMA ;┆ 0x079a20…079a40 0d 0a 09 4a 4d 50 09 52 45 41 44 53 09 3b 20 47 4f 54 4f 20 52 45 41 44 20 53 45 43 54 4f 52 3b ┆ JMP READS ; GOTO READ SECTOR;┆ 0x079a40…079a60 0d 0a 57 44 41 54 3a 09 50 4f 50 09 44 09 3b 20 57 52 49 54 45 20 44 41 54 41 3a 0d 0a 09 4c 44 ┆ WDAT: POP D ; WRITE DATA: LD┆ 0x079a60…079a80 41 09 44 46 4c 41 47 09 3b 0d 0a 09 4f 52 41 09 41 09 3b 20 49 46 20 44 45 53 54 49 4e 41 54 49 ┆A DFLAG ; ORA A ; IF DESTINATI┆ 0x079a80…079aa0 4f 4e 20 44 52 49 56 45 20 3d 20 53 4f 55 52 43 45 20 44 52 49 56 45 0d 0a 09 4a 4e 5a 09 53 45 ┆ON DRIVE = SOURCE DRIVE JNZ SE┆ 0x079aa0…079ac0 4c 44 45 09 3b 20 20 54 48 45 4e 20 57 41 49 54 20 46 4f 52 20 44 49 53 4b 20 43 48 41 4e 47 45 ┆LDE ; THEN WAIT FOR DISK CHANGE┆ 0x079ac0…079ae0 3b 0d 0a 09 4c 58 49 09 44 2c 4d 44 44 49 53 4b 3b 0d 0a 09 43 41 4c 4c 09 50 52 49 4e 54 09 3b ┆; LXI D,MDDISK; CALL PRINT ;┆ 0x079ae0…079b00 0d 0a 09 43 41 4c 4c 09 43 4f 4e 53 49 09 3b 0d 0a 53 45 4c 44 45 3a 09 4c 44 41 09 44 44 52 49 ┆ CALL CONSI ; SELDE: LDA DDRI┆ 0x079b00…079b20 56 09 3b 0d 0a 09 43 41 4c 4c 09 53 45 4c 09 3b 20 53 45 4c 45 43 54 28 44 45 53 54 49 4e 41 54 ┆V ; CALL SEL ; SELECT(DESTINAT┆ 0x079b20…079b40 49 4f 4e 20 44 52 49 56 45 29 3b 0d 0a 09 4c 58 49 09 48 2c 33 36 30 09 3b 0d 0a 09 53 48 4c 44 ┆ION DRIVE); LXI H,360 ; SHLD┆ 0x079b40…079b60 09 53 45 43 43 4e 54 09 3b 20 53 45 43 54 4f 52 43 4f 55 4e 54 3a 3d 20 33 36 30 3b 0d 0a 09 4c ┆ SECCNT ; SECTORCOUNT:= 360; L┆ 0x079b60…079b80 58 49 09 44 2c 42 55 46 09 3b 0d 0a 09 50 55 53 48 09 44 09 3b 0d 0a 09 43 41 4c 4c 09 44 4d 41 ┆XI D,BUF ; PUSH D ; CALL DMA┆ 0x079b80…079ba0 09 3b 20 44 4d 41 20 41 44 44 52 3a 3d 20 53 54 41 52 54 20 4f 46 20 42 55 46 46 45 52 3b 0d 0a ┆ ; DMA ADDR:= START OF BUFFER; ┆ 0x079ba0…079bc0 09 4c 44 41 09 43 55 52 54 52 4b 09 3b 0d 0a 09 4d 4f 56 09 43 2c 41 09 3b 0d 0a 09 43 41 4c 4c ┆ LDA CURTRK ; MOV C,A ; CALL┆ 0x079bc0…079be0 09 54 52 4b 09 3b 20 53 45 54 20 54 52 41 43 4b 28 54 52 4b 3a 3d 43 55 52 20 54 52 4b 29 3b 0d ┆ TRK ; SET TRACK(TRK:=CUR TRK); ┆ 0x079be0…079c00 0a 09 4c 44 41 09 43 55 52 53 45 43 09 3b 0d 0a 09 4d 4f 56 09 43 2c 41 09 3b 0d 0a 09 4c 44 41 ┆ LDA CURSEC ; MOV C,A ; LDA┆ 0x079c00…079c20 (32, 0, 15) 20 53 45 54 20 54 52 41 43 4b 20 49 4e 20 43 3a 0d 0a 09 4c 58 49 09 44 2c 53 45 54 54 52 4b 3b ┆ SET TRACK IN C: LXI D,SETTRK;┆ 0x079c20…079c40 0d 0a 09 44 41 44 09 44 09 3b 0d 0a 09 4d 56 49 09 42 2c 30 09 3b 0d 0a 09 50 43 48 4c 09 09 3b ┆ DAD D ; MVI B,0 ; PCHL ;┆ 0x079c40…079c60 0d 0a 0d 0a 53 45 43 3a 09 4c 48 4c 44 09 57 42 4f 4f 54 09 3b 20 53 45 54 20 53 45 43 54 4f 52 ┆ SEC: LHLD WBOOT ; SET SECTOR┆ 0x079c60…079c80 20 49 4e 20 43 3a 0d 0a 09 4c 58 49 09 44 2c 53 45 54 53 45 43 3b 0d 0a 09 44 41 44 09 44 09 3b ┆ IN C: LXI D,SETSEC; DAD D ;┆ 0x079c80…079ca0 0d 0a 09 4d 56 49 09 42 2c 30 09 3b 0d 0a 09 50 43 48 4c 09 09 3b 0d 0a 0d 0a 44 4d 41 3a 09 4c ┆ MVI B,0 ; PCHL ; DMA: L┆ 0x079ca0…079cc0 48 4c 44 09 57 42 4f 4f 54 09 3b 20 53 45 54 20 44 4d 41 20 41 44 44 52 45 53 53 20 49 4e 20 44 ┆HLD WBOOT ; SET DMA ADDRESS IN D┆ 0x079cc0…079ce0 2c 45 3a 0d 0a 09 4d 4f 56 09 42 2c 44 09 3b 0d 0a 09 4d 4f 56 09 43 2c 45 09 3b 0d 0a 09 4c 58 ┆,E: MOV B,D ; MOV C,E ; LX┆ 0x079ce0…079d00 49 09 44 2c 53 45 54 44 4d 41 3b 0d 0a 09 44 41 44 09 44 09 3b 0d 0a 09 50 43 48 4c 09 09 3b 0d ┆I D,SETDMA; DAD D ; PCHL ; ┆ 0x079d00…079d20 0a 0d 0a 44 52 45 41 44 3a 09 4c 48 4c 44 09 57 42 4f 4f 54 09 3b 20 52 45 41 44 20 53 45 43 54 ┆ DREAD: LHLD WBOOT ; READ SECT┆ 0x079d20…079d40 4f 52 3a 0d 0a 09 4c 58 49 09 44 2c 52 45 41 44 46 09 3b 0d 0a 09 44 41 44 09 44 09 3b 0d 0a 09 ┆OR: LXI D,READF ; DAD D ; ┆ 0x079d40…079d60 50 43 48 4c 09 09 3b 0d 0a 0d 0a 44 57 52 49 54 45 3a 09 4c 48 4c 44 09 57 42 4f 4f 54 09 3b 20 ┆PCHL ; DWRITE: LHLD WBOOT ; ┆ 0x079d60…079d80 57 52 49 54 45 20 53 45 43 54 4f 52 3a 0d 0a 09 4c 58 49 09 44 2c 57 52 49 54 45 46 3b 0d 0a 09 ┆WRITE SECTOR: LXI D,WRITEF; ┆ 0x079d80…079da0 44 41 44 09 44 09 3b 0d 0a 09 50 43 48 4c 09 09 3b 0d 0a 0d 0a 46 49 4e 49 53 3a 09 4d 56 49 09 ┆DAD D ; PCHL ; FINIS: MVI ┆ 0x079da0…079dc0 43 2c 50 52 49 4e 54 46 3b 0d 0a 09 43 41 4c 4c 09 42 44 4f 53 09 3b 0d 0a 09 4c 48 4c 44 09 43 ┆C,PRINTF; CALL BDOS ; LHLD C┆ 0x079dc0…079de0 43 50 52 45 54 09 3b 0d 0a 09 50 43 48 4c 09 09 3b 20 52 45 54 55 52 4e 20 54 4f 20 43 43 50 3b ┆CPRET ; PCHL ; RETURN TO CCP;┆ 0x079de0…079e00 0d 0a 0d 0a 50 52 49 4e 54 3a 09 4d 56 49 09 43 2c 50 52 49 4e 54 46 3b 0d 0a 09 4a 4d 50 09 42 ┆ PRINT: MVI C,PRINTF; JMP B┆ 0x079e00…079e20 (32, 1, 1) c9 21 67 15 72 2b 73 2b 70 2b 71 21 68 15 36 01 3e 00 11 66 15 cd ea 14 b5 ca 72 07 2a 64 15 eb ┆ !g r+s+p+q!h 6 > f r *d ┆ 0x079e20…079e40 2a 66 15 cd 7f 14 21 69 15 73 2a 64 15 eb cd 81 14 22 64 15 50 59 21 0a 00 cd 7f 14 eb 22 66 15 ┆*f !i s*d "d PY! "f ┆ 0x079e40…079e60 3e 00 cd d3 14 b5 c6 ff 9f 21 68 15 a6 23 f5 7e 93 d6 01 9f c1 48 a1 1f d2 61 07 cd ab 04 c3 6f ┆> !h # ü H a o┆ 0x079e60…079e80 07 21 68 15 36 00 3a 69 15 c6 30 4f cd 90 04 c3 10 07 c9 21 6d 15 72 2b 73 2b 70 2b 71 2a 6c 15 ┆ !h 6 :i 0O !m r+s+p+q*l ┆ 0x079e80…079ea0 11 54 15 e5 cd 5a 14 eb e1 73 23 72 2a 6c 15 eb 01 00 04 cd e2 14 da b6 07 2a 6c 15 eb 01 00 04 ┆ T Z s#r*l *l ┆ 0x079ea0…079ec0 cd e2 14 eb 2b 73 23 72 2a 6a 15 4e 23 46 03 2b 71 23 70 c3 8c 07 c9 21 6e 15 71 21 00 00 22 6f ┆ +s#r*j N#F +q#p !n q! "o┆ 0x079ec0…079ee0 15 22 71 15 7d 32 75 15 6f 26 00 22 73 15 01 05 00 2a 1e 15 09 eb 01 73 15 cd dd 14 da 0e 08 3a ┆ "q å2u o& "s * s :┆ 0x079ee0…079f00 6e 15 1f d2 f1 07 2a 73 15 44 4d cd db 05 32 75 15 3a 75 15 1f da 01 08 11 71 15 01 6f 15 cd 73 ┆n *s DM 2u :u q o s┆ 0x079f00…079f20 07 11 01 00 2a 73 15 19 22 73 15 d2 ce 07 2a 6f 15 c9 01 b9 01 cd d2 04 c9 01 c7 01 cd d2 04 cd ┆ *s "s *o ┆ 0x079f20…079f40 8a 05 4f 06 00 11 0a 00 cd 01 07 01 d5 01 cd d2 04 21 76 15 36 00 3e 1f 21 76 15 be da 51 08 2a ┆ O !v 6 > !v Q *┆ 0x079f40…079f60 76 15 26 00 01 77 15 09 36 00 60 69 2b 34 c2 36 08 01 cf 29 cd 41 05 01 2a 01 cd 19 05 3a 27 15 ┆v & w 6 `i+4 6 ) A * :' ┆ 0x079f60…079f80 fe ff ca 93 08 3a 27 15 e6 03 87 87 87 87 87 4f 06 00 21 cf 29 09 7e 32 76 15 fe e5 ca 8d 08 3a ┆ :' O ! ) ü2v :┆ 0x079f80…079fa0 76 15 e6 1f 4f 06 00 21 77 15 09 36 01 cd 2c 05 c3 5d 08 21 76 15 36 00 3e 1f 21 76 15 be da c2 ┆v O !w 6 , Å !v 6 > !v ┆ 0x079fa0…079fc0 08 2a 76 15 26 00 01 77 15 09 7e 1f d2 bb 08 2a 76 15 4d 06 00 11 0a 00 cd 01 07 21 76 15 34 c2 ┆ *v & w ü *v M !v 4 ┆ 0x079fc0…079fe0 98 08 c9 01 e3 01 cd d2 04 cd 38 05 c6 41 4f cd 90 04 0e 3a cd 90 04 01 e8 01 cd b1 04 2a 1e 15 ┆ 8 AO : * ┆ 0x079fe0…07a000 23 23 4e 21 01 00 cd bd 14 22 97 15 01 05 00 2a 1e 15 09 4e 23 46 03 2a 97 15 eb cd a0 14 22 99 ┆##N! " * N#F * " ┆ 0x07a000…07a020 (32, 1, 2) 49 09 44 2c 43 52 4c 46 09 3b 0d 0a 09 43 41 4c 4c 09 50 52 49 4e 54 09 3b 0d 0a 09 4c 58 49 09 ┆I D,CRLF ; CALL PRINT ; LXI ┆ 0x07a020…07a040 44 2c 4d 53 44 49 53 4b 3b 0d 0a 09 43 41 4c 4c 09 50 52 49 4e 54 09 3b 20 57 41 49 54 20 46 4f ┆D,MSDISK; CALL PRINT ; WAIT FO┆ 0x07a040…07a060 52 20 53 4f 55 52 43 45 20 44 49 53 4b 3a 0d 0a 09 43 41 4c 4c 09 43 4f 4e 53 49 09 3b 0d 0a 09 ┆R SOURCE DISK: CALL CONSI ; ┆ 0x07a060…07a080 4c 58 49 09 44 2c 4d 44 44 49 53 4b 3b 0d 0a 09 43 41 4c 4c 09 50 52 49 4e 54 09 3b 20 57 41 49 ┆LXI D,MDDISK; CALL PRINT ; WAI┆ 0x07a080…07a0a0 54 20 46 4f 52 20 44 45 53 54 49 4e 41 54 49 4f 4e 20 44 49 53 4b 3a 0d 0a 09 43 41 4c 4c 09 43 ┆T FOR DESTINATION DISK: CALL C┆ 0x07a0a0…07a0c0 4f 4e 53 49 09 3b 0d 0a 09 50 4f 50 09 42 09 3b 0d 0a 09 4d 56 49 09 41 2c 31 09 3b 0d 0a 53 45 ┆ONSI ; POP B ; MVI A,1 ; SE┆ 0x07a0c0…07a0e0 54 44 46 3a 09 53 54 41 09 44 46 4c 41 47 09 3b 0d 0a 09 4d 4f 56 09 41 2c 43 09 3b 0d 0a 09 43 ┆TDF: STA DFLAG ; MOV A,C ; C┆ 0x07a0e0…07a100 50 49 09 53 53 38 09 3b 20 28 46 49 52 53 54 20 54 52 41 43 4b 2c 4c 41 53 54 20 54 52 41 43 4b ┆PI SS8 ; (FIRST TRACK,LAST TRACK┆ 0x07a100…07a120 2c 0d 0a 09 4a 4e 5a 09 53 45 54 44 38 09 3b 20 20 53 45 43 54 4f 52 53 20 50 52 20 54 52 41 43 ┆, JNZ SETD8 ; SECTORS PR TRAC┆ 0x07a120…07a140 4b 29 20 3a 3d 0d 0a 09 4d 56 49 09 41 2c 30 09 3b 0d 0a 09 53 54 41 09 46 54 52 4b 09 3b 0d 0a ┆K) := MVI A,0 ; STA FTRK ; ┆ 0x07a140…07a160 09 4d 56 49 09 41 2c 37 36 09 3b 20 20 49 46 20 46 4f 52 4d 41 54 3d 20 38 22 20 53 53 20 54 48 ┆ MVI A,76 ; IF FORMAT= 8" SS TH┆ 0x07a160…07a180 45 4e 0d 0a 09 53 54 41 09 4c 54 52 4b 09 3b 20 20 20 28 30 2c 37 36 2c 32 36 29 20 20 20 20 20 ┆EN STA LTRK ; (0,76,26) ┆ 0x07a180…07a1a0 20 20 45 4c 53 45 0d 0a 09 4d 56 49 09 41 2c 32 36 09 3b 0d 0a 09 53 54 41 09 53 50 54 09 3b 0d ┆ ELSE MVI A,26 ; STA SPT ; ┆ 0x07a1a0…07a1c0 0a 09 4a 4d 50 09 53 45 54 43 54 09 3b 20 20 0d 0a 53 45 54 44 38 3a 09 43 50 49 09 44 44 38 09 ┆ JMP SETCT ; SETD8: CPI DD8 ┆ 0x07a1c0…07a1e0 3b 20 20 49 46 20 46 4f 52 4d 41 54 3d 20 38 22 20 44 44 20 54 48 45 4e 0d 0a 09 4a 4e 5a 09 53 ┆; IF FORMAT= 8" DD THEN JNZ S┆ 0x07a1e0…07a200 45 54 35 09 3b 20 20 20 28 31 2c 36 31 2c 31 32 30 29 20 20 20 20 20 20 45 4c 53 45 0d 0a 09 4d ┆ET5 ; (1,61,120) ELSE M┆ 0x07a200…07a220 (32, 1, 3) 50 55 53 48 09 44 09 3b 0d 0a 09 50 55 53 48 09 42 09 3b 0d 0a 09 43 41 4c 4c 09 44 4d 41 09 3b ┆PUSH D ; PUSH B ; CALL DMA ;┆ 0x07a220…07a240 0d 0a 09 4a 4d 50 09 52 45 41 44 53 09 3b 20 47 4f 54 4f 20 52 45 41 44 20 53 45 43 54 4f 52 3b ┆ JMP READS ; GOTO READ SECTOR;┆ 0x07a240…07a260 0d 0a 57 44 41 54 3a 09 50 4f 50 09 44 09 3b 20 57 52 49 54 45 20 44 41 54 41 3a 0d 0a 09 4c 44 ┆ WDAT: POP D ; WRITE DATA: LD┆ 0x07a260…07a280 41 09 44 46 4c 41 47 09 3b 0d 0a 09 4f 52 41 09 41 09 3b 20 49 46 20 44 45 53 54 49 4e 41 54 49 ┆A DFLAG ; ORA A ; IF DESTINATI┆ 0x07a280…07a2a0 4f 4e 20 44 52 49 56 45 20 3d 20 53 4f 55 52 43 45 20 44 52 49 56 45 0d 0a 09 4a 4e 5a 09 53 45 ┆ON DRIVE = SOURCE DRIVE JNZ SE┆ 0x07a2a0…07a2c0 4c 44 45 09 3b 20 20 54 48 45 4e 20 57 41 49 54 20 46 4f 52 20 44 49 53 4b 20 43 48 41 4e 47 45 ┆LDE ; THEN WAIT FOR DISK CHANGE┆ 0x07a2c0…07a2e0 3b 0d 0a 09 4c 58 49 09 44 2c 4d 44 44 49 53 4b 3b 0d 0a 09 43 41 4c 4c 09 50 52 49 4e 54 09 3b ┆; LXI D,MDDISK; CALL PRINT ;┆ 0x07a2e0…07a300 0d 0a 09 43 41 4c 4c 09 43 4f 4e 53 49 09 3b 0d 0a 53 45 4c 44 45 3a 09 4c 44 41 09 44 44 52 49 ┆ CALL CONSI ; SELDE: LDA DDRI┆ 0x07a300…07a320 56 09 3b 0d 0a 09 43 41 4c 4c 09 53 45 4c 09 3b 20 53 45 4c 45 43 54 28 44 45 53 54 49 4e 41 54 ┆V ; CALL SEL ; SELECT(DESTINAT┆ 0x07a320…07a340 49 4f 4e 20 44 52 49 56 45 29 3b 0d 0a 09 4c 58 49 09 48 2c 33 36 30 09 3b 0d 0a 09 53 48 4c 44 ┆ION DRIVE); LXI H,360 ; SHLD┆ 0x07a340…07a360 09 53 45 43 43 4e 54 09 3b 20 53 45 43 54 4f 52 43 4f 55 4e 54 3a 3d 20 33 36 30 3b 0d 0a 09 4c ┆ SECCNT ; SECTORCOUNT:= 360; L┆ 0x07a360…07a380 58 49 09 44 2c 42 55 46 09 3b 0d 0a 09 50 55 53 48 09 44 09 3b 0d 0a 09 43 41 4c 4c 09 44 4d 41 ┆XI D,BUF ; PUSH D ; CALL DMA┆ 0x07a380…07a3a0 09 3b 20 44 4d 41 20 41 44 44 52 3a 3d 20 53 54 41 52 54 20 4f 46 20 42 55 46 46 45 52 3b 0d 0a ┆ ; DMA ADDR:= START OF BUFFER; ┆ 0x07a3a0…07a3c0 09 4c 44 41 09 43 55 52 54 52 4b 09 3b 0d 0a 09 4d 4f 56 09 43 2c 41 09 3b 0d 0a 09 43 41 4c 4c ┆ LDA CURTRK ; MOV C,A ; CALL┆ 0x07a3c0…07a3e0 09 54 52 4b 09 3b 20 53 45 54 20 54 52 41 43 4b 28 54 52 4b 3a 3d 43 55 52 20 54 52 4b 29 3b 0d ┆ TRK ; SET TRACK(TRK:=CUR TRK); ┆ 0x07a3e0…07a400 0a 09 4c 44 41 09 43 55 52 53 45 43 09 3b 0d 0a 09 4d 4f 56 09 43 2c 41 09 3b 0d 0a 09 4c 44 41 ┆ LDA CURSEC ; MOV C,A ; LDA┆ 0x07a400…07a420 (32, 1, 4) 20 53 45 54 20 54 52 41 43 4b 20 49 4e 20 43 3a 0d 0a 09 4c 58 49 09 44 2c 53 45 54 54 52 4b 3b ┆ SET TRACK IN C: LXI D,SETTRK;┆ 0x07a420…07a440 0d 0a 09 44 41 44 09 44 09 3b 0d 0a 09 4d 56 49 09 42 2c 30 09 3b 0d 0a 09 50 43 48 4c 09 09 3b ┆ DAD D ; MVI B,0 ; PCHL ;┆ 0x07a440…07a460 0d 0a 0d 0a 53 45 43 3a 09 4c 48 4c 44 09 57 42 4f 4f 54 09 3b 20 53 45 54 20 53 45 43 54 4f 52 ┆ SEC: LHLD WBOOT ; SET SECTOR┆ 0x07a460…07a480 20 49 4e 20 43 3a 0d 0a 09 4c 58 49 09 44 2c 53 45 54 53 45 43 3b 0d 0a 09 44 41 44 09 44 09 3b ┆ IN C: LXI D,SETSEC; DAD D ;┆ 0x07a480…07a4a0 0d 0a 09 4d 56 49 09 42 2c 30 09 3b 0d 0a 09 50 43 48 4c 09 09 3b 0d 0a 0d 0a 44 4d 41 3a 09 4c ┆ MVI B,0 ; PCHL ; DMA: L┆ 0x07a4a0…07a4c0 48 4c 44 09 57 42 4f 4f 54 09 3b 20 53 45 54 20 44 4d 41 20 41 44 44 52 45 53 53 20 49 4e 20 44 ┆HLD WBOOT ; SET DMA ADDRESS IN D┆ 0x07a4c0…07a4e0 2c 45 3a 0d 0a 09 4d 4f 56 09 42 2c 44 09 3b 0d 0a 09 4d 4f 56 09 43 2c 45 09 3b 0d 0a 09 4c 58 ┆,E: MOV B,D ; MOV C,E ; LX┆ 0x07a4e0…07a500 49 09 44 2c 53 45 54 44 4d 41 3b 0d 0a 09 44 41 44 09 44 09 3b 0d 0a 09 50 43 48 4c 09 09 3b 0d ┆I D,SETDMA; DAD D ; PCHL ; ┆ 0x07a500…07a520 0a 0d 0a 44 52 45 41 44 3a 09 4c 48 4c 44 09 57 42 4f 4f 54 09 3b 20 52 45 41 44 20 53 45 43 54 ┆ DREAD: LHLD WBOOT ; READ SECT┆ 0x07a520…07a540 4f 52 3a 0d 0a 09 4c 58 49 09 44 2c 52 45 41 44 46 09 3b 0d 0a 09 44 41 44 09 44 09 3b 0d 0a 09 ┆OR: LXI D,READF ; DAD D ; ┆ 0x07a540…07a560 50 43 48 4c 09 09 3b 0d 0a 0d 0a 44 57 52 49 54 45 3a 09 4c 48 4c 44 09 57 42 4f 4f 54 09 3b 20 ┆PCHL ; DWRITE: LHLD WBOOT ; ┆ 0x07a560…07a580 57 52 49 54 45 20 53 45 43 54 4f 52 3a 0d 0a 09 4c 58 49 09 44 2c 57 52 49 54 45 46 3b 0d 0a 09 ┆WRITE SECTOR: LXI D,WRITEF; ┆ 0x07a580…07a5a0 44 41 44 09 44 09 3b 0d 0a 09 50 43 48 4c 09 09 3b 0d 0a 0d 0a 46 49 4e 49 53 3a 09 4d 56 49 09 ┆DAD D ; PCHL ; FINIS: MVI ┆ 0x07a5a0…07a5c0 43 2c 50 52 49 4e 54 46 3b 0d 0a 09 43 41 4c 4c 09 42 44 4f 53 09 3b 0d 0a 09 4c 48 4c 44 09 43 ┆C,PRINTF; CALL BDOS ; LHLD C┆ 0x07a5c0…07a5e0 43 50 52 45 54 09 3b 0d 0a 09 50 43 48 4c 09 09 3b 20 52 45 54 55 52 4e 20 54 4f 20 43 43 50 3b ┆CPRET ; PCHL ; RETURN TO CCP;┆ 0x07a5e0…07a600 0d 0a 0d 0a 50 52 49 4e 54 3a 09 4d 56 49 09 43 2c 50 52 49 4e 54 46 3b 0d 0a 09 4a 4d 50 09 42 ┆ PRINT: MVI C,PRINTF; JMP B┆ 0x07a600…07a620 (32, 1, 5) 3b 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆;*******************************┆ 0x07a620…07a640 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆********************************┆ 0x07a640…07a660 2a 2a 2a 0d 0a 3b 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆*** ;* ┆ 0x07a660…07a680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x07a680…07a6a0 20 20 20 20 20 20 20 2a 0d 0a 3b 2a 20 20 20 20 20 42 41 43 4b 55 50 20 20 55 54 49 4c 49 54 59 ┆ * ;* BACKUP UTILITY┆ 0x07a6a0…07a6c0 20 20 2d 20 20 56 45 52 53 49 4f 4e 20 20 38 31 2e 30 37 2e 30 38 20 20 20 20 20 20 20 20 20 20 ┆ - VERSION 81.07.08 ┆ 0x07a6c0…07a6e0 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 3b 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ * ;* ┆ 0x07a6e0…07a700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x07a700…07a720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 3b 2a 20 20 20 20 20 42 41 43 4b 55 ┆ * ;* BACKU┆ 0x07a720…07a740 50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆P ┆ 0x07a740…07a760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 3b 2a 20 20 20 20 20 ┆ * ;* ┆ 0x07a760…07a780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ 0x07a780…07a7a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 3b 2a ┆ * ;*┆ 0x07a7a0…07a7c0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆********************************┆ […0x1…] 0x07a7e0…07a800 2a 0d 0a 0d 0a 0d 0a 54 50 41 09 45 51 55 09 31 30 30 48 0d 0a 42 44 4f 53 09 45 51 55 09 30 30 ┆* TPA EQU 100H BDOS EQU 00┆ 0x07a800…07a820 (32, 1, 6) 56 49 09 41 2c 31 09 3b 0d 0a 09 53 54 41 09 46 54 52 4b 09 3b 0d 0a 09 4d 56 49 09 41 2c 36 31 ┆VI A,1 ; STA FTRK ; MVI A,61┆ 0x07a820…07a840 09 3b 0d 0a 09 53 54 41 09 4c 54 52 4b 09 3b 0d 0a 09 4d 56 49 09 41 2c 31 32 30 09 3b 0d 0a 09 ┆ ; STA LTRK ; MVI A,120 ; ┆ 0x07a840…07a860 53 54 41 09 53 50 54 09 3b 0d 0a 09 4a 4d 50 09 53 45 54 43 54 09 3b 0d 0a 53 45 54 35 3a 09 43 ┆STA SPT ; JMP SETCT ; SET5: C┆ 0x07a860…07a880 50 49 09 44 44 35 09 3b 20 20 49 46 20 46 4f 52 4d 41 54 3d 20 35 22 20 44 44 20 54 48 45 4e 0d ┆PI DD5 ; IF FORMAT= 5" DD THEN ┆ 0x07a880…07a8a0 0a 09 4c 58 49 09 44 2c 4e 4f 54 4f 4b 09 3b 20 20 20 28 31 2c 33 31 2c 37 32 29 3b 0d 0a 09 43 ┆ LXI D,NOTOK ; (1,31,72); C┆ 0x07a8a0…07a8c0 4e 5a 09 46 49 4e 49 53 09 3b 0d 0a 09 4d 56 49 09 41 2c 31 09 3b 0d 0a 09 53 54 41 09 46 54 52 ┆NZ FINIS ; MVI A,1 ; STA FTR┆ 0x07a8c0…07a8e0 4b 09 3b 0d 0a 09 4d 56 49 09 41 2c 33 31 09 3b 0d 0a 09 53 54 41 09 4c 54 52 4b 09 3b 0d 0a 09 ┆K ; MVI A,31 ; STA LTRK ; ┆ 0x07a8e0…07a900 4d 56 49 09 41 2c 37 32 09 3b 0d 0a 09 53 54 41 09 53 50 54 09 3b 0d 0a 53 45 54 43 54 3a 09 4c ┆MVI A,72 ; STA SPT ; SETCT: L┆ 0x07a900…07a920 44 41 09 46 54 52 4b 09 3b 0d 0a 09 53 54 41 09 43 55 52 54 52 4b 09 3b 20 43 55 52 54 52 4b 3a ┆DA FTRK ; STA CURTRK ; CURTRK:┆ 0x07a920…07a940 3d 46 49 52 53 54 20 54 52 41 43 4b 3b 0d 0a 09 4d 56 49 09 41 2c 30 09 3b 0d 0a 09 53 54 41 09 ┆=FIRST TRACK; MVI A,0 ; STA ┆ 0x07a940…07a960 43 55 52 53 45 43 09 3b 20 43 55 52 53 45 43 3a 3d 20 30 3b 0d 0a 0d 0a 52 44 41 54 3a 09 4c 44 ┆CURSEC ; CURSEC:= 0; RDAT: LD┆ 0x07a960…07a980 41 09 44 46 4c 41 47 09 3b 20 52 45 41 44 20 44 41 54 41 3a 0d 0a 09 4f 52 41 09 41 09 3b 0d 0a ┆A DFLAG ; READ DATA: ORA A ; ┆ 0x07a980…07a9a0 09 4a 4e 5a 09 53 45 4c 53 44 09 3b 20 49 46 20 53 4f 55 52 43 45 20 44 52 49 56 45 20 3d 20 44 ┆ JNZ SELSD ; IF SOURCE DRIVE = D┆ 0x07a9a0…07a9c0 45 53 54 49 4e 41 54 49 4f 4e 20 44 52 49 56 45 0d 0a 09 4c 58 49 09 44 2c 4d 53 44 49 53 4b 3b ┆ESTINATION DRIVE LXI D,MSDISK;┆ 0x07a9c0…07a9e0 20 20 54 48 45 4e 20 57 41 49 54 20 46 4f 52 20 44 49 53 4b 20 43 48 41 4e 47 45 3b 0d 0a 09 43 ┆ THEN WAIT FOR DISK CHANGE; C┆ 0x07a9e0…07aa00 41 4c 4c 09 50 52 49 4e 54 09 3b 0d 0a 09 43 41 4c 4c 09 43 4f 4e 53 49 09 3b 0d 0a 53 45 4c 53 ┆ALL PRINT ; CALL CONSI ; SELS┆ 0x07aa00…07aa20 (32, 1, 7) 09 43 55 52 54 52 4b 09 3b 0d 0a 09 4d 4f 56 09 42 2c 41 09 3b 0d 0a 09 50 55 53 48 09 42 09 3b ┆ CURTRK ; MOV B,A ; PUSH B ;┆ 0x07aa20…07aa40 20 53 45 54 20 53 45 43 54 4f 52 28 53 45 43 3a 3d 43 55 52 20 53 45 43 29 3b 0d 0a 09 43 41 4c ┆ SET SECTOR(SEC:=CUR SEC); CAL┆ 0x07aa40…07aa60 4c 09 53 45 43 09 3b 0d 0a 57 52 49 54 45 44 3a 09 43 41 4c 4c 09 44 57 52 49 54 45 09 3b 20 57 ┆L SEC ; WRITED: CALL DWRITE ; W┆ 0x07aa60…07aa80 52 49 54 45 20 53 45 43 54 4f 52 3b 0d 0a 09 4c 58 49 09 44 2c 42 41 44 44 09 3b 0d 0a 09 4f 52 ┆RITE SECTOR; LXI D,BADD ; OR┆ 0x07aa80…07aaa0 41 09 41 09 3b 20 49 46 20 45 52 52 4f 52 53 20 54 48 45 4e 20 50 52 49 4e 54 20 57 41 52 4e 49 ┆A A ; IF ERRORS THEN PRINT WARNI┆ 0x07aaa0…07aac0 4e 47 3b 0d 0a 09 43 4e 5a 09 45 52 52 4f 52 09 3b 0d 0a 09 50 4f 50 09 42 09 3b 0d 0a 09 49 4e ┆NG; CNZ ERROR ; POP B ; IN┆ 0x07aac0…07aae0 52 09 43 09 3b 20 53 45 43 3a 3d 20 53 45 43 2b 31 3b 0d 0a 09 4c 44 41 09 53 50 54 09 3b 0d 0a ┆R C ; SEC:= SEC+1; LDA SPT ; ┆ 0x07aae0…07ab00 09 43 4d 50 09 43 09 3b 20 49 46 20 53 45 43 3d 53 50 54 20 54 48 45 4e 0d 0a 09 4a 4e 5a 09 4e ┆ CMP C ; IF SEC=SPT THEN JNZ N┆ 0x07ab00…07ab20 45 58 54 44 09 3b 20 42 45 47 49 4e 0d 0a 09 4c 44 41 09 4c 54 52 4b 09 3b 0d 0a 09 43 4d 50 09 ┆EXTD ; BEGIN LDA LTRK ; CMP ┆ 0x07ab20…07ab40 42 09 3b 20 20 20 20 49 46 20 54 52 4b 3d 4c 41 53 54 20 54 48 45 4e 20 47 4f 54 4f 20 45 4e 44 ┆B ; IF TRK=LAST THEN GOTO END┆ 0x07ab40…07ab60 3b 0d 0a 09 4a 5a 09 45 44 41 54 09 3b 0d 0a 09 49 4e 52 09 42 09 3b 20 20 20 20 54 52 4b 3a 3d ┆; JZ EDAT ; INR B ; TRK:=┆ 0x07ab60…07ab80 54 52 4b 2b 31 3b 0d 0a 09 4d 56 49 09 43 2c 30 09 3b 20 20 20 20 53 45 43 3a 3d 30 3b 0d 0a 09 ┆TRK+1; MVI C,0 ; SEC:=0; ┆ 0x07ab80…07aba0 50 55 53 48 09 42 09 3b 0d 0a 09 4d 4f 56 09 43 2c 42 09 3b 0d 0a 09 43 41 4c 4c 09 54 52 4b 09 ┆PUSH B ; MOV C,B ; CALL TRK ┆ 0x07aba0…07abc0 3b 20 20 20 20 53 45 54 20 54 52 41 43 4b 28 54 52 4b 29 3b 0d 0a 09 50 4f 50 09 42 09 3b 20 45 ┆; SET TRACK(TRK); POP B ; E┆ 0x07abc0…07abe0 4e 44 3b 0d 0a 4e 45 58 54 44 3a 09 50 55 53 48 09 42 09 3b 0d 0a 09 43 41 4c 4c 09 53 45 43 09 ┆ND; NEXTD: PUSH B ; CALL SEC ┆ 0x07abe0…07ac00 3b 20 53 45 54 20 53 45 43 54 4f 52 28 53 45 43 29 3b 0d 0a 09 4c 48 4c 44 09 53 45 43 43 4e 54 ┆; SET SECTOR(SEC); LHLD SECCNT┆ 0x07ac00…07ac20 (32, 1, 8) 44 4f 53 09 3b 0d 0a 0d 0a 43 4f 4e 53 49 3a 09 4d 56 49 09 43 2c 43 4f 4e 53 49 46 3b 0d 0a 09 ┆DOS ; CONSI: MVI C,CONSIF; ┆ 0x07ac20…07ac40 4a 4d 50 09 42 44 4f 53 09 3b 0d 0a 0d 0a 45 52 52 4f 52 3a 09 4d 56 49 09 43 2c 50 52 49 4e 54 ┆JMP BDOS ; ERROR: MVI C,PRINT┆ 0x07ac40…07ac60 46 3b 20 44 49 53 4b 20 45 52 52 4f 52 3a 0d 0a 09 43 41 4c 4c 09 42 44 4f 53 09 3b 0d 0a 09 4d ┆F; DISK ERROR: CALL BDOS ; M┆ 0x07ac60…07ac80 56 49 09 43 2c 43 4f 4e 53 49 46 3b 0d 0a 09 43 41 4c 4c 09 42 44 4f 53 09 3b 0d 0a 09 43 50 49 ┆VI C,CONSIF; CALL BDOS ; CPI┆ 0x07ac80…07aca0 09 33 09 3b 0d 0a 09 4a 5a 09 42 4f 4f 54 09 3b 0d 0a 09 52 45 54 09 09 3b 0d 0a 0d 0a 48 45 41 ┆ 3 ; JZ BOOT ; RET ; HEA┆ 0x07aca0…07acc0 44 3a 09 44 42 09 27 52 43 37 30 30 20 20 43 50 2f 4d 20 20 42 41 43 4b 55 50 20 20 55 54 49 4c ┆D: DB 'RC700 CP/M BACKUP UTIL┆ 0x07acc0…07ace0 49 54 59 27 2c 31 33 2c 33 36 0d 0a 53 44 53 50 45 43 3a 09 44 42 09 31 33 2c 31 30 2c 31 30 2c ┆ITY',13,36 SDSPEC: DB 13,10,10,┆ 0x07ace0…07ad00 27 53 4f 55 52 43 45 20 44 52 49 56 45 20 28 41 20 4f 52 20 42 29 20 3f 20 27 2c 33 36 0d 0a 44 ┆'SOURCE DRIVE (A OR B) ? ',36 D┆ 0x07ad00…07ad20 44 53 50 45 43 3a 09 44 42 09 31 33 2c 31 30 2c 31 30 2c 27 44 45 53 54 49 4e 41 54 49 4f 4e 20 ┆DSPEC: DB 13,10,10,'DESTINATION ┆ 0x07ad20…07ad40 44 52 49 56 45 20 28 41 20 4f 52 20 42 29 20 3f 20 27 2c 33 36 0d 0a 4e 4f 54 4f 4b 3a 09 44 42 ┆DRIVE (A OR B) ? ',36 NOTOK: DB┆ 0x07ad40…07ad60 09 31 33 2c 31 30 2c 31 30 2c 27 42 41 43 4b 55 50 20 4e 4f 54 20 50 4f 53 53 49 42 4c 45 27 2c ┆ 13,10,10,'BACKUP NOT POSSIBLE',┆ 0x07ad60…07ad80 33 36 0d 0a 4d 53 44 49 53 4b 3a 20 44 42 09 31 33 2c 31 30 2c 27 49 4e 53 45 52 54 20 53 4f 55 ┆36 MSDISK: DB 13,10,'INSERT SOU┆ 0x07ad80…07ada0 52 43 45 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 54 55 52 4e 3e 27 2c 33 36 0d 0a ┆RCE DISK AND TYPE <RETURN>',36 ┆ 0x07ada0…07adc0 4d 44 44 49 53 4b 3a 20 44 42 09 31 33 2c 31 30 2c 27 49 4e 53 45 52 54 20 44 45 53 54 49 4e 41 ┆MDDISK: DB 13,10,'INSERT DESTINA┆ 0x07adc0…07ade0 54 49 4f 4e 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 54 55 52 4e 3e 27 2c 33 36 0d ┆TION DISK AND TYPE <RETURN>',36 ┆ 0x07ade0…07ae00 0a 42 41 44 53 3a 09 44 42 09 31 33 2c 31 30 2c 27 42 41 44 20 53 45 43 54 4f 52 20 4f 4e 20 53 ┆ BADS: DB 13,10,'BAD SECTOR ON S┆ 0x07ae00…07ae20 (32, 1, 9) 30 35 48 0d 0a 42 4f 4f 54 09 45 51 55 09 30 30 30 30 48 0d 0a 0d 0a 43 4f 4e 53 49 46 09 45 51 ┆05H BOOT EQU 0000H CONSIF EQ┆ 0x07ae20…07ae40 55 09 31 0d 0a 50 52 49 4e 54 46 09 45 51 55 09 39 0d 0a 57 42 4f 4f 54 09 45 51 55 09 31 0d 0a ┆U 1 PRINTF EQU 9 WBOOT EQU 1 ┆ 0x07ae40…07ae60 53 45 4c 44 53 4b 09 45 51 55 09 32 34 0d 0a 53 45 54 54 52 4b 09 45 51 55 09 32 37 0d 0a 53 45 ┆SELDSK EQU 24 SETTRK EQU 27 SE┆ 0x07ae60…07ae80 54 53 45 43 09 45 51 55 09 33 30 0d 0a 53 45 54 44 4d 41 09 45 51 55 09 33 33 0d 0a 52 45 41 44 ┆TSEC EQU 30 SETDMA EQU 33 READ┆ 0x07ae80…07aea0 46 09 45 51 55 09 33 36 0d 0a 57 52 49 54 45 46 09 45 51 55 09 33 39 0d 0a 46 44 46 4f 52 4d 09 ┆F EQU 36 WRITEF EQU 39 FDFORM ┆ 0x07aea0…07aec0 45 51 55 09 35 32 0d 0a 53 53 38 09 45 51 55 09 30 0d 0a 44 44 38 09 45 51 55 09 38 0d 0a 44 44 ┆EQU 52 SS8 EQU 0 DD8 EQU 8 DD┆ 0x07aec0…07aee0 35 09 45 51 55 09 31 36 0d 0a 0d 0a 0d 0a 09 4f 52 47 09 54 50 41 0d 0a 0d 0a 09 50 4f 50 09 48 ┆5 EQU 16 ORG TPA POP H┆ 0x07aee0…07af00 09 3b 20 53 41 56 45 20 52 45 54 55 52 4e 20 54 4f 20 43 43 50 3b 0d 0a 09 53 48 4c 44 09 43 43 ┆ ; SAVE RETURN TO CCP; SHLD CC┆ 0x07af00…07af20 50 52 45 54 09 3b 0d 0a 09 4c 58 49 09 53 50 2c 53 54 41 43 4b 3b 0d 0a 09 4c 58 49 09 44 2c 48 ┆PRET ; LXI SP,STACK; LXI D,H┆ 0x07af20…07af40 45 41 44 09 3b 20 50 52 49 4e 54 20 48 45 41 44 49 4e 47 3b 0d 0a 09 43 41 4c 4c 09 50 52 49 4e ┆EAD ; PRINT HEADING; CALL PRIN┆ 0x07af40…07af60 54 09 3b 0d 0a 50 53 50 3a 09 4c 58 49 09 44 2c 53 44 53 50 45 43 3b 20 50 52 49 4e 54 20 53 4f ┆T ; PSP: LXI D,SDSPEC; PRINT SO┆ 0x07af60…07af80 55 52 43 45 20 50 52 4f 4d 50 54 3b 0d 0a 09 43 41 4c 4c 09 50 52 49 4e 54 09 3b 0d 0a 09 43 41 ┆URCE PROMPT; CALL PRINT ; CA┆ 0x07af80…07afa0 4c 4c 09 43 4f 4e 53 49 09 3b 20 47 45 54 20 53 4f 55 52 43 45 20 44 52 49 56 45 3b 0d 0a 09 4d ┆LL CONSI ; GET SOURCE DRIVE; M┆ 0x07afa0…07afc0 56 49 09 43 2c 30 09 3b 0d 0a 09 43 50 49 09 27 41 27 09 3b 0d 0a 09 4a 5a 09 53 45 54 53 44 09 ┆VI C,0 ; CPI 'A' ; JZ SETSD ┆ 0x07afc0…07afe0 3b 0d 0a 09 43 50 49 09 27 42 27 09 3b 0d 0a 09 4a 4e 5a 09 50 53 50 09 3b 0d 0a 09 49 4e 52 09 ┆; CPI 'B' ; JNZ PSP ; INR ┆ 0x07afe0…07b000 43 09 3b 0d 0a 53 45 54 53 44 3a 09 4d 4f 56 09 41 2c 43 09 3b 0d 0a 09 53 54 41 09 53 44 52 49 ┆C ; SETSD: MOV A,C ; STA SDRI┆ 0x07b000…07b020 (32, 1, 10) 44 3a 09 4c 44 41 09 53 44 52 49 56 09 3b 20 53 45 4c 45 43 54 28 53 4f 55 52 43 45 20 44 52 49 ┆D: LDA SDRIV ; SELECT(SOURCE DRI┆ 0x07b020…07b040 56 45 29 3a 0d 0a 09 43 41 4c 4c 09 53 45 4c 09 3b 0d 0a 09 4c 58 49 09 48 2c 33 36 30 09 3b 0d ┆VE): CALL SEL ; LXI H,360 ; ┆ 0x07b040…07b060 0a 09 53 48 4c 44 09 53 45 43 43 4e 54 09 3b 20 53 45 43 54 4f 52 43 4f 55 4e 54 3a 3d 20 33 36 ┆ SHLD SECCNT ; SECTORCOUNT:= 36┆ 0x07b060…07b080 30 3b 0d 0a 09 4c 58 49 09 44 2c 42 55 46 09 3b 0d 0a 09 50 55 53 48 09 44 09 3b 0d 0a 09 43 41 ┆0; LXI D,BUF ; PUSH D ; CA┆ 0x07b080…07b0a0 4c 4c 09 44 4d 41 09 3b 20 44 4d 41 20 41 44 44 52 3a 3d 20 53 54 41 52 54 20 4f 46 20 42 55 46 ┆LL DMA ; DMA ADDR:= START OF BUF┆ 0x07b0a0…07b0c0 46 45 52 3b 0d 0a 09 4c 44 41 09 43 55 52 54 52 4b 09 3b 0d 0a 09 4d 4f 56 09 43 2c 41 09 3b 0d ┆FER; LDA CURTRK ; MOV C,A ; ┆ 0x07b0c0…07b0e0 0a 09 43 41 4c 4c 09 54 52 4b 09 3b 20 53 45 54 20 54 52 41 43 4b 28 54 52 4b 3a 3d 43 55 52 20 ┆ CALL TRK ; SET TRACK(TRK:=CUR ┆ 0x07b0e0…07b100 54 52 4b 29 3b 0d 0a 09 4c 44 41 09 43 55 52 53 45 43 09 3b 0d 0a 09 4d 4f 56 09 43 2c 41 09 3b ┆TRK); LDA CURSEC ; MOV C,A ;┆ 0x07b100…07b120 0d 0a 09 4c 44 41 09 43 55 52 54 52 4b 09 3b 0d 0a 09 4d 4f 56 09 42 2c 41 09 3b 0d 0a 09 50 55 ┆ LDA CURTRK ; MOV B,A ; PU┆ 0x07b120…07b140 53 48 09 42 09 3b 0d 0a 09 43 41 4c 4c 09 53 45 43 09 3b 20 53 45 54 20 53 45 43 54 4f 52 28 53 ┆SH B ; CALL SEC ; SET SECTOR(S┆ 0x07b140…07b160 45 43 3a 3d 43 55 52 20 53 45 43 29 3b 0d 0a 52 45 41 44 53 3a 09 43 41 4c 4c 09 44 52 45 41 44 ┆EC:=CUR SEC); READS: CALL DREAD┆ 0x07b160…07b180 09 3b 20 52 45 41 44 20 53 45 43 54 4f 52 3b 0d 0a 09 4c 58 49 09 44 2c 42 41 44 53 09 3b 0d 0a ┆ ; READ SECTOR; LXI D,BADS ; ┆ 0x07b180…07b1a0 09 4f 52 41 09 41 09 3b 20 49 46 20 45 52 52 4f 52 53 20 54 48 45 4e 20 50 52 49 4e 54 20 57 41 ┆ ORA A ; IF ERRORS THEN PRINT WA┆ 0x07b1a0…07b1c0 52 4e 49 4e 47 3b 0d 0a 09 43 4e 5a 09 45 52 52 4f 52 09 3b 0d 0a 09 50 4f 50 09 42 09 3b 0d 0a ┆RNING; CNZ ERROR ; POP B ; ┆ 0x07b1c0…07b1e0 09 49 4e 52 09 43 09 3b 20 53 45 43 3a 3d 20 53 45 43 20 2b 20 31 3b 0d 0a 09 4c 44 41 09 53 50 ┆ INR C ; SEC:= SEC + 1; LDA SP┆ 0x07b1e0…07b200 54 09 3b 0d 0a 09 43 4d 50 09 43 09 3b 20 49 46 20 53 45 43 3d 53 50 54 20 54 48 45 4e 0d 0a 09 ┆T ; CMP C ; IF SEC=SPT THEN ┆ 0x07b200…07b220 (32, 1, 11) 09 3b 0d 0a 09 44 43 58 09 48 09 3b 20 53 45 43 54 4f 52 43 4f 55 4e 54 3a 3d 53 45 43 54 4f 52 ┆ ; DCX H ; SECTORCOUNT:=SECTOR┆ 0x07b220…07b240 43 4f 55 4e 54 2d 31 3b 0d 0a 09 53 48 4c 44 09 53 45 43 43 4e 54 09 3b 0d 0a 09 50 4f 50 09 42 ┆COUNT-1; SHLD SECCNT ; POP B┆ 0x07b240…07b260 09 3b 20 49 46 20 53 45 43 54 4f 52 43 4f 55 4e 54 3d 30 20 54 48 45 4e 0d 0a 09 4d 4f 56 09 41 ┆ ; IF SECTORCOUNT=0 THEN MOV A┆ 0x07b260…07b280 2c 48 09 3b 20 20 47 4f 54 4f 20 4e 45 58 54 20 52 45 41 44 3b 0d 0a 09 4f 52 41 09 41 09 3b 0d ┆,H ; GOTO NEXT READ; ORA A ; ┆ 0x07b280…07b2a0 0a 09 4a 4e 5a 09 44 44 4d 41 09 3b 0d 0a 09 4d 4f 56 09 41 2c 4c 09 3b 0d 0a 09 4f 52 41 09 41 ┆ JNZ DDMA ; MOV A,L ; ORA A┆ 0x07b2a0…07b2c0 09 3b 0d 0a 09 4a 5a 09 4e 44 41 54 09 3b 0d 0a 44 44 4d 41 3a 09 50 4f 50 09 44 09 3b 0d 0a 09 ┆ ; JZ NDAT ; DDMA: POP D ; ┆ 0x07b2c0…07b2e0 4c 58 49 09 48 2c 31 32 38 09 3b 0d 0a 09 44 41 44 09 44 09 3b 0d 0a 09 58 43 48 47 09 09 3b 0d ┆LXI H,128 ; DAD D ; XCHG ; ┆ 0x07b2e0…07b300 0a 09 50 55 53 48 09 44 09 3b 0d 0a 09 50 55 53 48 09 42 09 3b 20 44 4d 41 20 41 44 44 52 3a 3d ┆ PUSH D ; PUSH B ; DMA ADDR:=┆ 0x07b300…07b320 20 44 4d 41 20 41 44 44 52 20 2b 20 31 32 38 3b 0d 0a 09 43 41 4c 4c 09 44 4d 41 09 3b 0d 0a 09 ┆ DMA ADDR + 128; CALL DMA ; ┆ 0x07b320…07b340 4a 4d 50 09 57 52 49 54 45 44 09 3b 20 47 4f 54 4f 20 57 52 49 54 45 20 53 45 43 54 4f 52 3b 0d ┆JMP WRITED ; GOTO WRITE SECTOR; ┆ 0x07b340…07b360 0a 0d 0a 4e 44 41 54 3a 09 4d 4f 56 09 41 2c 42 09 3b 20 4e 45 58 54 20 52 45 41 44 3a 0d 0a 09 ┆ NDAT: MOV A,B ; NEXT READ: ┆ 0x07b360…07b380 53 54 41 09 43 55 52 54 52 4b 09 3b 0d 0a 09 4d 4f 56 09 41 2c 43 09 3b 20 43 55 52 54 52 4b 3a ┆STA CURTRK ; MOV A,C ; CURTRK:┆ 0x07b380…07b3a0 3d 54 52 4b 3b 0d 0a 09 53 54 41 09 43 55 52 53 45 43 09 3b 20 43 55 52 53 45 43 3a 3d 53 45 43 ┆=TRK; STA CURSEC ; CURSEC:=SEC┆ 0x07b3a0…07b3c0 3b 0d 0a 09 50 4f 50 09 44 09 3b 0d 0a 09 43 41 4c 4c 09 46 4c 55 53 48 09 3b 20 46 4c 55 53 48 ┆; POP D ; CALL FLUSH ; FLUSH┆ 0x07b3c0…07b3e0 20 42 55 46 46 45 52 3b 0d 0a 09 4a 4d 50 09 52 44 41 54 09 3b 20 47 4f 54 4f 20 52 45 41 44 20 ┆ BUFFER; JMP RDAT ; GOTO READ ┆ 0x07b3e0…07b400 44 41 54 41 3b 0d 0a 0d 0a 45 44 41 54 3a 09 43 41 4c 4c 09 46 4c 55 53 48 09 3b 20 45 4e 44 20 ┆DATA; EDAT: CALL FLUSH ; END ┆ 0x07b400…07b420 (32, 1, 12) 4f 55 52 43 45 20 44 49 53 4b 27 2c 33 36 0d 0a 42 41 44 44 3a 09 44 42 09 31 33 2c 31 30 2c 27 ┆OURCE DISK',36 BADD: DB 13,10,'┆ 0x07b420…07b440 42 41 44 20 53 45 43 54 4f 52 20 4f 4e 20 44 45 53 54 49 4e 41 54 49 4f 4e 20 44 49 53 4b 27 2c ┆BAD SECTOR ON DESTINATION DISK',┆ 0x07b440…07b460 33 36 0d 0a 4d 53 59 53 44 3a 09 44 42 09 31 33 2c 31 30 2c 27 49 4e 53 45 52 54 20 53 59 53 54 ┆36 MSYSD: DB 13,10,'INSERT SYST┆ 0x07b460…07b480 45 4d 20 44 49 53 4b 20 41 4e 44 20 54 59 50 45 20 3c 52 45 54 55 52 4e 3e 27 2c 33 36 0d 0a 4f ┆EM DISK AND TYPE <RETURN>',36 O┆ 0x07b480…07b4a0 4b 3a 09 44 42 09 31 33 2c 31 30 2c 27 42 41 43 4b 55 50 20 43 4f 4d 50 4c 45 54 45 27 2c 33 36 ┆K: DB 13,10,'BACKUP COMPLETE',36┆ 0x07b4a0…07b4c0 0d 0a 43 52 4c 46 3a 09 44 42 09 31 33 2c 31 30 2c 33 36 0d 0a 0d 0a 43 43 50 52 45 54 3a 09 44 ┆ CRLF: DB 13,10,36 CCPRET: D┆ 0x07b4c0…07b4e0 57 09 30 0d 0a 0d 0a 46 54 52 4b 3a 09 44 42 09 30 0d 0a 4c 54 52 4b 3a 09 44 42 09 30 0d 0a 53 ┆W 0 FTRK: DB 0 LTRK: DB 0 S┆ 0x07b4e0…07b500 50 54 3a 09 44 42 09 30 0d 0a 53 44 52 49 56 3a 09 44 42 09 30 0d 0a 44 44 52 49 56 3a 09 44 42 ┆PT: DB 0 SDRIV: DB 0 DDRIV: DB┆ 0x07b500…07b520 09 30 0d 0a 44 46 4c 41 47 3a 09 44 42 09 30 0d 0a 0d 0a 43 55 52 54 52 4b 3a 09 44 42 09 30 0d ┆ 0 DFLAG: DB 0 CURTRK: DB 0 ┆ 0x07b520…07b540 0a 43 55 52 53 45 43 3a 09 44 42 09 30 0d 0a 53 45 43 43 4e 54 3a 09 44 57 09 30 0d 0a 0d 0a 09 ┆ CURSEC: DB 0 SECCNT: DW 0 ┆ 0x07b540…07b560 44 53 09 33 31 0d 0a 53 54 41 43 4b 3a 09 44 53 09 31 09 3b 20 4c 4f 43 41 4c 20 53 54 41 43 4b ┆DS 31 STACK: DS 1 ; LOCAL STACK┆ 0x07b560…07b580 0d 0a 0d 0a 42 55 46 3a 09 44 57 09 30 09 3b 20 52 45 41 44 2f 57 52 49 54 45 20 42 55 46 46 45 ┆ BUF: DW 0 ; READ/WRITE BUFFE┆ 0x07b580…07b5a0 52 0d 0a 0d 0a 09 45 4e 44 09 31 30 30 48 09 3b 0d 0a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆R END 100H ; ┆ 0x07b5a0…07b5c0 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆ ┆ […0x2…] 0x07b600…07b620 (32, 1, 13) 56 09 3b 0d 0a 50 44 50 3a 09 4c 58 49 09 44 2c 44 44 53 50 45 43 3b 20 50 52 49 4e 54 20 44 45 ┆V ; PDP: LXI D,DDSPEC; PRINT DE┆ 0x07b620…07b640 53 54 49 4e 41 54 49 4f 4e 20 50 52 4f 4d 50 54 3b 0d 0a 09 43 41 4c 4c 09 50 52 49 4e 54 09 3b ┆STINATION PROMPT; CALL PRINT ;┆ 0x07b640…07b660 0d 0a 09 43 41 4c 4c 09 43 4f 4e 53 49 09 3b 20 47 45 54 20 44 45 53 54 49 4e 41 54 49 4f 4e 20 ┆ CALL CONSI ; GET DESTINATION ┆ 0x07b660…07b680 44 52 49 56 45 3b 0d 0a 09 4d 56 49 09 43 2c 30 09 3b 0d 0a 09 43 50 49 09 27 41 27 09 3b 0d 0a ┆DRIVE; MVI C,0 ; CPI 'A' ; ┆ 0x07b680…07b6a0 09 4a 5a 09 53 45 54 44 44 09 3b 0d 0a 09 43 50 49 09 27 42 27 09 3b 0d 0a 09 4a 4e 5a 09 50 44 ┆ JZ SETDD ; CPI 'B' ; JNZ PD┆ 0x07b6a0…07b6c0 50 09 3b 0d 0a 09 49 4e 52 09 43 09 3b 0d 0a 53 45 54 44 44 3a 09 4d 4f 56 09 41 2c 43 09 3b 0d ┆P ; INR C ; SETDD: MOV A,C ; ┆ 0x07b6c0…07b6e0 0a 09 53 54 41 09 44 44 52 49 56 09 3b 0d 0a 09 4c 48 4c 44 09 57 42 4f 4f 54 09 3b 20 42 43 3a ┆ STA DDRIV ; LHLD WBOOT ; BC:┆ 0x07b6e0…07b700 3d 20 46 4c 4f 50 50 59 20 46 4f 52 4d 41 54 53 3b 0d 0a 09 4c 58 49 09 44 2c 46 44 46 4f 52 4d ┆= FLOPPY FORMATS; LXI D,FDFORM┆ 0x07b700…07b720 3b 0d 0a 09 44 41 44 09 44 09 3b 0d 0a 09 4d 4f 56 09 42 2c 4d 09 3b 0d 0a 09 49 4e 58 09 48 09 ┆; DAD D ; MOV B,M ; INX H ┆ 0x07b720…07b740 3b 0d 0a 09 4d 4f 56 09 43 2c 4d 09 3b 0d 0a 09 4c 58 49 09 48 2c 53 44 52 49 56 09 3b 20 49 46 ┆; MOV C,M ; LXI H,SDRIV ; IF┆ 0x07b740…07b760 20 53 4f 55 52 43 45 20 44 52 49 56 45 20 3c 3e 0d 0a 09 43 4d 50 09 4d 09 3b 20 20 44 45 53 54 ┆ SOURCE DRIVE <> CMP M ; DEST┆ 0x07b760…07b780 49 4e 41 54 49 4f 4e 20 44 52 49 56 45 20 54 48 45 4e 0d 0a 09 4d 56 49 09 41 2c 30 09 3b 0d 0a ┆INATION DRIVE THEN MVI A,0 ; ┆ 0x07b780…07b7a0 09 4a 5a 09 53 45 54 44 46 09 3b 0d 0a 09 4d 4f 56 09 41 2c 42 09 3b 0d 0a 09 43 4d 50 09 43 09 ┆ JZ SETDF ; MOV A,B ; CMP C ┆ 0x07b7a0…07b7c0 3b 20 49 46 20 46 4f 52 4d 41 54 28 41 29 3c 3e 46 4f 52 4d 41 54 28 42 29 20 54 48 45 4e 0d 0a ┆; IF FORMAT(A)<>FORMAT(B) THEN ┆ 0x07b7c0…07b7e0 09 4c 58 49 09 44 2c 4e 4f 54 4f 4b 09 3b 0d 0a 09 43 4e 5a 09 46 49 4e 49 53 09 3b 20 20 45 58 ┆ LXI D,NOTOK ; CNZ FINIS ; EX┆ 0x07b7e0…07b800 49 54 28 4e 4f 54 20 41 4c 4c 4f 57 45 44 29 3b 0d 0a 09 50 55 53 48 09 42 09 3b 0d 0a 09 4c 58 ┆IT(NOT ALLOWED); PUSH B ; LX┆ 0x07b800…07b820 (32, 1, 14) 4a 4e 5a 09 4e 45 58 54 53 09 3b 20 42 45 47 49 4e 0d 0a 09 4c 44 41 09 4c 54 52 4b 09 3b 0d 0a ┆JNZ NEXTS ; BEGIN LDA LTRK ; ┆ 0x07b820…07b840 09 43 4d 50 09 42 09 3b 20 20 20 20 49 46 20 54 52 4b 3d 4c 41 53 54 20 54 48 45 4e 20 47 4f 54 ┆ CMP B ; IF TRK=LAST THEN GOT┆ 0x07b840…07b860 4f 20 57 52 49 54 45 3b 0d 0a 09 4a 5a 09 57 44 41 54 09 3b 0d 0a 09 49 4e 52 09 42 09 3b 20 20 ┆O WRITE; JZ WDAT ; INR B ; ┆ 0x07b860…07b880 20 20 54 52 4b 3a 3d 54 52 4b 2b 31 3b 0d 0a 09 4d 56 49 09 43 2c 30 09 3b 20 20 20 20 53 45 43 ┆ TRK:=TRK+1; MVI C,0 ; SEC┆ 0x07b880…07b8a0 3a 3d 30 3b 0d 0a 09 50 55 53 48 09 42 09 3b 0d 0a 09 4d 4f 56 09 43 2c 42 09 3b 0d 0a 09 43 41 ┆:=0; PUSH B ; MOV C,B ; CA┆ 0x07b8a0…07b8c0 4c 4c 09 54 52 4b 09 3b 20 20 20 20 53 45 54 20 54 52 41 43 4b 28 54 52 4b 29 3b 0d 0a 09 50 4f ┆LL TRK ; SET TRACK(TRK); PO┆ 0x07b8c0…07b8e0 50 09 42 09 3b 20 45 4e 44 3b 0d 0a 4e 45 58 54 53 3a 20 20 50 55 53 48 09 42 09 3b 0d 0a 09 43 ┆P B ; END; NEXTS: PUSH B ; C┆ 0x07b8e0…07b900 41 4c 4c 09 53 45 43 09 3b 20 53 45 54 20 53 45 43 54 4f 52 28 53 45 43 29 3b 0d 0a 09 4c 48 4c ┆ALL SEC ; SET SECTOR(SEC); LHL┆ 0x07b900…07b920 44 09 53 45 43 43 4e 54 09 3b 0d 0a 09 44 43 58 09 48 09 3b 20 53 45 43 54 4f 52 43 4f 55 4e 54 ┆D SECCNT ; DCX H ; SECTORCOUNT┆ 0x07b920…07b940 3a 3d 53 45 43 54 4f 52 43 4f 55 4e 54 2d 31 3b 0d 0a 09 53 48 4c 44 09 53 45 43 43 4e 54 09 3b ┆:=SECTORCOUNT-1; SHLD SECCNT ;┆ 0x07b940…07b960 0d 0a 09 50 4f 50 09 42 09 3b 0d 0a 09 4d 4f 56 09 41 2c 48 09 3b 20 49 46 20 53 45 43 54 4f 52 ┆ POP B ; MOV A,H ; IF SECTOR┆ 0x07b960…07b980 43 4f 55 4e 54 3d 30 20 54 48 45 4e 20 47 4f 54 4f 20 57 52 49 54 45 3b 0d 0a 09 4f 52 41 09 41 ┆COUNT=0 THEN GOTO WRITE; ORA A┆ 0x07b980…07b9a0 09 3b 0d 0a 09 4a 4e 5a 09 53 44 4d 41 09 3b 0d 0a 09 4d 4f 56 09 41 2c 4c 09 3b 0d 0a 09 4f 52 ┆ ; JNZ SDMA ; MOV A,L ; OR┆ 0x07b9a0…07b9c0 41 09 41 09 3b 0d 0a 09 4a 5a 09 57 44 41 54 09 3b 0d 0a 53 44 4d 41 3a 09 50 4f 50 09 44 09 3b ┆A A ; JZ WDAT ; SDMA: POP D ;┆ 0x07b9c0…07b9e0 0d 0a 09 4c 58 49 09 48 2c 31 32 38 09 3b 20 44 4d 41 20 41 44 44 52 3a 3d 20 44 4d 41 20 41 44 ┆ LXI H,128 ; DMA ADDR:= DMA AD┆ 0x07b9e0…07ba00 44 52 20 2b 20 31 32 38 3b 0d 0a 09 44 41 44 09 44 09 3b 0d 0a 09 58 43 48 47 09 09 3b 0d 0a 09 ┆DR + 128; DAD D ; XCHG ; ┆ 0x07ba00…07ba20 (32, 1, 15) 4f 46 20 43 4f 50 59 3a 0d 0a 09 4c 58 49 09 44 2c 4f 4b 09 3b 0d 0a 09 43 41 4c 4c 09 50 52 49 ┆OF COPY: LXI D,OK ; CALL PRI┆ 0x07ba20…07ba40 4e 54 09 3b 20 43 4f 50 59 20 43 4f 4d 50 4c 45 54 45 3b 0d 0a 09 4c 58 49 09 44 2c 4d 53 59 53 ┆NT ; COPY COMPLETE; LXI D,MSYS┆ 0x07ba40…07ba60 44 09 3b 0d 0a 09 43 41 4c 4c 09 50 52 49 4e 54 09 3b 20 57 41 49 54 20 46 4f 52 20 43 48 41 4e ┆D ; CALL PRINT ; WAIT FOR CHAN┆ 0x07ba60…07ba80 47 45 20 54 4f 20 53 59 53 54 45 4d 20 44 49 53 4b 3a 0d 0a 09 43 41 4c 4c 09 43 4f 4e 53 49 09 ┆GE TO SYSTEM DISK: CALL CONSI ┆ 0x07ba80…07baa0 3b 0d 0a 09 4a 4d 50 09 42 4f 4f 54 09 3b 20 57 41 52 4d 20 42 4f 4f 54 0d 0a 0d 0a 46 4c 55 53 ┆; JMP BOOT ; WARM BOOT FLUS┆ 0x07baa0…07bac0 48 3a 09 4c 44 41 09 43 55 52 54 52 4b 09 3b 20 46 4f 52 43 45 20 42 55 46 46 45 52 20 57 52 49 ┆H: LDA CURTRK ; FORCE BUFFER WRI┆ 0x07bac0…07bae0 54 45 3a 0d 0a 09 4d 4f 56 09 43 2c 41 09 3b 0d 0a 09 44 43 52 09 43 09 3b 0d 0a 09 43 41 4c 4c ┆TE: MOV C,A ; DCR C ; CALL┆ 0x07bae0…07bb00 09 54 52 4b 09 3b 20 53 45 54 20 54 52 41 43 4b 28 43 55 52 54 52 4b 2d 31 29 3b 0d 0a 09 4c 44 ┆ TRK ; SET TRACK(CURTRK-1); LD┆ 0x07bb00…07bb20 41 09 43 55 52 53 45 43 09 3b 0d 0a 09 4d 4f 56 09 43 2c 41 09 3b 0d 0a 09 43 41 4c 4c 09 53 45 ┆A CURSEC ; MOV C,A ; CALL SE┆ 0x07bb20…07bb40 43 09 3b 20 53 45 54 20 53 45 43 54 4f 52 28 43 55 52 53 45 43 29 3b 0d 0a 09 43 41 4c 4c 09 44 ┆C ; SET SECTOR(CURSEC); CALL D┆ 0x07bb40…07bb60 52 45 41 44 09 3b 0d 0a 09 4c 58 49 09 44 2c 42 41 44 44 09 3b 0d 0a 09 4f 52 41 09 41 09 3b 20 ┆READ ; LXI D,BADD ; ORA A ; ┆ 0x07bb60…07bb80 49 46 20 45 52 52 4f 52 20 54 48 45 4e 20 50 52 49 4e 54 20 57 41 52 4e 49 4e 47 3b 0d 0a 09 43 ┆IF ERROR THEN PRINT WARNING; C┆ 0x07bb80…07bba0 4e 5a 09 45 52 52 4f 52 09 3b 0d 0a 09 52 45 54 09 09 3b 0d 0a 0d 0a 53 45 4c 3a 09 4d 4f 56 09 ┆NZ ERROR ; RET ; SEL: MOV ┆ 0x07bba0…07bbc0 43 2c 41 09 3b 20 53 45 4c 45 43 54 20 44 52 49 56 45 20 49 4e 20 41 3a 0d 0a 09 4c 48 4c 44 09 ┆C,A ; SELECT DRIVE IN A: LHLD ┆ 0x07bbc0…07bbe0 57 42 4f 4f 54 09 3b 0d 0a 09 4c 58 49 09 44 2c 53 45 4c 44 53 4b 3b 0d 0a 09 44 41 44 09 44 09 ┆WBOOT ; LXI D,SELDSK; DAD D ┆ 0x07bbe0…07bc00 3b 0d 0a 09 50 43 48 4c 09 09 3b 0d 0a 0d 0a 54 52 4b 3a 09 4c 48 4c 44 09 57 42 4f 4f 54 09 3b ┆; PCHL ; TRK: LHLD WBOOT ;┆ 0x07bc00…07bc20 (33, 0, 1) 04 cd a0 04 c9 cd 51 05 22 20 15 cd 38 05 c6 41 4f cd 90 04 01 6a 03 cd b1 04 c9 0e 01 cd b7 07 ┆ Q " 8 AO j ┆ 0x07bc20…07bc40 44 4d cd 8f 0c c9 01 6d 03 cd d2 04 cd 05 0d cd 1b 0d c9 cd 5a 05 22 b3 15 cd 6c 05 22 b5 15 21 ┆DM m Z " l " !┆ 0x07bc40…07bc60 b7 15 36 00 3e 00 11 b3 15 cd ea 14 b5 ca a5 0d 2a b3 15 7d 1f d2 86 0d 2a b7 15 4d cd cc 05 cd ┆ 6 > * å * M ┆ 0x07bc60…07bc80 05 0d 01 81 03 cd b1 04 2a b5 15 7d 1f d2 78 0d 0e 4f cd 90 04 c3 7d 0d 0e 57 cd 90 04 01 84 03 ┆ * å x O å W ┆ 0x07bc80…07bca0 cd b1 04 cd 1b 0d 0e 01 21 b3 15 cd c3 14 eb 2b 73 23 72 0e 01 21 b5 15 cd c3 14 eb 2b 73 23 72 ┆ ! +s#r ! +s#r┆ 0x07bca0…07bcc0 23 34 c3 44 0d cd a0 04 c9 3a 5c 00 fe 00 ca b9 0d 3a 5c 00 3d 4f cd cc 05 c9 cd b3 05 cd a9 0d ┆#4 D :Ø :Ø =O ┆ 0x07bcc0…07bce0 21 1d 15 36 00 21 cc 29 36 ff cd 6c 13 1f d2 e4 0d 3a cc 29 fe 00 c2 da 0d c9 3a cc 29 3d 32 cc ┆! 6 ! )6 l : ) : )=2 ┆ 0x07bce0…07bd00 29 c3 f0 0d 3a 5d 00 fe 20 c2 f0 0d cd 26 0d c9 21 00 00 22 b8 15 7d 32 5c 00 21 68 00 36 3f 21 ┆) :Å & ! " å2Ø !h 6?!┆ 0x07bd00…07bd20 6a 00 36 3f 01 5c 00 cd 19 05 3a 27 15 fe ff ca 43 10 3a 27 15 e6 03 87 87 87 87 87 c6 80 6f 26 ┆j 6? Ø :' C :' o&┆ 0x07bd20…07bd40 00 22 ba 29 21 cb 29 36 00 21 00 00 22 be 29 3a cb 29 2f 01 b8 15 11 be 29 f5 cd dd 14 9f c1 48 ┆ " )! )6 ! " ): )/ ) H┆ 0x07bd40…07bd60 a1 1f d2 98 0e cd 5d 13 21 c6 29 36 01 3e 0b 21 c6 29 be da 8e 0e 2a c6 29 26 00 eb 2a ba 29 19 ┆ Å ! )6 > ! ) * )& * ) ┆ 0x07bd60…07bd80 e5 2a c6 29 26 00 eb 2a bc 29 19 c1 0a be ca 79 0e 21 c6 29 36 0b c3 84 0e 3a c6 29 d6 0b d6 01 ┆ * )& * ) y ! )6 : ) ┆ 0x07bd80…07bda0 9f 32 cb 29 3a c6 29 3c 32 c6 29 c2 4d 0e 2a be 29 23 22 be 29 c3 2f 0e 3a cb 29 1f d2 a9 0e 2a ┆ 2 ): )<2 ) M * )#" ) / : ) *┆ 0x07bda0…07bdc0 be 29 2b 22 be 29 c3 60 0f 2a b8 15 22 be 29 23 22 b8 15 cd 5d 13 11 00 02 21 b8 15 cd f8 14 9f ┆ )+" ) ` * " )#" Å ! ┆ 0x07bdc0…07bde0 11 10 00 2a bc 29 19 eb 21 06 00 f5 cd f8 14 9f 2f c1 48 b1 1f d2 ed 0e 01 a5 03 cd d2 04 21 00 ┆ * ) ! / H ! ┆ 0x07bde0…07be00 00 22 be 29 21 01 00 22 b8 15 cd 5d 13 2a be 29 01 ba 15 29 09 e5 2a be 29 eb e1 73 23 72 21 c6 ┆ " )! " Å * ) ) * ) s#r! ┆ 0x07be00…07be20 (33, 0, 2) 2a 9a 3c cd 5c 43 21 20 00 cd e6 40 21 8a 3c cd a5 40 2a ae 3c 1e 00 cd ae 40 ca 39 41 46 23 cd ┆* < ØC! @! < @* < @ 9AF# ┆ 0x07be20…07be40 c5 40 c2 2e 41 cd 4a 3f 7e d6 20 4f 23 1c 78 cd a1 41 1c 7b fe fe da 17 41 3e 20 cd a1 41 22 b0 ┆ @ .A J?ü O# x A æ A> A" ┆ 0x07be40…07be60 3c 22 9d 3d 7b 32 b2 3c 21 6a 3c 11 9c 3c 01 12 00 c3 c2 16 3a c7 3c 32 c6 3c 21 32 00 cd e6 40 ┆<" =æ2 <!j< < : <2 <!2 @┆ 0x07be60…07be80 21 9c 3c cd a5 40 2a ac 3c cd 5c 43 2a b0 3c 3a b2 3c 5f cd d9 40 47 7b b7 ca 9b 41 48 cd d9 40 ┆! < @* < ØC* <: <_ @Gæ AH @┆ 0x07be80…07bea0 47 cd c5 40 79 c2 94 41 1d ca 95 41 d6 20 4f cd d9 40 78 46 1d cd a1 41 c3 77 41 2a ac 3c c3 5c ┆G @y A A O @xF A wA* < Ø┆ 0x07bea0…07bec0 43 c5 d5 e5 11 5b 1a d5 32 bf 3c 57 e6 7f 47 fe 20 d2 99 42 fe 07 ca 99 42 fe 06 ca 99 42 14 15 ┆C Æ 2 <W G B B B ┆ 0x07bec0…07bee0 f2 c6 41 32 d2 3c 11 72 3c fe 15 ca de 41 11 74 3c fe 1d ca de 41 11 73 3c fe 1c c2 e6 41 eb 71 ┆ A2 < r< A t< A s< A q┆ 0x07bee0…07bf00 3e ff 32 c3 3c c9 11 c9 06 fe 11 ca 06 42 11 ce 06 fe 17 ca 06 42 11 d3 06 fe 05 ca 06 42 11 d8 ┆> 2 < B B B ┆ 0x07bf00…07bf20 06 fe 12 c2 3e 42 cd e9 43 cd e0 41 3a 58 3c b7 f8 1a 3d cc 24 42 3c 3c 3d c8 f5 13 1a cd 96 44 ┆ >B C A:X< = $B<<= D┆ 0x07bf20…07bf40 f1 c3 18 42 f5 13 1a 1b fe 0e ca 39 42 fe 0f c2 7c 17 af 32 75 3c f1 f1 c9 3e 80 c3 33 42 fe 03 ┆ B 9B ø 2u< > 3B ┆ 0x07bf40…07bf60 c2 4e 42 cd e0 41 3a 58 3c b7 f8 c3 29 40 11 93 42 21 6a 3c 1a b8 ca 31 43 23 13 3c c2 54 42 78 ┆ NB A:X< )@ B!j< 1C# < TBx┆ 0x07bf60…07bf80 fe 08 ca 1e 43 01 67 43 11 6a 43 21 70 3c fe 16 ca 34 43 d5 50 59 c1 2b fe 14 ca 34 43 fe 19 ca ┆ C gC jC!p< 4C PY + 4C ┆ 0x07bf80…07bfa0 f4 42 fe 0b c2 92 42 3a 58 3c b7 f8 cd e9 43 c3 3d 40 ff 02 04 13 18 10 ff c5 cd 53 13 c1 48 cd ┆ B B:X< C =@ S H ┆ 0x07bfa0…07bfc0 bf 42 3a 6a 3c b7 c8 78 fe 20 c8 3a 91 06 3d c8 f5 2a ea 3c eb cd 3e 43 cd bf 42 f1 c3 ae 42 51 ┆ B:j< x : = * < >C B BQ┆ 0x07bfc0…07bfe0 3a 58 3c b7 f8 cd da 42 3a 6b 3c b7 c8 3a 92 06 3d c8 f5 cd da 42 f1 c3 d0 42 7a cd f4 42 7a fe ┆:X< B:k< : = B Bz Bz ┆ 0x07bfe0…07c000 20 c8 3a 6c 3c b7 3a 0c 07 c4 f4 42 3a 6d 3c b7 3a 0b 07 c8 c5 d5 e5 21 5b 1a e5 fe 20 c8 d2 5a ┆ :l< : B:m< : !Æ Z┆ 0x07c000…07c020 (33, 0, 3) c3 f2 6f cd 60 70 21 00 08 cd 68 17 d0 cd 1b 70 d2 03 70 21 9f 3a 22 07 38 37 c9 3a ca 38 b7 37 ┆ o `p! h p p! :" 87 : 8 7┆ 0x07c020…07c040 c8 cd 5c 33 01 03 cd 03 70 d8 cd 1b 70 21 89 39 cd 35 70 b7 c9 c5 d5 e5 eb 21 81 39 23 cd 68 17 ┆ Ø3 p p! 9 5p ! 9# h ┆ 0x07c040…07c060 2b da 4d 70 cd 84 70 cd 77 70 c3 3c 70 21 8f 39 cd 68 17 d2 5b 1a cd a2 70 2b 2b 2b 2b c3 50 70 ┆+ Mp p wp <p! 9 h Æ p++++ Pp┆ 0x07c060…07c080 c5 e5 11 00 00 21 7f 39 cd c2 70 eb 09 eb cd 77 70 d2 68 70 e1 c1 c9 d5 23 23 23 23 11 90 39 cd ┆ ! 9 p wp hp #### 9 ┆ 0x07c080…07c0a0 68 17 d1 c9 c5 d5 e5 cd c2 70 2b 2b cd 51 17 e3 73 23 72 2b e3 cd c2 16 e1 e5 23 23 73 23 72 c3 ┆h p++ Q s#r+ ##s#r ┆ 0x07c0a0…07c0c0 5b 1a c5 d5 e5 e5 2b 2b cd c2 70 e1 e5 cd 51 17 eb e3 23 72 2b 73 e3 cd e1 16 e1 2b 72 2b 73 c3 ┆Æ ++ p Q #r+s +r+s ┆ 0x07c0c0…07c0e0 5b 1a d5 e5 cd 51 17 cd 35 17 e1 d1 c9 9b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆Æ Q 5 ┆ 0x07c0e0…07c100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x07c100…07c120 9a 03 01 14 00 00 00 00 ad 6f 1e 00 00 c3 38 00 c3 6c 6d c3 bf 6c c3 6a 6c c3 8f 6c c3 a0 6d c3 ┆ o 8 lm l jl l m ┆ 0x07c120…07c140 99 6d c3 6f 6d c3 ac 6f 42 00 0a 00 13 00 1b 00 24 00 25 00 20 3f 20 28 59 2f 4e 29 3a 20 00 0e ┆ m om oB $ % ? (Y/N): ┆ 0x07c140…07c160 13 14 45 44 49 54 3f 20 00 0e 13 20 53 41 56 49 4e 47 20 00 15 20 00 42 41 4b 00 00 00 00 00 00 ┆ EDIT? SAVING BAK ┆ 0x07c160…07c180 00 00 00 00 00 00 00 00 00 00 cd 03 6f 3e ff 32 04 38 cd ee 6c 01 92 71 cd 00 4e cd c5 6c 3a 5c ┆ o> 2 8 l q N l:Ø┆ 0x07c180…07c1a0 00 32 6c 00 3a 6d 71 32 5c 00 cd 5c 33 08 06 cd 08 25 3a c9 38 b7 c2 a7 6c cd b7 1a d7 39 cd 3f ┆ 2l :mq2Ø Ø3 %: 8 l 9 ?┆ 0x07c1a0…07c1c0 6f cd 39 25 c3 b3 6c cd b7 1a d9 39 cd 45 6f cd 53 6f c0 cd 2c 27 11 6d 71 cd e1 6c c3 c5 6c cd ┆o 9% l 9 Eo So ,' mq l l ┆ 0x07c1c0…07c1e0 03 6f cd ee 6c 11 f4 38 cd e1 6c af 32 ca 38 32 94 38 3a 2b 02 32 1c 37 3a 1b 37 cd 84 29 c3 26 ┆ o l 8 l 2 82 8:+ 2 7: 7 ) &┆ 0x07c1e0…07c200 2f 1b 1b 1a 13 13 b7 c8 cd df 18 c3 f8 18 cd 10 6d 3a b9 38 b7 c2 07 6d cd 2d 19 11 5c 00 21 32 ┆/ m: 8 m - Ø !2┆ 0x07c200…07c220 (33, 0, 4) 9a 04 01 14 00 00 00 00 b4 6f 15 00 00 c3 61 6c c3 94 6c c3 ae 6e c3 e7 6e c3 f8 6e c3 8c 6e 42 ┆ o al l n n n nB┆ 0x07c220…07c240 00 04 00 0c 00 0e 13 14 52 45 41 44 3f 20 00 0e 13 14 57 52 49 54 45 20 4d 41 52 4b 45 44 20 54 ┆ READ? WRITE MARKED T┆ 0x07c240…07c260 45 58 54 20 4f 4e 3f 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆EXT ON? ┆ 0x07c260…07c280 00 cd e5 6c 01 21 6c c8 21 9e 71 cd 86 66 cd 2c 27 11 ce 38 21 ce 3b cd a3 19 da 8e 6c cd 9a 4c ┆ l !l ! q f ,' 8! ; l L┆ 0x07c280…07c2a0 f5 06 00 4f 11 ce 3b cd b3 49 f1 da 6e 6c 21 9e 71 c3 11 67 cd 9c 6f cd e5 6c 04 23 6c c8 1b 1b ┆ O ; I nl! q g o l #l ┆ 0x07c2a0…07c2c0 af 12 cd 89 6f cd 2c 27 1e 00 21 80 00 cd cd 4e e5 01 c6 71 1e 00 21 81 00 cd 23 4e da cf 6c 2a ┆ o ,' ! N q ! #N l*┆ 0x07c2c0…07c2e0 8d 39 11 ce 38 cd 09 1a e1 cd 88 45 c3 a8 6c e1 2a 8d 39 3a c7 71 cd 19 4c 11 ce 38 cd 1e 1a cd ┆ 9 8 E l * 9: q L 8 ┆ 0x07c2e0…07c300 df 18 c3 f2 6e 11 ce 38 21 be 36 e3 7e 23 f5 cd 7c 24 cd 21 25 cd bd 1a cd ca 24 f1 e3 c5 4f e5 ┆ n 8! 6 ü# ø$ !% $ O ┆ 0x07c300…07c320 2a 2b 02 e3 e5 cd 19 33 2a 1d 37 22 ac 38 eb 22 65 38 eb 2a ac 38 cd 4f 21 cd a5 24 e1 e5 06 14 ┆*+ 3* 7" 8 "e8 * 8 O! $ ┆ 0x07c320…07c340 cd 72 23 cd b0 24 7e b7 ca 78 6d cd fe 6d da 8c 6d b7 c2 8c 6d e1 e5 cd 12 18 79 3d cc ba 18 ca ┆ r# $ü xm m m m y= ┆ 0x07c340…07c360 9e 6d 79 fe 04 c2 76 6d cd a6 6d c2 0e 6d cd ba 18 ca 76 6d cd b7 1a 9b 3a cd ca 24 cd b1 1b cd ┆ my vm m m vm : $ ┆ 0x07c360…07c380 2c 27 cd d5 17 e5 21 86 08 be ca 6f 6d 23 7e e1 cd a5 1e c2 0e 6d f6 ff f5 cd a5 24 f1 e1 e3 f5 ┆,' ! om#ü m $ ┆ 0x07c380…07c3a0 7d 21 2b 02 be c4 84 29 f1 e1 c1 c9 cd b7 1a 65 3a e1 e5 cd e5 1a cd ba 24 67 3a c3 0e 6d cd ba ┆å!+ ) e: $g: m ┆ 0x07c3a0…07c3c0 24 69 3a c3 0e 6d c5 e5 d5 21 0a 38 cd e4 6d 3a ca 38 b7 ca c8 6d 21 5c 00 cd e4 6d 21 6d 71 cd ┆$i: m ! 8 m: 8 m!Ø m!mq ┆ 0x07c3c0…07c3e0 e4 6d 21 f4 38 cd e4 6d 3a 00 38 b7 ca e0 6d 21 45 3d cd e4 6d 3a 8b 36 b7 21 6b 3d c4 e4 6d af ┆ m! 8 m: 8 m!E= m: 6 !k= m ┆ 0x07c3e0…07c400 d1 e1 c1 c9 c1 d1 d5 c5 1a be c0 23 13 0e 0b cd 5c 17 c0 f1 cd b7 1a a1 3a f6 ff c3 e0 6d c5 d5 ┆ # Ø : m ┆ 0x07c400…07c420 (33, 0, 5) 29 36 00 3e 0b 21 c6 29 be da 2e 0f 2a c6 29 26 00 eb 2a ba 29 19 e5 2a c6 29 26 00 eb 2a bc 29 ┆)6 > ! ) . * )& * ) * )& * )┆ 0x07c420…07c440 19 c1 0a 77 3a c6 29 3c 32 c6 29 c2 03 0f 2a be 29 01 ba 19 29 09 3e 00 77 23 36 00 2a be 29 01 ┆ w: )<2 ) * ) ) > w#6 * ) ┆ 0x07c440…07c460 ba 1d 29 09 77 23 36 00 2a be 29 01 ba 21 29 09 77 23 36 00 2a be 29 01 ba 25 29 09 77 23 36 00 ┆ ) w#6 * ) !) w#6 * ) %) w#6 ┆ 0x07c460…07c480 2a be 29 01 ba 19 29 09 4e 23 46 03 2a be 29 c5 01 ba 19 29 09 c1 71 23 70 2a be 29 01 ba 25 29 ┆* ) ) N#F * ) ) q#p* ) %)┆ 0x07c480…07c4a0 09 01 0f 00 e5 2a ba 29 09 7e d1 cd 65 14 01 0c 00 e5 2a ba 29 09 01 04 00 e5 2a 1e 15 09 7e e1 ┆ * ) ü e * ) * ü ┆ 0x07c4a0…07c4c0 a6 6f 26 00 11 80 00 cd 9e 14 c1 09 e5 2a be 29 01 ba 25 29 09 c1 71 23 70 21 c7 29 36 01 01 05 ┆ o& * ) %) q#p! )6 ┆ 0x07c4c0…07c4e0 00 2a 1e 15 09 3e ff cd f5 14 d2 d2 0f 21 c7 29 36 02 21 c6 29 36 10 3e 1f 21 c6 29 be da 3d 10 ┆ * > ! )6 ! )6 > ! ) = ┆ 0x07c4e0…07c500 c3 f1 0f 3a c7 29 21 c6 29 86 77 d2 d7 0f c3 3d 10 2a c6 29 26 00 eb 2a ba 29 19 7e 32 c8 29 3a ┆ : )! ) w = * )& * ) ü2 ):┆ 0x07c500…07c520 c7 29 fe 02 c2 1c 10 2a c6 29 26 00 01 01 00 09 eb 2a ba 29 19 3a c8 29 b6 32 c8 29 3a c8 29 fe ┆ ) * )& * ) : ) 2 ): ) ┆ 0x07c520…07c540 00 ca 3a 10 2a be 29 01 ba 21 29 09 e5 2a be 29 01 ba 1d 29 09 eb c1 cd 73 07 c3 e3 0f cd 2c 05 ┆ : * ) !) * ) ) s , ┆ 0x07c540…07c560 c3 0a 0e 3e 00 11 b8 15 cd ea 14 b5 c2 58 10 01 ba 03 cd d2 04 c3 5c 13 3a cc 29 fe ff c2 93 12 ┆ > X Ø : ) ┆ 0x07c560…07c580 3e 01 21 b8 15 cd f5 14 d2 64 11 21 01 00 22 c0 29 3e 00 21 c0 29 cd f5 14 d2 64 11 21 00 00 22 ┆> ! d ! " )> ! ) d ! "┆ 0x07c580…07c5a0 c0 29 21 00 00 22 c4 29 2a b8 15 2b 2b eb 21 c4 29 cd f8 14 da 61 11 2a c4 29 01 bc 15 29 09 5e ┆ )! " )* ++ ! ) a * ) ) ^┆ 0x07c5a0…07c5c0 23 56 eb 22 be 29 cd 5d 13 2a bc 29 22 ba 29 2a c4 29 01 ba 15 29 09 5e 23 56 eb 22 be 29 cd 5d ┆#V " ) Å * )" )* ) ) ^#V " ) Å┆ 0x07c5c0…07c5e0 13 21 c6 29 36 01 3e 0b 21 c6 29 be da 54 11 2a c6 29 26 00 eb 2a ba 29 19 7e 32 c9 29 e5 2a c6 ┆ ! )6 > ! ) T * )& * ) ü2 ) * ┆ 0x07c5e0…07c600 29 26 00 eb 2a bc 29 19 7e 32 ca 29 4f d1 1a b9 d2 3b 11 2a c4 29 01 ba 15 29 09 5e 23 56 eb 22 ┆)& * ) ü2 )O ; * ) ) ^#V "┆ 0x07c600…07c620 (33, 0, 6) 44 fe 19 ca 5a 44 fe 07 ca 5a 44 fe 06 ca 5a 44 ff e5 2a 36 3d 23 22 36 3d cd 49 13 e1 c9 2a 72 ┆D ZD ZD ZD *6=#"6= I *r┆ 0x07c620…07c640 3c 26 00 eb cd 25 17 c3 3e 43 7e b7 ca 31 43 50 59 c3 78 17 cd 2a 43 2a 74 3c 26 00 eb e9 3a c2 ┆<& % >Cü 1CPY x *C*t<& : ┆ 0x07c640…07c660 3c b7 ca 48 43 cd 25 17 e5 2a 7a 3c 19 22 7a 3c 2a 81 3c 19 22 81 3c e1 c9 21 00 00 eb 2a 7a 3c ┆< HC % *z< "z<* < " < ! *z<┆ 0x07c660…07c680 cd 2c 17 eb c3 45 43 cd 25 17 d5 e5 2a 83 3c 19 22 83 3c 2a 7c 3c 19 eb 2a 39 3e eb 7c b7 f4 68 ┆ , EC % * < " <*ø< *9> ø h┆ 0x07c680…07c6a0 17 dc 2c 17 22 7c 3c e1 d1 c9 3a 73 3c 5f 16 00 c3 6a 43 2a 7c 3c 7c b5 c8 eb 2a 39 3e cd 2c 17 ┆ , "ø< :s<_ jC*ø<ø *9> , ┆ 0x07c6a0…07c6c0 eb c3 6a 43 cd 0d 07 c3 20 3e cd e9 43 21 23 3e c3 99 44 3a 9e 07 4f 7c b5 c8 cd 12 17 eb cd 68 ┆ jC > C!#> D: Oø h┆ 0x07c6c0…07c6e0 17 d2 ca 43 21 00 00 c3 cf 43 eb 1b cd 2c 17 79 4b b7 ca e1 43 79 b7 1f 4f d2 e1 43 1b 23 7a b3 ┆ C! C , yK Cy O C #z ┆ 0x07c6e0…07c700 c8 78 b7 fc 1b 17 f6 01 c9 c5 d5 e5 21 5b 1a e5 3a 7b 3c b7 fc 59 43 af 2a 35 3e eb 2a 83 3c cd ┆ x !Æ :æ< YC *5> * < ┆ 0x07c700…07c720 b6 43 ca 11 44 22 83 3c 21 26 3e cd 99 44 c3 f7 43 2a 7a 3c eb 2a 37 3e 2b cd 68 17 da 20 44 eb ┆ C D" <!&> D C*z< *7>+ h D ┆ 0x07c720…07c740 2a 7e 3c eb cd 2c 17 22 81 3c eb 2a 35 3e 29 eb cd b3 43 c8 22 81 3c 2a 7e 3c cd 2c 17 04 05 fa ┆*ü< , " < *5>) C " <*ü< , ┆ 0x07c740…07c760 44 44 19 19 22 7e 3c 7b e6 01 4f 7a 1f 57 7b 1f 5f 21 29 3e cd 99 44 c3 11 44 f5 cd e9 43 f1 cd ┆DD "ü<æ Oz Wæ _!)> D D C ┆ 0x07c760…07c780 38 1d c5 d5 e5 fe 3c da 73 44 fe 60 d2 73 44 21 75 3c b6 21 5b 1a e5 fe 19 c2 88 44 21 71 3c cd ┆8 < sD ` sD!u< !Æ D!q< ┆ 0x07c780…07c7a0 31 43 3a 71 3c c3 2f 3e fe 06 c2 8f 44 3e 20 fe 07 c2 96 44 3e 7f 21 2c 3e e5 2a 58 3c 2d 2c e1 ┆1C:q< /> D> D> !,> *X<-, ┆ 0x07c7a0…07c7c0 f8 f5 c5 d5 e5 cd 3d 43 d2 b5 44 cd 11 43 e1 d1 c1 f1 c3 99 44 21 00 00 22 36 3d c3 ab 32 9b 1a ┆ =C D C D! "6= 2 ┆ 0x07c7c0…07c7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x1…] 0x07c800…07c820 (33, 0, 7) 6c cd dc 1a cd 7c 19 11 6d 71 21 65 00 c3 7c 19 cd 35 6d cd 2c 27 cd 4e 6d cd 35 6d d2 13 6d 21 ┆l ø mq!e ø 5m ,' Nm 5m m!┆ 0x07c820…07c840 89 39 cd 08 4b 2a 89 39 79 cd 19 4c 11 6d 71 cd 1e 1a c3 df 18 c5 d5 e5 21 91 39 16 78 cd 1b 4d ┆ 9 K* 9y L mq ! 9 x M┆ 0x07c840…07c860 cd b2 4c ca 36 4c 79 b7 c2 68 4c c3 36 4c c5 d5 e5 21 81 00 22 b4 38 21 91 39 cd 78 4a 2a 8f 39 ┆ L 6Ly hL 6L ! " 8! 9 xJ* 9┆ 0x07c860…07c880 cd 88 45 cd 64 4b d2 63 6d c3 36 4c cd bf 6c 3a 00 38 b7 ca 28 2d cd 08 25 cd c2 24 d5 39 cd d5 ┆ E dK cm 6L l: 8 (- % $ 9 ┆ 0x07c880…07c8a0 30 cd 6e 0b c4 b1 1b cd 2c 27 3a 01 38 b7 c0 3a 00 38 b7 ca 28 2d c3 81 6d 11 cf 39 af c3 a5 6d ┆0 n ,': 8 : 8 (- m 9 m┆ 0x07c8a0…07c8c0 11 d1 39 3e ff 32 85 37 47 2a ff 37 7c a5 21 57 3a c2 8c 6f 3a 00 38 b7 c4 75 6f d8 cd 08 25 3a ┆ 9> 2 7G* 7ø !W: o: 8 uo %:┆ 0x07c8c0…07c8e0 18 37 b7 ca d3 6d eb cd cc 1a 21 d3 39 cd cc 1a cd a5 24 3a 99 38 32 9b 38 04 cc 7f 24 11 5c 00 ┆ 7 m ! 9 $: 82 8 $ Ø ┆ 0x07c8e0…07c900 21 92 36 cd f1 6d 2c 6c c8 32 6c 00 cd 5c 33 08 03 af e3 cd 21 25 cd bd 1a cd ca 24 e3 c5 e5 2a ┆! 6 m,l 2l Ø3 !% $ *┆ 0x07c900…07c920 2b 02 e3 e5 cd 19 33 2a 1d 37 22 ac 38 eb 22 65 38 eb 2a ac 38 cd 4f 21 cd a5 24 e1 e5 06 14 cd ┆+ 3* 7" 8 "e8 * 8 O! $ ┆ 0x07c920…07c940 72 23 2b 77 23 cd b0 24 7e b7 ca 4f 6e cd 75 6e da 63 6e b7 ca 46 6e cd e6 6e da 63 6e 47 cd 7e ┆r#+w# $ü On un cn Fn n cnG ü┆ 0x07c940…07c960 17 b7 c2 63 6e 78 47 e1 e5 cd 12 18 78 fe ff f5 cd a5 24 f1 e1 e3 f5 7d 21 2b 02 be c4 84 29 f1 ┆ cnxG x $ å!+ ) ┆ 0x07c960…07c980 e1 c1 c9 cd b7 1a 65 3a e1 e5 cd e5 1a cd ba 24 67 3a c3 0d 6e c5 d5 d5 af 0e 10 12 13 0d c2 7b ┆ e: $g: n æ┆ 0x07c980…07c9a0 6e d1 d5 cd e6 6e 12 13 0e 08 cd ac 6e fe 2e c2 93 6e 23 0e 03 cd ac 6e d1 13 1a 1b fe 20 ca a8 ┆n n n . n# n ┆ 0x07c9a0…07c9c0 6e cd 7e 17 b7 d1 c1 c9 37 d1 c1 c9 cd ca 6e ca bf 6e 12 13 0d c2 ac 6e cd ca 6e c2 b8 6e c9 f5 ┆n ü 7 n n n n n ┆ 0x07c9c0…07c9e0 3e 20 12 13 0d c2 c0 6e f1 c9 7e cd d5 6e c8 23 cd e2 17 b7 c9 fe 2e c8 fe 3a c8 fe 2a c8 fe 3f ┆> n ü n # . : * ?┆ 0x07c9e0…07ca00 c8 fe 20 d0 bf c9 cd 7e 17 23 7e 2b fe 3a c2 fe 6e 7e cd d8 17 d2 fe 6e d6 40 23 23 b7 c9 cd 76 ┆ ü #ü+ : nü n @## v┆ 0x07ca00…07ca20 (33, 0, 8) d5 af 0e 10 12 13 0d c2 04 6e d1 d5 cd 6f 6e 12 13 0e 08 cd 35 6e fe 2e c2 1c 6e 23 0e 03 cd 35 ┆ n on 5n . n# 5┆ 0x07ca20…07ca40 6e d1 13 1a 1b fe 20 ca 31 6e cd 7e 17 b7 d1 c1 c9 37 d1 c1 c9 cd 53 6e ca 48 6e 12 13 0d c2 35 ┆n 1n ü 7 Sn Hn 5┆ 0x07ca40…07ca60 6e cd 53 6e c2 41 6e c9 f5 3e 20 12 13 0d c2 49 6e f1 c9 7e cd 5e 6e c8 23 cd e2 17 b7 c9 fe 2e ┆n Sn An > In ü ^n # .┆ 0x07ca60…07ca80 c8 fe 3a c8 fe 2a c8 fe 3f c8 fe 20 d0 bf c9 cd 7e 17 23 7e 2b fe 3a c2 87 6e 7e cd d8 17 d2 87 ┆ : * ? ü #ü+ : nü ┆ 0x07ca80…07caa0 6e d6 40 23 23 b7 c9 cd 76 19 37 c9 3a c2 71 21 c6 71 a6 fe 90 ca 10 6f cd e6 66 f5 21 c2 71 cd ┆n @## v 7 : q! q o f ! q ┆ 0x07caa0…07cac0 e6 66 3e 06 cc 81 26 f1 c0 3e 07 cd 81 26 16 ff cd 1c 6f 21 a2 71 cd 17 67 01 c2 71 c5 cd 52 4e ┆ f> & > & o! q g q RN┆ 0x07cac0…07cae0 7a e6 7f 57 01 ce 71 cd 62 4e e1 cd 86 66 21 85 39 cd 08 4b 2a 85 39 eb cd b3 49 cd 0d 33 21 c6 ┆z W q bN f! 9 K* 9 I 3! ┆ 0x07cae0…07cb00 71 cd 86 66 c3 f2 6e 16 00 cd 1c 6f cd f2 6e c3 b9 6e 21 a2 71 c3 11 67 cd 89 6f 01 c6 71 cd 2c ┆q f n o n n! q g o q ,┆ 0x07cb00…07cb20 27 cd 50 67 ca 0d 6f cd de 45 c3 fe 6e cd f2 6e 21 c2 71 cd df 66 21 c6 71 c3 df 66 d5 cd 89 6f ┆' Pg o E n n! q f! q f o┆ 0x07cb20…07cb40 37 c2 3f 6f 2a 83 39 eb 2a 91 39 cd 2c 17 11 ff e4 19 da 38 6f 21 55 00 eb 2a c7 71 cd 68 17 3e ┆7 ?o* 9 * 9 , 8o!U * q h >┆ 0x07cb40…07cb60 09 dc 81 26 e5 cd 0d 33 1e 00 cd cd 4e c1 d1 cd d5 49 c8 cd 2c 27 d5 cd 49 0b 69 78 c6 08 67 22 ┆ & 3 N I ,' I ix g"┆ 0x07cb60…07cb80 b6 38 21 87 39 cd ee 49 2a 8d 39 eb 2a 87 39 1a 77 23 13 0d c2 6f 6f 22 87 39 eb d1 7a b7 cc 88 ┆ 8! 9 I* 9 * 9 w# oo" 9 z ┆ 0x07cb80…07cba0 45 c4 de 45 05 c2 56 6f c9 cd 9c 6f 21 c2 71 cd 11 67 3a c9 71 b7 f0 3e 08 cd 81 26 3a c2 71 fe ┆E E Vo o! q g: q > &: q ┆ 0x07cba0…07cbc0 90 3e 06 c4 81 26 3a c6 71 fe 90 c8 3e 07 cd 81 26 cd 38 00 9b 00 00 00 00 00 00 00 00 00 00 00 ┆ > &: q > & 8 ┆ 0x07cbc0…07cbe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x1…] 0x07cc00…07cc20 (33, 0, 9) 42 49 53 2d 30 33 31 20 44 49 41 47 4e 4f 53 54 49 43 20 44 55 4d 50 0d 0a 2a 2a 2a 4e 4f 20 54 ┆BIS-031 DIAGNOSTIC DUMP ***NO T┆ 0x07cc20…07cc40 52 41 43 45 20 44 41 54 41 20 50 52 45 53 45 4e 54 2a 2a 2a 0d 0a 2a 2a 2a 45 4e 44 20 4f 46 20 ┆RACE DATA PRESENT*** ***END OF ┆ 0x07cc40…07cc60 44 49 41 47 4e 4f 53 54 49 43 20 44 55 4d 50 2a 2a 2a 0d 0a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆DIAGNOSTIC DUMP*** ┆ 0x07cc60…07cc80 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆ ┆ 0x07cc80…07cca0 00 4c 50 20 20 20 20 20 20 20 20 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ LP ┆ 0x07cca0…07ccc0 e5 42 20 20 20 20 20 20 20 20 20 20 01 00 00 56 f1 00 f2 00 f3 00 f4 00 f5 00 f6 00 00 00 00 00 ┆ B V ┆ 0x07ccc0…07cce0 e5 53 54 41 54 34 20 20 20 43 4f 4d 00 00 00 29 e7 00 e8 00 e9 00 00 00 00 00 00 00 00 00 00 00 ┆ STAT4 COM ) ┆ 0x07cce0…07cd00 e5 53 54 41 54 35 20 20 20 43 4f 4d 00 00 00 29 ea 00 eb 00 ec 00 00 00 00 00 00 00 00 00 00 00 ┆ STAT5 COM ) ┆ 0x07cd00…07cd20 e5 46 34 20 20 20 20 20 20 20 20 20 08 00 00 80 2e 01 2f 01 30 01 31 01 32 01 33 01 34 01 35 01 ┆ F4 . / 0 1 2 3 4 5 ┆ 0x07cd20…07cd40 e5 46 34 20 20 20 20 20 20 20 20 20 09 00 00 80 36 01 37 01 38 01 39 01 3a 01 3b 01 3c 01 3d 01 ┆ F4 6 7 8 9 : ; < = ┆ 0x07cd40…07cd60 e5 46 34 20 20 20 20 20 20 20 20 20 0a 00 00 80 3e 01 3f 01 40 01 41 01 42 01 43 01 44 01 45 01 ┆ F4 > ? @ A B C D E ┆ 0x07cd60…07cd80 e5 46 34 20 20 20 20 20 20 20 20 20 0b 00 00 75 46 01 47 01 48 01 49 01 4a 01 4b 01 4c 01 4d 01 ┆ F4 uF G H I J K L M ┆ 0x07cd80…07cda0 00 41 53 53 49 47 4e 20 20 50 52 4e 00 00 00 2e a7 00 af 00 b0 00 00 00 00 00 00 00 00 00 00 00 ┆ ASSIGN PRN . ┆ 0x07cda0…07cdc0 00 41 53 53 49 47 4e 20 20 48 45 58 00 00 00 07 b1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ASSIGN HEX ┆ 0x07cdc0…07cde0 00 41 53 53 49 47 4e 20 20 43 4f 4d 00 00 00 03 b2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ASSIGN COM ┆ 0x07cde0…07ce00 00 54 52 41 4e 53 46 45 52 43 4f 4d 00 00 00 07 b9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ TRANSFERCOM ┆ 0x07ce00…07ce20 (33, 0, 10) 9a 02 01 14 00 00 00 00 cd 70 12 00 00 c3 c7 6c c3 fd 6c c3 bd 6c c3 9c 6f c3 68 6f 65 00 0c 00 ┆ p l l l o hoe ┆ 0x07ce20…07ce40 0d 00 17 00 21 00 2e 00 3b 00 20 3f 00 0e 13 14 44 45 4c 45 54 45 3f 20 00 0e 13 14 52 45 4e 41 ┆ ! . ; ? DELETE? RENA┆ 0x07ce40…07ce60 4d 45 3f 20 00 89 89 a0 20 4e 45 57 20 4e 41 4d 45 3f 20 00 0e 13 14 43 4f 50 59 20 46 52 4f 4d ┆ME? NEW NAME? COPY FROM┆ 0x07ce60…07ce80 3f 20 00 13 14 43 4f 50 59 20 20 54 4f 20 3f 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆? COPY TO ? ┆ 0x07ce80…07cea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x07cea0…07cec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 cd 6a 6d ┆ jm┆ 0x07cec0…07cee0 02 20 6c c8 c3 f8 18 cd 08 25 3a 18 37 b7 21 c9 39 c4 cc 1a cd b7 1a cb 39 3a 18 37 c6 30 cd a5 ┆ l %: 7 ! 9 9: 7 0 ┆ 0x07cee0…07cf00 1e cd b7 1a cd 39 cd ca 24 cd b1 1b cd a5 1e d6 30 d8 fe 04 d0 32 18 37 af 32 9c 38 c9 cd 08 25 ┆ 9 $ 0 2 7 2 8 %┆ 0x07cf00…07cf20 3a 18 37 b7 21 c3 39 c4 cc 1a cd b7 1a c5 39 cd 76 19 21 ae 38 e5 cd 05 18 e1 cd e5 1a cd b0 24 ┆: 7 ! 9 9 v ! 8 $┆ 0x07cf20…07cf40 3a 99 38 32 9b 38 cd 21 25 cd b7 1a c7 39 cd ca 24 06 04 21 12 37 cd 5d 23 cd 7e 17 b7 c8 cd d8 ┆: 82 8 !% 9 $ ! 7 Å# ü ┆ 0x07cf40…07cf60 17 d2 56 6d d6 40 5f 23 7e fe 3a c2 4f 6d 23 cd 7e 17 b7 ca 5e 6d cd b7 1a 1e 6c c3 26 6d 3e 01 ┆ Vm @_#ü : Om# ü ^m l &m> ┆ 0x07cf60…07cf80 cd 7c 18 cd 8d 6f 7b c3 7c 18 11 ce 38 21 be 36 cd 7c 24 cd 21 25 c3 91 6d 21 a8 6c 7e b7 c2 8e ┆ ø oæ ø 8! 6 ø$ !% m! lü ┆ 0x07cf80…07cfa0 6d 11 be 36 e5 1a 77 13 23 b7 c2 85 6d e1 11 83 6c e3 7e 23 f5 cd bd 1a cd ca 24 f1 e3 c5 4f e5 ┆m 6 w # m l ü# $ O ┆ 0x07cfa0…07cfc0 2a 2b 02 e3 e5 2a 1d 37 22 ac 38 cd 19 33 eb 22 65 38 eb 2a ac 38 cd 4f 21 cd a5 24 e1 e5 06 14 ┆*+ * 7" 8 3 "e8 * 8 O! $ ┆ 0x07cfc0…07cfe0 cd 72 23 cd b0 24 7e b7 ca 5e 6e 79 fe 03 3a ce 38 c4 76 19 47 cd dc 6e da 72 6e b7 c2 72 6e e1 ┆ r# $ü ^ny : 8 v G n rn rn ┆ 0x07cfe0…07d000 e5 cd 12 18 79 3d e6 fe cc ba 18 c2 f6 6d cd ba 24 69 3a c3 ae 6d 79 fe 02 c2 02 6e cd 84 6e c2 ┆ y= m $i: my n n ┆ 0x07d000…07d020 (33, 0, 11) 19 37 c9 cd 08 25 3a 00 38 b7 c4 97 6f d2 18 6f cd c2 24 5b 3a c3 27 6f 3a 00 38 b7 c4 90 6f d2 ┆ 7 %: 8 o o $Æ: 'o: 8 o ┆ 0x07d020…07d040 3a 6f cd c2 24 5d 3a cd d5 30 cd 6e 0b c4 b1 1b cd 2c 27 3a 00 38 b7 c2 2a 6f cd c2 24 2e 6c cd ┆:o $Å: 0 n ,': 8 *o $.l ┆ 0x07d040…07d060 45 6f c3 d5 30 cd b7 1a 30 6c 21 a8 36 cd e5 1a c3 ca 24 cd b7 1a 2a 6c cd 69 6f e5 21 86 08 be ┆Eo 0 0l! 6 $ *l io ! ┆ 0x07d060…07d080 ca 65 6f 23 7e e1 c3 a5 1e cd ca 24 cd b1 1b cd 2c 27 c3 d5 17 d5 2a 7f 39 eb 2a 91 39 cd 2c 17 ┆ eo#ü $ ,' * 9 * 9 , ┆ 0x07d080…07d0a0 11 21 29 cd 68 17 d1 3f d0 21 f1 39 22 07 38 c9 e5 21 1b 39 c3 9b 6f e5 21 5c 00 d5 c5 11 45 3d ┆ !) h ? ! 9" 8 ! 9 o !Ø E=┆ 0x07d0a0…07d0c0 0e 0c cd 5c 17 c1 d1 e1 37 c8 3f c9 ff 9b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ Ø 7 ? ┆ 0x07d0c0…07d0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x1…] 0x07d100…07d120 9a 08 01 14 00 00 00 00 5d 6e 0c 00 00 c3 4a 6c c3 4f 6c c3 55 6c 34 00 08 00 0e 00 0f 00 10 00 ┆ Ån Jl Ol Ul4 ┆ 0x07d120…07d140 45 44 42 41 43 4b 55 50 24 24 24 42 41 4b 0e 4e 45 57 20 46 49 4c 45 0e 0e 00 00 00 00 00 00 00 ┆EDBACKUP$$$BAK NEW FILE ┆ 0x07d140…07d160 00 00 00 00 00 00 00 00 00 00 3e ff 32 85 37 cd 60 6c cd 90 6c cd 9f 6c cd 4d 6d cd 5c 33 01 00 ┆ > 2 7 `l l l Mm Ø3 ┆ 0x07d160…07d180 3a 90 36 b7 c0 3a 62 03 32 23 37 3e ff cd 2e 6d 3a 7f 03 32 26 37 32 24 37 3a 49 02 d6 05 21 80 ┆: 6 :b 2#7> .m: 2&72$7:I ! ┆ 0x07d180…07d1a0 03 be da 86 6c 7e 3c 32 28 37 3e ff 32 90 36 c9 21 91 71 01 65 01 cd 08 17 3e ff 32 92 71 c9 11 ┆ lü<2(7> 2 6 ! q e > 2 q ┆ 0x07d1a0…07d1c0 65 00 d5 21 1a 6c cd dc 1a cd 5a 17 d1 ca bc 6c 21 1c 6c cd dc 1a cd 5a 17 c2 c5 6c 21 59 3a 22 ┆e ! l Z l! l Z l!Y:"┆ 0x07d1c0…07d1e0 07 38 c3 53 2d 01 91 00 21 00 71 cd 08 17 01 c9 00 21 77 38 cd 08 17 32 5b 00 32 68 00 32 6b 00 ┆ 8 S- ! q !w8 2Æ 2h 2k ┆ 0x07d1e0…07d200 32 7d 00 cd 26 2f 2a 66 39 11 00 fe 19 22 00 71 22 91 39 cd f7 6c c9 2a 7f 39 eb 2a 91 39 cd 2c ┆2å &/*f9 " q" 9 l * 9 * 9 ,┆ 0x07d200…07d220 (33, 0, 12) 9a 06 01 14 00 04 00 00 c2 70 0c 00 00 c3 a7 6c c3 af 6c c3 32 6d 8a 00 0e 00 15 00 23 00 39 00 ┆ p l l 2m # 9 ┆ 0x07d220…07d240 49 00 57 00 57 00 0e 13 46 49 4e 44 3f 20 00 13 52 45 50 4c 41 43 45 20 57 49 54 48 3f 20 00 13 ┆I W W FIND? REPLACE WITH? ┆ 0x07d240…07d260 4f 50 54 49 4f 4e 53 3f 20 28 3f 20 46 4f 52 20 49 4e 46 4f 29 20 00 0e 2a 2a 2a 20 4e 4f 54 20 ┆OPTIONS? (? FOR INFO) *** NOT ┆ 0x07d260…07d280 46 4f 55 4e 44 3a 20 22 00 52 45 50 4c 41 43 45 5c 28 59 2f 4e 29 3a 20 00 13 00 20 3f 3f 3f 00 ┆FOUND: " REPLACEØ(Y/N): ??? ┆ 0x07d280…07d2a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x07d2a0…07d2c0 02 00 04 2b 37 22 00 da 32 6d 3e 00 c3 b4 6c da 32 6d 3e ff 32 7a 37 4f cd 7c 24 cd 21 25 cd b7 ┆ +7" 2m> l 2m> 2z7O ø$ !% ┆ 0x07d2c0…07d2e0 1a 18 6c cd ca 24 21 2b 37 06 1f cd 5d 23 32 78 37 79 b7 ca ee 6c 3e 2c cd 34 1e cd b7 1a 1a 6c ┆ l $!+7 Å#2x7y l>, 4 l┆ 0x07d2e0…07d300 cd ca 24 21 4d 37 06 1f cd 5d 23 32 78 37 3e 29 cd 34 1e cd a5 24 2a 1d 37 e5 21 7b 37 01 0a 00 ┆ $!M7 Å#2x7>) 4 $* 7 !æ7 ┆ 0x07d300…07d320 cd 08 17 3e 01 32 7d 37 32 7c 37 3a 78 37 fe 1b e1 ca 2f 6d e5 cd 4f 21 cd b7 1a 1c 6c 21 6d 37 ┆ > 2å72ø7:x7 /m O! l!m7┆ 0x07d320…07d340 06 0a cd 5d 23 cd f4 6e e1 da f9 6c cd 40 1e c3 35 6d d4 11 28 3a 84 37 b7 ca 48 6d 3a 7b 37 b7 ┆ Å# n l @ 5m (: 7 Hm:æ7 ┆ 0x07d340…07d360 f5 cc 33 67 f1 c4 39 67 2a 7d 37 22 7f 37 cd 34 6e cd 2c 27 21 ce 71 cd c3 66 cd 9a 6d d2 71 6d ┆ 3g 9g*å7" 7 4n ,'! q f m qm┆ 0x07d360…07d380 2a 7f 37 7c b5 c8 21 a0 6c e5 21 1e 6c e5 c3 ab 26 3a 7a 37 b7 c4 d1 6d 2a 7f 37 7c b5 ca 84 6d ┆* 7ø ! l ! l &:z7 m* 7ø m┆ 0x07d380…07d3a0 2b 22 7f 37 3a 81 37 b4 b5 c2 51 6d c9 cd 38 1d 3a 7b 37 b7 fa bd 4c c3 59 4c cd 19 33 cd c8 20 ┆+" 7: 7 Qm 8 :æ7 L YL 3 ┆ 0x07d3a0…07d3c0 cd 84 6e 11 f7 72 cd 9e 6f da b2 6d cd 84 6e c3 cb 6d cd 88 45 cd 2c 27 cd 8d 6d d2 a3 6d 3a 7b ┆ n r o m n m E ,' m m:æ┆ 0x07d3c0…07d3e0 37 b7 f5 cc 39 67 f1 c4 33 67 37 f5 cd f2 20 f1 c9 3a 7b 37 b7 3a 79 37 cc 2b 6e 3a 7c 37 b7 f5 ┆7 9g 3g7 :æ7 :y7 +n:ø7 ┆ 0x07d3e0…07d400 cc 24 6e f1 c4 9e 6e d2 fb 6d 3a 7b 37 b7 c0 3a 79 37 2a 8d 39 cd 3f 17 c3 88 45 cd a9 64 3a 79 ┆ $n n m:æ7 :y7* 9 ? E d:y┆ 0x07d400…07d420 (33, 0, 13) 11 59 43 fe 0d c8 11 8a 43 fe 0a c8 11 93 43 fe 0c c8 11 a4 43 fe 1f c8 11 4c 40 fe 1a c8 11 8c ┆ YC C C C L@ ┆ 0x07d420…07d440 42 fe 0b c8 11 21 40 fe 09 ca 3a 3f 11 25 40 fe 1e ca 3a 3f fe 1b c0 11 8d 43 36 00 23 cd 4a 3f ┆B !@ :? %@ :? C6 # J?┆ 0x07d440…07d460 d6 20 bf c9 cd 4a 3f e6 7f c9 7e 3c cc 4e 13 7e b7 c0 cd 31 13 c3 4f 3f cd 73 3f cd 5c 40 2a ae ┆ J? ü< N ü 1 O? s? Ø@* ┆ 0x07d460…07d480 3c 3a b2 3c 4f 0c 0d c8 7e 3c cc 4e 13 36 00 23 c3 66 3f 21 00 00 39 11 20 00 42 4b cd 2c 17 f9 ┆<: <O ü< N 6 # f?! 9 BK , ┆ 0x07d480…07d4a0 eb 21 6a 3c d5 e5 c5 cd c2 16 af 32 c2 3c 2f 32 58 3c 21 32 00 cd e6 40 21 9c 3c cd a5 40 21 00 ┆ !j< 2 </2X<!2 @! < @! ┆ 0x07d4a0…07d4c0 00 22 76 3c 2a 9d 3d cd ae 40 ca f0 3f fe 03 ca f0 3f fe 06 ca f0 3f fe 07 ca f0 3f fe 11 ca f0 ┆ "v<* = @ ? ? ? ? ┆ 0x07d4c0…07d4e0 3f fe 17 ca f0 3f fe 05 ca f0 3f fe 12 ca f0 3f fe 21 d2 f0 3f 46 36 00 23 cd c5 40 c2 e9 3f cd ┆? ? ? ? ! ?F6 # @ ? ┆ 0x07d4e0…07d500 4a 3f 7e 36 00 23 d6 20 4f 78 cd a1 41 c3 a7 3f 22 ae 3c 21 6a 3c 11 8a 3c 01 12 00 cd c2 16 21 ┆J?ü6 # Ox A ?" <!j< < !┆ 0x07d500…07d520 c4 3c 01 22 00 cd 08 17 af 32 c3 3c 3a 54 3c b7 cc e0 41 cd 59 40 cd 7b 15 c1 d1 e1 cd c2 16 f9 ┆ < " 2 <:T< A Y@ æ ┆ 0x07d520…07d540 c9 32 53 3c c9 32 54 3c c9 cd e9 43 f6 ff cd 31 13 01 00 04 cd 49 13 0b 78 b1 c2 34 40 21 4f 3c ┆ 2S< 2T< C 1 I x 4@!O<┆ 0x07d540…07d560 7e 36 00 b7 fa 29 40 3a 50 3c b7 c8 cd aa 43 cd 10 07 af 32 02 38 c3 31 13 3e ff fe af 32 58 3c ┆ü6 )@:P< C 2 8 1 > 2X<┆ 0x07d560…07d580 af 32 d2 3c 3a c3 3c 21 58 3c b6 c2 92 40 2a 7a 3c eb 2a 81 3c cd 2c 17 eb 2a ac 3c 19 cd 18 17 ┆ 2 <: <!X< @*z< * < , * < ┆ 0x07d580…07d5a0 e5 2a 9a 3c 19 cd 18 17 d1 cd 68 17 d2 92 40 f6 ff fe af 32 c2 3c f5 cc 00 41 f1 c4 54 41 cd 7b ┆ * < h @ 2 < A TA æ┆ 0x07d5a0…07d5c0 1c c4 49 13 c9 11 6a 3c 01 10 00 c3 c2 16 cd 4a 3f e6 7f fe 0d c8 fe 0a c8 fe 0c c8 fe 1a c8 fe ┆ I j< J? ┆ 0x07d5c0…07d5e0 1f c8 c3 d0 40 e6 7f fe 1c c8 fe 15 c8 fe 1d c8 fe 1b c8 fe 09 c8 fe 1e c9 2b 7e 3c c2 e4 40 2a ┆ @ +ü< @*┆ 0x07d5e0…07d600 a1 3d 2b 2b 7e c9 11 6f 3c 19 1a be 3e 14 cd f8 40 3e 16 cd f8 40 3e 19 c4 a1 41 23 13 1a be c9 ┆ =++ü o< > @> @> A# ┆ 0x07d600…07d620 (33, 0, 14) ae 6d 79 fe 03 c2 28 6e e5 21 ce 38 1a be e1 ca 1a 6e cd b7 1a 95 3a c3 ae 6d cd ba 18 ca 28 6e ┆ my (n ! 8 n : m (n┆ 0x07d620…07d640 cd b7 1a 93 3a c3 ae 6d 79 fe 04 c2 5c 6e cd 84 6e c2 ae 6d cd ba 18 ca 5c 6e cd b7 1a 9b 3a cd ┆ : my Øn n m Øn : ┆ 0x07d640…07d660 ca 24 cd b1 1b cd 2c 27 cd d5 17 e5 21 86 08 be ca 55 6e 23 7e e1 cd a5 1e c2 ae 6d f6 ff f5 cd ┆ $ ,' ! Un#ü m ┆ 0x07d660…07d680 a5 24 f1 e1 e3 f5 7d 21 2b 02 be c4 84 29 f1 e1 c1 c9 cd b7 1a 65 3a e1 e5 cd e5 1a cd ba 24 67 ┆ $ å!+ ) e: $g┆ 0x07d680…07d6a0 3a c3 ae 6d c5 e5 d5 21 0a 38 cd c2 6e 3a ca 38 b7 ca a6 6e 21 5c 00 cd c2 6e 21 6d 71 cd c2 6e ┆: m ! 8 n: 8 n!Ø n!mq n┆ 0x07d6a0…07d6c0 21 f4 38 cd c2 6e 3a 00 38 b7 ca be 6e 21 45 3d cd c2 6e 3a 8b 36 b7 21 6b 3d c4 c2 6e af d1 e1 ┆! 8 n: 8 n!E= n: 6 !k= n ┆ 0x07d6c0…07d6e0 c1 c9 c1 d1 d5 c5 1a be c0 23 13 0e 0b cd 5c 17 c0 f1 cd b7 1a a1 3a f6 ff c3 be 6e c5 d5 d5 af ┆ # Ø : n ┆ 0x07d6e0…07d700 0e 10 12 13 0d c2 e2 6e d1 d5 cd 4d 6f 12 13 0e 08 cd 13 6f fe 2e c2 fa 6e 23 0e 03 cd 13 6f d1 ┆ n Mo o . n# o ┆ 0x07d700…07d720 13 1a 1b fe 20 ca 0f 6f cd 7e 17 b7 d1 c1 c9 37 d1 c1 c9 cd 31 6f ca 26 6f 12 13 0d c2 13 6f cd ┆ o ü 7 1o &o o ┆ 0x07d720…07d740 31 6f c2 1f 6f c9 f5 3e 20 12 13 0d c2 27 6f f1 c9 7e cd 3c 6f c8 23 cd e2 17 b7 c9 fe 2e c8 fe ┆1o o > 'o ü <o # . ┆ 0x07d740…07d760 3a c8 fe 2a c8 fe 3f c8 fe 20 d0 bf c9 cd 7e 17 23 7e 2b fe 3a c2 65 6f 7e cd d8 17 d2 65 6f d6 ┆: * ? ü #ü+ : eoü eo ┆ 0x07d760…07d780 40 23 23 b7 c9 78 37 c9 cd 6a 6d 02 22 6c c8 cd 79 6d 03 24 6c ca 68 6f cd 8d 6f 21 ce 38 e5 01 ┆@## x7 jm "l ym $l ho o! 8 ┆ 0x07d780…07d7a0 10 00 09 eb 36 00 cd c2 16 d1 c3 9b 19 3a 00 38 21 8b 36 a6 21 ca 38 b6 cc 71 18 c9 cd 03 70 d8 ┆ 6 : 8! 6 ! 8 q p ┆ 0x07d7a0…07d7c0 cd 6a 6d 01 26 6c c8 cd 79 6d 04 28 6c ca a0 6f d5 cd 26 70 d1 d8 cd 8d 6f cd 45 19 3e ff 32 81 ┆ jm &l ym (l o &p o E > 2 ┆ 0x07d7c0…07d7e0 6c af 47 4f 79 b7 c2 df 18 2a 85 39 11 ce 38 cd a3 19 da ed 6f 04 78 3c ca ee 6f 11 80 00 19 e5 ┆l GOy * 9 8 o x< o ┆ 0x07d7e0…07d800 19 eb 2a 89 39 cd 68 17 e1 da cc 6f fe 0d 04 2a 85 39 11 83 6c 05 ca c4 6f cd 1e 1a 11 80 00 19 ┆ * 9 h o * 9 l o ┆ 0x07d800…07d820 (33, 0, 15) 17 7c b7 1f 1f 1f e6 3c c6 04 32 c5 38 07 32 c8 38 7c fe 44 21 00 04 22 c0 38 3e 08 32 c6 38 da ┆ ø < 2 8 2 8ø D! " 8> 2 8 ┆ 0x07d820…07d840 23 6d 29 22 c2 38 da 2a 6d 87 32 c7 38 c9 21 86 37 be 77 c8 b7 f5 21 20 02 01 0a 00 cc 08 17 3e ┆#m)" 8 *m 2 8 ! 7 w ! >┆ 0x07d840…07d860 ff 32 25 02 f1 eb 21 85 03 c4 c2 16 c9 3a 00 38 21 8b 36 a6 cc 71 18 21 5c 00 7e cd 74 19 77 11 ┆ 2% ! : 8! 6 q !Ø ü t w ┆ 0x07d860…07d880 6d 71 d5 01 10 00 cd c2 16 e1 3a 6c 00 b7 ca 72 6d 77 3a 5c 00 be ca 7e 6d 3e ff 32 b8 38 e5 11 ┆mq :l rmw:Ø üm> 2 8 ┆ 0x07d880…07d8a0 1b 39 01 09 00 cd c2 16 21 1c 6c cd dc 1a cd bf 16 e1 7e 11 f4 38 12 21 18 6c 01 0b 00 13 cd dc ┆ 9 ! l ü 8 ! l ┆ 0x07d8a0…07d8c0 1a cd c2 16 21 92 36 11 5c 00 cd 12 18 3a b8 38 b7 ca bd 6d 36 20 23 3a 6d 71 cd 05 18 21 a8 36 ┆ ! 6 Ø : 8 m6 #:mq ! 6┆ 0x07d8c0…07d8e0 11 6d 71 cd 12 18 21 d4 36 7e b7 cc 12 18 3a b8 38 b7 11 6d 71 c4 ba 18 3e 0b c4 81 26 11 5c 00 ┆ mq ! 6ü : 8 mq > & Ø ┆ 0x07d8e0…07d900 cd ba 18 3e ff ca ee 6d 32 5b 00 c3 f9 6d 32 b9 38 cd b7 1a 1e 6c cd 39 25 11 76 71 21 1a 6c cd ┆ > m2Æ m2 8 l 9% vq! l ┆ 0x07d900…07d920 dc 1a cd bf 16 3a 85 37 cd 2e 6d 3a 2b 02 32 1b 37 3a 1c 37 cd 84 29 cd 94 29 3a 00 38 b7 c4 48 ┆ : 7 .m:+ 2 7: 7 ) ): 8 H┆ 0x07d920…07d940 6e d2 2a 6e 21 5f 3a 22 07 38 3a 18 37 3d e6 fe 2a 07 38 b4 b5 21 61 03 b6 21 19 37 b6 c2 47 6e ┆n *n!_:" 8: 7= * 8 !a ! 7 Gn┆ 0x07d940…07d960 35 21 35 3a 22 07 38 c9 e5 d5 c5 11 45 3d 21 5c 00 0e 0c cd 5c 17 c1 d1 e1 37 c8 3f c9 9b 00 00 ┆5!5:" 8 E=!Ø Ø 7 ? ┆ 0x07d960…07d980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x4…] 0x07da00…07da20 (33, 1, 1) 37 2a 8d 39 cd 3f 17 cd de 45 2a 77 39 eb 13 21 4d 37 cd 63 6e eb 1b cd ae 49 3a 7b 37 b7 3a 4c ┆7* 9 ? E*w9 !M7 cn I:æ7 :L┆ 0x07da20…07da40 37 c4 2b 6e cd 49 0b cc 1f 31 c9 2a 8b 39 cd 46 17 c3 88 45 c5 e5 21 2b 37 11 f7 72 3a 82 37 b7 ┆7 +n I 1 * 9 F E !+7 r: 7 ┆ 0x07da40…07da60 c2 49 6e cd 63 6e c3 5b 6e 13 cd 63 6e 3e 13 2b 77 12 13 af 12 79 3c 3c 2b 77 23 eb 79 32 79 37 ┆ In cn Æn cn> +w y<<+w# y2y7┆ 0x07da60…07da80 e1 c1 c9 0e 00 d5 7e b7 ca 7e 6e fe 0e c2 77 6e 3e 0d 12 13 0c 3e 0a 12 23 13 0c c3 66 6e 12 e1 ┆ ü ün wn> > # fn ┆ 0x07da80…07daa0 2b 71 23 c9 3a 82 37 b7 c8 3a 7b 37 b7 c2 96 6e cd c4 4d c3 99 6e cd 5f 4d 3f d0 c3 88 45 21 20 ┆+q# : 7 :æ7 n M n _M? E! ┆ 0x07daa0…07dac0 6c 22 a4 38 cd a0 32 cd 87 27 cd 27 31 cd c9 6e f6 40 fe 59 f5 ca ba 6e 3e 4e 21 21 37 b6 cd a5 ┆l" 8 2 ' '1 n @ Y n>N!!7 ┆ 0x07dac0…07dae0 1e cd ad 20 f1 37 c0 b7 c9 2a 72 39 7e cd b4 20 cd 27 25 cd ad 20 2a a6 38 cd 4f 21 cd 2d 25 c2 ┆ 7 *r9ü '% * 8 O! -% ┆ 0x07dae0…07db00 eb 6e cd 62 21 cd 4f 21 c3 c9 6e cd 2c 27 cd b1 1b c3 e2 17 b7 d8 cd 7e 17 cd cd 17 cd e2 17 b7 ┆ n b! O! n ,' ü ┆ 0x07db00…07db20 c8 11 f5 6e d5 cd 97 6f da 6f 6f 23 fe 3f c2 18 6f cd ba 24 bf 39 37 c9 fe 42 ca 22 6f fe 2d c2 ┆ n o oo# ? o $ 97 B "o - ┆ 0x07db20…07db40 28 6f 3e ff 32 7b 37 c9 fe 47 c2 36 6f 3e ff 32 84 37 32 81 37 c9 fe 4e c2 40 6f af 32 7c 37 c9 ┆(o> 2æ7 G 6o> 2 72 7 N @o 2ø7 ┆ 0x07db40…07db60 fe 57 c2 4b 6f 3e ff 32 82 37 c9 fe 55 c2 56 6f 3e ff 32 83 37 c9 f5 3e 09 cd 34 1e cd b7 1a 22 ┆ W Ko> 2 7 U Vo> 2 7 > 4 "┆ 0x07db60…07db80 6c f1 cd a5 1e cd b7 1a 24 6c cd ca 24 37 c9 11 00 00 7e cd 97 6f d0 23 e5 62 6b 19 29 19 29 dc ┆l $l $7 ü o # bk ) ) ┆ 0x07db80…07dba0 93 6f d6 30 5f 16 00 19 dc 93 6f 22 7d 37 eb e1 c3 72 6f 21 ff ff c9 fe 30 3f d0 fe 3a c9 3a 7b ┆ o 0_ o"å7 ro! 0? : :æ┆ 0x07dba0…07dbc0 37 b7 fa b6 6f 21 8d 39 cd cc 6f 2a 8d 39 d8 cd de 6f d8 c3 88 45 21 89 39 cd cc 6f 2a 8b 39 d8 ┆7 o! 9 o* 9 o E! 9 o* 9 ┆ 0x07dbc0…07dbe0 1b 1a 13 cd 46 17 cd 06 70 c3 b2 6f cd 08 4b 03 1b 1a 13 c5 47 79 90 c1 4f 78 de 00 47 c9 1a b7 ┆ F p o K Gy Ox G ┆ 0x07dbe0…07dc00 c8 d5 cd 2d 70 da 04 70 05 0d e5 13 1a b7 ca 03 70 be 23 ca eb 6f 2b cd 57 70 23 ca eb 6f e1 d1 ┆ -p p p # o+ Wp# o ┆ 0x07dc00…07dc20 (33, 1, 2) 3a 64 71 cd 7e 6d 3a 66 71 3d cd 98 6d cd 2b 29 c3 ea 6e cd 54 4d e5 2a 50 71 22 64 71 e1 cd ad ┆:dq üm:fq= m +) n TM *Pq"dq ┆ 0x07dc20…07dc40 67 d8 e6 7f cd 87 17 37 c8 cd be 67 cd ac 17 ca 16 6f b7 c9 16 0c fe 16 00 2a 64 71 22 50 71 cd ┆g 7 g o *dq"Pq ┆ 0x07dc40…07dc60 54 4d e5 2a 50 71 22 66 71 e1 3a 50 71 5f cd ad 67 d8 e6 7f cd 87 17 c8 cd be 67 cd ac 17 ca 4a ┆TM *Pq"fq :Pq_ g g J┆ 0x07dc60…07dc80 6f 14 15 ca 42 6f d5 fe 21 cc 31 6e fe 23 cc 36 6e fe 2d cc 5d 6e d1 c3 42 6f 0e 80 c3 81 6f 0e ┆o Bo ! 1n # 6n - Ån Bo o ┆ 0x07dc80…07dca0 81 d5 e5 e1 d1 d5 e5 cd 21 25 eb cd d0 1a eb cd a5 24 06 04 cd 5d 23 47 79 fe 81 c2 af 6f 16 00 ┆ !% $ Å#Gy o ┆ 0x07dca0…07dcc0 cd 7e 17 fe 23 ca ad 6f fe 21 c2 af 6f 57 23 cd 7e 17 cd e2 17 b9 37 ca cd 6f d5 cd d1 6f cd 7e ┆ ü # o ! oW# ü 7 o o ü┆ 0x07dcc0…07dce0 17 b2 7b d1 c2 83 6f fe f1 d2 83 6f b7 e1 e3 e1 c9 11 00 00 7e fe 3a d0 d6 30 d8 23 e5 62 6b 19 ┆ æ o o ü : 0 # bk ┆ 0x07dce0…07dd00 29 19 29 cd 3f 17 eb e1 c3 d4 6f 9b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆) ) ? o ┆ 0x07dd00…07dd20 9a 0e 01 14 00 00 00 00 4f 70 06 00 00 c3 f7 6c e7 00 0a 00 0c 00 17 00 21 00 2f 00 0f 0f 0e 00 ┆ Op l ! / ┆ 0x07dd20…07dd40 0e 13 20 43 4f 4d 4d 41 4e 44 3f 20 00 89 20 57 48 41 54 3f 3f 3f 20 0e 00 89 20 19 20 4e 4f 54 ┆ COMMAND? WHAT??? NOT┆ 0x07dd40…07dd60 20 46 4f 55 4e 44 20 0e 00 0e 20 45 6e 74 65 72 20 6e 61 6d 65 20 6f 66 20 70 72 6f 67 72 61 6d ┆ FOUND Enter name of program┆ 0x07dd60…07dd80 20 79 6f 75 20 77 69 73 68 20 74 6f 20 52 75 6e 2c 09 09 0e 20 6f 70 74 69 6f 6e 61 6c 6c 79 20 ┆ you wish to Run, optionally ┆ 0x07dd80…07dda0 66 6f 6c 6c 6f 77 65 64 20 62 79 20 61 70 70 72 6f 70 72 69 61 74 65 20 61 72 67 75 6d 65 6e 74 ┆followed by appropriate argument┆ 0x07dda0…07ddc0 73 2e 09 0e 20 20 20 20 45 78 61 6d 70 6c 65 20 28 73 68 6f 77 73 20 64 69 73 6b 20 73 70 61 63 ┆s. Example (shows disk spac┆ 0x07ddc0…07dde0 65 29 3a 20 20 20 20 20 53 54 41 54 09 0e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆e): STAT ┆ 0x07dde0…07de00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3a 00 38 b7 ca 05 6d 21 8b ┆ : 8 m! ┆ 0x07de00…07de20 (33, 1, 3) c9 f5 79 fe 00 ca 81 7a fe 0a ca 14 7b f1 e5 2a 67 7c e3 c9 3e ff 32 6e 7c f1 cd 0e 7b f5 af 32 ┆ y z æ *gø > 2nø æ 2┆ 0x07de20…07de40 6e 7c f1 c9 cd 78 7c f5 fe 03 c2 22 7b 3a 6e 7c b7 ca 22 7b 31 65 7c 21 e6 7c cd 7f 7b c3 81 7a ┆nø xø "æ:nø "æ1eø! ø æ z┆ 0x07de40…07de60 21 e0 79 22 06 00 2a 01 00 eb 21 3d 7b e5 d5 cd 6c 7b d1 21 06 00 19 eb 21 69 7b cd 6c 7b 21 72 ┆! y" * !=æ læ ! !iæ læ!r┆ 0x07de60…07de80 7c 22 01 00 eb e1 c3 71 7b c3 24 7b 3a d3 7c b7 c0 01 03 00 78 b1 c8 7e 12 23 13 0b c3 74 7b d5 ┆ø" qæ $æ: ø x ü # tæ ┆ 0x07de80…07dea0 5e 23 56 2b 19 d1 7e 23 fe 1a ca 95 7b b7 c8 cd a0 7b c3 86 7b e5 21 95 7e cd 86 7b e1 c3 86 7b ┆^#V+ ü# æ æ æ ! ü æ æ┆ 0x07dea0…07dec0 4f 3e 09 c3 ac 7b af 32 6e 7c 3e 06 c5 d5 e5 2a 01 00 5f 16 00 19 79 cd be 7b e1 d1 c1 c9 e9 eb ┆O> æ 2nø> * _ y æ ┆ 0x07dec0…07dee0 cd c5 7b 1a eb e3 c5 4e 23 d5 e5 cd 05 00 e1 d1 c1 e3 c9 c5 21 80 00 cd bf 7b 0f c1 3c c9 21 20 ┆ æ N# ! æ < ! ┆ 0x07dee0…07df00 00 19 36 00 21 00 01 06 00 cd bf 7b 14 3d ca 04 7c 04 d5 11 80 00 19 11 93 78 7c ba d1 da e9 7b ┆ 6 ! æ = ø xø æ┆ 0x07df00…07df20 37 3e 35 c9 78 b7 3e 34 c9 21 da 7c c3 1e 7c 21 dc 7c c3 1e 7c 21 de 7c c3 1e 7c 21 e0 7c e5 21 ┆7>5 x >4 ! ø ø! ø ø! ø ø! ø !┆ 0x07df20…07df40 e2 7c cd 7f 7b e1 cd 7f 7b 21 e8 7c cd 7f 7b cd a6 7b c3 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ø æ æ! ø æ æ ┆ 0x07df40…07df60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x3…] 0x07dfc0…07dfe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c1 01 14 00 38 00 64 00 83 00 a7 00 ┆ 8 d ┆ 0x07dfe0…07e000 c6 00 f5 00 f5 00 f6 00 f9 00 0d 0a 48 69 74 20 61 6e 79 20 6b 65 79 20 74 6f 20 72 65 74 75 72 ┆ Hit any key to retur┆ 0x07e000…07e020 (33, 1, 4) 9a 01 04 14 00 00 00 00 e9 6b 0a 00 00 c3 35 4f c3 13 4b c9 6a 00 14 00 18 00 1d 00 1f 00 22 00 ┆ k 5O K j " ┆ 0x07e020…07e040 26 00 2c 00 34 00 00 00 38 00 50 41 47 45 5c 00 20 4c 49 4e 45 5c 00 46 43 3d 00 20 46 4c 3d 00 ┆& , 4 8 PAGEØ LINEØ FC= FL= ┆ 0x07e040…07e060 20 43 4f 4c 5c 00 4d 41 52 5c 52 45 4c 00 49 4e 53 45 52 54 5c 4f 4e 00 64 65 63 69 6d 61 6c 00 ┆ COLØ MARØREL INSERTØON decimal ┆ 0x07e060…07e080 4c 49 4e 45 5c 53 50 41 43 49 4e 47 5c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 59 00 ┆LINEØSPACINGØ Y ┆ 0x07e080…07e0a0 3d 3e f9 08 fa fb 36 38 f5 cd 71 4e ca b2 45 da b5 45 c5 d5 e5 eb 2a 8d 39 eb cd 35 17 22 8d 39 ┆=> 68 qN E E * 9 5 " 9┆ 0x07e0a0…07e0c0 d5 60 69 1e 00 cd 3c 4e cd 06 4e d1 cd 9a 46 e1 d1 c1 f1 b7 c9 c5 d5 e5 eb 2a 8b 39 cd 35 17 eb ┆ `i <N N F * 9 5 ┆ 0x07e0c0…07e0e0 cd e6 48 2a 8d 39 eb c5 cd e1 16 22 8b 39 eb 22 8d 39 e1 1e 00 cd 06 4e cd 8f 49 c3 af 45 f5 c5 ┆ H* 9 " 9 " 9 N I E ┆ 0x07e0e0…07e100 d5 e5 eb 2a 8d 39 eb 22 8d 39 cd 2c 17 1e 00 cd 18 46 cd 48 4e 03 03 03 0a b7 fa 0d 46 0b 0b 0a ┆ * 9 " 9 , F HN F ┆ 0x07e100…07e120 95 02 03 0a 9c 02 03 0a 9b 02 fc 62 46 03 15 c2 f5 45 cd 0c 4a c3 af 45 7c b5 c0 e1 c3 af 45 f5 ┆ bF E J Eø E ┆ 0x07e120…07e140 c5 d5 e5 eb 2a 8b 39 cd 35 17 eb 22 8b 39 cd e6 48 1e 00 60 69 cd 18 46 cd 48 4e 03 d5 0a 57 03 ┆ * 9 5 " 9 H `i F HN W ┆ 0x07e140…07e160 0a b2 57 03 0a b2 d1 ca 4f 46 0a b7 f2 57 46 0b 0b cd 17 4e f4 62 46 03 15 c2 3b 46 cd 8f 49 c3 ┆ W OF WF N bF ;F I ┆ 0x07e160…07e180 12 46 0b 0b af 02 03 02 03 02 c9 f5 c5 d5 e5 f5 cd db 49 f1 2a 8b 39 77 23 22 8b 39 2b 01 01 00 ┆ F I * 9w#" 9+ ┆ 0x07e180…07e1a0 cd b0 46 60 69 1e 00 cd 18 46 cd 3c 4e c3 38 46 f5 c5 d5 e5 cd 9a 46 c3 83 46 f5 c5 d5 e5 2a 8b ┆ F`i F <N 8F F F * ┆ 0x07e1a0…07e1c0 39 e5 c5 eb cd c2 16 eb 22 8b 39 c1 e1 c3 b4 46 f5 c5 d5 e5 af 32 08 71 eb 78 b1 ca ab 32 3a 96 ┆9 " 9 F 2 q x 2: ┆ 0x07e1c0…07e1e0 03 b7 2a 89 39 cd 2c 17 1b 3a 27 02 2f b7 cc bc 47 ca ec 46 7c b5 ca 04 47 1a e6 7f fe 0a ca 04 ┆ * 9 , :' / G Fø G ┆ 0x07e1e0…07e200 47 fe 0c ca 04 47 1b 03 23 c3 d4 46 2a 89 39 2b eb 09 cd 35 17 21 00 00 22 04 71 22 06 71 22 02 ┆G G # F* 9+ 5 ! " q" q" ┆ 0x07e200…07e220 (33, 1, 5) c3 de 6f d1 d1 c9 1a b7 c8 23 d5 1a cd 42 70 da 04 70 05 0d e5 13 23 1a b7 ca 26 70 be ca 15 70 ┆ o # Bp p # &p p┆ 0x07e220…07e240 cd 57 70 ca 15 70 e1 d1 b7 c2 0a 70 c9 04 0c c3 38 70 be c4 57 70 23 c8 0d c2 32 70 05 c2 32 70 ┆ Wp p p 8p Wp# 2p 2p┆ 0x07e240…07e260 37 c9 04 0c c3 4d 70 2b be c4 57 70 c8 0d c2 47 70 05 c2 47 70 37 c9 ae fe 80 c2 60 70 ae bf c9 ┆7 Mp+ Wp Gp Gp7 `p ┆ 0x07e260…07e280 fe 20 ca 6a 70 fe a0 c2 88 70 ae fe 41 da 89 70 c5 47 e6 df fe 5b d2 84 70 3a 83 37 b7 ca 84 70 ┆ jp p A p G Æ p: 7 p┆ 0x07e280…07e2a0 78 c1 bf c9 78 c1 b7 c9 ae fe 1e ca ba 70 d0 fe 13 ca aa 70 fe 01 c8 fe 0f c0 13 1a 1b b7 c8 ae ┆x x p p ┆ 0x07e2a0…07e2c0 e6 7f 3e 0f ca b8 70 13 bf c9 7e e6 7f cd 97 6f d4 d8 17 3e 13 d2 a8 70 b7 c9 7e e6 7f fe 1f 3e ┆ > p ü o > p ü >┆ 0x07e2c0…07e2e0 1e c9 9b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x07e2e0…07e300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x07e300…07e320 9a 11 01 14 00 00 00 00 ed 6d 00 00 00 c3 c6 6c c3 d2 6c c3 d8 6c c3 ea 6c c3 28 6c c3 3a 6c c3 ┆ m l l l l (l :l ┆ 0x07e320…07e340 88 6c c3 99 6c c3 ec 6d cd 54 4d cd 62 4d da 37 6c cd a0 17 c2 2b 6c cd de 45 cd 37 63 cd b7 4d ┆ l l m TM bM 7l +l E 7c M┆ 0x07e340…07e360 cd c7 4d da 4d 6c cd a0 17 c2 40 6c 23 cd 1f 46 2a 2b 71 3a 69 38 4f 11 fc ff 7e e6 60 ca 6f 6c ┆ M Ml @l# F*+q:i8O ü ` ol┆ 0x07e360…07e380 79 cd e8 5c ca 6f 6c fa 6f 6c 0d 19 c3 5a 6c 7e e6 7e 77 79 cd e8 5c c2 85 6c 44 4d 32 1e 71 19 ┆y Ø ol ol Zlü üwy Ø lDM2 q ┆ 0x07e380…07e3a0 36 00 cd 91 52 c3 91 66 cd 54 4d cd 62 4d d8 cd 9a 17 c8 cd a0 64 c3 8b 6c 3a 4d 71 f5 2a 24 37 ┆6 R f TM bM d l:Mq *$7┆ 0x07e3a0…07e3c0 cd 6e 65 da b3 6c 2a 28 37 2b 2b 2b cd ae 68 eb da b6 6c 2a 26 37 22 24 37 f1 32 4d 71 21 ae 71 ┆ ne l*(7+++ h l*&7"$7 2Mq! q┆ 0x07e3c0…07e3e0 cd c8 66 c3 2b 29 2a 82 38 22 75 38 21 7f 38 c3 78 17 21 4e 61 c3 db 6c 21 0d 61 22 78 38 3e ff ┆ f +)* 8"u8! 8 x !Na l! a"x8> ┆ 0x07e3e0…07e400 32 7f 38 21 00 00 22 75 38 c9 3a 96 38 b7 c0 2a 5e 71 eb 3a 5d 71 fe 1e c2 fc 6c 1c 01 ba 71 cd ┆2 8! "u8 : 8 *^q :Åq l q ┆ 0x07e400…07e420 (33, 1, 6) 3a 22 07 38 c9 cd 70 2f 11 a5 7e cd 68 17 21 8d 3a d2 01 6d af 32 59 38 cd 82 33 0f 00 21 aa 7c ┆:" 8 p/ ü h ! : m 2Y8 3 ! ø┆ 0x07e420…07e440 e5 01 21 00 cd 08 17 d1 d5 13 01 0b 00 21 e7 03 cd c2 16 d1 d5 cd 98 18 21 8f 3a d1 ca 01 6d 21 ┆ ! ! ! : m!┆ 0x07e440…07e460 95 7e cd 12 18 21 10 01 22 ce 7c 7e 32 d0 7c 21 81 38 22 d1 7c cd 08 25 3a 18 37 fe 02 21 1a 6c ┆ ü ! " øü2 ø! 8" ø %: 7 ! l┆ 0x07e460…07e480 d4 cc 1a cd b3 24 3a 99 38 32 9b 38 cd 7f 24 cd 21 25 cd ba 24 12 6c cd 21 25 cd b7 1a 14 6c cd ┆ $: 82 8 $ !% $ l !% l ┆ 0x07e480…07e4a0 a5 24 21 51 70 06 4d cd 5d 23 cd 90 1e cd 7e 17 b7 c8 11 b6 79 cd 0e 6f d2 a3 6d cd b7 1a 16 6c ┆ $!Qp M Å# ü y o m l┆ 0x07e4a0…07e4c0 c3 77 6d e5 21 bf 79 36 43 23 36 4f 23 36 4d e1 cd ba 18 cc 98 18 c2 c1 6d cd b7 1a 18 6c c3 77 ┆ wm ! y6C#6O#6M m l w┆ 0x07e4c0…07e4e0 6d e5 11 13 79 cd 92 6e 11 23 79 cd 92 6e af 32 33 79 e1 11 34 79 0e ff d5 13 7e cd e2 17 12 23 ┆m y n #y n 23y 4y ü #┆ 0x07e4e0…07e500 0c b7 c2 d9 6d d1 79 12 cd a5 24 21 2b 02 7e f5 af 77 32 9f 38 cd d5 30 f1 77 cd 96 22 cd 71 18 ┆ m y $!+ ü w2 8 0 w " q ┆ 0x07e500…07e520 2a 06 00 11 fa ff 19 11 da 79 01 06 00 cd c2 16 01 03 00 09 eb 09 eb 01 41 00 cd c2 16 cd 70 2f ┆* y A p/┆ 0x07e520…07e540 eb d5 01 13 00 21 20 02 cd c2 16 01 99 01 21 01 36 cd c2 16 21 a4 7e 11 da 79 cd 2c 17 eb e1 2b ┆ ! ! 6 ! ü y , +┆ 0x07e540…07e560 2b cd 2c 17 2e 00 e5 21 da 79 11 13 79 cd 2c 17 eb e1 cd 2c 17 e5 21 e0 79 11 13 79 cd 35 17 e1 ┆+ , . ! y y , , ! y y 5 ┆ 0x07e560…07e580 eb cd c2 16 d5 d5 21 35 7c 11 e0 79 cd 35 17 e1 e5 c5 cd 83 6f ef 6f e1 d1 19 e5 21 a4 7e 11 35 ┆ !5ø y 5 o o ! ü 5┆ 0x07e580…07e5a0 7c cd 35 17 e1 eb cd c2 16 21 09 01 e3 11 44 00 19 e9 c5 d5 d5 af 0e 10 12 13 0d c2 98 6e d1 d5 ┆ø 5 ! D n ┆ 0x07e5a0…07e5c0 cd 66 6f 12 13 0e 08 cd c9 6e fe 2e c2 b0 6e 23 0e 03 cd c9 6e d1 13 1a 1b fe 20 ca c5 6e cd 7e ┆ fo n . n# n n ü┆ 0x07e5c0…07e5e0 17 b7 d1 c1 c9 37 d1 c1 c9 cd f8 6e ca e9 6e fe 2a ca e1 6e 12 13 0d c2 c9 6e cd f8 6e c2 da 6e ┆ 7 n n * n n n n┆ 0x07e5e0…07e600 c9 3e 3f cd f1 6e c3 da 6e f5 3e 20 cd f1 6e f1 c9 12 13 0d c2 f1 6e c9 7e cd 03 6f c8 23 cd e2 ┆ >? n n > n n ü o # ┆ 0x07e600…07e620 (33, 1, 7) 6e 20 74 6f 20 57 6f 72 64 53 74 61 72 3a 20 00 0d 0a 52 65 70 6c 61 63 65 20 64 69 73 6b 65 74 ┆n to WordStar: Replace disket┆ 0x07e620…07e640 74 65 20 77 69 74 68 20 66 69 6c 65 20 1a 2c 20 68 69 74 20 61 6e 79 20 6b 65 79 3a 20 00 20 2a ┆te with file , hit any key: *┆ 0x07e640…07e660 2a 2a 20 66 69 6c 65 20 1a 20 73 74 69 6c 6c 20 6e 6f 74 20 66 6f 75 6e 64 20 2a 2a 2a 20 00 20 ┆** file still not found *** ┆ 0x07e660…07e680 2a 2a 2a 20 66 69 6c 65 20 1a 20 62 61 64 20 28 74 6f 6f 20 62 69 67 20 3f 3f 21 40 26 2a 29 20 ┆*** file bad (too big ??!@&*) ┆ 0x07e680…07e6a0 2a 2a 2a 20 00 20 2a 2a 2a 20 66 69 6c 65 20 1a 20 62 61 64 20 28 74 6f 6f 20 73 68 6f 72 74 29 ┆*** *** file bad (too short)┆ 0x07e6a0…07e6c0 20 2a 2a 2a 20 00 20 2a 2a 2a 20 1a 20 66 6f 75 6e 64 20 69 73 20 62 61 64 20 6f 72 20 69 6e 63 ┆ *** *** found is bad or inc┆ 0x07e6c0…07e6e0 6f 6d 70 61 74 69 62 6c 65 20 76 65 72 73 69 6f 6e 20 2a 2a 2a 20 00 0d 0a 0d 0a 00 5e 43 0d 0a ┆ompatible version *** ^C ┆ 0x07e6e0…07e700 00 0d 0a 0d 0a 20 43 61 6e 6e 6f 74 20 72 65 74 75 72 6e 20 74 6f 20 57 6f 72 64 53 74 61 72 2e ┆ Cannot return to WordStar.┆ 0x07e700…07e720 20 0d 0a 20 52 65 70 6c 61 63 65 20 73 79 73 74 65 6d 20 64 69 73 6b 20 28 69 66 20 72 65 6d 6f ┆ Replace system disk (if remo┆ 0x07e720…07e740 76 65 64 29 2c 20 0d 0a 20 48 69 74 20 61 6e 79 20 6b 65 79 20 74 6f 20 72 65 74 75 72 6e 20 74 ┆ved), Hit any key to return t┆ 0x07e740…07e760 6f 20 4f 70 65 72 61 74 69 6e 67 20 53 79 73 74 65 6d 3a 20 00 00 00 00 00 00 00 00 00 00 00 00 ┆o Operating System: ┆ 0x07e760…07e780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x07e780…07e7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 57 53 2e 43 4f 4d 20 20 20 20 20 ┆ WS.COM ┆ 0x07e7a0…07e7c0 20 20 20 00 9b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x07e7c0…07e7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x1…] 0x07e800…07e820 (33, 1, 8) 71 cd a0 48 78 b1 ca ab 32 0b 13 1a cd 5f 25 ca 75 47 c3 1f 47 78 b1 ca ab 32 0b 13 1a e6 7f fe ┆q Hx 2 _% uG Gx 2 ┆ 0x07e820…07e840 0c ca 6f 47 fe 0a ca 41 47 1a fe 0d c2 15 47 78 b1 ca ab 32 0b 13 1a e6 7f fe 0a c2 1f 47 cd c2 ┆ oG AG Gx 2 G ┆ 0x07e840…07e860 63 2a 02 71 23 22 02 71 2a 06 71 23 22 06 71 3a 27 02 b7 ca 62 47 d5 eb 2a 1c 71 cd 68 17 d1 d2 ┆c* q#" q* q#" q:' bG * q h ┆ 0x07e860…07e880 6a 47 3e 0a cd a7 47 c3 04 47 3e 8a cd a7 47 cd 7f 47 c3 04 47 3a 96 03 b7 c4 ce 47 c3 04 47 d5 ┆jG> G G> G G G: G G ┆ 0x07e880…07e8a0 2a 06 71 eb cd 99 47 73 23 72 d1 21 00 00 22 06 71 2a 04 71 23 22 04 71 c9 d5 2a 04 71 26 00 29 ┆* q Gs#r ! " q* q#" q * q& )┆ 0x07e8a0…07e8c0 eb 2a 00 71 19 d1 c9 eb be eb c8 67 3a 27 02 b7 c8 32 49 71 7c 12 62 6b 2b c3 2f 5c 3a 6c 71 fe ┆ * q g:' 2Iqø bk+ /Ø:lq ┆ 0x07e8c0…07e8e0 af e5 2a 04 71 b4 b5 2a 06 71 b4 b5 e1 c9 3a 27 02 b7 ca 06 48 cd bc 47 21 ec 47 ca e1 47 21 fc ┆ * q * q :' H G! G G! ┆ 0x07e8e0…07e900 47 cd 68 25 da 0a 48 c8 fa 06 48 e9 4c 48 54 48 50 4c 69 48 4d 54 6f 48 4d 42 75 48 43 50 30 48 ┆G h% H H LHTHPLiHMToHMBuHCP0H┆ 0x07e900…07e920 50 41 1c 48 00 e1 cd f0 25 d0 fe 0c ca 7f 47 3e 0a cd a7 47 2a 02 71 23 22 02 71 c9 cd f0 25 d0 ┆PA H % G> G* q#" q % ┆ 0x07e920…07e940 fe 0c ca 0a 48 3e 8a cd a7 47 cd 14 48 c3 7f 47 cd b2 25 da 06 48 cd f0 25 d0 fe 0c ca 0a 48 d5 ┆ H> G H G % H % H ┆ 0x07e940…07e960 eb 2a 06 71 19 eb 2a 1c 71 23 cd 68 17 d1 d2 25 48 c3 0f 48 cd b2 25 da 06 48 c2 06 48 cd f0 25 ┆ * q * q# h %H H % H H %┆ 0x07e960…07e980 d0 67 7d 32 0b 71 c3 91 48 21 0c 71 c3 78 48 21 10 71 c3 78 48 21 18 71 e5 cd b2 25 da 05 48 c2 ┆ gå2 q H! q xH! q xH! q % H ┆ 0x07e980…07e9a0 05 48 cd f0 25 d2 64 12 eb e3 57 7b cd 98 48 e1 eb cd b0 48 7c c3 0a 48 c5 4f 3a 0b 71 c3 18 0b ┆ H % d Wæ H Hø H O: q ┆ 0x07e9a0…07e9c0 c5 d5 21 66 03 11 0b 71 01 11 00 cd c2 16 d1 c1 c5 d5 e5 01 01 00 2a 11 71 eb 2a 19 71 19 eb 2a ┆ !f q * q * q *┆ 0x07e9c0…07e9e0 0d 71 cd 2c 17 7c b7 f2 cc 48 60 68 3a 0b 71 2f 3c 5f 16 ff 19 d2 de 48 0b 03 19 da d9 48 69 60 ┆ q , ø H`h: q/<_ H Hi`┆ 0x07e9e0…07ea00 22 1c 71 c3 5b 1a f5 c5 d5 e5 09 eb af 32 08 71 78 b1 ca 25 49 0b 1b 1a fe 0a ca 1f 49 fe 8a ca ┆" q Æ 2 qx %I I ┆ 0x07ea00…07ea20 (33, 1, 9) 2e 4d cd 32 6d d0 21 b2 71 cd 17 67 2a 61 71 eb cd 54 4d cd 32 6d da 06 6d cd 37 63 21 ba 71 11 ┆.M 2m ! q g*aq TM 2m m 7c! q ┆ 0x07ea20…07ea40 a6 71 01 08 00 cd c2 16 cd fb 60 3e ff 32 96 38 37 c9 af 32 63 71 7b b7 c8 cd b9 6d d0 cd d8 6d ┆ q `> 2 87 2cqæ m m┆ 0x07ea40…07ea60 c2 36 6d 7b b7 c8 cd b9 6d d0 e5 2a 9c 03 cd e4 6d e1 37 3f c4 d8 17 d2 43 6d cd a7 6d 7b b7 ca ┆ 6mæ m * m 7? Cm mæ ┆ 0x07ea60…07ea80 78 6d cd b9 6d d0 cd 90 17 c8 cd d8 6d ca 86 6d cd a7 6d 3e ff 32 63 71 cd b9 6d d0 cd 90 17 c8 ┆xm m m m m> 2cq m ┆ 0x07ea80…07eaa0 cd d8 6d c2 73 6d fe 45 37 c0 3a 63 71 b7 37 c0 cd b9 6d fe 53 ca 9d 6d fe 44 c2 a0 6d cd b9 6d ┆ m sm E7 :cq 7 m S m D m m┆ 0x07eaa0…07eac0 fe 2d 37 c4 d8 17 c9 2b c5 01 b2 71 cd 8f 4e 1c eb 22 61 71 eb 1d c1 23 c9 7b b7 ca bf 6d 1d cd ┆ -7 + q N "aq # æ m ┆ 0x07eac0…07eae0 2c 27 15 c8 cd 62 4d 3f d0 e6 7f fe 20 dc 6e 0a da bf 6d cd e2 17 37 c9 e5 2a 9a 03 cd e4 6d e1 ┆,' bM? n m 7 * m ┆ 0x07eae0…07eb00 c9 be c8 23 34 35 c2 e1 6d fe ff c9 ff 9b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ #45 m ┆ 0x07eb00…07eb20 9a 07 01 14 00 04 00 00 eb 6f 33 00 00 c3 4f 6d c3 65 6d c3 74 6d c3 8e 6d c3 1d 6e c3 4a 6e c3 ┆ o3 Om em tm m n Jn ┆ 0x07eb20…07eb40 dc 6d c3 e2 6d c3 e8 6d c3 fa 6d c3 03 6e c3 0c 6e c3 a2 6e c3 f0 6e c3 ee 6d c3 f4 6d 12 01 12 ┆ m m m m n n n n m m ┆ 0x07eb40…07eb60 00 39 00 73 00 7b 00 cd 00 bf 00 49 00 51 00 30 00 20 45 4e 54 45 52 20 73 70 61 63 65 20 4f 52 ┆ 9 s æ I Q 0 ENTER space OR┆ 0x07eb60…07eb80 20 4e 45 57 20 4c 49 4e 45 20 53 50 41 43 49 4e 47 20 28 31 2d 39 29 3a 20 00 20 4c 45 46 54 20 ┆ NEW LINE SPACING (1-9): LEFT ┆ 0x07eb80…07eba0 4d 41 52 47 49 4e 20 43 4f 4c 55 4d 4e 20 4e 55 4d 42 45 52 02 b8 ff 75 6d 6e 29 3f 20 00 20 28 ┆MARGIN COLUMN NUMBER umn)? (┆ 0x07eba0…07ebc0 45 53 43 41 50 45 20 66 6f 72 20 63 75 72 73 6f 72 20 63 6f 6c 00 20 52 49 47 48 54 02 92 ff 00 ┆ESCAPE for cursor col RIGHT ┆ 0x07ebc0…07ebe0 20 46 6f 72 20 64 65 63 69 6d 61 6c 20 74 61 62 20 73 74 6f 70 20 65 6e 74 65 72 20 22 23 22 20 ┆ For decimal tab stop enter "#" ┆ 0x07ebe0…07ec00 61 6e 64 20 64 65 63 69 6d 61 6c 20 70 6f 69 6e 74 20 63 6f 6c 75 6d 6e 20 0e 20 53 45 54 02 4a ┆and decimal point column SET J┆ 0x07ec00…07ec20 (33, 1, 10) 17 b7 c9 fe 2e c8 fe 3a c8 fe 20 d0 bf c9 c5 d5 d5 af 0e 10 12 13 0d c2 14 6f d1 d5 cd 66 6f 12 ┆ . : o fo ┆ 0x07ec20…07ec40 13 0e 08 cd 34 6f fe 2e c2 2c 6f 23 0e 03 cd 34 6f c3 b5 6e cd 52 6f ca 47 6f 12 13 0d c2 34 6f ┆ 4o . ,o# 4o n Ro Go 4o┆ 0x07ec40…07ec60 cd 52 6f c2 40 6f c9 f5 3e 20 12 13 0d c2 48 6f f1 c9 7e cd 5d 6f c8 23 cd e2 17 b7 c9 fe 2a c8 ┆ Ro @o > Ho ü Åo # * ┆ 0x07ec60…07ec80 fe 3f c8 c3 03 6f cd 7e 17 23 7e 2b fe 3a c2 7e 6f 7e cd d8 17 d2 7e 6f d6 40 23 23 b7 c9 cd 76 ┆ ? o ü #ü+ : üoü üo @## v┆ 0x07ec80…07eca0 19 37 c9 e3 7e 23 e5 66 6f 22 eb 6f e1 23 e3 c5 e5 cd 2c 17 22 ed 6f e1 cd d1 6f cd de 6f 1a d2 ┆ 7 ü# fo" o # , " o o o ┆ 0x07eca0…07ecc0 c4 6f e5 6f 13 cd de 6f d2 e8 6f 1a 67 d5 eb 2a ed 6f 19 d1 eb e3 73 23 7a d1 77 e3 2b 7c b5 e3 ┆ o o o o g * o s#z w +ø ┆ 0x07ecc0…07ece0 ca cf 6f 7e 77 23 13 e3 2b 7c b5 e3 c2 9b 6f e1 c9 e5 2a eb 6f 46 23 22 eb 6f e1 0e 08 c9 78 17 ┆ oüw# +ø o * oF#" o x ┆ 0x07ece0…07ed00 47 f5 0d cc d1 6f f1 c9 cd 38 00 0a 48 69 74 60 00 00 00 00 00 00 00 03 06 19 b0 06 db 6d b0 1b ┆G o 8 Hit` m ┆ 0x07ed00…07ed20 01 b6 18 0c 61 80 1b 36 36 db 6d 9b 33 66 6d 98 00 6d b6 03 18 c1 98 c6 1b 36 db 60 18 c0 6d 81 ┆ a 66 m 3fm m 6 ` m ┆ 0x07ed20…07ed40 b6 00 06 00 18 d9 b3 0c c0 00 c0 60 00 00 c0 00 31 80 c3 00 36 db 6c d9 b6 c3 fd ff ff ff ff ff ┆ ` 1 6 l ┆ 0x07ed40…07ed60 ff fd ff ff ff ff ff ff ff ff ff ff ff ff ff 9b 00 00 74 20 66 6f 75 6e 64 20 2a 2a 2a 20 00 20 ┆ t found *** ┆ 0x07ed60…07ed80 2a 2a 2a 20 66 69 6c 65 20 1a 20 62 61 64 20 28 74 6f 6f 20 62 69 67 20 3f 3f 21 40 26 2a 29 20 ┆*** file bad (too big ??!@&*) ┆ 0x07ed80…07eda0 2a 2a 2a 20 00 20 2a 2a 2a 20 66 69 6c 65 20 1a 20 62 61 64 20 28 74 6f 6f 20 73 68 6f 72 74 00 ┆*** *** file bad (too short ┆ 0x07eda0…07edc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x2…] 0x07ee00…07ee20 (33, 1, 11) 9a 05 01 14 00 00 00 00 7a 6f 00 00 00 c3 28 6c c3 13 6c 3a ca 38 b7 c0 3a 00 38 b7 c0 11 30 38 ┆ zo (l l: 8 : 8 08┆ 0x07ee20…07ee40 cd 89 34 3e ff c3 75 6c 3a 00 38 b7 ca 75 6c 21 01 38 7e 36 00 b7 ca 43 6c 3a ff 37 b7 c8 cd 5c ┆ 4> ul: 8 ul! 8ü6 Cl: 7 Ø┆ 0x07ee40…07ee60 33 0d 0f 3e ff 32 4f 3c cd 08 25 3a ca 38 b7 ca 5d 6c cd b7 1a dd 39 21 d4 36 cd e5 1a cd b7 1a ┆3 > 2O< %: 8 Ål 9! 6 ┆ 0x07ee60…07ee80 df 39 cd c1 6d 3e 00 32 4f 3c 32 01 38 c0 2f 32 50 3c c3 d2 12 32 ff 37 3a ca 38 b7 c4 61 6f d8 ┆ 9 m> 2O<2 8 /2P< 2 7: 8 ao ┆ 0x07ee80…07eea0 01 42 01 21 4f 3c cd 08 17 01 04 00 11 8b 36 21 ca 03 cd c2 16 cd 08 25 11 45 3d 21 d4 36 cd f0 ┆ B !O< 6! % E=! 6 ┆ 0x07eea0…07eec0 6d db 39 c8 3a ca 38 b7 c4 7a 6d d2 c0 6c e5 2b 7e fe 1b 21 61 3a c2 bc 6c 22 07 38 c4 d0 1a e1 ┆m 9 : 8 zm l +ü !a: l" 8 ┆ 0x07eec0…07eee0 11 92 36 1a b7 c2 d0 6c 7e 12 b7 23 13 c2 c8 6c 21 d3 36 7e fe 1b c4 de 6c cd 5c 33 10 00 cd ba ┆ 6 lü # l! 6ü l Ø3 ┆ 0x07eee0…07ef00 24 e1 39 3a 99 38 3c 32 9b 38 cd de 6d 3a 9b 38 cd 43 21 cd b0 24 3d cd 43 21 11 e5 39 21 8b 36 ┆$ 9: 8<2 8 m: 8 C! $= C! 9! 6┆ 0x07ef00…07ef20 cd 8f 6d c2 1a 6d cd e9 6d 11 6b 3d 21 ea 36 cd f8 6d f5 39 ca ea 6c c3 1d 6d cd e9 6d 21 00 37 ┆ m m m k=! 6 m 9 l m m! 7┆ 0x07ef20…07ef40 11 e3 39 cd 0c 6f 22 ee 3c 21 06 37 11 f3 39 cd 0c 6f 22 f0 3c 21 0c 37 11 f7 39 3a ff 37 b7 c4 ┆ 9 o" <! 7 9 o" <! 7 9: 7 ┆ 0x07ef40…07ef60 0c 6f 22 f2 3c cd de 6d 11 e7 39 21 8c 36 3a d1 03 b7 cc 8f 6d 11 e9 39 23 cd 8f 6d 23 3a 8b 36 ┆ o" < m 9! 6: m 9# m#: 6┆ 0x07ef60…07ef80 b7 f5 2f 11 eb 39 cc 8f 6d 77 f1 c0 cd b7 1a ed 39 cd ca 24 cd b1 1b c3 2c 27 e5 d5 c5 21 5c 00 ┆ / 9 mw 9 $ ,' !Ø ┆ 0x07ef80…07efa0 11 45 3d 0e 0c cd 5c 17 c1 d1 e1 37 c8 3f c9 c5 e5 cd f1 24 eb cd d0 1a eb cd d2 6d 4e 21 86 08 ┆ E= Ø 7 ? $ mN! ┆ 0x07efa0…07efc0 be 06 ff ca af 6d 23 be 2b 06 00 ca af 6d 41 78 fe ff ca b6 6d 23 7e cd a5 1e 78 e1 70 c1 c3 90 ┆ m# + mAx m#ü x p ┆ 0x07efc0…07efe0 1e cd d2 6d e5 21 86 08 be ca ce 6d 23 7e e1 c3 a5 1e cd ca 24 cd b1 1b cd 2c 27 c3 d5 17 3a a0 ┆ m ! m#ü $ ,' : ┆ 0x07efe0…07f000 38 32 9e 38 af 32 9f 38 c9 3a 9d 38 32 9f 38 c9 cd 7f 24 3e 01 c3 fc 6d 3e ff fe af e3 f5 cd 21 ┆82 8 2 8 : 82 8 $> m> !┆ 0x07f000…07f020 (33, 1, 12) 12 49 e6 7f fe 0c c2 f0 48 cd 4a 49 cd 60 49 c3 f0 48 3a 27 02 b7 ca 1f 49 cd 4a 49 cd 60 49 cd ┆ I H JI `I H:' I JI `I ┆ 0x07f020…07f040 33 49 c3 f0 48 3a 08 71 b7 1a 4f c4 71 49 e1 d1 c1 f1 c9 2a 02 71 2b 22 02 71 3a 96 03 b7 ca 58 ┆3I H: q O qI * q+" q: X┆ 0x07f040…07f060 49 cd 4a 49 3e ff 32 08 71 c9 13 1a 1b 21 08 71 34 35 c8 34 cd 5f 25 c8 2a 06 71 2b 22 06 71 c9 ┆I JI> 2 q ! q45 4 _% * q+" q ┆ 0x07f060…07f080 2a 04 71 2b 22 04 71 cd 99 47 cd 55 17 22 06 71 c9 2a 89 39 cd 2c 17 1b 41 7c b5 c8 23 1a 4f e6 ┆* q+" q G U " q * 9 , Aø # O ┆ 0x07f080…07f0a0 7f fe 0a ca 8b 49 fe 0c c2 77 49 78 c3 4d 49 f5 3a 08 71 b7 ca 31 49 c5 d5 e5 2a 8b 39 4e cd bd ┆ I wIx MI : q 1I * 9N ┆ 0x07f0a0…07f0c0 4c 2a 8b 39 eb cd 71 49 cd 8b 49 c3 ab 32 1a 13 4f 06 00 cd d5 49 c8 cd 0c 4a cd eb 49 cd c8 49 ┆L* 9 qI I 2 O I J I I┆ 0x07f0c0…07f0e0 0e 00 05 c2 ba 49 b7 c9 c5 06 00 0d 03 cd 90 46 eb 09 eb c1 c9 04 0c 0d c0 05 c9 d5 2a 8b 39 eb ┆ I F * 9 ┆ 0x07f0e0…07f100 2a 8d 39 cd 68 17 d1 21 8b 39 d8 21 8b 39 c5 d5 e5 cd 08 4b 78 b7 c2 5b 1a cd a3 4a 7a b7 c2 7b ┆* 9 h ! 9 ! 9 Kx Æ Jz æ┆ 0x07f100…07f120 4a cd 13 4b d2 f1 49 3e 11 cd a0 26 c5 d5 e5 f5 3e ff 32 c9 38 21 89 39 cd 6a 4a 2a 8f 71 19 eb ┆J K I> & > 2 8! 9 jJ* q ┆ 0x07f120…07f140 2a ba 38 cd 68 17 eb d2 2d 4a 22 ba 38 21 8d 39 cd 6a 4a cd 59 4a cd 2c 17 eb 2a bc 38 cd 68 17 ┆* 8 h -J" 8! 9 jJ YJ , * 8 h ┆ 0x07f140…07f160 eb da 47 4a 22 bc 38 eb 2a be 38 cd 68 17 eb da 55 4a 22 be 38 f1 c3 5b 1a d5 2a 16 39 eb 2a 7e ┆ GJ" 8 * 8 h UJ" 8 Æ * 9 *ü┆ 0x07f160…07f180 00 cd 2c 17 11 ff 7f 19 d1 c9 cd 08 4b 60 69 29 5c 16 00 d2 77 4a 14 c9 c5 d5 e5 eb 21 81 39 23 ┆ , K`i)Ø wJ ! 9#┆ 0x07f180…07f1a0 cd 68 17 2b da 90 4a cd c7 4a cd ba 4a c3 7f 4a 21 8f 39 cd 68 17 d2 5b 1a cd e5 4a 2b 2b 2b 2b ┆ h + J J J J! 9 h Æ J++++┆ 0x07f1a0…07f1c0 c3 93 4a c5 e5 11 00 00 21 7f 39 cd 08 4b eb 09 eb cd ba 4a d2 ab 4a e1 c1 c9 d5 23 23 23 23 11 ┆ J ! 9 K J J #### ┆ 0x07f1c0…07f1e0 90 39 cd 68 17 d1 c9 c5 d5 e5 cd 08 4b 2b 2b cd 51 17 e3 73 23 72 2b e3 cd c2 16 e1 e5 23 23 73 ┆ 9 h K++ Q s#r+ ##s┆ 0x07f1e0…07f200 23 72 c3 5b 1a c5 d5 e5 e5 2b 2b cd 08 4b e1 e5 cd 51 17 eb e3 23 72 2b 73 e3 cd e1 16 e1 2b 72 ┆#r Æ ++ K Q #r+s +r┆ 0x07f200…07f220 (33, 1, 13) ff 55 4d 4e 02 46 ff 00 20 54 41 42 20 41 54 20 43 4f 4c 00 20 43 4c 45 41 52 02 2e ff 02 2f ff ┆ UMN F TAB AT COL CLEAR . / ┆ 0x07f220…07f240 3b 20 41 20 66 6f 72 20 61 6c 6c 29 3f 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆; A for all)? ┆ 0x07f240…07f260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 cd c2 24 3f 6c cd b1 1b cd a5 1e d6 31 d8 3c fe 0a ┆ $?l 1 < ┆ 0x07f260…07f280 d0 32 29 02 c9 21 77 38 7e 36 00 b7 c2 71 6d 36 02 c3 2b 29 21 88 37 11 41 6c cd b3 6d c8 32 26 ┆ 2) !w8ü6 qm6 +)! 7 Al m 2&┆ 0x07f280…07f2a0 37 32 24 37 3c 3c 3c 21 28 37 be d8 77 c9 21 8e 37 11 43 6c cd b3 6d c8 fe 02 d2 9f 6d 3e 02 3c ┆72$7<<<!(7 w ! 7 Cl m m> <┆ 0x07f2a0…07f2c0 32 28 37 3d 3d 3d 21 24 37 be d0 77 21 26 37 be d0 77 c9 cd 7a 6f cd 2b 29 3d fe ff c0 78 fe 1b ┆2(7===!$7 w!&7 w zo +)= x ┆ 0x07f2c0…07f2e0 ca c5 6d af c9 2a 22 71 7c b7 7d ca d4 6d 3e ff f2 d4 6d 3c fe ef d8 3e ef fe ff c9 21 20 02 c3 ┆ m *"qø å m> m< > ! ┆ 0x07f2e0…07f300 06 6e 21 21 02 c3 78 17 21 22 02 c3 78 17 21 23 02 c3 78 17 21 24 02 c3 78 17 21 25 02 cd 78 17 ┆ n!! x !" x !# x !$ x !% x ┆ 0x07f300…07f320 c3 19 33 21 26 02 cd 2b 29 c3 78 17 3a 27 02 b7 21 28 02 c2 fd 6d 21 fd 39 22 07 38 c9 11 45 6c ┆ 3!& +) x :' !( m! 9" 8 El┆ 0x07f320…07f340 21 94 37 cd 7f 6f cd b6 6d c8 5f 7a fe 23 ca 36 6e 16 01 c3 5f 6e 16 07 c3 5f 6e cd 2b 29 01 79 ┆! 7 o m _z # 6n _n _n +) y┆ 0x07f340…07f360 00 21 09 36 cd 08 17 c3 81 6e 11 47 6c 21 94 37 0e 41 cd 81 6f da 3b 6e cd b6 6d c8 5f 16 00 f5 ┆ ! 6 n Gl! 7 A o ;n m _ ┆ 0x07f360…07f380 e5 7b cd d4 6d b7 1f f5 21 09 36 cd 3f 17 f1 1e 0f da 7a 6e eb 29 29 29 29 eb 7b 2f a6 b2 77 e1 ┆ æ m ! 6 ? zn )))) æ/ w ┆ 0x07f380…07f3a0 f1 f5 e5 1e f2 21 81 36 2b 1d 1d ca 99 6e 7e b7 ca 88 6e e6 0f c2 99 6e 1d 7b 32 08 36 e1 f1 c3 ┆ ! 6+ nü n n æ2 6 ┆ 0x07f3a0…07f3c0 2b 29 cd 8f 67 cd 13 6f da ea 6e 2b cd de 45 21 b6 71 cd c8 66 cd 37 6f 2a 66 71 eb 2a 26 37 cd ┆+) g o n+ E! q f 7o*fq *&7 ┆ 0x07f3c0…07f3e0 2c 17 eb 2a 28 37 19 eb 2a 64 71 19 7c b7 fa ea 6e cd d3 5b 7d b7 ca ea 6e e5 21 b6 71 cd 17 67 ┆, *(7 *dq ø n Æå n ! q g┆ 0x07f3e0…07f400 e1 3e 20 cd 6b 46 2d c2 e1 6e 21 b2 71 c3 17 67 cd 8f 67 cd 13 6f da 10 6f 2b cd 88 45 cd 34 6f ┆ > kF- n! q g g o o+ E 4o┆ 0x07f400…07f420 (33, 1, 14) 9a 0f 01 14 00 00 00 00 a4 7e ca 03 00 00 00 c9 c3 24 7a c9 c5 d5 e5 cd de 6e 2b 2b cd 51 17 e3 ┆ ü $z n++ Q ┆ 0x07f420…07f440 73 23 72 2b e3 cd c2 16 e1 e5 23 23 73 23 72 c3 5b 1a c5 d5 e5 e5 2b 2b cd de 6e e1 e5 cd 51 17 ┆s#r+ ##s#r Æ ++ n Q ┆ 0x07f440…07f460 eb e3 23 72 2b 73 e3 cd e1 16 e1 2b 72 2b 73 c3 5b 1a d5 e5 cd 51 17 cd 35 17 e1 d1 c9 9b 00 00 ┆ #r+s +r+s Æ Q 5 ┆ 0x07f460…07f480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x3…] 0x07f4e0…07f500 c3 01 7b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ æ ┆ 0x07f500…07f520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x07f520…07f540 00 00 00 00 e1 31 67 7c e5 2a 06 00 22 67 7c 2a 01 00 22 69 7c e5 11 6b 7c cd 71 7b e1 11 fd ff ┆ 1gø * "gø* "iø kø qæ ┆ 0x07f540…07f560 19 01 39 00 11 6f 7c cd 74 7b 11 b6 79 cd d3 7b ca 83 7a cd de 7b ca 83 7a da 83 7a 01 21 00 11 ┆ 9 oø tæ y æ z æ z z ! ┆ 0x07f560…07f580 5c 00 21 13 79 cd 74 7b 01 80 00 11 80 00 21 34 79 cd 74 7b cd 40 7b 11 80 00 cd c5 7b 1a cd 00 ┆Ø ! y tæ !4y tæ @æ æ ┆ 0x07f580…07f5a0 01 3e 00 31 65 7c b7 f5 2a 67 7c 22 06 00 2a 69 7c 22 01 00 eb 21 06 00 19 e5 21 6b 7c cd 6c 7b ┆ > 1eø *gø" *iø" ! !kø læ┆ 0x07f5a0…07f5c0 d1 21 78 7c cd 6c 7b 06 00 11 aa 7c cd d3 7b c2 c8 7a 21 d8 7c cd 7f 7b cd a6 7b 21 e4 7c cd 7f ┆ !xø læ ø æ z! ø æ æ! ø ┆ 0x07f5c0…07f5e0 7b 04 cd d3 7b ca 09 7c c5 cd de 7b c1 ca 15 7c da 0f 7c 24 3a d2 7c bc d2 15 7c 2a ce 7c 3a d0 ┆æ æ ø æ ø ø$: ø ø* ø: ┆ 0x07f5e0…07f600 7c be c2 1b 7c 3e 20 32 5d 00 f1 c0 04 05 c0 f5 21 d6 7c cd 7f 7b cd a6 7b 21 e4 7c cd 7f 7b f1 ┆ø ø> 2Å ! ø æ æ! ø æ ┆ 0x07f600…07f620 (33, 1, 15) 25 cd bd 1a cd ca 24 f1 e3 c5 4f e5 2a 2b 02 e3 e5 cd 19 33 2a 1d 37 22 ac 38 2a ac 38 cd 4f 21 ┆% $ O *+ 3* 7" 8* 8 O!┆ 0x07f620…07f640 cd a5 24 e1 e5 06 14 cd 72 23 2b 77 23 cd b0 24 7e b7 ca 50 6e cd 7e 6e da 64 6e b7 c2 64 6e 47 ┆ $ r#+w# $ü Pn ün dn dnG┆ 0x07f640…07f660 e1 e5 cd 12 18 79 3d cc ba 18 ca 76 6e 78 fe ff f5 cd a5 24 f1 e1 e3 f5 7d 21 2b 02 be c4 84 29 ┆ y= vnx $ å!+ )┆ 0x07f660…07f680 f1 e1 c1 c9 cd b7 1a 65 3a e1 e5 cd e5 1a cd ba 24 67 3a c3 1a 6e cd ba 24 69 3a c3 1a 6e c5 d5 ┆ e: $g: n $i: n ┆ 0x07f680…07f6a0 d5 af 0e 10 12 13 0d c2 84 6e d1 d5 cd ef 6e 12 13 0e 08 cd b5 6e fe 2e c2 9c 6e 23 0e 03 cd b5 ┆ n n n . n# ┆ 0x07f6a0…07f6c0 6e d1 13 1a 1b fe 20 ca b1 6e cd 7e 17 b7 d1 c1 c9 37 d1 c1 c9 cd d3 6e ca c8 6e 12 13 0d c2 b5 ┆n n ü 7 n n ┆ 0x07f6c0…07f6e0 6e cd d3 6e c2 c1 6e c9 f5 3e 20 12 13 0d c2 c9 6e f1 c9 7e cd de 6e c8 23 cd e2 17 b7 c9 fe 2e ┆n n n > n ü n # .┆ 0x07f6e0…07f700 c8 fe 3a c8 fe 2a c8 fe 3f c8 fe 20 d0 bf c9 cd 7e 17 23 7e 2b fe 3a c2 07 6f 7e cd d8 17 d2 07 ┆ : * ? ü #ü+ : oü ┆ 0x07f700…07f720 6f d6 40 23 23 b7 c9 cd 76 19 37 c9 e5 cd f1 24 2a 1d 37 26 00 cd 4f 21 62 6b cd d0 1a cd a5 24 ┆o @## v 7 $* 7& O!bk $┆ 0x07f720…07f740 e1 e5 06 05 cd 5d 23 cd 7e 17 d5 cd 3c 6f cd 7e 17 b7 eb d1 c2 10 6f e3 e1 c3 b0 24 11 00 00 7e ┆ Å# ü <o ü o $ ü┆ 0x07f740…07f760 fe 3a d0 d6 30 d8 23 e5 62 6b 19 29 19 29 dc 5d 6f 5f 16 00 19 dc 5d 6f eb e1 c3 3f 6f 21 ff ff ┆ : 0 # bk ) ) Åo_ Åo ?o! ┆ 0x07f760…07f780 c9 2a 7f 39 eb 2a 91 39 cd 2c 17 11 21 27 cd 68 17 3f d0 21 ef 39 22 07 38 c9 9b 00 00 00 00 00 ┆ * 9 * 9 , !' h ? ! 9" 8 ┆ 0x07f780…07f7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x3…] 0x07f800…07f820 (34, 0, 1) 2b 73 c3 5b 1a 21 8d 39 d5 e5 cd 51 17 cd 35 17 e1 d1 c9 cd 36 4b d0 c5 d5 e5 cd a3 4b da 5b 1a ┆+s Æ ! 9 Q 5 6K K Æ ┆ 0x07f820…07f840 3a c7 38 47 05 87 4f 0d cd a3 4b 05 ca 33 4b 0d c2 28 4b c3 61 4b c5 d5 e5 cd 64 4b da 5b 1a 21 ┆: 8G O K 3K (K aK dK Æ !┆ 0x07f840…07f860 b3 38 34 46 21 c8 38 af 86 05 c2 48 4b 3d f6 07 4f 3a c7 38 3d 47 cd 64 4b 05 ca 61 4b 0d c2 56 ┆ 84F! 8 HK= O: 8=G dK aK V┆ 0x07f860…07f880 4b c3 5a 1a 2a b4 38 eb 2a 8b 39 cd 2c 17 eb 2a 89 39 cd 68 17 d8 e5 2a 8f 71 eb 2a ba 38 cd 68 ┆K Z * 8 * 9 , * 9 h * q * 8 h┆ 0x07f880…07f8a0 17 e1 11 6d 71 d2 8e 4b cd 35 1a c3 9b 4b cd 1e 1a eb 2a ba 38 23 22 ba 38 eb 04 11 80 00 19 22 ┆ mq K 5 K * 8#" 8 "┆ 0x07f8a0…07f8c0 89 39 c9 2a 8f 39 cd b2 4c c2 bb 4b 3a 18 39 57 cd 46 17 e5 7a cd 19 4c c3 c0 4b 11 80 ff 19 e5 ┆ 9 * 9 L K: 9W F z L K ┆ 0x07f8c0…07f8e0 e3 e5 2a b6 38 eb 2a 8d 39 19 d1 cd 68 17 eb e3 da bb 4c e5 2a bc 38 eb cd 59 4a cd 68 17 e1 d2 ┆ * 8 * 9 h L * 8 YJ h ┆ 0x07f8e0…07f900 eb 4b 11 5c 00 cd 3c 1a c3 10 4c e5 2a be 38 eb cd 59 4a cd 68 17 e1 11 f4 38 d2 03 4c cd 35 1a ┆ K Ø < L * 8 YJ h 8 L 5 ┆ 0x07f900…07f920 c3 10 4c cd 1e 1a e5 2a be 38 2b 22 be 38 e1 04 cd b2 4c b7 e1 22 8f 39 c9 c5 d5 11 ce 3b d5 47 ┆ L * 8+" 8 L " 9 ; G┆ 0x07f920…07f940 0e 82 04 2b 1b 7e 12 23 13 0d 05 c2 25 4c 3e 1a 12 13 0d c2 2e 4c c3 5b 1a cd b2 4c c8 c5 d5 e5 ┆ + ü # %L> .L Æ L ┆ 0x07f940…07f960 cd a3 4a b7 14 15 cc 36 4b da 15 4d 2a c2 38 eb 21 91 39 cd 08 4d c3 68 4c c5 d5 e5 cd b2 4c ca ┆ J 6K M* 8 ! 9 M hL L ┆ 0x07f960…07f980 36 4c 21 91 39 cd ee 4c 2a 8f 39 cd 81 4c d4 9a 4c da 77 4c 32 18 39 22 8f 39 0d c2 6b 4c c3 61 ┆6L! 9 L* 9 L L wL2 9" 9 kL a┆ 0x07f980…07f9a0 4b cd 38 1d 11 f3 38 1a 13 b7 37 c4 aa 19 d0 11 5b 00 1a 13 b7 37 c4 a3 19 c9 06 80 7e fe 1a ca ┆K 8 8 7 Æ 7 ü ┆ 0x07f9a0…07f9c0 ab 4c 23 05 c2 9c 4c 37 3e 80 c9 cd bc 19 3e 80 90 c9 e5 3a 5b 00 21 f3 38 b6 37 e1 c9 c5 d5 e5 ┆ L# L7> > :Æ ! 8 7 ┆ 0x07f9c0…07f9e0 3a 6c 71 b7 37 ca 36 4c 11 17 4b 21 89 39 cd f1 4c 2a 89 39 cd 38 1d 11 80 ff 19 11 6d 71 cd aa ┆:lq 7 6L K! 9 L* 9 8 mq ┆ 0x07f9e0…07fa00 19 da 61 4b 22 89 39 0d c2 d4 4c c3 61 4b 11 36 4b e5 2a c2 38 d5 cd a3 4a cd 68 17 e1 dc 1a 4d ┆ aK" 9 L aK 6K * 8 J h M┆ 0x07fa00…07fa20 (34, 0, 2) 5b cd 2c 54 c1 f1 c2 f0 52 e5 7a e6 62 67 0a e6 95 b4 02 e1 c9 cd 2c 54 cd 40 54 7a e6 fe 57 c3 ┆Æ ,T R z bg ,T @Tz W ┆ 0x07fa20…07fa40 62 4e 16 15 c5 cd 80 5c cd 62 4e c1 c9 3a 70 38 3d c3 36 53 3e ff cd 01 5d d5 e5 21 04 00 09 0a ┆bN Ø bN :p8= 6S> Å ! ┆ 0x07fa40…07fa60 e6 04 ca 4c 53 7e e6 df 77 c3 5d 53 0a e6 01 ca 57 53 7e b7 c2 5d 53 cd 69 53 c3 60 53 cd 40 54 ┆ LSü w ÅS WSü ÅS iS `S @T┆ 0x07fa60…07fa80 cd 22 54 f2 3b 53 e1 d1 c9 cd 52 4e cd 22 54 f8 cd 60 56 0a f6 01 02 cd 40 54 cd 22 54 fa 1c 54 ┆ "T ;S RN "T `V @T "T T┆ 0x07fa80…07faa0 7a e6 02 c2 ec 53 0a e6 01 ca 1c 54 0a e6 02 c2 1c 54 cd 23 4e ca 09 53 f5 c5 cd 80 5c 0a e6 7f ┆z S T T #N S Ø ┆ 0x07faa0…07fac0 02 c1 f1 da cc 53 cd 60 56 cd 23 4e da c6 53 f5 cd e7 5a cd 2c 54 cd 40 54 f1 ca 09 53 cd 22 54 ┆ S `V #N S Z ,T @T S "T┆ 0x07fac0…07fae0 fa 1c 54 c3 a6 53 cd 2c 54 c3 73 53 c5 03 03 03 03 0a e6 01 ca 1b 54 cd 23 4e c1 ca e1 53 d2 1c ┆ T S ,T sS T #N S ┆ 0x07fae0…07fb00 54 f5 cd cc 5a f1 ca 09 53 c3 cc 53 c5 cd 80 5c 0a c1 e6 04 ca fc 53 16 10 c3 1c 54 0a e6 03 fe ┆T Z S S Ø S T ┆ 0x07fb00…07fb20 03 c2 07 54 0a e6 80 f6 13 57 cd 62 4e cd 40 54 cd 22 54 f2 fc 53 16 12 c3 1c 54 c1 cd 62 4e c3 ┆ T W bN @T "T S T bN ┆ 0x07fb20…07fb40 6c 53 3a 71 38 e5 21 1e 71 be e1 c9 d5 e5 c5 01 31 71 cd 52 4e 7a f6 01 57 c1 cd 62 4e e1 d1 c9 ┆lS:q8 ! q 1q RNz W bN ┆ 0x07fb40…07fb60 03 03 03 03 3a 1e 71 3c 32 1e 71 c9 cd 80 5c 3a 1e 71 3d c3 48 54 d5 e5 c5 2a 81 45 eb 21 fe 71 ┆ : q<2 q Ø: q= HT * E ! q┆ 0x07fb60…07fb80 23 23 23 23 14 1d ca ea 54 7e b7 ca 60 54 e6 04 c2 60 54 23 23 23 7e b7 fa 63 54 2b b6 2b b6 2b ┆#### Tü `T `T###ü cT+ + +┆ 0x07fb80…07fba0 c2 93 54 7a cd e8 5c f2 a9 54 7e e6 02 ca 60 54 c3 a9 54 15 2b 7e 47 2b b6 2b b6 2b ca a4 54 78 ┆ Tz Ø Tü `T T +üG+ + + Tx┆ 0x07fba0…07fbc0 b7 f2 ea 54 7e b7 ca ea 54 7e e6 04 c2 ea 54 7e e6 02 ca ce 54 7a e5 21 85 45 be e1 fa ea 54 2b ┆ Tü Tü Tü Tz ! E T+┆ 0x07fbc0…07fbe0 2b 2b 2b 15 7e b7 ca ea 54 e6 06 c2 ea 54 44 4d 7a 21 84 45 be fa ea 54 21 86 45 be f2 ea 54 32 ┆+++ ü T TDMz! E T! E T2┆ 0x07fbe0…07fc00 1e 71 32 69 38 b7 e1 e1 d1 c9 37 c1 e1 d1 c9 fe 20 d2 82 55 fe 09 c2 0f 55 f5 3e 20 cd ef 54 ca ┆ q2i8 7 U U > T ┆ 0x07fc00…07fc20 (34, 0, 3) e5 d5 c5 57 3a 20 37 b7 c2 19 5b 3a 7b 02 b7 c2 21 5b c1 d1 e1 f1 c3 b8 5c cd 37 5b c1 d1 e1 f1 ┆ W: 7 Æ:æ !Æ Ø 7Æ ┆ 0x07fc20…07fc40 c9 cd 37 5b cd 2a 22 21 7b 02 c1 e5 6a 26 00 cd 4f 21 e1 d1 c3 4e 22 3a 6b 38 82 57 d5 cd 41 23 ┆ 7Æ *"!æ j& O! N":k8 W A#┆ 0x07fc40…07fc60 e5 cd c8 20 eb 2a 70 39 cd 35 17 eb 2a 6e 39 eb cd c3 02 cd e1 16 cd c9 02 eb cd 35 17 e1 d1 c3 ┆ *p9 5 *n9 5 ┆ 0x07fc60…07fc80 f2 20 f5 e5 d5 57 cd 8c 5c 3a 20 37 b7 c2 b3 5b 3a 74 02 b7 c2 ba 5b 3e 03 ba f2 83 5b d1 e1 f1 ┆ W Ø: 7 Æ:t Æ> Æ ┆ 0x07fc80…07fca0 c3 b8 5c 3a 2b 02 b7 c2 7d 5b 3a 99 38 21 9c 38 b6 ca 9b 5b 3a 86 38 b7 ca 7d 5b af 32 94 38 cd ┆ Ø:+ åÆ: 8! 8 Æ: 8 åÆ 2 8 ┆ 0x07fca0…07fcc0 be 29 cd 2b 29 cd b6 22 3e 0a cd 6d 1f d1 e1 f1 c3 a6 5c cd c3 5b d1 e1 f1 c9 cd c3 5b 21 74 02 ┆ ) +) "> m Ø Æ Æ!t ┆ 0x07fcc0…07fce0 c3 2b 5b 3a 6b 38 82 57 d5 cd 41 23 d1 c3 48 20 cd d3 5b 7c 17 7c 1f 67 7d 1f 6f c9 01 fe 71 f5 ┆ +Æ:k8 W A# H Æø ø gå o q ┆ 0x07fce0…07fd00 c5 d5 e5 50 59 21 f2 72 cd 35 17 eb 21 04 00 19 eb cd e1 16 70 c3 ab 32 f5 c5 d5 e5 60 69 11 fe ┆ PY! r 5 ! p 2 `i ┆ 0x07fd00…07fd20 71 c3 15 5c f5 c5 01 fe 71 c3 0e 5c f5 c5 d5 e5 50 59 21 f2 72 cd 35 17 21 04 00 19 cd c2 16 eb ┆q Ø q Ø PY! r 5 ! ┆ 0x07fd20…07fd40 c3 f4 5b f5 c5 cd 04 5c 3d c2 25 5c f1 c1 c9 f5 c5 d5 e5 cd 9a 4e c3 42 5c f5 c5 d5 e5 44 4d cd ┆ Æ Ø= %Ø N BØ DM ┆ 0x07fd40…07fd60 52 4e cd 5c 5c d4 9f 5c c3 ab 32 f5 c5 d5 e5 cd 56 54 d4 9f 5c 03 03 03 03 c3 45 5c 01 02 72 3a ┆RN ØØ Ø 2 VT Ø EØ r:┆ 0x07fd60…07fd80 80 45 57 0a b7 ca 76 5c e6 04 c2 76 5c cd 23 4e ca 85 5c d2 80 5c 03 03 03 03 15 c2 63 5c 37 c9 ┆ EW vØ vØ #N Ø Ø cØ7 ┆ 0x07fd80…07fda0 0b 0b 0b 0b c9 0a e6 02 c2 80 5c c9 3a aa 02 b7 c0 3a 70 38 f5 c5 cd 04 5d cd 9f 5c c1 f1 c9 f5 ┆ Ø : :p8 Å Ø ┆ 0x07fda0…07fdc0 0a e6 7e 02 f1 c9 f5 c5 d5 01 fe 71 e5 21 83 45 86 e1 c3 c5 5c 3a 82 45 f5 c5 d5 cd 04 5d e5 21 ┆ ü q ! E Ø: E Å !┆ 0x07fdc0…07fde0 87 45 96 e1 2f 16 7f c3 d4 5c f5 c5 d5 57 3a 81 45 01 fe 71 5f 1c 1d ca e4 5c 0a a2 02 03 03 03 ┆ E / Ø W: E q_ Ø ┆ 0x07fde0…07fe00 03 c3 d6 5c d1 c1 f1 c9 c5 47 cd f5 32 4f 78 b9 c1 c9 e5 cd f5 32 21 6d 38 96 2f 3c e1 c9 cd f5 ┆ Ø G 2Ox 2!m8 /< ┆ 0x07fe00…07fe20 (34, 0, 4) 7f fe 20 c2 13 63 cd c7 4d da 13 63 23 cd 96 17 ca 1a 63 21 4e 71 34 c3 24 63 cd 1f 46 2a 22 71 ┆ c M c# c!Nq4 $c F*"q┆ 0x07fe20…07fe40 2b 22 22 71 e1 c3 17 67 2a ab 71 2d c2 33 63 21 92 03 be c4 96 17 c0 e5 21 00 00 22 4d 71 22 96 ┆+""q g* q- 3c! ! "Mq" ┆ 0x07fe40…07fe60 38 e1 c9 3a 4d 71 b7 c8 3a 23 37 b7 37 c0 3a ab 71 3d c8 b7 c9 cd 37 63 cd c2 63 cd a4 68 d2 6b ┆8 :Mq :#7 7 : q= 7c c h k┆ 0x07fe60…07fe80 63 21 77 38 7e 36 00 b7 c4 2b 29 1e 7f 21 86 38 35 3a 29 02 3d f5 cd 7f 63 f1 3d f2 75 63 c9 21 ┆c!w8ü6 +) ! 85:) = c = uc !┆ 0x07fe80…07fea0 23 37 34 35 ca 97 63 cd a9 64 3e 0d cd 6b 46 3e 0a cd 6b 46 c3 c4 62 cd 54 4d cd 62 4d da b9 63 ┆#745 c d> kF> kF b TM bM c┆ 0x07fea0…07fec0 fe 8d c2 b0 63 2b a3 be c4 0c 4a c4 2f 5c 77 23 cd a0 17 c2 9a 63 c3 88 45 cd 88 45 cd 4b 5c c3 ┆ c+ J /Øw# c E E KØ ┆ 0x07fec0…07fee0 8a 63 f5 e5 3a 26 37 21 24 37 be 77 c4 2b 29 e1 f1 c9 d4 11 28 cd c8 20 cd 12 64 cd dc 5b 3d c2 ┆ c :&7!$7 w +) ( d Æ= ┆ 0x07fee0…07ff00 db 63 cd 8b 52 cd 79 61 cd e5 65 c3 e1 32 d4 11 28 cd c8 20 cd 12 64 cd 23 5c cd 34 53 cd fe 5c ┆ c R ya e 2 ( d #Ø 4S Ø┆ 0x07ff00…07ff20 0a e6 02 ca e8 63 cd dc 5b cd 8b 52 cd fb 60 c3 fd 63 e5 cd f2 5c 1f 67 1f 84 e6 3f 3c e1 c9 3a ┆ c Æ R ` c Ø g ?< :┆ 0x07ff20…07ff40 a7 71 b7 cc 37 63 cd c4 4d cd 09 60 cd 1f 46 cd 55 64 2a 2b 71 11 f8 ff 19 7e e6 7e 77 c3 a6 64 ┆ q 7c M ` F Ud*+q ü üw d┆ 0x07ff40…07ff60 cd 5f 4d cd 8f 61 4f cd a3 64 21 ab 71 7e b7 79 c2 55 64 34 c9 e6 7f fe 20 d8 3a 4d 71 b7 c8 21 ┆ _M aO d! qü y Ud4 :Mq !┆ 0x07ff60…07ff80 4e 71 7e b7 ca 69 64 35 c9 21 9e 71 e5 cd c8 66 21 a6 71 e5 cd 17 67 3e 20 cd 6b 46 e1 cd c8 66 ┆Nqü id5 ! q f! q g> kF f┆ 0x07ff80…07ffa0 e1 3a a1 71 b7 f4 17 67 c9 cd 5f 4d cd a6 17 c4 c4 4d cd 90 17 f5 cd 54 4d cd 67 60 f1 cc 89 60 ┆ : q g _M M TM g` `┆ 0x07ffa0…07ffc0 cd 37 63 cd de 45 cd 91 66 f5 e5 2a 2b 71 3a 21 71 b7 c2 bd 64 3a 20 71 fe 09 d2 c5 64 7e e6 7e ┆ 7c E f *+q:!q d: q dü ü┆ 0x07ffc0…07ffe0 77 2b 2b 2b 2b 7e e6 7e 77 3e ff 32 4a 71 e1 f1 c9 cd 37 63 cd fc 64 3a 4d 71 b7 c8 21 00 00 22 ┆w++++ü üw> 2Jq 7c d:Mq ! "┆ 0x07ffe0…080000 ac 71 24 22 aa 71 cd b7 4d cd c7 4d da f6 64 cd 96 17 c2 e9 64 23 01 a6 71 c3 8f 4e cd 6b 65 d2 ┆ q$" q M M d d# q N ke ┆ 0x080000…080020 (34, 0, 5) 2a c0 38 29 24 24 eb e1 cd 1b 4d fe 08 da 13 4d d6 04 4f b7 c0 3e 12 cd a0 26 e9 cd 78 4a d5 cd ┆* 8)$$ M M O > & xJ ┆ 0x080020…080040 a3 4a e1 cd 68 17 d2 2a 4d eb 29 7c 4c c9 af 32 0a 71 d5 cd c4 4e c2 44 4d 2a 8d 39 af 32 09 71 ┆ J h *M )øL 2 q N DM* 9 2 q┆ 0x080040…080060 2f 32 0a 71 eb 2a 8b 39 da 4e 4d 2a 8f 39 cd 35 17 eb d1 c9 cd 05 4b 2a 8d 39 af 32 09 71 c9 cd ┆/2 q * 9 NM* 9 5 K* 9 2 q ┆ 0x080060…080080 54 4d 78 b1 cc 6c 4d d8 7e 23 0b c9 e5 21 09 71 7e 36 00 e1 b7 ca 8b 4d 32 0a 71 d5 2a 8d 39 eb ┆TMx lM ü# ! qü6 M2 q * 9 ┆ 0x080080…0800a0 2a 8f 39 cd 35 17 eb d1 78 b1 c0 01 9a 71 cd 8f 4e cd 39 4c cd 32 4d 78 b1 c0 37 2a 8f 39 c9 af ┆* 9 5 x q N 9L 2Mx 7* 9 ┆ 0x0800a0…0800c0 32 0a 71 d5 cd c4 4e eb 2a 8d 39 d2 b1 4d 2a 89 39 eb cd 35 17 d1 c9 d5 3e ff 32 09 71 2a 8b 39 ┆2 q N * 9 M* 9 5 > 2 q* 9┆ 0x0800c0…0800e0 eb c3 ae 4d cd b7 4d 78 b1 cc d1 4d d8 2b 7e 0b c9 e5 21 09 71 7e 36 ff e1 b7 c2 ef 4d 3d 32 0a ┆ M Mx M +ü ! qü6 M=2 ┆ 0x0800e0…080100 71 d5 21 89 39 cd 51 17 cd 35 17 d1 78 b1 c0 01 9a 71 cd 8f 4e cd bd 4c cd a3 4d 78 b1 c0 37 c9 ┆q ! 9 Q 5 x q N L Mx 7 ┆ 0x080100…080120 cd 52 4e cd 3c 4e c5 d5 cd 48 4e cd 16 4e 03 15 c2 0b 4e d1 c1 c9 03 0a 85 02 03 0a 8c 02 03 0a ┆ RN <N HN N N ┆ 0x080120…080140 8b 02 c9 c5 03 03 03 0a bb 37 fa 3a 4e 3f c2 3a 4e 0b 0a bc c2 3a 4e 0b 0a bd c1 c9 af 95 6f 3e ┆ 7 :N? :N :N o>┆ 0x080140…080160 00 9c 67 3e 00 9b 5f c9 f5 01 92 71 3a 7e 45 57 f1 c9 03 0a 6f 03 0a 67 03 0a 5f 0b 0b 0b 0a b7 ┆ g> _ q:üEW o g _ ┆ 0x080160…080180 57 c9 7a 02 03 7d 02 03 7c 02 03 7b 02 0b 0b 0b c9 d5 cd 77 4e d1 c9 eb 2a 8b 39 cd 68 17 eb d8 ┆W z å ø æ wN * 9 h ┆ 0x080180…0801a0 c8 eb 2a 8d 39 cd 68 17 eb d0 3e 10 cd a0 26 d5 e5 cd 9a 4e cd 63 4e e1 d1 c9 f5 c5 d5 cd 71 4e ┆ * 9 h > & N cN qN┆ 0x0801a0…0801c0 eb ca bd 4e 2a 8b 39 da ad 4e 2a 8d 39 eb 7d 93 6f 7c 9a 67 9f 5f c1 50 c1 f1 c3 38 1d 21 00 00 ┆ N* 9 N* 9 å oø g _ P 8 ! ┆ 0x0801c0…0801e0 5c c3 b6 4e d5 cd 52 4e cd cd 4e d1 c9 c5 d5 7b eb b7 fa 05 4f 3e 13 c4 a0 26 7a b3 ca 24 4f d5 ┆Ø N RN N æ O> &z $O ┆ 0x0801e0…080200 2a 8d 39 eb 2a 8f 39 cd 2c 17 d1 23 cd 68 17 2b da fa 4e cd 59 4c d2 df 4e eb 2a 8d 39 19 f6 01 ┆* 9 * 9 , # h + N YL N * 9 ┆ 0x080200…080220 (34, 0, 6) a1 55 3a 45 71 82 e6 07 c2 fa 54 f1 fe 00 c9 fe 1e c2 22 55 3a 25 02 b7 ca b1 55 cd 27 55 c8 c3 ┆ U:Eq T "U:% U 'U ┆ 0x080220…080240 f0 55 fe 1f c2 33 55 3a b7 03 e5 21 22 37 a6 e1 c3 ef 54 f5 cd 6e 0a d2 41 55 3a 25 02 b7 ca 63 ┆ U 3U: !"7 T n AU:% c┆ 0x080240…080260 55 3e 5e cd ef 54 ca a1 55 f1 f5 c6 40 cd ef 54 ca a1 55 f1 f5 cd 6e 0a dc f0 55 cc f0 55 e4 f7 ┆U>^ T U @ T U n U U ┆ 0x080260…080280 55 f1 c9 f1 e5 21 95 03 be e1 ca 80 55 f5 cd b1 55 f1 e5 2a 45 71 23 23 22 45 71 e1 cd 54 55 c9 ┆U ! U U *Eq##"Eq TU ┆ 0x080280…0802a0 3e 20 cc 38 1d fe 7f c2 8c 55 3e 7e 1d ca a2 55 e5 21 48 71 ae e1 77 23 3a 0a 71 b7 c4 bb 55 14 ┆> 8 U>ü U !Hq w#: q U ┆ 0x0802a0…0802c0 c9 f1 2a 43 71 22 45 71 2a 41 71 eb 2a 3f 71 bf c9 3a 0a 71 b7 c4 bb 55 f6 ff c9 af 32 0a 71 7a ┆ *Cq"Eq*Aq *?q : q U 2 qz┆ 0x0802c0…0802e0 32 25 71 e5 2a 45 71 7a cd 3f 17 22 26 71 e1 3a 48 71 32 28 71 c9 e5 21 21 37 ae e1 c5 e5 21 0a ┆2%q *Eqz ? "&q :Hq2(q !!7 ! ┆ 0x0802e0…080300 71 46 36 00 e1 cd ef 54 4f 78 32 0a 71 79 c1 c8 e5 2a 45 71 c3 fc 55 e5 2a 45 71 2b 2b 22 45 71 ┆qF6 TOx2 qy *Eq U *Eq++"Eq┆ 0x080300…080320 e1 c9 c5 d5 cd 9f 4d cd c7 4d f5 d4 22 56 f1 d1 c1 f5 cd 9a 4e f1 c9 c5 d5 cd b7 4d cd 38 56 d1 ┆ M M "V N M 8V ┆ 0x080320…080340 c1 c9 11 00 00 78 b1 cc 55 56 d8 2b 7e 0b 13 e6 7f fe 0a c2 25 56 23 c9 11 00 00 78 b1 cc 55 56 ┆ x UV +ü %V# x UV┆ 0x080340…080360 d8 2b 7e 0b 13 e6 7f 23 fe 0d c8 fe 0a c8 fe 0c c8 2b c3 3b 56 3e 08 ba d8 cd c7 4d d8 23 03 c9 ┆ +ü # + ;V> M # ┆ 0x080360…080380 c5 01 31 71 cd 62 4e 7a 32 3a 71 3e 10 32 39 71 af 32 3e 71 cd 73 58 cd 2e 4d e5 cd 62 4d 32 3b ┆ 1q bNz2:q> 29q 2>q sX .M bM2;┆ 0x080380…0803a0 71 da 85 56 03 3e 20 32 47 71 21 00 00 22 45 71 55 3a 49 02 5f 2a 77 39 3a 3a 71 e6 04 c2 5d 57 ┆q V > 2Gq! "EqU:I _*w9::q ÅW┆ 0x0803a0…0803c0 c3 a9 56 cd ef 54 ca 42 57 3a 48 71 e5 21 0a 71 b6 e1 c2 02 57 3a 3c 71 b7 ca c0 56 bb da c1 56 ┆ V T BW:Hq ! q W:<q V V┆ 0x0803c0…0803e0 7b 3d b9 da c7 56 79 b7 ca 02 57 eb e3 eb c5 4f 06 00 1a e6 7f fe 20 da e7 56 fe 7f ca e7 56 77 ┆æ= Vy W O V Vw┆ 0x0803e0…080400 13 23 04 0d c2 d2 56 78 c1 eb e3 eb e5 67 7b 94 5f 7a 84 57 79 94 dc 38 00 4f 3a 3c 71 94 32 3c ┆ # Vx gæ _z Wy 8 O:<q 2<┆ 0x080400…080420 (34, 0, 7) 32 32 1e 71 f5 e5 6f 17 9f 67 29 29 01 1a 72 09 44 4d e1 f1 c9 e5 21 1a 72 cd 1b 17 09 cd d0 5b ┆22 q o g)) r DM ! r Æ┆ 0x080420…080440 7d e1 c9 3a 29 02 e6 fe ca 2d 5d 3e fe 21 23 37 86 46 4f 3a 77 38 b7 ca 3b 5d 0d 2a a4 38 7c b5 ┆å :) -Å> !#7 FO:w8 ;Å * 8ø ┆ 0x080440…080460 ca 46 5d 01 fd 00 3a 01 38 87 81 87 21 b8 38 86 87 80 87 4f 21 5c 00 06 0b 23 7e fe 20 ca 61 5d ┆ FÅ : 8 ! 8 O!Ø #ü aÅ┆ 0x080460…080480 0d 05 c2 59 5d 3a 49 02 81 fe 27 fa 77 5d cd 50 28 21 92 36 cd cc 28 cd 26 59 ca 9b 5d af cd 9b ┆ YÅ:I ' wÅ P(! 6 ( &Y Å ┆ 0x080480…0804a0 28 16 45 2a 04 71 23 06 01 cd 84 5e cd bb 28 18 45 2a 06 71 23 cd 84 5e c3 c4 5d af cd 9b 28 1a ┆( E* q# ^ ( E* q# ^ Å ( ┆ 0x0804a0…0804c0 45 3a 95 71 5f 2a 93 71 cd 3c 4e 01 01 00 09 d2 b3 5d 1c cd 4e 5e cd bb 28 1c 45 2a 02 71 1e 00 ┆E: q_* q <N Å N^ ( E* q ┆ 0x0804c0…0804e0 23 cd 4e 5e cd bb 28 1e 45 2a 22 71 23 24 25 f2 da 5d cd 1b 17 3e 2d cd 5d 28 06 02 cd 84 5e 3a ┆# N^ ( E*"q#$% Å >- Å( ^:┆ 0x0804e0…080500 24 71 cd 5d 28 2a a4 38 7c b5 ca 06 5e 3e 2b cd 2a 28 cd c9 28 2a 77 39 eb 2a a8 38 cd 2c 17 65 ┆$q Å(* 8ø ^>+ *( (*w9 * 8 , e┆ 0x080500…080520 2e 00 22 a6 38 c9 3a 23 37 f5 21 77 38 a6 cc 50 28 7e b7 ca 1d 5e 3e 1c cd 9b 28 20 45 3a 4d 71 ┆. " 8 :#7 !w8 P(ü ^> ( E:Mq┆ 0x080520…080540 b7 ca 2b 5e 3e 1c cd 9b 28 24 45 f1 b7 ca 37 5e 3e 25 cd 9b 28 22 45 3a 29 02 fe 02 fa 4d 5e f5 ┆ +^> ($E 7^>% ("E:) M^ ┆ 0x080540…080560 3e 30 cd 9b 28 28 45 f1 f6 30 cd 5d 28 c9 f5 c5 d5 e5 16 00 cd 5a 5e c3 19 1e d5 01 ff ff 11 18 ┆>0 ((E 0 Å( Z^ ┆ 0x080560…080580 fc 03 19 da 61 5e e3 2b 7c e3 b7 f2 61 5e 11 e8 03 19 d1 78 b1 ca 84 5e e5 60 69 11 00 00 cd 5a ┆ a^ +ø a^ x ^ `i Z┆ 0x080580…0805a0 5e e1 06 03 d5 11 5d 28 cd 43 18 d1 c3 68 0b 3a a3 38 b7 c0 3a a1 38 57 1e 00 cd 4a 29 4f 2a 77 ┆^ Å( C h : 8 : 8W J)O*w┆ 0x0805a0…0805c0 39 3a 49 02 3d 47 3a 26 02 b7 c2 ba 5e 3a 2b 02 b7 c8 3a 22 37 e6 bd c3 e9 5e d5 e5 cd ff 5e 7b ┆9:I =G:& ^:+ :"7 ^ ^æ┆ 0x0805c0…0805e0 21 24 37 be 7a d2 ca 5e e6 7f 21 22 37 a6 e1 77 d1 23 1c 0d ca e4 5e 05 c2 ba 5e 36 2b cd aa 2c ┆!$7 z ^ !"7 w # ^ ^6+ ,┆ 0x0805e0…080600 14 c3 9e 5e 3e 20 c3 eb 5e 77 23 05 c2 e9 5e 36 20 cd aa 2c 14 7a 32 a2 38 3e ff 32 a3 38 c9 7b ┆ ^> ^w# ^6 , z2 8> 2 8 æ┆ 0x080600…080620 (34, 0, 8) 12 65 d5 21 00 00 22 22 71 1e ff cd 6d 63 d1 7a b3 c8 3a 23 37 b7 c2 45 65 cd 54 4d e5 2a 22 71 ┆ e ! ""q mc z :#7 Ee TM *"q┆ 0x080620…080640 eb cd ae 68 eb e1 d2 88 45 cd 62 4d da 42 65 2b cd 9a 17 ca 42 65 23 e5 21 22 71 cd 94 1d e1 c3 ┆ h E bM Be+ Be# !"q ┆ 0x080640…080660 1c 65 cd 88 45 cd 4b 5c 3e 09 d5 cd e2 67 d1 3a 22 02 b7 3e 09 ca 7b 62 2a 22 71 eb cd ae 68 d2 ┆ e E KØ> g :" > æb*"q h ┆ 0x080660…080680 c4 62 3e 20 cd 6b 46 13 c3 5c 65 2a 22 71 0e 00 eb 13 3a 22 02 b7 c2 83 65 1b 7b f6 07 5f 13 af ┆ b> kF Øe*"q :" e æ _ ┆ 0x080680…0806a0 c3 a5 65 7a b7 ca 99 65 fa 71 65 cd 38 1d 11 00 00 0c 37 c8 0d 0d c3 72 65 7b fe ef d2 8b 65 cd ┆ ez e qe 8 7 reæ e ┆ 0x0806a0…0806c0 c7 65 ca 71 65 e6 06 32 4d 71 cd 21 33 c2 c2 65 2a 28 37 cd ae 68 d2 8b 65 2a 26 37 cd ae 68 da ┆ e qe 2Mq !3 e*(7 h e*&7 h ┆ 0x0806c0…0806e0 71 65 0c 37 c8 b7 c9 e5 7b b7 1f f5 21 09 36 cd 3f 17 f1 7e da db 65 0f 0f 0f 0f e6 0f e1 c9 6f ┆qe 7 æ ! 6 ? ü e o┆ 0x0806e0…080700 26 00 22 20 71 2a 2b 71 c5 d5 7e e6 02 ca f7 65 2b 2b 2b 2b c3 ea 65 7e e6 04 c4 de 60 c2 f7 65 ┆& " q*+q ü e++++ eü ` e┆ 0x080700…080720 22 2b 71 44 4d 23 af 96 cd de 60 86 5f cd 2e 4d cd 18 66 d1 c1 c3 88 45 e5 21 00 00 22 29 71 2a ┆"+qDM# ` _ .M f E ! ")q*┆ 0x080720…080740 20 71 55 7c b5 e1 c2 2c 66 7b b7 c0 cd 62 4d d8 2b 1c 1d ca 59 66 1d cd 9a 17 c8 23 e5 21 29 71 ┆ qUø ,fæ bM + Yf # !)q┆ 0x080740…080760 e6 7f cd 94 1d 23 3a 21 71 be fa 56 66 c2 25 66 2b 7a be d2 25 66 e1 2b c9 cd 88 45 c3 c4 4d 00 ┆ #:!q Vf %f+z %f + E M ┆ 0x080760…080780 00 00 00 00 00 00 00 00 00 00 00 00 00 11 5e 66 cd d4 66 fe 03 dc e1 32 e5 7e ee 90 23 b6 23 b6 ┆ ^f f 2 ü # # ┆ 0x080780…0807a0 23 b6 e1 ca df 66 36 90 cd 39 5c cd ca 66 cd 39 5c c5 d5 e5 cd a2 66 21 91 71 be 77 c4 19 33 c3 ┆# f6 9Ø f 9Ø f! q w 3 ┆ 0x0807a0…0807c0 5b 1a 3a 21 37 b7 c8 01 c6 71 cd 52 4e 7a fe 90 3e 00 c0 01 c2 71 0a fe 90 3e 00 c0 cd 23 4e 3e ┆Æ :!7 q RNz > q > #N>┆ 0x0807c0…0807e0 00 1f c9 36 10 c3 88 66 36 10 e5 23 af 77 23 77 23 77 e1 c9 cd 2c 17 7d 29 29 11 be 71 19 c9 7e ┆ 6 f6 # w#w#w , å)) q ü┆ 0x0807e0…080800 e6 7f 77 c3 8e 66 7e e6 10 c8 7e f6 80 be 77 c4 8e 66 f6 80 c9 00 00 00 00 00 00 00 00 00 00 00 ┆ w fü ü w f ┆ 0x080800…080820 (34, 0, 9) 3e 00 c3 2d 4f 3c 3e 13 c4 a0 26 d5 2a 8b 39 eb 2a 89 39 cd 2c 17 d1 cd 68 17 d2 24 4f cd bd 4c ┆> -O<> & * 9 * 9 , h $O L┆ 0x080820…080840 d2 0b 4f eb 2a 8b 39 19 7a b3 37 3e ff 32 09 71 d1 c1 c3 38 1d 3a 48 02 21 86 45 be da 41 4f 7e ┆ O * 9 z 7> 2 q 8 :H ! E AOü┆ 0x080840…080860 3d d6 01 32 6d 38 3d 32 70 38 f5 c6 05 be da 52 4f 7e 32 71 38 f1 3d 32 6f 38 cd 04 5d 60 69 22 ┆= 2m8=2p8 ROü2q8 =2o8 Å`i"┆ 0x080860…080880 2d 71 11 0c 00 19 22 2f 71 cd a0 48 3e ff 32 ca 38 c3 a5 2f cd 69 50 2a 78 38 11 3a 02 cd 68 17 ┆-q "/q H> 2 8 / iP*x8 : h ┆ 0x080880…0808a0 ca af 4f 3a 7f 38 b7 ca af 4f 21 80 38 7e 36 ff b7 cc 4d 50 cd 1f 31 cd 95 5f da ab 4f 3a 7e 38 ┆ O: 8 O! 8ü6 MP 1 _ O:ü8┆ 0x0808a0…0808c0 2a 7c 38 eb 2a 78 38 37 c3 eb 4f af 32 7f 38 af 32 80 38 cd fd 4f cd 04 27 2a 79 06 11 0a 00 cd ┆*ø8 *x87 O 2 8 2 8 O '*y ┆ 0x0808c0…0808e0 33 30 d2 d3 4f 79 b7 c2 b6 4f 21 f7 61 78 fe 20 da b6 4f e5 2a 78 38 22 7a 38 e1 22 78 38 eb 22 ┆30 Oy O! ax O *x8"z8 "x8 "┆ 0x0808e0…080900 7c 38 eb 79 32 83 38 78 32 82 38 f5 e5 3a 73 38 21 7f 38 b6 c2 fa 4f 32 72 38 c3 fb 2f 01 a2 71 ┆ø8 y2 8x2 8 :s8! 8 O2r8 / q┆ 0x080900…080920 c5 cd 52 4e 01 ca 71 cd 62 4e e1 c3 c8 66 3a 18 37 fe 02 da 44 50 cd 87 27 cd 33 25 c0 3a 99 38 ┆ RN q bN f: 7 DP ' 3% : 8┆ 0x080920…080940 f5 3e 09 cd b0 32 cd a0 32 f1 32 99 38 cd 49 0b c0 cd 08 25 cd 70 32 cd 40 1e cd b3 24 3a 99 38 ┆ > 2 2 2 8 I % p2 @ $: 8┆ 0x080940…080960 32 9b 38 c9 af 32 99 38 af 32 94 38 c9 3a 18 37 b7 c8 cd 40 21 cd ba 24 01 3a c9 cd c4 4d e6 7f ┆2 8 2 8 2 8 : 7 @! $ : M ┆ 0x080960…080980 fe 0d c0 cd 5f 4d cd 88 45 cd 5f 4d cd a0 17 ca 5b 50 cd 79 50 da 66 50 c9 e6 7f fe 1f c8 e5 21 ┆ _M E _M ÆP yP fP !┆ 0x080980…0809a0 95 03 be e1 c8 fe 1e 11 25 02 ca 96 50 fe 20 dc 6e 0a d0 11 25 02 1a b7 c0 37 c9 cd 69 50 21 84 ┆ % P n % 7 iP! ┆ 0x0809a0…0809c0 38 7e 36 00 b7 ca 31 51 cd 57 52 da cc 50 60 69 2b 7e 2b b6 2b b6 2b c2 bc 50 36 00 21 02 00 09 ┆8ü6 1Q WR P`i+ü+ + + P6 ! ┆ 0x0809c0…0809e0 5e 23 56 13 13 7b e6 fc b2 ca fd 50 cd f2 5c 1f 1f e6 3f 47 cd f5 32 80 47 3a 6d 38 1f e6 7f fe ┆^#V æ P Ø ?G 2 G:m8 ┆ 0x0809e0…080a00 0e da e6 50 3e 0e b8 d2 eb 50 78 3d cd 01 5d af 02 cd 40 54 11 00 10 63 6b cd 62 4e 37 f5 3e 7e ┆ P> Px= Å @T ck bN7 >ü┆ 0x080a00…080a20 (34, 0, 10) 71 e1 22 3f 71 eb 22 41 71 eb 2a 45 71 22 43 71 2a 3f 71 e5 21 3c 71 35 e1 ca 24 58 e3 cd 62 4d ┆q "?q "Aq *Eq"Cq*?q !<q5 $X bM┆ 0x080a20…080a40 e3 da 53 57 fe 8d ca b1 57 fe 0d ca ab 57 fe 8a ca 7b 57 e6 7f fe 0c ca 96 57 fe 0a c2 a3 56 c3 ┆ SW W W æW W V ┆ 0x080a40…080a60 8d 57 e3 2b e3 af 32 0a 71 3a ae 03 cd 6d 57 20 c3 db 57 3a ac 03 cd 6d 57 02 c3 db 57 3a ad 03 ┆ W + 2 q: mW W: mW W: ┆ 0x080a60…080a80 cd 66 57 c3 db 57 fe 20 c8 32 47 71 c9 cd 66 57 e3 3a 39 71 b6 32 39 71 23 e3 c9 cd 26 59 ca 8d ┆ fW W 2Gq fW :9q 29q# &Y ┆ 0x080a80…080aa0 57 3a b1 03 cd 66 57 3a b8 03 c3 dd 57 3a b0 03 cd 66 57 c3 db 57 cd 26 59 3e 0c ca a3 56 cd ef ┆W: fW: W: fW W &Y> V ┆ 0x080aa0…080ac0 54 ca 42 57 cd 70 57 20 c3 81 57 3a b3 03 c3 b4 57 3a b2 03 cd 66 57 e3 cd 62 4d da d1 57 fe 0a ┆T BW pW W: W: fW bM W ┆ 0x080ac0…080ae0 ca da 57 fe 8a c2 d2 57 cd 26 59 ca da 57 c3 d9 57 23 3a af 03 cd 6d 57 40 2b e3 3e 20 4f cd b1 ┆ W W &Y W W#: mW@+ > O ┆ 0x080ae0…080b00 55 e5 2a 45 71 7a cd 3f 17 22 45 71 e1 e3 c5 01 35 71 3a 39 71 cd 8f 4e c1 e3 af 77 cc fc 58 c2 ┆U *Eqz ? "Eq 5q:9q N w X ┆ 0x080b00…080b20 05 58 cd 30 59 3a 48 71 47 b1 c3 0f 58 77 23 1d c2 0d 58 3a 47 71 b0 77 cd 49 0b e1 01 35 71 cd ┆ X 0Y:HqG Xw# X:Gq w I 5q ┆ 0x080b20…080b40 52 4e c1 c9 3a 3d 71 3c 32 3e 71 3d b7 ca 64 58 fe 10 f2 64 58 e5 fe 03 f2 43 58 21 91 71 34 35 ┆RN :=q<2>q= dX dX CX! q45┆ 0x080b40…080b60 c2 63 58 21 b8 03 cd 3f 17 7e b7 ca 63 58 3e 3c e3 cd d6 55 e3 7e e1 c4 d6 55 3e 3e c4 d6 55 ca ┆ cX! ? ü cX>< U ü U>> U ┆ 0x080b60…080b80 49 57 e5 e1 e3 d5 e5 cd 9a 4e cd 73 58 e1 d1 e3 c3 13 57 c5 d5 e5 af 32 3d 71 3d 32 3c 71 3a 3a ┆IW N sX W 2=q=2<q::┆ 0x080b80…080ba0 71 e6 02 c2 9e 58 16 01 01 c2 71 0a e6 90 fe 90 cc ce 58 03 03 03 03 14 7a fe 10 fa 8b 58 3a 91 ┆q X q X z X: ┆ 0x080ba0…080bc0 71 b7 ca c3 58 3a 3a 71 e6 04 01 c2 71 cc 23 4e ca c0 58 3f 01 c6 71 d4 23 4e ca c3 58 da c3 58 ┆q X::q q #N X? q #N X X┆ 0x080bc0…080be0 3e 80 fe af 32 48 71 21 3c 71 34 c3 5b 1a c5 d5 e5 cd d7 58 c3 5b 1a 03 0a 95 6f 03 0a 9c c0 03 ┆> 2Hq!<q4 Æ X Æ o ┆ 0x080be0…080c00 0a 9b c0 7d 21 3c 71 be d0 b7 c2 f4 58 7a 21 3e 71 be d8 af 32 3c 71 7a 32 3d 71 c9 3a 96 03 2f ┆ å!<q Xz!>q 2<qz2=q : /┆ 0x080c00…080c20 (34, 0, 11) 16 ad 21 26 37 be da 26 5f c2 0e 5f 16 cc 3c 21 28 37 be da 1b 5f c2 26 5f 16 d2 cd 37 5f c8 16 ┆ !&7 &_ _ <!(7 _ &_ 7_ ┆ 0x080c20…080c40 a1 3d c8 16 a3 c9 16 20 cd 21 33 c4 37 5f c8 cd 1f 5f 7a ee 80 57 c9 7b b7 1f f5 21 09 36 cd 3f ┆ = !3 7_ _z W æ ! 6 ?┆ 0x080c40…080c60 17 f1 7e da 4a 5f 0f 0f 0f 0f e6 0f c9 03 03 03 06 03 09 03 0c 04 00 04 03 04 06 04 09 04 0c 06 ┆ ü J_ ┆ 0x080c60…080c80 00 06 03 06 06 04 0f 07 00 07 03 07 06 07 09 07 0c 07 0f 07 12 07 15 07 18 07 1b 07 1e 07 21 07 ┆ ! ┆ 0x080c80…080ca0 24 07 27 07 2a 07 2d 11 00 11 03 11 06 11 0c 11 0f 11 12 11 15 3a 81 38 c6 07 67 44 4c 54 1e 04 ┆$ ' * - : 8 gDLT ┆ 0x080ca0…080cc0 cd 7b 1c ca be 5f cd 2c 27 cd b1 1b cd c6 17 3f d8 21 ac 5f cd 3f 17 7e 67 d6 07 32 81 38 3a 00 ┆ æ _ ,' ? ! _ ? üg 2 8: ┆ 0x080cc0…080ce0 38 b7 ca cb 5f cd 6e 0b c3 d3 5f 1d c2 a0 5f 15 c2 9e 5f 0d c2 9d 5f 05 c2 9c 5f c9 22 01 05 07 ┆8 _ n _ _ _ _ _ " ┆ 0x080ce0…080d00 09 0c 0f 13 17 1c 21 86 38 35 cd 5f 4d c3 88 45 cd c4 4d cd fc 5f c3 88 45 cd c7 4d cd a0 17 ca ┆ ! 85 _M E M _ E M ┆ 0x080d00…080d20 0d 60 cd 79 50 da f9 5f c9 cd a0 17 c0 cd c7 4d d8 e6 7f fe 0d c8 23 c9 21 88 45 e5 cd c4 4d cd ┆ ` yP _ M # ! E M ┆ 0x080d20…080d40 fc 5f 23 03 cd c7 4d d8 cd a6 17 ca 24 60 e6 7f fe 0a ca 09 60 cd 87 17 c8 c3 46 60 cd c7 4d d8 ┆ _# M $` ` F` M ┆ 0x080d40…080d60 cd b2 17 23 c8 2b cd 90 17 c2 3c 60 23 c9 21 86 38 35 cd 54 4d cd 67 60 cd 89 60 c3 88 45 3a 49 ┆ # + <`# ! 85 TM g` ` E:I┆ 0x080d60…080d80 02 3d fe af c3 df 65 cd 62 4d d8 e6 7f fe 0d ca 8f 61 cd 87 17 c8 2b 03 cd 62 4d d8 cd b2 17 c8 ┆ = e bM a + bM ┆ 0x080d80…080da0 cd 90 17 c2 78 60 2b 03 c9 cd 62 4d d8 cd a6 17 ca 89 60 2b 03 c9 cd a4 60 3a 69 38 21 6f 38 be ┆ x`+ bM `+ `:i8!o8 ┆ 0x080da0…080dc0 f2 0d 61 c9 cd db 60 7e e6 02 c2 fb 60 c3 e8 65 2a 2b 71 11 fc ff 19 7e e6 04 c2 fb 60 cd e8 65 ┆ a `ü ` e*+q ü ` e┆ 0x080dc0…080de0 cd e3 60 f2 cf 60 fc 65 61 cd db 60 22 2b 71 cd 5f 4d fe 8a c0 cd 8b 52 c3 b0 60 2a 2b 71 23 23 ┆ ` ` ea `"+q _M R `*+q##┆ 0x080de0…080e00 23 23 c9 3a 69 38 3d c3 e8 5c cd f5 32 cd 04 5d 60 69 c3 e8 65 2a 2d 71 c3 e8 65 21 00 00 22 7f ┆## :i8= Ø 2 Å`i e*-q e! " ┆ 0x080e00…080e20 (34, 0, 12) 00 00 00 11 f4 66 cd d4 66 cd e6 66 3e 05 cc 81 26 3e ff cd 19 33 fe af c5 d5 e5 57 44 4d cd 50 ┆ f f f> &> 3 WDM P┆ 0x080e20…080e40 67 ca 5b 1a 7a b7 c4 2c 27 cd 88 45 af 32 b3 38 c3 1e 67 21 92 71 c3 11 67 cd 5f 4d d8 cd 2c 27 ┆g Æ z ,' E 2 8 g! q g _M ,'┆ 0x080e40…080e60 cd 19 33 21 00 08 5d cd cd 4e cd 88 45 c3 39 67 d5 cd 49 0b cd 52 4e 7b b4 b5 ca 87 67 7b b7 fa ┆ 3! Å N E 9g I RNæ gæ ┆ 0x080e60…080e80 73 67 c2 6b 67 7c fe 08 da 82 67 1e 00 21 00 08 c3 82 67 3c c2 7d 67 7c fe f9 d2 82 67 1e ff 21 ┆sg kgø g ! g< ågø g !┆ 0x080e80…080ea0 00 f8 cd cd 4e f6 01 d1 c9 cd 11 28 c3 4f 68 cd 38 1d 21 b2 71 cd c8 66 cd 17 56 cd 38 1d cd 88 ┆ N ( Oh 8 ! q f V 8 ┆ 0x080ea0…080ec0 45 cd 4b 5c 21 00 00 22 50 71 c3 38 1d 3a 51 71 b7 fa 62 4d 3a 50 71 fe f3 da 62 4d 37 c9 e6 7f ┆E KØ! "Pq 8 :Qq bM:Pq bM7 ┆ 0x080ec0…080ee0 e5 21 50 71 cd 94 1d e1 c9 3a 96 03 b7 c8 2a 2b 71 7e e6 6e c0 44 4d cd c4 4e 7e cd 5f 25 37 c8 ┆ !Pq : *+qü n DM Nü _%7 ┆ 0x080ee0…080f00 af c9 cd 87 17 c8 ee 09 4f ee 09 2a 22 71 eb 21 94 03 ae b2 b3 c8 cd 21 33 c0 2a 24 37 cd 2c 17 ┆ O *"q ! !3 *$7 , ┆ 0x080f00…080f20 45 2b 24 25 f8 c5 7a b3 c4 c9 67 c1 d8 cd a9 64 2a 24 37 22 22 71 cd 38 1d 3e a0 cd 6b 46 0c 0d ┆E+$% z g d*$7""q 8 > kF ┆ 0x080f20…080f40 37 3e 20 c4 6a 1d d4 6d 1f 05 c2 16 68 c9 4f cd ac 17 c4 9d 17 c8 cd 21 33 c0 21 22 71 79 cd 94 ┆7> j m h O !3 !"qy ┆ 0x080f40…080f60 1d cd a4 68 d0 cd c9 67 d8 3e ff 32 4a 71 fe af 32 4f 71 cd ba 68 da 8f 68 cd 00 69 cd 4b 5c da ┆ h g > 2Jq 2Oq h h i KØ ┆ 0x080f60…080f80 8f 68 2a 5b 71 eb 2a 28 37 cd 2c 17 22 5e 71 2b 7c b7 fa 83 68 cd cc 6b d8 3a 21 02 b7 c4 06 6b ┆ h*Æq *(7 , "^q+ø h k :! k┆ 0x080f80…080fa0 cd 4b 5c cd 37 63 cd 3d 6a cd 4b 5c d2 59 68 cd 38 1d cd 88 45 af 32 96 38 c9 2a 22 71 eb 2a 24 ┆ KØ 7c =j KØ Yh 8 E 2 8 *"q *$┆ 0x080fa0…080fc0 37 c3 ae 68 2a 28 37 eb 2a 22 71 c3 ae 68 7a 94 ca b7 68 37 f8 3f c9 7b 95 c9 cd 8f 67 cd 54 4d ┆7 h*(7 *"q hz h7 ? æ g TM┆ 0x080fc0…080fe0 e5 2a 50 71 cd 9d 68 e1 d0 cd 62 4d d8 cd 87 17 37 c8 fe a0 ca e3 68 2b cd 9c 6a da e9 68 7e e6 ┆ *Pq h bM 7 h+ j hü ┆ 0x080fe0…081000 7f 77 23 cd be 67 c3 c0 68 cd 88 45 2a 50 71 eb 2a 24 37 22 50 71 cd 2c 17 45 cd 9e 6b c3 54 4d ┆ w# g h E*Pq *$7"Pq , E k TM┆ 0x081000…081020 (34, 0, 13) cd ca 5c cd 91 52 cd 39 53 f1 d2 3d 51 2a 2d 71 7e e6 02 ca 1f 51 cd dc 5b cd 86 52 c3 0d 51 cd ┆ Ø R 9S =Q*-qü Q Æ R Q ┆ 0x081020…081040 fe 5c 0a e6 04 ca 3d 51 cd 04 5c cd 2d 53 c3 1f 51 cd 57 52 da cc 50 cd 34 53 cd 86 52 cd 69 52 ┆ Ø =Q Ø -S Q WR P 4S R iR┆ 0x081040…081060 da cc 50 cd af 51 01 a6 71 cd a5 51 7b a4 3c c4 37 63 01 aa 71 cd a5 51 7b b4 c4 37 63 01 ae 71 ┆ P Q q Qæ < 7c q Qæ 7c q┆ 0x081060…081080 cd a5 51 7b b7 f4 c2 63 cd 49 0b c0 af 32 49 71 3a 24 37 f5 21 9a 71 e5 cd c8 66 cd c0 47 c2 87 ┆ Qæ c I 2Iq:$7 ! q f G ┆ 0x081080…0810a0 51 21 92 71 cd 17 67 2a 2f 71 44 4d cd 50 67 c4 88 45 e1 cd 17 67 f1 32 24 37 3a 49 71 b7 c8 cd ┆Q! q g*/qDM Pg E g 2$7:Iq ┆ 0x0810a0…0810c0 34 53 c3 3d 51 cd 52 4e 01 ff ff 09 d8 1d c9 3a 69 38 cd 01 5d 60 69 22 2b 71 cd 52 4e cd 60 56 ┆4S =Q RN :i8 Å`i"+q RN `V┆ 0x0810c0…0810e0 3a 25 71 32 6a 38 2a 26 71 22 20 71 22 22 71 3a 28 71 32 1f 71 cd 49 0b 3a 1e 71 f4 e8 5c f4 a0 ┆:%q2j8*&q" q""q:(q2 q I : q Ø ┆ 0x0810e0…081100 5a 0a e6 20 ca 1a 52 3a 1e 71 3d cd 01 5d 21 82 45 be ca 17 52 0a e6 04 c2 1a 52 0a e6 11 fe 11 ┆Z R: q= Å! E R R ┆ 0x081100…081120 c2 17 52 cd 52 4e cd 60 56 2a 45 71 eb 2a 22 71 19 22 22 71 c3 d5 51 3e 3f fe af 32 24 71 21 85 ┆ R RN `V*Eq *"q ""q Q>? 2$q! ┆ 0x081120…081140 38 7e 36 00 2f b7 cc 49 0b c2 35 52 cd 62 21 cd ad 20 cd 4f 21 3a 77 38 3d f8 ca 44 52 cd 50 52 ┆8ü6 / I 5R b! O!:w8= DR PR┆ 0x081140…081160 da 4b 52 37 d4 50 52 d8 cd 2b 29 21 77 38 35 c9 cd 9a 68 d4 a4 68 c9 cd 56 54 d8 cd 22 54 37 f8 ┆ KR7 PR +)!w85 h h VT "T7 ┆ 0x081160…081180 c8 b7 c9 cd c0 5a cd 86 52 cd 57 52 d8 3a 1e 71 cd e8 5c fa 63 52 21 6f 38 96 b7 f8 c8 cd b1 5a ┆ Z R WR : q Ø cR!o8 Z┆ 0x081180…0811a0 cd 2d 53 c3 69 52 3e 01 c3 8e 52 3a 6d 38 cd 01 5d d5 e5 af 32 fe 71 3a 1e 71 57 21 85 45 be fa ┆ -S iR> R:m8 Å 2 q: qW! E ┆ 0x0811a0…0811c0 e2 52 21 fc ff 09 34 35 ca b1 52 cd 4c 54 c3 9b 52 3d 36 00 2b 2b 2b 2b e5 21 85 45 be e1 f2 b1 ┆ R! 45 R LT R=6 ++++ ! E ┆ 0x0811c0…0811e0 52 d5 cd e5 52 d1 21 fc ff 09 7e b7 ca c1 52 cd 4c 54 21 85 45 be fa e2 52 ba f2 c6 52 fe ff f2 ┆R R ! ü R LT! E R R ┆ 0x0811e0…081200 c6 52 e1 d1 c9 cd 52 4e cd 02 56 da 22 53 16 10 cd 60 56 cd 23 4e da 15 53 f5 c5 cd 80 5c cd f8 ┆ R RN V "S `V #N S Ø ┆ 0x081200…081220 (34, 0, 14) b7 c0 3a 3a 71 e6 46 c0 3a 3b 71 cd 5f 25 c0 c5 e5 01 31 71 cd 9f 4d cd c7 4d e1 c1 3f d0 e6 7f ┆ ::q F :;q _% 1q M M ? ┆ 0x081220…081240 fe 0c c8 fe 0a c9 3a 27 02 e5 21 28 02 a6 e1 c9 3a 27 02 b7 c8 c5 d5 e5 21 00 00 44 39 22 4b 71 ┆ :' !( :' ! D9"Kq┆ 0x081240…081260 4a 2a 77 39 23 7e 2b cd 5f 25 ca 5d 59 eb 21 cd 59 cd 68 25 ca 6d 59 fa 6d 59 d4 64 59 2a 4b 71 ┆J*w9#ü+ _% ÅY ! Y h% mY mY dY*Kq┆ 0x081260…081280 f9 c3 5b 1a e9 c9 cd b2 25 da 6d 59 c8 01 7e 08 2a 4b 71 f9 e1 d1 3e 3f cd a5 59 cd 66 57 cd 83 ┆ Æ % mY ü *Kq >? Y fW ┆ 0x081280…0812a0 59 c1 c9 e5 60 69 d5 cd d6 1a d1 7b 3d ca ae 59 7e b7 ca ae 59 23 cd a5 59 e3 77 23 e3 cd 9c 1b ┆Y `i æ= Yü Y# Y w# ┆ 0x0812a0…0812c0 14 1d c3 8b 59 e5 21 48 71 ae 21 21 37 ae e1 c9 3a b4 03 c3 66 57 cd 66 59 3a 27 02 b7 c8 3a 28 ┆ Y !Hq !!7 : fW fY:' :(┆ 0x0812c0…0812e0 02 b7 37 c4 52 5a d8 01 31 3a cd 70 59 4c 48 b6 59 50 4c b6 59 4d 54 b6 59 4d 42 b6 59 48 4d 66 ┆ 7 RZ 1: pYLH YPL YMT YMB YHMf┆ 0x0812e0…081300 59 46 4d 66 59 50 43 66 59 50 4f 66 59 53 52 66 59 55 4a 66 59 42 50 66 59 43 57 66 59 50 41 65 ┆YFMfYPCfYPOfYSRfYUJfYBPfYCWfYPAe┆ 0x081300…081320 59 43 50 66 59 50 4e 65 59 4f 50 65 59 48 45 65 59 46 4f 65 59 49 47 65 59 50 46 b0 59 4f 4a b0 ┆YCPfYPNeYOPeYHEeYFOeYIGeYPF YOJ ┆ 0x081320…081340 59 49 4a b0 59 4c 4d b0 59 4c 53 b0 59 52 4d b0 59 43 53 b0 59 44 4d b0 59 53 56 b0 59 41 56 b0 ┆YIJ YLM YLS YRM YCS YDM YSV YAV ┆ 0x081340…081360 59 52 50 b0 59 44 46 b0 59 52 56 b0 59 46 49 b0 59 00 c5 d5 e5 21 5b 1a e5 01 31 71 cd 9f 4d 16 ┆YRP YDF YRV YFI Y !Æ 1q M ┆ 0x081360…081380 08 cd c7 4d d8 1b 14 15 b7 c8 cd 5f 25 ca 61 5a cd c7 4d cd 1c 59 c8 c3 65 5a f5 c5 d5 e5 cd fe ┆ M _% aZ M Y eZ ┆ 0x081380…0813a0 5c cd 49 0b c2 97 5a 0a e6 80 cc 9a 5a cd 40 54 21 6d 38 be fa 81 5a c3 ab 32 cd 52 4e cd 60 56 ┆Ø I Z Z @T!m8 Z 2 RN `V┆ 0x0813a0…0813c0 0a e6 80 c0 0a f6 80 02 e5 2a 1e 71 cd b4 1d e1 c9 cd f5 32 cd 94 5c cd 62 5b cd 04 5c c3 91 5c ┆ * q 2 Ø bÆ Ø Ø┆ 0x0813c0…0813e0 cd dc 5b cd f5 32 cd ff 5a c3 a6 5c cd 15 5d e5 21 6d 38 be e1 f2 0c 5c cd e8 5c fc f5 32 cd 62 ┆ Æ 2 Z Ø Å !m8 Ø Ø 2 b┆ 0x0813e0…081400 5b cd 0c 5c c3 91 5c cd 15 5d cd df 5b e5 21 6d 38 be e1 f0 b7 f2 fc 5a af cd 94 5c c3 ff 5a f5 ┆Æ Ø Ø Å Æ !m8 Z Ø Z ┆ 0x081400…081420 (34, 0, 15) 38 c9 3a 8c 38 2f 21 2b 02 a6 c2 ae 29 cd fe 5c 03 03 03 03 0a e6 02 c2 fb 60 cd e3 60 fc a4 60 ┆8 : 8/!+ ) Ø ` ` `┆ 0x081420…081440 21 86 38 35 cd b1 5a 3a 74 02 21 20 37 b6 c2 37 61 3e 03 cd e8 5c f8 3a 6f 38 cd 01 5d 0a e6 80 ┆! 85 Z:t ! 7 7a> Ø :o8 Å ┆ 0x081440…081460 c0 c3 9a 5a 3a 2b 02 21 8a 38 a6 c2 b5 29 2a 2d 71 2b 2b 2b 2b 7e e6 04 c2 fb 60 3a 69 38 21 6f ┆ Z:+ ! 8 )*-q++++ü `:i8!o┆ 0x081460…081480 38 be f4 b0 60 cd c0 5a cd 79 61 3a 7b 02 21 20 37 b6 c8 cd fe 5c c3 9a 5a 2a 2d 71 7e e6 04 c8 ┆8 ` Z ya:æ ! 7 Ø Z*-qü ┆ 0x081480…0814a0 cd e1 32 cd 04 5c cd 34 53 cd fb 60 c3 79 61 e6 7f fe 0d c0 cd 62 4d d8 cd a0 17 c8 2b 03 c9 21 ┆ 2 Ø 4S ` ya bM + !┆ 0x0814a0…0814c0 23 37 c3 78 17 3a 24 37 f5 3a ab 71 3d c4 37 63 cd 87 63 2a 8b 39 2b 2b cd 88 45 3e 01 32 ab 71 ┆#7 x :$7 : q= 7c c* 9++ E> 2 q┆ 0x0814c0…0814e0 f1 32 24 37 c9 da e6 61 cd 11 28 11 16 00 cd 0e 50 cd 1f 31 2a 1d 37 cd b1 1b 32 7e 38 32 74 38 ┆ 2$7 a ( P 1* 7 2ü82t8┆ 0x0814e0…081500 cd 17 28 cd 4f 21 fe 20 c8 cd d8 17 d2 f1 61 e6 1f fe 1a c8 c3 5d 62 cd fd 61 c3 a9 64 21 4a 71 ┆ ( O! a Åb a d!Jq┆ 0x081500…081520 36 00 32 7e 38 fe 2d c2 21 62 21 96 38 34 35 f5 c4 1f 62 f1 c2 89 67 21 23 02 34 35 ca 21 62 3e ┆6 2ü8 - !b! 845 b g!# 45 !b>┆ 0x081520…081540 1e f5 cd 5d 62 f1 21 22 04 34 35 ca 39 62 be 23 c2 29 62 3a 2d 04 cd 5d 62 cd 3f 1c c8 fe 20 d8 ┆ Åb !" 45 9b # )b:- Åb ? ┆ 0x081540…081560 fe 7e d0 3a 94 38 2f 21 4a 71 b6 21 7f 38 b6 c0 cd fd 4f cd 0d 1c c8 32 82 38 c3 fd 61 cd 28 63 ┆ ü : 8/!Jq ! 8 O 2 8 a (c┆ 0x081560…081580 f5 cd e2 67 f1 47 cd 43 63 78 d4 6a 1d dc a9 64 da 7b 62 21 1f 71 ae cd 6d 1f 78 cd 6b 46 fe 20 ┆ g G Ccx j d æb! q m x kF ┆ 0x081580…0815a0 dc a9 64 21 86 38 35 f5 cd e8 62 f1 f5 cd 2e 68 f1 fe 1e cc a9 64 ca c4 62 af 32 96 38 cd 5f 4d ┆ d! 85 b .h d b 2 8 _M┆ 0x0815a0…0815c0 da c4 62 cd 9a 17 c8 e6 7f fe 20 dc a9 64 cd 43 63 d8 3a 23 37 b7 c2 a9 64 7e e6 7f fe 20 dc a9 ┆ b d Cc :#7 dü ┆ 0x0815c0…0815e0 64 c3 de 45 2a 2b 71 7e 23 23 23 e6 02 ca dd 62 7e b7 f2 dd 62 af 77 2b 77 2b 77 23 23 23 11 f5 ┆d E*+qü### bü b w+w+w### ┆ 0x0815e0…081600 72 cd 68 17 d2 c7 62 c9 fe 20 d8 cd 43 63 d0 21 9e 71 e5 cd c8 66 21 a6 71 cd 17 67 cd c4 4d e6 ┆r h b Cc ! q f! q g M ┆ 0x081600…081620 (34, 1, 1) c5 e5 cd 38 1d 01 b6 71 3e 10 cd 8f 4e 21 52 71 01 08 00 cd 08 17 e1 c1 16 20 cd 5a 69 d8 ca 1a ┆ 8 q> N!Rq Zi ┆ 0x081620…081640 69 3e 0a 32 5a 71 3a 56 71 b7 c0 e5 3a 59 71 b7 ca 39 69 21 03 3a 22 07 38 e1 cd 5a 69 d8 e5 21 ┆i> 2Zq:Vq :Yq 9i! :" 8 Zi !┆ 0x081640…081660 5a 71 35 e1 c2 26 69 2a 57 71 22 5b 71 2a be 71 22 ba 71 2a c0 71 22 bc 71 c9 cd 97 6a d8 cd ae ┆Zq5 &i*Wq"Æq* q" q* q" q j ┆ 0x081660…081680 6a d8 fe 0d c2 6c 69 cd 8f 61 37 c9 e6 7f cd 87 17 37 c8 fe 1f c2 7a 69 3e 1e 2b 77 23 f5 5f cd ┆j li a7 7 zi> +w# _ ┆ 0x081680…0816a0 c1 69 f1 57 e5 2a 50 71 e5 cd be 67 d5 2a 28 37 eb 2a 50 71 fe 1e c2 9a 69 23 cd ae 68 d1 d2 ba ┆ i W *Pq g *(7 *Pq i# h ┆ 0x0816a0…0816c0 69 3a 57 71 b7 c2 ba 69 e1 22 57 71 e1 e5 2b c5 01 be 71 3e 10 cd 8f 4e c1 e5 e1 e1 3a 57 71 b7 ┆i:Wq i "Wq + q> N :Wq ┆ 0x0816c0…0816e0 c9 7b cd 00 6b ca d8 69 7a cd 00 6b 3e 00 ca e3 69 7b cd ac 17 ca dc 69 32 59 71 c9 7a cd ac 17 ┆ æ k iz k> iæ i2Yq z ┆ 0x0816e0…081700 c8 3e 01 c5 e5 47 cd 38 1d 21 52 71 7e 70 23 86 77 7a cd b4 17 78 ca fa 69 af 4f 23 7e 71 23 86 ┆ > G 8 !Rqüp# wz x i O#üq# ┆ 0x081700…081720 77 7a 32 5d 71 2a 50 71 fe 1e c2 0e 6a 23 22 5b 71 21 56 71 34 e1 e5 2b 78 f5 01 ba 71 3e 10 cd ┆wz2Åq*Pq j#"Æq!Vq4 +x q> ┆ 0x081720…081740 8f 4e f1 3d c2 38 6a 3a 09 71 f5 cd 9f 4d cd c7 4d f6 80 77 f1 32 09 71 e1 c1 c3 38 1d 01 ba 71 ┆ N = 8j: q M M w 2 q 8 q┆ 0x081740…081760 c5 cd 9f 4d cd c7 4d 57 fe 1e c2 4f 6a 36 1f c1 cd 2e 4d 1e 32 cd 97 6a d8 1d ca 6e 6a cd ae 6a ┆ M MW Oj6 .M 2 j nj j┆ 0x081760…081780 d8 57 cd ac 17 ca 55 6a cd 87 17 37 c8 2b cd 88 45 3a 29 02 3d 5f cd 38 1d 3e 8d cd 6b 46 3e 0a ┆ W Uj 7 + E:) =_ 8 > kF> ┆ 0x081780…0817a0 cd 6b 46 1d f2 76 6a cd 2c 27 2a 24 37 22 50 71 45 cd 9e 6b c3 54 4d 3a 4f 71 b7 c8 c5 d5 e5 cd ┆ kF vj ,'*$7"PqE k TM:Oq ┆ 0x0817a0…0817c0 9a 4e 01 b2 71 cd 23 4e e1 d1 c1 c0 37 c9 cd 62 4d d8 fe 8d ca be 6a fe a0 ca be 6a b7 c9 2b cd ┆ N q #N 7 bM j j + ┆ 0x0817c0…0817e0 88 45 cd 54 4d cd 62 4d da e2 6a fe a0 ca c5 6a fe 8d cc 4b 5c c2 de 6a cd 8f 61 c3 c5 6a 2b cd ┆ E TM bM j j KØ j a j+ ┆ 0x0817e0…081800 e8 6a cd de 45 c3 5f 4d cd 96 17 c8 e6 7f fe 0c c8 7a e6 7f cd 00 6b c8 cd ac 17 c8 2b 36 20 c9 ┆ j E _M z k +6 ┆ 0x081800…081820 (34, 1, 2) b7 c8 21 55 3c 35 cd 0d 40 7a cd d8 3f d5 11 a8 06 c3 49 3f 7c b7 c0 78 b1 4f 06 00 c9 7a b1 4f ┆ !U<5 @z ? I?ø x O z O┆ 0x081820…081840 16 00 c9 3e ff 32 57 3c fe af 32 58 3c cd 4b 40 3a b4 3c cd 3f 40 3c 21 91 06 be da 2a 40 c9 b7 ┆ > 2W< 2X< K@: < ?@<! *@ ┆ 0x081840…081860 ca 48 40 3a 58 3c b7 f0 33 33 c9 af 32 59 3c cd 64 40 3a b5 3c cd 3f 40 3a 59 3c 3c 21 92 06 be ┆ H@:X< 33 2Y< d@: < ?@:Y<<! ┆ 0x081860…081880 da 4c 40 c9 f6 ff 32 5a 3c cd 7a 40 cd 43 40 3a b6 3c b7 cd 7a 40 3a b7 3c b7 f5 21 5a 3c 34 f1 ┆ L@ 2Z< z@ C@: < z@: < !Z<4 ┆ 0x081880…0818a0 c8 3e ff 3c 32 5b 3c cd 9a 40 3a 5a 3c b7 c0 3a 5b 3c 21 69 3c be da 83 40 c9 01 0e 00 21 5c 3c ┆ > <2Æ< @:Z< :Æ<!i< @ !Ø<┆ 0x0818a0…0818c0 cd 08 17 cd 1e 41 cd 7b 1c c4 49 13 3a e8 3c 21 58 3c b6 f8 21 b4 3c 01 0b 00 c3 08 17 e5 11 6a ┆ A æ I : <!X< ! < j┆ 0x0818c0…0818e0 3c cd c8 40 e1 11 b4 3c 01 0b 00 c3 c2 16 cd b5 3e e6 7f fe 0d c8 fe 0a c8 fe 0c c8 fe 1a c8 fe ┆< @ < > ┆ 0x0818e0…081900 1f c8 c3 f0 40 e6 7f fe 1c c8 fe 15 c8 fe 1d c8 fe 09 c8 fe 1e c9 11 6f 3c 19 1a be 3e 14 cd 16 ┆ @ o< > ┆ 0x081900…081920 41 3e 16 cd 16 41 3e 19 cd 16 41 c8 7e b7 3e 01 c2 15 41 3e 0e b7 c4 69 41 23 13 1a be c9 3a 80 ┆A> A> A ü > A> iA# : ┆ 0x081920…081940 3c b7 c4 45 3f af 32 85 3c 21 20 00 cd f6 40 21 8a 3c cd bd 40 2a ae 3c 1e 00 cd ce 40 ca 59 41 ┆< E? 2 <! @! < @* < @ YA┆ 0x081940…081960 46 23 cd e5 40 c2 4e 41 cd 8c 3e 4f 23 1c 78 cd 69 41 1c 7b fe fe da 3a 41 22 b0 3c 7b 32 b2 3c ┆F# @ NA >O# x iA æ :A" <æ2 <┆ 0x081960…081980 21 6a 3c 11 9c 3c c3 c8 40 c5 d5 e5 11 5b 1a d5 57 e6 7f 47 fe 20 d2 2b 42 fe 07 ca 2b 42 fe 06 ┆!j< < @ Æ W G +B +B ┆ 0x081980…0819a0 ca 2b 42 fe 15 c8 fe 1d c8 11 73 3c fe 1c c2 94 41 eb 71 c9 11 c9 06 fe 11 ca c8 44 11 ce 06 fe ┆ +B s< A q D ┆ 0x0819a0…0819c0 17 ca c8 44 11 d3 06 fe 05 ca c8 44 11 d8 06 fe 12 ca c8 44 fe 03 c2 bf 41 cd 43 40 c3 69 3f 11 ┆ D D D A C@ i? ┆ 0x0819c0…0819e0 25 42 21 6a 3c 1a b8 ca b0 44 23 13 3c c2 c5 41 78 fe 08 ca 4f 44 06 ff 11 b5 06 fe 01 ca ea 41 ┆%B!j< D# < Ax OD A┆ 0x0819e0…081a00 06 00 11 ba 06 fe 0e c2 f1 41 78 32 72 3c c3 c8 44 21 71 3c 11 dd 06 01 e2 06 fe 19 ca ba 44 01 ┆ Ax2r< D!q< D ┆ 0x081a00…081a20 (34, 1, 3) 5b 1a d5 32 bf 3c 57 e6 7f 47 fe 20 d2 c4 41 fe 07 ca c4 41 fe 06 ca c4 41 14 15 f2 21 41 32 d2 ┆Æ 2 <W G A A A !A2 ┆ 0x081a20…081a40 3c 11 72 3c fe 15 ca 39 41 11 74 3c fe 1d ca 39 41 11 73 3c fe 1c c2 41 41 eb 71 3e ff 32 c3 3c ┆< r< 9A t< 9A s< AA q> 2 <┆ 0x081a40…081a60 c9 11 c9 06 fe 11 ca 61 41 11 ce 06 fe 17 ca 61 41 11 d3 06 fe 05 ca 61 41 11 d8 06 fe 12 c2 6a ┆ aA aA aA j┆ 0x081a60…081a80 41 cd dc 43 cd 3b 41 c3 50 43 fe 03 c2 7a 41 cd 3b 41 3a 58 3c b7 f8 c3 87 3f 11 be 41 21 6a 3c ┆A C ;A PC zA ;A:X< ? A!j<┆ 0x081a80…081aa0 1a b8 ca 37 43 23 13 3c c2 80 41 78 fe 08 ca 24 43 01 8a 43 11 8d 43 21 70 3c fe 16 ca 3a 43 d5 ┆ 7C# < Ax $C C C!p< :C ┆ 0x081aa0…081ac0 50 59 c1 2b fe 14 ca 3a 43 fe 19 ca 1f 42 fe 0b c4 38 00 3a 58 3c b7 f8 cd dc 43 c3 9b 3f 02 04 ┆PY + :C B 8 :X< C ? ┆ 0x081ac0…081ae0 13 18 10 ff c5 cd 53 13 c1 48 cd ea 41 3a 6a 3c b7 c8 78 fe 20 c8 3a 91 06 3d c8 f5 2a ea 3c eb ┆ S H A:j< x : = * < ┆ 0x081ae0…081b00 cd 61 43 cd ea 41 f1 c3 d9 41 51 3a 58 3c b7 f8 cd 05 42 3a 6b 3c b7 c8 3a 92 06 3d c8 f5 cd 05 ┆ aC A AQ:X< B:k< : = ┆ 0x081b00…081b20 42 f1 c3 fb 41 7a cd 1f 42 7a fe 20 c8 3a 6c 3c b7 3a 0c 07 c4 1f 42 3a 6d 3c b7 3a 0b 07 c8 c5 ┆B Az Bz :l< : B:m< : ┆ 0x081b20…081b40 d5 e5 21 5b 1a e5 fe 20 c8 c3 ba 43 f5 3a 58 3c b7 fa 7c 17 f1 c5 d5 e5 21 5b 1a e5 f5 3a 86 07 ┆ !Æ C :X< ø !Æ : ┆ 0x081b40…081b60 3d f4 aa 42 f1 47 c5 cd 57 42 c1 cd 7a 42 21 00 00 22 36 3d c3 49 13 3a 18 07 b7 ca 49 13 cd 68 ┆= B G WB zB! "6= I : I h┆ 0x081b60…081b80 42 d0 cd a0 42 c3 57 42 3a 17 07 b7 ca 1a 07 3d ca 28 07 3d ca 4c 07 c3 58 07 3a 17 07 b7 4f 78 ┆B B WB: = ( = L X : Ox┆ 0x081b80…081ba0 ca 1d 07 0d ca 33 07 0d ca 4f 07 c3 5b 07 3a 17 07 b7 fa 25 07 3d ca 37 07 3d ca 52 07 c3 64 07 ┆ 3 O Æ : % = 7 = R d ┆ 0x081ba0…081bc0 e5 2a 36 3d 23 cd 51 42 e1 c9 3a 86 07 3d ca d5 42 cd 8e 42 da ca 42 21 ec 3c e6 7f fe 11 c2 c3 ┆ *6=# QB : = B B B! < ┆ 0x081bc0…081be0 42 36 00 fe 13 c2 ca 42 36 80 3a ec 3c b7 f0 cd a0 42 c3 aa 42 cd f8 42 21 ed 3c 34 3a 87 07 3d ┆B6 B6 : < B B B! <4: =┆ 0x081be0…081c00 be d0 3e 01 32 ed 3c cd a0 42 cd f8 42 7e b7 fa e7 42 35 3e 03 c3 45 42 cd 8e 42 21 ec 3c d8 e6 ┆ > 2 < B Bü B5> EB B! < ┆ 0x081c00…081c20 (34, 1, 4) 09 73 65 74 20 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 20 74 6f 20 38 ┆ set default buffer address to 8┆ 0x081c20…081c40 30 68 0d 0a 09 6c 78 69 09 62 2c 62 75 66 66 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 3b ┆0h lxi b,buff call setdma ;┆ 0x081c40…081c60 0d 0a 3b 09 72 65 73 65 74 20 6d 6f 6e 69 74 6f 72 20 65 6e 74 72 79 20 70 6f 69 6e 74 73 0d 0a ┆ ; reset monitor entry points ┆ 0x081c60…081c80 09 6d 76 69 09 61 2c 6a 6d 70 0d 0a 09 73 74 61 09 30 0d 0a 09 6c 78 69 09 68 2c 77 62 6f 6f 74 ┆ mvi a,jmp sta 0 lxi h,wboot┆ 0x081c80…081ca0 65 0d 0a 09 73 68 6c 64 09 31 09 3b 6a 6d 70 20 77 62 6f 6f 74 20 61 74 20 6c 6f 63 61 74 69 6f ┆e shld 1 ;jmp wboot at locatio┆ 0x081ca0…081cc0 6e 20 30 30 0d 0a 09 73 74 61 09 35 0d 0a 09 6c 78 69 09 68 2c 62 64 6f 73 0d 0a 09 73 68 6c 64 ┆n 00 sta 5 lxi h,bdos shld┆ 0x081cc0…081ce0 09 36 09 3b 6a 6d 70 20 62 64 6f 73 20 61 74 20 6c 6f 63 61 74 69 6f 6e 20 35 0d 0a 09 69 66 09 ┆ 6 ;jmp bdos at location 5 if ┆ 0x081ce0…081d00 6e 6f 74 20 74 65 73 74 0d 0a 09 73 74 61 09 37 2a 38 09 3b 6a 6d 70 20 74 6f 20 6d 6f 6e 38 30 ┆not test sta 7*8 ;jmp to mon80┆ 0x081d00…081d20 20 28 6d 61 79 20 68 61 76 65 20 62 65 65 6e 20 63 68 61 6e 67 65 64 20 62 79 20 64 64 74 29 0d ┆ (may have been changed by ddt) ┆ 0x081d20…081d40 0a 09 6c 78 69 09 68 2c 6d 6f 6e 38 30 0d 0a 09 73 68 6c 64 09 37 2a 38 2b 31 0d 0a 09 65 6e 64 ┆ lxi h,mon80 shld 7*8+1 end┆ 0x081d40…081d60 69 66 0d 0a 3b 09 6c 65 61 76 65 20 69 6f 62 79 74 65 20 73 65 74 0d 0a 3b 09 70 72 65 76 69 6f ┆if ; leave iobyte set ; previo┆ 0x081d60…081d80 75 73 6c 79 20 73 65 6c 65 63 74 65 64 20 64 69 73 6b 20 77 61 73 20 62 2c 20 73 65 6e 64 20 70 ┆usly selected disk was b, send p┆ 0x081d80…081da0 61 72 61 6d 65 74 65 72 20 74 6f 20 63 70 6d 0d 0a 09 6c 64 61 09 63 64 69 73 6b 09 3b 6c 61 73 ┆arameter to cpm lda cdisk ;las┆ 0x081da0…081dc0 74 20 6c 6f 67 67 65 64 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b ┆t logged disk number mov c,a ;┆ 0x081dc0…081de0 73 65 6e 64 20 74 6f 20 63 63 70 20 74 6f 20 6c 6f 67 20 69 74 20 69 6e 0d 0a 09 65 69 0d 0a 09 ┆send to ccp to log it in ei ┆ 0x081de0…081e00 6a 6d 70 09 63 70 6d 62 0d 0a 3b 0d 0a 3b 09 65 72 72 6f 72 20 63 6f 6e 64 69 74 69 6f 6e 20 6f ┆jmp cpmb ; ; error condition o┆ 0x081e00…081e20 (34, 1, 5) fe 2d c8 fe 1e c9 3a 53 71 b7 c8 47 3a 5e 71 21 68 71 36 ff 34 90 d2 14 6b 80 21 55 71 96 d2 24 ┆ - :Sq G:^q!hq6 4 k !Uq $┆ 0x081e20…081e40 6b 86 77 af 4f b7 1f d2 34 6b 21 60 71 34 ca 34 6b 3c 35 35 32 69 71 78 21 55 71 96 91 32 6a 71 ┆k w O 4k!`q4 4k<552iqx!Uq 2jq┆ 0x081e40…081e60 01 b6 71 cd 2e 4d cd 38 1d cd 62 4d da 8c 6b b7 f2 49 6b e5 cd 38 1d 21 53 71 35 ca 8b 6b cd b2 ┆ q .M 8 bM k Ik 8 !Sq5 k ┆ 0x081e60…081e80 17 3a 68 71 c2 6e 6b 21 55 71 35 f2 7d 6b 21 69 71 35 f2 7d 6b 21 6a 71 35 fa 7d 6b 3d 3c e1 ca ┆ :hq nk!Uq5 åk!iq5 åk!jq5 åk=< ┆ 0x081e80…081ea0 49 6b cd 8f 6b cd 54 4d c3 49 6b e1 3a 5e 71 cd 88 45 21 5e 71 be da 9a 6b 7e 47 7e 90 77 cd 38 ┆Ik k TM Ik :^q E!^q küGü w 8┆ 0x081ea0…081ec0 1d 78 b7 c8 fe 10 da ab 6b 3e 10 4f 78 91 47 c5 06 00 11 bc 6b cd b3 49 c1 c3 9e 6b a0 a0 a0 a0 ┆ x k> Ox G k I k ┆ 0x081ec0…081ee0 a0 a0 a0 a0 a0 a0 a0 a0 a0 a0 a0 a0 3a 24 02 2f 21 4f 71 b6 c0 3a 53 71 1f b7 1f 21 99 03 86 21 ┆ :$ /!Oq :Sq ! !┆ 0x081ee0…081f00 5e 71 be d0 cd 5c 33 11 09 9b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆^q Ø3 ┆ 0x081f00…081f20 9a 10 01 14 00 00 00 00 e9 6e 00 00 00 c3 16 6c 00 00 c9 c3 e5 6d cd 7c 6e 21 21 09 cd 68 17 d2 ┆ n l m øn!! h ┆ 0x081f20…081f40 38 6c 3a ca 38 b7 ca 31 6c cd 82 33 01 03 d2 16 6c 21 ef 39 22 07 38 c9 21 85 39 cd 51 6e 2a 81 ┆8l: 8 1l 3 l! 9" 8 ! 9 Qn* ┆ 0x081f40…081f60 39 22 9b 3d 22 97 3d 22 95 3d 11 00 04 19 22 99 3d 22 a3 3d 22 ab 3d 22 a7 3d 22 a5 3d 36 ff 23 ┆9" =" =" = " =" =" =" =" =6 #┆ 0x081f60…081f80 22 9f 3d 22 9d 3d 01 fe 01 cd 08 17 36 ff 23 22 a1 3d 22 a9 3d 22 91 3d 11 c8 00 19 22 93 3d 19 ┆" =" = 6 #" =" =" = " = ┆ 0x081f80…081fa0 11 be 00 19 22 f9 3c 11 08 00 19 11 96 0b 73 23 72 11 bf 00 19 22 51 3c 11 08 00 19 11 0e 3e 73 ┆ " < s#r "Q< >s┆ 0x081fa0…081fc0 23 72 23 3a ff 37 b7 ca c6 6c e5 11 86 12 19 eb 2a 85 39 01 00 ff 09 cd 68 17 da c5 6c 21 bb 3a ┆#r#: 7 l * 9 h l! :┆ 0x081fc0…081fe0 22 07 38 d1 c9 e5 22 83 39 cd 0d 33 3e ff 32 44 3d 3a 8b 36 b7 c2 13 6d f5 3a 17 07 fe 03 3a 90 ┆" 8 " 9 3> 2D=: 6 m : : ┆ 0x081fe0…082000 06 c2 e6 6c 3e 01 32 e8 3c 3d f5 2f ca f0 6c af 32 e6 3c 32 e7 3c f1 3e 01 ca 0f 6d 3a bf 06 b7 ┆ l> 2 <= / l 2 <2 < > m: ┆ 0x082000…082020 (34, 1, 6) c4 06 11 bf 06 21 6f 3c fe 14 ca c0 44 d5 50 59 c1 21 70 3c fe 16 ca c0 44 fe 0b c2 24 42 cd 43 ┆ !o< D PY !p< D $B C┆ 0x082020…082040 40 c3 7a 3f ff 02 04 13 18 10 ff c5 3a e8 3c 3c cc 89 44 c1 3a 67 3c 21 5b 3c be ca 41 42 f0 06 ┆@ z? : << D :g<!Æ< AB ┆ 0x082040…082060 20 3a 6f 3c e6 01 4f 3a 70 3c e6 04 b1 ca 55 42 fe 05 c2 57 42 3e 02 21 57 3c a6 c2 60 42 06 20 ┆ :o< O:p< UB WB> !W< `B ┆ 0x082060…082080 48 3a 58 3c b7 f8 cc 94 42 3a e8 3c b7 3a 6a 3c fa 89 42 b7 c8 78 fe 20 c8 3a 91 06 3d c8 f5 cd ┆H:X< B: < :j< B x : = ┆ 0x082080…0820a0 43 44 cd 94 42 f1 c3 7c 42 b7 c2 8f 42 0e 20 3a 58 3c 3d f8 51 3a 59 3c b7 cc c3 42 3a e8 3c b7 ┆CD B øB B :X<= Q:Y< B: < ┆ 0x0820a0…0820c0 3a 6b 3c fa b8 42 b7 c8 3a 92 06 3d c8 f5 cd 43 44 cd c3 42 f1 c3 ab 42 b7 c2 be 42 16 20 3a 59 ┆:k< B : = CD B B B :Y┆ 0x0820c0…0820e0 3c 3d f8 c5 3a 5a 3c b7 7a cc 07 43 06 01 3a 0c 07 4f 3a 6c 3c cd e6 42 06 02 3a 0b 07 4f 3a 6d ┆<= :Z< z C : O:l< B : O:m┆ 0x0820e0…082100 3c cd e6 42 c1 c9 b7 ca f0 42 7a fe 20 c2 f2 42 0e 20 3a e8 3c c2 fa 42 b7 f0 b7 f2 03 43 3a 5a ┆< B Bz B : < B C:Z┆ 0x082100…082120 3c b8 c0 cd 3e 44 79 c5 d5 e5 21 5b 1a e5 fe 20 ca 25 43 d2 2b 43 06 20 fe 06 ca 2a 43 06 7f fe ┆< >Dy !Æ %C +C *C ┆ 0x082120…082140 07 ca 2a 43 ff 21 85 3c 34 c9 78 21 80 3c 34 f5 3a 58 3c b7 fa 7c 17 cd b3 43 f1 c5 d5 e5 21 5b ┆ *C ! <4 x! <4 :X< ø C !Æ┆ 0x082140…082160 1a e5 f5 3a 86 07 3d f4 c4 43 f1 47 c5 cd 5d 43 c1 cd 80 43 21 00 00 22 36 3d c3 49 13 3a 18 07 ┆ : = C G ÅC C! "6= I : ┆ 0x082160…082180 b7 ca 49 13 cd 6e 43 d0 cd a9 43 c3 5d 43 3a 17 07 b7 ca 1a 07 3d ca 28 07 3d ca 4c 07 c3 58 07 ┆ I nC C ÅC: = ( = L X ┆ 0x082180…0821a0 3a 17 07 b7 4f 78 ca 1d 07 0d ca 33 07 0d ca 4f 07 c3 5b 07 c3 5b 07 3a 17 07 b7 fa 25 07 3d ca ┆: Ox 3 O Æ Æ : % = ┆ 0x0821a0…0821c0 37 07 3d ca 52 07 c3 64 07 e5 2a 36 3d 23 cd 57 43 e1 c9 3a 85 3c b7 c8 3d 32 85 3c 3e 20 cd 3b ┆7 = R d *6=# WC : < =2 <> ;┆ 0x0821c0…0821e0 43 c3 b3 43 3a 86 07 3d ca ef 43 cd 97 43 da e4 43 21 ec 3c e6 7f fe 11 c2 dd 43 36 00 fe 13 c2 ┆C C: = C C C! < C6 ┆ 0x0821e0…082200 e4 43 36 80 3a ec 3c b7 f0 cd a9 43 c3 c4 43 cd 12 44 21 ed 3c 34 3a 87 07 3d be d0 3e 01 32 ed ┆ C6 : < C C D! <4: = > 2 ┆ 0x082200…082220 (34, 1, 7) 7f fe 06 c0 7e b7 f0 34 c9 3a 86 07 3d c0 c5 d5 e5 3a ed 3c c6 11 3f d2 1e 43 21 87 07 be d4 e2 ┆ ü 4 : = : < ? C! ┆ 0x082220…082240 42 c3 5b 1a 2a 72 3c 26 00 eb cd 25 17 c3 61 43 7e b7 ca 37 43 50 59 c3 78 17 cd 30 43 2a 74 3c ┆B Æ *r<& % aCü 7CPY x 0C*t<┆ 0x082240…082260 26 00 eb e9 21 71 3c 11 dd 06 01 e2 06 cd 30 43 cd 09 43 1a 3c 3d c8 f5 13 1a cd 2c 42 f1 c3 55 ┆& !q< 0C C <= ,B U┆ 0x082260…082280 43 3a c2 3c b7 ca 6b 43 cd 25 17 e5 2a 7a 3c 19 22 7a 3c 2a 81 3c 19 22 81 3c e1 c9 21 00 00 eb ┆C: < kC % *z< "z<* < " < ! ┆ 0x082280…0822a0 2a 7a 3c cd 2c 17 eb c3 68 43 cd 25 17 e5 2a 83 3c 19 22 83 3c e1 c9 3a 73 3c 5f 16 00 c3 8d 43 ┆*z< , hC % * < " < :s<_ C┆ 0x0822a0…0822c0 cd 0d 07 3e ff 32 86 3c 32 87 3c 11 e7 06 c3 50 43 cd dc 43 11 f8 06 c3 50 43 f5 cd dc 43 f1 fe ┆ > 2 <2 < PC C PC C ┆ 0x0822c0…0822e0 19 ca 44 43 fe 0c ca 2c 42 fe 06 ca d8 43 fe 07 ca d8 43 fe 20 dc 38 00 32 89 3c c9 c5 d5 e5 21 ┆ DC ,B C C 8 2 < !┆ 0x0822e0…082300 5b 1a e5 3a 7b 3c b7 fc 7c 43 cd 2c 44 21 89 3c 7e 36 00 b7 ca 01 44 f5 0e 00 cd 9c 44 f1 cd 82 ┆Æ :æ< øC ,D! <ü6 D D ┆ 0x082300…082320 44 af 2a 97 07 eb 2a 83 3c cd b5 44 c8 22 83 3c 21 87 3c 79 be 77 11 90 07 3a 95 07 c4 a9 44 11 ┆D * * < D " <! <y w : D ┆ 0x082320…082340 b7 07 21 bc 07 78 cd 68 44 c3 01 44 2a a1 07 eb 2a 81 3c cd b2 44 c8 22 81 3c 21 86 3c 7e 87 da ┆ ! x hD D* * < D " <! <ü ┆ 0x082340…082360 4c 44 b9 c2 4c 44 4e c5 cd 50 44 c1 21 2c 44 e5 cd 9c 44 21 89 3c 7e 36 00 b7 c2 70 44 21 88 3c ┆LD LDN PD !,D D! <ü6 pD! <┆ 0x082360…082380 78 ae 11 ad 07 21 b2 07 b7 f2 6d 44 eb c3 50 43 f5 21 88 3c 78 ae 70 78 11 a3 07 21 a8 07 fc 68 ┆x ! mD PC ! <x px ! h┆ 0x082380…0823a0 44 f1 d5 11 c1 07 fe 06 ca 97 44 11 c5 07 fe 07 ca 97 44 d1 c3 2c 42 cd 50 43 d1 c9 11 99 07 21 ┆D D D ,B PC !┆ 0x0823a0…0823c0 86 3c 79 be c8 77 3a 9f 07 81 4f cd 50 43 79 c3 2c 42 3a 9e 07 4f 7c b5 c8 cd 12 17 eb cd 68 17 ┆ <y w: O PCy ,B: Oø h ┆ 0x0823c0…0823e0 d2 c9 44 21 00 00 c3 ce 44 eb 1b cd 2c 17 79 4b b7 ca e0 44 79 b7 1f 4f d2 e0 44 1b 23 7a b3 c8 ┆ D! D , yK Dy O D #z ┆ 0x0823e0…082400 78 b7 fc 1b 17 f6 01 c9 9b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆x ┆ 0x082400…082420 (34, 1, 8) 63 63 75 72 72 65 64 2c 20 70 72 69 6e 74 20 6d 65 73 73 61 67 65 20 61 6e 64 20 72 65 74 72 79 ┆ccurred, print message and retry┆ 0x082420…082440 0d 0a 62 6f 6f 74 65 72 72 3a 0d 0a 09 70 6f 70 09 62 09 3b 72 65 63 61 6c 6c 20 63 6f 75 6e 74 ┆ booterr: pop b ;recall count┆ 0x082440…082460 73 0d 0a 09 64 63 72 09 63 0d 0a 09 6a 7a 09 62 6f 6f 74 65 72 30 0d 0a 3b 09 74 72 79 20 61 67 ┆s dcr c jz booter0 ; try ag┆ 0x082460…082480 61 69 6e 0d 0a 09 70 75 73 68 09 62 0d 0a 09 6a 6d 70 09 77 62 6f 6f 74 30 0d 0a 3b 0d 0a 62 6f ┆ain push b jmp wboot0 ; bo┆ 0x082480…0824a0 6f 74 65 72 30 3a 0d 0a 3b 09 6f 74 68 65 72 77 69 73 65 20 74 6f 6f 20 6d 61 6e 79 20 72 65 74 ┆oter0: ; otherwise too many ret┆ 0x0824a0…0824c0 72 69 65 73 0d 0a 09 6c 78 69 09 68 2c 62 6f 6f 74 6d 73 67 0d 0a 09 63 61 6c 6c 09 70 72 6d 73 ┆ries lxi h,bootmsg call prms┆ 0x0824c0…0824e0 67 0d 0a 09 6a 6d 70 09 72 6d 6f 6e 38 30 09 3b 6d 64 73 20 68 61 72 64 77 61 72 65 20 6d 6f 6e ┆g jmp rmon80 ;mds hardware mon┆ 0x0824e0…082500 69 74 6f 72 0d 0a 3b 0d 0a 62 6f 6f 74 6d 73 67 3a 0d 0a 09 64 62 09 27 3f 62 6f 6f 74 27 2c 30 ┆itor ; bootmsg: db '?boot',0┆ 0x082500…082520 0d 0a 3b 0d 0a 3b 0d 0a 63 6f 6e 73 74 3a 09 3b 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 20 74 ┆ ; ; const: ;console status t┆ 0x082520…082540 6f 20 72 65 67 2d 61 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 ┆o reg-a ; (exactly the same as ┆ 0x082540…082560 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 63 73 74 73 0d 0a 3b 0d 0a 63 6f 6e 69 6e 3a 09 ┆mds call) jmp csts ; conin: ┆ 0x082560…082580 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 72 65 67 2d 61 0d 0a 09 63 61 ┆;console character to reg-a ca┆ 0x082580…0825a0 6c 6c 09 63 69 0d 0a 09 61 6e 69 09 37 66 68 09 3b 72 65 6d 6f 76 65 20 70 61 72 69 74 79 20 62 ┆ll ci ani 7fh ;remove parity b┆ 0x0825a0…0825c0 69 74 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 63 6f 6e 6f 75 74 3a 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 ┆it ret ; conout: ;console ch┆ 0x0825c0…0825e0 61 72 61 63 74 65 72 20 66 72 6f 6d 20 63 20 74 6f 20 63 6f 6e 73 6f 6c 65 20 6f 75 74 0d 0a 09 ┆aracter from c to console out ┆ 0x0825e0…082600 6a 6d 70 09 63 6f 0d 0a 3b 0d 0a 6c 69 73 74 3a 09 3b 6c 69 73 74 20 64 65 76 69 63 65 20 6f 75 ┆jmp co ; list: ;list device ou┆ 0x082600…082620 (34, 1, 9) 3e 01 c2 0f 6d 3a a8 06 b7 3e 00 c2 0f 6d 2f 32 e9 3c f1 2f 21 ca 38 b6 cc 71 18 cd e5 6d 3a 8b ┆> m: > m/2 < /! 8 q m: ┆ 0x082620…082640 36 b7 c2 2e 6d 2f 32 02 38 3e 1f cd 01 13 3a 8b 36 b7 21 0c 00 c2 57 6d 3a e8 3c 21 09 00 3c ca ┆6 .m/2 8> : 6 ! Wm: <! < ┆ 0x082640…082660 57 6d 21 09 00 3d ca 57 6d 21 0b 00 3a 17 07 fe 03 ca 57 6d 21 0a 00 cd e2 6d 3a ff 37 b7 ca d1 ┆Wm! = Wm! : Wm! m: 7 ┆ 0x082660…082680 6d 21 0d 09 cd e2 6d e1 e3 22 31 61 01 00 01 09 22 1d 61 01 05 0a 09 22 23 61 e1 22 25 61 22 27 ┆m! m "1a " a "#a "%a"'┆ 0x082680…0826a0 61 2b 36 00 21 77 5f 01 9d 01 cd 08 17 cd b6 54 21 c7 54 22 16 69 21 10 69 22 89 5f 2a 35 61 22 ┆a+6 !w_ T! T" i! i" _*5a"┆ 0x0826a0…0826c0 37 61 af 2a 17 61 22 19 61 77 2a 29 61 22 db 5f 22 d9 5f 2a 15 61 77 2a 3c 61 77 2a 2b 61 22 2f ┆7a * a" aw*)a" _" _* aw*<aw*+a"/┆ 0x0826c0…0826e0 61 77 2b 77 2f 32 77 5f 32 8b 5f 3a 86 03 32 9b 5f 3e ff 32 00 38 3a ff 37 b7 ca 6e 0b cd 5c 33 ┆aw+w/2w_2 _: 2 _> 2 8: 7 n Ø3┆ 0x0826e0…082700 0d 0c cd 70 33 cd 26 6e cd 9f 0a 2a 91 3d cd 21 10 77 23 36 00 2a 93 3d 77 23 36 00 32 72 3c 3a ┆ p3 &n * = ! w#6 * =w#6 2r<:┆ 0x082700…082720 0e 3d 32 73 3c 3a 81 03 32 74 3c 32 2a 3d 2a d4 03 22 53 3c 21 01 00 22 ff 3c 3a d3 03 32 f5 3c ┆ =2s<: 2t<2*=* "S<! " <: 2 <┆ 0x082720…082740 3e ff 32 f4 3c c9 11 0e 3d 21 66 03 01 19 00 cd c2 16 cd 21 10 12 13 f5 23 3a 49 02 d6 04 4f be ┆> 2 < =!f ! #:I O ┆ 0x082740…082760 da 44 6e 4e 0c 2b 79 96 b7 1f 86 3d 12 13 f1 12 c9 c5 d5 e5 eb 21 81 39 23 cd 68 17 2b da 69 6e ┆ DnN +y = ! 9# h + in┆ 0x082760…082780 cd a0 6e cd 93 6e c3 58 6e 21 8f 39 cd 68 17 d2 5b 1a cd be 6e 2b 2b 2b 2b c3 6c 6e c5 e5 11 00 ┆ n n Xn! 9 h Æ n++++ ln ┆ 0x082780…0827a0 00 21 7f 39 cd de 6e eb 09 eb cd 93 6e d2 84 6e e1 c1 c9 d5 23 23 23 23 11 90 39 cd 68 17 d1 c9 ┆ ! 9 n n n #### 9 h ┆ 0x0827a0…0827c0 c5 d5 e5 cd de 6e 2b 2b cd 51 17 e3 73 23 72 2b e3 cd c2 16 e1 e5 23 23 73 23 72 c3 5b 1a c5 d5 ┆ n++ Q s#r+ ##s#r Æ ┆ 0x0827c0…0827e0 e5 e5 2b 2b cd de 6e e1 e5 cd 51 17 eb e3 23 72 2b 73 e3 cd e1 16 e1 2b 72 2b 73 c3 5b 1a d5 e5 ┆ ++ n Q #r+s +r+s Æ ┆ 0x0827e0…082800 cd 51 17 cd 35 17 e1 d1 c9 9b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ Q 5 ┆ 0x082800…082820 (34, 1, 10) 3c cd a9 43 cd 12 44 7e b7 fa 01 44 35 3e 03 c3 4b 43 cd 97 43 21 ec 3c d8 e6 7f fe 06 c0 7e b7 ┆< C Dü D5> KC C! < ü ┆ 0x082820…082840 f0 34 c9 3a 86 07 3d c0 c5 d5 e5 3a ed 3c c6 11 3f d2 38 44 21 87 07 be d4 fc 43 c3 5b 1a 3a e8 ┆ 4 : = : < ? 8D! C Æ : ┆ 0x082840…082860 3c b7 c0 c5 d5 e5 11 af 06 cd c8 44 c3 5b 1a 3a e8 3c b7 ca 43 44 21 66 3c 7e b7 c8 35 4e 2a 67 ┆< D Æ : < CD!f<ü 5N*g┆ 0x082860…082880 3c eb 21 5c 3c 19 1d 2b 23 1c 7b fe 0a d0 32 67 3c 79 be da 68 44 21 69 3c 7b be da 7f 44 77 3a ┆< !Ø< +# æ 2g<y hD!i<æ Dw:┆ 0x082880…0828a0 5b 3c bb d8 21 85 3c 35 c9 2a 67 3c eb 21 5c 3c 19 3a 66 3c 1c 2b 1d ca 9e 44 be d2 95 44 23 3c ┆Æ< ! <5 *g< !Ø< :f< + D D#<┆ 0x0828a0…0828c0 32 66 3c 77 eb 22 67 3c c9 7e b7 ca b0 44 50 59 cd 78 17 01 4a 00 09 36 ff c9 cd a9 44 c3 c8 44 ┆2f<w "g< ü DPY x J 6 D D┆ 0x0828c0…0828e0 cd a9 44 3a e9 3c 3d c0 cd 23 44 1a 3c 3d c8 f5 13 1a cd 2f 43 f1 c3 cd 44 9b 00 00 00 00 00 00 ┆ D: <= #D <= /C D ┆ 0x0828e0…082900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x082900…082920 9a 0a 06 14 00 00 00 00 e8 44 00 00 00 c9 c3 18 3e c3 61 43 c3 17 3e c9 3a 86 07 b7 c4 8e 42 3a ┆ D > aC > : B:┆ 0x082920…082940 9e 07 b7 ca 28 3e 3e 01 3c 32 ea 3c 21 6a 3c 11 9c 3c 01 0b 00 cd c2 16 21 38 3e e5 cd 49 13 af ┆ (>> <2 <!j< < !8> I ┆ 0x082940…082960 32 58 3c cd 9b 3f 2a 9d 3d cd 5b 3e c2 b6 3e 36 00 23 22 9d 3d 21 3c 3e e5 eb e9 cd a2 3e 11 7c ┆2X< ?* = Æ> >6 #" =!<> > ø┆ 0x082960…082980 43 fe 0d c8 11 97 43 fe 0a c8 11 ba 43 fe 0c c8 11 a0 43 fe 1f c8 11 aa 3f fe 1a c8 11 b8 41 fe ┆C C C C ? A ┆ 0x082980…0829a0 0b c8 11 7f 3f fe 09 ca 98 3e 11 83 3f fe 1e ca 98 3e fe 1b c0 11 9a 43 36 00 23 cd a8 3e d6 20 ┆ ? > ? > C6 # > ┆ 0x0829a0…0829c0 bf c9 cd a8 3e e6 7f c9 7e 3c cc 4e 13 7e b7 c0 cd 31 13 c3 ad 3e cd d1 3e cd ba 3f 2a ae 3c 3a ┆ > ü< N ü 1 > > ?* <:┆ 0x0829c0…0829e0 b2 3c 4f 0c 0d c8 7e 3c cc 4e 13 36 00 23 c3 c4 3e 21 00 00 39 11 20 00 42 4b cd 2c 17 f9 eb 21 ┆ <O ü< N 6 # >! 9 BK , !┆ 0x0829e0…082a00 6a 3c d5 e5 c5 cd c2 16 af 32 c2 3c 2f 32 58 3c 21 32 00 cd 44 40 21 9c 3c cd 03 40 21 00 00 22 ┆j< 2 </2X<!2 D@! < @! "┆ 0x082a00…082a20 (34, 1, 11) 9a 0c 01 14 00 00 00 00 8e 3e 00 00 00 c9 c3 1b 3e c3 1a 3e c3 22 3e c3 35 3e c9 af cd 31 13 c3 ┆ > > > "> 5> 1 ┆ 0x082a20…082a40 1b 3e 21 a7 3d cd 17 0c eb d4 4b 3e f1 77 23 22 a7 3d d1 e1 c9 21 a7 3d cd 51 17 cd 2c 17 eb 7a ┆ >! = K> w#" = ! = Q , z┆ 0x082a40…082a60 b3 ca 4b 3e 1b 36 1a 23 c3 3f 3e cd 96 12 21 4f 3c 7e 36 00 b7 fc 8e 12 21 a5 3d cd 17 0c d2 81 ┆ K> 6 # ?> !O<ü6 ! = ┆ 0x082a60…082a80 3e eb 11 6b 3d cd 2c 1a c2 77 3e 21 c1 39 22 07 38 cd 8e 12 c3 4b 3e 11 80 00 19 22 a5 3d c3 4e ┆> k= , w>! 9" 8 K> " = N┆ 0x082a80…082aa0 3e cd 81 0b 2a ab 3d 22 a5 3d 22 a7 3d c9 9b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆> * =" =" = ┆ 0x082aa0…082ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x2…] 0x082b00…082b20 44 af 2a 97 07 eb 2a 83 3c cd b5 44 c8 22 83 3c 21 87 3c 79 be 77 11 90 07 3a 95 07 c4 a9 44 11 ┆D * * < D " <! <y w : D ┆ 0x082b20…082b40 b7 07 21 bc 07 78 cd 68 44 c3 01 44 2a a1 07 eb 2a 81 3c cd b2 44 c8 22 81 3c 21 86 3c 7e 87 da ┆ ! x hD D* * < D " <! <ü ┆ 0x082b40…082b60 4c 44 b9 c2 4c 44 4e c5 cd 50 44 c1 21 2c 44 e5 cd 9c 44 21 89 3c 7e 36 00 b7 c2 70 44 21 88 3c ┆LD LDN PD !,D D! <ü6 pD! <┆ 0x082b60…082b80 78 ae 11 ad 07 21 b2 07 b7 f2 6d 44 eb c3 50 43 f5 21 88 3c 78 ae 70 78 11 a3 07 21 a8 07 fc 68 ┆x ! mD PC ! <x px ! h┆ 0x082b80…082ba0 44 f1 d5 11 c1 07 fe 06 ca 97 44 11 c5 07 fe 07 ca 97 44 d1 c3 2c 42 cd 50 43 d1 c9 11 99 07 21 ┆D D D ,B PC !┆ 0x082ba0…082bc0 86 3c 79 be c8 77 3a 9f 07 81 4f cd 50 43 79 c3 2c 42 3a 9e 07 4f 7c b5 c8 cd 12 17 eb cd 68 17 ┆ <y w: O PCy ,B: Oø h ┆ 0x082bc0…082be0 d2 c9 44 21 00 00 c3 ce 44 eb 1b cd 2c 17 79 4b b7 ca e0 44 79 b7 1f 4f d2 e0 44 1b 23 7a b3 c8 ┆ D! D , yK Dy O D #z ┆ 0x082be0…082c00 78 b7 fc 1b 17 f6 01 c9 9b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆x ┆ 0x082c00…082c20 (34, 1, 12) 74 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 ┆t ; (exactly the same as mds ca┆ 0x082c20…082c40 6c 6c 29 0d 0a 09 6a 6d 70 09 6c 6f 0d 0a 3b 0d 0a 6c 69 73 74 73 74 3a 0d 0a 09 3b 72 65 74 75 ┆ll) jmp lo ; listst: ;retu┆ 0x082c40…082c60 72 6e 20 6c 69 73 74 20 73 74 61 74 75 73 0d 0a 09 78 72 61 09 61 0d 0a 09 72 65 74 09 09 3b 61 ┆rn list status xra a ret ;a┆ 0x082c60…082c80 6c 77 61 79 73 20 6e 6f 74 20 72 65 61 64 79 0d 0a 3b 0d 0a 70 75 6e 63 68 3a 09 3b 70 75 6e 63 ┆lways not ready ; punch: ;punc┆ 0x082c80…082ca0 68 20 64 65 76 69 63 65 20 6f 75 74 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d ┆h device out ; (exactly the sam┆ 0x082ca0…082cc0 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 70 6f 0d 0a 3b 0d 0a 72 65 61 64 ┆e as mds call) jmp po ; read┆ 0x082cc0…082ce0 65 72 3a 09 3b 72 65 61 64 65 72 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 74 6f 20 72 65 67 2d ┆er: ;reader character in to reg-┆ 0x082ce0…082d00 61 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 ┆a ; (exactly the same as mds ca┆ 0x082d00…082d20 6c 6c 29 0d 0a 09 6a 6d 70 09 72 69 0d 0a 3b 0d 0a 68 6f 6d 65 3a 09 3b 6d 6f 76 65 20 74 6f 20 ┆ll) jmp ri ; home: ;move to ┆ 0x082d20…082d40 68 6f 6d 65 20 70 6f 73 69 74 69 6f 6e 0d 0a 3b 09 74 72 65 61 74 20 61 73 20 74 72 61 63 6b 20 ┆home position ; treat as track ┆ 0x082d40…082d60 30 30 20 73 65 65 6b 0d 0a 09 6d 76 69 09 63 2c 30 0d 0a 09 6a 6d 70 09 73 65 74 74 72 6b 0d 0a ┆00 seek mvi c,0 jmp settrk ┆ 0x082d60…082d80 3b 0d 0a 73 65 6c 64 73 6b 3a 09 3b 73 65 6c 65 63 74 20 64 69 73 6b 20 67 69 76 65 6e 20 62 79 ┆; seldsk: ;select disk given by┆ 0x082d80…082da0 20 72 65 67 69 73 74 65 72 20 63 0d 0a 09 6c 78 69 09 68 2c 30 30 30 30 68 09 3b 72 65 74 75 72 ┆ register c lxi h,0000h ;retur┆ 0x082da0…082dc0 6e 20 30 30 30 30 20 69 66 20 65 72 72 6f 72 0d 0a 09 6d 6f 76 09 61 2c 63 0d 0a 09 63 70 69 09 ┆n 0000 if error mov a,c cpi ┆ 0x082dc0…082de0 6e 64 69 73 6b 73 09 3b 74 6f 6f 20 6c 61 72 67 65 3f 0d 0a 09 72 6e 63 09 09 3b 6c 65 61 76 65 ┆ndisks ;too large? rnc ;leave┆ 0x082de0…082e00 20 48 4c 20 3d 20 30 30 30 30 0d 0a 3b 0d 0a 09 61 6e 69 09 31 30 62 09 3b 30 30 20 30 30 20 66 ┆ HL = 0000 ; ani 10b ;00 00 f┆ 0x082e00…082e20 (34, 1, 13) 9a 09 05 14 00 00 00 00 d9 44 00 00 00 c9 c3 12 3e c9 3a 86 07 b7 c4 97 43 21 6a 3c 11 9c 3c cd ┆ D > : C!j< < ┆ 0x082e20…082e40 c8 40 21 22 3e e5 af 32 58 3c cd 49 13 cd 7a 3f 2a 9d 3d cd 53 3e c2 c3 3e 36 00 23 22 9d 3d 21 ┆ @!"> 2X< I z?* = S> >6 #" =!┆ 0x082e40…082e60 26 3e e5 d5 21 55 3c 34 35 c8 35 f5 cd 59 3f f1 c3 44 3e cd 93 3e 11 a8 3e c8 11 45 3f fe 0d c8 ┆&> !U<45 5 Y? D> > > E? ┆ 0x082e60…082e80 11 2f 43 fe 0a c8 11 2f 43 fe 0c c8 11 60 3f fe 1f c8 11 89 3f fe 1a c8 11 21 42 fe 0b c8 11 54 ┆ /C /C `? ? !B T┆ 0x082e80…082ea0 3f fe 09 ca 89 3e fe 1e c0 36 00 23 cd b5 3e d6 20 bf c9 cd af 3e fe 0d c0 e5 23 cd af 3e fe 0a ┆? > 6 # > > # > ┆ 0x082ea0…082ec0 c2 a5 3e c1 c9 e1 7e c9 af 02 21 55 3c 34 c9 cd b5 3e e6 7f c9 7e 3c cc 4e 13 7e b7 c0 cd 31 13 ┆ > ü !U<4 > ü< N ü 1 ┆ 0x082ec0…082ee0 c3 ba 3e 21 55 3c 7e fe 02 f4 58 3f 7e 36 00 32 56 3c cd 14 3f af 32 b3 3c 2a b0 3c cd 93 3e c2 ┆ >!U<ü X?ü6 2V< ? 2 <* < > ┆ 0x082ee0…082f00 f3 3e 23 e5 21 b3 3c 34 34 cd aa 3e 7e e1 fe 02 fa dc 3e 22 9d 3d cd 99 3f 2a ae 3c 3a b2 3c cd ┆ ># ! <44 >ü >" = ?* <: < ┆ 0x082f00…082f20 05 3f 3a b3 3c 4f 0c 0d c8 7e 3c cc 4e 13 36 00 23 c3 07 3f 21 00 00 39 11 20 00 42 4b cd 2c 17 ┆ ?: <O ü< N 6 # ?! 9 BK , ┆ 0x082f20…082f40 f9 eb 21 6a 3c d5 e5 c5 cd c2 16 21 9c 3c 11 8a 3c cd c8 40 2a 9d 3d 22 ae 3c cd 23 40 c1 d1 e1 ┆ !j< ! < < @* =" < #@ ┆ 0x082f40…082f60 cd c2 16 f9 c9 d5 11 a1 06 af 32 85 3c 32 80 3c cd c8 44 d1 c9 7e b7 c8 35 d5 11 96 06 c3 49 3f ┆ 2 <2 < D ü 5 I?┆ 0x082f60…082f80 cd 0d 07 11 e7 06 c3 c8 44 f6 ff cd 31 13 01 00 04 cd 49 13 0b 78 b1 c2 71 3f 21 4f 3c 7e 36 00 ┆ D 1 I x q?!O<ü6 ┆ 0x082f80…082fa0 b7 fa 69 3f 3a 50 3c b7 c8 11 f8 06 cd c8 44 cd 10 07 af 32 02 38 c3 31 13 af 32 58 3c 3a b9 3c ┆ i?:P< D 2 8 1 2X<: <┆ 0x082fa0…082fc0 e6 01 47 0e 02 3a ba 3c e6 04 57 2a 55 3c 3a e9 3c b7 ca e5 3f fa bb 3f 21 00 00 7d fe 02 fc 1d ┆ G : < W*U<: < ? ?! å ┆ 0x082fc0…082fe0 40 cd 14 40 78 cd d8 3f 21 56 3c 79 cd d3 3f 21 55 3c 7a f5 cd 55 3f f1 b7 c8 32 57 3c c5 d5 cd ┆@ @x ?!V<y ?!U<z U? 2W< ┆ 0x082fe0…083000 29 40 d1 c1 c9 7d b7 cc 1d 40 cd 14 40 7c b7 f5 c4 0d 40 78 cd d8 3f f1 c4 0d 40 79 cd d8 3f 7a ┆)@ å @ @ø @x ? @y ?z┆ 0x083000…083020 (34, 1, 14) 76 3c 2a 9d 3d cd 0c 40 ca 4e 3f fe 03 ca 4e 3f fe 06 ca 4e 3f fe 07 ca 4e 3f fe 11 ca 4e 3f fe ┆v<* = @ N? N? N? N? N? ┆ 0x083020…083040 17 ca 4e 3f fe 05 ca 4e 3f fe 12 ca 4e 3f fe 21 d2 4e 3f 46 36 00 23 cd 23 40 c2 47 3f cd a8 3e ┆ N? N? N? ! N?F6 # #@ G? >┆ 0x083040…083060 7e 36 00 23 d6 20 4f 78 cd fc 40 c3 05 3f 22 ae 3c 21 6a 3c 11 8a 3c 01 12 00 cd c2 16 21 c4 3c ┆ü6 # Ox @ ?" <!j< < ! <┆ 0x083060…083080 01 22 00 cd 08 17 af 32 c3 3c 3a 54 3c b7 cc 3b 41 cd b7 3f cd 7b 15 c1 d1 e1 cd c2 16 f9 c9 32 ┆ " 2 <:T< ;A ? æ 2┆ 0x083080…0830a0 53 3c c9 32 54 3c c9 cd dc 43 f6 ff cd 31 13 01 00 04 cd 49 13 0b 78 b1 c2 92 3f 21 4f 3c 7e 36 ┆S< 2T< C 1 I x ?!O<ü6┆ 0x0830a0…0830c0 00 b7 fa 87 3f 3a 50 3c b7 c8 cd b1 43 cd 10 07 af 32 02 38 c3 31 13 3e ff fe af 32 58 3c af 32 ┆ ?:P< C 2 8 1 > 2X< 2┆ 0x0830c0…0830e0 d2 3c 3a c3 3c 21 58 3c b6 c2 f0 3f 2a 7a 3c eb 2a 81 3c cd 2c 17 eb 2a ac 3c 19 cd 18 17 e5 2a ┆ <: <!X< ?*z< * < , * < *┆ 0x0830e0…083100 9a 3c 19 cd 18 17 d1 cd 68 17 d2 f0 3f f6 ff fe af 32 c2 3c f5 cc 5e 40 f1 c4 af 40 cd 7b 1c c4 ┆ < h ? 2 < ^@ @ æ ┆ 0x083100…083120 49 13 c9 11 6a 3c 01 10 00 c3 c2 16 cd a8 3e e6 7f fe 0d c8 fe 0a c8 fe 0c c8 fe 1a c8 fe 1f c8 ┆I j< > ┆ 0x083120…083140 c3 2e 40 e6 7f fe 1c c8 fe 15 c8 fe 1d c8 fe 1b c8 fe 09 c8 fe 1e c9 2b 7e 3c c2 42 40 2a a1 3d ┆ .@ +ü< B@* =┆ 0x083140…083160 2b 2b 7e c9 11 6f 3c 19 1a be 3e 14 cd 56 40 3e 16 cd 56 40 3e 19 c4 fc 40 23 13 1a be c9 2a 9a ┆++ü o< > V@> V@> @# * ┆ 0x083160…083180 3c cd 7f 43 21 20 00 cd 44 40 21 8a 3c cd 03 40 2a ae 3c 1e 00 cd 0c 40 ca 94 40 46 23 cd 23 40 ┆< C! D@! < @* < @ @F# #@┆ 0x083180…0831a0 c2 89 40 cd 9b 3e 4f 23 1c 78 cd fc 40 1c 7b fe fe da 75 40 3e 20 cd fc 40 22 b0 3c 22 9d 3d 7b ┆ @ >O# x @ æ u@> @" <" =æ┆ 0x0831a0…0831c0 32 b2 3c 21 6a 3c 11 9c 3c 01 12 00 c3 c2 16 3a c7 3c 32 c6 3c 21 32 00 cd 44 40 21 9c 3c cd 03 ┆2 <!j< < : <2 <!2 D@! < ┆ 0x0831c0…0831e0 40 2a ac 3c cd 7f 43 2a b0 3c 3a b2 3c 5f cd 37 40 47 7b b7 ca f6 40 48 cd 37 40 47 cd 23 40 79 ┆@* < C* <: <_ 7@Gæ @H 7@G #@y┆ 0x0831e0…083200 c2 ef 40 1d ca f0 40 d6 20 4f cd 37 40 78 46 1d cd fc 40 c3 d2 40 2a ac 3c c3 7f 43 c5 d5 e5 11 ┆ @ @ O 7@xF @ @* < C ┆ 0x083200…083220 (34, 1, 15) 74 20 74 72 61 63 6b 20 74 6f 20 72 65 67 69 73 74 65 72 20 61 0d 0a 09 69 6e 72 09 61 0d 0a 09 ┆t track to register a inr a ┆ 0x083220…083240 6d 6f 76 09 63 2c 61 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 0d 0a 09 63 61 6c 6c 09 73 ┆mov c,a ;ready for call call s┆ 0x083240…083260 65 74 74 72 6b 0d 0a 09 78 72 61 09 61 09 3b 63 6c 65 61 72 20 73 65 63 74 6f 72 20 6e 75 6d 62 ┆ettrk xra a ;clear sector numb┆ 0x083260…083280 65 72 0d 0a 72 64 31 3a 09 69 6e 72 09 61 09 3b 74 6f 20 6e 65 78 74 20 73 65 63 74 6f 72 0d 0a ┆er rd1: inr a ;to next sector ┆ 0x083280…0832a0 09 6d 6f 76 09 63 2c 61 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 0d 0a 09 63 61 6c 6c 09 ┆ mov c,a ;ready for call call ┆ 0x0832a0…0832c0 73 65 74 73 65 63 0d 0a 09 70 6f 70 09 62 09 3b 72 65 63 61 6c 6c 20 73 65 63 74 6f 72 20 63 6f ┆setsec pop b ;recall sector co┆ 0x0832c0…0832e0 75 6e 74 0d 0a 09 64 63 72 09 62 09 3b 64 6f 6e 65 3f 0d 0a 09 6a 6e 7a 09 72 64 73 65 63 0d 0a ┆unt dcr b ;done? jnz rdsec ┆ 0x0832e0…083300 3b 0d 0a 3b 09 64 6f 6e 65 20 77 69 74 68 20 74 68 65 20 6c 6f 61 64 2c 20 72 65 73 65 74 20 64 ┆; ; done with the load, reset d┆ 0x083300…083320 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 0d 0a 67 6f 63 70 6d 3a 09 3b 28 ┆efault buffer address gocpm: ;(┆ 0x083320…083340 65 6e 74 65 72 20 68 65 72 65 20 66 72 6f 6d 20 63 6f 6c 64 20 73 74 61 72 74 20 62 6f 6f 74 29 ┆enter here from cold start boot)┆ 0x083340…083360 0d 0a 3b 09 65 6e 61 62 6c 65 20 72 73 74 30 20 61 6e 64 20 72 73 74 37 0d 0a 09 64 69 0d 0a 09 ┆ ; enable rst0 and rst7 di ┆ 0x083360…083380 6d 76 69 09 61 2c 31 32 68 09 3b 69 6e 69 74 69 61 6c 69 7a 65 20 63 6f 6d 6d 61 6e 64 0d 0a 09 ┆mvi a,12h ;initialize command ┆ 0x083380…0833a0 6f 75 74 09 72 65 76 72 74 0d 0a 09 78 72 61 09 61 0d 0a 09 6f 75 74 09 69 6e 74 63 09 3b 63 6c ┆out revrt xra a out intc ;cl┆ 0x0833a0…0833c0 65 61 72 65 64 0d 0a 09 6d 76 69 09 61 2c 69 6e 74 65 09 3b 72 73 74 30 20 61 6e 64 20 72 73 74 ┆eared mvi a,inte ;rst0 and rst┆ 0x0833c0…0833e0 37 20 62 69 74 73 20 6f 6e 0d 0a 09 6f 75 74 09 69 6e 74 63 0d 0a 09 78 72 61 09 61 0d 0a 09 6f ┆7 bits on out intc xra a o┆ 0x0833e0…083400 75 74 09 69 63 6f 6e 09 3b 69 6e 74 65 72 72 75 70 74 20 63 6f 6e 74 72 6f 6c 0d 0a 3b 0d 0a 3b ┆ut icon ;interrupt control ; ;┆ 0x083400…083420 (35, 0, 1) 6f 72 20 64 72 69 76 65 20 30 2c 31 20 61 6e 64 20 31 30 20 31 30 20 66 6f 72 20 64 72 69 76 65 ┆or drive 0,1 and 10 10 for drive┆ 0x083420…083440 20 32 2c 33 0d 0a 09 73 74 61 09 64 62 61 6e 6b 09 3b 74 6f 20 73 65 6c 65 63 74 20 64 72 69 76 ┆ 2,3 sta dbank ;to select driv┆ 0x083440…083460 65 20 62 61 6e 6b 0d 0a 09 6d 6f 76 09 61 2c 63 09 3b 30 30 2c 20 30 31 2c 20 31 30 2c 20 31 31 ┆e bank mov a,c ;00, 01, 10, 11┆ 0x083460…083480 0d 0a 09 61 6e 69 09 31 62 09 3b 6d 64 73 20 68 61 73 20 30 2c 31 20 61 74 20 37 38 2c 20 32 2c ┆ ani 1b ;mds has 0,1 at 78, 2,┆ 0x083480…0834a0 33 20 61 74 20 38 38 0d 0a 09 6f 72 61 09 61 09 3b 72 65 73 75 6c 74 20 30 30 3f 0d 0a 09 6a 7a ┆3 at 88 ora a ;result 00? jz┆ 0x0834a0…0834c0 09 73 65 74 64 72 69 76 65 0d 0a 09 6d 76 69 09 61 2c 30 30 31 31 30 30 30 30 62 09 3b 73 65 6c ┆ setdrive mvi a,00110000b ;sel┆ 0x0834c0…0834e0 65 63 74 73 20 64 72 69 76 65 20 31 20 69 6e 20 62 61 6e 6b 0d 0a 73 65 74 64 72 69 76 65 3a 0d ┆ects drive 1 in bank setdrive: ┆ 0x0834e0…083500 0a 09 6d 6f 76 09 62 2c 61 09 3b 73 61 76 65 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6c ┆ mov b,a ;save the function l┆ 0x083500…083520 78 69 09 68 2c 69 6f 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6d 6f 76 09 61 2c 6d 0d ┆xi h,iof ;io function mov a,m ┆ 0x083520…083540 0a 09 61 6e 69 09 31 31 30 30 31 31 31 31 62 09 3b 6d 61 73 6b 20 6f 75 74 20 64 69 73 6b 20 6e ┆ ani 11001111b ;mask out disk n┆ 0x083540…083560 75 6d 62 65 72 0d 0a 09 6f 72 61 09 62 09 3b 6d 61 73 6b 20 69 6e 20 6e 65 77 20 64 69 73 6b 20 ┆umber ora b ;mask in new disk ┆ 0x083560…083580 6e 75 6d 62 65 72 0d 0a 09 6d 6f 76 09 6d 2c 61 09 3b 73 61 76 65 20 69 74 20 69 6e 20 69 6f 70 ┆number mov m,a ;save it in iop┆ 0x083580…0835a0 62 0d 0a 09 6d 6f 76 09 6c 2c 63 0d 0a 09 6d 76 69 09 68 2c 30 09 3b 48 4c 3d 64 69 73 6b 20 6e ┆b mov l,c mvi h,0 ;HL=disk n┆ 0x0835a0…0835c0 75 6d 62 65 72 0d 0a 09 64 61 64 09 68 09 3b 2a 32 0d 0a 09 64 61 64 09 68 09 3b 2a 34 0d 0a 09 ┆umber dad h ;*2 dad h ;*4 ┆ 0x0835c0…0835e0 64 61 64 09 68 09 3b 2a 38 0d 0a 09 64 61 64 09 68 09 3b 2a 31 36 0d 0a 09 6c 78 69 09 64 2c 64 ┆dad h ;*8 dad h ;*16 lxi d,d┆ 0x0835e0…083600 70 62 61 73 65 0d 0a 09 64 61 64 09 64 09 3b 48 4c 3d 64 69 73 6b 20 68 65 61 64 65 72 20 74 61 ┆pbase dad d ;HL=disk header ta┆ 0x083600…083620 (35, 0, 2) 74 72 79 09 3b 6d 61 78 20 72 65 74 72 69 65 73 20 62 65 66 6f 72 65 20 70 65 72 6d 20 65 72 72 ┆try ;max retries before perm err┆ 0x083620…083640 6f 72 0d 0a 72 65 77 61 69 74 3a 0d 0a 3b 09 73 74 61 72 74 20 74 68 65 20 69 2f 6f 20 66 75 6e ┆or rewait: ; start the i/o fun┆ 0x083640…083660 63 74 69 6f 6e 20 61 6e 64 20 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 0d 0a 09 ┆ction and wait for completion ┆ 0x083660…083680 63 61 6c 6c 09 69 6e 74 79 70 65 09 3b 69 6e 20 72 74 79 70 65 0d 0a 09 63 61 6c 6c 09 69 6e 62 ┆call intype ;in rtype call inb┆ 0x083680…0836a0 79 74 65 09 3b 63 6c 65 61 72 73 20 74 68 65 20 63 6f 6e 74 72 6f 6c 6c 65 72 0d 0a 3b 0d 0a 09 ┆yte ;clears the controller ; ┆ 0x0836a0…0836c0 6c 64 61 09 64 62 61 6e 6b 09 09 3b 73 65 74 20 62 61 6e 6b 20 66 6c 61 67 73 0d 0a 09 6f 72 61 ┆lda dbank ;set bank flags ora┆ 0x0836c0…0836e0 09 61 09 09 3b 7a 65 72 6f 20 69 66 20 64 72 69 76 65 20 30 2c 31 20 61 6e 64 20 6e 7a 20 69 66 ┆ a ;zero if drive 0,1 and nz if┆ 0x0836e0…083700 20 32 2c 33 0d 0a 09 6d 76 69 09 61 2c 69 6f 70 62 20 61 6e 64 20 30 66 66 68 09 3b 6c 6f 77 20 ┆ 2,3 mvi a,iopb and 0ffh ;low ┆ 0x083700…083720 61 64 64 72 65 73 73 20 66 6f 72 20 69 6f 70 62 0d 0a 09 6d 76 69 09 62 2c 69 6f 70 62 20 73 68 ┆address for iopb mvi b,iopb sh┆ 0x083720…083740 72 20 38 09 3b 68 69 67 68 20 61 64 64 72 65 73 73 20 66 6f 72 20 69 6f 70 62 0d 0a 09 6a 6e 7a ┆r 8 ;high address for iopb jnz┆ 0x083740…083760 09 69 6f 64 72 31 09 3b 64 72 69 76 65 20 62 61 6e 6b 20 31 3f 0d 0a 09 6f 75 74 09 69 6c 6f 77 ┆ iodr1 ;drive bank 1? out ilow┆ 0x083760…083780 09 09 3b 6c 6f 77 20 61 64 64 72 65 73 73 20 74 6f 20 63 6f 6e 74 72 6f 6c 6c 65 72 0d 0a 09 6d ┆ ;low address to controller m┆ 0x083780…0837a0 6f 76 09 61 2c 62 0d 0a 09 6f 75 74 09 69 68 69 67 68 09 3b 68 69 67 68 20 61 64 64 72 65 73 73 ┆ov a,b out ihigh ;high address┆ 0x0837a0…0837c0 0d 0a 09 6a 6d 70 09 77 61 69 74 30 09 09 3b 74 6f 20 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c ┆ jmp wait0 ;to wait for compl┆ 0x0837c0…0837e0 65 74 65 0d 0a 3b 0d 0a 69 6f 64 72 31 3a 09 3b 64 72 69 76 65 20 62 61 6e 6b 20 31 0d 0a 09 6f ┆ete ; iodr1: ;drive bank 1 o┆ 0x0837e0…083800 75 74 09 69 6c 6f 77 2b 31 30 68 09 3b 38 38 20 66 6f 72 20 64 72 69 76 65 20 62 61 6e 6b 20 31 ┆ut ilow+10h ;88 for drive bank 1┆ 0x083800…083820 (35, 0, 3) 72 6f 0d 0a 09 64 63 72 09 63 0d 0a 09 6a 6e 7a 09 72 65 77 61 69 74 09 3b 66 6f 72 20 61 6e 6f ┆ro dcr c jnz rewait ;for ano┆ 0x083820…083840 74 68 65 72 20 74 72 79 0d 0a 3b 0d 0a 3b 09 63 61 6e 6e 6f 74 20 72 65 63 6f 76 65 72 20 66 72 ┆ther try ; ; cannot recover fr┆ 0x083840…083860 6f 6d 20 65 72 72 6f 72 0d 0a 09 6d 76 69 09 61 2c 31 09 3b 65 72 72 6f 72 20 63 6f 64 65 0d 0a ┆om error mvi a,1 ;error code ┆ 0x083860…083880 09 72 65 74 0d 0a 3b 0d 0a 3b 09 69 6e 74 79 70 65 2c 20 69 6e 62 79 74 65 2c 20 69 6e 73 74 61 ┆ ret ; ; intype, inbyte, insta┆ 0x083880…0838a0 74 20 72 65 61 64 20 64 72 69 76 65 20 62 61 6e 6b 20 30 30 20 6f 72 20 31 30 0d 0a 69 6e 74 79 ┆t read drive bank 00 or 10 inty┆ 0x0838a0…0838c0 70 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 74 79 ┆pe: lda dbank ora a jnz inty┆ 0x0838c0…0838e0 70 31 09 3b 73 6b 69 70 20 74 6f 20 62 61 6e 6b 20 31 30 0d 0a 09 69 6e 09 72 74 79 70 65 0d 0a ┆p1 ;skip to bank 10 in rtype ┆ 0x0838e0…083900 09 72 65 74 0d 0a 69 6e 74 79 70 31 3a 09 69 6e 09 72 74 79 70 65 2b 31 30 68 09 3b 37 38 20 66 ┆ ret intyp1: in rtype+10h ;78 f┆ 0x083900…083920 6f 72 20 30 2c 31 20 20 38 38 20 66 6f 72 20 32 2c 33 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 69 6e 62 ┆or 0,1 88 for 2,3 ret ; inb┆ 0x083920…083940 79 74 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 62 ┆yte: lda dbank ora a jnz inb┆ 0x083940…083960 79 74 31 0d 0a 09 69 6e 09 72 62 79 74 65 0d 0a 09 72 65 74 0d 0a 69 6e 62 79 74 31 3a 09 69 6e ┆yt1 in rbyte ret inbyt1: in┆ 0x083960…083980 09 72 62 79 74 65 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 69 6e 73 74 61 74 3a 09 6c 64 61 ┆ rbyte+10h ret ; instat: lda┆ 0x083980…0839a0 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 73 74 61 31 0d 0a 09 69 6e ┆ dbank ora a jnz insta1 in┆ 0x0839a0…0839c0 09 64 73 74 61 74 0d 0a 09 72 65 74 0d 0a 69 6e 73 74 61 31 3a 09 69 6e 09 64 73 74 61 74 2b 31 ┆ dstat ret insta1: in dstat+1┆ 0x0839c0…0839e0 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 61 74 61 20 61 72 65 61 73 20 ┆0h ret ; ; ; ; data areas ┆ 0x0839e0…083a00 28 6d 75 73 74 20 62 65 20 69 6e 20 72 61 6d 29 0d 0a 64 62 61 6e 6b 3a 09 64 62 09 30 09 3b 64 ┆(must be in ram) dbank: db 0 ;d┆ 0x083a00…083a20 (35, 0, 4) 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 6c 69 73 74 09 6c 69 73 74 20 ┆ut (char in reg-c) ; list list ┆ 0x083a20…083a40 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 70 75 6e 63 68 09 70 75 6e ┆out (char in reg-c) ; punch pun┆ 0x083a40…083a60 63 68 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 72 65 61 64 65 72 ┆ch out (char in reg-c) ; reader┆ 0x083a60…083a80 09 70 61 70 65 72 20 74 61 70 65 20 72 65 61 64 65 72 20 69 6e 20 28 72 65 73 75 6c 74 20 74 6f ┆ paper tape reader in (result to┆ 0x083a80…083aa0 20 72 65 67 2d 61 29 0d 0a 3b 09 68 6f 6d 65 09 6d 6f 76 65 20 74 6f 20 74 72 61 63 6b 20 30 30 ┆ reg-a) ; home move to track 00┆ 0x083aa0…083ac0 0d 0a 3b 0d 0a 3b 09 28 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 61 6c 6c 73 20 73 65 74 2d ┆ ; ; (the following calls set-┆ 0x083ac0…083ae0 75 70 20 74 68 65 20 69 6f 20 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 20 66 6f 72 20 74 68 ┆up the io parameter block for th┆ 0x083ae0…083b00 65 0d 0a 3b 09 6d 64 73 2c 20 77 68 69 63 68 20 69 73 20 75 73 65 64 20 74 6f 20 70 65 72 66 6f ┆e ; mds, which is used to perfo┆ 0x083b00…083b20 72 6d 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 73 20 61 6e 64 20 77 72 69 74 65 73 29 0d ┆rm subsequent reads and writes) ┆ 0x083b20…083b40 0a 3b 09 73 65 6c 64 73 6b 09 73 65 6c 65 63 74 20 64 69 73 6b 20 67 69 76 65 6e 20 62 79 20 72 ┆ ; seldsk select disk given by r┆ 0x083b40…083b60 65 67 2d 63 20 28 30 2c 31 2c 32 2e 2e 2e 29 0d 0a 3b 09 73 65 74 74 72 6b 09 73 65 74 20 74 72 ┆eg-c (0,1,2...) ; settrk set tr┆ 0x083b60…083b80 61 63 6b 20 61 64 64 72 65 73 73 20 28 30 2c 2e 2e 2e 37 36 29 20 66 6f 72 20 73 75 62 73 65 71 ┆ack address (0,...76) for subseq┆ 0x083b80…083ba0 75 65 6e 74 20 72 65 61 64 2f 77 72 69 74 65 0d 0a 3b 09 73 65 74 73 65 63 09 73 65 74 20 73 65 ┆uent read/write ; setsec set se┆ 0x083ba0…083bc0 63 74 6f 72 20 61 64 64 72 65 73 73 20 28 31 2c 2e 2e 2e 2c 32 36 29 20 66 6f 72 20 73 75 62 73 ┆ctor address (1,...,26) for subs┆ 0x083bc0…083be0 65 71 75 65 6e 74 20 72 65 61 64 2f 77 72 69 74 65 0d 0a 3b 09 73 65 74 64 6d 61 09 73 65 74 20 ┆equent read/write ; setdma set ┆ 0x083be0…083c00 73 75 62 73 65 71 75 65 6e 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 28 69 6e 69 74 69 61 6c 6c ┆subsequent dma address (initiall┆ 0x083c00…083c20 (35, 0, 5) 62 6c 65 20 61 64 64 72 65 73 73 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 73 65 74 74 72 6b 3a ┆ble address ret ; ; settrk:┆ 0x083c20…083c40 09 3b 73 65 74 20 74 72 61 63 6b 20 61 64 64 72 65 73 73 20 67 69 76 65 6e 20 62 79 20 63 0d 0a ┆ ;set track address given by c ┆ 0x083c40…083c60 09 6c 78 69 09 68 2c 69 6f 74 0d 0a 09 6d 6f 76 09 6d 2c 63 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 73 ┆ lxi h,iot mov m,c ret ; s┆ 0x083c60…083c80 65 74 73 65 63 3a 09 3b 73 65 74 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 67 69 76 65 6e 20 ┆etsec: ;set sector number given ┆ 0x083c80…083ca0 62 79 20 63 0d 0a 09 6c 78 69 09 68 2c 69 6f 73 0d 0a 09 6d 6f 76 09 6d 2c 63 0d 0a 09 72 65 74 ┆by c lxi h,ios mov m,c ret┆ 0x083ca0…083cc0 0d 0a 73 65 63 74 72 61 6e 3a 0d 0a 09 09 3b 74 72 61 6e 73 6c 61 74 65 20 73 65 63 74 6f 72 20 ┆ sectran: ;translate sector ┆ 0x083cc0…083ce0 62 63 20 75 73 69 6e 67 20 74 61 62 6c 65 20 61 74 20 64 65 0d 0a 09 6d 76 69 09 62 2c 30 09 3b ┆bc using table at de mvi b,0 ;┆ 0x083ce0…083d00 64 6f 75 62 6c 65 20 70 72 65 63 69 73 69 6f 6e 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 69 ┆double precision sector number i┆ 0x083d00…083d20 6e 20 42 43 0d 0a 09 78 63 68 67 09 09 3b 74 72 61 6e 73 6c 61 74 65 20 74 61 62 6c 65 20 61 64 ┆n BC xchg ;translate table ad┆ 0x083d20…083d40 64 72 65 73 73 20 74 6f 20 48 4c 0d 0a 09 64 61 64 09 62 09 3b 74 72 61 6e 73 6c 61 74 65 28 73 ┆dress to HL dad b ;translate(s┆ 0x083d40…083d60 65 63 74 6f 72 29 20 61 64 64 72 65 73 73 0d 0a 09 6d 6f 76 09 61 2c 6d 09 3b 74 72 61 6e 73 6c ┆ector) address mov a,m ;transl┆ 0x083d60…083d80 61 74 65 64 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 74 6f 20 41 0d 0a 09 73 74 61 09 69 6f ┆ated sector number to A sta io┆ 0x083d80…083da0 73 0d 0a 09 6d 6f 76 09 6c 2c 61 09 3b 72 65 74 75 72 6e 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 ┆s mov l,a ;return sector numbe┆ 0x083da0…083dc0 72 20 69 6e 20 4c 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 73 65 74 64 6d 61 3a 09 3b 73 65 74 20 64 6d ┆r in L ret ; setdma: ;set dm┆ 0x083dc0…083de0 61 20 61 64 64 72 65 73 73 20 67 69 76 65 6e 20 62 79 20 72 65 67 73 20 62 2c 63 0d 0a 09 6d 6f ┆a address given by regs b,c mo┆ 0x083de0…083e00 76 09 6c 2c 63 0d 0a 09 6d 6f 76 09 68 2c 62 0d 0a 09 73 68 6c 64 09 69 6f 64 0d 0a 09 72 65 74 ┆v l,c mov h,b shld iod ret┆ 0x083e00…083e20 (35, 0, 6) 30 0d 0a 09 6d 6f 76 09 61 2c 62 0d 0a 09 6f 75 74 09 69 68 69 67 68 2b 31 30 68 0d 0a 3b 0d 0a ┆0 mov a,b out ihigh+10h ; ┆ 0x083e20…083e40 77 61 69 74 30 3a 09 63 61 6c 6c 09 69 6e 73 74 61 74 09 09 3b 77 61 69 74 20 66 6f 72 20 63 6f ┆wait0: call instat ;wait for co┆ 0x083e40…083e60 6d 70 6c 65 74 69 6f 6e 0d 0a 09 61 6e 69 09 69 6f 72 64 79 09 09 3b 72 65 61 64 79 3f 0d 0a 09 ┆mpletion ani iordy ;ready? ┆ 0x083e60…083e80 6a 7a 09 77 61 69 74 30 0d 0a 3b 0d 0a 3b 09 63 68 65 63 6b 20 69 6f 20 63 6f 6d 70 6c 65 74 69 ┆jz wait0 ; ; check io completi┆ 0x083e80…083ea0 6f 6e 20 6f 6b 0d 0a 09 63 61 6c 6c 09 69 6e 74 79 70 65 09 09 3b 6d 75 73 74 20 62 65 20 69 6f ┆on ok call intype ;must be io┆ 0x083ea0…083ec0 20 63 6f 6d 70 6c 65 74 65 20 28 30 30 29 20 75 6e 6c 69 6e 6b 65 64 0d 0a 3b 09 30 30 20 75 6e ┆ complete (00) unlinked ; 00 un┆ 0x083ec0…083ee0 6c 69 6e 6b 65 64 20 69 2f 6f 20 63 6f 6d 70 6c 65 74 65 2c 20 20 20 20 30 31 20 6c 69 6e 6b 65 ┆linked i/o complete, 01 linke┆ 0x083ee0…083f00 64 20 69 2f 6f 20 63 6f 6d 70 6c 65 74 65 20 28 6e 6f 74 20 75 73 65 64 29 0d 0a 3b 09 31 30 20 ┆d i/o complete (not used) ; 10 ┆ 0x083f00…083f20 64 69 73 6b 20 73 74 61 74 75 73 20 63 68 61 6e 67 65 64 20 20 20 20 20 20 20 31 31 20 28 6e 6f ┆disk status changed 11 (no┆ 0x083f20…083f40 74 20 75 73 65 64 29 0d 0a 09 63 70 69 09 31 30 62 09 09 3b 72 65 61 64 79 20 73 74 61 74 75 73 ┆t used) cpi 10b ;ready status┆ 0x083f40…083f60 20 63 68 61 6e 67 65 3f 0d 0a 09 6a 7a 09 77 72 65 61 64 79 0d 0a 3b 0d 0a 3b 09 6d 75 73 74 20 ┆ change? jz wready ; ; must ┆ 0x083f60…083f80 62 65 20 30 30 20 69 6e 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 0d 0a 09 6f 72 61 09 61 ┆be 00 in the accumulator ora a┆ 0x083f80…083fa0 0d 0a 09 6a 6e 7a 09 77 65 72 72 6f 72 09 09 3b 73 6f 6d 65 20 6f 74 68 65 72 20 63 6f 6e 64 69 ┆ jnz werror ;some other condi┆ 0x083fa0…083fc0 74 69 6f 6e 2c 20 72 65 74 72 79 0d 0a 3b 0d 0a 3b 09 63 68 65 63 6b 20 69 2f 6f 20 65 72 72 6f ┆tion, retry ; ; check i/o erro┆ 0x083fc0…083fe0 72 20 62 69 74 73 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 0d 0a 09 72 61 6c 0d 0a 09 6a 63 09 ┆r bits call inbyte ral jc ┆ 0x083fe0…084000 77 72 65 61 64 79 09 09 3b 75 6e 69 74 20 6e 6f 74 20 72 65 61 64 79 0d 0a 09 72 61 72 0d 0a 09 ┆wready ;unit not ready rar ┆ 0x084000…084020 (35, 0, 7) 69 73 6b 20 62 61 6e 6b 20 30 30 20 69 66 20 64 72 69 76 65 20 30 2c 31 0d 0a 09 09 09 3b 09 20 ┆isk bank 00 if drive 0,1 ; ┆ 0x084020…084040 20 20 31 30 20 69 66 20 64 72 69 76 65 20 32 2c 33 0d 0a 69 6f 70 62 3a 09 3b 69 6f 20 70 61 72 ┆ 10 if drive 2,3 iopb: ;io par┆ 0x084040…084060 61 6d 65 74 65 72 20 62 6c 6f 63 6b 0d 0a 09 64 62 09 38 30 68 09 3b 6e 6f 72 6d 61 6c 20 69 2f ┆ameter block db 80h ;normal i/┆ 0x084060…084080 6f 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 69 6f 66 3a 09 64 62 09 72 65 61 64 66 09 3b 69 6f 20 66 ┆o operation iof: db readf ;io f┆ 0x084080…0840a0 75 6e 63 74 69 6f 6e 2c 20 69 6e 69 74 69 61 6c 20 72 65 61 64 0d 0a 69 6f 6e 3a 09 64 62 09 31 ┆unction, initial read ion: db 1┆ 0x0840a0…0840c0 09 3b 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 20 74 6f 20 72 65 61 64 0d 0a 69 6f 74 ┆ ;number of sectors to read iot┆ 0x0840c0…0840e0 3a 09 64 62 09 6f 66 66 73 65 74 09 3b 74 72 61 63 6b 20 6e 75 6d 62 65 72 0d 0a 69 6f 73 3a 09 ┆: db offset ;track number ios: ┆ 0x0840e0…084100 64 62 09 31 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 0d 0a 69 6f 64 3a 09 64 77 09 62 75 66 ┆db 1 ;sector number iod: dw buf┆ 0x084100…084120 66 09 3b 69 6f 20 61 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 65 66 69 6e 65 20 72 61 ┆f ;io address ; ; ; define ra┆ 0x084120…084140 6d 20 61 72 65 61 73 20 66 6f 72 20 62 64 6f 73 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 09 65 6e 64 ┆m areas for bdos operation end┆ 0x084140…084160 65 66 0d 0a 09 65 6e 64 0d 0a 3b 09 4d 44 53 2d 38 30 30 20 49 2f 4f 20 44 72 69 76 65 72 73 20 ┆ef end ; MDS-800 I/O Drivers ┆ 0x084160…084180 66 6f 72 20 43 50 2f 4d 20 32 2e 32 0d 0a 3b 09 28 66 6f 75 72 20 64 72 69 76 65 20 73 69 6e 67 ┆for CP/M 2.2 ; (four drive sing┆ 0x084180…0841a0 6c 65 20 64 65 6e 73 69 74 79 20 76 65 72 73 69 6f 6e 29 0d 0a 3b 0d 0a 3b 09 56 65 72 73 69 6f ┆le density version) ; ; Versio┆ 0x0841a0…0841c0 6e 20 32 2e 32 20 46 65 62 72 75 61 72 79 2c 20 31 39 38 30 0d 0a 3b 0d 0a 76 65 72 73 09 65 71 ┆n 2.2 February, 1980 ; vers eq┆ 0x0841c0…0841e0 75 09 32 32 09 3b 76 65 72 73 69 6f 6e 20 32 2e 32 0d 0a 3b 0d 0a 3b 09 43 6f 70 79 72 69 67 68 ┆u 22 ;version 2.2 ; ; Copyrigh┆ 0x0841e0…084200 74 20 28 63 29 20 31 39 38 30 0d 0a 3b 09 44 69 67 69 74 61 6c 20 52 65 73 65 61 72 63 68 0d 0a ┆t (c) 1980 ; Digital Research ┆ 0x084200…084220 (35, 0, 8) 79 20 38 30 68 29 0d 0a 3b 0d 0a 3b 09 28 72 65 61 64 20 61 6e 64 20 77 72 69 74 65 20 61 73 73 ┆y 80h) ; ; (read and write ass┆ 0x084220…084240 75 6d 65 20 70 72 65 76 69 6f 75 73 20 63 61 6c 6c 73 20 74 6f 20 73 65 74 20 75 70 20 74 68 65 ┆ume previous calls to set up the┆ 0x084240…084260 20 69 6f 20 70 61 72 61 6d 65 74 65 72 73 29 0d 0a 3b 09 72 65 61 64 09 72 65 61 64 20 74 72 61 ┆ io parameters) ; read read tra┆ 0x084260…084280 63 6b 2f 73 65 63 74 6f 72 20 74 6f 20 70 72 65 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d ┆ck/sector to preset dma address ┆ 0x084280…0842a0 0a 3b 09 77 72 69 74 65 09 77 72 69 74 65 20 74 72 61 63 6b 2f 73 65 63 74 6f 72 20 66 72 6f 6d ┆ ; write write track/sector from┆ 0x0842a0…0842c0 20 70 72 65 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b 09 6a 75 6d 70 20 76 ┆ preset dma address ; ; jump v┆ 0x0842c0…0842e0 65 63 74 6f 72 20 66 6f 72 20 69 6e 64 69 76 69 75 61 6c 20 72 6f 75 74 69 6e 65 73 0d 0a 09 6a ┆ector for indiviual routines j┆ 0x0842e0…084300 6d 70 09 62 6f 6f 74 0d 0a 77 62 6f 6f 74 65 3a 09 6a 6d 70 09 77 62 6f 6f 74 0d 0a 09 6a 6d 70 ┆mp boot wboote: jmp wboot jmp┆ 0x084300…084320 09 63 6f 6e 73 74 0d 0a 09 6a 6d 70 09 63 6f 6e 69 6e 0d 0a 09 6a 6d 70 09 63 6f 6e 6f 75 74 0d ┆ const jmp conin jmp conout ┆ 0x084320…084340 0a 09 6a 6d 70 09 6c 69 73 74 0d 0a 09 6a 6d 70 09 70 75 6e 63 68 0d 0a 09 6a 6d 70 09 72 65 61 ┆ jmp list jmp punch jmp rea┆ 0x084340…084360 64 65 72 0d 0a 09 6a 6d 70 09 68 6f 6d 65 0d 0a 09 6a 6d 70 09 73 65 6c 64 73 6b 0d 0a 09 6a 6d ┆der jmp home jmp seldsk jm┆ 0x084360…084380 70 09 73 65 74 74 72 6b 0d 0a 09 6a 6d 70 09 73 65 74 73 65 63 0d 0a 09 6a 6d 70 09 73 65 74 64 ┆p settrk jmp setsec jmp setd┆ 0x084380…0843a0 6d 61 0d 0a 09 6a 6d 70 09 72 65 61 64 0d 0a 09 6a 6d 70 09 77 72 69 74 65 0d 0a 09 6a 6d 70 09 ┆ma jmp read jmp write jmp ┆ 0x0843a0…0843c0 6c 69 73 74 73 74 09 3b 6c 69 73 74 20 73 74 61 74 75 73 0d 0a 09 6a 6d 70 09 73 65 63 74 72 61 ┆listst ;list status jmp sectra┆ 0x0843c0…0843e0 6e 0d 0a 3b 0d 0a 09 6d 61 63 6c 69 62 09 64 69 73 6b 64 65 66 09 3b 6c 6f 61 64 20 74 68 65 20 ┆n ; maclib diskdef ;load the ┆ 0x0843e0…084400 64 69 73 6b 20 64 65 66 69 6e 69 74 69 6f 6e 20 6c 69 62 72 61 72 79 0d 0a 09 64 69 73 6b 73 09 ┆disk definition library disks ┆ 0x084400…084420 (35, 0, 9) 0d 0a 3b 0d 0a 72 65 61 64 3a 09 3b 72 65 61 64 20 6e 65 78 74 20 64 69 73 6b 20 72 65 63 6f 72 ┆ ; read: ;read next disk recor┆ 0x084420…084440 64 20 28 61 73 73 75 6d 69 6e 67 20 64 69 73 6b 2f 74 72 6b 2f 73 65 63 2f 64 6d 61 20 73 65 74 ┆d (assuming disk/trk/sec/dma set┆ 0x084440…084460 29 0d 0a 09 6d 76 69 09 63 2c 72 65 61 64 66 09 3b 73 65 74 20 74 6f 20 72 65 61 64 20 66 75 6e ┆) mvi c,readf ;set to read fun┆ 0x084460…084480 63 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 73 65 74 66 75 6e 63 0d 0a 09 63 61 6c 6c 09 77 61 69 74 ┆ction call setfunc call wait┆ 0x084480…0844a0 69 6f 09 3b 70 65 72 66 6f 72 6d 20 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 72 65 74 09 ┆io ;perform read function ret ┆ 0x0844a0…0844c0 09 3b 6d 61 79 20 68 61 76 65 20 65 72 72 6f 72 20 73 65 74 20 69 6e 20 72 65 67 2d 61 0d 0a 3b ┆ ;may have error set in reg-a ;┆ 0x0844c0…0844e0 0d 0a 3b 0d 0a 77 72 69 74 65 3a 09 3b 64 69 73 6b 20 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e ┆ ; write: ;disk write function┆ 0x0844e0…084500 0d 0a 09 6d 76 69 09 63 2c 77 72 69 74 66 0d 0a 09 63 61 6c 6c 09 73 65 74 66 75 6e 63 09 3b 73 ┆ mvi c,writf call setfunc ;s┆ 0x084500…084520 65 74 20 74 6f 20 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 77 61 69 74 ┆et to write function call wait┆ 0x084520…084540 69 6f 0d 0a 09 72 65 74 09 09 3b 6d 61 79 20 68 61 76 65 20 65 72 72 6f 72 20 73 65 74 0d 0a 3b ┆io ret ;may have error set ;┆ 0x084540…084560 0d 0a 3b 0d 0a 3b 09 75 74 69 6c 69 74 79 20 73 75 62 72 6f 75 74 69 6e 65 73 0d 0a 70 72 6d 73 ┆ ; ; utility subroutines prms┆ 0x084560…084580 67 3a 09 3b 70 72 69 6e 74 20 6d 65 73 73 61 67 65 20 61 74 20 68 2c 6c 20 74 6f 20 30 0d 0a 09 ┆g: ;print message at h,l to 0 ┆ 0x084580…0845a0 6d 6f 76 09 61 2c 6d 0d 0a 09 6f 72 61 09 61 09 3b 7a 65 72 6f 3f 0d 0a 09 72 7a 0d 0a 3b 09 6d ┆mov a,m ora a ;zero? rz ; m┆ 0x0845a0…0845c0 6f 72 65 20 74 6f 20 70 72 69 6e 74 0d 0a 09 70 75 73 68 09 68 0d 0a 09 6d 6f 76 09 63 2c 61 0d ┆ore to print push h mov c,a ┆ 0x0845c0…0845e0 0a 09 63 61 6c 6c 09 63 6f 6e 6f 75 74 0d 0a 09 70 6f 70 09 68 0d 0a 09 69 6e 78 09 68 0d 0a 09 ┆ call conout pop h inx h ┆ 0x0845e0…084600 6a 6d 70 09 70 72 6d 73 67 0d 0a 3b 0d 0a 73 65 74 66 75 6e 63 3a 0d 0a 3b 09 73 65 74 20 66 75 ┆jmp prmsg ; setfunc: ; set fu┆ 0x084600…084620 (35, 0, 10) 61 6e 69 09 31 31 31 31 31 31 31 30 62 09 3b 61 6e 79 20 6f 74 68 65 72 20 65 72 72 6f 72 73 3f ┆ani 11111110b ;any other errors?┆ 0x084620…084640 20 20 28 64 65 6c 65 74 65 64 20 64 61 74 61 20 6f 6b 29 0d 0a 09 6a 6e 7a 09 77 65 72 72 6f 72 ┆ (deleted data ok) jnz werror┆ 0x084640…084660 0d 0a 3b 0d 0a 3b 09 72 65 61 64 20 6f 72 20 77 72 69 74 65 20 69 73 20 6f 6b 2c 20 61 63 63 75 ┆ ; ; read or write is ok, accu┆ 0x084660…084680 6d 75 6c 61 74 6f 72 20 63 6f 6e 74 61 69 6e 73 20 7a 65 72 6f 0d 0a 09 72 65 74 0d 0a 3b 0d 0a ┆mulator contains zero ret ; ┆ 0x084680…0846a0 77 72 65 61 64 79 3a 09 3b 6e 6f 74 20 72 65 61 64 79 2c 20 74 72 65 61 74 20 61 73 20 65 72 72 ┆wready: ;not ready, treat as err┆ 0x0846a0…0846c0 6f 72 20 66 6f 72 20 6e 6f 77 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 09 09 3b 63 6c 65 61 72 ┆or for now call inbyte ;clear┆ 0x0846c0…0846e0 20 72 65 73 75 6c 74 20 62 79 74 65 0d 0a 09 6a 6d 70 09 74 72 79 63 6f 75 6e 74 0d 0a 3b 0d 0a ┆ result byte jmp trycount ; ┆ 0x0846e0…084700 77 65 72 72 6f 72 3a 09 3b 72 65 74 75 72 6e 20 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 ┆werror: ;return hardware malfunc┆ 0x084700…084720 74 69 6f 6e 20 28 63 72 63 2c 20 74 72 61 63 6b 2c 20 73 65 65 6b 2c 20 65 74 63 2e 29 0d 0a 3b ┆tion (crc, track, seek, etc.) ;┆ 0x084720…084740 09 74 68 65 20 6d 64 73 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 68 61 73 20 72 65 74 75 72 6e 65 64 ┆ the mds controller has returned┆ 0x084740…084760 20 61 20 62 69 74 20 69 6e 20 65 61 63 68 20 70 6f 73 69 74 69 6f 6e 0d 0a 3b 09 6f 66 20 74 68 ┆ a bit in each position ; of th┆ 0x084760…084780 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 2c 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 ┆e accumulator, corresponding to ┆ 0x084780…0847a0 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e 73 3a 0d 0a 3b 09 30 09 2d 20 64 65 6c 65 74 65 64 20 64 ┆the conditions: ; 0 - deleted d┆ 0x0847a0…0847c0 61 74 61 20 28 61 63 63 65 70 74 65 64 20 61 73 20 6f 6b 20 61 62 6f 76 65 29 0d 0a 3b 09 31 09 ┆ata (accepted as ok above) ; 1 ┆ 0x0847c0…0847e0 2d 20 63 72 63 20 65 72 72 6f 72 0d 0a 3b 09 32 09 2d 20 73 65 65 6b 20 65 72 72 6f 72 0d 0a 3b ┆- crc error ; 2 - seek error ;┆ 0x0847e0…084800 09 33 09 2d 20 61 64 64 72 65 73 73 20 65 72 72 6f 72 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c ┆ 3 - address error (hardware mal┆ 0x084800…084820 (35, 0, 11) 3b 09 42 6f 78 20 35 37 39 2c 20 50 61 63 69 66 69 63 20 47 72 6f 76 65 0d 0a 3b 09 43 61 6c 69 ┆; Box 579, Pacific Grove ; Cali┆ 0x084820…084840 66 6f 72 6e 69 61 2c 20 39 33 39 35 30 0d 0a 3b 0d 0a 3b 0d 0a 74 72 75 65 09 65 71 75 09 30 66 ┆fornia, 93950 ; ; true equ 0f┆ 0x084840…084860 66 66 66 68 09 3b 76 61 6c 75 65 20 6f 66 20 22 74 72 75 65 22 0d 0a 66 61 6c 73 65 09 65 71 75 ┆fffh ;value of "true" false equ┆ 0x084860…084880 09 6e 6f 74 20 74 72 75 65 09 3b 22 66 61 6c 73 65 22 0d 0a 74 65 73 74 09 65 71 75 09 66 61 6c ┆ not true ;"false" test equ fal┆ 0x084880…0848a0 73 65 09 3b 74 72 75 65 20 69 66 20 74 65 73 74 20 62 69 6f 73 0d 0a 3b 0d 0a 09 69 66 09 74 65 ┆se ;true if test bios ; if te┆ 0x0848a0…0848c0 73 74 0d 0a 62 69 61 73 09 65 71 75 09 30 33 34 30 30 68 09 3b 62 61 73 65 20 6f 66 20 43 43 50 ┆st bias equ 03400h ;base of CCP┆ 0x0848c0…0848e0 20 69 6e 20 74 65 73 74 20 73 79 73 74 65 6d 0d 0a 09 65 6e 64 69 66 0d 0a 09 69 66 09 6e 6f 74 ┆ in test system endif if not┆ 0x0848e0…084900 20 74 65 73 74 0d 0a 62 69 61 73 09 65 71 75 09 30 30 30 30 68 09 3b 67 65 6e 65 72 61 74 65 20 ┆ test bias equ 0000h ;generate ┆ 0x084900…084920 72 65 6c 6f 63 61 74 61 62 6c 65 20 63 70 2f 6d 20 73 79 73 74 65 6d 0d 0a 09 65 6e 64 69 66 0d ┆relocatable cp/m system endif ┆ 0x084920…084940 0a 3b 0d 0a 70 61 74 63 68 09 65 71 75 09 31 36 30 30 68 0d 0a 3b 0d 0a 09 6f 72 67 09 70 61 74 ┆ ; patch equ 1600h ; org pat┆ 0x084940…084960 63 68 0d 0a 63 70 6d 62 09 65 71 75 09 24 2d 70 61 74 63 68 09 3b 62 61 73 65 20 6f 66 20 63 70 ┆ch cpmb equ $-patch ;base of cp┆ 0x084960…084980 6d 20 63 6f 6e 73 6f 6c 65 20 70 72 6f 63 65 73 73 6f 72 0d 0a 62 64 6f 73 09 65 71 75 09 38 30 ┆m console processor bdos equ 80┆ 0x084980…0849a0 36 68 2b 63 70 6d 62 09 3b 62 61 73 69 63 20 64 6f 73 20 28 72 65 73 69 64 65 6e 74 20 70 6f 72 ┆6h+cpmb ;basic dos (resident por┆ 0x0849a0…0849c0 74 69 6f 6e 29 0d 0a 63 70 6d 6c 09 65 71 75 09 24 2d 63 70 6d 62 09 3b 6c 65 6e 67 74 68 20 28 ┆tion) cpml equ $-cpmb ;length (┆ 0x0849c0…0849e0 69 6e 20 62 79 74 65 73 29 20 6f 66 20 63 70 6d 20 73 79 73 74 65 6d 0d 0a 6e 73 65 63 74 73 09 ┆in bytes) of cpm system nsects ┆ 0x0849e0…084a00 65 71 75 09 63 70 6d 6c 2f 31 32 38 09 3b 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 20 ┆equ cpml/128 ;number of sectors ┆ 0x084a00…084a20 (35, 0, 12) 34 09 3b 66 6f 75 72 20 64 69 73 6b 73 0d 0a 09 64 69 73 6b 64 65 66 09 30 2c 31 2c 32 36 2c 36 ┆4 ;four disks diskdef 0,1,26,6┆ 0x084a20…084a40 2c 31 30 32 34 2c 32 34 33 2c 36 34 2c 36 34 2c 6f 66 66 73 65 74 0d 0a 09 64 69 73 6b 64 65 66 ┆,1024,243,64,64,offset diskdef┆ 0x084a40…084a60 09 31 2c 30 0d 0a 09 64 69 73 6b 64 65 66 09 32 2c 30 0d 0a 09 64 69 73 6b 64 65 66 09 33 2c 30 ┆ 1,0 diskdef 2,0 diskdef 3,0┆ 0x084a60…084a80 0d 0a 3b 09 65 6e 64 65 66 20 6f 63 63 75 72 73 20 61 74 20 65 6e 64 20 6f 66 20 61 73 73 65 6d ┆ ; endef occurs at end of assem┆ 0x084a80…084aa0 62 6c 79 0d 0a 3b 0d 0a 3b 09 65 6e 64 20 6f 66 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 2d 20 69 6e ┆bly ; ; end of controller - in┆ 0x084aa0…084ac0 64 65 70 65 6e 64 65 6e 74 20 63 6f 64 65 2c 20 74 68 65 20 72 65 6d 61 69 6e 69 6e 67 20 73 75 ┆dependent code, the remaining su┆ 0x084ac0…084ae0 62 72 6f 75 74 69 6e 65 73 0d 0a 3b 09 61 72 65 20 74 61 69 6c 6f 72 65 64 20 74 6f 20 74 68 65 ┆broutines ; are tailored to the┆ 0x084ae0…084b00 20 70 61 72 74 69 63 75 6c 61 72 20 6f 70 65 72 61 74 69 6e 67 20 65 6e 76 69 72 6f 6e 6d 65 6e ┆ particular operating environmen┆ 0x084b00…084b20 74 2c 20 61 6e 64 20 6d 75 73 74 0d 0a 3b 09 62 65 20 61 6c 74 65 72 65 64 20 66 6f 72 20 61 6e ┆t, and must ; be altered for an┆ 0x084b20…084b40 79 20 73 79 73 74 65 6d 20 77 68 69 63 68 20 64 69 66 66 65 72 73 20 66 72 6f 6d 20 74 68 65 20 ┆y system which differs from the ┆ 0x084b40…084b60 69 6e 74 65 6c 20 6d 64 73 2e 0d 0a 3b 0d 0a 3b 09 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 ┆intel mds. ; ; the following c┆ 0x084b60…084b80 6f 64 65 20 61 73 73 75 6d 65 73 20 74 68 65 20 6d 64 73 20 6d 6f 6e 69 74 6f 72 20 65 78 69 73 ┆ode assumes the mds monitor exis┆ 0x084b80…084ba0 74 73 20 61 74 20 30 66 38 30 30 68 0d 0a 3b 09 61 6e 64 20 75 73 65 73 20 74 68 65 20 69 2f 6f ┆ts at 0f800h ; and uses the i/o┆ 0x084ba0…084bc0 20 73 75 62 72 6f 75 74 69 6e 65 73 20 77 69 74 68 69 6e 20 74 68 65 20 6d 6f 6e 69 74 6f 72 0d ┆ subroutines within the monitor ┆ 0x084bc0…084be0 0a 3b 0d 0a 3b 09 77 65 20 61 6c 73 6f 20 61 73 73 75 6d 65 20 74 68 65 20 6d 64 73 20 73 79 73 ┆ ; ; we also assume the mds sys┆ 0x084be0…084c00 74 65 6d 20 68 61 73 20 66 6f 75 72 20 64 69 73 6b 20 64 72 69 76 65 73 0d 0a 72 65 76 72 74 09 ┆tem has four disk drives revrt ┆ 0x084c00…084c20 (35, 0, 13) 6e 63 74 69 6f 6e 20 66 6f 72 20 6e 65 78 74 20 69 2f 6f 20 28 63 6f 6d 6d 61 6e 64 20 69 6e 20 ┆nction for next i/o (command in ┆ 0x084c20…084c40 72 65 67 2d 63 29 0d 0a 09 6c 78 69 09 68 2c 69 6f 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 20 ┆reg-c) lxi h,iof ;io function ┆ 0x084c40…084c60 61 64 64 72 65 73 73 0d 0a 09 6d 6f 76 09 61 2c 6d 09 3b 67 65 74 20 69 74 20 74 6f 20 61 63 63 ┆address mov a,m ;get it to acc┆ 0x084c60…084c80 75 6d 75 6c 61 74 6f 72 20 66 6f 72 20 6d 61 73 6b 69 6e 67 0d 0a 09 61 6e 69 09 31 31 31 31 31 ┆umulator for masking ani 11111┆ 0x084c80…084ca0 30 30 30 62 09 3b 72 65 6d 6f 76 65 20 70 72 65 76 69 6f 75 73 20 63 6f 6d 6d 61 6e 64 0d 0a 09 ┆000b ;remove previous command ┆ 0x084ca0…084cc0 6f 72 61 09 63 09 3b 73 65 74 20 74 6f 20 6e 65 77 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6d 6f 76 09 ┆ora c ;set to new command mov ┆ 0x084cc0…084ce0 6d 2c 61 09 3b 72 65 70 6c 61 63 65 64 20 69 6e 20 69 6f 70 62 0d 0a 3b 09 74 68 65 20 6d 64 73 ┆m,a ;replaced in iopb ; the mds┆ 0x084ce0…084d00 2d 38 30 30 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 72 65 71 75 69 72 65 73 20 64 69 73 6b 20 62 61 ┆-800 controller requires disk ba┆ 0x084d00…084d20 6e 6b 20 62 69 74 20 69 6e 20 73 65 63 74 6f 72 20 62 79 74 65 0d 0a 3b 09 6d 61 73 6b 20 74 68 ┆nk bit in sector byte ; mask th┆ 0x084d20…084d40 65 20 62 69 74 20 66 72 6f 6d 20 74 68 65 20 63 75 72 72 65 6e 74 20 69 2f 6f 20 66 75 6e 63 74 ┆e bit from the current i/o funct┆ 0x084d40…084d60 69 6f 6e 0d 0a 09 61 6e 69 09 30 30 31 30 30 30 30 30 62 09 3b 6d 61 73 6b 20 74 68 65 20 64 69 ┆ion ani 00100000b ;mask the di┆ 0x084d60…084d80 73 6b 20 73 65 6c 65 63 74 20 62 69 74 0d 0a 09 6c 78 69 09 68 2c 69 6f 73 09 09 3b 61 64 64 72 ┆sk select bit lxi h,ios ;addr┆ 0x084d80…084da0 65 73 73 20 74 68 65 20 73 65 63 74 6f 72 20 73 65 6c 65 63 74 20 62 79 74 65 0d 0a 09 6f 72 61 ┆ess the sector select byte ora┆ 0x084da0…084dc0 09 6d 09 09 3b 73 65 6c 65 63 74 20 70 72 6f 70 65 72 20 64 69 73 6b 20 62 61 6e 6b 0d 0a 09 6d ┆ m ;select proper disk bank m┆ 0x084dc0…084de0 6f 76 09 6d 2c 61 09 09 3b 73 65 74 20 64 69 73 6b 20 73 65 6c 65 63 74 20 62 69 74 20 6f 6e 2f ┆ov m,a ;set disk select bit on/┆ 0x084de0…084e00 6f 66 66 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 77 61 69 74 69 6f 3a 0d 0a 09 6d 76 69 09 63 2c 72 65 ┆off ret ; waitio: mvi c,re┆ 0x084e00…084e20 (35, 0, 14) 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 34 09 2d 20 64 61 74 61 20 6f 76 65 72 2f 75 6e 64 65 72 ┆function) ; 4 - data over/under┆ 0x084e20…084e40 20 66 6c 6f 77 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 ┆ flow (hardware malfunction) ; ┆ 0x084e40…084e60 35 09 2d 20 77 72 69 74 65 20 70 72 6f 74 65 63 74 20 28 74 72 65 61 74 65 64 20 61 73 20 6e 6f ┆5 - write protect (treated as no┆ 0x084e60…084e80 74 20 72 65 61 64 79 29 0d 0a 3b 09 36 09 2d 20 77 72 69 74 65 20 65 72 72 6f 72 20 28 68 61 72 ┆t ready) ; 6 - write error (har┆ 0x084e80…084ea0 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 37 09 2d 20 6e 6f 74 20 72 65 ┆dware malfunction) ; 7 - not re┆ 0x084ea0…084ec0 61 64 79 0d 0a 3b 09 28 61 63 63 75 6d 75 6c 61 74 6f 72 20 62 69 74 73 20 61 72 65 20 6e 75 6d ┆ady ; (accumulator bits are num┆ 0x084ec0…084ee0 62 65 72 65 64 20 37 20 36 20 35 20 34 20 33 20 32 20 31 20 30 29 0d 0a 3b 0d 0a 3b 09 69 74 20 ┆bered 7 6 5 4 3 2 1 0) ; ; it ┆ 0x084ee0…084f00 6d 61 79 20 62 65 20 75 73 65 66 75 6c 20 74 6f 20 66 69 6c 74 65 72 20 6f 75 74 20 74 68 65 20 ┆may be useful to filter out the ┆ 0x084f00…084f20 76 61 72 69 6f 75 73 20 63 6f 6e 64 69 74 69 6f 6e 73 2c 0d 0a 3b 09 62 75 74 20 77 65 20 77 69 ┆various conditions, ; but we wi┆ 0x084f20…084f40 6c 6c 20 67 65 74 20 61 20 70 65 72 6d 61 6e 65 6e 74 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 ┆ll get a permanent error message┆ 0x084f40…084f60 20 69 66 20 69 74 20 69 73 20 6e 6f 74 0d 0a 3b 09 72 65 63 6f 76 65 72 61 62 6c 65 2e 20 20 69 ┆ if it is not ; recoverable. i┆ 0x084f60…084f80 6e 20 61 6e 79 20 63 61 73 65 2c 20 74 68 65 20 6e 6f 74 20 72 65 61 64 79 20 63 6f 6e 64 69 74 ┆n any case, the not ready condit┆ 0x084f80…084fa0 69 6f 6e 20 69 73 0d 0a 3b 09 74 72 65 61 74 65 64 20 61 73 20 61 20 73 65 70 61 72 61 74 65 20 ┆ion is ; treated as a separate ┆ 0x084fa0…084fc0 63 6f 6e 64 69 74 69 6f 6e 20 66 6f 72 20 6c 61 74 65 72 20 69 6d 70 72 6f 76 65 6d 65 6e 74 0d ┆condition for later improvement ┆ 0x084fc0…084fe0 0a 74 72 79 63 6f 75 6e 74 3a 0d 0a 3b 09 72 65 67 69 73 74 65 72 20 63 20 63 6f 6e 74 61 69 6e ┆ trycount: ; register c contain┆ 0x084fe0…085000 73 20 72 65 74 72 79 20 63 6f 75 6e 74 2c 20 64 65 63 72 65 6d 65 6e 74 20 27 74 69 6c 20 7a 65 ┆s retry count, decrement 'til ze┆ 0x085000…085020 (35, 0, 15) 74 6f 20 6c 6f 61 64 0d 0a 6f 66 66 73 65 74 09 65 71 75 09 32 09 3b 6e 75 6d 62 65 72 20 6f 66 ┆to load offset equ 2 ;number of┆ 0x085020…085040 20 64 69 73 6b 20 74 72 61 63 6b 73 20 75 73 65 64 20 62 79 20 63 70 2f 6d 0d 0a 63 64 69 73 6b ┆ disk tracks used by cp/m cdisk┆ 0x085040…085060 09 65 71 75 09 30 30 30 34 68 09 3b 61 64 64 72 65 73 73 20 6f 66 20 6c 61 73 74 20 6c 6f 67 67 ┆ equ 0004h ;address of last logg┆ 0x085060…085080 65 64 20 64 69 73 6b 20 6f 6e 20 77 61 72 6d 20 73 74 61 72 74 0d 0a 62 75 66 66 09 65 71 75 09 ┆ed disk on warm start buff equ ┆ 0x085080…0850a0 30 30 38 30 68 09 3b 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 0d 0a 72 ┆0080h ;default buffer address r┆ 0x0850a0…0850c0 65 74 72 79 09 65 71 75 09 31 30 09 3b 6d 61 78 20 72 65 74 72 69 65 73 20 6f 6e 20 64 69 73 6b ┆etry equ 10 ;max retries on disk┆ 0x0850c0…0850e0 20 69 2f 6f 20 62 65 66 6f 72 65 20 65 72 72 6f 72 0d 0a 3b 0d 0a 3b 09 70 65 72 66 6f 72 6d 20 ┆ i/o before error ; ; perform ┆ 0x0850e0…085100 66 6f 6c 6c 6f 77 69 6e 67 20 66 75 6e 63 74 69 6f 6e 73 0d 0a 3b 09 62 6f 6f 74 09 63 6f 6c 64 ┆following functions ; boot cold┆ 0x085100…085120 20 73 74 61 72 74 0d 0a 3b 09 77 62 6f 6f 74 09 77 61 72 6d 20 73 74 61 72 74 20 28 73 61 76 65 ┆ start ; wboot warm start (save┆ 0x085120…085140 20 69 2f 6f 20 62 79 74 65 29 0d 0a 3b 09 28 62 6f 6f 74 20 61 6e 64 20 77 62 6f 6f 74 20 61 72 ┆ i/o byte) ; (boot and wboot ar┆ 0x085140…085160 65 20 74 68 65 20 73 61 6d 65 20 66 6f 72 20 6d 64 73 29 0d 0a 3b 09 63 6f 6e 73 74 09 63 6f 6e ┆e the same for mds) ; const con┆ 0x085160…085180 73 6f 6c 65 20 73 74 61 74 75 73 0d 0a 3b 09 09 72 65 67 2d 61 20 3d 20 30 30 20 69 66 20 6e 6f ┆sole status ; reg-a = 00 if no┆ 0x085180…0851a0 20 63 68 61 72 61 63 74 65 72 20 72 65 61 64 79 0d 0a 3b 09 09 72 65 67 2d 61 20 3d 20 66 66 20 ┆ character ready ; reg-a = ff ┆ 0x0851a0…0851c0 69 66 20 63 68 61 72 61 63 74 65 72 20 72 65 61 64 79 0d 0a 3b 09 63 6f 6e 69 6e 09 63 6f 6e 73 ┆if character ready ; conin cons┆ 0x0851c0…0851e0 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 28 72 65 73 75 6c 74 20 69 6e 20 72 65 67 2d ┆ole character in (result in reg-┆ 0x0851e0…085200 61 29 0d 0a 3b 09 63 6f 6e 6f 75 74 09 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 6f ┆a) ; conout console character o┆ 0x085200…085220 (35, 1, 1) 65 71 75 09 30 66 64 68 09 3b 69 6e 74 65 72 72 75 70 74 20 72 65 76 65 72 74 20 70 6f 72 74 0d ┆equ 0fdh ;interrupt revert port ┆ 0x085220…085240 0a 69 6e 74 63 09 65 71 75 09 30 66 63 68 09 3b 69 6e 74 65 72 72 75 70 74 20 6d 61 73 6b 20 70 ┆ intc equ 0fch ;interrupt mask p┆ 0x085240…085260 6f 72 74 0d 0a 69 63 6f 6e 09 65 71 75 09 30 66 33 68 09 3b 69 6e 74 65 72 72 75 70 74 20 63 6f ┆ort icon equ 0f3h ;interrupt co┆ 0x085260…085280 6e 74 72 6f 6c 20 70 6f 72 74 0d 0a 69 6e 74 65 09 65 71 75 09 30 31 31 31 24 31 31 31 30 62 09 ┆ntrol port inte equ 0111$1110b ┆ 0x085280…0852a0 3b 65 6e 61 62 6c 65 20 72 73 74 20 30 28 77 61 72 6d 20 62 6f 6f 74 29 2c 20 72 73 74 20 37 20 ┆;enable rst 0(warm boot), rst 7 ┆ 0x0852a0…0852c0 28 6d 6f 6e 69 74 6f 72 29 0d 0a 3b 0d 0a 3b 09 6d 64 73 20 6d 6f 6e 69 74 6f 72 20 65 71 75 61 ┆(monitor) ; ; mds monitor equa┆ 0x0852c0…0852e0 74 65 73 0d 0a 6d 6f 6e 38 30 09 65 71 75 09 30 66 38 30 30 68 09 3b 6d 64 73 20 6d 6f 6e 69 74 ┆tes mon80 equ 0f800h ;mds monit┆ 0x0852e0…085300 6f 72 0d 0a 72 6d 6f 6e 38 30 09 65 71 75 09 30 66 66 30 66 68 09 3b 72 65 73 74 61 72 74 20 6d ┆or rmon80 equ 0ff0fh ;restart m┆ 0x085300…085320 6f 6e 38 30 20 28 62 6f 6f 74 20 65 72 72 6f 72 29 0d 0a 63 69 09 65 71 75 09 30 66 38 30 33 68 ┆on80 (boot error) ci equ 0f803h┆ 0x085320…085340 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 72 65 67 2d 61 0d 0a 72 69 ┆ ;console character to reg-a ri┆ 0x085340…085360 09 65 71 75 09 30 66 38 30 36 68 09 3b 72 65 61 64 65 72 20 69 6e 20 74 6f 20 72 65 67 2d 61 0d ┆ equ 0f806h ;reader in to reg-a ┆ 0x085360…085380 0a 63 6f 09 65 71 75 09 30 66 38 30 39 68 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 20 66 72 6f ┆ co equ 0f809h ;console char fro┆ 0x085380…0853a0 6d 20 63 20 74 6f 20 63 6f 6e 73 6f 6c 65 20 6f 75 74 0d 0a 70 6f 09 65 71 75 09 30 66 38 30 63 ┆m c to console out po equ 0f80c┆ 0x0853a0…0853c0 68 09 3b 70 75 6e 63 68 20 63 68 61 72 20 66 72 6f 6d 20 63 20 74 6f 20 70 75 6e 63 68 20 64 65 ┆h ;punch char from c to punch de┆ 0x0853c0…0853e0 76 69 63 65 0d 0a 6c 6f 09 65 71 75 09 30 66 38 30 66 68 09 3b 6c 69 73 74 20 66 72 6f 6d 20 63 ┆vice lo equ 0f80fh ;list from c┆ 0x0853e0…085400 20 74 6f 20 6c 69 73 74 20 64 65 76 69 63 65 0d 0a 63 73 74 73 09 65 71 75 09 30 66 38 31 32 68 ┆ to list device csts equ 0f812h┆ 0x085400…085420 (35, 1, 2) 72 72 6f 72 20 63 6f 75 6e 74 0d 0a 09 6d 76 69 09 62 2c 6e 73 65 63 74 73 0d 0a 72 64 73 65 63 ┆rror count mvi b,nsects rdsec┆ 0x085420…085440 3a 09 3b 72 65 61 64 20 6e 65 78 74 20 73 65 63 74 6f 72 0d 0a 09 70 75 73 68 09 62 09 3b 73 61 ┆: ;read next sector push b ;sa┆ 0x085440…085460 76 65 20 73 65 63 74 6f 72 20 63 6f 75 6e 74 0d 0a 09 63 61 6c 6c 09 72 65 61 64 0d 0a 09 6a 6e ┆ve sector count call read jn┆ 0x085460…085480 7a 09 62 6f 6f 74 65 72 72 09 3b 72 65 74 72 79 20 69 66 20 65 72 72 6f 72 73 20 6f 63 63 75 72 ┆z booterr ;retry if errors occur┆ 0x085480…0854a0 0d 0a 09 6c 68 6c 64 09 69 6f 64 09 3b 69 6e 63 72 65 6d 65 6e 74 20 64 6d 61 20 61 64 64 72 65 ┆ lhld iod ;increment dma addre┆ 0x0854a0…0854c0 73 73 0d 0a 09 6c 78 69 09 64 2c 31 32 38 09 3b 73 65 63 74 6f 72 20 73 69 7a 65 0d 0a 09 64 61 ┆ss lxi d,128 ;sector size da┆ 0x0854c0…0854e0 64 09 64 09 3b 69 6e 63 72 65 6d 65 6e 74 65 64 20 64 6d 61 20 61 64 64 72 65 73 73 20 69 6e 20 ┆d d ;incremented dma address in ┆ 0x0854e0…085500 68 6c 0d 0a 09 6d 6f 76 09 62 2c 68 0d 0a 09 6d 6f 76 09 63 2c 6c 09 3b 72 65 61 64 79 20 66 6f ┆hl mov b,h mov c,l ;ready fo┆ 0x085500…085520 72 20 63 61 6c 6c 20 74 6f 20 73 65 74 20 64 6d 61 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d ┆r call to set dma call setdma ┆ 0x085520…085540 0a 09 6c 64 61 09 69 6f 73 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 6a 75 73 74 20 72 65 ┆ lda ios ;sector number just re┆ 0x085540…085560 61 64 0d 0a 09 63 70 69 09 32 36 09 3b 72 65 61 64 20 6c 61 73 74 20 73 65 63 74 6f 72 3f 0d 0a ┆ad cpi 26 ;read last sector? ┆ 0x085560…085580 09 6a 63 09 72 64 31 0d 0a 3b 09 6d 75 73 74 20 62 65 20 73 65 63 74 6f 72 20 32 36 2c 20 7a 65 ┆ jc rd1 ; must be sector 26, ze┆ 0x085580…0855a0 72 6f 20 61 6e 64 20 67 6f 20 74 6f 20 6e 65 78 74 20 74 72 61 63 6b 0d 0a 09 6c 64 61 09 69 6f ┆ro and go to next track lda io┆ 0x0855a0…0855c0 74 09 3b 67 65 74 20 74 72 61 63 6b 20 74 6f 20 72 65 67 69 73 74 65 72 20 61 0d 0a 09 69 6e 72 ┆t ;get track to register a inr┆ 0x0855c0…0855e0 09 61 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 0d 0a 09 63 ┆ a mov c,a ;ready for call c┆ 0x0855e0…085600 61 6c 6c 09 73 65 74 74 72 6b 0d 0a 09 78 72 61 09 61 09 3b 63 6c 65 61 72 20 73 65 63 74 6f 72 ┆all settrk xra a ;clear sector┆ 0x085600…085620 (35, 1, 3) 74 09 09 3b 61 6c 77 61 79 73 20 6e 6f 74 20 72 65 61 64 79 0d 0a 3b 0d 0a 70 75 6e 63 68 3a 09 ┆t ;always not ready ; punch: ┆ 0x085620…085640 3b 70 75 6e 63 68 20 64 65 76 69 63 65 20 6f 75 74 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 ┆;punch device out ; (exactly th┆ 0x085640…085660 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 70 6f 0d 0a 3b 0d ┆e same as mds call) jmp po ; ┆ 0x085660…085680 0a 72 65 61 64 65 72 3a 09 3b 72 65 61 64 65 72 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 74 6f ┆ reader: ;reader character in to┆ 0x085680…0856a0 20 72 65 67 2d 61 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d ┆ reg-a ; (exactly the same as m┆ 0x0856a0…0856c0 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 72 69 0d 0a 3b 0d 0a 68 6f 6d 65 3a 09 3b 6d 6f 76 ┆ds call) jmp ri ; home: ;mov┆ 0x0856c0…0856e0 65 20 74 6f 20 68 6f 6d 65 20 70 6f 73 69 74 69 6f 6e 0d 0a 3b 09 74 72 65 61 74 20 61 73 20 74 ┆e to home position ; treat as t┆ 0x0856e0…085700 72 61 63 6b 20 30 30 20 73 65 65 6b 0d 0a 09 6d 76 69 09 63 2c 30 0d 0a 09 6a 6d 70 09 73 65 74 ┆rack 00 seek mvi c,0 jmp set┆ 0x085700…085720 74 72 6b 0d 0a 3b 0d 0a 73 65 6c 64 73 6b 3a 09 3b 73 65 6c 65 63 74 20 64 69 73 6b 20 67 69 76 ┆trk ; seldsk: ;select disk giv┆ 0x085720…085740 65 6e 20 62 79 20 72 65 67 69 73 74 65 72 20 63 0d 0a 09 6c 78 69 09 68 2c 30 30 30 30 68 09 3b ┆en by register c lxi h,0000h ;┆ 0x085740…085760 72 65 74 75 72 6e 20 30 30 30 30 20 69 66 20 65 72 72 6f 72 0d 0a 09 6d 6f 76 09 61 2c 63 0d 0a ┆return 0000 if error mov a,c ┆ 0x085760…085780 09 63 70 69 09 6e 64 69 73 6b 73 09 3b 74 6f 6f 20 6c 61 72 67 65 3f 0d 0a 09 72 6e 63 09 09 3b ┆ cpi ndisks ;too large? rnc ;┆ 0x085780…0857a0 6c 65 61 76 65 20 48 4c 20 3d 20 30 30 30 30 0d 0a 3b 0d 0a 09 61 6e 69 09 31 30 62 09 3b 30 30 ┆leave HL = 0000 ; ani 10b ;00┆ 0x0857a0…0857c0 20 30 30 20 66 6f 72 20 64 72 69 76 65 20 30 2c 31 20 61 6e 64 20 31 30 20 31 30 20 66 6f 72 20 ┆ 00 for drive 0,1 and 10 10 for ┆ 0x0857c0…0857e0 64 72 69 76 65 20 32 2c 33 0d 0a 09 73 74 61 09 64 62 61 6e 6b 09 3b 74 6f 20 73 65 6c 65 63 74 ┆drive 2,3 sta dbank ;to select┆ 0x0857e0…085800 20 64 72 69 76 65 20 62 61 6e 6b 0d 0a 09 6d 6f 76 09 61 2c 63 09 3b 30 30 2c 20 30 31 2c 20 31 ┆ drive bank mov a,c ;00, 01, 1┆ 0x085800…085820 (35, 1, 4) 6f 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 66 6f 72 20 6d 61 73 6b 69 6e 67 0d 0a 09 61 6e 69 09 ┆o accumulator for masking ani ┆ 0x085820…085840 31 31 31 31 31 30 30 30 62 09 3b 72 65 6d 6f 76 65 20 70 72 65 76 69 6f 75 73 20 63 6f 6d 6d 61 ┆11111000b ;remove previous comma┆ 0x085840…085860 6e 64 0d 0a 09 6f 72 61 09 63 09 3b 73 65 74 20 74 6f 20 6e 65 77 20 63 6f 6d 6d 61 6e 64 0d 0a ┆nd ora c ;set to new command ┆ 0x085860…085880 09 6d 6f 76 09 6d 2c 61 09 3b 72 65 70 6c 61 63 65 64 20 69 6e 20 69 6f 70 62 0d 0a 3b 09 74 68 ┆ mov m,a ;replaced in iopb ; th┆ 0x085880…0858a0 65 20 6d 64 73 2d 38 30 30 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 72 65 71 75 69 72 65 73 20 64 69 ┆e mds-800 controller requires di┆ 0x0858a0…0858c0 73 6b 20 62 61 6e 6b 20 62 69 74 20 69 6e 20 73 65 63 74 6f 72 20 62 79 74 65 0d 0a 3b 09 6d 61 ┆sk bank bit in sector byte ; ma┆ 0x0858c0…0858e0 73 6b 20 74 68 65 20 62 69 74 20 66 72 6f 6d 20 74 68 65 20 63 75 72 72 65 6e 74 20 69 2f 6f 20 ┆sk the bit from the current i/o ┆ 0x0858e0…085900 66 75 6e 63 74 69 6f 6e 0d 0a 09 61 6e 69 09 30 30 31 30 30 30 30 30 62 09 3b 6d 61 73 6b 20 74 ┆function ani 00100000b ;mask t┆ 0x085900…085920 68 65 20 64 69 73 6b 20 73 65 6c 65 63 74 20 62 69 74 0d 0a 09 6c 78 69 09 68 2c 69 6f 73 09 09 ┆he disk select bit lxi h,ios ┆ 0x085920…085940 3b 61 64 64 72 65 73 73 20 74 68 65 20 73 65 63 74 6f 72 20 73 65 6c 65 63 74 20 62 79 74 65 0d ┆;address the sector select byte ┆ 0x085940…085960 0a 09 6f 72 61 09 6d 09 09 3b 73 65 6c 65 63 74 20 70 72 6f 70 65 72 20 64 69 73 6b 20 62 61 6e ┆ ora m ;select proper disk ban┆ 0x085960…085980 6b 0d 0a 09 6d 6f 76 09 6d 2c 61 09 09 3b 73 65 74 20 64 69 73 6b 20 73 65 6c 65 63 74 20 62 69 ┆k mov m,a ;set disk select bi┆ 0x085980…0859a0 74 20 6f 6e 2f 6f 66 66 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 77 61 69 74 69 6f 3a 0d 0a 09 6d 76 69 ┆t on/off ret ; waitio: mvi┆ 0x0859a0…0859c0 09 63 2c 72 65 74 72 79 09 3b 6d 61 78 20 72 65 74 72 69 65 73 20 62 65 66 6f 72 65 20 70 65 72 ┆ c,retry ;max retries before per┆ 0x0859c0…0859e0 6d 20 65 72 72 6f 72 0d 0a 72 65 77 61 69 74 3a 0d 0a 3b 09 73 74 61 72 74 20 74 68 65 20 69 2f ┆m error rewait: ; start the i/┆ 0x0859e0…085a00 6f 20 66 75 6e 63 74 69 6f 6e 20 61 6e 64 20 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 69 ┆o function and wait for completi┆ 0x085a00…085a20 (35, 1, 5) 09 3b 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 20 30 30 2f 66 66 20 74 6f 20 72 65 67 69 73 74 ┆ ;console status 00/ff to regist┆ 0x085a20…085a40 65 72 20 61 0d 0a 3b 0d 0a 3b 09 64 69 73 6b 20 70 6f 72 74 73 20 61 6e 64 20 63 6f 6d 6d 61 6e ┆er a ; ; disk ports and comman┆ 0x085a40…085a60 64 73 0d 0a 62 61 73 65 09 65 71 75 09 37 38 68 09 3b 62 61 73 65 20 6f 66 20 64 69 73 6b 20 63 ┆ds base equ 78h ;base of disk c┆ 0x085a60…085a80 6f 6d 6d 61 6e 64 20 69 6f 20 70 6f 72 74 73 0d 0a 64 73 74 61 74 09 65 71 75 09 62 61 73 65 09 ┆ommand io ports dstat equ base ┆ 0x085a80…085aa0 3b 64 69 73 6b 20 73 74 61 74 75 73 20 28 69 6e 70 75 74 29 0d 0a 72 74 79 70 65 09 65 71 75 09 ┆;disk status (input) rtype equ ┆ 0x085aa0…085ac0 62 61 73 65 2b 31 09 3b 72 65 73 75 6c 74 20 74 79 70 65 20 28 69 6e 70 75 74 29 0d 0a 72 62 79 ┆base+1 ;result type (input) rby┆ 0x085ac0…085ae0 74 65 09 65 71 75 09 62 61 73 65 2b 33 09 3b 72 65 73 75 6c 74 20 62 79 74 65 20 28 69 6e 70 75 ┆te equ base+3 ;result byte (inpu┆ 0x085ae0…085b00 74 29 0d 0a 3b 0d 0a 69 6c 6f 77 09 65 71 75 09 62 61 73 65 2b 31 09 3b 69 6f 70 62 20 6c 6f 77 ┆t) ; ilow equ base+1 ;iopb low┆ 0x085b00…085b20 20 61 64 64 72 65 73 73 20 28 6f 75 74 70 75 74 29 0d 0a 69 68 69 67 68 09 65 71 75 09 62 61 73 ┆ address (output) ihigh equ bas┆ 0x085b20…085b40 65 2b 32 09 3b 69 6f 70 62 20 68 69 67 68 20 61 64 64 72 65 73 73 20 28 6f 75 74 70 75 74 29 0d ┆e+2 ;iopb high address (output) ┆ 0x085b40…085b60 0a 3b 0d 0a 72 65 61 64 66 09 65 71 75 09 34 68 09 3b 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d ┆ ; readf equ 4h ;read function ┆ 0x085b60…085b80 0a 77 72 69 74 66 09 65 71 75 09 36 68 09 3b 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 72 ┆ writf equ 6h ;write function r┆ 0x085b80…085ba0 65 63 61 6c 09 65 71 75 09 33 68 09 3b 72 65 63 61 6c 69 62 72 61 74 65 20 64 72 69 76 65 0d 0a ┆ecal equ 3h ;recalibrate drive ┆ 0x085ba0…085bc0 69 6f 72 64 79 09 65 71 75 09 34 68 09 3b 69 2f 6f 20 66 69 6e 69 73 68 65 64 20 6d 61 73 6b 0d ┆iordy equ 4h ;i/o finished mask ┆ 0x085bc0…085be0 0a 63 72 09 65 71 75 09 30 64 68 09 3b 63 61 72 72 69 61 67 65 20 72 65 74 75 72 6e 0d 0a 6c 66 ┆ cr equ 0dh ;carriage return lf┆ 0x085be0…085c00 09 65 71 75 09 30 61 68 09 3b 6c 69 6e 65 20 66 65 65 64 0d 0a 3b 0d 0a 73 69 67 6e 6f 6e 3a 09 ┆ equ 0ah ;line feed ; signon: ┆ 0x085c00…085c20 (35, 1, 6) 20 6e 75 6d 62 65 72 0d 0a 72 64 31 3a 09 69 6e 72 09 61 09 3b 74 6f 20 6e 65 78 74 20 73 65 63 ┆ number rd1: inr a ;to next sec┆ 0x085c20…085c40 74 6f 72 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 0d 0a 09 ┆tor mov c,a ;ready for call ┆ 0x085c40…085c60 63 61 6c 6c 09 73 65 74 73 65 63 0d 0a 09 70 6f 70 09 62 09 3b 72 65 63 61 6c 6c 20 73 65 63 74 ┆call setsec pop b ;recall sect┆ 0x085c60…085c80 6f 72 20 63 6f 75 6e 74 0d 0a 09 64 63 72 09 62 09 3b 64 6f 6e 65 3f 0d 0a 09 6a 6e 7a 09 72 64 ┆or count dcr b ;done? jnz rd┆ 0x085c80…085ca0 73 65 63 0d 0a 3b 0d 0a 3b 09 64 6f 6e 65 20 77 69 74 68 20 74 68 65 20 6c 6f 61 64 2c 20 72 65 ┆sec ; ; done with the load, re┆ 0x085ca0…085cc0 73 65 74 20 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 0d 0a 67 6f 63 70 ┆set default buffer address gocp┆ 0x085cc0…085ce0 6d 3a 09 3b 28 65 6e 74 65 72 20 68 65 72 65 20 66 72 6f 6d 20 63 6f 6c 64 20 73 74 61 72 74 20 ┆m: ;(enter here from cold start ┆ 0x085ce0…085d00 62 6f 6f 74 29 0d 0a 3b 09 65 6e 61 62 6c 65 20 72 73 74 30 20 61 6e 64 20 72 73 74 37 0d 0a 09 ┆boot) ; enable rst0 and rst7 ┆ 0x085d00…085d20 64 69 0d 0a 09 6d 76 69 09 61 2c 31 32 68 09 3b 69 6e 69 74 69 61 6c 69 7a 65 20 63 6f 6d 6d 61 ┆di mvi a,12h ;initialize comma┆ 0x085d20…085d40 6e 64 0d 0a 09 6f 75 74 09 72 65 76 72 74 0d 0a 09 78 72 61 09 61 0d 0a 09 6f 75 74 09 69 6e 74 ┆nd out revrt xra a out int┆ 0x085d40…085d60 63 09 3b 63 6c 65 61 72 65 64 0d 0a 09 6d 76 69 09 61 2c 69 6e 74 65 09 3b 72 73 74 30 20 61 6e ┆c ;cleared mvi a,inte ;rst0 an┆ 0x085d60…085d80 64 20 72 73 74 37 20 62 69 74 73 20 6f 6e 0d 0a 09 6f 75 74 09 69 6e 74 63 0d 0a 09 78 72 61 09 ┆d rst7 bits on out intc xra ┆ 0x085d80…085da0 61 0d 0a 09 6f 75 74 09 69 63 6f 6e 09 3b 69 6e 74 65 72 72 75 70 74 20 63 6f 6e 74 72 6f 6c 0d ┆a out icon ;interrupt control ┆ 0x085da0…085dc0 0a 3b 0d 0a 3b 09 73 65 74 20 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 ┆ ; ; set default buffer address┆ 0x085dc0…085de0 20 74 6f 20 38 30 68 0d 0a 09 6c 78 69 09 62 2c 62 75 66 66 0d 0a 09 63 61 6c 6c 09 73 65 74 64 ┆ to 80h lxi b,buff call setd┆ 0x085de0…085e00 6d 61 0d 0a 3b 0d 0a 3b 09 72 65 73 65 74 20 6d 6f 6e 69 74 6f 72 20 65 6e 74 72 79 20 70 6f 69 ┆ma ; ; reset monitor entry poi┆ 0x085e00…085e20 (35, 1, 7) 30 2c 20 31 31 0d 0a 09 61 6e 69 09 31 62 09 3b 6d 64 73 20 68 61 73 20 30 2c 31 20 61 74 20 37 ┆0, 11 ani 1b ;mds has 0,1 at 7┆ 0x085e20…085e40 38 2c 20 32 2c 33 20 61 74 20 38 38 0d 0a 09 6f 72 61 09 61 09 3b 72 65 73 75 6c 74 20 30 30 3f ┆8, 2,3 at 88 ora a ;result 00?┆ 0x085e40…085e60 0d 0a 09 6a 7a 09 73 65 74 64 72 69 76 65 0d 0a 09 6d 76 69 09 61 2c 30 30 31 31 30 30 30 30 62 ┆ jz setdrive mvi a,00110000b┆ 0x085e60…085e80 09 3b 73 65 6c 65 63 74 73 20 64 72 69 76 65 20 31 20 69 6e 20 62 61 6e 6b 0d 0a 73 65 74 64 72 ┆ ;selects drive 1 in bank setdr┆ 0x085e80…085ea0 69 76 65 3a 0d 0a 09 6d 6f 76 09 62 2c 61 09 3b 73 61 76 65 20 74 68 65 20 66 75 6e 63 74 69 6f ┆ive: mov b,a ;save the functio┆ 0x085ea0…085ec0 6e 0d 0a 09 6c 78 69 09 68 2c 69 6f 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6d 6f 76 ┆n lxi h,iof ;io function mov┆ 0x085ec0…085ee0 09 61 2c 6d 0d 0a 09 61 6e 69 09 31 31 30 30 31 31 31 31 62 09 3b 6d 61 73 6b 20 6f 75 74 20 64 ┆ a,m ani 11001111b ;mask out d┆ 0x085ee0…085f00 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6f 72 61 09 62 09 3b 6d 61 73 6b 20 69 6e 20 6e 65 77 20 ┆isk number ora b ;mask in new ┆ 0x085f00…085f20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6d 6f 76 09 6d 2c 61 09 3b 73 61 76 65 20 69 74 20 69 ┆disk number mov m,a ;save it i┆ 0x085f20…085f40 6e 20 69 6f 70 62 0d 0a 09 6d 6f 76 09 6c 2c 63 0d 0a 09 6d 76 69 09 68 2c 30 09 3b 48 4c 3d 64 ┆n iopb mov l,c mvi h,0 ;HL=d┆ 0x085f40…085f60 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 64 61 64 09 68 09 3b 2a 32 0d 0a 09 64 61 64 09 68 09 3b ┆isk number dad h ;*2 dad h ;┆ 0x085f60…085f80 2a 34 0d 0a 09 64 61 64 09 68 09 3b 2a 38 0d 0a 09 64 61 64 09 68 09 3b 2a 31 36 0d 0a 09 6c 78 ┆*4 dad h ;*8 dad h ;*16 lx┆ 0x085f80…085fa0 69 09 64 2c 64 70 62 61 73 65 0d 0a 09 64 61 64 09 64 09 3b 48 4c 3d 64 69 73 6b 20 68 65 61 64 ┆i d,dpbase dad d ;HL=disk head┆ 0x085fa0…085fc0 65 72 20 74 61 62 6c 65 20 61 64 64 72 65 73 73 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 73 65 ┆er table address ret ; ; se┆ 0x085fc0…085fe0 74 74 72 6b 3a 09 3b 73 65 74 20 74 72 61 63 6b 20 61 64 64 72 65 73 73 20 67 69 76 65 6e 20 62 ┆ttrk: ;set track address given b┆ 0x085fe0…086000 79 20 63 0d 0a 09 6c 78 69 09 68 2c 69 6f 74 0d 0a 09 6d 6f 76 09 6d 2c 63 0d 0a 09 72 65 74 0d ┆y c lxi h,iot mov m,c ret ┆ 0x086000…086020 (35, 1, 8) 6f 6e 0d 0a 09 63 61 6c 6c 09 69 6e 74 79 70 65 09 3b 69 6e 20 72 74 79 70 65 0d 0a 09 63 61 6c ┆on call intype ;in rtype cal┆ 0x086020…086040 6c 09 69 6e 62 79 74 65 09 3b 63 6c 65 61 72 73 20 74 68 65 20 63 6f 6e 74 72 6f 6c 6c 65 72 0d ┆l inbyte ;clears the controller ┆ 0x086040…086060 0a 3b 0d 0a 09 6c 64 61 09 64 62 61 6e 6b 09 09 3b 73 65 74 20 62 61 6e 6b 20 66 6c 61 67 73 0d ┆ ; lda dbank ;set bank flags ┆ 0x086060…086080 0a 09 6f 72 61 09 61 09 09 3b 7a 65 72 6f 20 69 66 20 64 72 69 76 65 20 30 2c 31 20 61 6e 64 20 ┆ ora a ;zero if drive 0,1 and ┆ 0x086080…0860a0 6e 7a 20 69 66 20 32 2c 33 0d 0a 09 6d 76 69 09 61 2c 69 6f 70 62 20 61 6e 64 20 30 66 66 68 09 ┆nz if 2,3 mvi a,iopb and 0ffh ┆ 0x0860a0…0860c0 3b 6c 6f 77 20 61 64 64 72 65 73 73 20 66 6f 72 20 69 6f 70 62 0d 0a 09 6d 76 69 09 62 2c 69 6f ┆;low address for iopb mvi b,io┆ 0x0860c0…0860e0 70 62 20 73 68 72 20 38 09 3b 68 69 67 68 20 61 64 64 72 65 73 73 20 66 6f 72 20 69 6f 70 62 0d ┆pb shr 8 ;high address for iopb ┆ 0x0860e0…086100 0a 09 6a 6e 7a 09 69 6f 64 72 31 09 3b 64 72 69 76 65 20 62 61 6e 6b 20 31 3f 0d 0a 09 6f 75 74 ┆ jnz iodr1 ;drive bank 1? out┆ 0x086100…086120 09 69 6c 6f 77 09 09 3b 6c 6f 77 20 61 64 64 72 65 73 73 20 74 6f 20 63 6f 6e 74 72 6f 6c 6c 65 ┆ ilow ;low address to controlle┆ 0x086120…086140 72 0d 0a 09 6d 6f 76 09 61 2c 62 0d 0a 09 6f 75 74 09 69 68 69 67 68 09 3b 68 69 67 68 20 61 64 ┆r mov a,b out ihigh ;high ad┆ 0x086140…086160 64 72 65 73 73 0d 0a 09 6a 6d 70 09 77 61 69 74 30 09 09 3b 74 6f 20 77 61 69 74 20 66 6f 72 20 ┆dress jmp wait0 ;to wait for ┆ 0x086160…086180 63 6f 6d 70 6c 65 74 65 0d 0a 3b 0d 0a 69 6f 64 72 31 3a 09 3b 64 72 69 76 65 20 62 61 6e 6b 20 ┆complete ; iodr1: ;drive bank ┆ 0x086180…0861a0 31 0d 0a 09 6f 75 74 09 69 6c 6f 77 2b 31 30 68 09 3b 38 38 20 66 6f 72 20 64 72 69 76 65 20 62 ┆1 out ilow+10h ;88 for drive b┆ 0x0861a0…0861c0 61 6e 6b 20 31 30 0d 0a 09 6d 6f 76 09 61 2c 62 0d 0a 09 6f 75 74 09 69 68 69 67 68 2b 31 30 68 ┆ank 10 mov a,b out ihigh+10h┆ 0x0861c0…0861e0 0d 0a 3b 0d 0a 77 61 69 74 30 3a 09 63 61 6c 6c 09 69 6e 73 74 61 74 09 09 3b 77 61 69 74 20 66 ┆ ; wait0: call instat ;wait f┆ 0x0861e0…086200 6f 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 0d 0a 09 61 6e 69 09 69 6f 72 64 79 09 09 3b 72 65 61 64 ┆or completion ani iordy ;read┆ 0x086200…086220 (35, 1, 9) 3b 73 69 67 6e 6f 6e 20 6d 65 73 73 61 67 65 3a 20 78 78 6b 20 63 70 2f 6d 20 76 65 72 73 20 79 ┆;signon message: xxk cp/m vers y┆ 0x086220…086240 2e 79 0d 0a 09 64 62 09 63 72 2c 6c 66 2c 6c 66 0d 0a 09 69 66 09 74 65 73 74 0d 0a 09 64 62 09 ┆.y db cr,lf,lf if test db ┆ 0x086240…086260 27 33 32 27 09 3b 33 32 6b 20 65 78 61 6d 70 6c 65 20 62 69 6f 73 0d 0a 09 65 6e 64 69 66 0d 0a ┆'32' ;32k example bios endif ┆ 0x086260…086280 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 09 64 62 09 27 30 30 27 09 3b 6d 65 6d 6f 72 79 20 73 ┆ if not test db '00' ;memory s┆ 0x086280…0862a0 69 7a 65 20 66 69 6c 6c 65 64 20 62 79 20 72 65 6c 6f 63 61 74 6f 72 0d 0a 09 65 6e 64 69 66 0d ┆ize filled by relocator endif ┆ 0x0862a0…0862c0 0a 09 64 62 09 27 6b 20 43 50 2f 4d 20 76 65 72 73 20 27 0d 0a 09 64 62 09 76 65 72 73 2f 31 30 ┆ db 'k CP/M vers ' db vers/10┆ 0x0862c0…0862e0 2b 27 30 27 2c 27 2e 27 2c 76 65 72 73 20 6d 6f 64 20 31 30 2b 27 30 27 0d 0a 09 64 62 09 63 72 ┆+'0','.',vers mod 10+'0' db cr┆ 0x0862e0…086300 2c 6c 66 2c 30 0d 0a 3b 0d 0a 62 6f 6f 74 3a 09 3b 70 72 69 6e 74 20 73 69 67 6e 6f 6e 20 6d 65 ┆,lf,0 ; boot: ;print signon me┆ 0x086300…086320 73 73 61 67 65 20 61 6e 64 20 67 6f 20 74 6f 20 63 63 70 0d 0a 3b 09 28 6e 6f 74 65 3a 20 6d 64 ┆ssage and go to ccp ; (note: md┆ 0x086320…086340 73 20 62 6f 6f 74 20 69 6e 69 74 69 61 6c 69 7a 65 64 20 69 6f 62 79 74 65 20 61 74 20 30 30 30 ┆s boot initialized iobyte at 000┆ 0x086340…086360 33 68 29 0d 0a 09 6c 78 69 09 73 70 2c 62 75 66 66 2b 38 30 68 0d 0a 09 6c 78 69 09 68 2c 73 69 ┆3h) lxi sp,buff+80h lxi h,si┆ 0x086360…086380 67 6e 6f 6e 0d 0a 09 63 61 6c 6c 09 70 72 6d 73 67 09 3b 70 72 69 6e 74 20 6d 65 73 73 61 67 65 ┆gnon call prmsg ;print message┆ 0x086380…0863a0 0d 0a 09 78 72 61 09 61 09 3b 63 6c 65 61 72 20 61 63 63 75 6d 75 6c 61 74 6f 72 0d 0a 09 73 74 ┆ xra a ;clear accumulator st┆ 0x0863a0…0863c0 61 09 63 64 69 73 6b 09 3b 73 65 74 20 69 6e 69 74 69 61 6c 6c 79 20 74 6f 20 64 69 73 6b 20 61 ┆a cdisk ;set initially to disk a┆ 0x0863c0…0863e0 0d 0a 09 6a 6d 70 09 67 6f 63 70 6d 09 3b 67 6f 20 74 6f 20 63 70 2f 6d 0d 0a 3b 0d 0a 3b 0d 0a ┆ jmp gocpm ;go to cp/m ; ; ┆ 0x0863e0…086400 77 62 6f 6f 74 3a 3b 09 6c 6f 61 64 65 72 20 6f 6e 20 74 72 61 63 6b 20 30 2c 20 73 65 63 74 6f ┆wboot:; loader on track 0, secto┆ 0x086400…086420 (35, 1, 10) 6e 74 73 0d 0a 09 6d 76 69 09 61 2c 6a 6d 70 0d 0a 09 73 74 61 09 30 0d 0a 09 6c 78 69 09 68 2c ┆nts mvi a,jmp sta 0 lxi h,┆ 0x086420…086440 77 62 6f 6f 74 65 0d 0a 09 73 68 6c 64 09 31 09 3b 6a 6d 70 20 77 62 6f 6f 74 20 61 74 20 6c 6f ┆wboote shld 1 ;jmp wboot at lo┆ 0x086440…086460 63 61 74 69 6f 6e 20 30 30 0d 0a 09 73 74 61 09 35 0d 0a 09 6c 78 69 09 68 2c 62 64 6f 73 0d 0a ┆cation 00 sta 5 lxi h,bdos ┆ 0x086460…086480 09 73 68 6c 64 09 36 09 3b 6a 6d 70 20 62 64 6f 73 20 61 74 20 6c 6f 63 61 74 69 6f 6e 20 35 0d ┆ shld 6 ;jmp bdos at location 5 ┆ 0x086480…0864a0 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 09 73 74 61 09 37 2a 38 09 3b 6a 6d 70 20 74 6f 20 ┆ if not test sta 7*8 ;jmp to ┆ 0x0864a0…0864c0 6d 6f 6e 38 30 20 28 6d 61 79 20 68 61 76 65 20 62 65 65 6e 20 63 68 61 6e 67 65 64 20 62 79 20 ┆mon80 (may have been changed by ┆ 0x0864c0…0864e0 64 64 74 29 0d 0a 09 6c 78 69 09 68 2c 6d 6f 6e 38 30 0d 0a 09 73 68 6c 64 09 37 2a 38 2b 31 0d ┆ddt) lxi h,mon80 shld 7*8+1 ┆ 0x0864e0…086500 0a 09 65 6e 64 69 66 0d 0a 3b 09 6c 65 61 76 65 20 69 6f 62 79 74 65 20 73 65 74 0d 0a 3b 09 70 ┆ endif ; leave iobyte set ; p┆ 0x086500…086520 72 65 76 69 6f 75 73 6c 79 20 73 65 6c 65 63 74 65 64 20 64 69 73 6b 20 77 61 73 20 62 2c 20 73 ┆reviously selected disk was b, s┆ 0x086520…086540 65 6e 64 20 70 61 72 61 6d 65 74 65 72 20 74 6f 20 63 70 6d 0d 0a 09 6c 64 61 09 63 64 69 73 6b ┆end parameter to cpm lda cdisk┆ 0x086540…086560 09 3b 6c 61 73 74 20 6c 6f 67 67 65 64 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6d 6f 76 09 ┆ ;last logged disk number mov ┆ 0x086560…086580 63 2c 61 09 3b 73 65 6e 64 20 74 6f 20 63 63 70 20 74 6f 20 6c 6f 67 20 69 74 20 69 6e 0d 0a 09 ┆c,a ;send to ccp to log it in ┆ 0x086580…0865a0 65 69 0d 0a 09 6a 6d 70 09 63 70 6d 62 0d 0a 3b 0d 0a 3b 09 65 72 72 6f 72 20 63 6f 6e 64 69 74 ┆ei jmp cpmb ; ; error condit┆ 0x0865a0…0865c0 69 6f 6e 20 6f 63 63 75 72 72 65 64 2c 20 70 72 69 6e 74 20 6d 65 73 73 61 67 65 20 61 6e 64 20 ┆ion occurred, print message and ┆ 0x0865c0…0865e0 72 65 74 72 79 0d 0a 62 6f 6f 74 65 72 72 3a 0d 0a 09 70 6f 70 09 62 09 3b 72 65 63 61 6c 6c 20 ┆retry booterr: pop b ;recall ┆ 0x0865e0…086600 63 6f 75 6e 74 73 0d 0a 09 64 63 72 09 63 0d 0a 09 6a 7a 09 62 6f 6f 74 65 72 30 0d 0a 3b 09 74 ┆counts dcr c jz booter0 ; t┆ 0x086600…086620 (35, 1, 11) 0a 3b 0d 0a 73 65 74 73 65 63 3a 09 3b 73 65 74 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 67 ┆ ; setsec: ;set sector number g┆ 0x086620…086640 69 76 65 6e 20 62 79 20 63 0d 0a 09 6c 78 69 09 68 2c 69 6f 73 0d 0a 09 6d 6f 76 09 6d 2c 63 0d ┆iven by c lxi h,ios mov m,c ┆ 0x086640…086660 0a 09 72 65 74 0d 0a 73 65 63 74 72 61 6e 3a 0d 0a 09 09 3b 74 72 61 6e 73 6c 61 74 65 20 73 65 ┆ ret sectran: ;translate se┆ 0x086660…086680 63 74 6f 72 20 62 63 20 75 73 69 6e 67 20 74 61 62 6c 65 20 61 74 20 64 65 0d 0a 09 6d 76 69 09 ┆ctor bc using table at de mvi ┆ 0x086680…0866a0 62 2c 30 09 3b 64 6f 75 62 6c 65 20 70 72 65 63 69 73 69 6f 6e 20 73 65 63 74 6f 72 20 6e 75 6d ┆b,0 ;double precision sector num┆ 0x0866a0…0866c0 62 65 72 20 69 6e 20 42 43 0d 0a 09 78 63 68 67 09 09 3b 74 72 61 6e 73 6c 61 74 65 20 74 61 62 ┆ber in BC xchg ;translate tab┆ 0x0866c0…0866e0 6c 65 20 61 64 64 72 65 73 73 20 74 6f 20 48 4c 0d 0a 09 64 61 64 09 62 09 3b 74 72 61 6e 73 6c ┆le address to HL dad b ;transl┆ 0x0866e0…086700 61 74 65 28 73 65 63 74 6f 72 29 20 61 64 64 72 65 73 73 0d 0a 09 6d 6f 76 09 61 2c 6d 09 3b 74 ┆ate(sector) address mov a,m ;t┆ 0x086700…086720 72 61 6e 73 6c 61 74 65 64 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 74 6f 20 41 0d 0a 09 73 ┆ranslated sector number to A s┆ 0x086720…086740 74 61 09 69 6f 73 0d 0a 09 6d 6f 76 09 6c 2c 61 09 3b 72 65 74 75 72 6e 20 73 65 63 74 6f 72 20 ┆ta ios mov l,a ;return sector ┆ 0x086740…086760 6e 75 6d 62 65 72 20 69 6e 20 4c 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 73 65 74 64 6d 61 3a 09 3b 73 ┆number in L ret ; setdma: ;s┆ 0x086760…086780 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 67 69 76 65 6e 20 62 79 20 72 65 67 73 20 62 2c 63 ┆et dma address given by regs b,c┆ 0x086780…0867a0 0d 0a 09 6d 6f 76 09 6c 2c 63 0d 0a 09 6d 6f 76 09 68 2c 62 0d 0a 09 73 68 6c 64 09 69 6f 64 0d ┆ mov l,c mov h,b shld iod ┆ 0x0867a0…0867c0 0a 09 72 65 74 0d 0a 3b 0d 0a 72 65 61 64 3a 09 3b 72 65 61 64 20 6e 65 78 74 20 64 69 73 6b 20 ┆ ret ; read: ;read next disk ┆ 0x0867c0…0867e0 72 65 63 6f 72 64 20 28 61 73 73 75 6d 69 6e 67 20 64 69 73 6b 2f 74 72 6b 2f 73 65 63 2f 64 6d ┆record (assuming disk/trk/sec/dm┆ 0x0867e0…086800 61 20 73 65 74 29 0d 0a 09 6d 76 69 09 63 2c 72 65 61 64 66 09 3b 73 65 74 20 74 6f 20 72 65 61 ┆a set) mvi c,readf ;set to rea┆ 0x086800…086820 (35, 1, 12) 79 3f 0d 0a 09 6a 7a 09 77 61 69 74 30 0d 0a 3b 0d 0a 3b 09 63 68 65 63 6b 20 69 6f 20 63 6f 6d ┆y? jz wait0 ; ; check io com┆ 0x086820…086840 70 6c 65 74 69 6f 6e 20 6f 6b 0d 0a 09 63 61 6c 6c 09 69 6e 74 79 70 65 09 09 3b 6d 75 73 74 20 ┆pletion ok call intype ;must ┆ 0x086840…086860 62 65 20 69 6f 20 63 6f 6d 70 6c 65 74 65 20 28 30 30 29 20 75 6e 6c 69 6e 6b 65 64 0d 0a 3b 09 ┆be io complete (00) unlinked ; ┆ 0x086860…086880 30 30 20 75 6e 6c 69 6e 6b 65 64 20 69 2f 6f 20 63 6f 6d 70 6c 65 74 65 2c 20 20 20 20 30 31 20 ┆00 unlinked i/o complete, 01 ┆ 0x086880…0868a0 6c 69 6e 6b 65 64 20 69 2f 6f 20 63 6f 6d 70 6c 65 74 65 20 28 6e 6f 74 20 75 73 65 64 29 0d 0a ┆linked i/o complete (not used) ┆ 0x0868a0…0868c0 3b 09 31 30 20 64 69 73 6b 20 73 74 61 74 75 73 20 63 68 61 6e 67 65 64 20 20 20 20 20 20 20 31 ┆; 10 disk status changed 1┆ 0x0868c0…0868e0 31 20 28 6e 6f 74 20 75 73 65 64 29 0d 0a 09 63 70 69 09 31 30 62 09 09 3b 72 65 61 64 79 20 73 ┆1 (not used) cpi 10b ;ready s┆ 0x0868e0…086900 74 61 74 75 73 20 63 68 61 6e 67 65 3f 0d 0a 09 6a 7a 09 77 72 65 61 64 79 0d 0a 3b 0d 0a 3b 09 ┆tatus change? jz wready ; ; ┆ 0x086900…086920 6d 75 73 74 20 62 65 20 30 30 20 69 6e 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 0d 0a 09 ┆must be 00 in the accumulator ┆ 0x086920…086940 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 77 65 72 72 6f 72 09 09 3b 73 6f 6d 65 20 6f 74 68 65 72 20 ┆ora a jnz werror ;some other ┆ 0x086940…086960 63 6f 6e 64 69 74 69 6f 6e 2c 20 72 65 74 72 79 0d 0a 3b 0d 0a 3b 09 63 68 65 63 6b 20 69 2f 6f ┆condition, retry ; ; check i/o┆ 0x086960…086980 20 65 72 72 6f 72 20 62 69 74 73 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 0d 0a 09 72 61 6c 0d ┆ error bits call inbyte ral ┆ 0x086980…0869a0 0a 09 6a 63 09 77 72 65 61 64 79 09 09 3b 75 6e 69 74 20 6e 6f 74 20 72 65 61 64 79 0d 0a 09 72 ┆ jc wready ;unit not ready r┆ 0x0869a0…0869c0 61 72 0d 0a 09 61 6e 69 09 31 31 31 31 31 31 31 30 62 09 3b 61 6e 79 20 6f 74 68 65 72 20 65 72 ┆ar ani 11111110b ;any other er┆ 0x0869c0…0869e0 72 6f 72 73 3f 20 20 28 64 65 6c 65 74 65 64 20 64 61 74 61 20 6f 6b 29 0d 0a 09 6a 6e 7a 09 77 ┆rors? (deleted data ok) jnz w┆ 0x0869e0…086a00 65 72 72 6f 72 0d 0a 3b 0d 0a 3b 09 72 65 61 64 20 6f 72 20 77 72 69 74 65 20 69 73 20 6f 6b 2c ┆error ; ; read or write is ok,┆ 0x086a00…086a20 (35, 1, 13) 72 20 31 2c 20 77 68 69 63 68 20 77 69 6c 6c 20 62 65 20 73 6b 69 70 70 65 64 20 66 6f 72 20 77 ┆r 1, which will be skipped for w┆ 0x086a20…086a40 61 72 6d 20 0d 0a 3b 09 72 65 61 64 20 63 70 2f 6d 20 66 72 6f 6d 20 64 69 73 6b 20 2d 20 61 73 ┆arm ; read cp/m from disk - as┆ 0x086a40…086a60 73 75 6d 69 6e 67 20 74 68 65 72 65 20 69 73 20 61 20 31 32 38 20 62 79 74 65 20 63 6f 6c 64 20 ┆suming there is a 128 byte cold ┆ 0x086a60…086a80 73 74 61 72 74 0d 0a 3b 09 73 74 61 72 74 2e 0d 0a 3b 0d 0a 09 6c 78 69 09 73 70 2c 62 75 66 66 ┆start ; start. ; lxi sp,buff┆ 0x086a80…086aa0 09 3b 75 73 69 6e 67 20 64 6d 61 20 2d 20 74 68 75 73 20 38 30 20 74 68 72 75 20 66 66 20 61 76 ┆ ;using dma - thus 80 thru ff av┆ 0x086aa0…086ac0 61 69 6c 61 62 6c 65 20 66 6f 72 20 73 74 61 63 6b 0d 0a 3b 0d 0a 09 6d 76 69 09 63 2c 72 65 74 ┆ailable for stack ; mvi c,ret┆ 0x086ac0…086ae0 72 79 09 3b 6d 61 78 20 72 65 74 72 69 65 73 0d 0a 09 70 75 73 68 09 62 0d 0a 77 62 6f 6f 74 30 ┆ry ;max retries push b wboot0┆ 0x086ae0…086b00 3a 09 3b 65 6e 74 65 72 20 68 65 72 65 20 6f 6e 20 65 72 72 6f 72 20 72 65 74 72 69 65 73 0d 0a ┆: ;enter here on error retries ┆ 0x086b00…086b20 09 6c 78 69 09 62 2c 63 70 6d 62 09 3b 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 74 6f 20 ┆ lxi b,cpmb ;set dma address to ┆ 0x086b20…086b40 73 74 61 72 74 20 6f 66 20 64 69 73 6b 20 73 79 73 74 65 6d 0d 0a 09 63 61 6c 6c 09 73 65 74 64 ┆start of disk system call setd┆ 0x086b40…086b60 6d 61 0d 0a 09 6d 76 69 09 63 2c 30 09 3b 62 6f 6f 74 20 66 72 6f 6d 20 64 72 69 76 65 20 30 0d ┆ma mvi c,0 ;boot from drive 0 ┆ 0x086b60…086b80 0a 09 63 61 6c 6c 09 73 65 6c 64 73 6b 0d 0a 09 6d 76 69 09 63 2c 30 0d 0a 09 63 61 6c 6c 09 73 ┆ call seldsk mvi c,0 call s┆ 0x086b80…086ba0 65 74 74 72 6b 09 3b 73 74 61 72 74 20 77 69 74 68 20 74 72 61 63 6b 20 30 0d 0a 09 6d 76 69 09 ┆ettrk ;start with track 0 mvi ┆ 0x086ba0…086bc0 63 2c 32 09 3b 73 74 61 72 74 20 72 65 61 64 69 6e 67 20 73 65 63 74 6f 72 20 32 0d 0a 09 63 61 ┆c,2 ;start reading sector 2 ca┆ 0x086bc0…086be0 6c 6c 09 73 65 74 73 65 63 0d 0a 3b 0d 0a 3b 09 72 65 61 64 20 73 65 63 74 6f 72 73 2c 20 63 6f ┆ll setsec ; ; read sectors, co┆ 0x086be0…086c00 75 6e 74 20 6e 73 65 63 74 73 20 74 6f 20 7a 65 72 6f 0d 0a 09 70 6f 70 09 62 09 3b 31 30 2d 65 ┆unt nsects to zero pop b ;10-e┆ 0x086c00…086c20 (35, 1, 14) 72 79 20 61 67 61 69 6e 0d 0a 09 70 75 73 68 09 62 0d 0a 09 6a 6d 70 09 77 62 6f 6f 74 30 0d 0a ┆ry again push b jmp wboot0 ┆ 0x086c20…086c40 3b 0d 0a 62 6f 6f 74 65 72 30 3a 0d 0a 3b 09 6f 74 68 65 72 77 69 73 65 20 74 6f 6f 20 6d 61 6e ┆; booter0: ; otherwise too man┆ 0x086c40…086c60 79 20 72 65 74 72 69 65 73 0d 0a 09 6c 78 69 09 68 2c 62 6f 6f 74 6d 73 67 0d 0a 09 63 61 6c 6c ┆y retries lxi h,bootmsg call┆ 0x086c60…086c80 09 70 72 6d 73 67 0d 0a 09 6a 6d 70 09 72 6d 6f 6e 38 30 09 3b 6d 64 73 20 68 61 72 64 77 61 72 ┆ prmsg jmp rmon80 ;mds hardwar┆ 0x086c80…086ca0 65 20 6d 6f 6e 69 74 6f 72 0d 0a 3b 0d 0a 62 6f 6f 74 6d 73 67 3a 0d 0a 09 64 62 09 27 3f 62 6f ┆e monitor ; bootmsg: db '?bo┆ 0x086ca0…086cc0 6f 74 27 2c 30 0d 0a 3b 0d 0a 3b 0d 0a 63 6f 6e 73 74 3a 09 3b 63 6f 6e 73 6f 6c 65 20 73 74 61 ┆ot',0 ; ; const: ;console sta┆ 0x086cc0…086ce0 74 75 73 20 74 6f 20 72 65 67 2d 61 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d ┆tus to reg-a ; (exactly the sam┆ 0x086ce0…086d00 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 63 73 74 73 0d 0a 3b 0d 0a 63 6f ┆e as mds call) jmp csts ; co┆ 0x086d00…086d20 6e 69 6e 3a 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 72 65 67 2d 61 ┆nin: ;console character to reg-a┆ 0x086d20…086d40 0d 0a 09 63 61 6c 6c 09 63 69 0d 0a 09 61 6e 69 09 37 66 68 09 3b 72 65 6d 6f 76 65 20 70 61 72 ┆ call ci ani 7fh ;remove par┆ 0x086d40…086d60 69 74 79 20 62 69 74 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 63 6f 6e 6f 75 74 3a 09 3b 63 6f 6e 73 6f ┆ity bit ret ; conout: ;conso┆ 0x086d60…086d80 6c 65 20 63 68 61 72 61 63 74 65 72 20 66 72 6f 6d 20 63 20 74 6f 20 63 6f 6e 73 6f 6c 65 20 6f ┆le character from c to console o┆ 0x086d80…086da0 75 74 0d 0a 09 6a 6d 70 09 63 6f 0d 0a 3b 0d 0a 6c 69 73 74 3a 09 3b 6c 69 73 74 20 64 65 76 69 ┆ut jmp co ; list: ;list devi┆ 0x086da0…086dc0 63 65 20 6f 75 74 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d ┆ce out ; (exactly the same as m┆ 0x086dc0…086de0 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 6c 6f 0d 0a 3b 0d 0a 6c 69 73 74 73 74 3a 0d 0a 09 ┆ds call) jmp lo ; listst: ┆ 0x086de0…086e00 3b 72 65 74 75 72 6e 20 6c 69 73 74 20 73 74 61 74 75 73 0d 0a 09 78 72 61 09 61 0d 0a 09 72 65 ┆;return list status xra a re┆ 0x086e00…086e20 (35, 1, 15) 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 73 65 74 66 75 6e 63 0d 0a 09 63 61 6c 6c ┆d function call setfunc call┆ 0x086e20…086e40 09 77 61 69 74 69 6f 09 3b 70 65 72 66 6f 72 6d 20 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a ┆ waitio ;perform read function ┆ 0x086e40…086e60 09 72 65 74 09 09 3b 6d 61 79 20 68 61 76 65 20 65 72 72 6f 72 20 73 65 74 20 69 6e 20 72 65 67 ┆ ret ;may have error set in reg┆ 0x086e60…086e80 2d 61 0d 0a 3b 0d 0a 3b 0d 0a 77 72 69 74 65 3a 09 3b 64 69 73 6b 20 77 72 69 74 65 20 66 75 6e ┆-a ; ; write: ;disk write fun┆ 0x086e80…086ea0 63 74 69 6f 6e 0d 0a 09 6d 76 69 09 63 2c 77 72 69 74 66 0d 0a 09 63 61 6c 6c 09 73 65 74 66 75 ┆ction mvi c,writf call setfu┆ 0x086ea0…086ec0 6e 63 09 3b 73 65 74 20 74 6f 20 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 63 61 6c 6c ┆nc ;set to write function call┆ 0x086ec0…086ee0 09 77 61 69 74 69 6f 0d 0a 09 72 65 74 09 09 3b 6d 61 79 20 68 61 76 65 20 65 72 72 6f 72 20 73 ┆ waitio ret ;may have error s┆ 0x086ee0…086f00 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 75 74 69 6c 69 74 79 20 73 75 62 72 6f 75 74 69 6e 65 73 0d ┆et ; ; ; utility subroutines ┆ 0x086f00…086f20 0a 70 72 6d 73 67 3a 09 3b 70 72 69 6e 74 20 6d 65 73 73 61 67 65 20 61 74 20 68 2c 6c 20 74 6f ┆ prmsg: ;print message at h,l to┆ 0x086f20…086f40 20 30 0d 0a 09 6d 6f 76 09 61 2c 6d 0d 0a 09 6f 72 61 09 61 09 3b 7a 65 72 6f 3f 0d 0a 09 72 7a ┆ 0 mov a,m ora a ;zero? rz┆ 0x086f40…086f60 0d 0a 3b 09 6d 6f 72 65 20 74 6f 20 70 72 69 6e 74 0d 0a 09 70 75 73 68 09 68 0d 0a 09 6d 6f 76 ┆ ; more to print push h mov┆ 0x086f60…086f80 09 63 2c 61 0d 0a 09 63 61 6c 6c 09 63 6f 6e 6f 75 74 0d 0a 09 70 6f 70 09 68 0d 0a 09 69 6e 78 ┆ c,a call conout pop h inx┆ 0x086f80…086fa0 09 68 0d 0a 09 6a 6d 70 09 70 72 6d 73 67 0d 0a 3b 0d 0a 73 65 74 66 75 6e 63 3a 0d 0a 3b 09 73 ┆ h jmp prmsg ; setfunc: ; s┆ 0x086fa0…086fc0 65 74 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 6e 65 78 74 20 69 2f 6f 20 28 63 6f 6d 6d 61 6e ┆et function for next i/o (comman┆ 0x086fc0…086fe0 64 20 69 6e 20 72 65 67 2d 63 29 0d 0a 09 6c 78 69 09 68 2c 69 6f 66 09 3b 69 6f 20 66 75 6e 63 ┆d in reg-c) lxi h,iof ;io func┆ 0x086fe0…087000 74 69 6f 6e 20 61 64 64 72 65 73 73 0d 0a 09 6d 6f 76 09 61 2c 6d 09 3b 67 65 74 20 69 74 20 74 ┆tion address mov a,m ;get it t┆ 0x087000…087020 (36, 0, 1) 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 63 6f 6e 74 61 69 6e 73 20 7a 65 72 6f 0d 0a 09 72 65 74 ┆ accumulator contains zero ret┆ 0x087020…087040 0d 0a 3b 0d 0a 77 72 65 61 64 79 3a 09 3b 6e 6f 74 20 72 65 61 64 79 2c 20 74 72 65 61 74 20 61 ┆ ; wready: ;not ready, treat a┆ 0x087040…087060 73 20 65 72 72 6f 72 20 66 6f 72 20 6e 6f 77 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 09 09 3b ┆s error for now call inbyte ;┆ 0x087060…087080 63 6c 65 61 72 20 72 65 73 75 6c 74 20 62 79 74 65 0d 0a 09 6a 6d 70 09 74 72 79 63 6f 75 6e 74 ┆clear result byte jmp trycount┆ 0x087080…0870a0 0d 0a 3b 0d 0a 77 65 72 72 6f 72 3a 09 3b 72 65 74 75 72 6e 20 68 61 72 64 77 61 72 65 20 6d 61 ┆ ; werror: ;return hardware ma┆ 0x0870a0…0870c0 6c 66 75 6e 63 74 69 6f 6e 20 28 63 72 63 2c 20 74 72 61 63 6b 2c 20 73 65 65 6b 2c 20 65 74 63 ┆lfunction (crc, track, seek, etc┆ 0x0870c0…0870e0 2e 29 0d 0a 3b 09 74 68 65 20 6d 64 73 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 68 61 73 20 72 65 74 ┆.) ; the mds controller has ret┆ 0x0870e0…087100 75 72 6e 65 64 20 61 20 62 69 74 20 69 6e 20 65 61 63 68 20 70 6f 73 69 74 69 6f 6e 0d 0a 3b 09 ┆urned a bit in each position ; ┆ 0x087100…087120 6f 66 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 2c 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e ┆of the accumulator, correspondin┆ 0x087120…087140 67 20 74 6f 20 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e 73 3a 0d 0a 3b 09 30 09 2d 20 64 65 6c 65 ┆g to the conditions: ; 0 - dele┆ 0x087140…087160 74 65 64 20 64 61 74 61 20 28 61 63 63 65 70 74 65 64 20 61 73 20 6f 6b 20 61 62 6f 76 65 29 0d ┆ted data (accepted as ok above) ┆ 0x087160…087180 0a 3b 09 31 09 2d 20 63 72 63 20 65 72 72 6f 72 0d 0a 3b 09 32 09 2d 20 73 65 65 6b 20 65 72 72 ┆ ; 1 - crc error ; 2 - seek err┆ 0x087180…0871a0 6f 72 0d 0a 3b 09 33 09 2d 20 61 64 64 72 65 73 73 20 65 72 72 6f 72 20 28 68 61 72 64 77 61 72 ┆or ; 3 - address error (hardwar┆ 0x0871a0…0871c0 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 34 09 2d 20 64 61 74 61 20 6f 76 65 72 2f ┆e malfunction) ; 4 - data over/┆ 0x0871c0…0871e0 75 6e 64 65 72 20 66 6c 6f 77 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e ┆under flow (hardware malfunction┆ 0x0871e0…087200 29 0d 0a 3b 09 35 09 2d 20 77 72 69 74 65 20 70 72 6f 74 65 63 74 20 28 74 72 65 61 74 65 64 20 ┆) ; 5 - write protect (treated ┆ 0x087200…087220 (36, 0, 2) 65 09 65 71 75 09 6e 6f 74 20 74 72 75 65 09 3b 22 66 61 6c 73 65 22 0d 0a 74 65 73 74 09 65 71 ┆e equ not true ;"false" test eq┆ 0x087220…087240 75 09 66 61 6c 73 65 09 3b 74 72 75 65 20 69 66 20 74 65 73 74 20 62 69 6f 73 0d 0a 3b 0d 0a 09 ┆u false ;true if test bios ; ┆ 0x087240…087260 69 66 09 74 65 73 74 0d 0a 62 69 61 73 09 65 71 75 09 30 33 34 30 30 68 09 3b 62 61 73 65 20 6f ┆if test bias equ 03400h ;base o┆ 0x087260…087280 66 20 43 43 50 20 69 6e 20 74 65 73 74 20 73 79 73 74 65 6d 0d 0a 09 65 6e 64 69 66 0d 0a 09 69 ┆f CCP in test system endif i┆ 0x087280…0872a0 66 09 6e 6f 74 20 74 65 73 74 0d 0a 62 69 61 73 09 65 71 75 09 30 30 30 30 68 09 3b 67 65 6e 65 ┆f not test bias equ 0000h ;gene┆ 0x0872a0…0872c0 72 61 74 65 20 72 65 6c 6f 63 61 74 61 62 6c 65 20 63 70 2f 6d 20 73 79 73 74 65 6d 0d 0a 09 65 ┆rate relocatable cp/m system e┆ 0x0872c0…0872e0 6e 64 69 66 0d 0a 3b 0d 0a 70 61 74 63 68 09 65 71 75 09 31 36 30 30 68 0d 0a 3b 0d 0a 09 6f 72 ┆ndif ; patch equ 1600h ; or┆ 0x0872e0…087300 67 09 70 61 74 63 68 0d 0a 63 70 6d 62 09 65 71 75 09 24 2d 70 61 74 63 68 09 3b 62 61 73 65 20 ┆g patch cpmb equ $-patch ;base ┆ 0x087300…087320 6f 66 20 63 70 6d 20 63 6f 6e 73 6f 6c 65 20 70 72 6f 63 65 73 73 6f 72 0d 0a 62 64 6f 73 09 65 ┆of cpm console processor bdos e┆ 0x087320…087340 71 75 09 38 30 36 68 2b 63 70 6d 62 09 3b 62 61 73 69 63 20 64 6f 73 20 28 72 65 73 69 64 65 6e ┆qu 806h+cpmb ;basic dos (residen┆ 0x087340…087360 74 20 70 6f 72 74 69 6f 6e 29 0d 0a 63 70 6d 6c 09 65 71 75 09 24 2d 63 70 6d 62 09 3b 6c 65 6e ┆t portion) cpml equ $-cpmb ;len┆ 0x087360…087380 67 74 68 20 28 69 6e 20 62 79 74 65 73 29 20 6f 66 20 63 70 6d 20 73 79 73 74 65 6d 0d 0a 6e 73 ┆gth (in bytes) of cpm system ns┆ 0x087380…0873a0 65 63 74 73 09 65 71 75 09 63 70 6d 6c 2f 31 32 38 09 3b 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 ┆ects equ cpml/128 ;number of sec┆ 0x0873a0…0873c0 74 6f 72 73 20 74 6f 20 6c 6f 61 64 0d 0a 6f 66 66 73 65 74 09 65 71 75 09 32 09 3b 6e 75 6d 62 ┆tors to load offset equ 2 ;numb┆ 0x0873c0…0873e0 65 72 20 6f 66 20 64 69 73 6b 20 74 72 61 63 6b 73 20 75 73 65 64 20 62 79 20 63 70 2f 6d 0d 0a ┆er of disk tracks used by cp/m ┆ 0x0873e0…087400 63 64 69 73 6b 09 65 71 75 09 30 30 30 34 68 09 3b 61 64 64 72 65 73 73 20 6f 66 20 6c 61 73 74 ┆cdisk equ 0004h ;address of last┆ 0x087400…087420 (36, 0, 3) 66 09 33 2c 30 0d 0a 3b 09 65 6e 64 65 66 20 6f 63 63 75 72 73 20 61 74 20 65 6e 64 20 6f 66 20 ┆f 3,0 ; endef occurs at end of ┆ 0x087420…087440 61 73 73 65 6d 62 6c 79 0d 0a 3b 0d 0a 3b 09 65 6e 64 20 6f 66 20 63 6f 6e 74 72 6f 6c 6c 65 72 ┆assembly ; ; end of controller┆ 0x087440…087460 20 2d 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 63 6f 64 65 2c 20 74 68 65 20 72 65 6d 61 69 6e 69 ┆ - independent code, the remaini┆ 0x087460…087480 6e 67 20 73 75 62 72 6f 75 74 69 6e 65 73 0d 0a 3b 09 61 72 65 20 74 61 69 6c 6f 72 65 64 20 74 ┆ng subroutines ; are tailored t┆ 0x087480…0874a0 6f 20 74 68 65 20 70 61 72 74 69 63 75 6c 61 72 20 6f 70 65 72 61 74 69 6e 67 20 65 6e 76 69 72 ┆o the particular operating envir┆ 0x0874a0…0874c0 6f 6e 6d 65 6e 74 2c 20 61 6e 64 20 6d 75 73 74 0d 0a 3b 09 62 65 20 61 6c 74 65 72 65 64 20 66 ┆onment, and must ; be altered f┆ 0x0874c0…0874e0 6f 72 20 61 6e 79 20 73 79 73 74 65 6d 20 77 68 69 63 68 20 64 69 66 66 65 72 73 20 66 72 6f 6d ┆or any system which differs from┆ 0x0874e0…087500 20 74 68 65 20 69 6e 74 65 6c 20 6d 64 73 2e 0d 0a 3b 0d 0a 3b 09 74 68 65 20 66 6f 6c 6c 6f 77 ┆ the intel mds. ; ; the follow┆ 0x087500…087520 69 6e 67 20 63 6f 64 65 20 61 73 73 75 6d 65 73 20 74 68 65 20 6d 64 73 20 6d 6f 6e 69 74 6f 72 ┆ing code assumes the mds monitor┆ 0x087520…087540 20 65 78 69 73 74 73 20 61 74 20 30 66 38 30 30 68 0d 0a 3b 09 61 6e 64 20 75 73 65 73 20 74 68 ┆ exists at 0f800h ; and uses th┆ 0x087540…087560 65 20 69 2f 6f 20 73 75 62 72 6f 75 74 69 6e 65 73 20 77 69 74 68 69 6e 20 74 68 65 20 6d 6f 6e ┆e i/o subroutines within the mon┆ 0x087560…087580 69 74 6f 72 0d 0a 3b 0d 0a 3b 09 77 65 20 61 6c 73 6f 20 61 73 73 75 6d 65 20 74 68 65 20 6d 64 ┆itor ; ; we also assume the md┆ 0x087580…0875a0 73 20 73 79 73 74 65 6d 20 68 61 73 20 66 6f 75 72 20 64 69 73 6b 20 64 72 69 76 65 73 0d 0a 72 ┆s system has four disk drives r┆ 0x0875a0…0875c0 65 76 72 74 09 65 71 75 09 30 66 64 68 09 3b 69 6e 74 65 72 72 75 70 74 20 72 65 76 65 72 74 20 ┆evrt equ 0fdh ;interrupt revert ┆ 0x0875c0…0875e0 70 6f 72 74 0d 0a 69 6e 74 63 09 65 71 75 09 30 66 63 68 09 3b 69 6e 74 65 72 72 75 70 74 20 6d ┆port intc equ 0fch ;interrupt m┆ 0x0875e0…087600 61 73 6b 20 70 6f 72 74 0d 0a 69 63 6f 6e 09 65 71 75 09 30 66 33 68 09 3b 69 6e 74 65 72 72 75 ┆ask port icon equ 0f3h ;interru┆ 0x087600…087620 (36, 0, 4) 63 6f 6c 64 20 73 74 61 72 74 0d 0a 3b 09 73 74 61 72 74 2e 0d 0a 3b 0d 0a 09 6c 78 69 09 73 70 ┆cold start ; start. ; lxi sp┆ 0x087620…087640 2c 62 75 66 66 09 3b 75 73 69 6e 67 20 64 6d 61 20 2d 20 74 68 75 73 20 38 30 20 74 68 72 75 20 ┆,buff ;using dma - thus 80 thru ┆ 0x087640…087660 66 66 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 73 74 61 63 6b 0d 0a 3b 0d 0a 09 6d 76 69 09 ┆ff available for stack ; mvi ┆ 0x087660…087680 63 2c 72 65 74 72 79 09 3b 6d 61 78 20 72 65 74 72 69 65 73 0d 0a 09 70 75 73 68 09 62 0d 0a 77 ┆c,retry ;max retries push b w┆ 0x087680…0876a0 62 6f 6f 74 30 3a 09 3b 65 6e 74 65 72 20 68 65 72 65 20 6f 6e 20 65 72 72 6f 72 20 72 65 74 72 ┆boot0: ;enter here on error retr┆ 0x0876a0…0876c0 69 65 73 0d 0a 09 6c 78 69 09 62 2c 63 70 6d 62 09 3b 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 ┆ies lxi b,cpmb ;set dma addres┆ 0x0876c0…0876e0 73 20 74 6f 20 73 74 61 72 74 20 6f 66 20 64 69 73 6b 20 73 79 73 74 65 6d 0d 0a 09 63 61 6c 6c ┆s to start of disk system call┆ 0x0876e0…087700 09 73 65 74 64 6d 61 0d 0a 09 6d 76 69 09 63 2c 30 09 3b 62 6f 6f 74 20 66 72 6f 6d 20 64 72 69 ┆ setdma mvi c,0 ;boot from dri┆ 0x087700…087720 76 65 20 30 0d 0a 09 63 61 6c 6c 09 73 65 6c 64 73 6b 0d 0a 09 6d 76 69 09 63 2c 30 0d 0a 09 63 ┆ve 0 call seldsk mvi c,0 c┆ 0x087720…087740 61 6c 6c 09 73 65 74 74 72 6b 09 3b 73 74 61 72 74 20 77 69 74 68 20 74 72 61 63 6b 20 30 0d 0a ┆all settrk ;start with track 0 ┆ 0x087740…087760 09 6d 76 69 09 63 2c 32 09 3b 73 74 61 72 74 20 72 65 61 64 69 6e 67 20 73 65 63 74 6f 72 20 32 ┆ mvi c,2 ;start reading sector 2┆ 0x087760…087780 0d 0a 09 63 61 6c 6c 09 73 65 74 73 65 63 0d 0a 3b 0d 0a 3b 09 72 65 61 64 20 73 65 63 74 6f 72 ┆ call setsec ; ; read sector┆ 0x087780…0877a0 73 2c 20 63 6f 75 6e 74 20 6e 73 65 63 74 73 20 74 6f 20 7a 65 72 6f 0d 0a 09 70 6f 70 09 62 09 ┆s, count nsects to zero pop b ┆ 0x0877a0…0877c0 3b 31 30 2d 65 72 72 6f 72 20 63 6f 75 6e 74 0d 0a 09 6d 76 69 09 62 2c 6e 73 65 63 74 73 0d 0a ┆;10-error count mvi b,nsects ┆ 0x0877c0…0877e0 72 64 73 65 63 3a 09 3b 72 65 61 64 20 6e 65 78 74 20 73 65 63 74 6f 72 0d 0a 09 70 75 73 68 09 ┆rdsec: ;read next sector push ┆ 0x0877e0…087800 62 09 3b 73 61 76 65 20 73 65 63 74 6f 72 20 63 6f 75 6e 74 0d 0a 09 63 61 6c 6c 09 72 65 61 64 ┆b ;save sector count call read┆ 0x087800…087820 (36, 0, 5) 61 73 20 6e 6f 74 20 72 65 61 64 79 29 0d 0a 3b 09 36 09 2d 20 77 72 69 74 65 20 65 72 72 6f 72 ┆as not ready) ; 6 - write error┆ 0x087820…087840 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 37 09 2d 20 6e ┆ (hardware malfunction) ; 7 - n┆ 0x087840…087860 6f 74 20 72 65 61 64 79 0d 0a 3b 09 28 61 63 63 75 6d 75 6c 61 74 6f 72 20 62 69 74 73 20 61 72 ┆ot ready ; (accumulator bits ar┆ 0x087860…087880 65 20 6e 75 6d 62 65 72 65 64 20 37 20 36 20 35 20 34 20 33 20 32 20 31 20 30 29 0d 0a 3b 0d 0a ┆e numbered 7 6 5 4 3 2 1 0) ; ┆ 0x087880…0878a0 3b 09 69 74 20 6d 61 79 20 62 65 20 75 73 65 66 75 6c 20 74 6f 20 66 69 6c 74 65 72 20 6f 75 74 ┆; it may be useful to filter out┆ 0x0878a0…0878c0 20 74 68 65 20 76 61 72 69 6f 75 73 20 63 6f 6e 64 69 74 69 6f 6e 73 2c 0d 0a 3b 09 62 75 74 20 ┆ the various conditions, ; but ┆ 0x0878c0…0878e0 77 65 20 77 69 6c 6c 20 67 65 74 20 61 20 70 65 72 6d 61 6e 65 6e 74 20 65 72 72 6f 72 20 6d 65 ┆we will get a permanent error me┆ 0x0878e0…087900 73 73 61 67 65 20 69 66 20 69 74 20 69 73 20 6e 6f 74 0d 0a 3b 09 72 65 63 6f 76 65 72 61 62 6c ┆ssage if it is not ; recoverabl┆ 0x087900…087920 65 2e 20 20 69 6e 20 61 6e 79 20 63 61 73 65 2c 20 74 68 65 20 6e 6f 74 20 72 65 61 64 79 20 63 ┆e. in any case, the not ready c┆ 0x087920…087940 6f 6e 64 69 74 69 6f 6e 20 69 73 0d 0a 3b 09 74 72 65 61 74 65 64 20 61 73 20 61 20 73 65 70 61 ┆ondition is ; treated as a sepa┆ 0x087940…087960 72 61 74 65 20 63 6f 6e 64 69 74 69 6f 6e 20 66 6f 72 20 6c 61 74 65 72 20 69 6d 70 72 6f 76 65 ┆rate condition for later improve┆ 0x087960…087980 6d 65 6e 74 0d 0a 74 72 79 63 6f 75 6e 74 3a 0d 0a 3b 09 72 65 67 69 73 74 65 72 20 63 20 63 6f ┆ment trycount: ; register c co┆ 0x087980…0879a0 6e 74 61 69 6e 73 20 72 65 74 72 79 20 63 6f 75 6e 74 2c 20 64 65 63 72 65 6d 65 6e 74 20 27 74 ┆ntains retry count, decrement 't┆ 0x0879a0…0879c0 69 6c 20 7a 65 72 6f 0d 0a 09 64 63 72 09 63 0d 0a 09 6a 6e 7a 09 72 65 77 61 69 74 09 3b 66 6f ┆il zero dcr c jnz rewait ;fo┆ 0x0879c0…0879e0 72 20 61 6e 6f 74 68 65 72 20 74 72 79 0d 0a 3b 0d 0a 3b 09 63 61 6e 6e 6f 74 20 72 65 63 6f 76 ┆r another try ; ; cannot recov┆ 0x0879e0…087a00 65 72 20 66 72 6f 6d 20 65 72 72 6f 72 0d 0a 09 6d 76 69 09 61 2c 31 09 3b 65 72 72 6f 72 20 63 ┆er from error mvi a,1 ;error c┆ 0x087a00…087a20 (36, 0, 6) 20 6c 6f 67 67 65 64 20 64 69 73 6b 20 6f 6e 20 77 61 72 6d 20 73 74 61 72 74 0d 0a 62 75 66 66 ┆ logged disk on warm start buff┆ 0x087a20…087a40 09 65 71 75 09 30 30 38 30 68 09 3b 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 ┆ equ 0080h ;default buffer addre┆ 0x087a40…087a60 73 73 0d 0a 72 65 74 72 79 09 65 71 75 09 31 30 09 3b 6d 61 78 20 72 65 74 72 69 65 73 20 6f 6e ┆ss retry equ 10 ;max retries on┆ 0x087a60…087a80 20 64 69 73 6b 20 69 2f 6f 20 62 65 66 6f 72 65 20 65 72 72 6f 72 0d 0a 3b 0d 0a 3b 09 70 65 72 ┆ disk i/o before error ; ; per┆ 0x087a80…087aa0 66 6f 72 6d 20 66 6f 6c 6c 6f 77 69 6e 67 20 66 75 6e 63 74 69 6f 6e 73 0d 0a 3b 09 62 6f 6f 74 ┆form following functions ; boot┆ 0x087aa0…087ac0 09 63 6f 6c 64 20 73 74 61 72 74 0d 0a 3b 09 77 62 6f 6f 74 09 77 61 72 6d 20 73 74 61 72 74 20 ┆ cold start ; wboot warm start ┆ 0x087ac0…087ae0 28 73 61 76 65 20 69 2f 6f 20 62 79 74 65 29 0d 0a 3b 09 28 62 6f 6f 74 20 61 6e 64 20 77 62 6f ┆(save i/o byte) ; (boot and wbo┆ 0x087ae0…087b00 6f 74 20 61 72 65 20 74 68 65 20 73 61 6d 65 20 66 6f 72 20 6d 64 73 29 0d 0a 3b 09 63 6f 6e 73 ┆ot are the same for mds) ; cons┆ 0x087b00…087b20 74 09 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 0d 0a 3b 09 09 72 65 67 2d 61 20 3d 20 30 30 20 ┆t console status ; reg-a = 00 ┆ 0x087b20…087b40 69 66 20 6e 6f 20 63 68 61 72 61 63 74 65 72 20 72 65 61 64 79 0d 0a 3b 09 09 72 65 67 2d 61 20 ┆if no character ready ; reg-a ┆ 0x087b40…087b60 3d 20 66 66 20 69 66 20 63 68 61 72 61 63 74 65 72 20 72 65 61 64 79 0d 0a 3b 09 63 6f 6e 69 6e ┆= ff if character ready ; conin┆ 0x087b60…087b80 09 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 28 72 65 73 75 6c 74 20 69 6e ┆ console character in (result in┆ 0x087b80…087ba0 20 72 65 67 2d 61 29 0d 0a 3b 09 63 6f 6e 6f 75 74 09 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 ┆ reg-a) ; conout console charac┆ 0x087ba0…087bc0 74 65 72 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 6c 69 73 74 09 ┆ter out (char in reg-c) ; list ┆ 0x087bc0…087be0 6c 69 73 74 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 70 75 6e 63 ┆list out (char in reg-c) ; punc┆ 0x087be0…087c00 68 09 70 75 6e 63 68 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 72 ┆h punch out (char in reg-c) ; r┆ 0x087c00…087c20 (36, 0, 7) 70 74 20 63 6f 6e 74 72 6f 6c 20 70 6f 72 74 0d 0a 69 6e 74 65 09 65 71 75 09 30 31 31 31 24 31 ┆pt control port inte equ 0111$1┆ 0x087c20…087c40 31 31 30 62 09 3b 65 6e 61 62 6c 65 20 72 73 74 20 30 28 77 61 72 6d 20 62 6f 6f 74 29 2c 20 72 ┆110b ;enable rst 0(warm boot), r┆ 0x087c40…087c60 73 74 20 37 20 28 6d 6f 6e 69 74 6f 72 29 0d 0a 3b 0d 0a 3b 09 6d 64 73 20 6d 6f 6e 69 74 6f 72 ┆st 7 (monitor) ; ; mds monitor┆ 0x087c60…087c80 20 65 71 75 61 74 65 73 0d 0a 6d 6f 6e 38 30 09 65 71 75 09 30 66 38 30 30 68 09 3b 6d 64 73 20 ┆ equates mon80 equ 0f800h ;mds ┆ 0x087c80…087ca0 6d 6f 6e 69 74 6f 72 0d 0a 72 6d 6f 6e 38 30 09 65 71 75 09 30 66 66 30 66 68 09 3b 72 65 73 74 ┆monitor rmon80 equ 0ff0fh ;rest┆ 0x087ca0…087cc0 61 72 74 20 6d 6f 6e 38 30 20 28 62 6f 6f 74 20 65 72 72 6f 72 29 0d 0a 63 69 09 65 71 75 09 30 ┆art mon80 (boot error) ci equ 0┆ 0x087cc0…087ce0 66 38 30 33 68 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 72 65 67 2d ┆f803h ;console character to reg-┆ 0x087ce0…087d00 61 0d 0a 72 69 09 65 71 75 09 30 66 38 30 36 68 09 3b 72 65 61 64 65 72 20 69 6e 20 74 6f 20 72 ┆a ri equ 0f806h ;reader in to r┆ 0x087d00…087d20 65 67 2d 61 0d 0a 63 6f 09 65 71 75 09 30 66 38 30 39 68 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 ┆eg-a co equ 0f809h ;console cha┆ 0x087d20…087d40 72 20 66 72 6f 6d 20 63 20 74 6f 20 63 6f 6e 73 6f 6c 65 20 6f 75 74 0d 0a 70 6f 09 65 71 75 09 ┆r from c to console out po equ ┆ 0x087d40…087d60 30 66 38 30 63 68 09 3b 70 75 6e 63 68 20 63 68 61 72 20 66 72 6f 6d 20 63 20 74 6f 20 70 75 6e ┆0f80ch ;punch char from c to pun┆ 0x087d60…087d80 63 68 20 64 65 76 69 63 65 0d 0a 6c 6f 09 65 71 75 09 30 66 38 30 66 68 09 3b 6c 69 73 74 20 66 ┆ch device lo equ 0f80fh ;list f┆ 0x087d80…087da0 72 6f 6d 20 63 20 74 6f 20 6c 69 73 74 20 64 65 76 69 63 65 0d 0a 63 73 74 73 09 65 71 75 09 30 ┆rom c to list device csts equ 0┆ 0x087da0…087dc0 66 38 31 32 68 09 3b 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 20 30 30 2f 66 66 20 74 6f 20 72 ┆f812h ;console status 00/ff to r┆ 0x087dc0…087de0 65 67 69 73 74 65 72 20 61 0d 0a 3b 0d 0a 3b 09 64 69 73 6b 20 70 6f 72 74 73 20 61 6e 64 20 63 ┆egister a ; ; disk ports and c┆ 0x087de0…087e00 6f 6d 6d 61 6e 64 73 0d 0a 62 61 73 65 09 65 71 75 09 37 38 68 09 3b 62 61 73 65 20 6f 66 20 64 ┆ommands base equ 78h ;base of d┆ 0x087e00…087e20 (36, 0, 8) 0d 0a 09 6a 6e 7a 09 62 6f 6f 74 65 72 72 09 3b 72 65 74 72 79 20 69 66 20 65 72 72 6f 72 73 20 ┆ jnz booterr ;retry if errors ┆ 0x087e20…087e40 6f 63 63 75 72 0d 0a 09 6c 68 6c 64 09 69 6f 64 09 3b 69 6e 63 72 65 6d 65 6e 74 20 64 6d 61 20 ┆occur lhld iod ;increment dma ┆ 0x087e40…087e60 61 64 64 72 65 73 73 0d 0a 09 6c 78 69 09 64 2c 31 32 38 09 3b 73 65 63 74 6f 72 20 73 69 7a 65 ┆address lxi d,128 ;sector size┆ 0x087e60…087e80 0d 0a 09 64 61 64 09 64 09 3b 69 6e 63 72 65 6d 65 6e 74 65 64 20 64 6d 61 20 61 64 64 72 65 73 ┆ dad d ;incremented dma addres┆ 0x087e80…087ea0 73 20 69 6e 20 68 6c 0d 0a 09 6d 6f 76 09 62 2c 68 0d 0a 09 6d 6f 76 09 63 2c 6c 09 3b 72 65 61 ┆s in hl mov b,h mov c,l ;rea┆ 0x087ea0…087ec0 64 79 20 66 6f 72 20 63 61 6c 6c 20 74 6f 20 73 65 74 20 64 6d 61 0d 0a 09 63 61 6c 6c 09 73 65 ┆dy for call to set dma call se┆ 0x087ec0…087ee0 74 64 6d 61 0d 0a 09 6c 64 61 09 69 6f 73 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 6a 75 ┆tdma lda ios ;sector number ju┆ 0x087ee0…087f00 73 74 20 72 65 61 64 0d 0a 09 63 70 69 09 32 36 09 3b 72 65 61 64 20 6c 61 73 74 20 73 65 63 74 ┆st read cpi 26 ;read last sect┆ 0x087f00…087f20 6f 72 3f 0d 0a 09 6a 63 09 72 64 31 0d 0a 3b 09 6d 75 73 74 20 62 65 20 73 65 63 74 6f 72 20 32 ┆or? jc rd1 ; must be sector 2┆ 0x087f20…087f40 36 2c 20 7a 65 72 6f 20 61 6e 64 20 67 6f 20 74 6f 20 6e 65 78 74 20 74 72 61 63 6b 0d 0a 09 6c ┆6, zero and go to next track l┆ 0x087f40…087f60 64 61 09 69 6f 74 09 3b 67 65 74 20 74 72 61 63 6b 20 74 6f 20 72 65 67 69 73 74 65 72 20 61 0d ┆da iot ;get track to register a ┆ 0x087f60…087f80 0a 09 69 6e 72 09 61 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c ┆ inr a mov c,a ;ready for cal┆ 0x087f80…087fa0 6c 0d 0a 09 63 61 6c 6c 09 73 65 74 74 72 6b 0d 0a 09 78 72 61 09 61 09 3b 63 6c 65 61 72 20 73 ┆l call settrk xra a ;clear s┆ 0x087fa0…087fc0 65 63 74 6f 72 20 6e 75 6d 62 65 72 0d 0a 72 64 31 3a 09 69 6e 72 09 61 09 3b 74 6f 20 6e 65 78 ┆ector number rd1: inr a ;to nex┆ 0x087fc0…087fe0 74 20 73 65 63 74 6f 72 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 ┆t sector mov c,a ;ready for ca┆ 0x087fe0…088000 6c 6c 0d 0a 09 63 61 6c 6c 09 73 65 74 73 65 63 0d 0a 09 70 6f 70 09 62 09 3b 72 65 63 61 6c 6c ┆ll call setsec pop b ;recall┆ 0x088000…088020 (36, 0, 9) 6f 64 65 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 09 69 6e 74 79 70 65 2c 20 69 6e 62 79 74 65 2c 20 ┆ode ret ; ; intype, inbyte, ┆ 0x088020…088040 69 6e 73 74 61 74 20 72 65 61 64 20 64 72 69 76 65 20 62 61 6e 6b 20 30 30 20 6f 72 20 31 30 0d ┆instat read drive bank 00 or 10 ┆ 0x088040…088060 0a 69 6e 74 79 70 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a ┆ intype: lda dbank ora a jnz┆ 0x088060…088080 09 69 6e 74 79 70 31 09 3b 73 6b 69 70 20 74 6f 20 62 61 6e 6b 20 31 30 0d 0a 09 69 6e 09 72 74 ┆ intyp1 ;skip to bank 10 in rt┆ 0x088080…0880a0 79 70 65 0d 0a 09 72 65 74 0d 0a 69 6e 74 79 70 31 3a 09 69 6e 09 72 74 79 70 65 2b 31 30 68 09 ┆ype ret intyp1: in rtype+10h ┆ 0x0880a0…0880c0 3b 37 38 20 66 6f 72 20 30 2c 31 20 20 38 38 20 66 6f 72 20 32 2c 33 0d 0a 09 72 65 74 0d 0a 3b ┆;78 for 0,1 88 for 2,3 ret ;┆ 0x0880c0…0880e0 0d 0a 69 6e 62 79 74 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e ┆ inbyte: lda dbank ora a jn┆ 0x0880e0…088100 7a 09 69 6e 62 79 74 31 0d 0a 09 69 6e 09 72 62 79 74 65 0d 0a 09 72 65 74 0d 0a 69 6e 62 79 74 ┆z inbyt1 in rbyte ret inbyt┆ 0x088100…088120 31 3a 09 69 6e 09 72 62 79 74 65 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 69 6e 73 74 61 74 ┆1: in rbyte+10h ret ; instat┆ 0x088120…088140 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 73 74 61 31 ┆: lda dbank ora a jnz insta1┆ 0x088140…088160 0d 0a 09 69 6e 09 64 73 74 61 74 0d 0a 09 72 65 74 0d 0a 69 6e 73 74 61 31 3a 09 69 6e 09 64 73 ┆ in dstat ret insta1: in ds┆ 0x088160…088180 74 61 74 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 61 74 61 20 61 ┆tat+10h ret ; ; ; ; data a┆ 0x088180…0881a0 72 65 61 73 20 28 6d 75 73 74 20 62 65 20 69 6e 20 72 61 6d 29 0d 0a 64 62 61 6e 6b 3a 09 64 62 ┆reas (must be in ram) dbank: db┆ 0x0881a0…0881c0 09 30 09 3b 64 69 73 6b 20 62 61 6e 6b 20 30 30 20 69 66 20 64 72 69 76 65 20 30 2c 31 0d 0a 09 ┆ 0 ;disk bank 00 if drive 0,1 ┆ 0x0881c0…0881e0 09 09 3b 09 20 20 20 31 30 20 69 66 20 64 72 69 76 65 20 32 2c 33 0d 0a 69 6f 70 62 3a 09 3b 69 ┆ ; 10 if drive 2,3 iopb: ;i┆ 0x0881e0…088200 6f 20 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 0d 0a 09 64 62 09 38 30 68 09 3b 6e 6f 72 6d ┆o parameter block db 80h ;norm┆ 0x088200…088220 (36, 0, 10) 65 61 64 65 72 09 70 61 70 65 72 20 74 61 70 65 20 72 65 61 64 65 72 20 69 6e 20 28 72 65 73 75 ┆eader paper tape reader in (resu┆ 0x088220…088240 6c 74 20 74 6f 20 72 65 67 2d 61 29 0d 0a 3b 09 68 6f 6d 65 09 6d 6f 76 65 20 74 6f 20 74 72 61 ┆lt to reg-a) ; home move to tra┆ 0x088240…088260 63 6b 20 30 30 0d 0a 3b 0d 0a 3b 09 28 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 61 6c 6c 73 ┆ck 00 ; ; (the following calls┆ 0x088260…088280 20 73 65 74 2d 75 70 20 74 68 65 20 69 6f 20 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 20 66 ┆ set-up the io parameter block f┆ 0x088280…0882a0 6f 72 20 74 68 65 0d 0a 3b 09 6d 64 73 2c 20 77 68 69 63 68 20 69 73 20 75 73 65 64 20 74 6f 20 ┆or the ; mds, which is used to ┆ 0x0882a0…0882c0 70 65 72 66 6f 72 6d 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 73 20 61 6e 64 20 77 72 69 ┆perform subsequent reads and wri┆ 0x0882c0…0882e0 74 65 73 29 0d 0a 3b 09 73 65 6c 64 73 6b 09 73 65 6c 65 63 74 20 64 69 73 6b 20 67 69 76 65 6e ┆tes) ; seldsk select disk given┆ 0x0882e0…088300 20 62 79 20 72 65 67 2d 63 20 28 30 2c 31 2c 32 2e 2e 2e 29 0d 0a 3b 09 73 65 74 74 72 6b 09 73 ┆ by reg-c (0,1,2...) ; settrk s┆ 0x088300…088320 65 74 20 74 72 61 63 6b 20 61 64 64 72 65 73 73 20 28 30 2c 2e 2e 2e 37 36 29 20 66 6f 72 20 73 ┆et track address (0,...76) for s┆ 0x088320…088340 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 2f 77 72 69 74 65 0d 0a 3b 09 73 65 74 73 65 63 09 73 ┆ubsequent read/write ; setsec s┆ 0x088340…088360 65 74 20 73 65 63 74 6f 72 20 61 64 64 72 65 73 73 20 28 31 2c 2e 2e 2e 2c 32 36 29 20 66 6f 72 ┆et sector address (1,...,26) for┆ 0x088360…088380 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 2f 77 72 69 74 65 0d 0a 3b 09 73 65 74 64 6d 61 ┆ subsequent read/write ; setdma┆ 0x088380…0883a0 09 73 65 74 20 73 75 62 73 65 71 75 65 6e 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 28 69 6e 69 ┆ set subsequent dma address (ini┆ 0x0883a0…0883c0 74 69 61 6c 6c 79 20 38 30 68 29 0d 0a 3b 0d 0a 3b 09 28 72 65 61 64 20 61 6e 64 20 77 72 69 74 ┆tially 80h) ; ; (read and writ┆ 0x0883c0…0883e0 65 20 61 73 73 75 6d 65 20 70 72 65 76 69 6f 75 73 20 63 61 6c 6c 73 20 74 6f 20 73 65 74 20 75 ┆e assume previous calls to set u┆ 0x0883e0…088400 70 20 74 68 65 20 69 6f 20 70 61 72 61 6d 65 74 65 72 73 29 0d 0a 3b 09 72 65 61 64 09 72 65 61 ┆p the io parameters) ; read rea┆ 0x088400…088420 (36, 0, 11) 69 73 6b 20 63 6f 6d 6d 61 6e 64 20 69 6f 20 70 6f 72 74 73 0d 0a 64 73 74 61 74 09 65 71 75 09 ┆isk command io ports dstat equ ┆ 0x088420…088440 62 61 73 65 09 3b 64 69 73 6b 20 73 74 61 74 75 73 20 28 69 6e 70 75 74 29 0d 0a 72 74 79 70 65 ┆base ;disk status (input) rtype┆ 0x088440…088460 09 65 71 75 09 62 61 73 65 2b 31 09 3b 72 65 73 75 6c 74 20 74 79 70 65 20 28 69 6e 70 75 74 29 ┆ equ base+1 ;result type (input)┆ 0x088460…088480 0d 0a 72 62 79 74 65 09 65 71 75 09 62 61 73 65 2b 33 09 3b 72 65 73 75 6c 74 20 62 79 74 65 20 ┆ rbyte equ base+3 ;result byte ┆ 0x088480…0884a0 28 69 6e 70 75 74 29 0d 0a 3b 0d 0a 69 6c 6f 77 09 65 71 75 09 62 61 73 65 2b 31 09 3b 69 6f 70 ┆(input) ; ilow equ base+1 ;iop┆ 0x0884a0…0884c0 62 20 6c 6f 77 20 61 64 64 72 65 73 73 20 28 6f 75 74 70 75 74 29 0d 0a 69 68 69 67 68 09 65 71 ┆b low address (output) ihigh eq┆ 0x0884c0…0884e0 75 09 62 61 73 65 2b 32 09 3b 69 6f 70 62 20 68 69 67 68 20 61 64 64 72 65 73 73 20 28 6f 75 74 ┆u base+2 ;iopb high address (out┆ 0x0884e0…088500 70 75 74 29 0d 0a 3b 0d 0a 72 65 61 64 66 09 65 71 75 09 34 68 09 3b 72 65 61 64 20 66 75 6e 63 ┆put) ; readf equ 4h ;read func┆ 0x088500…088520 74 69 6f 6e 0d 0a 77 72 69 74 66 09 65 71 75 09 36 68 09 3b 77 72 69 74 65 20 66 75 6e 63 74 69 ┆tion writf equ 6h ;write functi┆ 0x088520…088540 6f 6e 0d 0a 72 65 63 61 6c 09 65 71 75 09 33 68 09 3b 72 65 63 61 6c 69 62 72 61 74 65 20 64 72 ┆on recal equ 3h ;recalibrate dr┆ 0x088540…088560 69 76 65 0d 0a 69 6f 72 64 79 09 65 71 75 09 34 68 09 3b 69 2f 6f 20 66 69 6e 69 73 68 65 64 20 ┆ive iordy equ 4h ;i/o finished ┆ 0x088560…088580 6d 61 73 6b 0d 0a 63 72 09 65 71 75 09 30 64 68 09 3b 63 61 72 72 69 61 67 65 20 72 65 74 75 72 ┆mask cr equ 0dh ;carriage retur┆ 0x088580…0885a0 6e 0d 0a 6c 66 09 65 71 75 09 30 61 68 09 3b 6c 69 6e 65 20 66 65 65 64 0d 0a 3b 0d 0a 73 69 67 ┆n lf equ 0ah ;line feed ; sig┆ 0x0885a0…0885c0 6e 6f 6e 3a 09 3b 73 69 67 6e 6f 6e 20 6d 65 73 73 61 67 65 3a 20 78 78 6b 20 63 70 2f 6d 20 76 ┆non: ;signon message: xxk cp/m v┆ 0x0885c0…0885e0 65 72 73 20 79 2e 79 0d 0a 09 64 62 09 63 72 2c 6c 66 2c 6c 66 0d 0a 09 69 66 09 74 65 73 74 0d ┆ers y.y db cr,lf,lf if test ┆ 0x0885e0…088600 0a 09 64 62 09 27 33 32 27 09 3b 33 32 6b 20 65 78 61 6d 70 6c 65 20 62 69 6f 73 0d 0a 09 65 6e ┆ db '32' ;32k example bios en┆ 0x088600…088620 (36, 0, 12) 20 73 65 63 74 6f 72 20 63 6f 75 6e 74 0d 0a 09 64 63 72 09 62 09 3b 64 6f 6e 65 3f 0d 0a 09 6a ┆ sector count dcr b ;done? j┆ 0x088620…088640 6e 7a 09 72 64 73 65 63 0d 0a 3b 0d 0a 3b 09 64 6f 6e 65 20 77 69 74 68 20 74 68 65 20 6c 6f 61 ┆nz rdsec ; ; done with the loa┆ 0x088640…088660 64 2c 20 72 65 73 65 74 20 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 0d ┆d, reset default buffer address ┆ 0x088660…088680 0a 67 6f 63 70 6d 3a 09 3b 28 65 6e 74 65 72 20 68 65 72 65 20 66 72 6f 6d 20 63 6f 6c 64 20 73 ┆ gocpm: ;(enter here from cold s┆ 0x088680…0886a0 74 61 72 74 20 62 6f 6f 74 29 0d 0a 3b 09 65 6e 61 62 6c 65 20 72 73 74 30 20 61 6e 64 20 72 73 ┆tart boot) ; enable rst0 and rs┆ 0x0886a0…0886c0 74 37 0d 0a 09 64 69 0d 0a 09 6d 76 69 09 61 2c 31 32 68 09 3b 69 6e 69 74 69 61 6c 69 7a 65 20 ┆t7 di mvi a,12h ;initialize ┆ 0x0886c0…0886e0 63 6f 6d 6d 61 6e 64 0d 0a 09 6f 75 74 09 72 65 76 72 74 0d 0a 09 78 72 61 09 61 0d 0a 09 6f 75 ┆command out revrt xra a ou┆ 0x0886e0…088700 74 09 69 6e 74 63 09 3b 63 6c 65 61 72 65 64 0d 0a 09 6d 76 69 09 61 2c 69 6e 74 65 09 3b 72 73 ┆t intc ;cleared mvi a,inte ;rs┆ 0x088700…088720 74 30 20 61 6e 64 20 72 73 74 37 20 62 69 74 73 20 6f 6e 0d 0a 09 6f 75 74 09 69 6e 74 63 0d 0a ┆t0 and rst7 bits on out intc ┆ 0x088720…088740 09 78 72 61 09 61 0d 0a 09 6f 75 74 09 69 63 6f 6e 09 3b 69 6e 74 65 72 72 75 70 74 20 63 6f 6e ┆ xra a out icon ;interrupt con┆ 0x088740…088760 74 72 6f 6c 0d 0a 3b 0d 0a 3b 09 73 65 74 20 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 ┆trol ; ; set default buffer ad┆ 0x088760…088780 64 72 65 73 73 20 74 6f 20 38 30 68 0d 0a 09 6c 78 69 09 62 2c 62 75 66 66 0d 0a 09 63 61 6c 6c ┆dress to 80h lxi b,buff call┆ 0x088780…0887a0 09 73 65 74 64 6d 61 0d 0a 3b 0d 0a 3b 09 72 65 73 65 74 20 6d 6f 6e 69 74 6f 72 20 65 6e 74 72 ┆ setdma ; ; reset monitor entr┆ 0x0887a0…0887c0 79 20 70 6f 69 6e 74 73 0d 0a 09 6d 76 69 09 61 2c 6a 6d 70 0d 0a 09 73 74 61 09 30 0d 0a 09 6c ┆y points mvi a,jmp sta 0 l┆ 0x0887c0…0887e0 78 69 09 68 2c 77 62 6f 6f 74 65 0d 0a 09 73 68 6c 64 09 31 09 3b 6a 6d 70 20 77 62 6f 6f 74 20 ┆xi h,wboote shld 1 ;jmp wboot ┆ 0x0887e0…088800 61 74 20 6c 6f 63 61 74 69 6f 6e 20 30 30 0d 0a 09 73 74 61 09 35 0d 0a 09 6c 78 69 09 68 2c 62 ┆at location 00 sta 5 lxi h,b┆ 0x088800…088820 (36, 0, 13) 61 6c 20 69 2f 6f 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 69 6f 66 3a 09 64 62 09 72 65 61 64 66 09 ┆al i/o operation iof: db readf ┆ 0x088820…088840 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 2c 20 69 6e 69 74 69 61 6c 20 72 65 61 64 0d 0a 69 6f 6e 3a ┆;io function, initial read ion:┆ 0x088840…088860 09 64 62 09 31 09 3b 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 20 74 6f 20 72 65 61 64 ┆ db 1 ;number of sectors to read┆ 0x088860…088880 0d 0a 69 6f 74 3a 09 64 62 09 6f 66 66 73 65 74 09 3b 74 72 61 63 6b 20 6e 75 6d 62 65 72 0d 0a ┆ iot: db offset ;track number ┆ 0x088880…0888a0 69 6f 73 3a 09 64 62 09 31 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 0d 0a 69 6f 64 3a 09 64 ┆ios: db 1 ;sector number iod: d┆ 0x0888a0…0888c0 77 09 62 75 66 66 09 3b 69 6f 20 61 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 65 66 69 ┆w buff ;io address ; ; ; defi┆ 0x0888c0…0888e0 6e 65 20 72 61 6d 20 61 72 65 61 73 20 66 6f 72 20 62 64 6f 73 20 6f 70 65 72 61 74 69 6f 6e 0d ┆ne ram areas for bdos operation ┆ 0x0888e0…088900 0a 09 65 6e 64 65 66 0d 0a 09 65 6e 64 0d 0a 3b 09 4d 44 53 2d 38 30 30 20 49 2f 4f 20 44 72 69 ┆ endef end ; MDS-800 I/O Dri┆ 0x088900…088920 76 65 72 73 20 66 6f 72 20 43 50 2f 4d 20 32 2e 32 0d 0a 3b 09 28 66 6f 75 72 20 64 72 69 76 65 ┆vers for CP/M 2.2 ; (four drive┆ 0x088920…088940 20 73 69 6e 67 6c 65 20 64 65 6e 73 69 74 79 20 76 65 72 73 69 6f 6e 29 0d 0a 3b 0d 0a 3b 09 56 ┆ single density version) ; ; V┆ 0x088940…088960 65 72 73 69 6f 6e 20 32 2e 32 20 46 65 62 72 75 61 72 79 2c 20 31 39 38 30 0d 0a 3b 0d 0a 76 65 ┆ersion 2.2 February, 1980 ; ve┆ 0x088960…088980 72 73 09 65 71 75 09 32 32 09 3b 76 65 72 73 69 6f 6e 20 32 2e 32 0d 0a 3b 0d 0a 3b 09 43 6f 70 ┆rs equ 22 ;version 2.2 ; ; Cop┆ 0x088980…0889a0 79 72 69 67 68 74 20 28 63 29 20 31 39 38 30 0d 0a 3b 09 44 69 67 69 74 61 6c 20 52 65 73 65 61 ┆yright (c) 1980 ; Digital Resea┆ 0x0889a0…0889c0 72 63 68 0d 0a 3b 09 42 6f 78 20 35 37 39 2c 20 50 61 63 69 66 69 63 20 47 72 6f 76 65 0d 0a 3b ┆rch ; Box 579, Pacific Grove ;┆ 0x0889c0…0889e0 09 43 61 6c 69 66 6f 72 6e 69 61 2c 20 39 33 39 35 30 0d 0a 3b 0d 0a 3b 0d 0a 74 72 75 65 09 65 ┆ California, 93950 ; ; true e┆ 0x0889e0…088a00 71 75 09 30 66 66 66 66 68 09 3b 76 61 6c 75 65 20 6f 66 20 22 74 72 75 65 22 0d 0a 66 61 6c 73 ┆qu 0ffffh ;value of "true" fals┆ 0x088a00…088a20 (36, 0, 14) 64 20 74 72 61 63 6b 2f 73 65 63 74 6f 72 20 74 6f 20 70 72 65 73 65 74 20 64 6d 61 20 61 64 64 ┆d track/sector to preset dma add┆ 0x088a20…088a40 72 65 73 73 0d 0a 3b 09 77 72 69 74 65 09 77 72 69 74 65 20 74 72 61 63 6b 2f 73 65 63 74 6f 72 ┆ress ; write write track/sector┆ 0x088a40…088a60 20 66 72 6f 6d 20 70 72 65 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b 09 6a ┆ from preset dma address ; ; j┆ 0x088a60…088a80 75 6d 70 20 76 65 63 74 6f 72 20 66 6f 72 20 69 6e 64 69 76 69 75 61 6c 20 72 6f 75 74 69 6e 65 ┆ump vector for indiviual routine┆ 0x088a80…088aa0 73 0d 0a 09 6a 6d 70 09 62 6f 6f 74 0d 0a 77 62 6f 6f 74 65 3a 09 6a 6d 70 09 77 62 6f 6f 74 0d ┆s jmp boot wboote: jmp wboot ┆ 0x088aa0…088ac0 0a 09 6a 6d 70 09 63 6f 6e 73 74 0d 0a 09 6a 6d 70 09 63 6f 6e 69 6e 0d 0a 09 6a 6d 70 09 63 6f ┆ jmp const jmp conin jmp co┆ 0x088ac0…088ae0 6e 6f 75 74 0d 0a 09 6a 6d 70 09 6c 69 73 74 0d 0a 09 6a 6d 70 09 70 75 6e 63 68 0d 0a 09 6a 6d ┆nout jmp list jmp punch jm┆ 0x088ae0…088b00 70 09 72 65 61 64 65 72 0d 0a 09 6a 6d 70 09 68 6f 6d 65 0d 0a 09 6a 6d 70 09 73 65 6c 64 73 6b ┆p reader jmp home jmp seldsk┆ 0x088b00…088b20 0d 0a 09 6a 6d 70 09 73 65 74 74 72 6b 0d 0a 09 6a 6d 70 09 73 65 74 73 65 63 0d 0a 09 6a 6d 70 ┆ jmp settrk jmp setsec jmp┆ 0x088b20…088b40 09 73 65 74 64 6d 61 0d 0a 09 6a 6d 70 09 72 65 61 64 0d 0a 09 6a 6d 70 09 77 72 69 74 65 0d 0a ┆ setdma jmp read jmp write ┆ 0x088b40…088b60 09 6a 6d 70 09 6c 69 73 74 73 74 09 3b 6c 69 73 74 20 73 74 61 74 75 73 0d 0a 09 6a 6d 70 09 73 ┆ jmp listst ;list status jmp s┆ 0x088b60…088b80 65 63 74 72 61 6e 0d 0a 3b 0d 0a 09 6d 61 63 6c 69 62 09 64 69 73 6b 64 65 66 09 3b 6c 6f 61 64 ┆ectran ; maclib diskdef ;load┆ 0x088b80…088ba0 20 74 68 65 20 64 69 73 6b 20 64 65 66 69 6e 69 74 69 6f 6e 20 6c 69 62 72 61 72 79 0d 0a 09 64 ┆ the disk definition library d┆ 0x088ba0…088bc0 69 73 6b 73 09 34 09 3b 66 6f 75 72 20 64 69 73 6b 73 0d 0a 09 64 69 73 6b 64 65 66 09 30 2c 31 ┆isks 4 ;four disks diskdef 0,1┆ 0x088bc0…088be0 2c 32 36 2c 36 2c 31 30 32 34 2c 32 34 33 2c 36 34 2c 36 34 2c 6f 66 66 73 65 74 0d 0a 09 64 69 ┆,26,6,1024,243,64,64,offset di┆ 0x088be0…088c00 73 6b 64 65 66 09 31 2c 30 0d 0a 09 64 69 73 6b 64 65 66 09 32 2c 30 0d 0a 09 64 69 73 6b 64 65 ┆skdef 1,0 diskdef 2,0 diskde┆ 0x088c00…088c20 (36, 0, 15) 64 69 66 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 09 64 62 09 27 30 30 27 09 3b 6d 65 6d ┆dif if not test db '00' ;mem┆ 0x088c20…088c40 6f 72 79 20 73 69 7a 65 20 66 69 6c 6c 65 64 20 62 79 20 72 65 6c 6f 63 61 74 6f 72 0d 0a 09 65 ┆ory size filled by relocator e┆ 0x088c40…088c60 6e 64 69 66 0d 0a 09 64 62 09 27 6b 20 43 50 2f 4d 20 76 65 72 73 20 27 0d 0a 09 64 62 09 76 65 ┆ndif db 'k CP/M vers ' db ve┆ 0x088c60…088c80 72 73 2f 31 30 2b 27 30 27 2c 27 2e 27 2c 76 65 72 73 20 6d 6f 64 20 31 30 2b 27 30 27 0d 0a 09 ┆rs/10+'0','.',vers mod 10+'0' ┆ 0x088c80…088ca0 64 62 09 63 72 2c 6c 66 2c 30 0d 0a 3b 0d 0a 62 6f 6f 74 3a 09 3b 70 72 69 6e 74 20 73 69 67 6e ┆db cr,lf,0 ; boot: ;print sign┆ 0x088ca0…088cc0 6f 6e 20 6d 65 73 73 61 67 65 20 61 6e 64 20 67 6f 20 74 6f 20 63 63 70 0d 0a 3b 09 28 6e 6f 74 ┆on message and go to ccp ; (not┆ 0x088cc0…088ce0 65 3a 20 6d 64 73 20 62 6f 6f 74 20 69 6e 69 74 69 61 6c 69 7a 65 64 20 69 6f 62 79 74 65 20 61 ┆e: mds boot initialized iobyte a┆ 0x088ce0…088d00 74 20 30 30 30 33 68 29 0d 0a 09 6c 78 69 09 73 70 2c 62 75 66 66 2b 38 30 68 0d 0a 09 6c 78 69 ┆t 0003h) lxi sp,buff+80h lxi┆ 0x088d00…088d20 09 68 2c 73 69 67 6e 6f 6e 0d 0a 09 63 61 6c 6c 09 70 72 6d 73 67 09 3b 70 72 69 6e 74 20 6d 65 ┆ h,signon call prmsg ;print me┆ 0x088d20…088d40 73 73 61 67 65 0d 0a 09 78 72 61 09 61 09 3b 63 6c 65 61 72 20 61 63 63 75 6d 75 6c 61 74 6f 72 ┆ssage xra a ;clear accumulator┆ 0x088d40…088d60 0d 0a 09 73 74 61 09 63 64 69 73 6b 09 3b 73 65 74 20 69 6e 69 74 69 61 6c 6c 79 20 74 6f 20 64 ┆ sta cdisk ;set initially to d┆ 0x088d60…088d80 69 73 6b 20 61 0d 0a 09 6a 6d 70 09 67 6f 63 70 6d 09 3b 67 6f 20 74 6f 20 63 70 2f 6d 0d 0a 3b ┆isk a jmp gocpm ;go to cp/m ;┆ 0x088d80…088da0 0d 0a 3b 0d 0a 77 62 6f 6f 74 3a 3b 09 6c 6f 61 64 65 72 20 6f 6e 20 74 72 61 63 6b 20 30 2c 20 ┆ ; wboot:; loader on track 0, ┆ 0x088da0…088dc0 73 65 63 74 6f 72 20 31 2c 20 77 68 69 63 68 20 77 69 6c 6c 20 62 65 20 73 6b 69 70 70 65 64 20 ┆sector 1, which will be skipped ┆ 0x088dc0…088de0 66 6f 72 20 77 61 72 6d 20 0d 0a 3b 09 72 65 61 64 20 63 70 2f 6d 20 66 72 6f 6d 20 64 69 73 6b ┆for warm ; read cp/m from disk┆ 0x088de0…088e00 20 2d 20 61 73 73 75 6d 69 6e 67 20 74 68 65 72 65 20 69 73 20 61 20 31 32 38 20 62 79 74 65 20 ┆ - assuming there is a 128 byte ┆ 0x088e00…088e20 (36, 1, 1) 64 6f 73 0d 0a 09 73 68 6c 64 09 36 09 3b 6a 6d 70 20 62 64 6f 73 20 61 74 20 6c 6f 63 61 74 69 ┆dos shld 6 ;jmp bdos at locati┆ 0x088e20…088e40 6f 6e 20 35 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 09 73 74 61 09 37 2a 38 09 3b 6a 6d ┆on 5 if not test sta 7*8 ;jm┆ 0x088e40…088e60 70 20 74 6f 20 6d 6f 6e 38 30 20 28 6d 61 79 20 68 61 76 65 20 62 65 65 6e 20 63 68 61 6e 67 65 ┆p to mon80 (may have been change┆ 0x088e60…088e80 64 20 62 79 20 64 64 74 29 0d 0a 09 6c 78 69 09 68 2c 6d 6f 6e 38 30 0d 0a 09 73 68 6c 64 09 37 ┆d by ddt) lxi h,mon80 shld 7┆ 0x088e80…088ea0 2a 38 2b 31 0d 0a 09 65 6e 64 69 66 0d 0a 3b 09 6c 65 61 76 65 20 69 6f 62 79 74 65 20 73 65 74 ┆*8+1 endif ; leave iobyte set┆ 0x088ea0…088ec0 0d 0a 3b 09 70 72 65 76 69 6f 75 73 6c 79 20 73 65 6c 65 63 74 65 64 20 64 69 73 6b 20 77 61 73 ┆ ; previously selected disk was┆ 0x088ec0…088ee0 20 62 2c 20 73 65 6e 64 20 70 61 72 61 6d 65 74 65 72 20 74 6f 20 63 70 6d 0d 0a 09 6c 64 61 09 ┆ b, send parameter to cpm lda ┆ 0x088ee0…088f00 63 64 69 73 6b 09 3b 6c 61 73 74 20 6c 6f 67 67 65 64 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a ┆cdisk ;last logged disk number ┆ 0x088f00…088f20 09 6d 6f 76 09 63 2c 61 09 3b 73 65 6e 64 20 74 6f 20 63 63 70 20 74 6f 20 6c 6f 67 20 69 74 20 ┆ mov c,a ;send to ccp to log it ┆ 0x088f20…088f40 69 6e 0d 0a 09 65 69 0d 0a 09 6a 6d 70 09 63 70 6d 62 0d 0a 3b 0d 0a 3b 09 65 72 72 6f 72 20 63 ┆in ei jmp cpmb ; ; error c┆ 0x088f40…088f60 6f 6e 64 69 74 69 6f 6e 20 6f 63 63 75 72 72 65 64 2c 20 70 72 69 6e 74 20 6d 65 73 73 61 67 65 ┆ondition occurred, print message┆ 0x088f60…088f80 20 61 6e 64 20 72 65 74 72 79 0d 0a 62 6f 6f 74 65 72 72 3a 0d 0a 09 70 6f 70 09 62 09 3b 72 65 ┆ and retry booterr: pop b ;re┆ 0x088f80…088fa0 63 61 6c 6c 20 63 6f 75 6e 74 73 0d 0a 09 64 63 72 09 63 0d 0a 09 6a 7a 09 62 6f 6f 74 65 72 30 ┆call counts dcr c jz booter0┆ 0x088fa0…088fc0 0d 0a 3b 09 74 72 79 20 61 67 61 69 6e 0d 0a 09 70 75 73 68 09 62 0d 0a 09 6a 6d 70 09 77 62 6f ┆ ; try again push b jmp wbo┆ 0x088fc0…088fe0 6f 74 30 0d 0a 3b 0d 0a 62 6f 6f 74 65 72 30 3a 0d 0a 3b 09 6f 74 68 65 72 77 69 73 65 20 74 6f ┆ot0 ; booter0: ; otherwise to┆ 0x088fe0…089000 6f 20 6d 61 6e 79 20 72 65 74 72 69 65 73 0d 0a 09 6c 78 69 09 68 2c 62 6f 6f 74 6d 73 67 0d 0a ┆o many retries lxi h,bootmsg ┆ 0x089000…089020 (36, 1, 2) 74 65 20 73 65 63 74 6f 72 20 62 63 20 75 73 69 6e 67 20 74 61 62 6c 65 20 61 74 20 64 65 0d 0a ┆te sector bc using table at de ┆ 0x089020…089040 09 6d 76 69 09 62 2c 30 09 3b 64 6f 75 62 6c 65 20 70 72 65 63 69 73 69 6f 6e 20 73 65 63 74 6f ┆ mvi b,0 ;double precision secto┆ 0x089040…089060 72 20 6e 75 6d 62 65 72 20 69 6e 20 42 43 0d 0a 09 78 63 68 67 09 09 3b 74 72 61 6e 73 6c 61 74 ┆r number in BC xchg ;translat┆ 0x089060…089080 65 20 74 61 62 6c 65 20 61 64 64 72 65 73 73 20 74 6f 20 48 4c 0d 0a 09 64 61 64 09 62 09 3b 74 ┆e table address to HL dad b ;t┆ 0x089080…0890a0 72 61 6e 73 6c 61 74 65 28 73 65 63 74 6f 72 29 20 61 64 64 72 65 73 73 0d 0a 09 6d 6f 76 09 61 ┆ranslate(sector) address mov a┆ 0x0890a0…0890c0 2c 6d 09 3b 74 72 61 6e 73 6c 61 74 65 64 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 74 6f 20 ┆,m ;translated sector number to ┆ 0x0890c0…0890e0 41 0d 0a 09 73 74 61 09 69 6f 73 0d 0a 09 6d 6f 76 09 6c 2c 61 09 3b 72 65 74 75 72 6e 20 73 65 ┆A sta ios mov l,a ;return se┆ 0x0890e0…089100 63 74 6f 72 20 6e 75 6d 62 65 72 20 69 6e 20 4c 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 73 65 74 64 6d ┆ctor number in L ret ; setdm┆ 0x089100…089120 61 3a 09 3b 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 67 69 76 65 6e 20 62 79 20 72 65 67 ┆a: ;set dma address given by reg┆ 0x089120…089140 73 20 62 2c 63 0d 0a 09 6d 6f 76 09 6c 2c 63 0d 0a 09 6d 6f 76 09 68 2c 62 0d 0a 09 73 68 6c 64 ┆s b,c mov l,c mov h,b shld┆ 0x089140…089160 09 69 6f 64 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 72 65 61 64 3a 09 3b 72 65 61 64 20 6e 65 78 74 20 ┆ iod ret ; read: ;read next ┆ 0x089160…089180 64 69 73 6b 20 72 65 63 6f 72 64 20 28 61 73 73 75 6d 69 6e 67 20 64 69 73 6b 2f 74 72 6b 2f 73 ┆disk record (assuming disk/trk/s┆ 0x089180…0891a0 65 63 2f 64 6d 61 20 73 65 74 29 0d 0a 09 6d 76 69 09 63 2c 72 65 61 64 66 09 3b 73 65 74 20 74 ┆ec/dma set) mvi c,readf ;set t┆ 0x0891a0…0891c0 6f 20 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 73 65 74 66 75 6e 63 0d 0a ┆o read function call setfunc ┆ 0x0891c0…0891e0 09 63 61 6c 6c 09 77 61 69 74 69 6f 09 3b 70 65 72 66 6f 72 6d 20 72 65 61 64 20 66 75 6e 63 74 ┆ call waitio ;perform read funct┆ 0x0891e0…089200 69 6f 6e 0d 0a 09 72 65 74 09 09 3b 6d 61 79 20 68 61 76 65 20 65 72 72 6f 72 20 73 65 74 20 69 ┆ion ret ;may have error set i┆ 0x089200…089220 (36, 1, 3) 64 0d 0a 3b 09 30 30 20 75 6e 6c 69 6e 6b 65 64 20 69 2f 6f 20 63 6f 6d 70 6c 65 74 65 2c 20 20 ┆d ; 00 unlinked i/o complete, ┆ 0x089220…089240 20 20 30 31 20 6c 69 6e 6b 65 64 20 69 2f 6f 20 63 6f 6d 70 6c 65 74 65 20 28 6e 6f 74 20 75 73 ┆ 01 linked i/o complete (not us┆ 0x089240…089260 65 64 29 0d 0a 3b 09 31 30 20 64 69 73 6b 20 73 74 61 74 75 73 20 63 68 61 6e 67 65 64 20 20 20 ┆ed) ; 10 disk status changed ┆ 0x089260…089280 20 20 20 20 31 31 20 28 6e 6f 74 20 75 73 65 64 29 0d 0a 09 63 70 69 09 31 30 62 09 09 3b 72 65 ┆ 11 (not used) cpi 10b ;re┆ 0x089280…0892a0 61 64 79 20 73 74 61 74 75 73 20 63 68 61 6e 67 65 3f 0d 0a 09 6a 7a 09 77 72 65 61 64 79 0d 0a ┆ady status change? jz wready ┆ 0x0892a0…0892c0 3b 0d 0a 3b 09 6d 75 73 74 20 62 65 20 30 30 20 69 6e 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 ┆; ; must be 00 in the accumulat┆ 0x0892c0…0892e0 6f 72 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 77 65 72 72 6f 72 09 09 3b 73 6f 6d 65 20 6f ┆or ora a jnz werror ;some o┆ 0x0892e0…089300 74 68 65 72 20 63 6f 6e 64 69 74 69 6f 6e 2c 20 72 65 74 72 79 0d 0a 3b 0d 0a 3b 09 63 68 65 63 ┆ther condition, retry ; ; chec┆ 0x089300…089320 6b 20 69 2f 6f 20 65 72 72 6f 72 20 62 69 74 73 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 0d 0a ┆k i/o error bits call inbyte ┆ 0x089320…089340 09 72 61 6c 0d 0a 09 6a 63 09 77 72 65 61 64 79 09 09 3b 75 6e 69 74 20 6e 6f 74 20 72 65 61 64 ┆ ral jc wready ;unit not read┆ 0x089340…089360 79 0d 0a 09 72 61 72 0d 0a 09 61 6e 69 09 31 31 31 31 31 31 31 30 62 09 3b 61 6e 79 20 6f 74 68 ┆y rar ani 11111110b ;any oth┆ 0x089360…089380 65 72 20 65 72 72 6f 72 73 3f 20 20 28 64 65 6c 65 74 65 64 20 64 61 74 61 20 6f 6b 29 0d 0a 09 ┆er errors? (deleted data ok) ┆ 0x089380…0893a0 6a 6e 7a 09 77 65 72 72 6f 72 0d 0a 3b 0d 0a 3b 09 72 65 61 64 20 6f 72 20 77 72 69 74 65 20 69 ┆jnz werror ; ; read or write i┆ 0x0893a0…0893c0 73 20 6f 6b 2c 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 63 6f 6e 74 61 69 6e 73 20 7a 65 72 6f 0d ┆s ok, accumulator contains zero ┆ 0x0893c0…0893e0 0a 09 72 65 74 0d 0a 3b 0d 0a 77 72 65 61 64 79 3a 09 3b 6e 6f 74 20 72 65 61 64 79 2c 20 74 72 ┆ ret ; wready: ;not ready, tr┆ 0x0893e0…089400 65 61 74 20 61 73 20 65 72 72 6f 72 20 66 6f 72 20 6e 6f 77 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 ┆eat as error for now call inby┆ 0x089400…089420 (36, 1, 4) 20 72 65 61 64 0d 0a 69 6f 74 3a 09 64 62 09 6f 66 66 73 65 74 09 3b 74 72 61 63 6b 20 6e 75 6d ┆ read iot: db offset ;track num┆ 0x089420…089440 62 65 72 0d 0a 69 6f 73 3a 09 64 62 09 31 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 0d 0a 69 ┆ber ios: db 1 ;sector number i┆ 0x089440…089460 6f 64 3a 09 64 77 09 62 75 66 66 09 3b 69 6f 20 61 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b 0d 0a 3b ┆od: dw buff ;io address ; ; ;┆ 0x089460…089480 09 64 65 66 69 6e 65 20 72 61 6d 20 61 72 65 61 73 20 66 6f 72 20 62 64 6f 73 20 6f 70 65 72 61 ┆ define ram areas for bdos opera┆ 0x089480…0894a0 74 69 6f 6e 0d 0a 09 65 6e 64 65 66 0d 0a 09 65 6e 64 0d 0a 3b 09 4d 44 53 2d 38 30 30 20 49 2f ┆tion endef end ; MDS-800 I/┆ 0x0894a0…0894c0 4f 20 44 72 69 76 65 72 73 20 66 6f 72 20 43 50 2f 4d 20 32 2e 32 0d 0a 3b 09 28 66 6f 75 72 20 ┆O Drivers for CP/M 2.2 ; (four ┆ 0x0894c0…0894e0 64 72 69 76 65 20 73 69 6e 67 6c 65 20 64 65 6e 73 69 74 79 20 76 65 72 73 69 6f 6e 29 0d 0a 3b ┆drive single density version) ;┆ 0x0894e0…089500 0d 0a 3b 09 56 65 72 73 69 6f 6e 20 32 2e 32 20 46 65 62 72 75 61 72 79 2c 20 31 39 38 30 0d 0a ┆ ; Version 2.2 February, 1980 ┆ 0x089500…089520 3b 0d 0a 76 65 72 73 09 65 71 75 09 32 32 09 3b 76 65 72 73 69 6f 6e 20 32 2e 32 0d 0a 3b 0d 0a ┆; vers equ 22 ;version 2.2 ; ┆ 0x089520…089540 3b 09 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 39 38 30 0d 0a 3b 09 44 69 67 69 74 61 6c 20 ┆; Copyright (c) 1980 ; Digital ┆ 0x089540…089560 52 65 73 65 61 72 63 68 0d 0a 3b 09 42 6f 78 20 35 37 39 2c 20 50 61 63 69 66 69 63 20 47 72 6f ┆Research ; Box 579, Pacific Gro┆ 0x089560…089580 76 65 0d 0a 3b 09 43 61 6c 69 66 6f 72 6e 69 61 2c 20 39 33 39 35 30 0d 0a 3b 0d 0a 3b 0d 0a 74 ┆ve ; California, 93950 ; ; t┆ 0x089580…0895a0 72 75 65 09 65 71 75 09 30 66 66 66 66 68 09 3b 76 61 6c 75 65 20 6f 66 20 22 74 72 75 65 22 0d ┆rue equ 0ffffh ;value of "true" ┆ 0x0895a0…0895c0 0a 66 61 6c 73 65 09 65 71 75 09 6e 6f 74 20 74 72 75 65 09 3b 22 66 61 6c 73 65 22 0d 0a 74 65 ┆ false equ not true ;"false" te┆ 0x0895c0…0895e0 73 74 09 65 71 75 09 66 61 6c 73 65 09 3b 74 72 75 65 20 69 66 20 74 65 73 74 20 62 69 6f 73 0d ┆st equ false ;true if test bios ┆ 0x0895e0…089600 0a 3b 0d 0a 09 69 66 09 74 65 73 74 0d 0a 62 69 61 73 09 65 71 75 09 30 33 34 30 30 68 09 3b 62 ┆ ; if test bias equ 03400h ;b┆ 0x089600…089620 (36, 1, 5) 09 63 61 6c 6c 09 70 72 6d 73 67 0d 0a 09 6a 6d 70 09 72 6d 6f 6e 38 30 09 3b 6d 64 73 20 68 61 ┆ call prmsg jmp rmon80 ;mds ha┆ 0x089620…089640 72 64 77 61 72 65 20 6d 6f 6e 69 74 6f 72 0d 0a 3b 0d 0a 62 6f 6f 74 6d 73 67 3a 0d 0a 09 64 62 ┆rdware monitor ; bootmsg: db┆ 0x089640…089660 09 27 3f 62 6f 6f 74 27 2c 30 0d 0a 3b 0d 0a 3b 0d 0a 63 6f 6e 73 74 3a 09 3b 63 6f 6e 73 6f 6c ┆ '?boot',0 ; ; const: ;consol┆ 0x089660…089680 65 20 73 74 61 74 75 73 20 74 6f 20 72 65 67 2d 61 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 ┆e status to reg-a ; (exactly th┆ 0x089680…0896a0 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 63 73 74 73 0d 0a ┆e same as mds call) jmp csts ┆ 0x0896a0…0896c0 3b 0d 0a 63 6f 6e 69 6e 3a 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 ┆; conin: ;console character to ┆ 0x0896c0…0896e0 72 65 67 2d 61 0d 0a 09 63 61 6c 6c 09 63 69 0d 0a 09 61 6e 69 09 37 66 68 09 3b 72 65 6d 6f 76 ┆reg-a call ci ani 7fh ;remov┆ 0x0896e0…089700 65 20 70 61 72 69 74 79 20 62 69 74 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 63 6f 6e 6f 75 74 3a 09 3b ┆e parity bit ret ; conout: ;┆ 0x089700…089720 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 66 72 6f 6d 20 63 20 74 6f 20 63 6f 6e 73 ┆console character from c to cons┆ 0x089720…089740 6f 6c 65 20 6f 75 74 0d 0a 09 6a 6d 70 09 63 6f 0d 0a 3b 0d 0a 6c 69 73 74 3a 09 3b 6c 69 73 74 ┆ole out jmp co ; list: ;list┆ 0x089740…089760 20 64 65 76 69 63 65 20 6f 75 74 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 ┆ device out ; (exactly the same┆ 0x089760…089780 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 6c 6f 0d 0a 3b 0d 0a 6c 69 73 74 73 ┆ as mds call) jmp lo ; lists┆ 0x089780…0897a0 74 3a 0d 0a 09 3b 72 65 74 75 72 6e 20 6c 69 73 74 20 73 74 61 74 75 73 0d 0a 09 78 72 61 09 61 ┆t: ;return list status xra a┆ 0x0897a0…0897c0 0d 0a 09 72 65 74 09 09 3b 61 6c 77 61 79 73 20 6e 6f 74 20 72 65 61 64 79 0d 0a 3b 0d 0a 70 75 ┆ ret ;always not ready ; pu┆ 0x0897c0…0897e0 6e 63 68 3a 09 3b 70 75 6e 63 68 20 64 65 76 69 63 65 20 6f 75 74 0d 0a 3b 09 28 65 78 61 63 74 ┆nch: ;punch device out ; (exact┆ 0x0897e0…089800 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 70 ┆ly the same as mds call) jmp p┆ 0x089800…089820 (36, 1, 6) 6e 20 72 65 67 2d 61 0d 0a 3b 0d 0a 3b 0d 0a 77 72 69 74 65 3a 09 3b 64 69 73 6b 20 77 72 69 74 ┆n reg-a ; ; write: ;disk writ┆ 0x089820…089840 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6d 76 69 09 63 2c 77 72 69 74 66 0d 0a 09 63 61 6c 6c 09 ┆e function mvi c,writf call ┆ 0x089840…089860 73 65 74 66 75 6e 63 09 3b 73 65 74 20 74 6f 20 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a ┆setfunc ;set to write function ┆ 0x089860…089880 09 63 61 6c 6c 09 77 61 69 74 69 6f 0d 0a 09 72 65 74 09 09 3b 6d 61 79 20 68 61 76 65 20 65 72 ┆ call waitio ret ;may have er┆ 0x089880…0898a0 72 6f 72 20 73 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 75 74 69 6c 69 74 79 20 73 75 62 72 6f 75 74 ┆ror set ; ; ; utility subrout┆ 0x0898a0…0898c0 69 6e 65 73 0d 0a 70 72 6d 73 67 3a 09 3b 70 72 69 6e 74 20 6d 65 73 73 61 67 65 20 61 74 20 68 ┆ines prmsg: ;print message at h┆ 0x0898c0…0898e0 2c 6c 20 74 6f 20 30 0d 0a 09 6d 6f 76 09 61 2c 6d 0d 0a 09 6f 72 61 09 61 09 3b 7a 65 72 6f 3f ┆,l to 0 mov a,m ora a ;zero?┆ 0x0898e0…089900 0d 0a 09 72 7a 0d 0a 3b 09 6d 6f 72 65 20 74 6f 20 70 72 69 6e 74 0d 0a 09 70 75 73 68 09 68 0d ┆ rz ; more to print push h ┆ 0x089900…089920 0a 09 6d 6f 76 09 63 2c 61 0d 0a 09 63 61 6c 6c 09 63 6f 6e 6f 75 74 0d 0a 09 70 6f 70 09 68 0d ┆ mov c,a call conout pop h ┆ 0x089920…089940 0a 09 69 6e 78 09 68 0d 0a 09 6a 6d 70 09 70 72 6d 73 67 0d 0a 3b 0d 0a 73 65 74 66 75 6e 63 3a ┆ inx h jmp prmsg ; setfunc:┆ 0x089940…089960 0d 0a 3b 09 73 65 74 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 6e 65 78 74 20 69 2f 6f 20 28 63 ┆ ; set function for next i/o (c┆ 0x089960…089980 6f 6d 6d 61 6e 64 20 69 6e 20 72 65 67 2d 63 29 0d 0a 09 6c 78 69 09 68 2c 69 6f 66 09 3b 69 6f ┆ommand in reg-c) lxi h,iof ;io┆ 0x089980…0899a0 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 72 65 73 73 0d 0a 09 6d 6f 76 09 61 2c 6d 09 3b 67 65 74 ┆ function address mov a,m ;get┆ 0x0899a0…0899c0 20 69 74 20 74 6f 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 66 6f 72 20 6d 61 73 6b 69 6e 67 0d 0a ┆ it to accumulator for masking ┆ 0x0899c0…0899e0 09 61 6e 69 09 31 31 31 31 31 30 30 30 62 09 3b 72 65 6d 6f 76 65 20 70 72 65 76 69 6f 75 73 20 ┆ ani 11111000b ;remove previous ┆ 0x0899e0…089a00 63 6f 6d 6d 61 6e 64 0d 0a 09 6f 72 61 09 63 09 3b 73 65 74 20 74 6f 20 6e 65 77 20 63 6f 6d 6d ┆command ora c ;set to new comm┆ 0x089a00…089a20 (36, 1, 7) 74 65 09 09 3b 63 6c 65 61 72 20 72 65 73 75 6c 74 20 62 79 74 65 0d 0a 09 6a 6d 70 09 74 72 79 ┆te ;clear result byte jmp try┆ 0x089a20…089a40 63 6f 75 6e 74 0d 0a 3b 0d 0a 77 65 72 72 6f 72 3a 09 3b 72 65 74 75 72 6e 20 68 61 72 64 77 61 ┆count ; werror: ;return hardwa┆ 0x089a40…089a60 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 20 28 63 72 63 2c 20 74 72 61 63 6b 2c 20 73 65 65 6b ┆re malfunction (crc, track, seek┆ 0x089a60…089a80 2c 20 65 74 63 2e 29 0d 0a 3b 09 74 68 65 20 6d 64 73 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 68 61 ┆, etc.) ; the mds controller ha┆ 0x089a80…089aa0 73 20 72 65 74 75 72 6e 65 64 20 61 20 62 69 74 20 69 6e 20 65 61 63 68 20 70 6f 73 69 74 69 6f ┆s returned a bit in each positio┆ 0x089aa0…089ac0 6e 0d 0a 3b 09 6f 66 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 2c 20 63 6f 72 72 65 73 70 ┆n ; of the accumulator, corresp┆ 0x089ac0…089ae0 6f 6e 64 69 6e 67 20 74 6f 20 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e 73 3a 0d 0a 3b 09 30 09 2d ┆onding to the conditions: ; 0 -┆ 0x089ae0…089b00 20 64 65 6c 65 74 65 64 20 64 61 74 61 20 28 61 63 63 65 70 74 65 64 20 61 73 20 6f 6b 20 61 62 ┆ deleted data (accepted as ok ab┆ 0x089b00…089b20 6f 76 65 29 0d 0a 3b 09 31 09 2d 20 63 72 63 20 65 72 72 6f 72 0d 0a 3b 09 32 09 2d 20 73 65 65 ┆ove) ; 1 - crc error ; 2 - see┆ 0x089b20…089b40 6b 20 65 72 72 6f 72 0d 0a 3b 09 33 09 2d 20 61 64 64 72 65 73 73 20 65 72 72 6f 72 20 28 68 61 ┆k error ; 3 - address error (ha┆ 0x089b40…089b60 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 34 09 2d 20 64 61 74 61 20 ┆rdware malfunction) ; 4 - data ┆ 0x089b60…089b80 6f 76 65 72 2f 75 6e 64 65 72 20 66 6c 6f 77 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e ┆over/under flow (hardware malfun┆ 0x089b80…089ba0 63 74 69 6f 6e 29 0d 0a 3b 09 35 09 2d 20 77 72 69 74 65 20 70 72 6f 74 65 63 74 20 28 74 72 65 ┆ction) ; 5 - write protect (tre┆ 0x089ba0…089bc0 61 74 65 64 20 61 73 20 6e 6f 74 20 72 65 61 64 79 29 0d 0a 3b 09 36 09 2d 20 77 72 69 74 65 20 ┆ated as not ready) ; 6 - write ┆ 0x089bc0…089be0 65 72 72 6f 72 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 ┆error (hardware malfunction) ; ┆ 0x089be0…089c00 37 09 2d 20 6e 6f 74 20 72 65 61 64 79 0d 0a 3b 09 28 61 63 63 75 6d 75 6c 61 74 6f 72 20 62 69 ┆7 - not ready ; (accumulator bi┆ 0x089c00…089c20 (36, 1, 8) 61 73 65 20 6f 66 20 43 43 50 20 69 6e 20 74 65 73 74 20 73 79 73 74 65 6d 0d 0a 09 65 6e 64 69 ┆ase of CCP in test system endi┆ 0x089c20…089c40 66 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 62 69 61 73 09 65 71 75 09 30 30 30 30 68 09 ┆f if not test bias equ 0000h ┆ 0x089c40…089c60 3b 67 65 6e 65 72 61 74 65 20 72 65 6c 6f 63 61 74 61 62 6c 65 20 63 70 2f 6d 20 73 79 73 74 65 ┆;generate relocatable cp/m syste┆ 0x089c60…089c80 6d 0d 0a 09 65 6e 64 69 66 0d 0a 3b 0d 0a 70 61 74 63 68 09 65 71 75 09 31 36 30 30 68 0d 0a 3b ┆m endif ; patch equ 1600h ;┆ 0x089c80…089ca0 0d 0a 09 6f 72 67 09 70 61 74 63 68 0d 0a 63 70 6d 62 09 65 71 75 09 24 2d 70 61 74 63 68 09 3b ┆ org patch cpmb equ $-patch ;┆ 0x089ca0…089cc0 62 61 73 65 20 6f 66 20 63 70 6d 20 63 6f 6e 73 6f 6c 65 20 70 72 6f 63 65 73 73 6f 72 0d 0a 62 ┆base of cpm console processor b┆ 0x089cc0…089ce0 64 6f 73 09 65 71 75 09 38 30 36 68 2b 63 70 6d 62 09 3b 62 61 73 69 63 20 64 6f 73 20 28 72 65 ┆dos equ 806h+cpmb ;basic dos (re┆ 0x089ce0…089d00 73 69 64 65 6e 74 20 70 6f 72 74 69 6f 6e 29 0d 0a 63 70 6d 6c 09 65 71 75 09 24 2d 63 70 6d 62 ┆sident portion) cpml equ $-cpmb┆ 0x089d00…089d20 09 3b 6c 65 6e 67 74 68 20 28 69 6e 20 62 79 74 65 73 29 20 6f 66 20 63 70 6d 20 73 79 73 74 65 ┆ ;length (in bytes) of cpm syste┆ 0x089d20…089d40 6d 0d 0a 6e 73 65 63 74 73 09 65 71 75 09 63 70 6d 6c 2f 31 32 38 09 3b 6e 75 6d 62 65 72 20 6f ┆m nsects equ cpml/128 ;number o┆ 0x089d40…089d60 66 20 73 65 63 74 6f 72 73 20 74 6f 20 6c 6f 61 64 0d 0a 6f 66 66 73 65 74 09 65 71 75 09 32 09 ┆f sectors to load offset equ 2 ┆ 0x089d60…089d80 3b 6e 75 6d 62 65 72 20 6f 66 20 64 69 73 6b 20 74 72 61 63 6b 73 20 75 73 65 64 20 62 79 20 63 ┆;number of disk tracks used by c┆ 0x089d80…089da0 70 2f 6d 0d 0a 63 64 69 73 6b 09 65 71 75 09 30 30 30 34 68 09 3b 61 64 64 72 65 73 73 20 6f 66 ┆p/m cdisk equ 0004h ;address of┆ 0x089da0…089dc0 20 6c 61 73 74 20 6c 6f 67 67 65 64 20 64 69 73 6b 20 6f 6e 20 77 61 72 6d 20 73 74 61 72 74 0d ┆ last logged disk on warm start ┆ 0x089dc0…089de0 0a 62 75 66 66 09 65 71 75 09 30 30 38 30 68 09 3b 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 ┆ buff equ 0080h ;default buffer ┆ 0x089de0…089e00 61 64 64 72 65 73 73 0d 0a 72 65 74 72 79 09 65 71 75 09 31 30 09 3b 6d 61 78 20 72 65 74 72 69 ┆address retry equ 10 ;max retri┆ 0x089e00…089e20 (36, 1, 9) 6f 0d 0a 3b 0d 0a 72 65 61 64 65 72 3a 09 3b 72 65 61 64 65 72 20 63 68 61 72 61 63 74 65 72 20 ┆o ; reader: ;reader character ┆ 0x089e20…089e40 69 6e 20 74 6f 20 72 65 67 2d 61 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 ┆in to reg-a ; (exactly the same┆ 0x089e40…089e60 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 72 69 0d 0a 3b 0d 0a 68 6f 6d 65 3a ┆ as mds call) jmp ri ; home:┆ 0x089e60…089e80 09 3b 6d 6f 76 65 20 74 6f 20 68 6f 6d 65 20 70 6f 73 69 74 69 6f 6e 0d 0a 3b 09 74 72 65 61 74 ┆ ;move to home position ; treat┆ 0x089e80…089ea0 20 61 73 20 74 72 61 63 6b 20 30 30 20 73 65 65 6b 0d 0a 09 6d 76 69 09 63 2c 30 0d 0a 09 6a 6d ┆ as track 00 seek mvi c,0 jm┆ 0x089ea0…089ec0 70 09 73 65 74 74 72 6b 0d 0a 3b 0d 0a 73 65 6c 64 73 6b 3a 09 3b 73 65 6c 65 63 74 20 64 69 73 ┆p settrk ; seldsk: ;select dis┆ 0x089ec0…089ee0 6b 20 67 69 76 65 6e 20 62 79 20 72 65 67 69 73 74 65 72 20 63 0d 0a 09 6c 78 69 09 68 2c 30 30 ┆k given by register c lxi h,00┆ 0x089ee0…089f00 30 30 68 09 3b 72 65 74 75 72 6e 20 30 30 30 30 20 69 66 20 65 72 72 6f 72 0d 0a 09 6d 6f 76 09 ┆00h ;return 0000 if error mov ┆ 0x089f00…089f20 61 2c 63 0d 0a 09 63 70 69 09 6e 64 69 73 6b 73 09 3b 74 6f 6f 20 6c 61 72 67 65 3f 0d 0a 09 72 ┆a,c cpi ndisks ;too large? r┆ 0x089f20…089f40 6e 63 09 09 3b 6c 65 61 76 65 20 48 4c 20 3d 20 30 30 30 30 0d 0a 3b 0d 0a 09 61 6e 69 09 31 30 ┆nc ;leave HL = 0000 ; ani 10┆ 0x089f40…089f60 62 09 3b 30 30 20 30 30 20 66 6f 72 20 64 72 69 76 65 20 30 2c 31 20 61 6e 64 20 31 30 20 31 30 ┆b ;00 00 for drive 0,1 and 10 10┆ 0x089f60…089f80 20 66 6f 72 20 64 72 69 76 65 20 32 2c 33 0d 0a 09 73 74 61 09 64 62 61 6e 6b 09 3b 74 6f 20 73 ┆ for drive 2,3 sta dbank ;to s┆ 0x089f80…089fa0 65 6c 65 63 74 20 64 72 69 76 65 20 62 61 6e 6b 0d 0a 09 6d 6f 76 09 61 2c 63 09 3b 30 30 2c 20 ┆elect drive bank mov a,c ;00, ┆ 0x089fa0…089fc0 30 31 2c 20 31 30 2c 20 31 31 0d 0a 09 61 6e 69 09 31 62 09 3b 6d 64 73 20 68 61 73 20 30 2c 31 ┆01, 10, 11 ani 1b ;mds has 0,1┆ 0x089fc0…089fe0 20 61 74 20 37 38 2c 20 32 2c 33 20 61 74 20 38 38 0d 0a 09 6f 72 61 09 61 09 3b 72 65 73 75 6c ┆ at 78, 2,3 at 88 ora a ;resul┆ 0x089fe0…08a000 74 20 30 30 3f 0d 0a 09 6a 7a 09 73 65 74 64 72 69 76 65 0d 0a 09 6d 76 69 09 61 2c 30 30 31 31 ┆t 00? jz setdrive mvi a,0011┆ 0x08a000…08a020 (36, 1, 10) 61 6e 64 0d 0a 09 6d 6f 76 09 6d 2c 61 09 3b 72 65 70 6c 61 63 65 64 20 69 6e 20 69 6f 70 62 0d ┆and mov m,a ;replaced in iopb ┆ 0x08a020…08a040 0a 3b 09 74 68 65 20 6d 64 73 2d 38 30 30 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 72 65 71 75 69 72 ┆ ; the mds-800 controller requir┆ 0x08a040…08a060 65 73 20 64 69 73 6b 20 62 61 6e 6b 20 62 69 74 20 69 6e 20 73 65 63 74 6f 72 20 62 79 74 65 0d ┆es disk bank bit in sector byte ┆ 0x08a060…08a080 0a 3b 09 6d 61 73 6b 20 74 68 65 20 62 69 74 20 66 72 6f 6d 20 74 68 65 20 63 75 72 72 65 6e 74 ┆ ; mask the bit from the current┆ 0x08a080…08a0a0 20 69 2f 6f 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 61 6e 69 09 30 30 31 30 30 30 30 30 62 09 3b 6d ┆ i/o function ani 00100000b ;m┆ 0x08a0a0…08a0c0 61 73 6b 20 74 68 65 20 64 69 73 6b 20 73 65 6c 65 63 74 20 62 69 74 0d 0a 09 6c 78 69 09 68 2c ┆ask the disk select bit lxi h,┆ 0x08a0c0…08a0e0 69 6f 73 09 09 3b 61 64 64 72 65 73 73 20 74 68 65 20 73 65 63 74 6f 72 20 73 65 6c 65 63 74 20 ┆ios ;address the sector select ┆ 0x08a0e0…08a100 62 79 74 65 0d 0a 09 6f 72 61 09 6d 09 09 3b 73 65 6c 65 63 74 20 70 72 6f 70 65 72 20 64 69 73 ┆byte ora m ;select proper dis┆ 0x08a100…08a120 6b 20 62 61 6e 6b 0d 0a 09 6d 6f 76 09 6d 2c 61 09 09 3b 73 65 74 20 64 69 73 6b 20 73 65 6c 65 ┆k bank mov m,a ;set disk sele┆ 0x08a120…08a140 63 74 20 62 69 74 20 6f 6e 2f 6f 66 66 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 77 61 69 74 69 6f 3a 0d ┆ct bit on/off ret ; waitio: ┆ 0x08a140…08a160 0a 09 6d 76 69 09 63 2c 72 65 74 72 79 09 3b 6d 61 78 20 72 65 74 72 69 65 73 20 62 65 66 6f 72 ┆ mvi c,retry ;max retries befor┆ 0x08a160…08a180 65 20 70 65 72 6d 20 65 72 72 6f 72 0d 0a 72 65 77 61 69 74 3a 0d 0a 3b 09 73 74 61 72 74 20 74 ┆e perm error rewait: ; start t┆ 0x08a180…08a1a0 68 65 20 69 2f 6f 20 66 75 6e 63 74 69 6f 6e 20 61 6e 64 20 77 61 69 74 20 66 6f 72 20 63 6f 6d ┆he i/o function and wait for com┆ 0x08a1a0…08a1c0 70 6c 65 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 69 6e 74 79 70 65 09 3b 69 6e 20 72 74 79 70 65 0d ┆pletion call intype ;in rtype ┆ 0x08a1c0…08a1e0 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 09 3b 63 6c 65 61 72 73 20 74 68 65 20 63 6f 6e 74 72 6f ┆ call inbyte ;clears the contro┆ 0x08a1e0…08a200 6c 6c 65 72 0d 0a 3b 0d 0a 09 6c 64 61 09 64 62 61 6e 6b 09 09 3b 73 65 74 20 62 61 6e 6b 20 66 ┆ller ; lda dbank ;set bank f┆ 0x08a200…08a220 (36, 1, 11) 74 73 20 61 72 65 20 6e 75 6d 62 65 72 65 64 20 37 20 36 20 35 20 34 20 33 20 32 20 31 20 30 29 ┆ts are numbered 7 6 5 4 3 2 1 0)┆ 0x08a220…08a240 0d 0a 3b 0d 0a 3b 09 69 74 20 6d 61 79 20 62 65 20 75 73 65 66 75 6c 20 74 6f 20 66 69 6c 74 65 ┆ ; ; it may be useful to filte┆ 0x08a240…08a260 72 20 6f 75 74 20 74 68 65 20 76 61 72 69 6f 75 73 20 63 6f 6e 64 69 74 69 6f 6e 73 2c 0d 0a 3b ┆r out the various conditions, ;┆ 0x08a260…08a280 09 62 75 74 20 77 65 20 77 69 6c 6c 20 67 65 74 20 61 20 70 65 72 6d 61 6e 65 6e 74 20 65 72 72 ┆ but we will get a permanent err┆ 0x08a280…08a2a0 6f 72 20 6d 65 73 73 61 67 65 20 69 66 20 69 74 20 69 73 20 6e 6f 74 0d 0a 3b 09 72 65 63 6f 76 ┆or message if it is not ; recov┆ 0x08a2a0…08a2c0 65 72 61 62 6c 65 2e 20 20 69 6e 20 61 6e 79 20 63 61 73 65 2c 20 74 68 65 20 6e 6f 74 20 72 65 ┆erable. in any case, the not re┆ 0x08a2c0…08a2e0 61 64 79 20 63 6f 6e 64 69 74 69 6f 6e 20 69 73 0d 0a 3b 09 74 72 65 61 74 65 64 20 61 73 20 61 ┆ady condition is ; treated as a┆ 0x08a2e0…08a300 20 73 65 70 61 72 61 74 65 20 63 6f 6e 64 69 74 69 6f 6e 20 66 6f 72 20 6c 61 74 65 72 20 69 6d ┆ separate condition for later im┆ 0x08a300…08a320 70 72 6f 76 65 6d 65 6e 74 0d 0a 74 72 79 63 6f 75 6e 74 3a 0d 0a 3b 09 72 65 67 69 73 74 65 72 ┆provement trycount: ; register┆ 0x08a320…08a340 20 63 20 63 6f 6e 74 61 69 6e 73 20 72 65 74 72 79 20 63 6f 75 6e 74 2c 20 64 65 63 72 65 6d 65 ┆ c contains retry count, decreme┆ 0x08a340…08a360 6e 74 20 27 74 69 6c 20 7a 65 72 6f 0d 0a 09 64 63 72 09 63 0d 0a 09 6a 6e 7a 09 72 65 77 61 69 ┆nt 'til zero dcr c jnz rewai┆ 0x08a360…08a380 74 09 3b 66 6f 72 20 61 6e 6f 74 68 65 72 20 74 72 79 0d 0a 3b 0d 0a 3b 09 63 61 6e 6e 6f 74 20 ┆t ;for another try ; ; cannot ┆ 0x08a380…08a3a0 72 65 63 6f 76 65 72 20 66 72 6f 6d 20 65 72 72 6f 72 0d 0a 09 6d 76 69 09 61 2c 31 09 3b 65 72 ┆recover from error mvi a,1 ;er┆ 0x08a3a0…08a3c0 72 6f 72 20 63 6f 64 65 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 09 69 6e 74 79 70 65 2c 20 69 6e 62 ┆ror code ret ; ; intype, inb┆ 0x08a3c0…08a3e0 79 74 65 2c 20 69 6e 73 74 61 74 20 72 65 61 64 20 64 72 69 76 65 20 62 61 6e 6b 20 30 30 20 6f ┆yte, instat read drive bank 00 o┆ 0x08a3e0…08a400 72 20 31 30 0d 0a 69 6e 74 79 70 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d ┆r 10 intype: lda dbank ora a ┆ 0x08a400…08a420 (36, 1, 12) 65 73 20 6f 6e 20 64 69 73 6b 20 69 2f 6f 20 62 65 66 6f 72 65 20 65 72 72 6f 72 0d 0a 3b 0d 0a ┆es on disk i/o before error ; ┆ 0x08a420…08a440 3b 09 70 65 72 66 6f 72 6d 20 66 6f 6c 6c 6f 77 69 6e 67 20 66 75 6e 63 74 69 6f 6e 73 0d 0a 3b ┆; perform following functions ;┆ 0x08a440…08a460 09 62 6f 6f 74 09 63 6f 6c 64 20 73 74 61 72 74 0d 0a 3b 09 77 62 6f 6f 74 09 77 61 72 6d 20 73 ┆ boot cold start ; wboot warm s┆ 0x08a460…08a480 74 61 72 74 20 28 73 61 76 65 20 69 2f 6f 20 62 79 74 65 29 0d 0a 3b 09 28 62 6f 6f 74 20 61 6e ┆tart (save i/o byte) ; (boot an┆ 0x08a480…08a4a0 64 20 77 62 6f 6f 74 20 61 72 65 20 74 68 65 20 73 61 6d 65 20 66 6f 72 20 6d 64 73 29 0d 0a 3b ┆d wboot are the same for mds) ;┆ 0x08a4a0…08a4c0 09 63 6f 6e 73 74 09 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 0d 0a 3b 09 09 72 65 67 2d 61 20 ┆ const console status ; reg-a ┆ 0x08a4c0…08a4e0 3d 20 30 30 20 69 66 20 6e 6f 20 63 68 61 72 61 63 74 65 72 20 72 65 61 64 79 0d 0a 3b 09 09 72 ┆= 00 if no character ready ; r┆ 0x08a4e0…08a500 65 67 2d 61 20 3d 20 66 66 20 69 66 20 63 68 61 72 61 63 74 65 72 20 72 65 61 64 79 0d 0a 3b 09 ┆eg-a = ff if character ready ; ┆ 0x08a500…08a520 63 6f 6e 69 6e 09 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 28 72 65 73 75 ┆conin console character in (resu┆ 0x08a520…08a540 6c 74 20 69 6e 20 72 65 67 2d 61 29 0d 0a 3b 09 63 6f 6e 6f 75 74 09 63 6f 6e 73 6f 6c 65 20 63 ┆lt in reg-a) ; conout console c┆ 0x08a540…08a560 68 61 72 61 63 74 65 72 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 ┆haracter out (char in reg-c) ; ┆ 0x08a560…08a580 6c 69 73 74 09 6c 69 73 74 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b ┆list list out (char in reg-c) ;┆ 0x08a580…08a5a0 09 70 75 6e 63 68 09 70 75 6e 63 68 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 ┆ punch punch out (char in reg-c)┆ 0x08a5a0…08a5c0 0d 0a 3b 09 72 65 61 64 65 72 09 70 61 70 65 72 20 74 61 70 65 20 72 65 61 64 65 72 20 69 6e 20 ┆ ; reader paper tape reader in ┆ 0x08a5c0…08a5e0 28 72 65 73 75 6c 74 20 74 6f 20 72 65 67 2d 61 29 0d 0a 3b 09 68 6f 6d 65 09 6d 6f 76 65 20 74 ┆(result to reg-a) ; home move t┆ 0x08a5e0…08a600 6f 20 74 72 61 63 6b 20 30 30 0d 0a 3b 0d 0a 3b 09 28 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 ┆o track 00 ; ; (the following ┆ 0x08a600…08a620 (36, 1, 13) 30 30 30 30 62 09 3b 73 65 6c 65 63 74 73 20 64 72 69 76 65 20 31 20 69 6e 20 62 61 6e 6b 0d 0a ┆0000b ;selects drive 1 in bank ┆ 0x08a620…08a640 73 65 74 64 72 69 76 65 3a 0d 0a 09 6d 6f 76 09 62 2c 61 09 3b 73 61 76 65 20 74 68 65 20 66 75 ┆setdrive: mov b,a ;save the fu┆ 0x08a640…08a660 6e 63 74 69 6f 6e 0d 0a 09 6c 78 69 09 68 2c 69 6f 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 0d ┆nction lxi h,iof ;io function ┆ 0x08a660…08a680 0a 09 6d 6f 76 09 61 2c 6d 0d 0a 09 61 6e 69 09 31 31 30 30 31 31 31 31 62 09 3b 6d 61 73 6b 20 ┆ mov a,m ani 11001111b ;mask ┆ 0x08a680…08a6a0 6f 75 74 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6f 72 61 09 62 09 3b 6d 61 73 6b 20 69 6e ┆out disk number ora b ;mask in┆ 0x08a6a0…08a6c0 20 6e 65 77 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6d 6f 76 09 6d 2c 61 09 3b 73 61 76 65 ┆ new disk number mov m,a ;save┆ 0x08a6c0…08a6e0 20 69 74 20 69 6e 20 69 6f 70 62 0d 0a 09 6d 6f 76 09 6c 2c 63 0d 0a 09 6d 76 69 09 68 2c 30 09 ┆ it in iopb mov l,c mvi h,0 ┆ 0x08a6e0…08a700 3b 48 4c 3d 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 64 61 64 09 68 09 3b 2a 32 0d 0a 09 64 61 ┆;HL=disk number dad h ;*2 da┆ 0x08a700…08a720 64 09 68 09 3b 2a 34 0d 0a 09 64 61 64 09 68 09 3b 2a 38 0d 0a 09 64 61 64 09 68 09 3b 2a 31 36 ┆d h ;*4 dad h ;*8 dad h ;*16┆ 0x08a720…08a740 0d 0a 09 6c 78 69 09 64 2c 64 70 62 61 73 65 0d 0a 09 64 61 64 09 64 09 3b 48 4c 3d 64 69 73 6b ┆ lxi d,dpbase dad d ;HL=disk┆ 0x08a740…08a760 20 68 65 61 64 65 72 20 74 61 62 6c 65 20 61 64 64 72 65 73 73 0d 0a 09 72 65 74 0d 0a 3b 0d 0a ┆ header table address ret ; ┆ 0x08a760…08a780 3b 0d 0a 73 65 74 74 72 6b 3a 09 3b 73 65 74 20 74 72 61 63 6b 20 61 64 64 72 65 73 73 20 67 69 ┆; settrk: ;set track address gi┆ 0x08a780…08a7a0 76 65 6e 20 62 79 20 63 0d 0a 09 6c 78 69 09 68 2c 69 6f 74 0d 0a 09 6d 6f 76 09 6d 2c 63 0d 0a ┆ven by c lxi h,iot mov m,c ┆ 0x08a7a0…08a7c0 09 72 65 74 0d 0a 3b 0d 0a 73 65 74 73 65 63 3a 09 3b 73 65 74 20 73 65 63 74 6f 72 20 6e 75 6d ┆ ret ; setsec: ;set sector num┆ 0x08a7c0…08a7e0 62 65 72 20 67 69 76 65 6e 20 62 79 20 63 0d 0a 09 6c 78 69 09 68 2c 69 6f 73 0d 0a 09 6d 6f 76 ┆ber given by c lxi h,ios mov┆ 0x08a7e0…08a800 09 6d 2c 63 0d 0a 09 72 65 74 0d 0a 73 65 63 74 72 61 6e 3a 0d 0a 09 09 3b 74 72 61 6e 73 6c 61 ┆ m,c ret sectran: ;transla┆ 0x08a800…08a820 (36, 1, 14) 6c 61 67 73 0d 0a 09 6f 72 61 09 61 09 09 3b 7a 65 72 6f 20 69 66 20 64 72 69 76 65 20 30 2c 31 ┆lags ora a ;zero if drive 0,1┆ 0x08a820…08a840 20 61 6e 64 20 6e 7a 20 69 66 20 32 2c 33 0d 0a 09 6d 76 69 09 61 2c 69 6f 70 62 20 61 6e 64 20 ┆ and nz if 2,3 mvi a,iopb and ┆ 0x08a840…08a860 30 66 66 68 09 3b 6c 6f 77 20 61 64 64 72 65 73 73 20 66 6f 72 20 69 6f 70 62 0d 0a 09 6d 76 69 ┆0ffh ;low address for iopb mvi┆ 0x08a860…08a880 09 62 2c 69 6f 70 62 20 73 68 72 20 38 09 3b 68 69 67 68 20 61 64 64 72 65 73 73 20 66 6f 72 20 ┆ b,iopb shr 8 ;high address for ┆ 0x08a880…08a8a0 69 6f 70 62 0d 0a 09 6a 6e 7a 09 69 6f 64 72 31 09 3b 64 72 69 76 65 20 62 61 6e 6b 20 31 3f 0d ┆iopb jnz iodr1 ;drive bank 1? ┆ 0x08a8a0…08a8c0 0a 09 6f 75 74 09 69 6c 6f 77 09 09 3b 6c 6f 77 20 61 64 64 72 65 73 73 20 74 6f 20 63 6f 6e 74 ┆ out ilow ;low address to cont┆ 0x08a8c0…08a8e0 72 6f 6c 6c 65 72 0d 0a 09 6d 6f 76 09 61 2c 62 0d 0a 09 6f 75 74 09 69 68 69 67 68 09 3b 68 69 ┆roller mov a,b out ihigh ;hi┆ 0x08a8e0…08a900 67 68 20 61 64 64 72 65 73 73 0d 0a 09 6a 6d 70 09 77 61 69 74 30 09 09 3b 74 6f 20 77 61 69 74 ┆gh address jmp wait0 ;to wait┆ 0x08a900…08a920 20 66 6f 72 20 63 6f 6d 70 6c 65 74 65 0d 0a 3b 0d 0a 69 6f 64 72 31 3a 09 3b 64 72 69 76 65 20 ┆ for complete ; iodr1: ;drive ┆ 0x08a920…08a940 62 61 6e 6b 20 31 0d 0a 09 6f 75 74 09 69 6c 6f 77 2b 31 30 68 09 3b 38 38 20 66 6f 72 20 64 72 ┆bank 1 out ilow+10h ;88 for dr┆ 0x08a940…08a960 69 76 65 20 62 61 6e 6b 20 31 30 0d 0a 09 6d 6f 76 09 61 2c 62 0d 0a 09 6f 75 74 09 69 68 69 67 ┆ive bank 10 mov a,b out ihig┆ 0x08a960…08a980 68 2b 31 30 68 0d 0a 3b 0d 0a 77 61 69 74 30 3a 09 63 61 6c 6c 09 69 6e 73 74 61 74 09 09 3b 77 ┆h+10h ; wait0: call instat ;w┆ 0x08a980…08a9a0 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 0d 0a 09 61 6e 69 09 69 6f 72 64 79 09 09 ┆ait for completion ani iordy ┆ 0x08a9a0…08a9c0 3b 72 65 61 64 79 3f 0d 0a 09 6a 7a 09 77 61 69 74 30 0d 0a 3b 0d 0a 3b 09 63 68 65 63 6b 20 69 ┆;ready? jz wait0 ; ; check i┆ 0x08a9c0…08a9e0 6f 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 6f 6b 0d 0a 09 63 61 6c 6c 09 69 6e 74 79 70 65 09 09 3b ┆o completion ok call intype ;┆ 0x08a9e0…08aa00 6d 75 73 74 20 62 65 20 69 6f 20 63 6f 6d 70 6c 65 74 65 20 28 30 30 29 20 75 6e 6c 69 6e 6b 65 ┆must be io complete (00) unlinke┆ 0x08aa00…08aa20 (36, 1, 15) 0a 09 6a 6e 7a 09 69 6e 74 79 70 31 09 3b 73 6b 69 70 20 74 6f 20 62 61 6e 6b 20 31 30 0d 0a 09 ┆ jnz intyp1 ;skip to bank 10 ┆ 0x08aa20…08aa40 69 6e 09 72 74 79 70 65 0d 0a 09 72 65 74 0d 0a 69 6e 74 79 70 31 3a 09 69 6e 09 72 74 79 70 65 ┆in rtype ret intyp1: in rtype┆ 0x08aa40…08aa60 2b 31 30 68 09 3b 37 38 20 66 6f 72 20 30 2c 31 20 20 38 38 20 66 6f 72 20 32 2c 33 0d 0a 09 72 ┆+10h ;78 for 0,1 88 for 2,3 r┆ 0x08aa60…08aa80 65 74 0d 0a 3b 0d 0a 69 6e 62 79 74 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 ┆et ; inbyte: lda dbank ora a┆ 0x08aa80…08aaa0 0d 0a 09 6a 6e 7a 09 69 6e 62 79 74 31 0d 0a 09 69 6e 09 72 62 79 74 65 0d 0a 09 72 65 74 0d 0a ┆ jnz inbyt1 in rbyte ret ┆ 0x08aaa0…08aac0 69 6e 62 79 74 31 3a 09 69 6e 09 72 62 79 74 65 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 69 ┆inbyt1: in rbyte+10h ret ; i┆ 0x08aac0…08aae0 6e 73 74 61 74 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 ┆nstat: lda dbank ora a jnz i┆ 0x08aae0…08ab00 6e 73 74 61 31 0d 0a 09 69 6e 09 64 73 74 61 74 0d 0a 09 72 65 74 0d 0a 69 6e 73 74 61 31 3a 09 ┆nsta1 in dstat ret insta1: ┆ 0x08ab00…08ab20 69 6e 09 64 73 74 61 74 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 ┆in dstat+10h ret ; ; ; ; d┆ 0x08ab20…08ab40 61 74 61 20 61 72 65 61 73 20 28 6d 75 73 74 20 62 65 20 69 6e 20 72 61 6d 29 0d 0a 64 62 61 6e ┆ata areas (must be in ram) dban┆ 0x08ab40…08ab60 6b 3a 09 64 62 09 30 09 3b 64 69 73 6b 20 62 61 6e 6b 20 30 30 20 69 66 20 64 72 69 76 65 20 30 ┆k: db 0 ;disk bank 00 if drive 0┆ 0x08ab60…08ab80 2c 31 0d 0a 09 09 09 3b 09 20 20 20 31 30 20 69 66 20 64 72 69 76 65 20 32 2c 33 0d 0a 69 6f 70 ┆,1 ; 10 if drive 2,3 iop┆ 0x08ab80…08aba0 62 3a 09 3b 69 6f 20 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 0d 0a 09 64 62 09 38 30 68 09 ┆b: ;io parameter block db 80h ┆ 0x08aba0…08abc0 3b 6e 6f 72 6d 61 6c 20 69 2f 6f 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 69 6f 66 3a 09 64 62 09 72 ┆;normal i/o operation iof: db r┆ 0x08abc0…08abe0 65 61 64 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 2c 20 69 6e 69 74 69 61 6c 20 72 65 61 64 0d ┆eadf ;io function, initial read ┆ 0x08abe0…08ac00 0a 69 6f 6e 3a 09 64 62 09 31 09 3b 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 20 74 6f ┆ ion: db 1 ;number of sectors to┆ 0x08ac00…08ac20 (37, 0, 1) 63 61 6c 6c 73 20 73 65 74 2d 75 70 20 74 68 65 20 69 6f 20 70 61 72 61 6d 65 74 65 72 20 62 6c ┆calls set-up the io parameter bl┆ 0x08ac20…08ac40 6f 63 6b 20 66 6f 72 20 74 68 65 0d 0a 3b 09 6d 64 73 2c 20 77 68 69 63 68 20 69 73 20 75 73 65 ┆ock for the ; mds, which is use┆ 0x08ac40…08ac60 64 20 74 6f 20 70 65 72 66 6f 72 6d 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 73 20 61 6e ┆d to perform subsequent reads an┆ 0x08ac60…08ac80 64 20 77 72 69 74 65 73 29 0d 0a 3b 09 73 65 6c 64 73 6b 09 73 65 6c 65 63 74 20 64 69 73 6b 20 ┆d writes) ; seldsk select disk ┆ 0x08ac80…08aca0 67 69 76 65 6e 20 62 79 20 72 65 67 2d 63 20 28 30 2c 31 2c 32 2e 2e 2e 29 0d 0a 3b 09 73 65 74 ┆given by reg-c (0,1,2...) ; set┆ 0x08aca0…08acc0 74 72 6b 09 73 65 74 20 74 72 61 63 6b 20 61 64 64 72 65 73 73 20 28 30 2c 2e 2e 2e 37 36 29 20 ┆trk set track address (0,...76) ┆ 0x08acc0…08ace0 66 6f 72 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 2f 77 72 69 74 65 0d 0a 3b 09 73 65 74 ┆for subsequent read/write ; set┆ 0x08ace0…08ad00 73 65 63 09 73 65 74 20 73 65 63 74 6f 72 20 61 64 64 72 65 73 73 20 28 31 2c 2e 2e 2e 2c 32 36 ┆sec set sector address (1,...,26┆ 0x08ad00…08ad20 29 20 66 6f 72 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 2f 77 72 69 74 65 0d 0a 3b 09 73 ┆) for subsequent read/write ; s┆ 0x08ad20…08ad40 65 74 64 6d 61 09 73 65 74 20 73 75 62 73 65 71 75 65 6e 74 20 64 6d 61 20 61 64 64 72 65 73 73 ┆etdma set subsequent dma address┆ 0x08ad40…08ad60 20 28 69 6e 69 74 69 61 6c 6c 79 20 38 30 68 29 0d 0a 3b 0d 0a 3b 09 28 72 65 61 64 20 61 6e 64 ┆ (initially 80h) ; ; (read and┆ 0x08ad60…08ad80 20 77 72 69 74 65 20 61 73 73 75 6d 65 20 70 72 65 76 69 6f 75 73 20 63 61 6c 6c 73 20 74 6f 20 ┆ write assume previous calls to ┆ 0x08ad80…08ada0 73 65 74 20 75 70 20 74 68 65 20 69 6f 20 70 61 72 61 6d 65 74 65 72 73 29 0d 0a 3b 09 72 65 61 ┆set up the io parameters) ; rea┆ 0x08ada0…08adc0 64 09 72 65 61 64 20 74 72 61 63 6b 2f 73 65 63 74 6f 72 20 74 6f 20 70 72 65 73 65 74 20 64 6d ┆d read track/sector to preset dm┆ 0x08adc0…08ade0 61 20 61 64 64 72 65 73 73 0d 0a 3b 09 77 72 69 74 65 09 77 72 69 74 65 20 74 72 61 63 6b 2f 73 ┆a address ; write write track/s┆ 0x08ade0…08ae00 65 63 74 6f 72 20 66 72 6f 6d 20 70 72 65 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 3b ┆ector from preset dma address ;┆ 0x08ae00…08ae20 (37, 0, 2) 6e 70 75 74 29 0d 0a 72 62 79 74 65 09 65 71 75 09 62 61 73 65 2b 33 09 3b 72 65 73 75 6c 74 20 ┆nput) rbyte equ base+3 ;result ┆ 0x08ae20…08ae40 62 79 74 65 20 28 69 6e 70 75 74 29 0d 0a 3b 0d 0a 69 6c 6f 77 09 65 71 75 09 62 61 73 65 2b 31 ┆byte (input) ; ilow equ base+1┆ 0x08ae40…08ae60 09 3b 69 6f 70 62 20 6c 6f 77 20 61 64 64 72 65 73 73 20 28 6f 75 74 70 75 74 29 0d 0a 69 68 69 ┆ ;iopb low address (output) ihi┆ 0x08ae60…08ae80 67 68 09 65 71 75 09 62 61 73 65 2b 32 09 3b 69 6f 70 62 20 68 69 67 68 20 61 64 64 72 65 73 73 ┆gh equ base+2 ;iopb high address┆ 0x08ae80…08aea0 20 28 6f 75 74 70 75 74 29 0d 0a 3b 0d 0a 72 65 61 64 66 09 65 71 75 09 34 68 09 3b 72 65 61 64 ┆ (output) ; readf equ 4h ;read┆ 0x08aea0…08aec0 20 66 75 6e 63 74 69 6f 6e 0d 0a 77 72 69 74 66 09 65 71 75 09 36 68 09 3b 77 72 69 74 65 20 66 ┆ function writf equ 6h ;write f┆ 0x08aec0…08aee0 75 6e 63 74 69 6f 6e 0d 0a 72 65 63 61 6c 09 65 71 75 09 33 68 09 3b 72 65 63 61 6c 69 62 72 61 ┆unction recal equ 3h ;recalibra┆ 0x08aee0…08af00 74 65 20 64 72 69 76 65 0d 0a 69 6f 72 64 79 09 65 71 75 09 34 68 09 3b 69 2f 6f 20 66 69 6e 69 ┆te drive iordy equ 4h ;i/o fini┆ 0x08af00…08af20 73 68 65 64 20 6d 61 73 6b 0d 0a 63 72 09 65 71 75 09 30 64 68 09 3b 63 61 72 72 69 61 67 65 20 ┆shed mask cr equ 0dh ;carriage ┆ 0x08af20…08af40 72 65 74 75 72 6e 0d 0a 6c 66 09 65 71 75 09 30 61 68 09 3b 6c 69 6e 65 20 66 65 65 64 0d 0a 3b ┆return lf equ 0ah ;line feed ;┆ 0x08af40…08af60 0d 0a 73 69 67 6e 6f 6e 3a 09 3b 73 69 67 6e 6f 6e 20 6d 65 73 73 61 67 65 3a 20 78 78 6b 20 63 ┆ signon: ;signon message: xxk c┆ 0x08af60…08af80 70 2f 6d 20 76 65 72 73 20 79 2e 79 0d 0a 09 64 62 09 63 72 2c 6c 66 2c 6c 66 0d 0a 09 69 66 09 ┆p/m vers y.y db cr,lf,lf if ┆ 0x08af80…08afa0 74 65 73 74 0d 0a 09 64 62 09 27 33 32 27 09 3b 33 32 6b 20 65 78 61 6d 70 6c 65 20 62 69 6f 73 ┆test db '32' ;32k example bios┆ 0x08afa0…08afc0 0d 0a 09 65 6e 64 69 66 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 09 64 62 09 27 30 30 27 ┆ endif if not test db '00'┆ 0x08afc0…08afe0 09 3b 6d 65 6d 6f 72 79 20 73 69 7a 65 20 66 69 6c 6c 65 64 20 62 79 20 72 65 6c 6f 63 61 74 6f ┆ ;memory size filled by relocato┆ 0x08afe0…08b000 72 0d 0a 09 65 6e 64 69 66 0d 0a 09 64 62 09 27 6b 20 43 50 2f 4d 20 76 65 72 73 20 27 0d 0a 09 ┆r endif db 'k CP/M vers ' ┆ 0x08b000…08b020 (37, 0, 3) 72 65 73 73 0d 0a 67 6f 63 70 6d 3a 09 3b 28 65 6e 74 65 72 20 68 65 72 65 20 66 72 6f 6d 20 63 ┆ress gocpm: ;(enter here from c┆ 0x08b020…08b040 6f 6c 64 20 73 74 61 72 74 20 62 6f 6f 74 29 0d 0a 3b 09 65 6e 61 62 6c 65 20 72 73 74 30 20 61 ┆old start boot) ; enable rst0 a┆ 0x08b040…08b060 6e 64 20 72 73 74 37 0d 0a 09 64 69 0d 0a 09 6d 76 69 09 61 2c 31 32 68 09 3b 69 6e 69 74 69 61 ┆nd rst7 di mvi a,12h ;initia┆ 0x08b060…08b080 6c 69 7a 65 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6f 75 74 09 72 65 76 72 74 0d 0a 09 78 72 61 09 61 ┆lize command out revrt xra a┆ 0x08b080…08b0a0 0d 0a 09 6f 75 74 09 69 6e 74 63 09 3b 63 6c 65 61 72 65 64 0d 0a 09 6d 76 69 09 61 2c 69 6e 74 ┆ out intc ;cleared mvi a,int┆ 0x08b0a0…08b0c0 65 09 3b 72 73 74 30 20 61 6e 64 20 72 73 74 37 20 62 69 74 73 20 6f 6e 0d 0a 09 6f 75 74 09 69 ┆e ;rst0 and rst7 bits on out i┆ 0x08b0c0…08b0e0 6e 74 63 0d 0a 09 78 72 61 09 61 0d 0a 09 6f 75 74 09 69 63 6f 6e 09 3b 69 6e 74 65 72 72 75 70 ┆ntc xra a out icon ;interrup┆ 0x08b0e0…08b100 74 20 63 6f 6e 74 72 6f 6c 0d 0a 3b 0d 0a 3b 09 73 65 74 20 64 65 66 61 75 6c 74 20 62 75 66 66 ┆t control ; ; set default buff┆ 0x08b100…08b120 65 72 20 61 64 64 72 65 73 73 20 74 6f 20 38 30 68 0d 0a 09 6c 78 69 09 62 2c 62 75 66 66 0d 0a ┆er address to 80h lxi b,buff ┆ 0x08b120…08b140 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 3b 0d 0a 3b 09 72 65 73 65 74 20 6d 6f 6e 69 74 6f 72 ┆ call setdma ; ; reset monitor┆ 0x08b140…08b160 20 65 6e 74 72 79 20 70 6f 69 6e 74 73 0d 0a 09 6d 76 69 09 61 2c 6a 6d 70 0d 0a 09 73 74 61 09 ┆ entry points mvi a,jmp sta ┆ 0x08b160…08b180 30 0d 0a 09 6c 78 69 09 68 2c 77 62 6f 6f 74 65 0d 0a 09 73 68 6c 64 09 31 09 3b 6a 6d 70 20 77 ┆0 lxi h,wboote shld 1 ;jmp w┆ 0x08b180…08b1a0 62 6f 6f 74 20 61 74 20 6c 6f 63 61 74 69 6f 6e 20 30 30 0d 0a 09 73 74 61 09 35 0d 0a 09 6c 78 ┆boot at location 00 sta 5 lx┆ 0x08b1a0…08b1c0 69 09 68 2c 62 64 6f 73 0d 0a 09 73 68 6c 64 09 36 09 3b 6a 6d 70 20 62 64 6f 73 20 61 74 20 6c ┆i h,bdos shld 6 ;jmp bdos at l┆ 0x08b1c0…08b1e0 6f 63 61 74 69 6f 6e 20 35 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 09 73 74 61 09 37 2a ┆ocation 5 if not test sta 7*┆ 0x08b1e0…08b200 38 09 3b 6a 6d 70 20 74 6f 20 6d 6f 6e 38 30 20 28 6d 61 79 20 68 61 76 65 20 62 65 65 6e 20 63 ┆8 ;jmp to mon80 (may have been c┆ 0x08b200…08b220 (37, 0, 4) 74 69 6f 6e 0d 0a 09 6d 6f 76 09 61 2c 6d 0d 0a 09 61 6e 69 09 31 31 30 30 31 31 31 31 62 09 3b ┆tion mov a,m ani 11001111b ;┆ 0x08b220…08b240 6d 61 73 6b 20 6f 75 74 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6f 72 61 09 62 09 3b 6d 61 ┆mask out disk number ora b ;ma┆ 0x08b240…08b260 73 6b 20 69 6e 20 6e 65 77 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6d 6f 76 09 6d 2c 61 09 ┆sk in new disk number mov m,a ┆ 0x08b260…08b280 3b 73 61 76 65 20 69 74 20 69 6e 20 69 6f 70 62 0d 0a 09 6d 6f 76 09 6c 2c 63 0d 0a 09 6d 76 69 ┆;save it in iopb mov l,c mvi┆ 0x08b280…08b2a0 09 68 2c 30 09 3b 48 4c 3d 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 64 61 64 09 68 09 3b 2a 32 ┆ h,0 ;HL=disk number dad h ;*2┆ 0x08b2a0…08b2c0 0d 0a 09 64 61 64 09 68 09 3b 2a 34 0d 0a 09 64 61 64 09 68 09 3b 2a 38 0d 0a 09 64 61 64 09 68 ┆ dad h ;*4 dad h ;*8 dad h┆ 0x08b2c0…08b2e0 09 3b 2a 31 36 0d 0a 09 6c 78 69 09 64 2c 64 70 62 61 73 65 0d 0a 09 64 61 64 09 64 09 3b 48 4c ┆ ;*16 lxi d,dpbase dad d ;HL┆ 0x08b2e0…08b300 3d 64 69 73 6b 20 68 65 61 64 65 72 20 74 61 62 6c 65 20 61 64 64 72 65 73 73 0d 0a 09 72 65 74 ┆=disk header table address ret┆ 0x08b300…08b320 0d 0a 3b 0d 0a 3b 0d 0a 73 65 74 74 72 6b 3a 09 3b 73 65 74 20 74 72 61 63 6b 20 61 64 64 72 65 ┆ ; ; settrk: ;set track addre┆ 0x08b320…08b340 73 73 20 67 69 76 65 6e 20 62 79 20 63 0d 0a 09 6c 78 69 09 68 2c 69 6f 74 0d 0a 09 6d 6f 76 09 ┆ss given by c lxi h,iot mov ┆ 0x08b340…08b360 6d 2c 63 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 73 65 74 73 65 63 3a 09 3b 73 65 74 20 73 65 63 74 6f ┆m,c ret ; setsec: ;set secto┆ 0x08b360…08b380 72 20 6e 75 6d 62 65 72 20 67 69 76 65 6e 20 62 79 20 63 0d 0a 09 6c 78 69 09 68 2c 69 6f 73 0d ┆r number given by c lxi h,ios ┆ 0x08b380…08b3a0 0a 09 6d 6f 76 09 6d 2c 63 0d 0a 09 72 65 74 0d 0a 73 65 63 74 72 61 6e 3a 0d 0a 09 09 3b 74 72 ┆ mov m,c ret sectran: ;tr┆ 0x08b3a0…08b3c0 61 6e 73 6c 61 74 65 20 73 65 63 74 6f 72 20 62 63 20 75 73 69 6e 67 20 74 61 62 6c 65 20 61 74 ┆anslate sector bc using table at┆ 0x08b3c0…08b3e0 20 64 65 0d 0a 09 6d 76 69 09 62 2c 30 09 3b 64 6f 75 62 6c 65 20 70 72 65 63 69 73 69 6f 6e 20 ┆ de mvi b,0 ;double precision ┆ 0x08b3e0…08b400 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 69 6e 20 42 43 0d 0a 09 78 63 68 67 09 09 3b 74 72 61 ┆sector number in BC xchg ;tra┆ 0x08b400…08b420 (37, 0, 5) 0d 0a 3b 09 6a 75 6d 70 20 76 65 63 74 6f 72 20 66 6f 72 20 69 6e 64 69 76 69 75 61 6c 20 72 6f ┆ ; jump vector for indiviual ro┆ 0x08b420…08b440 75 74 69 6e 65 73 0d 0a 09 6a 6d 70 09 62 6f 6f 74 0d 0a 77 62 6f 6f 74 65 3a 09 6a 6d 70 09 77 ┆utines jmp boot wboote: jmp w┆ 0x08b440…08b460 62 6f 6f 74 0d 0a 09 6a 6d 70 09 63 6f 6e 73 74 0d 0a 09 6a 6d 70 09 63 6f 6e 69 6e 0d 0a 09 6a ┆boot jmp const jmp conin j┆ 0x08b460…08b480 6d 70 09 63 6f 6e 6f 75 74 0d 0a 09 6a 6d 70 09 6c 69 73 74 0d 0a 09 6a 6d 70 09 70 75 6e 63 68 ┆mp conout jmp list jmp punch┆ 0x08b480…08b4a0 0d 0a 09 6a 6d 70 09 72 65 61 64 65 72 0d 0a 09 6a 6d 70 09 68 6f 6d 65 0d 0a 09 6a 6d 70 09 73 ┆ jmp reader jmp home jmp s┆ 0x08b4a0…08b4c0 65 6c 64 73 6b 0d 0a 09 6a 6d 70 09 73 65 74 74 72 6b 0d 0a 09 6a 6d 70 09 73 65 74 73 65 63 0d ┆eldsk jmp settrk jmp setsec ┆ 0x08b4c0…08b4e0 0a 09 6a 6d 70 09 73 65 74 64 6d 61 0d 0a 09 6a 6d 70 09 72 65 61 64 0d 0a 09 6a 6d 70 09 77 72 ┆ jmp setdma jmp read jmp wr┆ 0x08b4e0…08b500 69 74 65 0d 0a 09 6a 6d 70 09 6c 69 73 74 73 74 09 3b 6c 69 73 74 20 73 74 61 74 75 73 0d 0a 09 ┆ite jmp listst ;list status ┆ 0x08b500…08b520 6a 6d 70 09 73 65 63 74 72 61 6e 0d 0a 3b 0d 0a 09 6d 61 63 6c 69 62 09 64 69 73 6b 64 65 66 09 ┆jmp sectran ; maclib diskdef ┆ 0x08b520…08b540 3b 6c 6f 61 64 20 74 68 65 20 64 69 73 6b 20 64 65 66 69 6e 69 74 69 6f 6e 20 6c 69 62 72 61 72 ┆;load the disk definition librar┆ 0x08b540…08b560 79 0d 0a 09 64 69 73 6b 73 09 34 09 3b 66 6f 75 72 20 64 69 73 6b 73 0d 0a 09 64 69 73 6b 64 65 ┆y disks 4 ;four disks diskde┆ 0x08b560…08b580 66 09 30 2c 31 2c 32 36 2c 36 2c 31 30 32 34 2c 32 34 33 2c 36 34 2c 36 34 2c 6f 66 66 73 65 74 ┆f 0,1,26,6,1024,243,64,64,offset┆ 0x08b580…08b5a0 0d 0a 09 64 69 73 6b 64 65 66 09 31 2c 30 0d 0a 09 64 69 73 6b 64 65 66 09 32 2c 30 0d 0a 09 64 ┆ diskdef 1,0 diskdef 2,0 d┆ 0x08b5a0…08b5c0 69 73 6b 64 65 66 09 33 2c 30 0d 0a 3b 09 65 6e 64 65 66 20 6f 63 63 75 72 73 20 61 74 20 65 6e ┆iskdef 3,0 ; endef occurs at en┆ 0x08b5c0…08b5e0 64 20 6f 66 20 61 73 73 65 6d 62 6c 79 0d 0a 3b 0d 0a 3b 09 65 6e 64 20 6f 66 20 63 6f 6e 74 72 ┆d of assembly ; ; end of contr┆ 0x08b5e0…08b600 6f 6c 6c 65 72 20 2d 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 63 6f 64 65 2c 20 74 68 65 20 72 65 ┆oller - independent code, the re┆ 0x08b600…08b620 (37, 0, 6) 64 62 09 76 65 72 73 2f 31 30 2b 27 30 27 2c 27 2e 27 2c 76 65 72 73 20 6d 6f 64 20 31 30 2b 27 ┆db vers/10+'0','.',vers mod 10+'┆ 0x08b620…08b640 30 27 0d 0a 09 64 62 09 63 72 2c 6c 66 2c 30 0d 0a 3b 0d 0a 62 6f 6f 74 3a 09 3b 70 72 69 6e 74 ┆0' db cr,lf,0 ; boot: ;print┆ 0x08b640…08b660 20 73 69 67 6e 6f 6e 20 6d 65 73 73 61 67 65 20 61 6e 64 20 67 6f 20 74 6f 20 63 63 70 0d 0a 3b ┆ signon message and go to ccp ;┆ 0x08b660…08b680 09 28 6e 6f 74 65 3a 20 6d 64 73 20 62 6f 6f 74 20 69 6e 69 74 69 61 6c 69 7a 65 64 20 69 6f 62 ┆ (note: mds boot initialized iob┆ 0x08b680…08b6a0 79 74 65 20 61 74 20 30 30 30 33 68 29 0d 0a 09 6c 78 69 09 73 70 2c 62 75 66 66 2b 38 30 68 0d ┆yte at 0003h) lxi sp,buff+80h ┆ 0x08b6a0…08b6c0 0a 09 6c 78 69 09 68 2c 73 69 67 6e 6f 6e 0d 0a 09 63 61 6c 6c 09 70 72 6d 73 67 09 3b 70 72 69 ┆ lxi h,signon call prmsg ;pri┆ 0x08b6c0…08b6e0 6e 74 20 6d 65 73 73 61 67 65 0d 0a 09 78 72 61 09 61 09 3b 63 6c 65 61 72 20 61 63 63 75 6d 75 ┆nt message xra a ;clear accumu┆ 0x08b6e0…08b700 6c 61 74 6f 72 0d 0a 09 73 74 61 09 63 64 69 73 6b 09 3b 73 65 74 20 69 6e 69 74 69 61 6c 6c 79 ┆lator sta cdisk ;set initially┆ 0x08b700…08b720 20 74 6f 20 64 69 73 6b 20 61 0d 0a 09 6a 6d 70 09 67 6f 63 70 6d 09 3b 67 6f 20 74 6f 20 63 70 ┆ to disk a jmp gocpm ;go to cp┆ 0x08b720…08b740 2f 6d 0d 0a 3b 0d 0a 3b 0d 0a 77 62 6f 6f 74 3a 3b 09 6c 6f 61 64 65 72 20 6f 6e 20 74 72 61 63 ┆/m ; ; wboot:; loader on trac┆ 0x08b740…08b760 6b 20 30 2c 20 73 65 63 74 6f 72 20 31 2c 20 77 68 69 63 68 20 77 69 6c 6c 20 62 65 20 73 6b 69 ┆k 0, sector 1, which will be ski┆ 0x08b760…08b780 70 70 65 64 20 66 6f 72 20 77 61 72 6d 20 0d 0a 3b 09 72 65 61 64 20 63 70 2f 6d 20 66 72 6f 6d ┆pped for warm ; read cp/m from┆ 0x08b780…08b7a0 20 64 69 73 6b 20 2d 20 61 73 73 75 6d 69 6e 67 20 74 68 65 72 65 20 69 73 20 61 20 31 32 38 20 ┆ disk - assuming there is a 128 ┆ 0x08b7a0…08b7c0 62 79 74 65 20 63 6f 6c 64 20 73 74 61 72 74 0d 0a 3b 09 73 74 61 72 74 2e 0d 0a 3b 0d 0a 09 6c ┆byte cold start ; start. ; l┆ 0x08b7c0…08b7e0 78 69 09 73 70 2c 62 75 66 66 09 3b 75 73 69 6e 67 20 64 6d 61 20 2d 20 74 68 75 73 20 38 30 20 ┆xi sp,buff ;using dma - thus 80 ┆ 0x08b7e0…08b800 74 68 72 75 20 66 66 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 73 74 61 63 6b 0d 0a 3b 0d 0a ┆thru ff available for stack ; ┆ 0x08b800…08b820 (37, 0, 7) 68 61 6e 67 65 64 20 62 79 20 64 64 74 29 0d 0a 09 6c 78 69 09 68 2c 6d 6f 6e 38 30 0d 0a 09 73 ┆hanged by ddt) lxi h,mon80 s┆ 0x08b820…08b840 68 6c 64 09 37 2a 38 2b 31 0d 0a 09 65 6e 64 69 66 0d 0a 3b 09 6c 65 61 76 65 20 69 6f 62 79 74 ┆hld 7*8+1 endif ; leave iobyt┆ 0x08b840…08b860 65 20 73 65 74 0d 0a 3b 09 70 72 65 76 69 6f 75 73 6c 79 20 73 65 6c 65 63 74 65 64 20 64 69 73 ┆e set ; previously selected dis┆ 0x08b860…08b880 6b 20 77 61 73 20 62 2c 20 73 65 6e 64 20 70 61 72 61 6d 65 74 65 72 20 74 6f 20 63 70 6d 0d 0a ┆k was b, send parameter to cpm ┆ 0x08b880…08b8a0 09 6c 64 61 09 63 64 69 73 6b 09 3b 6c 61 73 74 20 6c 6f 67 67 65 64 20 64 69 73 6b 20 6e 75 6d ┆ lda cdisk ;last logged disk num┆ 0x08b8a0…08b8c0 62 65 72 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 73 65 6e 64 20 74 6f 20 63 63 70 20 74 6f 20 6c 6f ┆ber mov c,a ;send to ccp to lo┆ 0x08b8c0…08b8e0 67 20 69 74 20 69 6e 0d 0a 09 65 69 0d 0a 09 6a 6d 70 09 63 70 6d 62 0d 0a 3b 0d 0a 3b 09 65 72 ┆g it in ei jmp cpmb ; ; er┆ 0x08b8e0…08b900 72 6f 72 20 63 6f 6e 64 69 74 69 6f 6e 20 6f 63 63 75 72 72 65 64 2c 20 70 72 69 6e 74 20 6d 65 ┆ror condition occurred, print me┆ 0x08b900…08b920 73 73 61 67 65 20 61 6e 64 20 72 65 74 72 79 0d 0a 62 6f 6f 74 65 72 72 3a 0d 0a 09 70 6f 70 09 ┆ssage and retry booterr: pop ┆ 0x08b920…08b940 62 09 3b 72 65 63 61 6c 6c 20 63 6f 75 6e 74 73 0d 0a 09 64 63 72 09 63 0d 0a 09 6a 7a 09 62 6f ┆b ;recall counts dcr c jz bo┆ 0x08b940…08b960 6f 74 65 72 30 0d 0a 3b 09 74 72 79 20 61 67 61 69 6e 0d 0a 09 70 75 73 68 09 62 0d 0a 09 6a 6d ┆oter0 ; try again push b jm┆ 0x08b960…08b980 70 09 77 62 6f 6f 74 30 0d 0a 3b 0d 0a 62 6f 6f 74 65 72 30 3a 0d 0a 3b 09 6f 74 68 65 72 77 69 ┆p wboot0 ; booter0: ; otherwi┆ 0x08b980…08b9a0 73 65 20 74 6f 6f 20 6d 61 6e 79 20 72 65 74 72 69 65 73 0d 0a 09 6c 78 69 09 68 2c 62 6f 6f 74 ┆se too many retries lxi h,boot┆ 0x08b9a0…08b9c0 6d 73 67 0d 0a 09 63 61 6c 6c 09 70 72 6d 73 67 0d 0a 09 6a 6d 70 09 72 6d 6f 6e 38 30 09 3b 6d ┆msg call prmsg jmp rmon80 ;m┆ 0x08b9c0…08b9e0 64 73 20 68 61 72 64 77 61 72 65 20 6d 6f 6e 69 74 6f 72 0d 0a 3b 0d 0a 62 6f 6f 74 6d 73 67 3a ┆ds hardware monitor ; bootmsg:┆ 0x08b9e0…08ba00 0d 0a 09 64 62 09 27 3f 62 6f 6f 74 27 2c 30 0d 0a 3b 0d 0a 3b 0d 0a 63 6f 6e 73 74 3a 09 3b 63 ┆ db '?boot',0 ; ; const: ;c┆ 0x08ba00…08ba20 (37, 0, 8) 6e 73 6c 61 74 65 20 74 61 62 6c 65 20 61 64 64 72 65 73 73 20 74 6f 20 48 4c 0d 0a 09 64 61 64 ┆nslate table address to HL dad┆ 0x08ba20…08ba40 09 62 09 3b 74 72 61 6e 73 6c 61 74 65 28 73 65 63 74 6f 72 29 20 61 64 64 72 65 73 73 0d 0a 09 ┆ b ;translate(sector) address ┆ 0x08ba40…08ba60 6d 6f 76 09 61 2c 6d 09 3b 74 72 61 6e 73 6c 61 74 65 64 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 ┆mov a,m ;translated sector numbe┆ 0x08ba60…08ba80 72 20 74 6f 20 41 0d 0a 09 73 74 61 09 69 6f 73 0d 0a 09 6d 6f 76 09 6c 2c 61 09 3b 72 65 74 75 ┆r to A sta ios mov l,a ;retu┆ 0x08ba80…08baa0 72 6e 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 69 6e 20 4c 0d 0a 09 72 65 74 0d 0a 3b 0d 0a ┆rn sector number in L ret ; ┆ 0x08baa0…08bac0 73 65 74 64 6d 61 3a 09 3b 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 67 69 76 65 6e 20 62 ┆setdma: ;set dma address given b┆ 0x08bac0…08bae0 79 20 72 65 67 73 20 62 2c 63 0d 0a 09 6d 6f 76 09 6c 2c 63 0d 0a 09 6d 6f 76 09 68 2c 62 0d 0a ┆y regs b,c mov l,c mov h,b ┆ 0x08bae0…08bb00 09 73 68 6c 64 09 69 6f 64 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 72 65 61 64 3a 09 3b 72 65 61 64 20 ┆ shld iod ret ; read: ;read ┆ 0x08bb00…08bb20 6e 65 78 74 20 64 69 73 6b 20 72 65 63 6f 72 64 20 28 61 73 73 75 6d 69 6e 67 20 64 69 73 6b 2f ┆next disk record (assuming disk/┆ 0x08bb20…08bb40 74 72 6b 2f 73 65 63 2f 64 6d 61 20 73 65 74 29 0d 0a 09 6d 76 69 09 63 2c 72 65 61 64 66 09 3b ┆trk/sec/dma set) mvi c,readf ;┆ 0x08bb40…08bb60 73 65 74 20 74 6f 20 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 73 65 74 66 ┆set to read function call setf┆ 0x08bb60…08bb80 75 6e 63 0d 0a 09 63 61 6c 6c 09 77 61 69 74 69 6f 09 3b 70 65 72 66 6f 72 6d 20 72 65 61 64 20 ┆unc call waitio ;perform read ┆ 0x08bb80…08bba0 66 75 6e 63 74 69 6f 6e 0d 0a 09 72 65 74 09 09 3b 6d 61 79 20 68 61 76 65 20 65 72 72 6f 72 20 ┆function ret ;may have error ┆ 0x08bba0…08bbc0 73 65 74 20 69 6e 20 72 65 67 2d 61 0d 0a 3b 0d 0a 3b 0d 0a 77 72 69 74 65 3a 09 3b 64 69 73 6b ┆set in reg-a ; ; write: ;disk┆ 0x08bbc0…08bbe0 20 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6d 76 69 09 63 2c 77 72 69 74 66 0d 0a 09 ┆ write function mvi c,writf ┆ 0x08bbe0…08bc00 63 61 6c 6c 09 73 65 74 66 75 6e 63 09 3b 73 65 74 20 74 6f 20 77 72 69 74 65 20 66 75 6e 63 74 ┆call setfunc ;set to write funct┆ 0x08bc00…08bc20 (37, 0, 9) 6d 61 69 6e 69 6e 67 20 73 75 62 72 6f 75 74 69 6e 65 73 0d 0a 3b 09 61 72 65 20 74 61 69 6c 6f ┆maining subroutines ; are tailo┆ 0x08bc20…08bc40 72 65 64 20 74 6f 20 74 68 65 20 70 61 72 74 69 63 75 6c 61 72 20 6f 70 65 72 61 74 69 6e 67 20 ┆red to the particular operating ┆ 0x08bc40…08bc60 65 6e 76 69 72 6f 6e 6d 65 6e 74 2c 20 61 6e 64 20 6d 75 73 74 0d 0a 3b 09 62 65 20 61 6c 74 65 ┆environment, and must ; be alte┆ 0x08bc60…08bc80 72 65 64 20 66 6f 72 20 61 6e 79 20 73 79 73 74 65 6d 20 77 68 69 63 68 20 64 69 66 66 65 72 73 ┆red for any system which differs┆ 0x08bc80…08bca0 20 66 72 6f 6d 20 74 68 65 20 69 6e 74 65 6c 20 6d 64 73 2e 0d 0a 3b 0d 0a 3b 09 74 68 65 20 66 ┆ from the intel mds. ; ; the f┆ 0x08bca0…08bcc0 6f 6c 6c 6f 77 69 6e 67 20 63 6f 64 65 20 61 73 73 75 6d 65 73 20 74 68 65 20 6d 64 73 20 6d 6f ┆ollowing code assumes the mds mo┆ 0x08bcc0…08bce0 6e 69 74 6f 72 20 65 78 69 73 74 73 20 61 74 20 30 66 38 30 30 68 0d 0a 3b 09 61 6e 64 20 75 73 ┆nitor exists at 0f800h ; and us┆ 0x08bce0…08bd00 65 73 20 74 68 65 20 69 2f 6f 20 73 75 62 72 6f 75 74 69 6e 65 73 20 77 69 74 68 69 6e 20 74 68 ┆es the i/o subroutines within th┆ 0x08bd00…08bd20 65 20 6d 6f 6e 69 74 6f 72 0d 0a 3b 0d 0a 3b 09 77 65 20 61 6c 73 6f 20 61 73 73 75 6d 65 20 74 ┆e monitor ; ; we also assume t┆ 0x08bd20…08bd40 68 65 20 6d 64 73 20 73 79 73 74 65 6d 20 68 61 73 20 66 6f 75 72 20 64 69 73 6b 20 64 72 69 76 ┆he mds system has four disk driv┆ 0x08bd40…08bd60 65 73 0d 0a 72 65 76 72 74 09 65 71 75 09 30 66 64 68 09 3b 69 6e 74 65 72 72 75 70 74 20 72 65 ┆es revrt equ 0fdh ;interrupt re┆ 0x08bd60…08bd80 76 65 72 74 20 70 6f 72 74 0d 0a 69 6e 74 63 09 65 71 75 09 30 66 63 68 09 3b 69 6e 74 65 72 72 ┆vert port intc equ 0fch ;interr┆ 0x08bd80…08bda0 75 70 74 20 6d 61 73 6b 20 70 6f 72 74 0d 0a 69 63 6f 6e 09 65 71 75 09 30 66 33 68 09 3b 69 6e ┆upt mask port icon equ 0f3h ;in┆ 0x08bda0…08bdc0 74 65 72 72 75 70 74 20 63 6f 6e 74 72 6f 6c 20 70 6f 72 74 0d 0a 69 6e 74 65 09 65 71 75 09 30 ┆terrupt control port inte equ 0┆ 0x08bdc0…08bde0 31 31 31 24 31 31 31 30 62 09 3b 65 6e 61 62 6c 65 20 72 73 74 20 30 28 77 61 72 6d 20 62 6f 6f ┆111$1110b ;enable rst 0(warm boo┆ 0x08bde0…08be00 74 29 2c 20 72 73 74 20 37 20 28 6d 6f 6e 69 74 6f 72 29 0d 0a 3b 0d 0a 3b 09 6d 64 73 20 6d 6f ┆t), rst 7 (monitor) ; ; mds mo┆ 0x08be00…08be20 (37, 0, 10) 09 6d 76 69 09 63 2c 72 65 74 72 79 09 3b 6d 61 78 20 72 65 74 72 69 65 73 0d 0a 09 70 75 73 68 ┆ mvi c,retry ;max retries push┆ 0x08be20…08be40 09 62 0d 0a 77 62 6f 6f 74 30 3a 09 3b 65 6e 74 65 72 20 68 65 72 65 20 6f 6e 20 65 72 72 6f 72 ┆ b wboot0: ;enter here on error┆ 0x08be40…08be60 20 72 65 74 72 69 65 73 0d 0a 09 6c 78 69 09 62 2c 63 70 6d 62 09 3b 73 65 74 20 64 6d 61 20 61 ┆ retries lxi b,cpmb ;set dma a┆ 0x08be60…08be80 64 64 72 65 73 73 20 74 6f 20 73 74 61 72 74 20 6f 66 20 64 69 73 6b 20 73 79 73 74 65 6d 0d 0a ┆ddress to start of disk system ┆ 0x08be80…08bea0 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 09 6d 76 69 09 63 2c 30 09 3b 62 6f 6f 74 20 66 72 6f ┆ call setdma mvi c,0 ;boot fro┆ 0x08bea0…08bec0 6d 20 64 72 69 76 65 20 30 0d 0a 09 63 61 6c 6c 09 73 65 6c 64 73 6b 0d 0a 09 6d 76 69 09 63 2c ┆m drive 0 call seldsk mvi c,┆ 0x08bec0…08bee0 30 0d 0a 09 63 61 6c 6c 09 73 65 74 74 72 6b 09 3b 73 74 61 72 74 20 77 69 74 68 20 74 72 61 63 ┆0 call settrk ;start with trac┆ 0x08bee0…08bf00 6b 20 30 0d 0a 09 6d 76 69 09 63 2c 32 09 3b 73 74 61 72 74 20 72 65 61 64 69 6e 67 20 73 65 63 ┆k 0 mvi c,2 ;start reading sec┆ 0x08bf00…08bf20 74 6f 72 20 32 0d 0a 09 63 61 6c 6c 09 73 65 74 73 65 63 0d 0a 3b 0d 0a 3b 09 72 65 61 64 20 73 ┆tor 2 call setsec ; ; read s┆ 0x08bf20…08bf40 65 63 74 6f 72 73 2c 20 63 6f 75 6e 74 20 6e 73 65 63 74 73 20 74 6f 20 7a 65 72 6f 0d 0a 09 70 ┆ectors, count nsects to zero p┆ 0x08bf40…08bf60 6f 70 09 62 09 3b 31 30 2d 65 72 72 6f 72 20 63 6f 75 6e 74 0d 0a 09 6d 76 69 09 62 2c 6e 73 65 ┆op b ;10-error count mvi b,nse┆ 0x08bf60…08bf80 63 74 73 0d 0a 72 64 73 65 63 3a 09 3b 72 65 61 64 20 6e 65 78 74 20 73 65 63 74 6f 72 0d 0a 09 ┆cts rdsec: ;read next sector ┆ 0x08bf80…08bfa0 70 75 73 68 09 62 09 3b 73 61 76 65 20 73 65 63 74 6f 72 20 63 6f 75 6e 74 0d 0a 09 63 61 6c 6c ┆push b ;save sector count call┆ 0x08bfa0…08bfc0 09 72 65 61 64 0d 0a 09 6a 6e 7a 09 62 6f 6f 74 65 72 72 09 3b 72 65 74 72 79 20 69 66 20 65 72 ┆ read jnz booterr ;retry if er┆ 0x08bfc0…08bfe0 72 6f 72 73 20 6f 63 63 75 72 0d 0a 09 6c 68 6c 64 09 69 6f 64 09 3b 69 6e 63 72 65 6d 65 6e 74 ┆rors occur lhld iod ;increment┆ 0x08bfe0…08c000 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 09 6c 78 69 09 64 2c 31 32 38 09 3b 73 65 63 74 6f 72 ┆ dma address lxi d,128 ;sector┆ 0x08c000…08c020 (37, 0, 11) 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 20 74 6f 20 72 65 67 2d 61 0d 0a 3b 09 28 65 78 61 63 74 ┆onsole status to reg-a ; (exact┆ 0x08c020…08c040 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 63 ┆ly the same as mds call) jmp c┆ 0x08c040…08c060 73 74 73 0d 0a 3b 0d 0a 63 6f 6e 69 6e 3a 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 ┆sts ; conin: ;console characte┆ 0x08c060…08c080 72 20 74 6f 20 72 65 67 2d 61 0d 0a 09 63 61 6c 6c 09 63 69 0d 0a 09 61 6e 69 09 37 66 68 09 3b ┆r to reg-a call ci ani 7fh ;┆ 0x08c080…08c0a0 72 65 6d 6f 76 65 20 70 61 72 69 74 79 20 62 69 74 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 63 6f 6e 6f ┆remove parity bit ret ; cono┆ 0x08c0a0…08c0c0 75 74 3a 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 66 72 6f 6d 20 63 20 74 6f ┆ut: ;console character from c to┆ 0x08c0c0…08c0e0 20 63 6f 6e 73 6f 6c 65 20 6f 75 74 0d 0a 09 6a 6d 70 09 63 6f 0d 0a 3b 0d 0a 6c 69 73 74 3a 09 ┆ console out jmp co ; list: ┆ 0x08c0e0…08c100 3b 6c 69 73 74 20 64 65 76 69 63 65 20 6f 75 74 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 ┆;list device out ; (exactly the┆ 0x08c100…08c120 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 6c 6f 0d 0a 3b 0d 0a ┆ same as mds call) jmp lo ; ┆ 0x08c120…08c140 6c 69 73 74 73 74 3a 0d 0a 09 3b 72 65 74 75 72 6e 20 6c 69 73 74 20 73 74 61 74 75 73 0d 0a 09 ┆listst: ;return list status ┆ 0x08c140…08c160 78 72 61 09 61 0d 0a 09 72 65 74 09 09 3b 61 6c 77 61 79 73 20 6e 6f 74 20 72 65 61 64 79 0d 0a ┆xra a ret ;always not ready ┆ 0x08c160…08c180 3b 0d 0a 70 75 6e 63 68 3a 09 3b 70 75 6e 63 68 20 64 65 76 69 63 65 20 6f 75 74 0d 0a 3b 09 28 ┆; punch: ;punch device out ; (┆ 0x08c180…08c1a0 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 ┆exactly the same as mds call) ┆ 0x08c1a0…08c1c0 6a 6d 70 09 70 6f 0d 0a 3b 0d 0a 72 65 61 64 65 72 3a 09 3b 72 65 61 64 65 72 20 63 68 61 72 61 ┆jmp po ; reader: ;reader chara┆ 0x08c1c0…08c1e0 63 74 65 72 20 69 6e 20 74 6f 20 72 65 67 2d 61 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 ┆cter in to reg-a ; (exactly the┆ 0x08c1e0…08c200 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 72 69 0d 0a 3b 0d 0a ┆ same as mds call) jmp ri ; ┆ 0x08c200…08c220 (37, 0, 12) 69 6f 6e 0d 0a 09 63 61 6c 6c 09 77 61 69 74 69 6f 0d 0a 09 72 65 74 09 09 3b 6d 61 79 20 68 61 ┆ion call waitio ret ;may ha┆ 0x08c220…08c240 76 65 20 65 72 72 6f 72 20 73 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 75 74 69 6c 69 74 79 20 73 75 ┆ve error set ; ; ; utility su┆ 0x08c240…08c260 62 72 6f 75 74 69 6e 65 73 0d 0a 70 72 6d 73 67 3a 09 3b 70 72 69 6e 74 20 6d 65 73 73 61 67 65 ┆broutines prmsg: ;print message┆ 0x08c260…08c280 20 61 74 20 68 2c 6c 20 74 6f 20 30 0d 0a 09 6d 6f 76 09 61 2c 6d 0d 0a 09 6f 72 61 09 61 09 3b ┆ at h,l to 0 mov a,m ora a ;┆ 0x08c280…08c2a0 7a 65 72 6f 3f 0d 0a 09 72 7a 0d 0a 3b 09 6d 6f 72 65 20 74 6f 20 70 72 69 6e 74 0d 0a 09 70 75 ┆zero? rz ; more to print pu┆ 0x08c2a0…08c2c0 73 68 09 68 0d 0a 09 6d 6f 76 09 63 2c 61 0d 0a 09 63 61 6c 6c 09 63 6f 6e 6f 75 74 0d 0a 09 70 ┆sh h mov c,a call conout p┆ 0x08c2c0…08c2e0 6f 70 09 68 0d 0a 09 69 6e 78 09 68 0d 0a 09 6a 6d 70 09 70 72 6d 73 67 0d 0a 3b 0d 0a 73 65 74 ┆op h inx h jmp prmsg ; set┆ 0x08c2e0…08c300 66 75 6e 63 3a 0d 0a 3b 09 73 65 74 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 6e 65 78 74 20 69 ┆func: ; set function for next i┆ 0x08c300…08c320 2f 6f 20 28 63 6f 6d 6d 61 6e 64 20 69 6e 20 72 65 67 2d 63 29 0d 0a 09 6c 78 69 09 68 2c 69 6f ┆/o (command in reg-c) lxi h,io┆ 0x08c320…08c340 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 72 65 73 73 0d 0a 09 6d 6f 76 09 61 2c 6d ┆f ;io function address mov a,m┆ 0x08c340…08c360 09 3b 67 65 74 20 69 74 20 74 6f 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 66 6f 72 20 6d 61 73 6b ┆ ;get it to accumulator for mask┆ 0x08c360…08c380 69 6e 67 0d 0a 09 61 6e 69 09 31 31 31 31 31 30 30 30 62 09 3b 72 65 6d 6f 76 65 20 70 72 65 76 ┆ing ani 11111000b ;remove prev┆ 0x08c380…08c3a0 69 6f 75 73 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6f 72 61 09 63 09 3b 73 65 74 20 74 6f 20 6e 65 77 ┆ious command ora c ;set to new┆ 0x08c3a0…08c3c0 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6d 6f 76 09 6d 2c 61 09 3b 72 65 70 6c 61 63 65 64 20 69 6e 20 ┆ command mov m,a ;replaced in ┆ 0x08c3c0…08c3e0 69 6f 70 62 0d 0a 3b 09 74 68 65 20 6d 64 73 2d 38 30 30 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 72 ┆iopb ; the mds-800 controller r┆ 0x08c3e0…08c400 65 71 75 69 72 65 73 20 64 69 73 6b 20 62 61 6e 6b 20 62 69 74 20 69 6e 20 73 65 63 74 6f 72 20 ┆equires disk bank bit in sector ┆ 0x08c400…08c420 (37, 0, 13) 6e 69 74 6f 72 20 65 71 75 61 74 65 73 0d 0a 6d 6f 6e 38 30 09 65 71 75 09 30 66 38 30 30 68 09 ┆nitor equates mon80 equ 0f800h ┆ 0x08c420…08c440 3b 6d 64 73 20 6d 6f 6e 69 74 6f 72 0d 0a 72 6d 6f 6e 38 30 09 65 71 75 09 30 66 66 30 66 68 09 ┆;mds monitor rmon80 equ 0ff0fh ┆ 0x08c440…08c460 3b 72 65 73 74 61 72 74 20 6d 6f 6e 38 30 20 28 62 6f 6f 74 20 65 72 72 6f 72 29 0d 0a 63 69 09 ┆;restart mon80 (boot error) ci ┆ 0x08c460…08c480 65 71 75 09 30 66 38 30 33 68 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 74 6f ┆equ 0f803h ;console character to┆ 0x08c480…08c4a0 20 72 65 67 2d 61 0d 0a 72 69 09 65 71 75 09 30 66 38 30 36 68 09 3b 72 65 61 64 65 72 20 69 6e ┆ reg-a ri equ 0f806h ;reader in┆ 0x08c4a0…08c4c0 20 74 6f 20 72 65 67 2d 61 0d 0a 63 6f 09 65 71 75 09 30 66 38 30 39 68 09 3b 63 6f 6e 73 6f 6c ┆ to reg-a co equ 0f809h ;consol┆ 0x08c4c0…08c4e0 65 20 63 68 61 72 20 66 72 6f 6d 20 63 20 74 6f 20 63 6f 6e 73 6f 6c 65 20 6f 75 74 0d 0a 70 6f ┆e char from c to console out po┆ 0x08c4e0…08c500 09 65 71 75 09 30 66 38 30 63 68 09 3b 70 75 6e 63 68 20 63 68 61 72 20 66 72 6f 6d 20 63 20 74 ┆ equ 0f80ch ;punch char from c t┆ 0x08c500…08c520 6f 20 70 75 6e 63 68 20 64 65 76 69 63 65 0d 0a 6c 6f 09 65 71 75 09 30 66 38 30 66 68 09 3b 6c ┆o punch device lo equ 0f80fh ;l┆ 0x08c520…08c540 69 73 74 20 66 72 6f 6d 20 63 20 74 6f 20 6c 69 73 74 20 64 65 76 69 63 65 0d 0a 63 73 74 73 09 ┆ist from c to list device csts ┆ 0x08c540…08c560 65 71 75 09 30 66 38 31 32 68 09 3b 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 20 30 30 2f 66 66 ┆equ 0f812h ;console status 00/ff┆ 0x08c560…08c580 20 74 6f 20 72 65 67 69 73 74 65 72 20 61 0d 0a 3b 0d 0a 3b 09 64 69 73 6b 20 70 6f 72 74 73 20 ┆ to register a ; ; disk ports ┆ 0x08c580…08c5a0 61 6e 64 20 63 6f 6d 6d 61 6e 64 73 0d 0a 62 61 73 65 09 65 71 75 09 37 38 68 09 3b 62 61 73 65 ┆and commands base equ 78h ;base┆ 0x08c5a0…08c5c0 20 6f 66 20 64 69 73 6b 20 63 6f 6d 6d 61 6e 64 20 69 6f 20 70 6f 72 74 73 0d 0a 64 73 74 61 74 ┆ of disk command io ports dstat┆ 0x08c5c0…08c5e0 09 65 71 75 09 62 61 73 65 09 3b 64 69 73 6b 20 73 74 61 74 75 73 20 28 69 6e 70 75 74 29 0d 0a ┆ equ base ;disk status (input) ┆ 0x08c5e0…08c600 72 74 79 70 65 09 65 71 75 09 62 61 73 65 2b 31 09 3b 72 65 73 75 6c 74 20 74 79 70 65 20 28 69 ┆rtype equ base+1 ;result type (i┆ 0x08c600…08c620 (37, 0, 14) 20 73 69 7a 65 0d 0a 09 64 61 64 09 64 09 3b 69 6e 63 72 65 6d 65 6e 74 65 64 20 64 6d 61 20 61 ┆ size dad d ;incremented dma a┆ 0x08c620…08c640 64 64 72 65 73 73 20 69 6e 20 68 6c 0d 0a 09 6d 6f 76 09 62 2c 68 0d 0a 09 6d 6f 76 09 63 2c 6c ┆ddress in hl mov b,h mov c,l┆ 0x08c640…08c660 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 20 74 6f 20 73 65 74 20 64 6d 61 0d 0a 09 63 61 ┆ ;ready for call to set dma ca┆ 0x08c660…08c680 6c 6c 09 73 65 74 64 6d 61 0d 0a 09 6c 64 61 09 69 6f 73 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 ┆ll setdma lda ios ;sector numb┆ 0x08c680…08c6a0 65 72 20 6a 75 73 74 20 72 65 61 64 0d 0a 09 63 70 69 09 32 36 09 3b 72 65 61 64 20 6c 61 73 74 ┆er just read cpi 26 ;read last┆ 0x08c6a0…08c6c0 20 73 65 63 74 6f 72 3f 0d 0a 09 6a 63 09 72 64 31 0d 0a 3b 09 6d 75 73 74 20 62 65 20 73 65 63 ┆ sector? jc rd1 ; must be sec┆ 0x08c6c0…08c6e0 74 6f 72 20 32 36 2c 20 7a 65 72 6f 20 61 6e 64 20 67 6f 20 74 6f 20 6e 65 78 74 20 74 72 61 63 ┆tor 26, zero and go to next trac┆ 0x08c6e0…08c700 6b 0d 0a 09 6c 64 61 09 69 6f 74 09 3b 67 65 74 20 74 72 61 63 6b 20 74 6f 20 72 65 67 69 73 74 ┆k lda iot ;get track to regist┆ 0x08c700…08c720 65 72 20 61 0d 0a 09 69 6e 72 09 61 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 72 65 61 64 79 20 66 6f ┆er a inr a mov c,a ;ready fo┆ 0x08c720…08c740 72 20 63 61 6c 6c 0d 0a 09 63 61 6c 6c 09 73 65 74 74 72 6b 0d 0a 09 78 72 61 09 61 09 3b 63 6c ┆r call call settrk xra a ;cl┆ 0x08c740…08c760 65 61 72 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 0d 0a 72 64 31 3a 09 69 6e 72 09 61 09 3b 74 ┆ear sector number rd1: inr a ;t┆ 0x08c760…08c780 6f 20 6e 65 78 74 20 73 65 63 74 6f 72 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 72 65 61 64 79 20 66 ┆o next sector mov c,a ;ready f┆ 0x08c780…08c7a0 6f 72 20 63 61 6c 6c 0d 0a 09 63 61 6c 6c 09 73 65 74 73 65 63 0d 0a 09 70 6f 70 09 62 09 3b 72 ┆or call call setsec pop b ;r┆ 0x08c7a0…08c7c0 65 63 61 6c 6c 20 73 65 63 74 6f 72 20 63 6f 75 6e 74 0d 0a 09 64 63 72 09 62 09 3b 64 6f 6e 65 ┆ecall sector count dcr b ;done┆ 0x08c7c0…08c7e0 3f 0d 0a 09 6a 6e 7a 09 72 64 73 65 63 0d 0a 3b 0d 0a 3b 09 64 6f 6e 65 20 77 69 74 68 20 74 68 ┆? jnz rdsec ; ; done with th┆ 0x08c7e0…08c800 65 20 6c 6f 61 64 2c 20 72 65 73 65 74 20 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 ┆e load, reset default buffer add┆ 0x08c800…08c820 (37, 0, 15) 68 6f 6d 65 3a 09 3b 6d 6f 76 65 20 74 6f 20 68 6f 6d 65 20 70 6f 73 69 74 69 6f 6e 0d 0a 3b 09 ┆home: ;move to home position ; ┆ 0x08c820…08c840 74 72 65 61 74 20 61 73 20 74 72 61 63 6b 20 30 30 20 73 65 65 6b 0d 0a 09 6d 76 69 09 63 2c 30 ┆treat as track 00 seek mvi c,0┆ 0x08c840…08c860 0d 0a 09 6a 6d 70 09 73 65 74 74 72 6b 0d 0a 3b 0d 0a 73 65 6c 64 73 6b 3a 09 3b 73 65 6c 65 63 ┆ jmp settrk ; seldsk: ;selec┆ 0x08c860…08c880 74 20 64 69 73 6b 20 67 69 76 65 6e 20 62 79 20 72 65 67 69 73 74 65 72 20 63 0d 0a 09 6c 78 69 ┆t disk given by register c lxi┆ 0x08c880…08c8a0 09 68 2c 30 30 30 30 68 09 3b 72 65 74 75 72 6e 20 30 30 30 30 20 69 66 20 65 72 72 6f 72 0d 0a ┆ h,0000h ;return 0000 if error ┆ 0x08c8a0…08c8c0 09 6d 6f 76 09 61 2c 63 0d 0a 09 63 70 69 09 6e 64 69 73 6b 73 09 3b 74 6f 6f 20 6c 61 72 67 65 ┆ mov a,c cpi ndisks ;too large┆ 0x08c8c0…08c8e0 3f 0d 0a 09 72 6e 63 09 09 3b 6c 65 61 76 65 20 48 4c 20 3d 20 30 30 30 30 0d 0a 3b 0d 0a 09 61 ┆? rnc ;leave HL = 0000 ; a┆ 0x08c8e0…08c900 6e 69 09 31 30 62 09 3b 30 30 20 30 30 20 66 6f 72 20 64 72 69 76 65 20 30 2c 31 20 61 6e 64 20 ┆ni 10b ;00 00 for drive 0,1 and ┆ 0x08c900…08c920 31 30 20 31 30 20 66 6f 72 20 64 72 69 76 65 20 32 2c 33 0d 0a 09 73 74 61 09 64 62 61 6e 6b 09 ┆10 10 for drive 2,3 sta dbank ┆ 0x08c920…08c940 3b 74 6f 20 73 65 6c 65 63 74 20 64 72 69 76 65 20 62 61 6e 6b 0d 0a 09 6d 6f 76 09 61 2c 63 09 ┆;to select drive bank mov a,c ┆ 0x08c940…08c960 3b 30 30 2c 20 30 31 2c 20 31 30 2c 20 31 31 0d 0a 09 61 6e 69 09 31 62 09 3b 6d 64 73 20 68 61 ┆;00, 01, 10, 11 ani 1b ;mds ha┆ 0x08c960…08c980 73 20 30 2c 31 20 61 74 20 37 38 2c 20 32 2c 33 20 61 74 20 38 38 0d 0a 09 6f 72 61 09 61 09 3b ┆s 0,1 at 78, 2,3 at 88 ora a ;┆ 0x08c980…08c9a0 72 65 73 75 6c 74 20 30 30 3f 0d 0a 09 6a 7a 09 73 65 74 64 72 69 76 65 0d 0a 09 6d 76 69 09 61 ┆result 00? jz setdrive mvi a┆ 0x08c9a0…08c9c0 2c 30 30 31 31 30 30 30 30 62 09 3b 73 65 6c 65 63 74 73 20 64 72 69 76 65 20 31 20 69 6e 20 62 ┆,00110000b ;selects drive 1 in b┆ 0x08c9c0…08c9e0 61 6e 6b 0d 0a 73 65 74 64 72 69 76 65 3a 0d 0a 09 6d 6f 76 09 62 2c 61 09 3b 73 61 76 65 20 74 ┆ank setdrive: mov b,a ;save t┆ 0x08c9e0…08ca00 68 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6c 78 69 09 68 2c 69 6f 66 09 3b 69 6f 20 66 75 6e 63 ┆he function lxi h,iof ;io func┆ 0x08ca00…08ca20 (37, 1, 1) 62 79 74 65 0d 0a 3b 09 6d 61 73 6b 20 74 68 65 20 62 69 74 20 66 72 6f 6d 20 74 68 65 20 63 75 ┆byte ; mask the bit from the cu┆ 0x08ca20…08ca40 72 72 65 6e 74 20 69 2f 6f 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 61 6e 69 09 30 30 31 30 30 30 30 ┆rrent i/o function ani 0010000┆ 0x08ca40…08ca60 30 62 09 3b 6d 61 73 6b 20 74 68 65 20 64 69 73 6b 20 73 65 6c 65 63 74 20 62 69 74 0d 0a 09 6c ┆0b ;mask the disk select bit l┆ 0x08ca60…08ca80 78 69 09 68 2c 69 6f 73 09 09 3b 61 64 64 72 65 73 73 20 74 68 65 20 73 65 63 74 6f 72 20 73 65 ┆xi h,ios ;address the sector se┆ 0x08ca80…08caa0 6c 65 63 74 20 62 79 74 65 0d 0a 09 6f 72 61 09 6d 09 09 3b 73 65 6c 65 63 74 20 70 72 6f 70 65 ┆lect byte ora m ;select prope┆ 0x08caa0…08cac0 72 20 64 69 73 6b 20 62 61 6e 6b 0d 0a 09 6d 6f 76 09 6d 2c 61 09 09 3b 73 65 74 20 64 69 73 6b ┆r disk bank mov m,a ;set disk┆ 0x08cac0…08cae0 20 73 65 6c 65 63 74 20 62 69 74 20 6f 6e 2f 6f 66 66 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 77 61 69 ┆ select bit on/off ret ; wai┆ 0x08cae0…08cb00 74 69 6f 3a 0d 0a 09 6d 76 69 09 63 2c 72 65 74 72 79 09 3b 6d 61 78 20 72 65 74 72 69 65 73 20 ┆tio: mvi c,retry ;max retries ┆ 0x08cb00…08cb20 62 65 66 6f 72 65 20 70 65 72 6d 20 65 72 72 6f 72 0d 0a 72 65 77 61 69 74 3a 0d 0a 3b 09 73 74 ┆before perm error rewait: ; st┆ 0x08cb20…08cb40 61 72 74 20 74 68 65 20 69 2f 6f 20 66 75 6e 63 74 69 6f 6e 20 61 6e 64 20 77 61 69 74 20 66 6f ┆art the i/o function and wait fo┆ 0x08cb40…08cb60 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 69 6e 74 79 70 65 09 3b 69 6e 20 72 ┆r completion call intype ;in r┆ 0x08cb60…08cb80 74 79 70 65 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 09 3b 63 6c 65 61 72 73 20 74 68 65 20 63 ┆type call inbyte ;clears the c┆ 0x08cb80…08cba0 6f 6e 74 72 6f 6c 6c 65 72 0d 0a 3b 0d 0a 09 6c 64 61 09 64 62 61 6e 6b 09 09 3b 73 65 74 20 62 ┆ontroller ; lda dbank ;set b┆ 0x08cba0…08cbc0 61 6e 6b 20 66 6c 61 67 73 0d 0a 09 6f 72 61 09 61 09 09 3b 7a 65 72 6f 20 69 66 20 64 72 69 76 ┆ank flags ora a ;zero if driv┆ 0x08cbc0…08cbe0 65 20 30 2c 31 20 61 6e 64 20 6e 7a 20 69 66 20 32 2c 33 0d 0a 09 6d 76 69 09 61 2c 69 6f 70 62 ┆e 0,1 and nz if 2,3 mvi a,iopb┆ 0x08cbe0…08cc00 20 61 6e 64 20 30 66 66 68 09 3b 6c 6f 77 20 61 64 64 72 65 73 73 20 66 6f 72 20 69 6f 70 62 0d ┆ and 0ffh ;low address for iopb ┆ 0x08cc00…08cc20 (37, 1, 2) 73 2c 0d 0a 3b 09 62 75 74 20 77 65 20 77 69 6c 6c 20 67 65 74 20 61 20 70 65 72 6d 61 6e 65 6e ┆s, ; but we will get a permanen┆ 0x08cc20…08cc40 74 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 69 66 20 69 74 20 69 73 20 6e 6f 74 0d 0a 3b 09 ┆t error message if it is not ; ┆ 0x08cc40…08cc60 72 65 63 6f 76 65 72 61 62 6c 65 2e 20 20 69 6e 20 61 6e 79 20 63 61 73 65 2c 20 74 68 65 20 6e ┆recoverable. in any case, the n┆ 0x08cc60…08cc80 6f 74 20 72 65 61 64 79 20 63 6f 6e 64 69 74 69 6f 6e 20 69 73 0d 0a 3b 09 74 72 65 61 74 65 64 ┆ot ready condition is ; treated┆ 0x08cc80…08cca0 20 61 73 20 61 20 73 65 70 61 72 61 74 65 20 63 6f 6e 64 69 74 69 6f 6e 20 66 6f 72 20 6c 61 74 ┆ as a separate condition for lat┆ 0x08cca0…08ccc0 65 72 20 69 6d 70 72 6f 76 65 6d 65 6e 74 0d 0a 74 72 79 63 6f 75 6e 74 3a 0d 0a 3b 09 72 65 67 ┆er improvement trycount: ; reg┆ 0x08ccc0…08cce0 69 73 74 65 72 20 63 20 63 6f 6e 74 61 69 6e 73 20 72 65 74 72 79 20 63 6f 75 6e 74 2c 20 64 65 ┆ister c contains retry count, de┆ 0x08cce0…08cd00 63 72 65 6d 65 6e 74 20 27 74 69 6c 20 7a 65 72 6f 0d 0a 09 64 63 72 09 63 0d 0a 09 6a 6e 7a 09 ┆crement 'til zero dcr c jnz ┆ 0x08cd00…08cd20 72 65 77 61 69 74 09 3b 66 6f 72 20 61 6e 6f 74 68 65 72 20 74 72 79 0d 0a 3b 0d 0a 3b 09 63 61 ┆rewait ;for another try ; ; ca┆ 0x08cd20…08cd40 6e 6e 6f 74 20 72 65 63 6f 76 65 72 20 66 72 6f 6d 20 65 72 72 6f 72 0d 0a 09 6d 76 69 09 61 2c ┆nnot recover from error mvi a,┆ 0x08cd40…08cd60 31 09 3b 65 72 72 6f 72 20 63 6f 64 65 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 09 69 6e 74 79 70 65 ┆1 ;error code ret ; ; intype┆ 0x08cd60…08cd80 2c 20 69 6e 62 79 74 65 2c 20 69 6e 73 74 61 74 20 72 65 61 64 20 64 72 69 76 65 20 62 61 6e 6b ┆, inbyte, instat read drive bank┆ 0x08cd80…08cda0 20 30 30 20 6f 72 20 31 30 0d 0a 69 6e 74 79 70 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f ┆ 00 or 10 intype: lda dbank o┆ 0x08cda0…08cdc0 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 74 79 70 31 09 3b 73 6b 69 70 20 74 6f 20 62 61 6e 6b 20 ┆ra a jnz intyp1 ;skip to bank ┆ 0x08cdc0…08cde0 31 30 0d 0a 09 69 6e 09 72 74 79 70 65 0d 0a 09 72 65 74 0d 0a 69 6e 74 79 70 31 3a 09 69 6e 09 ┆10 in rtype ret intyp1: in ┆ 0x08cde0…08ce00 72 74 79 70 65 2b 31 30 68 09 3b 37 38 20 66 6f 72 20 30 2c 31 20 20 38 38 20 66 6f 72 20 32 2c ┆rtype+10h ;78 for 0,1 88 for 2,┆ 0x08ce00…08ce20 (37, 1, 3) 61 72 6d 20 73 74 61 72 74 20 28 73 61 76 65 20 69 2f 6f 20 62 79 74 65 29 0d 0a 3b 09 28 62 6f ┆arm start (save i/o byte) ; (bo┆ 0x08ce20…08ce40 6f 74 20 61 6e 64 20 77 62 6f 6f 74 20 61 72 65 20 74 68 65 20 73 61 6d 65 20 66 6f 72 20 6d 64 ┆ot and wboot are the same for md┆ 0x08ce40…08ce60 73 29 0d 0a 3b 09 63 6f 6e 73 74 09 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 0d 0a 3b 09 09 72 ┆s) ; const console status ; r┆ 0x08ce60…08ce80 65 67 2d 61 20 3d 20 30 30 20 69 66 20 6e 6f 20 63 68 61 72 61 63 74 65 72 20 72 65 61 64 79 0d ┆eg-a = 00 if no character ready ┆ 0x08ce80…08cea0 0a 3b 09 09 72 65 67 2d 61 20 3d 20 66 66 20 69 66 20 63 68 61 72 61 63 74 65 72 20 72 65 61 64 ┆ ; reg-a = ff if character read┆ 0x08cea0…08cec0 79 0d 0a 3b 09 63 6f 6e 69 6e 09 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 ┆y ; conin console character in ┆ 0x08cec0…08cee0 28 72 65 73 75 6c 74 20 69 6e 20 72 65 67 2d 61 29 0d 0a 3b 09 63 6f 6e 6f 75 74 09 63 6f 6e 73 ┆(result in reg-a) ; conout cons┆ 0x08cee0…08cf00 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 ┆ole character out (char in reg-c┆ 0x08cf00…08cf20 29 0d 0a 3b 09 6c 69 73 74 09 6c 69 73 74 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d ┆) ; list list out (char in reg-┆ 0x08cf20…08cf40 63 29 0d 0a 3b 09 70 75 6e 63 68 09 70 75 6e 63 68 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 ┆c) ; punch punch out (char in r┆ 0x08cf40…08cf60 65 67 2d 63 29 0d 0a 3b 09 72 65 61 64 65 72 09 70 61 70 65 72 20 74 61 70 65 20 72 65 61 64 65 ┆eg-c) ; reader paper tape reade┆ 0x08cf60…08cf80 72 20 69 6e 20 28 72 65 73 75 6c 74 20 74 6f 20 72 65 67 2d 61 29 0d 0a 3b 09 68 6f 6d 65 09 6d ┆r in (result to reg-a) ; home m┆ 0x08cf80…08cfa0 6f 76 65 20 74 6f 20 74 72 61 63 6b 20 30 30 0d 0a 3b 0d 0a 3b 09 28 74 68 65 20 66 6f 6c 6c 6f ┆ove to track 00 ; ; (the follo┆ 0x08cfa0…08cfc0 77 69 6e 67 20 63 61 6c 6c 73 20 73 65 74 2d 75 70 20 74 68 65 20 69 6f 20 70 61 72 61 6d 65 74 ┆wing calls set-up the io paramet┆ 0x08cfc0…08cfe0 65 72 20 62 6c 6f 63 6b 20 66 6f 72 20 74 68 65 0d 0a 3b 09 6d 64 73 2c 20 77 68 69 63 68 20 69 ┆er block for the ; mds, which i┆ 0x08cfe0…08d000 73 20 75 73 65 64 20 74 6f 20 70 65 72 66 6f 72 6d 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 ┆s used to perform subsequent rea┆ 0x08d000…08d020 (37, 1, 4) 0d 0a 63 69 09 65 71 75 09 30 66 38 30 33 68 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 ┆ ci equ 0f803h ;console charact┆ 0x08d020…08d040 65 72 20 74 6f 20 72 65 67 2d 61 0d 0a 72 69 09 65 71 75 09 30 66 38 30 36 68 09 3b 72 65 61 64 ┆er to reg-a ri equ 0f806h ;read┆ 0x08d040…08d060 65 72 20 69 6e 20 74 6f 20 72 65 67 2d 61 0d 0a 63 6f 09 65 71 75 09 30 66 38 30 39 68 09 3b 63 ┆er in to reg-a co equ 0f809h ;c┆ 0x08d060…08d080 6f 6e 73 6f 6c 65 20 63 68 61 72 20 66 72 6f 6d 20 63 20 74 6f 20 63 6f 6e 73 6f 6c 65 20 6f 75 ┆onsole char from c to console ou┆ 0x08d080…08d0a0 74 0d 0a 70 6f 09 65 71 75 09 30 66 38 30 63 68 09 3b 70 75 6e 63 68 20 63 68 61 72 20 66 72 6f ┆t po equ 0f80ch ;punch char fro┆ 0x08d0a0…08d0c0 6d 20 63 20 74 6f 20 70 75 6e 63 68 20 64 65 76 69 63 65 0d 0a 6c 6f 09 65 71 75 09 30 66 38 30 ┆m c to punch device lo equ 0f80┆ 0x08d0c0…08d0e0 66 68 09 3b 6c 69 73 74 20 66 72 6f 6d 20 63 20 74 6f 20 6c 69 73 74 20 64 65 76 69 63 65 0d 0a ┆fh ;list from c to list device ┆ 0x08d0e0…08d100 63 73 74 73 09 65 71 75 09 30 66 38 31 32 68 09 3b 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 20 ┆csts equ 0f812h ;console status ┆ 0x08d100…08d120 30 30 2f 66 66 20 74 6f 20 72 65 67 69 73 74 65 72 20 61 0d 0a 3b 0d 0a 3b 09 64 69 73 6b 20 70 ┆00/ff to register a ; ; disk p┆ 0x08d120…08d140 6f 72 74 73 20 61 6e 64 20 63 6f 6d 6d 61 6e 64 73 0d 0a 62 61 73 65 09 65 71 75 09 37 38 68 09 ┆orts and commands base equ 78h ┆ 0x08d140…08d160 3b 62 61 73 65 20 6f 66 20 64 69 73 6b 20 63 6f 6d 6d 61 6e 64 20 69 6f 20 70 6f 72 74 73 0d 0a ┆;base of disk command io ports ┆ 0x08d160…08d180 64 73 74 61 74 09 65 71 75 09 62 61 73 65 09 3b 64 69 73 6b 20 73 74 61 74 75 73 20 28 69 6e 70 ┆dstat equ base ;disk status (inp┆ 0x08d180…08d1a0 75 74 29 0d 0a 72 74 79 70 65 09 65 71 75 09 62 61 73 65 2b 31 09 3b 72 65 73 75 6c 74 20 74 79 ┆ut) rtype equ base+1 ;result ty┆ 0x08d1a0…08d1c0 70 65 20 28 69 6e 70 75 74 29 0d 0a 72 62 79 74 65 09 65 71 75 09 62 61 73 65 2b 33 09 3b 72 65 ┆pe (input) rbyte equ base+3 ;re┆ 0x08d1c0…08d1e0 73 75 6c 74 20 62 79 74 65 20 28 69 6e 70 75 74 29 0d 0a 3b 0d 0a 69 6c 6f 77 09 65 71 75 09 62 ┆sult byte (input) ; ilow equ b┆ 0x08d1e0…08d200 61 73 65 2b 31 09 3b 69 6f 70 62 20 6c 6f 77 20 61 64 64 72 65 73 73 20 28 6f 75 74 70 75 74 29 ┆ase+1 ;iopb low address (output)┆ 0x08d200…08d220 (37, 1, 5) 0a 09 6d 76 69 09 62 2c 69 6f 70 62 20 73 68 72 20 38 09 3b 68 69 67 68 20 61 64 64 72 65 73 73 ┆ mvi b,iopb shr 8 ;high address┆ 0x08d220…08d240 20 66 6f 72 20 69 6f 70 62 0d 0a 09 6a 6e 7a 09 69 6f 64 72 31 09 3b 64 72 69 76 65 20 62 61 6e ┆ for iopb jnz iodr1 ;drive ban┆ 0x08d240…08d260 6b 20 31 3f 0d 0a 09 6f 75 74 09 69 6c 6f 77 09 09 3b 6c 6f 77 20 61 64 64 72 65 73 73 20 74 6f ┆k 1? out ilow ;low address to┆ 0x08d260…08d280 20 63 6f 6e 74 72 6f 6c 6c 65 72 0d 0a 09 6d 6f 76 09 61 2c 62 0d 0a 09 6f 75 74 09 69 68 69 67 ┆ controller mov a,b out ihig┆ 0x08d280…08d2a0 68 09 3b 68 69 67 68 20 61 64 64 72 65 73 73 0d 0a 09 6a 6d 70 09 77 61 69 74 30 09 09 3b 74 6f ┆h ;high address jmp wait0 ;to┆ 0x08d2a0…08d2c0 20 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 65 0d 0a 3b 0d 0a 69 6f 64 72 31 3a 09 3b 64 ┆ wait for complete ; iodr1: ;d┆ 0x08d2c0…08d2e0 72 69 76 65 20 62 61 6e 6b 20 31 0d 0a 09 6f 75 74 09 69 6c 6f 77 2b 31 30 68 09 3b 38 38 20 66 ┆rive bank 1 out ilow+10h ;88 f┆ 0x08d2e0…08d300 6f 72 20 64 72 69 76 65 20 62 61 6e 6b 20 31 30 0d 0a 09 6d 6f 76 09 61 2c 62 0d 0a 09 6f 75 74 ┆or drive bank 10 mov a,b out┆ 0x08d300…08d320 09 69 68 69 67 68 2b 31 30 68 0d 0a 3b 0d 0a 77 61 69 74 30 3a 09 63 61 6c 6c 09 69 6e 73 74 61 ┆ ihigh+10h ; wait0: call insta┆ 0x08d320…08d340 74 09 09 3b 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 0d 0a 09 61 6e 69 09 69 6f ┆t ;wait for completion ani io┆ 0x08d340…08d360 72 64 79 09 09 3b 72 65 61 64 79 3f 0d 0a 09 6a 7a 09 77 61 69 74 30 0d 0a 3b 0d 0a 3b 09 63 68 ┆rdy ;ready? jz wait0 ; ; ch┆ 0x08d360…08d380 65 63 6b 20 69 6f 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 6f 6b 0d 0a 09 63 61 6c 6c 09 69 6e 74 79 ┆eck io completion ok call inty┆ 0x08d380…08d3a0 70 65 09 09 3b 6d 75 73 74 20 62 65 20 69 6f 20 63 6f 6d 70 6c 65 74 65 20 28 30 30 29 20 75 6e ┆pe ;must be io complete (00) un┆ 0x08d3a0…08d3c0 6c 69 6e 6b 65 64 0d 0a 3b 09 30 30 20 75 6e 6c 69 6e 6b 65 64 20 69 2f 6f 20 63 6f 6d 70 6c 65 ┆linked ; 00 unlinked i/o comple┆ 0x08d3c0…08d3e0 74 65 2c 20 20 20 20 30 31 20 6c 69 6e 6b 65 64 20 69 2f 6f 20 63 6f 6d 70 6c 65 74 65 20 28 6e ┆te, 01 linked i/o complete (n┆ 0x08d3e0…08d400 6f 74 20 75 73 65 64 29 0d 0a 3b 09 31 30 20 64 69 73 6b 20 73 74 61 74 75 73 20 63 68 61 6e 67 ┆ot used) ; 10 disk status chang┆ 0x08d400…08d420 (37, 1, 6) 33 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 69 6e 62 79 74 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 ┆3 ret ; inbyte: lda dbank ┆ 0x08d420…08d440 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 62 79 74 31 0d 0a 09 69 6e 09 72 62 79 74 65 0d 0a 09 ┆ora a jnz inbyt1 in rbyte ┆ 0x08d440…08d460 72 65 74 0d 0a 69 6e 62 79 74 31 3a 09 69 6e 09 72 62 79 74 65 2b 31 30 68 0d 0a 09 72 65 74 0d ┆ret inbyt1: in rbyte+10h ret ┆ 0x08d460…08d480 0a 3b 0d 0a 69 6e 73 74 61 74 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 ┆ ; instat: lda dbank ora a ┆ 0x08d480…08d4a0 6a 6e 7a 09 69 6e 73 74 61 31 0d 0a 09 69 6e 09 64 73 74 61 74 0d 0a 09 72 65 74 0d 0a 69 6e 73 ┆jnz insta1 in dstat ret ins┆ 0x08d4a0…08d4c0 74 61 31 3a 09 69 6e 09 64 73 74 61 74 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b ┆ta1: in dstat+10h ret ; ; ;┆ 0x08d4c0…08d4e0 0d 0a 3b 09 64 61 74 61 20 61 72 65 61 73 20 28 6d 75 73 74 20 62 65 20 69 6e 20 72 61 6d 29 0d ┆ ; data areas (must be in ram) ┆ 0x08d4e0…08d500 0a 64 62 61 6e 6b 3a 09 64 62 09 30 09 3b 64 69 73 6b 20 62 61 6e 6b 20 30 30 20 69 66 20 64 72 ┆ dbank: db 0 ;disk bank 00 if dr┆ 0x08d500…08d520 69 76 65 20 30 2c 31 0d 0a 09 09 09 3b 09 20 20 20 31 30 20 69 66 20 64 72 69 76 65 20 32 2c 33 ┆ive 0,1 ; 10 if drive 2,3┆ 0x08d520…08d540 0d 0a 69 6f 70 62 3a 09 3b 69 6f 20 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 0d 0a 09 64 62 ┆ iopb: ;io parameter block db┆ 0x08d540…08d560 09 38 30 68 09 3b 6e 6f 72 6d 61 6c 20 69 2f 6f 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 69 6f 66 3a ┆ 80h ;normal i/o operation iof:┆ 0x08d560…08d580 09 64 62 09 72 65 61 64 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 2c 20 69 6e 69 74 69 61 6c 20 ┆ db readf ;io function, initial ┆ 0x08d580…08d5a0 72 65 61 64 0d 0a 69 6f 6e 3a 09 64 62 09 31 09 3b 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f ┆read ion: db 1 ;number of secto┆ 0x08d5a0…08d5c0 72 73 20 74 6f 20 72 65 61 64 0d 0a 69 6f 74 3a 09 64 62 09 6f 66 66 73 65 74 09 3b 74 72 61 63 ┆rs to read iot: db offset ;trac┆ 0x08d5c0…08d5e0 6b 20 6e 75 6d 62 65 72 0d 0a 69 6f 73 3a 09 64 62 09 31 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 ┆k number ios: db 1 ;sector numb┆ 0x08d5e0…08d600 65 72 0d 0a 69 6f 64 3a 09 64 77 09 62 75 66 66 09 3b 69 6f 20 61 64 64 72 65 73 73 0d 0a 3b 0d ┆er iod: dw buff ;io address ; ┆ 0x08d600…08d620 (37, 1, 7) 64 73 20 61 6e 64 20 77 72 69 74 65 73 29 0d 0a 3b 09 73 65 6c 64 73 6b 09 73 65 6c 65 63 74 20 ┆ds and writes) ; seldsk select ┆ 0x08d620…08d640 64 69 73 6b 20 67 69 76 65 6e 20 62 79 20 72 65 67 2d 63 20 28 30 2c 31 2c 32 2e 2e 2e 29 0d 0a ┆disk given by reg-c (0,1,2...) ┆ 0x08d640…08d660 3b 09 73 65 74 74 72 6b 09 73 65 74 20 74 72 61 63 6b 20 61 64 64 72 65 73 73 20 28 30 2c 2e 2e ┆; settrk set track address (0,..┆ 0x08d660…08d680 2e 37 36 29 20 66 6f 72 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 2f 77 72 69 74 65 0d 0a ┆.76) for subsequent read/write ┆ 0x08d680…08d6a0 3b 09 73 65 74 73 65 63 09 73 65 74 20 73 65 63 74 6f 72 20 61 64 64 72 65 73 73 20 28 31 2c 2e ┆; setsec set sector address (1,.┆ 0x08d6a0…08d6c0 2e 2e 2c 32 36 29 20 66 6f 72 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 2f 77 72 69 74 65 ┆..,26) for subsequent read/write┆ 0x08d6c0…08d6e0 0d 0a 3b 09 73 65 74 64 6d 61 09 73 65 74 20 73 75 62 73 65 71 75 65 6e 74 20 64 6d 61 20 61 64 ┆ ; setdma set subsequent dma ad┆ 0x08d6e0…08d700 64 72 65 73 73 20 28 69 6e 69 74 69 61 6c 6c 79 20 38 30 68 29 0d 0a 3b 0d 0a 3b 09 28 72 65 61 ┆dress (initially 80h) ; ; (rea┆ 0x08d700…08d720 64 20 61 6e 64 20 77 72 69 74 65 20 61 73 73 75 6d 65 20 70 72 65 76 69 6f 75 73 20 63 61 6c 6c ┆d and write assume previous call┆ 0x08d720…08d740 73 20 74 6f 20 73 65 74 20 75 70 20 74 68 65 20 69 6f 20 70 61 72 61 6d 65 74 65 72 73 29 0d 0a ┆s to set up the io parameters) ┆ 0x08d740…08d760 3b 09 72 65 61 64 09 72 65 61 64 20 74 72 61 63 6b 2f 73 65 63 74 6f 72 20 74 6f 20 70 72 65 73 ┆; read read track/sector to pres┆ 0x08d760…08d780 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 3b 09 77 72 69 74 65 09 77 72 69 74 65 20 74 72 ┆et dma address ; write write tr┆ 0x08d780…08d7a0 61 63 6b 2f 73 65 63 74 6f 72 20 66 72 6f 6d 20 70 72 65 73 65 74 20 64 6d 61 20 61 64 64 72 65 ┆ack/sector from preset dma addre┆ 0x08d7a0…08d7c0 73 73 0d 0a 3b 0d 0a 3b 09 6a 75 6d 70 20 76 65 63 74 6f 72 20 66 6f 72 20 69 6e 64 69 76 69 75 ┆ss ; ; jump vector for indiviu┆ 0x08d7c0…08d7e0 61 6c 20 72 6f 75 74 69 6e 65 73 0d 0a 09 6a 6d 70 09 62 6f 6f 74 0d 0a 77 62 6f 6f 74 65 3a 09 ┆al routines jmp boot wboote: ┆ 0x08d7e0…08d800 6a 6d 70 09 77 62 6f 6f 74 0d 0a 09 6a 6d 70 09 63 6f 6e 73 74 0d 0a 09 6a 6d 70 09 63 6f 6e 69 ┆jmp wboot jmp const jmp coni┆ 0x08d800…08d820 (37, 1, 8) 0d 0a 69 68 69 67 68 09 65 71 75 09 62 61 73 65 2b 32 09 3b 69 6f 70 62 20 68 69 67 68 20 61 64 ┆ ihigh equ base+2 ;iopb high ad┆ 0x08d820…08d840 64 72 65 73 73 20 28 6f 75 74 70 75 74 29 0d 0a 3b 0d 0a 72 65 61 64 66 09 65 71 75 09 34 68 09 ┆dress (output) ; readf equ 4h ┆ 0x08d840…08d860 3b 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 77 72 69 74 66 09 65 71 75 09 36 68 09 3b 77 72 ┆;read function writf equ 6h ;wr┆ 0x08d860…08d880 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 72 65 63 61 6c 09 65 71 75 09 33 68 09 3b 72 65 63 61 ┆ite function recal equ 3h ;reca┆ 0x08d880…08d8a0 6c 69 62 72 61 74 65 20 64 72 69 76 65 0d 0a 69 6f 72 64 79 09 65 71 75 09 34 68 09 3b 69 2f 6f ┆librate drive iordy equ 4h ;i/o┆ 0x08d8a0…08d8c0 20 66 69 6e 69 73 68 65 64 20 6d 61 73 6b 0d 0a 63 72 09 65 71 75 09 30 64 68 09 3b 63 61 72 72 ┆ finished mask cr equ 0dh ;carr┆ 0x08d8c0…08d8e0 69 61 67 65 20 72 65 74 75 72 6e 0d 0a 6c 66 09 65 71 75 09 30 61 68 09 3b 6c 69 6e 65 20 66 65 ┆iage return lf equ 0ah ;line fe┆ 0x08d8e0…08d900 65 64 0d 0a 3b 0d 0a 73 69 67 6e 6f 6e 3a 09 3b 73 69 67 6e 6f 6e 20 6d 65 73 73 61 67 65 3a 20 ┆ed ; signon: ;signon message: ┆ 0x08d900…08d920 78 78 6b 20 63 70 2f 6d 20 76 65 72 73 20 79 2e 79 0d 0a 09 64 62 09 63 72 2c 6c 66 2c 6c 66 0d ┆xxk cp/m vers y.y db cr,lf,lf ┆ 0x08d920…08d940 0a 09 69 66 09 74 65 73 74 0d 0a 09 64 62 09 27 33 32 27 09 3b 33 32 6b 20 65 78 61 6d 70 6c 65 ┆ if test db '32' ;32k example┆ 0x08d940…08d960 20 62 69 6f 73 0d 0a 09 65 6e 64 69 66 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 09 64 62 ┆ bios endif if not test db┆ 0x08d960…08d980 09 27 30 30 27 09 3b 6d 65 6d 6f 72 79 20 73 69 7a 65 20 66 69 6c 6c 65 64 20 62 79 20 72 65 6c ┆ '00' ;memory size filled by rel┆ 0x08d980…08d9a0 6f 63 61 74 6f 72 0d 0a 09 65 6e 64 69 66 0d 0a 09 64 62 09 27 6b 20 43 50 2f 4d 20 76 65 72 73 ┆ocator endif db 'k CP/M vers┆ 0x08d9a0…08d9c0 20 27 0d 0a 09 64 62 09 76 65 72 73 2f 31 30 2b 27 30 27 2c 27 2e 27 2c 76 65 72 73 20 6d 6f 64 ┆ ' db vers/10+'0','.',vers mod┆ 0x08d9c0…08d9e0 20 31 30 2b 27 30 27 0d 0a 09 64 62 09 63 72 2c 6c 66 2c 30 0d 0a 3b 0d 0a 62 6f 6f 74 3a 09 3b ┆ 10+'0' db cr,lf,0 ; boot: ;┆ 0x08d9e0…08da00 70 72 69 6e 74 20 73 69 67 6e 6f 6e 20 6d 65 73 73 61 67 65 20 61 6e 64 20 67 6f 20 74 6f 20 63 ┆print signon message and go to c┆ 0x08da00…08da20 (37, 1, 9) 65 64 20 20 20 20 20 20 20 31 31 20 28 6e 6f 74 20 75 73 65 64 29 0d 0a 09 63 70 69 09 31 30 62 ┆ed 11 (not used) cpi 10b┆ 0x08da20…08da40 09 09 3b 72 65 61 64 79 20 73 74 61 74 75 73 20 63 68 61 6e 67 65 3f 0d 0a 09 6a 7a 09 77 72 65 ┆ ;ready status change? jz wre┆ 0x08da40…08da60 61 64 79 0d 0a 3b 0d 0a 3b 09 6d 75 73 74 20 62 65 20 30 30 20 69 6e 20 74 68 65 20 61 63 63 75 ┆ady ; ; must be 00 in the accu┆ 0x08da60…08da80 6d 75 6c 61 74 6f 72 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 77 65 72 72 6f 72 09 09 3b 73 ┆mulator ora a jnz werror ;s┆ 0x08da80…08daa0 6f 6d 65 20 6f 74 68 65 72 20 63 6f 6e 64 69 74 69 6f 6e 2c 20 72 65 74 72 79 0d 0a 3b 0d 0a 3b ┆ome other condition, retry ; ;┆ 0x08daa0…08dac0 09 63 68 65 63 6b 20 69 2f 6f 20 65 72 72 6f 72 20 62 69 74 73 0d 0a 09 63 61 6c 6c 09 69 6e 62 ┆ check i/o error bits call inb┆ 0x08dac0…08dae0 79 74 65 0d 0a 09 72 61 6c 0d 0a 09 6a 63 09 77 72 65 61 64 79 09 09 3b 75 6e 69 74 20 6e 6f 74 ┆yte ral jc wready ;unit not┆ 0x08dae0…08db00 20 72 65 61 64 79 0d 0a 09 72 61 72 0d 0a 09 61 6e 69 09 31 31 31 31 31 31 31 30 62 09 3b 61 6e ┆ ready rar ani 11111110b ;an┆ 0x08db00…08db20 79 20 6f 74 68 65 72 20 65 72 72 6f 72 73 3f 20 20 28 64 65 6c 65 74 65 64 20 64 61 74 61 20 6f ┆y other errors? (deleted data o┆ 0x08db20…08db40 6b 29 0d 0a 09 6a 6e 7a 09 77 65 72 72 6f 72 0d 0a 3b 0d 0a 3b 09 72 65 61 64 20 6f 72 20 77 72 ┆k) jnz werror ; ; read or wr┆ 0x08db40…08db60 69 74 65 20 69 73 20 6f 6b 2c 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 63 6f 6e 74 61 69 6e 73 20 ┆ite is ok, accumulator contains ┆ 0x08db60…08db80 7a 65 72 6f 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 77 72 65 61 64 79 3a 09 3b 6e 6f 74 20 72 65 61 64 ┆zero ret ; wready: ;not read┆ 0x08db80…08dba0 79 2c 20 74 72 65 61 74 20 61 73 20 65 72 72 6f 72 20 66 6f 72 20 6e 6f 77 0d 0a 09 63 61 6c 6c ┆y, treat as error for now call┆ 0x08dba0…08dbc0 09 69 6e 62 79 74 65 09 09 3b 63 6c 65 61 72 20 72 65 73 75 6c 74 20 62 79 74 65 0d 0a 09 6a 6d ┆ inbyte ;clear result byte jm┆ 0x08dbc0…08dbe0 70 09 74 72 79 63 6f 75 6e 74 0d 0a 3b 0d 0a 77 65 72 72 6f 72 3a 09 3b 72 65 74 75 72 6e 20 68 ┆p trycount ; werror: ;return h┆ 0x08dbe0…08dc00 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 20 28 63 72 63 2c 20 74 72 61 63 6b 2c ┆ardware malfunction (crc, track,┆ 0x08dc00…08dc20 (37, 1, 10) 0a 3b 0d 0a 3b 09 64 65 66 69 6e 65 20 72 61 6d 20 61 72 65 61 73 20 66 6f 72 20 62 64 6f 73 20 ┆ ; ; define ram areas for bdos ┆ 0x08dc20…08dc40 6f 70 65 72 61 74 69 6f 6e 0d 0a 09 65 6e 64 65 66 0d 0a 09 65 6e 64 0d 0a 3b 09 4d 44 53 2d 38 ┆operation endef end ; MDS-8┆ 0x08dc40…08dc60 30 30 20 49 2f 4f 20 44 72 69 76 65 72 73 20 66 6f 72 20 43 50 2f 4d 20 32 2e 32 0d 0a 3b 09 28 ┆00 I/O Drivers for CP/M 2.2 ; (┆ 0x08dc60…08dc80 66 6f 75 72 20 64 72 69 76 65 20 73 69 6e 67 6c 65 20 64 65 6e 73 69 74 79 20 76 65 72 73 69 6f ┆four drive single density versio┆ 0x08dc80…08dca0 6e 29 0d 0a 3b 0d 0a 3b 09 56 65 72 73 69 6f 6e 20 32 2e 32 20 46 65 62 72 75 61 72 79 2c 20 31 ┆n) ; ; Version 2.2 February, 1┆ 0x08dca0…08dcc0 39 38 30 0d 0a 3b 0d 0a 76 65 72 73 09 65 71 75 09 32 32 09 3b 76 65 72 73 69 6f 6e 20 32 2e 32 ┆980 ; vers equ 22 ;version 2.2┆ 0x08dcc0…08dce0 0d 0a 3b 0d 0a 3b 09 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 39 38 30 0d 0a 3b 09 44 69 67 ┆ ; ; Copyright (c) 1980 ; Dig┆ 0x08dce0…08dd00 69 74 61 6c 20 52 65 73 65 61 72 63 68 0d 0a 3b 09 42 6f 78 20 35 37 39 2c 20 50 61 63 69 66 69 ┆ital Research ; Box 579, Pacifi┆ 0x08dd00…08dd20 63 20 47 72 6f 76 65 0d 0a 3b 09 43 61 6c 69 66 6f 72 6e 69 61 2c 20 39 33 39 35 30 0d 0a 3b 0d ┆c Grove ; California, 93950 ; ┆ 0x08dd20…08dd40 0a 3b 0d 0a 74 72 75 65 09 65 71 75 09 30 66 66 66 66 68 09 3b 76 61 6c 75 65 20 6f 66 20 22 74 ┆ ; true equ 0ffffh ;value of "t┆ 0x08dd40…08dd60 72 75 65 22 0d 0a 66 61 6c 73 65 09 65 71 75 09 6e 6f 74 20 74 72 75 65 09 3b 22 66 61 6c 73 65 ┆rue" false equ not true ;"false┆ 0x08dd60…08dd80 22 0d 0a 74 65 73 74 09 65 71 75 09 66 61 6c 73 65 09 3b 74 72 75 65 20 69 66 20 74 65 73 74 20 ┆" test equ false ;true if test ┆ 0x08dd80…08dda0 62 69 6f 73 0d 0a 3b 0d 0a 09 69 66 09 74 65 73 74 0d 0a 62 69 61 73 09 65 71 75 09 30 33 34 30 ┆bios ; if test bias equ 0340┆ 0x08dda0…08ddc0 30 68 09 3b 62 61 73 65 20 6f 66 20 43 43 50 20 69 6e 20 74 65 73 74 20 73 79 73 74 65 6d 0d 0a ┆0h ;base of CCP in test system ┆ 0x08ddc0…08dde0 09 65 6e 64 69 66 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 62 69 61 73 09 65 71 75 09 30 ┆ endif if not test bias equ 0┆ 0x08dde0…08de00 30 30 30 68 09 3b 67 65 6e 65 72 61 74 65 20 72 65 6c 6f 63 61 74 61 62 6c 65 20 63 70 2f 6d 20 ┆000h ;generate relocatable cp/m ┆ 0x08de00…08de20 (37, 1, 11) 6e 0d 0a 09 6a 6d 70 09 63 6f 6e 6f 75 74 0d 0a 09 6a 6d 70 09 6c 69 73 74 0d 0a 09 6a 6d 70 09 ┆n jmp conout jmp list jmp ┆ 0x08de20…08de40 70 75 6e 63 68 0d 0a 09 6a 6d 70 09 72 65 61 64 65 72 0d 0a 09 6a 6d 70 09 68 6f 6d 65 0d 0a 09 ┆punch jmp reader jmp home ┆ 0x08de40…08de60 6a 6d 70 09 73 65 6c 64 73 6b 0d 0a 09 6a 6d 70 09 73 65 74 74 72 6b 0d 0a 09 6a 6d 70 09 73 65 ┆jmp seldsk jmp settrk jmp se┆ 0x08de60…08de80 74 73 65 63 0d 0a 09 6a 6d 70 09 73 65 74 64 6d 61 0d 0a 09 6a 6d 70 09 72 65 61 64 0d 0a 09 6a ┆tsec jmp setdma jmp read j┆ 0x08de80…08dea0 6d 70 09 77 72 69 74 65 0d 0a 09 6a 6d 70 09 6c 69 73 74 73 74 09 3b 6c 69 73 74 20 73 74 61 74 ┆mp write jmp listst ;list stat┆ 0x08dea0…08dec0 75 73 0d 0a 09 6a 6d 70 09 73 65 63 74 72 61 6e 0d 0a 3b 0d 0a 09 6d 61 63 6c 69 62 09 64 69 73 ┆us jmp sectran ; maclib dis┆ 0x08dec0…08dee0 6b 64 65 66 09 3b 6c 6f 61 64 20 74 68 65 20 64 69 73 6b 20 64 65 66 69 6e 69 74 69 6f 6e 20 6c ┆kdef ;load the disk definition l┆ 0x08dee0…08df00 69 62 72 61 72 79 0d 0a 09 64 69 73 6b 73 09 34 09 3b 66 6f 75 72 20 64 69 73 6b 73 0d 0a 09 64 ┆ibrary disks 4 ;four disks d┆ 0x08df00…08df20 69 73 6b 64 65 66 09 30 2c 31 2c 32 36 2c 36 2c 31 30 32 34 2c 32 34 33 2c 36 34 2c 36 34 2c 6f ┆iskdef 0,1,26,6,1024,243,64,64,o┆ 0x08df20…08df40 66 66 73 65 74 0d 0a 09 64 69 73 6b 64 65 66 09 31 2c 30 0d 0a 09 64 69 73 6b 64 65 66 09 32 2c ┆ffset diskdef 1,0 diskdef 2,┆ 0x08df40…08df60 30 0d 0a 09 64 69 73 6b 64 65 66 09 33 2c 30 0d 0a 3b 09 65 6e 64 65 66 20 6f 63 63 75 72 73 20 ┆0 diskdef 3,0 ; endef occurs ┆ 0x08df60…08df80 61 74 20 65 6e 64 20 6f 66 20 61 73 73 65 6d 62 6c 79 0d 0a 3b 0d 0a 3b 09 65 6e 64 20 6f 66 20 ┆at end of assembly ; ; end of ┆ 0x08df80…08dfa0 63 6f 6e 74 72 6f 6c 6c 65 72 20 2d 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 63 6f 64 65 2c 20 74 ┆controller - independent code, t┆ 0x08dfa0…08dfc0 68 65 20 72 65 6d 61 69 6e 69 6e 67 20 73 75 62 72 6f 75 74 69 6e 65 73 0d 0a 3b 09 61 72 65 20 ┆he remaining subroutines ; are ┆ 0x08dfc0…08dfe0 74 61 69 6c 6f 72 65 64 20 74 6f 20 74 68 65 20 70 61 72 74 69 63 75 6c 61 72 20 6f 70 65 72 61 ┆tailored to the particular opera┆ 0x08dfe0…08e000 74 69 6e 67 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 2c 20 61 6e 64 20 6d 75 73 74 0d 0a 3b 09 62 65 ┆ting environment, and must ; be┆ 0x08e000…08e020 (37, 1, 12) 63 70 0d 0a 3b 09 28 6e 6f 74 65 3a 20 6d 64 73 20 62 6f 6f 74 20 69 6e 69 74 69 61 6c 69 7a 65 ┆cp ; (note: mds boot initialize┆ 0x08e020…08e040 64 20 69 6f 62 79 74 65 20 61 74 20 30 30 30 33 68 29 0d 0a 09 6c 78 69 09 73 70 2c 62 75 66 66 ┆d iobyte at 0003h) lxi sp,buff┆ 0x08e040…08e060 2b 38 30 68 0d 0a 09 6c 78 69 09 68 2c 73 69 67 6e 6f 6e 0d 0a 09 63 61 6c 6c 09 70 72 6d 73 67 ┆+80h lxi h,signon call prmsg┆ 0x08e060…08e080 09 3b 70 72 69 6e 74 20 6d 65 73 73 61 67 65 0d 0a 09 78 72 61 09 61 09 3b 63 6c 65 61 72 20 61 ┆ ;print message xra a ;clear a┆ 0x08e080…08e0a0 63 63 75 6d 75 6c 61 74 6f 72 0d 0a 09 73 74 61 09 63 64 69 73 6b 09 3b 73 65 74 20 69 6e 69 74 ┆ccumulator sta cdisk ;set init┆ 0x08e0a0…08e0c0 69 61 6c 6c 79 20 74 6f 20 64 69 73 6b 20 61 0d 0a 09 6a 6d 70 09 67 6f 63 70 6d 09 3b 67 6f 20 ┆ially to disk a jmp gocpm ;go ┆ 0x08e0c0…08e0e0 74 6f 20 63 70 2f 6d 0d 0a 3b 0d 0a 3b 0d 0a 77 62 6f 6f 74 3a 3b 09 6c 6f 61 64 65 72 20 6f 6e ┆to cp/m ; ; wboot:; loader on┆ 0x08e0e0…08e100 20 74 72 61 63 6b 20 30 2c 20 73 65 63 74 6f 72 20 31 2c 20 77 68 69 63 68 20 77 69 6c 6c 20 62 ┆ track 0, sector 1, which will b┆ 0x08e100…08e120 65 20 73 6b 69 70 70 65 64 20 66 6f 72 20 77 61 72 6d 20 0d 0a 3b 09 72 65 61 64 20 63 70 2f 6d ┆e skipped for warm ; read cp/m┆ 0x08e120…08e140 20 66 72 6f 6d 20 64 69 73 6b 20 2d 20 61 73 73 75 6d 69 6e 67 20 74 68 65 72 65 20 69 73 20 61 ┆ from disk - assuming there is a┆ 0x08e140…08e160 20 31 32 38 20 62 79 74 65 20 63 6f 6c 64 20 73 74 61 72 74 0d 0a 3b 09 73 74 61 72 74 2e 0d 0a ┆ 128 byte cold start ; start. ┆ 0x08e160…08e180 3b 0d 0a 09 6c 78 69 09 73 70 2c 62 75 66 66 09 3b 75 73 69 6e 67 20 64 6d 61 20 2d 20 74 68 75 ┆; lxi sp,buff ;using dma - thu┆ 0x08e180…08e1a0 73 20 38 30 20 74 68 72 75 20 66 66 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 73 74 61 63 6b ┆s 80 thru ff available for stack┆ 0x08e1a0…08e1c0 0d 0a 3b 0d 0a 09 6d 76 69 09 63 2c 72 65 74 72 79 09 3b 6d 61 78 20 72 65 74 72 69 65 73 0d 0a ┆ ; mvi c,retry ;max retries ┆ 0x08e1c0…08e1e0 09 70 75 73 68 09 62 0d 0a 77 62 6f 6f 74 30 3a 09 3b 65 6e 74 65 72 20 68 65 72 65 20 6f 6e 20 ┆ push b wboot0: ;enter here on ┆ 0x08e1e0…08e200 65 72 72 6f 72 20 72 65 74 72 69 65 73 0d 0a 09 6c 78 69 09 62 2c 63 70 6d 62 09 3b 73 65 74 20 ┆error retries lxi b,cpmb ;set ┆ 0x08e200…08e220 (37, 1, 13) 20 73 65 65 6b 2c 20 65 74 63 2e 29 0d 0a 3b 09 74 68 65 20 6d 64 73 20 63 6f 6e 74 72 6f 6c 6c ┆ seek, etc.) ; the mds controll┆ 0x08e220…08e240 65 72 20 68 61 73 20 72 65 74 75 72 6e 65 64 20 61 20 62 69 74 20 69 6e 20 65 61 63 68 20 70 6f ┆er has returned a bit in each po┆ 0x08e240…08e260 73 69 74 69 6f 6e 0d 0a 3b 09 6f 66 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 2c 20 63 6f ┆sition ; of the accumulator, co┆ 0x08e260…08e280 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e 73 3a 0d 0a ┆rresponding to the conditions: ┆ 0x08e280…08e2a0 3b 09 30 09 2d 20 64 65 6c 65 74 65 64 20 64 61 74 61 20 28 61 63 63 65 70 74 65 64 20 61 73 20 ┆; 0 - deleted data (accepted as ┆ 0x08e2a0…08e2c0 6f 6b 20 61 62 6f 76 65 29 0d 0a 3b 09 31 09 2d 20 63 72 63 20 65 72 72 6f 72 0d 0a 3b 09 32 09 ┆ok above) ; 1 - crc error ; 2 ┆ 0x08e2c0…08e2e0 2d 20 73 65 65 6b 20 65 72 72 6f 72 0d 0a 3b 09 33 09 2d 20 61 64 64 72 65 73 73 20 65 72 72 6f ┆- seek error ; 3 - address erro┆ 0x08e2e0…08e300 72 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 34 09 2d 20 ┆r (hardware malfunction) ; 4 - ┆ 0x08e300…08e320 64 61 74 61 20 6f 76 65 72 2f 75 6e 64 65 72 20 66 6c 6f 77 20 28 68 61 72 64 77 61 72 65 20 6d ┆data over/under flow (hardware m┆ 0x08e320…08e340 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 35 09 2d 20 77 72 69 74 65 20 70 72 6f 74 65 63 74 ┆alfunction) ; 5 - write protect┆ 0x08e340…08e360 20 28 74 72 65 61 74 65 64 20 61 73 20 6e 6f 74 20 72 65 61 64 79 29 0d 0a 3b 09 36 09 2d 20 77 ┆ (treated as not ready) ; 6 - w┆ 0x08e360…08e380 72 69 74 65 20 65 72 72 6f 72 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e ┆rite error (hardware malfunction┆ 0x08e380…08e3a0 29 0d 0a 3b 09 37 09 2d 20 6e 6f 74 20 72 65 61 64 79 0d 0a 3b 09 28 61 63 63 75 6d 75 6c 61 74 ┆) ; 7 - not ready ; (accumulat┆ 0x08e3a0…08e3c0 6f 72 20 62 69 74 73 20 61 72 65 20 6e 75 6d 62 65 72 65 64 20 37 20 36 20 35 20 34 20 33 20 32 ┆or bits are numbered 7 6 5 4 3 2┆ 0x08e3c0…08e3e0 20 31 20 30 29 0d 0a 3b 0d 0a 3b 09 69 74 20 6d 61 79 20 62 65 20 75 73 65 66 75 6c 20 74 6f 20 ┆ 1 0) ; ; it may be useful to ┆ 0x08e3e0…08e400 66 69 6c 74 65 72 20 6f 75 74 20 74 68 65 20 76 61 72 69 6f 75 73 20 63 6f 6e 64 69 74 69 6f 6e ┆filter out the various condition┆ 0x08e400…08e420 (37, 1, 14) 73 79 73 74 65 6d 0d 0a 09 65 6e 64 69 66 0d 0a 3b 0d 0a 70 61 74 63 68 09 65 71 75 09 31 36 30 ┆system endif ; patch equ 160┆ 0x08e420…08e440 30 68 0d 0a 3b 0d 0a 09 6f 72 67 09 70 61 74 63 68 0d 0a 63 70 6d 62 09 65 71 75 09 24 2d 70 61 ┆0h ; org patch cpmb equ $-pa┆ 0x08e440…08e460 74 63 68 09 3b 62 61 73 65 20 6f 66 20 63 70 6d 20 63 6f 6e 73 6f 6c 65 20 70 72 6f 63 65 73 73 ┆tch ;base of cpm console process┆ 0x08e460…08e480 6f 72 0d 0a 62 64 6f 73 09 65 71 75 09 38 30 36 68 2b 63 70 6d 62 09 3b 62 61 73 69 63 20 64 6f ┆or bdos equ 806h+cpmb ;basic do┆ 0x08e480…08e4a0 73 20 28 72 65 73 69 64 65 6e 74 20 70 6f 72 74 69 6f 6e 29 0d 0a 63 70 6d 6c 09 65 71 75 09 24 ┆s (resident portion) cpml equ $┆ 0x08e4a0…08e4c0 2d 63 70 6d 62 09 3b 6c 65 6e 67 74 68 20 28 69 6e 20 62 79 74 65 73 29 20 6f 66 20 63 70 6d 20 ┆-cpmb ;length (in bytes) of cpm ┆ 0x08e4c0…08e4e0 73 79 73 74 65 6d 0d 0a 6e 73 65 63 74 73 09 65 71 75 09 63 70 6d 6c 2f 31 32 38 09 3b 6e 75 6d ┆system nsects equ cpml/128 ;num┆ 0x08e4e0…08e500 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 20 74 6f 20 6c 6f 61 64 0d 0a 6f 66 66 73 65 74 09 65 ┆ber of sectors to load offset e┆ 0x08e500…08e520 71 75 09 32 09 3b 6e 75 6d 62 65 72 20 6f 66 20 64 69 73 6b 20 74 72 61 63 6b 73 20 75 73 65 64 ┆qu 2 ;number of disk tracks used┆ 0x08e520…08e540 20 62 79 20 63 70 2f 6d 0d 0a 63 64 69 73 6b 09 65 71 75 09 30 30 30 34 68 09 3b 61 64 64 72 65 ┆ by cp/m cdisk equ 0004h ;addre┆ 0x08e540…08e560 73 73 20 6f 66 20 6c 61 73 74 20 6c 6f 67 67 65 64 20 64 69 73 6b 20 6f 6e 20 77 61 72 6d 20 73 ┆ss of last logged disk on warm s┆ 0x08e560…08e580 74 61 72 74 0d 0a 62 75 66 66 09 65 71 75 09 30 30 38 30 68 09 3b 64 65 66 61 75 6c 74 20 62 75 ┆tart buff equ 0080h ;default bu┆ 0x08e580…08e5a0 66 66 65 72 20 61 64 64 72 65 73 73 0d 0a 72 65 74 72 79 09 65 71 75 09 31 30 09 3b 6d 61 78 20 ┆ffer address retry equ 10 ;max ┆ 0x08e5a0…08e5c0 72 65 74 72 69 65 73 20 6f 6e 20 64 69 73 6b 20 69 2f 6f 20 62 65 66 6f 72 65 20 65 72 72 6f 72 ┆retries on disk i/o before error┆ 0x08e5c0…08e5e0 0d 0a 3b 0d 0a 3b 09 70 65 72 66 6f 72 6d 20 66 6f 6c 6c 6f 77 69 6e 67 20 66 75 6e 63 74 69 6f ┆ ; ; perform following functio┆ 0x08e5e0…08e600 6e 73 0d 0a 3b 09 62 6f 6f 74 09 63 6f 6c 64 20 73 74 61 72 74 0d 0a 3b 09 77 62 6f 6f 74 09 77 ┆ns ; boot cold start ; wboot w┆ 0x08e600…08e620 (37, 1, 15) 20 61 6c 74 65 72 65 64 20 66 6f 72 20 61 6e 79 20 73 79 73 74 65 6d 20 77 68 69 63 68 20 64 69 ┆ altered for any system which di┆ 0x08e620…08e640 66 66 65 72 73 20 66 72 6f 6d 20 74 68 65 20 69 6e 74 65 6c 20 6d 64 73 2e 0d 0a 3b 0d 0a 3b 09 ┆ffers from the intel mds. ; ; ┆ 0x08e640…08e660 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 64 65 20 61 73 73 75 6d 65 73 20 74 68 65 20 6d ┆the following code assumes the m┆ 0x08e660…08e680 64 73 20 6d 6f 6e 69 74 6f 72 20 65 78 69 73 74 73 20 61 74 20 30 66 38 30 30 68 0d 0a 3b 09 61 ┆ds monitor exists at 0f800h ; a┆ 0x08e680…08e6a0 6e 64 20 75 73 65 73 20 74 68 65 20 69 2f 6f 20 73 75 62 72 6f 75 74 69 6e 65 73 20 77 69 74 68 ┆nd uses the i/o subroutines with┆ 0x08e6a0…08e6c0 69 6e 20 74 68 65 20 6d 6f 6e 69 74 6f 72 0d 0a 3b 0d 0a 3b 09 77 65 20 61 6c 73 6f 20 61 73 73 ┆in the monitor ; ; we also ass┆ 0x08e6c0…08e6e0 75 6d 65 20 74 68 65 20 6d 64 73 20 73 79 73 74 65 6d 20 68 61 73 20 66 6f 75 72 20 64 69 73 6b ┆ume the mds system has four disk┆ 0x08e6e0…08e700 20 64 72 69 76 65 73 0d 0a 72 65 76 72 74 09 65 71 75 09 30 66 64 68 09 3b 69 6e 74 65 72 72 75 ┆ drives revrt equ 0fdh ;interru┆ 0x08e700…08e720 70 74 20 72 65 76 65 72 74 20 70 6f 72 74 0d 0a 69 6e 74 63 09 65 71 75 09 30 66 63 68 09 3b 69 ┆pt revert port intc equ 0fch ;i┆ 0x08e720…08e740 6e 74 65 72 72 75 70 74 20 6d 61 73 6b 20 70 6f 72 74 0d 0a 69 63 6f 6e 09 65 71 75 09 30 66 33 ┆nterrupt mask port icon equ 0f3┆ 0x08e740…08e760 68 09 3b 69 6e 74 65 72 72 75 70 74 20 63 6f 6e 74 72 6f 6c 20 70 6f 72 74 0d 0a 69 6e 74 65 09 ┆h ;interrupt control port inte ┆ 0x08e760…08e780 65 71 75 09 30 31 31 31 24 31 31 31 30 62 09 3b 65 6e 61 62 6c 65 20 72 73 74 20 30 28 77 61 72 ┆equ 0111$1110b ;enable rst 0(war┆ 0x08e780…08e7a0 6d 20 62 6f 6f 74 29 2c 20 72 73 74 20 37 20 28 6d 6f 6e 69 74 6f 72 29 0d 0a 3b 0d 0a 3b 09 6d ┆m boot), rst 7 (monitor) ; ; m┆ 0x08e7a0…08e7c0 64 73 20 6d 6f 6e 69 74 6f 72 20 65 71 75 61 74 65 73 0d 0a 6d 6f 6e 38 30 09 65 71 75 09 30 66 ┆ds monitor equates mon80 equ 0f┆ 0x08e7c0…08e7e0 38 30 30 68 09 3b 6d 64 73 20 6d 6f 6e 69 74 6f 72 0d 0a 72 6d 6f 6e 38 30 09 65 71 75 09 30 66 ┆800h ;mds monitor rmon80 equ 0f┆ 0x08e7e0…08e800 66 30 66 68 09 3b 72 65 73 74 61 72 74 20 6d 6f 6e 38 30 20 28 62 6f 6f 74 20 65 72 72 6f 72 29 ┆f0fh ;restart mon80 (boot error)┆ 0x08e800…08e820 (38, 0, 1) 64 6d 61 20 61 64 64 72 65 73 73 20 74 6f 20 73 74 61 72 74 20 6f 66 20 64 69 73 6b 20 73 79 73 ┆dma address to start of disk sys┆ 0x08e820…08e840 74 65 6d 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 09 6d 76 69 09 63 2c 30 09 3b 62 6f 6f ┆tem call setdma mvi c,0 ;boo┆ 0x08e840…08e860 74 20 66 72 6f 6d 20 64 72 69 76 65 20 30 0d 0a 09 63 61 6c 6c 09 73 65 6c 64 73 6b 0d 0a 09 6d ┆t from drive 0 call seldsk m┆ 0x08e860…08e880 76 69 09 63 2c 30 0d 0a 09 63 61 6c 6c 09 73 65 74 74 72 6b 09 3b 73 74 61 72 74 20 77 69 74 68 ┆vi c,0 call settrk ;start with┆ 0x08e880…08e8a0 20 74 72 61 63 6b 20 30 0d 0a 09 6d 76 69 09 63 2c 32 09 3b 73 74 61 72 74 20 72 65 61 64 69 6e ┆ track 0 mvi c,2 ;start readin┆ 0x08e8a0…08e8c0 67 20 73 65 63 74 6f 72 20 32 0d 0a 09 63 61 6c 6c 09 73 65 74 73 65 63 0d 0a 3b 0d 0a 3b 09 72 ┆g sector 2 call setsec ; ; r┆ 0x08e8c0…08e8e0 65 61 64 20 73 65 63 74 6f 72 73 2c 20 63 6f 75 6e 74 20 6e 73 65 63 74 73 20 74 6f 20 7a 65 72 ┆ead sectors, count nsects to zer┆ 0x08e8e0…08e900 6f 0d 0a 09 70 6f 70 09 62 09 3b 31 30 2d 65 72 72 6f 72 20 63 6f 75 6e 74 0d 0a 09 6d 76 69 09 ┆o pop b ;10-error count mvi ┆ 0x08e900…08e920 62 2c 6e 73 65 63 74 73 0d 0a 72 64 73 65 63 3a 09 3b 72 65 61 64 20 6e 65 78 74 20 73 65 63 74 ┆b,nsects rdsec: ;read next sect┆ 0x08e920…08e940 6f 72 0d 0a 09 70 75 73 68 09 62 09 3b 73 61 76 65 20 73 65 63 74 6f 72 20 63 6f 75 6e 74 0d 0a ┆or push b ;save sector count ┆ 0x08e940…08e960 09 63 61 6c 6c 09 72 65 61 64 0d 0a 09 6a 6e 7a 09 62 6f 6f 74 65 72 72 09 3b 72 65 74 72 79 20 ┆ call read jnz booterr ;retry ┆ 0x08e960…08e980 69 66 20 65 72 72 6f 72 73 20 6f 63 63 75 72 0d 0a 09 6c 68 6c 64 09 69 6f 64 09 3b 69 6e 63 72 ┆if errors occur lhld iod ;incr┆ 0x08e980…08e9a0 65 6d 65 6e 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 09 6c 78 69 09 64 2c 31 32 38 09 3b 73 ┆ement dma address lxi d,128 ;s┆ 0x08e9a0…08e9c0 65 63 74 6f 72 20 73 69 7a 65 0d 0a 09 64 61 64 09 64 09 3b 69 6e 63 72 65 6d 65 6e 74 65 64 20 ┆ector size dad d ;incremented ┆ 0x08e9c0…08e9e0 64 6d 61 20 61 64 64 72 65 73 73 20 69 6e 20 68 6c 0d 0a 09 6d 6f 76 09 62 2c 68 0d 0a 09 6d 6f ┆dma address in hl mov b,h mo┆ 0x08e9e0…08ea00 76 09 63 2c 6c 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 20 74 6f 20 73 65 74 20 64 6d 61 ┆v c,l ;ready for call to set dma┆ 0x08ea00…08ea20 (38, 0, 2) 72 61 63 74 65 72 20 74 6f 20 72 65 67 2d 61 0d 0a 09 63 61 6c 6c 09 63 69 0d 0a 09 61 6e 69 09 ┆racter to reg-a call ci ani ┆ 0x08ea20…08ea40 37 66 68 09 3b 72 65 6d 6f 76 65 20 70 61 72 69 74 79 20 62 69 74 0d 0a 09 72 65 74 0d 0a 3b 0d ┆7fh ;remove parity bit ret ; ┆ 0x08ea40…08ea60 0a 63 6f 6e 6f 75 74 3a 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 66 72 6f 6d ┆ conout: ;console character from┆ 0x08ea60…08ea80 20 63 20 74 6f 20 63 6f 6e 73 6f 6c 65 20 6f 75 74 0d 0a 09 6a 6d 70 09 63 6f 0d 0a 3b 0d 0a 6c ┆ c to console out jmp co ; l┆ 0x08ea80…08eaa0 69 73 74 3a 09 3b 6c 69 73 74 20 64 65 76 69 63 65 20 6f 75 74 0d 0a 3b 09 28 65 78 61 63 74 6c ┆ist: ;list device out ; (exactl┆ 0x08eaa0…08eac0 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 6c 6f ┆y the same as mds call) jmp lo┆ 0x08eac0…08eae0 0d 0a 3b 0d 0a 6c 69 73 74 73 74 3a 0d 0a 09 3b 72 65 74 75 72 6e 20 6c 69 73 74 20 73 74 61 74 ┆ ; listst: ;return list stat┆ 0x08eae0…08eb00 75 73 0d 0a 09 78 72 61 09 61 0d 0a 09 72 65 74 09 09 3b 61 6c 77 61 79 73 20 6e 6f 74 20 72 65 ┆us xra a ret ;always not re┆ 0x08eb00…08eb20 61 64 79 0d 0a 3b 0d 0a 70 75 6e 63 68 3a 09 3b 70 75 6e 63 68 20 64 65 76 69 63 65 20 6f 75 74 ┆ady ; punch: ;punch device out┆ 0x08eb20…08eb40 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c ┆ ; (exactly the same as mds cal┆ 0x08eb40…08eb60 6c 29 0d 0a 09 6a 6d 70 09 70 6f 0d 0a 3b 0d 0a 72 65 61 64 65 72 3a 09 3b 72 65 61 64 65 72 20 ┆l) jmp po ; reader: ;reader ┆ 0x08eb60…08eb80 63 68 61 72 61 63 74 65 72 20 69 6e 20 74 6f 20 72 65 67 2d 61 0d 0a 3b 09 28 65 78 61 63 74 6c ┆character in to reg-a ; (exactl┆ 0x08eb80…08eba0 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 72 69 ┆y the same as mds call) jmp ri┆ 0x08eba0…08ebc0 0d 0a 3b 0d 0a 68 6f 6d 65 3a 09 3b 6d 6f 76 65 20 74 6f 20 68 6f 6d 65 20 70 6f 73 69 74 69 6f ┆ ; home: ;move to home positio┆ 0x08ebc0…08ebe0 6e 0d 0a 3b 09 74 72 65 61 74 20 61 73 20 74 72 61 63 6b 20 30 30 20 73 65 65 6b 0d 0a 09 6d 76 ┆n ; treat as track 00 seek mv┆ 0x08ebe0…08ec00 69 09 63 2c 30 0d 0a 09 6a 6d 70 09 73 65 74 74 72 6b 0d 0a 3b 0d 0a 73 65 6c 64 73 6b 3a 09 3b ┆i c,0 jmp settrk ; seldsk: ;┆ 0x08ec00…08ec20 (38, 0, 3) 73 73 61 67 65 20 61 74 20 68 2c 6c 20 74 6f 20 30 0d 0a 09 6d 6f 76 09 61 2c 6d 0d 0a 09 6f 72 ┆ssage at h,l to 0 mov a,m or┆ 0x08ec20…08ec40 61 09 61 09 3b 7a 65 72 6f 3f 0d 0a 09 72 7a 0d 0a 3b 09 6d 6f 72 65 20 74 6f 20 70 72 69 6e 74 ┆a a ;zero? rz ; more to print┆ 0x08ec40…08ec60 0d 0a 09 70 75 73 68 09 68 0d 0a 09 6d 6f 76 09 63 2c 61 0d 0a 09 63 61 6c 6c 09 63 6f 6e 6f 75 ┆ push h mov c,a call conou┆ 0x08ec60…08ec80 74 0d 0a 09 70 6f 70 09 68 0d 0a 09 69 6e 78 09 68 0d 0a 09 6a 6d 70 09 70 72 6d 73 67 0d 0a 3b ┆t pop h inx h jmp prmsg ;┆ 0x08ec80…08eca0 0d 0a 73 65 74 66 75 6e 63 3a 0d 0a 3b 09 73 65 74 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 6e ┆ setfunc: ; set function for n┆ 0x08eca0…08ecc0 65 78 74 20 69 2f 6f 20 28 63 6f 6d 6d 61 6e 64 20 69 6e 20 72 65 67 2d 63 29 0d 0a 09 6c 78 69 ┆ext i/o (command in reg-c) lxi┆ 0x08ecc0…08ece0 09 68 2c 69 6f 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 72 65 73 73 0d 0a 09 6d 6f ┆ h,iof ;io function address mo┆ 0x08ece0…08ed00 76 09 61 2c 6d 09 3b 67 65 74 20 69 74 20 74 6f 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 66 6f 72 ┆v a,m ;get it to accumulator for┆ 0x08ed00…08ed20 20 6d 61 73 6b 69 6e 67 0d 0a 09 61 6e 69 09 31 31 31 31 31 30 30 30 62 09 3b 72 65 6d 6f 76 65 ┆ masking ani 11111000b ;remove┆ 0x08ed20…08ed40 20 70 72 65 76 69 6f 75 73 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6f 72 61 09 63 09 3b 73 65 74 20 74 ┆ previous command ora c ;set t┆ 0x08ed40…08ed60 6f 20 6e 65 77 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6d 6f 76 09 6d 2c 61 09 3b 72 65 70 6c 61 63 65 ┆o new command mov m,a ;replace┆ 0x08ed60…08ed80 64 20 69 6e 20 69 6f 70 62 0d 0a 3b 09 74 68 65 20 6d 64 73 2d 38 30 30 20 63 6f 6e 74 72 6f 6c ┆d in iopb ; the mds-800 control┆ 0x08ed80…08eda0 6c 65 72 20 72 65 71 75 69 72 65 73 20 64 69 73 6b 20 62 61 6e 6b 20 62 69 74 20 69 6e 20 73 65 ┆ler requires disk bank bit in se┆ 0x08eda0…08edc0 63 74 6f 72 20 62 79 74 65 0d 0a 3b 09 6d 61 73 6b 20 74 68 65 20 62 69 74 20 66 72 6f 6d 20 74 ┆ctor byte ; mask the bit from t┆ 0x08edc0…08ede0 68 65 20 63 75 72 72 65 6e 74 20 69 2f 6f 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 61 6e 69 09 30 30 ┆he current i/o function ani 00┆ 0x08ede0…08ee00 31 30 30 30 30 30 62 09 3b 6d 61 73 6b 20 74 68 65 20 64 69 73 6b 20 73 65 6c 65 63 74 20 62 69 ┆100000b ;mask the disk select bi┆ 0x08ee00…08ee20 (38, 0, 4) 72 2c 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 74 68 65 20 63 6f 6e 64 69 74 69 6f ┆r, corresponding to the conditio┆ 0x08ee20…08ee40 6e 73 3a 0d 0a 3b 09 30 09 2d 20 64 65 6c 65 74 65 64 20 64 61 74 61 20 28 61 63 63 65 70 74 65 ┆ns: ; 0 - deleted data (accepte┆ 0x08ee40…08ee60 64 20 61 73 20 6f 6b 20 61 62 6f 76 65 29 0d 0a 3b 09 31 09 2d 20 63 72 63 20 65 72 72 6f 72 0d ┆d as ok above) ; 1 - crc error ┆ 0x08ee60…08ee80 0a 3b 09 32 09 2d 20 73 65 65 6b 20 65 72 72 6f 72 0d 0a 3b 09 33 09 2d 20 61 64 64 72 65 73 73 ┆ ; 2 - seek error ; 3 - address┆ 0x08ee80…08eea0 20 65 72 72 6f 72 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b ┆ error (hardware malfunction) ;┆ 0x08eea0…08eec0 09 34 09 2d 20 64 61 74 61 20 6f 76 65 72 2f 75 6e 64 65 72 20 66 6c 6f 77 20 28 68 61 72 64 77 ┆ 4 - data over/under flow (hardw┆ 0x08eec0…08eee0 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 35 09 2d 20 77 72 69 74 65 20 70 72 ┆are malfunction) ; 5 - write pr┆ 0x08eee0…08ef00 6f 74 65 63 74 20 28 74 72 65 61 74 65 64 20 61 73 20 6e 6f 74 20 72 65 61 64 79 29 0d 0a 3b 09 ┆otect (treated as not ready) ; ┆ 0x08ef00…08ef20 36 09 2d 20 77 72 69 74 65 20 65 72 72 6f 72 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e ┆6 - write error (hardware malfun┆ 0x08ef20…08ef40 63 74 69 6f 6e 29 0d 0a 3b 09 37 09 2d 20 6e 6f 74 20 72 65 61 64 79 0d 0a 3b 09 28 61 63 63 75 ┆ction) ; 7 - not ready ; (accu┆ 0x08ef40…08ef60 6d 75 6c 61 74 6f 72 20 62 69 74 73 20 61 72 65 20 6e 75 6d 62 65 72 65 64 20 37 20 36 20 35 20 ┆mulator bits are numbered 7 6 5 ┆ 0x08ef60…08ef80 34 20 33 20 32 20 31 20 30 29 0d 0a 3b 0d 0a 3b 09 69 74 20 6d 61 79 20 62 65 20 75 73 65 66 75 ┆4 3 2 1 0) ; ; it may be usefu┆ 0x08ef80…08efa0 6c 20 74 6f 20 66 69 6c 74 65 72 20 6f 75 74 20 74 68 65 20 76 61 72 69 6f 75 73 20 63 6f 6e 64 ┆l to filter out the various cond┆ 0x08efa0…08efc0 69 74 69 6f 6e 73 2c 0d 0a 3b 09 62 75 74 20 77 65 20 77 69 6c 6c 20 67 65 74 20 61 20 70 65 72 ┆itions, ; but we will get a per┆ 0x08efc0…08efe0 6d 61 6e 65 6e 74 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 69 66 20 69 74 20 69 73 20 6e 6f ┆manent error message if it is no┆ 0x08efe0…08f000 74 0d 0a 3b 09 72 65 63 6f 76 65 72 61 62 6c 65 2e 20 20 69 6e 20 61 6e 79 20 63 61 73 65 2c 20 ┆t ; recoverable. in any case, ┆ 0x08f000…08f020 (38, 0, 5) 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 09 6c 64 61 09 69 6f 73 09 3b 73 65 63 74 6f 72 ┆ call setdma lda ios ;sector┆ 0x08f020…08f040 20 6e 75 6d 62 65 72 20 6a 75 73 74 20 72 65 61 64 0d 0a 09 63 70 69 09 32 36 09 3b 72 65 61 64 ┆ number just read cpi 26 ;read┆ 0x08f040…08f060 20 6c 61 73 74 20 73 65 63 74 6f 72 3f 0d 0a 09 6a 63 09 72 64 31 0d 0a 3b 09 6d 75 73 74 20 62 ┆ last sector? jc rd1 ; must b┆ 0x08f060…08f080 65 20 73 65 63 74 6f 72 20 32 36 2c 20 7a 65 72 6f 20 61 6e 64 20 67 6f 20 74 6f 20 6e 65 78 74 ┆e sector 26, zero and go to next┆ 0x08f080…08f0a0 20 74 72 61 63 6b 0d 0a 09 6c 64 61 09 69 6f 74 09 3b 67 65 74 20 74 72 61 63 6b 20 74 6f 20 72 ┆ track lda iot ;get track to r┆ 0x08f0a0…08f0c0 65 67 69 73 74 65 72 20 61 0d 0a 09 69 6e 72 09 61 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 72 65 61 ┆egister a inr a mov c,a ;rea┆ 0x08f0c0…08f0e0 64 79 20 66 6f 72 20 63 61 6c 6c 0d 0a 09 63 61 6c 6c 09 73 65 74 74 72 6b 0d 0a 09 78 72 61 09 ┆dy for call call settrk xra ┆ 0x08f0e0…08f100 61 09 3b 63 6c 65 61 72 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 0d 0a 72 64 31 3a 09 69 6e 72 ┆a ;clear sector number rd1: inr┆ 0x08f100…08f120 09 61 09 3b 74 6f 20 6e 65 78 74 20 73 65 63 74 6f 72 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 72 65 ┆ a ;to next sector mov c,a ;re┆ 0x08f120…08f140 61 64 79 20 66 6f 72 20 63 61 6c 6c 0d 0a 09 63 61 6c 6c 09 73 65 74 73 65 63 0d 0a 09 70 6f 70 ┆ady for call call setsec pop┆ 0x08f140…08f160 09 62 09 3b 72 65 63 61 6c 6c 20 73 65 63 74 6f 72 20 63 6f 75 6e 74 0d 0a 09 64 63 72 09 62 09 ┆ b ;recall sector count dcr b ┆ 0x08f160…08f180 3b 64 6f 6e 65 3f 0d 0a 09 6a 6e 7a 09 72 64 73 65 63 0d 0a 3b 0d 0a 3b 09 64 6f 6e 65 20 77 69 ┆;done? jnz rdsec ; ; done wi┆ 0x08f180…08f1a0 74 68 20 74 68 65 20 6c 6f 61 64 2c 20 72 65 73 65 74 20 64 65 66 61 75 6c 74 20 62 75 66 66 65 ┆th the load, reset default buffe┆ 0x08f1a0…08f1c0 72 20 61 64 64 72 65 73 73 0d 0a 67 6f 63 70 6d 3a 09 3b 28 65 6e 74 65 72 20 68 65 72 65 20 66 ┆r address gocpm: ;(enter here f┆ 0x08f1c0…08f1e0 72 6f 6d 20 63 6f 6c 64 20 73 74 61 72 74 20 62 6f 6f 74 29 0d 0a 3b 09 65 6e 61 62 6c 65 20 72 ┆rom cold start boot) ; enable r┆ 0x08f1e0…08f200 73 74 30 20 61 6e 64 20 72 73 74 37 0d 0a 09 64 69 0d 0a 09 6d 76 69 09 61 2c 31 32 68 09 3b 69 ┆st0 and rst7 di mvi a,12h ;i┆ 0x08f200…08f220 (38, 0, 6) 73 65 6c 65 63 74 20 64 69 73 6b 20 67 69 76 65 6e 20 62 79 20 72 65 67 69 73 74 65 72 20 63 0d ┆select disk given by register c ┆ 0x08f220…08f240 0a 09 6c 78 69 09 68 2c 30 30 30 30 68 09 3b 72 65 74 75 72 6e 20 30 30 30 30 20 69 66 20 65 72 ┆ lxi h,0000h ;return 0000 if er┆ 0x08f240…08f260 72 6f 72 0d 0a 09 6d 6f 76 09 61 2c 63 0d 0a 09 63 70 69 09 6e 64 69 73 6b 73 09 3b 74 6f 6f 20 ┆ror mov a,c cpi ndisks ;too ┆ 0x08f260…08f280 6c 61 72 67 65 3f 0d 0a 09 72 6e 63 09 09 3b 6c 65 61 76 65 20 48 4c 20 3d 20 30 30 30 30 0d 0a ┆large? rnc ;leave HL = 0000 ┆ 0x08f280…08f2a0 3b 0d 0a 09 61 6e 69 09 31 30 62 09 3b 30 30 20 30 30 20 66 6f 72 20 64 72 69 76 65 20 30 2c 31 ┆; ani 10b ;00 00 for drive 0,1┆ 0x08f2a0…08f2c0 20 61 6e 64 20 31 30 20 31 30 20 66 6f 72 20 64 72 69 76 65 20 32 2c 33 0d 0a 09 73 74 61 09 64 ┆ and 10 10 for drive 2,3 sta d┆ 0x08f2c0…08f2e0 62 61 6e 6b 09 3b 74 6f 20 73 65 6c 65 63 74 20 64 72 69 76 65 20 62 61 6e 6b 0d 0a 09 6d 6f 76 ┆bank ;to select drive bank mov┆ 0x08f2e0…08f300 09 61 2c 63 09 3b 30 30 2c 20 30 31 2c 20 31 30 2c 20 31 31 0d 0a 09 61 6e 69 09 31 62 09 3b 6d ┆ a,c ;00, 01, 10, 11 ani 1b ;m┆ 0x08f300…08f320 64 73 20 68 61 73 20 30 2c 31 20 61 74 20 37 38 2c 20 32 2c 33 20 61 74 20 38 38 0d 0a 09 6f 72 ┆ds has 0,1 at 78, 2,3 at 88 or┆ 0x08f320…08f340 61 09 61 09 3b 72 65 73 75 6c 74 20 30 30 3f 0d 0a 09 6a 7a 09 73 65 74 64 72 69 76 65 0d 0a 09 ┆a a ;result 00? jz setdrive ┆ 0x08f340…08f360 6d 76 69 09 61 2c 30 30 31 31 30 30 30 30 62 09 3b 73 65 6c 65 63 74 73 20 64 72 69 76 65 20 31 ┆mvi a,00110000b ;selects drive 1┆ 0x08f360…08f380 20 69 6e 20 62 61 6e 6b 0d 0a 73 65 74 64 72 69 76 65 3a 0d 0a 09 6d 6f 76 09 62 2c 61 09 3b 73 ┆ in bank setdrive: mov b,a ;s┆ 0x08f380…08f3a0 61 76 65 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6c 78 69 09 68 2c 69 6f 66 09 3b 69 6f ┆ave the function lxi h,iof ;io┆ 0x08f3a0…08f3c0 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6d 6f 76 09 61 2c 6d 0d 0a 09 61 6e 69 09 31 31 30 30 31 31 ┆ function mov a,m ani 110011┆ 0x08f3c0…08f3e0 31 31 62 09 3b 6d 61 73 6b 20 6f 75 74 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6f 72 61 09 ┆11b ;mask out disk number ora ┆ 0x08f3e0…08f400 62 09 3b 6d 61 73 6b 20 69 6e 20 6e 65 77 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6d 6f 76 ┆b ;mask in new disk number mov┆ 0x08f400…08f420 (38, 0, 7) 74 0d 0a 09 6c 78 69 09 68 2c 69 6f 73 09 09 3b 61 64 64 72 65 73 73 20 74 68 65 20 73 65 63 74 ┆t lxi h,ios ;address the sect┆ 0x08f420…08f440 6f 72 20 73 65 6c 65 63 74 20 62 79 74 65 0d 0a 09 6f 72 61 09 6d 09 09 3b 73 65 6c 65 63 74 20 ┆or select byte ora m ;select ┆ 0x08f440…08f460 70 72 6f 70 65 72 20 64 69 73 6b 20 62 61 6e 6b 0d 0a 09 6d 6f 76 09 6d 2c 61 09 09 3b 73 65 74 ┆proper disk bank mov m,a ;set┆ 0x08f460…08f480 20 64 69 73 6b 20 73 65 6c 65 63 74 20 62 69 74 20 6f 6e 2f 6f 66 66 0d 0a 09 72 65 74 0d 0a 3b ┆ disk select bit on/off ret ;┆ 0x08f480…08f4a0 0d 0a 77 61 69 74 69 6f 3a 0d 0a 09 6d 76 69 09 63 2c 72 65 74 72 79 09 3b 6d 61 78 20 72 65 74 ┆ waitio: mvi c,retry ;max ret┆ 0x08f4a0…08f4c0 72 69 65 73 20 62 65 66 6f 72 65 20 70 65 72 6d 20 65 72 72 6f 72 0d 0a 72 65 77 61 69 74 3a 0d ┆ries before perm error rewait: ┆ 0x08f4c0…08f4e0 0a 3b 09 73 74 61 72 74 20 74 68 65 20 69 2f 6f 20 66 75 6e 63 74 69 6f 6e 20 61 6e 64 20 77 61 ┆ ; start the i/o function and wa┆ 0x08f4e0…08f500 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 69 6e 74 79 70 65 09 ┆it for completion call intype ┆ 0x08f500…08f520 3b 69 6e 20 72 74 79 70 65 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 09 3b 63 6c 65 61 72 73 20 ┆;in rtype call inbyte ;clears ┆ 0x08f520…08f540 74 68 65 20 63 6f 6e 74 72 6f 6c 6c 65 72 0d 0a 3b 0d 0a 09 6c 64 61 09 64 62 61 6e 6b 09 09 3b ┆the controller ; lda dbank ;┆ 0x08f540…08f560 73 65 74 20 62 61 6e 6b 20 66 6c 61 67 73 0d 0a 09 6f 72 61 09 61 09 09 3b 7a 65 72 6f 20 69 66 ┆set bank flags ora a ;zero if┆ 0x08f560…08f580 20 64 72 69 76 65 20 30 2c 31 20 61 6e 64 20 6e 7a 20 69 66 20 32 2c 33 0d 0a 09 6d 76 69 09 61 ┆ drive 0,1 and nz if 2,3 mvi a┆ 0x08f580…08f5a0 2c 69 6f 70 62 20 61 6e 64 20 30 66 66 68 09 3b 6c 6f 77 20 61 64 64 72 65 73 73 20 66 6f 72 20 ┆,iopb and 0ffh ;low address for ┆ 0x08f5a0…08f5c0 69 6f 70 62 0d 0a 09 6d 76 69 09 62 2c 69 6f 70 62 20 73 68 72 20 38 09 3b 68 69 67 68 20 61 64 ┆iopb mvi b,iopb shr 8 ;high ad┆ 0x08f5c0…08f5e0 64 72 65 73 73 20 66 6f 72 20 69 6f 70 62 0d 0a 09 6a 6e 7a 09 69 6f 64 72 31 09 3b 64 72 69 76 ┆dress for iopb jnz iodr1 ;driv┆ 0x08f5e0…08f600 65 20 62 61 6e 6b 20 31 3f 0d 0a 09 6f 75 74 09 69 6c 6f 77 09 09 3b 6c 6f 77 20 61 64 64 72 65 ┆e bank 1? out ilow ;low addre┆ 0x08f600…08f620 (38, 0, 8) 74 68 65 20 6e 6f 74 20 72 65 61 64 79 20 63 6f 6e 64 69 74 69 6f 6e 20 69 73 0d 0a 3b 09 74 72 ┆the not ready condition is ; tr┆ 0x08f620…08f640 65 61 74 65 64 20 61 73 20 61 20 73 65 70 61 72 61 74 65 20 63 6f 6e 64 69 74 69 6f 6e 20 66 6f ┆eated as a separate condition fo┆ 0x08f640…08f660 72 20 6c 61 74 65 72 20 69 6d 70 72 6f 76 65 6d 65 6e 74 0d 0a 74 72 79 63 6f 75 6e 74 3a 0d 0a ┆r later improvement trycount: ┆ 0x08f660…08f680 3b 09 72 65 67 69 73 74 65 72 20 63 20 63 6f 6e 74 61 69 6e 73 20 72 65 74 72 79 20 63 6f 75 6e ┆; register c contains retry coun┆ 0x08f680…08f6a0 74 2c 20 64 65 63 72 65 6d 65 6e 74 20 27 74 69 6c 20 7a 65 72 6f 0d 0a 09 64 63 72 09 63 0d 0a ┆t, decrement 'til zero dcr c ┆ 0x08f6a0…08f6c0 09 6a 6e 7a 09 72 65 77 61 69 74 09 3b 66 6f 72 20 61 6e 6f 74 68 65 72 20 74 72 79 0d 0a 3b 0d ┆ jnz rewait ;for another try ; ┆ 0x08f6c0…08f6e0 0a 3b 09 63 61 6e 6e 6f 74 20 72 65 63 6f 76 65 72 20 66 72 6f 6d 20 65 72 72 6f 72 0d 0a 09 6d ┆ ; cannot recover from error m┆ 0x08f6e0…08f700 76 69 09 61 2c 31 09 3b 65 72 72 6f 72 20 63 6f 64 65 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 09 69 ┆vi a,1 ;error code ret ; ; i┆ 0x08f700…08f720 6e 74 79 70 65 2c 20 69 6e 62 79 74 65 2c 20 69 6e 73 74 61 74 20 72 65 61 64 20 64 72 69 76 65 ┆ntype, inbyte, instat read drive┆ 0x08f720…08f740 20 62 61 6e 6b 20 30 30 20 6f 72 20 31 30 0d 0a 69 6e 74 79 70 65 3a 09 6c 64 61 09 64 62 61 6e ┆ bank 00 or 10 intype: lda dban┆ 0x08f740…08f760 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 74 79 70 31 09 3b 73 6b 69 70 20 74 6f 20 ┆k ora a jnz intyp1 ;skip to ┆ 0x08f760…08f780 62 61 6e 6b 20 31 30 0d 0a 09 69 6e 09 72 74 79 70 65 0d 0a 09 72 65 74 0d 0a 69 6e 74 79 70 31 ┆bank 10 in rtype ret intyp1┆ 0x08f780…08f7a0 3a 09 69 6e 09 72 74 79 70 65 2b 31 30 68 09 3b 37 38 20 66 6f 72 20 30 2c 31 20 20 38 38 20 66 ┆: in rtype+10h ;78 for 0,1 88 f┆ 0x08f7a0…08f7c0 6f 72 20 32 2c 33 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 69 6e 62 79 74 65 3a 09 6c 64 61 09 64 62 61 ┆or 2,3 ret ; inbyte: lda dba┆ 0x08f7c0…08f7e0 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 62 79 74 31 0d 0a 09 69 6e 09 72 62 79 ┆nk ora a jnz inbyt1 in rby┆ 0x08f7e0…08f800 74 65 0d 0a 09 72 65 74 0d 0a 69 6e 62 79 74 31 3a 09 69 6e 09 72 62 79 74 65 2b 31 30 68 0d 0a ┆te ret inbyt1: in rbyte+10h ┆ 0x08f800…08f820 (38, 0, 9) 6e 69 74 69 61 6c 69 7a 65 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6f 75 74 09 72 65 76 72 74 0d 0a 09 ┆nitialize command out revrt ┆ 0x08f820…08f840 78 72 61 09 61 0d 0a 09 6f 75 74 09 69 6e 74 63 09 3b 63 6c 65 61 72 65 64 0d 0a 09 6d 76 69 09 ┆xra a out intc ;cleared mvi ┆ 0x08f840…08f860 61 2c 69 6e 74 65 09 3b 72 73 74 30 20 61 6e 64 20 72 73 74 37 20 62 69 74 73 20 6f 6e 0d 0a 09 ┆a,inte ;rst0 and rst7 bits on ┆ 0x08f860…08f880 6f 75 74 09 69 6e 74 63 0d 0a 09 78 72 61 09 61 0d 0a 09 6f 75 74 09 69 63 6f 6e 09 3b 69 6e 74 ┆out intc xra a out icon ;int┆ 0x08f880…08f8a0 65 72 72 75 70 74 20 63 6f 6e 74 72 6f 6c 0d 0a 3b 0d 0a 3b 09 73 65 74 20 64 65 66 61 75 6c 74 ┆errupt control ; ; set default┆ 0x08f8a0…08f8c0 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 20 74 6f 20 38 30 68 0d 0a 09 6c 78 69 09 62 2c 62 ┆ buffer address to 80h lxi b,b┆ 0x08f8c0…08f8e0 75 66 66 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 3b 0d 0a 3b 09 72 65 73 65 74 20 6d 6f ┆uff call setdma ; ; reset mo┆ 0x08f8e0…08f900 6e 69 74 6f 72 20 65 6e 74 72 79 20 70 6f 69 6e 74 73 0d 0a 09 6d 76 69 09 61 2c 6a 6d 70 0d 0a ┆nitor entry points mvi a,jmp ┆ 0x08f900…08f920 09 73 74 61 09 30 0d 0a 09 6c 78 69 09 68 2c 77 62 6f 6f 74 65 0d 0a 09 73 68 6c 64 09 31 09 3b ┆ sta 0 lxi h,wboote shld 1 ;┆ 0x08f920…08f940 6a 6d 70 20 77 62 6f 6f 74 20 61 74 20 6c 6f 63 61 74 69 6f 6e 20 30 30 0d 0a 09 73 74 61 09 35 ┆jmp wboot at location 00 sta 5┆ 0x08f940…08f960 0d 0a 09 6c 78 69 09 68 2c 62 64 6f 73 0d 0a 09 73 68 6c 64 09 36 09 3b 6a 6d 70 20 62 64 6f 73 ┆ lxi h,bdos shld 6 ;jmp bdos┆ 0x08f960…08f980 20 61 74 20 6c 6f 63 61 74 69 6f 6e 20 35 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 09 73 ┆ at location 5 if not test s┆ 0x08f980…08f9a0 74 61 09 37 2a 38 09 3b 6a 6d 70 20 74 6f 20 6d 6f 6e 38 30 20 28 6d 61 79 20 68 61 76 65 20 62 ┆ta 7*8 ;jmp to mon80 (may have b┆ 0x08f9a0…08f9c0 65 65 6e 20 63 68 61 6e 67 65 64 20 62 79 20 64 64 74 29 0d 0a 09 6c 78 69 09 68 2c 6d 6f 6e 38 ┆een changed by ddt) lxi h,mon8┆ 0x08f9c0…08f9e0 30 0d 0a 09 73 68 6c 64 09 37 2a 38 2b 31 0d 0a 09 65 6e 64 69 66 0d 0a 3b 09 6c 65 61 76 65 20 ┆0 shld 7*8+1 endif ; leave ┆ 0x08f9e0…08fa00 69 6f 62 79 74 65 20 73 65 74 0d 0a 3b 09 70 72 65 76 69 6f 75 73 6c 79 20 73 65 6c 65 63 74 65 ┆iobyte set ; previously selecte┆ 0x08fa00…08fa20 (38, 0, 10) 09 6d 2c 61 09 3b 73 61 76 65 20 69 74 20 69 6e 20 69 6f 70 62 0d 0a 09 6d 6f 76 09 6c 2c 63 0d ┆ m,a ;save it in iopb mov l,c ┆ 0x08fa20…08fa40 0a 09 6d 76 69 09 68 2c 30 09 3b 48 4c 3d 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 64 61 64 09 ┆ mvi h,0 ;HL=disk number dad ┆ 0x08fa40…08fa60 68 09 3b 2a 32 0d 0a 09 64 61 64 09 68 09 3b 2a 34 0d 0a 09 64 61 64 09 68 09 3b 2a 38 0d 0a 09 ┆h ;*2 dad h ;*4 dad h ;*8 ┆ 0x08fa60…08fa80 64 61 64 09 68 09 3b 2a 31 36 0d 0a 09 6c 78 69 09 64 2c 64 70 62 61 73 65 0d 0a 09 64 61 64 09 ┆dad h ;*16 lxi d,dpbase dad ┆ 0x08fa80…08faa0 64 09 3b 48 4c 3d 64 69 73 6b 20 68 65 61 64 65 72 20 74 61 62 6c 65 20 61 64 64 72 65 73 73 0d ┆d ;HL=disk header table address ┆ 0x08faa0…08fac0 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 73 65 74 74 72 6b 3a 09 3b 73 65 74 20 74 72 61 63 6b 20 ┆ ret ; ; settrk: ;set track ┆ 0x08fac0…08fae0 61 64 64 72 65 73 73 20 67 69 76 65 6e 20 62 79 20 63 0d 0a 09 6c 78 69 09 68 2c 69 6f 74 0d 0a ┆address given by c lxi h,iot ┆ 0x08fae0…08fb00 09 6d 6f 76 09 6d 2c 63 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 73 65 74 73 65 63 3a 09 3b 73 65 74 20 ┆ mov m,c ret ; setsec: ;set ┆ 0x08fb00…08fb20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 67 69 76 65 6e 20 62 79 20 63 0d 0a 09 6c 78 69 09 68 ┆sector number given by c lxi h┆ 0x08fb20…08fb40 2c 69 6f 73 0d 0a 09 6d 6f 76 09 6d 2c 63 0d 0a 09 72 65 74 0d 0a 73 65 63 74 72 61 6e 3a 0d 0a ┆,ios mov m,c ret sectran: ┆ 0x08fb40…08fb60 09 09 3b 74 72 61 6e 73 6c 61 74 65 20 73 65 63 74 6f 72 20 62 63 20 75 73 69 6e 67 20 74 61 62 ┆ ;translate sector bc using tab┆ 0x08fb60…08fb80 6c 65 20 61 74 20 64 65 0d 0a 09 6d 76 69 09 62 2c 30 09 3b 64 6f 75 62 6c 65 20 70 72 65 63 69 ┆le at de mvi b,0 ;double preci┆ 0x08fb80…08fba0 73 69 6f 6e 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 69 6e 20 42 43 0d 0a 09 78 63 68 67 09 ┆sion sector number in BC xchg ┆ 0x08fba0…08fbc0 09 3b 74 72 61 6e 73 6c 61 74 65 20 74 61 62 6c 65 20 61 64 64 72 65 73 73 20 74 6f 20 48 4c 0d ┆ ;translate table address to HL ┆ 0x08fbc0…08fbe0 0a 09 64 61 64 09 62 09 3b 74 72 61 6e 73 6c 61 74 65 28 73 65 63 74 6f 72 29 20 61 64 64 72 65 ┆ dad b ;translate(sector) addre┆ 0x08fbe0…08fc00 73 73 0d 0a 09 6d 6f 76 09 61 2c 6d 09 3b 74 72 61 6e 73 6c 61 74 65 64 20 73 65 63 74 6f 72 20 ┆ss mov a,m ;translated sector ┆ 0x08fc00…08fc20 (38, 0, 11) 73 73 20 74 6f 20 63 6f 6e 74 72 6f 6c 6c 65 72 0d 0a 09 6d 6f 76 09 61 2c 62 0d 0a 09 6f 75 74 ┆ss to controller mov a,b out┆ 0x08fc20…08fc40 09 69 68 69 67 68 09 3b 68 69 67 68 20 61 64 64 72 65 73 73 0d 0a 09 6a 6d 70 09 77 61 69 74 30 ┆ ihigh ;high address jmp wait0┆ 0x08fc40…08fc60 09 09 3b 74 6f 20 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 65 0d 0a 3b 0d 0a 69 6f 64 72 ┆ ;to wait for complete ; iodr┆ 0x08fc60…08fc80 31 3a 09 3b 64 72 69 76 65 20 62 61 6e 6b 20 31 0d 0a 09 6f 75 74 09 69 6c 6f 77 2b 31 30 68 09 ┆1: ;drive bank 1 out ilow+10h ┆ 0x08fc80…08fca0 3b 38 38 20 66 6f 72 20 64 72 69 76 65 20 62 61 6e 6b 20 31 30 0d 0a 09 6d 6f 76 09 61 2c 62 0d ┆;88 for drive bank 10 mov a,b ┆ 0x08fca0…08fcc0 0a 09 6f 75 74 09 69 68 69 67 68 2b 31 30 68 0d 0a 3b 0d 0a 77 61 69 74 30 3a 09 63 61 6c 6c 09 ┆ out ihigh+10h ; wait0: call ┆ 0x08fcc0…08fce0 69 6e 73 74 61 74 09 09 3b 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 0d 0a 09 61 ┆instat ;wait for completion a┆ 0x08fce0…08fd00 6e 69 09 69 6f 72 64 79 09 09 3b 72 65 61 64 79 3f 0d 0a 09 6a 7a 09 77 61 69 74 30 0d 0a 3b 0d ┆ni iordy ;ready? jz wait0 ; ┆ 0x08fd00…08fd20 0a 3b 09 63 68 65 63 6b 20 69 6f 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 6f 6b 0d 0a 09 63 61 6c 6c ┆ ; check io completion ok call┆ 0x08fd20…08fd40 09 69 6e 74 79 70 65 09 09 3b 6d 75 73 74 20 62 65 20 69 6f 20 63 6f 6d 70 6c 65 74 65 20 28 30 ┆ intype ;must be io complete (0┆ 0x08fd40…08fd60 30 29 20 75 6e 6c 69 6e 6b 65 64 0d 0a 3b 09 30 30 20 75 6e 6c 69 6e 6b 65 64 20 69 2f 6f 20 63 ┆0) unlinked ; 00 unlinked i/o c┆ 0x08fd60…08fd80 6f 6d 70 6c 65 74 65 2c 20 20 20 20 30 31 20 6c 69 6e 6b 65 64 20 69 2f 6f 20 63 6f 6d 70 6c 65 ┆omplete, 01 linked i/o comple┆ 0x08fd80…08fda0 74 65 20 28 6e 6f 74 20 75 73 65 64 29 0d 0a 3b 09 31 30 20 64 69 73 6b 20 73 74 61 74 75 73 20 ┆te (not used) ; 10 disk status ┆ 0x08fda0…08fdc0 63 68 61 6e 67 65 64 20 20 20 20 20 20 20 31 31 20 28 6e 6f 74 20 75 73 65 64 29 0d 0a 09 63 70 ┆changed 11 (not used) cp┆ 0x08fdc0…08fde0 69 09 31 30 62 09 09 3b 72 65 61 64 79 20 73 74 61 74 75 73 20 63 68 61 6e 67 65 3f 0d 0a 09 6a ┆i 10b ;ready status change? j┆ 0x08fde0…08fe00 7a 09 77 72 65 61 64 79 0d 0a 3b 0d 0a 3b 09 6d 75 73 74 20 62 65 20 30 30 20 69 6e 20 74 68 65 ┆z wready ; ; must be 00 in the┆ 0x08fe00…08fe20 (38, 0, 12) 09 72 65 74 0d 0a 3b 0d 0a 69 6e 73 74 61 74 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 ┆ ret ; instat: lda dbank ora┆ 0x08fe20…08fe40 09 61 0d 0a 09 6a 6e 7a 09 69 6e 73 74 61 31 0d 0a 09 69 6e 09 64 73 74 61 74 0d 0a 09 72 65 74 ┆ a jnz insta1 in dstat ret┆ 0x08fe40…08fe60 0d 0a 69 6e 73 74 61 31 3a 09 69 6e 09 64 73 74 61 74 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d ┆ insta1: in dstat+10h ret ; ┆ 0x08fe60…08fe80 0a 3b 0d 0a 3b 0d 0a 3b 09 64 61 74 61 20 61 72 65 61 73 20 28 6d 75 73 74 20 62 65 20 69 6e 20 ┆ ; ; ; data areas (must be in ┆ 0x08fe80…08fea0 72 61 6d 29 0d 0a 64 62 61 6e 6b 3a 09 64 62 09 30 09 3b 64 69 73 6b 20 62 61 6e 6b 20 30 30 20 ┆ram) dbank: db 0 ;disk bank 00 ┆ 0x08fea0…08fec0 69 66 20 64 72 69 76 65 20 30 2c 31 0d 0a 09 09 09 3b 09 20 20 20 31 30 20 69 66 20 64 72 69 76 ┆if drive 0,1 ; 10 if driv┆ 0x08fec0…08fee0 65 20 32 2c 33 0d 0a 69 6f 70 62 3a 09 3b 69 6f 20 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b ┆e 2,3 iopb: ;io parameter block┆ 0x08fee0…08ff00 0d 0a 09 64 62 09 38 30 68 09 3b 6e 6f 72 6d 61 6c 20 69 2f 6f 20 6f 70 65 72 61 74 69 6f 6e 0d ┆ db 80h ;normal i/o operation ┆ 0x08ff00…08ff20 0a 69 6f 66 3a 09 64 62 09 72 65 61 64 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 2c 20 69 6e 69 ┆ iof: db readf ;io function, ini┆ 0x08ff20…08ff40 74 69 61 6c 20 72 65 61 64 0d 0a 69 6f 6e 3a 09 64 62 09 31 09 3b 6e 75 6d 62 65 72 20 6f 66 20 ┆tial read ion: db 1 ;number of ┆ 0x08ff40…08ff60 73 65 63 74 6f 72 73 20 74 6f 20 72 65 61 64 0d 0a 69 6f 74 3a 09 64 62 09 6f 66 66 73 65 74 09 ┆sectors to read iot: db offset ┆ 0x08ff60…08ff80 3b 74 72 61 63 6b 20 6e 75 6d 62 65 72 0d 0a 69 6f 73 3a 09 64 62 09 31 09 3b 73 65 63 74 6f 72 ┆;track number ios: db 1 ;sector┆ 0x08ff80…08ffa0 20 6e 75 6d 62 65 72 0d 0a 69 6f 64 3a 09 64 77 09 62 75 66 66 09 3b 69 6f 20 61 64 64 72 65 73 ┆ number iod: dw buff ;io addres┆ 0x08ffa0…08ffc0 73 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 65 66 69 6e 65 20 72 61 6d 20 61 72 65 61 73 20 66 6f 72 20 ┆s ; ; ; define ram areas for ┆ 0x08ffc0…08ffe0 62 64 6f 73 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 09 65 6e 64 65 66 0d 0a 09 65 6e 64 0d 0a 3b 09 ┆bdos operation endef end ; ┆ 0x08ffe0…090000 4d 44 53 2d 38 30 30 20 49 2f 4f 20 44 72 69 76 65 72 73 20 66 6f 72 20 43 50 2f 4d 20 32 2e 32 ┆MDS-800 I/O Drivers for CP/M 2.2┆ 0x090000…090020 (38, 0, 13) 64 20 64 69 73 6b 20 77 61 73 20 62 2c 20 73 65 6e 64 20 70 61 72 61 6d 65 74 65 72 20 74 6f 20 ┆d disk was b, send parameter to ┆ 0x090020…090040 63 70 6d 0d 0a 09 6c 64 61 09 63 64 69 73 6b 09 3b 6c 61 73 74 20 6c 6f 67 67 65 64 20 64 69 73 ┆cpm lda cdisk ;last logged dis┆ 0x090040…090060 6b 20 6e 75 6d 62 65 72 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 73 65 6e 64 20 74 6f 20 63 63 70 20 ┆k number mov c,a ;send to ccp ┆ 0x090060…090080 74 6f 20 6c 6f 67 20 69 74 20 69 6e 0d 0a 09 65 69 0d 0a 09 6a 6d 70 09 63 70 6d 62 0d 0a 3b 0d ┆to log it in ei jmp cpmb ; ┆ 0x090080…0900a0 0a 3b 09 65 72 72 6f 72 20 63 6f 6e 64 69 74 69 6f 6e 20 6f 63 63 75 72 72 65 64 2c 20 70 72 69 ┆ ; error condition occurred, pri┆ 0x0900a0…0900c0 6e 74 20 6d 65 73 73 61 67 65 20 61 6e 64 20 72 65 74 72 79 0d 0a 62 6f 6f 74 65 72 72 3a 0d 0a ┆nt message and retry booterr: ┆ 0x0900c0…0900e0 09 70 6f 70 09 62 09 3b 72 65 63 61 6c 6c 20 63 6f 75 6e 74 73 0d 0a 09 64 63 72 09 63 0d 0a 09 ┆ pop b ;recall counts dcr c ┆ 0x0900e0…090100 6a 7a 09 62 6f 6f 74 65 72 30 0d 0a 3b 09 74 72 79 20 61 67 61 69 6e 0d 0a 09 70 75 73 68 09 62 ┆jz booter0 ; try again push b┆ 0x090100…090120 0d 0a 09 6a 6d 70 09 77 62 6f 6f 74 30 0d 0a 3b 0d 0a 62 6f 6f 74 65 72 30 3a 0d 0a 3b 09 6f 74 ┆ jmp wboot0 ; booter0: ; ot┆ 0x090120…090140 68 65 72 77 69 73 65 20 74 6f 6f 20 6d 61 6e 79 20 72 65 74 72 69 65 73 0d 0a 09 6c 78 69 09 68 ┆herwise too many retries lxi h┆ 0x090140…090160 2c 62 6f 6f 74 6d 73 67 0d 0a 09 63 61 6c 6c 09 70 72 6d 73 67 0d 0a 09 6a 6d 70 09 72 6d 6f 6e ┆,bootmsg call prmsg jmp rmon┆ 0x090160…090180 38 30 09 3b 6d 64 73 20 68 61 72 64 77 61 72 65 20 6d 6f 6e 69 74 6f 72 0d 0a 3b 0d 0a 62 6f 6f ┆80 ;mds hardware monitor ; boo┆ 0x090180…0901a0 74 6d 73 67 3a 0d 0a 09 64 62 09 27 3f 62 6f 6f 74 27 2c 30 0d 0a 3b 0d 0a 3b 0d 0a 63 6f 6e 73 ┆tmsg: db '?boot',0 ; ; cons┆ 0x0901a0…0901c0 74 3a 09 3b 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 20 74 6f 20 72 65 67 2d 61 0d 0a 3b 09 28 ┆t: ;console status to reg-a ; (┆ 0x0901c0…0901e0 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 ┆exactly the same as mds call) ┆ 0x0901e0…090200 6a 6d 70 09 63 73 74 73 0d 0a 3b 0d 0a 63 6f 6e 69 6e 3a 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 ┆jmp csts ; conin: ;console cha┆ 0x090200…090220 (38, 0, 14) 6e 75 6d 62 65 72 20 74 6f 20 41 0d 0a 09 73 74 61 09 69 6f 73 0d 0a 09 6d 6f 76 09 6c 2c 61 09 ┆number to A sta ios mov l,a ┆ 0x090220…090240 3b 72 65 74 75 72 6e 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 69 6e 20 4c 0d 0a 09 72 65 74 ┆;return sector number in L ret┆ 0x090240…090260 0d 0a 3b 0d 0a 73 65 74 64 6d 61 3a 09 3b 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 67 69 ┆ ; setdma: ;set dma address gi┆ 0x090260…090280 76 65 6e 20 62 79 20 72 65 67 73 20 62 2c 63 0d 0a 09 6d 6f 76 09 6c 2c 63 0d 0a 09 6d 6f 76 09 ┆ven by regs b,c mov l,c mov ┆ 0x090280…0902a0 68 2c 62 0d 0a 09 73 68 6c 64 09 69 6f 64 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 72 65 61 64 3a 09 3b ┆h,b shld iod ret ; read: ;┆ 0x0902a0…0902c0 72 65 61 64 20 6e 65 78 74 20 64 69 73 6b 20 72 65 63 6f 72 64 20 28 61 73 73 75 6d 69 6e 67 20 ┆read next disk record (assuming ┆ 0x0902c0…0902e0 64 69 73 6b 2f 74 72 6b 2f 73 65 63 2f 64 6d 61 20 73 65 74 29 0d 0a 09 6d 76 69 09 63 2c 72 65 ┆disk/trk/sec/dma set) mvi c,re┆ 0x0902e0…090300 61 64 66 09 3b 73 65 74 20 74 6f 20 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 63 61 6c 6c ┆adf ;set to read function call┆ 0x090300…090320 09 73 65 74 66 75 6e 63 0d 0a 09 63 61 6c 6c 09 77 61 69 74 69 6f 09 3b 70 65 72 66 6f 72 6d 20 ┆ setfunc call waitio ;perform ┆ 0x090320…090340 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 72 65 74 09 09 3b 6d 61 79 20 68 61 76 65 20 65 ┆read function ret ;may have e┆ 0x090340…090360 72 72 6f 72 20 73 65 74 20 69 6e 20 72 65 67 2d 61 0d 0a 3b 0d 0a 3b 0d 0a 77 72 69 74 65 3a 09 ┆rror set in reg-a ; ; write: ┆ 0x090360…090380 3b 64 69 73 6b 20 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6d 76 69 09 63 2c 77 72 69 ┆;disk write function mvi c,wri┆ 0x090380…0903a0 74 66 0d 0a 09 63 61 6c 6c 09 73 65 74 66 75 6e 63 09 3b 73 65 74 20 74 6f 20 77 72 69 74 65 20 ┆tf call setfunc ;set to write ┆ 0x0903a0…0903c0 66 75 6e 63 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 77 61 69 74 69 6f 0d 0a 09 72 65 74 09 09 3b 6d ┆function call waitio ret ;m┆ 0x0903c0…0903e0 61 79 20 68 61 76 65 20 65 72 72 6f 72 20 73 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 75 74 69 6c 69 ┆ay have error set ; ; ; utili┆ 0x0903e0…090400 74 79 20 73 75 62 72 6f 75 74 69 6e 65 73 0d 0a 70 72 6d 73 67 3a 09 3b 70 72 69 6e 74 20 6d 65 ┆ty subroutines prmsg: ;print me┆ 0x090400…090420 (38, 0, 15) 20 61 63 63 75 6d 75 6c 61 74 6f 72 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 77 65 72 72 6f ┆ accumulator ora a jnz werro┆ 0x090420…090440 72 09 09 3b 73 6f 6d 65 20 6f 74 68 65 72 20 63 6f 6e 64 69 74 69 6f 6e 2c 20 72 65 74 72 79 0d ┆r ;some other condition, retry ┆ 0x090440…090460 0a 3b 0d 0a 3b 09 63 68 65 63 6b 20 69 2f 6f 20 65 72 72 6f 72 20 62 69 74 73 0d 0a 09 63 61 6c ┆ ; ; check i/o error bits cal┆ 0x090460…090480 6c 09 69 6e 62 79 74 65 0d 0a 09 72 61 6c 0d 0a 09 6a 63 09 77 72 65 61 64 79 09 09 3b 75 6e 69 ┆l inbyte ral jc wready ;uni┆ 0x090480…0904a0 74 20 6e 6f 74 20 72 65 61 64 79 0d 0a 09 72 61 72 0d 0a 09 61 6e 69 09 31 31 31 31 31 31 31 30 ┆t not ready rar ani 11111110┆ 0x0904a0…0904c0 62 09 3b 61 6e 79 20 6f 74 68 65 72 20 65 72 72 6f 72 73 3f 20 20 28 64 65 6c 65 74 65 64 20 64 ┆b ;any other errors? (deleted d┆ 0x0904c0…0904e0 61 74 61 20 6f 6b 29 0d 0a 09 6a 6e 7a 09 77 65 72 72 6f 72 0d 0a 3b 0d 0a 3b 09 72 65 61 64 20 ┆ata ok) jnz werror ; ; read ┆ 0x0904e0…090500 6f 72 20 77 72 69 74 65 20 69 73 20 6f 6b 2c 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 63 6f 6e 74 ┆or write is ok, accumulator cont┆ 0x090500…090520 61 69 6e 73 20 7a 65 72 6f 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 77 72 65 61 64 79 3a 09 3b 6e 6f 74 ┆ains zero ret ; wready: ;not┆ 0x090520…090540 20 72 65 61 64 79 2c 20 74 72 65 61 74 20 61 73 20 65 72 72 6f 72 20 66 6f 72 20 6e 6f 77 0d 0a ┆ ready, treat as error for now ┆ 0x090540…090560 09 63 61 6c 6c 09 69 6e 62 79 74 65 09 09 3b 63 6c 65 61 72 20 72 65 73 75 6c 74 20 62 79 74 65 ┆ call inbyte ;clear result byte┆ 0x090560…090580 0d 0a 09 6a 6d 70 09 74 72 79 63 6f 75 6e 74 0d 0a 3b 0d 0a 77 65 72 72 6f 72 3a 09 3b 72 65 74 ┆ jmp trycount ; werror: ;ret┆ 0x090580…0905a0 75 72 6e 20 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 20 28 63 72 63 2c 20 74 ┆urn hardware malfunction (crc, t┆ 0x0905a0…0905c0 72 61 63 6b 2c 20 73 65 65 6b 2c 20 65 74 63 2e 29 0d 0a 3b 09 74 68 65 20 6d 64 73 20 63 6f 6e ┆rack, seek, etc.) ; the mds con┆ 0x0905c0…0905e0 74 72 6f 6c 6c 65 72 20 68 61 73 20 72 65 74 75 72 6e 65 64 20 61 20 62 69 74 20 69 6e 20 65 61 ┆troller has returned a bit in ea┆ 0x0905e0…090600 63 68 20 70 6f 73 69 74 69 6f 6e 0d 0a 3b 09 6f 66 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f ┆ch position ; of the accumulato┆ 0x090600…090620 (38, 1, 1) 0d 0a 3b 09 28 66 6f 75 72 20 64 72 69 76 65 20 73 69 6e 67 6c 65 20 64 65 6e 73 69 74 79 20 76 ┆ ; (four drive single density v┆ 0x090620…090640 65 72 73 69 6f 6e 29 0d 0a 3b 0d 0a 3b 09 56 65 72 73 69 6f 6e 20 32 2e 32 20 46 65 62 72 75 61 ┆ersion) ; ; Version 2.2 Februa┆ 0x090640…090660 72 79 2c 20 31 39 38 30 0d 0a 3b 0d 0a 76 65 72 73 09 65 71 75 09 32 32 09 3b 76 65 72 73 69 6f ┆ry, 1980 ; vers equ 22 ;versio┆ 0x090660…090680 6e 20 32 2e 32 0d 0a 3b 0d 0a 3b 09 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 39 38 30 0d 0a ┆n 2.2 ; ; Copyright (c) 1980 ┆ 0x090680…0906a0 3b 09 44 69 67 69 74 61 6c 20 52 65 73 65 61 72 63 68 0d 0a 3b 09 42 6f 78 20 35 37 39 2c 20 50 ┆; Digital Research ; Box 579, P┆ 0x0906a0…0906c0 61 63 69 66 69 63 20 47 72 6f 76 65 0d 0a 3b 09 43 61 6c 69 66 6f 72 6e 69 61 2c 20 39 33 39 35 ┆acific Grove ; California, 9395┆ 0x0906c0…0906e0 30 0d 0a 3b 0d 0a 3b 0d 0a 74 72 75 65 09 65 71 75 09 30 66 66 66 66 68 09 3b 76 61 6c 75 65 20 ┆0 ; ; true equ 0ffffh ;value ┆ 0x0906e0…090700 6f 66 20 22 74 72 75 65 22 0d 0a 66 61 6c 73 65 09 65 71 75 09 6e 6f 74 20 74 72 75 65 09 3b 22 ┆of "true" false equ not true ;"┆ 0x090700…090720 66 61 6c 73 65 22 0d 0a 74 65 73 74 09 65 71 75 09 66 61 6c 73 65 09 3b 74 72 75 65 20 69 66 20 ┆false" test equ false ;true if ┆ 0x090720…090740 74 65 73 74 20 62 69 6f 73 0d 0a 3b 0d 0a 09 69 66 09 74 65 73 74 0d 0a 62 69 61 73 09 65 71 75 ┆test bios ; if test bias equ┆ 0x090740…090760 09 30 33 34 30 30 68 09 3b 62 61 73 65 20 6f 66 20 43 43 50 20 69 6e 20 74 65 73 74 20 73 79 73 ┆ 03400h ;base of CCP in test sys┆ 0x090760…090780 74 65 6d 0d 0a 09 65 6e 64 69 66 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 62 69 61 73 09 ┆tem endif if not test bias ┆ 0x090780…0907a0 65 71 75 09 30 30 30 30 68 09 3b 67 65 6e 65 72 61 74 65 20 72 65 6c 6f 63 61 74 61 62 6c 65 20 ┆equ 0000h ;generate relocatable ┆ 0x0907a0…0907c0 63 70 2f 6d 20 73 79 73 74 65 6d 0d 0a 09 65 6e 64 69 66 0d 0a 3b 0d 0a 70 61 74 63 68 09 65 71 ┆cp/m system endif ; patch eq┆ 0x0907c0…0907e0 75 09 31 36 30 30 68 0d 0a 3b 0d 0a 09 6f 72 67 09 70 61 74 63 68 0d 0a 63 70 6d 62 09 65 71 75 ┆u 1600h ; org patch cpmb equ┆ 0x0907e0…090800 09 24 2d 70 61 74 63 68 09 3b 62 61 73 65 20 6f 66 20 63 70 6d 20 63 6f 6e 73 6f 6c 65 20 70 72 ┆ $-patch ;base of cpm console pr┆ 0x090800…090820 (38, 1, 2) 6d 70 09 73 65 74 73 65 63 0d 0a 09 6a 6d 70 09 73 65 74 64 6d 61 0d 0a 09 6a 6d 70 09 72 65 61 ┆mp setsec jmp setdma jmp rea┆ 0x090820…090840 64 0d 0a 09 6a 6d 70 09 77 72 69 74 65 0d 0a 09 6a 6d 70 09 6c 69 73 74 73 74 09 3b 6c 69 73 74 ┆d jmp write jmp listst ;list┆ 0x090840…090860 20 73 74 61 74 75 73 0d 0a 09 6a 6d 70 09 73 65 63 74 72 61 6e 0d 0a 3b 0d 0a 09 6d 61 63 6c 69 ┆ status jmp sectran ; macli┆ 0x090860…090880 62 09 64 69 73 6b 64 65 66 09 3b 6c 6f 61 64 20 74 68 65 20 64 69 73 6b 20 64 65 66 69 6e 69 74 ┆b diskdef ;load the disk definit┆ 0x090880…0908a0 69 6f 6e 20 6c 69 62 72 61 72 79 0d 0a 09 64 69 73 6b 73 09 34 09 3b 66 6f 75 72 20 64 69 73 6b ┆ion library disks 4 ;four disk┆ 0x0908a0…0908c0 73 0d 0a 09 64 69 73 6b 64 65 66 09 30 2c 31 2c 32 36 2c 36 2c 31 30 32 34 2c 32 34 33 2c 36 34 ┆s diskdef 0,1,26,6,1024,243,64┆ 0x0908c0…0908e0 2c 36 34 2c 6f 66 66 73 65 74 0d 0a 09 64 69 73 6b 64 65 66 09 31 2c 30 0d 0a 09 64 69 73 6b 64 ┆,64,offset diskdef 1,0 diskd┆ 0x0908e0…090900 65 66 09 32 2c 30 0d 0a 09 64 69 73 6b 64 65 66 09 33 2c 30 0d 0a 3b 09 65 6e 64 65 66 20 6f 63 ┆ef 2,0 diskdef 3,0 ; endef oc┆ 0x090900…090920 63 75 72 73 20 61 74 20 65 6e 64 20 6f 66 20 61 73 73 65 6d 62 6c 79 0d 0a 3b 0d 0a 3b 09 65 6e ┆curs at end of assembly ; ; en┆ 0x090920…090940 64 20 6f 66 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 2d 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 63 6f ┆d of controller - independent co┆ 0x090940…090960 64 65 2c 20 74 68 65 20 72 65 6d 61 69 6e 69 6e 67 20 73 75 62 72 6f 75 74 69 6e 65 73 0d 0a 3b ┆de, the remaining subroutines ;┆ 0x090960…090980 09 61 72 65 20 74 61 69 6c 6f 72 65 64 20 74 6f 20 74 68 65 20 70 61 72 74 69 63 75 6c 61 72 20 ┆ are tailored to the particular ┆ 0x090980…0909a0 6f 70 65 72 61 74 69 6e 67 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 2c 20 61 6e 64 20 6d 75 73 74 0d ┆operating environment, and must ┆ 0x0909a0…0909c0 0a 3b 09 62 65 20 61 6c 74 65 72 65 64 20 66 6f 72 20 61 6e 79 20 73 79 73 74 65 6d 20 77 68 69 ┆ ; be altered for any system whi┆ 0x0909c0…0909e0 63 68 20 64 69 66 66 65 72 73 20 66 72 6f 6d 20 74 68 65 20 69 6e 74 65 6c 20 6d 64 73 2e 0d 0a ┆ch differs from the intel mds. ┆ 0x0909e0…090a00 3b 0d 0a 3b 09 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 64 65 20 61 73 73 75 6d 65 73 20 ┆; ; the following code assumes ┆ 0x090a00…090a20 (38, 1, 3) 70 72 6d 73 67 09 3b 70 72 69 6e 74 20 6d 65 73 73 61 67 65 0d 0a 09 78 72 61 09 61 09 3b 63 6c ┆prmsg ;print message xra a ;cl┆ 0x090a20…090a40 65 61 72 20 61 63 63 75 6d 75 6c 61 74 6f 72 0d 0a 09 73 74 61 09 63 64 69 73 6b 09 3b 73 65 74 ┆ear accumulator sta cdisk ;set┆ 0x090a40…090a60 20 69 6e 69 74 69 61 6c 6c 79 20 74 6f 20 64 69 73 6b 20 61 0d 0a 09 6a 6d 70 09 67 6f 63 70 6d ┆ initially to disk a jmp gocpm┆ 0x090a60…090a80 09 3b 67 6f 20 74 6f 20 63 70 2f 6d 0d 0a 3b 0d 0a 3b 0d 0a 77 62 6f 6f 74 3a 3b 09 6c 6f 61 64 ┆ ;go to cp/m ; ; wboot:; load┆ 0x090a80…090aa0 65 72 20 6f 6e 20 74 72 61 63 6b 20 30 2c 20 73 65 63 74 6f 72 20 31 2c 20 77 68 69 63 68 20 77 ┆er on track 0, sector 1, which w┆ 0x090aa0…090ac0 69 6c 6c 20 62 65 20 73 6b 69 70 70 65 64 20 66 6f 72 20 77 61 72 6d 20 0d 0a 3b 09 72 65 61 64 ┆ill be skipped for warm ; read┆ 0x090ac0…090ae0 20 63 70 2f 6d 20 66 72 6f 6d 20 64 69 73 6b 20 2d 20 61 73 73 75 6d 69 6e 67 20 74 68 65 72 65 ┆ cp/m from disk - assuming there┆ 0x090ae0…090b00 20 69 73 20 61 20 31 32 38 20 62 79 74 65 20 63 6f 6c 64 20 73 74 61 72 74 0d 0a 3b 09 73 74 61 ┆ is a 128 byte cold start ; sta┆ 0x090b00…090b20 72 74 2e 0d 0a 3b 0d 0a 09 6c 78 69 09 73 70 2c 62 75 66 66 09 3b 75 73 69 6e 67 20 64 6d 61 20 ┆rt. ; lxi sp,buff ;using dma ┆ 0x090b20…090b40 2d 20 74 68 75 73 20 38 30 20 74 68 72 75 20 66 66 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 ┆- thus 80 thru ff available for ┆ 0x090b40…090b60 73 74 61 63 6b 0d 0a 3b 0d 0a 09 6d 76 69 09 63 2c 72 65 74 72 79 09 3b 6d 61 78 20 72 65 74 72 ┆stack ; mvi c,retry ;max retr┆ 0x090b60…090b80 69 65 73 0d 0a 09 70 75 73 68 09 62 0d 0a 77 62 6f 6f 74 30 3a 09 3b 65 6e 74 65 72 20 68 65 72 ┆ies push b wboot0: ;enter her┆ 0x090b80…090ba0 65 20 6f 6e 20 65 72 72 6f 72 20 72 65 74 72 69 65 73 0d 0a 09 6c 78 69 09 62 2c 63 70 6d 62 09 ┆e on error retries lxi b,cpmb ┆ 0x090ba0…090bc0 3b 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 74 6f 20 73 74 61 72 74 20 6f 66 20 64 69 73 ┆;set dma address to start of dis┆ 0x090bc0…090be0 6b 20 73 79 73 74 65 6d 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 09 6d 76 69 09 63 2c 30 ┆k system call setdma mvi c,0┆ 0x090be0…090c00 09 3b 62 6f 6f 74 20 66 72 6f 6d 20 64 72 69 76 65 20 30 0d 0a 09 63 61 6c 6c 09 73 65 6c 64 73 ┆ ;boot from drive 0 call selds┆ 0x090c00…090c20 (38, 1, 4) 20 63 63 70 20 74 6f 20 6c 6f 67 20 69 74 20 69 6e 0d 0a 09 65 69 0d 0a 09 6a 6d 70 09 63 70 6d ┆ ccp to log it in ei jmp cpm┆ 0x090c20…090c40 62 0d 0a 3b 0d 0a 3b 09 65 72 72 6f 72 20 63 6f 6e 64 69 74 69 6f 6e 20 6f 63 63 75 72 72 65 64 ┆b ; ; error condition occurred┆ 0x090c40…090c60 2c 20 70 72 69 6e 74 20 6d 65 73 73 61 67 65 20 61 6e 64 20 72 65 74 72 79 0d 0a 62 6f 6f 74 65 ┆, print message and retry boote┆ 0x090c60…090c80 72 72 3a 0d 0a 09 70 6f 70 09 62 09 3b 72 65 63 61 6c 6c 20 63 6f 75 6e 74 73 0d 0a 09 64 63 72 ┆rr: pop b ;recall counts dcr┆ 0x090c80…090ca0 09 63 0d 0a 09 6a 7a 09 62 6f 6f 74 65 72 30 0d 0a 3b 09 74 72 79 20 61 67 61 69 6e 0d 0a 09 70 ┆ c jz booter0 ; try again p┆ 0x090ca0…090cc0 75 73 68 09 62 0d 0a 09 6a 6d 70 09 77 62 6f 6f 74 30 0d 0a 3b 0d 0a 62 6f 6f 74 65 72 30 3a 0d ┆ush b jmp wboot0 ; booter0: ┆ 0x090cc0…090ce0 0a 3b 09 6f 74 68 65 72 77 69 73 65 20 74 6f 6f 20 6d 61 6e 79 20 72 65 74 72 69 65 73 0d 0a 09 ┆ ; otherwise too many retries ┆ 0x090ce0…090d00 6c 78 69 09 68 2c 62 6f 6f 74 6d 73 67 0d 0a 09 63 61 6c 6c 09 70 72 6d 73 67 0d 0a 09 6a 6d 70 ┆lxi h,bootmsg call prmsg jmp┆ 0x090d00…090d20 09 72 6d 6f 6e 38 30 09 3b 6d 64 73 20 68 61 72 64 77 61 72 65 20 6d 6f 6e 69 74 6f 72 0d 0a 3b ┆ rmon80 ;mds hardware monitor ;┆ 0x090d20…090d40 0d 0a 62 6f 6f 74 6d 73 67 3a 0d 0a 09 64 62 09 27 3f 62 6f 6f 74 27 2c 30 0d 0a 3b 0d 0a 3b 0d ┆ bootmsg: db '?boot',0 ; ; ┆ 0x090d40…090d60 0a 63 6f 6e 73 74 3a 09 3b 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 20 74 6f 20 72 65 67 2d 61 ┆ const: ;console status to reg-a┆ 0x090d60…090d80 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c ┆ ; (exactly the same as mds cal┆ 0x090d80…090da0 6c 29 0d 0a 09 6a 6d 70 09 63 73 74 73 0d 0a 3b 0d 0a 63 6f 6e 69 6e 3a 09 3b 63 6f 6e 73 6f 6c ┆l) jmp csts ; conin: ;consol┆ 0x090da0…090dc0 65 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 72 65 67 2d 61 0d 0a 09 63 61 6c 6c 09 63 69 0d 0a ┆e character to reg-a call ci ┆ 0x090dc0…090de0 09 61 6e 69 09 37 66 68 09 3b 72 65 6d 6f 76 65 20 70 61 72 69 74 79 20 62 69 74 0d 0a 09 72 65 ┆ ani 7fh ;remove parity bit re┆ 0x090de0…090e00 74 0d 0a 3b 0d 0a 63 6f 6e 6f 75 74 3a 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 ┆t ; conout: ;console character┆ 0x090e00…090e20 (38, 1, 5) 6f 63 65 73 73 6f 72 0d 0a 62 64 6f 73 09 65 71 75 09 38 30 36 68 2b 63 70 6d 62 09 3b 62 61 73 ┆ocessor bdos equ 806h+cpmb ;bas┆ 0x090e20…090e40 69 63 20 64 6f 73 20 28 72 65 73 69 64 65 6e 74 20 70 6f 72 74 69 6f 6e 29 0d 0a 63 70 6d 6c 09 ┆ic dos (resident portion) cpml ┆ 0x090e40…090e60 65 71 75 09 24 2d 63 70 6d 62 09 3b 6c 65 6e 67 74 68 20 28 69 6e 20 62 79 74 65 73 29 20 6f 66 ┆equ $-cpmb ;length (in bytes) of┆ 0x090e60…090e80 20 63 70 6d 20 73 79 73 74 65 6d 0d 0a 6e 73 65 63 74 73 09 65 71 75 09 63 70 6d 6c 2f 31 32 38 ┆ cpm system nsects equ cpml/128┆ 0x090e80…090ea0 09 3b 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 20 74 6f 20 6c 6f 61 64 0d 0a 6f 66 66 ┆ ;number of sectors to load off┆ 0x090ea0…090ec0 73 65 74 09 65 71 75 09 32 09 3b 6e 75 6d 62 65 72 20 6f 66 20 64 69 73 6b 20 74 72 61 63 6b 73 ┆set equ 2 ;number of disk tracks┆ 0x090ec0…090ee0 20 75 73 65 64 20 62 79 20 63 70 2f 6d 0d 0a 63 64 69 73 6b 09 65 71 75 09 30 30 30 34 68 09 3b ┆ used by cp/m cdisk equ 0004h ;┆ 0x090ee0…090f00 61 64 64 72 65 73 73 20 6f 66 20 6c 61 73 74 20 6c 6f 67 67 65 64 20 64 69 73 6b 20 6f 6e 20 77 ┆address of last logged disk on w┆ 0x090f00…090f20 61 72 6d 20 73 74 61 72 74 0d 0a 62 75 66 66 09 65 71 75 09 30 30 38 30 68 09 3b 64 65 66 61 75 ┆arm start buff equ 0080h ;defau┆ 0x090f20…090f40 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 0d 0a 72 65 74 72 79 09 65 71 75 09 31 30 09 ┆lt buffer address retry equ 10 ┆ 0x090f40…090f60 3b 6d 61 78 20 72 65 74 72 69 65 73 20 6f 6e 20 64 69 73 6b 20 69 2f 6f 20 62 65 66 6f 72 65 20 ┆;max retries on disk i/o before ┆ 0x090f60…090f80 65 72 72 6f 72 0d 0a 3b 0d 0a 3b 09 70 65 72 66 6f 72 6d 20 66 6f 6c 6c 6f 77 69 6e 67 20 66 75 ┆error ; ; perform following fu┆ 0x090f80…090fa0 6e 63 74 69 6f 6e 73 0d 0a 3b 09 62 6f 6f 74 09 63 6f 6c 64 20 73 74 61 72 74 0d 0a 3b 09 77 62 ┆nctions ; boot cold start ; wb┆ 0x090fa0…090fc0 6f 6f 74 09 77 61 72 6d 20 73 74 61 72 74 20 28 73 61 76 65 20 69 2f 6f 20 62 79 74 65 29 0d 0a ┆oot warm start (save i/o byte) ┆ 0x090fc0…090fe0 3b 09 28 62 6f 6f 74 20 61 6e 64 20 77 62 6f 6f 74 20 61 72 65 20 74 68 65 20 73 61 6d 65 20 66 ┆; (boot and wboot are the same f┆ 0x090fe0…091000 6f 72 20 6d 64 73 29 0d 0a 3b 09 63 6f 6e 73 74 09 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 0d ┆or mds) ; const console status ┆ 0x091000…091020 (38, 1, 6) 74 68 65 20 6d 64 73 20 6d 6f 6e 69 74 6f 72 20 65 78 69 73 74 73 20 61 74 20 30 66 38 30 30 68 ┆the mds monitor exists at 0f800h┆ 0x091020…091040 0d 0a 3b 09 61 6e 64 20 75 73 65 73 20 74 68 65 20 69 2f 6f 20 73 75 62 72 6f 75 74 69 6e 65 73 ┆ ; and uses the i/o subroutines┆ 0x091040…091060 20 77 69 74 68 69 6e 20 74 68 65 20 6d 6f 6e 69 74 6f 72 0d 0a 3b 0d 0a 3b 09 77 65 20 61 6c 73 ┆ within the monitor ; ; we als┆ 0x091060…091080 6f 20 61 73 73 75 6d 65 20 74 68 65 20 6d 64 73 20 73 79 73 74 65 6d 20 68 61 73 20 66 6f 75 72 ┆o assume the mds system has four┆ 0x091080…0910a0 20 64 69 73 6b 20 64 72 69 76 65 73 0d 0a 72 65 76 72 74 09 65 71 75 09 30 66 64 68 09 3b 69 6e ┆ disk drives revrt equ 0fdh ;in┆ 0x0910a0…0910c0 74 65 72 72 75 70 74 20 72 65 76 65 72 74 20 70 6f 72 74 0d 0a 69 6e 74 63 09 65 71 75 09 30 66 ┆terrupt revert port intc equ 0f┆ 0x0910c0…0910e0 63 68 09 3b 69 6e 74 65 72 72 75 70 74 20 6d 61 73 6b 20 70 6f 72 74 0d 0a 69 63 6f 6e 09 65 71 ┆ch ;interrupt mask port icon eq┆ 0x0910e0…091100 75 09 30 66 33 68 09 3b 69 6e 74 65 72 72 75 70 74 20 63 6f 6e 74 72 6f 6c 20 70 6f 72 74 0d 0a ┆u 0f3h ;interrupt control port ┆ 0x091100…091120 69 6e 74 65 09 65 71 75 09 30 31 31 31 24 31 31 31 30 62 09 3b 65 6e 61 62 6c 65 20 72 73 74 20 ┆inte equ 0111$1110b ;enable rst ┆ 0x091120…091140 30 28 77 61 72 6d 20 62 6f 6f 74 29 2c 20 72 73 74 20 37 20 28 6d 6f 6e 69 74 6f 72 29 0d 0a 3b ┆0(warm boot), rst 7 (monitor) ;┆ 0x091140…091160 0d 0a 3b 09 6d 64 73 20 6d 6f 6e 69 74 6f 72 20 65 71 75 61 74 65 73 0d 0a 6d 6f 6e 38 30 09 65 ┆ ; mds monitor equates mon80 e┆ 0x091160…091180 71 75 09 30 66 38 30 30 68 09 3b 6d 64 73 20 6d 6f 6e 69 74 6f 72 0d 0a 72 6d 6f 6e 38 30 09 65 ┆qu 0f800h ;mds monitor rmon80 e┆ 0x091180…0911a0 71 75 09 30 66 66 30 66 68 09 3b 72 65 73 74 61 72 74 20 6d 6f 6e 38 30 20 28 62 6f 6f 74 20 65 ┆qu 0ff0fh ;restart mon80 (boot e┆ 0x0911a0…0911c0 72 72 6f 72 29 0d 0a 63 69 09 65 71 75 09 30 66 38 30 33 68 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 ┆rror) ci equ 0f803h ;console ch┆ 0x0911c0…0911e0 61 72 61 63 74 65 72 20 74 6f 20 72 65 67 2d 61 0d 0a 72 69 09 65 71 75 09 30 66 38 30 36 68 09 ┆aracter to reg-a ri equ 0f806h ┆ 0x0911e0…091200 3b 72 65 61 64 65 72 20 69 6e 20 74 6f 20 72 65 67 2d 61 0d 0a 63 6f 09 65 71 75 09 30 66 38 30 ┆;reader in to reg-a co equ 0f80┆ 0x091200…091220 (38, 1, 7) 6b 0d 0a 09 6d 76 69 09 63 2c 30 0d 0a 09 63 61 6c 6c 09 73 65 74 74 72 6b 09 3b 73 74 61 72 74 ┆k mvi c,0 call settrk ;start┆ 0x091220…091240 20 77 69 74 68 20 74 72 61 63 6b 20 30 0d 0a 09 6d 76 69 09 63 2c 32 09 3b 73 74 61 72 74 20 72 ┆ with track 0 mvi c,2 ;start r┆ 0x091240…091260 65 61 64 69 6e 67 20 73 65 63 74 6f 72 20 32 0d 0a 09 63 61 6c 6c 09 73 65 74 73 65 63 0d 0a 3b ┆eading sector 2 call setsec ;┆ 0x091260…091280 0d 0a 3b 09 72 65 61 64 20 73 65 63 74 6f 72 73 2c 20 63 6f 75 6e 74 20 6e 73 65 63 74 73 20 74 ┆ ; read sectors, count nsects t┆ 0x091280…0912a0 6f 20 7a 65 72 6f 0d 0a 09 70 6f 70 09 62 09 3b 31 30 2d 65 72 72 6f 72 20 63 6f 75 6e 74 0d 0a ┆o zero pop b ;10-error count ┆ 0x0912a0…0912c0 09 6d 76 69 09 62 2c 6e 73 65 63 74 73 0d 0a 72 64 73 65 63 3a 09 3b 72 65 61 64 20 6e 65 78 74 ┆ mvi b,nsects rdsec: ;read next┆ 0x0912c0…0912e0 20 73 65 63 74 6f 72 0d 0a 09 70 75 73 68 09 62 09 3b 73 61 76 65 20 73 65 63 74 6f 72 20 63 6f ┆ sector push b ;save sector co┆ 0x0912e0…091300 75 6e 74 0d 0a 09 63 61 6c 6c 09 72 65 61 64 0d 0a 09 6a 6e 7a 09 62 6f 6f 74 65 72 72 09 3b 72 ┆unt call read jnz booterr ;r┆ 0x091300…091320 65 74 72 79 20 69 66 20 65 72 72 6f 72 73 20 6f 63 63 75 72 0d 0a 09 6c 68 6c 64 09 69 6f 64 09 ┆etry if errors occur lhld iod ┆ 0x091320…091340 3b 69 6e 63 72 65 6d 65 6e 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 09 6c 78 69 09 64 2c 31 ┆;increment dma address lxi d,1┆ 0x091340…091360 32 38 09 3b 73 65 63 74 6f 72 20 73 69 7a 65 0d 0a 09 64 61 64 09 64 09 3b 69 6e 63 72 65 6d 65 ┆28 ;sector size dad d ;increme┆ 0x091360…091380 6e 74 65 64 20 64 6d 61 20 61 64 64 72 65 73 73 20 69 6e 20 68 6c 0d 0a 09 6d 6f 76 09 62 2c 68 ┆nted dma address in hl mov b,h┆ 0x091380…0913a0 0d 0a 09 6d 6f 76 09 63 2c 6c 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 20 74 6f 20 73 65 ┆ mov c,l ;ready for call to se┆ 0x0913a0…0913c0 74 20 64 6d 61 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 09 6c 64 61 09 69 6f 73 09 3b 73 ┆t dma call setdma lda ios ;s┆ 0x0913c0…0913e0 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 6a 75 73 74 20 72 65 61 64 0d 0a 09 63 70 69 09 32 36 09 ┆ector number just read cpi 26 ┆ 0x0913e0…091400 3b 72 65 61 64 20 6c 61 73 74 20 73 65 63 74 6f 72 3f 0d 0a 09 6a 63 09 72 64 31 0d 0a 3b 09 6d ┆;read last sector? jc rd1 ; m┆ 0x091400…091420 (38, 1, 8) 20 66 72 6f 6d 20 63 20 74 6f 20 63 6f 6e 73 6f 6c 65 20 6f 75 74 0d 0a 09 6a 6d 70 09 63 6f 0d ┆ from c to console out jmp co ┆ 0x091420…091440 0a 3b 0d 0a 6c 69 73 74 3a 09 3b 6c 69 73 74 20 64 65 76 69 63 65 20 6f 75 74 0d 0a 3b 09 28 65 ┆ ; list: ;list device out ; (e┆ 0x091440…091460 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a ┆xactly the same as mds call) j┆ 0x091460…091480 6d 70 09 6c 6f 0d 0a 3b 0d 0a 6c 69 73 74 73 74 3a 0d 0a 09 3b 72 65 74 75 72 6e 20 6c 69 73 74 ┆mp lo ; listst: ;return list┆ 0x091480…0914a0 20 73 74 61 74 75 73 0d 0a 09 78 72 61 09 61 0d 0a 09 72 65 74 09 09 3b 61 6c 77 61 79 73 20 6e ┆ status xra a ret ;always n┆ 0x0914a0…0914c0 6f 74 20 72 65 61 64 79 0d 0a 3b 0d 0a 70 75 6e 63 68 3a 09 3b 70 75 6e 63 68 20 64 65 76 69 63 ┆ot ready ; punch: ;punch devic┆ 0x0914c0…0914e0 65 20 6f 75 74 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 ┆e out ; (exactly the same as md┆ 0x0914e0…091500 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 70 6f 0d 0a 3b 0d 0a 72 65 61 64 65 72 3a 09 3b 72 65 ┆s call) jmp po ; reader: ;re┆ 0x091500…091520 61 64 65 72 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 74 6f 20 72 65 67 2d 61 0d 0a 3b 09 28 65 ┆ader character in to reg-a ; (e┆ 0x091520…091540 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a ┆xactly the same as mds call) j┆ 0x091540…091560 6d 70 09 72 69 0d 0a 3b 0d 0a 68 6f 6d 65 3a 09 3b 6d 6f 76 65 20 74 6f 20 68 6f 6d 65 20 70 6f ┆mp ri ; home: ;move to home po┆ 0x091560…091580 73 69 74 69 6f 6e 0d 0a 3b 09 74 72 65 61 74 20 61 73 20 74 72 61 63 6b 20 30 30 20 73 65 65 6b ┆sition ; treat as track 00 seek┆ 0x091580…0915a0 0d 0a 09 6d 76 69 09 63 2c 30 0d 0a 09 6a 6d 70 09 73 65 74 74 72 6b 0d 0a 3b 0d 0a 73 65 6c 64 ┆ mvi c,0 jmp settrk ; seld┆ 0x0915a0…0915c0 73 6b 3a 09 3b 73 65 6c 65 63 74 20 64 69 73 6b 20 67 69 76 65 6e 20 62 79 20 72 65 67 69 73 74 ┆sk: ;select disk given by regist┆ 0x0915c0…0915e0 65 72 20 63 0d 0a 09 6c 78 69 09 68 2c 30 30 30 30 68 09 3b 72 65 74 75 72 6e 20 30 30 30 30 20 ┆er c lxi h,0000h ;return 0000 ┆ 0x0915e0…091600 69 66 20 65 72 72 6f 72 0d 0a 09 6d 6f 76 09 61 2c 63 0d 0a 09 63 70 69 09 6e 64 69 73 6b 73 09 ┆if error mov a,c cpi ndisks ┆ 0x091600…091620 (38, 1, 9) 0a 3b 09 09 72 65 67 2d 61 20 3d 20 30 30 20 69 66 20 6e 6f 20 63 68 61 72 61 63 74 65 72 20 72 ┆ ; reg-a = 00 if no character r┆ 0x091620…091640 65 61 64 79 0d 0a 3b 09 09 72 65 67 2d 61 20 3d 20 66 66 20 69 66 20 63 68 61 72 61 63 74 65 72 ┆eady ; reg-a = ff if character┆ 0x091640…091660 20 72 65 61 64 79 0d 0a 3b 09 63 6f 6e 69 6e 09 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 ┆ ready ; conin console characte┆ 0x091660…091680 72 20 69 6e 20 28 72 65 73 75 6c 74 20 69 6e 20 72 65 67 2d 61 29 0d 0a 3b 09 63 6f 6e 6f 75 74 ┆r in (result in reg-a) ; conout┆ 0x091680…0916a0 09 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 ┆ console character out (char in ┆ 0x0916a0…0916c0 72 65 67 2d 63 29 0d 0a 3b 09 6c 69 73 74 09 6c 69 73 74 20 6f 75 74 20 28 63 68 61 72 20 69 6e ┆reg-c) ; list list out (char in┆ 0x0916c0…0916e0 20 72 65 67 2d 63 29 0d 0a 3b 09 70 75 6e 63 68 09 70 75 6e 63 68 20 6f 75 74 20 28 63 68 61 72 ┆ reg-c) ; punch punch out (char┆ 0x0916e0…091700 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 72 65 61 64 65 72 09 70 61 70 65 72 20 74 61 70 65 20 ┆ in reg-c) ; reader paper tape ┆ 0x091700…091720 72 65 61 64 65 72 20 69 6e 20 28 72 65 73 75 6c 74 20 74 6f 20 72 65 67 2d 61 29 0d 0a 3b 09 68 ┆reader in (result to reg-a) ; h┆ 0x091720…091740 6f 6d 65 09 6d 6f 76 65 20 74 6f 20 74 72 61 63 6b 20 30 30 0d 0a 3b 0d 0a 3b 09 28 74 68 65 20 ┆ome move to track 00 ; ; (the ┆ 0x091740…091760 66 6f 6c 6c 6f 77 69 6e 67 20 63 61 6c 6c 73 20 73 65 74 2d 75 70 20 74 68 65 20 69 6f 20 70 61 ┆following calls set-up the io pa┆ 0x091760…091780 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 20 66 6f 72 20 74 68 65 0d 0a 3b 09 6d 64 73 2c 20 77 68 ┆rameter block for the ; mds, wh┆ 0x091780…0917a0 69 63 68 20 69 73 20 75 73 65 64 20 74 6f 20 70 65 72 66 6f 72 6d 20 73 75 62 73 65 71 75 65 6e ┆ich is used to perform subsequen┆ 0x0917a0…0917c0 74 20 72 65 61 64 73 20 61 6e 64 20 77 72 69 74 65 73 29 0d 0a 3b 09 73 65 6c 64 73 6b 09 73 65 ┆t reads and writes) ; seldsk se┆ 0x0917c0…0917e0 6c 65 63 74 20 64 69 73 6b 20 67 69 76 65 6e 20 62 79 20 72 65 67 2d 63 20 28 30 2c 31 2c 32 2e ┆lect disk given by reg-c (0,1,2.┆ 0x0917e0…091800 2e 2e 29 0d 0a 3b 09 73 65 74 74 72 6b 09 73 65 74 20 74 72 61 63 6b 20 61 64 64 72 65 73 73 20 ┆..) ; settrk set track address ┆ 0x091800…091820 (38, 1, 10) 39 68 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 20 66 72 6f 6d 20 63 20 74 6f 20 63 6f 6e 73 6f ┆9h ;console char from c to conso┆ 0x091820…091840 6c 65 20 6f 75 74 0d 0a 70 6f 09 65 71 75 09 30 66 38 30 63 68 09 3b 70 75 6e 63 68 20 63 68 61 ┆le out po equ 0f80ch ;punch cha┆ 0x091840…091860 72 20 66 72 6f 6d 20 63 20 74 6f 20 70 75 6e 63 68 20 64 65 76 69 63 65 0d 0a 6c 6f 09 65 71 75 ┆r from c to punch device lo equ┆ 0x091860…091880 09 30 66 38 30 66 68 09 3b 6c 69 73 74 20 66 72 6f 6d 20 63 20 74 6f 20 6c 69 73 74 20 64 65 76 ┆ 0f80fh ;list from c to list dev┆ 0x091880…0918a0 69 63 65 0d 0a 63 73 74 73 09 65 71 75 09 30 66 38 31 32 68 09 3b 63 6f 6e 73 6f 6c 65 20 73 74 ┆ice csts equ 0f812h ;console st┆ 0x0918a0…0918c0 61 74 75 73 20 30 30 2f 66 66 20 74 6f 20 72 65 67 69 73 74 65 72 20 61 0d 0a 3b 0d 0a 3b 09 64 ┆atus 00/ff to register a ; ; d┆ 0x0918c0…0918e0 69 73 6b 20 70 6f 72 74 73 20 61 6e 64 20 63 6f 6d 6d 61 6e 64 73 0d 0a 62 61 73 65 09 65 71 75 ┆isk ports and commands base equ┆ 0x0918e0…091900 09 37 38 68 09 3b 62 61 73 65 20 6f 66 20 64 69 73 6b 20 63 6f 6d 6d 61 6e 64 20 69 6f 20 70 6f ┆ 78h ;base of disk command io po┆ 0x091900…091920 72 74 73 0d 0a 64 73 74 61 74 09 65 71 75 09 62 61 73 65 09 3b 64 69 73 6b 20 73 74 61 74 75 73 ┆rts dstat equ base ;disk status┆ 0x091920…091940 20 28 69 6e 70 75 74 29 0d 0a 72 74 79 70 65 09 65 71 75 09 62 61 73 65 2b 31 09 3b 72 65 73 75 ┆ (input) rtype equ base+1 ;resu┆ 0x091940…091960 6c 74 20 74 79 70 65 20 28 69 6e 70 75 74 29 0d 0a 72 62 79 74 65 09 65 71 75 09 62 61 73 65 2b ┆lt type (input) rbyte equ base+┆ 0x091960…091980 33 09 3b 72 65 73 75 6c 74 20 62 79 74 65 20 28 69 6e 70 75 74 29 0d 0a 3b 0d 0a 69 6c 6f 77 09 ┆3 ;result byte (input) ; ilow ┆ 0x091980…0919a0 65 71 75 09 62 61 73 65 2b 31 09 3b 69 6f 70 62 20 6c 6f 77 20 61 64 64 72 65 73 73 20 28 6f 75 ┆equ base+1 ;iopb low address (ou┆ 0x0919a0…0919c0 74 70 75 74 29 0d 0a 69 68 69 67 68 09 65 71 75 09 62 61 73 65 2b 32 09 3b 69 6f 70 62 20 68 69 ┆tput) ihigh equ base+2 ;iopb hi┆ 0x0919c0…0919e0 67 68 20 61 64 64 72 65 73 73 20 28 6f 75 74 70 75 74 29 0d 0a 3b 0d 0a 72 65 61 64 66 09 65 71 ┆gh address (output) ; readf eq┆ 0x0919e0…091a00 75 09 34 68 09 3b 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 77 72 69 74 66 09 65 71 75 09 36 ┆u 4h ;read function writf equ 6┆ 0x091a00…091a20 (38, 1, 11) 75 73 74 20 62 65 20 73 65 63 74 6f 72 20 32 36 2c 20 7a 65 72 6f 20 61 6e 64 20 67 6f 20 74 6f ┆ust be sector 26, zero and go to┆ 0x091a20…091a40 20 6e 65 78 74 20 74 72 61 63 6b 0d 0a 09 6c 64 61 09 69 6f 74 09 3b 67 65 74 20 74 72 61 63 6b ┆ next track lda iot ;get track┆ 0x091a40…091a60 20 74 6f 20 72 65 67 69 73 74 65 72 20 61 0d 0a 09 69 6e 72 09 61 0d 0a 09 6d 6f 76 09 63 2c 61 ┆ to register a inr a mov c,a┆ 0x091a60…091a80 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 0d 0a 09 63 61 6c 6c 09 73 65 74 74 72 6b 0d 0a ┆ ;ready for call call settrk ┆ 0x091a80…091aa0 09 78 72 61 09 61 09 3b 63 6c 65 61 72 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 0d 0a 72 64 31 ┆ xra a ;clear sector number rd1┆ 0x091aa0…091ac0 3a 09 69 6e 72 09 61 09 3b 74 6f 20 6e 65 78 74 20 73 65 63 74 6f 72 0d 0a 09 6d 6f 76 09 63 2c ┆: inr a ;to next sector mov c,┆ 0x091ac0…091ae0 61 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 0d 0a 09 63 61 6c 6c 09 73 65 74 73 65 63 0d ┆a ;ready for call call setsec ┆ 0x091ae0…091b00 0a 09 70 6f 70 09 62 09 3b 72 65 63 61 6c 6c 20 73 65 63 74 6f 72 20 63 6f 75 6e 74 0d 0a 09 64 ┆ pop b ;recall sector count d┆ 0x091b00…091b20 63 72 09 62 09 3b 64 6f 6e 65 3f 0d 0a 09 6a 6e 7a 09 72 64 73 65 63 0d 0a 3b 0d 0a 3b 09 64 6f ┆cr b ;done? jnz rdsec ; ; do┆ 0x091b20…091b40 6e 65 20 77 69 74 68 20 74 68 65 20 6c 6f 61 64 2c 20 72 65 73 65 74 20 64 65 66 61 75 6c 74 20 ┆ne with the load, reset default ┆ 0x091b40…091b60 62 75 66 66 65 72 20 61 64 64 72 65 73 73 0d 0a 67 6f 63 70 6d 3a 09 3b 28 65 6e 74 65 72 20 68 ┆buffer address gocpm: ;(enter h┆ 0x091b60…091b80 65 72 65 20 66 72 6f 6d 20 63 6f 6c 64 20 73 74 61 72 74 20 62 6f 6f 74 29 0d 0a 3b 09 65 6e 61 ┆ere from cold start boot) ; ena┆ 0x091b80…091ba0 62 6c 65 20 72 73 74 30 20 61 6e 64 20 72 73 74 37 0d 0a 09 64 69 0d 0a 09 6d 76 69 09 61 2c 31 ┆ble rst0 and rst7 di mvi a,1┆ 0x091ba0…091bc0 32 68 09 3b 69 6e 69 74 69 61 6c 69 7a 65 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6f 75 74 09 72 65 76 ┆2h ;initialize command out rev┆ 0x091bc0…091be0 72 74 0d 0a 09 78 72 61 09 61 0d 0a 09 6f 75 74 09 69 6e 74 63 09 3b 63 6c 65 61 72 65 64 0d 0a ┆rt xra a out intc ;cleared ┆ 0x091be0…091c00 09 6d 76 69 09 61 2c 69 6e 74 65 09 3b 72 73 74 30 20 61 6e 64 20 72 73 74 37 20 62 69 74 73 20 ┆ mvi a,inte ;rst0 and rst7 bits ┆ 0x091c00…091c20 (38, 1, 12) 3b 74 6f 6f 20 6c 61 72 67 65 3f 0d 0a 09 72 6e 63 09 09 3b 6c 65 61 76 65 20 48 4c 20 3d 20 30 ┆;too large? rnc ;leave HL = 0┆ 0x091c20…091c40 30 30 30 0d 0a 3b 0d 0a 09 61 6e 69 09 31 30 62 09 3b 30 30 20 30 30 20 66 6f 72 20 64 72 69 76 ┆000 ; ani 10b ;00 00 for driv┆ 0x091c40…091c60 65 20 30 2c 31 20 61 6e 64 20 31 30 20 31 30 20 66 6f 72 20 64 72 69 76 65 20 32 2c 33 0d 0a 09 ┆e 0,1 and 10 10 for drive 2,3 ┆ 0x091c60…091c80 73 74 61 09 64 62 61 6e 6b 09 3b 74 6f 20 73 65 6c 65 63 74 20 64 72 69 76 65 20 62 61 6e 6b 0d ┆sta dbank ;to select drive bank ┆ 0x091c80…091ca0 0a 09 6d 6f 76 09 61 2c 63 09 3b 30 30 2c 20 30 31 2c 20 31 30 2c 20 31 31 0d 0a 09 61 6e 69 09 ┆ mov a,c ;00, 01, 10, 11 ani ┆ 0x091ca0…091cc0 31 62 09 3b 6d 64 73 20 68 61 73 20 30 2c 31 20 61 74 20 37 38 2c 20 32 2c 33 20 61 74 20 38 38 ┆1b ;mds has 0,1 at 78, 2,3 at 88┆ 0x091cc0…091ce0 0d 0a 09 6f 72 61 09 61 09 3b 72 65 73 75 6c 74 20 30 30 3f 0d 0a 09 6a 7a 09 73 65 74 64 72 69 ┆ ora a ;result 00? jz setdri┆ 0x091ce0…091d00 76 65 0d 0a 09 6d 76 69 09 61 2c 30 30 31 31 30 30 30 30 62 09 3b 73 65 6c 65 63 74 73 20 64 72 ┆ve mvi a,00110000b ;selects dr┆ 0x091d00…091d20 69 76 65 20 31 20 69 6e 20 62 61 6e 6b 0d 0a 73 65 74 64 72 69 76 65 3a 0d 0a 09 6d 6f 76 09 62 ┆ive 1 in bank setdrive: mov b┆ 0x091d20…091d40 2c 61 09 3b 73 61 76 65 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6c 78 69 09 68 2c 69 6f ┆,a ;save the function lxi h,io┆ 0x091d40…091d60 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6d 6f 76 09 61 2c 6d 0d 0a 09 61 6e 69 09 31 ┆f ;io function mov a,m ani 1┆ 0x091d60…091d80 31 30 30 31 31 31 31 62 09 3b 6d 61 73 6b 20 6f 75 74 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a ┆1001111b ;mask out disk number ┆ 0x091d80…091da0 09 6f 72 61 09 62 09 3b 6d 61 73 6b 20 69 6e 20 6e 65 77 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d ┆ ora b ;mask in new disk number ┆ 0x091da0…091dc0 0a 09 6d 6f 76 09 6d 2c 61 09 3b 73 61 76 65 20 69 74 20 69 6e 20 69 6f 70 62 0d 0a 09 6d 6f 76 ┆ mov m,a ;save it in iopb mov┆ 0x091dc0…091de0 09 6c 2c 63 0d 0a 09 6d 76 69 09 68 2c 30 09 3b 48 4c 3d 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a ┆ l,c mvi h,0 ;HL=disk number ┆ 0x091de0…091e00 09 64 61 64 09 68 09 3b 2a 32 0d 0a 09 64 61 64 09 68 09 3b 2a 34 0d 0a 09 64 61 64 09 68 09 3b ┆ dad h ;*2 dad h ;*4 dad h ;┆ 0x091e00…091e20 (38, 1, 13) 28 30 2c 2e 2e 2e 37 36 29 20 66 6f 72 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 2f 77 72 ┆(0,...76) for subsequent read/wr┆ 0x091e20…091e40 69 74 65 0d 0a 3b 09 73 65 74 73 65 63 09 73 65 74 20 73 65 63 74 6f 72 20 61 64 64 72 65 73 73 ┆ite ; setsec set sector address┆ 0x091e40…091e60 20 28 31 2c 2e 2e 2e 2c 32 36 29 20 66 6f 72 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 2f ┆ (1,...,26) for subsequent read/┆ 0x091e60…091e80 77 72 69 74 65 0d 0a 3b 09 73 65 74 64 6d 61 09 73 65 74 20 73 75 62 73 65 71 75 65 6e 74 20 64 ┆write ; setdma set subsequent d┆ 0x091e80…091ea0 6d 61 20 61 64 64 72 65 73 73 20 28 69 6e 69 74 69 61 6c 6c 79 20 38 30 68 29 0d 0a 3b 0d 0a 3b ┆ma address (initially 80h) ; ;┆ 0x091ea0…091ec0 09 28 72 65 61 64 20 61 6e 64 20 77 72 69 74 65 20 61 73 73 75 6d 65 20 70 72 65 76 69 6f 75 73 ┆ (read and write assume previous┆ 0x091ec0…091ee0 20 63 61 6c 6c 73 20 74 6f 20 73 65 74 20 75 70 20 74 68 65 20 69 6f 20 70 61 72 61 6d 65 74 65 ┆ calls to set up the io paramete┆ 0x091ee0…091f00 72 73 29 0d 0a 3b 09 72 65 61 64 09 72 65 61 64 20 74 72 61 63 6b 2f 73 65 63 74 6f 72 20 74 6f ┆rs) ; read read track/sector to┆ 0x091f00…091f20 20 70 72 65 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 3b 09 77 72 69 74 65 09 77 72 69 ┆ preset dma address ; write wri┆ 0x091f20…091f40 74 65 20 74 72 61 63 6b 2f 73 65 63 74 6f 72 20 66 72 6f 6d 20 70 72 65 73 65 74 20 64 6d 61 20 ┆te track/sector from preset dma ┆ 0x091f40…091f60 61 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b 09 6a 75 6d 70 20 76 65 63 74 6f 72 20 66 6f 72 20 69 6e ┆address ; ; jump vector for in┆ 0x091f60…091f80 64 69 76 69 75 61 6c 20 72 6f 75 74 69 6e 65 73 0d 0a 09 6a 6d 70 09 62 6f 6f 74 0d 0a 77 62 6f ┆diviual routines jmp boot wbo┆ 0x091f80…091fa0 6f 74 65 3a 09 6a 6d 70 09 77 62 6f 6f 74 0d 0a 09 6a 6d 70 09 63 6f 6e 73 74 0d 0a 09 6a 6d 70 ┆ote: jmp wboot jmp const jmp┆ 0x091fa0…091fc0 09 63 6f 6e 69 6e 0d 0a 09 6a 6d 70 09 63 6f 6e 6f 75 74 0d 0a 09 6a 6d 70 09 6c 69 73 74 0d 0a ┆ conin jmp conout jmp list ┆ 0x091fc0…091fe0 09 6a 6d 70 09 70 75 6e 63 68 0d 0a 09 6a 6d 70 09 72 65 61 64 65 72 0d 0a 09 6a 6d 70 09 68 6f ┆ jmp punch jmp reader jmp ho┆ 0x091fe0…092000 6d 65 0d 0a 09 6a 6d 70 09 73 65 6c 64 73 6b 0d 0a 09 6a 6d 70 09 73 65 74 74 72 6b 0d 0a 09 6a ┆me jmp seldsk jmp settrk j┆ 0x092000…092020 (38, 1, 14) 68 09 3b 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 72 65 63 61 6c 09 65 71 75 09 33 68 09 ┆h ;write function recal equ 3h ┆ 0x092020…092040 3b 72 65 63 61 6c 69 62 72 61 74 65 20 64 72 69 76 65 0d 0a 69 6f 72 64 79 09 65 71 75 09 34 68 ┆;recalibrate drive iordy equ 4h┆ 0x092040…092060 09 3b 69 2f 6f 20 66 69 6e 69 73 68 65 64 20 6d 61 73 6b 0d 0a 63 72 09 65 71 75 09 30 64 68 09 ┆ ;i/o finished mask cr equ 0dh ┆ 0x092060…092080 3b 63 61 72 72 69 61 67 65 20 72 65 74 75 72 6e 0d 0a 6c 66 09 65 71 75 09 30 61 68 09 3b 6c 69 ┆;carriage return lf equ 0ah ;li┆ 0x092080…0920a0 6e 65 20 66 65 65 64 0d 0a 3b 0d 0a 73 69 67 6e 6f 6e 3a 09 3b 73 69 67 6e 6f 6e 20 6d 65 73 73 ┆ne feed ; signon: ;signon mess┆ 0x0920a0…0920c0 61 67 65 3a 20 78 78 6b 20 63 70 2f 6d 20 76 65 72 73 20 79 2e 79 0d 0a 09 64 62 09 63 72 2c 6c ┆age: xxk cp/m vers y.y db cr,l┆ 0x0920c0…0920e0 66 2c 6c 66 0d 0a 09 69 66 09 74 65 73 74 0d 0a 09 64 62 09 27 33 32 27 09 3b 33 32 6b 20 65 78 ┆f,lf if test db '32' ;32k ex┆ 0x0920e0…092100 61 6d 70 6c 65 20 62 69 6f 73 0d 0a 09 65 6e 64 69 66 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 ┆ample bios endif if not test┆ 0x092100…092120 0d 0a 09 64 62 09 27 30 30 27 09 3b 6d 65 6d 6f 72 79 20 73 69 7a 65 20 66 69 6c 6c 65 64 20 62 ┆ db '00' ;memory size filled b┆ 0x092120…092140 79 20 72 65 6c 6f 63 61 74 6f 72 0d 0a 09 65 6e 64 69 66 0d 0a 09 64 62 09 27 6b 20 43 50 2f 4d ┆y relocator endif db 'k CP/M┆ 0x092140…092160 20 76 65 72 73 20 27 0d 0a 09 64 62 09 76 65 72 73 2f 31 30 2b 27 30 27 2c 27 2e 27 2c 76 65 72 ┆ vers ' db vers/10+'0','.',ver┆ 0x092160…092180 73 20 6d 6f 64 20 31 30 2b 27 30 27 0d 0a 09 64 62 09 63 72 2c 6c 66 2c 30 0d 0a 3b 0d 0a 62 6f ┆s mod 10+'0' db cr,lf,0 ; bo┆ 0x092180…0921a0 6f 74 3a 09 3b 70 72 69 6e 74 20 73 69 67 6e 6f 6e 20 6d 65 73 73 61 67 65 20 61 6e 64 20 67 6f ┆ot: ;print signon message and go┆ 0x0921a0…0921c0 20 74 6f 20 63 63 70 0d 0a 3b 09 28 6e 6f 74 65 3a 20 6d 64 73 20 62 6f 6f 74 20 69 6e 69 74 69 ┆ to ccp ; (note: mds boot initi┆ 0x0921c0…0921e0 61 6c 69 7a 65 64 20 69 6f 62 79 74 65 20 61 74 20 30 30 30 33 68 29 0d 0a 09 6c 78 69 09 73 70 ┆alized iobyte at 0003h) lxi sp┆ 0x0921e0…092200 2c 62 75 66 66 2b 38 30 68 0d 0a 09 6c 78 69 09 68 2c 73 69 67 6e 6f 6e 0d 0a 09 63 61 6c 6c 09 ┆,buff+80h lxi h,signon call ┆ 0x092200…092220 (38, 1, 15) 6f 6e 0d 0a 09 6f 75 74 09 69 6e 74 63 0d 0a 09 78 72 61 09 61 0d 0a 09 6f 75 74 09 69 63 6f 6e ┆on out intc xra a out icon┆ 0x092220…092240 09 3b 69 6e 74 65 72 72 75 70 74 20 63 6f 6e 74 72 6f 6c 0d 0a 3b 0d 0a 3b 09 73 65 74 20 64 65 ┆ ;interrupt control ; ; set de┆ 0x092240…092260 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 20 74 6f 20 38 30 68 0d 0a 09 6c 78 ┆fault buffer address to 80h lx┆ 0x092260…092280 69 09 62 2c 62 75 66 66 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 3b 0d 0a 3b 09 72 65 73 ┆i b,buff call setdma ; ; res┆ 0x092280…0922a0 65 74 20 6d 6f 6e 69 74 6f 72 20 65 6e 74 72 79 20 70 6f 69 6e 74 73 0d 0a 09 6d 76 69 09 61 2c ┆et monitor entry points mvi a,┆ 0x0922a0…0922c0 6a 6d 70 0d 0a 09 73 74 61 09 30 0d 0a 09 6c 78 69 09 68 2c 77 62 6f 6f 74 65 0d 0a 09 73 68 6c ┆jmp sta 0 lxi h,wboote shl┆ 0x0922c0…0922e0 64 09 31 09 3b 6a 6d 70 20 77 62 6f 6f 74 20 61 74 20 6c 6f 63 61 74 69 6f 6e 20 30 30 0d 0a 09 ┆d 1 ;jmp wboot at location 00 ┆ 0x0922e0…092300 73 74 61 09 35 0d 0a 09 6c 78 69 09 68 2c 62 64 6f 73 0d 0a 09 73 68 6c 64 09 36 09 3b 6a 6d 70 ┆sta 5 lxi h,bdos shld 6 ;jmp┆ 0x092300…092320 20 62 64 6f 73 20 61 74 20 6c 6f 63 61 74 69 6f 6e 20 35 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 ┆ bdos at location 5 if not tes┆ 0x092320…092340 74 0d 0a 09 73 74 61 09 37 2a 38 09 3b 6a 6d 70 20 74 6f 20 6d 6f 6e 38 30 20 28 6d 61 79 20 68 ┆t sta 7*8 ;jmp to mon80 (may h┆ 0x092340…092360 61 76 65 20 62 65 65 6e 20 63 68 61 6e 67 65 64 20 62 79 20 64 64 74 29 0d 0a 09 6c 78 69 09 68 ┆ave been changed by ddt) lxi h┆ 0x092360…092380 2c 6d 6f 6e 38 30 0d 0a 09 73 68 6c 64 09 37 2a 38 2b 31 0d 0a 09 65 6e 64 69 66 0d 0a 3b 09 6c ┆,mon80 shld 7*8+1 endif ; l┆ 0x092380…0923a0 65 61 76 65 20 69 6f 62 79 74 65 20 73 65 74 0d 0a 3b 09 70 72 65 76 69 6f 75 73 6c 79 20 73 65 ┆eave iobyte set ; previously se┆ 0x0923a0…0923c0 6c 65 63 74 65 64 20 64 69 73 6b 20 77 61 73 20 62 2c 20 73 65 6e 64 20 70 61 72 61 6d 65 74 65 ┆lected disk was b, send paramete┆ 0x0923c0…0923e0 72 20 74 6f 20 63 70 6d 0d 0a 09 6c 64 61 09 63 64 69 73 6b 09 3b 6c 61 73 74 20 6c 6f 67 67 65 ┆r to cpm lda cdisk ;last logge┆ 0x0923e0…092400 64 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 73 65 6e 64 20 74 6f ┆d disk number mov c,a ;send to┆ 0x092400…092420 (39, 0, 1) 2a 38 0d 0a 09 64 61 64 09 68 09 3b 2a 31 36 0d 0a 09 6c 78 69 09 64 2c 64 70 62 61 73 65 0d 0a ┆*8 dad h ;*16 lxi d,dpbase ┆ 0x092420…092440 09 64 61 64 09 64 09 3b 48 4c 3d 64 69 73 6b 20 68 65 61 64 65 72 20 74 61 62 6c 65 20 61 64 64 ┆ dad d ;HL=disk header table add┆ 0x092440…092460 72 65 73 73 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 73 65 74 74 72 6b 3a 09 3b 73 65 74 20 74 ┆ress ret ; ; settrk: ;set t┆ 0x092460…092480 72 61 63 6b 20 61 64 64 72 65 73 73 20 67 69 76 65 6e 20 62 79 20 63 0d 0a 09 6c 78 69 09 68 2c ┆rack address given by c lxi h,┆ 0x092480…0924a0 69 6f 74 0d 0a 09 6d 6f 76 09 6d 2c 63 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 73 65 74 73 65 63 3a 09 ┆iot mov m,c ret ; setsec: ┆ 0x0924a0…0924c0 3b 73 65 74 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 67 69 76 65 6e 20 62 79 20 63 0d 0a 09 ┆;set sector number given by c ┆ 0x0924c0…0924e0 6c 78 69 09 68 2c 69 6f 73 0d 0a 09 6d 6f 76 09 6d 2c 63 0d 0a 09 72 65 74 0d 0a 73 65 63 74 72 ┆lxi h,ios mov m,c ret sectr┆ 0x0924e0…092500 61 6e 3a 0d 0a 09 09 3b 74 72 61 6e 73 6c 61 74 65 20 73 65 63 74 6f 72 20 62 63 20 75 73 69 6e ┆an: ;translate sector bc usin┆ 0x092500…092520 67 20 74 61 62 6c 65 20 61 74 20 64 65 0d 0a 09 6d 76 69 09 62 2c 30 09 3b 64 6f 75 62 6c 65 20 ┆g table at de mvi b,0 ;double ┆ 0x092520…092540 70 72 65 63 69 73 69 6f 6e 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 69 6e 20 42 43 0d 0a 09 ┆precision sector number in BC ┆ 0x092540…092560 78 63 68 67 09 09 3b 74 72 61 6e 73 6c 61 74 65 20 74 61 62 6c 65 20 61 64 64 72 65 73 73 20 74 ┆xchg ;translate table address t┆ 0x092560…092580 6f 20 48 4c 0d 0a 09 64 61 64 09 62 09 3b 74 72 61 6e 73 6c 61 74 65 28 73 65 63 74 6f 72 29 20 ┆o HL dad b ;translate(sector) ┆ 0x092580…0925a0 61 64 64 72 65 73 73 0d 0a 09 6d 6f 76 09 61 2c 6d 09 3b 74 72 61 6e 73 6c 61 74 65 64 20 73 65 ┆address mov a,m ;translated se┆ 0x0925a0…0925c0 63 74 6f 72 20 6e 75 6d 62 65 72 20 74 6f 20 41 0d 0a 09 73 74 61 09 69 6f 73 0d 0a 09 6d 6f 76 ┆ctor number to A sta ios mov┆ 0x0925c0…0925e0 09 6c 2c 61 09 3b 72 65 74 75 72 6e 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 69 6e 20 4c 0d ┆ l,a ;return sector number in L ┆ 0x0925e0…092600 0a 09 72 65 74 0d 0a 3b 0d 0a 73 65 74 64 6d 61 3a 09 3b 73 65 74 20 64 6d 61 20 61 64 64 72 65 ┆ ret ; setdma: ;set dma addre┆ 0x092600…092620 (39, 0, 2) 0a 69 6f 64 72 31 3a 09 3b 64 72 69 76 65 20 62 61 6e 6b 20 31 0d 0a 09 6f 75 74 09 69 6c 6f 77 ┆ iodr1: ;drive bank 1 out ilow┆ 0x092620…092640 2b 31 30 68 09 3b 38 38 20 66 6f 72 20 64 72 69 76 65 20 62 61 6e 6b 20 31 30 0d 0a 09 6d 6f 76 ┆+10h ;88 for drive bank 10 mov┆ 0x092640…092660 09 61 2c 62 0d 0a 09 6f 75 74 09 69 68 69 67 68 2b 31 30 68 0d 0a 3b 0d 0a 77 61 69 74 30 3a 09 ┆ a,b out ihigh+10h ; wait0: ┆ 0x092660…092680 63 61 6c 6c 09 69 6e 73 74 61 74 09 09 3b 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 69 6f ┆call instat ;wait for completio┆ 0x092680…0926a0 6e 0d 0a 09 61 6e 69 09 69 6f 72 64 79 09 09 3b 72 65 61 64 79 3f 0d 0a 09 6a 7a 09 77 61 69 74 ┆n ani iordy ;ready? jz wait┆ 0x0926a0…0926c0 30 0d 0a 3b 0d 0a 3b 09 63 68 65 63 6b 20 69 6f 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 6f 6b 0d 0a ┆0 ; ; check io completion ok ┆ 0x0926c0…0926e0 09 63 61 6c 6c 09 69 6e 74 79 70 65 09 09 3b 6d 75 73 74 20 62 65 20 69 6f 20 63 6f 6d 70 6c 65 ┆ call intype ;must be io comple┆ 0x0926e0…092700 74 65 20 28 30 30 29 20 75 6e 6c 69 6e 6b 65 64 0d 0a 3b 09 30 30 20 75 6e 6c 69 6e 6b 65 64 20 ┆te (00) unlinked ; 00 unlinked ┆ 0x092700…092720 69 2f 6f 20 63 6f 6d 70 6c 65 74 65 2c 20 20 20 20 30 31 20 6c 69 6e 6b 65 64 20 69 2f 6f 20 63 ┆i/o complete, 01 linked i/o c┆ 0x092720…092740 6f 6d 70 6c 65 74 65 20 28 6e 6f 74 20 75 73 65 64 29 0d 0a 3b 09 31 30 20 64 69 73 6b 20 73 74 ┆omplete (not used) ; 10 disk st┆ 0x092740…092760 61 74 75 73 20 63 68 61 6e 67 65 64 20 20 20 20 20 20 20 31 31 20 28 6e 6f 74 20 75 73 65 64 29 ┆atus changed 11 (not used)┆ 0x092760…092780 0d 0a 09 63 70 69 09 31 30 62 09 09 3b 72 65 61 64 79 20 73 74 61 74 75 73 20 63 68 61 6e 67 65 ┆ cpi 10b ;ready status change┆ 0x092780…0927a0 3f 0d 0a 09 6a 7a 09 77 72 65 61 64 79 0d 0a 3b 0d 0a 3b 09 6d 75 73 74 20 62 65 20 30 30 20 69 ┆? jz wready ; ; must be 00 i┆ 0x0927a0…0927c0 6e 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 ┆n the accumulator ora a jnz ┆ 0x0927c0…0927e0 77 65 72 72 6f 72 09 09 3b 73 6f 6d 65 20 6f 74 68 65 72 20 63 6f 6e 64 69 74 69 6f 6e 2c 20 72 ┆werror ;some other condition, r┆ 0x0927e0…092800 65 74 72 79 0d 0a 3b 0d 0a 3b 09 63 68 65 63 6b 20 69 2f 6f 20 65 72 72 6f 72 20 62 69 74 73 0d ┆etry ; ; check i/o error bits ┆ 0x092800…092820 (39, 0, 3) 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 61 74 61 20 61 72 65 61 73 20 28 6d 75 73 74 20 62 ┆t ; ; ; ; data areas (must b┆ 0x092820…092840 65 20 69 6e 20 72 61 6d 29 0d 0a 64 62 61 6e 6b 3a 09 64 62 09 30 09 3b 64 69 73 6b 20 62 61 6e ┆e in ram) dbank: db 0 ;disk ban┆ 0x092840…092860 6b 20 30 30 20 69 66 20 64 72 69 76 65 20 30 2c 31 0d 0a 09 09 09 3b 09 20 20 20 31 30 20 69 66 ┆k 00 if drive 0,1 ; 10 if┆ 0x092860…092880 20 64 72 69 76 65 20 32 2c 33 0d 0a 69 6f 70 62 3a 09 3b 69 6f 20 70 61 72 61 6d 65 74 65 72 20 ┆ drive 2,3 iopb: ;io parameter ┆ 0x092880…0928a0 62 6c 6f 63 6b 0d 0a 09 64 62 09 38 30 68 09 3b 6e 6f 72 6d 61 6c 20 69 2f 6f 20 6f 70 65 72 61 ┆block db 80h ;normal i/o opera┆ 0x0928a0…0928c0 74 69 6f 6e 0d 0a 69 6f 66 3a 09 64 62 09 72 65 61 64 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e ┆tion iof: db readf ;io function┆ 0x0928c0…0928e0 2c 20 69 6e 69 74 69 61 6c 20 72 65 61 64 0d 0a 69 6f 6e 3a 09 64 62 09 31 09 3b 6e 75 6d 62 65 ┆, initial read ion: db 1 ;numbe┆ 0x0928e0…092900 72 20 6f 66 20 73 65 63 74 6f 72 73 20 74 6f 20 72 65 61 64 0d 0a 69 6f 74 3a 09 64 62 09 6f 66 ┆r of sectors to read iot: db of┆ 0x092900…092920 66 73 65 74 09 3b 74 72 61 63 6b 20 6e 75 6d 62 65 72 0d 0a 69 6f 73 3a 09 64 62 09 31 09 3b 73 ┆fset ;track number ios: db 1 ;s┆ 0x092920…092940 65 63 74 6f 72 20 6e 75 6d 62 65 72 0d 0a 69 6f 64 3a 09 64 77 09 62 75 66 66 09 3b 69 6f 20 61 ┆ector number iod: dw buff ;io a┆ 0x092940…092960 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 65 66 69 6e 65 20 72 61 6d 20 61 72 65 61 73 ┆ddress ; ; ; define ram areas┆ 0x092960…092980 20 66 6f 72 20 62 64 6f 73 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 09 65 6e 64 65 66 0d 0a 09 65 6e ┆ for bdos operation endef en┆ 0x092980…0929a0 64 0d 0a 3b 09 4d 44 53 2d 38 30 30 20 49 2f 4f 20 44 72 69 76 65 72 73 20 66 6f 72 20 43 50 2f ┆d ; MDS-800 I/O Drivers for CP/┆ 0x0929a0…0929c0 4d 20 32 2e 32 0d 0a 3b 09 28 66 6f 75 72 20 64 72 69 76 65 20 73 69 6e 67 6c 65 20 64 65 6e 73 ┆M 2.2 ; (four drive single dens┆ 0x0929c0…0929e0 69 74 79 20 76 65 72 73 69 6f 6e 29 0d 0a 3b 0d 0a 3b 09 56 65 72 73 69 6f 6e 20 32 2e 32 20 46 ┆ity version) ; ; Version 2.2 F┆ 0x0929e0…092a00 65 62 72 75 61 72 79 2c 20 31 39 38 30 0d 0a 3b 0d 0a 76 65 72 73 09 65 71 75 09 32 32 09 3b 76 ┆ebruary, 1980 ; vers equ 22 ;v┆ 0x092a00…092a20 (39, 0, 4) 72 65 61 64 2f 77 72 69 74 65 0d 0a 3b 09 73 65 74 64 6d 61 09 73 65 74 20 73 75 62 73 65 71 75 ┆read/write ; setdma set subsequ┆ 0x092a20…092a40 65 6e 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 28 69 6e 69 74 69 61 6c 6c 79 20 38 30 68 29 0d ┆ent dma address (initially 80h) ┆ 0x092a40…092a60 0a 3b 0d 0a 3b 09 28 72 65 61 64 20 61 6e 64 20 77 72 69 74 65 20 61 73 73 75 6d 65 20 70 72 65 ┆ ; ; (read and write assume pre┆ 0x092a60…092a80 76 69 6f 75 73 20 63 61 6c 6c 73 20 74 6f 20 73 65 74 20 75 70 20 74 68 65 20 69 6f 20 70 61 72 ┆vious calls to set up the io par┆ 0x092a80…092aa0 61 6d 65 74 65 72 73 29 0d 0a 3b 09 72 65 61 64 09 72 65 61 64 20 74 72 61 63 6b 2f 73 65 63 74 ┆ameters) ; read read track/sect┆ 0x092aa0…092ac0 6f 72 20 74 6f 20 70 72 65 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 3b 09 77 72 69 74 ┆or to preset dma address ; writ┆ 0x092ac0…092ae0 65 09 77 72 69 74 65 20 74 72 61 63 6b 2f 73 65 63 74 6f 72 20 66 72 6f 6d 20 70 72 65 73 65 74 ┆e write track/sector from preset┆ 0x092ae0…092b00 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b 09 6a 75 6d 70 20 76 65 63 74 6f 72 20 66 ┆ dma address ; ; jump vector f┆ 0x092b00…092b20 6f 72 20 69 6e 64 69 76 69 75 61 6c 20 72 6f 75 74 69 6e 65 73 0d 0a 09 6a 6d 70 09 62 6f 6f 74 ┆or indiviual routines jmp boot┆ 0x092b20…092b40 0d 0a 77 62 6f 6f 74 65 3a 09 6a 6d 70 09 77 62 6f 6f 74 0d 0a 09 6a 6d 70 09 63 6f 6e 73 74 0d ┆ wboote: jmp wboot jmp const ┆ 0x092b40…092b60 0a 09 6a 6d 70 09 63 6f 6e 69 6e 0d 0a 09 6a 6d 70 09 63 6f 6e 6f 75 74 0d 0a 09 6a 6d 70 09 6c ┆ jmp conin jmp conout jmp l┆ 0x092b60…092b80 69 73 74 0d 0a 09 6a 6d 70 09 70 75 6e 63 68 0d 0a 09 6a 6d 70 09 72 65 61 64 65 72 0d 0a 09 6a ┆ist jmp punch jmp reader j┆ 0x092b80…092ba0 6d 70 09 68 6f 6d 65 0d 0a 09 6a 6d 70 09 73 65 6c 64 73 6b 0d 0a 09 6a 6d 70 09 73 65 74 74 72 ┆mp home jmp seldsk jmp settr┆ 0x092ba0…092bc0 6b 0d 0a 09 6a 6d 70 09 73 65 74 73 65 63 0d 0a 09 6a 6d 70 09 73 65 74 64 6d 61 0d 0a 09 6a 6d ┆k jmp setsec jmp setdma jm┆ 0x092bc0…092be0 70 09 72 65 61 64 0d 0a 09 6a 6d 70 09 77 72 69 74 65 0d 0a 09 6a 6d 70 09 6c 69 73 74 73 74 09 ┆p read jmp write jmp listst ┆ 0x092be0…092c00 3b 6c 69 73 74 20 73 74 61 74 75 73 0d 0a 09 6a 6d 70 09 73 65 63 74 72 61 6e 0d 0a 3b 0d 0a 09 ┆;list status jmp sectran ; ┆ 0x092c00…092c20 (39, 0, 5) 73 73 20 67 69 76 65 6e 20 62 79 20 72 65 67 73 20 62 2c 63 0d 0a 09 6d 6f 76 09 6c 2c 63 0d 0a ┆ss given by regs b,c mov l,c ┆ 0x092c20…092c40 09 6d 6f 76 09 68 2c 62 0d 0a 09 73 68 6c 64 09 69 6f 64 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 72 65 ┆ mov h,b shld iod ret ; re┆ 0x092c40…092c60 61 64 3a 09 3b 72 65 61 64 20 6e 65 78 74 20 64 69 73 6b 20 72 65 63 6f 72 64 20 28 61 73 73 75 ┆ad: ;read next disk record (assu┆ 0x092c60…092c80 6d 69 6e 67 20 64 69 73 6b 2f 74 72 6b 2f 73 65 63 2f 64 6d 61 20 73 65 74 29 0d 0a 09 6d 76 69 ┆ming disk/trk/sec/dma set) mvi┆ 0x092c80…092ca0 09 63 2c 72 65 61 64 66 09 3b 73 65 74 20 74 6f 20 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a ┆ c,readf ;set to read function ┆ 0x092ca0…092cc0 09 63 61 6c 6c 09 73 65 74 66 75 6e 63 0d 0a 09 63 61 6c 6c 09 77 61 69 74 69 6f 09 3b 70 65 72 ┆ call setfunc call waitio ;per┆ 0x092cc0…092ce0 66 6f 72 6d 20 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 72 65 74 09 09 3b 6d 61 79 20 68 ┆form read function ret ;may h┆ 0x092ce0…092d00 61 76 65 20 65 72 72 6f 72 20 73 65 74 20 69 6e 20 72 65 67 2d 61 0d 0a 3b 0d 0a 3b 0d 0a 77 72 ┆ave error set in reg-a ; ; wr┆ 0x092d00…092d20 69 74 65 3a 09 3b 64 69 73 6b 20 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6d 76 69 09 ┆ite: ;disk write function mvi ┆ 0x092d20…092d40 63 2c 77 72 69 74 66 0d 0a 09 63 61 6c 6c 09 73 65 74 66 75 6e 63 09 3b 73 65 74 20 74 6f 20 77 ┆c,writf call setfunc ;set to w┆ 0x092d40…092d60 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 77 61 69 74 69 6f 0d 0a 09 72 65 ┆rite function call waitio re┆ 0x092d60…092d80 74 09 09 3b 6d 61 79 20 68 61 76 65 20 65 72 72 6f 72 20 73 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 ┆t ;may have error set ; ; ; ┆ 0x092d80…092da0 75 74 69 6c 69 74 79 20 73 75 62 72 6f 75 74 69 6e 65 73 0d 0a 70 72 6d 73 67 3a 09 3b 70 72 69 ┆utility subroutines prmsg: ;pri┆ 0x092da0…092dc0 6e 74 20 6d 65 73 73 61 67 65 20 61 74 20 68 2c 6c 20 74 6f 20 30 0d 0a 09 6d 6f 76 09 61 2c 6d ┆nt message at h,l to 0 mov a,m┆ 0x092dc0…092de0 0d 0a 09 6f 72 61 09 61 09 3b 7a 65 72 6f 3f 0d 0a 09 72 7a 0d 0a 3b 09 6d 6f 72 65 20 74 6f 20 ┆ ora a ;zero? rz ; more to ┆ 0x092de0…092e00 70 72 69 6e 74 0d 0a 09 70 75 73 68 09 68 0d 0a 09 6d 6f 76 09 63 2c 61 0d 0a 09 63 61 6c 6c 09 ┆print push h mov c,a call ┆ 0x092e00…092e20 (39, 0, 6) 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 0d 0a 09 72 61 6c 0d 0a 09 6a 63 09 77 72 65 61 64 79 09 ┆ call inbyte ral jc wready ┆ 0x092e20…092e40 09 3b 75 6e 69 74 20 6e 6f 74 20 72 65 61 64 79 0d 0a 09 72 61 72 0d 0a 09 61 6e 69 09 31 31 31 ┆ ;unit not ready rar ani 111┆ 0x092e40…092e60 31 31 31 31 30 62 09 3b 61 6e 79 20 6f 74 68 65 72 20 65 72 72 6f 72 73 3f 20 20 28 64 65 6c 65 ┆11110b ;any other errors? (dele┆ 0x092e60…092e80 74 65 64 20 64 61 74 61 20 6f 6b 29 0d 0a 09 6a 6e 7a 09 77 65 72 72 6f 72 0d 0a 3b 0d 0a 3b 09 ┆ted data ok) jnz werror ; ; ┆ 0x092e80…092ea0 72 65 61 64 20 6f 72 20 77 72 69 74 65 20 69 73 20 6f 6b 2c 20 61 63 63 75 6d 75 6c 61 74 6f 72 ┆read or write is ok, accumulator┆ 0x092ea0…092ec0 20 63 6f 6e 74 61 69 6e 73 20 7a 65 72 6f 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 77 72 65 61 64 79 3a ┆ contains zero ret ; wready:┆ 0x092ec0…092ee0 09 3b 6e 6f 74 20 72 65 61 64 79 2c 20 74 72 65 61 74 20 61 73 20 65 72 72 6f 72 20 66 6f 72 20 ┆ ;not ready, treat as error for ┆ 0x092ee0…092f00 6e 6f 77 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 09 09 3b 63 6c 65 61 72 20 72 65 73 75 6c 74 ┆now call inbyte ;clear result┆ 0x092f00…092f20 20 62 79 74 65 0d 0a 09 6a 6d 70 09 74 72 79 63 6f 75 6e 74 0d 0a 3b 0d 0a 77 65 72 72 6f 72 3a ┆ byte jmp trycount ; werror:┆ 0x092f20…092f40 09 3b 72 65 74 75 72 6e 20 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 20 28 63 ┆ ;return hardware malfunction (c┆ 0x092f40…092f60 72 63 2c 20 74 72 61 63 6b 2c 20 73 65 65 6b 2c 20 65 74 63 2e 29 0d 0a 3b 09 74 68 65 20 6d 64 ┆rc, track, seek, etc.) ; the md┆ 0x092f60…092f80 73 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 68 61 73 20 72 65 74 75 72 6e 65 64 20 61 20 62 69 74 20 ┆s controller has returned a bit ┆ 0x092f80…092fa0 69 6e 20 65 61 63 68 20 70 6f 73 69 74 69 6f 6e 0d 0a 3b 09 6f 66 20 74 68 65 20 61 63 63 75 6d ┆in each position ; of the accum┆ 0x092fa0…092fc0 75 6c 61 74 6f 72 2c 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 74 68 65 20 63 6f 6e ┆ulator, corresponding to the con┆ 0x092fc0…092fe0 64 69 74 69 6f 6e 73 3a 0d 0a 3b 09 30 09 2d 20 64 65 6c 65 74 65 64 20 64 61 74 61 20 28 61 63 ┆ditions: ; 0 - deleted data (ac┆ 0x092fe0…093000 63 65 70 74 65 64 20 61 73 20 6f 6b 20 61 62 6f 76 65 29 0d 0a 3b 09 31 09 2d 20 63 72 63 20 65 ┆cepted as ok above) ; 1 - crc e┆ 0x093000…093020 (39, 0, 7) 65 72 73 69 6f 6e 20 32 2e 32 0d 0a 3b 0d 0a 3b 09 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 ┆ersion 2.2 ; ; Copyright (c) 1┆ 0x093020…093040 39 38 30 0d 0a 3b 09 44 69 67 69 74 61 6c 20 52 65 73 65 61 72 63 68 0d 0a 3b 09 42 6f 78 20 35 ┆980 ; Digital Research ; Box 5┆ 0x093040…093060 37 39 2c 20 50 61 63 69 66 69 63 20 47 72 6f 76 65 0d 0a 3b 09 43 61 6c 69 66 6f 72 6e 69 61 2c ┆79, Pacific Grove ; California,┆ 0x093060…093080 20 39 33 39 35 30 0d 0a 3b 0d 0a 3b 0d 0a 74 72 75 65 09 65 71 75 09 30 66 66 66 66 68 09 3b 76 ┆ 93950 ; ; true equ 0ffffh ;v┆ 0x093080…0930a0 61 6c 75 65 20 6f 66 20 22 74 72 75 65 22 0d 0a 66 61 6c 73 65 09 65 71 75 09 6e 6f 74 20 74 72 ┆alue of "true" false equ not tr┆ 0x0930a0…0930c0 75 65 09 3b 22 66 61 6c 73 65 22 0d 0a 74 65 73 74 09 65 71 75 09 66 61 6c 73 65 09 3b 74 72 75 ┆ue ;"false" test equ false ;tru┆ 0x0930c0…0930e0 65 20 69 66 20 74 65 73 74 20 62 69 6f 73 0d 0a 3b 0d 0a 09 69 66 09 74 65 73 74 0d 0a 62 69 61 ┆e if test bios ; if test bia┆ 0x0930e0…093100 73 09 65 71 75 09 30 33 34 30 30 68 09 3b 62 61 73 65 20 6f 66 20 43 43 50 20 69 6e 20 74 65 73 ┆s equ 03400h ;base of CCP in tes┆ 0x093100…093120 74 20 73 79 73 74 65 6d 0d 0a 09 65 6e 64 69 66 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a ┆t system endif if not test ┆ 0x093120…093140 62 69 61 73 09 65 71 75 09 30 30 30 30 68 09 3b 67 65 6e 65 72 61 74 65 20 72 65 6c 6f 63 61 74 ┆bias equ 0000h ;generate relocat┆ 0x093140…093160 61 62 6c 65 20 63 70 2f 6d 20 73 79 73 74 65 6d 0d 0a 09 65 6e 64 69 66 0d 0a 3b 0d 0a 70 61 74 ┆able cp/m system endif ; pat┆ 0x093160…093180 63 68 09 65 71 75 09 31 36 30 30 68 0d 0a 3b 0d 0a 09 6f 72 67 09 70 61 74 63 68 0d 0a 63 70 6d ┆ch equ 1600h ; org patch cpm┆ 0x093180…0931a0 62 09 65 71 75 09 24 2d 70 61 74 63 68 09 3b 62 61 73 65 20 6f 66 20 63 70 6d 20 63 6f 6e 73 6f ┆b equ $-patch ;base of cpm conso┆ 0x0931a0…0931c0 6c 65 20 70 72 6f 63 65 73 73 6f 72 0d 0a 62 64 6f 73 09 65 71 75 09 38 30 36 68 2b 63 70 6d 62 ┆le processor bdos equ 806h+cpmb┆ 0x0931c0…0931e0 09 3b 62 61 73 69 63 20 64 6f 73 20 28 72 65 73 69 64 65 6e 74 20 70 6f 72 74 69 6f 6e 29 0d 0a ┆ ;basic dos (resident portion) ┆ 0x0931e0…093200 63 70 6d 6c 09 65 71 75 09 24 2d 63 70 6d 62 09 3b 6c 65 6e 67 74 68 20 28 69 6e 20 62 79 74 65 ┆cpml equ $-cpmb ;length (in byte┆ 0x093200…093220 (39, 0, 8) 6d 61 63 6c 69 62 09 64 69 73 6b 64 65 66 09 3b 6c 6f 61 64 20 74 68 65 20 64 69 73 6b 20 64 65 ┆maclib diskdef ;load the disk de┆ 0x093220…093240 66 69 6e 69 74 69 6f 6e 20 6c 69 62 72 61 72 79 0d 0a 09 64 69 73 6b 73 09 34 09 3b 66 6f 75 72 ┆finition library disks 4 ;four┆ 0x093240…093260 20 64 69 73 6b 73 0d 0a 09 64 69 73 6b 64 65 66 09 30 2c 31 2c 32 36 2c 36 2c 31 30 32 34 2c 32 ┆ disks diskdef 0,1,26,6,1024,2┆ 0x093260…093280 34 33 2c 36 34 2c 36 34 2c 6f 66 66 73 65 74 0d 0a 09 64 69 73 6b 64 65 66 09 31 2c 30 0d 0a 09 ┆43,64,64,offset diskdef 1,0 ┆ 0x093280…0932a0 64 69 73 6b 64 65 66 09 32 2c 30 0d 0a 09 64 69 73 6b 64 65 66 09 33 2c 30 0d 0a 3b 09 65 6e 64 ┆diskdef 2,0 diskdef 3,0 ; end┆ 0x0932a0…0932c0 65 66 20 6f 63 63 75 72 73 20 61 74 20 65 6e 64 20 6f 66 20 61 73 73 65 6d 62 6c 79 0d 0a 3b 0d ┆ef occurs at end of assembly ; ┆ 0x0932c0…0932e0 0a 3b 09 65 6e 64 20 6f 66 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 2d 20 69 6e 64 65 70 65 6e 64 65 ┆ ; end of controller - independe┆ 0x0932e0…093300 6e 74 20 63 6f 64 65 2c 20 74 68 65 20 72 65 6d 61 69 6e 69 6e 67 20 73 75 62 72 6f 75 74 69 6e ┆nt code, the remaining subroutin┆ 0x093300…093320 65 73 0d 0a 3b 09 61 72 65 20 74 61 69 6c 6f 72 65 64 20 74 6f 20 74 68 65 20 70 61 72 74 69 63 ┆es ; are tailored to the partic┆ 0x093320…093340 75 6c 61 72 20 6f 70 65 72 61 74 69 6e 67 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 2c 20 61 6e 64 20 ┆ular operating environment, and ┆ 0x093340…093360 6d 75 73 74 0d 0a 3b 09 62 65 20 61 6c 74 65 72 65 64 20 66 6f 72 20 61 6e 79 20 73 79 73 74 65 ┆must ; be altered for any syste┆ 0x093360…093380 6d 20 77 68 69 63 68 20 64 69 66 66 65 72 73 20 66 72 6f 6d 20 74 68 65 20 69 6e 74 65 6c 20 6d ┆m which differs from the intel m┆ 0x093380…0933a0 64 73 2e 0d 0a 3b 0d 0a 3b 09 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 64 65 20 61 73 73 ┆ds. ; ; the following code ass┆ 0x0933a0…0933c0 75 6d 65 73 20 74 68 65 20 6d 64 73 20 6d 6f 6e 69 74 6f 72 20 65 78 69 73 74 73 20 61 74 20 30 ┆umes the mds monitor exists at 0┆ 0x0933c0…0933e0 66 38 30 30 68 0d 0a 3b 09 61 6e 64 20 75 73 65 73 20 74 68 65 20 69 2f 6f 20 73 75 62 72 6f 75 ┆f800h ; and uses the i/o subrou┆ 0x0933e0…093400 74 69 6e 65 73 20 77 69 74 68 69 6e 20 74 68 65 20 6d 6f 6e 69 74 6f 72 0d 0a 3b 0d 0a 3b 09 77 ┆tines within the monitor ; ; w┆ 0x093400…093420 (39, 0, 9) 63 6f 6e 6f 75 74 0d 0a 09 70 6f 70 09 68 0d 0a 09 69 6e 78 09 68 0d 0a 09 6a 6d 70 09 70 72 6d ┆conout pop h inx h jmp prm┆ 0x093420…093440 73 67 0d 0a 3b 0d 0a 73 65 74 66 75 6e 63 3a 0d 0a 3b 09 73 65 74 20 66 75 6e 63 74 69 6f 6e 20 ┆sg ; setfunc: ; set function ┆ 0x093440…093460 66 6f 72 20 6e 65 78 74 20 69 2f 6f 20 28 63 6f 6d 6d 61 6e 64 20 69 6e 20 72 65 67 2d 63 29 0d ┆for next i/o (command in reg-c) ┆ 0x093460…093480 0a 09 6c 78 69 09 68 2c 69 6f 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 72 65 73 73 ┆ lxi h,iof ;io function address┆ 0x093480…0934a0 0d 0a 09 6d 6f 76 09 61 2c 6d 09 3b 67 65 74 20 69 74 20 74 6f 20 61 63 63 75 6d 75 6c 61 74 6f ┆ mov a,m ;get it to accumulato┆ 0x0934a0…0934c0 72 20 66 6f 72 20 6d 61 73 6b 69 6e 67 0d 0a 09 61 6e 69 09 31 31 31 31 31 30 30 30 62 09 3b 72 ┆r for masking ani 11111000b ;r┆ 0x0934c0…0934e0 65 6d 6f 76 65 20 70 72 65 76 69 6f 75 73 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6f 72 61 09 63 09 3b ┆emove previous command ora c ;┆ 0x0934e0…093500 73 65 74 20 74 6f 20 6e 65 77 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6d 6f 76 09 6d 2c 61 09 3b 72 65 ┆set to new command mov m,a ;re┆ 0x093500…093520 70 6c 61 63 65 64 20 69 6e 20 69 6f 70 62 0d 0a 3b 09 74 68 65 20 6d 64 73 2d 38 30 30 20 63 6f ┆placed in iopb ; the mds-800 co┆ 0x093520…093540 6e 74 72 6f 6c 6c 65 72 20 72 65 71 75 69 72 65 73 20 64 69 73 6b 20 62 61 6e 6b 20 62 69 74 20 ┆ntroller requires disk bank bit ┆ 0x093540…093560 69 6e 20 73 65 63 74 6f 72 20 62 79 74 65 0d 0a 3b 09 6d 61 73 6b 20 74 68 65 20 62 69 74 20 66 ┆in sector byte ; mask the bit f┆ 0x093560…093580 72 6f 6d 20 74 68 65 20 63 75 72 72 65 6e 74 20 69 2f 6f 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 61 ┆rom the current i/o function a┆ 0x093580…0935a0 6e 69 09 30 30 31 30 30 30 30 30 62 09 3b 6d 61 73 6b 20 74 68 65 20 64 69 73 6b 20 73 65 6c 65 ┆ni 00100000b ;mask the disk sele┆ 0x0935a0…0935c0 63 74 20 62 69 74 0d 0a 09 6c 78 69 09 68 2c 69 6f 73 09 09 3b 61 64 64 72 65 73 73 20 74 68 65 ┆ct bit lxi h,ios ;address the┆ 0x0935c0…0935e0 20 73 65 63 74 6f 72 20 73 65 6c 65 63 74 20 62 79 74 65 0d 0a 09 6f 72 61 09 6d 09 09 3b 73 65 ┆ sector select byte ora m ;se┆ 0x0935e0…093600 6c 65 63 74 20 70 72 6f 70 65 72 20 64 69 73 6b 20 62 61 6e 6b 0d 0a 09 6d 6f 76 09 6d 2c 61 09 ┆lect proper disk bank mov m,a ┆ 0x093600…093620 (39, 0, 10) 72 72 6f 72 0d 0a 3b 09 32 09 2d 20 73 65 65 6b 20 65 72 72 6f 72 0d 0a 3b 09 33 09 2d 20 61 64 ┆rror ; 2 - seek error ; 3 - ad┆ 0x093620…093640 64 72 65 73 73 20 65 72 72 6f 72 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f ┆dress error (hardware malfunctio┆ 0x093640…093660 6e 29 0d 0a 3b 09 34 09 2d 20 64 61 74 61 20 6f 76 65 72 2f 75 6e 64 65 72 20 66 6c 6f 77 20 28 ┆n) ; 4 - data over/under flow (┆ 0x093660…093680 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 35 09 2d 20 77 72 69 ┆hardware malfunction) ; 5 - wri┆ 0x093680…0936a0 74 65 20 70 72 6f 74 65 63 74 20 28 74 72 65 61 74 65 64 20 61 73 20 6e 6f 74 20 72 65 61 64 79 ┆te protect (treated as not ready┆ 0x0936a0…0936c0 29 0d 0a 3b 09 36 09 2d 20 77 72 69 74 65 20 65 72 72 6f 72 20 28 68 61 72 64 77 61 72 65 20 6d ┆) ; 6 - write error (hardware m┆ 0x0936c0…0936e0 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 37 09 2d 20 6e 6f 74 20 72 65 61 64 79 0d 0a 3b 09 ┆alfunction) ; 7 - not ready ; ┆ 0x0936e0…093700 28 61 63 63 75 6d 75 6c 61 74 6f 72 20 62 69 74 73 20 61 72 65 20 6e 75 6d 62 65 72 65 64 20 37 ┆(accumulator bits are numbered 7┆ 0x093700…093720 20 36 20 35 20 34 20 33 20 32 20 31 20 30 29 0d 0a 3b 0d 0a 3b 09 69 74 20 6d 61 79 20 62 65 20 ┆ 6 5 4 3 2 1 0) ; ; it may be ┆ 0x093720…093740 75 73 65 66 75 6c 20 74 6f 20 66 69 6c 74 65 72 20 6f 75 74 20 74 68 65 20 76 61 72 69 6f 75 73 ┆useful to filter out the various┆ 0x093740…093760 20 63 6f 6e 64 69 74 69 6f 6e 73 2c 0d 0a 3b 09 62 75 74 20 77 65 20 77 69 6c 6c 20 67 65 74 20 ┆ conditions, ; but we will get ┆ 0x093760…093780 61 20 70 65 72 6d 61 6e 65 6e 74 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 69 66 20 69 74 20 ┆a permanent error message if it ┆ 0x093780…0937a0 69 73 20 6e 6f 74 0d 0a 3b 09 72 65 63 6f 76 65 72 61 62 6c 65 2e 20 20 69 6e 20 61 6e 79 20 63 ┆is not ; recoverable. in any c┆ 0x0937a0…0937c0 61 73 65 2c 20 74 68 65 20 6e 6f 74 20 72 65 61 64 79 20 63 6f 6e 64 69 74 69 6f 6e 20 69 73 0d ┆ase, the not ready condition is ┆ 0x0937c0…0937e0 0a 3b 09 74 72 65 61 74 65 64 20 61 73 20 61 20 73 65 70 61 72 61 74 65 20 63 6f 6e 64 69 74 69 ┆ ; treated as a separate conditi┆ 0x0937e0…093800 6f 6e 20 66 6f 72 20 6c 61 74 65 72 20 69 6d 70 72 6f 76 65 6d 65 6e 74 0d 0a 74 72 79 63 6f 75 ┆on for later improvement trycou┆ 0x093800…093820 (39, 0, 11) 73 29 20 6f 66 20 63 70 6d 20 73 79 73 74 65 6d 0d 0a 6e 73 65 63 74 73 09 65 71 75 09 63 70 6d ┆s) of cpm system nsects equ cpm┆ 0x093820…093840 6c 2f 31 32 38 09 3b 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 20 74 6f 20 6c 6f 61 64 ┆l/128 ;number of sectors to load┆ 0x093840…093860 0d 0a 6f 66 66 73 65 74 09 65 71 75 09 32 09 3b 6e 75 6d 62 65 72 20 6f 66 20 64 69 73 6b 20 74 ┆ offset equ 2 ;number of disk t┆ 0x093860…093880 72 61 63 6b 73 20 75 73 65 64 20 62 79 20 63 70 2f 6d 0d 0a 63 64 69 73 6b 09 65 71 75 09 30 30 ┆racks used by cp/m cdisk equ 00┆ 0x093880…0938a0 30 34 68 09 3b 61 64 64 72 65 73 73 20 6f 66 20 6c 61 73 74 20 6c 6f 67 67 65 64 20 64 69 73 6b ┆04h ;address of last logged disk┆ 0x0938a0…0938c0 20 6f 6e 20 77 61 72 6d 20 73 74 61 72 74 0d 0a 62 75 66 66 09 65 71 75 09 30 30 38 30 68 09 3b ┆ on warm start buff equ 0080h ;┆ 0x0938c0…0938e0 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 0d 0a 72 65 74 72 79 09 65 71 ┆default buffer address retry eq┆ 0x0938e0…093900 75 09 31 30 09 3b 6d 61 78 20 72 65 74 72 69 65 73 20 6f 6e 20 64 69 73 6b 20 69 2f 6f 20 62 65 ┆u 10 ;max retries on disk i/o be┆ 0x093900…093920 66 6f 72 65 20 65 72 72 6f 72 0d 0a 3b 0d 0a 3b 09 70 65 72 66 6f 72 6d 20 66 6f 6c 6c 6f 77 69 ┆fore error ; ; perform followi┆ 0x093920…093940 6e 67 20 66 75 6e 63 74 69 6f 6e 73 0d 0a 3b 09 62 6f 6f 74 09 63 6f 6c 64 20 73 74 61 72 74 0d ┆ng functions ; boot cold start ┆ 0x093940…093960 0a 3b 09 77 62 6f 6f 74 09 77 61 72 6d 20 73 74 61 72 74 20 28 73 61 76 65 20 69 2f 6f 20 62 79 ┆ ; wboot warm start (save i/o by┆ 0x093960…093980 74 65 29 0d 0a 3b 09 28 62 6f 6f 74 20 61 6e 64 20 77 62 6f 6f 74 20 61 72 65 20 74 68 65 20 73 ┆te) ; (boot and wboot are the s┆ 0x093980…0939a0 61 6d 65 20 66 6f 72 20 6d 64 73 29 0d 0a 3b 09 63 6f 6e 73 74 09 63 6f 6e 73 6f 6c 65 20 73 74 ┆ame for mds) ; const console st┆ 0x0939a0…0939c0 61 74 75 73 0d 0a 3b 09 09 72 65 67 2d 61 20 3d 20 30 30 20 69 66 20 6e 6f 20 63 68 61 72 61 63 ┆atus ; reg-a = 00 if no charac┆ 0x0939c0…0939e0 74 65 72 20 72 65 61 64 79 0d 0a 3b 09 09 72 65 67 2d 61 20 3d 20 66 66 20 69 66 20 63 68 61 72 ┆ter ready ; reg-a = ff if char┆ 0x0939e0…093a00 61 63 74 65 72 20 72 65 61 64 79 0d 0a 3b 09 63 6f 6e 69 6e 09 63 6f 6e 73 6f 6c 65 20 63 68 61 ┆acter ready ; conin console cha┆ 0x093a00…093a20 (39, 0, 12) 65 20 61 6c 73 6f 20 61 73 73 75 6d 65 20 74 68 65 20 6d 64 73 20 73 79 73 74 65 6d 20 68 61 73 ┆e also assume the mds system has┆ 0x093a20…093a40 20 66 6f 75 72 20 64 69 73 6b 20 64 72 69 76 65 73 0d 0a 72 65 76 72 74 09 65 71 75 09 30 66 64 ┆ four disk drives revrt equ 0fd┆ 0x093a40…093a60 68 09 3b 69 6e 74 65 72 72 75 70 74 20 72 65 76 65 72 74 20 70 6f 72 74 0d 0a 69 6e 74 63 09 65 ┆h ;interrupt revert port intc e┆ 0x093a60…093a80 71 75 09 30 66 63 68 09 3b 69 6e 74 65 72 72 75 70 74 20 6d 61 73 6b 20 70 6f 72 74 0d 0a 69 63 ┆qu 0fch ;interrupt mask port ic┆ 0x093a80…093aa0 6f 6e 09 65 71 75 09 30 66 33 68 09 3b 69 6e 74 65 72 72 75 70 74 20 63 6f 6e 74 72 6f 6c 20 70 ┆on equ 0f3h ;interrupt control p┆ 0x093aa0…093ac0 6f 72 74 0d 0a 69 6e 74 65 09 65 71 75 09 30 31 31 31 24 31 31 31 30 62 09 3b 65 6e 61 62 6c 65 ┆ort inte equ 0111$1110b ;enable┆ 0x093ac0…093ae0 20 72 73 74 20 30 28 77 61 72 6d 20 62 6f 6f 74 29 2c 20 72 73 74 20 37 20 28 6d 6f 6e 69 74 6f ┆ rst 0(warm boot), rst 7 (monito┆ 0x093ae0…093b00 72 29 0d 0a 3b 0d 0a 3b 09 6d 64 73 20 6d 6f 6e 69 74 6f 72 20 65 71 75 61 74 65 73 0d 0a 6d 6f ┆r) ; ; mds monitor equates mo┆ 0x093b00…093b20 6e 38 30 09 65 71 75 09 30 66 38 30 30 68 09 3b 6d 64 73 20 6d 6f 6e 69 74 6f 72 0d 0a 72 6d 6f ┆n80 equ 0f800h ;mds monitor rmo┆ 0x093b20…093b40 6e 38 30 09 65 71 75 09 30 66 66 30 66 68 09 3b 72 65 73 74 61 72 74 20 6d 6f 6e 38 30 20 28 62 ┆n80 equ 0ff0fh ;restart mon80 (b┆ 0x093b40…093b60 6f 6f 74 20 65 72 72 6f 72 29 0d 0a 63 69 09 65 71 75 09 30 66 38 30 33 68 09 3b 63 6f 6e 73 6f ┆oot error) ci equ 0f803h ;conso┆ 0x093b60…093b80 6c 65 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 72 65 67 2d 61 0d 0a 72 69 09 65 71 75 09 30 66 ┆le character to reg-a ri equ 0f┆ 0x093b80…093ba0 38 30 36 68 09 3b 72 65 61 64 65 72 20 69 6e 20 74 6f 20 72 65 67 2d 61 0d 0a 63 6f 09 65 71 75 ┆806h ;reader in to reg-a co equ┆ 0x093ba0…093bc0 09 30 66 38 30 39 68 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 20 66 72 6f 6d 20 63 20 74 6f 20 ┆ 0f809h ;console char from c to ┆ 0x093bc0…093be0 63 6f 6e 73 6f 6c 65 20 6f 75 74 0d 0a 70 6f 09 65 71 75 09 30 66 38 30 63 68 09 3b 70 75 6e 63 ┆console out po equ 0f80ch ;punc┆ 0x093be0…093c00 68 20 63 68 61 72 20 66 72 6f 6d 20 63 20 74 6f 20 70 75 6e 63 68 20 64 65 76 69 63 65 0d 0a 6c ┆h char from c to punch device l┆ 0x093c00…093c20 (39, 0, 13) 09 3b 73 65 74 20 64 69 73 6b 20 73 65 6c 65 63 74 20 62 69 74 20 6f 6e 2f 6f 66 66 0d 0a 09 72 ┆ ;set disk select bit on/off r┆ 0x093c20…093c40 65 74 0d 0a 3b 0d 0a 77 61 69 74 69 6f 3a 0d 0a 09 6d 76 69 09 63 2c 72 65 74 72 79 09 3b 6d 61 ┆et ; waitio: mvi c,retry ;ma┆ 0x093c40…093c60 78 20 72 65 74 72 69 65 73 20 62 65 66 6f 72 65 20 70 65 72 6d 20 65 72 72 6f 72 0d 0a 72 65 77 ┆x retries before perm error rew┆ 0x093c60…093c80 61 69 74 3a 0d 0a 3b 09 73 74 61 72 74 20 74 68 65 20 69 2f 6f 20 66 75 6e 63 74 69 6f 6e 20 61 ┆ait: ; start the i/o function a┆ 0x093c80…093ca0 6e 64 20 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 69 6e ┆nd wait for completion call in┆ 0x093ca0…093cc0 74 79 70 65 09 3b 69 6e 20 72 74 79 70 65 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 09 3b 63 6c ┆type ;in rtype call inbyte ;cl┆ 0x093cc0…093ce0 65 61 72 73 20 74 68 65 20 63 6f 6e 74 72 6f 6c 6c 65 72 0d 0a 3b 0d 0a 09 6c 64 61 09 64 62 61 ┆ears the controller ; lda dba┆ 0x093ce0…093d00 6e 6b 09 09 3b 73 65 74 20 62 61 6e 6b 20 66 6c 61 67 73 0d 0a 09 6f 72 61 09 61 09 09 3b 7a 65 ┆nk ;set bank flags ora a ;ze┆ 0x093d00…093d20 72 6f 20 69 66 20 64 72 69 76 65 20 30 2c 31 20 61 6e 64 20 6e 7a 20 69 66 20 32 2c 33 0d 0a 09 ┆ro if drive 0,1 and nz if 2,3 ┆ 0x093d20…093d40 6d 76 69 09 61 2c 69 6f 70 62 20 61 6e 64 20 30 66 66 68 09 3b 6c 6f 77 20 61 64 64 72 65 73 73 ┆mvi a,iopb and 0ffh ;low address┆ 0x093d40…093d60 20 66 6f 72 20 69 6f 70 62 0d 0a 09 6d 76 69 09 62 2c 69 6f 70 62 20 73 68 72 20 38 09 3b 68 69 ┆ for iopb mvi b,iopb shr 8 ;hi┆ 0x093d60…093d80 67 68 20 61 64 64 72 65 73 73 20 66 6f 72 20 69 6f 70 62 0d 0a 09 6a 6e 7a 09 69 6f 64 72 31 09 ┆gh address for iopb jnz iodr1 ┆ 0x093d80…093da0 3b 64 72 69 76 65 20 62 61 6e 6b 20 31 3f 0d 0a 09 6f 75 74 09 69 6c 6f 77 09 09 3b 6c 6f 77 20 ┆;drive bank 1? out ilow ;low ┆ 0x093da0…093dc0 61 64 64 72 65 73 73 20 74 6f 20 63 6f 6e 74 72 6f 6c 6c 65 72 0d 0a 09 6d 6f 76 09 61 2c 62 0d ┆address to controller mov a,b ┆ 0x093dc0…093de0 0a 09 6f 75 74 09 69 68 69 67 68 09 3b 68 69 67 68 20 61 64 64 72 65 73 73 0d 0a 09 6a 6d 70 09 ┆ out ihigh ;high address jmp ┆ 0x093de0…093e00 77 61 69 74 30 09 09 3b 74 6f 20 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 65 0d 0a 3b 0d ┆wait0 ;to wait for complete ; ┆ 0x093e00…093e20 (39, 0, 14) 6e 74 3a 0d 0a 3b 09 72 65 67 69 73 74 65 72 20 63 20 63 6f 6e 74 61 69 6e 73 20 72 65 74 72 79 ┆nt: ; register c contains retry┆ 0x093e20…093e40 20 63 6f 75 6e 74 2c 20 64 65 63 72 65 6d 65 6e 74 20 27 74 69 6c 20 7a 65 72 6f 0d 0a 09 64 63 ┆ count, decrement 'til zero dc┆ 0x093e40…093e60 72 09 63 0d 0a 09 6a 6e 7a 09 72 65 77 61 69 74 09 3b 66 6f 72 20 61 6e 6f 74 68 65 72 20 74 72 ┆r c jnz rewait ;for another tr┆ 0x093e60…093e80 79 0d 0a 3b 0d 0a 3b 09 63 61 6e 6e 6f 74 20 72 65 63 6f 76 65 72 20 66 72 6f 6d 20 65 72 72 6f ┆y ; ; cannot recover from erro┆ 0x093e80…093ea0 72 0d 0a 09 6d 76 69 09 61 2c 31 09 3b 65 72 72 6f 72 20 63 6f 64 65 0d 0a 09 72 65 74 0d 0a 3b ┆r mvi a,1 ;error code ret ;┆ 0x093ea0…093ec0 0d 0a 3b 09 69 6e 74 79 70 65 2c 20 69 6e 62 79 74 65 2c 20 69 6e 73 74 61 74 20 72 65 61 64 20 ┆ ; intype, inbyte, instat read ┆ 0x093ec0…093ee0 64 72 69 76 65 20 62 61 6e 6b 20 30 30 20 6f 72 20 31 30 0d 0a 69 6e 74 79 70 65 3a 09 6c 64 61 ┆drive bank 00 or 10 intype: lda┆ 0x093ee0…093f00 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 74 79 70 31 09 3b 73 6b 69 ┆ dbank ora a jnz intyp1 ;ski┆ 0x093f00…093f20 70 20 74 6f 20 62 61 6e 6b 20 31 30 0d 0a 09 69 6e 09 72 74 79 70 65 0d 0a 09 72 65 74 0d 0a 69 ┆p to bank 10 in rtype ret i┆ 0x093f20…093f40 6e 74 79 70 31 3a 09 69 6e 09 72 74 79 70 65 2b 31 30 68 09 3b 37 38 20 66 6f 72 20 30 2c 31 20 ┆ntyp1: in rtype+10h ;78 for 0,1 ┆ 0x093f40…093f60 20 38 38 20 66 6f 72 20 32 2c 33 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 69 6e 62 79 74 65 3a 09 6c 64 ┆ 88 for 2,3 ret ; inbyte: ld┆ 0x093f60…093f80 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 62 79 74 31 0d 0a 09 69 ┆a dbank ora a jnz inbyt1 i┆ 0x093f80…093fa0 6e 09 72 62 79 74 65 0d 0a 09 72 65 74 0d 0a 69 6e 62 79 74 31 3a 09 69 6e 09 72 62 79 74 65 2b ┆n rbyte ret inbyt1: in rbyte+┆ 0x093fa0…093fc0 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 69 6e 73 74 61 74 3a 09 6c 64 61 09 64 62 61 6e 6b 0d ┆10h ret ; instat: lda dbank ┆ 0x093fc0…093fe0 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 73 74 61 31 0d 0a 09 69 6e 09 64 73 74 61 74 0d ┆ ora a jnz insta1 in dstat ┆ 0x093fe0…094000 0a 09 72 65 74 0d 0a 69 6e 73 74 61 31 3a 09 69 6e 09 64 73 74 61 74 2b 31 30 68 0d 0a 09 72 65 ┆ ret insta1: in dstat+10h re┆ 0x094000…094020 (39, 0, 15) 72 61 63 74 65 72 20 69 6e 20 28 72 65 73 75 6c 74 20 69 6e 20 72 65 67 2d 61 29 0d 0a 3b 09 63 ┆racter in (result in reg-a) ; c┆ 0x094020…094040 6f 6e 6f 75 74 09 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 6f 75 74 20 28 63 68 61 ┆onout console character out (cha┆ 0x094040…094060 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 6c 69 73 74 09 6c 69 73 74 20 6f 75 74 20 28 63 68 ┆r in reg-c) ; list list out (ch┆ 0x094060…094080 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 70 75 6e 63 68 09 70 75 6e 63 68 20 6f 75 74 20 ┆ar in reg-c) ; punch punch out ┆ 0x094080…0940a0 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 72 65 61 64 65 72 09 70 61 70 65 72 20 ┆(char in reg-c) ; reader paper ┆ 0x0940a0…0940c0 74 61 70 65 20 72 65 61 64 65 72 20 69 6e 20 28 72 65 73 75 6c 74 20 74 6f 20 72 65 67 2d 61 29 ┆tape reader in (result to reg-a)┆ 0x0940c0…0940e0 0d 0a 3b 09 68 6f 6d 65 09 6d 6f 76 65 20 74 6f 20 74 72 61 63 6b 20 30 30 0d 0a 3b 0d 0a 3b 09 ┆ ; home move to track 00 ; ; ┆ 0x0940e0…094100 28 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 61 6c 6c 73 20 73 65 74 2d 75 70 20 74 68 65 20 ┆(the following calls set-up the ┆ 0x094100…094120 69 6f 20 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 20 66 6f 72 20 74 68 65 0d 0a 3b 09 6d 64 ┆io parameter block for the ; md┆ 0x094120…094140 73 2c 20 77 68 69 63 68 20 69 73 20 75 73 65 64 20 74 6f 20 70 65 72 66 6f 72 6d 20 73 75 62 73 ┆s, which is used to perform subs┆ 0x094140…094160 65 71 75 65 6e 74 20 72 65 61 64 73 20 61 6e 64 20 77 72 69 74 65 73 29 0d 0a 3b 09 73 65 6c 64 ┆equent reads and writes) ; seld┆ 0x094160…094180 73 6b 09 73 65 6c 65 63 74 20 64 69 73 6b 20 67 69 76 65 6e 20 62 79 20 72 65 67 2d 63 20 28 30 ┆sk select disk given by reg-c (0┆ 0x094180…0941a0 2c 31 2c 32 2e 2e 2e 29 0d 0a 3b 09 73 65 74 74 72 6b 09 73 65 74 20 74 72 61 63 6b 20 61 64 64 ┆,1,2...) ; settrk set track add┆ 0x0941a0…0941c0 72 65 73 73 20 28 30 2c 2e 2e 2e 37 36 29 20 66 6f 72 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 ┆ress (0,...76) for subsequent re┆ 0x0941c0…0941e0 61 64 2f 77 72 69 74 65 0d 0a 3b 09 73 65 74 73 65 63 09 73 65 74 20 73 65 63 74 6f 72 20 61 64 ┆ad/write ; setsec set sector ad┆ 0x0941e0…094200 64 72 65 73 73 20 28 31 2c 2e 2e 2e 2c 32 36 29 20 66 6f 72 20 73 75 62 73 65 71 75 65 6e 74 20 ┆dress (1,...,26) for subsequent ┆ 0x094200…094220 (39, 1, 1) 6f 09 65 71 75 09 30 66 38 30 66 68 09 3b 6c 69 73 74 20 66 72 6f 6d 20 63 20 74 6f 20 6c 69 73 ┆o equ 0f80fh ;list from c to lis┆ 0x094220…094240 74 20 64 65 76 69 63 65 0d 0a 63 73 74 73 09 65 71 75 09 30 66 38 31 32 68 09 3b 63 6f 6e 73 6f ┆t device csts equ 0f812h ;conso┆ 0x094240…094260 6c 65 20 73 74 61 74 75 73 20 30 30 2f 66 66 20 74 6f 20 72 65 67 69 73 74 65 72 20 61 0d 0a 3b ┆le status 00/ff to register a ;┆ 0x094260…094280 0d 0a 3b 09 64 69 73 6b 20 70 6f 72 74 73 20 61 6e 64 20 63 6f 6d 6d 61 6e 64 73 0d 0a 62 61 73 ┆ ; disk ports and commands bas┆ 0x094280…0942a0 65 09 65 71 75 09 37 38 68 09 3b 62 61 73 65 20 6f 66 20 64 69 73 6b 20 63 6f 6d 6d 61 6e 64 20 ┆e equ 78h ;base of disk command ┆ 0x0942a0…0942c0 69 6f 20 70 6f 72 74 73 0d 0a 64 73 74 61 74 09 65 71 75 09 62 61 73 65 09 3b 64 69 73 6b 20 73 ┆io ports dstat equ base ;disk s┆ 0x0942c0…0942e0 74 61 74 75 73 20 28 69 6e 70 75 74 29 0d 0a 72 74 79 70 65 09 65 71 75 09 62 61 73 65 2b 31 09 ┆tatus (input) rtype equ base+1 ┆ 0x0942e0…094300 3b 72 65 73 75 6c 74 20 74 79 70 65 20 28 69 6e 70 75 74 29 0d 0a 72 62 79 74 65 09 65 71 75 09 ┆;result type (input) rbyte equ ┆ 0x094300…094320 62 61 73 65 2b 33 09 3b 72 65 73 75 6c 74 20 62 79 74 65 20 28 69 6e 70 75 74 29 0d 0a 3b 0d 0a ┆base+3 ;result byte (input) ; ┆ 0x094320…094340 69 6c 6f 77 09 65 71 75 09 62 61 73 65 2b 31 09 3b 69 6f 70 62 20 6c 6f 77 20 61 64 64 72 65 73 ┆ilow equ base+1 ;iopb low addres┆ 0x094340…094360 73 20 28 6f 75 74 70 75 74 29 0d 0a 69 68 69 67 68 09 65 71 75 09 62 61 73 65 2b 32 09 3b 69 6f ┆s (output) ihigh equ base+2 ;io┆ 0x094360…094380 70 62 20 68 69 67 68 20 61 64 64 72 65 73 73 20 28 6f 75 74 70 75 74 29 0d 0a 3b 0d 0a 72 65 61 ┆pb high address (output) ; rea┆ 0x094380…0943a0 64 66 09 65 71 75 09 34 68 09 3b 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 77 72 69 74 66 09 ┆df equ 4h ;read function writf ┆ 0x0943a0…0943c0 65 71 75 09 36 68 09 3b 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 72 65 63 61 6c 09 65 71 ┆equ 6h ;write function recal eq┆ 0x0943c0…0943e0 75 09 33 68 09 3b 72 65 63 61 6c 69 62 72 61 74 65 20 64 72 69 76 65 0d 0a 69 6f 72 64 79 09 65 ┆u 3h ;recalibrate drive iordy e┆ 0x0943e0…094400 71 75 09 34 68 09 3b 69 2f 6f 20 66 69 6e 69 73 68 65 64 20 6d 61 73 6b 0d 0a 63 72 09 65 71 75 ┆qu 4h ;i/o finished mask cr equ┆ 0x094400…094420 (39, 1, 2) 76 09 63 2c 61 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 0d 0a 09 63 61 6c 6c 09 73 65 74 ┆v c,a ;ready for call call set┆ 0x094420…094440 74 72 6b 0d 0a 09 78 72 61 09 61 09 3b 63 6c 65 61 72 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 ┆trk xra a ;clear sector number┆ 0x094440…094460 0d 0a 72 64 31 3a 09 69 6e 72 09 61 09 3b 74 6f 20 6e 65 78 74 20 73 65 63 74 6f 72 0d 0a 09 6d ┆ rd1: inr a ;to next sector m┆ 0x094460…094480 6f 76 09 63 2c 61 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 0d 0a 09 63 61 6c 6c 09 73 65 ┆ov c,a ;ready for call call se┆ 0x094480…0944a0 74 73 65 63 0d 0a 09 70 6f 70 09 62 09 3b 72 65 63 61 6c 6c 20 73 65 63 74 6f 72 20 63 6f 75 6e ┆tsec pop b ;recall sector coun┆ 0x0944a0…0944c0 74 0d 0a 09 64 63 72 09 62 09 3b 64 6f 6e 65 3f 0d 0a 09 6a 6e 7a 09 72 64 73 65 63 0d 0a 3b 0d ┆t dcr b ;done? jnz rdsec ; ┆ 0x0944c0…0944e0 0a 3b 09 64 6f 6e 65 20 77 69 74 68 20 74 68 65 20 6c 6f 61 64 2c 20 72 65 73 65 74 20 64 65 66 ┆ ; done with the load, reset def┆ 0x0944e0…094500 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 0d 0a 67 6f 63 70 6d 3a 09 3b 28 65 6e ┆ault buffer address gocpm: ;(en┆ 0x094500…094520 74 65 72 20 68 65 72 65 20 66 72 6f 6d 20 63 6f 6c 64 20 73 74 61 72 74 20 62 6f 6f 74 29 0d 0a ┆ter here from cold start boot) ┆ 0x094520…094540 3b 09 65 6e 61 62 6c 65 20 72 73 74 30 20 61 6e 64 20 72 73 74 37 0d 0a 09 64 69 0d 0a 09 6d 76 ┆; enable rst0 and rst7 di mv┆ 0x094540…094560 69 09 61 2c 31 32 68 09 3b 69 6e 69 74 69 61 6c 69 7a 65 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6f 75 ┆i a,12h ;initialize command ou┆ 0x094560…094580 74 09 72 65 76 72 74 0d 0a 09 78 72 61 09 61 0d 0a 09 6f 75 74 09 69 6e 74 63 09 3b 63 6c 65 61 ┆t revrt xra a out intc ;clea┆ 0x094580…0945a0 72 65 64 0d 0a 09 6d 76 69 09 61 2c 69 6e 74 65 09 3b 72 73 74 30 20 61 6e 64 20 72 73 74 37 20 ┆red mvi a,inte ;rst0 and rst7 ┆ 0x0945a0…0945c0 62 69 74 73 20 6f 6e 0d 0a 09 6f 75 74 09 69 6e 74 63 0d 0a 09 78 72 61 09 61 0d 0a 09 6f 75 74 ┆bits on out intc xra a out┆ 0x0945c0…0945e0 09 69 63 6f 6e 09 3b 69 6e 74 65 72 72 75 70 74 20 63 6f 6e 74 72 6f 6c 0d 0a 3b 0d 0a 3b 09 73 ┆ icon ;interrupt control ; ; s┆ 0x0945e0…094600 65 74 20 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 20 74 6f 20 38 30 68 ┆et default buffer address to 80h┆ 0x094600…094620 (39, 1, 3) 2c 33 0d 0a 09 73 74 61 09 64 62 61 6e 6b 09 3b 74 6f 20 73 65 6c 65 63 74 20 64 72 69 76 65 20 ┆,3 sta dbank ;to select drive ┆ 0x094620…094640 62 61 6e 6b 0d 0a 09 6d 6f 76 09 61 2c 63 09 3b 30 30 2c 20 30 31 2c 20 31 30 2c 20 31 31 0d 0a ┆bank mov a,c ;00, 01, 10, 11 ┆ 0x094640…094660 09 61 6e 69 09 31 62 09 3b 6d 64 73 20 68 61 73 20 30 2c 31 20 61 74 20 37 38 2c 20 32 2c 33 20 ┆ ani 1b ;mds has 0,1 at 78, 2,3 ┆ 0x094660…094680 61 74 20 38 38 0d 0a 09 6f 72 61 09 61 09 3b 72 65 73 75 6c 74 20 30 30 3f 0d 0a 09 6a 7a 09 73 ┆at 88 ora a ;result 00? jz s┆ 0x094680…0946a0 65 74 64 72 69 76 65 0d 0a 09 6d 76 69 09 61 2c 30 30 31 31 30 30 30 30 62 09 3b 73 65 6c 65 63 ┆etdrive mvi a,00110000b ;selec┆ 0x0946a0…0946c0 74 73 20 64 72 69 76 65 20 31 20 69 6e 20 62 61 6e 6b 0d 0a 73 65 74 64 72 69 76 65 3a 0d 0a 09 ┆ts drive 1 in bank setdrive: ┆ 0x0946c0…0946e0 6d 6f 76 09 62 2c 61 09 3b 73 61 76 65 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6c 78 69 ┆mov b,a ;save the function lxi┆ 0x0946e0…094700 09 68 2c 69 6f 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6d 6f 76 09 61 2c 6d 0d 0a 09 ┆ h,iof ;io function mov a,m ┆ 0x094700…094720 61 6e 69 09 31 31 30 30 31 31 31 31 62 09 3b 6d 61 73 6b 20 6f 75 74 20 64 69 73 6b 20 6e 75 6d ┆ani 11001111b ;mask out disk num┆ 0x094720…094740 62 65 72 0d 0a 09 6f 72 61 09 62 09 3b 6d 61 73 6b 20 69 6e 20 6e 65 77 20 64 69 73 6b 20 6e 75 ┆ber ora b ;mask in new disk nu┆ 0x094740…094760 6d 62 65 72 0d 0a 09 6d 6f 76 09 6d 2c 61 09 3b 73 61 76 65 20 69 74 20 69 6e 20 69 6f 70 62 0d ┆mber mov m,a ;save it in iopb ┆ 0x094760…094780 0a 09 6d 6f 76 09 6c 2c 63 0d 0a 09 6d 76 69 09 68 2c 30 09 3b 48 4c 3d 64 69 73 6b 20 6e 75 6d ┆ mov l,c mvi h,0 ;HL=disk num┆ 0x094780…0947a0 62 65 72 0d 0a 09 64 61 64 09 68 09 3b 2a 32 0d 0a 09 64 61 64 09 68 09 3b 2a 34 0d 0a 09 64 61 ┆ber dad h ;*2 dad h ;*4 da┆ 0x0947a0…0947c0 64 09 68 09 3b 2a 38 0d 0a 09 64 61 64 09 68 09 3b 2a 31 36 0d 0a 09 6c 78 69 09 64 2c 64 70 62 ┆d h ;*8 dad h ;*16 lxi d,dpb┆ 0x0947c0…0947e0 61 73 65 0d 0a 09 64 61 64 09 64 09 3b 48 4c 3d 64 69 73 6b 20 68 65 61 64 65 72 20 74 61 62 6c ┆ase dad d ;HL=disk header tabl┆ 0x0947e0…094800 65 20 61 64 64 72 65 73 73 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 73 65 74 74 72 6b 3a 09 3b ┆e address ret ; ; settrk: ;┆ 0x094800…094820 (39, 1, 4) 0d 0a 72 65 77 61 69 74 3a 0d 0a 3b 09 73 74 61 72 74 20 74 68 65 20 69 2f 6f 20 66 75 6e 63 74 ┆ rewait: ; start the i/o funct┆ 0x094820…094840 69 6f 6e 20 61 6e 64 20 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 0d 0a 09 63 61 ┆ion and wait for completion ca┆ 0x094840…094860 6c 6c 09 69 6e 74 79 70 65 09 3b 69 6e 20 72 74 79 70 65 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 ┆ll intype ;in rtype call inbyt┆ 0x094860…094880 65 09 3b 63 6c 65 61 72 73 20 74 68 65 20 63 6f 6e 74 72 6f 6c 6c 65 72 0d 0a 3b 0d 0a 09 6c 64 ┆e ;clears the controller ; ld┆ 0x094880…0948a0 61 09 64 62 61 6e 6b 09 09 3b 73 65 74 20 62 61 6e 6b 20 66 6c 61 67 73 0d 0a 09 6f 72 61 09 61 ┆a dbank ;set bank flags ora a┆ 0x0948a0…0948c0 09 09 3b 7a 65 72 6f 20 69 66 20 64 72 69 76 65 20 30 2c 31 20 61 6e 64 20 6e 7a 20 69 66 20 32 ┆ ;zero if drive 0,1 and nz if 2┆ 0x0948c0…0948e0 2c 33 0d 0a 09 6d 76 69 09 61 2c 69 6f 70 62 20 61 6e 64 20 30 66 66 68 09 3b 6c 6f 77 20 61 64 ┆,3 mvi a,iopb and 0ffh ;low ad┆ 0x0948e0…094900 64 72 65 73 73 20 66 6f 72 20 69 6f 70 62 0d 0a 09 6d 76 69 09 62 2c 69 6f 70 62 20 73 68 72 20 ┆dress for iopb mvi b,iopb shr ┆ 0x094900…094920 38 09 3b 68 69 67 68 20 61 64 64 72 65 73 73 20 66 6f 72 20 69 6f 70 62 0d 0a 09 6a 6e 7a 09 69 ┆8 ;high address for iopb jnz i┆ 0x094920…094940 6f 64 72 31 09 3b 64 72 69 76 65 20 62 61 6e 6b 20 31 3f 0d 0a 09 6f 75 74 09 69 6c 6f 77 09 09 ┆odr1 ;drive bank 1? out ilow ┆ 0x094940…094960 3b 6c 6f 77 20 61 64 64 72 65 73 73 20 74 6f 20 63 6f 6e 74 72 6f 6c 6c 65 72 0d 0a 09 6d 6f 76 ┆;low address to controller mov┆ 0x094960…094980 09 61 2c 62 0d 0a 09 6f 75 74 09 69 68 69 67 68 09 3b 68 69 67 68 20 61 64 64 72 65 73 73 0d 0a ┆ a,b out ihigh ;high address ┆ 0x094980…0949a0 09 6a 6d 70 09 77 61 69 74 30 09 09 3b 74 6f 20 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 ┆ jmp wait0 ;to wait for complet┆ 0x0949a0…0949c0 65 0d 0a 3b 0d 0a 69 6f 64 72 31 3a 09 3b 64 72 69 76 65 20 62 61 6e 6b 20 31 0d 0a 09 6f 75 74 ┆e ; iodr1: ;drive bank 1 out┆ 0x0949c0…0949e0 09 69 6c 6f 77 2b 31 30 68 09 3b 38 38 20 66 6f 72 20 64 72 69 76 65 20 62 61 6e 6b 20 31 30 0d ┆ ilow+10h ;88 for drive bank 10 ┆ 0x0949e0…094a00 0a 09 6d 6f 76 09 61 2c 62 0d 0a 09 6f 75 74 09 69 68 69 67 68 2b 31 30 68 0d 0a 3b 0d 0a 77 61 ┆ mov a,b out ihigh+10h ; wa┆ 0x094a00…094a20 (39, 1, 5) 09 30 64 68 09 3b 63 61 72 72 69 61 67 65 20 72 65 74 75 72 6e 0d 0a 6c 66 09 65 71 75 09 30 61 ┆ 0dh ;carriage return lf equ 0a┆ 0x094a20…094a40 68 09 3b 6c 69 6e 65 20 66 65 65 64 0d 0a 3b 0d 0a 73 69 67 6e 6f 6e 3a 09 3b 73 69 67 6e 6f 6e ┆h ;line feed ; signon: ;signon┆ 0x094a40…094a60 20 6d 65 73 73 61 67 65 3a 20 78 78 6b 20 63 70 2f 6d 20 76 65 72 73 20 79 2e 79 0d 0a 09 64 62 ┆ message: xxk cp/m vers y.y db┆ 0x094a60…094a80 09 63 72 2c 6c 66 2c 6c 66 0d 0a 09 69 66 09 74 65 73 74 0d 0a 09 64 62 09 27 33 32 27 09 3b 33 ┆ cr,lf,lf if test db '32' ;3┆ 0x094a80…094aa0 32 6b 20 65 78 61 6d 70 6c 65 20 62 69 6f 73 0d 0a 09 65 6e 64 69 66 0d 0a 09 69 66 09 6e 6f 74 ┆2k example bios endif if not┆ 0x094aa0…094ac0 20 74 65 73 74 0d 0a 09 64 62 09 27 30 30 27 09 3b 6d 65 6d 6f 72 79 20 73 69 7a 65 20 66 69 6c ┆ test db '00' ;memory size fil┆ 0x094ac0…094ae0 6c 65 64 20 62 79 20 72 65 6c 6f 63 61 74 6f 72 0d 0a 09 65 6e 64 69 66 0d 0a 09 64 62 09 27 6b ┆led by relocator endif db 'k┆ 0x094ae0…094b00 20 43 50 2f 4d 20 76 65 72 73 20 27 0d 0a 09 64 62 09 76 65 72 73 2f 31 30 2b 27 30 27 2c 27 2e ┆ CP/M vers ' db vers/10+'0','.┆ 0x094b00…094b20 27 2c 76 65 72 73 20 6d 6f 64 20 31 30 2b 27 30 27 0d 0a 09 64 62 09 63 72 2c 6c 66 2c 30 0d 0a ┆',vers mod 10+'0' db cr,lf,0 ┆ 0x094b20…094b40 3b 0d 0a 62 6f 6f 74 3a 09 3b 70 72 69 6e 74 20 73 69 67 6e 6f 6e 20 6d 65 73 73 61 67 65 20 61 ┆; boot: ;print signon message a┆ 0x094b40…094b60 6e 64 20 67 6f 20 74 6f 20 63 63 70 0d 0a 3b 09 28 6e 6f 74 65 3a 20 6d 64 73 20 62 6f 6f 74 20 ┆nd go to ccp ; (note: mds boot ┆ 0x094b60…094b80 69 6e 69 74 69 61 6c 69 7a 65 64 20 69 6f 62 79 74 65 20 61 74 20 30 30 30 33 68 29 0d 0a 09 6c ┆initialized iobyte at 0003h) l┆ 0x094b80…094ba0 78 69 09 73 70 2c 62 75 66 66 2b 38 30 68 0d 0a 09 6c 78 69 09 68 2c 73 69 67 6e 6f 6e 0d 0a 09 ┆xi sp,buff+80h lxi h,signon ┆ 0x094ba0…094bc0 63 61 6c 6c 09 70 72 6d 73 67 09 3b 70 72 69 6e 74 20 6d 65 73 73 61 67 65 0d 0a 09 78 72 61 09 ┆call prmsg ;print message xra ┆ 0x094bc0…094be0 61 09 3b 63 6c 65 61 72 20 61 63 63 75 6d 75 6c 61 74 6f 72 0d 0a 09 73 74 61 09 63 64 69 73 6b ┆a ;clear accumulator sta cdisk┆ 0x094be0…094c00 09 3b 73 65 74 20 69 6e 69 74 69 61 6c 6c 79 20 74 6f 20 64 69 73 6b 20 61 0d 0a 09 6a 6d 70 09 ┆ ;set initially to disk a jmp ┆ 0x094c00…094c20 (39, 1, 6) 0d 0a 09 6c 78 69 09 62 2c 62 75 66 66 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 3b 0d 0a ┆ lxi b,buff call setdma ; ┆ 0x094c20…094c40 3b 09 72 65 73 65 74 20 6d 6f 6e 69 74 6f 72 20 65 6e 74 72 79 20 70 6f 69 6e 74 73 0d 0a 09 6d ┆; reset monitor entry points m┆ 0x094c40…094c60 76 69 09 61 2c 6a 6d 70 0d 0a 09 73 74 61 09 30 0d 0a 09 6c 78 69 09 68 2c 77 62 6f 6f 74 65 0d ┆vi a,jmp sta 0 lxi h,wboote ┆ 0x094c60…094c80 0a 09 73 68 6c 64 09 31 09 3b 6a 6d 70 20 77 62 6f 6f 74 20 61 74 20 6c 6f 63 61 74 69 6f 6e 20 ┆ shld 1 ;jmp wboot at location ┆ 0x094c80…094ca0 30 30 0d 0a 09 73 74 61 09 35 0d 0a 09 6c 78 69 09 68 2c 62 64 6f 73 0d 0a 09 73 68 6c 64 09 36 ┆00 sta 5 lxi h,bdos shld 6┆ 0x094ca0…094cc0 09 3b 6a 6d 70 20 62 64 6f 73 20 61 74 20 6c 6f 63 61 74 69 6f 6e 20 35 0d 0a 09 69 66 09 6e 6f ┆ ;jmp bdos at location 5 if no┆ 0x094cc0…094ce0 74 20 74 65 73 74 0d 0a 09 73 74 61 09 37 2a 38 09 3b 6a 6d 70 20 74 6f 20 6d 6f 6e 38 30 20 28 ┆t test sta 7*8 ;jmp to mon80 (┆ 0x094ce0…094d00 6d 61 79 20 68 61 76 65 20 62 65 65 6e 20 63 68 61 6e 67 65 64 20 62 79 20 64 64 74 29 0d 0a 09 ┆may have been changed by ddt) ┆ 0x094d00…094d20 6c 78 69 09 68 2c 6d 6f 6e 38 30 0d 0a 09 73 68 6c 64 09 37 2a 38 2b 31 0d 0a 09 65 6e 64 69 66 ┆lxi h,mon80 shld 7*8+1 endif┆ 0x094d20…094d40 0d 0a 3b 09 6c 65 61 76 65 20 69 6f 62 79 74 65 20 73 65 74 0d 0a 3b 09 70 72 65 76 69 6f 75 73 ┆ ; leave iobyte set ; previous┆ 0x094d40…094d60 6c 79 20 73 65 6c 65 63 74 65 64 20 64 69 73 6b 20 77 61 73 20 62 2c 20 73 65 6e 64 20 70 61 72 ┆ly selected disk was b, send par┆ 0x094d60…094d80 61 6d 65 74 65 72 20 74 6f 20 63 70 6d 0d 0a 09 6c 64 61 09 63 64 69 73 6b 09 3b 6c 61 73 74 20 ┆ameter to cpm lda cdisk ;last ┆ 0x094d80…094da0 6c 6f 67 67 65 64 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 73 65 ┆logged disk number mov c,a ;se┆ 0x094da0…094dc0 6e 64 20 74 6f 20 63 63 70 20 74 6f 20 6c 6f 67 20 69 74 20 69 6e 0d 0a 09 65 69 0d 0a 09 6a 6d ┆nd to ccp to log it in ei jm┆ 0x094dc0…094de0 70 09 63 70 6d 62 0d 0a 3b 0d 0a 3b 09 65 72 72 6f 72 20 63 6f 6e 64 69 74 69 6f 6e 20 6f 63 63 ┆p cpmb ; ; error condition occ┆ 0x094de0…094e00 75 72 72 65 64 2c 20 70 72 69 6e 74 20 6d 65 73 73 61 67 65 20 61 6e 64 20 72 65 74 72 79 0d 0a ┆urred, print message and retry ┆ 0x094e00…094e20 (39, 1, 7) 73 65 74 20 74 72 61 63 6b 20 61 64 64 72 65 73 73 20 67 69 76 65 6e 20 62 79 20 63 0d 0a 09 6c ┆set track address given by c l┆ 0x094e20…094e40 78 69 09 68 2c 69 6f 74 0d 0a 09 6d 6f 76 09 6d 2c 63 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 73 65 74 ┆xi h,iot mov m,c ret ; set┆ 0x094e40…094e60 73 65 63 3a 09 3b 73 65 74 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 67 69 76 65 6e 20 62 79 ┆sec: ;set sector number given by┆ 0x094e60…094e80 20 63 0d 0a 09 6c 78 69 09 68 2c 69 6f 73 0d 0a 09 6d 6f 76 09 6d 2c 63 0d 0a 09 72 65 74 0d 0a ┆ c lxi h,ios mov m,c ret ┆ 0x094e80…094ea0 73 65 63 74 72 61 6e 3a 0d 0a 09 09 3b 74 72 61 6e 73 6c 61 74 65 20 73 65 63 74 6f 72 20 62 63 ┆sectran: ;translate sector bc┆ 0x094ea0…094ec0 20 75 73 69 6e 67 20 74 61 62 6c 65 20 61 74 20 64 65 0d 0a 09 6d 76 69 09 62 2c 30 09 3b 64 6f ┆ using table at de mvi b,0 ;do┆ 0x094ec0…094ee0 75 62 6c 65 20 70 72 65 63 69 73 69 6f 6e 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 69 6e 20 ┆uble precision sector number in ┆ 0x094ee0…094f00 42 43 0d 0a 09 78 63 68 67 09 09 3b 74 72 61 6e 73 6c 61 74 65 20 74 61 62 6c 65 20 61 64 64 72 ┆BC xchg ;translate table addr┆ 0x094f00…094f20 65 73 73 20 74 6f 20 48 4c 0d 0a 09 64 61 64 09 62 09 3b 74 72 61 6e 73 6c 61 74 65 28 73 65 63 ┆ess to HL dad b ;translate(sec┆ 0x094f20…094f40 74 6f 72 29 20 61 64 64 72 65 73 73 0d 0a 09 6d 6f 76 09 61 2c 6d 09 3b 74 72 61 6e 73 6c 61 74 ┆tor) address mov a,m ;translat┆ 0x094f40…094f60 65 64 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 74 6f 20 41 0d 0a 09 73 74 61 09 69 6f 73 0d ┆ed sector number to A sta ios ┆ 0x094f60…094f80 0a 09 6d 6f 76 09 6c 2c 61 09 3b 72 65 74 75 72 6e 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 ┆ mov l,a ;return sector number ┆ 0x094f80…094fa0 69 6e 20 4c 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 73 65 74 64 6d 61 3a 09 3b 73 65 74 20 64 6d 61 20 ┆in L ret ; setdma: ;set dma ┆ 0x094fa0…094fc0 61 64 64 72 65 73 73 20 67 69 76 65 6e 20 62 79 20 72 65 67 73 20 62 2c 63 0d 0a 09 6d 6f 76 09 ┆address given by regs b,c mov ┆ 0x094fc0…094fe0 6c 2c 63 0d 0a 09 6d 6f 76 09 68 2c 62 0d 0a 09 73 68 6c 64 09 69 6f 64 0d 0a 09 72 65 74 0d 0a ┆l,c mov h,b shld iod ret ┆ 0x094fe0…095000 3b 0d 0a 72 65 61 64 3a 09 3b 72 65 61 64 20 6e 65 78 74 20 64 69 73 6b 20 72 65 63 6f 72 64 20 ┆; read: ;read next disk record ┆ 0x095000…095020 (39, 1, 8) 69 74 30 3a 09 63 61 6c 6c 09 69 6e 73 74 61 74 09 09 3b 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 ┆it0: call instat ;wait for comp┆ 0x095020…095040 6c 65 74 69 6f 6e 0d 0a 09 61 6e 69 09 69 6f 72 64 79 09 09 3b 72 65 61 64 79 3f 0d 0a 09 6a 7a ┆letion ani iordy ;ready? jz┆ 0x095040…095060 09 77 61 69 74 30 0d 0a 3b 0d 0a 3b 09 63 68 65 63 6b 20 69 6f 20 63 6f 6d 70 6c 65 74 69 6f 6e ┆ wait0 ; ; check io completion┆ 0x095060…095080 20 6f 6b 0d 0a 09 63 61 6c 6c 09 69 6e 74 79 70 65 09 09 3b 6d 75 73 74 20 62 65 20 69 6f 20 63 ┆ ok call intype ;must be io c┆ 0x095080…0950a0 6f 6d 70 6c 65 74 65 20 28 30 30 29 20 75 6e 6c 69 6e 6b 65 64 0d 0a 3b 09 30 30 20 75 6e 6c 69 ┆omplete (00) unlinked ; 00 unli┆ 0x0950a0…0950c0 6e 6b 65 64 20 69 2f 6f 20 63 6f 6d 70 6c 65 74 65 2c 20 20 20 20 30 31 20 6c 69 6e 6b 65 64 20 ┆nked i/o complete, 01 linked ┆ 0x0950c0…0950e0 69 2f 6f 20 63 6f 6d 70 6c 65 74 65 20 28 6e 6f 74 20 75 73 65 64 29 0d 0a 3b 09 31 30 20 64 69 ┆i/o complete (not used) ; 10 di┆ 0x0950e0…095100 73 6b 20 73 74 61 74 75 73 20 63 68 61 6e 67 65 64 20 20 20 20 20 20 20 31 31 20 28 6e 6f 74 20 ┆sk status changed 11 (not ┆ 0x095100…095120 75 73 65 64 29 0d 0a 09 63 70 69 09 31 30 62 09 09 3b 72 65 61 64 79 20 73 74 61 74 75 73 20 63 ┆used) cpi 10b ;ready status c┆ 0x095120…095140 68 61 6e 67 65 3f 0d 0a 09 6a 7a 09 77 72 65 61 64 79 0d 0a 3b 0d 0a 3b 09 6d 75 73 74 20 62 65 ┆hange? jz wready ; ; must be┆ 0x095140…095160 20 30 30 20 69 6e 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 0d 0a 09 6f 72 61 09 61 0d 0a ┆ 00 in the accumulator ora a ┆ 0x095160…095180 09 6a 6e 7a 09 77 65 72 72 6f 72 09 09 3b 73 6f 6d 65 20 6f 74 68 65 72 20 63 6f 6e 64 69 74 69 ┆ jnz werror ;some other conditi┆ 0x095180…0951a0 6f 6e 2c 20 72 65 74 72 79 0d 0a 3b 0d 0a 3b 09 63 68 65 63 6b 20 69 2f 6f 20 65 72 72 6f 72 20 ┆on, retry ; ; check i/o error ┆ 0x0951a0…0951c0 62 69 74 73 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 0d 0a 09 72 61 6c 0d 0a 09 6a 63 09 77 72 ┆bits call inbyte ral jc wr┆ 0x0951c0…0951e0 65 61 64 79 09 09 3b 75 6e 69 74 20 6e 6f 74 20 72 65 61 64 79 0d 0a 09 72 61 72 0d 0a 09 61 6e ┆eady ;unit not ready rar an┆ 0x0951e0…095200 69 09 31 31 31 31 31 31 31 30 62 09 3b 61 6e 79 20 6f 74 68 65 72 20 65 72 72 6f 72 73 3f 20 20 ┆i 11111110b ;any other errors? ┆ 0x095200…095220 (39, 1, 9) 67 6f 63 70 6d 09 3b 67 6f 20 74 6f 20 63 70 2f 6d 0d 0a 3b 0d 0a 3b 0d 0a 77 62 6f 6f 74 3a 3b ┆gocpm ;go to cp/m ; ; wboot:;┆ 0x095220…095240 09 6c 6f 61 64 65 72 20 6f 6e 20 74 72 61 63 6b 20 30 2c 20 73 65 63 74 6f 72 20 31 2c 20 77 68 ┆ loader on track 0, sector 1, wh┆ 0x095240…095260 69 63 68 20 77 69 6c 6c 20 62 65 20 73 6b 69 70 70 65 64 20 66 6f 72 20 77 61 72 6d 20 0d 0a 3b ┆ich will be skipped for warm ;┆ 0x095260…095280 09 72 65 61 64 20 63 70 2f 6d 20 66 72 6f 6d 20 64 69 73 6b 20 2d 20 61 73 73 75 6d 69 6e 67 20 ┆ read cp/m from disk - assuming ┆ 0x095280…0952a0 74 68 65 72 65 20 69 73 20 61 20 31 32 38 20 62 79 74 65 20 63 6f 6c 64 20 73 74 61 72 74 0d 0a ┆there is a 128 byte cold start ┆ 0x0952a0…0952c0 3b 09 73 74 61 72 74 2e 0d 0a 3b 0d 0a 09 6c 78 69 09 73 70 2c 62 75 66 66 09 3b 75 73 69 6e 67 ┆; start. ; lxi sp,buff ;using┆ 0x0952c0…0952e0 20 64 6d 61 20 2d 20 74 68 75 73 20 38 30 20 74 68 72 75 20 66 66 20 61 76 61 69 6c 61 62 6c 65 ┆ dma - thus 80 thru ff available┆ 0x0952e0…095300 20 66 6f 72 20 73 74 61 63 6b 0d 0a 3b 0d 0a 09 6d 76 69 09 63 2c 72 65 74 72 79 09 3b 6d 61 78 ┆ for stack ; mvi c,retry ;max┆ 0x095300…095320 20 72 65 74 72 69 65 73 0d 0a 09 70 75 73 68 09 62 0d 0a 77 62 6f 6f 74 30 3a 09 3b 65 6e 74 65 ┆ retries push b wboot0: ;ente┆ 0x095320…095340 72 20 68 65 72 65 20 6f 6e 20 65 72 72 6f 72 20 72 65 74 72 69 65 73 0d 0a 09 6c 78 69 09 62 2c ┆r here on error retries lxi b,┆ 0x095340…095360 63 70 6d 62 09 3b 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 74 6f 20 73 74 61 72 74 20 6f ┆cpmb ;set dma address to start o┆ 0x095360…095380 66 20 64 69 73 6b 20 73 79 73 74 65 6d 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 09 6d 76 ┆f disk system call setdma mv┆ 0x095380…0953a0 69 09 63 2c 30 09 3b 62 6f 6f 74 20 66 72 6f 6d 20 64 72 69 76 65 20 30 0d 0a 09 63 61 6c 6c 09 ┆i c,0 ;boot from drive 0 call ┆ 0x0953a0…0953c0 73 65 6c 64 73 6b 0d 0a 09 6d 76 69 09 63 2c 30 0d 0a 09 63 61 6c 6c 09 73 65 74 74 72 6b 09 3b ┆seldsk mvi c,0 call settrk ;┆ 0x0953c0…0953e0 73 74 61 72 74 20 77 69 74 68 20 74 72 61 63 6b 20 30 0d 0a 09 6d 76 69 09 63 2c 32 09 3b 73 74 ┆start with track 0 mvi c,2 ;st┆ 0x0953e0…095400 61 72 74 20 72 65 61 64 69 6e 67 20 73 65 63 74 6f 72 20 32 0d 0a 09 63 61 6c 6c 09 73 65 74 73 ┆art reading sector 2 call sets┆ 0x095400…095420 (39, 1, 10) 62 6f 6f 74 65 72 72 3a 0d 0a 09 70 6f 70 09 62 09 3b 72 65 63 61 6c 6c 20 63 6f 75 6e 74 73 0d ┆booterr: pop b ;recall counts ┆ 0x095420…095440 0a 09 64 63 72 09 63 0d 0a 09 6a 7a 09 62 6f 6f 74 65 72 30 0d 0a 3b 09 74 72 79 20 61 67 61 69 ┆ dcr c jz booter0 ; try agai┆ 0x095440…095460 6e 0d 0a 09 70 75 73 68 09 62 0d 0a 09 6a 6d 70 09 77 62 6f 6f 74 30 0d 0a 3b 0d 0a 62 6f 6f 74 ┆n push b jmp wboot0 ; boot┆ 0x095460…095480 65 72 30 3a 0d 0a 3b 09 6f 74 68 65 72 77 69 73 65 20 74 6f 6f 20 6d 61 6e 79 20 72 65 74 72 69 ┆er0: ; otherwise too many retri┆ 0x095480…0954a0 65 73 0d 0a 09 6c 78 69 09 68 2c 62 6f 6f 74 6d 73 67 0d 0a 09 63 61 6c 6c 09 70 72 6d 73 67 0d ┆es lxi h,bootmsg call prmsg ┆ 0x0954a0…0954c0 0a 09 6a 6d 70 09 72 6d 6f 6e 38 30 09 3b 6d 64 73 20 68 61 72 64 77 61 72 65 20 6d 6f 6e 69 74 ┆ jmp rmon80 ;mds hardware monit┆ 0x0954c0…0954e0 6f 72 0d 0a 3b 0d 0a 62 6f 6f 74 6d 73 67 3a 0d 0a 09 64 62 09 27 3f 62 6f 6f 74 27 2c 30 0d 0a ┆or ; bootmsg: db '?boot',0 ┆ 0x0954e0…095500 3b 0d 0a 3b 0d 0a 63 6f 6e 73 74 3a 09 3b 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 20 74 6f 20 ┆; ; const: ;console status to ┆ 0x095500…095520 72 65 67 2d 61 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 ┆reg-a ; (exactly the same as md┆ 0x095520…095540 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 63 73 74 73 0d 0a 3b 0d 0a 63 6f 6e 69 6e 3a 09 3b 63 ┆s call) jmp csts ; conin: ;c┆ 0x095540…095560 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 72 65 67 2d 61 0d 0a 09 63 61 6c 6c ┆onsole character to reg-a call┆ 0x095560…095580 09 63 69 0d 0a 09 61 6e 69 09 37 66 68 09 3b 72 65 6d 6f 76 65 20 70 61 72 69 74 79 20 62 69 74 ┆ ci ani 7fh ;remove parity bit┆ 0x095580…0955a0 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 63 6f 6e 6f 75 74 3a 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 ┆ ret ; conout: ;console char┆ 0x0955a0…0955c0 61 63 74 65 72 20 66 72 6f 6d 20 63 20 74 6f 20 63 6f 6e 73 6f 6c 65 20 6f 75 74 0d 0a 09 6a 6d ┆acter from c to console out jm┆ 0x0955c0…0955e0 70 09 63 6f 0d 0a 3b 0d 0a 6c 69 73 74 3a 09 3b 6c 69 73 74 20 64 65 76 69 63 65 20 6f 75 74 0d ┆p co ; list: ;list device out ┆ 0x0955e0…095600 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c ┆ ; (exactly the same as mds call┆ 0x095600…095620 (39, 1, 11) 28 61 73 73 75 6d 69 6e 67 20 64 69 73 6b 2f 74 72 6b 2f 73 65 63 2f 64 6d 61 20 73 65 74 29 0d ┆(assuming disk/trk/sec/dma set) ┆ 0x095620…095640 0a 09 6d 76 69 09 63 2c 72 65 61 64 66 09 3b 73 65 74 20 74 6f 20 72 65 61 64 20 66 75 6e 63 74 ┆ mvi c,readf ;set to read funct┆ 0x095640…095660 69 6f 6e 0d 0a 09 63 61 6c 6c 09 73 65 74 66 75 6e 63 0d 0a 09 63 61 6c 6c 09 77 61 69 74 69 6f ┆ion call setfunc call waitio┆ 0x095660…095680 09 3b 70 65 72 66 6f 72 6d 20 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 72 65 74 09 09 3b ┆ ;perform read function ret ;┆ 0x095680…0956a0 6d 61 79 20 68 61 76 65 20 65 72 72 6f 72 20 73 65 74 20 69 6e 20 72 65 67 2d 61 0d 0a 3b 0d 0a ┆may have error set in reg-a ; ┆ 0x0956a0…0956c0 3b 0d 0a 77 72 69 74 65 3a 09 3b 64 69 73 6b 20 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a ┆; write: ;disk write function ┆ 0x0956c0…0956e0 09 6d 76 69 09 63 2c 77 72 69 74 66 0d 0a 09 63 61 6c 6c 09 73 65 74 66 75 6e 63 09 3b 73 65 74 ┆ mvi c,writf call setfunc ;set┆ 0x0956e0…095700 20 74 6f 20 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 77 61 69 74 69 6f ┆ to write function call waitio┆ 0x095700…095720 0d 0a 09 72 65 74 09 09 3b 6d 61 79 20 68 61 76 65 20 65 72 72 6f 72 20 73 65 74 0d 0a 3b 0d 0a ┆ ret ;may have error set ; ┆ 0x095720…095740 3b 0d 0a 3b 09 75 74 69 6c 69 74 79 20 73 75 62 72 6f 75 74 69 6e 65 73 0d 0a 70 72 6d 73 67 3a ┆; ; utility subroutines prmsg:┆ 0x095740…095760 09 3b 70 72 69 6e 74 20 6d 65 73 73 61 67 65 20 61 74 20 68 2c 6c 20 74 6f 20 30 0d 0a 09 6d 6f ┆ ;print message at h,l to 0 mo┆ 0x095760…095780 76 09 61 2c 6d 0d 0a 09 6f 72 61 09 61 09 3b 7a 65 72 6f 3f 0d 0a 09 72 7a 0d 0a 3b 09 6d 6f 72 ┆v a,m ora a ;zero? rz ; mor┆ 0x095780…0957a0 65 20 74 6f 20 70 72 69 6e 74 0d 0a 09 70 75 73 68 09 68 0d 0a 09 6d 6f 76 09 63 2c 61 0d 0a 09 ┆e to print push h mov c,a ┆ 0x0957a0…0957c0 63 61 6c 6c 09 63 6f 6e 6f 75 74 0d 0a 09 70 6f 70 09 68 0d 0a 09 69 6e 78 09 68 0d 0a 09 6a 6d ┆call conout pop h inx h jm┆ 0x0957c0…0957e0 70 09 70 72 6d 73 67 0d 0a 3b 0d 0a 73 65 74 66 75 6e 63 3a 0d 0a 3b 09 73 65 74 20 66 75 6e 63 ┆p prmsg ; setfunc: ; set func┆ 0x0957e0…095800 74 69 6f 6e 20 66 6f 72 20 6e 65 78 74 20 69 2f 6f 20 28 63 6f 6d 6d 61 6e 64 20 69 6e 20 72 65 ┆tion for next i/o (command in re┆ 0x095800…095820 (39, 1, 12) 28 64 65 6c 65 74 65 64 20 64 61 74 61 20 6f 6b 29 0d 0a 09 6a 6e 7a 09 77 65 72 72 6f 72 0d 0a ┆(deleted data ok) jnz werror ┆ 0x095820…095840 3b 0d 0a 3b 09 72 65 61 64 20 6f 72 20 77 72 69 74 65 20 69 73 20 6f 6b 2c 20 61 63 63 75 6d 75 ┆; ; read or write is ok, accumu┆ 0x095840…095860 6c 61 74 6f 72 20 63 6f 6e 74 61 69 6e 73 20 7a 65 72 6f 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 77 72 ┆lator contains zero ret ; wr┆ 0x095860…095880 65 61 64 79 3a 09 3b 6e 6f 74 20 72 65 61 64 79 2c 20 74 72 65 61 74 20 61 73 20 65 72 72 6f 72 ┆eady: ;not ready, treat as error┆ 0x095880…0958a0 20 66 6f 72 20 6e 6f 77 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 09 09 3b 63 6c 65 61 72 20 72 ┆ for now call inbyte ;clear r┆ 0x0958a0…0958c0 65 73 75 6c 74 20 62 79 74 65 0d 0a 09 6a 6d 70 09 74 72 79 63 6f 75 6e 74 0d 0a 3b 0d 0a 77 65 ┆esult byte jmp trycount ; we┆ 0x0958c0…0958e0 72 72 6f 72 3a 09 3b 72 65 74 75 72 6e 20 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 ┆rror: ;return hardware malfuncti┆ 0x0958e0…095900 6f 6e 20 28 63 72 63 2c 20 74 72 61 63 6b 2c 20 73 65 65 6b 2c 20 65 74 63 2e 29 0d 0a 3b 09 74 ┆on (crc, track, seek, etc.) ; t┆ 0x095900…095920 68 65 20 6d 64 73 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 68 61 73 20 72 65 74 75 72 6e 65 64 20 61 ┆he mds controller has returned a┆ 0x095920…095940 20 62 69 74 20 69 6e 20 65 61 63 68 20 70 6f 73 69 74 69 6f 6e 0d 0a 3b 09 6f 66 20 74 68 65 20 ┆ bit in each position ; of the ┆ 0x095940…095960 61 63 63 75 6d 75 6c 61 74 6f 72 2c 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 74 68 ┆accumulator, corresponding to th┆ 0x095960…095980 65 20 63 6f 6e 64 69 74 69 6f 6e 73 3a 0d 0a 3b 09 30 09 2d 20 64 65 6c 65 74 65 64 20 64 61 74 ┆e conditions: ; 0 - deleted dat┆ 0x095980…0959a0 61 20 28 61 63 63 65 70 74 65 64 20 61 73 20 6f 6b 20 61 62 6f 76 65 29 0d 0a 3b 09 31 09 2d 20 ┆a (accepted as ok above) ; 1 - ┆ 0x0959a0…0959c0 63 72 63 20 65 72 72 6f 72 0d 0a 3b 09 32 09 2d 20 73 65 65 6b 20 65 72 72 6f 72 0d 0a 3b 09 33 ┆crc error ; 2 - seek error ; 3┆ 0x0959c0…0959e0 09 2d 20 61 64 64 72 65 73 73 20 65 72 72 6f 72 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 ┆ - address error (hardware malfu┆ 0x0959e0…095a00 6e 63 74 69 6f 6e 29 0d 0a 3b 09 34 09 2d 20 64 61 74 61 20 6f 76 65 72 2f 75 6e 64 65 72 20 66 ┆nction) ; 4 - data over/under f┆ 0x095a00…095a20 (39, 1, 13) 65 63 0d 0a 3b 0d 0a 3b 09 72 65 61 64 20 73 65 63 74 6f 72 73 2c 20 63 6f 75 6e 74 20 6e 73 65 ┆ec ; ; read sectors, count nse┆ 0x095a20…095a40 63 74 73 20 74 6f 20 7a 65 72 6f 0d 0a 09 70 6f 70 09 62 09 3b 31 30 2d 65 72 72 6f 72 20 63 6f ┆cts to zero pop b ;10-error co┆ 0x095a40…095a60 75 6e 74 0d 0a 09 6d 76 69 09 62 2c 6e 73 65 63 74 73 0d 0a 72 64 73 65 63 3a 09 3b 72 65 61 64 ┆unt mvi b,nsects rdsec: ;read┆ 0x095a60…095a80 20 6e 65 78 74 20 73 65 63 74 6f 72 0d 0a 09 70 75 73 68 09 62 09 3b 73 61 76 65 20 73 65 63 74 ┆ next sector push b ;save sect┆ 0x095a80…095aa0 6f 72 20 63 6f 75 6e 74 0d 0a 09 63 61 6c 6c 09 72 65 61 64 0d 0a 09 6a 6e 7a 09 62 6f 6f 74 65 ┆or count call read jnz boote┆ 0x095aa0…095ac0 72 72 09 3b 72 65 74 72 79 20 69 66 20 65 72 72 6f 72 73 20 6f 63 63 75 72 0d 0a 09 6c 68 6c 64 ┆rr ;retry if errors occur lhld┆ 0x095ac0…095ae0 09 69 6f 64 09 3b 69 6e 63 72 65 6d 65 6e 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 09 6c 78 ┆ iod ;increment dma address lx┆ 0x095ae0…095b00 69 09 64 2c 31 32 38 09 3b 73 65 63 74 6f 72 20 73 69 7a 65 0d 0a 09 64 61 64 09 64 09 3b 69 6e ┆i d,128 ;sector size dad d ;in┆ 0x095b00…095b20 63 72 65 6d 65 6e 74 65 64 20 64 6d 61 20 61 64 64 72 65 73 73 20 69 6e 20 68 6c 0d 0a 09 6d 6f ┆cremented dma address in hl mo┆ 0x095b20…095b40 76 09 62 2c 68 0d 0a 09 6d 6f 76 09 63 2c 6c 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 20 ┆v b,h mov c,l ;ready for call ┆ 0x095b40…095b60 74 6f 20 73 65 74 20 64 6d 61 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 09 6c 64 61 09 69 ┆to set dma call setdma lda i┆ 0x095b60…095b80 6f 73 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 6a 75 73 74 20 72 65 61 64 0d 0a 09 63 70 ┆os ;sector number just read cp┆ 0x095b80…095ba0 69 09 32 36 09 3b 72 65 61 64 20 6c 61 73 74 20 73 65 63 74 6f 72 3f 0d 0a 09 6a 63 09 72 64 31 ┆i 26 ;read last sector? jc rd1┆ 0x095ba0…095bc0 0d 0a 3b 09 6d 75 73 74 20 62 65 20 73 65 63 74 6f 72 20 32 36 2c 20 7a 65 72 6f 20 61 6e 64 20 ┆ ; must be sector 26, zero and ┆ 0x095bc0…095be0 67 6f 20 74 6f 20 6e 65 78 74 20 74 72 61 63 6b 0d 0a 09 6c 64 61 09 69 6f 74 09 3b 67 65 74 20 ┆go to next track lda iot ;get ┆ 0x095be0…095c00 74 72 61 63 6b 20 74 6f 20 72 65 67 69 73 74 65 72 20 61 0d 0a 09 69 6e 72 09 61 0d 0a 09 6d 6f ┆track to register a inr a mo┆ 0x095c00…095c20 (39, 1, 14) 29 0d 0a 09 6a 6d 70 09 6c 6f 0d 0a 3b 0d 0a 6c 69 73 74 73 74 3a 0d 0a 09 3b 72 65 74 75 72 6e ┆) jmp lo ; listst: ;return┆ 0x095c20…095c40 20 6c 69 73 74 20 73 74 61 74 75 73 0d 0a 09 78 72 61 09 61 0d 0a 09 72 65 74 09 09 3b 61 6c 77 ┆ list status xra a ret ;alw┆ 0x095c40…095c60 61 79 73 20 6e 6f 74 20 72 65 61 64 79 0d 0a 3b 0d 0a 70 75 6e 63 68 3a 09 3b 70 75 6e 63 68 20 ┆ays not ready ; punch: ;punch ┆ 0x095c60…095c80 64 65 76 69 63 65 20 6f 75 74 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 ┆device out ; (exactly the same ┆ 0x095c80…095ca0 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 70 6f 0d 0a 3b 0d 0a 72 65 61 64 65 72 ┆as mds call) jmp po ; reader┆ 0x095ca0…095cc0 3a 09 3b 72 65 61 64 65 72 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 74 6f 20 72 65 67 2d 61 0d ┆: ;reader character in to reg-a ┆ 0x095cc0…095ce0 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c ┆ ; (exactly the same as mds call┆ 0x095ce0…095d00 29 0d 0a 09 6a 6d 70 09 72 69 0d 0a 3b 0d 0a 68 6f 6d 65 3a 09 3b 6d 6f 76 65 20 74 6f 20 68 6f ┆) jmp ri ; home: ;move to ho┆ 0x095d00…095d20 6d 65 20 70 6f 73 69 74 69 6f 6e 0d 0a 3b 09 74 72 65 61 74 20 61 73 20 74 72 61 63 6b 20 30 30 ┆me position ; treat as track 00┆ 0x095d20…095d40 20 73 65 65 6b 0d 0a 09 6d 76 69 09 63 2c 30 0d 0a 09 6a 6d 70 09 73 65 74 74 72 6b 0d 0a 3b 0d ┆ seek mvi c,0 jmp settrk ; ┆ 0x095d40…095d60 0a 73 65 6c 64 73 6b 3a 09 3b 73 65 6c 65 63 74 20 64 69 73 6b 20 67 69 76 65 6e 20 62 79 20 72 ┆ seldsk: ;select disk given by r┆ 0x095d60…095d80 65 67 69 73 74 65 72 20 63 0d 0a 09 6c 78 69 09 68 2c 30 30 30 30 68 09 3b 72 65 74 75 72 6e 20 ┆egister c lxi h,0000h ;return ┆ 0x095d80…095da0 30 30 30 30 20 69 66 20 65 72 72 6f 72 0d 0a 09 6d 6f 76 09 61 2c 63 0d 0a 09 63 70 69 09 6e 64 ┆0000 if error mov a,c cpi nd┆ 0x095da0…095dc0 69 73 6b 73 09 3b 74 6f 6f 20 6c 61 72 67 65 3f 0d 0a 09 72 6e 63 09 09 3b 6c 65 61 76 65 20 48 ┆isks ;too large? rnc ;leave H┆ 0x095dc0…095de0 4c 20 3d 20 30 30 30 30 0d 0a 3b 0d 0a 09 61 6e 69 09 31 30 62 09 3b 30 30 20 30 30 20 66 6f 72 ┆L = 0000 ; ani 10b ;00 00 for┆ 0x095de0…095e00 20 64 72 69 76 65 20 30 2c 31 20 61 6e 64 20 31 30 20 31 30 20 66 6f 72 20 64 72 69 76 65 20 32 ┆ drive 0,1 and 10 10 for drive 2┆ 0x095e00…095e20 (39, 1, 15) 67 2d 63 29 0d 0a 09 6c 78 69 09 68 2c 69 6f 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 20 61 64 ┆g-c) lxi h,iof ;io function ad┆ 0x095e20…095e40 64 72 65 73 73 0d 0a 09 6d 6f 76 09 61 2c 6d 09 3b 67 65 74 20 69 74 20 74 6f 20 61 63 63 75 6d ┆dress mov a,m ;get it to accum┆ 0x095e40…095e60 75 6c 61 74 6f 72 20 66 6f 72 20 6d 61 73 6b 69 6e 67 0d 0a 09 61 6e 69 09 31 31 31 31 31 30 30 ┆ulator for masking ani 1111100┆ 0x095e60…095e80 30 62 09 3b 72 65 6d 6f 76 65 20 70 72 65 76 69 6f 75 73 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6f 72 ┆0b ;remove previous command or┆ 0x095e80…095ea0 61 09 63 09 3b 73 65 74 20 74 6f 20 6e 65 77 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6d 6f 76 09 6d 2c ┆a c ;set to new command mov m,┆ 0x095ea0…095ec0 61 09 3b 72 65 70 6c 61 63 65 64 20 69 6e 20 69 6f 70 62 0d 0a 3b 09 74 68 65 20 6d 64 73 2d 38 ┆a ;replaced in iopb ; the mds-8┆ 0x095ec0…095ee0 30 30 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 72 65 71 75 69 72 65 73 20 64 69 73 6b 20 62 61 6e 6b ┆00 controller requires disk bank┆ 0x095ee0…095f00 20 62 69 74 20 69 6e 20 73 65 63 74 6f 72 20 62 79 74 65 0d 0a 3b 09 6d 61 73 6b 20 74 68 65 20 ┆ bit in sector byte ; mask the ┆ 0x095f00…095f20 62 69 74 20 66 72 6f 6d 20 74 68 65 20 63 75 72 72 65 6e 74 20 69 2f 6f 20 66 75 6e 63 74 69 6f ┆bit from the current i/o functio┆ 0x095f20…095f40 6e 0d 0a 09 61 6e 69 09 30 30 31 30 30 30 30 30 62 09 3b 6d 61 73 6b 20 74 68 65 20 64 69 73 6b ┆n ani 00100000b ;mask the disk┆ 0x095f40…095f60 20 73 65 6c 65 63 74 20 62 69 74 0d 0a 09 6c 78 69 09 68 2c 69 6f 73 09 09 3b 61 64 64 72 65 73 ┆ select bit lxi h,ios ;addres┆ 0x095f60…095f80 73 20 74 68 65 20 73 65 63 74 6f 72 20 73 65 6c 65 63 74 20 62 79 74 65 0d 0a 09 6f 72 61 09 6d ┆s the sector select byte ora m┆ 0x095f80…095fa0 09 09 3b 73 65 6c 65 63 74 20 70 72 6f 70 65 72 20 64 69 73 6b 20 62 61 6e 6b 0d 0a 09 6d 6f 76 ┆ ;select proper disk bank mov┆ 0x095fa0…095fc0 09 6d 2c 61 09 09 3b 73 65 74 20 64 69 73 6b 20 73 65 6c 65 63 74 20 62 69 74 20 6f 6e 2f 6f 66 ┆ m,a ;set disk select bit on/of┆ 0x095fc0…095fe0 66 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 77 61 69 74 69 6f 3a 0d 0a 09 6d 76 69 09 63 2c 72 65 74 72 ┆f ret ; waitio: mvi c,retr┆ 0x095fe0…096000 79 09 3b 6d 61 78 20 72 65 74 72 69 65 73 20 62 65 66 6f 72 65 20 70 65 72 6d 20 65 72 72 6f 72 ┆y ;max retries before perm error┆ 0x096000…096020 (40, 0, 1) 6c 6f 77 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 35 09 ┆low (hardware malfunction) ; 5 ┆ 0x096020…096040 2d 20 77 72 69 74 65 20 70 72 6f 74 65 63 74 20 28 74 72 65 61 74 65 64 20 61 73 20 6e 6f 74 20 ┆- write protect (treated as not ┆ 0x096040…096060 72 65 61 64 79 29 0d 0a 3b 09 36 09 2d 20 77 72 69 74 65 20 65 72 72 6f 72 20 28 68 61 72 64 77 ┆ready) ; 6 - write error (hardw┆ 0x096060…096080 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 37 09 2d 20 6e 6f 74 20 72 65 61 64 ┆are malfunction) ; 7 - not read┆ 0x096080…0960a0 79 0d 0a 3b 09 28 61 63 63 75 6d 75 6c 61 74 6f 72 20 62 69 74 73 20 61 72 65 20 6e 75 6d 62 65 ┆y ; (accumulator bits are numbe┆ 0x0960a0…0960c0 72 65 64 20 37 20 36 20 35 20 34 20 33 20 32 20 31 20 30 29 0d 0a 3b 0d 0a 3b 09 69 74 20 6d 61 ┆red 7 6 5 4 3 2 1 0) ; ; it ma┆ 0x0960c0…0960e0 79 20 62 65 20 75 73 65 66 75 6c 20 74 6f 20 66 69 6c 74 65 72 20 6f 75 74 20 74 68 65 20 76 61 ┆y be useful to filter out the va┆ 0x0960e0…096100 72 69 6f 75 73 20 63 6f 6e 64 69 74 69 6f 6e 73 2c 0d 0a 3b 09 62 75 74 20 77 65 20 77 69 6c 6c ┆rious conditions, ; but we will┆ 0x096100…096120 20 67 65 74 20 61 20 70 65 72 6d 61 6e 65 6e 74 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 69 ┆ get a permanent error message i┆ 0x096120…096140 66 20 69 74 20 69 73 20 6e 6f 74 0d 0a 3b 09 72 65 63 6f 76 65 72 61 62 6c 65 2e 20 20 69 6e 20 ┆f it is not ; recoverable. in ┆ 0x096140…096160 61 6e 79 20 63 61 73 65 2c 20 74 68 65 20 6e 6f 74 20 72 65 61 64 79 20 63 6f 6e 64 69 74 69 6f ┆any case, the not ready conditio┆ 0x096160…096180 6e 20 69 73 0d 0a 3b 09 74 72 65 61 74 65 64 20 61 73 20 61 20 73 65 70 61 72 61 74 65 20 63 6f ┆n is ; treated as a separate co┆ 0x096180…0961a0 6e 64 69 74 69 6f 6e 20 66 6f 72 20 6c 61 74 65 72 20 69 6d 70 72 6f 76 65 6d 65 6e 74 0d 0a 74 ┆ndition for later improvement t┆ 0x0961a0…0961c0 72 79 63 6f 75 6e 74 3a 0d 0a 3b 09 72 65 67 69 73 74 65 72 20 63 20 63 6f 6e 74 61 69 6e 73 20 ┆rycount: ; register c contains ┆ 0x0961c0…0961e0 72 65 74 72 79 20 63 6f 75 6e 74 2c 20 64 65 63 72 65 6d 65 6e 74 20 27 74 69 6c 20 7a 65 72 6f ┆retry count, decrement 'til zero┆ 0x0961e0…096200 0d 0a 09 64 63 72 09 63 0d 0a 09 6a 6e 7a 09 72 65 77 61 69 74 09 3b 66 6f 72 20 61 6e 6f 74 68 ┆ dcr c jnz rewait ;for anoth┆ 0x096200…096220 (40, 0, 2) 69 73 6b 20 74 72 61 63 6b 73 20 75 73 65 64 20 62 79 20 63 70 2f 6d 0d 0a 63 64 69 73 6b 09 65 ┆isk tracks used by cp/m cdisk e┆ 0x096220…096240 71 75 09 30 30 30 34 68 09 3b 61 64 64 72 65 73 73 20 6f 66 20 6c 61 73 74 20 6c 6f 67 67 65 64 ┆qu 0004h ;address of last logged┆ 0x096240…096260 20 64 69 73 6b 20 6f 6e 20 77 61 72 6d 20 73 74 61 72 74 0d 0a 62 75 66 66 09 65 71 75 09 30 30 ┆ disk on warm start buff equ 00┆ 0x096260…096280 38 30 68 09 3b 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 0d 0a 72 65 74 ┆80h ;default buffer address ret┆ 0x096280…0962a0 72 79 09 65 71 75 09 31 30 09 3b 6d 61 78 20 72 65 74 72 69 65 73 20 6f 6e 20 64 69 73 6b 20 69 ┆ry equ 10 ;max retries on disk i┆ 0x0962a0…0962c0 2f 6f 20 62 65 66 6f 72 65 20 65 72 72 6f 72 0d 0a 3b 0d 0a 3b 09 70 65 72 66 6f 72 6d 20 66 6f ┆/o before error ; ; perform fo┆ 0x0962c0…0962e0 6c 6c 6f 77 69 6e 67 20 66 75 6e 63 74 69 6f 6e 73 0d 0a 3b 09 62 6f 6f 74 09 63 6f 6c 64 20 73 ┆llowing functions ; boot cold s┆ 0x0962e0…096300 74 61 72 74 0d 0a 3b 09 77 62 6f 6f 74 09 77 61 72 6d 20 73 74 61 72 74 20 28 73 61 76 65 20 69 ┆tart ; wboot warm start (save i┆ 0x096300…096320 2f 6f 20 62 79 74 65 29 0d 0a 3b 09 28 62 6f 6f 74 20 61 6e 64 20 77 62 6f 6f 74 20 61 72 65 20 ┆/o byte) ; (boot and wboot are ┆ 0x096320…096340 74 68 65 20 73 61 6d 65 20 66 6f 72 20 6d 64 73 29 0d 0a 3b 09 63 6f 6e 73 74 09 63 6f 6e 73 6f ┆the same for mds) ; const conso┆ 0x096340…096360 6c 65 20 73 74 61 74 75 73 0d 0a 3b 09 09 72 65 67 2d 61 20 3d 20 30 30 20 69 66 20 6e 6f 20 63 ┆le status ; reg-a = 00 if no c┆ 0x096360…096380 68 61 72 61 63 74 65 72 20 72 65 61 64 79 0d 0a 3b 09 09 72 65 67 2d 61 20 3d 20 66 66 20 69 66 ┆haracter ready ; reg-a = ff if┆ 0x096380…0963a0 20 63 68 61 72 61 63 74 65 72 20 72 65 61 64 79 0d 0a 3b 09 63 6f 6e 69 6e 09 63 6f 6e 73 6f 6c ┆ character ready ; conin consol┆ 0x0963a0…0963c0 65 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 28 72 65 73 75 6c 74 20 69 6e 20 72 65 67 2d 61 29 ┆e character in (result in reg-a)┆ 0x0963c0…0963e0 0d 0a 3b 09 63 6f 6e 6f 75 74 09 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 6f 75 74 ┆ ; conout console character out┆ 0x0963e0…096400 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 6c 69 73 74 09 6c 69 73 74 20 6f 75 ┆ (char in reg-c) ; list list ou┆ 0x096400…096420 (40, 0, 3) 6e 74 63 09 65 71 75 09 30 66 63 68 09 3b 69 6e 74 65 72 72 75 70 74 20 6d 61 73 6b 20 70 6f 72 ┆ntc equ 0fch ;interrupt mask por┆ 0x096420…096440 74 0d 0a 69 63 6f 6e 09 65 71 75 09 30 66 33 68 09 3b 69 6e 74 65 72 72 75 70 74 20 63 6f 6e 74 ┆t icon equ 0f3h ;interrupt cont┆ 0x096440…096460 72 6f 6c 20 70 6f 72 74 0d 0a 69 6e 74 65 09 65 71 75 09 30 31 31 31 24 31 31 31 30 62 09 3b 65 ┆rol port inte equ 0111$1110b ;e┆ 0x096460…096480 6e 61 62 6c 65 20 72 73 74 20 30 28 77 61 72 6d 20 62 6f 6f 74 29 2c 20 72 73 74 20 37 20 28 6d ┆nable rst 0(warm boot), rst 7 (m┆ 0x096480…0964a0 6f 6e 69 74 6f 72 29 0d 0a 3b 0d 0a 3b 09 6d 64 73 20 6d 6f 6e 69 74 6f 72 20 65 71 75 61 74 65 ┆onitor) ; ; mds monitor equate┆ 0x0964a0…0964c0 73 0d 0a 6d 6f 6e 38 30 09 65 71 75 09 30 66 38 30 30 68 09 3b 6d 64 73 20 6d 6f 6e 69 74 6f 72 ┆s mon80 equ 0f800h ;mds monitor┆ 0x0964c0…0964e0 0d 0a 72 6d 6f 6e 38 30 09 65 71 75 09 30 66 66 30 66 68 09 3b 72 65 73 74 61 72 74 20 6d 6f 6e ┆ rmon80 equ 0ff0fh ;restart mon┆ 0x0964e0…096500 38 30 20 28 62 6f 6f 74 20 65 72 72 6f 72 29 0d 0a 63 69 09 65 71 75 09 30 66 38 30 33 68 09 3b ┆80 (boot error) ci equ 0f803h ;┆ 0x096500…096520 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 72 65 67 2d 61 0d 0a 72 69 09 65 ┆console character to reg-a ri e┆ 0x096520…096540 71 75 09 30 66 38 30 36 68 09 3b 72 65 61 64 65 72 20 69 6e 20 74 6f 20 72 65 67 2d 61 0d 0a 63 ┆qu 0f806h ;reader in to reg-a c┆ 0x096540…096560 6f 09 65 71 75 09 30 66 38 30 39 68 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 20 66 72 6f 6d 20 ┆o equ 0f809h ;console char from ┆ 0x096560…096580 63 20 74 6f 20 63 6f 6e 73 6f 6c 65 20 6f 75 74 0d 0a 70 6f 09 65 71 75 09 30 66 38 30 63 68 09 ┆c to console out po equ 0f80ch ┆ 0x096580…0965a0 3b 70 75 6e 63 68 20 63 68 61 72 20 66 72 6f 6d 20 63 20 74 6f 20 70 75 6e 63 68 20 64 65 76 69 ┆;punch char from c to punch devi┆ 0x0965a0…0965c0 63 65 0d 0a 6c 6f 09 65 71 75 09 30 66 38 30 66 68 09 3b 6c 69 73 74 20 66 72 6f 6d 20 63 20 74 ┆ce lo equ 0f80fh ;list from c t┆ 0x0965c0…0965e0 6f 20 6c 69 73 74 20 64 65 76 69 63 65 0d 0a 63 73 74 73 09 65 71 75 09 30 66 38 31 32 68 09 3b ┆o list device csts equ 0f812h ;┆ 0x0965e0…096600 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 20 30 30 2f 66 66 20 74 6f 20 72 65 67 69 73 74 65 72 ┆console status 00/ff to register┆ 0x096600…096620 (40, 0, 4) 3b 72 65 61 64 20 6e 65 78 74 20 73 65 63 74 6f 72 0d 0a 09 70 75 73 68 09 62 09 3b 73 61 76 65 ┆;read next sector push b ;save┆ 0x096620…096640 20 73 65 63 74 6f 72 20 63 6f 75 6e 74 0d 0a 09 63 61 6c 6c 09 72 65 61 64 0d 0a 09 6a 6e 7a 09 ┆ sector count call read jnz ┆ 0x096640…096660 62 6f 6f 74 65 72 72 09 3b 72 65 74 72 79 20 69 66 20 65 72 72 6f 72 73 20 6f 63 63 75 72 0d 0a ┆booterr ;retry if errors occur ┆ 0x096660…096680 09 6c 68 6c 64 09 69 6f 64 09 3b 69 6e 63 72 65 6d 65 6e 74 20 64 6d 61 20 61 64 64 72 65 73 73 ┆ lhld iod ;increment dma address┆ 0x096680…0966a0 0d 0a 09 6c 78 69 09 64 2c 31 32 38 09 3b 73 65 63 74 6f 72 20 73 69 7a 65 0d 0a 09 64 61 64 09 ┆ lxi d,128 ;sector size dad ┆ 0x0966a0…0966c0 64 09 3b 69 6e 63 72 65 6d 65 6e 74 65 64 20 64 6d 61 20 61 64 64 72 65 73 73 20 69 6e 20 68 6c ┆d ;incremented dma address in hl┆ 0x0966c0…0966e0 0d 0a 09 6d 6f 76 09 62 2c 68 0d 0a 09 6d 6f 76 09 63 2c 6c 09 3b 72 65 61 64 79 20 66 6f 72 20 ┆ mov b,h mov c,l ;ready for ┆ 0x0966e0…096700 63 61 6c 6c 20 74 6f 20 73 65 74 20 64 6d 61 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 09 ┆call to set dma call setdma ┆ 0x096700…096720 6c 64 61 09 69 6f 73 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 6a 75 73 74 20 72 65 61 64 ┆lda ios ;sector number just read┆ 0x096720…096740 0d 0a 09 63 70 69 09 32 36 09 3b 72 65 61 64 20 6c 61 73 74 20 73 65 63 74 6f 72 3f 0d 0a 09 6a ┆ cpi 26 ;read last sector? j┆ 0x096740…096760 63 09 72 64 31 0d 0a 3b 09 6d 75 73 74 20 62 65 20 73 65 63 74 6f 72 20 32 36 2c 20 7a 65 72 6f ┆c rd1 ; must be sector 26, zero┆ 0x096760…096780 20 61 6e 64 20 67 6f 20 74 6f 20 6e 65 78 74 20 74 72 61 63 6b 0d 0a 09 6c 64 61 09 69 6f 74 09 ┆ and go to next track lda iot ┆ 0x096780…0967a0 3b 67 65 74 20 74 72 61 63 6b 20 74 6f 20 72 65 67 69 73 74 65 72 20 61 0d 0a 09 69 6e 72 09 61 ┆;get track to register a inr a┆ 0x0967a0…0967c0 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 0d 0a 09 63 61 6c ┆ mov c,a ;ready for call cal┆ 0x0967c0…0967e0 6c 09 73 65 74 74 72 6b 0d 0a 09 78 72 61 09 61 09 3b 63 6c 65 61 72 20 73 65 63 74 6f 72 20 6e ┆l settrk xra a ;clear sector n┆ 0x0967e0…096800 75 6d 62 65 72 0d 0a 72 64 31 3a 09 69 6e 72 09 61 09 3b 74 6f 20 6e 65 78 74 20 73 65 63 74 6f ┆umber rd1: inr a ;to next secto┆ 0x096800…096820 (40, 0, 5) 65 72 20 74 72 79 0d 0a 3b 0d 0a 3b 09 63 61 6e 6e 6f 74 20 72 65 63 6f 76 65 72 20 66 72 6f 6d ┆er try ; ; cannot recover from┆ 0x096820…096840 20 65 72 72 6f 72 0d 0a 09 6d 76 69 09 61 2c 31 09 3b 65 72 72 6f 72 20 63 6f 64 65 0d 0a 09 72 ┆ error mvi a,1 ;error code r┆ 0x096840…096860 65 74 0d 0a 3b 0d 0a 3b 09 69 6e 74 79 70 65 2c 20 69 6e 62 79 74 65 2c 20 69 6e 73 74 61 74 20 ┆et ; ; intype, inbyte, instat ┆ 0x096860…096880 72 65 61 64 20 64 72 69 76 65 20 62 61 6e 6b 20 30 30 20 6f 72 20 31 30 0d 0a 69 6e 74 79 70 65 ┆read drive bank 00 or 10 intype┆ 0x096880…0968a0 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 74 79 70 31 ┆: lda dbank ora a jnz intyp1┆ 0x0968a0…0968c0 09 3b 73 6b 69 70 20 74 6f 20 62 61 6e 6b 20 31 30 0d 0a 09 69 6e 09 72 74 79 70 65 0d 0a 09 72 ┆ ;skip to bank 10 in rtype r┆ 0x0968c0…0968e0 65 74 0d 0a 69 6e 74 79 70 31 3a 09 69 6e 09 72 74 79 70 65 2b 31 30 68 09 3b 37 38 20 66 6f 72 ┆et intyp1: in rtype+10h ;78 for┆ 0x0968e0…096900 20 30 2c 31 20 20 38 38 20 66 6f 72 20 32 2c 33 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 69 6e 62 79 74 ┆ 0,1 88 for 2,3 ret ; inbyt┆ 0x096900…096920 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 62 79 74 ┆e: lda dbank ora a jnz inbyt┆ 0x096920…096940 31 0d 0a 09 69 6e 09 72 62 79 74 65 0d 0a 09 72 65 74 0d 0a 69 6e 62 79 74 31 3a 09 69 6e 09 72 ┆1 in rbyte ret inbyt1: in r┆ 0x096940…096960 62 79 74 65 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 69 6e 73 74 61 74 3a 09 6c 64 61 09 64 ┆byte+10h ret ; instat: lda d┆ 0x096960…096980 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 73 74 61 31 0d 0a 09 69 6e 09 64 ┆bank ora a jnz insta1 in d┆ 0x096980…0969a0 73 74 61 74 0d 0a 09 72 65 74 0d 0a 69 6e 73 74 61 31 3a 09 69 6e 09 64 73 74 61 74 2b 31 30 68 ┆stat ret insta1: in dstat+10h┆ 0x0969a0…0969c0 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 61 74 61 20 61 72 65 61 73 20 28 6d ┆ ret ; ; ; ; data areas (m┆ 0x0969c0…0969e0 75 73 74 20 62 65 20 69 6e 20 72 61 6d 29 0d 0a 64 62 61 6e 6b 3a 09 64 62 09 30 09 3b 64 69 73 ┆ust be in ram) dbank: db 0 ;dis┆ 0x0969e0…096a00 6b 20 62 61 6e 6b 20 30 30 20 69 66 20 64 72 69 76 65 20 30 2c 31 0d 0a 09 09 09 3b 09 20 20 20 ┆k bank 00 if drive 0,1 ; ┆ 0x096a00…096a20 (40, 0, 6) 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 70 75 6e 63 68 09 70 75 6e 63 68 ┆t (char in reg-c) ; punch punch┆ 0x096a20…096a40 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 72 65 61 64 65 72 09 70 ┆ out (char in reg-c) ; reader p┆ 0x096a40…096a60 61 70 65 72 20 74 61 70 65 20 72 65 61 64 65 72 20 69 6e 20 28 72 65 73 75 6c 74 20 74 6f 20 72 ┆aper tape reader in (result to r┆ 0x096a60…096a80 65 67 2d 61 29 0d 0a 3b 09 68 6f 6d 65 09 6d 6f 76 65 20 74 6f 20 74 72 61 63 6b 20 30 30 0d 0a ┆eg-a) ; home move to track 00 ┆ 0x096a80…096aa0 3b 0d 0a 3b 09 28 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 61 6c 6c 73 20 73 65 74 2d 75 70 ┆; ; (the following calls set-up┆ 0x096aa0…096ac0 20 74 68 65 20 69 6f 20 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 20 66 6f 72 20 74 68 65 0d ┆ the io parameter block for the ┆ 0x096ac0…096ae0 0a 3b 09 6d 64 73 2c 20 77 68 69 63 68 20 69 73 20 75 73 65 64 20 74 6f 20 70 65 72 66 6f 72 6d ┆ ; mds, which is used to perform┆ 0x096ae0…096b00 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 73 20 61 6e 64 20 77 72 69 74 65 73 29 0d 0a 3b ┆ subsequent reads and writes) ;┆ 0x096b00…096b20 09 73 65 6c 64 73 6b 09 73 65 6c 65 63 74 20 64 69 73 6b 20 67 69 76 65 6e 20 62 79 20 72 65 67 ┆ seldsk select disk given by reg┆ 0x096b20…096b40 2d 63 20 28 30 2c 31 2c 32 2e 2e 2e 29 0d 0a 3b 09 73 65 74 74 72 6b 09 73 65 74 20 74 72 61 63 ┆-c (0,1,2...) ; settrk set trac┆ 0x096b40…096b60 6b 20 61 64 64 72 65 73 73 20 28 30 2c 2e 2e 2e 37 36 29 20 66 6f 72 20 73 75 62 73 65 71 75 65 ┆k address (0,...76) for subseque┆ 0x096b60…096b80 6e 74 20 72 65 61 64 2f 77 72 69 74 65 0d 0a 3b 09 73 65 74 73 65 63 09 73 65 74 20 73 65 63 74 ┆nt read/write ; setsec set sect┆ 0x096b80…096ba0 6f 72 20 61 64 64 72 65 73 73 20 28 31 2c 2e 2e 2e 2c 32 36 29 20 66 6f 72 20 73 75 62 73 65 71 ┆or address (1,...,26) for subseq┆ 0x096ba0…096bc0 75 65 6e 74 20 72 65 61 64 2f 77 72 69 74 65 0d 0a 3b 09 73 65 74 64 6d 61 09 73 65 74 20 73 75 ┆uent read/write ; setdma set su┆ 0x096bc0…096be0 62 73 65 71 75 65 6e 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 28 69 6e 69 74 69 61 6c 6c 79 20 ┆bsequent dma address (initially ┆ 0x096be0…096c00 38 30 68 29 0d 0a 3b 0d 0a 3b 09 28 72 65 61 64 20 61 6e 64 20 77 72 69 74 65 20 61 73 73 75 6d ┆80h) ; ; (read and write assum┆ 0x096c00…096c20 (40, 0, 7) 20 61 0d 0a 3b 0d 0a 3b 09 64 69 73 6b 20 70 6f 72 74 73 20 61 6e 64 20 63 6f 6d 6d 61 6e 64 73 ┆ a ; ; disk ports and commands┆ 0x096c20…096c40 0d 0a 62 61 73 65 09 65 71 75 09 37 38 68 09 3b 62 61 73 65 20 6f 66 20 64 69 73 6b 20 63 6f 6d ┆ base equ 78h ;base of disk com┆ 0x096c40…096c60 6d 61 6e 64 20 69 6f 20 70 6f 72 74 73 0d 0a 64 73 74 61 74 09 65 71 75 09 62 61 73 65 09 3b 64 ┆mand io ports dstat equ base ;d┆ 0x096c60…096c80 69 73 6b 20 73 74 61 74 75 73 20 28 69 6e 70 75 74 29 0d 0a 72 74 79 70 65 09 65 71 75 09 62 61 ┆isk status (input) rtype equ ba┆ 0x096c80…096ca0 73 65 2b 31 09 3b 72 65 73 75 6c 74 20 74 79 70 65 20 28 69 6e 70 75 74 29 0d 0a 72 62 79 74 65 ┆se+1 ;result type (input) rbyte┆ 0x096ca0…096cc0 09 65 71 75 09 62 61 73 65 2b 33 09 3b 72 65 73 75 6c 74 20 62 79 74 65 20 28 69 6e 70 75 74 29 ┆ equ base+3 ;result byte (input)┆ 0x096cc0…096ce0 0d 0a 3b 0d 0a 69 6c 6f 77 09 65 71 75 09 62 61 73 65 2b 31 09 3b 69 6f 70 62 20 6c 6f 77 20 61 ┆ ; ilow equ base+1 ;iopb low a┆ 0x096ce0…096d00 64 64 72 65 73 73 20 28 6f 75 74 70 75 74 29 0d 0a 69 68 69 67 68 09 65 71 75 09 62 61 73 65 2b ┆ddress (output) ihigh equ base+┆ 0x096d00…096d20 32 09 3b 69 6f 70 62 20 68 69 67 68 20 61 64 64 72 65 73 73 20 28 6f 75 74 70 75 74 29 0d 0a 3b ┆2 ;iopb high address (output) ;┆ 0x096d20…096d40 0d 0a 72 65 61 64 66 09 65 71 75 09 34 68 09 3b 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 77 ┆ readf equ 4h ;read function w┆ 0x096d40…096d60 72 69 74 66 09 65 71 75 09 36 68 09 3b 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 72 65 63 ┆ritf equ 6h ;write function rec┆ 0x096d60…096d80 61 6c 09 65 71 75 09 33 68 09 3b 72 65 63 61 6c 69 62 72 61 74 65 20 64 72 69 76 65 0d 0a 69 6f ┆al equ 3h ;recalibrate drive io┆ 0x096d80…096da0 72 64 79 09 65 71 75 09 34 68 09 3b 69 2f 6f 20 66 69 6e 69 73 68 65 64 20 6d 61 73 6b 0d 0a 63 ┆rdy equ 4h ;i/o finished mask c┆ 0x096da0…096dc0 72 09 65 71 75 09 30 64 68 09 3b 63 61 72 72 69 61 67 65 20 72 65 74 75 72 6e 0d 0a 6c 66 09 65 ┆r equ 0dh ;carriage return lf e┆ 0x096dc0…096de0 71 75 09 30 61 68 09 3b 6c 69 6e 65 20 66 65 65 64 0d 0a 3b 0d 0a 73 69 67 6e 6f 6e 3a 09 3b 73 ┆qu 0ah ;line feed ; signon: ;s┆ 0x096de0…096e00 69 67 6e 6f 6e 20 6d 65 73 73 61 67 65 3a 20 78 78 6b 20 63 70 2f 6d 20 76 65 72 73 20 79 2e 79 ┆ignon message: xxk cp/m vers y.y┆ 0x096e00…096e20 (40, 0, 8) 72 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 0d 0a 09 63 61 ┆r mov c,a ;ready for call ca┆ 0x096e20…096e40 6c 6c 09 73 65 74 73 65 63 0d 0a 09 70 6f 70 09 62 09 3b 72 65 63 61 6c 6c 20 73 65 63 74 6f 72 ┆ll setsec pop b ;recall sector┆ 0x096e40…096e60 20 63 6f 75 6e 74 0d 0a 09 64 63 72 09 62 09 3b 64 6f 6e 65 3f 0d 0a 09 6a 6e 7a 09 72 64 73 65 ┆ count dcr b ;done? jnz rdse┆ 0x096e60…096e80 63 0d 0a 3b 0d 0a 3b 09 64 6f 6e 65 20 77 69 74 68 20 74 68 65 20 6c 6f 61 64 2c 20 72 65 73 65 ┆c ; ; done with the load, rese┆ 0x096e80…096ea0 74 20 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 0d 0a 67 6f 63 70 6d 3a ┆t default buffer address gocpm:┆ 0x096ea0…096ec0 09 3b 28 65 6e 74 65 72 20 68 65 72 65 20 66 72 6f 6d 20 63 6f 6c 64 20 73 74 61 72 74 20 62 6f ┆ ;(enter here from cold start bo┆ 0x096ec0…096ee0 6f 74 29 0d 0a 3b 09 65 6e 61 62 6c 65 20 72 73 74 30 20 61 6e 64 20 72 73 74 37 0d 0a 09 64 69 ┆ot) ; enable rst0 and rst7 di┆ 0x096ee0…096f00 0d 0a 09 6d 76 69 09 61 2c 31 32 68 09 3b 69 6e 69 74 69 61 6c 69 7a 65 20 63 6f 6d 6d 61 6e 64 ┆ mvi a,12h ;initialize command┆ 0x096f00…096f20 0d 0a 09 6f 75 74 09 72 65 76 72 74 0d 0a 09 78 72 61 09 61 0d 0a 09 6f 75 74 09 69 6e 74 63 09 ┆ out revrt xra a out intc ┆ 0x096f20…096f40 3b 63 6c 65 61 72 65 64 0d 0a 09 6d 76 69 09 61 2c 69 6e 74 65 09 3b 72 73 74 30 20 61 6e 64 20 ┆;cleared mvi a,inte ;rst0 and ┆ 0x096f40…096f60 72 73 74 37 20 62 69 74 73 20 6f 6e 0d 0a 09 6f 75 74 09 69 6e 74 63 0d 0a 09 78 72 61 09 61 0d ┆rst7 bits on out intc xra a ┆ 0x096f60…096f80 0a 09 6f 75 74 09 69 63 6f 6e 09 3b 69 6e 74 65 72 72 75 70 74 20 63 6f 6e 74 72 6f 6c 0d 0a 3b ┆ out icon ;interrupt control ;┆ 0x096f80…096fa0 0d 0a 3b 09 73 65 74 20 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 20 74 ┆ ; set default buffer address t┆ 0x096fa0…096fc0 6f 20 38 30 68 0d 0a 09 6c 78 69 09 62 2c 62 75 66 66 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 ┆o 80h lxi b,buff call setdma┆ 0x096fc0…096fe0 0d 0a 3b 0d 0a 3b 09 72 65 73 65 74 20 6d 6f 6e 69 74 6f 72 20 65 6e 74 72 79 20 70 6f 69 6e 74 ┆ ; ; reset monitor entry point┆ 0x096fe0…097000 73 0d 0a 09 6d 76 69 09 61 2c 6a 6d 70 0d 0a 09 73 74 61 09 30 0d 0a 09 6c 78 69 09 68 2c 77 62 ┆s mvi a,jmp sta 0 lxi h,wb┆ 0x097000…097020 (40, 0, 9) 31 30 20 69 66 20 64 72 69 76 65 20 32 2c 33 0d 0a 69 6f 70 62 3a 09 3b 69 6f 20 70 61 72 61 6d ┆10 if drive 2,3 iopb: ;io param┆ 0x097020…097040 65 74 65 72 20 62 6c 6f 63 6b 0d 0a 09 64 62 09 38 30 68 09 3b 6e 6f 72 6d 61 6c 20 69 2f 6f 20 ┆eter block db 80h ;normal i/o ┆ 0x097040…097060 6f 70 65 72 61 74 69 6f 6e 0d 0a 69 6f 66 3a 09 64 62 09 72 65 61 64 66 09 3b 69 6f 20 66 75 6e ┆operation iof: db readf ;io fun┆ 0x097060…097080 63 74 69 6f 6e 2c 20 69 6e 69 74 69 61 6c 20 72 65 61 64 0d 0a 69 6f 6e 3a 09 64 62 09 31 09 3b ┆ction, initial read ion: db 1 ;┆ 0x097080…0970a0 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 20 74 6f 20 72 65 61 64 0d 0a 69 6f 74 3a 09 ┆number of sectors to read iot: ┆ 0x0970a0…0970c0 64 62 09 6f 66 66 73 65 74 09 3b 74 72 61 63 6b 20 6e 75 6d 62 65 72 0d 0a 69 6f 73 3a 09 64 62 ┆db offset ;track number ios: db┆ 0x0970c0…0970e0 09 31 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 0d 0a 69 6f 64 3a 09 64 77 09 62 75 66 66 09 ┆ 1 ;sector number iod: dw buff ┆ 0x0970e0…097100 3b 69 6f 20 61 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 65 66 69 6e 65 20 72 61 6d 20 ┆;io address ; ; ; define ram ┆ 0x097100…097120 61 72 65 61 73 20 66 6f 72 20 62 64 6f 73 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 09 65 6e 64 65 66 ┆areas for bdos operation endef┆ 0x097120…097140 0d 0a 09 65 6e 64 0d 0a 3b 09 4d 44 53 2d 38 30 30 20 49 2f 4f 20 44 72 69 76 65 72 73 20 66 6f ┆ end ; MDS-800 I/O Drivers fo┆ 0x097140…097160 72 20 43 50 2f 4d 20 32 2e 32 0d 0a 3b 09 28 66 6f 75 72 20 64 72 69 76 65 20 73 69 6e 67 6c 65 ┆r CP/M 2.2 ; (four drive single┆ 0x097160…097180 20 64 65 6e 73 69 74 79 20 76 65 72 73 69 6f 6e 29 0d 0a 3b 0d 0a 3b 09 56 65 72 73 69 6f 6e 20 ┆ density version) ; ; Version ┆ 0x097180…0971a0 32 2e 32 20 46 65 62 72 75 61 72 79 2c 20 31 39 38 30 0d 0a 3b 0d 0a 76 65 72 73 09 65 71 75 09 ┆2.2 February, 1980 ; vers equ ┆ 0x0971a0…0971c0 32 32 09 3b 76 65 72 73 69 6f 6e 20 32 2e 32 0d 0a 3b 0d 0a 3b 09 43 6f 70 79 72 69 67 68 74 20 ┆22 ;version 2.2 ; ; Copyright ┆ 0x0971c0…0971e0 28 63 29 20 31 39 38 30 0d 0a 3b 09 44 69 67 69 74 61 6c 20 52 65 73 65 61 72 63 68 0d 0a 3b 09 ┆(c) 1980 ; Digital Research ; ┆ 0x0971e0…097200 42 6f 78 20 35 37 39 2c 20 50 61 63 69 66 69 63 20 47 72 6f 76 65 0d 0a 3b 09 43 61 6c 69 66 6f ┆Box 579, Pacific Grove ; Califo┆ 0x097200…097220 (40, 0, 10) 65 20 70 72 65 76 69 6f 75 73 20 63 61 6c 6c 73 20 74 6f 20 73 65 74 20 75 70 20 74 68 65 20 69 ┆e previous calls to set up the i┆ 0x097220…097240 6f 20 70 61 72 61 6d 65 74 65 72 73 29 0d 0a 3b 09 72 65 61 64 09 72 65 61 64 20 74 72 61 63 6b ┆o parameters) ; read read track┆ 0x097240…097260 2f 73 65 63 74 6f 72 20 74 6f 20 70 72 65 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 3b ┆/sector to preset dma address ;┆ 0x097260…097280 09 77 72 69 74 65 09 77 72 69 74 65 20 74 72 61 63 6b 2f 73 65 63 74 6f 72 20 66 72 6f 6d 20 70 ┆ write write track/sector from p┆ 0x097280…0972a0 72 65 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b 09 6a 75 6d 70 20 76 65 63 ┆reset dma address ; ; jump vec┆ 0x0972a0…0972c0 74 6f 72 20 66 6f 72 20 69 6e 64 69 76 69 75 61 6c 20 72 6f 75 74 69 6e 65 73 0d 0a 09 6a 6d 70 ┆tor for indiviual routines jmp┆ 0x0972c0…0972e0 09 62 6f 6f 74 0d 0a 77 62 6f 6f 74 65 3a 09 6a 6d 70 09 77 62 6f 6f 74 0d 0a 09 6a 6d 70 09 63 ┆ boot wboote: jmp wboot jmp c┆ 0x0972e0…097300 6f 6e 73 74 0d 0a 09 6a 6d 70 09 63 6f 6e 69 6e 0d 0a 09 6a 6d 70 09 63 6f 6e 6f 75 74 0d 0a 09 ┆onst jmp conin jmp conout ┆ 0x097300…097320 6a 6d 70 09 6c 69 73 74 0d 0a 09 6a 6d 70 09 70 75 6e 63 68 0d 0a 09 6a 6d 70 09 72 65 61 64 65 ┆jmp list jmp punch jmp reade┆ 0x097320…097340 72 0d 0a 09 6a 6d 70 09 68 6f 6d 65 0d 0a 09 6a 6d 70 09 73 65 6c 64 73 6b 0d 0a 09 6a 6d 70 09 ┆r jmp home jmp seldsk jmp ┆ 0x097340…097360 73 65 74 74 72 6b 0d 0a 09 6a 6d 70 09 73 65 74 73 65 63 0d 0a 09 6a 6d 70 09 73 65 74 64 6d 61 ┆settrk jmp setsec jmp setdma┆ 0x097360…097380 0d 0a 09 6a 6d 70 09 72 65 61 64 0d 0a 09 6a 6d 70 09 77 72 69 74 65 0d 0a 09 6a 6d 70 09 6c 69 ┆ jmp read jmp write jmp li┆ 0x097380…0973a0 73 74 73 74 09 3b 6c 69 73 74 20 73 74 61 74 75 73 0d 0a 09 6a 6d 70 09 73 65 63 74 72 61 6e 0d ┆stst ;list status jmp sectran ┆ 0x0973a0…0973c0 0a 3b 0d 0a 09 6d 61 63 6c 69 62 09 64 69 73 6b 64 65 66 09 3b 6c 6f 61 64 20 74 68 65 20 64 69 ┆ ; maclib diskdef ;load the di┆ 0x0973c0…0973e0 73 6b 20 64 65 66 69 6e 69 74 69 6f 6e 20 6c 69 62 72 61 72 79 0d 0a 09 64 69 73 6b 73 09 34 09 ┆sk definition library disks 4 ┆ 0x0973e0…097400 3b 66 6f 75 72 20 64 69 73 6b 73 0d 0a 09 64 69 73 6b 64 65 66 09 30 2c 31 2c 32 36 2c 36 2c 31 ┆;four disks diskdef 0,1,26,6,1┆ 0x097400…097420 (40, 0, 11) 0d 0a 09 64 62 09 63 72 2c 6c 66 2c 6c 66 0d 0a 09 69 66 09 74 65 73 74 0d 0a 09 64 62 09 27 33 ┆ db cr,lf,lf if test db '3┆ 0x097420…097440 32 27 09 3b 33 32 6b 20 65 78 61 6d 70 6c 65 20 62 69 6f 73 0d 0a 09 65 6e 64 69 66 0d 0a 09 69 ┆2' ;32k example bios endif i┆ 0x097440…097460 66 09 6e 6f 74 20 74 65 73 74 0d 0a 09 64 62 09 27 30 30 27 09 3b 6d 65 6d 6f 72 79 20 73 69 7a ┆f not test db '00' ;memory siz┆ 0x097460…097480 65 20 66 69 6c 6c 65 64 20 62 79 20 72 65 6c 6f 63 61 74 6f 72 0d 0a 09 65 6e 64 69 66 0d 0a 09 ┆e filled by relocator endif ┆ 0x097480…0974a0 64 62 09 27 6b 20 43 50 2f 4d 20 76 65 72 73 20 27 0d 0a 09 64 62 09 76 65 72 73 2f 31 30 2b 27 ┆db 'k CP/M vers ' db vers/10+'┆ 0x0974a0…0974c0 30 27 2c 27 2e 27 2c 76 65 72 73 20 6d 6f 64 20 31 30 2b 27 30 27 0d 0a 09 64 62 09 63 72 2c 6c ┆0','.',vers mod 10+'0' db cr,l┆ 0x0974c0…0974e0 66 2c 30 0d 0a 3b 0d 0a 62 6f 6f 74 3a 09 3b 70 72 69 6e 74 20 73 69 67 6e 6f 6e 20 6d 65 73 73 ┆f,0 ; boot: ;print signon mess┆ 0x0974e0…097500 61 67 65 20 61 6e 64 20 67 6f 20 74 6f 20 63 63 70 0d 0a 3b 09 28 6e 6f 74 65 3a 20 6d 64 73 20 ┆age and go to ccp ; (note: mds ┆ 0x097500…097520 62 6f 6f 74 20 69 6e 69 74 69 61 6c 69 7a 65 64 20 69 6f 62 79 74 65 20 61 74 20 30 30 30 33 68 ┆boot initialized iobyte at 0003h┆ 0x097520…097540 29 0d 0a 09 6c 78 69 09 73 70 2c 62 75 66 66 2b 38 30 68 0d 0a 09 6c 78 69 09 68 2c 73 69 67 6e ┆) lxi sp,buff+80h lxi h,sign┆ 0x097540…097560 6f 6e 0d 0a 09 63 61 6c 6c 09 70 72 6d 73 67 09 3b 70 72 69 6e 74 20 6d 65 73 73 61 67 65 0d 0a ┆on call prmsg ;print message ┆ 0x097560…097580 09 78 72 61 09 61 09 3b 63 6c 65 61 72 20 61 63 63 75 6d 75 6c 61 74 6f 72 0d 0a 09 73 74 61 09 ┆ xra a ;clear accumulator sta ┆ 0x097580…0975a0 63 64 69 73 6b 09 3b 73 65 74 20 69 6e 69 74 69 61 6c 6c 79 20 74 6f 20 64 69 73 6b 20 61 0d 0a ┆cdisk ;set initially to disk a ┆ 0x0975a0…0975c0 09 6a 6d 70 09 67 6f 63 70 6d 09 3b 67 6f 20 74 6f 20 63 70 2f 6d 0d 0a 3b 0d 0a 3b 0d 0a 77 62 ┆ jmp gocpm ;go to cp/m ; ; wb┆ 0x0975c0…0975e0 6f 6f 74 3a 3b 09 6c 6f 61 64 65 72 20 6f 6e 20 74 72 61 63 6b 20 30 2c 20 73 65 63 74 6f 72 20 ┆oot:; loader on track 0, sector ┆ 0x0975e0…097600 31 2c 20 77 68 69 63 68 20 77 69 6c 6c 20 62 65 20 73 6b 69 70 70 65 64 20 66 6f 72 20 77 61 72 ┆1, which will be skipped for war┆ 0x097600…097620 (40, 0, 12) 6f 6f 74 65 0d 0a 09 73 68 6c 64 09 31 09 3b 6a 6d 70 20 77 62 6f 6f 74 20 61 74 20 6c 6f 63 61 ┆oote shld 1 ;jmp wboot at loca┆ 0x097620…097640 74 69 6f 6e 20 30 30 0d 0a 09 73 74 61 09 35 0d 0a 09 6c 78 69 09 68 2c 62 64 6f 73 0d 0a 09 73 ┆tion 00 sta 5 lxi h,bdos s┆ 0x097640…097660 68 6c 64 09 36 09 3b 6a 6d 70 20 62 64 6f 73 20 61 74 20 6c 6f 63 61 74 69 6f 6e 20 35 0d 0a 09 ┆hld 6 ;jmp bdos at location 5 ┆ 0x097660…097680 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 09 73 74 61 09 37 2a 38 09 3b 6a 6d 70 20 74 6f 20 6d 6f ┆if not test sta 7*8 ;jmp to mo┆ 0x097680…0976a0 6e 38 30 20 28 6d 61 79 20 68 61 76 65 20 62 65 65 6e 20 63 68 61 6e 67 65 64 20 62 79 20 64 64 ┆n80 (may have been changed by dd┆ 0x0976a0…0976c0 74 29 0d 0a 09 6c 78 69 09 68 2c 6d 6f 6e 38 30 0d 0a 09 73 68 6c 64 09 37 2a 38 2b 31 0d 0a 09 ┆t) lxi h,mon80 shld 7*8+1 ┆ 0x0976c0…0976e0 65 6e 64 69 66 0d 0a 3b 09 6c 65 61 76 65 20 69 6f 62 79 74 65 20 73 65 74 0d 0a 3b 09 70 72 65 ┆endif ; leave iobyte set ; pre┆ 0x0976e0…097700 76 69 6f 75 73 6c 79 20 73 65 6c 65 63 74 65 64 20 64 69 73 6b 20 77 61 73 20 62 2c 20 73 65 6e ┆viously selected disk was b, sen┆ 0x097700…097720 64 20 70 61 72 61 6d 65 74 65 72 20 74 6f 20 63 70 6d 0d 0a 09 6c 64 61 09 63 64 69 73 6b 09 3b ┆d parameter to cpm lda cdisk ;┆ 0x097720…097740 6c 61 73 74 20 6c 6f 67 67 65 64 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6d 6f 76 09 63 2c ┆last logged disk number mov c,┆ 0x097740…097760 61 09 3b 73 65 6e 64 20 74 6f 20 63 63 70 20 74 6f 20 6c 6f 67 20 69 74 20 69 6e 0d 0a 09 65 69 ┆a ;send to ccp to log it in ei┆ 0x097760…097780 0d 0a 09 6a 6d 70 09 63 70 6d 62 0d 0a 3b 0d 0a 3b 09 65 72 72 6f 72 20 63 6f 6e 64 69 74 69 6f ┆ jmp cpmb ; ; error conditio┆ 0x097780…0977a0 6e 20 6f 63 63 75 72 72 65 64 2c 20 70 72 69 6e 74 20 6d 65 73 73 61 67 65 20 61 6e 64 20 72 65 ┆n occurred, print message and re┆ 0x0977a0…0977c0 74 72 79 0d 0a 62 6f 6f 74 65 72 72 3a 0d 0a 09 70 6f 70 09 62 09 3b 72 65 63 61 6c 6c 20 63 6f ┆try booterr: pop b ;recall co┆ 0x0977c0…0977e0 75 6e 74 73 0d 0a 09 64 63 72 09 63 0d 0a 09 6a 7a 09 62 6f 6f 74 65 72 30 0d 0a 3b 09 74 72 79 ┆unts dcr c jz booter0 ; try┆ 0x0977e0…097800 20 61 67 61 69 6e 0d 0a 09 70 75 73 68 09 62 0d 0a 09 6a 6d 70 09 77 62 6f 6f 74 30 0d 0a 3b 0d ┆ again push b jmp wboot0 ; ┆ 0x097800…097820 (40, 0, 13) 72 6e 69 61 2c 20 39 33 39 35 30 0d 0a 3b 0d 0a 3b 0d 0a 74 72 75 65 09 65 71 75 09 30 66 66 66 ┆rnia, 93950 ; ; true equ 0fff┆ 0x097820…097840 66 68 09 3b 76 61 6c 75 65 20 6f 66 20 22 74 72 75 65 22 0d 0a 66 61 6c 73 65 09 65 71 75 09 6e ┆fh ;value of "true" false equ n┆ 0x097840…097860 6f 74 20 74 72 75 65 09 3b 22 66 61 6c 73 65 22 0d 0a 74 65 73 74 09 65 71 75 09 66 61 6c 73 65 ┆ot true ;"false" test equ false┆ 0x097860…097880 09 3b 74 72 75 65 20 69 66 20 74 65 73 74 20 62 69 6f 73 0d 0a 3b 0d 0a 09 69 66 09 74 65 73 74 ┆ ;true if test bios ; if test┆ 0x097880…0978a0 0d 0a 62 69 61 73 09 65 71 75 09 30 33 34 30 30 68 09 3b 62 61 73 65 20 6f 66 20 43 43 50 20 69 ┆ bias equ 03400h ;base of CCP i┆ 0x0978a0…0978c0 6e 20 74 65 73 74 20 73 79 73 74 65 6d 0d 0a 09 65 6e 64 69 66 0d 0a 09 69 66 09 6e 6f 74 20 74 ┆n test system endif if not t┆ 0x0978c0…0978e0 65 73 74 0d 0a 62 69 61 73 09 65 71 75 09 30 30 30 30 68 09 3b 67 65 6e 65 72 61 74 65 20 72 65 ┆est bias equ 0000h ;generate re┆ 0x0978e0…097900 6c 6f 63 61 74 61 62 6c 65 20 63 70 2f 6d 20 73 79 73 74 65 6d 0d 0a 09 65 6e 64 69 66 0d 0a 3b ┆locatable cp/m system endif ;┆ 0x097900…097920 0d 0a 70 61 74 63 68 09 65 71 75 09 31 36 30 30 68 0d 0a 3b 0d 0a 09 6f 72 67 09 70 61 74 63 68 ┆ patch equ 1600h ; org patch┆ 0x097920…097940 0d 0a 63 70 6d 62 09 65 71 75 09 24 2d 70 61 74 63 68 09 3b 62 61 73 65 20 6f 66 20 63 70 6d 20 ┆ cpmb equ $-patch ;base of cpm ┆ 0x097940…097960 63 6f 6e 73 6f 6c 65 20 70 72 6f 63 65 73 73 6f 72 0d 0a 62 64 6f 73 09 65 71 75 09 38 30 36 68 ┆console processor bdos equ 806h┆ 0x097960…097980 2b 63 70 6d 62 09 3b 62 61 73 69 63 20 64 6f 73 20 28 72 65 73 69 64 65 6e 74 20 70 6f 72 74 69 ┆+cpmb ;basic dos (resident porti┆ 0x097980…0979a0 6f 6e 29 0d 0a 63 70 6d 6c 09 65 71 75 09 24 2d 63 70 6d 62 09 3b 6c 65 6e 67 74 68 20 28 69 6e ┆on) cpml equ $-cpmb ;length (in┆ 0x0979a0…0979c0 20 62 79 74 65 73 29 20 6f 66 20 63 70 6d 20 73 79 73 74 65 6d 0d 0a 6e 73 65 63 74 73 09 65 71 ┆ bytes) of cpm system nsects eq┆ 0x0979c0…0979e0 75 09 63 70 6d 6c 2f 31 32 38 09 3b 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 20 74 6f ┆u cpml/128 ;number of sectors to┆ 0x0979e0…097a00 20 6c 6f 61 64 0d 0a 6f 66 66 73 65 74 09 65 71 75 09 32 09 3b 6e 75 6d 62 65 72 20 6f 66 20 64 ┆ load offset equ 2 ;number of d┆ 0x097a00…097a20 (40, 0, 14) 30 32 34 2c 32 34 33 2c 36 34 2c 36 34 2c 6f 66 66 73 65 74 0d 0a 09 64 69 73 6b 64 65 66 09 31 ┆024,243,64,64,offset diskdef 1┆ 0x097a20…097a40 2c 30 0d 0a 09 64 69 73 6b 64 65 66 09 32 2c 30 0d 0a 09 64 69 73 6b 64 65 66 09 33 2c 30 0d 0a ┆,0 diskdef 2,0 diskdef 3,0 ┆ 0x097a40…097a60 3b 09 65 6e 64 65 66 20 6f 63 63 75 72 73 20 61 74 20 65 6e 64 20 6f 66 20 61 73 73 65 6d 62 6c ┆; endef occurs at end of assembl┆ 0x097a60…097a80 79 0d 0a 3b 0d 0a 3b 09 65 6e 64 20 6f 66 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 2d 20 69 6e 64 65 ┆y ; ; end of controller - inde┆ 0x097a80…097aa0 70 65 6e 64 65 6e 74 20 63 6f 64 65 2c 20 74 68 65 20 72 65 6d 61 69 6e 69 6e 67 20 73 75 62 72 ┆pendent code, the remaining subr┆ 0x097aa0…097ac0 6f 75 74 69 6e 65 73 0d 0a 3b 09 61 72 65 20 74 61 69 6c 6f 72 65 64 20 74 6f 20 74 68 65 20 70 ┆outines ; are tailored to the p┆ 0x097ac0…097ae0 61 72 74 69 63 75 6c 61 72 20 6f 70 65 72 61 74 69 6e 67 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 2c ┆articular operating environment,┆ 0x097ae0…097b00 20 61 6e 64 20 6d 75 73 74 0d 0a 3b 09 62 65 20 61 6c 74 65 72 65 64 20 66 6f 72 20 61 6e 79 20 ┆ and must ; be altered for any ┆ 0x097b00…097b20 73 79 73 74 65 6d 20 77 68 69 63 68 20 64 69 66 66 65 72 73 20 66 72 6f 6d 20 74 68 65 20 69 6e ┆system which differs from the in┆ 0x097b20…097b40 74 65 6c 20 6d 64 73 2e 0d 0a 3b 0d 0a 3b 09 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 64 ┆tel mds. ; ; the following cod┆ 0x097b40…097b60 65 20 61 73 73 75 6d 65 73 20 74 68 65 20 6d 64 73 20 6d 6f 6e 69 74 6f 72 20 65 78 69 73 74 73 ┆e assumes the mds monitor exists┆ 0x097b60…097b80 20 61 74 20 30 66 38 30 30 68 0d 0a 3b 09 61 6e 64 20 75 73 65 73 20 74 68 65 20 69 2f 6f 20 73 ┆ at 0f800h ; and uses the i/o s┆ 0x097b80…097ba0 75 62 72 6f 75 74 69 6e 65 73 20 77 69 74 68 69 6e 20 74 68 65 20 6d 6f 6e 69 74 6f 72 0d 0a 3b ┆ubroutines within the monitor ;┆ 0x097ba0…097bc0 0d 0a 3b 09 77 65 20 61 6c 73 6f 20 61 73 73 75 6d 65 20 74 68 65 20 6d 64 73 20 73 79 73 74 65 ┆ ; we also assume the mds syste┆ 0x097bc0…097be0 6d 20 68 61 73 20 66 6f 75 72 20 64 69 73 6b 20 64 72 69 76 65 73 0d 0a 72 65 76 72 74 09 65 71 ┆m has four disk drives revrt eq┆ 0x097be0…097c00 75 09 30 66 64 68 09 3b 69 6e 74 65 72 72 75 70 74 20 72 65 76 65 72 74 20 70 6f 72 74 0d 0a 69 ┆u 0fdh ;interrupt revert port i┆ 0x097c00…097c20 (40, 0, 15) 6d 20 0d 0a 3b 09 72 65 61 64 20 63 70 2f 6d 20 66 72 6f 6d 20 64 69 73 6b 20 2d 20 61 73 73 75 ┆m ; read cp/m from disk - assu┆ 0x097c20…097c40 6d 69 6e 67 20 74 68 65 72 65 20 69 73 20 61 20 31 32 38 20 62 79 74 65 20 63 6f 6c 64 20 73 74 ┆ming there is a 128 byte cold st┆ 0x097c40…097c60 61 72 74 0d 0a 3b 09 73 74 61 72 74 2e 0d 0a 3b 0d 0a 09 6c 78 69 09 73 70 2c 62 75 66 66 09 3b ┆art ; start. ; lxi sp,buff ;┆ 0x097c60…097c80 75 73 69 6e 67 20 64 6d 61 20 2d 20 74 68 75 73 20 38 30 20 74 68 72 75 20 66 66 20 61 76 61 69 ┆using dma - thus 80 thru ff avai┆ 0x097c80…097ca0 6c 61 62 6c 65 20 66 6f 72 20 73 74 61 63 6b 0d 0a 3b 0d 0a 09 6d 76 69 09 63 2c 72 65 74 72 79 ┆lable for stack ; mvi c,retry┆ 0x097ca0…097cc0 09 3b 6d 61 78 20 72 65 74 72 69 65 73 0d 0a 09 70 75 73 68 09 62 0d 0a 77 62 6f 6f 74 30 3a 09 ┆ ;max retries push b wboot0: ┆ 0x097cc0…097ce0 3b 65 6e 74 65 72 20 68 65 72 65 20 6f 6e 20 65 72 72 6f 72 20 72 65 74 72 69 65 73 0d 0a 09 6c ┆;enter here on error retries l┆ 0x097ce0…097d00 78 69 09 62 2c 63 70 6d 62 09 3b 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 74 6f 20 73 74 ┆xi b,cpmb ;set dma address to st┆ 0x097d00…097d20 61 72 74 20 6f 66 20 64 69 73 6b 20 73 79 73 74 65 6d 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 ┆art of disk system call setdma┆ 0x097d20…097d40 0d 0a 09 6d 76 69 09 63 2c 30 09 3b 62 6f 6f 74 20 66 72 6f 6d 20 64 72 69 76 65 20 30 0d 0a 09 ┆ mvi c,0 ;boot from drive 0 ┆ 0x097d40…097d60 63 61 6c 6c 09 73 65 6c 64 73 6b 0d 0a 09 6d 76 69 09 63 2c 30 0d 0a 09 63 61 6c 6c 09 73 65 74 ┆call seldsk mvi c,0 call set┆ 0x097d60…097d80 74 72 6b 09 3b 73 74 61 72 74 20 77 69 74 68 20 74 72 61 63 6b 20 30 0d 0a 09 6d 76 69 09 63 2c ┆trk ;start with track 0 mvi c,┆ 0x097d80…097da0 32 09 3b 73 74 61 72 74 20 72 65 61 64 69 6e 67 20 73 65 63 74 6f 72 20 32 0d 0a 09 63 61 6c 6c ┆2 ;start reading sector 2 call┆ 0x097da0…097dc0 09 73 65 74 73 65 63 0d 0a 3b 0d 0a 3b 09 72 65 61 64 20 73 65 63 74 6f 72 73 2c 20 63 6f 75 6e ┆ setsec ; ; read sectors, coun┆ 0x097dc0…097de0 74 20 6e 73 65 63 74 73 20 74 6f 20 7a 65 72 6f 0d 0a 09 70 6f 70 09 62 09 3b 31 30 2d 65 72 72 ┆t nsects to zero pop b ;10-err┆ 0x097de0…097e00 6f 72 20 63 6f 75 6e 74 0d 0a 09 6d 76 69 09 62 2c 6e 73 65 63 74 73 0d 0a 72 64 73 65 63 3a 09 ┆or count mvi b,nsects rdsec: ┆ 0x097e00…097e20 (40, 1, 1) 0a 62 6f 6f 74 65 72 30 3a 0d 0a 3b 09 6f 74 68 65 72 77 69 73 65 20 74 6f 6f 20 6d 61 6e 79 20 ┆ booter0: ; otherwise too many ┆ 0x097e20…097e40 72 65 74 72 69 65 73 0d 0a 09 6c 78 69 09 68 2c 62 6f 6f 74 6d 73 67 0d 0a 09 63 61 6c 6c 09 70 ┆retries lxi h,bootmsg call p┆ 0x097e40…097e60 72 6d 73 67 0d 0a 09 6a 6d 70 09 72 6d 6f 6e 38 30 09 3b 6d 64 73 20 68 61 72 64 77 61 72 65 20 ┆rmsg jmp rmon80 ;mds hardware ┆ 0x097e60…097e80 6d 6f 6e 69 74 6f 72 0d 0a 3b 0d 0a 62 6f 6f 74 6d 73 67 3a 0d 0a 09 64 62 09 27 3f 62 6f 6f 74 ┆monitor ; bootmsg: db '?boot┆ 0x097e80…097ea0 27 2c 30 0d 0a 3b 0d 0a 3b 0d 0a 63 6f 6e 73 74 3a 09 3b 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 ┆',0 ; ; const: ;console statu┆ 0x097ea0…097ec0 73 20 74 6f 20 72 65 67 2d 61 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 ┆s to reg-a ; (exactly the same ┆ 0x097ec0…097ee0 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 63 73 74 73 0d 0a 3b 0d 0a 63 6f 6e 69 ┆as mds call) jmp csts ; coni┆ 0x097ee0…097f00 6e 3a 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 72 65 67 2d 61 0d 0a ┆n: ;console character to reg-a ┆ 0x097f00…097f20 09 63 61 6c 6c 09 63 69 0d 0a 09 61 6e 69 09 37 66 68 09 3b 72 65 6d 6f 76 65 20 70 61 72 69 74 ┆ call ci ani 7fh ;remove parit┆ 0x097f20…097f40 79 20 62 69 74 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 63 6f 6e 6f 75 74 3a 09 3b 63 6f 6e 73 6f 6c 65 ┆y bit ret ; conout: ;console┆ 0x097f40…097f60 20 63 68 61 72 61 63 74 65 72 20 66 72 6f 6d 20 63 20 74 6f 20 63 6f 6e 73 6f 6c 65 20 6f 75 74 ┆ character from c to console out┆ 0x097f60…097f80 0d 0a 09 6a 6d 70 09 63 6f 0d 0a 3b 0d 0a 6c 69 73 74 3a 09 3b 6c 69 73 74 20 64 65 76 69 63 65 ┆ jmp co ; list: ;list device┆ 0x097f80…097fa0 20 6f 75 74 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 ┆ out ; (exactly the same as mds┆ 0x097fa0…097fc0 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 6c 6f 0d 0a 3b 0d 0a 6c 69 73 74 73 74 3a 0d 0a 09 3b 72 ┆ call) jmp lo ; listst: ;r┆ 0x097fc0…097fe0 65 74 75 72 6e 20 6c 69 73 74 20 73 74 61 74 75 73 0d 0a 09 78 72 61 09 61 0d 0a 09 72 65 74 09 ┆eturn list status xra a ret ┆ 0x097fe0…098000 09 3b 61 6c 77 61 79 73 20 6e 6f 74 20 72 65 61 64 79 0d 0a 3b 0d 0a 70 75 6e 63 68 3a 09 3b 70 ┆ ;always not ready ; punch: ;p┆ 0x098000…098020 (40, 1, 2) 61 69 74 69 6f 09 3b 70 65 72 66 6f 72 6d 20 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 72 ┆aitio ;perform read function r┆ 0x098020…098040 65 74 09 09 3b 6d 61 79 20 68 61 76 65 20 65 72 72 6f 72 20 73 65 74 20 69 6e 20 72 65 67 2d 61 ┆et ;may have error set in reg-a┆ 0x098040…098060 0d 0a 3b 0d 0a 3b 0d 0a 77 72 69 74 65 3a 09 3b 64 69 73 6b 20 77 72 69 74 65 20 66 75 6e 63 74 ┆ ; ; write: ;disk write funct┆ 0x098060…098080 69 6f 6e 0d 0a 09 6d 76 69 09 63 2c 77 72 69 74 66 0d 0a 09 63 61 6c 6c 09 73 65 74 66 75 6e 63 ┆ion mvi c,writf call setfunc┆ 0x098080…0980a0 09 3b 73 65 74 20 74 6f 20 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 77 ┆ ;set to write function call w┆ 0x0980a0…0980c0 61 69 74 69 6f 0d 0a 09 72 65 74 09 09 3b 6d 61 79 20 68 61 76 65 20 65 72 72 6f 72 20 73 65 74 ┆aitio ret ;may have error set┆ 0x0980c0…0980e0 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 75 74 69 6c 69 74 79 20 73 75 62 72 6f 75 74 69 6e 65 73 0d 0a 70 ┆ ; ; ; utility subroutines p┆ 0x0980e0…098100 72 6d 73 67 3a 09 3b 70 72 69 6e 74 20 6d 65 73 73 61 67 65 20 61 74 20 68 2c 6c 20 74 6f 20 30 ┆rmsg: ;print message at h,l to 0┆ 0x098100…098120 0d 0a 09 6d 6f 76 09 61 2c 6d 0d 0a 09 6f 72 61 09 61 09 3b 7a 65 72 6f 3f 0d 0a 09 72 7a 0d 0a ┆ mov a,m ora a ;zero? rz ┆ 0x098120…098140 3b 09 6d 6f 72 65 20 74 6f 20 70 72 69 6e 74 0d 0a 09 70 75 73 68 09 68 0d 0a 09 6d 6f 76 09 63 ┆; more to print push h mov c┆ 0x098140…098160 2c 61 0d 0a 09 63 61 6c 6c 09 63 6f 6e 6f 75 74 0d 0a 09 70 6f 70 09 68 0d 0a 09 69 6e 78 09 68 ┆,a call conout pop h inx h┆ 0x098160…098180 0d 0a 09 6a 6d 70 09 70 72 6d 73 67 0d 0a 3b 0d 0a 73 65 74 66 75 6e 63 3a 0d 0a 3b 09 73 65 74 ┆ jmp prmsg ; setfunc: ; set┆ 0x098180…0981a0 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 6e 65 78 74 20 69 2f 6f 20 28 63 6f 6d 6d 61 6e 64 20 ┆ function for next i/o (command ┆ 0x0981a0…0981c0 69 6e 20 72 65 67 2d 63 29 0d 0a 09 6c 78 69 09 68 2c 69 6f 66 09 3b 69 6f 20 66 75 6e 63 74 69 ┆in reg-c) lxi h,iof ;io functi┆ 0x0981c0…0981e0 6f 6e 20 61 64 64 72 65 73 73 0d 0a 09 6d 6f 76 09 61 2c 6d 09 3b 67 65 74 20 69 74 20 74 6f 20 ┆on address mov a,m ;get it to ┆ 0x0981e0…098200 61 63 63 75 6d 75 6c 61 74 6f 72 20 66 6f 72 20 6d 61 73 6b 69 6e 67 0d 0a 09 61 6e 69 09 31 31 ┆accumulator for masking ani 11┆ 0x098200…098220 (40, 1, 3) 3b 0d 0a 77 72 65 61 64 79 3a 09 3b 6e 6f 74 20 72 65 61 64 79 2c 20 74 72 65 61 74 20 61 73 20 ┆; wready: ;not ready, treat as ┆ 0x098220…098240 65 72 72 6f 72 20 66 6f 72 20 6e 6f 77 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 09 09 3b 63 6c ┆error for now call inbyte ;cl┆ 0x098240…098260 65 61 72 20 72 65 73 75 6c 74 20 62 79 74 65 0d 0a 09 6a 6d 70 09 74 72 79 63 6f 75 6e 74 0d 0a ┆ear result byte jmp trycount ┆ 0x098260…098280 3b 0d 0a 77 65 72 72 6f 72 3a 09 3b 72 65 74 75 72 6e 20 68 61 72 64 77 61 72 65 20 6d 61 6c 66 ┆; werror: ;return hardware malf┆ 0x098280…0982a0 75 6e 63 74 69 6f 6e 20 28 63 72 63 2c 20 74 72 61 63 6b 2c 20 73 65 65 6b 2c 20 65 74 63 2e 29 ┆unction (crc, track, seek, etc.)┆ 0x0982a0…0982c0 0d 0a 3b 09 74 68 65 20 6d 64 73 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 68 61 73 20 72 65 74 75 72 ┆ ; the mds controller has retur┆ 0x0982c0…0982e0 6e 65 64 20 61 20 62 69 74 20 69 6e 20 65 61 63 68 20 70 6f 73 69 74 69 6f 6e 0d 0a 3b 09 6f 66 ┆ned a bit in each position ; of┆ 0x0982e0…098300 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 2c 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 ┆ the accumulator, corresponding ┆ 0x098300…098320 74 6f 20 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e 73 3a 0d 0a 3b 09 30 09 2d 20 64 65 6c 65 74 65 ┆to the conditions: ; 0 - delete┆ 0x098320…098340 64 20 64 61 74 61 20 28 61 63 63 65 70 74 65 64 20 61 73 20 6f 6b 20 61 62 6f 76 65 29 0d 0a 3b ┆d data (accepted as ok above) ;┆ 0x098340…098360 09 31 09 2d 20 63 72 63 20 65 72 72 6f 72 0d 0a 3b 09 32 09 2d 20 73 65 65 6b 20 65 72 72 6f 72 ┆ 1 - crc error ; 2 - seek error┆ 0x098360…098380 0d 0a 3b 09 33 09 2d 20 61 64 64 72 65 73 73 20 65 72 72 6f 72 20 28 68 61 72 64 77 61 72 65 20 ┆ ; 3 - address error (hardware ┆ 0x098380…0983a0 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 34 09 2d 20 64 61 74 61 20 6f 76 65 72 2f 75 6e ┆malfunction) ; 4 - data over/un┆ 0x0983a0…0983c0 64 65 72 20 66 6c 6f 77 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d ┆der flow (hardware malfunction) ┆ 0x0983c0…0983e0 0a 3b 09 35 09 2d 20 77 72 69 74 65 20 70 72 6f 74 65 63 74 20 28 74 72 65 61 74 65 64 20 61 73 ┆ ; 5 - write protect (treated as┆ 0x0983e0…098400 20 6e 6f 74 20 72 65 61 64 79 29 0d 0a 3b 09 36 09 2d 20 77 72 69 74 65 20 65 72 72 6f 72 20 28 ┆ not ready) ; 6 - write error (┆ 0x098400…098420 (40, 1, 4) 66 61 6c 73 65 09 3b 74 72 75 65 20 69 66 20 74 65 73 74 20 62 69 6f 73 0d 0a 3b 0d 0a 09 69 66 ┆false ;true if test bios ; if┆ 0x098420…098440 09 74 65 73 74 0d 0a 62 69 61 73 09 65 71 75 09 30 33 34 30 30 68 09 3b 62 61 73 65 20 6f 66 20 ┆ test bias equ 03400h ;base of ┆ 0x098440…098460 43 43 50 20 69 6e 20 74 65 73 74 20 73 79 73 74 65 6d 0d 0a 09 65 6e 64 69 66 0d 0a 09 69 66 09 ┆CCP in test system endif if ┆ 0x098460…098480 6e 6f 74 20 74 65 73 74 0d 0a 62 69 61 73 09 65 71 75 09 30 30 30 30 68 09 3b 67 65 6e 65 72 61 ┆not test bias equ 0000h ;genera┆ 0x098480…0984a0 74 65 20 72 65 6c 6f 63 61 74 61 62 6c 65 20 63 70 2f 6d 20 73 79 73 74 65 6d 0d 0a 09 65 6e 64 ┆te relocatable cp/m system end┆ 0x0984a0…0984c0 69 66 0d 0a 3b 0d 0a 70 61 74 63 68 09 65 71 75 09 31 36 30 30 68 0d 0a 3b 0d 0a 09 6f 72 67 09 ┆if ; patch equ 1600h ; org ┆ 0x0984c0…0984e0 70 61 74 63 68 0d 0a 63 70 6d 62 09 65 71 75 09 24 2d 70 61 74 63 68 09 3b 62 61 73 65 20 6f 66 ┆patch cpmb equ $-patch ;base of┆ 0x0984e0…098500 20 63 70 6d 20 63 6f 6e 73 6f 6c 65 20 70 72 6f 63 65 73 73 6f 72 0d 0a 62 64 6f 73 09 65 71 75 ┆ cpm console processor bdos equ┆ 0x098500…098520 09 38 30 36 68 2b 63 70 6d 62 09 3b 62 61 73 69 63 20 64 6f 73 20 28 72 65 73 69 64 65 6e 74 20 ┆ 806h+cpmb ;basic dos (resident ┆ 0x098520…098540 70 6f 72 74 69 6f 6e 29 0d 0a 63 70 6d 6c 09 65 71 75 09 24 2d 63 70 6d 62 09 3b 6c 65 6e 67 74 ┆portion) cpml equ $-cpmb ;lengt┆ 0x098540…098560 68 20 28 69 6e 20 62 79 74 65 73 29 20 6f 66 20 63 70 6d 20 73 79 73 74 65 6d 0d 0a 6e 73 65 63 ┆h (in bytes) of cpm system nsec┆ 0x098560…098580 74 73 09 65 71 75 09 63 70 6d 6c 2f 31 32 38 09 3b 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f ┆ts equ cpml/128 ;number of secto┆ 0x098580…0985a0 72 73 20 74 6f 20 6c 6f 61 64 0d 0a 6f 66 66 73 65 74 09 65 71 75 09 32 09 3b 6e 75 6d 62 65 72 ┆rs to load offset equ 2 ;number┆ 0x0985a0…0985c0 20 6f 66 20 64 69 73 6b 20 74 72 61 63 6b 73 20 75 73 65 64 20 62 79 20 63 70 2f 6d 0d 0a 63 64 ┆ of disk tracks used by cp/m cd┆ 0x0985c0…0985e0 69 73 6b 09 65 71 75 09 30 30 30 34 68 09 3b 61 64 64 72 65 73 73 20 6f 66 20 6c 61 73 74 20 6c ┆isk equ 0004h ;address of last l┆ 0x0985e0…098600 6f 67 67 65 64 20 64 69 73 6b 20 6f 6e 20 77 61 72 6d 20 73 74 61 72 74 0d 0a 62 75 66 66 09 65 ┆ogged disk on warm start buff e┆ 0x098600…098620 (40, 1, 5) 75 6e 63 68 20 64 65 76 69 63 65 20 6f 75 74 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 ┆unch device out ; (exactly the ┆ 0x098620…098640 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 70 6f 0d 0a 3b 0d 0a 72 ┆same as mds call) jmp po ; r┆ 0x098640…098660 65 61 64 65 72 3a 09 3b 72 65 61 64 65 72 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 74 6f 20 72 ┆eader: ;reader character in to r┆ 0x098660…098680 65 67 2d 61 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 ┆eg-a ; (exactly the same as mds┆ 0x098680…0986a0 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 72 69 0d 0a 3b 0d 0a 68 6f 6d 65 3a 09 3b 6d 6f 76 65 20 ┆ call) jmp ri ; home: ;move ┆ 0x0986a0…0986c0 74 6f 20 68 6f 6d 65 20 70 6f 73 69 74 69 6f 6e 0d 0a 3b 09 74 72 65 61 74 20 61 73 20 74 72 61 ┆to home position ; treat as tra┆ 0x0986c0…0986e0 63 6b 20 30 30 20 73 65 65 6b 0d 0a 09 6d 76 69 09 63 2c 30 0d 0a 09 6a 6d 70 09 73 65 74 74 72 ┆ck 00 seek mvi c,0 jmp settr┆ 0x0986e0…098700 6b 0d 0a 3b 0d 0a 73 65 6c 64 73 6b 3a 09 3b 73 65 6c 65 63 74 20 64 69 73 6b 20 67 69 76 65 6e ┆k ; seldsk: ;select disk given┆ 0x098700…098720 20 62 79 20 72 65 67 69 73 74 65 72 20 63 0d 0a 09 6c 78 69 09 68 2c 30 30 30 30 68 09 3b 72 65 ┆ by register c lxi h,0000h ;re┆ 0x098720…098740 74 75 72 6e 20 30 30 30 30 20 69 66 20 65 72 72 6f 72 0d 0a 09 6d 6f 76 09 61 2c 63 0d 0a 09 63 ┆turn 0000 if error mov a,c c┆ 0x098740…098760 70 69 09 6e 64 69 73 6b 73 09 3b 74 6f 6f 20 6c 61 72 67 65 3f 0d 0a 09 72 6e 63 09 09 3b 6c 65 ┆pi ndisks ;too large? rnc ;le┆ 0x098760…098780 61 76 65 20 48 4c 20 3d 20 30 30 30 30 0d 0a 3b 0d 0a 09 61 6e 69 09 31 30 62 09 3b 30 30 20 30 ┆ave HL = 0000 ; ani 10b ;00 0┆ 0x098780…0987a0 30 20 66 6f 72 20 64 72 69 76 65 20 30 2c 31 20 61 6e 64 20 31 30 20 31 30 20 66 6f 72 20 64 72 ┆0 for drive 0,1 and 10 10 for dr┆ 0x0987a0…0987c0 69 76 65 20 32 2c 33 0d 0a 09 73 74 61 09 64 62 61 6e 6b 09 3b 74 6f 20 73 65 6c 65 63 74 20 64 ┆ive 2,3 sta dbank ;to select d┆ 0x0987c0…0987e0 72 69 76 65 20 62 61 6e 6b 0d 0a 09 6d 6f 76 09 61 2c 63 09 3b 30 30 2c 20 30 31 2c 20 31 30 2c ┆rive bank mov a,c ;00, 01, 10,┆ 0x0987e0…098800 20 31 31 0d 0a 09 61 6e 69 09 31 62 09 3b 6d 64 73 20 68 61 73 20 30 2c 31 20 61 74 20 37 38 2c ┆ 11 ani 1b ;mds has 0,1 at 78,┆ 0x098800…098820 (40, 1, 6) 31 31 31 30 30 30 62 09 3b 72 65 6d 6f 76 65 20 70 72 65 76 69 6f 75 73 20 63 6f 6d 6d 61 6e 64 ┆111000b ;remove previous command┆ 0x098820…098840 0d 0a 09 6f 72 61 09 63 09 3b 73 65 74 20 74 6f 20 6e 65 77 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6d ┆ ora c ;set to new command m┆ 0x098840…098860 6f 76 09 6d 2c 61 09 3b 72 65 70 6c 61 63 65 64 20 69 6e 20 69 6f 70 62 0d 0a 3b 09 74 68 65 20 ┆ov m,a ;replaced in iopb ; the ┆ 0x098860…098880 6d 64 73 2d 38 30 30 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 72 65 71 75 69 72 65 73 20 64 69 73 6b ┆mds-800 controller requires disk┆ 0x098880…0988a0 20 62 61 6e 6b 20 62 69 74 20 69 6e 20 73 65 63 74 6f 72 20 62 79 74 65 0d 0a 3b 09 6d 61 73 6b ┆ bank bit in sector byte ; mask┆ 0x0988a0…0988c0 20 74 68 65 20 62 69 74 20 66 72 6f 6d 20 74 68 65 20 63 75 72 72 65 6e 74 20 69 2f 6f 20 66 75 ┆ the bit from the current i/o fu┆ 0x0988c0…0988e0 6e 63 74 69 6f 6e 0d 0a 09 61 6e 69 09 30 30 31 30 30 30 30 30 62 09 3b 6d 61 73 6b 20 74 68 65 ┆nction ani 00100000b ;mask the┆ 0x0988e0…098900 20 64 69 73 6b 20 73 65 6c 65 63 74 20 62 69 74 0d 0a 09 6c 78 69 09 68 2c 69 6f 73 09 09 3b 61 ┆ disk select bit lxi h,ios ;a┆ 0x098900…098920 64 64 72 65 73 73 20 74 68 65 20 73 65 63 74 6f 72 20 73 65 6c 65 63 74 20 62 79 74 65 0d 0a 09 ┆ddress the sector select byte ┆ 0x098920…098940 6f 72 61 09 6d 09 09 3b 73 65 6c 65 63 74 20 70 72 6f 70 65 72 20 64 69 73 6b 20 62 61 6e 6b 0d ┆ora m ;select proper disk bank ┆ 0x098940…098960 0a 09 6d 6f 76 09 6d 2c 61 09 09 3b 73 65 74 20 64 69 73 6b 20 73 65 6c 65 63 74 20 62 69 74 20 ┆ mov m,a ;set disk select bit ┆ 0x098960…098980 6f 6e 2f 6f 66 66 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 77 61 69 74 69 6f 3a 0d 0a 09 6d 76 69 09 63 ┆on/off ret ; waitio: mvi c┆ 0x098980…0989a0 2c 72 65 74 72 79 09 3b 6d 61 78 20 72 65 74 72 69 65 73 20 62 65 66 6f 72 65 20 70 65 72 6d 20 ┆,retry ;max retries before perm ┆ 0x0989a0…0989c0 65 72 72 6f 72 0d 0a 72 65 77 61 69 74 3a 0d 0a 3b 09 73 74 61 72 74 20 74 68 65 20 69 2f 6f 20 ┆error rewait: ; start the i/o ┆ 0x0989c0…0989e0 66 75 6e 63 74 69 6f 6e 20 61 6e 64 20 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 69 6f 6e ┆function and wait for completion┆ 0x0989e0…098a00 0d 0a 09 63 61 6c 6c 09 69 6e 74 79 70 65 09 3b 69 6e 20 72 74 79 70 65 0d 0a 09 63 61 6c 6c 09 ┆ call intype ;in rtype call ┆ 0x098a00…098a20 (40, 1, 7) 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 37 09 2d 20 6e 6f 74 ┆hardware malfunction) ; 7 - not┆ 0x098a20…098a40 20 72 65 61 64 79 0d 0a 3b 09 28 61 63 63 75 6d 75 6c 61 74 6f 72 20 62 69 74 73 20 61 72 65 20 ┆ ready ; (accumulator bits are ┆ 0x098a40…098a60 6e 75 6d 62 65 72 65 64 20 37 20 36 20 35 20 34 20 33 20 32 20 31 20 30 29 0d 0a 3b 0d 0a 3b 09 ┆numbered 7 6 5 4 3 2 1 0) ; ; ┆ 0x098a60…098a80 69 74 20 6d 61 79 20 62 65 20 75 73 65 66 75 6c 20 74 6f 20 66 69 6c 74 65 72 20 6f 75 74 20 74 ┆it may be useful to filter out t┆ 0x098a80…098aa0 68 65 20 76 61 72 69 6f 75 73 20 63 6f 6e 64 69 74 69 6f 6e 73 2c 0d 0a 3b 09 62 75 74 20 77 65 ┆he various conditions, ; but we┆ 0x098aa0…098ac0 20 77 69 6c 6c 20 67 65 74 20 61 20 70 65 72 6d 61 6e 65 6e 74 20 65 72 72 6f 72 20 6d 65 73 73 ┆ will get a permanent error mess┆ 0x098ac0…098ae0 61 67 65 20 69 66 20 69 74 20 69 73 20 6e 6f 74 0d 0a 3b 09 72 65 63 6f 76 65 72 61 62 6c 65 2e ┆age if it is not ; recoverable.┆ 0x098ae0…098b00 20 20 69 6e 20 61 6e 79 20 63 61 73 65 2c 20 74 68 65 20 6e 6f 74 20 72 65 61 64 79 20 63 6f 6e ┆ in any case, the not ready con┆ 0x098b00…098b20 64 69 74 69 6f 6e 20 69 73 0d 0a 3b 09 74 72 65 61 74 65 64 20 61 73 20 61 20 73 65 70 61 72 61 ┆dition is ; treated as a separa┆ 0x098b20…098b40 74 65 20 63 6f 6e 64 69 74 69 6f 6e 20 66 6f 72 20 6c 61 74 65 72 20 69 6d 70 72 6f 76 65 6d 65 ┆te condition for later improveme┆ 0x098b40…098b60 6e 74 0d 0a 74 72 79 63 6f 75 6e 74 3a 0d 0a 3b 09 72 65 67 69 73 74 65 72 20 63 20 63 6f 6e 74 ┆nt trycount: ; register c cont┆ 0x098b60…098b80 61 69 6e 73 20 72 65 74 72 79 20 63 6f 75 6e 74 2c 20 64 65 63 72 65 6d 65 6e 74 20 27 74 69 6c ┆ains retry count, decrement 'til┆ 0x098b80…098ba0 20 7a 65 72 6f 0d 0a 09 64 63 72 09 63 0d 0a 09 6a 6e 7a 09 72 65 77 61 69 74 09 3b 66 6f 72 20 ┆ zero dcr c jnz rewait ;for ┆ 0x098ba0…098bc0 61 6e 6f 74 68 65 72 20 74 72 79 0d 0a 3b 0d 0a 3b 09 63 61 6e 6e 6f 74 20 72 65 63 6f 76 65 72 ┆another try ; ; cannot recover┆ 0x098bc0…098be0 20 66 72 6f 6d 20 65 72 72 6f 72 0d 0a 09 6d 76 69 09 61 2c 31 09 3b 65 72 72 6f 72 20 63 6f 64 ┆ from error mvi a,1 ;error cod┆ 0x098be0…098c00 65 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 09 69 6e 74 79 70 65 2c 20 69 6e 62 79 74 65 2c 20 69 6e ┆e ret ; ; intype, inbyte, in┆ 0x098c00…098c20 (40, 1, 8) 71 75 09 30 30 38 30 68 09 3b 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 ┆qu 0080h ;default buffer address┆ 0x098c20…098c40 0d 0a 72 65 74 72 79 09 65 71 75 09 31 30 09 3b 6d 61 78 20 72 65 74 72 69 65 73 20 6f 6e 20 64 ┆ retry equ 10 ;max retries on d┆ 0x098c40…098c60 69 73 6b 20 69 2f 6f 20 62 65 66 6f 72 65 20 65 72 72 6f 72 0d 0a 3b 0d 0a 3b 09 70 65 72 66 6f ┆isk i/o before error ; ; perfo┆ 0x098c60…098c80 72 6d 20 66 6f 6c 6c 6f 77 69 6e 67 20 66 75 6e 63 74 69 6f 6e 73 0d 0a 3b 09 62 6f 6f 74 09 63 ┆rm following functions ; boot c┆ 0x098c80…098ca0 6f 6c 64 20 73 74 61 72 74 0d 0a 3b 09 77 62 6f 6f 74 09 77 61 72 6d 20 73 74 61 72 74 20 28 73 ┆old start ; wboot warm start (s┆ 0x098ca0…098cc0 61 76 65 20 69 2f 6f 20 62 79 74 65 29 0d 0a 3b 09 28 62 6f 6f 74 20 61 6e 64 20 77 62 6f 6f 74 ┆ave i/o byte) ; (boot and wboot┆ 0x098cc0…098ce0 20 61 72 65 20 74 68 65 20 73 61 6d 65 20 66 6f 72 20 6d 64 73 29 0d 0a 3b 09 63 6f 6e 73 74 09 ┆ are the same for mds) ; const ┆ 0x098ce0…098d00 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 0d 0a 3b 09 09 72 65 67 2d 61 20 3d 20 30 30 20 69 66 ┆console status ; reg-a = 00 if┆ 0x098d00…098d20 20 6e 6f 20 63 68 61 72 61 63 74 65 72 20 72 65 61 64 79 0d 0a 3b 09 09 72 65 67 2d 61 20 3d 20 ┆ no character ready ; reg-a = ┆ 0x098d20…098d40 66 66 20 69 66 20 63 68 61 72 61 63 74 65 72 20 72 65 61 64 79 0d 0a 3b 09 63 6f 6e 69 6e 09 63 ┆ff if character ready ; conin c┆ 0x098d40…098d60 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 28 72 65 73 75 6c 74 20 69 6e 20 72 ┆onsole character in (result in r┆ 0x098d60…098d80 65 67 2d 61 29 0d 0a 3b 09 63 6f 6e 6f 75 74 09 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 ┆eg-a) ; conout console characte┆ 0x098d80…098da0 72 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 6c 69 73 74 09 6c 69 ┆r out (char in reg-c) ; list li┆ 0x098da0…098dc0 73 74 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 70 75 6e 63 68 09 ┆st out (char in reg-c) ; punch ┆ 0x098dc0…098de0 70 75 6e 63 68 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 72 65 61 ┆punch out (char in reg-c) ; rea┆ 0x098de0…098e00 64 65 72 09 70 61 70 65 72 20 74 61 70 65 20 72 65 61 64 65 72 20 69 6e 20 28 72 65 73 75 6c 74 ┆der paper tape reader in (result┆ 0x098e00…098e20 (40, 1, 9) 20 32 2c 33 20 61 74 20 38 38 0d 0a 09 6f 72 61 09 61 09 3b 72 65 73 75 6c 74 20 30 30 3f 0d 0a ┆ 2,3 at 88 ora a ;result 00? ┆ 0x098e20…098e40 09 6a 7a 09 73 65 74 64 72 69 76 65 0d 0a 09 6d 76 69 09 61 2c 30 30 31 31 30 30 30 30 62 09 3b ┆ jz setdrive mvi a,00110000b ;┆ 0x098e40…098e60 73 65 6c 65 63 74 73 20 64 72 69 76 65 20 31 20 69 6e 20 62 61 6e 6b 0d 0a 73 65 74 64 72 69 76 ┆selects drive 1 in bank setdriv┆ 0x098e60…098e80 65 3a 0d 0a 09 6d 6f 76 09 62 2c 61 09 3b 73 61 76 65 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 0d ┆e: mov b,a ;save the function ┆ 0x098e80…098ea0 0a 09 6c 78 69 09 68 2c 69 6f 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6d 6f 76 09 61 ┆ lxi h,iof ;io function mov a┆ 0x098ea0…098ec0 2c 6d 0d 0a 09 61 6e 69 09 31 31 30 30 31 31 31 31 62 09 3b 6d 61 73 6b 20 6f 75 74 20 64 69 73 ┆,m ani 11001111b ;mask out dis┆ 0x098ec0…098ee0 6b 20 6e 75 6d 62 65 72 0d 0a 09 6f 72 61 09 62 09 3b 6d 61 73 6b 20 69 6e 20 6e 65 77 20 64 69 ┆k number ora b ;mask in new di┆ 0x098ee0…098f00 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6d 6f 76 09 6d 2c 61 09 3b 73 61 76 65 20 69 74 20 69 6e 20 ┆sk number mov m,a ;save it in ┆ 0x098f00…098f20 69 6f 70 62 0d 0a 09 6d 6f 76 09 6c 2c 63 0d 0a 09 6d 76 69 09 68 2c 30 09 3b 48 4c 3d 64 69 73 ┆iopb mov l,c mvi h,0 ;HL=dis┆ 0x098f20…098f40 6b 20 6e 75 6d 62 65 72 0d 0a 09 64 61 64 09 68 09 3b 2a 32 0d 0a 09 64 61 64 09 68 09 3b 2a 34 ┆k number dad h ;*2 dad h ;*4┆ 0x098f40…098f60 0d 0a 09 64 61 64 09 68 09 3b 2a 38 0d 0a 09 64 61 64 09 68 09 3b 2a 31 36 0d 0a 09 6c 78 69 09 ┆ dad h ;*8 dad h ;*16 lxi ┆ 0x098f60…098f80 64 2c 64 70 62 61 73 65 0d 0a 09 64 61 64 09 64 09 3b 48 4c 3d 64 69 73 6b 20 68 65 61 64 65 72 ┆d,dpbase dad d ;HL=disk header┆ 0x098f80…098fa0 20 74 61 62 6c 65 20 61 64 64 72 65 73 73 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 73 65 74 74 ┆ table address ret ; ; sett┆ 0x098fa0…098fc0 72 6b 3a 09 3b 73 65 74 20 74 72 61 63 6b 20 61 64 64 72 65 73 73 20 67 69 76 65 6e 20 62 79 20 ┆rk: ;set track address given by ┆ 0x098fc0…098fe0 63 0d 0a 09 6c 78 69 09 68 2c 69 6f 74 0d 0a 09 6d 6f 76 09 6d 2c 63 0d 0a 09 72 65 74 0d 0a 3b ┆c lxi h,iot mov m,c ret ;┆ 0x098fe0…099000 0d 0a 73 65 74 73 65 63 3a 09 3b 73 65 74 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 67 69 76 ┆ setsec: ;set sector number giv┆ 0x099000…099020 (40, 1, 10) 69 6e 62 79 74 65 09 3b 63 6c 65 61 72 73 20 74 68 65 20 63 6f 6e 74 72 6f 6c 6c 65 72 0d 0a 3b ┆inbyte ;clears the controller ;┆ 0x099020…099040 0d 0a 09 6c 64 61 09 64 62 61 6e 6b 09 09 3b 73 65 74 20 62 61 6e 6b 20 66 6c 61 67 73 0d 0a 09 ┆ lda dbank ;set bank flags ┆ 0x099040…099060 6f 72 61 09 61 09 09 3b 7a 65 72 6f 20 69 66 20 64 72 69 76 65 20 30 2c 31 20 61 6e 64 20 6e 7a ┆ora a ;zero if drive 0,1 and nz┆ 0x099060…099080 20 69 66 20 32 2c 33 0d 0a 09 6d 76 69 09 61 2c 69 6f 70 62 20 61 6e 64 20 30 66 66 68 09 3b 6c ┆ if 2,3 mvi a,iopb and 0ffh ;l┆ 0x099080…0990a0 6f 77 20 61 64 64 72 65 73 73 20 66 6f 72 20 69 6f 70 62 0d 0a 09 6d 76 69 09 62 2c 69 6f 70 62 ┆ow address for iopb mvi b,iopb┆ 0x0990a0…0990c0 20 73 68 72 20 38 09 3b 68 69 67 68 20 61 64 64 72 65 73 73 20 66 6f 72 20 69 6f 70 62 0d 0a 09 ┆ shr 8 ;high address for iopb ┆ 0x0990c0…0990e0 6a 6e 7a 09 69 6f 64 72 31 09 3b 64 72 69 76 65 20 62 61 6e 6b 20 31 3f 0d 0a 09 6f 75 74 09 69 ┆jnz iodr1 ;drive bank 1? out i┆ 0x0990e0…099100 6c 6f 77 09 09 3b 6c 6f 77 20 61 64 64 72 65 73 73 20 74 6f 20 63 6f 6e 74 72 6f 6c 6c 65 72 0d ┆low ;low address to controller ┆ 0x099100…099120 0a 09 6d 6f 76 09 61 2c 62 0d 0a 09 6f 75 74 09 69 68 69 67 68 09 3b 68 69 67 68 20 61 64 64 72 ┆ mov a,b out ihigh ;high addr┆ 0x099120…099140 65 73 73 0d 0a 09 6a 6d 70 09 77 61 69 74 30 09 09 3b 74 6f 20 77 61 69 74 20 66 6f 72 20 63 6f ┆ess jmp wait0 ;to wait for co┆ 0x099140…099160 6d 70 6c 65 74 65 0d 0a 3b 0d 0a 69 6f 64 72 31 3a 09 3b 64 72 69 76 65 20 62 61 6e 6b 20 31 0d ┆mplete ; iodr1: ;drive bank 1 ┆ 0x099160…099180 0a 09 6f 75 74 09 69 6c 6f 77 2b 31 30 68 09 3b 38 38 20 66 6f 72 20 64 72 69 76 65 20 62 61 6e ┆ out ilow+10h ;88 for drive ban┆ 0x099180…0991a0 6b 20 31 30 0d 0a 09 6d 6f 76 09 61 2c 62 0d 0a 09 6f 75 74 09 69 68 69 67 68 2b 31 30 68 0d 0a ┆k 10 mov a,b out ihigh+10h ┆ 0x0991a0…0991c0 3b 0d 0a 77 61 69 74 30 3a 09 63 61 6c 6c 09 69 6e 73 74 61 74 09 09 3b 77 61 69 74 20 66 6f 72 ┆; wait0: call instat ;wait for┆ 0x0991c0…0991e0 20 63 6f 6d 70 6c 65 74 69 6f 6e 0d 0a 09 61 6e 69 09 69 6f 72 64 79 09 09 3b 72 65 61 64 79 3f ┆ completion ani iordy ;ready?┆ 0x0991e0…099200 0d 0a 09 6a 7a 09 77 61 69 74 30 0d 0a 3b 0d 0a 3b 09 63 68 65 63 6b 20 69 6f 20 63 6f 6d 70 6c ┆ jz wait0 ; ; check io compl┆ 0x099200…099220 (40, 1, 11) 73 74 61 74 20 72 65 61 64 20 64 72 69 76 65 20 62 61 6e 6b 20 30 30 20 6f 72 20 31 30 0d 0a 69 ┆stat read drive bank 00 or 10 i┆ 0x099220…099240 6e 74 79 70 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 ┆ntype: lda dbank ora a jnz i┆ 0x099240…099260 6e 74 79 70 31 09 3b 73 6b 69 70 20 74 6f 20 62 61 6e 6b 20 31 30 0d 0a 09 69 6e 09 72 74 79 70 ┆ntyp1 ;skip to bank 10 in rtyp┆ 0x099260…099280 65 0d 0a 09 72 65 74 0d 0a 69 6e 74 79 70 31 3a 09 69 6e 09 72 74 79 70 65 2b 31 30 68 09 3b 37 ┆e ret intyp1: in rtype+10h ;7┆ 0x099280…0992a0 38 20 66 6f 72 20 30 2c 31 20 20 38 38 20 66 6f 72 20 32 2c 33 0d 0a 09 72 65 74 0d 0a 3b 0d 0a ┆8 for 0,1 88 for 2,3 ret ; ┆ 0x0992a0…0992c0 69 6e 62 79 74 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 ┆inbyte: lda dbank ora a jnz ┆ 0x0992c0…0992e0 69 6e 62 79 74 31 0d 0a 09 69 6e 09 72 62 79 74 65 0d 0a 09 72 65 74 0d 0a 69 6e 62 79 74 31 3a ┆inbyt1 in rbyte ret inbyt1:┆ 0x0992e0…099300 09 69 6e 09 72 62 79 74 65 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 69 6e 73 74 61 74 3a 09 ┆ in rbyte+10h ret ; instat: ┆ 0x099300…099320 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 73 74 61 31 0d 0a ┆lda dbank ora a jnz insta1 ┆ 0x099320…099340 09 69 6e 09 64 73 74 61 74 0d 0a 09 72 65 74 0d 0a 69 6e 73 74 61 31 3a 09 69 6e 09 64 73 74 61 ┆ in dstat ret insta1: in dsta┆ 0x099340…099360 74 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 61 74 61 20 61 72 65 ┆t+10h ret ; ; ; ; data are┆ 0x099360…099380 61 73 20 28 6d 75 73 74 20 62 65 20 69 6e 20 72 61 6d 29 0d 0a 64 62 61 6e 6b 3a 09 64 62 09 30 ┆as (must be in ram) dbank: db 0┆ 0x099380…0993a0 09 3b 64 69 73 6b 20 62 61 6e 6b 20 30 30 20 69 66 20 64 72 69 76 65 20 30 2c 31 0d 0a 09 09 09 ┆ ;disk bank 00 if drive 0,1 ┆ 0x0993a0…0993c0 3b 09 20 20 20 31 30 20 69 66 20 64 72 69 76 65 20 32 2c 33 0d 0a 69 6f 70 62 3a 09 3b 69 6f 20 ┆; 10 if drive 2,3 iopb: ;io ┆ 0x0993c0…0993e0 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 0d 0a 09 64 62 09 38 30 68 09 3b 6e 6f 72 6d 61 6c ┆parameter block db 80h ;normal┆ 0x0993e0…099400 20 69 2f 6f 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 69 6f 66 3a 09 64 62 09 72 65 61 64 66 09 3b 69 ┆ i/o operation iof: db readf ;i┆ 0x099400…099420 (40, 1, 12) 20 74 6f 20 72 65 67 2d 61 29 0d 0a 3b 09 68 6f 6d 65 09 6d 6f 76 65 20 74 6f 20 74 72 61 63 6b ┆ to reg-a) ; home move to track┆ 0x099420…099440 20 30 30 0d 0a 3b 0d 0a 3b 09 28 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 61 6c 6c 73 20 73 ┆ 00 ; ; (the following calls s┆ 0x099440…099460 65 74 2d 75 70 20 74 68 65 20 69 6f 20 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 20 66 6f 72 ┆et-up the io parameter block for┆ 0x099460…099480 20 74 68 65 0d 0a 3b 09 6d 64 73 2c 20 77 68 69 63 68 20 69 73 20 75 73 65 64 20 74 6f 20 70 65 ┆ the ; mds, which is used to pe┆ 0x099480…0994a0 72 66 6f 72 6d 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 73 20 61 6e 64 20 77 72 69 74 65 ┆rform subsequent reads and write┆ 0x0994a0…0994c0 73 29 0d 0a 3b 09 73 65 6c 64 73 6b 09 73 65 6c 65 63 74 20 64 69 73 6b 20 67 69 76 65 6e 20 62 ┆s) ; seldsk select disk given b┆ 0x0994c0…0994e0 79 20 72 65 67 2d 63 20 28 30 2c 31 2c 32 2e 2e 2e 29 0d 0a 3b 09 73 65 74 74 72 6b 09 73 65 74 ┆y reg-c (0,1,2...) ; settrk set┆ 0x0994e0…099500 20 74 72 61 63 6b 20 61 64 64 72 65 73 73 20 28 30 2c 2e 2e 2e 37 36 29 20 66 6f 72 20 73 75 62 ┆ track address (0,...76) for sub┆ 0x099500…099520 73 65 71 75 65 6e 74 20 72 65 61 64 2f 77 72 69 74 65 0d 0a 3b 09 73 65 74 73 65 63 09 73 65 74 ┆sequent read/write ; setsec set┆ 0x099520…099540 20 73 65 63 74 6f 72 20 61 64 64 72 65 73 73 20 28 31 2c 2e 2e 2e 2c 32 36 29 20 66 6f 72 20 73 ┆ sector address (1,...,26) for s┆ 0x099540…099560 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 2f 77 72 69 74 65 0d 0a 3b 09 73 65 74 64 6d 61 09 73 ┆ubsequent read/write ; setdma s┆ 0x099560…099580 65 74 20 73 75 62 73 65 71 75 65 6e 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 28 69 6e 69 74 69 ┆et subsequent dma address (initi┆ 0x099580…0995a0 61 6c 6c 79 20 38 30 68 29 0d 0a 3b 0d 0a 3b 09 28 72 65 61 64 20 61 6e 64 20 77 72 69 74 65 20 ┆ally 80h) ; ; (read and write ┆ 0x0995a0…0995c0 61 73 73 75 6d 65 20 70 72 65 76 69 6f 75 73 20 63 61 6c 6c 73 20 74 6f 20 73 65 74 20 75 70 20 ┆assume previous calls to set up ┆ 0x0995c0…0995e0 74 68 65 20 69 6f 20 70 61 72 61 6d 65 74 65 72 73 29 0d 0a 3b 09 72 65 61 64 09 72 65 61 64 20 ┆the io parameters) ; read read ┆ 0x0995e0…099600 74 72 61 63 6b 2f 73 65 63 74 6f 72 20 74 6f 20 70 72 65 73 65 74 20 64 6d 61 20 61 64 64 72 65 ┆track/sector to preset dma addre┆ 0x099600…099620 (40, 1, 13) 65 6e 20 62 79 20 63 0d 0a 09 6c 78 69 09 68 2c 69 6f 73 0d 0a 09 6d 6f 76 09 6d 2c 63 0d 0a 09 ┆en by c lxi h,ios mov m,c ┆ 0x099620…099640 72 65 74 0d 0a 73 65 63 74 72 61 6e 3a 0d 0a 09 09 3b 74 72 61 6e 73 6c 61 74 65 20 73 65 63 74 ┆ret sectran: ;translate sect┆ 0x099640…099660 6f 72 20 62 63 20 75 73 69 6e 67 20 74 61 62 6c 65 20 61 74 20 64 65 0d 0a 09 6d 76 69 09 62 2c ┆or bc using table at de mvi b,┆ 0x099660…099680 30 09 3b 64 6f 75 62 6c 65 20 70 72 65 63 69 73 69 6f 6e 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 ┆0 ;double precision sector numbe┆ 0x099680…0996a0 72 20 69 6e 20 42 43 0d 0a 09 78 63 68 67 09 09 3b 74 72 61 6e 73 6c 61 74 65 20 74 61 62 6c 65 ┆r in BC xchg ;translate table┆ 0x0996a0…0996c0 20 61 64 64 72 65 73 73 20 74 6f 20 48 4c 0d 0a 09 64 61 64 09 62 09 3b 74 72 61 6e 73 6c 61 74 ┆ address to HL dad b ;translat┆ 0x0996c0…0996e0 65 28 73 65 63 74 6f 72 29 20 61 64 64 72 65 73 73 0d 0a 09 6d 6f 76 09 61 2c 6d 09 3b 74 72 61 ┆e(sector) address mov a,m ;tra┆ 0x0996e0…099700 6e 73 6c 61 74 65 64 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 74 6f 20 41 0d 0a 09 73 74 61 ┆nslated sector number to A sta┆ 0x099700…099720 09 69 6f 73 0d 0a 09 6d 6f 76 09 6c 2c 61 09 3b 72 65 74 75 72 6e 20 73 65 63 74 6f 72 20 6e 75 ┆ ios mov l,a ;return sector nu┆ 0x099720…099740 6d 62 65 72 20 69 6e 20 4c 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 73 65 74 64 6d 61 3a 09 3b 73 65 74 ┆mber in L ret ; setdma: ;set┆ 0x099740…099760 20 64 6d 61 20 61 64 64 72 65 73 73 20 67 69 76 65 6e 20 62 79 20 72 65 67 73 20 62 2c 63 0d 0a ┆ dma address given by regs b,c ┆ 0x099760…099780 09 6d 6f 76 09 6c 2c 63 0d 0a 09 6d 6f 76 09 68 2c 62 0d 0a 09 73 68 6c 64 09 69 6f 64 0d 0a 09 ┆ mov l,c mov h,b shld iod ┆ 0x099780…0997a0 72 65 74 0d 0a 3b 0d 0a 72 65 61 64 3a 09 3b 72 65 61 64 20 6e 65 78 74 20 64 69 73 6b 20 72 65 ┆ret ; read: ;read next disk re┆ 0x0997a0…0997c0 63 6f 72 64 20 28 61 73 73 75 6d 69 6e 67 20 64 69 73 6b 2f 74 72 6b 2f 73 65 63 2f 64 6d 61 20 ┆cord (assuming disk/trk/sec/dma ┆ 0x0997c0…0997e0 73 65 74 29 0d 0a 09 6d 76 69 09 63 2c 72 65 61 64 66 09 3b 73 65 74 20 74 6f 20 72 65 61 64 20 ┆set) mvi c,readf ;set to read ┆ 0x0997e0…099800 66 75 6e 63 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 73 65 74 66 75 6e 63 0d 0a 09 63 61 6c 6c 09 77 ┆function call setfunc call w┆ 0x099800…099820 (40, 1, 14) 65 74 69 6f 6e 20 6f 6b 0d 0a 09 63 61 6c 6c 09 69 6e 74 79 70 65 09 09 3b 6d 75 73 74 20 62 65 ┆etion ok call intype ;must be┆ 0x099820…099840 20 69 6f 20 63 6f 6d 70 6c 65 74 65 20 28 30 30 29 20 75 6e 6c 69 6e 6b 65 64 0d 0a 3b 09 30 30 ┆ io complete (00) unlinked ; 00┆ 0x099840…099860 20 75 6e 6c 69 6e 6b 65 64 20 69 2f 6f 20 63 6f 6d 70 6c 65 74 65 2c 20 20 20 20 30 31 20 6c 69 ┆ unlinked i/o complete, 01 li┆ 0x099860…099880 6e 6b 65 64 20 69 2f 6f 20 63 6f 6d 70 6c 65 74 65 20 28 6e 6f 74 20 75 73 65 64 29 0d 0a 3b 09 ┆nked i/o complete (not used) ; ┆ 0x099880…0998a0 31 30 20 64 69 73 6b 20 73 74 61 74 75 73 20 63 68 61 6e 67 65 64 20 20 20 20 20 20 20 31 31 20 ┆10 disk status changed 11 ┆ 0x0998a0…0998c0 28 6e 6f 74 20 75 73 65 64 29 0d 0a 09 63 70 69 09 31 30 62 09 09 3b 72 65 61 64 79 20 73 74 61 ┆(not used) cpi 10b ;ready sta┆ 0x0998c0…0998e0 74 75 73 20 63 68 61 6e 67 65 3f 0d 0a 09 6a 7a 09 77 72 65 61 64 79 0d 0a 3b 0d 0a 3b 09 6d 75 ┆tus change? jz wready ; ; mu┆ 0x0998e0…099900 73 74 20 62 65 20 30 30 20 69 6e 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 0d 0a 09 6f 72 ┆st be 00 in the accumulator or┆ 0x099900…099920 61 09 61 0d 0a 09 6a 6e 7a 09 77 65 72 72 6f 72 09 09 3b 73 6f 6d 65 20 6f 74 68 65 72 20 63 6f ┆a a jnz werror ;some other co┆ 0x099920…099940 6e 64 69 74 69 6f 6e 2c 20 72 65 74 72 79 0d 0a 3b 0d 0a 3b 09 63 68 65 63 6b 20 69 2f 6f 20 65 ┆ndition, retry ; ; check i/o e┆ 0x099940…099960 72 72 6f 72 20 62 69 74 73 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 0d 0a 09 72 61 6c 0d 0a 09 ┆rror bits call inbyte ral ┆ 0x099960…099980 6a 63 09 77 72 65 61 64 79 09 09 3b 75 6e 69 74 20 6e 6f 74 20 72 65 61 64 79 0d 0a 09 72 61 72 ┆jc wready ;unit not ready rar┆ 0x099980…0999a0 0d 0a 09 61 6e 69 09 31 31 31 31 31 31 31 30 62 09 3b 61 6e 79 20 6f 74 68 65 72 20 65 72 72 6f ┆ ani 11111110b ;any other erro┆ 0x0999a0…0999c0 72 73 3f 20 20 28 64 65 6c 65 74 65 64 20 64 61 74 61 20 6f 6b 29 0d 0a 09 6a 6e 7a 09 77 65 72 ┆rs? (deleted data ok) jnz wer┆ 0x0999c0…0999e0 72 6f 72 0d 0a 3b 0d 0a 3b 09 72 65 61 64 20 6f 72 20 77 72 69 74 65 20 69 73 20 6f 6b 2c 20 61 ┆ror ; ; read or write is ok, a┆ 0x0999e0…099a00 63 63 75 6d 75 6c 61 74 6f 72 20 63 6f 6e 74 61 69 6e 73 20 7a 65 72 6f 0d 0a 09 72 65 74 0d 0a ┆ccumulator contains zero ret ┆ 0x099a00…099a20 (40, 1, 15) 6f 20 66 75 6e 63 74 69 6f 6e 2c 20 69 6e 69 74 69 61 6c 20 72 65 61 64 0d 0a 69 6f 6e 3a 09 64 ┆o function, initial read ion: d┆ 0x099a20…099a40 62 09 31 09 3b 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 20 74 6f 20 72 65 61 64 0d 0a ┆b 1 ;number of sectors to read ┆ 0x099a40…099a60 69 6f 74 3a 09 64 62 09 6f 66 66 73 65 74 09 3b 74 72 61 63 6b 20 6e 75 6d 62 65 72 0d 0a 69 6f ┆iot: db offset ;track number io┆ 0x099a60…099a80 73 3a 09 64 62 09 31 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 0d 0a 69 6f 64 3a 09 64 77 09 ┆s: db 1 ;sector number iod: dw ┆ 0x099a80…099aa0 62 75 66 66 09 3b 69 6f 20 61 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 65 66 69 6e 65 ┆buff ;io address ; ; ; define┆ 0x099aa0…099ac0 20 72 61 6d 20 61 72 65 61 73 20 66 6f 72 20 62 64 6f 73 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 09 ┆ ram areas for bdos operation ┆ 0x099ac0…099ae0 65 6e 64 65 66 0d 0a 09 65 6e 64 0d 0a 3b 09 4d 44 53 2d 38 30 30 20 49 2f 4f 20 44 72 69 76 65 ┆endef end ; MDS-800 I/O Drive┆ 0x099ae0…099b00 72 73 20 66 6f 72 20 43 50 2f 4d 20 32 2e 32 0d 0a 3b 09 28 66 6f 75 72 20 64 72 69 76 65 20 73 ┆rs for CP/M 2.2 ; (four drive s┆ 0x099b00…099b20 69 6e 67 6c 65 20 64 65 6e 73 69 74 79 20 76 65 72 73 69 6f 6e 29 0d 0a 3b 0d 0a 3b 09 56 65 72 ┆ingle density version) ; ; Ver┆ 0x099b20…099b40 73 69 6f 6e 20 32 2e 32 20 46 65 62 72 75 61 72 79 2c 20 31 39 38 30 0d 0a 3b 0d 0a 76 65 72 73 ┆sion 2.2 February, 1980 ; vers┆ 0x099b40…099b60 09 65 71 75 09 32 32 09 3b 76 65 72 73 69 6f 6e 20 32 2e 32 0d 0a 3b 0d 0a 3b 09 43 6f 70 79 72 ┆ equ 22 ;version 2.2 ; ; Copyr┆ 0x099b60…099b80 69 67 68 74 20 28 63 29 20 31 39 38 30 0d 0a 3b 09 44 69 67 69 74 61 6c 20 52 65 73 65 61 72 63 ┆ight (c) 1980 ; Digital Researc┆ 0x099b80…099ba0 68 0d 0a 3b 09 42 6f 78 20 35 37 39 2c 20 50 61 63 69 66 69 63 20 47 72 6f 76 65 0d 0a 3b 09 43 ┆h ; Box 579, Pacific Grove ; C┆ 0x099ba0…099bc0 61 6c 69 66 6f 72 6e 69 61 2c 20 39 33 39 35 30 0d 0a 3b 0d 0a 3b 0d 0a 74 72 75 65 09 65 71 75 ┆alifornia, 93950 ; ; true equ┆ 0x099bc0…099be0 09 30 66 66 66 66 68 09 3b 76 61 6c 75 65 20 6f 66 20 22 74 72 75 65 22 0d 0a 66 61 6c 73 65 09 ┆ 0ffffh ;value of "true" false ┆ 0x099be0…099c00 65 71 75 09 6e 6f 74 20 74 72 75 65 09 3b 22 66 61 6c 73 65 22 0d 0a 74 65 73 74 09 65 71 75 09 ┆equ not true ;"false" test equ ┆ 0x099c00…099c20 (41, 0, 1) 73 73 0d 0a 3b 09 77 72 69 74 65 09 77 72 69 74 65 20 74 72 61 63 6b 2f 73 65 63 74 6f 72 20 66 ┆ss ; write write track/sector f┆ 0x099c20…099c40 72 6f 6d 20 70 72 65 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b 09 6a 75 6d ┆rom preset dma address ; ; jum┆ 0x099c40…099c60 70 20 76 65 63 74 6f 72 20 66 6f 72 20 69 6e 64 69 76 69 75 61 6c 20 72 6f 75 74 69 6e 65 73 0d ┆p vector for indiviual routines ┆ 0x099c60…099c80 0a 09 6a 6d 70 09 62 6f 6f 74 0d 0a 77 62 6f 6f 74 65 3a 09 6a 6d 70 09 77 62 6f 6f 74 0d 0a 09 ┆ jmp boot wboote: jmp wboot ┆ 0x099c80…099ca0 6a 6d 70 09 63 6f 6e 73 74 0d 0a 09 6a 6d 70 09 63 6f 6e 69 6e 0d 0a 09 6a 6d 70 09 63 6f 6e 6f ┆jmp const jmp conin jmp cono┆ 0x099ca0…099cc0 75 74 0d 0a 09 6a 6d 70 09 6c 69 73 74 0d 0a 09 6a 6d 70 09 70 75 6e 63 68 0d 0a 09 6a 6d 70 09 ┆ut jmp list jmp punch jmp ┆ 0x099cc0…099ce0 72 65 61 64 65 72 0d 0a 09 6a 6d 70 09 68 6f 6d 65 0d 0a 09 6a 6d 70 09 73 65 6c 64 73 6b 0d 0a ┆reader jmp home jmp seldsk ┆ 0x099ce0…099d00 09 6a 6d 70 09 73 65 74 74 72 6b 0d 0a 09 6a 6d 70 09 73 65 74 73 65 63 0d 0a 09 6a 6d 70 09 73 ┆ jmp settrk jmp setsec jmp s┆ 0x099d00…099d20 65 74 64 6d 61 0d 0a 09 6a 6d 70 09 72 65 61 64 0d 0a 09 6a 6d 70 09 77 72 69 74 65 0d 0a 09 6a ┆etdma jmp read jmp write j┆ 0x099d20…099d40 6d 70 09 6c 69 73 74 73 74 09 3b 6c 69 73 74 20 73 74 61 74 75 73 0d 0a 09 6a 6d 70 09 73 65 63 ┆mp listst ;list status jmp sec┆ 0x099d40…099d60 74 72 61 6e 0d 0a 3b 0d 0a 09 6d 61 63 6c 69 62 09 64 69 73 6b 64 65 66 09 3b 6c 6f 61 64 20 74 ┆tran ; maclib diskdef ;load t┆ 0x099d60…099d80 68 65 20 64 69 73 6b 20 64 65 66 69 6e 69 74 69 6f 6e 20 6c 69 62 72 61 72 79 0d 0a 09 64 69 73 ┆he disk definition library dis┆ 0x099d80…099da0 6b 73 09 34 09 3b 66 6f 75 72 20 64 69 73 6b 73 0d 0a 09 64 69 73 6b 64 65 66 09 30 2c 31 2c 32 ┆ks 4 ;four disks diskdef 0,1,2┆ 0x099da0…099dc0 36 2c 36 2c 31 30 32 34 2c 32 34 33 2c 36 34 2c 36 34 2c 6f 66 66 73 65 74 0d 0a 09 64 69 73 6b ┆6,6,1024,243,64,64,offset disk┆ 0x099dc0…099de0 64 65 66 09 31 2c 30 0d 0a 09 64 69 73 6b 64 65 66 09 32 2c 30 0d 0a 09 64 69 73 6b 64 65 66 09 ┆def 1,0 diskdef 2,0 diskdef ┆ 0x099de0…099e00 33 2c 30 0d 0a 3b 09 65 6e 64 65 66 20 6f 63 63 75 72 73 20 61 74 20 65 6e 64 20 6f 66 20 61 73 ┆3,0 ; endef occurs at end of as┆ 0x099e00…099e20 (41, 0, 2) 79 20 73 69 7a 65 20 66 69 6c 6c 65 64 20 62 79 20 72 65 6c 6f 63 61 74 6f 72 0d 0a 09 65 6e 64 ┆y size filled by relocator end┆ 0x099e20…099e40 69 66 0d 0a 09 64 62 09 27 6b 20 43 50 2f 4d 20 76 65 72 73 20 27 0d 0a 09 64 62 09 76 65 72 73 ┆if db 'k CP/M vers ' db vers┆ 0x099e40…099e60 2f 31 30 2b 27 30 27 2c 27 2e 27 2c 76 65 72 73 20 6d 6f 64 20 31 30 2b 27 30 27 0d 0a 09 64 62 ┆/10+'0','.',vers mod 10+'0' db┆ 0x099e60…099e80 09 63 72 2c 6c 66 2c 30 0d 0a 3b 0d 0a 62 6f 6f 74 3a 09 3b 70 72 69 6e 74 20 73 69 67 6e 6f 6e ┆ cr,lf,0 ; boot: ;print signon┆ 0x099e80…099ea0 20 6d 65 73 73 61 67 65 20 61 6e 64 20 67 6f 20 74 6f 20 63 63 70 0d 0a 3b 09 28 6e 6f 74 65 3a ┆ message and go to ccp ; (note:┆ 0x099ea0…099ec0 20 6d 64 73 20 62 6f 6f 74 20 69 6e 69 74 69 61 6c 69 7a 65 64 20 69 6f 62 79 74 65 20 61 74 20 ┆ mds boot initialized iobyte at ┆ 0x099ec0…099ee0 30 30 30 33 68 29 0d 0a 09 6c 78 69 09 73 70 2c 62 75 66 66 2b 38 30 68 0d 0a 09 6c 78 69 09 68 ┆0003h) lxi sp,buff+80h lxi h┆ 0x099ee0…099f00 2c 73 69 67 6e 6f 6e 0d 0a 09 63 61 6c 6c 09 70 72 6d 73 67 09 3b 70 72 69 6e 74 20 6d 65 73 73 ┆,signon call prmsg ;print mess┆ 0x099f00…099f20 61 67 65 0d 0a 09 78 72 61 09 61 09 3b 63 6c 65 61 72 20 61 63 63 75 6d 75 6c 61 74 6f 72 0d 0a ┆age xra a ;clear accumulator ┆ 0x099f20…099f40 09 73 74 61 09 63 64 69 73 6b 09 3b 73 65 74 20 69 6e 69 74 69 61 6c 6c 79 20 74 6f 20 64 69 73 ┆ sta cdisk ;set initially to dis┆ 0x099f40…099f60 6b 20 61 0d 0a 09 6a 6d 70 09 67 6f 63 70 6d 09 3b 67 6f 20 74 6f 20 63 70 2f 6d 0d 0a 3b 0d 0a ┆k a jmp gocpm ;go to cp/m ; ┆ 0x099f60…099f80 3b 0d 0a 77 62 6f 6f 74 3a 3b 09 6c 6f 61 64 65 72 20 6f 6e 20 74 72 61 63 6b 20 30 2c 20 73 65 ┆; wboot:; loader on track 0, se┆ 0x099f80…099fa0 63 74 6f 72 20 31 2c 20 77 68 69 63 68 20 77 69 6c 6c 20 62 65 20 73 6b 69 70 70 65 64 20 66 6f ┆ctor 1, which will be skipped fo┆ 0x099fa0…099fc0 72 20 77 61 72 6d 20 0d 0a 3b 09 72 65 61 64 20 63 70 2f 6d 20 66 72 6f 6d 20 64 69 73 6b 20 2d ┆r warm ; read cp/m from disk -┆ 0x099fc0…099fe0 20 61 73 73 75 6d 69 6e 67 20 74 68 65 72 65 20 69 73 20 61 20 31 32 38 20 62 79 74 65 20 63 6f ┆ assuming there is a 128 byte co┆ 0x099fe0…09a000 6c 64 20 73 74 61 72 74 0d 0a 3b 09 73 74 61 72 74 2e 0d 0a 3b 0d 0a 09 6c 78 69 09 73 70 2c 62 ┆ld start ; start. ; lxi sp,b┆ 0x09a000…09a020 (41, 0, 3) 20 35 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 09 73 74 61 09 37 2a 38 09 3b 6a 6d 70 20 ┆ 5 if not test sta 7*8 ;jmp ┆ 0x09a020…09a040 74 6f 20 6d 6f 6e 38 30 20 28 6d 61 79 20 68 61 76 65 20 62 65 65 6e 20 63 68 61 6e 67 65 64 20 ┆to mon80 (may have been changed ┆ 0x09a040…09a060 62 79 20 64 64 74 29 0d 0a 09 6c 78 69 09 68 2c 6d 6f 6e 38 30 0d 0a 09 73 68 6c 64 09 37 2a 38 ┆by ddt) lxi h,mon80 shld 7*8┆ 0x09a060…09a080 2b 31 0d 0a 09 65 6e 64 69 66 0d 0a 3b 09 6c 65 61 76 65 20 69 6f 62 79 74 65 20 73 65 74 0d 0a ┆+1 endif ; leave iobyte set ┆ 0x09a080…09a0a0 3b 09 70 72 65 76 69 6f 75 73 6c 79 20 73 65 6c 65 63 74 65 64 20 64 69 73 6b 20 77 61 73 20 62 ┆; previously selected disk was b┆ 0x09a0a0…09a0c0 2c 20 73 65 6e 64 20 70 61 72 61 6d 65 74 65 72 20 74 6f 20 63 70 6d 0d 0a 09 6c 64 61 09 63 64 ┆, send parameter to cpm lda cd┆ 0x09a0c0…09a0e0 69 73 6b 09 3b 6c 61 73 74 20 6c 6f 67 67 65 64 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6d ┆isk ;last logged disk number m┆ 0x09a0e0…09a100 6f 76 09 63 2c 61 09 3b 73 65 6e 64 20 74 6f 20 63 63 70 20 74 6f 20 6c 6f 67 20 69 74 20 69 6e ┆ov c,a ;send to ccp to log it in┆ 0x09a100…09a120 0d 0a 09 65 69 0d 0a 09 6a 6d 70 09 63 70 6d 62 0d 0a 3b 0d 0a 3b 09 65 72 72 6f 72 20 63 6f 6e ┆ ei jmp cpmb ; ; error con┆ 0x09a120…09a140 64 69 74 69 6f 6e 20 6f 63 63 75 72 72 65 64 2c 20 70 72 69 6e 74 20 6d 65 73 73 61 67 65 20 61 ┆dition occurred, print message a┆ 0x09a140…09a160 6e 64 20 72 65 74 72 79 0d 0a 62 6f 6f 74 65 72 72 3a 0d 0a 09 70 6f 70 09 62 09 3b 72 65 63 61 ┆nd retry booterr: pop b ;reca┆ 0x09a160…09a180 6c 6c 20 63 6f 75 6e 74 73 0d 0a 09 64 63 72 09 63 0d 0a 09 6a 7a 09 62 6f 6f 74 65 72 30 0d 0a ┆ll counts dcr c jz booter0 ┆ 0x09a180…09a1a0 3b 09 74 72 79 20 61 67 61 69 6e 0d 0a 09 70 75 73 68 09 62 0d 0a 09 6a 6d 70 09 77 62 6f 6f 74 ┆; try again push b jmp wboot┆ 0x09a1a0…09a1c0 30 0d 0a 3b 0d 0a 62 6f 6f 74 65 72 30 3a 0d 0a 3b 09 6f 74 68 65 72 77 69 73 65 20 74 6f 6f 20 ┆0 ; booter0: ; otherwise too ┆ 0x09a1c0…09a1e0 6d 61 6e 79 20 72 65 74 72 69 65 73 0d 0a 09 6c 78 69 09 68 2c 62 6f 6f 74 6d 73 67 0d 0a 09 63 ┆many retries lxi h,bootmsg c┆ 0x09a1e0…09a200 61 6c 6c 09 70 72 6d 73 67 0d 0a 09 6a 6d 70 09 72 6d 6f 6e 38 30 09 3b 6d 64 73 20 68 61 72 64 ┆all prmsg jmp rmon80 ;mds hard┆ 0x09a200…09a220 (41, 0, 4) 76 69 09 62 2c 30 09 3b 64 6f 75 62 6c 65 20 70 72 65 63 69 73 69 6f 6e 20 73 65 63 74 6f 72 20 ┆vi b,0 ;double precision sector ┆ 0x09a220…09a240 6e 75 6d 62 65 72 20 69 6e 20 42 43 0d 0a 09 78 63 68 67 09 09 3b 74 72 61 6e 73 6c 61 74 65 20 ┆number in BC xchg ;translate ┆ 0x09a240…09a260 74 61 62 6c 65 20 61 64 64 72 65 73 73 20 74 6f 20 48 4c 0d 0a 09 64 61 64 09 62 09 3b 74 72 61 ┆table address to HL dad b ;tra┆ 0x09a260…09a280 6e 73 6c 61 74 65 28 73 65 63 74 6f 72 29 20 61 64 64 72 65 73 73 0d 0a 09 6d 6f 76 09 61 2c 6d ┆nslate(sector) address mov a,m┆ 0x09a280…09a2a0 09 3b 74 72 61 6e 73 6c 61 74 65 64 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 74 6f 20 41 0d ┆ ;translated sector number to A ┆ 0x09a2a0…09a2c0 0a 09 73 74 61 09 69 6f 73 0d 0a 09 6d 6f 76 09 6c 2c 61 09 3b 72 65 74 75 72 6e 20 73 65 63 74 ┆ sta ios mov l,a ;return sect┆ 0x09a2c0…09a2e0 6f 72 20 6e 75 6d 62 65 72 20 69 6e 20 4c 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 73 65 74 64 6d 61 3a ┆or number in L ret ; setdma:┆ 0x09a2e0…09a300 09 3b 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 67 69 76 65 6e 20 62 79 20 72 65 67 73 20 ┆ ;set dma address given by regs ┆ 0x09a300…09a320 62 2c 63 0d 0a 09 6d 6f 76 09 6c 2c 63 0d 0a 09 6d 6f 76 09 68 2c 62 0d 0a 09 73 68 6c 64 09 69 ┆b,c mov l,c mov h,b shld i┆ 0x09a320…09a340 6f 64 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 72 65 61 64 3a 09 3b 72 65 61 64 20 6e 65 78 74 20 64 69 ┆od ret ; read: ;read next di┆ 0x09a340…09a360 73 6b 20 72 65 63 6f 72 64 20 28 61 73 73 75 6d 69 6e 67 20 64 69 73 6b 2f 74 72 6b 2f 73 65 63 ┆sk record (assuming disk/trk/sec┆ 0x09a360…09a380 2f 64 6d 61 20 73 65 74 29 0d 0a 09 6d 76 69 09 63 2c 72 65 61 64 66 09 3b 73 65 74 20 74 6f 20 ┆/dma set) mvi c,readf ;set to ┆ 0x09a380…09a3a0 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 73 65 74 66 75 6e 63 0d 0a 09 63 ┆read function call setfunc c┆ 0x09a3a0…09a3c0 61 6c 6c 09 77 61 69 74 69 6f 09 3b 70 65 72 66 6f 72 6d 20 72 65 61 64 20 66 75 6e 63 74 69 6f ┆all waitio ;perform read functio┆ 0x09a3c0…09a3e0 6e 0d 0a 09 72 65 74 09 09 3b 6d 61 79 20 68 61 76 65 20 65 72 72 6f 72 20 73 65 74 20 69 6e 20 ┆n ret ;may have error set in ┆ 0x09a3e0…09a400 72 65 67 2d 61 0d 0a 3b 0d 0a 3b 0d 0a 77 72 69 74 65 3a 09 3b 64 69 73 6b 20 77 72 69 74 65 20 ┆reg-a ; ; write: ;disk write ┆ 0x09a400…09a420 (41, 0, 5) 73 65 6d 62 6c 79 0d 0a 3b 0d 0a 3b 09 65 6e 64 20 6f 66 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 2d ┆sembly ; ; end of controller -┆ 0x09a420…09a440 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 63 6f 64 65 2c 20 74 68 65 20 72 65 6d 61 69 6e 69 6e 67 ┆ independent code, the remaining┆ 0x09a440…09a460 20 73 75 62 72 6f 75 74 69 6e 65 73 0d 0a 3b 09 61 72 65 20 74 61 69 6c 6f 72 65 64 20 74 6f 20 ┆ subroutines ; are tailored to ┆ 0x09a460…09a480 74 68 65 20 70 61 72 74 69 63 75 6c 61 72 20 6f 70 65 72 61 74 69 6e 67 20 65 6e 76 69 72 6f 6e ┆the particular operating environ┆ 0x09a480…09a4a0 6d 65 6e 74 2c 20 61 6e 64 20 6d 75 73 74 0d 0a 3b 09 62 65 20 61 6c 74 65 72 65 64 20 66 6f 72 ┆ment, and must ; be altered for┆ 0x09a4a0…09a4c0 20 61 6e 79 20 73 79 73 74 65 6d 20 77 68 69 63 68 20 64 69 66 66 65 72 73 20 66 72 6f 6d 20 74 ┆ any system which differs from t┆ 0x09a4c0…09a4e0 68 65 20 69 6e 74 65 6c 20 6d 64 73 2e 0d 0a 3b 0d 0a 3b 09 74 68 65 20 66 6f 6c 6c 6f 77 69 6e ┆he intel mds. ; ; the followin┆ 0x09a4e0…09a500 67 20 63 6f 64 65 20 61 73 73 75 6d 65 73 20 74 68 65 20 6d 64 73 20 6d 6f 6e 69 74 6f 72 20 65 ┆g code assumes the mds monitor e┆ 0x09a500…09a520 78 69 73 74 73 20 61 74 20 30 66 38 30 30 68 0d 0a 3b 09 61 6e 64 20 75 73 65 73 20 74 68 65 20 ┆xists at 0f800h ; and uses the ┆ 0x09a520…09a540 69 2f 6f 20 73 75 62 72 6f 75 74 69 6e 65 73 20 77 69 74 68 69 6e 20 74 68 65 20 6d 6f 6e 69 74 ┆i/o subroutines within the monit┆ 0x09a540…09a560 6f 72 0d 0a 3b 0d 0a 3b 09 77 65 20 61 6c 73 6f 20 61 73 73 75 6d 65 20 74 68 65 20 6d 64 73 20 ┆or ; ; we also assume the mds ┆ 0x09a560…09a580 73 79 73 74 65 6d 20 68 61 73 20 66 6f 75 72 20 64 69 73 6b 20 64 72 69 76 65 73 0d 0a 72 65 76 ┆system has four disk drives rev┆ 0x09a580…09a5a0 72 74 09 65 71 75 09 30 66 64 68 09 3b 69 6e 74 65 72 72 75 70 74 20 72 65 76 65 72 74 20 70 6f ┆rt equ 0fdh ;interrupt revert po┆ 0x09a5a0…09a5c0 72 74 0d 0a 69 6e 74 63 09 65 71 75 09 30 66 63 68 09 3b 69 6e 74 65 72 72 75 70 74 20 6d 61 73 ┆rt intc equ 0fch ;interrupt mas┆ 0x09a5c0…09a5e0 6b 20 70 6f 72 74 0d 0a 69 63 6f 6e 09 65 71 75 09 30 66 33 68 09 3b 69 6e 74 65 72 72 75 70 74 ┆k port icon equ 0f3h ;interrupt┆ 0x09a5e0…09a600 20 63 6f 6e 74 72 6f 6c 20 70 6f 72 74 0d 0a 69 6e 74 65 09 65 71 75 09 30 31 31 31 24 31 31 31 ┆ control port inte equ 0111$111┆ 0x09a600…09a620 (41, 0, 6) 75 66 66 09 3b 75 73 69 6e 67 20 64 6d 61 20 2d 20 74 68 75 73 20 38 30 20 74 68 72 75 20 66 66 ┆uff ;using dma - thus 80 thru ff┆ 0x09a620…09a640 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 73 74 61 63 6b 0d 0a 3b 0d 0a 09 6d 76 69 09 63 2c ┆ available for stack ; mvi c,┆ 0x09a640…09a660 72 65 74 72 79 09 3b 6d 61 78 20 72 65 74 72 69 65 73 0d 0a 09 70 75 73 68 09 62 0d 0a 77 62 6f ┆retry ;max retries push b wbo┆ 0x09a660…09a680 6f 74 30 3a 09 3b 65 6e 74 65 72 20 68 65 72 65 20 6f 6e 20 65 72 72 6f 72 20 72 65 74 72 69 65 ┆ot0: ;enter here on error retrie┆ 0x09a680…09a6a0 73 0d 0a 09 6c 78 69 09 62 2c 63 70 6d 62 09 3b 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 ┆s lxi b,cpmb ;set dma address ┆ 0x09a6a0…09a6c0 74 6f 20 73 74 61 72 74 20 6f 66 20 64 69 73 6b 20 73 79 73 74 65 6d 0d 0a 09 63 61 6c 6c 09 73 ┆to start of disk system call s┆ 0x09a6c0…09a6e0 65 74 64 6d 61 0d 0a 09 6d 76 69 09 63 2c 30 09 3b 62 6f 6f 74 20 66 72 6f 6d 20 64 72 69 76 65 ┆etdma mvi c,0 ;boot from drive┆ 0x09a6e0…09a700 20 30 0d 0a 09 63 61 6c 6c 09 73 65 6c 64 73 6b 0d 0a 09 6d 76 69 09 63 2c 30 0d 0a 09 63 61 6c ┆ 0 call seldsk mvi c,0 cal┆ 0x09a700…09a720 6c 09 73 65 74 74 72 6b 09 3b 73 74 61 72 74 20 77 69 74 68 20 74 72 61 63 6b 20 30 0d 0a 09 6d ┆l settrk ;start with track 0 m┆ 0x09a720…09a740 76 69 09 63 2c 32 09 3b 73 74 61 72 74 20 72 65 61 64 69 6e 67 20 73 65 63 74 6f 72 20 32 0d 0a ┆vi c,2 ;start reading sector 2 ┆ 0x09a740…09a760 09 63 61 6c 6c 09 73 65 74 73 65 63 0d 0a 3b 0d 0a 3b 09 72 65 61 64 20 73 65 63 74 6f 72 73 2c ┆ call setsec ; ; read sectors,┆ 0x09a760…09a780 20 63 6f 75 6e 74 20 6e 73 65 63 74 73 20 74 6f 20 7a 65 72 6f 0d 0a 09 70 6f 70 09 62 09 3b 31 ┆ count nsects to zero pop b ;1┆ 0x09a780…09a7a0 30 2d 65 72 72 6f 72 20 63 6f 75 6e 74 0d 0a 09 6d 76 69 09 62 2c 6e 73 65 63 74 73 0d 0a 72 64 ┆0-error count mvi b,nsects rd┆ 0x09a7a0…09a7c0 73 65 63 3a 09 3b 72 65 61 64 20 6e 65 78 74 20 73 65 63 74 6f 72 0d 0a 09 70 75 73 68 09 62 09 ┆sec: ;read next sector push b ┆ 0x09a7c0…09a7e0 3b 73 61 76 65 20 73 65 63 74 6f 72 20 63 6f 75 6e 74 0d 0a 09 63 61 6c 6c 09 72 65 61 64 0d 0a ┆;save sector count call read ┆ 0x09a7e0…09a800 09 6a 6e 7a 09 62 6f 6f 74 65 72 72 09 3b 72 65 74 72 79 20 69 66 20 65 72 72 6f 72 73 20 6f 63 ┆ jnz booterr ;retry if errors oc┆ 0x09a800…09a820 (41, 0, 7) 77 61 72 65 20 6d 6f 6e 69 74 6f 72 0d 0a 3b 0d 0a 62 6f 6f 74 6d 73 67 3a 0d 0a 09 64 62 09 27 ┆ware monitor ; bootmsg: db '┆ 0x09a820…09a840 3f 62 6f 6f 74 27 2c 30 0d 0a 3b 0d 0a 3b 0d 0a 63 6f 6e 73 74 3a 09 3b 63 6f 6e 73 6f 6c 65 20 ┆?boot',0 ; ; const: ;console ┆ 0x09a840…09a860 73 74 61 74 75 73 20 74 6f 20 72 65 67 2d 61 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 ┆status to reg-a ; (exactly the ┆ 0x09a860…09a880 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 63 73 74 73 0d 0a 3b 0d ┆same as mds call) jmp csts ; ┆ 0x09a880…09a8a0 0a 63 6f 6e 69 6e 3a 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 72 65 ┆ conin: ;console character to re┆ 0x09a8a0…09a8c0 67 2d 61 0d 0a 09 63 61 6c 6c 09 63 69 0d 0a 09 61 6e 69 09 37 66 68 09 3b 72 65 6d 6f 76 65 20 ┆g-a call ci ani 7fh ;remove ┆ 0x09a8c0…09a8e0 70 61 72 69 74 79 20 62 69 74 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 63 6f 6e 6f 75 74 3a 09 3b 63 6f ┆parity bit ret ; conout: ;co┆ 0x09a8e0…09a900 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 66 72 6f 6d 20 63 20 74 6f 20 63 6f 6e 73 6f 6c ┆nsole character from c to consol┆ 0x09a900…09a920 65 20 6f 75 74 0d 0a 09 6a 6d 70 09 63 6f 0d 0a 3b 0d 0a 6c 69 73 74 3a 09 3b 6c 69 73 74 20 64 ┆e out jmp co ; list: ;list d┆ 0x09a920…09a940 65 76 69 63 65 20 6f 75 74 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 ┆evice out ; (exactly the same a┆ 0x09a940…09a960 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 6c 6f 0d 0a 3b 0d 0a 6c 69 73 74 73 74 3a ┆s mds call) jmp lo ; listst:┆ 0x09a960…09a980 0d 0a 09 3b 72 65 74 75 72 6e 20 6c 69 73 74 20 73 74 61 74 75 73 0d 0a 09 78 72 61 09 61 0d 0a ┆ ;return list status xra a ┆ 0x09a980…09a9a0 09 72 65 74 09 09 3b 61 6c 77 61 79 73 20 6e 6f 74 20 72 65 61 64 79 0d 0a 3b 0d 0a 70 75 6e 63 ┆ ret ;always not ready ; punc┆ 0x09a9a0…09a9c0 68 3a 09 3b 70 75 6e 63 68 20 64 65 76 69 63 65 20 6f 75 74 0d 0a 3b 09 28 65 78 61 63 74 6c 79 ┆h: ;punch device out ; (exactly┆ 0x09a9c0…09a9e0 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 70 6f 0d ┆ the same as mds call) jmp po ┆ 0x09a9e0…09aa00 0a 3b 0d 0a 72 65 61 64 65 72 3a 09 3b 72 65 61 64 65 72 20 63 68 61 72 61 63 74 65 72 20 69 6e ┆ ; reader: ;reader character in┆ 0x09aa00…09aa20 (41, 0, 8) 66 75 6e 63 74 69 6f 6e 0d 0a 09 6d 76 69 09 63 2c 77 72 69 74 66 0d 0a 09 63 61 6c 6c 09 73 65 ┆function mvi c,writf call se┆ 0x09aa20…09aa40 74 66 75 6e 63 09 3b 73 65 74 20 74 6f 20 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 63 ┆tfunc ;set to write function c┆ 0x09aa40…09aa60 61 6c 6c 09 77 61 69 74 69 6f 0d 0a 09 72 65 74 09 09 3b 6d 61 79 20 68 61 76 65 20 65 72 72 6f ┆all waitio ret ;may have erro┆ 0x09aa60…09aa80 72 20 73 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 75 74 69 6c 69 74 79 20 73 75 62 72 6f 75 74 69 6e ┆r set ; ; ; utility subroutin┆ 0x09aa80…09aaa0 65 73 0d 0a 70 72 6d 73 67 3a 09 3b 70 72 69 6e 74 20 6d 65 73 73 61 67 65 20 61 74 20 68 2c 6c ┆es prmsg: ;print message at h,l┆ 0x09aaa0…09aac0 20 74 6f 20 30 0d 0a 09 6d 6f 76 09 61 2c 6d 0d 0a 09 6f 72 61 09 61 09 3b 7a 65 72 6f 3f 0d 0a ┆ to 0 mov a,m ora a ;zero? ┆ 0x09aac0…09aae0 09 72 7a 0d 0a 3b 09 6d 6f 72 65 20 74 6f 20 70 72 69 6e 74 0d 0a 09 70 75 73 68 09 68 0d 0a 09 ┆ rz ; more to print push h ┆ 0x09aae0…09ab00 6d 6f 76 09 63 2c 61 0d 0a 09 63 61 6c 6c 09 63 6f 6e 6f 75 74 0d 0a 09 70 6f 70 09 68 0d 0a 09 ┆mov c,a call conout pop h ┆ 0x09ab00…09ab20 69 6e 78 09 68 0d 0a 09 6a 6d 70 09 70 72 6d 73 67 0d 0a 3b 0d 0a 73 65 74 66 75 6e 63 3a 0d 0a ┆inx h jmp prmsg ; setfunc: ┆ 0x09ab20…09ab40 3b 09 73 65 74 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 6e 65 78 74 20 69 2f 6f 20 28 63 6f 6d ┆; set function for next i/o (com┆ 0x09ab40…09ab60 6d 61 6e 64 20 69 6e 20 72 65 67 2d 63 29 0d 0a 09 6c 78 69 09 68 2c 69 6f 66 09 3b 69 6f 20 66 ┆mand in reg-c) lxi h,iof ;io f┆ 0x09ab60…09ab80 75 6e 63 74 69 6f 6e 20 61 64 64 72 65 73 73 0d 0a 09 6d 6f 76 09 61 2c 6d 09 3b 67 65 74 20 69 ┆unction address mov a,m ;get i┆ 0x09ab80…09aba0 74 20 74 6f 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 66 6f 72 20 6d 61 73 6b 69 6e 67 0d 0a 09 61 ┆t to accumulator for masking a┆ 0x09aba0…09abc0 6e 69 09 31 31 31 31 31 30 30 30 62 09 3b 72 65 6d 6f 76 65 20 70 72 65 76 69 6f 75 73 20 63 6f ┆ni 11111000b ;remove previous co┆ 0x09abc0…09abe0 6d 6d 61 6e 64 0d 0a 09 6f 72 61 09 63 09 3b 73 65 74 20 74 6f 20 6e 65 77 20 63 6f 6d 6d 61 6e ┆mmand ora c ;set to new comman┆ 0x09abe0…09ac00 64 0d 0a 09 6d 6f 76 09 6d 2c 61 09 3b 72 65 70 6c 61 63 65 64 20 69 6e 20 69 6f 70 62 0d 0a 3b ┆d mov m,a ;replaced in iopb ;┆ 0x09ac00…09ac20 (41, 0, 9) 30 62 09 3b 65 6e 61 62 6c 65 20 72 73 74 20 30 28 77 61 72 6d 20 62 6f 6f 74 29 2c 20 72 73 74 ┆0b ;enable rst 0(warm boot), rst┆ 0x09ac20…09ac40 20 37 20 28 6d 6f 6e 69 74 6f 72 29 0d 0a 3b 0d 0a 3b 09 6d 64 73 20 6d 6f 6e 69 74 6f 72 20 65 ┆ 7 (monitor) ; ; mds monitor e┆ 0x09ac40…09ac60 71 75 61 74 65 73 0d 0a 6d 6f 6e 38 30 09 65 71 75 09 30 66 38 30 30 68 09 3b 6d 64 73 20 6d 6f ┆quates mon80 equ 0f800h ;mds mo┆ 0x09ac60…09ac80 6e 69 74 6f 72 0d 0a 72 6d 6f 6e 38 30 09 65 71 75 09 30 66 66 30 66 68 09 3b 72 65 73 74 61 72 ┆nitor rmon80 equ 0ff0fh ;restar┆ 0x09ac80…09aca0 74 20 6d 6f 6e 38 30 20 28 62 6f 6f 74 20 65 72 72 6f 72 29 0d 0a 63 69 09 65 71 75 09 30 66 38 ┆t mon80 (boot error) ci equ 0f8┆ 0x09aca0…09acc0 30 33 68 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 72 65 67 2d 61 0d ┆03h ;console character to reg-a ┆ 0x09acc0…09ace0 0a 72 69 09 65 71 75 09 30 66 38 30 36 68 09 3b 72 65 61 64 65 72 20 69 6e 20 74 6f 20 72 65 67 ┆ ri equ 0f806h ;reader in to reg┆ 0x09ace0…09ad00 2d 61 0d 0a 63 6f 09 65 71 75 09 30 66 38 30 39 68 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 20 ┆-a co equ 0f809h ;console char ┆ 0x09ad00…09ad20 66 72 6f 6d 20 63 20 74 6f 20 63 6f 6e 73 6f 6c 65 20 6f 75 74 0d 0a 70 6f 09 65 71 75 09 30 66 ┆from c to console out po equ 0f┆ 0x09ad20…09ad40 38 30 63 68 09 3b 70 75 6e 63 68 20 63 68 61 72 20 66 72 6f 6d 20 63 20 74 6f 20 70 75 6e 63 68 ┆80ch ;punch char from c to punch┆ 0x09ad40…09ad60 20 64 65 76 69 63 65 0d 0a 6c 6f 09 65 71 75 09 30 66 38 30 66 68 09 3b 6c 69 73 74 20 66 72 6f ┆ device lo equ 0f80fh ;list fro┆ 0x09ad60…09ad80 6d 20 63 20 74 6f 20 6c 69 73 74 20 64 65 76 69 63 65 0d 0a 63 73 74 73 09 65 71 75 09 30 66 38 ┆m c to list device csts equ 0f8┆ 0x09ad80…09ada0 31 32 68 09 3b 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 20 30 30 2f 66 66 20 74 6f 20 72 65 67 ┆12h ;console status 00/ff to reg┆ 0x09ada0…09adc0 69 73 74 65 72 20 61 0d 0a 3b 0d 0a 3b 09 64 69 73 6b 20 70 6f 72 74 73 20 61 6e 64 20 63 6f 6d ┆ister a ; ; disk ports and com┆ 0x09adc0…09ade0 6d 61 6e 64 73 0d 0a 62 61 73 65 09 65 71 75 09 37 38 68 09 3b 62 61 73 65 20 6f 66 20 64 69 73 ┆mands base equ 78h ;base of dis┆ 0x09ade0…09ae00 6b 20 63 6f 6d 6d 61 6e 64 20 69 6f 20 70 6f 72 74 73 0d 0a 64 73 74 61 74 09 65 71 75 09 62 61 ┆k command io ports dstat equ ba┆ 0x09ae00…09ae20 (41, 0, 10) 63 75 72 0d 0a 09 6c 68 6c 64 09 69 6f 64 09 3b 69 6e 63 72 65 6d 65 6e 74 20 64 6d 61 20 61 64 ┆cur lhld iod ;increment dma ad┆ 0x09ae20…09ae40 64 72 65 73 73 0d 0a 09 6c 78 69 09 64 2c 31 32 38 09 3b 73 65 63 74 6f 72 20 73 69 7a 65 0d 0a ┆dress lxi d,128 ;sector size ┆ 0x09ae40…09ae60 09 64 61 64 09 64 09 3b 69 6e 63 72 65 6d 65 6e 74 65 64 20 64 6d 61 20 61 64 64 72 65 73 73 20 ┆ dad d ;incremented dma address ┆ 0x09ae60…09ae80 69 6e 20 68 6c 0d 0a 09 6d 6f 76 09 62 2c 68 0d 0a 09 6d 6f 76 09 63 2c 6c 09 3b 72 65 61 64 79 ┆in hl mov b,h mov c,l ;ready┆ 0x09ae80…09aea0 20 66 6f 72 20 63 61 6c 6c 20 74 6f 20 73 65 74 20 64 6d 61 0d 0a 09 63 61 6c 6c 09 73 65 74 64 ┆ for call to set dma call setd┆ 0x09aea0…09aec0 6d 61 0d 0a 09 6c 64 61 09 69 6f 73 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 6a 75 73 74 ┆ma lda ios ;sector number just┆ 0x09aec0…09aee0 20 72 65 61 64 0d 0a 09 63 70 69 09 32 36 09 3b 72 65 61 64 20 6c 61 73 74 20 73 65 63 74 6f 72 ┆ read cpi 26 ;read last sector┆ 0x09aee0…09af00 3f 0d 0a 09 6a 63 09 72 64 31 0d 0a 3b 09 6d 75 73 74 20 62 65 20 73 65 63 74 6f 72 20 32 36 2c ┆? jc rd1 ; must be sector 26,┆ 0x09af00…09af20 20 7a 65 72 6f 20 61 6e 64 20 67 6f 20 74 6f 20 6e 65 78 74 20 74 72 61 63 6b 0d 0a 09 6c 64 61 ┆ zero and go to next track lda┆ 0x09af20…09af40 09 69 6f 74 09 3b 67 65 74 20 74 72 61 63 6b 20 74 6f 20 72 65 67 69 73 74 65 72 20 61 0d 0a 09 ┆ iot ;get track to register a ┆ 0x09af40…09af60 69 6e 72 09 61 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 0d ┆inr a mov c,a ;ready for call ┆ 0x09af60…09af80 0a 09 63 61 6c 6c 09 73 65 74 74 72 6b 0d 0a 09 78 72 61 09 61 09 3b 63 6c 65 61 72 20 73 65 63 ┆ call settrk xra a ;clear sec┆ 0x09af80…09afa0 74 6f 72 20 6e 75 6d 62 65 72 0d 0a 72 64 31 3a 09 69 6e 72 09 61 09 3b 74 6f 20 6e 65 78 74 20 ┆tor number rd1: inr a ;to next ┆ 0x09afa0…09afc0 73 65 63 74 6f 72 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c ┆sector mov c,a ;ready for call┆ 0x09afc0…09afe0 0d 0a 09 63 61 6c 6c 09 73 65 74 73 65 63 0d 0a 09 70 6f 70 09 62 09 3b 72 65 63 61 6c 6c 20 73 ┆ call setsec pop b ;recall s┆ 0x09afe0…09b000 65 63 74 6f 72 20 63 6f 75 6e 74 0d 0a 09 64 63 72 09 62 09 3b 64 6f 6e 65 3f 0d 0a 09 6a 6e 7a ┆ector count dcr b ;done? jnz┆ 0x09b000…09b020 (41, 0, 11) 20 74 6f 20 72 65 67 2d 61 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 ┆ to reg-a ; (exactly the same a┆ 0x09b020…09b040 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 72 69 0d 0a 3b 0d 0a 68 6f 6d 65 3a 09 3b ┆s mds call) jmp ri ; home: ;┆ 0x09b040…09b060 6d 6f 76 65 20 74 6f 20 68 6f 6d 65 20 70 6f 73 69 74 69 6f 6e 0d 0a 3b 09 74 72 65 61 74 20 61 ┆move to home position ; treat a┆ 0x09b060…09b080 73 20 74 72 61 63 6b 20 30 30 20 73 65 65 6b 0d 0a 09 6d 76 69 09 63 2c 30 0d 0a 09 6a 6d 70 09 ┆s track 00 seek mvi c,0 jmp ┆ 0x09b080…09b0a0 73 65 74 74 72 6b 0d 0a 3b 0d 0a 73 65 6c 64 73 6b 3a 09 3b 73 65 6c 65 63 74 20 64 69 73 6b 20 ┆settrk ; seldsk: ;select disk ┆ 0x09b0a0…09b0c0 67 69 76 65 6e 20 62 79 20 72 65 67 69 73 74 65 72 20 63 0d 0a 09 6c 78 69 09 68 2c 30 30 30 30 ┆given by register c lxi h,0000┆ 0x09b0c0…09b0e0 68 09 3b 72 65 74 75 72 6e 20 30 30 30 30 20 69 66 20 65 72 72 6f 72 0d 0a 09 6d 6f 76 09 61 2c ┆h ;return 0000 if error mov a,┆ 0x09b0e0…09b100 63 0d 0a 09 63 70 69 09 6e 64 69 73 6b 73 09 3b 74 6f 6f 20 6c 61 72 67 65 3f 0d 0a 09 72 6e 63 ┆c cpi ndisks ;too large? rnc┆ 0x09b100…09b120 09 09 3b 6c 65 61 76 65 20 48 4c 20 3d 20 30 30 30 30 0d 0a 3b 0d 0a 09 61 6e 69 09 31 30 62 09 ┆ ;leave HL = 0000 ; ani 10b ┆ 0x09b120…09b140 3b 30 30 20 30 30 20 66 6f 72 20 64 72 69 76 65 20 30 2c 31 20 61 6e 64 20 31 30 20 31 30 20 66 ┆;00 00 for drive 0,1 and 10 10 f┆ 0x09b140…09b160 6f 72 20 64 72 69 76 65 20 32 2c 33 0d 0a 09 73 74 61 09 64 62 61 6e 6b 09 3b 74 6f 20 73 65 6c ┆or drive 2,3 sta dbank ;to sel┆ 0x09b160…09b180 65 63 74 20 64 72 69 76 65 20 62 61 6e 6b 0d 0a 09 6d 6f 76 09 61 2c 63 09 3b 30 30 2c 20 30 31 ┆ect drive bank mov a,c ;00, 01┆ 0x09b180…09b1a0 2c 20 31 30 2c 20 31 31 0d 0a 09 61 6e 69 09 31 62 09 3b 6d 64 73 20 68 61 73 20 30 2c 31 20 61 ┆, 10, 11 ani 1b ;mds has 0,1 a┆ 0x09b1a0…09b1c0 74 20 37 38 2c 20 32 2c 33 20 61 74 20 38 38 0d 0a 09 6f 72 61 09 61 09 3b 72 65 73 75 6c 74 20 ┆t 78, 2,3 at 88 ora a ;result ┆ 0x09b1c0…09b1e0 30 30 3f 0d 0a 09 6a 7a 09 73 65 74 64 72 69 76 65 0d 0a 09 6d 76 69 09 61 2c 30 30 31 31 30 30 ┆00? jz setdrive mvi a,001100┆ 0x09b1e0…09b200 30 30 62 09 3b 73 65 6c 65 63 74 73 20 64 72 69 76 65 20 31 20 69 6e 20 62 61 6e 6b 0d 0a 73 65 ┆00b ;selects drive 1 in bank se┆ 0x09b200…09b220 (41, 0, 12) 09 74 68 65 20 6d 64 73 2d 38 30 30 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 72 65 71 75 69 72 65 73 ┆ the mds-800 controller requires┆ 0x09b220…09b240 20 64 69 73 6b 20 62 61 6e 6b 20 62 69 74 20 69 6e 20 73 65 63 74 6f 72 20 62 79 74 65 0d 0a 3b ┆ disk bank bit in sector byte ;┆ 0x09b240…09b260 09 6d 61 73 6b 20 74 68 65 20 62 69 74 20 66 72 6f 6d 20 74 68 65 20 63 75 72 72 65 6e 74 20 69 ┆ mask the bit from the current i┆ 0x09b260…09b280 2f 6f 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 61 6e 69 09 30 30 31 30 30 30 30 30 62 09 3b 6d 61 73 ┆/o function ani 00100000b ;mas┆ 0x09b280…09b2a0 6b 20 74 68 65 20 64 69 73 6b 20 73 65 6c 65 63 74 20 62 69 74 0d 0a 09 6c 78 69 09 68 2c 69 6f ┆k the disk select bit lxi h,io┆ 0x09b2a0…09b2c0 73 09 09 3b 61 64 64 72 65 73 73 20 74 68 65 20 73 65 63 74 6f 72 20 73 65 6c 65 63 74 20 62 79 ┆s ;address the sector select by┆ 0x09b2c0…09b2e0 74 65 0d 0a 09 6f 72 61 09 6d 09 09 3b 73 65 6c 65 63 74 20 70 72 6f 70 65 72 20 64 69 73 6b 20 ┆te ora m ;select proper disk ┆ 0x09b2e0…09b300 62 61 6e 6b 0d 0a 09 6d 6f 76 09 6d 2c 61 09 09 3b 73 65 74 20 64 69 73 6b 20 73 65 6c 65 63 74 ┆bank mov m,a ;set disk select┆ 0x09b300…09b320 20 62 69 74 20 6f 6e 2f 6f 66 66 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 77 61 69 74 69 6f 3a 0d 0a 09 ┆ bit on/off ret ; waitio: ┆ 0x09b320…09b340 6d 76 69 09 63 2c 72 65 74 72 79 09 3b 6d 61 78 20 72 65 74 72 69 65 73 20 62 65 66 6f 72 65 20 ┆mvi c,retry ;max retries before ┆ 0x09b340…09b360 70 65 72 6d 20 65 72 72 6f 72 0d 0a 72 65 77 61 69 74 3a 0d 0a 3b 09 73 74 61 72 74 20 74 68 65 ┆perm error rewait: ; start the┆ 0x09b360…09b380 20 69 2f 6f 20 66 75 6e 63 74 69 6f 6e 20 61 6e 64 20 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c ┆ i/o function and wait for compl┆ 0x09b380…09b3a0 65 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 69 6e 74 79 70 65 09 3b 69 6e 20 72 74 79 70 65 0d 0a 09 ┆etion call intype ;in rtype ┆ 0x09b3a0…09b3c0 63 61 6c 6c 09 69 6e 62 79 74 65 09 3b 63 6c 65 61 72 73 20 74 68 65 20 63 6f 6e 74 72 6f 6c 6c ┆call inbyte ;clears the controll┆ 0x09b3c0…09b3e0 65 72 0d 0a 3b 0d 0a 09 6c 64 61 09 64 62 61 6e 6b 09 09 3b 73 65 74 20 62 61 6e 6b 20 66 6c 61 ┆er ; lda dbank ;set bank fla┆ 0x09b3e0…09b400 67 73 0d 0a 09 6f 72 61 09 61 09 09 3b 7a 65 72 6f 20 69 66 20 64 72 69 76 65 20 30 2c 31 20 61 ┆gs ora a ;zero if drive 0,1 a┆ 0x09b400…09b420 (41, 0, 13) 73 65 09 3b 64 69 73 6b 20 73 74 61 74 75 73 20 28 69 6e 70 75 74 29 0d 0a 72 74 79 70 65 09 65 ┆se ;disk status (input) rtype e┆ 0x09b420…09b440 71 75 09 62 61 73 65 2b 31 09 3b 72 65 73 75 6c 74 20 74 79 70 65 20 28 69 6e 70 75 74 29 0d 0a ┆qu base+1 ;result type (input) ┆ 0x09b440…09b460 72 62 79 74 65 09 65 71 75 09 62 61 73 65 2b 33 09 3b 72 65 73 75 6c 74 20 62 79 74 65 20 28 69 ┆rbyte equ base+3 ;result byte (i┆ 0x09b460…09b480 6e 70 75 74 29 0d 0a 3b 0d 0a 69 6c 6f 77 09 65 71 75 09 62 61 73 65 2b 31 09 3b 69 6f 70 62 20 ┆nput) ; ilow equ base+1 ;iopb ┆ 0x09b480…09b4a0 6c 6f 77 20 61 64 64 72 65 73 73 20 28 6f 75 74 70 75 74 29 0d 0a 69 68 69 67 68 09 65 71 75 09 ┆low address (output) ihigh equ ┆ 0x09b4a0…09b4c0 62 61 73 65 2b 32 09 3b 69 6f 70 62 20 68 69 67 68 20 61 64 64 72 65 73 73 20 28 6f 75 74 70 75 ┆base+2 ;iopb high address (outpu┆ 0x09b4c0…09b4e0 74 29 0d 0a 3b 0d 0a 72 65 61 64 66 09 65 71 75 09 34 68 09 3b 72 65 61 64 20 66 75 6e 63 74 69 ┆t) ; readf equ 4h ;read functi┆ 0x09b4e0…09b500 6f 6e 0d 0a 77 72 69 74 66 09 65 71 75 09 36 68 09 3b 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e ┆on writf equ 6h ;write function┆ 0x09b500…09b520 0d 0a 72 65 63 61 6c 09 65 71 75 09 33 68 09 3b 72 65 63 61 6c 69 62 72 61 74 65 20 64 72 69 76 ┆ recal equ 3h ;recalibrate driv┆ 0x09b520…09b540 65 0d 0a 69 6f 72 64 79 09 65 71 75 09 34 68 09 3b 69 2f 6f 20 66 69 6e 69 73 68 65 64 20 6d 61 ┆e iordy equ 4h ;i/o finished ma┆ 0x09b540…09b560 73 6b 0d 0a 63 72 09 65 71 75 09 30 64 68 09 3b 63 61 72 72 69 61 67 65 20 72 65 74 75 72 6e 0d ┆sk cr equ 0dh ;carriage return ┆ 0x09b560…09b580 0a 6c 66 09 65 71 75 09 30 61 68 09 3b 6c 69 6e 65 20 66 65 65 64 0d 0a 3b 0d 0a 73 69 67 6e 6f ┆ lf equ 0ah ;line feed ; signo┆ 0x09b580…09b5a0 6e 3a 09 3b 73 69 67 6e 6f 6e 20 6d 65 73 73 61 67 65 3a 20 78 78 6b 20 63 70 2f 6d 20 76 65 72 ┆n: ;signon message: xxk cp/m ver┆ 0x09b5a0…09b5c0 73 20 79 2e 79 0d 0a 09 64 62 09 63 72 2c 6c 66 2c 6c 66 0d 0a 09 69 66 09 74 65 73 74 0d 0a 09 ┆s y.y db cr,lf,lf if test ┆ 0x09b5c0…09b5e0 64 62 09 27 33 32 27 09 3b 33 32 6b 20 65 78 61 6d 70 6c 65 20 62 69 6f 73 0d 0a 09 65 6e 64 69 ┆db '32' ;32k example bios endi┆ 0x09b5e0…09b600 66 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 09 64 62 09 27 30 30 27 09 3b 6d 65 6d 6f 72 ┆f if not test db '00' ;memor┆ 0x09b600…09b620 (41, 0, 14) 09 72 64 73 65 63 0d 0a 3b 0d 0a 3b 09 64 6f 6e 65 20 77 69 74 68 20 74 68 65 20 6c 6f 61 64 2c ┆ rdsec ; ; done with the load,┆ 0x09b620…09b640 20 72 65 73 65 74 20 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 0d 0a 67 ┆ reset default buffer address g┆ 0x09b640…09b660 6f 63 70 6d 3a 09 3b 28 65 6e 74 65 72 20 68 65 72 65 20 66 72 6f 6d 20 63 6f 6c 64 20 73 74 61 ┆ocpm: ;(enter here from cold sta┆ 0x09b660…09b680 72 74 20 62 6f 6f 74 29 0d 0a 3b 09 65 6e 61 62 6c 65 20 72 73 74 30 20 61 6e 64 20 72 73 74 37 ┆rt boot) ; enable rst0 and rst7┆ 0x09b680…09b6a0 0d 0a 09 64 69 0d 0a 09 6d 76 69 09 61 2c 31 32 68 09 3b 69 6e 69 74 69 61 6c 69 7a 65 20 63 6f ┆ di mvi a,12h ;initialize co┆ 0x09b6a0…09b6c0 6d 6d 61 6e 64 0d 0a 09 6f 75 74 09 72 65 76 72 74 0d 0a 09 78 72 61 09 61 0d 0a 09 6f 75 74 09 ┆mmand out revrt xra a out ┆ 0x09b6c0…09b6e0 69 6e 74 63 09 3b 63 6c 65 61 72 65 64 0d 0a 09 6d 76 69 09 61 2c 69 6e 74 65 09 3b 72 73 74 30 ┆intc ;cleared mvi a,inte ;rst0┆ 0x09b6e0…09b700 20 61 6e 64 20 72 73 74 37 20 62 69 74 73 20 6f 6e 0d 0a 09 6f 75 74 09 69 6e 74 63 0d 0a 09 78 ┆ and rst7 bits on out intc x┆ 0x09b700…09b720 72 61 09 61 0d 0a 09 6f 75 74 09 69 63 6f 6e 09 3b 69 6e 74 65 72 72 75 70 74 20 63 6f 6e 74 72 ┆ra a out icon ;interrupt contr┆ 0x09b720…09b740 6f 6c 0d 0a 3b 0d 0a 3b 09 73 65 74 20 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 ┆ol ; ; set default buffer addr┆ 0x09b740…09b760 65 73 73 20 74 6f 20 38 30 68 0d 0a 09 6c 78 69 09 62 2c 62 75 66 66 0d 0a 09 63 61 6c 6c 09 73 ┆ess to 80h lxi b,buff call s┆ 0x09b760…09b780 65 74 64 6d 61 0d 0a 3b 0d 0a 3b 09 72 65 73 65 74 20 6d 6f 6e 69 74 6f 72 20 65 6e 74 72 79 20 ┆etdma ; ; reset monitor entry ┆ 0x09b780…09b7a0 70 6f 69 6e 74 73 0d 0a 09 6d 76 69 09 61 2c 6a 6d 70 0d 0a 09 73 74 61 09 30 0d 0a 09 6c 78 69 ┆points mvi a,jmp sta 0 lxi┆ 0x09b7a0…09b7c0 09 68 2c 77 62 6f 6f 74 65 0d 0a 09 73 68 6c 64 09 31 09 3b 6a 6d 70 20 77 62 6f 6f 74 20 61 74 ┆ h,wboote shld 1 ;jmp wboot at┆ 0x09b7c0…09b7e0 20 6c 6f 63 61 74 69 6f 6e 20 30 30 0d 0a 09 73 74 61 09 35 0d 0a 09 6c 78 69 09 68 2c 62 64 6f ┆ location 00 sta 5 lxi h,bdo┆ 0x09b7e0…09b800 73 0d 0a 09 73 68 6c 64 09 36 09 3b 6a 6d 70 20 62 64 6f 73 20 61 74 20 6c 6f 63 61 74 69 6f 6e ┆s shld 6 ;jmp bdos at location┆ 0x09b800…09b820 (41, 0, 15) 74 64 72 69 76 65 3a 0d 0a 09 6d 6f 76 09 62 2c 61 09 3b 73 61 76 65 20 74 68 65 20 66 75 6e 63 ┆tdrive: mov b,a ;save the func┆ 0x09b820…09b840 74 69 6f 6e 0d 0a 09 6c 78 69 09 68 2c 69 6f 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 ┆tion lxi h,iof ;io function ┆ 0x09b840…09b860 6d 6f 76 09 61 2c 6d 0d 0a 09 61 6e 69 09 31 31 30 30 31 31 31 31 62 09 3b 6d 61 73 6b 20 6f 75 ┆mov a,m ani 11001111b ;mask ou┆ 0x09b860…09b880 74 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6f 72 61 09 62 09 3b 6d 61 73 6b 20 69 6e 20 6e ┆t disk number ora b ;mask in n┆ 0x09b880…09b8a0 65 77 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6d 6f 76 09 6d 2c 61 09 3b 73 61 76 65 20 69 ┆ew disk number mov m,a ;save i┆ 0x09b8a0…09b8c0 74 20 69 6e 20 69 6f 70 62 0d 0a 09 6d 6f 76 09 6c 2c 63 0d 0a 09 6d 76 69 09 68 2c 30 09 3b 48 ┆t in iopb mov l,c mvi h,0 ;H┆ 0x09b8c0…09b8e0 4c 3d 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 64 61 64 09 68 09 3b 2a 32 0d 0a 09 64 61 64 09 ┆L=disk number dad h ;*2 dad ┆ 0x09b8e0…09b900 68 09 3b 2a 34 0d 0a 09 64 61 64 09 68 09 3b 2a 38 0d 0a 09 64 61 64 09 68 09 3b 2a 31 36 0d 0a ┆h ;*4 dad h ;*8 dad h ;*16 ┆ 0x09b900…09b920 09 6c 78 69 09 64 2c 64 70 62 61 73 65 0d 0a 09 64 61 64 09 64 09 3b 48 4c 3d 64 69 73 6b 20 68 ┆ lxi d,dpbase dad d ;HL=disk h┆ 0x09b920…09b940 65 61 64 65 72 20 74 61 62 6c 65 20 61 64 64 72 65 73 73 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d ┆eader table address ret ; ; ┆ 0x09b940…09b960 0a 73 65 74 74 72 6b 3a 09 3b 73 65 74 20 74 72 61 63 6b 20 61 64 64 72 65 73 73 20 67 69 76 65 ┆ settrk: ;set track address give┆ 0x09b960…09b980 6e 20 62 79 20 63 0d 0a 09 6c 78 69 09 68 2c 69 6f 74 0d 0a 09 6d 6f 76 09 6d 2c 63 0d 0a 09 72 ┆n by c lxi h,iot mov m,c r┆ 0x09b980…09b9a0 65 74 0d 0a 3b 0d 0a 73 65 74 73 65 63 3a 09 3b 73 65 74 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 ┆et ; setsec: ;set sector numbe┆ 0x09b9a0…09b9c0 72 20 67 69 76 65 6e 20 62 79 20 63 0d 0a 09 6c 78 69 09 68 2c 69 6f 73 0d 0a 09 6d 6f 76 09 6d ┆r given by c lxi h,ios mov m┆ 0x09b9c0…09b9e0 2c 63 0d 0a 09 72 65 74 0d 0a 73 65 63 74 72 61 6e 3a 0d 0a 09 09 3b 74 72 61 6e 73 6c 61 74 65 ┆,c ret sectran: ;translate┆ 0x09b9e0…09ba00 20 73 65 63 74 6f 72 20 62 63 20 75 73 69 6e 67 20 74 61 62 6c 65 20 61 74 20 64 65 0d 0a 09 6d ┆ sector bc using table at de m┆ 0x09ba00…09ba20 (41, 1, 1) 6e 64 20 6e 7a 20 69 66 20 32 2c 33 0d 0a 09 6d 76 69 09 61 2c 69 6f 70 62 20 61 6e 64 20 30 66 ┆nd nz if 2,3 mvi a,iopb and 0f┆ 0x09ba20…09ba40 66 68 09 3b 6c 6f 77 20 61 64 64 72 65 73 73 20 66 6f 72 20 69 6f 70 62 0d 0a 09 6d 76 69 09 62 ┆fh ;low address for iopb mvi b┆ 0x09ba40…09ba60 2c 69 6f 70 62 20 73 68 72 20 38 09 3b 68 69 67 68 20 61 64 64 72 65 73 73 20 66 6f 72 20 69 6f ┆,iopb shr 8 ;high address for io┆ 0x09ba60…09ba80 70 62 0d 0a 09 6a 6e 7a 09 69 6f 64 72 31 09 3b 64 72 69 76 65 20 62 61 6e 6b 20 31 3f 0d 0a 09 ┆pb jnz iodr1 ;drive bank 1? ┆ 0x09ba80…09baa0 6f 75 74 09 69 6c 6f 77 09 09 3b 6c 6f 77 20 61 64 64 72 65 73 73 20 74 6f 20 63 6f 6e 74 72 6f ┆out ilow ;low address to contro┆ 0x09baa0…09bac0 6c 6c 65 72 0d 0a 09 6d 6f 76 09 61 2c 62 0d 0a 09 6f 75 74 09 69 68 69 67 68 09 3b 68 69 67 68 ┆ller mov a,b out ihigh ;high┆ 0x09bac0…09bae0 20 61 64 64 72 65 73 73 0d 0a 09 6a 6d 70 09 77 61 69 74 30 09 09 3b 74 6f 20 77 61 69 74 20 66 ┆ address jmp wait0 ;to wait f┆ 0x09bae0…09bb00 6f 72 20 63 6f 6d 70 6c 65 74 65 0d 0a 3b 0d 0a 69 6f 64 72 31 3a 09 3b 64 72 69 76 65 20 62 61 ┆or complete ; iodr1: ;drive ba┆ 0x09bb00…09bb20 6e 6b 20 31 0d 0a 09 6f 75 74 09 69 6c 6f 77 2b 31 30 68 09 3b 38 38 20 66 6f 72 20 64 72 69 76 ┆nk 1 out ilow+10h ;88 for driv┆ 0x09bb20…09bb40 65 20 62 61 6e 6b 20 31 30 0d 0a 09 6d 6f 76 09 61 2c 62 0d 0a 09 6f 75 74 09 69 68 69 67 68 2b ┆e bank 10 mov a,b out ihigh+┆ 0x09bb40…09bb60 31 30 68 0d 0a 3b 0d 0a 77 61 69 74 30 3a 09 63 61 6c 6c 09 69 6e 73 74 61 74 09 09 3b 77 61 69 ┆10h ; wait0: call instat ;wai┆ 0x09bb60…09bb80 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 0d 0a 09 61 6e 69 09 69 6f 72 64 79 09 09 3b 72 ┆t for completion ani iordy ;r┆ 0x09bb80…09bba0 65 61 64 79 3f 0d 0a 09 6a 7a 09 77 61 69 74 30 0d 0a 3b 0d 0a 3b 09 63 68 65 63 6b 20 69 6f 20 ┆eady? jz wait0 ; ; check io ┆ 0x09bba0…09bbc0 63 6f 6d 70 6c 65 74 69 6f 6e 20 6f 6b 0d 0a 09 63 61 6c 6c 09 69 6e 74 79 70 65 09 09 3b 6d 75 ┆completion ok call intype ;mu┆ 0x09bbc0…09bbe0 73 74 20 62 65 20 69 6f 20 63 6f 6d 70 6c 65 74 65 20 28 30 30 29 20 75 6e 6c 69 6e 6b 65 64 0d ┆st be io complete (00) unlinked ┆ 0x09bbe0…09bc00 0a 3b 09 30 30 20 75 6e 6c 69 6e 6b 65 64 20 69 2f 6f 20 63 6f 6d 70 6c 65 74 65 2c 20 20 20 20 ┆ ; 00 unlinked i/o complete, ┆ 0x09bc00…09bc20 (41, 1, 2) 09 72 74 79 70 65 0d 0a 09 72 65 74 0d 0a 69 6e 74 79 70 31 3a 09 69 6e 09 72 74 79 70 65 2b 31 ┆ rtype ret intyp1: in rtype+1┆ 0x09bc20…09bc40 30 68 09 3b 37 38 20 66 6f 72 20 30 2c 31 20 20 38 38 20 66 6f 72 20 32 2c 33 0d 0a 09 72 65 74 ┆0h ;78 for 0,1 88 for 2,3 ret┆ 0x09bc40…09bc60 0d 0a 3b 0d 0a 69 6e 62 79 74 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a ┆ ; inbyte: lda dbank ora a ┆ 0x09bc60…09bc80 09 6a 6e 7a 09 69 6e 62 79 74 31 0d 0a 09 69 6e 09 72 62 79 74 65 0d 0a 09 72 65 74 0d 0a 69 6e ┆ jnz inbyt1 in rbyte ret in┆ 0x09bc80…09bca0 62 79 74 31 3a 09 69 6e 09 72 62 79 74 65 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 69 6e 73 ┆byt1: in rbyte+10h ret ; ins┆ 0x09bca0…09bcc0 74 61 74 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 73 ┆tat: lda dbank ora a jnz ins┆ 0x09bcc0…09bce0 74 61 31 0d 0a 09 69 6e 09 64 73 74 61 74 0d 0a 09 72 65 74 0d 0a 69 6e 73 74 61 31 3a 09 69 6e ┆ta1 in dstat ret insta1: in┆ 0x09bce0…09bd00 09 64 73 74 61 74 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 61 74 ┆ dstat+10h ret ; ; ; ; dat┆ 0x09bd00…09bd20 61 20 61 72 65 61 73 20 28 6d 75 73 74 20 62 65 20 69 6e 20 72 61 6d 29 0d 0a 64 62 61 6e 6b 3a ┆a areas (must be in ram) dbank:┆ 0x09bd20…09bd40 09 64 62 09 30 09 3b 64 69 73 6b 20 62 61 6e 6b 20 30 30 20 69 66 20 64 72 69 76 65 20 30 2c 31 ┆ db 0 ;disk bank 00 if drive 0,1┆ 0x09bd40…09bd60 0d 0a 09 09 09 3b 09 20 20 20 31 30 20 69 66 20 64 72 69 76 65 20 32 2c 33 0d 0a 69 6f 70 62 3a ┆ ; 10 if drive 2,3 iopb:┆ 0x09bd60…09bd80 09 3b 69 6f 20 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 0d 0a 09 64 62 09 38 30 68 09 3b 6e ┆ ;io parameter block db 80h ;n┆ 0x09bd80…09bda0 6f 72 6d 61 6c 20 69 2f 6f 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 69 6f 66 3a 09 64 62 09 72 65 61 ┆ormal i/o operation iof: db rea┆ 0x09bda0…09bdc0 64 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 2c 20 69 6e 69 74 69 61 6c 20 72 65 61 64 0d 0a 69 ┆df ;io function, initial read i┆ 0x09bdc0…09bde0 6f 6e 3a 09 64 62 09 31 09 3b 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 20 74 6f 20 72 ┆on: db 1 ;number of sectors to r┆ 0x09bde0…09be00 65 61 64 0d 0a 69 6f 74 3a 09 64 62 09 6f 66 66 73 65 74 09 3b 74 72 61 63 6b 20 6e 75 6d 62 65 ┆ead iot: db offset ;track numbe┆ 0x09be00…09be20 (41, 1, 3) 6b 20 66 6f 72 20 74 68 65 0d 0a 3b 09 6d 64 73 2c 20 77 68 69 63 68 20 69 73 20 75 73 65 64 20 ┆k for the ; mds, which is used ┆ 0x09be20…09be40 74 6f 20 70 65 72 66 6f 72 6d 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 73 20 61 6e 64 20 ┆to perform subsequent reads and ┆ 0x09be40…09be60 77 72 69 74 65 73 29 0d 0a 3b 09 73 65 6c 64 73 6b 09 73 65 6c 65 63 74 20 64 69 73 6b 20 67 69 ┆writes) ; seldsk select disk gi┆ 0x09be60…09be80 76 65 6e 20 62 79 20 72 65 67 2d 63 20 28 30 2c 31 2c 32 2e 2e 2e 29 0d 0a 3b 09 73 65 74 74 72 ┆ven by reg-c (0,1,2...) ; settr┆ 0x09be80…09bea0 6b 09 73 65 74 20 74 72 61 63 6b 20 61 64 64 72 65 73 73 20 28 30 2c 2e 2e 2e 37 36 29 20 66 6f ┆k set track address (0,...76) fo┆ 0x09bea0…09bec0 72 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 2f 77 72 69 74 65 0d 0a 3b 09 73 65 74 73 65 ┆r subsequent read/write ; setse┆ 0x09bec0…09bee0 63 09 73 65 74 20 73 65 63 74 6f 72 20 61 64 64 72 65 73 73 20 28 31 2c 2e 2e 2e 2c 32 36 29 20 ┆c set sector address (1,...,26) ┆ 0x09bee0…09bf00 66 6f 72 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 2f 77 72 69 74 65 0d 0a 3b 09 73 65 74 ┆for subsequent read/write ; set┆ 0x09bf00…09bf20 64 6d 61 09 73 65 74 20 73 75 62 73 65 71 75 65 6e 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 28 ┆dma set subsequent dma address (┆ 0x09bf20…09bf40 69 6e 69 74 69 61 6c 6c 79 20 38 30 68 29 0d 0a 3b 0d 0a 3b 09 28 72 65 61 64 20 61 6e 64 20 77 ┆initially 80h) ; ; (read and w┆ 0x09bf40…09bf60 72 69 74 65 20 61 73 73 75 6d 65 20 70 72 65 76 69 6f 75 73 20 63 61 6c 6c 73 20 74 6f 20 73 65 ┆rite assume previous calls to se┆ 0x09bf60…09bf80 74 20 75 70 20 74 68 65 20 69 6f 20 70 61 72 61 6d 65 74 65 72 73 29 0d 0a 3b 09 72 65 61 64 09 ┆t up the io parameters) ; read ┆ 0x09bf80…09bfa0 72 65 61 64 20 74 72 61 63 6b 2f 73 65 63 74 6f 72 20 74 6f 20 70 72 65 73 65 74 20 64 6d 61 20 ┆read track/sector to preset dma ┆ 0x09bfa0…09bfc0 61 64 64 72 65 73 73 0d 0a 3b 09 77 72 69 74 65 09 77 72 69 74 65 20 74 72 61 63 6b 2f 73 65 63 ┆address ; write write track/sec┆ 0x09bfc0…09bfe0 74 6f 72 20 66 72 6f 6d 20 70 72 65 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 3b 0d 0a ┆tor from preset dma address ; ┆ 0x09bfe0…09c000 3b 09 6a 75 6d 70 20 76 65 63 74 6f 72 20 66 6f 72 20 69 6e 64 69 76 69 75 61 6c 20 72 6f 75 74 ┆; jump vector for indiviual rout┆ 0x09c000…09c020 (41, 1, 4) 74 65 20 28 69 6e 70 75 74 29 0d 0a 3b 0d 0a 69 6c 6f 77 09 65 71 75 09 62 61 73 65 2b 31 09 3b ┆te (input) ; ilow equ base+1 ;┆ 0x09c020…09c040 69 6f 70 62 20 6c 6f 77 20 61 64 64 72 65 73 73 20 28 6f 75 74 70 75 74 29 0d 0a 69 68 69 67 68 ┆iopb low address (output) ihigh┆ 0x09c040…09c060 09 65 71 75 09 62 61 73 65 2b 32 09 3b 69 6f 70 62 20 68 69 67 68 20 61 64 64 72 65 73 73 20 28 ┆ equ base+2 ;iopb high address (┆ 0x09c060…09c080 6f 75 74 70 75 74 29 0d 0a 3b 0d 0a 72 65 61 64 66 09 65 71 75 09 34 68 09 3b 72 65 61 64 20 66 ┆output) ; readf equ 4h ;read f┆ 0x09c080…09c0a0 75 6e 63 74 69 6f 6e 0d 0a 77 72 69 74 66 09 65 71 75 09 36 68 09 3b 77 72 69 74 65 20 66 75 6e ┆unction writf equ 6h ;write fun┆ 0x09c0a0…09c0c0 63 74 69 6f 6e 0d 0a 72 65 63 61 6c 09 65 71 75 09 33 68 09 3b 72 65 63 61 6c 69 62 72 61 74 65 ┆ction recal equ 3h ;recalibrate┆ 0x09c0c0…09c0e0 20 64 72 69 76 65 0d 0a 69 6f 72 64 79 09 65 71 75 09 34 68 09 3b 69 2f 6f 20 66 69 6e 69 73 68 ┆ drive iordy equ 4h ;i/o finish┆ 0x09c0e0…09c100 65 64 20 6d 61 73 6b 0d 0a 63 72 09 65 71 75 09 30 64 68 09 3b 63 61 72 72 69 61 67 65 20 72 65 ┆ed mask cr equ 0dh ;carriage re┆ 0x09c100…09c120 74 75 72 6e 0d 0a 6c 66 09 65 71 75 09 30 61 68 09 3b 6c 69 6e 65 20 66 65 65 64 0d 0a 3b 0d 0a ┆turn lf equ 0ah ;line feed ; ┆ 0x09c120…09c140 73 69 67 6e 6f 6e 3a 09 3b 73 69 67 6e 6f 6e 20 6d 65 73 73 61 67 65 3a 20 78 78 6b 20 63 70 2f ┆signon: ;signon message: xxk cp/┆ 0x09c140…09c160 6d 20 76 65 72 73 20 79 2e 79 0d 0a 09 64 62 09 63 72 2c 6c 66 2c 6c 66 0d 0a 09 69 66 09 74 65 ┆m vers y.y db cr,lf,lf if te┆ 0x09c160…09c180 73 74 0d 0a 09 64 62 09 27 33 32 27 09 3b 33 32 6b 20 65 78 61 6d 70 6c 65 20 62 69 6f 73 0d 0a ┆st db '32' ;32k example bios ┆ 0x09c180…09c1a0 09 65 6e 64 69 66 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 09 64 62 09 27 30 30 27 09 3b ┆ endif if not test db '00' ;┆ 0x09c1a0…09c1c0 6d 65 6d 6f 72 79 20 73 69 7a 65 20 66 69 6c 6c 65 64 20 62 79 20 72 65 6c 6f 63 61 74 6f 72 0d ┆memory size filled by relocator ┆ 0x09c1c0…09c1e0 0a 09 65 6e 64 69 66 0d 0a 09 64 62 09 27 6b 20 43 50 2f 4d 20 76 65 72 73 20 27 0d 0a 09 64 62 ┆ endif db 'k CP/M vers ' db┆ 0x09c1e0…09c200 09 76 65 72 73 2f 31 30 2b 27 30 27 2c 27 2e 27 2c 76 65 72 73 20 6d 6f 64 20 31 30 2b 27 30 27 ┆ vers/10+'0','.',vers mod 10+'0'┆ 0x09c200…09c220 (41, 1, 5) 30 31 20 6c 69 6e 6b 65 64 20 69 2f 6f 20 63 6f 6d 70 6c 65 74 65 20 28 6e 6f 74 20 75 73 65 64 ┆01 linked i/o complete (not used┆ 0x09c220…09c240 29 0d 0a 3b 09 31 30 20 64 69 73 6b 20 73 74 61 74 75 73 20 63 68 61 6e 67 65 64 20 20 20 20 20 ┆) ; 10 disk status changed ┆ 0x09c240…09c260 20 20 31 31 20 28 6e 6f 74 20 75 73 65 64 29 0d 0a 09 63 70 69 09 31 30 62 09 09 3b 72 65 61 64 ┆ 11 (not used) cpi 10b ;read┆ 0x09c260…09c280 79 20 73 74 61 74 75 73 20 63 68 61 6e 67 65 3f 0d 0a 09 6a 7a 09 77 72 65 61 64 79 0d 0a 3b 0d ┆y status change? jz wready ; ┆ 0x09c280…09c2a0 0a 3b 09 6d 75 73 74 20 62 65 20 30 30 20 69 6e 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 ┆ ; must be 00 in the accumulator┆ 0x09c2a0…09c2c0 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 77 65 72 72 6f 72 09 09 3b 73 6f 6d 65 20 6f 74 68 ┆ ora a jnz werror ;some oth┆ 0x09c2c0…09c2e0 65 72 20 63 6f 6e 64 69 74 69 6f 6e 2c 20 72 65 74 72 79 0d 0a 3b 0d 0a 3b 09 63 68 65 63 6b 20 ┆er condition, retry ; ; check ┆ 0x09c2e0…09c300 69 2f 6f 20 65 72 72 6f 72 20 62 69 74 73 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 0d 0a 09 72 ┆i/o error bits call inbyte r┆ 0x09c300…09c320 61 6c 0d 0a 09 6a 63 09 77 72 65 61 64 79 09 09 3b 75 6e 69 74 20 6e 6f 74 20 72 65 61 64 79 0d ┆al jc wready ;unit not ready ┆ 0x09c320…09c340 0a 09 72 61 72 0d 0a 09 61 6e 69 09 31 31 31 31 31 31 31 30 62 09 3b 61 6e 79 20 6f 74 68 65 72 ┆ rar ani 11111110b ;any other┆ 0x09c340…09c360 20 65 72 72 6f 72 73 3f 20 20 28 64 65 6c 65 74 65 64 20 64 61 74 61 20 6f 6b 29 0d 0a 09 6a 6e ┆ errors? (deleted data ok) jn┆ 0x09c360…09c380 7a 09 77 65 72 72 6f 72 0d 0a 3b 0d 0a 3b 09 72 65 61 64 20 6f 72 20 77 72 69 74 65 20 69 73 20 ┆z werror ; ; read or write is ┆ 0x09c380…09c3a0 6f 6b 2c 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 63 6f 6e 74 61 69 6e 73 20 7a 65 72 6f 0d 0a 09 ┆ok, accumulator contains zero ┆ 0x09c3a0…09c3c0 72 65 74 0d 0a 3b 0d 0a 77 72 65 61 64 79 3a 09 3b 6e 6f 74 20 72 65 61 64 79 2c 20 74 72 65 61 ┆ret ; wready: ;not ready, trea┆ 0x09c3c0…09c3e0 74 20 61 73 20 65 72 72 6f 72 20 66 6f 72 20 6e 6f 77 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 ┆t as error for now call inbyte┆ 0x09c3e0…09c400 09 09 3b 63 6c 65 61 72 20 72 65 73 75 6c 74 20 62 79 74 65 0d 0a 09 6a 6d 70 09 74 72 79 63 6f ┆ ;clear result byte jmp tryco┆ 0x09c400…09c420 (41, 1, 6) 72 0d 0a 69 6f 73 3a 09 64 62 09 31 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 0d 0a 69 6f 64 ┆r ios: db 1 ;sector number iod┆ 0x09c420…09c440 3a 09 64 77 09 62 75 66 66 09 3b 69 6f 20 61 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 ┆: dw buff ;io address ; ; ; d┆ 0x09c440…09c460 65 66 69 6e 65 20 72 61 6d 20 61 72 65 61 73 20 66 6f 72 20 62 64 6f 73 20 6f 70 65 72 61 74 69 ┆efine ram areas for bdos operati┆ 0x09c460…09c480 6f 6e 0d 0a 09 65 6e 64 65 66 0d 0a 09 65 6e 64 0d 0a 3b 09 4d 44 53 2d 38 30 30 20 49 2f 4f 20 ┆on endef end ; MDS-800 I/O ┆ 0x09c480…09c4a0 44 72 69 76 65 72 73 20 66 6f 72 20 43 50 2f 4d 20 32 2e 32 0d 0a 3b 09 28 66 6f 75 72 20 64 72 ┆Drivers for CP/M 2.2 ; (four dr┆ 0x09c4a0…09c4c0 69 76 65 20 73 69 6e 67 6c 65 20 64 65 6e 73 69 74 79 20 76 65 72 73 69 6f 6e 29 0d 0a 3b 0d 0a ┆ive single density version) ; ┆ 0x09c4c0…09c4e0 3b 09 56 65 72 73 69 6f 6e 20 32 2e 32 20 46 65 62 72 75 61 72 79 2c 20 31 39 38 30 0d 0a 3b 0d ┆; Version 2.2 February, 1980 ; ┆ 0x09c4e0…09c500 0a 76 65 72 73 09 65 71 75 09 32 32 09 3b 76 65 72 73 69 6f 6e 20 32 2e 32 0d 0a 3b 0d 0a 3b 09 ┆ vers equ 22 ;version 2.2 ; ; ┆ 0x09c500…09c520 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 39 38 30 0d 0a 3b 09 44 69 67 69 74 61 6c 20 52 65 ┆Copyright (c) 1980 ; Digital Re┆ 0x09c520…09c540 73 65 61 72 63 68 0d 0a 3b 09 42 6f 78 20 35 37 39 2c 20 50 61 63 69 66 69 63 20 47 72 6f 76 65 ┆search ; Box 579, Pacific Grove┆ 0x09c540…09c560 0d 0a 3b 09 43 61 6c 69 66 6f 72 6e 69 61 2c 20 39 33 39 35 30 0d 0a 3b 0d 0a 3b 0d 0a 74 72 75 ┆ ; California, 93950 ; ; tru┆ 0x09c560…09c580 65 09 65 71 75 09 30 66 66 66 66 68 09 3b 76 61 6c 75 65 20 6f 66 20 22 74 72 75 65 22 0d 0a 66 ┆e equ 0ffffh ;value of "true" f┆ 0x09c580…09c5a0 61 6c 73 65 09 65 71 75 09 6e 6f 74 20 74 72 75 65 09 3b 22 66 61 6c 73 65 22 0d 0a 74 65 73 74 ┆alse equ not true ;"false" test┆ 0x09c5a0…09c5c0 09 65 71 75 09 66 61 6c 73 65 09 3b 74 72 75 65 20 69 66 20 74 65 73 74 20 62 69 6f 73 0d 0a 3b ┆ equ false ;true if test bios ;┆ 0x09c5c0…09c5e0 0d 0a 09 69 66 09 74 65 73 74 0d 0a 62 69 61 73 09 65 71 75 09 30 33 34 30 30 68 09 3b 62 61 73 ┆ if test bias equ 03400h ;bas┆ 0x09c5e0…09c600 65 20 6f 66 20 43 43 50 20 69 6e 20 74 65 73 74 20 73 79 73 74 65 6d 0d 0a 09 65 6e 64 69 66 0d ┆e of CCP in test system endif ┆ 0x09c600…09c620 (41, 1, 7) 69 6e 65 73 0d 0a 09 6a 6d 70 09 62 6f 6f 74 0d 0a 77 62 6f 6f 74 65 3a 09 6a 6d 70 09 77 62 6f ┆ines jmp boot wboote: jmp wbo┆ 0x09c620…09c640 6f 74 0d 0a 09 6a 6d 70 09 63 6f 6e 73 74 0d 0a 09 6a 6d 70 09 63 6f 6e 69 6e 0d 0a 09 6a 6d 70 ┆ot jmp const jmp conin jmp┆ 0x09c640…09c660 09 63 6f 6e 6f 75 74 0d 0a 09 6a 6d 70 09 6c 69 73 74 0d 0a 09 6a 6d 70 09 70 75 6e 63 68 0d 0a ┆ conout jmp list jmp punch ┆ 0x09c660…09c680 09 6a 6d 70 09 72 65 61 64 65 72 0d 0a 09 6a 6d 70 09 68 6f 6d 65 0d 0a 09 6a 6d 70 09 73 65 6c ┆ jmp reader jmp home jmp sel┆ 0x09c680…09c6a0 64 73 6b 0d 0a 09 6a 6d 70 09 73 65 74 74 72 6b 0d 0a 09 6a 6d 70 09 73 65 74 73 65 63 0d 0a 09 ┆dsk jmp settrk jmp setsec ┆ 0x09c6a0…09c6c0 6a 6d 70 09 73 65 74 64 6d 61 0d 0a 09 6a 6d 70 09 72 65 61 64 0d 0a 09 6a 6d 70 09 77 72 69 74 ┆jmp setdma jmp read jmp writ┆ 0x09c6c0…09c6e0 65 0d 0a 09 6a 6d 70 09 6c 69 73 74 73 74 09 3b 6c 69 73 74 20 73 74 61 74 75 73 0d 0a 09 6a 6d ┆e jmp listst ;list status jm┆ 0x09c6e0…09c700 70 09 73 65 63 74 72 61 6e 0d 0a 3b 0d 0a 09 6d 61 63 6c 69 62 09 64 69 73 6b 64 65 66 09 3b 6c ┆p sectran ; maclib diskdef ;l┆ 0x09c700…09c720 6f 61 64 20 74 68 65 20 64 69 73 6b 20 64 65 66 69 6e 69 74 69 6f 6e 20 6c 69 62 72 61 72 79 0d ┆oad the disk definition library ┆ 0x09c720…09c740 0a 09 64 69 73 6b 73 09 34 09 3b 66 6f 75 72 20 64 69 73 6b 73 0d 0a 09 64 69 73 6b 64 65 66 09 ┆ disks 4 ;four disks diskdef ┆ 0x09c740…09c760 30 2c 31 2c 32 36 2c 36 2c 31 30 32 34 2c 32 34 33 2c 36 34 2c 36 34 2c 6f 66 66 73 65 74 0d 0a ┆0,1,26,6,1024,243,64,64,offset ┆ 0x09c760…09c780 09 64 69 73 6b 64 65 66 09 31 2c 30 0d 0a 09 64 69 73 6b 64 65 66 09 32 2c 30 0d 0a 09 64 69 73 ┆ diskdef 1,0 diskdef 2,0 dis┆ 0x09c780…09c7a0 6b 64 65 66 09 33 2c 30 0d 0a 3b 09 65 6e 64 65 66 20 6f 63 63 75 72 73 20 61 74 20 65 6e 64 20 ┆kdef 3,0 ; endef occurs at end ┆ 0x09c7a0…09c7c0 6f 66 20 61 73 73 65 6d 62 6c 79 0d 0a 3b 0d 0a 3b 09 65 6e 64 20 6f 66 20 63 6f 6e 74 72 6f 6c ┆of assembly ; ; end of control┆ 0x09c7c0…09c7e0 6c 65 72 20 2d 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 63 6f 64 65 2c 20 74 68 65 20 72 65 6d 61 ┆ler - independent code, the rema┆ 0x09c7e0…09c800 69 6e 69 6e 67 20 73 75 62 72 6f 75 74 69 6e 65 73 0d 0a 3b 09 61 72 65 20 74 61 69 6c 6f 72 65 ┆ining subroutines ; are tailore┆ 0x09c800…09c820 (41, 1, 8) 0d 0a 09 64 62 09 63 72 2c 6c 66 2c 30 0d 0a 3b 0d 0a 62 6f 6f 74 3a 09 3b 70 72 69 6e 74 20 73 ┆ db cr,lf,0 ; boot: ;print s┆ 0x09c820…09c840 69 67 6e 6f 6e 20 6d 65 73 73 61 67 65 20 61 6e 64 20 67 6f 20 74 6f 20 63 63 70 0d 0a 3b 09 28 ┆ignon message and go to ccp ; (┆ 0x09c840…09c860 6e 6f 74 65 3a 20 6d 64 73 20 62 6f 6f 74 20 69 6e 69 74 69 61 6c 69 7a 65 64 20 69 6f 62 79 74 ┆note: mds boot initialized iobyt┆ 0x09c860…09c880 65 20 61 74 20 30 30 30 33 68 29 0d 0a 09 6c 78 69 09 73 70 2c 62 75 66 66 2b 38 30 68 0d 0a 09 ┆e at 0003h) lxi sp,buff+80h ┆ 0x09c880…09c8a0 6c 78 69 09 68 2c 73 69 67 6e 6f 6e 0d 0a 09 63 61 6c 6c 09 70 72 6d 73 67 09 3b 70 72 69 6e 74 ┆lxi h,signon call prmsg ;print┆ 0x09c8a0…09c8c0 20 6d 65 73 73 61 67 65 0d 0a 09 78 72 61 09 61 09 3b 63 6c 65 61 72 20 61 63 63 75 6d 75 6c 61 ┆ message xra a ;clear accumula┆ 0x09c8c0…09c8e0 74 6f 72 0d 0a 09 73 74 61 09 63 64 69 73 6b 09 3b 73 65 74 20 69 6e 69 74 69 61 6c 6c 79 20 74 ┆tor sta cdisk ;set initially t┆ 0x09c8e0…09c900 6f 20 64 69 73 6b 20 61 0d 0a 09 6a 6d 70 09 67 6f 63 70 6d 09 3b 67 6f 20 74 6f 20 63 70 2f 6d ┆o disk a jmp gocpm ;go to cp/m┆ 0x09c900…09c920 0d 0a 3b 0d 0a 3b 0d 0a 77 62 6f 6f 74 3a 3b 09 6c 6f 61 64 65 72 20 6f 6e 20 74 72 61 63 6b 20 ┆ ; ; wboot:; loader on track ┆ 0x09c920…09c940 30 2c 20 73 65 63 74 6f 72 20 31 2c 20 77 68 69 63 68 20 77 69 6c 6c 20 62 65 20 73 6b 69 70 70 ┆0, sector 1, which will be skipp┆ 0x09c940…09c960 65 64 20 66 6f 72 20 77 61 72 6d 20 0d 0a 3b 09 72 65 61 64 20 63 70 2f 6d 20 66 72 6f 6d 20 64 ┆ed for warm ; read cp/m from d┆ 0x09c960…09c980 69 73 6b 20 2d 20 61 73 73 75 6d 69 6e 67 20 74 68 65 72 65 20 69 73 20 61 20 31 32 38 20 62 79 ┆isk - assuming there is a 128 by┆ 0x09c980…09c9a0 74 65 20 63 6f 6c 64 20 73 74 61 72 74 0d 0a 3b 09 73 74 61 72 74 2e 0d 0a 3b 0d 0a 09 6c 78 69 ┆te cold start ; start. ; lxi┆ 0x09c9a0…09c9c0 09 73 70 2c 62 75 66 66 09 3b 75 73 69 6e 67 20 64 6d 61 20 2d 20 74 68 75 73 20 38 30 20 74 68 ┆ sp,buff ;using dma - thus 80 th┆ 0x09c9c0…09c9e0 72 75 20 66 66 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 73 74 61 63 6b 0d 0a 3b 0d 0a 09 6d ┆ru ff available for stack ; m┆ 0x09c9e0…09ca00 76 69 09 63 2c 72 65 74 72 79 09 3b 6d 61 78 20 72 65 74 72 69 65 73 0d 0a 09 70 75 73 68 09 62 ┆vi c,retry ;max retries push b┆ 0x09ca00…09ca20 (41, 1, 9) 75 6e 74 0d 0a 3b 0d 0a 77 65 72 72 6f 72 3a 09 3b 72 65 74 75 72 6e 20 68 61 72 64 77 61 72 65 ┆unt ; werror: ;return hardware┆ 0x09ca20…09ca40 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 20 28 63 72 63 2c 20 74 72 61 63 6b 2c 20 73 65 65 6b 2c 20 ┆ malfunction (crc, track, seek, ┆ 0x09ca40…09ca60 65 74 63 2e 29 0d 0a 3b 09 74 68 65 20 6d 64 73 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 68 61 73 20 ┆etc.) ; the mds controller has ┆ 0x09ca60…09ca80 72 65 74 75 72 6e 65 64 20 61 20 62 69 74 20 69 6e 20 65 61 63 68 20 70 6f 73 69 74 69 6f 6e 0d ┆returned a bit in each position ┆ 0x09ca80…09caa0 0a 3b 09 6f 66 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 2c 20 63 6f 72 72 65 73 70 6f 6e ┆ ; of the accumulator, correspon┆ 0x09caa0…09cac0 64 69 6e 67 20 74 6f 20 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e 73 3a 0d 0a 3b 09 30 09 2d 20 64 ┆ding to the conditions: ; 0 - d┆ 0x09cac0…09cae0 65 6c 65 74 65 64 20 64 61 74 61 20 28 61 63 63 65 70 74 65 64 20 61 73 20 6f 6b 20 61 62 6f 76 ┆eleted data (accepted as ok abov┆ 0x09cae0…09cb00 65 29 0d 0a 3b 09 31 09 2d 20 63 72 63 20 65 72 72 6f 72 0d 0a 3b 09 32 09 2d 20 73 65 65 6b 20 ┆e) ; 1 - crc error ; 2 - seek ┆ 0x09cb00…09cb20 65 72 72 6f 72 0d 0a 3b 09 33 09 2d 20 61 64 64 72 65 73 73 20 65 72 72 6f 72 20 28 68 61 72 64 ┆error ; 3 - address error (hard┆ 0x09cb20…09cb40 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 34 09 2d 20 64 61 74 61 20 6f 76 ┆ware malfunction) ; 4 - data ov┆ 0x09cb40…09cb60 65 72 2f 75 6e 64 65 72 20 66 6c 6f 77 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 ┆er/under flow (hardware malfunct┆ 0x09cb60…09cb80 69 6f 6e 29 0d 0a 3b 09 35 09 2d 20 77 72 69 74 65 20 70 72 6f 74 65 63 74 20 28 74 72 65 61 74 ┆ion) ; 5 - write protect (treat┆ 0x09cb80…09cba0 65 64 20 61 73 20 6e 6f 74 20 72 65 61 64 79 29 0d 0a 3b 09 36 09 2d 20 77 72 69 74 65 20 65 72 ┆ed as not ready) ; 6 - write er┆ 0x09cba0…09cbc0 72 6f 72 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 37 09 ┆ror (hardware malfunction) ; 7 ┆ 0x09cbc0…09cbe0 2d 20 6e 6f 74 20 72 65 61 64 79 0d 0a 3b 09 28 61 63 63 75 6d 75 6c 61 74 6f 72 20 62 69 74 73 ┆- not ready ; (accumulator bits┆ 0x09cbe0…09cc00 20 61 72 65 20 6e 75 6d 62 65 72 65 64 20 37 20 36 20 35 20 34 20 33 20 32 20 31 20 30 29 0d 0a ┆ are numbered 7 6 5 4 3 2 1 0) ┆ 0x09cc00…09cc20 (41, 1, 10) 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 62 69 61 73 09 65 71 75 09 30 30 30 30 68 09 3b 67 ┆ if not test bias equ 0000h ;g┆ 0x09cc20…09cc40 65 6e 65 72 61 74 65 20 72 65 6c 6f 63 61 74 61 62 6c 65 20 63 70 2f 6d 20 73 79 73 74 65 6d 0d ┆enerate relocatable cp/m system ┆ 0x09cc40…09cc60 0a 09 65 6e 64 69 66 0d 0a 3b 0d 0a 70 61 74 63 68 09 65 71 75 09 31 36 30 30 68 0d 0a 3b 0d 0a ┆ endif ; patch equ 1600h ; ┆ 0x09cc60…09cc80 09 6f 72 67 09 70 61 74 63 68 0d 0a 63 70 6d 62 09 65 71 75 09 24 2d 70 61 74 63 68 09 3b 62 61 ┆ org patch cpmb equ $-patch ;ba┆ 0x09cc80…09cca0 73 65 20 6f 66 20 63 70 6d 20 63 6f 6e 73 6f 6c 65 20 70 72 6f 63 65 73 73 6f 72 0d 0a 62 64 6f ┆se of cpm console processor bdo┆ 0x09cca0…09ccc0 73 09 65 71 75 09 38 30 36 68 2b 63 70 6d 62 09 3b 62 61 73 69 63 20 64 6f 73 20 28 72 65 73 69 ┆s equ 806h+cpmb ;basic dos (resi┆ 0x09ccc0…09cce0 64 65 6e 74 20 70 6f 72 74 69 6f 6e 29 0d 0a 63 70 6d 6c 09 65 71 75 09 24 2d 63 70 6d 62 09 3b ┆dent portion) cpml equ $-cpmb ;┆ 0x09cce0…09cd00 6c 65 6e 67 74 68 20 28 69 6e 20 62 79 74 65 73 29 20 6f 66 20 63 70 6d 20 73 79 73 74 65 6d 0d ┆length (in bytes) of cpm system ┆ 0x09cd00…09cd20 0a 6e 73 65 63 74 73 09 65 71 75 09 63 70 6d 6c 2f 31 32 38 09 3b 6e 75 6d 62 65 72 20 6f 66 20 ┆ nsects equ cpml/128 ;number of ┆ 0x09cd20…09cd40 73 65 63 74 6f 72 73 20 74 6f 20 6c 6f 61 64 0d 0a 6f 66 66 73 65 74 09 65 71 75 09 32 09 3b 6e ┆sectors to load offset equ 2 ;n┆ 0x09cd40…09cd60 75 6d 62 65 72 20 6f 66 20 64 69 73 6b 20 74 72 61 63 6b 73 20 75 73 65 64 20 62 79 20 63 70 2f ┆umber of disk tracks used by cp/┆ 0x09cd60…09cd80 6d 0d 0a 63 64 69 73 6b 09 65 71 75 09 30 30 30 34 68 09 3b 61 64 64 72 65 73 73 20 6f 66 20 6c ┆m cdisk equ 0004h ;address of l┆ 0x09cd80…09cda0 61 73 74 20 6c 6f 67 67 65 64 20 64 69 73 6b 20 6f 6e 20 77 61 72 6d 20 73 74 61 72 74 0d 0a 62 ┆ast logged disk on warm start b┆ 0x09cda0…09cdc0 75 66 66 09 65 71 75 09 30 30 38 30 68 09 3b 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 ┆uff equ 0080h ;default buffer ad┆ 0x09cdc0…09cde0 64 72 65 73 73 0d 0a 72 65 74 72 79 09 65 71 75 09 31 30 09 3b 6d 61 78 20 72 65 74 72 69 65 73 ┆dress retry equ 10 ;max retries┆ 0x09cde0…09ce00 20 6f 6e 20 64 69 73 6b 20 69 2f 6f 20 62 65 66 6f 72 65 20 65 72 72 6f 72 0d 0a 3b 0d 0a 3b 09 ┆ on disk i/o before error ; ; ┆ 0x09ce00…09ce20 (41, 1, 11) 64 20 74 6f 20 74 68 65 20 70 61 72 74 69 63 75 6c 61 72 20 6f 70 65 72 61 74 69 6e 67 20 65 6e ┆d to the particular operating en┆ 0x09ce20…09ce40 76 69 72 6f 6e 6d 65 6e 74 2c 20 61 6e 64 20 6d 75 73 74 0d 0a 3b 09 62 65 20 61 6c 74 65 72 65 ┆vironment, and must ; be altere┆ 0x09ce40…09ce60 64 20 66 6f 72 20 61 6e 79 20 73 79 73 74 65 6d 20 77 68 69 63 68 20 64 69 66 66 65 72 73 20 66 ┆d for any system which differs f┆ 0x09ce60…09ce80 72 6f 6d 20 74 68 65 20 69 6e 74 65 6c 20 6d 64 73 2e 0d 0a 3b 0d 0a 3b 09 74 68 65 20 66 6f 6c ┆rom the intel mds. ; ; the fol┆ 0x09ce80…09cea0 6c 6f 77 69 6e 67 20 63 6f 64 65 20 61 73 73 75 6d 65 73 20 74 68 65 20 6d 64 73 20 6d 6f 6e 69 ┆lowing code assumes the mds moni┆ 0x09cea0…09cec0 74 6f 72 20 65 78 69 73 74 73 20 61 74 20 30 66 38 30 30 68 0d 0a 3b 09 61 6e 64 20 75 73 65 73 ┆tor exists at 0f800h ; and uses┆ 0x09cec0…09cee0 20 74 68 65 20 69 2f 6f 20 73 75 62 72 6f 75 74 69 6e 65 73 20 77 69 74 68 69 6e 20 74 68 65 20 ┆ the i/o subroutines within the ┆ 0x09cee0…09cf00 6d 6f 6e 69 74 6f 72 0d 0a 3b 0d 0a 3b 09 77 65 20 61 6c 73 6f 20 61 73 73 75 6d 65 20 74 68 65 ┆monitor ; ; we also assume the┆ 0x09cf00…09cf20 20 6d 64 73 20 73 79 73 74 65 6d 20 68 61 73 20 66 6f 75 72 20 64 69 73 6b 20 64 72 69 76 65 73 ┆ mds system has four disk drives┆ 0x09cf20…09cf40 0d 0a 72 65 76 72 74 09 65 71 75 09 30 66 64 68 09 3b 69 6e 74 65 72 72 75 70 74 20 72 65 76 65 ┆ revrt equ 0fdh ;interrupt reve┆ 0x09cf40…09cf60 72 74 20 70 6f 72 74 0d 0a 69 6e 74 63 09 65 71 75 09 30 66 63 68 09 3b 69 6e 74 65 72 72 75 70 ┆rt port intc equ 0fch ;interrup┆ 0x09cf60…09cf80 74 20 6d 61 73 6b 20 70 6f 72 74 0d 0a 69 63 6f 6e 09 65 71 75 09 30 66 33 68 09 3b 69 6e 74 65 ┆t mask port icon equ 0f3h ;inte┆ 0x09cf80…09cfa0 72 72 75 70 74 20 63 6f 6e 74 72 6f 6c 20 70 6f 72 74 0d 0a 69 6e 74 65 09 65 71 75 09 30 31 31 ┆rrupt control port inte equ 011┆ 0x09cfa0…09cfc0 31 24 31 31 31 30 62 09 3b 65 6e 61 62 6c 65 20 72 73 74 20 30 28 77 61 72 6d 20 62 6f 6f 74 29 ┆1$1110b ;enable rst 0(warm boot)┆ 0x09cfc0…09cfe0 2c 20 72 73 74 20 37 20 28 6d 6f 6e 69 74 6f 72 29 0d 0a 3b 0d 0a 3b 09 6d 64 73 20 6d 6f 6e 69 ┆, rst 7 (monitor) ; ; mds moni┆ 0x09cfe0…09d000 74 6f 72 20 65 71 75 61 74 65 73 0d 0a 6d 6f 6e 38 30 09 65 71 75 09 30 66 38 30 30 68 09 3b 6d ┆tor equates mon80 equ 0f800h ;m┆ 0x09d000…09d020 (41, 1, 12) 0d 0a 77 62 6f 6f 74 30 3a 09 3b 65 6e 74 65 72 20 68 65 72 65 20 6f 6e 20 65 72 72 6f 72 20 72 ┆ wboot0: ;enter here on error r┆ 0x09d020…09d040 65 74 72 69 65 73 0d 0a 09 6c 78 69 09 62 2c 63 70 6d 62 09 3b 73 65 74 20 64 6d 61 20 61 64 64 ┆etries lxi b,cpmb ;set dma add┆ 0x09d040…09d060 72 65 73 73 20 74 6f 20 73 74 61 72 74 20 6f 66 20 64 69 73 6b 20 73 79 73 74 65 6d 0d 0a 09 63 ┆ress to start of disk system c┆ 0x09d060…09d080 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 09 6d 76 69 09 63 2c 30 09 3b 62 6f 6f 74 20 66 72 6f 6d 20 ┆all setdma mvi c,0 ;boot from ┆ 0x09d080…09d0a0 64 72 69 76 65 20 30 0d 0a 09 63 61 6c 6c 09 73 65 6c 64 73 6b 0d 0a 09 6d 76 69 09 63 2c 30 0d ┆drive 0 call seldsk mvi c,0 ┆ 0x09d0a0…09d0c0 0a 09 63 61 6c 6c 09 73 65 74 74 72 6b 09 3b 73 74 61 72 74 20 77 69 74 68 20 74 72 61 63 6b 20 ┆ call settrk ;start with track ┆ 0x09d0c0…09d0e0 30 0d 0a 09 6d 76 69 09 63 2c 32 09 3b 73 74 61 72 74 20 72 65 61 64 69 6e 67 20 73 65 63 74 6f ┆0 mvi c,2 ;start reading secto┆ 0x09d0e0…09d100 72 20 32 0d 0a 09 63 61 6c 6c 09 73 65 74 73 65 63 0d 0a 3b 0d 0a 3b 09 72 65 61 64 20 73 65 63 ┆r 2 call setsec ; ; read sec┆ 0x09d100…09d120 74 6f 72 73 2c 20 63 6f 75 6e 74 20 6e 73 65 63 74 73 20 74 6f 20 7a 65 72 6f 0d 0a 09 70 6f 70 ┆tors, count nsects to zero pop┆ 0x09d120…09d140 09 62 09 3b 31 30 2d 65 72 72 6f 72 20 63 6f 75 6e 74 0d 0a 09 6d 76 69 09 62 2c 6e 73 65 63 74 ┆ b ;10-error count mvi b,nsect┆ 0x09d140…09d160 73 0d 0a 72 64 73 65 63 3a 09 3b 72 65 61 64 20 6e 65 78 74 20 73 65 63 74 6f 72 0d 0a 09 70 75 ┆s rdsec: ;read next sector pu┆ 0x09d160…09d180 73 68 09 62 09 3b 73 61 76 65 20 73 65 63 74 6f 72 20 63 6f 75 6e 74 0d 0a 09 63 61 6c 6c 09 72 ┆sh b ;save sector count call r┆ 0x09d180…09d1a0 65 61 64 0d 0a 09 6a 6e 7a 09 62 6f 6f 74 65 72 72 09 3b 72 65 74 72 79 20 69 66 20 65 72 72 6f ┆ead jnz booterr ;retry if erro┆ 0x09d1a0…09d1c0 72 73 20 6f 63 63 75 72 0d 0a 09 6c 68 6c 64 09 69 6f 64 09 3b 69 6e 63 72 65 6d 65 6e 74 20 64 ┆rs occur lhld iod ;increment d┆ 0x09d1c0…09d1e0 6d 61 20 61 64 64 72 65 73 73 0d 0a 09 6c 78 69 09 64 2c 31 32 38 09 3b 73 65 63 74 6f 72 20 73 ┆ma address lxi d,128 ;sector s┆ 0x09d1e0…09d200 69 7a 65 0d 0a 09 64 61 64 09 64 09 3b 69 6e 63 72 65 6d 65 6e 74 65 64 20 64 6d 61 20 61 64 64 ┆ize dad d ;incremented dma add┆ 0x09d200…09d220 (41, 1, 13) 3b 0d 0a 3b 09 69 74 20 6d 61 79 20 62 65 20 75 73 65 66 75 6c 20 74 6f 20 66 69 6c 74 65 72 20 ┆; ; it may be useful to filter ┆ 0x09d220…09d240 6f 75 74 20 74 68 65 20 76 61 72 69 6f 75 73 20 63 6f 6e 64 69 74 69 6f 6e 73 2c 0d 0a 3b 09 62 ┆out the various conditions, ; b┆ 0x09d240…09d260 75 74 20 77 65 20 77 69 6c 6c 20 67 65 74 20 61 20 70 65 72 6d 61 6e 65 6e 74 20 65 72 72 6f 72 ┆ut we will get a permanent error┆ 0x09d260…09d280 20 6d 65 73 73 61 67 65 20 69 66 20 69 74 20 69 73 20 6e 6f 74 0d 0a 3b 09 72 65 63 6f 76 65 72 ┆ message if it is not ; recover┆ 0x09d280…09d2a0 61 62 6c 65 2e 20 20 69 6e 20 61 6e 79 20 63 61 73 65 2c 20 74 68 65 20 6e 6f 74 20 72 65 61 64 ┆able. in any case, the not read┆ 0x09d2a0…09d2c0 79 20 63 6f 6e 64 69 74 69 6f 6e 20 69 73 0d 0a 3b 09 74 72 65 61 74 65 64 20 61 73 20 61 20 73 ┆y condition is ; treated as a s┆ 0x09d2c0…09d2e0 65 70 61 72 61 74 65 20 63 6f 6e 64 69 74 69 6f 6e 20 66 6f 72 20 6c 61 74 65 72 20 69 6d 70 72 ┆eparate condition for later impr┆ 0x09d2e0…09d300 6f 76 65 6d 65 6e 74 0d 0a 74 72 79 63 6f 75 6e 74 3a 0d 0a 3b 09 72 65 67 69 73 74 65 72 20 63 ┆ovement trycount: ; register c┆ 0x09d300…09d320 20 63 6f 6e 74 61 69 6e 73 20 72 65 74 72 79 20 63 6f 75 6e 74 2c 20 64 65 63 72 65 6d 65 6e 74 ┆ contains retry count, decrement┆ 0x09d320…09d340 20 27 74 69 6c 20 7a 65 72 6f 0d 0a 09 64 63 72 09 63 0d 0a 09 6a 6e 7a 09 72 65 77 61 69 74 09 ┆ 'til zero dcr c jnz rewait ┆ 0x09d340…09d360 3b 66 6f 72 20 61 6e 6f 74 68 65 72 20 74 72 79 0d 0a 3b 0d 0a 3b 09 63 61 6e 6e 6f 74 20 72 65 ┆;for another try ; ; cannot re┆ 0x09d360…09d380 63 6f 76 65 72 20 66 72 6f 6d 20 65 72 72 6f 72 0d 0a 09 6d 76 69 09 61 2c 31 09 3b 65 72 72 6f ┆cover from error mvi a,1 ;erro┆ 0x09d380…09d3a0 72 20 63 6f 64 65 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 09 69 6e 74 79 70 65 2c 20 69 6e 62 79 74 ┆r code ret ; ; intype, inbyt┆ 0x09d3a0…09d3c0 65 2c 20 69 6e 73 74 61 74 20 72 65 61 64 20 64 72 69 76 65 20 62 61 6e 6b 20 30 30 20 6f 72 20 ┆e, instat read drive bank 00 or ┆ 0x09d3c0…09d3e0 31 30 0d 0a 69 6e 74 79 70 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 ┆10 intype: lda dbank ora a ┆ 0x09d3e0…09d400 6a 6e 7a 09 69 6e 74 79 70 31 09 3b 73 6b 69 70 20 74 6f 20 62 61 6e 6b 20 31 30 0d 0a 09 69 6e ┆jnz intyp1 ;skip to bank 10 in┆ 0x09d400…09d420 (41, 1, 14) 70 65 72 66 6f 72 6d 20 66 6f 6c 6c 6f 77 69 6e 67 20 66 75 6e 63 74 69 6f 6e 73 0d 0a 3b 09 62 ┆perform following functions ; b┆ 0x09d420…09d440 6f 6f 74 09 63 6f 6c 64 20 73 74 61 72 74 0d 0a 3b 09 77 62 6f 6f 74 09 77 61 72 6d 20 73 74 61 ┆oot cold start ; wboot warm sta┆ 0x09d440…09d460 72 74 20 28 73 61 76 65 20 69 2f 6f 20 62 79 74 65 29 0d 0a 3b 09 28 62 6f 6f 74 20 61 6e 64 20 ┆rt (save i/o byte) ; (boot and ┆ 0x09d460…09d480 77 62 6f 6f 74 20 61 72 65 20 74 68 65 20 73 61 6d 65 20 66 6f 72 20 6d 64 73 29 0d 0a 3b 09 63 ┆wboot are the same for mds) ; c┆ 0x09d480…09d4a0 6f 6e 73 74 09 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 0d 0a 3b 09 09 72 65 67 2d 61 20 3d 20 ┆onst console status ; reg-a = ┆ 0x09d4a0…09d4c0 30 30 20 69 66 20 6e 6f 20 63 68 61 72 61 63 74 65 72 20 72 65 61 64 79 0d 0a 3b 09 09 72 65 67 ┆00 if no character ready ; reg┆ 0x09d4c0…09d4e0 2d 61 20 3d 20 66 66 20 69 66 20 63 68 61 72 61 63 74 65 72 20 72 65 61 64 79 0d 0a 3b 09 63 6f ┆-a = ff if character ready ; co┆ 0x09d4e0…09d500 6e 69 6e 09 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 28 72 65 73 75 6c 74 ┆nin console character in (result┆ 0x09d500…09d520 20 69 6e 20 72 65 67 2d 61 29 0d 0a 3b 09 63 6f 6e 6f 75 74 09 63 6f 6e 73 6f 6c 65 20 63 68 61 ┆ in reg-a) ; conout console cha┆ 0x09d520…09d540 72 61 63 74 65 72 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 6c 69 ┆racter out (char in reg-c) ; li┆ 0x09d540…09d560 73 74 09 6c 69 73 74 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 70 ┆st list out (char in reg-c) ; p┆ 0x09d560…09d580 75 6e 63 68 09 70 75 6e 63 68 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a ┆unch punch out (char in reg-c) ┆ 0x09d580…09d5a0 3b 09 72 65 61 64 65 72 09 70 61 70 65 72 20 74 61 70 65 20 72 65 61 64 65 72 20 69 6e 20 28 72 ┆; reader paper tape reader in (r┆ 0x09d5a0…09d5c0 65 73 75 6c 74 20 74 6f 20 72 65 67 2d 61 29 0d 0a 3b 09 68 6f 6d 65 09 6d 6f 76 65 20 74 6f 20 ┆esult to reg-a) ; home move to ┆ 0x09d5c0…09d5e0 74 72 61 63 6b 20 30 30 0d 0a 3b 0d 0a 3b 09 28 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 61 ┆track 00 ; ; (the following ca┆ 0x09d5e0…09d600 6c 6c 73 20 73 65 74 2d 75 70 20 74 68 65 20 69 6f 20 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 ┆lls set-up the io parameter bloc┆ 0x09d600…09d620 (41, 1, 15) 64 73 20 6d 6f 6e 69 74 6f 72 0d 0a 72 6d 6f 6e 38 30 09 65 71 75 09 30 66 66 30 66 68 09 3b 72 ┆ds monitor rmon80 equ 0ff0fh ;r┆ 0x09d620…09d640 65 73 74 61 72 74 20 6d 6f 6e 38 30 20 28 62 6f 6f 74 20 65 72 72 6f 72 29 0d 0a 63 69 09 65 71 ┆estart mon80 (boot error) ci eq┆ 0x09d640…09d660 75 09 30 66 38 30 33 68 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 72 ┆u 0f803h ;console character to r┆ 0x09d660…09d680 65 67 2d 61 0d 0a 72 69 09 65 71 75 09 30 66 38 30 36 68 09 3b 72 65 61 64 65 72 20 69 6e 20 74 ┆eg-a ri equ 0f806h ;reader in t┆ 0x09d680…09d6a0 6f 20 72 65 67 2d 61 0d 0a 63 6f 09 65 71 75 09 30 66 38 30 39 68 09 3b 63 6f 6e 73 6f 6c 65 20 ┆o reg-a co equ 0f809h ;console ┆ 0x09d6a0…09d6c0 63 68 61 72 20 66 72 6f 6d 20 63 20 74 6f 20 63 6f 6e 73 6f 6c 65 20 6f 75 74 0d 0a 70 6f 09 65 ┆char from c to console out po e┆ 0x09d6c0…09d6e0 71 75 09 30 66 38 30 63 68 09 3b 70 75 6e 63 68 20 63 68 61 72 20 66 72 6f 6d 20 63 20 74 6f 20 ┆qu 0f80ch ;punch char from c to ┆ 0x09d6e0…09d700 70 75 6e 63 68 20 64 65 76 69 63 65 0d 0a 6c 6f 09 65 71 75 09 30 66 38 30 66 68 09 3b 6c 69 73 ┆punch device lo equ 0f80fh ;lis┆ 0x09d700…09d720 74 20 66 72 6f 6d 20 63 20 74 6f 20 6c 69 73 74 20 64 65 76 69 63 65 0d 0a 63 73 74 73 09 65 71 ┆t from c to list device csts eq┆ 0x09d720…09d740 75 09 30 66 38 31 32 68 09 3b 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 20 30 30 2f 66 66 20 74 ┆u 0f812h ;console status 00/ff t┆ 0x09d740…09d760 6f 20 72 65 67 69 73 74 65 72 20 61 0d 0a 3b 0d 0a 3b 09 64 69 73 6b 20 70 6f 72 74 73 20 61 6e ┆o register a ; ; disk ports an┆ 0x09d760…09d780 64 20 63 6f 6d 6d 61 6e 64 73 0d 0a 62 61 73 65 09 65 71 75 09 37 38 68 09 3b 62 61 73 65 20 6f ┆d commands base equ 78h ;base o┆ 0x09d780…09d7a0 66 20 64 69 73 6b 20 63 6f 6d 6d 61 6e 64 20 69 6f 20 70 6f 72 74 73 0d 0a 64 73 74 61 74 09 65 ┆f disk command io ports dstat e┆ 0x09d7a0…09d7c0 71 75 09 62 61 73 65 09 3b 64 69 73 6b 20 73 74 61 74 75 73 20 28 69 6e 70 75 74 29 0d 0a 72 74 ┆qu base ;disk status (input) rt┆ 0x09d7c0…09d7e0 79 70 65 09 65 71 75 09 62 61 73 65 2b 31 09 3b 72 65 73 75 6c 74 20 74 79 70 65 20 28 69 6e 70 ┆ype equ base+1 ;result type (inp┆ 0x09d7e0…09d800 75 74 29 0d 0a 72 62 79 74 65 09 65 71 75 09 62 61 73 65 2b 33 09 3b 72 65 73 75 6c 74 20 62 79 ┆ut) rbyte equ base+3 ;result by┆ 0x09d800…09d820 (42, 0, 1) 72 65 73 73 20 69 6e 20 68 6c 0d 0a 09 6d 6f 76 09 62 2c 68 0d 0a 09 6d 6f 76 09 63 2c 6c 09 3b ┆ress in hl mov b,h mov c,l ;┆ 0x09d820…09d840 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 20 74 6f 20 73 65 74 20 64 6d 61 0d 0a 09 63 61 6c 6c ┆ready for call to set dma call┆ 0x09d840…09d860 09 73 65 74 64 6d 61 0d 0a 09 6c 64 61 09 69 6f 73 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 ┆ setdma lda ios ;sector number┆ 0x09d860…09d880 20 6a 75 73 74 20 72 65 61 64 0d 0a 09 63 70 69 09 32 36 09 3b 72 65 61 64 20 6c 61 73 74 20 73 ┆ just read cpi 26 ;read last s┆ 0x09d880…09d8a0 65 63 74 6f 72 3f 0d 0a 09 6a 63 09 72 64 31 0d 0a 3b 09 6d 75 73 74 20 62 65 20 73 65 63 74 6f ┆ector? jc rd1 ; must be secto┆ 0x09d8a0…09d8c0 72 20 32 36 2c 20 7a 65 72 6f 20 61 6e 64 20 67 6f 20 74 6f 20 6e 65 78 74 20 74 72 61 63 6b 0d ┆r 26, zero and go to next track ┆ 0x09d8c0…09d8e0 0a 09 6c 64 61 09 69 6f 74 09 3b 67 65 74 20 74 72 61 63 6b 20 74 6f 20 72 65 67 69 73 74 65 72 ┆ lda iot ;get track to register┆ 0x09d8e0…09d900 20 61 0d 0a 09 69 6e 72 09 61 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 72 65 61 64 79 20 66 6f 72 20 ┆ a inr a mov c,a ;ready for ┆ 0x09d900…09d920 63 61 6c 6c 0d 0a 09 63 61 6c 6c 09 73 65 74 74 72 6b 0d 0a 09 78 72 61 09 61 09 3b 63 6c 65 61 ┆call call settrk xra a ;clea┆ 0x09d920…09d940 72 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 0d 0a 72 64 31 3a 09 69 6e 72 09 61 09 3b 74 6f 20 ┆r sector number rd1: inr a ;to ┆ 0x09d940…09d960 6e 65 78 74 20 73 65 63 74 6f 72 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 72 65 61 64 79 20 66 6f 72 ┆next sector mov c,a ;ready for┆ 0x09d960…09d980 20 63 61 6c 6c 0d 0a 09 63 61 6c 6c 09 73 65 74 73 65 63 0d 0a 09 70 6f 70 09 62 09 3b 72 65 63 ┆ call call setsec pop b ;rec┆ 0x09d980…09d9a0 61 6c 6c 20 73 65 63 74 6f 72 20 63 6f 75 6e 74 0d 0a 09 64 63 72 09 62 09 3b 64 6f 6e 65 3f 0d ┆all sector count dcr b ;done? ┆ 0x09d9a0…09d9c0 0a 09 6a 6e 7a 09 72 64 73 65 63 0d 0a 3b 0d 0a 3b 09 64 6f 6e 65 20 77 69 74 68 20 74 68 65 20 ┆ jnz rdsec ; ; done with the ┆ 0x09d9c0…09d9e0 6c 6f 61 64 2c 20 72 65 73 65 74 20 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 ┆load, reset default buffer addre┆ 0x09d9e0…09da00 73 73 0d 0a 67 6f 63 70 6d 3a 09 3b 28 65 6e 74 65 72 20 68 65 72 65 20 66 72 6f 6d 20 63 6f 6c ┆ss gocpm: ;(enter here from col┆ 0x09da00…09da20 (42, 0, 2) 65 61 74 20 61 73 20 74 72 61 63 6b 20 30 30 20 73 65 65 6b 0d 0a 09 6d 76 69 09 63 2c 30 0d 0a ┆eat as track 00 seek mvi c,0 ┆ 0x09da20…09da40 09 6a 6d 70 09 73 65 74 74 72 6b 0d 0a 3b 0d 0a 73 65 6c 64 73 6b 3a 09 3b 73 65 6c 65 63 74 20 ┆ jmp settrk ; seldsk: ;select ┆ 0x09da40…09da60 64 69 73 6b 20 67 69 76 65 6e 20 62 79 20 72 65 67 69 73 74 65 72 20 63 0d 0a 09 6c 78 69 09 68 ┆disk given by register c lxi h┆ 0x09da60…09da80 2c 30 30 30 30 68 09 3b 72 65 74 75 72 6e 20 30 30 30 30 20 69 66 20 65 72 72 6f 72 0d 0a 09 6d ┆,0000h ;return 0000 if error m┆ 0x09da80…09daa0 6f 76 09 61 2c 63 0d 0a 09 63 70 69 09 6e 64 69 73 6b 73 09 3b 74 6f 6f 20 6c 61 72 67 65 3f 0d ┆ov a,c cpi ndisks ;too large? ┆ 0x09daa0…09dac0 0a 09 72 6e 63 09 09 3b 6c 65 61 76 65 20 48 4c 20 3d 20 30 30 30 30 0d 0a 3b 0d 0a 09 61 6e 69 ┆ rnc ;leave HL = 0000 ; ani┆ 0x09dac0…09dae0 09 31 30 62 09 3b 30 30 20 30 30 20 66 6f 72 20 64 72 69 76 65 20 30 2c 31 20 61 6e 64 20 31 30 ┆ 10b ;00 00 for drive 0,1 and 10┆ 0x09dae0…09db00 20 31 30 20 66 6f 72 20 64 72 69 76 65 20 32 2c 33 0d 0a 09 73 74 61 09 64 62 61 6e 6b 09 3b 74 ┆ 10 for drive 2,3 sta dbank ;t┆ 0x09db00…09db20 6f 20 73 65 6c 65 63 74 20 64 72 69 76 65 20 62 61 6e 6b 0d 0a 09 6d 6f 76 09 61 2c 63 09 3b 30 ┆o select drive bank mov a,c ;0┆ 0x09db20…09db40 30 2c 20 30 31 2c 20 31 30 2c 20 31 31 0d 0a 09 61 6e 69 09 31 62 09 3b 6d 64 73 20 68 61 73 20 ┆0, 01, 10, 11 ani 1b ;mds has ┆ 0x09db40…09db60 30 2c 31 20 61 74 20 37 38 2c 20 32 2c 33 20 61 74 20 38 38 0d 0a 09 6f 72 61 09 61 09 3b 72 65 ┆0,1 at 78, 2,3 at 88 ora a ;re┆ 0x09db60…09db80 73 75 6c 74 20 30 30 3f 0d 0a 09 6a 7a 09 73 65 74 64 72 69 76 65 0d 0a 09 6d 76 69 09 61 2c 30 ┆sult 00? jz setdrive mvi a,0┆ 0x09db80…09dba0 30 31 31 30 30 30 30 62 09 3b 73 65 6c 65 63 74 73 20 64 72 69 76 65 20 31 20 69 6e 20 62 61 6e ┆0110000b ;selects drive 1 in ban┆ 0x09dba0…09dbc0 6b 0d 0a 73 65 74 64 72 69 76 65 3a 0d 0a 09 6d 6f 76 09 62 2c 61 09 3b 73 61 76 65 20 74 68 65 ┆k setdrive: mov b,a ;save the┆ 0x09dbc0…09dbe0 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6c 78 69 09 68 2c 69 6f 66 09 3b 69 6f 20 66 75 6e 63 74 69 ┆ function lxi h,iof ;io functi┆ 0x09dbe0…09dc00 6f 6e 0d 0a 09 6d 6f 76 09 61 2c 6d 0d 0a 09 61 6e 69 09 31 31 30 30 31 31 31 31 62 09 3b 6d 61 ┆on mov a,m ani 11001111b ;ma┆ 0x09dc00…09dc20 (42, 0, 3) 65 6e 74 20 69 2f 6f 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 61 6e 69 09 30 30 31 30 30 30 30 30 62 ┆ent i/o function ani 00100000b┆ 0x09dc20…09dc40 09 3b 6d 61 73 6b 20 74 68 65 20 64 69 73 6b 20 73 65 6c 65 63 74 20 62 69 74 0d 0a 09 6c 78 69 ┆ ;mask the disk select bit lxi┆ 0x09dc40…09dc60 09 68 2c 69 6f 73 09 09 3b 61 64 64 72 65 73 73 20 74 68 65 20 73 65 63 74 6f 72 20 73 65 6c 65 ┆ h,ios ;address the sector sele┆ 0x09dc60…09dc80 63 74 20 62 79 74 65 0d 0a 09 6f 72 61 09 6d 09 09 3b 73 65 6c 65 63 74 20 70 72 6f 70 65 72 20 ┆ct byte ora m ;select proper ┆ 0x09dc80…09dca0 64 69 73 6b 20 62 61 6e 6b 0d 0a 09 6d 6f 76 09 6d 2c 61 09 09 3b 73 65 74 20 64 69 73 6b 20 73 ┆disk bank mov m,a ;set disk s┆ 0x09dca0…09dcc0 65 6c 65 63 74 20 62 69 74 20 6f 6e 2f 6f 66 66 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 77 61 69 74 69 ┆elect bit on/off ret ; waiti┆ 0x09dcc0…09dce0 6f 3a 0d 0a 09 6d 76 69 09 63 2c 72 65 74 72 79 09 3b 6d 61 78 20 72 65 74 72 69 65 73 20 62 65 ┆o: mvi c,retry ;max retries be┆ 0x09dce0…09dd00 66 6f 72 65 20 70 65 72 6d 20 65 72 72 6f 72 0d 0a 72 65 77 61 69 74 3a 0d 0a 3b 09 73 74 61 72 ┆fore perm error rewait: ; star┆ 0x09dd00…09dd20 74 20 74 68 65 20 69 2f 6f 20 66 75 6e 63 74 69 6f 6e 20 61 6e 64 20 77 61 69 74 20 66 6f 72 20 ┆t the i/o function and wait for ┆ 0x09dd20…09dd40 63 6f 6d 70 6c 65 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 69 6e 74 79 70 65 09 3b 69 6e 20 72 74 79 ┆completion call intype ;in rty┆ 0x09dd40…09dd60 70 65 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 09 3b 63 6c 65 61 72 73 20 74 68 65 20 63 6f 6e ┆pe call inbyte ;clears the con┆ 0x09dd60…09dd80 74 72 6f 6c 6c 65 72 0d 0a 3b 0d 0a 09 6c 64 61 09 64 62 61 6e 6b 09 09 3b 73 65 74 20 62 61 6e ┆troller ; lda dbank ;set ban┆ 0x09dd80…09dda0 6b 20 66 6c 61 67 73 0d 0a 09 6f 72 61 09 61 09 09 3b 7a 65 72 6f 20 69 66 20 64 72 69 76 65 20 ┆k flags ora a ;zero if drive ┆ 0x09dda0…09ddc0 30 2c 31 20 61 6e 64 20 6e 7a 20 69 66 20 32 2c 33 0d 0a 09 6d 76 69 09 61 2c 69 6f 70 62 20 61 ┆0,1 and nz if 2,3 mvi a,iopb a┆ 0x09ddc0…09dde0 6e 64 20 30 66 66 68 09 3b 6c 6f 77 20 61 64 64 72 65 73 73 20 66 6f 72 20 69 6f 70 62 0d 0a 09 ┆nd 0ffh ;low address for iopb ┆ 0x09dde0…09de00 6d 76 69 09 62 2c 69 6f 70 62 20 73 68 72 20 38 09 3b 68 69 67 68 20 61 64 64 72 65 73 73 20 66 ┆mvi b,iopb shr 8 ;high address f┆ 0x09de00…09de20 (42, 0, 4) 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 69 66 20 69 74 20 69 73 20 6e 6f 74 0d 0a 3b 09 72 65 ┆error message if it is not ; re┆ 0x09de20…09de40 63 6f 76 65 72 61 62 6c 65 2e 20 20 69 6e 20 61 6e 79 20 63 61 73 65 2c 20 74 68 65 20 6e 6f 74 ┆coverable. in any case, the not┆ 0x09de40…09de60 20 72 65 61 64 79 20 63 6f 6e 64 69 74 69 6f 6e 20 69 73 0d 0a 3b 09 74 72 65 61 74 65 64 20 61 ┆ ready condition is ; treated a┆ 0x09de60…09de80 73 20 61 20 73 65 70 61 72 61 74 65 20 63 6f 6e 64 69 74 69 6f 6e 20 66 6f 72 20 6c 61 74 65 72 ┆s a separate condition for later┆ 0x09de80…09dea0 20 69 6d 70 72 6f 76 65 6d 65 6e 74 0d 0a 74 72 79 63 6f 75 6e 74 3a 0d 0a 3b 09 72 65 67 69 73 ┆ improvement trycount: ; regis┆ 0x09dea0…09dec0 74 65 72 20 63 20 63 6f 6e 74 61 69 6e 73 20 72 65 74 72 79 20 63 6f 75 6e 74 2c 20 64 65 63 72 ┆ter c contains retry count, decr┆ 0x09dec0…09dee0 65 6d 65 6e 74 20 27 74 69 6c 20 7a 65 72 6f 0d 0a 09 64 63 72 09 63 0d 0a 09 6a 6e 7a 09 72 65 ┆ement 'til zero dcr c jnz re┆ 0x09dee0…09df00 77 61 69 74 09 3b 66 6f 72 20 61 6e 6f 74 68 65 72 20 74 72 79 0d 0a 3b 0d 0a 3b 09 63 61 6e 6e ┆wait ;for another try ; ; cann┆ 0x09df00…09df20 6f 74 20 72 65 63 6f 76 65 72 20 66 72 6f 6d 20 65 72 72 6f 72 0d 0a 09 6d 76 69 09 61 2c 31 09 ┆ot recover from error mvi a,1 ┆ 0x09df20…09df40 3b 65 72 72 6f 72 20 63 6f 64 65 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 09 69 6e 74 79 70 65 2c 20 ┆;error code ret ; ; intype, ┆ 0x09df40…09df60 69 6e 62 79 74 65 2c 20 69 6e 73 74 61 74 20 72 65 61 64 20 64 72 69 76 65 20 62 61 6e 6b 20 30 ┆inbyte, instat read drive bank 0┆ 0x09df60…09df80 30 20 6f 72 20 31 30 0d 0a 69 6e 74 79 70 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 ┆0 or 10 intype: lda dbank ora┆ 0x09df80…09dfa0 09 61 0d 0a 09 6a 6e 7a 09 69 6e 74 79 70 31 09 3b 73 6b 69 70 20 74 6f 20 62 61 6e 6b 20 31 30 ┆ a jnz intyp1 ;skip to bank 10┆ 0x09dfa0…09dfc0 0d 0a 09 69 6e 09 72 74 79 70 65 0d 0a 09 72 65 74 0d 0a 69 6e 74 79 70 31 3a 09 69 6e 09 72 74 ┆ in rtype ret intyp1: in rt┆ 0x09dfc0…09dfe0 79 70 65 2b 31 30 68 09 3b 37 38 20 66 6f 72 20 30 2c 31 20 20 38 38 20 66 6f 72 20 32 2c 33 0d ┆ype+10h ;78 for 0,1 88 for 2,3 ┆ 0x09dfe0…09e000 0a 09 72 65 74 0d 0a 3b 0d 0a 69 6e 62 79 74 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 ┆ ret ; inbyte: lda dbank or┆ 0x09e000…09e020 (42, 0, 5) 64 20 73 74 61 72 74 20 62 6f 6f 74 29 0d 0a 3b 09 65 6e 61 62 6c 65 20 72 73 74 30 20 61 6e 64 ┆d start boot) ; enable rst0 and┆ 0x09e020…09e040 20 72 73 74 37 0d 0a 09 64 69 0d 0a 09 6d 76 69 09 61 2c 31 32 68 09 3b 69 6e 69 74 69 61 6c 69 ┆ rst7 di mvi a,12h ;initiali┆ 0x09e040…09e060 7a 65 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6f 75 74 09 72 65 76 72 74 0d 0a 09 78 72 61 09 61 0d 0a ┆ze command out revrt xra a ┆ 0x09e060…09e080 09 6f 75 74 09 69 6e 74 63 09 3b 63 6c 65 61 72 65 64 0d 0a 09 6d 76 69 09 61 2c 69 6e 74 65 09 ┆ out intc ;cleared mvi a,inte ┆ 0x09e080…09e0a0 3b 72 73 74 30 20 61 6e 64 20 72 73 74 37 20 62 69 74 73 20 6f 6e 0d 0a 09 6f 75 74 09 69 6e 74 ┆;rst0 and rst7 bits on out int┆ 0x09e0a0…09e0c0 63 0d 0a 09 78 72 61 09 61 0d 0a 09 6f 75 74 09 69 63 6f 6e 09 3b 69 6e 74 65 72 72 75 70 74 20 ┆c xra a out icon ;interrupt ┆ 0x09e0c0…09e0e0 63 6f 6e 74 72 6f 6c 0d 0a 3b 0d 0a 3b 09 73 65 74 20 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 ┆control ; ; set default buffer┆ 0x09e0e0…09e100 20 61 64 64 72 65 73 73 20 74 6f 20 38 30 68 0d 0a 09 6c 78 69 09 62 2c 62 75 66 66 0d 0a 09 63 ┆ address to 80h lxi b,buff c┆ 0x09e100…09e120 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 3b 0d 0a 3b 09 72 65 73 65 74 20 6d 6f 6e 69 74 6f 72 20 65 ┆all setdma ; ; reset monitor e┆ 0x09e120…09e140 6e 74 72 79 20 70 6f 69 6e 74 73 0d 0a 09 6d 76 69 09 61 2c 6a 6d 70 0d 0a 09 73 74 61 09 30 0d ┆ntry points mvi a,jmp sta 0 ┆ 0x09e140…09e160 0a 09 6c 78 69 09 68 2c 77 62 6f 6f 74 65 0d 0a 09 73 68 6c 64 09 31 09 3b 6a 6d 70 20 77 62 6f ┆ lxi h,wboote shld 1 ;jmp wbo┆ 0x09e160…09e180 6f 74 20 61 74 20 6c 6f 63 61 74 69 6f 6e 20 30 30 0d 0a 09 73 74 61 09 35 0d 0a 09 6c 78 69 09 ┆ot at location 00 sta 5 lxi ┆ 0x09e180…09e1a0 68 2c 62 64 6f 73 0d 0a 09 73 68 6c 64 09 36 09 3b 6a 6d 70 20 62 64 6f 73 20 61 74 20 6c 6f 63 ┆h,bdos shld 6 ;jmp bdos at loc┆ 0x09e1a0…09e1c0 61 74 69 6f 6e 20 35 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 09 73 74 61 09 37 2a 38 09 ┆ation 5 if not test sta 7*8 ┆ 0x09e1c0…09e1e0 3b 6a 6d 70 20 74 6f 20 6d 6f 6e 38 30 20 28 6d 61 79 20 68 61 76 65 20 62 65 65 6e 20 63 68 61 ┆;jmp to mon80 (may have been cha┆ 0x09e1e0…09e200 6e 67 65 64 20 62 79 20 64 64 74 29 0d 0a 09 6c 78 69 09 68 2c 6d 6f 6e 38 30 0d 0a 09 73 68 6c ┆nged by ddt) lxi h,mon80 shl┆ 0x09e200…09e220 (42, 0, 6) 73 6b 20 6f 75 74 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6f 72 61 09 62 09 3b 6d 61 73 6b ┆sk out disk number ora b ;mask┆ 0x09e220…09e240 20 69 6e 20 6e 65 77 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6d 6f 76 09 6d 2c 61 09 3b 73 ┆ in new disk number mov m,a ;s┆ 0x09e240…09e260 61 76 65 20 69 74 20 69 6e 20 69 6f 70 62 0d 0a 09 6d 6f 76 09 6c 2c 63 0d 0a 09 6d 76 69 09 68 ┆ave it in iopb mov l,c mvi h┆ 0x09e260…09e280 2c 30 09 3b 48 4c 3d 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 64 61 64 09 68 09 3b 2a 32 0d 0a ┆,0 ;HL=disk number dad h ;*2 ┆ 0x09e280…09e2a0 09 64 61 64 09 68 09 3b 2a 34 0d 0a 09 64 61 64 09 68 09 3b 2a 38 0d 0a 09 64 61 64 09 68 09 3b ┆ dad h ;*4 dad h ;*8 dad h ;┆ 0x09e2a0…09e2c0 2a 31 36 0d 0a 09 6c 78 69 09 64 2c 64 70 62 61 73 65 0d 0a 09 64 61 64 09 64 09 3b 48 4c 3d 64 ┆*16 lxi d,dpbase dad d ;HL=d┆ 0x09e2c0…09e2e0 69 73 6b 20 68 65 61 64 65 72 20 74 61 62 6c 65 20 61 64 64 72 65 73 73 0d 0a 09 72 65 74 0d 0a ┆isk header table address ret ┆ 0x09e2e0…09e300 3b 0d 0a 3b 0d 0a 73 65 74 74 72 6b 3a 09 3b 73 65 74 20 74 72 61 63 6b 20 61 64 64 72 65 73 73 ┆; ; settrk: ;set track address┆ 0x09e300…09e320 20 67 69 76 65 6e 20 62 79 20 63 0d 0a 09 6c 78 69 09 68 2c 69 6f 74 0d 0a 09 6d 6f 76 09 6d 2c ┆ given by c lxi h,iot mov m,┆ 0x09e320…09e340 63 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 73 65 74 73 65 63 3a 09 3b 73 65 74 20 73 65 63 74 6f 72 20 ┆c ret ; setsec: ;set sector ┆ 0x09e340…09e360 6e 75 6d 62 65 72 20 67 69 76 65 6e 20 62 79 20 63 0d 0a 09 6c 78 69 09 68 2c 69 6f 73 0d 0a 09 ┆number given by c lxi h,ios ┆ 0x09e360…09e380 6d 6f 76 09 6d 2c 63 0d 0a 09 72 65 74 0d 0a 73 65 63 74 72 61 6e 3a 0d 0a 09 09 3b 74 72 61 6e ┆mov m,c ret sectran: ;tran┆ 0x09e380…09e3a0 73 6c 61 74 65 20 73 65 63 74 6f 72 20 62 63 20 75 73 69 6e 67 20 74 61 62 6c 65 20 61 74 20 64 ┆slate sector bc using table at d┆ 0x09e3a0…09e3c0 65 0d 0a 09 6d 76 69 09 62 2c 30 09 3b 64 6f 75 62 6c 65 20 70 72 65 63 69 73 69 6f 6e 20 73 65 ┆e mvi b,0 ;double precision se┆ 0x09e3c0…09e3e0 63 74 6f 72 20 6e 75 6d 62 65 72 20 69 6e 20 42 43 0d 0a 09 78 63 68 67 09 09 3b 74 72 61 6e 73 ┆ctor number in BC xchg ;trans┆ 0x09e3e0…09e400 6c 61 74 65 20 74 61 62 6c 65 20 61 64 64 72 65 73 73 20 74 6f 20 48 4c 0d 0a 09 64 61 64 09 62 ┆late table address to HL dad b┆ 0x09e400…09e420 (42, 0, 7) 6f 72 20 69 6f 70 62 0d 0a 09 6a 6e 7a 09 69 6f 64 72 31 09 3b 64 72 69 76 65 20 62 61 6e 6b 20 ┆or iopb jnz iodr1 ;drive bank ┆ 0x09e420…09e440 31 3f 0d 0a 09 6f 75 74 09 69 6c 6f 77 09 09 3b 6c 6f 77 20 61 64 64 72 65 73 73 20 74 6f 20 63 ┆1? out ilow ;low address to c┆ 0x09e440…09e460 6f 6e 74 72 6f 6c 6c 65 72 0d 0a 09 6d 6f 76 09 61 2c 62 0d 0a 09 6f 75 74 09 69 68 69 67 68 09 ┆ontroller mov a,b out ihigh ┆ 0x09e460…09e480 3b 68 69 67 68 20 61 64 64 72 65 73 73 0d 0a 09 6a 6d 70 09 77 61 69 74 30 09 09 3b 74 6f 20 77 ┆;high address jmp wait0 ;to w┆ 0x09e480…09e4a0 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 65 0d 0a 3b 0d 0a 69 6f 64 72 31 3a 09 3b 64 72 69 ┆ait for complete ; iodr1: ;dri┆ 0x09e4a0…09e4c0 76 65 20 62 61 6e 6b 20 31 0d 0a 09 6f 75 74 09 69 6c 6f 77 2b 31 30 68 09 3b 38 38 20 66 6f 72 ┆ve bank 1 out ilow+10h ;88 for┆ 0x09e4c0…09e4e0 20 64 72 69 76 65 20 62 61 6e 6b 20 31 30 0d 0a 09 6d 6f 76 09 61 2c 62 0d 0a 09 6f 75 74 09 69 ┆ drive bank 10 mov a,b out i┆ 0x09e4e0…09e500 68 69 67 68 2b 31 30 68 0d 0a 3b 0d 0a 77 61 69 74 30 3a 09 63 61 6c 6c 09 69 6e 73 74 61 74 09 ┆high+10h ; wait0: call instat ┆ 0x09e500…09e520 09 3b 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 0d 0a 09 61 6e 69 09 69 6f 72 64 ┆ ;wait for completion ani iord┆ 0x09e520…09e540 79 09 09 3b 72 65 61 64 79 3f 0d 0a 09 6a 7a 09 77 61 69 74 30 0d 0a 3b 0d 0a 3b 09 63 68 65 63 ┆y ;ready? jz wait0 ; ; chec┆ 0x09e540…09e560 6b 20 69 6f 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 6f 6b 0d 0a 09 63 61 6c 6c 09 69 6e 74 79 70 65 ┆k io completion ok call intype┆ 0x09e560…09e580 09 09 3b 6d 75 73 74 20 62 65 20 69 6f 20 63 6f 6d 70 6c 65 74 65 20 28 30 30 29 20 75 6e 6c 69 ┆ ;must be io complete (00) unli┆ 0x09e580…09e5a0 6e 6b 65 64 0d 0a 3b 09 30 30 20 75 6e 6c 69 6e 6b 65 64 20 69 2f 6f 20 63 6f 6d 70 6c 65 74 65 ┆nked ; 00 unlinked i/o complete┆ 0x09e5a0…09e5c0 2c 20 20 20 20 30 31 20 6c 69 6e 6b 65 64 20 69 2f 6f 20 63 6f 6d 70 6c 65 74 65 20 28 6e 6f 74 ┆, 01 linked i/o complete (not┆ 0x09e5c0…09e5e0 20 75 73 65 64 29 0d 0a 3b 09 31 30 20 64 69 73 6b 20 73 74 61 74 75 73 20 63 68 61 6e 67 65 64 ┆ used) ; 10 disk status changed┆ 0x09e5e0…09e600 20 20 20 20 20 20 20 31 31 20 28 6e 6f 74 20 75 73 65 64 29 0d 0a 09 63 70 69 09 31 30 62 09 09 ┆ 11 (not used) cpi 10b ┆ 0x09e600…09e620 (42, 0, 8) 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 62 79 74 31 0d 0a 09 69 6e 09 72 62 79 74 65 0d 0a 09 72 65 ┆a a jnz inbyt1 in rbyte re┆ 0x09e620…09e640 74 0d 0a 69 6e 62 79 74 31 3a 09 69 6e 09 72 62 79 74 65 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b ┆t inbyt1: in rbyte+10h ret ;┆ 0x09e640…09e660 0d 0a 69 6e 73 74 61 74 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e ┆ instat: lda dbank ora a jn┆ 0x09e660…09e680 7a 09 69 6e 73 74 61 31 0d 0a 09 69 6e 09 64 73 74 61 74 0d 0a 09 72 65 74 0d 0a 69 6e 73 74 61 ┆z insta1 in dstat ret insta┆ 0x09e680…09e6a0 31 3a 09 69 6e 09 64 73 74 61 74 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 0d 0a ┆1: in dstat+10h ret ; ; ; ┆ 0x09e6a0…09e6c0 3b 09 64 61 74 61 20 61 72 65 61 73 20 28 6d 75 73 74 20 62 65 20 69 6e 20 72 61 6d 29 0d 0a 64 ┆; data areas (must be in ram) d┆ 0x09e6c0…09e6e0 62 61 6e 6b 3a 09 64 62 09 30 09 3b 64 69 73 6b 20 62 61 6e 6b 20 30 30 20 69 66 20 64 72 69 76 ┆bank: db 0 ;disk bank 00 if driv┆ 0x09e6e0…09e700 65 20 30 2c 31 0d 0a 09 09 09 3b 09 20 20 20 31 30 20 69 66 20 64 72 69 76 65 20 32 2c 33 0d 0a ┆e 0,1 ; 10 if drive 2,3 ┆ 0x09e700…09e720 69 6f 70 62 3a 09 3b 69 6f 20 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 0d 0a 09 64 62 09 38 ┆iopb: ;io parameter block db 8┆ 0x09e720…09e740 30 68 09 3b 6e 6f 72 6d 61 6c 20 69 2f 6f 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 69 6f 66 3a 09 64 ┆0h ;normal i/o operation iof: d┆ 0x09e740…09e760 62 09 72 65 61 64 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 2c 20 69 6e 69 74 69 61 6c 20 72 65 ┆b readf ;io function, initial re┆ 0x09e760…09e780 61 64 0d 0a 69 6f 6e 3a 09 64 62 09 31 09 3b 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 ┆ad ion: db 1 ;number of sectors┆ 0x09e780…09e7a0 20 74 6f 20 72 65 61 64 0d 0a 69 6f 74 3a 09 64 62 09 6f 66 66 73 65 74 09 3b 74 72 61 63 6b 20 ┆ to read iot: db offset ;track ┆ 0x09e7a0…09e7c0 6e 75 6d 62 65 72 0d 0a 69 6f 73 3a 09 64 62 09 31 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 ┆number ios: db 1 ;sector number┆ 0x09e7c0…09e7e0 0d 0a 69 6f 64 3a 09 64 77 09 62 75 66 66 09 3b 69 6f 20 61 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b ┆ iod: dw buff ;io address ; ;┆ 0x09e7e0…09e800 0d 0a 3b 09 64 65 66 69 6e 65 20 72 61 6d 20 61 72 65 61 73 20 66 6f 72 20 62 64 6f 73 20 6f 70 ┆ ; define ram areas for bdos op┆ 0x09e800…09e820 (42, 0, 9) 64 09 37 2a 38 2b 31 0d 0a 09 65 6e 64 69 66 0d 0a 3b 09 6c 65 61 76 65 20 69 6f 62 79 74 65 20 ┆d 7*8+1 endif ; leave iobyte ┆ 0x09e820…09e840 73 65 74 0d 0a 3b 09 70 72 65 76 69 6f 75 73 6c 79 20 73 65 6c 65 63 74 65 64 20 64 69 73 6b 20 ┆set ; previously selected disk ┆ 0x09e840…09e860 77 61 73 20 62 2c 20 73 65 6e 64 20 70 61 72 61 6d 65 74 65 72 20 74 6f 20 63 70 6d 0d 0a 09 6c ┆was b, send parameter to cpm l┆ 0x09e860…09e880 64 61 09 63 64 69 73 6b 09 3b 6c 61 73 74 20 6c 6f 67 67 65 64 20 64 69 73 6b 20 6e 75 6d 62 65 ┆da cdisk ;last logged disk numbe┆ 0x09e880…09e8a0 72 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 73 65 6e 64 20 74 6f 20 63 63 70 20 74 6f 20 6c 6f 67 20 ┆r mov c,a ;send to ccp to log ┆ 0x09e8a0…09e8c0 69 74 20 69 6e 0d 0a 09 65 69 0d 0a 09 6a 6d 70 09 63 70 6d 62 0d 0a 3b 0d 0a 3b 09 65 72 72 6f ┆it in ei jmp cpmb ; ; erro┆ 0x09e8c0…09e8e0 72 20 63 6f 6e 64 69 74 69 6f 6e 20 6f 63 63 75 72 72 65 64 2c 20 70 72 69 6e 74 20 6d 65 73 73 ┆r condition occurred, print mess┆ 0x09e8e0…09e900 61 67 65 20 61 6e 64 20 72 65 74 72 79 0d 0a 62 6f 6f 74 65 72 72 3a 0d 0a 09 70 6f 70 09 62 09 ┆age and retry booterr: pop b ┆ 0x09e900…09e920 3b 72 65 63 61 6c 6c 20 63 6f 75 6e 74 73 0d 0a 09 64 63 72 09 63 0d 0a 09 6a 7a 09 62 6f 6f 74 ┆;recall counts dcr c jz boot┆ 0x09e920…09e940 65 72 30 0d 0a 3b 09 74 72 79 20 61 67 61 69 6e 0d 0a 09 70 75 73 68 09 62 0d 0a 09 6a 6d 70 09 ┆er0 ; try again push b jmp ┆ 0x09e940…09e960 77 62 6f 6f 74 30 0d 0a 3b 0d 0a 62 6f 6f 74 65 72 30 3a 0d 0a 3b 09 6f 74 68 65 72 77 69 73 65 ┆wboot0 ; booter0: ; otherwise┆ 0x09e960…09e980 20 74 6f 6f 20 6d 61 6e 79 20 72 65 74 72 69 65 73 0d 0a 09 6c 78 69 09 68 2c 62 6f 6f 74 6d 73 ┆ too many retries lxi h,bootms┆ 0x09e980…09e9a0 67 0d 0a 09 63 61 6c 6c 09 70 72 6d 73 67 0d 0a 09 6a 6d 70 09 72 6d 6f 6e 38 30 09 3b 6d 64 73 ┆g call prmsg jmp rmon80 ;mds┆ 0x09e9a0…09e9c0 20 68 61 72 64 77 61 72 65 20 6d 6f 6e 69 74 6f 72 0d 0a 3b 0d 0a 62 6f 6f 74 6d 73 67 3a 0d 0a ┆ hardware monitor ; bootmsg: ┆ 0x09e9c0…09e9e0 09 64 62 09 27 3f 62 6f 6f 74 27 2c 30 0d 0a 3b 0d 0a 3b 0d 0a 63 6f 6e 73 74 3a 09 3b 63 6f 6e ┆ db '?boot',0 ; ; const: ;con┆ 0x09e9e0…09ea00 73 6f 6c 65 20 73 74 61 74 75 73 20 74 6f 20 72 65 67 2d 61 0d 0a 3b 09 28 65 78 61 63 74 6c 79 ┆sole status to reg-a ; (exactly┆ 0x09ea00…09ea20 (42, 0, 10) 09 3b 74 72 61 6e 73 6c 61 74 65 28 73 65 63 74 6f 72 29 20 61 64 64 72 65 73 73 0d 0a 09 6d 6f ┆ ;translate(sector) address mo┆ 0x09ea20…09ea40 76 09 61 2c 6d 09 3b 74 72 61 6e 73 6c 61 74 65 64 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 ┆v a,m ;translated sector number ┆ 0x09ea40…09ea60 74 6f 20 41 0d 0a 09 73 74 61 09 69 6f 73 0d 0a 09 6d 6f 76 09 6c 2c 61 09 3b 72 65 74 75 72 6e ┆to A sta ios mov l,a ;return┆ 0x09ea60…09ea80 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 69 6e 20 4c 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 73 65 ┆ sector number in L ret ; se┆ 0x09ea80…09eaa0 74 64 6d 61 3a 09 3b 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 67 69 76 65 6e 20 62 79 20 ┆tdma: ;set dma address given by ┆ 0x09eaa0…09eac0 72 65 67 73 20 62 2c 63 0d 0a 09 6d 6f 76 09 6c 2c 63 0d 0a 09 6d 6f 76 09 68 2c 62 0d 0a 09 73 ┆regs b,c mov l,c mov h,b s┆ 0x09eac0…09eae0 68 6c 64 09 69 6f 64 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 72 65 61 64 3a 09 3b 72 65 61 64 20 6e 65 ┆hld iod ret ; read: ;read ne┆ 0x09eae0…09eb00 78 74 20 64 69 73 6b 20 72 65 63 6f 72 64 20 28 61 73 73 75 6d 69 6e 67 20 64 69 73 6b 2f 74 72 ┆xt disk record (assuming disk/tr┆ 0x09eb00…09eb20 6b 2f 73 65 63 2f 64 6d 61 20 73 65 74 29 0d 0a 09 6d 76 69 09 63 2c 72 65 61 64 66 09 3b 73 65 ┆k/sec/dma set) mvi c,readf ;se┆ 0x09eb20…09eb40 74 20 74 6f 20 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 73 65 74 66 75 6e ┆t to read function call setfun┆ 0x09eb40…09eb60 63 0d 0a 09 63 61 6c 6c 09 77 61 69 74 69 6f 09 3b 70 65 72 66 6f 72 6d 20 72 65 61 64 20 66 75 ┆c call waitio ;perform read fu┆ 0x09eb60…09eb80 6e 63 74 69 6f 6e 0d 0a 09 72 65 74 09 09 3b 6d 61 79 20 68 61 76 65 20 65 72 72 6f 72 20 73 65 ┆nction ret ;may have error se┆ 0x09eb80…09eba0 74 20 69 6e 20 72 65 67 2d 61 0d 0a 3b 0d 0a 3b 0d 0a 77 72 69 74 65 3a 09 3b 64 69 73 6b 20 77 ┆t in reg-a ; ; write: ;disk w┆ 0x09eba0…09ebc0 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6d 76 69 09 63 2c 77 72 69 74 66 0d 0a 09 63 61 ┆rite function mvi c,writf ca┆ 0x09ebc0…09ebe0 6c 6c 09 73 65 74 66 75 6e 63 09 3b 73 65 74 20 74 6f 20 77 72 69 74 65 20 66 75 6e 63 74 69 6f ┆ll setfunc ;set to write functio┆ 0x09ebe0…09ec00 6e 0d 0a 09 63 61 6c 6c 09 77 61 69 74 69 6f 0d 0a 09 72 65 74 09 09 3b 6d 61 79 20 68 61 76 65 ┆n call waitio ret ;may have┆ 0x09ec00…09ec20 (42, 0, 11) 3b 72 65 61 64 79 20 73 74 61 74 75 73 20 63 68 61 6e 67 65 3f 0d 0a 09 6a 7a 09 77 72 65 61 64 ┆;ready status change? jz wread┆ 0x09ec20…09ec40 79 0d 0a 3b 0d 0a 3b 09 6d 75 73 74 20 62 65 20 30 30 20 69 6e 20 74 68 65 20 61 63 63 75 6d 75 ┆y ; ; must be 00 in the accumu┆ 0x09ec40…09ec60 6c 61 74 6f 72 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 77 65 72 72 6f 72 09 09 3b 73 6f 6d ┆lator ora a jnz werror ;som┆ 0x09ec60…09ec80 65 20 6f 74 68 65 72 20 63 6f 6e 64 69 74 69 6f 6e 2c 20 72 65 74 72 79 0d 0a 3b 0d 0a 3b 09 63 ┆e other condition, retry ; ; c┆ 0x09ec80…09eca0 68 65 63 6b 20 69 2f 6f 20 65 72 72 6f 72 20 62 69 74 73 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 ┆heck i/o error bits call inbyt┆ 0x09eca0…09ecc0 65 0d 0a 09 72 61 6c 0d 0a 09 6a 63 09 77 72 65 61 64 79 09 09 3b 75 6e 69 74 20 6e 6f 74 20 72 ┆e ral jc wready ;unit not r┆ 0x09ecc0…09ece0 65 61 64 79 0d 0a 09 72 61 72 0d 0a 09 61 6e 69 09 31 31 31 31 31 31 31 30 62 09 3b 61 6e 79 20 ┆eady rar ani 11111110b ;any ┆ 0x09ece0…09ed00 6f 74 68 65 72 20 65 72 72 6f 72 73 3f 20 20 28 64 65 6c 65 74 65 64 20 64 61 74 61 20 6f 6b 29 ┆other errors? (deleted data ok)┆ 0x09ed00…09ed20 0d 0a 09 6a 6e 7a 09 77 65 72 72 6f 72 0d 0a 3b 0d 0a 3b 09 72 65 61 64 20 6f 72 20 77 72 69 74 ┆ jnz werror ; ; read or writ┆ 0x09ed20…09ed40 65 20 69 73 20 6f 6b 2c 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 63 6f 6e 74 61 69 6e 73 20 7a 65 ┆e is ok, accumulator contains ze┆ 0x09ed40…09ed60 72 6f 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 77 72 65 61 64 79 3a 09 3b 6e 6f 74 20 72 65 61 64 79 2c ┆ro ret ; wready: ;not ready,┆ 0x09ed60…09ed80 20 74 72 65 61 74 20 61 73 20 65 72 72 6f 72 20 66 6f 72 20 6e 6f 77 0d 0a 09 63 61 6c 6c 09 69 ┆ treat as error for now call i┆ 0x09ed80…09eda0 6e 62 79 74 65 09 09 3b 63 6c 65 61 72 20 72 65 73 75 6c 74 20 62 79 74 65 0d 0a 09 6a 6d 70 09 ┆nbyte ;clear result byte jmp ┆ 0x09eda0…09edc0 74 72 79 63 6f 75 6e 74 0d 0a 3b 0d 0a 77 65 72 72 6f 72 3a 09 3b 72 65 74 75 72 6e 20 68 61 72 ┆trycount ; werror: ;return har┆ 0x09edc0…09ede0 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 20 28 63 72 63 2c 20 74 72 61 63 6b 2c 20 73 ┆dware malfunction (crc, track, s┆ 0x09ede0…09ee00 65 65 6b 2c 20 65 74 63 2e 29 0d 0a 3b 09 74 68 65 20 6d 64 73 20 63 6f 6e 74 72 6f 6c 6c 65 72 ┆eek, etc.) ; the mds controller┆ 0x09ee00…09ee20 (42, 0, 12) 65 72 61 74 69 6f 6e 0d 0a 09 65 6e 64 65 66 0d 0a 09 65 6e 64 0d 0a 3b 09 4d 44 53 2d 38 30 30 ┆eration endef end ; MDS-800┆ 0x09ee20…09ee40 20 49 2f 4f 20 44 72 69 76 65 72 73 20 66 6f 72 20 43 50 2f 4d 20 32 2e 32 0d 0a 3b 09 28 66 6f ┆ I/O Drivers for CP/M 2.2 ; (fo┆ 0x09ee40…09ee60 75 72 20 64 72 69 76 65 20 73 69 6e 67 6c 65 20 64 65 6e 73 69 74 79 20 76 65 72 73 69 6f 6e 29 ┆ur drive single density version)┆ 0x09ee60…09ee80 0d 0a 3b 0d 0a 3b 09 56 65 72 73 69 6f 6e 20 32 2e 32 20 46 65 62 72 75 61 72 79 2c 20 31 39 38 ┆ ; ; Version 2.2 February, 198┆ 0x09ee80…09eea0 30 0d 0a 3b 0d 0a 76 65 72 73 09 65 71 75 09 32 32 09 3b 76 65 72 73 69 6f 6e 20 32 2e 32 0d 0a ┆0 ; vers equ 22 ;version 2.2 ┆ 0x09eea0…09eec0 3b 0d 0a 3b 09 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 39 38 30 0d 0a 3b 09 44 69 67 69 74 ┆; ; Copyright (c) 1980 ; Digit┆ 0x09eec0…09eee0 61 6c 20 52 65 73 65 61 72 63 68 0d 0a 3b 09 42 6f 78 20 35 37 39 2c 20 50 61 63 69 66 69 63 20 ┆al Research ; Box 579, Pacific ┆ 0x09eee0…09ef00 47 72 6f 76 65 0d 0a 3b 09 43 61 6c 69 66 6f 72 6e 69 61 2c 20 39 33 39 35 30 0d 0a 3b 0d 0a 3b ┆Grove ; California, 93950 ; ;┆ 0x09ef00…09ef20 0d 0a 74 72 75 65 09 65 71 75 09 30 66 66 66 66 68 09 3b 76 61 6c 75 65 20 6f 66 20 22 74 72 75 ┆ true equ 0ffffh ;value of "tru┆ 0x09ef20…09ef40 65 22 0d 0a 66 61 6c 73 65 09 65 71 75 09 6e 6f 74 20 74 72 75 65 09 3b 22 66 61 6c 73 65 22 0d ┆e" false equ not true ;"false" ┆ 0x09ef40…09ef60 0a 74 65 73 74 09 65 71 75 09 66 61 6c 73 65 09 3b 74 72 75 65 20 69 66 20 74 65 73 74 20 62 69 ┆ test equ false ;true if test bi┆ 0x09ef60…09ef80 6f 73 0d 0a 3b 0d 0a 09 69 66 09 74 65 73 74 0d 0a 62 69 61 73 09 65 71 75 09 30 33 34 30 30 68 ┆os ; if test bias equ 03400h┆ 0x09ef80…09efa0 09 3b 62 61 73 65 20 6f 66 20 43 43 50 20 69 6e 20 74 65 73 74 20 73 79 73 74 65 6d 0d 0a 09 65 ┆ ;base of CCP in test system e┆ 0x09efa0…09efc0 6e 64 69 66 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 62 69 61 73 09 65 71 75 09 30 30 30 ┆ndif if not test bias equ 000┆ 0x09efc0…09efe0 30 68 09 3b 67 65 6e 65 72 61 74 65 20 72 65 6c 6f 63 61 74 61 62 6c 65 20 63 70 2f 6d 20 73 79 ┆0h ;generate relocatable cp/m sy┆ 0x09efe0…09f000 73 74 65 6d 0d 0a 09 65 6e 64 69 66 0d 0a 3b 0d 0a 70 61 74 63 68 09 65 71 75 09 31 36 30 30 68 ┆stem endif ; patch equ 1600h┆ 0x09f000…09f020 (42, 0, 13) 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 63 73 74 ┆ the same as mds call) jmp cst┆ 0x09f020…09f040 73 0d 0a 3b 0d 0a 63 6f 6e 69 6e 3a 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 ┆s ; conin: ;console character ┆ 0x09f040…09f060 74 6f 20 72 65 67 2d 61 0d 0a 09 63 61 6c 6c 09 63 69 0d 0a 09 61 6e 69 09 37 66 68 09 3b 72 65 ┆to reg-a call ci ani 7fh ;re┆ 0x09f060…09f080 6d 6f 76 65 20 70 61 72 69 74 79 20 62 69 74 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 63 6f 6e 6f 75 74 ┆move parity bit ret ; conout┆ 0x09f080…09f0a0 3a 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 66 72 6f 6d 20 63 20 74 6f 20 63 ┆: ;console character from c to c┆ 0x09f0a0…09f0c0 6f 6e 73 6f 6c 65 20 6f 75 74 0d 0a 09 6a 6d 70 09 63 6f 0d 0a 3b 0d 0a 6c 69 73 74 3a 09 3b 6c ┆onsole out jmp co ; list: ;l┆ 0x09f0c0…09f0e0 69 73 74 20 64 65 76 69 63 65 20 6f 75 74 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 ┆ist device out ; (exactly the s┆ 0x09f0e0…09f100 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 6c 6f 0d 0a 3b 0d 0a 6c 69 ┆ame as mds call) jmp lo ; li┆ 0x09f100…09f120 73 74 73 74 3a 0d 0a 09 3b 72 65 74 75 72 6e 20 6c 69 73 74 20 73 74 61 74 75 73 0d 0a 09 78 72 ┆stst: ;return list status xr┆ 0x09f120…09f140 61 09 61 0d 0a 09 72 65 74 09 09 3b 61 6c 77 61 79 73 20 6e 6f 74 20 72 65 61 64 79 0d 0a 3b 0d ┆a a ret ;always not ready ; ┆ 0x09f140…09f160 0a 70 75 6e 63 68 3a 09 3b 70 75 6e 63 68 20 64 65 76 69 63 65 20 6f 75 74 0d 0a 3b 09 28 65 78 ┆ punch: ;punch device out ; (ex┆ 0x09f160…09f180 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d ┆actly the same as mds call) jm┆ 0x09f180…09f1a0 70 09 70 6f 0d 0a 3b 0d 0a 72 65 61 64 65 72 3a 09 3b 72 65 61 64 65 72 20 63 68 61 72 61 63 74 ┆p po ; reader: ;reader charact┆ 0x09f1a0…09f1c0 65 72 20 69 6e 20 74 6f 20 72 65 67 2d 61 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 ┆er in to reg-a ; (exactly the s┆ 0x09f1c0…09f1e0 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 72 69 0d 0a 3b 0d 0a 68 6f ┆ame as mds call) jmp ri ; ho┆ 0x09f1e0…09f200 6d 65 3a 09 3b 6d 6f 76 65 20 74 6f 20 68 6f 6d 65 20 70 6f 73 69 74 69 6f 6e 0d 0a 3b 09 74 72 ┆me: ;move to home position ; tr┆ 0x09f200…09f220 (42, 0, 14) 20 65 72 72 6f 72 20 73 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 75 74 69 6c 69 74 79 20 73 75 62 72 ┆ error set ; ; ; utility subr┆ 0x09f220…09f240 6f 75 74 69 6e 65 73 0d 0a 70 72 6d 73 67 3a 09 3b 70 72 69 6e 74 20 6d 65 73 73 61 67 65 20 61 ┆outines prmsg: ;print message a┆ 0x09f240…09f260 74 20 68 2c 6c 20 74 6f 20 30 0d 0a 09 6d 6f 76 09 61 2c 6d 0d 0a 09 6f 72 61 09 61 09 3b 7a 65 ┆t h,l to 0 mov a,m ora a ;ze┆ 0x09f260…09f280 72 6f 3f 0d 0a 09 72 7a 0d 0a 3b 09 6d 6f 72 65 20 74 6f 20 70 72 69 6e 74 0d 0a 09 70 75 73 68 ┆ro? rz ; more to print push┆ 0x09f280…09f2a0 09 68 0d 0a 09 6d 6f 76 09 63 2c 61 0d 0a 09 63 61 6c 6c 09 63 6f 6e 6f 75 74 0d 0a 09 70 6f 70 ┆ h mov c,a call conout pop┆ 0x09f2a0…09f2c0 09 68 0d 0a 09 69 6e 78 09 68 0d 0a 09 6a 6d 70 09 70 72 6d 73 67 0d 0a 3b 0d 0a 73 65 74 66 75 ┆ h inx h jmp prmsg ; setfu┆ 0x09f2c0…09f2e0 6e 63 3a 0d 0a 3b 09 73 65 74 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 6e 65 78 74 20 69 2f 6f ┆nc: ; set function for next i/o┆ 0x09f2e0…09f300 20 28 63 6f 6d 6d 61 6e 64 20 69 6e 20 72 65 67 2d 63 29 0d 0a 09 6c 78 69 09 68 2c 69 6f 66 09 ┆ (command in reg-c) lxi h,iof ┆ 0x09f300…09f320 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 72 65 73 73 0d 0a 09 6d 6f 76 09 61 2c 6d 09 3b ┆;io function address mov a,m ;┆ 0x09f320…09f340 67 65 74 20 69 74 20 74 6f 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 66 6f 72 20 6d 61 73 6b 69 6e ┆get it to accumulator for maskin┆ 0x09f340…09f360 67 0d 0a 09 61 6e 69 09 31 31 31 31 31 30 30 30 62 09 3b 72 65 6d 6f 76 65 20 70 72 65 76 69 6f ┆g ani 11111000b ;remove previo┆ 0x09f360…09f380 75 73 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6f 72 61 09 63 09 3b 73 65 74 20 74 6f 20 6e 65 77 20 63 ┆us command ora c ;set to new c┆ 0x09f380…09f3a0 6f 6d 6d 61 6e 64 0d 0a 09 6d 6f 76 09 6d 2c 61 09 3b 72 65 70 6c 61 63 65 64 20 69 6e 20 69 6f ┆ommand mov m,a ;replaced in io┆ 0x09f3a0…09f3c0 70 62 0d 0a 3b 09 74 68 65 20 6d 64 73 2d 38 30 30 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 72 65 71 ┆pb ; the mds-800 controller req┆ 0x09f3c0…09f3e0 75 69 72 65 73 20 64 69 73 6b 20 62 61 6e 6b 20 62 69 74 20 69 6e 20 73 65 63 74 6f 72 20 62 79 ┆uires disk bank bit in sector by┆ 0x09f3e0…09f400 74 65 0d 0a 3b 09 6d 61 73 6b 20 74 68 65 20 62 69 74 20 66 72 6f 6d 20 74 68 65 20 63 75 72 72 ┆te ; mask the bit from the curr┆ 0x09f400…09f420 (42, 0, 15) 20 68 61 73 20 72 65 74 75 72 6e 65 64 20 61 20 62 69 74 20 69 6e 20 65 61 63 68 20 70 6f 73 69 ┆ has returned a bit in each posi┆ 0x09f420…09f440 74 69 6f 6e 0d 0a 3b 09 6f 66 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 2c 20 63 6f 72 72 ┆tion ; of the accumulator, corr┆ 0x09f440…09f460 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e 73 3a 0d 0a 3b 09 ┆esponding to the conditions: ; ┆ 0x09f460…09f480 30 09 2d 20 64 65 6c 65 74 65 64 20 64 61 74 61 20 28 61 63 63 65 70 74 65 64 20 61 73 20 6f 6b ┆0 - deleted data (accepted as ok┆ 0x09f480…09f4a0 20 61 62 6f 76 65 29 0d 0a 3b 09 31 09 2d 20 63 72 63 20 65 72 72 6f 72 0d 0a 3b 09 32 09 2d 20 ┆ above) ; 1 - crc error ; 2 - ┆ 0x09f4a0…09f4c0 73 65 65 6b 20 65 72 72 6f 72 0d 0a 3b 09 33 09 2d 20 61 64 64 72 65 73 73 20 65 72 72 6f 72 20 ┆seek error ; 3 - address error ┆ 0x09f4c0…09f4e0 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 34 09 2d 20 64 61 ┆(hardware malfunction) ; 4 - da┆ 0x09f4e0…09f500 74 61 20 6f 76 65 72 2f 75 6e 64 65 72 20 66 6c 6f 77 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c ┆ta over/under flow (hardware mal┆ 0x09f500…09f520 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 35 09 2d 20 77 72 69 74 65 20 70 72 6f 74 65 63 74 20 28 ┆function) ; 5 - write protect (┆ 0x09f520…09f540 74 72 65 61 74 65 64 20 61 73 20 6e 6f 74 20 72 65 61 64 79 29 0d 0a 3b 09 36 09 2d 20 77 72 69 ┆treated as not ready) ; 6 - wri┆ 0x09f540…09f560 74 65 20 65 72 72 6f 72 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d ┆te error (hardware malfunction) ┆ 0x09f560…09f580 0a 3b 09 37 09 2d 20 6e 6f 74 20 72 65 61 64 79 0d 0a 3b 09 28 61 63 63 75 6d 75 6c 61 74 6f 72 ┆ ; 7 - not ready ; (accumulator┆ 0x09f580…09f5a0 20 62 69 74 73 20 61 72 65 20 6e 75 6d 62 65 72 65 64 20 37 20 36 20 35 20 34 20 33 20 32 20 31 ┆ bits are numbered 7 6 5 4 3 2 1┆ 0x09f5a0…09f5c0 20 30 29 0d 0a 3b 0d 0a 3b 09 69 74 20 6d 61 79 20 62 65 20 75 73 65 66 75 6c 20 74 6f 20 66 69 ┆ 0) ; ; it may be useful to fi┆ 0x09f5c0…09f5e0 6c 74 65 72 20 6f 75 74 20 74 68 65 20 76 61 72 69 6f 75 73 20 63 6f 6e 64 69 74 69 6f 6e 73 2c ┆lter out the various conditions,┆ 0x09f5e0…09f600 0d 0a 3b 09 62 75 74 20 77 65 20 77 69 6c 6c 20 67 65 74 20 61 20 70 65 72 6d 61 6e 65 6e 74 20 ┆ ; but we will get a permanent ┆ 0x09f600…09f620 (42, 1, 1) 0d 0a 3b 0d 0a 09 6f 72 67 09 70 61 74 63 68 0d 0a 63 70 6d 62 09 65 71 75 09 24 2d 70 61 74 63 ┆ ; org patch cpmb equ $-patc┆ 0x09f620…09f640 68 09 3b 62 61 73 65 20 6f 66 20 63 70 6d 20 63 6f 6e 73 6f 6c 65 20 70 72 6f 63 65 73 73 6f 72 ┆h ;base of cpm console processor┆ 0x09f640…09f660 0d 0a 62 64 6f 73 09 65 71 75 09 38 30 36 68 2b 63 70 6d 62 09 3b 62 61 73 69 63 20 64 6f 73 20 ┆ bdos equ 806h+cpmb ;basic dos ┆ 0x09f660…09f680 28 72 65 73 69 64 65 6e 74 20 70 6f 72 74 69 6f 6e 29 0d 0a 63 70 6d 6c 09 65 71 75 09 24 2d 63 ┆(resident portion) cpml equ $-c┆ 0x09f680…09f6a0 70 6d 62 09 3b 6c 65 6e 67 74 68 20 28 69 6e 20 62 79 74 65 73 29 20 6f 66 20 63 70 6d 20 73 79 ┆pmb ;length (in bytes) of cpm sy┆ 0x09f6a0…09f6c0 73 74 65 6d 0d 0a 6e 73 65 63 74 73 09 65 71 75 09 63 70 6d 6c 2f 31 32 38 09 3b 6e 75 6d 62 65 ┆stem nsects equ cpml/128 ;numbe┆ 0x09f6c0…09f6e0 72 20 6f 66 20 73 65 63 74 6f 72 73 20 74 6f 20 6c 6f 61 64 0d 0a 6f 66 66 73 65 74 09 65 71 75 ┆r of sectors to load offset equ┆ 0x09f6e0…09f700 09 32 09 3b 6e 75 6d 62 65 72 20 6f 66 20 64 69 73 6b 20 74 72 61 63 6b 73 20 75 73 65 64 20 62 ┆ 2 ;number of disk tracks used b┆ 0x09f700…09f720 79 20 63 70 2f 6d 0d 0a 63 64 69 73 6b 09 65 71 75 09 30 30 30 34 68 09 3b 61 64 64 72 65 73 73 ┆y cp/m cdisk equ 0004h ;address┆ 0x09f720…09f740 20 6f 66 20 6c 61 73 74 20 6c 6f 67 67 65 64 20 64 69 73 6b 20 6f 6e 20 77 61 72 6d 20 73 74 61 ┆ of last logged disk on warm sta┆ 0x09f740…09f760 72 74 0d 0a 62 75 66 66 09 65 71 75 09 30 30 38 30 68 09 3b 64 65 66 61 75 6c 74 20 62 75 66 66 ┆rt buff equ 0080h ;default buff┆ 0x09f760…09f780 65 72 20 61 64 64 72 65 73 73 0d 0a 72 65 74 72 79 09 65 71 75 09 31 30 09 3b 6d 61 78 20 72 65 ┆er address retry equ 10 ;max re┆ 0x09f780…09f7a0 74 72 69 65 73 20 6f 6e 20 64 69 73 6b 20 69 2f 6f 20 62 65 66 6f 72 65 20 65 72 72 6f 72 0d 0a ┆tries on disk i/o before error ┆ 0x09f7a0…09f7c0 3b 0d 0a 3b 09 70 65 72 66 6f 72 6d 20 66 6f 6c 6c 6f 77 69 6e 67 20 66 75 6e 63 74 69 6f 6e 73 ┆; ; perform following functions┆ 0x09f7c0…09f7e0 0d 0a 3b 09 62 6f 6f 74 09 63 6f 6c 64 20 73 74 61 72 74 0d 0a 3b 09 77 62 6f 6f 74 09 77 61 72 ┆ ; boot cold start ; wboot war┆ 0x09f7e0…09f800 6d 20 73 74 61 72 74 20 28 73 61 76 65 20 69 2f 6f 20 62 79 74 65 29 0d 0a 3b 09 28 62 6f 6f 74 ┆m start (save i/o byte) ; (boot┆ 0x09f800…09f820 (42, 1, 2) 65 72 73 20 66 72 6f 6d 20 74 68 65 20 69 6e 74 65 6c 20 6d 64 73 2e 0d 0a 3b 0d 0a 3b 09 74 68 ┆ers from the intel mds. ; ; th┆ 0x09f820…09f840 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 64 65 20 61 73 73 75 6d 65 73 20 74 68 65 20 6d 64 73 ┆e following code assumes the mds┆ 0x09f840…09f860 20 6d 6f 6e 69 74 6f 72 20 65 78 69 73 74 73 20 61 74 20 30 66 38 30 30 68 0d 0a 3b 09 61 6e 64 ┆ monitor exists at 0f800h ; and┆ 0x09f860…09f880 20 75 73 65 73 20 74 68 65 20 69 2f 6f 20 73 75 62 72 6f 75 74 69 6e 65 73 20 77 69 74 68 69 6e ┆ uses the i/o subroutines within┆ 0x09f880…09f8a0 20 74 68 65 20 6d 6f 6e 69 74 6f 72 0d 0a 3b 0d 0a 3b 09 77 65 20 61 6c 73 6f 20 61 73 73 75 6d ┆ the monitor ; ; we also assum┆ 0x09f8a0…09f8c0 65 20 74 68 65 20 6d 64 73 20 73 79 73 74 65 6d 20 68 61 73 20 66 6f 75 72 20 64 69 73 6b 20 64 ┆e the mds system has four disk d┆ 0x09f8c0…09f8e0 72 69 76 65 73 0d 0a 72 65 76 72 74 09 65 71 75 09 30 66 64 68 09 3b 69 6e 74 65 72 72 75 70 74 ┆rives revrt equ 0fdh ;interrupt┆ 0x09f8e0…09f900 20 72 65 76 65 72 74 20 70 6f 72 74 0d 0a 69 6e 74 63 09 65 71 75 09 30 66 63 68 09 3b 69 6e 74 ┆ revert port intc equ 0fch ;int┆ 0x09f900…09f920 65 72 72 75 70 74 20 6d 61 73 6b 20 70 6f 72 74 0d 0a 69 63 6f 6e 09 65 71 75 09 30 66 33 68 09 ┆errupt mask port icon equ 0f3h ┆ 0x09f920…09f940 3b 69 6e 74 65 72 72 75 70 74 20 63 6f 6e 74 72 6f 6c 20 70 6f 72 74 0d 0a 69 6e 74 65 09 65 71 ┆;interrupt control port inte eq┆ 0x09f940…09f960 75 09 30 31 31 31 24 31 31 31 30 62 09 3b 65 6e 61 62 6c 65 20 72 73 74 20 30 28 77 61 72 6d 20 ┆u 0111$1110b ;enable rst 0(warm ┆ 0x09f960…09f980 62 6f 6f 74 29 2c 20 72 73 74 20 37 20 28 6d 6f 6e 69 74 6f 72 29 0d 0a 3b 0d 0a 3b 09 6d 64 73 ┆boot), rst 7 (monitor) ; ; mds┆ 0x09f980…09f9a0 20 6d 6f 6e 69 74 6f 72 20 65 71 75 61 74 65 73 0d 0a 6d 6f 6e 38 30 09 65 71 75 09 30 66 38 30 ┆ monitor equates mon80 equ 0f80┆ 0x09f9a0…09f9c0 30 68 09 3b 6d 64 73 20 6d 6f 6e 69 74 6f 72 0d 0a 72 6d 6f 6e 38 30 09 65 71 75 09 30 66 66 30 ┆0h ;mds monitor rmon80 equ 0ff0┆ 0x09f9c0…09f9e0 66 68 09 3b 72 65 73 74 61 72 74 20 6d 6f 6e 38 30 20 28 62 6f 6f 74 20 65 72 72 6f 72 29 0d 0a ┆fh ;restart mon80 (boot error) ┆ 0x09f9e0…09fa00 63 69 09 65 71 75 09 30 66 38 30 33 68 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 ┆ci equ 0f803h ;console character┆ 0x09fa00…09fa20 (42, 1, 3) 6d 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 09 6d 76 69 09 63 2c 30 09 3b 62 6f 6f 74 20 ┆m call setdma mvi c,0 ;boot ┆ 0x09fa20…09fa40 66 72 6f 6d 20 64 72 69 76 65 20 30 0d 0a 09 63 61 6c 6c 09 73 65 6c 64 73 6b 0d 0a 09 6d 76 69 ┆from drive 0 call seldsk mvi┆ 0x09fa40…09fa60 09 63 2c 30 0d 0a 09 63 61 6c 6c 09 73 65 74 74 72 6b 09 3b 73 74 61 72 74 20 77 69 74 68 20 74 ┆ c,0 call settrk ;start with t┆ 0x09fa60…09fa80 72 61 63 6b 20 30 0d 0a 09 6d 76 69 09 63 2c 32 09 3b 73 74 61 72 74 20 72 65 61 64 69 6e 67 20 ┆rack 0 mvi c,2 ;start reading ┆ 0x09fa80…09faa0 73 65 63 74 6f 72 20 32 0d 0a 09 63 61 6c 6c 09 73 65 74 73 65 63 0d 0a 3b 0d 0a 3b 09 72 65 61 ┆sector 2 call setsec ; ; rea┆ 0x09faa0…09fac0 64 20 73 65 63 74 6f 72 73 2c 20 63 6f 75 6e 74 20 6e 73 65 63 74 73 20 74 6f 20 7a 65 72 6f 0d ┆d sectors, count nsects to zero ┆ 0x09fac0…09fae0 0a 09 70 6f 70 09 62 09 3b 31 30 2d 65 72 72 6f 72 20 63 6f 75 6e 74 0d 0a 09 6d 76 69 09 62 2c ┆ pop b ;10-error count mvi b,┆ 0x09fae0…09fb00 6e 73 65 63 74 73 0d 0a 72 64 73 65 63 3a 09 3b 72 65 61 64 20 6e 65 78 74 20 73 65 63 74 6f 72 ┆nsects rdsec: ;read next sector┆ 0x09fb00…09fb20 0d 0a 09 70 75 73 68 09 62 09 3b 73 61 76 65 20 73 65 63 74 6f 72 20 63 6f 75 6e 74 0d 0a 09 63 ┆ push b ;save sector count c┆ 0x09fb20…09fb40 61 6c 6c 09 72 65 61 64 0d 0a 09 6a 6e 7a 09 62 6f 6f 74 65 72 72 09 3b 72 65 74 72 79 20 69 66 ┆all read jnz booterr ;retry if┆ 0x09fb40…09fb60 20 65 72 72 6f 72 73 20 6f 63 63 75 72 0d 0a 09 6c 68 6c 64 09 69 6f 64 09 3b 69 6e 63 72 65 6d ┆ errors occur lhld iod ;increm┆ 0x09fb60…09fb80 65 6e 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 09 6c 78 69 09 64 2c 31 32 38 09 3b 73 65 63 ┆ent dma address lxi d,128 ;sec┆ 0x09fb80…09fba0 74 6f 72 20 73 69 7a 65 0d 0a 09 64 61 64 09 64 09 3b 69 6e 63 72 65 6d 65 6e 74 65 64 20 64 6d ┆tor size dad d ;incremented dm┆ 0x09fba0…09fbc0 61 20 61 64 64 72 65 73 73 20 69 6e 20 68 6c 0d 0a 09 6d 6f 76 09 62 2c 68 0d 0a 09 6d 6f 76 09 ┆a address in hl mov b,h mov ┆ 0x09fbc0…09fbe0 63 2c 6c 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 20 74 6f 20 73 65 74 20 64 6d 61 0d 0a ┆c,l ;ready for call to set dma ┆ 0x09fbe0…09fc00 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 09 6c 64 61 09 69 6f 73 09 3b 73 65 63 74 6f 72 20 6e ┆ call setdma lda ios ;sector n┆ 0x09fc00…09fc20 (42, 1, 4) 68 09 3b 72 65 6d 6f 76 65 20 70 61 72 69 74 79 20 62 69 74 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 63 ┆h ;remove parity bit ret ; c┆ 0x09fc20…09fc40 6f 6e 6f 75 74 3a 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 66 72 6f 6d 20 63 ┆onout: ;console character from c┆ 0x09fc40…09fc60 20 74 6f 20 63 6f 6e 73 6f 6c 65 20 6f 75 74 0d 0a 09 6a 6d 70 09 63 6f 0d 0a 3b 0d 0a 6c 69 73 ┆ to console out jmp co ; lis┆ 0x09fc60…09fc80 74 3a 09 3b 6c 69 73 74 20 64 65 76 69 63 65 20 6f 75 74 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 ┆t: ;list device out ; (exactly ┆ 0x09fc80…09fca0 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 6c 6f 0d 0a ┆the same as mds call) jmp lo ┆ 0x09fca0…09fcc0 3b 0d 0a 6c 69 73 74 73 74 3a 0d 0a 09 3b 72 65 74 75 72 6e 20 6c 69 73 74 20 73 74 61 74 75 73 ┆; listst: ;return list status┆ 0x09fcc0…09fce0 0d 0a 09 78 72 61 09 61 0d 0a 09 72 65 74 09 09 3b 61 6c 77 61 79 73 20 6e 6f 74 20 72 65 61 64 ┆ xra a ret ;always not read┆ 0x09fce0…09fd00 79 0d 0a 3b 0d 0a 70 75 6e 63 68 3a 09 3b 70 75 6e 63 68 20 64 65 76 69 63 65 20 6f 75 74 0d 0a ┆y ; punch: ;punch device out ┆ 0x09fd00…09fd20 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 ┆; (exactly the same as mds call)┆ 0x09fd20…09fd40 0d 0a 09 6a 6d 70 09 70 6f 0d 0a 3b 0d 0a 72 65 61 64 65 72 3a 09 3b 72 65 61 64 65 72 20 63 68 ┆ jmp po ; reader: ;reader ch┆ 0x09fd40…09fd60 61 72 61 63 74 65 72 20 69 6e 20 74 6f 20 72 65 67 2d 61 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 ┆aracter in to reg-a ; (exactly ┆ 0x09fd60…09fd80 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 72 69 0d 0a ┆the same as mds call) jmp ri ┆ 0x09fd80…09fda0 3b 0d 0a 68 6f 6d 65 3a 09 3b 6d 6f 76 65 20 74 6f 20 68 6f 6d 65 20 70 6f 73 69 74 69 6f 6e 0d ┆; home: ;move to home position ┆ 0x09fda0…09fdc0 0a 3b 09 74 72 65 61 74 20 61 73 20 74 72 61 63 6b 20 30 30 20 73 65 65 6b 0d 0a 09 6d 76 69 09 ┆ ; treat as track 00 seek mvi ┆ 0x09fdc0…09fde0 63 2c 30 0d 0a 09 6a 6d 70 09 73 65 74 74 72 6b 0d 0a 3b 0d 0a 73 65 6c 64 73 6b 3a 09 3b 73 65 ┆c,0 jmp settrk ; seldsk: ;se┆ 0x09fde0…09fe00 6c 65 63 74 20 64 69 73 6b 20 67 69 76 65 6e 20 62 79 20 72 65 67 69 73 74 65 72 20 63 0d 0a 09 ┆lect disk given by register c ┆ 0x09fe00…09fe20 (42, 1, 5) 20 61 6e 64 20 77 62 6f 6f 74 20 61 72 65 20 74 68 65 20 73 61 6d 65 20 66 6f 72 20 6d 64 73 29 ┆ and wboot are the same for mds)┆ 0x09fe20…09fe40 0d 0a 3b 09 63 6f 6e 73 74 09 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 0d 0a 3b 09 09 72 65 67 ┆ ; const console status ; reg┆ 0x09fe40…09fe60 2d 61 20 3d 20 30 30 20 69 66 20 6e 6f 20 63 68 61 72 61 63 74 65 72 20 72 65 61 64 79 0d 0a 3b ┆-a = 00 if no character ready ;┆ 0x09fe60…09fe80 09 09 72 65 67 2d 61 20 3d 20 66 66 20 69 66 20 63 68 61 72 61 63 74 65 72 20 72 65 61 64 79 0d ┆ reg-a = ff if character ready ┆ 0x09fe80…09fea0 0a 3b 09 63 6f 6e 69 6e 09 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 28 72 ┆ ; conin console character in (r┆ 0x09fea0…09fec0 65 73 75 6c 74 20 69 6e 20 72 65 67 2d 61 29 0d 0a 3b 09 63 6f 6e 6f 75 74 09 63 6f 6e 73 6f 6c ┆esult in reg-a) ; conout consol┆ 0x09fec0…09fee0 65 20 63 68 61 72 61 63 74 65 72 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d ┆e character out (char in reg-c) ┆ 0x09fee0…09ff00 0a 3b 09 6c 69 73 74 09 6c 69 73 74 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 ┆ ; list list out (char in reg-c)┆ 0x09ff00…09ff20 0d 0a 3b 09 70 75 6e 63 68 09 70 75 6e 63 68 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 ┆ ; punch punch out (char in reg┆ 0x09ff20…09ff40 2d 63 29 0d 0a 3b 09 72 65 61 64 65 72 09 70 61 70 65 72 20 74 61 70 65 20 72 65 61 64 65 72 20 ┆-c) ; reader paper tape reader ┆ 0x09ff40…09ff60 69 6e 20 28 72 65 73 75 6c 74 20 74 6f 20 72 65 67 2d 61 29 0d 0a 3b 09 68 6f 6d 65 09 6d 6f 76 ┆in (result to reg-a) ; home mov┆ 0x09ff60…09ff80 65 20 74 6f 20 74 72 61 63 6b 20 30 30 0d 0a 3b 0d 0a 3b 09 28 74 68 65 20 66 6f 6c 6c 6f 77 69 ┆e to track 00 ; ; (the followi┆ 0x09ff80…09ffa0 6e 67 20 63 61 6c 6c 73 20 73 65 74 2d 75 70 20 74 68 65 20 69 6f 20 70 61 72 61 6d 65 74 65 72 ┆ng calls set-up the io parameter┆ 0x09ffa0…09ffc0 20 62 6c 6f 63 6b 20 66 6f 72 20 74 68 65 0d 0a 3b 09 6d 64 73 2c 20 77 68 69 63 68 20 69 73 20 ┆ block for the ; mds, which is ┆ 0x09ffc0…09ffe0 75 73 65 64 20 74 6f 20 70 65 72 66 6f 72 6d 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 73 ┆used to perform subsequent reads┆ 0x09ffe0…0a0000 20 61 6e 64 20 77 72 69 74 65 73 29 0d 0a 3b 09 73 65 6c 64 73 6b 09 73 65 6c 65 63 74 20 64 69 ┆ and writes) ; seldsk select di┆ 0x0a0000…0a0020 (42, 1, 6) 20 74 6f 20 72 65 67 2d 61 0d 0a 72 69 09 65 71 75 09 30 66 38 30 36 68 09 3b 72 65 61 64 65 72 ┆ to reg-a ri equ 0f806h ;reader┆ 0x0a0020…0a0040 20 69 6e 20 74 6f 20 72 65 67 2d 61 0d 0a 63 6f 09 65 71 75 09 30 66 38 30 39 68 09 3b 63 6f 6e ┆ in to reg-a co equ 0f809h ;con┆ 0x0a0040…0a0060 73 6f 6c 65 20 63 68 61 72 20 66 72 6f 6d 20 63 20 74 6f 20 63 6f 6e 73 6f 6c 65 20 6f 75 74 0d ┆sole char from c to console out ┆ 0x0a0060…0a0080 0a 70 6f 09 65 71 75 09 30 66 38 30 63 68 09 3b 70 75 6e 63 68 20 63 68 61 72 20 66 72 6f 6d 20 ┆ po equ 0f80ch ;punch char from ┆ 0x0a0080…0a00a0 63 20 74 6f 20 70 75 6e 63 68 20 64 65 76 69 63 65 0d 0a 6c 6f 09 65 71 75 09 30 66 38 30 66 68 ┆c to punch device lo equ 0f80fh┆ 0x0a00a0…0a00c0 09 3b 6c 69 73 74 20 66 72 6f 6d 20 63 20 74 6f 20 6c 69 73 74 20 64 65 76 69 63 65 0d 0a 63 73 ┆ ;list from c to list device cs┆ 0x0a00c0…0a00e0 74 73 09 65 71 75 09 30 66 38 31 32 68 09 3b 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 20 30 30 ┆ts equ 0f812h ;console status 00┆ 0x0a00e0…0a0100 2f 66 66 20 74 6f 20 72 65 67 69 73 74 65 72 20 61 0d 0a 3b 0d 0a 3b 09 64 69 73 6b 20 70 6f 72 ┆/ff to register a ; ; disk por┆ 0x0a0100…0a0120 74 73 20 61 6e 64 20 63 6f 6d 6d 61 6e 64 73 0d 0a 62 61 73 65 09 65 71 75 09 37 38 68 09 3b 62 ┆ts and commands base equ 78h ;b┆ 0x0a0120…0a0140 61 73 65 20 6f 66 20 64 69 73 6b 20 63 6f 6d 6d 61 6e 64 20 69 6f 20 70 6f 72 74 73 0d 0a 64 73 ┆ase of disk command io ports ds┆ 0x0a0140…0a0160 74 61 74 09 65 71 75 09 62 61 73 65 09 3b 64 69 73 6b 20 73 74 61 74 75 73 20 28 69 6e 70 75 74 ┆tat equ base ;disk status (input┆ 0x0a0160…0a0180 29 0d 0a 72 74 79 70 65 09 65 71 75 09 62 61 73 65 2b 31 09 3b 72 65 73 75 6c 74 20 74 79 70 65 ┆) rtype equ base+1 ;result type┆ 0x0a0180…0a01a0 20 28 69 6e 70 75 74 29 0d 0a 72 62 79 74 65 09 65 71 75 09 62 61 73 65 2b 33 09 3b 72 65 73 75 ┆ (input) rbyte equ base+3 ;resu┆ 0x0a01a0…0a01c0 6c 74 20 62 79 74 65 20 28 69 6e 70 75 74 29 0d 0a 3b 0d 0a 69 6c 6f 77 09 65 71 75 09 62 61 73 ┆lt byte (input) ; ilow equ bas┆ 0x0a01c0…0a01e0 65 2b 31 09 3b 69 6f 70 62 20 6c 6f 77 20 61 64 64 72 65 73 73 20 28 6f 75 74 70 75 74 29 0d 0a ┆e+1 ;iopb low address (output) ┆ 0x0a01e0…0a0200 69 68 69 67 68 09 65 71 75 09 62 61 73 65 2b 32 09 3b 69 6f 70 62 20 68 69 67 68 20 61 64 64 72 ┆ihigh equ base+2 ;iopb high addr┆ 0x0a0200…0a0220 (42, 1, 7) 75 6d 62 65 72 20 6a 75 73 74 20 72 65 61 64 0d 0a 09 63 70 69 09 32 36 09 3b 72 65 61 64 20 6c ┆umber just read cpi 26 ;read l┆ 0x0a0220…0a0240 61 73 74 20 73 65 63 74 6f 72 3f 0d 0a 09 6a 63 09 72 64 31 0d 0a 3b 09 6d 75 73 74 20 62 65 20 ┆ast sector? jc rd1 ; must be ┆ 0x0a0240…0a0260 73 65 63 74 6f 72 20 32 36 2c 20 7a 65 72 6f 20 61 6e 64 20 67 6f 20 74 6f 20 6e 65 78 74 20 74 ┆sector 26, zero and go to next t┆ 0x0a0260…0a0280 72 61 63 6b 0d 0a 09 6c 64 61 09 69 6f 74 09 3b 67 65 74 20 74 72 61 63 6b 20 74 6f 20 72 65 67 ┆rack lda iot ;get track to reg┆ 0x0a0280…0a02a0 69 73 74 65 72 20 61 0d 0a 09 69 6e 72 09 61 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 72 65 61 64 79 ┆ister a inr a mov c,a ;ready┆ 0x0a02a0…0a02c0 20 66 6f 72 20 63 61 6c 6c 0d 0a 09 63 61 6c 6c 09 73 65 74 74 72 6b 0d 0a 09 78 72 61 09 61 09 ┆ for call call settrk xra a ┆ 0x0a02c0…0a02e0 3b 63 6c 65 61 72 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 0d 0a 72 64 31 3a 09 69 6e 72 09 61 ┆;clear sector number rd1: inr a┆ 0x0a02e0…0a0300 09 3b 74 6f 20 6e 65 78 74 20 73 65 63 74 6f 72 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 72 65 61 64 ┆ ;to next sector mov c,a ;read┆ 0x0a0300…0a0320 79 20 66 6f 72 20 63 61 6c 6c 0d 0a 09 63 61 6c 6c 09 73 65 74 73 65 63 0d 0a 09 70 6f 70 09 62 ┆y for call call setsec pop b┆ 0x0a0320…0a0340 09 3b 72 65 63 61 6c 6c 20 73 65 63 74 6f 72 20 63 6f 75 6e 74 0d 0a 09 64 63 72 09 62 09 3b 64 ┆ ;recall sector count dcr b ;d┆ 0x0a0340…0a0360 6f 6e 65 3f 0d 0a 09 6a 6e 7a 09 72 64 73 65 63 0d 0a 3b 0d 0a 3b 09 64 6f 6e 65 20 77 69 74 68 ┆one? jnz rdsec ; ; done with┆ 0x0a0360…0a0380 20 74 68 65 20 6c 6f 61 64 2c 20 72 65 73 65 74 20 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 ┆ the load, reset default buffer ┆ 0x0a0380…0a03a0 61 64 64 72 65 73 73 0d 0a 67 6f 63 70 6d 3a 09 3b 28 65 6e 74 65 72 20 68 65 72 65 20 66 72 6f ┆address gocpm: ;(enter here fro┆ 0x0a03a0…0a03c0 6d 20 63 6f 6c 64 20 73 74 61 72 74 20 62 6f 6f 74 29 0d 0a 3b 09 65 6e 61 62 6c 65 20 72 73 74 ┆m cold start boot) ; enable rst┆ 0x0a03c0…0a03e0 30 20 61 6e 64 20 72 73 74 37 0d 0a 09 64 69 0d 0a 09 6d 76 69 09 61 2c 31 32 68 09 3b 69 6e 69 ┆0 and rst7 di mvi a,12h ;ini┆ 0x0a03e0…0a0400 74 69 61 6c 69 7a 65 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6f 75 74 09 72 65 76 72 74 0d 0a 09 78 72 ┆tialize command out revrt xr┆ 0x0a0400…0a0420 (42, 1, 8) 6c 78 69 09 68 2c 30 30 30 30 68 09 3b 72 65 74 75 72 6e 20 30 30 30 30 20 69 66 20 65 72 72 6f ┆lxi h,0000h ;return 0000 if erro┆ 0x0a0420…0a0440 72 0d 0a 09 6d 6f 76 09 61 2c 63 0d 0a 09 63 70 69 09 6e 64 69 73 6b 73 09 3b 74 6f 6f 20 6c 61 ┆r mov a,c cpi ndisks ;too la┆ 0x0a0440…0a0460 72 67 65 3f 0d 0a 09 72 6e 63 09 09 3b 6c 65 61 76 65 20 48 4c 20 3d 20 30 30 30 30 0d 0a 3b 0d ┆rge? rnc ;leave HL = 0000 ; ┆ 0x0a0460…0a0480 0a 09 61 6e 69 09 31 30 62 09 3b 30 30 20 30 30 20 66 6f 72 20 64 72 69 76 65 20 30 2c 31 20 61 ┆ ani 10b ;00 00 for drive 0,1 a┆ 0x0a0480…0a04a0 6e 64 20 31 30 20 31 30 20 66 6f 72 20 64 72 69 76 65 20 32 2c 33 0d 0a 09 73 74 61 09 64 62 61 ┆nd 10 10 for drive 2,3 sta dba┆ 0x0a04a0…0a04c0 6e 6b 09 3b 74 6f 20 73 65 6c 65 63 74 20 64 72 69 76 65 20 62 61 6e 6b 0d 0a 09 6d 6f 76 09 61 ┆nk ;to select drive bank mov a┆ 0x0a04c0…0a04e0 2c 63 09 3b 30 30 2c 20 30 31 2c 20 31 30 2c 20 31 31 0d 0a 09 61 6e 69 09 31 62 09 3b 6d 64 73 ┆,c ;00, 01, 10, 11 ani 1b ;mds┆ 0x0a04e0…0a0500 20 68 61 73 20 30 2c 31 20 61 74 20 37 38 2c 20 32 2c 33 20 61 74 20 38 38 0d 0a 09 6f 72 61 09 ┆ has 0,1 at 78, 2,3 at 88 ora ┆ 0x0a0500…0a0520 61 09 3b 72 65 73 75 6c 74 20 30 30 3f 0d 0a 09 6a 7a 09 73 65 74 64 72 69 76 65 0d 0a 09 6d 76 ┆a ;result 00? jz setdrive mv┆ 0x0a0520…0a0540 69 09 61 2c 30 30 31 31 30 30 30 30 62 09 3b 73 65 6c 65 63 74 73 20 64 72 69 76 65 20 31 20 69 ┆i a,00110000b ;selects drive 1 i┆ 0x0a0540…0a0560 6e 20 62 61 6e 6b 0d 0a 73 65 74 64 72 69 76 65 3a 0d 0a 09 6d 6f 76 09 62 2c 61 09 3b 73 61 76 ┆n bank setdrive: mov b,a ;sav┆ 0x0a0560…0a0580 65 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6c 78 69 09 68 2c 69 6f 66 09 3b 69 6f 20 66 ┆e the function lxi h,iof ;io f┆ 0x0a0580…0a05a0 75 6e 63 74 69 6f 6e 0d 0a 09 6d 6f 76 09 61 2c 6d 0d 0a 09 61 6e 69 09 31 31 30 30 31 31 31 31 ┆unction mov a,m ani 11001111┆ 0x0a05a0…0a05c0 62 09 3b 6d 61 73 6b 20 6f 75 74 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6f 72 61 09 62 09 ┆b ;mask out disk number ora b ┆ 0x0a05c0…0a05e0 3b 6d 61 73 6b 20 69 6e 20 6e 65 77 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6d 6f 76 09 6d ┆;mask in new disk number mov m┆ 0x0a05e0…0a0600 2c 61 09 3b 73 61 76 65 20 69 74 20 69 6e 20 69 6f 70 62 0d 0a 09 6d 6f 76 09 6c 2c 63 0d 0a 09 ┆,a ;save it in iopb mov l,c ┆ 0x0a0600…0a0620 (42, 1, 9) 73 6b 20 67 69 76 65 6e 20 62 79 20 72 65 67 2d 63 20 28 30 2c 31 2c 32 2e 2e 2e 29 0d 0a 3b 09 ┆sk given by reg-c (0,1,2...) ; ┆ 0x0a0620…0a0640 73 65 74 74 72 6b 09 73 65 74 20 74 72 61 63 6b 20 61 64 64 72 65 73 73 20 28 30 2c 2e 2e 2e 37 ┆settrk set track address (0,...7┆ 0x0a0640…0a0660 36 29 20 66 6f 72 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 2f 77 72 69 74 65 0d 0a 3b 09 ┆6) for subsequent read/write ; ┆ 0x0a0660…0a0680 73 65 74 73 65 63 09 73 65 74 20 73 65 63 74 6f 72 20 61 64 64 72 65 73 73 20 28 31 2c 2e 2e 2e ┆setsec set sector address (1,...┆ 0x0a0680…0a06a0 2c 32 36 29 20 66 6f 72 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 2f 77 72 69 74 65 0d 0a ┆,26) for subsequent read/write ┆ 0x0a06a0…0a06c0 3b 09 73 65 74 64 6d 61 09 73 65 74 20 73 75 62 73 65 71 75 65 6e 74 20 64 6d 61 20 61 64 64 72 ┆; setdma set subsequent dma addr┆ 0x0a06c0…0a06e0 65 73 73 20 28 69 6e 69 74 69 61 6c 6c 79 20 38 30 68 29 0d 0a 3b 0d 0a 3b 09 28 72 65 61 64 20 ┆ess (initially 80h) ; ; (read ┆ 0x0a06e0…0a0700 61 6e 64 20 77 72 69 74 65 20 61 73 73 75 6d 65 20 70 72 65 76 69 6f 75 73 20 63 61 6c 6c 73 20 ┆and write assume previous calls ┆ 0x0a0700…0a0720 74 6f 20 73 65 74 20 75 70 20 74 68 65 20 69 6f 20 70 61 72 61 6d 65 74 65 72 73 29 0d 0a 3b 09 ┆to set up the io parameters) ; ┆ 0x0a0720…0a0740 72 65 61 64 09 72 65 61 64 20 74 72 61 63 6b 2f 73 65 63 74 6f 72 20 74 6f 20 70 72 65 73 65 74 ┆read read track/sector to preset┆ 0x0a0740…0a0760 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 3b 09 77 72 69 74 65 09 77 72 69 74 65 20 74 72 61 63 ┆ dma address ; write write trac┆ 0x0a0760…0a0780 6b 2f 73 65 63 74 6f 72 20 66 72 6f 6d 20 70 72 65 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 ┆k/sector from preset dma address┆ 0x0a0780…0a07a0 0d 0a 3b 0d 0a 3b 09 6a 75 6d 70 20 76 65 63 74 6f 72 20 66 6f 72 20 69 6e 64 69 76 69 75 61 6c ┆ ; ; jump vector for indiviual┆ 0x0a07a0…0a07c0 20 72 6f 75 74 69 6e 65 73 0d 0a 09 6a 6d 70 09 62 6f 6f 74 0d 0a 77 62 6f 6f 74 65 3a 09 6a 6d ┆ routines jmp boot wboote: jm┆ 0x0a07c0…0a07e0 70 09 77 62 6f 6f 74 0d 0a 09 6a 6d 70 09 63 6f 6e 73 74 0d 0a 09 6a 6d 70 09 63 6f 6e 69 6e 0d ┆p wboot jmp const jmp conin ┆ 0x0a07e0…0a0800 0a 09 6a 6d 70 09 63 6f 6e 6f 75 74 0d 0a 09 6a 6d 70 09 6c 69 73 74 0d 0a 09 6a 6d 70 09 70 75 ┆ jmp conout jmp list jmp pu┆ 0x0a0800…0a0820 (42, 1, 10) 65 73 73 20 28 6f 75 74 70 75 74 29 0d 0a 3b 0d 0a 72 65 61 64 66 09 65 71 75 09 34 68 09 3b 72 ┆ess (output) ; readf equ 4h ;r┆ 0x0a0820…0a0840 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 77 72 69 74 66 09 65 71 75 09 36 68 09 3b 77 72 69 74 ┆ead function writf equ 6h ;writ┆ 0x0a0840…0a0860 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 72 65 63 61 6c 09 65 71 75 09 33 68 09 3b 72 65 63 61 6c 69 ┆e function recal equ 3h ;recali┆ 0x0a0860…0a0880 62 72 61 74 65 20 64 72 69 76 65 0d 0a 69 6f 72 64 79 09 65 71 75 09 34 68 09 3b 69 2f 6f 20 66 ┆brate drive iordy equ 4h ;i/o f┆ 0x0a0880…0a08a0 69 6e 69 73 68 65 64 20 6d 61 73 6b 0d 0a 63 72 09 65 71 75 09 30 64 68 09 3b 63 61 72 72 69 61 ┆inished mask cr equ 0dh ;carria┆ 0x0a08a0…0a08c0 67 65 20 72 65 74 75 72 6e 0d 0a 6c 66 09 65 71 75 09 30 61 68 09 3b 6c 69 6e 65 20 66 65 65 64 ┆ge return lf equ 0ah ;line feed┆ 0x0a08c0…0a08e0 0d 0a 3b 0d 0a 73 69 67 6e 6f 6e 3a 09 3b 73 69 67 6e 6f 6e 20 6d 65 73 73 61 67 65 3a 20 78 78 ┆ ; signon: ;signon message: xx┆ 0x0a08e0…0a0900 6b 20 63 70 2f 6d 20 76 65 72 73 20 79 2e 79 0d 0a 09 64 62 09 63 72 2c 6c 66 2c 6c 66 0d 0a 09 ┆k cp/m vers y.y db cr,lf,lf ┆ 0x0a0900…0a0920 69 66 09 74 65 73 74 0d 0a 09 64 62 09 27 33 32 27 09 3b 33 32 6b 20 65 78 61 6d 70 6c 65 20 62 ┆if test db '32' ;32k example b┆ 0x0a0920…0a0940 69 6f 73 0d 0a 09 65 6e 64 69 66 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 09 64 62 09 27 ┆ios endif if not test db '┆ 0x0a0940…0a0960 30 30 27 09 3b 6d 65 6d 6f 72 79 20 73 69 7a 65 20 66 69 6c 6c 65 64 20 62 79 20 72 65 6c 6f 63 ┆00' ;memory size filled by reloc┆ 0x0a0960…0a0980 61 74 6f 72 0d 0a 09 65 6e 64 69 66 0d 0a 09 64 62 09 27 6b 20 43 50 2f 4d 20 76 65 72 73 20 27 ┆ator endif db 'k CP/M vers '┆ 0x0a0980…0a09a0 0d 0a 09 64 62 09 76 65 72 73 2f 31 30 2b 27 30 27 2c 27 2e 27 2c 76 65 72 73 20 6d 6f 64 20 31 ┆ db vers/10+'0','.',vers mod 1┆ 0x0a09a0…0a09c0 30 2b 27 30 27 0d 0a 09 64 62 09 63 72 2c 6c 66 2c 30 0d 0a 3b 0d 0a 62 6f 6f 74 3a 09 3b 70 72 ┆0+'0' db cr,lf,0 ; boot: ;pr┆ 0x0a09c0…0a09e0 69 6e 74 20 73 69 67 6e 6f 6e 20 6d 65 73 73 61 67 65 20 61 6e 64 20 67 6f 20 74 6f 20 63 63 70 ┆int signon message and go to ccp┆ 0x0a09e0…0a0a00 0d 0a 3b 09 28 6e 6f 74 65 3a 20 6d 64 73 20 62 6f 6f 74 20 69 6e 69 74 69 61 6c 69 7a 65 64 20 ┆ ; (note: mds boot initialized ┆ 0x0a0a00…0a0a20 (42, 1, 11) 61 09 61 0d 0a 09 6f 75 74 09 69 6e 74 63 09 3b 63 6c 65 61 72 65 64 0d 0a 09 6d 76 69 09 61 2c ┆a a out intc ;cleared mvi a,┆ 0x0a0a20…0a0a40 69 6e 74 65 09 3b 72 73 74 30 20 61 6e 64 20 72 73 74 37 20 62 69 74 73 20 6f 6e 0d 0a 09 6f 75 ┆inte ;rst0 and rst7 bits on ou┆ 0x0a0a40…0a0a60 74 09 69 6e 74 63 0d 0a 09 78 72 61 09 61 0d 0a 09 6f 75 74 09 69 63 6f 6e 09 3b 69 6e 74 65 72 ┆t intc xra a out icon ;inter┆ 0x0a0a60…0a0a80 72 75 70 74 20 63 6f 6e 74 72 6f 6c 0d 0a 3b 0d 0a 3b 09 73 65 74 20 64 65 66 61 75 6c 74 20 62 ┆rupt control ; ; set default b┆ 0x0a0a80…0a0aa0 75 66 66 65 72 20 61 64 64 72 65 73 73 20 74 6f 20 38 30 68 0d 0a 09 6c 78 69 09 62 2c 62 75 66 ┆uffer address to 80h lxi b,buf┆ 0x0a0aa0…0a0ac0 66 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 3b 0d 0a 3b 09 72 65 73 65 74 20 6d 6f 6e 69 ┆f call setdma ; ; reset moni┆ 0x0a0ac0…0a0ae0 74 6f 72 20 65 6e 74 72 79 20 70 6f 69 6e 74 73 0d 0a 09 6d 76 69 09 61 2c 6a 6d 70 0d 0a 09 73 ┆tor entry points mvi a,jmp s┆ 0x0a0ae0…0a0b00 74 61 09 30 0d 0a 09 6c 78 69 09 68 2c 77 62 6f 6f 74 65 0d 0a 09 73 68 6c 64 09 31 09 3b 6a 6d ┆ta 0 lxi h,wboote shld 1 ;jm┆ 0x0a0b00…0a0b20 70 20 77 62 6f 6f 74 20 61 74 20 6c 6f 63 61 74 69 6f 6e 20 30 30 0d 0a 09 73 74 61 09 35 0d 0a ┆p wboot at location 00 sta 5 ┆ 0x0a0b20…0a0b40 09 6c 78 69 09 68 2c 62 64 6f 73 0d 0a 09 73 68 6c 64 09 36 09 3b 6a 6d 70 20 62 64 6f 73 20 61 ┆ lxi h,bdos shld 6 ;jmp bdos a┆ 0x0a0b40…0a0b60 74 20 6c 6f 63 61 74 69 6f 6e 20 35 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 09 73 74 61 ┆t location 5 if not test sta┆ 0x0a0b60…0a0b80 09 37 2a 38 09 3b 6a 6d 70 20 74 6f 20 6d 6f 6e 38 30 20 28 6d 61 79 20 68 61 76 65 20 62 65 65 ┆ 7*8 ;jmp to mon80 (may have bee┆ 0x0a0b80…0a0ba0 6e 20 63 68 61 6e 67 65 64 20 62 79 20 64 64 74 29 0d 0a 09 6c 78 69 09 68 2c 6d 6f 6e 38 30 0d ┆n changed by ddt) lxi h,mon80 ┆ 0x0a0ba0…0a0bc0 0a 09 73 68 6c 64 09 37 2a 38 2b 31 0d 0a 09 65 6e 64 69 66 0d 0a 3b 09 6c 65 61 76 65 20 69 6f ┆ shld 7*8+1 endif ; leave io┆ 0x0a0bc0…0a0be0 62 79 74 65 20 73 65 74 0d 0a 3b 09 70 72 65 76 69 6f 75 73 6c 79 20 73 65 6c 65 63 74 65 64 20 ┆byte set ; previously selected ┆ 0x0a0be0…0a0c00 64 69 73 6b 20 77 61 73 20 62 2c 20 73 65 6e 64 20 70 61 72 61 6d 65 74 65 72 20 74 6f 20 63 70 ┆disk was b, send parameter to cp┆ 0x0a0c00…0a0c20 (42, 1, 12) 6d 76 69 09 68 2c 30 09 3b 48 4c 3d 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 64 61 64 09 68 09 ┆mvi h,0 ;HL=disk number dad h ┆ 0x0a0c20…0a0c40 3b 2a 32 0d 0a 09 64 61 64 09 68 09 3b 2a 34 0d 0a 09 64 61 64 09 68 09 3b 2a 38 0d 0a 09 64 61 ┆;*2 dad h ;*4 dad h ;*8 da┆ 0x0a0c40…0a0c60 64 09 68 09 3b 2a 31 36 0d 0a 09 6c 78 69 09 64 2c 64 70 62 61 73 65 0d 0a 09 64 61 64 09 64 09 ┆d h ;*16 lxi d,dpbase dad d ┆ 0x0a0c60…0a0c80 3b 48 4c 3d 64 69 73 6b 20 68 65 61 64 65 72 20 74 61 62 6c 65 20 61 64 64 72 65 73 73 0d 0a 09 ┆;HL=disk header table address ┆ 0x0a0c80…0a0ca0 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 73 65 74 74 72 6b 3a 09 3b 73 65 74 20 74 72 61 63 6b 20 61 64 ┆ret ; ; settrk: ;set track ad┆ 0x0a0ca0…0a0cc0 64 72 65 73 73 20 67 69 76 65 6e 20 62 79 20 63 0d 0a 09 6c 78 69 09 68 2c 69 6f 74 0d 0a 09 6d ┆dress given by c lxi h,iot m┆ 0x0a0cc0…0a0ce0 6f 76 09 6d 2c 63 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 73 65 74 73 65 63 3a 09 3b 73 65 74 20 73 65 ┆ov m,c ret ; setsec: ;set se┆ 0x0a0ce0…0a0d00 63 74 6f 72 20 6e 75 6d 62 65 72 20 67 69 76 65 6e 20 62 79 20 63 0d 0a 09 6c 78 69 09 68 2c 69 ┆ctor number given by c lxi h,i┆ 0x0a0d00…0a0d20 6f 73 0d 0a 09 6d 6f 76 09 6d 2c 63 0d 0a 09 72 65 74 0d 0a 73 65 63 74 72 61 6e 3a 0d 0a 09 09 ┆os mov m,c ret sectran: ┆ 0x0a0d20…0a0d40 3b 74 72 61 6e 73 6c 61 74 65 20 73 65 63 74 6f 72 20 62 63 20 75 73 69 6e 67 20 74 61 62 6c 65 ┆;translate sector bc using table┆ 0x0a0d40…0a0d60 20 61 74 20 64 65 0d 0a 09 6d 76 69 09 62 2c 30 09 3b 64 6f 75 62 6c 65 20 70 72 65 63 69 73 69 ┆ at de mvi b,0 ;double precisi┆ 0x0a0d60…0a0d80 6f 6e 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 69 6e 20 42 43 0d 0a 09 78 63 68 67 09 09 3b ┆on sector number in BC xchg ;┆ 0x0a0d80…0a0da0 74 72 61 6e 73 6c 61 74 65 20 74 61 62 6c 65 20 61 64 64 72 65 73 73 20 74 6f 20 48 4c 0d 0a 09 ┆translate table address to HL ┆ 0x0a0da0…0a0dc0 64 61 64 09 62 09 3b 74 72 61 6e 73 6c 61 74 65 28 73 65 63 74 6f 72 29 20 61 64 64 72 65 73 73 ┆dad b ;translate(sector) address┆ 0x0a0dc0…0a0de0 0d 0a 09 6d 6f 76 09 61 2c 6d 09 3b 74 72 61 6e 73 6c 61 74 65 64 20 73 65 63 74 6f 72 20 6e 75 ┆ mov a,m ;translated sector nu┆ 0x0a0de0…0a0e00 6d 62 65 72 20 74 6f 20 41 0d 0a 09 73 74 61 09 69 6f 73 0d 0a 09 6d 6f 76 09 6c 2c 61 09 3b 72 ┆mber to A sta ios mov l,a ;r┆ 0x0a0e00…0a0e20 (42, 1, 13) 6e 63 68 0d 0a 09 6a 6d 70 09 72 65 61 64 65 72 0d 0a 09 6a 6d 70 09 68 6f 6d 65 0d 0a 09 6a 6d ┆nch jmp reader jmp home jm┆ 0x0a0e20…0a0e40 70 09 73 65 6c 64 73 6b 0d 0a 09 6a 6d 70 09 73 65 74 74 72 6b 0d 0a 09 6a 6d 70 09 73 65 74 73 ┆p seldsk jmp settrk jmp sets┆ 0x0a0e40…0a0e60 65 63 0d 0a 09 6a 6d 70 09 73 65 74 64 6d 61 0d 0a 09 6a 6d 70 09 72 65 61 64 0d 0a 09 6a 6d 70 ┆ec jmp setdma jmp read jmp┆ 0x0a0e60…0a0e80 09 77 72 69 74 65 0d 0a 09 6a 6d 70 09 6c 69 73 74 73 74 09 3b 6c 69 73 74 20 73 74 61 74 75 73 ┆ write jmp listst ;list status┆ 0x0a0e80…0a0ea0 0d 0a 09 6a 6d 70 09 73 65 63 74 72 61 6e 0d 0a 3b 0d 0a 09 6d 61 63 6c 69 62 09 64 69 73 6b 64 ┆ jmp sectran ; maclib diskd┆ 0x0a0ea0…0a0ec0 65 66 09 3b 6c 6f 61 64 20 74 68 65 20 64 69 73 6b 20 64 65 66 69 6e 69 74 69 6f 6e 20 6c 69 62 ┆ef ;load the disk definition lib┆ 0x0a0ec0…0a0ee0 72 61 72 79 0d 0a 09 64 69 73 6b 73 09 34 09 3b 66 6f 75 72 20 64 69 73 6b 73 0d 0a 09 64 69 73 ┆rary disks 4 ;four disks dis┆ 0x0a0ee0…0a0f00 6b 64 65 66 09 30 2c 31 2c 32 36 2c 36 2c 31 30 32 34 2c 32 34 33 2c 36 34 2c 36 34 2c 6f 66 66 ┆kdef 0,1,26,6,1024,243,64,64,off┆ 0x0a0f00…0a0f20 73 65 74 0d 0a 09 64 69 73 6b 64 65 66 09 31 2c 30 0d 0a 09 64 69 73 6b 64 65 66 09 32 2c 30 0d ┆set diskdef 1,0 diskdef 2,0 ┆ 0x0a0f20…0a0f40 0a 09 64 69 73 6b 64 65 66 09 33 2c 30 0d 0a 3b 09 65 6e 64 65 66 20 6f 63 63 75 72 73 20 61 74 ┆ diskdef 3,0 ; endef occurs at┆ 0x0a0f40…0a0f60 20 65 6e 64 20 6f 66 20 61 73 73 65 6d 62 6c 79 0d 0a 3b 0d 0a 3b 09 65 6e 64 20 6f 66 20 63 6f ┆ end of assembly ; ; end of co┆ 0x0a0f60…0a0f80 6e 74 72 6f 6c 6c 65 72 20 2d 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 63 6f 64 65 2c 20 74 68 65 ┆ntroller - independent code, the┆ 0x0a0f80…0a0fa0 20 72 65 6d 61 69 6e 69 6e 67 20 73 75 62 72 6f 75 74 69 6e 65 73 0d 0a 3b 09 61 72 65 20 74 61 ┆ remaining subroutines ; are ta┆ 0x0a0fa0…0a0fc0 69 6c 6f 72 65 64 20 74 6f 20 74 68 65 20 70 61 72 74 69 63 75 6c 61 72 20 6f 70 65 72 61 74 69 ┆ilored to the particular operati┆ 0x0a0fc0…0a0fe0 6e 67 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 2c 20 61 6e 64 20 6d 75 73 74 0d 0a 3b 09 62 65 20 61 ┆ng environment, and must ; be a┆ 0x0a0fe0…0a1000 6c 74 65 72 65 64 20 66 6f 72 20 61 6e 79 20 73 79 73 74 65 6d 20 77 68 69 63 68 20 64 69 66 66 ┆ltered for any system which diff┆ 0x0a1000…0a1020 (42, 1, 14) 69 6f 62 79 74 65 20 61 74 20 30 30 30 33 68 29 0d 0a 09 6c 78 69 09 73 70 2c 62 75 66 66 2b 38 ┆iobyte at 0003h) lxi sp,buff+8┆ 0x0a1020…0a1040 30 68 0d 0a 09 6c 78 69 09 68 2c 73 69 67 6e 6f 6e 0d 0a 09 63 61 6c 6c 09 70 72 6d 73 67 09 3b ┆0h lxi h,signon call prmsg ;┆ 0x0a1040…0a1060 70 72 69 6e 74 20 6d 65 73 73 61 67 65 0d 0a 09 78 72 61 09 61 09 3b 63 6c 65 61 72 20 61 63 63 ┆print message xra a ;clear acc┆ 0x0a1060…0a1080 75 6d 75 6c 61 74 6f 72 0d 0a 09 73 74 61 09 63 64 69 73 6b 09 3b 73 65 74 20 69 6e 69 74 69 61 ┆umulator sta cdisk ;set initia┆ 0x0a1080…0a10a0 6c 6c 79 20 74 6f 20 64 69 73 6b 20 61 0d 0a 09 6a 6d 70 09 67 6f 63 70 6d 09 3b 67 6f 20 74 6f ┆lly to disk a jmp gocpm ;go to┆ 0x0a10a0…0a10c0 20 63 70 2f 6d 0d 0a 3b 0d 0a 3b 0d 0a 77 62 6f 6f 74 3a 3b 09 6c 6f 61 64 65 72 20 6f 6e 20 74 ┆ cp/m ; ; wboot:; loader on t┆ 0x0a10c0…0a10e0 72 61 63 6b 20 30 2c 20 73 65 63 74 6f 72 20 31 2c 20 77 68 69 63 68 20 77 69 6c 6c 20 62 65 20 ┆rack 0, sector 1, which will be ┆ 0x0a10e0…0a1100 73 6b 69 70 70 65 64 20 66 6f 72 20 77 61 72 6d 20 0d 0a 3b 09 72 65 61 64 20 63 70 2f 6d 20 66 ┆skipped for warm ; read cp/m f┆ 0x0a1100…0a1120 72 6f 6d 20 64 69 73 6b 20 2d 20 61 73 73 75 6d 69 6e 67 20 74 68 65 72 65 20 69 73 20 61 20 31 ┆rom disk - assuming there is a 1┆ 0x0a1120…0a1140 32 38 20 62 79 74 65 20 63 6f 6c 64 20 73 74 61 72 74 0d 0a 3b 09 73 74 61 72 74 2e 0d 0a 3b 0d ┆28 byte cold start ; start. ; ┆ 0x0a1140…0a1160 0a 09 6c 78 69 09 73 70 2c 62 75 66 66 09 3b 75 73 69 6e 67 20 64 6d 61 20 2d 20 74 68 75 73 20 ┆ lxi sp,buff ;using dma - thus ┆ 0x0a1160…0a1180 38 30 20 74 68 72 75 20 66 66 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 73 74 61 63 6b 0d 0a ┆80 thru ff available for stack ┆ 0x0a1180…0a11a0 3b 0d 0a 09 6d 76 69 09 63 2c 72 65 74 72 79 09 3b 6d 61 78 20 72 65 74 72 69 65 73 0d 0a 09 70 ┆; mvi c,retry ;max retries p┆ 0x0a11a0…0a11c0 75 73 68 09 62 0d 0a 77 62 6f 6f 74 30 3a 09 3b 65 6e 74 65 72 20 68 65 72 65 20 6f 6e 20 65 72 ┆ush b wboot0: ;enter here on er┆ 0x0a11c0…0a11e0 72 6f 72 20 72 65 74 72 69 65 73 0d 0a 09 6c 78 69 09 62 2c 63 70 6d 62 09 3b 73 65 74 20 64 6d ┆ror retries lxi b,cpmb ;set dm┆ 0x0a11e0…0a1200 61 20 61 64 64 72 65 73 73 20 74 6f 20 73 74 61 72 74 20 6f 66 20 64 69 73 6b 20 73 79 73 74 65 ┆a address to start of disk syste┆ 0x0a1200…0a1220 (42, 1, 15) 6d 0d 0a 09 6c 64 61 09 63 64 69 73 6b 09 3b 6c 61 73 74 20 6c 6f 67 67 65 64 20 64 69 73 6b 20 ┆m lda cdisk ;last logged disk ┆ 0x0a1220…0a1240 6e 75 6d 62 65 72 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 73 65 6e 64 20 74 6f 20 63 63 70 20 74 6f ┆number mov c,a ;send to ccp to┆ 0x0a1240…0a1260 20 6c 6f 67 20 69 74 20 69 6e 0d 0a 09 65 69 0d 0a 09 6a 6d 70 09 63 70 6d 62 0d 0a 3b 0d 0a 3b ┆ log it in ei jmp cpmb ; ;┆ 0x0a1260…0a1280 09 65 72 72 6f 72 20 63 6f 6e 64 69 74 69 6f 6e 20 6f 63 63 75 72 72 65 64 2c 20 70 72 69 6e 74 ┆ error condition occurred, print┆ 0x0a1280…0a12a0 20 6d 65 73 73 61 67 65 20 61 6e 64 20 72 65 74 72 79 0d 0a 62 6f 6f 74 65 72 72 3a 0d 0a 09 70 ┆ message and retry booterr: p┆ 0x0a12a0…0a12c0 6f 70 09 62 09 3b 72 65 63 61 6c 6c 20 63 6f 75 6e 74 73 0d 0a 09 64 63 72 09 63 0d 0a 09 6a 7a ┆op b ;recall counts dcr c jz┆ 0x0a12c0…0a12e0 09 62 6f 6f 74 65 72 30 0d 0a 3b 09 74 72 79 20 61 67 61 69 6e 0d 0a 09 70 75 73 68 09 62 0d 0a ┆ booter0 ; try again push b ┆ 0x0a12e0…0a1300 09 6a 6d 70 09 77 62 6f 6f 74 30 0d 0a 3b 0d 0a 62 6f 6f 74 65 72 30 3a 0d 0a 3b 09 6f 74 68 65 ┆ jmp wboot0 ; booter0: ; othe┆ 0x0a1300…0a1320 72 77 69 73 65 20 74 6f 6f 20 6d 61 6e 79 20 72 65 74 72 69 65 73 0d 0a 09 6c 78 69 09 68 2c 62 ┆rwise too many retries lxi h,b┆ 0x0a1320…0a1340 6f 6f 74 6d 73 67 0d 0a 09 63 61 6c 6c 09 70 72 6d 73 67 0d 0a 09 6a 6d 70 09 72 6d 6f 6e 38 30 ┆ootmsg call prmsg jmp rmon80┆ 0x0a1340…0a1360 09 3b 6d 64 73 20 68 61 72 64 77 61 72 65 20 6d 6f 6e 69 74 6f 72 0d 0a 3b 0d 0a 62 6f 6f 74 6d ┆ ;mds hardware monitor ; bootm┆ 0x0a1360…0a1380 73 67 3a 0d 0a 09 64 62 09 27 3f 62 6f 6f 74 27 2c 30 0d 0a 3b 0d 0a 3b 0d 0a 63 6f 6e 73 74 3a ┆sg: db '?boot',0 ; ; const:┆ 0x0a1380…0a13a0 09 3b 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 20 74 6f 20 72 65 67 2d 61 0d 0a 3b 09 28 65 78 ┆ ;console status to reg-a ; (ex┆ 0x0a13a0…0a13c0 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d ┆actly the same as mds call) jm┆ 0x0a13c0…0a13e0 70 09 63 73 74 73 0d 0a 3b 0d 0a 63 6f 6e 69 6e 3a 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 ┆p csts ; conin: ;console chara┆ 0x0a13e0…0a1400 63 74 65 72 20 74 6f 20 72 65 67 2d 61 0d 0a 09 63 61 6c 6c 09 63 69 0d 0a 09 61 6e 69 09 37 66 ┆cter to reg-a call ci ani 7f┆ 0x0a1400…0a1420 (43, 0, 1) 65 74 75 72 6e 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 69 6e 20 4c 0d 0a 09 72 65 74 0d 0a ┆eturn sector number in L ret ┆ 0x0a1420…0a1440 3b 0d 0a 73 65 74 64 6d 61 3a 09 3b 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 67 69 76 65 ┆; setdma: ;set dma address give┆ 0x0a1440…0a1460 6e 20 62 79 20 72 65 67 73 20 62 2c 63 0d 0a 09 6d 6f 76 09 6c 2c 63 0d 0a 09 6d 6f 76 09 68 2c ┆n by regs b,c mov l,c mov h,┆ 0x0a1460…0a1480 62 0d 0a 09 73 68 6c 64 09 69 6f 64 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 72 65 61 64 3a 09 3b 72 65 ┆b shld iod ret ; read: ;re┆ 0x0a1480…0a14a0 61 64 20 6e 65 78 74 20 64 69 73 6b 20 72 65 63 6f 72 64 20 28 61 73 73 75 6d 69 6e 67 20 64 69 ┆ad next disk record (assuming di┆ 0x0a14a0…0a14c0 73 6b 2f 74 72 6b 2f 73 65 63 2f 64 6d 61 20 73 65 74 29 0d 0a 09 6d 76 69 09 63 2c 72 65 61 64 ┆sk/trk/sec/dma set) mvi c,read┆ 0x0a14c0…0a14e0 66 09 3b 73 65 74 20 74 6f 20 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 73 ┆f ;set to read function call s┆ 0x0a14e0…0a1500 65 74 66 75 6e 63 0d 0a 09 63 61 6c 6c 09 77 61 69 74 69 6f 09 3b 70 65 72 66 6f 72 6d 20 72 65 ┆etfunc call waitio ;perform re┆ 0x0a1500…0a1520 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 72 65 74 09 09 3b 6d 61 79 20 68 61 76 65 20 65 72 72 ┆ad function ret ;may have err┆ 0x0a1520…0a1540 6f 72 20 73 65 74 20 69 6e 20 72 65 67 2d 61 0d 0a 3b 0d 0a 3b 0d 0a 77 72 69 74 65 3a 09 3b 64 ┆or set in reg-a ; ; write: ;d┆ 0x0a1540…0a1560 69 73 6b 20 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6d 76 69 09 63 2c 77 72 69 74 66 ┆isk write function mvi c,writf┆ 0x0a1560…0a1580 0d 0a 09 63 61 6c 6c 09 73 65 74 66 75 6e 63 09 3b 73 65 74 20 74 6f 20 77 72 69 74 65 20 66 75 ┆ call setfunc ;set to write fu┆ 0x0a1580…0a15a0 6e 63 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 77 61 69 74 69 6f 0d 0a 09 72 65 74 09 09 3b 6d 61 79 ┆nction call waitio ret ;may┆ 0x0a15a0…0a15c0 20 68 61 76 65 20 65 72 72 6f 72 20 73 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 75 74 69 6c 69 74 79 ┆ have error set ; ; ; utility┆ 0x0a15c0…0a15e0 20 73 75 62 72 6f 75 74 69 6e 65 73 0d 0a 70 72 6d 73 67 3a 09 3b 70 72 69 6e 74 20 6d 65 73 73 ┆ subroutines prmsg: ;print mess┆ 0x0a15e0…0a1600 61 67 65 20 61 74 20 68 2c 6c 20 74 6f 20 30 0d 0a 09 6d 6f 76 09 61 2c 6d 0d 0a 09 6f 72 61 09 ┆age at h,l to 0 mov a,m ora ┆ 0x0a1600…0a1620 (43, 0, 2) 09 3b 73 6f 6d 65 20 6f 74 68 65 72 20 63 6f 6e 64 69 74 69 6f 6e 2c 20 72 65 74 72 79 0d 0a 3b ┆ ;some other condition, retry ;┆ 0x0a1620…0a1640 0d 0a 3b 09 63 68 65 63 6b 20 69 2f 6f 20 65 72 72 6f 72 20 62 69 74 73 0d 0a 09 63 61 6c 6c 09 ┆ ; check i/o error bits call ┆ 0x0a1640…0a1660 69 6e 62 79 74 65 0d 0a 09 72 61 6c 0d 0a 09 6a 63 09 77 72 65 61 64 79 09 09 3b 75 6e 69 74 20 ┆inbyte ral jc wready ;unit ┆ 0x0a1660…0a1680 6e 6f 74 20 72 65 61 64 79 0d 0a 09 72 61 72 0d 0a 09 61 6e 69 09 31 31 31 31 31 31 31 30 62 09 ┆not ready rar ani 11111110b ┆ 0x0a1680…0a16a0 3b 61 6e 79 20 6f 74 68 65 72 20 65 72 72 6f 72 73 3f 20 20 28 64 65 6c 65 74 65 64 20 64 61 74 ┆;any other errors? (deleted dat┆ 0x0a16a0…0a16c0 61 20 6f 6b 29 0d 0a 09 6a 6e 7a 09 77 65 72 72 6f 72 0d 0a 3b 0d 0a 3b 09 72 65 61 64 20 6f 72 ┆a ok) jnz werror ; ; read or┆ 0x0a16c0…0a16e0 20 77 72 69 74 65 20 69 73 20 6f 6b 2c 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 63 6f 6e 74 61 69 ┆ write is ok, accumulator contai┆ 0x0a16e0…0a1700 6e 73 20 7a 65 72 6f 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 77 72 65 61 64 79 3a 09 3b 6e 6f 74 20 72 ┆ns zero ret ; wready: ;not r┆ 0x0a1700…0a1720 65 61 64 79 2c 20 74 72 65 61 74 20 61 73 20 65 72 72 6f 72 20 66 6f 72 20 6e 6f 77 0d 0a 09 63 ┆eady, treat as error for now c┆ 0x0a1720…0a1740 61 6c 6c 09 69 6e 62 79 74 65 09 09 3b 63 6c 65 61 72 20 72 65 73 75 6c 74 20 62 79 74 65 0d 0a ┆all inbyte ;clear result byte ┆ 0x0a1740…0a1760 09 6a 6d 70 09 74 72 79 63 6f 75 6e 74 0d 0a 3b 0d 0a 77 65 72 72 6f 72 3a 09 3b 72 65 74 75 72 ┆ jmp trycount ; werror: ;retur┆ 0x0a1760…0a1780 6e 20 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 20 28 63 72 63 2c 20 74 72 61 ┆n hardware malfunction (crc, tra┆ 0x0a1780…0a17a0 63 6b 2c 20 73 65 65 6b 2c 20 65 74 63 2e 29 0d 0a 3b 09 74 68 65 20 6d 64 73 20 63 6f 6e 74 72 ┆ck, seek, etc.) ; the mds contr┆ 0x0a17a0…0a17c0 6f 6c 6c 65 72 20 68 61 73 20 72 65 74 75 72 6e 65 64 20 61 20 62 69 74 20 69 6e 20 65 61 63 68 ┆oller has returned a bit in each┆ 0x0a17c0…0a17e0 20 70 6f 73 69 74 69 6f 6e 0d 0a 3b 09 6f 66 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 2c ┆ position ; of the accumulator,┆ 0x0a17e0…0a1800 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e 73 ┆ corresponding to the conditions┆ 0x0a1800…0a1820 (43, 0, 3) 73 69 6f 6e 29 0d 0a 3b 0d 0a 3b 09 56 65 72 73 69 6f 6e 20 32 2e 32 20 46 65 62 72 75 61 72 79 ┆sion) ; ; Version 2.2 February┆ 0x0a1820…0a1840 2c 20 31 39 38 30 0d 0a 3b 0d 0a 76 65 72 73 09 65 71 75 09 32 32 09 3b 76 65 72 73 69 6f 6e 20 ┆, 1980 ; vers equ 22 ;version ┆ 0x0a1840…0a1860 32 2e 32 0d 0a 3b 0d 0a 3b 09 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 39 38 30 0d 0a 3b 09 ┆2.2 ; ; Copyright (c) 1980 ; ┆ 0x0a1860…0a1880 44 69 67 69 74 61 6c 20 52 65 73 65 61 72 63 68 0d 0a 3b 09 42 6f 78 20 35 37 39 2c 20 50 61 63 ┆Digital Research ; Box 579, Pac┆ 0x0a1880…0a18a0 69 66 69 63 20 47 72 6f 76 65 0d 0a 3b 09 43 61 6c 69 66 6f 72 6e 69 61 2c 20 39 33 39 35 30 0d ┆ific Grove ; California, 93950 ┆ 0x0a18a0…0a18c0 0a 3b 0d 0a 3b 0d 0a 74 72 75 65 09 65 71 75 09 30 66 66 66 66 68 09 3b 76 61 6c 75 65 20 6f 66 ┆ ; ; true equ 0ffffh ;value of┆ 0x0a18c0…0a18e0 20 22 74 72 75 65 22 0d 0a 66 61 6c 73 65 09 65 71 75 09 6e 6f 74 20 74 72 75 65 09 3b 22 66 61 ┆ "true" false equ not true ;"fa┆ 0x0a18e0…0a1900 6c 73 65 22 0d 0a 74 65 73 74 09 65 71 75 09 66 61 6c 73 65 09 3b 74 72 75 65 20 69 66 20 74 65 ┆lse" test equ false ;true if te┆ 0x0a1900…0a1920 73 74 20 62 69 6f 73 0d 0a 3b 0d 0a 09 69 66 09 74 65 73 74 0d 0a 62 69 61 73 09 65 71 75 09 30 ┆st bios ; if test bias equ 0┆ 0x0a1920…0a1940 33 34 30 30 68 09 3b 62 61 73 65 20 6f 66 20 43 43 50 20 69 6e 20 74 65 73 74 20 73 79 73 74 65 ┆3400h ;base of CCP in test syste┆ 0x0a1940…0a1960 6d 0d 0a 09 65 6e 64 69 66 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 62 69 61 73 09 65 71 ┆m endif if not test bias eq┆ 0x0a1960…0a1980 75 09 30 30 30 30 68 09 3b 67 65 6e 65 72 61 74 65 20 72 65 6c 6f 63 61 74 61 62 6c 65 20 63 70 ┆u 0000h ;generate relocatable cp┆ 0x0a1980…0a19a0 2f 6d 20 73 79 73 74 65 6d 0d 0a 09 65 6e 64 69 66 0d 0a 3b 0d 0a 70 61 74 63 68 09 65 71 75 09 ┆/m system endif ; patch equ ┆ 0x0a19a0…0a19c0 31 36 30 30 68 0d 0a 3b 0d 0a 09 6f 72 67 09 70 61 74 63 68 0d 0a 63 70 6d 62 09 65 71 75 09 24 ┆1600h ; org patch cpmb equ $┆ 0x0a19c0…0a19e0 2d 70 61 74 63 68 09 3b 62 61 73 65 20 6f 66 20 63 70 6d 20 63 6f 6e 73 6f 6c 65 20 70 72 6f 63 ┆-patch ;base of cpm console proc┆ 0x0a19e0…0a1a00 65 73 73 6f 72 0d 0a 62 64 6f 73 09 65 71 75 09 38 30 36 68 2b 63 70 6d 62 09 3b 62 61 73 69 63 ┆essor bdos equ 806h+cpmb ;basic┆ 0x0a1a00…0a1a20 (43, 0, 4) 0a 09 6a 6d 70 09 77 72 69 74 65 0d 0a 09 6a 6d 70 09 6c 69 73 74 73 74 09 3b 6c 69 73 74 20 73 ┆ jmp write jmp listst ;list s┆ 0x0a1a20…0a1a40 74 61 74 75 73 0d 0a 09 6a 6d 70 09 73 65 63 74 72 61 6e 0d 0a 3b 0d 0a 09 6d 61 63 6c 69 62 09 ┆tatus jmp sectran ; maclib ┆ 0x0a1a40…0a1a60 64 69 73 6b 64 65 66 09 3b 6c 6f 61 64 20 74 68 65 20 64 69 73 6b 20 64 65 66 69 6e 69 74 69 6f ┆diskdef ;load the disk definitio┆ 0x0a1a60…0a1a80 6e 20 6c 69 62 72 61 72 79 0d 0a 09 64 69 73 6b 73 09 34 09 3b 66 6f 75 72 20 64 69 73 6b 73 0d ┆n library disks 4 ;four disks ┆ 0x0a1a80…0a1aa0 0a 09 64 69 73 6b 64 65 66 09 30 2c 31 2c 32 36 2c 36 2c 31 30 32 34 2c 32 34 33 2c 36 34 2c 36 ┆ diskdef 0,1,26,6,1024,243,64,6┆ 0x0a1aa0…0a1ac0 34 2c 6f 66 66 73 65 74 0d 0a 09 64 69 73 6b 64 65 66 09 31 2c 30 0d 0a 09 64 69 73 6b 64 65 66 ┆4,offset diskdef 1,0 diskdef┆ 0x0a1ac0…0a1ae0 09 32 2c 30 0d 0a 09 64 69 73 6b 64 65 66 09 33 2c 30 0d 0a 3b 09 65 6e 64 65 66 20 6f 63 63 75 ┆ 2,0 diskdef 3,0 ; endef occu┆ 0x0a1ae0…0a1b00 72 73 20 61 74 20 65 6e 64 20 6f 66 20 61 73 73 65 6d 62 6c 79 0d 0a 3b 0d 0a 3b 09 65 6e 64 20 ┆rs at end of assembly ; ; end ┆ 0x0a1b00…0a1b20 6f 66 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 2d 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 63 6f 64 65 ┆of controller - independent code┆ 0x0a1b20…0a1b40 2c 20 74 68 65 20 72 65 6d 61 69 6e 69 6e 67 20 73 75 62 72 6f 75 74 69 6e 65 73 0d 0a 3b 09 61 ┆, the remaining subroutines ; a┆ 0x0a1b40…0a1b60 72 65 20 74 61 69 6c 6f 72 65 64 20 74 6f 20 74 68 65 20 70 61 72 74 69 63 75 6c 61 72 20 6f 70 ┆re tailored to the particular op┆ 0x0a1b60…0a1b80 65 72 61 74 69 6e 67 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 2c 20 61 6e 64 20 6d 75 73 74 0d 0a 3b ┆erating environment, and must ;┆ 0x0a1b80…0a1ba0 09 62 65 20 61 6c 74 65 72 65 64 20 66 6f 72 20 61 6e 79 20 73 79 73 74 65 6d 20 77 68 69 63 68 ┆ be altered for any system which┆ 0x0a1ba0…0a1bc0 20 64 69 66 66 65 72 73 20 66 72 6f 6d 20 74 68 65 20 69 6e 74 65 6c 20 6d 64 73 2e 0d 0a 3b 0d ┆ differs from the intel mds. ; ┆ 0x0a1bc0…0a1be0 0a 3b 09 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 64 65 20 61 73 73 75 6d 65 73 20 74 68 ┆ ; the following code assumes th┆ 0x0a1be0…0a1c00 65 20 6d 64 73 20 6d 6f 6e 69 74 6f 72 20 65 78 69 73 74 73 20 61 74 20 30 66 38 30 30 68 0d 0a ┆e mds monitor exists at 0f800h ┆ 0x0a1c00…0a1c20 (43, 0, 5) 61 09 3b 7a 65 72 6f 3f 0d 0a 09 72 7a 0d 0a 3b 09 6d 6f 72 65 20 74 6f 20 70 72 69 6e 74 0d 0a ┆a ;zero? rz ; more to print ┆ 0x0a1c20…0a1c40 09 70 75 73 68 09 68 0d 0a 09 6d 6f 76 09 63 2c 61 0d 0a 09 63 61 6c 6c 09 63 6f 6e 6f 75 74 0d ┆ push h mov c,a call conout ┆ 0x0a1c40…0a1c60 0a 09 70 6f 70 09 68 0d 0a 09 69 6e 78 09 68 0d 0a 09 6a 6d 70 09 70 72 6d 73 67 0d 0a 3b 0d 0a ┆ pop h inx h jmp prmsg ; ┆ 0x0a1c60…0a1c80 73 65 74 66 75 6e 63 3a 0d 0a 3b 09 73 65 74 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 6e 65 78 ┆setfunc: ; set function for nex┆ 0x0a1c80…0a1ca0 74 20 69 2f 6f 20 28 63 6f 6d 6d 61 6e 64 20 69 6e 20 72 65 67 2d 63 29 0d 0a 09 6c 78 69 09 68 ┆t i/o (command in reg-c) lxi h┆ 0x0a1ca0…0a1cc0 2c 69 6f 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 72 65 73 73 0d 0a 09 6d 6f 76 09 ┆,iof ;io function address mov ┆ 0x0a1cc0…0a1ce0 61 2c 6d 09 3b 67 65 74 20 69 74 20 74 6f 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 66 6f 72 20 6d ┆a,m ;get it to accumulator for m┆ 0x0a1ce0…0a1d00 61 73 6b 69 6e 67 0d 0a 09 61 6e 69 09 31 31 31 31 31 30 30 30 62 09 3b 72 65 6d 6f 76 65 20 70 ┆asking ani 11111000b ;remove p┆ 0x0a1d00…0a1d20 72 65 76 69 6f 75 73 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6f 72 61 09 63 09 3b 73 65 74 20 74 6f 20 ┆revious command ora c ;set to ┆ 0x0a1d20…0a1d40 6e 65 77 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6d 6f 76 09 6d 2c 61 09 3b 72 65 70 6c 61 63 65 64 20 ┆new command mov m,a ;replaced ┆ 0x0a1d40…0a1d60 69 6e 20 69 6f 70 62 0d 0a 3b 09 74 68 65 20 6d 64 73 2d 38 30 30 20 63 6f 6e 74 72 6f 6c 6c 65 ┆in iopb ; the mds-800 controlle┆ 0x0a1d60…0a1d80 72 20 72 65 71 75 69 72 65 73 20 64 69 73 6b 20 62 61 6e 6b 20 62 69 74 20 69 6e 20 73 65 63 74 ┆r requires disk bank bit in sect┆ 0x0a1d80…0a1da0 6f 72 20 62 79 74 65 0d 0a 3b 09 6d 61 73 6b 20 74 68 65 20 62 69 74 20 66 72 6f 6d 20 74 68 65 ┆or byte ; mask the bit from the┆ 0x0a1da0…0a1dc0 20 63 75 72 72 65 6e 74 20 69 2f 6f 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 61 6e 69 09 30 30 31 30 ┆ current i/o function ani 0010┆ 0x0a1dc0…0a1de0 30 30 30 30 62 09 3b 6d 61 73 6b 20 74 68 65 20 64 69 73 6b 20 73 65 6c 65 63 74 20 62 69 74 0d ┆0000b ;mask the disk select bit ┆ 0x0a1de0…0a1e00 0a 09 6c 78 69 09 68 2c 69 6f 73 09 09 3b 61 64 64 72 65 73 73 20 74 68 65 20 73 65 63 74 6f 72 ┆ lxi h,ios ;address the sector┆ 0x0a1e00…0a1e20 (43, 0, 6) 3a 0d 0a 3b 09 30 09 2d 20 64 65 6c 65 74 65 64 20 64 61 74 61 20 28 61 63 63 65 70 74 65 64 20 ┆: ; 0 - deleted data (accepted ┆ 0x0a1e20…0a1e40 61 73 20 6f 6b 20 61 62 6f 76 65 29 0d 0a 3b 09 31 09 2d 20 63 72 63 20 65 72 72 6f 72 0d 0a 3b ┆as ok above) ; 1 - crc error ;┆ 0x0a1e40…0a1e60 09 32 09 2d 20 73 65 65 6b 20 65 72 72 6f 72 0d 0a 3b 09 33 09 2d 20 61 64 64 72 65 73 73 20 65 ┆ 2 - seek error ; 3 - address e┆ 0x0a1e60…0a1e80 72 72 6f 72 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 34 ┆rror (hardware malfunction) ; 4┆ 0x0a1e80…0a1ea0 09 2d 20 64 61 74 61 20 6f 76 65 72 2f 75 6e 64 65 72 20 66 6c 6f 77 20 28 68 61 72 64 77 61 72 ┆ - data over/under flow (hardwar┆ 0x0a1ea0…0a1ec0 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 35 09 2d 20 77 72 69 74 65 20 70 72 6f 74 ┆e malfunction) ; 5 - write prot┆ 0x0a1ec0…0a1ee0 65 63 74 20 28 74 72 65 61 74 65 64 20 61 73 20 6e 6f 74 20 72 65 61 64 79 29 0d 0a 3b 09 36 09 ┆ect (treated as not ready) ; 6 ┆ 0x0a1ee0…0a1f00 2d 20 77 72 69 74 65 20 65 72 72 6f 72 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 ┆- write error (hardware malfunct┆ 0x0a1f00…0a1f20 69 6f 6e 29 0d 0a 3b 09 37 09 2d 20 6e 6f 74 20 72 65 61 64 79 0d 0a 3b 09 28 61 63 63 75 6d 75 ┆ion) ; 7 - not ready ; (accumu┆ 0x0a1f20…0a1f40 6c 61 74 6f 72 20 62 69 74 73 20 61 72 65 20 6e 75 6d 62 65 72 65 64 20 37 20 36 20 35 20 34 20 ┆lator bits are numbered 7 6 5 4 ┆ 0x0a1f40…0a1f60 33 20 32 20 31 20 30 29 0d 0a 3b 0d 0a 3b 09 69 74 20 6d 61 79 20 62 65 20 75 73 65 66 75 6c 20 ┆3 2 1 0) ; ; it may be useful ┆ 0x0a1f60…0a1f80 74 6f 20 66 69 6c 74 65 72 20 6f 75 74 20 74 68 65 20 76 61 72 69 6f 75 73 20 63 6f 6e 64 69 74 ┆to filter out the various condit┆ 0x0a1f80…0a1fa0 69 6f 6e 73 2c 0d 0a 3b 09 62 75 74 20 77 65 20 77 69 6c 6c 20 67 65 74 20 61 20 70 65 72 6d 61 ┆ions, ; but we will get a perma┆ 0x0a1fa0…0a1fc0 6e 65 6e 74 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 69 66 20 69 74 20 69 73 20 6e 6f 74 0d ┆nent error message if it is not ┆ 0x0a1fc0…0a1fe0 0a 3b 09 72 65 63 6f 76 65 72 61 62 6c 65 2e 20 20 69 6e 20 61 6e 79 20 63 61 73 65 2c 20 74 68 ┆ ; recoverable. in any case, th┆ 0x0a1fe0…0a2000 65 20 6e 6f 74 20 72 65 61 64 79 20 63 6f 6e 64 69 74 69 6f 6e 20 69 73 0d 0a 3b 09 74 72 65 61 ┆e not ready condition is ; trea┆ 0x0a2000…0a2020 (43, 0, 7) 20 64 6f 73 20 28 72 65 73 69 64 65 6e 74 20 70 6f 72 74 69 6f 6e 29 0d 0a 63 70 6d 6c 09 65 71 ┆ dos (resident portion) cpml eq┆ 0x0a2020…0a2040 75 09 24 2d 63 70 6d 62 09 3b 6c 65 6e 67 74 68 20 28 69 6e 20 62 79 74 65 73 29 20 6f 66 20 63 ┆u $-cpmb ;length (in bytes) of c┆ 0x0a2040…0a2060 70 6d 20 73 79 73 74 65 6d 0d 0a 6e 73 65 63 74 73 09 65 71 75 09 63 70 6d 6c 2f 31 32 38 09 3b ┆pm system nsects equ cpml/128 ;┆ 0x0a2060…0a2080 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 20 74 6f 20 6c 6f 61 64 0d 0a 6f 66 66 73 65 ┆number of sectors to load offse┆ 0x0a2080…0a20a0 74 09 65 71 75 09 32 09 3b 6e 75 6d 62 65 72 20 6f 66 20 64 69 73 6b 20 74 72 61 63 6b 73 20 75 ┆t equ 2 ;number of disk tracks u┆ 0x0a20a0…0a20c0 73 65 64 20 62 79 20 63 70 2f 6d 0d 0a 63 64 69 73 6b 09 65 71 75 09 30 30 30 34 68 09 3b 61 64 ┆sed by cp/m cdisk equ 0004h ;ad┆ 0x0a20c0…0a20e0 64 72 65 73 73 20 6f 66 20 6c 61 73 74 20 6c 6f 67 67 65 64 20 64 69 73 6b 20 6f 6e 20 77 61 72 ┆dress of last logged disk on war┆ 0x0a20e0…0a2100 6d 20 73 74 61 72 74 0d 0a 62 75 66 66 09 65 71 75 09 30 30 38 30 68 09 3b 64 65 66 61 75 6c 74 ┆m start buff equ 0080h ;default┆ 0x0a2100…0a2120 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 0d 0a 72 65 74 72 79 09 65 71 75 09 31 30 09 3b 6d ┆ buffer address retry equ 10 ;m┆ 0x0a2120…0a2140 61 78 20 72 65 74 72 69 65 73 20 6f 6e 20 64 69 73 6b 20 69 2f 6f 20 62 65 66 6f 72 65 20 65 72 ┆ax retries on disk i/o before er┆ 0x0a2140…0a2160 72 6f 72 0d 0a 3b 0d 0a 3b 09 70 65 72 66 6f 72 6d 20 66 6f 6c 6c 6f 77 69 6e 67 20 66 75 6e 63 ┆ror ; ; perform following func┆ 0x0a2160…0a2180 74 69 6f 6e 73 0d 0a 3b 09 62 6f 6f 74 09 63 6f 6c 64 20 73 74 61 72 74 0d 0a 3b 09 77 62 6f 6f ┆tions ; boot cold start ; wboo┆ 0x0a2180…0a21a0 74 09 77 61 72 6d 20 73 74 61 72 74 20 28 73 61 76 65 20 69 2f 6f 20 62 79 74 65 29 0d 0a 3b 09 ┆t warm start (save i/o byte) ; ┆ 0x0a21a0…0a21c0 28 62 6f 6f 74 20 61 6e 64 20 77 62 6f 6f 74 20 61 72 65 20 74 68 65 20 73 61 6d 65 20 66 6f 72 ┆(boot and wboot are the same for┆ 0x0a21c0…0a21e0 20 6d 64 73 29 0d 0a 3b 09 63 6f 6e 73 74 09 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 0d 0a 3b ┆ mds) ; const console status ;┆ 0x0a21e0…0a2200 09 09 72 65 67 2d 61 20 3d 20 30 30 20 69 66 20 6e 6f 20 63 68 61 72 61 63 74 65 72 20 72 65 61 ┆ reg-a = 00 if no character rea┆ 0x0a2200…0a2220 (43, 0, 8) 3b 09 61 6e 64 20 75 73 65 73 20 74 68 65 20 69 2f 6f 20 73 75 62 72 6f 75 74 69 6e 65 73 20 77 ┆; and uses the i/o subroutines w┆ 0x0a2220…0a2240 69 74 68 69 6e 20 74 68 65 20 6d 6f 6e 69 74 6f 72 0d 0a 3b 0d 0a 3b 09 77 65 20 61 6c 73 6f 20 ┆ithin the monitor ; ; we also ┆ 0x0a2240…0a2260 61 73 73 75 6d 65 20 74 68 65 20 6d 64 73 20 73 79 73 74 65 6d 20 68 61 73 20 66 6f 75 72 20 64 ┆assume the mds system has four d┆ 0x0a2260…0a2280 69 73 6b 20 64 72 69 76 65 73 0d 0a 72 65 76 72 74 09 65 71 75 09 30 66 64 68 09 3b 69 6e 74 65 ┆isk drives revrt equ 0fdh ;inte┆ 0x0a2280…0a22a0 72 72 75 70 74 20 72 65 76 65 72 74 20 70 6f 72 74 0d 0a 69 6e 74 63 09 65 71 75 09 30 66 63 68 ┆rrupt revert port intc equ 0fch┆ 0x0a22a0…0a22c0 09 3b 69 6e 74 65 72 72 75 70 74 20 6d 61 73 6b 20 70 6f 72 74 0d 0a 69 63 6f 6e 09 65 71 75 09 ┆ ;interrupt mask port icon equ ┆ 0x0a22c0…0a22e0 30 66 33 68 09 3b 69 6e 74 65 72 72 75 70 74 20 63 6f 6e 74 72 6f 6c 20 70 6f 72 74 0d 0a 69 6e ┆0f3h ;interrupt control port in┆ 0x0a22e0…0a2300 74 65 09 65 71 75 09 30 31 31 31 24 31 31 31 30 62 09 3b 65 6e 61 62 6c 65 20 72 73 74 20 30 28 ┆te equ 0111$1110b ;enable rst 0(┆ 0x0a2300…0a2320 77 61 72 6d 20 62 6f 6f 74 29 2c 20 72 73 74 20 37 20 28 6d 6f 6e 69 74 6f 72 29 0d 0a 3b 0d 0a ┆warm boot), rst 7 (monitor) ; ┆ 0x0a2320…0a2340 3b 09 6d 64 73 20 6d 6f 6e 69 74 6f 72 20 65 71 75 61 74 65 73 0d 0a 6d 6f 6e 38 30 09 65 71 75 ┆; mds monitor equates mon80 equ┆ 0x0a2340…0a2360 09 30 66 38 30 30 68 09 3b 6d 64 73 20 6d 6f 6e 69 74 6f 72 0d 0a 72 6d 6f 6e 38 30 09 65 71 75 ┆ 0f800h ;mds monitor rmon80 equ┆ 0x0a2360…0a2380 09 30 66 66 30 66 68 09 3b 72 65 73 74 61 72 74 20 6d 6f 6e 38 30 20 28 62 6f 6f 74 20 65 72 72 ┆ 0ff0fh ;restart mon80 (boot err┆ 0x0a2380…0a23a0 6f 72 29 0d 0a 63 69 09 65 71 75 09 30 66 38 30 33 68 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 ┆or) ci equ 0f803h ;console char┆ 0x0a23a0…0a23c0 61 63 74 65 72 20 74 6f 20 72 65 67 2d 61 0d 0a 72 69 09 65 71 75 09 30 66 38 30 36 68 09 3b 72 ┆acter to reg-a ri equ 0f806h ;r┆ 0x0a23c0…0a23e0 65 61 64 65 72 20 69 6e 20 74 6f 20 72 65 67 2d 61 0d 0a 63 6f 09 65 71 75 09 30 66 38 30 39 68 ┆eader in to reg-a co equ 0f809h┆ 0x0a23e0…0a2400 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 20 66 72 6f 6d 20 63 20 74 6f 20 63 6f 6e 73 6f 6c 65 ┆ ;console char from c to console┆ 0x0a2400…0a2420 (43, 0, 9) 20 73 65 6c 65 63 74 20 62 79 74 65 0d 0a 09 6f 72 61 09 6d 09 09 3b 73 65 6c 65 63 74 20 70 72 ┆ select byte ora m ;select pr┆ 0x0a2420…0a2440 6f 70 65 72 20 64 69 73 6b 20 62 61 6e 6b 0d 0a 09 6d 6f 76 09 6d 2c 61 09 09 3b 73 65 74 20 64 ┆oper disk bank mov m,a ;set d┆ 0x0a2440…0a2460 69 73 6b 20 73 65 6c 65 63 74 20 62 69 74 20 6f 6e 2f 6f 66 66 0d 0a 09 72 65 74 0d 0a 3b 0d 0a ┆isk select bit on/off ret ; ┆ 0x0a2460…0a2480 77 61 69 74 69 6f 3a 0d 0a 09 6d 76 69 09 63 2c 72 65 74 72 79 09 3b 6d 61 78 20 72 65 74 72 69 ┆waitio: mvi c,retry ;max retri┆ 0x0a2480…0a24a0 65 73 20 62 65 66 6f 72 65 20 70 65 72 6d 20 65 72 72 6f 72 0d 0a 72 65 77 61 69 74 3a 0d 0a 3b ┆es before perm error rewait: ;┆ 0x0a24a0…0a24c0 09 73 74 61 72 74 20 74 68 65 20 69 2f 6f 20 66 75 6e 63 74 69 6f 6e 20 61 6e 64 20 77 61 69 74 ┆ start the i/o function and wait┆ 0x0a24c0…0a24e0 20 66 6f 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 69 6e 74 79 70 65 09 3b 69 ┆ for completion call intype ;i┆ 0x0a24e0…0a2500 6e 20 72 74 79 70 65 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 09 3b 63 6c 65 61 72 73 20 74 68 ┆n rtype call inbyte ;clears th┆ 0x0a2500…0a2520 65 20 63 6f 6e 74 72 6f 6c 6c 65 72 0d 0a 3b 0d 0a 09 6c 64 61 09 64 62 61 6e 6b 09 09 3b 73 65 ┆e controller ; lda dbank ;se┆ 0x0a2520…0a2540 74 20 62 61 6e 6b 20 66 6c 61 67 73 0d 0a 09 6f 72 61 09 61 09 09 3b 7a 65 72 6f 20 69 66 20 64 ┆t bank flags ora a ;zero if d┆ 0x0a2540…0a2560 72 69 76 65 20 30 2c 31 20 61 6e 64 20 6e 7a 20 69 66 20 32 2c 33 0d 0a 09 6d 76 69 09 61 2c 69 ┆rive 0,1 and nz if 2,3 mvi a,i┆ 0x0a2560…0a2580 6f 70 62 20 61 6e 64 20 30 66 66 68 09 3b 6c 6f 77 20 61 64 64 72 65 73 73 20 66 6f 72 20 69 6f ┆opb and 0ffh ;low address for io┆ 0x0a2580…0a25a0 70 62 0d 0a 09 6d 76 69 09 62 2c 69 6f 70 62 20 73 68 72 20 38 09 3b 68 69 67 68 20 61 64 64 72 ┆pb mvi b,iopb shr 8 ;high addr┆ 0x0a25a0…0a25c0 65 73 73 20 66 6f 72 20 69 6f 70 62 0d 0a 09 6a 6e 7a 09 69 6f 64 72 31 09 3b 64 72 69 76 65 20 ┆ess for iopb jnz iodr1 ;drive ┆ 0x0a25c0…0a25e0 62 61 6e 6b 20 31 3f 0d 0a 09 6f 75 74 09 69 6c 6f 77 09 09 3b 6c 6f 77 20 61 64 64 72 65 73 73 ┆bank 1? out ilow ;low address┆ 0x0a25e0…0a2600 20 74 6f 20 63 6f 6e 74 72 6f 6c 6c 65 72 0d 0a 09 6d 6f 76 09 61 2c 62 0d 0a 09 6f 75 74 09 69 ┆ to controller mov a,b out i┆ 0x0a2600…0a2620 (43, 0, 10) 74 65 64 20 61 73 20 61 20 73 65 70 61 72 61 74 65 20 63 6f 6e 64 69 74 69 6f 6e 20 66 6f 72 20 ┆ted as a separate condition for ┆ 0x0a2620…0a2640 6c 61 74 65 72 20 69 6d 70 72 6f 76 65 6d 65 6e 74 0d 0a 74 72 79 63 6f 75 6e 74 3a 0d 0a 3b 09 ┆later improvement trycount: ; ┆ 0x0a2640…0a2660 72 65 67 69 73 74 65 72 20 63 20 63 6f 6e 74 61 69 6e 73 20 72 65 74 72 79 20 63 6f 75 6e 74 2c ┆register c contains retry count,┆ 0x0a2660…0a2680 20 64 65 63 72 65 6d 65 6e 74 20 27 74 69 6c 20 7a 65 72 6f 0d 0a 09 64 63 72 09 63 0d 0a 09 6a ┆ decrement 'til zero dcr c j┆ 0x0a2680…0a26a0 6e 7a 09 72 65 77 61 69 74 09 3b 66 6f 72 20 61 6e 6f 74 68 65 72 20 74 72 79 0d 0a 3b 0d 0a 3b ┆nz rewait ;for another try ; ;┆ 0x0a26a0…0a26c0 09 63 61 6e 6e 6f 74 20 72 65 63 6f 76 65 72 20 66 72 6f 6d 20 65 72 72 6f 72 0d 0a 09 6d 76 69 ┆ cannot recover from error mvi┆ 0x0a26c0…0a26e0 09 61 2c 31 09 3b 65 72 72 6f 72 20 63 6f 64 65 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 09 69 6e 74 ┆ a,1 ;error code ret ; ; int┆ 0x0a26e0…0a2700 79 70 65 2c 20 69 6e 62 79 74 65 2c 20 69 6e 73 74 61 74 20 72 65 61 64 20 64 72 69 76 65 20 62 ┆ype, inbyte, instat read drive b┆ 0x0a2700…0a2720 61 6e 6b 20 30 30 20 6f 72 20 31 30 0d 0a 69 6e 74 79 70 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d ┆ank 00 or 10 intype: lda dbank ┆ 0x0a2720…0a2740 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 74 79 70 31 09 3b 73 6b 69 70 20 74 6f 20 62 61 ┆ ora a jnz intyp1 ;skip to ba┆ 0x0a2740…0a2760 6e 6b 20 31 30 0d 0a 09 69 6e 09 72 74 79 70 65 0d 0a 09 72 65 74 0d 0a 69 6e 74 79 70 31 3a 09 ┆nk 10 in rtype ret intyp1: ┆ 0x0a2760…0a2780 69 6e 09 72 74 79 70 65 2b 31 30 68 09 3b 37 38 20 66 6f 72 20 30 2c 31 20 20 38 38 20 66 6f 72 ┆in rtype+10h ;78 for 0,1 88 for┆ 0x0a2780…0a27a0 20 32 2c 33 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 69 6e 62 79 74 65 3a 09 6c 64 61 09 64 62 61 6e 6b ┆ 2,3 ret ; inbyte: lda dbank┆ 0x0a27a0…0a27c0 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 62 79 74 31 0d 0a 09 69 6e 09 72 62 79 74 65 ┆ ora a jnz inbyt1 in rbyte┆ 0x0a27c0…0a27e0 0d 0a 09 72 65 74 0d 0a 69 6e 62 79 74 31 3a 09 69 6e 09 72 62 79 74 65 2b 31 30 68 0d 0a 09 72 ┆ ret inbyt1: in rbyte+10h r┆ 0x0a27e0…0a2800 65 74 0d 0a 3b 0d 0a 69 6e 73 74 61 74 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 ┆et ; instat: lda dbank ora a┆ 0x0a2800…0a2820 (43, 0, 11) 64 79 0d 0a 3b 09 09 72 65 67 2d 61 20 3d 20 66 66 20 69 66 20 63 68 61 72 61 63 74 65 72 20 72 ┆dy ; reg-a = ff if character r┆ 0x0a2820…0a2840 65 61 64 79 0d 0a 3b 09 63 6f 6e 69 6e 09 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 ┆eady ; conin console character ┆ 0x0a2840…0a2860 69 6e 20 28 72 65 73 75 6c 74 20 69 6e 20 72 65 67 2d 61 29 0d 0a 3b 09 63 6f 6e 6f 75 74 09 63 ┆in (result in reg-a) ; conout c┆ 0x0a2860…0a2880 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 ┆onsole character out (char in re┆ 0x0a2880…0a28a0 67 2d 63 29 0d 0a 3b 09 6c 69 73 74 09 6c 69 73 74 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 ┆g-c) ; list list out (char in r┆ 0x0a28a0…0a28c0 65 67 2d 63 29 0d 0a 3b 09 70 75 6e 63 68 09 70 75 6e 63 68 20 6f 75 74 20 28 63 68 61 72 20 69 ┆eg-c) ; punch punch out (char i┆ 0x0a28c0…0a28e0 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 72 65 61 64 65 72 09 70 61 70 65 72 20 74 61 70 65 20 72 65 ┆n reg-c) ; reader paper tape re┆ 0x0a28e0…0a2900 61 64 65 72 20 69 6e 20 28 72 65 73 75 6c 74 20 74 6f 20 72 65 67 2d 61 29 0d 0a 3b 09 68 6f 6d ┆ader in (result to reg-a) ; hom┆ 0x0a2900…0a2920 65 09 6d 6f 76 65 20 74 6f 20 74 72 61 63 6b 20 30 30 0d 0a 3b 0d 0a 3b 09 28 74 68 65 20 66 6f ┆e move to track 00 ; ; (the fo┆ 0x0a2920…0a2940 6c 6c 6f 77 69 6e 67 20 63 61 6c 6c 73 20 73 65 74 2d 75 70 20 74 68 65 20 69 6f 20 70 61 72 61 ┆llowing calls set-up the io para┆ 0x0a2940…0a2960 6d 65 74 65 72 20 62 6c 6f 63 6b 20 66 6f 72 20 74 68 65 0d 0a 3b 09 6d 64 73 2c 20 77 68 69 63 ┆meter block for the ; mds, whic┆ 0x0a2960…0a2980 68 20 69 73 20 75 73 65 64 20 74 6f 20 70 65 72 66 6f 72 6d 20 73 75 62 73 65 71 75 65 6e 74 20 ┆h is used to perform subsequent ┆ 0x0a2980…0a29a0 72 65 61 64 73 20 61 6e 64 20 77 72 69 74 65 73 29 0d 0a 3b 09 73 65 6c 64 73 6b 09 73 65 6c 65 ┆reads and writes) ; seldsk sele┆ 0x0a29a0…0a29c0 63 74 20 64 69 73 6b 20 67 69 76 65 6e 20 62 79 20 72 65 67 2d 63 20 28 30 2c 31 2c 32 2e 2e 2e ┆ct disk given by reg-c (0,1,2...┆ 0x0a29c0…0a29e0 29 0d 0a 3b 09 73 65 74 74 72 6b 09 73 65 74 20 74 72 61 63 6b 20 61 64 64 72 65 73 73 20 28 30 ┆) ; settrk set track address (0┆ 0x0a29e0…0a2a00 2c 2e 2e 2e 37 36 29 20 66 6f 72 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 2f 77 72 69 74 ┆,...76) for subsequent read/writ┆ 0x0a2a00…0a2a20 (43, 0, 12) 20 6f 75 74 0d 0a 70 6f 09 65 71 75 09 30 66 38 30 63 68 09 3b 70 75 6e 63 68 20 63 68 61 72 20 ┆ out po equ 0f80ch ;punch char ┆ 0x0a2a20…0a2a40 66 72 6f 6d 20 63 20 74 6f 20 70 75 6e 63 68 20 64 65 76 69 63 65 0d 0a 6c 6f 09 65 71 75 09 30 ┆from c to punch device lo equ 0┆ 0x0a2a40…0a2a60 66 38 30 66 68 09 3b 6c 69 73 74 20 66 72 6f 6d 20 63 20 74 6f 20 6c 69 73 74 20 64 65 76 69 63 ┆f80fh ;list from c to list devic┆ 0x0a2a60…0a2a80 65 0d 0a 63 73 74 73 09 65 71 75 09 30 66 38 31 32 68 09 3b 63 6f 6e 73 6f 6c 65 20 73 74 61 74 ┆e csts equ 0f812h ;console stat┆ 0x0a2a80…0a2aa0 75 73 20 30 30 2f 66 66 20 74 6f 20 72 65 67 69 73 74 65 72 20 61 0d 0a 3b 0d 0a 3b 09 64 69 73 ┆us 00/ff to register a ; ; dis┆ 0x0a2aa0…0a2ac0 6b 20 70 6f 72 74 73 20 61 6e 64 20 63 6f 6d 6d 61 6e 64 73 0d 0a 62 61 73 65 09 65 71 75 09 37 ┆k ports and commands base equ 7┆ 0x0a2ac0…0a2ae0 38 68 09 3b 62 61 73 65 20 6f 66 20 64 69 73 6b 20 63 6f 6d 6d 61 6e 64 20 69 6f 20 70 6f 72 74 ┆8h ;base of disk command io port┆ 0x0a2ae0…0a2b00 73 0d 0a 64 73 74 61 74 09 65 71 75 09 62 61 73 65 09 3b 64 69 73 6b 20 73 74 61 74 75 73 20 28 ┆s dstat equ base ;disk status (┆ 0x0a2b00…0a2b20 69 6e 70 75 74 29 0d 0a 72 74 79 70 65 09 65 71 75 09 62 61 73 65 2b 31 09 3b 72 65 73 75 6c 74 ┆input) rtype equ base+1 ;result┆ 0x0a2b20…0a2b40 20 74 79 70 65 20 28 69 6e 70 75 74 29 0d 0a 72 62 79 74 65 09 65 71 75 09 62 61 73 65 2b 33 09 ┆ type (input) rbyte equ base+3 ┆ 0x0a2b40…0a2b60 3b 72 65 73 75 6c 74 20 62 79 74 65 20 28 69 6e 70 75 74 29 0d 0a 3b 0d 0a 69 6c 6f 77 09 65 71 ┆;result byte (input) ; ilow eq┆ 0x0a2b60…0a2b80 75 09 62 61 73 65 2b 31 09 3b 69 6f 70 62 20 6c 6f 77 20 61 64 64 72 65 73 73 20 28 6f 75 74 70 ┆u base+1 ;iopb low address (outp┆ 0x0a2b80…0a2ba0 75 74 29 0d 0a 69 68 69 67 68 09 65 71 75 09 62 61 73 65 2b 32 09 3b 69 6f 70 62 20 68 69 67 68 ┆ut) ihigh equ base+2 ;iopb high┆ 0x0a2ba0…0a2bc0 20 61 64 64 72 65 73 73 20 28 6f 75 74 70 75 74 29 0d 0a 3b 0d 0a 72 65 61 64 66 09 65 71 75 09 ┆ address (output) ; readf equ ┆ 0x0a2bc0…0a2be0 34 68 09 3b 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 77 72 69 74 66 09 65 71 75 09 36 68 09 ┆4h ;read function writf equ 6h ┆ 0x0a2be0…0a2c00 3b 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 72 65 63 61 6c 09 65 71 75 09 33 68 09 3b 72 ┆;write function recal equ 3h ;r┆ 0x0a2c00…0a2c20 (43, 0, 13) 68 69 67 68 09 3b 68 69 67 68 20 61 64 64 72 65 73 73 0d 0a 09 6a 6d 70 09 77 61 69 74 30 09 09 ┆high ;high address jmp wait0 ┆ 0x0a2c20…0a2c40 3b 74 6f 20 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 65 0d 0a 3b 0d 0a 69 6f 64 72 31 3a ┆;to wait for complete ; iodr1:┆ 0x0a2c40…0a2c60 09 3b 64 72 69 76 65 20 62 61 6e 6b 20 31 0d 0a 09 6f 75 74 09 69 6c 6f 77 2b 31 30 68 09 3b 38 ┆ ;drive bank 1 out ilow+10h ;8┆ 0x0a2c60…0a2c80 38 20 66 6f 72 20 64 72 69 76 65 20 62 61 6e 6b 20 31 30 0d 0a 09 6d 6f 76 09 61 2c 62 0d 0a 09 ┆8 for drive bank 10 mov a,b ┆ 0x0a2c80…0a2ca0 6f 75 74 09 69 68 69 67 68 2b 31 30 68 0d 0a 3b 0d 0a 77 61 69 74 30 3a 09 63 61 6c 6c 09 69 6e ┆out ihigh+10h ; wait0: call in┆ 0x0a2ca0…0a2cc0 73 74 61 74 09 09 3b 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 0d 0a 09 61 6e 69 ┆stat ;wait for completion ani┆ 0x0a2cc0…0a2ce0 09 69 6f 72 64 79 09 09 3b 72 65 61 64 79 3f 0d 0a 09 6a 7a 09 77 61 69 74 30 0d 0a 3b 0d 0a 3b ┆ iordy ;ready? jz wait0 ; ;┆ 0x0a2ce0…0a2d00 09 63 68 65 63 6b 20 69 6f 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 6f 6b 0d 0a 09 63 61 6c 6c 09 69 ┆ check io completion ok call i┆ 0x0a2d00…0a2d20 6e 74 79 70 65 09 09 3b 6d 75 73 74 20 62 65 20 69 6f 20 63 6f 6d 70 6c 65 74 65 20 28 30 30 29 ┆ntype ;must be io complete (00)┆ 0x0a2d20…0a2d40 20 75 6e 6c 69 6e 6b 65 64 0d 0a 3b 09 30 30 20 75 6e 6c 69 6e 6b 65 64 20 69 2f 6f 20 63 6f 6d ┆ unlinked ; 00 unlinked i/o com┆ 0x0a2d40…0a2d60 70 6c 65 74 65 2c 20 20 20 20 30 31 20 6c 69 6e 6b 65 64 20 69 2f 6f 20 63 6f 6d 70 6c 65 74 65 ┆plete, 01 linked i/o complete┆ 0x0a2d60…0a2d80 20 28 6e 6f 74 20 75 73 65 64 29 0d 0a 3b 09 31 30 20 64 69 73 6b 20 73 74 61 74 75 73 20 63 68 ┆ (not used) ; 10 disk status ch┆ 0x0a2d80…0a2da0 61 6e 67 65 64 20 20 20 20 20 20 20 31 31 20 28 6e 6f 74 20 75 73 65 64 29 0d 0a 09 63 70 69 09 ┆anged 11 (not used) cpi ┆ 0x0a2da0…0a2dc0 31 30 62 09 09 3b 72 65 61 64 79 20 73 74 61 74 75 73 20 63 68 61 6e 67 65 3f 0d 0a 09 6a 7a 09 ┆10b ;ready status change? jz ┆ 0x0a2dc0…0a2de0 77 72 65 61 64 79 0d 0a 3b 0d 0a 3b 09 6d 75 73 74 20 62 65 20 30 30 20 69 6e 20 74 68 65 20 61 ┆wready ; ; must be 00 in the a┆ 0x0a2de0…0a2e00 63 63 75 6d 75 6c 61 74 6f 72 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 77 65 72 72 6f 72 09 ┆ccumulator ora a jnz werror ┆ 0x0a2e00…0a2e20 (43, 0, 14) 0d 0a 09 6a 6e 7a 09 69 6e 73 74 61 31 0d 0a 09 69 6e 09 64 73 74 61 74 0d 0a 09 72 65 74 0d 0a ┆ jnz insta1 in dstat ret ┆ 0x0a2e20…0a2e40 69 6e 73 74 61 31 3a 09 69 6e 09 64 73 74 61 74 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b ┆insta1: in dstat+10h ret ; ;┆ 0x0a2e40…0a2e60 0d 0a 3b 0d 0a 3b 09 64 61 74 61 20 61 72 65 61 73 20 28 6d 75 73 74 20 62 65 20 69 6e 20 72 61 ┆ ; ; data areas (must be in ra┆ 0x0a2e60…0a2e80 6d 29 0d 0a 64 62 61 6e 6b 3a 09 64 62 09 30 09 3b 64 69 73 6b 20 62 61 6e 6b 20 30 30 20 69 66 ┆m) dbank: db 0 ;disk bank 00 if┆ 0x0a2e80…0a2ea0 20 64 72 69 76 65 20 30 2c 31 0d 0a 09 09 09 3b 09 20 20 20 31 30 20 69 66 20 64 72 69 76 65 20 ┆ drive 0,1 ; 10 if drive ┆ 0x0a2ea0…0a2ec0 32 2c 33 0d 0a 69 6f 70 62 3a 09 3b 69 6f 20 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 0d 0a ┆2,3 iopb: ;io parameter block ┆ 0x0a2ec0…0a2ee0 09 64 62 09 38 30 68 09 3b 6e 6f 72 6d 61 6c 20 69 2f 6f 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 69 ┆ db 80h ;normal i/o operation i┆ 0x0a2ee0…0a2f00 6f 66 3a 09 64 62 09 72 65 61 64 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 2c 20 69 6e 69 74 69 ┆of: db readf ;io function, initi┆ 0x0a2f00…0a2f20 61 6c 20 72 65 61 64 0d 0a 69 6f 6e 3a 09 64 62 09 31 09 3b 6e 75 6d 62 65 72 20 6f 66 20 73 65 ┆al read ion: db 1 ;number of se┆ 0x0a2f20…0a2f40 63 74 6f 72 73 20 74 6f 20 72 65 61 64 0d 0a 69 6f 74 3a 09 64 62 09 6f 66 66 73 65 74 09 3b 74 ┆ctors to read iot: db offset ;t┆ 0x0a2f40…0a2f60 72 61 63 6b 20 6e 75 6d 62 65 72 0d 0a 69 6f 73 3a 09 64 62 09 31 09 3b 73 65 63 74 6f 72 20 6e ┆rack number ios: db 1 ;sector n┆ 0x0a2f60…0a2f80 75 6d 62 65 72 0d 0a 69 6f 64 3a 09 64 77 09 62 75 66 66 09 3b 69 6f 20 61 64 64 72 65 73 73 0d ┆umber iod: dw buff ;io address ┆ 0x0a2f80…0a2fa0 0a 3b 0d 0a 3b 0d 0a 3b 09 64 65 66 69 6e 65 20 72 61 6d 20 61 72 65 61 73 20 66 6f 72 20 62 64 ┆ ; ; ; define ram areas for bd┆ 0x0a2fa0…0a2fc0 6f 73 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 09 65 6e 64 65 66 0d 0a 09 65 6e 64 0d 0a 3b 09 4d 44 ┆os operation endef end ; MD┆ 0x0a2fc0…0a2fe0 53 2d 38 30 30 20 49 2f 4f 20 44 72 69 76 65 72 73 20 66 6f 72 20 43 50 2f 4d 20 32 2e 32 0d 0a ┆S-800 I/O Drivers for CP/M 2.2 ┆ 0x0a2fe0…0a3000 3b 09 28 66 6f 75 72 20 64 72 69 76 65 20 73 69 6e 67 6c 65 20 64 65 6e 73 69 74 79 20 76 65 72 ┆; (four drive single density ver┆ 0x0a3000…0a3020 (43, 0, 15) 65 0d 0a 3b 09 73 65 74 73 65 63 09 73 65 74 20 73 65 63 74 6f 72 20 61 64 64 72 65 73 73 20 28 ┆e ; setsec set sector address (┆ 0x0a3020…0a3040 31 2c 2e 2e 2e 2c 32 36 29 20 66 6f 72 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 2f 77 72 ┆1,...,26) for subsequent read/wr┆ 0x0a3040…0a3060 69 74 65 0d 0a 3b 09 73 65 74 64 6d 61 09 73 65 74 20 73 75 62 73 65 71 75 65 6e 74 20 64 6d 61 ┆ite ; setdma set subsequent dma┆ 0x0a3060…0a3080 20 61 64 64 72 65 73 73 20 28 69 6e 69 74 69 61 6c 6c 79 20 38 30 68 29 0d 0a 3b 0d 0a 3b 09 28 ┆ address (initially 80h) ; ; (┆ 0x0a3080…0a30a0 72 65 61 64 20 61 6e 64 20 77 72 69 74 65 20 61 73 73 75 6d 65 20 70 72 65 76 69 6f 75 73 20 63 ┆read and write assume previous c┆ 0x0a30a0…0a30c0 61 6c 6c 73 20 74 6f 20 73 65 74 20 75 70 20 74 68 65 20 69 6f 20 70 61 72 61 6d 65 74 65 72 73 ┆alls to set up the io parameters┆ 0x0a30c0…0a30e0 29 0d 0a 3b 09 72 65 61 64 09 72 65 61 64 20 74 72 61 63 6b 2f 73 65 63 74 6f 72 20 74 6f 20 70 ┆) ; read read track/sector to p┆ 0x0a30e0…0a3100 72 65 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 3b 09 77 72 69 74 65 09 77 72 69 74 65 ┆reset dma address ; write write┆ 0x0a3100…0a3120 20 74 72 61 63 6b 2f 73 65 63 74 6f 72 20 66 72 6f 6d 20 70 72 65 73 65 74 20 64 6d 61 20 61 64 ┆ track/sector from preset dma ad┆ 0x0a3120…0a3140 64 72 65 73 73 0d 0a 3b 0d 0a 3b 09 6a 75 6d 70 20 76 65 63 74 6f 72 20 66 6f 72 20 69 6e 64 69 ┆dress ; ; jump vector for indi┆ 0x0a3140…0a3160 76 69 75 61 6c 20 72 6f 75 74 69 6e 65 73 0d 0a 09 6a 6d 70 09 62 6f 6f 74 0d 0a 77 62 6f 6f 74 ┆viual routines jmp boot wboot┆ 0x0a3160…0a3180 65 3a 09 6a 6d 70 09 77 62 6f 6f 74 0d 0a 09 6a 6d 70 09 63 6f 6e 73 74 0d 0a 09 6a 6d 70 09 63 ┆e: jmp wboot jmp const jmp c┆ 0x0a3180…0a31a0 6f 6e 69 6e 0d 0a 09 6a 6d 70 09 63 6f 6e 6f 75 74 0d 0a 09 6a 6d 70 09 6c 69 73 74 0d 0a 09 6a ┆onin jmp conout jmp list j┆ 0x0a31a0…0a31c0 6d 70 09 70 75 6e 63 68 0d 0a 09 6a 6d 70 09 72 65 61 64 65 72 0d 0a 09 6a 6d 70 09 68 6f 6d 65 ┆mp punch jmp reader jmp home┆ 0x0a31c0…0a31e0 0d 0a 09 6a 6d 70 09 73 65 6c 64 73 6b 0d 0a 09 6a 6d 70 09 73 65 74 74 72 6b 0d 0a 09 6a 6d 70 ┆ jmp seldsk jmp settrk jmp┆ 0x0a31e0…0a3200 09 73 65 74 73 65 63 0d 0a 09 6a 6d 70 09 73 65 74 64 6d 61 0d 0a 09 6a 6d 70 09 72 65 61 64 0d ┆ setsec jmp setdma jmp read ┆ 0x0a3200…0a3220 (43, 1, 1) 65 63 61 6c 69 62 72 61 74 65 20 64 72 69 76 65 0d 0a 69 6f 72 64 79 09 65 71 75 09 34 68 09 3b ┆ecalibrate drive iordy equ 4h ;┆ 0x0a3220…0a3240 69 2f 6f 20 66 69 6e 69 73 68 65 64 20 6d 61 73 6b 0d 0a 63 72 09 65 71 75 09 30 64 68 09 3b 63 ┆i/o finished mask cr equ 0dh ;c┆ 0x0a3240…0a3260 61 72 72 69 61 67 65 20 72 65 74 75 72 6e 0d 0a 6c 66 09 65 71 75 09 30 61 68 09 3b 6c 69 6e 65 ┆arriage return lf equ 0ah ;line┆ 0x0a3260…0a3280 20 66 65 65 64 0d 0a 3b 0d 0a 73 69 67 6e 6f 6e 3a 09 3b 73 69 67 6e 6f 6e 20 6d 65 73 73 61 67 ┆ feed ; signon: ;signon messag┆ 0x0a3280…0a32a0 65 3a 20 78 78 6b 20 63 70 2f 6d 20 76 65 72 73 20 79 2e 79 0d 0a 09 64 62 09 63 72 2c 6c 66 2c ┆e: xxk cp/m vers y.y db cr,lf,┆ 0x0a32a0…0a32c0 6c 66 0d 0a 09 69 66 09 74 65 73 74 0d 0a 09 64 62 09 27 33 32 27 09 3b 33 32 6b 20 65 78 61 6d ┆lf if test db '32' ;32k exam┆ 0x0a32c0…0a32e0 70 6c 65 20 62 69 6f 73 0d 0a 09 65 6e 64 69 66 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a ┆ple bios endif if not test ┆ 0x0a32e0…0a3300 09 64 62 09 27 30 30 27 09 3b 6d 65 6d 6f 72 79 20 73 69 7a 65 20 66 69 6c 6c 65 64 20 62 79 20 ┆ db '00' ;memory size filled by ┆ 0x0a3300…0a3320 72 65 6c 6f 63 61 74 6f 72 0d 0a 09 65 6e 64 69 66 0d 0a 09 64 62 09 27 6b 20 43 50 2f 4d 20 76 ┆relocator endif db 'k CP/M v┆ 0x0a3320…0a3340 65 72 73 20 27 0d 0a 09 64 62 09 76 65 72 73 2f 31 30 2b 27 30 27 2c 27 2e 27 2c 76 65 72 73 20 ┆ers ' db vers/10+'0','.',vers ┆ 0x0a3340…0a3360 6d 6f 64 20 31 30 2b 27 30 27 0d 0a 09 64 62 09 63 72 2c 6c 66 2c 30 0d 0a 3b 0d 0a 62 6f 6f 74 ┆mod 10+'0' db cr,lf,0 ; boot┆ 0x0a3360…0a3380 3a 09 3b 70 72 69 6e 74 20 73 69 67 6e 6f 6e 20 6d 65 73 73 61 67 65 20 61 6e 64 20 67 6f 20 74 ┆: ;print signon message and go t┆ 0x0a3380…0a33a0 6f 20 63 63 70 0d 0a 3b 09 28 6e 6f 74 65 3a 20 6d 64 73 20 62 6f 6f 74 20 69 6e 69 74 69 61 6c ┆o ccp ; (note: mds boot initial┆ 0x0a33a0…0a33c0 69 7a 65 64 20 69 6f 62 79 74 65 20 61 74 20 30 30 30 33 68 29 0d 0a 09 6c 78 69 09 73 70 2c 62 ┆ized iobyte at 0003h) lxi sp,b┆ 0x0a33c0…0a33e0 75 66 66 2b 38 30 68 0d 0a 09 6c 78 69 09 68 2c 73 69 67 6e 6f 6e 0d 0a 09 63 61 6c 6c 09 70 72 ┆uff+80h lxi h,signon call pr┆ 0x0a33e0…0a3400 6d 73 67 09 3b 70 72 69 6e 74 20 6d 65 73 73 61 67 65 0d 0a 09 78 72 61 09 61 09 3b 63 6c 65 61 ┆msg ;print message xra a ;clea┆ 0x0a3400…0a3420 (43, 1, 2) 69 6e 74 65 72 72 75 70 74 20 63 6f 6e 74 72 6f 6c 0d 0a 3b 0d 0a 3b 09 73 65 74 20 64 65 66 61 ┆interrupt control ; ; set defa┆ 0x0a3420…0a3440 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 20 74 6f 20 38 30 68 0d 0a 09 6c 78 69 09 ┆ult buffer address to 80h lxi ┆ 0x0a3440…0a3460 62 2c 62 75 66 66 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 3b 0d 0a 3b 09 72 65 73 65 74 ┆b,buff call setdma ; ; reset┆ 0x0a3460…0a3480 20 6d 6f 6e 69 74 6f 72 20 65 6e 74 72 79 20 70 6f 69 6e 74 73 0d 0a 09 6d 76 69 09 61 2c 6a 6d ┆ monitor entry points mvi a,jm┆ 0x0a3480…0a34a0 70 0d 0a 09 73 74 61 09 30 0d 0a 09 6c 78 69 09 68 2c 77 62 6f 6f 74 65 0d 0a 09 73 68 6c 64 09 ┆p sta 0 lxi h,wboote shld ┆ 0x0a34a0…0a34c0 31 09 3b 6a 6d 70 20 77 62 6f 6f 74 20 61 74 20 6c 6f 63 61 74 69 6f 6e 20 30 30 0d 0a 09 73 74 ┆1 ;jmp wboot at location 00 st┆ 0x0a34c0…0a34e0 61 09 35 0d 0a 09 6c 78 69 09 68 2c 62 64 6f 73 0d 0a 09 73 68 6c 64 09 36 09 3b 6a 6d 70 20 62 ┆a 5 lxi h,bdos shld 6 ;jmp b┆ 0x0a34e0…0a3500 64 6f 73 20 61 74 20 6c 6f 63 61 74 69 6f 6e 20 35 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d ┆dos at location 5 if not test ┆ 0x0a3500…0a3520 0a 09 73 74 61 09 37 2a 38 09 3b 6a 6d 70 20 74 6f 20 6d 6f 6e 38 30 20 28 6d 61 79 20 68 61 76 ┆ sta 7*8 ;jmp to mon80 (may hav┆ 0x0a3520…0a3540 65 20 62 65 65 6e 20 63 68 61 6e 67 65 64 20 62 79 20 64 64 74 29 0d 0a 09 6c 78 69 09 68 2c 6d ┆e been changed by ddt) lxi h,m┆ 0x0a3540…0a3560 6f 6e 38 30 0d 0a 09 73 68 6c 64 09 37 2a 38 2b 31 0d 0a 09 65 6e 64 69 66 0d 0a 3b 09 6c 65 61 ┆on80 shld 7*8+1 endif ; lea┆ 0x0a3560…0a3580 76 65 20 69 6f 62 79 74 65 20 73 65 74 0d 0a 3b 09 70 72 65 76 69 6f 75 73 6c 79 20 73 65 6c 65 ┆ve iobyte set ; previously sele┆ 0x0a3580…0a35a0 63 74 65 64 20 64 69 73 6b 20 77 61 73 20 62 2c 20 73 65 6e 64 20 70 61 72 61 6d 65 74 65 72 20 ┆cted disk was b, send parameter ┆ 0x0a35a0…0a35c0 74 6f 20 63 70 6d 0d 0a 09 6c 64 61 09 63 64 69 73 6b 09 3b 6c 61 73 74 20 6c 6f 67 67 65 64 20 ┆to cpm lda cdisk ;last logged ┆ 0x0a35c0…0a35e0 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 73 65 6e 64 20 74 6f 20 63 ┆disk number mov c,a ;send to c┆ 0x0a35e0…0a3600 63 70 20 74 6f 20 6c 6f 67 20 69 74 20 69 6e 0d 0a 09 65 69 0d 0a 09 6a 6d 70 09 63 70 6d 62 0d ┆cp to log it in ei jmp cpmb ┆ 0x0a3600…0a3620 (43, 1, 3) 61 64 09 64 09 3b 48 4c 3d 64 69 73 6b 20 68 65 61 64 65 72 20 74 61 62 6c 65 20 61 64 64 72 65 ┆ad d ;HL=disk header table addre┆ 0x0a3620…0a3640 73 73 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 73 65 74 74 72 6b 3a 09 3b 73 65 74 20 74 72 61 ┆ss ret ; ; settrk: ;set tra┆ 0x0a3640…0a3660 63 6b 20 61 64 64 72 65 73 73 20 67 69 76 65 6e 20 62 79 20 63 0d 0a 09 6c 78 69 09 68 2c 69 6f ┆ck address given by c lxi h,io┆ 0x0a3660…0a3680 74 0d 0a 09 6d 6f 76 09 6d 2c 63 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 73 65 74 73 65 63 3a 09 3b 73 ┆t mov m,c ret ; setsec: ;s┆ 0x0a3680…0a36a0 65 74 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 67 69 76 65 6e 20 62 79 20 63 0d 0a 09 6c 78 ┆et sector number given by c lx┆ 0x0a36a0…0a36c0 69 09 68 2c 69 6f 73 0d 0a 09 6d 6f 76 09 6d 2c 63 0d 0a 09 72 65 74 0d 0a 73 65 63 74 72 61 6e ┆i h,ios mov m,c ret sectran┆ 0x0a36c0…0a36e0 3a 0d 0a 09 09 3b 74 72 61 6e 73 6c 61 74 65 20 73 65 63 74 6f 72 20 62 63 20 75 73 69 6e 67 20 ┆: ;translate sector bc using ┆ 0x0a36e0…0a3700 74 61 62 6c 65 20 61 74 20 64 65 0d 0a 09 6d 76 69 09 62 2c 30 09 3b 64 6f 75 62 6c 65 20 70 72 ┆table at de mvi b,0 ;double pr┆ 0x0a3700…0a3720 65 63 69 73 69 6f 6e 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 69 6e 20 42 43 0d 0a 09 78 63 ┆ecision sector number in BC xc┆ 0x0a3720…0a3740 68 67 09 09 3b 74 72 61 6e 73 6c 61 74 65 20 74 61 62 6c 65 20 61 64 64 72 65 73 73 20 74 6f 20 ┆hg ;translate table address to ┆ 0x0a3740…0a3760 48 4c 0d 0a 09 64 61 64 09 62 09 3b 74 72 61 6e 73 6c 61 74 65 28 73 65 63 74 6f 72 29 20 61 64 ┆HL dad b ;translate(sector) ad┆ 0x0a3760…0a3780 64 72 65 73 73 0d 0a 09 6d 6f 76 09 61 2c 6d 09 3b 74 72 61 6e 73 6c 61 74 65 64 20 73 65 63 74 ┆dress mov a,m ;translated sect┆ 0x0a3780…0a37a0 6f 72 20 6e 75 6d 62 65 72 20 74 6f 20 41 0d 0a 09 73 74 61 09 69 6f 73 0d 0a 09 6d 6f 76 09 6c ┆or number to A sta ios mov l┆ 0x0a37a0…0a37c0 2c 61 09 3b 72 65 74 75 72 6e 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 69 6e 20 4c 0d 0a 09 ┆,a ;return sector number in L ┆ 0x0a37c0…0a37e0 72 65 74 0d 0a 3b 0d 0a 73 65 74 64 6d 61 3a 09 3b 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 ┆ret ; setdma: ;set dma address┆ 0x0a37e0…0a3800 20 67 69 76 65 6e 20 62 79 20 72 65 67 73 20 62 2c 63 0d 0a 09 6d 6f 76 09 6c 2c 63 0d 0a 09 6d ┆ given by regs b,c mov l,c m┆ 0x0a3800…0a3820 (43, 1, 4) 30 68 09 3b 38 38 20 66 6f 72 20 64 72 69 76 65 20 62 61 6e 6b 20 31 30 0d 0a 09 6d 6f 76 09 61 ┆0h ;88 for drive bank 10 mov a┆ 0x0a3820…0a3840 2c 62 0d 0a 09 6f 75 74 09 69 68 69 67 68 2b 31 30 68 0d 0a 3b 0d 0a 77 61 69 74 30 3a 09 63 61 ┆,b out ihigh+10h ; wait0: ca┆ 0x0a3840…0a3860 6c 6c 09 69 6e 73 74 61 74 09 09 3b 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 0d ┆ll instat ;wait for completion ┆ 0x0a3860…0a3880 0a 09 61 6e 69 09 69 6f 72 64 79 09 09 3b 72 65 61 64 79 3f 0d 0a 09 6a 7a 09 77 61 69 74 30 0d ┆ ani iordy ;ready? jz wait0 ┆ 0x0a3880…0a38a0 0a 3b 0d 0a 3b 09 63 68 65 63 6b 20 69 6f 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 6f 6b 0d 0a 09 63 ┆ ; ; check io completion ok c┆ 0x0a38a0…0a38c0 61 6c 6c 09 69 6e 74 79 70 65 09 09 3b 6d 75 73 74 20 62 65 20 69 6f 20 63 6f 6d 70 6c 65 74 65 ┆all intype ;must be io complete┆ 0x0a38c0…0a38e0 20 28 30 30 29 20 75 6e 6c 69 6e 6b 65 64 0d 0a 3b 09 30 30 20 75 6e 6c 69 6e 6b 65 64 20 69 2f ┆ (00) unlinked ; 00 unlinked i/┆ 0x0a38e0…0a3900 6f 20 63 6f 6d 70 6c 65 74 65 2c 20 20 20 20 30 31 20 6c 69 6e 6b 65 64 20 69 2f 6f 20 63 6f 6d ┆o complete, 01 linked i/o com┆ 0x0a3900…0a3920 70 6c 65 74 65 20 28 6e 6f 74 20 75 73 65 64 29 0d 0a 3b 09 31 30 20 64 69 73 6b 20 73 74 61 74 ┆plete (not used) ; 10 disk stat┆ 0x0a3920…0a3940 75 73 20 63 68 61 6e 67 65 64 20 20 20 20 20 20 20 31 31 20 28 6e 6f 74 20 75 73 65 64 29 0d 0a ┆us changed 11 (not used) ┆ 0x0a3940…0a3960 09 63 70 69 09 31 30 62 09 09 3b 72 65 61 64 79 20 73 74 61 74 75 73 20 63 68 61 6e 67 65 3f 0d ┆ cpi 10b ;ready status change? ┆ 0x0a3960…0a3980 0a 09 6a 7a 09 77 72 65 61 64 79 0d 0a 3b 0d 0a 3b 09 6d 75 73 74 20 62 65 20 30 30 20 69 6e 20 ┆ jz wready ; ; must be 00 in ┆ 0x0a3980…0a39a0 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 77 65 ┆the accumulator ora a jnz we┆ 0x0a39a0…0a39c0 72 72 6f 72 09 09 3b 73 6f 6d 65 20 6f 74 68 65 72 20 63 6f 6e 64 69 74 69 6f 6e 2c 20 72 65 74 ┆rror ;some other condition, ret┆ 0x0a39c0…0a39e0 72 79 0d 0a 3b 0d 0a 3b 09 63 68 65 63 6b 20 69 2f 6f 20 65 72 72 6f 72 20 62 69 74 73 0d 0a 09 ┆ry ; ; check i/o error bits ┆ 0x0a39e0…0a3a00 63 61 6c 6c 09 69 6e 62 79 74 65 0d 0a 09 72 61 6c 0d 0a 09 6a 63 09 77 72 65 61 64 79 09 09 3b ┆call inbyte ral jc wready ;┆ 0x0a3a00…0a3a20 (43, 1, 5) 72 20 61 63 63 75 6d 75 6c 61 74 6f 72 0d 0a 09 73 74 61 09 63 64 69 73 6b 09 3b 73 65 74 20 69 ┆r accumulator sta cdisk ;set i┆ 0x0a3a20…0a3a40 6e 69 74 69 61 6c 6c 79 20 74 6f 20 64 69 73 6b 20 61 0d 0a 09 6a 6d 70 09 67 6f 63 70 6d 09 3b ┆nitially to disk a jmp gocpm ;┆ 0x0a3a40…0a3a60 67 6f 20 74 6f 20 63 70 2f 6d 0d 0a 3b 0d 0a 3b 0d 0a 77 62 6f 6f 74 3a 3b 09 6c 6f 61 64 65 72 ┆go to cp/m ; ; wboot:; loader┆ 0x0a3a60…0a3a80 20 6f 6e 20 74 72 61 63 6b 20 30 2c 20 73 65 63 74 6f 72 20 31 2c 20 77 68 69 63 68 20 77 69 6c ┆ on track 0, sector 1, which wil┆ 0x0a3a80…0a3aa0 6c 20 62 65 20 73 6b 69 70 70 65 64 20 66 6f 72 20 77 61 72 6d 20 0d 0a 3b 09 72 65 61 64 20 63 ┆l be skipped for warm ; read c┆ 0x0a3aa0…0a3ac0 70 2f 6d 20 66 72 6f 6d 20 64 69 73 6b 20 2d 20 61 73 73 75 6d 69 6e 67 20 74 68 65 72 65 20 69 ┆p/m from disk - assuming there i┆ 0x0a3ac0…0a3ae0 73 20 61 20 31 32 38 20 62 79 74 65 20 63 6f 6c 64 20 73 74 61 72 74 0d 0a 3b 09 73 74 61 72 74 ┆s a 128 byte cold start ; start┆ 0x0a3ae0…0a3b00 2e 0d 0a 3b 0d 0a 09 6c 78 69 09 73 70 2c 62 75 66 66 09 3b 75 73 69 6e 67 20 64 6d 61 20 2d 20 ┆. ; lxi sp,buff ;using dma - ┆ 0x0a3b00…0a3b20 74 68 75 73 20 38 30 20 74 68 72 75 20 66 66 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 73 74 ┆thus 80 thru ff available for st┆ 0x0a3b20…0a3b40 61 63 6b 0d 0a 3b 0d 0a 09 6d 76 69 09 63 2c 72 65 74 72 79 09 3b 6d 61 78 20 72 65 74 72 69 65 ┆ack ; mvi c,retry ;max retrie┆ 0x0a3b40…0a3b60 73 0d 0a 09 70 75 73 68 09 62 0d 0a 77 62 6f 6f 74 30 3a 09 3b 65 6e 74 65 72 20 68 65 72 65 20 ┆s push b wboot0: ;enter here ┆ 0x0a3b60…0a3b80 6f 6e 20 65 72 72 6f 72 20 72 65 74 72 69 65 73 0d 0a 09 6c 78 69 09 62 2c 63 70 6d 62 09 3b 73 ┆on error retries lxi b,cpmb ;s┆ 0x0a3b80…0a3ba0 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 74 6f 20 73 74 61 72 74 20 6f 66 20 64 69 73 6b 20 ┆et dma address to start of disk ┆ 0x0a3ba0…0a3bc0 73 79 73 74 65 6d 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 09 6d 76 69 09 63 2c 30 09 3b ┆system call setdma mvi c,0 ;┆ 0x0a3bc0…0a3be0 62 6f 6f 74 20 66 72 6f 6d 20 64 72 69 76 65 20 30 0d 0a 09 63 61 6c 6c 09 73 65 6c 64 73 6b 0d ┆boot from drive 0 call seldsk ┆ 0x0a3be0…0a3c00 0a 09 6d 76 69 09 63 2c 30 0d 0a 09 63 61 6c 6c 09 73 65 74 74 72 6b 09 3b 73 74 61 72 74 20 77 ┆ mvi c,0 call settrk ;start w┆ 0x0a3c00…0a3c20 (43, 1, 6) 0a 3b 0d 0a 3b 09 65 72 72 6f 72 20 63 6f 6e 64 69 74 69 6f 6e 20 6f 63 63 75 72 72 65 64 2c 20 ┆ ; ; error condition occurred, ┆ 0x0a3c20…0a3c40 70 72 69 6e 74 20 6d 65 73 73 61 67 65 20 61 6e 64 20 72 65 74 72 79 0d 0a 62 6f 6f 74 65 72 72 ┆print message and retry booterr┆ 0x0a3c40…0a3c60 3a 0d 0a 09 70 6f 70 09 62 09 3b 72 65 63 61 6c 6c 20 63 6f 75 6e 74 73 0d 0a 09 64 63 72 09 63 ┆: pop b ;recall counts dcr c┆ 0x0a3c60…0a3c80 0d 0a 09 6a 7a 09 62 6f 6f 74 65 72 30 0d 0a 3b 09 74 72 79 20 61 67 61 69 6e 0d 0a 09 70 75 73 ┆ jz booter0 ; try again pus┆ 0x0a3c80…0a3ca0 68 09 62 0d 0a 09 6a 6d 70 09 77 62 6f 6f 74 30 0d 0a 3b 0d 0a 62 6f 6f 74 65 72 30 3a 0d 0a 3b ┆h b jmp wboot0 ; booter0: ;┆ 0x0a3ca0…0a3cc0 09 6f 74 68 65 72 77 69 73 65 20 74 6f 6f 20 6d 61 6e 79 20 72 65 74 72 69 65 73 0d 0a 09 6c 78 ┆ otherwise too many retries lx┆ 0x0a3cc0…0a3ce0 69 09 68 2c 62 6f 6f 74 6d 73 67 0d 0a 09 63 61 6c 6c 09 70 72 6d 73 67 0d 0a 09 6a 6d 70 09 72 ┆i h,bootmsg call prmsg jmp r┆ 0x0a3ce0…0a3d00 6d 6f 6e 38 30 09 3b 6d 64 73 20 68 61 72 64 77 61 72 65 20 6d 6f 6e 69 74 6f 72 0d 0a 3b 0d 0a ┆mon80 ;mds hardware monitor ; ┆ 0x0a3d00…0a3d20 62 6f 6f 74 6d 73 67 3a 0d 0a 09 64 62 09 27 3f 62 6f 6f 74 27 2c 30 0d 0a 3b 0d 0a 3b 0d 0a 63 ┆bootmsg: db '?boot',0 ; ; c┆ 0x0a3d20…0a3d40 6f 6e 73 74 3a 09 3b 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 20 74 6f 20 72 65 67 2d 61 0d 0a ┆onst: ;console status to reg-a ┆ 0x0a3d40…0a3d60 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 ┆; (exactly the same as mds call)┆ 0x0a3d60…0a3d80 0d 0a 09 6a 6d 70 09 63 73 74 73 0d 0a 3b 0d 0a 63 6f 6e 69 6e 3a 09 3b 63 6f 6e 73 6f 6c 65 20 ┆ jmp csts ; conin: ;console ┆ 0x0a3d80…0a3da0 63 68 61 72 61 63 74 65 72 20 74 6f 20 72 65 67 2d 61 0d 0a 09 63 61 6c 6c 09 63 69 0d 0a 09 61 ┆character to reg-a call ci a┆ 0x0a3da0…0a3dc0 6e 69 09 37 66 68 09 3b 72 65 6d 6f 76 65 20 70 61 72 69 74 79 20 62 69 74 0d 0a 09 72 65 74 0d ┆ni 7fh ;remove parity bit ret ┆ 0x0a3dc0…0a3de0 0a 3b 0d 0a 63 6f 6e 6f 75 74 3a 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 66 ┆ ; conout: ;console character f┆ 0x0a3de0…0a3e00 72 6f 6d 20 63 20 74 6f 20 63 6f 6e 73 6f 6c 65 20 6f 75 74 0d 0a 09 6a 6d 70 09 63 6f 0d 0a 3b ┆rom c to console out jmp co ;┆ 0x0a3e00…0a3e20 (43, 1, 7) 6f 76 09 68 2c 62 0d 0a 09 73 68 6c 64 09 69 6f 64 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 72 65 61 64 ┆ov h,b shld iod ret ; read┆ 0x0a3e20…0a3e40 3a 09 3b 72 65 61 64 20 6e 65 78 74 20 64 69 73 6b 20 72 65 63 6f 72 64 20 28 61 73 73 75 6d 69 ┆: ;read next disk record (assumi┆ 0x0a3e40…0a3e60 6e 67 20 64 69 73 6b 2f 74 72 6b 2f 73 65 63 2f 64 6d 61 20 73 65 74 29 0d 0a 09 6d 76 69 09 63 ┆ng disk/trk/sec/dma set) mvi c┆ 0x0a3e60…0a3e80 2c 72 65 61 64 66 09 3b 73 65 74 20 74 6f 20 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 63 ┆,readf ;set to read function c┆ 0x0a3e80…0a3ea0 61 6c 6c 09 73 65 74 66 75 6e 63 0d 0a 09 63 61 6c 6c 09 77 61 69 74 69 6f 09 3b 70 65 72 66 6f ┆all setfunc call waitio ;perfo┆ 0x0a3ea0…0a3ec0 72 6d 20 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 72 65 74 09 09 3b 6d 61 79 20 68 61 76 ┆rm read function ret ;may hav┆ 0x0a3ec0…0a3ee0 65 20 65 72 72 6f 72 20 73 65 74 20 69 6e 20 72 65 67 2d 61 0d 0a 3b 0d 0a 3b 0d 0a 77 72 69 74 ┆e error set in reg-a ; ; writ┆ 0x0a3ee0…0a3f00 65 3a 09 3b 64 69 73 6b 20 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6d 76 69 09 63 2c ┆e: ;disk write function mvi c,┆ 0x0a3f00…0a3f20 77 72 69 74 66 0d 0a 09 63 61 6c 6c 09 73 65 74 66 75 6e 63 09 3b 73 65 74 20 74 6f 20 77 72 69 ┆writf call setfunc ;set to wri┆ 0x0a3f20…0a3f40 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 77 61 69 74 69 6f 0d 0a 09 72 65 74 09 ┆te function call waitio ret ┆ 0x0a3f40…0a3f60 09 3b 6d 61 79 20 68 61 76 65 20 65 72 72 6f 72 20 73 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 75 74 ┆ ;may have error set ; ; ; ut┆ 0x0a3f60…0a3f80 69 6c 69 74 79 20 73 75 62 72 6f 75 74 69 6e 65 73 0d 0a 70 72 6d 73 67 3a 09 3b 70 72 69 6e 74 ┆ility subroutines prmsg: ;print┆ 0x0a3f80…0a3fa0 20 6d 65 73 73 61 67 65 20 61 74 20 68 2c 6c 20 74 6f 20 30 0d 0a 09 6d 6f 76 09 61 2c 6d 0d 0a ┆ message at h,l to 0 mov a,m ┆ 0x0a3fa0…0a3fc0 09 6f 72 61 09 61 09 3b 7a 65 72 6f 3f 0d 0a 09 72 7a 0d 0a 3b 09 6d 6f 72 65 20 74 6f 20 70 72 ┆ ora a ;zero? rz ; more to pr┆ 0x0a3fc0…0a3fe0 69 6e 74 0d 0a 09 70 75 73 68 09 68 0d 0a 09 6d 6f 76 09 63 2c 61 0d 0a 09 63 61 6c 6c 09 63 6f ┆int push h mov c,a call co┆ 0x0a3fe0…0a4000 6e 6f 75 74 0d 0a 09 70 6f 70 09 68 0d 0a 09 69 6e 78 09 68 0d 0a 09 6a 6d 70 09 70 72 6d 73 67 ┆nout pop h inx h jmp prmsg┆ 0x0a4000…0a4020 (43, 1, 8) 75 6e 69 74 20 6e 6f 74 20 72 65 61 64 79 0d 0a 09 72 61 72 0d 0a 09 61 6e 69 09 31 31 31 31 31 ┆unit not ready rar ani 11111┆ 0x0a4020…0a4040 31 31 30 62 09 3b 61 6e 79 20 6f 74 68 65 72 20 65 72 72 6f 72 73 3f 20 20 28 64 65 6c 65 74 65 ┆110b ;any other errors? (delete┆ 0x0a4040…0a4060 64 20 64 61 74 61 20 6f 6b 29 0d 0a 09 6a 6e 7a 09 77 65 72 72 6f 72 0d 0a 3b 0d 0a 3b 09 72 65 ┆d data ok) jnz werror ; ; re┆ 0x0a4060…0a4080 61 64 20 6f 72 20 77 72 69 74 65 20 69 73 20 6f 6b 2c 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 63 ┆ad or write is ok, accumulator c┆ 0x0a4080…0a40a0 6f 6e 74 61 69 6e 73 20 7a 65 72 6f 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 77 72 65 61 64 79 3a 09 3b ┆ontains zero ret ; wready: ;┆ 0x0a40a0…0a40c0 6e 6f 74 20 72 65 61 64 79 2c 20 74 72 65 61 74 20 61 73 20 65 72 72 6f 72 20 66 6f 72 20 6e 6f ┆not ready, treat as error for no┆ 0x0a40c0…0a40e0 77 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 09 09 3b 63 6c 65 61 72 20 72 65 73 75 6c 74 20 62 ┆w call inbyte ;clear result b┆ 0x0a40e0…0a4100 79 74 65 0d 0a 09 6a 6d 70 09 74 72 79 63 6f 75 6e 74 0d 0a 3b 0d 0a 77 65 72 72 6f 72 3a 09 3b ┆yte jmp trycount ; werror: ;┆ 0x0a4100…0a4120 72 65 74 75 72 6e 20 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 20 28 63 72 63 ┆return hardware malfunction (crc┆ 0x0a4120…0a4140 2c 20 74 72 61 63 6b 2c 20 73 65 65 6b 2c 20 65 74 63 2e 29 0d 0a 3b 09 74 68 65 20 6d 64 73 20 ┆, track, seek, etc.) ; the mds ┆ 0x0a4140…0a4160 63 6f 6e 74 72 6f 6c 6c 65 72 20 68 61 73 20 72 65 74 75 72 6e 65 64 20 61 20 62 69 74 20 69 6e ┆controller has returned a bit in┆ 0x0a4160…0a4180 20 65 61 63 68 20 70 6f 73 69 74 69 6f 6e 0d 0a 3b 09 6f 66 20 74 68 65 20 61 63 63 75 6d 75 6c ┆ each position ; of the accumul┆ 0x0a4180…0a41a0 61 74 6f 72 2c 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 74 68 65 20 63 6f 6e 64 69 ┆ator, corresponding to the condi┆ 0x0a41a0…0a41c0 74 69 6f 6e 73 3a 0d 0a 3b 09 30 09 2d 20 64 65 6c 65 74 65 64 20 64 61 74 61 20 28 61 63 63 65 ┆tions: ; 0 - deleted data (acce┆ 0x0a41c0…0a41e0 70 74 65 64 20 61 73 20 6f 6b 20 61 62 6f 76 65 29 0d 0a 3b 09 31 09 2d 20 63 72 63 20 65 72 72 ┆pted as ok above) ; 1 - crc err┆ 0x0a41e0…0a4200 6f 72 0d 0a 3b 09 32 09 2d 20 73 65 65 6b 20 65 72 72 6f 72 0d 0a 3b 09 33 09 2d 20 61 64 64 72 ┆or ; 2 - seek error ; 3 - addr┆ 0x0a4200…0a4220 (43, 1, 9) 69 74 68 20 74 72 61 63 6b 20 30 0d 0a 09 6d 76 69 09 63 2c 32 09 3b 73 74 61 72 74 20 72 65 61 ┆ith track 0 mvi c,2 ;start rea┆ 0x0a4220…0a4240 64 69 6e 67 20 73 65 63 74 6f 72 20 32 0d 0a 09 63 61 6c 6c 09 73 65 74 73 65 63 0d 0a 3b 0d 0a ┆ding sector 2 call setsec ; ┆ 0x0a4240…0a4260 3b 09 72 65 61 64 20 73 65 63 74 6f 72 73 2c 20 63 6f 75 6e 74 20 6e 73 65 63 74 73 20 74 6f 20 ┆; read sectors, count nsects to ┆ 0x0a4260…0a4280 7a 65 72 6f 0d 0a 09 70 6f 70 09 62 09 3b 31 30 2d 65 72 72 6f 72 20 63 6f 75 6e 74 0d 0a 09 6d ┆zero pop b ;10-error count m┆ 0x0a4280…0a42a0 76 69 09 62 2c 6e 73 65 63 74 73 0d 0a 72 64 73 65 63 3a 09 3b 72 65 61 64 20 6e 65 78 74 20 73 ┆vi b,nsects rdsec: ;read next s┆ 0x0a42a0…0a42c0 65 63 74 6f 72 0d 0a 09 70 75 73 68 09 62 09 3b 73 61 76 65 20 73 65 63 74 6f 72 20 63 6f 75 6e ┆ector push b ;save sector coun┆ 0x0a42c0…0a42e0 74 0d 0a 09 63 61 6c 6c 09 72 65 61 64 0d 0a 09 6a 6e 7a 09 62 6f 6f 74 65 72 72 09 3b 72 65 74 ┆t call read jnz booterr ;ret┆ 0x0a42e0…0a4300 72 79 20 69 66 20 65 72 72 6f 72 73 20 6f 63 63 75 72 0d 0a 09 6c 68 6c 64 09 69 6f 64 09 3b 69 ┆ry if errors occur lhld iod ;i┆ 0x0a4300…0a4320 6e 63 72 65 6d 65 6e 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 09 6c 78 69 09 64 2c 31 32 38 ┆ncrement dma address lxi d,128┆ 0x0a4320…0a4340 09 3b 73 65 63 74 6f 72 20 73 69 7a 65 0d 0a 09 64 61 64 09 64 09 3b 69 6e 63 72 65 6d 65 6e 74 ┆ ;sector size dad d ;increment┆ 0x0a4340…0a4360 65 64 20 64 6d 61 20 61 64 64 72 65 73 73 20 69 6e 20 68 6c 0d 0a 09 6d 6f 76 09 62 2c 68 0d 0a ┆ed dma address in hl mov b,h ┆ 0x0a4360…0a4380 09 6d 6f 76 09 63 2c 6c 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 20 74 6f 20 73 65 74 20 ┆ mov c,l ;ready for call to set ┆ 0x0a4380…0a43a0 64 6d 61 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 09 6c 64 61 09 69 6f 73 09 3b 73 65 63 ┆dma call setdma lda ios ;sec┆ 0x0a43a0…0a43c0 74 6f 72 20 6e 75 6d 62 65 72 20 6a 75 73 74 20 72 65 61 64 0d 0a 09 63 70 69 09 32 36 09 3b 72 ┆tor number just read cpi 26 ;r┆ 0x0a43c0…0a43e0 65 61 64 20 6c 61 73 74 20 73 65 63 74 6f 72 3f 0d 0a 09 6a 63 09 72 64 31 0d 0a 3b 09 6d 75 73 ┆ead last sector? jc rd1 ; mus┆ 0x0a43e0…0a4400 74 20 62 65 20 73 65 63 74 6f 72 20 32 36 2c 20 7a 65 72 6f 20 61 6e 64 20 67 6f 20 74 6f 20 6e ┆t be sector 26, zero and go to n┆ 0x0a4400…0a4420 (43, 1, 10) 0d 0a 6c 69 73 74 3a 09 3b 6c 69 73 74 20 64 65 76 69 63 65 20 6f 75 74 0d 0a 3b 09 28 65 78 61 ┆ list: ;list device out ; (exa┆ 0x0a4420…0a4440 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 ┆ctly the same as mds call) jmp┆ 0x0a4440…0a4460 09 6c 6f 0d 0a 3b 0d 0a 6c 69 73 74 73 74 3a 0d 0a 09 3b 72 65 74 75 72 6e 20 6c 69 73 74 20 73 ┆ lo ; listst: ;return list s┆ 0x0a4460…0a4480 74 61 74 75 73 0d 0a 09 78 72 61 09 61 0d 0a 09 72 65 74 09 09 3b 61 6c 77 61 79 73 20 6e 6f 74 ┆tatus xra a ret ;always not┆ 0x0a4480…0a44a0 20 72 65 61 64 79 0d 0a 3b 0d 0a 70 75 6e 63 68 3a 09 3b 70 75 6e 63 68 20 64 65 76 69 63 65 20 ┆ ready ; punch: ;punch device ┆ 0x0a44a0…0a44c0 6f 75 74 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 ┆out ; (exactly the same as mds ┆ 0x0a44c0…0a44e0 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 70 6f 0d 0a 3b 0d 0a 72 65 61 64 65 72 3a 09 3b 72 65 61 64 ┆call) jmp po ; reader: ;read┆ 0x0a44e0…0a4500 65 72 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 74 6f 20 72 65 67 2d 61 0d 0a 3b 09 28 65 78 61 ┆er character in to reg-a ; (exa┆ 0x0a4500…0a4520 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 ┆ctly the same as mds call) jmp┆ 0x0a4520…0a4540 09 72 69 0d 0a 3b 0d 0a 68 6f 6d 65 3a 09 3b 6d 6f 76 65 20 74 6f 20 68 6f 6d 65 20 70 6f 73 69 ┆ ri ; home: ;move to home posi┆ 0x0a4540…0a4560 74 69 6f 6e 0d 0a 3b 09 74 72 65 61 74 20 61 73 20 74 72 61 63 6b 20 30 30 20 73 65 65 6b 0d 0a ┆tion ; treat as track 00 seek ┆ 0x0a4560…0a4580 09 6d 76 69 09 63 2c 30 0d 0a 09 6a 6d 70 09 73 65 74 74 72 6b 0d 0a 3b 0d 0a 73 65 6c 64 73 6b ┆ mvi c,0 jmp settrk ; seldsk┆ 0x0a4580…0a45a0 3a 09 3b 73 65 6c 65 63 74 20 64 69 73 6b 20 67 69 76 65 6e 20 62 79 20 72 65 67 69 73 74 65 72 ┆: ;select disk given by register┆ 0x0a45a0…0a45c0 20 63 0d 0a 09 6c 78 69 09 68 2c 30 30 30 30 68 09 3b 72 65 74 75 72 6e 20 30 30 30 30 20 69 66 ┆ c lxi h,0000h ;return 0000 if┆ 0x0a45c0…0a45e0 20 65 72 72 6f 72 0d 0a 09 6d 6f 76 09 61 2c 63 0d 0a 09 63 70 69 09 6e 64 69 73 6b 73 09 3b 74 ┆ error mov a,c cpi ndisks ;t┆ 0x0a45e0…0a4600 6f 6f 20 6c 61 72 67 65 3f 0d 0a 09 72 6e 63 09 09 3b 6c 65 61 76 65 20 48 4c 20 3d 20 30 30 30 ┆oo large? rnc ;leave HL = 000┆ 0x0a4600…0a4620 (43, 1, 11) 0d 0a 3b 0d 0a 73 65 74 66 75 6e 63 3a 0d 0a 3b 09 73 65 74 20 66 75 6e 63 74 69 6f 6e 20 66 6f ┆ ; setfunc: ; set function fo┆ 0x0a4620…0a4640 72 20 6e 65 78 74 20 69 2f 6f 20 28 63 6f 6d 6d 61 6e 64 20 69 6e 20 72 65 67 2d 63 29 0d 0a 09 ┆r next i/o (command in reg-c) ┆ 0x0a4640…0a4660 6c 78 69 09 68 2c 69 6f 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 72 65 73 73 0d 0a ┆lxi h,iof ;io function address ┆ 0x0a4660…0a4680 09 6d 6f 76 09 61 2c 6d 09 3b 67 65 74 20 69 74 20 74 6f 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 ┆ mov a,m ;get it to accumulator ┆ 0x0a4680…0a46a0 66 6f 72 20 6d 61 73 6b 69 6e 67 0d 0a 09 61 6e 69 09 31 31 31 31 31 30 30 30 62 09 3b 72 65 6d ┆for masking ani 11111000b ;rem┆ 0x0a46a0…0a46c0 6f 76 65 20 70 72 65 76 69 6f 75 73 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6f 72 61 09 63 09 3b 73 65 ┆ove previous command ora c ;se┆ 0x0a46c0…0a46e0 74 20 74 6f 20 6e 65 77 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6d 6f 76 09 6d 2c 61 09 3b 72 65 70 6c ┆t to new command mov m,a ;repl┆ 0x0a46e0…0a4700 61 63 65 64 20 69 6e 20 69 6f 70 62 0d 0a 3b 09 74 68 65 20 6d 64 73 2d 38 30 30 20 63 6f 6e 74 ┆aced in iopb ; the mds-800 cont┆ 0x0a4700…0a4720 72 6f 6c 6c 65 72 20 72 65 71 75 69 72 65 73 20 64 69 73 6b 20 62 61 6e 6b 20 62 69 74 20 69 6e ┆roller requires disk bank bit in┆ 0x0a4720…0a4740 20 73 65 63 74 6f 72 20 62 79 74 65 0d 0a 3b 09 6d 61 73 6b 20 74 68 65 20 62 69 74 20 66 72 6f ┆ sector byte ; mask the bit fro┆ 0x0a4740…0a4760 6d 20 74 68 65 20 63 75 72 72 65 6e 74 20 69 2f 6f 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 61 6e 69 ┆m the current i/o function ani┆ 0x0a4760…0a4780 09 30 30 31 30 30 30 30 30 62 09 3b 6d 61 73 6b 20 74 68 65 20 64 69 73 6b 20 73 65 6c 65 63 74 ┆ 00100000b ;mask the disk select┆ 0x0a4780…0a47a0 20 62 69 74 0d 0a 09 6c 78 69 09 68 2c 69 6f 73 09 09 3b 61 64 64 72 65 73 73 20 74 68 65 20 73 ┆ bit lxi h,ios ;address the s┆ 0x0a47a0…0a47c0 65 63 74 6f 72 20 73 65 6c 65 63 74 20 62 79 74 65 0d 0a 09 6f 72 61 09 6d 09 09 3b 73 65 6c 65 ┆ector select byte ora m ;sele┆ 0x0a47c0…0a47e0 63 74 20 70 72 6f 70 65 72 20 64 69 73 6b 20 62 61 6e 6b 0d 0a 09 6d 6f 76 09 6d 2c 61 09 09 3b ┆ct proper disk bank mov m,a ;┆ 0x0a47e0…0a4800 73 65 74 20 64 69 73 6b 20 73 65 6c 65 63 74 20 62 69 74 20 6f 6e 2f 6f 66 66 0d 0a 09 72 65 74 ┆set disk select bit on/off ret┆ 0x0a4800…0a4820 (43, 1, 12) 65 73 73 20 65 72 72 6f 72 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 ┆ess error (hardware malfunction)┆ 0x0a4820…0a4840 0d 0a 3b 09 34 09 2d 20 64 61 74 61 20 6f 76 65 72 2f 75 6e 64 65 72 20 66 6c 6f 77 20 28 68 61 ┆ ; 4 - data over/under flow (ha┆ 0x0a4840…0a4860 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 35 09 2d 20 77 72 69 74 65 ┆rdware malfunction) ; 5 - write┆ 0x0a4860…0a4880 20 70 72 6f 74 65 63 74 20 28 74 72 65 61 74 65 64 20 61 73 20 6e 6f 74 20 72 65 61 64 79 29 0d ┆ protect (treated as not ready) ┆ 0x0a4880…0a48a0 0a 3b 09 36 09 2d 20 77 72 69 74 65 20 65 72 72 6f 72 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c ┆ ; 6 - write error (hardware mal┆ 0x0a48a0…0a48c0 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 37 09 2d 20 6e 6f 74 20 72 65 61 64 79 0d 0a 3b 09 28 61 ┆function) ; 7 - not ready ; (a┆ 0x0a48c0…0a48e0 63 63 75 6d 75 6c 61 74 6f 72 20 62 69 74 73 20 61 72 65 20 6e 75 6d 62 65 72 65 64 20 37 20 36 ┆ccumulator bits are numbered 7 6┆ 0x0a48e0…0a4900 20 35 20 34 20 33 20 32 20 31 20 30 29 0d 0a 3b 0d 0a 3b 09 69 74 20 6d 61 79 20 62 65 20 75 73 ┆ 5 4 3 2 1 0) ; ; it may be us┆ 0x0a4900…0a4920 65 66 75 6c 20 74 6f 20 66 69 6c 74 65 72 20 6f 75 74 20 74 68 65 20 76 61 72 69 6f 75 73 20 63 ┆eful to filter out the various c┆ 0x0a4920…0a4940 6f 6e 64 69 74 69 6f 6e 73 2c 0d 0a 3b 09 62 75 74 20 77 65 20 77 69 6c 6c 20 67 65 74 20 61 20 ┆onditions, ; but we will get a ┆ 0x0a4940…0a4960 70 65 72 6d 61 6e 65 6e 74 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 69 66 20 69 74 20 69 73 ┆permanent error message if it is┆ 0x0a4960…0a4980 20 6e 6f 74 0d 0a 3b 09 72 65 63 6f 76 65 72 61 62 6c 65 2e 20 20 69 6e 20 61 6e 79 20 63 61 73 ┆ not ; recoverable. in any cas┆ 0x0a4980…0a49a0 65 2c 20 74 68 65 20 6e 6f 74 20 72 65 61 64 79 20 63 6f 6e 64 69 74 69 6f 6e 20 69 73 0d 0a 3b ┆e, the not ready condition is ;┆ 0x0a49a0…0a49c0 09 74 72 65 61 74 65 64 20 61 73 20 61 20 73 65 70 61 72 61 74 65 20 63 6f 6e 64 69 74 69 6f 6e ┆ treated as a separate condition┆ 0x0a49c0…0a49e0 20 66 6f 72 20 6c 61 74 65 72 20 69 6d 70 72 6f 76 65 6d 65 6e 74 0d 0a 74 72 79 63 6f 75 6e 74 ┆ for later improvement trycount┆ 0x0a49e0…0a4a00 3a 0d 0a 3b 09 72 65 67 69 73 74 65 72 20 63 20 63 6f 6e 74 61 69 6e 73 20 72 65 74 72 79 20 63 ┆: ; register c contains retry c┆ 0x0a4a00…0a4a20 (43, 1, 13) 65 78 74 20 74 72 61 63 6b 0d 0a 09 6c 64 61 09 69 6f 74 09 3b 67 65 74 20 74 72 61 63 6b 20 74 ┆ext track lda iot ;get track t┆ 0x0a4a20…0a4a40 6f 20 72 65 67 69 73 74 65 72 20 61 0d 0a 09 69 6e 72 09 61 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b ┆o register a inr a mov c,a ;┆ 0x0a4a40…0a4a60 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 0d 0a 09 63 61 6c 6c 09 73 65 74 74 72 6b 0d 0a 09 78 ┆ready for call call settrk x┆ 0x0a4a60…0a4a80 72 61 09 61 09 3b 63 6c 65 61 72 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 0d 0a 72 64 31 3a 09 ┆ra a ;clear sector number rd1: ┆ 0x0a4a80…0a4aa0 69 6e 72 09 61 09 3b 74 6f 20 6e 65 78 74 20 73 65 63 74 6f 72 0d 0a 09 6d 6f 76 09 63 2c 61 09 ┆inr a ;to next sector mov c,a ┆ 0x0a4aa0…0a4ac0 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 0d 0a 09 63 61 6c 6c 09 73 65 74 73 65 63 0d 0a 09 ┆;ready for call call setsec ┆ 0x0a4ac0…0a4ae0 70 6f 70 09 62 09 3b 72 65 63 61 6c 6c 20 73 65 63 74 6f 72 20 63 6f 75 6e 74 0d 0a 09 64 63 72 ┆pop b ;recall sector count dcr┆ 0x0a4ae0…0a4b00 09 62 09 3b 64 6f 6e 65 3f 0d 0a 09 6a 6e 7a 09 72 64 73 65 63 0d 0a 3b 0d 0a 3b 09 64 6f 6e 65 ┆ b ;done? jnz rdsec ; ; done┆ 0x0a4b00…0a4b20 20 77 69 74 68 20 74 68 65 20 6c 6f 61 64 2c 20 72 65 73 65 74 20 64 65 66 61 75 6c 74 20 62 75 ┆ with the load, reset default bu┆ 0x0a4b20…0a4b40 66 66 65 72 20 61 64 64 72 65 73 73 0d 0a 67 6f 63 70 6d 3a 09 3b 28 65 6e 74 65 72 20 68 65 72 ┆ffer address gocpm: ;(enter her┆ 0x0a4b40…0a4b60 65 20 66 72 6f 6d 20 63 6f 6c 64 20 73 74 61 72 74 20 62 6f 6f 74 29 0d 0a 3b 09 65 6e 61 62 6c ┆e from cold start boot) ; enabl┆ 0x0a4b60…0a4b80 65 20 72 73 74 30 20 61 6e 64 20 72 73 74 37 0d 0a 09 64 69 0d 0a 09 6d 76 69 09 61 2c 31 32 68 ┆e rst0 and rst7 di mvi a,12h┆ 0x0a4b80…0a4ba0 09 3b 69 6e 69 74 69 61 6c 69 7a 65 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6f 75 74 09 72 65 76 72 74 ┆ ;initialize command out revrt┆ 0x0a4ba0…0a4bc0 0d 0a 09 78 72 61 09 61 0d 0a 09 6f 75 74 09 69 6e 74 63 09 3b 63 6c 65 61 72 65 64 0d 0a 09 6d ┆ xra a out intc ;cleared m┆ 0x0a4bc0…0a4be0 76 69 09 61 2c 69 6e 74 65 09 3b 72 73 74 30 20 61 6e 64 20 72 73 74 37 20 62 69 74 73 20 6f 6e ┆vi a,inte ;rst0 and rst7 bits on┆ 0x0a4be0…0a4c00 0d 0a 09 6f 75 74 09 69 6e 74 63 0d 0a 09 78 72 61 09 61 0d 0a 09 6f 75 74 09 69 63 6f 6e 09 3b ┆ out intc xra a out icon ;┆ 0x0a4c00…0a4c20 (43, 1, 14) 30 0d 0a 3b 0d 0a 09 61 6e 69 09 31 30 62 09 3b 30 30 20 30 30 20 66 6f 72 20 64 72 69 76 65 20 ┆0 ; ani 10b ;00 00 for drive ┆ 0x0a4c20…0a4c40 30 2c 31 20 61 6e 64 20 31 30 20 31 30 20 66 6f 72 20 64 72 69 76 65 20 32 2c 33 0d 0a 09 73 74 ┆0,1 and 10 10 for drive 2,3 st┆ 0x0a4c40…0a4c60 61 09 64 62 61 6e 6b 09 3b 74 6f 20 73 65 6c 65 63 74 20 64 72 69 76 65 20 62 61 6e 6b 0d 0a 09 ┆a dbank ;to select drive bank ┆ 0x0a4c60…0a4c80 6d 6f 76 09 61 2c 63 09 3b 30 30 2c 20 30 31 2c 20 31 30 2c 20 31 31 0d 0a 09 61 6e 69 09 31 62 ┆mov a,c ;00, 01, 10, 11 ani 1b┆ 0x0a4c80…0a4ca0 09 3b 6d 64 73 20 68 61 73 20 30 2c 31 20 61 74 20 37 38 2c 20 32 2c 33 20 61 74 20 38 38 0d 0a ┆ ;mds has 0,1 at 78, 2,3 at 88 ┆ 0x0a4ca0…0a4cc0 09 6f 72 61 09 61 09 3b 72 65 73 75 6c 74 20 30 30 3f 0d 0a 09 6a 7a 09 73 65 74 64 72 69 76 65 ┆ ora a ;result 00? jz setdrive┆ 0x0a4cc0…0a4ce0 0d 0a 09 6d 76 69 09 61 2c 30 30 31 31 30 30 30 30 62 09 3b 73 65 6c 65 63 74 73 20 64 72 69 76 ┆ mvi a,00110000b ;selects driv┆ 0x0a4ce0…0a4d00 65 20 31 20 69 6e 20 62 61 6e 6b 0d 0a 73 65 74 64 72 69 76 65 3a 0d 0a 09 6d 6f 76 09 62 2c 61 ┆e 1 in bank setdrive: mov b,a┆ 0x0a4d00…0a4d20 09 3b 73 61 76 65 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6c 78 69 09 68 2c 69 6f 66 09 ┆ ;save the function lxi h,iof ┆ 0x0a4d20…0a4d40 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6d 6f 76 09 61 2c 6d 0d 0a 09 61 6e 69 09 31 31 30 ┆;io function mov a,m ani 110┆ 0x0a4d40…0a4d60 30 31 31 31 31 62 09 3b 6d 61 73 6b 20 6f 75 74 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6f ┆01111b ;mask out disk number o┆ 0x0a4d60…0a4d80 72 61 09 62 09 3b 6d 61 73 6b 20 69 6e 20 6e 65 77 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 ┆ra b ;mask in new disk number ┆ 0x0a4d80…0a4da0 6d 6f 76 09 6d 2c 61 09 3b 73 61 76 65 20 69 74 20 69 6e 20 69 6f 70 62 0d 0a 09 6d 6f 76 09 6c ┆mov m,a ;save it in iopb mov l┆ 0x0a4da0…0a4dc0 2c 63 0d 0a 09 6d 76 69 09 68 2c 30 09 3b 48 4c 3d 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 64 ┆,c mvi h,0 ;HL=disk number d┆ 0x0a4dc0…0a4de0 61 64 09 68 09 3b 2a 32 0d 0a 09 64 61 64 09 68 09 3b 2a 34 0d 0a 09 64 61 64 09 68 09 3b 2a 38 ┆ad h ;*2 dad h ;*4 dad h ;*8┆ 0x0a4de0…0a4e00 0d 0a 09 64 61 64 09 68 09 3b 2a 31 36 0d 0a 09 6c 78 69 09 64 2c 64 70 62 61 73 65 0d 0a 09 64 ┆ dad h ;*16 lxi d,dpbase d┆ 0x0a4e00…0a4e20 (43, 1, 15) 0d 0a 3b 0d 0a 77 61 69 74 69 6f 3a 0d 0a 09 6d 76 69 09 63 2c 72 65 74 72 79 09 3b 6d 61 78 20 ┆ ; waitio: mvi c,retry ;max ┆ 0x0a4e20…0a4e40 72 65 74 72 69 65 73 20 62 65 66 6f 72 65 20 70 65 72 6d 20 65 72 72 6f 72 0d 0a 72 65 77 61 69 ┆retries before perm error rewai┆ 0x0a4e40…0a4e60 74 3a 0d 0a 3b 09 73 74 61 72 74 20 74 68 65 20 69 2f 6f 20 66 75 6e 63 74 69 6f 6e 20 61 6e 64 ┆t: ; start the i/o function and┆ 0x0a4e60…0a4e80 20 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 69 6e 74 79 ┆ wait for completion call inty┆ 0x0a4e80…0a4ea0 70 65 09 3b 69 6e 20 72 74 79 70 65 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 09 3b 63 6c 65 61 ┆pe ;in rtype call inbyte ;clea┆ 0x0a4ea0…0a4ec0 72 73 20 74 68 65 20 63 6f 6e 74 72 6f 6c 6c 65 72 0d 0a 3b 0d 0a 09 6c 64 61 09 64 62 61 6e 6b ┆rs the controller ; lda dbank┆ 0x0a4ec0…0a4ee0 09 09 3b 73 65 74 20 62 61 6e 6b 20 66 6c 61 67 73 0d 0a 09 6f 72 61 09 61 09 09 3b 7a 65 72 6f ┆ ;set bank flags ora a ;zero┆ 0x0a4ee0…0a4f00 20 69 66 20 64 72 69 76 65 20 30 2c 31 20 61 6e 64 20 6e 7a 20 69 66 20 32 2c 33 0d 0a 09 6d 76 ┆ if drive 0,1 and nz if 2,3 mv┆ 0x0a4f00…0a4f20 69 09 61 2c 69 6f 70 62 20 61 6e 64 20 30 66 66 68 09 3b 6c 6f 77 20 61 64 64 72 65 73 73 20 66 ┆i a,iopb and 0ffh ;low address f┆ 0x0a4f20…0a4f40 6f 72 20 69 6f 70 62 0d 0a 09 6d 76 69 09 62 2c 69 6f 70 62 20 73 68 72 20 38 09 3b 68 69 67 68 ┆or iopb mvi b,iopb shr 8 ;high┆ 0x0a4f40…0a4f60 20 61 64 64 72 65 73 73 20 66 6f 72 20 69 6f 70 62 0d 0a 09 6a 6e 7a 09 69 6f 64 72 31 09 3b 64 ┆ address for iopb jnz iodr1 ;d┆ 0x0a4f60…0a4f80 72 69 76 65 20 62 61 6e 6b 20 31 3f 0d 0a 09 6f 75 74 09 69 6c 6f 77 09 09 3b 6c 6f 77 20 61 64 ┆rive bank 1? out ilow ;low ad┆ 0x0a4f80…0a4fa0 64 72 65 73 73 20 74 6f 20 63 6f 6e 74 72 6f 6c 6c 65 72 0d 0a 09 6d 6f 76 09 61 2c 62 0d 0a 09 ┆dress to controller mov a,b ┆ 0x0a4fa0…0a4fc0 6f 75 74 09 69 68 69 67 68 09 3b 68 69 67 68 20 61 64 64 72 65 73 73 0d 0a 09 6a 6d 70 09 77 61 ┆out ihigh ;high address jmp wa┆ 0x0a4fc0…0a4fe0 69 74 30 09 09 3b 74 6f 20 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 65 0d 0a 3b 0d 0a 69 ┆it0 ;to wait for complete ; i┆ 0x0a4fe0…0a5000 6f 64 72 31 3a 09 3b 64 72 69 76 65 20 62 61 6e 6b 20 31 0d 0a 09 6f 75 74 09 69 6c 6f 77 2b 31 ┆odr1: ;drive bank 1 out ilow+1┆ 0x0a5000…0a5020 (44, 0, 1) 6f 75 6e 74 2c 20 64 65 63 72 65 6d 65 6e 74 20 27 74 69 6c 20 7a 65 72 6f 0d 0a 09 64 63 72 09 ┆ount, decrement 'til zero dcr ┆ 0x0a5020…0a5040 63 0d 0a 09 6a 6e 7a 09 72 65 77 61 69 74 09 3b 66 6f 72 20 61 6e 6f 74 68 65 72 20 74 72 79 0d ┆c jnz rewait ;for another try ┆ 0x0a5040…0a5060 0a 3b 0d 0a 3b 09 63 61 6e 6e 6f 74 20 72 65 63 6f 76 65 72 20 66 72 6f 6d 20 65 72 72 6f 72 0d ┆ ; ; cannot recover from error ┆ 0x0a5060…0a5080 0a 09 6d 76 69 09 61 2c 31 09 3b 65 72 72 6f 72 20 63 6f 64 65 0d 0a 09 72 65 74 0d 0a 3b 0d 0a ┆ mvi a,1 ;error code ret ; ┆ 0x0a5080…0a50a0 3b 09 69 6e 74 79 70 65 2c 20 69 6e 62 79 74 65 2c 20 69 6e 73 74 61 74 20 72 65 61 64 20 64 72 ┆; intype, inbyte, instat read dr┆ 0x0a50a0…0a50c0 69 76 65 20 62 61 6e 6b 20 30 30 20 6f 72 20 31 30 0d 0a 69 6e 74 79 70 65 3a 09 6c 64 61 09 64 ┆ive bank 00 or 10 intype: lda d┆ 0x0a50c0…0a50e0 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 74 79 70 31 09 3b 73 6b 69 70 20 ┆bank ora a jnz intyp1 ;skip ┆ 0x0a50e0…0a5100 74 6f 20 62 61 6e 6b 20 31 30 0d 0a 09 69 6e 09 72 74 79 70 65 0d 0a 09 72 65 74 0d 0a 69 6e 74 ┆to bank 10 in rtype ret int┆ 0x0a5100…0a5120 79 70 31 3a 09 69 6e 09 72 74 79 70 65 2b 31 30 68 09 3b 37 38 20 66 6f 72 20 30 2c 31 20 20 38 ┆yp1: in rtype+10h ;78 for 0,1 8┆ 0x0a5120…0a5140 38 20 66 6f 72 20 32 2c 33 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 69 6e 62 79 74 65 3a 09 6c 64 61 09 ┆8 for 2,3 ret ; inbyte: lda ┆ 0x0a5140…0a5160 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 62 79 74 31 0d 0a 09 69 6e 09 ┆dbank ora a jnz inbyt1 in ┆ 0x0a5160…0a5180 72 62 79 74 65 0d 0a 09 72 65 74 0d 0a 69 6e 62 79 74 31 3a 09 69 6e 09 72 62 79 74 65 2b 31 30 ┆rbyte ret inbyt1: in rbyte+10┆ 0x0a5180…0a51a0 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 69 6e 73 74 61 74 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 ┆h ret ; instat: lda dbank ┆ 0x0a51a0…0a51c0 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 73 74 61 31 0d 0a 09 69 6e 09 64 73 74 61 74 0d 0a 09 ┆ora a jnz insta1 in dstat ┆ 0x0a51c0…0a51e0 72 65 74 0d 0a 69 6e 73 74 61 31 3a 09 69 6e 09 64 73 74 61 74 2b 31 30 68 0d 0a 09 72 65 74 0d ┆ret insta1: in dstat+10h ret ┆ 0x0a51e0…0a5200 0a 3b 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 61 74 61 20 61 72 65 61 73 20 28 6d 75 73 74 20 62 65 20 ┆ ; ; ; ; data areas (must be ┆ 0x0a5200…0a5220 (44, 0, 2) 6f 75 74 09 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 6f 75 74 20 28 63 68 61 72 20 ┆out console character out (char ┆ 0x0a5220…0a5240 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 6c 69 73 74 09 6c 69 73 74 20 6f 75 74 20 28 63 68 61 72 ┆in reg-c) ; list list out (char┆ 0x0a5240…0a5260 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 70 75 6e 63 68 09 70 75 6e 63 68 20 6f 75 74 20 28 63 ┆ in reg-c) ; punch punch out (c┆ 0x0a5260…0a5280 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 72 65 61 64 65 72 09 70 61 70 65 72 20 74 61 ┆har in reg-c) ; reader paper ta┆ 0x0a5280…0a52a0 70 65 20 72 65 61 64 65 72 20 69 6e 20 28 72 65 73 75 6c 74 20 74 6f 20 72 65 67 2d 61 29 0d 0a ┆pe reader in (result to reg-a) ┆ 0x0a52a0…0a52c0 3b 09 68 6f 6d 65 09 6d 6f 76 65 20 74 6f 20 74 72 61 63 6b 20 30 30 0d 0a 3b 0d 0a 3b 09 28 74 ┆; home move to track 00 ; ; (t┆ 0x0a52c0…0a52e0 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 61 6c 6c 73 20 73 65 74 2d 75 70 20 74 68 65 20 69 6f ┆he following calls set-up the io┆ 0x0a52e0…0a5300 20 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 20 66 6f 72 20 74 68 65 0d 0a 3b 09 6d 64 73 2c ┆ parameter block for the ; mds,┆ 0x0a5300…0a5320 20 77 68 69 63 68 20 69 73 20 75 73 65 64 20 74 6f 20 70 65 72 66 6f 72 6d 20 73 75 62 73 65 71 ┆ which is used to perform subseq┆ 0x0a5320…0a5340 75 65 6e 74 20 72 65 61 64 73 20 61 6e 64 20 77 72 69 74 65 73 29 0d 0a 3b 09 73 65 6c 64 73 6b ┆uent reads and writes) ; seldsk┆ 0x0a5340…0a5360 09 73 65 6c 65 63 74 20 64 69 73 6b 20 67 69 76 65 6e 20 62 79 20 72 65 67 2d 63 20 28 30 2c 31 ┆ select disk given by reg-c (0,1┆ 0x0a5360…0a5380 2c 32 2e 2e 2e 29 0d 0a 3b 09 73 65 74 74 72 6b 09 73 65 74 20 74 72 61 63 6b 20 61 64 64 72 65 ┆,2...) ; settrk set track addre┆ 0x0a5380…0a53a0 73 73 20 28 30 2c 2e 2e 2e 37 36 29 20 66 6f 72 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 ┆ss (0,...76) for subsequent read┆ 0x0a53a0…0a53c0 2f 77 72 69 74 65 0d 0a 3b 09 73 65 74 73 65 63 09 73 65 74 20 73 65 63 74 6f 72 20 61 64 64 72 ┆/write ; setsec set sector addr┆ 0x0a53c0…0a53e0 65 73 73 20 28 31 2c 2e 2e 2e 2c 32 36 29 20 66 6f 72 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 ┆ess (1,...,26) for subsequent re┆ 0x0a53e0…0a5400 61 64 2f 77 72 69 74 65 0d 0a 3b 09 73 65 74 64 6d 61 09 73 65 74 20 73 75 62 73 65 71 75 65 6e ┆ad/write ; setdma set subsequen┆ 0x0a5400…0a5420 (44, 0, 3) 64 65 76 69 63 65 0d 0a 63 73 74 73 09 65 71 75 09 30 66 38 31 32 68 09 3b 63 6f 6e 73 6f 6c 65 ┆device csts equ 0f812h ;console┆ 0x0a5420…0a5440 20 73 74 61 74 75 73 20 30 30 2f 66 66 20 74 6f 20 72 65 67 69 73 74 65 72 20 61 0d 0a 3b 0d 0a ┆ status 00/ff to register a ; ┆ 0x0a5440…0a5460 3b 09 64 69 73 6b 20 70 6f 72 74 73 20 61 6e 64 20 63 6f 6d 6d 61 6e 64 73 0d 0a 62 61 73 65 09 ┆; disk ports and commands base ┆ 0x0a5460…0a5480 65 71 75 09 37 38 68 09 3b 62 61 73 65 20 6f 66 20 64 69 73 6b 20 63 6f 6d 6d 61 6e 64 20 69 6f ┆equ 78h ;base of disk command io┆ 0x0a5480…0a54a0 20 70 6f 72 74 73 0d 0a 64 73 74 61 74 09 65 71 75 09 62 61 73 65 09 3b 64 69 73 6b 20 73 74 61 ┆ ports dstat equ base ;disk sta┆ 0x0a54a0…0a54c0 74 75 73 20 28 69 6e 70 75 74 29 0d 0a 72 74 79 70 65 09 65 71 75 09 62 61 73 65 2b 31 09 3b 72 ┆tus (input) rtype equ base+1 ;r┆ 0x0a54c0…0a54e0 65 73 75 6c 74 20 74 79 70 65 20 28 69 6e 70 75 74 29 0d 0a 72 62 79 74 65 09 65 71 75 09 62 61 ┆esult type (input) rbyte equ ba┆ 0x0a54e0…0a5500 73 65 2b 33 09 3b 72 65 73 75 6c 74 20 62 79 74 65 20 28 69 6e 70 75 74 29 0d 0a 3b 0d 0a 69 6c ┆se+3 ;result byte (input) ; il┆ 0x0a5500…0a5520 6f 77 09 65 71 75 09 62 61 73 65 2b 31 09 3b 69 6f 70 62 20 6c 6f 77 20 61 64 64 72 65 73 73 20 ┆ow equ base+1 ;iopb low address ┆ 0x0a5520…0a5540 28 6f 75 74 70 75 74 29 0d 0a 69 68 69 67 68 09 65 71 75 09 62 61 73 65 2b 32 09 3b 69 6f 70 62 ┆(output) ihigh equ base+2 ;iopb┆ 0x0a5540…0a5560 20 68 69 67 68 20 61 64 64 72 65 73 73 20 28 6f 75 74 70 75 74 29 0d 0a 3b 0d 0a 72 65 61 64 66 ┆ high address (output) ; readf┆ 0x0a5560…0a5580 09 65 71 75 09 34 68 09 3b 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 77 72 69 74 66 09 65 71 ┆ equ 4h ;read function writf eq┆ 0x0a5580…0a55a0 75 09 36 68 09 3b 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 72 65 63 61 6c 09 65 71 75 09 ┆u 6h ;write function recal equ ┆ 0x0a55a0…0a55c0 33 68 09 3b 72 65 63 61 6c 69 62 72 61 74 65 20 64 72 69 76 65 0d 0a 69 6f 72 64 79 09 65 71 75 ┆3h ;recalibrate drive iordy equ┆ 0x0a55c0…0a55e0 09 34 68 09 3b 69 2f 6f 20 66 69 6e 69 73 68 65 64 20 6d 61 73 6b 0d 0a 63 72 09 65 71 75 09 30 ┆ 4h ;i/o finished mask cr equ 0┆ 0x0a55e0…0a5600 64 68 09 3b 63 61 72 72 69 61 67 65 20 72 65 74 75 72 6e 0d 0a 6c 66 09 65 71 75 09 30 61 68 09 ┆dh ;carriage return lf equ 0ah ┆ 0x0a5600…0a5620 (44, 0, 4) 6b 0d 0a 09 78 72 61 09 61 09 3b 63 6c 65 61 72 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 0d 0a ┆k xra a ;clear sector number ┆ 0x0a5620…0a5640 72 64 31 3a 09 69 6e 72 09 61 09 3b 74 6f 20 6e 65 78 74 20 73 65 63 74 6f 72 0d 0a 09 6d 6f 76 ┆rd1: inr a ;to next sector mov┆ 0x0a5640…0a5660 09 63 2c 61 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 0d 0a 09 63 61 6c 6c 09 73 65 74 73 ┆ c,a ;ready for call call sets┆ 0x0a5660…0a5680 65 63 0d 0a 09 70 6f 70 09 62 09 3b 72 65 63 61 6c 6c 20 73 65 63 74 6f 72 20 63 6f 75 6e 74 0d ┆ec pop b ;recall sector count ┆ 0x0a5680…0a56a0 0a 09 64 63 72 09 62 09 3b 64 6f 6e 65 3f 0d 0a 09 6a 6e 7a 09 72 64 73 65 63 0d 0a 3b 0d 0a 3b ┆ dcr b ;done? jnz rdsec ; ;┆ 0x0a56a0…0a56c0 09 64 6f 6e 65 20 77 69 74 68 20 74 68 65 20 6c 6f 61 64 2c 20 72 65 73 65 74 20 64 65 66 61 75 ┆ done with the load, reset defau┆ 0x0a56c0…0a56e0 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 0d 0a 67 6f 63 70 6d 3a 09 3b 28 65 6e 74 65 ┆lt buffer address gocpm: ;(ente┆ 0x0a56e0…0a5700 72 20 68 65 72 65 20 66 72 6f 6d 20 63 6f 6c 64 20 73 74 61 72 74 20 62 6f 6f 74 29 0d 0a 3b 09 ┆r here from cold start boot) ; ┆ 0x0a5700…0a5720 65 6e 61 62 6c 65 20 72 73 74 30 20 61 6e 64 20 72 73 74 37 0d 0a 09 64 69 0d 0a 09 6d 76 69 09 ┆enable rst0 and rst7 di mvi ┆ 0x0a5720…0a5740 61 2c 31 32 68 09 3b 69 6e 69 74 69 61 6c 69 7a 65 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6f 75 74 09 ┆a,12h ;initialize command out ┆ 0x0a5740…0a5760 72 65 76 72 74 0d 0a 09 78 72 61 09 61 0d 0a 09 6f 75 74 09 69 6e 74 63 09 3b 63 6c 65 61 72 65 ┆revrt xra a out intc ;cleare┆ 0x0a5760…0a5780 64 0d 0a 09 6d 76 69 09 61 2c 69 6e 74 65 09 3b 72 73 74 30 20 61 6e 64 20 72 73 74 37 20 62 69 ┆d mvi a,inte ;rst0 and rst7 bi┆ 0x0a5780…0a57a0 74 73 20 6f 6e 0d 0a 09 6f 75 74 09 69 6e 74 63 0d 0a 09 78 72 61 09 61 0d 0a 09 6f 75 74 09 69 ┆ts on out intc xra a out i┆ 0x0a57a0…0a57c0 63 6f 6e 09 3b 69 6e 74 65 72 72 75 70 74 20 63 6f 6e 74 72 6f 6c 0d 0a 3b 0d 0a 3b 09 73 65 74 ┆con ;interrupt control ; ; set┆ 0x0a57c0…0a57e0 20 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 20 74 6f 20 38 30 68 0d 0a ┆ default buffer address to 80h ┆ 0x0a57e0…0a5800 09 6c 78 69 09 62 2c 62 75 66 66 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 3b 0d 0a 3b 09 ┆ lxi b,buff call setdma ; ; ┆ 0x0a5800…0a5820 (44, 0, 5) 69 6e 20 72 61 6d 29 0d 0a 64 62 61 6e 6b 3a 09 64 62 09 30 09 3b 64 69 73 6b 20 62 61 6e 6b 20 ┆in ram) dbank: db 0 ;disk bank ┆ 0x0a5820…0a5840 30 30 20 69 66 20 64 72 69 76 65 20 30 2c 31 0d 0a 09 09 09 3b 09 20 20 20 31 30 20 69 66 20 64 ┆00 if drive 0,1 ; 10 if d┆ 0x0a5840…0a5860 72 69 76 65 20 32 2c 33 0d 0a 69 6f 70 62 3a 09 3b 69 6f 20 70 61 72 61 6d 65 74 65 72 20 62 6c ┆rive 2,3 iopb: ;io parameter bl┆ 0x0a5860…0a5880 6f 63 6b 0d 0a 09 64 62 09 38 30 68 09 3b 6e 6f 72 6d 61 6c 20 69 2f 6f 20 6f 70 65 72 61 74 69 ┆ock db 80h ;normal i/o operati┆ 0x0a5880…0a58a0 6f 6e 0d 0a 69 6f 66 3a 09 64 62 09 72 65 61 64 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 2c 20 ┆on iof: db readf ;io function, ┆ 0x0a58a0…0a58c0 69 6e 69 74 69 61 6c 20 72 65 61 64 0d 0a 69 6f 6e 3a 09 64 62 09 31 09 3b 6e 75 6d 62 65 72 20 ┆initial read ion: db 1 ;number ┆ 0x0a58c0…0a58e0 6f 66 20 73 65 63 74 6f 72 73 20 74 6f 20 72 65 61 64 0d 0a 69 6f 74 3a 09 64 62 09 6f 66 66 73 ┆of sectors to read iot: db offs┆ 0x0a58e0…0a5900 65 74 09 3b 74 72 61 63 6b 20 6e 75 6d 62 65 72 0d 0a 69 6f 73 3a 09 64 62 09 31 09 3b 73 65 63 ┆et ;track number ios: db 1 ;sec┆ 0x0a5900…0a5920 74 6f 72 20 6e 75 6d 62 65 72 0d 0a 69 6f 64 3a 09 64 77 09 62 75 66 66 09 3b 69 6f 20 61 64 64 ┆tor number iod: dw buff ;io add┆ 0x0a5920…0a5940 72 65 73 73 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 65 66 69 6e 65 20 72 61 6d 20 61 72 65 61 73 20 66 ┆ress ; ; ; define ram areas f┆ 0x0a5940…0a5960 6f 72 20 62 64 6f 73 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 09 65 6e 64 65 66 0d 0a 09 65 6e 64 0d ┆or bdos operation endef end ┆ 0x0a5960…0a5980 0a 3b 09 4d 44 53 2d 38 30 30 20 49 2f 4f 20 44 72 69 76 65 72 73 20 66 6f 72 20 43 50 2f 4d 20 ┆ ; MDS-800 I/O Drivers for CP/M ┆ 0x0a5980…0a59a0 32 2e 32 0d 0a 3b 09 28 66 6f 75 72 20 64 72 69 76 65 20 73 69 6e 67 6c 65 20 64 65 6e 73 69 74 ┆2.2 ; (four drive single densit┆ 0x0a59a0…0a59c0 79 20 76 65 72 73 69 6f 6e 29 0d 0a 3b 0d 0a 3b 09 56 65 72 73 69 6f 6e 20 32 2e 32 20 46 65 62 ┆y version) ; ; Version 2.2 Feb┆ 0x0a59c0…0a59e0 72 75 61 72 79 2c 20 31 39 38 30 0d 0a 3b 0d 0a 76 65 72 73 09 65 71 75 09 32 32 09 3b 76 65 72 ┆ruary, 1980 ; vers equ 22 ;ver┆ 0x0a59e0…0a5a00 73 69 6f 6e 20 32 2e 32 0d 0a 3b 0d 0a 3b 09 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 39 38 ┆sion 2.2 ; ; Copyright (c) 198┆ 0x0a5a00…0a5a20 (44, 0, 6) 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 28 69 6e 69 74 69 61 6c 6c 79 20 38 30 68 29 0d 0a 3b ┆t dma address (initially 80h) ;┆ 0x0a5a20…0a5a40 0d 0a 3b 09 28 72 65 61 64 20 61 6e 64 20 77 72 69 74 65 20 61 73 73 75 6d 65 20 70 72 65 76 69 ┆ ; (read and write assume previ┆ 0x0a5a40…0a5a60 6f 75 73 20 63 61 6c 6c 73 20 74 6f 20 73 65 74 20 75 70 20 74 68 65 20 69 6f 20 70 61 72 61 6d ┆ous calls to set up the io param┆ 0x0a5a60…0a5a80 65 74 65 72 73 29 0d 0a 3b 09 72 65 61 64 09 72 65 61 64 20 74 72 61 63 6b 2f 73 65 63 74 6f 72 ┆eters) ; read read track/sector┆ 0x0a5a80…0a5aa0 20 74 6f 20 70 72 65 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 3b 09 77 72 69 74 65 09 ┆ to preset dma address ; write ┆ 0x0a5aa0…0a5ac0 77 72 69 74 65 20 74 72 61 63 6b 2f 73 65 63 74 6f 72 20 66 72 6f 6d 20 70 72 65 73 65 74 20 64 ┆write track/sector from preset d┆ 0x0a5ac0…0a5ae0 6d 61 20 61 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b 09 6a 75 6d 70 20 76 65 63 74 6f 72 20 66 6f 72 ┆ma address ; ; jump vector for┆ 0x0a5ae0…0a5b00 20 69 6e 64 69 76 69 75 61 6c 20 72 6f 75 74 69 6e 65 73 0d 0a 09 6a 6d 70 09 62 6f 6f 74 0d 0a ┆ indiviual routines jmp boot ┆ 0x0a5b00…0a5b20 77 62 6f 6f 74 65 3a 09 6a 6d 70 09 77 62 6f 6f 74 0d 0a 09 6a 6d 70 09 63 6f 6e 73 74 0d 0a 09 ┆wboote: jmp wboot jmp const ┆ 0x0a5b20…0a5b40 6a 6d 70 09 63 6f 6e 69 6e 0d 0a 09 6a 6d 70 09 63 6f 6e 6f 75 74 0d 0a 09 6a 6d 70 09 6c 69 73 ┆jmp conin jmp conout jmp lis┆ 0x0a5b40…0a5b60 74 0d 0a 09 6a 6d 70 09 70 75 6e 63 68 0d 0a 09 6a 6d 70 09 72 65 61 64 65 72 0d 0a 09 6a 6d 70 ┆t jmp punch jmp reader jmp┆ 0x0a5b60…0a5b80 09 68 6f 6d 65 0d 0a 09 6a 6d 70 09 73 65 6c 64 73 6b 0d 0a 09 6a 6d 70 09 73 65 74 74 72 6b 0d ┆ home jmp seldsk jmp settrk ┆ 0x0a5b80…0a5ba0 0a 09 6a 6d 70 09 73 65 74 73 65 63 0d 0a 09 6a 6d 70 09 73 65 74 64 6d 61 0d 0a 09 6a 6d 70 09 ┆ jmp setsec jmp setdma jmp ┆ 0x0a5ba0…0a5bc0 72 65 61 64 0d 0a 09 6a 6d 70 09 77 72 69 74 65 0d 0a 09 6a 6d 70 09 6c 69 73 74 73 74 09 3b 6c ┆read jmp write jmp listst ;l┆ 0x0a5bc0…0a5be0 69 73 74 20 73 74 61 74 75 73 0d 0a 09 6a 6d 70 09 73 65 63 74 72 61 6e 0d 0a 3b 0d 0a 09 6d 61 ┆ist status jmp sectran ; ma┆ 0x0a5be0…0a5c00 63 6c 69 62 09 64 69 73 6b 64 65 66 09 3b 6c 6f 61 64 20 74 68 65 20 64 69 73 6b 20 64 65 66 69 ┆clib diskdef ;load the disk defi┆ 0x0a5c00…0a5c20 (44, 0, 7) 3b 6c 69 6e 65 20 66 65 65 64 0d 0a 3b 0d 0a 73 69 67 6e 6f 6e 3a 09 3b 73 69 67 6e 6f 6e 20 6d ┆;line feed ; signon: ;signon m┆ 0x0a5c20…0a5c40 65 73 73 61 67 65 3a 20 78 78 6b 20 63 70 2f 6d 20 76 65 72 73 20 79 2e 79 0d 0a 09 64 62 09 63 ┆essage: xxk cp/m vers y.y db c┆ 0x0a5c40…0a5c60 72 2c 6c 66 2c 6c 66 0d 0a 09 69 66 09 74 65 73 74 0d 0a 09 64 62 09 27 33 32 27 09 3b 33 32 6b ┆r,lf,lf if test db '32' ;32k┆ 0x0a5c60…0a5c80 20 65 78 61 6d 70 6c 65 20 62 69 6f 73 0d 0a 09 65 6e 64 69 66 0d 0a 09 69 66 09 6e 6f 74 20 74 ┆ example bios endif if not t┆ 0x0a5c80…0a5ca0 65 73 74 0d 0a 09 64 62 09 27 30 30 27 09 3b 6d 65 6d 6f 72 79 20 73 69 7a 65 20 66 69 6c 6c 65 ┆est db '00' ;memory size fille┆ 0x0a5ca0…0a5cc0 64 20 62 79 20 72 65 6c 6f 63 61 74 6f 72 0d 0a 09 65 6e 64 69 66 0d 0a 09 64 62 09 27 6b 20 43 ┆d by relocator endif db 'k C┆ 0x0a5cc0…0a5ce0 50 2f 4d 20 76 65 72 73 20 27 0d 0a 09 64 62 09 76 65 72 73 2f 31 30 2b 27 30 27 2c 27 2e 27 2c ┆P/M vers ' db vers/10+'0','.',┆ 0x0a5ce0…0a5d00 76 65 72 73 20 6d 6f 64 20 31 30 2b 27 30 27 0d 0a 09 64 62 09 63 72 2c 6c 66 2c 30 0d 0a 3b 0d ┆vers mod 10+'0' db cr,lf,0 ; ┆ 0x0a5d00…0a5d20 0a 62 6f 6f 74 3a 09 3b 70 72 69 6e 74 20 73 69 67 6e 6f 6e 20 6d 65 73 73 61 67 65 20 61 6e 64 ┆ boot: ;print signon message and┆ 0x0a5d20…0a5d40 20 67 6f 20 74 6f 20 63 63 70 0d 0a 3b 09 28 6e 6f 74 65 3a 20 6d 64 73 20 62 6f 6f 74 20 69 6e ┆ go to ccp ; (note: mds boot in┆ 0x0a5d40…0a5d60 69 74 69 61 6c 69 7a 65 64 20 69 6f 62 79 74 65 20 61 74 20 30 30 30 33 68 29 0d 0a 09 6c 78 69 ┆itialized iobyte at 0003h) lxi┆ 0x0a5d60…0a5d80 09 73 70 2c 62 75 66 66 2b 38 30 68 0d 0a 09 6c 78 69 09 68 2c 73 69 67 6e 6f 6e 0d 0a 09 63 61 ┆ sp,buff+80h lxi h,signon ca┆ 0x0a5d80…0a5da0 6c 6c 09 70 72 6d 73 67 09 3b 70 72 69 6e 74 20 6d 65 73 73 61 67 65 0d 0a 09 78 72 61 09 61 09 ┆ll prmsg ;print message xra a ┆ 0x0a5da0…0a5dc0 3b 63 6c 65 61 72 20 61 63 63 75 6d 75 6c 61 74 6f 72 0d 0a 09 73 74 61 09 63 64 69 73 6b 09 3b ┆;clear accumulator sta cdisk ;┆ 0x0a5dc0…0a5de0 73 65 74 20 69 6e 69 74 69 61 6c 6c 79 20 74 6f 20 64 69 73 6b 20 61 0d 0a 09 6a 6d 70 09 67 6f ┆set initially to disk a jmp go┆ 0x0a5de0…0a5e00 63 70 6d 09 3b 67 6f 20 74 6f 20 63 70 2f 6d 0d 0a 3b 0d 0a 3b 0d 0a 77 62 6f 6f 74 3a 3b 09 6c ┆cpm ;go to cp/m ; ; wboot:; l┆ 0x0a5e00…0a5e20 (44, 0, 8) 72 65 73 65 74 20 6d 6f 6e 69 74 6f 72 20 65 6e 74 72 79 20 70 6f 69 6e 74 73 0d 0a 09 6d 76 69 ┆reset monitor entry points mvi┆ 0x0a5e20…0a5e40 09 61 2c 6a 6d 70 0d 0a 09 73 74 61 09 30 0d 0a 09 6c 78 69 09 68 2c 77 62 6f 6f 74 65 0d 0a 09 ┆ a,jmp sta 0 lxi h,wboote ┆ 0x0a5e40…0a5e60 73 68 6c 64 09 31 09 3b 6a 6d 70 20 77 62 6f 6f 74 20 61 74 20 6c 6f 63 61 74 69 6f 6e 20 30 30 ┆shld 1 ;jmp wboot at location 00┆ 0x0a5e60…0a5e80 0d 0a 09 73 74 61 09 35 0d 0a 09 6c 78 69 09 68 2c 62 64 6f 73 0d 0a 09 73 68 6c 64 09 36 09 3b ┆ sta 5 lxi h,bdos shld 6 ;┆ 0x0a5e80…0a5ea0 6a 6d 70 20 62 64 6f 73 20 61 74 20 6c 6f 63 61 74 69 6f 6e 20 35 0d 0a 09 69 66 09 6e 6f 74 20 ┆jmp bdos at location 5 if not ┆ 0x0a5ea0…0a5ec0 74 65 73 74 0d 0a 09 73 74 61 09 37 2a 38 09 3b 6a 6d 70 20 74 6f 20 6d 6f 6e 38 30 20 28 6d 61 ┆test sta 7*8 ;jmp to mon80 (ma┆ 0x0a5ec0…0a5ee0 79 20 68 61 76 65 20 62 65 65 6e 20 63 68 61 6e 67 65 64 20 62 79 20 64 64 74 29 0d 0a 09 6c 78 ┆y have been changed by ddt) lx┆ 0x0a5ee0…0a5f00 69 09 68 2c 6d 6f 6e 38 30 0d 0a 09 73 68 6c 64 09 37 2a 38 2b 31 0d 0a 09 65 6e 64 69 66 0d 0a ┆i h,mon80 shld 7*8+1 endif ┆ 0x0a5f00…0a5f20 3b 09 6c 65 61 76 65 20 69 6f 62 79 74 65 20 73 65 74 0d 0a 3b 09 70 72 65 76 69 6f 75 73 6c 79 ┆; leave iobyte set ; previously┆ 0x0a5f20…0a5f40 20 73 65 6c 65 63 74 65 64 20 64 69 73 6b 20 77 61 73 20 62 2c 20 73 65 6e 64 20 70 61 72 61 6d ┆ selected disk was b, send param┆ 0x0a5f40…0a5f60 65 74 65 72 20 74 6f 20 63 70 6d 0d 0a 09 6c 64 61 09 63 64 69 73 6b 09 3b 6c 61 73 74 20 6c 6f ┆eter to cpm lda cdisk ;last lo┆ 0x0a5f60…0a5f80 67 67 65 64 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 73 65 6e 64 ┆gged disk number mov c,a ;send┆ 0x0a5f80…0a5fa0 20 74 6f 20 63 63 70 20 74 6f 20 6c 6f 67 20 69 74 20 69 6e 0d 0a 09 65 69 0d 0a 09 6a 6d 70 09 ┆ to ccp to log it in ei jmp ┆ 0x0a5fa0…0a5fc0 63 70 6d 62 0d 0a 3b 0d 0a 3b 09 65 72 72 6f 72 20 63 6f 6e 64 69 74 69 6f 6e 20 6f 63 63 75 72 ┆cpmb ; ; error condition occur┆ 0x0a5fc0…0a5fe0 72 65 64 2c 20 70 72 69 6e 74 20 6d 65 73 73 61 67 65 20 61 6e 64 20 72 65 74 72 79 0d 0a 62 6f ┆red, print message and retry bo┆ 0x0a5fe0…0a6000 6f 74 65 72 72 3a 0d 0a 09 70 6f 70 09 62 09 3b 72 65 63 61 6c 6c 20 63 6f 75 6e 74 73 0d 0a 09 ┆oterr: pop b ;recall counts ┆ 0x0a6000…0a6020 (44, 0, 9) 30 0d 0a 3b 09 44 69 67 69 74 61 6c 20 52 65 73 65 61 72 63 68 0d 0a 3b 09 42 6f 78 20 35 37 39 ┆0 ; Digital Research ; Box 579┆ 0x0a6020…0a6040 2c 20 50 61 63 69 66 69 63 20 47 72 6f 76 65 0d 0a 3b 09 43 61 6c 69 66 6f 72 6e 69 61 2c 20 39 ┆, Pacific Grove ; California, 9┆ 0x0a6040…0a6060 33 39 35 30 0d 0a 3b 0d 0a 3b 0d 0a 74 72 75 65 09 65 71 75 09 30 66 66 66 66 68 09 3b 76 61 6c ┆3950 ; ; true equ 0ffffh ;val┆ 0x0a6060…0a6080 75 65 20 6f 66 20 22 74 72 75 65 22 0d 0a 66 61 6c 73 65 09 65 71 75 09 6e 6f 74 20 74 72 75 65 ┆ue of "true" false equ not true┆ 0x0a6080…0a60a0 09 3b 22 66 61 6c 73 65 22 0d 0a 74 65 73 74 09 65 71 75 09 66 61 6c 73 65 09 3b 74 72 75 65 20 ┆ ;"false" test equ false ;true ┆ 0x0a60a0…0a60c0 69 66 20 74 65 73 74 20 62 69 6f 73 0d 0a 3b 0d 0a 09 69 66 09 74 65 73 74 0d 0a 62 69 61 73 09 ┆if test bios ; if test bias ┆ 0x0a60c0…0a60e0 65 71 75 09 30 33 34 30 30 68 09 3b 62 61 73 65 20 6f 66 20 43 43 50 20 69 6e 20 74 65 73 74 20 ┆equ 03400h ;base of CCP in test ┆ 0x0a60e0…0a6100 73 79 73 74 65 6d 0d 0a 09 65 6e 64 69 66 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 62 69 ┆system endif if not test bi┆ 0x0a6100…0a6120 61 73 09 65 71 75 09 30 30 30 30 68 09 3b 67 65 6e 65 72 61 74 65 20 72 65 6c 6f 63 61 74 61 62 ┆as equ 0000h ;generate relocatab┆ 0x0a6120…0a6140 6c 65 20 63 70 2f 6d 20 73 79 73 74 65 6d 0d 0a 09 65 6e 64 69 66 0d 0a 3b 0d 0a 70 61 74 63 68 ┆le cp/m system endif ; patch┆ 0x0a6140…0a6160 09 65 71 75 09 31 36 30 30 68 0d 0a 3b 0d 0a 09 6f 72 67 09 70 61 74 63 68 0d 0a 63 70 6d 62 09 ┆ equ 1600h ; org patch cpmb ┆ 0x0a6160…0a6180 65 71 75 09 24 2d 70 61 74 63 68 09 3b 62 61 73 65 20 6f 66 20 63 70 6d 20 63 6f 6e 73 6f 6c 65 ┆equ $-patch ;base of cpm console┆ 0x0a6180…0a61a0 20 70 72 6f 63 65 73 73 6f 72 0d 0a 62 64 6f 73 09 65 71 75 09 38 30 36 68 2b 63 70 6d 62 09 3b ┆ processor bdos equ 806h+cpmb ;┆ 0x0a61a0…0a61c0 62 61 73 69 63 20 64 6f 73 20 28 72 65 73 69 64 65 6e 74 20 70 6f 72 74 69 6f 6e 29 0d 0a 63 70 ┆basic dos (resident portion) cp┆ 0x0a61c0…0a61e0 6d 6c 09 65 71 75 09 24 2d 63 70 6d 62 09 3b 6c 65 6e 67 74 68 20 28 69 6e 20 62 79 74 65 73 29 ┆ml equ $-cpmb ;length (in bytes)┆ 0x0a61e0…0a6200 20 6f 66 20 63 70 6d 20 73 79 73 74 65 6d 0d 0a 6e 73 65 63 74 73 09 65 71 75 09 63 70 6d 6c 2f ┆ of cpm system nsects equ cpml/┆ 0x0a6200…0a6220 (44, 0, 10) 6e 69 74 69 6f 6e 20 6c 69 62 72 61 72 79 0d 0a 09 64 69 73 6b 73 09 34 09 3b 66 6f 75 72 20 64 ┆nition library disks 4 ;four d┆ 0x0a6220…0a6240 69 73 6b 73 0d 0a 09 64 69 73 6b 64 65 66 09 30 2c 31 2c 32 36 2c 36 2c 31 30 32 34 2c 32 34 33 ┆isks diskdef 0,1,26,6,1024,243┆ 0x0a6240…0a6260 2c 36 34 2c 36 34 2c 6f 66 66 73 65 74 0d 0a 09 64 69 73 6b 64 65 66 09 31 2c 30 0d 0a 09 64 69 ┆,64,64,offset diskdef 1,0 di┆ 0x0a6260…0a6280 73 6b 64 65 66 09 32 2c 30 0d 0a 09 64 69 73 6b 64 65 66 09 33 2c 30 0d 0a 3b 09 65 6e 64 65 66 ┆skdef 2,0 diskdef 3,0 ; endef┆ 0x0a6280…0a62a0 20 6f 63 63 75 72 73 20 61 74 20 65 6e 64 20 6f 66 20 61 73 73 65 6d 62 6c 79 0d 0a 3b 0d 0a 3b ┆ occurs at end of assembly ; ;┆ 0x0a62a0…0a62c0 09 65 6e 64 20 6f 66 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 2d 20 69 6e 64 65 70 65 6e 64 65 6e 74 ┆ end of controller - independent┆ 0x0a62c0…0a62e0 20 63 6f 64 65 2c 20 74 68 65 20 72 65 6d 61 69 6e 69 6e 67 20 73 75 62 72 6f 75 74 69 6e 65 73 ┆ code, the remaining subroutines┆ 0x0a62e0…0a6300 0d 0a 3b 09 61 72 65 20 74 61 69 6c 6f 72 65 64 20 74 6f 20 74 68 65 20 70 61 72 74 69 63 75 6c ┆ ; are tailored to the particul┆ 0x0a6300…0a6320 61 72 20 6f 70 65 72 61 74 69 6e 67 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 2c 20 61 6e 64 20 6d 75 ┆ar operating environment, and mu┆ 0x0a6320…0a6340 73 74 0d 0a 3b 09 62 65 20 61 6c 74 65 72 65 64 20 66 6f 72 20 61 6e 79 20 73 79 73 74 65 6d 20 ┆st ; be altered for any system ┆ 0x0a6340…0a6360 77 68 69 63 68 20 64 69 66 66 65 72 73 20 66 72 6f 6d 20 74 68 65 20 69 6e 74 65 6c 20 6d 64 73 ┆which differs from the intel mds┆ 0x0a6360…0a6380 2e 0d 0a 3b 0d 0a 3b 09 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 64 65 20 61 73 73 75 6d ┆. ; ; the following code assum┆ 0x0a6380…0a63a0 65 73 20 74 68 65 20 6d 64 73 20 6d 6f 6e 69 74 6f 72 20 65 78 69 73 74 73 20 61 74 20 30 66 38 ┆es the mds monitor exists at 0f8┆ 0x0a63a0…0a63c0 30 30 68 0d 0a 3b 09 61 6e 64 20 75 73 65 73 20 74 68 65 20 69 2f 6f 20 73 75 62 72 6f 75 74 69 ┆00h ; and uses the i/o subrouti┆ 0x0a63c0…0a63e0 6e 65 73 20 77 69 74 68 69 6e 20 74 68 65 20 6d 6f 6e 69 74 6f 72 0d 0a 3b 0d 0a 3b 09 77 65 20 ┆nes within the monitor ; ; we ┆ 0x0a63e0…0a6400 61 6c 73 6f 20 61 73 73 75 6d 65 20 74 68 65 20 6d 64 73 20 73 79 73 74 65 6d 20 68 61 73 20 66 ┆also assume the mds system has f┆ 0x0a6400…0a6420 (44, 0, 11) 6f 61 64 65 72 20 6f 6e 20 74 72 61 63 6b 20 30 2c 20 73 65 63 74 6f 72 20 31 2c 20 77 68 69 63 ┆oader on track 0, sector 1, whic┆ 0x0a6420…0a6440 68 20 77 69 6c 6c 20 62 65 20 73 6b 69 70 70 65 64 20 66 6f 72 20 77 61 72 6d 20 0d 0a 3b 09 72 ┆h will be skipped for warm ; r┆ 0x0a6440…0a6460 65 61 64 20 63 70 2f 6d 20 66 72 6f 6d 20 64 69 73 6b 20 2d 20 61 73 73 75 6d 69 6e 67 20 74 68 ┆ead cp/m from disk - assuming th┆ 0x0a6460…0a6480 65 72 65 20 69 73 20 61 20 31 32 38 20 62 79 74 65 20 63 6f 6c 64 20 73 74 61 72 74 0d 0a 3b 09 ┆ere is a 128 byte cold start ; ┆ 0x0a6480…0a64a0 73 74 61 72 74 2e 0d 0a 3b 0d 0a 09 6c 78 69 09 73 70 2c 62 75 66 66 09 3b 75 73 69 6e 67 20 64 ┆start. ; lxi sp,buff ;using d┆ 0x0a64a0…0a64c0 6d 61 20 2d 20 74 68 75 73 20 38 30 20 74 68 72 75 20 66 66 20 61 76 61 69 6c 61 62 6c 65 20 66 ┆ma - thus 80 thru ff available f┆ 0x0a64c0…0a64e0 6f 72 20 73 74 61 63 6b 0d 0a 3b 0d 0a 09 6d 76 69 09 63 2c 72 65 74 72 79 09 3b 6d 61 78 20 72 ┆or stack ; mvi c,retry ;max r┆ 0x0a64e0…0a6500 65 74 72 69 65 73 0d 0a 09 70 75 73 68 09 62 0d 0a 77 62 6f 6f 74 30 3a 09 3b 65 6e 74 65 72 20 ┆etries push b wboot0: ;enter ┆ 0x0a6500…0a6520 68 65 72 65 20 6f 6e 20 65 72 72 6f 72 20 72 65 74 72 69 65 73 0d 0a 09 6c 78 69 09 62 2c 63 70 ┆here on error retries lxi b,cp┆ 0x0a6520…0a6540 6d 62 09 3b 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 74 6f 20 73 74 61 72 74 20 6f 66 20 ┆mb ;set dma address to start of ┆ 0x0a6540…0a6560 64 69 73 6b 20 73 79 73 74 65 6d 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 09 6d 76 69 09 ┆disk system call setdma mvi ┆ 0x0a6560…0a6580 63 2c 30 09 3b 62 6f 6f 74 20 66 72 6f 6d 20 64 72 69 76 65 20 30 0d 0a 09 63 61 6c 6c 09 73 65 ┆c,0 ;boot from drive 0 call se┆ 0x0a6580…0a65a0 6c 64 73 6b 0d 0a 09 6d 76 69 09 63 2c 30 0d 0a 09 63 61 6c 6c 09 73 65 74 74 72 6b 09 3b 73 74 ┆ldsk mvi c,0 call settrk ;st┆ 0x0a65a0…0a65c0 61 72 74 20 77 69 74 68 20 74 72 61 63 6b 20 30 0d 0a 09 6d 76 69 09 63 2c 32 09 3b 73 74 61 72 ┆art with track 0 mvi c,2 ;star┆ 0x0a65c0…0a65e0 74 20 72 65 61 64 69 6e 67 20 73 65 63 74 6f 72 20 32 0d 0a 09 63 61 6c 6c 09 73 65 74 73 65 63 ┆t reading sector 2 call setsec┆ 0x0a65e0…0a6600 0d 0a 3b 0d 0a 3b 09 72 65 61 64 20 73 65 63 74 6f 72 73 2c 20 63 6f 75 6e 74 20 6e 73 65 63 74 ┆ ; ; read sectors, count nsect┆ 0x0a6600…0a6620 (44, 0, 12) 64 63 72 09 63 0d 0a 09 6a 7a 09 62 6f 6f 74 65 72 30 0d 0a 3b 09 74 72 79 20 61 67 61 69 6e 0d ┆dcr c jz booter0 ; try again ┆ 0x0a6620…0a6640 0a 09 70 75 73 68 09 62 0d 0a 09 6a 6d 70 09 77 62 6f 6f 74 30 0d 0a 3b 0d 0a 62 6f 6f 74 65 72 ┆ push b jmp wboot0 ; booter┆ 0x0a6640…0a6660 30 3a 0d 0a 3b 09 6f 74 68 65 72 77 69 73 65 20 74 6f 6f 20 6d 61 6e 79 20 72 65 74 72 69 65 73 ┆0: ; otherwise too many retries┆ 0x0a6660…0a6680 0d 0a 09 6c 78 69 09 68 2c 62 6f 6f 74 6d 73 67 0d 0a 09 63 61 6c 6c 09 70 72 6d 73 67 0d 0a 09 ┆ lxi h,bootmsg call prmsg ┆ 0x0a6680…0a66a0 6a 6d 70 09 72 6d 6f 6e 38 30 09 3b 6d 64 73 20 68 61 72 64 77 61 72 65 20 6d 6f 6e 69 74 6f 72 ┆jmp rmon80 ;mds hardware monitor┆ 0x0a66a0…0a66c0 0d 0a 3b 0d 0a 62 6f 6f 74 6d 73 67 3a 0d 0a 09 64 62 09 27 3f 62 6f 6f 74 27 2c 30 0d 0a 3b 0d ┆ ; bootmsg: db '?boot',0 ; ┆ 0x0a66c0…0a66e0 0a 3b 0d 0a 63 6f 6e 73 74 3a 09 3b 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 20 74 6f 20 72 65 ┆ ; const: ;console status to re┆ 0x0a66e0…0a6700 67 2d 61 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 ┆g-a ; (exactly the same as mds ┆ 0x0a6700…0a6720 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 63 73 74 73 0d 0a 3b 0d 0a 63 6f 6e 69 6e 3a 09 3b 63 6f 6e ┆call) jmp csts ; conin: ;con┆ 0x0a6720…0a6740 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 72 65 67 2d 61 0d 0a 09 63 61 6c 6c 09 63 ┆sole character to reg-a call c┆ 0x0a6740…0a6760 69 0d 0a 09 61 6e 69 09 37 66 68 09 3b 72 65 6d 6f 76 65 20 70 61 72 69 74 79 20 62 69 74 0d 0a ┆i ani 7fh ;remove parity bit ┆ 0x0a6760…0a6780 09 72 65 74 0d 0a 3b 0d 0a 63 6f 6e 6f 75 74 3a 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 ┆ ret ; conout: ;console charac┆ 0x0a6780…0a67a0 74 65 72 20 66 72 6f 6d 20 63 20 74 6f 20 63 6f 6e 73 6f 6c 65 20 6f 75 74 0d 0a 09 6a 6d 70 09 ┆ter from c to console out jmp ┆ 0x0a67a0…0a67c0 63 6f 0d 0a 3b 0d 0a 6c 69 73 74 3a 09 3b 6c 69 73 74 20 64 65 76 69 63 65 20 6f 75 74 0d 0a 3b ┆co ; list: ;list device out ;┆ 0x0a67c0…0a67e0 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d ┆ (exactly the same as mds call) ┆ 0x0a67e0…0a6800 0a 09 6a 6d 70 09 6c 6f 0d 0a 3b 0d 0a 6c 69 73 74 73 74 3a 0d 0a 09 3b 72 65 74 75 72 6e 20 6c ┆ jmp lo ; listst: ;return l┆ 0x0a6800…0a6820 (44, 0, 13) 31 32 38 09 3b 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 20 74 6f 20 6c 6f 61 64 0d 0a ┆128 ;number of sectors to load ┆ 0x0a6820…0a6840 6f 66 66 73 65 74 09 65 71 75 09 32 09 3b 6e 75 6d 62 65 72 20 6f 66 20 64 69 73 6b 20 74 72 61 ┆offset equ 2 ;number of disk tra┆ 0x0a6840…0a6860 63 6b 73 20 75 73 65 64 20 62 79 20 63 70 2f 6d 0d 0a 63 64 69 73 6b 09 65 71 75 09 30 30 30 34 ┆cks used by cp/m cdisk equ 0004┆ 0x0a6860…0a6880 68 09 3b 61 64 64 72 65 73 73 20 6f 66 20 6c 61 73 74 20 6c 6f 67 67 65 64 20 64 69 73 6b 20 6f ┆h ;address of last logged disk o┆ 0x0a6880…0a68a0 6e 20 77 61 72 6d 20 73 74 61 72 74 0d 0a 62 75 66 66 09 65 71 75 09 30 30 38 30 68 09 3b 64 65 ┆n warm start buff equ 0080h ;de┆ 0x0a68a0…0a68c0 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 0d 0a 72 65 74 72 79 09 65 71 75 09 ┆fault buffer address retry equ ┆ 0x0a68c0…0a68e0 31 30 09 3b 6d 61 78 20 72 65 74 72 69 65 73 20 6f 6e 20 64 69 73 6b 20 69 2f 6f 20 62 65 66 6f ┆10 ;max retries on disk i/o befo┆ 0x0a68e0…0a6900 72 65 20 65 72 72 6f 72 0d 0a 3b 0d 0a 3b 09 70 65 72 66 6f 72 6d 20 66 6f 6c 6c 6f 77 69 6e 67 ┆re error ; ; perform following┆ 0x0a6900…0a6920 20 66 75 6e 63 74 69 6f 6e 73 0d 0a 3b 09 62 6f 6f 74 09 63 6f 6c 64 20 73 74 61 72 74 0d 0a 3b ┆ functions ; boot cold start ;┆ 0x0a6920…0a6940 09 77 62 6f 6f 74 09 77 61 72 6d 20 73 74 61 72 74 20 28 73 61 76 65 20 69 2f 6f 20 62 79 74 65 ┆ wboot warm start (save i/o byte┆ 0x0a6940…0a6960 29 0d 0a 3b 09 28 62 6f 6f 74 20 61 6e 64 20 77 62 6f 6f 74 20 61 72 65 20 74 68 65 20 73 61 6d ┆) ; (boot and wboot are the sam┆ 0x0a6960…0a6980 65 20 66 6f 72 20 6d 64 73 29 0d 0a 3b 09 63 6f 6e 73 74 09 63 6f 6e 73 6f 6c 65 20 73 74 61 74 ┆e for mds) ; const console stat┆ 0x0a6980…0a69a0 75 73 0d 0a 3b 09 09 72 65 67 2d 61 20 3d 20 30 30 20 69 66 20 6e 6f 20 63 68 61 72 61 63 74 65 ┆us ; reg-a = 00 if no characte┆ 0x0a69a0…0a69c0 72 20 72 65 61 64 79 0d 0a 3b 09 09 72 65 67 2d 61 20 3d 20 66 66 20 69 66 20 63 68 61 72 61 63 ┆r ready ; reg-a = ff if charac┆ 0x0a69c0…0a69e0 74 65 72 20 72 65 61 64 79 0d 0a 3b 09 63 6f 6e 69 6e 09 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 ┆ter ready ; conin console chara┆ 0x0a69e0…0a6a00 63 74 65 72 20 69 6e 20 28 72 65 73 75 6c 74 20 69 6e 20 72 65 67 2d 61 29 0d 0a 3b 09 63 6f 6e ┆cter in (result in reg-a) ; con┆ 0x0a6a00…0a6a20 (44, 0, 14) 6f 75 72 20 64 69 73 6b 20 64 72 69 76 65 73 0d 0a 72 65 76 72 74 09 65 71 75 09 30 66 64 68 09 ┆our disk drives revrt equ 0fdh ┆ 0x0a6a20…0a6a40 3b 69 6e 74 65 72 72 75 70 74 20 72 65 76 65 72 74 20 70 6f 72 74 0d 0a 69 6e 74 63 09 65 71 75 ┆;interrupt revert port intc equ┆ 0x0a6a40…0a6a60 09 30 66 63 68 09 3b 69 6e 74 65 72 72 75 70 74 20 6d 61 73 6b 20 70 6f 72 74 0d 0a 69 63 6f 6e ┆ 0fch ;interrupt mask port icon┆ 0x0a6a60…0a6a80 09 65 71 75 09 30 66 33 68 09 3b 69 6e 74 65 72 72 75 70 74 20 63 6f 6e 74 72 6f 6c 20 70 6f 72 ┆ equ 0f3h ;interrupt control por┆ 0x0a6a80…0a6aa0 74 0d 0a 69 6e 74 65 09 65 71 75 09 30 31 31 31 24 31 31 31 30 62 09 3b 65 6e 61 62 6c 65 20 72 ┆t inte equ 0111$1110b ;enable r┆ 0x0a6aa0…0a6ac0 73 74 20 30 28 77 61 72 6d 20 62 6f 6f 74 29 2c 20 72 73 74 20 37 20 28 6d 6f 6e 69 74 6f 72 29 ┆st 0(warm boot), rst 7 (monitor)┆ 0x0a6ac0…0a6ae0 0d 0a 3b 0d 0a 3b 09 6d 64 73 20 6d 6f 6e 69 74 6f 72 20 65 71 75 61 74 65 73 0d 0a 6d 6f 6e 38 ┆ ; ; mds monitor equates mon8┆ 0x0a6ae0…0a6b00 30 09 65 71 75 09 30 66 38 30 30 68 09 3b 6d 64 73 20 6d 6f 6e 69 74 6f 72 0d 0a 72 6d 6f 6e 38 ┆0 equ 0f800h ;mds monitor rmon8┆ 0x0a6b00…0a6b20 30 09 65 71 75 09 30 66 66 30 66 68 09 3b 72 65 73 74 61 72 74 20 6d 6f 6e 38 30 20 28 62 6f 6f ┆0 equ 0ff0fh ;restart mon80 (boo┆ 0x0a6b20…0a6b40 74 20 65 72 72 6f 72 29 0d 0a 63 69 09 65 71 75 09 30 66 38 30 33 68 09 3b 63 6f 6e 73 6f 6c 65 ┆t error) ci equ 0f803h ;console┆ 0x0a6b40…0a6b60 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 72 65 67 2d 61 0d 0a 72 69 09 65 71 75 09 30 66 38 30 ┆ character to reg-a ri equ 0f80┆ 0x0a6b60…0a6b80 36 68 09 3b 72 65 61 64 65 72 20 69 6e 20 74 6f 20 72 65 67 2d 61 0d 0a 63 6f 09 65 71 75 09 30 ┆6h ;reader in to reg-a co equ 0┆ 0x0a6b80…0a6ba0 66 38 30 39 68 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 20 66 72 6f 6d 20 63 20 74 6f 20 63 6f ┆f809h ;console char from c to co┆ 0x0a6ba0…0a6bc0 6e 73 6f 6c 65 20 6f 75 74 0d 0a 70 6f 09 65 71 75 09 30 66 38 30 63 68 09 3b 70 75 6e 63 68 20 ┆nsole out po equ 0f80ch ;punch ┆ 0x0a6bc0…0a6be0 63 68 61 72 20 66 72 6f 6d 20 63 20 74 6f 20 70 75 6e 63 68 20 64 65 76 69 63 65 0d 0a 6c 6f 09 ┆char from c to punch device lo ┆ 0x0a6be0…0a6c00 65 71 75 09 30 66 38 30 66 68 09 3b 6c 69 73 74 20 66 72 6f 6d 20 63 20 74 6f 20 6c 69 73 74 20 ┆equ 0f80fh ;list from c to list ┆ 0x0a6c00…0a6c20 (44, 0, 15) 73 20 74 6f 20 7a 65 72 6f 0d 0a 09 70 6f 70 09 62 09 3b 31 30 2d 65 72 72 6f 72 20 63 6f 75 6e ┆s to zero pop b ;10-error coun┆ 0x0a6c20…0a6c40 74 0d 0a 09 6d 76 69 09 62 2c 6e 73 65 63 74 73 0d 0a 72 64 73 65 63 3a 09 3b 72 65 61 64 20 6e ┆t mvi b,nsects rdsec: ;read n┆ 0x0a6c40…0a6c60 65 78 74 20 73 65 63 74 6f 72 0d 0a 09 70 75 73 68 09 62 09 3b 73 61 76 65 20 73 65 63 74 6f 72 ┆ext sector push b ;save sector┆ 0x0a6c60…0a6c80 20 63 6f 75 6e 74 0d 0a 09 63 61 6c 6c 09 72 65 61 64 0d 0a 09 6a 6e 7a 09 62 6f 6f 74 65 72 72 ┆ count call read jnz booterr┆ 0x0a6c80…0a6ca0 09 3b 72 65 74 72 79 20 69 66 20 65 72 72 6f 72 73 20 6f 63 63 75 72 0d 0a 09 6c 68 6c 64 09 69 ┆ ;retry if errors occur lhld i┆ 0x0a6ca0…0a6cc0 6f 64 09 3b 69 6e 63 72 65 6d 65 6e 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 09 6c 78 69 09 ┆od ;increment dma address lxi ┆ 0x0a6cc0…0a6ce0 64 2c 31 32 38 09 3b 73 65 63 74 6f 72 20 73 69 7a 65 0d 0a 09 64 61 64 09 64 09 3b 69 6e 63 72 ┆d,128 ;sector size dad d ;incr┆ 0x0a6ce0…0a6d00 65 6d 65 6e 74 65 64 20 64 6d 61 20 61 64 64 72 65 73 73 20 69 6e 20 68 6c 0d 0a 09 6d 6f 76 09 ┆emented dma address in hl mov ┆ 0x0a6d00…0a6d20 62 2c 68 0d 0a 09 6d 6f 76 09 63 2c 6c 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 20 74 6f ┆b,h mov c,l ;ready for call to┆ 0x0a6d20…0a6d40 20 73 65 74 20 64 6d 61 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 09 6c 64 61 09 69 6f 73 ┆ set dma call setdma lda ios┆ 0x0a6d40…0a6d60 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 6a 75 73 74 20 72 65 61 64 0d 0a 09 63 70 69 09 ┆ ;sector number just read cpi ┆ 0x0a6d60…0a6d80 32 36 09 3b 72 65 61 64 20 6c 61 73 74 20 73 65 63 74 6f 72 3f 0d 0a 09 6a 63 09 72 64 31 0d 0a ┆26 ;read last sector? jc rd1 ┆ 0x0a6d80…0a6da0 3b 09 6d 75 73 74 20 62 65 20 73 65 63 74 6f 72 20 32 36 2c 20 7a 65 72 6f 20 61 6e 64 20 67 6f ┆; must be sector 26, zero and go┆ 0x0a6da0…0a6dc0 20 74 6f 20 6e 65 78 74 20 74 72 61 63 6b 0d 0a 09 6c 64 61 09 69 6f 74 09 3b 67 65 74 20 74 72 ┆ to next track lda iot ;get tr┆ 0x0a6dc0…0a6de0 61 63 6b 20 74 6f 20 72 65 67 69 73 74 65 72 20 61 0d 0a 09 69 6e 72 09 61 0d 0a 09 6d 6f 76 09 ┆ack to register a inr a mov ┆ 0x0a6de0…0a6e00 63 2c 61 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 0d 0a 09 63 61 6c 6c 09 73 65 74 74 72 ┆c,a ;ready for call call settr┆ 0x0a6e00…0a6e20 (44, 1, 1) 69 73 74 20 73 74 61 74 75 73 0d 0a 09 78 72 61 09 61 0d 0a 09 72 65 74 09 09 3b 61 6c 77 61 79 ┆ist status xra a ret ;alway┆ 0x0a6e20…0a6e40 73 20 6e 6f 74 20 72 65 61 64 79 0d 0a 3b 0d 0a 70 75 6e 63 68 3a 09 3b 70 75 6e 63 68 20 64 65 ┆s not ready ; punch: ;punch de┆ 0x0a6e40…0a6e60 76 69 63 65 20 6f 75 74 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 ┆vice out ; (exactly the same as┆ 0x0a6e60…0a6e80 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 70 6f 0d 0a 3b 0d 0a 72 65 61 64 65 72 3a 09 ┆ mds call) jmp po ; reader: ┆ 0x0a6e80…0a6ea0 3b 72 65 61 64 65 72 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 74 6f 20 72 65 67 2d 61 0d 0a 3b ┆;reader character in to reg-a ;┆ 0x0a6ea0…0a6ec0 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d ┆ (exactly the same as mds call) ┆ 0x0a6ec0…0a6ee0 0a 09 6a 6d 70 09 72 69 0d 0a 3b 0d 0a 68 6f 6d 65 3a 09 3b 6d 6f 76 65 20 74 6f 20 68 6f 6d 65 ┆ jmp ri ; home: ;move to home┆ 0x0a6ee0…0a6f00 20 70 6f 73 69 74 69 6f 6e 0d 0a 3b 09 74 72 65 61 74 20 61 73 20 74 72 61 63 6b 20 30 30 20 73 ┆ position ; treat as track 00 s┆ 0x0a6f00…0a6f20 65 65 6b 0d 0a 09 6d 76 69 09 63 2c 30 0d 0a 09 6a 6d 70 09 73 65 74 74 72 6b 0d 0a 3b 0d 0a 73 ┆eek mvi c,0 jmp settrk ; s┆ 0x0a6f20…0a6f40 65 6c 64 73 6b 3a 09 3b 73 65 6c 65 63 74 20 64 69 73 6b 20 67 69 76 65 6e 20 62 79 20 72 65 67 ┆eldsk: ;select disk given by reg┆ 0x0a6f40…0a6f60 69 73 74 65 72 20 63 0d 0a 09 6c 78 69 09 68 2c 30 30 30 30 68 09 3b 72 65 74 75 72 6e 20 30 30 ┆ister c lxi h,0000h ;return 00┆ 0x0a6f60…0a6f80 30 30 20 69 66 20 65 72 72 6f 72 0d 0a 09 6d 6f 76 09 61 2c 63 0d 0a 09 63 70 69 09 6e 64 69 73 ┆00 if error mov a,c cpi ndis┆ 0x0a6f80…0a6fa0 6b 73 09 3b 74 6f 6f 20 6c 61 72 67 65 3f 0d 0a 09 72 6e 63 09 09 3b 6c 65 61 76 65 20 48 4c 20 ┆ks ;too large? rnc ;leave HL ┆ 0x0a6fa0…0a6fc0 3d 20 30 30 30 30 0d 0a 3b 0d 0a 09 61 6e 69 09 31 30 62 09 3b 30 30 20 30 30 20 66 6f 72 20 64 ┆= 0000 ; ani 10b ;00 00 for d┆ 0x0a6fc0…0a6fe0 72 69 76 65 20 30 2c 31 20 61 6e 64 20 31 30 20 31 30 20 66 6f 72 20 64 72 69 76 65 20 32 2c 33 ┆rive 0,1 and 10 10 for drive 2,3┆ 0x0a6fe0…0a7000 0d 0a 09 73 74 61 09 64 62 61 6e 6b 09 3b 74 6f 20 73 65 6c 65 63 74 20 64 72 69 76 65 20 62 61 ┆ sta dbank ;to select drive ba┆ 0x0a7000…0a7020 (44, 1, 2) 65 73 73 0d 0a 09 6d 6f 76 09 61 2c 6d 09 3b 67 65 74 20 69 74 20 74 6f 20 61 63 63 75 6d 75 6c ┆ess mov a,m ;get it to accumul┆ 0x0a7020…0a7040 61 74 6f 72 20 66 6f 72 20 6d 61 73 6b 69 6e 67 0d 0a 09 61 6e 69 09 31 31 31 31 31 30 30 30 62 ┆ator for masking ani 11111000b┆ 0x0a7040…0a7060 09 3b 72 65 6d 6f 76 65 20 70 72 65 76 69 6f 75 73 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6f 72 61 09 ┆ ;remove previous command ora ┆ 0x0a7060…0a7080 63 09 3b 73 65 74 20 74 6f 20 6e 65 77 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6d 6f 76 09 6d 2c 61 09 ┆c ;set to new command mov m,a ┆ 0x0a7080…0a70a0 3b 72 65 70 6c 61 63 65 64 20 69 6e 20 69 6f 70 62 0d 0a 3b 09 74 68 65 20 6d 64 73 2d 38 30 30 ┆;replaced in iopb ; the mds-800┆ 0x0a70a0…0a70c0 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 72 65 71 75 69 72 65 73 20 64 69 73 6b 20 62 61 6e 6b 20 62 ┆ controller requires disk bank b┆ 0x0a70c0…0a70e0 69 74 20 69 6e 20 73 65 63 74 6f 72 20 62 79 74 65 0d 0a 3b 09 6d 61 73 6b 20 74 68 65 20 62 69 ┆it in sector byte ; mask the bi┆ 0x0a70e0…0a7100 74 20 66 72 6f 6d 20 74 68 65 20 63 75 72 72 65 6e 74 20 69 2f 6f 20 66 75 6e 63 74 69 6f 6e 0d ┆t from the current i/o function ┆ 0x0a7100…0a7120 0a 09 61 6e 69 09 30 30 31 30 30 30 30 30 62 09 3b 6d 61 73 6b 20 74 68 65 20 64 69 73 6b 20 73 ┆ ani 00100000b ;mask the disk s┆ 0x0a7120…0a7140 65 6c 65 63 74 20 62 69 74 0d 0a 09 6c 78 69 09 68 2c 69 6f 73 09 09 3b 61 64 64 72 65 73 73 20 ┆elect bit lxi h,ios ;address ┆ 0x0a7140…0a7160 74 68 65 20 73 65 63 74 6f 72 20 73 65 6c 65 63 74 20 62 79 74 65 0d 0a 09 6f 72 61 09 6d 09 09 ┆the sector select byte ora m ┆ 0x0a7160…0a7180 3b 73 65 6c 65 63 74 20 70 72 6f 70 65 72 20 64 69 73 6b 20 62 61 6e 6b 0d 0a 09 6d 6f 76 09 6d ┆;select proper disk bank mov m┆ 0x0a7180…0a71a0 2c 61 09 09 3b 73 65 74 20 64 69 73 6b 20 73 65 6c 65 63 74 20 62 69 74 20 6f 6e 2f 6f 66 66 0d ┆,a ;set disk select bit on/off ┆ 0x0a71a0…0a71c0 0a 09 72 65 74 0d 0a 3b 0d 0a 77 61 69 74 69 6f 3a 0d 0a 09 6d 76 69 09 63 2c 72 65 74 72 79 09 ┆ ret ; waitio: mvi c,retry ┆ 0x0a71c0…0a71e0 3b 6d 61 78 20 72 65 74 72 69 65 73 20 62 65 66 6f 72 65 20 70 65 72 6d 20 65 72 72 6f 72 0d 0a ┆;max retries before perm error ┆ 0x0a71e0…0a7200 72 65 77 61 69 74 3a 0d 0a 3b 09 73 74 61 72 74 20 74 68 65 20 69 2f 6f 20 66 75 6e 63 74 69 6f ┆rewait: ; start the i/o functio┆ 0x0a7200…0a7220 (44, 1, 3) 77 72 69 74 65 20 70 72 6f 74 65 63 74 20 28 74 72 65 61 74 65 64 20 61 73 20 6e 6f 74 20 72 65 ┆write protect (treated as not re┆ 0x0a7220…0a7240 61 64 79 29 0d 0a 3b 09 36 09 2d 20 77 72 69 74 65 20 65 72 72 6f 72 20 28 68 61 72 64 77 61 72 ┆ady) ; 6 - write error (hardwar┆ 0x0a7240…0a7260 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 37 09 2d 20 6e 6f 74 20 72 65 61 64 79 0d ┆e malfunction) ; 7 - not ready ┆ 0x0a7260…0a7280 0a 3b 09 28 61 63 63 75 6d 75 6c 61 74 6f 72 20 62 69 74 73 20 61 72 65 20 6e 75 6d 62 65 72 65 ┆ ; (accumulator bits are numbere┆ 0x0a7280…0a72a0 64 20 37 20 36 20 35 20 34 20 33 20 32 20 31 20 30 29 0d 0a 3b 0d 0a 3b 09 69 74 20 6d 61 79 20 ┆d 7 6 5 4 3 2 1 0) ; ; it may ┆ 0x0a72a0…0a72c0 62 65 20 75 73 65 66 75 6c 20 74 6f 20 66 69 6c 74 65 72 20 6f 75 74 20 74 68 65 20 76 61 72 69 ┆be useful to filter out the vari┆ 0x0a72c0…0a72e0 6f 75 73 20 63 6f 6e 64 69 74 69 6f 6e 73 2c 0d 0a 3b 09 62 75 74 20 77 65 20 77 69 6c 6c 20 67 ┆ous conditions, ; but we will g┆ 0x0a72e0…0a7300 65 74 20 61 20 70 65 72 6d 61 6e 65 6e 74 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 69 66 20 ┆et a permanent error message if ┆ 0x0a7300…0a7320 69 74 20 69 73 20 6e 6f 74 0d 0a 3b 09 72 65 63 6f 76 65 72 61 62 6c 65 2e 20 20 69 6e 20 61 6e ┆it is not ; recoverable. in an┆ 0x0a7320…0a7340 79 20 63 61 73 65 2c 20 74 68 65 20 6e 6f 74 20 72 65 61 64 79 20 63 6f 6e 64 69 74 69 6f 6e 20 ┆y case, the not ready condition ┆ 0x0a7340…0a7360 69 73 0d 0a 3b 09 74 72 65 61 74 65 64 20 61 73 20 61 20 73 65 70 61 72 61 74 65 20 63 6f 6e 64 ┆is ; treated as a separate cond┆ 0x0a7360…0a7380 69 74 69 6f 6e 20 66 6f 72 20 6c 61 74 65 72 20 69 6d 70 72 6f 76 65 6d 65 6e 74 0d 0a 74 72 79 ┆ition for later improvement try┆ 0x0a7380…0a73a0 63 6f 75 6e 74 3a 0d 0a 3b 09 72 65 67 69 73 74 65 72 20 63 20 63 6f 6e 74 61 69 6e 73 20 72 65 ┆count: ; register c contains re┆ 0x0a73a0…0a73c0 74 72 79 20 63 6f 75 6e 74 2c 20 64 65 63 72 65 6d 65 6e 74 20 27 74 69 6c 20 7a 65 72 6f 0d 0a ┆try count, decrement 'til zero ┆ 0x0a73c0…0a73e0 09 64 63 72 09 63 0d 0a 09 6a 6e 7a 09 72 65 77 61 69 74 09 3b 66 6f 72 20 61 6e 6f 74 68 65 72 ┆ dcr c jnz rewait ;for another┆ 0x0a73e0…0a7400 20 74 72 79 0d 0a 3b 0d 0a 3b 09 63 61 6e 6e 6f 74 20 72 65 63 6f 76 65 72 20 66 72 6f 6d 20 65 ┆ try ; ; cannot recover from e┆ 0x0a7400…0a7420 (44, 1, 4) 09 30 30 30 34 68 09 3b 61 64 64 72 65 73 73 20 6f 66 20 6c 61 73 74 20 6c 6f 67 67 65 64 20 64 ┆ 0004h ;address of last logged d┆ 0x0a7420…0a7440 69 73 6b 20 6f 6e 20 77 61 72 6d 20 73 74 61 72 74 0d 0a 62 75 66 66 09 65 71 75 09 30 30 38 30 ┆isk on warm start buff equ 0080┆ 0x0a7440…0a7460 68 09 3b 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 0d 0a 72 65 74 72 79 ┆h ;default buffer address retry┆ 0x0a7460…0a7480 09 65 71 75 09 31 30 09 3b 6d 61 78 20 72 65 74 72 69 65 73 20 6f 6e 20 64 69 73 6b 20 69 2f 6f ┆ equ 10 ;max retries on disk i/o┆ 0x0a7480…0a74a0 20 62 65 66 6f 72 65 20 65 72 72 6f 72 0d 0a 3b 0d 0a 3b 09 70 65 72 66 6f 72 6d 20 66 6f 6c 6c ┆ before error ; ; perform foll┆ 0x0a74a0…0a74c0 6f 77 69 6e 67 20 66 75 6e 63 74 69 6f 6e 73 0d 0a 3b 09 62 6f 6f 74 09 63 6f 6c 64 20 73 74 61 ┆owing functions ; boot cold sta┆ 0x0a74c0…0a74e0 72 74 0d 0a 3b 09 77 62 6f 6f 74 09 77 61 72 6d 20 73 74 61 72 74 20 28 73 61 76 65 20 69 2f 6f ┆rt ; wboot warm start (save i/o┆ 0x0a74e0…0a7500 20 62 79 74 65 29 0d 0a 3b 09 28 62 6f 6f 74 20 61 6e 64 20 77 62 6f 6f 74 20 61 72 65 20 74 68 ┆ byte) ; (boot and wboot are th┆ 0x0a7500…0a7520 65 20 73 61 6d 65 20 66 6f 72 20 6d 64 73 29 0d 0a 3b 09 63 6f 6e 73 74 09 63 6f 6e 73 6f 6c 65 ┆e same for mds) ; const console┆ 0x0a7520…0a7540 20 73 74 61 74 75 73 0d 0a 3b 09 09 72 65 67 2d 61 20 3d 20 30 30 20 69 66 20 6e 6f 20 63 68 61 ┆ status ; reg-a = 00 if no cha┆ 0x0a7540…0a7560 72 61 63 74 65 72 20 72 65 61 64 79 0d 0a 3b 09 09 72 65 67 2d 61 20 3d 20 66 66 20 69 66 20 63 ┆racter ready ; reg-a = ff if c┆ 0x0a7560…0a7580 68 61 72 61 63 74 65 72 20 72 65 61 64 79 0d 0a 3b 09 63 6f 6e 69 6e 09 63 6f 6e 73 6f 6c 65 20 ┆haracter ready ; conin console ┆ 0x0a7580…0a75a0 63 68 61 72 61 63 74 65 72 20 69 6e 20 28 72 65 73 75 6c 74 20 69 6e 20 72 65 67 2d 61 29 0d 0a ┆character in (result in reg-a) ┆ 0x0a75a0…0a75c0 3b 09 63 6f 6e 6f 75 74 09 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 6f 75 74 20 28 ┆; conout console character out (┆ 0x0a75c0…0a75e0 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 6c 69 73 74 09 6c 69 73 74 20 6f 75 74 20 ┆char in reg-c) ; list list out ┆ 0x0a75e0…0a7600 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 70 75 6e 63 68 09 70 75 6e 63 68 20 6f ┆(char in reg-c) ; punch punch o┆ 0x0a7600…0a7620 (44, 1, 5) 6e 6b 0d 0a 09 6d 6f 76 09 61 2c 63 09 3b 30 30 2c 20 30 31 2c 20 31 30 2c 20 31 31 0d 0a 09 61 ┆nk mov a,c ;00, 01, 10, 11 a┆ 0x0a7620…0a7640 6e 69 09 31 62 09 3b 6d 64 73 20 68 61 73 20 30 2c 31 20 61 74 20 37 38 2c 20 32 2c 33 20 61 74 ┆ni 1b ;mds has 0,1 at 78, 2,3 at┆ 0x0a7640…0a7660 20 38 38 0d 0a 09 6f 72 61 09 61 09 3b 72 65 73 75 6c 74 20 30 30 3f 0d 0a 09 6a 7a 09 73 65 74 ┆ 88 ora a ;result 00? jz set┆ 0x0a7660…0a7680 64 72 69 76 65 0d 0a 09 6d 76 69 09 61 2c 30 30 31 31 30 30 30 30 62 09 3b 73 65 6c 65 63 74 73 ┆drive mvi a,00110000b ;selects┆ 0x0a7680…0a76a0 20 64 72 69 76 65 20 31 20 69 6e 20 62 61 6e 6b 0d 0a 73 65 74 64 72 69 76 65 3a 0d 0a 09 6d 6f ┆ drive 1 in bank setdrive: mo┆ 0x0a76a0…0a76c0 76 09 62 2c 61 09 3b 73 61 76 65 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6c 78 69 09 68 ┆v b,a ;save the function lxi h┆ 0x0a76c0…0a76e0 2c 69 6f 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6d 6f 76 09 61 2c 6d 0d 0a 09 61 6e ┆,iof ;io function mov a,m an┆ 0x0a76e0…0a7700 69 09 31 31 30 30 31 31 31 31 62 09 3b 6d 61 73 6b 20 6f 75 74 20 64 69 73 6b 20 6e 75 6d 62 65 ┆i 11001111b ;mask out disk numbe┆ 0x0a7700…0a7720 72 0d 0a 09 6f 72 61 09 62 09 3b 6d 61 73 6b 20 69 6e 20 6e 65 77 20 64 69 73 6b 20 6e 75 6d 62 ┆r ora b ;mask in new disk numb┆ 0x0a7720…0a7740 65 72 0d 0a 09 6d 6f 76 09 6d 2c 61 09 3b 73 61 76 65 20 69 74 20 69 6e 20 69 6f 70 62 0d 0a 09 ┆er mov m,a ;save it in iopb ┆ 0x0a7740…0a7760 6d 6f 76 09 6c 2c 63 0d 0a 09 6d 76 69 09 68 2c 30 09 3b 48 4c 3d 64 69 73 6b 20 6e 75 6d 62 65 ┆mov l,c mvi h,0 ;HL=disk numbe┆ 0x0a7760…0a7780 72 0d 0a 09 64 61 64 09 68 09 3b 2a 32 0d 0a 09 64 61 64 09 68 09 3b 2a 34 0d 0a 09 64 61 64 09 ┆r dad h ;*2 dad h ;*4 dad ┆ 0x0a7780…0a77a0 68 09 3b 2a 38 0d 0a 09 64 61 64 09 68 09 3b 2a 31 36 0d 0a 09 6c 78 69 09 64 2c 64 70 62 61 73 ┆h ;*8 dad h ;*16 lxi d,dpbas┆ 0x0a77a0…0a77c0 65 0d 0a 09 64 61 64 09 64 09 3b 48 4c 3d 64 69 73 6b 20 68 65 61 64 65 72 20 74 61 62 6c 65 20 ┆e dad d ;HL=disk header table ┆ 0x0a77c0…0a77e0 61 64 64 72 65 73 73 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 73 65 74 74 72 6b 3a 09 3b 73 65 ┆address ret ; ; settrk: ;se┆ 0x0a77e0…0a7800 74 20 74 72 61 63 6b 20 61 64 64 72 65 73 73 20 67 69 76 65 6e 20 62 79 20 63 0d 0a 09 6c 78 69 ┆t track address given by c lxi┆ 0x0a7800…0a7820 (44, 1, 6) 6e 20 61 6e 64 20 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 0d 0a 09 63 61 6c 6c ┆n and wait for completion call┆ 0x0a7820…0a7840 09 69 6e 74 79 70 65 09 3b 69 6e 20 72 74 79 70 65 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 09 ┆ intype ;in rtype call inbyte ┆ 0x0a7840…0a7860 3b 63 6c 65 61 72 73 20 74 68 65 20 63 6f 6e 74 72 6f 6c 6c 65 72 0d 0a 3b 0d 0a 09 6c 64 61 09 ┆;clears the controller ; lda ┆ 0x0a7860…0a7880 64 62 61 6e 6b 09 09 3b 73 65 74 20 62 61 6e 6b 20 66 6c 61 67 73 0d 0a 09 6f 72 61 09 61 09 09 ┆dbank ;set bank flags ora a ┆ 0x0a7880…0a78a0 3b 7a 65 72 6f 20 69 66 20 64 72 69 76 65 20 30 2c 31 20 61 6e 64 20 6e 7a 20 69 66 20 32 2c 33 ┆;zero if drive 0,1 and nz if 2,3┆ 0x0a78a0…0a78c0 0d 0a 09 6d 76 69 09 61 2c 69 6f 70 62 20 61 6e 64 20 30 66 66 68 09 3b 6c 6f 77 20 61 64 64 72 ┆ mvi a,iopb and 0ffh ;low addr┆ 0x0a78c0…0a78e0 65 73 73 20 66 6f 72 20 69 6f 70 62 0d 0a 09 6d 76 69 09 62 2c 69 6f 70 62 20 73 68 72 20 38 09 ┆ess for iopb mvi b,iopb shr 8 ┆ 0x0a78e0…0a7900 3b 68 69 67 68 20 61 64 64 72 65 73 73 20 66 6f 72 20 69 6f 70 62 0d 0a 09 6a 6e 7a 09 69 6f 64 ┆;high address for iopb jnz iod┆ 0x0a7900…0a7920 72 31 09 3b 64 72 69 76 65 20 62 61 6e 6b 20 31 3f 0d 0a 09 6f 75 74 09 69 6c 6f 77 09 09 3b 6c ┆r1 ;drive bank 1? out ilow ;l┆ 0x0a7920…0a7940 6f 77 20 61 64 64 72 65 73 73 20 74 6f 20 63 6f 6e 74 72 6f 6c 6c 65 72 0d 0a 09 6d 6f 76 09 61 ┆ow address to controller mov a┆ 0x0a7940…0a7960 2c 62 0d 0a 09 6f 75 74 09 69 68 69 67 68 09 3b 68 69 67 68 20 61 64 64 72 65 73 73 0d 0a 09 6a ┆,b out ihigh ;high address j┆ 0x0a7960…0a7980 6d 70 09 77 61 69 74 30 09 09 3b 74 6f 20 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 65 0d ┆mp wait0 ;to wait for complete ┆ 0x0a7980…0a79a0 0a 3b 0d 0a 69 6f 64 72 31 3a 09 3b 64 72 69 76 65 20 62 61 6e 6b 20 31 0d 0a 09 6f 75 74 09 69 ┆ ; iodr1: ;drive bank 1 out i┆ 0x0a79a0…0a79c0 6c 6f 77 2b 31 30 68 09 3b 38 38 20 66 6f 72 20 64 72 69 76 65 20 62 61 6e 6b 20 31 30 0d 0a 09 ┆low+10h ;88 for drive bank 10 ┆ 0x0a79c0…0a79e0 6d 6f 76 09 61 2c 62 0d 0a 09 6f 75 74 09 69 68 69 67 68 2b 31 30 68 0d 0a 3b 0d 0a 77 61 69 74 ┆mov a,b out ihigh+10h ; wait┆ 0x0a79e0…0a7a00 30 3a 09 63 61 6c 6c 09 69 6e 73 74 61 74 09 09 3b 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 ┆0: call instat ;wait for comple┆ 0x0a7a00…0a7a20 (44, 1, 7) 72 72 6f 72 0d 0a 09 6d 76 69 09 61 2c 31 09 3b 65 72 72 6f 72 20 63 6f 64 65 0d 0a 09 72 65 74 ┆rror mvi a,1 ;error code ret┆ 0x0a7a20…0a7a40 0d 0a 3b 0d 0a 3b 09 69 6e 74 79 70 65 2c 20 69 6e 62 79 74 65 2c 20 69 6e 73 74 61 74 20 72 65 ┆ ; ; intype, inbyte, instat re┆ 0x0a7a40…0a7a60 61 64 20 64 72 69 76 65 20 62 61 6e 6b 20 30 30 20 6f 72 20 31 30 0d 0a 69 6e 74 79 70 65 3a 09 ┆ad drive bank 00 or 10 intype: ┆ 0x0a7a60…0a7a80 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 74 79 70 31 09 3b ┆lda dbank ora a jnz intyp1 ;┆ 0x0a7a80…0a7aa0 73 6b 69 70 20 74 6f 20 62 61 6e 6b 20 31 30 0d 0a 09 69 6e 09 72 74 79 70 65 0d 0a 09 72 65 74 ┆skip to bank 10 in rtype ret┆ 0x0a7aa0…0a7ac0 0d 0a 69 6e 74 79 70 31 3a 09 69 6e 09 72 74 79 70 65 2b 31 30 68 09 3b 37 38 20 66 6f 72 20 30 ┆ intyp1: in rtype+10h ;78 for 0┆ 0x0a7ac0…0a7ae0 2c 31 20 20 38 38 20 66 6f 72 20 32 2c 33 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 69 6e 62 79 74 65 3a ┆,1 88 for 2,3 ret ; inbyte:┆ 0x0a7ae0…0a7b00 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 62 79 74 31 0d ┆ lda dbank ora a jnz inbyt1 ┆ 0x0a7b00…0a7b20 0a 09 69 6e 09 72 62 79 74 65 0d 0a 09 72 65 74 0d 0a 69 6e 62 79 74 31 3a 09 69 6e 09 72 62 79 ┆ in rbyte ret inbyt1: in rby┆ 0x0a7b20…0a7b40 74 65 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 69 6e 73 74 61 74 3a 09 6c 64 61 09 64 62 61 ┆te+10h ret ; instat: lda dba┆ 0x0a7b40…0a7b60 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 73 74 61 31 0d 0a 09 69 6e 09 64 73 74 ┆nk ora a jnz insta1 in dst┆ 0x0a7b60…0a7b80 61 74 0d 0a 09 72 65 74 0d 0a 69 6e 73 74 61 31 3a 09 69 6e 09 64 73 74 61 74 2b 31 30 68 0d 0a ┆at ret insta1: in dstat+10h ┆ 0x0a7b80…0a7ba0 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 61 74 61 20 61 72 65 61 73 20 28 6d 75 73 ┆ ret ; ; ; ; data areas (mus┆ 0x0a7ba0…0a7bc0 74 20 62 65 20 69 6e 20 72 61 6d 29 0d 0a 64 62 61 6e 6b 3a 09 64 62 09 30 09 3b 64 69 73 6b 20 ┆t be in ram) dbank: db 0 ;disk ┆ 0x0a7bc0…0a7be0 62 61 6e 6b 20 30 30 20 69 66 20 64 72 69 76 65 20 30 2c 31 0d 0a 09 09 09 3b 09 20 20 20 31 30 ┆bank 00 if drive 0,1 ; 10┆ 0x0a7be0…0a7c00 20 69 66 20 64 72 69 76 65 20 32 2c 33 0d 0a 69 6f 70 62 3a 09 3b 69 6f 20 70 61 72 61 6d 65 74 ┆ if drive 2,3 iopb: ;io paramet┆ 0x0a7c00…0a7c20 (44, 1, 8) 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 72 65 61 64 65 72 09 70 61 70 ┆ut (char in reg-c) ; reader pap┆ 0x0a7c20…0a7c40 65 72 20 74 61 70 65 20 72 65 61 64 65 72 20 69 6e 20 28 72 65 73 75 6c 74 20 74 6f 20 72 65 67 ┆er tape reader in (result to reg┆ 0x0a7c40…0a7c60 2d 61 29 0d 0a 3b 09 68 6f 6d 65 09 6d 6f 76 65 20 74 6f 20 74 72 61 63 6b 20 30 30 0d 0a 3b 0d ┆-a) ; home move to track 00 ; ┆ 0x0a7c60…0a7c80 0a 3b 09 28 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 61 6c 6c 73 20 73 65 74 2d 75 70 20 74 ┆ ; (the following calls set-up t┆ 0x0a7c80…0a7ca0 68 65 20 69 6f 20 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 20 66 6f 72 20 74 68 65 0d 0a 3b ┆he io parameter block for the ;┆ 0x0a7ca0…0a7cc0 09 6d 64 73 2c 20 77 68 69 63 68 20 69 73 20 75 73 65 64 20 74 6f 20 70 65 72 66 6f 72 6d 20 73 ┆ mds, which is used to perform s┆ 0x0a7cc0…0a7ce0 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 73 20 61 6e 64 20 77 72 69 74 65 73 29 0d 0a 3b 09 73 ┆ubsequent reads and writes) ; s┆ 0x0a7ce0…0a7d00 65 6c 64 73 6b 09 73 65 6c 65 63 74 20 64 69 73 6b 20 67 69 76 65 6e 20 62 79 20 72 65 67 2d 63 ┆eldsk select disk given by reg-c┆ 0x0a7d00…0a7d20 20 28 30 2c 31 2c 32 2e 2e 2e 29 0d 0a 3b 09 73 65 74 74 72 6b 09 73 65 74 20 74 72 61 63 6b 20 ┆ (0,1,2...) ; settrk set track ┆ 0x0a7d20…0a7d40 61 64 64 72 65 73 73 20 28 30 2c 2e 2e 2e 37 36 29 20 66 6f 72 20 73 75 62 73 65 71 75 65 6e 74 ┆address (0,...76) for subsequent┆ 0x0a7d40…0a7d60 20 72 65 61 64 2f 77 72 69 74 65 0d 0a 3b 09 73 65 74 73 65 63 09 73 65 74 20 73 65 63 74 6f 72 ┆ read/write ; setsec set sector┆ 0x0a7d60…0a7d80 20 61 64 64 72 65 73 73 20 28 31 2c 2e 2e 2e 2c 32 36 29 20 66 6f 72 20 73 75 62 73 65 71 75 65 ┆ address (1,...,26) for subseque┆ 0x0a7d80…0a7da0 6e 74 20 72 65 61 64 2f 77 72 69 74 65 0d 0a 3b 09 73 65 74 64 6d 61 09 73 65 74 20 73 75 62 73 ┆nt read/write ; setdma set subs┆ 0x0a7da0…0a7dc0 65 71 75 65 6e 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 28 69 6e 69 74 69 61 6c 6c 79 20 38 30 ┆equent dma address (initially 80┆ 0x0a7dc0…0a7de0 68 29 0d 0a 3b 0d 0a 3b 09 28 72 65 61 64 20 61 6e 64 20 77 72 69 74 65 20 61 73 73 75 6d 65 20 ┆h) ; ; (read and write assume ┆ 0x0a7de0…0a7e00 70 72 65 76 69 6f 75 73 20 63 61 6c 6c 73 20 74 6f 20 73 65 74 20 75 70 20 74 68 65 20 69 6f 20 ┆previous calls to set up the io ┆ 0x0a7e00…0a7e20 (44, 1, 9) 09 68 2c 69 6f 74 0d 0a 09 6d 6f 76 09 6d 2c 63 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 73 65 74 73 65 ┆ h,iot mov m,c ret ; setse┆ 0x0a7e20…0a7e40 63 3a 09 3b 73 65 74 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 67 69 76 65 6e 20 62 79 20 63 ┆c: ;set sector number given by c┆ 0x0a7e40…0a7e60 0d 0a 09 6c 78 69 09 68 2c 69 6f 73 0d 0a 09 6d 6f 76 09 6d 2c 63 0d 0a 09 72 65 74 0d 0a 73 65 ┆ lxi h,ios mov m,c ret se┆ 0x0a7e60…0a7e80 63 74 72 61 6e 3a 0d 0a 09 09 3b 74 72 61 6e 73 6c 61 74 65 20 73 65 63 74 6f 72 20 62 63 20 75 ┆ctran: ;translate sector bc u┆ 0x0a7e80…0a7ea0 73 69 6e 67 20 74 61 62 6c 65 20 61 74 20 64 65 0d 0a 09 6d 76 69 09 62 2c 30 09 3b 64 6f 75 62 ┆sing table at de mvi b,0 ;doub┆ 0x0a7ea0…0a7ec0 6c 65 20 70 72 65 63 69 73 69 6f 6e 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 69 6e 20 42 43 ┆le precision sector number in BC┆ 0x0a7ec0…0a7ee0 0d 0a 09 78 63 68 67 09 09 3b 74 72 61 6e 73 6c 61 74 65 20 74 61 62 6c 65 20 61 64 64 72 65 73 ┆ xchg ;translate table addres┆ 0x0a7ee0…0a7f00 73 20 74 6f 20 48 4c 0d 0a 09 64 61 64 09 62 09 3b 74 72 61 6e 73 6c 61 74 65 28 73 65 63 74 6f ┆s to HL dad b ;translate(secto┆ 0x0a7f00…0a7f20 72 29 20 61 64 64 72 65 73 73 0d 0a 09 6d 6f 76 09 61 2c 6d 09 3b 74 72 61 6e 73 6c 61 74 65 64 ┆r) address mov a,m ;translated┆ 0x0a7f20…0a7f40 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 74 6f 20 41 0d 0a 09 73 74 61 09 69 6f 73 0d 0a 09 ┆ sector number to A sta ios ┆ 0x0a7f40…0a7f60 6d 6f 76 09 6c 2c 61 09 3b 72 65 74 75 72 6e 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 69 6e ┆mov l,a ;return sector number in┆ 0x0a7f60…0a7f80 20 4c 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 73 65 74 64 6d 61 3a 09 3b 73 65 74 20 64 6d 61 20 61 64 ┆ L ret ; setdma: ;set dma ad┆ 0x0a7f80…0a7fa0 64 72 65 73 73 20 67 69 76 65 6e 20 62 79 20 72 65 67 73 20 62 2c 63 0d 0a 09 6d 6f 76 09 6c 2c ┆dress given by regs b,c mov l,┆ 0x0a7fa0…0a7fc0 63 0d 0a 09 6d 6f 76 09 68 2c 62 0d 0a 09 73 68 6c 64 09 69 6f 64 0d 0a 09 72 65 74 0d 0a 3b 0d ┆c mov h,b shld iod ret ; ┆ 0x0a7fc0…0a7fe0 0a 72 65 61 64 3a 09 3b 72 65 61 64 20 6e 65 78 74 20 64 69 73 6b 20 72 65 63 6f 72 64 20 28 61 ┆ read: ;read next disk record (a┆ 0x0a7fe0…0a8000 73 73 75 6d 69 6e 67 20 64 69 73 6b 2f 74 72 6b 2f 73 65 63 2f 64 6d 61 20 73 65 74 29 0d 0a 09 ┆ssuming disk/trk/sec/dma set) ┆ 0x0a8000…0a8020 (44, 1, 10) 74 69 6f 6e 0d 0a 09 61 6e 69 09 69 6f 72 64 79 09 09 3b 72 65 61 64 79 3f 0d 0a 09 6a 7a 09 77 ┆tion ani iordy ;ready? jz w┆ 0x0a8020…0a8040 61 69 74 30 0d 0a 3b 0d 0a 3b 09 63 68 65 63 6b 20 69 6f 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 6f ┆ait0 ; ; check io completion o┆ 0x0a8040…0a8060 6b 0d 0a 09 63 61 6c 6c 09 69 6e 74 79 70 65 09 09 3b 6d 75 73 74 20 62 65 20 69 6f 20 63 6f 6d ┆k call intype ;must be io com┆ 0x0a8060…0a8080 70 6c 65 74 65 20 28 30 30 29 20 75 6e 6c 69 6e 6b 65 64 0d 0a 3b 09 30 30 20 75 6e 6c 69 6e 6b ┆plete (00) unlinked ; 00 unlink┆ 0x0a8080…0a80a0 65 64 20 69 2f 6f 20 63 6f 6d 70 6c 65 74 65 2c 20 20 20 20 30 31 20 6c 69 6e 6b 65 64 20 69 2f ┆ed i/o complete, 01 linked i/┆ 0x0a80a0…0a80c0 6f 20 63 6f 6d 70 6c 65 74 65 20 28 6e 6f 74 20 75 73 65 64 29 0d 0a 3b 09 31 30 20 64 69 73 6b ┆o complete (not used) ; 10 disk┆ 0x0a80c0…0a80e0 20 73 74 61 74 75 73 20 63 68 61 6e 67 65 64 20 20 20 20 20 20 20 31 31 20 28 6e 6f 74 20 75 73 ┆ status changed 11 (not us┆ 0x0a80e0…0a8100 65 64 29 0d 0a 09 63 70 69 09 31 30 62 09 09 3b 72 65 61 64 79 20 73 74 61 74 75 73 20 63 68 61 ┆ed) cpi 10b ;ready status cha┆ 0x0a8100…0a8120 6e 67 65 3f 0d 0a 09 6a 7a 09 77 72 65 61 64 79 0d 0a 3b 0d 0a 3b 09 6d 75 73 74 20 62 65 20 30 ┆nge? jz wready ; ; must be 0┆ 0x0a8120…0a8140 30 20 69 6e 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a ┆0 in the accumulator ora a j┆ 0x0a8140…0a8160 6e 7a 09 77 65 72 72 6f 72 09 09 3b 73 6f 6d 65 20 6f 74 68 65 72 20 63 6f 6e 64 69 74 69 6f 6e ┆nz werror ;some other condition┆ 0x0a8160…0a8180 2c 20 72 65 74 72 79 0d 0a 3b 0d 0a 3b 09 63 68 65 63 6b 20 69 2f 6f 20 65 72 72 6f 72 20 62 69 ┆, retry ; ; check i/o error bi┆ 0x0a8180…0a81a0 74 73 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 0d 0a 09 72 61 6c 0d 0a 09 6a 63 09 77 72 65 61 ┆ts call inbyte ral jc wrea┆ 0x0a81a0…0a81c0 64 79 09 09 3b 75 6e 69 74 20 6e 6f 74 20 72 65 61 64 79 0d 0a 09 72 61 72 0d 0a 09 61 6e 69 09 ┆dy ;unit not ready rar ani ┆ 0x0a81c0…0a81e0 31 31 31 31 31 31 31 30 62 09 3b 61 6e 79 20 6f 74 68 65 72 20 65 72 72 6f 72 73 3f 20 20 28 64 ┆11111110b ;any other errors? (d┆ 0x0a81e0…0a8200 65 6c 65 74 65 64 20 64 61 74 61 20 6f 6b 29 0d 0a 09 6a 6e 7a 09 77 65 72 72 6f 72 0d 0a 3b 0d ┆eleted data ok) jnz werror ; ┆ 0x0a8200…0a8220 (44, 1, 11) 65 72 20 62 6c 6f 63 6b 0d 0a 09 64 62 09 38 30 68 09 3b 6e 6f 72 6d 61 6c 20 69 2f 6f 20 6f 70 ┆er block db 80h ;normal i/o op┆ 0x0a8220…0a8240 65 72 61 74 69 6f 6e 0d 0a 69 6f 66 3a 09 64 62 09 72 65 61 64 66 09 3b 69 6f 20 66 75 6e 63 74 ┆eration iof: db readf ;io funct┆ 0x0a8240…0a8260 69 6f 6e 2c 20 69 6e 69 74 69 61 6c 20 72 65 61 64 0d 0a 69 6f 6e 3a 09 64 62 09 31 09 3b 6e 75 ┆ion, initial read ion: db 1 ;nu┆ 0x0a8260…0a8280 6d 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 20 74 6f 20 72 65 61 64 0d 0a 69 6f 74 3a 09 64 62 ┆mber of sectors to read iot: db┆ 0x0a8280…0a82a0 09 6f 66 66 73 65 74 09 3b 74 72 61 63 6b 20 6e 75 6d 62 65 72 0d 0a 69 6f 73 3a 09 64 62 09 31 ┆ offset ;track number ios: db 1┆ 0x0a82a0…0a82c0 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 0d 0a 69 6f 64 3a 09 64 77 09 62 75 66 66 09 3b 69 ┆ ;sector number iod: dw buff ;i┆ 0x0a82c0…0a82e0 6f 20 61 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 65 66 69 6e 65 20 72 61 6d 20 61 72 ┆o address ; ; ; define ram ar┆ 0x0a82e0…0a8300 65 61 73 20 66 6f 72 20 62 64 6f 73 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 09 65 6e 64 65 66 0d 0a ┆eas for bdos operation endef ┆ 0x0a8300…0a8320 09 65 6e 64 0d 0a 3b 09 4d 44 53 2d 38 30 30 20 49 2f 4f 20 44 72 69 76 65 72 73 20 66 6f 72 20 ┆ end ; MDS-800 I/O Drivers for ┆ 0x0a8320…0a8340 43 50 2f 4d 20 32 2e 32 0d 0a 3b 09 28 66 6f 75 72 20 64 72 69 76 65 20 73 69 6e 67 6c 65 20 64 ┆CP/M 2.2 ; (four drive single d┆ 0x0a8340…0a8360 65 6e 73 69 74 79 20 76 65 72 73 69 6f 6e 29 0d 0a 3b 0d 0a 3b 09 56 65 72 73 69 6f 6e 20 32 2e ┆ensity version) ; ; Version 2.┆ 0x0a8360…0a8380 32 20 46 65 62 72 75 61 72 79 2c 20 31 39 38 30 0d 0a 3b 0d 0a 76 65 72 73 09 65 71 75 09 32 32 ┆2 February, 1980 ; vers equ 22┆ 0x0a8380…0a83a0 09 3b 76 65 72 73 69 6f 6e 20 32 2e 32 0d 0a 3b 0d 0a 3b 09 43 6f 70 79 72 69 67 68 74 20 28 63 ┆ ;version 2.2 ; ; Copyright (c┆ 0x0a83a0…0a83c0 29 20 31 39 38 30 0d 0a 3b 09 44 69 67 69 74 61 6c 20 52 65 73 65 61 72 63 68 0d 0a 3b 09 42 6f ┆) 1980 ; Digital Research ; Bo┆ 0x0a83c0…0a83e0 78 20 35 37 39 2c 20 50 61 63 69 66 69 63 20 47 72 6f 76 65 0d 0a 3b 09 43 61 6c 69 66 6f 72 6e ┆x 579, Pacific Grove ; Californ┆ 0x0a83e0…0a8400 69 61 2c 20 39 33 39 35 30 0d 0a 3b 0d 0a 3b 0d 0a 74 72 75 65 09 65 71 75 09 30 66 66 66 66 68 ┆ia, 93950 ; ; true equ 0ffffh┆ 0x0a8400…0a8420 (44, 1, 12) 70 61 72 61 6d 65 74 65 72 73 29 0d 0a 3b 09 72 65 61 64 09 72 65 61 64 20 74 72 61 63 6b 2f 73 ┆parameters) ; read read track/s┆ 0x0a8420…0a8440 65 63 74 6f 72 20 74 6f 20 70 72 65 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 3b 09 77 ┆ector to preset dma address ; w┆ 0x0a8440…0a8460 72 69 74 65 09 77 72 69 74 65 20 74 72 61 63 6b 2f 73 65 63 74 6f 72 20 66 72 6f 6d 20 70 72 65 ┆rite write track/sector from pre┆ 0x0a8460…0a8480 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b 09 6a 75 6d 70 20 76 65 63 74 6f ┆set dma address ; ; jump vecto┆ 0x0a8480…0a84a0 72 20 66 6f 72 20 69 6e 64 69 76 69 75 61 6c 20 72 6f 75 74 69 6e 65 73 0d 0a 09 6a 6d 70 09 62 ┆r for indiviual routines jmp b┆ 0x0a84a0…0a84c0 6f 6f 74 0d 0a 77 62 6f 6f 74 65 3a 09 6a 6d 70 09 77 62 6f 6f 74 0d 0a 09 6a 6d 70 09 63 6f 6e ┆oot wboote: jmp wboot jmp con┆ 0x0a84c0…0a84e0 73 74 0d 0a 09 6a 6d 70 09 63 6f 6e 69 6e 0d 0a 09 6a 6d 70 09 63 6f 6e 6f 75 74 0d 0a 09 6a 6d ┆st jmp conin jmp conout jm┆ 0x0a84e0…0a8500 70 09 6c 69 73 74 0d 0a 09 6a 6d 70 09 70 75 6e 63 68 0d 0a 09 6a 6d 70 09 72 65 61 64 65 72 0d ┆p list jmp punch jmp reader ┆ 0x0a8500…0a8520 0a 09 6a 6d 70 09 68 6f 6d 65 0d 0a 09 6a 6d 70 09 73 65 6c 64 73 6b 0d 0a 09 6a 6d 70 09 73 65 ┆ jmp home jmp seldsk jmp se┆ 0x0a8520…0a8540 74 74 72 6b 0d 0a 09 6a 6d 70 09 73 65 74 73 65 63 0d 0a 09 6a 6d 70 09 73 65 74 64 6d 61 0d 0a ┆ttrk jmp setsec jmp setdma ┆ 0x0a8540…0a8560 09 6a 6d 70 09 72 65 61 64 0d 0a 09 6a 6d 70 09 77 72 69 74 65 0d 0a 09 6a 6d 70 09 6c 69 73 74 ┆ jmp read jmp write jmp list┆ 0x0a8560…0a8580 73 74 09 3b 6c 69 73 74 20 73 74 61 74 75 73 0d 0a 09 6a 6d 70 09 73 65 63 74 72 61 6e 0d 0a 3b ┆st ;list status jmp sectran ;┆ 0x0a8580…0a85a0 0d 0a 09 6d 61 63 6c 69 62 09 64 69 73 6b 64 65 66 09 3b 6c 6f 61 64 20 74 68 65 20 64 69 73 6b ┆ maclib diskdef ;load the disk┆ 0x0a85a0…0a85c0 20 64 65 66 69 6e 69 74 69 6f 6e 20 6c 69 62 72 61 72 79 0d 0a 09 64 69 73 6b 73 09 34 09 3b 66 ┆ definition library disks 4 ;f┆ 0x0a85c0…0a85e0 6f 75 72 20 64 69 73 6b 73 0d 0a 09 64 69 73 6b 64 65 66 09 30 2c 31 2c 32 36 2c 36 2c 31 30 32 ┆our disks diskdef 0,1,26,6,102┆ 0x0a85e0…0a8600 34 2c 32 34 33 2c 36 34 2c 36 34 2c 6f 66 66 73 65 74 0d 0a 09 64 69 73 6b 64 65 66 09 31 2c 30 ┆4,243,64,64,offset diskdef 1,0┆ 0x0a8600…0a8620 (44, 1, 13) 6d 76 69 09 63 2c 72 65 61 64 66 09 3b 73 65 74 20 74 6f 20 72 65 61 64 20 66 75 6e 63 74 69 6f ┆mvi c,readf ;set to read functio┆ 0x0a8620…0a8640 6e 0d 0a 09 63 61 6c 6c 09 73 65 74 66 75 6e 63 0d 0a 09 63 61 6c 6c 09 77 61 69 74 69 6f 09 3b ┆n call setfunc call waitio ;┆ 0x0a8640…0a8660 70 65 72 66 6f 72 6d 20 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 72 65 74 09 09 3b 6d 61 ┆perform read function ret ;ma┆ 0x0a8660…0a8680 79 20 68 61 76 65 20 65 72 72 6f 72 20 73 65 74 20 69 6e 20 72 65 67 2d 61 0d 0a 3b 0d 0a 3b 0d ┆y have error set in reg-a ; ; ┆ 0x0a8680…0a86a0 0a 77 72 69 74 65 3a 09 3b 64 69 73 6b 20 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6d ┆ write: ;disk write function m┆ 0x0a86a0…0a86c0 76 69 09 63 2c 77 72 69 74 66 0d 0a 09 63 61 6c 6c 09 73 65 74 66 75 6e 63 09 3b 73 65 74 20 74 ┆vi c,writf call setfunc ;set t┆ 0x0a86c0…0a86e0 6f 20 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 77 61 69 74 69 6f 0d 0a ┆o write function call waitio ┆ 0x0a86e0…0a8700 09 72 65 74 09 09 3b 6d 61 79 20 68 61 76 65 20 65 72 72 6f 72 20 73 65 74 0d 0a 3b 0d 0a 3b 0d ┆ ret ;may have error set ; ; ┆ 0x0a8700…0a8720 0a 3b 09 75 74 69 6c 69 74 79 20 73 75 62 72 6f 75 74 69 6e 65 73 0d 0a 70 72 6d 73 67 3a 09 3b ┆ ; utility subroutines prmsg: ;┆ 0x0a8720…0a8740 70 72 69 6e 74 20 6d 65 73 73 61 67 65 20 61 74 20 68 2c 6c 20 74 6f 20 30 0d 0a 09 6d 6f 76 09 ┆print message at h,l to 0 mov ┆ 0x0a8740…0a8760 61 2c 6d 0d 0a 09 6f 72 61 09 61 09 3b 7a 65 72 6f 3f 0d 0a 09 72 7a 0d 0a 3b 09 6d 6f 72 65 20 ┆a,m ora a ;zero? rz ; more ┆ 0x0a8760…0a8780 74 6f 20 70 72 69 6e 74 0d 0a 09 70 75 73 68 09 68 0d 0a 09 6d 6f 76 09 63 2c 61 0d 0a 09 63 61 ┆to print push h mov c,a ca┆ 0x0a8780…0a87a0 6c 6c 09 63 6f 6e 6f 75 74 0d 0a 09 70 6f 70 09 68 0d 0a 09 69 6e 78 09 68 0d 0a 09 6a 6d 70 09 ┆ll conout pop h inx h jmp ┆ 0x0a87a0…0a87c0 70 72 6d 73 67 0d 0a 3b 0d 0a 73 65 74 66 75 6e 63 3a 0d 0a 3b 09 73 65 74 20 66 75 6e 63 74 69 ┆prmsg ; setfunc: ; set functi┆ 0x0a87c0…0a87e0 6f 6e 20 66 6f 72 20 6e 65 78 74 20 69 2f 6f 20 28 63 6f 6d 6d 61 6e 64 20 69 6e 20 72 65 67 2d ┆on for next i/o (command in reg-┆ 0x0a87e0…0a8800 63 29 0d 0a 09 6c 78 69 09 68 2c 69 6f 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 72 ┆c) lxi h,iof ;io function addr┆ 0x0a8800…0a8820 (44, 1, 14) 0a 3b 09 72 65 61 64 20 6f 72 20 77 72 69 74 65 20 69 73 20 6f 6b 2c 20 61 63 63 75 6d 75 6c 61 ┆ ; read or write is ok, accumula┆ 0x0a8820…0a8840 74 6f 72 20 63 6f 6e 74 61 69 6e 73 20 7a 65 72 6f 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 77 72 65 61 ┆tor contains zero ret ; wrea┆ 0x0a8840…0a8860 64 79 3a 09 3b 6e 6f 74 20 72 65 61 64 79 2c 20 74 72 65 61 74 20 61 73 20 65 72 72 6f 72 20 66 ┆dy: ;not ready, treat as error f┆ 0x0a8860…0a8880 6f 72 20 6e 6f 77 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 09 09 3b 63 6c 65 61 72 20 72 65 73 ┆or now call inbyte ;clear res┆ 0x0a8880…0a88a0 75 6c 74 20 62 79 74 65 0d 0a 09 6a 6d 70 09 74 72 79 63 6f 75 6e 74 0d 0a 3b 0d 0a 77 65 72 72 ┆ult byte jmp trycount ; werr┆ 0x0a88a0…0a88c0 6f 72 3a 09 3b 72 65 74 75 72 6e 20 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e ┆or: ;return hardware malfunction┆ 0x0a88c0…0a88e0 20 28 63 72 63 2c 20 74 72 61 63 6b 2c 20 73 65 65 6b 2c 20 65 74 63 2e 29 0d 0a 3b 09 74 68 65 ┆ (crc, track, seek, etc.) ; the┆ 0x0a88e0…0a8900 20 6d 64 73 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 68 61 73 20 72 65 74 75 72 6e 65 64 20 61 20 62 ┆ mds controller has returned a b┆ 0x0a8900…0a8920 69 74 20 69 6e 20 65 61 63 68 20 70 6f 73 69 74 69 6f 6e 0d 0a 3b 09 6f 66 20 74 68 65 20 61 63 ┆it in each position ; of the ac┆ 0x0a8920…0a8940 63 75 6d 75 6c 61 74 6f 72 2c 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 74 68 65 20 ┆cumulator, corresponding to the ┆ 0x0a8940…0a8960 63 6f 6e 64 69 74 69 6f 6e 73 3a 0d 0a 3b 09 30 09 2d 20 64 65 6c 65 74 65 64 20 64 61 74 61 20 ┆conditions: ; 0 - deleted data ┆ 0x0a8960…0a8980 28 61 63 63 65 70 74 65 64 20 61 73 20 6f 6b 20 61 62 6f 76 65 29 0d 0a 3b 09 31 09 2d 20 63 72 ┆(accepted as ok above) ; 1 - cr┆ 0x0a8980…0a89a0 63 20 65 72 72 6f 72 0d 0a 3b 09 32 09 2d 20 73 65 65 6b 20 65 72 72 6f 72 0d 0a 3b 09 33 09 2d ┆c error ; 2 - seek error ; 3 -┆ 0x0a89a0…0a89c0 20 61 64 64 72 65 73 73 20 65 72 72 6f 72 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 ┆ address error (hardware malfunc┆ 0x0a89c0…0a89e0 74 69 6f 6e 29 0d 0a 3b 09 34 09 2d 20 64 61 74 61 20 6f 76 65 72 2f 75 6e 64 65 72 20 66 6c 6f ┆tion) ; 4 - data over/under flo┆ 0x0a89e0…0a8a00 77 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 35 09 2d 20 ┆w (hardware malfunction) ; 5 - ┆ 0x0a8a00…0a8a20 (44, 1, 15) 09 3b 76 61 6c 75 65 20 6f 66 20 22 74 72 75 65 22 0d 0a 66 61 6c 73 65 09 65 71 75 09 6e 6f 74 ┆ ;value of "true" false equ not┆ 0x0a8a20…0a8a40 20 74 72 75 65 09 3b 22 66 61 6c 73 65 22 0d 0a 74 65 73 74 09 65 71 75 09 66 61 6c 73 65 09 3b ┆ true ;"false" test equ false ;┆ 0x0a8a40…0a8a60 74 72 75 65 20 69 66 20 74 65 73 74 20 62 69 6f 73 0d 0a 3b 0d 0a 09 69 66 09 74 65 73 74 0d 0a ┆true if test bios ; if test ┆ 0x0a8a60…0a8a80 62 69 61 73 09 65 71 75 09 30 33 34 30 30 68 09 3b 62 61 73 65 20 6f 66 20 43 43 50 20 69 6e 20 ┆bias equ 03400h ;base of CCP in ┆ 0x0a8a80…0a8aa0 74 65 73 74 20 73 79 73 74 65 6d 0d 0a 09 65 6e 64 69 66 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 ┆test system endif if not tes┆ 0x0a8aa0…0a8ac0 74 0d 0a 62 69 61 73 09 65 71 75 09 30 30 30 30 68 09 3b 67 65 6e 65 72 61 74 65 20 72 65 6c 6f ┆t bias equ 0000h ;generate relo┆ 0x0a8ac0…0a8ae0 63 61 74 61 62 6c 65 20 63 70 2f 6d 20 73 79 73 74 65 6d 0d 0a 09 65 6e 64 69 66 0d 0a 3b 0d 0a ┆catable cp/m system endif ; ┆ 0x0a8ae0…0a8b00 70 61 74 63 68 09 65 71 75 09 31 36 30 30 68 0d 0a 3b 0d 0a 09 6f 72 67 09 70 61 74 63 68 0d 0a ┆patch equ 1600h ; org patch ┆ 0x0a8b00…0a8b20 63 70 6d 62 09 65 71 75 09 24 2d 70 61 74 63 68 09 3b 62 61 73 65 20 6f 66 20 63 70 6d 20 63 6f ┆cpmb equ $-patch ;base of cpm co┆ 0x0a8b20…0a8b40 6e 73 6f 6c 65 20 70 72 6f 63 65 73 73 6f 72 0d 0a 62 64 6f 73 09 65 71 75 09 38 30 36 68 2b 63 ┆nsole processor bdos equ 806h+c┆ 0x0a8b40…0a8b60 70 6d 62 09 3b 62 61 73 69 63 20 64 6f 73 20 28 72 65 73 69 64 65 6e 74 20 70 6f 72 74 69 6f 6e ┆pmb ;basic dos (resident portion┆ 0x0a8b60…0a8b80 29 0d 0a 63 70 6d 6c 09 65 71 75 09 24 2d 63 70 6d 62 09 3b 6c 65 6e 67 74 68 20 28 69 6e 20 62 ┆) cpml equ $-cpmb ;length (in b┆ 0x0a8b80…0a8ba0 79 74 65 73 29 20 6f 66 20 63 70 6d 20 73 79 73 74 65 6d 0d 0a 6e 73 65 63 74 73 09 65 71 75 09 ┆ytes) of cpm system nsects equ ┆ 0x0a8ba0…0a8bc0 63 70 6d 6c 2f 31 32 38 09 3b 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 20 74 6f 20 6c ┆cpml/128 ;number of sectors to l┆ 0x0a8bc0…0a8be0 6f 61 64 0d 0a 6f 66 66 73 65 74 09 65 71 75 09 32 09 3b 6e 75 6d 62 65 72 20 6f 66 20 64 69 73 ┆oad offset equ 2 ;number of dis┆ 0x0a8be0…0a8c00 6b 20 74 72 61 63 6b 73 20 75 73 65 64 20 62 79 20 63 70 2f 6d 0d 0a 63 64 69 73 6b 09 65 71 75 ┆k tracks used by cp/m cdisk equ┆ 0x0a8c00…0a8c20 (45, 0, 1) 0d 0a 09 64 69 73 6b 64 65 66 09 32 2c 30 0d 0a 09 64 69 73 6b 64 65 66 09 33 2c 30 0d 0a 3b 09 ┆ diskdef 2,0 diskdef 3,0 ; ┆ 0x0a8c20…0a8c40 65 6e 64 65 66 20 6f 63 63 75 72 73 20 61 74 20 65 6e 64 20 6f 66 20 61 73 73 65 6d 62 6c 79 0d ┆endef occurs at end of assembly ┆ 0x0a8c40…0a8c60 0a 3b 0d 0a 3b 09 65 6e 64 20 6f 66 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 2d 20 69 6e 64 65 70 65 ┆ ; ; end of controller - indepe┆ 0x0a8c60…0a8c80 6e 64 65 6e 74 20 63 6f 64 65 2c 20 74 68 65 20 72 65 6d 61 69 6e 69 6e 67 20 73 75 62 72 6f 75 ┆ndent code, the remaining subrou┆ 0x0a8c80…0a8ca0 74 69 6e 65 73 0d 0a 3b 09 61 72 65 20 74 61 69 6c 6f 72 65 64 20 74 6f 20 74 68 65 20 70 61 72 ┆tines ; are tailored to the par┆ 0x0a8ca0…0a8cc0 74 69 63 75 6c 61 72 20 6f 70 65 72 61 74 69 6e 67 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 2c 20 61 ┆ticular operating environment, a┆ 0x0a8cc0…0a8ce0 6e 64 20 6d 75 73 74 0d 0a 3b 09 62 65 20 61 6c 74 65 72 65 64 20 66 6f 72 20 61 6e 79 20 73 79 ┆nd must ; be altered for any sy┆ 0x0a8ce0…0a8d00 73 74 65 6d 20 77 68 69 63 68 20 64 69 66 66 65 72 73 20 66 72 6f 6d 20 74 68 65 20 69 6e 74 65 ┆stem which differs from the inte┆ 0x0a8d00…0a8d20 6c 20 6d 64 73 2e 0d 0a 3b 0d 0a 3b 09 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 64 65 20 ┆l mds. ; ; the following code ┆ 0x0a8d20…0a8d40 61 73 73 75 6d 65 73 20 74 68 65 20 6d 64 73 20 6d 6f 6e 69 74 6f 72 20 65 78 69 73 74 73 20 61 ┆assumes the mds monitor exists a┆ 0x0a8d40…0a8d60 74 20 30 66 38 30 30 68 0d 0a 3b 09 61 6e 64 20 75 73 65 73 20 74 68 65 20 69 2f 6f 20 73 75 62 ┆t 0f800h ; and uses the i/o sub┆ 0x0a8d60…0a8d80 72 6f 75 74 69 6e 65 73 20 77 69 74 68 69 6e 20 74 68 65 20 6d 6f 6e 69 74 6f 72 0d 0a 3b 0d 0a ┆routines within the monitor ; ┆ 0x0a8d80…0a8da0 3b 09 77 65 20 61 6c 73 6f 20 61 73 73 75 6d 65 20 74 68 65 20 6d 64 73 20 73 79 73 74 65 6d 20 ┆; we also assume the mds system ┆ 0x0a8da0…0a8dc0 68 61 73 20 66 6f 75 72 20 64 69 73 6b 20 64 72 69 76 65 73 0d 0a 72 65 76 72 74 09 65 71 75 09 ┆has four disk drives revrt equ ┆ 0x0a8dc0…0a8de0 30 66 64 68 09 3b 69 6e 74 65 72 72 75 70 74 20 72 65 76 65 72 74 20 70 6f 72 74 0d 0a 69 6e 74 ┆0fdh ;interrupt revert port int┆ 0x0a8de0…0a8e00 63 09 65 71 75 09 30 66 63 68 09 3b 69 6e 74 65 72 72 75 70 74 20 6d 61 73 6b 20 70 6f 72 74 0d ┆c equ 0fch ;interrupt mask port ┆ 0x0a8e00…0a8e20 (45, 0, 2) 6e 67 20 74 68 65 72 65 20 69 73 20 61 20 31 32 38 20 62 79 74 65 20 63 6f 6c 64 20 73 74 61 72 ┆ng there is a 128 byte cold star┆ 0x0a8e20…0a8e40 74 0d 0a 3b 09 73 74 61 72 74 2e 0d 0a 3b 0d 0a 09 6c 78 69 09 73 70 2c 62 75 66 66 09 3b 75 73 ┆t ; start. ; lxi sp,buff ;us┆ 0x0a8e40…0a8e60 69 6e 67 20 64 6d 61 20 2d 20 74 68 75 73 20 38 30 20 74 68 72 75 20 66 66 20 61 76 61 69 6c 61 ┆ing dma - thus 80 thru ff availa┆ 0x0a8e60…0a8e80 62 6c 65 20 66 6f 72 20 73 74 61 63 6b 0d 0a 3b 0d 0a 09 6d 76 69 09 63 2c 72 65 74 72 79 09 3b ┆ble for stack ; mvi c,retry ;┆ 0x0a8e80…0a8ea0 6d 61 78 20 72 65 74 72 69 65 73 0d 0a 09 70 75 73 68 09 62 0d 0a 77 62 6f 6f 74 30 3a 09 3b 65 ┆max retries push b wboot0: ;e┆ 0x0a8ea0…0a8ec0 6e 74 65 72 20 68 65 72 65 20 6f 6e 20 65 72 72 6f 72 20 72 65 74 72 69 65 73 0d 0a 09 6c 78 69 ┆nter here on error retries lxi┆ 0x0a8ec0…0a8ee0 09 62 2c 63 70 6d 62 09 3b 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 74 6f 20 73 74 61 72 ┆ b,cpmb ;set dma address to star┆ 0x0a8ee0…0a8f00 74 20 6f 66 20 64 69 73 6b 20 73 79 73 74 65 6d 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a ┆t of disk system call setdma ┆ 0x0a8f00…0a8f20 09 6d 76 69 09 63 2c 30 09 3b 62 6f 6f 74 20 66 72 6f 6d 20 64 72 69 76 65 20 30 0d 0a 09 63 61 ┆ mvi c,0 ;boot from drive 0 ca┆ 0x0a8f20…0a8f40 6c 6c 09 73 65 6c 64 73 6b 0d 0a 09 6d 76 69 09 63 2c 30 0d 0a 09 63 61 6c 6c 09 73 65 74 74 72 ┆ll seldsk mvi c,0 call settr┆ 0x0a8f40…0a8f60 6b 09 3b 73 74 61 72 74 20 77 69 74 68 20 74 72 61 63 6b 20 30 0d 0a 09 6d 76 69 09 63 2c 32 09 ┆k ;start with track 0 mvi c,2 ┆ 0x0a8f60…0a8f80 3b 73 74 61 72 74 20 72 65 61 64 69 6e 67 20 73 65 63 74 6f 72 20 32 0d 0a 09 63 61 6c 6c 09 73 ┆;start reading sector 2 call s┆ 0x0a8f80…0a8fa0 65 74 73 65 63 0d 0a 3b 0d 0a 3b 09 72 65 61 64 20 73 65 63 74 6f 72 73 2c 20 63 6f 75 6e 74 20 ┆etsec ; ; read sectors, count ┆ 0x0a8fa0…0a8fc0 6e 73 65 63 74 73 20 74 6f 20 7a 65 72 6f 0d 0a 09 70 6f 70 09 62 09 3b 31 30 2d 65 72 72 6f 72 ┆nsects to zero pop b ;10-error┆ 0x0a8fc0…0a8fe0 20 63 6f 75 6e 74 0d 0a 09 6d 76 69 09 62 2c 6e 73 65 63 74 73 0d 0a 72 64 73 65 63 3a 09 3b 72 ┆ count mvi b,nsects rdsec: ;r┆ 0x0a8fe0…0a9000 65 61 64 20 6e 65 78 74 20 73 65 63 74 6f 72 0d 0a 09 70 75 73 68 09 62 09 3b 73 61 76 65 20 73 ┆ead next sector push b ;save s┆ 0x0a9000…0a9020 (45, 0, 3) 74 72 69 65 73 0d 0a 09 6c 78 69 09 68 2c 62 6f 6f 74 6d 73 67 0d 0a 09 63 61 6c 6c 09 70 72 6d ┆tries lxi h,bootmsg call prm┆ 0x0a9020…0a9040 73 67 0d 0a 09 6a 6d 70 09 72 6d 6f 6e 38 30 09 3b 6d 64 73 20 68 61 72 64 77 61 72 65 20 6d 6f ┆sg jmp rmon80 ;mds hardware mo┆ 0x0a9040…0a9060 6e 69 74 6f 72 0d 0a 3b 0d 0a 62 6f 6f 74 6d 73 67 3a 0d 0a 09 64 62 09 27 3f 62 6f 6f 74 27 2c ┆nitor ; bootmsg: db '?boot',┆ 0x0a9060…0a9080 30 0d 0a 3b 0d 0a 3b 0d 0a 63 6f 6e 73 74 3a 09 3b 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 20 ┆0 ; ; const: ;console status ┆ 0x0a9080…0a90a0 74 6f 20 72 65 67 2d 61 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 ┆to reg-a ; (exactly the same as┆ 0x0a90a0…0a90c0 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 63 73 74 73 0d 0a 3b 0d 0a 63 6f 6e 69 6e 3a ┆ mds call) jmp csts ; conin:┆ 0x0a90c0…0a90e0 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 72 65 67 2d 61 0d 0a 09 63 ┆ ;console character to reg-a c┆ 0x0a90e0…0a9100 61 6c 6c 09 63 69 0d 0a 09 61 6e 69 09 37 66 68 09 3b 72 65 6d 6f 76 65 20 70 61 72 69 74 79 20 ┆all ci ani 7fh ;remove parity ┆ 0x0a9100…0a9120 62 69 74 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 63 6f 6e 6f 75 74 3a 09 3b 63 6f 6e 73 6f 6c 65 20 63 ┆bit ret ; conout: ;console c┆ 0x0a9120…0a9140 68 61 72 61 63 74 65 72 20 66 72 6f 6d 20 63 20 74 6f 20 63 6f 6e 73 6f 6c 65 20 6f 75 74 0d 0a ┆haracter from c to console out ┆ 0x0a9140…0a9160 09 6a 6d 70 09 63 6f 0d 0a 3b 0d 0a 6c 69 73 74 3a 09 3b 6c 69 73 74 20 64 65 76 69 63 65 20 6f ┆ jmp co ; list: ;list device o┆ 0x0a9160…0a9180 75 74 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 ┆ut ; (exactly the same as mds c┆ 0x0a9180…0a91a0 61 6c 6c 29 0d 0a 09 6a 6d 70 09 6c 6f 0d 0a 3b 0d 0a 6c 69 73 74 73 74 3a 0d 0a 09 3b 72 65 74 ┆all) jmp lo ; listst: ;ret┆ 0x0a91a0…0a91c0 75 72 6e 20 6c 69 73 74 20 73 74 61 74 75 73 0d 0a 09 78 72 61 09 61 0d 0a 09 72 65 74 09 09 3b ┆urn list status xra a ret ;┆ 0x0a91c0…0a91e0 61 6c 77 61 79 73 20 6e 6f 74 20 72 65 61 64 79 0d 0a 3b 0d 0a 70 75 6e 63 68 3a 09 3b 70 75 6e ┆always not ready ; punch: ;pun┆ 0x0a91e0…0a9200 63 68 20 64 65 76 69 63 65 20 6f 75 74 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 ┆ch device out ; (exactly the sa┆ 0x0a9200…0a9220 (45, 0, 4) 09 09 3b 6d 61 79 20 68 61 76 65 20 65 72 72 6f 72 20 73 65 74 20 69 6e 20 72 65 67 2d 61 0d 0a ┆ ;may have error set in reg-a ┆ 0x0a9220…0a9240 3b 0d 0a 3b 0d 0a 77 72 69 74 65 3a 09 3b 64 69 73 6b 20 77 72 69 74 65 20 66 75 6e 63 74 69 6f ┆; ; write: ;disk write functio┆ 0x0a9240…0a9260 6e 0d 0a 09 6d 76 69 09 63 2c 77 72 69 74 66 0d 0a 09 63 61 6c 6c 09 73 65 74 66 75 6e 63 09 3b ┆n mvi c,writf call setfunc ;┆ 0x0a9260…0a9280 73 65 74 20 74 6f 20 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 77 61 69 ┆set to write function call wai┆ 0x0a9280…0a92a0 74 69 6f 0d 0a 09 72 65 74 09 09 3b 6d 61 79 20 68 61 76 65 20 65 72 72 6f 72 20 73 65 74 0d 0a ┆tio ret ;may have error set ┆ 0x0a92a0…0a92c0 3b 0d 0a 3b 0d 0a 3b 09 75 74 69 6c 69 74 79 20 73 75 62 72 6f 75 74 69 6e 65 73 0d 0a 70 72 6d ┆; ; ; utility subroutines prm┆ 0x0a92c0…0a92e0 73 67 3a 09 3b 70 72 69 6e 74 20 6d 65 73 73 61 67 65 20 61 74 20 68 2c 6c 20 74 6f 20 30 0d 0a ┆sg: ;print message at h,l to 0 ┆ 0x0a92e0…0a9300 09 6d 6f 76 09 61 2c 6d 0d 0a 09 6f 72 61 09 61 09 3b 7a 65 72 6f 3f 0d 0a 09 72 7a 0d 0a 3b 09 ┆ mov a,m ora a ;zero? rz ; ┆ 0x0a9300…0a9320 6d 6f 72 65 20 74 6f 20 70 72 69 6e 74 0d 0a 09 70 75 73 68 09 68 0d 0a 09 6d 6f 76 09 63 2c 61 ┆more to print push h mov c,a┆ 0x0a9320…0a9340 0d 0a 09 63 61 6c 6c 09 63 6f 6e 6f 75 74 0d 0a 09 70 6f 70 09 68 0d 0a 09 69 6e 78 09 68 0d 0a ┆ call conout pop h inx h ┆ 0x0a9340…0a9360 09 6a 6d 70 09 70 72 6d 73 67 0d 0a 3b 0d 0a 73 65 74 66 75 6e 63 3a 0d 0a 3b 09 73 65 74 20 66 ┆ jmp prmsg ; setfunc: ; set f┆ 0x0a9360…0a9380 75 6e 63 74 69 6f 6e 20 66 6f 72 20 6e 65 78 74 20 69 2f 6f 20 28 63 6f 6d 6d 61 6e 64 20 69 6e ┆unction for next i/o (command in┆ 0x0a9380…0a93a0 20 72 65 67 2d 63 29 0d 0a 09 6c 78 69 09 68 2c 69 6f 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e ┆ reg-c) lxi h,iof ;io function┆ 0x0a93a0…0a93c0 20 61 64 64 72 65 73 73 0d 0a 09 6d 6f 76 09 61 2c 6d 09 3b 67 65 74 20 69 74 20 74 6f 20 61 63 ┆ address mov a,m ;get it to ac┆ 0x0a93c0…0a93e0 63 75 6d 75 6c 61 74 6f 72 20 66 6f 72 20 6d 61 73 6b 69 6e 67 0d 0a 09 61 6e 69 09 31 31 31 31 ┆cumulator for masking ani 1111┆ 0x0a93e0…0a9400 31 30 30 30 62 09 3b 72 65 6d 6f 76 65 20 70 72 65 76 69 6f 75 73 20 63 6f 6d 6d 61 6e 64 0d 0a ┆1000b ;remove previous command ┆ 0x0a9400…0a9420 (45, 0, 5) 0a 69 63 6f 6e 09 65 71 75 09 30 66 33 68 09 3b 69 6e 74 65 72 72 75 70 74 20 63 6f 6e 74 72 6f ┆ icon equ 0f3h ;interrupt contro┆ 0x0a9420…0a9440 6c 20 70 6f 72 74 0d 0a 69 6e 74 65 09 65 71 75 09 30 31 31 31 24 31 31 31 30 62 09 3b 65 6e 61 ┆l port inte equ 0111$1110b ;ena┆ 0x0a9440…0a9460 62 6c 65 20 72 73 74 20 30 28 77 61 72 6d 20 62 6f 6f 74 29 2c 20 72 73 74 20 37 20 28 6d 6f 6e ┆ble rst 0(warm boot), rst 7 (mon┆ 0x0a9460…0a9480 69 74 6f 72 29 0d 0a 3b 0d 0a 3b 09 6d 64 73 20 6d 6f 6e 69 74 6f 72 20 65 71 75 61 74 65 73 0d ┆itor) ; ; mds monitor equates ┆ 0x0a9480…0a94a0 0a 6d 6f 6e 38 30 09 65 71 75 09 30 66 38 30 30 68 09 3b 6d 64 73 20 6d 6f 6e 69 74 6f 72 0d 0a ┆ mon80 equ 0f800h ;mds monitor ┆ 0x0a94a0…0a94c0 72 6d 6f 6e 38 30 09 65 71 75 09 30 66 66 30 66 68 09 3b 72 65 73 74 61 72 74 20 6d 6f 6e 38 30 ┆rmon80 equ 0ff0fh ;restart mon80┆ 0x0a94c0…0a94e0 20 28 62 6f 6f 74 20 65 72 72 6f 72 29 0d 0a 63 69 09 65 71 75 09 30 66 38 30 33 68 09 3b 63 6f ┆ (boot error) ci equ 0f803h ;co┆ 0x0a94e0…0a9500 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 72 65 67 2d 61 0d 0a 72 69 09 65 71 75 ┆nsole character to reg-a ri equ┆ 0x0a9500…0a9520 09 30 66 38 30 36 68 09 3b 72 65 61 64 65 72 20 69 6e 20 74 6f 20 72 65 67 2d 61 0d 0a 63 6f 09 ┆ 0f806h ;reader in to reg-a co ┆ 0x0a9520…0a9540 65 71 75 09 30 66 38 30 39 68 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 20 66 72 6f 6d 20 63 20 ┆equ 0f809h ;console char from c ┆ 0x0a9540…0a9560 74 6f 20 63 6f 6e 73 6f 6c 65 20 6f 75 74 0d 0a 70 6f 09 65 71 75 09 30 66 38 30 63 68 09 3b 70 ┆to console out po equ 0f80ch ;p┆ 0x0a9560…0a9580 75 6e 63 68 20 63 68 61 72 20 66 72 6f 6d 20 63 20 74 6f 20 70 75 6e 63 68 20 64 65 76 69 63 65 ┆unch char from c to punch device┆ 0x0a9580…0a95a0 0d 0a 6c 6f 09 65 71 75 09 30 66 38 30 66 68 09 3b 6c 69 73 74 20 66 72 6f 6d 20 63 20 74 6f 20 ┆ lo equ 0f80fh ;list from c to ┆ 0x0a95a0…0a95c0 6c 69 73 74 20 64 65 76 69 63 65 0d 0a 63 73 74 73 09 65 71 75 09 30 66 38 31 32 68 09 3b 63 6f ┆list device csts equ 0f812h ;co┆ 0x0a95c0…0a95e0 6e 73 6f 6c 65 20 73 74 61 74 75 73 20 30 30 2f 66 66 20 74 6f 20 72 65 67 69 73 74 65 72 20 61 ┆nsole status 00/ff to register a┆ 0x0a95e0…0a9600 0d 0a 3b 0d 0a 3b 09 64 69 73 6b 20 70 6f 72 74 73 20 61 6e 64 20 63 6f 6d 6d 61 6e 64 73 0d 0a ┆ ; ; disk ports and commands ┆ 0x0a9600…0a9620 (45, 0, 6) 65 63 74 6f 72 20 63 6f 75 6e 74 0d 0a 09 63 61 6c 6c 09 72 65 61 64 0d 0a 09 6a 6e 7a 09 62 6f ┆ector count call read jnz bo┆ 0x0a9620…0a9640 6f 74 65 72 72 09 3b 72 65 74 72 79 20 69 66 20 65 72 72 6f 72 73 20 6f 63 63 75 72 0d 0a 09 6c ┆oterr ;retry if errors occur l┆ 0x0a9640…0a9660 68 6c 64 09 69 6f 64 09 3b 69 6e 63 72 65 6d 65 6e 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a ┆hld iod ;increment dma address ┆ 0x0a9660…0a9680 09 6c 78 69 09 64 2c 31 32 38 09 3b 73 65 63 74 6f 72 20 73 69 7a 65 0d 0a 09 64 61 64 09 64 09 ┆ lxi d,128 ;sector size dad d ┆ 0x0a9680…0a96a0 3b 69 6e 63 72 65 6d 65 6e 74 65 64 20 64 6d 61 20 61 64 64 72 65 73 73 20 69 6e 20 68 6c 0d 0a ┆;incremented dma address in hl ┆ 0x0a96a0…0a96c0 09 6d 6f 76 09 62 2c 68 0d 0a 09 6d 6f 76 09 63 2c 6c 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 ┆ mov b,h mov c,l ;ready for ca┆ 0x0a96c0…0a96e0 6c 6c 20 74 6f 20 73 65 74 20 64 6d 61 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 09 6c 64 ┆ll to set dma call setdma ld┆ 0x0a96e0…0a9700 61 09 69 6f 73 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 6a 75 73 74 20 72 65 61 64 0d 0a ┆a ios ;sector number just read ┆ 0x0a9700…0a9720 09 63 70 69 09 32 36 09 3b 72 65 61 64 20 6c 61 73 74 20 73 65 63 74 6f 72 3f 0d 0a 09 6a 63 09 ┆ cpi 26 ;read last sector? jc ┆ 0x0a9720…0a9740 72 64 31 0d 0a 3b 09 6d 75 73 74 20 62 65 20 73 65 63 74 6f 72 20 32 36 2c 20 7a 65 72 6f 20 61 ┆rd1 ; must be sector 26, zero a┆ 0x0a9740…0a9760 6e 64 20 67 6f 20 74 6f 20 6e 65 78 74 20 74 72 61 63 6b 0d 0a 09 6c 64 61 09 69 6f 74 09 3b 67 ┆nd go to next track lda iot ;g┆ 0x0a9760…0a9780 65 74 20 74 72 61 63 6b 20 74 6f 20 72 65 67 69 73 74 65 72 20 61 0d 0a 09 69 6e 72 09 61 0d 0a ┆et track to register a inr a ┆ 0x0a9780…0a97a0 09 6d 6f 76 09 63 2c 61 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 0d 0a 09 63 61 6c 6c 09 ┆ mov c,a ;ready for call call ┆ 0x0a97a0…0a97c0 73 65 74 74 72 6b 0d 0a 09 78 72 61 09 61 09 3b 63 6c 65 61 72 20 73 65 63 74 6f 72 20 6e 75 6d ┆settrk xra a ;clear sector num┆ 0x0a97c0…0a97e0 62 65 72 0d 0a 72 64 31 3a 09 69 6e 72 09 61 09 3b 74 6f 20 6e 65 78 74 20 73 65 63 74 6f 72 0d ┆ber rd1: inr a ;to next sector ┆ 0x0a97e0…0a9800 0a 09 6d 6f 76 09 63 2c 61 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 0d 0a 09 63 61 6c 6c ┆ mov c,a ;ready for call call┆ 0x0a9800…0a9820 (45, 0, 7) 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 70 6f 0d 0a 3b 0d 0a 72 65 61 ┆me as mds call) jmp po ; rea┆ 0x0a9820…0a9840 64 65 72 3a 09 3b 72 65 61 64 65 72 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 74 6f 20 72 65 67 ┆der: ;reader character in to reg┆ 0x0a9840…0a9860 2d 61 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 ┆-a ; (exactly the same as mds c┆ 0x0a9860…0a9880 61 6c 6c 29 0d 0a 09 6a 6d 70 09 72 69 0d 0a 3b 0d 0a 68 6f 6d 65 3a 09 3b 6d 6f 76 65 20 74 6f ┆all) jmp ri ; home: ;move to┆ 0x0a9880…0a98a0 20 68 6f 6d 65 20 70 6f 73 69 74 69 6f 6e 0d 0a 3b 09 74 72 65 61 74 20 61 73 20 74 72 61 63 6b ┆ home position ; treat as track┆ 0x0a98a0…0a98c0 20 30 30 20 73 65 65 6b 0d 0a 09 6d 76 69 09 63 2c 30 0d 0a 09 6a 6d 70 09 73 65 74 74 72 6b 0d ┆ 00 seek mvi c,0 jmp settrk ┆ 0x0a98c0…0a98e0 0a 3b 0d 0a 73 65 6c 64 73 6b 3a 09 3b 73 65 6c 65 63 74 20 64 69 73 6b 20 67 69 76 65 6e 20 62 ┆ ; seldsk: ;select disk given b┆ 0x0a98e0…0a9900 79 20 72 65 67 69 73 74 65 72 20 63 0d 0a 09 6c 78 69 09 68 2c 30 30 30 30 68 09 3b 72 65 74 75 ┆y register c lxi h,0000h ;retu┆ 0x0a9900…0a9920 72 6e 20 30 30 30 30 20 69 66 20 65 72 72 6f 72 0d 0a 09 6d 6f 76 09 61 2c 63 0d 0a 09 63 70 69 ┆rn 0000 if error mov a,c cpi┆ 0x0a9920…0a9940 09 6e 64 69 73 6b 73 09 3b 74 6f 6f 20 6c 61 72 67 65 3f 0d 0a 09 72 6e 63 09 09 3b 6c 65 61 76 ┆ ndisks ;too large? rnc ;leav┆ 0x0a9940…0a9960 65 20 48 4c 20 3d 20 30 30 30 30 0d 0a 3b 0d 0a 09 61 6e 69 09 31 30 62 09 3b 30 30 20 30 30 20 ┆e HL = 0000 ; ani 10b ;00 00 ┆ 0x0a9960…0a9980 66 6f 72 20 64 72 69 76 65 20 30 2c 31 20 61 6e 64 20 31 30 20 31 30 20 66 6f 72 20 64 72 69 76 ┆for drive 0,1 and 10 10 for driv┆ 0x0a9980…0a99a0 65 20 32 2c 33 0d 0a 09 73 74 61 09 64 62 61 6e 6b 09 3b 74 6f 20 73 65 6c 65 63 74 20 64 72 69 ┆e 2,3 sta dbank ;to select dri┆ 0x0a99a0…0a99c0 76 65 20 62 61 6e 6b 0d 0a 09 6d 6f 76 09 61 2c 63 09 3b 30 30 2c 20 30 31 2c 20 31 30 2c 20 31 ┆ve bank mov a,c ;00, 01, 10, 1┆ 0x0a99c0…0a99e0 31 0d 0a 09 61 6e 69 09 31 62 09 3b 6d 64 73 20 68 61 73 20 30 2c 31 20 61 74 20 37 38 2c 20 32 ┆1 ani 1b ;mds has 0,1 at 78, 2┆ 0x0a99e0…0a9a00 2c 33 20 61 74 20 38 38 0d 0a 09 6f 72 61 09 61 09 3b 72 65 73 75 6c 74 20 30 30 3f 0d 0a 09 6a ┆,3 at 88 ora a ;result 00? j┆ 0x0a9a00…0a9a20 (45, 0, 8) 09 6f 72 61 09 63 09 3b 73 65 74 20 74 6f 20 6e 65 77 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6d 6f 76 ┆ ora c ;set to new command mov┆ 0x0a9a20…0a9a40 09 6d 2c 61 09 3b 72 65 70 6c 61 63 65 64 20 69 6e 20 69 6f 70 62 0d 0a 3b 09 74 68 65 20 6d 64 ┆ m,a ;replaced in iopb ; the md┆ 0x0a9a40…0a9a60 73 2d 38 30 30 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 72 65 71 75 69 72 65 73 20 64 69 73 6b 20 62 ┆s-800 controller requires disk b┆ 0x0a9a60…0a9a80 61 6e 6b 20 62 69 74 20 69 6e 20 73 65 63 74 6f 72 20 62 79 74 65 0d 0a 3b 09 6d 61 73 6b 20 74 ┆ank bit in sector byte ; mask t┆ 0x0a9a80…0a9aa0 68 65 20 62 69 74 20 66 72 6f 6d 20 74 68 65 20 63 75 72 72 65 6e 74 20 69 2f 6f 20 66 75 6e 63 ┆he bit from the current i/o func┆ 0x0a9aa0…0a9ac0 74 69 6f 6e 0d 0a 09 61 6e 69 09 30 30 31 30 30 30 30 30 62 09 3b 6d 61 73 6b 20 74 68 65 20 64 ┆tion ani 00100000b ;mask the d┆ 0x0a9ac0…0a9ae0 69 73 6b 20 73 65 6c 65 63 74 20 62 69 74 0d 0a 09 6c 78 69 09 68 2c 69 6f 73 09 09 3b 61 64 64 ┆isk select bit lxi h,ios ;add┆ 0x0a9ae0…0a9b00 72 65 73 73 20 74 68 65 20 73 65 63 74 6f 72 20 73 65 6c 65 63 74 20 62 79 74 65 0d 0a 09 6f 72 ┆ress the sector select byte or┆ 0x0a9b00…0a9b20 61 09 6d 09 09 3b 73 65 6c 65 63 74 20 70 72 6f 70 65 72 20 64 69 73 6b 20 62 61 6e 6b 0d 0a 09 ┆a m ;select proper disk bank ┆ 0x0a9b20…0a9b40 6d 6f 76 09 6d 2c 61 09 09 3b 73 65 74 20 64 69 73 6b 20 73 65 6c 65 63 74 20 62 69 74 20 6f 6e ┆mov m,a ;set disk select bit on┆ 0x0a9b40…0a9b60 2f 6f 66 66 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 77 61 69 74 69 6f 3a 0d 0a 09 6d 76 69 09 63 2c 72 ┆/off ret ; waitio: mvi c,r┆ 0x0a9b60…0a9b80 65 74 72 79 09 3b 6d 61 78 20 72 65 74 72 69 65 73 20 62 65 66 6f 72 65 20 70 65 72 6d 20 65 72 ┆etry ;max retries before perm er┆ 0x0a9b80…0a9ba0 72 6f 72 0d 0a 72 65 77 61 69 74 3a 0d 0a 3b 09 73 74 61 72 74 20 74 68 65 20 69 2f 6f 20 66 75 ┆ror rewait: ; start the i/o fu┆ 0x0a9ba0…0a9bc0 6e 63 74 69 6f 6e 20 61 6e 64 20 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 0d 0a ┆nction and wait for completion ┆ 0x0a9bc0…0a9be0 09 63 61 6c 6c 09 69 6e 74 79 70 65 09 3b 69 6e 20 72 74 79 70 65 0d 0a 09 63 61 6c 6c 09 69 6e ┆ call intype ;in rtype call in┆ 0x0a9be0…0a9c00 62 79 74 65 09 3b 63 6c 65 61 72 73 20 74 68 65 20 63 6f 6e 74 72 6f 6c 6c 65 72 0d 0a 3b 0d 0a ┆byte ;clears the controller ; ┆ 0x0a9c00…0a9c20 (45, 0, 9) 62 61 73 65 09 65 71 75 09 37 38 68 09 3b 62 61 73 65 20 6f 66 20 64 69 73 6b 20 63 6f 6d 6d 61 ┆base equ 78h ;base of disk comma┆ 0x0a9c20…0a9c40 6e 64 20 69 6f 20 70 6f 72 74 73 0d 0a 64 73 74 61 74 09 65 71 75 09 62 61 73 65 09 3b 64 69 73 ┆nd io ports dstat equ base ;dis┆ 0x0a9c40…0a9c60 6b 20 73 74 61 74 75 73 20 28 69 6e 70 75 74 29 0d 0a 72 74 79 70 65 09 65 71 75 09 62 61 73 65 ┆k status (input) rtype equ base┆ 0x0a9c60…0a9c80 2b 31 09 3b 72 65 73 75 6c 74 20 74 79 70 65 20 28 69 6e 70 75 74 29 0d 0a 72 62 79 74 65 09 65 ┆+1 ;result type (input) rbyte e┆ 0x0a9c80…0a9ca0 71 75 09 62 61 73 65 2b 33 09 3b 72 65 73 75 6c 74 20 62 79 74 65 20 28 69 6e 70 75 74 29 0d 0a ┆qu base+3 ;result byte (input) ┆ 0x0a9ca0…0a9cc0 3b 0d 0a 69 6c 6f 77 09 65 71 75 09 62 61 73 65 2b 31 09 3b 69 6f 70 62 20 6c 6f 77 20 61 64 64 ┆; ilow equ base+1 ;iopb low add┆ 0x0a9cc0…0a9ce0 72 65 73 73 20 28 6f 75 74 70 75 74 29 0d 0a 69 68 69 67 68 09 65 71 75 09 62 61 73 65 2b 32 09 ┆ress (output) ihigh equ base+2 ┆ 0x0a9ce0…0a9d00 3b 69 6f 70 62 20 68 69 67 68 20 61 64 64 72 65 73 73 20 28 6f 75 74 70 75 74 29 0d 0a 3b 0d 0a ┆;iopb high address (output) ; ┆ 0x0a9d00…0a9d20 72 65 61 64 66 09 65 71 75 09 34 68 09 3b 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 77 72 69 ┆readf equ 4h ;read function wri┆ 0x0a9d20…0a9d40 74 66 09 65 71 75 09 36 68 09 3b 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 72 65 63 61 6c ┆tf equ 6h ;write function recal┆ 0x0a9d40…0a9d60 09 65 71 75 09 33 68 09 3b 72 65 63 61 6c 69 62 72 61 74 65 20 64 72 69 76 65 0d 0a 69 6f 72 64 ┆ equ 3h ;recalibrate drive iord┆ 0x0a9d60…0a9d80 79 09 65 71 75 09 34 68 09 3b 69 2f 6f 20 66 69 6e 69 73 68 65 64 20 6d 61 73 6b 0d 0a 63 72 09 ┆y equ 4h ;i/o finished mask cr ┆ 0x0a9d80…0a9da0 65 71 75 09 30 64 68 09 3b 63 61 72 72 69 61 67 65 20 72 65 74 75 72 6e 0d 0a 6c 66 09 65 71 75 ┆equ 0dh ;carriage return lf equ┆ 0x0a9da0…0a9dc0 09 30 61 68 09 3b 6c 69 6e 65 20 66 65 65 64 0d 0a 3b 0d 0a 73 69 67 6e 6f 6e 3a 09 3b 73 69 67 ┆ 0ah ;line feed ; signon: ;sig┆ 0x0a9dc0…0a9de0 6e 6f 6e 20 6d 65 73 73 61 67 65 3a 20 78 78 6b 20 63 70 2f 6d 20 76 65 72 73 20 79 2e 79 0d 0a ┆non message: xxk cp/m vers y.y ┆ 0x0a9de0…0a9e00 09 64 62 09 63 72 2c 6c 66 2c 6c 66 0d 0a 09 69 66 09 74 65 73 74 0d 0a 09 64 62 09 27 33 32 27 ┆ db cr,lf,lf if test db '32'┆ 0x0a9e00…0a9e20 (45, 0, 10) 09 73 65 74 73 65 63 0d 0a 09 70 6f 70 09 62 09 3b 72 65 63 61 6c 6c 20 73 65 63 74 6f 72 20 63 ┆ setsec pop b ;recall sector c┆ 0x0a9e20…0a9e40 6f 75 6e 74 0d 0a 09 64 63 72 09 62 09 3b 64 6f 6e 65 3f 0d 0a 09 6a 6e 7a 09 72 64 73 65 63 0d ┆ount dcr b ;done? jnz rdsec ┆ 0x0a9e40…0a9e60 0a 3b 0d 0a 3b 09 64 6f 6e 65 20 77 69 74 68 20 74 68 65 20 6c 6f 61 64 2c 20 72 65 73 65 74 20 ┆ ; ; done with the load, reset ┆ 0x0a9e60…0a9e80 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 0d 0a 67 6f 63 70 6d 3a 09 3b ┆default buffer address gocpm: ;┆ 0x0a9e80…0a9ea0 28 65 6e 74 65 72 20 68 65 72 65 20 66 72 6f 6d 20 63 6f 6c 64 20 73 74 61 72 74 20 62 6f 6f 74 ┆(enter here from cold start boot┆ 0x0a9ea0…0a9ec0 29 0d 0a 3b 09 65 6e 61 62 6c 65 20 72 73 74 30 20 61 6e 64 20 72 73 74 37 0d 0a 09 64 69 0d 0a ┆) ; enable rst0 and rst7 di ┆ 0x0a9ec0…0a9ee0 09 6d 76 69 09 61 2c 31 32 68 09 3b 69 6e 69 74 69 61 6c 69 7a 65 20 63 6f 6d 6d 61 6e 64 0d 0a ┆ mvi a,12h ;initialize command ┆ 0x0a9ee0…0a9f00 09 6f 75 74 09 72 65 76 72 74 0d 0a 09 78 72 61 09 61 0d 0a 09 6f 75 74 09 69 6e 74 63 09 3b 63 ┆ out revrt xra a out intc ;c┆ 0x0a9f00…0a9f20 6c 65 61 72 65 64 0d 0a 09 6d 76 69 09 61 2c 69 6e 74 65 09 3b 72 73 74 30 20 61 6e 64 20 72 73 ┆leared mvi a,inte ;rst0 and rs┆ 0x0a9f20…0a9f40 74 37 20 62 69 74 73 20 6f 6e 0d 0a 09 6f 75 74 09 69 6e 74 63 0d 0a 09 78 72 61 09 61 0d 0a 09 ┆t7 bits on out intc xra a ┆ 0x0a9f40…0a9f60 6f 75 74 09 69 63 6f 6e 09 3b 69 6e 74 65 72 72 75 70 74 20 63 6f 6e 74 72 6f 6c 0d 0a 3b 0d 0a ┆out icon ;interrupt control ; ┆ 0x0a9f60…0a9f80 3b 09 73 65 74 20 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 20 74 6f 20 ┆; set default buffer address to ┆ 0x0a9f80…0a9fa0 38 30 68 0d 0a 09 6c 78 69 09 62 2c 62 75 66 66 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a ┆80h lxi b,buff call setdma ┆ 0x0a9fa0…0a9fc0 3b 0d 0a 3b 09 72 65 73 65 74 20 6d 6f 6e 69 74 6f 72 20 65 6e 74 72 79 20 70 6f 69 6e 74 73 0d ┆; ; reset monitor entry points ┆ 0x0a9fc0…0a9fe0 0a 09 6d 76 69 09 61 2c 6a 6d 70 0d 0a 09 73 74 61 09 30 0d 0a 09 6c 78 69 09 68 2c 77 62 6f 6f ┆ mvi a,jmp sta 0 lxi h,wboo┆ 0x0a9fe0…0aa000 74 65 0d 0a 09 73 68 6c 64 09 31 09 3b 6a 6d 70 20 77 62 6f 6f 74 20 61 74 20 6c 6f 63 61 74 69 ┆te shld 1 ;jmp wboot at locati┆ 0x0aa000…0aa020 (45, 0, 11) 7a 09 73 65 74 64 72 69 76 65 0d 0a 09 6d 76 69 09 61 2c 30 30 31 31 30 30 30 30 62 09 3b 73 65 ┆z setdrive mvi a,00110000b ;se┆ 0x0aa020…0aa040 6c 65 63 74 73 20 64 72 69 76 65 20 31 20 69 6e 20 62 61 6e 6b 0d 0a 73 65 74 64 72 69 76 65 3a ┆lects drive 1 in bank setdrive:┆ 0x0aa040…0aa060 0d 0a 09 6d 6f 76 09 62 2c 61 09 3b 73 61 76 65 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 ┆ mov b,a ;save the function ┆ 0x0aa060…0aa080 6c 78 69 09 68 2c 69 6f 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6d 6f 76 09 61 2c 6d ┆lxi h,iof ;io function mov a,m┆ 0x0aa080…0aa0a0 0d 0a 09 61 6e 69 09 31 31 30 30 31 31 31 31 62 09 3b 6d 61 73 6b 20 6f 75 74 20 64 69 73 6b 20 ┆ ani 11001111b ;mask out disk ┆ 0x0aa0a0…0aa0c0 6e 75 6d 62 65 72 0d 0a 09 6f 72 61 09 62 09 3b 6d 61 73 6b 20 69 6e 20 6e 65 77 20 64 69 73 6b ┆number ora b ;mask in new disk┆ 0x0aa0c0…0aa0e0 20 6e 75 6d 62 65 72 0d 0a 09 6d 6f 76 09 6d 2c 61 09 3b 73 61 76 65 20 69 74 20 69 6e 20 69 6f ┆ number mov m,a ;save it in io┆ 0x0aa0e0…0aa100 70 62 0d 0a 09 6d 6f 76 09 6c 2c 63 0d 0a 09 6d 76 69 09 68 2c 30 09 3b 48 4c 3d 64 69 73 6b 20 ┆pb mov l,c mvi h,0 ;HL=disk ┆ 0x0aa100…0aa120 6e 75 6d 62 65 72 0d 0a 09 64 61 64 09 68 09 3b 2a 32 0d 0a 09 64 61 64 09 68 09 3b 2a 34 0d 0a ┆number dad h ;*2 dad h ;*4 ┆ 0x0aa120…0aa140 09 64 61 64 09 68 09 3b 2a 38 0d 0a 09 64 61 64 09 68 09 3b 2a 31 36 0d 0a 09 6c 78 69 09 64 2c ┆ dad h ;*8 dad h ;*16 lxi d,┆ 0x0aa140…0aa160 64 70 62 61 73 65 0d 0a 09 64 61 64 09 64 09 3b 48 4c 3d 64 69 73 6b 20 68 65 61 64 65 72 20 74 ┆dpbase dad d ;HL=disk header t┆ 0x0aa160…0aa180 61 62 6c 65 20 61 64 64 72 65 73 73 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 73 65 74 74 72 6b ┆able address ret ; ; settrk┆ 0x0aa180…0aa1a0 3a 09 3b 73 65 74 20 74 72 61 63 6b 20 61 64 64 72 65 73 73 20 67 69 76 65 6e 20 62 79 20 63 0d ┆: ;set track address given by c ┆ 0x0aa1a0…0aa1c0 0a 09 6c 78 69 09 68 2c 69 6f 74 0d 0a 09 6d 6f 76 09 6d 2c 63 0d 0a 09 72 65 74 0d 0a 3b 0d 0a ┆ lxi h,iot mov m,c ret ; ┆ 0x0aa1c0…0aa1e0 73 65 74 73 65 63 3a 09 3b 73 65 74 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 67 69 76 65 6e ┆setsec: ;set sector number given┆ 0x0aa1e0…0aa200 20 62 79 20 63 0d 0a 09 6c 78 69 09 68 2c 69 6f 73 0d 0a 09 6d 6f 76 09 6d 2c 63 0d 0a 09 72 65 ┆ by c lxi h,ios mov m,c re┆ 0x0aa200…0aa220 (45, 0, 12) 09 6c 64 61 09 64 62 61 6e 6b 09 09 3b 73 65 74 20 62 61 6e 6b 20 66 6c 61 67 73 0d 0a 09 6f 72 ┆ lda dbank ;set bank flags or┆ 0x0aa220…0aa240 61 09 61 09 09 3b 7a 65 72 6f 20 69 66 20 64 72 69 76 65 20 30 2c 31 20 61 6e 64 20 6e 7a 20 69 ┆a a ;zero if drive 0,1 and nz i┆ 0x0aa240…0aa260 66 20 32 2c 33 0d 0a 09 6d 76 69 09 61 2c 69 6f 70 62 20 61 6e 64 20 30 66 66 68 09 3b 6c 6f 77 ┆f 2,3 mvi a,iopb and 0ffh ;low┆ 0x0aa260…0aa280 20 61 64 64 72 65 73 73 20 66 6f 72 20 69 6f 70 62 0d 0a 09 6d 76 69 09 62 2c 69 6f 70 62 20 73 ┆ address for iopb mvi b,iopb s┆ 0x0aa280…0aa2a0 68 72 20 38 09 3b 68 69 67 68 20 61 64 64 72 65 73 73 20 66 6f 72 20 69 6f 70 62 0d 0a 09 6a 6e ┆hr 8 ;high address for iopb jn┆ 0x0aa2a0…0aa2c0 7a 09 69 6f 64 72 31 09 3b 64 72 69 76 65 20 62 61 6e 6b 20 31 3f 0d 0a 09 6f 75 74 09 69 6c 6f ┆z iodr1 ;drive bank 1? out ilo┆ 0x0aa2c0…0aa2e0 77 09 09 3b 6c 6f 77 20 61 64 64 72 65 73 73 20 74 6f 20 63 6f 6e 74 72 6f 6c 6c 65 72 0d 0a 09 ┆w ;low address to controller ┆ 0x0aa2e0…0aa300 6d 6f 76 09 61 2c 62 0d 0a 09 6f 75 74 09 69 68 69 67 68 09 3b 68 69 67 68 20 61 64 64 72 65 73 ┆mov a,b out ihigh ;high addres┆ 0x0aa300…0aa320 73 0d 0a 09 6a 6d 70 09 77 61 69 74 30 09 09 3b 74 6f 20 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 ┆s jmp wait0 ;to wait for comp┆ 0x0aa320…0aa340 6c 65 74 65 0d 0a 3b 0d 0a 69 6f 64 72 31 3a 09 3b 64 72 69 76 65 20 62 61 6e 6b 20 31 0d 0a 09 ┆lete ; iodr1: ;drive bank 1 ┆ 0x0aa340…0aa360 6f 75 74 09 69 6c 6f 77 2b 31 30 68 09 3b 38 38 20 66 6f 72 20 64 72 69 76 65 20 62 61 6e 6b 20 ┆out ilow+10h ;88 for drive bank ┆ 0x0aa360…0aa380 31 30 0d 0a 09 6d 6f 76 09 61 2c 62 0d 0a 09 6f 75 74 09 69 68 69 67 68 2b 31 30 68 0d 0a 3b 0d ┆10 mov a,b out ihigh+10h ; ┆ 0x0aa380…0aa3a0 0a 77 61 69 74 30 3a 09 63 61 6c 6c 09 69 6e 73 74 61 74 09 09 3b 77 61 69 74 20 66 6f 72 20 63 ┆ wait0: call instat ;wait for c┆ 0x0aa3a0…0aa3c0 6f 6d 70 6c 65 74 69 6f 6e 0d 0a 09 61 6e 69 09 69 6f 72 64 79 09 09 3b 72 65 61 64 79 3f 0d 0a ┆ompletion ani iordy ;ready? ┆ 0x0aa3c0…0aa3e0 09 6a 7a 09 77 61 69 74 30 0d 0a 3b 0d 0a 3b 09 63 68 65 63 6b 20 69 6f 20 63 6f 6d 70 6c 65 74 ┆ jz wait0 ; ; check io complet┆ 0x0aa3e0…0aa400 69 6f 6e 20 6f 6b 0d 0a 09 63 61 6c 6c 09 69 6e 74 79 70 65 09 09 3b 6d 75 73 74 20 62 65 20 69 ┆ion ok call intype ;must be i┆ 0x0aa400…0aa420 (45, 0, 13) 09 3b 33 32 6b 20 65 78 61 6d 70 6c 65 20 62 69 6f 73 0d 0a 09 65 6e 64 69 66 0d 0a 09 69 66 09 ┆ ;32k example bios endif if ┆ 0x0aa420…0aa440 6e 6f 74 20 74 65 73 74 0d 0a 09 64 62 09 27 30 30 27 09 3b 6d 65 6d 6f 72 79 20 73 69 7a 65 20 ┆not test db '00' ;memory size ┆ 0x0aa440…0aa460 66 69 6c 6c 65 64 20 62 79 20 72 65 6c 6f 63 61 74 6f 72 0d 0a 09 65 6e 64 69 66 0d 0a 09 64 62 ┆filled by relocator endif db┆ 0x0aa460…0aa480 09 27 6b 20 43 50 2f 4d 20 76 65 72 73 20 27 0d 0a 09 64 62 09 76 65 72 73 2f 31 30 2b 27 30 27 ┆ 'k CP/M vers ' db vers/10+'0'┆ 0x0aa480…0aa4a0 2c 27 2e 27 2c 76 65 72 73 20 6d 6f 64 20 31 30 2b 27 30 27 0d 0a 09 64 62 09 63 72 2c 6c 66 2c ┆,'.',vers mod 10+'0' db cr,lf,┆ 0x0aa4a0…0aa4c0 30 0d 0a 3b 0d 0a 62 6f 6f 74 3a 09 3b 70 72 69 6e 74 20 73 69 67 6e 6f 6e 20 6d 65 73 73 61 67 ┆0 ; boot: ;print signon messag┆ 0x0aa4c0…0aa4e0 65 20 61 6e 64 20 67 6f 20 74 6f 20 63 63 70 0d 0a 3b 09 28 6e 6f 74 65 3a 20 6d 64 73 20 62 6f ┆e and go to ccp ; (note: mds bo┆ 0x0aa4e0…0aa500 6f 74 20 69 6e 69 74 69 61 6c 69 7a 65 64 20 69 6f 62 79 74 65 20 61 74 20 30 30 30 33 68 29 0d ┆ot initialized iobyte at 0003h) ┆ 0x0aa500…0aa520 0a 09 6c 78 69 09 73 70 2c 62 75 66 66 2b 38 30 68 0d 0a 09 6c 78 69 09 68 2c 73 69 67 6e 6f 6e ┆ lxi sp,buff+80h lxi h,signon┆ 0x0aa520…0aa540 0d 0a 09 63 61 6c 6c 09 70 72 6d 73 67 09 3b 70 72 69 6e 74 20 6d 65 73 73 61 67 65 0d 0a 09 78 ┆ call prmsg ;print message x┆ 0x0aa540…0aa560 72 61 09 61 09 3b 63 6c 65 61 72 20 61 63 63 75 6d 75 6c 61 74 6f 72 0d 0a 09 73 74 61 09 63 64 ┆ra a ;clear accumulator sta cd┆ 0x0aa560…0aa580 69 73 6b 09 3b 73 65 74 20 69 6e 69 74 69 61 6c 6c 79 20 74 6f 20 64 69 73 6b 20 61 0d 0a 09 6a ┆isk ;set initially to disk a j┆ 0x0aa580…0aa5a0 6d 70 09 67 6f 63 70 6d 09 3b 67 6f 20 74 6f 20 63 70 2f 6d 0d 0a 3b 0d 0a 3b 0d 0a 77 62 6f 6f ┆mp gocpm ;go to cp/m ; ; wboo┆ 0x0aa5a0…0aa5c0 74 3a 3b 09 6c 6f 61 64 65 72 20 6f 6e 20 74 72 61 63 6b 20 30 2c 20 73 65 63 74 6f 72 20 31 2c ┆t:; loader on track 0, sector 1,┆ 0x0aa5c0…0aa5e0 20 77 68 69 63 68 20 77 69 6c 6c 20 62 65 20 73 6b 69 70 70 65 64 20 66 6f 72 20 77 61 72 6d 20 ┆ which will be skipped for warm ┆ 0x0aa5e0…0aa600 0d 0a 3b 09 72 65 61 64 20 63 70 2f 6d 20 66 72 6f 6d 20 64 69 73 6b 20 2d 20 61 73 73 75 6d 69 ┆ ; read cp/m from disk - assumi┆ 0x0aa600…0aa620 (45, 0, 14) 6f 6e 20 30 30 0d 0a 09 73 74 61 09 35 0d 0a 09 6c 78 69 09 68 2c 62 64 6f 73 0d 0a 09 73 68 6c ┆on 00 sta 5 lxi h,bdos shl┆ 0x0aa620…0aa640 64 09 36 09 3b 6a 6d 70 20 62 64 6f 73 20 61 74 20 6c 6f 63 61 74 69 6f 6e 20 35 0d 0a 09 69 66 ┆d 6 ;jmp bdos at location 5 if┆ 0x0aa640…0aa660 09 6e 6f 74 20 74 65 73 74 0d 0a 09 73 74 61 09 37 2a 38 09 3b 6a 6d 70 20 74 6f 20 6d 6f 6e 38 ┆ not test sta 7*8 ;jmp to mon8┆ 0x0aa660…0aa680 30 20 28 6d 61 79 20 68 61 76 65 20 62 65 65 6e 20 63 68 61 6e 67 65 64 20 62 79 20 64 64 74 29 ┆0 (may have been changed by ddt)┆ 0x0aa680…0aa6a0 0d 0a 09 6c 78 69 09 68 2c 6d 6f 6e 38 30 0d 0a 09 73 68 6c 64 09 37 2a 38 2b 31 0d 0a 09 65 6e ┆ lxi h,mon80 shld 7*8+1 en┆ 0x0aa6a0…0aa6c0 64 69 66 0d 0a 3b 09 6c 65 61 76 65 20 69 6f 62 79 74 65 20 73 65 74 0d 0a 3b 09 70 72 65 76 69 ┆dif ; leave iobyte set ; previ┆ 0x0aa6c0…0aa6e0 6f 75 73 6c 79 20 73 65 6c 65 63 74 65 64 20 64 69 73 6b 20 77 61 73 20 62 2c 20 73 65 6e 64 20 ┆ously selected disk was b, send ┆ 0x0aa6e0…0aa700 70 61 72 61 6d 65 74 65 72 20 74 6f 20 63 70 6d 0d 0a 09 6c 64 61 09 63 64 69 73 6b 09 3b 6c 61 ┆parameter to cpm lda cdisk ;la┆ 0x0aa700…0aa720 73 74 20 6c 6f 67 67 65 64 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6d 6f 76 09 63 2c 61 09 ┆st logged disk number mov c,a ┆ 0x0aa720…0aa740 3b 73 65 6e 64 20 74 6f 20 63 63 70 20 74 6f 20 6c 6f 67 20 69 74 20 69 6e 0d 0a 09 65 69 0d 0a ┆;send to ccp to log it in ei ┆ 0x0aa740…0aa760 09 6a 6d 70 09 63 70 6d 62 0d 0a 3b 0d 0a 3b 09 65 72 72 6f 72 20 63 6f 6e 64 69 74 69 6f 6e 20 ┆ jmp cpmb ; ; error condition ┆ 0x0aa760…0aa780 6f 63 63 75 72 72 65 64 2c 20 70 72 69 6e 74 20 6d 65 73 73 61 67 65 20 61 6e 64 20 72 65 74 72 ┆occurred, print message and retr┆ 0x0aa780…0aa7a0 79 0d 0a 62 6f 6f 74 65 72 72 3a 0d 0a 09 70 6f 70 09 62 09 3b 72 65 63 61 6c 6c 20 63 6f 75 6e ┆y booterr: pop b ;recall coun┆ 0x0aa7a0…0aa7c0 74 73 0d 0a 09 64 63 72 09 63 0d 0a 09 6a 7a 09 62 6f 6f 74 65 72 30 0d 0a 3b 09 74 72 79 20 61 ┆ts dcr c jz booter0 ; try a┆ 0x0aa7c0…0aa7e0 67 61 69 6e 0d 0a 09 70 75 73 68 09 62 0d 0a 09 6a 6d 70 09 77 62 6f 6f 74 30 0d 0a 3b 0d 0a 62 ┆gain push b jmp wboot0 ; b┆ 0x0aa7e0…0aa800 6f 6f 74 65 72 30 3a 0d 0a 3b 09 6f 74 68 65 72 77 69 73 65 20 74 6f 6f 20 6d 61 6e 79 20 72 65 ┆ooter0: ; otherwise too many re┆ 0x0aa800…0aa820 (45, 0, 15) 74 0d 0a 73 65 63 74 72 61 6e 3a 0d 0a 09 09 3b 74 72 61 6e 73 6c 61 74 65 20 73 65 63 74 6f 72 ┆t sectran: ;translate sector┆ 0x0aa820…0aa840 20 62 63 20 75 73 69 6e 67 20 74 61 62 6c 65 20 61 74 20 64 65 0d 0a 09 6d 76 69 09 62 2c 30 09 ┆ bc using table at de mvi b,0 ┆ 0x0aa840…0aa860 3b 64 6f 75 62 6c 65 20 70 72 65 63 69 73 69 6f 6e 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 ┆;double precision sector number ┆ 0x0aa860…0aa880 69 6e 20 42 43 0d 0a 09 78 63 68 67 09 09 3b 74 72 61 6e 73 6c 61 74 65 20 74 61 62 6c 65 20 61 ┆in BC xchg ;translate table a┆ 0x0aa880…0aa8a0 64 64 72 65 73 73 20 74 6f 20 48 4c 0d 0a 09 64 61 64 09 62 09 3b 74 72 61 6e 73 6c 61 74 65 28 ┆ddress to HL dad b ;translate(┆ 0x0aa8a0…0aa8c0 73 65 63 74 6f 72 29 20 61 64 64 72 65 73 73 0d 0a 09 6d 6f 76 09 61 2c 6d 09 3b 74 72 61 6e 73 ┆sector) address mov a,m ;trans┆ 0x0aa8c0…0aa8e0 6c 61 74 65 64 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 74 6f 20 41 0d 0a 09 73 74 61 09 69 ┆lated sector number to A sta i┆ 0x0aa8e0…0aa900 6f 73 0d 0a 09 6d 6f 76 09 6c 2c 61 09 3b 72 65 74 75 72 6e 20 73 65 63 74 6f 72 20 6e 75 6d 62 ┆os mov l,a ;return sector numb┆ 0x0aa900…0aa920 65 72 20 69 6e 20 4c 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 73 65 74 64 6d 61 3a 09 3b 73 65 74 20 64 ┆er in L ret ; setdma: ;set d┆ 0x0aa920…0aa940 6d 61 20 61 64 64 72 65 73 73 20 67 69 76 65 6e 20 62 79 20 72 65 67 73 20 62 2c 63 0d 0a 09 6d ┆ma address given by regs b,c m┆ 0x0aa940…0aa960 6f 76 09 6c 2c 63 0d 0a 09 6d 6f 76 09 68 2c 62 0d 0a 09 73 68 6c 64 09 69 6f 64 0d 0a 09 72 65 ┆ov l,c mov h,b shld iod re┆ 0x0aa960…0aa980 74 0d 0a 3b 0d 0a 72 65 61 64 3a 09 3b 72 65 61 64 20 6e 65 78 74 20 64 69 73 6b 20 72 65 63 6f ┆t ; read: ;read next disk reco┆ 0x0aa980…0aa9a0 72 64 20 28 61 73 73 75 6d 69 6e 67 20 64 69 73 6b 2f 74 72 6b 2f 73 65 63 2f 64 6d 61 20 73 65 ┆rd (assuming disk/trk/sec/dma se┆ 0x0aa9a0…0aa9c0 74 29 0d 0a 09 6d 76 69 09 63 2c 72 65 61 64 66 09 3b 73 65 74 20 74 6f 20 72 65 61 64 20 66 75 ┆t) mvi c,readf ;set to read fu┆ 0x0aa9c0…0aa9e0 6e 63 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 73 65 74 66 75 6e 63 0d 0a 09 63 61 6c 6c 09 77 61 69 ┆nction call setfunc call wai┆ 0x0aa9e0…0aaa00 74 69 6f 09 3b 70 65 72 66 6f 72 6d 20 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 72 65 74 ┆tio ;perform read function ret┆ 0x0aaa00…0aaa20 (45, 1, 1) 6f 20 63 6f 6d 70 6c 65 74 65 20 28 30 30 29 20 75 6e 6c 69 6e 6b 65 64 0d 0a 3b 09 30 30 20 75 ┆o complete (00) unlinked ; 00 u┆ 0x0aaa20…0aaa40 6e 6c 69 6e 6b 65 64 20 69 2f 6f 20 63 6f 6d 70 6c 65 74 65 2c 20 20 20 20 30 31 20 6c 69 6e 6b ┆nlinked i/o complete, 01 link┆ 0x0aaa40…0aaa60 65 64 20 69 2f 6f 20 63 6f 6d 70 6c 65 74 65 20 28 6e 6f 74 20 75 73 65 64 29 0d 0a 3b 09 31 30 ┆ed i/o complete (not used) ; 10┆ 0x0aaa60…0aaa80 20 64 69 73 6b 20 73 74 61 74 75 73 20 63 68 61 6e 67 65 64 20 20 20 20 20 20 20 31 31 20 28 6e ┆ disk status changed 11 (n┆ 0x0aaa80…0aaaa0 6f 74 20 75 73 65 64 29 0d 0a 09 63 70 69 09 31 30 62 09 09 3b 72 65 61 64 79 20 73 74 61 74 75 ┆ot used) cpi 10b ;ready statu┆ 0x0aaaa0…0aaac0 73 20 63 68 61 6e 67 65 3f 0d 0a 09 6a 7a 09 77 72 65 61 64 79 0d 0a 3b 0d 0a 3b 09 6d 75 73 74 ┆s change? jz wready ; ; must┆ 0x0aaac0…0aaae0 20 62 65 20 30 30 20 69 6e 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 0d 0a 09 6f 72 61 09 ┆ be 00 in the accumulator ora ┆ 0x0aaae0…0aab00 61 0d 0a 09 6a 6e 7a 09 77 65 72 72 6f 72 09 09 3b 73 6f 6d 65 20 6f 74 68 65 72 20 63 6f 6e 64 ┆a jnz werror ;some other cond┆ 0x0aab00…0aab20 69 74 69 6f 6e 2c 20 72 65 74 72 79 0d 0a 3b 0d 0a 3b 09 63 68 65 63 6b 20 69 2f 6f 20 65 72 72 ┆ition, retry ; ; check i/o err┆ 0x0aab20…0aab40 6f 72 20 62 69 74 73 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 0d 0a 09 72 61 6c 0d 0a 09 6a 63 ┆or bits call inbyte ral jc┆ 0x0aab40…0aab60 09 77 72 65 61 64 79 09 09 3b 75 6e 69 74 20 6e 6f 74 20 72 65 61 64 79 0d 0a 09 72 61 72 0d 0a ┆ wready ;unit not ready rar ┆ 0x0aab60…0aab80 09 61 6e 69 09 31 31 31 31 31 31 31 30 62 09 3b 61 6e 79 20 6f 74 68 65 72 20 65 72 72 6f 72 73 ┆ ani 11111110b ;any other errors┆ 0x0aab80…0aaba0 3f 20 20 28 64 65 6c 65 74 65 64 20 64 61 74 61 20 6f 6b 29 0d 0a 09 6a 6e 7a 09 77 65 72 72 6f ┆? (deleted data ok) jnz werro┆ 0x0aaba0…0aabc0 72 0d 0a 3b 0d 0a 3b 09 72 65 61 64 20 6f 72 20 77 72 69 74 65 20 69 73 20 6f 6b 2c 20 61 63 63 ┆r ; ; read or write is ok, acc┆ 0x0aabc0…0aabe0 75 6d 75 6c 61 74 6f 72 20 63 6f 6e 74 61 69 6e 73 20 7a 65 72 6f 0d 0a 09 72 65 74 0d 0a 3b 0d ┆umulator contains zero ret ; ┆ 0x0aabe0…0aac00 0a 77 72 65 61 64 79 3a 09 3b 6e 6f 74 20 72 65 61 64 79 2c 20 74 72 65 61 74 20 61 73 20 65 72 ┆ wready: ;not ready, treat as er┆ 0x0aac00…0aac20 (45, 1, 2) 31 09 3b 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 20 74 6f 20 72 65 61 64 0d 0a 69 6f ┆1 ;number of sectors to read io┆ 0x0aac20…0aac40 74 3a 09 64 62 09 6f 66 66 73 65 74 09 3b 74 72 61 63 6b 20 6e 75 6d 62 65 72 0d 0a 69 6f 73 3a ┆t: db offset ;track number ios:┆ 0x0aac40…0aac60 09 64 62 09 31 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 0d 0a 69 6f 64 3a 09 64 77 09 62 75 ┆ db 1 ;sector number iod: dw bu┆ 0x0aac60…0aac80 66 66 09 3b 69 6f 20 61 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 65 66 69 6e 65 20 72 ┆ff ;io address ; ; ; define r┆ 0x0aac80…0aaca0 61 6d 20 61 72 65 61 73 20 66 6f 72 20 62 64 6f 73 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 09 65 6e ┆am areas for bdos operation en┆ 0x0aaca0…0aacc0 64 65 66 0d 0a 09 65 6e 64 0d 0a 3b 09 4d 44 53 2d 38 30 30 20 49 2f 4f 20 44 72 69 76 65 72 73 ┆def end ; MDS-800 I/O Drivers┆ 0x0aacc0…0aace0 20 66 6f 72 20 43 50 2f 4d 20 32 2e 32 0d 0a 3b 09 28 66 6f 75 72 20 64 72 69 76 65 20 73 69 6e ┆ for CP/M 2.2 ; (four drive sin┆ 0x0aace0…0aad00 67 6c 65 20 64 65 6e 73 69 74 79 20 76 65 72 73 69 6f 6e 29 0d 0a 3b 0d 0a 3b 09 56 65 72 73 69 ┆gle density version) ; ; Versi┆ 0x0aad00…0aad20 6f 6e 20 32 2e 32 20 46 65 62 72 75 61 72 79 2c 20 31 39 38 30 0d 0a 3b 0d 0a 76 65 72 73 09 65 ┆on 2.2 February, 1980 ; vers e┆ 0x0aad20…0aad40 71 75 09 32 32 09 3b 76 65 72 73 69 6f 6e 20 32 2e 32 0d 0a 3b 0d 0a 3b 09 43 6f 70 79 72 69 67 ┆qu 22 ;version 2.2 ; ; Copyrig┆ 0x0aad40…0aad60 68 74 20 28 63 29 20 31 39 38 30 0d 0a 3b 09 44 69 67 69 74 61 6c 20 52 65 73 65 61 72 63 68 0d ┆ht (c) 1980 ; Digital Research ┆ 0x0aad60…0aad80 0a 3b 09 42 6f 78 20 35 37 39 2c 20 50 61 63 69 66 69 63 20 47 72 6f 76 65 0d 0a 3b 09 43 61 6c ┆ ; Box 579, Pacific Grove ; Cal┆ 0x0aad80…0aada0 69 66 6f 72 6e 69 61 2c 20 39 33 39 35 30 0d 0a 3b 0d 0a 3b 0d 0a 74 72 75 65 09 65 71 75 09 30 ┆ifornia, 93950 ; ; true equ 0┆ 0x0aada0…0aadc0 66 66 66 66 68 09 3b 76 61 6c 75 65 20 6f 66 20 22 74 72 75 65 22 0d 0a 66 61 6c 73 65 09 65 71 ┆ffffh ;value of "true" false eq┆ 0x0aadc0…0aade0 75 09 6e 6f 74 20 74 72 75 65 09 3b 22 66 61 6c 73 65 22 0d 0a 74 65 73 74 09 65 71 75 09 66 61 ┆u not true ;"false" test equ fa┆ 0x0aade0…0aae00 6c 73 65 09 3b 74 72 75 65 20 69 66 20 74 65 73 74 20 62 69 6f 73 0d 0a 3b 0d 0a 09 69 66 09 74 ┆lse ;true if test bios ; if t┆ 0x0aae00…0aae20 (45, 1, 3) 6d 20 70 72 65 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b 09 6a 75 6d 70 20 ┆m preset dma address ; ; jump ┆ 0x0aae20…0aae40 76 65 63 74 6f 72 20 66 6f 72 20 69 6e 64 69 76 69 75 61 6c 20 72 6f 75 74 69 6e 65 73 0d 0a 09 ┆vector for indiviual routines ┆ 0x0aae40…0aae60 6a 6d 70 09 62 6f 6f 74 0d 0a 77 62 6f 6f 74 65 3a 09 6a 6d 70 09 77 62 6f 6f 74 0d 0a 09 6a 6d ┆jmp boot wboote: jmp wboot jm┆ 0x0aae60…0aae80 70 09 63 6f 6e 73 74 0d 0a 09 6a 6d 70 09 63 6f 6e 69 6e 0d 0a 09 6a 6d 70 09 63 6f 6e 6f 75 74 ┆p const jmp conin jmp conout┆ 0x0aae80…0aaea0 0d 0a 09 6a 6d 70 09 6c 69 73 74 0d 0a 09 6a 6d 70 09 70 75 6e 63 68 0d 0a 09 6a 6d 70 09 72 65 ┆ jmp list jmp punch jmp re┆ 0x0aaea0…0aaec0 61 64 65 72 0d 0a 09 6a 6d 70 09 68 6f 6d 65 0d 0a 09 6a 6d 70 09 73 65 6c 64 73 6b 0d 0a 09 6a ┆ader jmp home jmp seldsk j┆ 0x0aaec0…0aaee0 6d 70 09 73 65 74 74 72 6b 0d 0a 09 6a 6d 70 09 73 65 74 73 65 63 0d 0a 09 6a 6d 70 09 73 65 74 ┆mp settrk jmp setsec jmp set┆ 0x0aaee0…0aaf00 64 6d 61 0d 0a 09 6a 6d 70 09 72 65 61 64 0d 0a 09 6a 6d 70 09 77 72 69 74 65 0d 0a 09 6a 6d 70 ┆dma jmp read jmp write jmp┆ 0x0aaf00…0aaf20 09 6c 69 73 74 73 74 09 3b 6c 69 73 74 20 73 74 61 74 75 73 0d 0a 09 6a 6d 70 09 73 65 63 74 72 ┆ listst ;list status jmp sectr┆ 0x0aaf20…0aaf40 61 6e 0d 0a 3b 0d 0a 09 6d 61 63 6c 69 62 09 64 69 73 6b 64 65 66 09 3b 6c 6f 61 64 20 74 68 65 ┆an ; maclib diskdef ;load the┆ 0x0aaf40…0aaf60 20 64 69 73 6b 20 64 65 66 69 6e 69 74 69 6f 6e 20 6c 69 62 72 61 72 79 0d 0a 09 64 69 73 6b 73 ┆ disk definition library disks┆ 0x0aaf60…0aaf80 09 34 09 3b 66 6f 75 72 20 64 69 73 6b 73 0d 0a 09 64 69 73 6b 64 65 66 09 30 2c 31 2c 32 36 2c ┆ 4 ;four disks diskdef 0,1,26,┆ 0x0aaf80…0aafa0 36 2c 31 30 32 34 2c 32 34 33 2c 36 34 2c 36 34 2c 6f 66 66 73 65 74 0d 0a 09 64 69 73 6b 64 65 ┆6,1024,243,64,64,offset diskde┆ 0x0aafa0…0aafc0 66 09 31 2c 30 0d 0a 09 64 69 73 6b 64 65 66 09 32 2c 30 0d 0a 09 64 69 73 6b 64 65 66 09 33 2c ┆f 1,0 diskdef 2,0 diskdef 3,┆ 0x0aafc0…0aafe0 30 0d 0a 3b 09 65 6e 64 65 66 20 6f 63 63 75 72 73 20 61 74 20 65 6e 64 20 6f 66 20 61 73 73 65 ┆0 ; endef occurs at end of asse┆ 0x0aafe0…0ab000 6d 62 6c 79 0d 0a 3b 0d 0a 3b 09 65 6e 64 20 6f 66 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 2d 20 69 ┆mbly ; ; end of controller - i┆ 0x0ab000…0ab020 (45, 1, 4) 0d 0a 09 64 62 09 27 6b 20 43 50 2f 4d 20 76 65 72 73 20 27 0d 0a 09 64 62 09 76 65 72 73 2f 31 ┆ db 'k CP/M vers ' db vers/1┆ 0x0ab020…0ab040 30 2b 27 30 27 2c 27 2e 27 2c 76 65 72 73 20 6d 6f 64 20 31 30 2b 27 30 27 0d 0a 09 64 62 09 63 ┆0+'0','.',vers mod 10+'0' db c┆ 0x0ab040…0ab060 72 2c 6c 66 2c 30 0d 0a 3b 0d 0a 62 6f 6f 74 3a 09 3b 70 72 69 6e 74 20 73 69 67 6e 6f 6e 20 6d ┆r,lf,0 ; boot: ;print signon m┆ 0x0ab060…0ab080 65 73 73 61 67 65 20 61 6e 64 20 67 6f 20 74 6f 20 63 63 70 0d 0a 3b 09 28 6e 6f 74 65 3a 20 6d ┆essage and go to ccp ; (note: m┆ 0x0ab080…0ab0a0 64 73 20 62 6f 6f 74 20 69 6e 69 74 69 61 6c 69 7a 65 64 20 69 6f 62 79 74 65 20 61 74 20 30 30 ┆ds boot initialized iobyte at 00┆ 0x0ab0a0…0ab0c0 30 33 68 29 0d 0a 09 6c 78 69 09 73 70 2c 62 75 66 66 2b 38 30 68 0d 0a 09 6c 78 69 09 68 2c 73 ┆03h) lxi sp,buff+80h lxi h,s┆ 0x0ab0c0…0ab0e0 69 67 6e 6f 6e 0d 0a 09 63 61 6c 6c 09 70 72 6d 73 67 09 3b 70 72 69 6e 74 20 6d 65 73 73 61 67 ┆ignon call prmsg ;print messag┆ 0x0ab0e0…0ab100 65 0d 0a 09 78 72 61 09 61 09 3b 63 6c 65 61 72 20 61 63 63 75 6d 75 6c 61 74 6f 72 0d 0a 09 73 ┆e xra a ;clear accumulator s┆ 0x0ab100…0ab120 74 61 09 63 64 69 73 6b 09 3b 73 65 74 20 69 6e 69 74 69 61 6c 6c 79 20 74 6f 20 64 69 73 6b 20 ┆ta cdisk ;set initially to disk ┆ 0x0ab120…0ab140 61 0d 0a 09 6a 6d 70 09 67 6f 63 70 6d 09 3b 67 6f 20 74 6f 20 63 70 2f 6d 0d 0a 3b 0d 0a 3b 0d ┆a jmp gocpm ;go to cp/m ; ; ┆ 0x0ab140…0ab160 0a 77 62 6f 6f 74 3a 3b 09 6c 6f 61 64 65 72 20 6f 6e 20 74 72 61 63 6b 20 30 2c 20 73 65 63 74 ┆ wboot:; loader on track 0, sect┆ 0x0ab160…0ab180 6f 72 20 31 2c 20 77 68 69 63 68 20 77 69 6c 6c 20 62 65 20 73 6b 69 70 70 65 64 20 66 6f 72 20 ┆or 1, which will be skipped for ┆ 0x0ab180…0ab1a0 77 61 72 6d 20 0d 0a 3b 09 72 65 61 64 20 63 70 2f 6d 20 66 72 6f 6d 20 64 69 73 6b 20 2d 20 61 ┆warm ; read cp/m from disk - a┆ 0x0ab1a0…0ab1c0 73 73 75 6d 69 6e 67 20 74 68 65 72 65 20 69 73 20 61 20 31 32 38 20 62 79 74 65 20 63 6f 6c 64 ┆ssuming there is a 128 byte cold┆ 0x0ab1c0…0ab1e0 20 73 74 61 72 74 0d 0a 3b 09 73 74 61 72 74 2e 0d 0a 3b 0d 0a 09 6c 78 69 09 73 70 2c 62 75 66 ┆ start ; start. ; lxi sp,buf┆ 0x0ab1e0…0ab200 66 09 3b 75 73 69 6e 67 20 64 6d 61 20 2d 20 74 68 75 73 20 38 30 20 74 68 72 75 20 66 66 20 61 ┆f ;using dma - thus 80 thru ff a┆ 0x0ab200…0ab220 (45, 1, 5) 72 6f 72 20 66 6f 72 20 6e 6f 77 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 09 09 3b 63 6c 65 61 ┆ror for now call inbyte ;clea┆ 0x0ab220…0ab240 72 20 72 65 73 75 6c 74 20 62 79 74 65 0d 0a 09 6a 6d 70 09 74 72 79 63 6f 75 6e 74 0d 0a 3b 0d ┆r result byte jmp trycount ; ┆ 0x0ab240…0ab260 0a 77 65 72 72 6f 72 3a 09 3b 72 65 74 75 72 6e 20 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e ┆ werror: ;return hardware malfun┆ 0x0ab260…0ab280 63 74 69 6f 6e 20 28 63 72 63 2c 20 74 72 61 63 6b 2c 20 73 65 65 6b 2c 20 65 74 63 2e 29 0d 0a ┆ction (crc, track, seek, etc.) ┆ 0x0ab280…0ab2a0 3b 09 74 68 65 20 6d 64 73 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 68 61 73 20 72 65 74 75 72 6e 65 ┆; the mds controller has returne┆ 0x0ab2a0…0ab2c0 64 20 61 20 62 69 74 20 69 6e 20 65 61 63 68 20 70 6f 73 69 74 69 6f 6e 0d 0a 3b 09 6f 66 20 74 ┆d a bit in each position ; of t┆ 0x0ab2c0…0ab2e0 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 2c 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f ┆he accumulator, corresponding to┆ 0x0ab2e0…0ab300 20 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e 73 3a 0d 0a 3b 09 30 09 2d 20 64 65 6c 65 74 65 64 20 ┆ the conditions: ; 0 - deleted ┆ 0x0ab300…0ab320 64 61 74 61 20 28 61 63 63 65 70 74 65 64 20 61 73 20 6f 6b 20 61 62 6f 76 65 29 0d 0a 3b 09 31 ┆data (accepted as ok above) ; 1┆ 0x0ab320…0ab340 09 2d 20 63 72 63 20 65 72 72 6f 72 0d 0a 3b 09 32 09 2d 20 73 65 65 6b 20 65 72 72 6f 72 0d 0a ┆ - crc error ; 2 - seek error ┆ 0x0ab340…0ab360 3b 09 33 09 2d 20 61 64 64 72 65 73 73 20 65 72 72 6f 72 20 28 68 61 72 64 77 61 72 65 20 6d 61 ┆; 3 - address error (hardware ma┆ 0x0ab360…0ab380 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 34 09 2d 20 64 61 74 61 20 6f 76 65 72 2f 75 6e 64 65 ┆lfunction) ; 4 - data over/unde┆ 0x0ab380…0ab3a0 72 20 66 6c 6f 77 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b ┆r flow (hardware malfunction) ;┆ 0x0ab3a0…0ab3c0 09 35 09 2d 20 77 72 69 74 65 20 70 72 6f 74 65 63 74 20 28 74 72 65 61 74 65 64 20 61 73 20 6e ┆ 5 - write protect (treated as n┆ 0x0ab3c0…0ab3e0 6f 74 20 72 65 61 64 79 29 0d 0a 3b 09 36 09 2d 20 77 72 69 74 65 20 65 72 72 6f 72 20 28 68 61 ┆ot ready) ; 6 - write error (ha┆ 0x0ab3e0…0ab400 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 37 09 2d 20 6e 6f 74 20 72 ┆rdware malfunction) ; 7 - not r┆ 0x0ab400…0ab420 (45, 1, 6) 65 73 74 0d 0a 62 69 61 73 09 65 71 75 09 30 33 34 30 30 68 09 3b 62 61 73 65 20 6f 66 20 43 43 ┆est bias equ 03400h ;base of CC┆ 0x0ab420…0ab440 50 20 69 6e 20 74 65 73 74 20 73 79 73 74 65 6d 0d 0a 09 65 6e 64 69 66 0d 0a 09 69 66 09 6e 6f ┆P in test system endif if no┆ 0x0ab440…0ab460 74 20 74 65 73 74 0d 0a 62 69 61 73 09 65 71 75 09 30 30 30 30 68 09 3b 67 65 6e 65 72 61 74 65 ┆t test bias equ 0000h ;generate┆ 0x0ab460…0ab480 20 72 65 6c 6f 63 61 74 61 62 6c 65 20 63 70 2f 6d 20 73 79 73 74 65 6d 0d 0a 09 65 6e 64 69 66 ┆ relocatable cp/m system endif┆ 0x0ab480…0ab4a0 0d 0a 3b 0d 0a 70 61 74 63 68 09 65 71 75 09 31 36 30 30 68 0d 0a 3b 0d 0a 09 6f 72 67 09 70 61 ┆ ; patch equ 1600h ; org pa┆ 0x0ab4a0…0ab4c0 74 63 68 0d 0a 63 70 6d 62 09 65 71 75 09 24 2d 70 61 74 63 68 09 3b 62 61 73 65 20 6f 66 20 63 ┆tch cpmb equ $-patch ;base of c┆ 0x0ab4c0…0ab4e0 70 6d 20 63 6f 6e 73 6f 6c 65 20 70 72 6f 63 65 73 73 6f 72 0d 0a 62 64 6f 73 09 65 71 75 09 38 ┆pm console processor bdos equ 8┆ 0x0ab4e0…0ab500 30 36 68 2b 63 70 6d 62 09 3b 62 61 73 69 63 20 64 6f 73 20 28 72 65 73 69 64 65 6e 74 20 70 6f ┆06h+cpmb ;basic dos (resident po┆ 0x0ab500…0ab520 72 74 69 6f 6e 29 0d 0a 63 70 6d 6c 09 65 71 75 09 24 2d 63 70 6d 62 09 3b 6c 65 6e 67 74 68 20 ┆rtion) cpml equ $-cpmb ;length ┆ 0x0ab520…0ab540 28 69 6e 20 62 79 74 65 73 29 20 6f 66 20 63 70 6d 20 73 79 73 74 65 6d 0d 0a 6e 73 65 63 74 73 ┆(in bytes) of cpm system nsects┆ 0x0ab540…0ab560 09 65 71 75 09 63 70 6d 6c 2f 31 32 38 09 3b 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 ┆ equ cpml/128 ;number of sectors┆ 0x0ab560…0ab580 20 74 6f 20 6c 6f 61 64 0d 0a 6f 66 66 73 65 74 09 65 71 75 09 32 09 3b 6e 75 6d 62 65 72 20 6f ┆ to load offset equ 2 ;number o┆ 0x0ab580…0ab5a0 66 20 64 69 73 6b 20 74 72 61 63 6b 73 20 75 73 65 64 20 62 79 20 63 70 2f 6d 0d 0a 63 64 69 73 ┆f disk tracks used by cp/m cdis┆ 0x0ab5a0…0ab5c0 6b 09 65 71 75 09 30 30 30 34 68 09 3b 61 64 64 72 65 73 73 20 6f 66 20 6c 61 73 74 20 6c 6f 67 ┆k equ 0004h ;address of last log┆ 0x0ab5c0…0ab5e0 67 65 64 20 64 69 73 6b 20 6f 6e 20 77 61 72 6d 20 73 74 61 72 74 0d 0a 62 75 66 66 09 65 71 75 ┆ged disk on warm start buff equ┆ 0x0ab5e0…0ab600 09 30 30 38 30 68 09 3b 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 0d 0a ┆ 0080h ;default buffer address ┆ 0x0ab600…0ab620 (45, 1, 7) 6e 64 65 70 65 6e 64 65 6e 74 20 63 6f 64 65 2c 20 74 68 65 20 72 65 6d 61 69 6e 69 6e 67 20 73 ┆ndependent code, the remaining s┆ 0x0ab620…0ab640 75 62 72 6f 75 74 69 6e 65 73 0d 0a 3b 09 61 72 65 20 74 61 69 6c 6f 72 65 64 20 74 6f 20 74 68 ┆ubroutines ; are tailored to th┆ 0x0ab640…0ab660 65 20 70 61 72 74 69 63 75 6c 61 72 20 6f 70 65 72 61 74 69 6e 67 20 65 6e 76 69 72 6f 6e 6d 65 ┆e particular operating environme┆ 0x0ab660…0ab680 6e 74 2c 20 61 6e 64 20 6d 75 73 74 0d 0a 3b 09 62 65 20 61 6c 74 65 72 65 64 20 66 6f 72 20 61 ┆nt, and must ; be altered for a┆ 0x0ab680…0ab6a0 6e 79 20 73 79 73 74 65 6d 20 77 68 69 63 68 20 64 69 66 66 65 72 73 20 66 72 6f 6d 20 74 68 65 ┆ny system which differs from the┆ 0x0ab6a0…0ab6c0 20 69 6e 74 65 6c 20 6d 64 73 2e 0d 0a 3b 0d 0a 3b 09 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 ┆ intel mds. ; ; the following ┆ 0x0ab6c0…0ab6e0 63 6f 64 65 20 61 73 73 75 6d 65 73 20 74 68 65 20 6d 64 73 20 6d 6f 6e 69 74 6f 72 20 65 78 69 ┆code assumes the mds monitor exi┆ 0x0ab6e0…0ab700 73 74 73 20 61 74 20 30 66 38 30 30 68 0d 0a 3b 09 61 6e 64 20 75 73 65 73 20 74 68 65 20 69 2f ┆sts at 0f800h ; and uses the i/┆ 0x0ab700…0ab720 6f 20 73 75 62 72 6f 75 74 69 6e 65 73 20 77 69 74 68 69 6e 20 74 68 65 20 6d 6f 6e 69 74 6f 72 ┆o subroutines within the monitor┆ 0x0ab720…0ab740 0d 0a 3b 0d 0a 3b 09 77 65 20 61 6c 73 6f 20 61 73 73 75 6d 65 20 74 68 65 20 6d 64 73 20 73 79 ┆ ; ; we also assume the mds sy┆ 0x0ab740…0ab760 73 74 65 6d 20 68 61 73 20 66 6f 75 72 20 64 69 73 6b 20 64 72 69 76 65 73 0d 0a 72 65 76 72 74 ┆stem has four disk drives revrt┆ 0x0ab760…0ab780 09 65 71 75 09 30 66 64 68 09 3b 69 6e 74 65 72 72 75 70 74 20 72 65 76 65 72 74 20 70 6f 72 74 ┆ equ 0fdh ;interrupt revert port┆ 0x0ab780…0ab7a0 0d 0a 69 6e 74 63 09 65 71 75 09 30 66 63 68 09 3b 69 6e 74 65 72 72 75 70 74 20 6d 61 73 6b 20 ┆ intc equ 0fch ;interrupt mask ┆ 0x0ab7a0…0ab7c0 70 6f 72 74 0d 0a 69 63 6f 6e 09 65 71 75 09 30 66 33 68 09 3b 69 6e 74 65 72 72 75 70 74 20 63 ┆port icon equ 0f3h ;interrupt c┆ 0x0ab7c0…0ab7e0 6f 6e 74 72 6f 6c 20 70 6f 72 74 0d 0a 69 6e 74 65 09 65 71 75 09 30 31 31 31 24 31 31 31 30 62 ┆ontrol port inte equ 0111$1110b┆ 0x0ab7e0…0ab800 09 3b 65 6e 61 62 6c 65 20 72 73 74 20 30 28 77 61 72 6d 20 62 6f 6f 74 29 2c 20 72 73 74 20 37 ┆ ;enable rst 0(warm boot), rst 7┆ 0x0ab800…0ab820 (45, 1, 8) 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 73 74 61 63 6b 0d 0a 3b 0d 0a 09 6d 76 69 09 63 2c 72 65 ┆vailable for stack ; mvi c,re┆ 0x0ab820…0ab840 74 72 79 09 3b 6d 61 78 20 72 65 74 72 69 65 73 0d 0a 09 70 75 73 68 09 62 0d 0a 77 62 6f 6f 74 ┆try ;max retries push b wboot┆ 0x0ab840…0ab860 30 3a 09 3b 65 6e 74 65 72 20 68 65 72 65 20 6f 6e 20 65 72 72 6f 72 20 72 65 74 72 69 65 73 0d ┆0: ;enter here on error retries ┆ 0x0ab860…0ab880 0a 09 6c 78 69 09 62 2c 63 70 6d 62 09 3b 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 74 6f ┆ lxi b,cpmb ;set dma address to┆ 0x0ab880…0ab8a0 20 73 74 61 72 74 20 6f 66 20 64 69 73 6b 20 73 79 73 74 65 6d 0d 0a 09 63 61 6c 6c 09 73 65 74 ┆ start of disk system call set┆ 0x0ab8a0…0ab8c0 64 6d 61 0d 0a 09 6d 76 69 09 63 2c 30 09 3b 62 6f 6f 74 20 66 72 6f 6d 20 64 72 69 76 65 20 30 ┆dma mvi c,0 ;boot from drive 0┆ 0x0ab8c0…0ab8e0 0d 0a 09 63 61 6c 6c 09 73 65 6c 64 73 6b 0d 0a 09 6d 76 69 09 63 2c 30 0d 0a 09 63 61 6c 6c 09 ┆ call seldsk mvi c,0 call ┆ 0x0ab8e0…0ab900 73 65 74 74 72 6b 09 3b 73 74 61 72 74 20 77 69 74 68 20 74 72 61 63 6b 20 30 0d 0a 09 6d 76 69 ┆settrk ;start with track 0 mvi┆ 0x0ab900…0ab920 09 63 2c 32 09 3b 73 74 61 72 74 20 72 65 61 64 69 6e 67 20 73 65 63 74 6f 72 20 32 0d 0a 09 63 ┆ c,2 ;start reading sector 2 c┆ 0x0ab920…0ab940 61 6c 6c 09 73 65 74 73 65 63 0d 0a 3b 0d 0a 3b 09 72 65 61 64 20 73 65 63 74 6f 72 73 2c 20 63 ┆all setsec ; ; read sectors, c┆ 0x0ab940…0ab960 6f 75 6e 74 20 6e 73 65 63 74 73 20 74 6f 20 7a 65 72 6f 0d 0a 09 70 6f 70 09 62 09 3b 31 30 2d ┆ount nsects to zero pop b ;10-┆ 0x0ab960…0ab980 65 72 72 6f 72 20 63 6f 75 6e 74 0d 0a 09 6d 76 69 09 62 2c 6e 73 65 63 74 73 0d 0a 72 64 73 65 ┆error count mvi b,nsects rdse┆ 0x0ab980…0ab9a0 63 3a 09 3b 72 65 61 64 20 6e 65 78 74 20 73 65 63 74 6f 72 0d 0a 09 70 75 73 68 09 62 09 3b 73 ┆c: ;read next sector push b ;s┆ 0x0ab9a0…0ab9c0 61 76 65 20 73 65 63 74 6f 72 20 63 6f 75 6e 74 0d 0a 09 63 61 6c 6c 09 72 65 61 64 0d 0a 09 6a ┆ave sector count call read j┆ 0x0ab9c0…0ab9e0 6e 7a 09 62 6f 6f 74 65 72 72 09 3b 72 65 74 72 79 20 69 66 20 65 72 72 6f 72 73 20 6f 63 63 75 ┆nz booterr ;retry if errors occu┆ 0x0ab9e0…0aba00 72 0d 0a 09 6c 68 6c 64 09 69 6f 64 09 3b 69 6e 63 72 65 6d 65 6e 74 20 64 6d 61 20 61 64 64 72 ┆r lhld iod ;increment dma addr┆ 0x0aba00…0aba20 (45, 1, 9) 65 61 64 79 0d 0a 3b 09 28 61 63 63 75 6d 75 6c 61 74 6f 72 20 62 69 74 73 20 61 72 65 20 6e 75 ┆eady ; (accumulator bits are nu┆ 0x0aba20…0aba40 6d 62 65 72 65 64 20 37 20 36 20 35 20 34 20 33 20 32 20 31 20 30 29 0d 0a 3b 0d 0a 3b 09 69 74 ┆mbered 7 6 5 4 3 2 1 0) ; ; it┆ 0x0aba40…0aba60 20 6d 61 79 20 62 65 20 75 73 65 66 75 6c 20 74 6f 20 66 69 6c 74 65 72 20 6f 75 74 20 74 68 65 ┆ may be useful to filter out the┆ 0x0aba60…0aba80 20 76 61 72 69 6f 75 73 20 63 6f 6e 64 69 74 69 6f 6e 73 2c 0d 0a 3b 09 62 75 74 20 77 65 20 77 ┆ various conditions, ; but we w┆ 0x0aba80…0abaa0 69 6c 6c 20 67 65 74 20 61 20 70 65 72 6d 61 6e 65 6e 74 20 65 72 72 6f 72 20 6d 65 73 73 61 67 ┆ill get a permanent error messag┆ 0x0abaa0…0abac0 65 20 69 66 20 69 74 20 69 73 20 6e 6f 74 0d 0a 3b 09 72 65 63 6f 76 65 72 61 62 6c 65 2e 20 20 ┆e if it is not ; recoverable. ┆ 0x0abac0…0abae0 69 6e 20 61 6e 79 20 63 61 73 65 2c 20 74 68 65 20 6e 6f 74 20 72 65 61 64 79 20 63 6f 6e 64 69 ┆in any case, the not ready condi┆ 0x0abae0…0abb00 74 69 6f 6e 20 69 73 0d 0a 3b 09 74 72 65 61 74 65 64 20 61 73 20 61 20 73 65 70 61 72 61 74 65 ┆tion is ; treated as a separate┆ 0x0abb00…0abb20 20 63 6f 6e 64 69 74 69 6f 6e 20 66 6f 72 20 6c 61 74 65 72 20 69 6d 70 72 6f 76 65 6d 65 6e 74 ┆ condition for later improvement┆ 0x0abb20…0abb40 0d 0a 74 72 79 63 6f 75 6e 74 3a 0d 0a 3b 09 72 65 67 69 73 74 65 72 20 63 20 63 6f 6e 74 61 69 ┆ trycount: ; register c contai┆ 0x0abb40…0abb60 6e 73 20 72 65 74 72 79 20 63 6f 75 6e 74 2c 20 64 65 63 72 65 6d 65 6e 74 20 27 74 69 6c 20 7a ┆ns retry count, decrement 'til z┆ 0x0abb60…0abb80 65 72 6f 0d 0a 09 64 63 72 09 63 0d 0a 09 6a 6e 7a 09 72 65 77 61 69 74 09 3b 66 6f 72 20 61 6e ┆ero dcr c jnz rewait ;for an┆ 0x0abb80…0abba0 6f 74 68 65 72 20 74 72 79 0d 0a 3b 0d 0a 3b 09 63 61 6e 6e 6f 74 20 72 65 63 6f 76 65 72 20 66 ┆other try ; ; cannot recover f┆ 0x0abba0…0abbc0 72 6f 6d 20 65 72 72 6f 72 0d 0a 09 6d 76 69 09 61 2c 31 09 3b 65 72 72 6f 72 20 63 6f 64 65 0d ┆rom error mvi a,1 ;error code ┆ 0x0abbc0…0abbe0 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 09 69 6e 74 79 70 65 2c 20 69 6e 62 79 74 65 2c 20 69 6e 73 74 ┆ ret ; ; intype, inbyte, inst┆ 0x0abbe0…0abc00 61 74 20 72 65 61 64 20 64 72 69 76 65 20 62 61 6e 6b 20 30 30 20 6f 72 20 31 30 0d 0a 69 6e 74 ┆at read drive bank 00 or 10 int┆ 0x0abc00…0abc20 (45, 1, 10) 72 65 74 72 79 09 65 71 75 09 31 30 09 3b 6d 61 78 20 72 65 74 72 69 65 73 20 6f 6e 20 64 69 73 ┆retry equ 10 ;max retries on dis┆ 0x0abc20…0abc40 6b 20 69 2f 6f 20 62 65 66 6f 72 65 20 65 72 72 6f 72 0d 0a 3b 0d 0a 3b 09 70 65 72 66 6f 72 6d ┆k i/o before error ; ; perform┆ 0x0abc40…0abc60 20 66 6f 6c 6c 6f 77 69 6e 67 20 66 75 6e 63 74 69 6f 6e 73 0d 0a 3b 09 62 6f 6f 74 09 63 6f 6c ┆ following functions ; boot col┆ 0x0abc60…0abc80 64 20 73 74 61 72 74 0d 0a 3b 09 77 62 6f 6f 74 09 77 61 72 6d 20 73 74 61 72 74 20 28 73 61 76 ┆d start ; wboot warm start (sav┆ 0x0abc80…0abca0 65 20 69 2f 6f 20 62 79 74 65 29 0d 0a 3b 09 28 62 6f 6f 74 20 61 6e 64 20 77 62 6f 6f 74 20 61 ┆e i/o byte) ; (boot and wboot a┆ 0x0abca0…0abcc0 72 65 20 74 68 65 20 73 61 6d 65 20 66 6f 72 20 6d 64 73 29 0d 0a 3b 09 63 6f 6e 73 74 09 63 6f ┆re the same for mds) ; const co┆ 0x0abcc0…0abce0 6e 73 6f 6c 65 20 73 74 61 74 75 73 0d 0a 3b 09 09 72 65 67 2d 61 20 3d 20 30 30 20 69 66 20 6e ┆nsole status ; reg-a = 00 if n┆ 0x0abce0…0abd00 6f 20 63 68 61 72 61 63 74 65 72 20 72 65 61 64 79 0d 0a 3b 09 09 72 65 67 2d 61 20 3d 20 66 66 ┆o character ready ; reg-a = ff┆ 0x0abd00…0abd20 20 69 66 20 63 68 61 72 61 63 74 65 72 20 72 65 61 64 79 0d 0a 3b 09 63 6f 6e 69 6e 09 63 6f 6e ┆ if character ready ; conin con┆ 0x0abd20…0abd40 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 28 72 65 73 75 6c 74 20 69 6e 20 72 65 67 ┆sole character in (result in reg┆ 0x0abd40…0abd60 2d 61 29 0d 0a 3b 09 63 6f 6e 6f 75 74 09 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 ┆-a) ; conout console character ┆ 0x0abd60…0abd80 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 6c 69 73 74 09 6c 69 73 74 ┆out (char in reg-c) ; list list┆ 0x0abd80…0abda0 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 70 75 6e 63 68 09 70 75 ┆ out (char in reg-c) ; punch pu┆ 0x0abda0…0abdc0 6e 63 68 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 72 65 61 64 65 ┆nch out (char in reg-c) ; reade┆ 0x0abdc0…0abde0 72 09 70 61 70 65 72 20 74 61 70 65 20 72 65 61 64 65 72 20 69 6e 20 28 72 65 73 75 6c 74 20 74 ┆r paper tape reader in (result t┆ 0x0abde0…0abe00 6f 20 72 65 67 2d 61 29 0d 0a 3b 09 68 6f 6d 65 09 6d 6f 76 65 20 74 6f 20 74 72 61 63 6b 20 30 ┆o reg-a) ; home move to track 0┆ 0x0abe00…0abe20 (45, 1, 11) 20 28 6d 6f 6e 69 74 6f 72 29 0d 0a 3b 0d 0a 3b 09 6d 64 73 20 6d 6f 6e 69 74 6f 72 20 65 71 75 ┆ (monitor) ; ; mds monitor equ┆ 0x0abe20…0abe40 61 74 65 73 0d 0a 6d 6f 6e 38 30 09 65 71 75 09 30 66 38 30 30 68 09 3b 6d 64 73 20 6d 6f 6e 69 ┆ates mon80 equ 0f800h ;mds moni┆ 0x0abe40…0abe60 74 6f 72 0d 0a 72 6d 6f 6e 38 30 09 65 71 75 09 30 66 66 30 66 68 09 3b 72 65 73 74 61 72 74 20 ┆tor rmon80 equ 0ff0fh ;restart ┆ 0x0abe60…0abe80 6d 6f 6e 38 30 20 28 62 6f 6f 74 20 65 72 72 6f 72 29 0d 0a 63 69 09 65 71 75 09 30 66 38 30 33 ┆mon80 (boot error) ci equ 0f803┆ 0x0abe80…0abea0 68 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 72 65 67 2d 61 0d 0a 72 ┆h ;console character to reg-a r┆ 0x0abea0…0abec0 69 09 65 71 75 09 30 66 38 30 36 68 09 3b 72 65 61 64 65 72 20 69 6e 20 74 6f 20 72 65 67 2d 61 ┆i equ 0f806h ;reader in to reg-a┆ 0x0abec0…0abee0 0d 0a 63 6f 09 65 71 75 09 30 66 38 30 39 68 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 20 66 72 ┆ co equ 0f809h ;console char fr┆ 0x0abee0…0abf00 6f 6d 20 63 20 74 6f 20 63 6f 6e 73 6f 6c 65 20 6f 75 74 0d 0a 70 6f 09 65 71 75 09 30 66 38 30 ┆om c to console out po equ 0f80┆ 0x0abf00…0abf20 63 68 09 3b 70 75 6e 63 68 20 63 68 61 72 20 66 72 6f 6d 20 63 20 74 6f 20 70 75 6e 63 68 20 64 ┆ch ;punch char from c to punch d┆ 0x0abf20…0abf40 65 76 69 63 65 0d 0a 6c 6f 09 65 71 75 09 30 66 38 30 66 68 09 3b 6c 69 73 74 20 66 72 6f 6d 20 ┆evice lo equ 0f80fh ;list from ┆ 0x0abf40…0abf60 63 20 74 6f 20 6c 69 73 74 20 64 65 76 69 63 65 0d 0a 63 73 74 73 09 65 71 75 09 30 66 38 31 32 ┆c to list device csts equ 0f812┆ 0x0abf60…0abf80 68 09 3b 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 20 30 30 2f 66 66 20 74 6f 20 72 65 67 69 73 ┆h ;console status 00/ff to regis┆ 0x0abf80…0abfa0 74 65 72 20 61 0d 0a 3b 0d 0a 3b 09 64 69 73 6b 20 70 6f 72 74 73 20 61 6e 64 20 63 6f 6d 6d 61 ┆ter a ; ; disk ports and comma┆ 0x0abfa0…0abfc0 6e 64 73 0d 0a 62 61 73 65 09 65 71 75 09 37 38 68 09 3b 62 61 73 65 20 6f 66 20 64 69 73 6b 20 ┆nds base equ 78h ;base of disk ┆ 0x0abfc0…0abfe0 63 6f 6d 6d 61 6e 64 20 69 6f 20 70 6f 72 74 73 0d 0a 64 73 74 61 74 09 65 71 75 09 62 61 73 65 ┆command io ports dstat equ base┆ 0x0abfe0…0ac000 09 3b 64 69 73 6b 20 73 74 61 74 75 73 20 28 69 6e 70 75 74 29 0d 0a 72 74 79 70 65 09 65 71 75 ┆ ;disk status (input) rtype equ┆ 0x0ac000…0ac020 (45, 1, 12) 65 73 73 0d 0a 09 6c 78 69 09 64 2c 31 32 38 09 3b 73 65 63 74 6f 72 20 73 69 7a 65 0d 0a 09 64 ┆ess lxi d,128 ;sector size d┆ 0x0ac020…0ac040 61 64 09 64 09 3b 69 6e 63 72 65 6d 65 6e 74 65 64 20 64 6d 61 20 61 64 64 72 65 73 73 20 69 6e ┆ad d ;incremented dma address in┆ 0x0ac040…0ac060 20 68 6c 0d 0a 09 6d 6f 76 09 62 2c 68 0d 0a 09 6d 6f 76 09 63 2c 6c 09 3b 72 65 61 64 79 20 66 ┆ hl mov b,h mov c,l ;ready f┆ 0x0ac060…0ac080 6f 72 20 63 61 6c 6c 20 74 6f 20 73 65 74 20 64 6d 61 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 ┆or call to set dma call setdma┆ 0x0ac080…0ac0a0 0d 0a 09 6c 64 61 09 69 6f 73 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 6a 75 73 74 20 72 ┆ lda ios ;sector number just r┆ 0x0ac0a0…0ac0c0 65 61 64 0d 0a 09 63 70 69 09 32 36 09 3b 72 65 61 64 20 6c 61 73 74 20 73 65 63 74 6f 72 3f 0d ┆ead cpi 26 ;read last sector? ┆ 0x0ac0c0…0ac0e0 0a 09 6a 63 09 72 64 31 0d 0a 3b 09 6d 75 73 74 20 62 65 20 73 65 63 74 6f 72 20 32 36 2c 20 7a ┆ jc rd1 ; must be sector 26, z┆ 0x0ac0e0…0ac100 65 72 6f 20 61 6e 64 20 67 6f 20 74 6f 20 6e 65 78 74 20 74 72 61 63 6b 0d 0a 09 6c 64 61 09 69 ┆ero and go to next track lda i┆ 0x0ac100…0ac120 6f 74 09 3b 67 65 74 20 74 72 61 63 6b 20 74 6f 20 72 65 67 69 73 74 65 72 20 61 0d 0a 09 69 6e ┆ot ;get track to register a in┆ 0x0ac120…0ac140 72 09 61 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 0d 0a 09 ┆r a mov c,a ;ready for call ┆ 0x0ac140…0ac160 63 61 6c 6c 09 73 65 74 74 72 6b 0d 0a 09 78 72 61 09 61 09 3b 63 6c 65 61 72 20 73 65 63 74 6f ┆call settrk xra a ;clear secto┆ 0x0ac160…0ac180 72 20 6e 75 6d 62 65 72 0d 0a 72 64 31 3a 09 69 6e 72 09 61 09 3b 74 6f 20 6e 65 78 74 20 73 65 ┆r number rd1: inr a ;to next se┆ 0x0ac180…0ac1a0 63 74 6f 72 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 0d 0a ┆ctor mov c,a ;ready for call ┆ 0x0ac1a0…0ac1c0 09 63 61 6c 6c 09 73 65 74 73 65 63 0d 0a 09 70 6f 70 09 62 09 3b 72 65 63 61 6c 6c 20 73 65 63 ┆ call setsec pop b ;recall sec┆ 0x0ac1c0…0ac1e0 74 6f 72 20 63 6f 75 6e 74 0d 0a 09 64 63 72 09 62 09 3b 64 6f 6e 65 3f 0d 0a 09 6a 6e 7a 09 72 ┆tor count dcr b ;done? jnz r┆ 0x0ac1e0…0ac200 64 73 65 63 0d 0a 3b 0d 0a 3b 09 64 6f 6e 65 20 77 69 74 68 20 74 68 65 20 6c 6f 61 64 2c 20 72 ┆dsec ; ; done with the load, r┆ 0x0ac200…0ac220 (45, 1, 13) 79 70 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 74 ┆ype: lda dbank ora a jnz int┆ 0x0ac220…0ac240 79 70 31 09 3b 73 6b 69 70 20 74 6f 20 62 61 6e 6b 20 31 30 0d 0a 09 69 6e 09 72 74 79 70 65 0d ┆yp1 ;skip to bank 10 in rtype ┆ 0x0ac240…0ac260 0a 09 72 65 74 0d 0a 69 6e 74 79 70 31 3a 09 69 6e 09 72 74 79 70 65 2b 31 30 68 09 3b 37 38 20 ┆ ret intyp1: in rtype+10h ;78 ┆ 0x0ac260…0ac280 66 6f 72 20 30 2c 31 20 20 38 38 20 66 6f 72 20 32 2c 33 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 69 6e ┆for 0,1 88 for 2,3 ret ; in┆ 0x0ac280…0ac2a0 62 79 74 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e ┆byte: lda dbank ora a jnz in┆ 0x0ac2a0…0ac2c0 62 79 74 31 0d 0a 09 69 6e 09 72 62 79 74 65 0d 0a 09 72 65 74 0d 0a 69 6e 62 79 74 31 3a 09 69 ┆byt1 in rbyte ret inbyt1: i┆ 0x0ac2c0…0ac2e0 6e 09 72 62 79 74 65 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 69 6e 73 74 61 74 3a 09 6c 64 ┆n rbyte+10h ret ; instat: ld┆ 0x0ac2e0…0ac300 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 73 74 61 31 0d 0a 09 69 ┆a dbank ora a jnz insta1 i┆ 0x0ac300…0ac320 6e 09 64 73 74 61 74 0d 0a 09 72 65 74 0d 0a 69 6e 73 74 61 31 3a 09 69 6e 09 64 73 74 61 74 2b ┆n dstat ret insta1: in dstat+┆ 0x0ac320…0ac340 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 61 74 61 20 61 72 65 61 73 ┆10h ret ; ; ; ; data areas┆ 0x0ac340…0ac360 20 28 6d 75 73 74 20 62 65 20 69 6e 20 72 61 6d 29 0d 0a 64 62 61 6e 6b 3a 09 64 62 09 30 09 3b ┆ (must be in ram) dbank: db 0 ;┆ 0x0ac360…0ac380 64 69 73 6b 20 62 61 6e 6b 20 30 30 20 69 66 20 64 72 69 76 65 20 30 2c 31 0d 0a 09 09 09 3b 09 ┆disk bank 00 if drive 0,1 ; ┆ 0x0ac380…0ac3a0 20 20 20 31 30 20 69 66 20 64 72 69 76 65 20 32 2c 33 0d 0a 69 6f 70 62 3a 09 3b 69 6f 20 70 61 ┆ 10 if drive 2,3 iopb: ;io pa┆ 0x0ac3a0…0ac3c0 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 0d 0a 09 64 62 09 38 30 68 09 3b 6e 6f 72 6d 61 6c 20 69 ┆rameter block db 80h ;normal i┆ 0x0ac3c0…0ac3e0 2f 6f 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 69 6f 66 3a 09 64 62 09 72 65 61 64 66 09 3b 69 6f 20 ┆/o operation iof: db readf ;io ┆ 0x0ac3e0…0ac400 66 75 6e 63 74 69 6f 6e 2c 20 69 6e 69 74 69 61 6c 20 72 65 61 64 0d 0a 69 6f 6e 3a 09 64 62 09 ┆function, initial read ion: db ┆ 0x0ac400…0ac420 (45, 1, 14) 30 0d 0a 3b 0d 0a 3b 09 28 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 61 6c 6c 73 20 73 65 74 ┆0 ; ; (the following calls set┆ 0x0ac420…0ac440 2d 75 70 20 74 68 65 20 69 6f 20 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 20 66 6f 72 20 74 ┆-up the io parameter block for t┆ 0x0ac440…0ac460 68 65 0d 0a 3b 09 6d 64 73 2c 20 77 68 69 63 68 20 69 73 20 75 73 65 64 20 74 6f 20 70 65 72 66 ┆he ; mds, which is used to perf┆ 0x0ac460…0ac480 6f 72 6d 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 73 20 61 6e 64 20 77 72 69 74 65 73 29 ┆orm subsequent reads and writes)┆ 0x0ac480…0ac4a0 0d 0a 3b 09 73 65 6c 64 73 6b 09 73 65 6c 65 63 74 20 64 69 73 6b 20 67 69 76 65 6e 20 62 79 20 ┆ ; seldsk select disk given by ┆ 0x0ac4a0…0ac4c0 72 65 67 2d 63 20 28 30 2c 31 2c 32 2e 2e 2e 29 0d 0a 3b 09 73 65 74 74 72 6b 09 73 65 74 20 74 ┆reg-c (0,1,2...) ; settrk set t┆ 0x0ac4c0…0ac4e0 72 61 63 6b 20 61 64 64 72 65 73 73 20 28 30 2c 2e 2e 2e 37 36 29 20 66 6f 72 20 73 75 62 73 65 ┆rack address (0,...76) for subse┆ 0x0ac4e0…0ac500 71 75 65 6e 74 20 72 65 61 64 2f 77 72 69 74 65 0d 0a 3b 09 73 65 74 73 65 63 09 73 65 74 20 73 ┆quent read/write ; setsec set s┆ 0x0ac500…0ac520 65 63 74 6f 72 20 61 64 64 72 65 73 73 20 28 31 2c 2e 2e 2e 2c 32 36 29 20 66 6f 72 20 73 75 62 ┆ector address (1,...,26) for sub┆ 0x0ac520…0ac540 73 65 71 75 65 6e 74 20 72 65 61 64 2f 77 72 69 74 65 0d 0a 3b 09 73 65 74 64 6d 61 09 73 65 74 ┆sequent read/write ; setdma set┆ 0x0ac540…0ac560 20 73 75 62 73 65 71 75 65 6e 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 28 69 6e 69 74 69 61 6c ┆ subsequent dma address (initial┆ 0x0ac560…0ac580 6c 79 20 38 30 68 29 0d 0a 3b 0d 0a 3b 09 28 72 65 61 64 20 61 6e 64 20 77 72 69 74 65 20 61 73 ┆ly 80h) ; ; (read and write as┆ 0x0ac580…0ac5a0 73 75 6d 65 20 70 72 65 76 69 6f 75 73 20 63 61 6c 6c 73 20 74 6f 20 73 65 74 20 75 70 20 74 68 ┆sume previous calls to set up th┆ 0x0ac5a0…0ac5c0 65 20 69 6f 20 70 61 72 61 6d 65 74 65 72 73 29 0d 0a 3b 09 72 65 61 64 09 72 65 61 64 20 74 72 ┆e io parameters) ; read read tr┆ 0x0ac5c0…0ac5e0 61 63 6b 2f 73 65 63 74 6f 72 20 74 6f 20 70 72 65 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 ┆ack/sector to preset dma address┆ 0x0ac5e0…0ac600 0d 0a 3b 09 77 72 69 74 65 09 77 72 69 74 65 20 74 72 61 63 6b 2f 73 65 63 74 6f 72 20 66 72 6f ┆ ; write write track/sector fro┆ 0x0ac600…0ac620 (45, 1, 15) 09 62 61 73 65 2b 31 09 3b 72 65 73 75 6c 74 20 74 79 70 65 20 28 69 6e 70 75 74 29 0d 0a 72 62 ┆ base+1 ;result type (input) rb┆ 0x0ac620…0ac640 79 74 65 09 65 71 75 09 62 61 73 65 2b 33 09 3b 72 65 73 75 6c 74 20 62 79 74 65 20 28 69 6e 70 ┆yte equ base+3 ;result byte (inp┆ 0x0ac640…0ac660 75 74 29 0d 0a 3b 0d 0a 69 6c 6f 77 09 65 71 75 09 62 61 73 65 2b 31 09 3b 69 6f 70 62 20 6c 6f ┆ut) ; ilow equ base+1 ;iopb lo┆ 0x0ac660…0ac680 77 20 61 64 64 72 65 73 73 20 28 6f 75 74 70 75 74 29 0d 0a 69 68 69 67 68 09 65 71 75 09 62 61 ┆w address (output) ihigh equ ba┆ 0x0ac680…0ac6a0 73 65 2b 32 09 3b 69 6f 70 62 20 68 69 67 68 20 61 64 64 72 65 73 73 20 28 6f 75 74 70 75 74 29 ┆se+2 ;iopb high address (output)┆ 0x0ac6a0…0ac6c0 0d 0a 3b 0d 0a 72 65 61 64 66 09 65 71 75 09 34 68 09 3b 72 65 61 64 20 66 75 6e 63 74 69 6f 6e ┆ ; readf equ 4h ;read function┆ 0x0ac6c0…0ac6e0 0d 0a 77 72 69 74 66 09 65 71 75 09 36 68 09 3b 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a ┆ writf equ 6h ;write function ┆ 0x0ac6e0…0ac700 72 65 63 61 6c 09 65 71 75 09 33 68 09 3b 72 65 63 61 6c 69 62 72 61 74 65 20 64 72 69 76 65 0d ┆recal equ 3h ;recalibrate drive ┆ 0x0ac700…0ac720 0a 69 6f 72 64 79 09 65 71 75 09 34 68 09 3b 69 2f 6f 20 66 69 6e 69 73 68 65 64 20 6d 61 73 6b ┆ iordy equ 4h ;i/o finished mask┆ 0x0ac720…0ac740 0d 0a 63 72 09 65 71 75 09 30 64 68 09 3b 63 61 72 72 69 61 67 65 20 72 65 74 75 72 6e 0d 0a 6c ┆ cr equ 0dh ;carriage return l┆ 0x0ac740…0ac760 66 09 65 71 75 09 30 61 68 09 3b 6c 69 6e 65 20 66 65 65 64 0d 0a 3b 0d 0a 73 69 67 6e 6f 6e 3a ┆f equ 0ah ;line feed ; signon:┆ 0x0ac760…0ac780 09 3b 73 69 67 6e 6f 6e 20 6d 65 73 73 61 67 65 3a 20 78 78 6b 20 63 70 2f 6d 20 76 65 72 73 20 ┆ ;signon message: xxk cp/m vers ┆ 0x0ac780…0ac7a0 79 2e 79 0d 0a 09 64 62 09 63 72 2c 6c 66 2c 6c 66 0d 0a 09 69 66 09 74 65 73 74 0d 0a 09 64 62 ┆y.y db cr,lf,lf if test db┆ 0x0ac7a0…0ac7c0 09 27 33 32 27 09 3b 33 32 6b 20 65 78 61 6d 70 6c 65 20 62 69 6f 73 0d 0a 09 65 6e 64 69 66 0d ┆ '32' ;32k example bios endif ┆ 0x0ac7c0…0ac7e0 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 09 64 62 09 27 30 30 27 09 3b 6d 65 6d 6f 72 79 20 ┆ if not test db '00' ;memory ┆ 0x0ac7e0…0ac800 73 69 7a 65 20 66 69 6c 6c 65 64 20 62 79 20 72 65 6c 6f 63 61 74 6f 72 0d 0a 09 65 6e 64 69 66 ┆size filled by relocator endif┆ 0x0ac800…0ac820 (46, 0, 1) 65 73 65 74 20 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 0d 0a 67 6f 63 ┆eset default buffer address goc┆ 0x0ac820…0ac840 70 6d 3a 09 3b 28 65 6e 74 65 72 20 68 65 72 65 20 66 72 6f 6d 20 63 6f 6c 64 20 73 74 61 72 74 ┆pm: ;(enter here from cold start┆ 0x0ac840…0ac860 20 62 6f 6f 74 29 0d 0a 3b 09 65 6e 61 62 6c 65 20 72 73 74 30 20 61 6e 64 20 72 73 74 37 0d 0a ┆ boot) ; enable rst0 and rst7 ┆ 0x0ac860…0ac880 09 64 69 0d 0a 09 6d 76 69 09 61 2c 31 32 68 09 3b 69 6e 69 74 69 61 6c 69 7a 65 20 63 6f 6d 6d ┆ di mvi a,12h ;initialize comm┆ 0x0ac880…0ac8a0 61 6e 64 0d 0a 09 6f 75 74 09 72 65 76 72 74 0d 0a 09 78 72 61 09 61 0d 0a 09 6f 75 74 09 69 6e ┆and out revrt xra a out in┆ 0x0ac8a0…0ac8c0 74 63 09 3b 63 6c 65 61 72 65 64 0d 0a 09 6d 76 69 09 61 2c 69 6e 74 65 09 3b 72 73 74 30 20 61 ┆tc ;cleared mvi a,inte ;rst0 a┆ 0x0ac8c0…0ac8e0 6e 64 20 72 73 74 37 20 62 69 74 73 20 6f 6e 0d 0a 09 6f 75 74 09 69 6e 74 63 0d 0a 09 78 72 61 ┆nd rst7 bits on out intc xra┆ 0x0ac8e0…0ac900 09 61 0d 0a 09 6f 75 74 09 69 63 6f 6e 09 3b 69 6e 74 65 72 72 75 70 74 20 63 6f 6e 74 72 6f 6c ┆ a out icon ;interrupt control┆ 0x0ac900…0ac920 0d 0a 3b 0d 0a 3b 09 73 65 74 20 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 ┆ ; ; set default buffer addres┆ 0x0ac920…0ac940 73 20 74 6f 20 38 30 68 0d 0a 09 6c 78 69 09 62 2c 62 75 66 66 0d 0a 09 63 61 6c 6c 09 73 65 74 ┆s to 80h lxi b,buff call set┆ 0x0ac940…0ac960 64 6d 61 0d 0a 3b 0d 0a 3b 09 72 65 73 65 74 20 6d 6f 6e 69 74 6f 72 20 65 6e 74 72 79 20 70 6f ┆dma ; ; reset monitor entry po┆ 0x0ac960…0ac980 69 6e 74 73 0d 0a 09 6d 76 69 09 61 2c 6a 6d 70 0d 0a 09 73 74 61 09 30 0d 0a 09 6c 78 69 09 68 ┆ints mvi a,jmp sta 0 lxi h┆ 0x0ac980…0ac9a0 2c 77 62 6f 6f 74 65 0d 0a 09 73 68 6c 64 09 31 09 3b 6a 6d 70 20 77 62 6f 6f 74 20 61 74 20 6c ┆,wboote shld 1 ;jmp wboot at l┆ 0x0ac9a0…0ac9c0 6f 63 61 74 69 6f 6e 20 30 30 0d 0a 09 73 74 61 09 35 0d 0a 09 6c 78 69 09 68 2c 62 64 6f 73 0d ┆ocation 00 sta 5 lxi h,bdos ┆ 0x0ac9c0…0ac9e0 0a 09 73 68 6c 64 09 36 09 3b 6a 6d 70 20 62 64 6f 73 20 61 74 20 6c 6f 63 61 74 69 6f 6e 20 35 ┆ shld 6 ;jmp bdos at location 5┆ 0x0ac9e0…0aca00 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 09 73 74 61 09 37 2a 38 09 3b 6a 6d 70 20 74 6f ┆ if not test sta 7*8 ;jmp to┆ 0x0aca00…0aca20 (46, 0, 2) 6f 6e 0d 0a 09 6c 78 69 09 68 2c 69 6f 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6d 6f ┆on lxi h,iof ;io function mo┆ 0x0aca20…0aca40 76 09 61 2c 6d 0d 0a 09 61 6e 69 09 31 31 30 30 31 31 31 31 62 09 3b 6d 61 73 6b 20 6f 75 74 20 ┆v a,m ani 11001111b ;mask out ┆ 0x0aca40…0aca60 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6f 72 61 09 62 09 3b 6d 61 73 6b 20 69 6e 20 6e 65 77 ┆disk number ora b ;mask in new┆ 0x0aca60…0aca80 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6d 6f 76 09 6d 2c 61 09 3b 73 61 76 65 20 69 74 20 ┆ disk number mov m,a ;save it ┆ 0x0aca80…0acaa0 69 6e 20 69 6f 70 62 0d 0a 09 6d 6f 76 09 6c 2c 63 0d 0a 09 6d 76 69 09 68 2c 30 09 3b 48 4c 3d ┆in iopb mov l,c mvi h,0 ;HL=┆ 0x0acaa0…0acac0 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 64 61 64 09 68 09 3b 2a 32 0d 0a 09 64 61 64 09 68 09 ┆disk number dad h ;*2 dad h ┆ 0x0acac0…0acae0 3b 2a 34 0d 0a 09 64 61 64 09 68 09 3b 2a 38 0d 0a 09 64 61 64 09 68 09 3b 2a 31 36 0d 0a 09 6c ┆;*4 dad h ;*8 dad h ;*16 l┆ 0x0acae0…0acb00 78 69 09 64 2c 64 70 62 61 73 65 0d 0a 09 64 61 64 09 64 09 3b 48 4c 3d 64 69 73 6b 20 68 65 61 ┆xi d,dpbase dad d ;HL=disk hea┆ 0x0acb00…0acb20 64 65 72 20 74 61 62 6c 65 20 61 64 64 72 65 73 73 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 73 ┆der table address ret ; ; s┆ 0x0acb20…0acb40 65 74 74 72 6b 3a 09 3b 73 65 74 20 74 72 61 63 6b 20 61 64 64 72 65 73 73 20 67 69 76 65 6e 20 ┆ettrk: ;set track address given ┆ 0x0acb40…0acb60 62 79 20 63 0d 0a 09 6c 78 69 09 68 2c 69 6f 74 0d 0a 09 6d 6f 76 09 6d 2c 63 0d 0a 09 72 65 74 ┆by c lxi h,iot mov m,c ret┆ 0x0acb60…0acb80 0d 0a 3b 0d 0a 73 65 74 73 65 63 3a 09 3b 73 65 74 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 ┆ ; setsec: ;set sector number ┆ 0x0acb80…0acba0 67 69 76 65 6e 20 62 79 20 63 0d 0a 09 6c 78 69 09 68 2c 69 6f 73 0d 0a 09 6d 6f 76 09 6d 2c 63 ┆given by c lxi h,ios mov m,c┆ 0x0acba0…0acbc0 0d 0a 09 72 65 74 0d 0a 73 65 63 74 72 61 6e 3a 0d 0a 09 09 3b 74 72 61 6e 73 6c 61 74 65 20 73 ┆ ret sectran: ;translate s┆ 0x0acbc0…0acbe0 65 63 74 6f 72 20 62 63 20 75 73 69 6e 67 20 74 61 62 6c 65 20 61 74 20 64 65 0d 0a 09 6d 76 69 ┆ector bc using table at de mvi┆ 0x0acbe0…0acc00 09 62 2c 30 09 3b 64 6f 75 62 6c 65 20 70 72 65 63 69 73 69 6f 6e 20 73 65 63 74 6f 72 20 6e 75 ┆ b,0 ;double precision sector nu┆ 0x0acc00…0acc20 (46, 0, 3) 09 3b 6c 6f 77 20 61 64 64 72 65 73 73 20 66 6f 72 20 69 6f 70 62 0d 0a 09 6d 76 69 09 62 2c 69 ┆ ;low address for iopb mvi b,i┆ 0x0acc20…0acc40 6f 70 62 20 73 68 72 20 38 09 3b 68 69 67 68 20 61 64 64 72 65 73 73 20 66 6f 72 20 69 6f 70 62 ┆opb shr 8 ;high address for iopb┆ 0x0acc40…0acc60 0d 0a 09 6a 6e 7a 09 69 6f 64 72 31 09 3b 64 72 69 76 65 20 62 61 6e 6b 20 31 3f 0d 0a 09 6f 75 ┆ jnz iodr1 ;drive bank 1? ou┆ 0x0acc60…0acc80 74 09 69 6c 6f 77 09 09 3b 6c 6f 77 20 61 64 64 72 65 73 73 20 74 6f 20 63 6f 6e 74 72 6f 6c 6c ┆t ilow ;low address to controll┆ 0x0acc80…0acca0 65 72 0d 0a 09 6d 6f 76 09 61 2c 62 0d 0a 09 6f 75 74 09 69 68 69 67 68 09 3b 68 69 67 68 20 61 ┆er mov a,b out ihigh ;high a┆ 0x0acca0…0accc0 64 64 72 65 73 73 0d 0a 09 6a 6d 70 09 77 61 69 74 30 09 09 3b 74 6f 20 77 61 69 74 20 66 6f 72 ┆ddress jmp wait0 ;to wait for┆ 0x0accc0…0acce0 20 63 6f 6d 70 6c 65 74 65 0d 0a 3b 0d 0a 69 6f 64 72 31 3a 09 3b 64 72 69 76 65 20 62 61 6e 6b ┆ complete ; iodr1: ;drive bank┆ 0x0acce0…0acd00 20 31 0d 0a 09 6f 75 74 09 69 6c 6f 77 2b 31 30 68 09 3b 38 38 20 66 6f 72 20 64 72 69 76 65 20 ┆ 1 out ilow+10h ;88 for drive ┆ 0x0acd00…0acd20 62 61 6e 6b 20 31 30 0d 0a 09 6d 6f 76 09 61 2c 62 0d 0a 09 6f 75 74 09 69 68 69 67 68 2b 31 30 ┆bank 10 mov a,b out ihigh+10┆ 0x0acd20…0acd40 68 0d 0a 3b 0d 0a 77 61 69 74 30 3a 09 63 61 6c 6c 09 69 6e 73 74 61 74 09 09 3b 77 61 69 74 20 ┆h ; wait0: call instat ;wait ┆ 0x0acd40…0acd60 66 6f 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 0d 0a 09 61 6e 69 09 69 6f 72 64 79 09 09 3b 72 65 61 ┆for completion ani iordy ;rea┆ 0x0acd60…0acd80 64 79 3f 0d 0a 09 6a 7a 09 77 61 69 74 30 0d 0a 3b 0d 0a 3b 09 63 68 65 63 6b 20 69 6f 20 63 6f ┆dy? jz wait0 ; ; check io co┆ 0x0acd80…0acda0 6d 70 6c 65 74 69 6f 6e 20 6f 6b 0d 0a 09 63 61 6c 6c 09 69 6e 74 79 70 65 09 09 3b 6d 75 73 74 ┆mpletion ok call intype ;must┆ 0x0acda0…0acdc0 20 62 65 20 69 6f 20 63 6f 6d 70 6c 65 74 65 20 28 30 30 29 20 75 6e 6c 69 6e 6b 65 64 0d 0a 3b ┆ be io complete (00) unlinked ;┆ 0x0acdc0…0acde0 09 30 30 20 75 6e 6c 69 6e 6b 65 64 20 69 2f 6f 20 63 6f 6d 70 6c 65 74 65 2c 20 20 20 20 30 31 ┆ 00 unlinked i/o complete, 01┆ 0x0acde0…0ace00 20 6c 69 6e 6b 65 64 20 69 2f 6f 20 63 6f 6d 70 6c 65 74 65 20 28 6e 6f 74 20 75 73 65 64 29 0d ┆ linked i/o complete (not used) ┆ 0x0ace00…0ace20 (46, 0, 4) 09 3b 37 38 20 66 6f 72 20 30 2c 31 20 20 38 38 20 66 6f 72 20 32 2c 33 0d 0a 09 72 65 74 0d 0a ┆ ;78 for 0,1 88 for 2,3 ret ┆ 0x0ace20…0ace40 3b 0d 0a 69 6e 62 79 74 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a ┆; inbyte: lda dbank ora a j┆ 0x0ace40…0ace60 6e 7a 09 69 6e 62 79 74 31 0d 0a 09 69 6e 09 72 62 79 74 65 0d 0a 09 72 65 74 0d 0a 69 6e 62 79 ┆nz inbyt1 in rbyte ret inby┆ 0x0ace60…0ace80 74 31 3a 09 69 6e 09 72 62 79 74 65 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 69 6e 73 74 61 ┆t1: in rbyte+10h ret ; insta┆ 0x0ace80…0acea0 74 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 73 74 61 ┆t: lda dbank ora a jnz insta┆ 0x0acea0…0acec0 31 0d 0a 09 69 6e 09 64 73 74 61 74 0d 0a 09 72 65 74 0d 0a 69 6e 73 74 61 31 3a 09 69 6e 09 64 ┆1 in dstat ret insta1: in d┆ 0x0acec0…0acee0 73 74 61 74 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 61 74 61 20 ┆stat+10h ret ; ; ; ; data ┆ 0x0acee0…0acf00 61 72 65 61 73 20 28 6d 75 73 74 20 62 65 20 69 6e 20 72 61 6d 29 0d 0a 64 62 61 6e 6b 3a 09 64 ┆areas (must be in ram) dbank: d┆ 0x0acf00…0acf20 62 09 30 09 3b 64 69 73 6b 20 62 61 6e 6b 20 30 30 20 69 66 20 64 72 69 76 65 20 30 2c 31 0d 0a ┆b 0 ;disk bank 00 if drive 0,1 ┆ 0x0acf20…0acf40 09 09 09 3b 09 20 20 20 31 30 20 69 66 20 64 72 69 76 65 20 32 2c 33 0d 0a 69 6f 70 62 3a 09 3b ┆ ; 10 if drive 2,3 iopb: ;┆ 0x0acf40…0acf60 69 6f 20 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 0d 0a 09 64 62 09 38 30 68 09 3b 6e 6f 72 ┆io parameter block db 80h ;nor┆ 0x0acf60…0acf80 6d 61 6c 20 69 2f 6f 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 69 6f 66 3a 09 64 62 09 72 65 61 64 66 ┆mal i/o operation iof: db readf┆ 0x0acf80…0acfa0 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 2c 20 69 6e 69 74 69 61 6c 20 72 65 61 64 0d 0a 69 6f 6e ┆ ;io function, initial read ion┆ 0x0acfa0…0acfc0 3a 09 64 62 09 31 09 3b 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 20 74 6f 20 72 65 61 ┆: db 1 ;number of sectors to rea┆ 0x0acfc0…0acfe0 64 0d 0a 69 6f 74 3a 09 64 62 09 6f 66 66 73 65 74 09 3b 74 72 61 63 6b 20 6e 75 6d 62 65 72 0d ┆d iot: db offset ;track number ┆ 0x0acfe0…0ad000 0a 69 6f 73 3a 09 64 62 09 31 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 0d 0a 69 6f 64 3a 09 ┆ ios: db 1 ;sector number iod: ┆ 0x0ad000…0ad020 (46, 0, 5) 20 6d 6f 6e 38 30 20 28 6d 61 79 20 68 61 76 65 20 62 65 65 6e 20 63 68 61 6e 67 65 64 20 62 79 ┆ mon80 (may have been changed by┆ 0x0ad020…0ad040 20 64 64 74 29 0d 0a 09 6c 78 69 09 68 2c 6d 6f 6e 38 30 0d 0a 09 73 68 6c 64 09 37 2a 38 2b 31 ┆ ddt) lxi h,mon80 shld 7*8+1┆ 0x0ad040…0ad060 0d 0a 09 65 6e 64 69 66 0d 0a 3b 09 6c 65 61 76 65 20 69 6f 62 79 74 65 20 73 65 74 0d 0a 3b 09 ┆ endif ; leave iobyte set ; ┆ 0x0ad060…0ad080 70 72 65 76 69 6f 75 73 6c 79 20 73 65 6c 65 63 74 65 64 20 64 69 73 6b 20 77 61 73 20 62 2c 20 ┆previously selected disk was b, ┆ 0x0ad080…0ad0a0 73 65 6e 64 20 70 61 72 61 6d 65 74 65 72 20 74 6f 20 63 70 6d 0d 0a 09 6c 64 61 09 63 64 69 73 ┆send parameter to cpm lda cdis┆ 0x0ad0a0…0ad0c0 6b 09 3b 6c 61 73 74 20 6c 6f 67 67 65 64 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6d 6f 76 ┆k ;last logged disk number mov┆ 0x0ad0c0…0ad0e0 09 63 2c 61 09 3b 73 65 6e 64 20 74 6f 20 63 63 70 20 74 6f 20 6c 6f 67 20 69 74 20 69 6e 0d 0a ┆ c,a ;send to ccp to log it in ┆ 0x0ad0e0…0ad100 09 65 69 0d 0a 09 6a 6d 70 09 63 70 6d 62 0d 0a 3b 0d 0a 3b 09 65 72 72 6f 72 20 63 6f 6e 64 69 ┆ ei jmp cpmb ; ; error condi┆ 0x0ad100…0ad120 74 69 6f 6e 20 6f 63 63 75 72 72 65 64 2c 20 70 72 69 6e 74 20 6d 65 73 73 61 67 65 20 61 6e 64 ┆tion occurred, print message and┆ 0x0ad120…0ad140 20 72 65 74 72 79 0d 0a 62 6f 6f 74 65 72 72 3a 0d 0a 09 70 6f 70 09 62 09 3b 72 65 63 61 6c 6c ┆ retry booterr: pop b ;recall┆ 0x0ad140…0ad160 20 63 6f 75 6e 74 73 0d 0a 09 64 63 72 09 63 0d 0a 09 6a 7a 09 62 6f 6f 74 65 72 30 0d 0a 3b 09 ┆ counts dcr c jz booter0 ; ┆ 0x0ad160…0ad180 74 72 79 20 61 67 61 69 6e 0d 0a 09 70 75 73 68 09 62 0d 0a 09 6a 6d 70 09 77 62 6f 6f 74 30 0d ┆try again push b jmp wboot0 ┆ 0x0ad180…0ad1a0 0a 3b 0d 0a 62 6f 6f 74 65 72 30 3a 0d 0a 3b 09 6f 74 68 65 72 77 69 73 65 20 74 6f 6f 20 6d 61 ┆ ; booter0: ; otherwise too ma┆ 0x0ad1a0…0ad1c0 6e 79 20 72 65 74 72 69 65 73 0d 0a 09 6c 78 69 09 68 2c 62 6f 6f 74 6d 73 67 0d 0a 09 63 61 6c ┆ny retries lxi h,bootmsg cal┆ 0x0ad1c0…0ad1e0 6c 09 70 72 6d 73 67 0d 0a 09 6a 6d 70 09 72 6d 6f 6e 38 30 09 3b 6d 64 73 20 68 61 72 64 77 61 ┆l prmsg jmp rmon80 ;mds hardwa┆ 0x0ad1e0…0ad200 72 65 20 6d 6f 6e 69 74 6f 72 0d 0a 3b 0d 0a 62 6f 6f 74 6d 73 67 3a 0d 0a 09 64 62 09 27 3f 62 ┆re monitor ; bootmsg: db '?b┆ 0x0ad200…0ad220 (46, 0, 6) 6d 62 65 72 20 69 6e 20 42 43 0d 0a 09 78 63 68 67 09 09 3b 74 72 61 6e 73 6c 61 74 65 20 74 61 ┆mber in BC xchg ;translate ta┆ 0x0ad220…0ad240 62 6c 65 20 61 64 64 72 65 73 73 20 74 6f 20 48 4c 0d 0a 09 64 61 64 09 62 09 3b 74 72 61 6e 73 ┆ble address to HL dad b ;trans┆ 0x0ad240…0ad260 6c 61 74 65 28 73 65 63 74 6f 72 29 20 61 64 64 72 65 73 73 0d 0a 09 6d 6f 76 09 61 2c 6d 09 3b ┆late(sector) address mov a,m ;┆ 0x0ad260…0ad280 74 72 61 6e 73 6c 61 74 65 64 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 74 6f 20 41 0d 0a 09 ┆translated sector number to A ┆ 0x0ad280…0ad2a0 73 74 61 09 69 6f 73 0d 0a 09 6d 6f 76 09 6c 2c 61 09 3b 72 65 74 75 72 6e 20 73 65 63 74 6f 72 ┆sta ios mov l,a ;return sector┆ 0x0ad2a0…0ad2c0 20 6e 75 6d 62 65 72 20 69 6e 20 4c 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 73 65 74 64 6d 61 3a 09 3b ┆ number in L ret ; setdma: ;┆ 0x0ad2c0…0ad2e0 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 67 69 76 65 6e 20 62 79 20 72 65 67 73 20 62 2c ┆set dma address given by regs b,┆ 0x0ad2e0…0ad300 63 0d 0a 09 6d 6f 76 09 6c 2c 63 0d 0a 09 6d 6f 76 09 68 2c 62 0d 0a 09 73 68 6c 64 09 69 6f 64 ┆c mov l,c mov h,b shld iod┆ 0x0ad300…0ad320 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 72 65 61 64 3a 09 3b 72 65 61 64 20 6e 65 78 74 20 64 69 73 6b ┆ ret ; read: ;read next disk┆ 0x0ad320…0ad340 20 72 65 63 6f 72 64 20 28 61 73 73 75 6d 69 6e 67 20 64 69 73 6b 2f 74 72 6b 2f 73 65 63 2f 64 ┆ record (assuming disk/trk/sec/d┆ 0x0ad340…0ad360 6d 61 20 73 65 74 29 0d 0a 09 6d 76 69 09 63 2c 72 65 61 64 66 09 3b 73 65 74 20 74 6f 20 72 65 ┆ma set) mvi c,readf ;set to re┆ 0x0ad360…0ad380 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 73 65 74 66 75 6e 63 0d 0a 09 63 61 6c ┆ad function call setfunc cal┆ 0x0ad380…0ad3a0 6c 09 77 61 69 74 69 6f 09 3b 70 65 72 66 6f 72 6d 20 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d ┆l waitio ;perform read function ┆ 0x0ad3a0…0ad3c0 0a 09 72 65 74 09 09 3b 6d 61 79 20 68 61 76 65 20 65 72 72 6f 72 20 73 65 74 20 69 6e 20 72 65 ┆ ret ;may have error set in re┆ 0x0ad3c0…0ad3e0 67 2d 61 0d 0a 3b 0d 0a 3b 0d 0a 77 72 69 74 65 3a 09 3b 64 69 73 6b 20 77 72 69 74 65 20 66 75 ┆g-a ; ; write: ;disk write fu┆ 0x0ad3e0…0ad400 6e 63 74 69 6f 6e 0d 0a 09 6d 76 69 09 63 2c 77 72 69 74 66 0d 0a 09 63 61 6c 6c 09 73 65 74 66 ┆nction mvi c,writf call setf┆ 0x0ad400…0ad420 (46, 0, 7) 0a 3b 09 31 30 20 64 69 73 6b 20 73 74 61 74 75 73 20 63 68 61 6e 67 65 64 20 20 20 20 20 20 20 ┆ ; 10 disk status changed ┆ 0x0ad420…0ad440 31 31 20 28 6e 6f 74 20 75 73 65 64 29 0d 0a 09 63 70 69 09 31 30 62 09 09 3b 72 65 61 64 79 20 ┆11 (not used) cpi 10b ;ready ┆ 0x0ad440…0ad460 73 74 61 74 75 73 20 63 68 61 6e 67 65 3f 0d 0a 09 6a 7a 09 77 72 65 61 64 79 0d 0a 3b 0d 0a 3b ┆status change? jz wready ; ;┆ 0x0ad460…0ad480 09 6d 75 73 74 20 62 65 20 30 30 20 69 6e 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 0d 0a ┆ must be 00 in the accumulator ┆ 0x0ad480…0ad4a0 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 77 65 72 72 6f 72 09 09 3b 73 6f 6d 65 20 6f 74 68 65 72 ┆ ora a jnz werror ;some other┆ 0x0ad4a0…0ad4c0 20 63 6f 6e 64 69 74 69 6f 6e 2c 20 72 65 74 72 79 0d 0a 3b 0d 0a 3b 09 63 68 65 63 6b 20 69 2f ┆ condition, retry ; ; check i/┆ 0x0ad4c0…0ad4e0 6f 20 65 72 72 6f 72 20 62 69 74 73 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 0d 0a 09 72 61 6c ┆o error bits call inbyte ral┆ 0x0ad4e0…0ad500 0d 0a 09 6a 63 09 77 72 65 61 64 79 09 09 3b 75 6e 69 74 20 6e 6f 74 20 72 65 61 64 79 0d 0a 09 ┆ jc wready ;unit not ready ┆ 0x0ad500…0ad520 72 61 72 0d 0a 09 61 6e 69 09 31 31 31 31 31 31 31 30 62 09 3b 61 6e 79 20 6f 74 68 65 72 20 65 ┆rar ani 11111110b ;any other e┆ 0x0ad520…0ad540 72 72 6f 72 73 3f 20 20 28 64 65 6c 65 74 65 64 20 64 61 74 61 20 6f 6b 29 0d 0a 09 6a 6e 7a 09 ┆rrors? (deleted data ok) jnz ┆ 0x0ad540…0ad560 77 65 72 72 6f 72 0d 0a 3b 0d 0a 3b 09 72 65 61 64 20 6f 72 20 77 72 69 74 65 20 69 73 20 6f 6b ┆werror ; ; read or write is ok┆ 0x0ad560…0ad580 2c 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 63 6f 6e 74 61 69 6e 73 20 7a 65 72 6f 0d 0a 09 72 65 ┆, accumulator contains zero re┆ 0x0ad580…0ad5a0 74 0d 0a 3b 0d 0a 77 72 65 61 64 79 3a 09 3b 6e 6f 74 20 72 65 61 64 79 2c 20 74 72 65 61 74 20 ┆t ; wready: ;not ready, treat ┆ 0x0ad5a0…0ad5c0 61 73 20 65 72 72 6f 72 20 66 6f 72 20 6e 6f 77 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 09 09 ┆as error for now call inbyte ┆ 0x0ad5c0…0ad5e0 3b 63 6c 65 61 72 20 72 65 73 75 6c 74 20 62 79 74 65 0d 0a 09 6a 6d 70 09 74 72 79 63 6f 75 6e ┆;clear result byte jmp trycoun┆ 0x0ad5e0…0ad600 74 0d 0a 3b 0d 0a 77 65 72 72 6f 72 3a 09 3b 72 65 74 75 72 6e 20 68 61 72 64 77 61 72 65 20 6d ┆t ; werror: ;return hardware m┆ 0x0ad600…0ad620 (46, 0, 8) 64 77 09 62 75 66 66 09 3b 69 6f 20 61 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 65 66 ┆dw buff ;io address ; ; ; def┆ 0x0ad620…0ad640 69 6e 65 20 72 61 6d 20 61 72 65 61 73 20 66 6f 72 20 62 64 6f 73 20 6f 70 65 72 61 74 69 6f 6e ┆ine ram areas for bdos operation┆ 0x0ad640…0ad660 0d 0a 09 65 6e 64 65 66 0d 0a 09 65 6e 64 0d 0a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆ endef end ┆ 0x0ad660…0ad680 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆ ┆ 0x0ad680…0ad6a0 74 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 73 74 61 ┆t: lda dbank ora a jnz insta┆ 0x0ad6a0…0ad6c0 31 0d 0a 09 69 6e 09 64 73 74 61 74 0d 0a 09 72 65 74 0d 0a 69 6e 73 74 61 31 3a 09 69 6e 09 64 ┆1 in dstat ret insta1: in d┆ 0x0ad6c0…0ad6e0 73 74 61 74 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 61 74 61 20 ┆stat+10h ret ; ; ; ; data ┆ 0x0ad6e0…0ad700 61 72 65 61 73 20 28 6d 75 73 74 20 62 65 20 69 6e 20 72 61 6d 29 0d 0a 64 62 61 6e 6b 3a 09 64 ┆areas (must be in ram) dbank: d┆ 0x0ad700…0ad720 62 09 30 09 3b 64 69 73 6b 20 62 61 6e 6b 20 30 30 20 69 66 20 64 72 69 76 65 20 30 2c 31 0d 0a ┆b 0 ;disk bank 00 if drive 0,1 ┆ 0x0ad720…0ad740 09 09 09 3b 09 20 20 20 31 30 20 69 66 20 64 72 69 76 65 20 32 2c 33 0d 0a 69 6f 70 62 3a 09 3b ┆ ; 10 if drive 2,3 iopb: ;┆ 0x0ad740…0ad760 69 6f 20 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 0d 0a 09 64 62 09 38 30 68 09 3b 6e 6f 72 ┆io parameter block db 80h ;nor┆ 0x0ad760…0ad780 6d 61 6c 20 69 2f 6f 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 69 6f 66 3a 09 64 62 09 72 65 61 64 66 ┆mal i/o operation iof: db readf┆ 0x0ad780…0ad7a0 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 2c 20 69 6e 69 74 69 61 6c 20 72 65 61 64 0d 0a 69 6f 6e ┆ ;io function, initial read ion┆ 0x0ad7a0…0ad7c0 3a 09 64 62 09 31 09 3b 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 20 74 6f 20 72 65 61 ┆: db 1 ;number of sectors to rea┆ 0x0ad7c0…0ad7e0 64 0d 0a 69 6f 74 3a 09 64 62 09 6f 66 66 73 65 74 09 3b 74 72 61 63 6b 20 6e 75 6d 62 65 72 0d ┆d iot: db offset ;track number ┆ 0x0ad7e0…0ad800 0a 69 6f 73 3a 09 64 62 09 31 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 0d 0a 69 6f 64 3a 09 ┆ ios: db 1 ;sector number iod: ┆ 0x0ad800…0ad820 (46, 0, 9) 6f 6f 74 27 2c 30 0d 0a 3b 0d 0a 3b 0d 0a 63 6f 6e 73 74 3a 09 3b 63 6f 6e 73 6f 6c 65 20 73 74 ┆oot',0 ; ; const: ;console st┆ 0x0ad820…0ad840 61 74 75 73 20 74 6f 20 72 65 67 2d 61 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 ┆atus to reg-a ; (exactly the sa┆ 0x0ad840…0ad860 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 63 73 74 73 0d 0a 3b 0d 0a 63 ┆me as mds call) jmp csts ; c┆ 0x0ad860…0ad880 6f 6e 69 6e 3a 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 72 65 67 2d ┆onin: ;console character to reg-┆ 0x0ad880…0ad8a0 61 0d 0a 09 63 61 6c 6c 09 63 69 0d 0a 09 61 6e 69 09 37 66 68 09 3b 72 65 6d 6f 76 65 20 70 61 ┆a call ci ani 7fh ;remove pa┆ 0x0ad8a0…0ad8c0 72 69 74 79 20 62 69 74 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 63 6f 6e 6f 75 74 3a 09 3b 63 6f 6e 73 ┆rity bit ret ; conout: ;cons┆ 0x0ad8c0…0ad8e0 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 66 72 6f 6d 20 63 20 74 6f 20 63 6f 6e 73 6f 6c 65 20 ┆ole character from c to console ┆ 0x0ad8e0…0ad900 6f 75 74 0d 0a 09 6a 6d 70 09 63 6f 0d 0a 3b 0d 0a 6c 69 73 74 3a 09 3b 6c 69 73 74 20 64 65 76 ┆out jmp co ; list: ;list dev┆ 0x0ad900…0ad920 69 63 65 20 6f 75 74 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 ┆ice out ; (exactly the same as ┆ 0x0ad920…0ad940 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 6c 6f 0d 0a 3b 0d 0a 6c 69 73 74 73 74 3a 0d 0a ┆mds call) jmp lo ; listst: ┆ 0x0ad940…0ad960 09 3b 72 65 74 75 72 6e 20 6c 69 73 74 20 73 74 61 74 75 73 0d 0a 09 78 72 61 09 61 0d 0a 09 72 ┆ ;return list status xra a r┆ 0x0ad960…0ad980 65 74 09 09 3b 61 6c 77 61 79 73 20 6e 6f 74 20 72 65 61 64 79 0d 0a 3b 0d 0a 70 75 6e 63 68 3a ┆et ;always not ready ; punch:┆ 0x0ad980…0ad9a0 09 3b 70 75 6e 63 68 20 64 65 76 69 63 65 20 6f 75 74 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 ┆ ;punch device out ; (exactly t┆ 0x0ad9a0…0ad9c0 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 70 6f 0d 0a 3b ┆he same as mds call) jmp po ;┆ 0x0ad9c0…0ad9e0 0d 0a 72 65 61 64 65 72 3a 09 3b 72 65 61 64 65 72 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 74 ┆ reader: ;reader character in t┆ 0x0ad9e0…0ada00 6f 20 72 65 67 2d 61 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 ┆o reg-a ; (exactly the same as ┆ 0x0ada00…0ada20 (46, 0, 10) 75 6e 63 09 3b 73 65 74 20 74 6f 20 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 63 61 6c ┆unc ;set to write function cal┆ 0x0ada20…0ada40 6c 09 77 61 69 74 69 6f 0d 0a 09 72 65 74 09 09 3b 6d 61 79 20 68 61 76 65 20 65 72 72 6f 72 20 ┆l waitio ret ;may have error ┆ 0x0ada40…0ada60 73 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 75 74 69 6c 69 74 79 20 73 75 62 72 6f 75 74 69 6e 65 73 ┆set ; ; ; utility subroutines┆ 0x0ada60…0ada80 0d 0a 70 72 6d 73 67 3a 09 3b 70 72 69 6e 74 20 6d 65 73 73 61 67 65 20 61 74 20 68 2c 6c 20 74 ┆ prmsg: ;print message at h,l t┆ 0x0ada80…0adaa0 6f 20 30 0d 0a 09 6d 6f 76 09 61 2c 6d 0d 0a 09 6f 72 61 09 61 09 3b 7a 65 72 6f 3f 0d 0a 09 72 ┆o 0 mov a,m ora a ;zero? r┆ 0x0adaa0…0adac0 7a 0d 0a 3b 09 6d 6f 72 65 20 74 6f 20 70 72 69 6e 74 0d 0a 09 70 75 73 68 09 68 0d 0a 09 6d 6f ┆z ; more to print push h mo┆ 0x0adac0…0adae0 76 09 63 2c 61 0d 0a 09 63 61 6c 6c 09 63 6f 6e 6f 75 74 0d 0a 09 70 6f 70 09 68 0d 0a 09 69 6e ┆v c,a call conout pop h in┆ 0x0adae0…0adb00 78 09 68 0d 0a 09 6a 6d 70 09 70 72 6d 73 67 0d 0a 3b 0d 0a 73 65 74 66 75 6e 63 3a 0d 0a 3b 09 ┆x h jmp prmsg ; setfunc: ; ┆ 0x0adb00…0adb20 73 65 74 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 6e 65 78 74 20 69 2f 6f 20 28 63 6f 6d 6d 61 ┆set function for next i/o (comma┆ 0x0adb20…0adb40 6e 64 20 69 6e 20 72 65 67 2d 63 29 0d 0a 09 6c 78 69 09 68 2c 69 6f 66 09 3b 69 6f 20 66 75 6e ┆nd in reg-c) lxi h,iof ;io fun┆ 0x0adb40…0adb60 63 74 69 6f 6e 20 61 64 64 72 65 73 73 0d 0a 09 6d 6f 76 09 61 2c 6d 09 3b 67 65 74 20 69 74 20 ┆ction address mov a,m ;get it ┆ 0x0adb60…0adb80 74 6f 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 66 6f 72 20 6d 61 73 6b 69 6e 67 0d 0a 09 61 6e 69 ┆to accumulator for masking ani┆ 0x0adb80…0adba0 09 31 31 31 31 31 30 30 30 62 09 3b 72 65 6d 6f 76 65 20 70 72 65 76 69 6f 75 73 20 63 6f 6d 6d ┆ 11111000b ;remove previous comm┆ 0x0adba0…0adbc0 61 6e 64 0d 0a 09 6f 72 61 09 63 09 3b 73 65 74 20 74 6f 20 6e 65 77 20 63 6f 6d 6d 61 6e 64 0d ┆and ora c ;set to new command ┆ 0x0adbc0…0adbe0 0a 09 6d 6f 76 09 6d 2c 61 09 3b 72 65 70 6c 61 63 65 64 20 69 6e 20 69 6f 70 62 0d 0a 3b 09 74 ┆ mov m,a ;replaced in iopb ; t┆ 0x0adbe0…0adc00 68 65 20 6d 64 73 2d 38 30 30 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 72 65 71 75 69 72 65 73 20 64 ┆he mds-800 controller requires d┆ 0x0adc00…0adc20 (46, 0, 11) 61 6c 66 75 6e 63 74 69 6f 6e 20 28 63 72 63 2c 20 74 72 61 63 6b 2c 20 73 65 65 6b 2c 20 65 74 ┆alfunction (crc, track, seek, et┆ 0x0adc20…0adc40 63 2e 29 0d 0a 3b 09 74 68 65 20 6d 64 73 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 68 61 73 20 72 65 ┆c.) ; the mds controller has re┆ 0x0adc40…0adc60 74 75 72 6e 65 64 20 61 20 62 69 74 20 69 6e 20 65 61 63 68 20 70 6f 73 69 74 69 6f 6e 0d 0a 3b ┆turned a bit in each position ;┆ 0x0adc60…0adc80 09 6f 66 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 2c 20 63 6f 72 72 65 73 70 6f 6e 64 69 ┆ of the accumulator, correspondi┆ 0x0adc80…0adca0 6e 67 20 74 6f 20 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e 73 3a 0d 0a 3b 09 30 09 2d 20 64 65 6c ┆ng to the conditions: ; 0 - del┆ 0x0adca0…0adcc0 65 74 65 64 20 64 61 74 61 20 28 61 63 63 65 70 74 65 64 20 61 73 20 6f 6b 20 61 62 6f 76 65 29 ┆eted data (accepted as ok above)┆ 0x0adcc0…0adce0 0d 0a 3b 09 31 09 2d 20 63 72 63 20 65 72 72 6f 72 0d 0a 3b 09 32 09 2d 20 73 65 65 6b 20 65 72 ┆ ; 1 - crc error ; 2 - seek er┆ 0x0adce0…0add00 72 6f 72 0d 0a 3b 09 33 09 2d 20 61 64 64 72 65 73 73 20 65 72 72 6f 72 20 28 68 61 72 64 77 61 ┆ror ; 3 - address error (hardwa┆ 0x0add00…0add20 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 34 09 2d 20 64 61 74 61 20 6f 76 65 72 ┆re malfunction) ; 4 - data over┆ 0x0add20…0add40 2f 75 6e 64 65 72 20 66 6c 6f 77 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f ┆/under flow (hardware malfunctio┆ 0x0add40…0add60 6e 29 0d 0a 3b 09 35 09 2d 20 77 72 69 74 65 20 70 72 6f 74 65 63 74 20 28 74 72 65 61 74 65 64 ┆n) ; 5 - write protect (treated┆ 0x0add60…0add80 20 61 73 20 6e 6f 74 20 72 65 61 64 79 29 0d 0a 3b 09 36 09 2d 20 77 72 69 74 65 20 65 72 72 6f ┆ as not ready) ; 6 - write erro┆ 0x0add80…0adda0 72 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 37 09 2d 20 ┆r (hardware malfunction) ; 7 - ┆ 0x0adda0…0addc0 6e 6f 74 20 72 65 61 64 79 0d 0a 3b 09 28 61 63 63 75 6d 75 6c 61 74 6f 72 20 62 69 74 73 20 61 ┆not ready ; (accumulator bits a┆ 0x0addc0…0adde0 72 65 20 6e 75 6d 62 65 72 65 64 20 37 20 36 20 35 20 34 20 33 20 32 20 31 20 30 29 0d 0a 3b 0d ┆re numbered 7 6 5 4 3 2 1 0) ; ┆ 0x0adde0…0ade00 0a 3b 09 69 74 20 6d 61 79 20 62 65 20 75 73 65 66 75 6c 20 74 6f 20 66 69 6c 74 65 72 20 6f 75 ┆ ; it may be useful to filter ou┆ 0x0ade00…0ade20 (46, 0, 12) 20 20 2e 42 59 54 45 20 20 20 30 48 0d 20 20 20 20 20 20 20 20 2e 42 59 54 45 20 20 20 30 48 0d ┆ .BYTE 0H .BYTE 0H ┆ 0x0ade20…0ade40 3b 20 4d 4f 44 45 20 54 41 42 4c 45 2e 0d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 ┆; MODE TABLE. ; ┆ 0x0ade40…0ade60 54 49 4d 45 52 20 4d 4f 44 45 3a 0d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 20 20 ┆TIMER MODE: ; ┆ 0x0ade60…0ade80 20 20 20 20 36 34 2a 42 41 55 44 52 41 54 45 20 28 20 42 49 54 36 20 3a 3d 30 20 3b 20 42 49 54 ┆ 64*BAUDRATE ( BIT6 :=0 ; BIT┆ 0x0ade80…0adea0 30 20 3a 3d 30 20 29 0d 43 52 54 41 42 3a 20 20 2e 42 59 54 45 20 20 20 30 36 48 20 20 20 20 3b ┆0 :=0 ) CRTAB: .BYTE 06H ;┆ 0x0adea0…0adec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 49 54 37 2d 31 20 52 45 50 52 45 53 45 4e 54 ┆ BIT7-1 REPRESENT┆ 0x0adec0…0adee0 49 4e 47 20 4f 50 45 52 41 54 49 4e 47 20 4d 4f 44 45 0d 20 20 20 20 20 20 20 20 2e 42 59 54 45 ┆ING OPERATING MODE .BYTE┆ 0x0adee0…0adf00 20 20 20 30 36 48 20 20 20 20 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 46 4f 52 20 54 ┆ 06H ; FOR T┆ 0x0adf00…0adf20 48 45 20 43 54 43 2e 0d 20 20 20 20 20 20 20 20 2e 42 59 54 45 20 20 20 30 36 48 20 20 20 20 3b ┆HE CTC. .BYTE 06H ;┆ 0x0adf20…0adf40 0d 20 20 20 20 20 20 20 20 2e 42 59 54 45 20 20 20 30 36 48 20 20 20 20 3b 0d 20 20 20 20 20 20 ┆ .BYTE 06H ; ┆ 0x0adf40…0adf60 20 20 2e 42 59 54 45 20 20 20 30 36 48 0d 20 20 20 20 20 20 20 20 2e 42 59 54 45 20 20 20 30 36 ┆ .BYTE 06H .BYTE 06┆ 0x0adf60…0adf80 48 0d 20 20 20 20 20 20 20 20 2e 42 59 54 45 20 20 20 30 36 48 20 20 20 20 3b 0d 20 20 20 20 20 ┆H .BYTE 06H ; ┆ 0x0adf80…0adfa0 20 20 20 2e 42 59 54 45 20 20 20 30 36 48 20 20 20 20 3b 0d 0d 20 20 20 20 20 20 20 20 20 20 20 ┆ .BYTE 06H ; ┆ 0x0adfa0…0adfc0 20 20 20 20 20 3b 20 43 4f 55 4e 54 45 52 20 4d 4f 44 45 3a 0d 20 20 20 20 20 20 20 20 20 20 20 ┆ ; COUNTER MODE: ┆ 0x0adfc0…0adfe0 20 20 20 20 20 3b 20 20 20 20 20 20 20 31 36 2a 42 41 55 44 20 52 41 54 45 0d 00 00 00 00 00 00 ┆ ; 16*BAUD RATE ┆ 0x0adfe0…0ae000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x0ae000…0ae020 (46, 0, 13) 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 72 69 0d 0a 3b 0d 0a 68 6f 6d 65 3a 09 3b 6d 6f ┆mds call) jmp ri ; home: ;mo┆ 0x0ae020…0ae040 76 65 20 74 6f 20 68 6f 6d 65 20 70 6f 73 69 74 69 6f 6e 0d 0a 3b 09 74 72 65 61 74 20 61 73 20 ┆ve to home position ; treat as ┆ 0x0ae040…0ae060 74 72 61 63 6b 20 30 30 20 73 65 65 6b 0d 0a 09 6d 76 69 09 63 2c 30 0d 0a 09 6a 6d 70 09 73 65 ┆track 00 seek mvi c,0 jmp se┆ 0x0ae060…0ae080 74 74 72 6b 0d 0a 3b 0d 0a 73 65 6c 64 73 6b 3a 09 3b 73 65 6c 65 63 74 20 64 69 73 6b 20 67 69 ┆ttrk ; seldsk: ;select disk gi┆ 0x0ae080…0ae0a0 76 65 6e 20 62 79 20 72 65 67 69 73 74 65 72 20 63 0d 0a 09 6c 78 69 09 68 2c 30 30 30 30 68 09 ┆ven by register c lxi h,0000h ┆ 0x0ae0a0…0ae0c0 3b 72 65 74 75 72 6e 20 30 30 30 30 20 69 66 20 65 72 72 6f 72 0d 0a 09 6d 6f 76 09 61 2c 63 0d ┆;return 0000 if error mov a,c ┆ 0x0ae0c0…0ae0e0 0a 09 63 70 69 09 6e 64 69 73 6b 73 09 3b 74 6f 6f 20 6c 61 72 67 65 3f 0d 0a 09 72 6e 63 09 09 ┆ cpi ndisks ;too large? rnc ┆ 0x0ae0e0…0ae100 3b 6c 65 61 76 65 20 48 4c 20 3d 20 30 30 30 30 0d 0a 3b 0d 0a 09 61 6e 69 09 31 30 62 09 3b 30 ┆;leave HL = 0000 ; ani 10b ;0┆ 0x0ae100…0ae120 30 20 30 30 20 66 6f 72 20 64 72 69 76 65 20 30 2c 31 20 61 6e 64 20 31 30 20 31 30 20 66 6f 72 ┆0 00 for drive 0,1 and 10 10 for┆ 0x0ae120…0ae140 20 64 72 69 76 65 20 32 2c 33 0d 0a 09 73 74 61 09 64 62 61 6e 6b 09 3b 74 6f 20 73 65 6c 65 63 ┆ drive 2,3 sta dbank ;to selec┆ 0x0ae140…0ae160 74 20 64 72 69 76 65 20 62 61 6e 6b 0d 0a 09 6d 6f 76 09 61 2c 63 09 3b 30 30 2c 20 30 31 2c 20 ┆t drive bank mov a,c ;00, 01, ┆ 0x0ae160…0ae180 31 30 2c 20 31 31 0d 0a 09 61 6e 69 09 31 62 09 3b 6d 64 73 20 68 61 73 20 30 2c 31 20 61 74 20 ┆10, 11 ani 1b ;mds has 0,1 at ┆ 0x0ae180…0ae1a0 37 38 2c 20 32 2c 33 20 61 74 20 38 38 0d 0a 09 6f 72 61 09 61 09 3b 72 65 73 75 6c 74 20 30 30 ┆78, 2,3 at 88 ora a ;result 00┆ 0x0ae1a0…0ae1c0 3f 0d 0a 09 6a 7a 09 73 65 74 64 72 69 76 65 0d 0a 09 6d 76 69 09 61 2c 30 30 31 31 30 30 30 30 ┆? jz setdrive mvi a,00110000┆ 0x0ae1c0…0ae1e0 62 09 3b 73 65 6c 65 63 74 73 20 64 72 69 76 65 20 31 20 69 6e 20 62 61 6e 6b 0d 0a 73 65 74 64 ┆b ;selects drive 1 in bank setd┆ 0x0ae1e0…0ae200 72 69 76 65 3a 0d 0a 09 6d 6f 76 09 62 2c 61 09 3b 73 61 76 65 20 74 68 65 20 66 75 6e 63 74 69 ┆rive: mov b,a ;save the functi┆ 0x0ae200…0ae220 (46, 0, 14) 69 73 6b 20 62 61 6e 6b 20 62 69 74 20 69 6e 20 73 65 63 74 6f 72 20 62 79 74 65 0d 0a 3b 09 6d ┆isk bank bit in sector byte ; m┆ 0x0ae220…0ae240 61 73 6b 20 74 68 65 20 62 69 74 20 66 72 6f 6d 20 74 68 65 20 63 75 72 72 65 6e 74 20 69 2f 6f ┆ask the bit from the current i/o┆ 0x0ae240…0ae260 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 61 6e 69 09 30 30 31 30 30 30 30 30 62 09 3b 6d 61 73 6b 20 ┆ function ani 00100000b ;mask ┆ 0x0ae260…0ae280 74 68 65 20 64 69 73 6b 20 73 65 6c 65 63 74 20 62 69 74 0d 0a 09 6c 78 69 09 68 2c 69 6f 73 09 ┆the disk select bit lxi h,ios ┆ 0x0ae280…0ae2a0 09 3b 61 64 64 72 65 73 73 20 74 68 65 20 73 65 63 74 6f 72 20 73 65 6c 65 63 74 20 62 79 74 65 ┆ ;address the sector select byte┆ 0x0ae2a0…0ae2c0 0d 0a 09 6f 72 61 09 6d 09 09 3b 73 65 6c 65 63 74 20 70 72 6f 70 65 72 20 64 69 73 6b 20 62 61 ┆ ora m ;select proper disk ba┆ 0x0ae2c0…0ae2e0 6e 6b 0d 0a 09 6d 6f 76 09 6d 2c 61 09 09 3b 73 65 74 20 64 69 73 6b 20 73 65 6c 65 63 74 20 62 ┆nk mov m,a ;set disk select b┆ 0x0ae2e0…0ae300 69 74 20 6f 6e 2f 6f 66 66 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 77 61 69 74 69 6f 3a 0d 0a 09 6d 76 ┆it on/off ret ; waitio: mv┆ 0x0ae300…0ae320 69 09 63 2c 72 65 74 72 79 09 3b 6d 61 78 20 72 65 74 72 69 65 73 20 62 65 66 6f 72 65 20 70 65 ┆i c,retry ;max retries before pe┆ 0x0ae320…0ae340 72 6d 20 65 72 72 6f 72 0d 0a 72 65 77 61 69 74 3a 0d 0a 3b 09 73 74 61 72 74 20 74 68 65 20 69 ┆rm error rewait: ; start the i┆ 0x0ae340…0ae360 2f 6f 20 66 75 6e 63 74 69 6f 6e 20 61 6e 64 20 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 ┆/o function and wait for complet┆ 0x0ae360…0ae380 69 6f 6e 0d 0a 09 63 61 6c 6c 09 69 6e 74 79 70 65 09 3b 69 6e 20 72 74 79 70 65 0d 0a 09 63 61 ┆ion call intype ;in rtype ca┆ 0x0ae380…0ae3a0 6c 6c 09 69 6e 62 79 74 65 09 3b 63 6c 65 61 72 73 20 74 68 65 20 63 6f 6e 74 72 6f 6c 6c 65 72 ┆ll inbyte ;clears the controller┆ 0x0ae3a0…0ae3c0 0d 0a 3b 0d 0a 09 6c 64 61 09 64 62 61 6e 6b 09 09 3b 73 65 74 20 62 61 6e 6b 20 66 6c 61 67 73 ┆ ; lda dbank ;set bank flags┆ 0x0ae3c0…0ae3e0 0d 0a 09 6f 72 61 09 61 09 09 3b 7a 65 72 6f 20 69 66 20 64 72 69 76 65 20 30 2c 31 20 61 6e 64 ┆ ora a ;zero if drive 0,1 and┆ 0x0ae3e0…0ae400 20 6e 7a 20 69 66 20 32 2c 33 0d 0a 09 6d 76 69 09 61 2c 69 6f 70 62 20 61 6e 64 20 30 66 66 68 ┆ nz if 2,3 mvi a,iopb and 0ffh┆ 0x0ae400…0ae420 (46, 0, 15) 74 20 74 68 65 20 76 61 72 69 6f 75 73 20 63 6f 6e 64 69 74 69 6f 6e 73 2c 0d 0a 3b 09 62 75 74 ┆t the various conditions, ; but┆ 0x0ae420…0ae440 20 77 65 20 77 69 6c 6c 20 67 65 74 20 61 20 70 65 72 6d 61 6e 65 6e 74 20 65 72 72 6f 72 20 6d ┆ we will get a permanent error m┆ 0x0ae440…0ae460 65 73 73 61 67 65 20 69 66 20 69 74 20 69 73 20 6e 6f 74 0d 0a 3b 09 72 65 63 6f 76 65 72 61 62 ┆essage if it is not ; recoverab┆ 0x0ae460…0ae480 6c 65 2e 20 20 69 6e 20 61 6e 79 20 63 61 73 65 2c 20 74 68 65 20 6e 6f 74 20 72 65 61 64 79 20 ┆le. in any case, the not ready ┆ 0x0ae480…0ae4a0 63 6f 6e 64 69 74 69 6f 6e 20 69 73 0d 0a 3b 09 74 72 65 61 74 65 64 20 61 73 20 61 20 73 65 70 ┆condition is ; treated as a sep┆ 0x0ae4a0…0ae4c0 61 72 61 74 65 20 63 6f 6e 64 69 74 69 6f 6e 20 66 6f 72 20 6c 61 74 65 72 20 69 6d 70 72 6f 76 ┆arate condition for later improv┆ 0x0ae4c0…0ae4e0 65 6d 65 6e 74 0d 0a 74 72 79 63 6f 75 6e 74 3a 0d 0a 3b 09 72 65 67 69 73 74 65 72 20 63 20 63 ┆ement trycount: ; register c c┆ 0x0ae4e0…0ae500 6f 6e 74 61 69 6e 73 20 72 65 74 72 79 20 63 6f 75 6e 74 2c 20 64 65 63 72 65 6d 65 6e 74 20 27 ┆ontains retry count, decrement '┆ 0x0ae500…0ae520 74 69 6c 20 7a 65 72 6f 0d 0a 09 64 63 72 09 63 0d 0a 09 6a 6e 7a 09 72 65 77 61 69 74 09 3b 66 ┆til zero dcr c jnz rewait ;f┆ 0x0ae520…0ae540 6f 72 20 61 6e 6f 74 68 65 72 20 74 72 79 0d 0a 3b 0d 0a 3b 09 63 61 6e 6e 6f 74 20 72 65 63 6f ┆or another try ; ; cannot reco┆ 0x0ae540…0ae560 76 65 72 20 66 72 6f 6d 20 65 72 72 6f 72 0d 0a 09 6d 76 69 09 61 2c 31 09 3b 65 72 72 6f 72 20 ┆ver from error mvi a,1 ;error ┆ 0x0ae560…0ae580 63 6f 64 65 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 09 69 6e 74 79 70 65 2c 20 69 6e 62 79 74 65 2c ┆code ret ; ; intype, inbyte,┆ 0x0ae580…0ae5a0 20 69 6e 73 74 61 74 20 72 65 61 64 20 64 72 69 76 65 20 62 61 6e 6b 20 30 30 20 6f 72 20 31 30 ┆ instat read drive bank 00 or 10┆ 0x0ae5a0…0ae5c0 0d 0a 69 6e 74 79 70 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e ┆ intype: lda dbank ora a jn┆ 0x0ae5c0…0ae5e0 7a 09 69 6e 74 79 70 31 09 3b 73 6b 69 70 20 74 6f 20 62 61 6e 6b 20 31 30 0d 0a 09 69 6e 09 72 ┆z intyp1 ;skip to bank 10 in r┆ 0x0ae5e0…0ae600 74 79 70 65 0d 0a 09 72 65 74 0d 0a 69 6e 74 79 70 31 3a 09 69 6e 09 72 74 79 70 65 2b 31 30 68 ┆type ret intyp1: in rtype+10h┆ 0x0ae600…0ae620 (46, 1, 1) 20 50 52 49 4e 54 45 52 20 4f 55 54 2e 0d 53 49 54 41 3a 20 20 20 2e 42 59 54 45 20 20 20 31 38 ┆ PRINTER OUT. SITA: .BYTE 18┆ 0x0ae620…0ae640 48 20 20 20 20 3b 20 57 52 30 2e 43 48 41 4e 4e 45 4c 20 52 45 53 45 54 2e 0d 20 20 20 20 20 20 ┆H ; WR0.CHANNEL RESET. ┆ 0x0ae640…0ae660 20 20 2e 42 59 54 45 20 20 20 31 34 48 20 20 20 20 3b 20 57 52 30 20 50 4f 49 4e 54 20 54 4f 20 ┆ .BYTE 14H ; WR0 POINT TO ┆ 0x0ae660…0ae680 57 52 34 2e 0d 20 20 20 20 20 20 20 20 2e 42 59 54 45 20 20 20 30 37 48 20 20 20 20 3b 20 57 52 ┆WR4. .BYTE 07H ; WR┆ 0x0ae680…0ae6a0 34 2e 20 41 53 59 4e 43 2c 45 56 45 4e 20 50 2c 31 53 54 4f 50 2c 43 4c 4f 43 4b 20 52 41 54 45 ┆4. ASYNC,EVEN P,1STOP,CLOCK RATE┆ 0x0ae6a0…0ae6c0 2e 0d 20 20 20 20 20 20 20 20 2e 42 59 54 45 20 20 20 30 33 48 20 20 20 20 3b 20 57 52 30 20 50 ┆. .BYTE 03H ; WR0 P┆ 0x0ae6c0…0ae6e0 4f 49 4e 54 20 54 4f 20 57 52 33 2e 0d 20 20 20 20 20 20 20 20 2e 42 59 54 45 20 20 20 36 31 48 ┆OINT TO WR3. .BYTE 61H┆ 0x0ae6e0…0ae700 20 20 20 20 3b 20 57 52 33 2e 20 52 45 43 20 45 4e 41 42 2c 41 55 54 4f 20 45 4e 41 42 2c 20 37 ┆ ; WR3. REC ENAB,AUTO ENAB, 7┆ 0x0ae700…0ae720 44 41 54 41 20 42 49 54 53 20 52 45 43 2e 0d 20 20 20 20 20 20 20 20 2e 42 59 54 45 20 20 20 30 ┆DATA BITS REC. .BYTE 0┆ 0x0ae720…0ae740 35 48 20 20 20 20 3b 20 57 52 30 20 50 4f 49 4e 54 20 54 4f 20 57 52 35 2e 0d 20 20 20 20 20 20 ┆5H ; WR0 POINT TO WR5. ┆ 0x0ae740…0ae760 20 20 2e 42 59 54 45 20 20 20 30 41 41 48 20 20 20 3b 20 57 52 35 2e 20 52 54 53 2c 58 4d 54 20 ┆ .BYTE 0AAH ; WR5. RTS,XMT ┆ 0x0ae760…0ae780 45 4e 41 42 2c 37 44 41 54 41 20 42 49 54 53 20 58 4d 54 2c 44 54 52 2e 0d 20 20 20 20 20 20 20 ┆ENAB,7DATA BITS XMT,DTR. ┆ 0x0ae780…0ae7a0 20 2e 42 59 54 45 20 20 20 30 44 31 48 20 20 20 3b 20 57 52 30 2e 20 52 45 53 45 54 20 55 4e 44 ┆ .BYTE 0D1H ; WR0. RESET UND┆ 0x0ae7a0…0ae7c0 45 52 52 20 4c 2e 20 52 45 53 45 54 20 45 58 54 20 49 4e 54 52 20 2e 20 50 4f 49 4e 54 20 54 4f ┆ERR L. RESET EXT INTR . POINT TO┆ 0x0ae7c0…0ae7e0 20 57 52 31 2e 0d 20 20 20 20 20 20 20 20 2e 42 59 54 45 20 20 20 31 41 48 20 20 20 20 3b 20 57 ┆ WR1. .BYTE 1AH ; W┆ 0x0ae7e0…0ae800 52 31 2e 0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆R1. ┆ 0x0ae800…0ae820 (46, 1, 2) 09 09 09 43 41 4c 4c 20 44 4d 41 20 3b 44 4d 41 20 41 44 44 52 45 53 53 20 53 45 54 0d 0a 20 20 ┆ CALL DMA ;DMA ADDRESS SET ┆ 0x0ae820…0ae840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 09 3b 50 45 52 46 4f 52 4d 20 49 4f 20 46 55 4e ┆ ;PERFORM IO FUN┆ 0x0ae840…0ae860 43 54 49 4f 4e 0d 0a 20 30 31 36 42 20 33 41 33 34 30 31 42 37 20 20 09 09 09 4c 44 41 20 49 4f ┆CTION 016B 3A3401B7 LDA IO┆ 0x0ae860…0ae880 46 21 20 4f 52 41 20 41 20 3b 53 45 54 20 46 4c 41 47 53 2c 20 30 3d 52 45 41 44 2c 20 31 3d 57 ┆F! ORA A ;SET FLAGS, 0=READ, 1=W┆ 0x0ae880…0ae8a0 52 49 54 45 0d 0a 20 30 31 36 46 20 43 32 37 38 30 31 20 20 20 20 09 09 09 4a 4e 5a 20 57 52 49 ┆RITE 016F C27801 JNZ WRI┆ 0x0ae8a0…0ae8c0 54 45 46 55 4e 43 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 09 09 3b 52 45 41 ┆TEFUNC ;REA┆ 0x0ae8c0…0ae8e0 44 20 44 49 53 4b 0d 0a 20 30 31 37 32 20 43 44 41 41 30 31 20 20 20 20 09 09 09 09 43 41 4c 4c ┆D DISK 0172 CDAA01 CALL┆ 0x0ae8e0…0ae900 20 44 52 45 41 44 0d 0a 20 30 31 37 35 20 43 33 37 42 30 31 20 20 20 20 09 09 09 09 4a 4d 50 20 ┆ DREAD 0175 C37B01 JMP ┆ 0x0ae900…0ae920 52 57 43 4f 4d 50 4c 45 54 45 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 09 57 ┆RWCOMPLETE W┆ 0x0ae920…0ae940 52 49 54 45 46 55 4e 43 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 09 09 3b ┆RITEFUNC: ;┆ 0x0ae940…0ae960 57 52 49 54 45 20 44 49 53 4b 0d 0a 20 30 31 37 38 20 43 44 42 32 30 31 20 20 20 20 09 09 09 09 ┆WRITE DISK 0178 CDB201 ┆ 0x0ae960…0ae980 43 41 4c 4c 20 44 57 52 49 54 45 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 09 ┆CALL DWRITE ┆ 0x0ae980…0ae9a0 52 57 43 4f 4d 50 4c 45 54 45 3a 20 3b 46 55 4e 43 54 49 4f 4e 20 43 4f 4d 50 4c 45 54 45 0d 0a ┆RWCOMPLETE: ;FUNCTION COMPLETE ┆ 0x0ae9a0…0ae9c0 20 30 31 37 42 20 45 31 20 20 20 20 20 20 20 20 09 09 09 09 50 4f 50 20 48 20 3b 52 45 43 41 4c ┆ 017B E1 POP H ;RECAL┆ 0x0ae9c0…0ae9e0 4c 20 44 4d 41 20 41 44 44 52 45 53 53 0d 0a 20 30 31 37 43 20 31 31 38 30 30 30 31 39 20 20 09 ┆L DMA ADDRESS 017C 11800019 ┆ 0x0ae9e0…0aea00 09 09 09 4c 58 49 20 44 2c 38 30 48 21 20 44 41 44 20 44 20 3b 54 4f 20 4e 45 58 54 20 44 4d 41 ┆ LXI D,80H! DAD D ;TO NEXT DMA┆ 0x0aea00…0aea20 (46, 1, 3) 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 54 41 52 54 3a 0d 0a 20 30 31 42 41 20 33 31 ┆ START: 01BA 31┆ 0x0aea20…0aea40 30 38 30 37 20 20 20 20 09 4c 58 49 09 53 50 2c 53 54 41 43 4b 0d 0a 20 30 31 42 44 20 30 45 37 ┆0807 LXI SP,STACK 01BD 0E7┆ 0x0aea40…0aea60 38 20 20 20 20 20 20 09 4d 56 49 09 43 2c 31 32 30 0d 0a 20 30 31 42 46 20 44 42 31 34 20 20 20 ┆8 MVI C,120 01BF DB14 ┆ 0x0aea60…0aea80 20 20 20 09 49 4e 09 53 57 31 0d 0a 20 30 31 43 31 20 45 36 38 30 20 20 20 20 20 20 09 41 4e 49 ┆ IN SW1 01C1 E680 ANI┆ 0x0aea80…0aeaa0 09 30 38 30 48 0d 0a 20 30 31 43 33 20 43 41 43 38 30 31 20 20 20 20 09 4a 5a 09 53 45 54 53 50 ┆ 080H 01C3 CAC801 JZ SETSP┆ 0x0aeaa0…0aeac0 54 0d 0a 20 30 31 43 36 20 30 45 34 38 20 20 20 20 20 20 09 4d 56 49 09 43 2c 37 32 0d 0a 20 30 ┆T 01C6 0E48 MVI C,72 0┆ 0x0aeac0…0aeae0 31 43 38 20 37 39 20 20 20 20 20 20 20 20 53 45 54 53 50 54 3a 09 4d 4f 56 09 41 2c 43 0d 0a 20 ┆1C8 79 SETSPT: MOV A,C ┆ 0x0aeae0…0aeb00 30 31 43 39 20 33 32 30 38 30 37 20 20 20 20 09 53 54 41 09 53 50 54 0d 0a 20 30 31 43 43 20 43 ┆01C9 320807 STA SPT 01CC C┆ 0x0aeb00…0aeb20 44 41 45 30 34 20 20 20 20 09 43 41 4c 4c 09 4f 52 47 4d 53 47 09 3b 4f 52 49 47 49 4e 20 50 52 ┆DAE04 CALL ORGMSG ;ORIGIN PR┆ 0x0aeb20…0aeb40 4f 4d 50 54 0d 0a 20 30 31 43 46 20 43 44 43 41 30 33 20 20 20 20 09 43 41 4c 4c 09 52 45 41 44 ┆OMPT 01CF CDCA03 CALL READ┆ 0x0aeb40…0aeb60 0d 0a 20 30 31 44 32 20 32 31 38 31 30 36 37 31 32 33 09 4c 58 49 20 48 2c 4f 52 49 47 49 4e 21 ┆ 01D2 2181067123 LXI H,ORIGIN!┆ 0x0aeb60…0aeb80 20 4d 4f 56 20 4d 2c 43 21 20 69 6e 78 20 68 21 20 6d 6f 76 20 6d 2c 62 20 3b 53 41 56 45 44 20 ┆ MOV M,C! inx h! mov m,b ;SAVED ┆ 0x0aeb80…0aeba0 54 48 45 20 4f 52 49 47 49 4e 20 4e 55 4d 42 45 52 0d 0a 20 30 31 44 38 20 32 31 43 32 30 36 34 ┆THE ORIGIN NUMBER 01D8 21C2064┆ 0x0aeba0…0aebc0 36 32 33 09 4c 58 49 20 48 2c 43 4f 4d 4c 45 4e 21 20 4d 4f 56 20 42 2c 4d 21 20 49 4e 58 20 48 ┆623 LXI H,COMLEN! MOV B,M! INX H┆ 0x0aebc0…0aebe0 21 20 58 43 48 47 0d 0a 20 30 31 44 45 20 32 31 38 35 30 36 20 20 20 20 09 4c 58 49 20 48 2c 41 ┆! XCHG 01DE 218506 LXI H,A┆ 0x0aebe0…0aec00 4f 52 49 47 49 4e 20 3b 41 53 43 49 49 20 56 45 52 53 49 4f 4e 20 4f 46 20 54 48 45 20 4f 52 49 ┆ORIGIN ;ASCII VERSION OF THE ORI┆ 0x0aec00…0aec20 (46, 1, 4) 31 32 33 30 42 42 34 0d 0a 3a 31 30 30 33 32 35 30 30 37 38 42 31 43 32 43 45 30 32 43 44 37 36 ┆1230BB4 :1003250078B1C2CE02CD76┆ 0x0aec20…0aec40 30 35 43 33 31 46 30 32 32 31 43 42 30 36 37 45 42 37 42 41 0d 0a 3a 31 30 30 33 33 35 30 30 43 ┆05C31F0221CB067EB7BA :10033500C┆ 0x0aec40…0aec60 41 34 32 30 33 33 35 43 32 34 32 30 33 32 41 43 43 30 36 43 44 35 41 30 34 32 31 30 39 30 37 31 ┆A420335C242032ACC06CD5A042109071┆ 0x0aec60…0aec80 35 0d 0a 3a 31 30 30 33 34 35 30 30 30 31 30 30 33 43 33 45 45 35 42 45 43 32 36 45 30 33 32 33 ┆5 :1003450001003C3EE5BEC26E0323┆ 0x0aec80…0aeca0 30 42 37 39 42 30 43 32 34 38 30 33 46 33 0d 0a 3a 31 30 30 33 35 35 30 30 33 41 43 42 30 36 42 ┆0B79B0C24803F3 :100355003ACB06B┆ 0x0aeca0…0aecc0 37 43 41 36 32 30 33 43 44 37 36 30 35 43 33 31 46 30 32 31 31 38 43 30 36 44 38 0d 0a 3a 31 30 ┆7CA6203CD7605C31F02118C06D8 :10┆ 0x0aecc0…0aece0 30 33 36 35 30 30 43 44 43 32 30 33 43 44 30 39 30 34 43 33 32 35 30 32 43 44 32 42 30 31 43 41 ┆036500CDC203CD0904C32502CD2B01CA┆ 0x0aece0…0aed00 37 41 30 33 43 44 32 35 0d 0a 3a 31 30 30 33 37 35 30 30 33 31 30 36 43 33 32 35 30 32 32 31 30 ┆7A03CD25 :100375003106C32502210┆ 0x0aed00…0aed20 39 34 33 32 32 33 32 30 31 43 44 32 45 30 31 43 41 38 43 34 33 0d 0a 3a 31 30 30 33 38 35 30 30 ┆943223201CD2E01CA8C43 :10038500┆ 0x0aed20…0aed40 30 33 43 44 35 38 30 36 43 33 32 35 30 32 32 31 30 39 30 37 31 31 30 39 34 33 30 31 30 30 33 43 ┆03CD5806C3250221090711094301003C┆ 0x0aed40…0aed60 38 35 0d 0a 3a 31 30 30 33 39 35 30 30 31 41 42 45 43 32 42 37 30 33 32 33 31 33 30 42 37 39 42 ┆85 :100395001ABEC2B70323130B79B┆ 0x0aed60…0aed80 30 43 32 39 35 30 33 32 31 33 31 30 31 45 44 0d 0a 3a 31 30 30 33 41 35 30 30 33 34 32 31 38 46 ┆0C29503213101ED :1003A50034218F┆ 0x0aed80…0aeda0 30 36 33 34 37 45 46 45 33 41 44 41 34 33 30 32 33 36 33 30 32 42 33 34 43 33 43 44 0d 0a 3a 31 ┆06347EFE3ADA430236302B34C3CD :1┆ 0x0aeda0…0aedc0 30 30 33 42 35 30 30 34 33 30 32 43 44 43 37 30 35 43 33 32 35 30 32 30 45 30 31 43 33 30 35 30 ┆003B5004302CDC705C325020E01C3050┆ 0x0aedc0…0aede0 30 30 45 30 39 43 33 42 46 0d 0a 3a 31 30 30 33 43 35 30 30 30 35 30 30 43 44 30 34 30 35 31 31 ┆00E09C3BF :1003C5000500CD040511┆ 0x0aede0…0aee00 43 31 30 36 30 45 30 41 43 44 30 35 30 30 32 31 43 32 30 36 41 32 0d 0a 3a 31 30 30 33 44 35 30 ┆C1060E0ACD050021C206A2 :1003D50┆ 0x0aee00…0aee20 (46, 1, 5) 44 49 53 4b 0d 0a 20 30 31 32 42 20 43 33 33 43 30 31 20 20 20 20 09 4a 4d 50 09 57 52 49 54 45 ┆DISK 012B C33C01 JMP WRITE┆ 0x0aee20…0aee40 24 44 49 53 4b 0d 0a 20 30 31 32 45 20 43 33 34 37 30 31 20 20 20 20 09 4a 4d 50 09 52 45 24 52 ┆$DISK 012E C34701 JMP RE$R┆ 0x0aee40…0aee60 45 41 44 24 44 49 53 4b 0d 0a 20 30 31 33 31 20 20 20 20 20 20 20 20 20 20 20 54 52 41 43 4b 3a ┆EAD$DISK 0131 TRACK:┆ 0x0aee60…0aee80 09 44 53 09 31 09 3b 53 45 54 20 54 4f 20 54 52 41 43 4b 20 54 4f 20 52 45 41 44 2f 57 52 49 54 ┆ DS 1 ;SET TO TRACK TO READ/WRIT┆ 0x0aee80…0aeea0 45 0d 0a 20 30 31 33 32 20 20 20 20 20 20 20 20 20 20 20 42 55 46 46 41 3a 09 44 53 09 32 09 3b ┆E 0132 BUFFA: DS 2 ;┆ 0x0aeea0…0aeec0 53 45 54 20 54 4f 20 42 55 46 46 45 52 20 41 44 44 52 45 53 53 20 54 4f 20 52 45 41 44 2f 57 52 ┆SET TO BUFFER ADDRESS TO READ/WR┆ 0x0aeec0…0aeee0 49 54 45 0d 0a 20 30 31 33 34 20 20 20 20 20 20 20 20 20 20 20 49 4f 46 3a 09 44 53 09 31 09 3b ┆ITE 0134 IOF: DS 1 ;┆ 0x0aeee0…0aef00 49 4f 20 46 55 4e 43 54 49 4f 4e 20 30 20 3d 20 52 45 41 44 2c 20 31 20 3d 20 57 52 49 54 45 0d ┆IO FUNCTION 0 = READ, 1 = WRITE ┆ 0x0aef00…0aef20 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ; ┆ 0x0aef20…0aef40 20 20 20 20 52 45 41 44 24 44 49 53 4b 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ READ$DISK: ┆ 0x0aef40…0aef60 09 3b 52 45 41 44 20 44 49 53 4b 20 44 52 49 56 45 20 41 2c 20 46 52 4f 4d 20 54 52 41 43 4b 20 ┆ ;READ DISK DRIVE A, FROM TRACK ┆ 0x0aef60…0aef80 27 54 52 41 43 4b 27 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 3b 49 4e 54 4f 20 ┆'TRACK' ;INTO ┆ 0x0aef80…0aefa0 54 48 45 20 41 44 44 52 45 53 53 20 47 49 56 45 4e 20 42 59 20 27 42 55 46 46 41 27 0d 0a 20 30 ┆THE ADDRESS GIVEN BY 'BUFFA' 0┆ 0x0aefa0…0aefc0 31 33 35 20 41 46 43 44 38 39 30 31 20 20 09 58 52 41 20 41 21 20 43 41 4c 4c 20 53 45 4c 20 3b ┆135 AFCD8901 XRA A! CALL SEL ;┆ 0x0aefc0…0aefe0 53 45 4c 45 43 54 20 44 52 49 56 45 20 41 0d 0a 20 30 31 33 39 20 43 33 34 43 30 31 20 20 20 20 ┆SELECT DRIVE A 0139 C34C01 ┆ 0x0aefe0…0af000 09 4a 4d 50 20 52 45 41 44 24 44 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a ┆ JMP READ$D ; ┆ 0x0af000…0af020 (46, 1, 6) 0d 0a 20 30 31 38 30 20 44 31 20 20 20 20 20 20 20 20 09 09 09 09 50 4f 50 20 44 20 3b 52 45 43 ┆ 0180 D1 POP D ;REC┆ 0x0af020…0af040 41 4c 4c 20 53 45 43 54 4f 52 20 41 4e 44 20 43 4f 55 4e 54 0d 0a 20 30 31 38 31 20 31 34 20 20 ┆ALL SECTOR AND COUNT 0181 14 ┆ 0x0af040…0af060 20 20 20 20 20 20 09 09 09 09 49 4e 52 20 44 20 3b 4e 45 58 54 20 53 45 43 54 4f 52 0d 0a 20 20 ┆ INR D ;NEXT SECTOR ┆ 0x0af060…0af080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 09 3b 20 43 48 45 43 4b 20 45 52 52 4f 52 20 43 ┆ ; CHECK ERROR C┆ 0x0af080…0af0a0 4f 4e 44 49 54 49 4f 4e 53 0d 0a 20 30 31 38 32 20 42 37 43 30 20 20 20 20 20 20 09 09 09 4f 52 ┆ONDITIONS 0182 B7C0 OR┆ 0x0af0a0…0af0c0 41 20 41 21 20 52 4e 5a 20 3b 52 45 54 55 52 4e 20 57 49 54 48 20 4e 4f 4e 20 5a 45 52 4f 20 46 ┆A A! RNZ ;RETURN WITH NON ZERO F┆ 0x0af0c0…0af0e0 4c 41 47 20 53 45 54 0d 0a 20 30 31 38 34 20 31 44 20 20 20 20 20 20 20 20 09 09 09 44 43 52 20 ┆LAG SET 0184 1D DCR ┆ 0x0af0e0…0af100 45 20 3b 43 4f 55 4e 54 20 3d 20 43 4f 55 4e 54 20 2d 20 31 0d 0a 20 30 31 38 35 20 43 32 36 30 ┆E ;COUNT = COUNT - 1 0185 C260┆ 0x0af100…0af120 30 31 20 20 20 20 09 09 09 4a 4e 5a 20 52 57 24 4c 4f 4f 50 20 3b 46 4f 52 20 41 4e 4f 54 48 45 ┆01 JNZ RW$LOOP ;FOR ANOTHE┆ 0x0af120…0af140 52 20 53 45 43 54 4f 52 0d 0a 20 30 31 38 38 20 43 39 20 20 20 20 20 20 20 20 09 09 09 52 45 54 ┆R SECTOR 0188 C9 RET┆ 0x0af140…0af160 20 3b 57 49 54 48 20 5a 45 52 4f 20 46 4c 41 47 20 53 45 54 20 46 4f 52 20 49 4f 20 43 4f 4d 50 ┆ ;WITH ZERO FLAG SET FOR IO COMP┆ 0x0af160…0af180 4c 45 54 45 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 ┆LETE ; ┆ 0x0af180…0af1a0 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 09 55 54 ┆ ; ; UT┆ 0x0af1a0…0af1c0 49 4c 49 54 59 20 53 55 42 52 4f 55 54 49 4e 45 53 20 46 4f 52 20 44 49 52 45 43 54 20 44 49 53 ┆ILITY SUBROUTINES FOR DIRECT DIS┆ 0x0af1c0…0af1e0 4b 20 49 4f 0d 0a 20 30 30 30 31 20 3d 20 20 20 20 20 20 20 20 20 57 42 4f 4f 54 09 45 51 55 09 ┆K IO 0001 = WBOOT EQU ┆ 0x0af1e0…0af200 31 09 3b 57 41 52 4d 20 42 4f 4f 54 20 41 44 44 52 45 53 53 0d 0a 20 30 30 31 38 20 3d 20 20 20 ┆1 ;WARM BOOT ADDRESS 0018 = ┆ 0x0af200…0af220 (46, 1, 7) 3a 31 30 30 31 30 30 30 30 43 33 42 41 30 31 34 33 34 46 35 30 35 39 35 32 34 39 34 37 34 38 35 ┆:10010000C3BA01434F5059524947485┆ 0x0af220…0af240 34 32 30 32 38 34 33 32 39 30 34 0d 0a 3a 31 30 30 31 31 30 30 30 32 30 33 31 33 39 33 38 33 30 ┆42028432904 :100110002031393830┆ 0x0af240…0af260 32 43 32 30 34 34 34 39 34 37 34 39 35 34 34 31 34 43 32 30 35 32 33 31 0d 0a 3a 31 30 30 31 32 ┆2C204449474954414C205231 :10012┆ 0x0af260…0af280 30 30 30 34 35 35 33 34 35 34 31 35 32 34 33 34 38 32 30 43 33 33 35 30 31 43 33 33 43 30 31 43 ┆0004553454152434820C33501C33C01C┆ 0x0af280…0af2a0 33 34 37 42 31 0d 0a 3a 30 31 30 31 33 30 30 30 30 31 43 44 0d 0a 3a 31 30 30 31 33 35 30 30 41 ┆347B1 :0101300001CD :10013500A┆ 0x0af2a0…0af2c0 46 43 44 38 39 30 31 43 33 34 43 30 31 33 45 30 31 33 32 33 34 30 31 43 44 38 39 30 31 43 33 45 ┆FCD8901C34C013E01323401CD8901C3E┆ 0x0af2c0…0af2e0 34 0d 0a 3a 31 30 30 31 34 35 30 30 35 30 30 31 33 45 30 31 43 44 38 39 30 31 41 46 33 32 33 34 ┆4 :1001450050013E01CD8901AF3234┆ 0x0af2e0…0af300 30 31 32 31 33 31 30 31 34 45 43 44 33 46 0d 0a 3a 31 30 30 31 35 35 30 30 39 32 30 31 32 41 33 ┆012131014ECD3F :1001550092012A3┆ 0x0af300…0af320 32 30 31 31 36 30 30 33 41 30 38 30 37 35 46 44 35 45 35 34 41 43 44 39 41 38 31 0d 0a 3a 31 30 ┆20116003A08075FD5E54ACD9A81 :10┆ 0x0af320…0af340 30 31 36 35 30 30 30 31 43 31 43 35 43 44 41 32 30 31 33 41 33 34 30 31 42 37 43 32 37 38 30 31 ┆01650001C1C5CDA2013A3401B7C27801┆ 0x0af340…0af360 43 44 41 41 30 31 42 41 0d 0a 3a 31 30 30 31 37 35 30 30 43 33 37 42 30 31 43 44 42 32 30 31 45 ┆CDAA01BA :10017500C37B01CDB201E┆ 0x0af360…0af380 31 31 31 38 30 30 30 31 39 44 31 31 34 42 37 43 30 31 44 42 37 0d 0a 3a 31 30 30 31 38 35 30 30 ┆111800019D114B7C01DB7 :10018500┆ 0x0af380…0af3a0 43 32 36 30 30 31 43 39 34 46 32 41 30 31 30 30 31 31 31 38 30 30 31 39 45 39 32 41 30 31 30 30 ┆C26001C94F2A010011180019E92A0100┆ 0x0af3a0…0af3c0 41 45 0d 0a 3a 31 30 30 31 39 35 30 30 31 31 31 42 30 30 31 39 45 39 32 41 30 31 30 30 31 31 31 ┆AE :10019500111B0019E92A0100111┆ 0x0af3c0…0af3e0 45 30 30 31 39 45 39 32 41 30 31 30 30 41 35 0d 0a 3a 31 30 30 31 41 35 30 30 31 31 32 31 30 30 ┆E0019E92A0100A5 :1001A500112100┆ 0x0af3e0…0af400 31 39 45 39 32 41 30 31 30 30 31 31 32 34 30 30 31 39 45 39 32 41 30 31 30 30 38 39 0d 0a 3a 31 ┆19E92A010011240019E92A010089 :1┆ 0x0af400…0af420 (46, 1, 8) 47 49 4e 0d 0a 20 30 31 45 31 20 31 41 42 37 43 41 45 44 30 31 09 4f 52 47 32 3a 20 4c 44 41 58 ┆GIN 01E1 1AB7CAED01 ORG2: LDAX┆ 0x0af420…0af440 20 44 21 20 4f 52 41 20 41 21 20 4a 5a 20 4f 52 47 33 0d 0a 20 30 31 45 36 20 31 33 37 37 32 33 ┆ D! ORA A! JZ ORG3 01E6 137723┆ 0x0af440…0af460 30 35 43 32 09 09 49 4e 58 20 44 21 20 4d 4f 56 20 4d 2c 41 21 20 49 4e 58 20 48 21 20 44 43 52 ┆05C2 INX D! MOV M,A! INX H! DCR┆ 0x0af460…0af480 20 42 21 20 4a 4e 5a 20 4f 52 47 32 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 ┆ B! JNZ ORG2 ┆ 0x0af480…0af4a0 3b 41 53 43 49 49 20 56 45 52 53 49 4f 4e 20 4d 4f 56 45 44 20 54 4f 20 42 55 46 46 45 52 2c 20 ┆;ASCII VERSION MOVED TO BUFFER, ┆ 0x0af4a0…0af4c0 50 41 44 20 49 54 0d 0a 20 30 31 45 44 20 33 36 32 44 32 33 33 36 32 34 09 4f 52 47 33 3a 09 4d ┆PAD IT 01ED 362D233624 ORG3: M┆ 0x0af4c0…0af4e0 56 49 20 4d 2c 27 2d 27 21 20 49 4e 58 20 48 21 20 4d 56 49 20 4d 2c 27 24 27 20 3b 52 45 41 44 ┆VI M,'-'! INX H! MVI M,'$' ;READ┆ 0x0af4e0…0af500 59 20 46 4f 52 20 50 52 49 4e 54 49 4e 47 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆Y FOR PRINTING ┆ 0x0af500…0af520 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 09 4e 4f 57 20 52 45 41 44 20 54 48 ┆; ; NOW READ TH┆ 0x0af520…0af540 45 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 0d 0a 20 30 31 46 32 20 43 44 45 33 30 34 43 44 43 ┆E SERIAL NUMBER 01F2 CDE304CDC┆ 0x0af540…0af560 41 09 43 41 4c 4c 20 53 45 52 4d 53 47 21 20 43 41 4c 4c 20 52 45 41 44 0d 0a 20 30 31 46 38 20 ┆A CALL SERMSG! CALL READ 01F8 ┆ 0x0af560…0af580 32 31 41 31 30 36 37 31 32 33 09 4c 58 49 20 48 2c 42 53 45 52 49 41 4c 21 20 4d 4f 56 20 4d 2c ┆21A1067123 LXI H,BSERIAL! MOV M,┆ 0x0af580…0af5a0 43 21 20 49 4e 58 20 48 21 20 4d 4f 56 20 4d 2c 42 20 3b 42 49 4e 41 52 59 20 43 4f 50 49 45 44 ┆C! INX H! MOV M,B ;BINARY COPIED┆ 0x0af5a0…0af5c0 0d 0a 20 30 31 46 45 20 32 31 43 32 30 36 33 45 30 35 09 4c 58 49 20 48 2c 43 4f 4d 4c 45 4e 21 ┆ 01FE 21C2063E05 LXI H,COMLEN!┆ 0x0af5c0…0af5e0 20 4d 56 49 20 41 2c 35 21 20 53 55 42 20 4d 20 3b 44 49 46 46 45 52 45 4e 43 45 20 49 4e 20 52 ┆ MVI A,5! SUB M ;DIFFERENCE IN R┆ 0x0af5e0…0af600 45 47 2d 41 0d 0a 20 30 32 30 34 20 32 31 41 33 30 36 43 41 31 31 09 4c 58 49 20 48 2c 41 53 45 ┆EG-A 0204 21A306CA11 LXI H,ASE┆ 0x0af600…0af620 (46, 1, 9) 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ; ┆ 0x0af620…0af640 20 20 20 57 52 49 54 45 24 44 49 53 4b 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ WRITE$DISK: ┆ 0x0af640…0af660 09 3b 57 52 49 54 45 20 54 4f 20 44 49 53 4b 20 44 52 49 56 45 20 42 2c 20 54 4f 20 54 52 41 43 ┆ ;WRITE TO DISK DRIVE B, TO TRAC┆ 0x0af660…0af680 4b 20 27 54 52 41 43 4b 27 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 3b 46 52 4f ┆K 'TRACK' ;FRO┆ 0x0af680…0af6a0 4d 20 54 48 45 20 41 44 44 52 45 53 53 20 47 49 56 45 4e 20 42 59 20 27 42 55 46 46 41 27 0d 0a ┆M THE ADDRESS GIVEN BY 'BUFFA' ┆ 0x0af6a0…0af6c0 20 30 31 33 43 20 33 45 30 31 33 32 33 34 30 31 09 4d 56 49 20 41 2c 31 21 20 53 54 41 20 49 4f ┆ 013C 3E01323401 MVI A,1! STA IO┆ 0x0af6c0…0af6e0 46 20 3b 53 45 54 20 49 4f 46 55 4e 43 54 49 4f 4e 20 54 4f 20 57 52 49 54 45 0d 0a 20 30 31 34 ┆F ;SET IOFUNCTION TO WRITE 014┆ 0x0af6e0…0af700 31 20 43 44 38 39 30 31 20 20 20 20 09 43 41 4c 4c 20 53 45 4c 20 3b 53 45 4c 45 43 54 20 44 52 ┆1 CD8901 CALL SEL ;SELECT DR┆ 0x0af700…0af720 49 56 45 20 42 0d 0a 20 30 31 34 34 20 43 33 35 30 30 31 20 20 20 20 09 4a 4d 50 20 52 57 24 44 ┆IVE B 0144 C35001 JMP RW$D┆ 0x0af720…0af740 49 53 4b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 ┆ISK ; ┆ 0x0af740…0af760 20 20 20 20 20 20 20 20 52 45 24 52 45 41 44 24 44 49 53 4b 3a 0d 0a 20 20 20 20 20 20 20 20 20 ┆ RE$READ$DISK: ┆ 0x0af760…0af780 20 20 20 20 20 20 20 09 3b 52 45 41 44 20 46 52 4f 4d 20 44 49 53 4b 20 44 52 49 56 45 20 42 2c ┆ ;READ FROM DISK DRIVE B,┆ 0x0af780…0af7a0 20 46 52 4f 4d 20 54 52 41 43 4b 20 27 54 52 41 43 4b 27 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ┆ FROM TRACK 'TRACK' ┆ 0x0af7a0…0af7c0 20 20 20 20 20 09 3b 54 4f 20 54 48 45 20 41 44 44 52 45 53 53 20 47 49 56 45 4e 20 42 59 20 27 ┆ ;TO THE ADDRESS GIVEN BY '┆ 0x0af7c0…0af7e0 42 55 46 46 41 27 0d 0a 20 30 31 34 37 20 33 45 30 31 43 44 38 39 30 31 09 4d 56 49 20 41 2c 31 ┆BUFFA' 0147 3E01CD8901 MVI A,1┆ 0x0af7e0…0af800 21 20 43 41 4c 4c 20 53 45 4c 20 3b 44 52 49 56 45 20 42 20 53 45 4c 45 43 54 45 44 0d 0a 20 30 ┆! CALL SEL ;DRIVE B SELECTED 0┆ 0x0af800…0af820 (46, 1, 10) 20 20 20 20 20 20 53 45 4c 44 53 4b 09 45 51 55 09 32 34 09 3b 53 45 4c 45 43 54 20 44 49 53 4b ┆ SELDSK EQU 24 ;SELECT DISK┆ 0x0af820…0af840 0d 0a 20 30 30 31 42 20 3d 20 20 20 20 20 20 20 20 20 53 45 54 54 52 4b 09 45 51 55 09 32 37 09 ┆ 001B = SETTRK EQU 27 ┆ 0x0af840…0af860 3b 53 45 54 20 54 52 41 43 4b 0d 0a 20 30 30 31 45 20 3d 20 20 20 20 20 20 20 20 20 53 45 54 53 ┆;SET TRACK 001E = SETS┆ 0x0af860…0af880 45 43 09 45 51 55 09 33 30 09 3b 53 45 54 20 53 45 43 54 4f 52 0d 0a 20 30 30 32 31 20 3d 20 20 ┆EC EQU 30 ;SET SECTOR 0021 = ┆ 0x0af880…0af8a0 20 20 20 20 20 20 20 53 45 54 44 4d 41 09 45 51 55 09 33 33 09 3b 53 45 54 20 44 4d 41 20 41 44 ┆ SETDMA EQU 33 ;SET DMA AD┆ 0x0af8a0…0af8c0 44 52 45 53 53 0d 0a 20 30 30 32 34 20 3d 20 20 20 20 20 20 20 20 20 52 45 41 44 46 09 45 51 55 ┆DRESS 0024 = READF EQU┆ 0x0af8c0…0af8e0 09 33 36 09 3b 52 45 41 44 20 44 49 53 4b 0d 0a 20 30 30 32 37 20 3d 20 20 20 20 20 20 20 20 20 ┆ 36 ;READ DISK 0027 = ┆ 0x0af8e0…0af900 57 52 49 54 46 09 45 51 55 09 33 39 09 3b 57 52 49 54 45 20 44 49 53 4b 0d 0a 20 20 20 20 20 20 ┆WRITF EQU 39 ;WRITE DISK ┆ 0x0af900…0af920 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 45 4c ┆ ; SEL┆ 0x0af920…0af940 3a 09 3b 53 45 4c 45 43 54 20 44 52 49 56 45 20 47 49 56 45 4e 20 42 59 20 52 45 47 49 53 54 45 ┆: ;SELECT DRIVE GIVEN BY REGISTE┆ 0x0af940…0af960 52 20 41 0d 0a 20 30 31 38 39 20 34 46 32 41 30 31 30 30 31 31 09 4d 4f 56 20 43 2c 41 21 20 4c ┆R A 0189 4F2A010011 MOV C,A! L┆ 0x0af960…0af980 48 4c 44 20 57 42 4f 4f 54 21 20 4c 58 49 20 44 2c 53 45 4c 44 53 4b 21 20 44 41 44 20 44 21 20 ┆HLD WBOOT! LXI D,SELDSK! DAD D! ┆ 0x0af980…0af9a0 50 43 48 4c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 ┆PCHL ; ┆ 0x0af9a0…0af9c0 20 20 20 20 20 20 20 20 20 54 52 4b 3a 09 3b 53 45 54 20 54 52 41 43 4b 20 47 49 56 45 4e 20 42 ┆ TRK: ;SET TRACK GIVEN B┆ 0x0af9c0…0af9e0 59 20 43 0d 0a 20 30 31 39 32 20 32 41 30 31 30 30 31 31 31 42 09 4c 48 4c 44 20 57 42 4f 4f 54 ┆Y C 0192 2A0100111B LHLD WBOOT┆ 0x0af9e0…0afa00 21 20 4c 58 49 20 44 2c 53 45 54 54 52 4b 21 20 44 41 44 20 44 21 20 50 43 48 4c 0d 0a 20 20 20 ┆! LXI D,SETTRK! DAD D! PCHL ┆ 0x0afa00…0afa20 (46, 1, 11) 30 30 31 42 35 30 30 31 31 32 37 30 30 31 39 45 39 33 31 30 38 30 37 30 45 37 38 44 42 31 34 45 ┆001B50011270019E93108070E78DB14E┆ 0x0afa20…0afa40 36 38 30 43 41 43 38 35 33 0d 0a 3a 31 30 30 31 43 35 30 30 30 31 30 45 34 38 37 39 33 32 30 38 ┆680CAC853 :1001C500010E48793208┆ 0x0afa40…0afa60 30 37 43 44 41 45 30 34 43 44 43 41 30 33 32 31 38 31 30 36 35 38 0d 0a 3a 31 30 30 31 44 35 30 ┆07CDAE04CDCA0321810658 :1001D50┆ 0x0afa60…0afa80 30 37 31 32 33 37 30 32 31 43 32 30 36 34 36 32 33 45 42 32 31 38 35 30 36 31 41 42 37 43 41 45 ┆071237021C2064623EB2185061AB7CAE┆ 0x0afa80…0afaa0 44 41 35 0d 0a 3a 31 30 30 31 45 35 30 30 30 31 31 33 37 37 32 33 30 35 43 32 45 31 30 31 33 36 ┆DA5 :1001E5000113772305C2E10136┆ 0x0afaa0…0afac0 32 44 32 33 33 36 32 34 43 44 45 33 30 34 31 46 0d 0a 3a 31 30 30 31 46 35 30 30 43 44 43 41 30 ┆2D233624CDE3041F :1001F500CDCA0┆ 0x0afac0…0afae0 33 32 31 41 31 30 36 37 31 32 33 37 30 32 31 43 32 30 36 33 45 30 35 39 36 32 31 42 31 0d 0a 3a ┆321A10671237021C2063E059621B1 :┆ 0x0afae0…0afb00 31 30 30 32 30 35 30 30 41 33 30 36 43 41 31 31 30 32 33 36 33 30 32 33 33 44 43 32 30 41 30 32 ┆10020500A306CA11023630233DC20A02┆ 0x0afb00…0afb20 31 31 43 33 30 36 31 41 44 42 0d 0a 3a 31 30 30 32 31 35 30 30 42 37 43 41 31 46 30 32 37 37 32 ┆11C3061ADB :10021500B7CA1F02772┆ 0x0afb20…0afb40 33 31 33 43 33 31 34 30 32 43 44 37 43 30 34 43 44 42 44 30 33 44 37 0d 0a 3a 31 30 30 32 32 35 ┆313C31402CD7C04CDBD03D7 :100225┆ 0x0afb40…0afb60 30 30 33 45 30 30 33 32 43 42 30 36 43 44 32 37 30 35 43 44 34 31 30 35 43 44 34 44 30 35 43 44 ┆003E0032CB06CD2705CD4105CD4D05CD┆ 0x0afb60…0afb80 42 44 44 33 0d 0a 3a 31 30 30 32 33 35 30 30 30 33 32 31 33 31 30 31 33 36 30 31 32 31 38 45 30 ┆BDD3 :10023500032131013601218E0┆ 0x0afb80…0afba0 36 33 36 33 30 32 33 33 36 33 30 32 31 30 39 35 45 0d 0a 3a 31 30 30 32 34 35 30 30 30 37 32 32 ┆6363023363021095E :100245000722┆ 0x0afba0…0afbc0 33 32 30 31 43 44 32 38 30 31 43 41 35 35 30 32 43 44 30 42 30 36 43 33 31 46 30 32 37 34 0d 0a ┆3201CD2801CA5502CD0B06C31F0274 ┆ 0x0afbc0…0afbe0 3a 31 30 30 32 35 35 30 30 33 41 33 31 30 31 46 45 30 31 43 32 43 33 30 32 32 31 30 39 30 37 30 ┆:100255003A3101FE01C2C3022109070┆ 0x0afbe0…0afc00 31 30 30 30 38 45 35 43 35 43 33 0d 0a 3a 31 30 30 32 36 35 30 30 31 31 41 39 30 36 30 45 30 43 ┆10008E5C5C3 :1002650011A9060E0C┆ 0x0afc00…0afc20 (46, 1, 12) 52 49 41 4c 21 20 4a 5a 20 50 41 44 31 20 3b 50 41 44 20 48 49 47 48 20 4f 52 44 45 52 20 50 4f ┆RIAL! JZ PAD1 ;PAD HIGH ORDER PO┆ 0x0afc20…0afc40 53 49 54 49 4f 4e 53 20 57 49 54 48 20 30 0d 0a 20 30 32 30 41 20 33 36 33 30 32 33 33 44 43 32 ┆SITIONS WITH 0 020A 3630233DC2┆ 0x0afc40…0afc60 09 50 41 44 30 3a 09 4d 56 49 20 4d 2c 27 30 27 21 20 49 4e 58 20 48 21 20 44 43 52 20 41 21 20 ┆ PAD0: MVI M,'0'! INX H! DCR A! ┆ 0x0afc60…0afc80 4a 4e 5a 20 50 41 44 30 0d 0a 20 30 32 31 31 20 31 31 43 33 30 36 20 20 20 20 09 50 41 44 31 3a ┆JNZ PAD0 0211 11C306 PAD1:┆ 0x0afc80…0afca0 09 4c 58 49 20 44 2c 43 42 55 46 46 20 3b 41 44 44 52 45 53 53 49 4e 47 20 42 55 46 46 45 52 0d ┆ LXI D,CBUFF ;ADDRESSING BUFFER ┆ 0x0afca0…0afcc0 0a 20 30 32 31 34 20 31 41 42 37 43 41 31 46 30 32 09 50 41 44 32 3a 09 4c 44 41 58 20 44 21 20 ┆ 0214 1AB7CA1F02 PAD2: LDAX D! ┆ 0x0afcc0…0afce0 4f 52 41 20 41 21 20 4a 5a 20 50 41 44 33 20 3b 4c 4f 4f 4b 49 4e 47 20 46 4f 52 20 42 49 4e 41 ┆ORA A! JZ PAD3 ;LOOKING FOR BINA┆ 0x0afce0…0afd00 52 59 20 30 0d 0a 20 30 32 31 39 20 37 37 32 33 31 33 43 33 31 34 09 09 4d 4f 56 20 4d 2c 41 21 ┆RY 0 0219 772313C314 MOV M,A!┆ 0x0afd00…0afd20 20 49 4e 58 20 48 21 20 49 4e 58 20 44 21 20 4a 4d 50 20 50 41 44 32 20 3b 46 4f 52 20 41 4e 4f ┆ INX H! INX D! JMP PAD2 ;FOR ANO┆ 0x0afd20…0afd40 54 48 45 52 20 43 48 41 52 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 50 41 44 33 ┆THER CHAR PAD3┆ 0x0afd40…0afd60 3a 09 3b 45 4e 44 20 4f 46 20 41 53 43 49 49 20 46 49 4c 4c 20 28 4e 4f 57 20 52 49 47 48 54 20 ┆: ;END OF ASCII FILL (NOW RIGHT ┆ 0x0afd60…0afd80 41 44 4a 55 53 54 45 44 20 49 4e 20 41 53 45 52 49 41 4c 29 0d 0a 20 20 20 20 20 20 20 20 20 20 ┆ADJUSTED IN ASERIAL) ┆ 0x0afd80…0afda0 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 44 44 53 4b 3a 09 ┆ ; RDDSK: ┆ 0x0afda0…0afdc0 3b 52 45 41 44 20 44 49 53 4b 20 41 4e 44 20 43 4f 50 59 0d 0a 20 30 32 31 46 20 43 44 37 43 30 ┆;READ DISK AND COPY 021F CD7C0┆ 0x0afdc0…0afde0 34 43 44 42 44 09 43 41 4c 4c 20 49 4e 53 4d 53 47 21 20 43 41 4c 4c 20 43 49 20 3b 57 41 49 54 ┆4CDBD CALL INSMSG! CALL CI ;WAIT┆ 0x0afde0…0afe00 20 46 4f 52 20 52 45 53 50 4f 4e 53 45 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b ┆ FOR RESPONSE ;┆ 0x0afe00…0afe20 (46, 1, 13) 31 34 43 20 41 46 33 32 33 34 30 31 20 20 09 52 45 41 44 24 44 3a 20 58 52 41 20 41 21 20 53 54 ┆14C AF323401 READ$D: XRA A! ST┆ 0x0afe20…0afe40 41 20 49 4f 46 20 3b 53 45 54 20 54 4f 20 52 45 41 44 20 46 55 4e 43 54 49 4f 4e 0d 0a 20 20 20 ┆A IOF ;SET TO READ FUNCTION ┆ 0x0afe40…0afe60 20 20 20 20 20 20 20 20 20 20 20 20 20 09 52 57 24 44 49 53 4b 3a 20 3b 52 45 41 44 20 4f 52 20 ┆ RW$DISK: ;READ OR ┆ 0x0afe60…0afe80 57 52 49 54 45 20 44 49 53 4b 0d 0a 20 30 31 35 30 20 32 31 33 31 30 31 34 45 20 20 09 09 4c 58 ┆WRITE DISK 0150 2131014E LX┆ 0x0afe80…0afea0 49 20 48 2c 54 52 41 43 4b 21 20 4d 4f 56 20 43 2c 4d 20 3b 47 45 54 20 54 52 41 43 4b 20 4e 55 ┆I H,TRACK! MOV C,M ;GET TRACK NU┆ 0x0afea0…0afec0 4d 42 45 52 0d 0a 20 30 31 35 34 20 43 44 39 32 30 31 20 20 20 20 09 09 43 41 4c 4c 20 54 52 4b ┆MBER 0154 CD9201 CALL TRK┆ 0x0afec0…0afee0 20 3b 54 52 41 43 4b 20 53 45 4c 45 43 54 45 44 0d 0a 20 30 31 35 37 20 32 41 33 32 30 31 20 20 ┆ ;TRACK SELECTED 0157 2A3201 ┆ 0x0afee0…0aff00 20 20 09 09 4c 48 4c 44 20 42 55 46 46 41 20 3b 47 45 54 20 44 4d 41 20 41 44 44 52 45 53 53 0d ┆ LHLD BUFFA ;GET DMA ADDRESS ┆ 0x0aff00…0aff20 0a 20 30 31 35 41 20 31 36 30 30 33 41 30 38 30 37 09 09 4d 56 49 20 44 2c 30 21 20 4c 44 41 20 ┆ 015A 16003A0807 MVI D,0! LDA ┆ 0x0aff20…0aff40 53 50 54 21 20 4d 4f 56 20 45 2c 41 20 3b 20 44 3d 30 2c 20 45 3d 53 50 54 0d 0a 20 20 20 20 20 ┆SPT! MOV E,A ; D=0, E=SPT ┆ 0x0aff40…0aff60 20 20 20 20 20 20 20 20 20 20 20 09 09 52 57 24 4c 4f 4f 50 3a 20 3b 52 45 41 44 2f 57 52 49 54 ┆ RW$LOOP: ;READ/WRIT┆ 0x0aff60…0aff80 45 20 4c 4f 4f 50 0d 0a 20 30 31 36 30 20 44 35 45 35 20 20 20 20 20 20 09 09 09 50 55 53 48 20 ┆E LOOP 0160 D5E5 PUSH ┆ 0x0aff80…0affa0 44 21 20 50 55 53 48 20 48 0d 0a 20 30 31 36 32 20 34 41 43 44 39 41 30 31 20 20 09 09 09 4d 4f ┆D! PUSH H 0162 4ACD9A01 MO┆ 0x0affa0…0affc0 56 20 43 2c 44 21 20 43 41 4c 4c 20 53 45 43 20 3b 53 45 43 54 4f 52 20 53 45 54 0d 0a 20 30 31 ┆V C,D! CALL SEC ;SECTOR SET 01┆ 0x0affc0…0affe0 36 36 20 43 31 43 35 20 20 20 20 20 20 09 09 09 50 4f 50 20 42 21 20 50 55 53 48 20 42 20 3b 47 ┆66 C1C5 POP B! PUSH B ;G┆ 0x0affe0…0b0000 45 54 20 44 4d 41 20 41 44 44 52 45 53 53 0d 0a 20 30 31 36 38 20 43 44 41 32 30 31 20 20 20 20 ┆ET DMA ADDRESS 0168 CDA201 ┆ 0x0b0000…0b0020 (46, 1, 14) 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ; ┆ 0x0b0020…0b0040 53 45 43 3a 09 3b 53 45 54 20 53 45 43 54 4f 52 20 47 49 56 45 4e 20 42 59 20 43 0d 0a 20 30 31 ┆SEC: ;SET SECTOR GIVEN BY C 01┆ 0x0b0040…0b0060 39 41 20 32 41 30 31 30 30 31 31 31 45 09 4c 48 4c 44 20 57 42 4f 4f 54 21 20 4c 58 49 20 44 2c ┆9A 2A0100111E LHLD WBOOT! LXI D,┆ 0x0b0060…0b0080 53 45 54 53 45 43 21 20 44 41 44 20 44 21 20 50 43 48 4c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ┆SETSEC! DAD D! PCHL ┆ 0x0b0080…0b00a0 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 4d 41 3a 09 3b 53 45 ┆ ; DMA: ;SE┆ 0x0b00a0…0b00c0 54 20 44 4d 41 20 41 44 44 52 45 53 53 20 54 4f 20 56 41 4c 55 45 20 4f 46 20 42 2c 43 0d 0a 20 ┆T DMA ADDRESS TO VALUE OF B,C ┆ 0x0b00c0…0b00e0 30 31 41 32 20 32 41 30 31 30 30 31 31 32 31 09 4c 48 4c 44 20 57 42 4f 4f 54 21 20 4c 58 49 20 ┆01A2 2A01001121 LHLD WBOOT! LXI ┆ 0x0b00e0…0b0100 44 2c 53 45 54 44 4d 41 21 20 44 41 44 20 44 21 20 50 43 48 4c 0d 0a 20 20 20 20 20 20 20 20 20 ┆D,SETDMA! DAD D! PCHL ┆ 0x0b0100…0b0120 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 52 45 41 44 3a ┆ ; DREAD:┆ 0x0b0120…0b0140 09 3b 50 45 52 46 4f 52 4d 20 52 45 41 44 20 4f 50 45 52 41 54 49 4f 4e 0d 0a 20 30 31 41 41 20 ┆ ;PERFORM READ OPERATION 01AA ┆ 0x0b0140…0b0160 32 41 30 31 30 30 31 31 32 34 09 4c 48 4c 44 20 57 42 4f 4f 54 21 20 4c 58 49 20 44 2c 52 45 41 ┆2A01001124 LHLD WBOOT! LXI D,REA┆ 0x0b0160…0b0180 44 46 21 20 44 41 44 20 44 21 20 50 43 48 4c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆DF! DAD D! PCHL ┆ 0x0b0180…0b01a0 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 57 52 49 54 45 3a 09 3b 50 45 52 ┆ ; DWRITE: ;PER┆ 0x0b01a0…0b01c0 46 4f 52 4d 20 57 52 49 54 45 20 4f 50 45 52 41 54 49 4f 4e 0d 0a 20 30 31 42 32 20 32 41 30 31 ┆FORM WRITE OPERATION 01B2 2A01┆ 0x0b01c0…0b01e0 30 30 31 31 32 37 09 4c 48 4c 44 20 57 42 4f 4f 54 21 20 4c 58 49 20 44 2c 57 52 49 54 46 21 20 ┆001127 LHLD WBOOT! LXI D,WRITF! ┆ 0x0b01e0…0b0200 44 41 44 20 44 21 20 50 43 48 4c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a ┆DAD D! PCHL ; ┆ 0x0b0200…0b0220 (46, 1, 15) 31 41 32 46 42 45 43 32 42 34 30 32 32 33 31 33 31 41 32 46 42 45 46 33 0d 0a 3a 31 30 30 32 37 ┆1A2FBEC2B40223131A2FBEF3 :10027┆ 0x0b0220…0b0240 35 30 30 43 32 42 34 30 32 32 33 31 33 30 44 43 32 36 41 30 32 43 31 44 31 45 35 45 42 32 41 38 ┆500C2B40223130DC26A02C1D1E5EB2A8┆ 0x0b0240…0b0260 31 30 36 37 44 0d 0a 3a 31 30 30 32 38 35 30 30 45 42 37 33 32 33 33 36 31 36 32 33 37 32 32 33 ┆1067D :10028500EB73233616237223┆ 0x0b0260…0b0280 33 36 30 30 32 33 45 42 32 41 41 31 30 36 45 42 45 34 0d 0a 3a 31 30 30 32 39 35 30 30 37 32 32 ┆360023EB2AA106EBE4 :10029500722┆ 0x0b0280…0b02a0 33 37 33 43 31 43 35 31 31 30 39 30 46 37 42 39 31 36 46 37 41 39 38 36 37 32 32 43 43 43 30 0d ┆373C1C511090F7B916F7A986722CCC0 ┆ 0x0b02a0…0b02c0 0a 3a 31 30 30 32 41 35 30 30 30 36 45 31 30 45 30 36 37 45 31 32 31 33 32 33 30 44 43 32 41 39 ┆ :1002A50006E10E067E1213230DC2A9┆ 0x0b02c0…0b02e0 30 32 43 33 33 30 30 33 43 31 35 37 0d 0a 3a 31 30 30 32 42 35 30 30 45 31 32 33 30 42 37 39 42 ┆02C33003C157 :1002B500E1230B79B┆ 0x0b02e0…0b0300 30 43 32 36 33 30 32 43 44 39 42 30 35 43 33 31 46 30 32 46 45 30 30 38 42 0d 0a 3a 31 30 30 32 ┆0C26302CD9B05C31F02FE008B :1002┆ 0x0b0300…0b0320 43 35 30 30 43 32 33 30 30 33 32 31 30 30 30 30 30 31 30 30 33 43 45 35 43 35 31 31 41 39 30 36 ┆C500C2300321000001003CE5C511A906┆ 0x0b0320…0b0340 30 45 30 43 35 32 0d 0a 3a 31 30 30 32 44 35 30 30 45 35 43 44 32 43 30 34 31 41 32 46 42 45 45 ┆0E0C52 :1002D500E5CD2C041A2FBEE┆ 0x0b0340…0b0360 31 43 32 32 31 30 33 32 33 31 33 45 35 43 44 32 43 35 35 0d 0a 3a 31 30 30 32 45 35 30 30 30 34 ┆1C221032313E5CD2C55 :1002E50004┆ 0x0b0360…0b0380 31 41 32 46 42 45 45 31 43 32 32 31 30 33 32 33 31 33 30 44 43 32 44 35 30 32 43 31 44 31 43 39 ┆1A2FBEE1C2210323130DC2D502C1D1C9┆ 0x0b0380…0b03a0 0d 0a 3a 31 30 30 32 46 35 30 30 45 35 43 44 35 41 30 34 45 31 45 42 32 41 43 43 30 36 31 39 37 ┆ :1002F500E5CD5A04E1EB2ACC06197┆ 0x0b03a0…0b03c0 44 42 37 43 32 32 41 30 33 45 42 46 41 0d 0a 3a 31 30 30 33 30 35 30 30 32 31 43 42 30 36 33 36 ┆DB7C22A03EBFA :1003050021CB0636┆ 0x0b03c0…0b03e0 30 30 33 34 37 42 44 36 30 30 34 37 37 41 44 45 30 44 44 41 31 41 30 33 39 38 0d 0a 3a 31 30 30 ┆00347BD600477ADE0DDA1A0398 :100┆ 0x0b03e0…0b0400 33 31 35 30 30 35 37 35 38 43 33 30 41 30 33 45 42 32 32 43 43 30 36 43 33 33 30 30 33 43 31 45 ┆315005758C30A03EB22CC06C33003C1E┆ 0x0b0400…0b0420 (47, 0, 1) 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4e 45 58 54 44 49 53 4b 3a 0d 0a 20 30 32 ┆ NEXTDISK: 02┆ 0x0b0420…0b0440 32 35 20 33 45 30 30 33 32 43 42 30 36 09 4d 56 49 20 41 2c 30 21 20 53 54 41 20 53 54 52 41 43 ┆25 3E0032CB06 MVI A,0! STA STRAC┆ 0x0b0440…0b0460 4b 20 3b 4d 41 52 4b 20 41 53 20 4d 4f 56 43 50 4d 2e 43 4f 4d 20 20 53 45 52 49 41 4c 49 5a 45 ┆K ;MARK AS MOVCPM.COM SERIALIZE┆ 0x0b0460…0b0480 44 0d 0a 20 30 32 32 41 20 43 44 32 37 30 35 43 44 34 31 09 43 41 4c 4c 20 43 55 52 4d 53 47 21 ┆D 022A CD2705CD41 CALL CURMSG!┆ 0x0b0480…0b04a0 20 43 41 4c 4c 20 41 53 45 52 4d 53 47 21 20 43 41 4c 4c 20 4e 45 57 4d 53 47 21 20 43 41 4c 4c ┆ CALL ASERMSG! CALL NEWMSG! CALL┆ 0x0b04a0…0b04c0 20 43 49 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 3b 4e 45 57 20 44 49 53 4b 20 ┆ CI ;NEW DISK ┆ 0x0b04c0…0b04e0 49 53 20 52 45 41 44 59 2c 20 54 52 59 20 54 48 45 20 43 4f 50 59 20 4f 50 45 52 41 54 49 4f 4e ┆IS READY, TRY THE COPY OPERATION┆ 0x0b04e0…0b0500 0d 0a 20 30 32 33 36 20 32 31 33 31 30 31 33 36 30 31 09 4c 58 49 20 48 2c 54 52 41 43 4b 21 20 ┆ 0236 2131013601 LXI H,TRACK! ┆ 0x0b0500…0b0520 4d 56 49 20 4d 2c 31 20 3b 43 4c 45 41 52 20 54 48 45 20 54 52 41 43 4b 20 4e 55 4d 42 45 52 0d ┆MVI M,1 ;CLEAR THE TRACK NUMBER ┆ 0x0b0520…0b0540 0a 20 30 32 33 42 20 32 31 38 45 30 36 33 36 33 30 09 4c 58 49 20 48 2c 54 52 43 4f 55 4e 54 21 ┆ 023B 218E063630 LXI H,TRCOUNT!┆ 0x0b0540…0b0560 20 4d 56 49 20 4d 2c 27 30 27 21 20 49 4e 58 20 48 21 20 4d 56 49 20 4d 2c 27 30 27 0d 0a 20 20 ┆ MVI M,'0'! INX H! MVI M,'0' ┆ 0x0b0560…0b0580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ; ┆ 0x0b0580…0b05a0 20 52 44 54 52 4b 3a 09 3b 52 45 41 44 20 54 48 45 20 4e 45 58 54 20 53 4f 55 52 43 45 20 54 52 ┆ RDTRK: ;READ THE NEXT SOURCE TR┆ 0x0b05a0…0b05c0 41 43 4b 2c 20 43 4f 4d 50 41 52 45 20 57 49 54 48 20 30 45 35 48 20 46 4f 52 20 45 4e 44 0d 0a ┆ACK, COMPARE WITH 0E5H FOR END ┆ 0x0b05c0…0b05e0 20 30 32 34 33 20 32 31 30 39 30 37 32 32 33 32 09 4c 58 49 20 48 2c 49 42 55 46 46 21 20 53 48 ┆ 0243 2109072232 LXI H,IBUFF! SH┆ 0x0b05e0…0b0600 4c 44 20 42 55 46 46 41 21 20 43 41 4c 4c 20 52 45 41 44 54 52 4b 0d 0a 20 30 32 34 43 20 43 41 ┆LD BUFFA! CALL READTRK 024C CA┆ 0x0b0600…0b0620 (47, 0, 2) 21 20 49 4e 58 20 44 21 20 49 4e 58 20 48 21 20 44 43 52 20 43 0d 0a 20 30 32 41 45 20 43 32 41 ┆! INX D! INX H! DCR C 02AE C2A┆ 0x0b0620…0b0640 39 30 32 20 20 20 20 09 09 09 4a 4e 5a 20 43 4f 50 59 30 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ┆902 JNZ COPY0 ┆ 0x0b0640…0b0660 20 20 20 20 20 09 09 3b 42 44 4f 53 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 20 49 53 20 43 4f ┆ ;BDOS SERIAL NUMBER IS CO┆ 0x0b0660…0b0680 50 49 45 44 0d 0a 20 30 32 42 31 20 43 33 33 30 30 33 20 20 20 20 09 09 4a 4d 50 20 52 44 54 52 ┆PIED 02B1 C33003 JMP RDTR┆ 0x0b0680…0b06a0 4b 4e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 3b 0d 0a 20 20 20 20 20 20 20 ┆KN ; ┆ 0x0b06a0…0b06c0 20 20 20 20 20 20 20 20 20 09 4e 4f 4d 41 54 43 48 3a 20 3b 54 52 59 20 46 4f 52 20 4e 45 58 54 ┆ NOMATCH: ;TRY FOR NEXT┆ 0x0b06c0…0b06e0 20 4d 41 54 43 48 0d 0a 20 30 32 42 34 20 43 31 45 31 32 33 30 42 37 39 09 09 50 4f 50 20 42 21 ┆ MATCH 02B4 C1E1230B79 POP B!┆ 0x0b06e0…0b0700 20 50 4f 50 20 48 21 20 49 4e 58 20 48 21 20 44 43 58 20 42 21 20 4d 4f 56 20 41 2c 43 21 20 4f ┆ POP H! INX H! DCX B! MOV A,C! O┆ 0x0b0700…0b0720 52 41 20 42 0d 0a 20 30 32 42 41 20 43 32 36 33 30 32 20 20 20 20 09 09 4a 4e 5a 20 53 45 41 52 ┆RA B 02BA C26302 JNZ SEAR┆ 0x0b0720…0b0740 43 48 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 3b 4e 4f 54 20 46 4f 55 4e 44 ┆CH ;NOT FOUND┆ 0x0b0740…0b0760 0d 0a 20 30 32 42 44 20 43 44 39 42 30 35 43 33 31 46 09 09 43 41 4c 4c 20 42 41 44 44 53 4b 21 ┆ 02BD CD9B05C31F CALL BADDSK!┆ 0x0b0760…0b0780 20 4a 4d 50 20 52 44 44 53 4b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 3b 0d 0a ┆ JMP RDDSK ; ┆ 0x0b0780…0b07a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 51 54 52 4b 33 3a 09 3b 49 53 20 54 48 49 53 ┆ QTRK3: ;IS THIS┆ 0x0b07a0…0b07c0 20 54 52 41 43 4b 20 4d 4f 56 54 52 4b 3f 20 49 46 20 53 4f 2c 20 4c 4f 4f 4b 20 46 4f 52 20 43 ┆ TRACK MOVTRK? IF SO, LOOK FOR C┆ 0x0b07c0…0b07e0 50 4d 2e 43 4f 4d 0d 0a 20 30 32 43 33 20 46 45 30 30 43 32 33 30 30 33 09 09 43 50 49 20 4d 4f ┆PM.COM 02C3 FE00C23003 CPI MO┆ 0x0b07e0…0b0800 56 54 52 4b 21 20 4a 4e 5a 20 52 44 54 52 4b 4e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆VTRK! JNZ RDTRKN ┆ 0x0b0800…0b0820 (47, 0, 3) 54 20 54 4f 20 4c 4f 57 45 52 20 56 41 4c 55 45 0d 0a 20 30 33 31 37 20 43 33 30 41 30 33 20 20 ┆T TO LOWER VALUE 0317 C30A03 ┆ 0x0b0820…0b0840 20 20 09 09 09 09 4a 4d 50 20 44 4c 4f 4f 50 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ JMP DLOOP ┆ 0x0b0840…0b0860 20 09 09 09 45 44 4c 4f 4f 50 3a 09 3b 44 2c 45 20 43 4f 4e 54 41 49 4e 20 4f 46 46 53 45 54 20 ┆ EDLOOP: ;D,E CONTAIN OFFSET ┆ 0x0b0860…0b0880 49 4e 54 4f 20 54 52 41 43 4b 20 53 54 52 41 43 4b 0d 0a 20 30 33 31 41 20 45 42 32 32 43 43 30 ┆INTO TRACK STRACK 031A EB22CC0┆ 0x0b0880…0b08a0 36 20 20 09 09 09 09 58 43 48 47 21 20 53 48 4c 44 20 53 44 49 46 46 0d 0a 20 30 33 31 45 20 43 ┆6 XCHG! SHLD SDIFF 031E C┆ 0x0b08a0…0b08c0 33 33 30 30 33 20 20 20 20 09 09 09 4a 4d 50 20 52 44 54 52 4b 4e 0d 0a 20 20 20 20 20 20 20 20 ┆33003 JMP RDTRKN ┆ 0x0b08c0…0b08e0 20 20 20 20 20 20 20 20 09 09 09 4e 4f 4d 41 54 33 3a 09 3b 4e 4f 20 4d 41 54 43 48 20 4f 4e 20 ┆ NOMAT3: ;NO MATCH ON ┆ 0x0b08e0…0b0900 43 55 52 52 45 4e 54 20 53 54 52 49 4e 47 0d 0a 20 30 33 32 31 20 43 31 45 31 32 33 30 42 20 20 ┆CURRENT STRING 0321 C1E1230B ┆ 0x0b0900…0b0920 09 09 09 50 4f 50 20 42 21 20 50 4f 50 20 48 21 20 49 4e 58 20 48 21 20 44 43 58 20 42 0d 0a 20 ┆ POP B! POP H! INX H! DCX B ┆ 0x0b0920…0b0940 30 33 32 35 20 37 38 42 31 43 32 43 45 30 32 09 09 09 4d 4f 56 20 41 2c 42 21 20 4f 52 41 20 43 ┆0325 78B1C2CE02 MOV A,B! ORA C┆ 0x0b0940…0b0960 21 20 4a 4e 5a 20 51 54 52 30 20 3b 46 4f 52 20 41 4e 4f 54 48 45 52 20 53 43 41 4e 0d 0a 20 20 ┆! JNZ QTR0 ;FOR ANOTHER SCAN ┆ 0x0b0960…0b0980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 09 3b 4e 4f 54 20 46 4f 55 4e 44 0d 0a 20 30 33 ┆ ;NOT FOUND 03┆ 0x0b0980…0b09a0 32 41 20 43 44 37 36 30 35 43 33 31 46 09 09 51 54 52 32 3a 09 43 41 4c 4c 20 42 41 44 43 4f 4d ┆2A CD7605C31F QTR2: CALL BADCOM┆ 0x0b09a0…0b09c0 21 20 4a 4d 50 20 52 44 44 53 4b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 3b ┆! JMP RDDSK ;┆ 0x0b09c0…0b09e0 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 52 44 54 52 4b 4e 3a 0d 0a 20 20 20 20 ┆ RDTRKN: ┆ 0x0b09e0…0b0a00 20 20 20 20 20 20 20 20 20 20 20 20 09 09 3b 43 48 45 43 4b 20 46 4f 52 20 4d 4f 56 43 50 4d 2e ┆ ;CHECK FOR MOVCPM.┆ 0x0b0a00…0b0a20 (47, 0, 4) 54 20 41 4e 44 20 43 59 43 4c 45 0d 0a 20 30 33 41 32 20 32 31 33 31 30 31 33 34 20 20 09 09 4c ┆T AND CYCLE 03A2 21310134 L┆ 0x0b0a20…0b0a40 58 49 20 48 2c 54 52 41 43 4b 21 20 49 4e 52 20 4d 0d 0a 20 30 33 41 36 20 32 31 38 46 30 36 33 ┆XI H,TRACK! INR M 03A6 218F063┆ 0x0b0a40…0b0a60 34 37 45 09 09 4c 58 49 20 48 2c 54 52 43 4f 55 4e 54 2b 31 21 20 49 4e 52 20 4d 21 20 4d 4f 56 ┆47E LXI H,TRCOUNT+1! INR M! MOV┆ 0x0b0a60…0b0a80 20 41 2c 4d 21 20 43 50 49 20 27 39 27 2b 31 0d 0a 20 30 33 41 44 20 44 41 34 33 30 32 20 20 20 ┆ A,M! CPI '9'+1 03AD DA4302 ┆ 0x0b0a80…0b0aa0 20 09 09 4a 43 20 52 44 54 52 4b 20 3b 4f 56 45 52 46 4c 4f 57 20 54 4f 20 48 49 47 48 20 4f 52 ┆ JC RDTRK ;OVERFLOW TO HIGH OR┆ 0x0b0aa0…0b0ac0 44 45 52 20 54 52 41 43 4b 20 4e 55 4d 42 45 52 0d 0a 20 30 33 42 30 20 33 36 33 30 32 42 33 34 ┆DER TRACK NUMBER 03B0 36302B34┆ 0x0b0ac0…0b0ae0 43 33 09 09 4d 56 49 20 4d 2c 27 30 27 21 20 44 43 58 20 48 21 20 49 4e 52 20 4d 21 20 4a 4d 50 ┆C3 MVI M,'0'! DCX H! INR M! JMP┆ 0x0b0ae0…0b0b00 20 52 44 54 52 4b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 3b 0d 0a 20 20 20 ┆ RDTRK ; ┆ 0x0b0b00…0b0b20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 57 52 45 52 52 3a 09 3b 56 45 52 49 46 59 20 45 52 52 ┆ WRERR: ;VERIFY ERR┆ 0x0b0b20…0b0b40 4f 52 0d 0a 20 30 33 42 37 20 43 44 43 37 30 35 43 33 32 35 09 09 43 41 4c 4c 20 56 45 52 45 52 ┆OR 03B7 CDC705C325 CALL VERER┆ 0x0b0b40…0b0b60 52 21 20 4a 4d 50 20 4e 45 58 54 44 49 53 4b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆R! JMP NEXTDISK ┆ 0x0b0b60…0b0b80 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 ┆ ; ; ┆ 0x0b0b80…0b0ba0 20 20 20 20 20 20 20 3b 09 55 54 49 4c 49 54 59 20 53 55 42 52 4f 55 54 49 4e 45 53 0d 0a 20 30 ┆ ; UTILITY SUBROUTINES 0┆ 0x0b0ba0…0b0bc0 33 42 44 20 30 45 30 31 43 33 30 35 30 30 43 49 3a 09 4d 56 49 20 43 2c 43 4f 4e 49 4e 21 20 4a ┆3BD 0E01C30500CI: MVI C,CONIN! J┆ 0x0b0bc0…0b0be0 4d 50 20 42 44 4f 53 20 3b 52 45 41 44 20 41 20 43 48 41 52 41 43 54 45 52 0d 0a 20 20 20 20 20 ┆MP BDOS ;READ A CHARACTER ┆ 0x0b0be0…0b0c00 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 30 33 43 32 20 30 45 30 39 43 33 30 35 30 30 50 52 ┆ ; 03C2 0E09C30500PR┆ 0x0b0c00…0b0c20 (47, 0, 5) 35 35 30 32 43 44 30 42 09 09 4a 5a 20 52 45 41 44 4f 4b 21 20 43 41 4c 4c 20 52 45 41 44 30 4d ┆5502CD0B JZ READOK! CALL READ0M┆ 0x0b0c20…0b0c40 53 47 21 20 4a 4d 50 20 52 44 44 53 4b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 ┆SG! JMP RDDSK ┆ 0x0b0c40…0b0c60 52 45 41 44 4f 4b 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 3b 54 52 41 43 4b ┆READOK: ;TRACK┆ 0x0b0c60…0b0c80 20 49 53 20 49 4e 20 4d 45 4d 4f 52 59 2c 20 54 52 41 43 4b 20 31 3f 0d 0a 20 30 32 35 35 20 33 ┆ IS IN MEMORY, TRACK 1? 0255 3┆ 0x0b0c80…0b0ca0 41 33 31 30 31 46 45 30 31 09 4c 44 41 20 54 52 41 43 4b 21 20 43 50 49 20 31 21 20 4a 4e 5a 20 ┆A3101FE01 LDA TRACK! CPI 1! JNZ ┆ 0x0b0ca0…0b0cc0 51 54 52 4b 33 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 3b 54 52 41 43 4b 20 ┆QTRK3 ;TRACK ┆ 0x0b0cc0…0b0ce0 30 2c 20 4c 4f 4f 4b 20 46 4f 52 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 0d 0a 20 30 32 35 44 ┆0, LOOK FOR SERIAL NUMBER 025D┆ 0x0b0ce0…0b0d00 20 32 31 30 39 30 37 30 31 30 30 09 09 4c 58 49 20 48 2c 43 43 50 56 21 20 4c 58 49 20 42 2c 53 ┆ 2109070100 LXI H,CCPV! LXI B,S┆ 0x0b0d00…0b0d20 4c 45 4e 0d 0a 20 30 32 36 33 20 45 35 43 35 31 31 41 39 30 36 09 09 53 45 41 52 43 48 3a 09 50 ┆LEN 0263 E5C511A906 SEARCH: P┆ 0x0b0d20…0b0d40 55 53 48 20 48 21 20 50 55 53 48 20 42 21 20 4c 58 49 20 44 2c 43 4f 4d 50 41 52 45 21 20 4d 56 ┆USH H! PUSH B! LXI D,COMPARE! MV┆ 0x0b0d40…0b0d60 49 20 43 2c 43 4f 4d 50 4c 45 4e 0d 0a 20 30 32 36 41 20 31 41 32 46 42 45 43 32 42 34 09 09 43 ┆I C,COMPLEN 026A 1A2FBEC2B4 C┆ 0x0b0d60…0b0d80 4f 4d 50 30 3a 09 4c 44 41 58 20 44 21 20 43 4d 41 21 20 43 4d 50 20 4d 21 20 4a 4e 5a 20 4e 4f ┆OMP0: LDAX D! CMA! CMP M! JNZ NO┆ 0x0b0d80…0b0da0 4d 41 54 43 48 0d 0a 20 30 32 37 30 20 32 33 31 33 31 41 32 46 42 45 09 09 09 49 4e 58 20 48 21 ┆MATCH 0270 23131A2FBE INX H!┆ 0x0b0da0…0b0dc0 20 49 4e 58 20 44 21 20 4c 44 41 58 20 44 21 20 43 4d 41 21 20 43 4d 50 20 4d 21 20 4a 4e 5a 20 ┆ INX D! LDAX D! CMA! CMP M! JNZ ┆ 0x0b0dc0…0b0de0 4e 4f 4d 41 54 43 48 0d 0a 20 30 32 37 38 20 32 33 31 33 30 44 43 32 36 41 09 09 09 49 4e 58 20 ┆NOMATCH 0278 23130DC26A INX ┆ 0x0b0de0…0b0e00 48 21 20 49 4e 58 20 44 21 20 44 43 52 20 43 21 20 4a 4e 5a 20 43 4f 4d 50 30 0d 0a 20 20 20 20 ┆H! INX D! DCR C! JNZ COMP0 ┆ 0x0b0e00…0b0e20 (47, 0, 6) 20 20 09 09 3b 4c 4f 4f 4b 20 46 4f 52 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 0d 0a 20 30 32 ┆ ;LOOK FOR SERIAL NUMBER 02┆ 0x0b0e20…0b0e40 43 38 20 32 31 30 30 30 30 30 31 30 30 09 09 4c 58 49 20 48 2c 30 21 20 4c 58 49 20 42 2c 54 52 ┆C8 2100000100 LXI H,0! LXI B,TR┆ 0x0b0e40…0b0e60 4c 45 4e 20 3b 54 52 41 43 4b 20 4c 45 4e 47 54 48 20 49 4e 20 42 2c 43 0d 0a 20 30 32 43 45 20 ┆LEN ;TRACK LENGTH IN B,C 02CE ┆ 0x0b0e60…0b0e80 45 35 43 35 20 20 20 20 20 20 09 09 51 54 52 30 3a 20 50 55 53 48 20 48 21 20 50 55 53 48 20 42 ┆E5C5 QTR0: PUSH H! PUSH B┆ 0x0b0e80…0b0ea0 20 3b 53 41 56 45 20 42 41 53 45 20 41 44 44 52 45 53 53 20 41 4e 44 20 4c 45 4e 47 54 48 0d 0a ┆ ;SAVE BASE ADDRESS AND LENGTH ┆ 0x0b0ea0…0b0ec0 20 30 32 44 30 20 31 31 41 39 30 36 30 45 30 43 09 09 09 4c 58 49 20 44 2c 43 4f 4d 50 41 52 45 ┆ 02D0 11A9060E0C LXI D,COMPARE┆ 0x0b0ec0…0b0ee0 21 20 4d 56 49 20 43 2c 43 4f 4d 50 4c 45 4e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆! MVI C,COMPLEN ┆ 0x0b0ee0…0b0f00 20 09 09 09 51 54 52 31 3a 20 3b 54 52 59 20 54 4f 20 4d 41 54 43 48 20 41 4e 4f 54 48 45 52 20 ┆ QTR1: ;TRY TO MATCH ANOTHER ┆ 0x0b0f00…0b0f20 43 48 41 52 0d 0a 20 30 32 44 35 20 45 35 43 44 32 43 30 34 31 41 09 09 09 09 50 55 53 48 20 48 ┆CHAR 02D5 E5CD2C041A PUSH H┆ 0x0b0f20…0b0f40 21 20 43 41 4c 4c 20 54 52 41 4e 53 4c 41 54 45 21 20 4c 44 41 58 20 44 0d 0a 20 30 32 44 41 20 ┆! CALL TRANSLATE! LDAX D 02DA ┆ 0x0b0f40…0b0f60 32 46 42 45 20 20 20 20 20 20 09 09 09 09 43 4d 41 21 20 43 4d 50 20 4d 21 20 3b 46 4c 41 47 53 ┆2FBE CMA! CMP M! ;FLAGS┆ 0x0b0f60…0b0f80 20 53 45 54 20 49 46 20 45 51 55 41 4c 0d 0a 20 30 32 44 43 20 45 31 43 32 32 31 30 33 20 20 09 ┆ SET IF EQUAL 02DC E1C22103 ┆ 0x0b0f80…0b0fa0 09 09 09 50 4f 50 20 48 21 20 4a 4e 5a 20 4e 4f 4d 41 54 33 0d 0a 20 30 32 45 30 20 32 33 31 33 ┆ POP H! JNZ NOMAT3 02E0 2313┆ 0x0b0fa0…0b0fc0 20 20 20 20 20 20 09 09 09 09 49 4e 58 20 48 21 20 49 4e 58 20 44 21 0d 0a 20 30 32 45 32 20 45 ┆ INX H! INX D! 02E2 E┆ 0x0b0fc0…0b0fe0 35 43 44 32 43 30 34 31 41 09 09 09 09 50 55 53 48 20 48 21 20 43 41 4c 4c 20 54 52 41 4e 53 4c ┆5CD2C041A PUSH H! CALL TRANSL┆ 0x0b0fe0…0b1000 41 54 45 21 20 4c 44 41 58 20 44 0d 0a 20 30 32 45 37 20 32 46 42 45 45 31 43 32 32 31 09 09 09 ┆ATE! LDAX D 02E7 2FBEE1C221 ┆ 0x0b1000…0b1020 (47, 0, 7) 43 4f 4d 20 53 45 52 49 41 4c 49 5a 41 54 49 4f 4e 0d 0a 20 30 33 33 30 20 32 31 43 42 30 36 37 ┆COM SERIALIZATION 0330 21CB067┆ 0x0b1020…0b1040 45 42 37 09 09 4c 58 49 20 48 2c 53 54 52 41 43 4b 21 20 4d 4f 56 20 41 2c 4d 21 20 4f 52 41 20 ┆EB7 LXI H,STRACK! MOV A,M! ORA ┆ 0x0b1040…0b1060 41 21 20 4a 5a 20 4e 4f 53 45 52 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 3b ┆A! JZ NOSER ;┆ 0x0b1060…0b1080 41 4c 52 45 41 44 59 20 53 45 52 49 41 4c 49 5a 45 44 20 49 46 20 53 54 52 41 43 4b 3d 30 0d 0a ┆ALREADY SERIALIZED IF STRACK=0 ┆ 0x0b1080…0b10a0 20 30 33 33 38 20 33 35 43 32 34 32 30 33 20 20 09 09 44 43 52 20 4d 21 20 4a 4e 5a 20 4e 4f 53 ┆ 0338 35C24203 DCR M! JNZ NOS┆ 0x0b10a0…0b10c0 45 52 20 3b 4e 4f 54 20 4f 4e 20 50 52 4f 50 45 52 20 54 52 41 43 4b 0d 0a 20 20 20 20 20 20 20 ┆ER ;NOT ON PROPER TRACK ┆ 0x0b10c0…0b10e0 20 20 20 20 20 20 20 20 20 09 09 3b 4f 4e 20 50 52 4f 50 45 52 20 54 52 41 43 4b 2c 20 53 44 49 ┆ ;ON PROPER TRACK, SDI┆ 0x0b10e0…0b1100 46 46 20 43 4f 4e 54 41 49 4e 53 20 49 4e 44 45 58 20 54 4f 20 42 44 4f 53 20 53 45 52 49 41 4c ┆FF CONTAINS INDEX TO BDOS SERIAL┆ 0x0b1100…0b1120 23 0d 0a 20 30 33 33 43 20 32 41 43 43 30 36 43 44 35 41 09 09 09 4c 48 4c 44 20 53 44 49 46 46 ┆# 033C 2ACC06CD5A LHLD SDIFF┆ 0x0b1120…0b1140 21 20 43 41 4c 4c 20 53 54 53 45 52 49 41 4c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆! CALL STSERIAL ┆ 0x0b1140…0b1160 20 09 4e 4f 53 45 52 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 3b 54 52 41 ┆ NOSER: ;TRA┆ 0x0b1160…0b1180 43 4b 20 49 4e 20 4d 45 4d 4f 52 59 2c 20 43 48 45 43 4b 20 46 4f 52 20 4c 41 53 54 20 54 52 41 ┆CK IN MEMORY, CHECK FOR LAST TRA┆ 0x0b1180…0b11a0 43 4b 0d 0a 20 30 33 34 32 20 32 31 30 39 30 37 30 31 30 30 09 09 4c 58 49 20 48 2c 49 42 55 46 ┆CK 0342 2109070100 LXI H,IBUF┆ 0x0b11a0…0b11c0 46 21 20 4c 58 49 20 42 2c 54 52 4c 45 4e 0d 0a 20 30 33 34 38 20 33 45 45 35 42 45 43 32 36 45 ┆F! LXI B,TRLEN 0348 3EE5BEC26E┆ 0x0b11c0…0b11e0 09 09 54 52 43 4f 4d 50 3a 09 4d 56 49 20 41 2c 30 45 35 48 21 20 43 4d 50 20 4d 21 20 4a 4e 5a ┆ TRCOMP: MVI A,0E5H! CMP M! JNZ┆ 0x0b11e0…0b1200 20 57 52 54 52 4b 0d 0a 20 30 33 34 45 20 32 33 30 42 37 39 42 30 43 32 09 09 09 49 4e 58 20 48 ┆ WRTRK 034E 230B79B0C2 INX H┆ 0x0b1200…0b1220 (47, 0, 8) 4d 53 47 3a 09 4d 56 49 20 43 2c 50 42 55 46 46 21 20 4a 4d 50 20 42 44 4f 53 20 3b 50 52 49 4e ┆MSG: MVI C,PBUFF! JMP BDOS ;PRIN┆ 0x0b1220…0b1240 54 20 41 20 42 55 46 46 45 52 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 ┆T A BUFFER ; ┆ 0x0b1240…0b1260 30 33 43 37 20 43 44 30 34 30 35 20 20 20 20 52 44 45 52 52 3a 09 43 41 4c 4c 20 49 4e 56 41 4c ┆03C7 CD0405 RDERR: CALL INVAL┆ 0x0b1260…0b1280 49 44 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 ┆ID ; ┆ 0x0b1280…0b12a0 20 20 20 20 20 20 20 52 45 41 44 3a 09 3b 52 45 41 44 20 43 4f 4e 53 54 41 4e 54 20 56 41 4c 55 ┆ READ: ;READ CONSTANT VALU┆ 0x0b12a0…0b12c0 45 20 54 4f 20 42 2c 43 0d 0a 20 30 33 43 41 20 31 31 43 31 30 36 30 45 30 41 09 4c 58 49 20 44 ┆E TO B,C 03CA 11C1060E0A LXI D┆ 0x0b12c0…0b12e0 2c 4d 41 58 4c 45 4e 21 20 4d 56 49 20 43 2c 52 44 42 55 46 46 21 20 43 41 4c 4c 20 42 44 4f 53 ┆,MAXLEN! MVI C,RDBUFF! CALL BDOS┆ 0x0b12e0…0b1300 20 3b 42 55 46 46 45 52 20 46 49 4c 4c 45 44 0d 0a 20 30 33 44 32 20 32 31 43 32 30 36 37 45 42 ┆ ;BUFFER FILLED 03D2 21C2067EB┆ 0x0b1300…0b1320 37 09 4c 58 49 20 48 2c 43 4f 4d 4c 45 4e 21 20 4d 4f 56 20 41 2c 4d 21 20 4f 52 41 20 41 21 20 ┆7 LXI H,COMLEN! MOV A,M! ORA A! ┆ 0x0b1320…0b1340 4a 5a 20 52 44 45 52 52 20 3b 4e 4f 4e 20 5a 45 52 4f 20 4c 45 4e 47 54 48 0d 0a 20 30 33 44 41 ┆JZ RDERR ;NON ZERO LENGTH 03DA┆ 0x0b1340…0b1360 20 32 33 35 46 31 36 30 30 31 39 09 49 4e 58 20 48 21 20 4d 4f 56 20 45 2c 41 21 20 4d 56 49 20 ┆ 235F160019 INX H! MOV E,A! MVI ┆ 0x0b1360…0b1380 44 2c 30 21 20 44 41 44 20 44 20 3b 48 2c 4c 20 41 44 44 52 45 53 53 20 4c 41 53 54 20 50 4f 53 ┆D,0! DAD D ;H,L ADDRESS LAST POS┆ 0x0b1380…0b13a0 2b 31 0d 0a 20 30 33 44 46 20 33 36 30 30 20 20 20 20 20 20 09 4d 56 49 20 4d 2c 30 20 3b 43 4c ┆+1 03DF 3600 MVI M,0 ;CL┆ 0x0b13a0…0b13c0 45 41 52 45 44 20 46 4f 52 20 45 4e 44 20 4f 46 20 53 43 41 4e 0d 0a 20 30 33 45 31 20 32 31 43 ┆EARED FOR END OF SCAN 03E1 21C┆ 0x0b13c0…0b13e0 33 30 36 30 31 30 30 09 4c 58 49 20 48 2c 43 42 55 46 46 21 20 4c 58 49 20 42 2c 30 0d 0a 20 30 ┆3060100 LXI H,CBUFF! LXI B,0 0┆ 0x0b13e0…0b1400 33 45 37 20 37 45 42 37 43 38 20 20 20 20 09 43 4f 4e 56 3a 09 4d 4f 56 20 41 2c 4d 21 20 4f 52 ┆3E7 7EB7C8 CONV: MOV A,M! OR┆ 0x0b1400…0b1420 (47, 0, 9) 20 20 20 20 20 20 20 20 20 20 20 20 09 09 3b 4d 41 54 43 48 20 43 4f 4d 50 4c 45 54 45 2c 20 57 ┆ ;MATCH COMPLETE, W┆ 0x0b1420…0b1440 45 20 48 41 56 45 20 46 4f 55 4e 44 20 54 48 45 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 0d 0a ┆E HAVE FOUND THE SERIAL NUMBER ┆ 0x0b1440…0b1460 20 30 32 37 45 20 43 31 44 31 20 20 20 20 20 20 09 09 50 4f 50 20 42 21 20 50 4f 50 20 44 20 3b ┆ 027E C1D1 POP B! POP D ;┆ 0x0b1460…0b1480 43 4c 45 41 52 53 20 53 54 41 43 4b 0d 0a 20 30 32 38 30 20 45 35 20 20 20 20 20 20 20 20 09 09 ┆CLEARS STACK 0280 E5 ┆ 0x0b1480…0b14a0 50 55 53 48 20 48 20 3b 53 41 56 45 20 41 20 43 4f 50 59 20 4f 46 20 54 48 45 20 53 54 41 52 54 ┆PUSH H ;SAVE A COPY OF THE START┆ 0x0b14a0…0b14c0 20 41 44 44 52 45 53 53 20 4f 46 20 54 48 45 20 53 45 52 20 23 0d 0a 20 30 32 38 31 20 45 42 32 ┆ ADDRESS OF THE SER # 0281 EB2┆ 0x0b14c0…0b14e0 41 38 31 30 36 45 42 09 09 78 63 68 67 20 21 20 6c 68 6c 64 20 4f 52 49 47 49 4e 21 20 78 63 68 ┆A8106EB xchg ! lhld ORIGIN! xch┆ 0x0b14e0…0b1500 67 21 20 4d 4f 56 20 4d 2c 65 20 3b 20 6c 6f 77 20 62 79 74 65 28 6f 72 69 67 69 6e 29 0d 0a 20 ┆g! MOV M,e ; low byte(origin) ┆ 0x0b1500…0b1520 30 32 38 37 20 32 33 33 36 31 36 20 20 20 20 09 09 49 4e 58 20 48 21 20 4d 56 49 20 4d 2c 56 45 ┆0287 233616 INX H! MVI M,VE┆ 0x0b1520…0b1540 52 53 49 4f 4e 20 3b 56 45 52 53 49 4f 4e 20 4e 55 4d 42 45 52 20 49 4e 20 42 49 4e 41 52 59 0d ┆RSION ;VERSION NUMBER IN BINARY ┆ 0x0b1540…0b1560 0a 20 30 32 38 41 20 32 33 37 32 20 20 20 20 20 20 09 09 69 6e 78 20 68 21 20 6d 6f 76 20 6d 2c ┆ 028A 2372 inx h! mov m,┆ 0x0b1560…0b1580 64 20 3b 20 68 69 67 68 20 62 79 74 65 28 6f 72 69 67 69 6e 29 0d 0a 20 30 32 38 43 20 32 33 33 ┆d ; high byte(origin) 028C 233┆ 0x0b1580…0b15a0 36 30 30 20 20 20 20 09 09 09 49 4e 58 20 48 21 20 4d 76 69 20 4d 2c 30 20 3b 20 6e 65 78 74 20 ┆600 INX H! Mvi M,0 ; next ┆ 0x0b15a0…0b15c0 62 79 74 65 20 7a 65 72 6f 65 64 20 28 6e 6f 74 20 75 73 65 64 20 79 65 74 29 0d 0a 20 30 32 38 ┆byte zeroed (not used yet) 028┆ 0x0b15c0…0b15e0 46 20 32 33 20 20 20 20 20 20 20 20 09 09 09 49 4e 58 20 48 20 3b 52 45 41 44 59 20 54 4f 20 41 ┆F 23 INX H ;READY TO A┆ 0x0b15e0…0b1600 43 43 45 50 54 20 54 48 45 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 0d 0a 20 30 32 39 30 20 45 ┆CCEPT THE SERIAL NUMBER 0290 E┆ 0x0b1600…0b1620 (47, 0, 10) 09 43 4d 41 21 20 43 4d 50 20 4d 21 20 50 4f 50 20 48 21 20 4a 4e 5a 20 4e 4f 4d 41 54 33 0d 0a ┆ CMA! CMP M! POP H! JNZ NOMAT3 ┆ 0x0b1620…0b1640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 09 09 3b 43 4f 4e 54 49 4e 55 45 20 54 4f ┆ ;CONTINUE TO┆ 0x0b1640…0b1660 20 4d 41 54 43 48 0d 0a 20 30 32 45 44 20 32 33 31 33 30 44 43 32 44 35 09 09 09 09 49 4e 58 20 ┆ MATCH 02ED 23130DC2D5 INX ┆ 0x0b1660…0b1680 48 21 20 49 4e 58 20 44 21 20 44 43 52 20 43 21 20 4a 4e 5a 20 51 54 52 31 0d 0a 20 20 20 20 20 ┆H! INX D! DCR C! JNZ QTR1 ┆ 0x0b1680…0b16a0 20 20 20 20 20 20 20 20 20 20 20 09 09 09 3b 43 4f 4d 50 4c 45 54 45 20 4d 41 54 43 48 2c 20 46 ┆ ;COMPLETE MATCH, F┆ 0x0b16a0…0b16c0 49 4c 4c 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 53 0d 0a 20 30 32 46 33 20 43 31 44 31 20 20 ┆ILL SERIAL NUMBERS 02F3 C1D1 ┆ 0x0b16c0…0b16e0 20 20 20 20 09 09 09 50 4f 50 20 42 21 20 50 4f 50 20 44 20 3b 54 4f 20 43 4c 45 41 52 20 54 48 ┆ POP B! POP D ;TO CLEAR TH┆ 0x0b16e0…0b1700 45 20 53 54 41 43 4b 0d 0a 20 30 32 46 35 20 45 35 20 20 20 20 20 20 20 20 09 09 09 50 55 53 48 ┆E STACK 02F5 E5 PUSH┆ 0x0b1700…0b1720 20 48 20 3b 53 41 56 45 20 53 4f 55 52 43 45 20 41 44 44 52 45 53 53 0d 0a 20 30 32 46 36 20 43 ┆ H ;SAVE SOURCE ADDRESS 02F6 C┆ 0x0b1720…0b1740 44 35 41 30 34 20 20 20 20 09 09 09 43 41 4c 4c 20 53 54 53 45 52 49 41 4c 20 3b 53 45 52 49 41 ┆D5A04 CALL STSERIAL ;SERIA┆ 0x0b1740…0b1760 4c 20 4e 55 4d 42 45 52 20 53 54 4f 52 45 44 0d 0a 20 30 32 46 39 20 45 31 20 20 20 20 20 20 20 ┆L NUMBER STORED 02F9 E1 ┆ 0x0b1760…0b1780 20 09 09 09 50 4f 50 20 48 20 3b 52 45 43 41 4c 4c 20 53 4f 55 52 43 45 20 41 44 44 52 45 53 53 ┆ POP H ;RECALL SOURCE ADDRESS┆ 0x0b1780…0b17a0 0d 0a 20 30 32 46 41 20 45 42 32 41 43 43 30 36 31 39 09 09 09 58 43 48 47 21 20 4c 48 4c 44 20 ┆ 02FA EB2ACC0619 XCHG! LHLD ┆ 0x0b17a0…0b17c0 53 44 49 46 46 21 20 44 41 44 20 44 20 3b 48 2c 4c 20 53 48 4f 55 4c 44 20 41 44 44 52 45 53 53 ┆SDIFF! DAD D ;H,L SHOULD ADDRESS┆ 0x0b17c0…0b17e0 20 53 45 52 23 32 0d 0a 20 30 32 46 46 20 37 44 42 37 43 32 32 41 30 33 09 09 09 4d 4f 56 20 41 ┆ SER#2 02FF 7DB7C22A03 MOV A┆ 0x0b17e0…0b1800 2c 4c 21 20 4f 52 41 20 41 21 20 4a 4e 5a 20 51 54 52 32 20 3b 4d 55 53 54 20 42 45 20 4c 4f 57 ┆,L! ORA A! JNZ QTR2 ;MUST BE LOW┆ 0x0b1800…0b1820 (47, 0, 11) 21 20 44 43 58 20 42 21 20 4d 4f 56 20 41 2c 43 21 20 4f 52 41 20 42 21 20 4a 4e 5a 20 54 52 43 ┆! DCX B! MOV A,C! ORA B! JNZ TRC┆ 0x0b1820…0b1840 4f 4d 50 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 3b 45 4e 44 20 4f 46 20 43 ┆OMP ;END OF C┆ 0x0b1840…0b1860 4f 50 59 2c 20 41 4c 4c 20 30 45 35 48 27 53 0d 0a 20 30 33 35 35 20 33 41 43 42 30 36 42 37 43 ┆OPY, ALL 0E5H'S 0355 3ACB06B7C┆ 0x0b1860…0b1880 41 09 09 4c 44 41 20 53 54 52 41 43 4b 21 20 4f 52 41 20 41 21 20 4a 5a 20 45 4e 44 43 4f 50 59 ┆A LDA STRACK! ORA A! JZ ENDCOPY┆ 0x0b1880…0b18a0 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 09 3b 4e 4f 54 20 5a 45 52 4f 2c 20 ┆ ;NOT ZERO, ┆ 0x0b18a0…0b18c0 43 4f 55 4c 44 20 4e 4f 54 20 46 49 4e 44 20 53 45 43 4f 4e 44 20 53 45 52 20 4e 55 4d 42 45 52 ┆COULD NOT FIND SECOND SER NUMBER┆ 0x0b18c0…0b18e0 0d 0a 20 30 33 35 43 20 43 44 37 36 30 35 43 33 31 46 09 09 09 43 41 4c 4c 20 42 41 44 43 4f 4d ┆ 035C CD7605C31F CALL BADCOM┆ 0x0b18e0…0b1900 21 20 4a 4d 50 20 52 44 44 53 4b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 45 ┆! JMP RDDSK E┆ 0x0b1900…0b1920 4e 44 43 4f 50 59 3a 0d 0a 20 30 33 36 32 20 31 31 38 43 30 36 43 44 43 32 09 09 4c 58 49 20 44 ┆NDCOPY: 0362 118C06CDC2 LXI D┆ 0x0b1920…0b1940 2c 54 52 4d 53 47 21 20 43 41 4c 4c 20 50 52 4d 53 47 0d 0a 20 30 33 36 38 20 43 44 30 39 30 34 ┆,TRMSG! CALL PRMSG 0368 CD0904┆ 0x0b1940…0b1960 43 33 32 35 09 09 43 41 4c 4c 20 49 4e 43 53 45 52 49 41 4c 21 20 4a 4d 50 20 4e 45 58 54 44 49 ┆C325 CALL INCSERIAL! JMP NEXTDI┆ 0x0b1960…0b1980 53 4b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 3b 0d 0a 20 20 20 20 20 20 20 20 ┆SK ; ┆ 0x0b1980…0b19a0 20 20 20 20 20 20 20 20 09 3b 4e 4f 54 20 45 4e 44 20 4f 46 20 43 4f 50 59 2c 20 57 52 49 54 45 ┆ ;NOT END OF COPY, WRITE┆ 0x0b19a0…0b19c0 20 54 52 41 43 4b 20 54 4f 20 44 49 53 4b 20 46 52 4f 4d 20 49 42 55 46 46 0d 0a 20 30 33 36 45 ┆ TRACK TO DISK FROM IBUFF 036E┆ 0x0b19c0…0b19e0 20 43 44 32 42 30 31 20 20 20 20 09 57 52 54 52 4b 3a 09 43 41 4c 4c 20 57 52 49 54 54 52 4b 0d ┆ CD2B01 WRTRK: CALL WRITTRK ┆ 0x0b19e0…0b1a00 0a 20 30 33 37 31 20 43 41 37 41 30 33 43 44 33 31 09 09 4a 5a 20 57 52 4f 4b 21 20 43 41 4c 4c ┆ 0371 CA7A03CD31 JZ WROK! CALL┆ 0x0b1a00…0b1a20 (47, 0, 12) 41 20 41 21 20 52 5a 20 3b 52 45 54 55 52 4e 20 49 46 20 45 4e 44 20 4f 46 20 43 4f 4e 56 45 52 ┆A A! RZ ;RETURN IF END OF CONVER┆ 0x0b1a20…0b1a40 54 0d 0a 20 30 33 45 41 20 44 36 33 30 46 45 30 41 44 32 09 09 53 55 49 20 27 30 27 21 20 43 50 ┆T 03EA D630FE0AD2 SUI '0'! CP┆ 0x0b1a40…0b1a60 49 20 31 30 21 20 4a 4e 43 20 52 44 45 52 52 0d 0a 20 30 33 46 31 20 45 35 43 35 45 31 20 20 20 ┆I 10! JNC RDERR 03F1 E5C5E1 ┆ 0x0b1a60…0b1a80 20 09 09 50 55 53 48 20 48 21 20 50 55 53 48 20 42 21 20 50 4f 50 20 48 20 3b 42 2c 43 20 43 4f ┆ PUSH H! PUSH B! POP H ;B,C CO┆ 0x0b1a80…0b1aa0 50 49 45 44 20 54 4f 20 48 2c 4c 0d 0a 20 30 33 46 34 20 32 39 32 39 32 39 30 39 30 39 09 09 44 ┆PIED TO H,L 03F4 2929290909 D┆ 0x0b1aa0…0b1ac0 41 44 20 48 21 20 44 41 44 20 48 21 20 44 41 44 20 48 21 20 44 41 44 20 42 21 20 44 41 44 20 42 ┆AD H! DAD H! DAD H! DAD B! DAD B┆ 0x0b1ac0…0b1ae0 0d 0a 20 30 33 46 39 20 45 35 43 31 45 31 20 20 20 20 09 09 50 55 53 48 20 48 21 20 50 4f 50 20 ┆ 03F9 E5C1E1 PUSH H! POP ┆ 0x0b1ae0…0b1b00 42 21 20 50 4f 50 20 48 20 3b 42 43 3d 42 43 2a 31 30 0d 0a 20 30 33 46 43 20 32 33 38 31 34 46 ┆B! POP H ;BC=BC*10 03FC 23814F┆ 0x0b1b00…0b1b20 33 45 30 30 09 09 49 4e 58 20 48 21 20 41 44 44 20 43 21 20 4d 4f 56 20 43 2c 41 21 20 4d 56 49 ┆3E00 INX H! ADD C! MOV C,A! MVI┆ 0x0b1b20…0b1b40 20 41 2c 30 21 20 41 44 43 20 42 21 20 4d 4f 56 20 42 2c 41 0d 0a 20 30 34 30 33 20 44 41 43 37 ┆ A,0! ADC B! MOV B,A 0403 DAC7┆ 0x0b1b40…0b1b60 30 33 43 33 45 37 09 09 4a 43 20 52 44 45 52 52 21 20 4a 4d 50 20 43 4f 4e 56 20 3b 54 45 53 54 ┆03C3E7 JC RDERR! JMP CONV ;TEST┆ 0x0b1b60…0b1b80 45 44 20 46 4f 52 20 4f 56 45 52 46 4c 4f 57 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ED FOR OVERFLOW ┆ 0x0b1b80…0b1ba0 20 09 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 4e 43 53 45 52 49 41 4c 3a 0d ┆ ; INCSERIAL: ┆ 0x0b1ba0…0b1bc0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 3b 49 4e 43 52 45 4d 45 4e 54 20 54 48 45 ┆ ;INCREMENT THE┆ 0x0b1bc0…0b1be0 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 0d 0a 20 30 34 30 39 20 32 41 41 31 30 36 32 33 32 32 ┆ SERIAL NUMBER 0409 2AA1062322┆ 0x0b1be0…0b1c00 09 4c 48 4c 44 20 42 53 45 52 49 41 4c 21 20 49 4e 58 20 48 21 20 53 48 4c 44 20 42 53 45 52 49 ┆ LHLD BSERIAL! INX H! SHLD BSERI┆ 0x0b1c00…0b1c20 (47, 0, 13) 42 32 41 41 31 30 36 45 42 09 09 58 43 48 47 21 20 4c 48 4c 44 20 42 53 45 52 49 41 4c 21 20 58 ┆B2AA106EB XCHG! LHLD BSERIAL! X┆ 0x0b1c20…0b1c40 43 48 47 21 20 4d 4f 56 20 4d 2c 44 21 20 49 4e 58 20 48 21 20 4d 4f 56 20 4d 2c 45 0d 0a 20 20 ┆CHG! MOV M,D! INX H! MOV M,E ┆ 0x0b1c40…0b1c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 3b 46 49 52 53 54 20 53 45 52 49 41 4c 20 4e 55 ┆ ;FIRST SERIAL NU┆ 0x0b1c60…0b1c80 4d 42 45 52 20 49 53 20 53 54 4f 52 45 44 2c 20 4e 4f 57 20 43 4f 50 59 20 54 4f 20 42 44 4f 53 ┆MBER IS STORED, NOW COPY TO BDOS┆ 0x0b1c80…0b1ca0 0d 0a 20 30 32 39 38 20 43 31 43 35 31 31 30 39 30 46 09 09 50 4f 50 20 42 21 20 50 55 53 48 20 ┆ 0298 C1C511090F POP B! PUSH ┆ 0x0b1ca0…0b1cc0 42 21 20 4c 58 49 20 44 2c 42 44 4f 53 56 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆B! LXI D,BDOSV ┆ 0x0b1cc0…0b1ce0 3b 09 09 43 4f 4d 50 55 54 45 20 44 49 46 46 45 52 45 4e 43 45 20 49 4e 20 41 44 44 52 45 53 53 ┆; COMPUTE DIFFERENCE IN ADDRESS┆ 0x0b1ce0…0b1d00 45 53 20 46 4f 52 20 4c 41 54 45 52 0d 0a 20 30 32 39 44 20 37 42 39 31 36 46 20 20 20 20 09 09 ┆ES FOR LATER 029D 7B916F ┆ 0x0b1d00…0b1d20 4d 4f 56 20 41 2c 45 21 20 53 55 42 20 43 21 20 4d 4f 56 20 4c 2c 41 0d 0a 20 30 32 41 30 20 37 ┆MOV A,E! SUB C! MOV L,A 02A0 7┆ 0x0b1d20…0b1d40 41 39 38 36 37 32 32 43 43 09 09 4d 4f 56 20 41 2c 44 21 20 53 42 42 20 42 21 20 4d 4f 56 20 48 ┆A986722CC MOV A,D! SBB B! MOV H┆ 0x0b1d40…0b1d60 2c 41 21 20 53 48 4c 44 20 53 44 49 46 46 0d 0a 20 30 32 41 36 20 45 31 30 45 30 36 20 20 20 20 ┆,A! SHLD SDIFF 02A6 E10E06 ┆ 0x0b1d60…0b1d80 09 09 50 4f 50 20 48 21 20 4d 56 49 20 43 2c 36 20 3b 4c 45 4e 47 54 48 20 4f 46 20 53 45 52 49 ┆ POP H! MVI C,6 ;LENGTH OF SERI┆ 0x0b1d80…0b1da0 41 4c 20 4e 55 4d 42 45 52 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 09 09 48 2c ┆AL NUMBER ; H,┆ 0x0b1da0…0b1dc0 4c 20 41 44 44 52 45 53 53 20 53 54 41 52 54 20 4f 46 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 ┆L ADDRESS START OF SERIAL NUMBER┆ 0x0b1dc0…0b1de0 2c 20 44 2c 45 20 41 44 44 52 45 53 53 20 53 45 43 4f 4e 44 20 23 0d 0a 20 30 32 41 39 20 37 45 ┆, D,E ADDRESS SECOND # 02A9 7E┆ 0x0b1de0…0b1e00 31 32 31 33 32 33 30 44 09 09 43 4f 50 59 30 3a 20 4d 4f 56 20 41 2c 4d 21 20 53 54 41 58 20 44 ┆1213230D COPY0: MOV A,M! STAX D┆ 0x0b1e00…0b1e20 (47, 0, 14) 20 5a 45 52 4f 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 09 3b 53 45 54 55 50 ┆ ZERO ;SETUP┆ 0x0b1e20…0b1e40 20 53 54 52 41 43 4b 20 54 4f 20 53 45 52 49 41 4c 49 5a 45 20 57 48 45 4e 20 50 52 4f 50 45 52 ┆ STRACK TO SERIALIZE WHEN PROPER┆ 0x0b1e40…0b1e60 20 54 52 4b 20 46 4f 55 4e 44 0d 0a 20 30 33 30 34 20 45 42 32 31 43 42 30 36 20 20 09 09 09 58 ┆ TRK FOUND 0304 EB21CB06 X┆ 0x0b1e60…0b1e80 43 48 47 21 20 4c 58 49 20 48 2c 53 54 52 41 43 4b 20 3b 44 49 46 46 45 52 45 4e 43 45 20 49 4e ┆CHG! LXI H,STRACK ;DIFFERENCE IN┆ 0x0b1e80…0b1ea0 20 44 2c 45 0d 0a 20 30 33 30 38 20 33 36 30 30 20 20 20 20 20 20 09 09 09 4d 56 49 20 4d 2c 30 ┆ D,E 0308 3600 MVI M,0┆ 0x0b1ea0…0b1ec0 20 3b 43 4f 55 4e 54 20 53 54 52 41 43 4b 20 55 50 20 46 4f 52 20 45 41 43 48 20 54 52 41 43 4b ┆ ;COUNT STRACK UP FOR EACH TRACK┆ 0x0b1ec0…0b1ee0 20 53 49 5a 45 0d 0a 20 30 33 30 41 20 33 34 20 20 20 20 20 20 20 20 09 09 09 44 4c 4f 4f 50 3a ┆ SIZE 030A 34 DLOOP:┆ 0x0b1ee0…0b1f00 20 49 4e 52 20 4d 20 3b 53 54 52 41 43 4b 20 3d 20 53 54 52 41 43 4b 20 2b 20 31 0d 0a 20 30 33 ┆ INR M ;STRACK = STRACK + 1 03┆ 0x0b1f00…0b1f20 30 42 20 37 42 44 36 30 30 20 20 20 20 09 09 09 09 4d 4f 56 20 41 2c 45 21 20 53 55 49 20 28 32 ┆0B 7BD600 MOV A,E! SUI (2┆ 0x0b1f20…0b1f40 36 2a 31 32 38 29 20 41 4e 44 20 30 46 46 48 0d 0a 20 30 33 30 45 20 34 37 20 20 20 20 20 20 20 ┆6*128) AND 0FFH 030E 47 ┆ 0x0b1f40…0b1f60 20 09 09 09 09 4d 4f 56 20 42 2c 41 20 3b 53 41 56 45 20 4c 4f 57 20 4f 52 44 45 52 20 44 49 46 ┆ MOV B,A ;SAVE LOW ORDER DIF┆ 0x0b1f60…0b1f80 46 45 52 45 4e 43 45 0d 0a 20 30 33 30 46 20 37 41 44 45 30 44 20 20 20 20 09 09 09 09 4d 4f 56 ┆FERENCE 030F 7ADE0D MOV┆ 0x0b1f80…0b1fa0 20 41 2c 44 21 20 53 42 49 20 28 32 36 2a 31 32 38 29 20 53 48 52 20 38 0d 0a 20 30 33 31 32 20 ┆ A,D! SBI (26*128) SHR 8 0312 ┆ 0x0b1fa0…0b1fc0 44 41 31 41 30 33 20 20 20 20 09 09 09 09 4a 43 20 45 44 4c 4f 4f 50 20 3b 43 41 52 52 59 20 49 ┆DA1A03 JC EDLOOP ;CARRY I┆ 0x0b1fc0…0b1fe0 46 20 54 4f 4f 20 4d 41 4e 59 20 53 55 42 54 52 41 43 54 53 0d 0a 20 30 33 31 35 20 35 37 35 38 ┆F TOO MANY SUBTRACTS 0315 5758┆ 0x0b1fe0…0b2000 20 20 20 20 20 20 09 09 09 09 4d 4f 56 20 44 2c 41 21 20 4d 4f 56 20 45 2c 42 20 3b 52 45 53 45 ┆ MOV D,A! MOV E,B ;RESE┆ 0x0b2000…0b2020 (47, 0, 15) 20 57 52 49 54 45 30 4d 53 47 21 20 4a 4d 50 20 4e 45 58 54 44 49 53 4b 0d 0a 20 20 20 20 20 20 ┆ WRITE0MSG! JMP NEXTDISK ┆ 0x0b2020…0b2040 20 20 20 20 20 20 20 20 20 20 09 57 52 4f 4b 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ WROK: ┆ 0x0b2040…0b2060 20 20 09 09 3b 57 52 49 54 54 45 4e 20 54 4f 20 44 49 53 4b 2c 20 4e 4f 57 20 52 45 41 44 20 49 ┆ ;WRITTEN TO DISK, NOW READ I┆ 0x0b2060…0b2080 54 20 42 41 43 4b 20 41 4e 44 20 43 4f 4d 50 41 52 45 0d 0a 20 30 33 37 41 20 32 31 30 39 34 33 ┆T BACK AND COMPARE 037A 210943┆ 0x0b2080…0b20a0 32 32 33 32 09 09 4c 58 49 20 48 2c 4f 42 55 46 46 21 20 53 48 4c 44 20 42 55 46 46 41 21 20 43 ┆2232 LXI H,OBUFF! SHLD BUFFA! C┆ 0x0b20a0…0b20c0 41 4c 4c 20 52 45 52 45 41 44 0d 0a 20 30 33 38 33 20 43 41 38 43 30 33 43 44 35 38 09 09 09 4a ┆ALL REREAD 0383 CA8C03CD58 J┆ 0x0b20c0…0b20e0 5a 20 52 45 41 44 31 4f 4b 21 20 43 41 4c 4c 20 52 45 41 44 31 4d 53 47 21 20 4a 4d 50 20 4e 45 ┆Z READ1OK! CALL READ1MSG! JMP NE┆ 0x0b20e0…0b2100 58 54 44 49 53 4b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 52 45 41 44 31 4f ┆XTDISK READ1O┆ 0x0b2100…0b2120 4b 3a 0d 0a 20 30 33 38 43 20 32 31 30 39 30 37 31 31 30 39 09 09 4c 58 49 20 48 2c 49 42 55 46 ┆K: 038C 2109071109 LXI H,IBUF┆ 0x0b2120…0b2140 46 21 20 4c 58 49 20 44 2c 4f 42 55 46 46 21 20 4c 58 49 20 42 2c 54 52 4c 45 4e 0d 0a 20 30 33 ┆F! LXI D,OBUFF! LXI B,TRLEN 03┆ 0x0b2140…0b2160 39 35 20 31 41 42 45 43 32 42 37 30 33 09 09 57 52 43 4f 4d 50 3a 20 4c 44 41 58 20 44 21 20 43 ┆95 1ABEC2B703 WRCOMP: LDAX D! C┆ 0x0b2160…0b2180 4d 50 20 4d 21 20 4a 4e 5a 20 57 52 45 52 52 0d 0a 20 30 33 39 41 20 32 33 31 33 30 42 37 39 42 ┆MP M! JNZ WRERR 039A 23130B79B┆ 0x0b2180…0b21a0 30 09 09 09 49 4e 58 20 48 21 20 49 4e 58 20 44 21 20 44 43 58 20 42 21 20 4d 4f 56 20 41 2c 43 ┆0 INX H! INX D! DCX B! MOV A,C┆ 0x0b21a0…0b21c0 21 20 4f 52 41 20 42 0d 0a 20 30 33 39 46 20 43 32 39 35 30 33 20 20 20 20 09 09 09 4a 4e 5a 20 ┆! ORA B 039F C29503 JNZ ┆ 0x0b21c0…0b21e0 57 52 43 4f 4d 50 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 3b 43 4f 4d 50 41 ┆WRCOMP ;COMPA┆ 0x0b21e0…0b2200 52 45 20 57 45 4e 54 20 4f 4b 2c 20 49 4e 43 52 45 4d 45 4e 54 20 54 52 41 43 4b 20 43 4f 55 4e ┆RE WENT OK, INCREMENT TRACK COUN┆ 0x0b2200…0b2220 (47, 1, 1) 41 4c 20 3b 54 45 53 54 20 46 4f 52 20 4f 56 45 52 46 4c 4f 57 0d 0a 20 30 34 31 30 20 37 44 42 ┆AL ;TEST FOR OVERFLOW 0410 7DB┆ 0x0b2220…0b2240 34 43 41 32 36 30 34 09 4d 4f 56 20 41 2c 4c 21 20 4f 52 41 20 48 21 20 4a 5a 20 53 45 52 4f 56 ┆4CA2604 MOV A,L! ORA H! JZ SEROV┆ 0x0b2240…0b2260 45 52 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 3b 0d 0a 20 30 34 31 35 20 32 31 ┆ER ; 0415 21┆ 0x0b2260…0b2280 41 37 30 36 30 36 30 35 09 4c 58 49 20 48 2c 41 53 45 52 49 41 4c 2b 34 21 20 4d 56 49 20 42 2c ┆A7060605 LXI H,ASERIAL+4! MVI B,┆ 0x0b2280…0b22a0 35 20 3b 4c 45 4e 47 54 48 20 4f 46 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 0d 0a 20 30 34 31 ┆5 ;LENGTH OF SERIAL NUMBER 041┆ 0x0b22a0…0b22c0 41 20 33 34 37 45 46 45 33 41 44 38 09 49 4e 43 30 3a 09 49 4e 52 20 4d 21 20 4d 4f 56 20 41 2c ┆A 347EFE3AD8 INC0: INR M! MOV A,┆ 0x0b22c0…0b22e0 4d 21 20 43 50 49 20 27 39 27 2b 31 21 20 52 43 20 3b 52 45 54 55 52 4e 20 49 46 20 4e 4f 20 43 ┆M! CPI '9'+1! RC ;RETURN IF NO C┆ 0x0b22e0…0b2300 41 52 52 59 0d 0a 20 30 34 31 46 20 33 36 33 30 20 20 20 20 20 20 09 09 4d 56 49 20 4d 2c 27 30 ┆ARRY 041F 3630 MVI M,'0┆ 0x0b2300…0b2320 27 20 3b 43 4c 45 41 52 20 54 48 45 20 4e 55 4d 42 45 52 0d 0a 20 30 34 32 31 20 32 42 30 35 43 ┆' ;CLEAR THE NUMBER 0421 2B05C┆ 0x0b2320…0b2340 32 31 41 30 34 09 09 44 43 58 20 48 21 20 44 43 52 20 42 21 20 4a 4e 5a 20 49 4e 43 30 0d 0a 20 ┆21A04 DCX H! DCR B! JNZ INC0 ┆ 0x0b2340…0b2360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ; ┆ 0x0b2360…0b2380 20 20 20 09 53 45 52 4f 56 45 52 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 ┆ SEROVER: ┆ 0x0b2380…0b23a0 3b 4f 56 45 52 46 4c 4f 57 20 49 4e 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 0d 0a 20 30 34 32 ┆;OVERFLOW IN SERIAL NUMBER 042┆ 0x0b23a0…0b23c0 36 20 43 44 45 43 30 35 20 20 20 20 09 09 43 41 4c 4c 20 4f 56 45 52 4d 53 47 0d 0a 20 30 34 32 ┆6 CDEC05 CALL OVERMSG 042┆ 0x0b23c0…0b23e0 39 20 43 33 30 30 30 30 20 20 20 20 09 09 4a 4d 50 20 42 4f 4f 54 0d 0a 20 20 20 20 20 20 20 20 ┆9 C30000 JMP BOOT ┆ 0x0b23e0…0b2400 20 20 20 20 20 20 20 20 09 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 54 52 41 4e ┆ ; TRAN┆ 0x0b2400…0b2420 (47, 1, 2) 34 45 35 34 35 32 34 46 34 43 32 30 34 34 34 39 45 44 0d 0a 3a 31 30 30 34 39 35 30 30 35 33 34 ┆4E54524F4C204449ED :10049500534┆ 0x0b2420…0b2440 42 34 35 35 34 35 34 34 35 32 30 34 39 34 45 32 30 34 31 32 43 32 30 35 34 35 39 35 30 32 36 0d ┆B4554544520494E20412C2054595026 ┆ 0x0b2440…0b2460 0a 3a 31 30 30 34 41 35 30 30 34 35 32 30 35 32 34 35 35 34 35 35 35 32 34 45 32 34 31 31 42 34 ┆ :1004A500452052455455524E2411B4┆ 0x0b2460…0b2480 30 34 43 33 43 32 30 33 30 44 38 30 0d 0a 3a 31 30 30 34 42 35 30 30 30 41 34 33 35 30 32 46 34 ┆04C3C2030D80 :1004B5000A43502F4┆ 0x0b2480…0b24a0 44 32 30 35 36 34 35 35 32 32 30 33 32 32 45 33 32 32 30 35 33 34 35 41 37 0d 0a 3a 31 30 30 34 ┆D2056455220322E32205345A7 :1004┆ 0x0b24a0…0b24c0 43 35 30 30 35 32 34 39 34 31 34 43 34 39 35 41 34 31 35 34 34 39 34 46 34 45 32 43 30 44 30 41 ┆C5005249414C495A4154494F4E2C0D0A┆ 0x0b24c0…0b24e0 34 46 35 32 46 44 0d 0a 3a 31 30 30 34 44 35 30 30 34 39 34 37 34 39 34 45 32 30 34 45 35 35 34 ┆4F52FD :1004D5004947494E204E554┆ 0x0b24e0…0b2500 44 34 32 34 35 35 32 33 46 32 30 32 34 31 31 45 39 38 41 0d 0a 3a 31 30 30 34 45 35 30 30 30 34 ┆D4245523F202411E98A :1004E50004┆ 0x0b2500…0b2520 43 33 43 32 30 33 30 44 30 41 35 33 35 34 34 31 35 32 35 34 34 39 34 45 34 37 32 30 35 33 38 35 ┆C3C2030D0A5354415254494E47205385┆ 0x0b2520…0b2540 0d 0a 3a 31 30 30 34 46 35 30 30 34 35 35 32 34 39 34 31 34 43 32 30 34 45 35 35 34 44 34 32 34 ┆ :1004F500455249414C204E554D424┆ 0x0b2540…0b2560 35 35 32 33 46 32 30 32 34 31 31 30 44 0d 0a 3a 31 30 30 35 30 35 30 30 30 41 30 35 43 33 43 32 ┆5523F2024110D :100505000A05C3C2┆ 0x0b2560…0b2580 30 33 30 44 30 41 34 39 34 45 35 36 34 31 34 43 34 39 34 34 32 30 34 45 43 33 0d 0a 3a 31 30 30 ┆030D0A494E56414C4944204EC3 :100┆ 0x0b2580…0b25a0 35 31 35 30 30 35 35 34 44 34 32 34 35 35 32 32 43 32 30 35 34 35 32 35 39 32 30 34 31 34 37 34 ┆51500554D4245522C205452592041474┆ 0x0b25a0…0b25c0 31 34 39 34 45 39 30 0d 0a 3a 31 30 30 35 32 35 30 30 32 30 32 34 31 31 32 44 30 35 43 33 43 32 ┆1494E90 :100525002024112D05C3C2┆ 0x0b25c0…0b25e0 30 33 30 44 30 41 35 33 34 35 35 32 34 39 34 31 34 43 45 30 0d 0a 3a 31 30 30 35 33 35 30 30 34 ┆030D0A53455249414CE0 :100535004┆ 0x0b25e0…0b2600 39 35 41 34 39 34 45 34 37 32 30 34 34 34 39 35 33 34 42 32 30 32 34 31 31 38 35 30 36 43 44 33 ┆95A494E47204449534B2024118506CD3┆ 0x0b2600…0b2620 (47, 1, 3) 20 20 20 20 20 20 20 09 3b 4e 4f 57 20 4d 4f 56 45 20 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 20 ┆ ;NOW MOVE SERIAL NUMBER ┆ 0x0b2620…0b2640 54 4f 20 4c 41 53 54 20 54 57 4f 20 42 59 54 45 53 0d 0a 20 30 34 36 46 20 31 31 41 32 30 36 20 ┆TO LAST TWO BYTES 046F 11A206 ┆ 0x0b2640…0b2660 20 20 20 09 4c 58 49 20 44 2c 42 53 45 52 49 41 4c 2b 31 20 3b 41 44 44 52 45 53 53 20 48 49 47 ┆ LXI D,BSERIAL+1 ;ADDRESS HIG┆ 0x0b2660…0b2680 48 20 4f 52 44 45 52 20 50 4f 53 49 54 49 4f 4e 20 4f 46 20 53 45 52 20 23 0d 0a 20 30 34 37 32 ┆H ORDER POSITION OF SER # 0472┆ 0x0b2680…0b26a0 20 31 41 43 44 34 45 30 34 20 20 09 4c 44 41 58 20 44 21 20 43 41 4c 4c 20 53 54 42 59 54 45 0d ┆ 1ACD4E04 LDAX D! CALL STBYTE ┆ 0x0b26a0…0b26c0 0a 20 30 34 37 36 20 31 42 20 20 20 20 20 20 20 20 09 44 43 58 20 44 20 3b 41 44 44 52 45 53 53 ┆ 0476 1B DCX D ;ADDRESS┆ 0x0b26c0…0b26e0 20 4c 4f 57 20 4f 52 44 45 52 20 42 59 54 45 0d 0a 20 30 34 37 37 20 31 41 43 44 34 45 30 34 20 ┆ LOW ORDER BYTE 0477 1ACD4E04 ┆ 0x0b26e0…0b2700 20 09 4c 44 41 58 20 44 21 20 43 41 4c 4c 20 53 54 42 59 54 45 0d 0a 20 30 34 37 42 20 43 39 20 ┆ LDAX D! CALL STBYTE 047B C9 ┆ 0x0b2700…0b2720 20 20 20 20 20 20 20 09 52 45 54 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a ┆ RET ; ┆ 0x0b2720…0b2740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ; ┆ 0x0b2740…0b2760 20 20 20 3b 09 50 52 49 4e 54 20 53 54 52 49 4e 47 53 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ; PRINT STRINGS ┆ 0x0b2760…0b2780 20 20 20 20 49 4e 53 4d 53 47 3a 0d 0a 20 30 34 37 43 20 31 31 38 32 30 34 43 33 43 32 09 4c 58 ┆ INSMSG: 047C 118204C3C2 LX┆ 0x0b2780…0b27a0 49 20 44 2c 24 2b 36 21 20 4a 4d 50 20 50 52 4d 53 47 0d 0a 20 30 34 38 32 20 30 44 30 41 34 39 ┆I D,$+6! JMP PRMSG 0482 0D0A49┆ 0x0b27a0…0b27c0 34 45 35 33 09 44 42 20 43 52 2c 4c 46 2c 27 49 4e 53 45 52 54 20 43 4f 4e 54 52 4f 4c 20 44 49 ┆4E53 DB CR,LF,'INSERT CONTROL DI┆ 0x0b27c0…0b27e0 53 4b 45 54 54 45 20 49 4e 20 41 2c 20 54 59 50 45 20 52 45 54 55 52 4e 24 27 0d 0a 20 20 20 20 ┆SKETTE IN A, TYPE RETURN$' ┆ 0x0b27e0…0b2800 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4f ┆ ; O┆ 0x0b2800…0b2820 (47, 1, 4) 20 44 2c 24 2b 36 21 20 4a 4d 50 20 50 52 4d 53 47 0d 0a 20 30 36 31 31 20 30 44 30 41 34 35 35 ┆ D,$+6! JMP PRMSG 0611 0D0A455┆ 0x0b2820…0b2840 32 35 32 09 44 42 20 43 52 2c 4c 46 2c 27 45 52 52 4f 52 20 4f 4e 20 53 4f 55 52 43 45 20 44 49 ┆252 DB CR,LF,'ERROR ON SOURCE DI┆ 0x0b2840…0b2860 53 4b 2c 20 52 45 50 4c 41 43 45 24 27 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b ┆SK, REPLACE$' ;┆ 0x0b2860…0b2880 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 57 52 49 54 45 30 4d 53 47 3a 0d 0a 20 30 ┆ WRITE0MSG: 0┆ 0x0b2880…0b28a0 36 33 31 20 31 31 33 37 30 36 43 33 43 32 09 4c 58 49 20 44 2c 24 2b 36 21 20 4a 4d 50 20 50 52 ┆631 113706C3C2 LXI D,$+6! JMP PR┆ 0x0b28a0…0b28c0 4d 53 47 0d 0a 20 30 36 33 37 20 30 44 30 41 34 33 34 31 34 45 09 44 42 20 43 52 2c 4c 46 2c 27 ┆MSG 0637 0D0A43414E DB CR,LF,'┆ 0x0b28c0…0b28e0 43 41 4e 4e 4f 54 20 57 52 49 54 45 20 4e 45 57 20 44 49 53 4b 2c 20 52 45 50 4c 41 43 45 24 27 ┆CANNOT WRITE NEW DISK, REPLACE$'┆ 0x0b28e0…0b2900 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ┆ ; ┆ 0x0b2900…0b2920 20 20 20 20 20 52 45 41 44 31 4d 53 47 3a 0d 0a 20 30 36 35 38 20 31 31 35 45 30 36 43 33 43 32 ┆ READ1MSG: 0658 115E06C3C2┆ 0x0b2920…0b2940 09 4c 58 49 20 44 2c 24 2b 36 21 20 4a 4d 50 20 50 52 4d 53 47 0d 0a 20 30 36 35 45 20 30 44 30 ┆ LXI D,$+6! JMP PRMSG 065E 0D0┆ 0x0b2940…0b2960 41 34 33 34 31 34 45 09 44 42 20 43 52 2c 4c 46 2c 27 43 41 4e 4e 4f 54 20 52 45 2d 52 45 41 44 ┆A43414E DB CR,LF,'CANNOT RE-READ┆ 0x0b2960…0b2980 20 4e 45 57 20 44 49 53 4b 2c 20 52 45 50 4c 41 43 45 24 27 0d 0a 20 20 20 20 20 20 20 20 20 20 ┆ NEW DISK, REPLACE$' ┆ 0x0b2980…0b29a0 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 ┆ ; ; ┆ 0x0b29a0…0b29c0 20 20 20 20 20 20 20 20 20 20 20 20 3b 09 4d 49 53 43 45 4c 4c 41 4e 45 4f 55 53 20 44 41 54 41 ┆ ; MISCELLANEOUS DATA┆ 0x0b29c0…0b29e0 20 41 52 45 41 53 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 30 36 38 31 ┆ AREAS ; 0681┆ 0x0b29e0…0b2a00 20 20 20 20 20 20 20 20 20 20 20 4f 52 49 47 49 4e 3a 09 44 53 09 32 09 3b 42 49 4e 41 52 59 20 ┆ ORIGIN: DS 2 ;BINARY ┆ 0x0b2a00…0b2a20 (47, 1, 5) 53 4c 41 54 45 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 3b 54 52 41 4e 53 4c ┆SLATE: ;TRANSL┆ 0x0b2a20…0b2a40 41 54 45 20 54 48 45 20 52 45 4c 41 54 49 56 45 20 41 44 44 52 45 53 53 20 49 4e 20 48 2c 4c 20 ┆ATE THE RELATIVE ADDRESS IN H,L ┆ 0x0b2a40…0b2a60 54 4f 20 41 42 53 4f 4c 55 54 45 20 41 44 44 52 45 53 53 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ┆TO ABSOLUTE ADDRESS ┆ 0x0b2a60…0b2a80 20 20 20 20 20 09 3b 49 4e 20 49 42 55 46 46 2c 20 41 53 53 55 4d 49 4e 47 20 53 45 43 54 4f 52 ┆ ;IN IBUFF, ASSUMING SECTOR┆ 0x0b2a80…0b2aa0 53 20 41 52 45 20 53 4b 45 57 45 44 0d 0a 20 30 34 32 43 20 44 35 37 44 45 36 37 46 35 46 09 50 ┆S ARE SKEWED 042C D57DE67F5F P┆ 0x0b2aa0…0b2ac0 55 53 48 20 44 21 20 4d 4f 56 20 41 2c 4c 21 20 41 4e 49 20 37 46 48 21 20 4d 4f 56 20 45 2c 41 ┆USH D! MOV A,L! ANI 7FH! MOV E,A┆ 0x0b2ac0…0b2ae0 20 3b 4c 53 20 37 20 42 49 54 53 20 4f 46 20 41 44 44 52 45 53 53 20 53 41 56 45 44 0d 0a 20 30 ┆ ;LS 7 BITS OF ADDRESS SAVED 0┆ 0x0b2ae0…0b2b00 34 33 31 20 37 44 31 37 20 20 20 20 20 20 09 09 4d 4f 56 20 41 2c 4c 21 20 52 41 4c 20 3b 43 41 ┆431 7D17 MOV A,L! RAL ;CA┆ 0x0b2b00…0b2b20 52 52 59 20 47 45 54 53 20 4d 53 42 0d 0a 20 30 34 33 33 20 37 43 31 37 20 20 20 20 20 20 09 09 ┆RRY GETS MSB 0433 7C17 ┆ 0x0b2b20…0b2b40 4d 4f 56 20 41 2c 48 21 20 52 41 4c 20 3b 43 41 52 52 59 20 47 4f 45 53 20 54 4f 20 4c 53 42 0d ┆MOV A,H! RAL ;CARRY GOES TO LSB ┆ 0x0b2b40…0b2b60 0a 20 30 34 33 35 20 36 46 32 36 30 30 20 20 20 20 09 09 4d 4f 56 20 4c 2c 41 21 20 4d 56 49 20 ┆ 0435 6F2600 MOV L,A! MVI ┆ 0x0b2b60…0b2b80 48 2c 30 20 3b 48 2c 4c 20 43 4f 4e 54 41 49 4e 20 49 4e 44 45 58 20 49 4e 54 4f 20 54 52 41 4e ┆H,0 ;H,L CONTAIN INDEX INTO TRAN┆ 0x0b2b80…0b2ba0 53 4c 41 54 45 20 54 41 42 4c 45 0d 0a 20 30 34 33 38 20 44 35 31 31 43 45 30 36 31 39 09 09 50 ┆SLATE TABLE 0438 D511CE0619 P┆ 0x0b2ba0…0b2bc0 55 53 48 20 44 21 20 4c 58 49 20 44 2c 54 52 41 4e 21 20 44 41 44 20 44 21 20 50 4f 50 20 44 0d ┆USH D! LXI D,TRAN! DAD D! POP D ┆ 0x0b2bc0…0b2be0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 3b 48 2c 4c 20 41 44 44 52 45 53 53 20 ┆ ;H,L ADDRESS ┆ 0x0b2be0…0b2c00 54 52 41 4e 53 4c 41 54 49 4f 4e 20 45 4c 45 4d 45 4e 54 2c 20 43 4f 4e 56 45 52 54 20 54 4f 20 ┆TRANSLATION ELEMENT, CONVERT TO ┆ 0x0b2c00…0b2c20 (47, 1, 6) 44 0d 0a 3a 31 30 30 35 34 35 30 30 43 32 30 33 31 31 41 33 30 36 43 33 43 32 30 33 31 31 35 33 ┆D :10054500C20311A306C3C2031153┆ 0x0b2c20…0b2c40 30 35 43 33 43 32 30 33 30 44 30 41 39 37 0d 0a 3a 31 30 30 35 35 35 30 30 34 39 34 45 35 33 34 ┆05C3C2030D0A97 :10055500494E534┆ 0x0b2c40…0b2c60 35 35 32 35 34 32 30 34 45 34 35 35 37 32 30 34 34 34 39 35 33 34 42 34 35 32 37 0d 0a 3a 31 30 ┆55254204E4557204449534B4527 :10┆ 0x0b2c60…0b2c80 30 35 36 35 30 30 35 34 35 34 34 35 32 43 32 30 35 34 35 39 35 30 34 35 32 30 35 32 34 35 35 34 ┆0565005454452C205459504520524554┆ 0x0b2c80…0b2ca0 35 35 35 32 34 45 30 42 0d 0a 3a 31 30 30 35 37 35 30 30 32 34 31 31 37 43 30 35 43 33 43 32 30 ┆55524E0B :1005750024117C05C3C20┆ 0x0b2ca0…0b2cc0 33 30 44 30 41 34 32 34 31 34 34 32 30 34 44 34 46 35 36 34 38 0d 0a 3a 31 30 30 35 38 35 30 30 ┆30D0A424144204D4F5648 :10058500┆ 0x0b2cc0…0b2ce0 34 33 35 30 34 44 32 45 34 33 34 46 34 44 32 30 34 36 34 39 34 43 34 35 32 43 32 30 35 32 34 35 ┆43504D2E434F4D2046494C452C205245┆ 0x0b2ce0…0b2d00 35 36 0d 0a 3a 31 30 30 35 39 35 30 30 35 30 34 43 34 31 34 33 34 35 32 34 31 31 41 31 30 35 43 ┆56 :10059500504C4143452411A105C┆ 0x0b2d00…0b2d20 33 43 32 30 33 30 44 30 41 34 45 34 46 44 41 0d 0a 3a 31 30 30 35 41 35 30 30 34 45 32 30 34 33 ┆3C2030D0A4E4FDA :1005A5004E2043┆ 0x0b2d20…0b2d40 35 30 32 46 34 44 32 30 34 34 34 39 35 33 34 42 34 35 35 34 35 34 34 35 32 43 32 30 0d 0a 3a 31 ┆502F4D204449534B455454452C20 :1┆ 0x0b2d40…0b2d60 30 30 35 42 35 30 30 32 30 34 33 34 31 34 45 34 45 34 46 35 34 32 30 35 33 34 35 35 32 34 39 34 ┆005B5002043414E4E4F5420534552494┆ 0x0b2d60…0b2d80 31 34 43 34 39 35 41 44 30 0d 0a 3a 31 30 30 35 43 35 30 30 34 35 32 34 31 31 43 44 30 35 43 33 ┆14C495AD0 :1005C500452411CD05C3┆ 0x0b2d80…0b2da0 43 32 30 33 30 44 30 41 35 36 34 35 35 32 34 39 34 36 34 39 37 36 0d 0a 3a 31 30 30 35 44 35 30 ┆C2030D0A56455249464976 :1005D50┆ 0x0b2da0…0b2dc0 30 34 33 34 31 35 34 34 39 34 46 34 45 32 30 34 35 35 32 35 32 34 46 35 32 32 43 32 30 34 32 34 ┆0434154494F4E204552524F522C20424┆ 0x0b2dc0…0b2de0 31 44 46 0d 0a 3a 31 30 30 35 45 35 30 30 34 34 32 30 34 34 34 39 35 33 34 42 32 34 31 31 46 32 ┆1DF :1005E50044204449534B2411F2┆ 0x0b2de0…0b2e00 30 35 43 33 43 32 30 33 30 44 30 41 35 33 35 39 0d 0a 3a 31 30 30 35 46 35 30 30 34 35 35 32 34 ┆05C3C2030D0A5359 :1005F50045524┆ 0x0b2e00…0b2e20 (47, 1, 7) 52 47 4d 53 47 3a 0d 0a 20 30 34 41 45 20 31 31 42 34 30 34 43 33 43 32 09 4c 58 49 20 44 2c 24 ┆RGMSG: 04AE 11B404C3C2 LXI D,$┆ 0x0b2e20…0b2e40 2b 36 21 20 4a 4d 50 20 50 52 4d 53 47 0d 0a 20 30 34 42 34 20 30 44 30 41 34 33 35 30 32 46 09 ┆+6! JMP PRMSG 04B4 0D0A43502F ┆ 0x0b2e40…0b2e60 44 42 20 43 52 2c 4c 46 2c 27 43 50 2f 4d 20 56 45 52 20 27 0d 0a 20 30 34 42 46 20 33 32 32 45 ┆DB CR,LF,'CP/M VER ' 04BF 322E┆ 0x0b2e60…0b2e80 33 32 20 20 20 20 09 44 42 20 56 45 52 53 49 4f 4e 2f 31 30 2b 27 30 27 2c 27 2e 27 2c 56 45 52 ┆32 DB VERSION/10+'0','.',VER┆ 0x0b2e80…0b2ea0 53 49 4f 4e 20 4d 4f 44 20 31 30 20 2b 27 30 27 0d 0a 20 30 34 43 32 20 32 30 35 33 34 35 35 32 ┆SION MOD 10 +'0' 04C2 20534552┆ 0x0b2ea0…0b2ec0 34 39 09 44 42 20 27 20 53 45 52 49 41 4c 49 5a 41 54 49 4f 4e 2c 27 2c 43 52 2c 4c 46 0d 0a 20 ┆49 DB ' SERIALIZATION,',CR,LF ┆ 0x0b2ec0…0b2ee0 30 34 44 33 20 34 46 35 32 34 39 34 37 34 39 09 44 42 20 27 4f 52 49 47 49 4e 20 4e 55 4d 42 45 ┆04D3 4F52494749 DB 'ORIGIN NUMBE┆ 0x0b2ee0…0b2f00 52 3f 20 24 27 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 ┆R? $' ; ┆ 0x0b2f00…0b2f20 20 20 20 20 20 20 20 20 20 20 53 45 52 4d 53 47 3a 0d 0a 20 30 34 45 33 20 31 31 45 39 30 34 43 ┆ SERMSG: 04E3 11E904C┆ 0x0b2f20…0b2f40 33 43 32 09 4c 58 49 20 44 2c 24 2b 36 21 20 4a 4d 50 20 50 52 4d 53 47 0d 0a 20 30 34 45 39 20 ┆3C2 LXI D,$+6! JMP PRMSG 04E9 ┆ 0x0b2f40…0b2f60 30 44 30 41 35 33 35 34 34 31 09 44 42 20 43 52 2c 4c 46 2c 27 53 54 41 52 54 49 4e 47 20 53 45 ┆0D0A535441 DB CR,LF,'STARTING SE┆ 0x0b2f60…0b2f80 52 49 41 4c 20 4e 55 4d 42 45 52 3f 20 24 27 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆RIAL NUMBER? $' ┆ 0x0b2f80…0b2fa0 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 4e 56 41 4c 49 44 3a 0d 0a 20 30 ┆ ; INVALID: 0┆ 0x0b2fa0…0b2fc0 35 30 34 20 31 31 30 41 30 35 43 33 43 32 09 4c 58 49 20 44 2c 24 2b 36 21 20 4a 4d 50 20 50 52 ┆504 110A05C3C2 LXI D,$+6! JMP PR┆ 0x0b2fc0…0b2fe0 4d 53 47 0d 0a 20 30 35 30 41 20 30 44 30 41 34 39 34 45 35 36 09 44 42 20 43 52 2c 4c 46 2c 27 ┆MSG 050A 0D0A494E56 DB CR,LF,'┆ 0x0b2fe0…0b3000 49 4e 56 41 4c 49 44 20 4e 55 4d 42 45 52 2c 20 54 52 59 20 41 47 41 49 4e 20 24 27 0d 0a 20 20 ┆INVALID NUMBER, TRY AGAIN $' ┆ 0x0b3000…0b3020 (47, 1, 8) 4f 52 49 47 49 4e 0d 0a 20 30 36 38 33 20 30 44 30 41 20 20 20 20 20 20 41 4f 52 49 47 3a 09 44 ┆ORIGIN 0683 0D0A AORIG: D┆ 0x0b3020…0b3040 42 09 43 52 2c 4c 46 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 4f 52 49 47 49 4e ┆B CR,LF AORIGIN┆ 0x0b3040…0b3060 3a 0d 0a 20 30 36 38 35 20 33 30 33 30 33 30 33 30 33 30 09 44 42 09 27 30 30 30 30 30 2d 24 27 ┆: 0685 3030303030 DB '00000-$'┆ 0x0b3060…0b3080 0d 0a 20 30 36 38 43 20 30 44 30 41 20 20 20 20 20 20 54 52 4d 53 47 3a 09 44 42 09 43 52 2c 4c ┆ 068C 0D0A TRMSG: DB CR,L┆ 0x0b3080…0b30a0 46 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 54 52 43 4f 55 4e 54 3a 0d 0a 20 30 36 ┆F TRCOUNT: 06┆ 0x0b30a0…0b30c0 38 45 20 33 30 33 30 32 30 35 34 35 32 09 44 42 09 27 30 30 20 54 52 41 43 4b 53 20 56 45 52 49 ┆8E 3030205452 DB '00 TRACKS VERI┆ 0x0b30c0…0b30e0 46 49 45 44 24 27 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 53 45 52 49 41 4c 3a ┆FIED$' BSERIAL:┆ 0x0b30e0…0b3100 0d 0a 20 30 36 41 31 20 20 20 20 20 20 20 20 20 20 20 09 44 53 09 32 09 3b 42 49 4e 41 52 59 20 ┆ 06A1 DS 2 ;BINARY ┆ 0x0b3100…0b3120 53 45 52 49 41 4c 20 4e 55 4d 42 45 52 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 ┆SERIAL NUMBER A┆ 0x0b3120…0b3140 53 45 52 49 41 4c 3a 0d 0a 20 30 36 41 33 20 33 30 33 30 33 30 33 30 33 30 09 44 42 09 27 30 30 ┆SERIAL: 06A3 3030303030 DB '00┆ 0x0b3140…0b3160 30 30 30 24 27 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 4f 4d 50 41 52 45 3a 0d ┆000$' COMPARE: ┆ 0x0b3160…0b3180 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 3b 43 4f 4d 4d 41 4e 44 53 20 41 52 45 20 ┆ ;COMMANDS ARE ┆ 0x0b3180…0b31a0 45 4e 43 4f 44 45 44 20 54 4f 20 4d 41 4b 45 20 44 49 53 41 53 53 45 4d 42 4c 59 20 48 41 52 44 ┆ENCODED TO MAKE DISASSEMBLY HARD┆ 0x0b31a0…0b31c0 45 52 0d 0a 20 30 36 41 39 20 42 42 42 36 41 44 44 46 20 20 09 44 57 09 4e 4f 54 20 27 44 49 27 ┆ER 06A9 BBB6ADDF DW NOT 'DI'┆ 0x0b31c0…0b31e0 2c 4e 4f 54 20 27 52 20 27 0d 0a 20 30 36 41 44 20 42 41 41 44 42 45 44 46 20 20 09 44 57 09 4e ┆,NOT 'R ' 06AD BAADBEDF DW N┆ 0x0b31e0…0b3200 4f 54 20 27 45 52 27 2c 4e 4f 54 20 27 41 20 27 0d 0a 20 30 36 42 31 20 41 42 41 36 41 46 42 41 ┆OT 'ER',NOT 'A ' 06B1 ABA6AFBA┆ 0x0b3200…0b3220 (47, 1, 9) 52 45 4c 20 41 44 44 52 45 53 53 0d 0a 20 30 34 33 45 20 41 46 37 45 33 44 31 46 20 20 09 09 58 ┆REL ADDRESS 043E AF7E3D1F X┆ 0x0b3220…0b3240 52 41 20 41 21 20 4d 4f 56 20 41 2c 4d 21 20 44 43 52 20 41 20 21 20 52 41 52 20 3b 43 41 52 52 ┆RA A! MOV A,M! DCR A ! RAR ;CARR┆ 0x0b3240…0b3260 59 20 47 45 54 53 20 4c 53 42 2c 20 4d 53 42 3d 30 0d 0a 20 30 34 34 32 20 36 37 33 45 30 30 31 ┆Y GETS LSB, MSB=0 0442 673E001┆ 0x0b3260…0b3280 46 20 20 09 09 4d 4f 56 20 48 2c 41 21 20 4d 56 49 20 41 2c 30 21 20 52 41 52 20 3b 43 41 52 52 ┆F MOV H,A! MVI A,0! RAR ;CARR┆ 0x0b3280…0b32a0 59 20 47 4f 45 53 20 54 4f 20 4d 53 42 0d 0a 20 30 34 34 36 20 42 33 20 20 20 20 20 20 20 20 09 ┆Y GOES TO MSB 0446 B3 ┆ 0x0b32a0…0b32c0 09 4f 52 41 20 45 20 3b 52 45 43 4c 41 49 4d 20 54 48 45 20 4c 45 41 53 54 20 53 49 47 4e 49 46 ┆ ORA E ;RECLAIM THE LEAST SIGNIF┆ 0x0b32c0…0b32e0 49 43 41 4e 54 20 37 20 42 49 54 53 0d 0a 20 30 34 34 37 20 36 46 31 31 30 39 30 37 31 39 09 09 ┆ICANT 7 BITS 0447 6F11090719 ┆ 0x0b32e0…0b3300 4d 4f 56 20 4c 2c 41 21 20 4c 58 49 20 44 2c 49 42 55 46 46 21 20 44 41 44 20 44 20 3b 41 42 53 ┆MOV L,A! LXI D,IBUFF! DAD D ;ABS┆ 0x0b3300…0b3320 4f 4c 55 54 45 20 41 44 44 52 45 53 53 20 49 4e 20 48 2c 4c 0d 0a 20 30 34 34 43 20 44 31 20 20 ┆OLUTE ADDRESS IN H,L 044C D1 ┆ 0x0b3320…0b3340 20 20 20 20 20 20 09 09 50 4f 50 20 44 20 3b 52 45 43 41 4c 4c 20 53 54 41 43 4b 45 44 20 44 20 ┆ POP D ;RECALL STACKED D ┆ 0x0b3340…0b3360 56 41 4c 55 45 0d 0a 20 30 34 34 44 20 43 39 20 20 20 20 20 20 20 20 09 09 52 45 54 0d 0a 20 20 ┆VALUE 044D C9 RET ┆ 0x0b3360…0b3380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ; ┆ 0x0b3380…0b33a0 20 53 54 42 59 54 45 3a 09 3b 53 54 4f 52 45 20 42 59 54 45 20 56 41 4c 55 45 20 47 49 56 45 4e ┆ STBYTE: ;STORE BYTE VALUE GIVEN┆ 0x0b33a0…0b33c0 20 42 59 20 52 45 47 49 53 54 45 52 20 41 20 54 4f 20 54 52 41 4e 53 4c 41 54 45 44 0d 0a 20 20 ┆ BY REGISTER A TO TRANSLATED ┆ 0x0b33c0…0b33e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 3b 41 44 44 52 45 53 53 20 47 49 56 45 4e 20 42 59 ┆ ;ADDRESS GIVEN BY┆ 0x0b33e0…0b3400 20 48 2c 4c 2e 20 20 49 4e 43 52 45 4d 45 4e 54 20 48 2c 4c 20 55 50 4f 4e 20 52 45 54 55 52 4e ┆ H,L. INCREMENT H,L UPON RETURN┆ 0x0b3400…0b3420 (47, 1, 10) 39 34 31 34 43 32 30 34 45 35 35 34 44 34 32 34 35 35 32 32 30 34 46 35 36 34 35 39 36 0d 0a 3a ┆9414C204E554D424552204F564596 :┆ 0x0b3420…0b3440 31 30 30 36 30 35 30 30 35 32 34 36 34 43 34 46 35 37 32 34 31 31 31 31 30 36 43 33 43 32 30 33 ┆1006050052464C4F5724111106C3C203┆ 0x0b3440…0b3460 30 44 30 41 34 35 35 32 44 39 0d 0a 3a 31 30 30 36 31 35 30 30 35 32 34 46 35 32 32 30 34 46 34 ┆0D0A4552D9 :10061500524F52204F4┆ 0x0b3460…0b3480 45 32 30 35 33 34 46 35 35 35 32 34 33 34 35 32 30 34 34 34 39 38 37 0d 0a 3a 31 30 30 36 32 35 ┆E20534F5552434520444987 :100625┆ 0x0b3480…0b34a0 30 30 35 33 34 42 32 43 32 30 35 32 34 35 35 30 34 43 34 31 34 33 34 35 32 34 31 31 33 37 30 36 ┆00534B2C205245504C41434524113706┆ 0x0b34a0…0b34c0 43 33 41 41 0d 0a 3a 31 30 30 36 33 35 30 30 43 32 30 33 30 44 30 41 34 33 34 31 34 45 34 45 34 ┆C3AA :10063500C2030D0A43414E4E4┆ 0x0b34c0…0b34e0 46 35 34 32 30 35 37 35 32 34 39 35 34 34 35 36 42 0d 0a 3a 31 30 30 36 34 35 30 30 32 30 34 45 ┆F542057524954456B :10064500204E┆ 0x0b34e0…0b3500 34 35 35 37 32 30 34 34 34 39 35 33 34 42 32 43 32 30 35 32 34 35 35 30 34 43 34 31 39 30 0d 0a ┆4557204449534B2C205245504C4190 ┆ 0x0b3500…0b3520 3a 31 30 30 36 35 35 30 30 34 33 34 35 32 34 31 31 35 45 30 36 43 33 43 32 30 33 30 44 30 41 34 ┆:10065500434524115E06C3C2030D0A4┆ 0x0b3520…0b3540 33 34 31 34 45 34 45 34 46 36 36 0d 0a 3a 31 30 30 36 36 35 30 30 35 34 32 30 35 32 34 35 32 44 ┆3414E4E4F66 :10066500542052452D┆ 0x0b3540…0b3560 35 32 34 35 34 31 34 34 32 30 34 45 34 35 35 37 32 30 34 34 34 39 37 41 0d 0a 3a 30 43 30 36 37 ┆52454144204E45572044497A :0C067┆ 0x0b3560…0b3580 35 30 30 35 33 34 42 32 43 32 30 35 32 34 35 35 30 34 43 34 31 34 33 34 35 32 34 36 46 0d 0a 3a ┆500534B2C205245504C414345246F :┆ 0x0b3580…0b35a0 31 30 30 36 38 33 30 30 30 44 30 41 33 30 33 30 33 30 33 30 33 30 32 44 32 34 30 44 30 41 33 30 ┆100683000D0A30303030302D240D0A30┆ 0x0b35a0…0b35c0 33 30 32 30 35 34 35 32 44 32 0d 0a 3a 30 45 30 36 39 33 30 30 34 31 34 33 34 42 35 33 32 30 35 ┆30205452D2 :0E06930041434B53205┆ 0x0b35c0…0b35e0 36 34 35 35 32 34 39 34 36 34 39 34 35 34 34 32 34 41 35 0d 0a 3a 31 30 30 36 41 33 30 30 33 30 ┆64552494649454424A5 :1006A30030┆ 0x0b35e0…0b3600 33 30 33 30 33 30 33 30 32 34 42 42 42 36 41 44 44 46 42 41 41 44 42 45 44 46 41 42 41 36 45 31 ┆3030303024BBB6ADDFBAADBEDFABA6E1┆ 0x0b3600…0b3620 (47, 1, 11) 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ; ┆ 0x0b3620…0b3640 20 43 55 52 4d 53 47 3a 0d 0a 20 30 35 32 37 20 31 31 32 44 30 35 43 33 43 32 09 4c 58 49 20 44 ┆ CURMSG: 0527 112D05C3C2 LXI D┆ 0x0b3640…0b3660 2c 24 2b 36 21 20 4a 4d 50 20 50 52 4d 53 47 0d 0a 20 30 35 32 44 20 30 44 30 41 35 33 34 35 35 ┆,$+6! JMP PRMSG 052D 0D0A53455┆ 0x0b3660…0b3680 32 09 44 42 20 43 52 2c 4c 46 2c 27 53 45 52 49 41 4c 49 5a 49 4e 47 20 44 49 53 4b 20 24 27 0d ┆2 DB CR,LF,'SERIALIZING DISK $' ┆ 0x0b3680…0b36a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ; ┆ 0x0b36a0…0b36c0 20 20 20 20 41 53 45 52 4d 53 47 3a 0d 0a 20 30 35 34 31 20 31 31 38 35 30 36 43 44 43 32 09 4c ┆ ASERMSG: 0541 118506CDC2 L┆ 0x0b36c0…0b36e0 58 49 20 44 2c 41 4f 52 49 47 49 4e 21 20 43 41 4c 4c 20 50 52 4d 53 47 0d 0a 20 30 35 34 37 20 ┆XI D,AORIGIN! CALL PRMSG 0547 ┆ 0x0b36e0…0b3700 31 31 41 33 30 36 43 33 43 32 09 4c 58 49 20 44 2c 41 53 45 52 49 41 4c 21 20 4a 4d 50 20 50 52 ┆11A306C3C2 LXI D,ASERIAL! JMP PR┆ 0x0b3700…0b3720 4d 53 47 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 ┆MSG ; ┆ 0x0b3720…0b3740 20 20 20 20 20 20 20 20 4e 45 57 4d 53 47 3a 0d 0a 20 30 35 34 44 20 31 31 35 33 30 35 43 33 43 ┆ NEWMSG: 054D 115305C3C┆ 0x0b3740…0b3760 32 09 4c 58 49 20 44 2c 24 2b 36 21 20 4a 4d 50 20 50 52 4d 53 47 0d 0a 20 30 35 35 33 20 30 44 ┆2 LXI D,$+6! JMP PRMSG 0553 0D┆ 0x0b3760…0b3780 30 41 34 39 24 45 35 33 09 44 42 20 43 52 2c 4c 46 2c 27 49 4e 53 45 52 54 20 4e 45 57 20 44 49 ┆0A49$E53 DB CR,LF,'INSERT NEW DI┆ 0x0b3780…0b37a0 53 4b 45 54 54 45 2c 20 54 59 50 45 20 52 45 54 55 52 4e 24 27 0d 0a 20 20 20 20 20 20 20 20 20 ┆SKETTE, TYPE RETURN$' ┆ 0x0b37a0…0b37c0 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 41 44 43 4f 4d ┆ ; BADCOM┆ 0x0b37c0…0b37e0 3a 0d 0a 20 30 35 37 36 20 31 31 37 43 30 35 43 33 43 32 09 4c 58 49 20 44 2c 24 2b 36 21 20 4a ┆: 0576 117C05C3C2 LXI D,$+6! J┆ 0x0b37e0…0b3800 4d 50 20 50 52 4d 53 47 0d 0a 20 30 35 37 43 20 30 44 30 41 34 32 34 31 34 34 09 44 42 20 43 52 ┆MP PRMSG 057C 0D0A424144 DB CR┆ 0x0b3800…0b3820 (47, 1, 12) 20 20 09 44 57 09 4e 4f 54 20 27 54 59 27 2c 4e 4f 54 20 27 50 45 27 0d 0a 20 30 36 42 35 20 41 ┆ DW NOT 'TY',NOT 'PE' 06B5 A┆ 0x0b3820…0b3840 43 42 45 41 39 42 41 20 20 09 44 57 09 4e 4f 54 20 27 53 41 27 2c 4e 4f 54 20 27 56 45 27 0d 0a ┆CBEA9BA DW NOT 'SA',NOT 'VE' ┆ 0x0b3840…0b3860 20 30 36 42 39 20 41 44 42 41 42 31 44 46 20 20 09 44 57 09 4e 4f 54 20 27 52 45 27 2c 4e 4f 54 ┆ 06B9 ADBAB1DF DW NOT 'RE',NOT┆ 0x0b3860…0b3880 20 27 4e 20 27 0d 0a 20 30 36 42 44 20 41 41 41 43 42 41 41 44 20 20 09 44 57 09 4e 4f 54 20 27 ┆ 'N ' 06BD AAACBAAD DW NOT '┆ 0x0b3880…0b38a0 55 53 27 2c 4e 4f 54 20 27 45 52 27 0d 0a 20 30 30 30 43 20 3d 20 20 20 20 20 20 20 20 20 09 43 ┆US',NOT 'ER' 000C = C┆ 0x0b38a0…0b38c0 4f 4d 50 4c 45 4e 20 45 51 55 20 28 24 2d 43 4f 4d 50 41 52 45 29 2f 32 0d 0a 20 20 20 20 20 20 ┆OMPLEN EQU ($-COMPARE)/2 ┆ 0x0b38c0…0b38e0 20 20 20 20 20 20 20 20 20 20 3b 09 49 4e 50 55 54 20 42 55 46 46 45 52 0d 0a 20 30 36 43 31 20 ┆ ; INPUT BUFFER 06C1 ┆ 0x0b38e0…0b3900 30 37 20 20 20 20 20 20 20 20 4d 41 58 4c 45 4e 3a 09 44 42 09 37 0d 0a 20 30 36 43 32 20 20 20 ┆07 MAXLEN: DB 7 06C2 ┆ 0x0b3900…0b3920 20 20 20 20 20 20 20 20 43 4f 4d 4c 45 4e 3a 09 44 53 09 31 0d 0a 20 30 36 43 33 20 20 20 20 20 ┆ COMLEN: DS 1 06C3 ┆ 0x0b3920…0b3940 20 20 20 20 20 20 43 42 55 46 46 3a 09 44 53 09 38 0d 0a 20 30 36 43 42 20 20 20 20 20 20 20 20 ┆ CBUFF: DS 8 06CB ┆ 0x0b3940…0b3960 20 20 20 53 54 52 41 43 4b 3a 09 44 53 09 31 09 3b 53 45 52 49 41 4c 49 5a 45 20 54 52 41 43 4b ┆ STRACK: DS 1 ;SERIALIZE TRACK┆ 0x0b3960…0b3980 20 46 4f 52 20 43 50 4d 2e 43 4f 4d 20 46 49 4c 45 20 57 48 45 4e 20 45 4e 43 4f 55 4e 54 45 52 ┆ FOR CPM.COM FILE WHEN ENCOUNTER┆ 0x0b3980…0b39a0 45 44 0d 0a 20 30 36 43 43 20 20 20 20 20 20 20 20 20 20 20 53 44 49 46 46 3a 09 44 53 09 32 09 ┆ED 06CC SDIFF: DS 2 ┆ 0x0b39a0…0b39c0 3b 44 49 46 46 45 52 45 4e 43 45 20 42 45 54 57 45 45 4e 20 54 57 4f 20 53 45 52 49 41 4c 20 4e ┆;DIFFERENCE BETWEEN TWO SERIAL N┆ 0x0b39c0…0b39e0 55 4d 42 45 52 20 41 44 44 52 45 53 53 45 53 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆UMBER ADDRESSES ┆ 0x0b39e0…0b3a00 20 3b 09 53 45 43 54 4f 52 20 54 52 41 4e 53 4c 41 54 49 4f 4e 20 56 45 43 54 4f 52 0d 0a 20 30 ┆ ; SECTOR TRANSLATION VECTOR 0┆ 0x0b3a00…0b3a20 (47, 1, 13) 30 37 45 42 37 43 41 43 37 30 33 32 33 35 46 31 36 30 30 31 39 33 36 30 30 32 31 43 33 30 36 30 ┆07EB7CAC703235F160019360021C3060┆ 0x0b3a20…0b3a40 31 37 44 0d 0a 3a 31 30 30 33 45 35 30 30 30 30 30 30 37 45 42 37 43 38 44 36 33 30 46 45 30 41 ┆17D :1003E50000007EB7C8D630FE0A┆ 0x0b3a40…0b3a60 44 32 43 37 30 33 45 35 43 35 45 31 32 39 41 44 0d 0a 3a 31 30 30 33 46 35 30 30 32 39 32 39 30 ┆D2C703E5C5E129AD :1003F50029290┆ 0x0b3a60…0b3a80 39 30 39 45 35 43 31 45 31 32 33 38 31 34 46 33 45 30 30 38 38 34 37 44 41 43 37 36 43 0d 0a 3a ┆909E5C1E123814F3E008847DAC76C :┆ 0x0b3a80…0b3aa0 31 30 30 34 30 35 30 30 30 33 43 33 45 37 30 33 32 41 41 31 30 36 32 33 32 32 41 31 30 36 37 44 ┆1004050003C3E7032AA1062322A1067D┆ 0x0b3aa0…0b3ac0 42 34 43 41 32 36 30 34 35 35 0d 0a 3a 31 30 30 34 31 35 30 30 32 31 41 37 30 36 30 36 30 35 33 ┆B4CA260455 :1004150021A70606053┆ 0x0b3ac0…0b3ae0 34 37 45 46 45 33 41 44 38 33 36 33 30 32 42 30 35 43 32 31 41 43 41 0d 0a 3a 31 30 30 34 32 35 ┆47EFE3AD836302B05C21ACA :100425┆ 0x0b3ae0…0b3b00 30 30 30 34 43 44 45 43 30 35 43 33 30 30 30 30 44 35 37 44 45 36 37 46 35 46 37 44 31 37 37 43 ┆0004CDEC05C30000D57DE67F5F7D177C┆ 0x0b3b00…0b3b20 31 37 30 35 0d 0a 3a 31 30 30 34 33 35 30 30 36 46 32 36 30 30 44 35 31 31 43 45 30 36 31 39 44 ┆1705 :100435006F2600D511CE0619D┆ 0x0b3b20…0b3b40 31 41 46 37 45 33 44 31 46 36 37 33 45 30 30 35 30 0d 0a 3a 31 30 30 34 34 35 30 30 31 46 42 33 ┆1AF7E3D1F673E0050 :100445001FB3┆ 0x0b3b40…0b3b60 36 46 31 31 30 39 30 37 31 39 44 31 43 39 45 35 44 35 46 35 43 44 32 43 30 34 46 31 46 35 0d 0a ┆6F11090719D1C9E5D5F5CD2C04F1F5 ┆ 0x0b3b60…0b3b80 3a 31 30 30 34 35 35 30 30 37 37 44 31 45 31 32 33 43 39 33 41 38 31 30 36 43 44 34 45 30 34 33 ┆:1004550077D1E123C93A8106CD4E043┆ 0x0b3b80…0b3ba0 45 31 36 43 44 34 45 30 34 32 46 0d 0a 3a 31 30 30 34 36 35 30 30 33 41 38 32 30 36 43 44 34 45 ┆E16CD4E042F :100465003A8206CD4E┆ 0x0b3ba0…0b3bc0 30 34 41 46 43 44 34 45 30 34 31 31 41 32 30 36 31 41 43 44 34 45 45 41 0d 0a 3a 31 30 30 34 37 ┆04AFCD4E0411A2061ACD4EEA :10047┆ 0x0b3bc0…0b3be0 35 30 30 30 34 31 42 31 41 43 44 34 45 30 34 43 39 31 31 38 32 30 34 43 33 43 32 30 33 30 44 30 ┆500041B1ACD4E04C9118204C3C2030D0┆ 0x0b3be0…0b3c00 41 34 39 44 37 0d 0a 3a 31 30 30 34 38 35 30 30 34 45 35 33 34 35 35 32 35 34 32 30 34 33 34 46 ┆A49D7 :100485004E5345525420434F┆ 0x0b3c00…0b3c20 (47, 1, 14) 0d 0a 20 30 34 34 45 20 45 35 44 35 46 35 20 20 20 20 09 50 55 53 48 20 48 21 20 50 55 53 48 20 ┆ 044E E5D5F5 PUSH H! PUSH ┆ 0x0b3c20…0b3c40 44 21 20 50 55 53 48 20 50 53 57 0d 0a 20 30 34 35 31 20 43 44 32 43 30 34 46 31 20 20 09 43 41 ┆D! PUSH PSW 0451 CD2C04F1 CA┆ 0x0b3c40…0b3c60 4c 4c 20 54 52 41 4e 53 4c 41 54 45 21 20 50 4f 50 20 50 53 57 0d 0a 20 30 34 35 35 20 37 37 44 ┆LL TRANSLATE! POP PSW 0455 77D┆ 0x0b3c60…0b3c80 31 45 31 32 33 43 39 09 4d 4f 56 20 4d 2c 41 21 20 50 4f 50 20 44 21 20 50 4f 50 20 48 21 20 49 ┆1E123C9 MOV M,A! POP D! POP H! I┆ 0x0b3c80…0b3ca0 4e 58 20 48 21 20 52 45 54 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 ┆NX H! RET ; ┆ 0x0b3ca0…0b3cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 54 53 45 52 49 41 4c 3a 0d 0a 20 20 20 20 20 20 20 ┆ STSERIAL: ┆ 0x0b3cc0…0b3ce0 20 20 20 20 20 20 20 20 20 09 3b 53 54 4f 52 45 20 54 48 45 20 53 45 52 49 41 4c 20 4e 55 4d 42 ┆ ;STORE THE SERIAL NUMB┆ 0x0b3ce0…0b3d00 45 52 20 49 4e 54 4f 20 41 44 44 52 45 53 53 20 47 49 56 45 4e 20 42 59 20 48 2c 4c 0d 0a 20 30 ┆ER INTO ADDRESS GIVEN BY H,L 0┆ 0x0b3d00…0b3d20 34 35 41 20 33 41 38 31 30 36 43 44 34 45 09 4c 44 41 20 4f 52 49 47 49 4e 21 20 43 41 4c 4c 20 ┆45A 3A8106CD4E LDA ORIGIN! CALL ┆ 0x0b3d20…0b3d40 53 54 42 59 54 45 20 3b 42 59 54 45 20 53 54 4f 52 45 44 2c 20 48 2c 4c 20 49 4e 43 52 45 4d 45 ┆STBYTE ;BYTE STORED, H,L INCREME┆ 0x0b3d40…0b3d60 4e 54 45 44 0d 0a 20 30 34 36 30 20 33 45 31 36 43 44 34 45 30 34 09 4d 56 49 20 41 2c 56 45 52 ┆NTED 0460 3E16CD4E04 MVI A,VER┆ 0x0b3d60…0b3d80 53 49 4f 4e 21 20 43 41 4c 4c 20 53 54 42 59 54 45 20 3b 56 45 52 53 49 4f 4e 20 4e 55 4d 42 45 ┆SION! CALL STBYTE ;VERSION NUMBE┆ 0x0b3d80…0b3da0 52 0d 0a 20 30 34 36 35 20 33 41 38 32 30 36 43 44 34 45 09 09 6c 64 61 20 6f 72 69 67 69 6e 2b ┆R 0465 3A8206CD4E lda origin+┆ 0x0b3da0…0b3dc0 31 20 21 20 63 61 6c 6c 20 73 74 62 79 74 65 09 3b 20 73 74 75 66 66 20 68 69 67 68 28 6f 72 69 ┆1 ! call stbyte ; stuff high(ori┆ 0x0b3dc0…0b3de0 67 69 6e 29 0d 0a 20 30 34 36 42 20 41 46 43 44 34 45 30 34 20 20 09 09 58 52 41 20 41 21 20 43 ┆gin) 046B AFCD4E04 XRA A! C┆ 0x0b3de0…0b3e00 41 4c 4c 20 53 54 42 59 54 45 20 3b 5a 45 52 4f 20 42 59 54 45 0d 0a 20 20 20 20 20 20 20 20 20 ┆ALL STBYTE ;ZERO BYTE ┆ 0x0b3e00…0b3e20 (47, 1, 15) 2c 4c 46 2c 27 42 41 44 20 4d 4f 56 43 50 4d 2e 43 4f 4d 20 46 49 4c 45 2c 20 52 45 50 4c 41 43 ┆,LF,'BAD MOVCPM.COM FILE, REPLAC┆ 0x0b3e20…0b3e40 45 24 27 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 ┆E$' ; ┆ 0x0b3e40…0b3e60 20 20 20 20 20 20 20 20 42 41 44 44 53 4b 3a 0d 0a 20 30 35 39 42 20 31 31 41 31 30 35 43 33 43 ┆ BADDSK: 059B 11A105C3C┆ 0x0b3e60…0b3e80 32 09 4c 58 49 20 44 2c 24 2b 36 21 20 4a 4d 50 20 50 52 4d 53 47 0d 0a 20 30 35 41 31 20 30 44 ┆2 LXI D,$+6! JMP PRMSG 05A1 0D┆ 0x0b3e80…0b3ea0 30 41 34 45 34 46 34 45 09 44 42 20 43 52 2c 4c 46 2c 27 4e 4f 4e 20 43 50 2f 4d 20 44 49 53 4b ┆0A4E4F4E DB CR,LF,'NON CP/M DISK┆ 0x0b3ea0…0b3ec0 45 54 54 45 2c 20 43 41 4e 4e 4f 54 20 53 45 52 49 41 4c 49 5a 45 24 27 0d 0a 20 20 20 20 20 20 ┆ETTE, CANNOT SERIALIZE$' ┆ 0x0b3ec0…0b3ee0 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 56 45 52 ┆ ; VER┆ 0x0b3ee0…0b3f00 45 52 52 3a 0d 0a 20 30 35 43 37 20 31 31 43 44 30 35 43 33 43 32 09 4c 58 49 20 44 2c 24 2b 36 ┆ERR: 05C7 11CD05C3C2 LXI D,$+6┆ 0x0b3f00…0b3f20 21 20 4a 4d 50 20 50 52 4d 53 47 0d 0a 20 30 35 43 44 20 30 44 30 41 35 36 34 35 35 32 09 44 42 ┆! JMP PRMSG 05CD 0D0A564552 DB┆ 0x0b3f20…0b3f40 20 43 52 2c 4c 46 2c 27 56 45 52 49 46 49 43 41 54 49 4f 4e 20 45 52 52 4f 52 2c 20 42 41 44 20 ┆ CR,LF,'VERIFICATION ERROR, BAD ┆ 0x0b3f40…0b3f60 44 49 53 4b 24 27 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 20 20 20 20 ┆DISK$' ; ┆ 0x0b3f60…0b3f80 20 20 20 20 20 20 20 20 20 20 20 4f 56 45 52 4d 53 47 3a 0d 0a 20 30 35 45 43 20 31 31 46 32 30 ┆ OVERMSG: 05EC 11F20┆ 0x0b3f80…0b3fa0 35 43 33 43 32 09 4c 58 49 20 44 2c 24 2b 36 21 20 4a 4d 50 20 50 52 4d 53 47 0d 0a 20 30 35 46 ┆5C3C2 LXI D,$+6! JMP PRMSG 05F┆ 0x0b3fa0…0b3fc0 32 20 30 44 30 41 35 33 34 35 35 32 09 44 42 20 43 52 2c 4c 46 2c 27 53 45 52 49 41 4c 20 4e 55 ┆2 0D0A534552 DB CR,LF,'SERIAL NU┆ 0x0b3fc0…0b3fe0 4d 42 45 52 20 4f 56 45 52 46 4c 4f 57 24 27 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆MBER OVERFLOW$' ┆ 0x0b3fe0…0b4000 20 52 45 41 44 30 4d 53 47 3a 0d 0a 20 30 36 30 42 20 31 31 31 31 30 36 43 33 43 32 09 4c 58 49 ┆ READ0MSG: 060B 111106C3C2 LXI┆ 0x0b4000…0b4020 (48, 0, 1) 36 43 45 20 30 31 30 37 30 44 31 33 31 39 54 52 41 4e 3a 09 44 42 09 31 2c 37 2c 31 33 2c 31 39 ┆6CE 01070D1319TRAN: DB 1,7,13,19┆ 0x0b4020…0b4040 2c 20 32 35 2c 35 2c 31 31 2c 31 37 0d 0a 20 30 36 44 36 20 31 37 30 33 30 39 30 46 31 35 09 44 ┆, 25,5,11,17 06D6 1703090F15 D┆ 0x0b4040…0b4060 42 09 32 33 2c 33 2c 39 2c 31 35 2c 20 32 31 2c 32 2c 38 2c 31 34 0d 0a 20 30 36 44 45 20 31 34 ┆B 23,3,9,15, 21,2,8,14 06DE 14┆ 0x0b4060…0b4080 31 41 30 36 30 43 31 32 09 44 42 09 32 30 2c 32 36 2c 36 2c 31 32 2c 20 31 38 2c 32 34 2c 34 2c ┆1A060C12 DB 20,26,6,12, 18,24,4,┆ 0x0b4080…0b40a0 31 30 0d 0a 20 30 36 45 36 20 31 30 31 36 20 20 20 20 20 20 09 44 42 09 31 36 2c 32 32 0d 0a 20 ┆10 06E6 1016 DB 16,22 ┆ 0x0b40a0…0b40c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0d 0a 20 30 36 45 38 20 20 20 20 20 20 20 20 20 ┆ ; 06E8 ┆ 0x0b40c0…0b40e0 20 20 09 44 53 09 33 32 09 3b 53 54 41 43 4b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ DS 32 ;STACK ┆ 0x0b40e0…0b4100 20 53 54 41 43 4b 3a 0d 0a 20 30 37 30 38 20 20 20 20 20 20 20 20 20 20 20 53 50 54 3a 09 44 53 ┆ STACK: 0708 SPT: DS┆ 0x0b4100…0b4120 09 31 0d 0a 20 33 43 30 30 20 3d 20 20 20 20 20 20 20 20 20 54 52 4c 45 4e 09 45 51 55 09 31 32 ┆ 1 3C00 = TRLEN EQU 12┆ 0x0b4120…0b4140 30 2a 31 32 38 09 3b 42 55 46 46 45 52 20 53 49 5a 45 0d 0a 20 30 37 30 39 20 20 20 20 20 20 20 ┆0*128 ;BUFFER SIZE 0709 ┆ 0x0b4140…0b4160 20 20 20 20 49 42 55 46 46 3a 09 44 53 09 54 52 4c 45 4e 0d 0a 20 34 33 30 39 20 20 20 20 20 20 ┆ IBUFF: DS TRLEN 4309 ┆ 0x0b4160…0b4180 20 20 20 20 20 4f 42 55 46 46 3a 09 44 53 09 54 52 4c 45 4e 0d 0a 20 30 37 30 39 20 3d 20 20 20 ┆ OBUFF: DS TRLEN 0709 = ┆ 0x0b4180…0b41a0 20 20 20 20 20 20 43 43 50 56 09 45 51 55 09 49 42 55 46 46 2b 4f 46 46 53 45 54 0d 0a 20 30 46 ┆ CCPV EQU IBUFF+OFFSET 0F┆ 0x0b41a0…0b41c0 30 39 20 3d 20 20 20 20 20 20 20 20 20 42 44 4f 53 56 09 45 51 55 09 49 42 55 46 46 2b 28 42 44 ┆09 = BDOSV EQU IBUFF+(BD┆ 0x0b41c0…0b41e0 4f 53 42 2d 43 43 50 42 29 2b 4f 46 46 53 45 54 0d 0a 20 37 46 30 39 20 20 20 20 20 20 20 20 20 ┆OSB-CCPB)+OFFSET 7F09 ┆ 0x0b41e0…0b4200 20 20 09 45 4e 44 09 54 50 41 0d 0a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆ END TPA ┆ 0x0b4200…0b4220 (48, 0, 2) 0d 0a 3a 30 46 30 36 42 33 30 30 41 46 42 41 41 43 42 45 41 39 42 41 41 44 42 41 42 31 44 46 41 ┆ :0F06B300AFBAACBEA9BAADBAB1DFA┆ 0x0b4220…0b4240 41 41 43 42 41 41 44 30 37 34 37 0d 0a 3a 31 30 30 36 43 45 30 30 30 31 30 37 30 44 31 33 31 39 ┆AACBAAD0747 :1006CE0001070D1319┆ 0x0b4240…0b4260 30 35 30 42 31 31 31 37 30 33 30 39 30 46 31 35 30 32 30 38 30 45 35 42 0d 0a 3a 30 41 30 36 44 ┆050B111703090F1502080E5B :0A06D┆ 0x0b4260…0b4280 45 30 30 31 34 31 41 30 36 30 43 31 32 31 38 30 34 30 41 31 30 31 36 37 34 0d 0a 3a 30 30 30 31 ┆E00141A060C1218040A101674 :0001┆ 0x0b4280…0b42a0 30 30 30 30 46 46 0d 0a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆0000FF ┆ 0x0b42a0…0b42c0 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆ ┆ […0x2…] 0x0b4300…0b4320 3a 31 30 30 36 35 35 30 30 34 33 34 35 32 34 31 31 35 45 30 36 43 33 43 32 30 33 30 44 30 41 34 ┆:10065500434524115E06C3C2030D0A4┆ 0x0b4320…0b4340 33 34 31 34 45 34 45 34 46 36 36 0d 0a 3a 31 30 30 36 36 35 30 30 35 34 32 30 35 32 34 35 32 44 ┆3414E4E4F66 :10066500542052452D┆ 0x0b4340…0b4360 35 32 34 35 34 31 34 34 32 30 34 45 34 35 35 37 32 30 34 34 34 39 37 41 0d 0a 3a 30 43 30 36 37 ┆52454144204E45572044497A :0C067┆ 0x0b4360…0b4380 35 30 30 35 33 34 42 32 43 32 30 35 32 34 35 35 30 34 43 34 31 34 33 34 35 32 34 36 46 0d 0a 3a ┆500534B2C205245504C414345246F :┆ 0x0b4380…0b43a0 31 30 30 36 38 33 30 30 30 44 30 41 33 30 33 30 33 30 33 30 33 30 32 44 32 34 30 44 30 41 33 30 ┆100683000D0A30303030302D240D0A30┆ 0x0b43a0…0b43c0 33 30 32 30 35 34 35 32 44 32 0d 0a 3a 30 45 30 36 39 33 30 30 34 31 34 33 34 42 35 33 32 30 35 ┆30205452D2 :0E06930041434B53205┆ 0x0b43c0…0b43e0 36 34 35 35 32 34 39 34 36 34 39 34 35 34 34 32 34 41 35 0d 0a 3a 31 30 30 36 41 33 30 30 33 30 ┆64552494649454424A5 :1006A30030┆ 0x0b43e0…0b4400 33 30 33 30 33 30 33 30 32 34 42 42 42 36 41 44 44 46 42 41 41 44 42 45 44 46 41 42 41 36 45 31 ┆3030303024BBB6ADDFBAADBEDFABA6E1┆ 0x0b4400…0b4420 (48, 0, 3) 63 63 75 72 72 65 64 2c 20 70 72 69 6e 74 20 6d 65 73 73 61 67 65 20 61 6e 64 20 72 65 74 72 79 ┆ccurred, print message and retry┆ 0x0b4420…0b4440 0d 0a 62 6f 6f 74 65 72 72 3a 0d 0a 09 70 6f 70 09 62 09 3b 72 65 63 61 6c 6c 20 63 6f 75 6e 74 ┆ booterr: pop b ;recall count┆ 0x0b4440…0b4460 73 0d 0a 09 64 63 72 09 63 0d 0a 09 6a 7a 09 62 6f 6f 74 65 72 30 0d 0a 3b 09 74 72 79 20 61 67 ┆s dcr c jz booter0 ; try ag┆ 0x0b4460…0b4480 61 69 6e 0d 0a 09 70 75 73 68 09 62 0d 0a 09 6a 6d 70 09 77 62 6f 6f 74 30 0d 0a 3b 0d 0a 62 6f ┆ain push b jmp wboot0 ; bo┆ 0x0b4480…0b44a0 6f 74 65 72 30 3a 0d 0a 3b 09 6f 74 68 65 72 77 69 73 65 20 74 6f 6f 20 6d 61 6e 79 20 72 65 74 ┆oter0: ; otherwise too many ret┆ 0x0b44a0…0b44c0 72 69 65 73 0d 0a 09 6c 78 69 09 68 2c 62 6f 6f 74 6d 73 67 0d 0a 09 63 61 6c 6c 09 70 72 6d 73 ┆ries lxi h,bootmsg call prms┆ 0x0b44c0…0b44e0 67 0d 0a 09 6a 6d 70 09 72 6d 6f 6e 38 30 09 3b 6d 64 73 20 68 61 72 64 77 61 72 65 20 6d 6f 6e ┆g jmp rmon80 ;mds hardware mon┆ 0x0b44e0…0b4500 69 74 6f 72 0d 0a 3b 0d 0a 62 6f 6f 74 6d 73 67 3a 0d 0a 09 64 62 09 27 3f 62 6f 6f 74 27 2c 30 ┆itor ; bootmsg: db '?boot',0┆ 0x0b4500…0b4520 0d 0a 3b 0d 0a 3b 0d 0a 63 6f 6e 73 74 3a 09 3b 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 20 74 ┆ ; ; const: ;console status t┆ 0x0b4520…0b4540 6f 20 72 65 67 2d 61 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 ┆o reg-a ; (exactly the same as ┆ 0x0b4540…0b4560 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 63 73 74 73 0d 0a 3b 0d 0a 63 6f 6e 69 6e 3a 09 ┆mds call) jmp csts ; conin: ┆ 0x0b4560…0b4580 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 72 65 67 2d 61 0d 0a 09 63 61 ┆;console character to reg-a ca┆ 0x0b4580…0b45a0 6c 6c 09 63 69 0d 0a 09 61 6e 69 09 37 66 68 09 3b 72 65 6d 6f 76 65 20 70 61 72 69 74 79 20 62 ┆ll ci ani 7fh ;remove parity b┆ 0x0b45a0…0b45c0 69 74 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 63 6f 6e 6f 75 74 3a 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 ┆it ret ; conout: ;console ch┆ 0x0b45c0…0b45e0 61 72 61 63 74 65 72 20 66 72 6f 6d 20 63 20 74 6f 20 63 6f 6e 73 6f 6c 65 20 6f 75 74 0d 0a 09 ┆aracter from c to console out ┆ 0x0b45e0…0b4600 6a 6d 70 09 63 6f 0d 0a 3b 0d 0a 6c 69 73 74 3a 09 3b 6c 69 73 74 20 64 65 76 69 63 65 20 6f 75 ┆jmp co ; list: ;list device ou┆ 0x0b4600…0b4620 (48, 0, 4) 0d 0a 3b 0d 0a 72 65 61 64 3a 09 3b 72 65 61 64 20 6e 65 78 74 20 64 69 73 6b 20 72 65 63 6f 72 ┆ ; read: ;read next disk recor┆ 0x0b4620…0b4640 64 20 28 61 73 73 75 6d 69 6e 67 20 64 69 73 6b 2f 74 72 6b 2f 73 65 63 2f 64 6d 61 20 73 65 74 ┆d (assuming disk/trk/sec/dma set┆ 0x0b4640…0b4660 29 0d 0a 09 6d 76 69 09 63 2c 72 65 61 64 66 09 3b 73 65 74 20 74 6f 20 72 65 61 64 20 66 75 6e ┆) mvi c,readf ;set to read fun┆ 0x0b4660…0b4680 63 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 73 65 74 66 75 6e 63 0d 0a 09 63 61 6c 6c 09 77 61 69 74 ┆ction call setfunc call wait┆ 0x0b4680…0b46a0 69 6f 09 3b 70 65 72 66 6f 72 6d 20 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 72 65 74 09 ┆io ;perform read function ret ┆ 0x0b46a0…0b46c0 09 3b 6d 61 79 20 68 61 76 65 20 65 72 72 6f 72 20 73 65 74 20 69 6e 20 72 65 67 2d 61 0d 0a 3b ┆ ;may have error set in reg-a ;┆ 0x0b46c0…0b46e0 0d 0a 3b 0d 0a 77 72 69 74 65 3a 09 3b 64 69 73 6b 20 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e ┆ ; write: ;disk write function┆ 0x0b46e0…0b4700 0d 0a 09 6d 76 69 09 63 2c 77 72 69 74 66 0d 0a 09 63 61 6c 6c 09 73 65 74 66 75 6e 63 09 3b 73 ┆ mvi c,writf call setfunc ;s┆ 0x0b4700…0b4720 65 74 20 74 6f 20 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 77 61 69 74 ┆et to write function call wait┆ 0x0b4720…0b4740 69 6f 0d 0a 09 72 65 74 09 09 3b 6d 61 79 20 68 61 76 65 20 65 72 72 6f 72 20 73 65 74 0d 0a 3b ┆io ret ;may have error set ;┆ 0x0b4740…0b4760 0d 0a 3b 0d 0a 3b 09 75 74 69 6c 69 74 79 20 73 75 62 72 6f 75 74 69 6e 65 73 0d 0a 70 72 6d 73 ┆ ; ; utility subroutines prms┆ 0x0b4760…0b4780 67 3a 09 3b 70 72 69 6e 74 20 6d 65 73 73 61 67 65 20 61 74 20 68 2c 6c 20 74 6f 20 30 0d 0a 09 ┆g: ;print message at h,l to 0 ┆ 0x0b4780…0b47a0 6d 6f 76 09 61 2c 6d 0d 0a 09 6f 72 61 09 61 09 3b 7a 65 72 6f 3f 0d 0a 09 72 7a 0d 0a 3b 09 6d ┆mov a,m ora a ;zero? rz ; m┆ 0x0b47a0…0b47c0 6f 72 65 20 74 6f 20 70 72 69 6e 74 0d 0a 09 70 75 73 68 09 68 0d 0a 09 6d 6f 76 09 63 2c 61 0d ┆ore to print push h mov c,a ┆ 0x0b47c0…0b47e0 0a 09 63 61 6c 6c 09 63 6f 6e 6f 75 74 0d 0a 09 70 6f 70 09 68 0d 0a 09 69 6e 78 09 68 0d 0a 09 ┆ call conout pop h inx h ┆ 0x0b47e0…0b4800 6a 6d 70 09 70 72 6d 73 67 0d 0a 3b 0d 0a 73 65 74 66 75 6e 63 3a 0d 0a 3b 09 73 65 74 20 66 75 ┆jmp prmsg ; setfunc: ; set fu┆ 0x0b4800…0b4820 (48, 0, 5) 6f 75 74 69 6e 65 73 20 77 69 74 68 69 6e 20 74 68 65 20 6d 6f 6e 69 74 6f 72 0d 0a 3b 0d 0a 3b ┆outines within the monitor ; ;┆ 0x0b4820…0b4840 09 77 65 20 61 6c 73 6f 20 61 73 73 75 6d 65 20 74 68 65 20 6d 64 73 20 73 79 73 74 65 6d 20 68 ┆ we also assume the mds system h┆ 0x0b4840…0b4860 61 73 20 66 6f 75 72 20 64 69 73 6b 20 64 72 69 76 65 73 0d 0a 72 65 76 72 74 09 65 71 75 09 30 ┆as four disk drives revrt equ 0┆ 0x0b4860…0b4880 66 64 68 09 3b 69 6e 74 65 72 72 75 70 74 20 72 65 76 65 72 74 20 70 6f 72 74 0d 0a 69 6e 74 63 ┆fdh ;interrupt revert port intc┆ 0x0b4880…0b48a0 09 65 71 75 09 30 66 63 68 09 3b 69 6e 74 65 72 72 75 70 74 20 6d 61 73 6b 20 70 6f 72 74 0d 0a ┆ equ 0fch ;interrupt mask port ┆ 0x0b48a0…0b48c0 69 63 6f 6e 09 65 71 75 09 30 66 33 68 09 3b 69 6e 74 65 72 72 75 70 74 20 63 6f 6e 74 72 6f 6c ┆icon equ 0f3h ;interrupt control┆ 0x0b48c0…0b48e0 20 70 6f 72 74 0d 0a 69 6e 74 65 09 65 71 75 09 30 31 31 31 24 31 31 31 30 62 09 3b 65 6e 61 62 ┆ port inte equ 0111$1110b ;enab┆ 0x0b48e0…0b4900 6c 65 20 72 73 74 20 30 28 77 61 72 6d 20 62 6f 6f 74 29 2c 20 72 73 74 20 37 20 28 6d 6f 6e 69 ┆le rst 0(warm boot), rst 7 (moni┆ 0x0b4900…0b4920 74 6f 72 29 0d 0a 3b 0d 0a 3b 09 6d 64 73 20 6d 6f 6e 69 74 6f 72 20 65 71 75 61 74 65 73 0d 0a ┆tor) ; ; mds monitor equates ┆ 0x0b4920…0b4940 6d 6f 6e 38 30 09 65 71 75 09 30 66 38 30 30 68 09 3b 6d 64 73 20 6d 6f 6e 69 74 6f 72 0d 0a 72 ┆mon80 equ 0f800h ;mds monitor r┆ 0x0b4940…0b4960 6d 6f 6e 38 30 09 65 71 75 09 30 66 66 30 66 68 09 3b 72 65 73 74 61 72 74 20 6d 6f 6e 38 30 20 ┆mon80 equ 0ff0fh ;restart mon80 ┆ 0x0b4960…0b4980 28 62 6f 6f 74 20 65 72 72 6f 72 29 0d 0a 63 69 09 65 71 75 09 30 66 38 30 33 68 09 3b 63 6f 6e ┆(boot error) ci equ 0f803h ;con┆ 0x0b4980…0b49a0 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 72 65 67 2d 61 0d 0a 72 69 09 65 71 75 09 ┆sole character to reg-a ri equ ┆ 0x0b49a0…0b49c0 30 66 38 30 36 68 09 3b 72 65 61 64 65 72 20 69 6e 20 74 6f 20 72 65 67 2d 61 0d 0a 63 6f 09 65 ┆0f806h ;reader in to reg-a co e┆ 0x0b49c0…0b49e0 71 75 09 30 66 38 30 39 68 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 20 66 72 6f 6d 20 63 20 74 ┆qu 0f809h ;console char from c t┆ 0x0b49e0…0b4a00 6f 20 63 6f 6e 73 6f 6c 65 20 6f 75 74 0d 0a 70 6f 09 65 71 75 09 30 66 38 30 63 68 09 3b 70 75 ┆o console out po equ 0f80ch ;pu┆ 0x0b4a00…0b4a20 (48, 0, 6) 73 74 61 72 74 20 72 65 61 64 69 6e 67 20 73 65 63 74 6f 72 20 32 0d 0a 09 63 61 6c 6c 09 73 65 ┆start reading sector 2 call se┆ 0x0b4a20…0b4a40 74 73 65 63 0d 0a 3b 0d 0a 3b 09 72 65 61 64 20 73 65 63 74 6f 72 73 2c 20 63 6f 75 6e 74 20 6e ┆tsec ; ; read sectors, count n┆ 0x0b4a40…0b4a60 73 65 63 74 73 20 74 6f 20 7a 65 72 6f 0d 0a 09 70 6f 70 09 62 09 3b 31 30 2d 65 72 72 6f 72 20 ┆sects to zero pop b ;10-error ┆ 0x0b4a60…0b4a80 63 6f 75 6e 74 0d 0a 09 6d 76 69 09 62 2c 6e 73 65 63 74 73 0d 0a 72 64 73 65 63 3a 09 3b 72 65 ┆count mvi b,nsects rdsec: ;re┆ 0x0b4a80…0b4aa0 61 64 20 6e 65 78 74 20 73 65 63 74 6f 72 0d 0a 09 70 75 73 68 09 62 09 3b 73 61 76 65 20 73 65 ┆ad next sector push b ;save se┆ 0x0b4aa0…0b4ac0 63 74 6f 72 20 63 6f 75 6e 74 0d 0a 09 63 61 6c 6c 09 72 65 61 64 0d 0a 09 6a 6e 7a 09 62 6f 6f ┆ctor count call read jnz boo┆ 0x0b4ac0…0b4ae0 74 65 72 72 09 3b 72 65 74 72 79 20 69 66 20 65 72 72 6f 72 73 20 6f 63 63 75 72 0d 0a 09 6c 68 ┆terr ;retry if errors occur lh┆ 0x0b4ae0…0b4b00 6c 64 09 69 6f 64 09 3b 69 6e 63 72 65 6d 65 6e 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 09 ┆ld iod ;increment dma address ┆ 0x0b4b00…0b4b20 6c 78 69 09 64 2c 31 32 38 09 3b 73 65 63 74 6f 72 20 73 69 7a 65 0d 0a 09 64 61 64 09 64 09 3b ┆lxi d,128 ;sector size dad d ;┆ 0x0b4b20…0b4b40 69 6e 63 72 65 6d 65 6e 74 65 64 20 64 6d 61 20 61 64 64 72 65 73 73 20 69 6e 20 68 6c 0d 0a 09 ┆incremented dma address in hl ┆ 0x0b4b40…0b4b60 6d 6f 76 09 62 2c 68 0d 0a 09 6d 6f 76 09 63 2c 6c 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c ┆mov b,h mov c,l ;ready for cal┆ 0x0b4b60…0b4b80 6c 20 74 6f 20 73 65 74 20 64 6d 61 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 09 6c 64 61 ┆l to set dma call setdma lda┆ 0x0b4b80…0b4ba0 09 69 6f 73 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 6a 75 73 74 20 72 65 61 64 0d 0a 09 ┆ ios ;sector number just read ┆ 0x0b4ba0…0b4bc0 63 70 69 09 32 36 09 3b 72 65 61 64 20 6c 61 73 74 20 73 65 63 74 6f 72 3f 0d 0a 09 6a 63 09 72 ┆cpi 26 ;read last sector? jc r┆ 0x0b4bc0…0b4be0 64 31 0d 0a 3b 09 6d 75 73 74 20 62 65 20 73 65 63 74 6f 72 20 32 36 2c 20 7a 65 72 6f 20 61 6e ┆d1 ; must be sector 26, zero an┆ 0x0b4be0…0b4c00 64 20 67 6f 20 74 6f 20 6e 65 78 74 20 74 72 61 63 6b 0d 0a 09 6c 64 61 09 69 6f 74 09 3b 67 65 ┆d go to next track lda iot ;ge┆ 0x0b4c00…0b4c20 (48, 0, 7) 74 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 ┆t ; (exactly the same as mds ca┆ 0x0b4c20…0b4c40 6c 6c 29 0d 0a 09 6a 6d 70 09 6c 6f 0d 0a 3b 0d 0a 6c 69 73 74 73 74 3a 0d 0a 09 3b 72 65 74 75 ┆ll) jmp lo ; listst: ;retu┆ 0x0b4c40…0b4c60 72 6e 20 6c 69 73 74 20 73 74 61 74 75 73 0d 0a 09 78 72 61 09 61 0d 0a 09 72 65 74 09 09 3b 61 ┆rn list status xra a ret ;a┆ 0x0b4c60…0b4c80 6c 77 61 79 73 20 6e 6f 74 20 72 65 61 64 79 0d 0a 3b 0d 0a 70 75 6e 63 68 3a 09 3b 70 75 6e 63 ┆lways not ready ; punch: ;punc┆ 0x0b4c80…0b4ca0 68 20 64 65 76 69 63 65 20 6f 75 74 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d ┆h device out ; (exactly the sam┆ 0x0b4ca0…0b4cc0 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 70 6f 0d 0a 3b 0d 0a 72 65 61 64 ┆e as mds call) jmp po ; read┆ 0x0b4cc0…0b4ce0 65 72 3a 09 3b 72 65 61 64 65 72 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 74 6f 20 72 65 67 2d ┆er: ;reader character in to reg-┆ 0x0b4ce0…0b4d00 61 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 ┆a ; (exactly the same as mds ca┆ 0x0b4d00…0b4d20 6c 6c 29 0d 0a 09 6a 6d 70 09 72 69 0d 0a 3b 0d 0a 68 6f 6d 65 3a 09 3b 6d 6f 76 65 20 74 6f 20 ┆ll) jmp ri ; home: ;move to ┆ 0x0b4d20…0b4d40 68 6f 6d 65 20 70 6f 73 69 74 69 6f 6e 0d 0a 3b 09 74 72 65 61 74 20 61 73 20 74 72 61 63 6b 20 ┆home position ; treat as track ┆ 0x0b4d40…0b4d60 30 30 20 73 65 65 6b 0d 0a 09 6d 76 69 09 63 2c 30 0d 0a 09 6a 6d 70 09 73 65 74 74 72 6b 0d 0a ┆00 seek mvi c,0 jmp settrk ┆ 0x0b4d60…0b4d80 3b 0d 0a 73 65 6c 64 73 6b 3a 09 3b 73 65 6c 65 63 74 20 64 69 73 6b 20 67 69 76 65 6e 20 62 79 ┆; seldsk: ;select disk given by┆ 0x0b4d80…0b4da0 20 72 65 67 69 73 74 65 72 20 63 0d 0a 09 6c 78 69 09 68 2c 30 30 30 30 68 09 3b 72 65 74 75 72 ┆ register c lxi h,0000h ;retur┆ 0x0b4da0…0b4dc0 6e 20 30 30 30 30 20 69 66 20 65 72 72 6f 72 0d 0a 09 6d 6f 76 09 61 2c 63 0d 0a 09 63 70 69 09 ┆n 0000 if error mov a,c cpi ┆ 0x0b4dc0…0b4de0 6e 64 69 73 6b 73 09 3b 74 6f 6f 20 6c 61 72 67 65 3f 0d 0a 09 72 6e 63 09 09 3b 6c 65 61 76 65 ┆ndisks ;too large? rnc ;leave┆ 0x0b4de0…0b4e00 20 48 4c 20 3d 20 30 30 30 30 0d 0a 3b 0d 0a 09 61 6e 69 09 31 30 62 09 3b 30 30 20 30 30 20 66 ┆ HL = 0000 ; ani 10b ;00 00 f┆ 0x0b4e00…0b4e20 (48, 0, 8) 6e 63 74 69 6f 6e 20 66 6f 72 20 6e 65 78 74 20 69 2f 6f 20 28 63 6f 6d 6d 61 6e 64 20 69 6e 20 ┆nction for next i/o (command in ┆ 0x0b4e20…0b4e40 72 65 67 2d 63 29 0d 0a 09 6c 78 69 09 68 2c 69 6f 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 20 ┆reg-c) lxi h,iof ;io function ┆ 0x0b4e40…0b4e60 61 64 64 72 65 73 73 0d 0a 09 6d 6f 76 09 61 2c 6d 09 3b 67 65 74 20 69 74 20 74 6f 20 61 63 63 ┆address mov a,m ;get it to acc┆ 0x0b4e60…0b4e80 75 6d 75 6c 61 74 6f 72 20 66 6f 72 20 6d 61 73 6b 69 6e 67 0d 0a 09 61 6e 69 09 31 31 31 31 31 ┆umulator for masking ani 11111┆ 0x0b4e80…0b4ea0 30 30 30 62 09 3b 72 65 6d 6f 76 65 20 70 72 65 76 69 6f 75 73 20 63 6f 6d 6d 61 6e 64 0d 0a 09 ┆000b ;remove previous command ┆ 0x0b4ea0…0b4ec0 6f 72 61 09 63 09 3b 73 65 74 20 74 6f 20 6e 65 77 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6d 6f 76 09 ┆ora c ;set to new command mov ┆ 0x0b4ec0…0b4ee0 6d 2c 61 09 3b 72 65 70 6c 61 63 65 64 20 69 6e 20 69 6f 70 62 0d 0a 3b 09 74 68 65 20 6d 64 73 ┆m,a ;replaced in iopb ; the mds┆ 0x0b4ee0…0b4f00 2d 38 30 30 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 72 65 71 75 69 72 65 73 20 64 69 73 6b 20 62 61 ┆-800 controller requires disk ba┆ 0x0b4f00…0b4f20 6e 6b 20 62 69 74 20 69 6e 20 73 65 63 74 6f 72 20 62 79 74 65 0d 0a 3b 09 6d 61 73 6b 20 74 68 ┆nk bit in sector byte ; mask th┆ 0x0b4f20…0b4f40 65 20 62 69 74 20 66 72 6f 6d 20 74 68 65 20 63 75 72 72 65 6e 74 20 69 2f 6f 20 66 75 6e 63 74 ┆e bit from the current i/o funct┆ 0x0b4f40…0b4f60 69 6f 6e 0d 0a 09 61 6e 69 09 30 30 31 30 30 30 30 30 62 09 3b 6d 61 73 6b 20 74 68 65 20 64 69 ┆ion ani 00100000b ;mask the di┆ 0x0b4f60…0b4f80 73 6b 20 73 65 6c 65 63 74 20 62 69 74 0d 0a 09 6c 78 69 09 68 2c 69 6f 73 09 09 3b 61 64 64 72 ┆sk select bit lxi h,ios ;addr┆ 0x0b4f80…0b4fa0 65 73 73 20 74 68 65 20 73 65 63 74 6f 72 20 73 65 6c 65 63 74 20 62 79 74 65 0d 0a 09 6f 72 61 ┆ess the sector select byte ora┆ 0x0b4fa0…0b4fc0 09 6d 09 09 3b 73 65 6c 65 63 74 20 70 72 6f 70 65 72 20 64 69 73 6b 20 62 61 6e 6b 0d 0a 09 6d ┆ m ;select proper disk bank m┆ 0x0b4fc0…0b4fe0 6f 76 09 6d 2c 61 09 09 3b 73 65 74 20 64 69 73 6b 20 73 65 6c 65 63 74 20 62 69 74 20 6f 6e 2f ┆ov m,a ;set disk select bit on/┆ 0x0b4fe0…0b5000 6f 66 66 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 77 61 69 74 69 6f 3a 0d 0a 09 6d 76 69 09 63 2c 72 65 ┆off ret ; waitio: mvi c,re┆ 0x0b5000…0b5020 (48, 0, 9) 6e 63 68 20 63 68 61 72 20 66 72 6f 6d 20 63 20 74 6f 20 70 75 6e 63 68 20 64 65 76 69 63 65 0d ┆nch char from c to punch device ┆ 0x0b5020…0b5040 0a 6c 6f 09 65 71 75 09 30 66 38 30 66 68 09 3b 6c 69 73 74 20 66 72 6f 6d 20 63 20 74 6f 20 6c ┆ lo equ 0f80fh ;list from c to l┆ 0x0b5040…0b5060 69 73 74 20 64 65 76 69 63 65 0d 0a 63 73 74 73 09 65 71 75 09 30 66 38 31 32 68 09 3b 63 6f 6e ┆ist device csts equ 0f812h ;con┆ 0x0b5060…0b5080 73 6f 6c 65 20 73 74 61 74 75 73 20 30 30 2f 66 66 20 74 6f 20 72 65 67 69 73 74 65 72 20 61 0d ┆sole status 00/ff to register a ┆ 0x0b5080…0b50a0 0a 3b 0d 0a 3b 09 64 69 73 6b 20 70 6f 72 74 73 20 61 6e 64 20 63 6f 6d 6d 61 6e 64 73 0d 0a 62 ┆ ; ; disk ports and commands b┆ 0x0b50a0…0b50c0 61 73 65 09 65 71 75 09 37 38 68 09 3b 62 61 73 65 20 6f 66 20 64 69 73 6b 20 63 6f 6d 6d 61 6e ┆ase equ 78h ;base of disk comman┆ 0x0b50c0…0b50e0 64 20 69 6f 20 70 6f 72 74 73 0d 0a 64 73 74 61 74 09 65 71 75 09 62 61 73 65 09 3b 64 69 73 6b ┆d io ports dstat equ base ;disk┆ 0x0b50e0…0b5100 20 73 74 61 74 75 73 20 28 69 6e 70 75 74 29 0d 0a 72 74 79 70 65 09 65 71 75 09 62 61 73 65 2b ┆ status (input) rtype equ base+┆ 0x0b5100…0b5120 31 09 3b 72 65 73 75 6c 74 20 74 79 70 65 20 28 69 6e 70 75 74 29 0d 0a 72 62 79 74 65 09 65 71 ┆1 ;result type (input) rbyte eq┆ 0x0b5120…0b5140 75 09 62 61 73 65 2b 33 09 3b 72 65 73 75 6c 74 20 62 79 74 65 20 28 69 6e 70 75 74 29 0d 0a 3b ┆u base+3 ;result byte (input) ;┆ 0x0b5140…0b5160 0d 0a 69 6c 6f 77 09 65 71 75 09 62 61 73 65 2b 31 09 3b 69 6f 70 62 20 6c 6f 77 20 61 64 64 72 ┆ ilow equ base+1 ;iopb low addr┆ 0x0b5160…0b5180 65 73 73 20 28 6f 75 74 70 75 74 29 0d 0a 69 68 69 67 68 09 65 71 75 09 62 61 73 65 2b 32 09 3b ┆ess (output) ihigh equ base+2 ;┆ 0x0b5180…0b51a0 69 6f 70 62 20 68 69 67 68 20 61 64 64 72 65 73 73 20 28 6f 75 74 70 75 74 29 0d 0a 3b 0d 0a 72 ┆iopb high address (output) ; r┆ 0x0b51a0…0b51c0 65 61 64 66 09 65 71 75 09 34 68 09 3b 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 77 72 69 74 ┆eadf equ 4h ;read function writ┆ 0x0b51c0…0b51e0 66 09 65 71 75 09 36 68 09 3b 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 72 65 63 61 6c 09 ┆f equ 6h ;write function recal ┆ 0x0b51e0…0b5200 65 71 75 09 33 68 09 3b 72 65 63 61 6c 69 62 72 61 74 65 20 64 72 69 76 65 0d 0a 69 6f 72 64 79 ┆equ 3h ;recalibrate drive iordy┆ 0x0b5200…0b5220 (48, 0, 10) 74 20 74 72 61 63 6b 20 74 6f 20 72 65 67 69 73 74 65 72 20 61 0d 0a 09 69 6e 72 09 61 0d 0a 09 ┆t track to register a inr a ┆ 0x0b5220…0b5240 6d 6f 76 09 63 2c 61 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 0d 0a 09 63 61 6c 6c 09 73 ┆mov c,a ;ready for call call s┆ 0x0b5240…0b5260 65 74 74 72 6b 0d 0a 09 78 72 61 09 61 09 3b 63 6c 65 61 72 20 73 65 63 74 6f 72 20 6e 75 6d 62 ┆ettrk xra a ;clear sector numb┆ 0x0b5260…0b5280 65 72 0d 0a 72 64 31 3a 09 69 6e 72 09 61 09 3b 74 6f 20 6e 65 78 74 20 73 65 63 74 6f 72 0d 0a ┆er rd1: inr a ;to next sector ┆ 0x0b5280…0b52a0 09 6d 6f 76 09 63 2c 61 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 0d 0a 09 63 61 6c 6c 09 ┆ mov c,a ;ready for call call ┆ 0x0b52a0…0b52c0 73 65 74 73 65 63 0d 0a 09 70 6f 70 09 62 09 3b 72 65 63 61 6c 6c 20 73 65 63 74 6f 72 20 63 6f ┆setsec pop b ;recall sector co┆ 0x0b52c0…0b52e0 75 6e 74 0d 0a 09 64 63 72 09 62 09 3b 64 6f 6e 65 3f 0d 0a 09 6a 6e 7a 09 72 64 73 65 63 0d 0a ┆unt dcr b ;done? jnz rdsec ┆ 0x0b52e0…0b5300 3b 0d 0a 3b 09 64 6f 6e 65 20 77 69 74 68 20 74 68 65 20 6c 6f 61 64 2c 20 72 65 73 65 74 20 64 ┆; ; done with the load, reset d┆ 0x0b5300…0b5320 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 0d 0a 67 6f 63 70 6d 3a 09 3b 28 ┆efault buffer address gocpm: ;(┆ 0x0b5320…0b5340 65 6e 74 65 72 20 68 65 72 65 20 66 72 6f 6d 20 63 6f 6c 64 20 73 74 61 72 74 20 62 6f 6f 74 29 ┆enter here from cold start boot)┆ 0x0b5340…0b5360 0d 0a 3b 09 65 6e 61 62 6c 65 20 72 73 74 30 20 61 6e 64 20 72 73 74 37 0d 0a 09 64 69 0d 0a 09 ┆ ; enable rst0 and rst7 di ┆ 0x0b5360…0b5380 6d 76 69 09 61 2c 31 32 68 09 3b 69 6e 69 74 69 61 6c 69 7a 65 20 63 6f 6d 6d 61 6e 64 0d 0a 09 ┆mvi a,12h ;initialize command ┆ 0x0b5380…0b53a0 6f 75 74 09 72 65 76 72 74 0d 0a 09 78 72 61 09 61 0d 0a 09 6f 75 74 09 69 6e 74 63 09 3b 63 6c ┆out revrt xra a out intc ;cl┆ 0x0b53a0…0b53c0 65 61 72 65 64 0d 0a 09 6d 76 69 09 61 2c 69 6e 74 65 09 3b 72 73 74 30 20 61 6e 64 20 72 73 74 ┆eared mvi a,inte ;rst0 and rst┆ 0x0b53c0…0b53e0 37 20 62 69 74 73 20 6f 6e 0d 0a 09 6f 75 74 09 69 6e 74 63 0d 0a 09 78 72 61 09 61 0d 0a 09 6f ┆7 bits on out intc xra a o┆ 0x0b53e0…0b5400 75 74 09 69 63 6f 6e 09 3b 69 6e 74 65 72 72 75 70 74 20 63 6f 6e 74 72 6f 6c 0d 0a 3b 0d 0a 3b ┆ut icon ;interrupt control ; ;┆ 0x0b5400…0b5420 (48, 0, 11) 6f 72 20 64 72 69 76 65 20 30 2c 31 20 61 6e 64 20 31 30 20 31 30 20 66 6f 72 20 64 72 69 76 65 ┆or drive 0,1 and 10 10 for drive┆ 0x0b5420…0b5440 20 32 2c 33 0d 0a 09 73 74 61 09 64 62 61 6e 6b 09 3b 74 6f 20 73 65 6c 65 63 74 20 64 72 69 76 ┆ 2,3 sta dbank ;to select driv┆ 0x0b5440…0b5460 65 20 62 61 6e 6b 0d 0a 09 6d 6f 76 09 61 2c 63 09 3b 30 30 2c 20 30 31 2c 20 31 30 2c 20 31 31 ┆e bank mov a,c ;00, 01, 10, 11┆ 0x0b5460…0b5480 0d 0a 09 61 6e 69 09 31 62 09 3b 6d 64 73 20 68 61 73 20 30 2c 31 20 61 74 20 37 38 2c 20 32 2c ┆ ani 1b ;mds has 0,1 at 78, 2,┆ 0x0b5480…0b54a0 33 20 61 74 20 38 38 0d 0a 09 6f 72 61 09 61 09 3b 72 65 73 75 6c 74 20 30 30 3f 0d 0a 09 6a 7a ┆3 at 88 ora a ;result 00? jz┆ 0x0b54a0…0b54c0 09 73 65 74 64 72 69 76 65 0d 0a 09 6d 76 69 09 61 2c 30 30 31 31 30 30 30 30 62 09 3b 73 65 6c ┆ setdrive mvi a,00110000b ;sel┆ 0x0b54c0…0b54e0 65 63 74 73 20 64 72 69 76 65 20 31 20 69 6e 20 62 61 6e 6b 0d 0a 73 65 74 64 72 69 76 65 3a 0d ┆ects drive 1 in bank setdrive: ┆ 0x0b54e0…0b5500 0a 09 6d 6f 76 09 62 2c 61 09 3b 73 61 76 65 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6c ┆ mov b,a ;save the function l┆ 0x0b5500…0b5520 78 69 09 68 2c 69 6f 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6d 6f 76 09 61 2c 6d 0d ┆xi h,iof ;io function mov a,m ┆ 0x0b5520…0b5540 0a 09 61 6e 69 09 31 31 30 30 31 31 31 31 62 09 3b 6d 61 73 6b 20 6f 75 74 20 64 69 73 6b 20 6e ┆ ani 11001111b ;mask out disk n┆ 0x0b5540…0b5560 75 6d 62 65 72 0d 0a 09 6f 72 61 09 62 09 3b 6d 61 73 6b 20 69 6e 20 6e 65 77 20 64 69 73 6b 20 ┆umber ora b ;mask in new disk ┆ 0x0b5560…0b5580 6e 75 6d 62 65 72 0d 0a 09 6d 6f 76 09 6d 2c 61 09 3b 73 61 76 65 20 69 74 20 69 6e 20 69 6f 70 ┆number mov m,a ;save it in iop┆ 0x0b5580…0b55a0 62 0d 0a 09 6d 6f 76 09 6c 2c 63 0d 0a 09 6d 76 69 09 68 2c 30 09 3b 48 4c 3d 64 69 73 6b 20 6e ┆b mov l,c mvi h,0 ;HL=disk n┆ 0x0b55a0…0b55c0 75 6d 62 65 72 0d 0a 09 64 61 64 09 68 09 3b 2a 32 0d 0a 09 64 61 64 09 68 09 3b 2a 34 0d 0a 09 ┆umber dad h ;*2 dad h ;*4 ┆ 0x0b55c0…0b55e0 64 61 64 09 68 09 3b 2a 38 0d 0a 09 64 61 64 09 68 09 3b 2a 31 36 0d 0a 09 6c 78 69 09 64 2c 64 ┆dad h ;*8 dad h ;*16 lxi d,d┆ 0x0b55e0…0b5600 70 62 61 73 65 0d 0a 09 64 61 64 09 64 09 3b 48 4c 3d 64 69 73 6b 20 68 65 61 64 65 72 20 74 61 ┆pbase dad d ;HL=disk header ta┆ 0x0b5600…0b5620 (48, 0, 12) 74 72 79 09 3b 6d 61 78 20 72 65 74 72 69 65 73 20 62 65 66 6f 72 65 20 70 65 72 6d 20 65 72 72 ┆try ;max retries before perm err┆ 0x0b5620…0b5640 6f 72 0d 0a 72 65 77 61 69 74 3a 0d 0a 3b 09 73 74 61 72 74 20 74 68 65 20 69 2f 6f 20 66 75 6e ┆or rewait: ; start the i/o fun┆ 0x0b5640…0b5660 63 74 69 6f 6e 20 61 6e 64 20 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 0d 0a 09 ┆ction and wait for completion ┆ 0x0b5660…0b5680 63 61 6c 6c 09 69 6e 74 79 70 65 09 3b 69 6e 20 72 74 79 70 65 0d 0a 09 63 61 6c 6c 09 69 6e 62 ┆call intype ;in rtype call inb┆ 0x0b5680…0b56a0 79 74 65 09 3b 63 6c 65 61 72 73 20 74 68 65 20 63 6f 6e 74 72 6f 6c 6c 65 72 0d 0a 3b 0d 0a 09 ┆yte ;clears the controller ; ┆ 0x0b56a0…0b56c0 6c 64 61 09 64 62 61 6e 6b 09 09 3b 73 65 74 20 62 61 6e 6b 20 66 6c 61 67 73 0d 0a 09 6f 72 61 ┆lda dbank ;set bank flags ora┆ 0x0b56c0…0b56e0 09 61 09 09 3b 7a 65 72 6f 20 69 66 20 64 72 69 76 65 20 30 2c 31 20 61 6e 64 20 6e 7a 20 69 66 ┆ a ;zero if drive 0,1 and nz if┆ 0x0b56e0…0b5700 20 32 2c 33 0d 0a 09 6d 76 69 09 61 2c 69 6f 70 62 20 61 6e 64 20 30 66 66 68 09 3b 6c 6f 77 20 ┆ 2,3 mvi a,iopb and 0ffh ;low ┆ 0x0b5700…0b5720 61 64 64 72 65 73 73 20 66 6f 72 20 69 6f 70 62 0d 0a 09 6d 76 69 09 62 2c 69 6f 70 62 20 73 68 ┆address for iopb mvi b,iopb sh┆ 0x0b5720…0b5740 72 20 38 09 3b 68 69 67 68 20 61 64 64 72 65 73 73 20 66 6f 72 20 69 6f 70 62 0d 0a 09 6a 6e 7a ┆r 8 ;high address for iopb jnz┆ 0x0b5740…0b5760 09 69 6f 64 72 31 09 3b 64 72 69 76 65 20 62 61 6e 6b 20 31 3f 0d 0a 09 6f 75 74 09 69 6c 6f 77 ┆ iodr1 ;drive bank 1? out ilow┆ 0x0b5760…0b5780 09 09 3b 6c 6f 77 20 61 64 64 72 65 73 73 20 74 6f 20 63 6f 6e 74 72 6f 6c 6c 65 72 0d 0a 09 6d ┆ ;low address to controller m┆ 0x0b5780…0b57a0 6f 76 09 61 2c 62 0d 0a 09 6f 75 74 09 69 68 69 67 68 09 3b 68 69 67 68 20 61 64 64 72 65 73 73 ┆ov a,b out ihigh ;high address┆ 0x0b57a0…0b57c0 0d 0a 09 6a 6d 70 09 77 61 69 74 30 09 09 3b 74 6f 20 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c ┆ jmp wait0 ;to wait for compl┆ 0x0b57c0…0b57e0 65 74 65 0d 0a 3b 0d 0a 69 6f 64 72 31 3a 09 3b 64 72 69 76 65 20 62 61 6e 6b 20 31 0d 0a 09 6f ┆ete ; iodr1: ;drive bank 1 o┆ 0x0b57e0…0b5800 75 74 09 69 6c 6f 77 2b 31 30 68 09 3b 38 38 20 66 6f 72 20 64 72 69 76 65 20 62 61 6e 6b 20 31 ┆ut ilow+10h ;88 for drive bank 1┆ 0x0b5800…0b5820 (48, 0, 13) 09 65 71 75 09 34 68 09 3b 69 2f 6f 20 66 69 6e 69 73 68 65 64 20 6d 61 73 6b 0d 0a 63 72 09 65 ┆ equ 4h ;i/o finished mask cr e┆ 0x0b5820…0b5840 71 75 09 30 64 68 09 3b 63 61 72 72 69 61 67 65 20 72 65 74 75 72 6e 0d 0a 6c 66 09 65 71 75 09 ┆qu 0dh ;carriage return lf equ ┆ 0x0b5840…0b5860 30 61 68 09 3b 6c 69 6e 65 20 66 65 65 64 0d 0a 3b 0d 0a 73 69 67 6e 6f 6e 3a 09 3b 73 69 67 6e ┆0ah ;line feed ; signon: ;sign┆ 0x0b5860…0b5880 6f 6e 20 6d 65 73 73 61 67 65 3a 20 78 78 6b 20 63 70 2f 6d 20 76 65 72 73 20 79 2e 79 0d 0a 09 ┆on message: xxk cp/m vers y.y ┆ 0x0b5880…0b58a0 64 62 09 63 72 2c 6c 66 2c 6c 66 0d 0a 09 69 66 09 74 65 73 74 0d 0a 09 64 62 09 27 33 32 27 09 ┆db cr,lf,lf if test db '32' ┆ 0x0b58a0…0b58c0 3b 33 32 6b 20 65 78 61 6d 70 6c 65 20 62 69 6f 73 0d 0a 09 65 6e 64 69 66 0d 0a 09 69 66 09 6e ┆;32k example bios endif if n┆ 0x0b58c0…0b58e0 6f 74 20 74 65 73 74 0d 0a 09 64 62 09 27 30 30 27 09 3b 6d 65 6d 6f 72 79 20 73 69 7a 65 20 66 ┆ot test db '00' ;memory size f┆ 0x0b58e0…0b5900 69 6c 6c 65 64 20 62 79 20 72 65 6c 6f 63 61 74 6f 72 0d 0a 09 65 6e 64 69 66 0d 0a 09 64 62 09 ┆illed by relocator endif db ┆ 0x0b5900…0b5920 27 6b 20 43 50 2f 4d 20 76 65 72 73 20 27 0d 0a 09 64 62 09 76 65 72 73 2f 31 30 2b 27 30 27 2c ┆'k CP/M vers ' db vers/10+'0',┆ 0x0b5920…0b5940 27 2e 27 2c 76 65 72 73 20 6d 6f 64 20 31 30 2b 27 30 27 0d 0a 09 64 62 09 63 72 2c 6c 66 2c 30 ┆'.',vers mod 10+'0' db cr,lf,0┆ 0x0b5940…0b5960 0d 0a 3b 0d 0a 62 6f 6f 74 3a 09 3b 70 72 69 6e 74 20 73 69 67 6e 6f 6e 20 6d 65 73 73 61 67 65 ┆ ; boot: ;print signon message┆ 0x0b5960…0b5980 20 61 6e 64 20 67 6f 20 74 6f 20 63 63 70 0d 0a 3b 09 28 6e 6f 74 65 3a 20 6d 64 73 20 62 6f 6f ┆ and go to ccp ; (note: mds boo┆ 0x0b5980…0b59a0 74 20 69 6e 69 74 69 61 6c 69 7a 65 64 20 69 6f 62 79 74 65 20 61 74 20 30 30 30 33 68 29 0d 0a ┆t initialized iobyte at 0003h) ┆ 0x0b59a0…0b59c0 09 6c 78 69 09 73 70 2c 62 75 66 66 2b 38 30 68 0d 0a 09 6c 78 69 09 68 2c 73 69 67 6e 6f 6e 0d ┆ lxi sp,buff+80h lxi h,signon ┆ 0x0b59c0…0b59e0 0a 09 63 61 6c 6c 09 70 72 6d 73 67 09 3b 70 72 69 6e 74 20 6d 65 73 73 61 67 65 0d 0a 09 78 72 ┆ call prmsg ;print message xr┆ 0x0b59e0…0b5a00 61 09 61 09 3b 63 6c 65 61 72 20 61 63 63 75 6d 75 6c 61 74 6f 72 0d 0a 09 73 74 61 09 63 64 69 ┆a a ;clear accumulator sta cdi┆ 0x0b5a00…0b5a20 (48, 0, 14) 09 73 65 74 20 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 20 74 6f 20 38 ┆ set default buffer address to 8┆ 0x0b5a20…0b5a40 30 68 0d 0a 09 6c 78 69 09 62 2c 62 75 66 66 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 3b ┆0h lxi b,buff call setdma ;┆ 0x0b5a40…0b5a60 0d 0a 3b 09 72 65 73 65 74 20 6d 6f 6e 69 74 6f 72 20 65 6e 74 72 79 20 70 6f 69 6e 74 73 0d 0a ┆ ; reset monitor entry points ┆ 0x0b5a60…0b5a80 09 6d 76 69 09 61 2c 6a 6d 70 0d 0a 09 73 74 61 09 30 0d 0a 09 6c 78 69 09 68 2c 77 62 6f 6f 74 ┆ mvi a,jmp sta 0 lxi h,wboot┆ 0x0b5a80…0b5aa0 65 0d 0a 09 73 68 6c 64 09 31 09 3b 6a 6d 70 20 77 62 6f 6f 74 20 61 74 20 6c 6f 63 61 74 69 6f ┆e shld 1 ;jmp wboot at locatio┆ 0x0b5aa0…0b5ac0 6e 20 30 30 0d 0a 09 73 74 61 09 35 0d 0a 09 6c 78 69 09 68 2c 62 64 6f 73 0d 0a 09 73 68 6c 64 ┆n 00 sta 5 lxi h,bdos shld┆ 0x0b5ac0…0b5ae0 09 36 09 3b 6a 6d 70 20 62 64 6f 73 20 61 74 20 6c 6f 63 61 74 69 6f 6e 20 35 0d 0a 09 69 66 09 ┆ 6 ;jmp bdos at location 5 if ┆ 0x0b5ae0…0b5b00 6e 6f 74 20 74 65 73 74 0d 0a 09 73 74 61 09 37 2a 38 09 3b 6a 6d 70 20 74 6f 20 6d 6f 6e 38 30 ┆not test sta 7*8 ;jmp to mon80┆ 0x0b5b00…0b5b20 20 28 6d 61 79 20 68 61 76 65 20 62 65 65 6e 20 63 68 61 6e 67 65 64 20 62 79 20 64 64 74 29 0d ┆ (may have been changed by ddt) ┆ 0x0b5b20…0b5b40 0a 09 6c 78 69 09 68 2c 6d 6f 6e 38 30 0d 0a 09 73 68 6c 64 09 37 2a 38 2b 31 0d 0a 09 65 6e 64 ┆ lxi h,mon80 shld 7*8+1 end┆ 0x0b5b40…0b5b60 69 66 0d 0a 3b 09 6c 65 61 76 65 20 69 6f 62 79 74 65 20 73 65 74 0d 0a 3b 09 70 72 65 76 69 6f ┆if ; leave iobyte set ; previo┆ 0x0b5b60…0b5b80 75 73 6c 79 20 73 65 6c 65 63 74 65 64 20 64 69 73 6b 20 77 61 73 20 62 2c 20 73 65 6e 64 20 70 ┆usly selected disk was b, send p┆ 0x0b5b80…0b5ba0 61 72 61 6d 65 74 65 72 20 74 6f 20 63 70 6d 0d 0a 09 6c 64 61 09 63 64 69 73 6b 09 3b 6c 61 73 ┆arameter to cpm lda cdisk ;las┆ 0x0b5ba0…0b5bc0 74 20 6c 6f 67 67 65 64 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b ┆t logged disk number mov c,a ;┆ 0x0b5bc0…0b5be0 73 65 6e 64 20 74 6f 20 63 63 70 20 74 6f 20 6c 6f 67 20 69 74 20 69 6e 0d 0a 09 65 69 0d 0a 09 ┆send to ccp to log it in ei ┆ 0x0b5be0…0b5c00 6a 6d 70 09 63 70 6d 62 0d 0a 3b 0d 0a 3b 09 65 72 72 6f 72 20 63 6f 6e 64 69 74 69 6f 6e 20 6f ┆jmp cpmb ; ; error condition o┆ 0x0b5c00…0b5c20 (48, 0, 15) 62 6c 65 20 61 64 64 72 65 73 73 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 73 65 74 74 72 6b 3a ┆ble address ret ; ; settrk:┆ 0x0b5c20…0b5c40 09 3b 73 65 74 20 74 72 61 63 6b 20 61 64 64 72 65 73 73 20 67 69 76 65 6e 20 62 79 20 63 0d 0a ┆ ;set track address given by c ┆ 0x0b5c40…0b5c60 09 6c 78 69 09 68 2c 69 6f 74 0d 0a 09 6d 6f 76 09 6d 2c 63 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 73 ┆ lxi h,iot mov m,c ret ; s┆ 0x0b5c60…0b5c80 65 74 73 65 63 3a 09 3b 73 65 74 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 67 69 76 65 6e 20 ┆etsec: ;set sector number given ┆ 0x0b5c80…0b5ca0 62 79 20 63 0d 0a 09 6c 78 69 09 68 2c 69 6f 73 0d 0a 09 6d 6f 76 09 6d 2c 63 0d 0a 09 72 65 74 ┆by c lxi h,ios mov m,c ret┆ 0x0b5ca0…0b5cc0 0d 0a 73 65 63 74 72 61 6e 3a 0d 0a 09 09 3b 74 72 61 6e 73 6c 61 74 65 20 73 65 63 74 6f 72 20 ┆ sectran: ;translate sector ┆ 0x0b5cc0…0b5ce0 62 63 20 75 73 69 6e 67 20 74 61 62 6c 65 20 61 74 20 64 65 0d 0a 09 6d 76 69 09 62 2c 30 09 3b ┆bc using table at de mvi b,0 ;┆ 0x0b5ce0…0b5d00 64 6f 75 62 6c 65 20 70 72 65 63 69 73 69 6f 6e 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 69 ┆double precision sector number i┆ 0x0b5d00…0b5d20 6e 20 42 43 0d 0a 09 78 63 68 67 09 09 3b 74 72 61 6e 73 6c 61 74 65 20 74 61 62 6c 65 20 61 64 ┆n BC xchg ;translate table ad┆ 0x0b5d20…0b5d40 64 72 65 73 73 20 74 6f 20 48 4c 0d 0a 09 64 61 64 09 62 09 3b 74 72 61 6e 73 6c 61 74 65 28 73 ┆dress to HL dad b ;translate(s┆ 0x0b5d40…0b5d60 65 63 74 6f 72 29 20 61 64 64 72 65 73 73 0d 0a 09 6d 6f 76 09 61 2c 6d 09 3b 74 72 61 6e 73 6c ┆ector) address mov a,m ;transl┆ 0x0b5d60…0b5d80 61 74 65 64 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 74 6f 20 41 0d 0a 09 73 74 61 09 69 6f ┆ated sector number to A sta io┆ 0x0b5d80…0b5da0 73 0d 0a 09 6d 6f 76 09 6c 2c 61 09 3b 72 65 74 75 72 6e 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 ┆s mov l,a ;return sector numbe┆ 0x0b5da0…0b5dc0 72 20 69 6e 20 4c 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 73 65 74 64 6d 61 3a 09 3b 73 65 74 20 64 6d ┆r in L ret ; setdma: ;set dm┆ 0x0b5dc0…0b5de0 61 20 61 64 64 72 65 73 73 20 67 69 76 65 6e 20 62 79 20 72 65 67 73 20 62 2c 63 0d 0a 09 6d 6f ┆a address given by regs b,c mo┆ 0x0b5de0…0b5e00 76 09 6c 2c 63 0d 0a 09 6d 6f 76 09 68 2c 62 0d 0a 09 73 68 6c 64 09 69 6f 64 0d 0a 09 72 65 74 ┆v l,c mov h,b shld iod ret┆ 0x0b5e00…0b5e20 (48, 1, 1) 30 0d 0a 09 6d 6f 76 09 61 2c 62 0d 0a 09 6f 75 74 09 69 68 69 67 68 2b 31 30 68 0d 0a 3b 0d 0a ┆0 mov a,b out ihigh+10h ; ┆ 0x0b5e20…0b5e40 77 61 69 74 30 3a 09 63 61 6c 6c 09 69 6e 73 74 61 74 09 09 3b 77 61 69 74 20 66 6f 72 20 63 6f ┆wait0: call instat ;wait for co┆ 0x0b5e40…0b5e60 6d 70 6c 65 74 69 6f 6e 0d 0a 09 61 6e 69 09 69 6f 72 64 79 09 09 3b 72 65 61 64 79 3f 0d 0a 09 ┆mpletion ani iordy ;ready? ┆ 0x0b5e60…0b5e80 6a 7a 09 77 61 69 74 30 0d 0a 3b 0d 0a 3b 09 63 68 65 63 6b 20 69 6f 20 63 6f 6d 70 6c 65 74 69 ┆jz wait0 ; ; check io completi┆ 0x0b5e80…0b5ea0 6f 6e 20 6f 6b 0d 0a 09 63 61 6c 6c 09 69 6e 74 79 70 65 09 09 3b 6d 75 73 74 20 62 65 20 69 6f ┆on ok call intype ;must be io┆ 0x0b5ea0…0b5ec0 20 63 6f 6d 70 6c 65 74 65 20 28 30 30 29 20 75 6e 6c 69 6e 6b 65 64 0d 0a 3b 09 30 30 20 75 6e ┆ complete (00) unlinked ; 00 un┆ 0x0b5ec0…0b5ee0 6c 69 6e 6b 65 64 20 69 2f 6f 20 63 6f 6d 70 6c 65 74 65 2c 20 20 20 20 30 31 20 6c 69 6e 6b 65 ┆linked i/o complete, 01 linke┆ 0x0b5ee0…0b5f00 64 20 69 2f 6f 20 63 6f 6d 70 6c 65 74 65 20 28 6e 6f 74 20 75 73 65 64 29 0d 0a 3b 09 31 30 20 ┆d i/o complete (not used) ; 10 ┆ 0x0b5f00…0b5f20 64 69 73 6b 20 73 74 61 74 75 73 20 63 68 61 6e 67 65 64 20 20 20 20 20 20 20 31 31 20 28 6e 6f ┆disk status changed 11 (no┆ 0x0b5f20…0b5f40 74 20 75 73 65 64 29 0d 0a 09 63 70 69 09 31 30 62 09 09 3b 72 65 61 64 79 20 73 74 61 74 75 73 ┆t used) cpi 10b ;ready status┆ 0x0b5f40…0b5f60 20 63 68 61 6e 67 65 3f 0d 0a 09 6a 7a 09 77 72 65 61 64 79 0d 0a 3b 0d 0a 3b 09 6d 75 73 74 20 ┆ change? jz wready ; ; must ┆ 0x0b5f60…0b5f80 62 65 20 30 30 20 69 6e 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 0d 0a 09 6f 72 61 09 61 ┆be 00 in the accumulator ora a┆ 0x0b5f80…0b5fa0 0d 0a 09 6a 6e 7a 09 77 65 72 72 6f 72 09 09 3b 73 6f 6d 65 20 6f 74 68 65 72 20 63 6f 6e 64 69 ┆ jnz werror ;some other condi┆ 0x0b5fa0…0b5fc0 74 69 6f 6e 2c 20 72 65 74 72 79 0d 0a 3b 0d 0a 3b 09 63 68 65 63 6b 20 69 2f 6f 20 65 72 72 6f ┆tion, retry ; ; check i/o erro┆ 0x0b5fc0…0b5fe0 72 20 62 69 74 73 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 0d 0a 09 72 61 6c 0d 0a 09 6a 63 09 ┆r bits call inbyte ral jc ┆ 0x0b5fe0…0b6000 77 72 65 61 64 79 09 09 3b 75 6e 69 74 20 6e 6f 74 20 72 65 61 64 79 0d 0a 09 72 61 72 0d 0a 09 ┆wready ;unit not ready rar ┆ 0x0b6000…0b6020 (48, 1, 2) 69 73 6b 20 62 61 6e 6b 20 30 30 20 69 66 20 64 72 69 76 65 20 30 2c 31 0d 0a 09 09 09 3b 09 20 ┆isk bank 00 if drive 0,1 ; ┆ 0x0b6020…0b6040 20 20 31 30 20 69 66 20 64 72 69 76 65 20 32 2c 33 0d 0a 69 6f 70 62 3a 09 3b 69 6f 20 70 61 72 ┆ 10 if drive 2,3 iopb: ;io par┆ 0x0b6040…0b6060 61 6d 65 74 65 72 20 62 6c 6f 63 6b 0d 0a 09 64 62 09 38 30 68 09 3b 6e 6f 72 6d 61 6c 20 69 2f ┆ameter block db 80h ;normal i/┆ 0x0b6060…0b6080 6f 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 69 6f 66 3a 09 64 62 09 72 65 61 64 66 09 3b 69 6f 20 66 ┆o operation iof: db readf ;io f┆ 0x0b6080…0b60a0 75 6e 63 74 69 6f 6e 2c 20 69 6e 69 74 69 61 6c 20 72 65 61 64 0d 0a 69 6f 6e 3a 09 64 62 09 31 ┆unction, initial read ion: db 1┆ 0x0b60a0…0b60c0 09 3b 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 20 74 6f 20 72 65 61 64 0d 0a 69 6f 74 ┆ ;number of sectors to read iot┆ 0x0b60c0…0b60e0 3a 09 64 62 09 6f 66 66 73 65 74 09 3b 74 72 61 63 6b 20 6e 75 6d 62 65 72 0d 0a 69 6f 73 3a 09 ┆: db offset ;track number ios: ┆ 0x0b60e0…0b6100 64 62 09 31 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 0d 0a 69 6f 64 3a 09 64 77 09 62 75 66 ┆db 1 ;sector number iod: dw buf┆ 0x0b6100…0b6120 66 09 3b 69 6f 20 61 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 65 66 69 6e 65 20 72 61 ┆f ;io address ; ; ; define ra┆ 0x0b6120…0b6140 6d 20 61 72 65 61 73 20 66 6f 72 20 62 64 6f 73 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 09 65 6e 64 ┆m areas for bdos operation end┆ 0x0b6140…0b6160 65 66 0d 0a 09 65 6e 64 0d 0a 3b 09 4d 44 53 2d 38 30 30 20 49 2f 4f 20 44 72 69 76 65 72 73 20 ┆ef end ; MDS-800 I/O Drivers ┆ 0x0b6160…0b6180 66 6f 72 20 43 50 2f 4d 20 32 2e 32 0d 0a 3b 09 28 66 6f 75 72 20 64 72 69 76 65 20 73 69 6e 67 ┆for CP/M 2.2 ; (four drive sing┆ 0x0b6180…0b61a0 6c 65 20 64 65 6e 73 69 74 79 20 76 65 72 73 69 6f 6e 29 0d 0a 3b 0d 0a 3b 09 56 65 72 73 69 6f ┆le density version) ; ; Versio┆ 0x0b61a0…0b61c0 6e 20 32 2e 32 20 46 65 62 72 75 61 72 79 2c 20 31 39 38 30 0d 0a 3b 0d 0a 76 65 72 73 09 65 71 ┆n 2.2 February, 1980 ; vers eq┆ 0x0b61c0…0b61e0 75 09 32 32 09 3b 76 65 72 73 69 6f 6e 20 32 2e 32 0d 0a 3b 0d 0a 3b 09 43 6f 70 79 72 69 67 68 ┆u 22 ;version 2.2 ; ; Copyrigh┆ 0x0b61e0…0b6200 74 20 28 63 29 20 31 39 38 30 0d 0a 3b 09 44 69 67 69 74 61 6c 20 52 65 73 65 61 72 63 68 0d 0a ┆t (c) 1980 ; Digital Research ┆ 0x0b6200…0b6220 (48, 1, 3) 79 20 38 30 68 29 0d 0a 3b 0d 0a 3b 09 28 72 65 61 64 20 61 6e 64 20 77 72 69 74 65 20 61 73 73 ┆y 80h) ; ; (read and write ass┆ 0x0b6220…0b6240 75 6d 65 20 70 72 65 76 69 6f 75 73 20 63 61 6c 6c 73 20 74 6f 20 73 65 74 20 75 70 20 74 68 65 ┆ume previous calls to set up the┆ 0x0b6240…0b6260 20 69 6f 20 70 61 72 61 6d 65 74 65 72 73 29 0d 0a 3b 09 72 65 61 64 09 72 65 61 64 20 74 72 61 ┆ io parameters) ; read read tra┆ 0x0b6260…0b6280 63 6b 2f 73 65 63 74 6f 72 20 74 6f 20 70 72 65 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d ┆ck/sector to preset dma address ┆ 0x0b6280…0b62a0 0a 3b 09 77 72 69 74 65 09 77 72 69 74 65 20 74 72 61 63 6b 2f 73 65 63 74 6f 72 20 66 72 6f 6d ┆ ; write write track/sector from┆ 0x0b62a0…0b62c0 20 70 72 65 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b 09 6a 75 6d 70 20 76 ┆ preset dma address ; ; jump v┆ 0x0b62c0…0b62e0 65 63 74 6f 72 20 66 6f 72 20 69 6e 64 69 76 69 75 61 6c 20 72 6f 75 74 69 6e 65 73 0d 0a 09 6a ┆ector for indiviual routines j┆ 0x0b62e0…0b6300 6d 70 09 62 6f 6f 74 0d 0a 77 62 6f 6f 74 65 3a 09 6a 6d 70 09 77 62 6f 6f 74 0d 0a 09 6a 6d 70 ┆mp boot wboote: jmp wboot jmp┆ 0x0b6300…0b6320 09 63 6f 6e 73 74 0d 0a 09 6a 6d 70 09 63 6f 6e 69 6e 0d 0a 09 6a 6d 70 09 63 6f 6e 6f 75 74 0d ┆ const jmp conin jmp conout ┆ 0x0b6320…0b6340 0a 09 6a 6d 70 09 6c 69 73 74 0d 0a 09 6a 6d 70 09 70 75 6e 63 68 0d 0a 09 6a 6d 70 09 72 65 61 ┆ jmp list jmp punch jmp rea┆ 0x0b6340…0b6360 64 65 72 0d 0a 09 6a 6d 70 09 68 6f 6d 65 0d 0a 09 6a 6d 70 09 73 65 6c 64 73 6b 0d 0a 09 6a 6d ┆der jmp home jmp seldsk jm┆ 0x0b6360…0b6380 70 09 73 65 74 74 72 6b 0d 0a 09 6a 6d 70 09 73 65 74 73 65 63 0d 0a 09 6a 6d 70 09 73 65 74 64 ┆p settrk jmp setsec jmp setd┆ 0x0b6380…0b63a0 6d 61 0d 0a 09 6a 6d 70 09 72 65 61 64 0d 0a 09 6a 6d 70 09 77 72 69 74 65 0d 0a 09 6a 6d 70 09 ┆ma jmp read jmp write jmp ┆ 0x0b63a0…0b63c0 6c 69 73 74 73 74 09 3b 6c 69 73 74 20 73 74 61 74 75 73 0d 0a 09 6a 6d 70 09 73 65 63 74 72 61 ┆listst ;list status jmp sectra┆ 0x0b63c0…0b63e0 6e 0d 0a 3b 0d 0a 09 6d 61 63 6c 69 62 09 64 69 73 6b 64 65 66 09 3b 6c 6f 61 64 20 74 68 65 20 ┆n ; maclib diskdef ;load the ┆ 0x0b63e0…0b6400 64 69 73 6b 20 64 65 66 69 6e 69 74 69 6f 6e 20 6c 69 62 72 61 72 79 0d 0a 09 64 69 73 6b 73 09 ┆disk definition library disks ┆ 0x0b6400…0b6420 (48, 1, 4) 3b 73 69 67 6e 6f 6e 20 6d 65 73 73 61 67 65 3a 20 78 78 6b 20 63 70 2f 6d 20 76 65 72 73 20 79 ┆;signon message: xxk cp/m vers y┆ 0x0b6420…0b6440 2e 79 0d 0a 09 64 62 09 63 72 2c 6c 66 2c 6c 66 0d 0a 09 69 66 09 74 65 73 74 0d 0a 09 64 62 09 ┆.y db cr,lf,lf if test db ┆ 0x0b6440…0b6460 27 33 32 27 09 3b 33 32 6b 20 65 78 61 6d 70 6c 65 20 62 69 6f 73 0d 0a 09 65 6e 64 69 66 0d 0a ┆'32' ;32k example bios endif ┆ 0x0b6460…0b6480 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 09 64 62 09 27 30 30 27 09 3b 6d 65 6d 6f 72 79 20 73 ┆ if not test db '00' ;memory s┆ 0x0b6480…0b64a0 69 7a 65 20 66 69 6c 6c 65 64 20 62 79 20 72 65 6c 6f 63 61 74 6f 72 0d 0a 09 65 6e 64 69 66 0d ┆ize filled by relocator endif ┆ 0x0b64a0…0b64c0 0a 09 64 62 09 27 6b 20 43 50 2f 4d 20 76 65 72 73 20 27 0d 0a 09 64 62 09 76 65 72 73 2f 31 30 ┆ db 'k CP/M vers ' db vers/10┆ 0x0b64c0…0b64e0 2b 27 30 27 2c 27 2e 27 2c 76 65 72 73 20 6d 6f 64 20 31 30 2b 27 30 27 0d 0a 09 64 62 09 63 72 ┆+'0','.',vers mod 10+'0' db cr┆ 0x0b64e0…0b6500 2c 6c 66 2c 30 0d 0a 3b 0d 0a 62 6f 6f 74 3a 09 3b 70 72 69 6e 74 20 73 69 67 6e 6f 6e 20 6d 65 ┆,lf,0 ; boot: ;print signon me┆ 0x0b6500…0b6520 73 73 61 67 65 20 61 6e 64 20 67 6f 20 74 6f 20 63 63 70 0d 0a 3b 09 28 6e 6f 74 65 3a 20 6d 64 ┆ssage and go to ccp ; (note: md┆ 0x0b6520…0b6540 73 20 62 6f 6f 74 20 69 6e 69 74 69 61 6c 69 7a 65 64 20 69 6f 62 79 74 65 20 61 74 20 30 30 30 ┆s boot initialized iobyte at 000┆ 0x0b6540…0b6560 33 68 29 0d 0a 09 6c 78 69 09 73 70 2c 62 75 66 66 2b 38 30 68 0d 0a 09 6c 78 69 09 68 2c 73 69 ┆3h) lxi sp,buff+80h lxi h,si┆ 0x0b6560…0b6580 67 6e 6f 6e 0d 0a 09 63 61 6c 6c 09 70 72 6d 73 67 09 3b 70 72 69 6e 74 20 6d 65 73 73 61 67 65 ┆gnon call prmsg ;print message┆ 0x0b6580…0b65a0 0d 0a 09 78 72 61 09 61 09 3b 63 6c 65 61 72 20 61 63 63 75 6d 75 6c 61 74 6f 72 0d 0a 09 73 74 ┆ xra a ;clear accumulator st┆ 0x0b65a0…0b65c0 61 09 63 64 69 73 6b 09 3b 73 65 74 20 69 6e 69 74 69 61 6c 6c 79 20 74 6f 20 64 69 73 6b 20 61 ┆a cdisk ;set initially to disk a┆ 0x0b65c0…0b65e0 0d 0a 09 6a 6d 70 09 67 6f 63 70 6d 09 3b 67 6f 20 74 6f 20 63 70 2f 6d 0d 0a 3b 0d 0a 3b 0d 0a ┆ jmp gocpm ;go to cp/m ; ; ┆ 0x0b65e0…0b6600 77 62 6f 6f 74 3a 3b 09 6c 6f 61 64 65 72 20 6f 6e 20 74 72 61 63 6b 20 30 2c 20 73 65 63 74 6f ┆wboot:; loader on track 0, secto┆ 0x0b6600…0b6620 (48, 1, 5) 61 6e 69 09 31 31 31 31 31 31 31 30 62 09 3b 61 6e 79 20 6f 74 68 65 72 20 65 72 72 6f 72 73 3f ┆ani 11111110b ;any other errors?┆ 0x0b6620…0b6640 20 20 28 64 65 6c 65 74 65 64 20 64 61 74 61 20 6f 6b 29 0d 0a 09 6a 6e 7a 09 77 65 72 72 6f 72 ┆ (deleted data ok) jnz werror┆ 0x0b6640…0b6660 0d 0a 3b 0d 0a 3b 09 72 65 61 64 20 6f 72 20 77 72 69 74 65 20 69 73 20 6f 6b 2c 20 61 63 63 75 ┆ ; ; read or write is ok, accu┆ 0x0b6660…0b6680 6d 75 6c 61 74 6f 72 20 63 6f 6e 74 61 69 6e 73 20 7a 65 72 6f 0d 0a 09 72 65 74 0d 0a 3b 0d 0a ┆mulator contains zero ret ; ┆ 0x0b6680…0b66a0 77 72 65 61 64 79 3a 09 3b 6e 6f 74 20 72 65 61 64 79 2c 20 74 72 65 61 74 20 61 73 20 65 72 72 ┆wready: ;not ready, treat as err┆ 0x0b66a0…0b66c0 6f 72 20 66 6f 72 20 6e 6f 77 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 09 09 3b 63 6c 65 61 72 ┆or for now call inbyte ;clear┆ 0x0b66c0…0b66e0 20 72 65 73 75 6c 74 20 62 79 74 65 0d 0a 09 6a 6d 70 09 74 72 79 63 6f 75 6e 74 0d 0a 3b 0d 0a ┆ result byte jmp trycount ; ┆ 0x0b66e0…0b6700 77 65 72 72 6f 72 3a 09 3b 72 65 74 75 72 6e 20 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 ┆werror: ;return hardware malfunc┆ 0x0b6700…0b6720 74 69 6f 6e 20 28 63 72 63 2c 20 74 72 61 63 6b 2c 20 73 65 65 6b 2c 20 65 74 63 2e 29 0d 0a 3b ┆tion (crc, track, seek, etc.) ;┆ 0x0b6720…0b6740 09 74 68 65 20 6d 64 73 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 68 61 73 20 72 65 74 75 72 6e 65 64 ┆ the mds controller has returned┆ 0x0b6740…0b6760 20 61 20 62 69 74 20 69 6e 20 65 61 63 68 20 70 6f 73 69 74 69 6f 6e 0d 0a 3b 09 6f 66 20 74 68 ┆ a bit in each position ; of th┆ 0x0b6760…0b6780 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 2c 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 ┆e accumulator, corresponding to ┆ 0x0b6780…0b67a0 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e 73 3a 0d 0a 3b 09 30 09 2d 20 64 65 6c 65 74 65 64 20 64 ┆the conditions: ; 0 - deleted d┆ 0x0b67a0…0b67c0 61 74 61 20 28 61 63 63 65 70 74 65 64 20 61 73 20 6f 6b 20 61 62 6f 76 65 29 0d 0a 3b 09 31 09 ┆ata (accepted as ok above) ; 1 ┆ 0x0b67c0…0b67e0 2d 20 63 72 63 20 65 72 72 6f 72 0d 0a 3b 09 32 09 2d 20 73 65 65 6b 20 65 72 72 6f 72 0d 0a 3b ┆- crc error ; 2 - seek error ;┆ 0x0b67e0…0b6800 09 33 09 2d 20 61 64 64 72 65 73 73 20 65 72 72 6f 72 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c ┆ 3 - address error (hardware mal┆ 0x0b6800…0b6820 (48, 1, 6) 3b 09 42 6f 78 20 35 37 39 2c 20 50 61 63 69 66 69 63 20 47 72 6f 76 65 0d 0a 3b 09 43 61 6c 69 ┆; Box 579, Pacific Grove ; Cali┆ 0x0b6820…0b6840 66 6f 72 6e 69 61 2c 20 39 33 39 35 30 0d 0a 3b 0d 0a 3b 0d 0a 74 72 75 65 09 65 71 75 09 30 66 ┆fornia, 93950 ; ; true equ 0f┆ 0x0b6840…0b6860 66 66 66 68 09 3b 76 61 6c 75 65 20 6f 66 20 22 74 72 75 65 22 0d 0a 66 61 6c 73 65 09 65 71 75 ┆fffh ;value of "true" false equ┆ 0x0b6860…0b6880 09 6e 6f 74 20 74 72 75 65 09 3b 22 66 61 6c 73 65 22 0d 0a 74 65 73 74 09 65 71 75 09 66 61 6c ┆ not true ;"false" test equ fal┆ 0x0b6880…0b68a0 73 65 09 3b 74 72 75 65 20 69 66 20 74 65 73 74 20 62 69 6f 73 0d 0a 3b 0d 0a 09 69 66 09 74 65 ┆se ;true if test bios ; if te┆ 0x0b68a0…0b68c0 73 74 0d 0a 62 69 61 73 09 65 71 75 09 30 33 34 30 30 68 09 3b 62 61 73 65 20 6f 66 20 43 43 50 ┆st bias equ 03400h ;base of CCP┆ 0x0b68c0…0b68e0 20 69 6e 20 74 65 73 74 20 73 79 73 74 65 6d 0d 0a 09 65 6e 64 69 66 0d 0a 09 69 66 09 6e 6f 74 ┆ in test system endif if not┆ 0x0b68e0…0b6900 20 74 65 73 74 0d 0a 62 69 61 73 09 65 71 75 09 30 30 30 30 68 09 3b 67 65 6e 65 72 61 74 65 20 ┆ test bias equ 0000h ;generate ┆ 0x0b6900…0b6920 72 65 6c 6f 63 61 74 61 62 6c 65 20 63 70 2f 6d 20 73 79 73 74 65 6d 0d 0a 09 65 6e 64 69 66 0d ┆relocatable cp/m system endif ┆ 0x0b6920…0b6940 0a 3b 0d 0a 70 61 74 63 68 09 65 71 75 09 31 36 30 30 68 0d 0a 3b 0d 0a 09 6f 72 67 09 70 61 74 ┆ ; patch equ 1600h ; org pat┆ 0x0b6940…0b6960 63 68 0d 0a 63 70 6d 62 09 65 71 75 09 24 2d 70 61 74 63 68 09 3b 62 61 73 65 20 6f 66 20 63 70 ┆ch cpmb equ $-patch ;base of cp┆ 0x0b6960…0b6980 6d 20 63 6f 6e 73 6f 6c 65 20 70 72 6f 63 65 73 73 6f 72 0d 0a 62 64 6f 73 09 65 71 75 09 38 30 ┆m console processor bdos equ 80┆ 0x0b6980…0b69a0 36 68 2b 63 70 6d 62 09 3b 62 61 73 69 63 20 64 6f 73 20 28 72 65 73 69 64 65 6e 74 20 70 6f 72 ┆6h+cpmb ;basic dos (resident por┆ 0x0b69a0…0b69c0 74 69 6f 6e 29 0d 0a 63 70 6d 6c 09 65 71 75 09 24 2d 63 70 6d 62 09 3b 6c 65 6e 67 74 68 20 28 ┆tion) cpml equ $-cpmb ;length (┆ 0x0b69c0…0b69e0 69 6e 20 62 79 74 65 73 29 20 6f 66 20 63 70 6d 20 73 79 73 74 65 6d 0d 0a 6e 73 65 63 74 73 09 ┆in bytes) of cpm system nsects ┆ 0x0b69e0…0b6a00 65 71 75 09 63 70 6d 6c 2f 31 32 38 09 3b 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 20 ┆equ cpml/128 ;number of sectors ┆ 0x0b6a00…0b6a20 (48, 1, 7) 34 09 3b 66 6f 75 72 20 64 69 73 6b 73 0d 0a 09 64 69 73 6b 64 65 66 09 30 2c 31 2c 32 36 2c 36 ┆4 ;four disks diskdef 0,1,26,6┆ 0x0b6a20…0b6a40 2c 31 30 32 34 2c 32 34 33 2c 36 34 2c 36 34 2c 6f 66 66 73 65 74 0d 0a 09 64 69 73 6b 64 65 66 ┆,1024,243,64,64,offset diskdef┆ 0x0b6a40…0b6a60 09 31 2c 30 0d 0a 09 64 69 73 6b 64 65 66 09 32 2c 30 0d 0a 09 64 69 73 6b 64 65 66 09 33 2c 30 ┆ 1,0 diskdef 2,0 diskdef 3,0┆ 0x0b6a60…0b6a80 0d 0a 3b 09 65 6e 64 65 66 20 6f 63 63 75 72 73 20 61 74 20 65 6e 64 20 6f 66 20 61 73 73 65 6d ┆ ; endef occurs at end of assem┆ 0x0b6a80…0b6aa0 62 6c 79 0d 0a 3b 0d 0a 3b 09 65 6e 64 20 6f 66 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 2d 20 69 6e ┆bly ; ; end of controller - in┆ 0x0b6aa0…0b6ac0 64 65 70 65 6e 64 65 6e 74 20 63 6f 64 65 2c 20 74 68 65 20 72 65 6d 61 69 6e 69 6e 67 20 73 75 ┆dependent code, the remaining su┆ 0x0b6ac0…0b6ae0 62 72 6f 75 74 69 6e 65 73 0d 0a 3b 09 61 72 65 20 74 61 69 6c 6f 72 65 64 20 74 6f 20 74 68 65 ┆broutines ; are tailored to the┆ 0x0b6ae0…0b6b00 20 70 61 72 74 69 63 75 6c 61 72 20 6f 70 65 72 61 74 69 6e 67 20 65 6e 76 69 72 6f 6e 6d 65 6e ┆ particular operating environmen┆ 0x0b6b00…0b6b20 74 2c 20 61 6e 64 20 6d 75 73 74 0d 0a 3b 09 62 65 20 61 6c 74 65 72 65 64 20 66 6f 72 20 61 6e ┆t, and must ; be altered for an┆ 0x0b6b20…0b6b40 79 20 73 79 73 74 65 6d 20 77 68 69 63 68 20 64 69 66 66 65 72 73 20 66 72 6f 6d 20 74 68 65 20 ┆y system which differs from the ┆ 0x0b6b40…0b6b60 69 6e 74 65 6c 20 6d 64 73 2e 0d 0a 3b 0d 0a 3b 09 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 ┆intel mds. ; ; the following c┆ 0x0b6b60…0b6b80 6f 64 65 20 61 73 73 75 6d 65 73 20 74 68 65 20 6d 64 73 20 6d 6f 6e 69 74 6f 72 20 65 78 69 73 ┆ode assumes the mds monitor exis┆ 0x0b6b80…0b6ba0 74 73 20 61 74 20 30 66 38 30 30 68 0d 0a 3b 09 61 6e 64 20 75 73 65 73 20 74 68 65 20 69 2f 6f ┆ts at 0f800h ; and uses the i/o┆ 0x0b6ba0…0b6bc0 20 73 75 62 72 6f 75 74 69 6e 65 73 20 77 69 74 68 69 6e 20 74 68 65 20 6d 6f 6e 69 74 6f 72 0d ┆ subroutines within the monitor ┆ 0x0b6bc0…0b6be0 0a 3b 0d 0a 3b 09 77 65 20 61 6c 73 6f 20 61 73 73 75 6d 65 20 74 68 65 20 6d 64 73 20 73 79 73 ┆ ; ; we also assume the mds sys┆ 0x0b6be0…0b6c00 74 65 6d 20 68 61 73 20 66 6f 75 72 20 64 69 73 6b 20 64 72 69 76 65 73 0d 0a 72 65 76 72 74 09 ┆tem has four disk drives revrt ┆ 0x0b6c00…0b6c20 (48, 1, 8) 72 20 31 2c 20 77 68 69 63 68 20 77 69 6c 6c 20 62 65 20 73 6b 69 70 70 65 64 20 66 6f 72 20 77 ┆r 1, which will be skipped for w┆ 0x0b6c20…0b6c40 61 72 6d 20 0d 0a 3b 09 72 65 61 64 20 63 70 2f 6d 20 66 72 6f 6d 20 64 69 73 6b 20 2d 20 61 73 ┆arm ; read cp/m from disk - as┆ 0x0b6c40…0b6c60 73 75 6d 69 6e 67 20 74 68 65 72 65 20 69 73 20 61 20 31 32 38 20 62 79 74 65 20 63 6f 6c 64 20 ┆suming there is a 128 byte cold ┆ 0x0b6c60…0b6c80 73 74 61 72 74 0d 0a 3b 09 73 74 61 72 74 2e 0d 0a 3b 0d 0a 09 6c 78 69 09 73 70 2c 62 75 66 66 ┆start ; start. ; lxi sp,buff┆ 0x0b6c80…0b6ca0 09 3b 75 73 69 6e 67 20 64 6d 61 20 2d 20 74 68 75 73 20 38 30 20 74 68 72 75 20 66 66 20 61 76 ┆ ;using dma - thus 80 thru ff av┆ 0x0b6ca0…0b6cc0 61 69 6c 61 62 6c 65 20 66 6f 72 20 73 74 61 63 6b 0d 0a 3b 0d 0a 09 6d 76 69 09 63 2c 72 65 74 ┆ailable for stack ; mvi c,ret┆ 0x0b6cc0…0b6ce0 72 79 09 3b 6d 61 78 20 72 65 74 72 69 65 73 0d 0a 09 70 75 73 68 09 62 0d 0a 77 62 6f 6f 74 30 ┆ry ;max retries push b wboot0┆ 0x0b6ce0…0b6d00 3a 09 3b 65 6e 74 65 72 20 68 65 72 65 20 6f 6e 20 65 72 72 6f 72 20 72 65 74 72 69 65 73 0d 0a ┆: ;enter here on error retries ┆ 0x0b6d00…0b6d20 09 6c 78 69 09 62 2c 63 70 6d 62 09 3b 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 74 6f 20 ┆ lxi b,cpmb ;set dma address to ┆ 0x0b6d20…0b6d40 73 74 61 72 74 20 6f 66 20 64 69 73 6b 20 73 79 73 74 65 6d 0d 0a 09 63 61 6c 6c 09 73 65 74 64 ┆start of disk system call setd┆ 0x0b6d40…0b6d60 6d 61 0d 0a 09 6d 76 69 09 63 2c 30 09 3b 62 6f 6f 74 20 66 72 6f 6d 20 64 72 69 76 65 20 30 0d ┆ma mvi c,0 ;boot from drive 0 ┆ 0x0b6d60…0b6d80 0a 09 63 61 6c 6c 09 73 65 6c 64 73 6b 0d 0a 09 6d 76 69 09 63 2c 30 0d 0a 09 63 61 6c 6c 09 73 ┆ call seldsk mvi c,0 call s┆ 0x0b6d80…0b6da0 65 74 74 72 6b 09 3b 73 74 61 72 74 20 77 69 74 68 20 74 72 61 63 6b 20 30 0d 0a 09 6d 76 69 09 ┆ettrk ;start with track 0 mvi ┆ 0x0b6da0…0b6dc0 63 2c 32 09 3b 73 74 61 72 74 20 72 65 61 64 69 6e 67 20 73 65 63 74 6f 72 20 32 0d 0a 09 63 61 ┆c,2 ;start reading sector 2 ca┆ 0x0b6dc0…0b6de0 6c 6c 09 73 65 74 73 65 63 0d 0a 3b 0d 0a 3b 09 72 65 61 64 20 73 65 63 74 6f 72 73 2c 20 63 6f ┆ll setsec ; ; read sectors, co┆ 0x0b6de0…0b6e00 75 6e 74 20 6e 73 65 63 74 73 20 74 6f 20 7a 65 72 6f 0d 0a 09 70 6f 70 09 62 09 3b 31 30 2d 65 ┆unt nsects to zero pop b ;10-e┆ 0x0b6e00…0b6e20 (48, 1, 9) 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 34 09 2d 20 64 61 74 61 20 6f 76 65 72 2f 75 6e 64 65 72 ┆function) ; 4 - data over/under┆ 0x0b6e20…0b6e40 20 66 6c 6f 77 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 ┆ flow (hardware malfunction) ; ┆ 0x0b6e40…0b6e60 35 09 2d 20 77 72 69 74 65 20 70 72 6f 74 65 63 74 20 28 74 72 65 61 74 65 64 20 61 73 20 6e 6f ┆5 - write protect (treated as no┆ 0x0b6e60…0b6e80 74 20 72 65 61 64 79 29 0d 0a 3b 09 36 09 2d 20 77 72 69 74 65 20 65 72 72 6f 72 20 28 68 61 72 ┆t ready) ; 6 - write error (har┆ 0x0b6e80…0b6ea0 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 37 09 2d 20 6e 6f 74 20 72 65 ┆dware malfunction) ; 7 - not re┆ 0x0b6ea0…0b6ec0 61 64 79 0d 0a 3b 09 28 61 63 63 75 6d 75 6c 61 74 6f 72 20 62 69 74 73 20 61 72 65 20 6e 75 6d ┆ady ; (accumulator bits are num┆ 0x0b6ec0…0b6ee0 62 65 72 65 64 20 37 20 36 20 35 20 34 20 33 20 32 20 31 20 30 29 0d 0a 3b 0d 0a 3b 09 69 74 20 ┆bered 7 6 5 4 3 2 1 0) ; ; it ┆ 0x0b6ee0…0b6f00 6d 61 79 20 62 65 20 75 73 65 66 75 6c 20 74 6f 20 66 69 6c 74 65 72 20 6f 75 74 20 74 68 65 20 ┆may be useful to filter out the ┆ 0x0b6f00…0b6f20 76 61 72 69 6f 75 73 20 63 6f 6e 64 69 74 69 6f 6e 73 2c 0d 0a 3b 09 62 75 74 20 77 65 20 77 69 ┆various conditions, ; but we wi┆ 0x0b6f20…0b6f40 6c 6c 20 67 65 74 20 61 20 70 65 72 6d 61 6e 65 6e 74 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 ┆ll get a permanent error message┆ 0x0b6f40…0b6f60 20 69 66 20 69 74 20 69 73 20 6e 6f 74 0d 0a 3b 09 72 65 63 6f 76 65 72 61 62 6c 65 2e 20 20 69 ┆ if it is not ; recoverable. i┆ 0x0b6f60…0b6f80 6e 20 61 6e 79 20 63 61 73 65 2c 20 74 68 65 20 6e 6f 74 20 72 65 61 64 79 20 63 6f 6e 64 69 74 ┆n any case, the not ready condit┆ 0x0b6f80…0b6fa0 69 6f 6e 20 69 73 0d 0a 3b 09 74 72 65 61 74 65 64 20 61 73 20 61 20 73 65 70 61 72 61 74 65 20 ┆ion is ; treated as a separate ┆ 0x0b6fa0…0b6fc0 63 6f 6e 64 69 74 69 6f 6e 20 66 6f 72 20 6c 61 74 65 72 20 69 6d 70 72 6f 76 65 6d 65 6e 74 0d ┆condition for later improvement ┆ 0x0b6fc0…0b6fe0 0a 74 72 79 63 6f 75 6e 74 3a 0d 0a 3b 09 72 65 67 69 73 74 65 72 20 63 20 63 6f 6e 74 61 69 6e ┆ trycount: ; register c contain┆ 0x0b6fe0…0b7000 73 20 72 65 74 72 79 20 63 6f 75 6e 74 2c 20 64 65 63 72 65 6d 65 6e 74 20 27 74 69 6c 20 7a 65 ┆s retry count, decrement 'til ze┆ 0x0b7000…0b7020 (48, 1, 10) 74 6f 20 6c 6f 61 64 0d 0a 6f 66 66 73 65 74 09 65 71 75 09 32 09 3b 6e 75 6d 62 65 72 20 6f 66 ┆to load offset equ 2 ;number of┆ 0x0b7020…0b7040 20 64 69 73 6b 20 74 72 61 63 6b 73 20 75 73 65 64 20 62 79 20 63 70 2f 6d 0d 0a 63 64 69 73 6b ┆ disk tracks used by cp/m cdisk┆ 0x0b7040…0b7060 09 65 71 75 09 30 30 30 34 68 09 3b 61 64 64 72 65 73 73 20 6f 66 20 6c 61 73 74 20 6c 6f 67 67 ┆ equ 0004h ;address of last logg┆ 0x0b7060…0b7080 65 64 20 64 69 73 6b 20 6f 6e 20 77 61 72 6d 20 73 74 61 72 74 0d 0a 62 75 66 66 09 65 71 75 09 ┆ed disk on warm start buff equ ┆ 0x0b7080…0b70a0 30 30 38 30 68 09 3b 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 0d 0a 72 ┆0080h ;default buffer address r┆ 0x0b70a0…0b70c0 65 74 72 79 09 65 71 75 09 31 30 09 3b 6d 61 78 20 72 65 74 72 69 65 73 20 6f 6e 20 64 69 73 6b ┆etry equ 10 ;max retries on disk┆ 0x0b70c0…0b70e0 20 69 2f 6f 20 62 65 66 6f 72 65 20 65 72 72 6f 72 0d 0a 3b 0d 0a 3b 09 70 65 72 66 6f 72 6d 20 ┆ i/o before error ; ; perform ┆ 0x0b70e0…0b7100 66 6f 6c 6c 6f 77 69 6e 67 20 66 75 6e 63 74 69 6f 6e 73 0d 0a 3b 09 62 6f 6f 74 09 63 6f 6c 64 ┆following functions ; boot cold┆ 0x0b7100…0b7120 20 73 74 61 72 74 0d 0a 3b 09 77 62 6f 6f 74 09 77 61 72 6d 20 73 74 61 72 74 20 28 73 61 76 65 ┆ start ; wboot warm start (save┆ 0x0b7120…0b7140 20 69 2f 6f 20 62 79 74 65 29 0d 0a 3b 09 28 62 6f 6f 74 20 61 6e 64 20 77 62 6f 6f 74 20 61 72 ┆ i/o byte) ; (boot and wboot ar┆ 0x0b7140…0b7160 65 20 74 68 65 20 73 61 6d 65 20 66 6f 72 20 6d 64 73 29 0d 0a 3b 09 63 6f 6e 73 74 09 63 6f 6e ┆e the same for mds) ; const con┆ 0x0b7160…0b7180 73 6f 6c 65 20 73 74 61 74 75 73 0d 0a 3b 09 09 72 65 67 2d 61 20 3d 20 30 30 20 69 66 20 6e 6f ┆sole status ; reg-a = 00 if no┆ 0x0b7180…0b71a0 20 63 68 61 72 61 63 74 65 72 20 72 65 61 64 79 0d 0a 3b 09 09 72 65 67 2d 61 20 3d 20 66 66 20 ┆ character ready ; reg-a = ff ┆ 0x0b71a0…0b71c0 69 66 20 63 68 61 72 61 63 74 65 72 20 72 65 61 64 79 0d 0a 3b 09 63 6f 6e 69 6e 09 63 6f 6e 73 ┆if character ready ; conin cons┆ 0x0b71c0…0b71e0 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 28 72 65 73 75 6c 74 20 69 6e 20 72 65 67 2d ┆ole character in (result in reg-┆ 0x0b71e0…0b7200 61 29 0d 0a 3b 09 63 6f 6e 6f 75 74 09 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 6f ┆a) ; conout console character o┆ 0x0b7200…0b7220 (48, 1, 11) 65 71 75 09 30 66 64 68 09 3b 69 6e 74 65 72 72 75 70 74 20 72 65 76 65 72 74 20 70 6f 72 74 0d ┆equ 0fdh ;interrupt revert port ┆ 0x0b7220…0b7240 0a 69 6e 74 63 09 65 71 75 09 30 66 63 68 09 3b 69 6e 74 65 72 72 75 70 74 20 6d 61 73 6b 20 70 ┆ intc equ 0fch ;interrupt mask p┆ 0x0b7240…0b7260 6f 72 74 0d 0a 69 63 6f 6e 09 65 71 75 09 30 66 33 68 09 3b 69 6e 74 65 72 72 75 70 74 20 63 6f ┆ort icon equ 0f3h ;interrupt co┆ 0x0b7260…0b7280 6e 74 72 6f 6c 20 70 6f 72 74 0d 0a 69 6e 74 65 09 65 71 75 09 30 31 31 31 24 31 31 31 30 62 09 ┆ntrol port inte equ 0111$1110b ┆ 0x0b7280…0b72a0 3b 65 6e 61 62 6c 65 20 72 73 74 20 30 28 77 61 72 6d 20 62 6f 6f 74 29 2c 20 72 73 74 20 37 20 ┆;enable rst 0(warm boot), rst 7 ┆ 0x0b72a0…0b72c0 28 6d 6f 6e 69 74 6f 72 29 0d 0a 3b 0d 0a 3b 09 6d 64 73 20 6d 6f 6e 69 74 6f 72 20 65 71 75 61 ┆(monitor) ; ; mds monitor equa┆ 0x0b72c0…0b72e0 74 65 73 0d 0a 6d 6f 6e 38 30 09 65 71 75 09 30 66 38 30 30 68 09 3b 6d 64 73 20 6d 6f 6e 69 74 ┆tes mon80 equ 0f800h ;mds monit┆ 0x0b72e0…0b7300 6f 72 0d 0a 72 6d 6f 6e 38 30 09 65 71 75 09 30 66 66 30 66 68 09 3b 72 65 73 74 61 72 74 20 6d ┆or rmon80 equ 0ff0fh ;restart m┆ 0x0b7300…0b7320 6f 6e 38 30 20 28 62 6f 6f 74 20 65 72 72 6f 72 29 0d 0a 63 69 09 65 71 75 09 30 66 38 30 33 68 ┆on80 (boot error) ci equ 0f803h┆ 0x0b7320…0b7340 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 72 65 67 2d 61 0d 0a 72 69 ┆ ;console character to reg-a ri┆ 0x0b7340…0b7360 09 65 71 75 09 30 66 38 30 36 68 09 3b 72 65 61 64 65 72 20 69 6e 20 74 6f 20 72 65 67 2d 61 0d ┆ equ 0f806h ;reader in to reg-a ┆ 0x0b7360…0b7380 0a 63 6f 09 65 71 75 09 30 66 38 30 39 68 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 20 66 72 6f ┆ co equ 0f809h ;console char fro┆ 0x0b7380…0b73a0 6d 20 63 20 74 6f 20 63 6f 6e 73 6f 6c 65 20 6f 75 74 0d 0a 70 6f 09 65 71 75 09 30 66 38 30 63 ┆m c to console out po equ 0f80c┆ 0x0b73a0…0b73c0 68 09 3b 70 75 6e 63 68 20 63 68 61 72 20 66 72 6f 6d 20 63 20 74 6f 20 70 75 6e 63 68 20 64 65 ┆h ;punch char from c to punch de┆ 0x0b73c0…0b73e0 76 69 63 65 0d 0a 6c 6f 09 65 71 75 09 30 66 38 30 66 68 09 3b 6c 69 73 74 20 66 72 6f 6d 20 63 ┆vice lo equ 0f80fh ;list from c┆ 0x0b73e0…0b7400 20 74 6f 20 6c 69 73 74 20 64 65 76 69 63 65 0d 0a 63 73 74 73 09 65 71 75 09 30 66 38 31 32 68 ┆ to list device csts equ 0f812h┆ 0x0b7400…0b7420 (48, 1, 12) 72 72 6f 72 20 63 6f 75 6e 74 0d 0a 09 6d 76 69 09 62 2c 6e 73 65 63 74 73 0d 0a 72 64 73 65 63 ┆rror count mvi b,nsects rdsec┆ 0x0b7420…0b7440 3a 09 3b 72 65 61 64 20 6e 65 78 74 20 73 65 63 74 6f 72 0d 0a 09 70 75 73 68 09 62 09 3b 73 61 ┆: ;read next sector push b ;sa┆ 0x0b7440…0b7460 76 65 20 73 65 63 74 6f 72 20 63 6f 75 6e 74 0d 0a 09 63 61 6c 6c 09 72 65 61 64 0d 0a 09 6a 6e ┆ve sector count call read jn┆ 0x0b7460…0b7480 7a 09 62 6f 6f 74 65 72 72 09 3b 72 65 74 72 79 20 69 66 20 65 72 72 6f 72 73 20 6f 63 63 75 72 ┆z booterr ;retry if errors occur┆ 0x0b7480…0b74a0 0d 0a 09 6c 68 6c 64 09 69 6f 64 09 3b 69 6e 63 72 65 6d 65 6e 74 20 64 6d 61 20 61 64 64 72 65 ┆ lhld iod ;increment dma addre┆ 0x0b74a0…0b74c0 73 73 0d 0a 09 6c 78 69 09 64 2c 31 32 38 09 3b 73 65 63 74 6f 72 20 73 69 7a 65 0d 0a 09 64 61 ┆ss lxi d,128 ;sector size da┆ 0x0b74c0…0b74e0 64 09 64 09 3b 69 6e 63 72 65 6d 65 6e 74 65 64 20 64 6d 61 20 61 64 64 72 65 73 73 20 69 6e 20 ┆d d ;incremented dma address in ┆ 0x0b74e0…0b7500 68 6c 0d 0a 09 6d 6f 76 09 62 2c 68 0d 0a 09 6d 6f 76 09 63 2c 6c 09 3b 72 65 61 64 79 20 66 6f ┆hl mov b,h mov c,l ;ready fo┆ 0x0b7500…0b7520 72 20 63 61 6c 6c 20 74 6f 20 73 65 74 20 64 6d 61 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d ┆r call to set dma call setdma ┆ 0x0b7520…0b7540 0a 09 6c 64 61 09 69 6f 73 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 6a 75 73 74 20 72 65 ┆ lda ios ;sector number just re┆ 0x0b7540…0b7560 61 64 0d 0a 09 63 70 69 09 32 36 09 3b 72 65 61 64 20 6c 61 73 74 20 73 65 63 74 6f 72 3f 0d 0a ┆ad cpi 26 ;read last sector? ┆ 0x0b7560…0b7580 09 6a 63 09 72 64 31 0d 0a 3b 09 6d 75 73 74 20 62 65 20 73 65 63 74 6f 72 20 32 36 2c 20 7a 65 ┆ jc rd1 ; must be sector 26, ze┆ 0x0b7580…0b75a0 72 6f 20 61 6e 64 20 67 6f 20 74 6f 20 6e 65 78 74 20 74 72 61 63 6b 0d 0a 09 6c 64 61 09 69 6f ┆ro and go to next track lda io┆ 0x0b75a0…0b75c0 74 09 3b 67 65 74 20 74 72 61 63 6b 20 74 6f 20 72 65 67 69 73 74 65 72 20 61 0d 0a 09 69 6e 72 ┆t ;get track to register a inr┆ 0x0b75c0…0b75e0 09 61 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 0d 0a 09 63 ┆ a mov c,a ;ready for call c┆ 0x0b75e0…0b7600 61 6c 6c 09 73 65 74 74 72 6b 0d 0a 09 78 72 61 09 61 09 3b 63 6c 65 61 72 20 73 65 63 74 6f 72 ┆all settrk xra a ;clear sector┆ 0x0b7600…0b7620 (48, 1, 13) 72 6f 0d 0a 09 64 63 72 09 63 0d 0a 09 6a 6e 7a 09 72 65 77 61 69 74 09 3b 66 6f 72 20 61 6e 6f ┆ro dcr c jnz rewait ;for ano┆ 0x0b7620…0b7640 74 68 65 72 20 74 72 79 0d 0a 3b 0d 0a 3b 09 63 61 6e 6e 6f 74 20 72 65 63 6f 76 65 72 20 66 72 ┆ther try ; ; cannot recover fr┆ 0x0b7640…0b7660 6f 6d 20 65 72 72 6f 72 0d 0a 09 6d 76 69 09 61 2c 31 09 3b 65 72 72 6f 72 20 63 6f 64 65 0d 0a ┆om error mvi a,1 ;error code ┆ 0x0b7660…0b7680 09 72 65 74 0d 0a 3b 0d 0a 3b 09 69 6e 74 79 70 65 2c 20 69 6e 62 79 74 65 2c 20 69 6e 73 74 61 ┆ ret ; ; intype, inbyte, insta┆ 0x0b7680…0b76a0 74 20 72 65 61 64 20 64 72 69 76 65 20 62 61 6e 6b 20 30 30 20 6f 72 20 31 30 0d 0a 69 6e 74 79 ┆t read drive bank 00 or 10 inty┆ 0x0b76a0…0b76c0 70 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 74 79 ┆pe: lda dbank ora a jnz inty┆ 0x0b76c0…0b76e0 70 31 09 3b 73 6b 69 70 20 74 6f 20 62 61 6e 6b 20 31 30 0d 0a 09 69 6e 09 72 74 79 70 65 0d 0a ┆p1 ;skip to bank 10 in rtype ┆ 0x0b76e0…0b7700 09 72 65 74 0d 0a 69 6e 74 79 70 31 3a 09 69 6e 09 72 74 79 70 65 2b 31 30 68 09 3b 37 38 20 66 ┆ ret intyp1: in rtype+10h ;78 f┆ 0x0b7700…0b7720 6f 72 20 30 2c 31 20 20 38 38 20 66 6f 72 20 32 2c 33 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 69 6e 62 ┆or 0,1 88 for 2,3 ret ; inb┆ 0x0b7720…0b7740 79 74 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 62 ┆yte: lda dbank ora a jnz inb┆ 0x0b7740…0b7760 79 74 31 0d 0a 09 69 6e 09 72 62 79 74 65 0d 0a 09 72 65 74 0d 0a 69 6e 62 79 74 31 3a 09 69 6e ┆yt1 in rbyte ret inbyt1: in┆ 0x0b7760…0b7780 09 72 62 79 74 65 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 69 6e 73 74 61 74 3a 09 6c 64 61 ┆ rbyte+10h ret ; instat: lda┆ 0x0b7780…0b77a0 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 73 74 61 31 0d 0a 09 69 6e ┆ dbank ora a jnz insta1 in┆ 0x0b77a0…0b77c0 09 64 73 74 61 74 0d 0a 09 72 65 74 0d 0a 69 6e 73 74 61 31 3a 09 69 6e 09 64 73 74 61 74 2b 31 ┆ dstat ret insta1: in dstat+1┆ 0x0b77c0…0b77e0 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 61 74 61 20 61 72 65 61 73 20 ┆0h ret ; ; ; ; data areas ┆ 0x0b77e0…0b7800 28 6d 75 73 74 20 62 65 20 69 6e 20 72 61 6d 29 0d 0a 64 62 61 6e 6b 3a 09 64 62 09 30 09 3b 64 ┆(must be in ram) dbank: db 0 ;d┆ 0x0b7800…0b7820 (48, 1, 14) 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 6c 69 73 74 09 6c 69 73 74 20 ┆ut (char in reg-c) ; list list ┆ 0x0b7820…0b7840 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 70 75 6e 63 68 09 70 75 6e ┆out (char in reg-c) ; punch pun┆ 0x0b7840…0b7860 63 68 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 72 65 61 64 65 72 ┆ch out (char in reg-c) ; reader┆ 0x0b7860…0b7880 09 70 61 70 65 72 20 74 61 70 65 20 72 65 61 64 65 72 20 69 6e 20 28 72 65 73 75 6c 74 20 74 6f ┆ paper tape reader in (result to┆ 0x0b7880…0b78a0 20 72 65 67 2d 61 29 0d 0a 3b 09 68 6f 6d 65 09 6d 6f 76 65 20 74 6f 20 74 72 61 63 6b 20 30 30 ┆ reg-a) ; home move to track 00┆ 0x0b78a0…0b78c0 0d 0a 3b 0d 0a 3b 09 28 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 61 6c 6c 73 20 73 65 74 2d ┆ ; ; (the following calls set-┆ 0x0b78c0…0b78e0 75 70 20 74 68 65 20 69 6f 20 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 20 66 6f 72 20 74 68 ┆up the io parameter block for th┆ 0x0b78e0…0b7900 65 0d 0a 3b 09 6d 64 73 2c 20 77 68 69 63 68 20 69 73 20 75 73 65 64 20 74 6f 20 70 65 72 66 6f ┆e ; mds, which is used to perfo┆ 0x0b7900…0b7920 72 6d 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 73 20 61 6e 64 20 77 72 69 74 65 73 29 0d ┆rm subsequent reads and writes) ┆ 0x0b7920…0b7940 0a 3b 09 73 65 6c 64 73 6b 09 73 65 6c 65 63 74 20 64 69 73 6b 20 67 69 76 65 6e 20 62 79 20 72 ┆ ; seldsk select disk given by r┆ 0x0b7940…0b7960 65 67 2d 63 20 28 30 2c 31 2c 32 2e 2e 2e 29 0d 0a 3b 09 73 65 74 74 72 6b 09 73 65 74 20 74 72 ┆eg-c (0,1,2...) ; settrk set tr┆ 0x0b7960…0b7980 61 63 6b 20 61 64 64 72 65 73 73 20 28 30 2c 2e 2e 2e 37 36 29 20 66 6f 72 20 73 75 62 73 65 71 ┆ack address (0,...76) for subseq┆ 0x0b7980…0b79a0 75 65 6e 74 20 72 65 61 64 2f 77 72 69 74 65 0d 0a 3b 09 73 65 74 73 65 63 09 73 65 74 20 73 65 ┆uent read/write ; setsec set se┆ 0x0b79a0…0b79c0 63 74 6f 72 20 61 64 64 72 65 73 73 20 28 31 2c 2e 2e 2e 2c 32 36 29 20 66 6f 72 20 73 75 62 73 ┆ctor address (1,...,26) for subs┆ 0x0b79c0…0b79e0 65 71 75 65 6e 74 20 72 65 61 64 2f 77 72 69 74 65 0d 0a 3b 09 73 65 74 64 6d 61 09 73 65 74 20 ┆equent read/write ; setdma set ┆ 0x0b79e0…0b7a00 73 75 62 73 65 71 75 65 6e 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 28 69 6e 69 74 69 61 6c 6c ┆subsequent dma address (initiall┆ 0x0b7a00…0b7a20 (48, 1, 15) 09 3b 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 20 30 30 2f 66 66 20 74 6f 20 72 65 67 69 73 74 ┆ ;console status 00/ff to regist┆ 0x0b7a20…0b7a40 65 72 20 61 0d 0a 3b 0d 0a 3b 09 64 69 73 6b 20 70 6f 72 74 73 20 61 6e 64 20 63 6f 6d 6d 61 6e ┆er a ; ; disk ports and comman┆ 0x0b7a40…0b7a60 64 73 0d 0a 62 61 73 65 09 65 71 75 09 37 38 68 09 3b 62 61 73 65 20 6f 66 20 64 69 73 6b 20 63 ┆ds base equ 78h ;base of disk c┆ 0x0b7a60…0b7a80 6f 6d 6d 61 6e 64 20 69 6f 20 70 6f 72 74 73 0d 0a 64 73 74 61 74 09 65 71 75 09 62 61 73 65 09 ┆ommand io ports dstat equ base ┆ 0x0b7a80…0b7aa0 3b 64 69 73 6b 20 73 74 61 74 75 73 20 28 69 6e 70 75 74 29 0d 0a 72 74 79 70 65 09 65 71 75 09 ┆;disk status (input) rtype equ ┆ 0x0b7aa0…0b7ac0 62 61 73 65 2b 31 09 3b 72 65 73 75 6c 74 20 74 79 70 65 20 28 69 6e 70 75 74 29 0d 0a 72 62 79 ┆base+1 ;result type (input) rby┆ 0x0b7ac0…0b7ae0 74 65 09 65 71 75 09 62 61 73 65 2b 33 09 3b 72 65 73 75 6c 74 20 62 79 74 65 20 28 69 6e 70 75 ┆te equ base+3 ;result byte (inpu┆ 0x0b7ae0…0b7b00 74 29 0d 0a 3b 0d 0a 69 6c 6f 77 09 65 71 75 09 62 61 73 65 2b 31 09 3b 69 6f 70 62 20 6c 6f 77 ┆t) ; ilow equ base+1 ;iopb low┆ 0x0b7b00…0b7b20 20 61 64 64 72 65 73 73 20 28 6f 75 74 70 75 74 29 0d 0a 69 68 69 67 68 09 65 71 75 09 62 61 73 ┆ address (output) ihigh equ bas┆ 0x0b7b20…0b7b40 65 2b 32 09 3b 69 6f 70 62 20 68 69 67 68 20 61 64 64 72 65 73 73 20 28 6f 75 74 70 75 74 29 0d ┆e+2 ;iopb high address (output) ┆ 0x0b7b40…0b7b60 0a 3b 0d 0a 72 65 61 64 66 09 65 71 75 09 34 68 09 3b 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d ┆ ; readf equ 4h ;read function ┆ 0x0b7b60…0b7b80 0a 77 72 69 74 66 09 65 71 75 09 36 68 09 3b 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 72 ┆ writf equ 6h ;write function r┆ 0x0b7b80…0b7ba0 65 63 61 6c 09 65 71 75 09 33 68 09 3b 72 65 63 61 6c 69 62 72 61 74 65 20 64 72 69 76 65 0d 0a ┆ecal equ 3h ;recalibrate drive ┆ 0x0b7ba0…0b7bc0 69 6f 72 64 79 09 65 71 75 09 34 68 09 3b 69 2f 6f 20 66 69 6e 69 73 68 65 64 20 6d 61 73 6b 0d ┆iordy equ 4h ;i/o finished mask ┆ 0x0b7bc0…0b7be0 0a 63 72 09 65 71 75 09 30 64 68 09 3b 63 61 72 72 69 61 67 65 20 72 65 74 75 72 6e 0d 0a 6c 66 ┆ cr equ 0dh ;carriage return lf┆ 0x0b7be0…0b7c00 09 65 71 75 09 30 61 68 09 3b 6c 69 6e 65 20 66 65 65 64 0d 0a 3b 0d 0a 73 69 67 6e 6f 6e 3a 09 ┆ equ 0ah ;line feed ; signon: ┆ 0x0b7c00…0b7c20 (49, 0, 1) 20 6e 75 6d 62 65 72 0d 0a 72 64 31 3a 09 69 6e 72 09 61 09 3b 74 6f 20 6e 65 78 74 20 73 65 63 ┆ number rd1: inr a ;to next sec┆ 0x0b7c20…0b7c40 74 6f 72 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 0d 0a 09 ┆tor mov c,a ;ready for call ┆ 0x0b7c40…0b7c60 63 61 6c 6c 09 73 65 74 73 65 63 0d 0a 09 70 6f 70 09 62 09 3b 72 65 63 61 6c 6c 20 73 65 63 74 ┆call setsec pop b ;recall sect┆ 0x0b7c60…0b7c80 6f 72 20 63 6f 75 6e 74 0d 0a 09 64 63 72 09 62 09 3b 64 6f 6e 65 3f 0d 0a 09 6a 6e 7a 09 72 64 ┆or count dcr b ;done? jnz rd┆ 0x0b7c80…0b7ca0 73 65 63 0d 0a 3b 0d 0a 3b 09 64 6f 6e 65 20 77 69 74 68 20 74 68 65 20 6c 6f 61 64 2c 20 72 65 ┆sec ; ; done with the load, re┆ 0x0b7ca0…0b7cc0 73 65 74 20 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 0d 0a 67 6f 63 70 ┆set default buffer address gocp┆ 0x0b7cc0…0b7ce0 6d 3a 09 3b 28 65 6e 74 65 72 20 68 65 72 65 20 66 72 6f 6d 20 63 6f 6c 64 20 73 74 61 72 74 20 ┆m: ;(enter here from cold start ┆ 0x0b7ce0…0b7d00 62 6f 6f 74 29 0d 0a 3b 09 65 6e 61 62 6c 65 20 72 73 74 30 20 61 6e 64 20 72 73 74 37 0d 0a 09 ┆boot) ; enable rst0 and rst7 ┆ 0x0b7d00…0b7d20 64 69 0d 0a 09 6d 76 69 09 61 2c 31 32 68 09 3b 69 6e 69 74 69 61 6c 69 7a 65 20 63 6f 6d 6d 61 ┆di mvi a,12h ;initialize comma┆ 0x0b7d20…0b7d40 6e 64 0d 0a 09 6f 75 74 09 72 65 76 72 74 0d 0a 09 78 72 61 09 61 0d 0a 09 6f 75 74 09 69 6e 74 ┆nd out revrt xra a out int┆ 0x0b7d40…0b7d60 63 09 3b 63 6c 65 61 72 65 64 0d 0a 09 6d 76 69 09 61 2c 69 6e 74 65 09 3b 72 73 74 30 20 61 6e ┆c ;cleared mvi a,inte ;rst0 an┆ 0x0b7d60…0b7d80 64 20 72 73 74 37 20 62 69 74 73 20 6f 6e 0d 0a 09 6f 75 74 09 69 6e 74 63 0d 0a 09 78 72 61 09 ┆d rst7 bits on out intc xra ┆ 0x0b7d80…0b7da0 61 0d 0a 09 6f 75 74 09 69 63 6f 6e 09 3b 69 6e 74 65 72 72 75 70 74 20 63 6f 6e 74 72 6f 6c 0d ┆a out icon ;interrupt control ┆ 0x0b7da0…0b7dc0 0a 3b 0d 0a 3b 09 73 65 74 20 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 ┆ ; ; set default buffer address┆ 0x0b7dc0…0b7de0 20 74 6f 20 38 30 68 0d 0a 09 6c 78 69 09 62 2c 62 75 66 66 0d 0a 09 63 61 6c 6c 09 73 65 74 64 ┆ to 80h lxi b,buff call setd┆ 0x0b7de0…0b7e00 6d 61 0d 0a 3b 0d 0a 3b 09 72 65 73 65 74 20 6d 6f 6e 69 74 6f 72 20 65 6e 74 72 79 20 70 6f 69 ┆ma ; ; reset monitor entry poi┆ 0x0b7e00…0b7e20 (49, 0, 2) 30 2c 20 31 31 0d 0a 09 61 6e 69 09 31 62 09 3b 6d 64 73 20 68 61 73 20 30 2c 31 20 61 74 20 37 ┆0, 11 ani 1b ;mds has 0,1 at 7┆ 0x0b7e20…0b7e40 38 2c 20 32 2c 33 20 61 74 20 38 38 0d 0a 09 6f 72 61 09 61 09 3b 72 65 73 75 6c 74 20 30 30 3f ┆8, 2,3 at 88 ora a ;result 00?┆ 0x0b7e40…0b7e60 0d 0a 09 6a 7a 09 73 65 74 64 72 69 76 65 0d 0a 09 6d 76 69 09 61 2c 30 30 31 31 30 30 30 30 62 ┆ jz setdrive mvi a,00110000b┆ 0x0b7e60…0b7e80 09 3b 73 65 6c 65 63 74 73 20 64 72 69 76 65 20 31 20 69 6e 20 62 61 6e 6b 0d 0a 73 65 74 64 72 ┆ ;selects drive 1 in bank setdr┆ 0x0b7e80…0b7ea0 69 76 65 3a 0d 0a 09 6d 6f 76 09 62 2c 61 09 3b 73 61 76 65 20 74 68 65 20 66 75 6e 63 74 69 6f ┆ive: mov b,a ;save the functio┆ 0x0b7ea0…0b7ec0 6e 0d 0a 09 6c 78 69 09 68 2c 69 6f 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6d 6f 76 ┆n lxi h,iof ;io function mov┆ 0x0b7ec0…0b7ee0 09 61 2c 6d 0d 0a 09 61 6e 69 09 31 31 30 30 31 31 31 31 62 09 3b 6d 61 73 6b 20 6f 75 74 20 64 ┆ a,m ani 11001111b ;mask out d┆ 0x0b7ee0…0b7f00 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6f 72 61 09 62 09 3b 6d 61 73 6b 20 69 6e 20 6e 65 77 20 ┆isk number ora b ;mask in new ┆ 0x0b7f00…0b7f20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6d 6f 76 09 6d 2c 61 09 3b 73 61 76 65 20 69 74 20 69 ┆disk number mov m,a ;save it i┆ 0x0b7f20…0b7f40 6e 20 69 6f 70 62 0d 0a 09 6d 6f 76 09 6c 2c 63 0d 0a 09 6d 76 69 09 68 2c 30 09 3b 48 4c 3d 64 ┆n iopb mov l,c mvi h,0 ;HL=d┆ 0x0b7f40…0b7f60 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 64 61 64 09 68 09 3b 2a 32 0d 0a 09 64 61 64 09 68 09 3b ┆isk number dad h ;*2 dad h ;┆ 0x0b7f60…0b7f80 2a 34 0d 0a 09 64 61 64 09 68 09 3b 2a 38 0d 0a 09 64 61 64 09 68 09 3b 2a 31 36 0d 0a 09 6c 78 ┆*4 dad h ;*8 dad h ;*16 lx┆ 0x0b7f80…0b7fa0 69 09 64 2c 64 70 62 61 73 65 0d 0a 09 64 61 64 09 64 09 3b 48 4c 3d 64 69 73 6b 20 68 65 61 64 ┆i d,dpbase dad d ;HL=disk head┆ 0x0b7fa0…0b7fc0 65 72 20 74 61 62 6c 65 20 61 64 64 72 65 73 73 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 73 65 ┆er table address ret ; ; se┆ 0x0b7fc0…0b7fe0 74 74 72 6b 3a 09 3b 73 65 74 20 74 72 61 63 6b 20 61 64 64 72 65 73 73 20 67 69 76 65 6e 20 62 ┆ttrk: ;set track address given b┆ 0x0b7fe0…0b8000 79 20 63 0d 0a 09 6c 78 69 09 68 2c 69 6f 74 0d 0a 09 6d 6f 76 09 6d 2c 63 0d 0a 09 72 65 74 0d ┆y c lxi h,iot mov m,c ret ┆ 0x0b8000…0b8020 (49, 0, 3) 6f 6e 0d 0a 09 63 61 6c 6c 09 69 6e 74 79 70 65 09 3b 69 6e 20 72 74 79 70 65 0d 0a 09 63 61 6c ┆on call intype ;in rtype cal┆ 0x0b8020…0b8040 6c 09 69 6e 62 79 74 65 09 3b 63 6c 65 61 72 73 20 74 68 65 20 63 6f 6e 74 72 6f 6c 6c 65 72 0d ┆l inbyte ;clears the controller ┆ 0x0b8040…0b8060 0a 3b 0d 0a 09 6c 64 61 09 64 62 61 6e 6b 09 09 3b 73 65 74 20 62 61 6e 6b 20 66 6c 61 67 73 0d ┆ ; lda dbank ;set bank flags ┆ 0x0b8060…0b8080 0a 09 6f 72 61 09 61 09 09 3b 7a 65 72 6f 20 69 66 20 64 72 69 76 65 20 30 2c 31 20 61 6e 64 20 ┆ ora a ;zero if drive 0,1 and ┆ 0x0b8080…0b80a0 6e 7a 20 69 66 20 32 2c 33 0d 0a 09 6d 76 69 09 61 2c 69 6f 70 62 20 61 6e 64 20 30 66 66 68 09 ┆nz if 2,3 mvi a,iopb and 0ffh ┆ 0x0b80a0…0b80c0 3b 6c 6f 77 20 61 64 64 72 65 73 73 20 66 6f 72 20 69 6f 70 62 0d 0a 09 6d 76 69 09 62 2c 69 6f ┆;low address for iopb mvi b,io┆ 0x0b80c0…0b80e0 70 62 20 73 68 72 20 38 09 3b 68 69 67 68 20 61 64 64 72 65 73 73 20 66 6f 72 20 69 6f 70 62 0d ┆pb shr 8 ;high address for iopb ┆ 0x0b80e0…0b8100 0a 09 6a 6e 7a 09 69 6f 64 72 31 09 3b 64 72 69 76 65 20 62 61 6e 6b 20 31 3f 0d 0a 09 6f 75 74 ┆ jnz iodr1 ;drive bank 1? out┆ 0x0b8100…0b8120 09 69 6c 6f 77 09 09 3b 6c 6f 77 20 61 64 64 72 65 73 73 20 74 6f 20 63 6f 6e 74 72 6f 6c 6c 65 ┆ ilow ;low address to controlle┆ 0x0b8120…0b8140 72 0d 0a 09 6d 6f 76 09 61 2c 62 0d 0a 09 6f 75 74 09 69 68 69 67 68 09 3b 68 69 67 68 20 61 64 ┆r mov a,b out ihigh ;high ad┆ 0x0b8140…0b8160 64 72 65 73 73 0d 0a 09 6a 6d 70 09 77 61 69 74 30 09 09 3b 74 6f 20 77 61 69 74 20 66 6f 72 20 ┆dress jmp wait0 ;to wait for ┆ 0x0b8160…0b8180 63 6f 6d 70 6c 65 74 65 0d 0a 3b 0d 0a 69 6f 64 72 31 3a 09 3b 64 72 69 76 65 20 62 61 6e 6b 20 ┆complete ; iodr1: ;drive bank ┆ 0x0b8180…0b81a0 31 0d 0a 09 6f 75 74 09 69 6c 6f 77 2b 31 30 68 09 3b 38 38 20 66 6f 72 20 64 72 69 76 65 20 62 ┆1 out ilow+10h ;88 for drive b┆ 0x0b81a0…0b81c0 61 6e 6b 20 31 30 0d 0a 09 6d 6f 76 09 61 2c 62 0d 0a 09 6f 75 74 09 69 68 69 67 68 2b 31 30 68 ┆ank 10 mov a,b out ihigh+10h┆ 0x0b81c0…0b81e0 0d 0a 3b 0d 0a 77 61 69 74 30 3a 09 63 61 6c 6c 09 69 6e 73 74 61 74 09 09 3b 77 61 69 74 20 66 ┆ ; wait0: call instat ;wait f┆ 0x0b81e0…0b8200 6f 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 0d 0a 09 61 6e 69 09 69 6f 72 64 79 09 09 3b 72 65 61 64 ┆or completion ani iordy ;read┆ 0x0b8200…0b8220 (49, 0, 4) 6f 64 65 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 09 69 6e 74 79 70 65 2c 20 69 6e 62 79 74 65 2c 20 ┆ode ret ; ; intype, inbyte, ┆ 0x0b8220…0b8240 69 6e 73 74 61 74 20 72 65 61 64 20 64 72 69 76 65 20 62 61 6e 6b 20 30 30 20 6f 72 20 31 30 0d ┆instat read drive bank 00 or 10 ┆ 0x0b8240…0b8260 0a 69 6e 74 79 70 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a ┆ intype: lda dbank ora a jnz┆ 0x0b8260…0b8280 09 69 6e 74 79 70 31 09 3b 73 6b 69 70 20 74 6f 20 62 61 6e 6b 20 31 30 0d 0a 09 69 6e 09 72 74 ┆ intyp1 ;skip to bank 10 in rt┆ 0x0b8280…0b82a0 79 70 65 0d 0a 09 72 65 74 0d 0a 69 6e 74 79 70 31 3a 09 69 6e 09 72 74 79 70 65 2b 31 30 68 09 ┆ype ret intyp1: in rtype+10h ┆ 0x0b82a0…0b82c0 3b 37 38 20 66 6f 72 20 30 2c 31 20 20 38 38 20 66 6f 72 20 32 2c 33 0d 0a 09 72 65 74 0d 0a 3b ┆;78 for 0,1 88 for 2,3 ret ;┆ 0x0b82c0…0b82e0 0d 0a 69 6e 62 79 74 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e ┆ inbyte: lda dbank ora a jn┆ 0x0b82e0…0b8300 7a 09 69 6e 62 79 74 31 0d 0a 09 69 6e 09 72 62 79 74 65 0d 0a 09 72 65 74 0d 0a 69 6e 62 79 74 ┆z inbyt1 in rbyte ret inbyt┆ 0x0b8300…0b8320 31 3a 09 69 6e 09 72 62 79 74 65 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 69 6e 73 74 61 74 ┆1: in rbyte+10h ret ; instat┆ 0x0b8320…0b8340 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 73 74 61 31 ┆: lda dbank ora a jnz insta1┆ 0x0b8340…0b8360 0d 0a 09 69 6e 09 64 73 74 61 74 0d 0a 09 72 65 74 0d 0a 69 6e 73 74 61 31 3a 09 69 6e 09 64 73 ┆ in dstat ret insta1: in ds┆ 0x0b8360…0b8380 74 61 74 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 61 74 61 20 61 ┆tat+10h ret ; ; ; ; data a┆ 0x0b8380…0b83a0 72 65 61 73 20 28 6d 75 73 74 20 62 65 20 69 6e 20 72 61 6d 29 0d 0a 64 62 61 6e 6b 3a 09 64 62 ┆reas (must be in ram) dbank: db┆ 0x0b83a0…0b83c0 09 30 09 3b 64 69 73 6b 20 62 61 6e 6b 20 30 30 20 69 66 20 64 72 69 76 65 20 30 2c 31 0d 0a 09 ┆ 0 ;disk bank 00 if drive 0,1 ┆ 0x0b83c0…0b83e0 09 09 3b 09 20 20 20 31 30 20 69 66 20 64 72 69 76 65 20 32 2c 33 0d 0a 69 6f 70 62 3a 09 3b 69 ┆ ; 10 if drive 2,3 iopb: ;i┆ 0x0b83e0…0b8400 6f 20 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 0d 0a 09 64 62 09 38 30 68 09 3b 6e 6f 72 6d ┆o parameter block db 80h ;norm┆ 0x0b8400…0b8420 (49, 0, 5) 6e 74 73 0d 0a 09 6d 76 69 09 61 2c 6a 6d 70 0d 0a 09 73 74 61 09 30 0d 0a 09 6c 78 69 09 68 2c ┆nts mvi a,jmp sta 0 lxi h,┆ 0x0b8420…0b8440 77 62 6f 6f 74 65 0d 0a 09 73 68 6c 64 09 31 09 3b 6a 6d 70 20 77 62 6f 6f 74 20 61 74 20 6c 6f ┆wboote shld 1 ;jmp wboot at lo┆ 0x0b8440…0b8460 63 61 74 69 6f 6e 20 30 30 0d 0a 09 73 74 61 09 35 0d 0a 09 6c 78 69 09 68 2c 62 64 6f 73 0d 0a ┆cation 00 sta 5 lxi h,bdos ┆ 0x0b8460…0b8480 09 73 68 6c 64 09 36 09 3b 6a 6d 70 20 62 64 6f 73 20 61 74 20 6c 6f 63 61 74 69 6f 6e 20 35 0d ┆ shld 6 ;jmp bdos at location 5 ┆ 0x0b8480…0b84a0 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 09 73 74 61 09 37 2a 38 09 3b 6a 6d 70 20 74 6f 20 ┆ if not test sta 7*8 ;jmp to ┆ 0x0b84a0…0b84c0 6d 6f 6e 38 30 20 28 6d 61 79 20 68 61 76 65 20 62 65 65 6e 20 63 68 61 6e 67 65 64 20 62 79 20 ┆mon80 (may have been changed by ┆ 0x0b84c0…0b84e0 64 64 74 29 0d 0a 09 6c 78 69 09 68 2c 6d 6f 6e 38 30 0d 0a 09 73 68 6c 64 09 37 2a 38 2b 31 0d ┆ddt) lxi h,mon80 shld 7*8+1 ┆ 0x0b84e0…0b8500 0a 09 65 6e 64 69 66 0d 0a 3b 09 6c 65 61 76 65 20 69 6f 62 79 74 65 20 73 65 74 0d 0a 3b 09 70 ┆ endif ; leave iobyte set ; p┆ 0x0b8500…0b8520 72 65 76 69 6f 75 73 6c 79 20 73 65 6c 65 63 74 65 64 20 64 69 73 6b 20 77 61 73 20 62 2c 20 73 ┆reviously selected disk was b, s┆ 0x0b8520…0b8540 65 6e 64 20 70 61 72 61 6d 65 74 65 72 20 74 6f 20 63 70 6d 0d 0a 09 6c 64 61 09 63 64 69 73 6b ┆end parameter to cpm lda cdisk┆ 0x0b8540…0b8560 09 3b 6c 61 73 74 20 6c 6f 67 67 65 64 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6d 6f 76 09 ┆ ;last logged disk number mov ┆ 0x0b8560…0b8580 63 2c 61 09 3b 73 65 6e 64 20 74 6f 20 63 63 70 20 74 6f 20 6c 6f 67 20 69 74 20 69 6e 0d 0a 09 ┆c,a ;send to ccp to log it in ┆ 0x0b8580…0b85a0 65 69 0d 0a 09 6a 6d 70 09 63 70 6d 62 0d 0a 3b 0d 0a 3b 09 65 72 72 6f 72 20 63 6f 6e 64 69 74 ┆ei jmp cpmb ; ; error condit┆ 0x0b85a0…0b85c0 69 6f 6e 20 6f 63 63 75 72 72 65 64 2c 20 70 72 69 6e 74 20 6d 65 73 73 61 67 65 20 61 6e 64 20 ┆ion occurred, print message and ┆ 0x0b85c0…0b85e0 72 65 74 72 79 0d 0a 62 6f 6f 74 65 72 72 3a 0d 0a 09 70 6f 70 09 62 09 3b 72 65 63 61 6c 6c 20 ┆retry booterr: pop b ;recall ┆ 0x0b85e0…0b8600 63 6f 75 6e 74 73 0d 0a 09 64 63 72 09 63 0d 0a 09 6a 7a 09 62 6f 6f 74 65 72 30 0d 0a 3b 09 74 ┆counts dcr c jz booter0 ; t┆ 0x0b8600…0b8620 (49, 0, 6) 0a 3b 0d 0a 73 65 74 73 65 63 3a 09 3b 73 65 74 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 67 ┆ ; setsec: ;set sector number g┆ 0x0b8620…0b8640 69 76 65 6e 20 62 79 20 63 0d 0a 09 6c 78 69 09 68 2c 69 6f 73 0d 0a 09 6d 6f 76 09 6d 2c 63 0d ┆iven by c lxi h,ios mov m,c ┆ 0x0b8640…0b8660 0a 09 72 65 74 0d 0a 73 65 63 74 72 61 6e 3a 0d 0a 09 09 3b 74 72 61 6e 73 6c 61 74 65 20 73 65 ┆ ret sectran: ;translate se┆ 0x0b8660…0b8680 63 74 6f 72 20 62 63 20 75 73 69 6e 67 20 74 61 62 6c 65 20 61 74 20 64 65 0d 0a 09 6d 76 69 09 ┆ctor bc using table at de mvi ┆ 0x0b8680…0b86a0 62 2c 30 09 3b 64 6f 75 62 6c 65 20 70 72 65 63 69 73 69 6f 6e 20 73 65 63 74 6f 72 20 6e 75 6d ┆b,0 ;double precision sector num┆ 0x0b86a0…0b86c0 62 65 72 20 69 6e 20 42 43 0d 0a 09 78 63 68 67 09 09 3b 74 72 61 6e 73 6c 61 74 65 20 74 61 62 ┆ber in BC xchg ;translate tab┆ 0x0b86c0…0b86e0 6c 65 20 61 64 64 72 65 73 73 20 74 6f 20 48 4c 0d 0a 09 64 61 64 09 62 09 3b 74 72 61 6e 73 6c ┆le address to HL dad b ;transl┆ 0x0b86e0…0b8700 61 74 65 28 73 65 63 74 6f 72 29 20 61 64 64 72 65 73 73 0d 0a 09 6d 6f 76 09 61 2c 6d 09 3b 74 ┆ate(sector) address mov a,m ;t┆ 0x0b8700…0b8720 72 61 6e 73 6c 61 74 65 64 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 74 6f 20 41 0d 0a 09 73 ┆ranslated sector number to A s┆ 0x0b8720…0b8740 74 61 09 69 6f 73 0d 0a 09 6d 6f 76 09 6c 2c 61 09 3b 72 65 74 75 72 6e 20 73 65 63 74 6f 72 20 ┆ta ios mov l,a ;return sector ┆ 0x0b8740…0b8760 6e 75 6d 62 65 72 20 69 6e 20 4c 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 73 65 74 64 6d 61 3a 09 3b 73 ┆number in L ret ; setdma: ;s┆ 0x0b8760…0b8780 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 67 69 76 65 6e 20 62 79 20 72 65 67 73 20 62 2c 63 ┆et dma address given by regs b,c┆ 0x0b8780…0b87a0 0d 0a 09 6d 6f 76 09 6c 2c 63 0d 0a 09 6d 6f 76 09 68 2c 62 0d 0a 09 73 68 6c 64 09 69 6f 64 0d ┆ mov l,c mov h,b shld iod ┆ 0x0b87a0…0b87c0 0a 09 72 65 74 0d 0a 3b 0d 0a 72 65 61 64 3a 09 3b 72 65 61 64 20 6e 65 78 74 20 64 69 73 6b 20 ┆ ret ; read: ;read next disk ┆ 0x0b87c0…0b87e0 72 65 63 6f 72 64 20 28 61 73 73 75 6d 69 6e 67 20 64 69 73 6b 2f 74 72 6b 2f 73 65 63 2f 64 6d ┆record (assuming disk/trk/sec/dm┆ 0x0b87e0…0b8800 61 20 73 65 74 29 0d 0a 09 6d 76 69 09 63 2c 72 65 61 64 66 09 3b 73 65 74 20 74 6f 20 72 65 61 ┆a set) mvi c,readf ;set to rea┆ 0x0b8800…0b8820 (49, 0, 7) 79 3f 0d 0a 09 6a 7a 09 77 61 69 74 30 0d 0a 3b 0d 0a 3b 09 63 68 65 63 6b 20 69 6f 20 63 6f 6d ┆y? jz wait0 ; ; check io com┆ 0x0b8820…0b8840 70 6c 65 74 69 6f 6e 20 6f 6b 0d 0a 09 63 61 6c 6c 09 69 6e 74 79 70 65 09 09 3b 6d 75 73 74 20 ┆pletion ok call intype ;must ┆ 0x0b8840…0b8860 62 65 20 69 6f 20 63 6f 6d 70 6c 65 74 65 20 28 30 30 29 20 75 6e 6c 69 6e 6b 65 64 0d 0a 3b 09 ┆be io complete (00) unlinked ; ┆ 0x0b8860…0b8880 30 30 20 75 6e 6c 69 6e 6b 65 64 20 69 2f 6f 20 63 6f 6d 70 6c 65 74 65 2c 20 20 20 20 30 31 20 ┆00 unlinked i/o complete, 01 ┆ 0x0b8880…0b88a0 6c 69 6e 6b 65 64 20 69 2f 6f 20 63 6f 6d 70 6c 65 74 65 20 28 6e 6f 74 20 75 73 65 64 29 0d 0a ┆linked i/o complete (not used) ┆ 0x0b88a0…0b88c0 3b 09 31 30 20 64 69 73 6b 20 73 74 61 74 75 73 20 63 68 61 6e 67 65 64 20 20 20 20 20 20 20 31 ┆; 10 disk status changed 1┆ 0x0b88c0…0b88e0 31 20 28 6e 6f 74 20 75 73 65 64 29 0d 0a 09 63 70 69 09 31 30 62 09 09 3b 72 65 61 64 79 20 73 ┆1 (not used) cpi 10b ;ready s┆ 0x0b88e0…0b8900 74 61 74 75 73 20 63 68 61 6e 67 65 3f 0d 0a 09 6a 7a 09 77 72 65 61 64 79 0d 0a 3b 0d 0a 3b 09 ┆tatus change? jz wready ; ; ┆ 0x0b8900…0b8920 6d 75 73 74 20 62 65 20 30 30 20 69 6e 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 0d 0a 09 ┆must be 00 in the accumulator ┆ 0x0b8920…0b8940 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 77 65 72 72 6f 72 09 09 3b 73 6f 6d 65 20 6f 74 68 65 72 20 ┆ora a jnz werror ;some other ┆ 0x0b8940…0b8960 63 6f 6e 64 69 74 69 6f 6e 2c 20 72 65 74 72 79 0d 0a 3b 0d 0a 3b 09 63 68 65 63 6b 20 69 2f 6f ┆condition, retry ; ; check i/o┆ 0x0b8960…0b8980 20 65 72 72 6f 72 20 62 69 74 73 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 0d 0a 09 72 61 6c 0d ┆ error bits call inbyte ral ┆ 0x0b8980…0b89a0 0a 09 6a 63 09 77 72 65 61 64 79 09 09 3b 75 6e 69 74 20 6e 6f 74 20 72 65 61 64 79 0d 0a 09 72 ┆ jc wready ;unit not ready r┆ 0x0b89a0…0b89c0 61 72 0d 0a 09 61 6e 69 09 31 31 31 31 31 31 31 30 62 09 3b 61 6e 79 20 6f 74 68 65 72 20 65 72 ┆ar ani 11111110b ;any other er┆ 0x0b89c0…0b89e0 72 6f 72 73 3f 20 20 28 64 65 6c 65 74 65 64 20 64 61 74 61 20 6f 6b 29 0d 0a 09 6a 6e 7a 09 77 ┆rors? (deleted data ok) jnz w┆ 0x0b89e0…0b8a00 65 72 72 6f 72 0d 0a 3b 0d 0a 3b 09 72 65 61 64 20 6f 72 20 77 72 69 74 65 20 69 73 20 6f 6b 2c ┆error ; ; read or write is ok,┆ 0x0b8a00…0b8a20 (49, 0, 8) 61 6c 20 69 2f 6f 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 69 6f 66 3a 09 64 62 09 72 65 61 64 66 09 ┆al i/o operation iof: db readf ┆ 0x0b8a20…0b8a40 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 2c 20 69 6e 69 74 69 61 6c 20 72 65 61 64 0d 0a 69 6f 6e 3a ┆;io function, initial read ion:┆ 0x0b8a40…0b8a60 09 64 62 09 31 09 3b 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 20 74 6f 20 72 65 61 64 ┆ db 1 ;number of sectors to read┆ 0x0b8a60…0b8a80 0d 0a 69 6f 74 3a 09 64 62 09 6f 66 66 73 65 74 09 3b 74 72 61 63 6b 20 6e 75 6d 62 65 72 0d 0a ┆ iot: db offset ;track number ┆ 0x0b8a80…0b8aa0 69 6f 73 3a 09 64 62 09 31 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 0d 0a 69 6f 64 3a 09 64 ┆ios: db 1 ;sector number iod: d┆ 0x0b8aa0…0b8ac0 77 09 62 75 66 66 09 3b 69 6f 20 61 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 65 66 69 ┆w buff ;io address ; ; ; defi┆ 0x0b8ac0…0b8ae0 6e 65 20 72 61 6d 20 61 72 65 61 73 20 66 6f 72 20 62 64 6f 73 20 6f 70 65 72 61 74 69 6f 6e 0d ┆ne ram areas for bdos operation ┆ 0x0b8ae0…0b8b00 0a 09 65 6e 64 65 66 0d 0a 09 65 6e 64 0d 0a 3b 09 4d 44 53 2d 38 30 30 20 49 2f 4f 20 44 72 69 ┆ endef end ; MDS-800 I/O Dri┆ 0x0b8b00…0b8b20 76 65 72 73 20 66 6f 72 20 43 50 2f 4d 20 32 2e 32 0d 0a 3b 09 28 66 6f 75 72 20 64 72 69 76 65 ┆vers for CP/M 2.2 ; (four drive┆ 0x0b8b20…0b8b40 20 73 69 6e 67 6c 65 20 64 65 6e 73 69 74 79 20 76 65 72 73 69 6f 6e 29 0d 0a 3b 0d 0a 3b 09 56 ┆ single density version) ; ; V┆ 0x0b8b40…0b8b60 65 72 73 69 6f 6e 20 32 2e 32 20 46 65 62 72 75 61 72 79 2c 20 31 39 38 30 0d 0a 3b 0d 0a 76 65 ┆ersion 2.2 February, 1980 ; ve┆ 0x0b8b60…0b8b80 72 73 09 65 71 75 09 32 32 09 3b 76 65 72 73 69 6f 6e 20 32 2e 32 0d 0a 3b 0d 0a 3b 09 43 6f 70 ┆rs equ 22 ;version 2.2 ; ; Cop┆ 0x0b8b80…0b8ba0 79 72 69 67 68 74 20 28 63 29 20 31 39 38 30 0d 0a 3b 09 44 69 67 69 74 61 6c 20 52 65 73 65 61 ┆yright (c) 1980 ; Digital Resea┆ 0x0b8ba0…0b8bc0 72 63 68 0d 0a 3b 09 42 6f 78 20 35 37 39 2c 20 50 61 63 69 66 69 63 20 47 72 6f 76 65 0d 0a 3b ┆rch ; Box 579, Pacific Grove ;┆ 0x0b8bc0…0b8be0 09 43 61 6c 69 66 6f 72 6e 69 61 2c 20 39 33 39 35 30 0d 0a 3b 0d 0a 3b 0d 0a 74 72 75 65 09 65 ┆ California, 93950 ; ; true e┆ 0x0b8be0…0b8c00 71 75 09 30 66 66 66 66 68 09 3b 76 61 6c 75 65 20 6f 66 20 22 74 72 75 65 22 0d 0a 66 61 6c 73 ┆qu 0ffffh ;value of "true" fals┆ 0x0b8c00…0b8c20 (49, 0, 9) 72 79 20 61 67 61 69 6e 0d 0a 09 70 75 73 68 09 62 0d 0a 09 6a 6d 70 09 77 62 6f 6f 74 30 0d 0a ┆ry again push b jmp wboot0 ┆ 0x0b8c20…0b8c40 3b 0d 0a 62 6f 6f 74 65 72 30 3a 0d 0a 3b 09 6f 74 68 65 72 77 69 73 65 20 74 6f 6f 20 6d 61 6e ┆; booter0: ; otherwise too man┆ 0x0b8c40…0b8c60 79 20 72 65 74 72 69 65 73 0d 0a 09 6c 78 69 09 68 2c 62 6f 6f 74 6d 73 67 0d 0a 09 63 61 6c 6c ┆y retries lxi h,bootmsg call┆ 0x0b8c60…0b8c80 09 70 72 6d 73 67 0d 0a 09 6a 6d 70 09 72 6d 6f 6e 38 30 09 3b 6d 64 73 20 68 61 72 64 77 61 72 ┆ prmsg jmp rmon80 ;mds hardwar┆ 0x0b8c80…0b8ca0 65 20 6d 6f 6e 69 74 6f 72 0d 0a 3b 0d 0a 62 6f 6f 74 6d 73 67 3a 0d 0a 09 64 62 09 27 3f 62 6f ┆e monitor ; bootmsg: db '?bo┆ 0x0b8ca0…0b8cc0 6f 74 27 2c 30 0d 0a 3b 0d 0a 3b 0d 0a 63 6f 6e 73 74 3a 09 3b 63 6f 6e 73 6f 6c 65 20 73 74 61 ┆ot',0 ; ; const: ;console sta┆ 0x0b8cc0…0b8ce0 74 75 73 20 74 6f 20 72 65 67 2d 61 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d ┆tus to reg-a ; (exactly the sam┆ 0x0b8ce0…0b8d00 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 63 73 74 73 0d 0a 3b 0d 0a 63 6f ┆e as mds call) jmp csts ; co┆ 0x0b8d00…0b8d20 6e 69 6e 3a 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 72 65 67 2d 61 ┆nin: ;console character to reg-a┆ 0x0b8d20…0b8d40 0d 0a 09 63 61 6c 6c 09 63 69 0d 0a 09 61 6e 69 09 37 66 68 09 3b 72 65 6d 6f 76 65 20 70 61 72 ┆ call ci ani 7fh ;remove par┆ 0x0b8d40…0b8d60 69 74 79 20 62 69 74 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 63 6f 6e 6f 75 74 3a 09 3b 63 6f 6e 73 6f ┆ity bit ret ; conout: ;conso┆ 0x0b8d60…0b8d80 6c 65 20 63 68 61 72 61 63 74 65 72 20 66 72 6f 6d 20 63 20 74 6f 20 63 6f 6e 73 6f 6c 65 20 6f ┆le character from c to console o┆ 0x0b8d80…0b8da0 75 74 0d 0a 09 6a 6d 70 09 63 6f 0d 0a 3b 0d 0a 6c 69 73 74 3a 09 3b 6c 69 73 74 20 64 65 76 69 ┆ut jmp co ; list: ;list devi┆ 0x0b8da0…0b8dc0 63 65 20 6f 75 74 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d ┆ce out ; (exactly the same as m┆ 0x0b8dc0…0b8de0 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 6c 6f 0d 0a 3b 0d 0a 6c 69 73 74 73 74 3a 0d 0a 09 ┆ds call) jmp lo ; listst: ┆ 0x0b8de0…0b8e00 3b 72 65 74 75 72 6e 20 6c 69 73 74 20 73 74 61 74 75 73 0d 0a 09 78 72 61 09 61 0d 0a 09 72 65 ┆;return list status xra a re┆ 0x0b8e00…0b8e20 (49, 0, 10) 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 73 65 74 66 75 6e 63 0d 0a 09 63 61 6c 6c ┆d function call setfunc call┆ 0x0b8e20…0b8e40 09 77 61 69 74 69 6f 09 3b 70 65 72 66 6f 72 6d 20 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a ┆ waitio ;perform read function ┆ 0x0b8e40…0b8e60 09 72 65 74 09 09 3b 6d 61 79 20 68 61 76 65 20 65 72 72 6f 72 20 73 65 74 20 69 6e 20 72 65 67 ┆ ret ;may have error set in reg┆ 0x0b8e60…0b8e80 2d 61 0d 0a 3b 0d 0a 3b 0d 0a 77 72 69 74 65 3a 09 3b 64 69 73 6b 20 77 72 69 74 65 20 66 75 6e ┆-a ; ; write: ;disk write fun┆ 0x0b8e80…0b8ea0 63 74 69 6f 6e 0d 0a 09 6d 76 69 09 63 2c 77 72 69 74 66 0d 0a 09 63 61 6c 6c 09 73 65 74 66 75 ┆ction mvi c,writf call setfu┆ 0x0b8ea0…0b8ec0 6e 63 09 3b 73 65 74 20 74 6f 20 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 63 61 6c 6c ┆nc ;set to write function call┆ 0x0b8ec0…0b8ee0 09 77 61 69 74 69 6f 0d 0a 09 72 65 74 09 09 3b 6d 61 79 20 68 61 76 65 20 65 72 72 6f 72 20 73 ┆ waitio ret ;may have error s┆ 0x0b8ee0…0b8f00 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 75 74 69 6c 69 74 79 20 73 75 62 72 6f 75 74 69 6e 65 73 0d ┆et ; ; ; utility subroutines ┆ 0x0b8f00…0b8f20 0a 70 72 6d 73 67 3a 09 3b 70 72 69 6e 74 20 6d 65 73 73 61 67 65 20 61 74 20 68 2c 6c 20 74 6f ┆ prmsg: ;print message at h,l to┆ 0x0b8f20…0b8f40 20 30 0d 0a 09 6d 6f 76 09 61 2c 6d 0d 0a 09 6f 72 61 09 61 09 3b 7a 65 72 6f 3f 0d 0a 09 72 7a ┆ 0 mov a,m ora a ;zero? rz┆ 0x0b8f40…0b8f60 0d 0a 3b 09 6d 6f 72 65 20 74 6f 20 70 72 69 6e 74 0d 0a 09 70 75 73 68 09 68 0d 0a 09 6d 6f 76 ┆ ; more to print push h mov┆ 0x0b8f60…0b8f80 09 63 2c 61 0d 0a 09 63 61 6c 6c 09 63 6f 6e 6f 75 74 0d 0a 09 70 6f 70 09 68 0d 0a 09 69 6e 78 ┆ c,a call conout pop h inx┆ 0x0b8f80…0b8fa0 09 68 0d 0a 09 6a 6d 70 09 70 72 6d 73 67 0d 0a 3b 0d 0a 73 65 74 66 75 6e 63 3a 0d 0a 3b 09 73 ┆ h jmp prmsg ; setfunc: ; s┆ 0x0b8fa0…0b8fc0 65 74 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 6e 65 78 74 20 69 2f 6f 20 28 63 6f 6d 6d 61 6e ┆et function for next i/o (comman┆ 0x0b8fc0…0b8fe0 64 20 69 6e 20 72 65 67 2d 63 29 0d 0a 09 6c 78 69 09 68 2c 69 6f 66 09 3b 69 6f 20 66 75 6e 63 ┆d in reg-c) lxi h,iof ;io func┆ 0x0b8fe0…0b9000 74 69 6f 6e 20 61 64 64 72 65 73 73 0d 0a 09 6d 6f 76 09 61 2c 6d 09 3b 67 65 74 20 69 74 20 74 ┆tion address mov a,m ;get it t┆ 0x0b9000…0b9020 (49, 0, 11) 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 63 6f 6e 74 61 69 6e 73 20 7a 65 72 6f 0d 0a 09 72 65 74 ┆ accumulator contains zero ret┆ 0x0b9020…0b9040 0d 0a 3b 0d 0a 77 72 65 61 64 79 3a 09 3b 6e 6f 74 20 72 65 61 64 79 2c 20 74 72 65 61 74 20 61 ┆ ; wready: ;not ready, treat a┆ 0x0b9040…0b9060 73 20 65 72 72 6f 72 20 66 6f 72 20 6e 6f 77 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 09 09 3b ┆s error for now call inbyte ;┆ 0x0b9060…0b9080 63 6c 65 61 72 20 72 65 73 75 6c 74 20 62 79 74 65 0d 0a 09 6a 6d 70 09 74 72 79 63 6f 75 6e 74 ┆clear result byte jmp trycount┆ 0x0b9080…0b90a0 0d 0a 3b 0d 0a 77 65 72 72 6f 72 3a 09 3b 72 65 74 75 72 6e 20 68 61 72 64 77 61 72 65 20 6d 61 ┆ ; werror: ;return hardware ma┆ 0x0b90a0…0b90c0 6c 66 75 6e 63 74 69 6f 6e 20 28 63 72 63 2c 20 74 72 61 63 6b 2c 20 73 65 65 6b 2c 20 65 74 63 ┆lfunction (crc, track, seek, etc┆ 0x0b90c0…0b90e0 2e 29 0d 0a 3b 09 74 68 65 20 6d 64 73 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 68 61 73 20 72 65 74 ┆.) ; the mds controller has ret┆ 0x0b90e0…0b9100 75 72 6e 65 64 20 61 20 62 69 74 20 69 6e 20 65 61 63 68 20 70 6f 73 69 74 69 6f 6e 0d 0a 3b 09 ┆urned a bit in each position ; ┆ 0x0b9100…0b9120 6f 66 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 2c 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e ┆of the accumulator, correspondin┆ 0x0b9120…0b9140 67 20 74 6f 20 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e 73 3a 0d 0a 3b 09 30 09 2d 20 64 65 6c 65 ┆g to the conditions: ; 0 - dele┆ 0x0b9140…0b9160 74 65 64 20 64 61 74 61 20 28 61 63 63 65 70 74 65 64 20 61 73 20 6f 6b 20 61 62 6f 76 65 29 0d ┆ted data (accepted as ok above) ┆ 0x0b9160…0b9180 0a 3b 09 31 09 2d 20 63 72 63 20 65 72 72 6f 72 0d 0a 3b 09 32 09 2d 20 73 65 65 6b 20 65 72 72 ┆ ; 1 - crc error ; 2 - seek err┆ 0x0b9180…0b91a0 6f 72 0d 0a 3b 09 33 09 2d 20 61 64 64 72 65 73 73 20 65 72 72 6f 72 20 28 68 61 72 64 77 61 72 ┆or ; 3 - address error (hardwar┆ 0x0b91a0…0b91c0 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 34 09 2d 20 64 61 74 61 20 6f 76 65 72 2f ┆e malfunction) ; 4 - data over/┆ 0x0b91c0…0b91e0 75 6e 64 65 72 20 66 6c 6f 77 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e ┆under flow (hardware malfunction┆ 0x0b91e0…0b9200 29 0d 0a 3b 09 35 09 2d 20 77 72 69 74 65 20 70 72 6f 74 65 63 74 20 28 74 72 65 61 74 65 64 20 ┆) ; 5 - write protect (treated ┆ 0x0b9200…0b9220 (49, 0, 12) 65 09 65 71 75 09 6e 6f 74 20 74 72 75 65 09 3b 22 66 61 6c 73 65 22 0d 0a 74 65 73 74 09 65 71 ┆e equ not true ;"false" test eq┆ 0x0b9220…0b9240 75 09 66 61 6c 73 65 09 3b 74 72 75 65 20 69 66 20 74 65 73 74 20 62 69 6f 73 0d 0a 3b 0d 0a 09 ┆u false ;true if test bios ; ┆ 0x0b9240…0b9260 69 66 09 74 65 73 74 0d 0a 62 69 61 73 09 65 71 75 09 30 33 34 30 30 68 09 3b 62 61 73 65 20 6f ┆if test bias equ 03400h ;base o┆ 0x0b9260…0b9280 66 20 43 43 50 20 69 6e 20 74 65 73 74 20 73 79 73 74 65 6d 0d 0a 09 65 6e 64 69 66 0d 0a 09 69 ┆f CCP in test system endif i┆ 0x0b9280…0b92a0 66 09 6e 6f 74 20 74 65 73 74 0d 0a 62 69 61 73 09 65 71 75 09 30 30 30 30 68 09 3b 67 65 6e 65 ┆f not test bias equ 0000h ;gene┆ 0x0b92a0…0b92c0 72 61 74 65 20 72 65 6c 6f 63 61 74 61 62 6c 65 20 63 70 2f 6d 20 73 79 73 74 65 6d 0d 0a 09 65 ┆rate relocatable cp/m system e┆ 0x0b92c0…0b92e0 6e 64 69 66 0d 0a 3b 0d 0a 70 61 74 63 68 09 65 71 75 09 31 36 30 30 68 0d 0a 3b 0d 0a 09 6f 72 ┆ndif ; patch equ 1600h ; or┆ 0x0b92e0…0b9300 67 09 70 61 74 63 68 0d 0a 63 70 6d 62 09 65 71 75 09 24 2d 70 61 74 63 68 09 3b 62 61 73 65 20 ┆g patch cpmb equ $-patch ;base ┆ 0x0b9300…0b9320 6f 66 20 63 70 6d 20 63 6f 6e 73 6f 6c 65 20 70 72 6f 63 65 73 73 6f 72 0d 0a 62 64 6f 73 09 65 ┆of cpm console processor bdos e┆ 0x0b9320…0b9340 71 75 09 38 30 36 68 2b 63 70 6d 62 09 3b 62 61 73 69 63 20 64 6f 73 20 28 72 65 73 69 64 65 6e ┆qu 806h+cpmb ;basic dos (residen┆ 0x0b9340…0b9360 74 20 70 6f 72 74 69 6f 6e 29 0d 0a 63 70 6d 6c 09 65 71 75 09 24 2d 63 70 6d 62 09 3b 6c 65 6e ┆t portion) cpml equ $-cpmb ;len┆ 0x0b9360…0b9380 67 74 68 20 28 69 6e 20 62 79 74 65 73 29 20 6f 66 20 63 70 6d 20 73 79 73 74 65 6d 0d 0a 6e 73 ┆gth (in bytes) of cpm system ns┆ 0x0b9380…0b93a0 65 63 74 73 09 65 71 75 09 63 70 6d 6c 2f 31 32 38 09 3b 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 ┆ects equ cpml/128 ;number of sec┆ 0x0b93a0…0b93c0 74 6f 72 73 20 74 6f 20 6c 6f 61 64 0d 0a 6f 66 66 73 65 74 09 65 71 75 09 32 09 3b 6e 75 6d 62 ┆tors to load offset equ 2 ;numb┆ 0x0b93c0…0b93e0 65 72 20 6f 66 20 64 69 73 6b 20 74 72 61 63 6b 73 20 75 73 65 64 20 62 79 20 63 70 2f 6d 0d 0a ┆er of disk tracks used by cp/m ┆ 0x0b93e0…0b9400 63 64 69 73 6b 09 65 71 75 09 30 30 30 34 68 09 3b 61 64 64 72 65 73 73 20 6f 66 20 6c 61 73 74 ┆cdisk equ 0004h ;address of last┆ 0x0b9400…0b9420 (49, 0, 13) 74 09 09 3b 61 6c 77 61 79 73 20 6e 6f 74 20 72 65 61 64 79 0d 0a 3b 0d 0a 70 75 6e 63 68 3a 09 ┆t ;always not ready ; punch: ┆ 0x0b9420…0b9440 3b 70 75 6e 63 68 20 64 65 76 69 63 65 20 6f 75 74 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 ┆;punch device out ; (exactly th┆ 0x0b9440…0b9460 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 70 6f 0d 0a 3b 0d ┆e same as mds call) jmp po ; ┆ 0x0b9460…0b9480 0a 72 65 61 64 65 72 3a 09 3b 72 65 61 64 65 72 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 74 6f ┆ reader: ;reader character in to┆ 0x0b9480…0b94a0 20 72 65 67 2d 61 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d ┆ reg-a ; (exactly the same as m┆ 0x0b94a0…0b94c0 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 72 69 0d 0a 3b 0d 0a 68 6f 6d 65 3a 09 3b 6d 6f 76 ┆ds call) jmp ri ; home: ;mov┆ 0x0b94c0…0b94e0 65 20 74 6f 20 68 6f 6d 65 20 70 6f 73 69 74 69 6f 6e 0d 0a 3b 09 74 72 65 61 74 20 61 73 20 74 ┆e to home position ; treat as t┆ 0x0b94e0…0b9500 72 61 63 6b 20 30 30 20 73 65 65 6b 0d 0a 09 6d 76 69 09 63 2c 30 0d 0a 09 6a 6d 70 09 73 65 74 ┆rack 00 seek mvi c,0 jmp set┆ 0x0b9500…0b9520 74 72 6b 0d 0a 3b 0d 0a 73 65 6c 64 73 6b 3a 09 3b 73 65 6c 65 63 74 20 64 69 73 6b 20 67 69 76 ┆trk ; seldsk: ;select disk giv┆ 0x0b9520…0b9540 65 6e 20 62 79 20 72 65 67 69 73 74 65 72 20 63 0d 0a 09 6c 78 69 09 68 2c 30 30 30 30 68 09 3b ┆en by register c lxi h,0000h ;┆ 0x0b9540…0b9560 72 65 74 75 72 6e 20 30 30 30 30 20 69 66 20 65 72 72 6f 72 0d 0a 09 6d 6f 76 09 61 2c 63 0d 0a ┆return 0000 if error mov a,c ┆ 0x0b9560…0b9580 09 63 70 69 09 6e 64 69 73 6b 73 09 3b 74 6f 6f 20 6c 61 72 67 65 3f 0d 0a 09 72 6e 63 09 09 3b ┆ cpi ndisks ;too large? rnc ;┆ 0x0b9580…0b95a0 6c 65 61 76 65 20 48 4c 20 3d 20 30 30 30 30 0d 0a 3b 0d 0a 09 61 6e 69 09 31 30 62 09 3b 30 30 ┆leave HL = 0000 ; ani 10b ;00┆ 0x0b95a0…0b95c0 20 30 30 20 66 6f 72 20 64 72 69 76 65 20 30 2c 31 20 61 6e 64 20 31 30 20 31 30 20 66 6f 72 20 ┆ 00 for drive 0,1 and 10 10 for ┆ 0x0b95c0…0b95e0 64 72 69 76 65 20 32 2c 33 0d 0a 09 73 74 61 09 64 62 61 6e 6b 09 3b 74 6f 20 73 65 6c 65 63 74 ┆drive 2,3 sta dbank ;to select┆ 0x0b95e0…0b9600 20 64 72 69 76 65 20 62 61 6e 6b 0d 0a 09 6d 6f 76 09 61 2c 63 09 3b 30 30 2c 20 30 31 2c 20 31 ┆ drive bank mov a,c ;00, 01, 1┆ 0x0b9600…0b9620 (49, 0, 14) 6f 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 66 6f 72 20 6d 61 73 6b 69 6e 67 0d 0a 09 61 6e 69 09 ┆o accumulator for masking ani ┆ 0x0b9620…0b9640 31 31 31 31 31 30 30 30 62 09 3b 72 65 6d 6f 76 65 20 70 72 65 76 69 6f 75 73 20 63 6f 6d 6d 61 ┆11111000b ;remove previous comma┆ 0x0b9640…0b9660 6e 64 0d 0a 09 6f 72 61 09 63 09 3b 73 65 74 20 74 6f 20 6e 65 77 20 63 6f 6d 6d 61 6e 64 0d 0a ┆nd ora c ;set to new command ┆ 0x0b9660…0b9680 09 6d 6f 76 09 6d 2c 61 09 3b 72 65 70 6c 61 63 65 64 20 69 6e 20 69 6f 70 62 0d 0a 3b 09 74 68 ┆ mov m,a ;replaced in iopb ; th┆ 0x0b9680…0b96a0 65 20 6d 64 73 2d 38 30 30 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 72 65 71 75 69 72 65 73 20 64 69 ┆e mds-800 controller requires di┆ 0x0b96a0…0b96c0 73 6b 20 62 61 6e 6b 20 62 69 74 20 69 6e 20 73 65 63 74 6f 72 20 62 79 74 65 0d 0a 3b 09 6d 61 ┆sk bank bit in sector byte ; ma┆ 0x0b96c0…0b96e0 73 6b 20 74 68 65 20 62 69 74 20 66 72 6f 6d 20 74 68 65 20 63 75 72 72 65 6e 74 20 69 2f 6f 20 ┆sk the bit from the current i/o ┆ 0x0b96e0…0b9700 66 75 6e 63 74 69 6f 6e 0d 0a 09 61 6e 69 09 30 30 31 30 30 30 30 30 62 09 3b 6d 61 73 6b 20 74 ┆function ani 00100000b ;mask t┆ 0x0b9700…0b9720 68 65 20 64 69 73 6b 20 73 65 6c 65 63 74 20 62 69 74 0d 0a 09 6c 78 69 09 68 2c 69 6f 73 09 09 ┆he disk select bit lxi h,ios ┆ 0x0b9720…0b9740 3b 61 64 64 72 65 73 73 20 74 68 65 20 73 65 63 74 6f 72 20 73 65 6c 65 63 74 20 62 79 74 65 0d ┆;address the sector select byte ┆ 0x0b9740…0b9760 0a 09 6f 72 61 09 6d 09 09 3b 73 65 6c 65 63 74 20 70 72 6f 70 65 72 20 64 69 73 6b 20 62 61 6e ┆ ora m ;select proper disk ban┆ 0x0b9760…0b9780 6b 0d 0a 09 6d 6f 76 09 6d 2c 61 09 09 3b 73 65 74 20 64 69 73 6b 20 73 65 6c 65 63 74 20 62 69 ┆k mov m,a ;set disk select bi┆ 0x0b9780…0b97a0 74 20 6f 6e 2f 6f 66 66 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 77 61 69 74 69 6f 3a 0d 0a 09 6d 76 69 ┆t on/off ret ; waitio: mvi┆ 0x0b97a0…0b97c0 09 63 2c 72 65 74 72 79 09 3b 6d 61 78 20 72 65 74 72 69 65 73 20 62 65 66 6f 72 65 20 70 65 72 ┆ c,retry ;max retries before per┆ 0x0b97c0…0b97e0 6d 20 65 72 72 6f 72 0d 0a 72 65 77 61 69 74 3a 0d 0a 3b 09 73 74 61 72 74 20 74 68 65 20 69 2f ┆m error rewait: ; start the i/┆ 0x0b97e0…0b9800 6f 20 66 75 6e 63 74 69 6f 6e 20 61 6e 64 20 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 69 ┆o function and wait for completi┆ 0x0b9800…0b9820 (49, 0, 15) 61 73 20 6e 6f 74 20 72 65 61 64 79 29 0d 0a 3b 09 36 09 2d 20 77 72 69 74 65 20 65 72 72 6f 72 ┆as not ready) ; 6 - write error┆ 0x0b9820…0b9840 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 37 09 2d 20 6e ┆ (hardware malfunction) ; 7 - n┆ 0x0b9840…0b9860 6f 74 20 72 65 61 64 79 0d 0a 3b 09 28 61 63 63 75 6d 75 6c 61 74 6f 72 20 62 69 74 73 20 61 72 ┆ot ready ; (accumulator bits ar┆ 0x0b9860…0b9880 65 20 6e 75 6d 62 65 72 65 64 20 37 20 36 20 35 20 34 20 33 20 32 20 31 20 30 29 0d 0a 3b 0d 0a ┆e numbered 7 6 5 4 3 2 1 0) ; ┆ 0x0b9880…0b98a0 3b 09 69 74 20 6d 61 79 20 62 65 20 75 73 65 66 75 6c 20 74 6f 20 66 69 6c 74 65 72 20 6f 75 74 ┆; it may be useful to filter out┆ 0x0b98a0…0b98c0 20 74 68 65 20 76 61 72 69 6f 75 73 20 63 6f 6e 64 69 74 69 6f 6e 73 2c 0d 0a 3b 09 62 75 74 20 ┆ the various conditions, ; but ┆ 0x0b98c0…0b98e0 77 65 20 77 69 6c 6c 20 67 65 74 20 61 20 70 65 72 6d 61 6e 65 6e 74 20 65 72 72 6f 72 20 6d 65 ┆we will get a permanent error me┆ 0x0b98e0…0b9900 73 73 61 67 65 20 69 66 20 69 74 20 69 73 20 6e 6f 74 0d 0a 3b 09 72 65 63 6f 76 65 72 61 62 6c ┆ssage if it is not ; recoverabl┆ 0x0b9900…0b9920 65 2e 20 20 69 6e 20 61 6e 79 20 63 61 73 65 2c 20 74 68 65 20 6e 6f 74 20 72 65 61 64 79 20 63 ┆e. in any case, the not ready c┆ 0x0b9920…0b9940 6f 6e 64 69 74 69 6f 6e 20 69 73 0d 0a 3b 09 74 72 65 61 74 65 64 20 61 73 20 61 20 73 65 70 61 ┆ondition is ; treated as a sepa┆ 0x0b9940…0b9960 72 61 74 65 20 63 6f 6e 64 69 74 69 6f 6e 20 66 6f 72 20 6c 61 74 65 72 20 69 6d 70 72 6f 76 65 ┆rate condition for later improve┆ 0x0b9960…0b9980 6d 65 6e 74 0d 0a 74 72 79 63 6f 75 6e 74 3a 0d 0a 3b 09 72 65 67 69 73 74 65 72 20 63 20 63 6f ┆ment trycount: ; register c co┆ 0x0b9980…0b99a0 6e 74 61 69 6e 73 20 72 65 74 72 79 20 63 6f 75 6e 74 2c 20 64 65 63 72 65 6d 65 6e 74 20 27 74 ┆ntains retry count, decrement 't┆ 0x0b99a0…0b99c0 69 6c 20 7a 65 72 6f 0d 0a 09 64 63 72 09 63 0d 0a 09 6a 6e 7a 09 72 65 77 61 69 74 09 3b 66 6f ┆il zero dcr c jnz rewait ;fo┆ 0x0b99c0…0b99e0 72 20 61 6e 6f 74 68 65 72 20 74 72 79 0d 0a 3b 0d 0a 3b 09 63 61 6e 6e 6f 74 20 72 65 63 6f 76 ┆r another try ; ; cannot recov┆ 0x0b99e0…0b9a00 65 72 20 66 72 6f 6d 20 65 72 72 6f 72 0d 0a 09 6d 76 69 09 61 2c 31 09 3b 65 72 72 6f 72 20 63 ┆er from error mvi a,1 ;error c┆ 0x0b9a00…0b9a20 (49, 1, 1) 20 6c 6f 67 67 65 64 20 64 69 73 6b 20 6f 6e 20 77 61 72 6d 20 73 74 61 72 74 0d 0a 62 75 66 66 ┆ logged disk on warm start buff┆ 0x0b9a20…0b9a40 09 65 71 75 09 30 30 38 30 68 09 3b 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 ┆ equ 0080h ;default buffer addre┆ 0x0b9a40…0b9a60 73 73 0d 0a 72 65 74 72 79 09 65 71 75 09 31 30 09 3b 6d 61 78 20 72 65 74 72 69 65 73 20 6f 6e ┆ss retry equ 10 ;max retries on┆ 0x0b9a60…0b9a80 20 64 69 73 6b 20 69 2f 6f 20 62 65 66 6f 72 65 20 65 72 72 6f 72 0d 0a 3b 0d 0a 3b 09 70 65 72 ┆ disk i/o before error ; ; per┆ 0x0b9a80…0b9aa0 66 6f 72 6d 20 66 6f 6c 6c 6f 77 69 6e 67 20 66 75 6e 63 74 69 6f 6e 73 0d 0a 3b 09 62 6f 6f 74 ┆form following functions ; boot┆ 0x0b9aa0…0b9ac0 09 63 6f 6c 64 20 73 74 61 72 74 0d 0a 3b 09 77 62 6f 6f 74 09 77 61 72 6d 20 73 74 61 72 74 20 ┆ cold start ; wboot warm start ┆ 0x0b9ac0…0b9ae0 28 73 61 76 65 20 69 2f 6f 20 62 79 74 65 29 0d 0a 3b 09 28 62 6f 6f 74 20 61 6e 64 20 77 62 6f ┆(save i/o byte) ; (boot and wbo┆ 0x0b9ae0…0b9b00 6f 74 20 61 72 65 20 74 68 65 20 73 61 6d 65 20 66 6f 72 20 6d 64 73 29 0d 0a 3b 09 63 6f 6e 73 ┆ot are the same for mds) ; cons┆ 0x0b9b00…0b9b20 74 09 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 0d 0a 3b 09 09 72 65 67 2d 61 20 3d 20 30 30 20 ┆t console status ; reg-a = 00 ┆ 0x0b9b20…0b9b40 69 66 20 6e 6f 20 63 68 61 72 61 63 74 65 72 20 72 65 61 64 79 0d 0a 3b 09 09 72 65 67 2d 61 20 ┆if no character ready ; reg-a ┆ 0x0b9b40…0b9b60 3d 20 66 66 20 69 66 20 63 68 61 72 61 63 74 65 72 20 72 65 61 64 79 0d 0a 3b 09 63 6f 6e 69 6e ┆= ff if character ready ; conin┆ 0x0b9b60…0b9b80 09 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 28 72 65 73 75 6c 74 20 69 6e ┆ console character in (result in┆ 0x0b9b80…0b9ba0 20 72 65 67 2d 61 29 0d 0a 3b 09 63 6f 6e 6f 75 74 09 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 ┆ reg-a) ; conout console charac┆ 0x0b9ba0…0b9bc0 74 65 72 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 6c 69 73 74 09 ┆ter out (char in reg-c) ; list ┆ 0x0b9bc0…0b9be0 6c 69 73 74 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 70 75 6e 63 ┆list out (char in reg-c) ; punc┆ 0x0b9be0…0b9c00 68 09 70 75 6e 63 68 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 72 ┆h punch out (char in reg-c) ; r┆ 0x0b9c00…0b9c20 (49, 1, 2) 70 74 20 63 6f 6e 74 72 6f 6c 20 70 6f 72 74 0d 0a 69 6e 74 65 09 65 71 75 09 30 31 31 31 24 31 ┆pt control port inte equ 0111$1┆ 0x0b9c20…0b9c40 31 31 30 62 09 3b 65 6e 61 62 6c 65 20 72 73 74 20 30 28 77 61 72 6d 20 62 6f 6f 74 29 2c 20 72 ┆110b ;enable rst 0(warm boot), r┆ 0x0b9c40…0b9c60 73 74 20 37 20 28 6d 6f 6e 69 74 6f 72 29 0d 0a 3b 0d 0a 3b 09 6d 64 73 20 6d 6f 6e 69 74 6f 72 ┆st 7 (monitor) ; ; mds monitor┆ 0x0b9c60…0b9c80 20 65 71 75 61 74 65 73 0d 0a 6d 6f 6e 38 30 09 65 71 75 09 30 66 38 30 30 68 09 3b 6d 64 73 20 ┆ equates mon80 equ 0f800h ;mds ┆ 0x0b9c80…0b9ca0 6d 6f 6e 69 74 6f 72 0d 0a 72 6d 6f 6e 38 30 09 65 71 75 09 30 66 66 30 66 68 09 3b 72 65 73 74 ┆monitor rmon80 equ 0ff0fh ;rest┆ 0x0b9ca0…0b9cc0 61 72 74 20 6d 6f 6e 38 30 20 28 62 6f 6f 74 20 65 72 72 6f 72 29 0d 0a 63 69 09 65 71 75 09 30 ┆art mon80 (boot error) ci equ 0┆ 0x0b9cc0…0b9ce0 66 38 30 33 68 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 72 65 67 2d ┆f803h ;console character to reg-┆ 0x0b9ce0…0b9d00 61 0d 0a 72 69 09 65 71 75 09 30 66 38 30 36 68 09 3b 72 65 61 64 65 72 20 69 6e 20 74 6f 20 72 ┆a ri equ 0f806h ;reader in to r┆ 0x0b9d00…0b9d20 65 67 2d 61 0d 0a 63 6f 09 65 71 75 09 30 66 38 30 39 68 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 ┆eg-a co equ 0f809h ;console cha┆ 0x0b9d20…0b9d40 72 20 66 72 6f 6d 20 63 20 74 6f 20 63 6f 6e 73 6f 6c 65 20 6f 75 74 0d 0a 70 6f 09 65 71 75 09 ┆r from c to console out po equ ┆ 0x0b9d40…0b9d60 30 66 38 30 63 68 09 3b 70 75 6e 63 68 20 63 68 61 72 20 66 72 6f 6d 20 63 20 74 6f 20 70 75 6e ┆0f80ch ;punch char from c to pun┆ 0x0b9d60…0b9d80 63 68 20 64 65 76 69 63 65 0d 0a 6c 6f 09 65 71 75 09 30 66 38 30 66 68 09 3b 6c 69 73 74 20 66 ┆ch device lo equ 0f80fh ;list f┆ 0x0b9d80…0b9da0 72 6f 6d 20 63 20 74 6f 20 6c 69 73 74 20 64 65 76 69 63 65 0d 0a 63 73 74 73 09 65 71 75 09 30 ┆rom c to list device csts equ 0┆ 0x0b9da0…0b9dc0 66 38 31 32 68 09 3b 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 20 30 30 2f 66 66 20 74 6f 20 72 ┆f812h ;console status 00/ff to r┆ 0x0b9dc0…0b9de0 65 67 69 73 74 65 72 20 61 0d 0a 3b 0d 0a 3b 09 64 69 73 6b 20 70 6f 72 74 73 20 61 6e 64 20 63 ┆egister a ; ; disk ports and c┆ 0x0b9de0…0b9e00 6f 6d 6d 61 6e 64 73 0d 0a 62 61 73 65 09 65 71 75 09 37 38 68 09 3b 62 61 73 65 20 6f 66 20 64 ┆ommands base equ 78h ;base of d┆ 0x0b9e00…0b9e20 (49, 1, 3) 0d 0a 09 6a 6e 7a 09 62 6f 6f 74 65 72 72 09 3b 72 65 74 72 79 20 69 66 20 65 72 72 6f 72 73 20 ┆ jnz booterr ;retry if errors ┆ 0x0b9e20…0b9e40 6f 63 63 75 72 0d 0a 09 6c 68 6c 64 09 69 6f 64 09 3b 69 6e 63 72 65 6d 65 6e 74 20 64 6d 61 20 ┆occur lhld iod ;increment dma ┆ 0x0b9e40…0b9e60 61 64 64 72 65 73 73 0d 0a 09 6c 78 69 09 64 2c 31 32 38 09 3b 73 65 63 74 6f 72 20 73 69 7a 65 ┆address lxi d,128 ;sector size┆ 0x0b9e60…0b9e80 0d 0a 09 64 61 64 09 64 09 3b 69 6e 63 72 65 6d 65 6e 74 65 64 20 64 6d 61 20 61 64 64 72 65 73 ┆ dad d ;incremented dma addres┆ 0x0b9e80…0b9ea0 73 20 69 6e 20 68 6c 0d 0a 09 6d 6f 76 09 62 2c 68 0d 0a 09 6d 6f 76 09 63 2c 6c 09 3b 72 65 61 ┆s in hl mov b,h mov c,l ;rea┆ 0x0b9ea0…0b9ec0 64 79 20 66 6f 72 20 63 61 6c 6c 20 74 6f 20 73 65 74 20 64 6d 61 0d 0a 09 63 61 6c 6c 09 73 65 ┆dy for call to set dma call se┆ 0x0b9ec0…0b9ee0 74 64 6d 61 0d 0a 09 6c 64 61 09 69 6f 73 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 6a 75 ┆tdma lda ios ;sector number ju┆ 0x0b9ee0…0b9f00 73 74 20 72 65 61 64 0d 0a 09 63 70 69 09 32 36 09 3b 72 65 61 64 20 6c 61 73 74 20 73 65 63 74 ┆st read cpi 26 ;read last sect┆ 0x0b9f00…0b9f20 6f 72 3f 0d 0a 09 6a 63 09 72 64 31 0d 0a 3b 09 6d 75 73 74 20 62 65 20 73 65 63 74 6f 72 20 32 ┆or? jc rd1 ; must be sector 2┆ 0x0b9f20…0b9f40 36 2c 20 7a 65 72 6f 20 61 6e 64 20 67 6f 20 74 6f 20 6e 65 78 74 20 74 72 61 63 6b 0d 0a 09 6c ┆6, zero and go to next track l┆ 0x0b9f40…0b9f60 64 61 09 69 6f 74 09 3b 67 65 74 20 74 72 61 63 6b 20 74 6f 20 72 65 67 69 73 74 65 72 20 61 0d ┆da iot ;get track to register a ┆ 0x0b9f60…0b9f80 0a 09 69 6e 72 09 61 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c ┆ inr a mov c,a ;ready for cal┆ 0x0b9f80…0b9fa0 6c 0d 0a 09 63 61 6c 6c 09 73 65 74 74 72 6b 0d 0a 09 78 72 61 09 61 09 3b 63 6c 65 61 72 20 73 ┆l call settrk xra a ;clear s┆ 0x0b9fa0…0b9fc0 65 63 74 6f 72 20 6e 75 6d 62 65 72 0d 0a 72 64 31 3a 09 69 6e 72 09 61 09 3b 74 6f 20 6e 65 78 ┆ector number rd1: inr a ;to nex┆ 0x0b9fc0…0b9fe0 74 20 73 65 63 74 6f 72 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 ┆t sector mov c,a ;ready for ca┆ 0x0b9fe0…0ba000 6c 6c 0d 0a 09 63 61 6c 6c 09 73 65 74 73 65 63 0d 0a 09 70 6f 70 09 62 09 3b 72 65 63 61 6c 6c ┆ll call setsec pop b ;recall┆ 0x0ba000…0ba020 (49, 1, 4) 6f 0d 0a 3b 0d 0a 72 65 61 64 65 72 3a 09 3b 72 65 61 64 65 72 20 63 68 61 72 61 63 74 65 72 20 ┆o ; reader: ;reader character ┆ 0x0ba020…0ba040 69 6e 20 74 6f 20 72 65 67 2d 61 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 ┆in to reg-a ; (exactly the same┆ 0x0ba040…0ba060 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 72 69 0d 0a 3b 0d 0a 68 6f 6d 65 3a ┆ as mds call) jmp ri ; home:┆ 0x0ba060…0ba080 09 3b 6d 6f 76 65 20 74 6f 20 68 6f 6d 65 20 70 6f 73 69 74 69 6f 6e 0d 0a 3b 09 74 72 65 61 74 ┆ ;move to home position ; treat┆ 0x0ba080…0ba0a0 20 61 73 20 74 72 61 63 6b 20 30 30 20 73 65 65 6b 0d 0a 09 6d 76 69 09 63 2c 30 0d 0a 09 6a 6d ┆ as track 00 seek mvi c,0 jm┆ 0x0ba0a0…0ba0c0 70 09 73 65 74 74 72 6b 0d 0a 3b 0d 0a 73 65 6c 64 73 6b 3a 09 3b 73 65 6c 65 63 74 20 64 69 73 ┆p settrk ; seldsk: ;select dis┆ 0x0ba0c0…0ba0e0 6b 20 67 69 76 65 6e 20 62 79 20 72 65 67 69 73 74 65 72 20 63 0d 0a 09 6c 78 69 09 68 2c 30 30 ┆k given by register c lxi h,00┆ 0x0ba0e0…0ba100 30 30 68 09 3b 72 65 74 75 72 6e 20 30 30 30 30 20 69 66 20 65 72 72 6f 72 0d 0a 09 6d 6f 76 09 ┆00h ;return 0000 if error mov ┆ 0x0ba100…0ba120 61 2c 63 0d 0a 09 63 70 69 09 6e 64 69 73 6b 73 09 3b 74 6f 6f 20 6c 61 72 67 65 3f 0d 0a 09 72 ┆a,c cpi ndisks ;too large? r┆ 0x0ba120…0ba140 6e 63 09 09 3b 6c 65 61 76 65 20 48 4c 20 3d 20 30 30 30 30 0d 0a 3b 0d 0a 09 61 6e 69 09 31 30 ┆nc ;leave HL = 0000 ; ani 10┆ 0x0ba140…0ba160 62 09 3b 30 30 20 30 30 20 66 6f 72 20 64 72 69 76 65 20 30 2c 31 20 61 6e 64 20 31 30 20 31 30 ┆b ;00 00 for drive 0,1 and 10 10┆ 0x0ba160…0ba180 20 66 6f 72 20 64 72 69 76 65 20 32 2c 33 0d 0a 09 73 74 61 09 64 62 61 6e 6b 09 3b 74 6f 20 73 ┆ for drive 2,3 sta dbank ;to s┆ 0x0ba180…0ba1a0 65 6c 65 63 74 20 64 72 69 76 65 20 62 61 6e 6b 0d 0a 09 6d 6f 76 09 61 2c 63 09 3b 30 30 2c 20 ┆elect drive bank mov a,c ;00, ┆ 0x0ba1a0…0ba1c0 30 31 2c 20 31 30 2c 20 31 31 0d 0a 09 61 6e 69 09 31 62 09 3b 6d 64 73 20 68 61 73 20 30 2c 31 ┆01, 10, 11 ani 1b ;mds has 0,1┆ 0x0ba1c0…0ba1e0 20 61 74 20 37 38 2c 20 32 2c 33 20 61 74 20 38 38 0d 0a 09 6f 72 61 09 61 09 3b 72 65 73 75 6c ┆ at 78, 2,3 at 88 ora a ;resul┆ 0x0ba1e0…0ba200 74 20 30 30 3f 0d 0a 09 6a 7a 09 73 65 74 64 72 69 76 65 0d 0a 09 6d 76 69 09 61 2c 30 30 31 31 ┆t 00? jz setdrive mvi a,0011┆ 0x0ba200…0ba220 (49, 1, 5) 65 61 64 65 72 09 70 61 70 65 72 20 74 61 70 65 20 72 65 61 64 65 72 20 69 6e 20 28 72 65 73 75 ┆eader paper tape reader in (resu┆ 0x0ba220…0ba240 6c 74 20 74 6f 20 72 65 67 2d 61 29 0d 0a 3b 09 68 6f 6d 65 09 6d 6f 76 65 20 74 6f 20 74 72 61 ┆lt to reg-a) ; home move to tra┆ 0x0ba240…0ba260 63 6b 20 30 30 0d 0a 3b 0d 0a 3b 09 28 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 61 6c 6c 73 ┆ck 00 ; ; (the following calls┆ 0x0ba260…0ba280 20 73 65 74 2d 75 70 20 74 68 65 20 69 6f 20 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 20 66 ┆ set-up the io parameter block f┆ 0x0ba280…0ba2a0 6f 72 20 74 68 65 0d 0a 3b 09 6d 64 73 2c 20 77 68 69 63 68 20 69 73 20 75 73 65 64 20 74 6f 20 ┆or the ; mds, which is used to ┆ 0x0ba2a0…0ba2c0 70 65 72 66 6f 72 6d 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 73 20 61 6e 64 20 77 72 69 ┆perform subsequent reads and wri┆ 0x0ba2c0…0ba2e0 74 65 73 29 0d 0a 3b 09 73 65 6c 64 73 6b 09 73 65 6c 65 63 74 20 64 69 73 6b 20 67 69 76 65 6e ┆tes) ; seldsk select disk given┆ 0x0ba2e0…0ba300 20 62 79 20 72 65 67 2d 63 20 28 30 2c 31 2c 32 2e 2e 2e 29 0d 0a 3b 09 73 65 74 74 72 6b 09 73 ┆ by reg-c (0,1,2...) ; settrk s┆ 0x0ba300…0ba320 65 74 20 74 72 61 63 6b 20 61 64 64 72 65 73 73 20 28 30 2c 2e 2e 2e 37 36 29 20 66 6f 72 20 73 ┆et track address (0,...76) for s┆ 0x0ba320…0ba340 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 2f 77 72 69 74 65 0d 0a 3b 09 73 65 74 73 65 63 09 73 ┆ubsequent read/write ; setsec s┆ 0x0ba340…0ba360 65 74 20 73 65 63 74 6f 72 20 61 64 64 72 65 73 73 20 28 31 2c 2e 2e 2e 2c 32 36 29 20 66 6f 72 ┆et sector address (1,...,26) for┆ 0x0ba360…0ba380 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 2f 77 72 69 74 65 0d 0a 3b 09 73 65 74 64 6d 61 ┆ subsequent read/write ; setdma┆ 0x0ba380…0ba3a0 09 73 65 74 20 73 75 62 73 65 71 75 65 6e 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 28 69 6e 69 ┆ set subsequent dma address (ini┆ 0x0ba3a0…0ba3c0 74 69 61 6c 6c 79 20 38 30 68 29 0d 0a 3b 0d 0a 3b 09 28 72 65 61 64 20 61 6e 64 20 77 72 69 74 ┆tially 80h) ; ; (read and writ┆ 0x0ba3c0…0ba3e0 65 20 61 73 73 75 6d 65 20 70 72 65 76 69 6f 75 73 20 63 61 6c 6c 73 20 74 6f 20 73 65 74 20 75 ┆e assume previous calls to set u┆ 0x0ba3e0…0ba400 70 20 74 68 65 20 69 6f 20 70 61 72 61 6d 65 74 65 72 73 29 0d 0a 3b 09 72 65 61 64 09 72 65 61 ┆p the io parameters) ; read rea┆ 0x0ba400…0ba420 (49, 1, 6) 69 73 6b 20 63 6f 6d 6d 61 6e 64 20 69 6f 20 70 6f 72 74 73 0d 0a 64 73 74 61 74 09 65 71 75 09 ┆isk command io ports dstat equ ┆ 0x0ba420…0ba440 62 61 73 65 09 3b 64 69 73 6b 20 73 74 61 74 75 73 20 28 69 6e 70 75 74 29 0d 0a 72 74 79 70 65 ┆base ;disk status (input) rtype┆ 0x0ba440…0ba460 09 65 71 75 09 62 61 73 65 2b 31 09 3b 72 65 73 75 6c 74 20 74 79 70 65 20 28 69 6e 70 75 74 29 ┆ equ base+1 ;result type (input)┆ 0x0ba460…0ba480 0d 0a 72 62 79 74 65 09 65 71 75 09 62 61 73 65 2b 33 09 3b 72 65 73 75 6c 74 20 62 79 74 65 20 ┆ rbyte equ base+3 ;result byte ┆ 0x0ba480…0ba4a0 28 69 6e 70 75 74 29 0d 0a 3b 0d 0a 69 6c 6f 77 09 65 71 75 09 62 61 73 65 2b 31 09 3b 69 6f 70 ┆(input) ; ilow equ base+1 ;iop┆ 0x0ba4a0…0ba4c0 62 20 6c 6f 77 20 61 64 64 72 65 73 73 20 28 6f 75 74 70 75 74 29 0d 0a 69 68 69 67 68 09 65 71 ┆b low address (output) ihigh eq┆ 0x0ba4c0…0ba4e0 75 09 62 61 73 65 2b 32 09 3b 69 6f 70 62 20 68 69 67 68 20 61 64 64 72 65 73 73 20 28 6f 75 74 ┆u base+2 ;iopb high address (out┆ 0x0ba4e0…0ba500 70 75 74 29 0d 0a 3b 0d 0a 72 65 61 64 66 09 65 71 75 09 34 68 09 3b 72 65 61 64 20 66 75 6e 63 ┆put) ; readf equ 4h ;read func┆ 0x0ba500…0ba520 74 69 6f 6e 0d 0a 77 72 69 74 66 09 65 71 75 09 36 68 09 3b 77 72 69 74 65 20 66 75 6e 63 74 69 ┆tion writf equ 6h ;write functi┆ 0x0ba520…0ba540 6f 6e 0d 0a 72 65 63 61 6c 09 65 71 75 09 33 68 09 3b 72 65 63 61 6c 69 62 72 61 74 65 20 64 72 ┆on recal equ 3h ;recalibrate dr┆ 0x0ba540…0ba560 69 76 65 0d 0a 69 6f 72 64 79 09 65 71 75 09 34 68 09 3b 69 2f 6f 20 66 69 6e 69 73 68 65 64 20 ┆ive iordy equ 4h ;i/o finished ┆ 0x0ba560…0ba580 6d 61 73 6b 0d 0a 63 72 09 65 71 75 09 30 64 68 09 3b 63 61 72 72 69 61 67 65 20 72 65 74 75 72 ┆mask cr equ 0dh ;carriage retur┆ 0x0ba580…0ba5a0 6e 0d 0a 6c 66 09 65 71 75 09 30 61 68 09 3b 6c 69 6e 65 20 66 65 65 64 0d 0a 3b 0d 0a 73 69 67 ┆n lf equ 0ah ;line feed ; sig┆ 0x0ba5a0…0ba5c0 6e 6f 6e 3a 09 3b 73 69 67 6e 6f 6e 20 6d 65 73 73 61 67 65 3a 20 78 78 6b 20 63 70 2f 6d 20 76 ┆non: ;signon message: xxk cp/m v┆ 0x0ba5c0…0ba5e0 65 72 73 20 79 2e 79 0d 0a 09 64 62 09 63 72 2c 6c 66 2c 6c 66 0d 0a 09 69 66 09 74 65 73 74 0d ┆ers y.y db cr,lf,lf if test ┆ 0x0ba5e0…0ba600 0a 09 64 62 09 27 33 32 27 09 3b 33 32 6b 20 65 78 61 6d 70 6c 65 20 62 69 6f 73 0d 0a 09 65 6e ┆ db '32' ;32k example bios en┆ 0x0ba600…0ba620 (49, 1, 7) 20 73 65 63 74 6f 72 20 63 6f 75 6e 74 0d 0a 09 64 63 72 09 62 09 3b 64 6f 6e 65 3f 0d 0a 09 6a ┆ sector count dcr b ;done? j┆ 0x0ba620…0ba640 6e 7a 09 72 64 73 65 63 0d 0a 3b 0d 0a 3b 09 64 6f 6e 65 20 77 69 74 68 20 74 68 65 20 6c 6f 61 ┆nz rdsec ; ; done with the loa┆ 0x0ba640…0ba660 64 2c 20 72 65 73 65 74 20 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 0d ┆d, reset default buffer address ┆ 0x0ba660…0ba680 0a 67 6f 63 70 6d 3a 09 3b 28 65 6e 74 65 72 20 68 65 72 65 20 66 72 6f 6d 20 63 6f 6c 64 20 73 ┆ gocpm: ;(enter here from cold s┆ 0x0ba680…0ba6a0 74 61 72 74 20 62 6f 6f 74 29 0d 0a 3b 09 65 6e 61 62 6c 65 20 72 73 74 30 20 61 6e 64 20 72 73 ┆tart boot) ; enable rst0 and rs┆ 0x0ba6a0…0ba6c0 74 37 0d 0a 09 64 69 0d 0a 09 6d 76 69 09 61 2c 31 32 68 09 3b 69 6e 69 74 69 61 6c 69 7a 65 20 ┆t7 di mvi a,12h ;initialize ┆ 0x0ba6c0…0ba6e0 63 6f 6d 6d 61 6e 64 0d 0a 09 6f 75 74 09 72 65 76 72 74 0d 0a 09 78 72 61 09 61 0d 0a 09 6f 75 ┆command out revrt xra a ou┆ 0x0ba6e0…0ba700 74 09 69 6e 74 63 09 3b 63 6c 65 61 72 65 64 0d 0a 09 6d 76 69 09 61 2c 69 6e 74 65 09 3b 72 73 ┆t intc ;cleared mvi a,inte ;rs┆ 0x0ba700…0ba720 74 30 20 61 6e 64 20 72 73 74 37 20 62 69 74 73 20 6f 6e 0d 0a 09 6f 75 74 09 69 6e 74 63 0d 0a ┆t0 and rst7 bits on out intc ┆ 0x0ba720…0ba740 09 78 72 61 09 61 0d 0a 09 6f 75 74 09 69 63 6f 6e 09 3b 69 6e 74 65 72 72 75 70 74 20 63 6f 6e ┆ xra a out icon ;interrupt con┆ 0x0ba740…0ba760 74 72 6f 6c 0d 0a 3b 0d 0a 3b 09 73 65 74 20 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 ┆trol ; ; set default buffer ad┆ 0x0ba760…0ba780 64 72 65 73 73 20 74 6f 20 38 30 68 0d 0a 09 6c 78 69 09 62 2c 62 75 66 66 0d 0a 09 63 61 6c 6c ┆dress to 80h lxi b,buff call┆ 0x0ba780…0ba7a0 09 73 65 74 64 6d 61 0d 0a 3b 0d 0a 3b 09 72 65 73 65 74 20 6d 6f 6e 69 74 6f 72 20 65 6e 74 72 ┆ setdma ; ; reset monitor entr┆ 0x0ba7a0…0ba7c0 79 20 70 6f 69 6e 74 73 0d 0a 09 6d 76 69 09 61 2c 6a 6d 70 0d 0a 09 73 74 61 09 30 0d 0a 09 6c ┆y points mvi a,jmp sta 0 l┆ 0x0ba7c0…0ba7e0 78 69 09 68 2c 77 62 6f 6f 74 65 0d 0a 09 73 68 6c 64 09 31 09 3b 6a 6d 70 20 77 62 6f 6f 74 20 ┆xi h,wboote shld 1 ;jmp wboot ┆ 0x0ba7e0…0ba800 61 74 20 6c 6f 63 61 74 69 6f 6e 20 30 30 0d 0a 09 73 74 61 09 35 0d 0a 09 6c 78 69 09 68 2c 62 ┆at location 00 sta 5 lxi h,b┆ 0x0ba800…0ba820 (49, 1, 8) 30 30 30 30 62 09 3b 73 65 6c 65 63 74 73 20 64 72 69 76 65 20 31 20 69 6e 20 62 61 6e 6b 0d 0a ┆0000b ;selects drive 1 in bank ┆ 0x0ba820…0ba840 73 65 74 64 72 69 76 65 3a 0d 0a 09 6d 6f 76 09 62 2c 61 09 3b 73 61 76 65 20 74 68 65 20 66 75 ┆setdrive: mov b,a ;save the fu┆ 0x0ba840…0ba860 6e 63 74 69 6f 6e 0d 0a 09 6c 78 69 09 68 2c 69 6f 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 0d ┆nction lxi h,iof ;io function ┆ 0x0ba860…0ba880 0a 09 6d 6f 76 09 61 2c 6d 0d 0a 09 61 6e 69 09 31 31 30 30 31 31 31 31 62 09 3b 6d 61 73 6b 20 ┆ mov a,m ani 11001111b ;mask ┆ 0x0ba880…0ba8a0 6f 75 74 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6f 72 61 09 62 09 3b 6d 61 73 6b 20 69 6e ┆out disk number ora b ;mask in┆ 0x0ba8a0…0ba8c0 20 6e 65 77 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6d 6f 76 09 6d 2c 61 09 3b 73 61 76 65 ┆ new disk number mov m,a ;save┆ 0x0ba8c0…0ba8e0 20 69 74 20 69 6e 20 69 6f 70 62 0d 0a 09 6d 6f 76 09 6c 2c 63 0d 0a 09 6d 76 69 09 68 2c 30 09 ┆ it in iopb mov l,c mvi h,0 ┆ 0x0ba8e0…0ba900 3b 48 4c 3d 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 64 61 64 09 68 09 3b 2a 32 0d 0a 09 64 61 ┆;HL=disk number dad h ;*2 da┆ 0x0ba900…0ba920 64 09 68 09 3b 2a 34 0d 0a 09 64 61 64 09 68 09 3b 2a 38 0d 0a 09 64 61 64 09 68 09 3b 2a 31 36 ┆d h ;*4 dad h ;*8 dad h ;*16┆ 0x0ba920…0ba940 0d 0a 09 6c 78 69 09 64 2c 64 70 62 61 73 65 0d 0a 09 64 61 64 09 64 09 3b 48 4c 3d 64 69 73 6b ┆ lxi d,dpbase dad d ;HL=disk┆ 0x0ba940…0ba960 20 68 65 61 64 65 72 20 74 61 62 6c 65 20 61 64 64 72 65 73 73 0d 0a 09 72 65 74 0d 0a 3b 0d 0a ┆ header table address ret ; ┆ 0x0ba960…0ba980 3b 0d 0a 73 65 74 74 72 6b 3a 09 3b 73 65 74 20 74 72 61 63 6b 20 61 64 64 72 65 73 73 20 67 69 ┆; settrk: ;set track address gi┆ 0x0ba980…0ba9a0 76 65 6e 20 62 79 20 63 0d 0a 09 6c 78 69 09 68 2c 69 6f 74 0d 0a 09 6d 6f 76 09 6d 2c 63 0d 0a ┆ven by c lxi h,iot mov m,c ┆ 0x0ba9a0…0ba9c0 09 72 65 74 0d 0a 3b 0d 0a 73 65 74 73 65 63 3a 09 3b 73 65 74 20 73 65 63 74 6f 72 20 6e 75 6d ┆ ret ; setsec: ;set sector num┆ 0x0ba9c0…0ba9e0 62 65 72 20 67 69 76 65 6e 20 62 79 20 63 0d 0a 09 6c 78 69 09 68 2c 69 6f 73 0d 0a 09 6d 6f 76 ┆ber given by c lxi h,ios mov┆ 0x0ba9e0…0baa00 09 6d 2c 63 0d 0a 09 72 65 74 0d 0a 73 65 63 74 72 61 6e 3a 0d 0a 09 09 3b 74 72 61 6e 73 6c 61 ┆ m,c ret sectran: ;transla┆ 0x0baa00…0baa20 (49, 1, 9) 64 20 74 72 61 63 6b 2f 73 65 63 74 6f 72 20 74 6f 20 70 72 65 73 65 74 20 64 6d 61 20 61 64 64 ┆d track/sector to preset dma add┆ 0x0baa20…0baa40 72 65 73 73 0d 0a 3b 09 77 72 69 74 65 09 77 72 69 74 65 20 74 72 61 63 6b 2f 73 65 63 74 6f 72 ┆ress ; write write track/sector┆ 0x0baa40…0baa60 20 66 72 6f 6d 20 70 72 65 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b 09 6a ┆ from preset dma address ; ; j┆ 0x0baa60…0baa80 75 6d 70 20 76 65 63 74 6f 72 20 66 6f 72 20 69 6e 64 69 76 69 75 61 6c 20 72 6f 75 74 69 6e 65 ┆ump vector for indiviual routine┆ 0x0baa80…0baaa0 73 0d 0a 09 6a 6d 70 09 62 6f 6f 74 0d 0a 77 62 6f 6f 74 65 3a 09 6a 6d 70 09 77 62 6f 6f 74 0d ┆s jmp boot wboote: jmp wboot ┆ 0x0baaa0…0baac0 0a 09 6a 6d 70 09 63 6f 6e 73 74 0d 0a 09 6a 6d 70 09 63 6f 6e 69 6e 0d 0a 09 6a 6d 70 09 63 6f ┆ jmp const jmp conin jmp co┆ 0x0baac0…0baae0 6e 6f 75 74 0d 0a 09 6a 6d 70 09 6c 69 73 74 0d 0a 09 6a 6d 70 09 70 75 6e 63 68 0d 0a 09 6a 6d ┆nout jmp list jmp punch jm┆ 0x0baae0…0bab00 70 09 72 65 61 64 65 72 0d 0a 09 6a 6d 70 09 68 6f 6d 65 0d 0a 09 6a 6d 70 09 73 65 6c 64 73 6b ┆p reader jmp home jmp seldsk┆ 0x0bab00…0bab20 0d 0a 09 6a 6d 70 09 73 65 74 74 72 6b 0d 0a 09 6a 6d 70 09 73 65 74 73 65 63 0d 0a 09 6a 6d 70 ┆ jmp settrk jmp setsec jmp┆ 0x0bab20…0bab40 09 73 65 74 64 6d 61 0d 0a 09 6a 6d 70 09 72 65 61 64 0d 0a 09 6a 6d 70 09 77 72 69 74 65 0d 0a ┆ setdma jmp read jmp write ┆ 0x0bab40…0bab60 09 6a 6d 70 09 6c 69 73 74 73 74 09 3b 6c 69 73 74 20 73 74 61 74 75 73 0d 0a 09 6a 6d 70 09 73 ┆ jmp listst ;list status jmp s┆ 0x0bab60…0bab80 65 63 74 72 61 6e 0d 0a 3b 0d 0a 09 6d 61 63 6c 69 62 09 64 69 73 6b 64 65 66 09 3b 6c 6f 61 64 ┆ectran ; maclib diskdef ;load┆ 0x0bab80…0baba0 20 74 68 65 20 64 69 73 6b 20 64 65 66 69 6e 69 74 69 6f 6e 20 6c 69 62 72 61 72 79 0d 0a 09 64 ┆ the disk definition library d┆ 0x0baba0…0babc0 69 73 6b 73 09 34 09 3b 66 6f 75 72 20 64 69 73 6b 73 0d 0a 09 64 69 73 6b 64 65 66 09 30 2c 31 ┆isks 4 ;four disks diskdef 0,1┆ 0x0babc0…0babe0 2c 32 36 2c 36 2c 31 30 32 34 2c 32 34 33 2c 36 34 2c 36 34 2c 6f 66 66 73 65 74 0d 0a 09 64 69 ┆,26,6,1024,243,64,64,offset di┆ 0x0babe0…0bac00 73 6b 64 65 66 09 31 2c 30 0d 0a 09 64 69 73 6b 64 65 66 09 32 2c 30 0d 0a 09 64 69 73 6b 64 65 ┆skdef 1,0 diskdef 2,0 diskde┆ 0x0bac00…0bac20 (49, 1, 10) 64 69 66 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 09 64 62 09 27 30 30 27 09 3b 6d 65 6d ┆dif if not test db '00' ;mem┆ 0x0bac20…0bac40 6f 72 79 20 73 69 7a 65 20 66 69 6c 6c 65 64 20 62 79 20 72 65 6c 6f 63 61 74 6f 72 0d 0a 09 65 ┆ory size filled by relocator e┆ 0x0bac40…0bac60 6e 64 69 66 0d 0a 09 64 62 09 27 6b 20 43 50 2f 4d 20 76 65 72 73 20 27 0d 0a 09 64 62 09 76 65 ┆ndif db 'k CP/M vers ' db ve┆ 0x0bac60…0bac80 72 73 2f 31 30 2b 27 30 27 2c 27 2e 27 2c 76 65 72 73 20 6d 6f 64 20 31 30 2b 27 30 27 0d 0a 09 ┆rs/10+'0','.',vers mod 10+'0' ┆ 0x0bac80…0baca0 64 62 09 63 72 2c 6c 66 2c 30 0d 0a 3b 0d 0a 62 6f 6f 74 3a 09 3b 70 72 69 6e 74 20 73 69 67 6e ┆db cr,lf,0 ; boot: ;print sign┆ 0x0baca0…0bacc0 6f 6e 20 6d 65 73 73 61 67 65 20 61 6e 64 20 67 6f 20 74 6f 20 63 63 70 0d 0a 3b 09 28 6e 6f 74 ┆on message and go to ccp ; (not┆ 0x0bacc0…0bace0 65 3a 20 6d 64 73 20 62 6f 6f 74 20 69 6e 69 74 69 61 6c 69 7a 65 64 20 69 6f 62 79 74 65 20 61 ┆e: mds boot initialized iobyte a┆ 0x0bace0…0bad00 74 20 30 30 30 33 68 29 0d 0a 09 6c 78 69 09 73 70 2c 62 75 66 66 2b 38 30 68 0d 0a 09 6c 78 69 ┆t 0003h) lxi sp,buff+80h lxi┆ 0x0bad00…0bad20 09 68 2c 73 69 67 6e 6f 6e 0d 0a 09 63 61 6c 6c 09 70 72 6d 73 67 09 3b 70 72 69 6e 74 20 6d 65 ┆ h,signon call prmsg ;print me┆ 0x0bad20…0bad40 73 73 61 67 65 0d 0a 09 78 72 61 09 61 09 3b 63 6c 65 61 72 20 61 63 63 75 6d 75 6c 61 74 6f 72 ┆ssage xra a ;clear accumulator┆ 0x0bad40…0bad60 0d 0a 09 73 74 61 09 63 64 69 73 6b 09 3b 73 65 74 20 69 6e 69 74 69 61 6c 6c 79 20 74 6f 20 64 ┆ sta cdisk ;set initially to d┆ 0x0bad60…0bad80 69 73 6b 20 61 0d 0a 09 6a 6d 70 09 67 6f 63 70 6d 09 3b 67 6f 20 74 6f 20 63 70 2f 6d 0d 0a 3b ┆isk a jmp gocpm ;go to cp/m ;┆ 0x0bad80…0bada0 0d 0a 3b 0d 0a 77 62 6f 6f 74 3a 3b 09 6c 6f 61 64 65 72 20 6f 6e 20 74 72 61 63 6b 20 30 2c 20 ┆ ; wboot:; loader on track 0, ┆ 0x0bada0…0badc0 73 65 63 74 6f 72 20 31 2c 20 77 68 69 63 68 20 77 69 6c 6c 20 62 65 20 73 6b 69 70 70 65 64 20 ┆sector 1, which will be skipped ┆ 0x0badc0…0bade0 66 6f 72 20 77 61 72 6d 20 0d 0a 3b 09 72 65 61 64 20 63 70 2f 6d 20 66 72 6f 6d 20 64 69 73 6b ┆for warm ; read cp/m from disk┆ 0x0bade0…0bae00 20 2d 20 61 73 73 75 6d 69 6e 67 20 74 68 65 72 65 20 69 73 20 61 20 31 32 38 20 62 79 74 65 20 ┆ - assuming there is a 128 byte ┆ 0x0bae00…0bae20 (49, 1, 11) 64 6f 73 0d 0a 09 73 68 6c 64 09 36 09 3b 6a 6d 70 20 62 64 6f 73 20 61 74 20 6c 6f 63 61 74 69 ┆dos shld 6 ;jmp bdos at locati┆ 0x0bae20…0bae40 6f 6e 20 35 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 09 73 74 61 09 37 2a 38 09 3b 6a 6d ┆on 5 if not test sta 7*8 ;jm┆ 0x0bae40…0bae60 70 20 74 6f 20 6d 6f 6e 38 30 20 28 6d 61 79 20 68 61 76 65 20 62 65 65 6e 20 63 68 61 6e 67 65 ┆p to mon80 (may have been change┆ 0x0bae60…0bae80 64 20 62 79 20 64 64 74 29 0d 0a 09 6c 78 69 09 68 2c 6d 6f 6e 38 30 0d 0a 09 73 68 6c 64 09 37 ┆d by ddt) lxi h,mon80 shld 7┆ 0x0bae80…0baea0 2a 38 2b 31 0d 0a 09 65 6e 64 69 66 0d 0a 3b 09 6c 65 61 76 65 20 69 6f 62 79 74 65 20 73 65 74 ┆*8+1 endif ; leave iobyte set┆ 0x0baea0…0baec0 0d 0a 3b 09 70 72 65 76 69 6f 75 73 6c 79 20 73 65 6c 65 63 74 65 64 20 64 69 73 6b 20 77 61 73 ┆ ; previously selected disk was┆ 0x0baec0…0baee0 20 62 2c 20 73 65 6e 64 20 70 61 72 61 6d 65 74 65 72 20 74 6f 20 63 70 6d 0d 0a 09 6c 64 61 09 ┆ b, send parameter to cpm lda ┆ 0x0baee0…0baf00 63 64 69 73 6b 09 3b 6c 61 73 74 20 6c 6f 67 67 65 64 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a ┆cdisk ;last logged disk number ┆ 0x0baf00…0baf20 09 6d 6f 76 09 63 2c 61 09 3b 73 65 6e 64 20 74 6f 20 63 63 70 20 74 6f 20 6c 6f 67 20 69 74 20 ┆ mov c,a ;send to ccp to log it ┆ 0x0baf20…0baf40 69 6e 0d 0a 09 65 69 0d 0a 09 6a 6d 70 09 63 70 6d 62 0d 0a 3b 0d 0a 3b 09 65 72 72 6f 72 20 63 ┆in ei jmp cpmb ; ; error c┆ 0x0baf40…0baf60 6f 6e 64 69 74 69 6f 6e 20 6f 63 63 75 72 72 65 64 2c 20 70 72 69 6e 74 20 6d 65 73 73 61 67 65 ┆ondition occurred, print message┆ 0x0baf60…0baf80 20 61 6e 64 20 72 65 74 72 79 0d 0a 62 6f 6f 74 65 72 72 3a 0d 0a 09 70 6f 70 09 62 09 3b 72 65 ┆ and retry booterr: pop b ;re┆ 0x0baf80…0bafa0 63 61 6c 6c 20 63 6f 75 6e 74 73 0d 0a 09 64 63 72 09 63 0d 0a 09 6a 7a 09 62 6f 6f 74 65 72 30 ┆call counts dcr c jz booter0┆ 0x0bafa0…0bafc0 0d 0a 3b 09 74 72 79 20 61 67 61 69 6e 0d 0a 09 70 75 73 68 09 62 0d 0a 09 6a 6d 70 09 77 62 6f ┆ ; try again push b jmp wbo┆ 0x0bafc0…0bafe0 6f 74 30 0d 0a 3b 0d 0a 62 6f 6f 74 65 72 30 3a 0d 0a 3b 09 6f 74 68 65 72 77 69 73 65 20 74 6f ┆ot0 ; booter0: ; otherwise to┆ 0x0bafe0…0bb000 6f 20 6d 61 6e 79 20 72 65 74 72 69 65 73 0d 0a 09 6c 78 69 09 68 2c 62 6f 6f 74 6d 73 67 0d 0a ┆o many retries lxi h,bootmsg ┆ 0x0bb000…0bb020 (49, 1, 12) 74 65 20 73 65 63 74 6f 72 20 62 63 20 75 73 69 6e 67 20 74 61 62 6c 65 20 61 74 20 64 65 0d 0a ┆te sector bc using table at de ┆ 0x0bb020…0bb040 09 6d 76 69 09 62 2c 30 09 3b 64 6f 75 62 6c 65 20 70 72 65 63 69 73 69 6f 6e 20 73 65 63 74 6f ┆ mvi b,0 ;double precision secto┆ 0x0bb040…0bb060 72 20 6e 75 6d 62 65 72 20 69 6e 20 42 43 0d 0a 09 78 63 68 67 09 09 3b 74 72 61 6e 73 6c 61 74 ┆r number in BC xchg ;translat┆ 0x0bb060…0bb080 65 20 74 61 62 6c 65 20 61 64 64 72 65 73 73 20 74 6f 20 48 4c 0d 0a 09 64 61 64 09 62 09 3b 74 ┆e table address to HL dad b ;t┆ 0x0bb080…0bb0a0 72 61 6e 73 6c 61 74 65 28 73 65 63 74 6f 72 29 20 61 64 64 72 65 73 73 0d 0a 09 6d 6f 76 09 61 ┆ranslate(sector) address mov a┆ 0x0bb0a0…0bb0c0 2c 6d 09 3b 74 72 61 6e 73 6c 61 74 65 64 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 74 6f 20 ┆,m ;translated sector number to ┆ 0x0bb0c0…0bb0e0 41 0d 0a 09 73 74 61 09 69 6f 73 0d 0a 09 6d 6f 76 09 6c 2c 61 09 3b 72 65 74 75 72 6e 20 73 65 ┆A sta ios mov l,a ;return se┆ 0x0bb0e0…0bb100 63 74 6f 72 20 6e 75 6d 62 65 72 20 69 6e 20 4c 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 73 65 74 64 6d ┆ctor number in L ret ; setdm┆ 0x0bb100…0bb120 61 3a 09 3b 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 67 69 76 65 6e 20 62 79 20 72 65 67 ┆a: ;set dma address given by reg┆ 0x0bb120…0bb140 73 20 62 2c 63 0d 0a 09 6d 6f 76 09 6c 2c 63 0d 0a 09 6d 6f 76 09 68 2c 62 0d 0a 09 73 68 6c 64 ┆s b,c mov l,c mov h,b shld┆ 0x0bb140…0bb160 09 69 6f 64 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 72 65 61 64 3a 09 3b 72 65 61 64 20 6e 65 78 74 20 ┆ iod ret ; read: ;read next ┆ 0x0bb160…0bb180 64 69 73 6b 20 72 65 63 6f 72 64 20 28 61 73 73 75 6d 69 6e 67 20 64 69 73 6b 2f 74 72 6b 2f 73 ┆disk record (assuming disk/trk/s┆ 0x0bb180…0bb1a0 65 63 2f 64 6d 61 20 73 65 74 29 0d 0a 09 6d 76 69 09 63 2c 72 65 61 64 66 09 3b 73 65 74 20 74 ┆ec/dma set) mvi c,readf ;set t┆ 0x0bb1a0…0bb1c0 6f 20 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 73 65 74 66 75 6e 63 0d 0a ┆o read function call setfunc ┆ 0x0bb1c0…0bb1e0 09 63 61 6c 6c 09 77 61 69 74 69 6f 09 3b 70 65 72 66 6f 72 6d 20 72 65 61 64 20 66 75 6e 63 74 ┆ call waitio ;perform read funct┆ 0x0bb1e0…0bb200 69 6f 6e 0d 0a 09 72 65 74 09 09 3b 6d 61 79 20 68 61 76 65 20 65 72 72 6f 72 20 73 65 74 20 69 ┆ion ret ;may have error set i┆ 0x0bb200…0bb220 (49, 1, 13) 66 09 33 2c 30 0d 0a 3b 09 65 6e 64 65 66 20 6f 63 63 75 72 73 20 61 74 20 65 6e 64 20 6f 66 20 ┆f 3,0 ; endef occurs at end of ┆ 0x0bb220…0bb240 61 73 73 65 6d 62 6c 79 0d 0a 3b 0d 0a 3b 09 65 6e 64 20 6f 66 20 63 6f 6e 74 72 6f 6c 6c 65 72 ┆assembly ; ; end of controller┆ 0x0bb240…0bb260 20 2d 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 63 6f 64 65 2c 20 74 68 65 20 72 65 6d 61 69 6e 69 ┆ - independent code, the remaini┆ 0x0bb260…0bb280 6e 67 20 73 75 62 72 6f 75 74 69 6e 65 73 0d 0a 3b 09 61 72 65 20 74 61 69 6c 6f 72 65 64 20 74 ┆ng subroutines ; are tailored t┆ 0x0bb280…0bb2a0 6f 20 74 68 65 20 70 61 72 74 69 63 75 6c 61 72 20 6f 70 65 72 61 74 69 6e 67 20 65 6e 76 69 72 ┆o the particular operating envir┆ 0x0bb2a0…0bb2c0 6f 6e 6d 65 6e 74 2c 20 61 6e 64 20 6d 75 73 74 0d 0a 3b 09 62 65 20 61 6c 74 65 72 65 64 20 66 ┆onment, and must ; be altered f┆ 0x0bb2c0…0bb2e0 6f 72 20 61 6e 79 20 73 79 73 74 65 6d 20 77 68 69 63 68 20 64 69 66 66 65 72 73 20 66 72 6f 6d ┆or any system which differs from┆ 0x0bb2e0…0bb300 20 74 68 65 20 69 6e 74 65 6c 20 6d 64 73 2e 0d 0a 3b 0d 0a 3b 09 74 68 65 20 66 6f 6c 6c 6f 77 ┆ the intel mds. ; ; the follow┆ 0x0bb300…0bb320 69 6e 67 20 63 6f 64 65 20 61 73 73 75 6d 65 73 20 74 68 65 20 6d 64 73 20 6d 6f 6e 69 74 6f 72 ┆ing code assumes the mds monitor┆ 0x0bb320…0bb340 20 65 78 69 73 74 73 20 61 74 20 30 66 38 30 30 68 0d 0a 3b 09 61 6e 64 20 75 73 65 73 20 74 68 ┆ exists at 0f800h ; and uses th┆ 0x0bb340…0bb360 65 20 69 2f 6f 20 73 75 62 72 6f 75 74 69 6e 65 73 20 77 69 74 68 69 6e 20 74 68 65 20 6d 6f 6e ┆e i/o subroutines within the mon┆ 0x0bb360…0bb380 69 74 6f 72 0d 0a 3b 0d 0a 3b 09 77 65 20 61 6c 73 6f 20 61 73 73 75 6d 65 20 74 68 65 20 6d 64 ┆itor ; ; we also assume the md┆ 0x0bb380…0bb3a0 73 20 73 79 73 74 65 6d 20 68 61 73 20 66 6f 75 72 20 64 69 73 6b 20 64 72 69 76 65 73 0d 0a 72 ┆s system has four disk drives r┆ 0x0bb3a0…0bb3c0 65 76 72 74 09 65 71 75 09 30 66 64 68 09 3b 69 6e 74 65 72 72 75 70 74 20 72 65 76 65 72 74 20 ┆evrt equ 0fdh ;interrupt revert ┆ 0x0bb3c0…0bb3e0 70 6f 72 74 0d 0a 69 6e 74 63 09 65 71 75 09 30 66 63 68 09 3b 69 6e 74 65 72 72 75 70 74 20 6d ┆port intc equ 0fch ;interrupt m┆ 0x0bb3e0…0bb400 61 73 6b 20 70 6f 72 74 0d 0a 69 63 6f 6e 09 65 71 75 09 30 66 33 68 09 3b 69 6e 74 65 72 72 75 ┆ask port icon equ 0f3h ;interru┆ 0x0bb400…0bb420 (49, 1, 14) 63 6f 6c 64 20 73 74 61 72 74 0d 0a 3b 09 73 74 61 72 74 2e 0d 0a 3b 0d 0a 09 6c 78 69 09 73 70 ┆cold start ; start. ; lxi sp┆ 0x0bb420…0bb440 2c 62 75 66 66 09 3b 75 73 69 6e 67 20 64 6d 61 20 2d 20 74 68 75 73 20 38 30 20 74 68 72 75 20 ┆,buff ;using dma - thus 80 thru ┆ 0x0bb440…0bb460 66 66 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 73 74 61 63 6b 0d 0a 3b 0d 0a 09 6d 76 69 09 ┆ff available for stack ; mvi ┆ 0x0bb460…0bb480 63 2c 72 65 74 72 79 09 3b 6d 61 78 20 72 65 74 72 69 65 73 0d 0a 09 70 75 73 68 09 62 0d 0a 77 ┆c,retry ;max retries push b w┆ 0x0bb480…0bb4a0 62 6f 6f 74 30 3a 09 3b 65 6e 74 65 72 20 68 65 72 65 20 6f 6e 20 65 72 72 6f 72 20 72 65 74 72 ┆boot0: ;enter here on error retr┆ 0x0bb4a0…0bb4c0 69 65 73 0d 0a 09 6c 78 69 09 62 2c 63 70 6d 62 09 3b 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 ┆ies lxi b,cpmb ;set dma addres┆ 0x0bb4c0…0bb4e0 73 20 74 6f 20 73 74 61 72 74 20 6f 66 20 64 69 73 6b 20 73 79 73 74 65 6d 0d 0a 09 63 61 6c 6c ┆s to start of disk system call┆ 0x0bb4e0…0bb500 09 73 65 74 64 6d 61 0d 0a 09 6d 76 69 09 63 2c 30 09 3b 62 6f 6f 74 20 66 72 6f 6d 20 64 72 69 ┆ setdma mvi c,0 ;boot from dri┆ 0x0bb500…0bb520 76 65 20 30 0d 0a 09 63 61 6c 6c 09 73 65 6c 64 73 6b 0d 0a 09 6d 76 69 09 63 2c 30 0d 0a 09 63 ┆ve 0 call seldsk mvi c,0 c┆ 0x0bb520…0bb540 61 6c 6c 09 73 65 74 74 72 6b 09 3b 73 74 61 72 74 20 77 69 74 68 20 74 72 61 63 6b 20 30 0d 0a ┆all settrk ;start with track 0 ┆ 0x0bb540…0bb560 09 6d 76 69 09 63 2c 32 09 3b 73 74 61 72 74 20 72 65 61 64 69 6e 67 20 73 65 63 74 6f 72 20 32 ┆ mvi c,2 ;start reading sector 2┆ 0x0bb560…0bb580 0d 0a 09 63 61 6c 6c 09 73 65 74 73 65 63 0d 0a 3b 0d 0a 3b 09 72 65 61 64 20 73 65 63 74 6f 72 ┆ call setsec ; ; read sector┆ 0x0bb580…0bb5a0 73 2c 20 63 6f 75 6e 74 20 6e 73 65 63 74 73 20 74 6f 20 7a 65 72 6f 0d 0a 09 70 6f 70 09 62 09 ┆s, count nsects to zero pop b ┆ 0x0bb5a0…0bb5c0 3b 31 30 2d 65 72 72 6f 72 20 63 6f 75 6e 74 0d 0a 09 6d 76 69 09 62 2c 6e 73 65 63 74 73 0d 0a ┆;10-error count mvi b,nsects ┆ 0x0bb5c0…0bb5e0 72 64 73 65 63 3a 09 3b 72 65 61 64 20 6e 65 78 74 20 73 65 63 74 6f 72 0d 0a 09 70 75 73 68 09 ┆rdsec: ;read next sector push ┆ 0x0bb5e0…0bb600 62 09 3b 73 61 76 65 20 73 65 63 74 6f 72 20 63 6f 75 6e 74 0d 0a 09 63 61 6c 6c 09 72 65 61 64 ┆b ;save sector count call read┆ 0x0bb600…0bb620 (49, 1, 15) 09 63 61 6c 6c 09 70 72 6d 73 67 0d 0a 09 6a 6d 70 09 72 6d 6f 6e 38 30 09 3b 6d 64 73 20 68 61 ┆ call prmsg jmp rmon80 ;mds ha┆ 0x0bb620…0bb640 72 64 77 61 72 65 20 6d 6f 6e 69 74 6f 72 0d 0a 3b 0d 0a 62 6f 6f 74 6d 73 67 3a 0d 0a 09 64 62 ┆rdware monitor ; bootmsg: db┆ 0x0bb640…0bb660 09 27 3f 62 6f 6f 74 27 2c 30 0d 0a 3b 0d 0a 3b 0d 0a 63 6f 6e 73 74 3a 09 3b 63 6f 6e 73 6f 6c ┆ '?boot',0 ; ; const: ;consol┆ 0x0bb660…0bb680 65 20 73 74 61 74 75 73 20 74 6f 20 72 65 67 2d 61 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 ┆e status to reg-a ; (exactly th┆ 0x0bb680…0bb6a0 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 63 73 74 73 0d 0a ┆e same as mds call) jmp csts ┆ 0x0bb6a0…0bb6c0 3b 0d 0a 63 6f 6e 69 6e 3a 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 ┆; conin: ;console character to ┆ 0x0bb6c0…0bb6e0 72 65 67 2d 61 0d 0a 09 63 61 6c 6c 09 63 69 0d 0a 09 61 6e 69 09 37 66 68 09 3b 72 65 6d 6f 76 ┆reg-a call ci ani 7fh ;remov┆ 0x0bb6e0…0bb700 65 20 70 61 72 69 74 79 20 62 69 74 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 63 6f 6e 6f 75 74 3a 09 3b ┆e parity bit ret ; conout: ;┆ 0x0bb700…0bb720 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 66 72 6f 6d 20 63 20 74 6f 20 63 6f 6e 73 ┆console character from c to cons┆ 0x0bb720…0bb740 6f 6c 65 20 6f 75 74 0d 0a 09 6a 6d 70 09 63 6f 0d 0a 3b 0d 0a 6c 69 73 74 3a 09 3b 6c 69 73 74 ┆ole out jmp co ; list: ;list┆ 0x0bb740…0bb760 20 64 65 76 69 63 65 20 6f 75 74 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 ┆ device out ; (exactly the same┆ 0x0bb760…0bb780 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 6c 6f 0d 0a 3b 0d 0a 6c 69 73 74 73 ┆ as mds call) jmp lo ; lists┆ 0x0bb780…0bb7a0 74 3a 0d 0a 09 3b 72 65 74 75 72 6e 20 6c 69 73 74 20 73 74 61 74 75 73 0d 0a 09 78 72 61 09 61 ┆t: ;return list status xra a┆ 0x0bb7a0…0bb7c0 0d 0a 09 72 65 74 09 09 3b 61 6c 77 61 79 73 20 6e 6f 74 20 72 65 61 64 79 0d 0a 3b 0d 0a 70 75 ┆ ret ;always not ready ; pu┆ 0x0bb7c0…0bb7e0 6e 63 68 3a 09 3b 70 75 6e 63 68 20 64 65 76 69 63 65 20 6f 75 74 0d 0a 3b 09 28 65 78 61 63 74 ┆nch: ;punch device out ; (exact┆ 0x0bb7e0…0bb800 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 70 ┆ly the same as mds call) jmp p┆ 0x0bb800…0bb820 (50, 0, 1) 6e 20 72 65 67 2d 61 0d 0a 3b 0d 0a 3b 0d 0a 77 72 69 74 65 3a 09 3b 64 69 73 6b 20 77 72 69 74 ┆n reg-a ; ; write: ;disk writ┆ 0x0bb820…0bb840 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6d 76 69 09 63 2c 77 72 69 74 66 0d 0a 09 63 61 6c 6c 09 ┆e function mvi c,writf call ┆ 0x0bb840…0bb860 73 65 74 66 75 6e 63 09 3b 73 65 74 20 74 6f 20 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a ┆setfunc ;set to write function ┆ 0x0bb860…0bb880 09 63 61 6c 6c 09 77 61 69 74 69 6f 0d 0a 09 72 65 74 09 09 3b 6d 61 79 20 68 61 76 65 20 65 72 ┆ call waitio ret ;may have er┆ 0x0bb880…0bb8a0 72 6f 72 20 73 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 75 74 69 6c 69 74 79 20 73 75 62 72 6f 75 74 ┆ror set ; ; ; utility subrout┆ 0x0bb8a0…0bb8c0 69 6e 65 73 0d 0a 70 72 6d 73 67 3a 09 3b 70 72 69 6e 74 20 6d 65 73 73 61 67 65 20 61 74 20 68 ┆ines prmsg: ;print message at h┆ 0x0bb8c0…0bb8e0 2c 6c 20 74 6f 20 30 0d 0a 09 6d 6f 76 09 61 2c 6d 0d 0a 09 6f 72 61 09 61 09 3b 7a 65 72 6f 3f ┆,l to 0 mov a,m ora a ;zero?┆ 0x0bb8e0…0bb900 0d 0a 09 72 7a 0d 0a 3b 09 6d 6f 72 65 20 74 6f 20 70 72 69 6e 74 0d 0a 09 70 75 73 68 09 68 0d ┆ rz ; more to print push h ┆ 0x0bb900…0bb920 0a 09 6d 6f 76 09 63 2c 61 0d 0a 09 63 61 6c 6c 09 63 6f 6e 6f 75 74 0d 0a 09 70 6f 70 09 68 0d ┆ mov c,a call conout pop h ┆ 0x0bb920…0bb940 0a 09 69 6e 78 09 68 0d 0a 09 6a 6d 70 09 70 72 6d 73 67 0d 0a 3b 0d 0a 73 65 74 66 75 6e 63 3a ┆ inx h jmp prmsg ; setfunc:┆ 0x0bb940…0bb960 0d 0a 3b 09 73 65 74 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 6e 65 78 74 20 69 2f 6f 20 28 63 ┆ ; set function for next i/o (c┆ 0x0bb960…0bb980 6f 6d 6d 61 6e 64 20 69 6e 20 72 65 67 2d 63 29 0d 0a 09 6c 78 69 09 68 2c 69 6f 66 09 3b 69 6f ┆ommand in reg-c) lxi h,iof ;io┆ 0x0bb980…0bb9a0 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 72 65 73 73 0d 0a 09 6d 6f 76 09 61 2c 6d 09 3b 67 65 74 ┆ function address mov a,m ;get┆ 0x0bb9a0…0bb9c0 20 69 74 20 74 6f 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 66 6f 72 20 6d 61 73 6b 69 6e 67 0d 0a ┆ it to accumulator for masking ┆ 0x0bb9c0…0bb9e0 09 61 6e 69 09 31 31 31 31 31 30 30 30 62 09 3b 72 65 6d 6f 76 65 20 70 72 65 76 69 6f 75 73 20 ┆ ani 11111000b ;remove previous ┆ 0x0bb9e0…0bba00 63 6f 6d 6d 61 6e 64 0d 0a 09 6f 72 61 09 63 09 3b 73 65 74 20 74 6f 20 6e 65 77 20 63 6f 6d 6d ┆command ora c ;set to new comm┆ 0x0bba00…0bba20 (50, 0, 2) 74 65 09 09 3b 63 6c 65 61 72 20 72 65 73 75 6c 74 20 62 79 74 65 0d 0a 09 6a 6d 70 09 74 72 79 ┆te ;clear result byte jmp try┆ 0x0bba20…0bba40 63 6f 75 6e 74 0d 0a 3b 0d 0a 77 65 72 72 6f 72 3a 09 3b 72 65 74 75 72 6e 20 68 61 72 64 77 61 ┆count ; werror: ;return hardwa┆ 0x0bba40…0bba60 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 20 28 63 72 63 2c 20 74 72 61 63 6b 2c 20 73 65 65 6b ┆re malfunction (crc, track, seek┆ 0x0bba60…0bba80 2c 20 65 74 63 2e 29 0d 0a 3b 09 74 68 65 20 6d 64 73 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 68 61 ┆, etc.) ; the mds controller ha┆ 0x0bba80…0bbaa0 73 20 72 65 74 75 72 6e 65 64 20 61 20 62 69 74 20 69 6e 20 65 61 63 68 20 70 6f 73 69 74 69 6f ┆s returned a bit in each positio┆ 0x0bbaa0…0bbac0 6e 0d 0a 3b 09 6f 66 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 2c 20 63 6f 72 72 65 73 70 ┆n ; of the accumulator, corresp┆ 0x0bbac0…0bbae0 6f 6e 64 69 6e 67 20 74 6f 20 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e 73 3a 0d 0a 3b 09 30 09 2d ┆onding to the conditions: ; 0 -┆ 0x0bbae0…0bbb00 20 64 65 6c 65 74 65 64 20 64 61 74 61 20 28 61 63 63 65 70 74 65 64 20 61 73 20 6f 6b 20 61 62 ┆ deleted data (accepted as ok ab┆ 0x0bbb00…0bbb20 6f 76 65 29 0d 0a 3b 09 31 09 2d 20 63 72 63 20 65 72 72 6f 72 0d 0a 3b 09 32 09 2d 20 73 65 65 ┆ove) ; 1 - crc error ; 2 - see┆ 0x0bbb20…0bbb40 6b 20 65 72 72 6f 72 0d 0a 3b 09 33 09 2d 20 61 64 64 72 65 73 73 20 65 72 72 6f 72 20 28 68 61 ┆k error ; 3 - address error (ha┆ 0x0bbb40…0bbb60 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 34 09 2d 20 64 61 74 61 20 ┆rdware malfunction) ; 4 - data ┆ 0x0bbb60…0bbb80 6f 76 65 72 2f 75 6e 64 65 72 20 66 6c 6f 77 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e ┆over/under flow (hardware malfun┆ 0x0bbb80…0bbba0 63 74 69 6f 6e 29 0d 0a 3b 09 35 09 2d 20 77 72 69 74 65 20 70 72 6f 74 65 63 74 20 28 74 72 65 ┆ction) ; 5 - write protect (tre┆ 0x0bbba0…0bbbc0 61 74 65 64 20 61 73 20 6e 6f 74 20 72 65 61 64 79 29 0d 0a 3b 09 36 09 2d 20 77 72 69 74 65 20 ┆ated as not ready) ; 6 - write ┆ 0x0bbbc0…0bbbe0 65 72 72 6f 72 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 ┆error (hardware malfunction) ; ┆ 0x0bbbe0…0bbc00 37 09 2d 20 6e 6f 74 20 72 65 61 64 79 0d 0a 3b 09 28 61 63 63 75 6d 75 6c 61 74 6f 72 20 62 69 ┆7 - not ready ; (accumulator bi┆ 0x0bbc00…0bbc20 (50, 0, 3) 61 73 65 20 6f 66 20 43 43 50 20 69 6e 20 74 65 73 74 20 73 79 73 74 65 6d 0d 0a 09 65 6e 64 69 ┆ase of CCP in test system endi┆ 0x0bbc20…0bbc40 66 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 62 69 61 73 09 65 71 75 09 30 30 30 30 68 09 ┆f if not test bias equ 0000h ┆ 0x0bbc40…0bbc60 3b 67 65 6e 65 72 61 74 65 20 72 65 6c 6f 63 61 74 61 62 6c 65 20 63 70 2f 6d 20 73 79 73 74 65 ┆;generate relocatable cp/m syste┆ 0x0bbc60…0bbc80 6d 0d 0a 09 65 6e 64 69 66 0d 0a 3b 0d 0a 70 61 74 63 68 09 65 71 75 09 31 36 30 30 68 0d 0a 3b ┆m endif ; patch equ 1600h ;┆ 0x0bbc80…0bbca0 0d 0a 09 6f 72 67 09 70 61 74 63 68 0d 0a 63 70 6d 62 09 65 71 75 09 24 2d 70 61 74 63 68 09 3b ┆ org patch cpmb equ $-patch ;┆ 0x0bbca0…0bbcc0 62 61 73 65 20 6f 66 20 63 70 6d 20 63 6f 6e 73 6f 6c 65 20 70 72 6f 63 65 73 73 6f 72 0d 0a 62 ┆base of cpm console processor b┆ 0x0bbcc0…0bbce0 64 6f 73 09 65 71 75 09 38 30 36 68 2b 63 70 6d 62 09 3b 62 61 73 69 63 20 64 6f 73 20 28 72 65 ┆dos equ 806h+cpmb ;basic dos (re┆ 0x0bbce0…0bbd00 73 69 64 65 6e 74 20 70 6f 72 74 69 6f 6e 29 0d 0a 63 70 6d 6c 09 65 71 75 09 24 2d 63 70 6d 62 ┆sident portion) cpml equ $-cpmb┆ 0x0bbd00…0bbd20 09 3b 6c 65 6e 67 74 68 20 28 69 6e 20 62 79 74 65 73 29 20 6f 66 20 63 70 6d 20 73 79 73 74 65 ┆ ;length (in bytes) of cpm syste┆ 0x0bbd20…0bbd40 6d 0d 0a 6e 73 65 63 74 73 09 65 71 75 09 63 70 6d 6c 2f 31 32 38 09 3b 6e 75 6d 62 65 72 20 6f ┆m nsects equ cpml/128 ;number o┆ 0x0bbd40…0bbd60 66 20 73 65 63 74 6f 72 73 20 74 6f 20 6c 6f 61 64 0d 0a 6f 66 66 73 65 74 09 65 71 75 09 32 09 ┆f sectors to load offset equ 2 ┆ 0x0bbd60…0bbd80 3b 6e 75 6d 62 65 72 20 6f 66 20 64 69 73 6b 20 74 72 61 63 6b 73 20 75 73 65 64 20 62 79 20 63 ┆;number of disk tracks used by c┆ 0x0bbd80…0bbda0 70 2f 6d 0d 0a 63 64 69 73 6b 09 65 71 75 09 30 30 30 34 68 09 3b 61 64 64 72 65 73 73 20 6f 66 ┆p/m cdisk equ 0004h ;address of┆ 0x0bbda0…0bbdc0 20 6c 61 73 74 20 6c 6f 67 67 65 64 20 64 69 73 6b 20 6f 6e 20 77 61 72 6d 20 73 74 61 72 74 0d ┆ last logged disk on warm start ┆ 0x0bbdc0…0bbde0 0a 62 75 66 66 09 65 71 75 09 30 30 38 30 68 09 3b 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 ┆ buff equ 0080h ;default buffer ┆ 0x0bbde0…0bbe00 61 64 64 72 65 73 73 0d 0a 72 65 74 72 79 09 65 71 75 09 31 30 09 3b 6d 61 78 20 72 65 74 72 69 ┆address retry equ 10 ;max retri┆ 0x0bbe00…0bbe20 (50, 0, 4) 6d 61 69 6e 69 6e 67 20 73 75 62 72 6f 75 74 69 6e 65 73 0d 0a 3b 09 61 72 65 20 74 61 69 6c 6f ┆maining subroutines ; are tailo┆ 0x0bbe20…0bbe40 72 65 64 20 74 6f 20 74 68 65 20 70 61 72 74 69 63 75 6c 61 72 20 6f 70 65 72 61 74 69 6e 67 20 ┆red to the particular operating ┆ 0x0bbe40…0bbe60 65 6e 76 69 72 6f 6e 6d 65 6e 74 2c 20 61 6e 64 20 6d 75 73 74 0d 0a 3b 09 62 65 20 61 6c 74 65 ┆environment, and must ; be alte┆ 0x0bbe60…0bbe80 72 65 64 20 66 6f 72 20 61 6e 79 20 73 79 73 74 65 6d 20 77 68 69 63 68 20 64 69 66 66 65 72 73 ┆red for any system which differs┆ 0x0bbe80…0bbea0 20 66 72 6f 6d 20 74 68 65 20 69 6e 74 65 6c 20 6d 64 73 2e 0d 0a 3b 0d 0a 3b 09 74 68 65 20 66 ┆ from the intel mds. ; ; the f┆ 0x0bbea0…0bbec0 6f 6c 6c 6f 77 69 6e 67 20 63 6f 64 65 20 61 73 73 75 6d 65 73 20 74 68 65 20 6d 64 73 20 6d 6f ┆ollowing code assumes the mds mo┆ 0x0bbec0…0bbee0 6e 69 74 6f 72 20 65 78 69 73 74 73 20 61 74 20 30 66 38 30 30 68 0d 0a 3b 09 61 6e 64 20 75 73 ┆nitor exists at 0f800h ; and us┆ 0x0bbee0…0bbf00 65 73 20 74 68 65 20 69 2f 6f 20 73 75 62 72 6f 75 74 69 6e 65 73 20 77 69 74 68 69 6e 20 74 68 ┆es the i/o subroutines within th┆ 0x0bbf00…0bbf20 65 20 6d 6f 6e 69 74 6f 72 0d 0a 3b 0d 0a 3b 09 77 65 20 61 6c 73 6f 20 61 73 73 75 6d 65 20 74 ┆e monitor ; ; we also assume t┆ 0x0bbf20…0bbf40 68 65 20 6d 64 73 20 73 79 73 74 65 6d 20 68 61 73 20 66 6f 75 72 20 64 69 73 6b 20 64 72 69 76 ┆he mds system has four disk driv┆ 0x0bbf40…0bbf60 65 73 0d 0a 72 65 76 72 74 09 65 71 75 09 30 66 64 68 09 3b 69 6e 74 65 72 72 75 70 74 20 72 65 ┆es revrt equ 0fdh ;interrupt re┆ 0x0bbf60…0bbf80 76 65 72 74 20 70 6f 72 74 0d 0a 69 6e 74 63 09 65 71 75 09 30 66 63 68 09 3b 69 6e 74 65 72 72 ┆vert port intc equ 0fch ;interr┆ 0x0bbf80…0bbfa0 75 70 74 20 6d 61 73 6b 20 70 6f 72 74 0d 0a 69 63 6f 6e 09 65 71 75 09 30 66 33 68 09 3b 69 6e ┆upt mask port icon equ 0f3h ;in┆ 0x0bbfa0…0bbfc0 74 65 72 72 75 70 74 20 63 6f 6e 74 72 6f 6c 20 70 6f 72 74 0d 0a 69 6e 74 65 09 65 71 75 09 30 ┆terrupt control port inte equ 0┆ 0x0bbfc0…0bbfe0 31 31 31 24 31 31 31 30 62 09 3b 65 6e 61 62 6c 65 20 72 73 74 20 30 28 77 61 72 6d 20 62 6f 6f ┆111$1110b ;enable rst 0(warm boo┆ 0x0bbfe0…0bc000 74 29 2c 20 72 73 74 20 37 20 28 6d 6f 6e 69 74 6f 72 29 0d 0a 3b 0d 0a 3b 09 6d 64 73 20 6d 6f ┆t), rst 7 (monitor) ; ; mds mo┆ 0x0bc000…0bc020 (50, 0, 5) 61 6e 64 0d 0a 09 6d 6f 76 09 6d 2c 61 09 3b 72 65 70 6c 61 63 65 64 20 69 6e 20 69 6f 70 62 0d ┆and mov m,a ;replaced in iopb ┆ 0x0bc020…0bc040 0a 3b 09 74 68 65 20 6d 64 73 2d 38 30 30 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 72 65 71 75 69 72 ┆ ; the mds-800 controller requir┆ 0x0bc040…0bc060 65 73 20 64 69 73 6b 20 62 61 6e 6b 20 62 69 74 20 69 6e 20 73 65 63 74 6f 72 20 62 79 74 65 0d ┆es disk bank bit in sector byte ┆ 0x0bc060…0bc080 0a 3b 09 6d 61 73 6b 20 74 68 65 20 62 69 74 20 66 72 6f 6d 20 74 68 65 20 63 75 72 72 65 6e 74 ┆ ; mask the bit from the current┆ 0x0bc080…0bc0a0 20 69 2f 6f 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 61 6e 69 09 30 30 31 30 30 30 30 30 62 09 3b 6d ┆ i/o function ani 00100000b ;m┆ 0x0bc0a0…0bc0c0 61 73 6b 20 74 68 65 20 64 69 73 6b 20 73 65 6c 65 63 74 20 62 69 74 0d 0a 09 6c 78 69 09 68 2c ┆ask the disk select bit lxi h,┆ 0x0bc0c0…0bc0e0 69 6f 73 09 09 3b 61 64 64 72 65 73 73 20 74 68 65 20 73 65 63 74 6f 72 20 73 65 6c 65 63 74 20 ┆ios ;address the sector select ┆ 0x0bc0e0…0bc100 62 79 74 65 0d 0a 09 6f 72 61 09 6d 09 09 3b 73 65 6c 65 63 74 20 70 72 6f 70 65 72 20 64 69 73 ┆byte ora m ;select proper dis┆ 0x0bc100…0bc120 6b 20 62 61 6e 6b 0d 0a 09 6d 6f 76 09 6d 2c 61 09 09 3b 73 65 74 20 64 69 73 6b 20 73 65 6c 65 ┆k bank mov m,a ;set disk sele┆ 0x0bc120…0bc140 63 74 20 62 69 74 20 6f 6e 2f 6f 66 66 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 77 61 69 74 69 6f 3a 0d ┆ct bit on/off ret ; waitio: ┆ 0x0bc140…0bc160 0a 09 6d 76 69 09 63 2c 72 65 74 72 79 09 3b 6d 61 78 20 72 65 74 72 69 65 73 20 62 65 66 6f 72 ┆ mvi c,retry ;max retries befor┆ 0x0bc160…0bc180 65 20 70 65 72 6d 20 65 72 72 6f 72 0d 0a 72 65 77 61 69 74 3a 0d 0a 3b 09 73 74 61 72 74 20 74 ┆e perm error rewait: ; start t┆ 0x0bc180…0bc1a0 68 65 20 69 2f 6f 20 66 75 6e 63 74 69 6f 6e 20 61 6e 64 20 77 61 69 74 20 66 6f 72 20 63 6f 6d ┆he i/o function and wait for com┆ 0x0bc1a0…0bc1c0 70 6c 65 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 69 6e 74 79 70 65 09 3b 69 6e 20 72 74 79 70 65 0d ┆pletion call intype ;in rtype ┆ 0x0bc1c0…0bc1e0 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 09 3b 63 6c 65 61 72 73 20 74 68 65 20 63 6f 6e 74 72 6f ┆ call inbyte ;clears the contro┆ 0x0bc1e0…0bc200 6c 6c 65 72 0d 0a 3b 0d 0a 09 6c 64 61 09 64 62 61 6e 6b 09 09 3b 73 65 74 20 62 61 6e 6b 20 66 ┆ller ; lda dbank ;set bank f┆ 0x0bc200…0bc220 (50, 0, 6) 74 73 20 61 72 65 20 6e 75 6d 62 65 72 65 64 20 37 20 36 20 35 20 34 20 33 20 32 20 31 20 30 29 ┆ts are numbered 7 6 5 4 3 2 1 0)┆ 0x0bc220…0bc240 0d 0a 3b 0d 0a 3b 09 69 74 20 6d 61 79 20 62 65 20 75 73 65 66 75 6c 20 74 6f 20 66 69 6c 74 65 ┆ ; ; it may be useful to filte┆ 0x0bc240…0bc260 72 20 6f 75 74 20 74 68 65 20 76 61 72 69 6f 75 73 20 63 6f 6e 64 69 74 69 6f 6e 73 2c 0d 0a 3b ┆r out the various conditions, ;┆ 0x0bc260…0bc280 09 62 75 74 20 77 65 20 77 69 6c 6c 20 67 65 74 20 61 20 70 65 72 6d 61 6e 65 6e 74 20 65 72 72 ┆ but we will get a permanent err┆ 0x0bc280…0bc2a0 6f 72 20 6d 65 73 73 61 67 65 20 69 66 20 69 74 20 69 73 20 6e 6f 74 0d 0a 3b 09 72 65 63 6f 76 ┆or message if it is not ; recov┆ 0x0bc2a0…0bc2c0 65 72 61 62 6c 65 2e 20 20 69 6e 20 61 6e 79 20 63 61 73 65 2c 20 74 68 65 20 6e 6f 74 20 72 65 ┆erable. in any case, the not re┆ 0x0bc2c0…0bc2e0 61 64 79 20 63 6f 6e 64 69 74 69 6f 6e 20 69 73 0d 0a 3b 09 74 72 65 61 74 65 64 20 61 73 20 61 ┆ady condition is ; treated as a┆ 0x0bc2e0…0bc300 20 73 65 70 61 72 61 74 65 20 63 6f 6e 64 69 74 69 6f 6e 20 66 6f 72 20 6c 61 74 65 72 20 69 6d ┆ separate condition for later im┆ 0x0bc300…0bc320 70 72 6f 76 65 6d 65 6e 74 0d 0a 74 72 79 63 6f 75 6e 74 3a 0d 0a 3b 09 72 65 67 69 73 74 65 72 ┆provement trycount: ; register┆ 0x0bc320…0bc340 20 63 20 63 6f 6e 74 61 69 6e 73 20 72 65 74 72 79 20 63 6f 75 6e 74 2c 20 64 65 63 72 65 6d 65 ┆ c contains retry count, decreme┆ 0x0bc340…0bc360 6e 74 20 27 74 69 6c 20 7a 65 72 6f 0d 0a 09 64 63 72 09 63 0d 0a 09 6a 6e 7a 09 72 65 77 61 69 ┆nt 'til zero dcr c jnz rewai┆ 0x0bc360…0bc380 74 09 3b 66 6f 72 20 61 6e 6f 74 68 65 72 20 74 72 79 0d 0a 3b 0d 0a 3b 09 63 61 6e 6e 6f 74 20 ┆t ;for another try ; ; cannot ┆ 0x0bc380…0bc3a0 72 65 63 6f 76 65 72 20 66 72 6f 6d 20 65 72 72 6f 72 0d 0a 09 6d 76 69 09 61 2c 31 09 3b 65 72 ┆recover from error mvi a,1 ;er┆ 0x0bc3a0…0bc3c0 72 6f 72 20 63 6f 64 65 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 09 69 6e 74 79 70 65 2c 20 69 6e 62 ┆ror code ret ; ; intype, inb┆ 0x0bc3c0…0bc3e0 79 74 65 2c 20 69 6e 73 74 61 74 20 72 65 61 64 20 64 72 69 76 65 20 62 61 6e 6b 20 30 30 20 6f ┆yte, instat read drive bank 00 o┆ 0x0bc3e0…0bc400 72 20 31 30 0d 0a 69 6e 74 79 70 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d ┆r 10 intype: lda dbank ora a ┆ 0x0bc400…0bc420 (50, 0, 7) 65 73 20 6f 6e 20 64 69 73 6b 20 69 2f 6f 20 62 65 66 6f 72 65 20 65 72 72 6f 72 0d 0a 3b 0d 0a ┆es on disk i/o before error ; ┆ 0x0bc420…0bc440 3b 09 70 65 72 66 6f 72 6d 20 66 6f 6c 6c 6f 77 69 6e 67 20 66 75 6e 63 74 69 6f 6e 73 0d 0a 3b ┆; perform following functions ;┆ 0x0bc440…0bc460 09 62 6f 6f 74 09 63 6f 6c 64 20 73 74 61 72 74 0d 0a 3b 09 77 62 6f 6f 74 09 77 61 72 6d 20 73 ┆ boot cold start ; wboot warm s┆ 0x0bc460…0bc480 74 61 72 74 20 28 73 61 76 65 20 69 2f 6f 20 62 79 74 65 29 0d 0a 3b 09 28 62 6f 6f 74 20 61 6e ┆tart (save i/o byte) ; (boot an┆ 0x0bc480…0bc4a0 64 20 77 62 6f 6f 74 20 61 72 65 20 74 68 65 20 73 61 6d 65 20 66 6f 72 20 6d 64 73 29 0d 0a 3b ┆d wboot are the same for mds) ;┆ 0x0bc4a0…0bc4c0 09 63 6f 6e 73 74 09 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 0d 0a 3b 09 09 72 65 67 2d 61 20 ┆ const console status ; reg-a ┆ 0x0bc4c0…0bc4e0 3d 20 30 30 20 69 66 20 6e 6f 20 63 68 61 72 61 63 74 65 72 20 72 65 61 64 79 0d 0a 3b 09 09 72 ┆= 00 if no character ready ; r┆ 0x0bc4e0…0bc500 65 67 2d 61 20 3d 20 66 66 20 69 66 20 63 68 61 72 61 63 74 65 72 20 72 65 61 64 79 0d 0a 3b 09 ┆eg-a = ff if character ready ; ┆ 0x0bc500…0bc520 63 6f 6e 69 6e 09 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 28 72 65 73 75 ┆conin console character in (resu┆ 0x0bc520…0bc540 6c 74 20 69 6e 20 72 65 67 2d 61 29 0d 0a 3b 09 63 6f 6e 6f 75 74 09 63 6f 6e 73 6f 6c 65 20 63 ┆lt in reg-a) ; conout console c┆ 0x0bc540…0bc560 68 61 72 61 63 74 65 72 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 ┆haracter out (char in reg-c) ; ┆ 0x0bc560…0bc580 6c 69 73 74 09 6c 69 73 74 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b ┆list list out (char in reg-c) ;┆ 0x0bc580…0bc5a0 09 70 75 6e 63 68 09 70 75 6e 63 68 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 ┆ punch punch out (char in reg-c)┆ 0x0bc5a0…0bc5c0 0d 0a 3b 09 72 65 61 64 65 72 09 70 61 70 65 72 20 74 61 70 65 20 72 65 61 64 65 72 20 69 6e 20 ┆ ; reader paper tape reader in ┆ 0x0bc5c0…0bc5e0 28 72 65 73 75 6c 74 20 74 6f 20 72 65 67 2d 61 29 0d 0a 3b 09 68 6f 6d 65 09 6d 6f 76 65 20 74 ┆(result to reg-a) ; home move t┆ 0x0bc5e0…0bc600 6f 20 74 72 61 63 6b 20 30 30 0d 0a 3b 0d 0a 3b 09 28 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 ┆o track 00 ; ; (the following ┆ 0x0bc600…0bc620 (50, 0, 8) 6e 69 74 6f 72 20 65 71 75 61 74 65 73 0d 0a 6d 6f 6e 38 30 09 65 71 75 09 30 66 38 30 30 68 09 ┆nitor equates mon80 equ 0f800h ┆ 0x0bc620…0bc640 3b 6d 64 73 20 6d 6f 6e 69 74 6f 72 0d 0a 72 6d 6f 6e 38 30 09 65 71 75 09 30 66 66 30 66 68 09 ┆;mds monitor rmon80 equ 0ff0fh ┆ 0x0bc640…0bc660 3b 72 65 73 74 61 72 74 20 6d 6f 6e 38 30 20 28 62 6f 6f 74 20 65 72 72 6f 72 29 0d 0a 63 69 09 ┆;restart mon80 (boot error) ci ┆ 0x0bc660…0bc680 65 71 75 09 30 66 38 30 33 68 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 74 6f ┆equ 0f803h ;console character to┆ 0x0bc680…0bc6a0 20 72 65 67 2d 61 0d 0a 72 69 09 65 71 75 09 30 66 38 30 36 68 09 3b 72 65 61 64 65 72 20 69 6e ┆ reg-a ri equ 0f806h ;reader in┆ 0x0bc6a0…0bc6c0 20 74 6f 20 72 65 67 2d 61 0d 0a 63 6f 09 65 71 75 09 30 66 38 30 39 68 09 3b 63 6f 6e 73 6f 6c ┆ to reg-a co equ 0f809h ;consol┆ 0x0bc6c0…0bc6e0 65 20 63 68 61 72 20 66 72 6f 6d 20 63 20 74 6f 20 63 6f 6e 73 6f 6c 65 20 6f 75 74 0d 0a 70 6f ┆e char from c to console out po┆ 0x0bc6e0…0bc700 09 65 71 75 09 30 66 38 30 63 68 09 3b 70 75 6e 63 68 20 63 68 61 72 20 66 72 6f 6d 20 63 20 74 ┆ equ 0f80ch ;punch char from c t┆ 0x0bc700…0bc720 6f 20 70 75 6e 63 68 20 64 65 76 69 63 65 0d 0a 6c 6f 09 65 71 75 09 30 66 38 30 66 68 09 3b 6c ┆o punch device lo equ 0f80fh ;l┆ 0x0bc720…0bc740 69 73 74 20 66 72 6f 6d 20 63 20 74 6f 20 6c 69 73 74 20 64 65 76 69 63 65 0d 0a 63 73 74 73 09 ┆ist from c to list device csts ┆ 0x0bc740…0bc760 65 71 75 09 30 66 38 31 32 68 09 3b 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 20 30 30 2f 66 66 ┆equ 0f812h ;console status 00/ff┆ 0x0bc760…0bc780 20 74 6f 20 72 65 67 69 73 74 65 72 20 61 0d 0a 3b 0d 0a 3b 09 64 69 73 6b 20 70 6f 72 74 73 20 ┆ to register a ; ; disk ports ┆ 0x0bc780…0bc7a0 61 6e 64 20 63 6f 6d 6d 61 6e 64 73 0d 0a 62 61 73 65 09 65 71 75 09 37 38 68 09 3b 62 61 73 65 ┆and commands base equ 78h ;base┆ 0x0bc7a0…0bc7c0 20 6f 66 20 64 69 73 6b 20 63 6f 6d 6d 61 6e 64 20 69 6f 20 70 6f 72 74 73 0d 0a 64 73 74 61 74 ┆ of disk command io ports dstat┆ 0x0bc7c0…0bc7e0 09 65 71 75 09 62 61 73 65 09 3b 64 69 73 6b 20 73 74 61 74 75 73 20 28 69 6e 70 75 74 29 0d 0a ┆ equ base ;disk status (input) ┆ 0x0bc7e0…0bc800 72 74 79 70 65 09 65 71 75 09 62 61 73 65 2b 31 09 3b 72 65 73 75 6c 74 20 74 79 70 65 20 28 69 ┆rtype equ base+1 ;result type (i┆ 0x0bc800…0bc820 (50, 0, 9) 6c 61 67 73 0d 0a 09 6f 72 61 09 61 09 09 3b 7a 65 72 6f 20 69 66 20 64 72 69 76 65 20 30 2c 31 ┆lags ora a ;zero if drive 0,1┆ 0x0bc820…0bc840 20 61 6e 64 20 6e 7a 20 69 66 20 32 2c 33 0d 0a 09 6d 76 69 09 61 2c 69 6f 70 62 20 61 6e 64 20 ┆ and nz if 2,3 mvi a,iopb and ┆ 0x0bc840…0bc860 30 66 66 68 09 3b 6c 6f 77 20 61 64 64 72 65 73 73 20 66 6f 72 20 69 6f 70 62 0d 0a 09 6d 76 69 ┆0ffh ;low address for iopb mvi┆ 0x0bc860…0bc880 09 62 2c 69 6f 70 62 20 73 68 72 20 38 09 3b 68 69 67 68 20 61 64 64 72 65 73 73 20 66 6f 72 20 ┆ b,iopb shr 8 ;high address for ┆ 0x0bc880…0bc8a0 69 6f 70 62 0d 0a 09 6a 6e 7a 09 69 6f 64 72 31 09 3b 64 72 69 76 65 20 62 61 6e 6b 20 31 3f 0d ┆iopb jnz iodr1 ;drive bank 1? ┆ 0x0bc8a0…0bc8c0 0a 09 6f 75 74 09 69 6c 6f 77 09 09 3b 6c 6f 77 20 61 64 64 72 65 73 73 20 74 6f 20 63 6f 6e 74 ┆ out ilow ;low address to cont┆ 0x0bc8c0…0bc8e0 72 6f 6c 6c 65 72 0d 0a 09 6d 6f 76 09 61 2c 62 0d 0a 09 6f 75 74 09 69 68 69 67 68 09 3b 68 69 ┆roller mov a,b out ihigh ;hi┆ 0x0bc8e0…0bc900 67 68 20 61 64 64 72 65 73 73 0d 0a 09 6a 6d 70 09 77 61 69 74 30 09 09 3b 74 6f 20 77 61 69 74 ┆gh address jmp wait0 ;to wait┆ 0x0bc900…0bc920 20 66 6f 72 20 63 6f 6d 70 6c 65 74 65 0d 0a 3b 0d 0a 69 6f 64 72 31 3a 09 3b 64 72 69 76 65 20 ┆ for complete ; iodr1: ;drive ┆ 0x0bc920…0bc940 62 61 6e 6b 20 31 0d 0a 09 6f 75 74 09 69 6c 6f 77 2b 31 30 68 09 3b 38 38 20 66 6f 72 20 64 72 ┆bank 1 out ilow+10h ;88 for dr┆ 0x0bc940…0bc960 69 76 65 20 62 61 6e 6b 20 31 30 0d 0a 09 6d 6f 76 09 61 2c 62 0d 0a 09 6f 75 74 09 69 68 69 67 ┆ive bank 10 mov a,b out ihig┆ 0x0bc960…0bc980 68 2b 31 30 68 0d 0a 3b 0d 0a 77 61 69 74 30 3a 09 63 61 6c 6c 09 69 6e 73 74 61 74 09 09 3b 77 ┆h+10h ; wait0: call instat ;w┆ 0x0bc980…0bc9a0 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 0d 0a 09 61 6e 69 09 69 6f 72 64 79 09 09 ┆ait for completion ani iordy ┆ 0x0bc9a0…0bc9c0 3b 72 65 61 64 79 3f 0d 0a 09 6a 7a 09 77 61 69 74 30 0d 0a 3b 0d 0a 3b 09 63 68 65 63 6b 20 69 ┆;ready? jz wait0 ; ; check i┆ 0x0bc9c0…0bc9e0 6f 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 6f 6b 0d 0a 09 63 61 6c 6c 09 69 6e 74 79 70 65 09 09 3b ┆o completion ok call intype ;┆ 0x0bc9e0…0bca00 6d 75 73 74 20 62 65 20 69 6f 20 63 6f 6d 70 6c 65 74 65 20 28 30 30 29 20 75 6e 6c 69 6e 6b 65 ┆must be io complete (00) unlinke┆ 0x0bca00…0bca20 (50, 0, 10) 0a 09 6a 6e 7a 09 69 6e 74 79 70 31 09 3b 73 6b 69 70 20 74 6f 20 62 61 6e 6b 20 31 30 0d 0a 09 ┆ jnz intyp1 ;skip to bank 10 ┆ 0x0bca20…0bca40 69 6e 09 72 74 79 70 65 0d 0a 09 72 65 74 0d 0a 69 6e 74 79 70 31 3a 09 69 6e 09 72 74 79 70 65 ┆in rtype ret intyp1: in rtype┆ 0x0bca40…0bca60 2b 31 30 68 09 3b 37 38 20 66 6f 72 20 30 2c 31 20 20 38 38 20 66 6f 72 20 32 2c 33 0d 0a 09 72 ┆+10h ;78 for 0,1 88 for 2,3 r┆ 0x0bca60…0bca80 65 74 0d 0a 3b 0d 0a 69 6e 62 79 74 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 ┆et ; inbyte: lda dbank ora a┆ 0x0bca80…0bcaa0 0d 0a 09 6a 6e 7a 09 69 6e 62 79 74 31 0d 0a 09 69 6e 09 72 62 79 74 65 0d 0a 09 72 65 74 0d 0a ┆ jnz inbyt1 in rbyte ret ┆ 0x0bcaa0…0bcac0 69 6e 62 79 74 31 3a 09 69 6e 09 72 62 79 74 65 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 69 ┆inbyt1: in rbyte+10h ret ; i┆ 0x0bcac0…0bcae0 6e 73 74 61 74 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 ┆nstat: lda dbank ora a jnz i┆ 0x0bcae0…0bcb00 6e 73 74 61 31 0d 0a 09 69 6e 09 64 73 74 61 74 0d 0a 09 72 65 74 0d 0a 69 6e 73 74 61 31 3a 09 ┆nsta1 in dstat ret insta1: ┆ 0x0bcb00…0bcb20 69 6e 09 64 73 74 61 74 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 ┆in dstat+10h ret ; ; ; ; d┆ 0x0bcb20…0bcb40 61 74 61 20 61 72 65 61 73 20 28 6d 75 73 74 20 62 65 20 69 6e 20 72 61 6d 29 0d 0a 64 62 61 6e ┆ata areas (must be in ram) dban┆ 0x0bcb40…0bcb60 6b 3a 09 64 62 09 30 09 3b 64 69 73 6b 20 62 61 6e 6b 20 30 30 20 69 66 20 64 72 69 76 65 20 30 ┆k: db 0 ;disk bank 00 if drive 0┆ 0x0bcb60…0bcb80 2c 31 0d 0a 09 09 09 3b 09 20 20 20 31 30 20 69 66 20 64 72 69 76 65 20 32 2c 33 0d 0a 69 6f 70 ┆,1 ; 10 if drive 2,3 iop┆ 0x0bcb80…0bcba0 62 3a 09 3b 69 6f 20 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 0d 0a 09 64 62 09 38 30 68 09 ┆b: ;io parameter block db 80h ┆ 0x0bcba0…0bcbc0 3b 6e 6f 72 6d 61 6c 20 69 2f 6f 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 69 6f 66 3a 09 64 62 09 72 ┆;normal i/o operation iof: db r┆ 0x0bcbc0…0bcbe0 65 61 64 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 2c 20 69 6e 69 74 69 61 6c 20 72 65 61 64 0d ┆eadf ;io function, initial read ┆ 0x0bcbe0…0bcc00 0a 69 6f 6e 3a 09 64 62 09 31 09 3b 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 20 74 6f ┆ ion: db 1 ;number of sectors to┆ 0x0bcc00…0bcc20 (50, 0, 11) 63 61 6c 6c 73 20 73 65 74 2d 75 70 20 74 68 65 20 69 6f 20 70 61 72 61 6d 65 74 65 72 20 62 6c ┆calls set-up the io parameter bl┆ 0x0bcc20…0bcc40 6f 63 6b 20 66 6f 72 20 74 68 65 0d 0a 3b 09 6d 64 73 2c 20 77 68 69 63 68 20 69 73 20 75 73 65 ┆ock for the ; mds, which is use┆ 0x0bcc40…0bcc60 64 20 74 6f 20 70 65 72 66 6f 72 6d 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 73 20 61 6e ┆d to perform subsequent reads an┆ 0x0bcc60…0bcc80 64 20 77 72 69 74 65 73 29 0d 0a 3b 09 73 65 6c 64 73 6b 09 73 65 6c 65 63 74 20 64 69 73 6b 20 ┆d writes) ; seldsk select disk ┆ 0x0bcc80…0bcca0 67 69 76 65 6e 20 62 79 20 72 65 67 2d 63 20 28 30 2c 31 2c 32 2e 2e 2e 29 0d 0a 3b 09 73 65 74 ┆given by reg-c (0,1,2...) ; set┆ 0x0bcca0…0bccc0 74 72 6b 09 73 65 74 20 74 72 61 63 6b 20 61 64 64 72 65 73 73 20 28 30 2c 2e 2e 2e 37 36 29 20 ┆trk set track address (0,...76) ┆ 0x0bccc0…0bcce0 66 6f 72 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 2f 77 72 69 74 65 0d 0a 3b 09 73 65 74 ┆for subsequent read/write ; set┆ 0x0bcce0…0bcd00 73 65 63 09 73 65 74 20 73 65 63 74 6f 72 20 61 64 64 72 65 73 73 20 28 31 2c 2e 2e 2e 2c 32 36 ┆sec set sector address (1,...,26┆ 0x0bcd00…0bcd20 29 20 66 6f 72 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 2f 77 72 69 74 65 0d 0a 3b 09 73 ┆) for subsequent read/write ; s┆ 0x0bcd20…0bcd40 65 74 64 6d 61 09 73 65 74 20 73 75 62 73 65 71 75 65 6e 74 20 64 6d 61 20 61 64 64 72 65 73 73 ┆etdma set subsequent dma address┆ 0x0bcd40…0bcd60 20 28 69 6e 69 74 69 61 6c 6c 79 20 38 30 68 29 0d 0a 3b 0d 0a 3b 09 28 72 65 61 64 20 61 6e 64 ┆ (initially 80h) ; ; (read and┆ 0x0bcd60…0bcd80 20 77 72 69 74 65 20 61 73 73 75 6d 65 20 70 72 65 76 69 6f 75 73 20 63 61 6c 6c 73 20 74 6f 20 ┆ write assume previous calls to ┆ 0x0bcd80…0bcda0 73 65 74 20 75 70 20 74 68 65 20 69 6f 20 70 61 72 61 6d 65 74 65 72 73 29 0d 0a 3b 09 72 65 61 ┆set up the io parameters) ; rea┆ 0x0bcda0…0bcdc0 64 09 72 65 61 64 20 74 72 61 63 6b 2f 73 65 63 74 6f 72 20 74 6f 20 70 72 65 73 65 74 20 64 6d ┆d read track/sector to preset dm┆ 0x0bcdc0…0bcde0 61 20 61 64 64 72 65 73 73 0d 0a 3b 09 77 72 69 74 65 09 77 72 69 74 65 20 74 72 61 63 6b 2f 73 ┆a address ; write write track/s┆ 0x0bcde0…0bce00 65 63 74 6f 72 20 66 72 6f 6d 20 70 72 65 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 3b ┆ector from preset dma address ;┆ 0x0bce00…0bce20 (50, 0, 12) 6e 70 75 74 29 0d 0a 72 62 79 74 65 09 65 71 75 09 62 61 73 65 2b 33 09 3b 72 65 73 75 6c 74 20 ┆nput) rbyte equ base+3 ;result ┆ 0x0bce20…0bce40 62 79 74 65 20 28 69 6e 70 75 74 29 0d 0a 3b 0d 0a 69 6c 6f 77 09 65 71 75 09 62 61 73 65 2b 31 ┆byte (input) ; ilow equ base+1┆ 0x0bce40…0bce60 09 3b 69 6f 70 62 20 6c 6f 77 20 61 64 64 72 65 73 73 20 28 6f 75 74 70 75 74 29 0d 0a 69 68 69 ┆ ;iopb low address (output) ihi┆ 0x0bce60…0bce80 67 68 09 65 71 75 09 62 61 73 65 2b 32 09 3b 69 6f 70 62 20 68 69 67 68 20 61 64 64 72 65 73 73 ┆gh equ base+2 ;iopb high address┆ 0x0bce80…0bcea0 20 28 6f 75 74 70 75 74 29 0d 0a 3b 0d 0a 72 65 61 64 66 09 65 71 75 09 34 68 09 3b 72 65 61 64 ┆ (output) ; readf equ 4h ;read┆ 0x0bcea0…0bcec0 20 66 75 6e 63 74 69 6f 6e 0d 0a 77 72 69 74 66 09 65 71 75 09 36 68 09 3b 77 72 69 74 65 20 66 ┆ function writf equ 6h ;write f┆ 0x0bcec0…0bcee0 75 6e 63 74 69 6f 6e 0d 0a 72 65 63 61 6c 09 65 71 75 09 33 68 09 3b 72 65 63 61 6c 69 62 72 61 ┆unction recal equ 3h ;recalibra┆ 0x0bcee0…0bcf00 74 65 20 64 72 69 76 65 0d 0a 69 6f 72 64 79 09 65 71 75 09 34 68 09 3b 69 2f 6f 20 66 69 6e 69 ┆te drive iordy equ 4h ;i/o fini┆ 0x0bcf00…0bcf20 73 68 65 64 20 6d 61 73 6b 0d 0a 63 72 09 65 71 75 09 30 64 68 09 3b 63 61 72 72 69 61 67 65 20 ┆shed mask cr equ 0dh ;carriage ┆ 0x0bcf20…0bcf40 72 65 74 75 72 6e 0d 0a 6c 66 09 65 71 75 09 30 61 68 09 3b 6c 69 6e 65 20 66 65 65 64 0d 0a 3b ┆return lf equ 0ah ;line feed ;┆ 0x0bcf40…0bcf60 0d 0a 73 69 67 6e 6f 6e 3a 09 3b 73 69 67 6e 6f 6e 20 6d 65 73 73 61 67 65 3a 20 78 78 6b 20 63 ┆ signon: ;signon message: xxk c┆ 0x0bcf60…0bcf80 70 2f 6d 20 76 65 72 73 20 79 2e 79 0d 0a 09 64 62 09 63 72 2c 6c 66 2c 6c 66 0d 0a 09 69 66 09 ┆p/m vers y.y db cr,lf,lf if ┆ 0x0bcf80…0bcfa0 74 65 73 74 0d 0a 09 64 62 09 27 33 32 27 09 3b 33 32 6b 20 65 78 61 6d 70 6c 65 20 62 69 6f 73 ┆test db '32' ;32k example bios┆ 0x0bcfa0…0bcfc0 0d 0a 09 65 6e 64 69 66 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 09 64 62 09 27 30 30 27 ┆ endif if not test db '00'┆ 0x0bcfc0…0bcfe0 09 3b 6d 65 6d 6f 72 79 20 73 69 7a 65 20 66 69 6c 6c 65 64 20 62 79 20 72 65 6c 6f 63 61 74 6f ┆ ;memory size filled by relocato┆ 0x0bcfe0…0bd000 72 0d 0a 09 65 6e 64 69 66 0d 0a 09 64 62 09 27 6b 20 43 50 2f 4d 20 76 65 72 73 20 27 0d 0a 09 ┆r endif db 'k CP/M vers ' ┆ 0x0bd000…0bd020 (50, 0, 13) 64 0d 0a 3b 09 30 30 20 75 6e 6c 69 6e 6b 65 64 20 69 2f 6f 20 63 6f 6d 70 6c 65 74 65 2c 20 20 ┆d ; 00 unlinked i/o complete, ┆ 0x0bd020…0bd040 20 20 30 31 20 6c 69 6e 6b 65 64 20 69 2f 6f 20 63 6f 6d 70 6c 65 74 65 20 28 6e 6f 74 20 75 73 ┆ 01 linked i/o complete (not us┆ 0x0bd040…0bd060 65 64 29 0d 0a 3b 09 31 30 20 64 69 73 6b 20 73 74 61 74 75 73 20 63 68 61 6e 67 65 64 20 20 20 ┆ed) ; 10 disk status changed ┆ 0x0bd060…0bd080 20 20 20 20 31 31 20 28 6e 6f 74 20 75 73 65 64 29 0d 0a 09 63 70 69 09 31 30 62 09 09 3b 72 65 ┆ 11 (not used) cpi 10b ;re┆ 0x0bd080…0bd0a0 61 64 79 20 73 74 61 74 75 73 20 63 68 61 6e 67 65 3f 0d 0a 09 6a 7a 09 77 72 65 61 64 79 0d 0a ┆ady status change? jz wready ┆ 0x0bd0a0…0bd0c0 3b 0d 0a 3b 09 6d 75 73 74 20 62 65 20 30 30 20 69 6e 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 ┆; ; must be 00 in the accumulat┆ 0x0bd0c0…0bd0e0 6f 72 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 77 65 72 72 6f 72 09 09 3b 73 6f 6d 65 20 6f ┆or ora a jnz werror ;some o┆ 0x0bd0e0…0bd100 74 68 65 72 20 63 6f 6e 64 69 74 69 6f 6e 2c 20 72 65 74 72 79 0d 0a 3b 0d 0a 3b 09 63 68 65 63 ┆ther condition, retry ; ; chec┆ 0x0bd100…0bd120 6b 20 69 2f 6f 20 65 72 72 6f 72 20 62 69 74 73 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 0d 0a ┆k i/o error bits call inbyte ┆ 0x0bd120…0bd140 09 72 61 6c 0d 0a 09 6a 63 09 77 72 65 61 64 79 09 09 3b 75 6e 69 74 20 6e 6f 74 20 72 65 61 64 ┆ ral jc wready ;unit not read┆ 0x0bd140…0bd160 79 0d 0a 09 72 61 72 0d 0a 09 61 6e 69 09 31 31 31 31 31 31 31 30 62 09 3b 61 6e 79 20 6f 74 68 ┆y rar ani 11111110b ;any oth┆ 0x0bd160…0bd180 65 72 20 65 72 72 6f 72 73 3f 20 20 28 64 65 6c 65 74 65 64 20 64 61 74 61 20 6f 6b 29 0d 0a 09 ┆er errors? (deleted data ok) ┆ 0x0bd180…0bd1a0 6a 6e 7a 09 77 65 72 72 6f 72 0d 0a 3b 0d 0a 3b 09 72 65 61 64 20 6f 72 20 77 72 69 74 65 20 69 ┆jnz werror ; ; read or write i┆ 0x0bd1a0…0bd1c0 73 20 6f 6b 2c 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 63 6f 6e 74 61 69 6e 73 20 7a 65 72 6f 0d ┆s ok, accumulator contains zero ┆ 0x0bd1c0…0bd1e0 0a 09 72 65 74 0d 0a 3b 0d 0a 77 72 65 61 64 79 3a 09 3b 6e 6f 74 20 72 65 61 64 79 2c 20 74 72 ┆ ret ; wready: ;not ready, tr┆ 0x0bd1e0…0bd200 65 61 74 20 61 73 20 65 72 72 6f 72 20 66 6f 72 20 6e 6f 77 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 ┆eat as error for now call inby┆ 0x0bd200…0bd220 (50, 0, 14) 20 72 65 61 64 0d 0a 69 6f 74 3a 09 64 62 09 6f 66 66 73 65 74 09 3b 74 72 61 63 6b 20 6e 75 6d ┆ read iot: db offset ;track num┆ 0x0bd220…0bd240 62 65 72 0d 0a 69 6f 73 3a 09 64 62 09 31 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 0d 0a 69 ┆ber ios: db 1 ;sector number i┆ 0x0bd240…0bd260 6f 64 3a 09 64 77 09 62 75 66 66 09 3b 69 6f 20 61 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b 0d 0a 3b ┆od: dw buff ;io address ; ; ;┆ 0x0bd260…0bd280 09 64 65 66 69 6e 65 20 72 61 6d 20 61 72 65 61 73 20 66 6f 72 20 62 64 6f 73 20 6f 70 65 72 61 ┆ define ram areas for bdos opera┆ 0x0bd280…0bd2a0 74 69 6f 6e 0d 0a 09 65 6e 64 65 66 0d 0a 09 65 6e 64 0d 0a 3b 09 4d 44 53 2d 38 30 30 20 49 2f ┆tion endef end ; MDS-800 I/┆ 0x0bd2a0…0bd2c0 4f 20 44 72 69 76 65 72 73 20 66 6f 72 20 43 50 2f 4d 20 32 2e 32 0d 0a 3b 09 28 66 6f 75 72 20 ┆O Drivers for CP/M 2.2 ; (four ┆ 0x0bd2c0…0bd2e0 64 72 69 76 65 20 73 69 6e 67 6c 65 20 64 65 6e 73 69 74 79 20 76 65 72 73 69 6f 6e 29 0d 0a 3b ┆drive single density version) ;┆ 0x0bd2e0…0bd300 0d 0a 3b 09 56 65 72 73 69 6f 6e 20 32 2e 32 20 46 65 62 72 75 61 72 79 2c 20 31 39 38 30 0d 0a ┆ ; Version 2.2 February, 1980 ┆ 0x0bd300…0bd320 3b 0d 0a 76 65 72 73 09 65 71 75 09 32 32 09 3b 76 65 72 73 69 6f 6e 20 32 2e 32 0d 0a 3b 0d 0a ┆; vers equ 22 ;version 2.2 ; ┆ 0x0bd320…0bd340 3b 09 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 39 38 30 0d 0a 3b 09 44 69 67 69 74 61 6c 20 ┆; Copyright (c) 1980 ; Digital ┆ 0x0bd340…0bd360 52 65 73 65 61 72 63 68 0d 0a 3b 09 42 6f 78 20 35 37 39 2c 20 50 61 63 69 66 69 63 20 47 72 6f ┆Research ; Box 579, Pacific Gro┆ 0x0bd360…0bd380 76 65 0d 0a 3b 09 43 61 6c 69 66 6f 72 6e 69 61 2c 20 39 33 39 35 30 0d 0a 3b 0d 0a 3b 0d 0a 74 ┆ve ; California, 93950 ; ; t┆ 0x0bd380…0bd3a0 72 75 65 09 65 71 75 09 30 66 66 66 66 68 09 3b 76 61 6c 75 65 20 6f 66 20 22 74 72 75 65 22 0d ┆rue equ 0ffffh ;value of "true" ┆ 0x0bd3a0…0bd3c0 0a 66 61 6c 73 65 09 65 71 75 09 6e 6f 74 20 74 72 75 65 09 3b 22 66 61 6c 73 65 22 0d 0a 74 65 ┆ false equ not true ;"false" te┆ 0x0bd3c0…0bd3e0 73 74 09 65 71 75 09 66 61 6c 73 65 09 3b 74 72 75 65 20 69 66 20 74 65 73 74 20 62 69 6f 73 0d ┆st equ false ;true if test bios ┆ 0x0bd3e0…0bd400 0a 3b 0d 0a 09 69 66 09 74 65 73 74 0d 0a 62 69 61 73 09 65 71 75 09 30 33 34 30 30 68 09 3b 62 ┆ ; if test bias equ 03400h ;b┆ 0x0bd400…0bd420 (50, 0, 15) 0d 0a 3b 09 6a 75 6d 70 20 76 65 63 74 6f 72 20 66 6f 72 20 69 6e 64 69 76 69 75 61 6c 20 72 6f ┆ ; jump vector for indiviual ro┆ 0x0bd420…0bd440 75 74 69 6e 65 73 0d 0a 09 6a 6d 70 09 62 6f 6f 74 0d 0a 77 62 6f 6f 74 65 3a 09 6a 6d 70 09 77 ┆utines jmp boot wboote: jmp w┆ 0x0bd440…0bd460 62 6f 6f 74 0d 0a 09 6a 6d 70 09 63 6f 6e 73 74 0d 0a 09 6a 6d 70 09 63 6f 6e 69 6e 0d 0a 09 6a ┆boot jmp const jmp conin j┆ 0x0bd460…0bd480 6d 70 09 63 6f 6e 6f 75 74 0d 0a 09 6a 6d 70 09 6c 69 73 74 0d 0a 09 6a 6d 70 09 70 75 6e 63 68 ┆mp conout jmp list jmp punch┆ 0x0bd480…0bd4a0 0d 0a 09 6a 6d 70 09 72 65 61 64 65 72 0d 0a 09 6a 6d 70 09 68 6f 6d 65 0d 0a 09 6a 6d 70 09 73 ┆ jmp reader jmp home jmp s┆ 0x0bd4a0…0bd4c0 65 6c 64 73 6b 0d 0a 09 6a 6d 70 09 73 65 74 74 72 6b 0d 0a 09 6a 6d 70 09 73 65 74 73 65 63 0d ┆eldsk jmp settrk jmp setsec ┆ 0x0bd4c0…0bd4e0 0a 09 6a 6d 70 09 73 65 74 64 6d 61 0d 0a 09 6a 6d 70 09 72 65 61 64 0d 0a 09 6a 6d 70 09 77 72 ┆ jmp setdma jmp read jmp wr┆ 0x0bd4e0…0bd500 69 74 65 0d 0a 09 6a 6d 70 09 6c 69 73 74 73 74 09 3b 6c 69 73 74 20 73 74 61 74 75 73 0d 0a 09 ┆ite jmp listst ;list status ┆ 0x0bd500…0bd520 6a 6d 70 09 73 65 63 74 72 61 6e 0d 0a 3b 0d 0a 09 6d 61 63 6c 69 62 09 64 69 73 6b 64 65 66 09 ┆jmp sectran ; maclib diskdef ┆ 0x0bd520…0bd540 3b 6c 6f 61 64 20 74 68 65 20 64 69 73 6b 20 64 65 66 69 6e 69 74 69 6f 6e 20 6c 69 62 72 61 72 ┆;load the disk definition librar┆ 0x0bd540…0bd560 79 0d 0a 09 64 69 73 6b 73 09 34 09 3b 66 6f 75 72 20 64 69 73 6b 73 0d 0a 09 64 69 73 6b 64 65 ┆y disks 4 ;four disks diskde┆ 0x0bd560…0bd580 66 09 30 2c 31 2c 32 36 2c 36 2c 31 30 32 34 2c 32 34 33 2c 36 34 2c 36 34 2c 6f 66 66 73 65 74 ┆f 0,1,26,6,1024,243,64,64,offset┆ 0x0bd580…0bd5a0 0d 0a 09 64 69 73 6b 64 65 66 09 31 2c 30 0d 0a 09 64 69 73 6b 64 65 66 09 32 2c 30 0d 0a 09 64 ┆ diskdef 1,0 diskdef 2,0 d┆ 0x0bd5a0…0bd5c0 69 73 6b 64 65 66 09 33 2c 30 0d 0a 3b 09 65 6e 64 65 66 20 6f 63 63 75 72 73 20 61 74 20 65 6e ┆iskdef 3,0 ; endef occurs at en┆ 0x0bd5c0…0bd5e0 64 20 6f 66 20 61 73 73 65 6d 62 6c 79 0d 0a 3b 0d 0a 3b 09 65 6e 64 20 6f 66 20 63 6f 6e 74 72 ┆d of assembly ; ; end of contr┆ 0x0bd5e0…0bd600 6f 6c 6c 65 72 20 2d 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 63 6f 64 65 2c 20 74 68 65 20 72 65 ┆oller - independent code, the re┆ 0x0bd600…0bd620 (50, 1, 1) 64 62 09 76 65 72 73 2f 31 30 2b 27 30 27 2c 27 2e 27 2c 76 65 72 73 20 6d 6f 64 20 31 30 2b 27 ┆db vers/10+'0','.',vers mod 10+'┆ 0x0bd620…0bd640 30 27 0d 0a 09 64 62 09 63 72 2c 6c 66 2c 30 0d 0a 3b 0d 0a 62 6f 6f 74 3a 09 3b 70 72 69 6e 74 ┆0' db cr,lf,0 ; boot: ;print┆ 0x0bd640…0bd660 20 73 69 67 6e 6f 6e 20 6d 65 73 73 61 67 65 20 61 6e 64 20 67 6f 20 74 6f 20 63 63 70 0d 0a 3b ┆ signon message and go to ccp ;┆ 0x0bd660…0bd680 09 28 6e 6f 74 65 3a 20 6d 64 73 20 62 6f 6f 74 20 69 6e 69 74 69 61 6c 69 7a 65 64 20 69 6f 62 ┆ (note: mds boot initialized iob┆ 0x0bd680…0bd6a0 79 74 65 20 61 74 20 30 30 30 33 68 29 0d 0a 09 6c 78 69 09 73 70 2c 62 75 66 66 2b 38 30 68 0d ┆yte at 0003h) lxi sp,buff+80h ┆ 0x0bd6a0…0bd6c0 0a 09 6c 78 69 09 68 2c 73 69 67 6e 6f 6e 0d 0a 09 63 61 6c 6c 09 70 72 6d 73 67 09 3b 70 72 69 ┆ lxi h,signon call prmsg ;pri┆ 0x0bd6c0…0bd6e0 6e 74 20 6d 65 73 73 61 67 65 0d 0a 09 78 72 61 09 61 09 3b 63 6c 65 61 72 20 61 63 63 75 6d 75 ┆nt message xra a ;clear accumu┆ 0x0bd6e0…0bd700 6c 61 74 6f 72 0d 0a 09 73 74 61 09 63 64 69 73 6b 09 3b 73 65 74 20 69 6e 69 74 69 61 6c 6c 79 ┆lator sta cdisk ;set initially┆ 0x0bd700…0bd720 20 74 6f 20 64 69 73 6b 20 61 0d 0a 09 6a 6d 70 09 67 6f 63 70 6d 09 3b 67 6f 20 74 6f 20 63 70 ┆ to disk a jmp gocpm ;go to cp┆ 0x0bd720…0bd740 2f 6d 0d 0a 3b 0d 0a 3b 0d 0a 77 62 6f 6f 74 3a 3b 09 6c 6f 61 64 65 72 20 6f 6e 20 74 72 61 63 ┆/m ; ; wboot:; loader on trac┆ 0x0bd740…0bd760 6b 20 30 2c 20 73 65 63 74 6f 72 20 31 2c 20 77 68 69 63 68 20 77 69 6c 6c 20 62 65 20 73 6b 69 ┆k 0, sector 1, which will be ski┆ 0x0bd760…0bd780 70 70 65 64 20 66 6f 72 20 77 61 72 6d 20 0d 0a 3b 09 72 65 61 64 20 63 70 2f 6d 20 66 72 6f 6d ┆pped for warm ; read cp/m from┆ 0x0bd780…0bd7a0 20 64 69 73 6b 20 2d 20 61 73 73 75 6d 69 6e 67 20 74 68 65 72 65 20 69 73 20 61 20 31 32 38 20 ┆ disk - assuming there is a 128 ┆ 0x0bd7a0…0bd7c0 62 79 74 65 20 63 6f 6c 64 20 73 74 61 72 74 0d 0a 3b 09 73 74 61 72 74 2e 0d 0a 3b 0d 0a 09 6c ┆byte cold start ; start. ; l┆ 0x0bd7c0…0bd7e0 78 69 09 73 70 2c 62 75 66 66 09 3b 75 73 69 6e 67 20 64 6d 61 20 2d 20 74 68 75 73 20 38 30 20 ┆xi sp,buff ;using dma - thus 80 ┆ 0x0bd7e0…0bd800 74 68 72 75 20 66 66 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 73 74 61 63 6b 0d 0a 3b 0d 0a ┆thru ff available for stack ; ┆ 0x0bd800…0bd820 (50, 1, 2) 68 61 6e 67 65 64 20 62 79 20 64 64 74 29 0d 0a 09 6c 78 69 09 68 2c 6d 6f 6e 38 30 0d 0a 09 73 ┆hanged by ddt) lxi h,mon80 s┆ 0x0bd820…0bd840 68 6c 64 09 37 2a 38 2b 31 0d 0a 09 65 6e 64 69 66 0d 0a 3b 09 6c 65 61 76 65 20 69 6f 62 79 74 ┆hld 7*8+1 endif ; leave iobyt┆ 0x0bd840…0bd860 65 20 73 65 74 0d 0a 3b 09 70 72 65 76 69 6f 75 73 6c 79 20 73 65 6c 65 63 74 65 64 20 64 69 73 ┆e set ; previously selected dis┆ 0x0bd860…0bd880 6b 20 77 61 73 20 62 2c 20 73 65 6e 64 20 70 61 72 61 6d 65 74 65 72 20 74 6f 20 63 70 6d 0d 0a ┆k was b, send parameter to cpm ┆ 0x0bd880…0bd8a0 09 6c 64 61 09 63 64 69 73 6b 09 3b 6c 61 73 74 20 6c 6f 67 67 65 64 20 64 69 73 6b 20 6e 75 6d ┆ lda cdisk ;last logged disk num┆ 0x0bd8a0…0bd8c0 62 65 72 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 73 65 6e 64 20 74 6f 20 63 63 70 20 74 6f 20 6c 6f ┆ber mov c,a ;send to ccp to lo┆ 0x0bd8c0…0bd8e0 67 20 69 74 20 69 6e 0d 0a 09 65 69 0d 0a 09 6a 6d 70 09 63 70 6d 62 0d 0a 3b 0d 0a 3b 09 65 72 ┆g it in ei jmp cpmb ; ; er┆ 0x0bd8e0…0bd900 72 6f 72 20 63 6f 6e 64 69 74 69 6f 6e 20 6f 63 63 75 72 72 65 64 2c 20 70 72 69 6e 74 20 6d 65 ┆ror condition occurred, print me┆ 0x0bd900…0bd920 73 73 61 67 65 20 61 6e 64 20 72 65 74 72 79 0d 0a 62 6f 6f 74 65 72 72 3a 0d 0a 09 70 6f 70 09 ┆ssage and retry booterr: pop ┆ 0x0bd920…0bd940 62 09 3b 72 65 63 61 6c 6c 20 63 6f 75 6e 74 73 0d 0a 09 64 63 72 09 63 0d 0a 09 6a 7a 09 62 6f ┆b ;recall counts dcr c jz bo┆ 0x0bd940…0bd960 6f 74 65 72 30 0d 0a 3b 09 74 72 79 20 61 67 61 69 6e 0d 0a 09 70 75 73 68 09 62 0d 0a 09 6a 6d ┆oter0 ; try again push b jm┆ 0x0bd960…0bd980 70 09 77 62 6f 6f 74 30 0d 0a 3b 0d 0a 62 6f 6f 74 65 72 30 3a 0d 0a 3b 09 6f 74 68 65 72 77 69 ┆p wboot0 ; booter0: ; otherwi┆ 0x0bd980…0bd9a0 73 65 20 74 6f 6f 20 6d 61 6e 79 20 72 65 74 72 69 65 73 0d 0a 09 6c 78 69 09 68 2c 62 6f 6f 74 ┆se too many retries lxi h,boot┆ 0x0bd9a0…0bd9c0 6d 73 67 0d 0a 09 63 61 6c 6c 09 70 72 6d 73 67 0d 0a 09 6a 6d 70 09 72 6d 6f 6e 38 30 09 3b 6d ┆msg call prmsg jmp rmon80 ;m┆ 0x0bd9c0…0bd9e0 64 73 20 68 61 72 64 77 61 72 65 20 6d 6f 6e 69 74 6f 72 0d 0a 3b 0d 0a 62 6f 6f 74 6d 73 67 3a ┆ds hardware monitor ; bootmsg:┆ 0x0bd9e0…0bda00 0d 0a 09 64 62 09 27 3f 62 6f 6f 74 27 2c 30 0d 0a 3b 0d 0a 3b 0d 0a 63 6f 6e 73 74 3a 09 3b 63 ┆ db '?boot',0 ; ; const: ;c┆ 0x0bda00…0bda20 (50, 1, 3) 6e 73 6c 61 74 65 20 74 61 62 6c 65 20 61 64 64 72 65 73 73 20 74 6f 20 48 4c 0d 0a 09 64 61 64 ┆nslate table address to HL dad┆ 0x0bda20…0bda40 09 62 09 3b 74 72 61 6e 73 6c 61 74 65 28 73 65 63 74 6f 72 29 20 61 64 64 72 65 73 73 0d 0a 09 ┆ b ;translate(sector) address ┆ 0x0bda40…0bda60 6d 6f 76 09 61 2c 6d 09 3b 74 72 61 6e 73 6c 61 74 65 64 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 ┆mov a,m ;translated sector numbe┆ 0x0bda60…0bda80 72 20 74 6f 20 41 0d 0a 09 73 74 61 09 69 6f 73 0d 0a 09 6d 6f 76 09 6c 2c 61 09 3b 72 65 74 75 ┆r to A sta ios mov l,a ;retu┆ 0x0bda80…0bdaa0 72 6e 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 69 6e 20 4c 0d 0a 09 72 65 74 0d 0a 3b 0d 0a ┆rn sector number in L ret ; ┆ 0x0bdaa0…0bdac0 73 65 74 64 6d 61 3a 09 3b 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 67 69 76 65 6e 20 62 ┆setdma: ;set dma address given b┆ 0x0bdac0…0bdae0 79 20 72 65 67 73 20 62 2c 63 0d 0a 09 6d 6f 76 09 6c 2c 63 0d 0a 09 6d 6f 76 09 68 2c 62 0d 0a ┆y regs b,c mov l,c mov h,b ┆ 0x0bdae0…0bdb00 09 73 68 6c 64 09 69 6f 64 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 72 65 61 64 3a 09 3b 72 65 61 64 20 ┆ shld iod ret ; read: ;read ┆ 0x0bdb00…0bdb20 6e 65 78 74 20 64 69 73 6b 20 72 65 63 6f 72 64 20 28 61 73 73 75 6d 69 6e 67 20 64 69 73 6b 2f ┆next disk record (assuming disk/┆ 0x0bdb20…0bdb40 74 72 6b 2f 73 65 63 2f 64 6d 61 20 73 65 74 29 0d 0a 09 6d 76 69 09 63 2c 72 65 61 64 66 09 3b ┆trk/sec/dma set) mvi c,readf ;┆ 0x0bdb40…0bdb60 73 65 74 20 74 6f 20 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 73 65 74 66 ┆set to read function call setf┆ 0x0bdb60…0bdb80 75 6e 63 0d 0a 09 63 61 6c 6c 09 77 61 69 74 69 6f 09 3b 70 65 72 66 6f 72 6d 20 72 65 61 64 20 ┆unc call waitio ;perform read ┆ 0x0bdb80…0bdba0 66 75 6e 63 74 69 6f 6e 0d 0a 09 72 65 74 09 09 3b 6d 61 79 20 68 61 76 65 20 65 72 72 6f 72 20 ┆function ret ;may have error ┆ 0x0bdba0…0bdbc0 73 65 74 20 69 6e 20 72 65 67 2d 61 0d 0a 3b 0d 0a 3b 0d 0a 77 72 69 74 65 3a 09 3b 64 69 73 6b ┆set in reg-a ; ; write: ;disk┆ 0x0bdbc0…0bdbe0 20 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6d 76 69 09 63 2c 77 72 69 74 66 0d 0a 09 ┆ write function mvi c,writf ┆ 0x0bdbe0…0bdc00 63 61 6c 6c 09 73 65 74 66 75 6e 63 09 3b 73 65 74 20 74 6f 20 77 72 69 74 65 20 66 75 6e 63 74 ┆call setfunc ;set to write funct┆ 0x0bdc00…0bdc20 (50, 1, 4) 65 64 20 20 20 20 20 20 20 31 31 20 28 6e 6f 74 20 75 73 65 64 29 0d 0a 09 63 70 69 09 31 30 62 ┆ed 11 (not used) cpi 10b┆ 0x0bdc20…0bdc40 09 09 3b 72 65 61 64 79 20 73 74 61 74 75 73 20 63 68 61 6e 67 65 3f 0d 0a 09 6a 7a 09 77 72 65 ┆ ;ready status change? jz wre┆ 0x0bdc40…0bdc60 61 64 79 0d 0a 3b 0d 0a 3b 09 6d 75 73 74 20 62 65 20 30 30 20 69 6e 20 74 68 65 20 61 63 63 75 ┆ady ; ; must be 00 in the accu┆ 0x0bdc60…0bdc80 6d 75 6c 61 74 6f 72 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 77 65 72 72 6f 72 09 09 3b 73 ┆mulator ora a jnz werror ;s┆ 0x0bdc80…0bdca0 6f 6d 65 20 6f 74 68 65 72 20 63 6f 6e 64 69 74 69 6f 6e 2c 20 72 65 74 72 79 0d 0a 3b 0d 0a 3b ┆ome other condition, retry ; ;┆ 0x0bdca0…0bdcc0 09 63 68 65 63 6b 20 69 2f 6f 20 65 72 72 6f 72 20 62 69 74 73 0d 0a 09 63 61 6c 6c 09 69 6e 62 ┆ check i/o error bits call inb┆ 0x0bdcc0…0bdce0 79 74 65 0d 0a 09 72 61 6c 0d 0a 09 6a 63 09 77 72 65 61 64 79 09 09 3b 75 6e 69 74 20 6e 6f 74 ┆yte ral jc wready ;unit not┆ 0x0bdce0…0bdd00 20 72 65 61 64 79 0d 0a 09 72 61 72 0d 0a 09 61 6e 69 09 31 31 31 31 31 31 31 30 62 09 3b 61 6e ┆ ready rar ani 11111110b ;an┆ 0x0bdd00…0bdd20 79 20 6f 74 68 65 72 20 65 72 72 6f 72 73 3f 20 20 28 64 65 6c 65 74 65 64 20 64 61 74 61 20 6f ┆y other errors? (deleted data o┆ 0x0bdd20…0bdd40 6b 29 0d 0a 09 6a 6e 7a 09 77 65 72 72 6f 72 0d 0a 3b 0d 0a 3b 09 72 65 61 64 20 6f 72 20 77 72 ┆k) jnz werror ; ; read or wr┆ 0x0bdd40…0bdd60 69 74 65 20 69 73 20 6f 6b 2c 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 63 6f 6e 74 61 69 6e 73 20 ┆ite is ok, accumulator contains ┆ 0x0bdd60…0bdd80 7a 65 72 6f 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 77 72 65 61 64 79 3a 09 3b 6e 6f 74 20 72 65 61 64 ┆zero ret ; wready: ;not read┆ 0x0bdd80…0bdda0 79 2c 20 74 72 65 61 74 20 61 73 20 65 72 72 6f 72 20 66 6f 72 20 6e 6f 77 0d 0a 09 63 61 6c 6c ┆y, treat as error for now call┆ 0x0bdda0…0bddc0 09 69 6e 62 79 74 65 09 09 3b 63 6c 65 61 72 20 72 65 73 75 6c 74 20 62 79 74 65 0d 0a 09 6a 6d ┆ inbyte ;clear result byte jm┆ 0x0bddc0…0bdde0 70 09 74 72 79 63 6f 75 6e 74 0d 0a 3b 0d 0a 77 65 72 72 6f 72 3a 09 3b 72 65 74 75 72 6e 20 68 ┆p trycount ; werror: ;return h┆ 0x0bdde0…0bde00 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 20 28 63 72 63 2c 20 74 72 61 63 6b 2c ┆ardware malfunction (crc, track,┆ 0x0bde00…0bde20 (50, 1, 5) 09 6d 76 69 09 63 2c 72 65 74 72 79 09 3b 6d 61 78 20 72 65 74 72 69 65 73 0d 0a 09 70 75 73 68 ┆ mvi c,retry ;max retries push┆ 0x0bde20…0bde40 09 62 0d 0a 77 62 6f 6f 74 30 3a 09 3b 65 6e 74 65 72 20 68 65 72 65 20 6f 6e 20 65 72 72 6f 72 ┆ b wboot0: ;enter here on error┆ 0x0bde40…0bde60 20 72 65 74 72 69 65 73 0d 0a 09 6c 78 69 09 62 2c 63 70 6d 62 09 3b 73 65 74 20 64 6d 61 20 61 ┆ retries lxi b,cpmb ;set dma a┆ 0x0bde60…0bde80 64 64 72 65 73 73 20 74 6f 20 73 74 61 72 74 20 6f 66 20 64 69 73 6b 20 73 79 73 74 65 6d 0d 0a ┆ddress to start of disk system ┆ 0x0bde80…0bdea0 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 09 6d 76 69 09 63 2c 30 09 3b 62 6f 6f 74 20 66 72 6f ┆ call setdma mvi c,0 ;boot fro┆ 0x0bdea0…0bdec0 6d 20 64 72 69 76 65 20 30 0d 0a 09 63 61 6c 6c 09 73 65 6c 64 73 6b 0d 0a 09 6d 76 69 09 63 2c ┆m drive 0 call seldsk mvi c,┆ 0x0bdec0…0bdee0 30 0d 0a 09 63 61 6c 6c 09 73 65 74 74 72 6b 09 3b 73 74 61 72 74 20 77 69 74 68 20 74 72 61 63 ┆0 call settrk ;start with trac┆ 0x0bdee0…0bdf00 6b 20 30 0d 0a 09 6d 76 69 09 63 2c 32 09 3b 73 74 61 72 74 20 72 65 61 64 69 6e 67 20 73 65 63 ┆k 0 mvi c,2 ;start reading sec┆ 0x0bdf00…0bdf20 74 6f 72 20 32 0d 0a 09 63 61 6c 6c 09 73 65 74 73 65 63 0d 0a 3b 0d 0a 3b 09 72 65 61 64 20 73 ┆tor 2 call setsec ; ; read s┆ 0x0bdf20…0bdf40 65 63 74 6f 72 73 2c 20 63 6f 75 6e 74 20 6e 73 65 63 74 73 20 74 6f 20 7a 65 72 6f 0d 0a 09 70 ┆ectors, count nsects to zero p┆ 0x0bdf40…0bdf60 6f 70 09 62 09 3b 31 30 2d 65 72 72 6f 72 20 63 6f 75 6e 74 0d 0a 09 6d 76 69 09 62 2c 6e 73 65 ┆op b ;10-error count mvi b,nse┆ 0x0bdf60…0bdf80 63 74 73 0d 0a 72 64 73 65 63 3a 09 3b 72 65 61 64 20 6e 65 78 74 20 73 65 63 74 6f 72 0d 0a 09 ┆cts rdsec: ;read next sector ┆ 0x0bdf80…0bdfa0 70 75 73 68 09 62 09 3b 73 61 76 65 20 73 65 63 74 6f 72 20 63 6f 75 6e 74 0d 0a 09 63 61 6c 6c ┆push b ;save sector count call┆ 0x0bdfa0…0bdfc0 09 72 65 61 64 0d 0a 09 6a 6e 7a 09 62 6f 6f 74 65 72 72 09 3b 72 65 74 72 79 20 69 66 20 65 72 ┆ read jnz booterr ;retry if er┆ 0x0bdfc0…0bdfe0 72 6f 72 73 20 6f 63 63 75 72 0d 0a 09 6c 68 6c 64 09 69 6f 64 09 3b 69 6e 63 72 65 6d 65 6e 74 ┆rors occur lhld iod ;increment┆ 0x0bdfe0…0be000 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 09 6c 78 69 09 64 2c 31 32 38 09 3b 73 65 63 74 6f 72 ┆ dma address lxi d,128 ;sector┆ 0x0be000…0be020 (50, 1, 6) 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 20 74 6f 20 72 65 67 2d 61 0d 0a 3b 09 28 65 78 61 63 74 ┆onsole status to reg-a ; (exact┆ 0x0be020…0be040 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 63 ┆ly the same as mds call) jmp c┆ 0x0be040…0be060 73 74 73 0d 0a 3b 0d 0a 63 6f 6e 69 6e 3a 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 ┆sts ; conin: ;console characte┆ 0x0be060…0be080 72 20 74 6f 20 72 65 67 2d 61 0d 0a 09 63 61 6c 6c 09 63 69 0d 0a 09 61 6e 69 09 37 66 68 09 3b ┆r to reg-a call ci ani 7fh ;┆ 0x0be080…0be0a0 72 65 6d 6f 76 65 20 70 61 72 69 74 79 20 62 69 74 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 63 6f 6e 6f ┆remove parity bit ret ; cono┆ 0x0be0a0…0be0c0 75 74 3a 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 66 72 6f 6d 20 63 20 74 6f ┆ut: ;console character from c to┆ 0x0be0c0…0be0e0 20 63 6f 6e 73 6f 6c 65 20 6f 75 74 0d 0a 09 6a 6d 70 09 63 6f 0d 0a 3b 0d 0a 6c 69 73 74 3a 09 ┆ console out jmp co ; list: ┆ 0x0be0e0…0be100 3b 6c 69 73 74 20 64 65 76 69 63 65 20 6f 75 74 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 ┆;list device out ; (exactly the┆ 0x0be100…0be120 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 6c 6f 0d 0a 3b 0d 0a ┆ same as mds call) jmp lo ; ┆ 0x0be120…0be140 6c 69 73 74 73 74 3a 0d 0a 09 3b 72 65 74 75 72 6e 20 6c 69 73 74 20 73 74 61 74 75 73 0d 0a 09 ┆listst: ;return list status ┆ 0x0be140…0be160 78 72 61 09 61 0d 0a 09 72 65 74 09 09 3b 61 6c 77 61 79 73 20 6e 6f 74 20 72 65 61 64 79 0d 0a ┆xra a ret ;always not ready ┆ 0x0be160…0be180 3b 0d 0a 70 75 6e 63 68 3a 09 3b 70 75 6e 63 68 20 64 65 76 69 63 65 20 6f 75 74 0d 0a 3b 09 28 ┆; punch: ;punch device out ; (┆ 0x0be180…0be1a0 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 ┆exactly the same as mds call) ┆ 0x0be1a0…0be1c0 6a 6d 70 09 70 6f 0d 0a 3b 0d 0a 72 65 61 64 65 72 3a 09 3b 72 65 61 64 65 72 20 63 68 61 72 61 ┆jmp po ; reader: ;reader chara┆ 0x0be1c0…0be1e0 63 74 65 72 20 69 6e 20 74 6f 20 72 65 67 2d 61 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 ┆cter in to reg-a ; (exactly the┆ 0x0be1e0…0be200 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 72 69 0d 0a 3b 0d 0a ┆ same as mds call) jmp ri ; ┆ 0x0be200…0be220 (50, 1, 7) 69 6f 6e 0d 0a 09 63 61 6c 6c 09 77 61 69 74 69 6f 0d 0a 09 72 65 74 09 09 3b 6d 61 79 20 68 61 ┆ion call waitio ret ;may ha┆ 0x0be220…0be240 76 65 20 65 72 72 6f 72 20 73 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 75 74 69 6c 69 74 79 20 73 75 ┆ve error set ; ; ; utility su┆ 0x0be240…0be260 62 72 6f 75 74 69 6e 65 73 0d 0a 70 72 6d 73 67 3a 09 3b 70 72 69 6e 74 20 6d 65 73 73 61 67 65 ┆broutines prmsg: ;print message┆ 0x0be260…0be280 20 61 74 20 68 2c 6c 20 74 6f 20 30 0d 0a 09 6d 6f 76 09 61 2c 6d 0d 0a 09 6f 72 61 09 61 09 3b ┆ at h,l to 0 mov a,m ora a ;┆ 0x0be280…0be2a0 7a 65 72 6f 3f 0d 0a 09 72 7a 0d 0a 3b 09 6d 6f 72 65 20 74 6f 20 70 72 69 6e 74 0d 0a 09 70 75 ┆zero? rz ; more to print pu┆ 0x0be2a0…0be2c0 73 68 09 68 0d 0a 09 6d 6f 76 09 63 2c 61 0d 0a 09 63 61 6c 6c 09 63 6f 6e 6f 75 74 0d 0a 09 70 ┆sh h mov c,a call conout p┆ 0x0be2c0…0be2e0 6f 70 09 68 0d 0a 09 69 6e 78 09 68 0d 0a 09 6a 6d 70 09 70 72 6d 73 67 0d 0a 3b 0d 0a 73 65 74 ┆op h inx h jmp prmsg ; set┆ 0x0be2e0…0be300 66 75 6e 63 3a 0d 0a 3b 09 73 65 74 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 6e 65 78 74 20 69 ┆func: ; set function for next i┆ 0x0be300…0be320 2f 6f 20 28 63 6f 6d 6d 61 6e 64 20 69 6e 20 72 65 67 2d 63 29 0d 0a 09 6c 78 69 09 68 2c 69 6f ┆/o (command in reg-c) lxi h,io┆ 0x0be320…0be340 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 72 65 73 73 0d 0a 09 6d 6f 76 09 61 2c 6d ┆f ;io function address mov a,m┆ 0x0be340…0be360 09 3b 67 65 74 20 69 74 20 74 6f 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 66 6f 72 20 6d 61 73 6b ┆ ;get it to accumulator for mask┆ 0x0be360…0be380 69 6e 67 0d 0a 09 61 6e 69 09 31 31 31 31 31 30 30 30 62 09 3b 72 65 6d 6f 76 65 20 70 72 65 76 ┆ing ani 11111000b ;remove prev┆ 0x0be380…0be3a0 69 6f 75 73 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6f 72 61 09 63 09 3b 73 65 74 20 74 6f 20 6e 65 77 ┆ious command ora c ;set to new┆ 0x0be3a0…0be3c0 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6d 6f 76 09 6d 2c 61 09 3b 72 65 70 6c 61 63 65 64 20 69 6e 20 ┆ command mov m,a ;replaced in ┆ 0x0be3c0…0be3e0 69 6f 70 62 0d 0a 3b 09 74 68 65 20 6d 64 73 2d 38 30 30 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 72 ┆iopb ; the mds-800 controller r┆ 0x0be3e0…0be400 65 71 75 69 72 65 73 20 64 69 73 6b 20 62 61 6e 6b 20 62 69 74 20 69 6e 20 73 65 63 74 6f 72 20 ┆equires disk bank bit in sector ┆ 0x0be400…0be420 (50, 1, 8) 20 73 65 65 6b 2c 20 65 74 63 2e 29 0d 0a 3b 09 74 68 65 20 6d 64 73 20 63 6f 6e 74 72 6f 6c 6c ┆ seek, etc.) ; the mds controll┆ 0x0be420…0be440 65 72 20 68 61 73 20 72 65 74 75 72 6e 65 64 20 61 20 62 69 74 20 69 6e 20 65 61 63 68 20 70 6f ┆er has returned a bit in each po┆ 0x0be440…0be460 73 69 74 69 6f 6e 0d 0a 3b 09 6f 66 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 2c 20 63 6f ┆sition ; of the accumulator, co┆ 0x0be460…0be480 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e 73 3a 0d 0a ┆rresponding to the conditions: ┆ 0x0be480…0be4a0 3b 09 30 09 2d 20 64 65 6c 65 74 65 64 20 64 61 74 61 20 28 61 63 63 65 70 74 65 64 20 61 73 20 ┆; 0 - deleted data (accepted as ┆ 0x0be4a0…0be4c0 6f 6b 20 61 62 6f 76 65 29 0d 0a 3b 09 31 09 2d 20 63 72 63 20 65 72 72 6f 72 0d 0a 3b 09 32 09 ┆ok above) ; 1 - crc error ; 2 ┆ 0x0be4c0…0be4e0 2d 20 73 65 65 6b 20 65 72 72 6f 72 0d 0a 3b 09 33 09 2d 20 61 64 64 72 65 73 73 20 65 72 72 6f ┆- seek error ; 3 - address erro┆ 0x0be4e0…0be500 72 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 34 09 2d 20 ┆r (hardware malfunction) ; 4 - ┆ 0x0be500…0be520 64 61 74 61 20 6f 76 65 72 2f 75 6e 64 65 72 20 66 6c 6f 77 20 28 68 61 72 64 77 61 72 65 20 6d ┆data over/under flow (hardware m┆ 0x0be520…0be540 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 35 09 2d 20 77 72 69 74 65 20 70 72 6f 74 65 63 74 ┆alfunction) ; 5 - write protect┆ 0x0be540…0be560 20 28 74 72 65 61 74 65 64 20 61 73 20 6e 6f 74 20 72 65 61 64 79 29 0d 0a 3b 09 36 09 2d 20 77 ┆ (treated as not ready) ; 6 - w┆ 0x0be560…0be580 72 69 74 65 20 65 72 72 6f 72 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e ┆rite error (hardware malfunction┆ 0x0be580…0be5a0 29 0d 0a 3b 09 37 09 2d 20 6e 6f 74 20 72 65 61 64 79 0d 0a 3b 09 28 61 63 63 75 6d 75 6c 61 74 ┆) ; 7 - not ready ; (accumulat┆ 0x0be5a0…0be5c0 6f 72 20 62 69 74 73 20 61 72 65 20 6e 75 6d 62 65 72 65 64 20 37 20 36 20 35 20 34 20 33 20 32 ┆or bits are numbered 7 6 5 4 3 2┆ 0x0be5c0…0be5e0 20 31 20 30 29 0d 0a 3b 0d 0a 3b 09 69 74 20 6d 61 79 20 62 65 20 75 73 65 66 75 6c 20 74 6f 20 ┆ 1 0) ; ; it may be useful to ┆ 0x0be5e0…0be600 66 69 6c 74 65 72 20 6f 75 74 20 74 68 65 20 76 61 72 69 6f 75 73 20 63 6f 6e 64 69 74 69 6f 6e ┆filter out the various condition┆ 0x0be600…0be620 (50, 1, 9) 20 73 69 7a 65 0d 0a 09 64 61 64 09 64 09 3b 69 6e 63 72 65 6d 65 6e 74 65 64 20 64 6d 61 20 61 ┆ size dad d ;incremented dma a┆ 0x0be620…0be640 64 64 72 65 73 73 20 69 6e 20 68 6c 0d 0a 09 6d 6f 76 09 62 2c 68 0d 0a 09 6d 6f 76 09 63 2c 6c ┆ddress in hl mov b,h mov c,l┆ 0x0be640…0be660 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 20 74 6f 20 73 65 74 20 64 6d 61 0d 0a 09 63 61 ┆ ;ready for call to set dma ca┆ 0x0be660…0be680 6c 6c 09 73 65 74 64 6d 61 0d 0a 09 6c 64 61 09 69 6f 73 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 ┆ll setdma lda ios ;sector numb┆ 0x0be680…0be6a0 65 72 20 6a 75 73 74 20 72 65 61 64 0d 0a 09 63 70 69 09 32 36 09 3b 72 65 61 64 20 6c 61 73 74 ┆er just read cpi 26 ;read last┆ 0x0be6a0…0be6c0 20 73 65 63 74 6f 72 3f 0d 0a 09 6a 63 09 72 64 31 0d 0a 3b 09 6d 75 73 74 20 62 65 20 73 65 63 ┆ sector? jc rd1 ; must be sec┆ 0x0be6c0…0be6e0 74 6f 72 20 32 36 2c 20 7a 65 72 6f 20 61 6e 64 20 67 6f 20 74 6f 20 6e 65 78 74 20 74 72 61 63 ┆tor 26, zero and go to next trac┆ 0x0be6e0…0be700 6b 0d 0a 09 6c 64 61 09 69 6f 74 09 3b 67 65 74 20 74 72 61 63 6b 20 74 6f 20 72 65 67 69 73 74 ┆k lda iot ;get track to regist┆ 0x0be700…0be720 65 72 20 61 0d 0a 09 69 6e 72 09 61 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 72 65 61 64 79 20 66 6f ┆er a inr a mov c,a ;ready fo┆ 0x0be720…0be740 72 20 63 61 6c 6c 0d 0a 09 63 61 6c 6c 09 73 65 74 74 72 6b 0d 0a 09 78 72 61 09 61 09 3b 63 6c ┆r call call settrk xra a ;cl┆ 0x0be740…0be760 65 61 72 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 0d 0a 72 64 31 3a 09 69 6e 72 09 61 09 3b 74 ┆ear sector number rd1: inr a ;t┆ 0x0be760…0be780 6f 20 6e 65 78 74 20 73 65 63 74 6f 72 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 72 65 61 64 79 20 66 ┆o next sector mov c,a ;ready f┆ 0x0be780…0be7a0 6f 72 20 63 61 6c 6c 0d 0a 09 63 61 6c 6c 09 73 65 74 73 65 63 0d 0a 09 70 6f 70 09 62 09 3b 72 ┆or call call setsec pop b ;r┆ 0x0be7a0…0be7c0 65 63 61 6c 6c 20 73 65 63 74 6f 72 20 63 6f 75 6e 74 0d 0a 09 64 63 72 09 62 09 3b 64 6f 6e 65 ┆ecall sector count dcr b ;done┆ 0x0be7c0…0be7e0 3f 0d 0a 09 6a 6e 7a 09 72 64 73 65 63 0d 0a 3b 0d 0a 3b 09 64 6f 6e 65 20 77 69 74 68 20 74 68 ┆? jnz rdsec ; ; done with th┆ 0x0be7e0…0be800 65 20 6c 6f 61 64 2c 20 72 65 73 65 74 20 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 ┆e load, reset default buffer add┆ 0x0be800…0be820 (50, 1, 10) 68 6f 6d 65 3a 09 3b 6d 6f 76 65 20 74 6f 20 68 6f 6d 65 20 70 6f 73 69 74 69 6f 6e 0d 0a 3b 09 ┆home: ;move to home position ; ┆ 0x0be820…0be840 74 72 65 61 74 20 61 73 20 74 72 61 63 6b 20 30 30 20 73 65 65 6b 0d 0a 09 6d 76 69 09 63 2c 30 ┆treat as track 00 seek mvi c,0┆ 0x0be840…0be860 0d 0a 09 6a 6d 70 09 73 65 74 74 72 6b 0d 0a 3b 0d 0a 73 65 6c 64 73 6b 3a 09 3b 73 65 6c 65 63 ┆ jmp settrk ; seldsk: ;selec┆ 0x0be860…0be880 74 20 64 69 73 6b 20 67 69 76 65 6e 20 62 79 20 72 65 67 69 73 74 65 72 20 63 0d 0a 09 6c 78 69 ┆t disk given by register c lxi┆ 0x0be880…0be8a0 09 68 2c 30 30 30 30 68 09 3b 72 65 74 75 72 6e 20 30 30 30 30 20 69 66 20 65 72 72 6f 72 0d 0a ┆ h,0000h ;return 0000 if error ┆ 0x0be8a0…0be8c0 09 6d 6f 76 09 61 2c 63 0d 0a 09 63 70 69 09 6e 64 69 73 6b 73 09 3b 74 6f 6f 20 6c 61 72 67 65 ┆ mov a,c cpi ndisks ;too large┆ 0x0be8c0…0be8e0 3f 0d 0a 09 72 6e 63 09 09 3b 6c 65 61 76 65 20 48 4c 20 3d 20 30 30 30 30 0d 0a 3b 0d 0a 09 61 ┆? rnc ;leave HL = 0000 ; a┆ 0x0be8e0…0be900 6e 69 09 31 30 62 09 3b 30 30 20 30 30 20 66 6f 72 20 64 72 69 76 65 20 30 2c 31 20 61 6e 64 20 ┆ni 10b ;00 00 for drive 0,1 and ┆ 0x0be900…0be920 31 30 20 31 30 20 66 6f 72 20 64 72 69 76 65 20 32 2c 33 0d 0a 09 73 74 61 09 64 62 61 6e 6b 09 ┆10 10 for drive 2,3 sta dbank ┆ 0x0be920…0be940 3b 74 6f 20 73 65 6c 65 63 74 20 64 72 69 76 65 20 62 61 6e 6b 0d 0a 09 6d 6f 76 09 61 2c 63 09 ┆;to select drive bank mov a,c ┆ 0x0be940…0be960 3b 30 30 2c 20 30 31 2c 20 31 30 2c 20 31 31 0d 0a 09 61 6e 69 09 31 62 09 3b 6d 64 73 20 68 61 ┆;00, 01, 10, 11 ani 1b ;mds ha┆ 0x0be960…0be980 73 20 30 2c 31 20 61 74 20 37 38 2c 20 32 2c 33 20 61 74 20 38 38 0d 0a 09 6f 72 61 09 61 09 3b ┆s 0,1 at 78, 2,3 at 88 ora a ;┆ 0x0be980…0be9a0 72 65 73 75 6c 74 20 30 30 3f 0d 0a 09 6a 7a 09 73 65 74 64 72 69 76 65 0d 0a 09 6d 76 69 09 61 ┆result 00? jz setdrive mvi a┆ 0x0be9a0…0be9c0 2c 30 30 31 31 30 30 30 30 62 09 3b 73 65 6c 65 63 74 73 20 64 72 69 76 65 20 31 20 69 6e 20 62 ┆,00110000b ;selects drive 1 in b┆ 0x0be9c0…0be9e0 61 6e 6b 0d 0a 73 65 74 64 72 69 76 65 3a 0d 0a 09 6d 6f 76 09 62 2c 61 09 3b 73 61 76 65 20 74 ┆ank setdrive: mov b,a ;save t┆ 0x0be9e0…0bea00 68 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6c 78 69 09 68 2c 69 6f 66 09 3b 69 6f 20 66 75 6e 63 ┆he function lxi h,iof ;io func┆ 0x0bea00…0bea20 (50, 1, 11) 62 79 74 65 0d 0a 3b 09 6d 61 73 6b 20 74 68 65 20 62 69 74 20 66 72 6f 6d 20 74 68 65 20 63 75 ┆byte ; mask the bit from the cu┆ 0x0bea20…0bea40 72 72 65 6e 74 20 69 2f 6f 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 61 6e 69 09 30 30 31 30 30 30 30 ┆rrent i/o function ani 0010000┆ 0x0bea40…0bea60 30 62 09 3b 6d 61 73 6b 20 74 68 65 20 64 69 73 6b 20 73 65 6c 65 63 74 20 62 69 74 0d 0a 09 6c ┆0b ;mask the disk select bit l┆ 0x0bea60…0bea80 78 69 09 68 2c 69 6f 73 09 09 3b 61 64 64 72 65 73 73 20 74 68 65 20 73 65 63 74 6f 72 20 73 65 ┆xi h,ios ;address the sector se┆ 0x0bea80…0beaa0 6c 65 63 74 20 62 79 74 65 0d 0a 09 6f 72 61 09 6d 09 09 3b 73 65 6c 65 63 74 20 70 72 6f 70 65 ┆lect byte ora m ;select prope┆ 0x0beaa0…0beac0 72 20 64 69 73 6b 20 62 61 6e 6b 0d 0a 09 6d 6f 76 09 6d 2c 61 09 09 3b 73 65 74 20 64 69 73 6b ┆r disk bank mov m,a ;set disk┆ 0x0beac0…0beae0 20 73 65 6c 65 63 74 20 62 69 74 20 6f 6e 2f 6f 66 66 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 77 61 69 ┆ select bit on/off ret ; wai┆ 0x0beae0…0beb00 74 69 6f 3a 0d 0a 09 6d 76 69 09 63 2c 72 65 74 72 79 09 3b 6d 61 78 20 72 65 74 72 69 65 73 20 ┆tio: mvi c,retry ;max retries ┆ 0x0beb00…0beb20 62 65 66 6f 72 65 20 70 65 72 6d 20 65 72 72 6f 72 0d 0a 72 65 77 61 69 74 3a 0d 0a 3b 09 73 74 ┆before perm error rewait: ; st┆ 0x0beb20…0beb40 61 72 74 20 74 68 65 20 69 2f 6f 20 66 75 6e 63 74 69 6f 6e 20 61 6e 64 20 77 61 69 74 20 66 6f ┆art the i/o function and wait fo┆ 0x0beb40…0beb60 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 69 6e 74 79 70 65 09 3b 69 6e 20 72 ┆r completion call intype ;in r┆ 0x0beb60…0beb80 74 79 70 65 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 09 3b 63 6c 65 61 72 73 20 74 68 65 20 63 ┆type call inbyte ;clears the c┆ 0x0beb80…0beba0 6f 6e 74 72 6f 6c 6c 65 72 0d 0a 3b 0d 0a 09 6c 64 61 09 64 62 61 6e 6b 09 09 3b 73 65 74 20 62 ┆ontroller ; lda dbank ;set b┆ 0x0beba0…0bebc0 61 6e 6b 20 66 6c 61 67 73 0d 0a 09 6f 72 61 09 61 09 09 3b 7a 65 72 6f 20 69 66 20 64 72 69 76 ┆ank flags ora a ;zero if driv┆ 0x0bebc0…0bebe0 65 20 30 2c 31 20 61 6e 64 20 6e 7a 20 69 66 20 32 2c 33 0d 0a 09 6d 76 69 09 61 2c 69 6f 70 62 ┆e 0,1 and nz if 2,3 mvi a,iopb┆ 0x0bebe0…0bec00 20 61 6e 64 20 30 66 66 68 09 3b 6c 6f 77 20 61 64 64 72 65 73 73 20 66 6f 72 20 69 6f 70 62 0d ┆ and 0ffh ;low address for iopb ┆ 0x0bec00…0bec20 (50, 1, 12) 73 2c 0d 0a 3b 09 62 75 74 20 77 65 20 77 69 6c 6c 20 67 65 74 20 61 20 70 65 72 6d 61 6e 65 6e ┆s, ; but we will get a permanen┆ 0x0bec20…0bec40 74 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 69 66 20 69 74 20 69 73 20 6e 6f 74 0d 0a 3b 09 ┆t error message if it is not ; ┆ 0x0bec40…0bec60 72 65 63 6f 76 65 72 61 62 6c 65 2e 20 20 69 6e 20 61 6e 79 20 63 61 73 65 2c 20 74 68 65 20 6e ┆recoverable. in any case, the n┆ 0x0bec60…0bec80 6f 74 20 72 65 61 64 79 20 63 6f 6e 64 69 74 69 6f 6e 20 69 73 0d 0a 3b 09 74 72 65 61 74 65 64 ┆ot ready condition is ; treated┆ 0x0bec80…0beca0 20 61 73 20 61 20 73 65 70 61 72 61 74 65 20 63 6f 6e 64 69 74 69 6f 6e 20 66 6f 72 20 6c 61 74 ┆ as a separate condition for lat┆ 0x0beca0…0becc0 65 72 20 69 6d 70 72 6f 76 65 6d 65 6e 74 0d 0a 74 72 79 63 6f 75 6e 74 3a 0d 0a 3b 09 72 65 67 ┆er improvement trycount: ; reg┆ 0x0becc0…0bece0 69 73 74 65 72 20 63 20 63 6f 6e 74 61 69 6e 73 20 72 65 74 72 79 20 63 6f 75 6e 74 2c 20 64 65 ┆ister c contains retry count, de┆ 0x0bece0…0bed00 63 72 65 6d 65 6e 74 20 27 74 69 6c 20 7a 65 72 6f 0d 0a 09 64 63 72 09 63 0d 0a 09 6a 6e 7a 09 ┆crement 'til zero dcr c jnz ┆ 0x0bed00…0bed20 72 65 77 61 69 74 09 3b 66 6f 72 20 61 6e 6f 74 68 65 72 20 74 72 79 0d 0a 3b 0d 0a 3b 09 63 61 ┆rewait ;for another try ; ; ca┆ 0x0bed20…0bed40 6e 6e 6f 74 20 72 65 63 6f 76 65 72 20 66 72 6f 6d 20 65 72 72 6f 72 0d 0a 09 6d 76 69 09 61 2c ┆nnot recover from error mvi a,┆ 0x0bed40…0bed60 31 09 3b 65 72 72 6f 72 20 63 6f 64 65 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 09 69 6e 74 79 70 65 ┆1 ;error code ret ; ; intype┆ 0x0bed60…0bed80 2c 20 69 6e 62 79 74 65 2c 20 69 6e 73 74 61 74 20 72 65 61 64 20 64 72 69 76 65 20 62 61 6e 6b ┆, inbyte, instat read drive bank┆ 0x0bed80…0beda0 20 30 30 20 6f 72 20 31 30 0d 0a 69 6e 74 79 70 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f ┆ 00 or 10 intype: lda dbank o┆ 0x0beda0…0bedc0 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 74 79 70 31 09 3b 73 6b 69 70 20 74 6f 20 62 61 6e 6b 20 ┆ra a jnz intyp1 ;skip to bank ┆ 0x0bedc0…0bede0 31 30 0d 0a 09 69 6e 09 72 74 79 70 65 0d 0a 09 72 65 74 0d 0a 69 6e 74 79 70 31 3a 09 69 6e 09 ┆10 in rtype ret intyp1: in ┆ 0x0bede0…0bee00 72 74 79 70 65 2b 31 30 68 09 3b 37 38 20 66 6f 72 20 30 2c 31 20 20 38 38 20 66 6f 72 20 32 2c ┆rtype+10h ;78 for 0,1 88 for 2,┆ 0x0bee00…0bee20 (50, 1, 13) 72 65 73 73 0d 0a 67 6f 63 70 6d 3a 09 3b 28 65 6e 74 65 72 20 68 65 72 65 20 66 72 6f 6d 20 63 ┆ress gocpm: ;(enter here from c┆ 0x0bee20…0bee40 6f 6c 64 20 73 74 61 72 74 20 62 6f 6f 74 29 0d 0a 3b 09 65 6e 61 62 6c 65 20 72 73 74 30 20 61 ┆old start boot) ; enable rst0 a┆ 0x0bee40…0bee60 6e 64 20 72 73 74 37 0d 0a 09 64 69 0d 0a 09 6d 76 69 09 61 2c 31 32 68 09 3b 69 6e 69 74 69 61 ┆nd rst7 di mvi a,12h ;initia┆ 0x0bee60…0bee80 6c 69 7a 65 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6f 75 74 09 72 65 76 72 74 0d 0a 09 78 72 61 09 61 ┆lize command out revrt xra a┆ 0x0bee80…0beea0 0d 0a 09 6f 75 74 09 69 6e 74 63 09 3b 63 6c 65 61 72 65 64 0d 0a 09 6d 76 69 09 61 2c 69 6e 74 ┆ out intc ;cleared mvi a,int┆ 0x0beea0…0beec0 65 09 3b 72 73 74 30 20 61 6e 64 20 72 73 74 37 20 62 69 74 73 20 6f 6e 0d 0a 09 6f 75 74 09 69 ┆e ;rst0 and rst7 bits on out i┆ 0x0beec0…0beee0 6e 74 63 0d 0a 09 78 72 61 09 61 0d 0a 09 6f 75 74 09 69 63 6f 6e 09 3b 69 6e 74 65 72 72 75 70 ┆ntc xra a out icon ;interrup┆ 0x0beee0…0bef00 74 20 63 6f 6e 74 72 6f 6c 0d 0a 3b 0d 0a 3b 09 73 65 74 20 64 65 66 61 75 6c 74 20 62 75 66 66 ┆t control ; ; set default buff┆ 0x0bef00…0bef20 65 72 20 61 64 64 72 65 73 73 20 74 6f 20 38 30 68 0d 0a 09 6c 78 69 09 62 2c 62 75 66 66 0d 0a ┆er address to 80h lxi b,buff ┆ 0x0bef20…0bef40 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 3b 0d 0a 3b 09 72 65 73 65 74 20 6d 6f 6e 69 74 6f 72 ┆ call setdma ; ; reset monitor┆ 0x0bef40…0bef60 20 65 6e 74 72 79 20 70 6f 69 6e 74 73 0d 0a 09 6d 76 69 09 61 2c 6a 6d 70 0d 0a 09 73 74 61 09 ┆ entry points mvi a,jmp sta ┆ 0x0bef60…0bef80 30 0d 0a 09 6c 78 69 09 68 2c 77 62 6f 6f 74 65 0d 0a 09 73 68 6c 64 09 31 09 3b 6a 6d 70 20 77 ┆0 lxi h,wboote shld 1 ;jmp w┆ 0x0bef80…0befa0 62 6f 6f 74 20 61 74 20 6c 6f 63 61 74 69 6f 6e 20 30 30 0d 0a 09 73 74 61 09 35 0d 0a 09 6c 78 ┆boot at location 00 sta 5 lx┆ 0x0befa0…0befc0 69 09 68 2c 62 64 6f 73 0d 0a 09 73 68 6c 64 09 36 09 3b 6a 6d 70 20 62 64 6f 73 20 61 74 20 6c ┆i h,bdos shld 6 ;jmp bdos at l┆ 0x0befc0…0befe0 6f 63 61 74 69 6f 6e 20 35 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 09 73 74 61 09 37 2a ┆ocation 5 if not test sta 7*┆ 0x0befe0…0bf000 38 09 3b 6a 6d 70 20 74 6f 20 6d 6f 6e 38 30 20 28 6d 61 79 20 68 61 76 65 20 62 65 65 6e 20 63 ┆8 ;jmp to mon80 (may have been c┆ 0x0bf000…0bf020 (50, 1, 14) 74 69 6f 6e 0d 0a 09 6d 6f 76 09 61 2c 6d 0d 0a 09 61 6e 69 09 31 31 30 30 31 31 31 31 62 09 3b ┆tion mov a,m ani 11001111b ;┆ 0x0bf020…0bf040 6d 61 73 6b 20 6f 75 74 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6f 72 61 09 62 09 3b 6d 61 ┆mask out disk number ora b ;ma┆ 0x0bf040…0bf060 73 6b 20 69 6e 20 6e 65 77 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6d 6f 76 09 6d 2c 61 09 ┆sk in new disk number mov m,a ┆ 0x0bf060…0bf080 3b 73 61 76 65 20 69 74 20 69 6e 20 69 6f 70 62 0d 0a 09 6d 6f 76 09 6c 2c 63 0d 0a 09 6d 76 69 ┆;save it in iopb mov l,c mvi┆ 0x0bf080…0bf0a0 09 68 2c 30 09 3b 48 4c 3d 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 64 61 64 09 68 09 3b 2a 32 ┆ h,0 ;HL=disk number dad h ;*2┆ 0x0bf0a0…0bf0c0 0d 0a 09 64 61 64 09 68 09 3b 2a 34 0d 0a 09 64 61 64 09 68 09 3b 2a 38 0d 0a 09 64 61 64 09 68 ┆ dad h ;*4 dad h ;*8 dad h┆ 0x0bf0c0…0bf0e0 09 3b 2a 31 36 0d 0a 09 6c 78 69 09 64 2c 64 70 62 61 73 65 0d 0a 09 64 61 64 09 64 09 3b 48 4c ┆ ;*16 lxi d,dpbase dad d ;HL┆ 0x0bf0e0…0bf100 3d 64 69 73 6b 20 68 65 61 64 65 72 20 74 61 62 6c 65 20 61 64 64 72 65 73 73 0d 0a 09 72 65 74 ┆=disk header table address ret┆ 0x0bf100…0bf120 0d 0a 3b 0d 0a 3b 0d 0a 73 65 74 74 72 6b 3a 09 3b 73 65 74 20 74 72 61 63 6b 20 61 64 64 72 65 ┆ ; ; settrk: ;set track addre┆ 0x0bf120…0bf140 73 73 20 67 69 76 65 6e 20 62 79 20 63 0d 0a 09 6c 78 69 09 68 2c 69 6f 74 0d 0a 09 6d 6f 76 09 ┆ss given by c lxi h,iot mov ┆ 0x0bf140…0bf160 6d 2c 63 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 73 65 74 73 65 63 3a 09 3b 73 65 74 20 73 65 63 74 6f ┆m,c ret ; setsec: ;set secto┆ 0x0bf160…0bf180 72 20 6e 75 6d 62 65 72 20 67 69 76 65 6e 20 62 79 20 63 0d 0a 09 6c 78 69 09 68 2c 69 6f 73 0d ┆r number given by c lxi h,ios ┆ 0x0bf180…0bf1a0 0a 09 6d 6f 76 09 6d 2c 63 0d 0a 09 72 65 74 0d 0a 73 65 63 74 72 61 6e 3a 0d 0a 09 09 3b 74 72 ┆ mov m,c ret sectran: ;tr┆ 0x0bf1a0…0bf1c0 61 6e 73 6c 61 74 65 20 73 65 63 74 6f 72 20 62 63 20 75 73 69 6e 67 20 74 61 62 6c 65 20 61 74 ┆anslate sector bc using table at┆ 0x0bf1c0…0bf1e0 20 64 65 0d 0a 09 6d 76 69 09 62 2c 30 09 3b 64 6f 75 62 6c 65 20 70 72 65 63 69 73 69 6f 6e 20 ┆ de mvi b,0 ;double precision ┆ 0x0bf1e0…0bf200 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 69 6e 20 42 43 0d 0a 09 78 63 68 67 09 09 3b 74 72 61 ┆sector number in BC xchg ;tra┆ 0x0bf200…0bf220 (50, 1, 15) 0a 09 6d 76 69 09 62 2c 69 6f 70 62 20 73 68 72 20 38 09 3b 68 69 67 68 20 61 64 64 72 65 73 73 ┆ mvi b,iopb shr 8 ;high address┆ 0x0bf220…0bf240 20 66 6f 72 20 69 6f 70 62 0d 0a 09 6a 6e 7a 09 69 6f 64 72 31 09 3b 64 72 69 76 65 20 62 61 6e ┆ for iopb jnz iodr1 ;drive ban┆ 0x0bf240…0bf260 6b 20 31 3f 0d 0a 09 6f 75 74 09 69 6c 6f 77 09 09 3b 6c 6f 77 20 61 64 64 72 65 73 73 20 74 6f ┆k 1? out ilow ;low address to┆ 0x0bf260…0bf280 20 63 6f 6e 74 72 6f 6c 6c 65 72 0d 0a 09 6d 6f 76 09 61 2c 62 0d 0a 09 6f 75 74 09 69 68 69 67 ┆ controller mov a,b out ihig┆ 0x0bf280…0bf2a0 68 09 3b 68 69 67 68 20 61 64 64 72 65 73 73 0d 0a 09 6a 6d 70 09 77 61 69 74 30 09 09 3b 74 6f ┆h ;high address jmp wait0 ;to┆ 0x0bf2a0…0bf2c0 20 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 65 0d 0a 3b 0d 0a 69 6f 64 72 31 3a 09 3b 64 ┆ wait for complete ; iodr1: ;d┆ 0x0bf2c0…0bf2e0 72 69 76 65 20 62 61 6e 6b 20 31 0d 0a 09 6f 75 74 09 69 6c 6f 77 2b 31 30 68 09 3b 38 38 20 66 ┆rive bank 1 out ilow+10h ;88 f┆ 0x0bf2e0…0bf300 6f 72 20 64 72 69 76 65 20 62 61 6e 6b 20 31 30 0d 0a 09 6d 6f 76 09 61 2c 62 0d 0a 09 6f 75 74 ┆or drive bank 10 mov a,b out┆ 0x0bf300…0bf320 09 69 68 69 67 68 2b 31 30 68 0d 0a 3b 0d 0a 77 61 69 74 30 3a 09 63 61 6c 6c 09 69 6e 73 74 61 ┆ ihigh+10h ; wait0: call insta┆ 0x0bf320…0bf340 74 09 09 3b 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 0d 0a 09 61 6e 69 09 69 6f ┆t ;wait for completion ani io┆ 0x0bf340…0bf360 72 64 79 09 09 3b 72 65 61 64 79 3f 0d 0a 09 6a 7a 09 77 61 69 74 30 0d 0a 3b 0d 0a 3b 09 63 68 ┆rdy ;ready? jz wait0 ; ; ch┆ 0x0bf360…0bf380 65 63 6b 20 69 6f 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 6f 6b 0d 0a 09 63 61 6c 6c 09 69 6e 74 79 ┆eck io completion ok call inty┆ 0x0bf380…0bf3a0 70 65 09 09 3b 6d 75 73 74 20 62 65 20 69 6f 20 63 6f 6d 70 6c 65 74 65 20 28 30 30 29 20 75 6e ┆pe ;must be io complete (00) un┆ 0x0bf3a0…0bf3c0 6c 69 6e 6b 65 64 0d 0a 3b 09 30 30 20 75 6e 6c 69 6e 6b 65 64 20 69 2f 6f 20 63 6f 6d 70 6c 65 ┆linked ; 00 unlinked i/o comple┆ 0x0bf3c0…0bf3e0 74 65 2c 20 20 20 20 30 31 20 6c 69 6e 6b 65 64 20 69 2f 6f 20 63 6f 6d 70 6c 65 74 65 20 28 6e ┆te, 01 linked i/o complete (n┆ 0x0bf3e0…0bf400 6f 74 20 75 73 65 64 29 0d 0a 3b 09 31 30 20 64 69 73 6b 20 73 74 61 74 75 73 20 63 68 61 6e 67 ┆ot used) ; 10 disk status chang┆ 0x0bf400…0bf420 (51, 0, 1) 33 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 69 6e 62 79 74 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 ┆3 ret ; inbyte: lda dbank ┆ 0x0bf420…0bf440 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 62 79 74 31 0d 0a 09 69 6e 09 72 62 79 74 65 0d 0a 09 ┆ora a jnz inbyt1 in rbyte ┆ 0x0bf440…0bf460 72 65 74 0d 0a 69 6e 62 79 74 31 3a 09 69 6e 09 72 62 79 74 65 2b 31 30 68 0d 0a 09 72 65 74 0d ┆ret inbyt1: in rbyte+10h ret ┆ 0x0bf460…0bf480 0a 3b 0d 0a 69 6e 73 74 61 74 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 ┆ ; instat: lda dbank ora a ┆ 0x0bf480…0bf4a0 6a 6e 7a 09 69 6e 73 74 61 31 0d 0a 09 69 6e 09 64 73 74 61 74 0d 0a 09 72 65 74 0d 0a 69 6e 73 ┆jnz insta1 in dstat ret ins┆ 0x0bf4a0…0bf4c0 74 61 31 3a 09 69 6e 09 64 73 74 61 74 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b ┆ta1: in dstat+10h ret ; ; ;┆ 0x0bf4c0…0bf4e0 0d 0a 3b 09 64 61 74 61 20 61 72 65 61 73 20 28 6d 75 73 74 20 62 65 20 69 6e 20 72 61 6d 29 0d ┆ ; data areas (must be in ram) ┆ 0x0bf4e0…0bf500 0a 64 62 61 6e 6b 3a 09 64 62 09 30 09 3b 64 69 73 6b 20 62 61 6e 6b 20 30 30 20 69 66 20 64 72 ┆ dbank: db 0 ;disk bank 00 if dr┆ 0x0bf500…0bf520 69 76 65 20 30 2c 31 0d 0a 09 09 09 3b 09 20 20 20 31 30 20 69 66 20 64 72 69 76 65 20 32 2c 33 ┆ive 0,1 ; 10 if drive 2,3┆ 0x0bf520…0bf540 0d 0a 69 6f 70 62 3a 09 3b 69 6f 20 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 0d 0a 09 64 62 ┆ iopb: ;io parameter block db┆ 0x0bf540…0bf560 09 38 30 68 09 3b 6e 6f 72 6d 61 6c 20 69 2f 6f 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 69 6f 66 3a ┆ 80h ;normal i/o operation iof:┆ 0x0bf560…0bf580 09 64 62 09 72 65 61 64 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 2c 20 69 6e 69 74 69 61 6c 20 ┆ db readf ;io function, initial ┆ 0x0bf580…0bf5a0 72 65 61 64 0d 0a 69 6f 6e 3a 09 64 62 09 31 09 3b 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f ┆read ion: db 1 ;number of secto┆ 0x0bf5a0…0bf5c0 72 73 20 74 6f 20 72 65 61 64 0d 0a 69 6f 74 3a 09 64 62 09 6f 66 66 73 65 74 09 3b 74 72 61 63 ┆rs to read iot: db offset ;trac┆ 0x0bf5c0…0bf5e0 6b 20 6e 75 6d 62 65 72 0d 0a 69 6f 73 3a 09 64 62 09 31 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 ┆k number ios: db 1 ;sector numb┆ 0x0bf5e0…0bf600 65 72 0d 0a 69 6f 64 3a 09 64 77 09 62 75 66 66 09 3b 69 6f 20 61 64 64 72 65 73 73 0d 0a 3b 0d ┆er iod: dw buff ;io address ; ┆ 0x0bf600…0bf620 (51, 0, 2) 64 73 20 61 6e 64 20 77 72 69 74 65 73 29 0d 0a 3b 09 73 65 6c 64 73 6b 09 73 65 6c 65 63 74 20 ┆ds and writes) ; seldsk select ┆ 0x0bf620…0bf640 64 69 73 6b 20 67 69 76 65 6e 20 62 79 20 72 65 67 2d 63 20 28 30 2c 31 2c 32 2e 2e 2e 29 0d 0a ┆disk given by reg-c (0,1,2...) ┆ 0x0bf640…0bf660 3b 09 73 65 74 74 72 6b 09 73 65 74 20 74 72 61 63 6b 20 61 64 64 72 65 73 73 20 28 30 2c 2e 2e ┆; settrk set track address (0,..┆ 0x0bf660…0bf680 2e 37 36 29 20 66 6f 72 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 2f 77 72 69 74 65 0d 0a ┆.76) for subsequent read/write ┆ 0x0bf680…0bf6a0 3b 09 73 65 74 73 65 63 09 73 65 74 20 73 65 63 74 6f 72 20 61 64 64 72 65 73 73 20 28 31 2c 2e ┆; setsec set sector address (1,.┆ 0x0bf6a0…0bf6c0 2e 2e 2c 32 36 29 20 66 6f 72 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 2f 77 72 69 74 65 ┆..,26) for subsequent read/write┆ 0x0bf6c0…0bf6e0 0d 0a 3b 09 73 65 74 64 6d 61 09 73 65 74 20 73 75 62 73 65 71 75 65 6e 74 20 64 6d 61 20 61 64 ┆ ; setdma set subsequent dma ad┆ 0x0bf6e0…0bf700 64 72 65 73 73 20 28 69 6e 69 74 69 61 6c 6c 79 20 38 30 68 29 0d 0a 3b 0d 0a 3b 09 28 72 65 61 ┆dress (initially 80h) ; ; (rea┆ 0x0bf700…0bf720 64 20 61 6e 64 20 77 72 69 74 65 20 61 73 73 75 6d 65 20 70 72 65 76 69 6f 75 73 20 63 61 6c 6c ┆d and write assume previous call┆ 0x0bf720…0bf740 73 20 74 6f 20 73 65 74 20 75 70 20 74 68 65 20 69 6f 20 70 61 72 61 6d 65 74 65 72 73 29 0d 0a ┆s to set up the io parameters) ┆ 0x0bf740…0bf760 3b 09 72 65 61 64 09 72 65 61 64 20 74 72 61 63 6b 2f 73 65 63 74 6f 72 20 74 6f 20 70 72 65 73 ┆; read read track/sector to pres┆ 0x0bf760…0bf780 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 3b 09 77 72 69 74 65 09 77 72 69 74 65 20 74 72 ┆et dma address ; write write tr┆ 0x0bf780…0bf7a0 61 63 6b 2f 73 65 63 74 6f 72 20 66 72 6f 6d 20 70 72 65 73 65 74 20 64 6d 61 20 61 64 64 72 65 ┆ack/sector from preset dma addre┆ 0x0bf7a0…0bf7c0 73 73 0d 0a 3b 0d 0a 3b 09 6a 75 6d 70 20 76 65 63 74 6f 72 20 66 6f 72 20 69 6e 64 69 76 69 75 ┆ss ; ; jump vector for indiviu┆ 0x0bf7c0…0bf7e0 61 6c 20 72 6f 75 74 69 6e 65 73 0d 0a 09 6a 6d 70 09 62 6f 6f 74 0d 0a 77 62 6f 6f 74 65 3a 09 ┆al routines jmp boot wboote: ┆ 0x0bf7e0…0bf800 6a 6d 70 09 77 62 6f 6f 74 0d 0a 09 6a 6d 70 09 63 6f 6e 73 74 0d 0a 09 6a 6d 70 09 63 6f 6e 69 ┆jmp wboot jmp const jmp coni┆ 0x0bf800…0bf820 (51, 0, 3) 0d 0a 69 68 69 67 68 09 65 71 75 09 62 61 73 65 2b 32 09 3b 69 6f 70 62 20 68 69 67 68 20 61 64 ┆ ihigh equ base+2 ;iopb high ad┆ 0x0bf820…0bf840 64 72 65 73 73 20 28 6f 75 74 70 75 74 29 0d 0a 3b 0d 0a 72 65 61 64 66 09 65 71 75 09 34 68 09 ┆dress (output) ; readf equ 4h ┆ 0x0bf840…0bf860 3b 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 77 72 69 74 66 09 65 71 75 09 36 68 09 3b 77 72 ┆;read function writf equ 6h ;wr┆ 0x0bf860…0bf880 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 72 65 63 61 6c 09 65 71 75 09 33 68 09 3b 72 65 63 61 ┆ite function recal equ 3h ;reca┆ 0x0bf880…0bf8a0 6c 69 62 72 61 74 65 20 64 72 69 76 65 0d 0a 69 6f 72 64 79 09 65 71 75 09 34 68 09 3b 69 2f 6f ┆librate drive iordy equ 4h ;i/o┆ 0x0bf8a0…0bf8c0 20 66 69 6e 69 73 68 65 64 20 6d 61 73 6b 0d 0a 63 72 09 65 71 75 09 30 64 68 09 3b 63 61 72 72 ┆ finished mask cr equ 0dh ;carr┆ 0x0bf8c0…0bf8e0 69 61 67 65 20 72 65 74 75 72 6e 0d 0a 6c 66 09 65 71 75 09 30 61 68 09 3b 6c 69 6e 65 20 66 65 ┆iage return lf equ 0ah ;line fe┆ 0x0bf8e0…0bf900 65 64 0d 0a 3b 0d 0a 73 69 67 6e 6f 6e 3a 09 3b 73 69 67 6e 6f 6e 20 6d 65 73 73 61 67 65 3a 20 ┆ed ; signon: ;signon message: ┆ 0x0bf900…0bf920 78 78 6b 20 63 70 2f 6d 20 76 65 72 73 20 79 2e 79 0d 0a 09 64 62 09 63 72 2c 6c 66 2c 6c 66 0d ┆xxk cp/m vers y.y db cr,lf,lf ┆ 0x0bf920…0bf940 0a 09 69 66 09 74 65 73 74 0d 0a 09 64 62 09 27 33 32 27 09 3b 33 32 6b 20 65 78 61 6d 70 6c 65 ┆ if test db '32' ;32k example┆ 0x0bf940…0bf960 20 62 69 6f 73 0d 0a 09 65 6e 64 69 66 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 09 64 62 ┆ bios endif if not test db┆ 0x0bf960…0bf980 09 27 30 30 27 09 3b 6d 65 6d 6f 72 79 20 73 69 7a 65 20 66 69 6c 6c 65 64 20 62 79 20 72 65 6c ┆ '00' ;memory size filled by rel┆ 0x0bf980…0bf9a0 6f 63 61 74 6f 72 0d 0a 09 65 6e 64 69 66 0d 0a 09 64 62 09 27 6b 20 43 50 2f 4d 20 76 65 72 73 ┆ocator endif db 'k CP/M vers┆ 0x0bf9a0…0bf9c0 20 27 0d 0a 09 64 62 09 76 65 72 73 2f 31 30 2b 27 30 27 2c 27 2e 27 2c 76 65 72 73 20 6d 6f 64 ┆ ' db vers/10+'0','.',vers mod┆ 0x0bf9c0…0bf9e0 20 31 30 2b 27 30 27 0d 0a 09 64 62 09 63 72 2c 6c 66 2c 30 0d 0a 3b 0d 0a 62 6f 6f 74 3a 09 3b ┆ 10+'0' db cr,lf,0 ; boot: ;┆ 0x0bf9e0…0bfa00 70 72 69 6e 74 20 73 69 67 6e 6f 6e 20 6d 65 73 73 61 67 65 20 61 6e 64 20 67 6f 20 74 6f 20 63 ┆print signon message and go to c┆ 0x0bfa00…0bfa20 (51, 0, 4) 6e 69 74 69 61 6c 69 7a 65 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6f 75 74 09 72 65 76 72 74 0d 0a 09 ┆nitialize command out revrt ┆ 0x0bfa20…0bfa40 78 72 61 09 61 0d 0a 09 6f 75 74 09 69 6e 74 63 09 3b 63 6c 65 61 72 65 64 0d 0a 09 6d 76 69 09 ┆xra a out intc ;cleared mvi ┆ 0x0bfa40…0bfa60 61 2c 69 6e 74 65 09 3b 72 73 74 30 20 61 6e 64 20 72 73 74 37 20 62 69 74 73 20 6f 6e 0d 0a 09 ┆a,inte ;rst0 and rst7 bits on ┆ 0x0bfa60…0bfa80 6f 75 74 09 69 6e 74 63 0d 0a 09 78 72 61 09 61 0d 0a 09 6f 75 74 09 69 63 6f 6e 09 3b 69 6e 74 ┆out intc xra a out icon ;int┆ 0x0bfa80…0bfaa0 65 72 72 75 70 74 20 63 6f 6e 74 72 6f 6c 0d 0a 3b 0d 0a 3b 09 73 65 74 20 64 65 66 61 75 6c 74 ┆errupt control ; ; set default┆ 0x0bfaa0…0bfac0 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 20 74 6f 20 38 30 68 0d 0a 09 6c 78 69 09 62 2c 62 ┆ buffer address to 80h lxi b,b┆ 0x0bfac0…0bfae0 75 66 66 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 3b 0d 0a 3b 09 72 65 73 65 74 20 6d 6f ┆uff call setdma ; ; reset mo┆ 0x0bfae0…0bfb00 6e 69 74 6f 72 20 65 6e 74 72 79 20 70 6f 69 6e 74 73 0d 0a 09 6d 76 69 09 61 2c 6a 6d 70 0d 0a ┆nitor entry points mvi a,jmp ┆ 0x0bfb00…0bfb20 09 73 74 61 09 30 0d 0a 09 6c 78 69 09 68 2c 77 62 6f 6f 74 65 0d 0a 09 73 68 6c 64 09 31 09 3b ┆ sta 0 lxi h,wboote shld 1 ;┆ 0x0bfb20…0bfb40 6a 6d 70 20 77 62 6f 6f 74 20 61 74 20 6c 6f 63 61 74 69 6f 6e 20 30 30 0d 0a 09 73 74 61 09 35 ┆jmp wboot at location 00 sta 5┆ 0x0bfb40…0bfb60 0d 0a 09 6c 78 69 09 68 2c 62 64 6f 73 0d 0a 09 73 68 6c 64 09 36 09 3b 6a 6d 70 20 62 64 6f 73 ┆ lxi h,bdos shld 6 ;jmp bdos┆ 0x0bfb60…0bfb80 20 61 74 20 6c 6f 63 61 74 69 6f 6e 20 35 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 09 73 ┆ at location 5 if not test s┆ 0x0bfb80…0bfba0 74 61 09 37 2a 38 09 3b 6a 6d 70 20 74 6f 20 6d 6f 6e 38 30 20 28 6d 61 79 20 68 61 76 65 20 62 ┆ta 7*8 ;jmp to mon80 (may have b┆ 0x0bfba0…0bfbc0 65 65 6e 20 63 68 61 6e 67 65 64 20 62 79 20 64 64 74 29 0d 0a 09 6c 78 69 09 68 2c 6d 6f 6e 38 ┆een changed by ddt) lxi h,mon8┆ 0x0bfbc0…0bfbe0 30 0d 0a 09 73 68 6c 64 09 37 2a 38 2b 31 0d 0a 09 65 6e 64 69 66 0d 0a 3b 09 6c 65 61 76 65 20 ┆0 shld 7*8+1 endif ; leave ┆ 0x0bfbe0…0bfc00 69 6f 62 79 74 65 20 73 65 74 0d 0a 3b 09 70 72 65 76 69 6f 75 73 6c 79 20 73 65 6c 65 63 74 65 ┆iobyte set ; previously selecte┆ 0x0bfc00…0bfc20 (51, 0, 5) 0a 3b 0d 0a 3b 09 64 65 66 69 6e 65 20 72 61 6d 20 61 72 65 61 73 20 66 6f 72 20 62 64 6f 73 20 ┆ ; ; define ram areas for bdos ┆ 0x0bfc20…0bfc40 6f 70 65 72 61 74 69 6f 6e 0d 0a 09 65 6e 64 65 66 0d 0a 09 65 6e 64 0d 0a 3b 09 4d 44 53 2d 38 ┆operation endef end ; MDS-8┆ 0x0bfc40…0bfc60 30 30 20 49 2f 4f 20 44 72 69 76 65 72 73 20 66 6f 72 20 43 50 2f 4d 20 32 2e 32 0d 0a 3b 09 28 ┆00 I/O Drivers for CP/M 2.2 ; (┆ 0x0bfc60…0bfc80 66 6f 75 72 20 64 72 69 76 65 20 73 69 6e 67 6c 65 20 64 65 6e 73 69 74 79 20 76 65 72 73 69 6f ┆four drive single density versio┆ 0x0bfc80…0bfca0 6e 29 0d 0a 3b 0d 0a 3b 09 56 65 72 73 69 6f 6e 20 32 2e 32 20 46 65 62 72 75 61 72 79 2c 20 31 ┆n) ; ; Version 2.2 February, 1┆ 0x0bfca0…0bfcc0 39 38 30 0d 0a 3b 0d 0a 76 65 72 73 09 65 71 75 09 32 32 09 3b 76 65 72 73 69 6f 6e 20 32 2e 32 ┆980 ; vers equ 22 ;version 2.2┆ 0x0bfcc0…0bfce0 0d 0a 3b 0d 0a 3b 09 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 39 38 30 0d 0a 3b 09 44 69 67 ┆ ; ; Copyright (c) 1980 ; Dig┆ 0x0bfce0…0bfd00 69 74 61 6c 20 52 65 73 65 61 72 63 68 0d 0a 3b 09 42 6f 78 20 35 37 39 2c 20 50 61 63 69 66 69 ┆ital Research ; Box 579, Pacifi┆ 0x0bfd00…0bfd20 63 20 47 72 6f 76 65 0d 0a 3b 09 43 61 6c 69 66 6f 72 6e 69 61 2c 20 39 33 39 35 30 0d 0a 3b 0d ┆c Grove ; California, 93950 ; ┆ 0x0bfd20…0bfd40 0a 3b 0d 0a 74 72 75 65 09 65 71 75 09 30 66 66 66 66 68 09 3b 76 61 6c 75 65 20 6f 66 20 22 74 ┆ ; true equ 0ffffh ;value of "t┆ 0x0bfd40…0bfd60 72 75 65 22 0d 0a 66 61 6c 73 65 09 65 71 75 09 6e 6f 74 20 74 72 75 65 09 3b 22 66 61 6c 73 65 ┆rue" false equ not true ;"false┆ 0x0bfd60…0bfd80 22 0d 0a 74 65 73 74 09 65 71 75 09 66 61 6c 73 65 09 3b 74 72 75 65 20 69 66 20 74 65 73 74 20 ┆" test equ false ;true if test ┆ 0x0bfd80…0bfda0 62 69 6f 73 0d 0a 3b 0d 0a 09 69 66 09 74 65 73 74 0d 0a 62 69 61 73 09 65 71 75 09 30 33 34 30 ┆bios ; if test bias equ 0340┆ 0x0bfda0…0bfdc0 30 68 09 3b 62 61 73 65 20 6f 66 20 43 43 50 20 69 6e 20 74 65 73 74 20 73 79 73 74 65 6d 0d 0a ┆0h ;base of CCP in test system ┆ 0x0bfdc0…0bfde0 09 65 6e 64 69 66 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 62 69 61 73 09 65 71 75 09 30 ┆ endif if not test bias equ 0┆ 0x0bfde0…0bfe00 30 30 30 68 09 3b 67 65 6e 65 72 61 74 65 20 72 65 6c 6f 63 61 74 61 62 6c 65 20 63 70 2f 6d 20 ┆000h ;generate relocatable cp/m ┆ 0x0bfe00…0bfe20 (51, 0, 6) 6e 0d 0a 09 6a 6d 70 09 63 6f 6e 6f 75 74 0d 0a 09 6a 6d 70 09 6c 69 73 74 0d 0a 09 6a 6d 70 09 ┆n jmp conout jmp list jmp ┆ 0x0bfe20…0bfe40 70 75 6e 63 68 0d 0a 09 6a 6d 70 09 72 65 61 64 65 72 0d 0a 09 6a 6d 70 09 68 6f 6d 65 0d 0a 09 ┆punch jmp reader jmp home ┆ 0x0bfe40…0bfe60 6a 6d 70 09 73 65 6c 64 73 6b 0d 0a 09 6a 6d 70 09 73 65 74 74 72 6b 0d 0a 09 6a 6d 70 09 73 65 ┆jmp seldsk jmp settrk jmp se┆ 0x0bfe60…0bfe80 74 73 65 63 0d 0a 09 6a 6d 70 09 73 65 74 64 6d 61 0d 0a 09 6a 6d 70 09 72 65 61 64 0d 0a 09 6a ┆tsec jmp setdma jmp read j┆ 0x0bfe80…0bfea0 6d 70 09 77 72 69 74 65 0d 0a 09 6a 6d 70 09 6c 69 73 74 73 74 09 3b 6c 69 73 74 20 73 74 61 74 ┆mp write jmp listst ;list stat┆ 0x0bfea0…0bfec0 75 73 0d 0a 09 6a 6d 70 09 73 65 63 74 72 61 6e 0d 0a 3b 0d 0a 09 6d 61 63 6c 69 62 09 64 69 73 ┆us jmp sectran ; maclib dis┆ 0x0bfec0…0bfee0 6b 64 65 66 09 3b 6c 6f 61 64 20 74 68 65 20 64 69 73 6b 20 64 65 66 69 6e 69 74 69 6f 6e 20 6c ┆kdef ;load the disk definition l┆ 0x0bfee0…0bff00 69 62 72 61 72 79 0d 0a 09 64 69 73 6b 73 09 34 09 3b 66 6f 75 72 20 64 69 73 6b 73 0d 0a 09 64 ┆ibrary disks 4 ;four disks d┆ 0x0bff00…0bff20 69 73 6b 64 65 66 09 30 2c 31 2c 32 36 2c 36 2c 31 30 32 34 2c 32 34 33 2c 36 34 2c 36 34 2c 6f ┆iskdef 0,1,26,6,1024,243,64,64,o┆ 0x0bff20…0bff40 66 66 73 65 74 0d 0a 09 64 69 73 6b 64 65 66 09 31 2c 30 0d 0a 09 64 69 73 6b 64 65 66 09 32 2c ┆ffset diskdef 1,0 diskdef 2,┆ 0x0bff40…0bff60 30 0d 0a 09 64 69 73 6b 64 65 66 09 33 2c 30 0d 0a 3b 09 65 6e 64 65 66 20 6f 63 63 75 72 73 20 ┆0 diskdef 3,0 ; endef occurs ┆ 0x0bff60…0bff80 61 74 20 65 6e 64 20 6f 66 20 61 73 73 65 6d 62 6c 79 0d 0a 3b 0d 0a 3b 09 65 6e 64 20 6f 66 20 ┆at end of assembly ; ; end of ┆ 0x0bff80…0bffa0 63 6f 6e 74 72 6f 6c 6c 65 72 20 2d 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 63 6f 64 65 2c 20 74 ┆controller - independent code, t┆ 0x0bffa0…0bffc0 68 65 20 72 65 6d 61 69 6e 69 6e 67 20 73 75 62 72 6f 75 74 69 6e 65 73 0d 0a 3b 09 61 72 65 20 ┆he remaining subroutines ; are ┆ 0x0bffc0…0bffe0 74 61 69 6c 6f 72 65 64 20 74 6f 20 74 68 65 20 70 61 72 74 69 63 75 6c 61 72 20 6f 70 65 72 61 ┆tailored to the particular opera┆ 0x0bffe0…0c0000 74 69 6e 67 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 2c 20 61 6e 64 20 6d 75 73 74 0d 0a 3b 09 62 65 ┆ting environment, and must ; be┆ 0x0c0000…0c0020 (51, 0, 7) 63 70 0d 0a 3b 09 28 6e 6f 74 65 3a 20 6d 64 73 20 62 6f 6f 74 20 69 6e 69 74 69 61 6c 69 7a 65 ┆cp ; (note: mds boot initialize┆ 0x0c0020…0c0040 64 20 69 6f 62 79 74 65 20 61 74 20 30 30 30 33 68 29 0d 0a 09 6c 78 69 09 73 70 2c 62 75 66 66 ┆d iobyte at 0003h) lxi sp,buff┆ 0x0c0040…0c0060 2b 38 30 68 0d 0a 09 6c 78 69 09 68 2c 73 69 67 6e 6f 6e 0d 0a 09 63 61 6c 6c 09 70 72 6d 73 67 ┆+80h lxi h,signon call prmsg┆ 0x0c0060…0c0080 09 3b 70 72 69 6e 74 20 6d 65 73 73 61 67 65 0d 0a 09 78 72 61 09 61 09 3b 63 6c 65 61 72 20 61 ┆ ;print message xra a ;clear a┆ 0x0c0080…0c00a0 63 63 75 6d 75 6c 61 74 6f 72 0d 0a 09 73 74 61 09 63 64 69 73 6b 09 3b 73 65 74 20 69 6e 69 74 ┆ccumulator sta cdisk ;set init┆ 0x0c00a0…0c00c0 69 61 6c 6c 79 20 74 6f 20 64 69 73 6b 20 61 0d 0a 09 6a 6d 70 09 67 6f 63 70 6d 09 3b 67 6f 20 ┆ially to disk a jmp gocpm ;go ┆ 0x0c00c0…0c00e0 74 6f 20 63 70 2f 6d 0d 0a 3b 0d 0a 3b 0d 0a 77 62 6f 6f 74 3a 3b 09 6c 6f 61 64 65 72 20 6f 6e ┆to cp/m ; ; wboot:; loader on┆ 0x0c00e0…0c0100 20 74 72 61 63 6b 20 30 2c 20 73 65 63 74 6f 72 20 31 2c 20 77 68 69 63 68 20 77 69 6c 6c 20 62 ┆ track 0, sector 1, which will b┆ 0x0c0100…0c0120 65 20 73 6b 69 70 70 65 64 20 66 6f 72 20 77 61 72 6d 20 0d 0a 3b 09 72 65 61 64 20 63 70 2f 6d ┆e skipped for warm ; read cp/m┆ 0x0c0120…0c0140 20 66 72 6f 6d 20 64 69 73 6b 20 2d 20 61 73 73 75 6d 69 6e 67 20 74 68 65 72 65 20 69 73 20 61 ┆ from disk - assuming there is a┆ 0x0c0140…0c0160 20 31 32 38 20 62 79 74 65 20 63 6f 6c 64 20 73 74 61 72 74 0d 0a 3b 09 73 74 61 72 74 2e 0d 0a ┆ 128 byte cold start ; start. ┆ 0x0c0160…0c0180 3b 0d 0a 09 6c 78 69 09 73 70 2c 62 75 66 66 09 3b 75 73 69 6e 67 20 64 6d 61 20 2d 20 74 68 75 ┆; lxi sp,buff ;using dma - thu┆ 0x0c0180…0c01a0 73 20 38 30 20 74 68 72 75 20 66 66 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 73 74 61 63 6b ┆s 80 thru ff available for stack┆ 0x0c01a0…0c01c0 0d 0a 3b 0d 0a 09 6d 76 69 09 63 2c 72 65 74 72 79 09 3b 6d 61 78 20 72 65 74 72 69 65 73 0d 0a ┆ ; mvi c,retry ;max retries ┆ 0x0c01c0…0c01e0 09 70 75 73 68 09 62 0d 0a 77 62 6f 6f 74 30 3a 09 3b 65 6e 74 65 72 20 68 65 72 65 20 6f 6e 20 ┆ push b wboot0: ;enter here on ┆ 0x0c01e0…0c0200 65 72 72 6f 72 20 72 65 74 72 69 65 73 0d 0a 09 6c 78 69 09 62 2c 63 70 6d 62 09 3b 73 65 74 20 ┆error retries lxi b,cpmb ;set ┆ 0x0c0200…0c0220 (51, 0, 8) 64 20 64 69 73 6b 20 77 61 73 20 62 2c 20 73 65 6e 64 20 70 61 72 61 6d 65 74 65 72 20 74 6f 20 ┆d disk was b, send parameter to ┆ 0x0c0220…0c0240 63 70 6d 0d 0a 09 6c 64 61 09 63 64 69 73 6b 09 3b 6c 61 73 74 20 6c 6f 67 67 65 64 20 64 69 73 ┆cpm lda cdisk ;last logged dis┆ 0x0c0240…0c0260 6b 20 6e 75 6d 62 65 72 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 73 65 6e 64 20 74 6f 20 63 63 70 20 ┆k number mov c,a ;send to ccp ┆ 0x0c0260…0c0280 74 6f 20 6c 6f 67 20 69 74 20 69 6e 0d 0a 09 65 69 0d 0a 09 6a 6d 70 09 63 70 6d 62 0d 0a 3b 0d ┆to log it in ei jmp cpmb ; ┆ 0x0c0280…0c02a0 0a 3b 09 65 72 72 6f 72 20 63 6f 6e 64 69 74 69 6f 6e 20 6f 63 63 75 72 72 65 64 2c 20 70 72 69 ┆ ; error condition occurred, pri┆ 0x0c02a0…0c02c0 6e 74 20 6d 65 73 73 61 67 65 20 61 6e 64 20 72 65 74 72 79 0d 0a 62 6f 6f 74 65 72 72 3a 0d 0a ┆nt message and retry booterr: ┆ 0x0c02c0…0c02e0 09 70 6f 70 09 62 09 3b 72 65 63 61 6c 6c 20 63 6f 75 6e 74 73 0d 0a 09 64 63 72 09 63 0d 0a 09 ┆ pop b ;recall counts dcr c ┆ 0x0c02e0…0c0300 6a 7a 09 62 6f 6f 74 65 72 30 0d 0a 3b 09 74 72 79 20 61 67 61 69 6e 0d 0a 09 70 75 73 68 09 62 ┆jz booter0 ; try again push b┆ 0x0c0300…0c0320 0d 0a 09 6a 6d 70 09 77 62 6f 6f 74 30 0d 0a 3b 0d 0a 62 6f 6f 74 65 72 30 3a 0d 0a 3b 09 6f 74 ┆ jmp wboot0 ; booter0: ; ot┆ 0x0c0320…0c0340 68 65 72 77 69 73 65 20 74 6f 6f 20 6d 61 6e 79 20 72 65 74 72 69 65 73 0d 0a 09 6c 78 69 09 68 ┆herwise too many retries lxi h┆ 0x0c0340…0c0360 2c 62 6f 6f 74 6d 73 67 0d 0a 09 63 61 6c 6c 09 70 72 6d 73 67 0d 0a 09 6a 6d 70 09 72 6d 6f 6e ┆,bootmsg call prmsg jmp rmon┆ 0x0c0360…0c0380 38 30 09 3b 6d 64 73 20 68 61 72 64 77 61 72 65 20 6d 6f 6e 69 74 6f 72 0d 0a 3b 0d 0a 62 6f 6f ┆80 ;mds hardware monitor ; boo┆ 0x0c0380…0c03a0 74 6d 73 67 3a 0d 0a 09 64 62 09 27 3f 62 6f 6f 74 27 2c 30 0d 0a 3b 0d 0a 3b 0d 0a 63 6f 6e 73 ┆tmsg: db '?boot',0 ; ; cons┆ 0x0c03a0…0c03c0 74 3a 09 3b 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 20 74 6f 20 72 65 67 2d 61 0d 0a 3b 09 28 ┆t: ;console status to reg-a ; (┆ 0x0c03c0…0c03e0 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 ┆exactly the same as mds call) ┆ 0x0c03e0…0c0400 6a 6d 70 09 63 73 74 73 0d 0a 3b 0d 0a 63 6f 6e 69 6e 3a 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 ┆jmp csts ; conin: ;console cha┆ 0x0c0400…0c0420 (51, 0, 9) 73 79 73 74 65 6d 0d 0a 09 65 6e 64 69 66 0d 0a 3b 0d 0a 70 61 74 63 68 09 65 71 75 09 31 36 30 ┆system endif ; patch equ 160┆ 0x0c0420…0c0440 30 68 0d 0a 3b 0d 0a 09 6f 72 67 09 70 61 74 63 68 0d 0a 63 70 6d 62 09 65 71 75 09 24 2d 70 61 ┆0h ; org patch cpmb equ $-pa┆ 0x0c0440…0c0460 74 63 68 09 3b 62 61 73 65 20 6f 66 20 63 70 6d 20 63 6f 6e 73 6f 6c 65 20 70 72 6f 63 65 73 73 ┆tch ;base of cpm console process┆ 0x0c0460…0c0480 6f 72 0d 0a 62 64 6f 73 09 65 71 75 09 38 30 36 68 2b 63 70 6d 62 09 3b 62 61 73 69 63 20 64 6f ┆or bdos equ 806h+cpmb ;basic do┆ 0x0c0480…0c04a0 73 20 28 72 65 73 69 64 65 6e 74 20 70 6f 72 74 69 6f 6e 29 0d 0a 63 70 6d 6c 09 65 71 75 09 24 ┆s (resident portion) cpml equ $┆ 0x0c04a0…0c04c0 2d 63 70 6d 62 09 3b 6c 65 6e 67 74 68 20 28 69 6e 20 62 79 74 65 73 29 20 6f 66 20 63 70 6d 20 ┆-cpmb ;length (in bytes) of cpm ┆ 0x0c04c0…0c04e0 73 79 73 74 65 6d 0d 0a 6e 73 65 63 74 73 09 65 71 75 09 63 70 6d 6c 2f 31 32 38 09 3b 6e 75 6d ┆system nsects equ cpml/128 ;num┆ 0x0c04e0…0c0500 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 20 74 6f 20 6c 6f 61 64 0d 0a 6f 66 66 73 65 74 09 65 ┆ber of sectors to load offset e┆ 0x0c0500…0c0520 71 75 09 32 09 3b 6e 75 6d 62 65 72 20 6f 66 20 64 69 73 6b 20 74 72 61 63 6b 73 20 75 73 65 64 ┆qu 2 ;number of disk tracks used┆ 0x0c0520…0c0540 20 62 79 20 63 70 2f 6d 0d 0a 63 64 69 73 6b 09 65 71 75 09 30 30 30 34 68 09 3b 61 64 64 72 65 ┆ by cp/m cdisk equ 0004h ;addre┆ 0x0c0540…0c0560 73 73 20 6f 66 20 6c 61 73 74 20 6c 6f 67 67 65 64 20 64 69 73 6b 20 6f 6e 20 77 61 72 6d 20 73 ┆ss of last logged disk on warm s┆ 0x0c0560…0c0580 74 61 72 74 0d 0a 62 75 66 66 09 65 71 75 09 30 30 38 30 68 09 3b 64 65 66 61 75 6c 74 20 62 75 ┆tart buff equ 0080h ;default bu┆ 0x0c0580…0c05a0 66 66 65 72 20 61 64 64 72 65 73 73 0d 0a 72 65 74 72 79 09 65 71 75 09 31 30 09 3b 6d 61 78 20 ┆ffer address retry equ 10 ;max ┆ 0x0c05a0…0c05c0 72 65 74 72 69 65 73 20 6f 6e 20 64 69 73 6b 20 69 2f 6f 20 62 65 66 6f 72 65 20 65 72 72 6f 72 ┆retries on disk i/o before error┆ 0x0c05c0…0c05e0 0d 0a 3b 0d 0a 3b 09 70 65 72 66 6f 72 6d 20 66 6f 6c 6c 6f 77 69 6e 67 20 66 75 6e 63 74 69 6f ┆ ; ; perform following functio┆ 0x0c05e0…0c0600 6e 73 0d 0a 3b 09 62 6f 6f 74 09 63 6f 6c 64 20 73 74 61 72 74 0d 0a 3b 09 77 62 6f 6f 74 09 77 ┆ns ; boot cold start ; wboot w┆ 0x0c0600…0c0620 (51, 0, 10) 20 61 6c 74 65 72 65 64 20 66 6f 72 20 61 6e 79 20 73 79 73 74 65 6d 20 77 68 69 63 68 20 64 69 ┆ altered for any system which di┆ 0x0c0620…0c0640 66 66 65 72 73 20 66 72 6f 6d 20 74 68 65 20 69 6e 74 65 6c 20 6d 64 73 2e 0d 0a 3b 0d 0a 3b 09 ┆ffers from the intel mds. ; ; ┆ 0x0c0640…0c0660 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 64 65 20 61 73 73 75 6d 65 73 20 74 68 65 20 6d ┆the following code assumes the m┆ 0x0c0660…0c0680 64 73 20 6d 6f 6e 69 74 6f 72 20 65 78 69 73 74 73 20 61 74 20 30 66 38 30 30 68 0d 0a 3b 09 61 ┆ds monitor exists at 0f800h ; a┆ 0x0c0680…0c06a0 6e 64 20 75 73 65 73 20 74 68 65 20 69 2f 6f 20 73 75 62 72 6f 75 74 69 6e 65 73 20 77 69 74 68 ┆nd uses the i/o subroutines with┆ 0x0c06a0…0c06c0 69 6e 20 74 68 65 20 6d 6f 6e 69 74 6f 72 0d 0a 3b 0d 0a 3b 09 77 65 20 61 6c 73 6f 20 61 73 73 ┆in the monitor ; ; we also ass┆ 0x0c06c0…0c06e0 75 6d 65 20 74 68 65 20 6d 64 73 20 73 79 73 74 65 6d 20 68 61 73 20 66 6f 75 72 20 64 69 73 6b ┆ume the mds system has four disk┆ 0x0c06e0…0c0700 20 64 72 69 76 65 73 0d 0a 72 65 76 72 74 09 65 71 75 09 30 66 64 68 09 3b 69 6e 74 65 72 72 75 ┆ drives revrt equ 0fdh ;interru┆ 0x0c0700…0c0720 70 74 20 72 65 76 65 72 74 20 70 6f 72 74 0d 0a 69 6e 74 63 09 65 71 75 09 30 66 63 68 09 3b 69 ┆pt revert port intc equ 0fch ;i┆ 0x0c0720…0c0740 6e 74 65 72 72 75 70 74 20 6d 61 73 6b 20 70 6f 72 74 0d 0a 69 63 6f 6e 09 65 71 75 09 30 66 33 ┆nterrupt mask port icon equ 0f3┆ 0x0c0740…0c0760 68 09 3b 69 6e 74 65 72 72 75 70 74 20 63 6f 6e 74 72 6f 6c 20 70 6f 72 74 0d 0a 69 6e 74 65 09 ┆h ;interrupt control port inte ┆ 0x0c0760…0c0780 65 71 75 09 30 31 31 31 24 31 31 31 30 62 09 3b 65 6e 61 62 6c 65 20 72 73 74 20 30 28 77 61 72 ┆equ 0111$1110b ;enable rst 0(war┆ 0x0c0780…0c07a0 6d 20 62 6f 6f 74 29 2c 20 72 73 74 20 37 20 28 6d 6f 6e 69 74 6f 72 29 0d 0a 3b 0d 0a 3b 09 6d ┆m boot), rst 7 (monitor) ; ; m┆ 0x0c07a0…0c07c0 64 73 20 6d 6f 6e 69 74 6f 72 20 65 71 75 61 74 65 73 0d 0a 6d 6f 6e 38 30 09 65 71 75 09 30 66 ┆ds monitor equates mon80 equ 0f┆ 0x0c07c0…0c07e0 38 30 30 68 09 3b 6d 64 73 20 6d 6f 6e 69 74 6f 72 0d 0a 72 6d 6f 6e 38 30 09 65 71 75 09 30 66 ┆800h ;mds monitor rmon80 equ 0f┆ 0x0c07e0…0c0800 66 30 66 68 09 3b 72 65 73 74 61 72 74 20 6d 6f 6e 38 30 20 28 62 6f 6f 74 20 65 72 72 6f 72 29 ┆f0fh ;restart mon80 (boot error)┆ 0x0c0800…0c0820 (51, 0, 11) 64 6d 61 20 61 64 64 72 65 73 73 20 74 6f 20 73 74 61 72 74 20 6f 66 20 64 69 73 6b 20 73 79 73 ┆dma address to start of disk sys┆ 0x0c0820…0c0840 74 65 6d 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 09 6d 76 69 09 63 2c 30 09 3b 62 6f 6f ┆tem call setdma mvi c,0 ;boo┆ 0x0c0840…0c0860 74 20 66 72 6f 6d 20 64 72 69 76 65 20 30 0d 0a 09 63 61 6c 6c 09 73 65 6c 64 73 6b 0d 0a 09 6d ┆t from drive 0 call seldsk m┆ 0x0c0860…0c0880 76 69 09 63 2c 30 0d 0a 09 63 61 6c 6c 09 73 65 74 74 72 6b 09 3b 73 74 61 72 74 20 77 69 74 68 ┆vi c,0 call settrk ;start with┆ 0x0c0880…0c08a0 20 74 72 61 63 6b 20 30 0d 0a 09 6d 76 69 09 63 2c 32 09 3b 73 74 61 72 74 20 72 65 61 64 69 6e ┆ track 0 mvi c,2 ;start readin┆ 0x0c08a0…0c08c0 67 20 73 65 63 74 6f 72 20 32 0d 0a 09 63 61 6c 6c 09 73 65 74 73 65 63 0d 0a 3b 0d 0a 3b 09 72 ┆g sector 2 call setsec ; ; r┆ 0x0c08c0…0c08e0 65 61 64 20 73 65 63 74 6f 72 73 2c 20 63 6f 75 6e 74 20 6e 73 65 63 74 73 20 74 6f 20 7a 65 72 ┆ead sectors, count nsects to zer┆ 0x0c08e0…0c0900 6f 0d 0a 09 70 6f 70 09 62 09 3b 31 30 2d 65 72 72 6f 72 20 63 6f 75 6e 74 0d 0a 09 6d 76 69 09 ┆o pop b ;10-error count mvi ┆ 0x0c0900…0c0920 62 2c 6e 73 65 63 74 73 0d 0a 72 64 73 65 63 3a 09 3b 72 65 61 64 20 6e 65 78 74 20 73 65 63 74 ┆b,nsects rdsec: ;read next sect┆ 0x0c0920…0c0940 6f 72 0d 0a 09 70 75 73 68 09 62 09 3b 73 61 76 65 20 73 65 63 74 6f 72 20 63 6f 75 6e 74 0d 0a ┆or push b ;save sector count ┆ 0x0c0940…0c0960 09 63 61 6c 6c 09 72 65 61 64 0d 0a 09 6a 6e 7a 09 62 6f 6f 74 65 72 72 09 3b 72 65 74 72 79 20 ┆ call read jnz booterr ;retry ┆ 0x0c0960…0c0980 69 66 20 65 72 72 6f 72 73 20 6f 63 63 75 72 0d 0a 09 6c 68 6c 64 09 69 6f 64 09 3b 69 6e 63 72 ┆if errors occur lhld iod ;incr┆ 0x0c0980…0c09a0 65 6d 65 6e 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 09 6c 78 69 09 64 2c 31 32 38 09 3b 73 ┆ement dma address lxi d,128 ;s┆ 0x0c09a0…0c09c0 65 63 74 6f 72 20 73 69 7a 65 0d 0a 09 64 61 64 09 64 09 3b 69 6e 63 72 65 6d 65 6e 74 65 64 20 ┆ector size dad d ;incremented ┆ 0x0c09c0…0c09e0 64 6d 61 20 61 64 64 72 65 73 73 20 69 6e 20 68 6c 0d 0a 09 6d 6f 76 09 62 2c 68 0d 0a 09 6d 6f ┆dma address in hl mov b,h mo┆ 0x0c09e0…0c0a00 76 09 63 2c 6c 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 20 74 6f 20 73 65 74 20 64 6d 61 ┆v c,l ;ready for call to set dma┆ 0x0c0a00…0c0a20 (51, 0, 12) 72 61 63 74 65 72 20 74 6f 20 72 65 67 2d 61 0d 0a 09 63 61 6c 6c 09 63 69 0d 0a 09 61 6e 69 09 ┆racter to reg-a call ci ani ┆ 0x0c0a20…0c0a40 37 66 68 09 3b 72 65 6d 6f 76 65 20 70 61 72 69 74 79 20 62 69 74 0d 0a 09 72 65 74 0d 0a 3b 0d ┆7fh ;remove parity bit ret ; ┆ 0x0c0a40…0c0a60 0a 63 6f 6e 6f 75 74 3a 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 66 72 6f 6d ┆ conout: ;console character from┆ 0x0c0a60…0c0a80 20 63 20 74 6f 20 63 6f 6e 73 6f 6c 65 20 6f 75 74 0d 0a 09 6a 6d 70 09 63 6f 0d 0a 3b 0d 0a 6c ┆ c to console out jmp co ; l┆ 0x0c0a80…0c0aa0 69 73 74 3a 09 3b 6c 69 73 74 20 64 65 76 69 63 65 20 6f 75 74 0d 0a 3b 09 28 65 78 61 63 74 6c ┆ist: ;list device out ; (exactl┆ 0x0c0aa0…0c0ac0 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 6c 6f ┆y the same as mds call) jmp lo┆ 0x0c0ac0…0c0ae0 0d 0a 3b 0d 0a 6c 69 73 74 73 74 3a 0d 0a 09 3b 72 65 74 75 72 6e 20 6c 69 73 74 20 73 74 61 74 ┆ ; listst: ;return list stat┆ 0x0c0ae0…0c0b00 75 73 0d 0a 09 78 72 61 09 61 0d 0a 09 72 65 74 09 09 3b 61 6c 77 61 79 73 20 6e 6f 74 20 72 65 ┆us xra a ret ;always not re┆ 0x0c0b00…0c0b20 61 64 79 0d 0a 3b 0d 0a 70 75 6e 63 68 3a 09 3b 70 75 6e 63 68 20 64 65 76 69 63 65 20 6f 75 74 ┆ady ; punch: ;punch device out┆ 0x0c0b20…0c0b40 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c ┆ ; (exactly the same as mds cal┆ 0x0c0b40…0c0b60 6c 29 0d 0a 09 6a 6d 70 09 70 6f 0d 0a 3b 0d 0a 72 65 61 64 65 72 3a 09 3b 72 65 61 64 65 72 20 ┆l) jmp po ; reader: ;reader ┆ 0x0c0b60…0c0b80 63 68 61 72 61 63 74 65 72 20 69 6e 20 74 6f 20 72 65 67 2d 61 0d 0a 3b 09 28 65 78 61 63 74 6c ┆character in to reg-a ; (exactl┆ 0x0c0b80…0c0ba0 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 72 69 ┆y the same as mds call) jmp ri┆ 0x0c0ba0…0c0bc0 0d 0a 3b 0d 0a 68 6f 6d 65 3a 09 3b 6d 6f 76 65 20 74 6f 20 68 6f 6d 65 20 70 6f 73 69 74 69 6f ┆ ; home: ;move to home positio┆ 0x0c0bc0…0c0be0 6e 0d 0a 3b 09 74 72 65 61 74 20 61 73 20 74 72 61 63 6b 20 30 30 20 73 65 65 6b 0d 0a 09 6d 76 ┆n ; treat as track 00 seek mv┆ 0x0c0be0…0c0c00 69 09 63 2c 30 0d 0a 09 6a 6d 70 09 73 65 74 74 72 6b 0d 0a 3b 0d 0a 73 65 6c 64 73 6b 3a 09 3b ┆i c,0 jmp settrk ; seldsk: ;┆ 0x0c0c00…0c0c20 (51, 0, 13) 61 72 6d 20 73 74 61 72 74 20 28 73 61 76 65 20 69 2f 6f 20 62 79 74 65 29 0d 0a 3b 09 28 62 6f ┆arm start (save i/o byte) ; (bo┆ 0x0c0c20…0c0c40 6f 74 20 61 6e 64 20 77 62 6f 6f 74 20 61 72 65 20 74 68 65 20 73 61 6d 65 20 66 6f 72 20 6d 64 ┆ot and wboot are the same for md┆ 0x0c0c40…0c0c60 73 29 0d 0a 3b 09 63 6f 6e 73 74 09 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 0d 0a 3b 09 09 72 ┆s) ; const console status ; r┆ 0x0c0c60…0c0c80 65 67 2d 61 20 3d 20 30 30 20 69 66 20 6e 6f 20 63 68 61 72 61 63 74 65 72 20 72 65 61 64 79 0d ┆eg-a = 00 if no character ready ┆ 0x0c0c80…0c0ca0 0a 3b 09 09 72 65 67 2d 61 20 3d 20 66 66 20 69 66 20 63 68 61 72 61 63 74 65 72 20 72 65 61 64 ┆ ; reg-a = ff if character read┆ 0x0c0ca0…0c0cc0 79 0d 0a 3b 09 63 6f 6e 69 6e 09 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 ┆y ; conin console character in ┆ 0x0c0cc0…0c0ce0 28 72 65 73 75 6c 74 20 69 6e 20 72 65 67 2d 61 29 0d 0a 3b 09 63 6f 6e 6f 75 74 09 63 6f 6e 73 ┆(result in reg-a) ; conout cons┆ 0x0c0ce0…0c0d00 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 ┆ole character out (char in reg-c┆ 0x0c0d00…0c0d20 29 0d 0a 3b 09 6c 69 73 74 09 6c 69 73 74 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d ┆) ; list list out (char in reg-┆ 0x0c0d20…0c0d40 63 29 0d 0a 3b 09 70 75 6e 63 68 09 70 75 6e 63 68 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 ┆c) ; punch punch out (char in r┆ 0x0c0d40…0c0d60 65 67 2d 63 29 0d 0a 3b 09 72 65 61 64 65 72 09 70 61 70 65 72 20 74 61 70 65 20 72 65 61 64 65 ┆eg-c) ; reader paper tape reade┆ 0x0c0d60…0c0d80 72 20 69 6e 20 28 72 65 73 75 6c 74 20 74 6f 20 72 65 67 2d 61 29 0d 0a 3b 09 68 6f 6d 65 09 6d ┆r in (result to reg-a) ; home m┆ 0x0c0d80…0c0da0 6f 76 65 20 74 6f 20 74 72 61 63 6b 20 30 30 0d 0a 3b 0d 0a 3b 09 28 74 68 65 20 66 6f 6c 6c 6f ┆ove to track 00 ; ; (the follo┆ 0x0c0da0…0c0dc0 77 69 6e 67 20 63 61 6c 6c 73 20 73 65 74 2d 75 70 20 74 68 65 20 69 6f 20 70 61 72 61 6d 65 74 ┆wing calls set-up the io paramet┆ 0x0c0dc0…0c0de0 65 72 20 62 6c 6f 63 6b 20 66 6f 72 20 74 68 65 0d 0a 3b 09 6d 64 73 2c 20 77 68 69 63 68 20 69 ┆er block for the ; mds, which i┆ 0x0c0de0…0c0e00 73 20 75 73 65 64 20 74 6f 20 70 65 72 66 6f 72 6d 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 ┆s used to perform subsequent rea┆ 0x0c0e00…0c0e20 (51, 0, 14) 0d 0a 63 69 09 65 71 75 09 30 66 38 30 33 68 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 ┆ ci equ 0f803h ;console charact┆ 0x0c0e20…0c0e40 65 72 20 74 6f 20 72 65 67 2d 61 0d 0a 72 69 09 65 71 75 09 30 66 38 30 36 68 09 3b 72 65 61 64 ┆er to reg-a ri equ 0f806h ;read┆ 0x0c0e40…0c0e60 65 72 20 69 6e 20 74 6f 20 72 65 67 2d 61 0d 0a 63 6f 09 65 71 75 09 30 66 38 30 39 68 09 3b 63 ┆er in to reg-a co equ 0f809h ;c┆ 0x0c0e60…0c0e80 6f 6e 73 6f 6c 65 20 63 68 61 72 20 66 72 6f 6d 20 63 20 74 6f 20 63 6f 6e 73 6f 6c 65 20 6f 75 ┆onsole char from c to console ou┆ 0x0c0e80…0c0ea0 74 0d 0a 70 6f 09 65 71 75 09 30 66 38 30 63 68 09 3b 70 75 6e 63 68 20 63 68 61 72 20 66 72 6f ┆t po equ 0f80ch ;punch char fro┆ 0x0c0ea0…0c0ec0 6d 20 63 20 74 6f 20 70 75 6e 63 68 20 64 65 76 69 63 65 0d 0a 6c 6f 09 65 71 75 09 30 66 38 30 ┆m c to punch device lo equ 0f80┆ 0x0c0ec0…0c0ee0 66 68 09 3b 6c 69 73 74 20 66 72 6f 6d 20 63 20 74 6f 20 6c 69 73 74 20 64 65 76 69 63 65 0d 0a ┆fh ;list from c to list device ┆ 0x0c0ee0…0c0f00 63 73 74 73 09 65 71 75 09 30 66 38 31 32 68 09 3b 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 20 ┆csts equ 0f812h ;console status ┆ 0x0c0f00…0c0f20 30 30 2f 66 66 20 74 6f 20 72 65 67 69 73 74 65 72 20 61 0d 0a 3b 0d 0a 3b 09 64 69 73 6b 20 70 ┆00/ff to register a ; ; disk p┆ 0x0c0f20…0c0f40 6f 72 74 73 20 61 6e 64 20 63 6f 6d 6d 61 6e 64 73 0d 0a 62 61 73 65 09 65 71 75 09 37 38 68 09 ┆orts and commands base equ 78h ┆ 0x0c0f40…0c0f60 3b 62 61 73 65 20 6f 66 20 64 69 73 6b 20 63 6f 6d 6d 61 6e 64 20 69 6f 20 70 6f 72 74 73 0d 0a ┆;base of disk command io ports ┆ 0x0c0f60…0c0f80 64 73 74 61 74 09 65 71 75 09 62 61 73 65 09 3b 64 69 73 6b 20 73 74 61 74 75 73 20 28 69 6e 70 ┆dstat equ base ;disk status (inp┆ 0x0c0f80…0c0fa0 75 74 29 0d 0a 72 74 79 70 65 09 65 71 75 09 62 61 73 65 2b 31 09 3b 72 65 73 75 6c 74 20 74 79 ┆ut) rtype equ base+1 ;result ty┆ 0x0c0fa0…0c0fc0 70 65 20 28 69 6e 70 75 74 29 0d 0a 72 62 79 74 65 09 65 71 75 09 62 61 73 65 2b 33 09 3b 72 65 ┆pe (input) rbyte equ base+3 ;re┆ 0x0c0fc0…0c0fe0 73 75 6c 74 20 62 79 74 65 20 28 69 6e 70 75 74 29 0d 0a 3b 0d 0a 69 6c 6f 77 09 65 71 75 09 62 ┆sult byte (input) ; ilow equ b┆ 0x0c0fe0…0c1000 61 73 65 2b 31 09 3b 69 6f 70 62 20 6c 6f 77 20 61 64 64 72 65 73 73 20 28 6f 75 74 70 75 74 29 ┆ase+1 ;iopb low address (output)┆ 0x0c1000…0c1020 (51, 0, 15) 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 09 6c 64 61 09 69 6f 73 09 3b 73 65 63 74 6f 72 ┆ call setdma lda ios ;sector┆ 0x0c1020…0c1040 20 6e 75 6d 62 65 72 20 6a 75 73 74 20 72 65 61 64 0d 0a 09 63 70 69 09 32 36 09 3b 72 65 61 64 ┆ number just read cpi 26 ;read┆ 0x0c1040…0c1060 20 6c 61 73 74 20 73 65 63 74 6f 72 3f 0d 0a 09 6a 63 09 72 64 31 0d 0a 3b 09 6d 75 73 74 20 62 ┆ last sector? jc rd1 ; must b┆ 0x0c1060…0c1080 65 20 73 65 63 74 6f 72 20 32 36 2c 20 7a 65 72 6f 20 61 6e 64 20 67 6f 20 74 6f 20 6e 65 78 74 ┆e sector 26, zero and go to next┆ 0x0c1080…0c10a0 20 74 72 61 63 6b 0d 0a 09 6c 64 61 09 69 6f 74 09 3b 67 65 74 20 74 72 61 63 6b 20 74 6f 20 72 ┆ track lda iot ;get track to r┆ 0x0c10a0…0c10c0 65 67 69 73 74 65 72 20 61 0d 0a 09 69 6e 72 09 61 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 72 65 61 ┆egister a inr a mov c,a ;rea┆ 0x0c10c0…0c10e0 64 79 20 66 6f 72 20 63 61 6c 6c 0d 0a 09 63 61 6c 6c 09 73 65 74 74 72 6b 0d 0a 09 78 72 61 09 ┆dy for call call settrk xra ┆ 0x0c10e0…0c1100 61 09 3b 63 6c 65 61 72 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 0d 0a 72 64 31 3a 09 69 6e 72 ┆a ;clear sector number rd1: inr┆ 0x0c1100…0c1120 09 61 09 3b 74 6f 20 6e 65 78 74 20 73 65 63 74 6f 72 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 72 65 ┆ a ;to next sector mov c,a ;re┆ 0x0c1120…0c1140 61 64 79 20 66 6f 72 20 63 61 6c 6c 0d 0a 09 63 61 6c 6c 09 73 65 74 73 65 63 0d 0a 09 70 6f 70 ┆ady for call call setsec pop┆ 0x0c1140…0c1160 09 62 09 3b 72 65 63 61 6c 6c 20 73 65 63 74 6f 72 20 63 6f 75 6e 74 0d 0a 09 64 63 72 09 62 09 ┆ b ;recall sector count dcr b ┆ 0x0c1160…0c1180 3b 64 6f 6e 65 3f 0d 0a 09 6a 6e 7a 09 72 64 73 65 63 0d 0a 3b 0d 0a 3b 09 64 6f 6e 65 20 77 69 ┆;done? jnz rdsec ; ; done wi┆ 0x0c1180…0c11a0 74 68 20 74 68 65 20 6c 6f 61 64 2c 20 72 65 73 65 74 20 64 65 66 61 75 6c 74 20 62 75 66 66 65 ┆th the load, reset default buffe┆ 0x0c11a0…0c11c0 72 20 61 64 64 72 65 73 73 0d 0a 67 6f 63 70 6d 3a 09 3b 28 65 6e 74 65 72 20 68 65 72 65 20 66 ┆r address gocpm: ;(enter here f┆ 0x0c11c0…0c11e0 72 6f 6d 20 63 6f 6c 64 20 73 74 61 72 74 20 62 6f 6f 74 29 0d 0a 3b 09 65 6e 61 62 6c 65 20 72 ┆rom cold start boot) ; enable r┆ 0x0c11e0…0c1200 73 74 30 20 61 6e 64 20 72 73 74 37 0d 0a 09 64 69 0d 0a 09 6d 76 69 09 61 2c 31 32 68 09 3b 69 ┆st0 and rst7 di mvi a,12h ;i┆ 0x0c1200…0c1220 (51, 1, 1) 73 65 6c 65 63 74 20 64 69 73 6b 20 67 69 76 65 6e 20 62 79 20 72 65 67 69 73 74 65 72 20 63 0d ┆select disk given by register c ┆ 0x0c1220…0c1240 0a 09 6c 78 69 09 68 2c 30 30 30 30 68 09 3b 72 65 74 75 72 6e 20 30 30 30 30 20 69 66 20 65 72 ┆ lxi h,0000h ;return 0000 if er┆ 0x0c1240…0c1260 72 6f 72 0d 0a 09 6d 6f 76 09 61 2c 63 0d 0a 09 63 70 69 09 6e 64 69 73 6b 73 09 3b 74 6f 6f 20 ┆ror mov a,c cpi ndisks ;too ┆ 0x0c1260…0c1280 6c 61 72 67 65 3f 0d 0a 09 72 6e 63 09 09 3b 6c 65 61 76 65 20 48 4c 20 3d 20 30 30 30 30 0d 0a ┆large? rnc ;leave HL = 0000 ┆ 0x0c1280…0c12a0 3b 0d 0a 09 61 6e 69 09 31 30 62 09 3b 30 30 20 30 30 20 66 6f 72 20 64 72 69 76 65 20 30 2c 31 ┆; ani 10b ;00 00 for drive 0,1┆ 0x0c12a0…0c12c0 20 61 6e 64 20 31 30 20 31 30 20 66 6f 72 20 64 72 69 76 65 20 32 2c 33 0d 0a 09 73 74 61 09 64 ┆ and 10 10 for drive 2,3 sta d┆ 0x0c12c0…0c12e0 62 61 6e 6b 09 3b 74 6f 20 73 65 6c 65 63 74 20 64 72 69 76 65 20 62 61 6e 6b 0d 0a 09 6d 6f 76 ┆bank ;to select drive bank mov┆ 0x0c12e0…0c1300 09 61 2c 63 09 3b 30 30 2c 20 30 31 2c 20 31 30 2c 20 31 31 0d 0a 09 61 6e 69 09 31 62 09 3b 6d ┆ a,c ;00, 01, 10, 11 ani 1b ;m┆ 0x0c1300…0c1320 64 73 20 68 61 73 20 30 2c 31 20 61 74 20 37 38 2c 20 32 2c 33 20 61 74 20 38 38 0d 0a 09 6f 72 ┆ds has 0,1 at 78, 2,3 at 88 or┆ 0x0c1320…0c1340 61 09 61 09 3b 72 65 73 75 6c 74 20 30 30 3f 0d 0a 09 6a 7a 09 73 65 74 64 72 69 76 65 0d 0a 09 ┆a a ;result 00? jz setdrive ┆ 0x0c1340…0c1360 6d 76 69 09 61 2c 30 30 31 31 30 30 30 30 62 09 3b 73 65 6c 65 63 74 73 20 64 72 69 76 65 20 31 ┆mvi a,00110000b ;selects drive 1┆ 0x0c1360…0c1380 20 69 6e 20 62 61 6e 6b 0d 0a 73 65 74 64 72 69 76 65 3a 0d 0a 09 6d 6f 76 09 62 2c 61 09 3b 73 ┆ in bank setdrive: mov b,a ;s┆ 0x0c1380…0c13a0 61 76 65 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6c 78 69 09 68 2c 69 6f 66 09 3b 69 6f ┆ave the function lxi h,iof ;io┆ 0x0c13a0…0c13c0 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6d 6f 76 09 61 2c 6d 0d 0a 09 61 6e 69 09 31 31 30 30 31 31 ┆ function mov a,m ani 110011┆ 0x0c13c0…0c13e0 31 31 62 09 3b 6d 61 73 6b 20 6f 75 74 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6f 72 61 09 ┆11b ;mask out disk number ora ┆ 0x0c13e0…0c1400 62 09 3b 6d 61 73 6b 20 69 6e 20 6e 65 77 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6d 6f 76 ┆b ;mask in new disk number mov┆ 0x0c1400…0c1420 (51, 1, 2) 74 0d 0a 09 6c 78 69 09 68 2c 69 6f 73 09 09 3b 61 64 64 72 65 73 73 20 74 68 65 20 73 65 63 74 ┆t lxi h,ios ;address the sect┆ 0x0c1420…0c1440 6f 72 20 73 65 6c 65 63 74 20 62 79 74 65 0d 0a 09 6f 72 61 09 6d 09 09 3b 73 65 6c 65 63 74 20 ┆or select byte ora m ;select ┆ 0x0c1440…0c1460 70 72 6f 70 65 72 20 64 69 73 6b 20 62 61 6e 6b 0d 0a 09 6d 6f 76 09 6d 2c 61 09 09 3b 73 65 74 ┆proper disk bank mov m,a ;set┆ 0x0c1460…0c1480 20 64 69 73 6b 20 73 65 6c 65 63 74 20 62 69 74 20 6f 6e 2f 6f 66 66 0d 0a 09 72 65 74 0d 0a 3b ┆ disk select bit on/off ret ;┆ 0x0c1480…0c14a0 0d 0a 77 61 69 74 69 6f 3a 0d 0a 09 6d 76 69 09 63 2c 72 65 74 72 79 09 3b 6d 61 78 20 72 65 74 ┆ waitio: mvi c,retry ;max ret┆ 0x0c14a0…0c14c0 72 69 65 73 20 62 65 66 6f 72 65 20 70 65 72 6d 20 65 72 72 6f 72 0d 0a 72 65 77 61 69 74 3a 0d ┆ries before perm error rewait: ┆ 0x0c14c0…0c14e0 0a 3b 09 73 74 61 72 74 20 74 68 65 20 69 2f 6f 20 66 75 6e 63 74 69 6f 6e 20 61 6e 64 20 77 61 ┆ ; start the i/o function and wa┆ 0x0c14e0…0c1500 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 69 6e 74 79 70 65 09 ┆it for completion call intype ┆ 0x0c1500…0c1520 3b 69 6e 20 72 74 79 70 65 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 09 3b 63 6c 65 61 72 73 20 ┆;in rtype call inbyte ;clears ┆ 0x0c1520…0c1540 74 68 65 20 63 6f 6e 74 72 6f 6c 6c 65 72 0d 0a 3b 0d 0a 09 6c 64 61 09 64 62 61 6e 6b 09 09 3b ┆the controller ; lda dbank ;┆ 0x0c1540…0c1560 73 65 74 20 62 61 6e 6b 20 66 6c 61 67 73 0d 0a 09 6f 72 61 09 61 09 09 3b 7a 65 72 6f 20 69 66 ┆set bank flags ora a ;zero if┆ 0x0c1560…0c1580 20 64 72 69 76 65 20 30 2c 31 20 61 6e 64 20 6e 7a 20 69 66 20 32 2c 33 0d 0a 09 6d 76 69 09 61 ┆ drive 0,1 and nz if 2,3 mvi a┆ 0x0c1580…0c15a0 2c 69 6f 70 62 20 61 6e 64 20 30 66 66 68 09 3b 6c 6f 77 20 61 64 64 72 65 73 73 20 66 6f 72 20 ┆,iopb and 0ffh ;low address for ┆ 0x0c15a0…0c15c0 69 6f 70 62 0d 0a 09 6d 76 69 09 62 2c 69 6f 70 62 20 73 68 72 20 38 09 3b 68 69 67 68 20 61 64 ┆iopb mvi b,iopb shr 8 ;high ad┆ 0x0c15c0…0c15e0 64 72 65 73 73 20 66 6f 72 20 69 6f 70 62 0d 0a 09 6a 6e 7a 09 69 6f 64 72 31 09 3b 64 72 69 76 ┆dress for iopb jnz iodr1 ;driv┆ 0x0c15e0…0c1600 65 20 62 61 6e 6b 20 31 3f 0d 0a 09 6f 75 74 09 69 6c 6f 77 09 09 3b 6c 6f 77 20 61 64 64 72 65 ┆e bank 1? out ilow ;low addre┆ 0x0c1600…0c1620 (51, 1, 3) 74 68 65 20 6e 6f 74 20 72 65 61 64 79 20 63 6f 6e 64 69 74 69 6f 6e 20 69 73 0d 0a 3b 09 74 72 ┆the not ready condition is ; tr┆ 0x0c1620…0c1640 65 61 74 65 64 20 61 73 20 61 20 73 65 70 61 72 61 74 65 20 63 6f 6e 64 69 74 69 6f 6e 20 66 6f ┆eated as a separate condition fo┆ 0x0c1640…0c1660 72 20 6c 61 74 65 72 20 69 6d 70 72 6f 76 65 6d 65 6e 74 0d 0a 74 72 79 63 6f 75 6e 74 3a 0d 0a ┆r later improvement trycount: ┆ 0x0c1660…0c1680 3b 09 72 65 67 69 73 74 65 72 20 63 20 63 6f 6e 74 61 69 6e 73 20 72 65 74 72 79 20 63 6f 75 6e ┆; register c contains retry coun┆ 0x0c1680…0c16a0 74 2c 20 64 65 63 72 65 6d 65 6e 74 20 27 74 69 6c 20 7a 65 72 6f 0d 0a 09 64 63 72 09 63 0d 0a ┆t, decrement 'til zero dcr c ┆ 0x0c16a0…0c16c0 09 6a 6e 7a 09 72 65 77 61 69 74 09 3b 66 6f 72 20 61 6e 6f 74 68 65 72 20 74 72 79 0d 0a 3b 0d ┆ jnz rewait ;for another try ; ┆ 0x0c16c0…0c16e0 0a 3b 09 63 61 6e 6e 6f 74 20 72 65 63 6f 76 65 72 20 66 72 6f 6d 20 65 72 72 6f 72 0d 0a 09 6d ┆ ; cannot recover from error m┆ 0x0c16e0…0c1700 76 69 09 61 2c 31 09 3b 65 72 72 6f 72 20 63 6f 64 65 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 09 69 ┆vi a,1 ;error code ret ; ; i┆ 0x0c1700…0c1720 6e 74 79 70 65 2c 20 69 6e 62 79 74 65 2c 20 69 6e 73 74 61 74 20 72 65 61 64 20 64 72 69 76 65 ┆ntype, inbyte, instat read drive┆ 0x0c1720…0c1740 20 62 61 6e 6b 20 30 30 20 6f 72 20 31 30 0d 0a 69 6e 74 79 70 65 3a 09 6c 64 61 09 64 62 61 6e ┆ bank 00 or 10 intype: lda dban┆ 0x0c1740…0c1760 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 74 79 70 31 09 3b 73 6b 69 70 20 74 6f 20 ┆k ora a jnz intyp1 ;skip to ┆ 0x0c1760…0c1780 62 61 6e 6b 20 31 30 0d 0a 09 69 6e 09 72 74 79 70 65 0d 0a 09 72 65 74 0d 0a 69 6e 74 79 70 31 ┆bank 10 in rtype ret intyp1┆ 0x0c1780…0c17a0 3a 09 69 6e 09 72 74 79 70 65 2b 31 30 68 09 3b 37 38 20 66 6f 72 20 30 2c 31 20 20 38 38 20 66 ┆: in rtype+10h ;78 for 0,1 88 f┆ 0x0c17a0…0c17c0 6f 72 20 32 2c 33 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 69 6e 62 79 74 65 3a 09 6c 64 61 09 64 62 61 ┆or 2,3 ret ; inbyte: lda dba┆ 0x0c17c0…0c17e0 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 62 79 74 31 0d 0a 09 69 6e 09 72 62 79 ┆nk ora a jnz inbyt1 in rby┆ 0x0c17e0…0c1800 74 65 0d 0a 09 72 65 74 0d 0a 69 6e 62 79 74 31 3a 09 69 6e 09 72 62 79 74 65 2b 31 30 68 0d 0a ┆te ret inbyt1: in rbyte+10h ┆ 0x0c1800…0c1820 (51, 1, 4) 0a 3b 09 09 72 65 67 2d 61 20 3d 20 30 30 20 69 66 20 6e 6f 20 63 68 61 72 61 63 74 65 72 20 72 ┆ ; reg-a = 00 if no character r┆ 0x0c1820…0c1840 65 61 64 79 0d 0a 3b 09 09 72 65 67 2d 61 20 3d 20 66 66 20 69 66 20 63 68 61 72 61 63 74 65 72 ┆eady ; reg-a = ff if character┆ 0x0c1840…0c1860 20 72 65 61 64 79 0d 0a 3b 09 63 6f 6e 69 6e 09 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 ┆ ready ; conin console characte┆ 0x0c1860…0c1880 72 20 69 6e 20 28 72 65 73 75 6c 74 20 69 6e 20 72 65 67 2d 61 29 0d 0a 3b 09 63 6f 6e 6f 75 74 ┆r in (result in reg-a) ; conout┆ 0x0c1880…0c18a0 09 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 ┆ console character out (char in ┆ 0x0c18a0…0c18c0 72 65 67 2d 63 29 0d 0a 3b 09 6c 69 73 74 09 6c 69 73 74 20 6f 75 74 20 28 63 68 61 72 20 69 6e ┆reg-c) ; list list out (char in┆ 0x0c18c0…0c18e0 20 72 65 67 2d 63 29 0d 0a 3b 09 70 75 6e 63 68 09 70 75 6e 63 68 20 6f 75 74 20 28 63 68 61 72 ┆ reg-c) ; punch punch out (char┆ 0x0c18e0…0c1900 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 72 65 61 64 65 72 09 70 61 70 65 72 20 74 61 70 65 20 ┆ in reg-c) ; reader paper tape ┆ 0x0c1900…0c1920 72 65 61 64 65 72 20 69 6e 20 28 72 65 73 75 6c 74 20 74 6f 20 72 65 67 2d 61 29 0d 0a 3b 09 68 ┆reader in (result to reg-a) ; h┆ 0x0c1920…0c1940 6f 6d 65 09 6d 6f 76 65 20 74 6f 20 74 72 61 63 6b 20 30 30 0d 0a 3b 0d 0a 3b 09 28 74 68 65 20 ┆ome move to track 00 ; ; (the ┆ 0x0c1940…0c1960 66 6f 6c 6c 6f 77 69 6e 67 20 63 61 6c 6c 73 20 73 65 74 2d 75 70 20 74 68 65 20 69 6f 20 70 61 ┆following calls set-up the io pa┆ 0x0c1960…0c1980 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 20 66 6f 72 20 74 68 65 0d 0a 3b 09 6d 64 73 2c 20 77 68 ┆rameter block for the ; mds, wh┆ 0x0c1980…0c19a0 69 63 68 20 69 73 20 75 73 65 64 20 74 6f 20 70 65 72 66 6f 72 6d 20 73 75 62 73 65 71 75 65 6e ┆ich is used to perform subsequen┆ 0x0c19a0…0c19c0 74 20 72 65 61 64 73 20 61 6e 64 20 77 72 69 74 65 73 29 0d 0a 3b 09 73 65 6c 64 73 6b 09 73 65 ┆t reads and writes) ; seldsk se┆ 0x0c19c0…0c19e0 6c 65 63 74 20 64 69 73 6b 20 67 69 76 65 6e 20 62 79 20 72 65 67 2d 63 20 28 30 2c 31 2c 32 2e ┆lect disk given by reg-c (0,1,2.┆ 0x0c19e0…0c1a00 2e 2e 29 0d 0a 3b 09 73 65 74 74 72 6b 09 73 65 74 20 74 72 61 63 6b 20 61 64 64 72 65 73 73 20 ┆..) ; settrk set track address ┆ 0x0c1a00…0c1a20 (51, 1, 5) 09 6d 2c 61 09 3b 73 61 76 65 20 69 74 20 69 6e 20 69 6f 70 62 0d 0a 09 6d 6f 76 09 6c 2c 63 0d ┆ m,a ;save it in iopb mov l,c ┆ 0x0c1a20…0c1a40 0a 09 6d 76 69 09 68 2c 30 09 3b 48 4c 3d 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 64 61 64 09 ┆ mvi h,0 ;HL=disk number dad ┆ 0x0c1a40…0c1a60 68 09 3b 2a 32 0d 0a 09 64 61 64 09 68 09 3b 2a 34 0d 0a 09 64 61 64 09 68 09 3b 2a 38 0d 0a 09 ┆h ;*2 dad h ;*4 dad h ;*8 ┆ 0x0c1a60…0c1a80 64 61 64 09 68 09 3b 2a 31 36 0d 0a 09 6c 78 69 09 64 2c 64 70 62 61 73 65 0d 0a 09 64 61 64 09 ┆dad h ;*16 lxi d,dpbase dad ┆ 0x0c1a80…0c1aa0 64 09 3b 48 4c 3d 64 69 73 6b 20 68 65 61 64 65 72 20 74 61 62 6c 65 20 61 64 64 72 65 73 73 0d ┆d ;HL=disk header table address ┆ 0x0c1aa0…0c1ac0 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 73 65 74 74 72 6b 3a 09 3b 73 65 74 20 74 72 61 63 6b 20 ┆ ret ; ; settrk: ;set track ┆ 0x0c1ac0…0c1ae0 61 64 64 72 65 73 73 20 67 69 76 65 6e 20 62 79 20 63 0d 0a 09 6c 78 69 09 68 2c 69 6f 74 0d 0a ┆address given by c lxi h,iot ┆ 0x0c1ae0…0c1b00 09 6d 6f 76 09 6d 2c 63 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 73 65 74 73 65 63 3a 09 3b 73 65 74 20 ┆ mov m,c ret ; setsec: ;set ┆ 0x0c1b00…0c1b20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 67 69 76 65 6e 20 62 79 20 63 0d 0a 09 6c 78 69 09 68 ┆sector number given by c lxi h┆ 0x0c1b20…0c1b40 2c 69 6f 73 0d 0a 09 6d 6f 76 09 6d 2c 63 0d 0a 09 72 65 74 0d 0a 73 65 63 74 72 61 6e 3a 0d 0a ┆,ios mov m,c ret sectran: ┆ 0x0c1b40…0c1b60 09 09 3b 74 72 61 6e 73 6c 61 74 65 20 73 65 63 74 6f 72 20 62 63 20 75 73 69 6e 67 20 74 61 62 ┆ ;translate sector bc using tab┆ 0x0c1b60…0c1b80 6c 65 20 61 74 20 64 65 0d 0a 09 6d 76 69 09 62 2c 30 09 3b 64 6f 75 62 6c 65 20 70 72 65 63 69 ┆le at de mvi b,0 ;double preci┆ 0x0c1b80…0c1ba0 73 69 6f 6e 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 69 6e 20 42 43 0d 0a 09 78 63 68 67 09 ┆sion sector number in BC xchg ┆ 0x0c1ba0…0c1bc0 09 3b 74 72 61 6e 73 6c 61 74 65 20 74 61 62 6c 65 20 61 64 64 72 65 73 73 20 74 6f 20 48 4c 0d ┆ ;translate table address to HL ┆ 0x0c1bc0…0c1be0 0a 09 64 61 64 09 62 09 3b 74 72 61 6e 73 6c 61 74 65 28 73 65 63 74 6f 72 29 20 61 64 64 72 65 ┆ dad b ;translate(sector) addre┆ 0x0c1be0…0c1c00 73 73 0d 0a 09 6d 6f 76 09 61 2c 6d 09 3b 74 72 61 6e 73 6c 61 74 65 64 20 73 65 63 74 6f 72 20 ┆ss mov a,m ;translated sector ┆ 0x0c1c00…0c1c20 (51, 1, 6) 73 73 20 74 6f 20 63 6f 6e 74 72 6f 6c 6c 65 72 0d 0a 09 6d 6f 76 09 61 2c 62 0d 0a 09 6f 75 74 ┆ss to controller mov a,b out┆ 0x0c1c20…0c1c40 09 69 68 69 67 68 09 3b 68 69 67 68 20 61 64 64 72 65 73 73 0d 0a 09 6a 6d 70 09 77 61 69 74 30 ┆ ihigh ;high address jmp wait0┆ 0x0c1c40…0c1c60 09 09 3b 74 6f 20 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 65 0d 0a 3b 0d 0a 69 6f 64 72 ┆ ;to wait for complete ; iodr┆ 0x0c1c60…0c1c80 31 3a 09 3b 64 72 69 76 65 20 62 61 6e 6b 20 31 0d 0a 09 6f 75 74 09 69 6c 6f 77 2b 31 30 68 09 ┆1: ;drive bank 1 out ilow+10h ┆ 0x0c1c80…0c1ca0 3b 38 38 20 66 6f 72 20 64 72 69 76 65 20 62 61 6e 6b 20 31 30 0d 0a 09 6d 6f 76 09 61 2c 62 0d ┆;88 for drive bank 10 mov a,b ┆ 0x0c1ca0…0c1cc0 0a 09 6f 75 74 09 69 68 69 67 68 2b 31 30 68 0d 0a 3b 0d 0a 77 61 69 74 30 3a 09 63 61 6c 6c 09 ┆ out ihigh+10h ; wait0: call ┆ 0x0c1cc0…0c1ce0 69 6e 73 74 61 74 09 09 3b 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 0d 0a 09 61 ┆instat ;wait for completion a┆ 0x0c1ce0…0c1d00 6e 69 09 69 6f 72 64 79 09 09 3b 72 65 61 64 79 3f 0d 0a 09 6a 7a 09 77 61 69 74 30 0d 0a 3b 0d ┆ni iordy ;ready? jz wait0 ; ┆ 0x0c1d00…0c1d20 0a 3b 09 63 68 65 63 6b 20 69 6f 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 6f 6b 0d 0a 09 63 61 6c 6c ┆ ; check io completion ok call┆ 0x0c1d20…0c1d40 09 69 6e 74 79 70 65 09 09 3b 6d 75 73 74 20 62 65 20 69 6f 20 63 6f 6d 70 6c 65 74 65 20 28 30 ┆ intype ;must be io complete (0┆ 0x0c1d40…0c1d60 30 29 20 75 6e 6c 69 6e 6b 65 64 0d 0a 3b 09 30 30 20 75 6e 6c 69 6e 6b 65 64 20 69 2f 6f 20 63 ┆0) unlinked ; 00 unlinked i/o c┆ 0x0c1d60…0c1d80 6f 6d 70 6c 65 74 65 2c 20 20 20 20 30 31 20 6c 69 6e 6b 65 64 20 69 2f 6f 20 63 6f 6d 70 6c 65 ┆omplete, 01 linked i/o comple┆ 0x0c1d80…0c1da0 74 65 20 28 6e 6f 74 20 75 73 65 64 29 0d 0a 3b 09 31 30 20 64 69 73 6b 20 73 74 61 74 75 73 20 ┆te (not used) ; 10 disk status ┆ 0x0c1da0…0c1dc0 63 68 61 6e 67 65 64 20 20 20 20 20 20 20 31 31 20 28 6e 6f 74 20 75 73 65 64 29 0d 0a 09 63 70 ┆changed 11 (not used) cp┆ 0x0c1dc0…0c1de0 69 09 31 30 62 09 09 3b 72 65 61 64 79 20 73 74 61 74 75 73 20 63 68 61 6e 67 65 3f 0d 0a 09 6a ┆i 10b ;ready status change? j┆ 0x0c1de0…0c1e00 7a 09 77 72 65 61 64 79 0d 0a 3b 0d 0a 3b 09 6d 75 73 74 20 62 65 20 30 30 20 69 6e 20 74 68 65 ┆z wready ; ; must be 00 in the┆ 0x0c1e00…0c1e20 (51, 1, 7) 09 72 65 74 0d 0a 3b 0d 0a 69 6e 73 74 61 74 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 ┆ ret ; instat: lda dbank ora┆ 0x0c1e20…0c1e40 09 61 0d 0a 09 6a 6e 7a 09 69 6e 73 74 61 31 0d 0a 09 69 6e 09 64 73 74 61 74 0d 0a 09 72 65 74 ┆ a jnz insta1 in dstat ret┆ 0x0c1e40…0c1e60 0d 0a 69 6e 73 74 61 31 3a 09 69 6e 09 64 73 74 61 74 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d ┆ insta1: in dstat+10h ret ; ┆ 0x0c1e60…0c1e80 0a 3b 0d 0a 3b 0d 0a 3b 09 64 61 74 61 20 61 72 65 61 73 20 28 6d 75 73 74 20 62 65 20 69 6e 20 ┆ ; ; ; data areas (must be in ┆ 0x0c1e80…0c1ea0 72 61 6d 29 0d 0a 64 62 61 6e 6b 3a 09 64 62 09 30 09 3b 64 69 73 6b 20 62 61 6e 6b 20 30 30 20 ┆ram) dbank: db 0 ;disk bank 00 ┆ 0x0c1ea0…0c1ec0 69 66 20 64 72 69 76 65 20 30 2c 31 0d 0a 09 09 09 3b 09 20 20 20 31 30 20 69 66 20 64 72 69 76 ┆if drive 0,1 ; 10 if driv┆ 0x0c1ec0…0c1ee0 65 20 32 2c 33 0d 0a 69 6f 70 62 3a 09 3b 69 6f 20 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b ┆e 2,3 iopb: ;io parameter block┆ 0x0c1ee0…0c1f00 0d 0a 09 64 62 09 38 30 68 09 3b 6e 6f 72 6d 61 6c 20 69 2f 6f 20 6f 70 65 72 61 74 69 6f 6e 0d ┆ db 80h ;normal i/o operation ┆ 0x0c1f00…0c1f20 0a 69 6f 66 3a 09 64 62 09 72 65 61 64 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 2c 20 69 6e 69 ┆ iof: db readf ;io function, ini┆ 0x0c1f20…0c1f40 74 69 61 6c 20 72 65 61 64 0d 0a 69 6f 6e 3a 09 64 62 09 31 09 3b 6e 75 6d 62 65 72 20 6f 66 20 ┆tial read ion: db 1 ;number of ┆ 0x0c1f40…0c1f60 73 65 63 74 6f 72 73 20 74 6f 20 72 65 61 64 0d 0a 69 6f 74 3a 09 64 62 09 6f 66 66 73 65 74 09 ┆sectors to read iot: db offset ┆ 0x0c1f60…0c1f80 3b 74 72 61 63 6b 20 6e 75 6d 62 65 72 0d 0a 69 6f 73 3a 09 64 62 09 31 09 3b 73 65 63 74 6f 72 ┆;track number ios: db 1 ;sector┆ 0x0c1f80…0c1fa0 20 6e 75 6d 62 65 72 0d 0a 69 6f 64 3a 09 64 77 09 62 75 66 66 09 3b 69 6f 20 61 64 64 72 65 73 ┆ number iod: dw buff ;io addres┆ 0x0c1fa0…0c1fc0 73 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 65 66 69 6e 65 20 72 61 6d 20 61 72 65 61 73 20 66 6f 72 20 ┆s ; ; ; define ram areas for ┆ 0x0c1fc0…0c1fe0 62 64 6f 73 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 09 65 6e 64 65 66 0d 0a 09 65 6e 64 0d 0a 3b 09 ┆bdos operation endef end ; ┆ 0x0c1fe0…0c2000 4d 44 53 2d 38 30 30 20 49 2f 4f 20 44 72 69 76 65 72 73 20 66 6f 72 20 43 50 2f 4d 20 32 2e 32 ┆MDS-800 I/O Drivers for CP/M 2.2┆ 0x0c2000…0c2020 (51, 1, 8) 28 30 2c 2e 2e 2e 37 36 29 20 66 6f 72 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 2f 77 72 ┆(0,...76) for subsequent read/wr┆ 0x0c2020…0c2040 69 74 65 0d 0a 3b 09 73 65 74 73 65 63 09 73 65 74 20 73 65 63 74 6f 72 20 61 64 64 72 65 73 73 ┆ite ; setsec set sector address┆ 0x0c2040…0c2060 20 28 31 2c 2e 2e 2e 2c 32 36 29 20 66 6f 72 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 2f ┆ (1,...,26) for subsequent read/┆ 0x0c2060…0c2080 77 72 69 74 65 0d 0a 3b 09 73 65 74 64 6d 61 09 73 65 74 20 73 75 62 73 65 71 75 65 6e 74 20 64 ┆write ; setdma set subsequent d┆ 0x0c2080…0c20a0 6d 61 20 61 64 64 72 65 73 73 20 28 69 6e 69 74 69 61 6c 6c 79 20 38 30 68 29 0d 0a 3b 0d 0a 3b ┆ma address (initially 80h) ; ;┆ 0x0c20a0…0c20c0 09 28 72 65 61 64 20 61 6e 64 20 77 72 69 74 65 20 61 73 73 75 6d 65 20 70 72 65 76 69 6f 75 73 ┆ (read and write assume previous┆ 0x0c20c0…0c20e0 20 63 61 6c 6c 73 20 74 6f 20 73 65 74 20 75 70 20 74 68 65 20 69 6f 20 70 61 72 61 6d 65 74 65 ┆ calls to set up the io paramete┆ 0x0c20e0…0c2100 72 73 29 0d 0a 3b 09 72 65 61 64 09 72 65 61 64 20 74 72 61 63 6b 2f 73 65 63 74 6f 72 20 74 6f ┆rs) ; read read track/sector to┆ 0x0c2100…0c2120 20 70 72 65 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 3b 09 77 72 69 74 65 09 77 72 69 ┆ preset dma address ; write wri┆ 0x0c2120…0c2140 74 65 20 74 72 61 63 6b 2f 73 65 63 74 6f 72 20 66 72 6f 6d 20 70 72 65 73 65 74 20 64 6d 61 20 ┆te track/sector from preset dma ┆ 0x0c2140…0c2160 61 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b 09 6a 75 6d 70 20 76 65 63 74 6f 72 20 66 6f 72 20 69 6e ┆address ; ; jump vector for in┆ 0x0c2160…0c2180 64 69 76 69 75 61 6c 20 72 6f 75 74 69 6e 65 73 0d 0a 09 6a 6d 70 09 62 6f 6f 74 0d 0a 77 62 6f ┆diviual routines jmp boot wbo┆ 0x0c2180…0c21a0 6f 74 65 3a 09 6a 6d 70 09 77 62 6f 6f 74 0d 0a 09 6a 6d 70 09 63 6f 6e 73 74 0d 0a 09 6a 6d 70 ┆ote: jmp wboot jmp const jmp┆ 0x0c21a0…0c21c0 09 63 6f 6e 69 6e 0d 0a 09 6a 6d 70 09 63 6f 6e 6f 75 74 0d 0a 09 6a 6d 70 09 6c 69 73 74 0d 0a ┆ conin jmp conout jmp list ┆ 0x0c21c0…0c21e0 09 6a 6d 70 09 70 75 6e 63 68 0d 0a 09 6a 6d 70 09 72 65 61 64 65 72 0d 0a 09 6a 6d 70 09 68 6f ┆ jmp punch jmp reader jmp ho┆ 0x0c21e0…0c2200 6d 65 0d 0a 09 6a 6d 70 09 73 65 6c 64 73 6b 0d 0a 09 6a 6d 70 09 73 65 74 74 72 6b 0d 0a 09 6a ┆me jmp seldsk jmp settrk j┆ 0x0c2200…0c2220 (51, 1, 9) 6e 75 6d 62 65 72 20 74 6f 20 41 0d 0a 09 73 74 61 09 69 6f 73 0d 0a 09 6d 6f 76 09 6c 2c 61 09 ┆number to A sta ios mov l,a ┆ 0x0c2220…0c2240 3b 72 65 74 75 72 6e 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 69 6e 20 4c 0d 0a 09 72 65 74 ┆;return sector number in L ret┆ 0x0c2240…0c2260 0d 0a 3b 0d 0a 73 65 74 64 6d 61 3a 09 3b 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 67 69 ┆ ; setdma: ;set dma address gi┆ 0x0c2260…0c2280 76 65 6e 20 62 79 20 72 65 67 73 20 62 2c 63 0d 0a 09 6d 6f 76 09 6c 2c 63 0d 0a 09 6d 6f 76 09 ┆ven by regs b,c mov l,c mov ┆ 0x0c2280…0c22a0 68 2c 62 0d 0a 09 73 68 6c 64 09 69 6f 64 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 72 65 61 64 3a 09 3b ┆h,b shld iod ret ; read: ;┆ 0x0c22a0…0c22c0 72 65 61 64 20 6e 65 78 74 20 64 69 73 6b 20 72 65 63 6f 72 64 20 28 61 73 73 75 6d 69 6e 67 20 ┆read next disk record (assuming ┆ 0x0c22c0…0c22e0 64 69 73 6b 2f 74 72 6b 2f 73 65 63 2f 64 6d 61 20 73 65 74 29 0d 0a 09 6d 76 69 09 63 2c 72 65 ┆disk/trk/sec/dma set) mvi c,re┆ 0x0c22e0…0c2300 61 64 66 09 3b 73 65 74 20 74 6f 20 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 63 61 6c 6c ┆adf ;set to read function call┆ 0x0c2300…0c2320 09 73 65 74 66 75 6e 63 0d 0a 09 63 61 6c 6c 09 77 61 69 74 69 6f 09 3b 70 65 72 66 6f 72 6d 20 ┆ setfunc call waitio ;perform ┆ 0x0c2320…0c2340 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 72 65 74 09 09 3b 6d 61 79 20 68 61 76 65 20 65 ┆read function ret ;may have e┆ 0x0c2340…0c2360 72 72 6f 72 20 73 65 74 20 69 6e 20 72 65 67 2d 61 0d 0a 3b 0d 0a 3b 0d 0a 77 72 69 74 65 3a 09 ┆rror set in reg-a ; ; write: ┆ 0x0c2360…0c2380 3b 64 69 73 6b 20 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6d 76 69 09 63 2c 77 72 69 ┆;disk write function mvi c,wri┆ 0x0c2380…0c23a0 74 66 0d 0a 09 63 61 6c 6c 09 73 65 74 66 75 6e 63 09 3b 73 65 74 20 74 6f 20 77 72 69 74 65 20 ┆tf call setfunc ;set to write ┆ 0x0c23a0…0c23c0 66 75 6e 63 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 77 61 69 74 69 6f 0d 0a 09 72 65 74 09 09 3b 6d ┆function call waitio ret ;m┆ 0x0c23c0…0c23e0 61 79 20 68 61 76 65 20 65 72 72 6f 72 20 73 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 75 74 69 6c 69 ┆ay have error set ; ; ; utili┆ 0x0c23e0…0c2400 74 79 20 73 75 62 72 6f 75 74 69 6e 65 73 0d 0a 70 72 6d 73 67 3a 09 3b 70 72 69 6e 74 20 6d 65 ┆ty subroutines prmsg: ;print me┆ 0x0c2400…0c2420 (51, 1, 10) 20 61 63 63 75 6d 75 6c 61 74 6f 72 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 77 65 72 72 6f ┆ accumulator ora a jnz werro┆ 0x0c2420…0c2440 72 09 09 3b 73 6f 6d 65 20 6f 74 68 65 72 20 63 6f 6e 64 69 74 69 6f 6e 2c 20 72 65 74 72 79 0d ┆r ;some other condition, retry ┆ 0x0c2440…0c2460 0a 3b 0d 0a 3b 09 63 68 65 63 6b 20 69 2f 6f 20 65 72 72 6f 72 20 62 69 74 73 0d 0a 09 63 61 6c ┆ ; ; check i/o error bits cal┆ 0x0c2460…0c2480 6c 09 69 6e 62 79 74 65 0d 0a 09 72 61 6c 0d 0a 09 6a 63 09 77 72 65 61 64 79 09 09 3b 75 6e 69 ┆l inbyte ral jc wready ;uni┆ 0x0c2480…0c24a0 74 20 6e 6f 74 20 72 65 61 64 79 0d 0a 09 72 61 72 0d 0a 09 61 6e 69 09 31 31 31 31 31 31 31 30 ┆t not ready rar ani 11111110┆ 0x0c24a0…0c24c0 62 09 3b 61 6e 79 20 6f 74 68 65 72 20 65 72 72 6f 72 73 3f 20 20 28 64 65 6c 65 74 65 64 20 64 ┆b ;any other errors? (deleted d┆ 0x0c24c0…0c24e0 61 74 61 20 6f 6b 29 0d 0a 09 6a 6e 7a 09 77 65 72 72 6f 72 0d 0a 3b 0d 0a 3b 09 72 65 61 64 20 ┆ata ok) jnz werror ; ; read ┆ 0x0c24e0…0c2500 6f 72 20 77 72 69 74 65 20 69 73 20 6f 6b 2c 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 63 6f 6e 74 ┆or write is ok, accumulator cont┆ 0x0c2500…0c2520 61 69 6e 73 20 7a 65 72 6f 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 77 72 65 61 64 79 3a 09 3b 6e 6f 74 ┆ains zero ret ; wready: ;not┆ 0x0c2520…0c2540 20 72 65 61 64 79 2c 20 74 72 65 61 74 20 61 73 20 65 72 72 6f 72 20 66 6f 72 20 6e 6f 77 0d 0a ┆ ready, treat as error for now ┆ 0x0c2540…0c2560 09 63 61 6c 6c 09 69 6e 62 79 74 65 09 09 3b 63 6c 65 61 72 20 72 65 73 75 6c 74 20 62 79 74 65 ┆ call inbyte ;clear result byte┆ 0x0c2560…0c2580 0d 0a 09 6a 6d 70 09 74 72 79 63 6f 75 6e 74 0d 0a 3b 0d 0a 77 65 72 72 6f 72 3a 09 3b 72 65 74 ┆ jmp trycount ; werror: ;ret┆ 0x0c2580…0c25a0 75 72 6e 20 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 20 28 63 72 63 2c 20 74 ┆urn hardware malfunction (crc, t┆ 0x0c25a0…0c25c0 72 61 63 6b 2c 20 73 65 65 6b 2c 20 65 74 63 2e 29 0d 0a 3b 09 74 68 65 20 6d 64 73 20 63 6f 6e ┆rack, seek, etc.) ; the mds con┆ 0x0c25c0…0c25e0 74 72 6f 6c 6c 65 72 20 68 61 73 20 72 65 74 75 72 6e 65 64 20 61 20 62 69 74 20 69 6e 20 65 61 ┆troller has returned a bit in ea┆ 0x0c25e0…0c2600 63 68 20 70 6f 73 69 74 69 6f 6e 0d 0a 3b 09 6f 66 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f ┆ch position ; of the accumulato┆ 0x0c2600…0c2620 (51, 1, 11) 0d 0a 3b 09 28 66 6f 75 72 20 64 72 69 76 65 20 73 69 6e 67 6c 65 20 64 65 6e 73 69 74 79 20 76 ┆ ; (four drive single density v┆ 0x0c2620…0c2640 65 72 73 69 6f 6e 29 0d 0a 3b 0d 0a 3b 09 56 65 72 73 69 6f 6e 20 32 2e 32 20 46 65 62 72 75 61 ┆ersion) ; ; Version 2.2 Februa┆ 0x0c2640…0c2660 72 79 2c 20 31 39 38 30 0d 0a 3b 0d 0a 76 65 72 73 09 65 71 75 09 32 32 09 3b 76 65 72 73 69 6f ┆ry, 1980 ; vers equ 22 ;versio┆ 0x0c2660…0c2680 6e 20 32 2e 32 0d 0a 3b 0d 0a 3b 09 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 39 38 30 0d 0a ┆n 2.2 ; ; Copyright (c) 1980 ┆ 0x0c2680…0c26a0 3b 09 44 69 67 69 74 61 6c 20 52 65 73 65 61 72 63 68 0d 0a 3b 09 42 6f 78 20 35 37 39 2c 20 50 ┆; Digital Research ; Box 579, P┆ 0x0c26a0…0c26c0 61 63 69 66 69 63 20 47 72 6f 76 65 0d 0a 3b 09 43 61 6c 69 66 6f 72 6e 69 61 2c 20 39 33 39 35 ┆acific Grove ; California, 9395┆ 0x0c26c0…0c26e0 30 0d 0a 3b 0d 0a 3b 0d 0a 74 72 75 65 09 65 71 75 09 30 66 66 66 66 68 09 3b 76 61 6c 75 65 20 ┆0 ; ; true equ 0ffffh ;value ┆ 0x0c26e0…0c2700 6f 66 20 22 74 72 75 65 22 0d 0a 66 61 6c 73 65 09 65 71 75 09 6e 6f 74 20 74 72 75 65 09 3b 22 ┆of "true" false equ not true ;"┆ 0x0c2700…0c2720 66 61 6c 73 65 22 0d 0a 74 65 73 74 09 65 71 75 09 66 61 6c 73 65 09 3b 74 72 75 65 20 69 66 20 ┆false" test equ false ;true if ┆ 0x0c2720…0c2740 74 65 73 74 20 62 69 6f 73 0d 0a 3b 0d 0a 09 69 66 09 74 65 73 74 0d 0a 62 69 61 73 09 65 71 75 ┆test bios ; if test bias equ┆ 0x0c2740…0c2760 09 30 33 34 30 30 68 09 3b 62 61 73 65 20 6f 66 20 43 43 50 20 69 6e 20 74 65 73 74 20 73 79 73 ┆ 03400h ;base of CCP in test sys┆ 0x0c2760…0c2780 74 65 6d 0d 0a 09 65 6e 64 69 66 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 62 69 61 73 09 ┆tem endif if not test bias ┆ 0x0c2780…0c27a0 65 71 75 09 30 30 30 30 68 09 3b 67 65 6e 65 72 61 74 65 20 72 65 6c 6f 63 61 74 61 62 6c 65 20 ┆equ 0000h ;generate relocatable ┆ 0x0c27a0…0c27c0 63 70 2f 6d 20 73 79 73 74 65 6d 0d 0a 09 65 6e 64 69 66 0d 0a 3b 0d 0a 70 61 74 63 68 09 65 71 ┆cp/m system endif ; patch eq┆ 0x0c27c0…0c27e0 75 09 31 36 30 30 68 0d 0a 3b 0d 0a 09 6f 72 67 09 70 61 74 63 68 0d 0a 63 70 6d 62 09 65 71 75 ┆u 1600h ; org patch cpmb equ┆ 0x0c27e0…0c2800 09 24 2d 70 61 74 63 68 09 3b 62 61 73 65 20 6f 66 20 63 70 6d 20 63 6f 6e 73 6f 6c 65 20 70 72 ┆ $-patch ;base of cpm console pr┆ 0x0c2800…0c2820 (51, 1, 12) 6d 70 09 73 65 74 73 65 63 0d 0a 09 6a 6d 70 09 73 65 74 64 6d 61 0d 0a 09 6a 6d 70 09 72 65 61 ┆mp setsec jmp setdma jmp rea┆ 0x0c2820…0c2840 64 0d 0a 09 6a 6d 70 09 77 72 69 74 65 0d 0a 09 6a 6d 70 09 6c 69 73 74 73 74 09 3b 6c 69 73 74 ┆d jmp write jmp listst ;list┆ 0x0c2840…0c2860 20 73 74 61 74 75 73 0d 0a 09 6a 6d 70 09 73 65 63 74 72 61 6e 0d 0a 3b 0d 0a 09 6d 61 63 6c 69 ┆ status jmp sectran ; macli┆ 0x0c2860…0c2880 62 09 64 69 73 6b 64 65 66 09 3b 6c 6f 61 64 20 74 68 65 20 64 69 73 6b 20 64 65 66 69 6e 69 74 ┆b diskdef ;load the disk definit┆ 0x0c2880…0c28a0 69 6f 6e 20 6c 69 62 72 61 72 79 0d 0a 09 64 69 73 6b 73 09 34 09 3b 66 6f 75 72 20 64 69 73 6b ┆ion library disks 4 ;four disk┆ 0x0c28a0…0c28c0 73 0d 0a 09 64 69 73 6b 64 65 66 09 30 2c 31 2c 32 36 2c 36 2c 31 30 32 34 2c 32 34 33 2c 36 34 ┆s diskdef 0,1,26,6,1024,243,64┆ 0x0c28c0…0c28e0 2c 36 34 2c 6f 66 66 73 65 74 0d 0a 09 64 69 73 6b 64 65 66 09 31 2c 30 0d 0a 09 64 69 73 6b 64 ┆,64,offset diskdef 1,0 diskd┆ 0x0c28e0…0c2900 65 66 09 32 2c 30 0d 0a 09 64 69 73 6b 64 65 66 09 33 2c 30 0d 0a 3b 09 65 6e 64 65 66 20 6f 63 ┆ef 2,0 diskdef 3,0 ; endef oc┆ 0x0c2900…0c2920 63 75 72 73 20 61 74 20 65 6e 64 20 6f 66 20 61 73 73 65 6d 62 6c 79 0d 0a 3b 0d 0a 3b 09 65 6e ┆curs at end of assembly ; ; en┆ 0x0c2920…0c2940 64 20 6f 66 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 2d 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 63 6f ┆d of controller - independent co┆ 0x0c2940…0c2960 64 65 2c 20 74 68 65 20 72 65 6d 61 69 6e 69 6e 67 20 73 75 62 72 6f 75 74 69 6e 65 73 0d 0a 3b ┆de, the remaining subroutines ;┆ 0x0c2960…0c2980 09 61 72 65 20 74 61 69 6c 6f 72 65 64 20 74 6f 20 74 68 65 20 70 61 72 74 69 63 75 6c 61 72 20 ┆ are tailored to the particular ┆ 0x0c2980…0c29a0 6f 70 65 72 61 74 69 6e 67 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 2c 20 61 6e 64 20 6d 75 73 74 0d ┆operating environment, and must ┆ 0x0c29a0…0c29c0 0a 3b 09 62 65 20 61 6c 74 65 72 65 64 20 66 6f 72 20 61 6e 79 20 73 79 73 74 65 6d 20 77 68 69 ┆ ; be altered for any system whi┆ 0x0c29c0…0c29e0 63 68 20 64 69 66 66 65 72 73 20 66 72 6f 6d 20 74 68 65 20 69 6e 74 65 6c 20 6d 64 73 2e 0d 0a ┆ch differs from the intel mds. ┆ 0x0c29e0…0c2a00 3b 0d 0a 3b 09 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 64 65 20 61 73 73 75 6d 65 73 20 ┆; ; the following code assumes ┆ 0x0c2a00…0c2a20 (51, 1, 13) 73 73 61 67 65 20 61 74 20 68 2c 6c 20 74 6f 20 30 0d 0a 09 6d 6f 76 09 61 2c 6d 0d 0a 09 6f 72 ┆ssage at h,l to 0 mov a,m or┆ 0x0c2a20…0c2a40 61 09 61 09 3b 7a 65 72 6f 3f 0d 0a 09 72 7a 0d 0a 3b 09 6d 6f 72 65 20 74 6f 20 70 72 69 6e 74 ┆a a ;zero? rz ; more to print┆ 0x0c2a40…0c2a60 0d 0a 09 70 75 73 68 09 68 0d 0a 09 6d 6f 76 09 63 2c 61 0d 0a 09 63 61 6c 6c 09 63 6f 6e 6f 75 ┆ push h mov c,a call conou┆ 0x0c2a60…0c2a80 74 0d 0a 09 70 6f 70 09 68 0d 0a 09 69 6e 78 09 68 0d 0a 09 6a 6d 70 09 70 72 6d 73 67 0d 0a 3b ┆t pop h inx h jmp prmsg ;┆ 0x0c2a80…0c2aa0 0d 0a 73 65 74 66 75 6e 63 3a 0d 0a 3b 09 73 65 74 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 6e ┆ setfunc: ; set function for n┆ 0x0c2aa0…0c2ac0 65 78 74 20 69 2f 6f 20 28 63 6f 6d 6d 61 6e 64 20 69 6e 20 72 65 67 2d 63 29 0d 0a 09 6c 78 69 ┆ext i/o (command in reg-c) lxi┆ 0x0c2ac0…0c2ae0 09 68 2c 69 6f 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 72 65 73 73 0d 0a 09 6d 6f ┆ h,iof ;io function address mo┆ 0x0c2ae0…0c2b00 76 09 61 2c 6d 09 3b 67 65 74 20 69 74 20 74 6f 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 66 6f 72 ┆v a,m ;get it to accumulator for┆ 0x0c2b00…0c2b20 20 6d 61 73 6b 69 6e 67 0d 0a 09 61 6e 69 09 31 31 31 31 31 30 30 30 62 09 3b 72 65 6d 6f 76 65 ┆ masking ani 11111000b ;remove┆ 0x0c2b20…0c2b40 20 70 72 65 76 69 6f 75 73 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6f 72 61 09 63 09 3b 73 65 74 20 74 ┆ previous command ora c ;set t┆ 0x0c2b40…0c2b60 6f 20 6e 65 77 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6d 6f 76 09 6d 2c 61 09 3b 72 65 70 6c 61 63 65 ┆o new command mov m,a ;replace┆ 0x0c2b60…0c2b80 64 20 69 6e 20 69 6f 70 62 0d 0a 3b 09 74 68 65 20 6d 64 73 2d 38 30 30 20 63 6f 6e 74 72 6f 6c ┆d in iopb ; the mds-800 control┆ 0x0c2b80…0c2ba0 6c 65 72 20 72 65 71 75 69 72 65 73 20 64 69 73 6b 20 62 61 6e 6b 20 62 69 74 20 69 6e 20 73 65 ┆ler requires disk bank bit in se┆ 0x0c2ba0…0c2bc0 63 74 6f 72 20 62 79 74 65 0d 0a 3b 09 6d 61 73 6b 20 74 68 65 20 62 69 74 20 66 72 6f 6d 20 74 ┆ctor byte ; mask the bit from t┆ 0x0c2bc0…0c2be0 68 65 20 63 75 72 72 65 6e 74 20 69 2f 6f 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 61 6e 69 09 30 30 ┆he current i/o function ani 00┆ 0x0c2be0…0c2c00 31 30 30 30 30 30 62 09 3b 6d 61 73 6b 20 74 68 65 20 64 69 73 6b 20 73 65 6c 65 63 74 20 62 69 ┆100000b ;mask the disk select bi┆ 0x0c2c00…0c2c20 (51, 1, 14) 72 2c 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 74 68 65 20 63 6f 6e 64 69 74 69 6f ┆r, corresponding to the conditio┆ 0x0c2c20…0c2c40 6e 73 3a 0d 0a 3b 09 30 09 2d 20 64 65 6c 65 74 65 64 20 64 61 74 61 20 28 61 63 63 65 70 74 65 ┆ns: ; 0 - deleted data (accepte┆ 0x0c2c40…0c2c60 64 20 61 73 20 6f 6b 20 61 62 6f 76 65 29 0d 0a 3b 09 31 09 2d 20 63 72 63 20 65 72 72 6f 72 0d ┆d as ok above) ; 1 - crc error ┆ 0x0c2c60…0c2c80 0a 3b 09 32 09 2d 20 73 65 65 6b 20 65 72 72 6f 72 0d 0a 3b 09 33 09 2d 20 61 64 64 72 65 73 73 ┆ ; 2 - seek error ; 3 - address┆ 0x0c2c80…0c2ca0 20 65 72 72 6f 72 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b ┆ error (hardware malfunction) ;┆ 0x0c2ca0…0c2cc0 09 34 09 2d 20 64 61 74 61 20 6f 76 65 72 2f 75 6e 64 65 72 20 66 6c 6f 77 20 28 68 61 72 64 77 ┆ 4 - data over/under flow (hardw┆ 0x0c2cc0…0c2ce0 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 35 09 2d 20 77 72 69 74 65 20 70 72 ┆are malfunction) ; 5 - write pr┆ 0x0c2ce0…0c2d00 6f 74 65 63 74 20 28 74 72 65 61 74 65 64 20 61 73 20 6e 6f 74 20 72 65 61 64 79 29 0d 0a 3b 09 ┆otect (treated as not ready) ; ┆ 0x0c2d00…0c2d20 36 09 2d 20 77 72 69 74 65 20 65 72 72 6f 72 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e ┆6 - write error (hardware malfun┆ 0x0c2d20…0c2d40 63 74 69 6f 6e 29 0d 0a 3b 09 37 09 2d 20 6e 6f 74 20 72 65 61 64 79 0d 0a 3b 09 28 61 63 63 75 ┆ction) ; 7 - not ready ; (accu┆ 0x0c2d40…0c2d60 6d 75 6c 61 74 6f 72 20 62 69 74 73 20 61 72 65 20 6e 75 6d 62 65 72 65 64 20 37 20 36 20 35 20 ┆mulator bits are numbered 7 6 5 ┆ 0x0c2d60…0c2d80 34 20 33 20 32 20 31 20 30 29 0d 0a 3b 0d 0a 3b 09 69 74 20 6d 61 79 20 62 65 20 75 73 65 66 75 ┆4 3 2 1 0) ; ; it may be usefu┆ 0x0c2d80…0c2da0 6c 20 74 6f 20 66 69 6c 74 65 72 20 6f 75 74 20 74 68 65 20 76 61 72 69 6f 75 73 20 63 6f 6e 64 ┆l to filter out the various cond┆ 0x0c2da0…0c2dc0 69 74 69 6f 6e 73 2c 0d 0a 3b 09 62 75 74 20 77 65 20 77 69 6c 6c 20 67 65 74 20 61 20 70 65 72 ┆itions, ; but we will get a per┆ 0x0c2dc0…0c2de0 6d 61 6e 65 6e 74 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 69 66 20 69 74 20 69 73 20 6e 6f ┆manent error message if it is no┆ 0x0c2de0…0c2e00 74 0d 0a 3b 09 72 65 63 6f 76 65 72 61 62 6c 65 2e 20 20 69 6e 20 61 6e 79 20 63 61 73 65 2c 20 ┆t ; recoverable. in any case, ┆ 0x0c2e00…0c2e20 (51, 1, 15) 6f 63 65 73 73 6f 72 0d 0a 62 64 6f 73 09 65 71 75 09 38 30 36 68 2b 63 70 6d 62 09 3b 62 61 73 ┆ocessor bdos equ 806h+cpmb ;bas┆ 0x0c2e20…0c2e40 69 63 20 64 6f 73 20 28 72 65 73 69 64 65 6e 74 20 70 6f 72 74 69 6f 6e 29 0d 0a 63 70 6d 6c 09 ┆ic dos (resident portion) cpml ┆ 0x0c2e40…0c2e60 65 71 75 09 24 2d 63 70 6d 62 09 3b 6c 65 6e 67 74 68 20 28 69 6e 20 62 79 74 65 73 29 20 6f 66 ┆equ $-cpmb ;length (in bytes) of┆ 0x0c2e60…0c2e80 20 63 70 6d 20 73 79 73 74 65 6d 0d 0a 6e 73 65 63 74 73 09 65 71 75 09 63 70 6d 6c 2f 31 32 38 ┆ cpm system nsects equ cpml/128┆ 0x0c2e80…0c2ea0 09 3b 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 20 74 6f 20 6c 6f 61 64 0d 0a 6f 66 66 ┆ ;number of sectors to load off┆ 0x0c2ea0…0c2ec0 73 65 74 09 65 71 75 09 32 09 3b 6e 75 6d 62 65 72 20 6f 66 20 64 69 73 6b 20 74 72 61 63 6b 73 ┆set equ 2 ;number of disk tracks┆ 0x0c2ec0…0c2ee0 20 75 73 65 64 20 62 79 20 63 70 2f 6d 0d 0a 63 64 69 73 6b 09 65 71 75 09 30 30 30 34 68 09 3b ┆ used by cp/m cdisk equ 0004h ;┆ 0x0c2ee0…0c2f00 61 64 64 72 65 73 73 20 6f 66 20 6c 61 73 74 20 6c 6f 67 67 65 64 20 64 69 73 6b 20 6f 6e 20 77 ┆address of last logged disk on w┆ 0x0c2f00…0c2f20 61 72 6d 20 73 74 61 72 74 0d 0a 62 75 66 66 09 65 71 75 09 30 30 38 30 68 09 3b 64 65 66 61 75 ┆arm start buff equ 0080h ;defau┆ 0x0c2f20…0c2f40 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 0d 0a 72 65 74 72 79 09 65 71 75 09 31 30 09 ┆lt buffer address retry equ 10 ┆ 0x0c2f40…0c2f60 3b 6d 61 78 20 72 65 74 72 69 65 73 20 6f 6e 20 64 69 73 6b 20 69 2f 6f 20 62 65 66 6f 72 65 20 ┆;max retries on disk i/o before ┆ 0x0c2f60…0c2f80 65 72 72 6f 72 0d 0a 3b 0d 0a 3b 09 70 65 72 66 6f 72 6d 20 66 6f 6c 6c 6f 77 69 6e 67 20 66 75 ┆error ; ; perform following fu┆ 0x0c2f80…0c2fa0 6e 63 74 69 6f 6e 73 0d 0a 3b 09 62 6f 6f 74 09 63 6f 6c 64 20 73 74 61 72 74 0d 0a 3b 09 77 62 ┆nctions ; boot cold start ; wb┆ 0x0c2fa0…0c2fc0 6f 6f 74 09 77 61 72 6d 20 73 74 61 72 74 20 28 73 61 76 65 20 69 2f 6f 20 62 79 74 65 29 0d 0a ┆oot warm start (save i/o byte) ┆ 0x0c2fc0…0c2fe0 3b 09 28 62 6f 6f 74 20 61 6e 64 20 77 62 6f 6f 74 20 61 72 65 20 74 68 65 20 73 61 6d 65 20 66 ┆; (boot and wboot are the same f┆ 0x0c2fe0…0c3000 6f 72 20 6d 64 73 29 0d 0a 3b 09 63 6f 6e 73 74 09 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 0d ┆or mds) ; const console status ┆ 0x0c3000…0c3020 (52, 0, 1) 74 68 65 20 6d 64 73 20 6d 6f 6e 69 74 6f 72 20 65 78 69 73 74 73 20 61 74 20 30 66 38 30 30 68 ┆the mds monitor exists at 0f800h┆ 0x0c3020…0c3040 0d 0a 3b 09 61 6e 64 20 75 73 65 73 20 74 68 65 20 69 2f 6f 20 73 75 62 72 6f 75 74 69 6e 65 73 ┆ ; and uses the i/o subroutines┆ 0x0c3040…0c3060 20 77 69 74 68 69 6e 20 74 68 65 20 6d 6f 6e 69 74 6f 72 0d 0a 3b 0d 0a 3b 09 77 65 20 61 6c 73 ┆ within the monitor ; ; we als┆ 0x0c3060…0c3080 6f 20 61 73 73 75 6d 65 20 74 68 65 20 6d 64 73 20 73 79 73 74 65 6d 20 68 61 73 20 66 6f 75 72 ┆o assume the mds system has four┆ 0x0c3080…0c30a0 20 64 69 73 6b 20 64 72 69 76 65 73 0d 0a 72 65 76 72 74 09 65 71 75 09 30 66 64 68 09 3b 69 6e ┆ disk drives revrt equ 0fdh ;in┆ 0x0c30a0…0c30c0 74 65 72 72 75 70 74 20 72 65 76 65 72 74 20 70 6f 72 74 0d 0a 69 6e 74 63 09 65 71 75 09 30 66 ┆terrupt revert port intc equ 0f┆ 0x0c30c0…0c30e0 63 68 09 3b 69 6e 74 65 72 72 75 70 74 20 6d 61 73 6b 20 70 6f 72 74 0d 0a 69 63 6f 6e 09 65 71 ┆ch ;interrupt mask port icon eq┆ 0x0c30e0…0c3100 75 09 30 66 33 68 09 3b 69 6e 74 65 72 72 75 70 74 20 63 6f 6e 74 72 6f 6c 20 70 6f 72 74 0d 0a ┆u 0f3h ;interrupt control port ┆ 0x0c3100…0c3120 69 6e 74 65 09 65 71 75 09 30 31 31 31 24 31 31 31 30 62 09 3b 65 6e 61 62 6c 65 20 72 73 74 20 ┆inte equ 0111$1110b ;enable rst ┆ 0x0c3120…0c3140 30 28 77 61 72 6d 20 62 6f 6f 74 29 2c 20 72 73 74 20 37 20 28 6d 6f 6e 69 74 6f 72 29 0d 0a 3b ┆0(warm boot), rst 7 (monitor) ;┆ 0x0c3140…0c3160 0d 0a 3b 09 6d 64 73 20 6d 6f 6e 69 74 6f 72 20 65 71 75 61 74 65 73 0d 0a 6d 6f 6e 38 30 09 65 ┆ ; mds monitor equates mon80 e┆ 0x0c3160…0c3180 71 75 09 30 66 38 30 30 68 09 3b 6d 64 73 20 6d 6f 6e 69 74 6f 72 0d 0a 72 6d 6f 6e 38 30 09 65 ┆qu 0f800h ;mds monitor rmon80 e┆ 0x0c3180…0c31a0 71 75 09 30 66 66 30 66 68 09 3b 72 65 73 74 61 72 74 20 6d 6f 6e 38 30 20 28 62 6f 6f 74 20 65 ┆qu 0ff0fh ;restart mon80 (boot e┆ 0x0c31a0…0c31c0 72 72 6f 72 29 0d 0a 63 69 09 65 71 75 09 30 66 38 30 33 68 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 ┆rror) ci equ 0f803h ;console ch┆ 0x0c31c0…0c31e0 61 72 61 63 74 65 72 20 74 6f 20 72 65 67 2d 61 0d 0a 72 69 09 65 71 75 09 30 66 38 30 36 68 09 ┆aracter to reg-a ri equ 0f806h ┆ 0x0c31e0…0c3200 3b 72 65 61 64 65 72 20 69 6e 20 74 6f 20 72 65 67 2d 61 0d 0a 63 6f 09 65 71 75 09 30 66 38 30 ┆;reader in to reg-a co equ 0f80┆ 0x0c3200…0c3220 (52, 0, 2) 6b 0d 0a 09 6d 76 69 09 63 2c 30 0d 0a 09 63 61 6c 6c 09 73 65 74 74 72 6b 09 3b 73 74 61 72 74 ┆k mvi c,0 call settrk ;start┆ 0x0c3220…0c3240 20 77 69 74 68 20 74 72 61 63 6b 20 30 0d 0a 09 6d 76 69 09 63 2c 32 09 3b 73 74 61 72 74 20 72 ┆ with track 0 mvi c,2 ;start r┆ 0x0c3240…0c3260 65 61 64 69 6e 67 20 73 65 63 74 6f 72 20 32 0d 0a 09 63 61 6c 6c 09 73 65 74 73 65 63 0d 0a 3b ┆eading sector 2 call setsec ;┆ 0x0c3260…0c3280 0d 0a 3b 09 72 65 61 64 20 73 65 63 74 6f 72 73 2c 20 63 6f 75 6e 74 20 6e 73 65 63 74 73 20 74 ┆ ; read sectors, count nsects t┆ 0x0c3280…0c32a0 6f 20 7a 65 72 6f 0d 0a 09 70 6f 70 09 62 09 3b 31 30 2d 65 72 72 6f 72 20 63 6f 75 6e 74 0d 0a ┆o zero pop b ;10-error count ┆ 0x0c32a0…0c32c0 09 6d 76 69 09 62 2c 6e 73 65 63 74 73 0d 0a 72 64 73 65 63 3a 09 3b 72 65 61 64 20 6e 65 78 74 ┆ mvi b,nsects rdsec: ;read next┆ 0x0c32c0…0c32e0 20 73 65 63 74 6f 72 0d 0a 09 70 75 73 68 09 62 09 3b 73 61 76 65 20 73 65 63 74 6f 72 20 63 6f ┆ sector push b ;save sector co┆ 0x0c32e0…0c3300 75 6e 74 0d 0a 09 63 61 6c 6c 09 72 65 61 64 0d 0a 09 6a 6e 7a 09 62 6f 6f 74 65 72 72 09 3b 72 ┆unt call read jnz booterr ;r┆ 0x0c3300…0c3320 65 74 72 79 20 69 66 20 65 72 72 6f 72 73 20 6f 63 63 75 72 0d 0a 09 6c 68 6c 64 09 69 6f 64 09 ┆etry if errors occur lhld iod ┆ 0x0c3320…0c3340 3b 69 6e 63 72 65 6d 65 6e 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 09 6c 78 69 09 64 2c 31 ┆;increment dma address lxi d,1┆ 0x0c3340…0c3360 32 38 09 3b 73 65 63 74 6f 72 20 73 69 7a 65 0d 0a 09 64 61 64 09 64 09 3b 69 6e 63 72 65 6d 65 ┆28 ;sector size dad d ;increme┆ 0x0c3360…0c3380 6e 74 65 64 20 64 6d 61 20 61 64 64 72 65 73 73 20 69 6e 20 68 6c 0d 0a 09 6d 6f 76 09 62 2c 68 ┆nted dma address in hl mov b,h┆ 0x0c3380…0c33a0 0d 0a 09 6d 6f 76 09 63 2c 6c 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 20 74 6f 20 73 65 ┆ mov c,l ;ready for call to se┆ 0x0c33a0…0c33c0 74 20 64 6d 61 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 09 6c 64 61 09 69 6f 73 09 3b 73 ┆t dma call setdma lda ios ;s┆ 0x0c33c0…0c33e0 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 6a 75 73 74 20 72 65 61 64 0d 0a 09 63 70 69 09 32 36 09 ┆ector number just read cpi 26 ┆ 0x0c33e0…0c3400 3b 72 65 61 64 20 6c 61 73 74 20 73 65 63 74 6f 72 3f 0d 0a 09 6a 63 09 72 64 31 0d 0a 3b 09 6d ┆;read last sector? jc rd1 ; m┆ 0x0c3400…0c3420 (52, 0, 3) 20 66 72 6f 6d 20 63 20 74 6f 20 63 6f 6e 73 6f 6c 65 20 6f 75 74 0d 0a 09 6a 6d 70 09 63 6f 0d ┆ from c to console out jmp co ┆ 0x0c3420…0c3440 0a 3b 0d 0a 6c 69 73 74 3a 09 3b 6c 69 73 74 20 64 65 76 69 63 65 20 6f 75 74 0d 0a 3b 09 28 65 ┆ ; list: ;list device out ; (e┆ 0x0c3440…0c3460 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a ┆xactly the same as mds call) j┆ 0x0c3460…0c3480 6d 70 09 6c 6f 0d 0a 3b 0d 0a 6c 69 73 74 73 74 3a 0d 0a 09 3b 72 65 74 75 72 6e 20 6c 69 73 74 ┆mp lo ; listst: ;return list┆ 0x0c3480…0c34a0 20 73 74 61 74 75 73 0d 0a 09 78 72 61 09 61 0d 0a 09 72 65 74 09 09 3b 61 6c 77 61 79 73 20 6e ┆ status xra a ret ;always n┆ 0x0c34a0…0c34c0 6f 74 20 72 65 61 64 79 0d 0a 3b 0d 0a 70 75 6e 63 68 3a 09 3b 70 75 6e 63 68 20 64 65 76 69 63 ┆ot ready ; punch: ;punch devic┆ 0x0c34c0…0c34e0 65 20 6f 75 74 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 ┆e out ; (exactly the same as md┆ 0x0c34e0…0c3500 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 70 6f 0d 0a 3b 0d 0a 72 65 61 64 65 72 3a 09 3b 72 65 ┆s call) jmp po ; reader: ;re┆ 0x0c3500…0c3520 61 64 65 72 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 74 6f 20 72 65 67 2d 61 0d 0a 3b 09 28 65 ┆ader character in to reg-a ; (e┆ 0x0c3520…0c3540 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a ┆xactly the same as mds call) j┆ 0x0c3540…0c3560 6d 70 09 72 69 0d 0a 3b 0d 0a 68 6f 6d 65 3a 09 3b 6d 6f 76 65 20 74 6f 20 68 6f 6d 65 20 70 6f ┆mp ri ; home: ;move to home po┆ 0x0c3560…0c3580 73 69 74 69 6f 6e 0d 0a 3b 09 74 72 65 61 74 20 61 73 20 74 72 61 63 6b 20 30 30 20 73 65 65 6b ┆sition ; treat as track 00 seek┆ 0x0c3580…0c35a0 0d 0a 09 6d 76 69 09 63 2c 30 0d 0a 09 6a 6d 70 09 73 65 74 74 72 6b 0d 0a 3b 0d 0a 73 65 6c 64 ┆ mvi c,0 jmp settrk ; seld┆ 0x0c35a0…0c35c0 73 6b 3a 09 3b 73 65 6c 65 63 74 20 64 69 73 6b 20 67 69 76 65 6e 20 62 79 20 72 65 67 69 73 74 ┆sk: ;select disk given by regist┆ 0x0c35c0…0c35e0 65 72 20 63 0d 0a 09 6c 78 69 09 68 2c 30 30 30 30 68 09 3b 72 65 74 75 72 6e 20 30 30 30 30 20 ┆er c lxi h,0000h ;return 0000 ┆ 0x0c35e0…0c3600 69 66 20 65 72 72 6f 72 0d 0a 09 6d 6f 76 09 61 2c 63 0d 0a 09 63 70 69 09 6e 64 69 73 6b 73 09 ┆if error mov a,c cpi ndisks ┆ 0x0c3600…0c3620 (52, 0, 4) 63 6f 6e 6f 75 74 0d 0a 09 70 6f 70 09 68 0d 0a 09 69 6e 78 09 68 0d 0a 09 6a 6d 70 09 70 72 6d ┆conout pop h inx h jmp prm┆ 0x0c3620…0c3640 73 67 0d 0a 3b 0d 0a 73 65 74 66 75 6e 63 3a 0d 0a 3b 09 73 65 74 20 66 75 6e 63 74 69 6f 6e 20 ┆sg ; setfunc: ; set function ┆ 0x0c3640…0c3660 66 6f 72 20 6e 65 78 74 20 69 2f 6f 20 28 63 6f 6d 6d 61 6e 64 20 69 6e 20 72 65 67 2d 63 29 0d ┆for next i/o (command in reg-c) ┆ 0x0c3660…0c3680 0a 09 6c 78 69 09 68 2c 69 6f 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 72 65 73 73 ┆ lxi h,iof ;io function address┆ 0x0c3680…0c36a0 0d 0a 09 6d 6f 76 09 61 2c 6d 09 3b 67 65 74 20 69 74 20 74 6f 20 61 63 63 75 6d 75 6c 61 74 6f ┆ mov a,m ;get it to accumulato┆ 0x0c36a0…0c36c0 72 20 66 6f 72 20 6d 61 73 6b 69 6e 67 0d 0a 09 61 6e 69 09 31 31 31 31 31 30 30 30 62 09 3b 72 ┆r for masking ani 11111000b ;r┆ 0x0c36c0…0c36e0 65 6d 6f 76 65 20 70 72 65 76 69 6f 75 73 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6f 72 61 09 63 09 3b ┆emove previous command ora c ;┆ 0x0c36e0…0c3700 73 65 74 20 74 6f 20 6e 65 77 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6d 6f 76 09 6d 2c 61 09 3b 72 65 ┆set to new command mov m,a ;re┆ 0x0c3700…0c3720 70 6c 61 63 65 64 20 69 6e 20 69 6f 70 62 0d 0a 3b 09 74 68 65 20 6d 64 73 2d 38 30 30 20 63 6f ┆placed in iopb ; the mds-800 co┆ 0x0c3720…0c3740 6e 74 72 6f 6c 6c 65 72 20 72 65 71 75 69 72 65 73 20 64 69 73 6b 20 62 61 6e 6b 20 62 69 74 20 ┆ntroller requires disk bank bit ┆ 0x0c3740…0c3760 69 6e 20 73 65 63 74 6f 72 20 62 79 74 65 0d 0a 3b 09 6d 61 73 6b 20 74 68 65 20 62 69 74 20 66 ┆in sector byte ; mask the bit f┆ 0x0c3760…0c3780 72 6f 6d 20 74 68 65 20 63 75 72 72 65 6e 74 20 69 2f 6f 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 61 ┆rom the current i/o function a┆ 0x0c3780…0c37a0 6e 69 09 30 30 31 30 30 30 30 30 62 09 3b 6d 61 73 6b 20 74 68 65 20 64 69 73 6b 20 73 65 6c 65 ┆ni 00100000b ;mask the disk sele┆ 0x0c37a0…0c37c0 63 74 20 62 69 74 0d 0a 09 6c 78 69 09 68 2c 69 6f 73 09 09 3b 61 64 64 72 65 73 73 20 74 68 65 ┆ct bit lxi h,ios ;address the┆ 0x0c37c0…0c37e0 20 73 65 63 74 6f 72 20 73 65 6c 65 63 74 20 62 79 74 65 0d 0a 09 6f 72 61 09 6d 09 09 3b 73 65 ┆ sector select byte ora m ;se┆ 0x0c37e0…0c3800 6c 65 63 74 20 70 72 6f 70 65 72 20 64 69 73 6b 20 62 61 6e 6b 0d 0a 09 6d 6f 76 09 6d 2c 61 09 ┆lect proper disk bank mov m,a ┆ 0x0c3800…0c3820 (52, 0, 5) 39 68 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 20 66 72 6f 6d 20 63 20 74 6f 20 63 6f 6e 73 6f ┆9h ;console char from c to conso┆ 0x0c3820…0c3840 6c 65 20 6f 75 74 0d 0a 70 6f 09 65 71 75 09 30 66 38 30 63 68 09 3b 70 75 6e 63 68 20 63 68 61 ┆le out po equ 0f80ch ;punch cha┆ 0x0c3840…0c3860 72 20 66 72 6f 6d 20 63 20 74 6f 20 70 75 6e 63 68 20 64 65 76 69 63 65 0d 0a 6c 6f 09 65 71 75 ┆r from c to punch device lo equ┆ 0x0c3860…0c3880 09 30 66 38 30 66 68 09 3b 6c 69 73 74 20 66 72 6f 6d 20 63 20 74 6f 20 6c 69 73 74 20 64 65 76 ┆ 0f80fh ;list from c to list dev┆ 0x0c3880…0c38a0 69 63 65 0d 0a 63 73 74 73 09 65 71 75 09 30 66 38 31 32 68 09 3b 63 6f 6e 73 6f 6c 65 20 73 74 ┆ice csts equ 0f812h ;console st┆ 0x0c38a0…0c38c0 61 74 75 73 20 30 30 2f 66 66 20 74 6f 20 72 65 67 69 73 74 65 72 20 61 0d 0a 3b 0d 0a 3b 09 64 ┆atus 00/ff to register a ; ; d┆ 0x0c38c0…0c38e0 69 73 6b 20 70 6f 72 74 73 20 61 6e 64 20 63 6f 6d 6d 61 6e 64 73 0d 0a 62 61 73 65 09 65 71 75 ┆isk ports and commands base equ┆ 0x0c38e0…0c3900 09 37 38 68 09 3b 62 61 73 65 20 6f 66 20 64 69 73 6b 20 63 6f 6d 6d 61 6e 64 20 69 6f 20 70 6f ┆ 78h ;base of disk command io po┆ 0x0c3900…0c3920 72 74 73 0d 0a 64 73 74 61 74 09 65 71 75 09 62 61 73 65 09 3b 64 69 73 6b 20 73 74 61 74 75 73 ┆rts dstat equ base ;disk status┆ 0x0c3920…0c3940 20 28 69 6e 70 75 74 29 0d 0a 72 74 79 70 65 09 65 71 75 09 62 61 73 65 2b 31 09 3b 72 65 73 75 ┆ (input) rtype equ base+1 ;resu┆ 0x0c3940…0c3960 6c 74 20 74 79 70 65 20 28 69 6e 70 75 74 29 0d 0a 72 62 79 74 65 09 65 71 75 09 62 61 73 65 2b ┆lt type (input) rbyte equ base+┆ 0x0c3960…0c3980 33 09 3b 72 65 73 75 6c 74 20 62 79 74 65 20 28 69 6e 70 75 74 29 0d 0a 3b 0d 0a 69 6c 6f 77 09 ┆3 ;result byte (input) ; ilow ┆ 0x0c3980…0c39a0 65 71 75 09 62 61 73 65 2b 31 09 3b 69 6f 70 62 20 6c 6f 77 20 61 64 64 72 65 73 73 20 28 6f 75 ┆equ base+1 ;iopb low address (ou┆ 0x0c39a0…0c39c0 74 70 75 74 29 0d 0a 69 68 69 67 68 09 65 71 75 09 62 61 73 65 2b 32 09 3b 69 6f 70 62 20 68 69 ┆tput) ihigh equ base+2 ;iopb hi┆ 0x0c39c0…0c39e0 67 68 20 61 64 64 72 65 73 73 20 28 6f 75 74 70 75 74 29 0d 0a 3b 0d 0a 72 65 61 64 66 09 65 71 ┆gh address (output) ; readf eq┆ 0x0c39e0…0c3a00 75 09 34 68 09 3b 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 77 72 69 74 66 09 65 71 75 09 36 ┆u 4h ;read function writf equ 6┆ 0x0c3a00…0c3a20 (52, 0, 6) 75 73 74 20 62 65 20 73 65 63 74 6f 72 20 32 36 2c 20 7a 65 72 6f 20 61 6e 64 20 67 6f 20 74 6f ┆ust be sector 26, zero and go to┆ 0x0c3a20…0c3a40 20 6e 65 78 74 20 74 72 61 63 6b 0d 0a 09 6c 64 61 09 69 6f 74 09 3b 67 65 74 20 74 72 61 63 6b ┆ next track lda iot ;get track┆ 0x0c3a40…0c3a60 20 74 6f 20 72 65 67 69 73 74 65 72 20 61 0d 0a 09 69 6e 72 09 61 0d 0a 09 6d 6f 76 09 63 2c 61 ┆ to register a inr a mov c,a┆ 0x0c3a60…0c3a80 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 0d 0a 09 63 61 6c 6c 09 73 65 74 74 72 6b 0d 0a ┆ ;ready for call call settrk ┆ 0x0c3a80…0c3aa0 09 78 72 61 09 61 09 3b 63 6c 65 61 72 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 0d 0a 72 64 31 ┆ xra a ;clear sector number rd1┆ 0x0c3aa0…0c3ac0 3a 09 69 6e 72 09 61 09 3b 74 6f 20 6e 65 78 74 20 73 65 63 74 6f 72 0d 0a 09 6d 6f 76 09 63 2c ┆: inr a ;to next sector mov c,┆ 0x0c3ac0…0c3ae0 61 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 0d 0a 09 63 61 6c 6c 09 73 65 74 73 65 63 0d ┆a ;ready for call call setsec ┆ 0x0c3ae0…0c3b00 0a 09 70 6f 70 09 62 09 3b 72 65 63 61 6c 6c 20 73 65 63 74 6f 72 20 63 6f 75 6e 74 0d 0a 09 64 ┆ pop b ;recall sector count d┆ 0x0c3b00…0c3b20 63 72 09 62 09 3b 64 6f 6e 65 3f 0d 0a 09 6a 6e 7a 09 72 64 73 65 63 0d 0a 3b 0d 0a 3b 09 64 6f ┆cr b ;done? jnz rdsec ; ; do┆ 0x0c3b20…0c3b40 6e 65 20 77 69 74 68 20 74 68 65 20 6c 6f 61 64 2c 20 72 65 73 65 74 20 64 65 66 61 75 6c 74 20 ┆ne with the load, reset default ┆ 0x0c3b40…0c3b60 62 75 66 66 65 72 20 61 64 64 72 65 73 73 0d 0a 67 6f 63 70 6d 3a 09 3b 28 65 6e 74 65 72 20 68 ┆buffer address gocpm: ;(enter h┆ 0x0c3b60…0c3b80 65 72 65 20 66 72 6f 6d 20 63 6f 6c 64 20 73 74 61 72 74 20 62 6f 6f 74 29 0d 0a 3b 09 65 6e 61 ┆ere from cold start boot) ; ena┆ 0x0c3b80…0c3ba0 62 6c 65 20 72 73 74 30 20 61 6e 64 20 72 73 74 37 0d 0a 09 64 69 0d 0a 09 6d 76 69 09 61 2c 31 ┆ble rst0 and rst7 di mvi a,1┆ 0x0c3ba0…0c3bc0 32 68 09 3b 69 6e 69 74 69 61 6c 69 7a 65 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6f 75 74 09 72 65 76 ┆2h ;initialize command out rev┆ 0x0c3bc0…0c3be0 72 74 0d 0a 09 78 72 61 09 61 0d 0a 09 6f 75 74 09 69 6e 74 63 09 3b 63 6c 65 61 72 65 64 0d 0a ┆rt xra a out intc ;cleared ┆ 0x0c3be0…0c3c00 09 6d 76 69 09 61 2c 69 6e 74 65 09 3b 72 73 74 30 20 61 6e 64 20 72 73 74 37 20 62 69 74 73 20 ┆ mvi a,inte ;rst0 and rst7 bits ┆ 0x0c3c00…0c3c20 (52, 0, 7) 3b 74 6f 6f 20 6c 61 72 67 65 3f 0d 0a 09 72 6e 63 09 09 3b 6c 65 61 76 65 20 48 4c 20 3d 20 30 ┆;too large? rnc ;leave HL = 0┆ 0x0c3c20…0c3c40 30 30 30 0d 0a 3b 0d 0a 09 61 6e 69 09 31 30 62 09 3b 30 30 20 30 30 20 66 6f 72 20 64 72 69 76 ┆000 ; ani 10b ;00 00 for driv┆ 0x0c3c40…0c3c60 65 20 30 2c 31 20 61 6e 64 20 31 30 20 31 30 20 66 6f 72 20 64 72 69 76 65 20 32 2c 33 0d 0a 09 ┆e 0,1 and 10 10 for drive 2,3 ┆ 0x0c3c60…0c3c80 73 74 61 09 64 62 61 6e 6b 09 3b 74 6f 20 73 65 6c 65 63 74 20 64 72 69 76 65 20 62 61 6e 6b 0d ┆sta dbank ;to select drive bank ┆ 0x0c3c80…0c3ca0 0a 09 6d 6f 76 09 61 2c 63 09 3b 30 30 2c 20 30 31 2c 20 31 30 2c 20 31 31 0d 0a 09 61 6e 69 09 ┆ mov a,c ;00, 01, 10, 11 ani ┆ 0x0c3ca0…0c3cc0 31 62 09 3b 6d 64 73 20 68 61 73 20 30 2c 31 20 61 74 20 37 38 2c 20 32 2c 33 20 61 74 20 38 38 ┆1b ;mds has 0,1 at 78, 2,3 at 88┆ 0x0c3cc0…0c3ce0 0d 0a 09 6f 72 61 09 61 09 3b 72 65 73 75 6c 74 20 30 30 3f 0d 0a 09 6a 7a 09 73 65 74 64 72 69 ┆ ora a ;result 00? jz setdri┆ 0x0c3ce0…0c3d00 76 65 0d 0a 09 6d 76 69 09 61 2c 30 30 31 31 30 30 30 30 62 09 3b 73 65 6c 65 63 74 73 20 64 72 ┆ve mvi a,00110000b ;selects dr┆ 0x0c3d00…0c3d20 69 76 65 20 31 20 69 6e 20 62 61 6e 6b 0d 0a 73 65 74 64 72 69 76 65 3a 0d 0a 09 6d 6f 76 09 62 ┆ive 1 in bank setdrive: mov b┆ 0x0c3d20…0c3d40 2c 61 09 3b 73 61 76 65 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6c 78 69 09 68 2c 69 6f ┆,a ;save the function lxi h,io┆ 0x0c3d40…0c3d60 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6d 6f 76 09 61 2c 6d 0d 0a 09 61 6e 69 09 31 ┆f ;io function mov a,m ani 1┆ 0x0c3d60…0c3d80 31 30 30 31 31 31 31 62 09 3b 6d 61 73 6b 20 6f 75 74 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a ┆1001111b ;mask out disk number ┆ 0x0c3d80…0c3da0 09 6f 72 61 09 62 09 3b 6d 61 73 6b 20 69 6e 20 6e 65 77 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d ┆ ora b ;mask in new disk number ┆ 0x0c3da0…0c3dc0 0a 09 6d 6f 76 09 6d 2c 61 09 3b 73 61 76 65 20 69 74 20 69 6e 20 69 6f 70 62 0d 0a 09 6d 6f 76 ┆ mov m,a ;save it in iopb mov┆ 0x0c3dc0…0c3de0 09 6c 2c 63 0d 0a 09 6d 76 69 09 68 2c 30 09 3b 48 4c 3d 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a ┆ l,c mvi h,0 ;HL=disk number ┆ 0x0c3de0…0c3e00 09 64 61 64 09 68 09 3b 2a 32 0d 0a 09 64 61 64 09 68 09 3b 2a 34 0d 0a 09 64 61 64 09 68 09 3b ┆ dad h ;*2 dad h ;*4 dad h ;┆ 0x0c3e00…0c3e20 (52, 0, 8) 09 3b 73 65 74 20 64 69 73 6b 20 73 65 6c 65 63 74 20 62 69 74 20 6f 6e 2f 6f 66 66 0d 0a 09 72 ┆ ;set disk select bit on/off r┆ 0x0c3e20…0c3e40 65 74 0d 0a 3b 0d 0a 77 61 69 74 69 6f 3a 0d 0a 09 6d 76 69 09 63 2c 72 65 74 72 79 09 3b 6d 61 ┆et ; waitio: mvi c,retry ;ma┆ 0x0c3e40…0c3e60 78 20 72 65 74 72 69 65 73 20 62 65 66 6f 72 65 20 70 65 72 6d 20 65 72 72 6f 72 0d 0a 72 65 77 ┆x retries before perm error rew┆ 0x0c3e60…0c3e80 61 69 74 3a 0d 0a 3b 09 73 74 61 72 74 20 74 68 65 20 69 2f 6f 20 66 75 6e 63 74 69 6f 6e 20 61 ┆ait: ; start the i/o function a┆ 0x0c3e80…0c3ea0 6e 64 20 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 69 6e ┆nd wait for completion call in┆ 0x0c3ea0…0c3ec0 74 79 70 65 09 3b 69 6e 20 72 74 79 70 65 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 09 3b 63 6c ┆type ;in rtype call inbyte ;cl┆ 0x0c3ec0…0c3ee0 65 61 72 73 20 74 68 65 20 63 6f 6e 74 72 6f 6c 6c 65 72 0d 0a 3b 0d 0a 09 6c 64 61 09 64 62 61 ┆ears the controller ; lda dba┆ 0x0c3ee0…0c3f00 6e 6b 09 09 3b 73 65 74 20 62 61 6e 6b 20 66 6c 61 67 73 0d 0a 09 6f 72 61 09 61 09 09 3b 7a 65 ┆nk ;set bank flags ora a ;ze┆ 0x0c3f00…0c3f20 72 6f 20 69 66 20 64 72 69 76 65 20 30 2c 31 20 61 6e 64 20 6e 7a 20 69 66 20 32 2c 33 0d 0a 09 ┆ro if drive 0,1 and nz if 2,3 ┆ 0x0c3f20…0c3f40 6d 76 69 09 61 2c 69 6f 70 62 20 61 6e 64 20 30 66 66 68 09 3b 6c 6f 77 20 61 64 64 72 65 73 73 ┆mvi a,iopb and 0ffh ;low address┆ 0x0c3f40…0c3f60 20 66 6f 72 20 69 6f 70 62 0d 0a 09 6d 76 69 09 62 2c 69 6f 70 62 20 73 68 72 20 38 09 3b 68 69 ┆ for iopb mvi b,iopb shr 8 ;hi┆ 0x0c3f60…0c3f80 67 68 20 61 64 64 72 65 73 73 20 66 6f 72 20 69 6f 70 62 0d 0a 09 6a 6e 7a 09 69 6f 64 72 31 09 ┆gh address for iopb jnz iodr1 ┆ 0x0c3f80…0c3fa0 3b 64 72 69 76 65 20 62 61 6e 6b 20 31 3f 0d 0a 09 6f 75 74 09 69 6c 6f 77 09 09 3b 6c 6f 77 20 ┆;drive bank 1? out ilow ;low ┆ 0x0c3fa0…0c3fc0 61 64 64 72 65 73 73 20 74 6f 20 63 6f 6e 74 72 6f 6c 6c 65 72 0d 0a 09 6d 6f 76 09 61 2c 62 0d ┆address to controller mov a,b ┆ 0x0c3fc0…0c3fe0 0a 09 6f 75 74 09 69 68 69 67 68 09 3b 68 69 67 68 20 61 64 64 72 65 73 73 0d 0a 09 6a 6d 70 09 ┆ out ihigh ;high address jmp ┆ 0x0c3fe0…0c4000 77 61 69 74 30 09 09 3b 74 6f 20 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 65 0d 0a 3b 0d ┆wait0 ;to wait for complete ; ┆ 0x0c4000…0c4020 (52, 0, 9) 68 09 3b 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 72 65 63 61 6c 09 65 71 75 09 33 68 09 ┆h ;write function recal equ 3h ┆ 0x0c4020…0c4040 3b 72 65 63 61 6c 69 62 72 61 74 65 20 64 72 69 76 65 0d 0a 69 6f 72 64 79 09 65 71 75 09 34 68 ┆;recalibrate drive iordy equ 4h┆ 0x0c4040…0c4060 09 3b 69 2f 6f 20 66 69 6e 69 73 68 65 64 20 6d 61 73 6b 0d 0a 63 72 09 65 71 75 09 30 64 68 09 ┆ ;i/o finished mask cr equ 0dh ┆ 0x0c4060…0c4080 3b 63 61 72 72 69 61 67 65 20 72 65 74 75 72 6e 0d 0a 6c 66 09 65 71 75 09 30 61 68 09 3b 6c 69 ┆;carriage return lf equ 0ah ;li┆ 0x0c4080…0c40a0 6e 65 20 66 65 65 64 0d 0a 3b 0d 0a 73 69 67 6e 6f 6e 3a 09 3b 73 69 67 6e 6f 6e 20 6d 65 73 73 ┆ne feed ; signon: ;signon mess┆ 0x0c40a0…0c40c0 61 67 65 3a 20 78 78 6b 20 63 70 2f 6d 20 76 65 72 73 20 79 2e 79 0d 0a 09 64 62 09 63 72 2c 6c ┆age: xxk cp/m vers y.y db cr,l┆ 0x0c40c0…0c40e0 66 2c 6c 66 0d 0a 09 69 66 09 74 65 73 74 0d 0a 09 64 62 09 27 33 32 27 09 3b 33 32 6b 20 65 78 ┆f,lf if test db '32' ;32k ex┆ 0x0c40e0…0c4100 61 6d 70 6c 65 20 62 69 6f 73 0d 0a 09 65 6e 64 69 66 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 ┆ample bios endif if not test┆ 0x0c4100…0c4120 0d 0a 09 64 62 09 27 30 30 27 09 3b 6d 65 6d 6f 72 79 20 73 69 7a 65 20 66 69 6c 6c 65 64 20 62 ┆ db '00' ;memory size filled b┆ 0x0c4120…0c4140 79 20 72 65 6c 6f 63 61 74 6f 72 0d 0a 09 65 6e 64 69 66 0d 0a 09 64 62 09 27 6b 20 43 50 2f 4d ┆y relocator endif db 'k CP/M┆ 0x0c4140…0c4160 20 76 65 72 73 20 27 0d 0a 09 64 62 09 76 65 72 73 2f 31 30 2b 27 30 27 2c 27 2e 27 2c 76 65 72 ┆ vers ' db vers/10+'0','.',ver┆ 0x0c4160…0c4180 73 20 6d 6f 64 20 31 30 2b 27 30 27 0d 0a 09 64 62 09 63 72 2c 6c 66 2c 30 0d 0a 3b 0d 0a 62 6f ┆s mod 10+'0' db cr,lf,0 ; bo┆ 0x0c4180…0c41a0 6f 74 3a 09 3b 70 72 69 6e 74 20 73 69 67 6e 6f 6e 20 6d 65 73 73 61 67 65 20 61 6e 64 20 67 6f ┆ot: ;print signon message and go┆ 0x0c41a0…0c41c0 20 74 6f 20 63 63 70 0d 0a 3b 09 28 6e 6f 74 65 3a 20 6d 64 73 20 62 6f 6f 74 20 69 6e 69 74 69 ┆ to ccp ; (note: mds boot initi┆ 0x0c41c0…0c41e0 61 6c 69 7a 65 64 20 69 6f 62 79 74 65 20 61 74 20 30 30 30 33 68 29 0d 0a 09 6c 78 69 09 73 70 ┆alized iobyte at 0003h) lxi sp┆ 0x0c41e0…0c4200 2c 62 75 66 66 2b 38 30 68 0d 0a 09 6c 78 69 09 68 2c 73 69 67 6e 6f 6e 0d 0a 09 63 61 6c 6c 09 ┆,buff+80h lxi h,signon call ┆ 0x0c4200…0c4220 (52, 0, 10) 6f 6e 0d 0a 09 6f 75 74 09 69 6e 74 63 0d 0a 09 78 72 61 09 61 0d 0a 09 6f 75 74 09 69 63 6f 6e ┆on out intc xra a out icon┆ 0x0c4220…0c4240 09 3b 69 6e 74 65 72 72 75 70 74 20 63 6f 6e 74 72 6f 6c 0d 0a 3b 0d 0a 3b 09 73 65 74 20 64 65 ┆ ;interrupt control ; ; set de┆ 0x0c4240…0c4260 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 20 74 6f 20 38 30 68 0d 0a 09 6c 78 ┆fault buffer address to 80h lx┆ 0x0c4260…0c4280 69 09 62 2c 62 75 66 66 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 3b 0d 0a 3b 09 72 65 73 ┆i b,buff call setdma ; ; res┆ 0x0c4280…0c42a0 65 74 20 6d 6f 6e 69 74 6f 72 20 65 6e 74 72 79 20 70 6f 69 6e 74 73 0d 0a 09 6d 76 69 09 61 2c ┆et monitor entry points mvi a,┆ 0x0c42a0…0c42c0 6a 6d 70 0d 0a 09 73 74 61 09 30 0d 0a 09 6c 78 69 09 68 2c 77 62 6f 6f 74 65 0d 0a 09 73 68 6c ┆jmp sta 0 lxi h,wboote shl┆ 0x0c42c0…0c42e0 64 09 31 09 3b 6a 6d 70 20 77 62 6f 6f 74 20 61 74 20 6c 6f 63 61 74 69 6f 6e 20 30 30 0d 0a 09 ┆d 1 ;jmp wboot at location 00 ┆ 0x0c42e0…0c4300 73 74 61 09 35 0d 0a 09 6c 78 69 09 68 2c 62 64 6f 73 0d 0a 09 73 68 6c 64 09 36 09 3b 6a 6d 70 ┆sta 5 lxi h,bdos shld 6 ;jmp┆ 0x0c4300…0c4320 20 62 64 6f 73 20 61 74 20 6c 6f 63 61 74 69 6f 6e 20 35 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 ┆ bdos at location 5 if not tes┆ 0x0c4320…0c4340 74 0d 0a 09 73 74 61 09 37 2a 38 09 3b 6a 6d 70 20 74 6f 20 6d 6f 6e 38 30 20 28 6d 61 79 20 68 ┆t sta 7*8 ;jmp to mon80 (may h┆ 0x0c4340…0c4360 61 76 65 20 62 65 65 6e 20 63 68 61 6e 67 65 64 20 62 79 20 64 64 74 29 0d 0a 09 6c 78 69 09 68 ┆ave been changed by ddt) lxi h┆ 0x0c4360…0c4380 2c 6d 6f 6e 38 30 0d 0a 09 73 68 6c 64 09 37 2a 38 2b 31 0d 0a 09 65 6e 64 69 66 0d 0a 3b 09 6c ┆,mon80 shld 7*8+1 endif ; l┆ 0x0c4380…0c43a0 65 61 76 65 20 69 6f 62 79 74 65 20 73 65 74 0d 0a 3b 09 70 72 65 76 69 6f 75 73 6c 79 20 73 65 ┆eave iobyte set ; previously se┆ 0x0c43a0…0c43c0 6c 65 63 74 65 64 20 64 69 73 6b 20 77 61 73 20 62 2c 20 73 65 6e 64 20 70 61 72 61 6d 65 74 65 ┆lected disk was b, send paramete┆ 0x0c43c0…0c43e0 72 20 74 6f 20 63 70 6d 0d 0a 09 6c 64 61 09 63 64 69 73 6b 09 3b 6c 61 73 74 20 6c 6f 67 67 65 ┆r to cpm lda cdisk ;last logge┆ 0x0c43e0…0c4400 64 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 73 65 6e 64 20 74 6f ┆d disk number mov c,a ;send to┆ 0x0c4400…0c4420 (52, 0, 11) 2a 38 0d 0a 09 64 61 64 09 68 09 3b 2a 31 36 0d 0a 09 6c 78 69 09 64 2c 64 70 62 61 73 65 0d 0a ┆*8 dad h ;*16 lxi d,dpbase ┆ 0x0c4420…0c4440 09 64 61 64 09 64 09 3b 48 4c 3d 64 69 73 6b 20 68 65 61 64 65 72 20 74 61 62 6c 65 20 61 64 64 ┆ dad d ;HL=disk header table add┆ 0x0c4440…0c4460 72 65 73 73 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 73 65 74 74 72 6b 3a 09 3b 73 65 74 20 74 ┆ress ret ; ; settrk: ;set t┆ 0x0c4460…0c4480 72 61 63 6b 20 61 64 64 72 65 73 73 20 67 69 76 65 6e 20 62 79 20 63 0d 0a 09 6c 78 69 09 68 2c ┆rack address given by c lxi h,┆ 0x0c4480…0c44a0 69 6f 74 0d 0a 09 6d 6f 76 09 6d 2c 63 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 73 65 74 73 65 63 3a 09 ┆iot mov m,c ret ; setsec: ┆ 0x0c44a0…0c44c0 3b 73 65 74 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 67 69 76 65 6e 20 62 79 20 63 0d 0a 09 ┆;set sector number given by c ┆ 0x0c44c0…0c44e0 6c 78 69 09 68 2c 69 6f 73 0d 0a 09 6d 6f 76 09 6d 2c 63 0d 0a 09 72 65 74 0d 0a 73 65 63 74 72 ┆lxi h,ios mov m,c ret sectr┆ 0x0c44e0…0c4500 61 6e 3a 0d 0a 09 09 3b 74 72 61 6e 73 6c 61 74 65 20 73 65 63 74 6f 72 20 62 63 20 75 73 69 6e ┆an: ;translate sector bc usin┆ 0x0c4500…0c4520 67 20 74 61 62 6c 65 20 61 74 20 64 65 0d 0a 09 6d 76 69 09 62 2c 30 09 3b 64 6f 75 62 6c 65 20 ┆g table at de mvi b,0 ;double ┆ 0x0c4520…0c4540 70 72 65 63 69 73 69 6f 6e 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 69 6e 20 42 43 0d 0a 09 ┆precision sector number in BC ┆ 0x0c4540…0c4560 78 63 68 67 09 09 3b 74 72 61 6e 73 6c 61 74 65 20 74 61 62 6c 65 20 61 64 64 72 65 73 73 20 74 ┆xchg ;translate table address t┆ 0x0c4560…0c4580 6f 20 48 4c 0d 0a 09 64 61 64 09 62 09 3b 74 72 61 6e 73 6c 61 74 65 28 73 65 63 74 6f 72 29 20 ┆o HL dad b ;translate(sector) ┆ 0x0c4580…0c45a0 61 64 64 72 65 73 73 0d 0a 09 6d 6f 76 09 61 2c 6d 09 3b 74 72 61 6e 73 6c 61 74 65 64 20 73 65 ┆address mov a,m ;translated se┆ 0x0c45a0…0c45c0 63 74 6f 72 20 6e 75 6d 62 65 72 20 74 6f 20 41 0d 0a 09 73 74 61 09 69 6f 73 0d 0a 09 6d 6f 76 ┆ctor number to A sta ios mov┆ 0x0c45c0…0c45e0 09 6c 2c 61 09 3b 72 65 74 75 72 6e 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 69 6e 20 4c 0d ┆ l,a ;return sector number in L ┆ 0x0c45e0…0c4600 0a 09 72 65 74 0d 0a 3b 0d 0a 73 65 74 64 6d 61 3a 09 3b 73 65 74 20 64 6d 61 20 61 64 64 72 65 ┆ ret ; setdma: ;set dma addre┆ 0x0c4600…0c4620 (52, 0, 12) 0a 69 6f 64 72 31 3a 09 3b 64 72 69 76 65 20 62 61 6e 6b 20 31 0d 0a 09 6f 75 74 09 69 6c 6f 77 ┆ iodr1: ;drive bank 1 out ilow┆ 0x0c4620…0c4640 2b 31 30 68 09 3b 38 38 20 66 6f 72 20 64 72 69 76 65 20 62 61 6e 6b 20 31 30 0d 0a 09 6d 6f 76 ┆+10h ;88 for drive bank 10 mov┆ 0x0c4640…0c4660 09 61 2c 62 0d 0a 09 6f 75 74 09 69 68 69 67 68 2b 31 30 68 0d 0a 3b 0d 0a 77 61 69 74 30 3a 09 ┆ a,b out ihigh+10h ; wait0: ┆ 0x0c4660…0c4680 63 61 6c 6c 09 69 6e 73 74 61 74 09 09 3b 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 69 6f ┆call instat ;wait for completio┆ 0x0c4680…0c46a0 6e 0d 0a 09 61 6e 69 09 69 6f 72 64 79 09 09 3b 72 65 61 64 79 3f 0d 0a 09 6a 7a 09 77 61 69 74 ┆n ani iordy ;ready? jz wait┆ 0x0c46a0…0c46c0 30 0d 0a 3b 0d 0a 3b 09 63 68 65 63 6b 20 69 6f 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 6f 6b 0d 0a ┆0 ; ; check io completion ok ┆ 0x0c46c0…0c46e0 09 63 61 6c 6c 09 69 6e 74 79 70 65 09 09 3b 6d 75 73 74 20 62 65 20 69 6f 20 63 6f 6d 70 6c 65 ┆ call intype ;must be io comple┆ 0x0c46e0…0c4700 74 65 20 28 30 30 29 20 75 6e 6c 69 6e 6b 65 64 0d 0a 3b 09 30 30 20 75 6e 6c 69 6e 6b 65 64 20 ┆te (00) unlinked ; 00 unlinked ┆ 0x0c4700…0c4720 69 2f 6f 20 63 6f 6d 70 6c 65 74 65 2c 20 20 20 20 30 31 20 6c 69 6e 6b 65 64 20 69 2f 6f 20 63 ┆i/o complete, 01 linked i/o c┆ 0x0c4720…0c4740 6f 6d 70 6c 65 74 65 20 28 6e 6f 74 20 75 73 65 64 29 0d 0a 3b 09 31 30 20 64 69 73 6b 20 73 74 ┆omplete (not used) ; 10 disk st┆ 0x0c4740…0c4760 61 74 75 73 20 63 68 61 6e 67 65 64 20 20 20 20 20 20 20 31 31 20 28 6e 6f 74 20 75 73 65 64 29 ┆atus changed 11 (not used)┆ 0x0c4760…0c4780 0d 0a 09 63 70 69 09 31 30 62 09 09 3b 72 65 61 64 79 20 73 74 61 74 75 73 20 63 68 61 6e 67 65 ┆ cpi 10b ;ready status change┆ 0x0c4780…0c47a0 3f 0d 0a 09 6a 7a 09 77 72 65 61 64 79 0d 0a 3b 0d 0a 3b 09 6d 75 73 74 20 62 65 20 30 30 20 69 ┆? jz wready ; ; must be 00 i┆ 0x0c47a0…0c47c0 6e 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 ┆n the accumulator ora a jnz ┆ 0x0c47c0…0c47e0 77 65 72 72 6f 72 09 09 3b 73 6f 6d 65 20 6f 74 68 65 72 20 63 6f 6e 64 69 74 69 6f 6e 2c 20 72 ┆werror ;some other condition, r┆ 0x0c47e0…0c4800 65 74 72 79 0d 0a 3b 0d 0a 3b 09 63 68 65 63 6b 20 69 2f 6f 20 65 72 72 6f 72 20 62 69 74 73 0d ┆etry ; ; check i/o error bits ┆ 0x0c4800…0c4820 (52, 0, 13) 70 72 6d 73 67 09 3b 70 72 69 6e 74 20 6d 65 73 73 61 67 65 0d 0a 09 78 72 61 09 61 09 3b 63 6c ┆prmsg ;print message xra a ;cl┆ 0x0c4820…0c4840 65 61 72 20 61 63 63 75 6d 75 6c 61 74 6f 72 0d 0a 09 73 74 61 09 63 64 69 73 6b 09 3b 73 65 74 ┆ear accumulator sta cdisk ;set┆ 0x0c4840…0c4860 20 69 6e 69 74 69 61 6c 6c 79 20 74 6f 20 64 69 73 6b 20 61 0d 0a 09 6a 6d 70 09 67 6f 63 70 6d ┆ initially to disk a jmp gocpm┆ 0x0c4860…0c4880 09 3b 67 6f 20 74 6f 20 63 70 2f 6d 0d 0a 3b 0d 0a 3b 0d 0a 77 62 6f 6f 74 3a 3b 09 6c 6f 61 64 ┆ ;go to cp/m ; ; wboot:; load┆ 0x0c4880…0c48a0 65 72 20 6f 6e 20 74 72 61 63 6b 20 30 2c 20 73 65 63 74 6f 72 20 31 2c 20 77 68 69 63 68 20 77 ┆er on track 0, sector 1, which w┆ 0x0c48a0…0c48c0 69 6c 6c 20 62 65 20 73 6b 69 70 70 65 64 20 66 6f 72 20 77 61 72 6d 20 0d 0a 3b 09 72 65 61 64 ┆ill be skipped for warm ; read┆ 0x0c48c0…0c48e0 20 63 70 2f 6d 20 66 72 6f 6d 20 64 69 73 6b 20 2d 20 61 73 73 75 6d 69 6e 67 20 74 68 65 72 65 ┆ cp/m from disk - assuming there┆ 0x0c48e0…0c4900 20 69 73 20 61 20 31 32 38 20 62 79 74 65 20 63 6f 6c 64 20 73 74 61 72 74 0d 0a 3b 09 73 74 61 ┆ is a 128 byte cold start ; sta┆ 0x0c4900…0c4920 72 74 2e 0d 0a 3b 0d 0a 09 6c 78 69 09 73 70 2c 62 75 66 66 09 3b 75 73 69 6e 67 20 64 6d 61 20 ┆rt. ; lxi sp,buff ;using dma ┆ 0x0c4920…0c4940 2d 20 74 68 75 73 20 38 30 20 74 68 72 75 20 66 66 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 ┆- thus 80 thru ff available for ┆ 0x0c4940…0c4960 73 74 61 63 6b 0d 0a 3b 0d 0a 09 6d 76 69 09 63 2c 72 65 74 72 79 09 3b 6d 61 78 20 72 65 74 72 ┆stack ; mvi c,retry ;max retr┆ 0x0c4960…0c4980 69 65 73 0d 0a 09 70 75 73 68 09 62 0d 0a 77 62 6f 6f 74 30 3a 09 3b 65 6e 74 65 72 20 68 65 72 ┆ies push b wboot0: ;enter her┆ 0x0c4980…0c49a0 65 20 6f 6e 20 65 72 72 6f 72 20 72 65 74 72 69 65 73 0d 0a 09 6c 78 69 09 62 2c 63 70 6d 62 09 ┆e on error retries lxi b,cpmb ┆ 0x0c49a0…0c49c0 3b 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 74 6f 20 73 74 61 72 74 20 6f 66 20 64 69 73 ┆;set dma address to start of dis┆ 0x0c49c0…0c49e0 6b 20 73 79 73 74 65 6d 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 09 6d 76 69 09 63 2c 30 ┆k system call setdma mvi c,0┆ 0x0c49e0…0c4a00 09 3b 62 6f 6f 74 20 66 72 6f 6d 20 64 72 69 76 65 20 30 0d 0a 09 63 61 6c 6c 09 73 65 6c 64 73 ┆ ;boot from drive 0 call selds┆ 0x0c4a00…0c4a20 (52, 0, 14) 20 63 63 70 20 74 6f 20 6c 6f 67 20 69 74 20 69 6e 0d 0a 09 65 69 0d 0a 09 6a 6d 70 09 63 70 6d ┆ ccp to log it in ei jmp cpm┆ 0x0c4a20…0c4a40 62 0d 0a 3b 0d 0a 3b 09 65 72 72 6f 72 20 63 6f 6e 64 69 74 69 6f 6e 20 6f 63 63 75 72 72 65 64 ┆b ; ; error condition occurred┆ 0x0c4a40…0c4a60 2c 20 70 72 69 6e 74 20 6d 65 73 73 61 67 65 20 61 6e 64 20 72 65 74 72 79 0d 0a 62 6f 6f 74 65 ┆, print message and retry boote┆ 0x0c4a60…0c4a80 72 72 3a 0d 0a 09 70 6f 70 09 62 09 3b 72 65 63 61 6c 6c 20 63 6f 75 6e 74 73 0d 0a 09 64 63 72 ┆rr: pop b ;recall counts dcr┆ 0x0c4a80…0c4aa0 09 63 0d 0a 09 6a 7a 09 62 6f 6f 74 65 72 30 0d 0a 3b 09 74 72 79 20 61 67 61 69 6e 0d 0a 09 70 ┆ c jz booter0 ; try again p┆ 0x0c4aa0…0c4ac0 75 73 68 09 62 0d 0a 09 6a 6d 70 09 77 62 6f 6f 74 30 0d 0a 3b 0d 0a 62 6f 6f 74 65 72 30 3a 0d ┆ush b jmp wboot0 ; booter0: ┆ 0x0c4ac0…0c4ae0 0a 3b 09 6f 74 68 65 72 77 69 73 65 20 74 6f 6f 20 6d 61 6e 79 20 72 65 74 72 69 65 73 0d 0a 09 ┆ ; otherwise too many retries ┆ 0x0c4ae0…0c4b00 6c 78 69 09 68 2c 62 6f 6f 74 6d 73 67 0d 0a 09 63 61 6c 6c 09 70 72 6d 73 67 0d 0a 09 6a 6d 70 ┆lxi h,bootmsg call prmsg jmp┆ 0x0c4b00…0c4b20 09 72 6d 6f 6e 38 30 09 3b 6d 64 73 20 68 61 72 64 77 61 72 65 20 6d 6f 6e 69 74 6f 72 0d 0a 3b ┆ rmon80 ;mds hardware monitor ;┆ 0x0c4b20…0c4b40 0d 0a 62 6f 6f 74 6d 73 67 3a 0d 0a 09 64 62 09 27 3f 62 6f 6f 74 27 2c 30 0d 0a 3b 0d 0a 3b 0d ┆ bootmsg: db '?boot',0 ; ; ┆ 0x0c4b40…0c4b60 0a 63 6f 6e 73 74 3a 09 3b 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 20 74 6f 20 72 65 67 2d 61 ┆ const: ;console status to reg-a┆ 0x0c4b60…0c4b80 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c ┆ ; (exactly the same as mds cal┆ 0x0c4b80…0c4ba0 6c 29 0d 0a 09 6a 6d 70 09 63 73 74 73 0d 0a 3b 0d 0a 63 6f 6e 69 6e 3a 09 3b 63 6f 6e 73 6f 6c ┆l) jmp csts ; conin: ;consol┆ 0x0c4ba0…0c4bc0 65 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 72 65 67 2d 61 0d 0a 09 63 61 6c 6c 09 63 69 0d 0a ┆e character to reg-a call ci ┆ 0x0c4bc0…0c4be0 09 61 6e 69 09 37 66 68 09 3b 72 65 6d 6f 76 65 20 70 61 72 69 74 79 20 62 69 74 0d 0a 09 72 65 ┆ ani 7fh ;remove parity bit re┆ 0x0c4be0…0c4c00 74 0d 0a 3b 0d 0a 63 6f 6e 6f 75 74 3a 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 ┆t ; conout: ;console character┆ 0x0c4c00…0c4c20 (52, 0, 15) 73 73 20 67 69 76 65 6e 20 62 79 20 72 65 67 73 20 62 2c 63 0d 0a 09 6d 6f 76 09 6c 2c 63 0d 0a ┆ss given by regs b,c mov l,c ┆ 0x0c4c20…0c4c40 09 6d 6f 76 09 68 2c 62 0d 0a 09 73 68 6c 64 09 69 6f 64 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 72 65 ┆ mov h,b shld iod ret ; re┆ 0x0c4c40…0c4c60 61 64 3a 09 3b 72 65 61 64 20 6e 65 78 74 20 64 69 73 6b 20 72 65 63 6f 72 64 20 28 61 73 73 75 ┆ad: ;read next disk record (assu┆ 0x0c4c60…0c4c80 6d 69 6e 67 20 64 69 73 6b 2f 74 72 6b 2f 73 65 63 2f 64 6d 61 20 73 65 74 29 0d 0a 09 6d 76 69 ┆ming disk/trk/sec/dma set) mvi┆ 0x0c4c80…0c4ca0 09 63 2c 72 65 61 64 66 09 3b 73 65 74 20 74 6f 20 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a ┆ c,readf ;set to read function ┆ 0x0c4ca0…0c4cc0 09 63 61 6c 6c 09 73 65 74 66 75 6e 63 0d 0a 09 63 61 6c 6c 09 77 61 69 74 69 6f 09 3b 70 65 72 ┆ call setfunc call waitio ;per┆ 0x0c4cc0…0c4ce0 66 6f 72 6d 20 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 72 65 74 09 09 3b 6d 61 79 20 68 ┆form read function ret ;may h┆ 0x0c4ce0…0c4d00 61 76 65 20 65 72 72 6f 72 20 73 65 74 20 69 6e 20 72 65 67 2d 61 0d 0a 3b 0d 0a 3b 0d 0a 77 72 ┆ave error set in reg-a ; ; wr┆ 0x0c4d00…0c4d20 69 74 65 3a 09 3b 64 69 73 6b 20 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6d 76 69 09 ┆ite: ;disk write function mvi ┆ 0x0c4d20…0c4d40 63 2c 77 72 69 74 66 0d 0a 09 63 61 6c 6c 09 73 65 74 66 75 6e 63 09 3b 73 65 74 20 74 6f 20 77 ┆c,writf call setfunc ;set to w┆ 0x0c4d40…0c4d60 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 77 61 69 74 69 6f 0d 0a 09 72 65 ┆rite function call waitio re┆ 0x0c4d60…0c4d80 74 09 09 3b 6d 61 79 20 68 61 76 65 20 65 72 72 6f 72 20 73 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 ┆t ;may have error set ; ; ; ┆ 0x0c4d80…0c4da0 75 74 69 6c 69 74 79 20 73 75 62 72 6f 75 74 69 6e 65 73 0d 0a 70 72 6d 73 67 3a 09 3b 70 72 69 ┆utility subroutines prmsg: ;pri┆ 0x0c4da0…0c4dc0 6e 74 20 6d 65 73 73 61 67 65 20 61 74 20 68 2c 6c 20 74 6f 20 30 0d 0a 09 6d 6f 76 09 61 2c 6d ┆nt message at h,l to 0 mov a,m┆ 0x0c4dc0…0c4de0 0d 0a 09 6f 72 61 09 61 09 3b 7a 65 72 6f 3f 0d 0a 09 72 7a 0d 0a 3b 09 6d 6f 72 65 20 74 6f 20 ┆ ora a ;zero? rz ; more to ┆ 0x0c4de0…0c4e00 70 72 69 6e 74 0d 0a 09 70 75 73 68 09 68 0d 0a 09 6d 6f 76 09 63 2c 61 0d 0a 09 63 61 6c 6c 09 ┆print push h mov c,a call ┆ 0x0c4e00…0c4e20 (52, 1, 1) 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 0d 0a 09 72 61 6c 0d 0a 09 6a 63 09 77 72 65 61 64 79 09 ┆ call inbyte ral jc wready ┆ 0x0c4e20…0c4e40 09 3b 75 6e 69 74 20 6e 6f 74 20 72 65 61 64 79 0d 0a 09 72 61 72 0d 0a 09 61 6e 69 09 31 31 31 ┆ ;unit not ready rar ani 111┆ 0x0c4e40…0c4e60 31 31 31 31 30 62 09 3b 61 6e 79 20 6f 74 68 65 72 20 65 72 72 6f 72 73 3f 20 20 28 64 65 6c 65 ┆11110b ;any other errors? (dele┆ 0x0c4e60…0c4e80 74 65 64 20 64 61 74 61 20 6f 6b 29 0d 0a 09 6a 6e 7a 09 77 65 72 72 6f 72 0d 0a 3b 0d 0a 3b 09 ┆ted data ok) jnz werror ; ; ┆ 0x0c4e80…0c4ea0 72 65 61 64 20 6f 72 20 77 72 69 74 65 20 69 73 20 6f 6b 2c 20 61 63 63 75 6d 75 6c 61 74 6f 72 ┆read or write is ok, accumulator┆ 0x0c4ea0…0c4ec0 20 63 6f 6e 74 61 69 6e 73 20 7a 65 72 6f 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 77 72 65 61 64 79 3a ┆ contains zero ret ; wready:┆ 0x0c4ec0…0c4ee0 09 3b 6e 6f 74 20 72 65 61 64 79 2c 20 74 72 65 61 74 20 61 73 20 65 72 72 6f 72 20 66 6f 72 20 ┆ ;not ready, treat as error for ┆ 0x0c4ee0…0c4f00 6e 6f 77 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 09 09 3b 63 6c 65 61 72 20 72 65 73 75 6c 74 ┆now call inbyte ;clear result┆ 0x0c4f00…0c4f20 20 62 79 74 65 0d 0a 09 6a 6d 70 09 74 72 79 63 6f 75 6e 74 0d 0a 3b 0d 0a 77 65 72 72 6f 72 3a ┆ byte jmp trycount ; werror:┆ 0x0c4f20…0c4f40 09 3b 72 65 74 75 72 6e 20 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 20 28 63 ┆ ;return hardware malfunction (c┆ 0x0c4f40…0c4f60 72 63 2c 20 74 72 61 63 6b 2c 20 73 65 65 6b 2c 20 65 74 63 2e 29 0d 0a 3b 09 74 68 65 20 6d 64 ┆rc, track, seek, etc.) ; the md┆ 0x0c4f60…0c4f80 73 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 68 61 73 20 72 65 74 75 72 6e 65 64 20 61 20 62 69 74 20 ┆s controller has returned a bit ┆ 0x0c4f80…0c4fa0 69 6e 20 65 61 63 68 20 70 6f 73 69 74 69 6f 6e 0d 0a 3b 09 6f 66 20 74 68 65 20 61 63 63 75 6d ┆in each position ; of the accum┆ 0x0c4fa0…0c4fc0 75 6c 61 74 6f 72 2c 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 74 68 65 20 63 6f 6e ┆ulator, corresponding to the con┆ 0x0c4fc0…0c4fe0 64 69 74 69 6f 6e 73 3a 0d 0a 3b 09 30 09 2d 20 64 65 6c 65 74 65 64 20 64 61 74 61 20 28 61 63 ┆ditions: ; 0 - deleted data (ac┆ 0x0c4fe0…0c5000 63 65 70 74 65 64 20 61 73 20 6f 6b 20 61 62 6f 76 65 29 0d 0a 3b 09 31 09 2d 20 63 72 63 20 65 ┆cepted as ok above) ; 1 - crc e┆ 0x0c5000…0c5020 (52, 1, 2) 65 72 73 69 6f 6e 20 32 2e 32 0d 0a 3b 0d 0a 3b 09 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 ┆ersion 2.2 ; ; Copyright (c) 1┆ 0x0c5020…0c5040 39 38 30 0d 0a 3b 09 44 69 67 69 74 61 6c 20 52 65 73 65 61 72 63 68 0d 0a 3b 09 42 6f 78 20 35 ┆980 ; Digital Research ; Box 5┆ 0x0c5040…0c5060 37 39 2c 20 50 61 63 69 66 69 63 20 47 72 6f 76 65 0d 0a 3b 09 43 61 6c 69 66 6f 72 6e 69 61 2c ┆79, Pacific Grove ; California,┆ 0x0c5060…0c5080 20 39 33 39 35 30 0d 0a 3b 0d 0a 3b 0d 0a 74 72 75 65 09 65 71 75 09 30 66 66 66 66 68 09 3b 76 ┆ 93950 ; ; true equ 0ffffh ;v┆ 0x0c5080…0c50a0 61 6c 75 65 20 6f 66 20 22 74 72 75 65 22 0d 0a 66 61 6c 73 65 09 65 71 75 09 6e 6f 74 20 74 72 ┆alue of "true" false equ not tr┆ 0x0c50a0…0c50c0 75 65 09 3b 22 66 61 6c 73 65 22 0d 0a 74 65 73 74 09 65 71 75 09 66 61 6c 73 65 09 3b 74 72 75 ┆ue ;"false" test equ false ;tru┆ 0x0c50c0…0c50e0 65 20 69 66 20 74 65 73 74 20 62 69 6f 73 0d 0a 3b 0d 0a 09 69 66 09 74 65 73 74 0d 0a 62 69 61 ┆e if test bios ; if test bia┆ 0x0c50e0…0c5100 73 09 65 71 75 09 30 33 34 30 30 68 09 3b 62 61 73 65 20 6f 66 20 43 43 50 20 69 6e 20 74 65 73 ┆s equ 03400h ;base of CCP in tes┆ 0x0c5100…0c5120 74 20 73 79 73 74 65 6d 0d 0a 09 65 6e 64 69 66 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a ┆t system endif if not test ┆ 0x0c5120…0c5140 62 69 61 73 09 65 71 75 09 30 30 30 30 68 09 3b 67 65 6e 65 72 61 74 65 20 72 65 6c 6f 63 61 74 ┆bias equ 0000h ;generate relocat┆ 0x0c5140…0c5160 61 62 6c 65 20 63 70 2f 6d 20 73 79 73 74 65 6d 0d 0a 09 65 6e 64 69 66 0d 0a 3b 0d 0a 70 61 74 ┆able cp/m system endif ; pat┆ 0x0c5160…0c5180 63 68 09 65 71 75 09 31 36 30 30 68 0d 0a 3b 0d 0a 09 6f 72 67 09 70 61 74 63 68 0d 0a 63 70 6d ┆ch equ 1600h ; org patch cpm┆ 0x0c5180…0c51a0 62 09 65 71 75 09 24 2d 70 61 74 63 68 09 3b 62 61 73 65 20 6f 66 20 63 70 6d 20 63 6f 6e 73 6f ┆b equ $-patch ;base of cpm conso┆ 0x0c51a0…0c51c0 6c 65 20 70 72 6f 63 65 73 73 6f 72 0d 0a 62 64 6f 73 09 65 71 75 09 38 30 36 68 2b 63 70 6d 62 ┆le processor bdos equ 806h+cpmb┆ 0x0c51c0…0c51e0 09 3b 62 61 73 69 63 20 64 6f 73 20 28 72 65 73 69 64 65 6e 74 20 70 6f 72 74 69 6f 6e 29 0d 0a ┆ ;basic dos (resident portion) ┆ 0x0c51e0…0c5200 63 70 6d 6c 09 65 71 75 09 24 2d 63 70 6d 62 09 3b 6c 65 6e 67 74 68 20 28 69 6e 20 62 79 74 65 ┆cpml equ $-cpmb ;length (in byte┆ 0x0c5200…0c5220 (52, 1, 3) 6d 61 63 6c 69 62 09 64 69 73 6b 64 65 66 09 3b 6c 6f 61 64 20 74 68 65 20 64 69 73 6b 20 64 65 ┆maclib diskdef ;load the disk de┆ 0x0c5220…0c5240 66 69 6e 69 74 69 6f 6e 20 6c 69 62 72 61 72 79 0d 0a 09 64 69 73 6b 73 09 34 09 3b 66 6f 75 72 ┆finition library disks 4 ;four┆ 0x0c5240…0c5260 20 64 69 73 6b 73 0d 0a 09 64 69 73 6b 64 65 66 09 30 2c 31 2c 32 36 2c 36 2c 31 30 32 34 2c 32 ┆ disks diskdef 0,1,26,6,1024,2┆ 0x0c5260…0c5280 34 33 2c 36 34 2c 36 34 2c 6f 66 66 73 65 74 0d 0a 09 64 69 73 6b 64 65 66 09 31 2c 30 0d 0a 09 ┆43,64,64,offset diskdef 1,0 ┆ 0x0c5280…0c52a0 64 69 73 6b 64 65 66 09 32 2c 30 0d 0a 09 64 69 73 6b 64 65 66 09 33 2c 30 0d 0a 3b 09 65 6e 64 ┆diskdef 2,0 diskdef 3,0 ; end┆ 0x0c52a0…0c52c0 65 66 20 6f 63 63 75 72 73 20 61 74 20 65 6e 64 20 6f 66 20 61 73 73 65 6d 62 6c 79 0d 0a 3b 0d ┆ef occurs at end of assembly ; ┆ 0x0c52c0…0c52e0 0a 3b 09 65 6e 64 20 6f 66 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 2d 20 69 6e 64 65 70 65 6e 64 65 ┆ ; end of controller - independe┆ 0x0c52e0…0c5300 6e 74 20 63 6f 64 65 2c 20 74 68 65 20 72 65 6d 61 69 6e 69 6e 67 20 73 75 62 72 6f 75 74 69 6e ┆nt code, the remaining subroutin┆ 0x0c5300…0c5320 65 73 0d 0a 3b 09 61 72 65 20 74 61 69 6c 6f 72 65 64 20 74 6f 20 74 68 65 20 70 61 72 74 69 63 ┆es ; are tailored to the partic┆ 0x0c5320…0c5340 75 6c 61 72 20 6f 70 65 72 61 74 69 6e 67 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 2c 20 61 6e 64 20 ┆ular operating environment, and ┆ 0x0c5340…0c5360 6d 75 73 74 0d 0a 3b 09 62 65 20 61 6c 74 65 72 65 64 20 66 6f 72 20 61 6e 79 20 73 79 73 74 65 ┆must ; be altered for any syste┆ 0x0c5360…0c5380 6d 20 77 68 69 63 68 20 64 69 66 66 65 72 73 20 66 72 6f 6d 20 74 68 65 20 69 6e 74 65 6c 20 6d ┆m which differs from the intel m┆ 0x0c5380…0c53a0 64 73 2e 0d 0a 3b 0d 0a 3b 09 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 64 65 20 61 73 73 ┆ds. ; ; the following code ass┆ 0x0c53a0…0c53c0 75 6d 65 73 20 74 68 65 20 6d 64 73 20 6d 6f 6e 69 74 6f 72 20 65 78 69 73 74 73 20 61 74 20 30 ┆umes the mds monitor exists at 0┆ 0x0c53c0…0c53e0 66 38 30 30 68 0d 0a 3b 09 61 6e 64 20 75 73 65 73 20 74 68 65 20 69 2f 6f 20 73 75 62 72 6f 75 ┆f800h ; and uses the i/o subrou┆ 0x0c53e0…0c5400 74 69 6e 65 73 20 77 69 74 68 69 6e 20 74 68 65 20 6d 6f 6e 69 74 6f 72 0d 0a 3b 0d 0a 3b 09 77 ┆tines within the monitor ; ; w┆ 0x0c5400…0c5420 (52, 1, 4) 67 6f 63 70 6d 09 3b 67 6f 20 74 6f 20 63 70 2f 6d 0d 0a 3b 0d 0a 3b 0d 0a 77 62 6f 6f 74 3a 3b ┆gocpm ;go to cp/m ; ; wboot:;┆ 0x0c5420…0c5440 09 6c 6f 61 64 65 72 20 6f 6e 20 74 72 61 63 6b 20 30 2c 20 73 65 63 74 6f 72 20 31 2c 20 77 68 ┆ loader on track 0, sector 1, wh┆ 0x0c5440…0c5460 69 63 68 20 77 69 6c 6c 20 62 65 20 73 6b 69 70 70 65 64 20 66 6f 72 20 77 61 72 6d 20 0d 0a 3b ┆ich will be skipped for warm ;┆ 0x0c5460…0c5480 09 72 65 61 64 20 63 70 2f 6d 20 66 72 6f 6d 20 64 69 73 6b 20 2d 20 61 73 73 75 6d 69 6e 67 20 ┆ read cp/m from disk - assuming ┆ 0x0c5480…0c54a0 74 68 65 72 65 20 69 73 20 61 20 31 32 38 20 62 79 74 65 20 63 6f 6c 64 20 73 74 61 72 74 0d 0a ┆there is a 128 byte cold start ┆ 0x0c54a0…0c54c0 3b 09 73 74 61 72 74 2e 0d 0a 3b 0d 0a 09 6c 78 69 09 73 70 2c 62 75 66 66 09 3b 75 73 69 6e 67 ┆; start. ; lxi sp,buff ;using┆ 0x0c54c0…0c54e0 20 64 6d 61 20 2d 20 74 68 75 73 20 38 30 20 74 68 72 75 20 66 66 20 61 76 61 69 6c 61 62 6c 65 ┆ dma - thus 80 thru ff available┆ 0x0c54e0…0c5500 20 66 6f 72 20 73 74 61 63 6b 0d 0a 3b 0d 0a 09 6d 76 69 09 63 2c 72 65 74 72 79 09 3b 6d 61 78 ┆ for stack ; mvi c,retry ;max┆ 0x0c5500…0c5520 20 72 65 74 72 69 65 73 0d 0a 09 70 75 73 68 09 62 0d 0a 77 62 6f 6f 74 30 3a 09 3b 65 6e 74 65 ┆ retries push b wboot0: ;ente┆ 0x0c5520…0c5540 72 20 68 65 72 65 20 6f 6e 20 65 72 72 6f 72 20 72 65 74 72 69 65 73 0d 0a 09 6c 78 69 09 62 2c ┆r here on error retries lxi b,┆ 0x0c5540…0c5560 63 70 6d 62 09 3b 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 74 6f 20 73 74 61 72 74 20 6f ┆cpmb ;set dma address to start o┆ 0x0c5560…0c5580 66 20 64 69 73 6b 20 73 79 73 74 65 6d 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 09 6d 76 ┆f disk system call setdma mv┆ 0x0c5580…0c55a0 69 09 63 2c 30 09 3b 62 6f 6f 74 20 66 72 6f 6d 20 64 72 69 76 65 20 30 0d 0a 09 63 61 6c 6c 09 ┆i c,0 ;boot from drive 0 call ┆ 0x0c55a0…0c55c0 73 65 6c 64 73 6b 0d 0a 09 6d 76 69 09 63 2c 30 0d 0a 09 63 61 6c 6c 09 73 65 74 74 72 6b 09 3b ┆seldsk mvi c,0 call settrk ;┆ 0x0c55c0…0c55e0 73 74 61 72 74 20 77 69 74 68 20 74 72 61 63 6b 20 30 0d 0a 09 6d 76 69 09 63 2c 32 09 3b 73 74 ┆start with track 0 mvi c,2 ;st┆ 0x0c55e0…0c5600 61 72 74 20 72 65 61 64 69 6e 67 20 73 65 63 74 6f 72 20 32 0d 0a 09 63 61 6c 6c 09 73 65 74 73 ┆art reading sector 2 call sets┆ 0x0c5600…0c5620 (52, 1, 5) 72 72 6f 72 0d 0a 3b 09 32 09 2d 20 73 65 65 6b 20 65 72 72 6f 72 0d 0a 3b 09 33 09 2d 20 61 64 ┆rror ; 2 - seek error ; 3 - ad┆ 0x0c5620…0c5640 64 72 65 73 73 20 65 72 72 6f 72 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f ┆dress error (hardware malfunctio┆ 0x0c5640…0c5660 6e 29 0d 0a 3b 09 34 09 2d 20 64 61 74 61 20 6f 76 65 72 2f 75 6e 64 65 72 20 66 6c 6f 77 20 28 ┆n) ; 4 - data over/under flow (┆ 0x0c5660…0c5680 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 35 09 2d 20 77 72 69 ┆hardware malfunction) ; 5 - wri┆ 0x0c5680…0c56a0 74 65 20 70 72 6f 74 65 63 74 20 28 74 72 65 61 74 65 64 20 61 73 20 6e 6f 74 20 72 65 61 64 79 ┆te protect (treated as not ready┆ 0x0c56a0…0c56c0 29 0d 0a 3b 09 36 09 2d 20 77 72 69 74 65 20 65 72 72 6f 72 20 28 68 61 72 64 77 61 72 65 20 6d ┆) ; 6 - write error (hardware m┆ 0x0c56c0…0c56e0 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 37 09 2d 20 6e 6f 74 20 72 65 61 64 79 0d 0a 3b 09 ┆alfunction) ; 7 - not ready ; ┆ 0x0c56e0…0c5700 28 61 63 63 75 6d 75 6c 61 74 6f 72 20 62 69 74 73 20 61 72 65 20 6e 75 6d 62 65 72 65 64 20 37 ┆(accumulator bits are numbered 7┆ 0x0c5700…0c5720 20 36 20 35 20 34 20 33 20 32 20 31 20 30 29 0d 0a 3b 0d 0a 3b 09 69 74 20 6d 61 79 20 62 65 20 ┆ 6 5 4 3 2 1 0) ; ; it may be ┆ 0x0c5720…0c5740 75 73 65 66 75 6c 20 74 6f 20 66 69 6c 74 65 72 20 6f 75 74 20 74 68 65 20 76 61 72 69 6f 75 73 ┆useful to filter out the various┆ 0x0c5740…0c5760 20 63 6f 6e 64 69 74 69 6f 6e 73 2c 0d 0a 3b 09 62 75 74 20 77 65 20 77 69 6c 6c 20 67 65 74 20 ┆ conditions, ; but we will get ┆ 0x0c5760…0c5780 61 20 70 65 72 6d 61 6e 65 6e 74 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 69 66 20 69 74 20 ┆a permanent error message if it ┆ 0x0c5780…0c57a0 69 73 20 6e 6f 74 0d 0a 3b 09 72 65 63 6f 76 65 72 61 62 6c 65 2e 20 20 69 6e 20 61 6e 79 20 63 ┆is not ; recoverable. in any c┆ 0x0c57a0…0c57c0 61 73 65 2c 20 74 68 65 20 6e 6f 74 20 72 65 61 64 79 20 63 6f 6e 64 69 74 69 6f 6e 20 69 73 0d ┆ase, the not ready condition is ┆ 0x0c57c0…0c57e0 0a 3b 09 74 72 65 61 74 65 64 20 61 73 20 61 20 73 65 70 61 72 61 74 65 20 63 6f 6e 64 69 74 69 ┆ ; treated as a separate conditi┆ 0x0c57e0…0c5800 6f 6e 20 66 6f 72 20 6c 61 74 65 72 20 69 6d 70 72 6f 76 65 6d 65 6e 74 0d 0a 74 72 79 63 6f 75 ┆on for later improvement trycou┆ 0x0c5800…0c5820 (52, 1, 6) 73 29 20 6f 66 20 63 70 6d 20 73 79 73 74 65 6d 0d 0a 6e 73 65 63 74 73 09 65 71 75 09 63 70 6d ┆s) of cpm system nsects equ cpm┆ 0x0c5820…0c5840 6c 2f 31 32 38 09 3b 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 20 74 6f 20 6c 6f 61 64 ┆l/128 ;number of sectors to load┆ 0x0c5840…0c5860 0d 0a 6f 66 66 73 65 74 09 65 71 75 09 32 09 3b 6e 75 6d 62 65 72 20 6f 66 20 64 69 73 6b 20 74 ┆ offset equ 2 ;number of disk t┆ 0x0c5860…0c5880 72 61 63 6b 73 20 75 73 65 64 20 62 79 20 63 70 2f 6d 0d 0a 63 64 69 73 6b 09 65 71 75 09 30 30 ┆racks used by cp/m cdisk equ 00┆ 0x0c5880…0c58a0 30 34 68 09 3b 61 64 64 72 65 73 73 20 6f 66 20 6c 61 73 74 20 6c 6f 67 67 65 64 20 64 69 73 6b ┆04h ;address of last logged disk┆ 0x0c58a0…0c58c0 20 6f 6e 20 77 61 72 6d 20 73 74 61 72 74 0d 0a 62 75 66 66 09 65 71 75 09 30 30 38 30 68 09 3b ┆ on warm start buff equ 0080h ;┆ 0x0c58c0…0c58e0 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 0d 0a 72 65 74 72 79 09 65 71 ┆default buffer address retry eq┆ 0x0c58e0…0c5900 75 09 31 30 09 3b 6d 61 78 20 72 65 74 72 69 65 73 20 6f 6e 20 64 69 73 6b 20 69 2f 6f 20 62 65 ┆u 10 ;max retries on disk i/o be┆ 0x0c5900…0c5920 66 6f 72 65 20 65 72 72 6f 72 0d 0a 3b 0d 0a 3b 09 70 65 72 66 6f 72 6d 20 66 6f 6c 6c 6f 77 69 ┆fore error ; ; perform followi┆ 0x0c5920…0c5940 6e 67 20 66 75 6e 63 74 69 6f 6e 73 0d 0a 3b 09 62 6f 6f 74 09 63 6f 6c 64 20 73 74 61 72 74 0d ┆ng functions ; boot cold start ┆ 0x0c5940…0c5960 0a 3b 09 77 62 6f 6f 74 09 77 61 72 6d 20 73 74 61 72 74 20 28 73 61 76 65 20 69 2f 6f 20 62 79 ┆ ; wboot warm start (save i/o by┆ 0x0c5960…0c5980 74 65 29 0d 0a 3b 09 28 62 6f 6f 74 20 61 6e 64 20 77 62 6f 6f 74 20 61 72 65 20 74 68 65 20 73 ┆te) ; (boot and wboot are the s┆ 0x0c5980…0c59a0 61 6d 65 20 66 6f 72 20 6d 64 73 29 0d 0a 3b 09 63 6f 6e 73 74 09 63 6f 6e 73 6f 6c 65 20 73 74 ┆ame for mds) ; const console st┆ 0x0c59a0…0c59c0 61 74 75 73 0d 0a 3b 09 09 72 65 67 2d 61 20 3d 20 30 30 20 69 66 20 6e 6f 20 63 68 61 72 61 63 ┆atus ; reg-a = 00 if no charac┆ 0x0c59c0…0c59e0 74 65 72 20 72 65 61 64 79 0d 0a 3b 09 09 72 65 67 2d 61 20 3d 20 66 66 20 69 66 20 63 68 61 72 ┆ter ready ; reg-a = ff if char┆ 0x0c59e0…0c5a00 61 63 74 65 72 20 72 65 61 64 79 0d 0a 3b 09 63 6f 6e 69 6e 09 63 6f 6e 73 6f 6c 65 20 63 68 61 ┆acter ready ; conin console cha┆ 0x0c5a00…0c5a20 (52, 1, 7) 65 20 61 6c 73 6f 20 61 73 73 75 6d 65 20 74 68 65 20 6d 64 73 20 73 79 73 74 65 6d 20 68 61 73 ┆e also assume the mds system has┆ 0x0c5a20…0c5a40 20 66 6f 75 72 20 64 69 73 6b 20 64 72 69 76 65 73 0d 0a 72 65 76 72 74 09 65 71 75 09 30 66 64 ┆ four disk drives revrt equ 0fd┆ 0x0c5a40…0c5a60 68 09 3b 69 6e 74 65 72 72 75 70 74 20 72 65 76 65 72 74 20 70 6f 72 74 0d 0a 69 6e 74 63 09 65 ┆h ;interrupt revert port intc e┆ 0x0c5a60…0c5a80 71 75 09 30 66 63 68 09 3b 69 6e 74 65 72 72 75 70 74 20 6d 61 73 6b 20 70 6f 72 74 0d 0a 69 63 ┆qu 0fch ;interrupt mask port ic┆ 0x0c5a80…0c5aa0 6f 6e 09 65 71 75 09 30 66 33 68 09 3b 69 6e 74 65 72 72 75 70 74 20 63 6f 6e 74 72 6f 6c 20 70 ┆on equ 0f3h ;interrupt control p┆ 0x0c5aa0…0c5ac0 6f 72 74 0d 0a 69 6e 74 65 09 65 71 75 09 30 31 31 31 24 31 31 31 30 62 09 3b 65 6e 61 62 6c 65 ┆ort inte equ 0111$1110b ;enable┆ 0x0c5ac0…0c5ae0 20 72 73 74 20 30 28 77 61 72 6d 20 62 6f 6f 74 29 2c 20 72 73 74 20 37 20 28 6d 6f 6e 69 74 6f ┆ rst 0(warm boot), rst 7 (monito┆ 0x0c5ae0…0c5b00 72 29 0d 0a 3b 0d 0a 3b 09 6d 64 73 20 6d 6f 6e 69 74 6f 72 20 65 71 75 61 74 65 73 0d 0a 6d 6f ┆r) ; ; mds monitor equates mo┆ 0x0c5b00…0c5b20 6e 38 30 09 65 71 75 09 30 66 38 30 30 68 09 3b 6d 64 73 20 6d 6f 6e 69 74 6f 72 0d 0a 72 6d 6f ┆n80 equ 0f800h ;mds monitor rmo┆ 0x0c5b20…0c5b40 6e 38 30 09 65 71 75 09 30 66 66 30 66 68 09 3b 72 65 73 74 61 72 74 20 6d 6f 6e 38 30 20 28 62 ┆n80 equ 0ff0fh ;restart mon80 (b┆ 0x0c5b40…0c5b60 6f 6f 74 20 65 72 72 6f 72 29 0d 0a 63 69 09 65 71 75 09 30 66 38 30 33 68 09 3b 63 6f 6e 73 6f ┆oot error) ci equ 0f803h ;conso┆ 0x0c5b60…0c5b80 6c 65 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 72 65 67 2d 61 0d 0a 72 69 09 65 71 75 09 30 66 ┆le character to reg-a ri equ 0f┆ 0x0c5b80…0c5ba0 38 30 36 68 09 3b 72 65 61 64 65 72 20 69 6e 20 74 6f 20 72 65 67 2d 61 0d 0a 63 6f 09 65 71 75 ┆806h ;reader in to reg-a co equ┆ 0x0c5ba0…0c5bc0 09 30 66 38 30 39 68 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 20 66 72 6f 6d 20 63 20 74 6f 20 ┆ 0f809h ;console char from c to ┆ 0x0c5bc0…0c5be0 63 6f 6e 73 6f 6c 65 20 6f 75 74 0d 0a 70 6f 09 65 71 75 09 30 66 38 30 63 68 09 3b 70 75 6e 63 ┆console out po equ 0f80ch ;punc┆ 0x0c5be0…0c5c00 68 20 63 68 61 72 20 66 72 6f 6d 20 63 20 74 6f 20 70 75 6e 63 68 20 64 65 76 69 63 65 0d 0a 6c ┆h char from c to punch device l┆ 0x0c5c00…0c5c20 (52, 1, 8) 65 63 0d 0a 3b 0d 0a 3b 09 72 65 61 64 20 73 65 63 74 6f 72 73 2c 20 63 6f 75 6e 74 20 6e 73 65 ┆ec ; ; read sectors, count nse┆ 0x0c5c20…0c5c40 63 74 73 20 74 6f 20 7a 65 72 6f 0d 0a 09 70 6f 70 09 62 09 3b 31 30 2d 65 72 72 6f 72 20 63 6f ┆cts to zero pop b ;10-error co┆ 0x0c5c40…0c5c60 75 6e 74 0d 0a 09 6d 76 69 09 62 2c 6e 73 65 63 74 73 0d 0a 72 64 73 65 63 3a 09 3b 72 65 61 64 ┆unt mvi b,nsects rdsec: ;read┆ 0x0c5c60…0c5c80 20 6e 65 78 74 20 73 65 63 74 6f 72 0d 0a 09 70 75 73 68 09 62 09 3b 73 61 76 65 20 73 65 63 74 ┆ next sector push b ;save sect┆ 0x0c5c80…0c5ca0 6f 72 20 63 6f 75 6e 74 0d 0a 09 63 61 6c 6c 09 72 65 61 64 0d 0a 09 6a 6e 7a 09 62 6f 6f 74 65 ┆or count call read jnz boote┆ 0x0c5ca0…0c5cc0 72 72 09 3b 72 65 74 72 79 20 69 66 20 65 72 72 6f 72 73 20 6f 63 63 75 72 0d 0a 09 6c 68 6c 64 ┆rr ;retry if errors occur lhld┆ 0x0c5cc0…0c5ce0 09 69 6f 64 09 3b 69 6e 63 72 65 6d 65 6e 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 09 6c 78 ┆ iod ;increment dma address lx┆ 0x0c5ce0…0c5d00 69 09 64 2c 31 32 38 09 3b 73 65 63 74 6f 72 20 73 69 7a 65 0d 0a 09 64 61 64 09 64 09 3b 69 6e ┆i d,128 ;sector size dad d ;in┆ 0x0c5d00…0c5d20 63 72 65 6d 65 6e 74 65 64 20 64 6d 61 20 61 64 64 72 65 73 73 20 69 6e 20 68 6c 0d 0a 09 6d 6f ┆cremented dma address in hl mo┆ 0x0c5d20…0c5d40 76 09 62 2c 68 0d 0a 09 6d 6f 76 09 63 2c 6c 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 20 ┆v b,h mov c,l ;ready for call ┆ 0x0c5d40…0c5d60 74 6f 20 73 65 74 20 64 6d 61 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 09 6c 64 61 09 69 ┆to set dma call setdma lda i┆ 0x0c5d60…0c5d80 6f 73 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 6a 75 73 74 20 72 65 61 64 0d 0a 09 63 70 ┆os ;sector number just read cp┆ 0x0c5d80…0c5da0 69 09 32 36 09 3b 72 65 61 64 20 6c 61 73 74 20 73 65 63 74 6f 72 3f 0d 0a 09 6a 63 09 72 64 31 ┆i 26 ;read last sector? jc rd1┆ 0x0c5da0…0c5dc0 0d 0a 3b 09 6d 75 73 74 20 62 65 20 73 65 63 74 6f 72 20 32 36 2c 20 7a 65 72 6f 20 61 6e 64 20 ┆ ; must be sector 26, zero and ┆ 0x0c5dc0…0c5de0 67 6f 20 74 6f 20 6e 65 78 74 20 74 72 61 63 6b 0d 0a 09 6c 64 61 09 69 6f 74 09 3b 67 65 74 20 ┆go to next track lda iot ;get ┆ 0x0c5de0…0c5e00 74 72 61 63 6b 20 74 6f 20 72 65 67 69 73 74 65 72 20 61 0d 0a 09 69 6e 72 09 61 0d 0a 09 6d 6f ┆track to register a inr a mo┆ 0x0c5e00…0c5e20 (52, 1, 9) 6e 74 3a 0d 0a 3b 09 72 65 67 69 73 74 65 72 20 63 20 63 6f 6e 74 61 69 6e 73 20 72 65 74 72 79 ┆nt: ; register c contains retry┆ 0x0c5e20…0c5e40 20 63 6f 75 6e 74 2c 20 64 65 63 72 65 6d 65 6e 74 20 27 74 69 6c 20 7a 65 72 6f 0d 0a 09 64 63 ┆ count, decrement 'til zero dc┆ 0x0c5e40…0c5e60 72 09 63 0d 0a 09 6a 6e 7a 09 72 65 77 61 69 74 09 3b 66 6f 72 20 61 6e 6f 74 68 65 72 20 74 72 ┆r c jnz rewait ;for another tr┆ 0x0c5e60…0c5e80 79 0d 0a 3b 0d 0a 3b 09 63 61 6e 6e 6f 74 20 72 65 63 6f 76 65 72 20 66 72 6f 6d 20 65 72 72 6f ┆y ; ; cannot recover from erro┆ 0x0c5e80…0c5ea0 72 0d 0a 09 6d 76 69 09 61 2c 31 09 3b 65 72 72 6f 72 20 63 6f 64 65 0d 0a 09 72 65 74 0d 0a 3b ┆r mvi a,1 ;error code ret ;┆ 0x0c5ea0…0c5ec0 0d 0a 3b 09 69 6e 74 79 70 65 2c 20 69 6e 62 79 74 65 2c 20 69 6e 73 74 61 74 20 72 65 61 64 20 ┆ ; intype, inbyte, instat read ┆ 0x0c5ec0…0c5ee0 64 72 69 76 65 20 62 61 6e 6b 20 30 30 20 6f 72 20 31 30 0d 0a 69 6e 74 79 70 65 3a 09 6c 64 61 ┆drive bank 00 or 10 intype: lda┆ 0x0c5ee0…0c5f00 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 74 79 70 31 09 3b 73 6b 69 ┆ dbank ora a jnz intyp1 ;ski┆ 0x0c5f00…0c5f20 70 20 74 6f 20 62 61 6e 6b 20 31 30 0d 0a 09 69 6e 09 72 74 79 70 65 0d 0a 09 72 65 74 0d 0a 69 ┆p to bank 10 in rtype ret i┆ 0x0c5f20…0c5f40 6e 74 79 70 31 3a 09 69 6e 09 72 74 79 70 65 2b 31 30 68 09 3b 37 38 20 66 6f 72 20 30 2c 31 20 ┆ntyp1: in rtype+10h ;78 for 0,1 ┆ 0x0c5f40…0c5f60 20 38 38 20 66 6f 72 20 32 2c 33 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 69 6e 62 79 74 65 3a 09 6c 64 ┆ 88 for 2,3 ret ; inbyte: ld┆ 0x0c5f60…0c5f80 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 62 79 74 31 0d 0a 09 69 ┆a dbank ora a jnz inbyt1 i┆ 0x0c5f80…0c5fa0 6e 09 72 62 79 74 65 0d 0a 09 72 65 74 0d 0a 69 6e 62 79 74 31 3a 09 69 6e 09 72 62 79 74 65 2b ┆n rbyte ret inbyt1: in rbyte+┆ 0x0c5fa0…0c5fc0 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 69 6e 73 74 61 74 3a 09 6c 64 61 09 64 62 61 6e 6b 0d ┆10h ret ; instat: lda dbank ┆ 0x0c5fc0…0c5fe0 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 73 74 61 31 0d 0a 09 69 6e 09 64 73 74 61 74 0d ┆ ora a jnz insta1 in dstat ┆ 0x0c5fe0…0c6000 0a 09 72 65 74 0d 0a 69 6e 73 74 61 31 3a 09 69 6e 09 64 73 74 61 74 2b 31 30 68 0d 0a 09 72 65 ┆ ret insta1: in dstat+10h re┆ 0x0c6000…0c6020 (52, 1, 10) 72 61 63 74 65 72 20 69 6e 20 28 72 65 73 75 6c 74 20 69 6e 20 72 65 67 2d 61 29 0d 0a 3b 09 63 ┆racter in (result in reg-a) ; c┆ 0x0c6020…0c6040 6f 6e 6f 75 74 09 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 6f 75 74 20 28 63 68 61 ┆onout console character out (cha┆ 0x0c6040…0c6060 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 6c 69 73 74 09 6c 69 73 74 20 6f 75 74 20 28 63 68 ┆r in reg-c) ; list list out (ch┆ 0x0c6060…0c6080 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 70 75 6e 63 68 09 70 75 6e 63 68 20 6f 75 74 20 ┆ar in reg-c) ; punch punch out ┆ 0x0c6080…0c60a0 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 72 65 61 64 65 72 09 70 61 70 65 72 20 ┆(char in reg-c) ; reader paper ┆ 0x0c60a0…0c60c0 74 61 70 65 20 72 65 61 64 65 72 20 69 6e 20 28 72 65 73 75 6c 74 20 74 6f 20 72 65 67 2d 61 29 ┆tape reader in (result to reg-a)┆ 0x0c60c0…0c60e0 0d 0a 3b 09 68 6f 6d 65 09 6d 6f 76 65 20 74 6f 20 74 72 61 63 6b 20 30 30 0d 0a 3b 0d 0a 3b 09 ┆ ; home move to track 00 ; ; ┆ 0x0c60e0…0c6100 28 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 61 6c 6c 73 20 73 65 74 2d 75 70 20 74 68 65 20 ┆(the following calls set-up the ┆ 0x0c6100…0c6120 69 6f 20 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 20 66 6f 72 20 74 68 65 0d 0a 3b 09 6d 64 ┆io parameter block for the ; md┆ 0x0c6120…0c6140 73 2c 20 77 68 69 63 68 20 69 73 20 75 73 65 64 20 74 6f 20 70 65 72 66 6f 72 6d 20 73 75 62 73 ┆s, which is used to perform subs┆ 0x0c6140…0c6160 65 71 75 65 6e 74 20 72 65 61 64 73 20 61 6e 64 20 77 72 69 74 65 73 29 0d 0a 3b 09 73 65 6c 64 ┆equent reads and writes) ; seld┆ 0x0c6160…0c6180 73 6b 09 73 65 6c 65 63 74 20 64 69 73 6b 20 67 69 76 65 6e 20 62 79 20 72 65 67 2d 63 20 28 30 ┆sk select disk given by reg-c (0┆ 0x0c6180…0c61a0 2c 31 2c 32 2e 2e 2e 29 0d 0a 3b 09 73 65 74 74 72 6b 09 73 65 74 20 74 72 61 63 6b 20 61 64 64 ┆,1,2...) ; settrk set track add┆ 0x0c61a0…0c61c0 72 65 73 73 20 28 30 2c 2e 2e 2e 37 36 29 20 66 6f 72 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 ┆ress (0,...76) for subsequent re┆ 0x0c61c0…0c61e0 61 64 2f 77 72 69 74 65 0d 0a 3b 09 73 65 74 73 65 63 09 73 65 74 20 73 65 63 74 6f 72 20 61 64 ┆ad/write ; setsec set sector ad┆ 0x0c61e0…0c6200 64 72 65 73 73 20 28 31 2c 2e 2e 2e 2c 32 36 29 20 66 6f 72 20 73 75 62 73 65 71 75 65 6e 74 20 ┆dress (1,...,26) for subsequent ┆ 0x0c6200…0c6220 (52, 1, 11) 6f 09 65 71 75 09 30 66 38 30 66 68 09 3b 6c 69 73 74 20 66 72 6f 6d 20 63 20 74 6f 20 6c 69 73 ┆o equ 0f80fh ;list from c to lis┆ 0x0c6220…0c6240 74 20 64 65 76 69 63 65 0d 0a 63 73 74 73 09 65 71 75 09 30 66 38 31 32 68 09 3b 63 6f 6e 73 6f ┆t device csts equ 0f812h ;conso┆ 0x0c6240…0c6260 6c 65 20 73 74 61 74 75 73 20 30 30 2f 66 66 20 74 6f 20 72 65 67 69 73 74 65 72 20 61 0d 0a 3b ┆le status 00/ff to register a ;┆ 0x0c6260…0c6280 0d 0a 3b 09 64 69 73 6b 20 70 6f 72 74 73 20 61 6e 64 20 63 6f 6d 6d 61 6e 64 73 0d 0a 62 61 73 ┆ ; disk ports and commands bas┆ 0x0c6280…0c62a0 65 09 65 71 75 09 37 38 68 09 3b 62 61 73 65 20 6f 66 20 64 69 73 6b 20 63 6f 6d 6d 61 6e 64 20 ┆e equ 78h ;base of disk command ┆ 0x0c62a0…0c62c0 69 6f 20 70 6f 72 74 73 0d 0a 64 73 74 61 74 09 65 71 75 09 62 61 73 65 09 3b 64 69 73 6b 20 73 ┆io ports dstat equ base ;disk s┆ 0x0c62c0…0c62e0 74 61 74 75 73 20 28 69 6e 70 75 74 29 0d 0a 72 74 79 70 65 09 65 71 75 09 62 61 73 65 2b 31 09 ┆tatus (input) rtype equ base+1 ┆ 0x0c62e0…0c6300 3b 72 65 73 75 6c 74 20 74 79 70 65 20 28 69 6e 70 75 74 29 0d 0a 72 62 79 74 65 09 65 71 75 09 ┆;result type (input) rbyte equ ┆ 0x0c6300…0c6320 62 61 73 65 2b 33 09 3b 72 65 73 75 6c 74 20 62 79 74 65 20 28 69 6e 70 75 74 29 0d 0a 3b 0d 0a ┆base+3 ;result byte (input) ; ┆ 0x0c6320…0c6340 69 6c 6f 77 09 65 71 75 09 62 61 73 65 2b 31 09 3b 69 6f 70 62 20 6c 6f 77 20 61 64 64 72 65 73 ┆ilow equ base+1 ;iopb low addres┆ 0x0c6340…0c6360 73 20 28 6f 75 74 70 75 74 29 0d 0a 69 68 69 67 68 09 65 71 75 09 62 61 73 65 2b 32 09 3b 69 6f ┆s (output) ihigh equ base+2 ;io┆ 0x0c6360…0c6380 70 62 20 68 69 67 68 20 61 64 64 72 65 73 73 20 28 6f 75 74 70 75 74 29 0d 0a 3b 0d 0a 72 65 61 ┆pb high address (output) ; rea┆ 0x0c6380…0c63a0 64 66 09 65 71 75 09 34 68 09 3b 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 77 72 69 74 66 09 ┆df equ 4h ;read function writf ┆ 0x0c63a0…0c63c0 65 71 75 09 36 68 09 3b 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 72 65 63 61 6c 09 65 71 ┆equ 6h ;write function recal eq┆ 0x0c63c0…0c63e0 75 09 33 68 09 3b 72 65 63 61 6c 69 62 72 61 74 65 20 64 72 69 76 65 0d 0a 69 6f 72 64 79 09 65 ┆u 3h ;recalibrate drive iordy e┆ 0x0c63e0…0c6400 71 75 09 34 68 09 3b 69 2f 6f 20 66 69 6e 69 73 68 65 64 20 6d 61 73 6b 0d 0a 63 72 09 65 71 75 ┆qu 4h ;i/o finished mask cr equ┆ 0x0c6400…0c6420 (52, 1, 12) 76 09 63 2c 61 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 0d 0a 09 63 61 6c 6c 09 73 65 74 ┆v c,a ;ready for call call set┆ 0x0c6420…0c6440 74 72 6b 0d 0a 09 78 72 61 09 61 09 3b 63 6c 65 61 72 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 ┆trk xra a ;clear sector number┆ 0x0c6440…0c6460 0d 0a 72 64 31 3a 09 69 6e 72 09 61 09 3b 74 6f 20 6e 65 78 74 20 73 65 63 74 6f 72 0d 0a 09 6d ┆ rd1: inr a ;to next sector m┆ 0x0c6460…0c6480 6f 76 09 63 2c 61 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 0d 0a 09 63 61 6c 6c 09 73 65 ┆ov c,a ;ready for call call se┆ 0x0c6480…0c64a0 74 73 65 63 0d 0a 09 70 6f 70 09 62 09 3b 72 65 63 61 6c 6c 20 73 65 63 74 6f 72 20 63 6f 75 6e ┆tsec pop b ;recall sector coun┆ 0x0c64a0…0c64c0 74 0d 0a 09 64 63 72 09 62 09 3b 64 6f 6e 65 3f 0d 0a 09 6a 6e 7a 09 72 64 73 65 63 0d 0a 3b 0d ┆t dcr b ;done? jnz rdsec ; ┆ 0x0c64c0…0c64e0 0a 3b 09 64 6f 6e 65 20 77 69 74 68 20 74 68 65 20 6c 6f 61 64 2c 20 72 65 73 65 74 20 64 65 66 ┆ ; done with the load, reset def┆ 0x0c64e0…0c6500 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 0d 0a 67 6f 63 70 6d 3a 09 3b 28 65 6e ┆ault buffer address gocpm: ;(en┆ 0x0c6500…0c6520 74 65 72 20 68 65 72 65 20 66 72 6f 6d 20 63 6f 6c 64 20 73 74 61 72 74 20 62 6f 6f 74 29 0d 0a ┆ter here from cold start boot) ┆ 0x0c6520…0c6540 3b 09 65 6e 61 62 6c 65 20 72 73 74 30 20 61 6e 64 20 72 73 74 37 0d 0a 09 64 69 0d 0a 09 6d 76 ┆; enable rst0 and rst7 di mv┆ 0x0c6540…0c6560 69 09 61 2c 31 32 68 09 3b 69 6e 69 74 69 61 6c 69 7a 65 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6f 75 ┆i a,12h ;initialize command ou┆ 0x0c6560…0c6580 74 09 72 65 76 72 74 0d 0a 09 78 72 61 09 61 0d 0a 09 6f 75 74 09 69 6e 74 63 09 3b 63 6c 65 61 ┆t revrt xra a out intc ;clea┆ 0x0c6580…0c65a0 72 65 64 0d 0a 09 6d 76 69 09 61 2c 69 6e 74 65 09 3b 72 73 74 30 20 61 6e 64 20 72 73 74 37 20 ┆red mvi a,inte ;rst0 and rst7 ┆ 0x0c65a0…0c65c0 62 69 74 73 20 6f 6e 0d 0a 09 6f 75 74 09 69 6e 74 63 0d 0a 09 78 72 61 09 61 0d 0a 09 6f 75 74 ┆bits on out intc xra a out┆ 0x0c65c0…0c65e0 09 69 63 6f 6e 09 3b 69 6e 74 65 72 72 75 70 74 20 63 6f 6e 74 72 6f 6c 0d 0a 3b 0d 0a 3b 09 73 ┆ icon ;interrupt control ; ; s┆ 0x0c65e0…0c6600 65 74 20 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 20 74 6f 20 38 30 68 ┆et default buffer address to 80h┆ 0x0c6600…0c6620 (52, 1, 13) 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 61 74 61 20 61 72 65 61 73 20 28 6d 75 73 74 20 62 ┆t ; ; ; ; data areas (must b┆ 0x0c6620…0c6640 65 20 69 6e 20 72 61 6d 29 0d 0a 64 62 61 6e 6b 3a 09 64 62 09 30 09 3b 64 69 73 6b 20 62 61 6e ┆e in ram) dbank: db 0 ;disk ban┆ 0x0c6640…0c6660 6b 20 30 30 20 69 66 20 64 72 69 76 65 20 30 2c 31 0d 0a 09 09 09 3b 09 20 20 20 31 30 20 69 66 ┆k 00 if drive 0,1 ; 10 if┆ 0x0c6660…0c6680 20 64 72 69 76 65 20 32 2c 33 0d 0a 69 6f 70 62 3a 09 3b 69 6f 20 70 61 72 61 6d 65 74 65 72 20 ┆ drive 2,3 iopb: ;io parameter ┆ 0x0c6680…0c66a0 62 6c 6f 63 6b 0d 0a 09 64 62 09 38 30 68 09 3b 6e 6f 72 6d 61 6c 20 69 2f 6f 20 6f 70 65 72 61 ┆block db 80h ;normal i/o opera┆ 0x0c66a0…0c66c0 74 69 6f 6e 0d 0a 69 6f 66 3a 09 64 62 09 72 65 61 64 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e ┆tion iof: db readf ;io function┆ 0x0c66c0…0c66e0 2c 20 69 6e 69 74 69 61 6c 20 72 65 61 64 0d 0a 69 6f 6e 3a 09 64 62 09 31 09 3b 6e 75 6d 62 65 ┆, initial read ion: db 1 ;numbe┆ 0x0c66e0…0c6700 72 20 6f 66 20 73 65 63 74 6f 72 73 20 74 6f 20 72 65 61 64 0d 0a 69 6f 74 3a 09 64 62 09 6f 66 ┆r of sectors to read iot: db of┆ 0x0c6700…0c6720 66 73 65 74 09 3b 74 72 61 63 6b 20 6e 75 6d 62 65 72 0d 0a 69 6f 73 3a 09 64 62 09 31 09 3b 73 ┆fset ;track number ios: db 1 ;s┆ 0x0c6720…0c6740 65 63 74 6f 72 20 6e 75 6d 62 65 72 0d 0a 69 6f 64 3a 09 64 77 09 62 75 66 66 09 3b 69 6f 20 61 ┆ector number iod: dw buff ;io a┆ 0x0c6740…0c6760 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 65 66 69 6e 65 20 72 61 6d 20 61 72 65 61 73 ┆ddress ; ; ; define ram areas┆ 0x0c6760…0c6780 20 66 6f 72 20 62 64 6f 73 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 09 65 6e 64 65 66 0d 0a 09 65 6e ┆ for bdos operation endef en┆ 0x0c6780…0c67a0 64 0d 0a 3b 09 4d 44 53 2d 38 30 30 20 49 2f 4f 20 44 72 69 76 65 72 73 20 66 6f 72 20 43 50 2f ┆d ; MDS-800 I/O Drivers for CP/┆ 0x0c67a0…0c67c0 4d 20 32 2e 32 0d 0a 3b 09 28 66 6f 75 72 20 64 72 69 76 65 20 73 69 6e 67 6c 65 20 64 65 6e 73 ┆M 2.2 ; (four drive single dens┆ 0x0c67c0…0c67e0 69 74 79 20 76 65 72 73 69 6f 6e 29 0d 0a 3b 0d 0a 3b 09 56 65 72 73 69 6f 6e 20 32 2e 32 20 46 ┆ity version) ; ; Version 2.2 F┆ 0x0c67e0…0c6800 65 62 72 75 61 72 79 2c 20 31 39 38 30 0d 0a 3b 0d 0a 76 65 72 73 09 65 71 75 09 32 32 09 3b 76 ┆ebruary, 1980 ; vers equ 22 ;v┆ 0x0c6800…0c6820 (52, 1, 14) 72 65 61 64 2f 77 72 69 74 65 0d 0a 3b 09 73 65 74 64 6d 61 09 73 65 74 20 73 75 62 73 65 71 75 ┆read/write ; setdma set subsequ┆ 0x0c6820…0c6840 65 6e 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 28 69 6e 69 74 69 61 6c 6c 79 20 38 30 68 29 0d ┆ent dma address (initially 80h) ┆ 0x0c6840…0c6860 0a 3b 0d 0a 3b 09 28 72 65 61 64 20 61 6e 64 20 77 72 69 74 65 20 61 73 73 75 6d 65 20 70 72 65 ┆ ; ; (read and write assume pre┆ 0x0c6860…0c6880 76 69 6f 75 73 20 63 61 6c 6c 73 20 74 6f 20 73 65 74 20 75 70 20 74 68 65 20 69 6f 20 70 61 72 ┆vious calls to set up the io par┆ 0x0c6880…0c68a0 61 6d 65 74 65 72 73 29 0d 0a 3b 09 72 65 61 64 09 72 65 61 64 20 74 72 61 63 6b 2f 73 65 63 74 ┆ameters) ; read read track/sect┆ 0x0c68a0…0c68c0 6f 72 20 74 6f 20 70 72 65 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 3b 09 77 72 69 74 ┆or to preset dma address ; writ┆ 0x0c68c0…0c68e0 65 09 77 72 69 74 65 20 74 72 61 63 6b 2f 73 65 63 74 6f 72 20 66 72 6f 6d 20 70 72 65 73 65 74 ┆e write track/sector from preset┆ 0x0c68e0…0c6900 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b 09 6a 75 6d 70 20 76 65 63 74 6f 72 20 66 ┆ dma address ; ; jump vector f┆ 0x0c6900…0c6920 6f 72 20 69 6e 64 69 76 69 75 61 6c 20 72 6f 75 74 69 6e 65 73 0d 0a 09 6a 6d 70 09 62 6f 6f 74 ┆or indiviual routines jmp boot┆ 0x0c6920…0c6940 0d 0a 77 62 6f 6f 74 65 3a 09 6a 6d 70 09 77 62 6f 6f 74 0d 0a 09 6a 6d 70 09 63 6f 6e 73 74 0d ┆ wboote: jmp wboot jmp const ┆ 0x0c6940…0c6960 0a 09 6a 6d 70 09 63 6f 6e 69 6e 0d 0a 09 6a 6d 70 09 63 6f 6e 6f 75 74 0d 0a 09 6a 6d 70 09 6c ┆ jmp conin jmp conout jmp l┆ 0x0c6960…0c6980 69 73 74 0d 0a 09 6a 6d 70 09 70 75 6e 63 68 0d 0a 09 6a 6d 70 09 72 65 61 64 65 72 0d 0a 09 6a ┆ist jmp punch jmp reader j┆ 0x0c6980…0c69a0 6d 70 09 68 6f 6d 65 0d 0a 09 6a 6d 70 09 73 65 6c 64 73 6b 0d 0a 09 6a 6d 70 09 73 65 74 74 72 ┆mp home jmp seldsk jmp settr┆ 0x0c69a0…0c69c0 6b 0d 0a 09 6a 6d 70 09 73 65 74 73 65 63 0d 0a 09 6a 6d 70 09 73 65 74 64 6d 61 0d 0a 09 6a 6d ┆k jmp setsec jmp setdma jm┆ 0x0c69c0…0c69e0 70 09 72 65 61 64 0d 0a 09 6a 6d 70 09 77 72 69 74 65 0d 0a 09 6a 6d 70 09 6c 69 73 74 73 74 09 ┆p read jmp write jmp listst ┆ 0x0c69e0…0c6a00 3b 6c 69 73 74 20 73 74 61 74 75 73 0d 0a 09 6a 6d 70 09 73 65 63 74 72 61 6e 0d 0a 3b 0d 0a 09 ┆;list status jmp sectran ; ┆ 0x0c6a00…0c6a20 (52, 1, 15) 09 30 64 68 09 3b 63 61 72 72 69 61 67 65 20 72 65 74 75 72 6e 0d 0a 6c 66 09 65 71 75 09 30 61 ┆ 0dh ;carriage return lf equ 0a┆ 0x0c6a20…0c6a40 68 09 3b 6c 69 6e 65 20 66 65 65 64 0d 0a 3b 0d 0a 73 69 67 6e 6f 6e 3a 09 3b 73 69 67 6e 6f 6e ┆h ;line feed ; signon: ;signon┆ 0x0c6a40…0c6a60 20 6d 65 73 73 61 67 65 3a 20 78 78 6b 20 63 70 2f 6d 20 76 65 72 73 20 79 2e 79 0d 0a 09 64 62 ┆ message: xxk cp/m vers y.y db┆ 0x0c6a60…0c6a80 09 63 72 2c 6c 66 2c 6c 66 0d 0a 09 69 66 09 74 65 73 74 0d 0a 09 64 62 09 27 33 32 27 09 3b 33 ┆ cr,lf,lf if test db '32' ;3┆ 0x0c6a80…0c6aa0 32 6b 20 65 78 61 6d 70 6c 65 20 62 69 6f 73 0d 0a 09 65 6e 64 69 66 0d 0a 09 69 66 09 6e 6f 74 ┆2k example bios endif if not┆ 0x0c6aa0…0c6ac0 20 74 65 73 74 0d 0a 09 64 62 09 27 30 30 27 09 3b 6d 65 6d 6f 72 79 20 73 69 7a 65 20 66 69 6c ┆ test db '00' ;memory size fil┆ 0x0c6ac0…0c6ae0 6c 65 64 20 62 79 20 72 65 6c 6f 63 61 74 6f 72 0d 0a 09 65 6e 64 69 66 0d 0a 09 64 62 09 27 6b ┆led by relocator endif db 'k┆ 0x0c6ae0…0c6b00 20 43 50 2f 4d 20 76 65 72 73 20 27 0d 0a 09 64 62 09 76 65 72 73 2f 31 30 2b 27 30 27 2c 27 2e ┆ CP/M vers ' db vers/10+'0','.┆ 0x0c6b00…0c6b20 27 2c 76 65 72 73 20 6d 6f 64 20 31 30 2b 27 30 27 0d 0a 09 64 62 09 63 72 2c 6c 66 2c 30 0d 0a ┆',vers mod 10+'0' db cr,lf,0 ┆ 0x0c6b20…0c6b40 3b 0d 0a 62 6f 6f 74 3a 09 3b 70 72 69 6e 74 20 73 69 67 6e 6f 6e 20 6d 65 73 73 61 67 65 20 61 ┆; boot: ;print signon message a┆ 0x0c6b40…0c6b60 6e 64 20 67 6f 20 74 6f 20 63 63 70 0d 0a 3b 09 28 6e 6f 74 65 3a 20 6d 64 73 20 62 6f 6f 74 20 ┆nd go to ccp ; (note: mds boot ┆ 0x0c6b60…0c6b80 69 6e 69 74 69 61 6c 69 7a 65 64 20 69 6f 62 79 74 65 20 61 74 20 30 30 30 33 68 29 0d 0a 09 6c ┆initialized iobyte at 0003h) l┆ 0x0c6b80…0c6ba0 78 69 09 73 70 2c 62 75 66 66 2b 38 30 68 0d 0a 09 6c 78 69 09 68 2c 73 69 67 6e 6f 6e 0d 0a 09 ┆xi sp,buff+80h lxi h,signon ┆ 0x0c6ba0…0c6bc0 63 61 6c 6c 09 70 72 6d 73 67 09 3b 70 72 69 6e 74 20 6d 65 73 73 61 67 65 0d 0a 09 78 72 61 09 ┆call prmsg ;print message xra ┆ 0x0c6bc0…0c6be0 61 09 3b 63 6c 65 61 72 20 61 63 63 75 6d 75 6c 61 74 6f 72 0d 0a 09 73 74 61 09 63 64 69 73 6b ┆a ;clear accumulator sta cdisk┆ 0x0c6be0…0c6c00 09 3b 73 65 74 20 69 6e 69 74 69 61 6c 6c 79 20 74 6f 20 64 69 73 6b 20 61 0d 0a 09 6a 6d 70 09 ┆ ;set initially to disk a jmp ┆ 0x0c6c00…0c6c20 (53, 0, 1) 0d 0a 09 6c 78 69 09 62 2c 62 75 66 66 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 3b 0d 0a ┆ lxi b,buff call setdma ; ┆ 0x0c6c20…0c6c40 3b 09 72 65 73 65 74 20 6d 6f 6e 69 74 6f 72 20 65 6e 74 72 79 20 70 6f 69 6e 74 73 0d 0a 09 6d ┆; reset monitor entry points m┆ 0x0c6c40…0c6c60 76 69 09 61 2c 6a 6d 70 0d 0a 09 73 74 61 09 30 0d 0a 09 6c 78 69 09 68 2c 77 62 6f 6f 74 65 0d ┆vi a,jmp sta 0 lxi h,wboote ┆ 0x0c6c60…0c6c80 0a 09 73 68 6c 64 09 31 09 3b 6a 6d 70 20 77 62 6f 6f 74 20 61 74 20 6c 6f 63 61 74 69 6f 6e 20 ┆ shld 1 ;jmp wboot at location ┆ 0x0c6c80…0c6ca0 30 30 0d 0a 09 73 74 61 09 35 0d 0a 09 6c 78 69 09 68 2c 62 64 6f 73 0d 0a 09 73 68 6c 64 09 36 ┆00 sta 5 lxi h,bdos shld 6┆ 0x0c6ca0…0c6cc0 09 3b 6a 6d 70 20 62 64 6f 73 20 61 74 20 6c 6f 63 61 74 69 6f 6e 20 35 0d 0a 09 69 66 09 6e 6f ┆ ;jmp bdos at location 5 if no┆ 0x0c6cc0…0c6ce0 74 20 74 65 73 74 0d 0a 09 73 74 61 09 37 2a 38 09 3b 6a 6d 70 20 74 6f 20 6d 6f 6e 38 30 20 28 ┆t test sta 7*8 ;jmp to mon80 (┆ 0x0c6ce0…0c6d00 6d 61 79 20 68 61 76 65 20 62 65 65 6e 20 63 68 61 6e 67 65 64 20 62 79 20 64 64 74 29 0d 0a 09 ┆may have been changed by ddt) ┆ 0x0c6d00…0c6d20 6c 78 69 09 68 2c 6d 6f 6e 38 30 0d 0a 09 73 68 6c 64 09 37 2a 38 2b 31 0d 0a 09 65 6e 64 69 66 ┆lxi h,mon80 shld 7*8+1 endif┆ 0x0c6d20…0c6d40 0d 0a 3b 09 6c 65 61 76 65 20 69 6f 62 79 74 65 20 73 65 74 0d 0a 3b 09 70 72 65 76 69 6f 75 73 ┆ ; leave iobyte set ; previous┆ 0x0c6d40…0c6d60 6c 79 20 73 65 6c 65 63 74 65 64 20 64 69 73 6b 20 77 61 73 20 62 2c 20 73 65 6e 64 20 70 61 72 ┆ly selected disk was b, send par┆ 0x0c6d60…0c6d80 61 6d 65 74 65 72 20 74 6f 20 63 70 6d 0d 0a 09 6c 64 61 09 63 64 69 73 6b 09 3b 6c 61 73 74 20 ┆ameter to cpm lda cdisk ;last ┆ 0x0c6d80…0c6da0 6c 6f 67 67 65 64 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 73 65 ┆logged disk number mov c,a ;se┆ 0x0c6da0…0c6dc0 6e 64 20 74 6f 20 63 63 70 20 74 6f 20 6c 6f 67 20 69 74 20 69 6e 0d 0a 09 65 69 0d 0a 09 6a 6d ┆nd to ccp to log it in ei jm┆ 0x0c6dc0…0c6de0 70 09 63 70 6d 62 0d 0a 3b 0d 0a 3b 09 65 72 72 6f 72 20 63 6f 6e 64 69 74 69 6f 6e 20 6f 63 63 ┆p cpmb ; ; error condition occ┆ 0x0c6de0…0c6e00 75 72 72 65 64 2c 20 70 72 69 6e 74 20 6d 65 73 73 61 67 65 20 61 6e 64 20 72 65 74 72 79 0d 0a ┆urred, print message and retry ┆ 0x0c6e00…0c6e20 (53, 0, 2) 73 65 74 20 74 72 61 63 6b 20 61 64 64 72 65 73 73 20 67 69 76 65 6e 20 62 79 20 63 0d 0a 09 6c ┆set track address given by c l┆ 0x0c6e20…0c6e40 78 69 09 68 2c 69 6f 74 0d 0a 09 6d 6f 76 09 6d 2c 63 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 73 65 74 ┆xi h,iot mov m,c ret ; set┆ 0x0c6e40…0c6e60 73 65 63 3a 09 3b 73 65 74 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 67 69 76 65 6e 20 62 79 ┆sec: ;set sector number given by┆ 0x0c6e60…0c6e80 20 63 0d 0a 09 6c 78 69 09 68 2c 69 6f 73 0d 0a 09 6d 6f 76 09 6d 2c 63 0d 0a 09 72 65 74 0d 0a ┆ c lxi h,ios mov m,c ret ┆ 0x0c6e80…0c6ea0 73 65 63 74 72 61 6e 3a 0d 0a 09 09 3b 74 72 61 6e 73 6c 61 74 65 20 73 65 63 74 6f 72 20 62 63 ┆sectran: ;translate sector bc┆ 0x0c6ea0…0c6ec0 20 75 73 69 6e 67 20 74 61 62 6c 65 20 61 74 20 64 65 0d 0a 09 6d 76 69 09 62 2c 30 09 3b 64 6f ┆ using table at de mvi b,0 ;do┆ 0x0c6ec0…0c6ee0 75 62 6c 65 20 70 72 65 63 69 73 69 6f 6e 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 69 6e 20 ┆uble precision sector number in ┆ 0x0c6ee0…0c6f00 42 43 0d 0a 09 78 63 68 67 09 09 3b 74 72 61 6e 73 6c 61 74 65 20 74 61 62 6c 65 20 61 64 64 72 ┆BC xchg ;translate table addr┆ 0x0c6f00…0c6f20 65 73 73 20 74 6f 20 48 4c 0d 0a 09 64 61 64 09 62 09 3b 74 72 61 6e 73 6c 61 74 65 28 73 65 63 ┆ess to HL dad b ;translate(sec┆ 0x0c6f20…0c6f40 74 6f 72 29 20 61 64 64 72 65 73 73 0d 0a 09 6d 6f 76 09 61 2c 6d 09 3b 74 72 61 6e 73 6c 61 74 ┆tor) address mov a,m ;translat┆ 0x0c6f40…0c6f60 65 64 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 74 6f 20 41 0d 0a 09 73 74 61 09 69 6f 73 0d ┆ed sector number to A sta ios ┆ 0x0c6f60…0c6f80 0a 09 6d 6f 76 09 6c 2c 61 09 3b 72 65 74 75 72 6e 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 ┆ mov l,a ;return sector number ┆ 0x0c6f80…0c6fa0 69 6e 20 4c 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 73 65 74 64 6d 61 3a 09 3b 73 65 74 20 64 6d 61 20 ┆in L ret ; setdma: ;set dma ┆ 0x0c6fa0…0c6fc0 61 64 64 72 65 73 73 20 67 69 76 65 6e 20 62 79 20 72 65 67 73 20 62 2c 63 0d 0a 09 6d 6f 76 09 ┆address given by regs b,c mov ┆ 0x0c6fc0…0c6fe0 6c 2c 63 0d 0a 09 6d 6f 76 09 68 2c 62 0d 0a 09 73 68 6c 64 09 69 6f 64 0d 0a 09 72 65 74 0d 0a ┆l,c mov h,b shld iod ret ┆ 0x0c6fe0…0c7000 3b 0d 0a 72 65 61 64 3a 09 3b 72 65 61 64 20 6e 65 78 74 20 64 69 73 6b 20 72 65 63 6f 72 64 20 ┆; read: ;read next disk record ┆ 0x0c7000…0c7020 (53, 0, 3) 69 74 30 3a 09 63 61 6c 6c 09 69 6e 73 74 61 74 09 09 3b 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 ┆it0: call instat ;wait for comp┆ 0x0c7020…0c7040 6c 65 74 69 6f 6e 0d 0a 09 61 6e 69 09 69 6f 72 64 79 09 09 3b 72 65 61 64 79 3f 0d 0a 09 6a 7a ┆letion ani iordy ;ready? jz┆ 0x0c7040…0c7060 09 77 61 69 74 30 0d 0a 3b 0d 0a 3b 09 63 68 65 63 6b 20 69 6f 20 63 6f 6d 70 6c 65 74 69 6f 6e ┆ wait0 ; ; check io completion┆ 0x0c7060…0c7080 20 6f 6b 0d 0a 09 63 61 6c 6c 09 69 6e 74 79 70 65 09 09 3b 6d 75 73 74 20 62 65 20 69 6f 20 63 ┆ ok call intype ;must be io c┆ 0x0c7080…0c70a0 6f 6d 70 6c 65 74 65 20 28 30 30 29 20 75 6e 6c 69 6e 6b 65 64 0d 0a 3b 09 30 30 20 75 6e 6c 69 ┆omplete (00) unlinked ; 00 unli┆ 0x0c70a0…0c70c0 6e 6b 65 64 20 69 2f 6f 20 63 6f 6d 70 6c 65 74 65 2c 20 20 20 20 30 31 20 6c 69 6e 6b 65 64 20 ┆nked i/o complete, 01 linked ┆ 0x0c70c0…0c70e0 69 2f 6f 20 63 6f 6d 70 6c 65 74 65 20 28 6e 6f 74 20 75 73 65 64 29 0d 0a 3b 09 31 30 20 64 69 ┆i/o complete (not used) ; 10 di┆ 0x0c70e0…0c7100 73 6b 20 73 74 61 74 75 73 20 63 68 61 6e 67 65 64 20 20 20 20 20 20 20 31 31 20 28 6e 6f 74 20 ┆sk status changed 11 (not ┆ 0x0c7100…0c7120 75 73 65 64 29 0d 0a 09 63 70 69 09 31 30 62 09 09 3b 72 65 61 64 79 20 73 74 61 74 75 73 20 63 ┆used) cpi 10b ;ready status c┆ 0x0c7120…0c7140 68 61 6e 67 65 3f 0d 0a 09 6a 7a 09 77 72 65 61 64 79 0d 0a 3b 0d 0a 3b 09 6d 75 73 74 20 62 65 ┆hange? jz wready ; ; must be┆ 0x0c7140…0c7160 20 30 30 20 69 6e 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 0d 0a 09 6f 72 61 09 61 0d 0a ┆ 00 in the accumulator ora a ┆ 0x0c7160…0c7180 09 6a 6e 7a 09 77 65 72 72 6f 72 09 09 3b 73 6f 6d 65 20 6f 74 68 65 72 20 63 6f 6e 64 69 74 69 ┆ jnz werror ;some other conditi┆ 0x0c7180…0c71a0 6f 6e 2c 20 72 65 74 72 79 0d 0a 3b 0d 0a 3b 09 63 68 65 63 6b 20 69 2f 6f 20 65 72 72 6f 72 20 ┆on, retry ; ; check i/o error ┆ 0x0c71a0…0c71c0 62 69 74 73 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 0d 0a 09 72 61 6c 0d 0a 09 6a 63 09 77 72 ┆bits call inbyte ral jc wr┆ 0x0c71c0…0c71e0 65 61 64 79 09 09 3b 75 6e 69 74 20 6e 6f 74 20 72 65 61 64 79 0d 0a 09 72 61 72 0d 0a 09 61 6e ┆eady ;unit not ready rar an┆ 0x0c71e0…0c7200 69 09 31 31 31 31 31 31 31 30 62 09 3b 61 6e 79 20 6f 74 68 65 72 20 65 72 72 6f 72 73 3f 20 20 ┆i 11111110b ;any other errors? ┆ 0x0c7200…0c7220 (53, 0, 4) 31 30 20 69 66 20 64 72 69 76 65 20 32 2c 33 0d 0a 69 6f 70 62 3a 09 3b 69 6f 20 70 61 72 61 6d ┆10 if drive 2,3 iopb: ;io param┆ 0x0c7220…0c7240 65 74 65 72 20 62 6c 6f 63 6b 0d 0a 09 64 62 09 38 30 68 09 3b 6e 6f 72 6d 61 6c 20 69 2f 6f 20 ┆eter block db 80h ;normal i/o ┆ 0x0c7240…0c7260 6f 70 65 72 61 74 69 6f 6e 0d 0a 69 6f 66 3a 09 64 62 09 72 65 61 64 66 09 3b 69 6f 20 66 75 6e ┆operation iof: db readf ;io fun┆ 0x0c7260…0c7280 63 74 69 6f 6e 2c 20 69 6e 69 74 69 61 6c 20 72 65 61 64 0d 0a 69 6f 6e 3a 09 64 62 09 31 09 3b ┆ction, initial read ion: db 1 ;┆ 0x0c7280…0c72a0 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 20 74 6f 20 72 65 61 64 0d 0a 69 6f 74 3a 09 ┆number of sectors to read iot: ┆ 0x0c72a0…0c72c0 64 62 09 6f 66 66 73 65 74 09 3b 74 72 61 63 6b 20 6e 75 6d 62 65 72 0d 0a 69 6f 73 3a 09 64 62 ┆db offset ;track number ios: db┆ 0x0c72c0…0c72e0 09 31 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 0d 0a 69 6f 64 3a 09 64 77 09 62 75 66 66 09 ┆ 1 ;sector number iod: dw buff ┆ 0x0c72e0…0c7300 3b 69 6f 20 61 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 65 66 69 6e 65 20 72 61 6d 20 ┆;io address ; ; ; define ram ┆ 0x0c7300…0c7320 61 72 65 61 73 20 66 6f 72 20 62 64 6f 73 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 09 65 6e 64 65 66 ┆areas for bdos operation endef┆ 0x0c7320…0c7340 0d 0a 09 65 6e 64 0d 0a 3b 09 4d 44 53 2d 38 30 30 20 49 2f 4f 20 44 72 69 76 65 72 73 20 66 6f ┆ end ; MDS-800 I/O Drivers fo┆ 0x0c7340…0c7360 72 20 43 50 2f 4d 20 32 2e 32 0d 0a 3b 09 28 66 6f 75 72 20 64 72 69 76 65 20 73 69 6e 67 6c 65 ┆r CP/M 2.2 ; (four drive single┆ 0x0c7360…0c7380 20 64 65 6e 73 69 74 79 20 76 65 72 73 69 6f 6e 29 0d 0a 3b 0d 0a 3b 09 56 65 72 73 69 6f 6e 20 ┆ density version) ; ; Version ┆ 0x0c7380…0c73a0 32 2e 32 20 46 65 62 72 75 61 72 79 2c 20 31 39 38 30 0d 0a 3b 0d 0a 76 65 72 73 09 65 71 75 09 ┆2.2 February, 1980 ; vers equ ┆ 0x0c73a0…0c73c0 32 32 09 3b 76 65 72 73 69 6f 6e 20 32 2e 32 0d 0a 3b 0d 0a 3b 09 43 6f 70 79 72 69 67 68 74 20 ┆22 ;version 2.2 ; ; Copyright ┆ 0x0c73c0…0c73e0 28 63 29 20 31 39 38 30 0d 0a 3b 09 44 69 67 69 74 61 6c 20 52 65 73 65 61 72 63 68 0d 0a 3b 09 ┆(c) 1980 ; Digital Research ; ┆ 0x0c73e0…0c7400 42 6f 78 20 35 37 39 2c 20 50 61 63 69 66 69 63 20 47 72 6f 76 65 0d 0a 3b 09 43 61 6c 69 66 6f ┆Box 579, Pacific Grove ; Califo┆ 0x0c7400…0c7420 (53, 0, 5) 62 6f 6f 74 65 72 72 3a 0d 0a 09 70 6f 70 09 62 09 3b 72 65 63 61 6c 6c 20 63 6f 75 6e 74 73 0d ┆booterr: pop b ;recall counts ┆ 0x0c7420…0c7440 0a 09 64 63 72 09 63 0d 0a 09 6a 7a 09 62 6f 6f 74 65 72 30 0d 0a 3b 09 74 72 79 20 61 67 61 69 ┆ dcr c jz booter0 ; try agai┆ 0x0c7440…0c7460 6e 0d 0a 09 70 75 73 68 09 62 0d 0a 09 6a 6d 70 09 77 62 6f 6f 74 30 0d 0a 3b 0d 0a 62 6f 6f 74 ┆n push b jmp wboot0 ; boot┆ 0x0c7460…0c7480 65 72 30 3a 0d 0a 3b 09 6f 74 68 65 72 77 69 73 65 20 74 6f 6f 20 6d 61 6e 79 20 72 65 74 72 69 ┆er0: ; otherwise too many retri┆ 0x0c7480…0c74a0 65 73 0d 0a 09 6c 78 69 09 68 2c 62 6f 6f 74 6d 73 67 0d 0a 09 63 61 6c 6c 09 70 72 6d 73 67 0d ┆es lxi h,bootmsg call prmsg ┆ 0x0c74a0…0c74c0 0a 09 6a 6d 70 09 72 6d 6f 6e 38 30 09 3b 6d 64 73 20 68 61 72 64 77 61 72 65 20 6d 6f 6e 69 74 ┆ jmp rmon80 ;mds hardware monit┆ 0x0c74c0…0c74e0 6f 72 0d 0a 3b 0d 0a 62 6f 6f 74 6d 73 67 3a 0d 0a 09 64 62 09 27 3f 62 6f 6f 74 27 2c 30 0d 0a ┆or ; bootmsg: db '?boot',0 ┆ 0x0c74e0…0c7500 3b 0d 0a 3b 0d 0a 63 6f 6e 73 74 3a 09 3b 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 20 74 6f 20 ┆; ; const: ;console status to ┆ 0x0c7500…0c7520 72 65 67 2d 61 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 ┆reg-a ; (exactly the same as md┆ 0x0c7520…0c7540 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 63 73 74 73 0d 0a 3b 0d 0a 63 6f 6e 69 6e 3a 09 3b 63 ┆s call) jmp csts ; conin: ;c┆ 0x0c7540…0c7560 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 72 65 67 2d 61 0d 0a 09 63 61 6c 6c ┆onsole character to reg-a call┆ 0x0c7560…0c7580 09 63 69 0d 0a 09 61 6e 69 09 37 66 68 09 3b 72 65 6d 6f 76 65 20 70 61 72 69 74 79 20 62 69 74 ┆ ci ani 7fh ;remove parity bit┆ 0x0c7580…0c75a0 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 63 6f 6e 6f 75 74 3a 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 ┆ ret ; conout: ;console char┆ 0x0c75a0…0c75c0 61 63 74 65 72 20 66 72 6f 6d 20 63 20 74 6f 20 63 6f 6e 73 6f 6c 65 20 6f 75 74 0d 0a 09 6a 6d ┆acter from c to console out jm┆ 0x0c75c0…0c75e0 70 09 63 6f 0d 0a 3b 0d 0a 6c 69 73 74 3a 09 3b 6c 69 73 74 20 64 65 76 69 63 65 20 6f 75 74 0d ┆p co ; list: ;list device out ┆ 0x0c75e0…0c7600 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c ┆ ; (exactly the same as mds call┆ 0x0c7600…0c7620 (53, 0, 6) 28 61 73 73 75 6d 69 6e 67 20 64 69 73 6b 2f 74 72 6b 2f 73 65 63 2f 64 6d 61 20 73 65 74 29 0d ┆(assuming disk/trk/sec/dma set) ┆ 0x0c7620…0c7640 0a 09 6d 76 69 09 63 2c 72 65 61 64 66 09 3b 73 65 74 20 74 6f 20 72 65 61 64 20 66 75 6e 63 74 ┆ mvi c,readf ;set to read funct┆ 0x0c7640…0c7660 69 6f 6e 0d 0a 09 63 61 6c 6c 09 73 65 74 66 75 6e 63 0d 0a 09 63 61 6c 6c 09 77 61 69 74 69 6f ┆ion call setfunc call waitio┆ 0x0c7660…0c7680 09 3b 70 65 72 66 6f 72 6d 20 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 72 65 74 09 09 3b ┆ ;perform read function ret ;┆ 0x0c7680…0c76a0 6d 61 79 20 68 61 76 65 20 65 72 72 6f 72 20 73 65 74 20 69 6e 20 72 65 67 2d 61 0d 0a 3b 0d 0a ┆may have error set in reg-a ; ┆ 0x0c76a0…0c76c0 3b 0d 0a 77 72 69 74 65 3a 09 3b 64 69 73 6b 20 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a ┆; write: ;disk write function ┆ 0x0c76c0…0c76e0 09 6d 76 69 09 63 2c 77 72 69 74 66 0d 0a 09 63 61 6c 6c 09 73 65 74 66 75 6e 63 09 3b 73 65 74 ┆ mvi c,writf call setfunc ;set┆ 0x0c76e0…0c7700 20 74 6f 20 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 77 61 69 74 69 6f ┆ to write function call waitio┆ 0x0c7700…0c7720 0d 0a 09 72 65 74 09 09 3b 6d 61 79 20 68 61 76 65 20 65 72 72 6f 72 20 73 65 74 0d 0a 3b 0d 0a ┆ ret ;may have error set ; ┆ 0x0c7720…0c7740 3b 0d 0a 3b 09 75 74 69 6c 69 74 79 20 73 75 62 72 6f 75 74 69 6e 65 73 0d 0a 70 72 6d 73 67 3a ┆; ; utility subroutines prmsg:┆ 0x0c7740…0c7760 09 3b 70 72 69 6e 74 20 6d 65 73 73 61 67 65 20 61 74 20 68 2c 6c 20 74 6f 20 30 0d 0a 09 6d 6f ┆ ;print message at h,l to 0 mo┆ 0x0c7760…0c7780 76 09 61 2c 6d 0d 0a 09 6f 72 61 09 61 09 3b 7a 65 72 6f 3f 0d 0a 09 72 7a 0d 0a 3b 09 6d 6f 72 ┆v a,m ora a ;zero? rz ; mor┆ 0x0c7780…0c77a0 65 20 74 6f 20 70 72 69 6e 74 0d 0a 09 70 75 73 68 09 68 0d 0a 09 6d 6f 76 09 63 2c 61 0d 0a 09 ┆e to print push h mov c,a ┆ 0x0c77a0…0c77c0 63 61 6c 6c 09 63 6f 6e 6f 75 74 0d 0a 09 70 6f 70 09 68 0d 0a 09 69 6e 78 09 68 0d 0a 09 6a 6d ┆call conout pop h inx h jm┆ 0x0c77c0…0c77e0 70 09 70 72 6d 73 67 0d 0a 3b 0d 0a 73 65 74 66 75 6e 63 3a 0d 0a 3b 09 73 65 74 20 66 75 6e 63 ┆p prmsg ; setfunc: ; set func┆ 0x0c77e0…0c7800 74 69 6f 6e 20 66 6f 72 20 6e 65 78 74 20 69 2f 6f 20 28 63 6f 6d 6d 61 6e 64 20 69 6e 20 72 65 ┆tion for next i/o (command in re┆ 0x0c7800…0c7820 (53, 0, 7) 28 64 65 6c 65 74 65 64 20 64 61 74 61 20 6f 6b 29 0d 0a 09 6a 6e 7a 09 77 65 72 72 6f 72 0d 0a ┆(deleted data ok) jnz werror ┆ 0x0c7820…0c7840 3b 0d 0a 3b 09 72 65 61 64 20 6f 72 20 77 72 69 74 65 20 69 73 20 6f 6b 2c 20 61 63 63 75 6d 75 ┆; ; read or write is ok, accumu┆ 0x0c7840…0c7860 6c 61 74 6f 72 20 63 6f 6e 74 61 69 6e 73 20 7a 65 72 6f 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 77 72 ┆lator contains zero ret ; wr┆ 0x0c7860…0c7880 65 61 64 79 3a 09 3b 6e 6f 74 20 72 65 61 64 79 2c 20 74 72 65 61 74 20 61 73 20 65 72 72 6f 72 ┆eady: ;not ready, treat as error┆ 0x0c7880…0c78a0 20 66 6f 72 20 6e 6f 77 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 09 09 3b 63 6c 65 61 72 20 72 ┆ for now call inbyte ;clear r┆ 0x0c78a0…0c78c0 65 73 75 6c 74 20 62 79 74 65 0d 0a 09 6a 6d 70 09 74 72 79 63 6f 75 6e 74 0d 0a 3b 0d 0a 77 65 ┆esult byte jmp trycount ; we┆ 0x0c78c0…0c78e0 72 72 6f 72 3a 09 3b 72 65 74 75 72 6e 20 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 ┆rror: ;return hardware malfuncti┆ 0x0c78e0…0c7900 6f 6e 20 28 63 72 63 2c 20 74 72 61 63 6b 2c 20 73 65 65 6b 2c 20 65 74 63 2e 29 0d 0a 3b 09 74 ┆on (crc, track, seek, etc.) ; t┆ 0x0c7900…0c7920 68 65 20 6d 64 73 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 68 61 73 20 72 65 74 75 72 6e 65 64 20 61 ┆he mds controller has returned a┆ 0x0c7920…0c7940 20 62 69 74 20 69 6e 20 65 61 63 68 20 70 6f 73 69 74 69 6f 6e 0d 0a 3b 09 6f 66 20 74 68 65 20 ┆ bit in each position ; of the ┆ 0x0c7940…0c7960 61 63 63 75 6d 75 6c 61 74 6f 72 2c 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 74 68 ┆accumulator, corresponding to th┆ 0x0c7960…0c7980 65 20 63 6f 6e 64 69 74 69 6f 6e 73 3a 0d 0a 3b 09 30 09 2d 20 64 65 6c 65 74 65 64 20 64 61 74 ┆e conditions: ; 0 - deleted dat┆ 0x0c7980…0c79a0 61 20 28 61 63 63 65 70 74 65 64 20 61 73 20 6f 6b 20 61 62 6f 76 65 29 0d 0a 3b 09 31 09 2d 20 ┆a (accepted as ok above) ; 1 - ┆ 0x0c79a0…0c79c0 63 72 63 20 65 72 72 6f 72 0d 0a 3b 09 32 09 2d 20 73 65 65 6b 20 65 72 72 6f 72 0d 0a 3b 09 33 ┆crc error ; 2 - seek error ; 3┆ 0x0c79c0…0c79e0 09 2d 20 61 64 64 72 65 73 73 20 65 72 72 6f 72 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 ┆ - address error (hardware malfu┆ 0x0c79e0…0c7a00 6e 63 74 69 6f 6e 29 0d 0a 3b 09 34 09 2d 20 64 61 74 61 20 6f 76 65 72 2f 75 6e 64 65 72 20 66 ┆nction) ; 4 - data over/under f┆ 0x0c7a00…0c7a20 (53, 0, 8) 72 6e 69 61 2c 20 39 33 39 35 30 0d 0a 3b 0d 0a 3b 0d 0a 74 72 75 65 09 65 71 75 09 30 66 66 66 ┆rnia, 93950 ; ; true equ 0fff┆ 0x0c7a20…0c7a40 66 68 09 3b 76 61 6c 75 65 20 6f 66 20 22 74 72 75 65 22 0d 0a 66 61 6c 73 65 09 65 71 75 09 6e ┆fh ;value of "true" false equ n┆ 0x0c7a40…0c7a60 6f 74 20 74 72 75 65 09 3b 22 66 61 6c 73 65 22 0d 0a 74 65 73 74 09 65 71 75 09 66 61 6c 73 65 ┆ot true ;"false" test equ false┆ 0x0c7a60…0c7a80 09 3b 74 72 75 65 20 69 66 20 74 65 73 74 20 62 69 6f 73 0d 0a 3b 0d 0a 09 69 66 09 74 65 73 74 ┆ ;true if test bios ; if test┆ 0x0c7a80…0c7aa0 0d 0a 62 69 61 73 09 65 71 75 09 30 33 34 30 30 68 09 3b 62 61 73 65 20 6f 66 20 43 43 50 20 69 ┆ bias equ 03400h ;base of CCP i┆ 0x0c7aa0…0c7ac0 6e 20 74 65 73 74 20 73 79 73 74 65 6d 0d 0a 09 65 6e 64 69 66 0d 0a 09 69 66 09 6e 6f 74 20 74 ┆n test system endif if not t┆ 0x0c7ac0…0c7ae0 65 73 74 0d 0a 62 69 61 73 09 65 71 75 09 30 30 30 30 68 09 3b 67 65 6e 65 72 61 74 65 20 72 65 ┆est bias equ 0000h ;generate re┆ 0x0c7ae0…0c7b00 6c 6f 63 61 74 61 62 6c 65 20 63 70 2f 6d 20 73 79 73 74 65 6d 0d 0a 09 65 6e 64 69 66 0d 0a 3b ┆locatable cp/m system endif ;┆ 0x0c7b00…0c7b20 0d 0a 70 61 74 63 68 09 65 71 75 09 31 36 30 30 68 0d 0a 3b 0d 0a 09 6f 72 67 09 70 61 74 63 68 ┆ patch equ 1600h ; org patch┆ 0x0c7b20…0c7b40 0d 0a 63 70 6d 62 09 65 71 75 09 24 2d 70 61 74 63 68 09 3b 62 61 73 65 20 6f 66 20 63 70 6d 20 ┆ cpmb equ $-patch ;base of cpm ┆ 0x0c7b40…0c7b60 63 6f 6e 73 6f 6c 65 20 70 72 6f 63 65 73 73 6f 72 0d 0a 62 64 6f 73 09 65 71 75 09 38 30 36 68 ┆console processor bdos equ 806h┆ 0x0c7b60…0c7b80 2b 63 70 6d 62 09 3b 62 61 73 69 63 20 64 6f 73 20 28 72 65 73 69 64 65 6e 74 20 70 6f 72 74 69 ┆+cpmb ;basic dos (resident porti┆ 0x0c7b80…0c7ba0 6f 6e 29 0d 0a 63 70 6d 6c 09 65 71 75 09 24 2d 63 70 6d 62 09 3b 6c 65 6e 67 74 68 20 28 69 6e ┆on) cpml equ $-cpmb ;length (in┆ 0x0c7ba0…0c7bc0 20 62 79 74 65 73 29 20 6f 66 20 63 70 6d 20 73 79 73 74 65 6d 0d 0a 6e 73 65 63 74 73 09 65 71 ┆ bytes) of cpm system nsects eq┆ 0x0c7bc0…0c7be0 75 09 63 70 6d 6c 2f 31 32 38 09 3b 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 20 74 6f ┆u cpml/128 ;number of sectors to┆ 0x0c7be0…0c7c00 20 6c 6f 61 64 0d 0a 6f 66 66 73 65 74 09 65 71 75 09 32 09 3b 6e 75 6d 62 65 72 20 6f 66 20 64 ┆ load offset equ 2 ;number of d┆ 0x0c7c00…0c7c20 (53, 0, 9) 29 0d 0a 09 6a 6d 70 09 6c 6f 0d 0a 3b 0d 0a 6c 69 73 74 73 74 3a 0d 0a 09 3b 72 65 74 75 72 6e ┆) jmp lo ; listst: ;return┆ 0x0c7c20…0c7c40 20 6c 69 73 74 20 73 74 61 74 75 73 0d 0a 09 78 72 61 09 61 0d 0a 09 72 65 74 09 09 3b 61 6c 77 ┆ list status xra a ret ;alw┆ 0x0c7c40…0c7c60 61 79 73 20 6e 6f 74 20 72 65 61 64 79 0d 0a 3b 0d 0a 70 75 6e 63 68 3a 09 3b 70 75 6e 63 68 20 ┆ays not ready ; punch: ;punch ┆ 0x0c7c60…0c7c80 64 65 76 69 63 65 20 6f 75 74 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 ┆device out ; (exactly the same ┆ 0x0c7c80…0c7ca0 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 70 6f 0d 0a 3b 0d 0a 72 65 61 64 65 72 ┆as mds call) jmp po ; reader┆ 0x0c7ca0…0c7cc0 3a 09 3b 72 65 61 64 65 72 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 74 6f 20 72 65 67 2d 61 0d ┆: ;reader character in to reg-a ┆ 0x0c7cc0…0c7ce0 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c ┆ ; (exactly the same as mds call┆ 0x0c7ce0…0c7d00 29 0d 0a 09 6a 6d 70 09 72 69 0d 0a 3b 0d 0a 68 6f 6d 65 3a 09 3b 6d 6f 76 65 20 74 6f 20 68 6f ┆) jmp ri ; home: ;move to ho┆ 0x0c7d00…0c7d20 6d 65 20 70 6f 73 69 74 69 6f 6e 0d 0a 3b 09 74 72 65 61 74 20 61 73 20 74 72 61 63 6b 20 30 30 ┆me position ; treat as track 00┆ 0x0c7d20…0c7d40 20 73 65 65 6b 0d 0a 09 6d 76 69 09 63 2c 30 0d 0a 09 6a 6d 70 09 73 65 74 74 72 6b 0d 0a 3b 0d ┆ seek mvi c,0 jmp settrk ; ┆ 0x0c7d40…0c7d60 0a 73 65 6c 64 73 6b 3a 09 3b 73 65 6c 65 63 74 20 64 69 73 6b 20 67 69 76 65 6e 20 62 79 20 72 ┆ seldsk: ;select disk given by r┆ 0x0c7d60…0c7d80 65 67 69 73 74 65 72 20 63 0d 0a 09 6c 78 69 09 68 2c 30 30 30 30 68 09 3b 72 65 74 75 72 6e 20 ┆egister c lxi h,0000h ;return ┆ 0x0c7d80…0c7da0 30 30 30 30 20 69 66 20 65 72 72 6f 72 0d 0a 09 6d 6f 76 09 61 2c 63 0d 0a 09 63 70 69 09 6e 64 ┆0000 if error mov a,c cpi nd┆ 0x0c7da0…0c7dc0 69 73 6b 73 09 3b 74 6f 6f 20 6c 61 72 67 65 3f 0d 0a 09 72 6e 63 09 09 3b 6c 65 61 76 65 20 48 ┆isks ;too large? rnc ;leave H┆ 0x0c7dc0…0c7de0 4c 20 3d 20 30 30 30 30 0d 0a 3b 0d 0a 09 61 6e 69 09 31 30 62 09 3b 30 30 20 30 30 20 66 6f 72 ┆L = 0000 ; ani 10b ;00 00 for┆ 0x0c7de0…0c7e00 20 64 72 69 76 65 20 30 2c 31 20 61 6e 64 20 31 30 20 31 30 20 66 6f 72 20 64 72 69 76 65 20 32 ┆ drive 0,1 and 10 10 for drive 2┆ 0x0c7e00…0c7e20 (53, 0, 10) 67 2d 63 29 0d 0a 09 6c 78 69 09 68 2c 69 6f 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 20 61 64 ┆g-c) lxi h,iof ;io function ad┆ 0x0c7e20…0c7e40 64 72 65 73 73 0d 0a 09 6d 6f 76 09 61 2c 6d 09 3b 67 65 74 20 69 74 20 74 6f 20 61 63 63 75 6d ┆dress mov a,m ;get it to accum┆ 0x0c7e40…0c7e60 75 6c 61 74 6f 72 20 66 6f 72 20 6d 61 73 6b 69 6e 67 0d 0a 09 61 6e 69 09 31 31 31 31 31 30 30 ┆ulator for masking ani 1111100┆ 0x0c7e60…0c7e80 30 62 09 3b 72 65 6d 6f 76 65 20 70 72 65 76 69 6f 75 73 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6f 72 ┆0b ;remove previous command or┆ 0x0c7e80…0c7ea0 61 09 63 09 3b 73 65 74 20 74 6f 20 6e 65 77 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6d 6f 76 09 6d 2c ┆a c ;set to new command mov m,┆ 0x0c7ea0…0c7ec0 61 09 3b 72 65 70 6c 61 63 65 64 20 69 6e 20 69 6f 70 62 0d 0a 3b 09 74 68 65 20 6d 64 73 2d 38 ┆a ;replaced in iopb ; the mds-8┆ 0x0c7ec0…0c7ee0 30 30 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 72 65 71 75 69 72 65 73 20 64 69 73 6b 20 62 61 6e 6b ┆00 controller requires disk bank┆ 0x0c7ee0…0c7f00 20 62 69 74 20 69 6e 20 73 65 63 74 6f 72 20 62 79 74 65 0d 0a 3b 09 6d 61 73 6b 20 74 68 65 20 ┆ bit in sector byte ; mask the ┆ 0x0c7f00…0c7f20 62 69 74 20 66 72 6f 6d 20 74 68 65 20 63 75 72 72 65 6e 74 20 69 2f 6f 20 66 75 6e 63 74 69 6f ┆bit from the current i/o functio┆ 0x0c7f20…0c7f40 6e 0d 0a 09 61 6e 69 09 30 30 31 30 30 30 30 30 62 09 3b 6d 61 73 6b 20 74 68 65 20 64 69 73 6b ┆n ani 00100000b ;mask the disk┆ 0x0c7f40…0c7f60 20 73 65 6c 65 63 74 20 62 69 74 0d 0a 09 6c 78 69 09 68 2c 69 6f 73 09 09 3b 61 64 64 72 65 73 ┆ select bit lxi h,ios ;addres┆ 0x0c7f60…0c7f80 73 20 74 68 65 20 73 65 63 74 6f 72 20 73 65 6c 65 63 74 20 62 79 74 65 0d 0a 09 6f 72 61 09 6d ┆s the sector select byte ora m┆ 0x0c7f80…0c7fa0 09 09 3b 73 65 6c 65 63 74 20 70 72 6f 70 65 72 20 64 69 73 6b 20 62 61 6e 6b 0d 0a 09 6d 6f 76 ┆ ;select proper disk bank mov┆ 0x0c7fa0…0c7fc0 09 6d 2c 61 09 09 3b 73 65 74 20 64 69 73 6b 20 73 65 6c 65 63 74 20 62 69 74 20 6f 6e 2f 6f 66 ┆ m,a ;set disk select bit on/of┆ 0x0c7fc0…0c7fe0 66 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 77 61 69 74 69 6f 3a 0d 0a 09 6d 76 69 09 63 2c 72 65 74 72 ┆f ret ; waitio: mvi c,retr┆ 0x0c7fe0…0c8000 79 09 3b 6d 61 78 20 72 65 74 72 69 65 73 20 62 65 66 6f 72 65 20 70 65 72 6d 20 65 72 72 6f 72 ┆y ;max retries before perm error┆ 0x0c8000…0c8020 (53, 0, 11) 6c 6f 77 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 35 09 ┆low (hardware malfunction) ; 5 ┆ 0x0c8020…0c8040 2d 20 77 72 69 74 65 20 70 72 6f 74 65 63 74 20 28 74 72 65 61 74 65 64 20 61 73 20 6e 6f 74 20 ┆- write protect (treated as not ┆ 0x0c8040…0c8060 72 65 61 64 79 29 0d 0a 3b 09 36 09 2d 20 77 72 69 74 65 20 65 72 72 6f 72 20 28 68 61 72 64 77 ┆ready) ; 6 - write error (hardw┆ 0x0c8060…0c8080 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 37 09 2d 20 6e 6f 74 20 72 65 61 64 ┆are malfunction) ; 7 - not read┆ 0x0c8080…0c80a0 79 0d 0a 3b 09 28 61 63 63 75 6d 75 6c 61 74 6f 72 20 62 69 74 73 20 61 72 65 20 6e 75 6d 62 65 ┆y ; (accumulator bits are numbe┆ 0x0c80a0…0c80c0 72 65 64 20 37 20 36 20 35 20 34 20 33 20 32 20 31 20 30 29 0d 0a 3b 0d 0a 3b 09 69 74 20 6d 61 ┆red 7 6 5 4 3 2 1 0) ; ; it ma┆ 0x0c80c0…0c80e0 79 20 62 65 20 75 73 65 66 75 6c 20 74 6f 20 66 69 6c 74 65 72 20 6f 75 74 20 74 68 65 20 76 61 ┆y be useful to filter out the va┆ 0x0c80e0…0c8100 72 69 6f 75 73 20 63 6f 6e 64 69 74 69 6f 6e 73 2c 0d 0a 3b 09 62 75 74 20 77 65 20 77 69 6c 6c ┆rious conditions, ; but we will┆ 0x0c8100…0c8120 20 67 65 74 20 61 20 70 65 72 6d 61 6e 65 6e 74 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 69 ┆ get a permanent error message i┆ 0x0c8120…0c8140 66 20 69 74 20 69 73 20 6e 6f 74 0d 0a 3b 09 72 65 63 6f 76 65 72 61 62 6c 65 2e 20 20 69 6e 20 ┆f it is not ; recoverable. in ┆ 0x0c8140…0c8160 61 6e 79 20 63 61 73 65 2c 20 74 68 65 20 6e 6f 74 20 72 65 61 64 79 20 63 6f 6e 64 69 74 69 6f ┆any case, the not ready conditio┆ 0x0c8160…0c8180 6e 20 69 73 0d 0a 3b 09 74 72 65 61 74 65 64 20 61 73 20 61 20 73 65 70 61 72 61 74 65 20 63 6f ┆n is ; treated as a separate co┆ 0x0c8180…0c81a0 6e 64 69 74 69 6f 6e 20 66 6f 72 20 6c 61 74 65 72 20 69 6d 70 72 6f 76 65 6d 65 6e 74 0d 0a 74 ┆ndition for later improvement t┆ 0x0c81a0…0c81c0 72 79 63 6f 75 6e 74 3a 0d 0a 3b 09 72 65 67 69 73 74 65 72 20 63 20 63 6f 6e 74 61 69 6e 73 20 ┆rycount: ; register c contains ┆ 0x0c81c0…0c81e0 72 65 74 72 79 20 63 6f 75 6e 74 2c 20 64 65 63 72 65 6d 65 6e 74 20 27 74 69 6c 20 7a 65 72 6f ┆retry count, decrement 'til zero┆ 0x0c81e0…0c8200 0d 0a 09 64 63 72 09 63 0d 0a 09 6a 6e 7a 09 72 65 77 61 69 74 09 3b 66 6f 72 20 61 6e 6f 74 68 ┆ dcr c jnz rewait ;for anoth┆ 0x0c8200…0c8220 (53, 0, 12) 69 73 6b 20 74 72 61 63 6b 73 20 75 73 65 64 20 62 79 20 63 70 2f 6d 0d 0a 63 64 69 73 6b 09 65 ┆isk tracks used by cp/m cdisk e┆ 0x0c8220…0c8240 71 75 09 30 30 30 34 68 09 3b 61 64 64 72 65 73 73 20 6f 66 20 6c 61 73 74 20 6c 6f 67 67 65 64 ┆qu 0004h ;address of last logged┆ 0x0c8240…0c8260 20 64 69 73 6b 20 6f 6e 20 77 61 72 6d 20 73 74 61 72 74 0d 0a 62 75 66 66 09 65 71 75 09 30 30 ┆ disk on warm start buff equ 00┆ 0x0c8260…0c8280 38 30 68 09 3b 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 0d 0a 72 65 74 ┆80h ;default buffer address ret┆ 0x0c8280…0c82a0 72 79 09 65 71 75 09 31 30 09 3b 6d 61 78 20 72 65 74 72 69 65 73 20 6f 6e 20 64 69 73 6b 20 69 ┆ry equ 10 ;max retries on disk i┆ 0x0c82a0…0c82c0 2f 6f 20 62 65 66 6f 72 65 20 65 72 72 6f 72 0d 0a 3b 0d 0a 3b 09 70 65 72 66 6f 72 6d 20 66 6f ┆/o before error ; ; perform fo┆ 0x0c82c0…0c82e0 6c 6c 6f 77 69 6e 67 20 66 75 6e 63 74 69 6f 6e 73 0d 0a 3b 09 62 6f 6f 74 09 63 6f 6c 64 20 73 ┆llowing functions ; boot cold s┆ 0x0c82e0…0c8300 74 61 72 74 0d 0a 3b 09 77 62 6f 6f 74 09 77 61 72 6d 20 73 74 61 72 74 20 28 73 61 76 65 20 69 ┆tart ; wboot warm start (save i┆ 0x0c8300…0c8320 2f 6f 20 62 79 74 65 29 0d 0a 3b 09 28 62 6f 6f 74 20 61 6e 64 20 77 62 6f 6f 74 20 61 72 65 20 ┆/o byte) ; (boot and wboot are ┆ 0x0c8320…0c8340 74 68 65 20 73 61 6d 65 20 66 6f 72 20 6d 64 73 29 0d 0a 3b 09 63 6f 6e 73 74 09 63 6f 6e 73 6f ┆the same for mds) ; const conso┆ 0x0c8340…0c8360 6c 65 20 73 74 61 74 75 73 0d 0a 3b 09 09 72 65 67 2d 61 20 3d 20 30 30 20 69 66 20 6e 6f 20 63 ┆le status ; reg-a = 00 if no c┆ 0x0c8360…0c8380 68 61 72 61 63 74 65 72 20 72 65 61 64 79 0d 0a 3b 09 09 72 65 67 2d 61 20 3d 20 66 66 20 69 66 ┆haracter ready ; reg-a = ff if┆ 0x0c8380…0c83a0 20 63 68 61 72 61 63 74 65 72 20 72 65 61 64 79 0d 0a 3b 09 63 6f 6e 69 6e 09 63 6f 6e 73 6f 6c ┆ character ready ; conin consol┆ 0x0c83a0…0c83c0 65 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 28 72 65 73 75 6c 74 20 69 6e 20 72 65 67 2d 61 29 ┆e character in (result in reg-a)┆ 0x0c83c0…0c83e0 0d 0a 3b 09 63 6f 6e 6f 75 74 09 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 6f 75 74 ┆ ; conout console character out┆ 0x0c83e0…0c8400 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 6c 69 73 74 09 6c 69 73 74 20 6f 75 ┆ (char in reg-c) ; list list ou┆ 0x0c8400…0c8420 (53, 0, 13) 2c 33 0d 0a 09 73 74 61 09 64 62 61 6e 6b 09 3b 74 6f 20 73 65 6c 65 63 74 20 64 72 69 76 65 20 ┆,3 sta dbank ;to select drive ┆ 0x0c8420…0c8440 62 61 6e 6b 0d 0a 09 6d 6f 76 09 61 2c 63 09 3b 30 30 2c 20 30 31 2c 20 31 30 2c 20 31 31 0d 0a ┆bank mov a,c ;00, 01, 10, 11 ┆ 0x0c8440…0c8460 09 61 6e 69 09 31 62 09 3b 6d 64 73 20 68 61 73 20 30 2c 31 20 61 74 20 37 38 2c 20 32 2c 33 20 ┆ ani 1b ;mds has 0,1 at 78, 2,3 ┆ 0x0c8460…0c8480 61 74 20 38 38 0d 0a 09 6f 72 61 09 61 09 3b 72 65 73 75 6c 74 20 30 30 3f 0d 0a 09 6a 7a 09 73 ┆at 88 ora a ;result 00? jz s┆ 0x0c8480…0c84a0 65 74 64 72 69 76 65 0d 0a 09 6d 76 69 09 61 2c 30 30 31 31 30 30 30 30 62 09 3b 73 65 6c 65 63 ┆etdrive mvi a,00110000b ;selec┆ 0x0c84a0…0c84c0 74 73 20 64 72 69 76 65 20 31 20 69 6e 20 62 61 6e 6b 0d 0a 73 65 74 64 72 69 76 65 3a 0d 0a 09 ┆ts drive 1 in bank setdrive: ┆ 0x0c84c0…0c84e0 6d 6f 76 09 62 2c 61 09 3b 73 61 76 65 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6c 78 69 ┆mov b,a ;save the function lxi┆ 0x0c84e0…0c8500 09 68 2c 69 6f 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6d 6f 76 09 61 2c 6d 0d 0a 09 ┆ h,iof ;io function mov a,m ┆ 0x0c8500…0c8520 61 6e 69 09 31 31 30 30 31 31 31 31 62 09 3b 6d 61 73 6b 20 6f 75 74 20 64 69 73 6b 20 6e 75 6d ┆ani 11001111b ;mask out disk num┆ 0x0c8520…0c8540 62 65 72 0d 0a 09 6f 72 61 09 62 09 3b 6d 61 73 6b 20 69 6e 20 6e 65 77 20 64 69 73 6b 20 6e 75 ┆ber ora b ;mask in new disk nu┆ 0x0c8540…0c8560 6d 62 65 72 0d 0a 09 6d 6f 76 09 6d 2c 61 09 3b 73 61 76 65 20 69 74 20 69 6e 20 69 6f 70 62 0d ┆mber mov m,a ;save it in iopb ┆ 0x0c8560…0c8580 0a 09 6d 6f 76 09 6c 2c 63 0d 0a 09 6d 76 69 09 68 2c 30 09 3b 48 4c 3d 64 69 73 6b 20 6e 75 6d ┆ mov l,c mvi h,0 ;HL=disk num┆ 0x0c8580…0c85a0 62 65 72 0d 0a 09 64 61 64 09 68 09 3b 2a 32 0d 0a 09 64 61 64 09 68 09 3b 2a 34 0d 0a 09 64 61 ┆ber dad h ;*2 dad h ;*4 da┆ 0x0c85a0…0c85c0 64 09 68 09 3b 2a 38 0d 0a 09 64 61 64 09 68 09 3b 2a 31 36 0d 0a 09 6c 78 69 09 64 2c 64 70 62 ┆d h ;*8 dad h ;*16 lxi d,dpb┆ 0x0c85c0…0c85e0 61 73 65 0d 0a 09 64 61 64 09 64 09 3b 48 4c 3d 64 69 73 6b 20 68 65 61 64 65 72 20 74 61 62 6c ┆ase dad d ;HL=disk header tabl┆ 0x0c85e0…0c8600 65 20 61 64 64 72 65 73 73 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 73 65 74 74 72 6b 3a 09 3b ┆e address ret ; ; settrk: ;┆ 0x0c8600…0c8620 (53, 0, 14) 0d 0a 72 65 77 61 69 74 3a 0d 0a 3b 09 73 74 61 72 74 20 74 68 65 20 69 2f 6f 20 66 75 6e 63 74 ┆ rewait: ; start the i/o funct┆ 0x0c8620…0c8640 69 6f 6e 20 61 6e 64 20 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 0d 0a 09 63 61 ┆ion and wait for completion ca┆ 0x0c8640…0c8660 6c 6c 09 69 6e 74 79 70 65 09 3b 69 6e 20 72 74 79 70 65 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 ┆ll intype ;in rtype call inbyt┆ 0x0c8660…0c8680 65 09 3b 63 6c 65 61 72 73 20 74 68 65 20 63 6f 6e 74 72 6f 6c 6c 65 72 0d 0a 3b 0d 0a 09 6c 64 ┆e ;clears the controller ; ld┆ 0x0c8680…0c86a0 61 09 64 62 61 6e 6b 09 09 3b 73 65 74 20 62 61 6e 6b 20 66 6c 61 67 73 0d 0a 09 6f 72 61 09 61 ┆a dbank ;set bank flags ora a┆ 0x0c86a0…0c86c0 09 09 3b 7a 65 72 6f 20 69 66 20 64 72 69 76 65 20 30 2c 31 20 61 6e 64 20 6e 7a 20 69 66 20 32 ┆ ;zero if drive 0,1 and nz if 2┆ 0x0c86c0…0c86e0 2c 33 0d 0a 09 6d 76 69 09 61 2c 69 6f 70 62 20 61 6e 64 20 30 66 66 68 09 3b 6c 6f 77 20 61 64 ┆,3 mvi a,iopb and 0ffh ;low ad┆ 0x0c86e0…0c8700 64 72 65 73 73 20 66 6f 72 20 69 6f 70 62 0d 0a 09 6d 76 69 09 62 2c 69 6f 70 62 20 73 68 72 20 ┆dress for iopb mvi b,iopb shr ┆ 0x0c8700…0c8720 38 09 3b 68 69 67 68 20 61 64 64 72 65 73 73 20 66 6f 72 20 69 6f 70 62 0d 0a 09 6a 6e 7a 09 69 ┆8 ;high address for iopb jnz i┆ 0x0c8720…0c8740 6f 64 72 31 09 3b 64 72 69 76 65 20 62 61 6e 6b 20 31 3f 0d 0a 09 6f 75 74 09 69 6c 6f 77 09 09 ┆odr1 ;drive bank 1? out ilow ┆ 0x0c8740…0c8760 3b 6c 6f 77 20 61 64 64 72 65 73 73 20 74 6f 20 63 6f 6e 74 72 6f 6c 6c 65 72 0d 0a 09 6d 6f 76 ┆;low address to controller mov┆ 0x0c8760…0c8780 09 61 2c 62 0d 0a 09 6f 75 74 09 69 68 69 67 68 09 3b 68 69 67 68 20 61 64 64 72 65 73 73 0d 0a ┆ a,b out ihigh ;high address ┆ 0x0c8780…0c87a0 09 6a 6d 70 09 77 61 69 74 30 09 09 3b 74 6f 20 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 ┆ jmp wait0 ;to wait for complet┆ 0x0c87a0…0c87c0 65 0d 0a 3b 0d 0a 69 6f 64 72 31 3a 09 3b 64 72 69 76 65 20 62 61 6e 6b 20 31 0d 0a 09 6f 75 74 ┆e ; iodr1: ;drive bank 1 out┆ 0x0c87c0…0c87e0 09 69 6c 6f 77 2b 31 30 68 09 3b 38 38 20 66 6f 72 20 64 72 69 76 65 20 62 61 6e 6b 20 31 30 0d ┆ ilow+10h ;88 for drive bank 10 ┆ 0x0c87e0…0c8800 0a 09 6d 6f 76 09 61 2c 62 0d 0a 09 6f 75 74 09 69 68 69 67 68 2b 31 30 68 0d 0a 3b 0d 0a 77 61 ┆ mov a,b out ihigh+10h ; wa┆ 0x0c8800…0c8820 (53, 0, 15) 65 72 20 74 72 79 0d 0a 3b 0d 0a 3b 09 63 61 6e 6e 6f 74 20 72 65 63 6f 76 65 72 20 66 72 6f 6d ┆er try ; ; cannot recover from┆ 0x0c8820…0c8840 20 65 72 72 6f 72 0d 0a 09 6d 76 69 09 61 2c 31 09 3b 65 72 72 6f 72 20 63 6f 64 65 0d 0a 09 72 ┆ error mvi a,1 ;error code r┆ 0x0c8840…0c8860 65 74 0d 0a 3b 0d 0a 3b 09 69 6e 74 79 70 65 2c 20 69 6e 62 79 74 65 2c 20 69 6e 73 74 61 74 20 ┆et ; ; intype, inbyte, instat ┆ 0x0c8860…0c8880 72 65 61 64 20 64 72 69 76 65 20 62 61 6e 6b 20 30 30 20 6f 72 20 31 30 0d 0a 69 6e 74 79 70 65 ┆read drive bank 00 or 10 intype┆ 0x0c8880…0c88a0 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 74 79 70 31 ┆: lda dbank ora a jnz intyp1┆ 0x0c88a0…0c88c0 09 3b 73 6b 69 70 20 74 6f 20 62 61 6e 6b 20 31 30 0d 0a 09 69 6e 09 72 74 79 70 65 0d 0a 09 72 ┆ ;skip to bank 10 in rtype r┆ 0x0c88c0…0c88e0 65 74 0d 0a 69 6e 74 79 70 31 3a 09 69 6e 09 72 74 79 70 65 2b 31 30 68 09 3b 37 38 20 66 6f 72 ┆et intyp1: in rtype+10h ;78 for┆ 0x0c88e0…0c8900 20 30 2c 31 20 20 38 38 20 66 6f 72 20 32 2c 33 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 69 6e 62 79 74 ┆ 0,1 88 for 2,3 ret ; inbyt┆ 0x0c8900…0c8920 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 62 79 74 ┆e: lda dbank ora a jnz inbyt┆ 0x0c8920…0c8940 31 0d 0a 09 69 6e 09 72 62 79 74 65 0d 0a 09 72 65 74 0d 0a 69 6e 62 79 74 31 3a 09 69 6e 09 72 ┆1 in rbyte ret inbyt1: in r┆ 0x0c8940…0c8960 62 79 74 65 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 69 6e 73 74 61 74 3a 09 6c 64 61 09 64 ┆byte+10h ret ; instat: lda d┆ 0x0c8960…0c8980 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 73 74 61 31 0d 0a 09 69 6e 09 64 ┆bank ora a jnz insta1 in d┆ 0x0c8980…0c89a0 73 74 61 74 0d 0a 09 72 65 74 0d 0a 69 6e 73 74 61 31 3a 09 69 6e 09 64 73 74 61 74 2b 31 30 68 ┆stat ret insta1: in dstat+10h┆ 0x0c89a0…0c89c0 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 61 74 61 20 61 72 65 61 73 20 28 6d ┆ ret ; ; ; ; data areas (m┆ 0x0c89c0…0c89e0 75 73 74 20 62 65 20 69 6e 20 72 61 6d 29 0d 0a 64 62 61 6e 6b 3a 09 64 62 09 30 09 3b 64 69 73 ┆ust be in ram) dbank: db 0 ;dis┆ 0x0c89e0…0c8a00 6b 20 62 61 6e 6b 20 30 30 20 69 66 20 64 72 69 76 65 20 30 2c 31 0d 0a 09 09 09 3b 09 20 20 20 ┆k bank 00 if drive 0,1 ; ┆ 0x0c8a00…0c8a20 (53, 1, 1) 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 70 75 6e 63 68 09 70 75 6e 63 68 ┆t (char in reg-c) ; punch punch┆ 0x0c8a20…0c8a40 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 72 65 61 64 65 72 09 70 ┆ out (char in reg-c) ; reader p┆ 0x0c8a40…0c8a60 61 70 65 72 20 74 61 70 65 20 72 65 61 64 65 72 20 69 6e 20 28 72 65 73 75 6c 74 20 74 6f 20 72 ┆aper tape reader in (result to r┆ 0x0c8a60…0c8a80 65 67 2d 61 29 0d 0a 3b 09 68 6f 6d 65 09 6d 6f 76 65 20 74 6f 20 74 72 61 63 6b 20 30 30 0d 0a ┆eg-a) ; home move to track 00 ┆ 0x0c8a80…0c8aa0 3b 0d 0a 3b 09 28 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 61 6c 6c 73 20 73 65 74 2d 75 70 ┆; ; (the following calls set-up┆ 0x0c8aa0…0c8ac0 20 74 68 65 20 69 6f 20 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 20 66 6f 72 20 74 68 65 0d ┆ the io parameter block for the ┆ 0x0c8ac0…0c8ae0 0a 3b 09 6d 64 73 2c 20 77 68 69 63 68 20 69 73 20 75 73 65 64 20 74 6f 20 70 65 72 66 6f 72 6d ┆ ; mds, which is used to perform┆ 0x0c8ae0…0c8b00 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 73 20 61 6e 64 20 77 72 69 74 65 73 29 0d 0a 3b ┆ subsequent reads and writes) ;┆ 0x0c8b00…0c8b20 09 73 65 6c 64 73 6b 09 73 65 6c 65 63 74 20 64 69 73 6b 20 67 69 76 65 6e 20 62 79 20 72 65 67 ┆ seldsk select disk given by reg┆ 0x0c8b20…0c8b40 2d 63 20 28 30 2c 31 2c 32 2e 2e 2e 29 0d 0a 3b 09 73 65 74 74 72 6b 09 73 65 74 20 74 72 61 63 ┆-c (0,1,2...) ; settrk set trac┆ 0x0c8b40…0c8b60 6b 20 61 64 64 72 65 73 73 20 28 30 2c 2e 2e 2e 37 36 29 20 66 6f 72 20 73 75 62 73 65 71 75 65 ┆k address (0,...76) for subseque┆ 0x0c8b60…0c8b80 6e 74 20 72 65 61 64 2f 77 72 69 74 65 0d 0a 3b 09 73 65 74 73 65 63 09 73 65 74 20 73 65 63 74 ┆nt read/write ; setsec set sect┆ 0x0c8b80…0c8ba0 6f 72 20 61 64 64 72 65 73 73 20 28 31 2c 2e 2e 2e 2c 32 36 29 20 66 6f 72 20 73 75 62 73 65 71 ┆or address (1,...,26) for subseq┆ 0x0c8ba0…0c8bc0 75 65 6e 74 20 72 65 61 64 2f 77 72 69 74 65 0d 0a 3b 09 73 65 74 64 6d 61 09 73 65 74 20 73 75 ┆uent read/write ; setdma set su┆ 0x0c8bc0…0c8be0 62 73 65 71 75 65 6e 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 28 69 6e 69 74 69 61 6c 6c 79 20 ┆bsequent dma address (initially ┆ 0x0c8be0…0c8c00 38 30 68 29 0d 0a 3b 0d 0a 3b 09 28 72 65 61 64 20 61 6e 64 20 77 72 69 74 65 20 61 73 73 75 6d ┆80h) ; ; (read and write assum┆ 0x0c8c00…0c8c20 (53, 1, 2) 20 61 0d 0a 3b 0d 0a 3b 09 64 69 73 6b 20 70 6f 72 74 73 20 61 6e 64 20 63 6f 6d 6d 61 6e 64 73 ┆ a ; ; disk ports and commands┆ 0x0c8c20…0c8c40 0d 0a 62 61 73 65 09 65 71 75 09 37 38 68 09 3b 62 61 73 65 20 6f 66 20 64 69 73 6b 20 63 6f 6d ┆ base equ 78h ;base of disk com┆ 0x0c8c40…0c8c60 6d 61 6e 64 20 69 6f 20 70 6f 72 74 73 0d 0a 64 73 74 61 74 09 65 71 75 09 62 61 73 65 09 3b 64 ┆mand io ports dstat equ base ;d┆ 0x0c8c60…0c8c80 69 73 6b 20 73 74 61 74 75 73 20 28 69 6e 70 75 74 29 0d 0a 72 74 79 70 65 09 65 71 75 09 62 61 ┆isk status (input) rtype equ ba┆ 0x0c8c80…0c8ca0 73 65 2b 31 09 3b 72 65 73 75 6c 74 20 74 79 70 65 20 28 69 6e 70 75 74 29 0d 0a 72 62 79 74 65 ┆se+1 ;result type (input) rbyte┆ 0x0c8ca0…0c8cc0 09 65 71 75 09 62 61 73 65 2b 33 09 3b 72 65 73 75 6c 74 20 62 79 74 65 20 28 69 6e 70 75 74 29 ┆ equ base+3 ;result byte (input)┆ 0x0c8cc0…0c8ce0 0d 0a 3b 0d 0a 69 6c 6f 77 09 65 71 75 09 62 61 73 65 2b 31 09 3b 69 6f 70 62 20 6c 6f 77 20 61 ┆ ; ilow equ base+1 ;iopb low a┆ 0x0c8ce0…0c8d00 64 64 72 65 73 73 20 28 6f 75 74 70 75 74 29 0d 0a 69 68 69 67 68 09 65 71 75 09 62 61 73 65 2b ┆ddress (output) ihigh equ base+┆ 0x0c8d00…0c8d20 32 09 3b 69 6f 70 62 20 68 69 67 68 20 61 64 64 72 65 73 73 20 28 6f 75 74 70 75 74 29 0d 0a 3b ┆2 ;iopb high address (output) ;┆ 0x0c8d20…0c8d40 0d 0a 72 65 61 64 66 09 65 71 75 09 34 68 09 3b 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 77 ┆ readf equ 4h ;read function w┆ 0x0c8d40…0c8d60 72 69 74 66 09 65 71 75 09 36 68 09 3b 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 72 65 63 ┆ritf equ 6h ;write function rec┆ 0x0c8d60…0c8d80 61 6c 09 65 71 75 09 33 68 09 3b 72 65 63 61 6c 69 62 72 61 74 65 20 64 72 69 76 65 0d 0a 69 6f ┆al equ 3h ;recalibrate drive io┆ 0x0c8d80…0c8da0 72 64 79 09 65 71 75 09 34 68 09 3b 69 2f 6f 20 66 69 6e 69 73 68 65 64 20 6d 61 73 6b 0d 0a 63 ┆rdy equ 4h ;i/o finished mask c┆ 0x0c8da0…0c8dc0 72 09 65 71 75 09 30 64 68 09 3b 63 61 72 72 69 61 67 65 20 72 65 74 75 72 6e 0d 0a 6c 66 09 65 ┆r equ 0dh ;carriage return lf e┆ 0x0c8dc0…0c8de0 71 75 09 30 61 68 09 3b 6c 69 6e 65 20 66 65 65 64 0d 0a 3b 0d 0a 73 69 67 6e 6f 6e 3a 09 3b 73 ┆qu 0ah ;line feed ; signon: ;s┆ 0x0c8de0…0c8e00 69 67 6e 6f 6e 20 6d 65 73 73 61 67 65 3a 20 78 78 6b 20 63 70 2f 6d 20 76 65 72 73 20 79 2e 79 ┆ignon message: xxk cp/m vers y.y┆ 0x0c8e00…0c8e20 (53, 1, 3) 72 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 0d 0a 09 63 61 ┆r mov c,a ;ready for call ca┆ 0x0c8e20…0c8e40 6c 6c 09 73 65 74 73 65 63 0d 0a 09 70 6f 70 09 62 09 3b 72 65 63 61 6c 6c 20 73 65 63 74 6f 72 ┆ll setsec pop b ;recall sector┆ 0x0c8e40…0c8e60 20 63 6f 75 6e 74 0d 0a 09 64 63 72 09 62 09 3b 64 6f 6e 65 3f 0d 0a 09 6a 6e 7a 09 72 64 73 65 ┆ count dcr b ;done? jnz rdse┆ 0x0c8e60…0c8e80 63 0d 0a 3b 0d 0a 3b 09 64 6f 6e 65 20 77 69 74 68 20 74 68 65 20 6c 6f 61 64 2c 20 72 65 73 65 ┆c ; ; done with the load, rese┆ 0x0c8e80…0c8ea0 74 20 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 0d 0a 67 6f 63 70 6d 3a ┆t default buffer address gocpm:┆ 0x0c8ea0…0c8ec0 09 3b 28 65 6e 74 65 72 20 68 65 72 65 20 66 72 6f 6d 20 63 6f 6c 64 20 73 74 61 72 74 20 62 6f ┆ ;(enter here from cold start bo┆ 0x0c8ec0…0c8ee0 6f 74 29 0d 0a 3b 09 65 6e 61 62 6c 65 20 72 73 74 30 20 61 6e 64 20 72 73 74 37 0d 0a 09 64 69 ┆ot) ; enable rst0 and rst7 di┆ 0x0c8ee0…0c8f00 0d 0a 09 6d 76 69 09 61 2c 31 32 68 09 3b 69 6e 69 74 69 61 6c 69 7a 65 20 63 6f 6d 6d 61 6e 64 ┆ mvi a,12h ;initialize command┆ 0x0c8f00…0c8f20 0d 0a 09 6f 75 74 09 72 65 76 72 74 0d 0a 09 78 72 61 09 61 0d 0a 09 6f 75 74 09 69 6e 74 63 09 ┆ out revrt xra a out intc ┆ 0x0c8f20…0c8f40 3b 63 6c 65 61 72 65 64 0d 0a 09 6d 76 69 09 61 2c 69 6e 74 65 09 3b 72 73 74 30 20 61 6e 64 20 ┆;cleared mvi a,inte ;rst0 and ┆ 0x0c8f40…0c8f60 72 73 74 37 20 62 69 74 73 20 6f 6e 0d 0a 09 6f 75 74 09 69 6e 74 63 0d 0a 09 78 72 61 09 61 0d ┆rst7 bits on out intc xra a ┆ 0x0c8f60…0c8f80 0a 09 6f 75 74 09 69 63 6f 6e 09 3b 69 6e 74 65 72 72 75 70 74 20 63 6f 6e 74 72 6f 6c 0d 0a 3b ┆ out icon ;interrupt control ;┆ 0x0c8f80…0c8fa0 0d 0a 3b 09 73 65 74 20 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 20 74 ┆ ; set default buffer address t┆ 0x0c8fa0…0c8fc0 6f 20 38 30 68 0d 0a 09 6c 78 69 09 62 2c 62 75 66 66 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 ┆o 80h lxi b,buff call setdma┆ 0x0c8fc0…0c8fe0 0d 0a 3b 0d 0a 3b 09 72 65 73 65 74 20 6d 6f 6e 69 74 6f 72 20 65 6e 74 72 79 20 70 6f 69 6e 74 ┆ ; ; reset monitor entry point┆ 0x0c8fe0…0c9000 73 0d 0a 09 6d 76 69 09 61 2c 6a 6d 70 0d 0a 09 73 74 61 09 30 0d 0a 09 6c 78 69 09 68 2c 77 62 ┆s mvi a,jmp sta 0 lxi h,wb┆ 0x0c9000…0c9020 (53, 1, 4) 20 32 2c 33 20 61 74 20 38 38 0d 0a 09 6f 72 61 09 61 09 3b 72 65 73 75 6c 74 20 30 30 3f 0d 0a ┆ 2,3 at 88 ora a ;result 00? ┆ 0x0c9020…0c9040 09 6a 7a 09 73 65 74 64 72 69 76 65 0d 0a 09 6d 76 69 09 61 2c 30 30 31 31 30 30 30 30 62 09 3b ┆ jz setdrive mvi a,00110000b ;┆ 0x0c9040…0c9060 73 65 6c 65 63 74 73 20 64 72 69 76 65 20 31 20 69 6e 20 62 61 6e 6b 0d 0a 73 65 74 64 72 69 76 ┆selects drive 1 in bank setdriv┆ 0x0c9060…0c9080 65 3a 0d 0a 09 6d 6f 76 09 62 2c 61 09 3b 73 61 76 65 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 0d ┆e: mov b,a ;save the function ┆ 0x0c9080…0c90a0 0a 09 6c 78 69 09 68 2c 69 6f 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6d 6f 76 09 61 ┆ lxi h,iof ;io function mov a┆ 0x0c90a0…0c90c0 2c 6d 0d 0a 09 61 6e 69 09 31 31 30 30 31 31 31 31 62 09 3b 6d 61 73 6b 20 6f 75 74 20 64 69 73 ┆,m ani 11001111b ;mask out dis┆ 0x0c90c0…0c90e0 6b 20 6e 75 6d 62 65 72 0d 0a 09 6f 72 61 09 62 09 3b 6d 61 73 6b 20 69 6e 20 6e 65 77 20 64 69 ┆k number ora b ;mask in new di┆ 0x0c90e0…0c9100 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6d 6f 76 09 6d 2c 61 09 3b 73 61 76 65 20 69 74 20 69 6e 20 ┆sk number mov m,a ;save it in ┆ 0x0c9100…0c9120 69 6f 70 62 0d 0a 09 6d 6f 76 09 6c 2c 63 0d 0a 09 6d 76 69 09 68 2c 30 09 3b 48 4c 3d 64 69 73 ┆iopb mov l,c mvi h,0 ;HL=dis┆ 0x0c9120…0c9140 6b 20 6e 75 6d 62 65 72 0d 0a 09 64 61 64 09 68 09 3b 2a 32 0d 0a 09 64 61 64 09 68 09 3b 2a 34 ┆k number dad h ;*2 dad h ;*4┆ 0x0c9140…0c9160 0d 0a 09 64 61 64 09 68 09 3b 2a 38 0d 0a 09 64 61 64 09 68 09 3b 2a 31 36 0d 0a 09 6c 78 69 09 ┆ dad h ;*8 dad h ;*16 lxi ┆ 0x0c9160…0c9180 64 2c 64 70 62 61 73 65 0d 0a 09 64 61 64 09 64 09 3b 48 4c 3d 64 69 73 6b 20 68 65 61 64 65 72 ┆d,dpbase dad d ;HL=disk header┆ 0x0c9180…0c91a0 20 74 61 62 6c 65 20 61 64 64 72 65 73 73 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 73 65 74 74 ┆ table address ret ; ; sett┆ 0x0c91a0…0c91c0 72 6b 3a 09 3b 73 65 74 20 74 72 61 63 6b 20 61 64 64 72 65 73 73 20 67 69 76 65 6e 20 62 79 20 ┆rk: ;set track address given by ┆ 0x0c91c0…0c91e0 63 0d 0a 09 6c 78 69 09 68 2c 69 6f 74 0d 0a 09 6d 6f 76 09 6d 2c 63 0d 0a 09 72 65 74 0d 0a 3b ┆c lxi h,iot mov m,c ret ;┆ 0x0c91e0…0c9200 0d 0a 73 65 74 73 65 63 3a 09 3b 73 65 74 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 67 69 76 ┆ setsec: ;set sector number giv┆ 0x0c9200…0c9220 (53, 1, 5) 65 20 70 72 65 76 69 6f 75 73 20 63 61 6c 6c 73 20 74 6f 20 73 65 74 20 75 70 20 74 68 65 20 69 ┆e previous calls to set up the i┆ 0x0c9220…0c9240 6f 20 70 61 72 61 6d 65 74 65 72 73 29 0d 0a 3b 09 72 65 61 64 09 72 65 61 64 20 74 72 61 63 6b ┆o parameters) ; read read track┆ 0x0c9240…0c9260 2f 73 65 63 74 6f 72 20 74 6f 20 70 72 65 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 3b ┆/sector to preset dma address ;┆ 0x0c9260…0c9280 09 77 72 69 74 65 09 77 72 69 74 65 20 74 72 61 63 6b 2f 73 65 63 74 6f 72 20 66 72 6f 6d 20 70 ┆ write write track/sector from p┆ 0x0c9280…0c92a0 72 65 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b 09 6a 75 6d 70 20 76 65 63 ┆reset dma address ; ; jump vec┆ 0x0c92a0…0c92c0 74 6f 72 20 66 6f 72 20 69 6e 64 69 76 69 75 61 6c 20 72 6f 75 74 69 6e 65 73 0d 0a 09 6a 6d 70 ┆tor for indiviual routines jmp┆ 0x0c92c0…0c92e0 09 62 6f 6f 74 0d 0a 77 62 6f 6f 74 65 3a 09 6a 6d 70 09 77 62 6f 6f 74 0d 0a 09 6a 6d 70 09 63 ┆ boot wboote: jmp wboot jmp c┆ 0x0c92e0…0c9300 6f 6e 73 74 0d 0a 09 6a 6d 70 09 63 6f 6e 69 6e 0d 0a 09 6a 6d 70 09 63 6f 6e 6f 75 74 0d 0a 09 ┆onst jmp conin jmp conout ┆ 0x0c9300…0c9320 6a 6d 70 09 6c 69 73 74 0d 0a 09 6a 6d 70 09 70 75 6e 63 68 0d 0a 09 6a 6d 70 09 72 65 61 64 65 ┆jmp list jmp punch jmp reade┆ 0x0c9320…0c9340 72 0d 0a 09 6a 6d 70 09 68 6f 6d 65 0d 0a 09 6a 6d 70 09 73 65 6c 64 73 6b 0d 0a 09 6a 6d 70 09 ┆r jmp home jmp seldsk jmp ┆ 0x0c9340…0c9360 73 65 74 74 72 6b 0d 0a 09 6a 6d 70 09 73 65 74 73 65 63 0d 0a 09 6a 6d 70 09 73 65 74 64 6d 61 ┆settrk jmp setsec jmp setdma┆ 0x0c9360…0c9380 0d 0a 09 6a 6d 70 09 72 65 61 64 0d 0a 09 6a 6d 70 09 77 72 69 74 65 0d 0a 09 6a 6d 70 09 6c 69 ┆ jmp read jmp write jmp li┆ 0x0c9380…0c93a0 73 74 73 74 09 3b 6c 69 73 74 20 73 74 61 74 75 73 0d 0a 09 6a 6d 70 09 73 65 63 74 72 61 6e 0d ┆stst ;list status jmp sectran ┆ 0x0c93a0…0c93c0 0a 3b 0d 0a 09 6d 61 63 6c 69 62 09 64 69 73 6b 64 65 66 09 3b 6c 6f 61 64 20 74 68 65 20 64 69 ┆ ; maclib diskdef ;load the di┆ 0x0c93c0…0c93e0 73 6b 20 64 65 66 69 6e 69 74 69 6f 6e 20 6c 69 62 72 61 72 79 0d 0a 09 64 69 73 6b 73 09 34 09 ┆sk definition library disks 4 ┆ 0x0c93e0…0c9400 3b 66 6f 75 72 20 64 69 73 6b 73 0d 0a 09 64 69 73 6b 64 65 66 09 30 2c 31 2c 32 36 2c 36 2c 31 ┆;four disks diskdef 0,1,26,6,1┆ 0x0c9400…0c9420 (53, 1, 6) 0d 0a 09 64 62 09 63 72 2c 6c 66 2c 6c 66 0d 0a 09 69 66 09 74 65 73 74 0d 0a 09 64 62 09 27 33 ┆ db cr,lf,lf if test db '3┆ 0x0c9420…0c9440 32 27 09 3b 33 32 6b 20 65 78 61 6d 70 6c 65 20 62 69 6f 73 0d 0a 09 65 6e 64 69 66 0d 0a 09 69 ┆2' ;32k example bios endif i┆ 0x0c9440…0c9460 66 09 6e 6f 74 20 74 65 73 74 0d 0a 09 64 62 09 27 30 30 27 09 3b 6d 65 6d 6f 72 79 20 73 69 7a ┆f not test db '00' ;memory siz┆ 0x0c9460…0c9480 65 20 66 69 6c 6c 65 64 20 62 79 20 72 65 6c 6f 63 61 74 6f 72 0d 0a 09 65 6e 64 69 66 0d 0a 09 ┆e filled by relocator endif ┆ 0x0c9480…0c94a0 64 62 09 27 6b 20 43 50 2f 4d 20 76 65 72 73 20 27 0d 0a 09 64 62 09 76 65 72 73 2f 31 30 2b 27 ┆db 'k CP/M vers ' db vers/10+'┆ 0x0c94a0…0c94c0 30 27 2c 27 2e 27 2c 76 65 72 73 20 6d 6f 64 20 31 30 2b 27 30 27 0d 0a 09 64 62 09 63 72 2c 6c ┆0','.',vers mod 10+'0' db cr,l┆ 0x0c94c0…0c94e0 66 2c 30 0d 0a 3b 0d 0a 62 6f 6f 74 3a 09 3b 70 72 69 6e 74 20 73 69 67 6e 6f 6e 20 6d 65 73 73 ┆f,0 ; boot: ;print signon mess┆ 0x0c94e0…0c9500 61 67 65 20 61 6e 64 20 67 6f 20 74 6f 20 63 63 70 0d 0a 3b 09 28 6e 6f 74 65 3a 20 6d 64 73 20 ┆age and go to ccp ; (note: mds ┆ 0x0c9500…0c9520 62 6f 6f 74 20 69 6e 69 74 69 61 6c 69 7a 65 64 20 69 6f 62 79 74 65 20 61 74 20 30 30 30 33 68 ┆boot initialized iobyte at 0003h┆ 0x0c9520…0c9540 29 0d 0a 09 6c 78 69 09 73 70 2c 62 75 66 66 2b 38 30 68 0d 0a 09 6c 78 69 09 68 2c 73 69 67 6e ┆) lxi sp,buff+80h lxi h,sign┆ 0x0c9540…0c9560 6f 6e 0d 0a 09 63 61 6c 6c 09 70 72 6d 73 67 09 3b 70 72 69 6e 74 20 6d 65 73 73 61 67 65 0d 0a ┆on call prmsg ;print message ┆ 0x0c9560…0c9580 09 78 72 61 09 61 09 3b 63 6c 65 61 72 20 61 63 63 75 6d 75 6c 61 74 6f 72 0d 0a 09 73 74 61 09 ┆ xra a ;clear accumulator sta ┆ 0x0c9580…0c95a0 63 64 69 73 6b 09 3b 73 65 74 20 69 6e 69 74 69 61 6c 6c 79 20 74 6f 20 64 69 73 6b 20 61 0d 0a ┆cdisk ;set initially to disk a ┆ 0x0c95a0…0c95c0 09 6a 6d 70 09 67 6f 63 70 6d 09 3b 67 6f 20 74 6f 20 63 70 2f 6d 0d 0a 3b 0d 0a 3b 0d 0a 77 62 ┆ jmp gocpm ;go to cp/m ; ; wb┆ 0x0c95c0…0c95e0 6f 6f 74 3a 3b 09 6c 6f 61 64 65 72 20 6f 6e 20 74 72 61 63 6b 20 30 2c 20 73 65 63 74 6f 72 20 ┆oot:; loader on track 0, sector ┆ 0x0c95e0…0c9600 31 2c 20 77 68 69 63 68 20 77 69 6c 6c 20 62 65 20 73 6b 69 70 70 65 64 20 66 6f 72 20 77 61 72 ┆1, which will be skipped for war┆ 0x0c9600…0c9620 (53, 1, 7) 6f 6f 74 65 0d 0a 09 73 68 6c 64 09 31 09 3b 6a 6d 70 20 77 62 6f 6f 74 20 61 74 20 6c 6f 63 61 ┆oote shld 1 ;jmp wboot at loca┆ 0x0c9620…0c9640 74 69 6f 6e 20 30 30 0d 0a 09 73 74 61 09 35 0d 0a 09 6c 78 69 09 68 2c 62 64 6f 73 0d 0a 09 73 ┆tion 00 sta 5 lxi h,bdos s┆ 0x0c9640…0c9660 68 6c 64 09 36 09 3b 6a 6d 70 20 62 64 6f 73 20 61 74 20 6c 6f 63 61 74 69 6f 6e 20 35 0d 0a 09 ┆hld 6 ;jmp bdos at location 5 ┆ 0x0c9660…0c9680 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 09 73 74 61 09 37 2a 38 09 3b 6a 6d 70 20 74 6f 20 6d 6f ┆if not test sta 7*8 ;jmp to mo┆ 0x0c9680…0c96a0 6e 38 30 20 28 6d 61 79 20 68 61 76 65 20 62 65 65 6e 20 63 68 61 6e 67 65 64 20 62 79 20 64 64 ┆n80 (may have been changed by dd┆ 0x0c96a0…0c96c0 74 29 0d 0a 09 6c 78 69 09 68 2c 6d 6f 6e 38 30 0d 0a 09 73 68 6c 64 09 37 2a 38 2b 31 0d 0a 09 ┆t) lxi h,mon80 shld 7*8+1 ┆ 0x0c96c0…0c96e0 65 6e 64 69 66 0d 0a 3b 09 6c 65 61 76 65 20 69 6f 62 79 74 65 20 73 65 74 0d 0a 3b 09 70 72 65 ┆endif ; leave iobyte set ; pre┆ 0x0c96e0…0c9700 76 69 6f 75 73 6c 79 20 73 65 6c 65 63 74 65 64 20 64 69 73 6b 20 77 61 73 20 62 2c 20 73 65 6e ┆viously selected disk was b, sen┆ 0x0c9700…0c9720 64 20 70 61 72 61 6d 65 74 65 72 20 74 6f 20 63 70 6d 0d 0a 09 6c 64 61 09 63 64 69 73 6b 09 3b ┆d parameter to cpm lda cdisk ;┆ 0x0c9720…0c9740 6c 61 73 74 20 6c 6f 67 67 65 64 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6d 6f 76 09 63 2c ┆last logged disk number mov c,┆ 0x0c9740…0c9760 61 09 3b 73 65 6e 64 20 74 6f 20 63 63 70 20 74 6f 20 6c 6f 67 20 69 74 20 69 6e 0d 0a 09 65 69 ┆a ;send to ccp to log it in ei┆ 0x0c9760…0c9780 0d 0a 09 6a 6d 70 09 63 70 6d 62 0d 0a 3b 0d 0a 3b 09 65 72 72 6f 72 20 63 6f 6e 64 69 74 69 6f ┆ jmp cpmb ; ; error conditio┆ 0x0c9780…0c97a0 6e 20 6f 63 63 75 72 72 65 64 2c 20 70 72 69 6e 74 20 6d 65 73 73 61 67 65 20 61 6e 64 20 72 65 ┆n occurred, print message and re┆ 0x0c97a0…0c97c0 74 72 79 0d 0a 62 6f 6f 74 65 72 72 3a 0d 0a 09 70 6f 70 09 62 09 3b 72 65 63 61 6c 6c 20 63 6f ┆try booterr: pop b ;recall co┆ 0x0c97c0…0c97e0 75 6e 74 73 0d 0a 09 64 63 72 09 63 0d 0a 09 6a 7a 09 62 6f 6f 74 65 72 30 0d 0a 3b 09 74 72 79 ┆unts dcr c jz booter0 ; try┆ 0x0c97e0…0c9800 20 61 67 61 69 6e 0d 0a 09 70 75 73 68 09 62 0d 0a 09 6a 6d 70 09 77 62 6f 6f 74 30 0d 0a 3b 0d ┆ again push b jmp wboot0 ; ┆ 0x0c9800…0c9820 (53, 1, 8) 65 6e 20 62 79 20 63 0d 0a 09 6c 78 69 09 68 2c 69 6f 73 0d 0a 09 6d 6f 76 09 6d 2c 63 0d 0a 09 ┆en by c lxi h,ios mov m,c ┆ 0x0c9820…0c9840 72 65 74 0d 0a 73 65 63 74 72 61 6e 3a 0d 0a 09 09 3b 74 72 61 6e 73 6c 61 74 65 20 73 65 63 74 ┆ret sectran: ;translate sect┆ 0x0c9840…0c9860 6f 72 20 62 63 20 75 73 69 6e 67 20 74 61 62 6c 65 20 61 74 20 64 65 0d 0a 09 6d 76 69 09 62 2c ┆or bc using table at de mvi b,┆ 0x0c9860…0c9880 30 09 3b 64 6f 75 62 6c 65 20 70 72 65 63 69 73 69 6f 6e 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 ┆0 ;double precision sector numbe┆ 0x0c9880…0c98a0 72 20 69 6e 20 42 43 0d 0a 09 78 63 68 67 09 09 3b 74 72 61 6e 73 6c 61 74 65 20 74 61 62 6c 65 ┆r in BC xchg ;translate table┆ 0x0c98a0…0c98c0 20 61 64 64 72 65 73 73 20 74 6f 20 48 4c 0d 0a 09 64 61 64 09 62 09 3b 74 72 61 6e 73 6c 61 74 ┆ address to HL dad b ;translat┆ 0x0c98c0…0c98e0 65 28 73 65 63 74 6f 72 29 20 61 64 64 72 65 73 73 0d 0a 09 6d 6f 76 09 61 2c 6d 09 3b 74 72 61 ┆e(sector) address mov a,m ;tra┆ 0x0c98e0…0c9900 6e 73 6c 61 74 65 64 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 74 6f 20 41 0d 0a 09 73 74 61 ┆nslated sector number to A sta┆ 0x0c9900…0c9920 09 69 6f 73 0d 0a 09 6d 6f 76 09 6c 2c 61 09 3b 72 65 74 75 72 6e 20 73 65 63 74 6f 72 20 6e 75 ┆ ios mov l,a ;return sector nu┆ 0x0c9920…0c9940 6d 62 65 72 20 69 6e 20 4c 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 73 65 74 64 6d 61 3a 09 3b 73 65 74 ┆mber in L ret ; setdma: ;set┆ 0x0c9940…0c9960 20 64 6d 61 20 61 64 64 72 65 73 73 20 67 69 76 65 6e 20 62 79 20 72 65 67 73 20 62 2c 63 0d 0a ┆ dma address given by regs b,c ┆ 0x0c9960…0c9980 09 6d 6f 76 09 6c 2c 63 0d 0a 09 6d 6f 76 09 68 2c 62 0d 0a 09 73 68 6c 64 09 69 6f 64 0d 0a 09 ┆ mov l,c mov h,b shld iod ┆ 0x0c9980…0c99a0 72 65 74 0d 0a 3b 0d 0a 72 65 61 64 3a 09 3b 72 65 61 64 20 6e 65 78 74 20 64 69 73 6b 20 72 65 ┆ret ; read: ;read next disk re┆ 0x0c99a0…0c99c0 63 6f 72 64 20 28 61 73 73 75 6d 69 6e 67 20 64 69 73 6b 2f 74 72 6b 2f 73 65 63 2f 64 6d 61 20 ┆cord (assuming disk/trk/sec/dma ┆ 0x0c99c0…0c99e0 73 65 74 29 0d 0a 09 6d 76 69 09 63 2c 72 65 61 64 66 09 3b 73 65 74 20 74 6f 20 72 65 61 64 20 ┆set) mvi c,readf ;set to read ┆ 0x0c99e0…0c9a00 66 75 6e 63 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 73 65 74 66 75 6e 63 0d 0a 09 63 61 6c 6c 09 77 ┆function call setfunc call w┆ 0x0c9a00…0c9a20 (53, 1, 9) 30 32 34 2c 32 34 33 2c 36 34 2c 36 34 2c 6f 66 66 73 65 74 0d 0a 09 64 69 73 6b 64 65 66 09 31 ┆024,243,64,64,offset diskdef 1┆ 0x0c9a20…0c9a40 2c 30 0d 0a 09 64 69 73 6b 64 65 66 09 32 2c 30 0d 0a 09 64 69 73 6b 64 65 66 09 33 2c 30 0d 0a ┆,0 diskdef 2,0 diskdef 3,0 ┆ 0x0c9a40…0c9a60 3b 09 65 6e 64 65 66 20 6f 63 63 75 72 73 20 61 74 20 65 6e 64 20 6f 66 20 61 73 73 65 6d 62 6c ┆; endef occurs at end of assembl┆ 0x0c9a60…0c9a80 79 0d 0a 3b 0d 0a 3b 09 65 6e 64 20 6f 66 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 2d 20 69 6e 64 65 ┆y ; ; end of controller - inde┆ 0x0c9a80…0c9aa0 70 65 6e 64 65 6e 74 20 63 6f 64 65 2c 20 74 68 65 20 72 65 6d 61 69 6e 69 6e 67 20 73 75 62 72 ┆pendent code, the remaining subr┆ 0x0c9aa0…0c9ac0 6f 75 74 69 6e 65 73 0d 0a 3b 09 61 72 65 20 74 61 69 6c 6f 72 65 64 20 74 6f 20 74 68 65 20 70 ┆outines ; are tailored to the p┆ 0x0c9ac0…0c9ae0 61 72 74 69 63 75 6c 61 72 20 6f 70 65 72 61 74 69 6e 67 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 2c ┆articular operating environment,┆ 0x0c9ae0…0c9b00 20 61 6e 64 20 6d 75 73 74 0d 0a 3b 09 62 65 20 61 6c 74 65 72 65 64 20 66 6f 72 20 61 6e 79 20 ┆ and must ; be altered for any ┆ 0x0c9b00…0c9b20 73 79 73 74 65 6d 20 77 68 69 63 68 20 64 69 66 66 65 72 73 20 66 72 6f 6d 20 74 68 65 20 69 6e ┆system which differs from the in┆ 0x0c9b20…0c9b40 74 65 6c 20 6d 64 73 2e 0d 0a 3b 0d 0a 3b 09 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 64 ┆tel mds. ; ; the following cod┆ 0x0c9b40…0c9b60 65 20 61 73 73 75 6d 65 73 20 74 68 65 20 6d 64 73 20 6d 6f 6e 69 74 6f 72 20 65 78 69 73 74 73 ┆e assumes the mds monitor exists┆ 0x0c9b60…0c9b80 20 61 74 20 30 66 38 30 30 68 0d 0a 3b 09 61 6e 64 20 75 73 65 73 20 74 68 65 20 69 2f 6f 20 73 ┆ at 0f800h ; and uses the i/o s┆ 0x0c9b80…0c9ba0 75 62 72 6f 75 74 69 6e 65 73 20 77 69 74 68 69 6e 20 74 68 65 20 6d 6f 6e 69 74 6f 72 0d 0a 3b ┆ubroutines within the monitor ;┆ 0x0c9ba0…0c9bc0 0d 0a 3b 09 77 65 20 61 6c 73 6f 20 61 73 73 75 6d 65 20 74 68 65 20 6d 64 73 20 73 79 73 74 65 ┆ ; we also assume the mds syste┆ 0x0c9bc0…0c9be0 6d 20 68 61 73 20 66 6f 75 72 20 64 69 73 6b 20 64 72 69 76 65 73 0d 0a 72 65 76 72 74 09 65 71 ┆m has four disk drives revrt eq┆ 0x0c9be0…0c9c00 75 09 30 66 64 68 09 3b 69 6e 74 65 72 72 75 70 74 20 72 65 76 65 72 74 20 70 6f 72 74 0d 0a 69 ┆u 0fdh ;interrupt revert port i┆ 0x0c9c00…0c9c20 (53, 1, 10) 6d 20 0d 0a 3b 09 72 65 61 64 20 63 70 2f 6d 20 66 72 6f 6d 20 64 69 73 6b 20 2d 20 61 73 73 75 ┆m ; read cp/m from disk - assu┆ 0x0c9c20…0c9c40 6d 69 6e 67 20 74 68 65 72 65 20 69 73 20 61 20 31 32 38 20 62 79 74 65 20 63 6f 6c 64 20 73 74 ┆ming there is a 128 byte cold st┆ 0x0c9c40…0c9c60 61 72 74 0d 0a 3b 09 73 74 61 72 74 2e 0d 0a 3b 0d 0a 09 6c 78 69 09 73 70 2c 62 75 66 66 09 3b ┆art ; start. ; lxi sp,buff ;┆ 0x0c9c60…0c9c80 75 73 69 6e 67 20 64 6d 61 20 2d 20 74 68 75 73 20 38 30 20 74 68 72 75 20 66 66 20 61 76 61 69 ┆using dma - thus 80 thru ff avai┆ 0x0c9c80…0c9ca0 6c 61 62 6c 65 20 66 6f 72 20 73 74 61 63 6b 0d 0a 3b 0d 0a 09 6d 76 69 09 63 2c 72 65 74 72 79 ┆lable for stack ; mvi c,retry┆ 0x0c9ca0…0c9cc0 09 3b 6d 61 78 20 72 65 74 72 69 65 73 0d 0a 09 70 75 73 68 09 62 0d 0a 77 62 6f 6f 74 30 3a 09 ┆ ;max retries push b wboot0: ┆ 0x0c9cc0…0c9ce0 3b 65 6e 74 65 72 20 68 65 72 65 20 6f 6e 20 65 72 72 6f 72 20 72 65 74 72 69 65 73 0d 0a 09 6c ┆;enter here on error retries l┆ 0x0c9ce0…0c9d00 78 69 09 62 2c 63 70 6d 62 09 3b 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 74 6f 20 73 74 ┆xi b,cpmb ;set dma address to st┆ 0x0c9d00…0c9d20 61 72 74 20 6f 66 20 64 69 73 6b 20 73 79 73 74 65 6d 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 ┆art of disk system call setdma┆ 0x0c9d20…0c9d40 0d 0a 09 6d 76 69 09 63 2c 30 09 3b 62 6f 6f 74 20 66 72 6f 6d 20 64 72 69 76 65 20 30 0d 0a 09 ┆ mvi c,0 ;boot from drive 0 ┆ 0x0c9d40…0c9d60 63 61 6c 6c 09 73 65 6c 64 73 6b 0d 0a 09 6d 76 69 09 63 2c 30 0d 0a 09 63 61 6c 6c 09 73 65 74 ┆call seldsk mvi c,0 call set┆ 0x0c9d60…0c9d80 74 72 6b 09 3b 73 74 61 72 74 20 77 69 74 68 20 74 72 61 63 6b 20 30 0d 0a 09 6d 76 69 09 63 2c ┆trk ;start with track 0 mvi c,┆ 0x0c9d80…0c9da0 32 09 3b 73 74 61 72 74 20 72 65 61 64 69 6e 67 20 73 65 63 74 6f 72 20 32 0d 0a 09 63 61 6c 6c ┆2 ;start reading sector 2 call┆ 0x0c9da0…0c9dc0 09 73 65 74 73 65 63 0d 0a 3b 0d 0a 3b 09 72 65 61 64 20 73 65 63 74 6f 72 73 2c 20 63 6f 75 6e ┆ setsec ; ; read sectors, coun┆ 0x0c9dc0…0c9de0 74 20 6e 73 65 63 74 73 20 74 6f 20 7a 65 72 6f 0d 0a 09 70 6f 70 09 62 09 3b 31 30 2d 65 72 72 ┆t nsects to zero pop b ;10-err┆ 0x0c9de0…0c9e00 6f 72 20 63 6f 75 6e 74 0d 0a 09 6d 76 69 09 62 2c 6e 73 65 63 74 73 0d 0a 72 64 73 65 63 3a 09 ┆or count mvi b,nsects rdsec: ┆ 0x0c9e00…0c9e20 (53, 1, 11) 0a 62 6f 6f 74 65 72 30 3a 0d 0a 3b 09 6f 74 68 65 72 77 69 73 65 20 74 6f 6f 20 6d 61 6e 79 20 ┆ booter0: ; otherwise too many ┆ 0x0c9e20…0c9e40 72 65 74 72 69 65 73 0d 0a 09 6c 78 69 09 68 2c 62 6f 6f 74 6d 73 67 0d 0a 09 63 61 6c 6c 09 70 ┆retries lxi h,bootmsg call p┆ 0x0c9e40…0c9e60 72 6d 73 67 0d 0a 09 6a 6d 70 09 72 6d 6f 6e 38 30 09 3b 6d 64 73 20 68 61 72 64 77 61 72 65 20 ┆rmsg jmp rmon80 ;mds hardware ┆ 0x0c9e60…0c9e80 6d 6f 6e 69 74 6f 72 0d 0a 3b 0d 0a 62 6f 6f 74 6d 73 67 3a 0d 0a 09 64 62 09 27 3f 62 6f 6f 74 ┆monitor ; bootmsg: db '?boot┆ 0x0c9e80…0c9ea0 27 2c 30 0d 0a 3b 0d 0a 3b 0d 0a 63 6f 6e 73 74 3a 09 3b 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 ┆',0 ; ; const: ;console statu┆ 0x0c9ea0…0c9ec0 73 20 74 6f 20 72 65 67 2d 61 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 ┆s to reg-a ; (exactly the same ┆ 0x0c9ec0…0c9ee0 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 63 73 74 73 0d 0a 3b 0d 0a 63 6f 6e 69 ┆as mds call) jmp csts ; coni┆ 0x0c9ee0…0c9f00 6e 3a 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 72 65 67 2d 61 0d 0a ┆n: ;console character to reg-a ┆ 0x0c9f00…0c9f20 09 63 61 6c 6c 09 63 69 0d 0a 09 61 6e 69 09 37 66 68 09 3b 72 65 6d 6f 76 65 20 70 61 72 69 74 ┆ call ci ani 7fh ;remove parit┆ 0x0c9f20…0c9f40 79 20 62 69 74 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 63 6f 6e 6f 75 74 3a 09 3b 63 6f 6e 73 6f 6c 65 ┆y bit ret ; conout: ;console┆ 0x0c9f40…0c9f60 20 63 68 61 72 61 63 74 65 72 20 66 72 6f 6d 20 63 20 74 6f 20 63 6f 6e 73 6f 6c 65 20 6f 75 74 ┆ character from c to console out┆ 0x0c9f60…0c9f80 0d 0a 09 6a 6d 70 09 63 6f 0d 0a 3b 0d 0a 6c 69 73 74 3a 09 3b 6c 69 73 74 20 64 65 76 69 63 65 ┆ jmp co ; list: ;list device┆ 0x0c9f80…0c9fa0 20 6f 75 74 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 ┆ out ; (exactly the same as mds┆ 0x0c9fa0…0c9fc0 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 6c 6f 0d 0a 3b 0d 0a 6c 69 73 74 73 74 3a 0d 0a 09 3b 72 ┆ call) jmp lo ; listst: ;r┆ 0x0c9fc0…0c9fe0 65 74 75 72 6e 20 6c 69 73 74 20 73 74 61 74 75 73 0d 0a 09 78 72 61 09 61 0d 0a 09 72 65 74 09 ┆eturn list status xra a ret ┆ 0x0c9fe0…0ca000 09 3b 61 6c 77 61 79 73 20 6e 6f 74 20 72 65 61 64 79 0d 0a 3b 0d 0a 70 75 6e 63 68 3a 09 3b 70 ┆ ;always not ready ; punch: ;p┆ 0x0ca000…0ca020 (53, 1, 12) 61 69 74 69 6f 09 3b 70 65 72 66 6f 72 6d 20 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 72 ┆aitio ;perform read function r┆ 0x0ca020…0ca040 65 74 09 09 3b 6d 61 79 20 68 61 76 65 20 65 72 72 6f 72 20 73 65 74 20 69 6e 20 72 65 67 2d 61 ┆et ;may have error set in reg-a┆ 0x0ca040…0ca060 0d 0a 3b 0d 0a 3b 0d 0a 77 72 69 74 65 3a 09 3b 64 69 73 6b 20 77 72 69 74 65 20 66 75 6e 63 74 ┆ ; ; write: ;disk write funct┆ 0x0ca060…0ca080 69 6f 6e 0d 0a 09 6d 76 69 09 63 2c 77 72 69 74 66 0d 0a 09 63 61 6c 6c 09 73 65 74 66 75 6e 63 ┆ion mvi c,writf call setfunc┆ 0x0ca080…0ca0a0 09 3b 73 65 74 20 74 6f 20 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 77 ┆ ;set to write function call w┆ 0x0ca0a0…0ca0c0 61 69 74 69 6f 0d 0a 09 72 65 74 09 09 3b 6d 61 79 20 68 61 76 65 20 65 72 72 6f 72 20 73 65 74 ┆aitio ret ;may have error set┆ 0x0ca0c0…0ca0e0 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 75 74 69 6c 69 74 79 20 73 75 62 72 6f 75 74 69 6e 65 73 0d 0a 70 ┆ ; ; ; utility subroutines p┆ 0x0ca0e0…0ca100 72 6d 73 67 3a 09 3b 70 72 69 6e 74 20 6d 65 73 73 61 67 65 20 61 74 20 68 2c 6c 20 74 6f 20 30 ┆rmsg: ;print message at h,l to 0┆ 0x0ca100…0ca120 0d 0a 09 6d 6f 76 09 61 2c 6d 0d 0a 09 6f 72 61 09 61 09 3b 7a 65 72 6f 3f 0d 0a 09 72 7a 0d 0a ┆ mov a,m ora a ;zero? rz ┆ 0x0ca120…0ca140 3b 09 6d 6f 72 65 20 74 6f 20 70 72 69 6e 74 0d 0a 09 70 75 73 68 09 68 0d 0a 09 6d 6f 76 09 63 ┆; more to print push h mov c┆ 0x0ca140…0ca160 2c 61 0d 0a 09 63 61 6c 6c 09 63 6f 6e 6f 75 74 0d 0a 09 70 6f 70 09 68 0d 0a 09 69 6e 78 09 68 ┆,a call conout pop h inx h┆ 0x0ca160…0ca180 0d 0a 09 6a 6d 70 09 70 72 6d 73 67 0d 0a 3b 0d 0a 73 65 74 66 75 6e 63 3a 0d 0a 3b 09 73 65 74 ┆ jmp prmsg ; setfunc: ; set┆ 0x0ca180…0ca1a0 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 6e 65 78 74 20 69 2f 6f 20 28 63 6f 6d 6d 61 6e 64 20 ┆ function for next i/o (command ┆ 0x0ca1a0…0ca1c0 69 6e 20 72 65 67 2d 63 29 0d 0a 09 6c 78 69 09 68 2c 69 6f 66 09 3b 69 6f 20 66 75 6e 63 74 69 ┆in reg-c) lxi h,iof ;io functi┆ 0x0ca1c0…0ca1e0 6f 6e 20 61 64 64 72 65 73 73 0d 0a 09 6d 6f 76 09 61 2c 6d 09 3b 67 65 74 20 69 74 20 74 6f 20 ┆on address mov a,m ;get it to ┆ 0x0ca1e0…0ca200 61 63 63 75 6d 75 6c 61 74 6f 72 20 66 6f 72 20 6d 61 73 6b 69 6e 67 0d 0a 09 61 6e 69 09 31 31 ┆accumulator for masking ani 11┆ 0x0ca200…0ca220 (53, 1, 13) 6e 74 63 09 65 71 75 09 30 66 63 68 09 3b 69 6e 74 65 72 72 75 70 74 20 6d 61 73 6b 20 70 6f 72 ┆ntc equ 0fch ;interrupt mask por┆ 0x0ca220…0ca240 74 0d 0a 69 63 6f 6e 09 65 71 75 09 30 66 33 68 09 3b 69 6e 74 65 72 72 75 70 74 20 63 6f 6e 74 ┆t icon equ 0f3h ;interrupt cont┆ 0x0ca240…0ca260 72 6f 6c 20 70 6f 72 74 0d 0a 69 6e 74 65 09 65 71 75 09 30 31 31 31 24 31 31 31 30 62 09 3b 65 ┆rol port inte equ 0111$1110b ;e┆ 0x0ca260…0ca280 6e 61 62 6c 65 20 72 73 74 20 30 28 77 61 72 6d 20 62 6f 6f 74 29 2c 20 72 73 74 20 37 20 28 6d ┆nable rst 0(warm boot), rst 7 (m┆ 0x0ca280…0ca2a0 6f 6e 69 74 6f 72 29 0d 0a 3b 0d 0a 3b 09 6d 64 73 20 6d 6f 6e 69 74 6f 72 20 65 71 75 61 74 65 ┆onitor) ; ; mds monitor equate┆ 0x0ca2a0…0ca2c0 73 0d 0a 6d 6f 6e 38 30 09 65 71 75 09 30 66 38 30 30 68 09 3b 6d 64 73 20 6d 6f 6e 69 74 6f 72 ┆s mon80 equ 0f800h ;mds monitor┆ 0x0ca2c0…0ca2e0 0d 0a 72 6d 6f 6e 38 30 09 65 71 75 09 30 66 66 30 66 68 09 3b 72 65 73 74 61 72 74 20 6d 6f 6e ┆ rmon80 equ 0ff0fh ;restart mon┆ 0x0ca2e0…0ca300 38 30 20 28 62 6f 6f 74 20 65 72 72 6f 72 29 0d 0a 63 69 09 65 71 75 09 30 66 38 30 33 68 09 3b ┆80 (boot error) ci equ 0f803h ;┆ 0x0ca300…0ca320 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 72 65 67 2d 61 0d 0a 72 69 09 65 ┆console character to reg-a ri e┆ 0x0ca320…0ca340 71 75 09 30 66 38 30 36 68 09 3b 72 65 61 64 65 72 20 69 6e 20 74 6f 20 72 65 67 2d 61 0d 0a 63 ┆qu 0f806h ;reader in to reg-a c┆ 0x0ca340…0ca360 6f 09 65 71 75 09 30 66 38 30 39 68 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 20 66 72 6f 6d 20 ┆o equ 0f809h ;console char from ┆ 0x0ca360…0ca380 63 20 74 6f 20 63 6f 6e 73 6f 6c 65 20 6f 75 74 0d 0a 70 6f 09 65 71 75 09 30 66 38 30 63 68 09 ┆c to console out po equ 0f80ch ┆ 0x0ca380…0ca3a0 3b 70 75 6e 63 68 20 63 68 61 72 20 66 72 6f 6d 20 63 20 74 6f 20 70 75 6e 63 68 20 64 65 76 69 ┆;punch char from c to punch devi┆ 0x0ca3a0…0ca3c0 63 65 0d 0a 6c 6f 09 65 71 75 09 30 66 38 30 66 68 09 3b 6c 69 73 74 20 66 72 6f 6d 20 63 20 74 ┆ce lo equ 0f80fh ;list from c t┆ 0x0ca3c0…0ca3e0 6f 20 6c 69 73 74 20 64 65 76 69 63 65 0d 0a 63 73 74 73 09 65 71 75 09 30 66 38 31 32 68 09 3b ┆o list device csts equ 0f812h ;┆ 0x0ca3e0…0ca400 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 20 30 30 2f 66 66 20 74 6f 20 72 65 67 69 73 74 65 72 ┆console status 00/ff to register┆ 0x0ca400…0ca420 (53, 1, 14) 3b 72 65 61 64 20 6e 65 78 74 20 73 65 63 74 6f 72 0d 0a 09 70 75 73 68 09 62 09 3b 73 61 76 65 ┆;read next sector push b ;save┆ 0x0ca420…0ca440 20 73 65 63 74 6f 72 20 63 6f 75 6e 74 0d 0a 09 63 61 6c 6c 09 72 65 61 64 0d 0a 09 6a 6e 7a 09 ┆ sector count call read jnz ┆ 0x0ca440…0ca460 62 6f 6f 74 65 72 72 09 3b 72 65 74 72 79 20 69 66 20 65 72 72 6f 72 73 20 6f 63 63 75 72 0d 0a ┆booterr ;retry if errors occur ┆ 0x0ca460…0ca480 09 6c 68 6c 64 09 69 6f 64 09 3b 69 6e 63 72 65 6d 65 6e 74 20 64 6d 61 20 61 64 64 72 65 73 73 ┆ lhld iod ;increment dma address┆ 0x0ca480…0ca4a0 0d 0a 09 6c 78 69 09 64 2c 31 32 38 09 3b 73 65 63 74 6f 72 20 73 69 7a 65 0d 0a 09 64 61 64 09 ┆ lxi d,128 ;sector size dad ┆ 0x0ca4a0…0ca4c0 64 09 3b 69 6e 63 72 65 6d 65 6e 74 65 64 20 64 6d 61 20 61 64 64 72 65 73 73 20 69 6e 20 68 6c ┆d ;incremented dma address in hl┆ 0x0ca4c0…0ca4e0 0d 0a 09 6d 6f 76 09 62 2c 68 0d 0a 09 6d 6f 76 09 63 2c 6c 09 3b 72 65 61 64 79 20 66 6f 72 20 ┆ mov b,h mov c,l ;ready for ┆ 0x0ca4e0…0ca500 63 61 6c 6c 20 74 6f 20 73 65 74 20 64 6d 61 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 09 ┆call to set dma call setdma ┆ 0x0ca500…0ca520 6c 64 61 09 69 6f 73 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 6a 75 73 74 20 72 65 61 64 ┆lda ios ;sector number just read┆ 0x0ca520…0ca540 0d 0a 09 63 70 69 09 32 36 09 3b 72 65 61 64 20 6c 61 73 74 20 73 65 63 74 6f 72 3f 0d 0a 09 6a ┆ cpi 26 ;read last sector? j┆ 0x0ca540…0ca560 63 09 72 64 31 0d 0a 3b 09 6d 75 73 74 20 62 65 20 73 65 63 74 6f 72 20 32 36 2c 20 7a 65 72 6f ┆c rd1 ; must be sector 26, zero┆ 0x0ca560…0ca580 20 61 6e 64 20 67 6f 20 74 6f 20 6e 65 78 74 20 74 72 61 63 6b 0d 0a 09 6c 64 61 09 69 6f 74 09 ┆ and go to next track lda iot ┆ 0x0ca580…0ca5a0 3b 67 65 74 20 74 72 61 63 6b 20 74 6f 20 72 65 67 69 73 74 65 72 20 61 0d 0a 09 69 6e 72 09 61 ┆;get track to register a inr a┆ 0x0ca5a0…0ca5c0 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 0d 0a 09 63 61 6c ┆ mov c,a ;ready for call cal┆ 0x0ca5c0…0ca5e0 6c 09 73 65 74 74 72 6b 0d 0a 09 78 72 61 09 61 09 3b 63 6c 65 61 72 20 73 65 63 74 6f 72 20 6e ┆l settrk xra a ;clear sector n┆ 0x0ca5e0…0ca600 75 6d 62 65 72 0d 0a 72 64 31 3a 09 69 6e 72 09 61 09 3b 74 6f 20 6e 65 78 74 20 73 65 63 74 6f ┆umber rd1: inr a ;to next secto┆ 0x0ca600…0ca620 (53, 1, 15) 75 6e 63 68 20 64 65 76 69 63 65 20 6f 75 74 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 ┆unch device out ; (exactly the ┆ 0x0ca620…0ca640 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 70 6f 0d 0a 3b 0d 0a 72 ┆same as mds call) jmp po ; r┆ 0x0ca640…0ca660 65 61 64 65 72 3a 09 3b 72 65 61 64 65 72 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 74 6f 20 72 ┆eader: ;reader character in to r┆ 0x0ca660…0ca680 65 67 2d 61 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 ┆eg-a ; (exactly the same as mds┆ 0x0ca680…0ca6a0 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 72 69 0d 0a 3b 0d 0a 68 6f 6d 65 3a 09 3b 6d 6f 76 65 20 ┆ call) jmp ri ; home: ;move ┆ 0x0ca6a0…0ca6c0 74 6f 20 68 6f 6d 65 20 70 6f 73 69 74 69 6f 6e 0d 0a 3b 09 74 72 65 61 74 20 61 73 20 74 72 61 ┆to home position ; treat as tra┆ 0x0ca6c0…0ca6e0 63 6b 20 30 30 20 73 65 65 6b 0d 0a 09 6d 76 69 09 63 2c 30 0d 0a 09 6a 6d 70 09 73 65 74 74 72 ┆ck 00 seek mvi c,0 jmp settr┆ 0x0ca6e0…0ca700 6b 0d 0a 3b 0d 0a 73 65 6c 64 73 6b 3a 09 3b 73 65 6c 65 63 74 20 64 69 73 6b 20 67 69 76 65 6e ┆k ; seldsk: ;select disk given┆ 0x0ca700…0ca720 20 62 79 20 72 65 67 69 73 74 65 72 20 63 0d 0a 09 6c 78 69 09 68 2c 30 30 30 30 68 09 3b 72 65 ┆ by register c lxi h,0000h ;re┆ 0x0ca720…0ca740 74 75 72 6e 20 30 30 30 30 20 69 66 20 65 72 72 6f 72 0d 0a 09 6d 6f 76 09 61 2c 63 0d 0a 09 63 ┆turn 0000 if error mov a,c c┆ 0x0ca740…0ca760 70 69 09 6e 64 69 73 6b 73 09 3b 74 6f 6f 20 6c 61 72 67 65 3f 0d 0a 09 72 6e 63 09 09 3b 6c 65 ┆pi ndisks ;too large? rnc ;le┆ 0x0ca760…0ca780 61 76 65 20 48 4c 20 3d 20 30 30 30 30 0d 0a 3b 0d 0a 09 61 6e 69 09 31 30 62 09 3b 30 30 20 30 ┆ave HL = 0000 ; ani 10b ;00 0┆ 0x0ca780…0ca7a0 30 20 66 6f 72 20 64 72 69 76 65 20 30 2c 31 20 61 6e 64 20 31 30 20 31 30 20 66 6f 72 20 64 72 ┆0 for drive 0,1 and 10 10 for dr┆ 0x0ca7a0…0ca7c0 69 76 65 20 32 2c 33 0d 0a 09 73 74 61 09 64 62 61 6e 6b 09 3b 74 6f 20 73 65 6c 65 63 74 20 64 ┆ive 2,3 sta dbank ;to select d┆ 0x0ca7c0…0ca7e0 72 69 76 65 20 62 61 6e 6b 0d 0a 09 6d 6f 76 09 61 2c 63 09 3b 30 30 2c 20 30 31 2c 20 31 30 2c ┆rive bank mov a,c ;00, 01, 10,┆ 0x0ca7e0…0ca800 20 31 31 0d 0a 09 61 6e 69 09 31 62 09 3b 6d 64 73 20 68 61 73 20 30 2c 31 20 61 74 20 37 38 2c ┆ 11 ani 1b ;mds has 0,1 at 78,┆ 0x0ca800…0ca820 (54, 0, 1) 31 31 31 30 30 30 62 09 3b 72 65 6d 6f 76 65 20 70 72 65 76 69 6f 75 73 20 63 6f 6d 6d 61 6e 64 ┆111000b ;remove previous command┆ 0x0ca820…0ca840 0d 0a 09 6f 72 61 09 63 09 3b 73 65 74 20 74 6f 20 6e 65 77 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6d ┆ ora c ;set to new command m┆ 0x0ca840…0ca860 6f 76 09 6d 2c 61 09 3b 72 65 70 6c 61 63 65 64 20 69 6e 20 69 6f 70 62 0d 0a 3b 09 74 68 65 20 ┆ov m,a ;replaced in iopb ; the ┆ 0x0ca860…0ca880 6d 64 73 2d 38 30 30 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 72 65 71 75 69 72 65 73 20 64 69 73 6b ┆mds-800 controller requires disk┆ 0x0ca880…0ca8a0 20 62 61 6e 6b 20 62 69 74 20 69 6e 20 73 65 63 74 6f 72 20 62 79 74 65 0d 0a 3b 09 6d 61 73 6b ┆ bank bit in sector byte ; mask┆ 0x0ca8a0…0ca8c0 20 74 68 65 20 62 69 74 20 66 72 6f 6d 20 74 68 65 20 63 75 72 72 65 6e 74 20 69 2f 6f 20 66 75 ┆ the bit from the current i/o fu┆ 0x0ca8c0…0ca8e0 6e 63 74 69 6f 6e 0d 0a 09 61 6e 69 09 30 30 31 30 30 30 30 30 62 09 3b 6d 61 73 6b 20 74 68 65 ┆nction ani 00100000b ;mask the┆ 0x0ca8e0…0ca900 20 64 69 73 6b 20 73 65 6c 65 63 74 20 62 69 74 0d 0a 09 6c 78 69 09 68 2c 69 6f 73 09 09 3b 61 ┆ disk select bit lxi h,ios ;a┆ 0x0ca900…0ca920 64 64 72 65 73 73 20 74 68 65 20 73 65 63 74 6f 72 20 73 65 6c 65 63 74 20 62 79 74 65 0d 0a 09 ┆ddress the sector select byte ┆ 0x0ca920…0ca940 6f 72 61 09 6d 09 09 3b 73 65 6c 65 63 74 20 70 72 6f 70 65 72 20 64 69 73 6b 20 62 61 6e 6b 0d ┆ora m ;select proper disk bank ┆ 0x0ca940…0ca960 0a 09 6d 6f 76 09 6d 2c 61 09 09 3b 73 65 74 20 64 69 73 6b 20 73 65 6c 65 63 74 20 62 69 74 20 ┆ mov m,a ;set disk select bit ┆ 0x0ca960…0ca980 6f 6e 2f 6f 66 66 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 77 61 69 74 69 6f 3a 0d 0a 09 6d 76 69 09 63 ┆on/off ret ; waitio: mvi c┆ 0x0ca980…0ca9a0 2c 72 65 74 72 79 09 3b 6d 61 78 20 72 65 74 72 69 65 73 20 62 65 66 6f 72 65 20 70 65 72 6d 20 ┆,retry ;max retries before perm ┆ 0x0ca9a0…0ca9c0 65 72 72 6f 72 0d 0a 72 65 77 61 69 74 3a 0d 0a 3b 09 73 74 61 72 74 20 74 68 65 20 69 2f 6f 20 ┆error rewait: ; start the i/o ┆ 0x0ca9c0…0ca9e0 66 75 6e 63 74 69 6f 6e 20 61 6e 64 20 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 69 6f 6e ┆function and wait for completion┆ 0x0ca9e0…0caa00 0d 0a 09 63 61 6c 6c 09 69 6e 74 79 70 65 09 3b 69 6e 20 72 74 79 70 65 0d 0a 09 63 61 6c 6c 09 ┆ call intype ;in rtype call ┆ 0x0caa00…0caa20 (54, 0, 2) 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 37 09 2d 20 6e 6f 74 ┆hardware malfunction) ; 7 - not┆ 0x0caa20…0caa40 20 72 65 61 64 79 0d 0a 3b 09 28 61 63 63 75 6d 75 6c 61 74 6f 72 20 62 69 74 73 20 61 72 65 20 ┆ ready ; (accumulator bits are ┆ 0x0caa40…0caa60 6e 75 6d 62 65 72 65 64 20 37 20 36 20 35 20 34 20 33 20 32 20 31 20 30 29 0d 0a 3b 0d 0a 3b 09 ┆numbered 7 6 5 4 3 2 1 0) ; ; ┆ 0x0caa60…0caa80 69 74 20 6d 61 79 20 62 65 20 75 73 65 66 75 6c 20 74 6f 20 66 69 6c 74 65 72 20 6f 75 74 20 74 ┆it may be useful to filter out t┆ 0x0caa80…0caaa0 68 65 20 76 61 72 69 6f 75 73 20 63 6f 6e 64 69 74 69 6f 6e 73 2c 0d 0a 3b 09 62 75 74 20 77 65 ┆he various conditions, ; but we┆ 0x0caaa0…0caac0 20 77 69 6c 6c 20 67 65 74 20 61 20 70 65 72 6d 61 6e 65 6e 74 20 65 72 72 6f 72 20 6d 65 73 73 ┆ will get a permanent error mess┆ 0x0caac0…0caae0 61 67 65 20 69 66 20 69 74 20 69 73 20 6e 6f 74 0d 0a 3b 09 72 65 63 6f 76 65 72 61 62 6c 65 2e ┆age if it is not ; recoverable.┆ 0x0caae0…0cab00 20 20 69 6e 20 61 6e 79 20 63 61 73 65 2c 20 74 68 65 20 6e 6f 74 20 72 65 61 64 79 20 63 6f 6e ┆ in any case, the not ready con┆ 0x0cab00…0cab20 64 69 74 69 6f 6e 20 69 73 0d 0a 3b 09 74 72 65 61 74 65 64 20 61 73 20 61 20 73 65 70 61 72 61 ┆dition is ; treated as a separa┆ 0x0cab20…0cab40 74 65 20 63 6f 6e 64 69 74 69 6f 6e 20 66 6f 72 20 6c 61 74 65 72 20 69 6d 70 72 6f 76 65 6d 65 ┆te condition for later improveme┆ 0x0cab40…0cab60 6e 74 0d 0a 74 72 79 63 6f 75 6e 74 3a 0d 0a 3b 09 72 65 67 69 73 74 65 72 20 63 20 63 6f 6e 74 ┆nt trycount: ; register c cont┆ 0x0cab60…0cab80 61 69 6e 73 20 72 65 74 72 79 20 63 6f 75 6e 74 2c 20 64 65 63 72 65 6d 65 6e 74 20 27 74 69 6c ┆ains retry count, decrement 'til┆ 0x0cab80…0caba0 20 7a 65 72 6f 0d 0a 09 64 63 72 09 63 0d 0a 09 6a 6e 7a 09 72 65 77 61 69 74 09 3b 66 6f 72 20 ┆ zero dcr c jnz rewait ;for ┆ 0x0caba0…0cabc0 61 6e 6f 74 68 65 72 20 74 72 79 0d 0a 3b 0d 0a 3b 09 63 61 6e 6e 6f 74 20 72 65 63 6f 76 65 72 ┆another try ; ; cannot recover┆ 0x0cabc0…0cabe0 20 66 72 6f 6d 20 65 72 72 6f 72 0d 0a 09 6d 76 69 09 61 2c 31 09 3b 65 72 72 6f 72 20 63 6f 64 ┆ from error mvi a,1 ;error cod┆ 0x0cabe0…0cac00 65 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 09 69 6e 74 79 70 65 2c 20 69 6e 62 79 74 65 2c 20 69 6e ┆e ret ; ; intype, inbyte, in┆ 0x0cac00…0cac20 (54, 0, 3) 71 75 09 30 30 38 30 68 09 3b 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 ┆qu 0080h ;default buffer address┆ 0x0cac20…0cac40 0d 0a 72 65 74 72 79 09 65 71 75 09 31 30 09 3b 6d 61 78 20 72 65 74 72 69 65 73 20 6f 6e 20 64 ┆ retry equ 10 ;max retries on d┆ 0x0cac40…0cac60 69 73 6b 20 69 2f 6f 20 62 65 66 6f 72 65 20 65 72 72 6f 72 0d 0a 3b 0d 0a 3b 09 70 65 72 66 6f ┆isk i/o before error ; ; perfo┆ 0x0cac60…0cac80 72 6d 20 66 6f 6c 6c 6f 77 69 6e 67 20 66 75 6e 63 74 69 6f 6e 73 0d 0a 3b 09 62 6f 6f 74 09 63 ┆rm following functions ; boot c┆ 0x0cac80…0caca0 6f 6c 64 20 73 74 61 72 74 0d 0a 3b 09 77 62 6f 6f 74 09 77 61 72 6d 20 73 74 61 72 74 20 28 73 ┆old start ; wboot warm start (s┆ 0x0caca0…0cacc0 61 76 65 20 69 2f 6f 20 62 79 74 65 29 0d 0a 3b 09 28 62 6f 6f 74 20 61 6e 64 20 77 62 6f 6f 74 ┆ave i/o byte) ; (boot and wboot┆ 0x0cacc0…0cace0 20 61 72 65 20 74 68 65 20 73 61 6d 65 20 66 6f 72 20 6d 64 73 29 0d 0a 3b 09 63 6f 6e 73 74 09 ┆ are the same for mds) ; const ┆ 0x0cace0…0cad00 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 0d 0a 3b 09 09 72 65 67 2d 61 20 3d 20 30 30 20 69 66 ┆console status ; reg-a = 00 if┆ 0x0cad00…0cad20 20 6e 6f 20 63 68 61 72 61 63 74 65 72 20 72 65 61 64 79 0d 0a 3b 09 09 72 65 67 2d 61 20 3d 20 ┆ no character ready ; reg-a = ┆ 0x0cad20…0cad40 66 66 20 69 66 20 63 68 61 72 61 63 74 65 72 20 72 65 61 64 79 0d 0a 3b 09 63 6f 6e 69 6e 09 63 ┆ff if character ready ; conin c┆ 0x0cad40…0cad60 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 28 72 65 73 75 6c 74 20 69 6e 20 72 ┆onsole character in (result in r┆ 0x0cad60…0cad80 65 67 2d 61 29 0d 0a 3b 09 63 6f 6e 6f 75 74 09 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 ┆eg-a) ; conout console characte┆ 0x0cad80…0cada0 72 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 6c 69 73 74 09 6c 69 ┆r out (char in reg-c) ; list li┆ 0x0cada0…0cadc0 73 74 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 70 75 6e 63 68 09 ┆st out (char in reg-c) ; punch ┆ 0x0cadc0…0cade0 70 75 6e 63 68 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 72 65 61 ┆punch out (char in reg-c) ; rea┆ 0x0cade0…0cae00 64 65 72 09 70 61 70 65 72 20 74 61 70 65 20 72 65 61 64 65 72 20 69 6e 20 28 72 65 73 75 6c 74 ┆der paper tape reader in (result┆ 0x0cae00…0cae20 (54, 0, 4) 30 62 09 3b 65 6e 61 62 6c 65 20 72 73 74 20 30 28 77 61 72 6d 20 62 6f 6f 74 29 2c 20 72 73 74 ┆0b ;enable rst 0(warm boot), rst┆ 0x0cae20…0cae40 20 37 20 28 6d 6f 6e 69 74 6f 72 29 0d 0a 3b 0d 0a 3b 09 6d 64 73 20 6d 6f 6e 69 74 6f 72 20 65 ┆ 7 (monitor) ; ; mds monitor e┆ 0x0cae40…0cae60 71 75 61 74 65 73 0d 0a 6d 6f 6e 38 30 09 65 71 75 09 30 66 38 30 30 68 09 3b 6d 64 73 20 6d 6f ┆quates mon80 equ 0f800h ;mds mo┆ 0x0cae60…0cae80 6e 69 74 6f 72 0d 0a 72 6d 6f 6e 38 30 09 65 71 75 09 30 66 66 30 66 68 09 3b 72 65 73 74 61 72 ┆nitor rmon80 equ 0ff0fh ;restar┆ 0x0cae80…0caea0 74 20 6d 6f 6e 38 30 20 28 62 6f 6f 74 20 65 72 72 6f 72 29 0d 0a 63 69 09 65 71 75 09 30 66 38 ┆t mon80 (boot error) ci equ 0f8┆ 0x0caea0…0caec0 30 33 68 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 72 65 67 2d 61 0d ┆03h ;console character to reg-a ┆ 0x0caec0…0caee0 0a 72 69 09 65 71 75 09 30 66 38 30 36 68 09 3b 72 65 61 64 65 72 20 69 6e 20 74 6f 20 72 65 67 ┆ ri equ 0f806h ;reader in to reg┆ 0x0caee0…0caf00 2d 61 0d 0a 63 6f 09 65 71 75 09 30 66 38 30 39 68 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 20 ┆-a co equ 0f809h ;console char ┆ 0x0caf00…0caf20 66 72 6f 6d 20 63 20 74 6f 20 63 6f 6e 73 6f 6c 65 20 6f 75 74 0d 0a 70 6f 09 65 71 75 09 30 66 ┆from c to console out po equ 0f┆ 0x0caf20…0caf40 38 30 63 68 09 3b 70 75 6e 63 68 20 63 68 61 72 20 66 72 6f 6d 20 63 20 74 6f 20 70 75 6e 63 68 ┆80ch ;punch char from c to punch┆ 0x0caf40…0caf60 20 64 65 76 69 63 65 0d 0a 6c 6f 09 65 71 75 09 30 66 38 30 66 68 09 3b 6c 69 73 74 20 66 72 6f ┆ device lo equ 0f80fh ;list fro┆ 0x0caf60…0caf80 6d 20 63 20 74 6f 20 6c 69 73 74 20 64 65 76 69 63 65 0d 0a 63 73 74 73 09 65 71 75 09 30 66 38 ┆m c to list device csts equ 0f8┆ 0x0caf80…0cafa0 31 32 68 09 3b 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 20 30 30 2f 66 66 20 74 6f 20 72 65 67 ┆12h ;console status 00/ff to reg┆ 0x0cafa0…0cafc0 69 73 74 65 72 20 61 0d 0a 3b 0d 0a 3b 09 64 69 73 6b 20 70 6f 72 74 73 20 61 6e 64 20 63 6f 6d ┆ister a ; ; disk ports and com┆ 0x0cafc0…0cafe0 6d 61 6e 64 73 0d 0a 62 61 73 65 09 65 71 75 09 37 38 68 09 3b 62 61 73 65 20 6f 66 20 64 69 73 ┆mands base equ 78h ;base of dis┆ 0x0cafe0…0cb000 6b 20 63 6f 6d 6d 61 6e 64 20 69 6f 20 70 6f 72 74 73 0d 0a 64 73 74 61 74 09 65 71 75 09 62 61 ┆k command io ports dstat equ ba┆ 0x0cb000…0cb020 (54, 0, 5) 69 6e 62 79 74 65 09 3b 63 6c 65 61 72 73 20 74 68 65 20 63 6f 6e 74 72 6f 6c 6c 65 72 0d 0a 3b ┆inbyte ;clears the controller ;┆ 0x0cb020…0cb040 0d 0a 09 6c 64 61 09 64 62 61 6e 6b 09 09 3b 73 65 74 20 62 61 6e 6b 20 66 6c 61 67 73 0d 0a 09 ┆ lda dbank ;set bank flags ┆ 0x0cb040…0cb060 6f 72 61 09 61 09 09 3b 7a 65 72 6f 20 69 66 20 64 72 69 76 65 20 30 2c 31 20 61 6e 64 20 6e 7a ┆ora a ;zero if drive 0,1 and nz┆ 0x0cb060…0cb080 20 69 66 20 32 2c 33 0d 0a 09 6d 76 69 09 61 2c 69 6f 70 62 20 61 6e 64 20 30 66 66 68 09 3b 6c ┆ if 2,3 mvi a,iopb and 0ffh ;l┆ 0x0cb080…0cb0a0 6f 77 20 61 64 64 72 65 73 73 20 66 6f 72 20 69 6f 70 62 0d 0a 09 6d 76 69 09 62 2c 69 6f 70 62 ┆ow address for iopb mvi b,iopb┆ 0x0cb0a0…0cb0c0 20 73 68 72 20 38 09 3b 68 69 67 68 20 61 64 64 72 65 73 73 20 66 6f 72 20 69 6f 70 62 0d 0a 09 ┆ shr 8 ;high address for iopb ┆ 0x0cb0c0…0cb0e0 6a 6e 7a 09 69 6f 64 72 31 09 3b 64 72 69 76 65 20 62 61 6e 6b 20 31 3f 0d 0a 09 6f 75 74 09 69 ┆jnz iodr1 ;drive bank 1? out i┆ 0x0cb0e0…0cb100 6c 6f 77 09 09 3b 6c 6f 77 20 61 64 64 72 65 73 73 20 74 6f 20 63 6f 6e 74 72 6f 6c 6c 65 72 0d ┆low ;low address to controller ┆ 0x0cb100…0cb120 0a 09 6d 6f 76 09 61 2c 62 0d 0a 09 6f 75 74 09 69 68 69 67 68 09 3b 68 69 67 68 20 61 64 64 72 ┆ mov a,b out ihigh ;high addr┆ 0x0cb120…0cb140 65 73 73 0d 0a 09 6a 6d 70 09 77 61 69 74 30 09 09 3b 74 6f 20 77 61 69 74 20 66 6f 72 20 63 6f ┆ess jmp wait0 ;to wait for co┆ 0x0cb140…0cb160 6d 70 6c 65 74 65 0d 0a 3b 0d 0a 69 6f 64 72 31 3a 09 3b 64 72 69 76 65 20 62 61 6e 6b 20 31 0d ┆mplete ; iodr1: ;drive bank 1 ┆ 0x0cb160…0cb180 0a 09 6f 75 74 09 69 6c 6f 77 2b 31 30 68 09 3b 38 38 20 66 6f 72 20 64 72 69 76 65 20 62 61 6e ┆ out ilow+10h ;88 for drive ban┆ 0x0cb180…0cb1a0 6b 20 31 30 0d 0a 09 6d 6f 76 09 61 2c 62 0d 0a 09 6f 75 74 09 69 68 69 67 68 2b 31 30 68 0d 0a ┆k 10 mov a,b out ihigh+10h ┆ 0x0cb1a0…0cb1c0 3b 0d 0a 77 61 69 74 30 3a 09 63 61 6c 6c 09 69 6e 73 74 61 74 09 09 3b 77 61 69 74 20 66 6f 72 ┆; wait0: call instat ;wait for┆ 0x0cb1c0…0cb1e0 20 63 6f 6d 70 6c 65 74 69 6f 6e 0d 0a 09 61 6e 69 09 69 6f 72 64 79 09 09 3b 72 65 61 64 79 3f ┆ completion ani iordy ;ready?┆ 0x0cb1e0…0cb200 0d 0a 09 6a 7a 09 77 61 69 74 30 0d 0a 3b 0d 0a 3b 09 63 68 65 63 6b 20 69 6f 20 63 6f 6d 70 6c ┆ jz wait0 ; ; check io compl┆ 0x0cb200…0cb220 (54, 0, 6) 73 74 61 74 20 72 65 61 64 20 64 72 69 76 65 20 62 61 6e 6b 20 30 30 20 6f 72 20 31 30 0d 0a 69 ┆stat read drive bank 00 or 10 i┆ 0x0cb220…0cb240 6e 74 79 70 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 ┆ntype: lda dbank ora a jnz i┆ 0x0cb240…0cb260 6e 74 79 70 31 09 3b 73 6b 69 70 20 74 6f 20 62 61 6e 6b 20 31 30 0d 0a 09 69 6e 09 72 74 79 70 ┆ntyp1 ;skip to bank 10 in rtyp┆ 0x0cb260…0cb280 65 0d 0a 09 72 65 74 0d 0a 69 6e 74 79 70 31 3a 09 69 6e 09 72 74 79 70 65 2b 31 30 68 09 3b 37 ┆e ret intyp1: in rtype+10h ;7┆ 0x0cb280…0cb2a0 38 20 66 6f 72 20 30 2c 31 20 20 38 38 20 66 6f 72 20 32 2c 33 0d 0a 09 72 65 74 0d 0a 3b 0d 0a ┆8 for 0,1 88 for 2,3 ret ; ┆ 0x0cb2a0…0cb2c0 69 6e 62 79 74 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 ┆inbyte: lda dbank ora a jnz ┆ 0x0cb2c0…0cb2e0 69 6e 62 79 74 31 0d 0a 09 69 6e 09 72 62 79 74 65 0d 0a 09 72 65 74 0d 0a 69 6e 62 79 74 31 3a ┆inbyt1 in rbyte ret inbyt1:┆ 0x0cb2e0…0cb300 09 69 6e 09 72 62 79 74 65 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 69 6e 73 74 61 74 3a 09 ┆ in rbyte+10h ret ; instat: ┆ 0x0cb300…0cb320 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 73 74 61 31 0d 0a ┆lda dbank ora a jnz insta1 ┆ 0x0cb320…0cb340 09 69 6e 09 64 73 74 61 74 0d 0a 09 72 65 74 0d 0a 69 6e 73 74 61 31 3a 09 69 6e 09 64 73 74 61 ┆ in dstat ret insta1: in dsta┆ 0x0cb340…0cb360 74 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 61 74 61 20 61 72 65 ┆t+10h ret ; ; ; ; data are┆ 0x0cb360…0cb380 61 73 20 28 6d 75 73 74 20 62 65 20 69 6e 20 72 61 6d 29 0d 0a 64 62 61 6e 6b 3a 09 64 62 09 30 ┆as (must be in ram) dbank: db 0┆ 0x0cb380…0cb3a0 09 3b 64 69 73 6b 20 62 61 6e 6b 20 30 30 20 69 66 20 64 72 69 76 65 20 30 2c 31 0d 0a 09 09 09 ┆ ;disk bank 00 if drive 0,1 ┆ 0x0cb3a0…0cb3c0 3b 09 20 20 20 31 30 20 69 66 20 64 72 69 76 65 20 32 2c 33 0d 0a 69 6f 70 62 3a 09 3b 69 6f 20 ┆; 10 if drive 2,3 iopb: ;io ┆ 0x0cb3c0…0cb3e0 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 0d 0a 09 64 62 09 38 30 68 09 3b 6e 6f 72 6d 61 6c ┆parameter block db 80h ;normal┆ 0x0cb3e0…0cb400 20 69 2f 6f 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 69 6f 66 3a 09 64 62 09 72 65 61 64 66 09 3b 69 ┆ i/o operation iof: db readf ;i┆ 0x0cb400…0cb420 (54, 0, 7) 20 74 6f 20 72 65 67 2d 61 29 0d 0a 3b 09 68 6f 6d 65 09 6d 6f 76 65 20 74 6f 20 74 72 61 63 6b ┆ to reg-a) ; home move to track┆ 0x0cb420…0cb440 20 30 30 0d 0a 3b 0d 0a 3b 09 28 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 61 6c 6c 73 20 73 ┆ 00 ; ; (the following calls s┆ 0x0cb440…0cb460 65 74 2d 75 70 20 74 68 65 20 69 6f 20 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 20 66 6f 72 ┆et-up the io parameter block for┆ 0x0cb460…0cb480 20 74 68 65 0d 0a 3b 09 6d 64 73 2c 20 77 68 69 63 68 20 69 73 20 75 73 65 64 20 74 6f 20 70 65 ┆ the ; mds, which is used to pe┆ 0x0cb480…0cb4a0 72 66 6f 72 6d 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 73 20 61 6e 64 20 77 72 69 74 65 ┆rform subsequent reads and write┆ 0x0cb4a0…0cb4c0 73 29 0d 0a 3b 09 73 65 6c 64 73 6b 09 73 65 6c 65 63 74 20 64 69 73 6b 20 67 69 76 65 6e 20 62 ┆s) ; seldsk select disk given b┆ 0x0cb4c0…0cb4e0 79 20 72 65 67 2d 63 20 28 30 2c 31 2c 32 2e 2e 2e 29 0d 0a 3b 09 73 65 74 74 72 6b 09 73 65 74 ┆y reg-c (0,1,2...) ; settrk set┆ 0x0cb4e0…0cb500 20 74 72 61 63 6b 20 61 64 64 72 65 73 73 20 28 30 2c 2e 2e 2e 37 36 29 20 66 6f 72 20 73 75 62 ┆ track address (0,...76) for sub┆ 0x0cb500…0cb520 73 65 71 75 65 6e 74 20 72 65 61 64 2f 77 72 69 74 65 0d 0a 3b 09 73 65 74 73 65 63 09 73 65 74 ┆sequent read/write ; setsec set┆ 0x0cb520…0cb540 20 73 65 63 74 6f 72 20 61 64 64 72 65 73 73 20 28 31 2c 2e 2e 2e 2c 32 36 29 20 66 6f 72 20 73 ┆ sector address (1,...,26) for s┆ 0x0cb540…0cb560 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 2f 77 72 69 74 65 0d 0a 3b 09 73 65 74 64 6d 61 09 73 ┆ubsequent read/write ; setdma s┆ 0x0cb560…0cb580 65 74 20 73 75 62 73 65 71 75 65 6e 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 28 69 6e 69 74 69 ┆et subsequent dma address (initi┆ 0x0cb580…0cb5a0 61 6c 6c 79 20 38 30 68 29 0d 0a 3b 0d 0a 3b 09 28 72 65 61 64 20 61 6e 64 20 77 72 69 74 65 20 ┆ally 80h) ; ; (read and write ┆ 0x0cb5a0…0cb5c0 61 73 73 75 6d 65 20 70 72 65 76 69 6f 75 73 20 63 61 6c 6c 73 20 74 6f 20 73 65 74 20 75 70 20 ┆assume previous calls to set up ┆ 0x0cb5c0…0cb5e0 74 68 65 20 69 6f 20 70 61 72 61 6d 65 74 65 72 73 29 0d 0a 3b 09 72 65 61 64 09 72 65 61 64 20 ┆the io parameters) ; read read ┆ 0x0cb5e0…0cb600 74 72 61 63 6b 2f 73 65 63 74 6f 72 20 74 6f 20 70 72 65 73 65 74 20 64 6d 61 20 61 64 64 72 65 ┆track/sector to preset dma addre┆ 0x0cb600…0cb620 (54, 0, 8) 73 65 09 3b 64 69 73 6b 20 73 74 61 74 75 73 20 28 69 6e 70 75 74 29 0d 0a 72 74 79 70 65 09 65 ┆se ;disk status (input) rtype e┆ 0x0cb620…0cb640 71 75 09 62 61 73 65 2b 31 09 3b 72 65 73 75 6c 74 20 74 79 70 65 20 28 69 6e 70 75 74 29 0d 0a ┆qu base+1 ;result type (input) ┆ 0x0cb640…0cb660 72 62 79 74 65 09 65 71 75 09 62 61 73 65 2b 33 09 3b 72 65 73 75 6c 74 20 62 79 74 65 20 28 69 ┆rbyte equ base+3 ;result byte (i┆ 0x0cb660…0cb680 6e 70 75 74 29 0d 0a 3b 0d 0a 69 6c 6f 77 09 65 71 75 09 62 61 73 65 2b 31 09 3b 69 6f 70 62 20 ┆nput) ; ilow equ base+1 ;iopb ┆ 0x0cb680…0cb6a0 6c 6f 77 20 61 64 64 72 65 73 73 20 28 6f 75 74 70 75 74 29 0d 0a 69 68 69 67 68 09 65 71 75 09 ┆low address (output) ihigh equ ┆ 0x0cb6a0…0cb6c0 62 61 73 65 2b 32 09 3b 69 6f 70 62 20 68 69 67 68 20 61 64 64 72 65 73 73 20 28 6f 75 74 70 75 ┆base+2 ;iopb high address (outpu┆ 0x0cb6c0…0cb6e0 74 29 0d 0a 3b 0d 0a 72 65 61 64 66 09 65 71 75 09 34 68 09 3b 72 65 61 64 20 66 75 6e 63 74 69 ┆t) ; readf equ 4h ;read functi┆ 0x0cb6e0…0cb700 6f 6e 0d 0a 77 72 69 74 66 09 65 71 75 09 36 68 09 3b 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e ┆on writf equ 6h ;write function┆ 0x0cb700…0cb720 0d 0a 72 65 63 61 6c 09 65 71 75 09 33 68 09 3b 72 65 63 61 6c 69 62 72 61 74 65 20 64 72 69 76 ┆ recal equ 3h ;recalibrate driv┆ 0x0cb720…0cb740 65 0d 0a 69 6f 72 64 79 09 65 71 75 09 34 68 09 3b 69 2f 6f 20 66 69 6e 69 73 68 65 64 20 6d 61 ┆e iordy equ 4h ;i/o finished ma┆ 0x0cb740…0cb760 73 6b 0d 0a 63 72 09 65 71 75 09 30 64 68 09 3b 63 61 72 72 69 61 67 65 20 72 65 74 75 72 6e 0d ┆sk cr equ 0dh ;carriage return ┆ 0x0cb760…0cb780 0a 6c 66 09 65 71 75 09 30 61 68 09 3b 6c 69 6e 65 20 66 65 65 64 0d 0a 3b 0d 0a 73 69 67 6e 6f ┆ lf equ 0ah ;line feed ; signo┆ 0x0cb780…0cb7a0 6e 3a 09 3b 73 69 67 6e 6f 6e 20 6d 65 73 73 61 67 65 3a 20 78 78 6b 20 63 70 2f 6d 20 76 65 72 ┆n: ;signon message: xxk cp/m ver┆ 0x0cb7a0…0cb7c0 73 20 79 2e 79 0d 0a 09 64 62 09 63 72 2c 6c 66 2c 6c 66 0d 0a 09 69 66 09 74 65 73 74 0d 0a 09 ┆s y.y db cr,lf,lf if test ┆ 0x0cb7c0…0cb7e0 64 62 09 27 33 32 27 09 3b 33 32 6b 20 65 78 61 6d 70 6c 65 20 62 69 6f 73 0d 0a 09 65 6e 64 69 ┆db '32' ;32k example bios endi┆ 0x0cb7e0…0cb800 66 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 09 64 62 09 27 30 30 27 09 3b 6d 65 6d 6f 72 ┆f if not test db '00' ;memor┆ 0x0cb800…0cb820 (54, 0, 9) 65 74 69 6f 6e 20 6f 6b 0d 0a 09 63 61 6c 6c 09 69 6e 74 79 70 65 09 09 3b 6d 75 73 74 20 62 65 ┆etion ok call intype ;must be┆ 0x0cb820…0cb840 20 69 6f 20 63 6f 6d 70 6c 65 74 65 20 28 30 30 29 20 75 6e 6c 69 6e 6b 65 64 0d 0a 3b 09 30 30 ┆ io complete (00) unlinked ; 00┆ 0x0cb840…0cb860 20 75 6e 6c 69 6e 6b 65 64 20 69 2f 6f 20 63 6f 6d 70 6c 65 74 65 2c 20 20 20 20 30 31 20 6c 69 ┆ unlinked i/o complete, 01 li┆ 0x0cb860…0cb880 6e 6b 65 64 20 69 2f 6f 20 63 6f 6d 70 6c 65 74 65 20 28 6e 6f 74 20 75 73 65 64 29 0d 0a 3b 09 ┆nked i/o complete (not used) ; ┆ 0x0cb880…0cb8a0 31 30 20 64 69 73 6b 20 73 74 61 74 75 73 20 63 68 61 6e 67 65 64 20 20 20 20 20 20 20 31 31 20 ┆10 disk status changed 11 ┆ 0x0cb8a0…0cb8c0 28 6e 6f 74 20 75 73 65 64 29 0d 0a 09 63 70 69 09 31 30 62 09 09 3b 72 65 61 64 79 20 73 74 61 ┆(not used) cpi 10b ;ready sta┆ 0x0cb8c0…0cb8e0 74 75 73 20 63 68 61 6e 67 65 3f 0d 0a 09 6a 7a 09 77 72 65 61 64 79 0d 0a 3b 0d 0a 3b 09 6d 75 ┆tus change? jz wready ; ; mu┆ 0x0cb8e0…0cb900 73 74 20 62 65 20 30 30 20 69 6e 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 0d 0a 09 6f 72 ┆st be 00 in the accumulator or┆ 0x0cb900…0cb920 61 09 61 0d 0a 09 6a 6e 7a 09 77 65 72 72 6f 72 09 09 3b 73 6f 6d 65 20 6f 74 68 65 72 20 63 6f ┆a a jnz werror ;some other co┆ 0x0cb920…0cb940 6e 64 69 74 69 6f 6e 2c 20 72 65 74 72 79 0d 0a 3b 0d 0a 3b 09 63 68 65 63 6b 20 69 2f 6f 20 65 ┆ndition, retry ; ; check i/o e┆ 0x0cb940…0cb960 72 72 6f 72 20 62 69 74 73 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 0d 0a 09 72 61 6c 0d 0a 09 ┆rror bits call inbyte ral ┆ 0x0cb960…0cb980 6a 63 09 77 72 65 61 64 79 09 09 3b 75 6e 69 74 20 6e 6f 74 20 72 65 61 64 79 0d 0a 09 72 61 72 ┆jc wready ;unit not ready rar┆ 0x0cb980…0cb9a0 0d 0a 09 61 6e 69 09 31 31 31 31 31 31 31 30 62 09 3b 61 6e 79 20 6f 74 68 65 72 20 65 72 72 6f ┆ ani 11111110b ;any other erro┆ 0x0cb9a0…0cb9c0 72 73 3f 20 20 28 64 65 6c 65 74 65 64 20 64 61 74 61 20 6f 6b 29 0d 0a 09 6a 6e 7a 09 77 65 72 ┆rs? (deleted data ok) jnz wer┆ 0x0cb9c0…0cb9e0 72 6f 72 0d 0a 3b 0d 0a 3b 09 72 65 61 64 20 6f 72 20 77 72 69 74 65 20 69 73 20 6f 6b 2c 20 61 ┆ror ; ; read or write is ok, a┆ 0x0cb9e0…0cba00 63 63 75 6d 75 6c 61 74 6f 72 20 63 6f 6e 74 61 69 6e 73 20 7a 65 72 6f 0d 0a 09 72 65 74 0d 0a ┆ccumulator contains zero ret ┆ 0x0cba00…0cba20 (54, 0, 10) 6f 20 66 75 6e 63 74 69 6f 6e 2c 20 69 6e 69 74 69 61 6c 20 72 65 61 64 0d 0a 69 6f 6e 3a 09 64 ┆o function, initial read ion: d┆ 0x0cba20…0cba40 62 09 31 09 3b 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 20 74 6f 20 72 65 61 64 0d 0a ┆b 1 ;number of sectors to read ┆ 0x0cba40…0cba60 69 6f 74 3a 09 64 62 09 6f 66 66 73 65 74 09 3b 74 72 61 63 6b 20 6e 75 6d 62 65 72 0d 0a 69 6f ┆iot: db offset ;track number io┆ 0x0cba60…0cba80 73 3a 09 64 62 09 31 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 0d 0a 69 6f 64 3a 09 64 77 09 ┆s: db 1 ;sector number iod: dw ┆ 0x0cba80…0cbaa0 62 75 66 66 09 3b 69 6f 20 61 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 65 66 69 6e 65 ┆buff ;io address ; ; ; define┆ 0x0cbaa0…0cbac0 20 72 61 6d 20 61 72 65 61 73 20 66 6f 72 20 62 64 6f 73 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 09 ┆ ram areas for bdos operation ┆ 0x0cbac0…0cbae0 65 6e 64 65 66 0d 0a 09 65 6e 64 0d 0a 3b 09 4d 44 53 2d 38 30 30 20 49 2f 4f 20 44 72 69 76 65 ┆endef end ; MDS-800 I/O Drive┆ 0x0cbae0…0cbb00 72 73 20 66 6f 72 20 43 50 2f 4d 20 32 2e 32 0d 0a 3b 09 28 66 6f 75 72 20 64 72 69 76 65 20 73 ┆rs for CP/M 2.2 ; (four drive s┆ 0x0cbb00…0cbb20 69 6e 67 6c 65 20 64 65 6e 73 69 74 79 20 76 65 72 73 69 6f 6e 29 0d 0a 3b 0d 0a 3b 09 56 65 72 ┆ingle density version) ; ; Ver┆ 0x0cbb20…0cbb40 73 69 6f 6e 20 32 2e 32 20 46 65 62 72 75 61 72 79 2c 20 31 39 38 30 0d 0a 3b 0d 0a 76 65 72 73 ┆sion 2.2 February, 1980 ; vers┆ 0x0cbb40…0cbb60 09 65 71 75 09 32 32 09 3b 76 65 72 73 69 6f 6e 20 32 2e 32 0d 0a 3b 0d 0a 3b 09 43 6f 70 79 72 ┆ equ 22 ;version 2.2 ; ; Copyr┆ 0x0cbb60…0cbb80 69 67 68 74 20 28 63 29 20 31 39 38 30 0d 0a 3b 09 44 69 67 69 74 61 6c 20 52 65 73 65 61 72 63 ┆ight (c) 1980 ; Digital Researc┆ 0x0cbb80…0cbba0 68 0d 0a 3b 09 42 6f 78 20 35 37 39 2c 20 50 61 63 69 66 69 63 20 47 72 6f 76 65 0d 0a 3b 09 43 ┆h ; Box 579, Pacific Grove ; C┆ 0x0cbba0…0cbbc0 61 6c 69 66 6f 72 6e 69 61 2c 20 39 33 39 35 30 0d 0a 3b 0d 0a 3b 0d 0a 74 72 75 65 09 65 71 75 ┆alifornia, 93950 ; ; true equ┆ 0x0cbbc0…0cbbe0 09 30 66 66 66 66 68 09 3b 76 61 6c 75 65 20 6f 66 20 22 74 72 75 65 22 0d 0a 66 61 6c 73 65 09 ┆ 0ffffh ;value of "true" false ┆ 0x0cbbe0…0cbc00 65 71 75 09 6e 6f 74 20 74 72 75 65 09 3b 22 66 61 6c 73 65 22 0d 0a 74 65 73 74 09 65 71 75 09 ┆equ not true ;"false" test equ ┆ 0x0cbc00…0cbc20 (54, 0, 11) 73 73 0d 0a 3b 09 77 72 69 74 65 09 77 72 69 74 65 20 74 72 61 63 6b 2f 73 65 63 74 6f 72 20 66 ┆ss ; write write track/sector f┆ 0x0cbc20…0cbc40 72 6f 6d 20 70 72 65 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b 09 6a 75 6d ┆rom preset dma address ; ; jum┆ 0x0cbc40…0cbc60 70 20 76 65 63 74 6f 72 20 66 6f 72 20 69 6e 64 69 76 69 75 61 6c 20 72 6f 75 74 69 6e 65 73 0d ┆p vector for indiviual routines ┆ 0x0cbc60…0cbc80 0a 09 6a 6d 70 09 62 6f 6f 74 0d 0a 77 62 6f 6f 74 65 3a 09 6a 6d 70 09 77 62 6f 6f 74 0d 0a 09 ┆ jmp boot wboote: jmp wboot ┆ 0x0cbc80…0cbca0 6a 6d 70 09 63 6f 6e 73 74 0d 0a 09 6a 6d 70 09 63 6f 6e 69 6e 0d 0a 09 6a 6d 70 09 63 6f 6e 6f ┆jmp const jmp conin jmp cono┆ 0x0cbca0…0cbcc0 75 74 0d 0a 09 6a 6d 70 09 6c 69 73 74 0d 0a 09 6a 6d 70 09 70 75 6e 63 68 0d 0a 09 6a 6d 70 09 ┆ut jmp list jmp punch jmp ┆ 0x0cbcc0…0cbce0 72 65 61 64 65 72 0d 0a 09 6a 6d 70 09 68 6f 6d 65 0d 0a 09 6a 6d 70 09 73 65 6c 64 73 6b 0d 0a ┆reader jmp home jmp seldsk ┆ 0x0cbce0…0cbd00 09 6a 6d 70 09 73 65 74 74 72 6b 0d 0a 09 6a 6d 70 09 73 65 74 73 65 63 0d 0a 09 6a 6d 70 09 73 ┆ jmp settrk jmp setsec jmp s┆ 0x0cbd00…0cbd20 65 74 64 6d 61 0d 0a 09 6a 6d 70 09 72 65 61 64 0d 0a 09 6a 6d 70 09 77 72 69 74 65 0d 0a 09 6a ┆etdma jmp read jmp write j┆ 0x0cbd20…0cbd40 6d 70 09 6c 69 73 74 73 74 09 3b 6c 69 73 74 20 73 74 61 74 75 73 0d 0a 09 6a 6d 70 09 73 65 63 ┆mp listst ;list status jmp sec┆ 0x0cbd40…0cbd60 74 72 61 6e 0d 0a 3b 0d 0a 09 6d 61 63 6c 69 62 09 64 69 73 6b 64 65 66 09 3b 6c 6f 61 64 20 74 ┆tran ; maclib diskdef ;load t┆ 0x0cbd60…0cbd80 68 65 20 64 69 73 6b 20 64 65 66 69 6e 69 74 69 6f 6e 20 6c 69 62 72 61 72 79 0d 0a 09 64 69 73 ┆he disk definition library dis┆ 0x0cbd80…0cbda0 6b 73 09 34 09 3b 66 6f 75 72 20 64 69 73 6b 73 0d 0a 09 64 69 73 6b 64 65 66 09 30 2c 31 2c 32 ┆ks 4 ;four disks diskdef 0,1,2┆ 0x0cbda0…0cbdc0 36 2c 36 2c 31 30 32 34 2c 32 34 33 2c 36 34 2c 36 34 2c 6f 66 66 73 65 74 0d 0a 09 64 69 73 6b ┆6,6,1024,243,64,64,offset disk┆ 0x0cbdc0…0cbde0 64 65 66 09 31 2c 30 0d 0a 09 64 69 73 6b 64 65 66 09 32 2c 30 0d 0a 09 64 69 73 6b 64 65 66 09 ┆def 1,0 diskdef 2,0 diskdef ┆ 0x0cbde0…0cbe00 33 2c 30 0d 0a 3b 09 65 6e 64 65 66 20 6f 63 63 75 72 73 20 61 74 20 65 6e 64 20 6f 66 20 61 73 ┆3,0 ; endef occurs at end of as┆ 0x0cbe00…0cbe20 (54, 0, 12) 79 20 73 69 7a 65 20 66 69 6c 6c 65 64 20 62 79 20 72 65 6c 6f 63 61 74 6f 72 0d 0a 09 65 6e 64 ┆y size filled by relocator end┆ 0x0cbe20…0cbe40 69 66 0d 0a 09 64 62 09 27 6b 20 43 50 2f 4d 20 76 65 72 73 20 27 0d 0a 09 64 62 09 76 65 72 73 ┆if db 'k CP/M vers ' db vers┆ 0x0cbe40…0cbe60 2f 31 30 2b 27 30 27 2c 27 2e 27 2c 76 65 72 73 20 6d 6f 64 20 31 30 2b 27 30 27 0d 0a 09 64 62 ┆/10+'0','.',vers mod 10+'0' db┆ 0x0cbe60…0cbe80 09 63 72 2c 6c 66 2c 30 0d 0a 3b 0d 0a 62 6f 6f 74 3a 09 3b 70 72 69 6e 74 20 73 69 67 6e 6f 6e ┆ cr,lf,0 ; boot: ;print signon┆ 0x0cbe80…0cbea0 20 6d 65 73 73 61 67 65 20 61 6e 64 20 67 6f 20 74 6f 20 63 63 70 0d 0a 3b 09 28 6e 6f 74 65 3a ┆ message and go to ccp ; (note:┆ 0x0cbea0…0cbec0 20 6d 64 73 20 62 6f 6f 74 20 69 6e 69 74 69 61 6c 69 7a 65 64 20 69 6f 62 79 74 65 20 61 74 20 ┆ mds boot initialized iobyte at ┆ 0x0cbec0…0cbee0 30 30 30 33 68 29 0d 0a 09 6c 78 69 09 73 70 2c 62 75 66 66 2b 38 30 68 0d 0a 09 6c 78 69 09 68 ┆0003h) lxi sp,buff+80h lxi h┆ 0x0cbee0…0cbf00 2c 73 69 67 6e 6f 6e 0d 0a 09 63 61 6c 6c 09 70 72 6d 73 67 09 3b 70 72 69 6e 74 20 6d 65 73 73 ┆,signon call prmsg ;print mess┆ 0x0cbf00…0cbf20 61 67 65 0d 0a 09 78 72 61 09 61 09 3b 63 6c 65 61 72 20 61 63 63 75 6d 75 6c 61 74 6f 72 0d 0a ┆age xra a ;clear accumulator ┆ 0x0cbf20…0cbf40 09 73 74 61 09 63 64 69 73 6b 09 3b 73 65 74 20 69 6e 69 74 69 61 6c 6c 79 20 74 6f 20 64 69 73 ┆ sta cdisk ;set initially to dis┆ 0x0cbf40…0cbf60 6b 20 61 0d 0a 09 6a 6d 70 09 67 6f 63 70 6d 09 3b 67 6f 20 74 6f 20 63 70 2f 6d 0d 0a 3b 0d 0a ┆k a jmp gocpm ;go to cp/m ; ┆ 0x0cbf60…0cbf80 3b 0d 0a 77 62 6f 6f 74 3a 3b 09 6c 6f 61 64 65 72 20 6f 6e 20 74 72 61 63 6b 20 30 2c 20 73 65 ┆; wboot:; loader on track 0, se┆ 0x0cbf80…0cbfa0 63 74 6f 72 20 31 2c 20 77 68 69 63 68 20 77 69 6c 6c 20 62 65 20 73 6b 69 70 70 65 64 20 66 6f ┆ctor 1, which will be skipped fo┆ 0x0cbfa0…0cbfc0 72 20 77 61 72 6d 20 0d 0a 3b 09 72 65 61 64 20 63 70 2f 6d 20 66 72 6f 6d 20 64 69 73 6b 20 2d ┆r warm ; read cp/m from disk -┆ 0x0cbfc0…0cbfe0 20 61 73 73 75 6d 69 6e 67 20 74 68 65 72 65 20 69 73 20 61 20 31 32 38 20 62 79 74 65 20 63 6f ┆ assuming there is a 128 byte co┆ 0x0cbfe0…0cc000 6c 64 20 73 74 61 72 74 0d 0a 3b 09 73 74 61 72 74 2e 0d 0a 3b 0d 0a 09 6c 78 69 09 73 70 2c 62 ┆ld start ; start. ; lxi sp,b┆ 0x0cc000…0cc020 (54, 0, 13) 3b 0d 0a 77 72 65 61 64 79 3a 09 3b 6e 6f 74 20 72 65 61 64 79 2c 20 74 72 65 61 74 20 61 73 20 ┆; wready: ;not ready, treat as ┆ 0x0cc020…0cc040 65 72 72 6f 72 20 66 6f 72 20 6e 6f 77 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 09 09 3b 63 6c ┆error for now call inbyte ;cl┆ 0x0cc040…0cc060 65 61 72 20 72 65 73 75 6c 74 20 62 79 74 65 0d 0a 09 6a 6d 70 09 74 72 79 63 6f 75 6e 74 0d 0a ┆ear result byte jmp trycount ┆ 0x0cc060…0cc080 3b 0d 0a 77 65 72 72 6f 72 3a 09 3b 72 65 74 75 72 6e 20 68 61 72 64 77 61 72 65 20 6d 61 6c 66 ┆; werror: ;return hardware malf┆ 0x0cc080…0cc0a0 75 6e 63 74 69 6f 6e 20 28 63 72 63 2c 20 74 72 61 63 6b 2c 20 73 65 65 6b 2c 20 65 74 63 2e 29 ┆unction (crc, track, seek, etc.)┆ 0x0cc0a0…0cc0c0 0d 0a 3b 09 74 68 65 20 6d 64 73 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 68 61 73 20 72 65 74 75 72 ┆ ; the mds controller has retur┆ 0x0cc0c0…0cc0e0 6e 65 64 20 61 20 62 69 74 20 69 6e 20 65 61 63 68 20 70 6f 73 69 74 69 6f 6e 0d 0a 3b 09 6f 66 ┆ned a bit in each position ; of┆ 0x0cc0e0…0cc100 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 2c 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 ┆ the accumulator, corresponding ┆ 0x0cc100…0cc120 74 6f 20 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e 73 3a 0d 0a 3b 09 30 09 2d 20 64 65 6c 65 74 65 ┆to the conditions: ; 0 - delete┆ 0x0cc120…0cc140 64 20 64 61 74 61 20 28 61 63 63 65 70 74 65 64 20 61 73 20 6f 6b 20 61 62 6f 76 65 29 0d 0a 3b ┆d data (accepted as ok above) ;┆ 0x0cc140…0cc160 09 31 09 2d 20 63 72 63 20 65 72 72 6f 72 0d 0a 3b 09 32 09 2d 20 73 65 65 6b 20 65 72 72 6f 72 ┆ 1 - crc error ; 2 - seek error┆ 0x0cc160…0cc180 0d 0a 3b 09 33 09 2d 20 61 64 64 72 65 73 73 20 65 72 72 6f 72 20 28 68 61 72 64 77 61 72 65 20 ┆ ; 3 - address error (hardware ┆ 0x0cc180…0cc1a0 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 34 09 2d 20 64 61 74 61 20 6f 76 65 72 2f 75 6e ┆malfunction) ; 4 - data over/un┆ 0x0cc1a0…0cc1c0 64 65 72 20 66 6c 6f 77 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d ┆der flow (hardware malfunction) ┆ 0x0cc1c0…0cc1e0 0a 3b 09 35 09 2d 20 77 72 69 74 65 20 70 72 6f 74 65 63 74 20 28 74 72 65 61 74 65 64 20 61 73 ┆ ; 5 - write protect (treated as┆ 0x0cc1e0…0cc200 20 6e 6f 74 20 72 65 61 64 79 29 0d 0a 3b 09 36 09 2d 20 77 72 69 74 65 20 65 72 72 6f 72 20 28 ┆ not ready) ; 6 - write error (┆ 0x0cc200…0cc220 (54, 0, 14) 66 61 6c 73 65 09 3b 74 72 75 65 20 69 66 20 74 65 73 74 20 62 69 6f 73 0d 0a 3b 0d 0a 09 69 66 ┆false ;true if test bios ; if┆ 0x0cc220…0cc240 09 74 65 73 74 0d 0a 62 69 61 73 09 65 71 75 09 30 33 34 30 30 68 09 3b 62 61 73 65 20 6f 66 20 ┆ test bias equ 03400h ;base of ┆ 0x0cc240…0cc260 43 43 50 20 69 6e 20 74 65 73 74 20 73 79 73 74 65 6d 0d 0a 09 65 6e 64 69 66 0d 0a 09 69 66 09 ┆CCP in test system endif if ┆ 0x0cc260…0cc280 6e 6f 74 20 74 65 73 74 0d 0a 62 69 61 73 09 65 71 75 09 30 30 30 30 68 09 3b 67 65 6e 65 72 61 ┆not test bias equ 0000h ;genera┆ 0x0cc280…0cc2a0 74 65 20 72 65 6c 6f 63 61 74 61 62 6c 65 20 63 70 2f 6d 20 73 79 73 74 65 6d 0d 0a 09 65 6e 64 ┆te relocatable cp/m system end┆ 0x0cc2a0…0cc2c0 69 66 0d 0a 3b 0d 0a 70 61 74 63 68 09 65 71 75 09 31 36 30 30 68 0d 0a 3b 0d 0a 09 6f 72 67 09 ┆if ; patch equ 1600h ; org ┆ 0x0cc2c0…0cc2e0 70 61 74 63 68 0d 0a 63 70 6d 62 09 65 71 75 09 24 2d 70 61 74 63 68 09 3b 62 61 73 65 20 6f 66 ┆patch cpmb equ $-patch ;base of┆ 0x0cc2e0…0cc300 20 63 70 6d 20 63 6f 6e 73 6f 6c 65 20 70 72 6f 63 65 73 73 6f 72 0d 0a 62 64 6f 73 09 65 71 75 ┆ cpm console processor bdos equ┆ 0x0cc300…0cc320 09 38 30 36 68 2b 63 70 6d 62 09 3b 62 61 73 69 63 20 64 6f 73 20 28 72 65 73 69 64 65 6e 74 20 ┆ 806h+cpmb ;basic dos (resident ┆ 0x0cc320…0cc340 70 6f 72 74 69 6f 6e 29 0d 0a 63 70 6d 6c 09 65 71 75 09 24 2d 63 70 6d 62 09 3b 6c 65 6e 67 74 ┆portion) cpml equ $-cpmb ;lengt┆ 0x0cc340…0cc360 68 20 28 69 6e 20 62 79 74 65 73 29 20 6f 66 20 63 70 6d 20 73 79 73 74 65 6d 0d 0a 6e 73 65 63 ┆h (in bytes) of cpm system nsec┆ 0x0cc360…0cc380 74 73 09 65 71 75 09 63 70 6d 6c 2f 31 32 38 09 3b 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f ┆ts equ cpml/128 ;number of secto┆ 0x0cc380…0cc3a0 72 73 20 74 6f 20 6c 6f 61 64 0d 0a 6f 66 66 73 65 74 09 65 71 75 09 32 09 3b 6e 75 6d 62 65 72 ┆rs to load offset equ 2 ;number┆ 0x0cc3a0…0cc3c0 20 6f 66 20 64 69 73 6b 20 74 72 61 63 6b 73 20 75 73 65 64 20 62 79 20 63 70 2f 6d 0d 0a 63 64 ┆ of disk tracks used by cp/m cd┆ 0x0cc3c0…0cc3e0 69 73 6b 09 65 71 75 09 30 30 30 34 68 09 3b 61 64 64 72 65 73 73 20 6f 66 20 6c 61 73 74 20 6c ┆isk equ 0004h ;address of last l┆ 0x0cc3e0…0cc400 6f 67 67 65 64 20 64 69 73 6b 20 6f 6e 20 77 61 72 6d 20 73 74 61 72 74 0d 0a 62 75 66 66 09 65 ┆ogged disk on warm start buff e┆ 0x0cc400…0cc420 (54, 0, 15) 73 65 6d 62 6c 79 0d 0a 3b 0d 0a 3b 09 65 6e 64 20 6f 66 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 2d ┆sembly ; ; end of controller -┆ 0x0cc420…0cc440 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 63 6f 64 65 2c 20 74 68 65 20 72 65 6d 61 69 6e 69 6e 67 ┆ independent code, the remaining┆ 0x0cc440…0cc460 20 73 75 62 72 6f 75 74 69 6e 65 73 0d 0a 3b 09 61 72 65 20 74 61 69 6c 6f 72 65 64 20 74 6f 20 ┆ subroutines ; are tailored to ┆ 0x0cc460…0cc480 74 68 65 20 70 61 72 74 69 63 75 6c 61 72 20 6f 70 65 72 61 74 69 6e 67 20 65 6e 76 69 72 6f 6e ┆the particular operating environ┆ 0x0cc480…0cc4a0 6d 65 6e 74 2c 20 61 6e 64 20 6d 75 73 74 0d 0a 3b 09 62 65 20 61 6c 74 65 72 65 64 20 66 6f 72 ┆ment, and must ; be altered for┆ 0x0cc4a0…0cc4c0 20 61 6e 79 20 73 79 73 74 65 6d 20 77 68 69 63 68 20 64 69 66 66 65 72 73 20 66 72 6f 6d 20 74 ┆ any system which differs from t┆ 0x0cc4c0…0cc4e0 68 65 20 69 6e 74 65 6c 20 6d 64 73 2e 0d 0a 3b 0d 0a 3b 09 74 68 65 20 66 6f 6c 6c 6f 77 69 6e ┆he intel mds. ; ; the followin┆ 0x0cc4e0…0cc500 67 20 63 6f 64 65 20 61 73 73 75 6d 65 73 20 74 68 65 20 6d 64 73 20 6d 6f 6e 69 74 6f 72 20 65 ┆g code assumes the mds monitor e┆ 0x0cc500…0cc520 78 69 73 74 73 20 61 74 20 30 66 38 30 30 68 0d 0a 3b 09 61 6e 64 20 75 73 65 73 20 74 68 65 20 ┆xists at 0f800h ; and uses the ┆ 0x0cc520…0cc540 69 2f 6f 20 73 75 62 72 6f 75 74 69 6e 65 73 20 77 69 74 68 69 6e 20 74 68 65 20 6d 6f 6e 69 74 ┆i/o subroutines within the monit┆ 0x0cc540…0cc560 6f 72 0d 0a 3b 0d 0a 3b 09 77 65 20 61 6c 73 6f 20 61 73 73 75 6d 65 20 74 68 65 20 6d 64 73 20 ┆or ; ; we also assume the mds ┆ 0x0cc560…0cc580 73 79 73 74 65 6d 20 68 61 73 20 66 6f 75 72 20 64 69 73 6b 20 64 72 69 76 65 73 0d 0a 72 65 76 ┆system has four disk drives rev┆ 0x0cc580…0cc5a0 72 74 09 65 71 75 09 30 66 64 68 09 3b 69 6e 74 65 72 72 75 70 74 20 72 65 76 65 72 74 20 70 6f ┆rt equ 0fdh ;interrupt revert po┆ 0x0cc5a0…0cc5c0 72 74 0d 0a 69 6e 74 63 09 65 71 75 09 30 66 63 68 09 3b 69 6e 74 65 72 72 75 70 74 20 6d 61 73 ┆rt intc equ 0fch ;interrupt mas┆ 0x0cc5c0…0cc5e0 6b 20 70 6f 72 74 0d 0a 69 63 6f 6e 09 65 71 75 09 30 66 33 68 09 3b 69 6e 74 65 72 72 75 70 74 ┆k port icon equ 0f3h ;interrupt┆ 0x0cc5e0…0cc600 20 63 6f 6e 74 72 6f 6c 20 70 6f 72 74 0d 0a 69 6e 74 65 09 65 71 75 09 30 31 31 31 24 31 31 31 ┆ control port inte equ 0111$111┆ 0x0cc600…0cc620 (54, 1, 1) 75 66 66 09 3b 75 73 69 6e 67 20 64 6d 61 20 2d 20 74 68 75 73 20 38 30 20 74 68 72 75 20 66 66 ┆uff ;using dma - thus 80 thru ff┆ 0x0cc620…0cc640 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 73 74 61 63 6b 0d 0a 3b 0d 0a 09 6d 76 69 09 63 2c ┆ available for stack ; mvi c,┆ 0x0cc640…0cc660 72 65 74 72 79 09 3b 6d 61 78 20 72 65 74 72 69 65 73 0d 0a 09 70 75 73 68 09 62 0d 0a 77 62 6f ┆retry ;max retries push b wbo┆ 0x0cc660…0cc680 6f 74 30 3a 09 3b 65 6e 74 65 72 20 68 65 72 65 20 6f 6e 20 65 72 72 6f 72 20 72 65 74 72 69 65 ┆ot0: ;enter here on error retrie┆ 0x0cc680…0cc6a0 73 0d 0a 09 6c 78 69 09 62 2c 63 70 6d 62 09 3b 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 ┆s lxi b,cpmb ;set dma address ┆ 0x0cc6a0…0cc6c0 74 6f 20 73 74 61 72 74 20 6f 66 20 64 69 73 6b 20 73 79 73 74 65 6d 0d 0a 09 63 61 6c 6c 09 73 ┆to start of disk system call s┆ 0x0cc6c0…0cc6e0 65 74 64 6d 61 0d 0a 09 6d 76 69 09 63 2c 30 09 3b 62 6f 6f 74 20 66 72 6f 6d 20 64 72 69 76 65 ┆etdma mvi c,0 ;boot from drive┆ 0x0cc6e0…0cc700 20 30 0d 0a 09 63 61 6c 6c 09 73 65 6c 64 73 6b 0d 0a 09 6d 76 69 09 63 2c 30 0d 0a 09 63 61 6c ┆ 0 call seldsk mvi c,0 cal┆ 0x0cc700…0cc720 6c 09 73 65 74 74 72 6b 09 3b 73 74 61 72 74 20 77 69 74 68 20 74 72 61 63 6b 20 30 0d 0a 09 6d ┆l settrk ;start with track 0 m┆ 0x0cc720…0cc740 76 69 09 63 2c 32 09 3b 73 74 61 72 74 20 72 65 61 64 69 6e 67 20 73 65 63 74 6f 72 20 32 0d 0a ┆vi c,2 ;start reading sector 2 ┆ 0x0cc740…0cc760 09 63 61 6c 6c 09 73 65 74 73 65 63 0d 0a 3b 0d 0a 3b 09 72 65 61 64 20 73 65 63 74 6f 72 73 2c ┆ call setsec ; ; read sectors,┆ 0x0cc760…0cc780 20 63 6f 75 6e 74 20 6e 73 65 63 74 73 20 74 6f 20 7a 65 72 6f 0d 0a 09 70 6f 70 09 62 09 3b 31 ┆ count nsects to zero pop b ;1┆ 0x0cc780…0cc7a0 30 2d 65 72 72 6f 72 20 63 6f 75 6e 74 0d 0a 09 6d 76 69 09 62 2c 6e 73 65 63 74 73 0d 0a 72 64 ┆0-error count mvi b,nsects rd┆ 0x0cc7a0…0cc7c0 73 65 63 3a 09 3b 72 65 61 64 20 6e 65 78 74 20 73 65 63 74 6f 72 0d 0a 09 70 75 73 68 09 62 09 ┆sec: ;read next sector push b ┆ 0x0cc7c0…0cc7e0 3b 73 61 76 65 20 73 65 63 74 6f 72 20 63 6f 75 6e 74 0d 0a 09 63 61 6c 6c 09 72 65 61 64 0d 0a ┆;save sector count call read ┆ 0x0cc7e0…0cc800 09 6a 6e 7a 09 62 6f 6f 74 65 72 72 09 3b 72 65 74 72 79 20 69 66 20 65 72 72 6f 72 73 20 6f 63 ┆ jnz booterr ;retry if errors oc┆ 0x0cc800…0cc820 (54, 1, 2) 77 61 72 65 20 6d 6f 6e 69 74 6f 72 0d 0a 3b 0d 0a 62 6f 6f 74 6d 73 67 3a 0d 0a 09 64 62 09 27 ┆ware monitor ; bootmsg: db '┆ 0x0cc820…0cc840 3f 62 6f 6f 74 27 2c 30 0d 0a 3b 0d 0a 3b 0d 0a 63 6f 6e 73 74 3a 09 3b 63 6f 6e 73 6f 6c 65 20 ┆?boot',0 ; ; const: ;console ┆ 0x0cc840…0cc860 73 74 61 74 75 73 20 74 6f 20 72 65 67 2d 61 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 ┆status to reg-a ; (exactly the ┆ 0x0cc860…0cc880 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 63 73 74 73 0d 0a 3b 0d ┆same as mds call) jmp csts ; ┆ 0x0cc880…0cc8a0 0a 63 6f 6e 69 6e 3a 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 72 65 ┆ conin: ;console character to re┆ 0x0cc8a0…0cc8c0 67 2d 61 0d 0a 09 63 61 6c 6c 09 63 69 0d 0a 09 61 6e 69 09 37 66 68 09 3b 72 65 6d 6f 76 65 20 ┆g-a call ci ani 7fh ;remove ┆ 0x0cc8c0…0cc8e0 70 61 72 69 74 79 20 62 69 74 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 63 6f 6e 6f 75 74 3a 09 3b 63 6f ┆parity bit ret ; conout: ;co┆ 0x0cc8e0…0cc900 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 66 72 6f 6d 20 63 20 74 6f 20 63 6f 6e 73 6f 6c ┆nsole character from c to consol┆ 0x0cc900…0cc920 65 20 6f 75 74 0d 0a 09 6a 6d 70 09 63 6f 0d 0a 3b 0d 0a 6c 69 73 74 3a 09 3b 6c 69 73 74 20 64 ┆e out jmp co ; list: ;list d┆ 0x0cc920…0cc940 65 76 69 63 65 20 6f 75 74 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 ┆evice out ; (exactly the same a┆ 0x0cc940…0cc960 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 6c 6f 0d 0a 3b 0d 0a 6c 69 73 74 73 74 3a ┆s mds call) jmp lo ; listst:┆ 0x0cc960…0cc980 0d 0a 09 3b 72 65 74 75 72 6e 20 6c 69 73 74 20 73 74 61 74 75 73 0d 0a 09 78 72 61 09 61 0d 0a ┆ ;return list status xra a ┆ 0x0cc980…0cc9a0 09 72 65 74 09 09 3b 61 6c 77 61 79 73 20 6e 6f 74 20 72 65 61 64 79 0d 0a 3b 0d 0a 70 75 6e 63 ┆ ret ;always not ready ; punc┆ 0x0cc9a0…0cc9c0 68 3a 09 3b 70 75 6e 63 68 20 64 65 76 69 63 65 20 6f 75 74 0d 0a 3b 09 28 65 78 61 63 74 6c 79 ┆h: ;punch device out ; (exactly┆ 0x0cc9c0…0cc9e0 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 70 6f 0d ┆ the same as mds call) jmp po ┆ 0x0cc9e0…0cca00 0a 3b 0d 0a 72 65 61 64 65 72 3a 09 3b 72 65 61 64 65 72 20 63 68 61 72 61 63 74 65 72 20 69 6e ┆ ; reader: ;reader character in┆ 0x0cca00…0cca20 (54, 1, 3) 66 75 6e 63 74 69 6f 6e 0d 0a 09 6d 76 69 09 63 2c 77 72 69 74 66 0d 0a 09 63 61 6c 6c 09 73 65 ┆function mvi c,writf call se┆ 0x0cca20…0cca40 74 66 75 6e 63 09 3b 73 65 74 20 74 6f 20 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 63 ┆tfunc ;set to write function c┆ 0x0cca40…0cca60 61 6c 6c 09 77 61 69 74 69 6f 0d 0a 09 72 65 74 09 09 3b 6d 61 79 20 68 61 76 65 20 65 72 72 6f ┆all waitio ret ;may have erro┆ 0x0cca60…0cca80 72 20 73 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 75 74 69 6c 69 74 79 20 73 75 62 72 6f 75 74 69 6e ┆r set ; ; ; utility subroutin┆ 0x0cca80…0ccaa0 65 73 0d 0a 70 72 6d 73 67 3a 09 3b 70 72 69 6e 74 20 6d 65 73 73 61 67 65 20 61 74 20 68 2c 6c ┆es prmsg: ;print message at h,l┆ 0x0ccaa0…0ccac0 20 74 6f 20 30 0d 0a 09 6d 6f 76 09 61 2c 6d 0d 0a 09 6f 72 61 09 61 09 3b 7a 65 72 6f 3f 0d 0a ┆ to 0 mov a,m ora a ;zero? ┆ 0x0ccac0…0ccae0 09 72 7a 0d 0a 3b 09 6d 6f 72 65 20 74 6f 20 70 72 69 6e 74 0d 0a 09 70 75 73 68 09 68 0d 0a 09 ┆ rz ; more to print push h ┆ 0x0ccae0…0ccb00 6d 6f 76 09 63 2c 61 0d 0a 09 63 61 6c 6c 09 63 6f 6e 6f 75 74 0d 0a 09 70 6f 70 09 68 0d 0a 09 ┆mov c,a call conout pop h ┆ 0x0ccb00…0ccb20 69 6e 78 09 68 0d 0a 09 6a 6d 70 09 70 72 6d 73 67 0d 0a 3b 0d 0a 73 65 74 66 75 6e 63 3a 0d 0a ┆inx h jmp prmsg ; setfunc: ┆ 0x0ccb20…0ccb40 3b 09 73 65 74 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 6e 65 78 74 20 69 2f 6f 20 28 63 6f 6d ┆; set function for next i/o (com┆ 0x0ccb40…0ccb60 6d 61 6e 64 20 69 6e 20 72 65 67 2d 63 29 0d 0a 09 6c 78 69 09 68 2c 69 6f 66 09 3b 69 6f 20 66 ┆mand in reg-c) lxi h,iof ;io f┆ 0x0ccb60…0ccb80 75 6e 63 74 69 6f 6e 20 61 64 64 72 65 73 73 0d 0a 09 6d 6f 76 09 61 2c 6d 09 3b 67 65 74 20 69 ┆unction address mov a,m ;get i┆ 0x0ccb80…0ccba0 74 20 74 6f 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 66 6f 72 20 6d 61 73 6b 69 6e 67 0d 0a 09 61 ┆t to accumulator for masking a┆ 0x0ccba0…0ccbc0 6e 69 09 31 31 31 31 31 30 30 30 62 09 3b 72 65 6d 6f 76 65 20 70 72 65 76 69 6f 75 73 20 63 6f ┆ni 11111000b ;remove previous co┆ 0x0ccbc0…0ccbe0 6d 6d 61 6e 64 0d 0a 09 6f 72 61 09 63 09 3b 73 65 74 20 74 6f 20 6e 65 77 20 63 6f 6d 6d 61 6e ┆mmand ora c ;set to new comman┆ 0x0ccbe0…0ccc00 64 0d 0a 09 6d 6f 76 09 6d 2c 61 09 3b 72 65 70 6c 61 63 65 64 20 69 6e 20 69 6f 70 62 0d 0a 3b ┆d mov m,a ;replaced in iopb ;┆ 0x0ccc00…0ccc20 (54, 1, 4) 75 6e 74 0d 0a 3b 0d 0a 77 65 72 72 6f 72 3a 09 3b 72 65 74 75 72 6e 20 68 61 72 64 77 61 72 65 ┆unt ; werror: ;return hardware┆ 0x0ccc20…0ccc40 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 20 28 63 72 63 2c 20 74 72 61 63 6b 2c 20 73 65 65 6b 2c 20 ┆ malfunction (crc, track, seek, ┆ 0x0ccc40…0ccc60 65 74 63 2e 29 0d 0a 3b 09 74 68 65 20 6d 64 73 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 68 61 73 20 ┆etc.) ; the mds controller has ┆ 0x0ccc60…0ccc80 72 65 74 75 72 6e 65 64 20 61 20 62 69 74 20 69 6e 20 65 61 63 68 20 70 6f 73 69 74 69 6f 6e 0d ┆returned a bit in each position ┆ 0x0ccc80…0ccca0 0a 3b 09 6f 66 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 2c 20 63 6f 72 72 65 73 70 6f 6e ┆ ; of the accumulator, correspon┆ 0x0ccca0…0cccc0 64 69 6e 67 20 74 6f 20 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e 73 3a 0d 0a 3b 09 30 09 2d 20 64 ┆ding to the conditions: ; 0 - d┆ 0x0cccc0…0ccce0 65 6c 65 74 65 64 20 64 61 74 61 20 28 61 63 63 65 70 74 65 64 20 61 73 20 6f 6b 20 61 62 6f 76 ┆eleted data (accepted as ok abov┆ 0x0ccce0…0ccd00 65 29 0d 0a 3b 09 31 09 2d 20 63 72 63 20 65 72 72 6f 72 0d 0a 3b 09 32 09 2d 20 73 65 65 6b 20 ┆e) ; 1 - crc error ; 2 - seek ┆ 0x0ccd00…0ccd20 65 72 72 6f 72 0d 0a 3b 09 33 09 2d 20 61 64 64 72 65 73 73 20 65 72 72 6f 72 20 28 68 61 72 64 ┆error ; 3 - address error (hard┆ 0x0ccd20…0ccd40 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 34 09 2d 20 64 61 74 61 20 6f 76 ┆ware malfunction) ; 4 - data ov┆ 0x0ccd40…0ccd60 65 72 2f 75 6e 64 65 72 20 66 6c 6f 77 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 ┆er/under flow (hardware malfunct┆ 0x0ccd60…0ccd80 69 6f 6e 29 0d 0a 3b 09 35 09 2d 20 77 72 69 74 65 20 70 72 6f 74 65 63 74 20 28 74 72 65 61 74 ┆ion) ; 5 - write protect (treat┆ 0x0ccd80…0ccda0 65 64 20 61 73 20 6e 6f 74 20 72 65 61 64 79 29 0d 0a 3b 09 36 09 2d 20 77 72 69 74 65 20 65 72 ┆ed as not ready) ; 6 - write er┆ 0x0ccda0…0ccdc0 72 6f 72 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 37 09 ┆ror (hardware malfunction) ; 7 ┆ 0x0ccdc0…0ccde0 2d 20 6e 6f 74 20 72 65 61 64 79 0d 0a 3b 09 28 61 63 63 75 6d 75 6c 61 74 6f 72 20 62 69 74 73 ┆- not ready ; (accumulator bits┆ 0x0ccde0…0cce00 20 61 72 65 20 6e 75 6d 62 65 72 65 64 20 37 20 36 20 35 20 34 20 33 20 32 20 31 20 30 29 0d 0a ┆ are numbered 7 6 5 4 3 2 1 0) ┆ 0x0cce00…0cce20 (54, 1, 5) 63 75 72 0d 0a 09 6c 68 6c 64 09 69 6f 64 09 3b 69 6e 63 72 65 6d 65 6e 74 20 64 6d 61 20 61 64 ┆cur lhld iod ;increment dma ad┆ 0x0cce20…0cce40 64 72 65 73 73 0d 0a 09 6c 78 69 09 64 2c 31 32 38 09 3b 73 65 63 74 6f 72 20 73 69 7a 65 0d 0a ┆dress lxi d,128 ;sector size ┆ 0x0cce40…0cce60 09 64 61 64 09 64 09 3b 69 6e 63 72 65 6d 65 6e 74 65 64 20 64 6d 61 20 61 64 64 72 65 73 73 20 ┆ dad d ;incremented dma address ┆ 0x0cce60…0cce80 69 6e 20 68 6c 0d 0a 09 6d 6f 76 09 62 2c 68 0d 0a 09 6d 6f 76 09 63 2c 6c 09 3b 72 65 61 64 79 ┆in hl mov b,h mov c,l ;ready┆ 0x0cce80…0ccea0 20 66 6f 72 20 63 61 6c 6c 20 74 6f 20 73 65 74 20 64 6d 61 0d 0a 09 63 61 6c 6c 09 73 65 74 64 ┆ for call to set dma call setd┆ 0x0ccea0…0ccec0 6d 61 0d 0a 09 6c 64 61 09 69 6f 73 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 6a 75 73 74 ┆ma lda ios ;sector number just┆ 0x0ccec0…0ccee0 20 72 65 61 64 0d 0a 09 63 70 69 09 32 36 09 3b 72 65 61 64 20 6c 61 73 74 20 73 65 63 74 6f 72 ┆ read cpi 26 ;read last sector┆ 0x0ccee0…0ccf00 3f 0d 0a 09 6a 63 09 72 64 31 0d 0a 3b 09 6d 75 73 74 20 62 65 20 73 65 63 74 6f 72 20 32 36 2c ┆? jc rd1 ; must be sector 26,┆ 0x0ccf00…0ccf20 20 7a 65 72 6f 20 61 6e 64 20 67 6f 20 74 6f 20 6e 65 78 74 20 74 72 61 63 6b 0d 0a 09 6c 64 61 ┆ zero and go to next track lda┆ 0x0ccf20…0ccf40 09 69 6f 74 09 3b 67 65 74 20 74 72 61 63 6b 20 74 6f 20 72 65 67 69 73 74 65 72 20 61 0d 0a 09 ┆ iot ;get track to register a ┆ 0x0ccf40…0ccf60 69 6e 72 09 61 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 0d ┆inr a mov c,a ;ready for call ┆ 0x0ccf60…0ccf80 0a 09 63 61 6c 6c 09 73 65 74 74 72 6b 0d 0a 09 78 72 61 09 61 09 3b 63 6c 65 61 72 20 73 65 63 ┆ call settrk xra a ;clear sec┆ 0x0ccf80…0ccfa0 74 6f 72 20 6e 75 6d 62 65 72 0d 0a 72 64 31 3a 09 69 6e 72 09 61 09 3b 74 6f 20 6e 65 78 74 20 ┆tor number rd1: inr a ;to next ┆ 0x0ccfa0…0ccfc0 73 65 63 74 6f 72 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c ┆sector mov c,a ;ready for call┆ 0x0ccfc0…0ccfe0 0d 0a 09 63 61 6c 6c 09 73 65 74 73 65 63 0d 0a 09 70 6f 70 09 62 09 3b 72 65 63 61 6c 6c 20 73 ┆ call setsec pop b ;recall s┆ 0x0ccfe0…0cd000 65 63 74 6f 72 20 63 6f 75 6e 74 0d 0a 09 64 63 72 09 62 09 3b 64 6f 6e 65 3f 0d 0a 09 6a 6e 7a ┆ector count dcr b ;done? jnz┆ 0x0cd000…0cd020 (54, 1, 6) 20 74 6f 20 72 65 67 2d 61 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 ┆ to reg-a ; (exactly the same a┆ 0x0cd020…0cd040 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 72 69 0d 0a 3b 0d 0a 68 6f 6d 65 3a 09 3b ┆s mds call) jmp ri ; home: ;┆ 0x0cd040…0cd060 6d 6f 76 65 20 74 6f 20 68 6f 6d 65 20 70 6f 73 69 74 69 6f 6e 0d 0a 3b 09 74 72 65 61 74 20 61 ┆move to home position ; treat a┆ 0x0cd060…0cd080 73 20 74 72 61 63 6b 20 30 30 20 73 65 65 6b 0d 0a 09 6d 76 69 09 63 2c 30 0d 0a 09 6a 6d 70 09 ┆s track 00 seek mvi c,0 jmp ┆ 0x0cd080…0cd0a0 73 65 74 74 72 6b 0d 0a 3b 0d 0a 73 65 6c 64 73 6b 3a 09 3b 73 65 6c 65 63 74 20 64 69 73 6b 20 ┆settrk ; seldsk: ;select disk ┆ 0x0cd0a0…0cd0c0 67 69 76 65 6e 20 62 79 20 72 65 67 69 73 74 65 72 20 63 0d 0a 09 6c 78 69 09 68 2c 30 30 30 30 ┆given by register c lxi h,0000┆ 0x0cd0c0…0cd0e0 68 09 3b 72 65 74 75 72 6e 20 30 30 30 30 20 69 66 20 65 72 72 6f 72 0d 0a 09 6d 6f 76 09 61 2c ┆h ;return 0000 if error mov a,┆ 0x0cd0e0…0cd100 63 0d 0a 09 63 70 69 09 6e 64 69 73 6b 73 09 3b 74 6f 6f 20 6c 61 72 67 65 3f 0d 0a 09 72 6e 63 ┆c cpi ndisks ;too large? rnc┆ 0x0cd100…0cd120 09 09 3b 6c 65 61 76 65 20 48 4c 20 3d 20 30 30 30 30 0d 0a 3b 0d 0a 09 61 6e 69 09 31 30 62 09 ┆ ;leave HL = 0000 ; ani 10b ┆ 0x0cd120…0cd140 3b 30 30 20 30 30 20 66 6f 72 20 64 72 69 76 65 20 30 2c 31 20 61 6e 64 20 31 30 20 31 30 20 66 ┆;00 00 for drive 0,1 and 10 10 f┆ 0x0cd140…0cd160 6f 72 20 64 72 69 76 65 20 32 2c 33 0d 0a 09 73 74 61 09 64 62 61 6e 6b 09 3b 74 6f 20 73 65 6c ┆or drive 2,3 sta dbank ;to sel┆ 0x0cd160…0cd180 65 63 74 20 64 72 69 76 65 20 62 61 6e 6b 0d 0a 09 6d 6f 76 09 61 2c 63 09 3b 30 30 2c 20 30 31 ┆ect drive bank mov a,c ;00, 01┆ 0x0cd180…0cd1a0 2c 20 31 30 2c 20 31 31 0d 0a 09 61 6e 69 09 31 62 09 3b 6d 64 73 20 68 61 73 20 30 2c 31 20 61 ┆, 10, 11 ani 1b ;mds has 0,1 a┆ 0x0cd1a0…0cd1c0 74 20 37 38 2c 20 32 2c 33 20 61 74 20 38 38 0d 0a 09 6f 72 61 09 61 09 3b 72 65 73 75 6c 74 20 ┆t 78, 2,3 at 88 ora a ;result ┆ 0x0cd1c0…0cd1e0 30 30 3f 0d 0a 09 6a 7a 09 73 65 74 64 72 69 76 65 0d 0a 09 6d 76 69 09 61 2c 30 30 31 31 30 30 ┆00? jz setdrive mvi a,001100┆ 0x0cd1e0…0cd200 30 30 62 09 3b 73 65 6c 65 63 74 73 20 64 72 69 76 65 20 31 20 69 6e 20 62 61 6e 6b 0d 0a 73 65 ┆00b ;selects drive 1 in bank se┆ 0x0cd200…0cd220 (54, 1, 7) 09 74 68 65 20 6d 64 73 2d 38 30 30 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 72 65 71 75 69 72 65 73 ┆ the mds-800 controller requires┆ 0x0cd220…0cd240 20 64 69 73 6b 20 62 61 6e 6b 20 62 69 74 20 69 6e 20 73 65 63 74 6f 72 20 62 79 74 65 0d 0a 3b ┆ disk bank bit in sector byte ;┆ 0x0cd240…0cd260 09 6d 61 73 6b 20 74 68 65 20 62 69 74 20 66 72 6f 6d 20 74 68 65 20 63 75 72 72 65 6e 74 20 69 ┆ mask the bit from the current i┆ 0x0cd260…0cd280 2f 6f 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 61 6e 69 09 30 30 31 30 30 30 30 30 62 09 3b 6d 61 73 ┆/o function ani 00100000b ;mas┆ 0x0cd280…0cd2a0 6b 20 74 68 65 20 64 69 73 6b 20 73 65 6c 65 63 74 20 62 69 74 0d 0a 09 6c 78 69 09 68 2c 69 6f ┆k the disk select bit lxi h,io┆ 0x0cd2a0…0cd2c0 73 09 09 3b 61 64 64 72 65 73 73 20 74 68 65 20 73 65 63 74 6f 72 20 73 65 6c 65 63 74 20 62 79 ┆s ;address the sector select by┆ 0x0cd2c0…0cd2e0 74 65 0d 0a 09 6f 72 61 09 6d 09 09 3b 73 65 6c 65 63 74 20 70 72 6f 70 65 72 20 64 69 73 6b 20 ┆te ora m ;select proper disk ┆ 0x0cd2e0…0cd300 62 61 6e 6b 0d 0a 09 6d 6f 76 09 6d 2c 61 09 09 3b 73 65 74 20 64 69 73 6b 20 73 65 6c 65 63 74 ┆bank mov m,a ;set disk select┆ 0x0cd300…0cd320 20 62 69 74 20 6f 6e 2f 6f 66 66 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 77 61 69 74 69 6f 3a 0d 0a 09 ┆ bit on/off ret ; waitio: ┆ 0x0cd320…0cd340 6d 76 69 09 63 2c 72 65 74 72 79 09 3b 6d 61 78 20 72 65 74 72 69 65 73 20 62 65 66 6f 72 65 20 ┆mvi c,retry ;max retries before ┆ 0x0cd340…0cd360 70 65 72 6d 20 65 72 72 6f 72 0d 0a 72 65 77 61 69 74 3a 0d 0a 3b 09 73 74 61 72 74 20 74 68 65 ┆perm error rewait: ; start the┆ 0x0cd360…0cd380 20 69 2f 6f 20 66 75 6e 63 74 69 6f 6e 20 61 6e 64 20 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c ┆ i/o function and wait for compl┆ 0x0cd380…0cd3a0 65 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 69 6e 74 79 70 65 09 3b 69 6e 20 72 74 79 70 65 0d 0a 09 ┆etion call intype ;in rtype ┆ 0x0cd3a0…0cd3c0 63 61 6c 6c 09 69 6e 62 79 74 65 09 3b 63 6c 65 61 72 73 20 74 68 65 20 63 6f 6e 74 72 6f 6c 6c ┆call inbyte ;clears the controll┆ 0x0cd3c0…0cd3e0 65 72 0d 0a 3b 0d 0a 09 6c 64 61 09 64 62 61 6e 6b 09 09 3b 73 65 74 20 62 61 6e 6b 20 66 6c 61 ┆er ; lda dbank ;set bank fla┆ 0x0cd3e0…0cd400 67 73 0d 0a 09 6f 72 61 09 61 09 09 3b 7a 65 72 6f 20 69 66 20 64 72 69 76 65 20 30 2c 31 20 61 ┆gs ora a ;zero if drive 0,1 a┆ 0x0cd400…0cd420 (54, 1, 8) 3b 0d 0a 3b 09 69 74 20 6d 61 79 20 62 65 20 75 73 65 66 75 6c 20 74 6f 20 66 69 6c 74 65 72 20 ┆; ; it may be useful to filter ┆ 0x0cd420…0cd440 6f 75 74 20 74 68 65 20 76 61 72 69 6f 75 73 20 63 6f 6e 64 69 74 69 6f 6e 73 2c 0d 0a 3b 09 62 ┆out the various conditions, ; b┆ 0x0cd440…0cd460 75 74 20 77 65 20 77 69 6c 6c 20 67 65 74 20 61 20 70 65 72 6d 61 6e 65 6e 74 20 65 72 72 6f 72 ┆ut we will get a permanent error┆ 0x0cd460…0cd480 20 6d 65 73 73 61 67 65 20 69 66 20 69 74 20 69 73 20 6e 6f 74 0d 0a 3b 09 72 65 63 6f 76 65 72 ┆ message if it is not ; recover┆ 0x0cd480…0cd4a0 61 62 6c 65 2e 20 20 69 6e 20 61 6e 79 20 63 61 73 65 2c 20 74 68 65 20 6e 6f 74 20 72 65 61 64 ┆able. in any case, the not read┆ 0x0cd4a0…0cd4c0 79 20 63 6f 6e 64 69 74 69 6f 6e 20 69 73 0d 0a 3b 09 74 72 65 61 74 65 64 20 61 73 20 61 20 73 ┆y condition is ; treated as a s┆ 0x0cd4c0…0cd4e0 65 70 61 72 61 74 65 20 63 6f 6e 64 69 74 69 6f 6e 20 66 6f 72 20 6c 61 74 65 72 20 69 6d 70 72 ┆eparate condition for later impr┆ 0x0cd4e0…0cd500 6f 76 65 6d 65 6e 74 0d 0a 74 72 79 63 6f 75 6e 74 3a 0d 0a 3b 09 72 65 67 69 73 74 65 72 20 63 ┆ovement trycount: ; register c┆ 0x0cd500…0cd520 20 63 6f 6e 74 61 69 6e 73 20 72 65 74 72 79 20 63 6f 75 6e 74 2c 20 64 65 63 72 65 6d 65 6e 74 ┆ contains retry count, decrement┆ 0x0cd520…0cd540 20 27 74 69 6c 20 7a 65 72 6f 0d 0a 09 64 63 72 09 63 0d 0a 09 6a 6e 7a 09 72 65 77 61 69 74 09 ┆ 'til zero dcr c jnz rewait ┆ 0x0cd540…0cd560 3b 66 6f 72 20 61 6e 6f 74 68 65 72 20 74 72 79 0d 0a 3b 0d 0a 3b 09 63 61 6e 6e 6f 74 20 72 65 ┆;for another try ; ; cannot re┆ 0x0cd560…0cd580 63 6f 76 65 72 20 66 72 6f 6d 20 65 72 72 6f 72 0d 0a 09 6d 76 69 09 61 2c 31 09 3b 65 72 72 6f ┆cover from error mvi a,1 ;erro┆ 0x0cd580…0cd5a0 72 20 63 6f 64 65 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 09 69 6e 74 79 70 65 2c 20 69 6e 62 79 74 ┆r code ret ; ; intype, inbyt┆ 0x0cd5a0…0cd5c0 65 2c 20 69 6e 73 74 61 74 20 72 65 61 64 20 64 72 69 76 65 20 62 61 6e 6b 20 30 30 20 6f 72 20 ┆e, instat read drive bank 00 or ┆ 0x0cd5c0…0cd5e0 31 30 0d 0a 69 6e 74 79 70 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 ┆10 intype: lda dbank ora a ┆ 0x0cd5e0…0cd600 6a 6e 7a 09 69 6e 74 79 70 31 09 3b 73 6b 69 70 20 74 6f 20 62 61 6e 6b 20 31 30 0d 0a 09 69 6e ┆jnz intyp1 ;skip to bank 10 in┆ 0x0cd600…0cd620 (54, 1, 9) 09 72 64 73 65 63 0d 0a 3b 0d 0a 3b 09 64 6f 6e 65 20 77 69 74 68 20 74 68 65 20 6c 6f 61 64 2c ┆ rdsec ; ; done with the load,┆ 0x0cd620…0cd640 20 72 65 73 65 74 20 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 0d 0a 67 ┆ reset default buffer address g┆ 0x0cd640…0cd660 6f 63 70 6d 3a 09 3b 28 65 6e 74 65 72 20 68 65 72 65 20 66 72 6f 6d 20 63 6f 6c 64 20 73 74 61 ┆ocpm: ;(enter here from cold sta┆ 0x0cd660…0cd680 72 74 20 62 6f 6f 74 29 0d 0a 3b 09 65 6e 61 62 6c 65 20 72 73 74 30 20 61 6e 64 20 72 73 74 37 ┆rt boot) ; enable rst0 and rst7┆ 0x0cd680…0cd6a0 0d 0a 09 64 69 0d 0a 09 6d 76 69 09 61 2c 31 32 68 09 3b 69 6e 69 74 69 61 6c 69 7a 65 20 63 6f ┆ di mvi a,12h ;initialize co┆ 0x0cd6a0…0cd6c0 6d 6d 61 6e 64 0d 0a 09 6f 75 74 09 72 65 76 72 74 0d 0a 09 78 72 61 09 61 0d 0a 09 6f 75 74 09 ┆mmand out revrt xra a out ┆ 0x0cd6c0…0cd6e0 69 6e 74 63 09 3b 63 6c 65 61 72 65 64 0d 0a 09 6d 76 69 09 61 2c 69 6e 74 65 09 3b 72 73 74 30 ┆intc ;cleared mvi a,inte ;rst0┆ 0x0cd6e0…0cd700 20 61 6e 64 20 72 73 74 37 20 62 69 74 73 20 6f 6e 0d 0a 09 6f 75 74 09 69 6e 74 63 0d 0a 09 78 ┆ and rst7 bits on out intc x┆ 0x0cd700…0cd720 72 61 09 61 0d 0a 09 6f 75 74 09 69 63 6f 6e 09 3b 69 6e 74 65 72 72 75 70 74 20 63 6f 6e 74 72 ┆ra a out icon ;interrupt contr┆ 0x0cd720…0cd740 6f 6c 0d 0a 3b 0d 0a 3b 09 73 65 74 20 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 ┆ol ; ; set default buffer addr┆ 0x0cd740…0cd760 65 73 73 20 74 6f 20 38 30 68 0d 0a 09 6c 78 69 09 62 2c 62 75 66 66 0d 0a 09 63 61 6c 6c 09 73 ┆ess to 80h lxi b,buff call s┆ 0x0cd760…0cd780 65 74 64 6d 61 0d 0a 3b 0d 0a 3b 09 72 65 73 65 74 20 6d 6f 6e 69 74 6f 72 20 65 6e 74 72 79 20 ┆etdma ; ; reset monitor entry ┆ 0x0cd780…0cd7a0 70 6f 69 6e 74 73 0d 0a 09 6d 76 69 09 61 2c 6a 6d 70 0d 0a 09 73 74 61 09 30 0d 0a 09 6c 78 69 ┆points mvi a,jmp sta 0 lxi┆ 0x0cd7a0…0cd7c0 09 68 2c 77 62 6f 6f 74 65 0d 0a 09 73 68 6c 64 09 31 09 3b 6a 6d 70 20 77 62 6f 6f 74 20 61 74 ┆ h,wboote shld 1 ;jmp wboot at┆ 0x0cd7c0…0cd7e0 20 6c 6f 63 61 74 69 6f 6e 20 30 30 0d 0a 09 73 74 61 09 35 0d 0a 09 6c 78 69 09 68 2c 62 64 6f ┆ location 00 sta 5 lxi h,bdo┆ 0x0cd7e0…0cd800 73 0d 0a 09 73 68 6c 64 09 36 09 3b 6a 6d 70 20 62 64 6f 73 20 61 74 20 6c 6f 63 61 74 69 6f 6e ┆s shld 6 ;jmp bdos at location┆ 0x0cd800…0cd820 (54, 1, 10) 74 64 72 69 76 65 3a 0d 0a 09 6d 6f 76 09 62 2c 61 09 3b 73 61 76 65 20 74 68 65 20 66 75 6e 63 ┆tdrive: mov b,a ;save the func┆ 0x0cd820…0cd840 74 69 6f 6e 0d 0a 09 6c 78 69 09 68 2c 69 6f 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 ┆tion lxi h,iof ;io function ┆ 0x0cd840…0cd860 6d 6f 76 09 61 2c 6d 0d 0a 09 61 6e 69 09 31 31 30 30 31 31 31 31 62 09 3b 6d 61 73 6b 20 6f 75 ┆mov a,m ani 11001111b ;mask ou┆ 0x0cd860…0cd880 74 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6f 72 61 09 62 09 3b 6d 61 73 6b 20 69 6e 20 6e ┆t disk number ora b ;mask in n┆ 0x0cd880…0cd8a0 65 77 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6d 6f 76 09 6d 2c 61 09 3b 73 61 76 65 20 69 ┆ew disk number mov m,a ;save i┆ 0x0cd8a0…0cd8c0 74 20 69 6e 20 69 6f 70 62 0d 0a 09 6d 6f 76 09 6c 2c 63 0d 0a 09 6d 76 69 09 68 2c 30 09 3b 48 ┆t in iopb mov l,c mvi h,0 ;H┆ 0x0cd8c0…0cd8e0 4c 3d 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 64 61 64 09 68 09 3b 2a 32 0d 0a 09 64 61 64 09 ┆L=disk number dad h ;*2 dad ┆ 0x0cd8e0…0cd900 68 09 3b 2a 34 0d 0a 09 64 61 64 09 68 09 3b 2a 38 0d 0a 09 64 61 64 09 68 09 3b 2a 31 36 0d 0a ┆h ;*4 dad h ;*8 dad h ;*16 ┆ 0x0cd900…0cd920 09 6c 78 69 09 64 2c 64 70 62 61 73 65 0d 0a 09 64 61 64 09 64 09 3b 48 4c 3d 64 69 73 6b 20 68 ┆ lxi d,dpbase dad d ;HL=disk h┆ 0x0cd920…0cd940 65 61 64 65 72 20 74 61 62 6c 65 20 61 64 64 72 65 73 73 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d ┆eader table address ret ; ; ┆ 0x0cd940…0cd960 0a 73 65 74 74 72 6b 3a 09 3b 73 65 74 20 74 72 61 63 6b 20 61 64 64 72 65 73 73 20 67 69 76 65 ┆ settrk: ;set track address give┆ 0x0cd960…0cd980 6e 20 62 79 20 63 0d 0a 09 6c 78 69 09 68 2c 69 6f 74 0d 0a 09 6d 6f 76 09 6d 2c 63 0d 0a 09 72 ┆n by c lxi h,iot mov m,c r┆ 0x0cd980…0cd9a0 65 74 0d 0a 3b 0d 0a 73 65 74 73 65 63 3a 09 3b 73 65 74 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 ┆et ; setsec: ;set sector numbe┆ 0x0cd9a0…0cd9c0 72 20 67 69 76 65 6e 20 62 79 20 63 0d 0a 09 6c 78 69 09 68 2c 69 6f 73 0d 0a 09 6d 6f 76 09 6d ┆r given by c lxi h,ios mov m┆ 0x0cd9c0…0cd9e0 2c 63 0d 0a 09 72 65 74 0d 0a 73 65 63 74 72 61 6e 3a 0d 0a 09 09 3b 74 72 61 6e 73 6c 61 74 65 ┆,c ret sectran: ;translate┆ 0x0cd9e0…0cda00 20 73 65 63 74 6f 72 20 62 63 20 75 73 69 6e 67 20 74 61 62 6c 65 20 61 74 20 64 65 0d 0a 09 6d ┆ sector bc using table at de m┆ 0x0cda00…0cda20 (54, 1, 11) 6e 64 20 6e 7a 20 69 66 20 32 2c 33 0d 0a 09 6d 76 69 09 61 2c 69 6f 70 62 20 61 6e 64 20 30 66 ┆nd nz if 2,3 mvi a,iopb and 0f┆ 0x0cda20…0cda40 66 68 09 3b 6c 6f 77 20 61 64 64 72 65 73 73 20 66 6f 72 20 69 6f 70 62 0d 0a 09 6d 76 69 09 62 ┆fh ;low address for iopb mvi b┆ 0x0cda40…0cda60 2c 69 6f 70 62 20 73 68 72 20 38 09 3b 68 69 67 68 20 61 64 64 72 65 73 73 20 66 6f 72 20 69 6f ┆,iopb shr 8 ;high address for io┆ 0x0cda60…0cda80 70 62 0d 0a 09 6a 6e 7a 09 69 6f 64 72 31 09 3b 64 72 69 76 65 20 62 61 6e 6b 20 31 3f 0d 0a 09 ┆pb jnz iodr1 ;drive bank 1? ┆ 0x0cda80…0cdaa0 6f 75 74 09 69 6c 6f 77 09 09 3b 6c 6f 77 20 61 64 64 72 65 73 73 20 74 6f 20 63 6f 6e 74 72 6f ┆out ilow ;low address to contro┆ 0x0cdaa0…0cdac0 6c 6c 65 72 0d 0a 09 6d 6f 76 09 61 2c 62 0d 0a 09 6f 75 74 09 69 68 69 67 68 09 3b 68 69 67 68 ┆ller mov a,b out ihigh ;high┆ 0x0cdac0…0cdae0 20 61 64 64 72 65 73 73 0d 0a 09 6a 6d 70 09 77 61 69 74 30 09 09 3b 74 6f 20 77 61 69 74 20 66 ┆ address jmp wait0 ;to wait f┆ 0x0cdae0…0cdb00 6f 72 20 63 6f 6d 70 6c 65 74 65 0d 0a 3b 0d 0a 69 6f 64 72 31 3a 09 3b 64 72 69 76 65 20 62 61 ┆or complete ; iodr1: ;drive ba┆ 0x0cdb00…0cdb20 6e 6b 20 31 0d 0a 09 6f 75 74 09 69 6c 6f 77 2b 31 30 68 09 3b 38 38 20 66 6f 72 20 64 72 69 76 ┆nk 1 out ilow+10h ;88 for driv┆ 0x0cdb20…0cdb40 65 20 62 61 6e 6b 20 31 30 0d 0a 09 6d 6f 76 09 61 2c 62 0d 0a 09 6f 75 74 09 69 68 69 67 68 2b ┆e bank 10 mov a,b out ihigh+┆ 0x0cdb40…0cdb60 31 30 68 0d 0a 3b 0d 0a 77 61 69 74 30 3a 09 63 61 6c 6c 09 69 6e 73 74 61 74 09 09 3b 77 61 69 ┆10h ; wait0: call instat ;wai┆ 0x0cdb60…0cdb80 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 0d 0a 09 61 6e 69 09 69 6f 72 64 79 09 09 3b 72 ┆t for completion ani iordy ;r┆ 0x0cdb80…0cdba0 65 61 64 79 3f 0d 0a 09 6a 7a 09 77 61 69 74 30 0d 0a 3b 0d 0a 3b 09 63 68 65 63 6b 20 69 6f 20 ┆eady? jz wait0 ; ; check io ┆ 0x0cdba0…0cdbc0 63 6f 6d 70 6c 65 74 69 6f 6e 20 6f 6b 0d 0a 09 63 61 6c 6c 09 69 6e 74 79 70 65 09 09 3b 6d 75 ┆completion ok call intype ;mu┆ 0x0cdbc0…0cdbe0 73 74 20 62 65 20 69 6f 20 63 6f 6d 70 6c 65 74 65 20 28 30 30 29 20 75 6e 6c 69 6e 6b 65 64 0d ┆st be io complete (00) unlinked ┆ 0x0cdbe0…0cdc00 0a 3b 09 30 30 20 75 6e 6c 69 6e 6b 65 64 20 69 2f 6f 20 63 6f 6d 70 6c 65 74 65 2c 20 20 20 20 ┆ ; 00 unlinked i/o complete, ┆ 0x0cdc00…0cdc20 (54, 1, 12) 09 72 74 79 70 65 0d 0a 09 72 65 74 0d 0a 69 6e 74 79 70 31 3a 09 69 6e 09 72 74 79 70 65 2b 31 ┆ rtype ret intyp1: in rtype+1┆ 0x0cdc20…0cdc40 30 68 09 3b 37 38 20 66 6f 72 20 30 2c 31 20 20 38 38 20 66 6f 72 20 32 2c 33 0d 0a 09 72 65 74 ┆0h ;78 for 0,1 88 for 2,3 ret┆ 0x0cdc40…0cdc60 0d 0a 3b 0d 0a 69 6e 62 79 74 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a ┆ ; inbyte: lda dbank ora a ┆ 0x0cdc60…0cdc80 09 6a 6e 7a 09 69 6e 62 79 74 31 0d 0a 09 69 6e 09 72 62 79 74 65 0d 0a 09 72 65 74 0d 0a 69 6e ┆ jnz inbyt1 in rbyte ret in┆ 0x0cdc80…0cdca0 62 79 74 31 3a 09 69 6e 09 72 62 79 74 65 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 69 6e 73 ┆byt1: in rbyte+10h ret ; ins┆ 0x0cdca0…0cdcc0 74 61 74 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 73 ┆tat: lda dbank ora a jnz ins┆ 0x0cdcc0…0cdce0 74 61 31 0d 0a 09 69 6e 09 64 73 74 61 74 0d 0a 09 72 65 74 0d 0a 69 6e 73 74 61 31 3a 09 69 6e ┆ta1 in dstat ret insta1: in┆ 0x0cdce0…0cdd00 09 64 73 74 61 74 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 61 74 ┆ dstat+10h ret ; ; ; ; dat┆ 0x0cdd00…0cdd20 61 20 61 72 65 61 73 20 28 6d 75 73 74 20 62 65 20 69 6e 20 72 61 6d 29 0d 0a 64 62 61 6e 6b 3a ┆a areas (must be in ram) dbank:┆ 0x0cdd20…0cdd40 09 64 62 09 30 09 3b 64 69 73 6b 20 62 61 6e 6b 20 30 30 20 69 66 20 64 72 69 76 65 20 30 2c 31 ┆ db 0 ;disk bank 00 if drive 0,1┆ 0x0cdd40…0cdd60 0d 0a 09 09 09 3b 09 20 20 20 31 30 20 69 66 20 64 72 69 76 65 20 32 2c 33 0d 0a 69 6f 70 62 3a ┆ ; 10 if drive 2,3 iopb:┆ 0x0cdd60…0cdd80 09 3b 69 6f 20 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 0d 0a 09 64 62 09 38 30 68 09 3b 6e ┆ ;io parameter block db 80h ;n┆ 0x0cdd80…0cdda0 6f 72 6d 61 6c 20 69 2f 6f 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 69 6f 66 3a 09 64 62 09 72 65 61 ┆ormal i/o operation iof: db rea┆ 0x0cdda0…0cddc0 64 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 2c 20 69 6e 69 74 69 61 6c 20 72 65 61 64 0d 0a 69 ┆df ;io function, initial read i┆ 0x0cddc0…0cdde0 6f 6e 3a 09 64 62 09 31 09 3b 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 20 74 6f 20 72 ┆on: db 1 ;number of sectors to r┆ 0x0cdde0…0cde00 65 61 64 0d 0a 69 6f 74 3a 09 64 62 09 6f 66 66 73 65 74 09 3b 74 72 61 63 6b 20 6e 75 6d 62 65 ┆ead iot: db offset ;track numbe┆ 0x0cde00…0cde20 (54, 1, 13) 20 35 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 09 73 74 61 09 37 2a 38 09 3b 6a 6d 70 20 ┆ 5 if not test sta 7*8 ;jmp ┆ 0x0cde20…0cde40 74 6f 20 6d 6f 6e 38 30 20 28 6d 61 79 20 68 61 76 65 20 62 65 65 6e 20 63 68 61 6e 67 65 64 20 ┆to mon80 (may have been changed ┆ 0x0cde40…0cde60 62 79 20 64 64 74 29 0d 0a 09 6c 78 69 09 68 2c 6d 6f 6e 38 30 0d 0a 09 73 68 6c 64 09 37 2a 38 ┆by ddt) lxi h,mon80 shld 7*8┆ 0x0cde60…0cde80 2b 31 0d 0a 09 65 6e 64 69 66 0d 0a 3b 09 6c 65 61 76 65 20 69 6f 62 79 74 65 20 73 65 74 0d 0a ┆+1 endif ; leave iobyte set ┆ 0x0cde80…0cdea0 3b 09 70 72 65 76 69 6f 75 73 6c 79 20 73 65 6c 65 63 74 65 64 20 64 69 73 6b 20 77 61 73 20 62 ┆; previously selected disk was b┆ 0x0cdea0…0cdec0 2c 20 73 65 6e 64 20 70 61 72 61 6d 65 74 65 72 20 74 6f 20 63 70 6d 0d 0a 09 6c 64 61 09 63 64 ┆, send parameter to cpm lda cd┆ 0x0cdec0…0cdee0 69 73 6b 09 3b 6c 61 73 74 20 6c 6f 67 67 65 64 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6d ┆isk ;last logged disk number m┆ 0x0cdee0…0cdf00 6f 76 09 63 2c 61 09 3b 73 65 6e 64 20 74 6f 20 63 63 70 20 74 6f 20 6c 6f 67 20 69 74 20 69 6e ┆ov c,a ;send to ccp to log it in┆ 0x0cdf00…0cdf20 0d 0a 09 65 69 0d 0a 09 6a 6d 70 09 63 70 6d 62 0d 0a 3b 0d 0a 3b 09 65 72 72 6f 72 20 63 6f 6e ┆ ei jmp cpmb ; ; error con┆ 0x0cdf20…0cdf40 64 69 74 69 6f 6e 20 6f 63 63 75 72 72 65 64 2c 20 70 72 69 6e 74 20 6d 65 73 73 61 67 65 20 61 ┆dition occurred, print message a┆ 0x0cdf40…0cdf60 6e 64 20 72 65 74 72 79 0d 0a 62 6f 6f 74 65 72 72 3a 0d 0a 09 70 6f 70 09 62 09 3b 72 65 63 61 ┆nd retry booterr: pop b ;reca┆ 0x0cdf60…0cdf80 6c 6c 20 63 6f 75 6e 74 73 0d 0a 09 64 63 72 09 63 0d 0a 09 6a 7a 09 62 6f 6f 74 65 72 30 0d 0a ┆ll counts dcr c jz booter0 ┆ 0x0cdf80…0cdfa0 3b 09 74 72 79 20 61 67 61 69 6e 0d 0a 09 70 75 73 68 09 62 0d 0a 09 6a 6d 70 09 77 62 6f 6f 74 ┆; try again push b jmp wboot┆ 0x0cdfa0…0cdfc0 30 0d 0a 3b 0d 0a 62 6f 6f 74 65 72 30 3a 0d 0a 3b 09 6f 74 68 65 72 77 69 73 65 20 74 6f 6f 20 ┆0 ; booter0: ; otherwise too ┆ 0x0cdfc0…0cdfe0 6d 61 6e 79 20 72 65 74 72 69 65 73 0d 0a 09 6c 78 69 09 68 2c 62 6f 6f 74 6d 73 67 0d 0a 09 63 ┆many retries lxi h,bootmsg c┆ 0x0cdfe0…0ce000 61 6c 6c 09 70 72 6d 73 67 0d 0a 09 6a 6d 70 09 72 6d 6f 6e 38 30 09 3b 6d 64 73 20 68 61 72 64 ┆all prmsg jmp rmon80 ;mds hard┆ 0x0ce000…0ce020 (54, 1, 14) 76 69 09 62 2c 30 09 3b 64 6f 75 62 6c 65 20 70 72 65 63 69 73 69 6f 6e 20 73 65 63 74 6f 72 20 ┆vi b,0 ;double precision sector ┆ 0x0ce020…0ce040 6e 75 6d 62 65 72 20 69 6e 20 42 43 0d 0a 09 78 63 68 67 09 09 3b 74 72 61 6e 73 6c 61 74 65 20 ┆number in BC xchg ;translate ┆ 0x0ce040…0ce060 74 61 62 6c 65 20 61 64 64 72 65 73 73 20 74 6f 20 48 4c 0d 0a 09 64 61 64 09 62 09 3b 74 72 61 ┆table address to HL dad b ;tra┆ 0x0ce060…0ce080 6e 73 6c 61 74 65 28 73 65 63 74 6f 72 29 20 61 64 64 72 65 73 73 0d 0a 09 6d 6f 76 09 61 2c 6d ┆nslate(sector) address mov a,m┆ 0x0ce080…0ce0a0 09 3b 74 72 61 6e 73 6c 61 74 65 64 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 74 6f 20 41 0d ┆ ;translated sector number to A ┆ 0x0ce0a0…0ce0c0 0a 09 73 74 61 09 69 6f 73 0d 0a 09 6d 6f 76 09 6c 2c 61 09 3b 72 65 74 75 72 6e 20 73 65 63 74 ┆ sta ios mov l,a ;return sect┆ 0x0ce0c0…0ce0e0 6f 72 20 6e 75 6d 62 65 72 20 69 6e 20 4c 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 73 65 74 64 6d 61 3a ┆or number in L ret ; setdma:┆ 0x0ce0e0…0ce100 09 3b 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 67 69 76 65 6e 20 62 79 20 72 65 67 73 20 ┆ ;set dma address given by regs ┆ 0x0ce100…0ce120 62 2c 63 0d 0a 09 6d 6f 76 09 6c 2c 63 0d 0a 09 6d 6f 76 09 68 2c 62 0d 0a 09 73 68 6c 64 09 69 ┆b,c mov l,c mov h,b shld i┆ 0x0ce120…0ce140 6f 64 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 72 65 61 64 3a 09 3b 72 65 61 64 20 6e 65 78 74 20 64 69 ┆od ret ; read: ;read next di┆ 0x0ce140…0ce160 73 6b 20 72 65 63 6f 72 64 20 28 61 73 73 75 6d 69 6e 67 20 64 69 73 6b 2f 74 72 6b 2f 73 65 63 ┆sk record (assuming disk/trk/sec┆ 0x0ce160…0ce180 2f 64 6d 61 20 73 65 74 29 0d 0a 09 6d 76 69 09 63 2c 72 65 61 64 66 09 3b 73 65 74 20 74 6f 20 ┆/dma set) mvi c,readf ;set to ┆ 0x0ce180…0ce1a0 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 73 65 74 66 75 6e 63 0d 0a 09 63 ┆read function call setfunc c┆ 0x0ce1a0…0ce1c0 61 6c 6c 09 77 61 69 74 69 6f 09 3b 70 65 72 66 6f 72 6d 20 72 65 61 64 20 66 75 6e 63 74 69 6f ┆all waitio ;perform read functio┆ 0x0ce1c0…0ce1e0 6e 0d 0a 09 72 65 74 09 09 3b 6d 61 79 20 68 61 76 65 20 65 72 72 6f 72 20 73 65 74 20 69 6e 20 ┆n ret ;may have error set in ┆ 0x0ce1e0…0ce200 72 65 67 2d 61 0d 0a 3b 0d 0a 3b 0d 0a 77 72 69 74 65 3a 09 3b 64 69 73 6b 20 77 72 69 74 65 20 ┆reg-a ; ; write: ;disk write ┆ 0x0ce200…0ce220 (54, 1, 15) 30 31 20 6c 69 6e 6b 65 64 20 69 2f 6f 20 63 6f 6d 70 6c 65 74 65 20 28 6e 6f 74 20 75 73 65 64 ┆01 linked i/o complete (not used┆ 0x0ce220…0ce240 29 0d 0a 3b 09 31 30 20 64 69 73 6b 20 73 74 61 74 75 73 20 63 68 61 6e 67 65 64 20 20 20 20 20 ┆) ; 10 disk status changed ┆ 0x0ce240…0ce260 20 20 31 31 20 28 6e 6f 74 20 75 73 65 64 29 0d 0a 09 63 70 69 09 31 30 62 09 09 3b 72 65 61 64 ┆ 11 (not used) cpi 10b ;read┆ 0x0ce260…0ce280 79 20 73 74 61 74 75 73 20 63 68 61 6e 67 65 3f 0d 0a 09 6a 7a 09 77 72 65 61 64 79 0d 0a 3b 0d ┆y status change? jz wready ; ┆ 0x0ce280…0ce2a0 0a 3b 09 6d 75 73 74 20 62 65 20 30 30 20 69 6e 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 ┆ ; must be 00 in the accumulator┆ 0x0ce2a0…0ce2c0 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 77 65 72 72 6f 72 09 09 3b 73 6f 6d 65 20 6f 74 68 ┆ ora a jnz werror ;some oth┆ 0x0ce2c0…0ce2e0 65 72 20 63 6f 6e 64 69 74 69 6f 6e 2c 20 72 65 74 72 79 0d 0a 3b 0d 0a 3b 09 63 68 65 63 6b 20 ┆er condition, retry ; ; check ┆ 0x0ce2e0…0ce300 69 2f 6f 20 65 72 72 6f 72 20 62 69 74 73 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 0d 0a 09 72 ┆i/o error bits call inbyte r┆ 0x0ce300…0ce320 61 6c 0d 0a 09 6a 63 09 77 72 65 61 64 79 09 09 3b 75 6e 69 74 20 6e 6f 74 20 72 65 61 64 79 0d ┆al jc wready ;unit not ready ┆ 0x0ce320…0ce340 0a 09 72 61 72 0d 0a 09 61 6e 69 09 31 31 31 31 31 31 31 30 62 09 3b 61 6e 79 20 6f 74 68 65 72 ┆ rar ani 11111110b ;any other┆ 0x0ce340…0ce360 20 65 72 72 6f 72 73 3f 20 20 28 64 65 6c 65 74 65 64 20 64 61 74 61 20 6f 6b 29 0d 0a 09 6a 6e ┆ errors? (deleted data ok) jn┆ 0x0ce360…0ce380 7a 09 77 65 72 72 6f 72 0d 0a 3b 0d 0a 3b 09 72 65 61 64 20 6f 72 20 77 72 69 74 65 20 69 73 20 ┆z werror ; ; read or write is ┆ 0x0ce380…0ce3a0 6f 6b 2c 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 63 6f 6e 74 61 69 6e 73 20 7a 65 72 6f 0d 0a 09 ┆ok, accumulator contains zero ┆ 0x0ce3a0…0ce3c0 72 65 74 0d 0a 3b 0d 0a 77 72 65 61 64 79 3a 09 3b 6e 6f 74 20 72 65 61 64 79 2c 20 74 72 65 61 ┆ret ; wready: ;not ready, trea┆ 0x0ce3c0…0ce3e0 74 20 61 73 20 65 72 72 6f 72 20 66 6f 72 20 6e 6f 77 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 ┆t as error for now call inbyte┆ 0x0ce3e0…0ce400 09 09 3b 63 6c 65 61 72 20 72 65 73 75 6c 74 20 62 79 74 65 0d 0a 09 6a 6d 70 09 74 72 79 63 6f ┆ ;clear result byte jmp tryco┆ 0x0ce400…0ce420 (55, 0, 1) 72 0d 0a 69 6f 73 3a 09 64 62 09 31 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 0d 0a 69 6f 64 ┆r ios: db 1 ;sector number iod┆ 0x0ce420…0ce440 3a 09 64 77 09 62 75 66 66 09 3b 69 6f 20 61 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 ┆: dw buff ;io address ; ; ; d┆ 0x0ce440…0ce460 65 66 69 6e 65 20 72 61 6d 20 61 72 65 61 73 20 66 6f 72 20 62 64 6f 73 20 6f 70 65 72 61 74 69 ┆efine ram areas for bdos operati┆ 0x0ce460…0ce480 6f 6e 0d 0a 09 65 6e 64 65 66 0d 0a 09 65 6e 64 0d 0a 3b 09 4d 44 53 2d 38 30 30 20 49 2f 4f 20 ┆on endef end ; MDS-800 I/O ┆ 0x0ce480…0ce4a0 44 72 69 76 65 72 73 20 66 6f 72 20 43 50 2f 4d 20 32 2e 32 0d 0a 3b 09 28 66 6f 75 72 20 64 72 ┆Drivers for CP/M 2.2 ; (four dr┆ 0x0ce4a0…0ce4c0 69 76 65 20 73 69 6e 67 6c 65 20 64 65 6e 73 69 74 79 20 76 65 72 73 69 6f 6e 29 0d 0a 3b 0d 0a ┆ive single density version) ; ┆ 0x0ce4c0…0ce4e0 3b 09 56 65 72 73 69 6f 6e 20 32 2e 32 20 46 65 62 72 75 61 72 79 2c 20 31 39 38 30 0d 0a 3b 0d ┆; Version 2.2 February, 1980 ; ┆ 0x0ce4e0…0ce500 0a 76 65 72 73 09 65 71 75 09 32 32 09 3b 76 65 72 73 69 6f 6e 20 32 2e 32 0d 0a 3b 0d 0a 3b 09 ┆ vers equ 22 ;version 2.2 ; ; ┆ 0x0ce500…0ce520 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 39 38 30 0d 0a 3b 09 44 69 67 69 74 61 6c 20 52 65 ┆Copyright (c) 1980 ; Digital Re┆ 0x0ce520…0ce540 73 65 61 72 63 68 0d 0a 3b 09 42 6f 78 20 35 37 39 2c 20 50 61 63 69 66 69 63 20 47 72 6f 76 65 ┆search ; Box 579, Pacific Grove┆ 0x0ce540…0ce560 0d 0a 3b 09 43 61 6c 69 66 6f 72 6e 69 61 2c 20 39 33 39 35 30 0d 0a 3b 0d 0a 3b 0d 0a 74 72 75 ┆ ; California, 93950 ; ; tru┆ 0x0ce560…0ce580 65 09 65 71 75 09 30 66 66 66 66 68 09 3b 76 61 6c 75 65 20 6f 66 20 22 74 72 75 65 22 0d 0a 66 ┆e equ 0ffffh ;value of "true" f┆ 0x0ce580…0ce5a0 61 6c 73 65 09 65 71 75 09 6e 6f 74 20 74 72 75 65 09 3b 22 66 61 6c 73 65 22 0d 0a 74 65 73 74 ┆alse equ not true ;"false" test┆ 0x0ce5a0…0ce5c0 09 65 71 75 09 66 61 6c 73 65 09 3b 74 72 75 65 20 69 66 20 74 65 73 74 20 62 69 6f 73 0d 0a 3b ┆ equ false ;true if test bios ;┆ 0x0ce5c0…0ce5e0 0d 0a 09 69 66 09 74 65 73 74 0d 0a 62 69 61 73 09 65 71 75 09 30 33 34 30 30 68 09 3b 62 61 73 ┆ if test bias equ 03400h ;bas┆ 0x0ce5e0…0ce600 65 20 6f 66 20 43 43 50 20 69 6e 20 74 65 73 74 20 73 79 73 74 65 6d 0d 0a 09 65 6e 64 69 66 0d ┆e of CCP in test system endif ┆ 0x0ce600…0ce620 (55, 0, 2) 69 6e 65 73 0d 0a 09 6a 6d 70 09 62 6f 6f 74 0d 0a 77 62 6f 6f 74 65 3a 09 6a 6d 70 09 77 62 6f ┆ines jmp boot wboote: jmp wbo┆ 0x0ce620…0ce640 6f 74 0d 0a 09 6a 6d 70 09 63 6f 6e 73 74 0d 0a 09 6a 6d 70 09 63 6f 6e 69 6e 0d 0a 09 6a 6d 70 ┆ot jmp const jmp conin jmp┆ 0x0ce640…0ce660 09 63 6f 6e 6f 75 74 0d 0a 09 6a 6d 70 09 6c 69 73 74 0d 0a 09 6a 6d 70 09 70 75 6e 63 68 0d 0a ┆ conout jmp list jmp punch ┆ 0x0ce660…0ce680 09 6a 6d 70 09 72 65 61 64 65 72 0d 0a 09 6a 6d 70 09 68 6f 6d 65 0d 0a 09 6a 6d 70 09 73 65 6c ┆ jmp reader jmp home jmp sel┆ 0x0ce680…0ce6a0 64 73 6b 0d 0a 09 6a 6d 70 09 73 65 74 74 72 6b 0d 0a 09 6a 6d 70 09 73 65 74 73 65 63 0d 0a 09 ┆dsk jmp settrk jmp setsec ┆ 0x0ce6a0…0ce6c0 6a 6d 70 09 73 65 74 64 6d 61 0d 0a 09 6a 6d 70 09 72 65 61 64 0d 0a 09 6a 6d 70 09 77 72 69 74 ┆jmp setdma jmp read jmp writ┆ 0x0ce6c0…0ce6e0 65 0d 0a 09 6a 6d 70 09 6c 69 73 74 73 74 09 3b 6c 69 73 74 20 73 74 61 74 75 73 0d 0a 09 6a 6d ┆e jmp listst ;list status jm┆ 0x0ce6e0…0ce700 70 09 73 65 63 74 72 61 6e 0d 0a 3b 0d 0a 09 6d 61 63 6c 69 62 09 64 69 73 6b 64 65 66 09 3b 6c ┆p sectran ; maclib diskdef ;l┆ 0x0ce700…0ce720 6f 61 64 20 74 68 65 20 64 69 73 6b 20 64 65 66 69 6e 69 74 69 6f 6e 20 6c 69 62 72 61 72 79 0d ┆oad the disk definition library ┆ 0x0ce720…0ce740 0a 09 64 69 73 6b 73 09 34 09 3b 66 6f 75 72 20 64 69 73 6b 73 0d 0a 09 64 69 73 6b 64 65 66 09 ┆ disks 4 ;four disks diskdef ┆ 0x0ce740…0ce760 30 2c 31 2c 32 36 2c 36 2c 31 30 32 34 2c 32 34 33 2c 36 34 2c 36 34 2c 6f 66 66 73 65 74 0d 0a ┆0,1,26,6,1024,243,64,64,offset ┆ 0x0ce760…0ce780 09 64 69 73 6b 64 65 66 09 31 2c 30 0d 0a 09 64 69 73 6b 64 65 66 09 32 2c 30 0d 0a 09 64 69 73 ┆ diskdef 1,0 diskdef 2,0 dis┆ 0x0ce780…0ce7a0 6b 64 65 66 09 33 2c 30 0d 0a 3b 09 65 6e 64 65 66 20 6f 63 63 75 72 73 20 61 74 20 65 6e 64 20 ┆kdef 3,0 ; endef occurs at end ┆ 0x0ce7a0…0ce7c0 6f 66 20 61 73 73 65 6d 62 6c 79 0d 0a 3b 0d 0a 3b 09 65 6e 64 20 6f 66 20 63 6f 6e 74 72 6f 6c ┆of assembly ; ; end of control┆ 0x0ce7c0…0ce7e0 6c 65 72 20 2d 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 63 6f 64 65 2c 20 74 68 65 20 72 65 6d 61 ┆ler - independent code, the rema┆ 0x0ce7e0…0ce800 69 6e 69 6e 67 20 73 75 62 72 6f 75 74 69 6e 65 73 0d 0a 3b 09 61 72 65 20 74 61 69 6c 6f 72 65 ┆ining subroutines ; are tailore┆ 0x0ce800…0ce820 (55, 0, 3) 0d 0a 09 64 62 09 63 72 2c 6c 66 2c 30 0d 0a 3b 0d 0a 62 6f 6f 74 3a 09 3b 70 72 69 6e 74 20 73 ┆ db cr,lf,0 ; boot: ;print s┆ 0x0ce820…0ce840 69 67 6e 6f 6e 20 6d 65 73 73 61 67 65 20 61 6e 64 20 67 6f 20 74 6f 20 63 63 70 0d 0a 3b 09 28 ┆ignon message and go to ccp ; (┆ 0x0ce840…0ce860 6e 6f 74 65 3a 20 6d 64 73 20 62 6f 6f 74 20 69 6e 69 74 69 61 6c 69 7a 65 64 20 69 6f 62 79 74 ┆note: mds boot initialized iobyt┆ 0x0ce860…0ce880 65 20 61 74 20 30 30 30 33 68 29 0d 0a 09 6c 78 69 09 73 70 2c 62 75 66 66 2b 38 30 68 0d 0a 09 ┆e at 0003h) lxi sp,buff+80h ┆ 0x0ce880…0ce8a0 6c 78 69 09 68 2c 73 69 67 6e 6f 6e 0d 0a 09 63 61 6c 6c 09 70 72 6d 73 67 09 3b 70 72 69 6e 74 ┆lxi h,signon call prmsg ;print┆ 0x0ce8a0…0ce8c0 20 6d 65 73 73 61 67 65 0d 0a 09 78 72 61 09 61 09 3b 63 6c 65 61 72 20 61 63 63 75 6d 75 6c 61 ┆ message xra a ;clear accumula┆ 0x0ce8c0…0ce8e0 74 6f 72 0d 0a 09 73 74 61 09 63 64 69 73 6b 09 3b 73 65 74 20 69 6e 69 74 69 61 6c 6c 79 20 74 ┆tor sta cdisk ;set initially t┆ 0x0ce8e0…0ce900 6f 20 64 69 73 6b 20 61 0d 0a 09 6a 6d 70 09 67 6f 63 70 6d 09 3b 67 6f 20 74 6f 20 63 70 2f 6d ┆o disk a jmp gocpm ;go to cp/m┆ 0x0ce900…0ce920 0d 0a 3b 0d 0a 3b 0d 0a 77 62 6f 6f 74 3a 3b 09 6c 6f 61 64 65 72 20 6f 6e 20 74 72 61 63 6b 20 ┆ ; ; wboot:; loader on track ┆ 0x0ce920…0ce940 30 2c 20 73 65 63 74 6f 72 20 31 2c 20 77 68 69 63 68 20 77 69 6c 6c 20 62 65 20 73 6b 69 70 70 ┆0, sector 1, which will be skipp┆ 0x0ce940…0ce960 65 64 20 66 6f 72 20 77 61 72 6d 20 0d 0a 3b 09 72 65 61 64 20 63 70 2f 6d 20 66 72 6f 6d 20 64 ┆ed for warm ; read cp/m from d┆ 0x0ce960…0ce980 69 73 6b 20 2d 20 61 73 73 75 6d 69 6e 67 20 74 68 65 72 65 20 69 73 20 61 20 31 32 38 20 62 79 ┆isk - assuming there is a 128 by┆ 0x0ce980…0ce9a0 74 65 20 63 6f 6c 64 20 73 74 61 72 74 0d 0a 3b 09 73 74 61 72 74 2e 0d 0a 3b 0d 0a 09 6c 78 69 ┆te cold start ; start. ; lxi┆ 0x0ce9a0…0ce9c0 09 73 70 2c 62 75 66 66 09 3b 75 73 69 6e 67 20 64 6d 61 20 2d 20 74 68 75 73 20 38 30 20 74 68 ┆ sp,buff ;using dma - thus 80 th┆ 0x0ce9c0…0ce9e0 72 75 20 66 66 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 73 74 61 63 6b 0d 0a 3b 0d 0a 09 6d ┆ru ff available for stack ; m┆ 0x0ce9e0…0cea00 76 69 09 63 2c 72 65 74 72 79 09 3b 6d 61 78 20 72 65 74 72 69 65 73 0d 0a 09 70 75 73 68 09 62 ┆vi c,retry ;max retries push b┆ 0x0cea00…0cea20 (55, 0, 4) 64 09 37 2a 38 2b 31 0d 0a 09 65 6e 64 69 66 0d 0a 3b 09 6c 65 61 76 65 20 69 6f 62 79 74 65 20 ┆d 7*8+1 endif ; leave iobyte ┆ 0x0cea20…0cea40 73 65 74 0d 0a 3b 09 70 72 65 76 69 6f 75 73 6c 79 20 73 65 6c 65 63 74 65 64 20 64 69 73 6b 20 ┆set ; previously selected disk ┆ 0x0cea40…0cea60 77 61 73 20 62 2c 20 73 65 6e 64 20 70 61 72 61 6d 65 74 65 72 20 74 6f 20 63 70 6d 0d 0a 09 6c ┆was b, send parameter to cpm l┆ 0x0cea60…0cea80 64 61 09 63 64 69 73 6b 09 3b 6c 61 73 74 20 6c 6f 67 67 65 64 20 64 69 73 6b 20 6e 75 6d 62 65 ┆da cdisk ;last logged disk numbe┆ 0x0cea80…0ceaa0 72 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 73 65 6e 64 20 74 6f 20 63 63 70 20 74 6f 20 6c 6f 67 20 ┆r mov c,a ;send to ccp to log ┆ 0x0ceaa0…0ceac0 69 74 20 69 6e 0d 0a 09 65 69 0d 0a 09 6a 6d 70 09 63 70 6d 62 0d 0a 3b 0d 0a 3b 09 65 72 72 6f ┆it in ei jmp cpmb ; ; erro┆ 0x0ceac0…0ceae0 72 20 63 6f 6e 64 69 74 69 6f 6e 20 6f 63 63 75 72 72 65 64 2c 20 70 72 69 6e 74 20 6d 65 73 73 ┆r condition occurred, print mess┆ 0x0ceae0…0ceb00 61 67 65 20 61 6e 64 20 72 65 74 72 79 0d 0a 62 6f 6f 74 65 72 72 3a 0d 0a 09 70 6f 70 09 62 09 ┆age and retry booterr: pop b ┆ 0x0ceb00…0ceb20 3b 72 65 63 61 6c 6c 20 63 6f 75 6e 74 73 0d 0a 09 64 63 72 09 63 0d 0a 09 6a 7a 09 62 6f 6f 74 ┆;recall counts dcr c jz boot┆ 0x0ceb20…0ceb40 65 72 30 0d 0a 3b 09 74 72 79 20 61 67 61 69 6e 0d 0a 09 70 75 73 68 09 62 0d 0a 09 6a 6d 70 09 ┆er0 ; try again push b jmp ┆ 0x0ceb40…0ceb60 77 62 6f 6f 74 30 0d 0a 3b 0d 0a 62 6f 6f 74 65 72 30 3a 0d 0a 3b 09 6f 74 68 65 72 77 69 73 65 ┆wboot0 ; booter0: ; otherwise┆ 0x0ceb60…0ceb80 20 74 6f 6f 20 6d 61 6e 79 20 72 65 74 72 69 65 73 0d 0a 09 6c 78 69 09 68 2c 62 6f 6f 74 6d 73 ┆ too many retries lxi h,bootms┆ 0x0ceb80…0ceba0 67 0d 0a 09 63 61 6c 6c 09 70 72 6d 73 67 0d 0a 09 6a 6d 70 09 72 6d 6f 6e 38 30 09 3b 6d 64 73 ┆g call prmsg jmp rmon80 ;mds┆ 0x0ceba0…0cebc0 20 68 61 72 64 77 61 72 65 20 6d 6f 6e 69 74 6f 72 0d 0a 3b 0d 0a 62 6f 6f 74 6d 73 67 3a 0d 0a ┆ hardware monitor ; bootmsg: ┆ 0x0cebc0…0cebe0 09 64 62 09 27 3f 62 6f 6f 74 27 2c 30 0d 0a 3b 0d 0a 3b 0d 0a 63 6f 6e 73 74 3a 09 3b 63 6f 6e ┆ db '?boot',0 ; ; const: ;con┆ 0x0cebe0…0cec00 73 6f 6c 65 20 73 74 61 74 75 73 20 74 6f 20 72 65 67 2d 61 0d 0a 3b 09 28 65 78 61 63 74 6c 79 ┆sole status to reg-a ; (exactly┆ 0x0cec00…0cec20 (55, 0, 5) 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 62 69 61 73 09 65 71 75 09 30 30 30 30 68 09 3b 67 ┆ if not test bias equ 0000h ;g┆ 0x0cec20…0cec40 65 6e 65 72 61 74 65 20 72 65 6c 6f 63 61 74 61 62 6c 65 20 63 70 2f 6d 20 73 79 73 74 65 6d 0d ┆enerate relocatable cp/m system ┆ 0x0cec40…0cec60 0a 09 65 6e 64 69 66 0d 0a 3b 0d 0a 70 61 74 63 68 09 65 71 75 09 31 36 30 30 68 0d 0a 3b 0d 0a ┆ endif ; patch equ 1600h ; ┆ 0x0cec60…0cec80 09 6f 72 67 09 70 61 74 63 68 0d 0a 63 70 6d 62 09 65 71 75 09 24 2d 70 61 74 63 68 09 3b 62 61 ┆ org patch cpmb equ $-patch ;ba┆ 0x0cec80…0ceca0 73 65 20 6f 66 20 63 70 6d 20 63 6f 6e 73 6f 6c 65 20 70 72 6f 63 65 73 73 6f 72 0d 0a 62 64 6f ┆se of cpm console processor bdo┆ 0x0ceca0…0cecc0 73 09 65 71 75 09 38 30 36 68 2b 63 70 6d 62 09 3b 62 61 73 69 63 20 64 6f 73 20 28 72 65 73 69 ┆s equ 806h+cpmb ;basic dos (resi┆ 0x0cecc0…0cece0 64 65 6e 74 20 70 6f 72 74 69 6f 6e 29 0d 0a 63 70 6d 6c 09 65 71 75 09 24 2d 63 70 6d 62 09 3b ┆dent portion) cpml equ $-cpmb ;┆ 0x0cece0…0ced00 6c 65 6e 67 74 68 20 28 69 6e 20 62 79 74 65 73 29 20 6f 66 20 63 70 6d 20 73 79 73 74 65 6d 0d ┆length (in bytes) of cpm system ┆ 0x0ced00…0ced20 0a 6e 73 65 63 74 73 09 65 71 75 09 63 70 6d 6c 2f 31 32 38 09 3b 6e 75 6d 62 65 72 20 6f 66 20 ┆ nsects equ cpml/128 ;number of ┆ 0x0ced20…0ced40 73 65 63 74 6f 72 73 20 74 6f 20 6c 6f 61 64 0d 0a 6f 66 66 73 65 74 09 65 71 75 09 32 09 3b 6e ┆sectors to load offset equ 2 ;n┆ 0x0ced40…0ced60 75 6d 62 65 72 20 6f 66 20 64 69 73 6b 20 74 72 61 63 6b 73 20 75 73 65 64 20 62 79 20 63 70 2f ┆umber of disk tracks used by cp/┆ 0x0ced60…0ced80 6d 0d 0a 63 64 69 73 6b 09 65 71 75 09 30 30 30 34 68 09 3b 61 64 64 72 65 73 73 20 6f 66 20 6c ┆m cdisk equ 0004h ;address of l┆ 0x0ced80…0ceda0 61 73 74 20 6c 6f 67 67 65 64 20 64 69 73 6b 20 6f 6e 20 77 61 72 6d 20 73 74 61 72 74 0d 0a 62 ┆ast logged disk on warm start b┆ 0x0ceda0…0cedc0 75 66 66 09 65 71 75 09 30 30 38 30 68 09 3b 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 ┆uff equ 0080h ;default buffer ad┆ 0x0cedc0…0cede0 64 72 65 73 73 0d 0a 72 65 74 72 79 09 65 71 75 09 31 30 09 3b 6d 61 78 20 72 65 74 72 69 65 73 ┆dress retry equ 10 ;max retries┆ 0x0cede0…0cee00 20 6f 6e 20 64 69 73 6b 20 69 2f 6f 20 62 65 66 6f 72 65 20 65 72 72 6f 72 0d 0a 3b 0d 0a 3b 09 ┆ on disk i/o before error ; ; ┆ 0x0cee00…0cee20 (55, 0, 6) 64 20 74 6f 20 74 68 65 20 70 61 72 74 69 63 75 6c 61 72 20 6f 70 65 72 61 74 69 6e 67 20 65 6e ┆d to the particular operating en┆ 0x0cee20…0cee40 76 69 72 6f 6e 6d 65 6e 74 2c 20 61 6e 64 20 6d 75 73 74 0d 0a 3b 09 62 65 20 61 6c 74 65 72 65 ┆vironment, and must ; be altere┆ 0x0cee40…0cee60 64 20 66 6f 72 20 61 6e 79 20 73 79 73 74 65 6d 20 77 68 69 63 68 20 64 69 66 66 65 72 73 20 66 ┆d for any system which differs f┆ 0x0cee60…0cee80 72 6f 6d 20 74 68 65 20 69 6e 74 65 6c 20 6d 64 73 2e 0d 0a 3b 0d 0a 3b 09 74 68 65 20 66 6f 6c ┆rom the intel mds. ; ; the fol┆ 0x0cee80…0ceea0 6c 6f 77 69 6e 67 20 63 6f 64 65 20 61 73 73 75 6d 65 73 20 74 68 65 20 6d 64 73 20 6d 6f 6e 69 ┆lowing code assumes the mds moni┆ 0x0ceea0…0ceec0 74 6f 72 20 65 78 69 73 74 73 20 61 74 20 30 66 38 30 30 68 0d 0a 3b 09 61 6e 64 20 75 73 65 73 ┆tor exists at 0f800h ; and uses┆ 0x0ceec0…0ceee0 20 74 68 65 20 69 2f 6f 20 73 75 62 72 6f 75 74 69 6e 65 73 20 77 69 74 68 69 6e 20 74 68 65 20 ┆ the i/o subroutines within the ┆ 0x0ceee0…0cef00 6d 6f 6e 69 74 6f 72 0d 0a 3b 0d 0a 3b 09 77 65 20 61 6c 73 6f 20 61 73 73 75 6d 65 20 74 68 65 ┆monitor ; ; we also assume the┆ 0x0cef00…0cef20 20 6d 64 73 20 73 79 73 74 65 6d 20 68 61 73 20 66 6f 75 72 20 64 69 73 6b 20 64 72 69 76 65 73 ┆ mds system has four disk drives┆ 0x0cef20…0cef40 0d 0a 72 65 76 72 74 09 65 71 75 09 30 66 64 68 09 3b 69 6e 74 65 72 72 75 70 74 20 72 65 76 65 ┆ revrt equ 0fdh ;interrupt reve┆ 0x0cef40…0cef60 72 74 20 70 6f 72 74 0d 0a 69 6e 74 63 09 65 71 75 09 30 66 63 68 09 3b 69 6e 74 65 72 72 75 70 ┆rt port intc equ 0fch ;interrup┆ 0x0cef60…0cef80 74 20 6d 61 73 6b 20 70 6f 72 74 0d 0a 69 63 6f 6e 09 65 71 75 09 30 66 33 68 09 3b 69 6e 74 65 ┆t mask port icon equ 0f3h ;inte┆ 0x0cef80…0cefa0 72 72 75 70 74 20 63 6f 6e 74 72 6f 6c 20 70 6f 72 74 0d 0a 69 6e 74 65 09 65 71 75 09 30 31 31 ┆rrupt control port inte equ 011┆ 0x0cefa0…0cefc0 31 24 31 31 31 30 62 09 3b 65 6e 61 62 6c 65 20 72 73 74 20 30 28 77 61 72 6d 20 62 6f 6f 74 29 ┆1$1110b ;enable rst 0(warm boot)┆ 0x0cefc0…0cefe0 2c 20 72 73 74 20 37 20 28 6d 6f 6e 69 74 6f 72 29 0d 0a 3b 0d 0a 3b 09 6d 64 73 20 6d 6f 6e 69 ┆, rst 7 (monitor) ; ; mds moni┆ 0x0cefe0…0cf000 74 6f 72 20 65 71 75 61 74 65 73 0d 0a 6d 6f 6e 38 30 09 65 71 75 09 30 66 38 30 30 68 09 3b 6d ┆tor equates mon80 equ 0f800h ;m┆ 0x0cf000…0cf020 (55, 0, 7) 0d 0a 77 62 6f 6f 74 30 3a 09 3b 65 6e 74 65 72 20 68 65 72 65 20 6f 6e 20 65 72 72 6f 72 20 72 ┆ wboot0: ;enter here on error r┆ 0x0cf020…0cf040 65 74 72 69 65 73 0d 0a 09 6c 78 69 09 62 2c 63 70 6d 62 09 3b 73 65 74 20 64 6d 61 20 61 64 64 ┆etries lxi b,cpmb ;set dma add┆ 0x0cf040…0cf060 72 65 73 73 20 74 6f 20 73 74 61 72 74 20 6f 66 20 64 69 73 6b 20 73 79 73 74 65 6d 0d 0a 09 63 ┆ress to start of disk system c┆ 0x0cf060…0cf080 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 09 6d 76 69 09 63 2c 30 09 3b 62 6f 6f 74 20 66 72 6f 6d 20 ┆all setdma mvi c,0 ;boot from ┆ 0x0cf080…0cf0a0 64 72 69 76 65 20 30 0d 0a 09 63 61 6c 6c 09 73 65 6c 64 73 6b 0d 0a 09 6d 76 69 09 63 2c 30 0d ┆drive 0 call seldsk mvi c,0 ┆ 0x0cf0a0…0cf0c0 0a 09 63 61 6c 6c 09 73 65 74 74 72 6b 09 3b 73 74 61 72 74 20 77 69 74 68 20 74 72 61 63 6b 20 ┆ call settrk ;start with track ┆ 0x0cf0c0…0cf0e0 30 0d 0a 09 6d 76 69 09 63 2c 32 09 3b 73 74 61 72 74 20 72 65 61 64 69 6e 67 20 73 65 63 74 6f ┆0 mvi c,2 ;start reading secto┆ 0x0cf0e0…0cf100 72 20 32 0d 0a 09 63 61 6c 6c 09 73 65 74 73 65 63 0d 0a 3b 0d 0a 3b 09 72 65 61 64 20 73 65 63 ┆r 2 call setsec ; ; read sec┆ 0x0cf100…0cf120 74 6f 72 73 2c 20 63 6f 75 6e 74 20 6e 73 65 63 74 73 20 74 6f 20 7a 65 72 6f 0d 0a 09 70 6f 70 ┆tors, count nsects to zero pop┆ 0x0cf120…0cf140 09 62 09 3b 31 30 2d 65 72 72 6f 72 20 63 6f 75 6e 74 0d 0a 09 6d 76 69 09 62 2c 6e 73 65 63 74 ┆ b ;10-error count mvi b,nsect┆ 0x0cf140…0cf160 73 0d 0a 72 64 73 65 63 3a 09 3b 72 65 61 64 20 6e 65 78 74 20 73 65 63 74 6f 72 0d 0a 09 70 75 ┆s rdsec: ;read next sector pu┆ 0x0cf160…0cf180 73 68 09 62 09 3b 73 61 76 65 20 73 65 63 74 6f 72 20 63 6f 75 6e 74 0d 0a 09 63 61 6c 6c 09 72 ┆sh b ;save sector count call r┆ 0x0cf180…0cf1a0 65 61 64 0d 0a 09 6a 6e 7a 09 62 6f 6f 74 65 72 72 09 3b 72 65 74 72 79 20 69 66 20 65 72 72 6f ┆ead jnz booterr ;retry if erro┆ 0x0cf1a0…0cf1c0 72 73 20 6f 63 63 75 72 0d 0a 09 6c 68 6c 64 09 69 6f 64 09 3b 69 6e 63 72 65 6d 65 6e 74 20 64 ┆rs occur lhld iod ;increment d┆ 0x0cf1c0…0cf1e0 6d 61 20 61 64 64 72 65 73 73 0d 0a 09 6c 78 69 09 64 2c 31 32 38 09 3b 73 65 63 74 6f 72 20 73 ┆ma address lxi d,128 ;sector s┆ 0x0cf1e0…0cf200 69 7a 65 0d 0a 09 64 61 64 09 64 09 3b 69 6e 63 72 65 6d 65 6e 74 65 64 20 64 6d 61 20 61 64 64 ┆ize dad d ;incremented dma add┆ 0x0cf200…0cf220 (55, 0, 8) 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 63 73 74 ┆ the same as mds call) jmp cst┆ 0x0cf220…0cf240 73 0d 0a 3b 0d 0a 63 6f 6e 69 6e 3a 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 ┆s ; conin: ;console character ┆ 0x0cf240…0cf260 74 6f 20 72 65 67 2d 61 0d 0a 09 63 61 6c 6c 09 63 69 0d 0a 09 61 6e 69 09 37 66 68 09 3b 72 65 ┆to reg-a call ci ani 7fh ;re┆ 0x0cf260…0cf280 6d 6f 76 65 20 70 61 72 69 74 79 20 62 69 74 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 63 6f 6e 6f 75 74 ┆move parity bit ret ; conout┆ 0x0cf280…0cf2a0 3a 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 66 72 6f 6d 20 63 20 74 6f 20 63 ┆: ;console character from c to c┆ 0x0cf2a0…0cf2c0 6f 6e 73 6f 6c 65 20 6f 75 74 0d 0a 09 6a 6d 70 09 63 6f 0d 0a 3b 0d 0a 6c 69 73 74 3a 09 3b 6c ┆onsole out jmp co ; list: ;l┆ 0x0cf2c0…0cf2e0 69 73 74 20 64 65 76 69 63 65 20 6f 75 74 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 ┆ist device out ; (exactly the s┆ 0x0cf2e0…0cf300 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 6c 6f 0d 0a 3b 0d 0a 6c 69 ┆ame as mds call) jmp lo ; li┆ 0x0cf300…0cf320 73 74 73 74 3a 0d 0a 09 3b 72 65 74 75 72 6e 20 6c 69 73 74 20 73 74 61 74 75 73 0d 0a 09 78 72 ┆stst: ;return list status xr┆ 0x0cf320…0cf340 61 09 61 0d 0a 09 72 65 74 09 09 3b 61 6c 77 61 79 73 20 6e 6f 74 20 72 65 61 64 79 0d 0a 3b 0d ┆a a ret ;always not ready ; ┆ 0x0cf340…0cf360 0a 70 75 6e 63 68 3a 09 3b 70 75 6e 63 68 20 64 65 76 69 63 65 20 6f 75 74 0d 0a 3b 09 28 65 78 ┆ punch: ;punch device out ; (ex┆ 0x0cf360…0cf380 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d ┆actly the same as mds call) jm┆ 0x0cf380…0cf3a0 70 09 70 6f 0d 0a 3b 0d 0a 72 65 61 64 65 72 3a 09 3b 72 65 61 64 65 72 20 63 68 61 72 61 63 74 ┆p po ; reader: ;reader charact┆ 0x0cf3a0…0cf3c0 65 72 20 69 6e 20 74 6f 20 72 65 67 2d 61 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 ┆er in to reg-a ; (exactly the s┆ 0x0cf3c0…0cf3e0 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 72 69 0d 0a 3b 0d 0a 68 6f ┆ame as mds call) jmp ri ; ho┆ 0x0cf3e0…0cf400 6d 65 3a 09 3b 6d 6f 76 65 20 74 6f 20 68 6f 6d 65 20 70 6f 73 69 74 69 6f 6e 0d 0a 3b 09 74 72 ┆me: ;move to home position ; tr┆ 0x0cf400…0cf420 (55, 0, 9) 70 65 72 66 6f 72 6d 20 66 6f 6c 6c 6f 77 69 6e 67 20 66 75 6e 63 74 69 6f 6e 73 0d 0a 3b 09 62 ┆perform following functions ; b┆ 0x0cf420…0cf440 6f 6f 74 09 63 6f 6c 64 20 73 74 61 72 74 0d 0a 3b 09 77 62 6f 6f 74 09 77 61 72 6d 20 73 74 61 ┆oot cold start ; wboot warm sta┆ 0x0cf440…0cf460 72 74 20 28 73 61 76 65 20 69 2f 6f 20 62 79 74 65 29 0d 0a 3b 09 28 62 6f 6f 74 20 61 6e 64 20 ┆rt (save i/o byte) ; (boot and ┆ 0x0cf460…0cf480 77 62 6f 6f 74 20 61 72 65 20 74 68 65 20 73 61 6d 65 20 66 6f 72 20 6d 64 73 29 0d 0a 3b 09 63 ┆wboot are the same for mds) ; c┆ 0x0cf480…0cf4a0 6f 6e 73 74 09 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 0d 0a 3b 09 09 72 65 67 2d 61 20 3d 20 ┆onst console status ; reg-a = ┆ 0x0cf4a0…0cf4c0 30 30 20 69 66 20 6e 6f 20 63 68 61 72 61 63 74 65 72 20 72 65 61 64 79 0d 0a 3b 09 09 72 65 67 ┆00 if no character ready ; reg┆ 0x0cf4c0…0cf4e0 2d 61 20 3d 20 66 66 20 69 66 20 63 68 61 72 61 63 74 65 72 20 72 65 61 64 79 0d 0a 3b 09 63 6f ┆-a = ff if character ready ; co┆ 0x0cf4e0…0cf500 6e 69 6e 09 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 28 72 65 73 75 6c 74 ┆nin console character in (result┆ 0x0cf500…0cf520 20 69 6e 20 72 65 67 2d 61 29 0d 0a 3b 09 63 6f 6e 6f 75 74 09 63 6f 6e 73 6f 6c 65 20 63 68 61 ┆ in reg-a) ; conout console cha┆ 0x0cf520…0cf540 72 61 63 74 65 72 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 6c 69 ┆racter out (char in reg-c) ; li┆ 0x0cf540…0cf560 73 74 09 6c 69 73 74 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 70 ┆st list out (char in reg-c) ; p┆ 0x0cf560…0cf580 75 6e 63 68 09 70 75 6e 63 68 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a ┆unch punch out (char in reg-c) ┆ 0x0cf580…0cf5a0 3b 09 72 65 61 64 65 72 09 70 61 70 65 72 20 74 61 70 65 20 72 65 61 64 65 72 20 69 6e 20 28 72 ┆; reader paper tape reader in (r┆ 0x0cf5a0…0cf5c0 65 73 75 6c 74 20 74 6f 20 72 65 67 2d 61 29 0d 0a 3b 09 68 6f 6d 65 09 6d 6f 76 65 20 74 6f 20 ┆esult to reg-a) ; home move to ┆ 0x0cf5c0…0cf5e0 74 72 61 63 6b 20 30 30 0d 0a 3b 0d 0a 3b 09 28 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 61 ┆track 00 ; ; (the following ca┆ 0x0cf5e0…0cf600 6c 6c 73 20 73 65 74 2d 75 70 20 74 68 65 20 69 6f 20 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 ┆lls set-up the io parameter bloc┆ 0x0cf600…0cf620 (55, 0, 10) 64 73 20 6d 6f 6e 69 74 6f 72 0d 0a 72 6d 6f 6e 38 30 09 65 71 75 09 30 66 66 30 66 68 09 3b 72 ┆ds monitor rmon80 equ 0ff0fh ;r┆ 0x0cf620…0cf640 65 73 74 61 72 74 20 6d 6f 6e 38 30 20 28 62 6f 6f 74 20 65 72 72 6f 72 29 0d 0a 63 69 09 65 71 ┆estart mon80 (boot error) ci eq┆ 0x0cf640…0cf660 75 09 30 66 38 30 33 68 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 72 ┆u 0f803h ;console character to r┆ 0x0cf660…0cf680 65 67 2d 61 0d 0a 72 69 09 65 71 75 09 30 66 38 30 36 68 09 3b 72 65 61 64 65 72 20 69 6e 20 74 ┆eg-a ri equ 0f806h ;reader in t┆ 0x0cf680…0cf6a0 6f 20 72 65 67 2d 61 0d 0a 63 6f 09 65 71 75 09 30 66 38 30 39 68 09 3b 63 6f 6e 73 6f 6c 65 20 ┆o reg-a co equ 0f809h ;console ┆ 0x0cf6a0…0cf6c0 63 68 61 72 20 66 72 6f 6d 20 63 20 74 6f 20 63 6f 6e 73 6f 6c 65 20 6f 75 74 0d 0a 70 6f 09 65 ┆char from c to console out po e┆ 0x0cf6c0…0cf6e0 71 75 09 30 66 38 30 63 68 09 3b 70 75 6e 63 68 20 63 68 61 72 20 66 72 6f 6d 20 63 20 74 6f 20 ┆qu 0f80ch ;punch char from c to ┆ 0x0cf6e0…0cf700 70 75 6e 63 68 20 64 65 76 69 63 65 0d 0a 6c 6f 09 65 71 75 09 30 66 38 30 66 68 09 3b 6c 69 73 ┆punch device lo equ 0f80fh ;lis┆ 0x0cf700…0cf720 74 20 66 72 6f 6d 20 63 20 74 6f 20 6c 69 73 74 20 64 65 76 69 63 65 0d 0a 63 73 74 73 09 65 71 ┆t from c to list device csts eq┆ 0x0cf720…0cf740 75 09 30 66 38 31 32 68 09 3b 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 20 30 30 2f 66 66 20 74 ┆u 0f812h ;console status 00/ff t┆ 0x0cf740…0cf760 6f 20 72 65 67 69 73 74 65 72 20 61 0d 0a 3b 0d 0a 3b 09 64 69 73 6b 20 70 6f 72 74 73 20 61 6e ┆o register a ; ; disk ports an┆ 0x0cf760…0cf780 64 20 63 6f 6d 6d 61 6e 64 73 0d 0a 62 61 73 65 09 65 71 75 09 37 38 68 09 3b 62 61 73 65 20 6f ┆d commands base equ 78h ;base o┆ 0x0cf780…0cf7a0 66 20 64 69 73 6b 20 63 6f 6d 6d 61 6e 64 20 69 6f 20 70 6f 72 74 73 0d 0a 64 73 74 61 74 09 65 ┆f disk command io ports dstat e┆ 0x0cf7a0…0cf7c0 71 75 09 62 61 73 65 09 3b 64 69 73 6b 20 73 74 61 74 75 73 20 28 69 6e 70 75 74 29 0d 0a 72 74 ┆qu base ;disk status (input) rt┆ 0x0cf7c0…0cf7e0 79 70 65 09 65 71 75 09 62 61 73 65 2b 31 09 3b 72 65 73 75 6c 74 20 74 79 70 65 20 28 69 6e 70 ┆ype equ base+1 ;result type (inp┆ 0x0cf7e0…0cf800 75 74 29 0d 0a 72 62 79 74 65 09 65 71 75 09 62 61 73 65 2b 33 09 3b 72 65 73 75 6c 74 20 62 79 ┆ut) rbyte equ base+3 ;result by┆ 0x0cf800…0cf820 (55, 0, 11) 72 65 73 73 20 69 6e 20 68 6c 0d 0a 09 6d 6f 76 09 62 2c 68 0d 0a 09 6d 6f 76 09 63 2c 6c 09 3b ┆ress in hl mov b,h mov c,l ;┆ 0x0cf820…0cf840 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 20 74 6f 20 73 65 74 20 64 6d 61 0d 0a 09 63 61 6c 6c ┆ready for call to set dma call┆ 0x0cf840…0cf860 09 73 65 74 64 6d 61 0d 0a 09 6c 64 61 09 69 6f 73 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 ┆ setdma lda ios ;sector number┆ 0x0cf860…0cf880 20 6a 75 73 74 20 72 65 61 64 0d 0a 09 63 70 69 09 32 36 09 3b 72 65 61 64 20 6c 61 73 74 20 73 ┆ just read cpi 26 ;read last s┆ 0x0cf880…0cf8a0 65 63 74 6f 72 3f 0d 0a 09 6a 63 09 72 64 31 0d 0a 3b 09 6d 75 73 74 20 62 65 20 73 65 63 74 6f ┆ector? jc rd1 ; must be secto┆ 0x0cf8a0…0cf8c0 72 20 32 36 2c 20 7a 65 72 6f 20 61 6e 64 20 67 6f 20 74 6f 20 6e 65 78 74 20 74 72 61 63 6b 0d ┆r 26, zero and go to next track ┆ 0x0cf8c0…0cf8e0 0a 09 6c 64 61 09 69 6f 74 09 3b 67 65 74 20 74 72 61 63 6b 20 74 6f 20 72 65 67 69 73 74 65 72 ┆ lda iot ;get track to register┆ 0x0cf8e0…0cf900 20 61 0d 0a 09 69 6e 72 09 61 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 72 65 61 64 79 20 66 6f 72 20 ┆ a inr a mov c,a ;ready for ┆ 0x0cf900…0cf920 63 61 6c 6c 0d 0a 09 63 61 6c 6c 09 73 65 74 74 72 6b 0d 0a 09 78 72 61 09 61 09 3b 63 6c 65 61 ┆call call settrk xra a ;clea┆ 0x0cf920…0cf940 72 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 0d 0a 72 64 31 3a 09 69 6e 72 09 61 09 3b 74 6f 20 ┆r sector number rd1: inr a ;to ┆ 0x0cf940…0cf960 6e 65 78 74 20 73 65 63 74 6f 72 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 72 65 61 64 79 20 66 6f 72 ┆next sector mov c,a ;ready for┆ 0x0cf960…0cf980 20 63 61 6c 6c 0d 0a 09 63 61 6c 6c 09 73 65 74 73 65 63 0d 0a 09 70 6f 70 09 62 09 3b 72 65 63 ┆ call call setsec pop b ;rec┆ 0x0cf980…0cf9a0 61 6c 6c 20 73 65 63 74 6f 72 20 63 6f 75 6e 74 0d 0a 09 64 63 72 09 62 09 3b 64 6f 6e 65 3f 0d ┆all sector count dcr b ;done? ┆ 0x0cf9a0…0cf9c0 0a 09 6a 6e 7a 09 72 64 73 65 63 0d 0a 3b 0d 0a 3b 09 64 6f 6e 65 20 77 69 74 68 20 74 68 65 20 ┆ jnz rdsec ; ; done with the ┆ 0x0cf9c0…0cf9e0 6c 6f 61 64 2c 20 72 65 73 65 74 20 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 ┆load, reset default buffer addre┆ 0x0cf9e0…0cfa00 73 73 0d 0a 67 6f 63 70 6d 3a 09 3b 28 65 6e 74 65 72 20 68 65 72 65 20 66 72 6f 6d 20 63 6f 6c ┆ss gocpm: ;(enter here from col┆ 0x0cfa00…0cfa20 (55, 0, 12) 65 61 74 20 61 73 20 74 72 61 63 6b 20 30 30 20 73 65 65 6b 0d 0a 09 6d 76 69 09 63 2c 30 0d 0a ┆eat as track 00 seek mvi c,0 ┆ 0x0cfa20…0cfa40 09 6a 6d 70 09 73 65 74 74 72 6b 0d 0a 3b 0d 0a 73 65 6c 64 73 6b 3a 09 3b 73 65 6c 65 63 74 20 ┆ jmp settrk ; seldsk: ;select ┆ 0x0cfa40…0cfa60 64 69 73 6b 20 67 69 76 65 6e 20 62 79 20 72 65 67 69 73 74 65 72 20 63 0d 0a 09 6c 78 69 09 68 ┆disk given by register c lxi h┆ 0x0cfa60…0cfa80 2c 30 30 30 30 68 09 3b 72 65 74 75 72 6e 20 30 30 30 30 20 69 66 20 65 72 72 6f 72 0d 0a 09 6d ┆,0000h ;return 0000 if error m┆ 0x0cfa80…0cfaa0 6f 76 09 61 2c 63 0d 0a 09 63 70 69 09 6e 64 69 73 6b 73 09 3b 74 6f 6f 20 6c 61 72 67 65 3f 0d ┆ov a,c cpi ndisks ;too large? ┆ 0x0cfaa0…0cfac0 0a 09 72 6e 63 09 09 3b 6c 65 61 76 65 20 48 4c 20 3d 20 30 30 30 30 0d 0a 3b 0d 0a 09 61 6e 69 ┆ rnc ;leave HL = 0000 ; ani┆ 0x0cfac0…0cfae0 09 31 30 62 09 3b 30 30 20 30 30 20 66 6f 72 20 64 72 69 76 65 20 30 2c 31 20 61 6e 64 20 31 30 ┆ 10b ;00 00 for drive 0,1 and 10┆ 0x0cfae0…0cfb00 20 31 30 20 66 6f 72 20 64 72 69 76 65 20 32 2c 33 0d 0a 09 73 74 61 09 64 62 61 6e 6b 09 3b 74 ┆ 10 for drive 2,3 sta dbank ;t┆ 0x0cfb00…0cfb20 6f 20 73 65 6c 65 63 74 20 64 72 69 76 65 20 62 61 6e 6b 0d 0a 09 6d 6f 76 09 61 2c 63 09 3b 30 ┆o select drive bank mov a,c ;0┆ 0x0cfb20…0cfb40 30 2c 20 30 31 2c 20 31 30 2c 20 31 31 0d 0a 09 61 6e 69 09 31 62 09 3b 6d 64 73 20 68 61 73 20 ┆0, 01, 10, 11 ani 1b ;mds has ┆ 0x0cfb40…0cfb60 30 2c 31 20 61 74 20 37 38 2c 20 32 2c 33 20 61 74 20 38 38 0d 0a 09 6f 72 61 09 61 09 3b 72 65 ┆0,1 at 78, 2,3 at 88 ora a ;re┆ 0x0cfb60…0cfb80 73 75 6c 74 20 30 30 3f 0d 0a 09 6a 7a 09 73 65 74 64 72 69 76 65 0d 0a 09 6d 76 69 09 61 2c 30 ┆sult 00? jz setdrive mvi a,0┆ 0x0cfb80…0cfba0 30 31 31 30 30 30 30 62 09 3b 73 65 6c 65 63 74 73 20 64 72 69 76 65 20 31 20 69 6e 20 62 61 6e ┆0110000b ;selects drive 1 in ban┆ 0x0cfba0…0cfbc0 6b 0d 0a 73 65 74 64 72 69 76 65 3a 0d 0a 09 6d 6f 76 09 62 2c 61 09 3b 73 61 76 65 20 74 68 65 ┆k setdrive: mov b,a ;save the┆ 0x0cfbc0…0cfbe0 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6c 78 69 09 68 2c 69 6f 66 09 3b 69 6f 20 66 75 6e 63 74 69 ┆ function lxi h,iof ;io functi┆ 0x0cfbe0…0cfc00 6f 6e 0d 0a 09 6d 6f 76 09 61 2c 6d 0d 0a 09 61 6e 69 09 31 31 30 30 31 31 31 31 62 09 3b 6d 61 ┆on mov a,m ani 11001111b ;ma┆ 0x0cfc00…0cfc20 (55, 0, 13) 6b 20 66 6f 72 20 74 68 65 0d 0a 3b 09 6d 64 73 2c 20 77 68 69 63 68 20 69 73 20 75 73 65 64 20 ┆k for the ; mds, which is used ┆ 0x0cfc20…0cfc40 74 6f 20 70 65 72 66 6f 72 6d 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 73 20 61 6e 64 20 ┆to perform subsequent reads and ┆ 0x0cfc40…0cfc60 77 72 69 74 65 73 29 0d 0a 3b 09 73 65 6c 64 73 6b 09 73 65 6c 65 63 74 20 64 69 73 6b 20 67 69 ┆writes) ; seldsk select disk gi┆ 0x0cfc60…0cfc80 76 65 6e 20 62 79 20 72 65 67 2d 63 20 28 30 2c 31 2c 32 2e 2e 2e 29 0d 0a 3b 09 73 65 74 74 72 ┆ven by reg-c (0,1,2...) ; settr┆ 0x0cfc80…0cfca0 6b 09 73 65 74 20 74 72 61 63 6b 20 61 64 64 72 65 73 73 20 28 30 2c 2e 2e 2e 37 36 29 20 66 6f ┆k set track address (0,...76) fo┆ 0x0cfca0…0cfcc0 72 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 2f 77 72 69 74 65 0d 0a 3b 09 73 65 74 73 65 ┆r subsequent read/write ; setse┆ 0x0cfcc0…0cfce0 63 09 73 65 74 20 73 65 63 74 6f 72 20 61 64 64 72 65 73 73 20 28 31 2c 2e 2e 2e 2c 32 36 29 20 ┆c set sector address (1,...,26) ┆ 0x0cfce0…0cfd00 66 6f 72 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 2f 77 72 69 74 65 0d 0a 3b 09 73 65 74 ┆for subsequent read/write ; set┆ 0x0cfd00…0cfd20 64 6d 61 09 73 65 74 20 73 75 62 73 65 71 75 65 6e 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 28 ┆dma set subsequent dma address (┆ 0x0cfd20…0cfd40 69 6e 69 74 69 61 6c 6c 79 20 38 30 68 29 0d 0a 3b 0d 0a 3b 09 28 72 65 61 64 20 61 6e 64 20 77 ┆initially 80h) ; ; (read and w┆ 0x0cfd40…0cfd60 72 69 74 65 20 61 73 73 75 6d 65 20 70 72 65 76 69 6f 75 73 20 63 61 6c 6c 73 20 74 6f 20 73 65 ┆rite assume previous calls to se┆ 0x0cfd60…0cfd80 74 20 75 70 20 74 68 65 20 69 6f 20 70 61 72 61 6d 65 74 65 72 73 29 0d 0a 3b 09 72 65 61 64 09 ┆t up the io parameters) ; read ┆ 0x0cfd80…0cfda0 72 65 61 64 20 74 72 61 63 6b 2f 73 65 63 74 6f 72 20 74 6f 20 70 72 65 73 65 74 20 64 6d 61 20 ┆read track/sector to preset dma ┆ 0x0cfda0…0cfdc0 61 64 64 72 65 73 73 0d 0a 3b 09 77 72 69 74 65 09 77 72 69 74 65 20 74 72 61 63 6b 2f 73 65 63 ┆address ; write write track/sec┆ 0x0cfdc0…0cfde0 74 6f 72 20 66 72 6f 6d 20 70 72 65 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 3b 0d 0a ┆tor from preset dma address ; ┆ 0x0cfde0…0cfe00 3b 09 6a 75 6d 70 20 76 65 63 74 6f 72 20 66 6f 72 20 69 6e 64 69 76 69 75 61 6c 20 72 6f 75 74 ┆; jump vector for indiviual rout┆ 0x0cfe00…0cfe20 (55, 0, 14) 74 65 20 28 69 6e 70 75 74 29 0d 0a 3b 0d 0a 69 6c 6f 77 09 65 71 75 09 62 61 73 65 2b 31 09 3b ┆te (input) ; ilow equ base+1 ;┆ 0x0cfe20…0cfe40 69 6f 70 62 20 6c 6f 77 20 61 64 64 72 65 73 73 20 28 6f 75 74 70 75 74 29 0d 0a 69 68 69 67 68 ┆iopb low address (output) ihigh┆ 0x0cfe40…0cfe60 09 65 71 75 09 62 61 73 65 2b 32 09 3b 69 6f 70 62 20 68 69 67 68 20 61 64 64 72 65 73 73 20 28 ┆ equ base+2 ;iopb high address (┆ 0x0cfe60…0cfe80 6f 75 74 70 75 74 29 0d 0a 3b 0d 0a 72 65 61 64 66 09 65 71 75 09 34 68 09 3b 72 65 61 64 20 66 ┆output) ; readf equ 4h ;read f┆ 0x0cfe80…0cfea0 75 6e 63 74 69 6f 6e 0d 0a 77 72 69 74 66 09 65 71 75 09 36 68 09 3b 77 72 69 74 65 20 66 75 6e ┆unction writf equ 6h ;write fun┆ 0x0cfea0…0cfec0 63 74 69 6f 6e 0d 0a 72 65 63 61 6c 09 65 71 75 09 33 68 09 3b 72 65 63 61 6c 69 62 72 61 74 65 ┆ction recal equ 3h ;recalibrate┆ 0x0cfec0…0cfee0 20 64 72 69 76 65 0d 0a 69 6f 72 64 79 09 65 71 75 09 34 68 09 3b 69 2f 6f 20 66 69 6e 69 73 68 ┆ drive iordy equ 4h ;i/o finish┆ 0x0cfee0…0cff00 65 64 20 6d 61 73 6b 0d 0a 63 72 09 65 71 75 09 30 64 68 09 3b 63 61 72 72 69 61 67 65 20 72 65 ┆ed mask cr equ 0dh ;carriage re┆ 0x0cff00…0cff20 74 75 72 6e 0d 0a 6c 66 09 65 71 75 09 30 61 68 09 3b 6c 69 6e 65 20 66 65 65 64 0d 0a 3b 0d 0a ┆turn lf equ 0ah ;line feed ; ┆ 0x0cff20…0cff40 73 69 67 6e 6f 6e 3a 09 3b 73 69 67 6e 6f 6e 20 6d 65 73 73 61 67 65 3a 20 78 78 6b 20 63 70 2f ┆signon: ;signon message: xxk cp/┆ 0x0cff40…0cff60 6d 20 76 65 72 73 20 79 2e 79 0d 0a 09 64 62 09 63 72 2c 6c 66 2c 6c 66 0d 0a 09 69 66 09 74 65 ┆m vers y.y db cr,lf,lf if te┆ 0x0cff60…0cff80 73 74 0d 0a 09 64 62 09 27 33 32 27 09 3b 33 32 6b 20 65 78 61 6d 70 6c 65 20 62 69 6f 73 0d 0a ┆st db '32' ;32k example bios ┆ 0x0cff80…0cffa0 09 65 6e 64 69 66 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 09 64 62 09 27 30 30 27 09 3b ┆ endif if not test db '00' ;┆ 0x0cffa0…0cffc0 6d 65 6d 6f 72 79 20 73 69 7a 65 20 66 69 6c 6c 65 64 20 62 79 20 72 65 6c 6f 63 61 74 6f 72 0d ┆memory size filled by relocator ┆ 0x0cffc0…0cffe0 0a 09 65 6e 64 69 66 0d 0a 09 64 62 09 27 6b 20 43 50 2f 4d 20 76 65 72 73 20 27 0d 0a 09 64 62 ┆ endif db 'k CP/M vers ' db┆ 0x0cffe0…0d0000 09 76 65 72 73 2f 31 30 2b 27 30 27 2c 27 2e 27 2c 76 65 72 73 20 6d 6f 64 20 31 30 2b 27 30 27 ┆ vers/10+'0','.',vers mod 10+'0'┆ 0x0d0000…0d0020 (55, 0, 15) 64 20 73 74 61 72 74 20 62 6f 6f 74 29 0d 0a 3b 09 65 6e 61 62 6c 65 20 72 73 74 30 20 61 6e 64 ┆d start boot) ; enable rst0 and┆ 0x0d0020…0d0040 20 72 73 74 37 0d 0a 09 64 69 0d 0a 09 6d 76 69 09 61 2c 31 32 68 09 3b 69 6e 69 74 69 61 6c 69 ┆ rst7 di mvi a,12h ;initiali┆ 0x0d0040…0d0060 7a 65 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6f 75 74 09 72 65 76 72 74 0d 0a 09 78 72 61 09 61 0d 0a ┆ze command out revrt xra a ┆ 0x0d0060…0d0080 09 6f 75 74 09 69 6e 74 63 09 3b 63 6c 65 61 72 65 64 0d 0a 09 6d 76 69 09 61 2c 69 6e 74 65 09 ┆ out intc ;cleared mvi a,inte ┆ 0x0d0080…0d00a0 3b 72 73 74 30 20 61 6e 64 20 72 73 74 37 20 62 69 74 73 20 6f 6e 0d 0a 09 6f 75 74 09 69 6e 74 ┆;rst0 and rst7 bits on out int┆ 0x0d00a0…0d00c0 63 0d 0a 09 78 72 61 09 61 0d 0a 09 6f 75 74 09 69 63 6f 6e 09 3b 69 6e 74 65 72 72 75 70 74 20 ┆c xra a out icon ;interrupt ┆ 0x0d00c0…0d00e0 63 6f 6e 74 72 6f 6c 0d 0a 3b 0d 0a 3b 09 73 65 74 20 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 ┆control ; ; set default buffer┆ 0x0d00e0…0d0100 20 61 64 64 72 65 73 73 20 74 6f 20 38 30 68 0d 0a 09 6c 78 69 09 62 2c 62 75 66 66 0d 0a 09 63 ┆ address to 80h lxi b,buff c┆ 0x0d0100…0d0120 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 3b 0d 0a 3b 09 72 65 73 65 74 20 6d 6f 6e 69 74 6f 72 20 65 ┆all setdma ; ; reset monitor e┆ 0x0d0120…0d0140 6e 74 72 79 20 70 6f 69 6e 74 73 0d 0a 09 6d 76 69 09 61 2c 6a 6d 70 0d 0a 09 73 74 61 09 30 0d ┆ntry points mvi a,jmp sta 0 ┆ 0x0d0140…0d0160 0a 09 6c 78 69 09 68 2c 77 62 6f 6f 74 65 0d 0a 09 73 68 6c 64 09 31 09 3b 6a 6d 70 20 77 62 6f ┆ lxi h,wboote shld 1 ;jmp wbo┆ 0x0d0160…0d0180 6f 74 20 61 74 20 6c 6f 63 61 74 69 6f 6e 20 30 30 0d 0a 09 73 74 61 09 35 0d 0a 09 6c 78 69 09 ┆ot at location 00 sta 5 lxi ┆ 0x0d0180…0d01a0 68 2c 62 64 6f 73 0d 0a 09 73 68 6c 64 09 36 09 3b 6a 6d 70 20 62 64 6f 73 20 61 74 20 6c 6f 63 ┆h,bdos shld 6 ;jmp bdos at loc┆ 0x0d01a0…0d01c0 61 74 69 6f 6e 20 35 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 09 73 74 61 09 37 2a 38 09 ┆ation 5 if not test sta 7*8 ┆ 0x0d01c0…0d01e0 3b 6a 6d 70 20 74 6f 20 6d 6f 6e 38 30 20 28 6d 61 79 20 68 61 76 65 20 62 65 65 6e 20 63 68 61 ┆;jmp to mon80 (may have been cha┆ 0x0d01e0…0d0200 6e 67 65 64 20 62 79 20 64 64 74 29 0d 0a 09 6c 78 69 09 68 2c 6d 6f 6e 38 30 0d 0a 09 73 68 6c ┆nged by ddt) lxi h,mon80 shl┆ 0x0d0200…0d0220 (55, 1, 1) 73 6b 20 6f 75 74 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6f 72 61 09 62 09 3b 6d 61 73 6b ┆sk out disk number ora b ;mask┆ 0x0d0220…0d0240 20 69 6e 20 6e 65 77 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6d 6f 76 09 6d 2c 61 09 3b 73 ┆ in new disk number mov m,a ;s┆ 0x0d0240…0d0260 61 76 65 20 69 74 20 69 6e 20 69 6f 70 62 0d 0a 09 6d 6f 76 09 6c 2c 63 0d 0a 09 6d 76 69 09 68 ┆ave it in iopb mov l,c mvi h┆ 0x0d0260…0d0280 2c 30 09 3b 48 4c 3d 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 64 61 64 09 68 09 3b 2a 32 0d 0a ┆,0 ;HL=disk number dad h ;*2 ┆ 0x0d0280…0d02a0 09 64 61 64 09 68 09 3b 2a 34 0d 0a 09 64 61 64 09 68 09 3b 2a 38 0d 0a 09 64 61 64 09 68 09 3b ┆ dad h ;*4 dad h ;*8 dad h ;┆ 0x0d02a0…0d02c0 2a 31 36 0d 0a 09 6c 78 69 09 64 2c 64 70 62 61 73 65 0d 0a 09 64 61 64 09 64 09 3b 48 4c 3d 64 ┆*16 lxi d,dpbase dad d ;HL=d┆ 0x0d02c0…0d02e0 69 73 6b 20 68 65 61 64 65 72 20 74 61 62 6c 65 20 61 64 64 72 65 73 73 0d 0a 09 72 65 74 0d 0a ┆isk header table address ret ┆ 0x0d02e0…0d0300 3b 0d 0a 3b 0d 0a 73 65 74 74 72 6b 3a 09 3b 73 65 74 20 74 72 61 63 6b 20 61 64 64 72 65 73 73 ┆; ; settrk: ;set track address┆ 0x0d0300…0d0320 20 67 69 76 65 6e 20 62 79 20 63 0d 0a 09 6c 78 69 09 68 2c 69 6f 74 0d 0a 09 6d 6f 76 09 6d 2c ┆ given by c lxi h,iot mov m,┆ 0x0d0320…0d0340 63 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 73 65 74 73 65 63 3a 09 3b 73 65 74 20 73 65 63 74 6f 72 20 ┆c ret ; setsec: ;set sector ┆ 0x0d0340…0d0360 6e 75 6d 62 65 72 20 67 69 76 65 6e 20 62 79 20 63 0d 0a 09 6c 78 69 09 68 2c 69 6f 73 0d 0a 09 ┆number given by c lxi h,ios ┆ 0x0d0360…0d0380 6d 6f 76 09 6d 2c 63 0d 0a 09 72 65 74 0d 0a 73 65 63 74 72 61 6e 3a 0d 0a 09 09 3b 74 72 61 6e ┆mov m,c ret sectran: ;tran┆ 0x0d0380…0d03a0 73 6c 61 74 65 20 73 65 63 74 6f 72 20 62 63 20 75 73 69 6e 67 20 74 61 62 6c 65 20 61 74 20 64 ┆slate sector bc using table at d┆ 0x0d03a0…0d03c0 65 0d 0a 09 6d 76 69 09 62 2c 30 09 3b 64 6f 75 62 6c 65 20 70 72 65 63 69 73 69 6f 6e 20 73 65 ┆e mvi b,0 ;double precision se┆ 0x0d03c0…0d03e0 63 74 6f 72 20 6e 75 6d 62 65 72 20 69 6e 20 42 43 0d 0a 09 78 63 68 67 09 09 3b 74 72 61 6e 73 ┆ctor number in BC xchg ;trans┆ 0x0d03e0…0d0400 6c 61 74 65 20 74 61 62 6c 65 20 61 64 64 72 65 73 73 20 74 6f 20 48 4c 0d 0a 09 64 61 64 09 62 ┆late table address to HL dad b┆ 0x0d0400…0d0420 (55, 1, 2) 6f 72 20 69 6f 70 62 0d 0a 09 6a 6e 7a 09 69 6f 64 72 31 09 3b 64 72 69 76 65 20 62 61 6e 6b 20 ┆or iopb jnz iodr1 ;drive bank ┆ 0x0d0420…0d0440 31 3f 0d 0a 09 6f 75 74 09 69 6c 6f 77 09 09 3b 6c 6f 77 20 61 64 64 72 65 73 73 20 74 6f 20 63 ┆1? out ilow ;low address to c┆ 0x0d0440…0d0460 6f 6e 74 72 6f 6c 6c 65 72 0d 0a 09 6d 6f 76 09 61 2c 62 0d 0a 09 6f 75 74 09 69 68 69 67 68 09 ┆ontroller mov a,b out ihigh ┆ 0x0d0460…0d0480 3b 68 69 67 68 20 61 64 64 72 65 73 73 0d 0a 09 6a 6d 70 09 77 61 69 74 30 09 09 3b 74 6f 20 77 ┆;high address jmp wait0 ;to w┆ 0x0d0480…0d04a0 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 65 0d 0a 3b 0d 0a 69 6f 64 72 31 3a 09 3b 64 72 69 ┆ait for complete ; iodr1: ;dri┆ 0x0d04a0…0d04c0 76 65 20 62 61 6e 6b 20 31 0d 0a 09 6f 75 74 09 69 6c 6f 77 2b 31 30 68 09 3b 38 38 20 66 6f 72 ┆ve bank 1 out ilow+10h ;88 for┆ 0x0d04c0…0d04e0 20 64 72 69 76 65 20 62 61 6e 6b 20 31 30 0d 0a 09 6d 6f 76 09 61 2c 62 0d 0a 09 6f 75 74 09 69 ┆ drive bank 10 mov a,b out i┆ 0x0d04e0…0d0500 68 69 67 68 2b 31 30 68 0d 0a 3b 0d 0a 77 61 69 74 30 3a 09 63 61 6c 6c 09 69 6e 73 74 61 74 09 ┆high+10h ; wait0: call instat ┆ 0x0d0500…0d0520 09 3b 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 0d 0a 09 61 6e 69 09 69 6f 72 64 ┆ ;wait for completion ani iord┆ 0x0d0520…0d0540 79 09 09 3b 72 65 61 64 79 3f 0d 0a 09 6a 7a 09 77 61 69 74 30 0d 0a 3b 0d 0a 3b 09 63 68 65 63 ┆y ;ready? jz wait0 ; ; chec┆ 0x0d0540…0d0560 6b 20 69 6f 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 6f 6b 0d 0a 09 63 61 6c 6c 09 69 6e 74 79 70 65 ┆k io completion ok call intype┆ 0x0d0560…0d0580 09 09 3b 6d 75 73 74 20 62 65 20 69 6f 20 63 6f 6d 70 6c 65 74 65 20 28 30 30 29 20 75 6e 6c 69 ┆ ;must be io complete (00) unli┆ 0x0d0580…0d05a0 6e 6b 65 64 0d 0a 3b 09 30 30 20 75 6e 6c 69 6e 6b 65 64 20 69 2f 6f 20 63 6f 6d 70 6c 65 74 65 ┆nked ; 00 unlinked i/o complete┆ 0x0d05a0…0d05c0 2c 20 20 20 20 30 31 20 6c 69 6e 6b 65 64 20 69 2f 6f 20 63 6f 6d 70 6c 65 74 65 20 28 6e 6f 74 ┆, 01 linked i/o complete (not┆ 0x0d05c0…0d05e0 20 75 73 65 64 29 0d 0a 3b 09 31 30 20 64 69 73 6b 20 73 74 61 74 75 73 20 63 68 61 6e 67 65 64 ┆ used) ; 10 disk status changed┆ 0x0d05e0…0d0600 20 20 20 20 20 20 20 31 31 20 28 6e 6f 74 20 75 73 65 64 29 0d 0a 09 63 70 69 09 31 30 62 09 09 ┆ 11 (not used) cpi 10b ┆ 0x0d0600…0d0620 (55, 1, 3) 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 62 79 74 31 0d 0a 09 69 6e 09 72 62 79 74 65 0d 0a 09 72 65 ┆a a jnz inbyt1 in rbyte re┆ 0x0d0620…0d0640 74 0d 0a 69 6e 62 79 74 31 3a 09 69 6e 09 72 62 79 74 65 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b ┆t inbyt1: in rbyte+10h ret ;┆ 0x0d0640…0d0660 0d 0a 69 6e 73 74 61 74 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e ┆ instat: lda dbank ora a jn┆ 0x0d0660…0d0680 7a 09 69 6e 73 74 61 31 0d 0a 09 69 6e 09 64 73 74 61 74 0d 0a 09 72 65 74 0d 0a 69 6e 73 74 61 ┆z insta1 in dstat ret insta┆ 0x0d0680…0d06a0 31 3a 09 69 6e 09 64 73 74 61 74 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 0d 0a ┆1: in dstat+10h ret ; ; ; ┆ 0x0d06a0…0d06c0 3b 09 64 61 74 61 20 61 72 65 61 73 20 28 6d 75 73 74 20 62 65 20 69 6e 20 72 61 6d 29 0d 0a 64 ┆; data areas (must be in ram) d┆ 0x0d06c0…0d06e0 62 61 6e 6b 3a 09 64 62 09 30 09 3b 64 69 73 6b 20 62 61 6e 6b 20 30 30 20 69 66 20 64 72 69 76 ┆bank: db 0 ;disk bank 00 if driv┆ 0x0d06e0…0d0700 65 20 30 2c 31 0d 0a 09 09 09 3b 09 20 20 20 31 30 20 69 66 20 64 72 69 76 65 20 32 2c 33 0d 0a ┆e 0,1 ; 10 if drive 2,3 ┆ 0x0d0700…0d0720 69 6f 70 62 3a 09 3b 69 6f 20 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 0d 0a 09 64 62 09 38 ┆iopb: ;io parameter block db 8┆ 0x0d0720…0d0740 30 68 09 3b 6e 6f 72 6d 61 6c 20 69 2f 6f 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 69 6f 66 3a 09 64 ┆0h ;normal i/o operation iof: d┆ 0x0d0740…0d0760 62 09 72 65 61 64 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 2c 20 69 6e 69 74 69 61 6c 20 72 65 ┆b readf ;io function, initial re┆ 0x0d0760…0d0780 61 64 0d 0a 69 6f 6e 3a 09 64 62 09 31 09 3b 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 ┆ad ion: db 1 ;number of sectors┆ 0x0d0780…0d07a0 20 74 6f 20 72 65 61 64 0d 0a 69 6f 74 3a 09 64 62 09 6f 66 66 73 65 74 09 3b 74 72 61 63 6b 20 ┆ to read iot: db offset ;track ┆ 0x0d07a0…0d07c0 6e 75 6d 62 65 72 0d 0a 69 6f 73 3a 09 64 62 09 31 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 ┆number ios: db 1 ;sector number┆ 0x0d07c0…0d07e0 0d 0a 69 6f 64 3a 09 64 77 09 62 75 66 66 09 3b 69 6f 20 61 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b ┆ iod: dw buff ;io address ; ;┆ 0x0d07e0…0d0800 0d 0a 3b 09 64 65 66 69 6e 65 20 72 61 6d 20 61 72 65 61 73 20 66 6f 72 20 62 64 6f 73 20 6f 70 ┆ ; define ram areas for bdos op┆ 0x0d0800…0d0820 (55, 1, 4) 73 6b 20 67 69 76 65 6e 20 62 79 20 72 65 67 2d 63 20 28 30 2c 31 2c 32 2e 2e 2e 29 0d 0a 3b 09 ┆sk given by reg-c (0,1,2...) ; ┆ 0x0d0820…0d0840 73 65 74 74 72 6b 09 73 65 74 20 74 72 61 63 6b 20 61 64 64 72 65 73 73 20 28 30 2c 2e 2e 2e 37 ┆settrk set track address (0,...7┆ 0x0d0840…0d0860 36 29 20 66 6f 72 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 2f 77 72 69 74 65 0d 0a 3b 09 ┆6) for subsequent read/write ; ┆ 0x0d0860…0d0880 73 65 74 73 65 63 09 73 65 74 20 73 65 63 74 6f 72 20 61 64 64 72 65 73 73 20 28 31 2c 2e 2e 2e ┆setsec set sector address (1,...┆ 0x0d0880…0d08a0 2c 32 36 29 20 66 6f 72 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 2f 77 72 69 74 65 0d 0a ┆,26) for subsequent read/write ┆ 0x0d08a0…0d08c0 3b 09 73 65 74 64 6d 61 09 73 65 74 20 73 75 62 73 65 71 75 65 6e 74 20 64 6d 61 20 61 64 64 72 ┆; setdma set subsequent dma addr┆ 0x0d08c0…0d08e0 65 73 73 20 28 69 6e 69 74 69 61 6c 6c 79 20 38 30 68 29 0d 0a 3b 0d 0a 3b 09 28 72 65 61 64 20 ┆ess (initially 80h) ; ; (read ┆ 0x0d08e0…0d0900 61 6e 64 20 77 72 69 74 65 20 61 73 73 75 6d 65 20 70 72 65 76 69 6f 75 73 20 63 61 6c 6c 73 20 ┆and write assume previous calls ┆ 0x0d0900…0d0920 74 6f 20 73 65 74 20 75 70 20 74 68 65 20 69 6f 20 70 61 72 61 6d 65 74 65 72 73 29 0d 0a 3b 09 ┆to set up the io parameters) ; ┆ 0x0d0920…0d0940 72 65 61 64 09 72 65 61 64 20 74 72 61 63 6b 2f 73 65 63 74 6f 72 20 74 6f 20 70 72 65 73 65 74 ┆read read track/sector to preset┆ 0x0d0940…0d0960 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 3b 09 77 72 69 74 65 09 77 72 69 74 65 20 74 72 61 63 ┆ dma address ; write write trac┆ 0x0d0960…0d0980 6b 2f 73 65 63 74 6f 72 20 66 72 6f 6d 20 70 72 65 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 ┆k/sector from preset dma address┆ 0x0d0980…0d09a0 0d 0a 3b 0d 0a 3b 09 6a 75 6d 70 20 76 65 63 74 6f 72 20 66 6f 72 20 69 6e 64 69 76 69 75 61 6c ┆ ; ; jump vector for indiviual┆ 0x0d09a0…0d09c0 20 72 6f 75 74 69 6e 65 73 0d 0a 09 6a 6d 70 09 62 6f 6f 74 0d 0a 77 62 6f 6f 74 65 3a 09 6a 6d ┆ routines jmp boot wboote: jm┆ 0x0d09c0…0d09e0 70 09 77 62 6f 6f 74 0d 0a 09 6a 6d 70 09 63 6f 6e 73 74 0d 0a 09 6a 6d 70 09 63 6f 6e 69 6e 0d ┆p wboot jmp const jmp conin ┆ 0x0d09e0…0d0a00 0a 09 6a 6d 70 09 63 6f 6e 6f 75 74 0d 0a 09 6a 6d 70 09 6c 69 73 74 0d 0a 09 6a 6d 70 09 70 75 ┆ jmp conout jmp list jmp pu┆ 0x0d0a00…0d0a20 (55, 1, 5) 09 3b 74 72 61 6e 73 6c 61 74 65 28 73 65 63 74 6f 72 29 20 61 64 64 72 65 73 73 0d 0a 09 6d 6f ┆ ;translate(sector) address mo┆ 0x0d0a20…0d0a40 76 09 61 2c 6d 09 3b 74 72 61 6e 73 6c 61 74 65 64 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 ┆v a,m ;translated sector number ┆ 0x0d0a40…0d0a60 74 6f 20 41 0d 0a 09 73 74 61 09 69 6f 73 0d 0a 09 6d 6f 76 09 6c 2c 61 09 3b 72 65 74 75 72 6e ┆to A sta ios mov l,a ;return┆ 0x0d0a60…0d0a80 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 69 6e 20 4c 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 73 65 ┆ sector number in L ret ; se┆ 0x0d0a80…0d0aa0 74 64 6d 61 3a 09 3b 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 67 69 76 65 6e 20 62 79 20 ┆tdma: ;set dma address given by ┆ 0x0d0aa0…0d0ac0 72 65 67 73 20 62 2c 63 0d 0a 09 6d 6f 76 09 6c 2c 63 0d 0a 09 6d 6f 76 09 68 2c 62 0d 0a 09 73 ┆regs b,c mov l,c mov h,b s┆ 0x0d0ac0…0d0ae0 68 6c 64 09 69 6f 64 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 72 65 61 64 3a 09 3b 72 65 61 64 20 6e 65 ┆hld iod ret ; read: ;read ne┆ 0x0d0ae0…0d0b00 78 74 20 64 69 73 6b 20 72 65 63 6f 72 64 20 28 61 73 73 75 6d 69 6e 67 20 64 69 73 6b 2f 74 72 ┆xt disk record (assuming disk/tr┆ 0x0d0b00…0d0b20 6b 2f 73 65 63 2f 64 6d 61 20 73 65 74 29 0d 0a 09 6d 76 69 09 63 2c 72 65 61 64 66 09 3b 73 65 ┆k/sec/dma set) mvi c,readf ;se┆ 0x0d0b20…0d0b40 74 20 74 6f 20 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 73 65 74 66 75 6e ┆t to read function call setfun┆ 0x0d0b40…0d0b60 63 0d 0a 09 63 61 6c 6c 09 77 61 69 74 69 6f 09 3b 70 65 72 66 6f 72 6d 20 72 65 61 64 20 66 75 ┆c call waitio ;perform read fu┆ 0x0d0b60…0d0b80 6e 63 74 69 6f 6e 0d 0a 09 72 65 74 09 09 3b 6d 61 79 20 68 61 76 65 20 65 72 72 6f 72 20 73 65 ┆nction ret ;may have error se┆ 0x0d0b80…0d0ba0 74 20 69 6e 20 72 65 67 2d 61 0d 0a 3b 0d 0a 3b 0d 0a 77 72 69 74 65 3a 09 3b 64 69 73 6b 20 77 ┆t in reg-a ; ; write: ;disk w┆ 0x0d0ba0…0d0bc0 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6d 76 69 09 63 2c 77 72 69 74 66 0d 0a 09 63 61 ┆rite function mvi c,writf ca┆ 0x0d0bc0…0d0be0 6c 6c 09 73 65 74 66 75 6e 63 09 3b 73 65 74 20 74 6f 20 77 72 69 74 65 20 66 75 6e 63 74 69 6f ┆ll setfunc ;set to write functio┆ 0x0d0be0…0d0c00 6e 0d 0a 09 63 61 6c 6c 09 77 61 69 74 69 6f 0d 0a 09 72 65 74 09 09 3b 6d 61 79 20 68 61 76 65 ┆n call waitio ret ;may have┆ 0x0d0c00…0d0c20 (55, 1, 6) 3b 72 65 61 64 79 20 73 74 61 74 75 73 20 63 68 61 6e 67 65 3f 0d 0a 09 6a 7a 09 77 72 65 61 64 ┆;ready status change? jz wread┆ 0x0d0c20…0d0c40 79 0d 0a 3b 0d 0a 3b 09 6d 75 73 74 20 62 65 20 30 30 20 69 6e 20 74 68 65 20 61 63 63 75 6d 75 ┆y ; ; must be 00 in the accumu┆ 0x0d0c40…0d0c60 6c 61 74 6f 72 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 77 65 72 72 6f 72 09 09 3b 73 6f 6d ┆lator ora a jnz werror ;som┆ 0x0d0c60…0d0c80 65 20 6f 74 68 65 72 20 63 6f 6e 64 69 74 69 6f 6e 2c 20 72 65 74 72 79 0d 0a 3b 0d 0a 3b 09 63 ┆e other condition, retry ; ; c┆ 0x0d0c80…0d0ca0 68 65 63 6b 20 69 2f 6f 20 65 72 72 6f 72 20 62 69 74 73 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 ┆heck i/o error bits call inbyt┆ 0x0d0ca0…0d0cc0 65 0d 0a 09 72 61 6c 0d 0a 09 6a 63 09 77 72 65 61 64 79 09 09 3b 75 6e 69 74 20 6e 6f 74 20 72 ┆e ral jc wready ;unit not r┆ 0x0d0cc0…0d0ce0 65 61 64 79 0d 0a 09 72 61 72 0d 0a 09 61 6e 69 09 31 31 31 31 31 31 31 30 62 09 3b 61 6e 79 20 ┆eady rar ani 11111110b ;any ┆ 0x0d0ce0…0d0d00 6f 74 68 65 72 20 65 72 72 6f 72 73 3f 20 20 28 64 65 6c 65 74 65 64 20 64 61 74 61 20 6f 6b 29 ┆other errors? (deleted data ok)┆ 0x0d0d00…0d0d20 0d 0a 09 6a 6e 7a 09 77 65 72 72 6f 72 0d 0a 3b 0d 0a 3b 09 72 65 61 64 20 6f 72 20 77 72 69 74 ┆ jnz werror ; ; read or writ┆ 0x0d0d20…0d0d40 65 20 69 73 20 6f 6b 2c 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 63 6f 6e 74 61 69 6e 73 20 7a 65 ┆e is ok, accumulator contains ze┆ 0x0d0d40…0d0d60 72 6f 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 77 72 65 61 64 79 3a 09 3b 6e 6f 74 20 72 65 61 64 79 2c ┆ro ret ; wready: ;not ready,┆ 0x0d0d60…0d0d80 20 74 72 65 61 74 20 61 73 20 65 72 72 6f 72 20 66 6f 72 20 6e 6f 77 0d 0a 09 63 61 6c 6c 09 69 ┆ treat as error for now call i┆ 0x0d0d80…0d0da0 6e 62 79 74 65 09 09 3b 63 6c 65 61 72 20 72 65 73 75 6c 74 20 62 79 74 65 0d 0a 09 6a 6d 70 09 ┆nbyte ;clear result byte jmp ┆ 0x0d0da0…0d0dc0 74 72 79 63 6f 75 6e 74 0d 0a 3b 0d 0a 77 65 72 72 6f 72 3a 09 3b 72 65 74 75 72 6e 20 68 61 72 ┆trycount ; werror: ;return har┆ 0x0d0dc0…0d0de0 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 20 28 63 72 63 2c 20 74 72 61 63 6b 2c 20 73 ┆dware malfunction (crc, track, s┆ 0x0d0de0…0d0e00 65 65 6b 2c 20 65 74 63 2e 29 0d 0a 3b 09 74 68 65 20 6d 64 73 20 63 6f 6e 74 72 6f 6c 6c 65 72 ┆eek, etc.) ; the mds controller┆ 0x0d0e00…0d0e20 (55, 1, 7) 65 72 61 74 69 6f 6e 0d 0a 09 65 6e 64 65 66 0d 0a 09 65 6e 64 0d 0a 3b 09 4d 44 53 2d 38 30 30 ┆eration endef end ; MDS-800┆ 0x0d0e20…0d0e40 20 49 2f 4f 20 44 72 69 76 65 72 73 20 66 6f 72 20 43 50 2f 4d 20 32 2e 32 0d 0a 3b 09 28 66 6f ┆ I/O Drivers for CP/M 2.2 ; (fo┆ 0x0d0e40…0d0e60 75 72 20 64 72 69 76 65 20 73 69 6e 67 6c 65 20 64 65 6e 73 69 74 79 20 76 65 72 73 69 6f 6e 29 ┆ur drive single density version)┆ 0x0d0e60…0d0e80 0d 0a 3b 0d 0a 3b 09 56 65 72 73 69 6f 6e 20 32 2e 32 20 46 65 62 72 75 61 72 79 2c 20 31 39 38 ┆ ; ; Version 2.2 February, 198┆ 0x0d0e80…0d0ea0 30 0d 0a 3b 0d 0a 76 65 72 73 09 65 71 75 09 32 32 09 3b 76 65 72 73 69 6f 6e 20 32 2e 32 0d 0a ┆0 ; vers equ 22 ;version 2.2 ┆ 0x0d0ea0…0d0ec0 3b 0d 0a 3b 09 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 39 38 30 0d 0a 3b 09 44 69 67 69 74 ┆; ; Copyright (c) 1980 ; Digit┆ 0x0d0ec0…0d0ee0 61 6c 20 52 65 73 65 61 72 63 68 0d 0a 3b 09 42 6f 78 20 35 37 39 2c 20 50 61 63 69 66 69 63 20 ┆al Research ; Box 579, Pacific ┆ 0x0d0ee0…0d0f00 47 72 6f 76 65 0d 0a 3b 09 43 61 6c 69 66 6f 72 6e 69 61 2c 20 39 33 39 35 30 0d 0a 3b 0d 0a 3b ┆Grove ; California, 93950 ; ;┆ 0x0d0f00…0d0f20 0d 0a 74 72 75 65 09 65 71 75 09 30 66 66 66 66 68 09 3b 76 61 6c 75 65 20 6f 66 20 22 74 72 75 ┆ true equ 0ffffh ;value of "tru┆ 0x0d0f20…0d0f40 65 22 0d 0a 66 61 6c 73 65 09 65 71 75 09 6e 6f 74 20 74 72 75 65 09 3b 22 66 61 6c 73 65 22 0d ┆e" false equ not true ;"false" ┆ 0x0d0f40…0d0f60 0a 74 65 73 74 09 65 71 75 09 66 61 6c 73 65 09 3b 74 72 75 65 20 69 66 20 74 65 73 74 20 62 69 ┆ test equ false ;true if test bi┆ 0x0d0f60…0d0f80 6f 73 0d 0a 3b 0d 0a 09 69 66 09 74 65 73 74 0d 0a 62 69 61 73 09 65 71 75 09 30 33 34 30 30 68 ┆os ; if test bias equ 03400h┆ 0x0d0f80…0d0fa0 09 3b 62 61 73 65 20 6f 66 20 43 43 50 20 69 6e 20 74 65 73 74 20 73 79 73 74 65 6d 0d 0a 09 65 ┆ ;base of CCP in test system e┆ 0x0d0fa0…0d0fc0 6e 64 69 66 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 62 69 61 73 09 65 71 75 09 30 30 30 ┆ndif if not test bias equ 000┆ 0x0d0fc0…0d0fe0 30 68 09 3b 67 65 6e 65 72 61 74 65 20 72 65 6c 6f 63 61 74 61 62 6c 65 20 63 70 2f 6d 20 73 79 ┆0h ;generate relocatable cp/m sy┆ 0x0d0fe0…0d1000 73 74 65 6d 0d 0a 09 65 6e 64 69 66 0d 0a 3b 0d 0a 70 61 74 63 68 09 65 71 75 09 31 36 30 30 68 ┆stem endif ; patch equ 1600h┆ 0x0d1000…0d1020 (55, 1, 8) 6e 63 68 0d 0a 09 6a 6d 70 09 72 65 61 64 65 72 0d 0a 09 6a 6d 70 09 68 6f 6d 65 0d 0a 09 6a 6d ┆nch jmp reader jmp home jm┆ 0x0d1020…0d1040 70 09 73 65 6c 64 73 6b 0d 0a 09 6a 6d 70 09 73 65 74 74 72 6b 0d 0a 09 6a 6d 70 09 73 65 74 73 ┆p seldsk jmp settrk jmp sets┆ 0x0d1040…0d1060 65 63 0d 0a 09 6a 6d 70 09 73 65 74 64 6d 61 0d 0a 09 6a 6d 70 09 72 65 61 64 0d 0a 09 6a 6d 70 ┆ec jmp setdma jmp read jmp┆ 0x0d1060…0d1080 09 77 72 69 74 65 0d 0a 09 6a 6d 70 09 6c 69 73 74 73 74 09 3b 6c 69 73 74 20 73 74 61 74 75 73 ┆ write jmp listst ;list status┆ 0x0d1080…0d10a0 0d 0a 09 6a 6d 70 09 73 65 63 74 72 61 6e 0d 0a 3b 0d 0a 09 6d 61 63 6c 69 62 09 64 69 73 6b 64 ┆ jmp sectran ; maclib diskd┆ 0x0d10a0…0d10c0 65 66 09 3b 6c 6f 61 64 20 74 68 65 20 64 69 73 6b 20 64 65 66 69 6e 69 74 69 6f 6e 20 6c 69 62 ┆ef ;load the disk definition lib┆ 0x0d10c0…0d10e0 72 61 72 79 0d 0a 09 64 69 73 6b 73 09 34 09 3b 66 6f 75 72 20 64 69 73 6b 73 0d 0a 09 64 69 73 ┆rary disks 4 ;four disks dis┆ 0x0d10e0…0d1100 6b 64 65 66 09 30 2c 31 2c 32 36 2c 36 2c 31 30 32 34 2c 32 34 33 2c 36 34 2c 36 34 2c 6f 66 66 ┆kdef 0,1,26,6,1024,243,64,64,off┆ 0x0d1100…0d1120 73 65 74 0d 0a 09 64 69 73 6b 64 65 66 09 31 2c 30 0d 0a 09 64 69 73 6b 64 65 66 09 32 2c 30 0d ┆set diskdef 1,0 diskdef 2,0 ┆ 0x0d1120…0d1140 0a 09 64 69 73 6b 64 65 66 09 33 2c 30 0d 0a 3b 09 65 6e 64 65 66 20 6f 63 63 75 72 73 20 61 74 ┆ diskdef 3,0 ; endef occurs at┆ 0x0d1140…0d1160 20 65 6e 64 20 6f 66 20 61 73 73 65 6d 62 6c 79 0d 0a 3b 0d 0a 3b 09 65 6e 64 20 6f 66 20 63 6f ┆ end of assembly ; ; end of co┆ 0x0d1160…0d1180 6e 74 72 6f 6c 6c 65 72 20 2d 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 63 6f 64 65 2c 20 74 68 65 ┆ntroller - independent code, the┆ 0x0d1180…0d11a0 20 72 65 6d 61 69 6e 69 6e 67 20 73 75 62 72 6f 75 74 69 6e 65 73 0d 0a 3b 09 61 72 65 20 74 61 ┆ remaining subroutines ; are ta┆ 0x0d11a0…0d11c0 69 6c 6f 72 65 64 20 74 6f 20 74 68 65 20 70 61 72 74 69 63 75 6c 61 72 20 6f 70 65 72 61 74 69 ┆ilored to the particular operati┆ 0x0d11c0…0d11e0 6e 67 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 2c 20 61 6e 64 20 6d 75 73 74 0d 0a 3b 09 62 65 20 61 ┆ng environment, and must ; be a┆ 0x0d11e0…0d1200 6c 74 65 72 65 64 20 66 6f 72 20 61 6e 79 20 73 79 73 74 65 6d 20 77 68 69 63 68 20 64 69 66 66 ┆ltered for any system which diff┆ 0x0d1200…0d1220 (55, 1, 9) 20 65 72 72 6f 72 20 73 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 75 74 69 6c 69 74 79 20 73 75 62 72 ┆ error set ; ; ; utility subr┆ 0x0d1220…0d1240 6f 75 74 69 6e 65 73 0d 0a 70 72 6d 73 67 3a 09 3b 70 72 69 6e 74 20 6d 65 73 73 61 67 65 20 61 ┆outines prmsg: ;print message a┆ 0x0d1240…0d1260 74 20 68 2c 6c 20 74 6f 20 30 0d 0a 09 6d 6f 76 09 61 2c 6d 0d 0a 09 6f 72 61 09 61 09 3b 7a 65 ┆t h,l to 0 mov a,m ora a ;ze┆ 0x0d1260…0d1280 72 6f 3f 0d 0a 09 72 7a 0d 0a 3b 09 6d 6f 72 65 20 74 6f 20 70 72 69 6e 74 0d 0a 09 70 75 73 68 ┆ro? rz ; more to print push┆ 0x0d1280…0d12a0 09 68 0d 0a 09 6d 6f 76 09 63 2c 61 0d 0a 09 63 61 6c 6c 09 63 6f 6e 6f 75 74 0d 0a 09 70 6f 70 ┆ h mov c,a call conout pop┆ 0x0d12a0…0d12c0 09 68 0d 0a 09 69 6e 78 09 68 0d 0a 09 6a 6d 70 09 70 72 6d 73 67 0d 0a 3b 0d 0a 73 65 74 66 75 ┆ h inx h jmp prmsg ; setfu┆ 0x0d12c0…0d12e0 6e 63 3a 0d 0a 3b 09 73 65 74 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 6e 65 78 74 20 69 2f 6f ┆nc: ; set function for next i/o┆ 0x0d12e0…0d1300 20 28 63 6f 6d 6d 61 6e 64 20 69 6e 20 72 65 67 2d 63 29 0d 0a 09 6c 78 69 09 68 2c 69 6f 66 09 ┆ (command in reg-c) lxi h,iof ┆ 0x0d1300…0d1320 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 72 65 73 73 0d 0a 09 6d 6f 76 09 61 2c 6d 09 3b ┆;io function address mov a,m ;┆ 0x0d1320…0d1340 67 65 74 20 69 74 20 74 6f 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 66 6f 72 20 6d 61 73 6b 69 6e ┆get it to accumulator for maskin┆ 0x0d1340…0d1360 67 0d 0a 09 61 6e 69 09 31 31 31 31 31 30 30 30 62 09 3b 72 65 6d 6f 76 65 20 70 72 65 76 69 6f ┆g ani 11111000b ;remove previo┆ 0x0d1360…0d1380 75 73 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6f 72 61 09 63 09 3b 73 65 74 20 74 6f 20 6e 65 77 20 63 ┆us command ora c ;set to new c┆ 0x0d1380…0d13a0 6f 6d 6d 61 6e 64 0d 0a 09 6d 6f 76 09 6d 2c 61 09 3b 72 65 70 6c 61 63 65 64 20 69 6e 20 69 6f ┆ommand mov m,a ;replaced in io┆ 0x0d13a0…0d13c0 70 62 0d 0a 3b 09 74 68 65 20 6d 64 73 2d 38 30 30 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 72 65 71 ┆pb ; the mds-800 controller req┆ 0x0d13c0…0d13e0 75 69 72 65 73 20 64 69 73 6b 20 62 61 6e 6b 20 62 69 74 20 69 6e 20 73 65 63 74 6f 72 20 62 79 ┆uires disk bank bit in sector by┆ 0x0d13e0…0d1400 74 65 0d 0a 3b 09 6d 61 73 6b 20 74 68 65 20 62 69 74 20 66 72 6f 6d 20 74 68 65 20 63 75 72 72 ┆te ; mask the bit from the curr┆ 0x0d1400…0d1420 (55, 1, 10) 20 68 61 73 20 72 65 74 75 72 6e 65 64 20 61 20 62 69 74 20 69 6e 20 65 61 63 68 20 70 6f 73 69 ┆ has returned a bit in each posi┆ 0x0d1420…0d1440 74 69 6f 6e 0d 0a 3b 09 6f 66 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 2c 20 63 6f 72 72 ┆tion ; of the accumulator, corr┆ 0x0d1440…0d1460 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e 73 3a 0d 0a 3b 09 ┆esponding to the conditions: ; ┆ 0x0d1460…0d1480 30 09 2d 20 64 65 6c 65 74 65 64 20 64 61 74 61 20 28 61 63 63 65 70 74 65 64 20 61 73 20 6f 6b ┆0 - deleted data (accepted as ok┆ 0x0d1480…0d14a0 20 61 62 6f 76 65 29 0d 0a 3b 09 31 09 2d 20 63 72 63 20 65 72 72 6f 72 0d 0a 3b 09 32 09 2d 20 ┆ above) ; 1 - crc error ; 2 - ┆ 0x0d14a0…0d14c0 73 65 65 6b 20 65 72 72 6f 72 0d 0a 3b 09 33 09 2d 20 61 64 64 72 65 73 73 20 65 72 72 6f 72 20 ┆seek error ; 3 - address error ┆ 0x0d14c0…0d14e0 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 34 09 2d 20 64 61 ┆(hardware malfunction) ; 4 - da┆ 0x0d14e0…0d1500 74 61 20 6f 76 65 72 2f 75 6e 64 65 72 20 66 6c 6f 77 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c ┆ta over/under flow (hardware mal┆ 0x0d1500…0d1520 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 35 09 2d 20 77 72 69 74 65 20 70 72 6f 74 65 63 74 20 28 ┆function) ; 5 - write protect (┆ 0x0d1520…0d1540 74 72 65 61 74 65 64 20 61 73 20 6e 6f 74 20 72 65 61 64 79 29 0d 0a 3b 09 36 09 2d 20 77 72 69 ┆treated as not ready) ; 6 - wri┆ 0x0d1540…0d1560 74 65 20 65 72 72 6f 72 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d ┆te error (hardware malfunction) ┆ 0x0d1560…0d1580 0a 3b 09 37 09 2d 20 6e 6f 74 20 72 65 61 64 79 0d 0a 3b 09 28 61 63 63 75 6d 75 6c 61 74 6f 72 ┆ ; 7 - not ready ; (accumulator┆ 0x0d1580…0d15a0 20 62 69 74 73 20 61 72 65 20 6e 75 6d 62 65 72 65 64 20 37 20 36 20 35 20 34 20 33 20 32 20 31 ┆ bits are numbered 7 6 5 4 3 2 1┆ 0x0d15a0…0d15c0 20 30 29 0d 0a 3b 0d 0a 3b 09 69 74 20 6d 61 79 20 62 65 20 75 73 65 66 75 6c 20 74 6f 20 66 69 ┆ 0) ; ; it may be useful to fi┆ 0x0d15c0…0d15e0 6c 74 65 72 20 6f 75 74 20 74 68 65 20 76 61 72 69 6f 75 73 20 63 6f 6e 64 69 74 69 6f 6e 73 2c ┆lter out the various conditions,┆ 0x0d15e0…0d1600 0d 0a 3b 09 62 75 74 20 77 65 20 77 69 6c 6c 20 67 65 74 20 61 20 70 65 72 6d 61 6e 65 6e 74 20 ┆ ; but we will get a permanent ┆ 0x0d1600…0d1620 (55, 1, 11) 0d 0a 3b 0d 0a 09 6f 72 67 09 70 61 74 63 68 0d 0a 63 70 6d 62 09 65 71 75 09 24 2d 70 61 74 63 ┆ ; org patch cpmb equ $-patc┆ 0x0d1620…0d1640 68 09 3b 62 61 73 65 20 6f 66 20 63 70 6d 20 63 6f 6e 73 6f 6c 65 20 70 72 6f 63 65 73 73 6f 72 ┆h ;base of cpm console processor┆ 0x0d1640…0d1660 0d 0a 62 64 6f 73 09 65 71 75 09 38 30 36 68 2b 63 70 6d 62 09 3b 62 61 73 69 63 20 64 6f 73 20 ┆ bdos equ 806h+cpmb ;basic dos ┆ 0x0d1660…0d1680 28 72 65 73 69 64 65 6e 74 20 70 6f 72 74 69 6f 6e 29 0d 0a 63 70 6d 6c 09 65 71 75 09 24 2d 63 ┆(resident portion) cpml equ $-c┆ 0x0d1680…0d16a0 70 6d 62 09 3b 6c 65 6e 67 74 68 20 28 69 6e 20 62 79 74 65 73 29 20 6f 66 20 63 70 6d 20 73 79 ┆pmb ;length (in bytes) of cpm sy┆ 0x0d16a0…0d16c0 73 74 65 6d 0d 0a 6e 73 65 63 74 73 09 65 71 75 09 63 70 6d 6c 2f 31 32 38 09 3b 6e 75 6d 62 65 ┆stem nsects equ cpml/128 ;numbe┆ 0x0d16c0…0d16e0 72 20 6f 66 20 73 65 63 74 6f 72 73 20 74 6f 20 6c 6f 61 64 0d 0a 6f 66 66 73 65 74 09 65 71 75 ┆r of sectors to load offset equ┆ 0x0d16e0…0d1700 09 32 09 3b 6e 75 6d 62 65 72 20 6f 66 20 64 69 73 6b 20 74 72 61 63 6b 73 20 75 73 65 64 20 62 ┆ 2 ;number of disk tracks used b┆ 0x0d1700…0d1720 79 20 63 70 2f 6d 0d 0a 63 64 69 73 6b 09 65 71 75 09 30 30 30 34 68 09 3b 61 64 64 72 65 73 73 ┆y cp/m cdisk equ 0004h ;address┆ 0x0d1720…0d1740 20 6f 66 20 6c 61 73 74 20 6c 6f 67 67 65 64 20 64 69 73 6b 20 6f 6e 20 77 61 72 6d 20 73 74 61 ┆ of last logged disk on warm sta┆ 0x0d1740…0d1760 72 74 0d 0a 62 75 66 66 09 65 71 75 09 30 30 38 30 68 09 3b 64 65 66 61 75 6c 74 20 62 75 66 66 ┆rt buff equ 0080h ;default buff┆ 0x0d1760…0d1780 65 72 20 61 64 64 72 65 73 73 0d 0a 72 65 74 72 79 09 65 71 75 09 31 30 09 3b 6d 61 78 20 72 65 ┆er address retry equ 10 ;max re┆ 0x0d1780…0d17a0 74 72 69 65 73 20 6f 6e 20 64 69 73 6b 20 69 2f 6f 20 62 65 66 6f 72 65 20 65 72 72 6f 72 0d 0a ┆tries on disk i/o before error ┆ 0x0d17a0…0d17c0 3b 0d 0a 3b 09 70 65 72 66 6f 72 6d 20 66 6f 6c 6c 6f 77 69 6e 67 20 66 75 6e 63 74 69 6f 6e 73 ┆; ; perform following functions┆ 0x0d17c0…0d17e0 0d 0a 3b 09 62 6f 6f 74 09 63 6f 6c 64 20 73 74 61 72 74 0d 0a 3b 09 77 62 6f 6f 74 09 77 61 72 ┆ ; boot cold start ; wboot war┆ 0x0d17e0…0d1800 6d 20 73 74 61 72 74 20 28 73 61 76 65 20 69 2f 6f 20 62 79 74 65 29 0d 0a 3b 09 28 62 6f 6f 74 ┆m start (save i/o byte) ; (boot┆ 0x0d1800…0d1820 (55, 1, 12) 65 72 73 20 66 72 6f 6d 20 74 68 65 20 69 6e 74 65 6c 20 6d 64 73 2e 0d 0a 3b 0d 0a 3b 09 74 68 ┆ers from the intel mds. ; ; th┆ 0x0d1820…0d1840 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 64 65 20 61 73 73 75 6d 65 73 20 74 68 65 20 6d 64 73 ┆e following code assumes the mds┆ 0x0d1840…0d1860 20 6d 6f 6e 69 74 6f 72 20 65 78 69 73 74 73 20 61 74 20 30 66 38 30 30 68 0d 0a 3b 09 61 6e 64 ┆ monitor exists at 0f800h ; and┆ 0x0d1860…0d1880 20 75 73 65 73 20 74 68 65 20 69 2f 6f 20 73 75 62 72 6f 75 74 69 6e 65 73 20 77 69 74 68 69 6e ┆ uses the i/o subroutines within┆ 0x0d1880…0d18a0 20 74 68 65 20 6d 6f 6e 69 74 6f 72 0d 0a 3b 0d 0a 3b 09 77 65 20 61 6c 73 6f 20 61 73 73 75 6d ┆ the monitor ; ; we also assum┆ 0x0d18a0…0d18c0 65 20 74 68 65 20 6d 64 73 20 73 79 73 74 65 6d 20 68 61 73 20 66 6f 75 72 20 64 69 73 6b 20 64 ┆e the mds system has four disk d┆ 0x0d18c0…0d18e0 72 69 76 65 73 0d 0a 72 65 76 72 74 09 65 71 75 09 30 66 64 68 09 3b 69 6e 74 65 72 72 75 70 74 ┆rives revrt equ 0fdh ;interrupt┆ 0x0d18e0…0d1900 20 72 65 76 65 72 74 20 70 6f 72 74 0d 0a 69 6e 74 63 09 65 71 75 09 30 66 63 68 09 3b 69 6e 74 ┆ revert port intc equ 0fch ;int┆ 0x0d1900…0d1920 65 72 72 75 70 74 20 6d 61 73 6b 20 70 6f 72 74 0d 0a 69 63 6f 6e 09 65 71 75 09 30 66 33 68 09 ┆errupt mask port icon equ 0f3h ┆ 0x0d1920…0d1940 3b 69 6e 74 65 72 72 75 70 74 20 63 6f 6e 74 72 6f 6c 20 70 6f 72 74 0d 0a 69 6e 74 65 09 65 71 ┆;interrupt control port inte eq┆ 0x0d1940…0d1960 75 09 30 31 31 31 24 31 31 31 30 62 09 3b 65 6e 61 62 6c 65 20 72 73 74 20 30 28 77 61 72 6d 20 ┆u 0111$1110b ;enable rst 0(warm ┆ 0x0d1960…0d1980 62 6f 6f 74 29 2c 20 72 73 74 20 37 20 28 6d 6f 6e 69 74 6f 72 29 0d 0a 3b 0d 0a 3b 09 6d 64 73 ┆boot), rst 7 (monitor) ; ; mds┆ 0x0d1980…0d19a0 20 6d 6f 6e 69 74 6f 72 20 65 71 75 61 74 65 73 0d 0a 6d 6f 6e 38 30 09 65 71 75 09 30 66 38 30 ┆ monitor equates mon80 equ 0f80┆ 0x0d19a0…0d19c0 30 68 09 3b 6d 64 73 20 6d 6f 6e 69 74 6f 72 0d 0a 72 6d 6f 6e 38 30 09 65 71 75 09 30 66 66 30 ┆0h ;mds monitor rmon80 equ 0ff0┆ 0x0d19c0…0d19e0 66 68 09 3b 72 65 73 74 61 72 74 20 6d 6f 6e 38 30 20 28 62 6f 6f 74 20 65 72 72 6f 72 29 0d 0a ┆fh ;restart mon80 (boot error) ┆ 0x0d19e0…0d1a00 63 69 09 65 71 75 09 30 66 38 30 33 68 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 ┆ci equ 0f803h ;console character┆ 0x0d1a00…0d1a20 (55, 1, 13) 65 6e 74 20 69 2f 6f 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 61 6e 69 09 30 30 31 30 30 30 30 30 62 ┆ent i/o function ani 00100000b┆ 0x0d1a20…0d1a40 09 3b 6d 61 73 6b 20 74 68 65 20 64 69 73 6b 20 73 65 6c 65 63 74 20 62 69 74 0d 0a 09 6c 78 69 ┆ ;mask the disk select bit lxi┆ 0x0d1a40…0d1a60 09 68 2c 69 6f 73 09 09 3b 61 64 64 72 65 73 73 20 74 68 65 20 73 65 63 74 6f 72 20 73 65 6c 65 ┆ h,ios ;address the sector sele┆ 0x0d1a60…0d1a80 63 74 20 62 79 74 65 0d 0a 09 6f 72 61 09 6d 09 09 3b 73 65 6c 65 63 74 20 70 72 6f 70 65 72 20 ┆ct byte ora m ;select proper ┆ 0x0d1a80…0d1aa0 64 69 73 6b 20 62 61 6e 6b 0d 0a 09 6d 6f 76 09 6d 2c 61 09 09 3b 73 65 74 20 64 69 73 6b 20 73 ┆disk bank mov m,a ;set disk s┆ 0x0d1aa0…0d1ac0 65 6c 65 63 74 20 62 69 74 20 6f 6e 2f 6f 66 66 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 77 61 69 74 69 ┆elect bit on/off ret ; waiti┆ 0x0d1ac0…0d1ae0 6f 3a 0d 0a 09 6d 76 69 09 63 2c 72 65 74 72 79 09 3b 6d 61 78 20 72 65 74 72 69 65 73 20 62 65 ┆o: mvi c,retry ;max retries be┆ 0x0d1ae0…0d1b00 66 6f 72 65 20 70 65 72 6d 20 65 72 72 6f 72 0d 0a 72 65 77 61 69 74 3a 0d 0a 3b 09 73 74 61 72 ┆fore perm error rewait: ; star┆ 0x0d1b00…0d1b20 74 20 74 68 65 20 69 2f 6f 20 66 75 6e 63 74 69 6f 6e 20 61 6e 64 20 77 61 69 74 20 66 6f 72 20 ┆t the i/o function and wait for ┆ 0x0d1b20…0d1b40 63 6f 6d 70 6c 65 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 69 6e 74 79 70 65 09 3b 69 6e 20 72 74 79 ┆completion call intype ;in rty┆ 0x0d1b40…0d1b60 70 65 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 09 3b 63 6c 65 61 72 73 20 74 68 65 20 63 6f 6e ┆pe call inbyte ;clears the con┆ 0x0d1b60…0d1b80 74 72 6f 6c 6c 65 72 0d 0a 3b 0d 0a 09 6c 64 61 09 64 62 61 6e 6b 09 09 3b 73 65 74 20 62 61 6e ┆troller ; lda dbank ;set ban┆ 0x0d1b80…0d1ba0 6b 20 66 6c 61 67 73 0d 0a 09 6f 72 61 09 61 09 09 3b 7a 65 72 6f 20 69 66 20 64 72 69 76 65 20 ┆k flags ora a ;zero if drive ┆ 0x0d1ba0…0d1bc0 30 2c 31 20 61 6e 64 20 6e 7a 20 69 66 20 32 2c 33 0d 0a 09 6d 76 69 09 61 2c 69 6f 70 62 20 61 ┆0,1 and nz if 2,3 mvi a,iopb a┆ 0x0d1bc0…0d1be0 6e 64 20 30 66 66 68 09 3b 6c 6f 77 20 61 64 64 72 65 73 73 20 66 6f 72 20 69 6f 70 62 0d 0a 09 ┆nd 0ffh ;low address for iopb ┆ 0x0d1be0…0d1c00 6d 76 69 09 62 2c 69 6f 70 62 20 73 68 72 20 38 09 3b 68 69 67 68 20 61 64 64 72 65 73 73 20 66 ┆mvi b,iopb shr 8 ;high address f┆ 0x0d1c00…0d1c20 (55, 1, 14) 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 69 66 20 69 74 20 69 73 20 6e 6f 74 0d 0a 3b 09 72 65 ┆error message if it is not ; re┆ 0x0d1c20…0d1c40 63 6f 76 65 72 61 62 6c 65 2e 20 20 69 6e 20 61 6e 79 20 63 61 73 65 2c 20 74 68 65 20 6e 6f 74 ┆coverable. in any case, the not┆ 0x0d1c40…0d1c60 20 72 65 61 64 79 20 63 6f 6e 64 69 74 69 6f 6e 20 69 73 0d 0a 3b 09 74 72 65 61 74 65 64 20 61 ┆ ready condition is ; treated a┆ 0x0d1c60…0d1c80 73 20 61 20 73 65 70 61 72 61 74 65 20 63 6f 6e 64 69 74 69 6f 6e 20 66 6f 72 20 6c 61 74 65 72 ┆s a separate condition for later┆ 0x0d1c80…0d1ca0 20 69 6d 70 72 6f 76 65 6d 65 6e 74 0d 0a 74 72 79 63 6f 75 6e 74 3a 0d 0a 3b 09 72 65 67 69 73 ┆ improvement trycount: ; regis┆ 0x0d1ca0…0d1cc0 74 65 72 20 63 20 63 6f 6e 74 61 69 6e 73 20 72 65 74 72 79 20 63 6f 75 6e 74 2c 20 64 65 63 72 ┆ter c contains retry count, decr┆ 0x0d1cc0…0d1ce0 65 6d 65 6e 74 20 27 74 69 6c 20 7a 65 72 6f 0d 0a 09 64 63 72 09 63 0d 0a 09 6a 6e 7a 09 72 65 ┆ement 'til zero dcr c jnz re┆ 0x0d1ce0…0d1d00 77 61 69 74 09 3b 66 6f 72 20 61 6e 6f 74 68 65 72 20 74 72 79 0d 0a 3b 0d 0a 3b 09 63 61 6e 6e ┆wait ;for another try ; ; cann┆ 0x0d1d00…0d1d20 6f 74 20 72 65 63 6f 76 65 72 20 66 72 6f 6d 20 65 72 72 6f 72 0d 0a 09 6d 76 69 09 61 2c 31 09 ┆ot recover from error mvi a,1 ┆ 0x0d1d20…0d1d40 3b 65 72 72 6f 72 20 63 6f 64 65 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 09 69 6e 74 79 70 65 2c 20 ┆;error code ret ; ; intype, ┆ 0x0d1d40…0d1d60 69 6e 62 79 74 65 2c 20 69 6e 73 74 61 74 20 72 65 61 64 20 64 72 69 76 65 20 62 61 6e 6b 20 30 ┆inbyte, instat read drive bank 0┆ 0x0d1d60…0d1d80 30 20 6f 72 20 31 30 0d 0a 69 6e 74 79 70 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 ┆0 or 10 intype: lda dbank ora┆ 0x0d1d80…0d1da0 09 61 0d 0a 09 6a 6e 7a 09 69 6e 74 79 70 31 09 3b 73 6b 69 70 20 74 6f 20 62 61 6e 6b 20 31 30 ┆ a jnz intyp1 ;skip to bank 10┆ 0x0d1da0…0d1dc0 0d 0a 09 69 6e 09 72 74 79 70 65 0d 0a 09 72 65 74 0d 0a 69 6e 74 79 70 31 3a 09 69 6e 09 72 74 ┆ in rtype ret intyp1: in rt┆ 0x0d1dc0…0d1de0 79 70 65 2b 31 30 68 09 3b 37 38 20 66 6f 72 20 30 2c 31 20 20 38 38 20 66 6f 72 20 32 2c 33 0d ┆ype+10h ;78 for 0,1 88 for 2,3 ┆ 0x0d1de0…0d1e00 0a 09 72 65 74 0d 0a 3b 0d 0a 69 6e 62 79 74 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 ┆ ret ; inbyte: lda dbank or┆ 0x0d1e00…0d1e20 (55, 1, 15) 20 61 6e 64 20 77 62 6f 6f 74 20 61 72 65 20 74 68 65 20 73 61 6d 65 20 66 6f 72 20 6d 64 73 29 ┆ and wboot are the same for mds)┆ 0x0d1e20…0d1e40 0d 0a 3b 09 63 6f 6e 73 74 09 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 0d 0a 3b 09 09 72 65 67 ┆ ; const console status ; reg┆ 0x0d1e40…0d1e60 2d 61 20 3d 20 30 30 20 69 66 20 6e 6f 20 63 68 61 72 61 63 74 65 72 20 72 65 61 64 79 0d 0a 3b ┆-a = 00 if no character ready ;┆ 0x0d1e60…0d1e80 09 09 72 65 67 2d 61 20 3d 20 66 66 20 69 66 20 63 68 61 72 61 63 74 65 72 20 72 65 61 64 79 0d ┆ reg-a = ff if character ready ┆ 0x0d1e80…0d1ea0 0a 3b 09 63 6f 6e 69 6e 09 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 28 72 ┆ ; conin console character in (r┆ 0x0d1ea0…0d1ec0 65 73 75 6c 74 20 69 6e 20 72 65 67 2d 61 29 0d 0a 3b 09 63 6f 6e 6f 75 74 09 63 6f 6e 73 6f 6c ┆esult in reg-a) ; conout consol┆ 0x0d1ec0…0d1ee0 65 20 63 68 61 72 61 63 74 65 72 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d ┆e character out (char in reg-c) ┆ 0x0d1ee0…0d1f00 0a 3b 09 6c 69 73 74 09 6c 69 73 74 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 ┆ ; list list out (char in reg-c)┆ 0x0d1f00…0d1f20 0d 0a 3b 09 70 75 6e 63 68 09 70 75 6e 63 68 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 ┆ ; punch punch out (char in reg┆ 0x0d1f20…0d1f40 2d 63 29 0d 0a 3b 09 72 65 61 64 65 72 09 70 61 70 65 72 20 74 61 70 65 20 72 65 61 64 65 72 20 ┆-c) ; reader paper tape reader ┆ 0x0d1f40…0d1f60 69 6e 20 28 72 65 73 75 6c 74 20 74 6f 20 72 65 67 2d 61 29 0d 0a 3b 09 68 6f 6d 65 09 6d 6f 76 ┆in (result to reg-a) ; home mov┆ 0x0d1f60…0d1f80 65 20 74 6f 20 74 72 61 63 6b 20 30 30 0d 0a 3b 0d 0a 3b 09 28 74 68 65 20 66 6f 6c 6c 6f 77 69 ┆e to track 00 ; ; (the followi┆ 0x0d1f80…0d1fa0 6e 67 20 63 61 6c 6c 73 20 73 65 74 2d 75 70 20 74 68 65 20 69 6f 20 70 61 72 61 6d 65 74 65 72 ┆ng calls set-up the io parameter┆ 0x0d1fa0…0d1fc0 20 62 6c 6f 63 6b 20 66 6f 72 20 74 68 65 0d 0a 3b 09 6d 64 73 2c 20 77 68 69 63 68 20 69 73 20 ┆ block for the ; mds, which is ┆ 0x0d1fc0…0d1fe0 75 73 65 64 20 74 6f 20 70 65 72 66 6f 72 6d 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 73 ┆used to perform subsequent reads┆ 0x0d1fe0…0d2000 20 61 6e 64 20 77 72 69 74 65 73 29 0d 0a 3b 09 73 65 6c 64 73 6b 09 73 65 6c 65 63 74 20 64 69 ┆ and writes) ; seldsk select di┆ 0x0d2000…0d2020 (56, 0, 1) 20 74 6f 20 72 65 67 2d 61 0d 0a 72 69 09 65 71 75 09 30 66 38 30 36 68 09 3b 72 65 61 64 65 72 ┆ to reg-a ri equ 0f806h ;reader┆ 0x0d2020…0d2040 20 69 6e 20 74 6f 20 72 65 67 2d 61 0d 0a 63 6f 09 65 71 75 09 30 66 38 30 39 68 09 3b 63 6f 6e ┆ in to reg-a co equ 0f809h ;con┆ 0x0d2040…0d2060 73 6f 6c 65 20 63 68 61 72 20 66 72 6f 6d 20 63 20 74 6f 20 63 6f 6e 73 6f 6c 65 20 6f 75 74 0d ┆sole char from c to console out ┆ 0x0d2060…0d2080 0a 70 6f 09 65 71 75 09 30 66 38 30 63 68 09 3b 70 75 6e 63 68 20 63 68 61 72 20 66 72 6f 6d 20 ┆ po equ 0f80ch ;punch char from ┆ 0x0d2080…0d20a0 63 20 74 6f 20 70 75 6e 63 68 20 64 65 76 69 63 65 0d 0a 6c 6f 09 65 71 75 09 30 66 38 30 66 68 ┆c to punch device lo equ 0f80fh┆ 0x0d20a0…0d20c0 09 3b 6c 69 73 74 20 66 72 6f 6d 20 63 20 74 6f 20 6c 69 73 74 20 64 65 76 69 63 65 0d 0a 63 73 ┆ ;list from c to list device cs┆ 0x0d20c0…0d20e0 74 73 09 65 71 75 09 30 66 38 31 32 68 09 3b 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 20 30 30 ┆ts equ 0f812h ;console status 00┆ 0x0d20e0…0d2100 2f 66 66 20 74 6f 20 72 65 67 69 73 74 65 72 20 61 0d 0a 3b 0d 0a 3b 09 64 69 73 6b 20 70 6f 72 ┆/ff to register a ; ; disk por┆ 0x0d2100…0d2120 74 73 20 61 6e 64 20 63 6f 6d 6d 61 6e 64 73 0d 0a 62 61 73 65 09 65 71 75 09 37 38 68 09 3b 62 ┆ts and commands base equ 78h ;b┆ 0x0d2120…0d2140 61 73 65 20 6f 66 20 64 69 73 6b 20 63 6f 6d 6d 61 6e 64 20 69 6f 20 70 6f 72 74 73 0d 0a 64 73 ┆ase of disk command io ports ds┆ 0x0d2140…0d2160 74 61 74 09 65 71 75 09 62 61 73 65 09 3b 64 69 73 6b 20 73 74 61 74 75 73 20 28 69 6e 70 75 74 ┆tat equ base ;disk status (input┆ 0x0d2160…0d2180 29 0d 0a 72 74 79 70 65 09 65 71 75 09 62 61 73 65 2b 31 09 3b 72 65 73 75 6c 74 20 74 79 70 65 ┆) rtype equ base+1 ;result type┆ 0x0d2180…0d21a0 20 28 69 6e 70 75 74 29 0d 0a 72 62 79 74 65 09 65 71 75 09 62 61 73 65 2b 33 09 3b 72 65 73 75 ┆ (input) rbyte equ base+3 ;resu┆ 0x0d21a0…0d21c0 6c 74 20 62 79 74 65 20 28 69 6e 70 75 74 29 0d 0a 3b 0d 0a 69 6c 6f 77 09 65 71 75 09 62 61 73 ┆lt byte (input) ; ilow equ bas┆ 0x0d21c0…0d21e0 65 2b 31 09 3b 69 6f 70 62 20 6c 6f 77 20 61 64 64 72 65 73 73 20 28 6f 75 74 70 75 74 29 0d 0a ┆e+1 ;iopb low address (output) ┆ 0x0d21e0…0d2200 69 68 69 67 68 09 65 71 75 09 62 61 73 65 2b 32 09 3b 69 6f 70 62 20 68 69 67 68 20 61 64 64 72 ┆ihigh equ base+2 ;iopb high addr┆ 0x0d2200…0d2220 (56, 0, 2) 75 6d 62 65 72 20 6a 75 73 74 20 72 65 61 64 0d 0a 09 63 70 69 09 32 36 09 3b 72 65 61 64 20 6c ┆umber just read cpi 26 ;read l┆ 0x0d2220…0d2240 61 73 74 20 73 65 63 74 6f 72 3f 0d 0a 09 6a 63 09 72 64 31 0d 0a 3b 09 6d 75 73 74 20 62 65 20 ┆ast sector? jc rd1 ; must be ┆ 0x0d2240…0d2260 73 65 63 74 6f 72 20 32 36 2c 20 7a 65 72 6f 20 61 6e 64 20 67 6f 20 74 6f 20 6e 65 78 74 20 74 ┆sector 26, zero and go to next t┆ 0x0d2260…0d2280 72 61 63 6b 0d 0a 09 6c 64 61 09 69 6f 74 09 3b 67 65 74 20 74 72 61 63 6b 20 74 6f 20 72 65 67 ┆rack lda iot ;get track to reg┆ 0x0d2280…0d22a0 69 73 74 65 72 20 61 0d 0a 09 69 6e 72 09 61 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 72 65 61 64 79 ┆ister a inr a mov c,a ;ready┆ 0x0d22a0…0d22c0 20 66 6f 72 20 63 61 6c 6c 0d 0a 09 63 61 6c 6c 09 73 65 74 74 72 6b 0d 0a 09 78 72 61 09 61 09 ┆ for call call settrk xra a ┆ 0x0d22c0…0d22e0 3b 63 6c 65 61 72 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 0d 0a 72 64 31 3a 09 69 6e 72 09 61 ┆;clear sector number rd1: inr a┆ 0x0d22e0…0d2300 09 3b 74 6f 20 6e 65 78 74 20 73 65 63 74 6f 72 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 72 65 61 64 ┆ ;to next sector mov c,a ;read┆ 0x0d2300…0d2320 79 20 66 6f 72 20 63 61 6c 6c 0d 0a 09 63 61 6c 6c 09 73 65 74 73 65 63 0d 0a 09 70 6f 70 09 62 ┆y for call call setsec pop b┆ 0x0d2320…0d2340 09 3b 72 65 63 61 6c 6c 20 73 65 63 74 6f 72 20 63 6f 75 6e 74 0d 0a 09 64 63 72 09 62 09 3b 64 ┆ ;recall sector count dcr b ;d┆ 0x0d2340…0d2360 6f 6e 65 3f 0d 0a 09 6a 6e 7a 09 72 64 73 65 63 0d 0a 3b 0d 0a 3b 09 64 6f 6e 65 20 77 69 74 68 ┆one? jnz rdsec ; ; done with┆ 0x0d2360…0d2380 20 74 68 65 20 6c 6f 61 64 2c 20 72 65 73 65 74 20 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 ┆ the load, reset default buffer ┆ 0x0d2380…0d23a0 61 64 64 72 65 73 73 0d 0a 67 6f 63 70 6d 3a 09 3b 28 65 6e 74 65 72 20 68 65 72 65 20 66 72 6f ┆address gocpm: ;(enter here fro┆ 0x0d23a0…0d23c0 6d 20 63 6f 6c 64 20 73 74 61 72 74 20 62 6f 6f 74 29 0d 0a 3b 09 65 6e 61 62 6c 65 20 72 73 74 ┆m cold start boot) ; enable rst┆ 0x0d23c0…0d23e0 30 20 61 6e 64 20 72 73 74 37 0d 0a 09 64 69 0d 0a 09 6d 76 69 09 61 2c 31 32 68 09 3b 69 6e 69 ┆0 and rst7 di mvi a,12h ;ini┆ 0x0d23e0…0d2400 74 69 61 6c 69 7a 65 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6f 75 74 09 72 65 76 72 74 0d 0a 09 78 72 ┆tialize command out revrt xr┆ 0x0d2400…0d2420 (56, 0, 3) 6c 78 69 09 68 2c 30 30 30 30 68 09 3b 72 65 74 75 72 6e 20 30 30 30 30 20 69 66 20 65 72 72 6f ┆lxi h,0000h ;return 0000 if erro┆ 0x0d2420…0d2440 72 0d 0a 09 6d 6f 76 09 61 2c 63 0d 0a 09 63 70 69 09 6e 64 69 73 6b 73 09 3b 74 6f 6f 20 6c 61 ┆r mov a,c cpi ndisks ;too la┆ 0x0d2440…0d2460 72 67 65 3f 0d 0a 09 72 6e 63 09 09 3b 6c 65 61 76 65 20 48 4c 20 3d 20 30 30 30 30 0d 0a 3b 0d ┆rge? rnc ;leave HL = 0000 ; ┆ 0x0d2460…0d2480 0a 09 61 6e 69 09 31 30 62 09 3b 30 30 20 30 30 20 66 6f 72 20 64 72 69 76 65 20 30 2c 31 20 61 ┆ ani 10b ;00 00 for drive 0,1 a┆ 0x0d2480…0d24a0 6e 64 20 31 30 20 31 30 20 66 6f 72 20 64 72 69 76 65 20 32 2c 33 0d 0a 09 73 74 61 09 64 62 61 ┆nd 10 10 for drive 2,3 sta dba┆ 0x0d24a0…0d24c0 6e 6b 09 3b 74 6f 20 73 65 6c 65 63 74 20 64 72 69 76 65 20 62 61 6e 6b 0d 0a 09 6d 6f 76 09 61 ┆nk ;to select drive bank mov a┆ 0x0d24c0…0d24e0 2c 63 09 3b 30 30 2c 20 30 31 2c 20 31 30 2c 20 31 31 0d 0a 09 61 6e 69 09 31 62 09 3b 6d 64 73 ┆,c ;00, 01, 10, 11 ani 1b ;mds┆ 0x0d24e0…0d2500 20 68 61 73 20 30 2c 31 20 61 74 20 37 38 2c 20 32 2c 33 20 61 74 20 38 38 0d 0a 09 6f 72 61 09 ┆ has 0,1 at 78, 2,3 at 88 ora ┆ 0x0d2500…0d2520 61 09 3b 72 65 73 75 6c 74 20 30 30 3f 0d 0a 09 6a 7a 09 73 65 74 64 72 69 76 65 0d 0a 09 6d 76 ┆a ;result 00? jz setdrive mv┆ 0x0d2520…0d2540 69 09 61 2c 30 30 31 31 30 30 30 30 62 09 3b 73 65 6c 65 63 74 73 20 64 72 69 76 65 20 31 20 69 ┆i a,00110000b ;selects drive 1 i┆ 0x0d2540…0d2560 6e 20 62 61 6e 6b 0d 0a 73 65 74 64 72 69 76 65 3a 0d 0a 09 6d 6f 76 09 62 2c 61 09 3b 73 61 76 ┆n bank setdrive: mov b,a ;sav┆ 0x0d2560…0d2580 65 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6c 78 69 09 68 2c 69 6f 66 09 3b 69 6f 20 66 ┆e the function lxi h,iof ;io f┆ 0x0d2580…0d25a0 75 6e 63 74 69 6f 6e 0d 0a 09 6d 6f 76 09 61 2c 6d 0d 0a 09 61 6e 69 09 31 31 30 30 31 31 31 31 ┆unction mov a,m ani 11001111┆ 0x0d25a0…0d25c0 62 09 3b 6d 61 73 6b 20 6f 75 74 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6f 72 61 09 62 09 ┆b ;mask out disk number ora b ┆ 0x0d25c0…0d25e0 3b 6d 61 73 6b 20 69 6e 20 6e 65 77 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6d 6f 76 09 6d ┆;mask in new disk number mov m┆ 0x0d25e0…0d2600 2c 61 09 3b 73 61 76 65 20 69 74 20 69 6e 20 69 6f 70 62 0d 0a 09 6d 6f 76 09 6c 2c 63 0d 0a 09 ┆,a ;save it in iopb mov l,c ┆ 0x0d2600…0d2620 (56, 0, 4) 20 73 65 6c 65 63 74 20 62 79 74 65 0d 0a 09 6f 72 61 09 6d 09 09 3b 73 65 6c 65 63 74 20 70 72 ┆ select byte ora m ;select pr┆ 0x0d2620…0d2640 6f 70 65 72 20 64 69 73 6b 20 62 61 6e 6b 0d 0a 09 6d 6f 76 09 6d 2c 61 09 09 3b 73 65 74 20 64 ┆oper disk bank mov m,a ;set d┆ 0x0d2640…0d2660 69 73 6b 20 73 65 6c 65 63 74 20 62 69 74 20 6f 6e 2f 6f 66 66 0d 0a 09 72 65 74 0d 0a 3b 0d 0a ┆isk select bit on/off ret ; ┆ 0x0d2660…0d2680 77 61 69 74 69 6f 3a 0d 0a 09 6d 76 69 09 63 2c 72 65 74 72 79 09 3b 6d 61 78 20 72 65 74 72 69 ┆waitio: mvi c,retry ;max retri┆ 0x0d2680…0d26a0 65 73 20 62 65 66 6f 72 65 20 70 65 72 6d 20 65 72 72 6f 72 0d 0a 72 65 77 61 69 74 3a 0d 0a 3b ┆es before perm error rewait: ;┆ 0x0d26a0…0d26c0 09 73 74 61 72 74 20 74 68 65 20 69 2f 6f 20 66 75 6e 63 74 69 6f 6e 20 61 6e 64 20 77 61 69 74 ┆ start the i/o function and wait┆ 0x0d26c0…0d26e0 20 66 6f 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 69 6e 74 79 70 65 09 3b 69 ┆ for completion call intype ;i┆ 0x0d26e0…0d2700 6e 20 72 74 79 70 65 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 09 3b 63 6c 65 61 72 73 20 74 68 ┆n rtype call inbyte ;clears th┆ 0x0d2700…0d2720 65 20 63 6f 6e 74 72 6f 6c 6c 65 72 0d 0a 3b 0d 0a 09 6c 64 61 09 64 62 61 6e 6b 09 09 3b 73 65 ┆e controller ; lda dbank ;se┆ 0x0d2720…0d2740 74 20 62 61 6e 6b 20 66 6c 61 67 73 0d 0a 09 6f 72 61 09 61 09 09 3b 7a 65 72 6f 20 69 66 20 64 ┆t bank flags ora a ;zero if d┆ 0x0d2740…0d2760 72 69 76 65 20 30 2c 31 20 61 6e 64 20 6e 7a 20 69 66 20 32 2c 33 0d 0a 09 6d 76 69 09 61 2c 69 ┆rive 0,1 and nz if 2,3 mvi a,i┆ 0x0d2760…0d2780 6f 70 62 20 61 6e 64 20 30 66 66 68 09 3b 6c 6f 77 20 61 64 64 72 65 73 73 20 66 6f 72 20 69 6f ┆opb and 0ffh ;low address for io┆ 0x0d2780…0d27a0 70 62 0d 0a 09 6d 76 69 09 62 2c 69 6f 70 62 20 73 68 72 20 38 09 3b 68 69 67 68 20 61 64 64 72 ┆pb mvi b,iopb shr 8 ;high addr┆ 0x0d27a0…0d27c0 65 73 73 20 66 6f 72 20 69 6f 70 62 0d 0a 09 6a 6e 7a 09 69 6f 64 72 31 09 3b 64 72 69 76 65 20 ┆ess for iopb jnz iodr1 ;drive ┆ 0x0d27c0…0d27e0 62 61 6e 6b 20 31 3f 0d 0a 09 6f 75 74 09 69 6c 6f 77 09 09 3b 6c 6f 77 20 61 64 64 72 65 73 73 ┆bank 1? out ilow ;low address┆ 0x0d27e0…0d2800 20 74 6f 20 63 6f 6e 74 72 6f 6c 6c 65 72 0d 0a 09 6d 6f 76 09 61 2c 62 0d 0a 09 6f 75 74 09 69 ┆ to controller mov a,b out i┆ 0x0d2800…0d2820 (56, 0, 5) 65 73 73 20 28 6f 75 74 70 75 74 29 0d 0a 3b 0d 0a 72 65 61 64 66 09 65 71 75 09 34 68 09 3b 72 ┆ess (output) ; readf equ 4h ;r┆ 0x0d2820…0d2840 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 77 72 69 74 66 09 65 71 75 09 36 68 09 3b 77 72 69 74 ┆ead function writf equ 6h ;writ┆ 0x0d2840…0d2860 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 72 65 63 61 6c 09 65 71 75 09 33 68 09 3b 72 65 63 61 6c 69 ┆e function recal equ 3h ;recali┆ 0x0d2860…0d2880 62 72 61 74 65 20 64 72 69 76 65 0d 0a 69 6f 72 64 79 09 65 71 75 09 34 68 09 3b 69 2f 6f 20 66 ┆brate drive iordy equ 4h ;i/o f┆ 0x0d2880…0d28a0 69 6e 69 73 68 65 64 20 6d 61 73 6b 0d 0a 63 72 09 65 71 75 09 30 64 68 09 3b 63 61 72 72 69 61 ┆inished mask cr equ 0dh ;carria┆ 0x0d28a0…0d28c0 67 65 20 72 65 74 75 72 6e 0d 0a 6c 66 09 65 71 75 09 30 61 68 09 3b 6c 69 6e 65 20 66 65 65 64 ┆ge return lf equ 0ah ;line feed┆ 0x0d28c0…0d28e0 0d 0a 3b 0d 0a 73 69 67 6e 6f 6e 3a 09 3b 73 69 67 6e 6f 6e 20 6d 65 73 73 61 67 65 3a 20 78 78 ┆ ; signon: ;signon message: xx┆ 0x0d28e0…0d2900 6b 20 63 70 2f 6d 20 76 65 72 73 20 79 2e 79 0d 0a 09 64 62 09 63 72 2c 6c 66 2c 6c 66 0d 0a 09 ┆k cp/m vers y.y db cr,lf,lf ┆ 0x0d2900…0d2920 69 66 09 74 65 73 74 0d 0a 09 64 62 09 27 33 32 27 09 3b 33 32 6b 20 65 78 61 6d 70 6c 65 20 62 ┆if test db '32' ;32k example b┆ 0x0d2920…0d2940 69 6f 73 0d 0a 09 65 6e 64 69 66 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 09 64 62 09 27 ┆ios endif if not test db '┆ 0x0d2940…0d2960 30 30 27 09 3b 6d 65 6d 6f 72 79 20 73 69 7a 65 20 66 69 6c 6c 65 64 20 62 79 20 72 65 6c 6f 63 ┆00' ;memory size filled by reloc┆ 0x0d2960…0d2980 61 74 6f 72 0d 0a 09 65 6e 64 69 66 0d 0a 09 64 62 09 27 6b 20 43 50 2f 4d 20 76 65 72 73 20 27 ┆ator endif db 'k CP/M vers '┆ 0x0d2980…0d29a0 0d 0a 09 64 62 09 76 65 72 73 2f 31 30 2b 27 30 27 2c 27 2e 27 2c 76 65 72 73 20 6d 6f 64 20 31 ┆ db vers/10+'0','.',vers mod 1┆ 0x0d29a0…0d29c0 30 2b 27 30 27 0d 0a 09 64 62 09 63 72 2c 6c 66 2c 30 0d 0a 3b 0d 0a 62 6f 6f 74 3a 09 3b 70 72 ┆0+'0' db cr,lf,0 ; boot: ;pr┆ 0x0d29c0…0d29e0 69 6e 74 20 73 69 67 6e 6f 6e 20 6d 65 73 73 61 67 65 20 61 6e 64 20 67 6f 20 74 6f 20 63 63 70 ┆int signon message and go to ccp┆ 0x0d29e0…0d2a00 0d 0a 3b 09 28 6e 6f 74 65 3a 20 6d 64 73 20 62 6f 6f 74 20 69 6e 69 74 69 61 6c 69 7a 65 64 20 ┆ ; (note: mds boot initialized ┆ 0x0d2a00…0d2a20 (56, 0, 6) 61 09 61 0d 0a 09 6f 75 74 09 69 6e 74 63 09 3b 63 6c 65 61 72 65 64 0d 0a 09 6d 76 69 09 61 2c ┆a a out intc ;cleared mvi a,┆ 0x0d2a20…0d2a40 69 6e 74 65 09 3b 72 73 74 30 20 61 6e 64 20 72 73 74 37 20 62 69 74 73 20 6f 6e 0d 0a 09 6f 75 ┆inte ;rst0 and rst7 bits on ou┆ 0x0d2a40…0d2a60 74 09 69 6e 74 63 0d 0a 09 78 72 61 09 61 0d 0a 09 6f 75 74 09 69 63 6f 6e 09 3b 69 6e 74 65 72 ┆t intc xra a out icon ;inter┆ 0x0d2a60…0d2a80 72 75 70 74 20 63 6f 6e 74 72 6f 6c 0d 0a 3b 0d 0a 3b 09 73 65 74 20 64 65 66 61 75 6c 74 20 62 ┆rupt control ; ; set default b┆ 0x0d2a80…0d2aa0 75 66 66 65 72 20 61 64 64 72 65 73 73 20 74 6f 20 38 30 68 0d 0a 09 6c 78 69 09 62 2c 62 75 66 ┆uffer address to 80h lxi b,buf┆ 0x0d2aa0…0d2ac0 66 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 3b 0d 0a 3b 09 72 65 73 65 74 20 6d 6f 6e 69 ┆f call setdma ; ; reset moni┆ 0x0d2ac0…0d2ae0 74 6f 72 20 65 6e 74 72 79 20 70 6f 69 6e 74 73 0d 0a 09 6d 76 69 09 61 2c 6a 6d 70 0d 0a 09 73 ┆tor entry points mvi a,jmp s┆ 0x0d2ae0…0d2b00 74 61 09 30 0d 0a 09 6c 78 69 09 68 2c 77 62 6f 6f 74 65 0d 0a 09 73 68 6c 64 09 31 09 3b 6a 6d ┆ta 0 lxi h,wboote shld 1 ;jm┆ 0x0d2b00…0d2b20 70 20 77 62 6f 6f 74 20 61 74 20 6c 6f 63 61 74 69 6f 6e 20 30 30 0d 0a 09 73 74 61 09 35 0d 0a ┆p wboot at location 00 sta 5 ┆ 0x0d2b20…0d2b40 09 6c 78 69 09 68 2c 62 64 6f 73 0d 0a 09 73 68 6c 64 09 36 09 3b 6a 6d 70 20 62 64 6f 73 20 61 ┆ lxi h,bdos shld 6 ;jmp bdos a┆ 0x0d2b40…0d2b60 74 20 6c 6f 63 61 74 69 6f 6e 20 35 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 09 73 74 61 ┆t location 5 if not test sta┆ 0x0d2b60…0d2b80 09 37 2a 38 09 3b 6a 6d 70 20 74 6f 20 6d 6f 6e 38 30 20 28 6d 61 79 20 68 61 76 65 20 62 65 65 ┆ 7*8 ;jmp to mon80 (may have bee┆ 0x0d2b80…0d2ba0 6e 20 63 68 61 6e 67 65 64 20 62 79 20 64 64 74 29 0d 0a 09 6c 78 69 09 68 2c 6d 6f 6e 38 30 0d ┆n changed by ddt) lxi h,mon80 ┆ 0x0d2ba0…0d2bc0 0a 09 73 68 6c 64 09 37 2a 38 2b 31 0d 0a 09 65 6e 64 69 66 0d 0a 3b 09 6c 65 61 76 65 20 69 6f ┆ shld 7*8+1 endif ; leave io┆ 0x0d2bc0…0d2be0 62 79 74 65 20 73 65 74 0d 0a 3b 09 70 72 65 76 69 6f 75 73 6c 79 20 73 65 6c 65 63 74 65 64 20 ┆byte set ; previously selected ┆ 0x0d2be0…0d2c00 64 69 73 6b 20 77 61 73 20 62 2c 20 73 65 6e 64 20 70 61 72 61 6d 65 74 65 72 20 74 6f 20 63 70 ┆disk was b, send parameter to cp┆ 0x0d2c00…0d2c20 (56, 0, 7) 6d 76 69 09 68 2c 30 09 3b 48 4c 3d 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 64 61 64 09 68 09 ┆mvi h,0 ;HL=disk number dad h ┆ 0x0d2c20…0d2c40 3b 2a 32 0d 0a 09 64 61 64 09 68 09 3b 2a 34 0d 0a 09 64 61 64 09 68 09 3b 2a 38 0d 0a 09 64 61 ┆;*2 dad h ;*4 dad h ;*8 da┆ 0x0d2c40…0d2c60 64 09 68 09 3b 2a 31 36 0d 0a 09 6c 78 69 09 64 2c 64 70 62 61 73 65 0d 0a 09 64 61 64 09 64 09 ┆d h ;*16 lxi d,dpbase dad d ┆ 0x0d2c60…0d2c80 3b 48 4c 3d 64 69 73 6b 20 68 65 61 64 65 72 20 74 61 62 6c 65 20 61 64 64 72 65 73 73 0d 0a 09 ┆;HL=disk header table address ┆ 0x0d2c80…0d2ca0 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 73 65 74 74 72 6b 3a 09 3b 73 65 74 20 74 72 61 63 6b 20 61 64 ┆ret ; ; settrk: ;set track ad┆ 0x0d2ca0…0d2cc0 64 72 65 73 73 20 67 69 76 65 6e 20 62 79 20 63 0d 0a 09 6c 78 69 09 68 2c 69 6f 74 0d 0a 09 6d ┆dress given by c lxi h,iot m┆ 0x0d2cc0…0d2ce0 6f 76 09 6d 2c 63 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 73 65 74 73 65 63 3a 09 3b 73 65 74 20 73 65 ┆ov m,c ret ; setsec: ;set se┆ 0x0d2ce0…0d2d00 63 74 6f 72 20 6e 75 6d 62 65 72 20 67 69 76 65 6e 20 62 79 20 63 0d 0a 09 6c 78 69 09 68 2c 69 ┆ctor number given by c lxi h,i┆ 0x0d2d00…0d2d20 6f 73 0d 0a 09 6d 6f 76 09 6d 2c 63 0d 0a 09 72 65 74 0d 0a 73 65 63 74 72 61 6e 3a 0d 0a 09 09 ┆os mov m,c ret sectran: ┆ 0x0d2d20…0d2d40 3b 74 72 61 6e 73 6c 61 74 65 20 73 65 63 74 6f 72 20 62 63 20 75 73 69 6e 67 20 74 61 62 6c 65 ┆;translate sector bc using table┆ 0x0d2d40…0d2d60 20 61 74 20 64 65 0d 0a 09 6d 76 69 09 62 2c 30 09 3b 64 6f 75 62 6c 65 20 70 72 65 63 69 73 69 ┆ at de mvi b,0 ;double precisi┆ 0x0d2d60…0d2d80 6f 6e 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 69 6e 20 42 43 0d 0a 09 78 63 68 67 09 09 3b ┆on sector number in BC xchg ;┆ 0x0d2d80…0d2da0 74 72 61 6e 73 6c 61 74 65 20 74 61 62 6c 65 20 61 64 64 72 65 73 73 20 74 6f 20 48 4c 0d 0a 09 ┆translate table address to HL ┆ 0x0d2da0…0d2dc0 64 61 64 09 62 09 3b 74 72 61 6e 73 6c 61 74 65 28 73 65 63 74 6f 72 29 20 61 64 64 72 65 73 73 ┆dad b ;translate(sector) address┆ 0x0d2dc0…0d2de0 0d 0a 09 6d 6f 76 09 61 2c 6d 09 3b 74 72 61 6e 73 6c 61 74 65 64 20 73 65 63 74 6f 72 20 6e 75 ┆ mov a,m ;translated sector nu┆ 0x0d2de0…0d2e00 6d 62 65 72 20 74 6f 20 41 0d 0a 09 73 74 61 09 69 6f 73 0d 0a 09 6d 6f 76 09 6c 2c 61 09 3b 72 ┆mber to A sta ios mov l,a ;r┆ 0x0d2e00…0d2e20 (56, 0, 8) 68 69 67 68 09 3b 68 69 67 68 20 61 64 64 72 65 73 73 0d 0a 09 6a 6d 70 09 77 61 69 74 30 09 09 ┆high ;high address jmp wait0 ┆ 0x0d2e20…0d2e40 3b 74 6f 20 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 65 0d 0a 3b 0d 0a 69 6f 64 72 31 3a ┆;to wait for complete ; iodr1:┆ 0x0d2e40…0d2e60 09 3b 64 72 69 76 65 20 62 61 6e 6b 20 31 0d 0a 09 6f 75 74 09 69 6c 6f 77 2b 31 30 68 09 3b 38 ┆ ;drive bank 1 out ilow+10h ;8┆ 0x0d2e60…0d2e80 38 20 66 6f 72 20 64 72 69 76 65 20 62 61 6e 6b 20 31 30 0d 0a 09 6d 6f 76 09 61 2c 62 0d 0a 09 ┆8 for drive bank 10 mov a,b ┆ 0x0d2e80…0d2ea0 6f 75 74 09 69 68 69 67 68 2b 31 30 68 0d 0a 3b 0d 0a 77 61 69 74 30 3a 09 63 61 6c 6c 09 69 6e ┆out ihigh+10h ; wait0: call in┆ 0x0d2ea0…0d2ec0 73 74 61 74 09 09 3b 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 0d 0a 09 61 6e 69 ┆stat ;wait for completion ani┆ 0x0d2ec0…0d2ee0 09 69 6f 72 64 79 09 09 3b 72 65 61 64 79 3f 0d 0a 09 6a 7a 09 77 61 69 74 30 0d 0a 3b 0d 0a 3b ┆ iordy ;ready? jz wait0 ; ;┆ 0x0d2ee0…0d2f00 09 63 68 65 63 6b 20 69 6f 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 6f 6b 0d 0a 09 63 61 6c 6c 09 69 ┆ check io completion ok call i┆ 0x0d2f00…0d2f20 6e 74 79 70 65 09 09 3b 6d 75 73 74 20 62 65 20 69 6f 20 63 6f 6d 70 6c 65 74 65 20 28 30 30 29 ┆ntype ;must be io complete (00)┆ 0x0d2f20…0d2f40 20 75 6e 6c 69 6e 6b 65 64 0d 0a 3b 09 30 30 20 75 6e 6c 69 6e 6b 65 64 20 69 2f 6f 20 63 6f 6d ┆ unlinked ; 00 unlinked i/o com┆ 0x0d2f40…0d2f60 70 6c 65 74 65 2c 20 20 20 20 30 31 20 6c 69 6e 6b 65 64 20 69 2f 6f 20 63 6f 6d 70 6c 65 74 65 ┆plete, 01 linked i/o complete┆ 0x0d2f60…0d2f80 20 28 6e 6f 74 20 75 73 65 64 29 0d 0a 3b 09 31 30 20 64 69 73 6b 20 73 74 61 74 75 73 20 63 68 ┆ (not used) ; 10 disk status ch┆ 0x0d2f80…0d2fa0 61 6e 67 65 64 20 20 20 20 20 20 20 31 31 20 28 6e 6f 74 20 75 73 65 64 29 0d 0a 09 63 70 69 09 ┆anged 11 (not used) cpi ┆ 0x0d2fa0…0d2fc0 31 30 62 09 09 3b 72 65 61 64 79 20 73 74 61 74 75 73 20 63 68 61 6e 67 65 3f 0d 0a 09 6a 7a 09 ┆10b ;ready status change? jz ┆ 0x0d2fc0…0d2fe0 77 72 65 61 64 79 0d 0a 3b 0d 0a 3b 09 6d 75 73 74 20 62 65 20 30 30 20 69 6e 20 74 68 65 20 61 ┆wready ; ; must be 00 in the a┆ 0x0d2fe0…0d3000 63 63 75 6d 75 6c 61 74 6f 72 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 77 65 72 72 6f 72 09 ┆ccumulator ora a jnz werror ┆ 0x0d3000…0d3020 (56, 0, 9) 69 6f 62 79 74 65 20 61 74 20 30 30 30 33 68 29 0d 0a 09 6c 78 69 09 73 70 2c 62 75 66 66 2b 38 ┆iobyte at 0003h) lxi sp,buff+8┆ 0x0d3020…0d3040 30 68 0d 0a 09 6c 78 69 09 68 2c 73 69 67 6e 6f 6e 0d 0a 09 63 61 6c 6c 09 70 72 6d 73 67 09 3b ┆0h lxi h,signon call prmsg ;┆ 0x0d3040…0d3060 70 72 69 6e 74 20 6d 65 73 73 61 67 65 0d 0a 09 78 72 61 09 61 09 3b 63 6c 65 61 72 20 61 63 63 ┆print message xra a ;clear acc┆ 0x0d3060…0d3080 75 6d 75 6c 61 74 6f 72 0d 0a 09 73 74 61 09 63 64 69 73 6b 09 3b 73 65 74 20 69 6e 69 74 69 61 ┆umulator sta cdisk ;set initia┆ 0x0d3080…0d30a0 6c 6c 79 20 74 6f 20 64 69 73 6b 20 61 0d 0a 09 6a 6d 70 09 67 6f 63 70 6d 09 3b 67 6f 20 74 6f ┆lly to disk a jmp gocpm ;go to┆ 0x0d30a0…0d30c0 20 63 70 2f 6d 0d 0a 3b 0d 0a 3b 0d 0a 77 62 6f 6f 74 3a 3b 09 6c 6f 61 64 65 72 20 6f 6e 20 74 ┆ cp/m ; ; wboot:; loader on t┆ 0x0d30c0…0d30e0 72 61 63 6b 20 30 2c 20 73 65 63 74 6f 72 20 31 2c 20 77 68 69 63 68 20 77 69 6c 6c 20 62 65 20 ┆rack 0, sector 1, which will be ┆ 0x0d30e0…0d3100 73 6b 69 70 70 65 64 20 66 6f 72 20 77 61 72 6d 20 0d 0a 3b 09 72 65 61 64 20 63 70 2f 6d 20 66 ┆skipped for warm ; read cp/m f┆ 0x0d3100…0d3120 72 6f 6d 20 64 69 73 6b 20 2d 20 61 73 73 75 6d 69 6e 67 20 74 68 65 72 65 20 69 73 20 61 20 31 ┆rom disk - assuming there is a 1┆ 0x0d3120…0d3140 32 38 20 62 79 74 65 20 63 6f 6c 64 20 73 74 61 72 74 0d 0a 3b 09 73 74 61 72 74 2e 0d 0a 3b 0d ┆28 byte cold start ; start. ; ┆ 0x0d3140…0d3160 0a 09 6c 78 69 09 73 70 2c 62 75 66 66 09 3b 75 73 69 6e 67 20 64 6d 61 20 2d 20 74 68 75 73 20 ┆ lxi sp,buff ;using dma - thus ┆ 0x0d3160…0d3180 38 30 20 74 68 72 75 20 66 66 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 73 74 61 63 6b 0d 0a ┆80 thru ff available for stack ┆ 0x0d3180…0d31a0 3b 0d 0a 09 6d 76 69 09 63 2c 72 65 74 72 79 09 3b 6d 61 78 20 72 65 74 72 69 65 73 0d 0a 09 70 ┆; mvi c,retry ;max retries p┆ 0x0d31a0…0d31c0 75 73 68 09 62 0d 0a 77 62 6f 6f 74 30 3a 09 3b 65 6e 74 65 72 20 68 65 72 65 20 6f 6e 20 65 72 ┆ush b wboot0: ;enter here on er┆ 0x0d31c0…0d31e0 72 6f 72 20 72 65 74 72 69 65 73 0d 0a 09 6c 78 69 09 62 2c 63 70 6d 62 09 3b 73 65 74 20 64 6d ┆ror retries lxi b,cpmb ;set dm┆ 0x0d31e0…0d3200 61 20 61 64 64 72 65 73 73 20 74 6f 20 73 74 61 72 74 20 6f 66 20 64 69 73 6b 20 73 79 73 74 65 ┆a address to start of disk syste┆ 0x0d3200…0d3220 (56, 0, 10) 6d 0d 0a 09 6c 64 61 09 63 64 69 73 6b 09 3b 6c 61 73 74 20 6c 6f 67 67 65 64 20 64 69 73 6b 20 ┆m lda cdisk ;last logged disk ┆ 0x0d3220…0d3240 6e 75 6d 62 65 72 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 73 65 6e 64 20 74 6f 20 63 63 70 20 74 6f ┆number mov c,a ;send to ccp to┆ 0x0d3240…0d3260 20 6c 6f 67 20 69 74 20 69 6e 0d 0a 09 65 69 0d 0a 09 6a 6d 70 09 63 70 6d 62 0d 0a 3b 0d 0a 3b ┆ log it in ei jmp cpmb ; ;┆ 0x0d3260…0d3280 09 65 72 72 6f 72 20 63 6f 6e 64 69 74 69 6f 6e 20 6f 63 63 75 72 72 65 64 2c 20 70 72 69 6e 74 ┆ error condition occurred, print┆ 0x0d3280…0d32a0 20 6d 65 73 73 61 67 65 20 61 6e 64 20 72 65 74 72 79 0d 0a 62 6f 6f 74 65 72 72 3a 0d 0a 09 70 ┆ message and retry booterr: p┆ 0x0d32a0…0d32c0 6f 70 09 62 09 3b 72 65 63 61 6c 6c 20 63 6f 75 6e 74 73 0d 0a 09 64 63 72 09 63 0d 0a 09 6a 7a ┆op b ;recall counts dcr c jz┆ 0x0d32c0…0d32e0 09 62 6f 6f 74 65 72 30 0d 0a 3b 09 74 72 79 20 61 67 61 69 6e 0d 0a 09 70 75 73 68 09 62 0d 0a ┆ booter0 ; try again push b ┆ 0x0d32e0…0d3300 09 6a 6d 70 09 77 62 6f 6f 74 30 0d 0a 3b 0d 0a 62 6f 6f 74 65 72 30 3a 0d 0a 3b 09 6f 74 68 65 ┆ jmp wboot0 ; booter0: ; othe┆ 0x0d3300…0d3320 72 77 69 73 65 20 74 6f 6f 20 6d 61 6e 79 20 72 65 74 72 69 65 73 0d 0a 09 6c 78 69 09 68 2c 62 ┆rwise too many retries lxi h,b┆ 0x0d3320…0d3340 6f 6f 74 6d 73 67 0d 0a 09 63 61 6c 6c 09 70 72 6d 73 67 0d 0a 09 6a 6d 70 09 72 6d 6f 6e 38 30 ┆ootmsg call prmsg jmp rmon80┆ 0x0d3340…0d3360 09 3b 6d 64 73 20 68 61 72 64 77 61 72 65 20 6d 6f 6e 69 74 6f 72 0d 0a 3b 0d 0a 62 6f 6f 74 6d ┆ ;mds hardware monitor ; bootm┆ 0x0d3360…0d3380 73 67 3a 0d 0a 09 64 62 09 27 3f 62 6f 6f 74 27 2c 30 0d 0a 3b 0d 0a 3b 0d 0a 63 6f 6e 73 74 3a ┆sg: db '?boot',0 ; ; const:┆ 0x0d3380…0d33a0 09 3b 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 20 74 6f 20 72 65 67 2d 61 0d 0a 3b 09 28 65 78 ┆ ;console status to reg-a ; (ex┆ 0x0d33a0…0d33c0 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d ┆actly the same as mds call) jm┆ 0x0d33c0…0d33e0 70 09 63 73 74 73 0d 0a 3b 0d 0a 63 6f 6e 69 6e 3a 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 ┆p csts ; conin: ;console chara┆ 0x0d33e0…0d3400 63 74 65 72 20 74 6f 20 72 65 67 2d 61 0d 0a 09 63 61 6c 6c 09 63 69 0d 0a 09 61 6e 69 09 37 66 ┆cter to reg-a call ci ani 7f┆ 0x0d3400…0d3420 (56, 0, 11) 65 74 75 72 6e 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 69 6e 20 4c 0d 0a 09 72 65 74 0d 0a ┆eturn sector number in L ret ┆ 0x0d3420…0d3440 3b 0d 0a 73 65 74 64 6d 61 3a 09 3b 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 67 69 76 65 ┆; setdma: ;set dma address give┆ 0x0d3440…0d3460 6e 20 62 79 20 72 65 67 73 20 62 2c 63 0d 0a 09 6d 6f 76 09 6c 2c 63 0d 0a 09 6d 6f 76 09 68 2c ┆n by regs b,c mov l,c mov h,┆ 0x0d3460…0d3480 62 0d 0a 09 73 68 6c 64 09 69 6f 64 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 72 65 61 64 3a 09 3b 72 65 ┆b shld iod ret ; read: ;re┆ 0x0d3480…0d34a0 61 64 20 6e 65 78 74 20 64 69 73 6b 20 72 65 63 6f 72 64 20 28 61 73 73 75 6d 69 6e 67 20 64 69 ┆ad next disk record (assuming di┆ 0x0d34a0…0d34c0 73 6b 2f 74 72 6b 2f 73 65 63 2f 64 6d 61 20 73 65 74 29 0d 0a 09 6d 76 69 09 63 2c 72 65 61 64 ┆sk/trk/sec/dma set) mvi c,read┆ 0x0d34c0…0d34e0 66 09 3b 73 65 74 20 74 6f 20 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 73 ┆f ;set to read function call s┆ 0x0d34e0…0d3500 65 74 66 75 6e 63 0d 0a 09 63 61 6c 6c 09 77 61 69 74 69 6f 09 3b 70 65 72 66 6f 72 6d 20 72 65 ┆etfunc call waitio ;perform re┆ 0x0d3500…0d3520 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 72 65 74 09 09 3b 6d 61 79 20 68 61 76 65 20 65 72 72 ┆ad function ret ;may have err┆ 0x0d3520…0d3540 6f 72 20 73 65 74 20 69 6e 20 72 65 67 2d 61 0d 0a 3b 0d 0a 3b 0d 0a 77 72 69 74 65 3a 09 3b 64 ┆or set in reg-a ; ; write: ;d┆ 0x0d3540…0d3560 69 73 6b 20 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6d 76 69 09 63 2c 77 72 69 74 66 ┆isk write function mvi c,writf┆ 0x0d3560…0d3580 0d 0a 09 63 61 6c 6c 09 73 65 74 66 75 6e 63 09 3b 73 65 74 20 74 6f 20 77 72 69 74 65 20 66 75 ┆ call setfunc ;set to write fu┆ 0x0d3580…0d35a0 6e 63 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 77 61 69 74 69 6f 0d 0a 09 72 65 74 09 09 3b 6d 61 79 ┆nction call waitio ret ;may┆ 0x0d35a0…0d35c0 20 68 61 76 65 20 65 72 72 6f 72 20 73 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 75 74 69 6c 69 74 79 ┆ have error set ; ; ; utility┆ 0x0d35c0…0d35e0 20 73 75 62 72 6f 75 74 69 6e 65 73 0d 0a 70 72 6d 73 67 3a 09 3b 70 72 69 6e 74 20 6d 65 73 73 ┆ subroutines prmsg: ;print mess┆ 0x0d35e0…0d3600 61 67 65 20 61 74 20 68 2c 6c 20 74 6f 20 30 0d 0a 09 6d 6f 76 09 61 2c 6d 0d 0a 09 6f 72 61 09 ┆age at h,l to 0 mov a,m ora ┆ 0x0d3600…0d3620 (56, 0, 12) 09 3b 73 6f 6d 65 20 6f 74 68 65 72 20 63 6f 6e 64 69 74 69 6f 6e 2c 20 72 65 74 72 79 0d 0a 3b ┆ ;some other condition, retry ;┆ 0x0d3620…0d3640 0d 0a 3b 09 63 68 65 63 6b 20 69 2f 6f 20 65 72 72 6f 72 20 62 69 74 73 0d 0a 09 63 61 6c 6c 09 ┆ ; check i/o error bits call ┆ 0x0d3640…0d3660 69 6e 62 79 74 65 0d 0a 09 72 61 6c 0d 0a 09 6a 63 09 77 72 65 61 64 79 09 09 3b 75 6e 69 74 20 ┆inbyte ral jc wready ;unit ┆ 0x0d3660…0d3680 6e 6f 74 20 72 65 61 64 79 0d 0a 09 72 61 72 0d 0a 09 61 6e 69 09 31 31 31 31 31 31 31 30 62 09 ┆not ready rar ani 11111110b ┆ 0x0d3680…0d36a0 3b 61 6e 79 20 6f 74 68 65 72 20 65 72 72 6f 72 73 3f 20 20 28 64 65 6c 65 74 65 64 20 64 61 74 ┆;any other errors? (deleted dat┆ 0x0d36a0…0d36c0 61 20 6f 6b 29 0d 0a 09 6a 6e 7a 09 77 65 72 72 6f 72 0d 0a 3b 0d 0a 3b 09 72 65 61 64 20 6f 72 ┆a ok) jnz werror ; ; read or┆ 0x0d36c0…0d36e0 20 77 72 69 74 65 20 69 73 20 6f 6b 2c 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 63 6f 6e 74 61 69 ┆ write is ok, accumulator contai┆ 0x0d36e0…0d3700 6e 73 20 7a 65 72 6f 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 77 72 65 61 64 79 3a 09 3b 6e 6f 74 20 72 ┆ns zero ret ; wready: ;not r┆ 0x0d3700…0d3720 65 61 64 79 2c 20 74 72 65 61 74 20 61 73 20 65 72 72 6f 72 20 66 6f 72 20 6e 6f 77 0d 0a 09 63 ┆eady, treat as error for now c┆ 0x0d3720…0d3740 61 6c 6c 09 69 6e 62 79 74 65 09 09 3b 63 6c 65 61 72 20 72 65 73 75 6c 74 20 62 79 74 65 0d 0a ┆all inbyte ;clear result byte ┆ 0x0d3740…0d3760 09 6a 6d 70 09 74 72 79 63 6f 75 6e 74 0d 0a 3b 0d 0a 77 65 72 72 6f 72 3a 09 3b 72 65 74 75 72 ┆ jmp trycount ; werror: ;retur┆ 0x0d3760…0d3780 6e 20 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 20 28 63 72 63 2c 20 74 72 61 ┆n hardware malfunction (crc, tra┆ 0x0d3780…0d37a0 63 6b 2c 20 73 65 65 6b 2c 20 65 74 63 2e 29 0d 0a 3b 09 74 68 65 20 6d 64 73 20 63 6f 6e 74 72 ┆ck, seek, etc.) ; the mds contr┆ 0x0d37a0…0d37c0 6f 6c 6c 65 72 20 68 61 73 20 72 65 74 75 72 6e 65 64 20 61 20 62 69 74 20 69 6e 20 65 61 63 68 ┆oller has returned a bit in each┆ 0x0d37c0…0d37e0 20 70 6f 73 69 74 69 6f 6e 0d 0a 3b 09 6f 66 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 2c ┆ position ; of the accumulator,┆ 0x0d37e0…0d3800 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e 73 ┆ corresponding to the conditions┆ 0x0d3800…0d3820 (56, 0, 13) 6d 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 09 6d 76 69 09 63 2c 30 09 3b 62 6f 6f 74 20 ┆m call setdma mvi c,0 ;boot ┆ 0x0d3820…0d3840 66 72 6f 6d 20 64 72 69 76 65 20 30 0d 0a 09 63 61 6c 6c 09 73 65 6c 64 73 6b 0d 0a 09 6d 76 69 ┆from drive 0 call seldsk mvi┆ 0x0d3840…0d3860 09 63 2c 30 0d 0a 09 63 61 6c 6c 09 73 65 74 74 72 6b 09 3b 73 74 61 72 74 20 77 69 74 68 20 74 ┆ c,0 call settrk ;start with t┆ 0x0d3860…0d3880 72 61 63 6b 20 30 0d 0a 09 6d 76 69 09 63 2c 32 09 3b 73 74 61 72 74 20 72 65 61 64 69 6e 67 20 ┆rack 0 mvi c,2 ;start reading ┆ 0x0d3880…0d38a0 73 65 63 74 6f 72 20 32 0d 0a 09 63 61 6c 6c 09 73 65 74 73 65 63 0d 0a 3b 0d 0a 3b 09 72 65 61 ┆sector 2 call setsec ; ; rea┆ 0x0d38a0…0d38c0 64 20 73 65 63 74 6f 72 73 2c 20 63 6f 75 6e 74 20 6e 73 65 63 74 73 20 74 6f 20 7a 65 72 6f 0d ┆d sectors, count nsects to zero ┆ 0x0d38c0…0d38e0 0a 09 70 6f 70 09 62 09 3b 31 30 2d 65 72 72 6f 72 20 63 6f 75 6e 74 0d 0a 09 6d 76 69 09 62 2c ┆ pop b ;10-error count mvi b,┆ 0x0d38e0…0d3900 6e 73 65 63 74 73 0d 0a 72 64 73 65 63 3a 09 3b 72 65 61 64 20 6e 65 78 74 20 73 65 63 74 6f 72 ┆nsects rdsec: ;read next sector┆ 0x0d3900…0d3920 0d 0a 09 70 75 73 68 09 62 09 3b 73 61 76 65 20 73 65 63 74 6f 72 20 63 6f 75 6e 74 0d 0a 09 63 ┆ push b ;save sector count c┆ 0x0d3920…0d3940 61 6c 6c 09 72 65 61 64 0d 0a 09 6a 6e 7a 09 62 6f 6f 74 65 72 72 09 3b 72 65 74 72 79 20 69 66 ┆all read jnz booterr ;retry if┆ 0x0d3940…0d3960 20 65 72 72 6f 72 73 20 6f 63 63 75 72 0d 0a 09 6c 68 6c 64 09 69 6f 64 09 3b 69 6e 63 72 65 6d ┆ errors occur lhld iod ;increm┆ 0x0d3960…0d3980 65 6e 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 09 6c 78 69 09 64 2c 31 32 38 09 3b 73 65 63 ┆ent dma address lxi d,128 ;sec┆ 0x0d3980…0d39a0 74 6f 72 20 73 69 7a 65 0d 0a 09 64 61 64 09 64 09 3b 69 6e 63 72 65 6d 65 6e 74 65 64 20 64 6d ┆tor size dad d ;incremented dm┆ 0x0d39a0…0d39c0 61 20 61 64 64 72 65 73 73 20 69 6e 20 68 6c 0d 0a 09 6d 6f 76 09 62 2c 68 0d 0a 09 6d 6f 76 09 ┆a address in hl mov b,h mov ┆ 0x0d39c0…0d39e0 63 2c 6c 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 20 74 6f 20 73 65 74 20 64 6d 61 0d 0a ┆c,l ;ready for call to set dma ┆ 0x0d39e0…0d3a00 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 09 6c 64 61 09 69 6f 73 09 3b 73 65 63 74 6f 72 20 6e ┆ call setdma lda ios ;sector n┆ 0x0d3a00…0d3a20 (56, 0, 14) 68 09 3b 72 65 6d 6f 76 65 20 70 61 72 69 74 79 20 62 69 74 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 63 ┆h ;remove parity bit ret ; c┆ 0x0d3a20…0d3a40 6f 6e 6f 75 74 3a 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 66 72 6f 6d 20 63 ┆onout: ;console character from c┆ 0x0d3a40…0d3a60 20 74 6f 20 63 6f 6e 73 6f 6c 65 20 6f 75 74 0d 0a 09 6a 6d 70 09 63 6f 0d 0a 3b 0d 0a 6c 69 73 ┆ to console out jmp co ; lis┆ 0x0d3a60…0d3a80 74 3a 09 3b 6c 69 73 74 20 64 65 76 69 63 65 20 6f 75 74 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 ┆t: ;list device out ; (exactly ┆ 0x0d3a80…0d3aa0 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 6c 6f 0d 0a ┆the same as mds call) jmp lo ┆ 0x0d3aa0…0d3ac0 3b 0d 0a 6c 69 73 74 73 74 3a 0d 0a 09 3b 72 65 74 75 72 6e 20 6c 69 73 74 20 73 74 61 74 75 73 ┆; listst: ;return list status┆ 0x0d3ac0…0d3ae0 0d 0a 09 78 72 61 09 61 0d 0a 09 72 65 74 09 09 3b 61 6c 77 61 79 73 20 6e 6f 74 20 72 65 61 64 ┆ xra a ret ;always not read┆ 0x0d3ae0…0d3b00 79 0d 0a 3b 0d 0a 70 75 6e 63 68 3a 09 3b 70 75 6e 63 68 20 64 65 76 69 63 65 20 6f 75 74 0d 0a ┆y ; punch: ;punch device out ┆ 0x0d3b00…0d3b20 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 ┆; (exactly the same as mds call)┆ 0x0d3b20…0d3b40 0d 0a 09 6a 6d 70 09 70 6f 0d 0a 3b 0d 0a 72 65 61 64 65 72 3a 09 3b 72 65 61 64 65 72 20 63 68 ┆ jmp po ; reader: ;reader ch┆ 0x0d3b40…0d3b60 61 72 61 63 74 65 72 20 69 6e 20 74 6f 20 72 65 67 2d 61 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 ┆aracter in to reg-a ; (exactly ┆ 0x0d3b60…0d3b80 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 72 69 0d 0a ┆the same as mds call) jmp ri ┆ 0x0d3b80…0d3ba0 3b 0d 0a 68 6f 6d 65 3a 09 3b 6d 6f 76 65 20 74 6f 20 68 6f 6d 65 20 70 6f 73 69 74 69 6f 6e 0d ┆; home: ;move to home position ┆ 0x0d3ba0…0d3bc0 0a 3b 09 74 72 65 61 74 20 61 73 20 74 72 61 63 6b 20 30 30 20 73 65 65 6b 0d 0a 09 6d 76 69 09 ┆ ; treat as track 00 seek mvi ┆ 0x0d3bc0…0d3be0 63 2c 30 0d 0a 09 6a 6d 70 09 73 65 74 74 72 6b 0d 0a 3b 0d 0a 73 65 6c 64 73 6b 3a 09 3b 73 65 ┆c,0 jmp settrk ; seldsk: ;se┆ 0x0d3be0…0d3c00 6c 65 63 74 20 64 69 73 6b 20 67 69 76 65 6e 20 62 79 20 72 65 67 69 73 74 65 72 20 63 0d 0a 09 ┆lect disk given by register c ┆ 0x0d3c00…0d3c20 (56, 0, 15) 61 09 3b 7a 65 72 6f 3f 0d 0a 09 72 7a 0d 0a 3b 09 6d 6f 72 65 20 74 6f 20 70 72 69 6e 74 0d 0a ┆a ;zero? rz ; more to print ┆ 0x0d3c20…0d3c40 09 70 75 73 68 09 68 0d 0a 09 6d 6f 76 09 63 2c 61 0d 0a 09 63 61 6c 6c 09 63 6f 6e 6f 75 74 0d ┆ push h mov c,a call conout ┆ 0x0d3c40…0d3c60 0a 09 70 6f 70 09 68 0d 0a 09 69 6e 78 09 68 0d 0a 09 6a 6d 70 09 70 72 6d 73 67 0d 0a 3b 0d 0a ┆ pop h inx h jmp prmsg ; ┆ 0x0d3c60…0d3c80 73 65 74 66 75 6e 63 3a 0d 0a 3b 09 73 65 74 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 6e 65 78 ┆setfunc: ; set function for nex┆ 0x0d3c80…0d3ca0 74 20 69 2f 6f 20 28 63 6f 6d 6d 61 6e 64 20 69 6e 20 72 65 67 2d 63 29 0d 0a 09 6c 78 69 09 68 ┆t i/o (command in reg-c) lxi h┆ 0x0d3ca0…0d3cc0 2c 69 6f 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 72 65 73 73 0d 0a 09 6d 6f 76 09 ┆,iof ;io function address mov ┆ 0x0d3cc0…0d3ce0 61 2c 6d 09 3b 67 65 74 20 69 74 20 74 6f 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 66 6f 72 20 6d ┆a,m ;get it to accumulator for m┆ 0x0d3ce0…0d3d00 61 73 6b 69 6e 67 0d 0a 09 61 6e 69 09 31 31 31 31 31 30 30 30 62 09 3b 72 65 6d 6f 76 65 20 70 ┆asking ani 11111000b ;remove p┆ 0x0d3d00…0d3d20 72 65 76 69 6f 75 73 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6f 72 61 09 63 09 3b 73 65 74 20 74 6f 20 ┆revious command ora c ;set to ┆ 0x0d3d20…0d3d40 6e 65 77 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6d 6f 76 09 6d 2c 61 09 3b 72 65 70 6c 61 63 65 64 20 ┆new command mov m,a ;replaced ┆ 0x0d3d40…0d3d60 69 6e 20 69 6f 70 62 0d 0a 3b 09 74 68 65 20 6d 64 73 2d 38 30 30 20 63 6f 6e 74 72 6f 6c 6c 65 ┆in iopb ; the mds-800 controlle┆ 0x0d3d60…0d3d80 72 20 72 65 71 75 69 72 65 73 20 64 69 73 6b 20 62 61 6e 6b 20 62 69 74 20 69 6e 20 73 65 63 74 ┆r requires disk bank bit in sect┆ 0x0d3d80…0d3da0 6f 72 20 62 79 74 65 0d 0a 3b 09 6d 61 73 6b 20 74 68 65 20 62 69 74 20 66 72 6f 6d 20 74 68 65 ┆or byte ; mask the bit from the┆ 0x0d3da0…0d3dc0 20 63 75 72 72 65 6e 74 20 69 2f 6f 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 61 6e 69 09 30 30 31 30 ┆ current i/o function ani 0010┆ 0x0d3dc0…0d3de0 30 30 30 30 62 09 3b 6d 61 73 6b 20 74 68 65 20 64 69 73 6b 20 73 65 6c 65 63 74 20 62 69 74 0d ┆0000b ;mask the disk select bit ┆ 0x0d3de0…0d3e00 0a 09 6c 78 69 09 68 2c 69 6f 73 09 09 3b 61 64 64 72 65 73 73 20 74 68 65 20 73 65 63 74 6f 72 ┆ lxi h,ios ;address the sector┆ 0x0d3e00…0d3e20 (56, 1, 1) 3a 0d 0a 3b 09 30 09 2d 20 64 65 6c 65 74 65 64 20 64 61 74 61 20 28 61 63 63 65 70 74 65 64 20 ┆: ; 0 - deleted data (accepted ┆ 0x0d3e20…0d3e40 61 73 20 6f 6b 20 61 62 6f 76 65 29 0d 0a 3b 09 31 09 2d 20 63 72 63 20 65 72 72 6f 72 0d 0a 3b ┆as ok above) ; 1 - crc error ;┆ 0x0d3e40…0d3e60 09 32 09 2d 20 73 65 65 6b 20 65 72 72 6f 72 0d 0a 3b 09 33 09 2d 20 61 64 64 72 65 73 73 20 65 ┆ 2 - seek error ; 3 - address e┆ 0x0d3e60…0d3e80 72 72 6f 72 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 34 ┆rror (hardware malfunction) ; 4┆ 0x0d3e80…0d3ea0 09 2d 20 64 61 74 61 20 6f 76 65 72 2f 75 6e 64 65 72 20 66 6c 6f 77 20 28 68 61 72 64 77 61 72 ┆ - data over/under flow (hardwar┆ 0x0d3ea0…0d3ec0 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 35 09 2d 20 77 72 69 74 65 20 70 72 6f 74 ┆e malfunction) ; 5 - write prot┆ 0x0d3ec0…0d3ee0 65 63 74 20 28 74 72 65 61 74 65 64 20 61 73 20 6e 6f 74 20 72 65 61 64 79 29 0d 0a 3b 09 36 09 ┆ect (treated as not ready) ; 6 ┆ 0x0d3ee0…0d3f00 2d 20 77 72 69 74 65 20 65 72 72 6f 72 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 ┆- write error (hardware malfunct┆ 0x0d3f00…0d3f20 69 6f 6e 29 0d 0a 3b 09 37 09 2d 20 6e 6f 74 20 72 65 61 64 79 0d 0a 3b 09 28 61 63 63 75 6d 75 ┆ion) ; 7 - not ready ; (accumu┆ 0x0d3f20…0d3f40 6c 61 74 6f 72 20 62 69 74 73 20 61 72 65 20 6e 75 6d 62 65 72 65 64 20 37 20 36 20 35 20 34 20 ┆lator bits are numbered 7 6 5 4 ┆ 0x0d3f40…0d3f60 33 20 32 20 31 20 30 29 0d 0a 3b 0d 0a 3b 09 69 74 20 6d 61 79 20 62 65 20 75 73 65 66 75 6c 20 ┆3 2 1 0) ; ; it may be useful ┆ 0x0d3f60…0d3f80 74 6f 20 66 69 6c 74 65 72 20 6f 75 74 20 74 68 65 20 76 61 72 69 6f 75 73 20 63 6f 6e 64 69 74 ┆to filter out the various condit┆ 0x0d3f80…0d3fa0 69 6f 6e 73 2c 0d 0a 3b 09 62 75 74 20 77 65 20 77 69 6c 6c 20 67 65 74 20 61 20 70 65 72 6d 61 ┆ions, ; but we will get a perma┆ 0x0d3fa0…0d3fc0 6e 65 6e 74 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 69 66 20 69 74 20 69 73 20 6e 6f 74 0d ┆nent error message if it is not ┆ 0x0d3fc0…0d3fe0 0a 3b 09 72 65 63 6f 76 65 72 61 62 6c 65 2e 20 20 69 6e 20 61 6e 79 20 63 61 73 65 2c 20 74 68 ┆ ; recoverable. in any case, th┆ 0x0d3fe0…0d4000 65 20 6e 6f 74 20 72 65 61 64 79 20 63 6f 6e 64 69 74 69 6f 6e 20 69 73 0d 0a 3b 09 74 72 65 61 ┆e not ready condition is ; trea┆ 0x0d4000…0d4020 (56, 1, 2) 20 64 6f 73 20 28 72 65 73 69 64 65 6e 74 20 70 6f 72 74 69 6f 6e 29 0d 0a 63 70 6d 6c 09 65 71 ┆ dos (resident portion) cpml eq┆ 0x0d4020…0d4040 75 09 24 2d 63 70 6d 62 09 3b 6c 65 6e 67 74 68 20 28 69 6e 20 62 79 74 65 73 29 20 6f 66 20 63 ┆u $-cpmb ;length (in bytes) of c┆ 0x0d4040…0d4060 70 6d 20 73 79 73 74 65 6d 0d 0a 6e 73 65 63 74 73 09 65 71 75 09 63 70 6d 6c 2f 31 32 38 09 3b ┆pm system nsects equ cpml/128 ;┆ 0x0d4060…0d4080 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 20 74 6f 20 6c 6f 61 64 0d 0a 6f 66 66 73 65 ┆number of sectors to load offse┆ 0x0d4080…0d40a0 74 09 65 71 75 09 32 09 3b 6e 75 6d 62 65 72 20 6f 66 20 64 69 73 6b 20 74 72 61 63 6b 73 20 75 ┆t equ 2 ;number of disk tracks u┆ 0x0d40a0…0d40c0 73 65 64 20 62 79 20 63 70 2f 6d 0d 0a 63 64 69 73 6b 09 65 71 75 09 30 30 30 34 68 09 3b 61 64 ┆sed by cp/m cdisk equ 0004h ;ad┆ 0x0d40c0…0d40e0 64 72 65 73 73 20 6f 66 20 6c 61 73 74 20 6c 6f 67 67 65 64 20 64 69 73 6b 20 6f 6e 20 77 61 72 ┆dress of last logged disk on war┆ 0x0d40e0…0d4100 6d 20 73 74 61 72 74 0d 0a 62 75 66 66 09 65 71 75 09 30 30 38 30 68 09 3b 64 65 66 61 75 6c 74 ┆m start buff equ 0080h ;default┆ 0x0d4100…0d4120 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 0d 0a 72 65 74 72 79 09 65 71 75 09 31 30 09 3b 6d ┆ buffer address retry equ 10 ;m┆ 0x0d4120…0d4140 61 78 20 72 65 74 72 69 65 73 20 6f 6e 20 64 69 73 6b 20 69 2f 6f 20 62 65 66 6f 72 65 20 65 72 ┆ax retries on disk i/o before er┆ 0x0d4140…0d4160 72 6f 72 0d 0a 3b 0d 0a 3b 09 70 65 72 66 6f 72 6d 20 66 6f 6c 6c 6f 77 69 6e 67 20 66 75 6e 63 ┆ror ; ; perform following func┆ 0x0d4160…0d4180 74 69 6f 6e 73 0d 0a 3b 09 62 6f 6f 74 09 63 6f 6c 64 20 73 74 61 72 74 0d 0a 3b 09 77 62 6f 6f ┆tions ; boot cold start ; wboo┆ 0x0d4180…0d41a0 74 09 77 61 72 6d 20 73 74 61 72 74 20 28 73 61 76 65 20 69 2f 6f 20 62 79 74 65 29 0d 0a 3b 09 ┆t warm start (save i/o byte) ; ┆ 0x0d41a0…0d41c0 28 62 6f 6f 74 20 61 6e 64 20 77 62 6f 6f 74 20 61 72 65 20 74 68 65 20 73 61 6d 65 20 66 6f 72 ┆(boot and wboot are the same for┆ 0x0d41c0…0d41e0 20 6d 64 73 29 0d 0a 3b 09 63 6f 6e 73 74 09 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 0d 0a 3b ┆ mds) ; const console status ;┆ 0x0d41e0…0d4200 09 09 72 65 67 2d 61 20 3d 20 30 30 20 69 66 20 6e 6f 20 63 68 61 72 61 63 74 65 72 20 72 65 61 ┆ reg-a = 00 if no character rea┆ 0x0d4200…0d4220 (56, 1, 3) 3b 09 61 6e 64 20 75 73 65 73 20 74 68 65 20 69 2f 6f 20 73 75 62 72 6f 75 74 69 6e 65 73 20 77 ┆; and uses the i/o subroutines w┆ 0x0d4220…0d4240 69 74 68 69 6e 20 74 68 65 20 6d 6f 6e 69 74 6f 72 0d 0a 3b 0d 0a 3b 09 77 65 20 61 6c 73 6f 20 ┆ithin the monitor ; ; we also ┆ 0x0d4240…0d4260 61 73 73 75 6d 65 20 74 68 65 20 6d 64 73 20 73 79 73 74 65 6d 20 68 61 73 20 66 6f 75 72 20 64 ┆assume the mds system has four d┆ 0x0d4260…0d4280 69 73 6b 20 64 72 69 76 65 73 0d 0a 72 65 76 72 74 09 65 71 75 09 30 66 64 68 09 3b 69 6e 74 65 ┆isk drives revrt equ 0fdh ;inte┆ 0x0d4280…0d42a0 72 72 75 70 74 20 72 65 76 65 72 74 20 70 6f 72 74 0d 0a 69 6e 74 63 09 65 71 75 09 30 66 63 68 ┆rrupt revert port intc equ 0fch┆ 0x0d42a0…0d42c0 09 3b 69 6e 74 65 72 72 75 70 74 20 6d 61 73 6b 20 70 6f 72 74 0d 0a 69 63 6f 6e 09 65 71 75 09 ┆ ;interrupt mask port icon equ ┆ 0x0d42c0…0d42e0 30 66 33 68 09 3b 69 6e 74 65 72 72 75 70 74 20 63 6f 6e 74 72 6f 6c 20 70 6f 72 74 0d 0a 69 6e ┆0f3h ;interrupt control port in┆ 0x0d42e0…0d4300 74 65 09 65 71 75 09 30 31 31 31 24 31 31 31 30 62 09 3b 65 6e 61 62 6c 65 20 72 73 74 20 30 28 ┆te equ 0111$1110b ;enable rst 0(┆ 0x0d4300…0d4320 77 61 72 6d 20 62 6f 6f 74 29 2c 20 72 73 74 20 37 20 28 6d 6f 6e 69 74 6f 72 29 0d 0a 3b 0d 0a ┆warm boot), rst 7 (monitor) ; ┆ 0x0d4320…0d4340 3b 09 6d 64 73 20 6d 6f 6e 69 74 6f 72 20 65 71 75 61 74 65 73 0d 0a 6d 6f 6e 38 30 09 65 71 75 ┆; mds monitor equates mon80 equ┆ 0x0d4340…0d4360 09 30 66 38 30 30 68 09 3b 6d 64 73 20 6d 6f 6e 69 74 6f 72 0d 0a 72 6d 6f 6e 38 30 09 65 71 75 ┆ 0f800h ;mds monitor rmon80 equ┆ 0x0d4360…0d4380 09 30 66 66 30 66 68 09 3b 72 65 73 74 61 72 74 20 6d 6f 6e 38 30 20 28 62 6f 6f 74 20 65 72 72 ┆ 0ff0fh ;restart mon80 (boot err┆ 0x0d4380…0d43a0 6f 72 29 0d 0a 63 69 09 65 71 75 09 30 66 38 30 33 68 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 ┆or) ci equ 0f803h ;console char┆ 0x0d43a0…0d43c0 61 63 74 65 72 20 74 6f 20 72 65 67 2d 61 0d 0a 72 69 09 65 71 75 09 30 66 38 30 36 68 09 3b 72 ┆acter to reg-a ri equ 0f806h ;r┆ 0x0d43c0…0d43e0 65 61 64 65 72 20 69 6e 20 74 6f 20 72 65 67 2d 61 0d 0a 63 6f 09 65 71 75 09 30 66 38 30 39 68 ┆eader in to reg-a co equ 0f809h┆ 0x0d43e0…0d4400 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 20 66 72 6f 6d 20 63 20 74 6f 20 63 6f 6e 73 6f 6c 65 ┆ ;console char from c to console┆ 0x0d4400…0d4420 (56, 1, 4) 69 74 68 20 74 72 61 63 6b 20 30 0d 0a 09 6d 76 69 09 63 2c 32 09 3b 73 74 61 72 74 20 72 65 61 ┆ith track 0 mvi c,2 ;start rea┆ 0x0d4420…0d4440 64 69 6e 67 20 73 65 63 74 6f 72 20 32 0d 0a 09 63 61 6c 6c 09 73 65 74 73 65 63 0d 0a 3b 0d 0a ┆ding sector 2 call setsec ; ┆ 0x0d4440…0d4460 3b 09 72 65 61 64 20 73 65 63 74 6f 72 73 2c 20 63 6f 75 6e 74 20 6e 73 65 63 74 73 20 74 6f 20 ┆; read sectors, count nsects to ┆ 0x0d4460…0d4480 7a 65 72 6f 0d 0a 09 70 6f 70 09 62 09 3b 31 30 2d 65 72 72 6f 72 20 63 6f 75 6e 74 0d 0a 09 6d ┆zero pop b ;10-error count m┆ 0x0d4480…0d44a0 76 69 09 62 2c 6e 73 65 63 74 73 0d 0a 72 64 73 65 63 3a 09 3b 72 65 61 64 20 6e 65 78 74 20 73 ┆vi b,nsects rdsec: ;read next s┆ 0x0d44a0…0d44c0 65 63 74 6f 72 0d 0a 09 70 75 73 68 09 62 09 3b 73 61 76 65 20 73 65 63 74 6f 72 20 63 6f 75 6e ┆ector push b ;save sector coun┆ 0x0d44c0…0d44e0 74 0d 0a 09 63 61 6c 6c 09 72 65 61 64 0d 0a 09 6a 6e 7a 09 62 6f 6f 74 65 72 72 09 3b 72 65 74 ┆t call read jnz booterr ;ret┆ 0x0d44e0…0d4500 72 79 20 69 66 20 65 72 72 6f 72 73 20 6f 63 63 75 72 0d 0a 09 6c 68 6c 64 09 69 6f 64 09 3b 69 ┆ry if errors occur lhld iod ;i┆ 0x0d4500…0d4520 6e 63 72 65 6d 65 6e 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 09 6c 78 69 09 64 2c 31 32 38 ┆ncrement dma address lxi d,128┆ 0x0d4520…0d4540 09 3b 73 65 63 74 6f 72 20 73 69 7a 65 0d 0a 09 64 61 64 09 64 09 3b 69 6e 63 72 65 6d 65 6e 74 ┆ ;sector size dad d ;increment┆ 0x0d4540…0d4560 65 64 20 64 6d 61 20 61 64 64 72 65 73 73 20 69 6e 20 68 6c 0d 0a 09 6d 6f 76 09 62 2c 68 0d 0a ┆ed dma address in hl mov b,h ┆ 0x0d4560…0d4580 09 6d 6f 76 09 63 2c 6c 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 20 74 6f 20 73 65 74 20 ┆ mov c,l ;ready for call to set ┆ 0x0d4580…0d45a0 64 6d 61 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 09 6c 64 61 09 69 6f 73 09 3b 73 65 63 ┆dma call setdma lda ios ;sec┆ 0x0d45a0…0d45c0 74 6f 72 20 6e 75 6d 62 65 72 20 6a 75 73 74 20 72 65 61 64 0d 0a 09 63 70 69 09 32 36 09 3b 72 ┆tor number just read cpi 26 ;r┆ 0x0d45c0…0d45e0 65 61 64 20 6c 61 73 74 20 73 65 63 74 6f 72 3f 0d 0a 09 6a 63 09 72 64 31 0d 0a 3b 09 6d 75 73 ┆ead last sector? jc rd1 ; mus┆ 0x0d45e0…0d4600 74 20 62 65 20 73 65 63 74 6f 72 20 32 36 2c 20 7a 65 72 6f 20 61 6e 64 20 67 6f 20 74 6f 20 6e ┆t be sector 26, zero and go to n┆ 0x0d4600…0d4620 (56, 1, 5) 74 65 64 20 61 73 20 61 20 73 65 70 61 72 61 74 65 20 63 6f 6e 64 69 74 69 6f 6e 20 66 6f 72 20 ┆ted as a separate condition for ┆ 0x0d4620…0d4640 6c 61 74 65 72 20 69 6d 70 72 6f 76 65 6d 65 6e 74 0d 0a 74 72 79 63 6f 75 6e 74 3a 0d 0a 3b 09 ┆later improvement trycount: ; ┆ 0x0d4640…0d4660 72 65 67 69 73 74 65 72 20 63 20 63 6f 6e 74 61 69 6e 73 20 72 65 74 72 79 20 63 6f 75 6e 74 2c ┆register c contains retry count,┆ 0x0d4660…0d4680 20 64 65 63 72 65 6d 65 6e 74 20 27 74 69 6c 20 7a 65 72 6f 0d 0a 09 64 63 72 09 63 0d 0a 09 6a ┆ decrement 'til zero dcr c j┆ 0x0d4680…0d46a0 6e 7a 09 72 65 77 61 69 74 09 3b 66 6f 72 20 61 6e 6f 74 68 65 72 20 74 72 79 0d 0a 3b 0d 0a 3b ┆nz rewait ;for another try ; ;┆ 0x0d46a0…0d46c0 09 63 61 6e 6e 6f 74 20 72 65 63 6f 76 65 72 20 66 72 6f 6d 20 65 72 72 6f 72 0d 0a 09 6d 76 69 ┆ cannot recover from error mvi┆ 0x0d46c0…0d46e0 09 61 2c 31 09 3b 65 72 72 6f 72 20 63 6f 64 65 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 09 69 6e 74 ┆ a,1 ;error code ret ; ; int┆ 0x0d46e0…0d4700 79 70 65 2c 20 69 6e 62 79 74 65 2c 20 69 6e 73 74 61 74 20 72 65 61 64 20 64 72 69 76 65 20 62 ┆ype, inbyte, instat read drive b┆ 0x0d4700…0d4720 61 6e 6b 20 30 30 20 6f 72 20 31 30 0d 0a 69 6e 74 79 70 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d ┆ank 00 or 10 intype: lda dbank ┆ 0x0d4720…0d4740 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 74 79 70 31 09 3b 73 6b 69 70 20 74 6f 20 62 61 ┆ ora a jnz intyp1 ;skip to ba┆ 0x0d4740…0d4760 6e 6b 20 31 30 0d 0a 09 69 6e 09 72 74 79 70 65 0d 0a 09 72 65 74 0d 0a 69 6e 74 79 70 31 3a 09 ┆nk 10 in rtype ret intyp1: ┆ 0x0d4760…0d4780 69 6e 09 72 74 79 70 65 2b 31 30 68 09 3b 37 38 20 66 6f 72 20 30 2c 31 20 20 38 38 20 66 6f 72 ┆in rtype+10h ;78 for 0,1 88 for┆ 0x0d4780…0d47a0 20 32 2c 33 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 69 6e 62 79 74 65 3a 09 6c 64 61 09 64 62 61 6e 6b ┆ 2,3 ret ; inbyte: lda dbank┆ 0x0d47a0…0d47c0 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 62 79 74 31 0d 0a 09 69 6e 09 72 62 79 74 65 ┆ ora a jnz inbyt1 in rbyte┆ 0x0d47c0…0d47e0 0d 0a 09 72 65 74 0d 0a 69 6e 62 79 74 31 3a 09 69 6e 09 72 62 79 74 65 2b 31 30 68 0d 0a 09 72 ┆ ret inbyt1: in rbyte+10h r┆ 0x0d47e0…0d4800 65 74 0d 0a 3b 0d 0a 69 6e 73 74 61 74 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 ┆et ; instat: lda dbank ora a┆ 0x0d4800…0d4820 (56, 1, 6) 64 79 0d 0a 3b 09 09 72 65 67 2d 61 20 3d 20 66 66 20 69 66 20 63 68 61 72 61 63 74 65 72 20 72 ┆dy ; reg-a = ff if character r┆ 0x0d4820…0d4840 65 61 64 79 0d 0a 3b 09 63 6f 6e 69 6e 09 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 ┆eady ; conin console character ┆ 0x0d4840…0d4860 69 6e 20 28 72 65 73 75 6c 74 20 69 6e 20 72 65 67 2d 61 29 0d 0a 3b 09 63 6f 6e 6f 75 74 09 63 ┆in (result in reg-a) ; conout c┆ 0x0d4860…0d4880 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 ┆onsole character out (char in re┆ 0x0d4880…0d48a0 67 2d 63 29 0d 0a 3b 09 6c 69 73 74 09 6c 69 73 74 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 ┆g-c) ; list list out (char in r┆ 0x0d48a0…0d48c0 65 67 2d 63 29 0d 0a 3b 09 70 75 6e 63 68 09 70 75 6e 63 68 20 6f 75 74 20 28 63 68 61 72 20 69 ┆eg-c) ; punch punch out (char i┆ 0x0d48c0…0d48e0 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 72 65 61 64 65 72 09 70 61 70 65 72 20 74 61 70 65 20 72 65 ┆n reg-c) ; reader paper tape re┆ 0x0d48e0…0d4900 61 64 65 72 20 69 6e 20 28 72 65 73 75 6c 74 20 74 6f 20 72 65 67 2d 61 29 0d 0a 3b 09 68 6f 6d ┆ader in (result to reg-a) ; hom┆ 0x0d4900…0d4920 65 09 6d 6f 76 65 20 74 6f 20 74 72 61 63 6b 20 30 30 0d 0a 3b 0d 0a 3b 09 28 74 68 65 20 66 6f ┆e move to track 00 ; ; (the fo┆ 0x0d4920…0d4940 6c 6c 6f 77 69 6e 67 20 63 61 6c 6c 73 20 73 65 74 2d 75 70 20 74 68 65 20 69 6f 20 70 61 72 61 ┆llowing calls set-up the io para┆ 0x0d4940…0d4960 6d 65 74 65 72 20 62 6c 6f 63 6b 20 66 6f 72 20 74 68 65 0d 0a 3b 09 6d 64 73 2c 20 77 68 69 63 ┆meter block for the ; mds, whic┆ 0x0d4960…0d4980 68 20 69 73 20 75 73 65 64 20 74 6f 20 70 65 72 66 6f 72 6d 20 73 75 62 73 65 71 75 65 6e 74 20 ┆h is used to perform subsequent ┆ 0x0d4980…0d49a0 72 65 61 64 73 20 61 6e 64 20 77 72 69 74 65 73 29 0d 0a 3b 09 73 65 6c 64 73 6b 09 73 65 6c 65 ┆reads and writes) ; seldsk sele┆ 0x0d49a0…0d49c0 63 74 20 64 69 73 6b 20 67 69 76 65 6e 20 62 79 20 72 65 67 2d 63 20 28 30 2c 31 2c 32 2e 2e 2e ┆ct disk given by reg-c (0,1,2...┆ 0x0d49c0…0d49e0 29 0d 0a 3b 09 73 65 74 74 72 6b 09 73 65 74 20 74 72 61 63 6b 20 61 64 64 72 65 73 73 20 28 30 ┆) ; settrk set track address (0┆ 0x0d49e0…0d4a00 2c 2e 2e 2e 37 36 29 20 66 6f 72 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 2f 77 72 69 74 ┆,...76) for subsequent read/writ┆ 0x0d4a00…0d4a20 (56, 1, 7) 20 6f 75 74 0d 0a 70 6f 09 65 71 75 09 30 66 38 30 63 68 09 3b 70 75 6e 63 68 20 63 68 61 72 20 ┆ out po equ 0f80ch ;punch char ┆ 0x0d4a20…0d4a40 66 72 6f 6d 20 63 20 74 6f 20 70 75 6e 63 68 20 64 65 76 69 63 65 0d 0a 6c 6f 09 65 71 75 09 30 ┆from c to punch device lo equ 0┆ 0x0d4a40…0d4a60 66 38 30 66 68 09 3b 6c 69 73 74 20 66 72 6f 6d 20 63 20 74 6f 20 6c 69 73 74 20 64 65 76 69 63 ┆f80fh ;list from c to list devic┆ 0x0d4a60…0d4a80 65 0d 0a 63 73 74 73 09 65 71 75 09 30 66 38 31 32 68 09 3b 63 6f 6e 73 6f 6c 65 20 73 74 61 74 ┆e csts equ 0f812h ;console stat┆ 0x0d4a80…0d4aa0 75 73 20 30 30 2f 66 66 20 74 6f 20 72 65 67 69 73 74 65 72 20 61 0d 0a 3b 0d 0a 3b 09 64 69 73 ┆us 00/ff to register a ; ; dis┆ 0x0d4aa0…0d4ac0 6b 20 70 6f 72 74 73 20 61 6e 64 20 63 6f 6d 6d 61 6e 64 73 0d 0a 62 61 73 65 09 65 71 75 09 37 ┆k ports and commands base equ 7┆ 0x0d4ac0…0d4ae0 38 68 09 3b 62 61 73 65 20 6f 66 20 64 69 73 6b 20 63 6f 6d 6d 61 6e 64 20 69 6f 20 70 6f 72 74 ┆8h ;base of disk command io port┆ 0x0d4ae0…0d4b00 73 0d 0a 64 73 74 61 74 09 65 71 75 09 62 61 73 65 09 3b 64 69 73 6b 20 73 74 61 74 75 73 20 28 ┆s dstat equ base ;disk status (┆ 0x0d4b00…0d4b20 69 6e 70 75 74 29 0d 0a 72 74 79 70 65 09 65 71 75 09 62 61 73 65 2b 31 09 3b 72 65 73 75 6c 74 ┆input) rtype equ base+1 ;result┆ 0x0d4b20…0d4b40 20 74 79 70 65 20 28 69 6e 70 75 74 29 0d 0a 72 62 79 74 65 09 65 71 75 09 62 61 73 65 2b 33 09 ┆ type (input) rbyte equ base+3 ┆ 0x0d4b40…0d4b60 3b 72 65 73 75 6c 74 20 62 79 74 65 20 28 69 6e 70 75 74 29 0d 0a 3b 0d 0a 69 6c 6f 77 09 65 71 ┆;result byte (input) ; ilow eq┆ 0x0d4b60…0d4b80 75 09 62 61 73 65 2b 31 09 3b 69 6f 70 62 20 6c 6f 77 20 61 64 64 72 65 73 73 20 28 6f 75 74 70 ┆u base+1 ;iopb low address (outp┆ 0x0d4b80…0d4ba0 75 74 29 0d 0a 69 68 69 67 68 09 65 71 75 09 62 61 73 65 2b 32 09 3b 69 6f 70 62 20 68 69 67 68 ┆ut) ihigh equ base+2 ;iopb high┆ 0x0d4ba0…0d4bc0 20 61 64 64 72 65 73 73 20 28 6f 75 74 70 75 74 29 0d 0a 3b 0d 0a 72 65 61 64 66 09 65 71 75 09 ┆ address (output) ; readf equ ┆ 0x0d4bc0…0d4be0 34 68 09 3b 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 77 72 69 74 66 09 65 71 75 09 36 68 09 ┆4h ;read function writf equ 6h ┆ 0x0d4be0…0d4c00 3b 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 72 65 63 61 6c 09 65 71 75 09 33 68 09 3b 72 ┆;write function recal equ 3h ;r┆ 0x0d4c00…0d4c20 (56, 1, 8) 65 78 74 20 74 72 61 63 6b 0d 0a 09 6c 64 61 09 69 6f 74 09 3b 67 65 74 20 74 72 61 63 6b 20 74 ┆ext track lda iot ;get track t┆ 0x0d4c20…0d4c40 6f 20 72 65 67 69 73 74 65 72 20 61 0d 0a 09 69 6e 72 09 61 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b ┆o register a inr a mov c,a ;┆ 0x0d4c40…0d4c60 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 0d 0a 09 63 61 6c 6c 09 73 65 74 74 72 6b 0d 0a 09 78 ┆ready for call call settrk x┆ 0x0d4c60…0d4c80 72 61 09 61 09 3b 63 6c 65 61 72 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 0d 0a 72 64 31 3a 09 ┆ra a ;clear sector number rd1: ┆ 0x0d4c80…0d4ca0 69 6e 72 09 61 09 3b 74 6f 20 6e 65 78 74 20 73 65 63 74 6f 72 0d 0a 09 6d 6f 76 09 63 2c 61 09 ┆inr a ;to next sector mov c,a ┆ 0x0d4ca0…0d4cc0 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 0d 0a 09 63 61 6c 6c 09 73 65 74 73 65 63 0d 0a 09 ┆;ready for call call setsec ┆ 0x0d4cc0…0d4ce0 70 6f 70 09 62 09 3b 72 65 63 61 6c 6c 20 73 65 63 74 6f 72 20 63 6f 75 6e 74 0d 0a 09 64 63 72 ┆pop b ;recall sector count dcr┆ 0x0d4ce0…0d4d00 09 62 09 3b 64 6f 6e 65 3f 0d 0a 09 6a 6e 7a 09 72 64 73 65 63 0d 0a 3b 0d 0a 3b 09 64 6f 6e 65 ┆ b ;done? jnz rdsec ; ; done┆ 0x0d4d00…0d4d20 20 77 69 74 68 20 74 68 65 20 6c 6f 61 64 2c 20 72 65 73 65 74 20 64 65 66 61 75 6c 74 20 62 75 ┆ with the load, reset default bu┆ 0x0d4d20…0d4d40 66 66 65 72 20 61 64 64 72 65 73 73 0d 0a 67 6f 63 70 6d 3a 09 3b 28 65 6e 74 65 72 20 68 65 72 ┆ffer address gocpm: ;(enter her┆ 0x0d4d40…0d4d60 65 20 66 72 6f 6d 20 63 6f 6c 64 20 73 74 61 72 74 20 62 6f 6f 74 29 0d 0a 3b 09 65 6e 61 62 6c ┆e from cold start boot) ; enabl┆ 0x0d4d60…0d4d80 65 20 72 73 74 30 20 61 6e 64 20 72 73 74 37 0d 0a 09 64 69 0d 0a 09 6d 76 69 09 61 2c 31 32 68 ┆e rst0 and rst7 di mvi a,12h┆ 0x0d4d80…0d4da0 09 3b 69 6e 69 74 69 61 6c 69 7a 65 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6f 75 74 09 72 65 76 72 74 ┆ ;initialize command out revrt┆ 0x0d4da0…0d4dc0 0d 0a 09 78 72 61 09 61 0d 0a 09 6f 75 74 09 69 6e 74 63 09 3b 63 6c 65 61 72 65 64 0d 0a 09 6d ┆ xra a out intc ;cleared m┆ 0x0d4dc0…0d4de0 76 69 09 61 2c 69 6e 74 65 09 3b 72 73 74 30 20 61 6e 64 20 72 73 74 37 20 62 69 74 73 20 6f 6e ┆vi a,inte ;rst0 and rst7 bits on┆ 0x0d4de0…0d4e00 0d 0a 09 6f 75 74 09 69 6e 74 63 0d 0a 09 78 72 61 09 61 0d 0a 09 6f 75 74 09 69 63 6f 6e 09 3b ┆ out intc xra a out icon ;┆ 0x0d4e00…0d4e20 (56, 1, 9) 0d 0a 09 6a 6e 7a 09 69 6e 73 74 61 31 0d 0a 09 69 6e 09 64 73 74 61 74 0d 0a 09 72 65 74 0d 0a ┆ jnz insta1 in dstat ret ┆ 0x0d4e20…0d4e40 69 6e 73 74 61 31 3a 09 69 6e 09 64 73 74 61 74 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b ┆insta1: in dstat+10h ret ; ;┆ 0x0d4e40…0d4e60 0d 0a 3b 0d 0a 3b 09 64 61 74 61 20 61 72 65 61 73 20 28 6d 75 73 74 20 62 65 20 69 6e 20 72 61 ┆ ; ; data areas (must be in ra┆ 0x0d4e60…0d4e80 6d 29 0d 0a 64 62 61 6e 6b 3a 09 64 62 09 30 09 3b 64 69 73 6b 20 62 61 6e 6b 20 30 30 20 69 66 ┆m) dbank: db 0 ;disk bank 00 if┆ 0x0d4e80…0d4ea0 20 64 72 69 76 65 20 30 2c 31 0d 0a 09 09 09 3b 09 20 20 20 31 30 20 69 66 20 64 72 69 76 65 20 ┆ drive 0,1 ; 10 if drive ┆ 0x0d4ea0…0d4ec0 32 2c 33 0d 0a 69 6f 70 62 3a 09 3b 69 6f 20 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 0d 0a ┆2,3 iopb: ;io parameter block ┆ 0x0d4ec0…0d4ee0 09 64 62 09 38 30 68 09 3b 6e 6f 72 6d 61 6c 20 69 2f 6f 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 69 ┆ db 80h ;normal i/o operation i┆ 0x0d4ee0…0d4f00 6f 66 3a 09 64 62 09 72 65 61 64 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 2c 20 69 6e 69 74 69 ┆of: db readf ;io function, initi┆ 0x0d4f00…0d4f20 61 6c 20 72 65 61 64 0d 0a 69 6f 6e 3a 09 64 62 09 31 09 3b 6e 75 6d 62 65 72 20 6f 66 20 73 65 ┆al read ion: db 1 ;number of se┆ 0x0d4f20…0d4f40 63 74 6f 72 73 20 74 6f 20 72 65 61 64 0d 0a 69 6f 74 3a 09 64 62 09 6f 66 66 73 65 74 09 3b 74 ┆ctors to read iot: db offset ;t┆ 0x0d4f40…0d4f60 72 61 63 6b 20 6e 75 6d 62 65 72 0d 0a 69 6f 73 3a 09 64 62 09 31 09 3b 73 65 63 74 6f 72 20 6e ┆rack number ios: db 1 ;sector n┆ 0x0d4f60…0d4f80 75 6d 62 65 72 0d 0a 69 6f 64 3a 09 64 77 09 62 75 66 66 09 3b 69 6f 20 61 64 64 72 65 73 73 0d ┆umber iod: dw buff ;io address ┆ 0x0d4f80…0d4fa0 0a 3b 0d 0a 3b 0d 0a 3b 09 64 65 66 69 6e 65 20 72 61 6d 20 61 72 65 61 73 20 66 6f 72 20 62 64 ┆ ; ; ; define ram areas for bd┆ 0x0d4fa0…0d4fc0 6f 73 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 09 65 6e 64 65 66 0d 0a 09 65 6e 64 0d 0a 3b 09 4d 44 ┆os operation endef end ; MD┆ 0x0d4fc0…0d4fe0 53 2d 38 30 30 20 49 2f 4f 20 44 72 69 76 65 72 73 20 66 6f 72 20 43 50 2f 4d 20 32 2e 32 0d 0a ┆S-800 I/O Drivers for CP/M 2.2 ┆ 0x0d4fe0…0d5000 3b 09 28 66 6f 75 72 20 64 72 69 76 65 20 73 69 6e 67 6c 65 20 64 65 6e 73 69 74 79 20 76 65 72 ┆; (four drive single density ver┆ 0x0d5000…0d5020 (56, 1, 10) 65 0d 0a 3b 09 73 65 74 73 65 63 09 73 65 74 20 73 65 63 74 6f 72 20 61 64 64 72 65 73 73 20 28 ┆e ; setsec set sector address (┆ 0x0d5020…0d5040 31 2c 2e 2e 2e 2c 32 36 29 20 66 6f 72 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 2f 77 72 ┆1,...,26) for subsequent read/wr┆ 0x0d5040…0d5060 69 74 65 0d 0a 3b 09 73 65 74 64 6d 61 09 73 65 74 20 73 75 62 73 65 71 75 65 6e 74 20 64 6d 61 ┆ite ; setdma set subsequent dma┆ 0x0d5060…0d5080 20 61 64 64 72 65 73 73 20 28 69 6e 69 74 69 61 6c 6c 79 20 38 30 68 29 0d 0a 3b 0d 0a 3b 09 28 ┆ address (initially 80h) ; ; (┆ 0x0d5080…0d50a0 72 65 61 64 20 61 6e 64 20 77 72 69 74 65 20 61 73 73 75 6d 65 20 70 72 65 76 69 6f 75 73 20 63 ┆read and write assume previous c┆ 0x0d50a0…0d50c0 61 6c 6c 73 20 74 6f 20 73 65 74 20 75 70 20 74 68 65 20 69 6f 20 70 61 72 61 6d 65 74 65 72 73 ┆alls to set up the io parameters┆ 0x0d50c0…0d50e0 29 0d 0a 3b 09 72 65 61 64 09 72 65 61 64 20 74 72 61 63 6b 2f 73 65 63 74 6f 72 20 74 6f 20 70 ┆) ; read read track/sector to p┆ 0x0d50e0…0d5100 72 65 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 3b 09 77 72 69 74 65 09 77 72 69 74 65 ┆reset dma address ; write write┆ 0x0d5100…0d5120 20 74 72 61 63 6b 2f 73 65 63 74 6f 72 20 66 72 6f 6d 20 70 72 65 73 65 74 20 64 6d 61 20 61 64 ┆ track/sector from preset dma ad┆ 0x0d5120…0d5140 64 72 65 73 73 0d 0a 3b 0d 0a 3b 09 6a 75 6d 70 20 76 65 63 74 6f 72 20 66 6f 72 20 69 6e 64 69 ┆dress ; ; jump vector for indi┆ 0x0d5140…0d5160 76 69 75 61 6c 20 72 6f 75 74 69 6e 65 73 0d 0a 09 6a 6d 70 09 62 6f 6f 74 0d 0a 77 62 6f 6f 74 ┆viual routines jmp boot wboot┆ 0x0d5160…0d5180 65 3a 09 6a 6d 70 09 77 62 6f 6f 74 0d 0a 09 6a 6d 70 09 63 6f 6e 73 74 0d 0a 09 6a 6d 70 09 63 ┆e: jmp wboot jmp const jmp c┆ 0x0d5180…0d51a0 6f 6e 69 6e 0d 0a 09 6a 6d 70 09 63 6f 6e 6f 75 74 0d 0a 09 6a 6d 70 09 6c 69 73 74 0d 0a 09 6a ┆onin jmp conout jmp list j┆ 0x0d51a0…0d51c0 6d 70 09 70 75 6e 63 68 0d 0a 09 6a 6d 70 09 72 65 61 64 65 72 0d 0a 09 6a 6d 70 09 68 6f 6d 65 ┆mp punch jmp reader jmp home┆ 0x0d51c0…0d51e0 0d 0a 09 6a 6d 70 09 73 65 6c 64 73 6b 0d 0a 09 6a 6d 70 09 73 65 74 74 72 6b 0d 0a 09 6a 6d 70 ┆ jmp seldsk jmp settrk jmp┆ 0x0d51e0…0d5200 09 73 65 74 73 65 63 0d 0a 09 6a 6d 70 09 73 65 74 64 6d 61 0d 0a 09 6a 6d 70 09 72 65 61 64 0d ┆ setsec jmp setdma jmp read ┆ 0x0d5200…0d5220 (56, 1, 11) 65 63 61 6c 69 62 72 61 74 65 20 64 72 69 76 65 0d 0a 69 6f 72 64 79 09 65 71 75 09 34 68 09 3b ┆ecalibrate drive iordy equ 4h ;┆ 0x0d5220…0d5240 69 2f 6f 20 66 69 6e 69 73 68 65 64 20 6d 61 73 6b 0d 0a 63 72 09 65 71 75 09 30 64 68 09 3b 63 ┆i/o finished mask cr equ 0dh ;c┆ 0x0d5240…0d5260 61 72 72 69 61 67 65 20 72 65 74 75 72 6e 0d 0a 6c 66 09 65 71 75 09 30 61 68 09 3b 6c 69 6e 65 ┆arriage return lf equ 0ah ;line┆ 0x0d5260…0d5280 20 66 65 65 64 0d 0a 3b 0d 0a 73 69 67 6e 6f 6e 3a 09 3b 73 69 67 6e 6f 6e 20 6d 65 73 73 61 67 ┆ feed ; signon: ;signon messag┆ 0x0d5280…0d52a0 65 3a 20 78 78 6b 20 63 70 2f 6d 20 76 65 72 73 20 79 2e 79 0d 0a 09 64 62 09 63 72 2c 6c 66 2c ┆e: xxk cp/m vers y.y db cr,lf,┆ 0x0d52a0…0d52c0 6c 66 0d 0a 09 69 66 09 74 65 73 74 0d 0a 09 64 62 09 27 33 32 27 09 3b 33 32 6b 20 65 78 61 6d ┆lf if test db '32' ;32k exam┆ 0x0d52c0…0d52e0 70 6c 65 20 62 69 6f 73 0d 0a 09 65 6e 64 69 66 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a ┆ple bios endif if not test ┆ 0x0d52e0…0d5300 09 64 62 09 27 30 30 27 09 3b 6d 65 6d 6f 72 79 20 73 69 7a 65 20 66 69 6c 6c 65 64 20 62 79 20 ┆ db '00' ;memory size filled by ┆ 0x0d5300…0d5320 72 65 6c 6f 63 61 74 6f 72 0d 0a 09 65 6e 64 69 66 0d 0a 09 64 62 09 27 6b 20 43 50 2f 4d 20 76 ┆relocator endif db 'k CP/M v┆ 0x0d5320…0d5340 65 72 73 20 27 0d 0a 09 64 62 09 76 65 72 73 2f 31 30 2b 27 30 27 2c 27 2e 27 2c 76 65 72 73 20 ┆ers ' db vers/10+'0','.',vers ┆ 0x0d5340…0d5360 6d 6f 64 20 31 30 2b 27 30 27 0d 0a 09 64 62 09 63 72 2c 6c 66 2c 30 0d 0a 3b 0d 0a 62 6f 6f 74 ┆mod 10+'0' db cr,lf,0 ; boot┆ 0x0d5360…0d5380 3a 09 3b 70 72 69 6e 74 20 73 69 67 6e 6f 6e 20 6d 65 73 73 61 67 65 20 61 6e 64 20 67 6f 20 74 ┆: ;print signon message and go t┆ 0x0d5380…0d53a0 6f 20 63 63 70 0d 0a 3b 09 28 6e 6f 74 65 3a 20 6d 64 73 20 62 6f 6f 74 20 69 6e 69 74 69 61 6c ┆o ccp ; (note: mds boot initial┆ 0x0d53a0…0d53c0 69 7a 65 64 20 69 6f 62 79 74 65 20 61 74 20 30 30 30 33 68 29 0d 0a 09 6c 78 69 09 73 70 2c 62 ┆ized iobyte at 0003h) lxi sp,b┆ 0x0d53c0…0d53e0 75 66 66 2b 38 30 68 0d 0a 09 6c 78 69 09 68 2c 73 69 67 6e 6f 6e 0d 0a 09 63 61 6c 6c 09 70 72 ┆uff+80h lxi h,signon call pr┆ 0x0d53e0…0d5400 6d 73 67 09 3b 70 72 69 6e 74 20 6d 65 73 73 61 67 65 0d 0a 09 78 72 61 09 61 09 3b 63 6c 65 61 ┆msg ;print message xra a ;clea┆ 0x0d5400…0d5420 (56, 1, 12) 69 6e 74 65 72 72 75 70 74 20 63 6f 6e 74 72 6f 6c 0d 0a 3b 0d 0a 3b 09 73 65 74 20 64 65 66 61 ┆interrupt control ; ; set defa┆ 0x0d5420…0d5440 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 20 74 6f 20 38 30 68 0d 0a 09 6c 78 69 09 ┆ult buffer address to 80h lxi ┆ 0x0d5440…0d5460 62 2c 62 75 66 66 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 3b 0d 0a 3b 09 72 65 73 65 74 ┆b,buff call setdma ; ; reset┆ 0x0d5460…0d5480 20 6d 6f 6e 69 74 6f 72 20 65 6e 74 72 79 20 70 6f 69 6e 74 73 0d 0a 09 6d 76 69 09 61 2c 6a 6d ┆ monitor entry points mvi a,jm┆ 0x0d5480…0d54a0 70 0d 0a 09 73 74 61 09 30 0d 0a 09 6c 78 69 09 68 2c 77 62 6f 6f 74 65 0d 0a 09 73 68 6c 64 09 ┆p sta 0 lxi h,wboote shld ┆ 0x0d54a0…0d54c0 31 09 3b 6a 6d 70 20 77 62 6f 6f 74 20 61 74 20 6c 6f 63 61 74 69 6f 6e 20 30 30 0d 0a 09 73 74 ┆1 ;jmp wboot at location 00 st┆ 0x0d54c0…0d54e0 61 09 35 0d 0a 09 6c 78 69 09 68 2c 62 64 6f 73 0d 0a 09 73 68 6c 64 09 36 09 3b 6a 6d 70 20 62 ┆a 5 lxi h,bdos shld 6 ;jmp b┆ 0x0d54e0…0d5500 64 6f 73 20 61 74 20 6c 6f 63 61 74 69 6f 6e 20 35 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d ┆dos at location 5 if not test ┆ 0x0d5500…0d5520 0a 09 73 74 61 09 37 2a 38 09 3b 6a 6d 70 20 74 6f 20 6d 6f 6e 38 30 20 28 6d 61 79 20 68 61 76 ┆ sta 7*8 ;jmp to mon80 (may hav┆ 0x0d5520…0d5540 65 20 62 65 65 6e 20 63 68 61 6e 67 65 64 20 62 79 20 64 64 74 29 0d 0a 09 6c 78 69 09 68 2c 6d ┆e been changed by ddt) lxi h,m┆ 0x0d5540…0d5560 6f 6e 38 30 0d 0a 09 73 68 6c 64 09 37 2a 38 2b 31 0d 0a 09 65 6e 64 69 66 0d 0a 3b 09 6c 65 61 ┆on80 shld 7*8+1 endif ; lea┆ 0x0d5560…0d5580 76 65 20 69 6f 62 79 74 65 20 73 65 74 0d 0a 3b 09 70 72 65 76 69 6f 75 73 6c 79 20 73 65 6c 65 ┆ve iobyte set ; previously sele┆ 0x0d5580…0d55a0 63 74 65 64 20 64 69 73 6b 20 77 61 73 20 62 2c 20 73 65 6e 64 20 70 61 72 61 6d 65 74 65 72 20 ┆cted disk was b, send parameter ┆ 0x0d55a0…0d55c0 74 6f 20 63 70 6d 0d 0a 09 6c 64 61 09 63 64 69 73 6b 09 3b 6c 61 73 74 20 6c 6f 67 67 65 64 20 ┆to cpm lda cdisk ;last logged ┆ 0x0d55c0…0d55e0 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 73 65 6e 64 20 74 6f 20 63 ┆disk number mov c,a ;send to c┆ 0x0d55e0…0d5600 63 70 20 74 6f 20 6c 6f 67 20 69 74 20 69 6e 0d 0a 09 65 69 0d 0a 09 6a 6d 70 09 63 70 6d 62 0d ┆cp to log it in ei jmp cpmb ┆ 0x0d5600…0d5620 (56, 1, 13) 73 69 6f 6e 29 0d 0a 3b 0d 0a 3b 09 56 65 72 73 69 6f 6e 20 32 2e 32 20 46 65 62 72 75 61 72 79 ┆sion) ; ; Version 2.2 February┆ 0x0d5620…0d5640 2c 20 31 39 38 30 0d 0a 3b 0d 0a 76 65 72 73 09 65 71 75 09 32 32 09 3b 76 65 72 73 69 6f 6e 20 ┆, 1980 ; vers equ 22 ;version ┆ 0x0d5640…0d5660 32 2e 32 0d 0a 3b 0d 0a 3b 09 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 39 38 30 0d 0a 3b 09 ┆2.2 ; ; Copyright (c) 1980 ; ┆ 0x0d5660…0d5680 44 69 67 69 74 61 6c 20 52 65 73 65 61 72 63 68 0d 0a 3b 09 42 6f 78 20 35 37 39 2c 20 50 61 63 ┆Digital Research ; Box 579, Pac┆ 0x0d5680…0d56a0 69 66 69 63 20 47 72 6f 76 65 0d 0a 3b 09 43 61 6c 69 66 6f 72 6e 69 61 2c 20 39 33 39 35 30 0d ┆ific Grove ; California, 93950 ┆ 0x0d56a0…0d56c0 0a 3b 0d 0a 3b 0d 0a 74 72 75 65 09 65 71 75 09 30 66 66 66 66 68 09 3b 76 61 6c 75 65 20 6f 66 ┆ ; ; true equ 0ffffh ;value of┆ 0x0d56c0…0d56e0 20 22 74 72 75 65 22 0d 0a 66 61 6c 73 65 09 65 71 75 09 6e 6f 74 20 74 72 75 65 09 3b 22 66 61 ┆ "true" false equ not true ;"fa┆ 0x0d56e0…0d5700 6c 73 65 22 0d 0a 74 65 73 74 09 65 71 75 09 66 61 6c 73 65 09 3b 74 72 75 65 20 69 66 20 74 65 ┆lse" test equ false ;true if te┆ 0x0d5700…0d5720 73 74 20 62 69 6f 73 0d 0a 3b 0d 0a 09 69 66 09 74 65 73 74 0d 0a 62 69 61 73 09 65 71 75 09 30 ┆st bios ; if test bias equ 0┆ 0x0d5720…0d5740 33 34 30 30 68 09 3b 62 61 73 65 20 6f 66 20 43 43 50 20 69 6e 20 74 65 73 74 20 73 79 73 74 65 ┆3400h ;base of CCP in test syste┆ 0x0d5740…0d5760 6d 0d 0a 09 65 6e 64 69 66 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 62 69 61 73 09 65 71 ┆m endif if not test bias eq┆ 0x0d5760…0d5780 75 09 30 30 30 30 68 09 3b 67 65 6e 65 72 61 74 65 20 72 65 6c 6f 63 61 74 61 62 6c 65 20 63 70 ┆u 0000h ;generate relocatable cp┆ 0x0d5780…0d57a0 2f 6d 20 73 79 73 74 65 6d 0d 0a 09 65 6e 64 69 66 0d 0a 3b 0d 0a 70 61 74 63 68 09 65 71 75 09 ┆/m system endif ; patch equ ┆ 0x0d57a0…0d57c0 31 36 30 30 68 0d 0a 3b 0d 0a 09 6f 72 67 09 70 61 74 63 68 0d 0a 63 70 6d 62 09 65 71 75 09 24 ┆1600h ; org patch cpmb equ $┆ 0x0d57c0…0d57e0 2d 70 61 74 63 68 09 3b 62 61 73 65 20 6f 66 20 63 70 6d 20 63 6f 6e 73 6f 6c 65 20 70 72 6f 63 ┆-patch ;base of cpm console proc┆ 0x0d57e0…0d5800 65 73 73 6f 72 0d 0a 62 64 6f 73 09 65 71 75 09 38 30 36 68 2b 63 70 6d 62 09 3b 62 61 73 69 63 ┆essor bdos equ 806h+cpmb ;basic┆ 0x0d5800…0d5820 (56, 1, 14) 0a 09 6a 6d 70 09 77 72 69 74 65 0d 0a 09 6a 6d 70 09 6c 69 73 74 73 74 09 3b 6c 69 73 74 20 73 ┆ jmp write jmp listst ;list s┆ 0x0d5820…0d5840 74 61 74 75 73 0d 0a 09 6a 6d 70 09 73 65 63 74 72 61 6e 0d 0a 3b 0d 0a 09 6d 61 63 6c 69 62 09 ┆tatus jmp sectran ; maclib ┆ 0x0d5840…0d5860 64 69 73 6b 64 65 66 09 3b 6c 6f 61 64 20 74 68 65 20 64 69 73 6b 20 64 65 66 69 6e 69 74 69 6f ┆diskdef ;load the disk definitio┆ 0x0d5860…0d5880 6e 20 6c 69 62 72 61 72 79 0d 0a 09 64 69 73 6b 73 09 34 09 3b 66 6f 75 72 20 64 69 73 6b 73 0d ┆n library disks 4 ;four disks ┆ 0x0d5880…0d58a0 0a 09 64 69 73 6b 64 65 66 09 30 2c 31 2c 32 36 2c 36 2c 31 30 32 34 2c 32 34 33 2c 36 34 2c 36 ┆ diskdef 0,1,26,6,1024,243,64,6┆ 0x0d58a0…0d58c0 34 2c 6f 66 66 73 65 74 0d 0a 09 64 69 73 6b 64 65 66 09 31 2c 30 0d 0a 09 64 69 73 6b 64 65 66 ┆4,offset diskdef 1,0 diskdef┆ 0x0d58c0…0d58e0 09 32 2c 30 0d 0a 09 64 69 73 6b 64 65 66 09 33 2c 30 0d 0a 3b 09 65 6e 64 65 66 20 6f 63 63 75 ┆ 2,0 diskdef 3,0 ; endef occu┆ 0x0d58e0…0d5900 72 73 20 61 74 20 65 6e 64 20 6f 66 20 61 73 73 65 6d 62 6c 79 0d 0a 3b 0d 0a 3b 09 65 6e 64 20 ┆rs at end of assembly ; ; end ┆ 0x0d5900…0d5920 6f 66 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 2d 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 63 6f 64 65 ┆of controller - independent code┆ 0x0d5920…0d5940 2c 20 74 68 65 20 72 65 6d 61 69 6e 69 6e 67 20 73 75 62 72 6f 75 74 69 6e 65 73 0d 0a 3b 09 61 ┆, the remaining subroutines ; a┆ 0x0d5940…0d5960 72 65 20 74 61 69 6c 6f 72 65 64 20 74 6f 20 74 68 65 20 70 61 72 74 69 63 75 6c 61 72 20 6f 70 ┆re tailored to the particular op┆ 0x0d5960…0d5980 65 72 61 74 69 6e 67 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 2c 20 61 6e 64 20 6d 75 73 74 0d 0a 3b ┆erating environment, and must ;┆ 0x0d5980…0d59a0 09 62 65 20 61 6c 74 65 72 65 64 20 66 6f 72 20 61 6e 79 20 73 79 73 74 65 6d 20 77 68 69 63 68 ┆ be altered for any system which┆ 0x0d59a0…0d59c0 20 64 69 66 66 65 72 73 20 66 72 6f 6d 20 74 68 65 20 69 6e 74 65 6c 20 6d 64 73 2e 0d 0a 3b 0d ┆ differs from the intel mds. ; ┆ 0x0d59c0…0d59e0 0a 3b 09 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 64 65 20 61 73 73 75 6d 65 73 20 74 68 ┆ ; the following code assumes th┆ 0x0d59e0…0d5a00 65 20 6d 64 73 20 6d 6f 6e 69 74 6f 72 20 65 78 69 73 74 73 20 61 74 20 30 66 38 30 30 68 0d 0a ┆e mds monitor exists at 0f800h ┆ 0x0d5a00…0d5a20 (56, 1, 15) 72 20 61 63 63 75 6d 75 6c 61 74 6f 72 0d 0a 09 73 74 61 09 63 64 69 73 6b 09 3b 73 65 74 20 69 ┆r accumulator sta cdisk ;set i┆ 0x0d5a20…0d5a40 6e 69 74 69 61 6c 6c 79 20 74 6f 20 64 69 73 6b 20 61 0d 0a 09 6a 6d 70 09 67 6f 63 70 6d 09 3b ┆nitially to disk a jmp gocpm ;┆ 0x0d5a40…0d5a60 67 6f 20 74 6f 20 63 70 2f 6d 0d 0a 3b 0d 0a 3b 0d 0a 77 62 6f 6f 74 3a 3b 09 6c 6f 61 64 65 72 ┆go to cp/m ; ; wboot:; loader┆ 0x0d5a60…0d5a80 20 6f 6e 20 74 72 61 63 6b 20 30 2c 20 73 65 63 74 6f 72 20 31 2c 20 77 68 69 63 68 20 77 69 6c ┆ on track 0, sector 1, which wil┆ 0x0d5a80…0d5aa0 6c 20 62 65 20 73 6b 69 70 70 65 64 20 66 6f 72 20 77 61 72 6d 20 0d 0a 3b 09 72 65 61 64 20 63 ┆l be skipped for warm ; read c┆ 0x0d5aa0…0d5ac0 70 2f 6d 20 66 72 6f 6d 20 64 69 73 6b 20 2d 20 61 73 73 75 6d 69 6e 67 20 74 68 65 72 65 20 69 ┆p/m from disk - assuming there i┆ 0x0d5ac0…0d5ae0 73 20 61 20 31 32 38 20 62 79 74 65 20 63 6f 6c 64 20 73 74 61 72 74 0d 0a 3b 09 73 74 61 72 74 ┆s a 128 byte cold start ; start┆ 0x0d5ae0…0d5b00 2e 0d 0a 3b 0d 0a 09 6c 78 69 09 73 70 2c 62 75 66 66 09 3b 75 73 69 6e 67 20 64 6d 61 20 2d 20 ┆. ; lxi sp,buff ;using dma - ┆ 0x0d5b00…0d5b20 74 68 75 73 20 38 30 20 74 68 72 75 20 66 66 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 73 74 ┆thus 80 thru ff available for st┆ 0x0d5b20…0d5b40 61 63 6b 0d 0a 3b 0d 0a 09 6d 76 69 09 63 2c 72 65 74 72 79 09 3b 6d 61 78 20 72 65 74 72 69 65 ┆ack ; mvi c,retry ;max retrie┆ 0x0d5b40…0d5b60 73 0d 0a 09 70 75 73 68 09 62 0d 0a 77 62 6f 6f 74 30 3a 09 3b 65 6e 74 65 72 20 68 65 72 65 20 ┆s push b wboot0: ;enter here ┆ 0x0d5b60…0d5b80 6f 6e 20 65 72 72 6f 72 20 72 65 74 72 69 65 73 0d 0a 09 6c 78 69 09 62 2c 63 70 6d 62 09 3b 73 ┆on error retries lxi b,cpmb ;s┆ 0x0d5b80…0d5ba0 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 74 6f 20 73 74 61 72 74 20 6f 66 20 64 69 73 6b 20 ┆et dma address to start of disk ┆ 0x0d5ba0…0d5bc0 73 79 73 74 65 6d 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 09 6d 76 69 09 63 2c 30 09 3b ┆system call setdma mvi c,0 ;┆ 0x0d5bc0…0d5be0 62 6f 6f 74 20 66 72 6f 6d 20 64 72 69 76 65 20 30 0d 0a 09 63 61 6c 6c 09 73 65 6c 64 73 6b 0d ┆boot from drive 0 call seldsk ┆ 0x0d5be0…0d5c00 0a 09 6d 76 69 09 63 2c 30 0d 0a 09 63 61 6c 6c 09 73 65 74 74 72 6b 09 3b 73 74 61 72 74 20 77 ┆ mvi c,0 call settrk ;start w┆ 0x0d5c00…0d5c20 (57, 0, 1) 0a 3b 0d 0a 3b 09 65 72 72 6f 72 20 63 6f 6e 64 69 74 69 6f 6e 20 6f 63 63 75 72 72 65 64 2c 20 ┆ ; ; error condition occurred, ┆ 0x0d5c20…0d5c40 70 72 69 6e 74 20 6d 65 73 73 61 67 65 20 61 6e 64 20 72 65 74 72 79 0d 0a 62 6f 6f 74 65 72 72 ┆print message and retry booterr┆ 0x0d5c40…0d5c60 3a 0d 0a 09 70 6f 70 09 62 09 3b 72 65 63 61 6c 6c 20 63 6f 75 6e 74 73 0d 0a 09 64 63 72 09 63 ┆: pop b ;recall counts dcr c┆ 0x0d5c60…0d5c80 0d 0a 09 6a 7a 09 62 6f 6f 74 65 72 30 0d 0a 3b 09 74 72 79 20 61 67 61 69 6e 0d 0a 09 70 75 73 ┆ jz booter0 ; try again pus┆ 0x0d5c80…0d5ca0 68 09 62 0d 0a 09 6a 6d 70 09 77 62 6f 6f 74 30 0d 0a 3b 0d 0a 62 6f 6f 74 65 72 30 3a 0d 0a 3b ┆h b jmp wboot0 ; booter0: ;┆ 0x0d5ca0…0d5cc0 09 6f 74 68 65 72 77 69 73 65 20 74 6f 6f 20 6d 61 6e 79 20 72 65 74 72 69 65 73 0d 0a 09 6c 78 ┆ otherwise too many retries lx┆ 0x0d5cc0…0d5ce0 69 09 68 2c 62 6f 6f 74 6d 73 67 0d 0a 09 63 61 6c 6c 09 70 72 6d 73 67 0d 0a 09 6a 6d 70 09 72 ┆i h,bootmsg call prmsg jmp r┆ 0x0d5ce0…0d5d00 6d 6f 6e 38 30 09 3b 6d 64 73 20 68 61 72 64 77 61 72 65 20 6d 6f 6e 69 74 6f 72 0d 0a 3b 0d 0a ┆mon80 ;mds hardware monitor ; ┆ 0x0d5d00…0d5d20 62 6f 6f 74 6d 73 67 3a 0d 0a 09 64 62 09 27 3f 62 6f 6f 74 27 2c 30 0d 0a 3b 0d 0a 3b 0d 0a 63 ┆bootmsg: db '?boot',0 ; ; c┆ 0x0d5d20…0d5d40 6f 6e 73 74 3a 09 3b 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 20 74 6f 20 72 65 67 2d 61 0d 0a ┆onst: ;console status to reg-a ┆ 0x0d5d40…0d5d60 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 ┆; (exactly the same as mds call)┆ 0x0d5d60…0d5d80 0d 0a 09 6a 6d 70 09 63 73 74 73 0d 0a 3b 0d 0a 63 6f 6e 69 6e 3a 09 3b 63 6f 6e 73 6f 6c 65 20 ┆ jmp csts ; conin: ;console ┆ 0x0d5d80…0d5da0 63 68 61 72 61 63 74 65 72 20 74 6f 20 72 65 67 2d 61 0d 0a 09 63 61 6c 6c 09 63 69 0d 0a 09 61 ┆character to reg-a call ci a┆ 0x0d5da0…0d5dc0 6e 69 09 37 66 68 09 3b 72 65 6d 6f 76 65 20 70 61 72 69 74 79 20 62 69 74 0d 0a 09 72 65 74 0d ┆ni 7fh ;remove parity bit ret ┆ 0x0d5dc0…0d5de0 0a 3b 0d 0a 63 6f 6e 6f 75 74 3a 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 66 ┆ ; conout: ;console character f┆ 0x0d5de0…0d5e00 72 6f 6d 20 63 20 74 6f 20 63 6f 6e 73 6f 6c 65 20 6f 75 74 0d 0a 09 6a 6d 70 09 63 6f 0d 0a 3b ┆rom c to console out jmp co ;┆ 0x0d5e00…0d5e20 (57, 0, 2) 6f 76 09 68 2c 62 0d 0a 09 73 68 6c 64 09 69 6f 64 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 72 65 61 64 ┆ov h,b shld iod ret ; read┆ 0x0d5e20…0d5e40 3a 09 3b 72 65 61 64 20 6e 65 78 74 20 64 69 73 6b 20 72 65 63 6f 72 64 20 28 61 73 73 75 6d 69 ┆: ;read next disk record (assumi┆ 0x0d5e40…0d5e60 6e 67 20 64 69 73 6b 2f 74 72 6b 2f 73 65 63 2f 64 6d 61 20 73 65 74 29 0d 0a 09 6d 76 69 09 63 ┆ng disk/trk/sec/dma set) mvi c┆ 0x0d5e60…0d5e80 2c 72 65 61 64 66 09 3b 73 65 74 20 74 6f 20 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 63 ┆,readf ;set to read function c┆ 0x0d5e80…0d5ea0 61 6c 6c 09 73 65 74 66 75 6e 63 0d 0a 09 63 61 6c 6c 09 77 61 69 74 69 6f 09 3b 70 65 72 66 6f ┆all setfunc call waitio ;perfo┆ 0x0d5ea0…0d5ec0 72 6d 20 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 72 65 74 09 09 3b 6d 61 79 20 68 61 76 ┆rm read function ret ;may hav┆ 0x0d5ec0…0d5ee0 65 20 65 72 72 6f 72 20 73 65 74 20 69 6e 20 72 65 67 2d 61 0d 0a 3b 0d 0a 3b 0d 0a 77 72 69 74 ┆e error set in reg-a ; ; writ┆ 0x0d5ee0…0d5f00 65 3a 09 3b 64 69 73 6b 20 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6d 76 69 09 63 2c ┆e: ;disk write function mvi c,┆ 0x0d5f00…0d5f20 77 72 69 74 66 0d 0a 09 63 61 6c 6c 09 73 65 74 66 75 6e 63 09 3b 73 65 74 20 74 6f 20 77 72 69 ┆writf call setfunc ;set to wri┆ 0x0d5f20…0d5f40 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 77 61 69 74 69 6f 0d 0a 09 72 65 74 09 ┆te function call waitio ret ┆ 0x0d5f40…0d5f60 09 3b 6d 61 79 20 68 61 76 65 20 65 72 72 6f 72 20 73 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 75 74 ┆ ;may have error set ; ; ; ut┆ 0x0d5f60…0d5f80 69 6c 69 74 79 20 73 75 62 72 6f 75 74 69 6e 65 73 0d 0a 70 72 6d 73 67 3a 09 3b 70 72 69 6e 74 ┆ility subroutines prmsg: ;print┆ 0x0d5f80…0d5fa0 20 6d 65 73 73 61 67 65 20 61 74 20 68 2c 6c 20 74 6f 20 30 0d 0a 09 6d 6f 76 09 61 2c 6d 0d 0a ┆ message at h,l to 0 mov a,m ┆ 0x0d5fa0…0d5fc0 09 6f 72 61 09 61 09 3b 7a 65 72 6f 3f 0d 0a 09 72 7a 0d 0a 3b 09 6d 6f 72 65 20 74 6f 20 70 72 ┆ ora a ;zero? rz ; more to pr┆ 0x0d5fc0…0d5fe0 69 6e 74 0d 0a 09 70 75 73 68 09 68 0d 0a 09 6d 6f 76 09 63 2c 61 0d 0a 09 63 61 6c 6c 09 63 6f ┆int push h mov c,a call co┆ 0x0d5fe0…0d6000 6e 6f 75 74 0d 0a 09 70 6f 70 09 68 0d 0a 09 69 6e 78 09 68 0d 0a 09 6a 6d 70 09 70 72 6d 73 67 ┆nout pop h inx h jmp prmsg┆ 0x0d6000…0d6020 (57, 0, 3) 75 6e 69 74 20 6e 6f 74 20 72 65 61 64 79 0d 0a 09 72 61 72 0d 0a 09 61 6e 69 09 31 31 31 31 31 ┆unit not ready rar ani 11111┆ 0x0d6020…0d6040 31 31 30 62 09 3b 61 6e 79 20 6f 74 68 65 72 20 65 72 72 6f 72 73 3f 20 20 28 64 65 6c 65 74 65 ┆110b ;any other errors? (delete┆ 0x0d6040…0d6060 64 20 64 61 74 61 20 6f 6b 29 0d 0a 09 6a 6e 7a 09 77 65 72 72 6f 72 0d 0a 3b 0d 0a 3b 09 72 65 ┆d data ok) jnz werror ; ; re┆ 0x0d6060…0d6080 61 64 20 6f 72 20 77 72 69 74 65 20 69 73 20 6f 6b 2c 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 63 ┆ad or write is ok, accumulator c┆ 0x0d6080…0d60a0 6f 6e 74 61 69 6e 73 20 7a 65 72 6f 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 77 72 65 61 64 79 3a 09 3b ┆ontains zero ret ; wready: ;┆ 0x0d60a0…0d60c0 6e 6f 74 20 72 65 61 64 79 2c 20 74 72 65 61 74 20 61 73 20 65 72 72 6f 72 20 66 6f 72 20 6e 6f ┆not ready, treat as error for no┆ 0x0d60c0…0d60e0 77 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 09 09 3b 63 6c 65 61 72 20 72 65 73 75 6c 74 20 62 ┆w call inbyte ;clear result b┆ 0x0d60e0…0d6100 79 74 65 0d 0a 09 6a 6d 70 09 74 72 79 63 6f 75 6e 74 0d 0a 3b 0d 0a 77 65 72 72 6f 72 3a 09 3b ┆yte jmp trycount ; werror: ;┆ 0x0d6100…0d6120 72 65 74 75 72 6e 20 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 20 28 63 72 63 ┆return hardware malfunction (crc┆ 0x0d6120…0d6140 2c 20 74 72 61 63 6b 2c 20 73 65 65 6b 2c 20 65 74 63 2e 29 0d 0a 3b 09 74 68 65 20 6d 64 73 20 ┆, track, seek, etc.) ; the mds ┆ 0x0d6140…0d6160 63 6f 6e 74 72 6f 6c 6c 65 72 20 68 61 73 20 72 65 74 75 72 6e 65 64 20 61 20 62 69 74 20 69 6e ┆controller has returned a bit in┆ 0x0d6160…0d6180 20 65 61 63 68 20 70 6f 73 69 74 69 6f 6e 0d 0a 3b 09 6f 66 20 74 68 65 20 61 63 63 75 6d 75 6c ┆ each position ; of the accumul┆ 0x0d6180…0d61a0 61 74 6f 72 2c 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 74 68 65 20 63 6f 6e 64 69 ┆ator, corresponding to the condi┆ 0x0d61a0…0d61c0 74 69 6f 6e 73 3a 0d 0a 3b 09 30 09 2d 20 64 65 6c 65 74 65 64 20 64 61 74 61 20 28 61 63 63 65 ┆tions: ; 0 - deleted data (acce┆ 0x0d61c0…0d61e0 70 74 65 64 20 61 73 20 6f 6b 20 61 62 6f 76 65 29 0d 0a 3b 09 31 09 2d 20 63 72 63 20 65 72 72 ┆pted as ok above) ; 1 - crc err┆ 0x0d61e0…0d6200 6f 72 0d 0a 3b 09 32 09 2d 20 73 65 65 6b 20 65 72 72 6f 72 0d 0a 3b 09 33 09 2d 20 61 64 64 72 ┆or ; 2 - seek error ; 3 - addr┆ 0x0d6200…0d6220 (57, 0, 4) 30 0d 0a 3b 09 44 69 67 69 74 61 6c 20 52 65 73 65 61 72 63 68 0d 0a 3b 09 42 6f 78 20 35 37 39 ┆0 ; Digital Research ; Box 579┆ 0x0d6220…0d6240 2c 20 50 61 63 69 66 69 63 20 47 72 6f 76 65 0d 0a 3b 09 43 61 6c 69 66 6f 72 6e 69 61 2c 20 39 ┆, Pacific Grove ; California, 9┆ 0x0d6240…0d6260 33 39 35 30 0d 0a 3b 0d 0a 3b 0d 0a 74 72 75 65 09 65 71 75 09 30 66 66 66 66 68 09 3b 76 61 6c ┆3950 ; ; true equ 0ffffh ;val┆ 0x0d6260…0d6280 75 65 20 6f 66 20 22 74 72 75 65 22 0d 0a 66 61 6c 73 65 09 65 71 75 09 6e 6f 74 20 74 72 75 65 ┆ue of "true" false equ not true┆ 0x0d6280…0d62a0 09 3b 22 66 61 6c 73 65 22 0d 0a 74 65 73 74 09 65 71 75 09 66 61 6c 73 65 09 3b 74 72 75 65 20 ┆ ;"false" test equ false ;true ┆ 0x0d62a0…0d62c0 69 66 20 74 65 73 74 20 62 69 6f 73 0d 0a 3b 0d 0a 09 69 66 09 74 65 73 74 0d 0a 62 69 61 73 09 ┆if test bios ; if test bias ┆ 0x0d62c0…0d62e0 65 71 75 09 30 33 34 30 30 68 09 3b 62 61 73 65 20 6f 66 20 43 43 50 20 69 6e 20 74 65 73 74 20 ┆equ 03400h ;base of CCP in test ┆ 0x0d62e0…0d6300 73 79 73 74 65 6d 0d 0a 09 65 6e 64 69 66 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 62 69 ┆system endif if not test bi┆ 0x0d6300…0d6320 61 73 09 65 71 75 09 30 30 30 30 68 09 3b 67 65 6e 65 72 61 74 65 20 72 65 6c 6f 63 61 74 61 62 ┆as equ 0000h ;generate relocatab┆ 0x0d6320…0d6340 6c 65 20 63 70 2f 6d 20 73 79 73 74 65 6d 0d 0a 09 65 6e 64 69 66 0d 0a 3b 0d 0a 70 61 74 63 68 ┆le cp/m system endif ; patch┆ 0x0d6340…0d6360 09 65 71 75 09 31 36 30 30 68 0d 0a 3b 0d 0a 09 6f 72 67 09 70 61 74 63 68 0d 0a 63 70 6d 62 09 ┆ equ 1600h ; org patch cpmb ┆ 0x0d6360…0d6380 65 71 75 09 24 2d 70 61 74 63 68 09 3b 62 61 73 65 20 6f 66 20 63 70 6d 20 63 6f 6e 73 6f 6c 65 ┆equ $-patch ;base of cpm console┆ 0x0d6380…0d63a0 20 70 72 6f 63 65 73 73 6f 72 0d 0a 62 64 6f 73 09 65 71 75 09 38 30 36 68 2b 63 70 6d 62 09 3b ┆ processor bdos equ 806h+cpmb ;┆ 0x0d63a0…0d63c0 62 61 73 69 63 20 64 6f 73 20 28 72 65 73 69 64 65 6e 74 20 70 6f 72 74 69 6f 6e 29 0d 0a 63 70 ┆basic dos (resident portion) cp┆ 0x0d63c0…0d63e0 6d 6c 09 65 71 75 09 24 2d 63 70 6d 62 09 3b 6c 65 6e 67 74 68 20 28 69 6e 20 62 79 74 65 73 29 ┆ml equ $-cpmb ;length (in bytes)┆ 0x0d63e0…0d6400 20 6f 66 20 63 70 6d 20 73 79 73 74 65 6d 0d 0a 6e 73 65 63 74 73 09 65 71 75 09 63 70 6d 6c 2f ┆ of cpm system nsects equ cpml/┆ 0x0d6400…0d6420 (57, 0, 5) 0d 0a 6c 69 73 74 3a 09 3b 6c 69 73 74 20 64 65 76 69 63 65 20 6f 75 74 0d 0a 3b 09 28 65 78 61 ┆ list: ;list device out ; (exa┆ 0x0d6420…0d6440 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 ┆ctly the same as mds call) jmp┆ 0x0d6440…0d6460 09 6c 6f 0d 0a 3b 0d 0a 6c 69 73 74 73 74 3a 0d 0a 09 3b 72 65 74 75 72 6e 20 6c 69 73 74 20 73 ┆ lo ; listst: ;return list s┆ 0x0d6460…0d6480 74 61 74 75 73 0d 0a 09 78 72 61 09 61 0d 0a 09 72 65 74 09 09 3b 61 6c 77 61 79 73 20 6e 6f 74 ┆tatus xra a ret ;always not┆ 0x0d6480…0d64a0 20 72 65 61 64 79 0d 0a 3b 0d 0a 70 75 6e 63 68 3a 09 3b 70 75 6e 63 68 20 64 65 76 69 63 65 20 ┆ ready ; punch: ;punch device ┆ 0x0d64a0…0d64c0 6f 75 74 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 ┆out ; (exactly the same as mds ┆ 0x0d64c0…0d64e0 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 70 6f 0d 0a 3b 0d 0a 72 65 61 64 65 72 3a 09 3b 72 65 61 64 ┆call) jmp po ; reader: ;read┆ 0x0d64e0…0d6500 65 72 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 74 6f 20 72 65 67 2d 61 0d 0a 3b 09 28 65 78 61 ┆er character in to reg-a ; (exa┆ 0x0d6500…0d6520 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 ┆ctly the same as mds call) jmp┆ 0x0d6520…0d6540 09 72 69 0d 0a 3b 0d 0a 68 6f 6d 65 3a 09 3b 6d 6f 76 65 20 74 6f 20 68 6f 6d 65 20 70 6f 73 69 ┆ ri ; home: ;move to home posi┆ 0x0d6540…0d6560 74 69 6f 6e 0d 0a 3b 09 74 72 65 61 74 20 61 73 20 74 72 61 63 6b 20 30 30 20 73 65 65 6b 0d 0a ┆tion ; treat as track 00 seek ┆ 0x0d6560…0d6580 09 6d 76 69 09 63 2c 30 0d 0a 09 6a 6d 70 09 73 65 74 74 72 6b 0d 0a 3b 0d 0a 73 65 6c 64 73 6b ┆ mvi c,0 jmp settrk ; seldsk┆ 0x0d6580…0d65a0 3a 09 3b 73 65 6c 65 63 74 20 64 69 73 6b 20 67 69 76 65 6e 20 62 79 20 72 65 67 69 73 74 65 72 ┆: ;select disk given by register┆ 0x0d65a0…0d65c0 20 63 0d 0a 09 6c 78 69 09 68 2c 30 30 30 30 68 09 3b 72 65 74 75 72 6e 20 30 30 30 30 20 69 66 ┆ c lxi h,0000h ;return 0000 if┆ 0x0d65c0…0d65e0 20 65 72 72 6f 72 0d 0a 09 6d 6f 76 09 61 2c 63 0d 0a 09 63 70 69 09 6e 64 69 73 6b 73 09 3b 74 ┆ error mov a,c cpi ndisks ;t┆ 0x0d65e0…0d6600 6f 6f 20 6c 61 72 67 65 3f 0d 0a 09 72 6e 63 09 09 3b 6c 65 61 76 65 20 48 4c 20 3d 20 30 30 30 ┆oo large? rnc ;leave HL = 000┆ 0x0d6600…0d6620 (57, 0, 6) 0d 0a 3b 0d 0a 73 65 74 66 75 6e 63 3a 0d 0a 3b 09 73 65 74 20 66 75 6e 63 74 69 6f 6e 20 66 6f ┆ ; setfunc: ; set function fo┆ 0x0d6620…0d6640 72 20 6e 65 78 74 20 69 2f 6f 20 28 63 6f 6d 6d 61 6e 64 20 69 6e 20 72 65 67 2d 63 29 0d 0a 09 ┆r next i/o (command in reg-c) ┆ 0x0d6640…0d6660 6c 78 69 09 68 2c 69 6f 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 72 65 73 73 0d 0a ┆lxi h,iof ;io function address ┆ 0x0d6660…0d6680 09 6d 6f 76 09 61 2c 6d 09 3b 67 65 74 20 69 74 20 74 6f 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 ┆ mov a,m ;get it to accumulator ┆ 0x0d6680…0d66a0 66 6f 72 20 6d 61 73 6b 69 6e 67 0d 0a 09 61 6e 69 09 31 31 31 31 31 30 30 30 62 09 3b 72 65 6d ┆for masking ani 11111000b ;rem┆ 0x0d66a0…0d66c0 6f 76 65 20 70 72 65 76 69 6f 75 73 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6f 72 61 09 63 09 3b 73 65 ┆ove previous command ora c ;se┆ 0x0d66c0…0d66e0 74 20 74 6f 20 6e 65 77 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6d 6f 76 09 6d 2c 61 09 3b 72 65 70 6c ┆t to new command mov m,a ;repl┆ 0x0d66e0…0d6700 61 63 65 64 20 69 6e 20 69 6f 70 62 0d 0a 3b 09 74 68 65 20 6d 64 73 2d 38 30 30 20 63 6f 6e 74 ┆aced in iopb ; the mds-800 cont┆ 0x0d6700…0d6720 72 6f 6c 6c 65 72 20 72 65 71 75 69 72 65 73 20 64 69 73 6b 20 62 61 6e 6b 20 62 69 74 20 69 6e ┆roller requires disk bank bit in┆ 0x0d6720…0d6740 20 73 65 63 74 6f 72 20 62 79 74 65 0d 0a 3b 09 6d 61 73 6b 20 74 68 65 20 62 69 74 20 66 72 6f ┆ sector byte ; mask the bit fro┆ 0x0d6740…0d6760 6d 20 74 68 65 20 63 75 72 72 65 6e 74 20 69 2f 6f 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 61 6e 69 ┆m the current i/o function ani┆ 0x0d6760…0d6780 09 30 30 31 30 30 30 30 30 62 09 3b 6d 61 73 6b 20 74 68 65 20 64 69 73 6b 20 73 65 6c 65 63 74 ┆ 00100000b ;mask the disk select┆ 0x0d6780…0d67a0 20 62 69 74 0d 0a 09 6c 78 69 09 68 2c 69 6f 73 09 09 3b 61 64 64 72 65 73 73 20 74 68 65 20 73 ┆ bit lxi h,ios ;address the s┆ 0x0d67a0…0d67c0 65 63 74 6f 72 20 73 65 6c 65 63 74 20 62 79 74 65 0d 0a 09 6f 72 61 09 6d 09 09 3b 73 65 6c 65 ┆ector select byte ora m ;sele┆ 0x0d67c0…0d67e0 63 74 20 70 72 6f 70 65 72 20 64 69 73 6b 20 62 61 6e 6b 0d 0a 09 6d 6f 76 09 6d 2c 61 09 09 3b ┆ct proper disk bank mov m,a ;┆ 0x0d67e0…0d6800 73 65 74 20 64 69 73 6b 20 73 65 6c 65 63 74 20 62 69 74 20 6f 6e 2f 6f 66 66 0d 0a 09 72 65 74 ┆set disk select bit on/off ret┆ 0x0d6800…0d6820 (57, 0, 7) 65 73 73 20 65 72 72 6f 72 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 ┆ess error (hardware malfunction)┆ 0x0d6820…0d6840 0d 0a 3b 09 34 09 2d 20 64 61 74 61 20 6f 76 65 72 2f 75 6e 64 65 72 20 66 6c 6f 77 20 28 68 61 ┆ ; 4 - data over/under flow (ha┆ 0x0d6840…0d6860 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 35 09 2d 20 77 72 69 74 65 ┆rdware malfunction) ; 5 - write┆ 0x0d6860…0d6880 20 70 72 6f 74 65 63 74 20 28 74 72 65 61 74 65 64 20 61 73 20 6e 6f 74 20 72 65 61 64 79 29 0d ┆ protect (treated as not ready) ┆ 0x0d6880…0d68a0 0a 3b 09 36 09 2d 20 77 72 69 74 65 20 65 72 72 6f 72 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c ┆ ; 6 - write error (hardware mal┆ 0x0d68a0…0d68c0 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 37 09 2d 20 6e 6f 74 20 72 65 61 64 79 0d 0a 3b 09 28 61 ┆function) ; 7 - not ready ; (a┆ 0x0d68c0…0d68e0 63 63 75 6d 75 6c 61 74 6f 72 20 62 69 74 73 20 61 72 65 20 6e 75 6d 62 65 72 65 64 20 37 20 36 ┆ccumulator bits are numbered 7 6┆ 0x0d68e0…0d6900 20 35 20 34 20 33 20 32 20 31 20 30 29 0d 0a 3b 0d 0a 3b 09 69 74 20 6d 61 79 20 62 65 20 75 73 ┆ 5 4 3 2 1 0) ; ; it may be us┆ 0x0d6900…0d6920 65 66 75 6c 20 74 6f 20 66 69 6c 74 65 72 20 6f 75 74 20 74 68 65 20 76 61 72 69 6f 75 73 20 63 ┆eful to filter out the various c┆ 0x0d6920…0d6940 6f 6e 64 69 74 69 6f 6e 73 2c 0d 0a 3b 09 62 75 74 20 77 65 20 77 69 6c 6c 20 67 65 74 20 61 20 ┆onditions, ; but we will get a ┆ 0x0d6940…0d6960 70 65 72 6d 61 6e 65 6e 74 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 69 66 20 69 74 20 69 73 ┆permanent error message if it is┆ 0x0d6960…0d6980 20 6e 6f 74 0d 0a 3b 09 72 65 63 6f 76 65 72 61 62 6c 65 2e 20 20 69 6e 20 61 6e 79 20 63 61 73 ┆ not ; recoverable. in any cas┆ 0x0d6980…0d69a0 65 2c 20 74 68 65 20 6e 6f 74 20 72 65 61 64 79 20 63 6f 6e 64 69 74 69 6f 6e 20 69 73 0d 0a 3b ┆e, the not ready condition is ;┆ 0x0d69a0…0d69c0 09 74 72 65 61 74 65 64 20 61 73 20 61 20 73 65 70 61 72 61 74 65 20 63 6f 6e 64 69 74 69 6f 6e ┆ treated as a separate condition┆ 0x0d69c0…0d69e0 20 66 6f 72 20 6c 61 74 65 72 20 69 6d 70 72 6f 76 65 6d 65 6e 74 0d 0a 74 72 79 63 6f 75 6e 74 ┆ for later improvement trycount┆ 0x0d69e0…0d6a00 3a 0d 0a 3b 09 72 65 67 69 73 74 65 72 20 63 20 63 6f 6e 74 61 69 6e 73 20 72 65 74 72 79 20 63 ┆: ; register c contains retry c┆ 0x0d6a00…0d6a20 (57, 0, 8) 31 32 38 09 3b 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 20 74 6f 20 6c 6f 61 64 0d 0a ┆128 ;number of sectors to load ┆ 0x0d6a20…0d6a40 6f 66 66 73 65 74 09 65 71 75 09 32 09 3b 6e 75 6d 62 65 72 20 6f 66 20 64 69 73 6b 20 74 72 61 ┆offset equ 2 ;number of disk tra┆ 0x0d6a40…0d6a60 63 6b 73 20 75 73 65 64 20 62 79 20 63 70 2f 6d 0d 0a 63 64 69 73 6b 09 65 71 75 09 30 30 30 34 ┆cks used by cp/m cdisk equ 0004┆ 0x0d6a60…0d6a80 68 09 3b 61 64 64 72 65 73 73 20 6f 66 20 6c 61 73 74 20 6c 6f 67 67 65 64 20 64 69 73 6b 20 6f ┆h ;address of last logged disk o┆ 0x0d6a80…0d6aa0 6e 20 77 61 72 6d 20 73 74 61 72 74 0d 0a 62 75 66 66 09 65 71 75 09 30 30 38 30 68 09 3b 64 65 ┆n warm start buff equ 0080h ;de┆ 0x0d6aa0…0d6ac0 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 0d 0a 72 65 74 72 79 09 65 71 75 09 ┆fault buffer address retry equ ┆ 0x0d6ac0…0d6ae0 31 30 09 3b 6d 61 78 20 72 65 74 72 69 65 73 20 6f 6e 20 64 69 73 6b 20 69 2f 6f 20 62 65 66 6f ┆10 ;max retries on disk i/o befo┆ 0x0d6ae0…0d6b00 72 65 20 65 72 72 6f 72 0d 0a 3b 0d 0a 3b 09 70 65 72 66 6f 72 6d 20 66 6f 6c 6c 6f 77 69 6e 67 ┆re error ; ; perform following┆ 0x0d6b00…0d6b20 20 66 75 6e 63 74 69 6f 6e 73 0d 0a 3b 09 62 6f 6f 74 09 63 6f 6c 64 20 73 74 61 72 74 0d 0a 3b ┆ functions ; boot cold start ;┆ 0x0d6b20…0d6b40 09 77 62 6f 6f 74 09 77 61 72 6d 20 73 74 61 72 74 20 28 73 61 76 65 20 69 2f 6f 20 62 79 74 65 ┆ wboot warm start (save i/o byte┆ 0x0d6b40…0d6b60 29 0d 0a 3b 09 28 62 6f 6f 74 20 61 6e 64 20 77 62 6f 6f 74 20 61 72 65 20 74 68 65 20 73 61 6d ┆) ; (boot and wboot are the sam┆ 0x0d6b60…0d6b80 65 20 66 6f 72 20 6d 64 73 29 0d 0a 3b 09 63 6f 6e 73 74 09 63 6f 6e 73 6f 6c 65 20 73 74 61 74 ┆e for mds) ; const console stat┆ 0x0d6b80…0d6ba0 75 73 0d 0a 3b 09 09 72 65 67 2d 61 20 3d 20 30 30 20 69 66 20 6e 6f 20 63 68 61 72 61 63 74 65 ┆us ; reg-a = 00 if no characte┆ 0x0d6ba0…0d6bc0 72 20 72 65 61 64 79 0d 0a 3b 09 09 72 65 67 2d 61 20 3d 20 66 66 20 69 66 20 63 68 61 72 61 63 ┆r ready ; reg-a = ff if charac┆ 0x0d6bc0…0d6be0 74 65 72 20 72 65 61 64 79 0d 0a 3b 09 63 6f 6e 69 6e 09 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 ┆ter ready ; conin console chara┆ 0x0d6be0…0d6c00 63 74 65 72 20 69 6e 20 28 72 65 73 75 6c 74 20 69 6e 20 72 65 67 2d 61 29 0d 0a 3b 09 63 6f 6e ┆cter in (result in reg-a) ; con┆ 0x0d6c00…0d6c20 (57, 0, 9) 30 0d 0a 3b 0d 0a 09 61 6e 69 09 31 30 62 09 3b 30 30 20 30 30 20 66 6f 72 20 64 72 69 76 65 20 ┆0 ; ani 10b ;00 00 for drive ┆ 0x0d6c20…0d6c40 30 2c 31 20 61 6e 64 20 31 30 20 31 30 20 66 6f 72 20 64 72 69 76 65 20 32 2c 33 0d 0a 09 73 74 ┆0,1 and 10 10 for drive 2,3 st┆ 0x0d6c40…0d6c60 61 09 64 62 61 6e 6b 09 3b 74 6f 20 73 65 6c 65 63 74 20 64 72 69 76 65 20 62 61 6e 6b 0d 0a 09 ┆a dbank ;to select drive bank ┆ 0x0d6c60…0d6c80 6d 6f 76 09 61 2c 63 09 3b 30 30 2c 20 30 31 2c 20 31 30 2c 20 31 31 0d 0a 09 61 6e 69 09 31 62 ┆mov a,c ;00, 01, 10, 11 ani 1b┆ 0x0d6c80…0d6ca0 09 3b 6d 64 73 20 68 61 73 20 30 2c 31 20 61 74 20 37 38 2c 20 32 2c 33 20 61 74 20 38 38 0d 0a ┆ ;mds has 0,1 at 78, 2,3 at 88 ┆ 0x0d6ca0…0d6cc0 09 6f 72 61 09 61 09 3b 72 65 73 75 6c 74 20 30 30 3f 0d 0a 09 6a 7a 09 73 65 74 64 72 69 76 65 ┆ ora a ;result 00? jz setdrive┆ 0x0d6cc0…0d6ce0 0d 0a 09 6d 76 69 09 61 2c 30 30 31 31 30 30 30 30 62 09 3b 73 65 6c 65 63 74 73 20 64 72 69 76 ┆ mvi a,00110000b ;selects driv┆ 0x0d6ce0…0d6d00 65 20 31 20 69 6e 20 62 61 6e 6b 0d 0a 73 65 74 64 72 69 76 65 3a 0d 0a 09 6d 6f 76 09 62 2c 61 ┆e 1 in bank setdrive: mov b,a┆ 0x0d6d00…0d6d20 09 3b 73 61 76 65 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6c 78 69 09 68 2c 69 6f 66 09 ┆ ;save the function lxi h,iof ┆ 0x0d6d20…0d6d40 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6d 6f 76 09 61 2c 6d 0d 0a 09 61 6e 69 09 31 31 30 ┆;io function mov a,m ani 110┆ 0x0d6d40…0d6d60 30 31 31 31 31 62 09 3b 6d 61 73 6b 20 6f 75 74 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6f ┆01111b ;mask out disk number o┆ 0x0d6d60…0d6d80 72 61 09 62 09 3b 6d 61 73 6b 20 69 6e 20 6e 65 77 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 ┆ra b ;mask in new disk number ┆ 0x0d6d80…0d6da0 6d 6f 76 09 6d 2c 61 09 3b 73 61 76 65 20 69 74 20 69 6e 20 69 6f 70 62 0d 0a 09 6d 6f 76 09 6c ┆mov m,a ;save it in iopb mov l┆ 0x0d6da0…0d6dc0 2c 63 0d 0a 09 6d 76 69 09 68 2c 30 09 3b 48 4c 3d 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 64 ┆,c mvi h,0 ;HL=disk number d┆ 0x0d6dc0…0d6de0 61 64 09 68 09 3b 2a 32 0d 0a 09 64 61 64 09 68 09 3b 2a 34 0d 0a 09 64 61 64 09 68 09 3b 2a 38 ┆ad h ;*2 dad h ;*4 dad h ;*8┆ 0x0d6de0…0d6e00 0d 0a 09 64 61 64 09 68 09 3b 2a 31 36 0d 0a 09 6c 78 69 09 64 2c 64 70 62 61 73 65 0d 0a 09 64 ┆ dad h ;*16 lxi d,dpbase d┆ 0x0d6e00…0d6e20 (57, 0, 10) 0d 0a 3b 0d 0a 77 61 69 74 69 6f 3a 0d 0a 09 6d 76 69 09 63 2c 72 65 74 72 79 09 3b 6d 61 78 20 ┆ ; waitio: mvi c,retry ;max ┆ 0x0d6e20…0d6e40 72 65 74 72 69 65 73 20 62 65 66 6f 72 65 20 70 65 72 6d 20 65 72 72 6f 72 0d 0a 72 65 77 61 69 ┆retries before perm error rewai┆ 0x0d6e40…0d6e60 74 3a 0d 0a 3b 09 73 74 61 72 74 20 74 68 65 20 69 2f 6f 20 66 75 6e 63 74 69 6f 6e 20 61 6e 64 ┆t: ; start the i/o function and┆ 0x0d6e60…0d6e80 20 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 69 6e 74 79 ┆ wait for completion call inty┆ 0x0d6e80…0d6ea0 70 65 09 3b 69 6e 20 72 74 79 70 65 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 09 3b 63 6c 65 61 ┆pe ;in rtype call inbyte ;clea┆ 0x0d6ea0…0d6ec0 72 73 20 74 68 65 20 63 6f 6e 74 72 6f 6c 6c 65 72 0d 0a 3b 0d 0a 09 6c 64 61 09 64 62 61 6e 6b ┆rs the controller ; lda dbank┆ 0x0d6ec0…0d6ee0 09 09 3b 73 65 74 20 62 61 6e 6b 20 66 6c 61 67 73 0d 0a 09 6f 72 61 09 61 09 09 3b 7a 65 72 6f ┆ ;set bank flags ora a ;zero┆ 0x0d6ee0…0d6f00 20 69 66 20 64 72 69 76 65 20 30 2c 31 20 61 6e 64 20 6e 7a 20 69 66 20 32 2c 33 0d 0a 09 6d 76 ┆ if drive 0,1 and nz if 2,3 mv┆ 0x0d6f00…0d6f20 69 09 61 2c 69 6f 70 62 20 61 6e 64 20 30 66 66 68 09 3b 6c 6f 77 20 61 64 64 72 65 73 73 20 66 ┆i a,iopb and 0ffh ;low address f┆ 0x0d6f20…0d6f40 6f 72 20 69 6f 70 62 0d 0a 09 6d 76 69 09 62 2c 69 6f 70 62 20 73 68 72 20 38 09 3b 68 69 67 68 ┆or iopb mvi b,iopb shr 8 ;high┆ 0x0d6f40…0d6f60 20 61 64 64 72 65 73 73 20 66 6f 72 20 69 6f 70 62 0d 0a 09 6a 6e 7a 09 69 6f 64 72 31 09 3b 64 ┆ address for iopb jnz iodr1 ;d┆ 0x0d6f60…0d6f80 72 69 76 65 20 62 61 6e 6b 20 31 3f 0d 0a 09 6f 75 74 09 69 6c 6f 77 09 09 3b 6c 6f 77 20 61 64 ┆rive bank 1? out ilow ;low ad┆ 0x0d6f80…0d6fa0 64 72 65 73 73 20 74 6f 20 63 6f 6e 74 72 6f 6c 6c 65 72 0d 0a 09 6d 6f 76 09 61 2c 62 0d 0a 09 ┆dress to controller mov a,b ┆ 0x0d6fa0…0d6fc0 6f 75 74 09 69 68 69 67 68 09 3b 68 69 67 68 20 61 64 64 72 65 73 73 0d 0a 09 6a 6d 70 09 77 61 ┆out ihigh ;high address jmp wa┆ 0x0d6fc0…0d6fe0 69 74 30 09 09 3b 74 6f 20 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 65 0d 0a 3b 0d 0a 69 ┆it0 ;to wait for complete ; i┆ 0x0d6fe0…0d7000 6f 64 72 31 3a 09 3b 64 72 69 76 65 20 62 61 6e 6b 20 31 0d 0a 09 6f 75 74 09 69 6c 6f 77 2b 31 ┆odr1: ;drive bank 1 out ilow+1┆ 0x0d7000…0d7020 (57, 0, 11) 6f 75 6e 74 2c 20 64 65 63 72 65 6d 65 6e 74 20 27 74 69 6c 20 7a 65 72 6f 0d 0a 09 64 63 72 09 ┆ount, decrement 'til zero dcr ┆ 0x0d7020…0d7040 63 0d 0a 09 6a 6e 7a 09 72 65 77 61 69 74 09 3b 66 6f 72 20 61 6e 6f 74 68 65 72 20 74 72 79 0d ┆c jnz rewait ;for another try ┆ 0x0d7040…0d7060 0a 3b 0d 0a 3b 09 63 61 6e 6e 6f 74 20 72 65 63 6f 76 65 72 20 66 72 6f 6d 20 65 72 72 6f 72 0d ┆ ; ; cannot recover from error ┆ 0x0d7060…0d7080 0a 09 6d 76 69 09 61 2c 31 09 3b 65 72 72 6f 72 20 63 6f 64 65 0d 0a 09 72 65 74 0d 0a 3b 0d 0a ┆ mvi a,1 ;error code ret ; ┆ 0x0d7080…0d70a0 3b 09 69 6e 74 79 70 65 2c 20 69 6e 62 79 74 65 2c 20 69 6e 73 74 61 74 20 72 65 61 64 20 64 72 ┆; intype, inbyte, instat read dr┆ 0x0d70a0…0d70c0 69 76 65 20 62 61 6e 6b 20 30 30 20 6f 72 20 31 30 0d 0a 69 6e 74 79 70 65 3a 09 6c 64 61 09 64 ┆ive bank 00 or 10 intype: lda d┆ 0x0d70c0…0d70e0 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 74 79 70 31 09 3b 73 6b 69 70 20 ┆bank ora a jnz intyp1 ;skip ┆ 0x0d70e0…0d7100 74 6f 20 62 61 6e 6b 20 31 30 0d 0a 09 69 6e 09 72 74 79 70 65 0d 0a 09 72 65 74 0d 0a 69 6e 74 ┆to bank 10 in rtype ret int┆ 0x0d7100…0d7120 79 70 31 3a 09 69 6e 09 72 74 79 70 65 2b 31 30 68 09 3b 37 38 20 66 6f 72 20 30 2c 31 20 20 38 ┆yp1: in rtype+10h ;78 for 0,1 8┆ 0x0d7120…0d7140 38 20 66 6f 72 20 32 2c 33 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 69 6e 62 79 74 65 3a 09 6c 64 61 09 ┆8 for 2,3 ret ; inbyte: lda ┆ 0x0d7140…0d7160 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 62 79 74 31 0d 0a 09 69 6e 09 ┆dbank ora a jnz inbyt1 in ┆ 0x0d7160…0d7180 72 62 79 74 65 0d 0a 09 72 65 74 0d 0a 69 6e 62 79 74 31 3a 09 69 6e 09 72 62 79 74 65 2b 31 30 ┆rbyte ret inbyt1: in rbyte+10┆ 0x0d7180…0d71a0 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 69 6e 73 74 61 74 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 ┆h ret ; instat: lda dbank ┆ 0x0d71a0…0d71c0 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 73 74 61 31 0d 0a 09 69 6e 09 64 73 74 61 74 0d 0a 09 ┆ora a jnz insta1 in dstat ┆ 0x0d71c0…0d71e0 72 65 74 0d 0a 69 6e 73 74 61 31 3a 09 69 6e 09 64 73 74 61 74 2b 31 30 68 0d 0a 09 72 65 74 0d ┆ret insta1: in dstat+10h ret ┆ 0x0d71e0…0d7200 0a 3b 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 61 74 61 20 61 72 65 61 73 20 28 6d 75 73 74 20 62 65 20 ┆ ; ; ; ; data areas (must be ┆ 0x0d7200…0d7220 (57, 0, 12) 6f 75 74 09 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 6f 75 74 20 28 63 68 61 72 20 ┆out console character out (char ┆ 0x0d7220…0d7240 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 6c 69 73 74 09 6c 69 73 74 20 6f 75 74 20 28 63 68 61 72 ┆in reg-c) ; list list out (char┆ 0x0d7240…0d7260 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 70 75 6e 63 68 09 70 75 6e 63 68 20 6f 75 74 20 28 63 ┆ in reg-c) ; punch punch out (c┆ 0x0d7260…0d7280 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 72 65 61 64 65 72 09 70 61 70 65 72 20 74 61 ┆har in reg-c) ; reader paper ta┆ 0x0d7280…0d72a0 70 65 20 72 65 61 64 65 72 20 69 6e 20 28 72 65 73 75 6c 74 20 74 6f 20 72 65 67 2d 61 29 0d 0a ┆pe reader in (result to reg-a) ┆ 0x0d72a0…0d72c0 3b 09 68 6f 6d 65 09 6d 6f 76 65 20 74 6f 20 74 72 61 63 6b 20 30 30 0d 0a 3b 0d 0a 3b 09 28 74 ┆; home move to track 00 ; ; (t┆ 0x0d72c0…0d72e0 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 61 6c 6c 73 20 73 65 74 2d 75 70 20 74 68 65 20 69 6f ┆he following calls set-up the io┆ 0x0d72e0…0d7300 20 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 20 66 6f 72 20 74 68 65 0d 0a 3b 09 6d 64 73 2c ┆ parameter block for the ; mds,┆ 0x0d7300…0d7320 20 77 68 69 63 68 20 69 73 20 75 73 65 64 20 74 6f 20 70 65 72 66 6f 72 6d 20 73 75 62 73 65 71 ┆ which is used to perform subseq┆ 0x0d7320…0d7340 75 65 6e 74 20 72 65 61 64 73 20 61 6e 64 20 77 72 69 74 65 73 29 0d 0a 3b 09 73 65 6c 64 73 6b ┆uent reads and writes) ; seldsk┆ 0x0d7340…0d7360 09 73 65 6c 65 63 74 20 64 69 73 6b 20 67 69 76 65 6e 20 62 79 20 72 65 67 2d 63 20 28 30 2c 31 ┆ select disk given by reg-c (0,1┆ 0x0d7360…0d7380 2c 32 2e 2e 2e 29 0d 0a 3b 09 73 65 74 74 72 6b 09 73 65 74 20 74 72 61 63 6b 20 61 64 64 72 65 ┆,2...) ; settrk set track addre┆ 0x0d7380…0d73a0 73 73 20 28 30 2c 2e 2e 2e 37 36 29 20 66 6f 72 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 ┆ss (0,...76) for subsequent read┆ 0x0d73a0…0d73c0 2f 77 72 69 74 65 0d 0a 3b 09 73 65 74 73 65 63 09 73 65 74 20 73 65 63 74 6f 72 20 61 64 64 72 ┆/write ; setsec set sector addr┆ 0x0d73c0…0d73e0 65 73 73 20 28 31 2c 2e 2e 2e 2c 32 36 29 20 66 6f 72 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 ┆ess (1,...,26) for subsequent re┆ 0x0d73e0…0d7400 61 64 2f 77 72 69 74 65 0d 0a 3b 09 73 65 74 64 6d 61 09 73 65 74 20 73 75 62 73 65 71 75 65 6e ┆ad/write ; setdma set subsequen┆ 0x0d7400…0d7420 (57, 0, 13) 61 64 09 64 09 3b 48 4c 3d 64 69 73 6b 20 68 65 61 64 65 72 20 74 61 62 6c 65 20 61 64 64 72 65 ┆ad d ;HL=disk header table addre┆ 0x0d7420…0d7440 73 73 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 73 65 74 74 72 6b 3a 09 3b 73 65 74 20 74 72 61 ┆ss ret ; ; settrk: ;set tra┆ 0x0d7440…0d7460 63 6b 20 61 64 64 72 65 73 73 20 67 69 76 65 6e 20 62 79 20 63 0d 0a 09 6c 78 69 09 68 2c 69 6f ┆ck address given by c lxi h,io┆ 0x0d7460…0d7480 74 0d 0a 09 6d 6f 76 09 6d 2c 63 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 73 65 74 73 65 63 3a 09 3b 73 ┆t mov m,c ret ; setsec: ;s┆ 0x0d7480…0d74a0 65 74 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 67 69 76 65 6e 20 62 79 20 63 0d 0a 09 6c 78 ┆et sector number given by c lx┆ 0x0d74a0…0d74c0 69 09 68 2c 69 6f 73 0d 0a 09 6d 6f 76 09 6d 2c 63 0d 0a 09 72 65 74 0d 0a 73 65 63 74 72 61 6e ┆i h,ios mov m,c ret sectran┆ 0x0d74c0…0d74e0 3a 0d 0a 09 09 3b 74 72 61 6e 73 6c 61 74 65 20 73 65 63 74 6f 72 20 62 63 20 75 73 69 6e 67 20 ┆: ;translate sector bc using ┆ 0x0d74e0…0d7500 74 61 62 6c 65 20 61 74 20 64 65 0d 0a 09 6d 76 69 09 62 2c 30 09 3b 64 6f 75 62 6c 65 20 70 72 ┆table at de mvi b,0 ;double pr┆ 0x0d7500…0d7520 65 63 69 73 69 6f 6e 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 69 6e 20 42 43 0d 0a 09 78 63 ┆ecision sector number in BC xc┆ 0x0d7520…0d7540 68 67 09 09 3b 74 72 61 6e 73 6c 61 74 65 20 74 61 62 6c 65 20 61 64 64 72 65 73 73 20 74 6f 20 ┆hg ;translate table address to ┆ 0x0d7540…0d7560 48 4c 0d 0a 09 64 61 64 09 62 09 3b 74 72 61 6e 73 6c 61 74 65 28 73 65 63 74 6f 72 29 20 61 64 ┆HL dad b ;translate(sector) ad┆ 0x0d7560…0d7580 64 72 65 73 73 0d 0a 09 6d 6f 76 09 61 2c 6d 09 3b 74 72 61 6e 73 6c 61 74 65 64 20 73 65 63 74 ┆dress mov a,m ;translated sect┆ 0x0d7580…0d75a0 6f 72 20 6e 75 6d 62 65 72 20 74 6f 20 41 0d 0a 09 73 74 61 09 69 6f 73 0d 0a 09 6d 6f 76 09 6c ┆or number to A sta ios mov l┆ 0x0d75a0…0d75c0 2c 61 09 3b 72 65 74 75 72 6e 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 69 6e 20 4c 0d 0a 09 ┆,a ;return sector number in L ┆ 0x0d75c0…0d75e0 72 65 74 0d 0a 3b 0d 0a 73 65 74 64 6d 61 3a 09 3b 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 ┆ret ; setdma: ;set dma address┆ 0x0d75e0…0d7600 20 67 69 76 65 6e 20 62 79 20 72 65 67 73 20 62 2c 63 0d 0a 09 6d 6f 76 09 6c 2c 63 0d 0a 09 6d ┆ given by regs b,c mov l,c m┆ 0x0d7600…0d7620 (57, 0, 14) 30 68 09 3b 38 38 20 66 6f 72 20 64 72 69 76 65 20 62 61 6e 6b 20 31 30 0d 0a 09 6d 6f 76 09 61 ┆0h ;88 for drive bank 10 mov a┆ 0x0d7620…0d7640 2c 62 0d 0a 09 6f 75 74 09 69 68 69 67 68 2b 31 30 68 0d 0a 3b 0d 0a 77 61 69 74 30 3a 09 63 61 ┆,b out ihigh+10h ; wait0: ca┆ 0x0d7640…0d7660 6c 6c 09 69 6e 73 74 61 74 09 09 3b 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 0d ┆ll instat ;wait for completion ┆ 0x0d7660…0d7680 0a 09 61 6e 69 09 69 6f 72 64 79 09 09 3b 72 65 61 64 79 3f 0d 0a 09 6a 7a 09 77 61 69 74 30 0d ┆ ani iordy ;ready? jz wait0 ┆ 0x0d7680…0d76a0 0a 3b 0d 0a 3b 09 63 68 65 63 6b 20 69 6f 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 6f 6b 0d 0a 09 63 ┆ ; ; check io completion ok c┆ 0x0d76a0…0d76c0 61 6c 6c 09 69 6e 74 79 70 65 09 09 3b 6d 75 73 74 20 62 65 20 69 6f 20 63 6f 6d 70 6c 65 74 65 ┆all intype ;must be io complete┆ 0x0d76c0…0d76e0 20 28 30 30 29 20 75 6e 6c 69 6e 6b 65 64 0d 0a 3b 09 30 30 20 75 6e 6c 69 6e 6b 65 64 20 69 2f ┆ (00) unlinked ; 00 unlinked i/┆ 0x0d76e0…0d7700 6f 20 63 6f 6d 70 6c 65 74 65 2c 20 20 20 20 30 31 20 6c 69 6e 6b 65 64 20 69 2f 6f 20 63 6f 6d ┆o complete, 01 linked i/o com┆ 0x0d7700…0d7720 70 6c 65 74 65 20 28 6e 6f 74 20 75 73 65 64 29 0d 0a 3b 09 31 30 20 64 69 73 6b 20 73 74 61 74 ┆plete (not used) ; 10 disk stat┆ 0x0d7720…0d7740 75 73 20 63 68 61 6e 67 65 64 20 20 20 20 20 20 20 31 31 20 28 6e 6f 74 20 75 73 65 64 29 0d 0a ┆us changed 11 (not used) ┆ 0x0d7740…0d7760 09 63 70 69 09 31 30 62 09 09 3b 72 65 61 64 79 20 73 74 61 74 75 73 20 63 68 61 6e 67 65 3f 0d ┆ cpi 10b ;ready status change? ┆ 0x0d7760…0d7780 0a 09 6a 7a 09 77 72 65 61 64 79 0d 0a 3b 0d 0a 3b 09 6d 75 73 74 20 62 65 20 30 30 20 69 6e 20 ┆ jz wready ; ; must be 00 in ┆ 0x0d7780…0d77a0 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 77 65 ┆the accumulator ora a jnz we┆ 0x0d77a0…0d77c0 72 72 6f 72 09 09 3b 73 6f 6d 65 20 6f 74 68 65 72 20 63 6f 6e 64 69 74 69 6f 6e 2c 20 72 65 74 ┆rror ;some other condition, ret┆ 0x0d77c0…0d77e0 72 79 0d 0a 3b 0d 0a 3b 09 63 68 65 63 6b 20 69 2f 6f 20 65 72 72 6f 72 20 62 69 74 73 0d 0a 09 ┆ry ; ; check i/o error bits ┆ 0x0d77e0…0d7800 63 61 6c 6c 09 69 6e 62 79 74 65 0d 0a 09 72 61 6c 0d 0a 09 6a 63 09 77 72 65 61 64 79 09 09 3b ┆call inbyte ral jc wready ;┆ 0x0d7800…0d7820 (57, 0, 15) 69 6e 20 72 61 6d 29 0d 0a 64 62 61 6e 6b 3a 09 64 62 09 30 09 3b 64 69 73 6b 20 62 61 6e 6b 20 ┆in ram) dbank: db 0 ;disk bank ┆ 0x0d7820…0d7840 30 30 20 69 66 20 64 72 69 76 65 20 30 2c 31 0d 0a 09 09 09 3b 09 20 20 20 31 30 20 69 66 20 64 ┆00 if drive 0,1 ; 10 if d┆ 0x0d7840…0d7860 72 69 76 65 20 32 2c 33 0d 0a 69 6f 70 62 3a 09 3b 69 6f 20 70 61 72 61 6d 65 74 65 72 20 62 6c ┆rive 2,3 iopb: ;io parameter bl┆ 0x0d7860…0d7880 6f 63 6b 0d 0a 09 64 62 09 38 30 68 09 3b 6e 6f 72 6d 61 6c 20 69 2f 6f 20 6f 70 65 72 61 74 69 ┆ock db 80h ;normal i/o operati┆ 0x0d7880…0d78a0 6f 6e 0d 0a 69 6f 66 3a 09 64 62 09 72 65 61 64 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 2c 20 ┆on iof: db readf ;io function, ┆ 0x0d78a0…0d78c0 69 6e 69 74 69 61 6c 20 72 65 61 64 0d 0a 69 6f 6e 3a 09 64 62 09 31 09 3b 6e 75 6d 62 65 72 20 ┆initial read ion: db 1 ;number ┆ 0x0d78c0…0d78e0 6f 66 20 73 65 63 74 6f 72 73 20 74 6f 20 72 65 61 64 0d 0a 69 6f 74 3a 09 64 62 09 6f 66 66 73 ┆of sectors to read iot: db offs┆ 0x0d78e0…0d7900 65 74 09 3b 74 72 61 63 6b 20 6e 75 6d 62 65 72 0d 0a 69 6f 73 3a 09 64 62 09 31 09 3b 73 65 63 ┆et ;track number ios: db 1 ;sec┆ 0x0d7900…0d7920 74 6f 72 20 6e 75 6d 62 65 72 0d 0a 69 6f 64 3a 09 64 77 09 62 75 66 66 09 3b 69 6f 20 61 64 64 ┆tor number iod: dw buff ;io add┆ 0x0d7920…0d7940 72 65 73 73 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 65 66 69 6e 65 20 72 61 6d 20 61 72 65 61 73 20 66 ┆ress ; ; ; define ram areas f┆ 0x0d7940…0d7960 6f 72 20 62 64 6f 73 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 09 65 6e 64 65 66 0d 0a 09 65 6e 64 0d ┆or bdos operation endef end ┆ 0x0d7960…0d7980 0a 3b 09 4d 44 53 2d 38 30 30 20 49 2f 4f 20 44 72 69 76 65 72 73 20 66 6f 72 20 43 50 2f 4d 20 ┆ ; MDS-800 I/O Drivers for CP/M ┆ 0x0d7980…0d79a0 32 2e 32 0d 0a 3b 09 28 66 6f 75 72 20 64 72 69 76 65 20 73 69 6e 67 6c 65 20 64 65 6e 73 69 74 ┆2.2 ; (four drive single densit┆ 0x0d79a0…0d79c0 79 20 76 65 72 73 69 6f 6e 29 0d 0a 3b 0d 0a 3b 09 56 65 72 73 69 6f 6e 20 32 2e 32 20 46 65 62 ┆y version) ; ; Version 2.2 Feb┆ 0x0d79c0…0d79e0 72 75 61 72 79 2c 20 31 39 38 30 0d 0a 3b 0d 0a 76 65 72 73 09 65 71 75 09 32 32 09 3b 76 65 72 ┆ruary, 1980 ; vers equ 22 ;ver┆ 0x0d79e0…0d7a00 73 69 6f 6e 20 32 2e 32 0d 0a 3b 0d 0a 3b 09 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 39 38 ┆sion 2.2 ; ; Copyright (c) 198┆ 0x0d7a00…0d7a20 (57, 1, 1) 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 28 69 6e 69 74 69 61 6c 6c 79 20 38 30 68 29 0d 0a 3b ┆t dma address (initially 80h) ;┆ 0x0d7a20…0d7a40 0d 0a 3b 09 28 72 65 61 64 20 61 6e 64 20 77 72 69 74 65 20 61 73 73 75 6d 65 20 70 72 65 76 69 ┆ ; (read and write assume previ┆ 0x0d7a40…0d7a60 6f 75 73 20 63 61 6c 6c 73 20 74 6f 20 73 65 74 20 75 70 20 74 68 65 20 69 6f 20 70 61 72 61 6d ┆ous calls to set up the io param┆ 0x0d7a60…0d7a80 65 74 65 72 73 29 0d 0a 3b 09 72 65 61 64 09 72 65 61 64 20 74 72 61 63 6b 2f 73 65 63 74 6f 72 ┆eters) ; read read track/sector┆ 0x0d7a80…0d7aa0 20 74 6f 20 70 72 65 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 3b 09 77 72 69 74 65 09 ┆ to preset dma address ; write ┆ 0x0d7aa0…0d7ac0 77 72 69 74 65 20 74 72 61 63 6b 2f 73 65 63 74 6f 72 20 66 72 6f 6d 20 70 72 65 73 65 74 20 64 ┆write track/sector from preset d┆ 0x0d7ac0…0d7ae0 6d 61 20 61 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b 09 6a 75 6d 70 20 76 65 63 74 6f 72 20 66 6f 72 ┆ma address ; ; jump vector for┆ 0x0d7ae0…0d7b00 20 69 6e 64 69 76 69 75 61 6c 20 72 6f 75 74 69 6e 65 73 0d 0a 09 6a 6d 70 09 62 6f 6f 74 0d 0a ┆ indiviual routines jmp boot ┆ 0x0d7b00…0d7b20 77 62 6f 6f 74 65 3a 09 6a 6d 70 09 77 62 6f 6f 74 0d 0a 09 6a 6d 70 09 63 6f 6e 73 74 0d 0a 09 ┆wboote: jmp wboot jmp const ┆ 0x0d7b20…0d7b40 6a 6d 70 09 63 6f 6e 69 6e 0d 0a 09 6a 6d 70 09 63 6f 6e 6f 75 74 0d 0a 09 6a 6d 70 09 6c 69 73 ┆jmp conin jmp conout jmp lis┆ 0x0d7b40…0d7b60 74 0d 0a 09 6a 6d 70 09 70 75 6e 63 68 0d 0a 09 6a 6d 70 09 72 65 61 64 65 72 0d 0a 09 6a 6d 70 ┆t jmp punch jmp reader jmp┆ 0x0d7b60…0d7b80 09 68 6f 6d 65 0d 0a 09 6a 6d 70 09 73 65 6c 64 73 6b 0d 0a 09 6a 6d 70 09 73 65 74 74 72 6b 0d ┆ home jmp seldsk jmp settrk ┆ 0x0d7b80…0d7ba0 0a 09 6a 6d 70 09 73 65 74 73 65 63 0d 0a 09 6a 6d 70 09 73 65 74 64 6d 61 0d 0a 09 6a 6d 70 09 ┆ jmp setsec jmp setdma jmp ┆ 0x0d7ba0…0d7bc0 72 65 61 64 0d 0a 09 6a 6d 70 09 77 72 69 74 65 0d 0a 09 6a 6d 70 09 6c 69 73 74 73 74 09 3b 6c ┆read jmp write jmp listst ;l┆ 0x0d7bc0…0d7be0 69 73 74 20 73 74 61 74 75 73 0d 0a 09 6a 6d 70 09 73 65 63 74 72 61 6e 0d 0a 3b 0d 0a 09 6d 61 ┆ist status jmp sectran ; ma┆ 0x0d7be0…0d7c00 63 6c 69 62 09 64 69 73 6b 64 65 66 09 3b 6c 6f 61 64 20 74 68 65 20 64 69 73 6b 20 64 65 66 69 ┆clib diskdef ;load the disk defi┆ 0x0d7c00…0d7c20 (57, 1, 2) 3b 6c 69 6e 65 20 66 65 65 64 0d 0a 3b 0d 0a 73 69 67 6e 6f 6e 3a 09 3b 73 69 67 6e 6f 6e 20 6d ┆;line feed ; signon: ;signon m┆ 0x0d7c20…0d7c40 65 73 73 61 67 65 3a 20 78 78 6b 20 63 70 2f 6d 20 76 65 72 73 20 79 2e 79 0d 0a 09 64 62 09 63 ┆essage: xxk cp/m vers y.y db c┆ 0x0d7c40…0d7c60 72 2c 6c 66 2c 6c 66 0d 0a 09 69 66 09 74 65 73 74 0d 0a 09 64 62 09 27 33 32 27 09 3b 33 32 6b ┆r,lf,lf if test db '32' ;32k┆ 0x0d7c60…0d7c80 20 65 78 61 6d 70 6c 65 20 62 69 6f 73 0d 0a 09 65 6e 64 69 66 0d 0a 09 69 66 09 6e 6f 74 20 74 ┆ example bios endif if not t┆ 0x0d7c80…0d7ca0 65 73 74 0d 0a 09 64 62 09 27 30 30 27 09 3b 6d 65 6d 6f 72 79 20 73 69 7a 65 20 66 69 6c 6c 65 ┆est db '00' ;memory size fille┆ 0x0d7ca0…0d7cc0 64 20 62 79 20 72 65 6c 6f 63 61 74 6f 72 0d 0a 09 65 6e 64 69 66 0d 0a 09 64 62 09 27 6b 20 43 ┆d by relocator endif db 'k C┆ 0x0d7cc0…0d7ce0 50 2f 4d 20 76 65 72 73 20 27 0d 0a 09 64 62 09 76 65 72 73 2f 31 30 2b 27 30 27 2c 27 2e 27 2c ┆P/M vers ' db vers/10+'0','.',┆ 0x0d7ce0…0d7d00 76 65 72 73 20 6d 6f 64 20 31 30 2b 27 30 27 0d 0a 09 64 62 09 63 72 2c 6c 66 2c 30 0d 0a 3b 0d ┆vers mod 10+'0' db cr,lf,0 ; ┆ 0x0d7d00…0d7d20 0a 62 6f 6f 74 3a 09 3b 70 72 69 6e 74 20 73 69 67 6e 6f 6e 20 6d 65 73 73 61 67 65 20 61 6e 64 ┆ boot: ;print signon message and┆ 0x0d7d20…0d7d40 20 67 6f 20 74 6f 20 63 63 70 0d 0a 3b 09 28 6e 6f 74 65 3a 20 6d 64 73 20 62 6f 6f 74 20 69 6e ┆ go to ccp ; (note: mds boot in┆ 0x0d7d40…0d7d60 69 74 69 61 6c 69 7a 65 64 20 69 6f 62 79 74 65 20 61 74 20 30 30 30 33 68 29 0d 0a 09 6c 78 69 ┆itialized iobyte at 0003h) lxi┆ 0x0d7d60…0d7d80 09 73 70 2c 62 75 66 66 2b 38 30 68 0d 0a 09 6c 78 69 09 68 2c 73 69 67 6e 6f 6e 0d 0a 09 63 61 ┆ sp,buff+80h lxi h,signon ca┆ 0x0d7d80…0d7da0 6c 6c 09 70 72 6d 73 67 09 3b 70 72 69 6e 74 20 6d 65 73 73 61 67 65 0d 0a 09 78 72 61 09 61 09 ┆ll prmsg ;print message xra a ┆ 0x0d7da0…0d7dc0 3b 63 6c 65 61 72 20 61 63 63 75 6d 75 6c 61 74 6f 72 0d 0a 09 73 74 61 09 63 64 69 73 6b 09 3b ┆;clear accumulator sta cdisk ;┆ 0x0d7dc0…0d7de0 73 65 74 20 69 6e 69 74 69 61 6c 6c 79 20 74 6f 20 64 69 73 6b 20 61 0d 0a 09 6a 6d 70 09 67 6f ┆set initially to disk a jmp go┆ 0x0d7de0…0d7e00 63 70 6d 09 3b 67 6f 20 74 6f 20 63 70 2f 6d 0d 0a 3b 0d 0a 3b 0d 0a 77 62 6f 6f 74 3a 3b 09 6c ┆cpm ;go to cp/m ; ; wboot:; l┆ 0x0d7e00…0d7e20 (57, 1, 3) 72 65 73 65 74 20 6d 6f 6e 69 74 6f 72 20 65 6e 74 72 79 20 70 6f 69 6e 74 73 0d 0a 09 6d 76 69 ┆reset monitor entry points mvi┆ 0x0d7e20…0d7e40 09 61 2c 6a 6d 70 0d 0a 09 73 74 61 09 30 0d 0a 09 6c 78 69 09 68 2c 77 62 6f 6f 74 65 0d 0a 09 ┆ a,jmp sta 0 lxi h,wboote ┆ 0x0d7e40…0d7e60 73 68 6c 64 09 31 09 3b 6a 6d 70 20 77 62 6f 6f 74 20 61 74 20 6c 6f 63 61 74 69 6f 6e 20 30 30 ┆shld 1 ;jmp wboot at location 00┆ 0x0d7e60…0d7e80 0d 0a 09 73 74 61 09 35 0d 0a 09 6c 78 69 09 68 2c 62 64 6f 73 0d 0a 09 73 68 6c 64 09 36 09 3b ┆ sta 5 lxi h,bdos shld 6 ;┆ 0x0d7e80…0d7ea0 6a 6d 70 20 62 64 6f 73 20 61 74 20 6c 6f 63 61 74 69 6f 6e 20 35 0d 0a 09 69 66 09 6e 6f 74 20 ┆jmp bdos at location 5 if not ┆ 0x0d7ea0…0d7ec0 74 65 73 74 0d 0a 09 73 74 61 09 37 2a 38 09 3b 6a 6d 70 20 74 6f 20 6d 6f 6e 38 30 20 28 6d 61 ┆test sta 7*8 ;jmp to mon80 (ma┆ 0x0d7ec0…0d7ee0 79 20 68 61 76 65 20 62 65 65 6e 20 63 68 61 6e 67 65 64 20 62 79 20 64 64 74 29 0d 0a 09 6c 78 ┆y have been changed by ddt) lx┆ 0x0d7ee0…0d7f00 69 09 68 2c 6d 6f 6e 38 30 0d 0a 09 73 68 6c 64 09 37 2a 38 2b 31 0d 0a 09 65 6e 64 69 66 0d 0a ┆i h,mon80 shld 7*8+1 endif ┆ 0x0d7f00…0d7f20 3b 09 6c 65 61 76 65 20 69 6f 62 79 74 65 20 73 65 74 0d 0a 3b 09 70 72 65 76 69 6f 75 73 6c 79 ┆; leave iobyte set ; previously┆ 0x0d7f20…0d7f40 20 73 65 6c 65 63 74 65 64 20 64 69 73 6b 20 77 61 73 20 62 2c 20 73 65 6e 64 20 70 61 72 61 6d ┆ selected disk was b, send param┆ 0x0d7f40…0d7f60 65 74 65 72 20 74 6f 20 63 70 6d 0d 0a 09 6c 64 61 09 63 64 69 73 6b 09 3b 6c 61 73 74 20 6c 6f ┆eter to cpm lda cdisk ;last lo┆ 0x0d7f60…0d7f80 67 67 65 64 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 73 65 6e 64 ┆gged disk number mov c,a ;send┆ 0x0d7f80…0d7fa0 20 74 6f 20 63 63 70 20 74 6f 20 6c 6f 67 20 69 74 20 69 6e 0d 0a 09 65 69 0d 0a 09 6a 6d 70 09 ┆ to ccp to log it in ei jmp ┆ 0x0d7fa0…0d7fc0 63 70 6d 62 0d 0a 3b 0d 0a 3b 09 65 72 72 6f 72 20 63 6f 6e 64 69 74 69 6f 6e 20 6f 63 63 75 72 ┆cpmb ; ; error condition occur┆ 0x0d7fc0…0d7fe0 72 65 64 2c 20 70 72 69 6e 74 20 6d 65 73 73 61 67 65 20 61 6e 64 20 72 65 74 72 79 0d 0a 62 6f ┆red, print message and retry bo┆ 0x0d7fe0…0d8000 6f 74 65 72 72 3a 0d 0a 09 70 6f 70 09 62 09 3b 72 65 63 61 6c 6c 20 63 6f 75 6e 74 73 0d 0a 09 ┆oterr: pop b ;recall counts ┆ 0x0d8000…0d8020 (57, 1, 4) 09 68 2c 69 6f 74 0d 0a 09 6d 6f 76 09 6d 2c 63 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 73 65 74 73 65 ┆ h,iot mov m,c ret ; setse┆ 0x0d8020…0d8040 63 3a 09 3b 73 65 74 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 67 69 76 65 6e 20 62 79 20 63 ┆c: ;set sector number given by c┆ 0x0d8040…0d8060 0d 0a 09 6c 78 69 09 68 2c 69 6f 73 0d 0a 09 6d 6f 76 09 6d 2c 63 0d 0a 09 72 65 74 0d 0a 73 65 ┆ lxi h,ios mov m,c ret se┆ 0x0d8060…0d8080 63 74 72 61 6e 3a 0d 0a 09 09 3b 74 72 61 6e 73 6c 61 74 65 20 73 65 63 74 6f 72 20 62 63 20 75 ┆ctran: ;translate sector bc u┆ 0x0d8080…0d80a0 73 69 6e 67 20 74 61 62 6c 65 20 61 74 20 64 65 0d 0a 09 6d 76 69 09 62 2c 30 09 3b 64 6f 75 62 ┆sing table at de mvi b,0 ;doub┆ 0x0d80a0…0d80c0 6c 65 20 70 72 65 63 69 73 69 6f 6e 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 69 6e 20 42 43 ┆le precision sector number in BC┆ 0x0d80c0…0d80e0 0d 0a 09 78 63 68 67 09 09 3b 74 72 61 6e 73 6c 61 74 65 20 74 61 62 6c 65 20 61 64 64 72 65 73 ┆ xchg ;translate table addres┆ 0x0d80e0…0d8100 73 20 74 6f 20 48 4c 0d 0a 09 64 61 64 09 62 09 3b 74 72 61 6e 73 6c 61 74 65 28 73 65 63 74 6f ┆s to HL dad b ;translate(secto┆ 0x0d8100…0d8120 72 29 20 61 64 64 72 65 73 73 0d 0a 09 6d 6f 76 09 61 2c 6d 09 3b 74 72 61 6e 73 6c 61 74 65 64 ┆r) address mov a,m ;translated┆ 0x0d8120…0d8140 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 74 6f 20 41 0d 0a 09 73 74 61 09 69 6f 73 0d 0a 09 ┆ sector number to A sta ios ┆ 0x0d8140…0d8160 6d 6f 76 09 6c 2c 61 09 3b 72 65 74 75 72 6e 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 69 6e ┆mov l,a ;return sector number in┆ 0x0d8160…0d8180 20 4c 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 73 65 74 64 6d 61 3a 09 3b 73 65 74 20 64 6d 61 20 61 64 ┆ L ret ; setdma: ;set dma ad┆ 0x0d8180…0d81a0 64 72 65 73 73 20 67 69 76 65 6e 20 62 79 20 72 65 67 73 20 62 2c 63 0d 0a 09 6d 6f 76 09 6c 2c ┆dress given by regs b,c mov l,┆ 0x0d81a0…0d81c0 63 0d 0a 09 6d 6f 76 09 68 2c 62 0d 0a 09 73 68 6c 64 09 69 6f 64 0d 0a 09 72 65 74 0d 0a 3b 0d ┆c mov h,b shld iod ret ; ┆ 0x0d81c0…0d81e0 0a 72 65 61 64 3a 09 3b 72 65 61 64 20 6e 65 78 74 20 64 69 73 6b 20 72 65 63 6f 72 64 20 28 61 ┆ read: ;read next disk record (a┆ 0x0d81e0…0d8200 73 73 75 6d 69 6e 67 20 64 69 73 6b 2f 74 72 6b 2f 73 65 63 2f 64 6d 61 20 73 65 74 29 0d 0a 09 ┆ssuming disk/trk/sec/dma set) ┆ 0x0d8200…0d8220 (57, 1, 5) 6e 69 74 69 6f 6e 20 6c 69 62 72 61 72 79 0d 0a 09 64 69 73 6b 73 09 34 09 3b 66 6f 75 72 20 64 ┆nition library disks 4 ;four d┆ 0x0d8220…0d8240 69 73 6b 73 0d 0a 09 64 69 73 6b 64 65 66 09 30 2c 31 2c 32 36 2c 36 2c 31 30 32 34 2c 32 34 33 ┆isks diskdef 0,1,26,6,1024,243┆ 0x0d8240…0d8260 2c 36 34 2c 36 34 2c 6f 66 66 73 65 74 0d 0a 09 64 69 73 6b 64 65 66 09 31 2c 30 0d 0a 09 64 69 ┆,64,64,offset diskdef 1,0 di┆ 0x0d8260…0d8280 73 6b 64 65 66 09 32 2c 30 0d 0a 09 64 69 73 6b 64 65 66 09 33 2c 30 0d 0a 3b 09 65 6e 64 65 66 ┆skdef 2,0 diskdef 3,0 ; endef┆ 0x0d8280…0d82a0 20 6f 63 63 75 72 73 20 61 74 20 65 6e 64 20 6f 66 20 61 73 73 65 6d 62 6c 79 0d 0a 3b 0d 0a 3b ┆ occurs at end of assembly ; ;┆ 0x0d82a0…0d82c0 09 65 6e 64 20 6f 66 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 2d 20 69 6e 64 65 70 65 6e 64 65 6e 74 ┆ end of controller - independent┆ 0x0d82c0…0d82e0 20 63 6f 64 65 2c 20 74 68 65 20 72 65 6d 61 69 6e 69 6e 67 20 73 75 62 72 6f 75 74 69 6e 65 73 ┆ code, the remaining subroutines┆ 0x0d82e0…0d8300 0d 0a 3b 09 61 72 65 20 74 61 69 6c 6f 72 65 64 20 74 6f 20 74 68 65 20 70 61 72 74 69 63 75 6c ┆ ; are tailored to the particul┆ 0x0d8300…0d8320 61 72 20 6f 70 65 72 61 74 69 6e 67 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 2c 20 61 6e 64 20 6d 75 ┆ar operating environment, and mu┆ 0x0d8320…0d8340 73 74 0d 0a 3b 09 62 65 20 61 6c 74 65 72 65 64 20 66 6f 72 20 61 6e 79 20 73 79 73 74 65 6d 20 ┆st ; be altered for any system ┆ 0x0d8340…0d8360 77 68 69 63 68 20 64 69 66 66 65 72 73 20 66 72 6f 6d 20 74 68 65 20 69 6e 74 65 6c 20 6d 64 73 ┆which differs from the intel mds┆ 0x0d8360…0d8380 2e 0d 0a 3b 0d 0a 3b 09 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 64 65 20 61 73 73 75 6d ┆. ; ; the following code assum┆ 0x0d8380…0d83a0 65 73 20 74 68 65 20 6d 64 73 20 6d 6f 6e 69 74 6f 72 20 65 78 69 73 74 73 20 61 74 20 30 66 38 ┆es the mds monitor exists at 0f8┆ 0x0d83a0…0d83c0 30 30 68 0d 0a 3b 09 61 6e 64 20 75 73 65 73 20 74 68 65 20 69 2f 6f 20 73 75 62 72 6f 75 74 69 ┆00h ; and uses the i/o subrouti┆ 0x0d83c0…0d83e0 6e 65 73 20 77 69 74 68 69 6e 20 74 68 65 20 6d 6f 6e 69 74 6f 72 0d 0a 3b 0d 0a 3b 09 77 65 20 ┆nes within the monitor ; ; we ┆ 0x0d83e0…0d8400 61 6c 73 6f 20 61 73 73 75 6d 65 20 74 68 65 20 6d 64 73 20 73 79 73 74 65 6d 20 68 61 73 20 66 ┆also assume the mds system has f┆ 0x0d8400…0d8420 (57, 1, 6) 6f 61 64 65 72 20 6f 6e 20 74 72 61 63 6b 20 30 2c 20 73 65 63 74 6f 72 20 31 2c 20 77 68 69 63 ┆oader on track 0, sector 1, whic┆ 0x0d8420…0d8440 68 20 77 69 6c 6c 20 62 65 20 73 6b 69 70 70 65 64 20 66 6f 72 20 77 61 72 6d 20 0d 0a 3b 09 72 ┆h will be skipped for warm ; r┆ 0x0d8440…0d8460 65 61 64 20 63 70 2f 6d 20 66 72 6f 6d 20 64 69 73 6b 20 2d 20 61 73 73 75 6d 69 6e 67 20 74 68 ┆ead cp/m from disk - assuming th┆ 0x0d8460…0d8480 65 72 65 20 69 73 20 61 20 31 32 38 20 62 79 74 65 20 63 6f 6c 64 20 73 74 61 72 74 0d 0a 3b 09 ┆ere is a 128 byte cold start ; ┆ 0x0d8480…0d84a0 73 74 61 72 74 2e 0d 0a 3b 0d 0a 09 6c 78 69 09 73 70 2c 62 75 66 66 09 3b 75 73 69 6e 67 20 64 ┆start. ; lxi sp,buff ;using d┆ 0x0d84a0…0d84c0 6d 61 20 2d 20 74 68 75 73 20 38 30 20 74 68 72 75 20 66 66 20 61 76 61 69 6c 61 62 6c 65 20 66 ┆ma - thus 80 thru ff available f┆ 0x0d84c0…0d84e0 6f 72 20 73 74 61 63 6b 0d 0a 3b 0d 0a 09 6d 76 69 09 63 2c 72 65 74 72 79 09 3b 6d 61 78 20 72 ┆or stack ; mvi c,retry ;max r┆ 0x0d84e0…0d8500 65 74 72 69 65 73 0d 0a 09 70 75 73 68 09 62 0d 0a 77 62 6f 6f 74 30 3a 09 3b 65 6e 74 65 72 20 ┆etries push b wboot0: ;enter ┆ 0x0d8500…0d8520 68 65 72 65 20 6f 6e 20 65 72 72 6f 72 20 72 65 74 72 69 65 73 0d 0a 09 6c 78 69 09 62 2c 63 70 ┆here on error retries lxi b,cp┆ 0x0d8520…0d8540 6d 62 09 3b 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 74 6f 20 73 74 61 72 74 20 6f 66 20 ┆mb ;set dma address to start of ┆ 0x0d8540…0d8560 64 69 73 6b 20 73 79 73 74 65 6d 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 09 6d 76 69 09 ┆disk system call setdma mvi ┆ 0x0d8560…0d8580 63 2c 30 09 3b 62 6f 6f 74 20 66 72 6f 6d 20 64 72 69 76 65 20 30 0d 0a 09 63 61 6c 6c 09 73 65 ┆c,0 ;boot from drive 0 call se┆ 0x0d8580…0d85a0 6c 64 73 6b 0d 0a 09 6d 76 69 09 63 2c 30 0d 0a 09 63 61 6c 6c 09 73 65 74 74 72 6b 09 3b 73 74 ┆ldsk mvi c,0 call settrk ;st┆ 0x0d85a0…0d85c0 61 72 74 20 77 69 74 68 20 74 72 61 63 6b 20 30 0d 0a 09 6d 76 69 09 63 2c 32 09 3b 73 74 61 72 ┆art with track 0 mvi c,2 ;star┆ 0x0d85c0…0d85e0 74 20 72 65 61 64 69 6e 67 20 73 65 63 74 6f 72 20 32 0d 0a 09 63 61 6c 6c 09 73 65 74 73 65 63 ┆t reading sector 2 call setsec┆ 0x0d85e0…0d8600 0d 0a 3b 0d 0a 3b 09 72 65 61 64 20 73 65 63 74 6f 72 73 2c 20 63 6f 75 6e 74 20 6e 73 65 63 74 ┆ ; ; read sectors, count nsect┆ 0x0d8600…0d8620 (57, 1, 7) 64 63 72 09 63 0d 0a 09 6a 7a 09 62 6f 6f 74 65 72 30 0d 0a 3b 09 74 72 79 20 61 67 61 69 6e 0d ┆dcr c jz booter0 ; try again ┆ 0x0d8620…0d8640 0a 09 70 75 73 68 09 62 0d 0a 09 6a 6d 70 09 77 62 6f 6f 74 30 0d 0a 3b 0d 0a 62 6f 6f 74 65 72 ┆ push b jmp wboot0 ; booter┆ 0x0d8640…0d8660 30 3a 0d 0a 3b 09 6f 74 68 65 72 77 69 73 65 20 74 6f 6f 20 6d 61 6e 79 20 72 65 74 72 69 65 73 ┆0: ; otherwise too many retries┆ 0x0d8660…0d8680 0d 0a 09 6c 78 69 09 68 2c 62 6f 6f 74 6d 73 67 0d 0a 09 63 61 6c 6c 09 70 72 6d 73 67 0d 0a 09 ┆ lxi h,bootmsg call prmsg ┆ 0x0d8680…0d86a0 6a 6d 70 09 72 6d 6f 6e 38 30 09 3b 6d 64 73 20 68 61 72 64 77 61 72 65 20 6d 6f 6e 69 74 6f 72 ┆jmp rmon80 ;mds hardware monitor┆ 0x0d86a0…0d86c0 0d 0a 3b 0d 0a 62 6f 6f 74 6d 73 67 3a 0d 0a 09 64 62 09 27 3f 62 6f 6f 74 27 2c 30 0d 0a 3b 0d ┆ ; bootmsg: db '?boot',0 ; ┆ 0x0d86c0…0d86e0 0a 3b 0d 0a 63 6f 6e 73 74 3a 09 3b 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 20 74 6f 20 72 65 ┆ ; const: ;console status to re┆ 0x0d86e0…0d8700 67 2d 61 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 ┆g-a ; (exactly the same as mds ┆ 0x0d8700…0d8720 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 63 73 74 73 0d 0a 3b 0d 0a 63 6f 6e 69 6e 3a 09 3b 63 6f 6e ┆call) jmp csts ; conin: ;con┆ 0x0d8720…0d8740 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 72 65 67 2d 61 0d 0a 09 63 61 6c 6c 09 63 ┆sole character to reg-a call c┆ 0x0d8740…0d8760 69 0d 0a 09 61 6e 69 09 37 66 68 09 3b 72 65 6d 6f 76 65 20 70 61 72 69 74 79 20 62 69 74 0d 0a ┆i ani 7fh ;remove parity bit ┆ 0x0d8760…0d8780 09 72 65 74 0d 0a 3b 0d 0a 63 6f 6e 6f 75 74 3a 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 ┆ ret ; conout: ;console charac┆ 0x0d8780…0d87a0 74 65 72 20 66 72 6f 6d 20 63 20 74 6f 20 63 6f 6e 73 6f 6c 65 20 6f 75 74 0d 0a 09 6a 6d 70 09 ┆ter from c to console out jmp ┆ 0x0d87a0…0d87c0 63 6f 0d 0a 3b 0d 0a 6c 69 73 74 3a 09 3b 6c 69 73 74 20 64 65 76 69 63 65 20 6f 75 74 0d 0a 3b ┆co ; list: ;list device out ;┆ 0x0d87c0…0d87e0 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d ┆ (exactly the same as mds call) ┆ 0x0d87e0…0d8800 0a 09 6a 6d 70 09 6c 6f 0d 0a 3b 0d 0a 6c 69 73 74 73 74 3a 0d 0a 09 3b 72 65 74 75 72 6e 20 6c ┆ jmp lo ; listst: ;return l┆ 0x0d8800…0d8820 (57, 1, 8) 6d 76 69 09 63 2c 72 65 61 64 66 09 3b 73 65 74 20 74 6f 20 72 65 61 64 20 66 75 6e 63 74 69 6f ┆mvi c,readf ;set to read functio┆ 0x0d8820…0d8840 6e 0d 0a 09 63 61 6c 6c 09 73 65 74 66 75 6e 63 0d 0a 09 63 61 6c 6c 09 77 61 69 74 69 6f 09 3b ┆n call setfunc call waitio ;┆ 0x0d8840…0d8860 70 65 72 66 6f 72 6d 20 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 72 65 74 09 09 3b 6d 61 ┆perform read function ret ;ma┆ 0x0d8860…0d8880 79 20 68 61 76 65 20 65 72 72 6f 72 20 73 65 74 20 69 6e 20 72 65 67 2d 61 0d 0a 3b 0d 0a 3b 0d ┆y have error set in reg-a ; ; ┆ 0x0d8880…0d88a0 0a 77 72 69 74 65 3a 09 3b 64 69 73 6b 20 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6d ┆ write: ;disk write function m┆ 0x0d88a0…0d88c0 76 69 09 63 2c 77 72 69 74 66 0d 0a 09 63 61 6c 6c 09 73 65 74 66 75 6e 63 09 3b 73 65 74 20 74 ┆vi c,writf call setfunc ;set t┆ 0x0d88c0…0d88e0 6f 20 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 77 61 69 74 69 6f 0d 0a ┆o write function call waitio ┆ 0x0d88e0…0d8900 09 72 65 74 09 09 3b 6d 61 79 20 68 61 76 65 20 65 72 72 6f 72 20 73 65 74 0d 0a 3b 0d 0a 3b 0d ┆ ret ;may have error set ; ; ┆ 0x0d8900…0d8920 0a 3b 09 75 74 69 6c 69 74 79 20 73 75 62 72 6f 75 74 69 6e 65 73 0d 0a 70 72 6d 73 67 3a 09 3b ┆ ; utility subroutines prmsg: ;┆ 0x0d8920…0d8940 70 72 69 6e 74 20 6d 65 73 73 61 67 65 20 61 74 20 68 2c 6c 20 74 6f 20 30 0d 0a 09 6d 6f 76 09 ┆print message at h,l to 0 mov ┆ 0x0d8940…0d8960 61 2c 6d 0d 0a 09 6f 72 61 09 61 09 3b 7a 65 72 6f 3f 0d 0a 09 72 7a 0d 0a 3b 09 6d 6f 72 65 20 ┆a,m ora a ;zero? rz ; more ┆ 0x0d8960…0d8980 74 6f 20 70 72 69 6e 74 0d 0a 09 70 75 73 68 09 68 0d 0a 09 6d 6f 76 09 63 2c 61 0d 0a 09 63 61 ┆to print push h mov c,a ca┆ 0x0d8980…0d89a0 6c 6c 09 63 6f 6e 6f 75 74 0d 0a 09 70 6f 70 09 68 0d 0a 09 69 6e 78 09 68 0d 0a 09 6a 6d 70 09 ┆ll conout pop h inx h jmp ┆ 0x0d89a0…0d89c0 70 72 6d 73 67 0d 0a 3b 0d 0a 73 65 74 66 75 6e 63 3a 0d 0a 3b 09 73 65 74 20 66 75 6e 63 74 69 ┆prmsg ; setfunc: ; set functi┆ 0x0d89c0…0d89e0 6f 6e 20 66 6f 72 20 6e 65 78 74 20 69 2f 6f 20 28 63 6f 6d 6d 61 6e 64 20 69 6e 20 72 65 67 2d ┆on for next i/o (command in reg-┆ 0x0d89e0…0d8a00 63 29 0d 0a 09 6c 78 69 09 68 2c 69 6f 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 72 ┆c) lxi h,iof ;io function addr┆ 0x0d8a00…0d8a20 (57, 1, 9) 6f 75 72 20 64 69 73 6b 20 64 72 69 76 65 73 0d 0a 72 65 76 72 74 09 65 71 75 09 30 66 64 68 09 ┆our disk drives revrt equ 0fdh ┆ 0x0d8a20…0d8a40 3b 69 6e 74 65 72 72 75 70 74 20 72 65 76 65 72 74 20 70 6f 72 74 0d 0a 69 6e 74 63 09 65 71 75 ┆;interrupt revert port intc equ┆ 0x0d8a40…0d8a60 09 30 66 63 68 09 3b 69 6e 74 65 72 72 75 70 74 20 6d 61 73 6b 20 70 6f 72 74 0d 0a 69 63 6f 6e ┆ 0fch ;interrupt mask port icon┆ 0x0d8a60…0d8a80 09 65 71 75 09 30 66 33 68 09 3b 69 6e 74 65 72 72 75 70 74 20 63 6f 6e 74 72 6f 6c 20 70 6f 72 ┆ equ 0f3h ;interrupt control por┆ 0x0d8a80…0d8aa0 74 0d 0a 69 6e 74 65 09 65 71 75 09 30 31 31 31 24 31 31 31 30 62 09 3b 65 6e 61 62 6c 65 20 72 ┆t inte equ 0111$1110b ;enable r┆ 0x0d8aa0…0d8ac0 73 74 20 30 28 77 61 72 6d 20 62 6f 6f 74 29 2c 20 72 73 74 20 37 20 28 6d 6f 6e 69 74 6f 72 29 ┆st 0(warm boot), rst 7 (monitor)┆ 0x0d8ac0…0d8ae0 0d 0a 3b 0d 0a 3b 09 6d 64 73 20 6d 6f 6e 69 74 6f 72 20 65 71 75 61 74 65 73 0d 0a 6d 6f 6e 38 ┆ ; ; mds monitor equates mon8┆ 0x0d8ae0…0d8b00 30 09 65 71 75 09 30 66 38 30 30 68 09 3b 6d 64 73 20 6d 6f 6e 69 74 6f 72 0d 0a 72 6d 6f 6e 38 ┆0 equ 0f800h ;mds monitor rmon8┆ 0x0d8b00…0d8b20 30 09 65 71 75 09 30 66 66 30 66 68 09 3b 72 65 73 74 61 72 74 20 6d 6f 6e 38 30 20 28 62 6f 6f ┆0 equ 0ff0fh ;restart mon80 (boo┆ 0x0d8b20…0d8b40 74 20 65 72 72 6f 72 29 0d 0a 63 69 09 65 71 75 09 30 66 38 30 33 68 09 3b 63 6f 6e 73 6f 6c 65 ┆t error) ci equ 0f803h ;console┆ 0x0d8b40…0d8b60 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 72 65 67 2d 61 0d 0a 72 69 09 65 71 75 09 30 66 38 30 ┆ character to reg-a ri equ 0f80┆ 0x0d8b60…0d8b80 36 68 09 3b 72 65 61 64 65 72 20 69 6e 20 74 6f 20 72 65 67 2d 61 0d 0a 63 6f 09 65 71 75 09 30 ┆6h ;reader in to reg-a co equ 0┆ 0x0d8b80…0d8ba0 66 38 30 39 68 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 20 66 72 6f 6d 20 63 20 74 6f 20 63 6f ┆f809h ;console char from c to co┆ 0x0d8ba0…0d8bc0 6e 73 6f 6c 65 20 6f 75 74 0d 0a 70 6f 09 65 71 75 09 30 66 38 30 63 68 09 3b 70 75 6e 63 68 20 ┆nsole out po equ 0f80ch ;punch ┆ 0x0d8bc0…0d8be0 63 68 61 72 20 66 72 6f 6d 20 63 20 74 6f 20 70 75 6e 63 68 20 64 65 76 69 63 65 0d 0a 6c 6f 09 ┆char from c to punch device lo ┆ 0x0d8be0…0d8c00 65 71 75 09 30 66 38 30 66 68 09 3b 6c 69 73 74 20 66 72 6f 6d 20 63 20 74 6f 20 6c 69 73 74 20 ┆equ 0f80fh ;list from c to list ┆ 0x0d8c00…0d8c20 (57, 1, 10) 73 20 74 6f 20 7a 65 72 6f 0d 0a 09 70 6f 70 09 62 09 3b 31 30 2d 65 72 72 6f 72 20 63 6f 75 6e ┆s to zero pop b ;10-error coun┆ 0x0d8c20…0d8c40 74 0d 0a 09 6d 76 69 09 62 2c 6e 73 65 63 74 73 0d 0a 72 64 73 65 63 3a 09 3b 72 65 61 64 20 6e ┆t mvi b,nsects rdsec: ;read n┆ 0x0d8c40…0d8c60 65 78 74 20 73 65 63 74 6f 72 0d 0a 09 70 75 73 68 09 62 09 3b 73 61 76 65 20 73 65 63 74 6f 72 ┆ext sector push b ;save sector┆ 0x0d8c60…0d8c80 20 63 6f 75 6e 74 0d 0a 09 63 61 6c 6c 09 72 65 61 64 0d 0a 09 6a 6e 7a 09 62 6f 6f 74 65 72 72 ┆ count call read jnz booterr┆ 0x0d8c80…0d8ca0 09 3b 72 65 74 72 79 20 69 66 20 65 72 72 6f 72 73 20 6f 63 63 75 72 0d 0a 09 6c 68 6c 64 09 69 ┆ ;retry if errors occur lhld i┆ 0x0d8ca0…0d8cc0 6f 64 09 3b 69 6e 63 72 65 6d 65 6e 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 09 6c 78 69 09 ┆od ;increment dma address lxi ┆ 0x0d8cc0…0d8ce0 64 2c 31 32 38 09 3b 73 65 63 74 6f 72 20 73 69 7a 65 0d 0a 09 64 61 64 09 64 09 3b 69 6e 63 72 ┆d,128 ;sector size dad d ;incr┆ 0x0d8ce0…0d8d00 65 6d 65 6e 74 65 64 20 64 6d 61 20 61 64 64 72 65 73 73 20 69 6e 20 68 6c 0d 0a 09 6d 6f 76 09 ┆emented dma address in hl mov ┆ 0x0d8d00…0d8d20 62 2c 68 0d 0a 09 6d 6f 76 09 63 2c 6c 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 20 74 6f ┆b,h mov c,l ;ready for call to┆ 0x0d8d20…0d8d40 20 73 65 74 20 64 6d 61 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 09 6c 64 61 09 69 6f 73 ┆ set dma call setdma lda ios┆ 0x0d8d40…0d8d60 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 6a 75 73 74 20 72 65 61 64 0d 0a 09 63 70 69 09 ┆ ;sector number just read cpi ┆ 0x0d8d60…0d8d80 32 36 09 3b 72 65 61 64 20 6c 61 73 74 20 73 65 63 74 6f 72 3f 0d 0a 09 6a 63 09 72 64 31 0d 0a ┆26 ;read last sector? jc rd1 ┆ 0x0d8d80…0d8da0 3b 09 6d 75 73 74 20 62 65 20 73 65 63 74 6f 72 20 32 36 2c 20 7a 65 72 6f 20 61 6e 64 20 67 6f ┆; must be sector 26, zero and go┆ 0x0d8da0…0d8dc0 20 74 6f 20 6e 65 78 74 20 74 72 61 63 6b 0d 0a 09 6c 64 61 09 69 6f 74 09 3b 67 65 74 20 74 72 ┆ to next track lda iot ;get tr┆ 0x0d8dc0…0d8de0 61 63 6b 20 74 6f 20 72 65 67 69 73 74 65 72 20 61 0d 0a 09 69 6e 72 09 61 0d 0a 09 6d 6f 76 09 ┆ack to register a inr a mov ┆ 0x0d8de0…0d8e00 63 2c 61 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 0d 0a 09 63 61 6c 6c 09 73 65 74 74 72 ┆c,a ;ready for call call settr┆ 0x0d8e00…0d8e20 (57, 1, 11) 69 73 74 20 73 74 61 74 75 73 0d 0a 09 78 72 61 09 61 0d 0a 09 72 65 74 09 09 3b 61 6c 77 61 79 ┆ist status xra a ret ;alway┆ 0x0d8e20…0d8e40 73 20 6e 6f 74 20 72 65 61 64 79 0d 0a 3b 0d 0a 70 75 6e 63 68 3a 09 3b 70 75 6e 63 68 20 64 65 ┆s not ready ; punch: ;punch de┆ 0x0d8e40…0d8e60 76 69 63 65 20 6f 75 74 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 ┆vice out ; (exactly the same as┆ 0x0d8e60…0d8e80 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 70 6f 0d 0a 3b 0d 0a 72 65 61 64 65 72 3a 09 ┆ mds call) jmp po ; reader: ┆ 0x0d8e80…0d8ea0 3b 72 65 61 64 65 72 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 74 6f 20 72 65 67 2d 61 0d 0a 3b ┆;reader character in to reg-a ;┆ 0x0d8ea0…0d8ec0 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d ┆ (exactly the same as mds call) ┆ 0x0d8ec0…0d8ee0 0a 09 6a 6d 70 09 72 69 0d 0a 3b 0d 0a 68 6f 6d 65 3a 09 3b 6d 6f 76 65 20 74 6f 20 68 6f 6d 65 ┆ jmp ri ; home: ;move to home┆ 0x0d8ee0…0d8f00 20 70 6f 73 69 74 69 6f 6e 0d 0a 3b 09 74 72 65 61 74 20 61 73 20 74 72 61 63 6b 20 30 30 20 73 ┆ position ; treat as track 00 s┆ 0x0d8f00…0d8f20 65 65 6b 0d 0a 09 6d 76 69 09 63 2c 30 0d 0a 09 6a 6d 70 09 73 65 74 74 72 6b 0d 0a 3b 0d 0a 73 ┆eek mvi c,0 jmp settrk ; s┆ 0x0d8f20…0d8f40 65 6c 64 73 6b 3a 09 3b 73 65 6c 65 63 74 20 64 69 73 6b 20 67 69 76 65 6e 20 62 79 20 72 65 67 ┆eldsk: ;select disk given by reg┆ 0x0d8f40…0d8f60 69 73 74 65 72 20 63 0d 0a 09 6c 78 69 09 68 2c 30 30 30 30 68 09 3b 72 65 74 75 72 6e 20 30 30 ┆ister c lxi h,0000h ;return 00┆ 0x0d8f60…0d8f80 30 30 20 69 66 20 65 72 72 6f 72 0d 0a 09 6d 6f 76 09 61 2c 63 0d 0a 09 63 70 69 09 6e 64 69 73 ┆00 if error mov a,c cpi ndis┆ 0x0d8f80…0d8fa0 6b 73 09 3b 74 6f 6f 20 6c 61 72 67 65 3f 0d 0a 09 72 6e 63 09 09 3b 6c 65 61 76 65 20 48 4c 20 ┆ks ;too large? rnc ;leave HL ┆ 0x0d8fa0…0d8fc0 3d 20 30 30 30 30 0d 0a 3b 0d 0a 09 61 6e 69 09 31 30 62 09 3b 30 30 20 30 30 20 66 6f 72 20 64 ┆= 0000 ; ani 10b ;00 00 for d┆ 0x0d8fc0…0d8fe0 72 69 76 65 20 30 2c 31 20 61 6e 64 20 31 30 20 31 30 20 66 6f 72 20 64 72 69 76 65 20 32 2c 33 ┆rive 0,1 and 10 10 for drive 2,3┆ 0x0d8fe0…0d9000 0d 0a 09 73 74 61 09 64 62 61 6e 6b 09 3b 74 6f 20 73 65 6c 65 63 74 20 64 72 69 76 65 20 62 61 ┆ sta dbank ;to select drive ba┆ 0x0d9000…0d9020 (57, 1, 12) 65 73 73 0d 0a 09 6d 6f 76 09 61 2c 6d 09 3b 67 65 74 20 69 74 20 74 6f 20 61 63 63 75 6d 75 6c ┆ess mov a,m ;get it to accumul┆ 0x0d9020…0d9040 61 74 6f 72 20 66 6f 72 20 6d 61 73 6b 69 6e 67 0d 0a 09 61 6e 69 09 31 31 31 31 31 30 30 30 62 ┆ator for masking ani 11111000b┆ 0x0d9040…0d9060 09 3b 72 65 6d 6f 76 65 20 70 72 65 76 69 6f 75 73 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6f 72 61 09 ┆ ;remove previous command ora ┆ 0x0d9060…0d9080 63 09 3b 73 65 74 20 74 6f 20 6e 65 77 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6d 6f 76 09 6d 2c 61 09 ┆c ;set to new command mov m,a ┆ 0x0d9080…0d90a0 3b 72 65 70 6c 61 63 65 64 20 69 6e 20 69 6f 70 62 0d 0a 3b 09 74 68 65 20 6d 64 73 2d 38 30 30 ┆;replaced in iopb ; the mds-800┆ 0x0d90a0…0d90c0 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 72 65 71 75 69 72 65 73 20 64 69 73 6b 20 62 61 6e 6b 20 62 ┆ controller requires disk bank b┆ 0x0d90c0…0d90e0 69 74 20 69 6e 20 73 65 63 74 6f 72 20 62 79 74 65 0d 0a 3b 09 6d 61 73 6b 20 74 68 65 20 62 69 ┆it in sector byte ; mask the bi┆ 0x0d90e0…0d9100 74 20 66 72 6f 6d 20 74 68 65 20 63 75 72 72 65 6e 74 20 69 2f 6f 20 66 75 6e 63 74 69 6f 6e 0d ┆t from the current i/o function ┆ 0x0d9100…0d9120 0a 09 61 6e 69 09 30 30 31 30 30 30 30 30 62 09 3b 6d 61 73 6b 20 74 68 65 20 64 69 73 6b 20 73 ┆ ani 00100000b ;mask the disk s┆ 0x0d9120…0d9140 65 6c 65 63 74 20 62 69 74 0d 0a 09 6c 78 69 09 68 2c 69 6f 73 09 09 3b 61 64 64 72 65 73 73 20 ┆elect bit lxi h,ios ;address ┆ 0x0d9140…0d9160 74 68 65 20 73 65 63 74 6f 72 20 73 65 6c 65 63 74 20 62 79 74 65 0d 0a 09 6f 72 61 09 6d 09 09 ┆the sector select byte ora m ┆ 0x0d9160…0d9180 3b 73 65 6c 65 63 74 20 70 72 6f 70 65 72 20 64 69 73 6b 20 62 61 6e 6b 0d 0a 09 6d 6f 76 09 6d ┆;select proper disk bank mov m┆ 0x0d9180…0d91a0 2c 61 09 09 3b 73 65 74 20 64 69 73 6b 20 73 65 6c 65 63 74 20 62 69 74 20 6f 6e 2f 6f 66 66 0d ┆,a ;set disk select bit on/off ┆ 0x0d91a0…0d91c0 0a 09 72 65 74 0d 0a 3b 0d 0a 77 61 69 74 69 6f 3a 0d 0a 09 6d 76 69 09 63 2c 72 65 74 72 79 09 ┆ ret ; waitio: mvi c,retry ┆ 0x0d91c0…0d91e0 3b 6d 61 78 20 72 65 74 72 69 65 73 20 62 65 66 6f 72 65 20 70 65 72 6d 20 65 72 72 6f 72 0d 0a ┆;max retries before perm error ┆ 0x0d91e0…0d9200 72 65 77 61 69 74 3a 0d 0a 3b 09 73 74 61 72 74 20 74 68 65 20 69 2f 6f 20 66 75 6e 63 74 69 6f ┆rewait: ; start the i/o functio┆ 0x0d9200…0d9220 (57, 1, 13) 64 65 76 69 63 65 0d 0a 63 73 74 73 09 65 71 75 09 30 66 38 31 32 68 09 3b 63 6f 6e 73 6f 6c 65 ┆device csts equ 0f812h ;console┆ 0x0d9220…0d9240 20 73 74 61 74 75 73 20 30 30 2f 66 66 20 74 6f 20 72 65 67 69 73 74 65 72 20 61 0d 0a 3b 0d 0a ┆ status 00/ff to register a ; ┆ 0x0d9240…0d9260 3b 09 64 69 73 6b 20 70 6f 72 74 73 20 61 6e 64 20 63 6f 6d 6d 61 6e 64 73 0d 0a 62 61 73 65 09 ┆; disk ports and commands base ┆ 0x0d9260…0d9280 65 71 75 09 37 38 68 09 3b 62 61 73 65 20 6f 66 20 64 69 73 6b 20 63 6f 6d 6d 61 6e 64 20 69 6f ┆equ 78h ;base of disk command io┆ 0x0d9280…0d92a0 20 70 6f 72 74 73 0d 0a 64 73 74 61 74 09 65 71 75 09 62 61 73 65 09 3b 64 69 73 6b 20 73 74 61 ┆ ports dstat equ base ;disk sta┆ 0x0d92a0…0d92c0 74 75 73 20 28 69 6e 70 75 74 29 0d 0a 72 74 79 70 65 09 65 71 75 09 62 61 73 65 2b 31 09 3b 72 ┆tus (input) rtype equ base+1 ;r┆ 0x0d92c0…0d92e0 65 73 75 6c 74 20 74 79 70 65 20 28 69 6e 70 75 74 29 0d 0a 72 62 79 74 65 09 65 71 75 09 62 61 ┆esult type (input) rbyte equ ba┆ 0x0d92e0…0d9300 73 65 2b 33 09 3b 72 65 73 75 6c 74 20 62 79 74 65 20 28 69 6e 70 75 74 29 0d 0a 3b 0d 0a 69 6c ┆se+3 ;result byte (input) ; il┆ 0x0d9300…0d9320 6f 77 09 65 71 75 09 62 61 73 65 2b 31 09 3b 69 6f 70 62 20 6c 6f 77 20 61 64 64 72 65 73 73 20 ┆ow equ base+1 ;iopb low address ┆ 0x0d9320…0d9340 28 6f 75 74 70 75 74 29 0d 0a 69 68 69 67 68 09 65 71 75 09 62 61 73 65 2b 32 09 3b 69 6f 70 62 ┆(output) ihigh equ base+2 ;iopb┆ 0x0d9340…0d9360 20 68 69 67 68 20 61 64 64 72 65 73 73 20 28 6f 75 74 70 75 74 29 0d 0a 3b 0d 0a 72 65 61 64 66 ┆ high address (output) ; readf┆ 0x0d9360…0d9380 09 65 71 75 09 34 68 09 3b 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 77 72 69 74 66 09 65 71 ┆ equ 4h ;read function writf eq┆ 0x0d9380…0d93a0 75 09 36 68 09 3b 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 72 65 63 61 6c 09 65 71 75 09 ┆u 6h ;write function recal equ ┆ 0x0d93a0…0d93c0 33 68 09 3b 72 65 63 61 6c 69 62 72 61 74 65 20 64 72 69 76 65 0d 0a 69 6f 72 64 79 09 65 71 75 ┆3h ;recalibrate drive iordy equ┆ 0x0d93c0…0d93e0 09 34 68 09 3b 69 2f 6f 20 66 69 6e 69 73 68 65 64 20 6d 61 73 6b 0d 0a 63 72 09 65 71 75 09 30 ┆ 4h ;i/o finished mask cr equ 0┆ 0x0d93e0…0d9400 64 68 09 3b 63 61 72 72 69 61 67 65 20 72 65 74 75 72 6e 0d 0a 6c 66 09 65 71 75 09 30 61 68 09 ┆dh ;carriage return lf equ 0ah ┆ 0x0d9400…0d9420 (57, 1, 14) 6b 0d 0a 09 78 72 61 09 61 09 3b 63 6c 65 61 72 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 0d 0a ┆k xra a ;clear sector number ┆ 0x0d9420…0d9440 72 64 31 3a 09 69 6e 72 09 61 09 3b 74 6f 20 6e 65 78 74 20 73 65 63 74 6f 72 0d 0a 09 6d 6f 76 ┆rd1: inr a ;to next sector mov┆ 0x0d9440…0d9460 09 63 2c 61 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 0d 0a 09 63 61 6c 6c 09 73 65 74 73 ┆ c,a ;ready for call call sets┆ 0x0d9460…0d9480 65 63 0d 0a 09 70 6f 70 09 62 09 3b 72 65 63 61 6c 6c 20 73 65 63 74 6f 72 20 63 6f 75 6e 74 0d ┆ec pop b ;recall sector count ┆ 0x0d9480…0d94a0 0a 09 64 63 72 09 62 09 3b 64 6f 6e 65 3f 0d 0a 09 6a 6e 7a 09 72 64 73 65 63 0d 0a 3b 0d 0a 3b ┆ dcr b ;done? jnz rdsec ; ;┆ 0x0d94a0…0d94c0 09 64 6f 6e 65 20 77 69 74 68 20 74 68 65 20 6c 6f 61 64 2c 20 72 65 73 65 74 20 64 65 66 61 75 ┆ done with the load, reset defau┆ 0x0d94c0…0d94e0 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 0d 0a 67 6f 63 70 6d 3a 09 3b 28 65 6e 74 65 ┆lt buffer address gocpm: ;(ente┆ 0x0d94e0…0d9500 72 20 68 65 72 65 20 66 72 6f 6d 20 63 6f 6c 64 20 73 74 61 72 74 20 62 6f 6f 74 29 0d 0a 3b 09 ┆r here from cold start boot) ; ┆ 0x0d9500…0d9520 65 6e 61 62 6c 65 20 72 73 74 30 20 61 6e 64 20 72 73 74 37 0d 0a 09 64 69 0d 0a 09 6d 76 69 09 ┆enable rst0 and rst7 di mvi ┆ 0x0d9520…0d9540 61 2c 31 32 68 09 3b 69 6e 69 74 69 61 6c 69 7a 65 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6f 75 74 09 ┆a,12h ;initialize command out ┆ 0x0d9540…0d9560 72 65 76 72 74 0d 0a 09 78 72 61 09 61 0d 0a 09 6f 75 74 09 69 6e 74 63 09 3b 63 6c 65 61 72 65 ┆revrt xra a out intc ;cleare┆ 0x0d9560…0d9580 64 0d 0a 09 6d 76 69 09 61 2c 69 6e 74 65 09 3b 72 73 74 30 20 61 6e 64 20 72 73 74 37 20 62 69 ┆d mvi a,inte ;rst0 and rst7 bi┆ 0x0d9580…0d95a0 74 73 20 6f 6e 0d 0a 09 6f 75 74 09 69 6e 74 63 0d 0a 09 78 72 61 09 61 0d 0a 09 6f 75 74 09 69 ┆ts on out intc xra a out i┆ 0x0d95a0…0d95c0 63 6f 6e 09 3b 69 6e 74 65 72 72 75 70 74 20 63 6f 6e 74 72 6f 6c 0d 0a 3b 0d 0a 3b 09 73 65 74 ┆con ;interrupt control ; ; set┆ 0x0d95c0…0d95e0 20 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 20 74 6f 20 38 30 68 0d 0a ┆ default buffer address to 80h ┆ 0x0d95e0…0d9600 09 6c 78 69 09 62 2c 62 75 66 66 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 3b 0d 0a 3b 09 ┆ lxi b,buff call setdma ; ; ┆ 0x0d9600…0d9620 (57, 1, 15) 6e 6b 0d 0a 09 6d 6f 76 09 61 2c 63 09 3b 30 30 2c 20 30 31 2c 20 31 30 2c 20 31 31 0d 0a 09 61 ┆nk mov a,c ;00, 01, 10, 11 a┆ 0x0d9620…0d9640 6e 69 09 31 62 09 3b 6d 64 73 20 68 61 73 20 30 2c 31 20 61 74 20 37 38 2c 20 32 2c 33 20 61 74 ┆ni 1b ;mds has 0,1 at 78, 2,3 at┆ 0x0d9640…0d9660 20 38 38 0d 0a 09 6f 72 61 09 61 09 3b 72 65 73 75 6c 74 20 30 30 3f 0d 0a 09 6a 7a 09 73 65 74 ┆ 88 ora a ;result 00? jz set┆ 0x0d9660…0d9680 64 72 69 76 65 0d 0a 09 6d 76 69 09 61 2c 30 30 31 31 30 30 30 30 62 09 3b 73 65 6c 65 63 74 73 ┆drive mvi a,00110000b ;selects┆ 0x0d9680…0d96a0 20 64 72 69 76 65 20 31 20 69 6e 20 62 61 6e 6b 0d 0a 73 65 74 64 72 69 76 65 3a 0d 0a 09 6d 6f ┆ drive 1 in bank setdrive: mo┆ 0x0d96a0…0d96c0 76 09 62 2c 61 09 3b 73 61 76 65 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6c 78 69 09 68 ┆v b,a ;save the function lxi h┆ 0x0d96c0…0d96e0 2c 69 6f 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6d 6f 76 09 61 2c 6d 0d 0a 09 61 6e ┆,iof ;io function mov a,m an┆ 0x0d96e0…0d9700 69 09 31 31 30 30 31 31 31 31 62 09 3b 6d 61 73 6b 20 6f 75 74 20 64 69 73 6b 20 6e 75 6d 62 65 ┆i 11001111b ;mask out disk numbe┆ 0x0d9700…0d9720 72 0d 0a 09 6f 72 61 09 62 09 3b 6d 61 73 6b 20 69 6e 20 6e 65 77 20 64 69 73 6b 20 6e 75 6d 62 ┆r ora b ;mask in new disk numb┆ 0x0d9720…0d9740 65 72 0d 0a 09 6d 6f 76 09 6d 2c 61 09 3b 73 61 76 65 20 69 74 20 69 6e 20 69 6f 70 62 0d 0a 09 ┆er mov m,a ;save it in iopb ┆ 0x0d9740…0d9760 6d 6f 76 09 6c 2c 63 0d 0a 09 6d 76 69 09 68 2c 30 09 3b 48 4c 3d 64 69 73 6b 20 6e 75 6d 62 65 ┆mov l,c mvi h,0 ;HL=disk numbe┆ 0x0d9760…0d9780 72 0d 0a 09 64 61 64 09 68 09 3b 2a 32 0d 0a 09 64 61 64 09 68 09 3b 2a 34 0d 0a 09 64 61 64 09 ┆r dad h ;*2 dad h ;*4 dad ┆ 0x0d9780…0d97a0 68 09 3b 2a 38 0d 0a 09 64 61 64 09 68 09 3b 2a 31 36 0d 0a 09 6c 78 69 09 64 2c 64 70 62 61 73 ┆h ;*8 dad h ;*16 lxi d,dpbas┆ 0x0d97a0…0d97c0 65 0d 0a 09 64 61 64 09 64 09 3b 48 4c 3d 64 69 73 6b 20 68 65 61 64 65 72 20 74 61 62 6c 65 20 ┆e dad d ;HL=disk header table ┆ 0x0d97c0…0d97e0 61 64 64 72 65 73 73 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 73 65 74 74 72 6b 3a 09 3b 73 65 ┆address ret ; ; settrk: ;se┆ 0x0d97e0…0d9800 74 20 74 72 61 63 6b 20 61 64 64 72 65 73 73 20 67 69 76 65 6e 20 62 79 20 63 0d 0a 09 6c 78 69 ┆t track address given by c lxi┆ 0x0d9800…0d9820 (58, 0, 1) 6e 20 61 6e 64 20 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 0d 0a 09 63 61 6c 6c ┆n and wait for completion call┆ 0x0d9820…0d9840 09 69 6e 74 79 70 65 09 3b 69 6e 20 72 74 79 70 65 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 09 ┆ intype ;in rtype call inbyte ┆ 0x0d9840…0d9860 3b 63 6c 65 61 72 73 20 74 68 65 20 63 6f 6e 74 72 6f 6c 6c 65 72 0d 0a 3b 0d 0a 09 6c 64 61 09 ┆;clears the controller ; lda ┆ 0x0d9860…0d9880 64 62 61 6e 6b 09 09 3b 73 65 74 20 62 61 6e 6b 20 66 6c 61 67 73 0d 0a 09 6f 72 61 09 61 09 09 ┆dbank ;set bank flags ora a ┆ 0x0d9880…0d98a0 3b 7a 65 72 6f 20 69 66 20 64 72 69 76 65 20 30 2c 31 20 61 6e 64 20 6e 7a 20 69 66 20 32 2c 33 ┆;zero if drive 0,1 and nz if 2,3┆ 0x0d98a0…0d98c0 0d 0a 09 6d 76 69 09 61 2c 69 6f 70 62 20 61 6e 64 20 30 66 66 68 09 3b 6c 6f 77 20 61 64 64 72 ┆ mvi a,iopb and 0ffh ;low addr┆ 0x0d98c0…0d98e0 65 73 73 20 66 6f 72 20 69 6f 70 62 0d 0a 09 6d 76 69 09 62 2c 69 6f 70 62 20 73 68 72 20 38 09 ┆ess for iopb mvi b,iopb shr 8 ┆ 0x0d98e0…0d9900 3b 68 69 67 68 20 61 64 64 72 65 73 73 20 66 6f 72 20 69 6f 70 62 0d 0a 09 6a 6e 7a 09 69 6f 64 ┆;high address for iopb jnz iod┆ 0x0d9900…0d9920 72 31 09 3b 64 72 69 76 65 20 62 61 6e 6b 20 31 3f 0d 0a 09 6f 75 74 09 69 6c 6f 77 09 09 3b 6c ┆r1 ;drive bank 1? out ilow ;l┆ 0x0d9920…0d9940 6f 77 20 61 64 64 72 65 73 73 20 74 6f 20 63 6f 6e 74 72 6f 6c 6c 65 72 0d 0a 09 6d 6f 76 09 61 ┆ow address to controller mov a┆ 0x0d9940…0d9960 2c 62 0d 0a 09 6f 75 74 09 69 68 69 67 68 09 3b 68 69 67 68 20 61 64 64 72 65 73 73 0d 0a 09 6a ┆,b out ihigh ;high address j┆ 0x0d9960…0d9980 6d 70 09 77 61 69 74 30 09 09 3b 74 6f 20 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 65 0d ┆mp wait0 ;to wait for complete ┆ 0x0d9980…0d99a0 0a 3b 0d 0a 69 6f 64 72 31 3a 09 3b 64 72 69 76 65 20 62 61 6e 6b 20 31 0d 0a 09 6f 75 74 09 69 ┆ ; iodr1: ;drive bank 1 out i┆ 0x0d99a0…0d99c0 6c 6f 77 2b 31 30 68 09 3b 38 38 20 66 6f 72 20 64 72 69 76 65 20 62 61 6e 6b 20 31 30 0d 0a 09 ┆low+10h ;88 for drive bank 10 ┆ 0x0d99c0…0d99e0 6d 6f 76 09 61 2c 62 0d 0a 09 6f 75 74 09 69 68 69 67 68 2b 31 30 68 0d 0a 3b 0d 0a 77 61 69 74 ┆mov a,b out ihigh+10h ; wait┆ 0x0d99e0…0d9a00 30 3a 09 63 61 6c 6c 09 69 6e 73 74 61 74 09 09 3b 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 ┆0: call instat ;wait for comple┆ 0x0d9a00…0d9a20 (58, 0, 2) 72 72 6f 72 0d 0a 09 6d 76 69 09 61 2c 31 09 3b 65 72 72 6f 72 20 63 6f 64 65 0d 0a 09 72 65 74 ┆rror mvi a,1 ;error code ret┆ 0x0d9a20…0d9a40 0d 0a 3b 0d 0a 3b 09 69 6e 74 79 70 65 2c 20 69 6e 62 79 74 65 2c 20 69 6e 73 74 61 74 20 72 65 ┆ ; ; intype, inbyte, instat re┆ 0x0d9a40…0d9a60 61 64 20 64 72 69 76 65 20 62 61 6e 6b 20 30 30 20 6f 72 20 31 30 0d 0a 69 6e 74 79 70 65 3a 09 ┆ad drive bank 00 or 10 intype: ┆ 0x0d9a60…0d9a80 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 74 79 70 31 09 3b ┆lda dbank ora a jnz intyp1 ;┆ 0x0d9a80…0d9aa0 73 6b 69 70 20 74 6f 20 62 61 6e 6b 20 31 30 0d 0a 09 69 6e 09 72 74 79 70 65 0d 0a 09 72 65 74 ┆skip to bank 10 in rtype ret┆ 0x0d9aa0…0d9ac0 0d 0a 69 6e 74 79 70 31 3a 09 69 6e 09 72 74 79 70 65 2b 31 30 68 09 3b 37 38 20 66 6f 72 20 30 ┆ intyp1: in rtype+10h ;78 for 0┆ 0x0d9ac0…0d9ae0 2c 31 20 20 38 38 20 66 6f 72 20 32 2c 33 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 69 6e 62 79 74 65 3a ┆,1 88 for 2,3 ret ; inbyte:┆ 0x0d9ae0…0d9b00 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 62 79 74 31 0d ┆ lda dbank ora a jnz inbyt1 ┆ 0x0d9b00…0d9b20 0a 09 69 6e 09 72 62 79 74 65 0d 0a 09 72 65 74 0d 0a 69 6e 62 79 74 31 3a 09 69 6e 09 72 62 79 ┆ in rbyte ret inbyt1: in rby┆ 0x0d9b20…0d9b40 74 65 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 69 6e 73 74 61 74 3a 09 6c 64 61 09 64 62 61 ┆te+10h ret ; instat: lda dba┆ 0x0d9b40…0d9b60 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 73 74 61 31 0d 0a 09 69 6e 09 64 73 74 ┆nk ora a jnz insta1 in dst┆ 0x0d9b60…0d9b80 61 74 0d 0a 09 72 65 74 0d 0a 69 6e 73 74 61 31 3a 09 69 6e 09 64 73 74 61 74 2b 31 30 68 0d 0a ┆at ret insta1: in dstat+10h ┆ 0x0d9b80…0d9ba0 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 61 74 61 20 61 72 65 61 73 20 28 6d 75 73 ┆ ret ; ; ; ; data areas (mus┆ 0x0d9ba0…0d9bc0 74 20 62 65 20 69 6e 20 72 61 6d 29 0d 0a 64 62 61 6e 6b 3a 09 64 62 09 30 09 3b 64 69 73 6b 20 ┆t be in ram) dbank: db 0 ;disk ┆ 0x0d9bc0…0d9be0 62 61 6e 6b 20 30 30 20 69 66 20 64 72 69 76 65 20 30 2c 31 0d 0a 09 09 09 3b 09 20 20 20 31 30 ┆bank 00 if drive 0,1 ; 10┆ 0x0d9be0…0d9c00 20 69 66 20 64 72 69 76 65 20 32 2c 33 0d 0a 69 6f 70 62 3a 09 3b 69 6f 20 70 61 72 61 6d 65 74 ┆ if drive 2,3 iopb: ;io paramet┆ 0x0d9c00…0d9c20 (58, 0, 3) 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 72 65 61 64 65 72 09 70 61 70 ┆ut (char in reg-c) ; reader pap┆ 0x0d9c20…0d9c40 65 72 20 74 61 70 65 20 72 65 61 64 65 72 20 69 6e 20 28 72 65 73 75 6c 74 20 74 6f 20 72 65 67 ┆er tape reader in (result to reg┆ 0x0d9c40…0d9c60 2d 61 29 0d 0a 3b 09 68 6f 6d 65 09 6d 6f 76 65 20 74 6f 20 74 72 61 63 6b 20 30 30 0d 0a 3b 0d ┆-a) ; home move to track 00 ; ┆ 0x0d9c60…0d9c80 0a 3b 09 28 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 61 6c 6c 73 20 73 65 74 2d 75 70 20 74 ┆ ; (the following calls set-up t┆ 0x0d9c80…0d9ca0 68 65 20 69 6f 20 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 20 66 6f 72 20 74 68 65 0d 0a 3b ┆he io parameter block for the ;┆ 0x0d9ca0…0d9cc0 09 6d 64 73 2c 20 77 68 69 63 68 20 69 73 20 75 73 65 64 20 74 6f 20 70 65 72 66 6f 72 6d 20 73 ┆ mds, which is used to perform s┆ 0x0d9cc0…0d9ce0 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 73 20 61 6e 64 20 77 72 69 74 65 73 29 0d 0a 3b 09 73 ┆ubsequent reads and writes) ; s┆ 0x0d9ce0…0d9d00 65 6c 64 73 6b 09 73 65 6c 65 63 74 20 64 69 73 6b 20 67 69 76 65 6e 20 62 79 20 72 65 67 2d 63 ┆eldsk select disk given by reg-c┆ 0x0d9d00…0d9d20 20 28 30 2c 31 2c 32 2e 2e 2e 29 0d 0a 3b 09 73 65 74 74 72 6b 09 73 65 74 20 74 72 61 63 6b 20 ┆ (0,1,2...) ; settrk set track ┆ 0x0d9d20…0d9d40 61 64 64 72 65 73 73 20 28 30 2c 2e 2e 2e 37 36 29 20 66 6f 72 20 73 75 62 73 65 71 75 65 6e 74 ┆address (0,...76) for subsequent┆ 0x0d9d40…0d9d60 20 72 65 61 64 2f 77 72 69 74 65 0d 0a 3b 09 73 65 74 73 65 63 09 73 65 74 20 73 65 63 74 6f 72 ┆ read/write ; setsec set sector┆ 0x0d9d60…0d9d80 20 61 64 64 72 65 73 73 20 28 31 2c 2e 2e 2e 2c 32 36 29 20 66 6f 72 20 73 75 62 73 65 71 75 65 ┆ address (1,...,26) for subseque┆ 0x0d9d80…0d9da0 6e 74 20 72 65 61 64 2f 77 72 69 74 65 0d 0a 3b 09 73 65 74 64 6d 61 09 73 65 74 20 73 75 62 73 ┆nt read/write ; setdma set subs┆ 0x0d9da0…0d9dc0 65 71 75 65 6e 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 28 69 6e 69 74 69 61 6c 6c 79 20 38 30 ┆equent dma address (initially 80┆ 0x0d9dc0…0d9de0 68 29 0d 0a 3b 0d 0a 3b 09 28 72 65 61 64 20 61 6e 64 20 77 72 69 74 65 20 61 73 73 75 6d 65 20 ┆h) ; ; (read and write assume ┆ 0x0d9de0…0d9e00 70 72 65 76 69 6f 75 73 20 63 61 6c 6c 73 20 74 6f 20 73 65 74 20 75 70 20 74 68 65 20 69 6f 20 ┆previous calls to set up the io ┆ 0x0d9e00…0d9e20 (58, 0, 4) 62 61 73 65 09 65 71 75 09 37 38 68 09 3b 62 61 73 65 20 6f 66 20 64 69 73 6b 20 63 6f 6d 6d 61 ┆base equ 78h ;base of disk comma┆ 0x0d9e20…0d9e40 6e 64 20 69 6f 20 70 6f 72 74 73 0d 0a 64 73 74 61 74 09 65 71 75 09 62 61 73 65 09 3b 64 69 73 ┆nd io ports dstat equ base ;dis┆ 0x0d9e40…0d9e60 6b 20 73 74 61 74 75 73 20 28 69 6e 70 75 74 29 0d 0a 72 74 79 70 65 09 65 71 75 09 62 61 73 65 ┆k status (input) rtype equ base┆ 0x0d9e60…0d9e80 2b 31 09 3b 72 65 73 75 6c 74 20 74 79 70 65 20 28 69 6e 70 75 74 29 0d 0a 72 62 79 74 65 09 65 ┆+1 ;result type (input) rbyte e┆ 0x0d9e80…0d9ea0 71 75 09 62 61 73 65 2b 33 09 3b 72 65 73 75 6c 74 20 62 79 74 65 20 28 69 6e 70 75 74 29 0d 0a ┆qu base+3 ;result byte (input) ┆ 0x0d9ea0…0d9ec0 3b 0d 0a 69 6c 6f 77 09 65 71 75 09 62 61 73 65 2b 31 09 3b 69 6f 70 62 20 6c 6f 77 20 61 64 64 ┆; ilow equ base+1 ;iopb low add┆ 0x0d9ec0…0d9ee0 72 65 73 73 20 28 6f 75 74 70 75 74 29 0d 0a 69 68 69 67 68 09 65 71 75 09 62 61 73 65 2b 32 09 ┆ress (output) ihigh equ base+2 ┆ 0x0d9ee0…0d9f00 3b 69 6f 70 62 20 68 69 67 68 20 61 64 64 72 65 73 73 20 28 6f 75 74 70 75 74 29 0d 0a 3b 0d 0a ┆;iopb high address (output) ; ┆ 0x0d9f00…0d9f20 72 65 61 64 66 09 65 71 75 09 34 68 09 3b 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 77 72 69 ┆readf equ 4h ;read function wri┆ 0x0d9f20…0d9f40 74 66 09 65 71 75 09 36 68 09 3b 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 72 65 63 61 6c ┆tf equ 6h ;write function recal┆ 0x0d9f40…0d9f60 09 65 71 75 09 33 68 09 3b 72 65 63 61 6c 69 62 72 61 74 65 20 64 72 69 76 65 0d 0a 69 6f 72 64 ┆ equ 3h ;recalibrate drive iord┆ 0x0d9f60…0d9f80 79 09 65 71 75 09 34 68 09 3b 69 2f 6f 20 66 69 6e 69 73 68 65 64 20 6d 61 73 6b 0d 0a 63 72 09 ┆y equ 4h ;i/o finished mask cr ┆ 0x0d9f80…0d9fa0 65 71 75 09 30 64 68 09 3b 63 61 72 72 69 61 67 65 20 72 65 74 75 72 6e 0d 0a 6c 66 09 65 71 75 ┆equ 0dh ;carriage return lf equ┆ 0x0d9fa0…0d9fc0 09 30 61 68 09 3b 6c 69 6e 65 20 66 65 65 64 0d 0a 3b 0d 0a 73 69 67 6e 6f 6e 3a 09 3b 73 69 67 ┆ 0ah ;line feed ; signon: ;sig┆ 0x0d9fc0…0d9fe0 6e 6f 6e 20 6d 65 73 73 61 67 65 3a 20 78 78 6b 20 63 70 2f 6d 20 76 65 72 73 20 79 2e 79 0d 0a ┆non message: xxk cp/m vers y.y ┆ 0x0d9fe0…0da000 09 64 62 09 63 72 2c 6c 66 2c 6c 66 0d 0a 09 69 66 09 74 65 73 74 0d 0a 09 64 62 09 27 33 32 27 ┆ db cr,lf,lf if test db '32'┆ 0x0da000…0da020 (58, 0, 5) 74 69 6f 6e 0d 0a 09 61 6e 69 09 69 6f 72 64 79 09 09 3b 72 65 61 64 79 3f 0d 0a 09 6a 7a 09 77 ┆tion ani iordy ;ready? jz w┆ 0x0da020…0da040 61 69 74 30 0d 0a 3b 0d 0a 3b 09 63 68 65 63 6b 20 69 6f 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 6f ┆ait0 ; ; check io completion o┆ 0x0da040…0da060 6b 0d 0a 09 63 61 6c 6c 09 69 6e 74 79 70 65 09 09 3b 6d 75 73 74 20 62 65 20 69 6f 20 63 6f 6d ┆k call intype ;must be io com┆ 0x0da060…0da080 70 6c 65 74 65 20 28 30 30 29 20 75 6e 6c 69 6e 6b 65 64 0d 0a 3b 09 30 30 20 75 6e 6c 69 6e 6b ┆plete (00) unlinked ; 00 unlink┆ 0x0da080…0da0a0 65 64 20 69 2f 6f 20 63 6f 6d 70 6c 65 74 65 2c 20 20 20 20 30 31 20 6c 69 6e 6b 65 64 20 69 2f ┆ed i/o complete, 01 linked i/┆ 0x0da0a0…0da0c0 6f 20 63 6f 6d 70 6c 65 74 65 20 28 6e 6f 74 20 75 73 65 64 29 0d 0a 3b 09 31 30 20 64 69 73 6b ┆o complete (not used) ; 10 disk┆ 0x0da0c0…0da0e0 20 73 74 61 74 75 73 20 63 68 61 6e 67 65 64 20 20 20 20 20 20 20 31 31 20 28 6e 6f 74 20 75 73 ┆ status changed 11 (not us┆ 0x0da0e0…0da100 65 64 29 0d 0a 09 63 70 69 09 31 30 62 09 09 3b 72 65 61 64 79 20 73 74 61 74 75 73 20 63 68 61 ┆ed) cpi 10b ;ready status cha┆ 0x0da100…0da120 6e 67 65 3f 0d 0a 09 6a 7a 09 77 72 65 61 64 79 0d 0a 3b 0d 0a 3b 09 6d 75 73 74 20 62 65 20 30 ┆nge? jz wready ; ; must be 0┆ 0x0da120…0da140 30 20 69 6e 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a ┆0 in the accumulator ora a j┆ 0x0da140…0da160 6e 7a 09 77 65 72 72 6f 72 09 09 3b 73 6f 6d 65 20 6f 74 68 65 72 20 63 6f 6e 64 69 74 69 6f 6e ┆nz werror ;some other condition┆ 0x0da160…0da180 2c 20 72 65 74 72 79 0d 0a 3b 0d 0a 3b 09 63 68 65 63 6b 20 69 2f 6f 20 65 72 72 6f 72 20 62 69 ┆, retry ; ; check i/o error bi┆ 0x0da180…0da1a0 74 73 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 0d 0a 09 72 61 6c 0d 0a 09 6a 63 09 77 72 65 61 ┆ts call inbyte ral jc wrea┆ 0x0da1a0…0da1c0 64 79 09 09 3b 75 6e 69 74 20 6e 6f 74 20 72 65 61 64 79 0d 0a 09 72 61 72 0d 0a 09 61 6e 69 09 ┆dy ;unit not ready rar ani ┆ 0x0da1c0…0da1e0 31 31 31 31 31 31 31 30 62 09 3b 61 6e 79 20 6f 74 68 65 72 20 65 72 72 6f 72 73 3f 20 20 28 64 ┆11111110b ;any other errors? (d┆ 0x0da1e0…0da200 65 6c 65 74 65 64 20 64 61 74 61 20 6f 6b 29 0d 0a 09 6a 6e 7a 09 77 65 72 72 6f 72 0d 0a 3b 0d ┆eleted data ok) jnz werror ; ┆ 0x0da200…0da220 (58, 0, 6) 65 72 20 62 6c 6f 63 6b 0d 0a 09 64 62 09 38 30 68 09 3b 6e 6f 72 6d 61 6c 20 69 2f 6f 20 6f 70 ┆er block db 80h ;normal i/o op┆ 0x0da220…0da240 65 72 61 74 69 6f 6e 0d 0a 69 6f 66 3a 09 64 62 09 72 65 61 64 66 09 3b 69 6f 20 66 75 6e 63 74 ┆eration iof: db readf ;io funct┆ 0x0da240…0da260 69 6f 6e 2c 20 69 6e 69 74 69 61 6c 20 72 65 61 64 0d 0a 69 6f 6e 3a 09 64 62 09 31 09 3b 6e 75 ┆ion, initial read ion: db 1 ;nu┆ 0x0da260…0da280 6d 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 20 74 6f 20 72 65 61 64 0d 0a 69 6f 74 3a 09 64 62 ┆mber of sectors to read iot: db┆ 0x0da280…0da2a0 09 6f 66 66 73 65 74 09 3b 74 72 61 63 6b 20 6e 75 6d 62 65 72 0d 0a 69 6f 73 3a 09 64 62 09 31 ┆ offset ;track number ios: db 1┆ 0x0da2a0…0da2c0 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 0d 0a 69 6f 64 3a 09 64 77 09 62 75 66 66 09 3b 69 ┆ ;sector number iod: dw buff ;i┆ 0x0da2c0…0da2e0 6f 20 61 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 65 66 69 6e 65 20 72 61 6d 20 61 72 ┆o address ; ; ; define ram ar┆ 0x0da2e0…0da300 65 61 73 20 66 6f 72 20 62 64 6f 73 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 09 65 6e 64 65 66 0d 0a ┆eas for bdos operation endef ┆ 0x0da300…0da320 09 65 6e 64 0d 0a 3b 09 4d 44 53 2d 38 30 30 20 49 2f 4f 20 44 72 69 76 65 72 73 20 66 6f 72 20 ┆ end ; MDS-800 I/O Drivers for ┆ 0x0da320…0da340 43 50 2f 4d 20 32 2e 32 0d 0a 3b 09 28 66 6f 75 72 20 64 72 69 76 65 20 73 69 6e 67 6c 65 20 64 ┆CP/M 2.2 ; (four drive single d┆ 0x0da340…0da360 65 6e 73 69 74 79 20 76 65 72 73 69 6f 6e 29 0d 0a 3b 0d 0a 3b 09 56 65 72 73 69 6f 6e 20 32 2e ┆ensity version) ; ; Version 2.┆ 0x0da360…0da380 32 20 46 65 62 72 75 61 72 79 2c 20 31 39 38 30 0d 0a 3b 0d 0a 76 65 72 73 09 65 71 75 09 32 32 ┆2 February, 1980 ; vers equ 22┆ 0x0da380…0da3a0 09 3b 76 65 72 73 69 6f 6e 20 32 2e 32 0d 0a 3b 0d 0a 3b 09 43 6f 70 79 72 69 67 68 74 20 28 63 ┆ ;version 2.2 ; ; Copyright (c┆ 0x0da3a0…0da3c0 29 20 31 39 38 30 0d 0a 3b 09 44 69 67 69 74 61 6c 20 52 65 73 65 61 72 63 68 0d 0a 3b 09 42 6f ┆) 1980 ; Digital Research ; Bo┆ 0x0da3c0…0da3e0 78 20 35 37 39 2c 20 50 61 63 69 66 69 63 20 47 72 6f 76 65 0d 0a 3b 09 43 61 6c 69 66 6f 72 6e ┆x 579, Pacific Grove ; Californ┆ 0x0da3e0…0da400 69 61 2c 20 39 33 39 35 30 0d 0a 3b 0d 0a 3b 0d 0a 74 72 75 65 09 65 71 75 09 30 66 66 66 66 68 ┆ia, 93950 ; ; true equ 0ffffh┆ 0x0da400…0da420 (58, 0, 7) 70 61 72 61 6d 65 74 65 72 73 29 0d 0a 3b 09 72 65 61 64 09 72 65 61 64 20 74 72 61 63 6b 2f 73 ┆parameters) ; read read track/s┆ 0x0da420…0da440 65 63 74 6f 72 20 74 6f 20 70 72 65 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 3b 09 77 ┆ector to preset dma address ; w┆ 0x0da440…0da460 72 69 74 65 09 77 72 69 74 65 20 74 72 61 63 6b 2f 73 65 63 74 6f 72 20 66 72 6f 6d 20 70 72 65 ┆rite write track/sector from pre┆ 0x0da460…0da480 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b 09 6a 75 6d 70 20 76 65 63 74 6f ┆set dma address ; ; jump vecto┆ 0x0da480…0da4a0 72 20 66 6f 72 20 69 6e 64 69 76 69 75 61 6c 20 72 6f 75 74 69 6e 65 73 0d 0a 09 6a 6d 70 09 62 ┆r for indiviual routines jmp b┆ 0x0da4a0…0da4c0 6f 6f 74 0d 0a 77 62 6f 6f 74 65 3a 09 6a 6d 70 09 77 62 6f 6f 74 0d 0a 09 6a 6d 70 09 63 6f 6e ┆oot wboote: jmp wboot jmp con┆ 0x0da4c0…0da4e0 73 74 0d 0a 09 6a 6d 70 09 63 6f 6e 69 6e 0d 0a 09 6a 6d 70 09 63 6f 6e 6f 75 74 0d 0a 09 6a 6d ┆st jmp conin jmp conout jm┆ 0x0da4e0…0da500 70 09 6c 69 73 74 0d 0a 09 6a 6d 70 09 70 75 6e 63 68 0d 0a 09 6a 6d 70 09 72 65 61 64 65 72 0d ┆p list jmp punch jmp reader ┆ 0x0da500…0da520 0a 09 6a 6d 70 09 68 6f 6d 65 0d 0a 09 6a 6d 70 09 73 65 6c 64 73 6b 0d 0a 09 6a 6d 70 09 73 65 ┆ jmp home jmp seldsk jmp se┆ 0x0da520…0da540 74 74 72 6b 0d 0a 09 6a 6d 70 09 73 65 74 73 65 63 0d 0a 09 6a 6d 70 09 73 65 74 64 6d 61 0d 0a ┆ttrk jmp setsec jmp setdma ┆ 0x0da540…0da560 09 6a 6d 70 09 72 65 61 64 0d 0a 09 6a 6d 70 09 77 72 69 74 65 0d 0a 09 6a 6d 70 09 6c 69 73 74 ┆ jmp read jmp write jmp list┆ 0x0da560…0da580 73 74 09 3b 6c 69 73 74 20 73 74 61 74 75 73 0d 0a 09 6a 6d 70 09 73 65 63 74 72 61 6e 0d 0a 3b ┆st ;list status jmp sectran ;┆ 0x0da580…0da5a0 0d 0a 09 6d 61 63 6c 69 62 09 64 69 73 6b 64 65 66 09 3b 6c 6f 61 64 20 74 68 65 20 64 69 73 6b ┆ maclib diskdef ;load the disk┆ 0x0da5a0…0da5c0 20 64 65 66 69 6e 69 74 69 6f 6e 20 6c 69 62 72 61 72 79 0d 0a 09 64 69 73 6b 73 09 34 09 3b 66 ┆ definition library disks 4 ;f┆ 0x0da5c0…0da5e0 6f 75 72 20 64 69 73 6b 73 0d 0a 09 64 69 73 6b 64 65 66 09 30 2c 31 2c 32 36 2c 36 2c 31 30 32 ┆our disks diskdef 0,1,26,6,102┆ 0x0da5e0…0da600 34 2c 32 34 33 2c 36 34 2c 36 34 2c 6f 66 66 73 65 74 0d 0a 09 64 69 73 6b 64 65 66 09 31 2c 30 ┆4,243,64,64,offset diskdef 1,0┆ 0x0da600…0da620 (58, 0, 8) 09 3b 33 32 6b 20 65 78 61 6d 70 6c 65 20 62 69 6f 73 0d 0a 09 65 6e 64 69 66 0d 0a 09 69 66 09 ┆ ;32k example bios endif if ┆ 0x0da620…0da640 6e 6f 74 20 74 65 73 74 0d 0a 09 64 62 09 27 30 30 27 09 3b 6d 65 6d 6f 72 79 20 73 69 7a 65 20 ┆not test db '00' ;memory size ┆ 0x0da640…0da660 66 69 6c 6c 65 64 20 62 79 20 72 65 6c 6f 63 61 74 6f 72 0d 0a 09 65 6e 64 69 66 0d 0a 09 64 62 ┆filled by relocator endif db┆ 0x0da660…0da680 09 27 6b 20 43 50 2f 4d 20 76 65 72 73 20 27 0d 0a 09 64 62 09 76 65 72 73 2f 31 30 2b 27 30 27 ┆ 'k CP/M vers ' db vers/10+'0'┆ 0x0da680…0da6a0 2c 27 2e 27 2c 76 65 72 73 20 6d 6f 64 20 31 30 2b 27 30 27 0d 0a 09 64 62 09 63 72 2c 6c 66 2c ┆,'.',vers mod 10+'0' db cr,lf,┆ 0x0da6a0…0da6c0 30 0d 0a 3b 0d 0a 62 6f 6f 74 3a 09 3b 70 72 69 6e 74 20 73 69 67 6e 6f 6e 20 6d 65 73 73 61 67 ┆0 ; boot: ;print signon messag┆ 0x0da6c0…0da6e0 65 20 61 6e 64 20 67 6f 20 74 6f 20 63 63 70 0d 0a 3b 09 28 6e 6f 74 65 3a 20 6d 64 73 20 62 6f ┆e and go to ccp ; (note: mds bo┆ 0x0da6e0…0da700 6f 74 20 69 6e 69 74 69 61 6c 69 7a 65 64 20 69 6f 62 79 74 65 20 61 74 20 30 30 30 33 68 29 0d ┆ot initialized iobyte at 0003h) ┆ 0x0da700…0da720 0a 09 6c 78 69 09 73 70 2c 62 75 66 66 2b 38 30 68 0d 0a 09 6c 78 69 09 68 2c 73 69 67 6e 6f 6e ┆ lxi sp,buff+80h lxi h,signon┆ 0x0da720…0da740 0d 0a 09 63 61 6c 6c 09 70 72 6d 73 67 09 3b 70 72 69 6e 74 20 6d 65 73 73 61 67 65 0d 0a 09 78 ┆ call prmsg ;print message x┆ 0x0da740…0da760 72 61 09 61 09 3b 63 6c 65 61 72 20 61 63 63 75 6d 75 6c 61 74 6f 72 0d 0a 09 73 74 61 09 63 64 ┆ra a ;clear accumulator sta cd┆ 0x0da760…0da780 69 73 6b 09 3b 73 65 74 20 69 6e 69 74 69 61 6c 6c 79 20 74 6f 20 64 69 73 6b 20 61 0d 0a 09 6a ┆isk ;set initially to disk a j┆ 0x0da780…0da7a0 6d 70 09 67 6f 63 70 6d 09 3b 67 6f 20 74 6f 20 63 70 2f 6d 0d 0a 3b 0d 0a 3b 0d 0a 77 62 6f 6f ┆mp gocpm ;go to cp/m ; ; wboo┆ 0x0da7a0…0da7c0 74 3a 3b 09 6c 6f 61 64 65 72 20 6f 6e 20 74 72 61 63 6b 20 30 2c 20 73 65 63 74 6f 72 20 31 2c ┆t:; loader on track 0, sector 1,┆ 0x0da7c0…0da7e0 20 77 68 69 63 68 20 77 69 6c 6c 20 62 65 20 73 6b 69 70 70 65 64 20 66 6f 72 20 77 61 72 6d 20 ┆ which will be skipped for warm ┆ 0x0da7e0…0da800 0d 0a 3b 09 72 65 61 64 20 63 70 2f 6d 20 66 72 6f 6d 20 64 69 73 6b 20 2d 20 61 73 73 75 6d 69 ┆ ; read cp/m from disk - assumi┆ 0x0da800…0da820 (58, 0, 9) 0a 3b 09 72 65 61 64 20 6f 72 20 77 72 69 74 65 20 69 73 20 6f 6b 2c 20 61 63 63 75 6d 75 6c 61 ┆ ; read or write is ok, accumula┆ 0x0da820…0da840 74 6f 72 20 63 6f 6e 74 61 69 6e 73 20 7a 65 72 6f 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 77 72 65 61 ┆tor contains zero ret ; wrea┆ 0x0da840…0da860 64 79 3a 09 3b 6e 6f 74 20 72 65 61 64 79 2c 20 74 72 65 61 74 20 61 73 20 65 72 72 6f 72 20 66 ┆dy: ;not ready, treat as error f┆ 0x0da860…0da880 6f 72 20 6e 6f 77 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 09 09 3b 63 6c 65 61 72 20 72 65 73 ┆or now call inbyte ;clear res┆ 0x0da880…0da8a0 75 6c 74 20 62 79 74 65 0d 0a 09 6a 6d 70 09 74 72 79 63 6f 75 6e 74 0d 0a 3b 0d 0a 77 65 72 72 ┆ult byte jmp trycount ; werr┆ 0x0da8a0…0da8c0 6f 72 3a 09 3b 72 65 74 75 72 6e 20 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e ┆or: ;return hardware malfunction┆ 0x0da8c0…0da8e0 20 28 63 72 63 2c 20 74 72 61 63 6b 2c 20 73 65 65 6b 2c 20 65 74 63 2e 29 0d 0a 3b 09 74 68 65 ┆ (crc, track, seek, etc.) ; the┆ 0x0da8e0…0da900 20 6d 64 73 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 68 61 73 20 72 65 74 75 72 6e 65 64 20 61 20 62 ┆ mds controller has returned a b┆ 0x0da900…0da920 69 74 20 69 6e 20 65 61 63 68 20 70 6f 73 69 74 69 6f 6e 0d 0a 3b 09 6f 66 20 74 68 65 20 61 63 ┆it in each position ; of the ac┆ 0x0da920…0da940 63 75 6d 75 6c 61 74 6f 72 2c 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 74 68 65 20 ┆cumulator, corresponding to the ┆ 0x0da940…0da960 63 6f 6e 64 69 74 69 6f 6e 73 3a 0d 0a 3b 09 30 09 2d 20 64 65 6c 65 74 65 64 20 64 61 74 61 20 ┆conditions: ; 0 - deleted data ┆ 0x0da960…0da980 28 61 63 63 65 70 74 65 64 20 61 73 20 6f 6b 20 61 62 6f 76 65 29 0d 0a 3b 09 31 09 2d 20 63 72 ┆(accepted as ok above) ; 1 - cr┆ 0x0da980…0da9a0 63 20 65 72 72 6f 72 0d 0a 3b 09 32 09 2d 20 73 65 65 6b 20 65 72 72 6f 72 0d 0a 3b 09 33 09 2d ┆c error ; 2 - seek error ; 3 -┆ 0x0da9a0…0da9c0 20 61 64 64 72 65 73 73 20 65 72 72 6f 72 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 ┆ address error (hardware malfunc┆ 0x0da9c0…0da9e0 74 69 6f 6e 29 0d 0a 3b 09 34 09 2d 20 64 61 74 61 20 6f 76 65 72 2f 75 6e 64 65 72 20 66 6c 6f ┆tion) ; 4 - data over/under flo┆ 0x0da9e0…0daa00 77 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 35 09 2d 20 ┆w (hardware malfunction) ; 5 - ┆ 0x0daa00…0daa20 (58, 0, 10) 09 3b 76 61 6c 75 65 20 6f 66 20 22 74 72 75 65 22 0d 0a 66 61 6c 73 65 09 65 71 75 09 6e 6f 74 ┆ ;value of "true" false equ not┆ 0x0daa20…0daa40 20 74 72 75 65 09 3b 22 66 61 6c 73 65 22 0d 0a 74 65 73 74 09 65 71 75 09 66 61 6c 73 65 09 3b ┆ true ;"false" test equ false ;┆ 0x0daa40…0daa60 74 72 75 65 20 69 66 20 74 65 73 74 20 62 69 6f 73 0d 0a 3b 0d 0a 09 69 66 09 74 65 73 74 0d 0a ┆true if test bios ; if test ┆ 0x0daa60…0daa80 62 69 61 73 09 65 71 75 09 30 33 34 30 30 68 09 3b 62 61 73 65 20 6f 66 20 43 43 50 20 69 6e 20 ┆bias equ 03400h ;base of CCP in ┆ 0x0daa80…0daaa0 74 65 73 74 20 73 79 73 74 65 6d 0d 0a 09 65 6e 64 69 66 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 ┆test system endif if not tes┆ 0x0daaa0…0daac0 74 0d 0a 62 69 61 73 09 65 71 75 09 30 30 30 30 68 09 3b 67 65 6e 65 72 61 74 65 20 72 65 6c 6f ┆t bias equ 0000h ;generate relo┆ 0x0daac0…0daae0 63 61 74 61 62 6c 65 20 63 70 2f 6d 20 73 79 73 74 65 6d 0d 0a 09 65 6e 64 69 66 0d 0a 3b 0d 0a ┆catable cp/m system endif ; ┆ 0x0daae0…0dab00 70 61 74 63 68 09 65 71 75 09 31 36 30 30 68 0d 0a 3b 0d 0a 09 6f 72 67 09 70 61 74 63 68 0d 0a ┆patch equ 1600h ; org patch ┆ 0x0dab00…0dab20 63 70 6d 62 09 65 71 75 09 24 2d 70 61 74 63 68 09 3b 62 61 73 65 20 6f 66 20 63 70 6d 20 63 6f ┆cpmb equ $-patch ;base of cpm co┆ 0x0dab20…0dab40 6e 73 6f 6c 65 20 70 72 6f 63 65 73 73 6f 72 0d 0a 62 64 6f 73 09 65 71 75 09 38 30 36 68 2b 63 ┆nsole processor bdos equ 806h+c┆ 0x0dab40…0dab60 70 6d 62 09 3b 62 61 73 69 63 20 64 6f 73 20 28 72 65 73 69 64 65 6e 74 20 70 6f 72 74 69 6f 6e ┆pmb ;basic dos (resident portion┆ 0x0dab60…0dab80 29 0d 0a 63 70 6d 6c 09 65 71 75 09 24 2d 63 70 6d 62 09 3b 6c 65 6e 67 74 68 20 28 69 6e 20 62 ┆) cpml equ $-cpmb ;length (in b┆ 0x0dab80…0daba0 79 74 65 73 29 20 6f 66 20 63 70 6d 20 73 79 73 74 65 6d 0d 0a 6e 73 65 63 74 73 09 65 71 75 09 ┆ytes) of cpm system nsects equ ┆ 0x0daba0…0dabc0 63 70 6d 6c 2f 31 32 38 09 3b 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 20 74 6f 20 6c ┆cpml/128 ;number of sectors to l┆ 0x0dabc0…0dabe0 6f 61 64 0d 0a 6f 66 66 73 65 74 09 65 71 75 09 32 09 3b 6e 75 6d 62 65 72 20 6f 66 20 64 69 73 ┆oad offset equ 2 ;number of dis┆ 0x0dabe0…0dac00 6b 20 74 72 61 63 6b 73 20 75 73 65 64 20 62 79 20 63 70 2f 6d 0d 0a 63 64 69 73 6b 09 65 71 75 ┆k tracks used by cp/m cdisk equ┆ 0x0dac00…0dac20 (58, 0, 11) 0d 0a 09 64 69 73 6b 64 65 66 09 32 2c 30 0d 0a 09 64 69 73 6b 64 65 66 09 33 2c 30 0d 0a 3b 09 ┆ diskdef 2,0 diskdef 3,0 ; ┆ 0x0dac20…0dac40 65 6e 64 65 66 20 6f 63 63 75 72 73 20 61 74 20 65 6e 64 20 6f 66 20 61 73 73 65 6d 62 6c 79 0d ┆endef occurs at end of assembly ┆ 0x0dac40…0dac60 0a 3b 0d 0a 3b 09 65 6e 64 20 6f 66 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 2d 20 69 6e 64 65 70 65 ┆ ; ; end of controller - indepe┆ 0x0dac60…0dac80 6e 64 65 6e 74 20 63 6f 64 65 2c 20 74 68 65 20 72 65 6d 61 69 6e 69 6e 67 20 73 75 62 72 6f 75 ┆ndent code, the remaining subrou┆ 0x0dac80…0daca0 74 69 6e 65 73 0d 0a 3b 09 61 72 65 20 74 61 69 6c 6f 72 65 64 20 74 6f 20 74 68 65 20 70 61 72 ┆tines ; are tailored to the par┆ 0x0daca0…0dacc0 74 69 63 75 6c 61 72 20 6f 70 65 72 61 74 69 6e 67 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 2c 20 61 ┆ticular operating environment, a┆ 0x0dacc0…0dace0 6e 64 20 6d 75 73 74 0d 0a 3b 09 62 65 20 61 6c 74 65 72 65 64 20 66 6f 72 20 61 6e 79 20 73 79 ┆nd must ; be altered for any sy┆ 0x0dace0…0dad00 73 74 65 6d 20 77 68 69 63 68 20 64 69 66 66 65 72 73 20 66 72 6f 6d 20 74 68 65 20 69 6e 74 65 ┆stem which differs from the inte┆ 0x0dad00…0dad20 6c 20 6d 64 73 2e 0d 0a 3b 0d 0a 3b 09 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 64 65 20 ┆l mds. ; ; the following code ┆ 0x0dad20…0dad40 61 73 73 75 6d 65 73 20 74 68 65 20 6d 64 73 20 6d 6f 6e 69 74 6f 72 20 65 78 69 73 74 73 20 61 ┆assumes the mds monitor exists a┆ 0x0dad40…0dad60 74 20 30 66 38 30 30 68 0d 0a 3b 09 61 6e 64 20 75 73 65 73 20 74 68 65 20 69 2f 6f 20 73 75 62 ┆t 0f800h ; and uses the i/o sub┆ 0x0dad60…0dad80 72 6f 75 74 69 6e 65 73 20 77 69 74 68 69 6e 20 74 68 65 20 6d 6f 6e 69 74 6f 72 0d 0a 3b 0d 0a ┆routines within the monitor ; ┆ 0x0dad80…0dada0 3b 09 77 65 20 61 6c 73 6f 20 61 73 73 75 6d 65 20 74 68 65 20 6d 64 73 20 73 79 73 74 65 6d 20 ┆; we also assume the mds system ┆ 0x0dada0…0dadc0 68 61 73 20 66 6f 75 72 20 64 69 73 6b 20 64 72 69 76 65 73 0d 0a 72 65 76 72 74 09 65 71 75 09 ┆has four disk drives revrt equ ┆ 0x0dadc0…0dade0 30 66 64 68 09 3b 69 6e 74 65 72 72 75 70 74 20 72 65 76 65 72 74 20 70 6f 72 74 0d 0a 69 6e 74 ┆0fdh ;interrupt revert port int┆ 0x0dade0…0dae00 63 09 65 71 75 09 30 66 63 68 09 3b 69 6e 74 65 72 72 75 70 74 20 6d 61 73 6b 20 70 6f 72 74 0d ┆c equ 0fch ;interrupt mask port ┆ 0x0dae00…0dae20 (58, 0, 12) 6e 67 20 74 68 65 72 65 20 69 73 20 61 20 31 32 38 20 62 79 74 65 20 63 6f 6c 64 20 73 74 61 72 ┆ng there is a 128 byte cold star┆ 0x0dae20…0dae40 74 0d 0a 3b 09 73 74 61 72 74 2e 0d 0a 3b 0d 0a 09 6c 78 69 09 73 70 2c 62 75 66 66 09 3b 75 73 ┆t ; start. ; lxi sp,buff ;us┆ 0x0dae40…0dae60 69 6e 67 20 64 6d 61 20 2d 20 74 68 75 73 20 38 30 20 74 68 72 75 20 66 66 20 61 76 61 69 6c 61 ┆ing dma - thus 80 thru ff availa┆ 0x0dae60…0dae80 62 6c 65 20 66 6f 72 20 73 74 61 63 6b 0d 0a 3b 0d 0a 09 6d 76 69 09 63 2c 72 65 74 72 79 09 3b ┆ble for stack ; mvi c,retry ;┆ 0x0dae80…0daea0 6d 61 78 20 72 65 74 72 69 65 73 0d 0a 09 70 75 73 68 09 62 0d 0a 77 62 6f 6f 74 30 3a 09 3b 65 ┆max retries push b wboot0: ;e┆ 0x0daea0…0daec0 6e 74 65 72 20 68 65 72 65 20 6f 6e 20 65 72 72 6f 72 20 72 65 74 72 69 65 73 0d 0a 09 6c 78 69 ┆nter here on error retries lxi┆ 0x0daec0…0daee0 09 62 2c 63 70 6d 62 09 3b 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 74 6f 20 73 74 61 72 ┆ b,cpmb ;set dma address to star┆ 0x0daee0…0daf00 74 20 6f 66 20 64 69 73 6b 20 73 79 73 74 65 6d 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a ┆t of disk system call setdma ┆ 0x0daf00…0daf20 09 6d 76 69 09 63 2c 30 09 3b 62 6f 6f 74 20 66 72 6f 6d 20 64 72 69 76 65 20 30 0d 0a 09 63 61 ┆ mvi c,0 ;boot from drive 0 ca┆ 0x0daf20…0daf40 6c 6c 09 73 65 6c 64 73 6b 0d 0a 09 6d 76 69 09 63 2c 30 0d 0a 09 63 61 6c 6c 09 73 65 74 74 72 ┆ll seldsk mvi c,0 call settr┆ 0x0daf40…0daf60 6b 09 3b 73 74 61 72 74 20 77 69 74 68 20 74 72 61 63 6b 20 30 0d 0a 09 6d 76 69 09 63 2c 32 09 ┆k ;start with track 0 mvi c,2 ┆ 0x0daf60…0daf80 3b 73 74 61 72 74 20 72 65 61 64 69 6e 67 20 73 65 63 74 6f 72 20 32 0d 0a 09 63 61 6c 6c 09 73 ┆;start reading sector 2 call s┆ 0x0daf80…0dafa0 65 74 73 65 63 0d 0a 3b 0d 0a 3b 09 72 65 61 64 20 73 65 63 74 6f 72 73 2c 20 63 6f 75 6e 74 20 ┆etsec ; ; read sectors, count ┆ 0x0dafa0…0dafc0 6e 73 65 63 74 73 20 74 6f 20 7a 65 72 6f 0d 0a 09 70 6f 70 09 62 09 3b 31 30 2d 65 72 72 6f 72 ┆nsects to zero pop b ;10-error┆ 0x0dafc0…0dafe0 20 63 6f 75 6e 74 0d 0a 09 6d 76 69 09 62 2c 6e 73 65 63 74 73 0d 0a 72 64 73 65 63 3a 09 3b 72 ┆ count mvi b,nsects rdsec: ;r┆ 0x0dafe0…0db000 65 61 64 20 6e 65 78 74 20 73 65 63 74 6f 72 0d 0a 09 70 75 73 68 09 62 09 3b 73 61 76 65 20 73 ┆ead next sector push b ;save s┆ 0x0db000…0db020 (58, 0, 13) 77 72 69 74 65 20 70 72 6f 74 65 63 74 20 28 74 72 65 61 74 65 64 20 61 73 20 6e 6f 74 20 72 65 ┆write protect (treated as not re┆ 0x0db020…0db040 61 64 79 29 0d 0a 3b 09 36 09 2d 20 77 72 69 74 65 20 65 72 72 6f 72 20 28 68 61 72 64 77 61 72 ┆ady) ; 6 - write error (hardwar┆ 0x0db040…0db060 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 37 09 2d 20 6e 6f 74 20 72 65 61 64 79 0d ┆e malfunction) ; 7 - not ready ┆ 0x0db060…0db080 0a 3b 09 28 61 63 63 75 6d 75 6c 61 74 6f 72 20 62 69 74 73 20 61 72 65 20 6e 75 6d 62 65 72 65 ┆ ; (accumulator bits are numbere┆ 0x0db080…0db0a0 64 20 37 20 36 20 35 20 34 20 33 20 32 20 31 20 30 29 0d 0a 3b 0d 0a 3b 09 69 74 20 6d 61 79 20 ┆d 7 6 5 4 3 2 1 0) ; ; it may ┆ 0x0db0a0…0db0c0 62 65 20 75 73 65 66 75 6c 20 74 6f 20 66 69 6c 74 65 72 20 6f 75 74 20 74 68 65 20 76 61 72 69 ┆be useful to filter out the vari┆ 0x0db0c0…0db0e0 6f 75 73 20 63 6f 6e 64 69 74 69 6f 6e 73 2c 0d 0a 3b 09 62 75 74 20 77 65 20 77 69 6c 6c 20 67 ┆ous conditions, ; but we will g┆ 0x0db0e0…0db100 65 74 20 61 20 70 65 72 6d 61 6e 65 6e 74 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 69 66 20 ┆et a permanent error message if ┆ 0x0db100…0db120 69 74 20 69 73 20 6e 6f 74 0d 0a 3b 09 72 65 63 6f 76 65 72 61 62 6c 65 2e 20 20 69 6e 20 61 6e ┆it is not ; recoverable. in an┆ 0x0db120…0db140 79 20 63 61 73 65 2c 20 74 68 65 20 6e 6f 74 20 72 65 61 64 79 20 63 6f 6e 64 69 74 69 6f 6e 20 ┆y case, the not ready condition ┆ 0x0db140…0db160 69 73 0d 0a 3b 09 74 72 65 61 74 65 64 20 61 73 20 61 20 73 65 70 61 72 61 74 65 20 63 6f 6e 64 ┆is ; treated as a separate cond┆ 0x0db160…0db180 69 74 69 6f 6e 20 66 6f 72 20 6c 61 74 65 72 20 69 6d 70 72 6f 76 65 6d 65 6e 74 0d 0a 74 72 79 ┆ition for later improvement try┆ 0x0db180…0db1a0 63 6f 75 6e 74 3a 0d 0a 3b 09 72 65 67 69 73 74 65 72 20 63 20 63 6f 6e 74 61 69 6e 73 20 72 65 ┆count: ; register c contains re┆ 0x0db1a0…0db1c0 74 72 79 20 63 6f 75 6e 74 2c 20 64 65 63 72 65 6d 65 6e 74 20 27 74 69 6c 20 7a 65 72 6f 0d 0a ┆try count, decrement 'til zero ┆ 0x0db1c0…0db1e0 09 64 63 72 09 63 0d 0a 09 6a 6e 7a 09 72 65 77 61 69 74 09 3b 66 6f 72 20 61 6e 6f 74 68 65 72 ┆ dcr c jnz rewait ;for another┆ 0x0db1e0…0db200 20 74 72 79 0d 0a 3b 0d 0a 3b 09 63 61 6e 6e 6f 74 20 72 65 63 6f 76 65 72 20 66 72 6f 6d 20 65 ┆ try ; ; cannot recover from e┆ 0x0db200…0db220 (58, 0, 14) 09 30 30 30 34 68 09 3b 61 64 64 72 65 73 73 20 6f 66 20 6c 61 73 74 20 6c 6f 67 67 65 64 20 64 ┆ 0004h ;address of last logged d┆ 0x0db220…0db240 69 73 6b 20 6f 6e 20 77 61 72 6d 20 73 74 61 72 74 0d 0a 62 75 66 66 09 65 71 75 09 30 30 38 30 ┆isk on warm start buff equ 0080┆ 0x0db240…0db260 68 09 3b 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 0d 0a 72 65 74 72 79 ┆h ;default buffer address retry┆ 0x0db260…0db280 09 65 71 75 09 31 30 09 3b 6d 61 78 20 72 65 74 72 69 65 73 20 6f 6e 20 64 69 73 6b 20 69 2f 6f ┆ equ 10 ;max retries on disk i/o┆ 0x0db280…0db2a0 20 62 65 66 6f 72 65 20 65 72 72 6f 72 0d 0a 3b 0d 0a 3b 09 70 65 72 66 6f 72 6d 20 66 6f 6c 6c ┆ before error ; ; perform foll┆ 0x0db2a0…0db2c0 6f 77 69 6e 67 20 66 75 6e 63 74 69 6f 6e 73 0d 0a 3b 09 62 6f 6f 74 09 63 6f 6c 64 20 73 74 61 ┆owing functions ; boot cold sta┆ 0x0db2c0…0db2e0 72 74 0d 0a 3b 09 77 62 6f 6f 74 09 77 61 72 6d 20 73 74 61 72 74 20 28 73 61 76 65 20 69 2f 6f ┆rt ; wboot warm start (save i/o┆ 0x0db2e0…0db300 20 62 79 74 65 29 0d 0a 3b 09 28 62 6f 6f 74 20 61 6e 64 20 77 62 6f 6f 74 20 61 72 65 20 74 68 ┆ byte) ; (boot and wboot are th┆ 0x0db300…0db320 65 20 73 61 6d 65 20 66 6f 72 20 6d 64 73 29 0d 0a 3b 09 63 6f 6e 73 74 09 63 6f 6e 73 6f 6c 65 ┆e same for mds) ; const console┆ 0x0db320…0db340 20 73 74 61 74 75 73 0d 0a 3b 09 09 72 65 67 2d 61 20 3d 20 30 30 20 69 66 20 6e 6f 20 63 68 61 ┆ status ; reg-a = 00 if no cha┆ 0x0db340…0db360 72 61 63 74 65 72 20 72 65 61 64 79 0d 0a 3b 09 09 72 65 67 2d 61 20 3d 20 66 66 20 69 66 20 63 ┆racter ready ; reg-a = ff if c┆ 0x0db360…0db380 68 61 72 61 63 74 65 72 20 72 65 61 64 79 0d 0a 3b 09 63 6f 6e 69 6e 09 63 6f 6e 73 6f 6c 65 20 ┆haracter ready ; conin console ┆ 0x0db380…0db3a0 63 68 61 72 61 63 74 65 72 20 69 6e 20 28 72 65 73 75 6c 74 20 69 6e 20 72 65 67 2d 61 29 0d 0a ┆character in (result in reg-a) ┆ 0x0db3a0…0db3c0 3b 09 63 6f 6e 6f 75 74 09 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 6f 75 74 20 28 ┆; conout console character out (┆ 0x0db3c0…0db3e0 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 6c 69 73 74 09 6c 69 73 74 20 6f 75 74 20 ┆char in reg-c) ; list list out ┆ 0x0db3e0…0db400 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 70 75 6e 63 68 09 70 75 6e 63 68 20 6f ┆(char in reg-c) ; punch punch o┆ 0x0db400…0db420 (58, 0, 15) 0a 69 63 6f 6e 09 65 71 75 09 30 66 33 68 09 3b 69 6e 74 65 72 72 75 70 74 20 63 6f 6e 74 72 6f ┆ icon equ 0f3h ;interrupt contro┆ 0x0db420…0db440 6c 20 70 6f 72 74 0d 0a 69 6e 74 65 09 65 71 75 09 30 31 31 31 24 31 31 31 30 62 09 3b 65 6e 61 ┆l port inte equ 0111$1110b ;ena┆ 0x0db440…0db460 62 6c 65 20 72 73 74 20 30 28 77 61 72 6d 20 62 6f 6f 74 29 2c 20 72 73 74 20 37 20 28 6d 6f 6e ┆ble rst 0(warm boot), rst 7 (mon┆ 0x0db460…0db480 69 74 6f 72 29 0d 0a 3b 0d 0a 3b 09 6d 64 73 20 6d 6f 6e 69 74 6f 72 20 65 71 75 61 74 65 73 0d ┆itor) ; ; mds monitor equates ┆ 0x0db480…0db4a0 0a 6d 6f 6e 38 30 09 65 71 75 09 30 66 38 30 30 68 09 3b 6d 64 73 20 6d 6f 6e 69 74 6f 72 0d 0a ┆ mon80 equ 0f800h ;mds monitor ┆ 0x0db4a0…0db4c0 72 6d 6f 6e 38 30 09 65 71 75 09 30 66 66 30 66 68 09 3b 72 65 73 74 61 72 74 20 6d 6f 6e 38 30 ┆rmon80 equ 0ff0fh ;restart mon80┆ 0x0db4c0…0db4e0 20 28 62 6f 6f 74 20 65 72 72 6f 72 29 0d 0a 63 69 09 65 71 75 09 30 66 38 30 33 68 09 3b 63 6f ┆ (boot error) ci equ 0f803h ;co┆ 0x0db4e0…0db500 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 72 65 67 2d 61 0d 0a 72 69 09 65 71 75 ┆nsole character to reg-a ri equ┆ 0x0db500…0db520 09 30 66 38 30 36 68 09 3b 72 65 61 64 65 72 20 69 6e 20 74 6f 20 72 65 67 2d 61 0d 0a 63 6f 09 ┆ 0f806h ;reader in to reg-a co ┆ 0x0db520…0db540 65 71 75 09 30 66 38 30 39 68 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 20 66 72 6f 6d 20 63 20 ┆equ 0f809h ;console char from c ┆ 0x0db540…0db560 74 6f 20 63 6f 6e 73 6f 6c 65 20 6f 75 74 0d 0a 70 6f 09 65 71 75 09 30 66 38 30 63 68 09 3b 70 ┆to console out po equ 0f80ch ;p┆ 0x0db560…0db580 75 6e 63 68 20 63 68 61 72 20 66 72 6f 6d 20 63 20 74 6f 20 70 75 6e 63 68 20 64 65 76 69 63 65 ┆unch char from c to punch device┆ 0x0db580…0db5a0 0d 0a 6c 6f 09 65 71 75 09 30 66 38 30 66 68 09 3b 6c 69 73 74 20 66 72 6f 6d 20 63 20 74 6f 20 ┆ lo equ 0f80fh ;list from c to ┆ 0x0db5a0…0db5c0 6c 69 73 74 20 64 65 76 69 63 65 0d 0a 63 73 74 73 09 65 71 75 09 30 66 38 31 32 68 09 3b 63 6f ┆list device csts equ 0f812h ;co┆ 0x0db5c0…0db5e0 6e 73 6f 6c 65 20 73 74 61 74 75 73 20 30 30 2f 66 66 20 74 6f 20 72 65 67 69 73 74 65 72 20 61 ┆nsole status 00/ff to register a┆ 0x0db5e0…0db600 0d 0a 3b 0d 0a 3b 09 64 69 73 6b 20 70 6f 72 74 73 20 61 6e 64 20 63 6f 6d 6d 61 6e 64 73 0d 0a ┆ ; ; disk ports and commands ┆ 0x0db600…0db620 (58, 1, 1) 65 63 74 6f 72 20 63 6f 75 6e 74 0d 0a 09 63 61 6c 6c 09 72 65 61 64 0d 0a 09 6a 6e 7a 09 62 6f ┆ector count call read jnz bo┆ 0x0db620…0db640 6f 74 65 72 72 09 3b 72 65 74 72 79 20 69 66 20 65 72 72 6f 72 73 20 6f 63 63 75 72 0d 0a 09 6c ┆oterr ;retry if errors occur l┆ 0x0db640…0db660 68 6c 64 09 69 6f 64 09 3b 69 6e 63 72 65 6d 65 6e 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a ┆hld iod ;increment dma address ┆ 0x0db660…0db680 09 6c 78 69 09 64 2c 31 32 38 09 3b 73 65 63 74 6f 72 20 73 69 7a 65 0d 0a 09 64 61 64 09 64 09 ┆ lxi d,128 ;sector size dad d ┆ 0x0db680…0db6a0 3b 69 6e 63 72 65 6d 65 6e 74 65 64 20 64 6d 61 20 61 64 64 72 65 73 73 20 69 6e 20 68 6c 0d 0a ┆;incremented dma address in hl ┆ 0x0db6a0…0db6c0 09 6d 6f 76 09 62 2c 68 0d 0a 09 6d 6f 76 09 63 2c 6c 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 ┆ mov b,h mov c,l ;ready for ca┆ 0x0db6c0…0db6e0 6c 6c 20 74 6f 20 73 65 74 20 64 6d 61 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a 09 6c 64 ┆ll to set dma call setdma ld┆ 0x0db6e0…0db700 61 09 69 6f 73 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 6a 75 73 74 20 72 65 61 64 0d 0a ┆a ios ;sector number just read ┆ 0x0db700…0db720 09 63 70 69 09 32 36 09 3b 72 65 61 64 20 6c 61 73 74 20 73 65 63 74 6f 72 3f 0d 0a 09 6a 63 09 ┆ cpi 26 ;read last sector? jc ┆ 0x0db720…0db740 72 64 31 0d 0a 3b 09 6d 75 73 74 20 62 65 20 73 65 63 74 6f 72 20 32 36 2c 20 7a 65 72 6f 20 61 ┆rd1 ; must be sector 26, zero a┆ 0x0db740…0db760 6e 64 20 67 6f 20 74 6f 20 6e 65 78 74 20 74 72 61 63 6b 0d 0a 09 6c 64 61 09 69 6f 74 09 3b 67 ┆nd go to next track lda iot ;g┆ 0x0db760…0db780 65 74 20 74 72 61 63 6b 20 74 6f 20 72 65 67 69 73 74 65 72 20 61 0d 0a 09 69 6e 72 09 61 0d 0a ┆et track to register a inr a ┆ 0x0db780…0db7a0 09 6d 6f 76 09 63 2c 61 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 0d 0a 09 63 61 6c 6c 09 ┆ mov c,a ;ready for call call ┆ 0x0db7a0…0db7c0 73 65 74 74 72 6b 0d 0a 09 78 72 61 09 61 09 3b 63 6c 65 61 72 20 73 65 63 74 6f 72 20 6e 75 6d ┆settrk xra a ;clear sector num┆ 0x0db7c0…0db7e0 62 65 72 0d 0a 72 64 31 3a 09 69 6e 72 09 61 09 3b 74 6f 20 6e 65 78 74 20 73 65 63 74 6f 72 0d ┆ber rd1: inr a ;to next sector ┆ 0x0db7e0…0db800 0a 09 6d 6f 76 09 63 2c 61 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 0d 0a 09 63 61 6c 6c ┆ mov c,a ;ready for call call┆ 0x0db800…0db820 (58, 1, 2) 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 70 6f 0d 0a 3b 0d 0a 72 65 61 ┆me as mds call) jmp po ; rea┆ 0x0db820…0db840 64 65 72 3a 09 3b 72 65 61 64 65 72 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 74 6f 20 72 65 67 ┆der: ;reader character in to reg┆ 0x0db840…0db860 2d 61 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 ┆-a ; (exactly the same as mds c┆ 0x0db860…0db880 61 6c 6c 29 0d 0a 09 6a 6d 70 09 72 69 0d 0a 3b 0d 0a 68 6f 6d 65 3a 09 3b 6d 6f 76 65 20 74 6f ┆all) jmp ri ; home: ;move to┆ 0x0db880…0db8a0 20 68 6f 6d 65 20 70 6f 73 69 74 69 6f 6e 0d 0a 3b 09 74 72 65 61 74 20 61 73 20 74 72 61 63 6b ┆ home position ; treat as track┆ 0x0db8a0…0db8c0 20 30 30 20 73 65 65 6b 0d 0a 09 6d 76 69 09 63 2c 30 0d 0a 09 6a 6d 70 09 73 65 74 74 72 6b 0d ┆ 00 seek mvi c,0 jmp settrk ┆ 0x0db8c0…0db8e0 0a 3b 0d 0a 73 65 6c 64 73 6b 3a 09 3b 73 65 6c 65 63 74 20 64 69 73 6b 20 67 69 76 65 6e 20 62 ┆ ; seldsk: ;select disk given b┆ 0x0db8e0…0db900 79 20 72 65 67 69 73 74 65 72 20 63 0d 0a 09 6c 78 69 09 68 2c 30 30 30 30 68 09 3b 72 65 74 75 ┆y register c lxi h,0000h ;retu┆ 0x0db900…0db920 72 6e 20 30 30 30 30 20 69 66 20 65 72 72 6f 72 0d 0a 09 6d 6f 76 09 61 2c 63 0d 0a 09 63 70 69 ┆rn 0000 if error mov a,c cpi┆ 0x0db920…0db940 09 6e 64 69 73 6b 73 09 3b 74 6f 6f 20 6c 61 72 67 65 3f 0d 0a 09 72 6e 63 09 09 3b 6c 65 61 76 ┆ ndisks ;too large? rnc ;leav┆ 0x0db940…0db960 65 20 48 4c 20 3d 20 30 30 30 30 0d 0a 3b 0d 0a 09 61 6e 69 09 31 30 62 09 3b 30 30 20 30 30 20 ┆e HL = 0000 ; ani 10b ;00 00 ┆ 0x0db960…0db980 66 6f 72 20 64 72 69 76 65 20 30 2c 31 20 61 6e 64 20 31 30 20 31 30 20 66 6f 72 20 64 72 69 76 ┆for drive 0,1 and 10 10 for driv┆ 0x0db980…0db9a0 65 20 32 2c 33 0d 0a 09 73 74 61 09 64 62 61 6e 6b 09 3b 74 6f 20 73 65 6c 65 63 74 20 64 72 69 ┆e 2,3 sta dbank ;to select dri┆ 0x0db9a0…0db9c0 76 65 20 62 61 6e 6b 0d 0a 09 6d 6f 76 09 61 2c 63 09 3b 30 30 2c 20 30 31 2c 20 31 30 2c 20 31 ┆ve bank mov a,c ;00, 01, 10, 1┆ 0x0db9c0…0db9e0 31 0d 0a 09 61 6e 69 09 31 62 09 3b 6d 64 73 20 68 61 73 20 30 2c 31 20 61 74 20 37 38 2c 20 32 ┆1 ani 1b ;mds has 0,1 at 78, 2┆ 0x0db9e0…0dba00 2c 33 20 61 74 20 38 38 0d 0a 09 6f 72 61 09 61 09 3b 72 65 73 75 6c 74 20 30 30 3f 0d 0a 09 6a ┆,3 at 88 ora a ;result 00? j┆ 0x0dba00…0dba20 (58, 1, 3) 09 6f 72 61 09 63 09 3b 73 65 74 20 74 6f 20 6e 65 77 20 63 6f 6d 6d 61 6e 64 0d 0a 09 6d 6f 76 ┆ ora c ;set to new command mov┆ 0x0dba20…0dba40 09 6d 2c 61 09 3b 72 65 70 6c 61 63 65 64 20 69 6e 20 69 6f 70 62 0d 0a 3b 09 74 68 65 20 6d 64 ┆ m,a ;replaced in iopb ; the md┆ 0x0dba40…0dba60 73 2d 38 30 30 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 72 65 71 75 69 72 65 73 20 64 69 73 6b 20 62 ┆s-800 controller requires disk b┆ 0x0dba60…0dba80 61 6e 6b 20 62 69 74 20 69 6e 20 73 65 63 74 6f 72 20 62 79 74 65 0d 0a 3b 09 6d 61 73 6b 20 74 ┆ank bit in sector byte ; mask t┆ 0x0dba80…0dbaa0 68 65 20 62 69 74 20 66 72 6f 6d 20 74 68 65 20 63 75 72 72 65 6e 74 20 69 2f 6f 20 66 75 6e 63 ┆he bit from the current i/o func┆ 0x0dbaa0…0dbac0 74 69 6f 6e 0d 0a 09 61 6e 69 09 30 30 31 30 30 30 30 30 62 09 3b 6d 61 73 6b 20 74 68 65 20 64 ┆tion ani 00100000b ;mask the d┆ 0x0dbac0…0dbae0 69 73 6b 20 73 65 6c 65 63 74 20 62 69 74 0d 0a 09 6c 78 69 09 68 2c 69 6f 73 09 09 3b 61 64 64 ┆isk select bit lxi h,ios ;add┆ 0x0dbae0…0dbb00 72 65 73 73 20 74 68 65 20 73 65 63 74 6f 72 20 73 65 6c 65 63 74 20 62 79 74 65 0d 0a 09 6f 72 ┆ress the sector select byte or┆ 0x0dbb00…0dbb20 61 09 6d 09 09 3b 73 65 6c 65 63 74 20 70 72 6f 70 65 72 20 64 69 73 6b 20 62 61 6e 6b 0d 0a 09 ┆a m ;select proper disk bank ┆ 0x0dbb20…0dbb40 6d 6f 76 09 6d 2c 61 09 09 3b 73 65 74 20 64 69 73 6b 20 73 65 6c 65 63 74 20 62 69 74 20 6f 6e ┆mov m,a ;set disk select bit on┆ 0x0dbb40…0dbb60 2f 6f 66 66 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 77 61 69 74 69 6f 3a 0d 0a 09 6d 76 69 09 63 2c 72 ┆/off ret ; waitio: mvi c,r┆ 0x0dbb60…0dbb80 65 74 72 79 09 3b 6d 61 78 20 72 65 74 72 69 65 73 20 62 65 66 6f 72 65 20 70 65 72 6d 20 65 72 ┆etry ;max retries before perm er┆ 0x0dbb80…0dbba0 72 6f 72 0d 0a 72 65 77 61 69 74 3a 0d 0a 3b 09 73 74 61 72 74 20 74 68 65 20 69 2f 6f 20 66 75 ┆ror rewait: ; start the i/o fu┆ 0x0dbba0…0dbbc0 6e 63 74 69 6f 6e 20 61 6e 64 20 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 0d 0a ┆nction and wait for completion ┆ 0x0dbbc0…0dbbe0 09 63 61 6c 6c 09 69 6e 74 79 70 65 09 3b 69 6e 20 72 74 79 70 65 0d 0a 09 63 61 6c 6c 09 69 6e ┆ call intype ;in rtype call in┆ 0x0dbbe0…0dbc00 62 79 74 65 09 3b 63 6c 65 61 72 73 20 74 68 65 20 63 6f 6e 74 72 6f 6c 6c 65 72 0d 0a 3b 0d 0a ┆byte ;clears the controller ; ┆ 0x0dbc00…0dbc20 (58, 1, 4) 65 61 64 79 0d 0a 3b 09 28 61 63 63 75 6d 75 6c 61 74 6f 72 20 62 69 74 73 20 61 72 65 20 6e 75 ┆eady ; (accumulator bits are nu┆ 0x0dbc20…0dbc40 6d 62 65 72 65 64 20 37 20 36 20 35 20 34 20 33 20 32 20 31 20 30 29 0d 0a 3b 0d 0a 3b 09 69 74 ┆mbered 7 6 5 4 3 2 1 0) ; ; it┆ 0x0dbc40…0dbc60 20 6d 61 79 20 62 65 20 75 73 65 66 75 6c 20 74 6f 20 66 69 6c 74 65 72 20 6f 75 74 20 74 68 65 ┆ may be useful to filter out the┆ 0x0dbc60…0dbc80 20 76 61 72 69 6f 75 73 20 63 6f 6e 64 69 74 69 6f 6e 73 2c 0d 0a 3b 09 62 75 74 20 77 65 20 77 ┆ various conditions, ; but we w┆ 0x0dbc80…0dbca0 69 6c 6c 20 67 65 74 20 61 20 70 65 72 6d 61 6e 65 6e 74 20 65 72 72 6f 72 20 6d 65 73 73 61 67 ┆ill get a permanent error messag┆ 0x0dbca0…0dbcc0 65 20 69 66 20 69 74 20 69 73 20 6e 6f 74 0d 0a 3b 09 72 65 63 6f 76 65 72 61 62 6c 65 2e 20 20 ┆e if it is not ; recoverable. ┆ 0x0dbcc0…0dbce0 69 6e 20 61 6e 79 20 63 61 73 65 2c 20 74 68 65 20 6e 6f 74 20 72 65 61 64 79 20 63 6f 6e 64 69 ┆in any case, the not ready condi┆ 0x0dbce0…0dbd00 74 69 6f 6e 20 69 73 0d 0a 3b 09 74 72 65 61 74 65 64 20 61 73 20 61 20 73 65 70 61 72 61 74 65 ┆tion is ; treated as a separate┆ 0x0dbd00…0dbd20 20 63 6f 6e 64 69 74 69 6f 6e 20 66 6f 72 20 6c 61 74 65 72 20 69 6d 70 72 6f 76 65 6d 65 6e 74 ┆ condition for later improvement┆ 0x0dbd20…0dbd40 0d 0a 74 72 79 63 6f 75 6e 74 3a 0d 0a 3b 09 72 65 67 69 73 74 65 72 20 63 20 63 6f 6e 74 61 69 ┆ trycount: ; register c contai┆ 0x0dbd40…0dbd60 6e 73 20 72 65 74 72 79 20 63 6f 75 6e 74 2c 20 64 65 63 72 65 6d 65 6e 74 20 27 74 69 6c 20 7a ┆ns retry count, decrement 'til z┆ 0x0dbd60…0dbd80 65 72 6f 0d 0a 09 64 63 72 09 63 0d 0a 09 6a 6e 7a 09 72 65 77 61 69 74 09 3b 66 6f 72 20 61 6e ┆ero dcr c jnz rewait ;for an┆ 0x0dbd80…0dbda0 6f 74 68 65 72 20 74 72 79 0d 0a 3b 0d 0a 3b 09 63 61 6e 6e 6f 74 20 72 65 63 6f 76 65 72 20 66 ┆other try ; ; cannot recover f┆ 0x0dbda0…0dbdc0 72 6f 6d 20 65 72 72 6f 72 0d 0a 09 6d 76 69 09 61 2c 31 09 3b 65 72 72 6f 72 20 63 6f 64 65 0d ┆rom error mvi a,1 ;error code ┆ 0x0dbdc0…0dbde0 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 09 69 6e 74 79 70 65 2c 20 69 6e 62 79 74 65 2c 20 69 6e 73 74 ┆ ret ; ; intype, inbyte, inst┆ 0x0dbde0…0dbe00 61 74 20 72 65 61 64 20 64 72 69 76 65 20 62 61 6e 6b 20 30 30 20 6f 72 20 31 30 0d 0a 69 6e 74 ┆at read drive bank 00 or 10 int┆ 0x0dbe00…0dbe20 (58, 1, 5) 09 73 65 74 73 65 63 0d 0a 09 70 6f 70 09 62 09 3b 72 65 63 61 6c 6c 20 73 65 63 74 6f 72 20 63 ┆ setsec pop b ;recall sector c┆ 0x0dbe20…0dbe40 6f 75 6e 74 0d 0a 09 64 63 72 09 62 09 3b 64 6f 6e 65 3f 0d 0a 09 6a 6e 7a 09 72 64 73 65 63 0d ┆ount dcr b ;done? jnz rdsec ┆ 0x0dbe40…0dbe60 0a 3b 0d 0a 3b 09 64 6f 6e 65 20 77 69 74 68 20 74 68 65 20 6c 6f 61 64 2c 20 72 65 73 65 74 20 ┆ ; ; done with the load, reset ┆ 0x0dbe60…0dbe80 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 0d 0a 67 6f 63 70 6d 3a 09 3b ┆default buffer address gocpm: ;┆ 0x0dbe80…0dbea0 28 65 6e 74 65 72 20 68 65 72 65 20 66 72 6f 6d 20 63 6f 6c 64 20 73 74 61 72 74 20 62 6f 6f 74 ┆(enter here from cold start boot┆ 0x0dbea0…0dbec0 29 0d 0a 3b 09 65 6e 61 62 6c 65 20 72 73 74 30 20 61 6e 64 20 72 73 74 37 0d 0a 09 64 69 0d 0a ┆) ; enable rst0 and rst7 di ┆ 0x0dbec0…0dbee0 09 6d 76 69 09 61 2c 31 32 68 09 3b 69 6e 69 74 69 61 6c 69 7a 65 20 63 6f 6d 6d 61 6e 64 0d 0a ┆ mvi a,12h ;initialize command ┆ 0x0dbee0…0dbf00 09 6f 75 74 09 72 65 76 72 74 0d 0a 09 78 72 61 09 61 0d 0a 09 6f 75 74 09 69 6e 74 63 09 3b 63 ┆ out revrt xra a out intc ;c┆ 0x0dbf00…0dbf20 6c 65 61 72 65 64 0d 0a 09 6d 76 69 09 61 2c 69 6e 74 65 09 3b 72 73 74 30 20 61 6e 64 20 72 73 ┆leared mvi a,inte ;rst0 and rs┆ 0x0dbf20…0dbf40 74 37 20 62 69 74 73 20 6f 6e 0d 0a 09 6f 75 74 09 69 6e 74 63 0d 0a 09 78 72 61 09 61 0d 0a 09 ┆t7 bits on out intc xra a ┆ 0x0dbf40…0dbf60 6f 75 74 09 69 63 6f 6e 09 3b 69 6e 74 65 72 72 75 70 74 20 63 6f 6e 74 72 6f 6c 0d 0a 3b 0d 0a ┆out icon ;interrupt control ; ┆ 0x0dbf60…0dbf80 3b 09 73 65 74 20 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 20 74 6f 20 ┆; set default buffer address to ┆ 0x0dbf80…0dbfa0 38 30 68 0d 0a 09 6c 78 69 09 62 2c 62 75 66 66 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 0d 0a ┆80h lxi b,buff call setdma ┆ 0x0dbfa0…0dbfc0 3b 0d 0a 3b 09 72 65 73 65 74 20 6d 6f 6e 69 74 6f 72 20 65 6e 74 72 79 20 70 6f 69 6e 74 73 0d ┆; ; reset monitor entry points ┆ 0x0dbfc0…0dbfe0 0a 09 6d 76 69 09 61 2c 6a 6d 70 0d 0a 09 73 74 61 09 30 0d 0a 09 6c 78 69 09 68 2c 77 62 6f 6f ┆ mvi a,jmp sta 0 lxi h,wboo┆ 0x0dbfe0…0dc000 74 65 0d 0a 09 73 68 6c 64 09 31 09 3b 6a 6d 70 20 77 62 6f 6f 74 20 61 74 20 6c 6f 63 61 74 69 ┆te shld 1 ;jmp wboot at locati┆ 0x0dc000…0dc020 (58, 1, 6) 7a 09 73 65 74 64 72 69 76 65 0d 0a 09 6d 76 69 09 61 2c 30 30 31 31 30 30 30 30 62 09 3b 73 65 ┆z setdrive mvi a,00110000b ;se┆ 0x0dc020…0dc040 6c 65 63 74 73 20 64 72 69 76 65 20 31 20 69 6e 20 62 61 6e 6b 0d 0a 73 65 74 64 72 69 76 65 3a ┆lects drive 1 in bank setdrive:┆ 0x0dc040…0dc060 0d 0a 09 6d 6f 76 09 62 2c 61 09 3b 73 61 76 65 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 ┆ mov b,a ;save the function ┆ 0x0dc060…0dc080 6c 78 69 09 68 2c 69 6f 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6d 6f 76 09 61 2c 6d ┆lxi h,iof ;io function mov a,m┆ 0x0dc080…0dc0a0 0d 0a 09 61 6e 69 09 31 31 30 30 31 31 31 31 62 09 3b 6d 61 73 6b 20 6f 75 74 20 64 69 73 6b 20 ┆ ani 11001111b ;mask out disk ┆ 0x0dc0a0…0dc0c0 6e 75 6d 62 65 72 0d 0a 09 6f 72 61 09 62 09 3b 6d 61 73 6b 20 69 6e 20 6e 65 77 20 64 69 73 6b ┆number ora b ;mask in new disk┆ 0x0dc0c0…0dc0e0 20 6e 75 6d 62 65 72 0d 0a 09 6d 6f 76 09 6d 2c 61 09 3b 73 61 76 65 20 69 74 20 69 6e 20 69 6f ┆ number mov m,a ;save it in io┆ 0x0dc0e0…0dc100 70 62 0d 0a 09 6d 6f 76 09 6c 2c 63 0d 0a 09 6d 76 69 09 68 2c 30 09 3b 48 4c 3d 64 69 73 6b 20 ┆pb mov l,c mvi h,0 ;HL=disk ┆ 0x0dc100…0dc120 6e 75 6d 62 65 72 0d 0a 09 64 61 64 09 68 09 3b 2a 32 0d 0a 09 64 61 64 09 68 09 3b 2a 34 0d 0a ┆number dad h ;*2 dad h ;*4 ┆ 0x0dc120…0dc140 09 64 61 64 09 68 09 3b 2a 38 0d 0a 09 64 61 64 09 68 09 3b 2a 31 36 0d 0a 09 6c 78 69 09 64 2c ┆ dad h ;*8 dad h ;*16 lxi d,┆ 0x0dc140…0dc160 64 70 62 61 73 65 0d 0a 09 64 61 64 09 64 09 3b 48 4c 3d 64 69 73 6b 20 68 65 61 64 65 72 20 74 ┆dpbase dad d ;HL=disk header t┆ 0x0dc160…0dc180 61 62 6c 65 20 61 64 64 72 65 73 73 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 73 65 74 74 72 6b ┆able address ret ; ; settrk┆ 0x0dc180…0dc1a0 3a 09 3b 73 65 74 20 74 72 61 63 6b 20 61 64 64 72 65 73 73 20 67 69 76 65 6e 20 62 79 20 63 0d ┆: ;set track address given by c ┆ 0x0dc1a0…0dc1c0 0a 09 6c 78 69 09 68 2c 69 6f 74 0d 0a 09 6d 6f 76 09 6d 2c 63 0d 0a 09 72 65 74 0d 0a 3b 0d 0a ┆ lxi h,iot mov m,c ret ; ┆ 0x0dc1c0…0dc1e0 73 65 74 73 65 63 3a 09 3b 73 65 74 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 67 69 76 65 6e ┆setsec: ;set sector number given┆ 0x0dc1e0…0dc200 20 62 79 20 63 0d 0a 09 6c 78 69 09 68 2c 69 6f 73 0d 0a 09 6d 6f 76 09 6d 2c 63 0d 0a 09 72 65 ┆ by c lxi h,ios mov m,c re┆ 0x0dc200…0dc220 (58, 1, 7) 09 6c 64 61 09 64 62 61 6e 6b 09 09 3b 73 65 74 20 62 61 6e 6b 20 66 6c 61 67 73 0d 0a 09 6f 72 ┆ lda dbank ;set bank flags or┆ 0x0dc220…0dc240 61 09 61 09 09 3b 7a 65 72 6f 20 69 66 20 64 72 69 76 65 20 30 2c 31 20 61 6e 64 20 6e 7a 20 69 ┆a a ;zero if drive 0,1 and nz i┆ 0x0dc240…0dc260 66 20 32 2c 33 0d 0a 09 6d 76 69 09 61 2c 69 6f 70 62 20 61 6e 64 20 30 66 66 68 09 3b 6c 6f 77 ┆f 2,3 mvi a,iopb and 0ffh ;low┆ 0x0dc260…0dc280 20 61 64 64 72 65 73 73 20 66 6f 72 20 69 6f 70 62 0d 0a 09 6d 76 69 09 62 2c 69 6f 70 62 20 73 ┆ address for iopb mvi b,iopb s┆ 0x0dc280…0dc2a0 68 72 20 38 09 3b 68 69 67 68 20 61 64 64 72 65 73 73 20 66 6f 72 20 69 6f 70 62 0d 0a 09 6a 6e ┆hr 8 ;high address for iopb jn┆ 0x0dc2a0…0dc2c0 7a 09 69 6f 64 72 31 09 3b 64 72 69 76 65 20 62 61 6e 6b 20 31 3f 0d 0a 09 6f 75 74 09 69 6c 6f ┆z iodr1 ;drive bank 1? out ilo┆ 0x0dc2c0…0dc2e0 77 09 09 3b 6c 6f 77 20 61 64 64 72 65 73 73 20 74 6f 20 63 6f 6e 74 72 6f 6c 6c 65 72 0d 0a 09 ┆w ;low address to controller ┆ 0x0dc2e0…0dc300 6d 6f 76 09 61 2c 62 0d 0a 09 6f 75 74 09 69 68 69 67 68 09 3b 68 69 67 68 20 61 64 64 72 65 73 ┆mov a,b out ihigh ;high addres┆ 0x0dc300…0dc320 73 0d 0a 09 6a 6d 70 09 77 61 69 74 30 09 09 3b 74 6f 20 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 ┆s jmp wait0 ;to wait for comp┆ 0x0dc320…0dc340 6c 65 74 65 0d 0a 3b 0d 0a 69 6f 64 72 31 3a 09 3b 64 72 69 76 65 20 62 61 6e 6b 20 31 0d 0a 09 ┆lete ; iodr1: ;drive bank 1 ┆ 0x0dc340…0dc360 6f 75 74 09 69 6c 6f 77 2b 31 30 68 09 3b 38 38 20 66 6f 72 20 64 72 69 76 65 20 62 61 6e 6b 20 ┆out ilow+10h ;88 for drive bank ┆ 0x0dc360…0dc380 31 30 0d 0a 09 6d 6f 76 09 61 2c 62 0d 0a 09 6f 75 74 09 69 68 69 67 68 2b 31 30 68 0d 0a 3b 0d ┆10 mov a,b out ihigh+10h ; ┆ 0x0dc380…0dc3a0 0a 77 61 69 74 30 3a 09 63 61 6c 6c 09 69 6e 73 74 61 74 09 09 3b 77 61 69 74 20 66 6f 72 20 63 ┆ wait0: call instat ;wait for c┆ 0x0dc3a0…0dc3c0 6f 6d 70 6c 65 74 69 6f 6e 0d 0a 09 61 6e 69 09 69 6f 72 64 79 09 09 3b 72 65 61 64 79 3f 0d 0a ┆ompletion ani iordy ;ready? ┆ 0x0dc3c0…0dc3e0 09 6a 7a 09 77 61 69 74 30 0d 0a 3b 0d 0a 3b 09 63 68 65 63 6b 20 69 6f 20 63 6f 6d 70 6c 65 74 ┆ jz wait0 ; ; check io complet┆ 0x0dc3e0…0dc400 69 6f 6e 20 6f 6b 0d 0a 09 63 61 6c 6c 09 69 6e 74 79 70 65 09 09 3b 6d 75 73 74 20 62 65 20 69 ┆ion ok call intype ;must be i┆ 0x0dc400…0dc420 (58, 1, 8) 79 70 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 74 ┆ype: lda dbank ora a jnz int┆ 0x0dc420…0dc440 79 70 31 09 3b 73 6b 69 70 20 74 6f 20 62 61 6e 6b 20 31 30 0d 0a 09 69 6e 09 72 74 79 70 65 0d ┆yp1 ;skip to bank 10 in rtype ┆ 0x0dc440…0dc460 0a 09 72 65 74 0d 0a 69 6e 74 79 70 31 3a 09 69 6e 09 72 74 79 70 65 2b 31 30 68 09 3b 37 38 20 ┆ ret intyp1: in rtype+10h ;78 ┆ 0x0dc460…0dc480 66 6f 72 20 30 2c 31 20 20 38 38 20 66 6f 72 20 32 2c 33 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 69 6e ┆for 0,1 88 for 2,3 ret ; in┆ 0x0dc480…0dc4a0 62 79 74 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e ┆byte: lda dbank ora a jnz in┆ 0x0dc4a0…0dc4c0 62 79 74 31 0d 0a 09 69 6e 09 72 62 79 74 65 0d 0a 09 72 65 74 0d 0a 69 6e 62 79 74 31 3a 09 69 ┆byt1 in rbyte ret inbyt1: i┆ 0x0dc4c0…0dc4e0 6e 09 72 62 79 74 65 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 69 6e 73 74 61 74 3a 09 6c 64 ┆n rbyte+10h ret ; instat: ld┆ 0x0dc4e0…0dc500 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 73 74 61 31 0d 0a 09 69 ┆a dbank ora a jnz insta1 i┆ 0x0dc500…0dc520 6e 09 64 73 74 61 74 0d 0a 09 72 65 74 0d 0a 69 6e 73 74 61 31 3a 09 69 6e 09 64 73 74 61 74 2b ┆n dstat ret insta1: in dstat+┆ 0x0dc520…0dc540 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 61 74 61 20 61 72 65 61 73 ┆10h ret ; ; ; ; data areas┆ 0x0dc540…0dc560 20 28 6d 75 73 74 20 62 65 20 69 6e 20 72 61 6d 29 0d 0a 64 62 61 6e 6b 3a 09 64 62 09 30 09 3b ┆ (must be in ram) dbank: db 0 ;┆ 0x0dc560…0dc580 64 69 73 6b 20 62 61 6e 6b 20 30 30 20 69 66 20 64 72 69 76 65 20 30 2c 31 0d 0a 09 09 09 3b 09 ┆disk bank 00 if drive 0,1 ; ┆ 0x0dc580…0dc5a0 20 20 20 31 30 20 69 66 20 64 72 69 76 65 20 32 2c 33 0d 0a 69 6f 70 62 3a 09 3b 69 6f 20 70 61 ┆ 10 if drive 2,3 iopb: ;io pa┆ 0x0dc5a0…0dc5c0 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 0d 0a 09 64 62 09 38 30 68 09 3b 6e 6f 72 6d 61 6c 20 69 ┆rameter block db 80h ;normal i┆ 0x0dc5c0…0dc5e0 2f 6f 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 69 6f 66 3a 09 64 62 09 72 65 61 64 66 09 3b 69 6f 20 ┆/o operation iof: db readf ;io ┆ 0x0dc5e0…0dc600 66 75 6e 63 74 69 6f 6e 2c 20 69 6e 69 74 69 61 6c 20 72 65 61 64 0d 0a 69 6f 6e 3a 09 64 62 09 ┆function, initial read ion: db ┆ 0x0dc600…0dc620 (58, 1, 9) 6f 6e 20 30 30 0d 0a 09 73 74 61 09 35 0d 0a 09 6c 78 69 09 68 2c 62 64 6f 73 0d 0a 09 73 68 6c ┆on 00 sta 5 lxi h,bdos shl┆ 0x0dc620…0dc640 64 09 36 09 3b 6a 6d 70 20 62 64 6f 73 20 61 74 20 6c 6f 63 61 74 69 6f 6e 20 35 0d 0a 09 69 66 ┆d 6 ;jmp bdos at location 5 if┆ 0x0dc640…0dc660 09 6e 6f 74 20 74 65 73 74 0d 0a 09 73 74 61 09 37 2a 38 09 3b 6a 6d 70 20 74 6f 20 6d 6f 6e 38 ┆ not test sta 7*8 ;jmp to mon8┆ 0x0dc660…0dc680 30 20 28 6d 61 79 20 68 61 76 65 20 62 65 65 6e 20 63 68 61 6e 67 65 64 20 62 79 20 64 64 74 29 ┆0 (may have been changed by ddt)┆ 0x0dc680…0dc6a0 0d 0a 09 6c 78 69 09 68 2c 6d 6f 6e 38 30 0d 0a 09 73 68 6c 64 09 37 2a 38 2b 31 0d 0a 09 65 6e ┆ lxi h,mon80 shld 7*8+1 en┆ 0x0dc6a0…0dc6c0 64 69 66 0d 0a 3b 09 6c 65 61 76 65 20 69 6f 62 79 74 65 20 73 65 74 0d 0a 3b 09 70 72 65 76 69 ┆dif ; leave iobyte set ; previ┆ 0x0dc6c0…0dc6e0 6f 75 73 6c 79 20 73 65 6c 65 63 74 65 64 20 64 69 73 6b 20 77 61 73 20 62 2c 20 73 65 6e 64 20 ┆ously selected disk was b, send ┆ 0x0dc6e0…0dc700 70 61 72 61 6d 65 74 65 72 20 74 6f 20 63 70 6d 0d 0a 09 6c 64 61 09 63 64 69 73 6b 09 3b 6c 61 ┆parameter to cpm lda cdisk ;la┆ 0x0dc700…0dc720 73 74 20 6c 6f 67 67 65 64 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6d 6f 76 09 63 2c 61 09 ┆st logged disk number mov c,a ┆ 0x0dc720…0dc740 3b 73 65 6e 64 20 74 6f 20 63 63 70 20 74 6f 20 6c 6f 67 20 69 74 20 69 6e 0d 0a 09 65 69 0d 0a ┆;send to ccp to log it in ei ┆ 0x0dc740…0dc760 09 6a 6d 70 09 63 70 6d 62 0d 0a 3b 0d 0a 3b 09 65 72 72 6f 72 20 63 6f 6e 64 69 74 69 6f 6e 20 ┆ jmp cpmb ; ; error condition ┆ 0x0dc760…0dc780 6f 63 63 75 72 72 65 64 2c 20 70 72 69 6e 74 20 6d 65 73 73 61 67 65 20 61 6e 64 20 72 65 74 72 ┆occurred, print message and retr┆ 0x0dc780…0dc7a0 79 0d 0a 62 6f 6f 74 65 72 72 3a 0d 0a 09 70 6f 70 09 62 09 3b 72 65 63 61 6c 6c 20 63 6f 75 6e ┆y booterr: pop b ;recall coun┆ 0x0dc7a0…0dc7c0 74 73 0d 0a 09 64 63 72 09 63 0d 0a 09 6a 7a 09 62 6f 6f 74 65 72 30 0d 0a 3b 09 74 72 79 20 61 ┆ts dcr c jz booter0 ; try a┆ 0x0dc7c0…0dc7e0 67 61 69 6e 0d 0a 09 70 75 73 68 09 62 0d 0a 09 6a 6d 70 09 77 62 6f 6f 74 30 0d 0a 3b 0d 0a 62 ┆gain push b jmp wboot0 ; b┆ 0x0dc7e0…0dc800 6f 6f 74 65 72 30 3a 0d 0a 3b 09 6f 74 68 65 72 77 69 73 65 20 74 6f 6f 20 6d 61 6e 79 20 72 65 ┆ooter0: ; otherwise too many re┆ 0x0dc800…0dc820 (58, 1, 10) 74 0d 0a 73 65 63 74 72 61 6e 3a 0d 0a 09 09 3b 74 72 61 6e 73 6c 61 74 65 20 73 65 63 74 6f 72 ┆t sectran: ;translate sector┆ 0x0dc820…0dc840 20 62 63 20 75 73 69 6e 67 20 74 61 62 6c 65 20 61 74 20 64 65 0d 0a 09 6d 76 69 09 62 2c 30 09 ┆ bc using table at de mvi b,0 ┆ 0x0dc840…0dc860 3b 64 6f 75 62 6c 65 20 70 72 65 63 69 73 69 6f 6e 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 ┆;double precision sector number ┆ 0x0dc860…0dc880 69 6e 20 42 43 0d 0a 09 78 63 68 67 09 09 3b 74 72 61 6e 73 6c 61 74 65 20 74 61 62 6c 65 20 61 ┆in BC xchg ;translate table a┆ 0x0dc880…0dc8a0 64 64 72 65 73 73 20 74 6f 20 48 4c 0d 0a 09 64 61 64 09 62 09 3b 74 72 61 6e 73 6c 61 74 65 28 ┆ddress to HL dad b ;translate(┆ 0x0dc8a0…0dc8c0 73 65 63 74 6f 72 29 20 61 64 64 72 65 73 73 0d 0a 09 6d 6f 76 09 61 2c 6d 09 3b 74 72 61 6e 73 ┆sector) address mov a,m ;trans┆ 0x0dc8c0…0dc8e0 6c 61 74 65 64 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 74 6f 20 41 0d 0a 09 73 74 61 09 69 ┆lated sector number to A sta i┆ 0x0dc8e0…0dc900 6f 73 0d 0a 09 6d 6f 76 09 6c 2c 61 09 3b 72 65 74 75 72 6e 20 73 65 63 74 6f 72 20 6e 75 6d 62 ┆os mov l,a ;return sector numb┆ 0x0dc900…0dc920 65 72 20 69 6e 20 4c 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 73 65 74 64 6d 61 3a 09 3b 73 65 74 20 64 ┆er in L ret ; setdma: ;set d┆ 0x0dc920…0dc940 6d 61 20 61 64 64 72 65 73 73 20 67 69 76 65 6e 20 62 79 20 72 65 67 73 20 62 2c 63 0d 0a 09 6d ┆ma address given by regs b,c m┆ 0x0dc940…0dc960 6f 76 09 6c 2c 63 0d 0a 09 6d 6f 76 09 68 2c 62 0d 0a 09 73 68 6c 64 09 69 6f 64 0d 0a 09 72 65 ┆ov l,c mov h,b shld iod re┆ 0x0dc960…0dc980 74 0d 0a 3b 0d 0a 72 65 61 64 3a 09 3b 72 65 61 64 20 6e 65 78 74 20 64 69 73 6b 20 72 65 63 6f ┆t ; read: ;read next disk reco┆ 0x0dc980…0dc9a0 72 64 20 28 61 73 73 75 6d 69 6e 67 20 64 69 73 6b 2f 74 72 6b 2f 73 65 63 2f 64 6d 61 20 73 65 ┆rd (assuming disk/trk/sec/dma se┆ 0x0dc9a0…0dc9c0 74 29 0d 0a 09 6d 76 69 09 63 2c 72 65 61 64 66 09 3b 73 65 74 20 74 6f 20 72 65 61 64 20 66 75 ┆t) mvi c,readf ;set to read fu┆ 0x0dc9c0…0dc9e0 6e 63 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 73 65 74 66 75 6e 63 0d 0a 09 63 61 6c 6c 09 77 61 69 ┆nction call setfunc call wai┆ 0x0dc9e0…0dca00 74 69 6f 09 3b 70 65 72 66 6f 72 6d 20 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 72 65 74 ┆tio ;perform read function ret┆ 0x0dca00…0dca20 (58, 1, 11) 6f 20 63 6f 6d 70 6c 65 74 65 20 28 30 30 29 20 75 6e 6c 69 6e 6b 65 64 0d 0a 3b 09 30 30 20 75 ┆o complete (00) unlinked ; 00 u┆ 0x0dca20…0dca40 6e 6c 69 6e 6b 65 64 20 69 2f 6f 20 63 6f 6d 70 6c 65 74 65 2c 20 20 20 20 30 31 20 6c 69 6e 6b ┆nlinked i/o complete, 01 link┆ 0x0dca40…0dca60 65 64 20 69 2f 6f 20 63 6f 6d 70 6c 65 74 65 20 28 6e 6f 74 20 75 73 65 64 29 0d 0a 3b 09 31 30 ┆ed i/o complete (not used) ; 10┆ 0x0dca60…0dca80 20 64 69 73 6b 20 73 74 61 74 75 73 20 63 68 61 6e 67 65 64 20 20 20 20 20 20 20 31 31 20 28 6e ┆ disk status changed 11 (n┆ 0x0dca80…0dcaa0 6f 74 20 75 73 65 64 29 0d 0a 09 63 70 69 09 31 30 62 09 09 3b 72 65 61 64 79 20 73 74 61 74 75 ┆ot used) cpi 10b ;ready statu┆ 0x0dcaa0…0dcac0 73 20 63 68 61 6e 67 65 3f 0d 0a 09 6a 7a 09 77 72 65 61 64 79 0d 0a 3b 0d 0a 3b 09 6d 75 73 74 ┆s change? jz wready ; ; must┆ 0x0dcac0…0dcae0 20 62 65 20 30 30 20 69 6e 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 0d 0a 09 6f 72 61 09 ┆ be 00 in the accumulator ora ┆ 0x0dcae0…0dcb00 61 0d 0a 09 6a 6e 7a 09 77 65 72 72 6f 72 09 09 3b 73 6f 6d 65 20 6f 74 68 65 72 20 63 6f 6e 64 ┆a jnz werror ;some other cond┆ 0x0dcb00…0dcb20 69 74 69 6f 6e 2c 20 72 65 74 72 79 0d 0a 3b 0d 0a 3b 09 63 68 65 63 6b 20 69 2f 6f 20 65 72 72 ┆ition, retry ; ; check i/o err┆ 0x0dcb20…0dcb40 6f 72 20 62 69 74 73 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 0d 0a 09 72 61 6c 0d 0a 09 6a 63 ┆or bits call inbyte ral jc┆ 0x0dcb40…0dcb60 09 77 72 65 61 64 79 09 09 3b 75 6e 69 74 20 6e 6f 74 20 72 65 61 64 79 0d 0a 09 72 61 72 0d 0a ┆ wready ;unit not ready rar ┆ 0x0dcb60…0dcb80 09 61 6e 69 09 31 31 31 31 31 31 31 30 62 09 3b 61 6e 79 20 6f 74 68 65 72 20 65 72 72 6f 72 73 ┆ ani 11111110b ;any other errors┆ 0x0dcb80…0dcba0 3f 20 20 28 64 65 6c 65 74 65 64 20 64 61 74 61 20 6f 6b 29 0d 0a 09 6a 6e 7a 09 77 65 72 72 6f ┆? (deleted data ok) jnz werro┆ 0x0dcba0…0dcbc0 72 0d 0a 3b 0d 0a 3b 09 72 65 61 64 20 6f 72 20 77 72 69 74 65 20 69 73 20 6f 6b 2c 20 61 63 63 ┆r ; ; read or write is ok, acc┆ 0x0dcbc0…0dcbe0 75 6d 75 6c 61 74 6f 72 20 63 6f 6e 74 61 69 6e 73 20 7a 65 72 6f 0d 0a 09 72 65 74 0d 0a 3b 0d ┆umulator contains zero ret ; ┆ 0x0dcbe0…0dcc00 0a 77 72 65 61 64 79 3a 09 3b 6e 6f 74 20 72 65 61 64 79 2c 20 74 72 65 61 74 20 61 73 20 65 72 ┆ wready: ;not ready, treat as er┆ 0x0dcc00…0dcc20 (58, 1, 12) 31 09 3b 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 20 74 6f 20 72 65 61 64 0d 0a 69 6f ┆1 ;number of sectors to read io┆ 0x0dcc20…0dcc40 74 3a 09 64 62 09 6f 66 66 73 65 74 09 3b 74 72 61 63 6b 20 6e 75 6d 62 65 72 0d 0a 69 6f 73 3a ┆t: db offset ;track number ios:┆ 0x0dcc40…0dcc60 09 64 62 09 31 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 0d 0a 69 6f 64 3a 09 64 77 09 62 75 ┆ db 1 ;sector number iod: dw bu┆ 0x0dcc60…0dcc80 66 66 09 3b 69 6f 20 61 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 65 66 69 6e 65 20 72 ┆ff ;io address ; ; ; define r┆ 0x0dcc80…0dcca0 61 6d 20 61 72 65 61 73 20 66 6f 72 20 62 64 6f 73 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 09 65 6e ┆am areas for bdos operation en┆ 0x0dcca0…0dccc0 64 65 66 0d 0a 09 65 6e 64 0d 0a 3b 09 4d 44 53 2d 38 30 30 20 49 2f 4f 20 44 72 69 76 65 72 73 ┆def end ; MDS-800 I/O Drivers┆ 0x0dccc0…0dcce0 20 66 6f 72 20 43 50 2f 4d 20 32 2e 32 0d 0a 3b 09 28 66 6f 75 72 20 64 72 69 76 65 20 73 69 6e ┆ for CP/M 2.2 ; (four drive sin┆ 0x0dcce0…0dcd00 67 6c 65 20 64 65 6e 73 69 74 79 20 76 65 72 73 69 6f 6e 29 0d 0a 3b 0d 0a 3b 09 56 65 72 73 69 ┆gle density version) ; ; Versi┆ 0x0dcd00…0dcd20 6f 6e 20 32 2e 32 20 46 65 62 72 75 61 72 79 2c 20 31 39 38 30 0d 0a 3b 0d 0a 76 65 72 73 09 65 ┆on 2.2 February, 1980 ; vers e┆ 0x0dcd20…0dcd40 71 75 09 32 32 09 3b 76 65 72 73 69 6f 6e 20 32 2e 32 0d 0a 3b 0d 0a 3b 09 43 6f 70 79 72 69 67 ┆qu 22 ;version 2.2 ; ; Copyrig┆ 0x0dcd40…0dcd60 68 74 20 28 63 29 20 31 39 38 30 0d 0a 3b 09 44 69 67 69 74 61 6c 20 52 65 73 65 61 72 63 68 0d ┆ht (c) 1980 ; Digital Research ┆ 0x0dcd60…0dcd80 0a 3b 09 42 6f 78 20 35 37 39 2c 20 50 61 63 69 66 69 63 20 47 72 6f 76 65 0d 0a 3b 09 43 61 6c ┆ ; Box 579, Pacific Grove ; Cal┆ 0x0dcd80…0dcda0 69 66 6f 72 6e 69 61 2c 20 39 33 39 35 30 0d 0a 3b 0d 0a 3b 0d 0a 74 72 75 65 09 65 71 75 09 30 ┆ifornia, 93950 ; ; true equ 0┆ 0x0dcda0…0dcdc0 66 66 66 66 68 09 3b 76 61 6c 75 65 20 6f 66 20 22 74 72 75 65 22 0d 0a 66 61 6c 73 65 09 65 71 ┆ffffh ;value of "true" false eq┆ 0x0dcdc0…0dcde0 75 09 6e 6f 74 20 74 72 75 65 09 3b 22 66 61 6c 73 65 22 0d 0a 74 65 73 74 09 65 71 75 09 66 61 ┆u not true ;"false" test equ fa┆ 0x0dcde0…0dce00 6c 73 65 09 3b 74 72 75 65 20 69 66 20 74 65 73 74 20 62 69 6f 73 0d 0a 3b 0d 0a 09 69 66 09 74 ┆lse ;true if test bios ; if t┆ 0x0dce00…0dce20 (58, 1, 13) 74 72 69 65 73 0d 0a 09 6c 78 69 09 68 2c 62 6f 6f 74 6d 73 67 0d 0a 09 63 61 6c 6c 09 70 72 6d ┆tries lxi h,bootmsg call prm┆ 0x0dce20…0dce40 73 67 0d 0a 09 6a 6d 70 09 72 6d 6f 6e 38 30 09 3b 6d 64 73 20 68 61 72 64 77 61 72 65 20 6d 6f ┆sg jmp rmon80 ;mds hardware mo┆ 0x0dce40…0dce60 6e 69 74 6f 72 0d 0a 3b 0d 0a 62 6f 6f 74 6d 73 67 3a 0d 0a 09 64 62 09 27 3f 62 6f 6f 74 27 2c ┆nitor ; bootmsg: db '?boot',┆ 0x0dce60…0dce80 30 0d 0a 3b 0d 0a 3b 0d 0a 63 6f 6e 73 74 3a 09 3b 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 20 ┆0 ; ; const: ;console status ┆ 0x0dce80…0dcea0 74 6f 20 72 65 67 2d 61 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 ┆to reg-a ; (exactly the same as┆ 0x0dcea0…0dcec0 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 63 73 74 73 0d 0a 3b 0d 0a 63 6f 6e 69 6e 3a ┆ mds call) jmp csts ; conin:┆ 0x0dcec0…0dcee0 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 72 65 67 2d 61 0d 0a 09 63 ┆ ;console character to reg-a c┆ 0x0dcee0…0dcf00 61 6c 6c 09 63 69 0d 0a 09 61 6e 69 09 37 66 68 09 3b 72 65 6d 6f 76 65 20 70 61 72 69 74 79 20 ┆all ci ani 7fh ;remove parity ┆ 0x0dcf00…0dcf20 62 69 74 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 63 6f 6e 6f 75 74 3a 09 3b 63 6f 6e 73 6f 6c 65 20 63 ┆bit ret ; conout: ;console c┆ 0x0dcf20…0dcf40 68 61 72 61 63 74 65 72 20 66 72 6f 6d 20 63 20 74 6f 20 63 6f 6e 73 6f 6c 65 20 6f 75 74 0d 0a ┆haracter from c to console out ┆ 0x0dcf40…0dcf60 09 6a 6d 70 09 63 6f 0d 0a 3b 0d 0a 6c 69 73 74 3a 09 3b 6c 69 73 74 20 64 65 76 69 63 65 20 6f ┆ jmp co ; list: ;list device o┆ 0x0dcf60…0dcf80 75 74 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 ┆ut ; (exactly the same as mds c┆ 0x0dcf80…0dcfa0 61 6c 6c 29 0d 0a 09 6a 6d 70 09 6c 6f 0d 0a 3b 0d 0a 6c 69 73 74 73 74 3a 0d 0a 09 3b 72 65 74 ┆all) jmp lo ; listst: ;ret┆ 0x0dcfa0…0dcfc0 75 72 6e 20 6c 69 73 74 20 73 74 61 74 75 73 0d 0a 09 78 72 61 09 61 0d 0a 09 72 65 74 09 09 3b ┆urn list status xra a ret ;┆ 0x0dcfc0…0dcfe0 61 6c 77 61 79 73 20 6e 6f 74 20 72 65 61 64 79 0d 0a 3b 0d 0a 70 75 6e 63 68 3a 09 3b 70 75 6e ┆always not ready ; punch: ;pun┆ 0x0dcfe0…0dd000 63 68 20 64 65 76 69 63 65 20 6f 75 74 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 ┆ch device out ; (exactly the sa┆ 0x0dd000…0dd020 (58, 1, 14) 09 09 3b 6d 61 79 20 68 61 76 65 20 65 72 72 6f 72 20 73 65 74 20 69 6e 20 72 65 67 2d 61 0d 0a ┆ ;may have error set in reg-a ┆ 0x0dd020…0dd040 3b 0d 0a 3b 0d 0a 77 72 69 74 65 3a 09 3b 64 69 73 6b 20 77 72 69 74 65 20 66 75 6e 63 74 69 6f ┆; ; write: ;disk write functio┆ 0x0dd040…0dd060 6e 0d 0a 09 6d 76 69 09 63 2c 77 72 69 74 66 0d 0a 09 63 61 6c 6c 09 73 65 74 66 75 6e 63 09 3b ┆n mvi c,writf call setfunc ;┆ 0x0dd060…0dd080 73 65 74 20 74 6f 20 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 77 61 69 ┆set to write function call wai┆ 0x0dd080…0dd0a0 74 69 6f 0d 0a 09 72 65 74 09 09 3b 6d 61 79 20 68 61 76 65 20 65 72 72 6f 72 20 73 65 74 0d 0a ┆tio ret ;may have error set ┆ 0x0dd0a0…0dd0c0 3b 0d 0a 3b 0d 0a 3b 09 75 74 69 6c 69 74 79 20 73 75 62 72 6f 75 74 69 6e 65 73 0d 0a 70 72 6d ┆; ; ; utility subroutines prm┆ 0x0dd0c0…0dd0e0 73 67 3a 09 3b 70 72 69 6e 74 20 6d 65 73 73 61 67 65 20 61 74 20 68 2c 6c 20 74 6f 20 30 0d 0a ┆sg: ;print message at h,l to 0 ┆ 0x0dd0e0…0dd100 09 6d 6f 76 09 61 2c 6d 0d 0a 09 6f 72 61 09 61 09 3b 7a 65 72 6f 3f 0d 0a 09 72 7a 0d 0a 3b 09 ┆ mov a,m ora a ;zero? rz ; ┆ 0x0dd100…0dd120 6d 6f 72 65 20 74 6f 20 70 72 69 6e 74 0d 0a 09 70 75 73 68 09 68 0d 0a 09 6d 6f 76 09 63 2c 61 ┆more to print push h mov c,a┆ 0x0dd120…0dd140 0d 0a 09 63 61 6c 6c 09 63 6f 6e 6f 75 74 0d 0a 09 70 6f 70 09 68 0d 0a 09 69 6e 78 09 68 0d 0a ┆ call conout pop h inx h ┆ 0x0dd140…0dd160 09 6a 6d 70 09 70 72 6d 73 67 0d 0a 3b 0d 0a 73 65 74 66 75 6e 63 3a 0d 0a 3b 09 73 65 74 20 66 ┆ jmp prmsg ; setfunc: ; set f┆ 0x0dd160…0dd180 75 6e 63 74 69 6f 6e 20 66 6f 72 20 6e 65 78 74 20 69 2f 6f 20 28 63 6f 6d 6d 61 6e 64 20 69 6e ┆unction for next i/o (command in┆ 0x0dd180…0dd1a0 20 72 65 67 2d 63 29 0d 0a 09 6c 78 69 09 68 2c 69 6f 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e ┆ reg-c) lxi h,iof ;io function┆ 0x0dd1a0…0dd1c0 20 61 64 64 72 65 73 73 0d 0a 09 6d 6f 76 09 61 2c 6d 09 3b 67 65 74 20 69 74 20 74 6f 20 61 63 ┆ address mov a,m ;get it to ac┆ 0x0dd1c0…0dd1e0 63 75 6d 75 6c 61 74 6f 72 20 66 6f 72 20 6d 61 73 6b 69 6e 67 0d 0a 09 61 6e 69 09 31 31 31 31 ┆cumulator for masking ani 1111┆ 0x0dd1e0…0dd200 31 30 30 30 62 09 3b 72 65 6d 6f 76 65 20 70 72 65 76 69 6f 75 73 20 63 6f 6d 6d 61 6e 64 0d 0a ┆1000b ;remove previous command ┆ 0x0dd200…0dd220 (58, 1, 15) 72 6f 72 20 66 6f 72 20 6e 6f 77 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 09 09 3b 63 6c 65 61 ┆ror for now call inbyte ;clea┆ 0x0dd220…0dd240 72 20 72 65 73 75 6c 74 20 62 79 74 65 0d 0a 09 6a 6d 70 09 74 72 79 63 6f 75 6e 74 0d 0a 3b 0d ┆r result byte jmp trycount ; ┆ 0x0dd240…0dd260 0a 77 65 72 72 6f 72 3a 09 3b 72 65 74 75 72 6e 20 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e ┆ werror: ;return hardware malfun┆ 0x0dd260…0dd280 63 74 69 6f 6e 20 28 63 72 63 2c 20 74 72 61 63 6b 2c 20 73 65 65 6b 2c 20 65 74 63 2e 29 0d 0a ┆ction (crc, track, seek, etc.) ┆ 0x0dd280…0dd2a0 3b 09 74 68 65 20 6d 64 73 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 68 61 73 20 72 65 74 75 72 6e 65 ┆; the mds controller has returne┆ 0x0dd2a0…0dd2c0 64 20 61 20 62 69 74 20 69 6e 20 65 61 63 68 20 70 6f 73 69 74 69 6f 6e 0d 0a 3b 09 6f 66 20 74 ┆d a bit in each position ; of t┆ 0x0dd2c0…0dd2e0 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 2c 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f ┆he accumulator, corresponding to┆ 0x0dd2e0…0dd300 20 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e 73 3a 0d 0a 3b 09 30 09 2d 20 64 65 6c 65 74 65 64 20 ┆ the conditions: ; 0 - deleted ┆ 0x0dd300…0dd320 64 61 74 61 20 28 61 63 63 65 70 74 65 64 20 61 73 20 6f 6b 20 61 62 6f 76 65 29 0d 0a 3b 09 31 ┆data (accepted as ok above) ; 1┆ 0x0dd320…0dd340 09 2d 20 63 72 63 20 65 72 72 6f 72 0d 0a 3b 09 32 09 2d 20 73 65 65 6b 20 65 72 72 6f 72 0d 0a ┆ - crc error ; 2 - seek error ┆ 0x0dd340…0dd360 3b 09 33 09 2d 20 61 64 64 72 65 73 73 20 65 72 72 6f 72 20 28 68 61 72 64 77 61 72 65 20 6d 61 ┆; 3 - address error (hardware ma┆ 0x0dd360…0dd380 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 34 09 2d 20 64 61 74 61 20 6f 76 65 72 2f 75 6e 64 65 ┆lfunction) ; 4 - data over/unde┆ 0x0dd380…0dd3a0 72 20 66 6c 6f 77 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b ┆r flow (hardware malfunction) ;┆ 0x0dd3a0…0dd3c0 09 35 09 2d 20 77 72 69 74 65 20 70 72 6f 74 65 63 74 20 28 74 72 65 61 74 65 64 20 61 73 20 6e ┆ 5 - write protect (treated as n┆ 0x0dd3c0…0dd3e0 6f 74 20 72 65 61 64 79 29 0d 0a 3b 09 36 09 2d 20 77 72 69 74 65 20 65 72 72 6f 72 20 28 68 61 ┆ot ready) ; 6 - write error (ha┆ 0x0dd3e0…0dd400 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 37 09 2d 20 6e 6f 74 20 72 ┆rdware malfunction) ; 7 - not r┆ 0x0dd400…0dd420 (59, 0, 1) 65 73 74 0d 0a 62 69 61 73 09 65 71 75 09 30 33 34 30 30 68 09 3b 62 61 73 65 20 6f 66 20 43 43 ┆est bias equ 03400h ;base of CC┆ 0x0dd420…0dd440 50 20 69 6e 20 74 65 73 74 20 73 79 73 74 65 6d 0d 0a 09 65 6e 64 69 66 0d 0a 09 69 66 09 6e 6f ┆P in test system endif if no┆ 0x0dd440…0dd460 74 20 74 65 73 74 0d 0a 62 69 61 73 09 65 71 75 09 30 30 30 30 68 09 3b 67 65 6e 65 72 61 74 65 ┆t test bias equ 0000h ;generate┆ 0x0dd460…0dd480 20 72 65 6c 6f 63 61 74 61 62 6c 65 20 63 70 2f 6d 20 73 79 73 74 65 6d 0d 0a 09 65 6e 64 69 66 ┆ relocatable cp/m system endif┆ 0x0dd480…0dd4a0 0d 0a 3b 0d 0a 70 61 74 63 68 09 65 71 75 09 31 36 30 30 68 0d 0a 3b 0d 0a 09 6f 72 67 09 70 61 ┆ ; patch equ 1600h ; org pa┆ 0x0dd4a0…0dd4c0 74 63 68 0d 0a 63 70 6d 62 09 65 71 75 09 24 2d 70 61 74 63 68 09 3b 62 61 73 65 20 6f 66 20 63 ┆tch cpmb equ $-patch ;base of c┆ 0x0dd4c0…0dd4e0 70 6d 20 63 6f 6e 73 6f 6c 65 20 70 72 6f 63 65 73 73 6f 72 0d 0a 62 64 6f 73 09 65 71 75 09 38 ┆pm console processor bdos equ 8┆ 0x0dd4e0…0dd500 30 36 68 2b 63 70 6d 62 09 3b 62 61 73 69 63 20 64 6f 73 20 28 72 65 73 69 64 65 6e 74 20 70 6f ┆06h+cpmb ;basic dos (resident po┆ 0x0dd500…0dd520 72 74 69 6f 6e 29 0d 0a 63 70 6d 6c 09 65 71 75 09 24 2d 63 70 6d 62 09 3b 6c 65 6e 67 74 68 20 ┆rtion) cpml equ $-cpmb ;length ┆ 0x0dd520…0dd540 28 69 6e 20 62 79 74 65 73 29 20 6f 66 20 63 70 6d 20 73 79 73 74 65 6d 0d 0a 6e 73 65 63 74 73 ┆(in bytes) of cpm system nsects┆ 0x0dd540…0dd560 09 65 71 75 09 63 70 6d 6c 2f 31 32 38 09 3b 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 ┆ equ cpml/128 ;number of sectors┆ 0x0dd560…0dd580 20 74 6f 20 6c 6f 61 64 0d 0a 6f 66 66 73 65 74 09 65 71 75 09 32 09 3b 6e 75 6d 62 65 72 20 6f ┆ to load offset equ 2 ;number o┆ 0x0dd580…0dd5a0 66 20 64 69 73 6b 20 74 72 61 63 6b 73 20 75 73 65 64 20 62 79 20 63 70 2f 6d 0d 0a 63 64 69 73 ┆f disk tracks used by cp/m cdis┆ 0x0dd5a0…0dd5c0 6b 09 65 71 75 09 30 30 30 34 68 09 3b 61 64 64 72 65 73 73 20 6f 66 20 6c 61 73 74 20 6c 6f 67 ┆k equ 0004h ;address of last log┆ 0x0dd5c0…0dd5e0 67 65 64 20 64 69 73 6b 20 6f 6e 20 77 61 72 6d 20 73 74 61 72 74 0d 0a 62 75 66 66 09 65 71 75 ┆ged disk on warm start buff equ┆ 0x0dd5e0…0dd600 09 30 30 38 30 68 09 3b 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 0d 0a ┆ 0080h ;default buffer address ┆ 0x0dd600…0dd620 (59, 0, 2) 6e 64 65 70 65 6e 64 65 6e 74 20 63 6f 64 65 2c 20 74 68 65 20 72 65 6d 61 69 6e 69 6e 67 20 73 ┆ndependent code, the remaining s┆ 0x0dd620…0dd640 75 62 72 6f 75 74 69 6e 65 73 0d 0a 3b 09 61 72 65 20 74 61 69 6c 6f 72 65 64 20 74 6f 20 74 68 ┆ubroutines ; are tailored to th┆ 0x0dd640…0dd660 65 20 70 61 72 74 69 63 75 6c 61 72 20 6f 70 65 72 61 74 69 6e 67 20 65 6e 76 69 72 6f 6e 6d 65 ┆e particular operating environme┆ 0x0dd660…0dd680 6e 74 2c 20 61 6e 64 20 6d 75 73 74 0d 0a 3b 09 62 65 20 61 6c 74 65 72 65 64 20 66 6f 72 20 61 ┆nt, and must ; be altered for a┆ 0x0dd680…0dd6a0 6e 79 20 73 79 73 74 65 6d 20 77 68 69 63 68 20 64 69 66 66 65 72 73 20 66 72 6f 6d 20 74 68 65 ┆ny system which differs from the┆ 0x0dd6a0…0dd6c0 20 69 6e 74 65 6c 20 6d 64 73 2e 0d 0a 3b 0d 0a 3b 09 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 ┆ intel mds. ; ; the following ┆ 0x0dd6c0…0dd6e0 63 6f 64 65 20 61 73 73 75 6d 65 73 20 74 68 65 20 6d 64 73 20 6d 6f 6e 69 74 6f 72 20 65 78 69 ┆code assumes the mds monitor exi┆ 0x0dd6e0…0dd700 73 74 73 20 61 74 20 30 66 38 30 30 68 0d 0a 3b 09 61 6e 64 20 75 73 65 73 20 74 68 65 20 69 2f ┆sts at 0f800h ; and uses the i/┆ 0x0dd700…0dd720 6f 20 73 75 62 72 6f 75 74 69 6e 65 73 20 77 69 74 68 69 6e 20 74 68 65 20 6d 6f 6e 69 74 6f 72 ┆o subroutines within the monitor┆ 0x0dd720…0dd740 0d 0a 3b 0d 0a 3b 09 77 65 20 61 6c 73 6f 20 61 73 73 75 6d 65 20 74 68 65 20 6d 64 73 20 73 79 ┆ ; ; we also assume the mds sy┆ 0x0dd740…0dd760 73 74 65 6d 20 68 61 73 20 66 6f 75 72 20 64 69 73 6b 20 64 72 69 76 65 73 0d 0a 72 65 76 72 74 ┆stem has four disk drives revrt┆ 0x0dd760…0dd780 09 65 71 75 09 30 66 64 68 09 3b 69 6e 74 65 72 72 75 70 74 20 72 65 76 65 72 74 20 70 6f 72 74 ┆ equ 0fdh ;interrupt revert port┆ 0x0dd780…0dd7a0 0d 0a 69 6e 74 63 09 65 71 75 09 30 66 63 68 09 3b 69 6e 74 65 72 72 75 70 74 20 6d 61 73 6b 20 ┆ intc equ 0fch ;interrupt mask ┆ 0x0dd7a0…0dd7c0 70 6f 72 74 0d 0a 69 63 6f 6e 09 65 71 75 09 30 66 33 68 09 3b 69 6e 74 65 72 72 75 70 74 20 63 ┆port icon equ 0f3h ;interrupt c┆ 0x0dd7c0…0dd7e0 6f 6e 74 72 6f 6c 20 70 6f 72 74 0d 0a 69 6e 74 65 09 65 71 75 09 30 31 31 31 24 31 31 31 30 62 ┆ontrol port inte equ 0111$1110b┆ 0x0dd7e0…0dd800 09 3b 65 6e 61 62 6c 65 20 72 73 74 20 30 28 77 61 72 6d 20 62 6f 6f 74 29 2c 20 72 73 74 20 37 ┆ ;enable rst 0(warm boot), rst 7┆ 0x0dd800…0dd820 (59, 0, 3) 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 73 74 61 63 6b 0d 0a 3b 0d 0a 09 6d 76 69 09 63 2c 72 65 ┆vailable for stack ; mvi c,re┆ 0x0dd820…0dd840 74 72 79 09 3b 6d 61 78 20 72 65 74 72 69 65 73 0d 0a 09 70 75 73 68 09 62 0d 0a 77 62 6f 6f 74 ┆try ;max retries push b wboot┆ 0x0dd840…0dd860 30 3a 09 3b 65 6e 74 65 72 20 68 65 72 65 20 6f 6e 20 65 72 72 6f 72 20 72 65 74 72 69 65 73 0d ┆0: ;enter here on error retries ┆ 0x0dd860…0dd880 0a 09 6c 78 69 09 62 2c 63 70 6d 62 09 3b 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 74 6f ┆ lxi b,cpmb ;set dma address to┆ 0x0dd880…0dd8a0 20 73 74 61 72 74 20 6f 66 20 64 69 73 6b 20 73 79 73 74 65 6d 0d 0a 09 63 61 6c 6c 09 73 65 74 ┆ start of disk system call set┆ 0x0dd8a0…0dd8c0 64 6d 61 0d 0a 09 6d 76 69 09 63 2c 30 09 3b 62 6f 6f 74 20 66 72 6f 6d 20 64 72 69 76 65 20 30 ┆dma mvi c,0 ;boot from drive 0┆ 0x0dd8c0…0dd8e0 0d 0a 09 63 61 6c 6c 09 73 65 6c 64 73 6b 0d 0a 09 6d 76 69 09 63 2c 30 0d 0a 09 63 61 6c 6c 09 ┆ call seldsk mvi c,0 call ┆ 0x0dd8e0…0dd900 73 65 74 74 72 6b 09 3b 73 74 61 72 74 20 77 69 74 68 20 74 72 61 63 6b 20 30 0d 0a 09 6d 76 69 ┆settrk ;start with track 0 mvi┆ 0x0dd900…0dd920 09 63 2c 32 09 3b 73 74 61 72 74 20 72 65 61 64 69 6e 67 20 73 65 63 74 6f 72 20 32 0d 0a 09 63 ┆ c,2 ;start reading sector 2 c┆ 0x0dd920…0dd940 61 6c 6c 09 73 65 74 73 65 63 0d 0a 3b 0d 0a 3b 09 72 65 61 64 20 73 65 63 74 6f 72 73 2c 20 63 ┆all setsec ; ; read sectors, c┆ 0x0dd940…0dd960 6f 75 6e 74 20 6e 73 65 63 74 73 20 74 6f 20 7a 65 72 6f 0d 0a 09 70 6f 70 09 62 09 3b 31 30 2d ┆ount nsects to zero pop b ;10-┆ 0x0dd960…0dd980 65 72 72 6f 72 20 63 6f 75 6e 74 0d 0a 09 6d 76 69 09 62 2c 6e 73 65 63 74 73 0d 0a 72 64 73 65 ┆error count mvi b,nsects rdse┆ 0x0dd980…0dd9a0 63 3a 09 3b 72 65 61 64 20 6e 65 78 74 20 73 65 63 74 6f 72 0d 0a 09 70 75 73 68 09 62 09 3b 73 ┆c: ;read next sector push b ;s┆ 0x0dd9a0…0dd9c0 61 76 65 20 73 65 63 74 6f 72 20 63 6f 75 6e 74 0d 0a 09 63 61 6c 6c 09 72 65 61 64 0d 0a 09 6a ┆ave sector count call read j┆ 0x0dd9c0…0dd9e0 6e 7a 09 62 6f 6f 74 65 72 72 09 3b 72 65 74 72 79 20 69 66 20 65 72 72 6f 72 73 20 6f 63 63 75 ┆nz booterr ;retry if errors occu┆ 0x0dd9e0…0dda00 72 0d 0a 09 6c 68 6c 64 09 69 6f 64 09 3b 69 6e 63 72 65 6d 65 6e 74 20 64 6d 61 20 61 64 64 72 ┆r lhld iod ;increment dma addr┆ 0x0dda00…0dda20 (59, 0, 4) 6f 6f 74 27 2c 30 0d 0a 3b 0d 0a 3b 0d 0a 63 6f 6e 73 74 3a 09 3b 63 6f 6e 73 6f 6c 65 20 73 74 ┆oot',0 ; ; const: ;console st┆ 0x0dda20…0dda40 61 74 75 73 20 74 6f 20 72 65 67 2d 61 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 ┆atus to reg-a ; (exactly the sa┆ 0x0dda40…0dda60 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 63 73 74 73 0d 0a 3b 0d 0a 63 ┆me as mds call) jmp csts ; c┆ 0x0dda60…0dda80 6f 6e 69 6e 3a 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 72 65 67 2d ┆onin: ;console character to reg-┆ 0x0dda80…0ddaa0 61 0d 0a 09 63 61 6c 6c 09 63 69 0d 0a 09 61 6e 69 09 37 66 68 09 3b 72 65 6d 6f 76 65 20 70 61 ┆a call ci ani 7fh ;remove pa┆ 0x0ddaa0…0ddac0 72 69 74 79 20 62 69 74 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 63 6f 6e 6f 75 74 3a 09 3b 63 6f 6e 73 ┆rity bit ret ; conout: ;cons┆ 0x0ddac0…0ddae0 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 66 72 6f 6d 20 63 20 74 6f 20 63 6f 6e 73 6f 6c 65 20 ┆ole character from c to console ┆ 0x0ddae0…0ddb00 6f 75 74 0d 0a 09 6a 6d 70 09 63 6f 0d 0a 3b 0d 0a 6c 69 73 74 3a 09 3b 6c 69 73 74 20 64 65 76 ┆out jmp co ; list: ;list dev┆ 0x0ddb00…0ddb20 69 63 65 20 6f 75 74 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 ┆ice out ; (exactly the same as ┆ 0x0ddb20…0ddb40 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 6c 6f 0d 0a 3b 0d 0a 6c 69 73 74 73 74 3a 0d 0a ┆mds call) jmp lo ; listst: ┆ 0x0ddb40…0ddb60 09 3b 72 65 74 75 72 6e 20 6c 69 73 74 20 73 74 61 74 75 73 0d 0a 09 78 72 61 09 61 0d 0a 09 72 ┆ ;return list status xra a r┆ 0x0ddb60…0ddb80 65 74 09 09 3b 61 6c 77 61 79 73 20 6e 6f 74 20 72 65 61 64 79 0d 0a 3b 0d 0a 70 75 6e 63 68 3a ┆et ;always not ready ; punch:┆ 0x0ddb80…0ddba0 09 3b 70 75 6e 63 68 20 64 65 76 69 63 65 20 6f 75 74 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 ┆ ;punch device out ; (exactly t┆ 0x0ddba0…0ddbc0 68 65 20 73 61 6d 65 20 61 73 20 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 70 6f 0d 0a 3b ┆he same as mds call) jmp po ;┆ 0x0ddbc0…0ddbe0 0d 0a 72 65 61 64 65 72 3a 09 3b 72 65 61 64 65 72 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 74 ┆ reader: ;reader character in t┆ 0x0ddbe0…0ddc00 6f 20 72 65 67 2d 61 0d 0a 3b 09 28 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 ┆o reg-a ; (exactly the same as ┆ 0x0ddc00…0ddc20 (59, 0, 5) 72 65 74 72 79 09 65 71 75 09 31 30 09 3b 6d 61 78 20 72 65 74 72 69 65 73 20 6f 6e 20 64 69 73 ┆retry equ 10 ;max retries on dis┆ 0x0ddc20…0ddc40 6b 20 69 2f 6f 20 62 65 66 6f 72 65 20 65 72 72 6f 72 0d 0a 3b 0d 0a 3b 09 70 65 72 66 6f 72 6d ┆k i/o before error ; ; perform┆ 0x0ddc40…0ddc60 20 66 6f 6c 6c 6f 77 69 6e 67 20 66 75 6e 63 74 69 6f 6e 73 0d 0a 3b 09 62 6f 6f 74 09 63 6f 6c ┆ following functions ; boot col┆ 0x0ddc60…0ddc80 64 20 73 74 61 72 74 0d 0a 3b 09 77 62 6f 6f 74 09 77 61 72 6d 20 73 74 61 72 74 20 28 73 61 76 ┆d start ; wboot warm start (sav┆ 0x0ddc80…0ddca0 65 20 69 2f 6f 20 62 79 74 65 29 0d 0a 3b 09 28 62 6f 6f 74 20 61 6e 64 20 77 62 6f 6f 74 20 61 ┆e i/o byte) ; (boot and wboot a┆ 0x0ddca0…0ddcc0 72 65 20 74 68 65 20 73 61 6d 65 20 66 6f 72 20 6d 64 73 29 0d 0a 3b 09 63 6f 6e 73 74 09 63 6f ┆re the same for mds) ; const co┆ 0x0ddcc0…0ddce0 6e 73 6f 6c 65 20 73 74 61 74 75 73 0d 0a 3b 09 09 72 65 67 2d 61 20 3d 20 30 30 20 69 66 20 6e ┆nsole status ; reg-a = 00 if n┆ 0x0ddce0…0ddd00 6f 20 63 68 61 72 61 63 74 65 72 20 72 65 61 64 79 0d 0a 3b 09 09 72 65 67 2d 61 20 3d 20 66 66 ┆o character ready ; reg-a = ff┆ 0x0ddd00…0ddd20 20 69 66 20 63 68 61 72 61 63 74 65 72 20 72 65 61 64 79 0d 0a 3b 09 63 6f 6e 69 6e 09 63 6f 6e ┆ if character ready ; conin con┆ 0x0ddd20…0ddd40 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 28 72 65 73 75 6c 74 20 69 6e 20 72 65 67 ┆sole character in (result in reg┆ 0x0ddd40…0ddd60 2d 61 29 0d 0a 3b 09 63 6f 6e 6f 75 74 09 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 ┆-a) ; conout console character ┆ 0x0ddd60…0ddd80 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 6c 69 73 74 09 6c 69 73 74 ┆out (char in reg-c) ; list list┆ 0x0ddd80…0ddda0 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 70 75 6e 63 68 09 70 75 ┆ out (char in reg-c) ; punch pu┆ 0x0ddda0…0dddc0 6e 63 68 20 6f 75 74 20 28 63 68 61 72 20 69 6e 20 72 65 67 2d 63 29 0d 0a 3b 09 72 65 61 64 65 ┆nch out (char in reg-c) ; reade┆ 0x0dddc0…0ddde0 72 09 70 61 70 65 72 20 74 61 70 65 20 72 65 61 64 65 72 20 69 6e 20 28 72 65 73 75 6c 74 20 74 ┆r paper tape reader in (result t┆ 0x0ddde0…0dde00 6f 20 72 65 67 2d 61 29 0d 0a 3b 09 68 6f 6d 65 09 6d 6f 76 65 20 74 6f 20 74 72 61 63 6b 20 30 ┆o reg-a) ; home move to track 0┆ 0x0dde00…0dde20 (59, 0, 6) 20 28 6d 6f 6e 69 74 6f 72 29 0d 0a 3b 0d 0a 3b 09 6d 64 73 20 6d 6f 6e 69 74 6f 72 20 65 71 75 ┆ (monitor) ; ; mds monitor equ┆ 0x0dde20…0dde40 61 74 65 73 0d 0a 6d 6f 6e 38 30 09 65 71 75 09 30 66 38 30 30 68 09 3b 6d 64 73 20 6d 6f 6e 69 ┆ates mon80 equ 0f800h ;mds moni┆ 0x0dde40…0dde60 74 6f 72 0d 0a 72 6d 6f 6e 38 30 09 65 71 75 09 30 66 66 30 66 68 09 3b 72 65 73 74 61 72 74 20 ┆tor rmon80 equ 0ff0fh ;restart ┆ 0x0dde60…0dde80 6d 6f 6e 38 30 20 28 62 6f 6f 74 20 65 72 72 6f 72 29 0d 0a 63 69 09 65 71 75 09 30 66 38 30 33 ┆mon80 (boot error) ci equ 0f803┆ 0x0dde80…0ddea0 68 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 72 65 67 2d 61 0d 0a 72 ┆h ;console character to reg-a r┆ 0x0ddea0…0ddec0 69 09 65 71 75 09 30 66 38 30 36 68 09 3b 72 65 61 64 65 72 20 69 6e 20 74 6f 20 72 65 67 2d 61 ┆i equ 0f806h ;reader in to reg-a┆ 0x0ddec0…0ddee0 0d 0a 63 6f 09 65 71 75 09 30 66 38 30 39 68 09 3b 63 6f 6e 73 6f 6c 65 20 63 68 61 72 20 66 72 ┆ co equ 0f809h ;console char fr┆ 0x0ddee0…0ddf00 6f 6d 20 63 20 74 6f 20 63 6f 6e 73 6f 6c 65 20 6f 75 74 0d 0a 70 6f 09 65 71 75 09 30 66 38 30 ┆om c to console out po equ 0f80┆ 0x0ddf00…0ddf20 63 68 09 3b 70 75 6e 63 68 20 63 68 61 72 20 66 72 6f 6d 20 63 20 74 6f 20 70 75 6e 63 68 20 64 ┆ch ;punch char from c to punch d┆ 0x0ddf20…0ddf40 65 76 69 63 65 0d 0a 6c 6f 09 65 71 75 09 30 66 38 30 66 68 09 3b 6c 69 73 74 20 66 72 6f 6d 20 ┆evice lo equ 0f80fh ;list from ┆ 0x0ddf40…0ddf60 63 20 74 6f 20 6c 69 73 74 20 64 65 76 69 63 65 0d 0a 63 73 74 73 09 65 71 75 09 30 66 38 31 32 ┆c to list device csts equ 0f812┆ 0x0ddf60…0ddf80 68 09 3b 63 6f 6e 73 6f 6c 65 20 73 74 61 74 75 73 20 30 30 2f 66 66 20 74 6f 20 72 65 67 69 73 ┆h ;console status 00/ff to regis┆ 0x0ddf80…0ddfa0 74 65 72 20 61 0d 0a 3b 0d 0a 3b 09 64 69 73 6b 20 70 6f 72 74 73 20 61 6e 64 20 63 6f 6d 6d 61 ┆ter a ; ; disk ports and comma┆ 0x0ddfa0…0ddfc0 6e 64 73 0d 0a 62 61 73 65 09 65 71 75 09 37 38 68 09 3b 62 61 73 65 20 6f 66 20 64 69 73 6b 20 ┆nds base equ 78h ;base of disk ┆ 0x0ddfc0…0ddfe0 63 6f 6d 6d 61 6e 64 20 69 6f 20 70 6f 72 74 73 0d 0a 64 73 74 61 74 09 65 71 75 09 62 61 73 65 ┆command io ports dstat equ base┆ 0x0ddfe0…0de000 09 3b 64 69 73 6b 20 73 74 61 74 75 73 20 28 69 6e 70 75 74 29 0d 0a 72 74 79 70 65 09 65 71 75 ┆ ;disk status (input) rtype equ┆ 0x0de000…0de020 (59, 0, 7) 65 73 73 0d 0a 09 6c 78 69 09 64 2c 31 32 38 09 3b 73 65 63 74 6f 72 20 73 69 7a 65 0d 0a 09 64 ┆ess lxi d,128 ;sector size d┆ 0x0de020…0de040 61 64 09 64 09 3b 69 6e 63 72 65 6d 65 6e 74 65 64 20 64 6d 61 20 61 64 64 72 65 73 73 20 69 6e ┆ad d ;incremented dma address in┆ 0x0de040…0de060 20 68 6c 0d 0a 09 6d 6f 76 09 62 2c 68 0d 0a 09 6d 6f 76 09 63 2c 6c 09 3b 72 65 61 64 79 20 66 ┆ hl mov b,h mov c,l ;ready f┆ 0x0de060…0de080 6f 72 20 63 61 6c 6c 20 74 6f 20 73 65 74 20 64 6d 61 0d 0a 09 63 61 6c 6c 09 73 65 74 64 6d 61 ┆or call to set dma call setdma┆ 0x0de080…0de0a0 0d 0a 09 6c 64 61 09 69 6f 73 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 6a 75 73 74 20 72 ┆ lda ios ;sector number just r┆ 0x0de0a0…0de0c0 65 61 64 0d 0a 09 63 70 69 09 32 36 09 3b 72 65 61 64 20 6c 61 73 74 20 73 65 63 74 6f 72 3f 0d ┆ead cpi 26 ;read last sector? ┆ 0x0de0c0…0de0e0 0a 09 6a 63 09 72 64 31 0d 0a 3b 09 6d 75 73 74 20 62 65 20 73 65 63 74 6f 72 20 32 36 2c 20 7a ┆ jc rd1 ; must be sector 26, z┆ 0x0de0e0…0de100 65 72 6f 20 61 6e 64 20 67 6f 20 74 6f 20 6e 65 78 74 20 74 72 61 63 6b 0d 0a 09 6c 64 61 09 69 ┆ero and go to next track lda i┆ 0x0de100…0de120 6f 74 09 3b 67 65 74 20 74 72 61 63 6b 20 74 6f 20 72 65 67 69 73 74 65 72 20 61 0d 0a 09 69 6e ┆ot ;get track to register a in┆ 0x0de120…0de140 72 09 61 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 0d 0a 09 ┆r a mov c,a ;ready for call ┆ 0x0de140…0de160 63 61 6c 6c 09 73 65 74 74 72 6b 0d 0a 09 78 72 61 09 61 09 3b 63 6c 65 61 72 20 73 65 63 74 6f ┆call settrk xra a ;clear secto┆ 0x0de160…0de180 72 20 6e 75 6d 62 65 72 0d 0a 72 64 31 3a 09 69 6e 72 09 61 09 3b 74 6f 20 6e 65 78 74 20 73 65 ┆r number rd1: inr a ;to next se┆ 0x0de180…0de1a0 63 74 6f 72 0d 0a 09 6d 6f 76 09 63 2c 61 09 3b 72 65 61 64 79 20 66 6f 72 20 63 61 6c 6c 0d 0a ┆ctor mov c,a ;ready for call ┆ 0x0de1a0…0de1c0 09 63 61 6c 6c 09 73 65 74 73 65 63 0d 0a 09 70 6f 70 09 62 09 3b 72 65 63 61 6c 6c 20 73 65 63 ┆ call setsec pop b ;recall sec┆ 0x0de1c0…0de1e0 74 6f 72 20 63 6f 75 6e 74 0d 0a 09 64 63 72 09 62 09 3b 64 6f 6e 65 3f 0d 0a 09 6a 6e 7a 09 72 ┆tor count dcr b ;done? jnz r┆ 0x0de1e0…0de200 64 73 65 63 0d 0a 3b 0d 0a 3b 09 64 6f 6e 65 20 77 69 74 68 20 74 68 65 20 6c 6f 61 64 2c 20 72 ┆dsec ; ; done with the load, r┆ 0x0de200…0de220 (59, 0, 8) 6d 64 73 20 63 61 6c 6c 29 0d 0a 09 6a 6d 70 09 72 69 0d 0a 3b 0d 0a 68 6f 6d 65 3a 09 3b 6d 6f ┆mds call) jmp ri ; home: ;mo┆ 0x0de220…0de240 76 65 20 74 6f 20 68 6f 6d 65 20 70 6f 73 69 74 69 6f 6e 0d 0a 3b 09 74 72 65 61 74 20 61 73 20 ┆ve to home position ; treat as ┆ 0x0de240…0de260 74 72 61 63 6b 20 30 30 20 73 65 65 6b 0d 0a 09 6d 76 69 09 63 2c 30 0d 0a 09 6a 6d 70 09 73 65 ┆track 00 seek mvi c,0 jmp se┆ 0x0de260…0de280 74 74 72 6b 0d 0a 3b 0d 0a 73 65 6c 64 73 6b 3a 09 3b 73 65 6c 65 63 74 20 64 69 73 6b 20 67 69 ┆ttrk ; seldsk: ;select disk gi┆ 0x0de280…0de2a0 76 65 6e 20 62 79 20 72 65 67 69 73 74 65 72 20 63 0d 0a 09 6c 78 69 09 68 2c 30 30 30 30 68 09 ┆ven by register c lxi h,0000h ┆ 0x0de2a0…0de2c0 3b 72 65 74 75 72 6e 20 30 30 30 30 20 69 66 20 65 72 72 6f 72 0d 0a 09 6d 6f 76 09 61 2c 63 0d ┆;return 0000 if error mov a,c ┆ 0x0de2c0…0de2e0 0a 09 63 70 69 09 6e 64 69 73 6b 73 09 3b 74 6f 6f 20 6c 61 72 67 65 3f 0d 0a 09 72 6e 63 09 09 ┆ cpi ndisks ;too large? rnc ┆ 0x0de2e0…0de300 3b 6c 65 61 76 65 20 48 4c 20 3d 20 30 30 30 30 0d 0a 3b 0d 0a 09 61 6e 69 09 31 30 62 09 3b 30 ┆;leave HL = 0000 ; ani 10b ;0┆ 0x0de300…0de320 30 20 30 30 20 66 6f 72 20 64 72 69 76 65 20 30 2c 31 20 61 6e 64 20 31 30 20 31 30 20 66 6f 72 ┆0 00 for drive 0,1 and 10 10 for┆ 0x0de320…0de340 20 64 72 69 76 65 20 32 2c 33 0d 0a 09 73 74 61 09 64 62 61 6e 6b 09 3b 74 6f 20 73 65 6c 65 63 ┆ drive 2,3 sta dbank ;to selec┆ 0x0de340…0de360 74 20 64 72 69 76 65 20 62 61 6e 6b 0d 0a 09 6d 6f 76 09 61 2c 63 09 3b 30 30 2c 20 30 31 2c 20 ┆t drive bank mov a,c ;00, 01, ┆ 0x0de360…0de380 31 30 2c 20 31 31 0d 0a 09 61 6e 69 09 31 62 09 3b 6d 64 73 20 68 61 73 20 30 2c 31 20 61 74 20 ┆10, 11 ani 1b ;mds has 0,1 at ┆ 0x0de380…0de3a0 37 38 2c 20 32 2c 33 20 61 74 20 38 38 0d 0a 09 6f 72 61 09 61 09 3b 72 65 73 75 6c 74 20 30 30 ┆78, 2,3 at 88 ora a ;result 00┆ 0x0de3a0…0de3c0 3f 0d 0a 09 6a 7a 09 73 65 74 64 72 69 76 65 0d 0a 09 6d 76 69 09 61 2c 30 30 31 31 30 30 30 30 ┆? jz setdrive mvi a,00110000┆ 0x0de3c0…0de3e0 62 09 3b 73 65 6c 65 63 74 73 20 64 72 69 76 65 20 31 20 69 6e 20 62 61 6e 6b 0d 0a 73 65 74 64 ┆b ;selects drive 1 in bank setd┆ 0x0de3e0…0de400 72 69 76 65 3a 0d 0a 09 6d 6f 76 09 62 2c 61 09 3b 73 61 76 65 20 74 68 65 20 66 75 6e 63 74 69 ┆rive: mov b,a ;save the functi┆ 0x0de400…0de420 (59, 0, 9) 30 0d 0a 3b 0d 0a 3b 09 28 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 61 6c 6c 73 20 73 65 74 ┆0 ; ; (the following calls set┆ 0x0de420…0de440 2d 75 70 20 74 68 65 20 69 6f 20 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 20 66 6f 72 20 74 ┆-up the io parameter block for t┆ 0x0de440…0de460 68 65 0d 0a 3b 09 6d 64 73 2c 20 77 68 69 63 68 20 69 73 20 75 73 65 64 20 74 6f 20 70 65 72 66 ┆he ; mds, which is used to perf┆ 0x0de460…0de480 6f 72 6d 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 61 64 73 20 61 6e 64 20 77 72 69 74 65 73 29 ┆orm subsequent reads and writes)┆ 0x0de480…0de4a0 0d 0a 3b 09 73 65 6c 64 73 6b 09 73 65 6c 65 63 74 20 64 69 73 6b 20 67 69 76 65 6e 20 62 79 20 ┆ ; seldsk select disk given by ┆ 0x0de4a0…0de4c0 72 65 67 2d 63 20 28 30 2c 31 2c 32 2e 2e 2e 29 0d 0a 3b 09 73 65 74 74 72 6b 09 73 65 74 20 74 ┆reg-c (0,1,2...) ; settrk set t┆ 0x0de4c0…0de4e0 72 61 63 6b 20 61 64 64 72 65 73 73 20 28 30 2c 2e 2e 2e 37 36 29 20 66 6f 72 20 73 75 62 73 65 ┆rack address (0,...76) for subse┆ 0x0de4e0…0de500 71 75 65 6e 74 20 72 65 61 64 2f 77 72 69 74 65 0d 0a 3b 09 73 65 74 73 65 63 09 73 65 74 20 73 ┆quent read/write ; setsec set s┆ 0x0de500…0de520 65 63 74 6f 72 20 61 64 64 72 65 73 73 20 28 31 2c 2e 2e 2e 2c 32 36 29 20 66 6f 72 20 73 75 62 ┆ector address (1,...,26) for sub┆ 0x0de520…0de540 73 65 71 75 65 6e 74 20 72 65 61 64 2f 77 72 69 74 65 0d 0a 3b 09 73 65 74 64 6d 61 09 73 65 74 ┆sequent read/write ; setdma set┆ 0x0de540…0de560 20 73 75 62 73 65 71 75 65 6e 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 28 69 6e 69 74 69 61 6c ┆ subsequent dma address (initial┆ 0x0de560…0de580 6c 79 20 38 30 68 29 0d 0a 3b 0d 0a 3b 09 28 72 65 61 64 20 61 6e 64 20 77 72 69 74 65 20 61 73 ┆ly 80h) ; ; (read and write as┆ 0x0de580…0de5a0 73 75 6d 65 20 70 72 65 76 69 6f 75 73 20 63 61 6c 6c 73 20 74 6f 20 73 65 74 20 75 70 20 74 68 ┆sume previous calls to set up th┆ 0x0de5a0…0de5c0 65 20 69 6f 20 70 61 72 61 6d 65 74 65 72 73 29 0d 0a 3b 09 72 65 61 64 09 72 65 61 64 20 74 72 ┆e io parameters) ; read read tr┆ 0x0de5c0…0de5e0 61 63 6b 2f 73 65 63 74 6f 72 20 74 6f 20 70 72 65 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 ┆ack/sector to preset dma address┆ 0x0de5e0…0de600 0d 0a 3b 09 77 72 69 74 65 09 77 72 69 74 65 20 74 72 61 63 6b 2f 73 65 63 74 6f 72 20 66 72 6f ┆ ; write write track/sector fro┆ 0x0de600…0de620 (59, 0, 10) 09 62 61 73 65 2b 31 09 3b 72 65 73 75 6c 74 20 74 79 70 65 20 28 69 6e 70 75 74 29 0d 0a 72 62 ┆ base+1 ;result type (input) rb┆ 0x0de620…0de640 79 74 65 09 65 71 75 09 62 61 73 65 2b 33 09 3b 72 65 73 75 6c 74 20 62 79 74 65 20 28 69 6e 70 ┆yte equ base+3 ;result byte (inp┆ 0x0de640…0de660 75 74 29 0d 0a 3b 0d 0a 69 6c 6f 77 09 65 71 75 09 62 61 73 65 2b 31 09 3b 69 6f 70 62 20 6c 6f ┆ut) ; ilow equ base+1 ;iopb lo┆ 0x0de660…0de680 77 20 61 64 64 72 65 73 73 20 28 6f 75 74 70 75 74 29 0d 0a 69 68 69 67 68 09 65 71 75 09 62 61 ┆w address (output) ihigh equ ba┆ 0x0de680…0de6a0 73 65 2b 32 09 3b 69 6f 70 62 20 68 69 67 68 20 61 64 64 72 65 73 73 20 28 6f 75 74 70 75 74 29 ┆se+2 ;iopb high address (output)┆ 0x0de6a0…0de6c0 0d 0a 3b 0d 0a 72 65 61 64 66 09 65 71 75 09 34 68 09 3b 72 65 61 64 20 66 75 6e 63 74 69 6f 6e ┆ ; readf equ 4h ;read function┆ 0x0de6c0…0de6e0 0d 0a 77 72 69 74 66 09 65 71 75 09 36 68 09 3b 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a ┆ writf equ 6h ;write function ┆ 0x0de6e0…0de700 72 65 63 61 6c 09 65 71 75 09 33 68 09 3b 72 65 63 61 6c 69 62 72 61 74 65 20 64 72 69 76 65 0d ┆recal equ 3h ;recalibrate drive ┆ 0x0de700…0de720 0a 69 6f 72 64 79 09 65 71 75 09 34 68 09 3b 69 2f 6f 20 66 69 6e 69 73 68 65 64 20 6d 61 73 6b ┆ iordy equ 4h ;i/o finished mask┆ 0x0de720…0de740 0d 0a 63 72 09 65 71 75 09 30 64 68 09 3b 63 61 72 72 69 61 67 65 20 72 65 74 75 72 6e 0d 0a 6c ┆ cr equ 0dh ;carriage return l┆ 0x0de740…0de760 66 09 65 71 75 09 30 61 68 09 3b 6c 69 6e 65 20 66 65 65 64 0d 0a 3b 0d 0a 73 69 67 6e 6f 6e 3a ┆f equ 0ah ;line feed ; signon:┆ 0x0de760…0de780 09 3b 73 69 67 6e 6f 6e 20 6d 65 73 73 61 67 65 3a 20 78 78 6b 20 63 70 2f 6d 20 76 65 72 73 20 ┆ ;signon message: xxk cp/m vers ┆ 0x0de780…0de7a0 79 2e 79 0d 0a 09 64 62 09 63 72 2c 6c 66 2c 6c 66 0d 0a 09 69 66 09 74 65 73 74 0d 0a 09 64 62 ┆y.y db cr,lf,lf if test db┆ 0x0de7a0…0de7c0 09 27 33 32 27 09 3b 33 32 6b 20 65 78 61 6d 70 6c 65 20 62 69 6f 73 0d 0a 09 65 6e 64 69 66 0d ┆ '32' ;32k example bios endif ┆ 0x0de7c0…0de7e0 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 09 64 62 09 27 30 30 27 09 3b 6d 65 6d 6f 72 79 20 ┆ if not test db '00' ;memory ┆ 0x0de7e0…0de800 73 69 7a 65 20 66 69 6c 6c 65 64 20 62 79 20 72 65 6c 6f 63 61 74 6f 72 0d 0a 09 65 6e 64 69 66 ┆size filled by relocator endif┆ 0x0de800…0de820 (59, 0, 11) 65 73 65 74 20 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 0d 0a 67 6f 63 ┆eset default buffer address goc┆ 0x0de820…0de840 70 6d 3a 09 3b 28 65 6e 74 65 72 20 68 65 72 65 20 66 72 6f 6d 20 63 6f 6c 64 20 73 74 61 72 74 ┆pm: ;(enter here from cold start┆ 0x0de840…0de860 20 62 6f 6f 74 29 0d 0a 3b 09 65 6e 61 62 6c 65 20 72 73 74 30 20 61 6e 64 20 72 73 74 37 0d 0a ┆ boot) ; enable rst0 and rst7 ┆ 0x0de860…0de880 09 64 69 0d 0a 09 6d 76 69 09 61 2c 31 32 68 09 3b 69 6e 69 74 69 61 6c 69 7a 65 20 63 6f 6d 6d ┆ di mvi a,12h ;initialize comm┆ 0x0de880…0de8a0 61 6e 64 0d 0a 09 6f 75 74 09 72 65 76 72 74 0d 0a 09 78 72 61 09 61 0d 0a 09 6f 75 74 09 69 6e ┆and out revrt xra a out in┆ 0x0de8a0…0de8c0 74 63 09 3b 63 6c 65 61 72 65 64 0d 0a 09 6d 76 69 09 61 2c 69 6e 74 65 09 3b 72 73 74 30 20 61 ┆tc ;cleared mvi a,inte ;rst0 a┆ 0x0de8c0…0de8e0 6e 64 20 72 73 74 37 20 62 69 74 73 20 6f 6e 0d 0a 09 6f 75 74 09 69 6e 74 63 0d 0a 09 78 72 61 ┆nd rst7 bits on out intc xra┆ 0x0de8e0…0de900 09 61 0d 0a 09 6f 75 74 09 69 63 6f 6e 09 3b 69 6e 74 65 72 72 75 70 74 20 63 6f 6e 74 72 6f 6c ┆ a out icon ;interrupt control┆ 0x0de900…0de920 0d 0a 3b 0d 0a 3b 09 73 65 74 20 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 ┆ ; ; set default buffer addres┆ 0x0de920…0de940 73 20 74 6f 20 38 30 68 0d 0a 09 6c 78 69 09 62 2c 62 75 66 66 0d 0a 09 63 61 6c 6c 09 73 65 74 ┆s to 80h lxi b,buff call set┆ 0x0de940…0de960 64 6d 61 0d 0a 3b 0d 0a 3b 09 72 65 73 65 74 20 6d 6f 6e 69 74 6f 72 20 65 6e 74 72 79 20 70 6f ┆dma ; ; reset monitor entry po┆ 0x0de960…0de980 69 6e 74 73 0d 0a 09 6d 76 69 09 61 2c 6a 6d 70 0d 0a 09 73 74 61 09 30 0d 0a 09 6c 78 69 09 68 ┆ints mvi a,jmp sta 0 lxi h┆ 0x0de980…0de9a0 2c 77 62 6f 6f 74 65 0d 0a 09 73 68 6c 64 09 31 09 3b 6a 6d 70 20 77 62 6f 6f 74 20 61 74 20 6c ┆,wboote shld 1 ;jmp wboot at l┆ 0x0de9a0…0de9c0 6f 63 61 74 69 6f 6e 20 30 30 0d 0a 09 73 74 61 09 35 0d 0a 09 6c 78 69 09 68 2c 62 64 6f 73 0d ┆ocation 00 sta 5 lxi h,bdos ┆ 0x0de9c0…0de9e0 0a 09 73 68 6c 64 09 36 09 3b 6a 6d 70 20 62 64 6f 73 20 61 74 20 6c 6f 63 61 74 69 6f 6e 20 35 ┆ shld 6 ;jmp bdos at location 5┆ 0x0de9e0…0dea00 0d 0a 09 69 66 09 6e 6f 74 20 74 65 73 74 0d 0a 09 73 74 61 09 37 2a 38 09 3b 6a 6d 70 20 74 6f ┆ if not test sta 7*8 ;jmp to┆ 0x0dea00…0dea20 (59, 0, 12) 6f 6e 0d 0a 09 6c 78 69 09 68 2c 69 6f 66 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 6d 6f ┆on lxi h,iof ;io function mo┆ 0x0dea20…0dea40 76 09 61 2c 6d 0d 0a 09 61 6e 69 09 31 31 30 30 31 31 31 31 62 09 3b 6d 61 73 6b 20 6f 75 74 20 ┆v a,m ani 11001111b ;mask out ┆ 0x0dea40…0dea60 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6f 72 61 09 62 09 3b 6d 61 73 6b 20 69 6e 20 6e 65 77 ┆disk number ora b ;mask in new┆ 0x0dea60…0dea80 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6d 6f 76 09 6d 2c 61 09 3b 73 61 76 65 20 69 74 20 ┆ disk number mov m,a ;save it ┆ 0x0dea80…0deaa0 69 6e 20 69 6f 70 62 0d 0a 09 6d 6f 76 09 6c 2c 63 0d 0a 09 6d 76 69 09 68 2c 30 09 3b 48 4c 3d ┆in iopb mov l,c mvi h,0 ;HL=┆ 0x0deaa0…0deac0 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 64 61 64 09 68 09 3b 2a 32 0d 0a 09 64 61 64 09 68 09 ┆disk number dad h ;*2 dad h ┆ 0x0deac0…0deae0 3b 2a 34 0d 0a 09 64 61 64 09 68 09 3b 2a 38 0d 0a 09 64 61 64 09 68 09 3b 2a 31 36 0d 0a 09 6c ┆;*4 dad h ;*8 dad h ;*16 l┆ 0x0deae0…0deb00 78 69 09 64 2c 64 70 62 61 73 65 0d 0a 09 64 61 64 09 64 09 3b 48 4c 3d 64 69 73 6b 20 68 65 61 ┆xi d,dpbase dad d ;HL=disk hea┆ 0x0deb00…0deb20 64 65 72 20 74 61 62 6c 65 20 61 64 64 72 65 73 73 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 73 ┆der table address ret ; ; s┆ 0x0deb20…0deb40 65 74 74 72 6b 3a 09 3b 73 65 74 20 74 72 61 63 6b 20 61 64 64 72 65 73 73 20 67 69 76 65 6e 20 ┆ettrk: ;set track address given ┆ 0x0deb40…0deb60 62 79 20 63 0d 0a 09 6c 78 69 09 68 2c 69 6f 74 0d 0a 09 6d 6f 76 09 6d 2c 63 0d 0a 09 72 65 74 ┆by c lxi h,iot mov m,c ret┆ 0x0deb60…0deb80 0d 0a 3b 0d 0a 73 65 74 73 65 63 3a 09 3b 73 65 74 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 ┆ ; setsec: ;set sector number ┆ 0x0deb80…0deba0 67 69 76 65 6e 20 62 79 20 63 0d 0a 09 6c 78 69 09 68 2c 69 6f 73 0d 0a 09 6d 6f 76 09 6d 2c 63 ┆given by c lxi h,ios mov m,c┆ 0x0deba0…0debc0 0d 0a 09 72 65 74 0d 0a 73 65 63 74 72 61 6e 3a 0d 0a 09 09 3b 74 72 61 6e 73 6c 61 74 65 20 73 ┆ ret sectran: ;translate s┆ 0x0debc0…0debe0 65 63 74 6f 72 20 62 63 20 75 73 69 6e 67 20 74 61 62 6c 65 20 61 74 20 64 65 0d 0a 09 6d 76 69 ┆ector bc using table at de mvi┆ 0x0debe0…0dec00 09 62 2c 30 09 3b 64 6f 75 62 6c 65 20 70 72 65 63 69 73 69 6f 6e 20 73 65 63 74 6f 72 20 6e 75 ┆ b,0 ;double precision sector nu┆ 0x0dec00…0dec20 (59, 0, 13) 6d 20 70 72 65 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b 09 6a 75 6d 70 20 ┆m preset dma address ; ; jump ┆ 0x0dec20…0dec40 76 65 63 74 6f 72 20 66 6f 72 20 69 6e 64 69 76 69 75 61 6c 20 72 6f 75 74 69 6e 65 73 0d 0a 09 ┆vector for indiviual routines ┆ 0x0dec40…0dec60 6a 6d 70 09 62 6f 6f 74 0d 0a 77 62 6f 6f 74 65 3a 09 6a 6d 70 09 77 62 6f 6f 74 0d 0a 09 6a 6d ┆jmp boot wboote: jmp wboot jm┆ 0x0dec60…0dec80 70 09 63 6f 6e 73 74 0d 0a 09 6a 6d 70 09 63 6f 6e 69 6e 0d 0a 09 6a 6d 70 09 63 6f 6e 6f 75 74 ┆p const jmp conin jmp conout┆ 0x0dec80…0deca0 0d 0a 09 6a 6d 70 09 6c 69 73 74 0d 0a 09 6a 6d 70 09 70 75 6e 63 68 0d 0a 09 6a 6d 70 09 72 65 ┆ jmp list jmp punch jmp re┆ 0x0deca0…0decc0 61 64 65 72 0d 0a 09 6a 6d 70 09 68 6f 6d 65 0d 0a 09 6a 6d 70 09 73 65 6c 64 73 6b 0d 0a 09 6a ┆ader jmp home jmp seldsk j┆ 0x0decc0…0dece0 6d 70 09 73 65 74 74 72 6b 0d 0a 09 6a 6d 70 09 73 65 74 73 65 63 0d 0a 09 6a 6d 70 09 73 65 74 ┆mp settrk jmp setsec jmp set┆ 0x0dece0…0ded00 64 6d 61 0d 0a 09 6a 6d 70 09 72 65 61 64 0d 0a 09 6a 6d 70 09 77 72 69 74 65 0d 0a 09 6a 6d 70 ┆dma jmp read jmp write jmp┆ 0x0ded00…0ded20 09 6c 69 73 74 73 74 09 3b 6c 69 73 74 20 73 74 61 74 75 73 0d 0a 09 6a 6d 70 09 73 65 63 74 72 ┆ listst ;list status jmp sectr┆ 0x0ded20…0ded40 61 6e 0d 0a 3b 0d 0a 09 6d 61 63 6c 69 62 09 64 69 73 6b 64 65 66 09 3b 6c 6f 61 64 20 74 68 65 ┆an ; maclib diskdef ;load the┆ 0x0ded40…0ded60 20 64 69 73 6b 20 64 65 66 69 6e 69 74 69 6f 6e 20 6c 69 62 72 61 72 79 0d 0a 09 64 69 73 6b 73 ┆ disk definition library disks┆ 0x0ded60…0ded80 09 34 09 3b 66 6f 75 72 20 64 69 73 6b 73 0d 0a 09 64 69 73 6b 64 65 66 09 30 2c 31 2c 32 36 2c ┆ 4 ;four disks diskdef 0,1,26,┆ 0x0ded80…0deda0 36 2c 31 30 32 34 2c 32 34 33 2c 36 34 2c 36 34 2c 6f 66 66 73 65 74 0d 0a 09 64 69 73 6b 64 65 ┆6,1024,243,64,64,offset diskde┆ 0x0deda0…0dedc0 66 09 31 2c 30 0d 0a 09 64 69 73 6b 64 65 66 09 32 2c 30 0d 0a 09 64 69 73 6b 64 65 66 09 33 2c ┆f 1,0 diskdef 2,0 diskdef 3,┆ 0x0dedc0…0dede0 30 0d 0a 3b 09 65 6e 64 65 66 20 6f 63 63 75 72 73 20 61 74 20 65 6e 64 20 6f 66 20 61 73 73 65 ┆0 ; endef occurs at end of asse┆ 0x0dede0…0dee00 6d 62 6c 79 0d 0a 3b 0d 0a 3b 09 65 6e 64 20 6f 66 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 2d 20 69 ┆mbly ; ; end of controller - i┆ 0x0dee00…0dee20 (59, 0, 14) 0d 0a 09 64 62 09 27 6b 20 43 50 2f 4d 20 76 65 72 73 20 27 0d 0a 09 64 62 09 76 65 72 73 2f 31 ┆ db 'k CP/M vers ' db vers/1┆ 0x0dee20…0dee40 30 2b 27 30 27 2c 27 2e 27 2c 76 65 72 73 20 6d 6f 64 20 31 30 2b 27 30 27 0d 0a 09 64 62 09 63 ┆0+'0','.',vers mod 10+'0' db c┆ 0x0dee40…0dee60 72 2c 6c 66 2c 30 0d 0a 3b 0d 0a 62 6f 6f 74 3a 09 3b 70 72 69 6e 74 20 73 69 67 6e 6f 6e 20 6d ┆r,lf,0 ; boot: ;print signon m┆ 0x0dee60…0dee80 65 73 73 61 67 65 20 61 6e 64 20 67 6f 20 74 6f 20 63 63 70 0d 0a 3b 09 28 6e 6f 74 65 3a 20 6d ┆essage and go to ccp ; (note: m┆ 0x0dee80…0deea0 64 73 20 62 6f 6f 74 20 69 6e 69 74 69 61 6c 69 7a 65 64 20 69 6f 62 79 74 65 20 61 74 20 30 30 ┆ds boot initialized iobyte at 00┆ 0x0deea0…0deec0 30 33 68 29 0d 0a 09 6c 78 69 09 73 70 2c 62 75 66 66 2b 38 30 68 0d 0a 09 6c 78 69 09 68 2c 73 ┆03h) lxi sp,buff+80h lxi h,s┆ 0x0deec0…0deee0 69 67 6e 6f 6e 0d 0a 09 63 61 6c 6c 09 70 72 6d 73 67 09 3b 70 72 69 6e 74 20 6d 65 73 73 61 67 ┆ignon call prmsg ;print messag┆ 0x0deee0…0def00 65 0d 0a 09 78 72 61 09 61 09 3b 63 6c 65 61 72 20 61 63 63 75 6d 75 6c 61 74 6f 72 0d 0a 09 73 ┆e xra a ;clear accumulator s┆ 0x0def00…0def20 74 61 09 63 64 69 73 6b 09 3b 73 65 74 20 69 6e 69 74 69 61 6c 6c 79 20 74 6f 20 64 69 73 6b 20 ┆ta cdisk ;set initially to disk ┆ 0x0def20…0def40 61 0d 0a 09 6a 6d 70 09 67 6f 63 70 6d 09 3b 67 6f 20 74 6f 20 63 70 2f 6d 0d 0a 3b 0d 0a 3b 0d ┆a jmp gocpm ;go to cp/m ; ; ┆ 0x0def40…0def60 0a 77 62 6f 6f 74 3a 3b 09 6c 6f 61 64 65 72 20 6f 6e 20 74 72 61 63 6b 20 30 2c 20 73 65 63 74 ┆ wboot:; loader on track 0, sect┆ 0x0def60…0def80 6f 72 20 31 2c 20 77 68 69 63 68 20 77 69 6c 6c 20 62 65 20 73 6b 69 70 70 65 64 20 66 6f 72 20 ┆or 1, which will be skipped for ┆ 0x0def80…0defa0 77 61 72 6d 20 0d 0a 3b 09 72 65 61 64 20 63 70 2f 6d 20 66 72 6f 6d 20 64 69 73 6b 20 2d 20 61 ┆warm ; read cp/m from disk - a┆ 0x0defa0…0defc0 73 73 75 6d 69 6e 67 20 74 68 65 72 65 20 69 73 20 61 20 31 32 38 20 62 79 74 65 20 63 6f 6c 64 ┆ssuming there is a 128 byte cold┆ 0x0defc0…0defe0 20 73 74 61 72 74 0d 0a 3b 09 73 74 61 72 74 2e 0d 0a 3b 0d 0a 09 6c 78 69 09 73 70 2c 62 75 66 ┆ start ; start. ; lxi sp,buf┆ 0x0defe0…0df000 66 09 3b 75 73 69 6e 67 20 64 6d 61 20 2d 20 74 68 75 73 20 38 30 20 74 68 72 75 20 66 66 20 61 ┆f ;using dma - thus 80 thru ff a┆ 0x0df000…0df020 (59, 0, 15) 20 6d 6f 6e 38 30 20 28 6d 61 79 20 68 61 76 65 20 62 65 65 6e 20 63 68 61 6e 67 65 64 20 62 79 ┆ mon80 (may have been changed by┆ 0x0df020…0df040 20 64 64 74 29 0d 0a 09 6c 78 69 09 68 2c 6d 6f 6e 38 30 0d 0a 09 73 68 6c 64 09 37 2a 38 2b 31 ┆ ddt) lxi h,mon80 shld 7*8+1┆ 0x0df040…0df060 0d 0a 09 65 6e 64 69 66 0d 0a 3b 09 6c 65 61 76 65 20 69 6f 62 79 74 65 20 73 65 74 0d 0a 3b 09 ┆ endif ; leave iobyte set ; ┆ 0x0df060…0df080 70 72 65 76 69 6f 75 73 6c 79 20 73 65 6c 65 63 74 65 64 20 64 69 73 6b 20 77 61 73 20 62 2c 20 ┆previously selected disk was b, ┆ 0x0df080…0df0a0 73 65 6e 64 20 70 61 72 61 6d 65 74 65 72 20 74 6f 20 63 70 6d 0d 0a 09 6c 64 61 09 63 64 69 73 ┆send parameter to cpm lda cdis┆ 0x0df0a0…0df0c0 6b 09 3b 6c 61 73 74 20 6c 6f 67 67 65 64 20 64 69 73 6b 20 6e 75 6d 62 65 72 0d 0a 09 6d 6f 76 ┆k ;last logged disk number mov┆ 0x0df0c0…0df0e0 09 63 2c 61 09 3b 73 65 6e 64 20 74 6f 20 63 63 70 20 74 6f 20 6c 6f 67 20 69 74 20 69 6e 0d 0a ┆ c,a ;send to ccp to log it in ┆ 0x0df0e0…0df100 09 65 69 0d 0a 09 6a 6d 70 09 63 70 6d 62 0d 0a 3b 0d 0a 3b 09 65 72 72 6f 72 20 63 6f 6e 64 69 ┆ ei jmp cpmb ; ; error condi┆ 0x0df100…0df120 74 69 6f 6e 20 6f 63 63 75 72 72 65 64 2c 20 70 72 69 6e 74 20 6d 65 73 73 61 67 65 20 61 6e 64 ┆tion occurred, print message and┆ 0x0df120…0df140 20 72 65 74 72 79 0d 0a 62 6f 6f 74 65 72 72 3a 0d 0a 09 70 6f 70 09 62 09 3b 72 65 63 61 6c 6c ┆ retry booterr: pop b ;recall┆ 0x0df140…0df160 20 63 6f 75 6e 74 73 0d 0a 09 64 63 72 09 63 0d 0a 09 6a 7a 09 62 6f 6f 74 65 72 30 0d 0a 3b 09 ┆ counts dcr c jz booter0 ; ┆ 0x0df160…0df180 74 72 79 20 61 67 61 69 6e 0d 0a 09 70 75 73 68 09 62 0d 0a 09 6a 6d 70 09 77 62 6f 6f 74 30 0d ┆try again push b jmp wboot0 ┆ 0x0df180…0df1a0 0a 3b 0d 0a 62 6f 6f 74 65 72 30 3a 0d 0a 3b 09 6f 74 68 65 72 77 69 73 65 20 74 6f 6f 20 6d 61 ┆ ; booter0: ; otherwise too ma┆ 0x0df1a0…0df1c0 6e 79 20 72 65 74 72 69 65 73 0d 0a 09 6c 78 69 09 68 2c 62 6f 6f 74 6d 73 67 0d 0a 09 63 61 6c ┆ny retries lxi h,bootmsg cal┆ 0x0df1c0…0df1e0 6c 09 70 72 6d 73 67 0d 0a 09 6a 6d 70 09 72 6d 6f 6e 38 30 09 3b 6d 64 73 20 68 61 72 64 77 61 ┆l prmsg jmp rmon80 ;mds hardwa┆ 0x0df1e0…0df200 72 65 20 6d 6f 6e 69 74 6f 72 0d 0a 3b 0d 0a 62 6f 6f 74 6d 73 67 3a 0d 0a 09 64 62 09 27 3f 62 ┆re monitor ; bootmsg: db '?b┆ 0x0df200…0df220 (59, 1, 1) 6d 62 65 72 20 69 6e 20 42 43 0d 0a 09 78 63 68 67 09 09 3b 74 72 61 6e 73 6c 61 74 65 20 74 61 ┆mber in BC xchg ;translate ta┆ 0x0df220…0df240 62 6c 65 20 61 64 64 72 65 73 73 20 74 6f 20 48 4c 0d 0a 09 64 61 64 09 62 09 3b 74 72 61 6e 73 ┆ble address to HL dad b ;trans┆ 0x0df240…0df260 6c 61 74 65 28 73 65 63 74 6f 72 29 20 61 64 64 72 65 73 73 0d 0a 09 6d 6f 76 09 61 2c 6d 09 3b ┆late(sector) address mov a,m ;┆ 0x0df260…0df280 74 72 61 6e 73 6c 61 74 65 64 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 74 6f 20 41 0d 0a 09 ┆translated sector number to A ┆ 0x0df280…0df2a0 73 74 61 09 69 6f 73 0d 0a 09 6d 6f 76 09 6c 2c 61 09 3b 72 65 74 75 72 6e 20 73 65 63 74 6f 72 ┆sta ios mov l,a ;return sector┆ 0x0df2a0…0df2c0 20 6e 75 6d 62 65 72 20 69 6e 20 4c 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 73 65 74 64 6d 61 3a 09 3b ┆ number in L ret ; setdma: ;┆ 0x0df2c0…0df2e0 73 65 74 20 64 6d 61 20 61 64 64 72 65 73 73 20 67 69 76 65 6e 20 62 79 20 72 65 67 73 20 62 2c ┆set dma address given by regs b,┆ 0x0df2e0…0df300 63 0d 0a 09 6d 6f 76 09 6c 2c 63 0d 0a 09 6d 6f 76 09 68 2c 62 0d 0a 09 73 68 6c 64 09 69 6f 64 ┆c mov l,c mov h,b shld iod┆ 0x0df300…0df320 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 72 65 61 64 3a 09 3b 72 65 61 64 20 6e 65 78 74 20 64 69 73 6b ┆ ret ; read: ;read next disk┆ 0x0df320…0df340 20 72 65 63 6f 72 64 20 28 61 73 73 75 6d 69 6e 67 20 64 69 73 6b 2f 74 72 6b 2f 73 65 63 2f 64 ┆ record (assuming disk/trk/sec/d┆ 0x0df340…0df360 6d 61 20 73 65 74 29 0d 0a 09 6d 76 69 09 63 2c 72 65 61 64 66 09 3b 73 65 74 20 74 6f 20 72 65 ┆ma set) mvi c,readf ;set to re┆ 0x0df360…0df380 61 64 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 63 61 6c 6c 09 73 65 74 66 75 6e 63 0d 0a 09 63 61 6c ┆ad function call setfunc cal┆ 0x0df380…0df3a0 6c 09 77 61 69 74 69 6f 09 3b 70 65 72 66 6f 72 6d 20 72 65 61 64 20 66 75 6e 63 74 69 6f 6e 0d ┆l waitio ;perform read function ┆ 0x0df3a0…0df3c0 0a 09 72 65 74 09 09 3b 6d 61 79 20 68 61 76 65 20 65 72 72 6f 72 20 73 65 74 20 69 6e 20 72 65 ┆ ret ;may have error set in re┆ 0x0df3c0…0df3e0 67 2d 61 0d 0a 3b 0d 0a 3b 0d 0a 77 72 69 74 65 3a 09 3b 64 69 73 6b 20 77 72 69 74 65 20 66 75 ┆g-a ; ; write: ;disk write fu┆ 0x0df3e0…0df400 6e 63 74 69 6f 6e 0d 0a 09 6d 76 69 09 63 2c 77 72 69 74 66 0d 0a 09 63 61 6c 6c 09 73 65 74 66 ┆nction mvi c,writf call setf┆ 0x0df400…0df420 (59, 1, 2) 0a 3b 09 31 30 20 64 69 73 6b 20 73 74 61 74 75 73 20 63 68 61 6e 67 65 64 20 20 20 20 20 20 20 ┆ ; 10 disk status changed ┆ 0x0df420…0df440 31 31 20 28 6e 6f 74 20 75 73 65 64 29 0d 0a 09 63 70 69 09 31 30 62 09 09 3b 72 65 61 64 79 20 ┆11 (not used) cpi 10b ;ready ┆ 0x0df440…0df460 73 74 61 74 75 73 20 63 68 61 6e 67 65 3f 0d 0a 09 6a 7a 09 77 72 65 61 64 79 0d 0a 3b 0d 0a 3b ┆status change? jz wready ; ;┆ 0x0df460…0df480 09 6d 75 73 74 20 62 65 20 30 30 20 69 6e 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 0d 0a ┆ must be 00 in the accumulator ┆ 0x0df480…0df4a0 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 77 65 72 72 6f 72 09 09 3b 73 6f 6d 65 20 6f 74 68 65 72 ┆ ora a jnz werror ;some other┆ 0x0df4a0…0df4c0 20 63 6f 6e 64 69 74 69 6f 6e 2c 20 72 65 74 72 79 0d 0a 3b 0d 0a 3b 09 63 68 65 63 6b 20 69 2f ┆ condition, retry ; ; check i/┆ 0x0df4c0…0df4e0 6f 20 65 72 72 6f 72 20 62 69 74 73 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 0d 0a 09 72 61 6c ┆o error bits call inbyte ral┆ 0x0df4e0…0df500 0d 0a 09 6a 63 09 77 72 65 61 64 79 09 09 3b 75 6e 69 74 20 6e 6f 74 20 72 65 61 64 79 0d 0a 09 ┆ jc wready ;unit not ready ┆ 0x0df500…0df520 72 61 72 0d 0a 09 61 6e 69 09 31 31 31 31 31 31 31 30 62 09 3b 61 6e 79 20 6f 74 68 65 72 20 65 ┆rar ani 11111110b ;any other e┆ 0x0df520…0df540 72 72 6f 72 73 3f 20 20 28 64 65 6c 65 74 65 64 20 64 61 74 61 20 6f 6b 29 0d 0a 09 6a 6e 7a 09 ┆rrors? (deleted data ok) jnz ┆ 0x0df540…0df560 77 65 72 72 6f 72 0d 0a 3b 0d 0a 3b 09 72 65 61 64 20 6f 72 20 77 72 69 74 65 20 69 73 20 6f 6b ┆werror ; ; read or write is ok┆ 0x0df560…0df580 2c 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 63 6f 6e 74 61 69 6e 73 20 7a 65 72 6f 0d 0a 09 72 65 ┆, accumulator contains zero re┆ 0x0df580…0df5a0 74 0d 0a 3b 0d 0a 77 72 65 61 64 79 3a 09 3b 6e 6f 74 20 72 65 61 64 79 2c 20 74 72 65 61 74 20 ┆t ; wready: ;not ready, treat ┆ 0x0df5a0…0df5c0 61 73 20 65 72 72 6f 72 20 66 6f 72 20 6e 6f 77 0d 0a 09 63 61 6c 6c 09 69 6e 62 79 74 65 09 09 ┆as error for now call inbyte ┆ 0x0df5c0…0df5e0 3b 63 6c 65 61 72 20 72 65 73 75 6c 74 20 62 79 74 65 0d 0a 09 6a 6d 70 09 74 72 79 63 6f 75 6e ┆;clear result byte jmp trycoun┆ 0x0df5e0…0df600 74 0d 0a 3b 0d 0a 77 65 72 72 6f 72 3a 09 3b 72 65 74 75 72 6e 20 68 61 72 64 77 61 72 65 20 6d ┆t ; werror: ;return hardware m┆ 0x0df600…0df620 (59, 1, 3) 64 77 09 62 75 66 66 09 3b 69 6f 20 61 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 65 66 ┆dw buff ;io address ; ; ; def┆ 0x0df620…0df640 69 6e 65 20 72 61 6d 20 61 72 65 61 73 20 66 6f 72 20 62 64 6f 73 20 6f 70 65 72 61 74 69 6f 6e ┆ine ram areas for bdos operation┆ 0x0df640…0df660 0d 0a 09 65 6e 64 65 66 0d 0a 09 65 6e 64 0d 0a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆ endef end ┆ 0x0df660…0df680 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆ ┆ 0x0df680…0df6a0 74 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 73 74 61 ┆t: lda dbank ora a jnz insta┆ 0x0df6a0…0df6c0 31 0d 0a 09 69 6e 09 64 73 74 61 74 0d 0a 09 72 65 74 0d 0a 69 6e 73 74 61 31 3a 09 69 6e 09 64 ┆1 in dstat ret insta1: in d┆ 0x0df6c0…0df6e0 73 74 61 74 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 61 74 61 20 ┆stat+10h ret ; ; ; ; data ┆ 0x0df6e0…0df700 61 72 65 61 73 20 28 6d 75 73 74 20 62 65 20 69 6e 20 72 61 6d 29 0d 0a 64 62 61 6e 6b 3a 09 64 ┆areas (must be in ram) dbank: d┆ 0x0df700…0df720 62 09 30 09 3b 64 69 73 6b 20 62 61 6e 6b 20 30 30 20 69 66 20 64 72 69 76 65 20 30 2c 31 0d 0a ┆b 0 ;disk bank 00 if drive 0,1 ┆ 0x0df720…0df740 09 09 09 3b 09 20 20 20 31 30 20 69 66 20 64 72 69 76 65 20 32 2c 33 0d 0a 69 6f 70 62 3a 09 3b ┆ ; 10 if drive 2,3 iopb: ;┆ 0x0df740…0df760 69 6f 20 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 0d 0a 09 64 62 09 38 30 68 09 3b 6e 6f 72 ┆io parameter block db 80h ;nor┆ 0x0df760…0df780 6d 61 6c 20 69 2f 6f 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 69 6f 66 3a 09 64 62 09 72 65 61 64 66 ┆mal i/o operation iof: db readf┆ 0x0df780…0df7a0 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 2c 20 69 6e 69 74 69 61 6c 20 72 65 61 64 0d 0a 69 6f 6e ┆ ;io function, initial read ion┆ 0x0df7a0…0df7c0 3a 09 64 62 09 31 09 3b 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 20 74 6f 20 72 65 61 ┆: db 1 ;number of sectors to rea┆ 0x0df7c0…0df7e0 64 0d 0a 69 6f 74 3a 09 64 62 09 6f 66 66 73 65 74 09 3b 74 72 61 63 6b 20 6e 75 6d 62 65 72 0d ┆d iot: db offset ;track number ┆ 0x0df7e0…0df800 0a 69 6f 73 3a 09 64 62 09 31 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 0d 0a 69 6f 64 3a 09 ┆ ios: db 1 ;sector number iod: ┆ 0x0df800…0df820 (59, 1, 4) 64 77 09 62 75 66 66 09 3b 69 6f 20 61 64 64 72 65 73 73 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 65 66 ┆dw buff ;io address ; ; ; def┆ 0x0df820…0df840 69 6e 65 20 72 61 6d 20 61 72 65 61 73 20 66 6f 72 20 62 64 6f 73 20 6f 70 65 72 61 74 69 6f 6e ┆ine ram areas for bdos operation┆ 0x0df840…0df860 0d 0a 09 65 6e 64 65 66 0d 0a 09 65 6e 64 0d 0a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆ endef end ┆ 0x0df860…0df880 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ┆ ┆ 0x0df880…0df8a0 74 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 73 74 61 ┆t: lda dbank ora a jnz insta┆ 0x0df8a0…0df8c0 31 0d 0a 09 69 6e 09 64 73 74 61 74 0d 0a 09 72 65 74 0d 0a 69 6e 73 74 61 31 3a 09 69 6e 09 64 ┆1 in dstat ret insta1: in d┆ 0x0df8c0…0df8e0 73 74 61 74 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 61 74 61 20 ┆stat+10h ret ; ; ; ; data ┆ 0x0df8e0…0df900 61 72 65 61 73 20 28 6d 75 73 74 20 62 65 20 69 6e 20 72 61 6d 29 0d 0a 64 62 61 6e 6b 3a 09 64 ┆areas (must be in ram) dbank: d┆ 0x0df900…0df920 62 09 30 09 3b 64 69 73 6b 20 62 61 6e 6b 20 30 30 20 69 66 20 64 72 69 76 65 20 30 2c 31 0d 0a ┆b 0 ;disk bank 00 if drive 0,1 ┆ 0x0df920…0df940 09 09 09 3b 09 20 20 20 31 30 20 69 66 20 64 72 69 76 65 20 32 2c 33 0d 0a 69 6f 70 62 3a 09 3b ┆ ; 10 if drive 2,3 iopb: ;┆ 0x0df940…0df960 69 6f 20 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 0d 0a 09 64 62 09 38 30 68 09 3b 6e 6f 72 ┆io parameter block db 80h ;nor┆ 0x0df960…0df980 6d 61 6c 20 69 2f 6f 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 69 6f 66 3a 09 64 62 09 72 65 61 64 66 ┆mal i/o operation iof: db readf┆ 0x0df980…0df9a0 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 2c 20 69 6e 69 74 69 61 6c 20 72 65 61 64 0d 0a 69 6f 6e ┆ ;io function, initial read ion┆ 0x0df9a0…0df9c0 3a 09 64 62 09 31 09 3b 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 20 74 6f 20 72 65 61 ┆: db 1 ;number of sectors to rea┆ 0x0df9c0…0df9e0 64 0d 0a 69 6f 74 3a 09 64 62 09 6f 66 66 73 65 74 09 3b 74 72 61 63 6b 20 6e 75 6d 62 65 72 0d ┆d iot: db offset ;track number ┆ 0x0df9e0…0dfa00 0a 69 6f 73 3a 09 64 62 09 31 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 0d 0a 69 6f 64 3a 09 ┆ ios: db 1 ;sector number iod: ┆ 0x0dfa00…0dfa20 (59, 1, 5) 75 6e 63 09 3b 73 65 74 20 74 6f 20 77 72 69 74 65 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 63 61 6c ┆unc ;set to write function cal┆ 0x0dfa20…0dfa40 6c 09 77 61 69 74 69 6f 0d 0a 09 72 65 74 09 09 3b 6d 61 79 20 68 61 76 65 20 65 72 72 6f 72 20 ┆l waitio ret ;may have error ┆ 0x0dfa40…0dfa60 73 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 75 74 69 6c 69 74 79 20 73 75 62 72 6f 75 74 69 6e 65 73 ┆set ; ; ; utility subroutines┆ 0x0dfa60…0dfa80 0d 0a 70 72 6d 73 67 3a 09 3b 70 72 69 6e 74 20 6d 65 73 73 61 67 65 20 61 74 20 68 2c 6c 20 74 ┆ prmsg: ;print message at h,l t┆ 0x0dfa80…0dfaa0 6f 20 30 0d 0a 09 6d 6f 76 09 61 2c 6d 0d 0a 09 6f 72 61 09 61 09 3b 7a 65 72 6f 3f 0d 0a 09 72 ┆o 0 mov a,m ora a ;zero? r┆ 0x0dfaa0…0dfac0 7a 0d 0a 3b 09 6d 6f 72 65 20 74 6f 20 70 72 69 6e 74 0d 0a 09 70 75 73 68 09 68 0d 0a 09 6d 6f ┆z ; more to print push h mo┆ 0x0dfac0…0dfae0 76 09 63 2c 61 0d 0a 09 63 61 6c 6c 09 63 6f 6e 6f 75 74 0d 0a 09 70 6f 70 09 68 0d 0a 09 69 6e ┆v c,a call conout pop h in┆ 0x0dfae0…0dfb00 78 09 68 0d 0a 09 6a 6d 70 09 70 72 6d 73 67 0d 0a 3b 0d 0a 73 65 74 66 75 6e 63 3a 0d 0a 3b 09 ┆x h jmp prmsg ; setfunc: ; ┆ 0x0dfb00…0dfb20 73 65 74 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 6e 65 78 74 20 69 2f 6f 20 28 63 6f 6d 6d 61 ┆set function for next i/o (comma┆ 0x0dfb20…0dfb40 6e 64 20 69 6e 20 72 65 67 2d 63 29 0d 0a 09 6c 78 69 09 68 2c 69 6f 66 09 3b 69 6f 20 66 75 6e ┆nd in reg-c) lxi h,iof ;io fun┆ 0x0dfb40…0dfb60 63 74 69 6f 6e 20 61 64 64 72 65 73 73 0d 0a 09 6d 6f 76 09 61 2c 6d 09 3b 67 65 74 20 69 74 20 ┆ction address mov a,m ;get it ┆ 0x0dfb60…0dfb80 74 6f 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 66 6f 72 20 6d 61 73 6b 69 6e 67 0d 0a 09 61 6e 69 ┆to accumulator for masking ani┆ 0x0dfb80…0dfba0 09 31 31 31 31 31 30 30 30 62 09 3b 72 65 6d 6f 76 65 20 70 72 65 76 69 6f 75 73 20 63 6f 6d 6d ┆ 11111000b ;remove previous comm┆ 0x0dfba0…0dfbc0 61 6e 64 0d 0a 09 6f 72 61 09 63 09 3b 73 65 74 20 74 6f 20 6e 65 77 20 63 6f 6d 6d 61 6e 64 0d ┆and ora c ;set to new command ┆ 0x0dfbc0…0dfbe0 0a 09 6d 6f 76 09 6d 2c 61 09 3b 72 65 70 6c 61 63 65 64 20 69 6e 20 69 6f 70 62 0d 0a 3b 09 74 ┆ mov m,a ;replaced in iopb ; t┆ 0x0dfbe0…0dfc00 68 65 20 6d 64 73 2d 38 30 30 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 72 65 71 75 69 72 65 73 20 64 ┆he mds-800 controller requires d┆ 0x0dfc00…0dfc20 (59, 1, 6) 61 6c 66 75 6e 63 74 69 6f 6e 20 28 63 72 63 2c 20 74 72 61 63 6b 2c 20 73 65 65 6b 2c 20 65 74 ┆alfunction (crc, track, seek, et┆ 0x0dfc20…0dfc40 63 2e 29 0d 0a 3b 09 74 68 65 20 6d 64 73 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 68 61 73 20 72 65 ┆c.) ; the mds controller has re┆ 0x0dfc40…0dfc60 74 75 72 6e 65 64 20 61 20 62 69 74 20 69 6e 20 65 61 63 68 20 70 6f 73 69 74 69 6f 6e 0d 0a 3b ┆turned a bit in each position ;┆ 0x0dfc60…0dfc80 09 6f 66 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 2c 20 63 6f 72 72 65 73 70 6f 6e 64 69 ┆ of the accumulator, correspondi┆ 0x0dfc80…0dfca0 6e 67 20 74 6f 20 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e 73 3a 0d 0a 3b 09 30 09 2d 20 64 65 6c ┆ng to the conditions: ; 0 - del┆ 0x0dfca0…0dfcc0 65 74 65 64 20 64 61 74 61 20 28 61 63 63 65 70 74 65 64 20 61 73 20 6f 6b 20 61 62 6f 76 65 29 ┆eted data (accepted as ok above)┆ 0x0dfcc0…0dfce0 0d 0a 3b 09 31 09 2d 20 63 72 63 20 65 72 72 6f 72 0d 0a 3b 09 32 09 2d 20 73 65 65 6b 20 65 72 ┆ ; 1 - crc error ; 2 - seek er┆ 0x0dfce0…0dfd00 72 6f 72 0d 0a 3b 09 33 09 2d 20 61 64 64 72 65 73 73 20 65 72 72 6f 72 20 28 68 61 72 64 77 61 ┆ror ; 3 - address error (hardwa┆ 0x0dfd00…0dfd20 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 34 09 2d 20 64 61 74 61 20 6f 76 65 72 ┆re malfunction) ; 4 - data over┆ 0x0dfd20…0dfd40 2f 75 6e 64 65 72 20 66 6c 6f 77 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f ┆/under flow (hardware malfunctio┆ 0x0dfd40…0dfd60 6e 29 0d 0a 3b 09 35 09 2d 20 77 72 69 74 65 20 70 72 6f 74 65 63 74 20 28 74 72 65 61 74 65 64 ┆n) ; 5 - write protect (treated┆ 0x0dfd60…0dfd80 20 61 73 20 6e 6f 74 20 72 65 61 64 79 29 0d 0a 3b 09 36 09 2d 20 77 72 69 74 65 20 65 72 72 6f ┆ as not ready) ; 6 - write erro┆ 0x0dfd80…0dfda0 72 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 37 09 2d 20 ┆r (hardware malfunction) ; 7 - ┆ 0x0dfda0…0dfdc0 6e 6f 74 20 72 65 61 64 79 0d 0a 3b 09 28 61 63 63 75 6d 75 6c 61 74 6f 72 20 62 69 74 73 20 61 ┆not ready ; (accumulator bits a┆ 0x0dfdc0…0dfde0 72 65 20 6e 75 6d 62 65 72 65 64 20 37 20 36 20 35 20 34 20 33 20 32 20 31 20 30 29 0d 0a 3b 0d ┆re numbered 7 6 5 4 3 2 1 0) ; ┆ 0x0dfde0…0dfe00 0a 3b 09 69 74 20 6d 61 79 20 62 65 20 75 73 65 66 75 6c 20 74 6f 20 66 69 6c 74 65 72 20 6f 75 ┆ ; it may be useful to filter ou┆ 0x0dfe00…0dfe20 (59, 1, 7) 61 6c 66 75 6e 63 74 69 6f 6e 20 28 63 72 63 2c 20 74 72 61 63 6b 2c 20 73 65 65 6b 2c 20 65 74 ┆alfunction (crc, track, seek, et┆ 0x0dfe20…0dfe40 63 2e 29 0d 0a 3b 09 74 68 65 20 6d 64 73 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 68 61 73 20 72 65 ┆c.) ; the mds controller has re┆ 0x0dfe40…0dfe60 74 75 72 6e 65 64 20 61 20 62 69 74 20 69 6e 20 65 61 63 68 20 70 6f 73 69 74 69 6f 6e 0d 0a 3b ┆turned a bit in each position ;┆ 0x0dfe60…0dfe80 09 6f 66 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 2c 20 63 6f 72 72 65 73 70 6f 6e 64 69 ┆ of the accumulator, correspondi┆ 0x0dfe80…0dfea0 6e 67 20 74 6f 20 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e 73 3a 0d 0a 3b 09 30 09 2d 20 64 65 6c ┆ng to the conditions: ; 0 - del┆ 0x0dfea0…0dfec0 65 74 65 64 20 64 61 74 61 20 28 61 63 63 65 70 74 65 64 20 61 73 20 6f 6b 20 61 62 6f 76 65 29 ┆eted data (accepted as ok above)┆ 0x0dfec0…0dfee0 0d 0a 3b 09 31 09 2d 20 63 72 63 20 65 72 72 6f 72 0d 0a 3b 09 32 09 2d 20 73 65 65 6b 20 65 72 ┆ ; 1 - crc error ; 2 - seek er┆ 0x0dfee0…0dff00 72 6f 72 0d 0a 3b 09 33 09 2d 20 61 64 64 72 65 73 73 20 65 72 72 6f 72 20 28 68 61 72 64 77 61 ┆ror ; 3 - address error (hardwa┆ 0x0dff00…0dff20 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 34 09 2d 20 64 61 74 61 20 6f 76 65 72 ┆re malfunction) ; 4 - data over┆ 0x0dff20…0dff40 2f 75 6e 64 65 72 20 66 6c 6f 77 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f ┆/under flow (hardware malfunctio┆ 0x0dff40…0dff60 6e 29 0d 0a 3b 09 35 09 2d 20 77 72 69 74 65 20 70 72 6f 74 65 63 74 20 28 74 72 65 61 74 65 64 ┆n) ; 5 - write protect (treated┆ 0x0dff60…0dff80 20 61 73 20 6e 6f 74 20 72 65 61 64 79 29 0d 0a 3b 09 36 09 2d 20 77 72 69 74 65 20 65 72 72 6f ┆ as not ready) ; 6 - write erro┆ 0x0dff80…0dffa0 72 20 28 68 61 72 64 77 61 72 65 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 29 0d 0a 3b 09 37 09 2d 20 ┆r (hardware malfunction) ; 7 - ┆ 0x0dffa0…0dffc0 6e 6f 74 20 72 65 61 64 79 0d 0a 3b 09 28 61 63 63 75 6d 75 6c 61 74 6f 72 20 62 69 74 73 20 61 ┆not ready ; (accumulator bits a┆ 0x0dffc0…0dffe0 72 65 20 6e 75 6d 62 65 72 65 64 20 37 20 36 20 35 20 34 20 33 20 32 20 31 20 30 29 0d 0a 3b 0d ┆re numbered 7 6 5 4 3 2 1 0) ; ┆ 0x0dffe0…0e0000 0a 3b 09 69 74 20 6d 61 79 20 62 65 20 75 73 65 66 75 6c 20 74 6f 20 66 69 6c 74 65 72 20 6f 75 ┆ ; it may be useful to filter ou┆ 0x0e0000…0e0020 (59, 1, 8) 20 20 20 20 20 20 20 20 4f 55 54 20 20 20 20 20 43 52 43 4f 4d 0d 0d 3b 24 46 44 32 37 00 37 00 ┆ OUT CRCOM ;$FD27 7 ┆ 0x0e0020…0e0040 00 59 80 00 00 06 f7 ff 44 aa 00 00 46 44 30 00 00 00 00 0e 00 03 01 1b 23 05 00 00 46 18 00 10 ┆ Y D FD0 # F ┆ 0x0e0040…0e0060 00 00 00 00 07 d9 22 fe 00 00 48 18 32 30 30 38 20 2a 2a 2a 20 42 4c 4f 43 4b 20 4c 45 4e 47 54 ┆ " H 2008 *** BLOCK LENGT┆ 0x0e0060…0e0080 48 20 45 52 52 4f 52 2c 20 46 49 4c 45 20 00 55 46 3d 20 4c 4f 43 58 58 2b 32 0d 42 4f 54 41 44 ┆H ERROR, FILE UF= LOCXX+2 BOTAD┆ 0x0e0080…0e00a0 3d 20 4c 4f 43 42 55 46 2b 32 0d 58 46 4c 47 3d 20 20 42 4f 54 41 44 2b 32 0d 4c 4f 43 50 52 3d ┆= LOCBUF+2 XFLG= BOTAD+2 LOCPR=┆ 0x0e00a0…0e00c0 20 58 46 4c 47 2b 31 0d 4c 4f 43 38 30 3d 20 4c 4f 43 50 52 2b 32 0d 4c 4f 43 30 31 3d 20 4c 4f ┆ XFLG+1 LOC80= LOCPR+2 LOC01= LO┆ 0x0e00c0…0e00e0 43 38 30 2b 32 0d 4c 4f 43 41 44 3d 20 4c 4f 43 30 31 2b 32 0d 55 53 48 45 52 3d 20 4c 4f 43 41 ┆C80+2 LOCAD= LOC01+2 USHER= LOCA┆ 0x0e00e0…0e0100 44 2b 32 0d 54 49 4d 58 3d 20 20 55 53 48 45 52 2b 31 0d 53 41 56 58 3d 20 20 54 49 4d 58 2b 31 ┆D+2 TIMX= USHER+1 SAVX= TIMX+1┆ 0x0e0100…0e0120 0d 44 53 4b 4e 4f 3d 20 20 53 41 56 58 2b 34 0d 44 53 4b 41 44 3d 20 20 0d 00 00 00 00 00 00 00 ┆ DSKNO= SAVX+4 DSKAD= ┆ 0x0e0120…0e0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ […0x6…] 0x0e0200…0e0220 (59, 1, 9) 69 73 6b 20 62 61 6e 6b 20 62 69 74 20 69 6e 20 73 65 63 74 6f 72 20 62 79 74 65 0d 0a 3b 09 6d ┆isk bank bit in sector byte ; m┆ 0x0e0220…0e0240 61 73 6b 20 74 68 65 20 62 69 74 20 66 72 6f 6d 20 74 68 65 20 63 75 72 72 65 6e 74 20 69 2f 6f ┆ask the bit from the current i/o┆ 0x0e0240…0e0260 20 66 75 6e 63 74 69 6f 6e 0d 0a 09 61 6e 69 09 30 30 31 30 30 30 30 30 62 09 3b 6d 61 73 6b 20 ┆ function ani 00100000b ;mask ┆ 0x0e0260…0e0280 74 68 65 20 64 69 73 6b 20 73 65 6c 65 63 74 20 62 69 74 0d 0a 09 6c 78 69 09 68 2c 69 6f 73 09 ┆the disk select bit lxi h,ios ┆ 0x0e0280…0e02a0 09 3b 61 64 64 72 65 73 73 20 74 68 65 20 73 65 63 74 6f 72 20 73 65 6c 65 63 74 20 62 79 74 65 ┆ ;address the sector select byte┆ 0x0e02a0…0e02c0 0d 0a 09 6f 72 61 09 6d 09 09 3b 73 65 6c 65 63 74 20 70 72 6f 70 65 72 20 64 69 73 6b 20 62 61 ┆ ora m ;select proper disk ba┆ 0x0e02c0…0e02e0 6e 6b 0d 0a 09 6d 6f 76 09 6d 2c 61 09 09 3b 73 65 74 20 64 69 73 6b 20 73 65 6c 65 63 74 20 62 ┆nk mov m,a ;set disk select b┆ 0x0e02e0…0e0300 69 74 20 6f 6e 2f 6f 66 66 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 77 61 69 74 69 6f 3a 0d 0a 09 6d 76 ┆it on/off ret ; waitio: mv┆ 0x0e0300…0e0320 69 09 63 2c 72 65 74 72 79 09 3b 6d 61 78 20 72 65 74 72 69 65 73 20 62 65 66 6f 72 65 20 70 65 ┆i c,retry ;max retries before pe┆ 0x0e0320…0e0340 72 6d 20 65 72 72 6f 72 0d 0a 72 65 77 61 69 74 3a 0d 0a 3b 09 73 74 61 72 74 20 74 68 65 20 69 ┆rm error rewait: ; start the i┆ 0x0e0340…0e0360 2f 6f 20 66 75 6e 63 74 69 6f 6e 20 61 6e 64 20 77 61 69 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 ┆/o function and wait for complet┆ 0x0e0360…0e0380 69 6f 6e 0d 0a 09 63 61 6c 6c 09 69 6e 74 79 70 65 09 3b 69 6e 20 72 74 79 70 65 0d 0a 09 63 61 ┆ion call intype ;in rtype ca┆ 0x0e0380…0e03a0 6c 6c 09 69 6e 62 79 74 65 09 3b 63 6c 65 61 72 73 20 74 68 65 20 63 6f 6e 74 72 6f 6c 6c 65 72 ┆ll inbyte ;clears the controller┆ 0x0e03a0…0e03c0 0d 0a 3b 0d 0a 09 6c 64 61 09 64 62 61 6e 6b 09 09 3b 73 65 74 20 62 61 6e 6b 20 66 6c 61 67 73 ┆ ; lda dbank ;set bank flags┆ 0x0e03c0…0e03e0 0d 0a 09 6f 72 61 09 61 09 09 3b 7a 65 72 6f 20 69 66 20 64 72 69 76 65 20 30 2c 31 20 61 6e 64 ┆ ora a ;zero if drive 0,1 and┆ 0x0e03e0…0e0400 20 6e 7a 20 69 66 20 32 2c 33 0d 0a 09 6d 76 69 09 61 2c 69 6f 70 62 20 61 6e 64 20 30 66 66 68 ┆ nz if 2,3 mvi a,iopb and 0ffh┆ 0x0e0400…0e0420 (59, 1, 10) 74 20 74 68 65 20 76 61 72 69 6f 75 73 20 63 6f 6e 64 69 74 69 6f 6e 73 2c 0d 0a 3b 09 62 75 74 ┆t the various conditions, ; but┆ 0x0e0420…0e0440 20 77 65 20 77 69 6c 6c 20 67 65 74 20 61 20 70 65 72 6d 61 6e 65 6e 74 20 65 72 72 6f 72 20 6d ┆ we will get a permanent error m┆ 0x0e0440…0e0460 65 73 73 61 67 65 20 69 66 20 69 74 20 69 73 20 6e 6f 74 0d 0a 3b 09 72 65 63 6f 76 65 72 61 62 ┆essage if it is not ; recoverab┆ 0x0e0460…0e0480 6c 65 2e 20 20 69 6e 20 61 6e 79 20 63 61 73 65 2c 20 74 68 65 20 6e 6f 74 20 72 65 61 64 79 20 ┆le. in any case, the not ready ┆ 0x0e0480…0e04a0 63 6f 6e 64 69 74 69 6f 6e 20 69 73 0d 0a 3b 09 74 72 65 61 74 65 64 20 61 73 20 61 20 73 65 70 ┆condition is ; treated as a sep┆ 0x0e04a0…0e04c0 61 72 61 74 65 20 63 6f 6e 64 69 74 69 6f 6e 20 66 6f 72 20 6c 61 74 65 72 20 69 6d 70 72 6f 76 ┆arate condition for later improv┆ 0x0e04c0…0e04e0 65 6d 65 6e 74 0d 0a 74 72 79 63 6f 75 6e 74 3a 0d 0a 3b 09 72 65 67 69 73 74 65 72 20 63 20 63 ┆ement trycount: ; register c c┆ 0x0e04e0…0e0500 6f 6e 74 61 69 6e 73 20 72 65 74 72 79 20 63 6f 75 6e 74 2c 20 64 65 63 72 65 6d 65 6e 74 20 27 ┆ontains retry count, decrement '┆ 0x0e0500…0e0520 74 69 6c 20 7a 65 72 6f 0d 0a 09 64 63 72 09 63 0d 0a 09 6a 6e 7a 09 72 65 77 61 69 74 09 3b 66 ┆til zero dcr c jnz rewait ;f┆ 0x0e0520…0e0540 6f 72 20 61 6e 6f 74 68 65 72 20 74 72 79 0d 0a 3b 0d 0a 3b 09 63 61 6e 6e 6f 74 20 72 65 63 6f ┆or another try ; ; cannot reco┆ 0x0e0540…0e0560 76 65 72 20 66 72 6f 6d 20 65 72 72 6f 72 0d 0a 09 6d 76 69 09 61 2c 31 09 3b 65 72 72 6f 72 20 ┆ver from error mvi a,1 ;error ┆ 0x0e0560…0e0580 63 6f 64 65 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 09 69 6e 74 79 70 65 2c 20 69 6e 62 79 74 65 2c ┆code ret ; ; intype, inbyte,┆ 0x0e0580…0e05a0 20 69 6e 73 74 61 74 20 72 65 61 64 20 64 72 69 76 65 20 62 61 6e 6b 20 30 30 20 6f 72 20 31 30 ┆ instat read drive bank 00 or 10┆ 0x0e05a0…0e05c0 0d 0a 69 6e 74 79 70 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e ┆ intype: lda dbank ora a jn┆ 0x0e05c0…0e05e0 7a 09 69 6e 74 79 70 31 09 3b 73 6b 69 70 20 74 6f 20 62 61 6e 6b 20 31 30 0d 0a 09 69 6e 09 72 ┆z intyp1 ;skip to bank 10 in r┆ 0x0e05e0…0e0600 74 79 70 65 0d 0a 09 72 65 74 0d 0a 69 6e 74 79 70 31 3a 09 69 6e 09 72 74 79 70 65 2b 31 30 68 ┆type ret intyp1: in rtype+10h┆ 0x0e0600…0e0620 (59, 1, 11) 74 20 74 68 65 20 76 61 72 69 6f 75 73 20 63 6f 6e 64 69 74 69 6f 6e 73 2c 0d 0a 3b 09 62 75 74 ┆t the various conditions, ; but┆ 0x0e0620…0e0640 20 77 65 20 77 69 6c 6c 20 67 65 74 20 61 20 70 65 72 6d 61 6e 65 6e 74 20 65 72 72 6f 72 20 6d ┆ we will get a permanent error m┆ 0x0e0640…0e0660 65 73 73 61 67 65 20 69 66 20 69 74 20 69 73 20 6e 6f 74 0d 0a 3b 09 72 65 63 6f 76 65 72 61 62 ┆essage if it is not ; recoverab┆ 0x0e0660…0e0680 6c 65 2e 20 20 69 6e 20 61 6e 79 20 63 61 73 65 2c 20 74 68 65 20 6e 6f 74 20 72 65 61 64 79 20 ┆le. in any case, the not ready ┆ 0x0e0680…0e06a0 63 6f 6e 64 69 74 69 6f 6e 20 69 73 0d 0a 3b 09 74 72 65 61 74 65 64 20 61 73 20 61 20 73 65 70 ┆condition is ; treated as a sep┆ 0x0e06a0…0e06c0 61 72 61 74 65 20 63 6f 6e 64 69 74 69 6f 6e 20 66 6f 72 20 6c 61 74 65 72 20 69 6d 70 72 6f 76 ┆arate condition for later improv┆ 0x0e06c0…0e06e0 65 6d 65 6e 74 0d 0a 74 72 79 63 6f 75 6e 74 3a 0d 0a 3b 09 72 65 67 69 73 74 65 72 20 63 20 63 ┆ement trycount: ; register c c┆ 0x0e06e0…0e0700 6f 6e 74 61 69 6e 73 20 72 65 74 72 79 20 63 6f 75 6e 74 2c 20 64 65 63 72 65 6d 65 6e 74 20 27 ┆ontains retry count, decrement '┆ 0x0e0700…0e0720 74 69 6c 20 7a 65 72 6f 0d 0a 09 64 63 72 09 63 0d 0a 09 6a 6e 7a 09 72 65 77 61 69 74 09 3b 66 ┆til zero dcr c jnz rewait ;f┆ 0x0e0720…0e0740 6f 72 20 61 6e 6f 74 68 65 72 20 74 72 79 0d 0a 3b 0d 0a 3b 09 63 61 6e 6e 6f 74 20 72 65 63 6f ┆or another try ; ; cannot reco┆ 0x0e0740…0e0760 76 65 72 20 66 72 6f 6d 20 65 72 72 6f 72 0d 0a 09 6d 76 69 09 61 2c 31 09 3b 65 72 72 6f 72 20 ┆ver from error mvi a,1 ;error ┆ 0x0e0760…0e0780 63 6f 64 65 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 09 69 6e 74 79 70 65 2c 20 69 6e 62 79 74 65 2c ┆code ret ; ; intype, inbyte,┆ 0x0e0780…0e07a0 20 69 6e 73 74 61 74 20 72 65 61 64 20 64 72 69 76 65 20 62 61 6e 6b 20 30 30 20 6f 72 20 31 30 ┆ instat read drive bank 00 or 10┆ 0x0e07a0…0e07c0 0d 0a 69 6e 74 79 70 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e ┆ intype: lda dbank ora a jn┆ 0x0e07c0…0e07e0 7a 09 69 6e 74 79 70 31 09 3b 73 6b 69 70 20 74 6f 20 62 61 6e 6b 20 31 30 0d 0a 09 69 6e 09 72 ┆z intyp1 ;skip to bank 10 in r┆ 0x0e07e0…0e0800 74 79 70 65 0d 0a 09 72 65 74 0d 0a 69 6e 74 79 70 31 3a 09 69 6e 09 72 74 79 70 65 2b 31 30 68 ┆type ret intyp1: in rtype+10h┆ 0x0e0800…0e0a00 (59, 1, 12) 0x40[0x200] 0x0e0a00…0e0a20 (59, 1, 13) 09 3b 6c 6f 77 20 61 64 64 72 65 73 73 20 66 6f 72 20 69 6f 70 62 0d 0a 09 6d 76 69 09 62 2c 69 ┆ ;low address for iopb mvi b,i┆ 0x0e0a20…0e0a40 6f 70 62 20 73 68 72 20 38 09 3b 68 69 67 68 20 61 64 64 72 65 73 73 20 66 6f 72 20 69 6f 70 62 ┆opb shr 8 ;high address for iopb┆ 0x0e0a40…0e0a60 0d 0a 09 6a 6e 7a 09 69 6f 64 72 31 09 3b 64 72 69 76 65 20 62 61 6e 6b 20 31 3f 0d 0a 09 6f 75 ┆ jnz iodr1 ;drive bank 1? ou┆ 0x0e0a60…0e0a80 74 09 69 6c 6f 77 09 09 3b 6c 6f 77 20 61 64 64 72 65 73 73 20 74 6f 20 63 6f 6e 74 72 6f 6c 6c ┆t ilow ;low address to controll┆ 0x0e0a80…0e0aa0 65 72 0d 0a 09 6d 6f 76 09 61 2c 62 0d 0a 09 6f 75 74 09 69 68 69 67 68 09 3b 68 69 67 68 20 61 ┆er mov a,b out ihigh ;high a┆ 0x0e0aa0…0e0ac0 64 64 72 65 73 73 0d 0a 09 6a 6d 70 09 77 61 69 74 30 09 09 3b 74 6f 20 77 61 69 74 20 66 6f 72 ┆ddress jmp wait0 ;to wait for┆ 0x0e0ac0…0e0ae0 20 63 6f 6d 70 6c 65 74 65 0d 0a 3b 0d 0a 69 6f 64 72 31 3a 09 3b 64 72 69 76 65 20 62 61 6e 6b ┆ complete ; iodr1: ;drive bank┆ 0x0e0ae0…0e0b00 20 31 0d 0a 09 6f 75 74 09 69 6c 6f 77 2b 31 30 68 09 3b 38 38 20 66 6f 72 20 64 72 69 76 65 20 ┆ 1 out ilow+10h ;88 for drive ┆ 0x0e0b00…0e0b20 62 61 6e 6b 20 31 30 0d 0a 09 6d 6f 76 09 61 2c 62 0d 0a 09 6f 75 74 09 69 68 69 67 68 2b 31 30 ┆bank 10 mov a,b out ihigh+10┆ 0x0e0b20…0e0b40 68 0d 0a 3b 0d 0a 77 61 69 74 30 3a 09 63 61 6c 6c 09 69 6e 73 74 61 74 09 09 3b 77 61 69 74 20 ┆h ; wait0: call instat ;wait ┆ 0x0e0b40…0e0b60 66 6f 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 0d 0a 09 61 6e 69 09 69 6f 72 64 79 09 09 3b 72 65 61 ┆for completion ani iordy ;rea┆ 0x0e0b60…0e0b80 64 79 3f 0d 0a 09 6a 7a 09 77 61 69 74 30 0d 0a 3b 0d 0a 3b 09 63 68 65 63 6b 20 69 6f 20 63 6f ┆dy? jz wait0 ; ; check io co┆ 0x0e0b80…0e0ba0 6d 70 6c 65 74 69 6f 6e 20 6f 6b 0d 0a 09 63 61 6c 6c 09 69 6e 74 79 70 65 09 09 3b 6d 75 73 74 ┆mpletion ok call intype ;must┆ 0x0e0ba0…0e0bc0 20 62 65 20 69 6f 20 63 6f 6d 70 6c 65 74 65 20 28 30 30 29 20 75 6e 6c 69 6e 6b 65 64 0d 0a 3b ┆ be io complete (00) unlinked ;┆ 0x0e0bc0…0e0be0 09 30 30 20 75 6e 6c 69 6e 6b 65 64 20 69 2f 6f 20 63 6f 6d 70 6c 65 74 65 2c 20 20 20 20 30 31 ┆ 00 unlinked i/o complete, 01┆ 0x0e0be0…0e0c00 20 6c 69 6e 6b 65 64 20 69 2f 6f 20 63 6f 6d 70 6c 65 74 65 20 28 6e 6f 74 20 75 73 65 64 29 0d ┆ linked i/o complete (not used) ┆ 0x0e0c00…0e0c20 (59, 1, 14) 09 3b 37 38 20 66 6f 72 20 30 2c 31 20 20 38 38 20 66 6f 72 20 32 2c 33 0d 0a 09 72 65 74 0d 0a ┆ ;78 for 0,1 88 for 2,3 ret ┆ 0x0e0c20…0e0c40 3b 0d 0a 69 6e 62 79 74 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a ┆; inbyte: lda dbank ora a j┆ 0x0e0c40…0e0c60 6e 7a 09 69 6e 62 79 74 31 0d 0a 09 69 6e 09 72 62 79 74 65 0d 0a 09 72 65 74 0d 0a 69 6e 62 79 ┆nz inbyt1 in rbyte ret inby┆ 0x0e0c60…0e0c80 74 31 3a 09 69 6e 09 72 62 79 74 65 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 69 6e 73 74 61 ┆t1: in rbyte+10h ret ; insta┆ 0x0e0c80…0e0ca0 74 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 73 74 61 ┆t: lda dbank ora a jnz insta┆ 0x0e0ca0…0e0cc0 31 0d 0a 09 69 6e 09 64 73 74 61 74 0d 0a 09 72 65 74 0d 0a 69 6e 73 74 61 31 3a 09 69 6e 09 64 ┆1 in dstat ret insta1: in d┆ 0x0e0cc0…0e0ce0 73 74 61 74 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 61 74 61 20 ┆stat+10h ret ; ; ; ; data ┆ 0x0e0ce0…0e0d00 61 72 65 61 73 20 28 6d 75 73 74 20 62 65 20 69 6e 20 72 61 6d 29 0d 0a 64 62 61 6e 6b 3a 09 64 ┆areas (must be in ram) dbank: d┆ 0x0e0d00…0e0d20 62 09 30 09 3b 64 69 73 6b 20 62 61 6e 6b 20 30 30 20 69 66 20 64 72 69 76 65 20 30 2c 31 0d 0a ┆b 0 ;disk bank 00 if drive 0,1 ┆ 0x0e0d20…0e0d40 09 09 09 3b 09 20 20 20 31 30 20 69 66 20 64 72 69 76 65 20 32 2c 33 0d 0a 69 6f 70 62 3a 09 3b ┆ ; 10 if drive 2,3 iopb: ;┆ 0x0e0d40…0e0d60 69 6f 20 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 0d 0a 09 64 62 09 38 30 68 09 3b 6e 6f 72 ┆io parameter block db 80h ;nor┆ 0x0e0d60…0e0d80 6d 61 6c 20 69 2f 6f 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 69 6f 66 3a 09 64 62 09 72 65 61 64 66 ┆mal i/o operation iof: db readf┆ 0x0e0d80…0e0da0 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 2c 20 69 6e 69 74 69 61 6c 20 72 65 61 64 0d 0a 69 6f 6e ┆ ;io function, initial read ion┆ 0x0e0da0…0e0dc0 3a 09 64 62 09 31 09 3b 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 20 74 6f 20 72 65 61 ┆: db 1 ;number of sectors to rea┆ 0x0e0dc0…0e0de0 64 0d 0a 69 6f 74 3a 09 64 62 09 6f 66 66 73 65 74 09 3b 74 72 61 63 6b 20 6e 75 6d 62 65 72 0d ┆d iot: db offset ;track number ┆ 0x0e0de0…0e0e00 0a 69 6f 73 3a 09 64 62 09 31 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 0d 0a 69 6f 64 3a 09 ┆ ios: db 1 ;sector number iod: ┆ 0x0e0e00…0e0e20 (59, 1, 15) 09 3b 37 38 20 66 6f 72 20 30 2c 31 20 20 38 38 20 66 6f 72 20 32 2c 33 0d 0a 09 72 65 74 0d 0a ┆ ;78 for 0,1 88 for 2,3 ret ┆ 0x0e0e20…0e0e40 3b 0d 0a 69 6e 62 79 74 65 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a ┆; inbyte: lda dbank ora a j┆ 0x0e0e40…0e0e60 6e 7a 09 69 6e 62 79 74 31 0d 0a 09 69 6e 09 72 62 79 74 65 0d 0a 09 72 65 74 0d 0a 69 6e 62 79 ┆nz inbyt1 in rbyte ret inby┆ 0x0e0e60…0e0e80 74 31 3a 09 69 6e 09 72 62 79 74 65 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 69 6e 73 74 61 ┆t1: in rbyte+10h ret ; insta┆ 0x0e0e80…0e0ea0 74 3a 09 6c 64 61 09 64 62 61 6e 6b 0d 0a 09 6f 72 61 09 61 0d 0a 09 6a 6e 7a 09 69 6e 73 74 61 ┆t: lda dbank ora a jnz insta┆ 0x0e0ea0…0e0ec0 31 0d 0a 09 69 6e 09 64 73 74 61 74 0d 0a 09 72 65 74 0d 0a 69 6e 73 74 61 31 3a 09 69 6e 09 64 ┆1 in dstat ret insta1: in d┆ 0x0e0ec0…0e0ee0 73 74 61 74 2b 31 30 68 0d 0a 09 72 65 74 0d 0a 3b 0d 0a 3b 0d 0a 3b 0d 0a 3b 09 64 61 74 61 20 ┆stat+10h ret ; ; ; ; data ┆ 0x0e0ee0…0e0f00 61 72 65 61 73 20 28 6d 75 73 74 20 62 65 20 69 6e 20 72 61 6d 29 0d 0a 64 62 61 6e 6b 3a 09 64 ┆areas (must be in ram) dbank: d┆ 0x0e0f00…0e0f20 62 09 30 09 3b 64 69 73 6b 20 62 61 6e 6b 20 30 30 20 69 66 20 64 72 69 76 65 20 30 2c 31 0d 0a ┆b 0 ;disk bank 00 if drive 0,1 ┆ 0x0e0f20…0e0f40 09 09 09 3b 09 20 20 20 31 30 20 69 66 20 64 72 69 76 65 20 32 2c 33 0d 0a 69 6f 70 62 3a 09 3b ┆ ; 10 if drive 2,3 iopb: ;┆ 0x0e0f40…0e0f60 69 6f 20 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 0d 0a 09 64 62 09 38 30 68 09 3b 6e 6f 72 ┆io parameter block db 80h ;nor┆ 0x0e0f60…0e0f80 6d 61 6c 20 69 2f 6f 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 69 6f 66 3a 09 64 62 09 72 65 61 64 66 ┆mal i/o operation iof: db readf┆ 0x0e0f80…0e0fa0 09 3b 69 6f 20 66 75 6e 63 74 69 6f 6e 2c 20 69 6e 69 74 69 61 6c 20 72 65 61 64 0d 0a 69 6f 6e ┆ ;io function, initial read ion┆ 0x0e0fa0…0e0fc0 3a 09 64 62 09 31 09 3b 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 20 74 6f 20 72 65 61 ┆: db 1 ;number of sectors to rea┆ 0x0e0fc0…0e0fe0 64 0d 0a 69 6f 74 3a 09 64 62 09 6f 66 66 73 65 74 09 3b 74 72 61 63 6b 20 6e 75 6d 62 65 72 0d ┆d iot: db offset ;track number ┆ 0x0e0fe0…0e1000 0a 69 6f 73 3a 09 64 62 09 31 09 3b 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 0d 0a 69 6f 64 3a 09 ┆ ios: db 1 ;sector number iod: ┆ 0x0e1000…0e1020 (60, 0, 1) 2c c3 8f 03 21 c5 34 c3 f1 08 21 c9 34 c3 f1 08 21 b7 34 cd d4 2b b7 c9 e5 21 41 0a 35 21 c7 34 ┆, ! 4 ! 4 ! 4 + !A 5! 4┆ 0x0e1020…0e1040 cc d4 2b e1 c9 2a 76 0e 2b 22 76 0e cd 53 09 21 20 01 06 00 36 20 23 04 78 ca 46 09 e6 07 c2 34 ┆ + *v +"v S ! 6 # x F 4┆ 0x0e1040…0e1060 09 36 2e c3 36 09 21 00 00 22 2e 0a 2a 91 0e 22 2a 0a c9 11 20 01 2a 73 2d 26 00 19 22 7f 34 22 ┆ 6. 6 ! ". * "* *s-& " 4"┆ 0x0e1060…0e1080 92 34 3a 41 02 c6 7f 32 7e 34 32 91 34 cd 81 2b c9 7a bc c0 7b bd c9 06 00 09 09 5e 23 56 d5 c9 ┆ 4:A 2ü42 4 + z æ ^#V ┆ 0x0e1080…0e10a0 0e 0a 21 cb 34 cd d6 2b 21 40 0a 35 c2 9c 09 34 3a 2e 03 21 40 0a 46 77 05 cc f1 2b 3a 40 0a c6 ┆ ! 4 +!@ 5 4:. !@ Fw +:@ ┆ 0x0e10a0…0e10c0 30 2a a7 34 cd 0f 32 77 fe 52 11 94 34 ca c3 09 fe 33 11 6e 34 ca c3 09 d2 80 09 fe 31 ca f1 2b ┆0* 4 2w R 4 3 n4 1 +┆ 0x0e10c0…0e10e0 11 81 34 eb cd 16 2c c9 7e 12 23 13 05 c2 c8 09 c9 0e 0f c3 d8 09 0e 16 cd eb 09 fe f5 d2 e9 09 ┆ 4 , ü # ┆ 0x0e10e0…0e1100 e5 21 20 00 19 af 77 e1 c9 b7 c9 e5 c5 d5 79 d6 0f fe 09 d2 1a 0a 1a 47 d5 c5 3d f2 01 0a 3a 80 ┆ ! w y G = : ┆ 0x0e1100…0e1120 0e 32 46 0a 5f 0e 0e cd 05 00 c1 d1 af 12 c5 cd 05 00 c1 e1 70 eb b7 c1 e1 c9 cd 05 00 b7 d1 c1 ┆ 2F _ p ┆ 0x0e1120…0e1140 e1 c9 05 27 c3 f8 25 0a 00 50 27 3e 12 01 d0 03 00 00 00 00 00 00 00 00 00 00 00 00 00 12 77 2b ┆ ' % P'> w+┆ 0x0e1140…0e1160 04 10 3e 06 2b 36 00 06 01 21 53 01 cd 16 31 04 21 17 01 cd 16 31 01 0b 04 21 8f 01 cd 1b 31 cd ┆ > +6 !S 1 ! 1 ! 1 ┆ 0x0e1160…0e1180 66 0a cd 66 0a c9 f5 e5 21 d5 34 cd 23 31 e1 f1 c9 cd 66 0a eb cd 23 31 eb c9 f5 11 5c 00 06 10 ┆f f ! 4 #1 f #1 Ø ┆ 0x0e1180…0e11a0 cd c8 09 11 5c 00 cd d1 09 c2 00 00 cd 2a 33 fe 03 ca 00 00 21 00 01 c1 f9 c5 21 67 0e 11 80 00 ┆ Ø *3 ! !g ┆ 0x0e11a0…0e11c0 06 0c cd c8 09 21 ba 0a 11 8c 00 06 6c cd c8 09 21 00 01 eb 2a 06 00 c3 8c 00 d5 0e 0b cd 05 00 ┆ ! l ! * ┆ 0x0e11c0…0e11e0 b7 0e 01 c4 05 00 fe 03 ca 00 00 d1 d5 0e 1a cd 05 00 11 5c 00 0e 14 cd 05 00 d1 21 80 00 19 eb ┆ Ø ! ┆ 0x0e11e0…0e1200 b7 ca 8c 00 fe 01 c2 00 00 11 80 00 0e 1a cd 05 00 f1 c3 09 01 2a 6a 34 11 6a 34 19 eb 2a 2c 03 ┆ *j4 j4 *, ┆ 0x0e1200…0e1220 (60, 0, 2) 11 c4 05 11 c9 05 23 7e c9 04 2b cd 05 11 c8 fe f7 d8 fe fe da 0b 11 cd 05 11 c8 fe f7 da 17 11 ┆ #ü + ┆ 0x0e1220…0e1240 c3 0b 11 e5 d5 c5 eb 0e 00 2a 93 0e 23 23 cd 56 12 ca 41 11 0c cd 2c 0b c2 2e 11 cd 56 12 c2 04 ┆ * ## V A , . V ┆ 0x0e1240…0e1260 09 79 c1 d1 e1 c9 e5 d5 c5 2a 2e 0a 67 cd 34 13 cd 19 10 cd 85 11 32 f9 15 21 fa 15 34 c1 d1 e1 ┆ y *. g 4 2 ! 4 ┆ 0x0e1260…0e1280 c9 3a f9 15 4f 3a fa 15 57 b7 c8 79 cd 68 0b cd 42 14 2a 43 0a 6f cd 34 13 1e 00 37 cd a3 10 0d ┆ : O: W y h B *C o 4 7 ┆ 0x0e1280…0e12a0 15 c2 6b 11 c9 e5 d5 c5 2a 93 0e 46 05 cd a4 11 78 da a0 11 cd 34 13 f5 eb cd 1f 13 cd d2 11 f1 ┆ k * F x 4 ┆ 0x0e12a0…0e12c0 c1 d1 e1 c9 2a 2a 0a eb 2a 2e 0a cd bd 11 d8 ca ab 11 e5 f1 e5 cd bd 11 c2 b3 11 e1 c9 2c 3a 8f ┆ ** *. ,: ┆ 0x0e12c0…0e12e0 0e 95 c2 cd 11 6f 24 3a 90 0e bc 37 c8 1a 13 e6 7c c9 c5 d5 e5 cd 53 0b cd de 08 c5 cd 4f 12 cd ┆ o$: 7 ø S O ┆ 0x0e12e0…0e1300 28 12 da e8 11 c1 09 c5 e3 eb cd 03 15 eb e1 cd 53 0b c5 cd 5c 12 d1 7b 2f 5f 7a 2f 57 13 cd 03 ┆( S Ø æ/_z/W ┆ 0x0e1300…0e1320 15 e1 d1 c1 c9 e5 cd 4d 14 0b 01 04 00 09 4f 56 ba d2 16 12 4a 57 cd 72 12 51 cd 72 12 e1 e5 cd ┆ M OV JW r Q r ┆ 0x0e1320…0e1340 63 15 57 c4 83 12 e1 c9 e5 d5 c5 f5 f5 cd 23 11 6f f1 da 36 12 2c eb cd 23 11 eb 67 1e 01 4c 0c ┆c W # o 6 , # g L ┆ 0x0e1340…0e1360 cd a2 10 7d 1e ff 0d cd a2 10 f1 c1 d1 e1 c9 7d 93 4f 7c 9a 47 c0 7c ba c0 7d bb c9 7e 12 13 23 ┆ å å Oø G ø å ü #┆ 0x0e1360…0e1380 0b 78 b1 c2 5c 12 c9 7e 12 1b 2b 0b 78 b1 c2 67 12 c9 14 15 c8 3e 0b cd 97 12 e5 21 8e 0e 3e 0f ┆ x Ø ü + x g > ! > ┆ 0x0e1380…0e13a0 c3 8e 12 e5 21 99 0e 1c cc bd 12 1d 3e 08 f5 7e 83 77 cc b9 12 f1 e1 14 15 c8 e5 c5 32 a8 12 2a ┆ ! > ü w 2 *┆ 0x0e13a0…0e13c0 93 0e 23 23 e5 cd 4d 14 00 ba da af 12 83 77 e1 cd 2c 0b c2 a4 12 c1 e1 c9 83 f8 35 c9 7e ba c0 ┆ ## M w , 5 ü ┆ 0x0e13c0…0e13e0 e5 21 8d 0e 7e e6 fb 77 e1 c9 e5 c5 2a 93 0e 23 23 e5 cd 3d 14 ba da ef 12 c2 ed 12 1c 1d f2 ed ┆ ! ü w * ## = ┆ 0x0e13e0…0e1400 12 e1 d5 cd 63 10 d1 cd f9 12 c3 f3 12 83 77 e1 cd 2c 0b c2 d1 12 c1 e1 c9 7e b7 c9 e5 c5 44 4d ┆ c w , ü DM┆ 0x0e1400…0e1420 (60, 0, 3) 0d c9 12 13 0d 23 fe 22 cc 21 19 05 c8 7e fe f7 da 02 19 c9 e5 21 24 19 c6 02 23 3c c2 1a 19 7e ┆ # " ! ü !$ #< ü┆ 0x0e1420…0e1440 e1 12 13 0d c9 2b 2d 2a 2f 5e 28 29 3f ff 7e fe fe c8 23 d5 c5 5e 23 56 23 cd 47 19 c1 d1 d2 2e ┆ +-*/^()? ü # ^#V# G .┆ 0x0e1440…0e1460 19 2b 11 28 22 12 c9 cd 35 17 6b 19 78 19 88 19 af 19 88 19 b6 19 c4 19 da 19 e1 19 eb 19 01 1a ┆ + (" 5 k x ┆ 0x0e1460…0e1480 e5 2a 23 22 7b cd 51 14 a2 e1 c9 cd 60 19 c0 7e 23 fe fe c2 6f 19 37 c9 cd 60 19 c0 e5 2a 25 22 ┆ *#"æ Q ` ü# o 7 ` *%"┆ 0x0e1480…0e14a0 78 2f a6 77 e1 c3 6f 19 cd 60 19 c0 e5 21 8e 0e cd 97 19 e1 c3 6f 19 e5 2a 25 22 56 af 77 b2 e1 ┆x/ w o ` ! o *%"V w ┆ 0x0e14a0…0e14c0 c8 1e ff 3e 0b cd 97 12 3e 0f cd 97 12 35 c9 cd 60 19 c8 c3 6f 19 cd 60 19 c0 e5 06 00 cd be 20 ┆ > > 5 ` o ` ┆ 0x0e14c0…0e14e0 e1 c3 6f 19 cd 60 19 c0 e5 2a 23 22 cd 17 14 57 1e f4 3e 14 c4 d0 20 c3 7d 19 3a 99 0e 3d c3 6e ┆ o ` *#" W > å : = n┆ 0x0e14e0…0e1500 19 cd 60 19 c0 11 06 02 c3 78 19 cd 60 19 e5 21 99 0e 96 32 3e 22 7e e1 c2 6f 19 fe 02 d0 c3 6f ┆ ` x ` ! 2>"ü o o┆ 0x0e1500…0e1520 19 cd 60 19 c8 3a 3e 22 b7 c0 cd 6f 19 cd 72 1d b7 37 c9 e5 d5 c5 2a 2b 22 65 eb 22 3a 22 3a 3d ┆ ` :>" o r 7 *+"e ":":=┆ 0x0e1520…0e1540 22 b7 ca 33 1a 7a 93 32 28 0a cd e3 2c c4 b6 33 cd 6d 04 e5 2a 1b 34 cd 99 2e e1 cd 7a 32 4f fe ┆" 3 z 2( , 3 m * 4 . z2O ┆ 0x0e1540…0e1560 0d ca 63 1a fe 20 da 3b 1c fe 7f 3f d4 95 1d da 1e 1a 71 cd 9b 2f e5 2a 23 22 c3 5d 1a e1 23 1d ┆ c ; ? q / *#" Å # ┆ 0x0e1560…0e1580 c2 1e 1a c1 d1 e1 3a 22 22 fe 0f c0 e5 d5 c5 21 00 00 cd 8f 1a da 1e 1a 45 cd be 20 2a 40 22 45 ┆ :"" ! E *@"E┆ 0x0e1580…0e15a0 2a 23 22 cd 4d 14 05 e6 7f b0 77 c1 d1 e1 c9 af 32 40 22 3a 3c 22 b7 c2 47 1b 06 00 cd b7 1a cd ┆*#" M w 2@":<" G ┆ 0x0e15a0…0e15c0 c7 1a da e6 1b cd 24 1b cd 36 1b da f9 1b f2 9c 1a 04 05 c2 ff 1b c9 cd ca 1b fe 28 c0 3e f8 cd ┆ $ 6 ( > ┆ 0x0e15c0…0e15e0 d2 1b 13 04 c3 b7 1a cd ca 1b fe 23 ca fd 1a 3e fe cd d2 1b 1a c5 01 01 00 fe 2d c2 e5 1a cd d2 ┆ # > - ┆ 0x0e15e0…0e1600 1b 13 cd ca 1b 0d c2 ee 1a fe 2e ca de 1a 0c 04 d6 30 fe 0a 1a da de 1a 05 c1 c0 37 c9 13 cd ca ┆ . 0 7 ┆ 0x0e1600…0e1620 (60, 0, 4) 22 be c0 cd a4 17 cd 6f 21 36 f6 c9 d5 2a 2b 22 1a fe 3f ca 1b 21 13 2d c2 10 21 2c 2d d1 c9 eb ┆" o!6 *+" ? ! - !,- ┆ 0x0e1620…0e1640 3a 2b 22 5f 7e b7 c2 31 21 3e 20 cd 65 1d c3 24 21 23 1d c2 24 21 c9 c5 3a 2b 22 4f af 47 1a d6 ┆:+"_ü 1!> e $!# $! :+"O G ┆ 0x0e1640…0e1660 30 fe 0a 78 d2 5b 21 fe 1a 3f da 5b 21 87 87 80 87 47 1a 13 d6 30 80 0d c2 3d 21 32 2d 22 c1 d0 ┆0 x Æ! ? Æ! G 0 =!2-" ┆ 0x0e1660…0e1680 af 32 2d 22 3d c9 21 2d 22 be c8 77 cd ca 17 e5 2a 33 22 cd 35 2f e1 0e 2f cd 80 2f cd 81 21 7e ┆ 2-"= !-" w *3" 5/ / / !ü┆ 0x0e1680…0e16a0 c9 e5 d5 c5 3a 3d 22 b7 c4 23 30 eb 3a 2b 22 5f cd 97 21 c1 d1 e1 c9 3a 3d 22 b7 c2 be 21 e5 d5 ┆ :=" #0 :+"_ ! :=" ! ┆ 0x0e16a0…0e16c0 e5 2a 1b 34 e3 4e cd 9b 2f 23 1d c2 a5 21 2a 1b 34 22 33 22 cd 23 30 e1 cd 35 2f d1 e1 c9 cd 58 ┆ * 4 N /# !* 4"3" #0 5/ X┆ 0x0e16c0…0e16e0 2b cd 66 2b cd b6 33 c9 af e5 c5 47 2a 1d 22 cd 24 32 cd 00 22 7e 23 cd ea 21 7e 23 fe 00 c2 d7 ┆+ f+ 3 G* " $2 "ü# !ü# ┆ 0x0e16e0…0e1700 21 2a 1b 34 22 35 22 c1 e1 c9 fe fd ca fb 21 04 05 c0 fe fc ca 0c 22 4f c3 9b 2f 04 05 cc 23 30 ┆!* 4"5" ! "O / #0┆ 0x0e1700…0e1720 e5 2a 1b 34 24 2e 00 cd 35 2f e1 c9 e5 0e 20 21 1b 34 cd 9b 2f 7e fe 1f da 12 22 e1 c9 01 32 05 ┆ * 4$. 5/ ! 4 /ü " 2 ┆ 0x0e1720…0e1740 43 46 04 05 c8 23 4e 79 e6 7e fe 02 cc 00 3e cd 3b 3e c3 ee 3d e5 d5 eb 2a 03 18 79 e6 00 b6 00 ┆CF #Ny ü > ;> = * y ┆ 0x0e1740…0e1760 1b 23 1a e6 7e fe 02 ca 06 3e d1 e1 c9 cd a8 3c af 32 05 43 c9 79 fe 20 d2 2f 3e fe 0d c0 e5 cd ┆ # ü > < 2 C y /> ┆ 0x0e1760…0e1780 06 40 e1 c9 cd 3b 3e e5 2a bb 42 cd 39 3d e1 c9 e5 d5 c5 3a 05 43 b7 c2 a4 3e 79 cd b2 3e 4f cd ┆ @ ;> * B 9= : C >y >O ┆ 0x0e1780…0e17a0 51 3e c1 d1 e1 c9 cd 96 3c c2 78 3e 79 2a b1 42 be ca 89 3e 2a bb 42 cd 45 3d cd a1 3e cd 89 3e ┆Q> < x>y* B >* B E= > >┆ 0x0e17a0…0e17c0 2a bb 42 22 bf 42 2a b1 42 22 b3 42 c9 2a b3 42 eb 2a b1 42 cd b6 39 c2 89 3e 79 32 b5 42 21 bb ┆* B" B* B" B * B * B 9 >y2 B! ┆ 0x0e17c0…0e17e0 42 34 2a b1 42 71 23 22 b1 42 c5 3a bc 42 4f 06 00 cd fb 40 c1 c9 e5 d5 c5 cd 27 3f 79 cd 00 00 ┆B4* Bq#" B : BO @ '?y ┆ 0x0e17e0…0e1800 cd f6 41 c1 d1 e1 c9 07 fe 02 d2 ba 3e c6 be fe 04 d2 c1 3e c6 52 0f c9 e5 d5 c5 0e 20 cd b1 3c ┆ A > > R <┆ 0x0e1800…0e1820 (60, 0, 5) cd 71 09 da 07 0b eb 11 64 00 19 22 2c 03 d1 f9 d5 0e 19 cd eb 09 32 80 0e c9 0e 0e 3a 80 0e 5f ┆ q d ", 2 : _┆ 0x0e1820…0e1840 cd eb 09 11 80 00 0e 1a cd eb 09 c9 c5 cd 53 0b 09 c1 7e b7 c9 d5 2b 5e 16 00 7b b7 23 ca 51 0b ┆ S ü +^ æ # Q ┆ 0x0e1840…0e1860 fe 0d d2 4b 0b 57 2b 2b 5e 23 23 cd 09 0d 19 f6 ff d1 c9 4e 06 00 79 fe 0d d0 b7 c8 47 23 4e 2b ┆ K W++^## N y G#N+┆ 0x0e1860…0e1880 c9 79 ae e6 7f ae 77 c9 2a 93 0e be d2 21 0d 23 23 b7 c8 f5 cd 2c 0b f1 3d c2 73 0b c9 eb 01 00 ┆ y w * ! ## , = s ┆ 0x0e1880…0e18a0 01 cd c7 30 fe 03 ca 00 00 21 80 00 7e b7 c2 11 0c 21 cd 34 06 06 cd 16 31 21 66 0e cd b7 31 21 ┆ 0 ! ü ! 4 1!f 1!┆ 0x0e18a0…0e18c0 67 0e 7e b7 11 cf 34 ca 7d 0b 47 4f 23 7e fe 60 da b6 0b e6 5f 77 23 05 c2 ad 0b 36 00 21 69 0e ┆g ü 4 å GO#ü ` _w# 6 !i ┆ 0x0e18c0…0e18e0 7e 2b fe 3a 3e 00 c2 db 0b 7e d6 40 23 23 0d 0d 11 d1 34 ca 7d 0b fe 11 d2 7d 0b 11 5c 00 12 13 ┆ü+ :> ü @## 4 å å Ø ┆ 0x0e18e0…0e1900 06 08 cd ee 0b 06 03 7e b7 0e 01 c2 cf 0b 7e b7 3e 20 ca 08 0c 7e fe 03 ca 00 00 fe 30 d8 fe 5b ┆ ü ü > ü 0 Æ┆ 0x0e1900…0e1920 d0 d6 3a fe 07 d8 7e 23 12 13 05 c2 ee 0b af 12 c9 47 05 fa 91 0b 23 7e fe 20 ca 12 0c 04 78 fe ┆ : ü# G #ü x ┆ 0x0e1920…0e1940 0c d2 91 0b 11 67 0e 12 13 cd c8 09 af 12 c3 9f 0b 22 91 0e 01 04 00 21 8d 0e cd d2 0c 3a 90 0e ┆ g " ! : ┆ 0x0e1940…0e1960 47 3a 8f 0e cd ce 33 42 4b 2a 91 0e cd d2 0c 22 93 0e 11 01 00 0e 02 e5 cd d2 0c e3 4e eb 09 eb ┆G: 3BK* " N ┆ 0x0e1960…0e1980 e1 0e 01 cd d2 0c 2b 4e 23 79 b7 ca 83 0c fe 0d d2 7f 0c c5 0e 01 cd d2 0c c1 41 2b 4e 23 0b 0b ┆ +N#y A+N# ┆ 0x0e1980…0e19a0 c3 57 0c eb af c9 11 5c 00 cd d1 09 21 80 00 36 00 c0 fe 05 c4 66 0a 21 00 01 22 74 0e 01 08 00 ┆ W Ø ! 6 f ! "t ┆ 0x0e19a0…0e19c0 21 82 0e cd d2 0c 21 5d 00 11 82 0e 06 08 cd c8 09 03 2a 2c 03 22 26 0a cd d2 0c 2b 7e 87 4f 23 ┆! !Å *, "& +ü O#┆ 0x0e19c0…0e19e0 c4 d2 0c 22 7a 0e eb 2a 26 0a 7e 32 99 0e cd 31 0c c9 d5 e5 cd f0 0c d1 2a 74 0e 7c 3d cc 11 0d ┆ "z *& ü2 1 *t ø= ┆ 0x0e19e0…0e1a00 7e 12 23 13 0b 78 b1 c2 db 0c 22 74 0e eb d1 c9 09 22 76 0e eb cd 09 0d 2a 06 00 19 d2 03 0d 22 ┆ü # x "t "v * "┆ 0x0e1a00…0e1a20 (60, 0, 6) 2a 93 0e 23 23 e5 cd 3d 14 b8 c2 15 13 2b 7e b9 da 15 13 83 77 e1 cd 2c 0b c2 05 13 c1 e1 c9 2a ┆* ## = +ü w , *┆ 0x0e1a20…0e1a40 2a 0a 3a 2e 0a d5 c5 47 cd 70 15 cc b2 06 2a 2e 0a 68 c1 d1 c5 d5 1e 00 44 4d 2a 93 0e 23 23 e5 ┆* :. G p *. h DM* ## ┆ 0x0e1a40…0e1a60 cd 55 13 e1 ca 51 13 1c cd 2c 0b c2 3f 13 c3 04 09 7b d1 c1 c9 cd 3d 14 b8 c0 2b 7e b9 c9 c5 e5 ┆ U Q , ? æ = +ü ┆ 0x0e1a60…0e1a80 cd 42 14 4f 3a 2e 0a 91 4f 2b be da 6f 13 4e e1 3e 04 cd ee 13 ca 82 13 3e 13 cd 8b 14 3e 12 cd ┆ B O:. O+ o N > > > ┆ 0x0e1a80…0e1aa0 8b 14 3e 02 cd ee 13 ca 94 13 3e 11 cd 8b 14 3e 10 cd 8b 14 c1 e5 cd 47 14 83 77 e1 c9 22 52 2b ┆ > > > G w "R+┆ 0x0e1aa0…0e1ac0 e5 e5 cd 4d 14 04 e6 df 77 e3 cd be 13 f5 cd 4d 14 07 f1 77 e1 ca bc 13 7e f6 20 77 e1 c9 cd 20 ┆ M w M w ü w ┆ 0x0e1ac0…0e1ae0 14 c8 e5 d5 c5 4f 06 00 cd 4d 14 10 5d 54 09 3a d3 35 be ca e2 13 23 13 04 78 b9 c2 cf 13 c1 d1 ┆ O M ÅT : 5 # x ┆ 0x0e1ae0…0e1b00 e1 c9 1a cd 4c 1e 78 c1 d1 e1 37 c8 3f c9 e5 f5 cd 4d 14 06 f1 a6 e1 c9 7a fe 12 da 20 14 fe 14 ┆ L x 7 ? M z ┆ 0x0e1b00…0e1b20 da 29 14 cd 17 14 c8 e5 d5 5a 16 00 21 00 14 19 7e d1 e1 c9 01 08 03 3e 40 cd ee 13 c8 3e 0c c9 ┆ ) Z ! ü >@ > ┆ 0x0e1b20…0e1b40 3e 02 cd ee 13 c8 c3 2f 14 3e 04 cd ee 13 c8 e5 cd 47 14 e1 c9 e5 cd 42 14 83 77 e1 c9 cd 4d 14 ┆> / > G B w M ┆ 0x0e1b40…0e1b60 03 c9 cd 4d 14 02 c9 cd 4d 14 01 00 c9 e3 7e 23 e3 fe ff c2 5c 14 21 8d 0e c3 62 14 c5 cd 65 14 ┆ M M ü# Ø ! b e ┆ 0x0e1b60…0e1b80 09 c1 7e b7 c9 06 00 4f d6 10 d4 73 14 7e fe 12 d0 03 c9 c8 d5 5f 16 10 4a cd f8 13 cd 86 14 14 ┆ ü O s ü _ J ┆ 0x0e1b80…0e1ba0 1d c2 79 14 d1 c9 81 4f d0 04 c9 d5 c5 51 cd 65 14 7a cd 86 14 cd 2f 14 cd aa 14 3a 40 02 e5 21 ┆ y O Q e z / :@ !┆ 0x0e1ba0…0e1bc0 0f 34 be e1 cc 18 09 c1 d1 c9 e5 d5 c5 e5 83 16 00 d2 bb 14 d5 af 93 5f 19 d1 15 09 cd 03 15 14 ┆ 4 _ ┆ 0x0e1bc0…0e1be0 15 c2 cb 14 7b 72 23 3d c2 c5 14 e1 cd 53 0b eb 09 eb 78 82 3d c2 ed 14 7a 90 42 4b 15 5f e5 09 ┆ ær#= S x = z BK _ ┆ 0x0e1be0…0e1c00 cd 03 15 e1 23 cd 03 15 2b eb 29 09 eb 73 14 15 ca f7 14 72 23 73 2b 19 2b ca fe 14 72 2b 73 c1 ┆ # + ) s r#s+ + r+s ┆ 0x0e1c00…0e1c20 (60, 0, 7) 1b d5 cd 37 21 3d cd d2 1b e5 2a 2c 22 bd c2 16 1b 21 40 22 36 80 2a 93 0e be e1 3f d2 21 1b d1 ┆ 7!= *," !@"6 * ? ! ┆ 0x0e1c20…0e1c40 c9 f1 af c9 04 05 c8 cd ca 1b fe 29 c0 3e f7 cd d2 1b 13 c3 25 1b cd ca 1b b7 f8 cd df 20 79 cd ┆ ) > % y ┆ 0x0e1c40…0e1c60 d2 1b fe f9 d8 13 c9 cd 57 1b da da 1b cd b9 1b da e0 1b f2 47 1b c9 cd ca 1b fe 22 ca a1 1b fe ┆ W G " ┆ 0x0e1c60…0e1c80 23 37 c0 cd fd 1a d8 cd ca 1b fe 28 37 3f c0 3e f8 cd d2 1b 13 cd ca 1b cd 37 21 b7 c2 80 1b 3c ┆#7 (7? > 7! <┆ 0x0e1c80…0e1ca0 cd d2 1b cd ca 1b fe 2c 3e 00 c2 94 1b 13 cd ca 1b cd 37 21 cd d2 1b cd ca 1b fe 29 37 c0 13 b7 ┆ ,> 7! )7 ┆ 0x0e1ca0…0e1cc0 c9 3e ff cd d2 1b 13 1a fe ff c8 fe 22 c2 a3 1b 13 1a fe 22 ca a3 1b af c9 cd ca 1b b7 f8 fe 26 ┆ > " " &┆ 0x0e1cc0…0e1ce0 37 c0 3e fd cd d2 1b 13 af c9 1a fe 20 c0 13 c3 ca 1b 2c 24 25 c8 2d 77 23 c9 21 dd 34 c3 e9 1b ┆7 > ,$% -w# ! 4 ┆ 0x0e1ce0…0e1d00 21 df 34 c3 0a 1c 21 e1 34 e5 21 ac 35 cd 2a 1c e1 1a 3c ca 02 1c c3 0a 1c 21 e3 34 c3 0a 1c 21 ┆! 4 ! 4 ! 5 * < ! 4 !┆ 0x0e1d00…0e1d20 e5 34 1b 1a fe 20 ca 02 1c 13 cd d4 2b 3a 3a 22 93 2a 2b 22 65 85 6f eb c2 1d 1c 2b 1c e5 2a 33 ┆ 4 +::" *+"e o + *3┆ 0x0e1d20…0e1d40 22 7d 93 6f cd 35 2f e1 37 c9 d5 eb 2a 93 0e 7e 2a 2b 22 cd c3 17 22 2b 22 d1 c9 01 1a 16 fe 12 ┆"å o 5/ 7 * ü*+" "+" ┆ 0x0e1d40…0e1d60 ca 83 1c 01 50 16 fe 03 ca 83 1c fe 13 ca 8d 1c fe 08 ca 8d 1c fe 04 ca 9c 1c fe 01 ca ad 1c fe ┆ P ┆ 0x0e1d60…0e1d80 06 ca bc 1c fe 11 ca c5 1c fe 05 ca ed 1c fe 0a ca d8 1c fe 07 ca 59 1d fe 16 ca 81 1d cd 83 1e ┆ Y ┆ 0x0e1d80…0e1da0 c3 1e 1a cd f6 1f 2a 31 22 f9 eb c5 c9 7b ba ca 1e 1a 1c 2b e5 2a 1b 34 2b c3 a6 1c 1d ca 63 1a ┆ *1" æ + * 4+ c ┆ 0x0e1da0…0e1dc0 23 e5 2a 1b 34 23 cd 35 2f e1 c3 1e 1a cd f6 1f cd e4 05 cd 6d 04 01 0e 16 c3 86 1c cd f6 1f cd ┆# * 4# 5/ m ┆ 0x0e1dc0…0e1de0 7f 05 c3 b3 1c e5 2a 1b 34 e5 cd 58 2b cd 7a 32 e1 cd 35 2f e1 c3 1e 1a 2a 1b 34 e5 2a 37 22 01 ┆ * 4 X+ z2 5/ * 4 *7" ┆ 0x0e1de0…0e1e00 00 00 cd d8 2b e1 cd 35 2f 21 2f 22 34 cd f6 1f 3a 2f 22 3d ca 1e 1a 47 3a 2e 22 4f 3a 30 22 b8 ┆ + 5/!/"4 :/"= G:."O:0" ┆ 0x0e1e00…0e1e20 (60, 0, 8) 2a bb 42 95 47 ca e3 3e eb 21 70 02 7e b7 c2 e7 3e cd 3b 3e 05 c2 dc 3e c1 d1 e1 c9 e5 2a b1 42 ┆* B G > !p ü > ;> > * B┆ 0x0e1e20…0e1e40 0e 00 7e 36 20 96 b1 4f 23 05 c2 ed 3e e1 b7 ca 0b 3f eb cd 42 3d eb cd e7 3d 3a b1 02 cd 18 3e ┆ ü6 O# > ? B= =: >┆ 0x0e1e40…0e1e60 c1 d1 02 01 00 ff fe 01 02 08 ff 00 08 ff 07 00 ff fe 01 00 ff 04 09 08 ff fe 01 00 ff 02 0a ff ┆ ┆ 0x0e1e60…0e1e80 04 00 08 ff fe 02 14 00 ff fe 06 00 05 02 0a ff 04 fe 01 00 05 20 01 05 02 fe 01 0b 05 0c 01 05 ┆ ┆ 0x0e1e80…0e1ea0 02 fe 01 0d 0e ff 00 05 04 fe 01 0c 0c ff 01 05 04 fe 01 0e 0f ff 04 05 08 fe 01 13 05 10 01 05 ┆ ┆ 0x0e1ea0…0e1ec0 08 fe 02 0f 17 ff 05 05 08 00 05 10 fe 02 0f 17 ff 00 05 08 03 05 10 fe 01 00 04 01 0a ff 04 03 ┆ ┆ 0x0e1ec0…0e1ee0 05 02 fe 01 00 04 10 fe 02 00 04 04 fe 01 05 09 ff 00 04 04 fe 02 00 04 08 0a ff 04 fe 01 05 0a ┆ ┆ 0x0e1ee0…0e1f00 ff 00 04 08 fe 09 00 06 10 0a ff 04 fe 01 07 06 60 06 06 10 fe 01 00 06 80 01 06 40 fe 01 11 15 ┆ ` @ ┆ 0x0e1f00…0e1f20 ff 00 06 40 fe 01 10 14 ff 00 06 40 fe 01 0c 0d ff 01 06 40 fe 01 00 ff 01 00 06 10 03 06 40 fe ┆ @ @ @ @ ┆ 0x0e1f20…0e1f40 01 06 0b ff 02 06 10 fe 02 00 06 08 0a ff 04 fe 04 03 06 04 0a ff 04 fe 01 0a 12 ff 00 06 04 fe ┆ ┆ 0x0e1f40…0e1f60 01 0a 13 ff 00 06 04 fe 02 04 06 02 0a ff 04 fe 0c 08 10 ff 00 06 02 fe 0e 09 11 ff 00 06 02 fe ┆ ┆ 0x0e1f60…0e1f80 02 00 05 40 08 04 0c fe ff 3e ff cd 08 2e af 32 55 2b af 32 51 2b 3a 99 0e b7 21 eb 34 cc 42 26 ┆ @ > . 2U+ 2Q+: ! 4 B&┆ 0x0e1f80…0e1fa0 3a fb 15 fe 79 21 03 35 d4 42 26 2a 93 0e 7e b7 ca d7 24 23 23 06 00 04 78 32 54 2b e5 cd 9d 13 ┆: y! 5 B&* ü $## x2T+ ┆ 0x0e1fa0…0e1fc0 cd 4d 14 05 e6 08 c4 33 25 7e e6 04 c4 6e 25 7e e6 02 c4 2c 25 23 7e e6 10 c4 d6 25 7e e6 60 fe ┆ M 3%ü n%ü ,%#ü %ü ` ┆ 0x0e1fc0…0e1fe0 40 cc b3 25 7e e6 02 c4 e6 25 7e e6 04 c4 20 26 e1 cd 2c 0b c2 97 24 21 82 0e 7e e6 7f 77 3a 51 ┆@ %ü %ü & , $! ü w:Q┆ 0x0e1fe0…0e2000 2b b7 ca 04 25 7e f6 80 77 21 fb 34 cd 42 26 cd 7a 32 0e 0c cd 15 25 c2 69 24 b9 ca 6f 24 f5 cd ┆+ %ü w! 4 B& z2 % i$ o$ ┆ 0x0e2000…0e2020 (60, 0, 9) 78 0e c9 11 d7 34 c3 24 0d 7b 2f 5f 7a 2f 57 13 c9 d5 c5 0e 14 11 5c 00 cd eb 09 c1 d1 21 80 00 ┆x 4 $ æ/_z/W Ø ! ┆ 0x0e2020…0e2040 c8 11 d3 34 eb 3a 46 0a c6 41 32 aa 35 01 0d 01 cd c7 30 cd 9a 2b cd 1a 0b c3 00 00 3e 01 32 98 ┆ 4 :F A2 5 0 + > 2 ┆ 0x0e2040…0e2060 0e 11 5c 00 cd d6 09 11 d9 34 c2 24 0d cd 66 0a 21 5d 00 11 82 0e 06 08 cd c8 09 2a 41 02 2d 3a ┆ Ø 4 $ f !Å *A -:┆ 0x0e2060…0e2080 40 02 d6 07 67 22 8f 0e 45 0e 00 cd ce 33 2a 2c 03 22 26 0a 36 00 23 22 91 0e e5 42 4b cd f0 0c ┆@ g" E 3*, "& 6 #" BK ┆ 0x0e2080…0e20a0 e1 36 20 23 0b 78 b1 c2 81 0d 22 93 0e af 77 23 77 23 77 23 22 76 0e c9 11 5c 00 cd 28 0e 42 41 ┆ 6 # x " w#w#w#"v Ø ( BA┆ 0x0e20a0…0e20c0 4b 0e 13 cd eb 09 eb 11 6c 00 06 10 cd c8 09 11 5c 00 cd 28 0e 20 20 20 0e 17 cd eb 09 af 32 68 ┆K l Ø ( 2h┆ 0x0e20c0…0e20e0 00 cd d6 09 11 d9 34 c2 24 0d 21 80 00 22 74 0e 21 82 0e 01 08 00 cd 3a 0e 2a 26 0a 7e 87 4f 03 ┆ 4 $ ! "t ! : *& ü O ┆ 0x0e20e0…0e2100 cd 3a 0e 21 8d 0e 0e 04 cd 3a 0e 2a 8f 0e 7d 44 cd ce 33 42 4b 2a 91 0e cd 3a 0e 2a 93 0e 0e 02 ┆ : ! : * åD 3BK* : * ┆ 0x0e2100…0e2120 cd 3a 0e cd 53 0b 78 b1 c2 00 0e 03 cd 3a 0e 2a 74 0e 36 1a 2c c2 12 0e cd 50 0e 11 5c 00 0e 10 ┆ : S x : *t 6 , P Ø ┆ 0x0e2120…0e2140 cd eb 09 af 32 68 00 c9 e3 d5 c5 eb 01 09 00 09 eb 06 03 cd c8 09 c1 d1 e3 c9 eb 2a 74 0e 1a 77 ┆ 2h *t w┆ 0x0e2140…0e2160 13 2c cc 50 0e 0b 78 b1 c2 3e 0e 22 74 0e eb c9 d5 c5 11 5c 00 0e 15 cd eb 09 c1 d1 21 80 00 c8 ┆ , P x > "t Ø ! ┆ 0x0e2160…0e2180 11 db 34 c3 24 0d 0b 86 2b cd dc 27 01 b1 2a cd 7f 26 c1 00 31 26 21 21 2c 22 9e 2a cd 4f 23 7c ┆ 4 $ + ' * & 1&!!," * O#ø┆ 0x0e2180…0e21a0 00 00 69 25 7c 07 d2 60 2a 7d 2f 6f 7c 00 00 23 3e 80 32 11 2c 11 94 2a 00 00 2a 2a 0a 7e e6 7c ┆ i%ø `*å/oø #> 2 , * ** ü ø┆ 0x0e21a0…0e21c0 c2 af 0e cd 1f 13 1e ff cd 5e 13 cc 63 10 af c4 75 0f 2a 2e 0a 2c 1e ff cd fc 12 c9 2a 2a 0a e5 ┆ ^ c u *. , ** ┆ 0x0e21c0…0e21e0 2a 2e 0a e5 3a 8f 0e 6f 2d 22 2e 0a cd 5d 2d 22 2a 0a cd 9a 0e e1 22 2e 0a e1 22 2a 0a 7e e6 7c ┆*. : o-". Å-"* ". "* ü ø┆ 0x0e21e0…0e2200 cc dd 0f 2a 2e 0a 1e 01 cd fc 12 c9 e5 c5 cd dd 0f 1e ff cd 21 0f c1 e1 c9 01 04 00 cd de 08 1e ┆ *. ! ┆ 0x0e2200…0e2220 (60, 0, 10) d1 e1 c9 e5 c5 d5 7a b7 42 4b f4 de 08 cd 3f 15 7a f5 eb 2a 76 0e 23 cd 4f 12 f1 b7 fa 2f 15 d1 ┆ z BK ? z *v # O / ┆ 0x0e2220…0e2240 d5 2b eb 19 22 76 0e eb cd 67 12 d1 c1 e1 c9 e1 e5 19 eb cd 5c 12 1b eb 22 76 0e d1 c1 e1 c9 d5 ┆ + "v g Ø "v ┆ 0x0e2240…0e2260 c5 eb 2a 93 0e cd 4f 12 eb c1 da 55 15 e3 eb 19 22 93 0e e1 c9 d1 c9 2a 2a 0a 7e e6 7c c2 68 15 ┆ * O U " ** ü ø h ┆ 0x0e2260…0e2280 cd 1f 13 cd 4d 14 08 c9 af c9 3a 2e 0a 2a 2a 0a b7 ca 7a 15 2b 7e 23 e6 7c c9 f6 ff c9 3a 2e 0a ┆ M :. ** z +ü# ø :. ┆ 0x0e2280…0e22a0 3c e5 2a 8f 0e bd 2a 2a 0a 23 7e e1 ca 7a 15 e6 7c c9 3a 99 0e 2a 76 0e 23 23 22 26 0a 77 2b eb ┆< * ** #ü z ø : *v ##"& w+ ┆ 0x0e22a0…0e22c0 c6 03 87 4f 06 00 cd de 08 af 12 4f 47 2a 93 0e 23 23 e5 c5 cd 2f 14 47 cd ea 15 23 23 7e b7 ca ┆ O OG* ## / G ##ü ┆ 0x0e22c0…0e22e0 cb 15 6f 26 00 29 19 71 23 70 78 c1 e1 80 d2 d3 15 3e ff 47 0c cd 2c 0b c2 b2 15 78 32 fb 15 1a ┆ o& ) q#px > G , x2 ┆ 0x0e22e0…0e2300 b7 c0 21 8d 0e 7e e6 fe 77 c9 cd 4d 14 06 e6 10 c8 7e e6 40 c0 7e 12 c9 8d 35 c8 d8 21 00 00 39 ┆ ! ü w M ü @ ü 5 ! 9┆ 0x0e2300…0e2320 22 31 22 3a 40 0a 32 39 22 3e 22 cd 93 09 cd 7c 16 cd 1f 13 22 23 22 32 2c 22 cd 5d 16 cd a2 16 ┆"1":@ 29">" ø "#"2," Å ┆ 0x0e2320…0e2340 cd d1 16 cd e4 16 cd 2e 19 da 3f 16 cd 94 16 cd 05 17 cd 52 1d cd c8 21 cd 81 21 cd 13 1a b4 e5 ┆ . ? R ! ! ┆ 0x0e2340…0e2360 c4 bc 1e e1 cd f6 1f cd 6f 19 7e fe ff c2 20 16 3a 40 02 32 0f 34 3a 39 22 cd 93 09 c9 cd 4d 14 ┆ o ü :@ 2 4:9" M ┆ 0x0e2360…0e2380 05 e6 04 c2 6c 16 01 09 00 09 36 f6 21 ff 00 22 2e 22 21 19 35 22 1f 22 21 42 23 c9 3a 2f 0a 47 ┆ l 6 ! "."! 5" "!B# :/ G┆ 0x0e2380…0e23a0 d6 02 d2 86 16 af 32 74 2d 2f 80 c6 08 32 0f 34 cd f3 2c c9 e5 3a 21 22 2a 1b 34 84 21 40 02 be ┆ 2t-/ 2 4 , :!"* 4 !@ ┆ 0x0e23a0…0e23c0 e1 d8 c5 e5 21 2e 22 34 3a 2f 22 32 30 22 3a 0f 34 67 3c 47 3a 40 02 94 cd 42 32 2e 00 cd 35 2f ┆ !."4:/"20": 4g<G:@ B2. 5/┆ 0x0e23c0…0e23e0 3a 41 02 47 0e 5f 05 cd 9b 2f 05 c2 c7 16 e1 c1 c9 e5 2a 1f 22 22 1d 22 23 23 22 37 22 23 23 22 ┆:A G _ / * "" "##"7"##"┆ 0x0e23e0…0e2400 1f 22 e1 c9 7e 32 21 22 23 7e 32 22 22 23 7e eb cd f8 16 eb 23 46 23 c9 32 3f 22 2a 23 22 cd 51 ┆ " ü2!"#ü2""#ü #F# 2?"*#" Q┆ 0x0e2400…0e2420 (60, 0, 11) c2 04 1d 0d c5 cd 6c 16 cd a2 16 cd d1 16 cd e4 16 cd 2e 19 da 3b 1d cd 94 16 cd 05 17 cd 52 1d ┆ l . ; R ┆ 0x0e2420…0e2440 e3 25 ca 44 1d 3a 2e 22 bd e3 c2 36 1d cd c8 21 cd 81 21 c3 3b 1d f6 ff cd c9 21 cd f6 1f cd 6f ┆ % D :." 6 ! ! ; ! o┆ 0x0e2440…0e2460 19 c3 0b 1d e1 22 4d 1d 2a 31 22 f9 21 00 00 c3 35 16 e5 21 2f 22 34 e1 c9 cd 72 1d cd 65 1d cd ┆ "M *1" ! 5 !/"4 r e ┆ 0x0e2460…0e2480 97 21 c3 1e 1a e5 d5 16 00 1d 19 47 cd 32 05 d1 e1 c9 e5 d5 11 03 36 2a 22 22 26 00 19 7e d1 e1 ┆ ! G 2 6*""& ü ┆ 0x0e2480…0e24a0 c9 cd 72 1d e5 d5 16 00 1d 47 cd 5f 05 d1 e1 cd 97 21 c3 1e 1a 3a 22 22 cd 35 17 c5 1d 08 1e 08 ┆ r G _ ! :"" 5 ┆ 0x0e24a0…0e24c0 1e c5 1d c5 1d 10 1e 08 1e eb 1d 19 1e 61 1e 10 1e ae 1e 08 1e 08 1e 08 1e 10 1e 12 1e f2 1d f2 ┆ a ┆ 0x0e24c0…0e24e0 1d b5 1e 08 1e e5 21 de 35 cd e0 1d cd d7 1d 3a 41 22 c4 83 1e e1 c9 7e b7 f8 23 b9 c2 d7 1d c9 ┆ ! 5 :A" ü # ┆ 0x0e24e0…0e2500 79 32 41 22 fe 61 d8 e6 5f 4f c9 e5 21 e1 35 c3 c9 1d 79 d6 30 fe 0a 3f d0 cd e0 1d d6 41 fe 1a ┆y2A" a _O ! 5 y 0 ? A ┆ 0x0e2500…0e2520 3f d0 3a 41 22 c3 83 1e 79 d6 30 fe 0a d2 82 1e b7 c9 e5 21 ed 35 c3 c9 1d cd 3d 1e e5 21 d5 35 ┆? :A" y 0 ! 5 = ! 5┆ 0x0e2520…0e2540 cd d7 1d e1 c2 82 1e 79 cd 4c 1e c8 cd 43 1e c0 d5 eb 2a 2d 0a 26 00 19 36 00 eb d1 c9 79 d6 5f ┆ y L C *- & 6 y _┆ 0x0e2540…0e2560 c0 4f c9 e5 2a b3 34 cd 0f 32 7e e1 e5 21 d9 35 c5 4f cd d7 1d c1 e1 c9 e5 21 c0 35 cd d7 1d e1 ┆ O * 4 2ü ! 5 O ! 5 ┆ 0x0e2560…0e2580 c9 cd 3d 1e cd 43 1e c4 58 1e c2 82 1e 3a d3 35 91 b7 c0 79 be c8 e5 2a 23 22 cd be 13 e1 da 82 ┆ = C X : 5 y *#" ┆ 0x0e2580…0e25a0 1e c8 79 e5 d5 c5 2a 1b 34 cd 9c 1e e5 21 e7 34 cd d4 2b e1 cd 99 2e c1 d1 e1 37 c9 e5 21 a9 35 ┆ y * 4 ! 4 + . 7 ! 5┆ 0x0e25a0…0e25c0 36 20 be d2 aa 1e 36 5e c6 40 23 77 e1 c9 e5 21 e5 35 c3 c9 1d e5 21 ff 35 c3 c9 1d 3a 22 22 cd ┆6 6^ @#w ! 5 ! 5 :"" ┆ 0x0e25c0…0e25e0 35 17 ec 1e 41 1f d3 1f 45 20 4a 20 63 20 95 20 26 20 f5 1f f5 1f f5 1f f2 1e ad 20 f2 20 a1 20 ┆5 A E J c & ┆ 0x0e25e0…0e2600 b6 20 f8 1e 1f 21 1f 21 1b 1f 67 1f 21 de 35 c3 fb 1e 21 e9 35 c3 fb 1e 21 ed 35 d5 c5 cd 37 1f ┆ ! ! g ! 5 ! 5 ! 5 7 ┆ 0x0e2600…0e2620 (60, 0, 12) 00 2d f1 c9 21 fd 34 0e 00 cd d6 2b 0e 04 cd 15 25 c2 04 25 c9 fe 60 da 1c 25 d6 20 e6 3f b9 c8 ┆ - ! 4 + % % ` % ? ┆ 0x0e2620…0e2640 fe 20 c8 fe 03 c8 fe 02 c8 fe 01 c9 2b 7e e6 fe 77 23 c9 e5 d5 c5 2a 52 2b cd 4d 14 0f 21 01 35 ┆ +ü w# *R+ M ! 5┆ 0x0e2640…0e2660 cc 42 26 2a 52 2b cd 4d 14 17 47 23 c2 59 25 21 f9 34 cd 42 26 c1 d1 e1 c9 cd 09 11 ca 6a 25 fe ┆ B&*R+ M G# Y%! 4 B& j% ┆ 0x0e2660…0e2680 f6 ca 4f 25 cd f7 10 c2 59 25 c1 d1 e1 c9 e5 d5 c5 2a 52 2b cd 4d 14 0e fe f6 c2 86 25 21 f7 34 ┆ O% Y% *R+ M %! 4┆ 0x0e2680…0e26a0 cd 42 26 c3 ab 25 3c 47 2a f5 34 cd 0f 32 eb 3a 54 2b cd c3 17 78 32 54 2b 3d cd 68 0b cd 4d 14 ┆ B& %<G* 4 2 :T+ x2T+= h M ┆ 0x0e26a0…0e26c0 06 e6 60 fe 40 21 f3 34 c4 42 26 c1 78 32 54 2b d1 e1 c9 e5 d5 c5 2a 52 2b cd 4d 14 15 e5 1e 08 ┆ ` @! 4 B& x2T+ *R+ M ┆ 0x0e26c0…0e26e0 cd 24 21 1e 03 cd 24 21 e1 7e fe 20 21 f1 34 cc 42 26 c1 d1 e1 c9 e5 2a 52 2b cd 4d 14 0b 21 01 ┆ $! $! ü ! 4 B& *R+ M ! ┆ 0x0e26e0…0e2700 35 cc 42 26 e1 c9 e5 d5 c5 3e 10 cd 09 26 1a cd 4c 1e 4e c4 58 1e c2 ff 25 23 13 05 c2 ee 25 21 ┆5 B& > & L N X %# %!┆ 0x0e2700…0e2720 ef 34 c4 42 26 c1 d1 e1 c9 32 13 26 2a 52 2b e5 cd 4d 14 00 eb e1 cd 4d 14 01 47 6f 26 00 19 c9 ┆ 4 B& 2 &*R+ M M Go& ┆ 0x0e2720…0e2740 e5 d5 c5 3e 12 cd 09 26 eb 1a b7 ca 38 26 be c2 38 26 23 13 05 c2 29 26 21 ed 34 dc 42 26 c1 d1 ┆ > & 8& 8&# )&! 4 B& ┆ 0x0e2740…0e2760 e1 c9 cd 3d 33 c0 e5 d5 c5 cd 24 32 e5 21 51 2b 7e 36 80 b7 c2 6e 26 0e 0c cd e7 26 21 82 0e 01 ┆ =3 $2 !Q+ü6 n& &! ┆ 0x0e2760…0e2780 20 08 cd a1 26 2a e9 34 cd 0f 32 cd 9e 26 cd 85 26 e1 7e fe 20 54 5d 13 3a 54 2b cc c3 17 cd 9e ┆ &* 4 2 & & ü TÅ :T+ ┆ 0x0e2780…0e27a0 26 c1 d1 e1 c9 3a 55 2b b7 c0 2a 1b 34 3a 40 02 d6 06 bc d0 cd 7a 32 cd 30 2e c9 cd 24 32 01 00 ┆& :U+ * 4:@ z2 0. $2 ┆ 0x0e27a0…0e27c0 00 cd 3d 33 c0 7e fe 80 ca d6 26 fe 01 ca db 26 fe 02 c2 c0 26 23 c5 46 05 0e 20 cd 28 27 79 c1 ┆ =3 ü & & &# F ('y ┆ 0x0e27c0…0e27e0 b9 c8 c5 4f cd 40 33 cc e7 26 c1 23 78 b7 ca a5 26 05 c2 a5 26 c9 e1 23 c3 a1 26 23 7e 23 e5 66 ┆ O @3 & #x & & # &#ü# f┆ 0x0e27e0…0e2800 6f cd 0f 32 c3 a1 26 79 fe 0c c2 fe 26 3a 55 2b b7 c2 1c 27 cd 30 2e 21 0f 00 cd 99 2e c9 cd 07 ┆o 2 &y &:U+ ' 0.! . ┆ 0x0e2800…0e2820 (60, 0, 13) 01 cd 6a 15 ca 34 0f cd 7d 15 c2 17 0f cd ce 03 cd 21 0f cd 3c 04 c9 21 2c 0a cd 19 10 cd 85 11 ┆ j 4 å ! < !, ┆ 0x0e2820…0e2840 c9 2a 2e 0a cd 34 13 cd 5e 13 ca 63 10 af 93 5f cd 35 14 c9 cd 79 0f cd 1f 13 cd 5e 13 c9 cd 1f ┆ *. 4 ^ c _ 5 y ^ ┆ 0x0e2840…0e2860 13 cd 63 15 c2 52 0f eb 21 99 0e 34 7e 12 cd c0 12 c9 36 00 57 1e ff cd 83 12 c9 f5 cd 1f 13 cd ┆ c R ! 4ü 6 W ┆ 0x0e2860…0e2880 63 15 c4 52 0f f1 57 1e 01 c4 83 12 72 c9 cd 1f 13 cd 63 10 c9 cd 6a 15 c0 cd 7d 15 c0 e5 d5 c5 ┆c R W r c j å ┆ 0x0e2880…0e28a0 cd a2 0f 79 cd 65 10 cd 1f 13 cd 5e 13 14 15 ca 9e 0f cd 63 15 c2 9e 0f 1e 01 cd 83 12 72 c1 d1 ┆ y e ^ c r ┆ 0x0e28a0…0e28c0 e1 c9 cd 1f 13 4f 06 00 cd 20 14 ca af 0f 04 cd 29 14 ca b6 0f 04 2a 2e 0a 2c cd 34 13 78 b7 c8 ┆ O ) *. , 4 x ┆ 0x0e28c0…0e28e0 c5 cd 2f 14 5f 16 00 13 eb 29 05 c2 c9 0f eb cd 53 0b 7b 91 4f 7a 98 47 d4 de 08 c1 c9 cd ab 06 ┆ / _ ) S æ Oz G ┆ 0x0e28e0…0e2900 3a 2e 0a 90 c8 4f 2a 76 0e eb 2a 2e 0a 68 cd 34 13 cd 19 10 e5 cd 2c 0b eb cd d2 11 e1 e5 cd 47 ┆:. O*v *. h 4 , G┆ 0x0e2900…0e2920 14 79 96 5f e1 cd 5e 13 cd 2c 0b 59 cd 35 14 af 93 5f cd 5e 13 ca 04 09 c9 e5 d5 c5 e5 2a 93 0e ┆ y _ ^ , Y 5 _ ^ * ┆ 0x0e2920…0e2940 7e e1 fe f5 ca 0a 09 cd 53 0b c5 c5 e3 29 e3 c1 cd de 08 eb 2a 76 0e eb 13 d5 e5 cd 5c 12 e1 1e ┆ü S ) *v Ø ┆ 0x0e2940…0e2960 01 cd 05 12 e1 e5 cd 3d 14 3a 2f 0a 77 e1 c1 54 5d 1b cd 5c 12 eb 22 76 0e 36 00 2a 93 0e 34 c1 ┆ = :/ w TÅ Ø "v 6 * 4 ┆ 0x0e2960…0e2980 d1 e1 c9 3e f6 e5 c5 e5 4f 1e ff cd 23 11 cd a2 10 cd 05 12 2a 93 0e 35 e1 cd 2f 14 5f d5 5d 54 ┆ > O # * 5 / _ ÅT┆ 0x0e2980…0e29a0 cd 2c 0b 44 4d 2a 76 0e 7d 91 6f 7c 98 67 23 0a 12 03 13 2b 7c b5 c2 8f 10 1b eb 22 76 0e d1 c1 ┆ , DM*v å oø g# +ø "v ┆ 0x0e29a0…0e29c0 e1 c9 b7 e5 d5 57 2a 93 0e 23 23 3c f5 f1 f5 dc bf 10 c4 c9 10 cd 2c 0b c2 ad 10 f1 d1 e1 c9 e5 ┆ W* ##< , ┆ 0x0e29c0…0e29e0 cd 3d 14 3a 44 0a be e1 c9 e5 cd 4d 14 0e cd ea 10 e1 e5 cd 4d 14 17 47 23 cd 09 11 ca e8 10 cd ┆ = :D M M G# ┆ 0x0e29e0…0e2a00 ea 10 cd f7 10 c2 d9 10 e1 c9 fe f6 c8 ba d8 ca f5 10 83 77 c9 71 c9 cd 05 11 c8 fe f8 c0 cd 05 ┆ w q ┆ 0x0e2a00…0e2a20 (60, 0, 14) 14 22 25 22 c9 3a 22 22 cd 35 17 43 17 b8 17 96 17 43 17 43 17 78 17 85 17 48 17 e9 17 e9 17 e9 ┆ "%" :"" 5 C C C x H ┆ 0x0e2a20…0e2a40 17 4d 17 9a 17 9e 17 7e 17 34 18 52 17 18 18 1d 18 57 17 b8 17 e3 d5 5f 16 00 19 19 5e 23 56 eb ┆ M ü 4 R W _ ^#V ┆ 0x0e2a40…0e2a60 d1 e3 c9 cd 5c 17 de 35 cd 5c 17 e1 35 cd 5c 17 e5 35 cd 5c 17 ed 35 cd 5c 17 ff 35 e3 7e 23 66 ┆ Ø 5 Ø 5 Ø 5 Ø 5 Ø 5 ü#f┆ 0x0e2a60…0e2a80 6f c5 cd 37 1f 1a a0 47 af 91 2b 81 23 b8 c2 6b 17 7e c1 e1 11 28 22 12 3e 01 32 2b 22 c9 e5 21 ┆o 7 G + # k ü (" > 2+" !┆ 0x0e2a80…0e2aa0 8e 0e c3 89 17 e5 21 8e 0e 1a b7 c2 95 17 34 7e 12 c2 95 17 35 e1 1a c3 bc 17 1a c3 bb 17 1a fe ┆ ! 4ü 5 ┆ 0x0e2aa0…0e2ac0 f6 c2 9a 17 3e 03 32 2b 22 11 28 22 e5 62 6b 36 3f 23 3d c2 af 17 e1 c9 3a 2c 22 3c 11 28 22 cd ┆ > 2+" (" bk6?#= :,"< (" ┆ 0x0e2ac0…0e2ae0 c3 17 c9 f5 3e 03 32 2b 22 f1 e5 d5 c5 2a 2b 22 26 00 eb 19 0e ff 0c d6 0a d2 d6 17 c6 3a 2b 77 ┆ > 2+" *+"& :+w┆ 0x0e2ae0…0e2b00 79 1d c2 d4 17 c1 d1 e1 c9 e5 d5 2a 23 22 cd 47 14 32 2b 22 32 2d 0a f5 23 7e 23 66 6f 22 2e 0a ┆y *#" G 2+"2- #ü#fo". ┆ 0x0e2b00…0e2b20 cd 5d 2d 22 2a 0a f1 47 7e f6 02 77 23 05 c2 08 18 21 3d 22 34 d1 e1 c9 3e 08 c3 1f 18 3e 03 32 ┆ Å-"* Gü w# !="4 > > 2┆ 0x0e2b20…0e2b40 2b 22 d5 c5 4f 1a d6 20 c2 2c 18 12 13 0d c2 25 18 c1 d1 c9 e5 eb c5 3a 41 02 d6 06 4f 46 23 11 ┆+" O , % :A OF# ┆ 0x0e2b40…0e2b60 b1 5d 3a 3c 22 b7 ca 4c 18 11 6b 5b eb cd 24 32 eb 3a 2c 22 3c cd c3 17 11 42 22 d5 79 32 2b 22 ┆ Å:<" L kÆ $2 :,"< B" y2+"┆ 0x0e2b60…0e2b80 04 05 c4 79 18 04 05 c2 62 18 3e 20 12 13 0d c2 6c 18 3e ff 12 d1 c1 e1 c9 3a 3c 22 b7 c2 b2 18 ┆ y b > l > :<" ┆ 0x0e2b80…0e2ba0 7e 23 05 fe fe ca 0d 19 fe f6 d2 14 19 e5 6f 2c 3e 23 12 13 0d cd 9a 18 e1 c9 e5 f5 7d 2e ff 2c ┆ü# o,># å. ,┆ 0x0e2ba0…0e2bc0 d6 0a d2 9f 18 c6 3a 2c 2d c4 9a 18 12 13 0d f1 e1 c9 7e 23 05 fe ff ca f4 18 fe f6 ca 14 19 fe ┆ :,- ü# ┆ 0x0e2bc0…0e2be0 fd c2 c9 18 3e 26 c3 21 19 cd 8d 18 7e fe f8 c0 23 05 cd 14 19 cd ea 18 7e b7 ca e5 18 3e 2c cd ┆ >& ! ü # ü >, ┆ 0x0e2be0…0e2c00 21 19 cd ea 18 3e 29 c3 21 19 7e 23 05 e5 6f cd 9a 18 e1 c9 cd fc 18 78 b7 c4 0d 19 3e 22 12 13 ┆! >) ! ü# o x >" ┆ 0x0e2c00…0e2c20 (60, 0, 15) 1a 1e 00 eb 09 eb be 23 c2 03 1f 2a 25 22 7e 32 27 22 78 2f a6 83 91 77 c1 d1 c9 2a 25 22 4e 21 ┆ # *%"ü2'"x/ w *%"N!┆ 0x0e2c20…0e2c40 ff 35 1a 96 32 3c 22 cd fb 1e b9 c8 3e 17 cd f8 16 06 00 cd be 20 c9 0e 80 79 07 4f a0 ca 39 1f ┆ 5 2<" > y O 9 ┆ 0x0e2c40…0e2c60 c9 cd bc 1f 3d 21 2c 22 be c8 77 f5 cd 68 0b f1 d4 2c 0b eb 2a 23 22 cd d2 11 3a 2c 22 cd 68 0b ┆ =!," w h , *#" :," h ┆ 0x0e2c60…0e2c80 22 23 22 cd 6d 04 c9 cd bc 1f 3d 21 2c 22 be c8 cd 68 0b 01 1e 04 cd de 08 cd 19 10 2a 23 22 cd ┆"#" m =!," h *#" ┆ 0x0e2c80…0e2ca0 63 15 f5 2a 93 0e 7e 3d f5 cd 68 0b e5 cd 47 14 4e 23 eb 2a 23 22 cd 47 14 91 4f 23 06 02 cd c8 ┆c * ü= h G N# *#" G O# ┆ 0x0e2ca0…0e2cc0 09 e1 59 79 b7 c4 5e 13 cd 6e 0f 2a 23 22 eb f1 3d cd 68 0b cd d2 11 f1 cd 5b 0f c9 2a 93 0e 4e ┆ Yy ^ n *#" = h Æ * N┆ 0x0e2cc0…0e2ce0 d5 cd 37 21 d1 b7 c2 ca 1f 3c b9 da cf 1f 79 cd 66 21 c9 21 99 0e cd bf 1f 2a 25 22 be 57 c8 3a ┆ 7! < y f! ! *%" W :┆ 0x0e2ce0…0e2d00 3f 22 4e d5 51 1e ff 47 cd 97 12 d1 1e 01 78 cd 97 12 72 f6 ff c9 3a 3d 22 b7 c8 e5 c5 2a 2a 0a ┆?"N Q G x r :=" ** ┆ 0x0e2d00…0e2d20 3a 2b 22 47 7e e6 fd 77 23 05 c2 04 20 2a 35 22 cd 35 2f 3e 00 32 28 0a 3c 32 2d 0a 21 3d 22 35 ┆:+"Gü w# *5" 5/> 2( <2- !="5┆ 0x0e2d20…0e2d40 c2 04 09 c1 e1 c9 2a 23 22 cd 17 14 4f e5 21 e1 35 cd fb 1e e1 cd 17 14 91 5f c8 d4 7b 20 3e 14 ┆ *#" O ! 5 _ æ > ┆ 0x0e2d40…0e2d60 51 cd d0 20 c9 3e 12 c3 4c 20 3e 10 21 de 35 cd 64 20 c8 d4 7a 20 42 51 78 cd d0 20 78 cd d0 20 ┆Q > L > ! 5 d z BQx x ┆ 0x0e2d60…0e2d80 c9 aa 14 c9 f5 e5 2a 23 22 cd f9 13 4f e3 cd fb 1e e1 f1 57 cd f9 13 91 5f c9 87 e5 d5 c5 4f 06 ┆ *#" O W _ O ┆ 0x0e2d80…0e2da0 00 d2 85 20 04 2a 25 22 56 3a 27 22 77 cd de 08 72 c1 d1 e1 c9 21 8e 0e cd d6 1f 3e 0f c4 e3 1f ┆ *%"V:'"w r ! > ┆ 0x0e2da0…0e2dc0 c9 21 8e 0e cd d6 1f 3e 0b c4 e3 1f c9 cd 37 21 3d 2a 25 22 77 c9 2a 25 22 23 cd 8f 1a c9 2a 25 ┆ ! > 7!=*%"w *%"# *%┆ 0x0e2dc0…0e2de0 22 78 96 c8 d5 56 5f cd cd 20 d1 70 c9 3a 3f 22 e5 c5 2a 23 22 cd 65 14 7a cd aa 14 c1 e1 c9 0e ┆"x V_ p :?" *#" e z ┆ 0x0e2de0…0e2e00 fe e5 21 25 19 34 35 fa f0 20 0d be 23 c2 e5 20 e1 c9 cd 0c 21 c0 cd bc 1f 3d 2a 25 22 77 3a 2c ┆ !% 45 # ! =*%"w:,┆ 0x0e2e00…0e2e20 (60, 1, 1) 27 79 fe 0d c0 0e 0a 3a 55 2b b7 ca 80 2f d5 c5 79 e6 7f 5f 0e 05 cd eb 09 c1 d1 c9 cd 0e 27 c5 ┆'y :U+ / y _ ' ┆ 0x0e2e20…0e2e40 01 20 0f cd 28 27 c1 c9 cd 0e 27 05 c2 28 27 c9 3e ff 32 55 2b cd 6f 27 cd 76 27 cd 8d 27 cd ef ┆ (' ' (' > 2U+ o' v' ' ┆ 0x0e2e40…0e2e60 28 cd ba 2a c9 3e ff cd 08 2e cd 3d 33 c4 7a 32 b7 c9 e5 0e 0c cd 0e 27 21 82 0e 01 20 08 cd a1 ┆( * > . =3 z2 '! ┆ 0x0e2e60…0e2e80 26 21 05 35 cd 9b 26 21 13 35 cd 9b 26 e1 c9 21 07 35 af c3 d0 27 0e 04 cd a4 27 c8 21 09 35 3e ┆&! 5 &! 5 & ! 5 ' ' ! 5>┆ 0x0e2e80…0e2ea0 12 cd d0 27 c0 21 0b 35 3e 13 c3 c4 27 0e 02 cd a4 27 c8 21 0d 35 3e 10 cd d0 27 c0 21 0f 35 3e ┆ ' ! 5> ' ' ! 5> ' ! 5>┆ 0x0e2ea0…0e2ec0 11 c3 c4 27 2a 93 0e 7e b7 c8 23 23 79 32 c1 27 cd bb 27 c0 cd 2c 0b c2 b0 27 c9 e5 cd 4d 14 06 ┆ '* ü ##y2 ' ' , ' M ┆ 0x0e2ec0…0e2ee0 e6 00 e1 c9 32 57 2b cd 24 32 cd 40 2b c3 dd 27 32 57 2b cd 45 27 c0 cd 52 27 cd 24 32 cd 9e 26 ┆ 2W+ $2 @+ '2W+ E' R' $2 &┆ 0x0e2ee0…0e2f00 2a 8f 0e 54 45 1e 00 2a 91 0e cd 4a 27 c0 cd a0 28 cd ba 28 cd 08 28 cd ba 28 cd ad 28 0e 0a cd ┆* TE * J' ( ( ( ( ( ┆ 0x0e2f00…0e2f20 0e 27 1c 15 c2 ea 27 c9 e5 d5 c5 7e e6 7e cc 1a 28 23 05 c2 0b 28 c1 d1 e1 c9 d5 e5 c5 cd 42 28 ┆ ' ' ü ü (# ( B(┆ 0x0e2f20…0e2f40 3a 57 2b b7 ca 55 28 32 33 28 cd bb 27 ca 92 28 cd 4d 14 00 d1 7a 90 d1 f5 cd c8 09 eb c1 04 2b ┆:W+ U(23( ' ( M z +┆ 0x0e2f40…0e2f60 d1 c9 3a 8f 0e 90 6f 63 cd 34 13 3c 4f e5 cd 4d 14 01 47 e1 c9 11 8f 28 79 cd c3 17 0e 03 1a fe ┆ : oc 4 <O M G (y ┆ 0x0e2f60…0e2f80 30 c2 69 28 13 0d c2 5e 28 eb d1 78 b9 ca 35 28 da 7b 28 e3 23 e3 15 05 c3 6b 28 3d 3e 2a ca 8b ┆0 i( ^( x 5( æ( # k(=>* ┆ 0x0e2f80…0e2fa0 28 7e d6 31 0f 0f 0f c6 11 23 86 77 c3 35 28 70 72 65 d1 e1 36 20 23 15 05 c2 94 28 42 c3 3e 28 ┆(ü 1 # w 5(pre 6 # (B >(┆ 0x0e2fa0…0e2fc0 e5 d5 c5 11 42 22 cd c8 09 c1 d1 e1 c9 d5 c5 eb 21 42 22 cd c8 09 eb c1 d1 c9 e5 d5 c5 1e 00 7e ┆ B" !B" ü┆ 0x0e2fc0…0e2fe0 0e 20 e6 7e 1c b9 ca e1 28 1d ca d3 28 cd 0e 27 c3 c9 28 7e 4e e6 7e c2 de 28 3a 02 36 4f cd 0e ┆ ü ( ( ' (üN ü (: 6O ┆ 0x0e2fe0…0e3000 27 23 05 c2 bf 28 0e 0d cd 0e 27 c1 d1 e1 c9 2a 93 0e 7e b7 c8 23 23 06 00 cd 4a 27 c0 78 d6 30 ┆'# ( ' * ü ## J' x 0┆ 0x0e3000…0e3020 (60, 1, 2) 21 5b 02 cd 47 2f 3a b0 02 cd 78 2f e1 cd 35 2f cd cb 2f f1 c1 d1 e1 c9 eb cd 67 02 c3 06 2f cd ┆!Æ G/: x/ 5/ / g / ┆ 0x0e3020…0e3040 1f 2e cd 35 2f 2a 11 34 22 13 34 7e 32 15 34 f6 80 77 c3 13 2f e5 d5 c5 22 1b 34 44 4d cd bd 33 ┆ . 5/* 4" 4ü2 4 w / " 4DM 3┆ 0x0e3040…0e3060 22 11 34 c1 d1 e1 c9 3e 01 32 65 34 46 04 05 c8 23 4e 79 e6 7e fe 02 cc 60 2f cd 9b 2f c3 4e 2f ┆" 4 > 2e4F #Ny ü `/ / N/┆ 0x0e3060…0e3080 e5 d5 eb 2a 25 22 79 e6 80 b6 4f 1b 23 1a e6 7e fe 02 ca 66 2f d1 e1 c9 cd 08 2e af 32 65 34 c9 ┆ *%"y O # ü f/ . 2e4 ┆ 0x0e3080…0e30a0 79 fe 20 d2 8f 2f fe 0d c0 e5 cd 66 31 e1 c9 cd 9b 2f e5 2a 1b 34 cd 99 2e e1 c9 e5 d5 c5 3a 65 ┆y / f1 / * 4 . :e┆ 0x0e30a0…0e30c0 34 b7 c2 04 30 79 cd 12 30 4f cd b1 2f c1 d1 e1 c9 cd f6 2d c2 d8 2f 79 2a 11 34 be ca e9 2f 2a ┆4 0y 0O / - /y* 4 /*┆ 0x0e30c0…0e30e0 1b 34 cd a5 2e cd 01 30 cd e9 2f 2a 1b 34 22 1f 34 2a 11 34 22 13 34 c9 2a 13 34 eb 2a 11 34 cd ┆ 4 . 0 /* 4" 4* 4" 4 * 4 * 4 ┆ 0x0e30e0…0e3100 71 09 c2 e9 2f 79 32 15 34 21 1b 34 34 2a 11 34 71 23 22 11 34 c5 3a 1c 34 4f 06 00 cd 5b 32 c1 ┆q /y2 4! 44* 4q#" 4 : 4O Æ2 ┆ 0x0e3100…0e3120 c9 e5 d5 c5 cd 87 30 79 cd 00 00 cd 56 33 c1 d1 e1 c9 07 fe 02 d2 1a 30 c6 be fe 04 d2 21 30 c6 ┆ 0y V3 0 !0 ┆ 0x0e3120…0e3140 52 0f c9 e5 d5 c5 0e 20 cd 11 2e 2a 1b 34 95 47 ca 43 30 eb 21 70 02 7e b7 c2 47 30 cd 9b 2f 05 ┆R .* 4 G C0 !p ü G0 / ┆ 0x0e3140…0e3160 c2 3c 30 c1 d1 e1 c9 e5 2a 11 34 0e 00 7e 36 20 96 b1 4f 23 05 c2 4d 30 e1 b7 ca 6b 30 eb cd a2 ┆ <0 * 4 ü6 O# M0 k0 ┆ 0x0e3160…0e3180 2e eb cd 47 2f 3a b1 02 cd 78 2f c1 d1 e1 c9 3a b5 02 b7 c2 7d 30 3a 10 34 b7 c3 8d 30 e5 2a 13 ┆. G/: x/ : å0: 4 0 * ┆ 0x0e3180…0e31a0 34 7e ee 80 77 e1 c9 3a 10 34 a9 f0 a9 ca a5 30 af 32 10 34 e5 21 8e 02 7e b7 c2 a0 30 21 87 02 ┆4ü w : 4 0 2 4 ! ü 0! ┆ 0x0e31a0…0e31c0 cd b3 30 e1 c9 e5 21 87 02 cd b3 30 e1 3e ff 32 10 34 c9 3a 65 34 f5 c5 cd 47 2f 3a b1 02 cd 78 ┆ 0 ! 0 > 2 4 :e4 G/: x┆ 0x0e31c0…0e31e0 2f c1 f1 32 65 34 c9 cd e0 30 cd 2a 33 ca ca 30 cd db 30 c2 c7 30 4f cd 05 33 c9 0c 0d c8 b9 c9 ┆/ 2e4 0 *3 0 0 0O 3 ┆ 0x0e31e0…0e3200 e5 d5 c5 e5 60 2e 00 cd b6 33 cd 3d 33 cc a2 2e e1 cd 2b 31 cd 3d 33 c2 12 31 2a 1b 34 e5 cd 23 ┆ `. 3 =3 . +1 =3 1* 4 #┆ 0x0e3200…0e3220 (60, 1, 3) 63 68 61 72 20 72 69 67 68 74 20 20 20 5e 54 3d 65 6e 74 69 72 65 20 63 6f 6c 75 6d 6e 20 5e 59 ┆char right ^T=entire column ^Y┆ 0x0e3220…0e3240 3d 65 6e 74 69 72 65 20 6c 69 6e 65 20 20 49 4e 53 45 52 54 3a 20 20 20 20 20 5e 50 3d 6c 69 6e ┆=entire line INSERT: ^P=lin┆ 0x0e3240…0e3260 65 20 62 75 66 66 65 72 20 20 20 20 5e 56 3d 63 68 61 72 20 72 69 67 68 74 20 20 20 5e 42 3d 65 ┆e buffer ^V=char right ^B=e┆ 0x0e3260…0e3280 6e 74 69 72 65 20 63 6f 6c 75 6d 6e 20 5e 4e 3d 65 6e 74 69 72 65 20 6c 69 6e 65 20 20 4f 54 48 ┆ntire column ^N=entire line OTH┆ 0x0e3280…0e32a0 45 52 3a 20 20 20 20 20 20 5e 4a 3d 72 6f 74 61 74 65 20 68 65 6c 70 20 20 20 20 5e 57 3d 6c 69 ┆ER: ^J=rotate help ^W=li┆ 0x0e32a0…0e32c0 73 74 20 66 6f 72 6d 20 20 20 20 5e 43 3d 66 6f 72 6d 20 64 6f 6e 65 20 20 20 20 20 5e 4b 3d 74 ┆st form ^C=form done ^K=t┆ 0x0e32c0…0e32e0 6f 67 67 6c 65 20 6b 65 79 20 20 20 46 49 45 4c 44 3a 20 20 20 20 20 20 5e 51 2c 5f 3d 61 64 64 ┆oggle key FIELD: ^Q,_=add┆ 0x0e32e0…0e3300 2f 65 78 74 65 6e 64 20 66 69 65 6c 64 20 20 20 20 20 20 20 20 20 20 20 20 20 5e 5a 3d 64 65 6c ┆/extend field ^Z=del┆ 0x0e3300…0e3320 65 74 65 20 66 69 65 6c 64 20 20 5e 52 3d 64 65 66 69 6e 65 20 66 69 65 6c 64 20 48 49 47 48 4c ┆ete field ^R=define field HIGHL┆ 0x0e3320…0e3340 49 47 48 54 3a 20 20 5e 4f 3d 73 65 74 2f 63 6c 65 61 72 20 20 20 20 20 20 5e 4c 3d 64 65 6c 65 ┆IGHT: ^O=set/clear ^L=dele┆ 0x0e3340…0e3360 74 65 20 62 6c 6f 63 6b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆te block ┆ 0x0e3360…0e3380 20 20 20 20 20 20 20 20 20 20 43 55 52 53 4f 52 3a 20 20 20 20 20 52 45 54 55 52 4e 3d 6e 65 78 ┆ CURSOR: RETURN=nex┆ 0x0e3380…0e33a0 74 20 69 74 65 6d 20 20 5e 53 3d 6c 65 66 74 20 63 68 61 72 20 20 20 20 5e 44 3d 72 69 67 68 74 ┆t item ^S=left char ^D=right┆ 0x0e33a0…0e33c0 20 63 68 61 72 20 20 20 20 5e 45 3d 70 72 65 76 20 69 74 65 6d 20 20 20 20 4f 54 48 45 52 3a 20 ┆ char ^E=prev item OTHER: ┆ 0x0e33c0…0e33e0 20 20 20 20 20 5e 41 3d 70 72 65 76 69 6f 75 73 20 66 69 65 6c 64 20 5e 46 3d 6e 65 78 74 20 66 ┆ ^A=previous field ^F=next f┆ 0x0e33e0…0e3400 69 65 6c 64 20 20 20 5e 47 3d 64 65 6c 65 74 65 20 63 68 61 72 20 20 20 5e 56 3d 69 6e 73 65 72 ┆ield ^G=delete char ^V=inser┆ 0x0e3400…0e3420 (60, 1, 4) 6c 65 20 74 6f 20 63 72 65 61 74 65 20 61 20 66 6f 72 6d 20 66 6f 72 0d 64 61 74 61 20 65 6e 74 ┆le to create a form for data ent┆ 0x0e3420…0e3440 72 79 2e 20 20 59 6f 75 20 6d 61 79 20 6d 6f 76 65 20 66 72 65 65 6c 79 20 61 72 6f 75 6e 64 20 ┆ry. You may move freely around ┆ 0x0e3440…0e3460 74 68 65 20 73 63 72 65 65 6e 20 75 73 69 6e 67 20 74 68 65 20 43 55 52 53 4f 52 0d 63 6f 6d 6d ┆the screen using the CURSOR comm┆ 0x0e3460…0e3480 61 6e 64 73 20 61 74 20 74 68 65 20 73 63 72 65 65 6e 20 74 6f 70 2c 20 69 6e 73 65 72 74 69 6e ┆ands at the screen top, insertin┆ 0x0e3480…0e34a0 67 20 62 61 63 6b 67 72 6f 75 6e 64 20 74 65 78 74 20 61 74 20 77 69 6c 6c 2e 20 20 54 68 65 0d ┆g background text at will. The ┆ 0x0e34a0…0e34c0 62 6f 78 65 73 2f 64 61 74 61 66 69 65 6c 64 73 20 61 72 65 20 63 72 65 61 74 65 64 20 75 73 69 ┆boxes/datafields are created usi┆ 0x0e34c0…0e34e0 6e 67 20 74 68 65 20 75 6e 64 65 72 6c 69 6e 65 20 6f 72 20 5e 51 20 6b 65 79 2e 20 20 4e 6f 74 ┆ng the underline or ^Q key. Not┆ 0x0e34e0…0e3500 65 20 74 68 61 74 0d 20 31 2e 20 79 6f 75 20 77 69 6c 6c 20 6e 6f 74 20 67 65 74 20 61 20 63 68 ┆e that 1. you will not get a ch┆ 0x0e3500…0e3520 61 6e 63 65 20 74 6f 20 61 63 74 75 61 6c 6c 79 20 65 6e 74 65 72 20 64 61 74 61 20 69 6e 20 74 ┆ance to actually enter data in t┆ 0x0e3520…0e3540 68 69 73 20 73 74 65 70 20 61 6e 64 0d 20 32 2e 20 77 68 65 6e 20 74 68 65 20 64 61 74 61 20 64 ┆his step and 2. when the data d┆ 0x0e3540…0e3560 6f 65 73 20 67 65 74 20 65 6e 74 65 72 65 64 2c 20 6f 6e 6c 79 20 74 68 65 20 64 61 74 61 20 69 ┆oes get entered, only the data i┆ 0x0e3560…0e3580 6e 20 74 68 65 20 64 61 74 61 66 69 65 6c 64 73 20 77 69 6c 6c 0d 20 20 20 20 61 63 74 75 61 6c ┆n the datafields will actual┆ 0x0e3580…0e35a0 6c 79 20 67 65 74 20 72 65 63 6f 72 64 65 64 2e 20 20 54 68 65 20 72 65 73 74 20 69 73 20 73 69 ┆ly get recorded. The rest is si┆ 0x0e35a0…0e35c0 6d 70 6c 79 20 62 61 63 6b 67 72 6f 75 6e 64 20 74 65 78 74 2e 0d 0d 54 68 65 20 68 65 6c 70 20 ┆mply background text. The help ┆ 0x0e35c0…0e35e0 6d 65 73 73 61 67 65 73 20 61 74 20 74 68 65 20 73 63 72 65 65 6e 20 74 6f 70 20 6c 69 73 74 2f ┆messages at the screen top list/┆ 0x0e35e0…0e3600 65 78 70 6c 61 69 6e 20 6d 6f 73 74 20 6f 66 20 74 68 65 20 6f 70 74 69 6f 6e 73 0d 61 76 61 69 ┆explain most of the options avai┆ 0x0e3600…0e3620 (60, 1, 5) d2 fe 28 c6 30 cc 3b 2a 04 c5 e5 22 52 2b 0e 0d cd 0e 27 0e 0a cd 0e 27 78 cd 9e 2a 3e 01 cd 9b ┆ ( 0 ;* "R+ ' 'x *> ┆ 0x0e3620…0e3640 2a 3e 03 cd 9b 2a 3e 02 cd 9b 2a e1 e5 cd 4d 14 08 c2 3d 29 01 20 04 cd 28 27 c3 40 29 cd 9e 2a ┆*> *> * M =) (' @) *┆ 0x0e3640…0e3660 cd 96 2a cd 90 2a 21 18 36 cd 72 2a 7e b7 c2 49 29 cd 90 2a cd 96 2a cd 90 2a 23 cd 72 2a 06 09 ┆ * *! 6 r*ü I) * * *# r* ┆ 0x0e3660…0e3680 cd 5e 2a cd 72 2a 06 0a cd 5e 2a cd 96 2a cd 90 2a cd 90 2a e1 e5 cd 4d 14 05 e6 04 c2 88 29 01 ┆ ^* r* ^* * * * M ) ┆ 0x0e3680…0e36a0 20 0a cd 28 27 c3 a0 29 3e 0e cd 80 2a 3c cd 9e 2a 01 20 02 cd 28 27 3e 0c cd 80 2a 3c cd 9e 2a ┆ (' )> *< * ('> *< *┆ 0x0e36a0…0e36c0 e1 e5 cd 4d 14 05 e6 08 c2 b4 29 01 20 05 cd 28 27 c3 c3 29 3e 0f cd 9b 2a e1 e5 01 05 10 cd 49 ┆ M ) (' )> * I┆ 0x0e36c0…0e36e0 2a 57 17 cd 90 2a cd 96 2a cd 90 2a e1 e5 cd 4d 14 06 e6 10 ca 32 2a e1 e5 01 06 60 cd 49 2a 48 ┆*W * * * M 2* ` I*H┆ 0x0e36e0…0e3700 17 21 e1 35 23 23 79 be ca ee 29 21 3d 36 cd 72 2a cd 90 2a 3e 0b cd 9b 2a e1 e5 cd 4d 14 06 e6 ┆ ! 5##y )!=6 r* *> * M ┆ 0x0e3700…0e3720 40 ca 32 2a cd 90 2a cd 90 2a e1 e5 cd 4d 14 14 e5 c2 1d 2a cd 90 2a cd 90 2a c3 2a 2a 01 14 ff ┆@ 2* * * M * * * ** ┆ 0x0e3720…0e3740 cd 49 2a 52 17 0e 3a cd 0e 27 e1 23 01 20 08 cd a1 26 e1 c1 cd 2c 0b c2 f9 28 c9 e5 c5 cd 52 27 ┆ I*R : ' # & , ( R'┆ 0x0e3740…0e3760 21 15 35 cd 9b 26 c1 e1 c9 79 cd 80 2a e3 5e 23 56 23 e3 eb cd 5d 2a 1a 4f cd 0e 27 c9 e9 e5 79 ┆! 5 & y * ^#V# Å* O ' y┆ 0x0e3760…0e3780 fe 20 ca 6a 2a 78 cd 80 2a 4f cd 0e 27 cd 90 2a e1 c9 46 23 5e 23 56 23 4e 23 e5 cd 87 2a e1 c9 ┆ j*x *O ' * F#^#V#N# * ┆ 0x0e3780…0e37a0 2a 52 2b cd 51 14 c9 78 cd 80 2a a3 ba ca 92 2a 0e 20 cd 0e 27 c9 0e 2e c3 0e 27 cd 80 2a cd a7 ┆*R+ Q x * * ' . ' * ┆ 0x0e37a0…0e37c0 2a c5 cd 90 2a c1 c9 d5 e5 11 8f 28 cd c3 17 01 ff 03 eb cd a1 26 eb c1 d1 c9 2a 93 0e 7e b7 c8 ┆* * ( & * ü ┆ 0x0e37c0…0e37e0 0e 00 51 2a 93 0e 23 23 0c 06 00 cd 4a 27 c0 04 c5 e5 cd 4d 14 0f 91 c2 1a 2b b2 cc 2b 2b 0e 0d ┆ Q* ## J' M + ++ ┆ 0x0e37e0…0e3800 cd 0e 27 0e 0a cd 0e 27 0e 23 cd 0e 27 78 32 2c 22 cd a7 2a 0e 3d cd 0e 27 11 f6 ff 19 7e e6 10 ┆ ' ' # 'x2," * = ' ü ┆ 0x0e3800…0e3820 (60, 1, 6) 30 44 04 78 d6 06 2f 3c dc 42 32 cd b6 33 e1 cd a5 2e c1 d1 e1 c9 3e 00 c3 1c 31 79 e5 6f 60 cd ┆0D x /< B2 3 . > 1y o` ┆ 0x0e3820…0e3840 72 31 e1 cd 2b 31 af 32 21 34 c9 e5 d5 c5 cd 24 32 06 00 16 01 e5 2a 1b 34 cd 11 2e 95 5f e1 7e ┆r1 +1 2!4 $2 * 4 . _ ü┆ 0x0e3840…0e3860 4f 23 fe 20 da 8b 31 fe 80 ca a3 31 cd 3d 33 cc 9b 2f 04 05 ca 5b 31 05 ca a3 31 1d c2 3f 31 e5 ┆O# 1 1 =3 / Æ1 1 ?1 ┆ 0x0e3860…0e3880 cd 66 31 c3 39 31 cd 3d 33 cc 23 30 2a 1b 34 24 2e 00 cd 3d 33 cc a2 2e c9 46 23 14 d5 5e 23 56 ┆ f1 91 =3 #0* 4$. =3 . F# ^#V┆ 0x0e3880…0e38a0 23 e3 eb 7c b7 c4 0f 32 c3 3f 31 fe 0d ca 5f 31 04 05 c2 52 31 fe 01 ca 7b 31 fe 02 ca 79 31 b7 ┆# ø 2 ?1 _1 R1 æ1 y1 ┆ 0x0e38a0…0e38c0 c2 52 31 15 c2 3e 31 2a 1b 34 cd 3d 33 cc 23 30 cd a2 2e c1 d1 e1 c9 e5 d5 c5 46 23 e5 23 1e 00 ┆ R1 >1* 4 =3 #0 . F# # ┆ 0x0e38c0…0e38e0 cd 7a 32 e6 7f fe 7f c2 cc 31 3e 08 fe 20 da e2 31 4f cd 80 2f 71 23 1c 05 c2 c0 31 e1 73 c1 d1 ┆ z2 1> 1O /q# 1 s ┆ 0x0e38e0…0e3900 e1 c9 fe 03 ca 00 00 fe 0d 36 00 ca dc 31 cd f4 31 c3 c0 31 fe 08 c0 7b b7 c8 e5 2a 1b 34 2d cd ┆ 6 1 1 1 æ * 4- ┆ 0x0e3900…0e3920 99 2e 0e 20 cd 80 2f cd 99 2e e1 2b 04 1d c9 d5 f5 eb 2a 6c 34 eb 7a 3c bc da 21 32 11 6a 34 15 ┆ . / . + *l4 z< !2 j4 ┆ 0x0e3920…0e3940 19 f1 d1 c9 d5 f5 11 9f 34 cd 71 09 d2 3f 32 11 a9 35 cd 71 09 da 3f 32 5e 23 56 eb cd 0f 32 f1 ┆ 4 q ?2 5 q ?2^#V 2 ┆ 0x0e3940…0e3960 d1 c9 e5 c5 48 f5 cd 11 2e 47 f1 2a a9 34 f5 cd 5b 32 f1 0c 3d c2 4e 32 c1 e1 c9 f5 3a 40 02 3d ┆ H .G * 4 Æ2 = N2 :@ =┆ 0x0e3960…0e3980 b9 da 78 32 e5 d5 c5 eb 2a 22 34 06 00 09 09 09 c1 70 23 73 23 72 d1 e1 f1 c9 e5 d5 c5 cd 2a 33 ┆ x2 *"4 p#s#r *3┆ 0x0e3980…0e39a0 c2 9e 32 cd 75 33 ca 7d 32 cd 05 33 cd a5 32 47 f4 50 33 04 05 fc d9 32 cd 2a 33 ca 93 32 cd 05 ┆ 2 u3 å2 3 2G P3 2 *3 2 ┆ 0x0e39a0…0e39c0 33 c1 d1 e1 c9 3a b7 02 b7 c8 e5 c5 cd d0 32 0c 46 cd f6 2d ca bb 32 3a 15 34 47 cd 11 2e b9 78 ┆3 : 2 F - 2: 4G . x┆ 0x0e39c0…0e39e0 ca c6 32 23 b6 2b 0d ca cc 32 2b b6 b7 c1 e1 c9 2a 1b 34 44 4d cd bd 33 c9 cd dc 32 cd 6f 30 c5 ┆ 2# + 2+ * 4DM 3 2 o0 ┆ 0x0e39e0…0e3a00 06 02 3e ff cd ed 32 05 c2 e2 32 c1 c9 cd f6 32 c0 3d c2 ed 32 c9 e5 c5 4f af 3d c2 fa 32 cd 3d ┆ > 2 2 2 = 2 O = 2 =┆ 0x0e3a00…0e3a20 (60, 1, 7) 74 20 63 68 61 72 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5e 43 3d 65 6e 64 20 64 65 66 69 6e ┆t char ^C=end defin┆ 0x0e3a20…0e3a40 69 74 69 6f 6e 20 5e 52 3d 73 74 61 72 74 20 6f 76 65 72 20 20 20 5e 51 3d 6c 6f 63 61 74 65 20 ┆ition ^R=start over ^Q=locate ┆ 0x0e3a40…0e3a60 66 69 65 6c 64 20 20 5e 4a 3d 6d 6f 72 65 20 68 65 6c 70 20 20 20 20 5f 5f 5f 5f 5f 5f 5f 5f 5f ┆field ^J=more help _________┆ 0x0e3a60…0e3a80 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f ┆________________________________┆ […0x1…] 0x0e3aa0…0e3ac0 5f 5f 5f 5f 5f 5f 20 20 20 20 20 20 20 20 20 20 20 20 4c 49 4e 3d 30 30 30 20 43 4f 4c 3d 30 30 ┆______ LIN=000 COL=00┆ 0x0e3ac0…0e3ae0 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆0 ┆ 0x0e3ae0…0e3b00 20 20 20 20 20 20 20 48 45 4c 50 20 53 43 52 45 45 4e 20 32 20 20 20 20 20 20 20 20 20 20 20 20 ┆ HELP SCREEN 2 ┆ 0x0e3b00…0e3b20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆ […0x1…] 0x0e3b40…0e3b60 20 20 20 20 4e 55 4d 3d 30 30 30 20 4c 45 4e 3d 30 30 30 20 50 4f 53 3d 30 30 30 20 45 44 43 3d ┆ NUM=000 LEN=000 POS=000 EDC=┆ 0x0e3b60…0e3b80 78 78 0d 5e 01 40 02 20 55 6e 69 6d 70 6c 65 6d 65 6e 74 65 64 20 63 6f 6e 74 72 6f 6c 20 63 68 ┆xx ^ @ Unimplemented control ch┆ 0x0e3b80…0e3ba0 61 72 61 63 74 65 72 2e 20 48 69 74 20 45 53 43 20 6b 65 79 3a 20 00 0d 43 75 72 73 6f 72 20 69 ┆aracter. Hit ESC key: Cursor i┆ 0x0e3ba0…0e3bc0 73 20 6e 6f 74 20 69 6e 20 61 20 66 69 65 6c 64 2c 20 01 3f 02 20 69 67 6e 6f 72 65 64 01 1d 07 ┆s not in a field, ? ignored ┆ 0x0e3bc0…0e3be0 00 41 74 20 6c 69 6e 65 20 6c 69 6d 69 74 01 46 07 00 43 61 6e 6e 6f 74 20 64 65 6c 65 74 65 20 ┆ At line limit F Cannot delete ┆ 0x0e3be0…0e3c00 6c 61 73 74 20 00 01 68 07 6c 69 6e 65 01 1d 07 00 41 74 20 63 6f 6c 75 6d 6e 01 5e 07 00 01 68 ┆last h line At column ^ h┆ 0x0e3c00…0e3c20 (60, 1, 8) 6c 61 62 6c 65 2e 20 55 73 65 20 5e 4a 20 74 6f 20 72 6f 74 61 74 65 20 74 68 65 20 68 65 6c 70 ┆lable. Use ^J to rotate the help┆ 0x0e3c20…0e3c40 20 64 69 73 70 6c 61 79 2e 0d 0d 44 61 74 61 66 69 65 6c 64 73 20 6d 61 79 20 62 65 20 61 73 73 ┆ display. Datafields may be ass┆ 0x0e3c40…0e3c60 69 67 6e 65 64 20 76 61 72 69 6f 75 73 20 61 74 74 72 69 62 75 74 65 73 20 76 69 61 20 61 20 73 ┆igned various attributes via a s┆ 0x0e3c60…0e3c80 70 65 63 69 61 6c 20 71 75 65 73 74 69 6f 6e 61 69 72 65 2e 0d 54 6f 20 65 6e 74 65 72 20 74 68 ┆pecial questionaire. To enter th┆ 0x0e3c80…0e3ca0 69 73 20 70 68 61 73 65 2c 20 70 6f 73 69 74 69 6f 6e 20 74 68 65 20 63 75 72 73 6f 72 20 61 74 ┆is phase, position the cursor at┆ 0x0e3ca0…0e3cc0 20 61 20 64 61 74 61 66 69 65 6c 64 20 61 6e 64 20 74 79 70 65 20 5e 52 2e 0d 54 79 70 65 20 5e ┆ a datafield and type ^R. Type ^┆ 0x0e3cc0…0e3ce0 4a 20 61 74 20 61 6e 79 20 71 75 65 73 74 69 6f 6e 20 66 6f 72 20 66 75 72 74 68 65 72 20 69 6e ┆J at any question for further in┆ 0x0e3ce0…0e3d00 66 6f 72 6d 61 74 69 6f 6e 20 69 6e 20 74 68 69 73 20 70 68 61 73 65 2e 0d 20 20 20 20 54 79 70 ┆formation in this phase. Typ┆ 0x0e3d00…0e3d20 65 20 5e 4a 20 6e 6f 77 20 74 6f 20 72 6f 74 61 74 65 20 74 6f 20 74 68 65 20 6e 65 78 74 20 68 ┆e ^J now to rotate to the next h┆ 0x0e3d20…0e3d40 65 6c 70 20 73 63 72 65 65 6e 3a 20 00 45 6e 74 65 72 20 6e 61 6d 65 20 6f 66 20 66 6f 72 6d 20 ┆elp screen: Enter name of form ┆ 0x0e3d40…0e3d60 64 65 66 69 6e 69 74 69 6f 6e 20 66 69 6c 65 20 28 6f 72 20 70 72 65 73 73 20 52 45 54 55 52 4e ┆definition file (or press RETURN┆ 0x0e3d60…0e3d80 29 3a 20 00 0d 20 54 68 65 20 66 6f 72 6d 20 64 65 66 69 6e 69 74 69 6f 6e 20 66 69 6c 65 20 69 ┆): The form definition file i┆ 0x0e3d80…0e3da0 73 20 77 68 65 72 65 20 74 68 65 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 73 20 66 6f 72 20 79 ┆s where the specifications for y┆ 0x0e3da0…0e3dc0 6f 75 72 20 66 6f 72 6d 20 61 72 65 0d 20 73 74 6f 72 65 64 2e 20 20 49 66 20 79 6f 75 20 68 61 ┆our form are stored. If you ha┆ 0x0e3dc0…0e3de0 76 65 20 6e 6f 74 20 79 65 74 20 64 65 73 69 67 6e 65 64 20 61 20 66 6f 72 6d 2c 20 63 68 6f 6f ┆ve not yet designed a form, choo┆ 0x0e3de0…0e3e00 73 65 20 61 20 6e 61 6d 65 20 66 6f 72 20 74 68 65 20 66 6f 72 6d 0d 20 64 65 66 69 6e 69 74 69 ┆se a name for the form definiti┆ 0x0e3e00…0e3e20 (60, 1, 9) 32 3c 22 e1 e5 cd 4d 14 17 eb cd 34 18 eb 3a 41 02 d6 06 47 0e 20 cd a1 26 51 e1 c1 cd 2c 0b c2 ┆2<" M 4 :A G &Q , ┆ 0x0e3e20…0e3e40 cb 2a 2a 93 0e 7e b9 c2 c3 2a c9 e5 c5 2a 93 0e 7e 21 17 35 cd 24 32 cd 43 2b cd 9e 26 c1 e1 c9 ┆ ** ü * * ü! 5 $2 C+ & ┆ 0x0e3e40…0e3e60 3a 90 0e fe 18 d2 52 27 e5 21 11 35 cd 9b 26 e1 c9 20 20 20 20 20 20 20 e5 cd ad 2b 67 cd bb 2b ┆: R' ! 5 & +g +┆ 0x0e3e60…0e3e80 6f cd 99 2e e1 c9 e5 d5 c5 2a 73 2d 3a 2f 0a 67 cd 5d 2d cd c9 2b cd ad 2b 4f d4 5b 32 c1 d1 e1 ┆o . *s-:/ g Å- + +O Æ2 ┆ 0x0e3e80…0e3ea0 c9 e5 d5 c5 3a 79 2d 3d 4f cd c9 2b 2a 7f 34 78 f6 80 47 cd 5b 32 c1 d1 e1 c9 3a 40 02 3d 67 cd ┆ :y-=O +* 4x G Æ2 :@ =g ┆ 0x0e3ea0…0e3ec0 11 2e 6f cd 99 2e cd 1b 2e cd fb 2d c9 e5 3a 2f 0a 2a 74 2d 95 2a 79 2d 85 e1 c9 e5 3a 2e 0a 2a ┆ .o . . - :/ *t- *y- :. *┆ 0x0e3ec0…0e3ee0 73 2d 95 2a 28 0a 85 e1 c9 cd 11 2e 47 3a 8f 0e b8 d0 47 c9 0e 1b 06 01 cd c7 30 cd 00 2d 79 c9 ┆s- *( .G: G 0 -y ┆ 0x0e3ee0…0e3f00 3a 78 2d c3 e8 2b 3e 06 06 01 cd 42 32 cd b6 33 c9 e5 d5 c5 21 77 2d 7e 2f 77 cd 0a 2c cd e0 2b ┆:x- +> B2 3 !w-ü/w , +┆ 0x0e3f00…0e3f20 cd 52 2c cd 00 2d c1 d1 e1 c9 3a 77 2d 21 78 2d a6 3c 32 79 2d c9 e5 d5 c5 11 78 2d 1a 4f 7e 12 ┆ R, - :w-!x- <2y- x- Oü ┆ 0x0e3f20…0e3f40 b9 f5 23 47 87 80 47 11 7d 2d cd c8 09 f1 ca 48 2d cd 0a 2c cd e0 2b cd 52 2c cd 00 2d c1 d1 e1 ┆ #G G å- H- , + R, - ┆ 0x0e3f40…0e3f60 c9 e5 d5 c5 af 32 74 2d 32 73 2d cd f3 2c c1 d1 e1 c9 e5 d5 c5 cd 66 2c f5 cd 8c 2c 47 f1 b0 c4 ┆ 2t-2s- , f, ,G ┆ 0x0e3f60…0e3f80 f3 2c c1 d1 e1 c9 21 73 2d cd 11 2e 5f 3a 2e 0a 57 3a 2d 0a 47 0e 0f bb 3a 8f 0e da a1 2c 78 82 ┆ , !s- ._:. W:- G : ,x ┆ 0x0e3f80…0e3fa0 f5 3a 28 0a 82 57 f1 06 00 c3 a1 2c 3a 40 02 2a 79 2d 95 5f 3a 2f 0a 57 21 74 2d 01 03 00 3a 90 ┆ :( W ,:@ *y- _:/ W!t- : ┆ 0x0e3fa0…0e3fc0 0e 93 d2 a6 2c af ca df 2c 32 72 2d 7e b7 ca b6 2c 81 ba d2 ca 2c 7e 83 91 4f 7a 80 b9 d2 ca 2c ┆ , ,2r-ü , ,ü Oz ,┆ 0x0e3fc0…0e3fe0 3a 72 2d be da df 2c 3e 00 c9 3a 72 2d 4f 7b 1f 5f 78 b7 1f 82 93 d2 da 2c af b9 da df 2c 79 4e ┆:r- ,> :r-Oæ _x , ,yN┆ 0x0e3fe0…0e4000 77 91 c9 e5 d5 c5 cd 66 2c b7 f5 c4 f3 2c f1 c1 d1 e1 c9 2a 73 2d cd 5d 2d 22 75 2d cd 00 2d c9 ┆w f, , *s- Å-"u- - ┆ 0x0e4000…0e4020 (60, 1, 10) 33 79 c1 e1 c9 e5 21 21 34 34 35 36 00 e1 c8 e5 2a 1d 34 cd a5 2e e1 c9 3a 21 34 b7 c0 3c 32 21 ┆3y !!4456 * 4 . :!4 <2!┆ 0x0e4020…0e4040 34 e5 2a 1b 34 22 1d 34 e1 c9 cd 3d 33 c8 e5 2a 17 34 36 00 cd 48 33 22 17 34 e1 b7 c9 cd 56 33 ┆4 * 4" 4 =3 * 46 H3" 4 V3┆ 0x0e4040…0e4060 e5 2a 17 34 7e e1 b7 c9 23 34 35 f0 21 24 34 c9 e5 d5 c5 c3 60 33 e5 d5 c5 cd 00 00 b7 ca 71 33 ┆ * 4ü #45 !$4 `3 q3┆ 0x0e4060…0e4080 cd 00 00 b7 ca 71 33 2a 19 34 77 cd 48 33 22 19 34 c1 d1 e1 c9 e5 d5 c5 2a 22 34 06 00 7e 36 00 ┆ q3* 4w H3" 4 *"4 ü6 ┆ 0x0e4080…0e40a0 23 5e 23 56 23 b7 c2 9a 33 04 3a 40 02 b8 c2 7d 33 cd 05 33 af 3c c1 d1 e1 c9 0e 00 cd bd 33 cd ┆#^#V# 3 :@ å3 3 < 3 ┆ 0x0e40a0…0e40c0 e1 33 ca b2 33 cd a2 2e eb 04 05 c4 51 2f cd 23 30 af c1 d1 e1 c9 cd 75 33 ca b6 33 c9 d5 c5 f5 ┆ 3 3 . Q/ #0 u3 3 ┆ 0x0e40c0…0e40e0 3a 41 02 cd ce 33 2a 68 34 19 f1 c1 d1 c9 6f af 67 57 59 78 1f d2 db 33 eb 19 eb 29 b7 c2 d4 33 ┆:A 3*h4 o gWYx 3 ) 3┆ 0x0e40e0…0e4100 c9 c5 f5 e6 7f 47 f1 b7 eb f4 0f 32 eb 1a cd 12 30 be c2 0c 34 0c 13 23 05 c2 ed 33 0d 0c cd 11 ┆ G 2 0 4 # 3 ┆ 0x0e4100…0e4120 2e b9 ca 0c 34 7e fe 20 23 ca fd 33 e1 69 c9 e0 00 01 f7 0e 00 ff 00 24 34 24 34 00 00 00 00 ff ┆. 4ü # 3 i $4$4 ┆ 0x0e4120…0e4140 ff 00 65 72 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ er ┆ 0x0e4140…0e4160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆ 0x0e4160…0e4180 00 00 00 00 ff 00 00 62 79 20 a0 4a a0 4a 06 4f d7 02 4f 26 03 4f 75 03 4f c4 03 4f 13 04 4f ed ┆ by J J O O& Ou O O O ┆ 0x0e4180…0e41a0 05 06 4f d7 02 4f 26 03 4f 62 04 4f b1 04 4f 13 04 4f ed 05 04 4f 00 05 4f 4f 05 4f 9e 05 4f ed ┆ O O& Ob O O O O OO O O ┆ 0x0e41a0…0e41c0 05 4c 06 54 06 5a 06 89 06 8a 06 da 06 de 06 e6 06 ee 06 f6 06 1e 00 f8 06 2d 07 57 07 7c 07 87 ┆ L T Z - W ø ┆ 0x0e41c0…0e41e0 07 94 07 a1 07 b6 07 ef 07 2c 08 0b 0a c3 0e fa 0e b4 0f 53 08 76 08 78 08 8f 08 a1 08 d3 08 f6 ┆ , S v x ┆ 0x0e41e0…0e4200 08 fe 08 a7 09 d4 09 f1 09 7a 10 e8 10 db 13 62 11 c3 11 25 12 60 12 9e 12 31 13 5c 15 84 15 8f ┆ z b % ` 1 Ø ┆ 0x0e4200…0e4220 (60, 1, 11) 07 63 6f 6c 75 6d 6e 01 1d 07 00 4e 6f 74 20 65 6e 6f 75 67 68 20 6d 65 6d 6f 72 79 01 46 07 00 ┆ column Not enough memory F ┆ 0x0e4220…0e4240 50 6f 73 73 69 62 6c 65 20 66 61 74 61 6c 20 70 72 6f 67 72 61 6d 20 65 72 72 6f 72 2e 0d 50 6c ┆Possible fatal program error. Pl┆ 0x0e4240…0e4260 65 61 73 65 20 72 65 70 6f 72 74 20 6f 63 63 75 72 61 6e 63 65 01 46 07 00 2a 2a 2a 20 57 41 52 ┆ease report occurance F *** WAR┆ 0x0e4260…0e4280 4e 49 4e 47 3a 20 20 45 64 69 74 20 6d 61 73 6b 20 6f 72 20 72 61 6e 67 65 20 6c 69 6d 69 74 73 ┆NING: Edit mask or range limits┆ 0x0e4280…0e42a0 20 6d 61 79 20 6e 65 65 64 20 72 65 76 69 73 69 6f 6e 01 1d 07 00 54 68 65 20 6d 61 78 69 6d 75 ┆ may need revision The maximu┆ 0x0e42a0…0e42c0 6d 20 6e 75 6d 62 65 72 20 6f 66 20 66 69 65 6c 64 73 20 69 73 20 32 34 35 01 46 07 00 43 61 6e ┆m number of fields is 245 F Can┆ 0x0e42c0…0e42e0 27 74 20 72 65 61 64 20 66 6f 72 6d 20 64 65 66 69 6e 69 74 69 6f 6e 20 66 69 6c 65 01 af 08 00 ┆'t read form definition file ┆ 0x0e42e0…0e4300 0d 00 49 6e 73 75 66 66 69 63 69 65 6e 74 20 6d 65 6d 6f 72 79 01 af 08 00 44 69 72 65 63 74 6f ┆ Insufficient memory Directo┆ 0x0e4300…0e4320 72 79 20 6f 6e 20 64 01 a2 08 00 44 69 73 6b 20 01 40 02 3a 20 66 75 6c 6c 2e 0d 52 65 70 6c 61 ┆ry on d Disk @ : full. Repla┆ 0x0e4320…0e4340 63 65 20 73 79 73 74 65 6d 20 64 69 73 6b 2c 20 74 79 70 65 20 72 65 74 75 72 6e 2e 00 01 65 09 ┆ce system disk, type return. e ┆ 0x0e4340…0e4360 61 20 6c 69 74 65 72 61 6c 20 65 6e 63 6c 6f 73 65 64 20 69 6e 20 71 75 6f 74 65 73 01 1d 07 00 ┆a literal enclosed in quotes ┆ 0x0e4360…0e4380 01 b3 09 26 01 1d 07 00 01 65 09 61 20 63 6f 6e 73 74 61 6e 74 20 75 73 69 6e 67 20 6f 6e 6c 79 ┆ & e a constant using only┆ 0x0e4380…0e43a0 20 74 68 65 20 64 69 67 69 74 73 20 30 20 74 68 72 6f 75 67 68 20 39 2c 20 61 6e 64 20 6f 70 74 ┆ the digits 0 through 9, and opt┆ 0x0e43a0…0e43c0 69 6f 6e 61 6c 20 64 65 63 69 6d 61 6c 0d 20 70 6f 69 6e 74 20 61 6e 64 20 6c 65 61 64 69 6e 67 ┆ional decimal point and leading┆ 0x0e43c0…0e43e0 20 6d 69 6e 75 73 20 73 69 67 6e 01 1d 07 00 49 6c 6c 65 67 61 6c 20 6f 70 65 72 61 6e 64 2e 20 ┆ minus sign Illegal operand. ┆ 0x0e43e0…0e4400 20 49 74 65 6d 20 6d 75 73 74 20 62 65 0d 61 20 66 69 65 6c 64 20 62 65 74 77 65 65 6e 20 23 30 ┆ Item must be a field between #0┆ 0x0e4400…0e4420 (60, 1, 12) 6f 6e 20 66 69 6c 65 20 61 6e 64 20 65 6e 74 65 72 20 69 74 20 68 65 72 65 2e 01 3e 10 00 0d 20 ┆on file and enter it here. > ┆ 0x0e4420…0e4440 41 20 66 6f 72 6d 20 64 65 66 69 6e 69 74 69 6f 6e 20 6e 61 6d 65 20 69 73 20 65 69 67 68 74 20 ┆A form definition name is eight ┆ 0x0e4440…0e4460 28 6f 72 20 6c 65 73 73 29 20 6c 65 74 74 65 72 73 20 61 6e 64 2f 6f 72 20 6e 75 6d 62 65 72 73 ┆(or less) letters and/or numbers┆ 0x0e4460…0e4480 2c 0d 20 6f 70 74 69 6f 6e 61 6c 6c 79 20 70 72 65 63 65 65 64 65 64 20 62 79 20 61 20 64 69 73 ┆, optionally preceeded by a dis┆ 0x0e4480…0e44a0 6b 20 64 72 69 76 65 20 28 6c 65 74 74 65 72 20 41 2d 50 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 ┆k drive (letter A-P followed by ┆ 0x0e44a0…0e44c0 63 6f 6c 6f 6e 29 2e 0d 0d 0d 50 72 65 73 73 20 52 45 54 55 52 4e 20 6b 65 79 20 74 6f 20 65 6e ┆colon). Press RETURN key to en┆ 0x0e44c0…0e44e0 74 65 72 20 66 6f 72 6d 20 6e 61 6d 65 20 6f 72 20 65 6e 74 65 72 20 5e 43 20 74 6f 20 65 78 69 ┆ter form name or enter ^C to exi┆ 0x0e44e0…0e4500 74 3a 20 00 20 65 72 72 6f 72 73 20 61 6e 64 20 69 6e 63 6f 6d 70 6c 65 74 65 20 66 69 65 6c 64 ┆t: errors and incomplete field┆ 0x0e4500…0e4520 73 3a 0d 0d 46 69 65 6c 64 20 20 20 45 72 72 6f 72 20 64 65 73 63 72 69 70 74 69 6f 6e 20 28 70 ┆s: Field Error description (p┆ 0x0e4520…0e4540 6f 73 69 74 69 6f 6e 20 63 75 72 73 6f 72 20 61 74 20 66 69 65 6c 64 20 74 6f 20 70 65 72 66 6f ┆osition cursor at field to perfo┆ 0x0e4540…0e4560 72 6d 20 63 6f 72 72 65 63 74 69 6f 6e 73 29 0d 0d 00 07 20 3f 3f 3f 20 20 20 4e 6f 20 6b 65 79 ┆rm corrections) ??? No key┆ 0x0e4560…0e4580 20 66 69 65 6c 64 20 68 61 73 20 62 65 65 6e 20 65 73 74 61 62 6c 69 73 68 65 64 2e 0d 20 20 20 ┆ field has been established. ┆ 0x0e4580…0e45a0 20 20 20 20 20 28 43 68 6f 6f 73 65 20 61 74 20 6c 65 61 73 74 20 31 20 66 69 65 6c 64 20 61 73 ┆ (Choose at least 1 field as┆ 0x0e45a0…0e45c0 20 73 6f 72 74 20 66 69 65 6c 64 2c 20 75 73 65 20 5e 4b 20 74 6f 20 61 73 73 69 67 6e 20 6b 65 ┆ sort field, use ^K to assign ke┆ 0x0e45c0…0e45e0 79 20 73 74 61 74 75 73 2e 29 0d 00 20 30 30 30 20 20 20 49 6c 6c 65 67 61 6c 20 63 68 61 72 61 ┆y status.) 000 Illegal chara┆ 0x0e45e0…0e4600 63 74 65 72 28 73 29 20 69 6e 20 74 68 65 20 63 6f 6e 74 65 6e 74 20 63 6f 6e 74 72 6f 6c 20 77 ┆cter(s) in the content control w┆ 0x0e4600…0e4620 (60, 1, 13) 3a 0f 34 e5 d5 c5 6f cd 58 2b cd 45 2d 3a 79 2d bd d2 41 2d 4f 7d f5 cd c9 2b 5f 16 00 e5 2a 74 ┆: 4 o X+ E-:y- A-Oå +_ *t┆ 0x0e4620…0e4640 2d 3a 90 0e 95 2a 79 2d 85 e1 bd da 2f 2d 7d 2a 75 2d cd 5b 32 19 0c b9 c2 32 2d f1 91 41 c4 42 ┆-: *y- /-å*u- Æ2 2- A B┆ 0x0e4640…0e4660 32 c1 d1 e1 c9 e5 d5 c5 2a 22 34 eb 21 7a 2d 3a 79 2d 4f 87 81 47 cd c8 09 c1 d1 e1 c9 44 4d 3a ┆2 *"4 !z-:y-O G DM:┆ 0x0e4660…0e4680 8f 0e cd ce 33 2a 91 0e 19 c9 7c 2f 67 7d 2f 6f 23 c9 00 00 00 91 0e ff 06 07 cf a6 39 00 00 00 ┆ 3* ø/gå/o# 9 ┆ 0x0e4680…0e46a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e5 d5 c5 3a 40 02 32 0f 34 47 2a b3 02 22 68 34 cd ┆ :@ 2 4G* "h4 ┆ 0x0e46a0…0e46c0 f6 2d 2a 2c 03 c2 b0 2d 22 68 34 0e 00 cd bd 33 22 22 34 3a 40 02 5f 16 00 19 19 19 22 2c 03 3a ┆ -*, -"h4 3""4:@ _ ", :┆ 0x0e46c0…0e46e0 4d 02 21 56 02 86 21 5b 02 86 c6 02 32 67 34 1e 03 2a 01 00 19 22 5a 33 19 22 61 33 19 22 09 30 ┆M !V !Æ 2g4 * "Z3 "a3 " 0┆ 0x0e46e0…0e4700 cd a7 02 21 95 02 cd 47 2f 3a b1 02 cd 78 2f cd 30 2e c1 d1 e1 c9 3a b2 02 b7 c9 cd aa 02 21 9e ┆ ! G/: x/ 0. : ! ┆ 0x0e4700…0e4720 02 cd 47 2f cd 7b 2f c9 3c 3d c8 cd f6 32 c3 09 2e 3a ad 02 b7 3a 41 02 c0 3d c9 af 32 16 34 3a ┆ G/ æ/ <= 2 .: :A = 2 4:┆ 0x0e4720…0e4740 15 34 fe ff c8 e5 2a 13 34 ae e6 80 ae 77 e1 c9 3a b6 02 32 16 34 e5 d5 c5 2a 40 02 eb 2a 68 34 ┆ 4 * 4 w : 2 4 *@ *h4┆ 0x0e4740…0e4760 22 11 34 22 13 34 3e 20 32 15 34 cd f6 2d c2 64 2e 21 ff ff 22 1b 34 cd cb 2f 63 25 2e 00 cd 99 ┆" 4" 4> 2 4 - d.! " 4 /c%. ┆ 0x0e4760…0e4780 2e 2a 68 34 42 36 20 05 23 c2 65 2e cd f6 2d c2 7c 2e 0e 0d cd 01 30 0e 0a cd 01 30 1d c2 64 2e ┆.*h4B6 # e. - ø. 0 0 d.┆ 0x0e4780…0e47a0 2a 22 34 3a 40 02 47 80 80 73 23 3d c2 89 2e 21 00 00 cd 99 2e c1 d1 e1 c9 f5 af 32 21 34 f1 c3 ┆*"4:@ G s#= .! . 2!4 ┆ 0x0e47a0…0e47c0 a5 2e cd 18 33 e5 d5 c5 f5 3a 16 34 b7 c2 1f 2f e5 5c 55 2a 1f 34 7b bc c2 d7 2e 7a 95 ca 0c 2f ┆ . 3 : 4 / ØU* 4æ .z /┆ 0x0e47c0…0e47e0 47 3a 67 34 b8 da d7 2e 2a 13 34 4e cd 01 30 23 05 c2 cb 2e c3 0c 2f 3a 67 02 b7 c2 18 2f 21 4d ┆G:g4 .* 4N 0# . /:g /!M┆ 0x0e47e0…0e4800 02 cd 47 2f 2a 61 02 19 4d 54 3a 60 02 b7 ca f3 2e 4c 55 cd 01 30 21 56 02 cd 47 2f 4a cd 01 30 ┆ G/*a MT:` .LU 0!V G/J 0┆ 0x0e4800…0e4820 (60, 1, 14) 16 75 14 c7 14 a9 16 d7 16 e7 16 fa 16 0e 17 23 17 3a 17 40 17 53 17 8d 18 9d 18 ad 18 7d 1a 8b ┆ u # : @ S å ┆ 0x0e4820…0e4840 1a 64 1b 80 1b 83 1c a3 1c 7f 1d 9b 1d 5b 1e 73 1e aa 1f ca 1f c5 20 e0 20 38 22 50 22 8f 23 a8 ┆ d Æ s 8"P" # ┆ 0x0e4840…0e4860 23 b6 24 d2 24 46 26 60 26 dd 27 06 28 11 2a 4c 2a 5b 2c 6e 2c f6 2c 0e 2d 1e 2e 32 2e df 2e f8 ┆# $ $F&`& ' ( *L*Æ,n, , - .2. . ┆ 0x0e4860…0e4880 2e 69 2f 86 2f d2 30 f0 30 56 31 6d 31 5d 32 7c 32 5a 34 8c 34 0f 36 2a 36 9d 36 ce 36 a6 37 c1 ┆.i/ / 0 0V1m1Å2ø2Z4 4 6*6 6 6 7 ┆ 0x0e4880…0e48a0 37 ab 39 c3 39 f4 3a 10 3b 3b 3c 52 3c cb 3d e2 3d 17 3f 40 3f 46 40 6f 40 74 41 89 41 19 43 80 ┆7 9 9 : ;;<R< = = ?@?F@o@tA A C ┆ 0x0e48a0…0e48c0 44 bd 46 07 49 9b 4a bd 4a 00 00 00 00 00 00 00 00 44 41 54 41 53 54 41 52 43 4f 4d 00 00 00 00 ┆D F I J J DATASTARCOM ┆ 0x0e48c0…0e48e0 00 41 42 43 44 45 46 47 48 61 62 63 64 65 66 67 68 39 38 2e ff 00 21 59 58 27 2f 7e 22 ff 4e 59 ┆ ABCDEFGHabcdefgh98. !YX'/ü" NY┆ 0x0e48e0…0e4900 ff 53 52 4c ff 4c 4c 43 ff 00 4c 43 ff 2d 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f 50 ff 4e ┆ SRL LLC LC -ABCDEFGHIJKLMNOP N┆ 0x0e4900…0e4920 53 ff 5f 4e 30 30 4e 4e 00 30 53 00 00 00 4c 30 30 30 20 2d 00 00 4e 30 04 01 01 51 06 08 08 43 ┆S _N00NN 0S L000 - N0 Q C┆ 0x0e4920…0e4940 04 10 10 4a 05 40 40 57 05 20 20 4f 06 04 04 52 06 02 02 45 00 04 04 04 50 04 08 08 46 ff 01 01 ┆ J @@W O R E P F ┆ 0x0e4940…0e4960 42 43 55 52 53 4f 52 3a 20 20 20 20 20 5e 41 3d 6c 65 66 74 20 69 74 65 6d 20 20 20 20 20 20 5e ┆BCURSOR: ^A=left item ^┆ 0x0e4960…0e4980 53 3d 6c 65 66 74 20 63 68 61 72 20 20 20 20 5e 44 3d 72 69 67 68 74 20 63 68 61 72 20 20 20 20 ┆S=left char ^D=right char ┆ 0x0e4980…0e49a0 5e 46 3d 72 69 67 68 74 20 69 74 65 6d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5e 45 3d 75 ┆^F=right item ^E=u┆ 0x0e49a0…0e49c0 70 20 6c 69 6e 65 20 20 20 20 20 20 20 20 5e 58 3d 64 6f 77 6e 20 6c 69 6e 65 20 20 20 20 5e 55 ┆p line ^X=down line ^U┆ 0x0e49c0…0e49e0 3d 73 65 74 2f 63 6c 65 61 72 20 74 61 62 20 5e 49 3d 74 61 62 20 20 20 20 20 20 20 20 20 20 44 ┆=set/clear tab ^I=tab D┆ 0x0e49e0…0e4a00 45 4c 45 54 45 3a 20 20 20 20 20 44 45 4c 3d 63 68 61 72 20 6c 65 66 74 20 20 20 20 20 5e 47 3d ┆ELETE: DEL=char left ^G=┆ 0x0e4a00…0e4a20 (60, 1, 15) 30 31 20 61 6e 64 20 23 01 42 02 2c 20 6f 72 0d 00 01 b3 09 2b 2d 2a 2f 5e 01 1d 07 00 49 6c 6c ┆01 and # B , or +-*/^ Ill┆ 0x0e4a20…0e4a40 65 67 61 6c 20 6f 70 65 72 61 74 6f 72 2e 20 20 49 74 65 6d 20 6d 75 73 74 20 62 65 20 00 55 6e ┆egal operator. Item must be Un┆ 0x0e4a40…0e4a60 63 6c 6f 73 65 64 20 6c 65 66 74 20 70 61 72 65 6e 74 68 65 73 69 73 01 1d 07 00 0d 01 3f 02 20 ┆closed left parenthesis ? ┆ 0x0e4a60…0e4a80 49 6c 6c 65 67 61 6c 20 63 68 61 72 61 63 74 65 72 01 1d 07 00 54 68 69 73 20 70 72 6f 67 72 61 ┆Illegal character This progra┆ 0x0e4a80…0e4aa0 6d 20 69 73 20 75 73 65 64 20 74 6f 20 64 65 66 69 6e 65 20 61 20 22 66 6f 72 6d 22 20 66 6f 72 ┆m is used to define a "form" for┆ 0x0e4aa0…0e4ac0 20 64 61 74 61 20 65 6e 74 72 79 2e 20 20 54 68 65 20 66 6f 72 6d 2c 20 6d 75 63 68 0d 6c 69 6b ┆ data entry. The form, much lik┆ 0x0e4ac0…0e4ae0 65 20 61 20 74 61 78 20 6f 72 20 6c 69 63 65 6e 73 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 66 ┆e a tax or license application f┆ 0x0e4ae0…0e4b00 6f 72 6d 2c 20 77 69 6c 6c 20 63 6f 6e 73 69 73 74 20 6f 66 20 61 20 6e 75 6d 62 65 72 20 6f 66 ┆orm, will consist of a number of┆ 0x0e4b00…0e4b20 0d 22 62 6f 78 65 73 22 20 74 6f 20 62 65 20 66 69 6c 6c 65 64 20 69 6e 20 61 6e 64 20 62 61 63 ┆ "boxes" to be filled in and bac┆ 0x0e4b20…0e4b40 6b 67 72 6f 75 6e 64 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 74 6f 20 65 78 70 6c 61 69 6e 20 77 ┆kground information to explain w┆ 0x0e4b40…0e4b60 68 61 74 20 67 6f 65 73 20 69 6e 0d 74 68 65 20 62 6f 78 65 73 2e 20 20 41 6e 20 65 78 61 6d 70 ┆hat goes in the boxes. An examp┆ 0x0e4b60…0e4b80 6c 65 20 6f 66 20 64 61 74 61 66 69 65 6c 64 73 20 77 69 74 68 20 62 61 63 6b 67 72 6f 75 6e 64 ┆le of datafields with background┆ 0x0e4b80…0e4ba0 20 65 78 70 6c 61 6e 61 74 69 6f 6e 20 69 73 3a 0d 0d 20 20 20 20 20 46 69 72 73 74 20 4e 61 6d ┆ explanation is: First Nam┆ 0x0e4ba0…0e4bc0 65 3a 20 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 20 20 20 20 20 4c 61 73 74 20 4e 61 6d ┆e: ________________ Last Nam┆ 0x0e4bc0…0e4be0 65 3a 20 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 0d 0d 49 6e 20 74 68 65 20 66 6f 6c ┆e: _________________ In the fol┆ 0x0e4be0…0e4c00 6c 6f 77 69 6e 67 20 70 72 6f 63 65 64 75 72 65 2c 20 79 6f 75 20 77 69 6c 6c 20 62 65 20 61 62 ┆lowing procedure, you will be ab┆ 0x0e4c00…0e4c20 (61, 0, 1) 6f 72 64 01 3b 15 74 68 65 20 43 43 57 20 69 73 20 72 65 61 63 68 65 64 2c 20 63 6f 72 72 65 63 ┆ord ; the CCW is reached, correc┆ 0x0e4c20…0e4c40 74 20 74 68 65 20 43 43 57 2e 29 0d 00 20 30 30 30 20 20 20 4e 6f 20 66 69 6c 65 20 6e 61 6d 65 ┆t the CCW.) 000 No file name┆ 0x0e4c40…0e4c60 20 73 70 65 63 69 66 69 65 64 20 66 6f 72 20 76 65 72 69 66 79 20 6c 69 73 74 01 3b 15 22 45 6e ┆ specified for verify list ; "En┆ 0x0e4c60…0e4c80 74 65 72 20 6c 69 73 74 20 66 69 6c 65 20 6e 61 6d 65 3a 22 20 69 73 20 72 65 61 63 68 65 64 2c ┆ter list file name:" is reached,┆ 0x0e4c80…0e4ca0 20 65 6e 74 65 72 20 6e 61 6d 65 2e 29 0d 00 20 30 30 30 20 20 20 46 69 65 6c 64 20 6d 75 73 74 ┆ enter name.) 000 Field must┆ 0x0e4ca0…0e4cc0 20 62 65 20 64 65 66 69 6e 65 64 20 61 73 20 22 6c 69 73 74 20 76 65 72 69 66 79 22 2c 20 73 69 ┆ be defined as "list verify", si┆ 0x0e4cc0…0e4ce0 6e 63 65 20 66 69 65 6c 64 20 30 30 30 20 72 65 66 65 72 65 6e 63 65 73 20 69 74 01 3b 15 22 56 ┆nce field 000 references it ; "V┆ 0x0e4ce0…0e4d00 65 72 69 66 79 20 66 69 65 6c 64 3f 22 20 69 73 20 72 65 61 63 68 65 64 2c 20 65 6e 74 65 72 20 ┆erify field?" is reached, enter ┆ 0x0e4d00…0e4d20 59 2c 20 4c 2e 29 0d 00 20 30 30 30 20 20 20 55 6e 73 70 65 63 69 66 69 65 64 20 69 6e 64 65 78 ┆Y, L.) 000 Unspecified index┆ 0x0e4d20…0e4d40 20 66 6f 72 20 61 20 6c 69 73 74 20 64 65 72 69 76 65 64 20 66 69 65 6c 64 01 3b 15 22 49 6e 64 ┆ for a list derived field ; "Ind┆ 0x0e4d40…0e4d60 65 78 20 66 69 65 6c 64 20 6e 75 6d 62 65 72 3a 22 20 69 73 20 72 65 61 63 68 65 64 2c 20 65 6e ┆ex field number:" is reached, en┆ 0x0e4d60…0e4d80 74 65 72 0d 20 20 20 20 20 20 20 20 20 69 6e 64 65 78 20 66 69 65 6c 64 20 6f 72 20 74 79 70 65 ┆ter index field or type┆ 0x0e4d80…0e4da0 20 5e 4a 20 66 6f 72 20 61 64 64 69 74 69 6f 6e 61 6c 20 68 65 6c 70 2e 29 0d 00 20 30 30 30 20 ┆ ^J for additional help.) 000 ┆ 0x0e4da0…0e4dc0 20 20 49 6e 63 6f 6d 70 6c 65 74 65 20 65 78 70 72 65 73 73 69 6f 6e 20 66 6f 72 20 63 61 6c 63 ┆ Incomplete expression for calc┆ 0x0e4dc0…0e4de0 75 6c 61 74 65 64 20 66 69 65 6c 64 01 3b 15 65 78 70 72 65 73 73 69 6f 6e 20 65 6e 74 72 79 20 ┆ulated field ; expression entry ┆ 0x0e4de0…0e4e00 69 73 20 72 65 61 63 68 65 64 2c 20 74 68 65 6e 20 63 6f 6d 70 6c 65 74 65 0d 20 20 20 20 20 20 ┆is reached, then complete ┆ 0x0e4e00…0e4e20 (61, 0, 2) 74 69 6f 6e 73 20 74 68 61 74 20 66 6f 6c 6c 6f 77 2c 20 74 68 65 20 61 6e 73 77 65 72 73 20 79 ┆tions that follow, the answers y┆ 0x0e4e20…0e4e40 6f 75 20 67 69 76 65 20 77 69 6c 6c 20 61 70 70 6c 79 0d 74 6f 20 74 68 65 20 63 75 72 72 65 6e ┆ou give will apply to the curren┆ 0x0e4e40…0e4e60 74 20 66 69 65 6c 64 20 6f 6e 6c 79 2e 20 20 54 6f 20 72 65 74 75 72 6e 20 74 6f 20 62 61 63 6b ┆t field only. To return to back┆ 0x0e4e60…0e4e80 67 72 6f 75 6e 64 20 64 65 66 69 6e 69 74 69 6f 6e 2c 20 74 79 70 65 20 5e 43 2e 0d 0d 54 68 69 ┆ground definition, type ^C. Thi┆ 0x0e4e80…0e4ea0 73 20 69 74 65 6d 20 61 6c 6c 6f 77 73 20 79 6f 75 20 74 6f 20 73 70 65 63 69 66 79 20 74 68 65 ┆s item allows you to specify the┆ 0x0e4ea0…0e4ec0 20 6f 72 64 65 72 20 69 6e 20 77 68 69 63 68 20 66 69 65 6c 64 73 20 77 69 6c 6c 20 62 65 0d 70 ┆ order in which fields will be p┆ 0x0e4ec0…0e4ee0 72 6f 63 65 73 73 65 64 20 64 75 72 69 6e 67 20 74 68 65 20 64 61 74 61 20 65 6e 74 72 79 20 70 ┆rocessed during the data entry p┆ 0x0e4ee0…0e4f00 68 61 73 65 2e 0d 00 20 20 4b 65 79 20 6f 72 64 65 72 3a fc 00 54 68 65 20 6b 65 79 20 66 69 65 ┆hase. Key order: The key fie┆ 0x0e4f00…0e4f20 6c 64 28 73 29 20 69 73 2f 61 72 65 20 74 68 65 20 66 69 65 6c 64 28 73 29 20 6f 6e 20 77 68 69 ┆ld(s) is/are the field(s) on whi┆ 0x0e4f20…0e4f40 63 68 20 74 68 65 20 66 69 6c 65 20 69 73 20 73 6f 72 74 65 64 2e 20 20 49 66 0d 74 68 65 72 65 ┆ch the file is sorted. If there┆ 0x0e4f40…0e4f60 20 69 73 20 6d 6f 72 65 20 74 68 61 6e 20 6f 6e 65 20 6b 65 79 20 66 69 65 6c 64 2c 20 74 68 65 ┆ is more than one key field, the┆ 0x0e4f60…0e4f80 79 20 61 72 65 20 63 6f 6d 62 69 6e 65 64 20 66 6f 72 20 73 6f 72 74 69 6e 67 2e 20 20 54 68 65 ┆y are combined for sorting. The┆ 0x0e4f80…0e4fa0 0d 66 69 65 6c 64 20 77 69 74 68 20 6b 65 79 20 6f 72 64 65 72 20 6f 66 20 30 30 31 20 77 69 6c ┆ field with key order of 001 wil┆ 0x0e4fa0…0e4fc0 6c 20 62 65 20 74 68 65 20 6d 6f 73 74 20 73 69 67 6e 69 66 69 63 61 6e 74 20 66 69 65 6c 64 20 ┆l be the most significant field ┆ 0x0e4fc0…0e4fe0 69 6e 20 74 68 65 20 73 6f 72 74 2e 0d 00 20 20 54 69 65 20 62 72 65 61 6b 65 72 20 66 69 65 6c ┆in the sort. Tie breaker fiel┆ 0x0e4fe0…0e5000 64 3f 20 28 59 2f 4e 29 fc 00 41 20 74 69 65 20 62 72 65 61 6b 65 72 20 66 69 65 6c 64 20 69 73 ┆d? (Y/N) A tie breaker field is┆ 0x0e5000…0e5020 (61, 0, 3) 6c 6c 20 76 65 6e 64 6f 72 20 61 64 64 72 65 73 73 20 69 6e 74 6f 20 74 68 69 73 0d 66 69 65 6c ┆ll vendor address into this fiel┆ 0x0e5020…0e5040 64 20 66 72 6f 6d 20 61 20 66 69 6c 65 20 6f 66 20 76 65 6e 64 6f 72 20 6e 61 6d 65 20 61 6e 64 ┆d from a file of vendor name and┆ 0x0e5040…0e5060 20 61 64 64 72 65 73 73 65 73 2e 0d 41 20 63 61 6c 63 75 6c 61 74 65 64 20 66 69 65 6c 64 20 75 ┆ addresses. A calculated field u┆ 0x0e5060…0e5080 73 65 73 20 6f 74 68 65 72 20 66 69 65 6c 64 73 20 61 6e 64 20 63 6f 6e 73 74 61 6e 74 73 20 74 ┆ses other fields and constants t┆ 0x0e5080…0e50a0 6f 20 63 72 65 61 74 65 20 61 20 76 61 6c 75 65 0d 66 6f 72 20 74 68 69 73 20 66 69 65 6c 64 2e ┆o create a value for this field.┆ 0x0e50a0…0e50c0 0d 00 20 20 20 49 6e 64 65 78 20 66 69 65 6c 64 20 6e 75 6d 62 65 72 3a fc 00 45 6e 74 65 72 20 ┆ Index field number: Enter ┆ 0x0e50c0…0e50e0 74 68 65 20 66 69 65 6c 64 20 6e 75 6d 62 65 72 20 74 68 61 74 20 79 6f 75 20 77 61 6e 74 20 74 ┆the field number that you want t┆ 0x0e50e0…0e5100 6f 20 62 65 20 75 73 65 64 20 61 73 20 61 6e 20 69 6e 64 65 78 20 69 6e 74 6f 20 74 68 65 0d 6c ┆o be used as an index into the l┆ 0x0e5100…0e5120 69 73 74 20 6f 72 20 66 69 6c 65 2e 20 46 6f 72 20 74 68 65 20 65 78 61 6d 70 6c 65 20 6f 66 20 ┆ist or file. For the example of ┆ 0x0e5120…0e5140 74 68 65 20 70 72 65 76 69 6f 75 73 20 71 75 65 73 74 69 6f 6e 2c 20 79 6f 75 20 77 6f 75 6c 64 ┆the previous question, you would┆ 0x0e5140…0e5160 20 65 6e 74 65 72 0d 74 68 65 20 66 69 65 6c 64 20 6e 75 6d 62 65 72 20 66 6f 72 20 76 65 6e 64 ┆ enter the field number for vend┆ 0x0e5160…0e5180 6f 72 20 6e 61 6d 65 2e 20 20 49 66 20 79 6f 75 20 64 6f 6e 27 74 20 72 65 6d 65 6d 62 65 72 20 ┆or name. If you don't remember ┆ 0x0e5180…0e51a0 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 0d 74 68 65 20 69 6e 64 65 78 20 66 69 65 6c 64 2c 20 79 ┆the number of the index field, y┆ 0x0e51a0…0e51c0 6f 75 20 63 61 6e 20 75 73 65 20 5e 41 20 6f 72 20 5e 46 20 74 6f 20 6d 6f 76 65 20 74 6f 20 74 ┆ou can use ^A or ^F to move to t┆ 0x0e51c0…0e51e0 68 65 20 69 6e 64 65 78 20 66 69 65 6c 64 20 61 6e 64 0d 67 65 74 20 69 74 73 20 6e 75 6d 62 65 ┆he index field and get its numbe┆ 0x0e51e0…0e5200 72 20 66 72 6f 6d 20 74 68 65 20 73 74 61 74 75 73 20 6c 69 6e 65 2e 0d 00 20 20 20 49 74 65 6d ┆r from the status line. Item┆ 0x0e5200…0e5220 (61, 0, 4) 31 2c 32 29 26 23 37 28 33 29 2c 20 63 6f 6d 62 69 6e 65 73 20 74 68 65 20 66 69 72 73 74 20 74 ┆1,2)(3), combines the first t┆ 0x0e5220…0e5240 77 6f 20 63 68 61 72 61 63 74 65 72 73 20 6f 66 20 23 36 0d 77 69 74 68 20 74 68 65 20 72 65 73 ┆wo characters of #6 with the res┆ 0x0e5240…0e5260 74 20 6f 66 20 23 37 2e 20 20 4e 6f 74 65 20 74 68 61 74 20 74 68 65 20 6e 75 6d 62 65 72 20 6f ┆t of #7. Note that the number o┆ 0x0e5260…0e5280 66 20 63 68 61 72 61 63 74 65 72 73 20 69 73 20 6f 70 74 69 6f 6e 61 6c 2e 0d 00 20 20 20 45 6e ┆f characters is optional. En┆ 0x0e5280…0e52a0 74 65 72 20 61 6c 67 65 62 72 61 69 63 20 65 78 70 72 65 73 73 69 6f 6e 20 66 6f 72 20 66 69 65 ┆ter algebraic expression for fie┆ 0x0e52a0…0e52c0 6c 64 20 63 61 6c 63 75 6c 61 74 69 6f 6e 3a fd 23 30 30 30 3d 00 41 6e 20 61 6c 67 65 62 72 61 ┆ld calculation: #000= An algebra┆ 0x0e52c0…0e52e0 69 63 20 65 78 70 72 65 73 73 69 6f 6e 20 6d 61 79 20 63 6f 6e 74 61 69 6e 20 66 69 65 6c 64 73 ┆ic expression may contain fields┆ 0x0e52e0…0e5300 20 61 6e 64 20 6e 75 6d 65 72 69 63 20 63 6f 6e 73 74 61 6e 74 73 20 63 6f 6d 62 69 6e 65 64 0d ┆ and numeric constants combined ┆ 0x0e5300…0e5320 77 69 74 68 20 74 68 65 20 61 72 69 74 68 6d 65 74 69 63 20 6f 70 65 72 61 74 69 6f 6e 73 3a 20 ┆with the arithmetic operations: ┆ 0x0e5320…0e5340 61 64 64 28 2b 29 2c 20 73 75 62 74 72 61 63 74 28 2d 29 2c 20 6d 75 6c 74 69 70 6c 79 28 2a 29 ┆add(+), subtract(-), multiply(*)┆ 0x0e5340…0e5360 2c 0d 64 69 76 69 64 65 28 2f 29 20 61 6e 64 20 65 78 70 6f 6e 65 6e 74 69 61 74 69 6f 6e 28 5e ┆, divide(/) and exponentiation(^┆ 0x0e5360…0e5380 29 2e 20 20 4f 70 65 72 61 74 69 6f 6e 73 20 61 72 65 20 70 65 72 66 6f 72 6d 65 64 20 66 72 6f ┆). Operations are performed fro┆ 0x0e5380…0e53a0 6d 20 6c 65 66 74 20 74 6f 0d 72 69 67 68 74 20 69 6e 20 74 68 65 20 75 73 75 61 6c 20 6d 61 6e ┆m left to right in the usual man┆ 0x0e53a0…0e53c0 6e 65 72 20 77 69 74 68 20 70 61 72 65 6e 74 68 65 73 65 73 20 72 65 63 6f 67 6e 69 7a 65 64 2e ┆ner with parentheses recognized.┆ 0x0e53c0…0e53e0 0d 46 69 65 6c 64 73 20 61 72 65 20 72 65 70 72 65 73 65 6e 74 65 64 20 62 79 20 66 69 65 6c 64 ┆ Fields are represented by field┆ 0x0e53e0…0e5400 20 6e 75 6d 62 65 72 20 70 72 65 63 65 64 65 64 20 62 79 20 23 20 73 69 67 6e 3a 20 23 30 30 37 ┆ number preceded by # sign: #007┆ 0x0e5400…0e5420 (61, 0, 5) 20 20 20 65 78 70 72 65 73 73 69 6f 6e 20 65 6e 74 72 79 2c 20 73 75 62 73 74 69 74 75 74 69 6e ┆ expression entry, substitutin┆ 0x0e5420…0e5440 67 20 76 61 6c 69 64 20 66 69 65 6c 64 20 6e 75 6d 62 65 72 73 20 66 6f 72 20 61 6c 6c 20 22 3f ┆g valid field numbers for all "?┆ 0x0e5440…0e5460 22 2e 29 0d 00 20 30 30 30 20 20 20 49 6e 76 61 6c 69 64 20 72 61 6e 67 65 20 63 68 65 63 6b 20 ┆".) 000 Invalid range check ┆ 0x0e5460…0e5480 6c 69 6d 69 74 73 01 3b 15 72 61 6e 67 65 20 63 68 65 63 6b 20 6c 69 6d 69 74 73 20 61 72 65 20 ┆limits ; range check limits are ┆ 0x0e5480…0e54a0 72 65 61 63 68 65 64 2c 20 74 68 65 6e 20 65 64 69 74 0d 20 20 20 20 20 20 20 20 20 72 61 6e 67 ┆reached, then edit rang┆ 0x0e54a0…0e54c0 65 20 6c 69 6d 69 74 73 20 73 6f 20 74 68 61 74 20 74 68 65 20 6d 69 6e 69 6d 75 6d 20 76 61 6c ┆e limits so that the minimum val┆ 0x0e54c0…0e54e0 75 65 20 69 73 20 6c 65 73 73 20 74 68 61 6e 20 74 68 65 20 6d 61 78 69 6d 75 6d 2e 29 0d 00 20 ┆ue is less than the maximum.) ┆ 0x0e54e0…0e5500 30 30 30 20 20 20 55 6e 73 70 65 63 69 66 69 65 64 20 76 65 72 69 66 79 2f 63 61 6c 63 75 6c 61 ┆000 Unspecified verify/calcula┆ 0x0e5500…0e5520 74 65 20 6f 72 64 65 72 01 3b 15 6f 72 64 65 72 20 69 73 20 72 65 61 63 68 65 64 2c 20 74 68 65 ┆te order ; order is reached, the┆ 0x0e5520…0e5540 6e 20 65 6e 74 65 72 20 6f 72 64 65 72 2e 29 0d 00 07 20 3f 3f 3f 20 20 20 4b 65 79 20 6c 65 6e ┆n enter order.) ??? Key len┆ 0x0e5540…0e5560 67 74 68 20 69 73 20 67 72 65 61 74 65 72 20 74 68 61 6e 20 31 32 30 20 63 68 61 72 61 63 74 65 ┆gth is greater than 120 characte┆ 0x0e5560…0e5580 72 73 2e 0d 20 20 20 20 20 20 20 28 50 6f 73 69 74 69 6f 6e 20 63 75 72 73 6f 72 20 61 74 20 6b ┆rs. (Position cursor at k┆ 0x0e5580…0e55a0 65 79 20 66 69 65 6c 64 28 73 29 2c 20 75 73 65 20 5e 4b 20 74 6f 20 72 65 6d 6f 76 65 20 22 2a ┆ey field(s), use ^K to remove "*┆ 0x0e55a0…0e55c0 22 2e 29 0d 00 2e 0d 20 20 20 20 20 20 20 20 28 5e 52 2c 20 52 45 54 55 52 4e 20 6b 65 79 20 75 ┆".) . (^R, RETURN key u┆ 0x0e55c0…0e55e0 6e 74 69 6c 20 80 0d 01 b3 15 4c 3d 4c 69 73 74 20 65 72 72 6f 72 73 20 6f 6e 20 4c 53 54 3a 20 ┆ntil L=List errors on LST: ┆ 0x0e55e0…0e5600 64 65 76 69 63 65 01 3a 16 4c 01 a9 15 00 01 b3 15 44 3d 73 61 76 65 20 66 6f 72 6d 20 61 6e 64 ┆device : L D=save form and┆ 0x0e5600…0e5620 (61, 0, 6) 20 61 20 6b 65 79 20 66 69 65 6c 64 20 65 6e 74 65 72 65 64 20 62 79 20 44 61 74 61 53 74 61 72 ┆ a key field entered by DataStar┆ 0x0e5620…0e5640 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 0d 64 61 74 61 20 65 6e 74 72 79 20 6f 70 65 72 61 ┆ instead of the data entry opera┆ 0x0e5640…0e5660 74 65 72 2c 20 74 6f 20 63 72 65 61 74 65 20 61 20 75 6e 69 71 75 65 20 6b 65 79 2e 0d 0d 45 6e ┆ter, to create a unique key. En┆ 0x0e5660…0e5680 74 65 72 20 61 20 59 20 68 65 72 65 20 74 6f 20 68 61 76 65 20 44 61 74 61 53 74 61 72 20 6d 61 ┆ter a Y here to have DataStar ma┆ 0x0e5680…0e56a0 69 6e 74 61 69 6e 20 74 68 65 20 66 69 6c 65 20 62 79 20 65 6e 74 65 72 69 6e 67 20 74 68 65 20 ┆intain the file by entering the ┆ 0x0e56a0…0e56c0 6c 6f 77 65 73 74 0d 6e 75 6d 65 72 69 63 20 76 61 6c 75 65 20 68 65 72 65 20 74 68 61 74 20 77 ┆lowest numeric value here that w┆ 0x0e56c0…0e56e0 69 6c 6c 20 63 72 65 61 74 65 20 61 20 75 6e 69 71 75 65 20 6b 65 79 20 77 68 65 6e 65 76 65 72 ┆ill create a unique key whenever┆ 0x0e56e0…0e5700 20 6e 65 63 65 73 73 61 72 79 2e 0d 00 20 20 52 65 66 75 73 65 20 64 75 70 6c 69 63 61 74 65 20 ┆ necessary. Refuse duplicate ┆ 0x0e5700…0e5720 6b 65 79 73 3f 20 28 59 2f 4e 29 fc 00 54 68 69 73 20 69 74 65 6d 20 69 73 20 75 73 65 64 20 74 ┆keys? (Y/N) This item is used t┆ 0x0e5720…0e5740 6f 20 74 6f 20 63 72 65 61 74 65 20 66 69 6c 65 73 20 77 69 74 68 20 75 6e 69 71 75 65 20 6b 65 ┆o to create files with unique ke┆ 0x0e5740…0e5760 79 73 2e 20 20 49 66 20 74 68 65 20 64 61 74 61 20 65 6e 74 72 79 0d 6f 70 65 72 61 74 6f 72 20 ┆ys. If the data entry operator ┆ 0x0e5760…0e5780 61 74 74 65 6d 70 74 73 20 74 6f 20 65 6e 74 65 72 20 61 20 72 65 63 6f 72 64 20 77 69 74 68 20 ┆attempts to enter a record with ┆ 0x0e5780…0e57a0 74 68 65 20 73 61 6d 65 20 6b 65 79 20 61 73 20 61 20 72 65 63 6f 72 64 20 61 6c 72 65 61 64 79 ┆the same key as a record already┆ 0x0e57a0…0e57c0 0d 69 6e 20 74 68 65 20 66 69 6c 65 2c 20 61 6e 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 77 ┆ in the file, an error message w┆ 0x0e57c0…0e57e0 69 6c 6c 20 62 65 20 67 65 6e 65 72 61 74 65 64 20 61 6e 64 20 74 68 65 20 65 6e 74 72 79 20 72 ┆ill be generated and the entry r┆ 0x0e57e0…0e5800 65 66 75 73 65 64 2e 0d 00 20 20 43 6f 70 79 20 61 74 74 72 69 62 75 74 65 73 20 6f 66 20 66 69 ┆efused. Copy attributes of fi┆ 0x0e5800…0e5820 (61, 0, 7) 20 6e 75 6d 62 65 72 20 69 6e 20 6c 69 73 74 3a fc 00 45 6e 74 65 72 20 74 68 65 20 6e 75 6d 62 ┆ number in list: Enter the numb┆ 0x0e5820…0e5840 65 72 20 6f 66 20 74 68 65 20 69 74 65 6d 20 74 68 61 74 20 79 6f 75 20 77 69 73 68 20 74 6f 20 ┆er of the item that you wish to ┆ 0x0e5840…0e5860 65 78 74 72 61 63 74 20 66 72 6f 6d 20 74 68 65 20 6c 69 73 74 20 6f 72 0d 66 69 6c 65 2e 20 46 ┆extract from the list or file. F┆ 0x0e5860…0e5880 6f 72 20 74 68 65 20 65 78 61 6d 70 6c 65 20 6f 66 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 74 ┆or the example of the previous t┆ 0x0e5880…0e58a0 77 6f 20 71 75 65 73 74 69 6f 6e 73 2c 20 69 66 20 74 68 65 20 76 65 6e 64 6f 72 20 66 69 6c 65 ┆wo questions, if the vendor file┆ 0x0e58a0…0e58c0 0d 68 61 64 20 66 6f 72 20 65 61 63 68 20 76 65 6e 64 6f 72 3a 0d 20 20 20 20 20 6e 61 6d 65 2c ┆ had for each vendor: name,┆ 0x0e58c0…0e58e0 20 61 64 64 72 65 73 73 2c 20 63 69 74 79 20 61 6e 64 20 73 74 61 74 65 0d 79 6f 75 20 77 6f 75 ┆ address, city and state you wou┆ 0x0e58e0…0e5900 6c 64 20 65 6e 74 65 72 20 22 30 30 32 22 20 74 6f 20 65 78 74 72 61 63 74 20 61 64 64 72 65 73 ┆ld enter "002" to extract addres┆ 0x0e5900…0e5920 73 73 20 6f 72 20 22 30 30 33 22 20 74 6f 20 67 65 74 20 63 69 74 79 2f 73 74 61 74 65 2e 0d 00 ┆ss or "003" to get city/state. ┆ 0x0e5920…0e5940 20 20 20 56 65 72 69 66 79 2f 63 61 6c 63 75 6c 61 74 65 20 6f 72 64 65 72 3a fc 00 46 69 65 6c ┆ Verify/calculate order: Fiel┆ 0x0e5940…0e5960 64 20 70 72 6f 63 65 73 73 69 6e 67 20 69 6e 20 76 65 72 69 66 79 20 6d 6f 64 65 20 69 6e 63 6c ┆d processing in verify mode incl┆ 0x0e5960…0e5980 75 64 65 73 20 76 65 72 69 66 69 63 61 74 69 6f 6e 73 20 61 6e 64 20 63 61 6c 63 75 6c 61 74 69 ┆udes verifications and calculati┆ 0x0e5980…0e59a0 6f 6e 73 2e 0d 49 6e 20 67 65 6e 65 72 61 6c 2c 20 63 61 6c 63 75 6c 61 74 69 6f 6e 73 20 73 68 ┆ons. In general, calculations sh┆ 0x0e59a0…0e59c0 6f 75 6c 64 20 66 6f 6c 6c 6f 77 20 76 65 72 69 66 69 63 61 74 69 6f 6e 73 20 75 6e 6c 65 73 73 ┆ould follow verifications unless┆ 0x0e59c0…0e59e0 20 74 68 65 20 72 65 73 75 6c 74 20 6f 66 0d 61 20 63 61 6c 63 75 6c 61 74 69 6f 6e 20 69 73 20 ┆ the result of a calculation is ┆ 0x0e59e0…0e5a00 62 65 69 6e 67 20 75 73 65 64 20 61 73 20 61 20 66 69 6c 65 20 69 6e 64 65 78 20 66 69 65 6c 64 ┆being used as a file index field┆ 0x0e5a00…0e5a20 (61, 0, 8) 0d 43 6f 6e 73 74 61 6e 74 73 20 61 73 20 77 65 6c 6c 20 61 73 20 66 69 65 6c 64 20 63 6f 6e 74 ┆ Constants as well as field cont┆ 0x0e5a20…0e5a40 65 6e 74 73 20 73 68 6f 75 6c 64 20 63 6f 6e 74 61 69 6e 20 6f 6e 6c 79 20 64 69 67 69 74 73 20 ┆ents should contain only digits ┆ 0x0e5a40…0e5a60 61 6e 64 20 6f 70 74 69 6f 6e 61 6c 0d 20 6d 69 6e 75 73 20 73 69 67 6e 20 61 6e 64 20 64 65 63 ┆and optional minus sign and dec┆ 0x0e5a60…0e5a80 69 6d 61 6c 20 70 6f 69 6e 74 3a 20 20 31 32 33 2c 20 2d 31 2e 30 30 35 0d 42 65 66 6f 72 65 20 ┆imal point: 123, -1.005 Before ┆ 0x0e5a80…0e5aa0 61 72 69 74 68 6d 65 74 69 63 20 69 73 20 70 65 72 66 6f 72 6d 65 64 2c 20 65 64 69 74 20 63 68 ┆arithmetic is performed, edit ch┆ 0x0e5aa0…0e5ac0 61 72 61 63 74 65 72 73 20 61 72 65 20 72 65 6d 6f 76 65 64 20 66 72 6f 6d 20 6f 70 65 72 61 6e ┆aracters are removed from operan┆ 0x0e5ac0…0e5ae0 64 73 2e 0d 00 20 20 52 65 71 75 69 72 65 64 3f 20 28 59 2f 4e 29 fc 00 41 20 59 20 61 6e 73 77 ┆ds. Required? (Y/N) A Y answ┆ 0x0e5ae0…0e5b00 65 72 20 68 65 72 65 20 77 69 6c 6c 20 66 6f 72 63 65 20 74 68 65 20 64 61 74 61 20 65 6e 74 72 ┆er here will force the data entr┆ 0x0e5b00…0e5b20 79 20 6f 70 65 72 61 74 6f 72 20 74 6f 20 65 6e 74 65 72 20 73 6f 6d 65 74 68 69 6e 67 0d 69 6e ┆y operator to enter something in┆ 0x0e5b20…0e5b40 74 6f 20 74 68 69 73 20 66 69 65 6c 64 2e 20 20 41 20 4e 20 61 6e 73 77 65 72 20 77 69 6c 6c 20 ┆to this field. A N answer will ┆ 0x0e5b40…0e5b60 61 6c 6c 6f 77 20 74 68 65 20 66 69 65 6c 64 20 74 6f 20 62 65 20 73 6b 69 70 70 65 64 2e 0d 00 ┆allow the field to be skipped. ┆ 0x0e5b60…0e5b80 20 20 52 69 67 68 74 20 6a 75 73 74 69 66 79 3f 20 28 59 2f 4e 29 fc 00 52 69 67 68 74 2f 6c 65 ┆ Right justify? (Y/N) Right/le┆ 0x0e5b80…0e5ba0 66 74 20 6a 75 73 74 69 66 79 20 64 65 74 65 72 6d 69 6e 65 73 20 6f 6e 20 77 68 69 63 68 20 73 ┆ft justify determines on which s┆ 0x0e5ba0…0e5bc0 69 64 65 20 6f 66 20 74 68 65 20 66 69 65 6c 64 20 74 68 65 20 64 61 74 61 20 77 69 6c 6c 0d 62 ┆ide of the field the data will b┆ 0x0e5bc0…0e5be0 65 20 70 6c 61 63 65 64 20 77 68 65 6e 20 69 74 20 64 6f 65 73 20 6e 6f 74 20 66 69 6c 6c 20 74 ┆e placed when it does not fill t┆ 0x0e5be0…0e5c00 68 65 20 66 69 65 6c 64 2e 20 20 41 6c 73 6f 20 69 66 20 74 68 65 20 66 69 65 6c 64 20 69 73 0d ┆he field. Also if the field is ┆ 0x0e5c00…0e5c20 (61, 0, 9) 20 63 68 61 69 6e 20 44 61 74 61 73 74 61 72 01 3a 16 44 2f 53 50 41 43 45 29 3a 20 80 45 6e 74 ┆ chain Datastar : D/SPACE): Ent┆ 0x0e5c20…0e5c40 65 72 20 65 78 69 74 20 63 6f 6d 6d 61 6e 64 3a 0d 20 20 41 3d 41 62 6f 72 74 20 77 69 74 68 6f ┆er exit command: A=Abort witho┆ 0x0e5c40…0e5c60 75 74 20 73 61 76 69 6e 67 20 66 6f 72 6d 20 20 20 20 20 20 20 20 20 20 42 3d 73 61 76 65 20 66 ┆ut saving form B=save f┆ 0x0e5c60…0e5c80 6f 72 6d 20 26 20 42 6f 6f 74 20 6f 70 65 72 61 74 69 6e 67 20 73 79 73 74 65 6d 0d 20 20 43 3d ┆orm & Boot operating system C=┆ 0x0e5c80…0e5ca0 73 61 76 65 20 66 6f 72 6d 20 61 6e 64 20 43 6f 6e 74 69 6e 75 65 20 20 20 20 20 20 20 20 20 20 ┆save form and Continue ┆ 0x0e5ca0…0e5cc0 20 20 20 80 0d 20 20 53 50 41 43 45 3d 63 6f 6e 74 69 6e 75 65 20 77 69 74 68 6f 75 74 20 73 61 ┆ SPACE=continue without sa┆ 0x0e5cc0…0e5ce0 76 69 6e 67 20 66 6f 72 6d 0d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ving form ┆ 0x0e5ce0…0e5d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 41 2f 42 2f 43 2f 80 41 62 61 6e 64 6f 6e ┆ (A/B/C/ Abandon┆ 0x0e5d00…0e5d20 20 66 6f 72 6d 20 65 64 69 74 3f 20 28 59 2f 4e 29 20 00 20 46 4f 52 4d 20 4c 49 53 54 49 4e 47 ┆ form edit? (Y/N) FORM LISTING┆ 0x0e5d20…0e5d40 20 41 4e 44 20 46 49 45 4c 44 20 41 54 54 52 49 42 55 54 45 20 44 45 46 49 4e 49 54 49 4f 4e 53 ┆ AND FIELD ATTRIBUTE DEFINITIONS┆ 0x0e5d40…0e5d60 00 46 49 45 4c 44 20 4e 55 4d 42 45 52 53 0d 0d 00 52 41 4e 47 45 20 43 48 45 43 4b 2c 20 4c 4f ┆ FIELD NUMBERS RANGE CHECK, LO┆ 0x0e5d60…0e5d80 57 0d 0d 00 52 41 4e 47 45 20 43 48 45 43 4b 2c 20 48 49 47 48 0d 0d 00 45 4e 54 52 59 20 43 4f ┆W RANGE CHECK, HIGH ENTRY CO┆ 0x0e5d80…0e5da0 4e 54 52 4f 4c 20 4d 41 53 4b 0d 0d 00 43 4f 4e 54 45 4e 54 20 43 4f 4e 54 52 4f 4c 20 4d 41 53 ┆NTROL MASK CONTENT CONTROL MAS┆ 0x0e5da0…0e5dc0 4b 0d 0d 00 0d 0d 0d 0d 0d 0d 0d 0d 0d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00 02 08 46 ┆K F┆ 0x0e5dc0…0e5de0 49 45 4c 44 20 41 54 54 52 49 42 55 54 45 20 44 45 46 49 4e 49 54 49 4f 4e 53 0d 0d 02 14 51 3d ┆IELD ATTRIBUTE DEFINITIONS Q=┆ 0x0e5de0…0e5e00 72 65 71 75 69 72 65 64 0d 02 14 43 3d 63 68 65 63 6b 20 64 67 74 0d 02 14 4a 3d 72 69 67 68 74 ┆required C=check dgt J=right┆ 0x0e5e00…0e5e20 (61, 0, 10) 65 6c 64 fc 00 54 68 69 73 20 69 74 65 6d 20 69 73 20 75 73 65 64 20 74 6f 20 73 61 76 65 20 74 ┆eld This item is used to save t┆ 0x0e5e20…0e5e40 69 6d 65 20 77 68 65 6e 20 65 6e 74 65 72 69 6e 67 20 66 69 65 6c 64 20 61 74 74 72 69 62 75 74 ┆ime when entering field attribut┆ 0x0e5e40…0e5e60 65 73 2e 20 20 49 66 20 61 6e 6f 74 68 65 72 0d 66 69 65 6c 64 20 69 73 20 64 65 66 69 6e 65 64 ┆es. If another field is defined┆ 0x0e5e60…0e5e80 20 73 69 6d 69 6c 61 72 6c 79 2c 20 65 6e 74 65 72 69 6e 67 20 69 74 73 20 66 69 65 6c 64 20 6e ┆ similarly, entering its field n┆ 0x0e5e80…0e5ea0 75 6d 62 65 72 20 68 65 72 65 20 77 69 6c 6c 20 63 61 75 73 65 20 69 74 73 0d 61 74 74 72 69 62 ┆umber here will cause its attrib┆ 0x0e5ea0…0e5ec0 75 74 65 73 20 74 6f 20 62 65 20 75 73 65 64 20 62 79 20 74 68 69 73 20 66 69 65 6c 64 20 61 6c ┆utes to be used by this field al┆ 0x0e5ec0…0e5ee0 73 6f 2e 0d 00 20 20 46 69 65 6c 64 20 64 65 72 69 76 65 64 3f 20 28 59 2f 4e 29 fc 00 41 20 66 ┆so. Field derived? (Y/N) A f┆ 0x0e5ee0…0e5f00 69 65 6c 64 20 6d 61 79 20 62 65 20 64 65 72 69 76 65 64 20 66 72 6f 6d 20 6f 74 68 65 72 73 20 ┆ield may be derived from others ┆ 0x0e5f00…0e5f20 6f 72 20 66 72 6f 6d 20 61 20 6c 69 73 74 20 6f 72 20 66 69 6c 65 20 69 6e 73 74 65 61 64 20 6f ┆or from a list or file instead o┆ 0x0e5f20…0e5f40 66 20 62 65 69 6e 67 0d 65 6e 74 65 72 65 64 2e 20 20 4e 6f 72 6d 61 6c 6c 79 20 61 20 66 69 65 ┆f being entered. Normally a fie┆ 0x0e5f40…0e5f60 6c 64 20 77 69 6c 6c 20 73 69 6d 70 6c 79 20 62 65 20 65 6e 74 65 72 65 64 20 62 79 20 74 68 65 ┆ld will simply be entered by the┆ 0x0e5f60…0e5f80 20 6f 70 65 72 61 74 6f 72 2e 0d 0d 41 20 59 20 61 6e 73 77 65 72 20 68 65 72 65 20 77 69 6c 6c ┆ operator. A Y answer here will┆ 0x0e5f80…0e5fa0 20 6d 61 6b 65 20 74 68 69 73 20 61 20 64 65 72 69 76 65 64 20 66 69 65 6c 64 2e 20 20 54 68 65 ┆ make this a derived field. The┆ 0x0e5fa0…0e5fc0 20 63 75 72 73 6f 72 20 77 69 6c 6c 20 6e 6f 74 0d 73 74 6f 70 20 68 65 72 65 20 64 75 72 69 6e ┆ cursor will not stop here durin┆ 0x0e5fc0…0e5fe0 67 20 64 61 74 61 20 65 6e 74 72 79 2e 20 20 49 6e 73 74 65 61 64 2c 20 74 68 65 20 66 69 65 6c ┆g data entry. Instead, the fiel┆ 0x0e5fe0…0e6000 64 20 76 61 6c 75 65 20 77 69 6c 6c 20 62 65 20 64 65 66 69 6e 65 64 0d 69 6e 20 74 68 65 20 6e ┆d value will be defined in the n┆ 0x0e6000…0e6020 (61, 0, 11) 2e 20 20 54 68 65 20 66 69 65 6c 64 73 20 63 61 6e 20 62 65 0d 63 61 6c 63 75 6c 61 74 65 64 20 ┆. The fields can be calculated ┆ 0x0e6020…0e6040 69 6e 20 61 6e 79 20 6f 72 64 65 72 2e 20 20 54 68 65 20 6f 72 64 65 72 20 74 68 65 20 63 61 6c ┆in any order. The order the cal┆ 0x0e6040…0e6060 63 75 6c 61 74 69 6f 6e 73 20 61 72 65 20 70 65 72 66 6f 72 6d 65 64 20 69 6e 0d 77 69 6c 6c 20 ┆culations are performed in will ┆ 0x0e6060…0e6080 6d 61 6b 65 20 61 20 64 69 66 66 65 72 65 6e 63 65 20 6f 6e 6c 79 20 77 68 65 6e 20 6f 6e 65 20 ┆make a difference only when one ┆ 0x0e6080…0e60a0 63 61 6c 63 75 6c 61 74 69 6f 6e 20 64 65 70 65 6e 64 73 20 6f 6e 20 74 68 65 20 72 65 73 75 6c ┆calculation depends on the resul┆ 0x0e60a0…0e60c0 74 73 0d 6f 66 20 61 6e 6f 74 68 65 72 2e 0d 00 20 20 20 4e 75 6d 65 72 69 63 2f 53 74 72 69 6e ┆ts of another. Numeric/Strin┆ 0x0e60c0…0e60e0 67 3f 20 28 4e 2f 53 29 fc 00 41 20 6e 75 6d 65 72 69 63 20 63 61 6c 63 75 6c 61 74 65 64 20 66 ┆g? (N/S) A numeric calculated f┆ 0x0e60e0…0e6100 69 65 6c 64 20 75 73 65 73 20 61 6e 20 61 6c 67 65 62 72 61 69 63 20 65 78 70 72 65 73 73 69 6f ┆ield uses an algebraic expressio┆ 0x0e6100…0e6120 6e 20 74 6f 20 64 65 72 69 76 65 20 61 0d 76 61 6c 75 65 20 66 6f 72 20 74 68 65 20 66 69 65 6c ┆n to derive a value for the fiel┆ 0x0e6120…0e6140 64 2e 20 20 54 68 65 20 61 6c 67 65 62 72 61 69 63 20 65 78 70 72 65 73 73 69 6f 6e 20 63 6f 6e ┆d. The algebraic expression con┆ 0x0e6140…0e6160 73 69 73 74 73 20 6f 66 20 66 69 65 6c 64 73 20 61 6e 64 0d 6e 75 6d 65 72 69 63 20 63 6f 6e 73 ┆sists of fields and numeric cons┆ 0x0e6160…0e6180 74 61 6e 74 73 20 63 6f 6d 62 69 6e 65 64 20 61 72 69 74 68 6d 65 74 69 63 61 6c 6c 79 2c 20 75 ┆tants combined arithmetically, u┆ 0x0e6180…0e61a0 73 69 6e 67 20 74 68 65 20 6f 70 65 72 61 74 69 6f 6e 73 3a 0d 20 20 20 61 64 64 28 2b 29 2c 20 ┆sing the operations: add(+), ┆ 0x0e61a0…0e61c0 73 75 62 74 72 61 63 74 28 2d 29 2c 20 6d 75 6c 74 69 70 6c 79 28 2a 29 2c 20 64 69 76 69 64 65 ┆subtract(-), multiply(*), divide┆ 0x0e61c0…0e61e0 28 2f 29 2c 20 65 78 70 6f 6e 65 6e 74 69 61 74 69 6f 6e 28 5e 29 0d 0d 41 20 73 74 72 69 6e 67 ┆(/), exponentiation(^) A string┆ 0x0e61e0…0e6200 20 65 78 70 72 65 73 73 69 6f 6e 20 63 6f 6e 73 69 73 74 73 20 6f 66 20 66 69 65 6c 64 73 2c 20 ┆ expression consists of fields, ┆ 0x0e6200…0e6220 (61, 0, 12) 70 61 64 64 65 64 2c 20 69 74 20 77 69 6c 6c 20 64 65 74 65 72 6d 69 6e 65 20 77 68 69 63 68 20 ┆padded, it will determine which ┆ 0x0e6220…0e6240 73 69 64 65 20 69 74 20 77 69 6c 6c 20 62 65 20 70 61 64 64 65 64 20 66 72 6f 6d 2e 0d 0d 41 20 ┆side it will be padded from. A ┆ 0x0e6240…0e6260 59 20 61 6e 73 77 65 72 20 77 69 6c 6c 20 61 6c 69 67 6e 20 74 68 65 20 64 61 74 61 20 65 6e 74 ┆Y answer will align the data ent┆ 0x0e6260…0e6280 65 72 65 64 20 77 69 74 68 20 74 68 65 20 72 69 67 68 74 20 73 69 64 65 20 6f 66 20 74 68 65 20 ┆ered with the right side of the ┆ 0x0e6280…0e62a0 66 69 65 6c 64 2e 0d 00 20 20 50 61 64 20 66 69 65 6c 64 3f 20 28 59 2f 4e 29 fc 00 41 20 66 69 ┆field. Pad field? (Y/N) A fi┆ 0x0e62a0…0e62c0 65 6c 64 20 63 61 6e 20 62 65 20 65 78 74 65 6e 64 65 64 20 74 6f 20 69 74 27 73 20 66 75 6c 6c ┆eld can be extended to it's full┆ 0x0e62c0…0e62e0 20 6c 65 6e 67 74 68 20 62 79 20 70 61 64 64 69 6e 67 20 6f 6e 20 74 68 65 20 72 69 67 68 74 20 ┆ length by padding on the right ┆ 0x0e62e0…0e6300 6f 72 0d 6c 65 66 74 20 77 69 74 68 20 73 6f 6d 65 20 63 68 61 72 61 63 74 65 72 2e 0d 0d 41 20 ┆or left with some character. A ┆ 0x0e6300…0e6320 59 20 61 6e 73 77 65 72 20 68 65 72 65 20 77 69 6c 6c 20 70 61 64 20 74 68 65 20 66 69 65 6c 64 ┆Y answer here will pad the field┆ 0x0e6320…0e6340 20 77 69 74 68 20 73 6f 6d 65 20 63 68 61 72 61 63 74 65 72 20 69 66 20 69 74 20 69 73 20 6e 6f ┆ with some character if it is no┆ 0x0e6340…0e6360 74 20 66 75 6c 6c 2e 0d 00 20 20 20 45 6e 74 65 72 20 70 61 64 20 63 68 61 72 61 63 74 65 72 3a ┆t full. Enter pad character:┆ 0x0e6360…0e6380 fc 00 41 6e 79 20 63 68 61 72 61 63 74 65 72 20 6d 61 79 20 62 65 20 75 73 65 64 20 74 6f 20 65 ┆ Any character may be used to e┆ 0x0e6380…0e63a0 78 74 65 6e 64 20 74 68 65 20 66 69 65 6c 64 20 74 6f 20 69 74 73 20 6d 61 78 69 6d 75 6d 20 73 ┆xtend the field to its maximum s┆ 0x0e63a0…0e63c0 69 7a 65 2e 0d 43 6f 6d 6d 6f 6e 6c 79 20 75 73 65 64 20 63 68 61 72 61 63 74 65 72 73 20 61 72 ┆ize. Commonly used characters ar┆ 0x0e63c0…0e63e0 65 20 73 70 61 63 65 20 61 6e 64 20 7a 65 72 6f 2e 0d 00 20 20 46 6c 6f 61 74 69 6e 67 20 63 68 ┆e space and zero. Floating ch┆ 0x0e63e0…0e6400 61 72 61 63 74 65 72 3f 20 28 59 2f 4e 29 fc 00 41 20 27 66 6c 6f 61 74 69 6e 67 20 63 68 61 72 ┆aracter? (Y/N) A 'floating char┆ 0x0e6400…0e6420 (61, 0, 13) 20 6a 75 73 74 02 06 2a 20 2a 20 44 20 45 20 52 20 49 20 56 20 45 20 44 20 2a 0d 02 14 57 3d 77 ┆ just * * D E R I V E D * W=w┆ 0x0e6420…0e6440 72 69 74 65 20 65 64 20 63 02 06 2e 20 20 20 20 20 4c 49 53 54 20 20 20 20 43 41 4c 43 20 2a 2a ┆rite ed c . LIST CALC **┆ 0x0e6440…0e6460 2a 2a 2a 2a 56 45 52 49 46 49 43 41 54 49 4f 4e 2a 2a 2a 2a 0d 02 14 4f 3d 6f 70 65 72 20 65 6e ┆****VERIFICATION**** O=oper en┆ 0x0e6460…0e6480 74 72 79 02 06 2e 02 12 2e 0d 02 14 52 3d 72 61 6e 67 65 20 63 68 6b 20 20 50 41 44 2f 20 2e 20 ┆try . . R=range chk PAD/ . ┆ 0x0e6480…0e64a0 49 4e 44 45 58 20 49 54 45 4d 02 07 2e 02 0a 4c 49 53 54 20 56 45 52 49 46 59 0d 46 4c 44 20 4c ┆INDEX ITEM . LIST VERIFY FLD L┆ 0x0e64a0…0e64c0 45 4e 20 4c 49 4e 20 43 4f 4c 20 4b 45 59 20 45 3d 65 64 69 74 20 6d 61 73 6b 20 46 4c 4f 41 54 ┆EN LIN COL KEY E=edit mask FLOAT┆ 0x0e64c0…0e64e0 20 2e 20 46 49 45 4c 44 20 20 4e 55 4d 20 4f 52 44 45 52 20 2e 20 20 20 4f 52 44 45 52 20 20 20 ┆ . FIELD NUM ORDER . ORDER ┆ 0x0e64e0…0e6500 46 49 4c 45 20 4e 41 4d 45 0d 02 14 2e 02 09 2e 02 07 2e 02 12 2e 00 02 08 43 41 4c 43 55 4c 41 ┆FILE NAME . . . . CALCULA┆ 0x0e6500…0e6520 54 49 4f 4e 53 0d 00 20 20 46 69 65 6c 64 20 6f 72 64 65 72 3a fc 00 59 6f 75 20 68 61 76 65 20 ┆TIONS Field order: You have ┆ 0x0e6520…0e6540 65 6e 74 65 72 65 64 20 74 68 65 20 66 69 65 6c 64 20 64 65 66 69 6e 69 74 69 6f 6e 20 70 68 61 ┆entered the field definition pha┆ 0x0e6540…0e6560 73 65 20 62 79 20 74 79 70 69 6e 67 20 61 20 5e 52 2e 20 20 54 68 65 20 66 69 65 6c 64 0d 64 65 ┆se by typing a ^R. The field de┆ 0x0e6560…0e6580 66 69 6e 69 74 69 6f 6e 20 70 68 61 73 65 20 69 73 20 61 20 71 75 65 73 74 69 6f 6e 61 69 72 65 ┆finition phase is a questionaire┆ 0x0e6580…0e65a0 20 77 68 69 63 68 20 61 6c 6c 6f 77 73 20 79 6f 75 20 74 6f 20 73 65 74 20 75 70 20 63 6f 6e 74 ┆ which allows you to set up cont┆ 0x0e65a0…0e65c0 72 6f 6c 73 0d 6f 76 65 72 20 77 68 61 74 20 64 61 74 61 20 77 69 6c 6c 20 62 65 20 61 63 63 65 ┆rols over what data will be acce┆ 0x0e65c0…0e65e0 70 74 65 64 20 64 75 72 69 6e 67 20 74 68 65 20 64 61 74 61 20 65 6e 74 72 79 20 70 6f 72 74 69 ┆pted during the data entry porti┆ 0x0e65e0…0e6600 6f 6e 20 6f 66 20 74 68 69 73 0d 70 72 6f 67 72 61 6d 2e 20 20 49 6e 20 74 68 65 20 71 75 65 73 ┆on of this program. In the ques┆ 0x0e6600…0e6620 (61, 0, 14) 65 78 74 20 66 65 77 20 71 75 65 73 74 69 6f 6e 73 2e 0d 00 20 20 20 41 6c 6c 6f 77 20 6f 70 65 ┆ext few questions. Allow ope┆ 0x0e6620…0e6640 72 61 74 6f 72 20 65 6e 74 72 79 3f 20 28 59 2f 4e 29 fc 00 4e 6f 72 6d 61 6c 6c 79 2c 20 61 20 ┆rator entry? (Y/N) Normally, a ┆ 0x0e6640…0e6660 64 65 72 69 76 65 64 20 66 69 65 6c 64 20 77 69 6c 6c 20 6e 65 65 64 20 6e 6f 20 6f 70 65 72 61 ┆derived field will need no opera┆ 0x0e6660…0e6680 74 6f 72 20 65 6e 74 72 79 2e 20 20 55 73 65 20 6f 66 20 74 68 69 73 20 6f 70 74 69 6f 6e 0d 77 ┆tor entry. Use of this option w┆ 0x0e6680…0e66a0 69 6c 6c 20 61 6c 6c 6f 77 20 74 68 65 20 6f 70 65 72 61 74 6f 72 20 74 6f 20 70 6f 73 69 74 69 ┆ill allow the operator to positi┆ 0x0e66a0…0e66c0 6f 6e 20 74 68 65 20 63 75 72 73 6f 72 20 69 6e 20 74 68 65 20 66 69 65 6c 64 20 61 66 74 65 72 ┆on the cursor in the field after┆ 0x0e66c0…0e66e0 20 69 74 20 68 61 73 0d 62 65 65 6e 20 64 65 72 69 76 65 64 20 69 6e 20 6f 72 64 65 72 20 74 6f ┆ it has been derived in order to┆ 0x0e66e0…0e6700 20 6d 61 6b 65 20 61 64 6a 75 73 74 6d 65 6e 74 73 2e 0d 0d 45 6e 74 65 72 20 61 20 59 20 74 6f ┆ make adjustments. Enter a Y to┆ 0x0e6700…0e6720 20 70 65 72 6d 69 74 20 6f 70 65 72 61 74 6f 72 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 20 74 ┆ permit operator modifications t┆ 0x0e6720…0e6740 6f 20 74 68 69 73 20 66 69 65 6c 64 2e 0d 00 20 20 20 4c 69 73 74 2f 43 61 6c 63 75 6c 61 74 65 ┆o this field. List/Calculate┆ 0x0e6740…0e6760 64 3f 20 28 4c 2f 43 29 fc 00 41 20 6c 69 73 74 20 64 65 72 69 76 65 64 20 66 69 65 6c 64 20 75 ┆d? (L/C) A list derived field u┆ 0x0e6760…0e6780 73 65 73 20 61 6e 6f 74 68 65 72 20 66 69 65 6c 64 20 74 6f 20 69 6e 64 65 78 20 69 6e 74 6f 20 ┆ses another field to index into ┆ 0x0e6780…0e67a0 61 20 6c 69 73 74 20 6f 72 20 66 69 6c 65 0d 61 6e 64 20 65 78 74 72 61 63 74 20 61 20 76 61 6c ┆a list or file and extract a val┆ 0x0e67a0…0e67c0 75 65 20 66 6f 72 20 74 68 69 73 20 66 69 65 6c 64 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c ┆ue for this field. For example,┆ 0x0e67c0…0e67e0 20 79 6f 75 20 63 6f 75 6c 64 20 75 73 65 20 76 65 6e 64 6f 72 0d 6e 61 6d 65 20 28 65 6e 74 65 ┆ you could use vendor name (ente┆ 0x0e67e0…0e6800 72 65 64 20 65 6c 73 65 77 68 65 72 65 20 6f 6e 20 74 68 65 20 66 6f 72 6d 29 20 74 6f 20 70 75 ┆red elsewhere on the form) to pu┆ 0x0e6800…0e6820 (61, 0, 15) 73 75 62 2d 66 69 65 6c 64 73 20 61 6e 64 20 73 74 72 69 6e 67 20 63 6f 6e 73 74 61 6e 74 73 0d ┆sub-fields and string constants ┆ 0x0e6820…0e6840 63 6f 6d 62 69 6e 65 64 20 75 73 69 6e 67 20 74 68 65 20 6a 6f 69 6e 28 26 29 20 6f 70 65 72 61 ┆combined using the join(&) opera┆ 0x0e6840…0e6860 74 69 6f 6e 2e 0d 00 45 6e 74 65 72 20 73 74 72 69 6e 67 20 65 78 70 72 65 73 73 69 6f 6e 20 66 ┆tion. Enter string expression f┆ 0x0e6860…0e6880 6f 72 20 66 69 65 6c 64 3a fd 23 30 30 30 3d 00 41 20 73 74 72 69 6e 67 20 65 78 70 72 65 73 73 ┆or field: #000= A string express┆ 0x0e6880…0e68a0 69 6f 6e 20 6d 61 79 20 63 6f 6e 74 61 69 6e 20 66 69 65 6c 64 73 2c 20 73 75 62 66 69 65 6c 64 ┆ion may contain fields, subfield┆ 0x0e68a0…0e68c0 73 20 6f 72 20 73 74 72 69 6e 67 20 63 6f 6e 73 74 61 6e 74 73 0d 28 6c 69 74 65 72 61 6c 73 29 ┆s or string constants (literals)┆ 0x0e68c0…0e68e0 20 63 6f 6d 62 69 6e 65 64 20 75 73 69 6e 67 20 74 68 65 20 6a 6f 69 6e 28 26 29 20 6f 70 65 72 ┆ combined using the join(&) oper┆ 0x0e68e0…0e6900 61 74 69 6f 6e 2e 0d 46 69 65 6c 64 73 20 61 72 65 20 72 65 70 72 65 73 65 6e 74 65 64 20 62 79 ┆ation. Fields are represented by┆ 0x0e6900…0e6920 20 66 69 65 6c 64 20 6e 75 6d 62 65 72 20 70 72 65 63 65 64 65 64 20 62 79 20 23 20 73 69 67 6e ┆ field number preceded by # sign┆ 0x0e6920…0e6940 3a 20 20 23 37 0d 53 75 62 66 69 65 6c 64 73 20 61 72 65 20 75 73 65 64 20 74 6f 20 65 78 74 72 ┆: #7 Subfields are used to extr┆ 0x0e6940…0e6960 61 63 74 20 61 20 70 6f 72 74 69 6f 6e 20 6f 66 20 61 20 66 69 65 6c 64 2e 20 20 54 68 65 20 66 ┆act a portion of a field. The f┆ 0x0e6960…0e6980 6f 72 6d 20 69 73 3a 0d 20 66 69 65 6c 64 20 6e 75 6d 62 65 72 20 28 66 69 72 73 74 20 63 68 61 ┆orm is: field number (first cha┆ 0x0e6980…0e69a0 72 61 63 74 65 72 20 6e 75 6d 62 65 72 2c 20 6e 75 6d 62 65 72 20 6f 66 20 63 68 61 72 61 63 74 ┆racter number, number of charact┆ 0x0e69a0…0e69c0 65 72 73 29 3a 20 20 23 37 28 31 2c 32 29 0d 4c 69 74 65 72 61 6c 73 20 61 72 65 20 72 65 70 72 ┆ers): #7(1,2) Literals are repr┆ 0x0e69c0…0e69e0 65 73 65 6e 74 65 64 20 62 79 20 63 68 61 72 61 63 74 65 72 73 20 65 6e 63 6c 6f 73 65 64 20 69 ┆esented by characters enclosed i┆ 0x0e69e0…0e6a00 6e 20 22 73 3a 20 20 22 41 30 31 22 0d 54 68 65 20 65 78 70 72 65 73 73 69 6f 6e 2c 20 23 36 28 ┆n "s: "A01" The expression, #6(┆ 0x0e6a00…0e6a20 (61, 1, 1) 61 63 74 65 72 27 20 63 61 6e 20 62 65 20 69 6e 73 65 72 74 65 64 20 69 6e 74 6f 20 74 68 65 20 ┆acter' can be inserted into the ┆ 0x0e6a20…0e6a40 66 69 65 6c 64 2c 20 65 69 74 68 65 72 20 6f 6e 20 74 68 65 0d 6c 65 66 74 20 6f 66 20 74 68 65 ┆field, either on the left of the┆ 0x0e6a40…0e6a60 20 64 61 74 61 20 66 6f 72 20 72 69 67 68 74 20 6a 75 73 74 69 66 69 65 64 20 66 69 65 6c 64 73 ┆ data for right justified fields┆ 0x0e6a60…0e6a80 20 6f 72 20 76 69 63 65 20 76 65 72 73 61 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 0d 69 66 20 ┆ or vice versa. For example if ┆ 0x0e6a80…0e6aa0 27 24 27 20 69 73 20 75 73 65 64 20 61 73 20 61 20 66 6c 6f 61 74 69 6e 67 20 63 68 61 72 61 63 ┆'$' is used as a floating charac┆ 0x0e6aa0…0e6ac0 74 65 72 20 66 6f 72 20 61 20 72 69 67 68 74 20 6a 75 73 74 69 66 69 65 64 20 66 69 65 6c 64 2c ┆ter for a right justified field,┆ 0x0e6ac0…0e6ae0 0d 61 20 64 6f 6c 6c 61 72 20 73 69 67 6e 20 77 69 6c 6c 20 62 65 20 61 64 64 65 64 20 74 6f 20 ┆ a dollar sign will be added to ┆ 0x0e6ae0…0e6b00 74 68 65 20 6c 65 66 74 20 6f 66 20 74 68 65 20 64 61 74 61 20 65 6e 74 65 72 65 64 2e 0d 0d 41 ┆the left of the data entered. A┆ 0x0e6b00…0e6b20 20 59 20 61 6e 73 77 65 72 20 77 69 6c 6c 20 70 72 6f 76 69 64 65 20 61 20 66 6c 6f 61 74 69 6e ┆ Y answer will provide a floatin┆ 0x0e6b20…0e6b40 67 20 63 68 61 72 61 63 74 65 72 20 66 6f 72 20 74 68 65 20 66 69 65 6c 64 2e 0d 00 20 20 20 45 ┆g character for the field. E┆ 0x0e6b40…0e6b60 6e 74 65 72 20 66 6c 6f 61 74 69 6e 67 20 63 68 61 72 61 63 74 65 72 3a fc 00 41 6e 79 20 63 68 ┆nter floating character: Any ch┆ 0x0e6b60…0e6b80 61 72 61 63 74 65 72 20 6d 61 79 20 62 65 20 75 73 65 64 20 61 73 20 61 20 66 6c 6f 61 74 69 6e ┆aracter may be used as a floatin┆ 0x0e6b80…0e6ba0 67 20 63 68 61 72 61 63 74 65 72 2e 20 20 43 6f 6d 6d 6f 6e 6c 79 20 75 73 65 64 63 68 61 72 61 ┆g character. Commonly usedchara┆ 0x0e6ba0…0e6bc0 63 74 65 72 73 20 61 72 65 20 27 24 27 2c 20 61 6e 64 20 27 2b 27 20 6f 72 20 27 2d 27 2e 0d 00 ┆cters are '$', and '+' or '-'. ┆ 0x0e6bc0…0e6be0 20 20 56 65 72 69 66 79 20 66 69 65 6c 64 3f 20 28 59 2f 4e 29 fc 00 41 66 74 65 72 20 74 68 65 ┆ Verify field? (Y/N) After the┆ 0x0e6be0…0e6c00 20 64 61 74 61 20 65 6e 74 72 79 20 66 6f 72 20 61 20 66 6f 72 6d 20 69 73 20 63 6f 6d 70 6c 65 ┆ data entry for a form is comple┆ 0x0e6c00…0e6c20 (61, 1, 2) 6f 6e 20 74 68 61 74 20 64 72 69 76 65 2e 0d 00 20 20 20 20 49 74 65 6d 20 6e 75 6d 62 65 72 20 ┆on that drive. Item number ┆ 0x0e6c20…0e6c40 6f 66 20 66 69 65 6c 64 3a fc 00 54 68 65 20 66 69 6c 65 20 72 65 63 6f 72 64 20 6d 61 79 20 63 ┆of field: The file record may c┆ 0x0e6c40…0e6c60 6f 6e 74 61 69 6e 20 6d 6f 72 65 20 74 68 61 6e 20 6a 75 73 74 20 74 68 65 20 69 74 65 6d 20 79 ┆ontain more than just the item y┆ 0x0e6c60…0e6c80 6f 75 20 77 69 73 68 20 74 6f 20 76 65 72 69 66 79 2e 0d 54 68 69 73 20 61 76 6f 69 64 73 20 75 ┆ou wish to verify. This avoids u┆ 0x0e6c80…0e6ca0 6e 6e 65 63 65 73 73 61 72 79 20 64 61 74 61 20 64 75 70 6c 69 63 61 74 69 6f 6e 20 69 6e 20 64 ┆nnecessary data duplication in d┆ 0x0e6ca0…0e6cc0 61 74 61 20 62 61 73 65 20 73 79 73 74 65 6d 73 20 61 73 20 77 65 6c 6c 0d 61 73 20 70 72 6f 76 ┆ata base systems as well as prov┆ 0x0e6cc0…0e6ce0 69 64 69 6e 67 20 61 20 6d 65 61 6e 73 20 6f 66 20 64 65 72 69 76 69 6e 67 20 61 20 66 69 65 6c ┆iding a means of deriving a fiel┆ 0x0e6ce0…0e6d00 64 20 62 79 20 72 65 74 72 69 65 76 69 6e 67 20 69 74 20 66 72 6f 6d 20 61 6e 6f 74 68 65 72 0d ┆d by retrieving it from another ┆ 0x0e6d00…0e6d20 66 69 6c 65 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 61 20 73 65 70 61 72 61 74 65 20 66 ┆file. For example, a separate f┆ 0x0e6d20…0e6d40 69 6c 65 20 68 61 76 69 6e 67 20 66 6f 72 20 65 61 63 68 20 76 65 6e 64 6f 72 3a 0d 20 20 20 20 ┆ile having for each vendor: ┆ 0x0e6d40…0e6d60 20 20 20 20 20 6e 61 6d 65 2c 20 61 64 64 72 65 73 73 2c 20 63 69 74 79 20 26 20 73 74 61 74 65 ┆ name, address, city & state┆ 0x0e6d60…0e6d80 20 20 52 45 54 55 52 4e 0d 6d 69 67 68 74 20 62 65 20 75 73 65 64 20 74 6f 20 76 65 72 69 66 79 ┆ RETURN might be used to verify┆ 0x0e6d80…0e6da0 20 76 65 6e 64 6f 72 20 6e 61 6d 65 2e 0d 0d 45 6e 74 65 72 20 74 68 65 20 69 74 65 6d 20 6e 75 ┆ vendor name. Enter the item nu┆ 0x0e6da0…0e6dc0 6d 62 65 72 20 77 69 74 68 69 6e 20 72 65 63 6f 72 64 20 74 68 61 74 20 79 6f 75 20 77 69 73 68 ┆mber within record that you wish┆ 0x0e6dc0…0e6de0 20 74 6f 20 6d 61 74 63 68 20 61 67 61 69 6e 73 74 2e 0d 54 68 65 20 66 69 6c 65 20 77 69 6c 6c ┆ to match against. The file will┆ 0x0e6de0…0e6e00 20 68 61 76 65 20 74 6f 20 62 65 20 73 6f 72 74 65 64 20 75 73 69 6e 67 20 74 68 69 73 20 69 74 ┆ have to be sorted using this it┆ 0x0e6e00…0e6e20 (61, 1, 3) 63 74 65 72 73 20 61 72 65 20 63 6f 6d 70 61 72 65 64 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 ┆cters are compared according to ┆ 0x0e6e20…0e6e40 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 65 71 75 65 6e 63 65 3a 0d 20 20 20 20 73 70 61 63 ┆the following sequence: spac┆ 0x0e6e40…0e6e60 65 20 21 22 23 24 25 26 27 28 29 29 2a 2b 2c 2d 2e 2f 30 2d 39 3a 3b 3c 3d 3e 3f 40 41 2d 5a 5b ┆e !"#$%&'())*+,-./0-9:;<=>?@A-ZÆ┆ 0x0e6e60…0e6e80 5c 5d 5e 5f 60 61 2d 7a 7b 7c 7d 7e 20 20 20 20 28 68 69 67 68 65 73 74 29 0d 0d 45 6e 74 65 72 ┆ØÅ^_`a-zæøåü (highest) Enter┆ 0x0e6e80…0e6ea0 20 74 68 65 20 73 6d 61 6c 6c 65 73 74 20 61 63 63 65 70 74 61 62 6c 65 20 76 61 6c 75 65 20 66 ┆ the smallest acceptable value f┆ 0x0e6ea0…0e6ec0 6f 72 20 74 68 69 73 20 66 69 65 6c 64 2e 0d 00 20 20 20 45 6e 74 65 72 2f 63 68 61 6e 67 65 20 ┆or this field. Enter/change ┆ 0x0e6ec0…0e6ee0 74 68 65 20 6d 61 78 69 6d 75 6d 20 66 69 65 6c 64 20 76 61 6c 75 65 3a 00 41 20 66 69 65 6c 64 ┆the maximum field value: A field┆ 0x0e6ee0…0e6f00 20 69 73 20 63 6f 6d 70 61 72 65 64 20 6f 6e 20 61 20 63 68 61 72 61 63 74 65 72 20 62 79 20 63 ┆ is compared on a character by c┆ 0x0e6f00…0e6f20 68 61 72 61 63 74 65 72 20 62 61 73 69 73 20 74 6f 20 64 65 74 65 72 6d 69 6e 65 0d 61 63 63 65 ┆haracter basis to determine acce┆ 0x0e6f20…0e6f40 70 74 61 62 6c 69 74 79 2e 20 43 68 61 72 61 63 74 65 72 73 20 61 72 65 20 63 6f 6d 70 61 72 65 ┆ptablity. Characters are compare┆ 0x0e6f40…0e6f60 64 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 65 71 ┆d according to the following seq┆ 0x0e6f60…0e6f80 75 65 6e 63 65 3a 0d 20 20 20 20 73 70 61 63 65 20 21 22 23 24 25 26 27 28 29 29 2a 2b 2c 2d 2e ┆uence: space !"#$%&'())*+,-.┆ 0x0e6f80…0e6fa0 2f 30 2d 39 3a 3b 3c 3d 3e 3f 40 41 2d 5a 5b 5c 5d 5e 5f 60 61 2d 7a 7b 7c 7d 7e 20 20 20 20 28 ┆/0-9:;<=>?@A-ZÆØÅ^_`a-zæøåü (┆ 0x0e6fa0…0e6fc0 68 69 67 68 65 73 74 29 0d 0d 45 6e 74 65 72 20 74 68 65 20 6c 61 72 67 65 73 74 20 61 63 63 65 ┆highest) Enter the largest acce┆ 0x0e6fc0…0e6fe0 70 74 61 62 6c 65 20 76 61 6c 75 65 20 66 6f 72 20 74 68 69 73 20 66 69 65 6c 64 2e 0d 00 fd 20 ┆ptable value for this field. ┆ 0x0e6fe0…0e7000 20 45 64 69 74 20 6d 61 73 6b 3f 20 28 59 2f 4e 29 fc 00 41 6e 20 65 64 69 74 20 6d 61 73 6b 20 ┆ Edit mask? (Y/N) An edit mask ┆ 0x0e7000…0e7020 (61, 1, 4) 2d 7a 2c 20 73 70 61 63 65 fd 20 20 45 20 3d 20 41 2d 5a 2c 20 30 2d 39 20 20 20 20 20 20 20 20 ┆-z, space E = A-Z, 0-9 ┆ 0x0e7020…0e7040 20 20 20 20 20 20 20 20 20 20 20 65 20 3d 20 61 2d 7a 2c 20 30 2d 39 fd 20 20 46 20 3d 20 41 2d ┆ e = a-z, 0-9 F = A-┆ 0x0e7040…0e7060 5a 2c 20 30 2d 39 2c 20 73 70 61 63 65 20 20 20 20 20 20 20 20 20 20 20 20 66 20 3d 20 61 2d 7a ┆Z, 0-9, space f = a-z┆ 0x0e7060…0e7080 2c 20 30 2d 39 2c 20 73 70 61 63 65 fd 20 20 47 20 3d 20 41 2d 5a 2c 20 30 2d 39 2c 20 61 2d 7a ┆, 0-9, space G = A-Z, 0-9, a-z┆ 0x0e7080…0e70a0 20 2d 3e 20 41 2d 5a 20 20 20 20 20 20 20 67 20 3d 20 41 2d 5a 2c 20 30 2d 39 2c 20 61 2d 7a fd ┆ -> A-Z g = A-Z, 0-9, a-z ┆ 0x0e70a0…0e70c0 20 20 48 20 3d 20 73 61 6d 65 20 61 73 20 47 20 77 69 74 68 20 73 70 61 63 65 20 20 20 20 20 20 ┆ H = same as G with space ┆ 0x0e70c0…0e70e0 20 68 20 3d 20 41 2d 5a 2c 20 30 2d 39 2c 20 61 2d 7a 2c 20 73 70 61 63 65 fd 20 20 39 20 3d 20 ┆ h = A-Z, 0-9, a-z, space 9 = ┆ 0x0e70e0…0e7100 30 2d 39 20 6f 6e 6c 79 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 38 20 3d 20 30 ┆0-9 only 8 = 0┆ 0x0e7100…0e7120 2d 39 2c 20 23 24 25 28 29 2a 2b 2d 2e fd 20 20 2e 20 3d 20 61 6c 69 67 6e 20 64 65 63 69 6d 61 ┆-9, #$%()*+-. . = align decima┆ 0x0e7120…0e7140 6c 20 70 6f 69 6e 74 20 20 20 20 20 20 20 20 5f 20 3d 20 61 6e 79 20 63 68 61 72 61 63 74 65 72 ┆l point _ = any character┆ 0x0e7140…0e7160 20 61 6c 6c 6f 77 65 64 fd fd 45 6e 74 65 72 2f 63 68 61 6e 67 65 20 74 68 65 20 63 6f 6e 74 65 ┆ allowed Enter/change the conte┆ 0x0e7160…0e7180 6e 74 20 63 6f 6e 74 72 6f 6c 20 6d 61 73 6b 3a 00 45 61 63 68 20 63 68 61 72 61 63 74 65 72 20 ┆nt control mask: Each character ┆ 0x0e7180…0e71a0 69 6e 20 74 68 65 20 63 6f 6e 74 65 6e 74 20 6d 61 73 6b 20 63 6f 6e 74 72 6f 6c 73 20 74 68 65 ┆in the content mask controls the┆ 0x0e71a0…0e71c0 20 64 61 74 61 20 63 68 61 72 61 63 74 65 72 73 20 74 68 61 74 20 77 69 6c 6c 0d 62 65 20 61 6c ┆ data characters that will be al┆ 0x0e71c0…0e71e0 6c 6f 77 65 64 20 69 6e 20 74 68 61 74 20 70 6f 73 69 74 69 6f 6e 20 69 6e 20 74 68 65 20 64 61 ┆lowed in that position in the da┆ 0x0e71e0…0e7200 74 61 20 74 6f 20 62 65 20 65 6e 74 65 72 65 64 2e 20 20 46 6f 72 20 69 6e 73 74 61 6e 63 65 2c ┆ta to be entered. For instance,┆ 0x0e7200…0e7220 (61, 1, 5) 74 65 2c 20 74 68 65 20 70 72 6f 67 72 61 6d 20 77 69 6c 6c 20 65 6e 74 65 72 20 61 0d 76 65 72 ┆te, the program will enter a ver┆ 0x0e7220…0e7240 69 66 79 20 70 68 61 73 65 2e 20 20 49 6e 20 74 68 69 73 20 70 68 61 73 65 20 73 6f 6d 65 20 6f ┆ify phase. In this phase some o┆ 0x0e7240…0e7260 72 20 61 6c 6c 20 6f 66 20 74 68 65 20 66 69 65 6c 64 73 20 77 69 6c 6c 20 62 65 20 63 68 65 63 ┆r all of the fields will be chec┆ 0x0e7260…0e7280 6b 65 64 0d 66 6f 72 20 61 63 63 75 72 61 63 79 2e 0d 0d 41 20 59 20 61 6e 73 77 65 72 20 68 65 ┆ked for accuracy. A Y answer he┆ 0x0e7280…0e72a0 72 65 20 77 69 6c 6c 20 63 61 75 73 65 20 74 68 69 73 20 66 69 65 6c 64 20 74 6f 20 62 65 20 63 ┆re will cause this field to be c┆ 0x0e72a0…0e72c0 68 65 63 6b 65 64 20 64 75 72 69 6e 67 20 74 68 65 0d 76 65 72 69 66 69 63 61 74 69 6f 6e 20 70 ┆hecked during the verification p┆ 0x0e72c0…0e72e0 68 61 73 65 2e 0d 00 20 20 20 53 69 67 68 74 2f 52 65 74 79 70 65 2f 4c 69 73 74 3f 20 28 53 2f ┆hase. Sight/Retype/List? (S/┆ 0x0e72e0…0e7300 52 2f 4c 29 fc 00 54 68 65 72 65 20 61 72 65 20 33 20 74 79 70 65 73 20 6f 66 20 76 65 72 69 66 ┆R/L) There are 3 types of verif┆ 0x0e7300…0e7320 69 63 61 74 69 6f 6e 20 61 76 61 69 6c 61 62 6c 65 3a 20 73 69 67 68 74 2c 20 72 65 74 79 70 65 ┆ication available: sight, retype┆ 0x0e7320…0e7340 20 61 6e 64 20 6c 69 73 74 2e 0d 53 69 67 68 74 20 76 65 72 69 66 79 20 6a 75 73 74 20 6d 6f 76 ┆ and list. Sight verify just mov┆ 0x0e7340…0e7360 65 73 20 74 68 65 20 63 75 72 73 6f 72 20 74 6f 20 65 61 63 68 20 66 69 65 6c 64 20 61 6c 6c 6f ┆es the cursor to each field allo┆ 0x0e7360…0e7380 77 69 6e 67 20 74 68 65 20 6f 70 65 72 61 74 6f 72 0d 74 6f 20 74 61 6b 65 20 61 6e 6f 74 68 65 ┆wing the operator to take anothe┆ 0x0e7380…0e73a0 72 20 6c 6f 6f 6b 20 61 74 20 77 68 61 74 20 68 61 73 20 62 65 65 6e 20 65 6e 74 65 72 65 64 2e ┆r look at what has been entered.┆ 0x0e73a0…0e73c0 20 20 52 65 74 79 70 65 20 76 65 72 69 66 79 20 77 69 6c 6c 0d 63 6c 65 61 72 20 74 68 65 20 66 ┆ Retype verify will clear the f┆ 0x0e73c0…0e73e0 69 65 6c 64 20 62 65 66 6f 72 65 20 6d 6f 76 69 6e 67 20 74 68 65 20 63 75 72 73 6f 72 20 74 68 ┆ield before moving the cursor th┆ 0x0e73e0…0e7400 65 72 65 20 61 6e 64 20 66 6f 72 63 65 20 74 68 65 20 6f 70 65 72 61 74 6f 72 0d 74 6f 20 74 79 ┆ere and force the operator to ty┆ 0x0e7400…0e7420 (61, 1, 6) 65 6d 20 61 73 20 74 68 65 20 73 6f 72 74 20 6b 65 79 2e 0d 00 20 20 20 42 61 74 63 68 20 76 65 ┆em as the sort key. Batch ve┆ 0x0e7420…0e7440 72 69 66 79 3f 20 28 59 2f 4e 29 fc 00 42 61 74 63 68 20 76 65 72 69 66 79 20 66 69 65 6c 64 73 ┆rify? (Y/N) Batch verify fields┆ 0x0e7440…0e7460 20 64 6f 20 6e 6f 74 20 67 65 74 20 76 65 72 69 66 69 65 64 20 69 6d 6d 65 64 69 61 74 65 6c 79 ┆ do not get verified immediately┆ 0x0e7460…0e7480 20 61 66 74 65 72 20 64 61 74 61 20 65 6e 74 72 79 2e 0d 49 6e 73 74 65 61 64 2c 20 74 68 65 79 ┆ after data entry. Instead, they┆ 0x0e7480…0e74a0 20 61 72 65 20 6d 61 72 6b 65 64 20 61 73 20 75 6e 2d 76 65 72 69 66 69 65 64 20 61 6e 64 20 66 ┆ are marked as un-verified and f┆ 0x0e74a0…0e74c0 69 6c 65 64 2e 20 20 54 68 69 73 20 61 6c 6c 6f 77 73 20 74 68 65 6d 20 74 6f 0d 62 65 20 76 65 ┆iled. This allows them to be ve┆ 0x0e74c0…0e74e0 72 69 66 69 65 64 20 61 73 20 61 20 62 61 74 63 68 20 6f 6e 20 61 20 64 69 66 66 65 72 65 6e 74 ┆rified as a batch on a different┆ 0x0e74e0…0e7500 20 64 61 79 20 6f 72 20 62 79 20 61 20 64 69 66 66 65 72 65 6e 74 20 6f 70 65 72 61 74 6f 72 20 ┆ day or by a different operator ┆ 0x0e7500…0e7520 69 6e 0d 6f 72 64 65 72 20 74 6f 20 6c 65 73 73 65 6e 20 74 68 65 20 63 68 61 6e 63 65 73 20 6f ┆in order to lessen the chances o┆ 0x0e7520…0e7540 66 20 61 20 6d 69 73 74 61 6b 65 20 69 6e 20 74 68 65 20 65 6e 74 72 79 20 62 65 69 6e 67 20 72 ┆f a mistake in the entry being r┆ 0x0e7540…0e7560 65 70 65 61 74 65 64 20 69 6e 0d 74 68 65 20 76 65 72 69 66 69 63 61 74 69 6f 6e 2e 0d 00 20 20 ┆epeated in the verification. ┆ 0x0e7560…0e7580 20 56 65 72 69 66 79 2f 63 61 6c 63 75 6c 61 74 65 20 6f 72 64 65 72 3a fc 00 46 69 65 6c 64 20 ┆ Verify/calculate order: Field ┆ 0x0e7580…0e75a0 70 72 6f 63 65 73 73 69 6e 67 20 69 6e 20 76 65 72 69 66 79 20 6d 6f 64 65 20 69 6e 63 6c 75 64 ┆processing in verify mode includ┆ 0x0e75a0…0e75c0 65 73 20 76 65 72 69 66 69 63 61 74 69 6f 6e 73 20 61 6e 64 20 63 61 6c 63 75 6c 61 74 69 6f 6e ┆es verifications and calculation┆ 0x0e75c0…0e75e0 73 2e 0d 49 6e 20 67 65 6e 65 72 61 6c 2c 20 76 65 72 69 66 69 63 61 74 69 6f 6e 73 20 73 68 6f ┆s. In general, verifications sho┆ 0x0e75e0…0e7600 75 6c 64 20 70 72 65 63 65 64 65 20 63 61 6c 63 75 6c 61 74 69 6f 6e 73 20 75 6e 6c 65 73 73 20 ┆uld precede calculations unless ┆ 0x0e7600…0e7620 (61, 1, 7) 61 6c 6c 6f 77 73 20 79 6f 75 20 74 6f 20 63 6f 6e 74 72 6f 6c 20 74 68 65 20 65 6e 74 72 79 20 ┆allows you to control the entry ┆ 0x0e7620…0e7640 61 6e 64 20 63 6f 6e 74 65 6e 74 20 6f 66 20 61 20 66 69 65 6c 64 20 6f 6e 0d 61 20 63 68 61 72 ┆and content of a field on a char┆ 0x0e7640…0e7660 61 63 74 65 72 20 62 79 20 63 68 61 72 61 63 74 65 72 20 62 61 73 69 73 2e 20 20 54 68 69 73 20 ┆acter by character basis. This ┆ 0x0e7660…0e7680 69 6e 63 6c 75 64 65 73 20 69 6e 73 65 72 74 69 6e 67 20 63 6f 6e 73 74 61 6e 74 73 2c 0d 63 6f ┆includes inserting constants, co┆ 0x0e7680…0e76a0 70 79 69 6e 67 20 64 61 74 61 20 66 72 6f 6d 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 66 6f 72 ┆pying data from the previous for┆ 0x0e76a0…0e76c0 6d 2c 20 72 65 71 75 69 72 69 6e 67 20 65 6e 74 72 79 20 61 74 20 63 65 72 74 61 69 6e 20 70 6f ┆m, requiring entry at certain po┆ 0x0e76c0…0e76e0 73 69 74 69 6f 6e 73 2c 0d 61 73 20 77 65 6c 6c 20 61 73 20 70 72 6f 76 69 64 69 6e 67 20 63 6f ┆sitions, as well as providing co┆ 0x0e76e0…0e7700 6e 74 72 6f 6c 20 6f 76 65 72 20 74 68 65 20 61 63 74 75 61 6c 20 63 68 61 72 61 63 74 65 72 73 ┆ntrol over the actual characters┆ 0x0e7700…0e7720 20 74 68 61 74 20 6d 61 79 20 62 65 0d 65 6e 74 65 72 65 64 20 61 74 20 65 61 63 68 20 70 6f 73 ┆ that may be entered at each pos┆ 0x0e7720…0e7740 69 74 69 6f 6e 2e 0d 0d 41 20 59 20 61 6e 73 77 65 72 20 77 69 6c 6c 20 61 6c 6c 6f 77 20 79 6f ┆ition. A Y answer will allow yo┆ 0x0e7740…0e7760 75 20 74 6f 20 65 6e 74 65 72 20 61 6e 20 65 64 69 74 20 6d 61 73 6b 20 69 6e 20 74 77 6f 20 73 ┆u to enter an edit mask in two s┆ 0x0e7760…0e7780 74 65 70 73 3a 20 20 65 6e 74 72 79 0d 61 6e 64 20 63 6f 6e 74 65 6e 74 20 63 6f 6e 74 72 6f 6c ┆teps: entry and content control┆ 0x0e7780…0e77a0 2e 0d 00 fd 45 6e 74 72 79 20 43 6f 6e 74 72 6f 6c 20 43 68 61 72 61 63 74 65 72 20 43 6f 64 65 ┆. Entry Control Character Code┆ 0x0e77a0…0e77c0 73 3a fd fd 20 20 21 20 3d 20 6d 75 73 74 20 65 6e 74 65 72 20 61 20 63 68 61 72 61 63 74 65 72 ┆s: ! = must enter a character┆ 0x0e77c0…0e77e0 20 20 20 20 20 20 5f 20 3d 20 6d 61 79 20 65 6e 74 65 72 20 6f 72 20 6c 65 61 76 65 20 62 6c 61 ┆ _ = may enter or leave bla┆ 0x0e77e0…0e7800 6e 6b fd 20 20 58 20 3d 20 61 75 74 6f 6d 61 74 69 63 20 63 6f 70 79 20 20 20 20 20 20 20 20 20 ┆nk X = automatic copy ┆ 0x0e7800…0e7820 (61, 1, 8) 0d 61 20 63 6f 6e 74 65 6e 74 20 61 6e 64 20 65 6e 74 72 79 20 63 6f 6e 74 72 6f 6c 20 6d 61 73 ┆ a content and entry control mas┆ 0x0e7820…0e7840 6b 20 66 6f 72 20 61 20 70 68 6f 6e 65 20 6e 75 6d 62 65 72 20 69 73 3a 0d 20 20 20 20 20 20 20 ┆k for a phone number is: ┆ 0x0e7840…0e7860 20 20 20 20 20 20 20 20 20 39 39 39 2d 39 39 39 39 20 20 20 20 20 20 20 20 28 63 6f 6e 74 65 6e ┆ 999-9999 (conten┆ 0x0e7860…0e7880 74 20 6d 61 73 6b 29 0d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 21 21 21 22 21 21 21 21 ┆t mask) !!!"!!!!┆ 0x0e7880…0e78a0 20 20 20 20 20 20 20 20 28 65 6e 74 72 79 20 6d 61 73 6b 29 0d 54 68 65 20 22 39 22 73 20 77 69 ┆ (entry mask) The "9"s wi┆ 0x0e78a0…0e78c0 6c 6c 20 70 65 72 6d 69 74 20 6f 6e 6c 79 20 64 69 67 69 74 73 20 69 6e 20 74 68 6f 73 65 20 70 ┆ll permit only digits in those p┆ 0x0e78c0…0e78e0 6f 73 69 74 69 6f 6e 73 20 61 6e 64 20 61 20 22 2d 22 20 77 69 6c 6c 0d 61 75 74 6f 6d 61 74 69 ┆ositions and a "-" will automati┆ 0x0e78e0…0e7900 63 61 6c 6c 79 20 62 65 20 69 6e 73 65 72 74 65 64 20 77 68 65 72 65 20 69 74 20 62 65 6c 6f 6e ┆cally be inserted where it belon┆ 0x0e7900…0e7920 67 73 2e 0d 00 fd 20 20 52 65 63 6f 72 64 20 65 64 69 74 20 63 68 61 72 61 63 74 65 72 73 3f 20 ┆gs. Record edit characters? ┆ 0x0e7920…0e7940 28 59 2f 4e 29 fc 00 45 64 69 74 20 63 68 61 72 61 63 74 65 72 73 20 61 72 65 20 70 61 64 2f 66 ┆(Y/N) Edit characters are pad/f┆ 0x0e7940…0e7960 6c 6f 61 74 20 63 68 61 72 61 63 74 65 72 73 20 61 6e 64 20 63 6f 6e 73 74 61 6e 74 73 20 66 72 ┆loat characters and constants fr┆ 0x0e7960…0e7980 6f 6d 20 74 68 65 20 65 64 69 74 20 6d 61 73 6b 2e 0d 55 73 75 61 6c 6c 79 20 74 68 65 79 20 61 ┆om the edit mask. Usually they a┆ 0x0e7980…0e79a0 72 65 20 72 65 6d 6f 76 65 64 20 66 72 6f 6d 20 74 68 65 20 66 69 65 6c 64 20 62 65 66 6f 72 65 ┆re removed from the field before┆ 0x0e79a0…0e79c0 20 74 68 65 20 64 61 74 61 20 69 73 20 72 65 63 6f 72 64 65 64 2e 0d 0d 41 20 59 20 61 6e 73 77 ┆ the data is recorded. A Y answ┆ 0x0e79c0…0e79e0 65 72 20 68 65 72 65 20 77 69 6c 6c 20 69 6e 63 6c 75 64 65 20 65 64 69 74 20 63 68 61 72 61 63 ┆er here will include edit charac┆ 0x0e79e0…0e7a00 74 65 72 73 20 61 73 20 77 65 6c 6c 20 61 73 20 64 61 74 61 20 69 6e 20 74 68 65 20 64 69 73 6b ┆ters as well as data in the disk┆ 0x0e7a00…0e7a20 (61, 1, 9) 70 65 20 74 68 65 20 73 61 6d 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 67 61 69 6e 2e 20 20 ┆pe the same information again. ┆ 0x0e7a20…0e7a40 4c 69 73 74 20 76 65 72 69 66 79 20 77 69 6c 6c 20 63 68 65 63 6b 20 74 68 65 20 66 69 65 6c 64 ┆List verify will check the field┆ 0x0e7a40…0e7a60 0d 61 67 61 69 6e 73 74 20 61 20 6c 69 73 74 20 6f 66 20 63 6f 72 72 65 63 74 20 66 69 65 6c 64 ┆ against a list of correct field┆ 0x0e7a60…0e7a80 20 65 6e 74 72 69 65 73 2e 20 20 49 6e 20 6c 69 73 74 20 76 65 72 69 66 79 2c 20 74 68 65 20 6c ┆ entries. In list verify, the l┆ 0x0e7a80…0e7aa0 69 73 74 20 69 73 0d 6b 65 70 74 20 69 6e 20 61 20 73 65 70 61 72 61 74 65 20 66 69 6c 65 20 77 ┆ist is kept in a separate file w┆ 0x0e7aa0…0e7ac0 68 69 63 68 20 6d 61 79 20 62 65 20 70 72 65 70 61 72 65 64 20 62 79 20 61 6e 79 20 6d 65 61 6e ┆hich may be prepared by any mean┆ 0x0e7ac0…0e7ae0 73 2e 0d 00 20 20 20 20 4b 65 65 70 20 66 69 6c 65 20 69 6e 20 6d 65 6d 6f 72 79 20 64 75 72 69 ┆s. Keep file in memory duri┆ 0x0e7ae0…0e7b00 6e 67 20 64 61 74 61 20 65 6e 74 72 79 3f 20 28 59 2f 4e 29 20 00 49 66 20 74 68 65 20 66 69 6c ┆ng data entry? (Y/N) If the fil┆ 0x0e7b00…0e7b20 65 20 69 73 20 73 6d 61 6c 6c 20 65 6e 6f 75 67 68 20 28 6c 65 73 73 20 74 68 61 6e 20 35 30 30 ┆e is small enough (less than 500┆ 0x0e7b20…0e7b40 20 63 68 61 72 61 63 74 65 72 73 29 20 69 74 20 77 69 6c 6c 20 61 63 74 75 61 6c 6c 79 0d 73 61 ┆ characters) it will actually sa┆ 0x0e7b40…0e7b60 76 65 20 73 70 61 63 65 20 74 6f 20 6b 65 65 70 20 69 74 20 61 6c 6c 20 69 6e 20 6d 65 6d 65 6f ┆ve space to keep it all in memeo┆ 0x0e7b60…0e7b80 72 79 20 64 75 72 69 6e 67 20 64 61 74 61 20 65 6e 74 72 79 2e 20 20 49 74 20 77 69 6c 6c 20 61 ┆ry during data entry. It will a┆ 0x0e7b80…0e7ba0 6c 77 61 79 73 0d 73 70 65 65 64 20 75 70 20 70 72 6f 63 65 73 73 69 6e 67 20 74 6f 20 6b 65 65 ┆lways speed up processing to kee┆ 0x0e7ba0…0e7bc0 70 20 69 74 20 69 6e 20 6d 65 6d 6f 72 79 2e 0d 0d 41 20 59 20 61 6e 73 77 65 72 20 68 65 72 65 ┆p it in memory. A Y answer here┆ 0x0e7bc0…0e7be0 20 77 69 6c 6c 20 63 61 75 73 65 20 74 68 65 20 65 6e 74 69 72 65 20 6c 69 73 74 20 66 69 6c 65 ┆ will cause the entire list file┆ 0x0e7be0…0e7c00 20 74 6f 20 62 65 20 62 72 6f 75 67 68 74 20 69 6e 74 6f 0d 6d 65 6d 6f 72 79 20 62 65 66 6f 72 ┆ to be brought into memory befor┆ 0x0e7c00…0e7c20 (61, 1, 10) 74 68 65 20 72 65 73 75 6c 74 20 6f 66 0d 61 20 63 61 6c 63 75 6c 61 74 69 69 6f 6e 20 69 73 20 ┆the result of a calculatiion is ┆ 0x0e7c20…0e7c40 62 65 69 6e 67 20 75 73 65 64 20 61 73 20 61 20 66 69 6c 65 20 69 6e 64 65 78 20 66 69 65 6c 64 ┆being used as a file index field┆ 0x0e7c40…0e7c60 2e 20 20 54 68 65 20 66 69 65 6c 64 73 20 63 61 6e 20 62 65 76 65 72 69 66 69 65 64 20 69 6e 20 ┆. The fields can beverified in ┆ 0x0e7c60…0e7c80 61 6e 79 20 6f 72 64 65 72 2e 20 20 54 68 65 20 66 69 65 6c 64 20 77 69 74 68 20 76 65 72 69 66 ┆any order. The field with verif┆ 0x0e7c80…0e7ca0 79 20 6f 72 64 65 72 20 30 30 31 20 77 69 6c 6c 20 62 65 20 76 65 72 69 66 69 65 64 0d 66 69 72 ┆y order 001 will be verified fir┆ 0x0e7ca0…0e7cc0 73 74 2e 0d 00 fd 20 20 43 68 65 63 6b 20 64 69 67 69 74 3f 20 28 59 2f 4e 29 fc 00 41 20 63 68 ┆st. Check digit? (Y/N) A ch┆ 0x0e7cc0…0e7ce0 65 63 6b 20 64 69 67 69 74 20 69 73 20 61 20 64 69 67 69 74 20 61 64 64 65 64 20 6f 6e 20 74 6f ┆eck digit is a digit added on to┆ 0x0e7ce0…0e7d00 20 74 68 65 20 65 6e 64 20 6f 66 20 61 20 6e 75 6d 65 72 69 63 20 66 69 65 6c 64 20 69 6e 20 73 ┆ the end of a numeric field in s┆ 0x0e7d00…0e7d20 75 63 68 0d 61 20 77 61 79 20 73 6f 20 61 73 20 74 6f 20 6d 61 6b 65 20 74 68 65 20 64 69 67 69 ┆uch a way so as to make the digi┆ 0x0e7d20…0e7d40 74 73 20 6f 66 20 74 68 65 20 66 69 65 6c 64 20 6f 62 65 79 20 73 6f 6d 65 20 72 75 6c 65 2e 20 ┆ts of the field obey some rule. ┆ 0x0e7d40…0e7d60 20 49 74 20 69 73 20 75 73 65 64 0d 74 6f 20 69 6d 70 72 6f 76 65 20 74 68 65 20 61 63 63 75 72 ┆ It is used to improve the accur┆ 0x0e7d60…0e7d80 61 63 79 20 6f 66 20 65 6e 74 65 72 65 64 20 64 61 74 61 2c 20 73 69 6e 63 65 20 69 6e 63 6f 72 ┆acy of entered data, since incor┆ 0x0e7d80…0e7da0 72 65 63 74 20 64 61 74 61 20 69 73 20 6e 6f 74 0d 6c 69 6b 65 6c 79 20 74 6f 20 6f 62 65 79 20 ┆rect data is not likely to obey ┆ 0x0e7da0…0e7dc0 74 68 65 20 72 75 6c 65 2e 20 20 54 68 65 20 72 75 6c 65 20 69 6e 20 44 61 74 61 53 74 61 72 20 ┆the rule. The rule in DataStar ┆ 0x0e7dc0…0e7de0 69 73 20 74 68 61 74 20 74 68 65 20 66 69 65 6c 64 20 6d 75 73 74 0d 62 65 20 64 69 76 69 73 61 ┆is that the field must be divisa┆ 0x0e7de0…0e7e00 62 6c 65 20 62 79 20 31 31 2e 0d 0d 45 6e 74 65 72 20 59 20 68 65 72 65 20 74 6f 20 72 65 71 75 ┆ble by 11. Enter Y here to requ┆ 0x0e7e00…0e7e20 (61, 1, 11) 20 20 20 20 20 59 20 3d 20 61 75 74 6f 2d 63 6f 70 79 2f 6d 61 79 20 65 6e 74 65 72 fd 20 20 22 ┆ Y = auto-copy/may enter "┆ 0x0e7e20…0e7e40 20 3d 20 63 6f 6e 73 74 61 6e 74 20 69 6e 20 74 68 69 73 20 70 6f 73 69 74 69 6f 6e 20 20 20 7e ┆ = constant in this position ü┆ 0x0e7e40…0e7e60 20 3d 20 63 6f 6e 73 74 61 6e 74 2f 6d 61 79 20 65 6e 74 65 72 fd 20 20 27 20 3d 20 63 6f 6e 73 ┆ = constant/may enter ' = cons┆ 0x0e7e60…0e7e80 74 61 6e 74 20 69 66 20 64 61 74 61 20 6f 6e 20 20 20 20 20 20 20 20 20 2f 20 3d 20 63 6f 6e 73 ┆tant if data on / = cons┆ 0x0e7e80…0e7ea0 74 61 6e 74 20 69 66 20 64 61 74 61 20 6f 6e 20 6f 6e 65 fd 20 20 20 20 20 20 62 6f 74 68 20 73 ┆tant if data on one both s┆ 0x0e7ea0…0e7ec0 69 64 65 73 20 6f 66 20 63 6f 6e 73 74 61 6e 74 20 20 20 20 20 20 20 20 20 20 73 69 64 65 20 6f ┆ides of constant side o┆ 0x0e7ec0…0e7ee0 6e 6c 79 fd fd 45 6e 74 65 72 2f 63 68 61 6e 67 65 20 74 68 65 20 65 6e 74 72 79 20 63 6f 6e 74 ┆nly Enter/change the entry cont┆ 0x0e7ee0…0e7f00 72 6f 6c 20 6d 61 73 6b 3a 00 54 68 65 20 65 6e 74 72 79 20 63 6f 6e 74 72 6f 6c 20 6d 61 73 6b ┆rol mask: The entry control mask┆ 0x0e7f00…0e7f20 20 75 73 65 73 20 6f 6e 65 20 6f 66 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 68 61 72 61 ┆ uses one of the following chara┆ 0x0e7f20…0e7f40 63 74 65 72 73 3a 20 21 5f 58 59 22 27 7e 2f 0d 69 6e 20 65 61 63 68 20 70 6f 73 69 74 69 6f 6e ┆cters: !_XY"'ü/ in each position┆ 0x0e7f40…0e7f60 20 6f 66 20 74 68 65 20 66 69 65 6c 64 2e 20 20 54 68 69 73 20 61 6c 6c 6f 77 73 20 79 6f 75 20 ┆ of the field. This allows you ┆ 0x0e7f60…0e7f80 74 6f 20 63 6f 6e 74 72 6f 6c 20 77 68 65 74 68 65 72 20 6f 72 0d 6e 6f 74 20 74 68 65 72 65 20 ┆to control whether or not there ┆ 0x0e7f80…0e7fa0 6d 75 73 74 20 62 65 20 64 61 74 61 20 74 68 65 72 65 2c 20 61 73 20 77 65 6c 6c 20 61 73 20 77 ┆must be data there, as well as w┆ 0x0e7fa0…0e7fc0 68 65 72 65 20 69 74 20 63 6f 6d 65 73 20 66 72 6f 6d 2e 20 20 54 68 65 0d 63 6f 6e 73 74 61 6e ┆here it comes from. The constan┆ 0x0e7fc0…0e7fe0 74 73 20 61 72 65 20 73 69 6d 70 6c 79 20 63 68 61 72 61 63 74 65 72 73 20 74 68 61 74 20 79 6f ┆ts are simply characters that yo┆ 0x0e7fe0…0e8000 75 20 77 69 6c 6c 20 73 75 70 70 6c 79 20 69 6e 20 74 68 65 20 6e 65 78 74 20 71 75 65 73 74 69 ┆u will supply in the next questi┆ 0x0e8000…0e8020 (61, 1, 12) 0d 72 65 63 6f 72 64 2e 0d 00 20 66 72 6f 6d 20 74 68 65 20 66 69 65 6c 64 20 62 65 66 6f 72 65 ┆ record. from the field before┆ 0x0e8020…0e8040 20 74 68 65 20 64 61 74 61 20 69 73 20 72 65 63 6f 72 64 65 64 2e 0d 0d 41 20 59 20 61 6e 73 77 ┆ the data is recorded. A Y answ┆ 0x0e8040…0e8060 65 72 20 68 65 72 65 20 77 69 6c 6c 20 69 6e 63 6c 75 64 65 20 65 64 69 74 20 63 68 61 72 61 63 ┆er here will include edit charac┆ 0x0e8060…0e8080 74 65 72 73 20 61 73 20 77 65 6c 6c 20 61 73 20 64 61 74 61 20 69 6e 20 74 68 65 20 64 69 73 6b ┆ters as well as data in the disk┆ 0x0e8080…0e80a0 66 69 65 64 20 66 69 65 6c 64 2c 0d 61 20 64 6f 6c 6c 61 72 20 73 69 67 6e 20 77 69 6c 6c 20 62 ┆fied field, a dollar sign will b┆ 0x0e80a0…0e80c0 65 20 61 64 64 65 64 20 74 6f 20 74 68 65 20 6c 65 66 74 20 6f 66 20 74 68 65 20 64 61 74 61 20 ┆e added to the left of the data ┆ 0x0e80c0…0e80e0 65 6e 74 65 72 65 64 2e 0d 0d 41 20 59 20 61 6e 73 77 65 72 20 77 69 6c 6c 20 70 72 6f 76 69 64 ┆entered. A Y answer will provid┆ 0x0e80e0…0e8100 65 20 61 20 66 6c 6f 61 74 69 6e 67 20 63 68 61 72 61 63 74 65 72 20 66 6f 72 20 74 68 65 20 66 ┆e a floating character for the f┆ 0x0e8100…0e8120 67 73 2e 0d 00 fd 20 20 52 65 63 6f 72 64 20 65 64 69 74 20 63 68 61 72 61 63 74 65 72 73 3f 20 ┆gs. Record edit characters? ┆ 0x0e8120…0e8140 28 59 2f 4e 29 fc 00 45 64 69 74 20 63 68 61 72 61 63 74 65 72 73 20 61 72 65 20 70 61 64 2f 66 ┆(Y/N) Edit characters are pad/f┆ 0x0e8140…0e8160 6c 6f 61 74 20 63 68 61 72 61 63 74 65 72 73 20 61 6e 64 20 63 6f 6e 73 74 61 6e 74 73 20 66 72 ┆loat characters and constants fr┆ 0x0e8160…0e8180 6f 6d 20 74 68 65 20 65 64 69 74 20 6d 61 73 6b 2e 0d 55 73 75 61 6c 6c 79 20 74 68 65 79 20 61 ┆om the edit mask. Usually they a┆ 0x0e8180…0e81a0 72 65 20 72 65 6d 6f 76 65 64 20 66 72 6f 6d 20 74 68 65 20 66 69 65 6c 64 20 62 65 66 6f 72 65 ┆re removed from the field before┆ 0x0e81a0…0e81c0 20 74 68 65 20 64 61 74 61 20 69 73 20 72 65 63 6f 72 64 65 64 2e 0d 0d 41 20 59 20 61 6e 73 77 ┆ the data is recorded. A Y answ┆ 0x0e81c0…0e81e0 65 72 20 68 65 72 65 20 77 69 6c 6c 20 69 6e 63 6c 75 64 65 20 65 64 69 74 20 63 68 61 72 61 63 ┆er here will include edit charac┆ 0x0e81e0…0e8200 74 65 72 73 20 61 73 20 77 65 6c 6c 20 61 73 20 64 61 74 61 20 69 6e 20 74 68 65 20 64 69 73 6b ┆ters as well as data in the disk┆ 0x0e8200…0e8220 (61, 1, 13) 65 20 64 61 74 61 20 65 6e 74 72 79 2c 20 69 66 20 69 74 20 66 69 74 73 2e 20 20 41 20 4e 20 61 ┆e data entry, if it fits. A N a┆ 0x0e8220…0e8240 6e 73 77 65 72 2c 20 68 6f 77 65 76 65 72 2c 20 6d 61 79 20 62 65 0d 72 65 71 75 69 72 65 64 20 ┆nswer, however, may be required ┆ 0x0e8240…0e8260 68 65 72 65 20 74 6f 20 6c 65 61 76 65 20 65 6e 6f 75 67 68 20 72 6f 6f 6d 20 66 6f 72 20 6f 74 ┆here to leave enough room for ot┆ 0x0e8260…0e8280 68 65 72 20 66 69 6c 65 73 20 74 6f 20 62 65 20 6c 6f 61 64 65 64 2e 0d 00 20 20 20 20 45 6e 74 ┆her files to be loaded. Ent┆ 0x0e8280…0e82a0 65 72 20 6c 69 73 74 20 66 69 6c 65 20 6e 61 6d 65 3a fc 00 41 20 66 69 6c 65 20 6e 61 6d 65 20 ┆er list file name: A file name ┆ 0x0e82a0…0e82c0 69 73 20 31 2d 38 20 6c 65 74 74 65 72 73 2f 64 69 67 69 74 73 2e 0d 0d 45 6e 74 65 72 20 74 68 ┆is 1-8 letters/digits. Enter th┆ 0x0e82c0…0e82e0 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 66 69 6c 65 20 74 68 61 74 20 68 61 73 20 61 20 6c 69 ┆e name of the file that has a li┆ 0x0e82e0…0e8300 73 74 20 6f 66 20 63 6f 72 72 65 63 74 20 65 6e 74 72 69 65 73 20 66 6f 72 20 74 68 69 73 0d 66 ┆st of correct entries for this f┆ 0x0e8300…0e8320 69 65 6c 64 2e 0d 00 20 20 20 20 45 6e 74 65 72 20 6c 69 73 74 20 66 69 6c 65 20 64 69 73 6b 20 ┆ield. Enter list file disk ┆ 0x0e8320…0e8340 64 72 69 76 65 20 28 2d 2f 41 2f 42 2e 2e 2e 29 3a 20 20 20 20 20 20 00 45 6e 74 65 72 20 22 41 ┆drive (-/A/B...): Enter "A┆ 0x0e8340…0e8360 2d 50 22 20 74 6f 20 73 70 65 63 69 66 69 79 20 61 20 64 69 73 6b 20 64 72 69 76 65 20 74 6f 20 ┆-P" to specifiy a disk drive to ┆ 0x0e8360…0e8380 75 73 65 20 66 6f 72 20 74 68 65 20 76 65 72 69 66 69 63 61 74 69 6f 6e 20 66 69 6c 65 2e 0d 45 ┆use for the verification file. E┆ 0x0e8380…0e83a0 6e 74 65 72 20 22 2d 22 20 74 6f 20 75 73 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 64 72 69 76 ┆nter "-" to use the current driv┆ 0x0e83a0…0e83c0 65 2e 20 20 49 6e 20 62 6f 74 68 20 63 61 73 65 73 2c 20 74 68 65 20 6f 70 65 72 61 74 6f 72 20 ┆e. In both cases, the operator ┆ 0x0e83c0…0e83e0 77 69 6c 6c 20 62 65 0d 61 73 6b 65 64 20 74 6f 20 73 75 70 70 6c 79 20 74 68 65 20 64 69 73 6b ┆will be asked to supply the disk┆ 0x0e83e0…0e8400 20 64 72 69 76 65 20 69 66 20 74 68 65 20 66 69 6c 65 20 69 73 20 6e 6f 74 20 66 6f 75 6e 64 20 ┆ drive if the file is not found ┆ 0x0e8400…0e8420 (61, 1, 14) 69 72 65 20 74 68 61 74 20 74 68 65 20 64 61 74 61 20 69 6e 20 74 68 69 73 20 66 69 65 6c 64 20 ┆ire that the data in this field ┆ 0x0e8420…0e8440 62 65 20 64 69 76 69 73 61 62 6c 65 20 62 79 20 31 31 2e 0d 00 fd 20 20 52 61 6e 67 65 20 63 68 ┆be divisable by 11. Range ch┆ 0x0e8440…0e8460 65 63 6b 3f 20 28 59 2f 4e 29 fc 00 41 20 72 61 6e 67 65 20 63 68 65 63 6b 20 69 73 20 75 73 65 ┆eck? (Y/N) A range check is use┆ 0x0e8460…0e8480 66 75 6c 20 66 6f 72 20 64 61 74 61 20 74 68 61 74 20 69 73 20 6f 6e 6c 79 20 76 61 6c 69 64 20 ┆ful for data that is only valid ┆ 0x0e8480…0e84a0 77 69 74 68 69 6e 20 61 20 63 65 72 74 61 69 6e 0d 72 61 6e 67 65 2e 20 20 41 6e 20 65 78 61 6d ┆within a certain range. An exam┆ 0x0e84a0…0e84c0 70 6c 65 20 6f 66 20 74 68 69 73 20 69 73 20 61 20 74 77 6f 20 63 68 61 72 61 63 74 65 72 20 66 ┆ple of this is a two character f┆ 0x0e84c0…0e84e0 69 65 6c 64 20 63 61 6c 6c 65 64 20 6d 6f 6e 74 68 2e 0d 49 74 20 63 61 6e 20 6f 6e 6c 79 20 68 ┆ield called month. It can only h┆ 0x0e84e0…0e8500 61 76 65 20 76 61 6c 75 65 73 20 62 65 74 77 65 65 6e 20 30 31 20 61 6e 64 20 31 32 2e 0d 0d 41 ┆ave values between 01 and 12. A┆ 0x0e8500…0e8520 20 59 20 61 6e 73 77 65 72 20 68 65 72 65 20 77 69 6c 6c 20 61 6c 6c 6f 77 20 79 6f 75 20 74 6f ┆ Y answer here will allow you to┆ 0x0e8520…0e8540 20 73 70 65 63 69 66 79 20 74 68 65 20 6d 69 6e 69 6d 75 6d 20 61 6e 64 20 6d 61 78 69 6d 75 6d ┆ specify the minimum and maximum┆ 0x0e8540…0e8560 20 76 61 6c 75 65 73 0d 74 68 61 74 20 74 68 65 20 64 61 74 61 20 69 6e 20 74 68 69 73 20 66 69 ┆ values that the data in this fi┆ 0x0e8560…0e8580 65 6c 64 20 77 69 6c 6c 20 62 65 20 61 6c 6c 6f 77 65 64 20 74 6f 20 74 61 6b 65 20 6f 6e 2e 0d ┆eld will be allowed to take on. ┆ 0x0e8580…0e85a0 00 20 20 20 45 6e 74 65 72 2f 63 68 61 6e 67 65 20 74 68 65 20 6d 69 6e 69 6d 75 6d 20 66 69 65 ┆ Enter/change the minimum fie┆ 0x0e85a0…0e85c0 6c 64 20 76 61 6c 75 65 3a 00 41 20 66 69 65 6c 64 20 69 73 20 63 6f 6d 70 61 72 65 64 20 6f 6e ┆ld value: A field is compared on┆ 0x0e85c0…0e85e0 20 61 20 63 68 61 72 61 63 74 65 72 20 62 79 20 63 68 61 72 61 63 74 65 72 20 62 61 73 69 73 20 ┆ a character by character basis ┆ 0x0e85e0…0e8600 74 6f 20 64 65 74 65 72 6d 69 6e 65 0d 61 63 63 65 70 74 61 62 6c 69 74 79 2e 20 43 68 61 72 61 ┆to determine acceptablity. Chara┆ 0x0e8600…0e8620 (61, 1, 15) 6f 6e 2e 0d 54 68 65 73 65 20 63 68 61 72 61 63 74 65 72 73 20 77 69 6c 6c 20 62 65 20 65 6d 62 ┆on. These characters will be emb┆ 0x0e8620…0e8640 65 64 64 65 64 20 69 6e 20 74 68 65 20 64 61 74 61 20 65 61 63 68 20 74 69 6d 65 20 74 68 65 20 ┆edded in the data each time the ┆ 0x0e8640…0e8660 66 69 65 6c 64 20 69 73 0d 65 6e 74 65 72 65 64 2c 20 75 6e 6c 65 73 73 20 74 68 65 20 22 27 2f ┆field is entered, unless the "'/┆ 0x0e8660…0e8680 22 20 63 6f 6e 74 72 6f 6c 20 63 6f 64 65 73 20 61 72 65 20 75 73 65 64 2e 20 20 22 27 2f 22 20 ┆" control codes are used. "'/" ┆ 0x0e8680…0e86a0 61 72 65 20 63 6f 6e 64 69 74 69 6f 6e 61 6c 0d 63 6f 6e 73 74 61 6e 74 73 20 74 68 61 74 20 61 ┆are conditional constants that a┆ 0x0e86a0…0e86c0 72 65 20 6f 6e 6c 79 20 69 6e 73 65 72 74 65 64 20 69 66 20 65 6e 6f 75 67 68 20 63 68 61 72 61 ┆re only inserted if enough chara┆ 0x0e86c0…0e86e0 63 74 65 72 73 20 61 72 65 20 65 6e 74 65 72 65 64 2e 20 20 46 6f 72 0d 65 78 61 6d 70 6c 65 2c ┆cters are entered. For example,┆ 0x0e86e0…0e8700 20 5f 27 5f 5f 5f 27 5f 5f 5f 20 77 6f 75 6c 64 20 61 6c 6c 6f 77 20 69 6e 73 65 72 74 69 6f 6e ┆ _'___'___ would allow insertion┆ 0x0e8700…0e8720 20 6f 66 20 63 6f 6d 6d 61 73 20 69 6e 74 6f 20 61 20 73 65 76 65 6e 20 64 69 67 69 74 20 6e 75 ┆ of commas into a seven digit nu┆ 0x0e8720…0e8740 6d 62 65 72 2e 0d 00 43 6f 6e 74 65 6e 74 20 43 6f 6e 74 72 6f 6c 20 43 68 61 72 61 63 74 65 72 ┆mber. Content Control Character┆ 0x0e8740…0e8760 20 43 6f 64 65 73 3a fd fd 20 20 41 20 3d 20 41 2d 5a 20 6f 6e 6c 79 20 20 20 20 20 20 20 20 20 ┆ Codes: A = A-Z only ┆ 0x0e8760…0e8780 20 20 20 20 20 20 20 20 20 20 61 20 3d 20 61 2d 7a 20 6f 6e 6c 79 fd 20 20 42 20 3d 20 41 2d 5a ┆ a = a-z only B = A-Z┆ 0x0e8780…0e87a0 2c 20 73 70 61 63 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 20 3d 20 61 2d 7a 2c ┆, space b = a-z,┆ 0x0e87a0…0e87c0 20 73 70 61 63 65 fd 20 20 43 20 3d 20 41 2d 5a 2c 20 61 2d 7a 20 2d 3e 20 41 2d 5a 20 20 20 20 ┆ space C = A-Z, a-z -> A-Z ┆ 0x0e87c0…0e87e0 20 20 20 20 20 20 20 20 63 20 3d 20 41 2d 5a 2c 20 61 2d 7a fd 20 20 44 20 3d 20 41 2d 5a 2c 20 ┆ c = A-Z, a-z D = A-Z, ┆ 0x0e87e0…0e8800 61 2d 7a 20 2d 3e 20 41 2d 5a 2c 20 73 70 61 63 65 20 20 20 20 20 64 20 3d 20 41 2d 5a 2c 20 61 ┆a-z -> A-Z, space d = A-Z, a┆ 0x0e8800…0e8a00 (62, 0, 1) 0xe5[0x200] […0x1c1…]