Browse Source

More stuff

Per Mårtensson 9 months ago
parent
commit
42ecf449e6
4 changed files with 3000 additions and 0 deletions
  1. 1681 0
      hw/MONROE_8880.ASM
  2. 1319 0
      hw/monroe_oc8820_r3.00.asm
  3. BIN
      pic/restoring/20221005_104931.jpg
  4. 0 0
      prom/MONROE_8880.ZASM

+ 1681 - 0
hw/MONROE_8880.ASM

@@ -0,0 +1,1681 @@
+0000h	DI		;no interrupt
+0001h	LD SP,FFE8h	;init stack
+0004h	XOR A		;A=0
+0005h	JP 0046h	;go init
+;RST 08 handle - clear top line
+0008h	LD DE,300Ch	;point to screen ram
+000Bh	CALL 031Fh	;go clear top line
+000Eh	NOP		;pass through to display message at return addr
+000Fh	NOP
+;RST 10 handle - display message at return addr
+0010h	POP HL		;get return addr
+0011h	LD C,(HL)	;load count
+0012h	INC HL		;bump
+0013h	LD B,00h
+0015h	JP 0333h
+;gap?
+0018h	RST 38h
+0019h	RST 38h
+001Ah	RST 38h
+001Bh	RST 38h
+001Ch	RST 38h
+001Dh	RST 38h
+001Eh	RST 38h
+001Fh	RST 38h
+0020h	RST 38h
+0021h	RST 38h
+0022h	RST 38h
+0023h	RST 38h
+0024h	RST 38h
+0025h	RST 38h
+0026h	RST 38h
+0027h	RST 38h
+0028h	RST 38h
+0029h	RST 38h
+002Ah	RST 38h
+002Bh	RST 38h
+002Ch	RST 38h
+002Dh	RST 38h
+002Eh	RST 38h
+002Fh	RST 38h
+0030h	RST 38h
+0031h	RST 38h
+0032h	RST 38h
+0033h	RST 38h
+0034h	RST 38h
+0035h	RST 38h
+0036h	RST 38h
+0037h	RST 38h
+0038h	RST 38h
+0039h	RST 38h
+003Ah	RST 38h
+003Bh	RST 38h
+003Ch	RST 38h
+003Dh	RST 38h
+003Eh	RST 38h
+003Fh	RST 38h
+0040h	JP 0000h
+0043h	JP 0000h
+;
+;init
+
+0046h	OUTA (C0h)	;clear io, floppy control
+0048h	OUTA (C4h)  ;Program map A base
+004Ah	OUTA (C5h)  ;Program map B base
+004Ch	OUTA (C6h)  ;DMA map A base
+004Eh	OUTA (C7h)  ;DMA map B base
+0050h	OUTA (D4h)  ;Hi-res color
+0052h	OUTA (D8h)  ;Hi-res start
+0054h	LD HL,005Ah
+0057h	JP 0354h	;do OTIR loop on following data
+;table for OTIR loop
+005Ah	DB 0B8h		;io port CRT register select
+005Bh	DB 4		;count 4
+005Ch	0CFh		;data
+005Dh	0B8h
+005Eh	37h
+005Fh	0EFh
+;
+0060h	DB 0B4h		;io port PIO A data
+0061h	DB 1		;count 1
+0062h	DB 1		;data
+;
+0063h	DB 0A1h		;io port DART A command
+0064h	DB 6		;count 6
+0065h	DB 48h		;data
+0066h	DB 48h
+0067h	DB 04h
+0068h	DB 44h
+0069h	DB 05h
+006Ah	DB 0EAh
+;
+006Bh	DB 0A3h		;io port DART B command
+006Ch	DB 8		;count 8
+006Dh	DB 48h		;data
+006Eh	DB 48h
+006Fh	DB 04h
+0070h	DB 44h
+0071h	DB 01h
+0072h	DB 00h
+0073h	DB 03h
+0074h	DB 0C1h
+;
+0075h	DB 0A5h		;io port SIO A command
+0076h	DB 2		;count 2
+0077h	DB 48h		;data
+0078h	DB 48h
+;
+0079h	DB 0A7h		;io port SIO B command
+007Ah	DB 2		;count 2
+007Bh	DB 48h		;data
+007Ch	DB 48h
+;
+007Dh	DB 0A8h		;io port CTC CHANNEL 0 - Communications baud rate
+007Eh	DB 2		;count 2
+007Fh	DB 03h		;data
+0080h	DB 03h
+;
+0081h	DB 0A9h		;io port CTC CHANNEL 1 - AUX RS-232C baud rate
+0082h	DB 2		;count 2
+0083h	DB 03h		;data
+0084h	DB 03h
+;
+0085h	DB 0AAh		;io port  CTC CHANNEL 2 - Printer baud rate
+0086h	DB 2		;count 2
+0087h	DB 57h		;data
+0088h	DB 4Eh
+;
+0089h	DB 00h		;io port
+008Ah	DB 0		;count 0 terminator
+;code continues
+008Bh	LD IX,0092h	;continuation addr
+008Fh	JP 02F7h	;setup display and clear screen
+;code continues
+0092h	LD A,80h
+0094h	OUTA (D4h)	;out 0d4h,80h Hi-res color
+0096h	LD DE,3000h	;point to display upper left corner
+0099h	LD HL,009Fh	;point to message
+009Ch	JP 0011h	;go display message at HL
+;
+009Fh	DB 8
+00A0h	DB 'Testing.'
+;
+00A8h	LD DE,0000h
+00ABh	LD BC,0000h
+00AEh	LD A,(00C6h)
+00B1h	OR A
+00B2h	JR Z,00C7h
+00B4h	LD A,05h
+00B6h	OUTA (0A3h) ; DART B command
+00B8h	LD A,E0h
+00BAh	OUTA (0A3h) ; DART B command
+00BCh	DEC BC
+00BDh	LD A,C
+00BEh	OR B
+00BFh	JR NZ,00BCh
+00C1h	INA (0A3h) ; DART B command
+00C3h	RRCA
+00C4h	CALL C,0000h
+00C7h	LD A,05h
+00C9h	OUTA (0A3h) ; DART B command
+00CBh	LD A,68h
+00CDh	OUTA (0A3h) ; DART B command
+00CFh	LD A,0F0h
+00D1h	OUTA (0C8h) ; Map and system control
+00D3h	EXX
+00D4h	LD B,55h
+00D6h	LD E,00h
+00D8h	LD HL,C000h
+00DBh	LD C,B
+00DCh	LD (HL),C 
+00DDh	RLC C
+00DFh	INC L
+00E0h	JR NZ,00DCh
+00E2h	RLC C
+00E4h	INC H
+00E5h	JR NZ,00DCh
+00E7h	LD H,0C0h
+00E9h	LD C,B
+00EAh	LD A,(HL)
+00EBh	XOR C
+00ECh	OR E
+00EDh	LD E,A
+00EEh	RLC C
+00F0h	INC L
+00F1h	JR NZ,00EAh
+00F3h	RLC C
+00F5h	INC H
+00F6h	JR NZ,00EAh
+00F8h	RLC B
+00FAh	JR NC,00D8h
+00FCh	LD A,E
+00FDh	EXX
+00FEh	AND A
+00FFh	JR Z,010Eh
+0101h	INC A
+0102h	JR Z,010Dh
+0104h	OR D
+0105h	LD D,A
+0106h	LD A,C
+0107h	SUB 20h
+0109h	OR B
+010Ah	LD B,A
+010Bh	JR 010Eh
+010Dh	INC E
+010Eh	LD A,C
+010Fh	ADD 20h
+0111h	OUTA (0C5h) ; Program map B base
+0113h	LD C,A
+0114h	JR NZ,00D3h
+0116h	OR D
+0117h	JR Z,0131h
+0119h	EXX
+011Ah	LD IX,0121h
+011Eh	JP 037Bh
+0121h	JR 0138h
+0123h	LD B,0Ah
+0125h	LD HL,0000h
+0128h	INC HL
+0129h	LD A,L
+012Ah	OR H
+012Bh	JR NZ,0128h
+012Dh	DJNZ 0128h
+012Fh	JR 0131h
+0131h	XOR A
+0132h	OUTA (0C8h) ; Reset to memory Map and system control
+0134h	INC E
+0135h	DEC E
+0136h	JR Z,015Ah
+0138h	LD DE,3000h
+013Bh	LD HL,0141h
+013Eh	JP 0011h
+;
+0141h	DB 23
+0142h	DB 'Error #2 :CALL service.'
+0159h	HALT
+;
+015Ah	LD DE,0FFE8h
+015Dh	LD HL,03ADh
+0160h	LD BC,0018h
+0163h	LDIR
+0165h	CALL 0255h
+0168h	LD A,01h
+016Ah	LD C,08h
+016Ch	OR 0A0h
+016Eh	OUTA (0C0h) ; Floppy external control
+0170h	LD B,A
+0171h	CALL 017Dh
+0174h	INC C
+0175h	LD A,B
+0176h	ADD A
+0177h	AND 0Fh
+0179h	JR NZ,016Ch
+017Bh	JR 0168h
+017Dh	CALL 036Fh
+0180h	INA (B0h) ; Floppy status
+0182h	ADD A
+0183h	RET C
+0184h	PUSH BC
+0185h	POP IX
+0187h	EXX
+0188h	RST 08h		;clear top line and display following message
+0189h	DB 8
+018Ah	DB 'Loading.'
+0192h	CALL 02BEh
+0195h	LD BC,0000h
+0198h	CALL 0273h
+019Bh	JR C,01F7h
+019Dh	LD HL,401Eh
+01A0h	LD B,(HL)
+01A1h	INC HL
+01A2h	LD C,(HL)
+01A3h	LD A,B
+01A4h	OR C
+01A5h	JR Z,01F3h
+01A7h	CALL 0273h
+01AAh	JR C,01F7h
+01ACh	LD HL,401Fh
+01AFh	BIT 0,(HL)
+01B1h	JR NZ,01FBh
+01B3h	CALL 0273h
+01B6h	JR C,01F7h
+01B8h	EXX
+01B9h	LD HL,400Eh
+01BCh	LD D,(HL)
+01BDh	INC HL
+01BEh	LD E,(HL)
+01BFh	PUSH DE
+01C0h	LD IY,8021h
+01C4h	LD B,B
+01C5h	LD C,(HL)
+01C6h	INC HL
+01C7h	INC HL
+01C8h	LD D,(HL)
+01C9h	INC HL
+01CAh	LD E,(HL)
+01CBh	INC HL
+01CCh	LD A,(HL)
+01CDh	INC HL
+01CEh	LD L,(HL)
+01CFh	LD H,A
+01D0h	EX DE,HL
+01D1h	PUSH HL
+01D2h	LD A,E
+01D3h	ADD 0FFh
+01D5h	LD A,D
+01D6h	EXX
+01D7h	LD E,00h
+01D9h	ADC E
+01DAh	LD D,A
+01DBh	POP HL
+01DCh	CALL 0279h
+01DFh	JR C,01F7h
+01E1h	XOR A
+01E2h	EX AF,AF'
+01E3h	EXX
+01E4h	JP 0FFE8h
+01E7h	EX AF,AF'
+01E8h	ADC C
+01E9h	PUSH IX
+01EBh	POP BC
+01ECh	JP Z,0FFFAh
+01EFh	LD A,33h
+01F1h	JR 01FDh
+01F3h	LD A,30h
+01F5h	JR 01FDh
+01F7h	LD A,32h
+01F9h	JR 01FDh
+01FBh	LD A,31h
+01FDh	PUSH IX
+01FFh	PUSH AF
+0200h	CALL 02F5h
+0203h	CALL 035Dh
+0206h	PUSH DE
+0207h	RST 10h		;display following message
+0208h	DB 35
+0209h	DB 'Error #10 :Invalid disk in drive 0.
+022Bh	POP HL
+022Dh	POP BC
+022Eh	LD DE,0008h
+0231h	ADD HL,DE
+0232h	ADD HL,DE
+0233h	INC HL
+0234h	LD A,04h 
+0236h	OUTA (0C8h) ; Output to screen Map and system control
+0238h	LD (HL),B
+0239h	POP BC
+023Ah	PUSH BC
+023Bh	LD A,C
+023Ch	AND 03h
+023Eh	ADD 30h
+0240h	LD DE,0019h
+0243h	ADD HL,DE
+0244h	ADD HL,DE
+0245h	LD (HL),A
+0246h	XOR A
+0247h	OUTA (0C8h) ; Reset map to memory Map and system control
+0249h	CALL 036Fh
+024Ch	CALL 036Fh
+024Fh	CALL 0255h
+0252h	EXX
+0253h	POP BC
+0254h	RET
+0255h	CALL 02F5h
+0258h	LD DE,3000h
+025Bh	RST 10h		;display following message
+025Ch	DB 21
+025Dh	DB 'R1-03 Ready for disk.'
+0272h	RET
+;
+0273h	LD DE,0100h
+0276h	LD HL,4000h
+0279h	LD A,05h
+027Bh	EX AF,AF'
+027Ch	PUSH BC
+027Dh	EX HL,(SP)
+027Eh	LD A,L
+027Fh	AND 0Fh
+0281h	INC A
+0282h	OUTA (0B2h)
+0284h	ADD HL,HL
+0285h	ADD HL,HL
+0286h	ADD HL,HL
+0287h	ADD HL,HL
+0288h	LD A,H
+0289h	OUTA (0B3h)
+028Bh	POP HL
+028Ch	LD A,1Dh
+028Eh	CALL 02C0h
+0291h	AND 98h
+0293h	JR NZ,02B4h
+0295h	CALL 02CBh
+0298h	LD A,88h
+029Ah	CALL 02C0h
+029Dh	AND 9Ch
+029Fh	JR NZ,02B4h
+02A1h	INC H
+02A2h	INC BC
+02A3h	DEC D
+02A4h	RET Z
+02A5h	LD A,C
+02A6h	AND 0Fh
+02A8h	JR Z,0279h
+02AAh	INA (0B2h) ; Floppy sector register
+02ACh	INC A
+02ADh	OUTA (0B2h) ; Floppy sector register
+02AFh	LD A,05h
+02B1h	EX AF,AF'
+02B2h	JR 0298h
+02B4h	SCF
+02B5h	BIT 7,A
+02B7h	RET NZ
+02B8h	EX AF,AF'
+02B9h	DEC A
+02BAh	JR NZ,027Bh
+02BCh	SCF
+02BDh	RET
+;
+02BEh	LD A,01h
+02C0h	OUTA (0B0h) ; Floppy command
+02C2h	INA (0B4h) ; PIO A data
+02C4h	BIT 4,A
+02C6h	JR Z,02C2h
+02C8h	INA (0B0h) ; Floppy command
+02CAh	RET
+02CBh	PUSH BC
+02CCh	LD BC,06ACh
+02CFh	LD A,0C3h
+02D1h	OUT (C),A
+02D3h	DJNZ 02D1h
+02D5h	LD A,7Dh
+02D7h	OUT (C),A
+02D9h	OUT (C),L
+02DBh	OUT (C),H
+02DDh	OUT (C),E
+02DFh	OUT (C),D
+02E1h	PUSH HL
+02E2h	CALL 034Fh
+02E5h	XOR H
+02E6h	ADD HL,BC
+02E7h	INC D
+02E8h	JR Z,026Fh
+02EAh	OR E
+02EBh	ADC D
+02ECh	RST 08h		;clear top line and display following message
+02EDh	DB 01
+02EEh	DB 0CFh
+02EFh	ADD A,A
+02F0h	NOP
+02F1h	NOP
+02F2h	POP HL
+02F3h	POP BC
+02F4h	RET
+02F5h	PUSH IX
+;entry during initiation with IX=0092
+02F7h	XOR A		;start A=0
+02F8h	LD BC,0EB9h	;C=B9 B=14
+02FBh	LD HL,0341h
+02FEh	OUTA (0B8h)	;out (B8),A CRT register select
+0300h	INC A		;A++
+0301h	OUTI		;(C)=(HL++) and B--
+0303h	JR NZ,02FEh	;loop until B==0
+;clear screen (fill 4KB 1000h at 3000h with 00 20)
+0305h	LD DE,3002h	;DE=3002h
+0308h	LD HL,3000h	;HL=3000h
+030Bh	LD BC,0FFEh	;BC=1000h-2
+;RST 08 jump in here HL=300C DE=300E BC=4E IX=032F
+030Eh	LD A,04h
+0310h	OUTA (0C8h)	;Output to screen out C8,04 Map and system control
+0312h	XOR A
+0313h	LD (HL),A	;put 00h at 3000h or 300Ch
+0314h	INC HL		;bump
+0315h	LD (HL),20h	;put 20h at 3001h or 300Dh
+0317h	DEC HL		;go back point to original
+0318h	LDIR		;copy 00 20 through 4K or 80 words
+031Ah	XOR A		;A=0
+031Bh	OUTA (C8h)	;out C8,00 Reset to memory Map and system control
+031Dh	JP (IX)		;continue
+;
+;process RST 08 entry DE=300C
+031Fh	PUSH DE		;save old DE
+0320h	LD L,E		;HL=DE
+0321h	LD H,D
+0322h	INC DE		;DE+=2
+0323h	INC DE
+0324h	LD BC,004Eh	;80-2
+0327h	PUSH IX		;save old IX
+0329h	LD IX,032Fh	;exit addr
+032Dh	JR 030Eh	;clear line 300C 80char
+;clear line returns here
+032Fh	POP IX		;restore old IX
+0331h	POP DE		;restore old DE
+0332h	RET
+;print routine
+;BC count
+;HL message source
+;DE screen target
+0333h	LD A,04h
+0335h	OUTA (0C8h) ; Output to screen Map and system control
+0337h	INC DE		;do every other addr
+0338h	LDI		;(DE++)=(HL++) and BC--
+033Ah	JP PE,0337h	;repeat while BC not 0
+033Dh	XOR A
+033Eh	OUTA (0C8h) ; Reset to memory  Map and system control
+0340h	JP (HL)
+;data to be output to io port B9 14 byte CRT data register
+0341h	DB 69h
+0342h	DB 50h
+0342h	DB 56h
+0344h	DB 0Bh
+0345h	DB 19h
+0346h	DB 03h
+0347h	DB 18h
+0348h	DB 18h
+0349h	DB 00H
+034Ah	DB 0BH
+034Bh	DB 20H
+034Ch	DB 00h
+034Dh	DB 00h
+034Eh	DB 00h
+;
+034Fh	POP HL
+0350h	JR 0354h
+;
+0352h	OTIR		;out B bytes from (HL) to (C)
+;
+0354h	LD C,(HL)	;get register
+0355h	INC HL		;bump
+0356h	LD B,(HL)	;get count
+0357h	INC HL		;bump
+0358h	LD A,B		;evaluate count
+0359h	AND A
+035Ah	JR NZ,0352h	;if count not 0 loop
+035Ch	JP (HL)
+035Dh	LD DE,3100h
+0360h	LD A,0Fh
+0362h	OUTA (0B8h) ; CRT register select
+0364h	XOR A
+0365h	OUTA (0B9h) ; CRT data register
+0367h	INA (0BBh) ; ????
+0369h	OR A
+036Ah	RET NZ
+036Bh	LD DE,30A0h
+036Eh	RET
+;
+036Fh	SBC HL,HL
+0371h	DEC HL
+0372h	EX HL,(SP)
+0373h	EX HL,(SP)
+0374h	LD A,L
+0375h	OR H
+0376h	JR NZ,0371h
+0378h	RET
+0379h	POP IX
+037Bh	LD A,0Fh
+037Dh	OUTA (0B8h) ; CRT register select
+037Fh	XOR A
+0380h	OUTA (0B9h) ; CRT data register
+0382h	INA (0BBh)
+0384h	AND A
+0385h	JR NZ,038Bh
+0387h	LD A,81h
+0389h	OUTA (0D4h) ; Hi-res color
+038Bh	LD BC,06CCh
+038Eh	LD HL,03A7h
+0391h	OTIR
+0393h	LD BC,0000h
+0396h	EX HL,(SP)
+0397h	EX HL,(SP)
+0398h	DEC BC
+0399h	LD A,B
+039Ah	OR C
+039Bh	JR NZ,0396h
+039Dh	LD A,80h
+039Fh	OUTA (0D4h) ; Hi-res color
+03A1h	LD A,9Fh
+03A3h	OUTA (0CCh) ; ??????????
+03A5h	ADC (IX+8Eh)
+03A8h	INC B
+03A9h	SUB D
+03AAh	CP A
+03ABh	RST 18h
+03ACh	RST 38h
+03ADh	LD A,01h
+03AFh	OUTA (0C8h) ; Map and system control
+03B1h	EX AF,AF'
+03B2h	ADC (HL)
+03B3h	EX AF,AF'
+03B4h	INC HL
+03B5h	DEC DE
+03B6h	LD A,E
+03B7h	OR D
+03B8h	JR NZ,03B1h
+03BAh	OUTA (0C8h) ; Map and system control
+03BCh	JP 01E7h
+03BFh	LD A,01h
+03C1h	OUTA (0C8h) ; Map and system control
+03C3h	JP (IY)
+;
+03C5h	RST 38h
+03C6h	RST 38h
+03C7h	RST 38h
+03C8h	RST 38h
+03C9h	RST 38h
+03CAh	RST 38h
+03CBh	RST 38h
+03CCh	RST 38h
+03CDh	RST 38h
+03CEh	RST 38h
+03CFh	RST 38h
+03D0h	RST 38h
+03D1h	RST 38h
+03D2h	RST 38h
+03D3h	RST 38h
+03D4h	RST 38h
+03D5h	RST 38h
+03D6h	RST 38h
+03D7h	RST 38h
+03D8h	RST 38h
+03D9h	RST 38h
+03DAh	RST 38h
+03DBh	RST 38h
+03DCh	RST 38h
+03DDh	RST 38h
+03DEh	RST 38h
+03DFh	RST 38h
+03E0h	RST 38h
+03E1h	RST 38h
+03E2h	RST 38h
+03E3h	RST 38h
+03E4h	RST 38h
+03E5h	RST 38h
+03E6h	RST 38h
+03E7h	RST 38h
+03E8h	RST 38h
+03E9h	RST 38h
+03EAh	RST 38h
+03EBh	RST 38h
+03ECh	RST 38h
+03EDh	RST 38h
+03EEh	RST 38h
+03EFh	RST 38h
+03F0h	RST 38h
+03F1h	RST 38h
+03F2h	RST 38h
+03F3h	RST 38h
+03F4h	RST 38h
+03F5h	RST 38h
+03F6h	RST 38h
+03F7h	RST 38h
+03F8h	RST 38h
+03F9h	RST 38h
+03FAh	RST 38h
+03FBh	RST 38h
+03FCh	RST 38h
+03FDh	RST 38h
+03FEh	RST 38h
+03FFh	RST 38h
+0400h	RST 38h
+0401h	RST 38h
+0402h	RST 38h
+0403h	RST 38h
+0404h	RST 38h
+0405h	RST 38h
+0406h	RST 38h
+0407h	RST 38h
+0408h	RST 38h
+0409h	RST 38h
+040Ah	RST 38h
+040Bh	RST 38h
+040Ch	RST 38h
+040Dh	RST 38h
+040Eh	RST 38h
+040Fh	RST 38h
+0410h	RST 38h
+0411h	RST 38h
+0412h	RST 38h
+0413h	RST 38h
+0414h	RST 38h
+0415h	RST 38h
+0416h	RST 38h
+0417h	RST 38h
+0418h	RST 38h
+0419h	RST 38h
+041Ah	RST 38h
+041Bh	RST 38h
+041Ch	RST 38h
+041Dh	RST 38h
+041Eh	RST 38h
+041Fh	RST 38h
+0420h	RST 38h
+0421h	RST 38h
+0422h	RST 38h
+0423h	RST 38h
+0424h	RST 38h
+0425h	RST 38h
+0426h	RST 38h
+0427h	RST 38h
+0428h	RST 38h
+0429h	RST 38h
+042Ah	RST 38h
+042Bh	RST 38h
+042Ch	RST 38h
+042Dh	RST 38h
+042Eh	RST 38h
+042Fh	RST 38h
+0430h	RST 38h
+0431h	RST 38h
+0432h	RST 38h
+0433h	RST 38h
+0434h	RST 38h
+0435h	RST 38h
+0436h	RST 38h
+0437h	RST 38h
+0438h	RST 38h
+0439h	RST 38h
+043Ah	RST 38h
+043Bh	RST 38h
+043Ch	RST 38h
+043Dh	RST 38h
+043Eh	RST 38h
+043Fh	RST 38h
+0440h	RST 38h
+0441h	RST 38h
+0442h	RST 38h
+0443h	RST 38h
+0444h	RST 38h
+0445h	RST 38h
+0446h	RST 38h
+0447h	RST 38h
+0448h	RST 38h
+0449h	RST 38h
+044Ah	RST 38h
+044Bh	RST 38h
+044Ch	RST 38h
+044Dh	RST 38h
+044Eh	RST 38h
+044Fh	RST 38h
+0450h	RST 38h
+0451h	RST 38h
+0452h	RST 38h
+0453h	RST 38h
+0454h	RST 38h
+0455h	RST 38h
+0456h	RST 38h
+0457h	RST 38h
+0458h	RST 38h
+0459h	RST 38h
+045Ah	RST 38h
+045Bh	RST 38h
+045Ch	RST 38h
+045Dh	RST 38h
+045Eh	RST 38h
+045Fh	RST 38h
+0460h	RST 38h
+0461h	RST 38h
+0462h	RST 38h
+0463h	RST 38h
+0464h	RST 38h
+0465h	RST 38h
+0466h	RST 38h
+0467h	RST 38h
+0468h	RST 38h
+0469h	RST 38h
+046Ah	RST 38h
+046Bh	RST 38h
+046Ch	RST 38h
+046Dh	RST 38h
+046Eh	RST 38h
+046Fh	RST 38h
+0470h	RST 38h
+0471h	RST 38h
+0472h	RST 38h
+0473h	RST 38h
+0474h	RST 38h
+0475h	RST 38h
+0476h	RST 38h
+0477h	RST 38h
+0478h	RST 38h
+0479h	RST 38h
+047Ah	RST 38h
+047Bh	RST 38h
+047Ch	RST 38h
+047Dh	RST 38h
+047Eh	RST 38h
+047Fh	RST 38h
+0480h	RST 38h
+0481h	RST 38h
+0482h	RST 38h
+0483h	RST 38h
+0484h	RST 38h
+0485h	RST 38h
+0486h	RST 38h
+0487h	RST 38h
+0488h	RST 38h
+0489h	RST 38h
+048Ah	RST 38h
+048Bh	RST 38h
+048Ch	RST 38h
+048Dh	RST 38h
+048Eh	RST 38h
+048Fh	RST 38h
+0490h	RST 38h
+0491h	RST 38h
+0492h	RST 38h
+0493h	RST 38h
+0494h	RST 38h
+0495h	RST 38h
+0496h	RST 38h
+0497h	RST 38h
+0498h	RST 38h
+0499h	RST 38h
+049Ah	RST 38h
+049Bh	RST 38h
+049Ch	RST 38h
+049Dh	RST 38h
+049Eh	RST 38h
+049Fh	RST 38h
+04A0h	RST 38h
+04A1h	RST 38h
+04A2h	RST 38h
+04A3h	RST 38h
+04A4h	RST 38h
+04A5h	RST 38h
+04A6h	RST 38h
+04A7h	RST 38h
+04A8h	RST 38h
+04A9h	RST 38h
+04AAh	RST 38h
+04ABh	RST 38h
+04ACh	RST 38h
+04ADh	RST 38h
+04AEh	RST 38h
+04AFh	RST 38h
+04B0h	RST 38h
+04B1h	RST 38h
+04B2h	RST 38h
+04B3h	RST 38h
+04B4h	RST 38h
+04B5h	RST 38h
+04B6h	RST 38h
+04B7h	RST 38h
+04B8h	RST 38h
+04B9h	RST 38h
+04BAh	RST 38h
+04BBh	RST 38h
+04BCh	RST 38h
+04BDh	RST 38h
+04BEh	RST 38h
+04BFh	RST 38h
+04C0h	RST 38h
+04C1h	RST 38h
+04C2h	RST 38h
+04C3h	RST 38h
+04C4h	RST 38h
+04C5h	RST 38h
+04C6h	RST 38h
+04C7h	RST 38h
+04C8h	RST 38h
+04C9h	RST 38h
+04CAh	RST 38h
+04CBh	RST 38h
+04CCh	RST 38h
+04CDh	RST 38h
+04CEh	RST 38h
+04CFh	RST 38h
+04D0h	RST 38h
+04D1h	RST 38h
+04D2h	RST 38h
+04D3h	RST 38h
+04D4h	RST 38h
+04D5h	RST 38h
+04D6h	RST 38h
+04D7h	RST 38h
+04D8h	RST 38h
+04D9h	RST 38h
+04DAh	RST 38h
+04DBh	RST 38h
+04DCh	RST 38h
+04DDh	RST 38h
+04DEh	RST 38h
+04DFh	RST 38h
+04E0h	RST 38h
+04E1h	RST 38h
+04E2h	RST 38h
+04E3h	RST 38h
+04E4h	RST 38h
+04E5h	RST 38h
+04E6h	RST 38h
+04E7h	RST 38h
+04E8h	RST 38h
+04E9h	RST 38h
+04EAh	RST 38h
+04EBh	RST 38h
+04ECh	RST 38h
+04EDh	RST 38h
+04EEh	RST 38h
+04EFh	RST 38h
+04F0h	RST 38h
+04F1h	RST 38h
+04F2h	RST 38h
+04F3h	RST 38h
+04F4h	RST 38h
+04F5h	RST 38h
+04F6h	RST 38h
+04F7h	RST 38h
+04F8h	RST 38h
+04F9h	RST 38h
+04FAh	RST 38h
+04FBh	RST 38h
+04FCh	RST 38h
+04FDh	RST 38h
+04FEh	RST 38h
+04FFh	RST 38h
+0500h	RST 38h
+0501h	RST 38h
+0502h	RST 38h
+0503h	RST 38h
+0504h	RST 38h
+0505h	RST 38h
+0506h	RST 38h
+0507h	RST 38h
+0508h	RST 38h
+0509h	RST 38h
+050Ah	RST 38h
+050Bh	RST 38h
+050Ch	RST 38h
+050Dh	RST 38h
+050Eh	RST 38h
+050Fh	RST 38h
+0510h	RST 38h
+0511h	RST 38h
+0512h	RST 38h
+0513h	RST 38h
+0514h	RST 38h
+0515h	RST 38h
+0516h	RST 38h
+0517h	RST 38h
+0518h	RST 38h
+0519h	RST 38h
+051Ah	RST 38h
+051Bh	RST 38h
+051Ch	RST 38h
+051Dh	RST 38h
+051Eh	RST 38h
+051Fh	RST 38h
+0520h	RST 38h
+0521h	RST 38h
+0522h	RST 38h
+0523h	RST 38h
+0524h	RST 38h
+0525h	RST 38h
+0526h	RST 38h
+0527h	RST 38h
+0528h	RST 38h
+0529h	RST 38h
+052Ah	RST 38h
+052Bh	RST 38h
+052Ch	RST 38h
+052Dh	RST 38h
+052Eh	RST 38h
+052Fh	RST 38h
+0530h	RST 38h
+0531h	RST 38h
+0532h	RST 38h
+0533h	RST 38h
+0534h	RST 38h
+0535h	RST 38h
+0536h	RST 38h
+0537h	RST 38h
+0538h	RST 38h
+0539h	RST 38h
+053Ah	RST 38h
+053Bh	RST 38h
+053Ch	RST 38h
+053Dh	RST 38h
+053Eh	RST 38h
+053Fh	RST 38h
+0540h	RST 38h
+0541h	RST 38h
+0542h	RST 38h
+0543h	RST 38h
+0544h	RST 38h
+0545h	RST 38h
+0546h	RST 38h
+0547h	RST 38h
+0548h	RST 38h
+0549h	RST 38h
+054Ah	RST 38h
+054Bh	RST 38h
+054Ch	RST 38h
+054Dh	RST 38h
+054Eh	RST 38h
+054Fh	RST 38h
+0550h	RST 38h
+0551h	RST 38h
+0552h	RST 38h
+0553h	RST 38h
+0554h	RST 38h
+0555h	RST 38h
+0556h	RST 38h
+0557h	RST 38h
+0558h	RST 38h
+0559h	RST 38h
+055Ah	RST 38h
+055Bh	RST 38h
+055Ch	RST 38h
+055Dh	RST 38h
+055Eh	RST 38h
+055Fh	RST 38h
+0560h	RST 38h
+0561h	RST 38h
+0562h	RST 38h
+0563h	RST 38h
+0564h	RST 38h
+0565h	RST 38h
+0566h	RST 38h
+0567h	RST 38h
+0568h	RST 38h
+0569h	RST 38h
+056Ah	RST 38h
+056Bh	RST 38h
+056Ch	RST 38h
+056Dh	RST 38h
+056Eh	RST 38h
+056Fh	RST 38h
+0570h	RST 38h
+0571h	RST 38h
+0572h	RST 38h
+0573h	RST 38h
+0574h	RST 38h
+0575h	RST 38h
+0576h	RST 38h
+0577h	RST 38h
+0578h	RST 38h
+0579h	RST 38h
+057Ah	RST 38h
+057Bh	RST 38h
+057Ch	RST 38h
+057Dh	RST 38h
+057Eh	RST 38h
+057Fh	RST 38h
+0580h	RST 38h
+0581h	RST 38h
+0582h	RST 38h
+0583h	RST 38h
+0584h	RST 38h
+0585h	RST 38h
+0586h	RST 38h
+0587h	RST 38h
+0588h	RST 38h
+0589h	RST 38h
+058Ah	RST 38h
+058Bh	RST 38h
+058Ch	RST 38h
+058Dh	RST 38h
+058Eh	RST 38h
+058Fh	RST 38h
+0590h	RST 38h
+0591h	RST 38h
+0592h	RST 38h
+0593h	RST 38h
+0594h	RST 38h
+0595h	RST 38h
+0596h	RST 38h
+0597h	RST 38h
+0598h	RST 38h
+0599h	RST 38h
+059Ah	RST 38h
+059Bh	RST 38h
+059Ch	RST 38h
+059Dh	RST 38h
+059Eh	RST 38h
+059Fh	RST 38h
+05A0h	RST 38h
+05A1h	RST 38h
+05A2h	RST 38h
+05A3h	RST 38h
+05A4h	RST 38h
+05A5h	RST 38h
+05A6h	RST 38h
+05A7h	RST 38h
+05A8h	RST 38h
+05A9h	RST 38h
+05AAh	RST 38h
+05ABh	RST 38h
+05ACh	RST 38h
+05ADh	RST 38h
+05AEh	RST 38h
+05AFh	RST 38h
+05B0h	RST 38h
+05B1h	RST 38h
+05B2h	RST 38h
+05B3h	RST 38h
+05B4h	RST 38h
+05B5h	RST 38h
+05B6h	RST 38h
+05B7h	RST 38h
+05B8h	RST 38h
+05B9h	RST 38h
+05BAh	RST 38h
+05BBh	RST 38h
+05BCh	RST 38h
+05BDh	RST 38h
+05BEh	RST 38h
+05BFh	RST 38h
+05C0h	RST 38h
+05C1h	RST 38h
+05C2h	RST 38h
+05C3h	RST 38h
+05C4h	RST 38h
+05C5h	RST 38h
+05C6h	RST 38h
+05C7h	RST 38h
+05C8h	RST 38h
+05C9h	RST 38h
+05CAh	RST 38h
+05CBh	RST 38h
+05CCh	RST 38h
+05CDh	RST 38h
+05CEh	RST 38h
+05CFh	RST 38h
+05D0h	RST 38h
+05D1h	RST 38h
+05D2h	RST 38h
+05D3h	RST 38h
+05D4h	RST 38h
+05D5h	RST 38h
+05D6h	RST 38h
+05D7h	RST 38h
+05D8h	RST 38h
+05D9h	RST 38h
+05DAh	RST 38h
+05DBh	RST 38h
+05DCh	RST 38h
+05DDh	RST 38h
+05DEh	RST 38h
+05DFh	RST 38h
+05E0h	RST 38h
+05E1h	RST 38h
+05E2h	RST 38h
+05E3h	RST 38h
+05E4h	RST 38h
+05E5h	RST 38h
+05E6h	RST 38h
+05E7h	RST 38h
+05E8h	RST 38h
+05E9h	RST 38h
+05EAh	RST 38h
+05EBh	RST 38h
+05ECh	RST 38h
+05EDh	RST 38h
+05EEh	RST 38h
+05EFh	RST 38h
+05F0h	RST 38h
+05F1h	RST 38h
+05F2h	RST 38h
+05F3h	RST 38h
+05F4h	RST 38h
+05F5h	RST 38h
+05F6h	RST 38h
+05F7h	RST 38h
+05F8h	RST 38h
+05F9h	RST 38h
+05FAh	RST 38h
+05FBh	RST 38h
+05FCh	RST 38h
+05FDh	RST 38h
+05FEh	RST 38h
+05FFh	RST 38h
+0600h	RST 38h
+0601h	RST 38h
+0602h	RST 38h
+0603h	RST 38h
+0604h	RST 38h
+0605h	RST 38h
+0606h	RST 38h
+0607h	RST 38h
+0608h	RST 38h
+0609h	RST 38h
+060Ah	RST 38h
+060Bh	RST 38h
+060Ch	RST 38h
+060Dh	RST 38h
+060Eh	RST 38h
+060Fh	RST 38h
+0610h	RST 38h
+0611h	RST 38h
+0612h	RST 38h
+0613h	RST 38h
+0614h	RST 38h
+0615h	RST 38h
+0616h	RST 38h
+0617h	RST 38h
+0618h	RST 38h
+0619h	RST 38h
+061Ah	RST 38h
+061Bh	RST 38h
+061Ch	RST 38h
+061Dh	RST 38h
+061Eh	RST 38h
+061Fh	RST 38h
+0620h	RST 38h
+0621h	RST 38h
+0622h	RST 38h
+0623h	RST 38h
+0624h	RST 38h
+0625h	RST 38h
+0626h	RST 38h
+0627h	RST 38h
+0628h	RST 38h
+0629h	RST 38h
+062Ah	RST 38h
+062Bh	RST 38h
+062Ch	RST 38h
+062Dh	RST 38h
+062Eh	RST 38h
+062Fh	RST 38h
+0630h	RST 38h
+0631h	RST 38h
+0632h	RST 38h
+0633h	RST 38h
+0634h	RST 38h
+0635h	RST 38h
+0636h	RST 38h
+0637h	RST 38h
+0638h	RST 38h
+0639h	RST 38h
+063Ah	RST 38h
+063Bh	RST 38h
+063Ch	RST 38h
+063Dh	RST 38h
+063Eh	RST 38h
+063Fh	RST 38h
+0640h	RST 38h
+0641h	RST 38h
+0642h	RST 38h
+0643h	RST 38h
+0644h	RST 38h
+0645h	RST 38h
+0646h	RST 38h
+0647h	RST 38h
+0648h	RST 38h
+0649h	RST 38h
+064Ah	RST 38h
+064Bh	RST 38h
+064Ch	RST 38h
+064Dh	RST 38h
+064Eh	RST 38h
+064Fh	RST 38h
+0650h	RST 38h
+0651h	RST 38h
+0652h	RST 38h
+0653h	RST 38h
+0654h	RST 38h
+0655h	RST 38h
+0656h	RST 38h
+0657h	RST 38h
+0658h	RST 38h
+0659h	RST 38h
+065Ah	RST 38h
+065Bh	RST 38h
+065Ch	RST 38h
+065Dh	RST 38h
+065Eh	RST 38h
+065Fh	RST 38h
+0660h	RST 38h
+0661h	RST 38h
+0662h	RST 38h
+0663h	RST 38h
+0664h	RST 38h
+0665h	RST 38h
+0666h	RST 38h
+0667h	RST 38h
+0668h	RST 38h
+0669h	RST 38h
+066Ah	RST 38h
+066Bh	RST 38h
+066Ch	RST 38h
+066Dh	RST 38h
+066Eh	RST 38h
+066Fh	RST 38h
+0670h	RST 38h
+0671h	RST 38h
+0672h	RST 38h
+0673h	RST 38h
+0674h	RST 38h
+0675h	RST 38h
+0676h	RST 38h
+0677h	RST 38h
+0678h	RST 38h
+0679h	RST 38h
+067Ah	RST 38h
+067Bh	RST 38h
+067Ch	RST 38h
+067Dh	RST 38h
+067Eh	RST 38h
+067Fh	RST 38h
+0680h	RST 38h
+0681h	RST 38h
+0682h	RST 38h
+0683h	RST 38h
+0684h	RST 38h
+0685h	RST 38h
+0686h	RST 38h
+0687h	RST 38h
+0688h	RST 38h
+0689h	RST 38h
+068Ah	RST 38h
+068Bh	RST 38h
+068Ch	RST 38h
+068Dh	RST 38h
+068Eh	RST 38h
+068Fh	RST 38h
+0690h	RST 38h
+0691h	RST 38h
+0692h	RST 38h
+0693h	RST 38h
+0694h	RST 38h
+0695h	RST 38h
+0696h	RST 38h
+0697h	RST 38h
+0698h	RST 38h
+0699h	RST 38h
+069Ah	RST 38h
+069Bh	RST 38h
+069Ch	RST 38h
+069Dh	RST 38h
+069Eh	RST 38h
+069Fh	RST 38h
+06A0h	RST 38h
+06A1h	RST 38h
+06A2h	RST 38h
+06A3h	RST 38h
+06A4h	RST 38h
+06A5h	RST 38h
+06A6h	RST 38h
+06A7h	RST 38h
+06A8h	RST 38h
+06A9h	RST 38h
+06AAh	RST 38h
+06ABh	RST 38h
+06ACh	RST 38h
+06ADh	RST 38h
+06AEh	RST 38h
+06AFh	RST 38h
+06B0h	RST 38h
+06B1h	RST 38h
+06B2h	RST 38h
+06B3h	RST 38h
+06B4h	RST 38h
+06B5h	RST 38h
+06B6h	RST 38h
+06B7h	RST 38h
+06B8h	RST 38h
+06B9h	RST 38h
+06BAh	RST 38h
+06BBh	RST 38h
+06BCh	RST 38h
+06BDh	RST 38h
+06BEh	RST 38h
+06BFh	RST 38h
+06C0h	RST 38h
+06C1h	RST 38h
+06C2h	RST 38h
+06C3h	RST 38h
+06C4h	RST 38h
+06C5h	RST 38h
+06C6h	RST 38h
+06C7h	RST 38h
+06C8h	RST 38h
+06C9h	RST 38h
+06CAh	RST 38h
+06CBh	RST 38h
+06CCh	RST 38h
+06CDh	RST 38h
+06CEh	RST 38h
+06CFh	RST 38h
+06D0h	RST 38h
+06D1h	RST 38h
+06D2h	RST 38h
+06D3h	RST 38h
+06D4h	RST 38h
+06D5h	RST 38h
+06D6h	RST 38h
+06D7h	RST 38h
+06D8h	RST 38h
+06D9h	RST 38h
+06DAh	RST 38h
+06DBh	RST 38h
+06DCh	RST 38h
+06DDh	RST 38h
+06DEh	RST 38h
+06DFh	RST 38h
+06E0h	RST 38h
+06E1h	RST 38h
+06E2h	RST 38h
+06E3h	RST 38h
+06E4h	RST 38h
+06E5h	RST 38h
+06E6h	RST 38h
+06E7h	RST 38h
+06E8h	RST 38h
+06E9h	RST 38h
+06EAh	RST 38h
+06EBh	RST 38h
+06ECh	RST 38h
+06EDh	RST 38h
+06EEh	RST 38h
+06EFh	RST 38h
+06F0h	RST 38h
+06F1h	RST 38h
+06F2h	RST 38h
+06F3h	RST 38h
+06F4h	RST 38h
+06F5h	RST 38h
+06F6h	RST 38h
+06F7h	RST 38h
+06F8h	RST 38h
+06F9h	RST 38h
+06FAh	RST 38h
+06FBh	RST 38h
+06FCh	RST 38h
+06FDh	RST 38h
+06FEh	RST 38h
+06FFh	RST 38h
+0700h	RST 38h
+0701h	RST 38h
+0702h	RST 38h
+0703h	RST 38h
+0704h	RST 38h
+0705h	RST 38h
+0706h	RST 38h
+0707h	RST 38h
+0708h	RST 38h
+0709h	RST 38h
+070Ah	RST 38h
+070Bh	RST 38h
+070Ch	RST 38h
+070Dh	RST 38h
+070Eh	RST 38h
+070Fh	RST 38h
+0710h	RST 38h
+0711h	RST 38h
+0712h	RST 38h
+0713h	RST 38h
+0714h	RST 38h
+0715h	RST 38h
+0716h	RST 38h
+0717h	RST 38h
+0718h	RST 38h
+0719h	RST 38h
+071Ah	RST 38h
+071Bh	RST 38h
+071Ch	RST 38h
+071Dh	RST 38h
+071Eh	RST 38h
+071Fh	RST 38h
+0720h	RST 38h
+0721h	RST 38h
+0722h	RST 38h
+0723h	RST 38h
+0724h	RST 38h
+0725h	RST 38h
+0726h	RST 38h
+0727h	RST 38h
+0728h	RST 38h
+0729h	RST 38h
+072Ah	RST 38h
+072Bh	RST 38h
+072Ch	RST 38h
+072Dh	RST 38h
+072Eh	RST 38h
+072Fh	RST 38h
+0730h	RST 38h
+0731h	RST 38h
+0732h	RST 38h
+0733h	RST 38h
+0734h	RST 38h
+0735h	RST 38h
+0736h	RST 38h
+0737h	RST 38h
+0738h	RST 38h
+0739h	RST 38h
+073Ah	RST 38h
+073Bh	RST 38h
+073Ch	RST 38h
+073Dh	RST 38h
+073Eh	RST 38h
+073Fh	RST 38h
+0740h	RST 38h
+0741h	RST 38h
+0742h	RST 38h
+0743h	RST 38h
+0744h	RST 38h
+0745h	RST 38h
+0746h	RST 38h
+0747h	RST 38h
+0748h	RST 38h
+0749h	RST 38h
+074Ah	RST 38h
+074Bh	RST 38h
+074Ch	RST 38h
+074Dh	RST 38h
+074Eh	RST 38h
+074Fh	RST 38h
+0750h	RST 38h
+0751h	RST 38h
+0752h	RST 38h
+0753h	RST 38h
+0754h	RST 38h
+0755h	RST 38h
+0756h	RST 38h
+0757h	RST 38h
+0758h	RST 38h
+0759h	RST 38h
+075Ah	RST 38h
+075Bh	RST 38h
+075Ch	RST 38h
+075Dh	RST 38h
+075Eh	RST 38h
+075Fh	RST 38h
+0760h	RST 38h
+0761h	RST 38h
+0762h	RST 38h
+0763h	RST 38h
+0764h	RST 38h
+0765h	RST 38h
+0766h	RST 38h
+0767h	RST 38h
+0768h	RST 38h
+0769h	RST 38h
+076Ah	RST 38h
+076Bh	RST 38h
+076Ch	RST 38h
+076Dh	RST 38h
+076Eh	RST 38h
+076Fh	RST 38h
+0770h	RST 38h
+0771h	RST 38h
+0772h	RST 38h
+0773h	RST 38h
+0774h	RST 38h
+0775h	RST 38h
+0776h	RST 38h
+0777h	RST 38h
+0778h	RST 38h
+0779h	RST 38h
+077Ah	RST 38h
+077Bh	RST 38h
+077Ch	RST 38h
+077Dh	RST 38h
+077Eh	RST 38h
+077Fh	RST 38h
+0780h	RST 38h
+0781h	RST 38h
+0782h	RST 38h
+0783h	RST 38h
+0784h	RST 38h
+0785h	RST 38h
+0786h	RST 38h
+0787h	RST 38h
+0788h	RST 38h
+0789h	RST 38h
+078Ah	RST 38h
+078Bh	RST 38h
+078Ch	RST 38h
+078Dh	RST 38h
+078Eh	RST 38h
+078Fh	RST 38h
+0790h	RST 38h
+0791h	RST 38h
+0792h	RST 38h
+0793h	RST 38h
+0794h	RST 38h
+0795h	RST 38h
+0796h	RST 38h
+0797h	RST 38h
+0798h	RST 38h
+0799h	RST 38h
+079Ah	RST 38h
+079Bh	RST 38h
+079Ch	RST 38h
+079Dh	RST 38h
+079Eh	RST 38h
+079Fh	RST 38h
+07A0h	RST 38h
+07A1h	RST 38h
+07A2h	RST 38h
+07A3h	RST 38h
+07A4h	RST 38h
+07A5h	RST 38h
+07A6h	RST 38h
+07A7h	RST 38h
+07A8h	RST 38h
+07A9h	RST 38h
+07AAh	RST 38h
+07ABh	RST 38h
+07ACh	RST 38h
+07ADh	RST 38h
+07AEh	RST 38h
+07AFh	RST 38h
+07B0h	RST 38h
+07B1h	RST 38h
+07B2h	RST 38h
+07B3h	RST 38h
+07B4h	RST 38h
+07B5h	RST 38h
+07B6h	RST 38h
+07B7h	RST 38h
+07B8h	RST 38h
+07B9h	RST 38h
+07BAh	RST 38h
+07BBh	RST 38h
+07BCh	RST 38h
+07BDh	RST 38h
+07BEh	RST 38h
+07BFh	RST 38h
+07C0h	RST 38h
+07C1h	RST 38h
+07C2h	RST 38h
+07C3h	RST 38h
+07C4h	RST 38h
+07C5h	RST 38h
+07C6h	RST 38h
+07C7h	RST 38h
+07C8h	RST 38h
+07C9h	RST 38h
+07CAh	RST 38h
+07CBh	RST 38h
+07CCh	RST 38h
+07CDh	RST 38h
+07CEh	RST 38h
+07CFh	RST 38h
+07D0h	RST 38h
+07D1h	RST 38h
+07D2h	RST 38h
+07D3h	RST 38h
+07D4h	RST 38h
+07D5h	RST 38h
+07D6h	RST 38h
+07D7h	RST 38h
+07D8h	RST 38h
+07D9h	RST 38h
+07DAh	RST 38h
+07DBh	RST 38h
+07DCh	RST 38h
+07DDh	RST 38h
+07DEh	RST 38h
+07DFh	RST 38h
+07E0h	RST 38h
+07E1h	RST 38h
+07E2h	RST 38h
+07E3h	RST 38h
+07E4h	RST 38h
+07E5h	RST 38h
+07E6h	RST 38h
+07E7h	RST 38h
+07E8h	RST 38h
+07E9h	RST 38h
+07EAh	RST 38h
+07EBh	RST 38h
+07ECh	RST 38h
+07EDh	RST 38h
+07EEh	RST 38h
+07EFh	RST 38h
+07F0h	RST 38h
+07F1h	RST 38h
+07F2h	RST 38h
+07F3h	RST 38h
+07F4h	RST 38h
+07F5h	RST 38h
+07F6h	RST 38h
+07F7h	RST 38h
+07F8h	RST 38h
+07F9h	RST 38h
+07FAh	RST 38h
+07FBh	RST 38h
+07FCh	RST 38h
+07FDh	RST 38h
+07FEh	RST 38h
+07FFh	RST 38h

