ZX-SP-ROMs/ProfRom_Disasm/rom4.a80
Anatoliy Belyanskiy b7a39665e2 profROM
2023-06-27 01:29:58 +10:00

1083 lines
24 KiB
Plaintext
Executable File
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

DEVICE ZXSPECTRUM128
INCLUDE "!AllConst.asm"
INCLUDE "!ram8.asm"
ORG #0000
ROMdisk equ #0E00
;#0000 reset computer
;#0004 *NOT USED* (#04 ¡ ©â )
;#0008 rst #08 ¯¥ç âì á®®¡é¥­¨ï ¯® ­®¬¥àã ¢ BC
;#000D *NOT USED* (#03 ¡ ©â )
;#0010 rst #10 ¯¥ç âì ᨬ¢®«  ¨§ A
;#0015 *NOT USED* (#0B ¡ ©â)
;#0020 rst #20 ¯¥ç âì áâப¨
;#0022 *NOT USED* (#0E ¡ ©â)
;#0030 rst #30 ¢ë§®¢ ¯à®æ¥¤ãàë ¨§ ¤à㣮£® rom
;#0033 *NOT USED* (#05 ¡ ©â)
;#0038 ®¡à ¡®â稪 ¯à¥à뢠­¨© im 0/1
;#003B ¯¥ç âì áâப¨ (rst #20)
;#004A *NOT USED* (#26 ¡ ©â)
;#0070 ¯¥à¥¬¥­­ë¥ ROM-disk
;#0073 § £à㧪  ¡«®ª  ¨§ ROM-Disk
;#00AA *NOT USED* (55 ¡ ©â)
;#00FF  ¤à¥á ¯/¯ ®¡à ¡®âª¨ ¯à¥à뢠­¨© im 2
;#0101 ­®¬¥à ⥪ã饣® rom
;#0102 ¯à®æ¥¤ãà  ®¡à ¡®âª¨ ¯à¥à뢠­¨© im 2
;#0103 reset computer
;#0122 ª®¯¨à®¢ ­¨¥ ¯¥à¥¬¥­­ëå ¬®­¨â®à  ¨ ¯à®¢¥àª  ç⥭¨ï ¯®à⮢ #7FFD/#1FFD
;#0175 ¯¥à¥¬¥­­ë¥ ¬®­¨â®à 
;#02E8 ¯à®¢¥àª  ®à¨£¨­ «ì­ë©/ᮢ¬¥áâ¨¬ë© ª®¬¯ìîâ¥à
;#02F4 ãáâ ­®¢ª  ¯¥à¥¬¥­­ëå ¨§ NVRAM
;#0305 ãáâ ­®¢ª  ¯¥à¥¬¥­­ëå ¨§ NVRAM/CMOS128
;#0312 ãáâ ­®¢ª  ¯¥à¥¬¥­­ëå ¯® ¤ ­­ë¬ ¢ CMOS
;#0315 ãáâ ­®¢ª  ¯¥à¥¬¥­­ëå ¯® ¤ ­­ë¬ ¢ CMOS
;#036C § ¯¨áì ¯¥à¥¬¥­­ëå ¢ CMOS ¨ ¢ NVRAM
;#0378 § ¯¨áì ¯¥à¥¬¥­­ëå ¢ NVRAM
;#0398 § ¯¨áì ¯¥à¥¬¥­­ëå ¢ CMOS
;#046E â ¡«¨æ  ¤«ï § ¯¨á¨ ¯¥à¥¬¥­­ëå ¢ CMOS
;#04FF â ¡«¨æ  ¤«ï § ¯¨á¨ ¯¥à¥¬¥­­ëå ¢ NVRAM
;#0512 § ¯¨áì ­  ¤¨áª ᥪâ®à  á ª®­ä¨£ãà æ¨¥© (C. save Set Up to disk)
;#057F à á¯ ª®¢ª  èà¨äâ  ¢ rom 8
;#059F § ¯ ª®¢ ­­ë© èà¨äâ
;#0A5A ¨­¨æ¨ «¨§ æ¨ï á¨áâ¥¬ë ¨ ¯¥ç âì á®®¢¥âáâ¢ãîé¨å á®®¡é¥­¨©
;#0CDF ª®¯¨à®¢ ­¨¥ ¤¥áªà¨¯â®à  ®ª­  ¢ à ¡®çãîî ®¡« áâì ¨ à¨á®¢ ­¨¥ à ¬ª¨ ¢®ªà㣠­¥£®
;#0CFA ¤¥áªà¨¯â®àë ®ª®­
;#0D32 ª®¯¨à ©âë
;#0E00 ROM-disk
;#4000
;€„<E282AC>: #0000 reset computer
x0000 di
jp x0103
;€„<E282AC>: #0004 *NOT USED* (#04 ¡ ©â )
x0004 ds #04
;€„<E282AC>: #0008 rst #08 ¯¥ç âì á®®¡é¥­¨ï ¯® ­®¬¥àã ¢ BC
x0008 rst #30
dw rom5_x11CD ;¯¥ç âì á®®¡é¥­¨ï ¯® ­®¬¥àã ¢ BC
db #05
ret
;€„<E282AC>: #000D *NOT USED* (#03 ¡ ©â )
x000D ds #03
;€„<E282AC>: #0010 rst #10 ¯¥ç âì ᨬ¢®«  ¨§ A
x0010 rst #30
dw rom2_x2B12 ;¯¥ç âì ᨬ¢®«  (rst #10)
db #02
ret
;€„<E282AC>: #0015 *NOT USED* (#0B ¡ ©â)
x0015 ds #0B
;€„<E282AC>: #0020 rst #20 ¯¥ç âì áâப¨
x0020 jr x003B
;€„<E282AC>: #0022 *NOT USED* (#0E ¡ ©â)
x0022 ds #0E
;€„<E282AC>: #0030 rst #30 ¢ë§®¢ ¯à®æ¥¤ãàë ¨§ ¤à㣮£® rom
x0030 jp xE3D3
;€„<E282AC>: #0033 *NOT USED* (#05 ¡ ©â)
x0033 ds #05
;€„<E282AC>: #0038 ®¡à ¡®â稪 ¯à¥à뢠­¨© im 0/1
x0038 ei
reti
;€„<E282AC>: #003B ¯¥ç âì áâப¨ (rst #20)
x003B ex (sp),hl
push af
x003D ld a,(hl)
rst #30
dw rom2_x2B0B ;¯¥ç âì ᨬ¢®«  á® á¡à®á®¬ 7£® ¡¨â  (rst #10)
db #02
and #80
inc hl
jr z,x003D
pop af
ex (sp),hl
ret
;€„<E282AC>: #004A *NOT USED* (#26 ¡ ©â)
x004A ds #26
;€„<E282AC>: #0070 ¯¥à¥¬¥­­ë¥ ROM-disk
x0070 db ROMdisk/#100 ;ᬥ饭¨¥ ­ ç «  ஬ ¤¨áª  (¢ ¡«®ª å ¯® 256 ¡ ©â)
db #40-ROMdisk/#100;ª®«¨ç¥á⢮ ᢮¡®¤­ëå ᥪâ®à®¢ ¢ áâà ­¨æ¥
db #00 ;ᬥ饭¨¥ ¤® ­ ç «  ª â «®£ 
;€„<E282AC>: #0073 § £à㧪  ¡«®ª  ¨§ ROM-Disk
INCLUDE "!RomDisk.asm"
;€„<E282AC>: #00AA *NOT USED* (55 ¡ ©â)
x00AA ds #55
;€„<E282AC>: #00FF  ¤à¥á ¯/¯ ®¡à ¡®âª¨ ¯à¥à뢠­¨© im 2
x00FF dw x0102
;€„<E282AC>: #0101 ­®¬¥à ⥪ã饣® rom
x0101 db #04
;€„<E282AC>: #0102 ¯à®æ¥¤ãà  ®¡à ¡®âª¨ ¯à¥à뢠­¨© im 2
x0102 ret
;€„<E282AC>: #0103 reset computer
x0103 ld de,#5BEE
ld hl,x0111
ld bc,#0011
ldir
jp #5BEE
x0111 ld bc,#1FFD
ld a,#02
out (c),a
ld hl,#010C ;¢ª«î稬 ¯«®áª®áâì 0
ld l,(hl)
xor a
out (c),a ;rom 0/1
jp x0000 ;reset
;€„<E282AC>: #0122 ª®¯¨à®¢ ­¨¥ ¯¥à¥¬¥­­ëå ¬®­¨â®à  ¨ ¯à®¢¥àª  ç⥭¨ï ¯®à⮢ #7FFD/#1FFD
x0122 ld hl,x0175 ;¡ §®¢ë¥ ¯¥à¥¬¥­­ë¥ ¬®­¨â®à 
ld de,xE033
ld bc,#0173
ldir
ld hl,xE9F5
ld (xE9F3),hl ; ¤à¥á ¡«®ª  ®¯¨á â¥«¥© ¤¨áª®¢®¤ 
ld hl,xE02C
ld (hl),#01 ;§­ ç¥­¨¥ interleaving
ld de,#7F1F
ld c,#FD
ld a,#0E
ld b,#FF
out (c),a ;ॣ¨áâà #E AY
nop
in a,(c) ;ç¨â ¥¬ §­ ç¥­¨¥ ¯®à⮢ #7FFD ¨ #1FFD
and #3F
cp #3F
ret z ;rom 1, ram #F, scr 5 (¯à®ç¨â ­® #FF ???)
cp #10
ret nz ;rom 0, ram 8, scr 7 (â®, çâ® ¢ª«î祭®)
ld b,d ;bc=#7FFD
ld a,#0F ;rom 0, ram 7/F, scr 5
out (c),a
ld b,e ;bc=#1FFD
ld a,#00
out (c),a ;rom 0, ram 7, scr 5
ld a,#0E
ld b,#FF
out (c),a ;ॣ¨áâà #E AY
nop
in a,(c) ;ç¨â ¥¬ §­ ç¥­¨¥ ¯®à⮢ #7FFD ¨ #1FFD
and #3F
cp #0F
ld b,e ;bc=#1FFD
ld a,#10
out (c),a ;rom 0, ram #F, scr 5
ld b,d ;bc=#7FFD
ld a,#00
out (c),a ;rom 0, ram 8, scr 7
ret nz ;
set 5,(iy+#19)
ret
;€„<E282AC>: #0175 ¯¥à¥¬¥­­ë¥ ¬®­¨â®à 
x0175: INCBIN "prof_roms/rom4_vars.bin"
;€„<E282AC>: #02E8 ¯à®¢¥àª  ®à¨£¨­ «ì­ë©/ᮢ¬¥áâ¨¬ë© ª®¬¯ìîâ¥à
;¢ëå: nz - ᮢ¬¥á⨬ë©
; z - ®à¨£¨­ «
x02E8 ld a,d
sub #FC
ret nz ;ᮢ¬¥á⨬ë©
ld a,e
sub #9D
ret z ;®à¨£¨­ «
ld a,e
sub #8B
ret ;nz - ᮢ¬¥á⨬ë©
;€„<E282AC>: #02F4 ãáâ ­®¢ª  ¯¥à¥¬¥­­ëå ¨§ NVRAM
x02F4 call x0445 ;ç⥭¨¥ #FD ¡ ©â NVRAM á  ¤à¥á  #0001 ¢ ¡ãä¥à xDB69
call x0312 ;ãáâ ­®¢ª  ¯¥à¥¬¥­­ëå ¯® ¤ ­­ë¬ ¢ NVRAM
ld hl,xDB69+#2E ;xDB97
ld (xDDA7),hl
ld hl,x04FF
jr x0315
;€„<E282AC>: #0305 ãáâ ­®¢ª  ¯¥à¥¬¥­­ëå ¨§ NVRAM/CMOS128
x0305 ld hl,xE02E
bit 5,(hl)
x030A jr nz,x02F4 ;NVRAM ­ ©¤¥­
bit 6,(hl)
ret z ;CMOS ®âáãâáâ¢ã¥â
call x0430 ;ç⥭¨¥ CMOS[#10..#3E] ¢ ¡ãä¥à xDB69 (¢ëå: b=#3F)
;€„<E282AC>: #0312 ãáâ ­®¢ª  ¯¥à¥¬¥­­ëå ¯® ¤ ­­ë¬ ¢ CMOS
;¢å: b - ­®¬¥à ï祩ª¨ CMOS
; 7,c=1
; 6,c=1 ¢ (hl) á«®¢®- ¤à¥á
; =0 ¢ (hl) ¡ ©â-ᬥ饭¨¥ ®â xE014
; 2,c=0
; 1,c=1 § ¯¨áì ­¥áª®«ìª¨å ¡¨â®¢ ¯¥à¥¬¥­­®© ¯® ¬ áª¥ ¢ (hl)
; 0,c=0 § ¯¨áì ¯¥à¥¬¥­­®© ¢ ï祩ªã CMOS, ¨ ¯¥à¥å®¤ ª á«¥¤ãî饩 ï祩ª¥
x0312 ld hl,x046E
;€„<E282AC>: #0315 ãáâ ­®¢ª  ¯¥à¥¬¥­­ëå ¯® ¤ ­­ë¬ ¢ CMOS
x0315 inc b ;b=#40
x0316 ld c,(hl)
inc hl
bit 7,c
jr z,x0347 ;ãáâ ­®¢ª  §­ ç¥­¨ï ¡¨â  ¯¥à¥¬¥­­®©
bit 2,c
jr nz,x0343 ;ãáâ ­®¢ª  ­®¬¥à  ï祩ª¨ CMOS
bit 1,c
jr nz,x0325 ;ãáâ ­®¢ª  §­ ç¥­¨ï ¡¨â®¢ ¯¥à¥¬¥­­®©
ret
;ãáâ ­®¢ª  §­ ç¥­¨ï ¡¨â  ¯¥à¥¬¥­­®©
x0325 call x0419 ;®¯à¥¤¥«¥­¨¥  ¤à¥á  ¯¥à¥¬¥­­®© (de -  ¤à¥á)
bit 0,c
jr z,x033D ;§ ¯¨áì ¯¥à¥¬¥­­®© ¢ ¯ ¬ïâì
ld c,(hl)
inc hl
ld a,(de)
cpl
or c
cpl ;á¡à®á ¡¨â®¢ ¢ ¯¥à¥¬¥­­®©
ld (de),a
call x0459 ;ç⥭¨¥ §­ ç¥­¨ï ¨§ ¡ãä¥à  CMOS ¯®  ¤à¥áã ¢ B
and c ;¢ë¤¥«¥­¨¥ ¡¨â®¢
ld c,a
ld a,(de)
or c
ld (de),a ;ãáâ ­®¢ª  ¯¥à¥¬¥­­®©
jr x0316
;§ ¯¨áì ¯¥à¥¬¥­­®© ¢ ï祩ªã CMOS
x033D call x0459 ;ç⥭¨¥ §­ ç¥­¨ï ¨§ ¡ãä¥à  CMOS ¯®  ¤à¥áã ¢ B
ld (de),a
jr x0315
;ãáâ ­®¢ª  ­®¬¥à  ï祩ª¨ CMOS
x0343 ld b,(hl)
inc hl
jr x0316
;ãáâ ­®¢ª  §­ ç¥­¨ï ¡¨â  ¯¥à¥¬¥­­®©
x0347 call x0419 ;®¯à¥¤¥«¥­¨¥  ¤à¥á  ¯¥à¥¬¥­­®© (de -  ¤à¥á)
push hl
ld a,c
and #07
call x0410 ;¯®«ã祭¨¥ ¬ áª¨ ¤«ï ¯¥à¥¬¥­­®© (l - ¬ áª )
call x0459 ;ç⥭¨¥ §­ ç¥­¨ï ¨§ ¡ãä¥à  CMOS ¯®  ¤à¥áã ¢ B
and l
push af
ld a,c
and %00111000
rrca
rrca
rrca
call x0410 ;¯®«ã祭¨¥ ¬ áª¨ ¤«ï ¯¥à¥¬¥­­®© (l - ¬ áª )
pop af
ld a,(de)
jr z,x0366 ;á¡à®á ¡¨â  ¢ ¯¥à¥¬¥­­®©
or l ;ãáâ ­®¢ª  ¡¨â  ¢ ¯¥à¥¬¥­­®©
jr x0368
x0366 or l
xor l
x0368 ld (de),a ;§ ¯¨áì ¯¥à¥¬¥­­®©
pop hl
jr x0316
;€„<E282AC>: #036C § ¯¨áì ¯¥à¥¬¥­­ëå ¢ CMOS ¨ ¢ NVRAM
x036C bit 6,(iy+#1A)
call nz,x0398 ;§ ¯¨áì ¯¥à¥¬¥­­ëå ¢ CMOS
bit 5,(iy+#1A)
ret z
;€„<E282AC>: #0378 § ¯¨áì ¯¥à¥¬¥­­ëå ¢ NVRAM
x0378 call x0445 ;ç⥭¨¥ #FD ¡ ©â NVRAM á  ¤à¥á  #0001 ¢ ¡ãä¥à xDB69
call x03B0 ;ãáâ ­®¢ª  ¯¥à¥¬¥­­ëå ¢ ¡ãä¥à¥ ¤«ï § ¯¨á¨ ¢ NVRAM
ld hl,xDB69+#2E
ld (xDDA7),hl
ld hl,x04FF
call x03B3 ;ãáâ ­®¢ª  ¯¥à¥¬¥­­ëå ¢ ¡ãä¥à¥ ¤«ï § ¯¨á¨ ¢ NVRAM
ld hl,xDB69
ld de,#00FD
ld bc,#0001
rst #30
dw rom7_x0DD0 ;§ ¯¨áì ¤ ­­ëå ¢ NVRAM
db #07
ret
;€„<E282AC>: #0398 § ¯¨áì ¯¥à¥¬¥­­ëå ¢ CMOS
x0398 call x0430 ;ç⥭¨¥ CMOS[#10..#3E] ¢ ¡ãä¥à xDB69 (¢ëå: b=#3F)
call x03B0 ;ãáâ ­®¢ª  ¯¥à¥¬¥­­ëå ¢ ¡ãä¥à¥ ¤«ï § ¯¨á¨ ¢ CMOS
ld hl,xDB69 ;§ ¯¨áì ¡ãä¥à  ¢ CMOS
ld b,#10
x03A3 ld a,(hl)
inc hl
rst #30
dw rom7_x2023 ;§ ¯¨áì ¤ ­­ëå ¢ ï祩ªã CMOS. ¨ § ¯¨áì ª®­â஫쭮© áã¬¬ë ¢ ï祩ªã #3F
db #07
inc b
ld a,b
cp #3F
jr nz,x03A3
ret
;ãáâ ­®¢ª  ¯¥à¥¬¥­­ëå ¢ ¡ãä¥à¥ ¤«ï § ¯¨á¨ ¢ CMOS
x03B0 ld hl,x046E
x03B3 inc b
x03B4 ld c,(hl)
inc hl
bit 7,c
jr z,x03E7 ;ãáâ ­®¢ª  §­ ç¥­¨ï ¡¨â  ï祩ª¨ CMOS
bit 2,c
jr nz,x03E3 ;ãáâ ­®¢ª  ­®¬¥à  ï祩ª¨ CMOS
bit 1,c
jr nz,x03C3 ;ãáâ ­®¢ª  §­ ç¥­¨ï ¡¨â  ï祩ª¨ CMOS ¢ ¡ãä¥à¥
ret
;ãáâ ­®¢ª  §­ ç¥­¨ï ¡¨â  ï祩ª¨ CMOS ¢ ¡ãä¥à¥
;¢å: b - ­®¬¥à ï祩ª¨ CMOS
; 7,c=1
; 6,c=1 ¢ (hl) á«®¢®- ¤à¥á
; =0 ¢ (hl) ¡ ©â-ᬥ饭¨¥ ®â xE014
; 2,c=0
; 1,c=1 § ¯¨áì ­¥áª®«ìª¨å ¡¨â®¢ ¯¥à¥¬¥­­®© ¯® ¬ áª¥ ¢ (hl)
; 0,c=0 § ¯¨áì ¯¥à¥¬¥­­®© ¢ ï祩ªã CMOS, ¨ ¯¥à¥å®¤ ª á«¥¤ãî饩 ï祩ª¥
x03C3 call x0419 ;®¯à¥¤¥«¥­¨¥  ¤à¥á  ¯¥à¥¬¥­­®© (de -  ¤à¥á)
bit 0,c
jr z,x03DD ;§ ¯¨áì ¯¥à¥¬¥­­®© ¢ ï祩ªã CMOS
ld c,(hl)
inc hl
push hl
call x0459 ;ç⥭¨¥ §­ ç¥­¨ï ¨§ ¡ãä¥à  CMOS ¯®  ¤à¥áã ¢ B
cpl
or c
cpl ;á¡à®á ¡¨â®¢ ï祩ª¨
ld l,a
ld a,(de)
and c ;¢ë¤¥«¥­¨¥ ¡¨â®¢ ¯¥à¥¬¥­­®©
or l
pop hl
call x0456 ;§ ¯¨áì §­ ç¥­¨ï ¢ ¡ãä¥à CMOS ¯®  ¤à¥áã ¢ B
jr x03B4
x03DD ld a,(de)
call x0456 ;§ ¯¨áì §­ ç¥­¨ï ¢ ¡ãä¥à CMOS ¯®  ¤à¥áã ¢ B
jr x03B3
;ãáâ ­®¢ª  ­®¬¥à  ï祩ª¨ CMOS
;¢å: 7,c=1
; 2,c=1
; b - ­®¬¥à ï祩ª¨ CMOS
x03E3 ld b,(hl)
inc hl
jr x03B4
;ãáâ ­®¢ª  §­ ç¥­¨ï ¡¨â  ï祩ª¨ CMOS
;¢å: b - ­®¬¥à ï祩ª¨ CMOS
; 7,c=0
; 6,c=1 ¢ (hl) á«®¢®- ¤à¥á
; =0 ¢ (hl) ¡ ©â-ᬥ饭¨¥ ®â xE014
; 5-3, ­®¬¥à ¡¨â  ¢ ¯¥à¥¬¥­­®©
; 2-1, ­®¬¥à ¡¨â  ¢ ï祩ª¥ CMOS
;
x03E7 call x0419 ;®¯à¥¤¥«¥­¨¥  ¤à¥á  ¯¥à¥¬¥­­®© (de -  ¤à¥á)
push hl
ld a,c
and %00111000
rrca
rrca
rrca
call x0410 ;¯®«ã祭¨¥ ¬ áª¨ ¤«ï ¯¥à¥¬¥­­®© (l - ¬ áª )
ld a,(de)
and l ;¢ë¤¥«¥­¨¥ ¡¨â  ¢ ¯¥à¥¬¥­­®©
push af
ld a,c
and #07
call x0410 ;¯®«ã祭¨¥ ¬ áª¨ ¤«ï ¯¥à¥¬¥­­®© (l - ¬ áª )
call x0459 ;ç⥭¨¥ §­ ç¥­¨ï ¨§ ¡ãä¥à  CMOS ¯®  ¤à¥áã ¢ B
ld h,a ;§­ ç¥­¨¥ ï祩ª¨ CMOS
pop af
ld a,h
jr z,x0408 ;á¡à®á ¡¨â  ¢ CMOS
or l ;ãáâ ­®¢ª  ¡¨â  ¢ CMOS
jr x040A
x0408 or l
xor l
x040A call x0456 ;§ ¯¨áì §­ ç¥­¨ï ¢ ¡ãä¥à CMOS ¯®  ¤à¥áã ¢ B
pop hl
jr x03B4
;¯®«ã祭¨¥ ¬ áª¨ ¤«ï ¯¥à¥¬¥­­®© (l - ¬ áª )
;¢å: a - ­®¬¥à ¡¨â 
x0410 ld l,#01
ret z
x0413 sla l
dec a
jr nz,x0413
ret
;®¯à¥¤¥«¥­¨¥  ¤à¥á  ¯¥à¥¬¥­­®©
;¢ëå: de -  ¤à¥á
x0419 bit 6,c
ld e,(hl)
inc hl
jr z,x0422
ld d,(hl)
inc hl
ret
; íâ® ¡ ©â-ᬥ饭¨¥ ®â xE014
x0422 bit 7,e
ld d,#00
jr z,x0429
dec d
x0429 push iy
ex (sp),hl
add hl,de
ex de,hl
pop hl
ret
;ç⥭¨¥ CMOS[#10..#3E] ¢ ¡ãä¥à xDB69
;¢ëå: b=#3F
x0430 ld hl,xDB69
ld (xDDA7),hl
ld b,#10
x0438 rst #30
dw rom7_x1F59 ;ç⥭¨¥ ï祩ª¨ CMOS
db #07
ld (hl),a
inc hl
inc b
ld a,b
cp #3F
jr nz,x0438
ret
;ç⥭¨¥ #FD ¡ ©â NVRAM á  ¤à¥á  #0001 ¢ ¡ãä¥à xDB69
x0445 ld hl,xDB69
ld (xDDA7),hl
ld de,#00FD
ld bc,#0001
rst #30
dw rom7_x0DB6 ;ç⥭¨¥ ¤ ­­ëå ¨§ NVRAM
db #07
ret
;§ ¯¨áì §­ ç¥­¨ï ¢ ¡ãä¥à CMOS ¯®  ¤à¥áã ¢ B
x0456 scf
jr x045A
;ç⥭¨¥ §­ ç¥­¨ï ¨§ ¡ãä¥à  CMOS ¯®  ¤à¥áã ¢ B
x0459 or a
x045A push hl ;cy=1/0 - § ¯¨áì/ç⥭¨¥
ld hl,(xDDA7) ; ¤à¥á ¡ãä¥à  CMOS
push bc
ld c,b
ld b,#00
push af
add hl,bc
pop af
jr nc,x046A
ld (hl),a
jr x046B
x046A ld a,(hl)
x046B pop bc
pop hl
ret
;€„<E282AC>: #046E â ¡«¨æ  ¤«ï § ¯¨á¨ ¯¥à¥¬¥­­ëå ¢ CMOS ¨ NVRAM
x046E db %10000100
db #00 ;ï祩ª : +#00
db %11000010
dw xFFCC ;¯¥à¥¬¥­­ ï: xFFCC, ï祩ª : +#01
db %11000010
dw xFFCD ;¯¥à¥¬¥­­ ï: xFFCD, ï祩ª : +#02
db %11000010
dw xFFCE ;¯¥à¥¬¥­­ ï: xFFCE, ï祩ª : +#03
db %11000010
dw xFFCF ;¯¥à¥¬¥­­ ï: xFFCF, ï祩ª : +#04
db %11000010
dw xFFD0 ;¯¥à¥¬¥­­ ï: xFFD0, ï祩ª : +#05
db %11000010
dw xFFD1 ;¯¥à¥¬¥­­ ï: xFFD1, ï祩ª : +#06
db %11000011
dw xFFCB ;¯¥à¥¬¥­­ ï: xFFCB
db %00000111 ;¬ áª  ¯¥à¥¬¥­­®©
db %00000011
db #39 ;¯¥à¥¬¥­­ ï: xE014+#39
db %00001100
db #39 ;¯¥à¥¬¥­­ ï: xE014+#39
db %00010101
db #39 ;¯¥à¥¬¥­­ ï: xE014+#39
db %00000110
db #1C ;¯¥à¥¬¥­­ ï: xE014+#1C
db %00001111
db #1C ;¯¥à¥¬¥­­ ï: xE014+#1C
db %10000100
db #07 ;ï祩ª : +#07
db %10000011
db #18 ;¯¥à¥¬¥­­ ï: xE014+#18
db %00011111
db %00010101
db #1C ;¯¥à¥¬¥­­ ï: xE014+#1C
db %00100110
db #1C ;¯¥à¥¬¥­­ ï: xE014+#1C
db %10000100
db #08 ;ï祩ª : +#08
db %10000010
db #DE ;¯¥à¥¬¥­­ ï: xE014-#22, ï祩ª : +#09
db %10000010
db #DF ;¯¥à¥¬¥­­ ï: xE014-#21, ï祩ª : +#0A
db %10000100
db #0A ;ï祩ª : +#0A
db %10000011
db #E0 ;¯¥à¥¬¥­­ ï: xE014-#20
db %00111111
db %10000100
db #0B ;ï祩ª : +#0B
db %10000011
db #E1 ;¯¥à¥¬¥­­ ï: xE014-#1F
db %00111111
db %10000100
db #0C ;ï祩ª : +#0C
db %10000010
db #05 ;¯¥à¥¬¥­­ ï: xE014-#05, ï祩ª : +#0D
db %10000100
db #0D ;ï祩ª : +#0D
db %10000010
db #0A ;¯¥à¥¬¥­­ ï: xE014-#0A, ï祩ª : +#0E
db %10000010
db #0C ;¯¥à¥¬¥­­ ï: xE014-#0C, ï祩ª : +#0F
db %10000011
db #14 ;¯¥à¥¬¥­­ ï: xE014+#14
db %10011111
db %00100101
db #00 ;¯¥à¥¬¥­­ ï: xE014+#00
db %00110110
db #19 ;¯¥à¥¬¥­­ ï: xE014+#19
db %10000100
db #10 ;ï祩ª : +#10
db %10000011
db #12 ;¯¥à¥¬¥­­ ï: xE014+#12
db %00000111
db %00101011
db #13 ;¯¥à¥¬¥­­ ï: xE014+#13
db %10000100
db #11 ;ï祩ª : +#11
db %10000011
db #15 ;¯¥à¥¬¥­­ ï: xE014+#15
db %10101111
db %10000100
db #12 ;ï祩ª : +#12
db %10000011
db #40 ;¯¥à¥¬¥­­ ï: xE014+#40
db %00011111
db %10000100
db #13 ;ï祩ª : +#13
db %10000011
db #41 ;¯¥à¥¬¥­­ ï: xE014+#41
db %00011111
db %10000100
db #14 ;ï祩ª : +#14
db %10000011
db #42 ;¯¥à¥¬¥­­ ï: xE014+#42
db %00011111
db %10000100
db #15 ;ï祩ª : +#15
db %10000011
db #25 ;¯¥à¥¬¥­­ ï: xE014+#25
db %01111111
db %10000100
db #16 ;ï祩ª : +#16
db %10000011
db #27 ;¯¥à¥¬¥­­ ï: xE014+#27
db %11101000
db %10000100
db #17 ;ï祩ª : +#17
db %10000011
db #2E ;¯¥à¥¬¥­­ ï: xE014+#2E
db %00000111
db %00000011
db #2F ;¯¥à¥¬¥­­ ï: xE014+#2F
db %00001100
db #2F ;¯¥à¥¬¥­­ ï: xE014+#2F
db %00010101
db #2F ;¯¥à¥¬¥­­ ï: xE014+#2F
db %10000100
db #18 ;ï祩ª : +#18
db %11000010
dw xE11A ;¯¥à¥¬¥­­ ï: xE11A, ï祩ª : +#19
db %11000010
dw xE11A+#01 ;¯¥à¥¬¥­­ ï: xE11B, ï祩ª : +#1A
db %10000010
db #58 ;¯¥à¥¬¥­­ ï: xE014-#58, ï祩ª : +#1B
db %10000011
db #57 ;¯¥à¥¬¥­­ ï: xE014+#57
db %01111111
db %10000100
db #1C ;ï祩ª : +#1C
db %10000011
db #DD ;¯¥à¥¬¥­­ ï: xE014-#23
db %00000011
db %10000100
db #1D ;ï祩ª : +#1D
db #80 ;ª®­¥æ
;€„<E282AC>: #04FF â ¡«¨æ  ¤«ï § ¯¨á¨ ¯¥à¥¬¥­­ëå ¢ NVRAM
x04FF db %10000100
db #00 ;ï祩ª : +#00
db %10000010
db #2A ;¯¥à¥¬¥­­ ï: xE014+#2A, ï祩ª : +#01
db %10000010
db #2B ;¯¥à¥¬¥­­ ï: xE014+#2B, ï祩ª : +#02
db %10000010
db #2C ;¯¥à¥¬¥­­ ï: xE014+#2C, ï祩ª : +#03
db %10000010
db #2D ;¯¥à¥¬¥­­ ï: xE014+#2D, ï祩ª : +#04
db %10000010
db #3A ;¯¥à¥¬¥­­ ï: xE014+#3A, ï祩ª : +#05
db %10000010
db #3B ;¯¥à¥¬¥­­ ï: xE014+#3B, ï祩ª : +#06
db %10000010
db #3D ;¯¥à¥¬¥­­ ï: xE014+#3D, ï祩ª : +#07
db %10000010
db #26 ;¯¥à¥¬¥­­ ï: xE014+#26, ï祩ª : +#08
db #80 ;ª®­¥æ
;€„<E282AC>: #0512 § ¯¨áì ­  ¤¨áª ᥪâ®à  á ª®­ä¨£ãà æ¨¥© (C. save Set Up to disk)
x0512 ld de,xDB69
push de
;ª®¯¨à㥬 ¯®¤¯à®£à ¬¬ã ¢ ¡ãä¥à
ld hl,x0549
ld bc,#0100
ldir
;ãáâ ­®¢ª  ¯¥à¥¬¥­­ëå ¢ ¡ãä¥à¥ ¤«ï § ¯¨á¨ ­  ¤¨áª
ld hl,xDB69+#36 ;xDB9F
ld (xDDA7),hl
call x03B0 ;ãáâ ­®¢ª  ¯¥à¥¬¥­­ëå ¢ ¡ãä¥à¥ ¤«ï § ¯¨á¨ ­  ¤¨áª
ld hl,xDB69+#64 ;xDBCD
ld (xDDA7),hl
ld hl,x04FF
call x03B3 ;ãáâ ­®¢ª  ¯¥à¥¬¥­­ëå ¢ ¡ãä¥à¥ ¤«ï § ¯¨á¨ ­  ¤¨áª
;§ ¯¨áì ᥪâ®à  á ­ áâனª ¬¨ ­  ¤¨áª¥âã
rst #30
dw rom7_x107B ;¨­¨æ¨ «¨§ æ¨ï ¤¨áª®¢®¤  ¨ ­ áâனª  ­  ¤¨áª¥âã
db #07
pop hl
jr c,x0545 ;®è¨¡ª  ¨­¨æ¨ «¨§ æ¨¨ ¤¨áª 
ld bc,#0106
ld de,#000F ;trk 0, sec #0F
rst #30
dw rom7_x0229 ;R8DOS #06(6) § ¯¨áì £à㯯ë ᥪâ®à®¢
db #07
ret nc ;®è¨¡®ª ­¥ ¡ë«®
x0545 rst #30 ;¯¥ç âì á®®¡é¥­¨ï ®¡ ®è¨¡ª¥
dw rom6_x06A6 ;¯¥ç âì á®®¡é¥­¨ï ®¡ ®è¨¡ª¥ ¨ ¯à®¤®«¦¥­¨¥ à ¡®âë ¬®­¨â®à 
db #06 ;(¡¥§ ¢®§¢à â )
;¯à®æ¥¤ãà  ãáâ ­®¢ª¨ ­ áâ஥ª ¨§ ᥪâ®à  ¤¨áª  (á®åà ­ï¥âáï ­  ¤¨áª ¢¬¥á⥠¯¥à¥¬¥­­ë¬¨)
x0549 db "AM" ;ᨣ­ âãà  ­ ç «  ¤ ­­ëå
ld a,(#00F1) ;rom 2
cp #61
jr z,x0557 ;¯à®¢¥àª  ⥪ã饩 áâà ­¨æë <20>‡“
ld a,#03
out (#FE),a
ret
x0557 ld hl,xDB69+#36 ;xDB9F
ld (xDDA7),hl
rst #30
dw rom4_x0312 ;ãáâ ­®¢ª  ¯¥à¥¬¥­­ëå ¯® ¤ ­­ë¬ ¢ CMOS
db #04
ld hl,xDB69+#64 ;xDBCD
ld (xDDA7),hl
ld hl,x04FF
rst #30
dw rom4_x0315 ;ãáâ ­®¢ª  ¯¥à¥¬¥­­ëå ¯® ¤ ­­ë¬ ¢ CMOS
db #04
rst #20
db #0D
db "AutoConfig Ok"
db #8D
ret
;€„<E282AC>: #057F à á¯ ª®¢ª  èà¨äâ  ¢ rom 8
x057F ld hl,xE483 ; ¤à¥á ret
rst #30
dw rom6_x0D60 ;ãáâ ­®¢ª  ¯/¯ jp xE483 ¯®  ¤à¥áã xE338
db #06
ld hl,x059F ; ¤à¥á ᦠ⮣® èà¨äâ 
ld de,xEBF5 ;¡ãä¥à
push de
ld bc,#04BB ;à §¬¥à
ldir ;ª¨¯¨à㥬 ¢ ¡ãä¥à
pop hl
ld de,xEBF5+#04BB ;xF0B0
exx
ld hl,xF7C0
rst #30
dw rom6_x1108 ;à á¯ ª®¢ª  ¡«®ª 
db #06
ret
;€„<E282AC>: #059F § ¯ ª®¢ ­­ë© èà¨äâ
x059F INCBIN "prof_roms/rom4_fnt.bin"
;€„<E282AC>: #0A5A ¨­¨æ¨ «¨§ æ¨ï á¨áâ¥¬ë ¨ ¯¥ç âì á®®¢¥âáâ¢ãîé¨å á®®¡é¥­¨©
x0A5A bit 6,(iy+#14)
jr nz,x0A67 ;"⥯«ë©" á¡à®á
rst #30
dw rom2_x3005 ;ãáâ ­®¢ª  ⥪ã騬 ®ª­ : main menu
db #02
ld a,#0C
rst #10 ;®ç¨á⪠ ®ª­ 
x0A67 ld hl,x0D24
call x0CDF ;ª®¯¨à®¢ ­¨¥ ¤¥áªà¨¯â®à  ®ª­  ¢ à ¡®çãîî ®¡« áâì ¨ à¨á®¢ ­¨¥ à ¬ª¨ ¢®ªà㣠­¥£®
rst #20
db " ",#7F," " ;§­ ª ª®¯¨à ©â 
dc "1993-1997 MOA Shadow Service Monitor"
bit 6,(iy+#14)
jr nz,x0B07 ;⥯«ë© á¡à®á
ld hl,x0D08
call x0CDF ;ª®¯¨à®¢ ­¨¥ ¤¥áªà¨¯â®à  ®ª­  ¢ à ¡®çãîî ®¡« áâì ¨ à¨á®¢ ­¨¥ à ¬ª¨ ¢®ªà㣠­¥£®
rst #20
db #1B,#00,#07 ;ª®®à¤¨­ âë ¯¥ç â¨
dc "* fast test of computer *"
ld hl,x0CFA
call x0CDF ;ª®¯¨à®¢ ­¨¥ ¤¥áªà¨¯â®à  ®ª­  ¢ à ¡®çãîî ®¡« áâì ¨ à¨á®¢ ­¨¥ à ¬ª¨ ¢®ªà㣠­¥£®
rst #20
db " Computer :",#0D
db " RAM :",#0D
db " ROM :"
db #1B,#00,#8C ;ª®®à¤¨­ âë
call x0C8A ;¢ë¢®¤ á®®¡é¥­¨ï á ­ §¢ ­¨¥¬ ª®¬¯ìîâ¥à 
ld (ix+0),#01 ;crdY=1
ld (ix+1),#0C ;crdX=12
call x0C74 ;á®®¡é¥­¨¥: 256 K
ld (ix+0),#02 ;crdY=2
ld (ix+1),#0C ;crdX=12
call x0C7B ;¢ë¢®¤ á®®¡é¥­¨ï á à §¬¥à®¬ <20>‡“
call x0B3B ;¨­¨æ¨ «¨§ æ¨ï SMUC
;®¡­ã«¥­¨¥ bit4 ᯥæ¨ä¨ª æ¨¨ ¤¨áª®¢®¤®¢
x0B07 ld a,(xFFCA)
push af
xor a
x0B0C ld (xFFCA),a
ld c,#11 ;R8DOS #11(17) ç⥭¨¥ ª®¤  ᯥæ¨ä¨ª æ¨¨ ¤¨áª®¢®¤ 
push af
rst #30
dw rom7_x0229 ;¢ë§®¢ ä㭪樨 R8DOS
db #07
res 4,(hl)
pop af
inc a
cp #04
jr c,x0B0C
pop af
ld (xFFCA),a
;ãáâ ­®¢ª  ª®®à¤¨­ âë Y ªãàá®à  ¢ ®ª­¥, ¯à¨ ­¥®¡å®¤¨¬®áâ¨
ld de,xE0C9
or a
push ix
pop hl
sbc hl,de
ret z
ld a,(ix+2)
add a,(ix+4)
inc a ;ª®®à¤¨­ â  Y ­¨¦­¥© áâப¨ ®ª­ 
rst #30
dw rom2_x3005 ;ãáâ ­®¢ª  ⥪ã騬 ®ª­ : main menu
db #02
ld (ix+0),a ;ª®®à¤¨­ â  Y ªãàá®à  ¢ ®ª­¥
ret
;¨­¨æ¨ «¨§ æ¨ï SMUC
x0B3B ld bc,#FEFE
in a,(c)
rrca
jr c,x0B58 ;cs ­¥ ­ ¦ â 
ld b,#EF
in a,(c)
bit 2,a
jr nz,x0B58 ;8 ­¥ ­ ¦ â 
; SMUC ­¥ ¯à®¢¥à塞
ld hl,xE02E ;cs+8 ­ ¦ â 
ld a,(hl)
and #07
ld (hl),a
inc hl
ld a,(hl)
and #37
ld (hl),a
ret
x0B58 bit 6,(iy+#14)
ret nz ;"⥯«ë©" á¡à®á
;®¯à¥¤¥«¥­¨¥ ­ «¨ç¨ï SMUC, ¨ ¢ë¢®¤ á®®¡é¥­¨ï á ¢¥àᨥ©
rst #30
dw rom7_x2422 ;®¯à¥¤¥«¥­¨¥ ­ «¨ç¨ï SMUC
db #07
ret c ;SMUC ­¥ ­ ©¤¥­
push de
ld hl,x0D16
call x0CDF
rst #20
dc " SMUC : "
pop de
call x0CC2 ;¯¥ç âì ¢¥àᨨ ¨ ॢ¨§¨¨ SMUC
;®¯à¥¤¥«¥­¨¥ ­ «¨ç¨ï CMOS, ¨ ¢ë¢®¤ á®®¡é¥­¨ï
ld a,(ix+2)
add a,(ix+4)
inc a
rst #30
dw rom2_x3005 ;ãáâ ­®¢ª  ⥪ã騬 ®ª­ : main menu
db #02
ld (ix+0),a
rst #30 ;®¯à¥¤¥«¥­¨¥ ­ «¨ç¨ï CMOS
dw rom7_x2047 ;a=#5A CMOS checksum error
db #07 ;a=#5B CMOS not found
;a=#5C _ç¨á«®_ bytes CMOS found
call x0C5C ;¯¥ç âì á®®¡é¥­¨ï
db #00
;®¯à¥¤¥«¥­¨¥ ­ «¨ç¨ï NVRAM, ¨ ¢ë¢®¤ á®®¡é¥­¨ï
rst #30 ;®¯à¥¤¥«¥­¨¥ ­ «¨ç¨ï NVRAM
dw rom7_x0D62 ;a=#26 NVRAM not found
db #07 ;a=#27 NVRAM found
;a=#33 NVRAM checksum error
call x0C5C ;¯¥ç âì á®®¡é¥­¨ï
db #02
;®¯à¥¤¥«¥­¨¥ ­ «¨ç¨ï interrupt controller, ¨ ¢ë¢®¤ á®®¡é¥­¨ï
call x0305 ;ãáâ ­®¢ª  ¯¥à¥¬¥­­ëå ¨§ NVRAM/CMOS128
rst #30 ;®¯à¥¤¥«¥­¨¥ ­ «¨ç¨ï interrupt controller
dw rom7_x1572 ;a=#24 interrupt controller not found
db #07 ;a=#25 interrupt controller found
call x0C5C ;¯¥ç âì á®®¡é¥­¨ï
db #02
;®¯à¥¤¥«¥­¨¥ ­ «¨ç¨ï ¯®á«¥¤®¢ â¥«ì­®£® ¯®àâ /¬®¤¥¬ , ¨ ¢ë¢®¤ á®®¡é¥­¨ï
rst #30
dw rom7_x15C7 ;®¯à¥¤¥«¥­¨¥ ­ «¨ç¨ï ¯®á«¥¤®¢ â¥«ì­®£® ¯®àâ /¬®¤¥¬ 
db #07 ;a=#28 modem not found
call x0C5C ;a=#29 modem found
db #02 ;a=#2A serial port not found
;¨­¤¥­â¨ä¨ª æ¨ï HDD ¨ ¯¥ç âì ¨­ä®à¬¨æ¨¨ ® ¢¨­ç¥áâ¥à¥
ld e,#00
rst #30
dw rom5_x30B9 ;¨¤¥­â¨ä¨ª æ¨ï ¦¥á⪮£® ¤¨áª 
db #05
jr nc,x0BB9 ;­¥â ®è¨¡®ª
call x0C5C ;¯¥ç âì á®®¡é¥­¨ï á ®è¨¡ª®©
db #00
jr x0C27
x0BB9 ld a,%00101011 ;paper 5, ink 3
ld (ix+6),a
rst #20
dc " IDE/AT "
; ¯¥ç âì à §¬¥à  ¢¨­ç¥áâ¥à 
ld hl,(xE5A5)
ld de,#0000
exx
ld bc,(xDFF2)
rst #30
dw rom7_x0FB7 ;㬭®¦¥­¨¥ dehl=de'hl' * bc
db #07
rst #30
dw rom5_x2AA4 ;¯à¥®¡à §®¢ ­¨¥ ª®«¨ç¥á⢠ ᥪâ®à®¢ ¢ ¬¥£ ¡ ©âë
db #05
ld a,#59
or a
call x0C5C ;¯¥ç âì à §¬¥à  ¢¨­ç¥áâ¥à 
db #00
; ¯¥ç âì ­ §¢ ­¨ï(¬®¤¥«¨) ¢¨­ç¥áâ¥à 
ld a,%00101000 ;paper 5, ink 0
ld (ix+6),a
ld hl,xE5A9+#036 ;xE5DF
ld b,#14
call x0C4D
; ¯¥ç âì á¥à¨©­®£® ­®¬¥à  ¢¨­ç¥áâ¥à 
rst #20
db #0D
dc "Serial Number: "
ld hl,xE5A9+#014 ;xE5BD
ld b,#0A
call x0C4D
; ¯¥ç âì ¢¥àᨨ ¯à®è¨¢ª¨ ¢¨­ç¥áâ¥à 
rst #20
db #0D
dc "Firmware rev.: "
ld hl,xE5A9+#02E ;xE5D7
ld b,#04
call x0C4D
ld a,%00101001 ;paper 5, ink 1
ld (ix+6),a
rst #20
db #8D
;¬®­â¨à®¢ ­¨¥ ¯®¤ª«î祭­ëå ®¡à §®¢
x0C27 bit 7,(iy+#1B)
jr z,x0C39 ;HDD ­¥ ­ ©¤¥­
set 5,(iy+#0B)
rst #30
dw rom5_x2503 ;¬®­â¨à®¢ ­¨¥ ¢á¥å ®¡à §®¢ á ¢¨­ç¥áâ¥à 
db #05
res 5,(iy+#0B)
;¯à®¢¥àª  ­ ¦ â¨ï ª« ¢¨è¨
x0C39 ld hl,xE028
bit 6,(hl)
ret nz ;"⥯«ë©" á¡à®á
x0C3F xor a
in a,(#FE)
and #1F
xor #1F
ret nz
dec hl
ld a,l
or h
ret z
jr x0C3F
;¯¥ç âì á®®¡é¥­¨ï ¨§ (hl), ¤«¨­®© ­¥ ¡®«¥¥ b*2
x0C4D ld e,(hl)
inc hl
ld d,(hl)
inc hl
ld a,d
or a
ret z
rst #10
ld a,e
or a
ret z
rst #10
djnz x0C4D
ret
;¯¥ç âì á®®¡é¥­¨ï
;¢å: a - ­®¬¥à á®®¡é¥­¨ï
; db ? ­®¬¥à ¡«®ª  á®®¡é¥­¨©
x0C5C ld b,a
ex (sp),hl
ld c,(hl)
inc hl
ex (sp),hl
set 0,(iy+#05) ;¤¥áïâ¨ç­ ï á¨á⥬ 
ld a,%00101001 ;paper 5, ink 1
jr c,x0C6B
ld a,%00101011 ;paper 5, ink 3
x0C6B ld (ix+6),a ; âਡãâë ¯¥ç â¨
rst #20
dc " "
rst #08
rst #20
db #8D
ret
;á®®¡é¥­¨¥: 256 K
x0C74 rst #20
dc "256 K"
ret
;¢ë¢®¤ á®®¡é¥­¨ï á à §¬¥à®¬ <20>‡“
x0C7B rst #30 ;¤«ï ¯à®¢à¥ª¨ à §¬¥à  <20>‡“: ¯à¨ 128k ¢ª«îç¨âáï rom 2 ¨ a=#00
dw romA_x001B ;¯à¨ 256k ¢ª«îç¨âáï rom #A ¨ a=#02
db #0A
cp #02
jr z,x0C74 ;256k <20>‡“
rst #20
dc "128 K"
ret
;¢ë¢®¤ á®®¡é¥­¨ï á ­ §¢ ­¨¥¬ ª®¬¯ìîâ¥à 
x0C8A ld de,(xDFFC)
rst #30 ;‡€—…Œ!!! ¬®¦­® ­ ¯àï¬ãî
dw rom4_x02E8 ;¯à®¢¥àª  ®à¨£¨­ «ì­ë©/ᮢ¬¥áâ¨¬ë© ª®¬¯ìîâ¥à
db #04
jr nz,x0CA9
rst #20
dc "Scorpion ZS 256 (R)"
ret
x0CA9 rst #20
dc "Scorpion (R) compatible"
ret
;¯¥ç âì ¢¥àᨨ ¨ ॢ¨§¨¨ SMUC
;¢å: d - ­®¬¥à ¢¥àᨨ
; e - ­®¬¥à ॢ¨§¨¨
x0CC2 push de
rst #20
dc "Ver. "
pop de
ld a,d
push de
rst #30
dw rom2_x16EC ;¯¥ç âì ç¨á«  a=[#0..#F]
db #02
rst #20
dc ", rev. "
pop de
ld a,e
rst #30
dw rom2_x16EC ;¯¥ç âì ç¨á«  a=[#0..#F]
db #02
ret
;€„<E282AC>: #0CDF ª®¯¨à®¢ ­¨¥ ¤¥áªà¨¯â®à  ®ª­  ¢ à ¡®çãîî ®¡« áâì ¨ à¨á®¢ ­¨¥ à ¬ª¨ ¢®ªà㣠­¥£®
;¢å: hl - ¤¥áªà¨¯â®à ®ª­ 
x0CDF call x0CEA
ld hl,#0000
rst #30
dw rom5_x2054 ;¯¥ç âì à ¬ª¨ ¢®ªà㣠®ª­ 
db #05
ret
;ª®¯¨à®¢ ­¨¥ ¤¥áªà¨¯â®à  ®ª­  ¢ à ¡®çãîî ®¡« áâì
x0CEA ld de,xE102
push de
ld bc,#000D
ldir
pop ix
ld (xE3B7),ix
ret
;€„<E282AC> #0CFA ¤¥áªà¨¯â®àë ®ª®­:
;®ª­® ¢ëá®â®© 3 §­ ª®¬¥áâ  ­  ¢áî è¨à¨­ã íªà ­ 
x0CFA db #00,#00
db #05,#01
db #03,#1E
db %00101001
db #07,#90,%00101000
db #06,#28,#20,#00
;®ª­® ¢ëá®â®© 1 §­ ª®¬¥áâ® ­  ¢áî è¨à¨­ã íªà ­ 
x0D08 db #00,#00
db #03,#01
db #01,#1E
db %00101001
db #03,#88,%00101000
db #06,#28,#20,#00
;®ª­® ¢ëá®â®© 9 §­ ª®¬¥áâ ­  ¢áî è¨à¨­ã íªà ­ 
x0D16 db #00,#00
db #09,#01
db #01,#1E
db %00101001
db #03,#88,%00101000
db #06,#28,#20,#00
;®ª­® ¢ëá®â®© 1 §­ ª®¬¥áâ® ­  ¢áî è¨à¨­ã íªà ­ 
x0D24 db #00,#00
db #01,#01
db #01,#1E
db %00101001
db #03,#80,%00101000
db #06,#28,#20,#00
;€„<E282AC> #0D32 ª®¯¨à ©âë
x0D32 db "Copyright(c) 1993, 1997 by Andrew MOA",#00
db "FidoNet 2:5030/25.1",#00
db "E-mail: moa@deeds.spb.ru",#00
db "Compiled: Jul 13 1997 14:24:13 (IBM PC, MA80 crossassembler)",#00
x0DC2 ds ROMdisk-$,#00
;€„<E282AC>: #0E00 ROM-disk
x0E00 INCBIN "prof_roms/rom4_ROMdisk.bin"
SAVEBIN "../Build/scorp/NewROM4.bin",#0000,#4000