monroe_oc8820_r3.00.asm 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359
  1. displaymem equ 0x3000
  2. nomemchecks equ 9
  3. org 00000h
  4. di ;0000 no interrupt
  5. ld sp,0ffa6h ;0001 init stack
  6. xor a ;0004 A=0
  7. jp init ;0005 go init 00046h
  8. ;RST 08 handle - clear top line
  9. ld de,0303eh ;0008 point to screen ram
  10. call cleartopline ;000b go clear top line 0052dh
  11. nop ;000e pass through to display message at return addr
  12. nop ;000f
  13. ;RST 10 handle - display message at return addr
  14. pop hl ;0010 get return addr
  15. displaymsg:
  16. ld c,(hl) ;0011 load count
  17. inc hl ;0012 dump
  18. ld b,000h ;0013
  19. jp printroutine ;0015 00541h
  20. ;
  21. rst 38h ;0018
  22. rst 38h ;0019
  23. rst 38h ;001a
  24. rst 38h ;001b
  25. rst 38h ;001c
  26. rst 38h ;001d
  27. rst 38h ;001e
  28. rst 38h ;001f
  29. rst 38h ;0020
  30. rst 38h ;0021
  31. rst 38h ;0022
  32. rst 38h ;0023
  33. rst 38h ;0024
  34. rst 38h ;0025
  35. rst 38h ;0026
  36. rst 38h ;0027
  37. rst 38h ;0028
  38. rst 38h ;0029
  39. rst 38h ;002a
  40. rst 38h ;002b
  41. rst 38h ;002c
  42. rst 38h ;002d
  43. rst 38h ;002e
  44. rst 38h ;002f
  45. rst 38h ;0030
  46. rst 38h ;0031
  47. rst 38h ;0032
  48. rst 38h ;0033
  49. rst 38h ;0034
  50. rst 38h ;0035
  51. rst 38h ;0036
  52. rst 38h ;0037
  53. rst 38h ;0038
  54. rst 38h ;0039
  55. rst 38h ;003a
  56. rst 38h ;003b
  57. rst 38h ;003c
  58. rst 38h ;003d
  59. rst 38h ;003e
  60. rst 38h ;003f
  61. jp 00000h ;0040
  62. jp 00000h ;0043
  63. ; init
  64. init:
  65. out (0c0h),a ;0046 clear io, floppy control
  66. out (0c4h),a ;0048 clear io,Program map A base
  67. out (0c5h),a ;004a clear io,Program map B base
  68. out (0c6h),a ;004c clear io,DMA map A base
  69. out (0c7h),a ;004e clear io,DMA map B base
  70. out (0d4h),a ;0050 clear io,Hi-res color
  71. out (0d8h),a ;0052 clear io,Hi-res start
  72. ld hl,0005ah ;0054
  73. jp screenclearentry ;0057 do OTIR loop on following data 00562h
  74. defb 0b5h ;005a io port CRT register select
  75. defb 004h ;005b count 4
  76. defb 0cfh ;005c
  77. defb 0b8h ;005d
  78. defb 037h ;005e
  79. defb 0efh ;005f
  80. ;
  81. defb 0b4h ;0060 io port PIO A data
  82. defb 001h ;0061 count 1
  83. defb 001h ;0062
  84. ;
  85. defb 0a1h ;0063 io port DART A command
  86. defb 006h ;0064 count 6
  87. defb 048h ;0065
  88. defb 048h ;0066
  89. defb 004h ;0067
  90. defb 044h ;0068
  91. defb 005h ;0069
  92. defb 0eah ;006a
  93. ;
  94. defb 0a3h ;006b io port DART B command
  95. defb 008h ;006c count 8
  96. defb 048h ;006d
  97. defb 048h ;006e
  98. defb 004h ;006f
  99. defb 044h ;0070
  100. defb 001h ;0071
  101. defb 000h ;0072
  102. defb 003h ;0073
  103. defb 0c1h ;0074
  104. ;
  105. defb 0a5h ;0075 io port SIO A command
  106. defb 002h ;0076 count 2
  107. defb 048h ;0077
  108. defb 048h ;0078
  109. ;
  110. defb 0a7h ;0079 io port SIO B command
  111. defb 002h ;007a count 2
  112. defb 048h ;007b
  113. defb 048h ;007c
  114. ;
  115. defb 0a8h ;007d io port CTC CHANNEL 0 - Communications baud rate
  116. defb 002h ;007e count 2
  117. defb 003h ;007f
  118. defb 003h ;0080
  119. ;
  120. defb 0a9h ;0081 io port CTC CHANNEL 1 - AUX RS-232C baud rate
  121. defb 002h ;0082 count 2
  122. defb 003h ;0083
  123. defb 003h ;0084
  124. ;
  125. defb 0aah ;0085 io port CTC CHANNEL 2 - Printer baud rate
  126. defb 002h ;0086 count 2
  127. defb 057h ;0087
  128. defb 04eh ;0088
  129. ;
  130. defb 000h ;0089 io port reset
  131. defb 000h ;008a count 0 terminator
  132. ;code continues
  133. ld ix,initcontinue ;008b continuation addr 00092h
  134. jp setupclearscreen ;008f setup display and clear screen 00505h
  135. ;code continues
  136. initcontinue:
  137. ld a,080h ;0092
  138. out (0d4h),a ;0094 out 0d4h,80h Hi-res color enable copy, buzzer off
  139. ld de,displaymem ;0096 point to display upper left corner 03000h
  140. ld hl,msgtesting ;0099 point to message 0009fh
  141. jp displaymsg ;009c go display message at HL 00011h
  142. msgtesting:
  143. defb 008h ;009f 8 bytes
  144. defb 054h ;00a0 T
  145. defb 065h ;00a1 e
  146. defb 073h ;00a2 s
  147. defb 074h ;00a3 t
  148. defb 069h ;00a4 i
  149. defb 06eh ;00a5 n
  150. defb 067h ;00a6 g
  151. defb 02eh ;00a7 .
  152. ld a,005h ;00a8
  153. out (0a3h),a ;00aa DART B command
  154. ld a,068h ;00ac
  155. out (0a3h),a ;00ae DART B command
  156. ld a,0f0h ;00b0 ?????
  157. out (0c8h),a ;00b2 Map and system control
  158. ld ix,0c001h ;00b4
  159. ld bc,000c5h ;00b8
  160. ld d,nomemchecks ;00bb Start test memory bank (1-9), go to zero afterwards 009h
  161. ld a,0a0h ;00bd
  162. out (0c5h),a ;00bf Program map B base
  163. ld (ix-001h),b ;00c1
  164. dec b ;00c4
  165. inc a ;00c5
  166. out (0c5h),a ;00c6 Program map B base
  167. ld (ix-001h),b ;00c8
  168. dec a ;00cb
  169. out (0c5h),a ;00cc Program map B base
  170. ld b,(ix-001h) ;00ce
  171. inc b ;00d1
  172. jr z,skipd011 ;00d2 $+4 skip for start of memtest
  173. ld d,011h ;00d4
  174. skipd011:
  175. ld b,d ;00d6
  176. ld hl,memtesteval ;00d7 00122h
  177. ld de,00000h ;00da
  178. beginmemtest:
  179. outi ;00dd
  180. jr z,memcmp ;00df
  181. exx ;00e1
  182. ld b,055h ;00e2 memory check ?
  183. ld e,000h ;00e4
  184. memtestloop:
  185. ld hl,0c000h ;00e6 Start for membank that has been switch into
  186. ld c,b ;00e9
  187. memtestwriteloop:
  188. ld (hl),c ;00ea
  189. rlc c ;00eb
  190. inc l ;00ed
  191. jr nz,memtestwriteloop ;00ee -4
  192. rlc c ;00f0
  193. inc h ;00f2
  194. jr nz,memtestwriteloop ;00f3 -9
  195. ld h,0c0h ;00f5
  196. ld c,b ;00f7
  197. memtestreadloop:
  198. ld a,(hl) ;00f8
  199. xor c ;00f9
  200. or e ;00fa
  201. ld e,a ;00fb
  202. rlc c ;00fc
  203. inc l ;00fe
  204. jr nz,memtestreadloop ;00ff -7
  205. rlc c ;0101
  206. inc h ;0103
  207. jr nz,memtestreadloop ;0104 -12
  208. rlc b ;0106
  209. jr nc,memtestloop ;0108 -34
  210. ld a,e ;010a
  211. exx ;010b
  212. and a ;010c
  213. jr z,memgood ;010d +10
  214. inc a ;010f
  215. jr z,memerror ;0110 +6
  216. or d ;0112
  217. ld d,a ;0113
  218. jr memgood ;0114 +3
  219. memerror:
  220. inc e ;0116
  221. memgood:
  222. ld a,b ;0117
  223. cp 004h ;0118
  224. jr nz,beginmemtest ;011a -61
  225. ld a,020h ;011c
  226. out (0c0h),a ;011e Floppy external control Motor on!
  227. jr beginmemtest ;0120 -67
  228. memtesteval:
  229. and c ;0122
  230. pop bc ;0123
  231. pop hl ;0124
  232. nop ;0125
  233. jr nz,floppystart2 ;0126 +66
  234. ld h,b ;0128
  235. add a,b ;0129
  236. and b ;012a
  237. ret nz ;012b
  238. ret po ;012c
  239. ld bc,04121h ;012d
  240. ld h,c ;0130
  241. add a,c ;0131
  242. nop ;0132
  243. memcmp:
  244. xor a ;0133
  245. or d ;0134
  246. or e ;0135 Any errors?
  247. jr z,floppystart ;0136; +43
  248. ld ix,memcheckdisplay ;0138 013fh
  249. jp setupcrt ;013c 0058ch
  250. memcheckdisplay:
  251. ld de,displaymem ;013f 03000h
  252. ld hl,callservicemsg2 ;0142 00148h
  253. jp displaymsg ;0145 00011h
  254. callservicemsg2:
  255. defb 017h ;0148 count 23
  256. defb 045h ;0149 Error #2 :Call service.
  257. defb 072h ;014a
  258. defb 072h ;014b
  259. defb 06fh ;014c
  260. defb 072h ;014d
  261. defb 020h ;014e
  262. defb 023h ;014f
  263. defb 032h ;0150
  264. defb 020h ;0151
  265. defb 03ah ;0152
  266. defb 043h ;0153
  267. defb 061h ;0154
  268. defb 06ch ;0155
  269. defb 06ch ;0156
  270. defb 020h ;0157
  271. defb 073h ;0158
  272. defb 065h ;0159
  273. defb 072h ;015a
  274. defb 076h ;015b
  275. defb 069h ;015c
  276. defb 063h ;015d
  277. defb 065h ;015e
  278. defb 02eh ;015f
  279. halt ;0160
  280. floppystart:
  281. out (0c5h),a ;0161 Program map B base
  282. out (0c8h),a ;0163 Map and system control
  283. dec hl ;0165
  284. dec hl ;0166
  285. ld a,(hl) ;0167
  286. floppystart2:
  287. rrca ;0168
  288. and 080h ;0169
  289. ld (0ff80h),a ;016b
  290. ld de,0ffa6h ;016e
  291. ld hl,005beh ;0171
  292. ld bc,0005ah ;0174
  293. ldir ;0177
  294. call setupclearscreen2 ;0179 00503h
  295. readydiskloop:
  296. call readydisk ;017c 003d9h
  297. call 0061ch ;017f
  298. ld a,0ffh ;0182
  299. jr c,skipinvert ;0184 $+3
  300. cpl ;0186
  301. skipinvert:
  302. ld (0ff93h),a ;0187
  303. ld hl,00404h ;018a
  304. ld (0ff91h),hl ;018d
  305. or a ;0190
  306. jr nz,$+50 ;0191
  307. ld c,010h ;0193
  308. call 0065ah ;0195
  309. jr c,$+19 ;0198
  310. ld bc,00000h ;019a
  311. call 0040eh ;019d
  312. jr c,$+11 ;01a0
  313. call 003a2h ;01a2
  314. ld a,(0ff8bh) ;01a5
  315. ld (0ff91h),a ;01a8
  316. ld c,011h ;01ab
  317. call 0065ah ;01ad
  318. jr c,$+19 ;01b0
  319. ld bc,00000h ;01b2
  320. call 0040eh ;01b5
  321. jr c,$+11 ;01b8
  322. call 003a2h ;01ba
  323. ld a,(0ff8bh) ;01bd
  324. ld (0ff92h),a ;01c0
  325. ld a,001h ;01c3
  326. ld c,008h ;01c5
  327. or 0a0h ;01c7
  328. out (0c0h),a ;01c9 Floppy external control
  329. ld b,a ;01cb
  330. in a,(0b0h) ;01cc Floppy status
  331. rr a ;01ce
  332. jr c,$-4 ;01d0
  333. in a,(0b0h) ;01d2 Floppy status
  334. add a,a ;01d4
  335. jr c,$+8 ;01d5
  336. call delayloop ;01d7 0057dh
  337. call loadingdisk ;01da 00262h
  338. inc c ;01dd
  339. ld a,b ;01de
  340. add a,a ;01df
  341. and 00fh ;01e0
  342. jr nz,$-27 ;01e2
  343. ld a,(0ff93h) ;01e4
  344. or a ;01e7
  345. jr nz,$+28 ;01e8
  346. in a,(0ffh) ;01ea ????
  347. and 020h ;01ec
  348. jr nz,$+22 ;01ee
  349. ld c,010h ;01f0
  350. call 0065ah ;01f2
  351. ld b,000h ;01f5
  352. call nc,loadingdisk ;01f7 00262h
  353. ld c,011h ;01fa
  354. call 0065ah ;01fc
  355. ld b,000h ;01ff
  356. call nc,loadingdisk ;0201 00262h
  357. call setupclearscreen2 ;0204 00503h
  358. ld bc,002a3h ;0207
  359. ld hl,0061ah ;020a
  360. otir ;020d
  361. ld de,displaymem ;020f 03000h
  362. ld hl,00218h ;0212
  363. jp displaymsg ;0215 00011h
  364. defb 019h ;0218 count 25
  365. defb 04eh ;0219 No System Device On Line.
  366. defb 06fh ;021a
  367. defb 020h ;021b
  368. defb 053h ;021c
  369. defb 079h ;021d
  370. defb 073h ;021e
  371. defb 074h ;021f
  372. defb 065h ;0220
  373. defb 06dh ;0221
  374. defb 020h ;0222
  375. defb 044h ;0223
  376. defb 065h ;0224
  377. defb 076h ;0225
  378. defb 069h ;0226
  379. defb 063h ;0227
  380. defb 065h ;0228
  381. defb 020h ;0229
  382. defb 04fh ;022a
  383. defb 06eh ;022b
  384. defb 020h ;022c
  385. defb 04ch ;022d
  386. defb 069h ;022e
  387. defb 06eh ;022f
  388. defb 065h ;0230
  389. defb 02eh ;0231
  390. call delayloop ;0232 0057dh
  391. call delayloop ;0235 0057dh
  392. call delayloop ;0238 0057dh
  393. jp readydiskloop ;023b 0017ch
  394. ld ix,returnsetupcrt1 ;023e 00245h
  395. jp setupcrt ;0242 0058ch
  396. returnsetupcrt1:
  397. call screenclearnetry2 ;0245 0056bh
  398. rst 10h ;0248
  399. defb 017h ;0249 count 23
  400. defb 045h ;024a Error #0: Call service.
  401. defb 072h ;024b
  402. defb 072h ;024c
  403. defb 06fh ;024d
  404. defb 072h ;024e
  405. defb 020h ;024f
  406. defb 023h ;0250
  407. defb 030h ;0251
  408. defb 03ah ;0252
  409. defb 020h ;0253
  410. defb 043h ;0254
  411. defb 061h ;0255
  412. defb 06ch ;0256
  413. defb 06ch ;0257
  414. defb 020h ;0258
  415. defb 073h ;0259
  416. defb 065h ;025a
  417. defb 072h ;025b
  418. defb 076h ;025c
  419. defb 069h ;025d
  420. defb 063h ;025e
  421. defb 065h ;025f
  422. defb 02eh ;0260
  423. halt ;0261
  424. loadingdisk:
  425. push bc ;0262
  426. xor a ;0263
  427. ld (0ff81h),a ;0264
  428. ld (0ff82h),a ;0267
  429. rst 8 ;026a
  430. defb 008h ;026b count 8
  431. defb 04ch ;026c Loading
  432. defb 06fh ;026d
  433. defb 061h ;026e
  434. defb 064h ;026f
  435. defb 069h ;0270
  436. defb 06eh ;0271
  437. defb 067h ;0272
  438. defb 020h ;0273
  439. pop ix ;0274
  440. call 004a1h ;0276
  441. jr c,$-59 ;0279
  442. ld bc,00000h ;027b
  443. call 0040eh ;027e
  444. jr c,$+92 ;0281
  445. ld hl,(0ff81h) ;0283
  446. ld a,l ;0286
  447. and a ;0287
  448. jr z,$+20 ;0288
  449. ld a,h ;028a
  450. and 003h ;028b
  451. in a,(0ffh) ;028d
  452. jr z,$+9 ;028f
  453. bit 0,a ;0291
  454. jr nz,$+9 ;0293
  455. jp 0034bh ;0295
  456. bit 1,a ;0298
  457. jr z,$-5 ;029a
  458. call 003a2h ;029c
  459. jp c,00343h ;029f
  460. jr z,$+20 ;02a2
  461. call 0040eh ;02a4
  462. jr c,$+54 ;02a7
  463. ld hl,0401fh ;02a9
  464. bit 0,(hl) ;02ac
  465. jp nz,0034fh ;02ae
  466. call 0040eh ;02b1
  467. jr c,$+41 ;02b4
  468. exx ;02b6
  469. ld hl,0400eh ;02b7
  470. ld d,(hl) ;02ba
  471. inc hl ;02bb
  472. ld e,(hl) ;02bc
  473. push de ;02bd
  474. pop iy ;02be
  475. ld hl,04080h ;02c0
  476. ld c,(hl) ;02c3
  477. inc hl ;02c4
  478. inc hl ;02c5
  479. ld d,(hl) ;02c6
  480. inc hl ;02c7
  481. ld e,(hl) ;02c8
  482. inc hl ;02c9
  483. ld a,(hl) ;02ca
  484. inc hl ;02cb
  485. ld l,(hl) ;02cc
  486. ld h,a ;02cd
  487. ex de,hl ;02ce
  488. push hl ;02cf
  489. ld a,e ;02d0
  490. add a,0ffh ;02d1
  491. ld a,d ;02d3
  492. exx ;02d4
  493. ld e,000h ;02d5
  494. adc a,e ;02d7
  495. ld d,a ;02d8
  496. pop hl ;02d9
  497. call 00414h ;02da
  498. jr c,$+106 ;02dd
  499. ld a,(0ff8bh) ;02df
  500. cp 002h ;02e2
  501. jr z,$+10 ;02e4
  502. xor a ;02e6
  503. ex af,af' ;02e7
  504. exx ;02e8
  505. jp 0ffa6h ;02e9
  506. ex af,af' ;02ec
  507. adc a,c ;02ed
  508. push ix ;02ee
  509. pop bc ;02f0
  510. ld a,(0ff8bh) ;02f1
  511. ld de,00013h ;02f4
  512. ld hl,0ff8dh ;02f7
  513. jr nz,$+69 ;02fa
  514. cp 002h ;02fc
  515. jp nz,0ffb8h ;02fe
  516. push bc ;0301
  517. bit 3,c ;0302
  518. jr nz,$+7 ;0304
  519. ld a,0ffh ;0306
  520. ld (0ff81h),a ;0308
  521. in a,(0ffh) ;030b
  522. ld c,a ;030d
  523. xor a ;030e
  524. bit 0,c ;030f
  525. jr z,$+4 ;0311
  526. ld a,00fh ;0313
  527. bit 1,c ;0315
  528. jr z,$+4 ;0317
  529. or 0f0h ;0319
  530. ld b,a ;031b
  531. ld a,(0ff81h) ;031c
  532. cpl ;031f
  533. and a ;0320
  534. jr z,$+19 ;0321
  535. push bc ;0323
  536. push ix ;0324
  537. pop bc ;0326
  538. ld a,c ;0327
  539. sub 007h ;0328
  540. ld b,a ;032a
  541. ld a,080h ;032b
  542. rlca ;032d
  543. rlca ;032e
  544. djnz $-2 ;032f
  545. pop bc ;0331
  546. and b ;0332
  547. rrca ;0333
  548. xor b ;0334
  549. pop bc ;0335
  550. ld (0ff81h),a ;0336
  551. ld a,(0ff8bh) ;0339
  552. jp 0ffb8h ;033c
  553. ld a,033h ;033f
  554. jr $+16 ;0341
  555. ld a,030h ;0343
  556. jr $+12 ;0345
  557. ld a,032h ;0347
  558. jr $+8 ;0349
  559. ld a,039h ;034b
  560. jr $+4 ;034d
  561. ld a,031h ;034f
  562. push ix ;0351
  563. push af ;0353
  564. call screenclearnetry2 ;0354 0056bh
  565. push de ;0357
  566. rst 10h ;0358
  567. defb 028h ;0359 count 40
  568. defb 045h ;035a Error #10: Invalid System Disk in Drive
  569. defb 072h ;035b
  570. defb 072h ;035c
  571. defb 06fh ;035d
  572. defb 072h ;035e
  573. defb 020h ;035f
  574. defb 023h ;0360
  575. defb 031h ;0361
  576. defb 030h ;0362
  577. defb 03ah ;0363
  578. defb 020h ;0364
  579. defb 049h ;0365
  580. defb 06eh ;0366
  581. defb 076h ;0367
  582. defb 061h ;0368
  583. defb 06ch ;0369
  584. defb 069h ;036a
  585. defb 064h ;036b
  586. defb 020h ;036c
  587. defb 053h ;036d
  588. defb 079h ;036e
  589. defb 073h ;036f
  590. defb 074h ;0370
  591. defb 065h ;0371
  592. defb 06dh ;0372
  593. defb 020h ;0373
  594. defb 044h ;0374
  595. defb 069h ;0375
  596. defb 073h ;0376
  597. defb 06bh ;0377
  598. defb 020h ;0378
  599. defb 069h ;0379
  600. defb 06eh ;037a
  601. defb 020h ;037b
  602. defb 044h ;037c
  603. defb 072h ;037d
  604. defb 069h ;037e
  605. defb 076h ;037f
  606. defb 065h ;0380
  607. defb 020h ;0381
  608. pop hl ;0382
  609. pop bc ;0383
  610. ld de,00008h ;0384
  611. add hl,de ;0387
  612. add hl,de ;0388
  613. inc hl ;0389
  614. ld a,004h ;038a Select display memory
  615. out (0c8h),a ;038c Map and system control
  616. ld (hl),b ;038e
  617. xor a ;038f
  618. out (0c8h),a ;0390 Map and system control
  619. call delayloop ;0392 0057dh
  620. call delayloop ;0395 0057dh
  621. call setupclearscreen2 ;0398 00503h
  622. call readydisk ;039b 003d9h
  623. exx ;039e
  624. pop bc ;039f
  625. scf ;03a0
  626. ret ;03a1
  627. ld a,003h ;03a2
  628. ld (0ff8bh),a ;03a4
  629. ld hl,0401dh ;03a7
  630. ld a,(hl) ;03aa
  631. cp 0e5h ;03ab
  632. scf ;03ad
  633. ret z ;03ae
  634. cp 06ch ;03af
  635. scf ;03b1
  636. ret z ;03b2
  637. add a,001h ;03b3
  638. jr nc,$+8 ;03b5
  639. ld hl,0ff8bh ;03b7
  640. ld (hl),002h ;03ba
  641. ret ;03bc
  642. inc hl ;03bd
  643. ld b,(hl) ;03be
  644. ld a,b ;03bf
  645. inc hl ;03c0
  646. ld c,(hl) ;03c1
  647. add a,001h ;03c2
  648. adc a,c ;03c4
  649. ld hl,0ff8bh ;03c5
  650. ld (hl),002h ;03c8
  651. jr z,$+10 ;03ca
  652. ld (hl),001h ;03cc
  653. ld a,b ;03ce
  654. or c ;03cf
  655. scf ;03d0
  656. ret z ;03d1
  657. or a ;03d2
  658. ret ;03d3
  659. ld bc,00001h ;03d4
  660. or a ;03d7
  661. ret ;03d8
  662. readydisk:
  663. ld de,displaymem ;03d9 03000h
  664. rst 10h ;03dc
  665. defb 01dh ;03dd count 29
  666. defb 052h ;03de R3-00C Ready For System Disk
  667. defb 033h ;03df
  668. defb 02dh ;03e0
  669. defb 030h ;03e1
  670. defb 030h ;03e2
  671. defb 043h ;03e3
  672. defb 020h ;03e4
  673. defb 052h ;03e5
  674. defb 065h ;03e6
  675. defb 061h ;03e7
  676. defb 064h ;03e8
  677. defb 079h ;03e9
  678. defb 020h ;03ea
  679. defb 046h ;03eb
  680. defb 06fh ;03ec
  681. defb 072h ;03ed
  682. defb 020h ;03ee
  683. defb 053h ;03ef
  684. defb 079h ;03f0
  685. defb 073h ;03f1
  686. defb 074h ;03f2
  687. defb 065h ;03f3
  688. defb 06dh ;03f4
  689. defb 020h ;03f5
  690. defb 044h ;03f6
  691. defb 069h ;03f7
  692. defb 073h ;03f8
  693. defb 06bh ;03f9
  694. defb 020h ;03fa
  695. call delayloop ;03fb 0057dh
  696. ret ;03fe
  697. ld b,00ah ;03ff
  698. ld hl,00000h ;0401
  699. inc hl ;0404
  700. ld a,l ;0405
  701. or h ;0406
  702. jr nz,$-3 ;0407
  703. djnz $-5 ;0409
  704. jp 00133h ;040b
  705. ld de,00100h ;040e
  706. ld hl,04000h ;0411
  707. push bc ;0414
  708. push ix ;0415
  709. pop bc ;0417
  710. ld a,c ;0418
  711. pop bc ;0419
  712. cp 010h ;041a
  713. jp nc,006c1h ;041c
  714. ld a,005h ;041f
  715. ex af,af' ;0421
  716. push bc ;0422
  717. ex (sp),hl ;0423
  718. ld a,l ;0424
  719. and 00fh ;0425
  720. push bc ;0427
  721. push af ;0428
  722. ld a,(0ff81h) ;0429
  723. and a ;042c
  724. ld b,000h ;042d
  725. jr z,$+4 ;042f
  726. ld b,010h ;0431
  727. pop af ;0433
  728. add a,b ;0434
  729. inc a ;0435
  730. out (0b2h),a ;0436 Floppy sector register
  731. add hl,hl ;0438
  732. add hl,hl ;0439
  733. add hl,hl ;043a
  734. add hl,hl ;043b
  735. cp 011h ;043c
  736. ld a,h ;043e
  737. out (0b3h),a ;043f Floppy data register
  738. jr c,$+18 ;0441
  739. rra ;0443
  740. out (0b3h),a ;0444 Floppy data register
  741. push ix ;0446
  742. pop bc ;0448
  743. ld a,b ;0449
  744. jr nc,$+4 ;044a
  745. or 010h ;044c
  746. ld (0ff82h),a ;044e
  747. out (0c0h),a ;0451 Floppy external control
  748. pop bc ;0453
  749. pop hl ;0454
  750. ld a,01dh ;0455
  751. call setfloppystatus ;0457 004b6h
  752. and 098h ;045a
  753. jr nz,$+42 ;045c
  754. call 004c1h ;045e
  755. ld a,(0ff82h) ;0461
  756. bit 4,a ;0464
  757. ld a,082h ;0466
  758. jr z,$+4 ;0468
  759. ld a,08ah ;046a
  760. call setfloppystatus ;046c 004b6h
  761. and 09ch ;046f
  762. jr nz,$+21 ;0471
  763. inc h ;0473setupclearscreen
  764. inc bc ;0474
  765. dec d ;0475
  766. ret z ;0476
  767. ld a,c ;0477
  768. and 00fh ;0478
  769. jr z,$-91 ;047a
  770. in a,(0b2h) ;047c
  771. inc a ;047e
  772. out (0b2h),a ;047f Floppy sector register
  773. ld a,005h ;0481
  774. ex af,af' ;0483
  775. jr $-35 ;0484
  776. scf ;0486
  777. bit 7,a ;0487
  778. ret nz ;0489
  779. ex af,af' ;048a
  780. dec a ;048b
  781. jr nz,$-107 ;048c
  782. ex af,af' ;048e
  783. bit 4,a ;048f
  784. jr z,$+14 ;0491
  785. ld a,(0ff81h) ;0493
  786. and a ;0496
  787. jr nz,$+8 ;0497
  788. cpl ;0499
  789. ld (0ff81h),a ;049a
  790. jr $-126 ;049d
  791. scf ;049f
  792. ret ;04a0
  793. push bc ;04a1
  794. push ix ;04a2
  795. pop bc ;04a4
  796. ld a,c ;04a5
  797. pop bc ;04a6
  798. cp 010h ;04a7
  799. jp nc,00788h ;04a9
  800. ld a,001h ;04ac
  801. call setfloppystatus ;04ae 004b6h
  802. and 004h ;04b1
  803. ret nz ;04b3
  804. scf ;04b4
  805. ret ;04b5
  806. setfloppystatus:
  807. out (0b0h),a ;04b6 Floppy status
  808. in a,(0b4h) ;04b8
  809. bit 4,a ;04ba
  810. jr z,$-4 ;04bc
  811. in a,(0b0h) ;04be
  812. ret ;04c0
  813. push bc ;04c1
  814. ld bc,0b301h ;04c2
  815. jr $+6 ;04c5
  816. push bc ;04c7
  817. ld bc,07803h ;04c8
  818. ld a,b ;04cb
  819. ld (0ff8ch),a ;04cc
  820. ld a,c ;04cf
  821. out (0b4h),a ;04d0 PIO A data
  822. ld bc,006ach ;04d2
  823. ld a,0c3h ;04d5
  824. out (c),a ;04d7
  825. djnz $-2 ;04d9
  826. ld a,07dh ;04db
  827. out (c),a ;04dd
  828. out (c),l ;04df
  829. out (c),h ;04e1
  830. out (c),e ;04e3
  831. out (c),d ;04e5
  832. push hl ;04e7
  833. ld hl,004fbh ;04e8
  834. ld b,003h ;04eb
  835. otir ;04ed
  836. ld a,(0ff8ch) ;04ef
  837. out (c),a ;04f2
  838. ld b,005h ;04f4
  839. otir ;04f6
  840. pop hl ;04f8
  841. pop bc ;04f9
  842. ret ;04fa
  843. inc d ;04fb
  844. jr z,$-121 ;04fc
  845. adc a,d ;04fe
  846. rst 8 ;04ff
  847. ld bc,087cfh ;0500
  848. setupclearscreen2:
  849. pop ix ;0503
  850. setupclearscreen:
  851. ;entry during initiation with IX=0092
  852. xor a ;0505 start A=0
  853. ld bc,00eb9h ;0506 C=B9 B=14
  854. ld hl,0054fh ;0509
  855. setupclearloop:
  856. out (0b8h),a ;050c CRT register select
  857. inc a ;050e A++
  858. outi ;050f C)=(HL++) and B--
  859. jr nz,setupclearloop ;0511 loop until B==0 (14 bytes to write) $-5
  860. ld de,03002h ;0513
  861. ld hl,displaymem ;0516 03000h
  862. ld bc,00ffeh ;0519
  863. ;RST 08 jump in here HL=300C DE=300E BC=4E IX=032F
  864. clear300c:
  865. ld a,004h ;051c Select display memory
  866. out (0c8h),a ;051e Output to screen out C8,04 Map and system control
  867. xor a ;0520
  868. ld (hl),a ;0521 put 00h at 3000h or 300Ch
  869. inc hl ;0522 bump
  870. ld (hl),020h ;0523 put 20h at 3001h or 300Dh
  871. dec hl ;0525 go back point to original
  872. ldir ;0526 copy 00 20 through 4K or 80 words
  873. xor a ;0528 Reset map A=0
  874. out (0c8h),a ;0529 out C8,00 Map and system control
  875. jp (ix) ;052b continue
  876. cleartopline:
  877. ;process RST 08 entry DE=300C
  878. push de ;052d save old DE
  879. ld l,e ;052e HL=DE
  880. ld h,d ;052f
  881. inc de ;0530 DE+=2
  882. inc de ;0531
  883. ld bc,0004eh ;0532 80-2
  884. push ix ;0535 save old IX
  885. ld ix,clearlineend ;0537 exit addr 0053dh
  886. jr clear300c ;053b clear line 300C 80char $-31
  887. ;clear line returns here
  888. clearlineend:
  889. pop ix ;053d restore old IX
  890. pop de ;053f restore old DE
  891. ret ;0540
  892. printroutine:
  893. ;print routine
  894. ;BC count
  895. ;HL message source
  896. ;DE screen target
  897. ld a,004h ;0541 Select display memory
  898. out (0c8h),a ;0543 Output to screen Map and system control
  899. printcharloop:
  900. inc de ;0545 do every other addr
  901. ldi ;0546 (DE++)=(HL++) and BC--
  902. jp pe,printcharloop ;0548 repeat while BC not 0 00545h
  903. xor a ;054b Reset map
  904. out (0c8h),a ;054c Reset to memory Map and system control
  905. jp (hl) ;054e
  906. ;data to be output to io port B9 14 byte CRT data register
  907. defb 069h ;054f
  908. defb 050h ;0550
  909. defb 056h ;0551
  910. defb 00bh ;0552
  911. defb 019h ;0553
  912. defb 003h ;0554
  913. defb 018h ;0555
  914. defb 018h ;0556
  915. defb 000h ;0557
  916. defb 00bh ;0558
  917. defb 020h ;0559
  918. defb 000h ;055a
  919. defb 000h ;055b
  920. defb 000h ;055c
  921. ;
  922. pop hl ;055d
  923. jr $+4 ;055e
  924. ;
  925. screenclearloop:
  926. otir ;0560 out B bytes from (HL) to (C)
  927. ;
  928. screenclearentry:
  929. ld c,(hl) ;0562 get register
  930. inc hl ;0563 bump
  931. ld b,(hl) ;0564 get count
  932. inc hl ;0565 bump
  933. ld a,b ;0566 evaluate count
  934. and a ;0567
  935. jr nz,screenclearloop ;0568 if count not 0 loop $-8
  936. jp (hl) ;056a
  937. screenclearnetry2:
  938. ld de,03100h ;056b
  939. ld a,00fh ;056e
  940. out (0b8h),a ;0570 CRT register select
  941. xor a ;0572
  942. out (0b9h),a ;0573 CRT data register
  943. in a,(0bbh) ;0575
  944. or a ;0577
  945. ret nz ;0578
  946. ld de,030a0h ;0579
  947. ret ;057c
  948. ;
  949. delayloop:
  950. ld hl,04600h ;057d
  951. dec hl ;0580
  952. ex (sp),hl ;0581
  953. ex (sp),hl ;0582
  954. ex (sp),hl ;0583
  955. ex (sp),hl ;0584
  956. ld a,l ;0585
  957. or h ;0586
  958. jr nz,$-7 ;0587
  959. ret ;0589
  960. pop ix ;058a
  961. setupcrt:
  962. ld a,00fh ;058c
  963. out (0b8h),a ;058e CRT register select
  964. xor a ;0590
  965. out (0b9h),a ;0591 CRT data register
  966. in a,(0bbh) ;0593 ????
  967. and a ;0595
  968. jr nz,$+6 ;0596
  969. ld a,081h ;0598
  970. out (0d4h),a ;059a Buzzer on
  971. ld bc,006cch ;059c
  972. ld hl,005b8h ;059f
  973. otir ;05a2
  974. ld bc,00000h ;05a4
  975. ex (sp),hl ;05a7
  976. ex (sp),hl ;05a8
  977. dec bc ;05a9
  978. ld a,b ;05aa
  979. or c ;05ab
  980. jr nz,$-5 ;05ac
  981. ld a,080h ;05ae
  982. out (0d4h),a ;05b0 Buzzer off
  983. ld a,09fh ;05b2
  984. out (0cch),a ;05b4 ?????
  985. jp (ix) ;05b6
  986. adc a,(hl) ;05b8
  987. inc b ;05b9
  988. sub d ;05ba
  989. cp a ;05bb
  990. rst 18h ;05bc
  991. rst 38h ;05bd
  992. ld a,001h ;05be
  993. out (0c8h),a ;05c0 Map and system control
  994. ex af,af' ;05c2
  995. adc a,(hl) ;05c3
  996. ex af,af' ;05c4
  997. inc hl ;05c5
  998. dec de ;05c6
  999. ld a,e ;05c7
  1000. or d ;05c8
  1001. jr nz,$-7 ;05c9
  1002. out (0c8h),a ;05cb Map and system control
  1003. jp 002ech ;05cd
  1004. cp 002h ;05d0
  1005. ld a,001h ;05d2
  1006. out (0c8h),a ;05d4 Map and system control
  1007. jr nz,$+31 ;05d6
  1008. ld a,(0ff81h) ;05d8
  1009. ld (00022h),a ;05db
  1010. ld a,c ;05de
  1011. sub 010h ;05df
  1012. jr c,$+20 ;05e1
  1013. ld c,a ;05e3
  1014. jr z,$+10 ;05e4
  1015. ld a,(0ff8fh) ;05e6
  1016. cp 095h ;05e9
  1017. jr nz,$+3 ;05eb
  1018. inc c ;05ed
  1019. ld a,004h ;05ee
  1020. add a,c ;05f0
  1021. ld c,a ;05f1
  1022. push bc ;05f2
  1023. pop ix ;05f3
  1024. ld a,(0ff80h) ;05f5
  1025. or c ;05f8
  1026. ld c,a ;05f9
  1027. ld a,(0ff91h) ;05fa
  1028. ld (de),a ;05fd
  1029. inc de ;05fe
  1030. push bc ;05ff
  1031. ld bc,00004h ;0600
  1032. ldir ;0603
  1033. ld de,00023h ;0605
  1034. ld hl,0ff8dh ;0608
  1035. ld a,(0ff92h) ;060b
  1036. ld (de),a ;060e
  1037. inc de ;060f
  1038. ld bc,00004h ;0610
  1039. ldir ;0613
  1040. pop bc ;0615
  1041. jp (iy) ;0616
  1042. dec b ;0618
  1043. add a,b ;0619
  1044. dec b ;061a
  1045. nop ;061b
  1046. ld bc,002a3h ;061c
  1047. ld hl,00618h ;061f
  1048. otir ;0622
  1049. ld b,0ffh ;0624
  1050. in a,(079h) ;0626
  1051. cp 0c7h ;0628
  1052. jr z,$+6 ;062a
  1053. djnz $-6 ;062c
  1054. scf ;062e
  1055. ret ;062f
  1056. call reading ;0630 00723h
  1057. ret c ;0633
  1058. in a,(0ffh) ;0634
  1059. rra ;0636
  1060. rra ;0637
  1061. and 007h ;0638
  1062. ld hl,007e2h ;063a
  1063. jr z,$+18 ;063d
  1064. ld hl,007d6h ;063f
  1065. dec a ;0642
  1066. jr z,$+5 ;0643
  1067. ld hl,007cah ;0645
  1068. call 0076bh ;0648
  1069. call reading ;064b 00723h
  1070. ret c ;064e
  1071. ld de,0ff8dh ;064f
  1072. ld bc,00004h ;0652
  1073. ldir ;0655
  1074. jp 0077fh ;0657
  1075. push bc ;065a
  1076. pop ix ;065b
  1077. ld a,010h ;065d
  1078. sub c ;065f
  1079. jr z,$+4 ;0660
  1080. ld a,020h ;0662
  1081. ld hl,0ff83h ;0664
  1082. ld b,004h ;0667
  1083. ld (hl),008h ;0669
  1084. inc hl ;066b
  1085. ld (hl),a ;066c
  1086. inc hl ;066d
  1087. ld (hl),000h ;066e
  1088. djnz $-3 ;0670
  1089. call reading ;0672 00723h
  1090. ret c ;0675
  1091. call moveoutreseta ;0676 0074bh
  1092. call reading2 ;0679 00738h
  1093. and 002h ;067c
  1094. ret z ;067e
  1095. scf ;067f
  1096. ret ;0680
  1097. push bc ;0681
  1098. call screenclearnetry2 ;0682 0056bh
  1099. rst 10h ;0685
  1100. defb 028h ;0686 sount 40
  1101. defb 045h ;0687 Error 1: Disk system error, Call Service
  1102. defb 072h ;0688
  1103. defb 072h ;0689
  1104. defb 06fh ;068a
  1105. defb 072h ;068b
  1106. defb 020h ;068c
  1107. defb 031h ;068d
  1108. defb 03ah ;068e
  1109. defb 020h ;068f
  1110. defb 044h ;0690
  1111. defb 069h ;0691
  1112. defb 073h ;0692
  1113. defb 06bh ;0693
  1114. defb 020h ;0694
  1115. defb 073h ;0695
  1116. defb 079h ;0696
  1117. defb 073h ;0697
  1118. defb 074h ;0698
  1119. defb 065h ;0699
  1120. defb 06dh ;069a
  1121. defb 020h ;069b
  1122. defb 065h ;069c
  1123. defb 072h ;069d
  1124. defb 072h ;069e
  1125. defb 06fh ;069f
  1126. defb 072h ;06a0
  1127. defb 02ch ;06a1
  1128. defb 020h ;06a2
  1129. defb 043h ;06a3
  1130. defb 061h ;06a4
  1131. defb 06ch ;06a5
  1132. defb 06ch ;06a6
  1133. defb 020h ;06a7
  1134. defb 053h ;06a8
  1135. defb 065h ;06a9
  1136. defb 072h ;06aa
  1137. defb 076h ;06ab
  1138. defb 069h ;06ac
  1139. defb 063h ;06ad
  1140. defb 065h ;06ae
  1141. call delayloop ;06af 0057dh
  1142. call delayloop ;06b2 0057dh
  1143. call delayloop ;06b5 0057dh
  1144. call setupclearscreen2 ;06b8 00503h
  1145. call readydisk ;06bb 003d9h
  1146. pop bc ;06be
  1147. scf ;06bf
  1148. ret ;06c0
  1149. call 004c7h ;06c1
  1150. ld a,b ;06c4
  1151. ld (0ff85h),a ;06c5
  1152. ld a,c ;06c8
  1153. ld (0ff86h),a ;06c9
  1154. ld a,d ;06cc
  1155. ld (0ff87h),a ;06cd
  1156. push bc ;06d0
  1157. push hl ;06d1
  1158. call 00723h ;06d2
  1159. jp c,006fbh ;06d5
  1160. ld hl,0ff83h ;06d8
  1161. ld bc,00678h ;06db
  1162. in a,(079h) ;06de
  1163. and 041h ;06e0
  1164. jr nz,$-4 ;06e2
  1165. outi ;06e4
  1166. jr nz,$-8 ;06e6
  1167. out (07ah),a ;06e8 ?????
  1168. nop ;06ea
  1169. in a,(079h) ;06eb
  1170. and 044h ;06ed
  1171. jr nz,$-4 ;06ef
  1172. out (07bh),a ;06f1 ????
  1173. call reading2 ;06f3 00738h
  1174. and 002h ;06f6
  1175. call nz,006ffh ;06f8
  1176. pop hl ;06fb
  1177. pop bc ;06fc
  1178. inc bc ;06fd
  1179. ret ;06fe
  1180. call reading ;06ff 00723h
  1181. ret c ;0702
  1182. ld a,003h ;0703
  1183. call 0074dh ;0705
  1184. ld bc,00478h ;0708
  1185. ld hl,0ff89h ;070b
  1186. in a,(079h) ;070e
  1187. cp 00fh ;0710
  1188. jr nz,$-4 ;0712
  1189. ini ;0714
  1190. jr nz,$-8 ;0716
  1191. call reading2 ;0718 00738h
  1192. ld a,(0ff89h) ;071b
  1193. sub 098h ;071e
  1194. ret z ;0720
  1195. scf ;0721
  1196. ret ;0722
  1197. reading:
  1198. in a,(079h) ;0723
  1199. and 080h ;0725
  1200. scf ;0727
  1201. ret z ;0728
  1202. ld a,001h ;0729
  1203. out (079h),a ;072b ????
  1204. ld b,0ffh ;072d
  1205. in a,(079h) ;072f
  1206. and 080h ;0731
  1207. ret z ;0733
  1208. djnz $-5 ;0734
  1209. scf ;0736
  1210. ret ;0737
  1211. reading2:
  1212. in a,(079h) ;0738
  1213. and 044h ;073a
  1214. jr nz,$-4 ;073c
  1215. in a,(078h) ;073e
  1216. ld b,a ;0740
  1217. in a,(079h) ;0741
  1218. and 042h ;0743
  1219. jr nz,$-4 ;0745
  1220. in a,(078h) ;0747
  1221. ld a,b ;0749
  1222. ret ;074a
  1223. moveoutreseta:
  1224. ld a,000h ;074b
  1225. moveout:
  1226. call stepout ;074d 00760h
  1227. ld a,(0ff84h) ;0750
  1228. call stepout ;0753 00760h
  1229. ld a,000h ;0756
  1230. ld b,004h ;0758
  1231. call stepout ;075a 00760h
  1232. djnz $-3 ;075d
  1233. ret ;075f
  1234. stepout:
  1235. push af ;0760
  1236. in a,(079h) ;0761
  1237. and 041h ;0763
  1238. jr nz,$-4 ;0765
  1239. pop af ;0767
  1240. out (078h),a ;0768 Step out
  1241. ret ;076a
  1242. ld a,00ch ;076b
  1243. call moveout ;076d 0074dh
  1244. ld bc,00878h ;0770
  1245. in a,(079h) ;0773
  1246. cp 007h ;0775
  1247. jr nz,$-4 ;0777
  1248. outi ;0779
  1249. jr nz,$-8 ;077b
  1250. jr $-69 ;077d
  1251. ld a,0e4h ;077f
  1252. call steproutine ;0781 00794h
  1253. ret z ;0784
  1254. jp 00681h ;0785
  1255. call reading ;0788 00723h
  1256. ret c ;078b
  1257. ld a,001h ;078c
  1258. call steproutine ;078e 00794h
  1259. ret z ;0791
  1260. jr $+11 ;0792
  1261. steproutine:
  1262. call moveout ;0794 0074dh
  1263. call reading2 ;0797 00738h
  1264. and 002h ;079a
  1265. ret ;079c
  1266. call screenclearnetry2 ;079d 0056bh
  1267. rst 10h ;07a0
  1268. defb 027h ;07a1 count 39
  1269. defb 045h ;07a2 Error 3: Disk Malfunction, Call Service
  1270. defb 072h ;07a3
  1271. defb 072h ;07a4
  1272. defb 06fh ;07a5
  1273. defb 072h ;07a6
  1274. defb 020h ;07a7
  1275. defb 033h ;07a8
  1276. defb 03ah ;07a9
  1277. defb 020h ;07aa
  1278. defb 044h ;07ab
  1279. defb 069h ;07ac
  1280. defb 073h ;07ad
  1281. defb 06bh ;07ae
  1282. defb 020h ;07af
  1283. defb 04dh ;07b0
  1284. defb 061h ;07b1
  1285. defb 06ch ;07b2
  1286. defb 066h ;07b3
  1287. defb 075h ;07b4
  1288. defb 06eh ;07b5
  1289. defb 063h ;07b6
  1290. defb 074h ;07b7
  1291. defb 069h ;07b8
  1292. defb 06fh ;07b9
  1293. defb 06eh ;07ba
  1294. defb 02ch ;07bb
  1295. defb 020h ;07bc
  1296. defb 043h ;07bd
  1297. defb 061h ;07be
  1298. defb 06ch ;07bf
  1299. defb 06ch ;07c0
  1300. defb 020h ;07c1
  1301. defb 053h ;07c2
  1302. defb 065h ;07c3
  1303. defb 072h ;07c4
  1304. defb 076h ;07c5
  1305. defb 069h ;07c6
  1306. defb 063h ;07c7
  1307. defb 065h ;07c8
  1308. halt ;07c9
  1309. ld bc,00432h ;07ca
  1310. ld bc,00031h ;07cd
  1311. ld b,b ;07d0
  1312. dec bc ;07d1
  1313. ld b,000h ;07d2
  1314. sub l ;07d4
  1315. rst 38h ;07d5
  1316. ld bc,00232h ;07d6
  1317. ld bc,00031h ;07d9
  1318. ld b,b ;07dc
  1319. dec bc ;07dd
  1320. ld b,000h ;07de
  1321. ld c,d ;07e0
  1322. rst 38h ;07e1
  1323. nop ;07e2
  1324. nop ;07e3
  1325. ld c,d ;07e4
  1326. rst 38h ;07e5
  1327. rst 38h ;07e6
  1328. rst 38h ;07e7
  1329. rst 38h ;07e8
  1330. rst 38h ;07e9
  1331. rst 38h ;07ea
  1332. rst 38h ;07eb
  1333. rst 38h ;07ec
  1334. rst 38h ;07ed
  1335. rst 38h ;07ee
  1336. rst 38h ;07ef
  1337. rst 38h ;07f0
  1338. rst 38h ;07f1
  1339. rst 38h ;07f2;
  1340. rst 38h ;07f3
  1341. rst 38h ;07f4
  1342. rst 38h ;07f5
  1343. rst 38h ;07f6
  1344. rst 38h ;07f7
  1345. rst 38h ;07f8
  1346. rst 38h ;07f9
  1347. rst 38h ;07fa
  1348. rst 38h ;07fb
  1349. rst 38h ;07fc
  1350. rst 38h ;07fd
  1351. rst 38h ;07fe
  1352. rst 38h ;07ff