home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / KAYPRO / KAYDIAG.LBR / LOMEM.MQC / LOMEM.MAC
Text File  |  2000-06-30  |  19KB  |  780 lines

  1. 00010 ;Z80
  2. 00020 ;KAYPRO MEMORY TEST ROUTINE
  3. 00030 ;THIS ROUTINE RELOCATES THE MEMORY TEST PROGRAM TO
  4. 00040 ;HIGH MEMORY AND INITIALIZES THE KAYPRO FOR THE TEST
  5. 00050 ;
  6. 00060 ;WRITTEN BY LARRY KRAEMER 09/25/83
  7. 00070 ;
  8. 00080 ;FIRST MOVE THE PROGRAM TO HIGH MEMORY AND THEN START
  9. 00090 ;THE TEST.  SELECT THE VIDEO PAGE, TURN OFF THE DRIVES,
  10. 00100 ;TURN OFF THE DRIVE LED'S, AND THEN CLEAR THE SCREEN.
  11. 00110 ;THE TEST WILL RUN UNTIL POWER IS TURNED OFF OR THE
  12. 00120 ;SYSTEM IS REBOOTED.
  13. 00130 ;WRITTEN AND ASSEMBLED ON A RADIO SHACK MODEL 1.
  14. 00140 INIT    EQU    5F00H
  15. 00150 INIT1    EQU    5100H
  16. 00160 DEST    EQU    6000H
  17. 00170 LOOP    EQU    INIT+3DH
  18. 00180 MSG1    EQU    INIT+60H
  19. 00190 MSG2    EQU    INIT+7DH
  20. 00200 MSG3    EQU    INIT+95H
  21. 00210 EROR    DEFL    604EH
  22. 00220 DELAY    DEFL    5FCDH
  23. 00230 DELAY0    DEFL    5FD0H
  24. 00240 DELAY1    DEFL    5FD3H
  25. 00250 AON    DEFL    5FB1H
  26. 00260 AOFF    DEFL    5FB8H
  27. 00270 BON    DEFL    5FBFH
  28. 00280 BOFF    DEFL    5FC6H
  29. 00290 VIDON    DEFL    5FE0H
  30. 00300 VIDOF    DEFL    5FE9H
  31. 00310 BEGN    EQU    6000H
  32. 00320 MOOR    EQU    6012H
  33. 00330 SCREN    DEFL    607AH
  34. 00340 PRIT    DEFL    60A0H
  35. 00350 AGIN    DEFL    6081H
  36. 00360 RETN    DEFL    609BH
  37. 00370 DON    DEFL    608BH
  38. 00380 CONVT    DEFL    60ADH
  39. 00390 DLEY    DEFL    60B9H
  40. 00400 MESAG    EQU    5189H
  41. 00410 MESAG1    EQU    5199H
  42. 00420 MESAG2    EQU    51CFH
  43. 00430 MESAG3    EQU    5206H
  44. 00440 MESAG4    EQU    523BH
  45. 00450 MESAG5    EQU    5274H
  46. 00460 MESAG6    EQU    52A6H
  47. 00470 MESAG7    EQU    52B4H
  48. 00480 MESAG8    EQU    52C0H
  49. 00490 ZIP    EQU    52D3H
  50. 00500         ORG    0100H        ;ORGIN IS 0100H
  51. 00510 START    LD    HL,CVR        ;POINT TO COVER PAGE
  52. 00520         LD    DE,INIT1    ;DESTINATION
  53. 00530         LD    BC,ECVR-CVR    ;NUMBER OF BYTES
  54. 00540         LDIR            ;MOVE IT
  55. 00550          LD    HL,RAM        ;POINT TO SOURCE
  56. 00560         LD    DE,INIT        ;POINT TO DESTINATION
  57. 00570         LD    BC,ERAM-RAM    ;NUMBER OF BYTES
  58. 00580         LDIR            ;BLOCK MOVE IT HIGH
  59. 00590         LD    HL,RAM1        ;POINT TO SOURCE
  60. 00600         LD    DE,DEST        ;POINT TO DESTINATION
  61. 00610         LD    BC,ERAM1-RAM1    ;NUMBER OF BYTES
  62. 00620         LDIR            ;MOVE IT HIGH
  63. 00630         JP    INIT1        ;JUMP HIGH AND INIT
  64. 00640 RAM    IN    A,(01CH)    ;READ SYSTEM STATUS PORT
  65. 00650         SET    7,A        ;TURN ON VIDEO PAGE
  66. 00660         SET    6,A        ;TURN OFF DRIVES
  67. 00670         RES    0,A        ;TURN OFF DRIVE LIGHT A
  68. 00680         RES    1,A        ;TURN OFF DRIVE LIGHT B
  69. 00690         OUT    (01CH),A    ;SEND TO PORT 1CH
  70. 00700         LD    HL,3000H    ;START OF VIDEO PAGE
  71. 00710         LD    DE,3001H    ;NEXT ADDR
  72. 00720         LD    BC,0BFFH    ;TOTAL VIDEO PAGE
  73. 00730         LD    (HL),20H    ;CLEAR SCREEN
  74. 00740         LDIR            ;BLOCK MOVE
  75. 00750         LD    HL,MSG1     ;POINT TO MESSAGE 1
  76. 00760         LD    DE,3419H    ;STORE ON SCREEN
  77. 00770         LD    BC,1DH        ;NUMBER OF BYTES
  78. 00780         LDIR            ;MOVE IT
  79. 00790         LD    HL,MSG2     ;POINT TO MESSAGE 2
  80. 00800         LD    DE,351BH    ;STORE ON SCREEN
  81. 00810         LD    BC,18H        ;NUMBER OF BYTES
  82. 00820         LDIR            ;MOVE IT
  83. 00830         LD    HL,MSG3     ;POINT TO MESSAGE 3
  84. 00840         LD    DE,3619H    ;STORE ON SCREEN
  85. 00850         LD    BC,1CH        ;NUMBER OF BYTES
  86. 00860         LDIR            ;MOVE IT
  87. 00870 LP     LD    BC,06H        ;6 TIMES THRU LOOP
  88. 00880 LOP    PUSH    BC        ;SAVE COUNT
  89. 00890         CALL    DELAY        ;DELAY SOME
  90. 00900         CALL    AON          ;TURN ON A LED
  91. 00910         CALL    DELAY        ;WAIT
  92. 00920         CALL    AOFF         ;TURN OFF A LED
  93. 00930         CALL    DELAY        ;WAIT
  94. 00940         CALL    BON          ;TURN ON B LED
  95. 00950         CALL     DELAY        ;WAIT
  96. 00960         CALL     BOFF         ;TURN OFF B LED
  97. 00970         POP    BC        ;RESTORE COUNT
  98. 00980         DEC    BC        ;SUBTRACT 1
  99. 00990         LD    A,B        ;CHECK FOR ZERO
  100. 01000         OR    C        ;OR DO AGAIN
  101. 01010         JP    NZ,LOOP     ;DO AGAIN
  102. 01020         JP    DEST        ;START MEMORY TEST NOW
  103. 01030 MSG01    DEFB    4BH        ;K
  104. 01040         DEFB    41H        ;A
  105. 01050         DEFB    59H        ;Y
  106. 01060         DEFB    50H        ;P
  107. 01070         DEFB    52H        ;R
  108. 01080         DEFB    4FH        ;O
  109. 01090         DEFB    20H        ;SPACE
  110. 01100         DEFB    49H        ;I
  111. 01110         DEFB    49H        ;I
  112. 01120         DEFB    20H        ;SPACE
  113. 01130         DEFB    4DH        ;M
  114. 01140         DEFB    45H        ;E
  115. 01150         DEFB    4DH        ;M
  116. 01160         DEFB    4FH        ;O
  117. 01170         DEFB    52H        ;R
  118. 01180         DEFB    59H        ;Y
  119. 01190         DEFB    20H        ;SPACE
  120. 01200         DEFB    54H        ;T
  121. 01210         DEFB    45H        ;E
  122. 01220         DEFB    53H        ;S
  123. 01230         DEFB    54H        ;T
  124. 01240         DEFB    20H        ;SPACE
  125. 01250         DEFB    50H        ;P
  126. 01260         DEFB    52H        ;R
  127. 01270         DEFB    4FH        ;O
  128. 01280         DEFB    47H        ;G
  129. 01290         DEFB    52H        ;R
  130. 01300         DEFB    41H        ;A
  131. 01310         DEFB    4DH        ;M
  132. 01320 MSG02    DEFB    54H        ;T
  133. 01330         DEFB    65H        ;E
  134. 01340         DEFB    73H        ;S
  135. 01350         DEFB    74H        ;T
  136. 01360         DEFB    69H        ;I
  137. 01370         DEFB    6EH        ;N
  138. 01380         DEFB    67H        ;G
  139. 01390         DEFB    20H        ;SP
  140. 01400         DEFB    30H        ;0
  141. 01410         DEFB    30H        ;0
  142. 01420         DEFB    30H        ;0
  143. 01430         DEFB    01H        ;1
  144. 01440         DEFB    68H        ;H
  145. 01450         DEFB    20H        ;SP
  146. 01460         DEFB    74H        ;T
  147. 01470         DEFB    68H        ;H
  148. 01480         DEFB    72H        ;R
  149. 01490         DEFB    75H        ;U
  150. 01500         DEFB    20H        ;SP
  151. 01510         DEFB    34H        ;4
  152. 01520         DEFB    31H        ;1
  153. 01530         DEFB    30H        ;0
  154. 01540         DEFB    30H        ;0
  155. 01550         DEFB    68H        ;H
  156. 01560 MSG03    DEFB    54H        ;T
  157. 01570         DEFB    65H        ;E
  158. 01580         DEFB    73H        ;S
  159. 01590         DEFB    74H        ;T
  160. 01600         DEFB    20H        ;SP
  161. 01610         DEFB    62H        ;B
  162. 01620         DEFB    61H        ;A
  163. 01630         DEFB    64H        ;D
  164. 01640         DEFB    20H        ;SP
  165. 01650         DEFB    61H        ;A
  166. 01660         DEFB    64H        ;D
  167. 01670         DEFB    64H        ;D
  168. 01680         DEFB    72H        ;R
  169. 01690         DEFB    65H        ;E
  170. 01700         DEFB    73H        ;S
  171. 01710         DEFB    73H        ;S
  172. 01720         DEFB    20H        ;SP
  173. 01730         DEFB    77H        ;W
  174. 01740         DEFB    69H        ;I
  175. 01750         DEFB    74H        ;T
  176. 01760         DEFB    68H        ;H
  177. 01770         DEFB    20H        ;SP
  178. 01780         DEFB    42H        ;B
  179. 01790         DEFB    69H        ;I
  180. 01800         DEFB    74H        ;T
  181. 01810         DEFB    63H        ;C
  182. 01820         DEFB    68H        ;H
  183. 01830         DEFB    6BH        ;K
  184. 01840 DAON    IN    A,(1CH)        ;GET STATUS BYTE
  185. 01850         SET    0,A        ;TURN ON LED
  186. 01860         OUT    (1CH),A        ;OUT TO PORT
  187. 01870         RET
  188. 01880 DAOFF    IN    A,(1CH)        ;GET STATUS BYTE
  189. 01890         RES    0,A        ;TURN OFF LED
  190. 01900         OUT    (1CH),A        ;OUT TO PORT
  191. 01910         RET
  192. 01920 DBON    IN    A,(1CH)        ;GET STATUS BYTE
  193. 01930         SET    1,A        ;TURN ON LED
  194. 01940         OUT    (1CH),A        ;OUT TO PORT
  195. 01950         RET
  196. 01960 DBOFF    IN    A,(1CH)        ;GET STATUS BYTE
  197. 01970         RES    1,A        ;TURN OFF LED
  198. 01980         OUT    (1CH),A        ;OUT TO PORT
  199. 01990         RET
  200. 02000 DELY    LD    BC,0002H    ;TWO TIMES THRU
  201. 02010 DELY0    LD    HL,00H        ;TIMES FF
  202. 02020 DELY1    DEC    HL        ;SUBTRACT ONE
  203. 02030         LD    A,H        ;CHECK FOR ZERO
  204. 02040         OR    L        ;LOOP AGAIN IF NOT 0
  205. 02050         JP    NZ,DELAY1    ;JUMP HERE
  206. 02060         DEC    BC        ;DEC BC BY ONE
  207. 02070         LD    A,B        ;CHECK FOR ZERO
  208. 02080         OR    C        ;HERE TO
  209. 02090         JP    NZ,DELAY0
  210. 02100         RET
  211. 02110 VON    PUSH    AF        ;SAVE REG PAIR
  212. 02120         IN    A,(1CH)        ;GET STATUS BYTE
  213. 02130         SET    7,A        ;TURN ON VIDEO
  214. 02140         OUT    (1CH),A        ;SEND OUT TO PORT
  215. 02150         POP    AF        ;RESTORE
  216. 02160         RET
  217. 02170 VOF    PUSH    AF        ;SAVE REG PAIR
  218. 02180         IN     A,(1CH)        ;GET STATUS BYTE
  219. 02190         RES    7,A        ;TURN OFF VIDEO
  220. 02200         OUT    (1CH),A        ;SEND TO PORT
  221. 02210         POP    AF        ;RESTORE
  222. 02220         RET
  223. 02230 ERAM    DEFB    00H        ;END MARKER
  224. 02240         NOP
  225. 02250         NOP
  226. 02260         NOP
  227. 02270         NOP
  228. 02280         NOP
  229. 02290         NOP
  230. 02300         NOP
  231. 02310         NOP
  232. 02320         NOP
  233. 02330         NOP
  234. 02340         NOP
  235. 02350 ;********************************************************
  236. 02360 ;THIS RAM CHECKING PROGRAM WILL TEST ALL MEMORY FROM
  237. 02370 ;0001H THRU 4100H.  IT WILL ROOT THRU MEMORY AND
  238. 02380 ;FIND ANY ERRORS THAT MAY OCCUR.  LET IT RUN FOR
  239. 02390 ;SEVERAL HOURS AND TEST ANY BAD ADDRESSES DISPLAYED
  240. 02400 ;IN THE TOP LEFT OF THE SCREEN WITH THE BITCKECKING
  241. 02410 ;PROGRAM.  THIS PROGRAM WILL RUN UNTIL POWER IS
  242. 02420 ;DROPPED OR SYSTEM IS REBOOTED.
  243. 02430 ;********************************************************
  244. 02440 ;********************************************************
  245. 02450 ;WRITTEN BY LARRY KRAEMER FOR THE KAYPRO II  09/25/83
  246. 02460 ;********************************************************
  247. 02470 ;********************************************************
  248. 02480 RAM1    CALL    VIDON        ;TURN ON VIDEO PAGE
  249. 02490         LD    A,(3BCFH)    ;GET SCREEN VALUE
  250. 02500         XOR    0AH        ;STAR/SPACE
  251. 02510         LD    (3BCFH),A    ;STORE ON SCREEN
  252. 02520         CALL    VIDOF        ;TURN OFF VIDEO PAGE
  253. 02530 AGN    LD    HL,0001H    ;FIRST TEST LOCATION
  254. 02540         XOR    A        ;CLEAR REG A
  255. 02550 MORE    LD    (HL),A        ;PLACE VALUE IN MEMORY
  256. 02560         LD    C,A        ;PUT VALUE IN REG C
  257. 02570         PUSH     AF        ;SAVE REG'S AF
  258. 02580         LD    A,C        ;GET VALUE FROM C
  259. 02590         LD    (HL),A        ;PLACE VALUE IN MEMORY
  260. 02600         INC    HL        ;POINT TO NEXT TEST ADDR
  261. 02610         CALL    VIDON        ;TURN ON VIDEO PAGE
  262. 02620         LD    (3927H),HL    ;DISPLAY TO SCREEN
  263. 02630         CALL    VIDOF        ;TURN OFF VIDEO PAGE
  264. 02640         LD    A,H        ;GET MSB OF ADDR
  265. 02650         CP    41H        ;TOP OF TEST ADDRESS
  266. 02660         JP    Z,BEGN        ;DONE SO START OVER
  267. 02670         POP    AF        ;RESTORE ORIG TEST ADDR
  268. 02680         LD    (HL),A        ;PUT VALUE IN MEMORY
  269. 02690         DEC    HL        ;BACK TO ORIG ADDR
  270. 02700         DEC    HL        ;BACK TO PREVIOUS ADDR
  271. 02710         LD    (HL),A        ;PUT VALUE IN MEMORY
  272. 02720         LD    B,A        ;SAVE VALUE IN B REG
  273. 02730         LD    A,(HL)        ;GET VALUE AT LOC'N HL
  274. 02740         CP    B        ;CHECK AGAINST REG B
  275. 02750         CALL    NZ,EROR     ;ERROR HAS OCCURED
  276. 02760         INC    HL        ;GET ORIG TEST POS'N
  277. 02770         INC     HL        ;GO ONE BEYOND
  278. 02780         LD    A,(HL)        ;GET VALUE AT THAT POS'N
  279. 02790         CP    B        ;CHECK AGAINST REG B
  280. 02800         CALL    NZ,EROR     ;ERROR HAS OCCURED
  281. 02810 ;********************************************************
  282. 02820 ;CHANGE THIS INSTRUCTION TO CALL  Z,EROR  IF YOU WANT
  283. 02830 ;TO SEE THE PROGRAM WORK.  IT WILL DISPLAY THE TEST
  284. 02840 ;ADDRESS AS BAD DURING EACH LOOP OF THE PROGRAM.
  285. 02850 ;THIS WILL SLOW THE TEST DOWN A LOT, BUT IT IS GOOD
  286. 02860 ;TO KNOW THAT IT ALL WORKS.  GOOD LUCK !!!!!
  287. 02870 ;IF YOU HAVE PROBLEMS DON'T CALL ME $#"!"#$%&'()**
  288. 02880 ;BECAUSE I COULDN'T FIGURE IT OUT EITHER.
  289. 02890 ;********************************************************
  290. 02900         DEC    HL        ;BACK TO ORIG POS'N
  291. 02910         LD    A,(HL)        ;BACK TO ORIG POS'N
  292. 02920         CP    B        ;CHECK AGAINST REG B
  293. 02930         CALL    NZ,EROR        ;ERROR HAS OCCURED
  294. 02940         INC    (HL)        ;INC VALUE IN MEMORY
  295. 02950         INC    C        ;INC TEST VALUE
  296. 02960         LD    A,(HL)        ;GET VALUE IN MEMORY
  297. 02970         LD    B,A        ;SAVE VALUE IN REG B
  298. 02980         CP    00H        ;256 BYTES DONE?
  299. 02990         JP    NZ,MOOR        ;LOOP BACK FOR 256
  300. 03000         INC    HL        ;GET NEXT MEMORY VALUE
  301. 03010         LD    C,0H        ;RESET TEST VALUE TO 0
  302. 03020         JP    MOOR         ;DO AGAIN AND AGAIN
  303. 03030 ;
  304. 03040 ;********************************************************
  305. 03050 ;THIS SUBROUTINE IS ENTERED IF A BAD MEMORY LOCATION IS
  306. 03060 ;FOUND.  IT CONVERTS HEX VALUES TO ASCII AND DISPLAYS
  307. 03070 ;THE BAD ADDRESS TO THE SCREEN.
  308. 03080 ;********************************************************
  309. 03090 ;
  310. 03100 ERRR    PUSH    AF        ;SAVE REG'S
  311. 03110         PUSH    BC
  312. 03120         PUSH    HL
  313. 03130         PUSH    DE
  314. 03140         LD    A,H        ;GET VALUE FROM H REG
  315. 03150         AND    0F0H        ;MASK OFF LOW BITS
  316. 03160         RRCA            ;ROTATE RIGHT 4 TIMES
  317. 03170         RRCA
  318. 03180         RRCA
  319. 03190         RRCA
  320. 03200         CALL    SCREN        ;CHECK THE SCREEN ROUTINE
  321. 03210         CALL    PRIT        ;PRINT IT
  322. 03220         LD    A,H        ;GET NEXT ONE TO PRINT
  323. 03230         AND    0FH        ;MASK OFF HIGH BITS
  324. 03240         CALL    PRIT        ;THEN PRINT IT
  325. 03250         LD    A,L        ;GET NEXT ONT AND PRINT
  326. 03260         AND    0F0H        ;MASK OFF HIGH BITS
  327. 03270         RRCA            ;ROTATE 4 TIMES
  328. 03280         RRCA
  329. 03290         RRCA
  330. 03300         RRCA
  331. 03310         CALL    PRIT        ;PRINT NEXT LETTER OF ADDR
  332. 03320         LD    A,L        ;GET LAST ONE
  333. 03330         AND    0FH        ;AND PRINT IT
  334. 03340         CALL     PRIT
  335. 03350         POP    DE        ;RESTORE ALL REG'S
  336. 03360         POP    HL
  337. 03370         POP    BC
  338. 03380         POP    AF
  339. 03390         RET
  340. 03400 SCRN    PUSH    AF        ;SAVE REG'S
  341. 03410         CALL    VIDON        ;TURN ON VIDEO
  342. 03420         LD    DE,3000H    ;3000H KAY
  343. 03430 AGAN    LD    A,(DE)        ;CHECK SCREEN
  344. 03440         CP    20H        ;IS IT A SPACE ??
  345. 03450         JP    Z,DON        ;SPACE SO CONTINUE
  346. 03460         INC    DE        ;CHECK NEXT ONE
  347. 03470         JP    AGIN        ;DO FOR 4 OR SPACE
  348. 03480 DONE    LD    A,E        ;CHECK ADDRESS OF POINTER
  349. 03490         CP    04H        ;LAST ONE ??
  350. 03500         JP    NZ,RETN        ;LAST ONE SO RETURN
  351. 03510         LD    A,20H        ;FILL SCREEN WITH SPACES
  352. 03520         DEC    DE
  353. 03530         LD    (DE),A
  354. 03540         DEC    DE
  355. 03550         LD    (DE),A
  356. 03560         DEC    DE
  357. 03570         LD    (DE),A
  358. 03580         DEC    DE
  359. 03590         LD    (DE),A
  360. 03600 RETR    CALL    VIDOF        ;TURN OFF VIDEO
  361. 03610         POP    AF        ;RESTORE REG'S
  362. 03620         RET
  363. 03630 PRNT    PUSH    AF        ;SAVE REG'S
  364. 03640         CALL    VIDON        ;TURN ON VIDEO
  365. 03650         CP    0AH        ;>= 10 ?
  366. 03660         JP    NC,CONVT    ;NO SO CONVERT
  367. 03670         ADD    A,30H        ;ADD 30 TO A
  368. 03680         JR    $+4        ;JUMP AHEAD SOME
  369. 03690 CVT    ADD    A,37H        ;ADD MOR
  370. 03700        LD    (DE),A        ;STORE ON SCREEN
  371. 03710         CALL    DLEY        ;DELAY SOME
  372. 03720         CALL    VIDOF        ;TURN OFF VIDEO
  373. 03730         INC    DE        ;RESTORE REG'S
  374. 03740         POP    AF
  375. 03750         RET
  376. 03760 DLAY    PUSH    BC        ;SAVE BC
  377. 03770         LD    B,0FFH        ;256 TIMES
  378. 03780         DJNZ     $-0        ;DO UNTIL 00
  379. 03790         POP    BC        ;RESTORE BC
  380. 03800         RET
  381. 03810 ERAM1    DEFB    00H        ;END MARKER
  382. 03820          DEFB    00H
  383. 03830         DEFB    00H
  384. 03840         DEFB    00H
  385. 03850         DEFB    00H
  386. 03860         DEFB    00H
  387. 03870         DEFB    00H
  388. 03880         DEFB    00H
  389. 03890         DEFB    00H
  390. 03900         DEFB    00H
  391. 03910         DEFB    00H
  392. 03920         DEFB    00H
  393. 03930         DEFB    00H
  394. 03940         DEFB    00H
  395. 03950 CVR    IN    A,(1CH)
  396. 03960     SET    7,A
  397. 03970         SET    6,A
  398. 03980         RES    0,A
  399. 03990         RES    1,A
  400. 04000         OUT    (1CH),A
  401. 04010         LD    HL,3000H
  402. 04020         LD    DE,3001H
  403. 04030         LD    BC,0BFFH
  404. 04040         LD    (HL),20H
  405. 04050         LDIR
  406. 04060         LD    HL,MESAG
  407. 04070         LD    DE,3420H
  408. 04080         LD    BC,MESAG1-MESAG
  409. 04090         LDIR
  410. 04100         LD    HL,MESAG1
  411. 04110         LD    DE,3510H
  412. 04120         LD    BC,MESAG2-MESAG1
  413. 04130         LDIR
  414. 04140         LD    HL,MESAG2
  415. 04150         LD    DE,3590H
  416. 04160         LD    BC,MESAG3-MESAG2
  417. 04170         LDIR
  418. 04180         LD    HL,MESAG3
  419. 04190         LD    DE,3610H
  420. 04200         LD    BC,MESAG4-MESAG3
  421. 04210         LDIR
  422. 04220         LD    HL,MESAG4
  423. 04230         LD    DE,3690H
  424. 04240         LD    BC,MESAG5-MESAG4
  425. 04250         LDIR
  426. 04260         LD    HL,MESAG5
  427. 04270         LD    DE,3710H
  428. 04280         LD    BC,MESAG6-MESAG5
  429. 04290         LDIR
  430. 04300         LD    HL,MESAG6
  431. 04310         LD    DE,3820H
  432. 04320         LD    BC,MESAG7-MESAG6
  433. 04330         LDIR
  434. 04340         LD    HL,MESAG7
  435. 04350         LD    DE,38A0H
  436. 04360         LD    BC,MESAG8-MESAG7
  437. 04370         LDIR
  438. 04380         LD    HL,MESAG8
  439. 04390         LD    DE,3920H
  440. 04400         LD    BC,ZIP-MESAG8
  441. 04410         LDIR
  442. 04420         NOP
  443. 04430         LD    BC,30H
  444. 04440         CALL    DELAY0
  445. 04450         CALL    DELAY
  446. 04460         JP    INIT
  447. 04470 MEG0    DEFB    47H
  448. 04480         DEFB    52H
  449. 04490         DEFB    45H
  450. 04500         DEFB    45H
  451. 04510         DEFB    54H
  452. 04520         DEFB    49H
  453. 04530         DEFB    4EH
  454. 04540         DEFB    47H
  455. 04550         DEFB    53H
  456. 04560         DEFB    20H
  457. 04570         DEFB    20H
  458. 04580         DEFB    21H
  459. 04590         DEFB    20H
  460. 04600         DEFB    21H
  461. 04610         DEFB    20H
  462. 04620         DEFB    21H
  463. 04630 MEG1    DEFB    54H
  464. 04640         DEFB    68H
  465. 04650         DEFB    69H
  466. 04660         DEFB    73H
  467. 04670         DEFB    20H
  468. 04680         DEFB    44H
  469. 04690         DEFB    69H
  470. 04700         DEFB    61H
  471. 04710         DEFB    67H
  472. 04720         DEFB    6EH
  473. 04730         DEFB    6FH
  474. 04740         DEFB    73H
  475. 04750         DEFB    74H
  476. 04760         DEFB    69H
  477. 04770         DEFB    63H
  478. 04780         DEFB    20H
  479. 04790         DEFB    50H
  480. 04800         DEFB    72H
  481. 04810         DEFB    6FH
  482. 04820         DEFB    67H
  483. 04830         DEFB    72H
  484. 04840         DEFB    61H
  485. 04850         DEFB    6DH
  486. 04860         DEFB    20H
  487. 04870         DEFB    49H
  488. 04880         DEFB    73H
  489. 04890         DEFB    20H
  490. 04900         DEFB    46H
  491. 04910         DEFB    75H
  492. 04920         DEFB    72H
  493. 04930         DEFB    6EH
  494. 04940         DEFB    69H
  495. 04950         DEFB    73H
  496. 04960         DEFB    68H
  497. 04970         DEFB    65H
  498. 04980         DEFB    64H
  499. 04990         DEFB    20H
  500. 05000         DEFB    42H
  501. 05010         DEFB    79H
  502. 05020         DEFB    20H
  503. 05030         DEFB    4CH
  504. 05040         DEFB    61H
  505. 05050         DEFB    72H
  506. 05060         DEFB    72H
  507. 05070         DEFB    79H
  508. 05080         DEFB    20H
  509. 05090         DEFB    4BH
  510. 05100         DEFB    72H
  511. 05110         DEFB    61H
  512. 05120         DEFB    65H
  513. 05130         DEFB    6DH
  514. 05140         DEFB    65H
  515. 05150         DEFB    72H
  516. 05160         DEFB    20H
  517. 05170 MEG2    DEFB    46H
  518. 05180         DEFB    6FH
  519. 05190         DEFB    72H
  520. 05200         DEFB    20H
  521. 05210         DEFB    41H
  522. 05220         DEFB    6CH
  523. 05230         DEFB    6CH
  524. 05240         DEFB    20H
  525. 05250         DEFB    4BH
  526. 05260         DEFB    61H
  527. 05270         DEFB    79H
  528. 05280         DEFB    70H
  529. 05290         DEFB    72H
  530. 05300         DEFB    6FH
  531. 05310         DEFB    20H
  532. 05320         DEFB    49H
  533. 05330         DEFB    49H
  534. 05340         DEFB    20H
  535. 05350         DEFB    4FH
  536. 05360         DEFB    77H
  537. 05370         DEFB    6EH
  538. 05380         DEFB    65H
  539. 05390         DEFB    72H
  540. 05400         DEFB    73H
  541. 05410         DEFB    2EH
  542. 05420         DEFB    20H
  543. 05430         DEFB    20H
  544. 05440         DEFB    50H
  545. 05450         DEFB    6CH
  546. 05460         DEFB    65H
  547. 05470         DEFB    61H
  548. 05480         DEFB    73H
  549. 05490         DEFB    65H
  550. 05500         DEFB    20H
  551. 05510         DEFB    46H
  552. 05520         DEFB    65H
  553. 05530         DEFB    65H
  554. 05540         DEFB    6CH
  555. 05550         DEFB    20H
  556. 05560         DEFB    46H
  557. 05570         DEFB    72H
  558. 05580         DEFB    65H
  559. 05590         DEFB    65H
  560. 05600         DEFB    20H
  561. 05610         DEFB    54H
  562. 05620         DEFB    6FH
  563. 05630         DEFB    20H
  564. 05640         DEFB    47H
  565. 05650         DEFB    69H
  566. 05660         DEFB    76H
  567. 05670         DEFB    65H
  568. 05680         DEFB    20H
  569. 05690         DEFB    49H
  570. 05700         DEFB    74H
  571. 05710         DEFB    20H
  572. 05720 MEG3    DEFB    54H
  573. 05730         DEFB    6FH
  574. 05740         DEFB    20H    
  575. 05750         DEFB    41H
  576. 05760         DEFB    6EH
  577. 05770         DEFB    79H
  578. 05780         DEFB    6FH
  579. 05790         DEFB    6EH
  580. 05800         DEFB    65H
  581. 05810         DEFB    20H
  582. 05820         DEFB    57H
  583. 05830         DEFB    68H
  584. 05840         DEFB    6FH
  585. 05850         DEFB    20H
  586. 05860         DEFB    4EH
  587. 05870         DEFB    65H
  588. 05880         DEFB    65H
  589. 05890         DEFB    64H
  590. 05900         DEFB    73H
  591. 05910         DEFB    20H
  592. 05920         DEFB    49H
  593. 05930         DEFB    74H
  594. 05940         DEFB    2EH
  595. 05950         DEFB    20H
  596. 05960         DEFB    20H
  597. 05970         DEFB    49H
  598. 05980         DEFB    66H
  599. 05990         DEFB    20H
  600. 06000         DEFB    59H
  601. 06010         DEFB    6FH
  602. 06020         DEFB    75H
  603. 06030         DEFB    20H
  604. 06040         DEFB    57H
  605. 06050         DEFB    6FH
  606. 06060         DEFB    75H
  607. 06070         DEFB    6CH
  608. 06080         DEFB    64H
  609. 06090         DEFB    20H
  610. 06100         DEFB    4CH
  611. 06110         DEFB    69H
  612. 06120         DEFB    6BH
  613. 06130         DEFB    65H
  614. 06140         DEFB    20H
  615. 06150         DEFB    54H
  616. 06160         DEFB    6FH
  617. 06170         DEFB    20H
  618. 06180         DEFB    42H
  619. 06190         DEFB    65H
  620. 06200         DEFB    63H
  621. 06210         DEFB    6FH
  622. 06220         DEFB    6DH
  623. 06230         DEFB    65H
  624. 06240         DEFB    20H
  625. 06250 MEG4    DEFB    41H
  626. 06260         DEFB    20H
  627. 06270         DEFB    52H
  628. 06280         DEFB    65H
  629. 06290         DEFB    67H
  630. 06300         DEFB    69H
  631. 06310         DEFB    73H
  632. 06320         DEFB    74H
  633. 06330         DEFB    65H
  634. 06340         DEFB    72H
  635. 06350         DEFB    65H
  636. 06360         DEFB    64H
  637. 06370         DEFB    20H
  638. 06380         DEFB    4FH
  639. 06390         DEFB    77H
  640. 06400         DEFB    6EH
  641. 06410         DEFB    65H
  642. 06420         DEFB    72H
  643. 06430         DEFB    20H
  644. 06440         DEFB    41H
  645. 06450         DEFB    6EH
  646. 06460         DEFB    64H
  647. 06470         DEFB    20H
  648. 06480         DEFB    52H
  649. 06490         DEFB    65H
  650. 06500         DEFB    63H
  651. 06510         DEFB    65H
  652. 06520         DEFB    69H
  653. 06530         DEFB    76H
  654. 06540         DEFB    65H
  655. 06550         DEFB    20H
  656. 06560         DEFB    41H
  657. 06570         DEFB    6EH
  658. 06580         DEFB    79H
  659. 06590         DEFB    20H
  660. 06600         DEFB    44H
  661. 06610         DEFB    6FH
  662. 06620         DEFB    63H
  663. 06630         DEFB    75H
  664. 06640         DEFB    6DH
  665. 06650         DEFB    65H
  666. 06660         DEFB    6EH
  667. 06670         DEFB    74H
  668. 06680         DEFB    61H
  669. 06690         DEFB    74H
  670. 06700         DEFB    69H
  671. 06710         DEFB    6FH
  672. 06720         DEFB    6EH
  673. 06730         DEFB    2FH
  674. 06740         DEFB    55H
  675. 06750         DEFB    70H
  676. 06760         DEFB    64H
  677. 06770         DEFB    61H
  678. 06780         DEFB    74H
  679. 06790         DEFB    65H
  680. 06800         DEFB    73H
  681. 06810         DEFB    20H
  682. 06820 MEG5    DEFB    54H
  683. 06830         DEFB    6FH
  684. 06840         DEFB    20H
  685. 06850         DEFB    54H
  686. 06860         DEFB    68H
  687. 06870         DEFB    65H
  688. 06880         DEFB    20H
  689. 06890         DEFB    50H
  690. 06900         DEFB    72H
  691. 06910         DEFB    6FH
  692. 06920         DEFB    67H
  693. 06930         DEFB    72H
  694. 06940         DEFB    61H
  695. 06950         DEFB    6DH
  696. 06960         DEFB    20H
  697. 06970         DEFB    53H
  698. 06980         DEFB    65H
  699. 06990         DEFB    6EH
  700. 07000         DEFB    64H
  701. 07010         DEFB    20H
  702. 07020         DEFB    20H
  703. 07030         DEFB    24H
  704. 07040         DEFB    31H
  705. 07050         DEFB    30H
  706. 07060         DEFB    2EH
  707. 07070         DEFB    30H
  708. 07080         DEFB    30H
  709. 07090         DEFB    20H
  710. 07100         DEFB    41H
  711. 07110         DEFB    6CH
  712. 07120         DEFB    6FH
  713. 07130         DEFB    6EH
  714. 07140         DEFB    67H
  715. 07150         DEFB    20H
  716. 07160         DEFB    57H
  717. 07170         DEFB    69H
  718. 07180         DEFB    74H
  719. 07190         DEFB    68H
  720. 07200         DEFB    20H
  721. 07210         DEFB    41H
  722. 07220         DEFB    20H
  723. 07230         DEFB    44H
  724. 07240         DEFB    69H
  725. 07250         DEFB    73H
  726. 07260         DEFB    6BH
  727. 07270         DEFB    20H
  728. 07280         DEFB    54H
  729. 07290         DEFB    6FH
  730. 07300         DEFB    3AH
  731. 07310         DEFB    20H
  732. 07320 MEG6    DEFB    4CH
  733. 07330         DEFB    61H
  734. 07340         DEFB    72H
  735. 07350         DEFB    72H
  736. 07360         DEFB    79H
  737. 07370         DEFB    20H
  738. 07380         DEFB    4BH
  739. 07390         DEFB    72H
  740. 07400         DEFB    61H
  741. 07410         DEFB    65H
  742. 07420         DEFB    6DH
  743. 07430         DEFB    65H
  744. 07440         DEFB    72H
  745. 07450         DEFB    20H
  746. 07460 MEG7    DEFB    52H
  747. 07470         DEFB    23H
  748. 07480         DEFB    32H
  749. 07490         DEFB    20H
  750. 07500         DEFB    42H
  751. 07510         DEFB    6FH
  752. 07520         DEFB    78H
  753. 07530         DEFB    20H
  754. 07540         DEFB    31H
  755. 07550         DEFB    39H
  756. 07560         DEFB    30H
  757. 07570         DEFB    20H
  758. 07580 MEG8    DEFB    4AH
  759. 07590         DEFB    61H
  760. 07600         DEFB    63H
  761. 07610         DEFB    6BH
  762. 07620         DEFB    73H
  763. 07630         DEFB    6FH
  764. 07640         DEFB    6EH
  765. 07650         DEFB    2CH
  766. 07660         DEFB    20H
  767. 07670         DEFB    4DH
  768. 07680         DEFB    4FH
  769. 07690         DEFB    2EH
  770. 07700         DEFB    20H
  771. 07710         DEFB    36H
  772. 07720         DEFB    33H
  773. 07730         DEFB    37H
  774. 07740         DEFB    35H
  775. 07750         DEFB    35H
  776. 07760         DEFB    20H
  777. 07770 ZIPP    DEFB    20H
  778. 07780 ECVR    DEFB    00H
  779. 07790         END    START
  780.