+ 1319 - 0
hw/monroe_oc8820_r3.00.asm

@@ -0,0 +1,1319 @@
+
+	org	00000h
+
+	di					;0000 no interrupt
+	ld sp,0ffa6h		;0001 init stack
+	xor a				;0004 A=0
+	jp init			;0005 go init 00046h
+	;RST 08 handle - clear top line
+	ld de,0303eh		;0008 point to screen ram
+	call cleartopline		;000b go clear top line 0052dh	
+	nop					;000e pass through to display message at return addr
+	nop					;000f
+	;RST 10 handle - display message at return addr
+	pop hl				;0010 get return addr
+displaymsg:
+	ld c,(hl)			;0011 load count
+	inc hl				;0012 dump
+	ld b,000h			;0013
+	jp printroutine		;0015 00541h
+;
+	rst 38h				;0018
+	rst 38h				;0019
+	rst 38h				;001a
+	rst 38h				;001b
+	rst 38h				;001c
+	rst 38h				;001d
+	rst 38h				;001e
+	rst 38h				;001f
+	rst 38h				;0020
+	rst 38h				;0021
+	rst 38h				;0022
+	rst 38h				;0023
+	rst 38h				;0024
+	rst 38h				;0025
+	rst 38h				;0026
+	rst 38h				;0027
+	rst 38h				;0028
+	rst 38h				;0029
+	rst 38h				;002a
+	rst 38h				;002b
+	rst 38h				;002c
+	rst 38h				;002d
+	rst 38h				;002e
+	rst 38h				;002f
+	rst 38h				;0030
+	rst 38h				;0031
+	rst 38h				;0032
+	rst 38h				;0033
+	rst 38h				;0034
+	rst 38h				;0035
+	rst 38h				;0036
+	rst 38h				;0037
+	rst 38h				;0038
+	rst 38h				;0039
+	rst 38h				;003a
+	rst 38h				;003b
+	rst 38h				;003c
+	rst 38h				;003d
+	rst 38h				;003e
+	rst 38h				;003f
+	jp 00000h			;0040
+	jp 00000h			;0043
+
+	; init
+	init:
+	out (0c0h),a		;0046 clear io, floppy control
+	out (0c4h),a		;0048 Program map A base
+	out (0c5h),a		;004a Program map B base
+	out (0c6h),a		;004c DMA map A base
+	out (0c7h),a		;004e DMA map B base
+	out (0d4h),a		;0050 Hi-res color
+	out (0d8h),a		;0052 Hi-res start
+	ld hl,0005ah		;0054
+	jp otirloop 		;0057 do OTIR loop on following data 00562h
+	defb 0b5h		;005a io port CRT register select
+	defb 004h		;005b count 4
+	defb 0cfh		;005c
+	defb 0b8h		;005d
+	defb 037h		;005e
+	defb 0efh		;005f
+	;
+	defb 0b4h		;0060 io port PIO A data
+	defb 001h		;0061 count 1
+	defb 001h		;0062
+	;
+	defb 0a1h		;0063 io port DART A command
+	defb 006h		;0064 count 6
+	defb 048h		;0065
+	defb 048h		;0066
+	defb 004h		;0067
+	defb 044h		;0068
+	defb 005h		;0069
+	defb 0eah		;006a
+	;
+	defb 0a3h		;006b io port DART B command
+	defb 008h		;006c count 8
+	defb 048h		;006d
+	defb 048h		;006e
+	defb 004h		;006f
+	defb 044h		;0070
+	defb 001h		;0071
+	defb 000h		;0072
+	defb 003h		;0073
+	defb 0c1h		;0074
+;
+	defb 0a5h		;0075 io port SIO A command
+	defb 002h		;0076count 2
+	defb 048h		;0077
+	defb 048h		;0078
+;
+	defb 0a7h		;0079 io port SIO B command
+	defb 002h		;007a count 2
+	defb 048h		;007b
+	defb 048h		;007c
+;
+	defb 0a8h		;007d io port CTC CHANNEL 0 - Communications baud rate
+	defb 002h		;007e count 2
+	defb 003h		;007f
+	defb 003h		;0080
+;
+	defb 0a9h		;0081 io port CTC CHANNEL 1 - AUX RS-232C baud rate
+	defb 002h		;0082 count 2
+	defb 003h		;0083
+	defb 003h		;0084
+;
+	defb 0aah		;0085 io port  CTC CHANNEL 2 - Printer baud rate
+	defb 002h		;0086 count 2
+	defb 057h		;0087
+	defb 04eh		;0088
+;
+	defb 000h		;0089 io port reset
+	defb 000h		;008a count 0 terminator
+	;code continues
+	ld ix,00092h		;008b continuation addr
+	jp setupclearscreen		;008f setup display and clear screen  00505h
+	;code continues
+	ld a,080h		;0092
+	out (0d4h),a		;0094 out 0d4h,80h Hi-res color
+	ld de,03000h		;0096 point to display upper left corner
+	ld hl,0009fh		;0099 point to message
+	jp displaymsg	;009c go display message at HL 00011h	
+	defb 008h		;009f 8 bytes
+	defb 054h		;00a0 	T
+	defb 065h		;00a1	e
+	defb 073h		;00a2	s
+	defb 074h		;00a3	t
+	defb 069h		;00a4	i
+	defb 06eh		;00a5	n
+	defb 067h		;00a6	g
+	defb 02eh		;00a7	.
+	ld a,005h		;00a8
+	out (0a3h),a		;00aa DART B command
+	ld a,068h		;00ac
+	out (0a3h),a		;00ae DART B command
+	ld a,0f0h		;00b0 ?????
+	out (0c8h),a		;00b2 Map and system control
+	ld ix,0c001h		;00b4
+	ld bc,000c5h		;00b8 
+	ld d,009h		;00bb
+	ld a,0a0h		;00bd
+	out (0c5h),a		;00bf Program map B base
+	ld (ix-001h),b		;00c1
+	dec b			;00c4
+	inc a			;00c5
+	out (0c5h),a		;00c6 Program map B base
+	ld (ix-001h),b		;00c8
+	dec a			;00cb
+	out (0c5h),a		;00cc Program map B base
+	ld b,(ix-001h)		;00ce
+	inc b			;00d1
+	jr z,$+4		;00d2
+	ld d,011h		;00d4
+	ld b,d			;00d6
+	ld hl,00122h		;00d7
+	ld de,00000h		;00da
+	outi		;00dd
+	jr z,$+84		;00df
+	exx			;00e1
+	ld b,055h		;00e2 memory check ?
+	ld e,000h		;00e4
+	ld hl,0c000h		;00e6 graphic memory address
+	ld c,b			;00e9
+	ld (hl),c			;00ea
+	rlc c		;00eb
+	inc l			;00ed
+	jr nz,$-4		;00ee
+	rlc c		;00f0
+	inc h			;00f2
+	jr nz,$-9		;00f3
+	ld h,0c0h		;00f5
+	ld c,b			;00f7
+	ld a,(hl)			;00f8
+	xor c			;00f9
+	or e			;00fa
+	ld e,a			;00fb
+	rlc c		;00fc
+	inc l			;00fe
+	jr nz,$-7		;00ff
+	rlc c		;0101
+	inc h			;0103
+	jr nz,$-12		;0104
+	rlc b		;0106
+	jr nc,$-34		;0108
+	ld a,e			;010a
+	exx			;010b
+	and a			;010c
+	jr z,$+10		;010d
+	inc a			;010f
+	jr z,$+6		;0110
+	or d			;0112
+	ld d,a			;0113
+	jr $+3		;0114
+	inc e			;0116
+	ld a,b			;0117
+	cp 004h		;0118
+	jr nz,$-61		;011a
+	ld a,020h		;011c
+	out (0c0h),a		;011e Floppy external control
+	jr $-67		;0120
+	and c			;0122
+	pop bc			;0123
+	pop hl			;0124
+	nop			;0125
+	jr nz,$+66		;0126
+	ld h,b			;0128
+	add a,b			;0129
+	and b			;012a
+	ret nz			;012b
+	ret po			;012c
+	ld bc,04121h		;012d
+	ld h,c			;0130
+	add a,c			;0131
+	nop			;0132
+	xor a			;0133
+	or d			;0134
+	or e			;0135
+	jr z,$+43		;0136; 
+	ld ix,0013fh		;0138
+	jp 0058ch		;013c
+	ld de,03000h		;013f
+	ld hl,00148h		;0142
+	jp displaymsg		;0145  00011h
+	defb 017h		;0148 count 23
+	defb 045h		;0149 Error #2 :Call service.
+	defb 072h		;014a
+	defb 072h		;014b
+	defb 06fh		;014c
+	defb 072h		;014d
+	defb 020h		;014e
+	defb 023h		;014f
+	defb 032h		;0150
+	defb 020h		;0151
+	defb 03ah		;0152
+	defb 043h		;0153
+	defb 061h		;0154
+	defb 06ch		;0155
+	defb 06ch		;0156
+	defb 020h		;0157
+	defb 073h		;0158
+	defb 065h		;0159
+	defb 072h		;015a
+	defb 076h		;015b
+	defb 069h		;015c
+	defb 063h		;015d
+	defb 065h		;015e
+	defb 02eh		;015f
+	halt			;0160
+	out (0c5h),a		;0161 Program map B base
+	out (0c8h),a		;0163 Map and system control
+	dec hl			;0165
+	dec hl			;0166
+	ld a,(hl)			;0167
+	rrca			;0168
+	and 080h		;0169
+	ld (0ff80h),a		;016b
+	ld de,0ffa6h		;016e
+	ld hl,005beh		;0171
+	ld bc,0005ah		;0174
+	ldir		;0177
+	call 00503h		;0179
+	call 003d9h		;017c
+	call 0061ch		;017f
+	ld a,0ffh		;0182
+	jr c,$+3		;0184
+	cpl			;0186
+	ld (0ff93h),a		;0187
+	ld hl,00404h		;018a
+	ld (0ff91h),hl		;018d
+	or a			;0190
+	jr nz,$+50		;0191
+	ld c,010h		;0193
+	call 0065ah		;0195
+	jr c,$+19		;0198
+	ld bc,00000h		;019a
+	call 0040eh		;019d
+	jr c,$+11		;01a0
+	call 003a2h		;01a2
+	ld a,(0ff8bh)		;01a5
+	ld (0ff91h),a		;01a8
+	ld c,011h		;01ab
+	call 0065ah		;01ad
+	jr c,$+19		;01b0
+	ld bc,00000h		;01b2
+	call 0040eh		;01b5
+	jr c,$+11		;01b8
+	call 003a2h		;01ba
+	ld a,(0ff8bh)		;01bd
+	ld (0ff92h),a		;01c0
+	ld a,001h		;01c3
+	ld c,008h		;01c5
+	or 0a0h		;01c7
+	out (0c0h),a		;01c9 Floppy external control
+	ld b,a			;01cb
+	in a,(0b0h)		;01cc Floppy status
+	rr a		;01ce
+	jr c,$-4		;01d0
+	in a,(0b0h)		;01d2 Floppy status
+	add a,a			;01d4
+	jr c,$+8		;01d5
+	call 0057dh		;01d7
+	call 00262h		;01da
+	inc c			;01dd
+	ld a,b			;01de
+	add a,a			;01df
+	and 00fh		;01e0
+	jr nz,$-27		;01e2
+	ld a,(0ff93h)		;01e4
+	or a			;01e7
+	jr nz,$+28		;01e8
+	in a,(0ffh)		;01ea ????
+	and 020h		;01ec
+	jr nz,$+22		;01ee
+	ld c,010h		;01f0
+	call 0065ah		;01f2
+	ld b,000h		;01f5
+	call nc,00262h		;01f7
+	ld c,011h		;01fa
+	call 0065ah		;01fc
+	ld b,000h		;01ff
+	call nc,00262h		;0201
+	call 00503h		;0204
+	ld bc,002a3h		;0207
+	ld hl,0061ah		;020a
+	otir		;020d
+	ld de,03000h		;020f
+	ld hl,00218h		;0212
+	jp displaymsg		;0215 00011h
+	defb 019h		;0218 count 25
+	defb 04eh		;0219 No System Device On Line.
+	defb 06fh		;021a
+	defb 020h		;021b
+	defb 053h		;021c
+	defb 079h		;021d
+	defb 073h		;021e
+	defb 074h		;021f
+	defb 065h		;0220
+	defb 06dh		;0221
+	defb 020h		;0222
+	defb 044h		;0223
+	defb 065h		;0224
+	defb 076h		;0225
+	defb 069h		;0226
+	defb 063h		;0227
+	defb 065h		;0228
+	defb 020h		;0229
+	defb 04fh		;022a
+	defb 06eh		;022b
+	defb 020h		;022c
+	defb 04ch		;022d
+	defb 069h		;022e
+	defb 06eh		;022f
+	defb 065h		;0230
+	defb 02eh		;0231
+	call 0057dh		;0232
+	call 0057dh		;0235
+	call 0057dh		;0238
+	jp 0017ch		;023b
+	ld ix,00245h		;023e
+	jp 0058ch		;0242
+	call 0056bh		;0245
+	rst 10h			;0248
+	defb 017h		;0249 count 23
+	defb 045h		;024a Error #0: Call service.
+	defb 072h		;024b
+	defb 072h		;024c
+	defb 06fh		;024d
+	defb 072h		;024e
+	defb 020h		;024f
+	defb 023h		;0250
+	defb 030h		;0251
+	defb 03ah		;0252
+	defb 020h		;0253
+	defb 043h		;0254
+	defb 061h		;0255
+	defb 06ch		;0256
+	defb 06ch		;0257
+	defb 020h		;0258
+	defb 073h		;0259
+	defb 065h		;025a
+	defb 072h		;025b
+	defb 076h		;025c
+	defb 069h		;025d
+	defb 063h		;025e
+	defb 065h		;025f
+	defb 02eh		;0260
+	halt			;0261
+	push bc			;0262
+	xor a			;0263
+	ld (0ff81h),a		;0264
+	ld (0ff82h),a		;0267
+	rst 8			;026a
+	defb 008h		;026b count 8
+	defb 04ch		;026c Loading 
+	defb 06fh		;026d
+	defb 061h		;026e
+	defb 064h		;026f
+	defb 069h		;0270
+	defb 06eh		;0271
+	defb 067h		;0272
+	defb 020h		;0273
+	pop ix		;0274
+	call 004a1h		;0276
+	jr c,$-59		;0279
+	ld bc,00000h		;027b
+	call 0040eh		;027e
+	jr c,$+92		;0281
+	ld hl,(0ff81h)		;0283
+	ld a,l			;0286
+	and a			;0287
+	jr z,$+20		;0288
+	ld a,h			;028a
+	and 003h		;028b
+	in a,(0ffh)		;028d
+	jr z,$+9		;028f
+	bit 0,a		;0291
+	jr nz,$+9		;0293
+	jp 0034bh		;0295
+	bit 1,a		;0298
+	jr z,$-5		;029a
+	call 003a2h		;029c
+	jp c,00343h		;029f
+	jr z,$+20		;02a2
+	call 0040eh		;02a4
+	jr c,$+54		;02a7
+	ld hl,0401fh		;02a9
+	bit 0,(hl)		;02ac
+	jp nz,0034fh		;02ae
+	call 0040eh		;02b1
+	jr c,$+41		;02b4
+	exx			;02b6
+	ld hl,0400eh		;02b7
+	ld d,(hl)			;02ba
+	inc hl			;02bb
+	ld e,(hl)			;02bc
+	push de			;02bd
+	pop iy		;02be
+	ld hl,04080h		;02c0
+	ld c,(hl)			;02c3
+	inc hl			;02c4
+	inc hl			;02c5
+	ld d,(hl)			;02c6
+	inc hl			;02c7
+	ld e,(hl)			;02c8
+	inc hl			;02c9
+	ld a,(hl)			;02ca
+	inc hl			;02cb
+	ld l,(hl)			;02cc
+	ld h,a			;02cd
+	ex de,hl			;02ce
+	push hl			;02cf
+	ld a,e			;02d0
+	add a,0ffh		;02d1
+	ld a,d			;02d3
+	exx			;02d4
+	ld e,000h		;02d5
+	adc a,e			;02d7
+	ld d,a			;02d8
+	pop hl			;02d9
+	call 00414h		;02da
+	jr c,$+106		;02dd
+	ld a,(0ff8bh)		;02df
+	cp 002h		;02e2
+	jr z,$+10		;02e4
+	xor a			;02e6
+	ex af,af'			;02e7
+	exx			;02e8
+	jp 0ffa6h		;02e9
+	ex af,af'			;02ec
+	adc a,c			;02ed
+	push ix		;02ee
+	pop bc			;02f0
+	ld a,(0ff8bh)		;02f1
+	ld de,00013h		;02f4
+	ld hl,0ff8dh		;02f7
+	jr nz,$+69		;02fa
+	cp 002h		;02fc
+	jp nz,0ffb8h		;02fe
+	push bc			;0301
+	bit 3,c		;0302
+	jr nz,$+7		;0304
+	ld a,0ffh		;0306
+	ld (0ff81h),a		;0308
+	in a,(0ffh)		;030b
+	ld c,a			;030d
+	xor a			;030e
+	bit 0,c		;030f
+	jr z,$+4		;0311
+	ld a,00fh		;0313
+	bit 1,c		;0315
+	jr z,$+4		;0317
+	or 0f0h		;0319
+	ld b,a			;031b
+	ld a,(0ff81h)		;031c
+	cpl			;031f
+	and a			;0320
+	jr z,$+19		;0321
+	push bc			;0323
+	push ix		;0324
+	pop bc			;0326
+	ld a,c			;0327
+	sub 007h		;0328
+	ld b,a			;032a
+	ld a,080h		;032b
+	rlca			;032d
+	rlca			;032e
+	djnz $-2		;032f
+	pop bc			;0331
+	and b			;0332
+	rrca			;0333
+	xor b			;0334
+	pop bc			;0335
+	ld (0ff81h),a		;0336
+	ld a,(0ff8bh)		;0339
+	jp 0ffb8h		;033c
+	ld a,033h		;033f
+	jr $+16		;0341
+	ld a,030h		;0343
+	jr $+12		;0345
+	ld a,032h		;0347
+	jr $+8		;0349
+	ld a,039h		;034b
+	jr $+4		;034d
+	ld a,031h		;034f
+	push ix		;0351
+	push af			;0353
+	call 0056bh		;0354
+	push de			;0357
+	rst 10h			;0358
+	defb 028h		;0359 count 40
+	defb 045h		;035a Error #10: Invalid System Disk in Drive 
+	defb 072h		;035b
+	defb 072h		;035c
+	defb 06fh		;035d
+	defb 072h		;035e
+	defb 020h		;035f
+	defb 023h		;0360
+	defb 031h		;0361
+	defb 030h		;0362
+	defb 03ah		;0363
+	defb 020h		;0364
+	defb 049h		;0365
+	defb 06eh		;0366
+	defb 076h		;0367
+	defb 061h		;0368
+	defb 06ch		;0369
+	defb 069h		;036a
+	defb 064h		;036b
+	defb 020h		;036c
+	defb 053h		;036d
+	defb 079h		;036e
+	defb 073h		;036f
+	defb 074h		;0370
+	defb 065h		;0371
+	defb 06dh		;0372
+	defb 020h		;0373
+	defb 044h		;0374
+	defb 069h		;0375
+	defb 073h		;0376
+	defb 06bh		;0377
+	defb 020h		;0378
+	defb 069h		;0379
+	defb 06eh		;037a
+	defb 020h		;037b
+	defb 044h		;037c
+	defb 072h		;037d
+	defb 069h		;037e
+	defb 076h		;037f
+	defb 065h		;0380
+	defb 020h		;0381
+	pop hl			;0382
+	pop bc			;0383
+	ld de,00008h		;0384
+	add hl,de			;0387
+	add hl,de			;0388
+	inc hl			;0389
+	ld a,004h		;038a Select display memory
+	out (0c8h),a		;038c Map and system control
+	ld (hl),b			;038e
+	xor a			;038f
+	out (0c8h),a		;0390 Map and system control
+	call 0057dh		;0392
+	call 0057dh		;0395
+	call 00503h		;0398
+	call 003d9h		;039b
+	exx			;039e
+	pop bc			;039f
+	scf			;03a0
+	ret			;03a1
+	ld a,003h		;03a2
+	ld (0ff8bh),a		;03a4
+	ld hl,0401dh		;03a7
+	ld a,(hl)			;03aa
+	cp 0e5h		;03ab
+	scf			;03ad
+	ret z			;03ae
+	cp 06ch		;03af
+	scf			;03b1
+	ret z			;03b2
+	add a,001h		;03b3
+	jr nc,$+8		;03b5
+	ld hl,0ff8bh		;03b7
+	ld (hl),002h		;03ba
+	ret			;03bc
+	inc hl			;03bd
+	ld b,(hl)			;03be
+	ld a,b			;03bf
+	inc hl			;03c0
+	ld c,(hl)			;03c1
+	add a,001h		;03c2
+	adc a,c			;03c4
+	ld hl,0ff8bh		;03c5
+	ld (hl),002h		;03c8
+	jr z,$+10		;03ca
+	ld (hl),001h		;03cc
+	ld a,b			;03ce
+	or c			;03cf
+	scf			;03d0
+	ret z			;03d1
+	or a			;03d2
+	ret			;03d3
+	ld bc,00001h		;03d4
+	or a			;03d7
+	ret			;03d8
+	ld de,03000h		;03d9
+	rst 10h			;03dc
+	defb 01dh		;03dd count 29
+	defb 052h		;03de R3-00C Ready For System Disk 
+	defb 033h		;03df
+	defb 02dh		;03e0
+	defb 030h		;03e1
+	defb 030h		;03e2
+	defb 043h		;03e3
+	defb 020h		;03e4
+	defb 052h		;03e5
+	defb 065h		;03e6
+	defb 061h		;03e7
+	defb 064h		;03e8
+	defb 079h		;03e9
+	defb 020h		;03ea
+	defb 046h		;03eb
+	defb 06fh		;03ec
+	defb 072h		;03ed
+	defb 020h		;03ee
+	defb 053h		;03ef
+	defb 079h		;03f0
+	defb 073h		;03f1
+	defb 074h		;03f2
+	defb 065h		;03f3
+	defb 06dh		;03f4
+	defb 020h		;03f5
+	defb 044h		;03f6
+	defb 069h		;03f7
+	defb 073h		;03f8
+	defb 06bh		;03f9
+	defb 020h		;03fa
+	call 0057dh		;03fb
+	ret			;03fe
+	ld b,00ah		;03ff
+	ld hl,00000h		;0401
+	inc hl			;0404
+	ld a,l			;0405
+	or h			;0406
+	jr nz,$-3		;0407
+	djnz $-5		;0409
+	jp 00133h		;040b
+	ld de,00100h		;040e
+	ld hl,04000h		;0411
+	push bc			;0414
+	push ix		;0415
+	pop bc			;0417
+	ld a,c			;0418
+	pop bc			;0419
+	cp 010h		;041a
+	jp nc,006c1h		;041c
+	ld a,005h		;041f
+	ex af,af'			;0421
+	push bc			;0422
+	ex (sp),hl			;0423
+	ld a,l			;0424
+	and 00fh		;0425
+	push bc			;0427
+	push af			;0428
+	ld a,(0ff81h)		;0429
+	and a			;042c
+	ld b,000h		;042d
+	jr z,$+4		;042f
+	ld b,010h		;0431
+	pop af			;0433
+	add a,b			;0434
+	inc a			;0435
+	out (0b2h),a		;0436 Floppy sector register
+	add hl,hl			;0438
+	add hl,hl			;0439
+	add hl,hl			;043a
+	add hl,hl			;043b
+	cp 011h		;043c
+	ld a,h			;043e
+	out (0b3h),a		;043f Floppy data register
+	jr c,$+18		;0441
+	rra			;0443
+	out (0b3h),a		;0444 Floppy data register
+	push ix		;0446
+	pop bc			;0448
+	ld a,b			;0449
+	jr nc,$+4		;044a
+	or 010h		;044c
+	ld (0ff82h),a		;044e
+	out (0c0h),a		;0451 Floppy external control
+	pop bc			;0453
+	pop hl			;0454
+	ld a,01dh		;0455
+	call 004b6h		;0457
+	and 098h		;045a
+	jr nz,$+42		;045c
+	call 004c1h		;045e
+	ld a,(0ff82h)		;0461
+	bit 4,a		;0464
+	ld a,082h		;0466
+	jr z,$+4		;0468
+	ld a,08ah		;046a
+	call 004b6h		;046c
+	and 09ch		;046f
+	jr nz,$+21		;0471
+	inc h			;0473
+	inc bc			;0474
+	dec d			;0475
+	ret z			;0476
+	ld a,c			;0477
+	and 00fh		;0478
+	jr z,$-91		;047a
+	in a,(0b2h)		;047c
+	inc a			;047e
+	out (0b2h),a		;047f Floppy sector register
+	ld a,005h		;0481
+	ex af,af'			;0483
+	jr $-35		;0484
+	scf			;0486
+	bit 7,a		;0487
+	ret nz			;0489
+	ex af,af'			;048a
+	dec a			;048b
+	jr nz,$-107		;048c
+	ex af,af'			;048e
+	bit 4,a		;048f
+	jr z,$+14		;0491
+	ld a,(0ff81h)		;0493
+	and a			;0496
+	jr nz,$+8		;0497
+	cpl			;0499
+	ld (0ff81h),a		;049a
+	jr $-126		;049d
+	scf			;049f
+	ret			;04a0
+	push bc			;04a1
+	push ix		;04a2
+	pop bc			;04a4
+	ld a,c			;04a5
+	pop bc			;04a6
+	cp 010h		;04a7
+	jp nc,00788h		;04a9
+	ld a,001h		;04ac
+	call 004b6h		;04ae
+	and 004h		;04b1
+	ret nz			;04b3
+	scf			;04b4
+	ret			;04b5
+	out (0b0h),a		;04b6 Floppy status
+	in a,(0b4h)		;04b8
+	bit 4,a		;04ba
+	jr z,$-4		;04bc
+	in a,(0b0h)		;04be
+	ret			;04c0
+	push bc			;04c1
+	ld bc,0b301h		;04c2
+	jr $+6		;04c5
+	push bc			;04c7
+	ld bc,07803h		;04c8
+	ld a,b			;04cb
+	ld (0ff8ch),a		;04cc
+	ld a,c			;04cf
+	out (0b4h),a		;04d0 PIO A data
+	ld bc,006ach		;04d2
+	ld a,0c3h		;04d5
+	out (c),a		;04d7
+	djnz $-2		;04d9
+	ld a,07dh		;04db
+	out (c),a		;04dd
+	out (c),l		;04df
+	out (c),h		;04e1
+	out (c),e		;04e3
+	out (c),d		;04e5
+	push hl			;04e7
+	ld hl,004fbh		;04e8
+	ld b,003h		;04eb
+	otir		;04ed
+	ld a,(0ff8ch)		;04ef
+	out (c),a		;04f2
+	ld b,005h		;04f4
+	otir		;04f6
+	pop hl			;04f8
+	pop bc			;04f9
+	ret			;04fa
+	inc d			;04fb
+	jr z,$-121		;04fc
+	adc a,d			;04fe
+	rst 8			;04ff
+	ld bc,087cfh		;0500
+	pop ix		;0503
+setupclearscreen:
+;entry during initiation with IX=0092
+	xor a			;0505 start A=0
+	ld bc,00eb9h		;0506 C=B9 B=14
+	ld hl,0054fh		;0509
+	out (0b8h),a		;050c CRT register select
+	inc a				;050e A++
+	outi				;050f C)=(HL++) and B--
+	jr nz,$-5			;0511 loop until B==0 (14 bytes to write)
+	ld de,03002h		;0513
+	ld hl,03000h		;0516
+	ld bc,00ffeh		;0519
+;RST 08 jump in here HL=300C DE=300E BC=4E IX=032F
+	ld a,004h			;051c Select display memory
+	out (0c8h),a		;051e Output to screen out C8,04 Map and system control
+	xor a				;0520 
+	ld (hl),a			;0521 put 00h at 3000h or 300Ch
+	inc hl				;0522 bump
+	ld (hl),020h		;0523 put 20h at 3001h or 300Dh
+	dec hl				;0525 go back point to original
+	ldir				;0526 copy 00 20 through 4K or 80 words
+	xor a				;0528 Reset map A=0
+	out (0c8h),a		;0529 out C8,00  Map and system control
+	jp (ix)				;052b continue
+cleartopline:
+	;process RST 08 entry DE=300C
+	push de				;052d save old DE
+	ld l,e				;052e HL=DE
+	ld h,d				;052f
+	inc de				;0530 DE+=2
+	inc de				;0531
+	ld bc,0004eh		;0532 80-2
+	push ix				;0535 save old IX
+	ld ix,0053dh		;0537 exit addr
+	jr $-31				;053b clear line 300C 80char
+	;clear line returns here
+	pop ix				;053d restore old IX
+	pop de				;053f restore old DE
+	ret					;0540
+
+printroutine:
+;print routine
+;BC count
+;HL message source
+;DE screen target
+	ld a,004h			;0541 Select display memory
+	out (0c8h),a		;0543 Output to screen Map and system control
+	inc de				;0545 do every other addr
+	ldi					;0546 (DE++)=(HL++) and BC--
+	jp pe,00545h		;0548 repeat while BC not 0
+	xor a				;054b Reset map
+	out (0c8h),a		;054c Reset to memory Map and system control
+	jp (hl)			;054e
+;data to be output to io port B9 14 byte CRT data register
+	defb 069h		;054f
+	defb 050h		;0550
+	defb 056h		;0551
+	defb 00bh		;0552
+	defb 019h		;0553
+	defb 003h		;0554
+	defb 018h		;0555
+	defb 018h		;0556
+	defb 000h		;0557
+	defb 00bh		;0558
+	defb 020h		;0559
+	defb 000h		;055a
+	defb 000h		;055b
+	defb 000h		;055c
+;
+	pop hl			;055d
+	jr $+4				;055e
+;
+	otir				;0560 out B bytes from (HL) to (C)
+;
+	otirloop:
+	ld c,(hl)			;0562 get register
+	inc hl				;0563 bump
+	ld b,(hl)			;0564 get count
+	inc hl				;0565 bump
+	ld a,b				;0566 evaluate count
+	and a				;0567
+	jr nz,$-8			;0568 if count not 0 loop
+	jp (hl)				;056a
+	ld de,03100h		;056b
+	ld a,00fh			;056e
+	out (0b8h),a		;0570 CRT register select
+	xor a				;0572
+	out (0b9h),a		;0573 CRT data register
+	in a,(0bbh)			;0575
+	or a				;0577
+	ret nz				;0578
+	ld de,030a0h		;0579
+	ret					;057c
+;
+	ld hl,04600h		;057d
+	dec hl				;0580
+	ex (sp),hl			;0581
+	ex (sp),hl			;0582
+	ex (sp),hl			;0583
+	ex (sp),hl			;0584
+	ld a,l				;0585
+	or h				;0586
+	jr nz,$-7			;0587
+	ret					;0589
+	pop ix		;058a
+
+	ld a,00fh		;058c
+	out (0b8h),a		;058e CRT register select
+	xor a			;0590
+	out (0b9h),a		;0591 CRT data register
+	in a,(0bbh)		;0593 ????
+	and a			;0595
+	jr nz,$+6		;0596
+	ld a,081h		;0598
+	out (0d4h),a		;059a Hi-res color
+	ld bc,006cch		;059c
+	ld hl,005b8h		;059f
+	otir		;05a2
+	ld bc,00000h		;05a4
+	ex (sp),hl			;05a7
+	ex (sp),hl			;05a8
+	dec bc			;05a9
+	ld a,b			;05aa
+	or c			;05ab
+	jr nz,$-5		;05ac
+	ld a,080h		;05ae
+	out (0d4h),a		;05b0 Hi-res color
+	ld a,09fh		;05b2
+	out (0cch),a		;05b4 ?????
+	jp (ix)		;05b6
+	adc a,(hl)			;05b8
+	inc b			;05b9
+	sub d			;05ba
+	cp a			;05bb
+	rst 18h			;05bc
+	rst 38h			;05bd
+	ld a,001h		;05be 
+	out (0c8h),a		;05c0 Map and system control
+	ex af,af'			;05c2
+	adc a,(hl)			;05c3
+	ex af,af'			;05c4
+	inc hl			;05c5
+	dec de			;05c6
+	ld a,e			;05c7
+	or d			;05c8
+	jr nz,$-7		;05c9
+	out (0c8h),a		;05cb Map and system control
+	jp 002ech		;05cd
+	cp 002h		;05d0
+	ld a,001h		;05d2
+	out (0c8h),a		;05d4 Map and system control
+	jr nz,$+31		;05d6
+	ld a,(0ff81h)		;05d8
+	ld (00022h),a		;05db
+	ld a,c			;05de
+	sub 010h		;05df
+	jr c,$+20		;05e1
+	ld c,a			;05e3
+	jr z,$+10		;05e4
+	ld a,(0ff8fh)		;05e6
+	cp 095h		;05e9
+	jr nz,$+3		;05eb
+	inc c			;05ed
+	ld a,004h		;05ee
+	add a,c			;05f0
+	ld c,a			;05f1
+	push bc			;05f2
+	pop ix		;05f3
+	ld a,(0ff80h)		;05f5
+	or c			;05f8
+	ld c,a			;05f9
+	ld a,(0ff91h)		;05fa
+	ld (de),a			;05fd
+	inc de			;05fe
+	push bc			;05ff
+	ld bc,00004h		;0600
+	ldir		;0603
+	ld de,00023h		;0605
+	ld hl,0ff8dh		;0608
+	ld a,(0ff92h)		;060b
+	ld (de),a			;060e
+	inc de			;060f
+	ld bc,00004h		;0610
+	ldir		;0613
+	pop bc			;0615
+	jp (iy)		;0616
+	dec b			;0618
+	add a,b			;0619
+	dec b			;061a
+	nop			;061b
+	ld bc,002a3h		;061c
+	ld hl,00618h		;061f
+	otir		;0622
+	ld b,0ffh		;0624
+	in a,(079h)		;0626
+	cp 0c7h		;0628
+	jr z,$+6		;062a
+	djnz $-6		;062c
+	scf			;062e
+	ret			;062f
+	call 00723h		;0630
+	ret c			;0633
+	in a,(0ffh)		;0634
+	rra			;0636
+	rra			;0637
+	and 007h		;0638
+	ld hl,007e2h		;063a
+	jr z,$+18		;063d
+	ld hl,007d6h		;063f
+	dec a			;0642
+	jr z,$+5		;0643
+	ld hl,007cah		;0645
+	call 0076bh		;0648
+	call 00723h		;064b
+	ret c			;064e
+	ld de,0ff8dh		;064f
+	ld bc,00004h		;0652
+	ldir		;0655
+	jp 0077fh		;0657
+	push bc			;065a
+	pop ix		;065b
+	ld a,010h		;065d
+	sub c			;065f
+	jr z,$+4		;0660
+	ld a,020h		;0662
+	ld hl,0ff83h		;0664
+	ld b,004h		;0667
+	ld (hl),008h		;0669
+	inc hl			;066b
+	ld (hl),a			;066c
+	inc hl			;066d
+	ld (hl),000h		;066e
+	djnz $-3		;0670
+	call 00723h		;0672
+	ret c			;0675
+	call 0074bh		;0676
+	call 00738h		;0679
+	and 002h		;067c
+	ret z			;067e
+	scf			;067f
+	ret			;0680
+	push bc			;0681
+	call 0056bh		;0682
+	rst 10h			;0685
+	defb 028h		;0686 sount 40
+	defb 045h		;0687 Error 1: Disk system error, Call Service
+	defb 072h		;0688
+	defb 072h		;0689
+	defb 06fh		;068a
+	defb 072h		;068b
+	defb 020h		;068c
+	defb 031h		;068d
+	defb 03ah		;068e
+	defb 020h		;068f
+	defb 044h		;0690
+	defb 069h		;0691
+	defb 073h		;0692
+	defb 06bh		;0693
+	defb 020h		;0694
+	defb 073h		;0695
+	defb 079h		;0696
+	defb 073h		;0697
+	defb 074h		;0698
+	defb 065h		;0699
+	defb 06dh		;069a
+	defb 020h		;069b
+	defb 065h		;069c
+	defb 072h		;069d
+	defb 072h		;069e
+	defb 06fh		;069f
+	defb 072h		;06a0
+	defb 02ch		;06a1
+	defb 020h		;06a2
+	defb 043h		;06a3
+	defb 061h		;06a4
+	defb 06ch		;06a5
+	defb 06ch		;06a6
+	defb 020h		;06a7
+	defb 053h		;06a8
+	defb 065h		;06a9
+	defb 072h		;06aa
+	defb 076h		;06ab
+	defb 069h		;06ac
+	defb 063h		;06ad
+	defb 065h		;06ae
+	call 0057dh		;06af
+	call 0057dh		;06b2
+	call 0057dh		;06b5
+	call 00503h		;06b8
+	call 003d9h		;06bb
+	pop bc			;06be
+	scf			;06bf
+	ret			;06c0
+	call 004c7h		;06c1
+	ld a,b			;06c4
+	ld (0ff85h),a		;06c5
+	ld a,c			;06c8
+	ld (0ff86h),a		;06c9
+	ld a,d			;06cc
+	ld (0ff87h),a		;06cd
+	push bc			;06d0
+	push hl			;06d1
+	call 00723h		;06d2
+	jp c,006fbh		;06d5
+	ld hl,0ff83h		;06d8
+	ld bc,00678h		;06db
+	in a,(079h)		;06de
+	and 041h		;06e0
+	jr nz,$-4		;06e2
+	outi		;06e4
+	jr nz,$-8		;06e6
+	out (07ah),a		;06e8 ?????
+	nop			;06ea
+	in a,(079h)		;06eb
+	and 044h		;06ed
+	jr nz,$-4		;06ef
+	out (07bh),a		;06f1 ????
+	call 00738h		;06f3
+	and 002h		;06f6
+	call nz,006ffh		;06f8
+	pop hl			;06fb
+	pop bc			;06fc
+	inc bc			;06fd
+	ret			;06fe
+	call 00723h		;06ff
+	ret c			;0702
+	ld a,003h		;0703
+	call 0074dh		;0705
+	ld bc,00478h		;0708
+	ld hl,0ff89h		;070b
+	in a,(079h)		;070e
+	cp 00fh		;0710
+	jr nz,$-4		;0712
+	ini		;0714
+	jr nz,$-8		;0716
+	call 00738h		;0718
+	ld a,(0ff89h)		;071b
+	sub 098h		;071e
+	ret z			;0720
+	scf			;0721
+	ret			;0722
+	in a,(079h)		;0723
+	and 080h		;0725
+	scf			;0727
+	ret z			;0728
+	ld a,001h		;0729
+	out (079h),a		;072b ????
+	ld b,0ffh		;072d
+	in a,(079h)		;072f
+	and 080h		;0731
+	ret z			;0733
+	djnz $-5		;0734
+	scf			;0736
+	ret			;0737
+	in a,(079h)		;0738
+	and 044h		;073a
+	jr nz,$-4		;073c
+	in a,(078h)		;073e
+	ld b,a			;0740
+	in a,(079h)		;0741
+	and 042h		;0743
+	jr nz,$-4		;0745
+	in a,(078h)		;0747
+	ld a,b			;0749
+	ret			;074a
+	ld a,000h		;074b
+	call 00760h		;074d
+	ld a,(0ff84h)		;0750
+	call 00760h		;0753
+	ld a,000h		;0756
+	ld b,004h		;0758
+	call 00760h		;075a
+	djnz $-3		;075d
+	ret			;075f
+	push af			;0760
+	in a,(079h)		;0761
+	and 041h		;0763
+	jr nz,$-4		;0765
+	pop af			;0767
+	out (078h),a		;0768 Step out
+	ret			;076a
+	ld a,00ch		;076b
+	call 0074dh		;076d
+	ld bc,00878h		;0770
+	in a,(079h)		;0773
+	cp 007h		;0775
+	jr nz,$-4		;0777
+	outi		;0779
+	jr nz,$-8		;077b
+	jr $-69		;077d
+	ld a,0e4h		;077f
+	call 00794h		;0781
+	ret z			;0784
+	jp 00681h		;0785
+	call 00723h		;0788
+	ret c			;078b
+	ld a,001h		;078c
+	call 00794h		;078e
+	ret z			;0791
+	jr $+11		;0792
+	call 0074dh		;0794
+	call 00738h		;0797
+	and 002h		;079a
+	ret			;079c
+	call 0056bh		;079d
+	rst 10h			;07a0
+	defb 027h		;07a1 count 39
+	defb 045h		;07a2 Error 3: Disk Malfunction, Call Service
+	defb 072h		;07a3
+	defb 072h		;07a4
+	defb 06fh		;07a5
+	defb 072h		;07a6
+	defb 020h		;07a7
+	defb 033h		;07a8
+	defb 03ah		;07a9
+	defb 020h		;07aa
+	defb 044h		;07ab
+	defb 069h		;07ac
+	defb 073h		;07ad
+	defb 06bh		;07ae
+	defb 020h		;07af
+	defb 04dh		;07b0
+	defb 061h		;07b1
+	defb 06ch		;07b2
+	defb 066h		;07b3
+	defb 075h		;07b4
+	defb 06eh		;07b5
+	defb 063h		;07b6
+	defb 074h		;07b7
+	defb 069h		;07b8
+	defb 06fh		;07b9
+	defb 06eh		;07ba
+	defb 02ch		;07bb
+	defb 020h		;07bc
+	defb 043h		;07bd
+	defb 061h		;07be
+	defb 06ch		;07bf
+	defb 06ch		;07c0
+	defb 020h		;07c1
+	defb 053h		;07c2
+	defb 065h		;07c3
+	defb 072h		;07c4
+	defb 076h		;07c5
+	defb 069h		;07c6
+	defb 063h		;07c7
+	defb 065h		;07c8
+	halt			;07c9
+	ld bc,00432h		;07ca
+	ld bc,00031h		;07cd
+	ld b,b			;07d0
+	dec bc			;07d1
+	ld b,000h		;07d2
+	sub l			;07d4
+	rst 38h			;07d5
+	ld bc,00232h		;07d6
+	ld bc,00031h		;07d9
+	ld b,b			;07dc
+	dec bc			;07dd
+	ld b,000h		;07de
+	ld c,d			;07e0
+	rst 38h			;07e1
+	nop			;07e2
+	nop			;07e3
+	ld c,d			;07e4
+	rst 38h			;07e5
+	rst 38h			;07e6
+	rst 38h			;07e7
+	rst 38h			;07e8
+	rst 38h			;07e9
+	rst 38h			;07ea
+	rst 38h			;07eb
+	rst 38h			;07ec
+	rst 38h			;07ed
+	rst 38h			;07ee
+	rst 38h			;07ef
+	rst 38h			;07f0
+	rst 38h			;07f1
+	rst 38h			;07f2
+	rst 38h			;07f3
+	rst 38h			;07f4
+	rst 38h			;07f5
+	rst 38h			;07f6
+	rst 38h			;07f7
+	rst 38h			;07f8
+	rst 38h			;07f9
+	rst 38h			;07fa
+	rst 38h			;07fb
+	rst 38h			;07fc
+	rst 38h			;07fd
+	rst 38h			;07fe
+	rst 38h			;07ff

BIN
pic/restoring/20221005_104931.jpg


+ 0 - 0
prom/MONROE.ZASM → prom/MONROE_8880.ZASM