mirror of
https://github.com/Tolik-Trek/MountIMA.git
synced 2026-06-15 01:11:34 +03:00
1871 lines
66 KiB
PHP
1871 lines
66 KiB
PHP
;
|
||
DEFDEVICE SPRINTER, #4000, 256
|
||
|
||
IFNDEF _includedSP2000 : DEFINE _includedSP2000 : ENDIF
|
||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||
; <EFBFBD>à¥àë¢ ¨ï ;
|
||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||
; ‚¥ªâ®à #FF:
|
||
; ª« ¢¨ âãà - ¢¨á¨â 32 â ªâ . ¬®¦® ¯à®¢¥à¨âì ¯® ¡ãä¥àã ¢ ¯à®æ¥, ¬®¦¥â «®¦¨âìáï á ®áâ «ì묨.
|
||
; ª ¤à®¢®¥ - ¢¨á¨â 32 â ªâ . Œ®¦¥â «®¦¨âìáï á ®áâ «ì묨.
|
||
; CBL - ¢¨á¨â ¤® § å¢ â ¯à®æ¥¬, ¬®¦¥â «®¦¨âìáï á ®áâ «ì묨.
|
||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||
|
||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||
; €¤à¥á ¯®à⮢ ;
|
||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||
|
||
; <EFBFBD>Ž<EFBFBD>’ #FE
|
||
; Read:
|
||
; bit0 - keyboard
|
||
; bit1 - keyboard
|
||
; bit2 - keyboard
|
||
; bit3 - keyboard
|
||
; bit4 - keyboard
|
||
; bit5 - display sync: 1 - «ãç>256, 0 - «ãç<256. •®¤ «ãç 0..319 / 0..311, ¢ § ¢¨á¨¬®á⨠®â à §¢ñà⪨. <EFBFBD> ¡®â ¥â ⮫쪮 ¯à¨ ªâ¨¢¨à®¢ ®¬ CBL, ¨ ç¥ ¢á¥£¤ 0
|
||
; bit6 - Tape in
|
||
; bit7 - ¥á«¨ ªâ¨¢¨à®¢ ë ¯à¥àë¢ ¨ï CBL: 1 - CBL interrupt, ¨ ç¥ à áè¨à¥ë© ¡¨â ᯥªâà㬮¢áª®© ª« ¢¨ âãàë
|
||
;
|
||
; Write:
|
||
; bit0 - Border Color
|
||
; bit1 - Border Color
|
||
; bit2 - Border Color
|
||
; bit3 - Tape out
|
||
; bit4 - Beeper out
|
||
; bit5 -
|
||
; bit6 -
|
||
; bit7 -
|
||
|
||
|
||
ZX_Beeper EQU #FE ; bit 4
|
||
ZX_Tape_Ou EQU #FE ; bit 3
|
||
ZX_Tape_In EQU #FE ; bit 6
|
||
|
||
;------------[Covox Blaster]------------;
|
||
CBL:
|
||
.OUT EQU #4F ; <20>®àâ ¤«ï ¢ë¢®¤ §¢ãª = #FB
|
||
.BUFFER_PAGE EQU #FD ; áâà ¨æ -¡ãä¥à ¤«ï ª¨¤ ¨ï ¬ã§« ªá¥«¥¬ (¯à¥àë¢ ¨ï CBL ¤®«¦ë ¡ëâì ¢ª«îç¥ë)
|
||
.INT_PORT EQU #FE ; bit4=1 --> bit7=1 § ¯à®á § ¯®«¥¨¥ ¯®«ã¡ãä¥à ¤ 묨
|
||
.SYS_PORT EQU #004E ; ¯®àâ ã¯à ¢«¥¨ï COVOX-Blaster (CBL_DIR). 16-bit port!!!, ¯¨á âì ç¥à¥§ OUT (c),reg ¨«¨ ®ç¥ì ®áâ®à®¦®))
|
||
.COVOX_OUT EQU #FB ; <20>®àâ ¤«ï ¢ë¢®¤ §¢ãª = #4F
|
||
|
||
; #00 - COVOX on, standart Pentagon mode
|
||
; #80 - CBL on, 15 kHz mono
|
||
; #81 - CBL on, 22 kHz mono
|
||
; Bits:
|
||
; 7 - covox/CBL
|
||
; 6 - ¬®®/áâ¥à¥®
|
||
; 5 - 8/16 ¡¨â
|
||
; 4 - ¢ëª«/¢ª« ¯à¥àë¢ ¨© (¢¥ªâ®à #FF, ¯à¨§ ª - ¯®àâ #FE.bit7 ¨ ¢¥á¨â ¤® § å¢ â ¯à®æ¥¬)
|
||
; 3..0 - ç áâ®â ; ¤®¯®«¨âì
|
||
; — áâ®âë:
|
||
; Žâ 8 ¤® 15
|
||
; ‡ 票ï 0..7 ¤«ï ᮢ¬¥á⨬®á⨠ᮠáâ àë¬ ¡« áâ¥à®¬: 0 - 16, 1 - 22 ªƒæ
|
||
;
|
||
; ¡ãä¥à - 256/512 ¡ ©â (8/16 bit mode)
|
||
; (2 ¡ ª¨ ¯® 128/256)
|
||
; ¯à¥àë¢ ¨¥ ¯à¨«¥â ¥â ¯®á«¥ ª ¦¤®©
|
||
; ¡ ª¨
|
||
|
||
; <EFBFBD>¥¦¨¬ 8 ¡¨â:
|
||
; ã஢¥ì ã«ï ¢ ᥬ¯« å - #80
|
||
; <EFBFBD>¥¦¨¬ 16 ¡¨â:
|
||
; ã஢¥ì ã«ï ¢ ᥬ¯« å - #0000
|
||
; Stereo-áí¬¯«ë:
|
||
; ç¥à¥¤ãî騥áï ®âáç¥âë L ¨ R ª «®¢.
|
||
|
||
; mono_8bit:
|
||
; DB 80h,81h,7Fh....
|
||
; mono_16bit:
|
||
; DW 0,1000,-1000...
|
||
; stereo_8bit:
|
||
; DB 80h,80h,81h,80h,7Fh,80h... ; §¤¥áì ®¤¨ ª « ¨£à ¥â, ¢â®à®© ¬®«ç¨â
|
||
; stereo_16bit:
|
||
; DW 0,0,1000,0,-1000,0... ; «®£¨ç®, ®¤¨ ª « ¨£à ¥â, ¢â®à®© ¬®«ç¨â
|
||
|
||
|
||
; CASE CBL_XX[3..0] IS
|
||
; WHEN 0 => CBL_TAB[] = 13; -- 15.625 KHz -- mono/stereo
|
||
; WHEN 1 => CBL_TAB[] = 9; -- 21.875 KHz -- mono/stereo
|
||
; WHEN 2 => CBL_TAB[] = 0; -- reserved
|
||
; WHEN 3 => CBL_TAB[] = 0; -- reserved
|
||
; WHEN 4 => CBL_TAB[] = 0; -- reserved
|
||
; WHEN 5 => CBL_TAB[] = 0; -- reserved
|
||
; WHEN 6 => CBL_TAB[] = 0; -- reserved
|
||
; WHEN 7 => CBL_TAB[] = 0; -- reserved
|
||
|
||
; WHEN 8 => CBL_TAB[] = 27; -- 7.8125 KHz -- mono/stereo 8/16 bit
|
||
; WHEN 9 => CBL_TAB[] = 19; -- 10.9375 KHz -- mono/stereo 8/16 bit
|
||
; WHEN 10=> CBL_TAB[] = 13; -- 15.625 KHz -- mono/stereo 8/16 bit
|
||
; WHEN 11=> CBL_TAB[] = 9; -- 21.875 KHz -- mono/stereo 8/16 bit
|
||
; WHEN 12=> CBL_TAB[] = 6; -- 31.25 KHz -- mono/stereo 8/16 bit
|
||
; WHEN 13=> CBL_TAB[] = 4; -- 43.75 KHz -- mono/stereo 8/16 bit
|
||
; WHEN 14=> CBL_TAB[] = 3; -- 54.6875 KHz -- mono/stereo 8/16 bit
|
||
; WHEN 15=> CBL_TAB[] = 1; -- 109.375 KHz -- mono/stereo 8/16 bit
|
||
; END CASE;
|
||
;---------------------------------------;
|
||
|
||
;=======================================
|
||
; § ¬ ¯«¥ ç¥à¥§ ª àâã ¯®à⮢ #7C/#3C ¨ #74/#24
|
||
CNF_PORT:
|
||
.ON EQU #74
|
||
.OFF EQU #24
|
||
.TURBO.ON EQU 3 ; ¤ ë¥ ¤«ï ¢ª«î票ï TURBO
|
||
.TURBO.OFF EQU 2 ; ¤ ë¥ ¤«ï ¢ëª«î票ï TURBO
|
||
.CNF_0 EQU #04 ; ª àâ ¯®à⮢ 0
|
||
.CNF_1 EQU #0C ; ª àâ ¯®à⮢ 1
|
||
.CNF_2 EQU #14 ; ª àâ ¯®à⮢ 2
|
||
.CNF_3 EQU #1C ; ª àâ ¯®à⮢ 3
|
||
.CNF_512 EQU #80 ; ¢ª«î票¥ Pentagon 128
|
||
; ¯à¨¡¨â ¢ ª®ä¥ £¢®§¤ï¬¨ #7C/#3C
|
||
SYS_PORT:
|
||
.ON EQU #7C
|
||
.OFF EQU #3C
|
||
.RAM EQU .OFF
|
||
.ROM EQU .ON
|
||
.PAGE0 EQU 1
|
||
.PAGE8 EQU 0
|
||
.EXPANSION EQU .PAGE0
|
||
.BIOS EQU .PAGE8
|
||
.TURBO.ON EQU CNF_PORT.TURBO.ON
|
||
.TURBO.OFF EQU CNF_PORT.TURBO.OFF
|
||
.CNF_0 EQU CNF_PORT.CNF_0
|
||
.CNF_1 EQU CNF_PORT.CNF_1
|
||
.CNF_2 EQU CNF_PORT.CNF_2
|
||
.CNF_3 EQU CNF_PORT.CNF_3
|
||
.CNF_512 EQU CNF_PORT.CNF_512
|
||
/*
|
||
---------------------------------------------------
|
||
CNF_PORT ¢¨á¨â 4 ¢¥è¨å ¯®àâ å (#7C/#3C ¨ #74/#24) ç¥à¥§ ª àâã ¯®à⮢.
|
||
SYS_PORT £¢®§¤ï¬¨ ¢ ª®ä¥ #7C/#C
|
||
|
||
SYS_PORT ⮫쪮 ¯¥à¥ª«îç ¥â RAM/ROM
|
||
CNF_PORT ¬¥ï¥â ¢áñ ®á⠫쮥, ¯à¨ ¡¨â1=0 ¬¥ïîâáï áâà ¨æë í¬ã«ïâ®à <20>‡“ ç¥à¥§ ¡¨â0
|
||
|
||
CNF_PORT
|
||
bit0 - TURBO: on/off ¨«¨ vROM:
|
||
; #24 - áâà ¨æ ¨§ ¢.¯®àâ (#E0..#E3)/(#E4..#E7)
|
||
; #74 - áâà ¨æ ¨§ ¢.¯®àâ #EB/#EF
|
||
bit1 - 1 - TURBO ena, 0 - ¯¥à¥ª«î票¥ vROM page
|
||
bit2 - 1 - CNF ena
|
||
bit3 - \_ cnf0..cnf3 ;\
|
||
bit4 - / ; \
|
||
bit5 - CNF_PN[5..0]_RESET by 1 - á¡à®á <20>¥â. ¯®àâ ; |---> ¤¥©áâ¢ãîâ ⮫쪮 ¯à¨ bit2=1
|
||
bit6 - CNF_SC_RESET by 1 - á¡à®á ‘ª®à¯. ¯®àâ ; /
|
||
bit7 - CNF_PN[7..6]_RESET by 0 - á¡à®á <20>¥â-512 ;/
|
||
|
||
<EFBFBD>¥à¥ª«î票¥ áâà ¨æ vROM:
|
||
; Port #24 = 0
|
||
#E0 - EXPANSION ; #1FFD bit2=1
|
||
#E1 - TR-DOS ; PC = #3D00..#3DFF and #1FFD bit2=0
|
||
#E2 - BASIC-128 ; #7FFD bit4=0 and #1FFD bit1=0
|
||
#E3 - BASIC-48 ; #7FFD bit4=1 and #1FFD bit1=0
|
||
; Port #24 = 1
|
||
#E4 - EXPANSION 2 ; #1FFD bit2=1
|
||
#E5 - TR-DOS 2 ; PC = #3D00..#3DFF and #1FFD bit2=0
|
||
#E6 - BASIC-128 2 ; #7FFD bit4=0 and #1FFD bit1=0
|
||
#E7 - BASIC-48 2 ; #7FFD bit4=1 and #1FFD bit1=0
|
||
; Port #74 = 0
|
||
#EB - BIOS-1 ;
|
||
; Port #74 = 1
|
||
#EF - BIOS-2 ;
|
||
;;;;;;;;
|
||
|
||
SYS_PORT:
|
||
bit0 - TURBO: on/off ¨«¨ BIOS: Part1/Part0
|
||
bit1 - 1 - TURBO ena, 0 - ¯¥à¥ª«î票¥ BIOS-PAGE
|
||
bit2 - 1 - CNF ena
|
||
bit3 - \_ cnf0..cnf3 ;\
|
||
bit4 - / ; \
|
||
bit5 - CNF_PN[5..0]_RESET by 1 - á¡à®á <20>¥â. ¯®àâ ; |---> ¤¥©áâ¢ãîâ ⮫쪮 ¯à¨ bit2=1
|
||
bit6 - CNF_SC_RESET by 1 - á¡à®á ‘ª®à¯. ¯®àâ ; /
|
||
bit7 - CNF_PN[7..6]_RESET by 0 - á¡à®á <20>¥â-512 ;/
|
||
|
||
”ãªæ¨ï bit0 ®¯à¥¤¥«ï¥âáï ç¥à¥§ bit1
|
||
bit7..bit3 áà ¡ âë¢ î⠯ਠbit2 = 1
|
||
|
||
‡ ¯¨áì ¢ ¯®àâ #7C ¯®¤ª«îç ¥â <20>‡“ ¢ ®ª® 0, § ¯¨áì ¢ ¯®àâ #3C ®âª«îç ¥â
|
||
<20>‡“ ®â ®ª 0, ¯®í⮬㠯®àâ 7‘/3C §ë¢ ¥âáï System/User.
|
||
<EFBFBD>¥à¥ª«î票¥ áâà ¨æ <20>‡“ à ¡®â ¥â ¢ í⮬ ¢ ਠ⥠⠪:
|
||
¢ <20>‡“ 16 áâà ¨æ ®â 0 ¤® 15, ¯®àâ #5C ¨å ¯¥à¥ª«îç ¥â á bit3 xor /SYS (SYS_PORT bit[1..0] = b"0X" (BIOS: Part1/Part0))
|
||
¥á«¨ ᤥ« âì ld a,1 : out (sys_port_on),a - â® ã¬¥à æ¨ï áâà ¨æ <20>‡“ ¡ã¤¥â ¯à ¢¨«ì ï ®â 0 ¤® 15,
|
||
¥á«¨ ᤥ« âì ld a,0 : out (sys_port_on),a - â® ã¬¥à æ¨ï áâà ¨æ <20>‡“ ¡ã¤¥â á ¨¢¥àâ¨à®¢ ë¬ bit3:
|
||
áâà ¨æë <20>‡“ 0-7 ¡ã¤ãâ 㬥஢ âìáï ª ª 8-15
|
||
áâà ¨æë <20>‡“ 8-15 ¡ã¤ãâ 㬥஢ âìáï ª ª 0-7
|
||
----------------------------------------------------
|
||
*/
|
||
;=======================================
|
||
|
||
; ¯®àâë ã¯à ¢«¥¨ï áâà ¨æ ¬¨ ä áâà ¬
|
||
FastRAM:
|
||
.ON EQU #FB ; ‚ª«î票¥ ªíè IN A,(FastRAM.ON) - ¯à¨¡¨â® £¢®§¤ï¬¨ ¢ ª®ä¥
|
||
.OFF EQU #7B ; Žâª«î票¥ ªíè IN A,(FastRAM.OFF) - ¯à¨¡¨â® £¢®§¤ï¬¨ ¢ ª®ä¥
|
||
.SLOT0 EQU #5C ; <20>¥à¥ª«î票¥ áâà ¨æ ªíè ¯à¨ FastRAM.ON ¢ ã«¥¢®¬ ®ª¥ (bit0..1) - ¯à¨¡¨â® £¢®§¤ï¬¨ ¢ ª®ä¥
|
||
|
||
; <EFBFBD>®àâ ã¯à ¢«¥¨ï áâà ¨æ ¬¨ <EFBFBD>‡“
|
||
; <EFBFBD>¥à¥ª«î票¥ áâà ¨æ <EFBFBD>‡“ ¯à¨ FastRAM.OFF ¢ ã«¥¢®¬ ®ª¥.
|
||
ROM:
|
||
.SLOT0 EQU #5C ; <20>ਡ¨â® £¢®§¤ï¬¨ ¢ ª®ä¥
|
||
.BIOS EQU SYS_PORT.BIOS ; ¤«ï sys_port.on D_ROM16OFF
|
||
.EXPANSION EQU SYS_PORT.EXPANSION ; ¤«ï sys_port.on D_ROM16ON
|
||
; ‡ 票ï:
|
||
; ®¬¥à áâà ¨æë bit3..0
|
||
; à §à¥è¥¨¥ § ¯¨á¨ bit4 (0 - no Write; 1 - Write)
|
||
; ¯à¨ bit4 == 1 ¯à¨ã¤¨â¥«ì® ¢ëáâ ¢«ï¥âáï ¨ ¡«®ª¨àã¥âáï sys_pg ¢ 1 (ld a,1 : out (sys_port_on),a)
|
||
; ¯®ª bit4 ¥ á¡à®è¥ ¯¥à¥ª«îç âì áâà ¨æë <EFBFBD>‡“ system/user ç¥à¥§ ¯®àâ
|
||
|
||
|
||
P_KBD_OUT EQU #F8 ;!FIXIT § ¬¥¨âì
|
||
P_KBD_IN EQU #FE ;!FIXIT § ¬¥¨âì
|
||
|
||
KEMPSTON:
|
||
.JOYSTICK EQU 7
|
||
|
||
; —⥨¥: ¯®àâ ¤¦®©á⨪ ¨ ᨣ «ë DRQ, INTRQ ª®â஫«¥à ¤¨áª®¢®¤ .
|
||
; ‡ ¯¨áì: § ¯¨áì ¢ ¬¨ªà®á奬㠒Œ9 - á¨áâ¥¬ë© ¯®àâ TR-DOS
|
||
; ª¥¬¯áâ® ¨§ DOS_ON ¤«ï á¯¥æ¨ «ì®£® èãઠLPT+JOY ç⮡ ¯® PC Link ª®¥ªâ¨âìáï ª PC
|
||
.PC_Link EQU #FF ;JOY_DOS
|
||
|
||
.MOUSE.X EQU #FBDF
|
||
.MOUSE.Y EQU #FFDF
|
||
; bit0: «¥¢ ï ª®¯ª (0= ¦ â )
|
||
; bit1: ¯à ¢ ï ª®¯ª (0= ¦ â )
|
||
; bit2: á।ïï ª®¯ª (0= ¦ â )
|
||
; bit3: § १¥à¢¨à®¢ ® ¯®¤ ¥éñ ®¤ã ª®¯ªã (0= ¦ â )
|
||
; bit4..7: ª®®à¤¨ â ª®«ñᨪ
|
||
.MOUSE.Buttons EQU #FADF
|
||
|
||
|
||
;---------------[Border]----------------
|
||
BorderColor EQU #FE
|
||
; bit 2..0:
|
||
; bit 0 - ᨨ©
|
||
; bit 1 - ªà áë©
|
||
; bit 2 - §¥«ñë©
|
||
; 0 - çñàë©
|
||
; 1 - ᨨ©
|
||
; 2 - ªà áë©
|
||
; 3 - ¯ãà¯ãàë©
|
||
; 4 - §¥«ñë©
|
||
; 5 - £®«ã¡®©
|
||
; 6 - ¦ñ«âë©
|
||
; 7 - ¡¥«ë©
|
||
;
|
||
; 梥⠡®à¤îà ¢ ०¨¬¥ á¯à¨â¥à ¡¥àñâáï ¨§ 4 ¯ «¨âàë.
|
||
; 梥⠢ ¯ «¨âॠ¢ëç¨á«ï¥âáï ¤ã¡«¨à®¢ ¨¥¬ ¢ ¡ ©â¥ 梥â bit2..0 ¢ bit5..3
|
||
; ¬®¦® ¢ëç¨á«ïâì ¨â®£®¢ë© ¨¤¥ªá ¢ ¯ «¨âॠ㬮¦¥¨¥¬ 梥â 9, «¨¡®
|
||
; âਠᤢ¨£ 梥⠢«¥¢® ¯«îá ¨áå®¤ë© æ¢¥â æ¢¥â
|
||
; 0 - BLACK color index #00
|
||
; 1 - BRIGHT BLUE color index #09
|
||
; 2 - GREEN color index #12
|
||
; 3 - BRIGHT CYAN color index #1B
|
||
; 4 - RED color index #24
|
||
; 5 - BRIGHT MAGENTA color index #2D
|
||
; 6 - BROWN color index #36
|
||
; 7 - WHITE color index #3F
|
||
;---------------------------------------
|
||
|
||
;-------------[ZX keyboard]-------------
|
||
; ü ÉÍÍËÍÍËÍÍËÍÍËÍÍËÍÍËÍÍËÍÍËÍÍËÍÍ»
|
||
; <EFBFBD>ˆ’A º 0º 1º 2º 3º 4º 4º 3º 2º 1º 0º
|
||
; ÈÍÍÊÍÍÊÍÍÊÍÍÊÍÍÊÍÍÊÍÍÊÍÍÊÍÍÊÍͼ
|
||
; ü ÚÄÄÂÄÄÂÄÄÂÄÄÂÄÄÒÄÄÂÄÄÂÄÄÂÄÄÂÄÄ¿ ü
|
||
; <EFBFBD> 3³ 1³ 2³ 3³ 4³ 5º 6³ 7³ 8³ 9³ 0³ 4 <EFBFBD>
|
||
; Ž ÃÄÄÅÄÄÅÄÄÅÄÄÅÄĺÄÄÅÄÄÅÄÄÅÄÄÅÄÄ´ Ž
|
||
; ‹ 2³ Q³ W³ E³ R³ Tº Y³ U³ I³ O³ P³ 5 ‹
|
||
; “ ÃÄÄÅÄÄÅÄÄÅÄÄÅÄĺÄÄÅÄÄÅÄÄÅÄÄÅÄÄ´ “
|
||
; <EFBFBD> 1³ A³ S³ D³ F³ Gº H³ J³ K³ L³EN³ 6 <EFBFBD>
|
||
; Ÿ ÃÄÄÅÄÄÅÄÄÅÄÄÅÄĺÄÄÅÄÄÅÄÄÅÄÄÅÄÄ´ Ÿ
|
||
; „ 0³CS³ Z³ X³ C³ Vº B³ N³ M³SS³SP³ 7 „
|
||
; € ÀÄÄÁÄÄÁÄÄÁÄÄÁÄÄÁÄÄÁÄÄÁÄÄÁÄÄÁÄÄÙ €
|
||
; Š« ¢¨è ¦ â : ¡¨â = 0
|
||
; 3 - #F7 7 - #7F
|
||
; 2 - #FB 6 - #BF
|
||
; 1 - #FD 5 - #DF
|
||
; 0 - #FE 4 - #EF
|
||
|
||
; ‚®§¬®¦® ®¤®¢à¥¬¥®¥ ç⥨¥
|
||
; ¥áª®«ìª¨å ¯®«ãà冷¢ ¯à¨ á¡à®á¥
|
||
; ¥áª®«ìª¨å ¡¨â ¢ áâ à襬 ¡ ©â¥
|
||
; ¤à¥á ¯®àâ
|
||
ZXKeys EQU #FE
|
||
.Line_0 EQU #FEFE
|
||
.Line_1 EQU #FDFE
|
||
.Line_2 EQU #FBFE
|
||
.Line_3 EQU #F7FE
|
||
.Line_4 EQU #EFFE
|
||
.Line_5 EQU #DFFE
|
||
.Line_6 EQU #BFFE
|
||
.Line_7 EQU #7FFE
|
||
|
||
|
||
; ????? —â®-â® ¯à® à áè¨à¥ë© ¡¨â ª« ¢ë ¢ #FE
|
||
|
||
; CS - caps shift
|
||
; SS - symbol shift
|
||
; FS - function shift
|
||
|
||
; Left Shift => CS
|
||
; Right SHIFT => CS
|
||
; Ctrl => SS
|
||
; Alt => SS+CS
|
||
; left WIN => ENTER+CS
|
||
; ESC => SPACE+CS
|
||
; Right WIN => ENTER+SS
|
||
; Right Mouse => SPACE+SS
|
||
|
||
; Back => 0+CS
|
||
; Tab => 1+CS
|
||
; Caps Lock => 2+CS
|
||
; PUp => 3+CS
|
||
; PDn => 4+CS
|
||
; <- => 5+CS
|
||
; Dn => 6+CS
|
||
; Up => 7+CS
|
||
; -> => 8+CS
|
||
; DEL => 9+CS
|
||
|
||
; ~ => A+SS
|
||
; '' => D+SS
|
||
|
||
; / => V+SS
|
||
; Grey * => B+SS
|
||
; , => N+SS
|
||
; . => M+SS
|
||
|
||
; [ => Y+SS
|
||
; ] => U+SS
|
||
; Grey 5 => I+SS
|
||
; ; => O+SS
|
||
; ' => P+SS
|
||
|
||
; Home => Q+SS
|
||
; Ins => W+SS
|
||
; End => E+SS
|
||
|
||
; - => J+SS
|
||
; Grey - => J+SS
|
||
; Grey + => K+SS
|
||
; = => L+SS
|
||
|
||
; F1 => 1+FS
|
||
; F2 => 2+FS
|
||
; F3 => 3+FS
|
||
; F4 => 4+FS
|
||
; F5 => 5+FS
|
||
; F6 => 6+FS
|
||
; F7 => 7+FS
|
||
; F8 => 8+FS
|
||
; F9 => 9+FS
|
||
; F10 => 0+FS
|
||
; Scroll Lock => CS+FS
|
||
;---------------------------------------
|
||
;
|
||
;--------[á¨åந§ æ¨ï íªà ]---------
|
||
SCR_SyncPort EQU #FE
|
||
; bit 5 - á¨åந§ æ¨ï íªà
|
||
; ª ¤à®¢ë© ¨¬¯ã«ìá
|
||
; ¤«¨ - 4 ¬á
|
||
; ¯¥à¨®¤ - 20 ¬á
|
||
|
||
;---------------------------------------
|
||
;
|
||
|
||
SLOT0 EQU #82 ; ®¬¥à ¡ ª¨ 0
|
||
SLOT1 EQU #A2 ; ®¬¥à ¡ ª¨ 1
|
||
SLOT2 EQU #C2 ; ®¬¥à ¡ ª¨ 2
|
||
SLOT3 EQU #E2 ; ®¬¥à ¡ ª¨ 3
|
||
|
||
PORT_Y EQU #89 ; ¢¥à⨪ «ì ï ª®®à¤¨ â â®çª¨ £à ä¨ç¥áª®¬ íªà
|
||
RGADR EQU #89 ; áâà ¨æ VIDEO-RAM ¤«ï ᯥªâà㬮¢áª®£® ०¨¬
|
||
;RGSCR EQU #E9 = RGMOD
|
||
RGMOD EQU #C9 ; ¯®àâ ०¨¬ íªà . <20>¥à¥ª«îç ¥â áâà ¨æë ०¨¬ íªà .
|
||
SCREEN_SWITCH EQU #C9 ; ¯®àâ ०¨¬ íªà . <20>¥à¥ª«îç ¥â áâà ¨æë ०¨¬ íªà .
|
||
;RGACC EQU #A9
|
||
PGACC EQU #FC ; <20>®àâ ¬ áèâ ¡¨à®¢ ¨ï
|
||
|
||
Port_All_Mode EQU #204E
|
||
; bit0 - 0: ¢ëª« ªá¥«¥à â®à ¨ ¯à¥àë¢ ¨© ®â ª« ¢¨ âãàë, ¢ª«î票¥ ᯥª®¢áª®© ¤à¥á 樨 íªà .
|
||
; bit1 -
|
||
; bit2 - ¢ª«/¢ëª« original zx spectrum waits
|
||
; bit3 - ¢ª«/¢ëª« ®â¤¥«ì®¥ ®â ªá¥«¥à â®à ¯à¥àë¢ ¨ï ®â ª« ¢¨ âãàë
|
||
; bit4 -
|
||
; bit5 -
|
||
; bit6 -
|
||
; bit7 -
|
||
|
||
Port_VSYNC EQU #BD ; #41 - 320Lines/49Hz, #61 - 312Lines/50Hz
|
||
.SET_320L EQU #41
|
||
.SET_312L EQU #61
|
||
|
||
;
|
||
;----------------------------------------------------------------------;
|
||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||
; €¤à¥á áâà ¨æ ;
|
||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||
|
||
;SCR_PAGE EQU 0FDH
|
||
;PAL_PAGE EQU 0FDH
|
||
PAL_V_PAGE EQU #9E ;?????
|
||
PAL_SCP EQU #1E ;?????
|
||
|
||
; áâà ¨æ ¯®à⮢
|
||
DCP_PAGE EQU #40
|
||
|
||
; áâà ¨æ ¨á¯®«ì§ã¥¬ ï DSS
|
||
DSS_PAGE EQU #FF
|
||
ZERO_PAGE EQU 0
|
||
; áâà ¨æ ¤«ï ¯¥à¥å¢ â à¥á¥â ¨ ¥éñ 祣®-â®
|
||
Spec_Page EQU #41
|
||
MODE_PAGE EQU #FC ;????? ¥á«¨ à㤨¬¥â, â® ã¡à âì ¨§ १¥à¢¨à®¢ ¨ï ¢ â ¡«¨æ¥ áâà ¨æ
|
||
RESET_PAGE EQU #A0
|
||
; ‘¡à®á ¬®¦¥â ¡ëâì ®áãé¥á⢫¥ § ¯¨áìî ¢ áâà ¨æã #A0, ãáâ ®¢«¥ãî ¢ à áè¨à¥ãî
|
||
; áâà ¨æã Scorpion-®¢áª®£® à á¯à¥¤¥«¥¨ï ¯®à⮢, â.¥. á«¥¤ãî饩 ¯à®£à ¬¬®©:
|
||
; DI
|
||
; LD A,16
|
||
; LD BC,#1FFD
|
||
; OUT (C),A
|
||
; LD A,RESET_PAGE
|
||
; OUT (PAGE3),A
|
||
; LD (#C000),A ; ¢ íâ®â ¬®¬¥â ¯®¤ ¥âáï RESET
|
||
;
|
||
; áâà ¨æ á á¨á⥬묨 ¯¥à¥¬¥ë¬¨ BIOS
|
||
SYS_PAGE EQU #FE
|
||
.ID_FLAG EQU #C000 ; ª®¯¨ï ID_SPRINTER ¤«ï ¤¥â¥ªâ ¯®«®© ¨¨æ¨ «¨§ 樨. 32 bytes max
|
||
; vsync:
|
||
; bit0 1 - 320L, 0 - 312L
|
||
; bit1 1 - no waits, 0 - original waits
|
||
.VSyncAndWaits EQU #C020
|
||
;!TODO EQU #C021 - #C027
|
||
; STACK for FN_LIB end EQU #C028
|
||
.SYS_SP EQU #C0FE ; „Ž<E2809E>Ž‹<C5BD>ˆ’…‹œ<E280B9>›‰ ‘’…Š ¤«ï FN_LIB ¨ ¥éñ 祣®-â®
|
||
.DISK_TYPE EQU #C100 ; ¯¥à¥ ¤à¥á æ¨ï ¤¨áª®¢
|
||
.COPY_SLOT0 EQU #C104 ; ª®¯¨¨ § 票© ¯®à⮢ áâà ¨æ
|
||
.COPY_SLOT1 EQU #C105
|
||
.COPY_SLOT2 EQU #C106
|
||
.COPY_SLOT3 EQU #C107
|
||
.RAMD_VARS EQU #C108 ; ¯¥à¥¬¥ë¥ RAM-¤¨áª®¢ ;!TODO á®åà ïâì âã⠯ਧ ª ᬥë à ¬¤¨áª ¨«¨ ¥£® ¡«®ª ¯ ¬ï⨠¤«ï ¤à ©¢¥à DSS
|
||
.A_RAMD_VARS EQU #C118 ; ⥪ã騩 RAM-Disk
|
||
.SP_SAVE EQU #C11A ; ¬¥áâ® ¤«ï á®åà ¥¨ï ¤à¥á á⥪
|
||
.ERR_SAVE EQU #C11C
|
||
.COPY_RGADR EQU #C11D
|
||
.RAM_MSD EQU #C11E ; áâà ¨æ ¤«ï à ¡®âë ¢ MS-DOS
|
||
.MSD_SECS EQU #C11F ; —¨á«® ᥪâ®à®¢ ¢ MS-DOS
|
||
.MSD_NAME EQU #C120 ; €¤à¥á ¨¬¥¨ ©¤¥®£® ä ©«
|
||
;.HDD_WRITE_PROTECT EQU #C122 ; ª®¯¨ï ᮤ¥à¦¨¬®£® ï祩ª¨ ª¬®á ;!TODO
|
||
.INT_ADRESS EQU #C124 ; ¤à¥á ®¡à ¡®â稪 ¯à¥àë¢ ¨ï
|
||
.INT_PAGE EQU #C126 ; áâà ¨æ á ®¡à ¡®â稪®¬ ¯à¥àë¢ ¨ï
|
||
.INT_ID EQU #C127 ; ¥á«¨ = #AA - § ç¨âì ®¡à ¡®â稪 ãáâ ®¢«¥
|
||
.DS_1440 EQU #C128 ; ä« £¨ ¯¥à¥ª«î票ï 720/1440
|
||
.F_P_S EQU #C129 ; ç¨á«® ä ©«®¢ëå § ¯¨á¥© ¢ ᥪâ®à¥
|
||
.S_P_C EQU #C12A ; ç¨á«® ᥪâ®à®¢ ª â «®£
|
||
.COUNT_FL EQU #C12B ; áç¥â稪 ä ©«®¢ ¢ ᥪâ®à¥
|
||
.COUNT_SEC EQU #C12C ; áç¥â稪 ᥪâ®à®¢ ¢ ª â «®£¥
|
||
.C_P_B EQU #C12D ; ç¨á«® ª« áâ¥à®¢ ¡«®ª އ“
|
||
;!TODO EQU #C12E
|
||
.FAT_FLAG EQU #C130 ; FAT ä« £ + FAT sector
|
||
.MSD_CONT_SEC EQU #C132 ; ⥪ã騩 ᥪâ®à ¤«ï MS-DOS
|
||
.MSD_CONT_SEC2 EQU #C134
|
||
.S_X_H EQU #C136 ; ª®«¨ç¥á⢮ ᥪâ®à®¢ 樫¨¤à¥
|
||
|
||
; âãâ åà ¨âáï 㪠§ ⥫ì â ¡«¨æã ¨â
|
||
; ¨á¯®«ì§ã¥¬ãî äãªæ¨¥© #F2 BIOS
|
||
.CONFIG_ALL EQU #C138 ; ®¯¨á â¥«ì ª®ä¨£ãà æ¨¨ - 2 ¡ ©â
|
||
|
||
;…áâì â ª®© ª®¤, ¯à¨¬¥à:
|
||
; LD DE,CNF_0+D_TBOFF
|
||
; LD (SYS_PAGE.CONFIG_DE),DE
|
||
; ¯¥à¢ë© ¡ ©â ¤«ï SYS_PORT_ON/OFF.
|
||
; ¢â®à®© ¡ ©â ¤«ï ¢ë¡®à ०¨¬
|
||
; ᯥªâà㬠¯à¨ § ¯ã᪥ äãªæ¨ï¬¨ <20>‡“.
|
||
.CONFIG_DE EQU #C13A ; ®¯¨á â¥«ì ª®ä¨£ãà æ¨¨ - 2 ¡ ©â
|
||
|
||
; 2 ¡ ©â ª®ä¨£ãà æ¨¨ - á«¥¤¨¥ Sp97.
|
||
; Œ« ¤è¨© ¡ ©â ⥪ãé ï ª®ä (⨯ PG_SP1)
|
||
; ‘â à訩 ¡ ©â ¥á«¨ 0, â® íâ ª®ä ªâ¨¢¨à®¢ .
|
||
; ‚ Sp2000 â㤠¯¨å ¥âáï § 票¥ ⨯ #FEFF
|
||
.CONFIG_BYTE EQU #C13E
|
||
|
||
.WIN_MAP_SC EQU #C140
|
||
.WIN_TAB_SC EQU #C142
|
||
.WIN_SAV_HL EQU #C144
|
||
.WIN_SAV_DE EQU #C146
|
||
.WIN_SAV_BC EQU #C148
|
||
.WIN_ZG EQU #C14A
|
||
.WIN_PLACE_WIN EQU #C14C
|
||
.WIN_GR_MAP EQU #C14E
|
||
|
||
.SYS_WORK1 EQU #C150
|
||
.SYS_WORK2 EQU #C152
|
||
.SYS_WORK3 EQU #C154
|
||
.SYS_WORK4 EQU #C156
|
||
|
||
.WIN_MAP_LAB1 EQU #C158
|
||
.WIN_MODE_SH EQU #C15C
|
||
.WIN_MODE_SC EQU #C15E
|
||
|
||
.MSD_FAT_SEC EQU #C160 ; ç «ìë© á¥ªâ®à FAT
|
||
.MSD_FAT_SEC2 EQU #C162 ; ç «ìë© á¥ªâ®à FAT
|
||
.MSD_CAT_SEC EQU #C164 ; ç «ìë© á¥ªâ®à CAT
|
||
.MSD_CAT_SEC2 EQU #C166 ; ç «ìë© á¥ªâ®à CAT
|
||
.MSD_DAT_SEC EQU #C168 ; ç «ìë© á¥ªâ®à DAT
|
||
.MSD_DAT_SEC2 EQU #C16A ; ç «ìë© á¥ªâ®à DAT
|
||
.CLASTER_LEN EQU #C16C ; ¤«¨ ª« áâ¥à ¢ ¡ ©â å
|
||
.CLASTER_LEN2 EQU #C16E ; ¤«¨ ª« áâ¥à ¢ ¡ ©â å
|
||
|
||
; vsync:
|
||
; bit0 1 - 320L, 0 - 312L
|
||
; bit1 1 - no waits, 0 - original waits
|
||
;.VSyncAndWaits EQU #C170
|
||
|
||
;!TODO EQU #C170 - #C17F
|
||
|
||
.RAMD_KEYS EQU #C180 ; RAM-Disks ID's - ¤à¥á ¢ SYS_PAGE ¤«ï ª ¦¤®© ¡ãª¢ë à ¬¤¨áª
|
||
.RAMD_KEYS.E EQU #C180 ; ¯® ª®â®à®¬ã åà ¨âáï ¥£® ç «ìë© ¡«®ª ¯ ¬ïâ¨
|
||
.RAMD_KEYS.F EQU #C181
|
||
.RAMD_KEYS.G EQU #C182
|
||
.RAMD_KEYS.H EQU #C183
|
||
.RAMD_KEYS.I EQU #C184
|
||
.RAMD_KEYS.J EQU #C185
|
||
.RAMD_KEYS.K EQU #C186
|
||
.RAMD_KEYS.L EQU #C187
|
||
.RAMD_KEYS.M EQU #C188
|
||
.RAMD_KEYS.N EQU #C189
|
||
.RAMD_KEYS.O EQU #C18A
|
||
.RAMD_KEYS.P EQU #C18B
|
||
.RAMD_KEYS.Q EQU #C18C
|
||
.RAMD_KEYS.R EQU #C18D
|
||
.RAMD_KEYS.S EQU #C18E
|
||
.RAMD_KEYS.T EQU #C18F
|
||
.RAMD_KEYS.NUM EQU 16 ; RAMD_KEY_NUM
|
||
|
||
;!TODO EQU #C190 - #C19F
|
||
|
||
.LIB_TABLE EQU #C1A0; - #C1BF ; â ¡«¨æë librares 32 ¡ ©â
|
||
; +0 ¡¨¡«¨®â¥ª DOS
|
||
|
||
;
|
||
.IDE_0 EQU #C1C0
|
||
.IDE_1 EQU #C1C8
|
||
.IDE_2 EQU #C1D0
|
||
.IDE_3 EQU #C1D8
|
||
;
|
||
.FDD_0 EQU #C1E0
|
||
.FDD_1 EQU #C1E8
|
||
;.FDD_2 EQU #C1F0
|
||
;.FDD_3 EQU #C1F8
|
||
;
|
||
|
||
.RAMD_FAT EQU #C200 ; à ᯮ«®¦¥¨¥ ¡«®ª®¢ RAM-Disk-®¢
|
||
.MS_BPB EQU #C400 ; ¡ãä¥à BPB
|
||
.HD_IDF_ADR EQU #C600 ; !FIXIT áâàãªâãன ᤥ« âì!!!
|
||
.HD_IDF_ADR.heads EQU .HD_IDF_ADR+6
|
||
.HD_IDF_ADR.sectors EQU .HD_IDF_ADR+12
|
||
.HD_IDF_ADR.sec_cyl EQU .HD_IDF_ADR+4
|
||
.MS_DIR EQU #C800 ; ¡ãä¥à DIR sector
|
||
.MS_FAT EQU #CC00 ; ¡ãä¥à FAT sector
|
||
.MS_BUF EQU #D000 ; ¡ãä¥à DAT sector
|
||
|
||
.WIN_MAP_IX EQU #E000 ; ¤ ë¥ ª àâ ®ª®
|
||
|
||
.TASK_DATA EQU #EC00 ; ¤ ë¥ ¤«ï § ¤ ç
|
||
|
||
.RESTART_ID EQU #F000 ; db "RESTART",0 ;First start identificator
|
||
|
||
.PowerOnTime EQU #F008 ; ¢à¥¬ï ¢ª«îç¥¨ï ¨ ¯¥à¥§ £à㧪¨ #F008 - #F017
|
||
|
||
|
||
.USER_VARS EQU #F018 ; ¯¥à¥¬¥ë¥ ¯®«ì§®¢ ⥫¥©
|
||
|
||
;------------[ OLD ]-------------;
|
||
;.SYSTEM_ID EQU #C020 ; ¨á¯®«ì§®¢ « áì ¤«ï ¯®¤¬¥ë ¡¨®á "NEW_BIOS"
|
||
;.MSD_FAT_SEC EQU #C122 ; ç «ìë© á¥ªâ®à FAT
|
||
;.INT_ADRESS EQU #C124 ; ç «ìë© á¥ªâ®à CAT
|
||
;.INT_PAGE EQU #C126 ; ç «ìë© á¥ªâ®à DAT
|
||
;.CLASTER_LEN EQU #C12E ; ¤«¨ ª« áâ¥à ¢ ¡ ©â å
|
||
;.CMOS_FLAG_1 EQU #C170
|
||
;----------------------------------------------------------------------;
|
||
;
|
||
/*
|
||
STRUCT FDD_INIT_TABLE
|
||
DISK BYTE 0
|
||
F144 EQU FDD_0+0
|
||
SECTORS EQU FDD_0+1
|
||
MS_SECS EQU .SECTORS
|
||
HEADS EQU FDD_0+2
|
||
CYLINDL EQU FDD_0+3
|
||
CYLINDH EQU FDD_0+4
|
||
B_P_S EQU FDD_0+5
|
||
ENDS
|
||
*/
|
||
;
|
||
MODULE FDD_INI_TABLE ; !FIXIT â ¡«¨æë ¤«ï FDD ãáâனá⢠32 ¡ ©â . ¯à¨¢ï§ âìáï ª áâàãªâãॠ¢ëè¥
|
||
FDD EQU 3 ; ????? å¥à ¥£® § ¥â, çâ® § ¯ à ¬¥âà, à §®¡à âìáï
|
||
FDD_0 EQU SYS_PAGE.FDD_0
|
||
.DISK EQU FDD_0+0
|
||
.F144 EQU .DISK
|
||
.SECTORS EQU FDD_0+1
|
||
.MS_SECS EQU .SECTORS
|
||
.HEADS EQU FDD_0+2
|
||
.CYLINDL EQU FDD_0+3
|
||
.CYLINDH EQU FDD_0+4
|
||
.B_P_S EQU FDD_0+5
|
||
FDD_1 EQU SYS_PAGE.FDD_1
|
||
.DISK EQU FDD_1+0
|
||
.F144 EQU .DISK
|
||
.SECTORS EQU FDD_1+1
|
||
.MS_SECS EQU .SECTORS
|
||
.HEADS EQU FDD_1+2
|
||
.CYLINDL EQU FDD_1+3
|
||
.CYLINDH EQU FDD_1+4
|
||
.B_P_S EQU FDD_1+5
|
||
ENDMODULE
|
||
;
|
||
|
||
;
|
||
STRUCT BIOS_DATE_FORMAT ; !FIXIT ¯¥à¥¤¥« âì ¯®¤ áâàãªâãà㠢ᥠ¯¥à¥¬¥ë¥ #FE
|
||
hour BYTE
|
||
minute BYTE
|
||
second BYTE
|
||
day BYTE
|
||
month BYTE
|
||
year_high BYTE
|
||
year_low BYTE
|
||
reserved BYTE
|
||
ENDS
|
||
|
||
PowerOnDate BIOS_DATE_FORMAT = SYS_PAGE.PowerOnTime
|
||
RebootDate BIOS_DATE_FORMAT = PowerOnDate + BIOS_DATE_FORMAT
|
||
;#F008-#F00F : db hour,min,sec,day,month,century-1,year-century,reserved ; PowerOn date
|
||
;#F010-#F017 : db hour,min,sec,day,mouth,century-1,year-century,reserved ; Reboot date
|
||
;
|
||
|
||
;----------[CMOS Registers]-------------
|
||
CMOS.Port.Data:
|
||
.Read EQU #FFBD
|
||
.Write EQU #BFBD
|
||
CMOS.Port.Address:
|
||
.Write EQU #DFBD
|
||
|
||
|
||
CMOS.Register:
|
||
.seconds EQU #00
|
||
.alarmSeconds EQU #01
|
||
.minutes EQU #02
|
||
.alarmMinutes EQU #03
|
||
.hours EQU #04
|
||
.alarmHours EQU #05
|
||
.dayOfWeek EQU #06
|
||
.date EQU #07
|
||
.month EQU #08
|
||
.year EQU #09
|
||
.century EQU #32
|
||
|
||
|
||
; bit7 - Update-In-Progress. read-only
|
||
; bit6..4 - %010: to turn the oscillator on and allow the RTC to keep time.
|
||
; %11x: enables the oscillator but holds the countdown chain in reset.
|
||
; The next update occurs at 500ms after a pattern of 010 is written.
|
||
; bit3..0 - Rate Selector. These four rate-selection bits select one of
|
||
; the 13 taps on the 15-stage divider or disable the divider output.
|
||
; The tap selected can be used to generate an output square wave (SQW pin)
|
||
; and/or a periodic interrupt. The user can do one of the following:
|
||
; 1) Enable the interrupt with the PIE bit;
|
||
; 2) Enable the SQW output pin with the SQWE bit;
|
||
; 3) Enable both at the same time and the same rate; or
|
||
; 4) Enable neither.
|
||
.CTRLregA EQU #0A
|
||
|
||
; bit7 - SET. ¢ëáâ ¢«ïâì ¢ 1 ¯¥à¥¤ ãáâ ®¢ª®© ¢à¥¬¥¨/¤ âë, ¯®á«¥ ®¡à â® ¢ 0.
|
||
; bit6 - Periodic Interrupt Enable (PIE)
|
||
; bit5 - Alarm Interrupt Enable (AIE)
|
||
; bit4 - Update-Ended Interrupt Enable (UIE)
|
||
; bit3 - Square-Wave Enable (SQWE)
|
||
; bit2 - Data Mode (DM). ä®à¬ â ¤ âë ¨ ¢à¥¬¥¨: BCD/HEX
|
||
; bit1 - time format: 12/24
|
||
; bit0 - Daylight Saving Enable (DSE)
|
||
.CTRLregB EQU #0B
|
||
|
||
; bit7 - Interrupt Request Flag (IRQF)
|
||
; bit6 - Periodic Interrupt Flag (PF), read-only
|
||
; bit5 - Alarm Interrupt Flag (AF)
|
||
; bit4 - Update-Ended Interrupt Flag (UF)
|
||
; bit3..0 - Unused, read-only == 0
|
||
.CTRLregC EQU #0C ; read-only
|
||
|
||
; bit7 - Valid RAM and Time (VRT). …᫨ 1, â® ¡ â à¥ï ¢ ®à¬¥, ¥á«¨ 0, â® ¡ â à¥ï á¤®å« .
|
||
; bit6..0 - Unused, read-only == 0
|
||
.CTRLregD EQU #0D ; read-only
|
||
|
||
|
||
|
||
;!TODO § ¯¨á âì â ª ¢á¥ ¯ à ¬¥âàë ¢ ª¬®á
|
||
CMOS.Cell.ScreenSET EQU #1A
|
||
; %0000 1111 - COLOR STYLE For Setup
|
||
; %0011 0000 - Frame Int (Default/Pentagon/Scorpion/Original)
|
||
; %1100 0000 - Screen V-Sinc (Default/312 lines 50 HZ/320 Lines 49 Hz)
|
||
.Mask.Sinc EQU #C0 ; SCREEN_HZ
|
||
.Mask.Int EQU #30 ; SCREEN_INT
|
||
;
|
||
|
||
|
||
GR_BIT_END EQU 7
|
||
|
||
S_BIT_END EQU 7
|
||
S_BIT_LIN EQU 6
|
||
S_BIT_MOD EQU 5
|
||
|
||
BIT_1440 EQU 1
|
||
BIT_MASK_1440 EQU %00000010
|
||
;---------------------------------------
|
||
|
||
|
||
; <EFBFBD>®àâë Š<EFBFBD>1818‚ƒ93 ¨ â.¯.
|
||
FDC_93:
|
||
.Command EQU #0F ; WG_COM R_COM ;Command/Status
|
||
.Track EQU #3F ; WG_TRK R_TRK ;Track
|
||
.Sector EQU #5F ; WG_SEC R_SEC ;Sector
|
||
.Data EQU #7F ; WG_DATA R_DAT ;Data
|
||
.DrvCTRL EQU #FF ; P_DOS_FF R_DSK ;Drive Control
|
||
;
|
||
|
||
;????????????????????????????????????????
|
||
|
||
;SPRINTER EQU 4 ; ‚…<EFBFBD>‘ˆŸ !!!
|
||
ISD_WARM EQU 3
|
||
ISD_COLD EQU 0
|
||
IS_KEY EQU #40 ; „€<E2809E><E282AC>›… „‹Ÿ ‚›‚Ž„€ ‚ <20>Ž<EFBFBD>’ <20><>ˆ ‚Š‹ž—…<E28094>ˆˆ IS-DOS
|
||
IS_RAM_ADR EQU #5BC0 ; €„<E282AC>…‘ ‡€ƒ<E282AC>“‡Šˆ <20><>Žƒ<C5BD>€ŒŒ› <20>…<EFBFBD>…•Ž„€ ‚ IS-DOS
|
||
TB_WAITES EQU #00 ; WAITë ¤«ï TURBO-MODE
|
||
NTB_WAITES EQU #00 ; WAITë ¤«ï neTURBO-MODE
|
||
IS_WAITES EQU #00 ; WAITë ¤«ï IS-DOS
|
||
;****************************************
|
||
;SYS_PORT_ON EQU #7D
|
||
;SYS_PORT_OFF EQU #3D
|
||
|
||
RAMD_LET EQU ('R' - 'A')
|
||
|
||
|
||
;***************************************
|
||
/*
|
||
;HD_HEADS EQU 5
|
||
HD_CS EQU #A0
|
||
|
||
;HD_S_P_T EQU 17
|
||
;HD_S_X_H EQU (HD_S_P_T * HD_HEADS) ; ??? ç¨á«® ᥪâ®à®¢ 樫¨¤à¥
|
||
|
||
P_DATS EQU #50 ; READ/WRITE INIR/OTIR
|
||
|
||
P_ERR EQU #051 ; READ
|
||
P_PREC EQU #151 ; WRITE
|
||
|
||
P_S_CNT EQU #152
|
||
P_S_NUM EQU #153
|
||
P_C_LOW EQU #154
|
||
P_C_HIG EQU #155 ;<-\
|
||
P_HD_CS EQU #4152 ;<-/
|
||
|
||
P_HDST EQU #4053 ; READ
|
||
P_CMD EQU #4153 ; WRITE
|
||
|
||
P_HD3F6 EQU #4154 ; WRITE 3F6
|
||
P_HD3F7 EQU #4055 ; READ 3F7
|
||
*/
|
||
;***************************************
|
||
ISA_PORT EQU #9FBD
|
||
|
||
;***************************************
|
||
; !FIXIT ¨á¯®«ì§®¢ âì áâàãªâãàã _sBOOT_SEC
|
||
SEC_SIZE EQU 11
|
||
CLAST_SIZE EQU 13
|
||
RESERV_SECS EQU 14
|
||
FATS_NUM EQU 16
|
||
FLS_NUM EQU 17
|
||
S_P_D EQU 19
|
||
FORM_CODE EQU 21
|
||
S_P_F EQU 22
|
||
S_P_T EQU 24
|
||
H_P_S EQU 26
|
||
SPECIAL_SECS EQU 28
|
||
FAT_ID EQU #36
|
||
;***************************************
|
||
|
||
|
||
; ***** - Žª®ë¥ ¯¥à¥¬¥ë¥ - *****
|
||
|
||
WIN_SIZE_H EQU 0 ; £®à¨§®â «ìë© à §¬¥à ¢ § ª®¬¥áâ å
|
||
WIN_SIZE_V EQU 1 ; ¢¥à⨪ «ìë© à §¬¥à ¢ § ª®¬¥áâ å
|
||
WIN_PLACE_H EQU 2 ; ¯®«®¦¥¨¥ ¯® £®à¨§®à «¨, ¢ § ª®¬¥áâ å
|
||
WIN_PLACE_V EQU 3 ; ¯®«®¦¥¨¥ ¯® ¢¥à⨪ «¨ ¢ § ª®¬¥áâ å
|
||
WIN_MODE EQU 4 ; ०¨¬ § ª®¬¥áâ
|
||
WIN_MODE_S EQU 5 ; ¤®¯®«¨â¥«ìë© à¥¦¨¬
|
||
; ¡¨â 0 - Sp-SCR,
|
||
WIN_GR_X EQU 6 ; ¯®«®¦¥¨¥ ¯® X ¢ ¯®«¥ £à 䨪¨ (¯® § ª®¬¥áâ)
|
||
WIN_GR_Y EQU 7 ; ¯®«®¦¥¨¥ ¯® Y ¢ ¯®«¥ £à 䨪¨ (¯® § ª®¬¥áâ)
|
||
|
||
WIN_HL EQU 8 ; á®åà ¥¨¥ HL
|
||
WIN_BC EQU 10 ; á®åà ¥¨¥ BC
|
||
WIN_DE EQU 12 ; á®åà ¥¨¥ DE
|
||
WIN_V_BEG EQU 14 ; ç «® ®ª ¯® ¢¥à⨪ «¨
|
||
WIN_V_END EQU 15 ; ª®¥æ ®ª ¯® ¢¥à⨪ «¨
|
||
WIN_H_BEG EQU 16 ; ç «® ®ª ¯® £®à¨§®â «¨
|
||
WIN_H_END EQU 17 ; ª®¥æ ®ª ¯® £®à¨§®â «¨
|
||
WIN_SIZE_REL EQU 18 ; ॠ«ìë© à §¬¥à ¢ ᨬ¢®« å
|
||
WIN_MODE_E EQU 19 ; ¤®¯®«¨â¥«ìë© à¥¦¨¬ íªà
|
||
WIN_WORK_1 EQU 20 ; à ¡®ç ï ¯¥à¥¬¥ ï 1
|
||
WIN_WORK_2 EQU 21 ; à ¡®ç ï ¯¥à¥¬¥ ï 2
|
||
WIN_GRAF_X EQU 24 ; ç «ì ï ª®®à¤¨ â ¯® X
|
||
WIN_GRAF_Y EQU 26 ; ç «ì ï ª®®à¤¨ â ¯® Y
|
||
|
||
;
|
||
;
|
||
;SW_ROM EQU #3CF9 ;!HARDCODE from zx roms
|
||
|
||
; IF .PROJ4
|
||
;RGADR EQU 0D0H
|
||
;RGSCR EQU 0D1H
|
||
;RGMOD EQU 0D2H
|
||
;RGACC EQU 0D3H
|
||
;PGACC EQU 0FCH
|
||
|
||
;PAGE0 EQU 0C0H
|
||
;PAGE1 EQU 0C5H
|
||
;PAGE2 EQU 0C2H
|
||
;PAGE3 EQU 0C0H
|
||
|
||
; ELSE
|
||
|
||
; ENDIF
|
||
|
||
|
||
;ALTERA EQU #1400 ; ¤à¥á ¢ <20>‡“ ᦠ⮩ áâà ¨æë DCP
|
||
|
||
|
||
;!FIXIT ----------------------------------------------------------------;
|
||
;<EFBFBD>¥à¥¬¥ë¥ ᯥªâàã¬
|
||
ZX_VARS EQU #5C00
|
||
;
|
||
.PR_BUFER EQU #5B00
|
||
.AUTO_5B08 EQU #5B08
|
||
.AUTO_5B5C EQU #5B5C
|
||
.COPY_P128 EQU #5B5C
|
||
.AUTO_5BFF EQU #5BFF
|
||
;
|
||
.K_STATE EQU #5C00
|
||
.KEY_TIME EQU #5C09
|
||
.REP_K_TYME EQU #5C10
|
||
.ZG EQU #5C36
|
||
.ERR_BEEP EQU #5C38
|
||
.KEY_BEEP EQU #5C39
|
||
.ERR_NR EQU #5C3A
|
||
.FLAGS EQU #5C3B
|
||
.TV_FLAG EQU #5C3C
|
||
.ERR_SP EQU #5C3D
|
||
.LIST_SP EQU #5C3F
|
||
.MODE EQU #5C41
|
||
.NEW_PPC EQU #5C42
|
||
.NEW_S_PPC EQU #5C44
|
||
.PPC EQU #5C45
|
||
.SUB_PPC EQU #5C47
|
||
.BORDER EQU #5C48
|
||
.EDIT_PPC EQU #5C49
|
||
.BAS_VARS EQU #5C4B
|
||
.WORK_VAR EQU #5C4D
|
||
.CHANS EQU #5C4F
|
||
.CUR_CHL EQU #5C51
|
||
.BAS_PROG EQU #5C53
|
||
.NEXT_LINE EQU #5C55
|
||
.DATA_ADR EQU #5C57
|
||
.E_LINE EQU #5C59
|
||
.K_CUR EQU #5C5B
|
||
.CH_ADR EQU #5C5D
|
||
.SINT_ER_AD EQU #5C5F
|
||
.WORK_SP EQU #5C61
|
||
.STK_BOT EQU #5C63
|
||
.STK_END EQU #5C65
|
||
.B_REG EQU #5C67
|
||
.MEM_CALC EQU #5C68
|
||
.FLAGS_2 EQU #5C6A
|
||
.L_SCR_SIZE EQU #5C6B
|
||
.AUTO_LST_L EQU #5C6C
|
||
.OLD_PPC EQU #5C6E
|
||
.OLD_S_PPC EQU #5C70
|
||
.FLG_INPUT EQU #5C71
|
||
.S_VAR_LEN EQU #5C72
|
||
.SINT_TB_ADR EQU #5C74
|
||
.RAND_SEED EQU #5C76
|
||
.FRAMES EQU #5C78
|
||
.UDG EQU #5C7B
|
||
.X_Y_COORD EQU #5C7D
|
||
.PRN_POS EQU #5C7F
|
||
.ADR_PR_BUF EQU #5C80
|
||
.ECHO_E EQU #5C82
|
||
.SCR_PL_M EQU #5C84
|
||
.SCR_PL_L EQU #5C86
|
||
.SCR_POS_M EQU #5C88
|
||
.SCR_POS_L EQU #5C8A
|
||
.SCROLL_ST EQU #5C8C
|
||
.ATTR_P EQU #5C8D
|
||
.MASK_P EQU #5C8E
|
||
.ATTR_T EQU #5C8F
|
||
.MASK_E EQU #5C90
|
||
.FLAGS_ATR EQU #5C91
|
||
.MEM_BOT EQU #5C92
|
||
.AUTO_5C9A EQU #5C9A
|
||
.NMI_ADR EQU #5CB0
|
||
.TOP_CLEAR EQU #5CB2
|
||
.P_RAMTOP EQU #5CB4
|
||
.BEG_ADRESS EQU #5CB6
|
||
.RET_INS EQU #5CC2
|
||
.AUTO_5CC3 EQU #5CC3
|
||
.DISK_A EQU #5CC8
|
||
.DISK_B EQU #5CC9
|
||
.DISK_C EQU #5CCA
|
||
.DISK_D EQU #5CCB
|
||
.CAT_SEC EQU #5CCC
|
||
.DRV_READY EQU #5CCD
|
||
.RD_WR_COM EQU #5CCE
|
||
.VAR_1 EQU #5CCF
|
||
.AUTO_5CD1 EQU #5CD1
|
||
.AUTO_5CD2 EQU #5CD2
|
||
.AUTO_5CD3 EQU #5CD3
|
||
.AUTO_5CD5 EQU #5CD5
|
||
.DOS_ERROR EQU #5CD6
|
||
.MED_START EQU #5CD7
|
||
.DOS_CH_ADR EQU #5CD9
|
||
.MED_LEN EQU #5CDB
|
||
.FL_NAME EQU #5CDD
|
||
.FL_N_2 EQU #5CDF
|
||
.FL_N_4 EQU #5CE1
|
||
.FL_N_6 EQU #5CE3
|
||
.FL_N_7 EQU #5CE4
|
||
.FL_TYPE EQU #5CE5
|
||
.FL_START EQU #5CE6
|
||
.FL_LEN EQU #5CE8
|
||
.START_CLASTER EQU .FL_LEN
|
||
.FL_SIZE EQU #5CEA
|
||
.FL_PLACE EQU #5CEB
|
||
.VAR_2 EQU #5CED
|
||
.INTERF_I EQU #5CEF
|
||
.VAR_2_0 EQU #5CF1
|
||
.VAR_2_1 EQU #5CF2
|
||
.CONT_SEC EQU #5CF4
|
||
.CONT_TRK EQU #5CF5
|
||
.OPER_DISK EQU #5CF6
|
||
.DOS_FLAG EQU #5CF7
|
||
.DISK_1_FLG EQU #5CF8
|
||
.DISK_2_FLG EQU #5CF9
|
||
.TIME_A EQU #5CFA
|
||
.TIME_B EQU #5CFB
|
||
.TIME_C EQU #5CFC
|
||
.TIME_D EQU #5CFD
|
||
.COMAND_WG EQU #5CFE
|
||
.SEC_NUM EQU #5CFF
|
||
.CONT_BUF_ADR EQU #5D00
|
||
.WORK_2 EQU #5D02
|
||
.WORK_4 EQU #5D04
|
||
.S_NAME_NUM EQU #5D06
|
||
.N_DEL_FLS EQU #5D07
|
||
.FST_SYM_NAME EQU #5D08
|
||
.VAR_3 EQU #5D09
|
||
.BUF_FLAG EQU #5D0C
|
||
.BAS_DOS_FLG EQU #5D0E
|
||
.DOS_ERR_2 EQU #5D0F
|
||
.ERR_3D00 EQU #5D10
|
||
.ADR_DOS_COM EQU #5D11
|
||
.ERR_SP_COPY EQU #5D13
|
||
.MSG_FLAG EQU #5D15
|
||
.PDOS_COPY EQU #5D16
|
||
.FLAG_BOOT EQU #5D17
|
||
.INT_1_VAR EQU #5D18
|
||
.CONT_DISK EQU #5D19
|
||
.ADR_RET EQU #5D1A
|
||
.DOS_SP EQU #5D1C
|
||
.FL_NUMBER EQU #5D1E
|
||
.COM_LN_COPY EQU #5D20
|
||
.L_5D23 EQU #5D23
|
||
.BUFER EQU #5D25
|
||
.AUTO_5D33 EQU #5D33
|
||
.CLEAR_SEC EQU #5E06
|
||
.CLEAR_TRK EQU #5E07
|
||
.TYPE_DISK EQU #5E08
|
||
.N_FILES EQU #5E09
|
||
.FREE_SEC EQU #5E0A
|
||
.CODE_10H EQU #5E0C
|
||
.DISK_MRK_1 EQU #5E0F
|
||
.DISK_ALT_NM EQU #5E10
|
||
.N_DEL_FL EQU #5E19
|
||
.DISK_NAME EQU #5E1A
|
||
;
|
||
.BUFER_RD EQU #5D25 ; tr-dos buffer
|
||
;-----------------------------------------------------------------------;
|
||
|
||
|
||
MACRO RET_SLOT0
|
||
LD A,0
|
||
OUT (SLOT0),A
|
||
ENDM
|
||
|
||
MACRO RET_SLOT1
|
||
LD A,5
|
||
OUT (SLOT1),A
|
||
ENDM
|
||
|
||
MACRO RET_SLOT2
|
||
LD A,2
|
||
OUT (SLOT2),A
|
||
ENDM
|
||
;
|
||
MACRO RET_SLOT3
|
||
LD A, 0
|
||
OUT (SLOT3), A
|
||
ENDM
|
||
;
|
||
|
||
MACRO CALL_48 adr
|
||
PUSH HL
|
||
LD HL, .ADR_R
|
||
PUSH HL
|
||
LD HL,SW_ROM
|
||
PUSH HL
|
||
LD HL,adr
|
||
JP JP_HL_48
|
||
.ADR_R:
|
||
POP HL
|
||
ENDM
|
||
|
||
MACRO CALL_48X adr
|
||
PUSH HL
|
||
LD HL,.ADR_R
|
||
EX (SP),HL
|
||
PUSH HL
|
||
LD HL,SW_ROM
|
||
EX (SP),HL
|
||
PUSH HL
|
||
LD HL,adr
|
||
EX (SP),HL
|
||
JP SW_ROM
|
||
.ADR_R:
|
||
ENDM
|
||
|
||
MACRO RAMD_KEY
|
||
SUB 4
|
||
DI
|
||
LD B,SYS_PAGE
|
||
LD C,SLOT3
|
||
OUT (C),B
|
||
LD HL,RAMD_KEYS
|
||
ADD A,L
|
||
LD L,A
|
||
DEC L
|
||
LD (A_RAMD_VARS),HL
|
||
INC L
|
||
LD L, (HL)
|
||
RET_SLOT3
|
||
EI
|
||
LD A, L
|
||
ENDM
|
||
|
||
; MACRO DSS adr, dt
|
||
; IF (adr >= $)
|
||
; DUP ((adr - $) / 16)
|
||
; DB dt,dt,dt,dt,dt,dt,dt,dt,dt,dt,dt,dt,dt,dt,dt,dt
|
||
; EDUP
|
||
; DUP (adr - $)
|
||
; DB dt
|
||
; EDUP
|
||
; ELSE
|
||
; ASSERT 0, "Error memory relocation."
|
||
; ENDIF
|
||
; ENDM
|
||
;
|
||
|
||
;
|
||
MODULE Conf_port
|
||
; ¢ãâ२¥ Altera (Sp97)
|
||
;00 - <EFBFBD>¥â ¯®àâ
|
||
;#01 reserved
|
||
;#02 reserved
|
||
;#03 reserved
|
||
;#04 reserved
|
||
;#05 reserved
|
||
;#06 reserved
|
||
;#07 reserved
|
||
;#08 reserved
|
||
;#09 reserved
|
||
;#0A reserved
|
||
;#0B reserved
|
||
;#0C reserved
|
||
;#0D reserved
|
||
;#0E reserved
|
||
;#0F reserved
|
||
VG93_1F EQU #10 ; ¯®àâ ‚ƒ93 (1F)
|
||
VG93_3F EQU #11 ; ¯®àâ ‚ƒ93 (3F)
|
||
VG93_5F EQU #12 ; ¯®àâ ‚ƒ93 (5F)
|
||
VG93_7F EQU #13 ; ¯®àâ ‚ƒ93 (7F)
|
||
VG93_State EQU #14 ; ¯®àâ § ¯¨áì - á®áâ®ï¨¥ ª®â஫«¥à ¤¨áª®¢®¤ (¢¥è¨© ¯®àâ #FF)
|
||
JOY_VG93 EQU #15 ; ¯®àâ ç⥨¥ - ¤¦®©á⨪ ¨ IRQ/INTRQ ª®â஫«¥à ‚ƒ93
|
||
|
||
; <EFBFBD>®àâ FDD 720 ; #00BD - ¯¥à¥ª«î票¥ ¢ 720 - § á« âì 1. ¬®¦® LD A,#01 : OUT (#BD),A. <20> ¡®â ¥â c DOS ON «¨¡® ¢ CNF_3 á DOS OFF
|
||
FDD720 EQU #16
|
||
; <EFBFBD>®àâ FDD 1.44 ; #20BD - ¯¥à¥ª«î票¥ ¢ 1.44 - § á« âì 1. ¬®¦® LD A,#21 : OUT (#BD),A. <20> ¡®â ¥â c DOS ON «¨¡® ¢ CNF_3 á DOS OFF
|
||
FDD144 EQU #17
|
||
|
||
;#18 reserved
|
||
;#19 reserved
|
||
;#1A reserved
|
||
|
||
;#1B - ISA_PORT ; #9FBD
|
||
;#1C - CMOS_DRD ; #FFBD
|
||
;#1D - CMOS_AWR ; #DFBD
|
||
;#1E - CMOS_DWR ; #BFBD
|
||
;#1F reserved
|
||
;#20 - HDD - ॣ¨áâà ¤ ëå ; #0050
|
||
;#21 - HDD - ॣ¨áâà á®áâ®ï¨ï/®è¨¡®ª ; #0051
|
||
;#22 - HDD - ॣ. ª®«-¢ ᥪ-®¢ ¤«ï R/W ; #0052
|
||
;#23 - HDD - ॣ¨áâà ᥪâ®à ; #0053
|
||
;#24 - HDD - ॣ¨áâà ¤®à®¦ª¨-low ; #0054
|
||
;#25 - HDD - ॣ¨áâà ¤®à®¦ª¨-high ; #0055
|
||
;#26 - HDD - ॣ. heads/¢ë¡®à mas-slave ; #4052
|
||
;#27 - HDD - ॣ¨áâà ª®¬ ¤ ; #4053
|
||
IDE_CONTROL_3F6 EQU #28 ; HDD - ¤®¯. ॣ¨áâà ã¯à ¢«¥¨ï 3F6. ¢¥è¨© #4054
|
||
IDE_STATUS_3F7 EQU #29 ; HDD - ¤®¯. ॣ¨áâà á®áâ®ï¨ï 3F7. ¢¥è¨© #4055
|
||
IDE_CHANEL_1 EQU #2A ; HDD - ¢ë¡¨à ¥â Secondary IDE, ¢¥è¨© #BC
|
||
IDE_CHANEL_2 EQU #2B ; HDD - ¢ë¡¨à ¥â Primary IDE, ¢¥è¨© #BC
|
||
VSYNC320 EQU #2C ; #40BD
|
||
VSYNC312 EQU #2D ; #60BD
|
||
RESET EQU #2E ; S_RESET - #40A4 - Reset port
|
||
UNKNOWN EQU #2F ; ????? ; #60BC - çâ®-â® § ¯¨áì
|
||
;#30 - ????? ISA-SLOT 1 - ports R/W
|
||
;#31 - ????? ISA-SLOT 2 - ports R/W
|
||
ISA_Control EQU #32 ; ISA-signals such as RESET, AEN, A19...A14. ‚¥è¨© #9FBD
|
||
;#33 - ????? ISA-SLOT 2 - memory R/W
|
||
;#34 reserved
|
||
;#35 reserved
|
||
;#36 reserved
|
||
;#37 reserved
|
||
;#38 reserved
|
||
;#39 reserved
|
||
;#3A reserved
|
||
;#3B reserved
|
||
;#3C reserved
|
||
;#3D reserved
|
||
;#3E reserved
|
||
;#3F reserved
|
||
ZX_Keyboard EQU #40 ; ZX-Keyboard (¯®àâ FE)
|
||
;#41 reserved
|
||
;#42 reserved
|
||
;#43 reserved
|
||
;#44 reserved
|
||
;#45 reserved
|
||
;#46 reserved
|
||
;#47 reserved
|
||
;#48 reserved
|
||
;#49 reserved
|
||
;#4A reserved
|
||
;#4B reserved
|
||
;#4C reserved
|
||
;#4D reserved
|
||
;#4E reserved
|
||
;#4F reserved
|
||
;#50 reserved
|
||
;#51 reserved
|
||
AY_FFFD_READ EQU #52 ; AY-8910-port (FFFD) ç⥨¥ ¤ ëå; ?????
|
||
;#53 reserved
|
||
;#54 reserved
|
||
;#55 reserved
|
||
;#56 reserved
|
||
;#57 reserved
|
||
Kempston_Mouse EQU #58
|
||
;#59 reserved
|
||
;#5A reserved
|
||
;#5B reserved
|
||
;#5C reserved
|
||
;#5D reserved
|
||
;#5E reserved
|
||
;#5F reserved
|
||
;#60 reserved
|
||
;#61 reserved
|
||
;#62 reserved
|
||
;#63 reserved
|
||
;#64 reserved
|
||
;#65 reserved
|
||
;#66 reserved
|
||
;#67 reserved
|
||
;#68 reserved
|
||
;#69 reserved
|
||
;#6A reserved
|
||
;#6B reserved
|
||
;#6C reserved
|
||
;#6D reserved
|
||
;#6E reserved
|
||
;#6F reserved
|
||
;#70 reserved
|
||
;#71 reserved
|
||
;#72 reserved
|
||
;#73 reserved
|
||
;#74 reserved
|
||
;#75 reserved
|
||
;#76 reserved
|
||
;#77 reserved
|
||
;#78 reserved
|
||
;#79 reserved
|
||
;#7A reserved
|
||
;#7B reserved
|
||
;#7C reserved
|
||
;#7D reserved
|
||
;#7E reserved
|
||
;#7F reserved
|
||
;#80 reserved
|
||
;#81 reserved
|
||
;#82 reserved
|
||
;#83 reserved
|
||
;#84 reserved
|
||
;#85 reserved
|
||
;#86 reserved
|
||
;#87 reserved
|
||
CBL_OUT EQU #88 ; Write to COVOX/COVOX-Blaster
|
||
CBL_SYS_PORT EQU #89 ; CBL_DIR
|
||
;#8A reserved
|
||
;#8B reserved
|
||
;#8C reserved
|
||
;#8D reserved
|
||
;#8E reserved
|
||
ROM_RG EQU #8F ; !FIXIT ¯®àâ ¯¥à¥ª«î票ï áâà ¨æ ROM ¨ FastRam, ¤ã¡«¨àã¥âáï ¢¥è¨¬ ¯®à⮬ #5C
|
||
AY_FFFD_WRITE EQU #90 ; AY-8910-port (FFFD) ;!!!!! § ¯¨áì ¤à¥á ??????
|
||
AY_BFFD EQU #91 ; AY-8910-port (BFFD)
|
||
;#92 reserved
|
||
;#93 reserved
|
||
;#94 reserved
|
||
;#95 reserved
|
||
;#96 reserved
|
||
;#97 reserved
|
||
;#98 reserved
|
||
;#99 reserved
|
||
;#9A reserved
|
||
;#9B reserved
|
||
;#9C reserved
|
||
;#9D reserved
|
||
;#9E reserved
|
||
;#9F reserved
|
||
;#A0 reserved
|
||
;#A1 reserved
|
||
;#A2 reserved
|
||
;#A3 reserved
|
||
;#A4 reserved
|
||
;#A5 reserved
|
||
;#A6 reserved
|
||
;#A7 reserved
|
||
;#A8 reserved
|
||
;#A9 reserved
|
||
;#AA reserved
|
||
;#AB reserved
|
||
;#AC reserved
|
||
;#AD reserved
|
||
;#AE reserved
|
||
;#AF reserved
|
||
;#B0 reserved
|
||
;#B1 reserved
|
||
;#B2 reserved
|
||
;#B3 reserved
|
||
;#B4 reserved
|
||
;#B5 reserved
|
||
;#B6 reserved
|
||
;#B7 reserved
|
||
;#B8 reserved
|
||
;#B9 reserved
|
||
;#BA reserved
|
||
;#BB reserved
|
||
;#BC reserved
|
||
;#BD reserved
|
||
;#BE reserved
|
||
;#BF reserved
|
||
Scorp_1FFD EQU #C0
|
||
Pent_7FFD EQU #C1
|
||
Border_FE EQU #C2 ; #FE, write only
|
||
ALL_MODE EQU #C3 ; ‚¥è¨© - #204E
|
||
PORT_Y EQU #C4 ; #89
|
||
RGMOD EQU #C5 ; #C9
|
||
CNF_PORT EQU #C6 ; #3C / #7C, #24 / #74
|
||
SCALE EQU #C7 ;PGACC - SCALE_PORT (#FC)
|
||
;#C8 - ª®¯¨ï C0 ¨«¨ C2??? (not used!)
|
||
;#C9 - ª®¯¨ï C1 (not used!)
|
||
;#CA - ª®¯¨ï C2 (not used!)
|
||
HOLD EQU #CB ; ‡ ¤ ñâ § 票ï áçñâ稪®¢ á¨åந§ â®à á¨åந¬¯ã«ìᮢ. €ªâ¨¢¨àã¥âáï ¢ â㤥à¥, ¯¨è¥âáï ¢ ¥£® #95. xxxx yyyy - ¯®§¨æ¨ï íªà
|
||
;#CC - ª®¯¨ï C4 (not used!)
|
||
;#CD - ª®¯¨ï C5 (not used!)
|
||
;#CE - ª®¯¨ï C6 (not used!)
|
||
;#CF - ª®¯¨ï C7 (not used!)
|
||
|
||
;#D0 - vRAM page for 512 kb (®ª® C000-FFFF)
|
||
;#D1 - vRAM page for 512 kb (®ª® C000-FFFF)
|
||
;#D2 - vRAM page for 512 kb (®ª® C000-FFFF)
|
||
;#D3 - vRAM page for 512 kb (®ª® C000-FFFF)
|
||
;#D4 - vRAM page for 512 kb (®ª® C000-FFFF)
|
||
;#D5 - vRAM page for 512 kb (®ª® C000-FFFF)
|
||
;#D6 - vRAM page for 512 kb (®ª® C000-FFFF)
|
||
;#D7 - vRAM page for 512 kb (®ª® C000-FFFF)
|
||
;#D8 - vRAM page for 512 kb (®ª® C000-FFFF)
|
||
;#D9 - vRAM page for 512 kb (®ª® C000-FFFF)
|
||
;#DA - vRAM page for 512 kb (®ª® C000-FFFF)
|
||
;#DB - vRAM page for 512 kb (®ª® C000-FFFF)
|
||
;#DC - vRAM page for 512 kb (®ª® C000-FFFF)
|
||
;#DD - vRAM page for 512 kb (®ª® C000-FFFF)
|
||
;#DE - vRAM page for 512 kb (®ª® C000-FFFF)
|
||
;#DF - vRAM page for 512 kb (®ª® C000-FFFF)
|
||
|
||
;#E0 - vROM page EXPANSION ; Port #1FFD bit2=1 (#24 bit6=0, bit0=0)
|
||
;#E1 - vROM page TR-DOS ; PC = #3D00..#3DFF and #1FFD bit2=0 (#24 bit0=0)
|
||
;#E2 - vROM page BASIC-128 ; #7FFD bit4=0 and #1FFD bit1=0 (#24 bit0=0)
|
||
;#E3 - vROM page BASIC-48 ; #7FFD bit4=1 and #1FFD bit1=0 (#24 bit0=0)
|
||
|
||
;#E4 - vROM page EXPANSION 2 ; Port #1FFD bit2=1 (#24 bit6=0, bit0=1)
|
||
;#E5 - vROM page TR-DOS 2 ; PC = #3D00..#3DFF and #1FFD bit2=0 (#24 bit0=1)
|
||
;#E6 - vROM page BASIC-128 2 ; #7FFD bit4=0 and #1FFD bit1=0 (#24 bit0=1)
|
||
;#E7 - vROM page BASIC-48 2 ; #7FFD bit4=1 and #1FFD bit1=0 (#24 bit0=1)
|
||
|
||
;#E8 - vRAM page (®ª® 0000-3FFF)
|
||
;#E9 - vRAM page (®ª® 4000-7FFF)
|
||
;#EA - vRAM page (®ª® 8000-BFFF)
|
||
|
||
;#EB - vROM page BIOS-1 ; Port #74 = 0
|
||
|
||
;#EC - vRAM page CASHE ; ?????
|
||
|
||
;#ED reserved ; ?????
|
||
|
||
RET_PORT EQU #EE ; Page set after Soft RESET. ‹î¡®¥, ªà®¬¥ 0, § 票¥ - áâà ¨æ ªã¤ ¯¥à¥¤ áâáï ã¯à ¢«¥¨¥ ¯®á«¥ Soft reset
|
||
|
||
;#EF - vROM page BIOS-2 ; Port #74 = 1
|
||
|
||
; “áâ ®¢ª ¢ ª ª®© «¨¡® ¯®àâ § ç¥¨ï ®â F0h ¤® FFh ¯à¨¢¥¤¥â ª ®¤®¬ã ¨ ⮬㠦¥ १ã«ìâ âã, çâ® ¨ ¯à®áâ® ãáâ ®¢ª ¢ íâ®â ¯®àâ § 票ï F0h. ‚ á奬¥ ᤥ«
|
||
; ¯¥à¥ ¤à¥á æ¨ï ®¬¥à ¯®àâ â ª, çâ® ¯à¨ § 票¨ FXh ®¬¥à ¯®àâ ¡¥à¥âáï ª ª F0h+SpectrumPAGE, £¤¥
|
||
; SpectrumPAGE - ®¬¥à ᯥªâà㬮¢áª®© áâà ¨æë, ¤à¥á㥬®© ¯® ¯®àâ ¬ 7FFD ¨ 1FFD. ’ ª¨¬ ®¡à §®¬
|
||
; ¤®á⨣ ¥âáï ᮢ¬¥á⨬®áâì á <EFBFBD>¥â £®®¬ ¨ ‘ª®à¯¨®®¬ ¯® à á¯à¥¤¥«¥¨î ¯ ¬ï⨠¨ ¤¥« ¥âáï ¢®§¬®¦ë¬
|
||
; ãáâ ®¢ª «î¡®£® ®¬¥à áâà ¨æë á¯à¨â¥à®¢áª®© ¯ ¬ï⨠¤«ï «î¡®© áâà ¨æë ‘¯¥ªâà㬠.
|
||
;
|
||
;F0h - RAM page for 128/256 kb (®ª® C000-FFFF)
|
||
;F1h - RAM page for 128/256 kb (®ª® C000-FFFF)
|
||
;F2h - RAM page for 128/256 kb (®ª® C000-FFFF)
|
||
;F3h - RAM page for 128/256 kb (®ª® C000-FFFF)
|
||
;F4h - RAM page for 128/256 kb (®ª® C000-FFFF)
|
||
;F5h - RAM page for 128/256 kb (®ª® C000-FFFF)
|
||
;F6h - RAM page for 128/256 kb (®ª® C000-FFFF)
|
||
;F7h - RAM page for 128/256 kb (®ª® C000-FFFF)
|
||
;F8h - RAM page for 256 kb (®ª® C000-FFFF)
|
||
;F9h - RAM page for 256 kb (®ª® C000-FFFF)
|
||
;FAh - RAM page for 256 kb (®ª® C000-FFFF)
|
||
;FBh - RAM page for 256 kb (®ª® C000-FFFF)
|
||
;FCh - RAM page for 256 kb (®ª® C000-FFFF)
|
||
;FDh - RAM page for 256 kb (®ª® C000-FFFF)
|
||
;FEh - RAM page for 256 kb (®ª® C000-FFFF)
|
||
;FFh - RAM page for 256 kb (®ª® C000-FFFF)
|
||
|
||
ENDMODULE
|
||
;
|
||
; ‘ à á¯à¥¤¥«¥¨¥¬ ¯ ¬ï⨠á¨âã æ¨ï â ª ï. <EFBFBD>®àâë áâà ¨æ - ¯¥à¥ª«îç îâ ¤à¥á
|
||
; "¢¨àâã «ìëå" áâà ¨æ ᪮௨® ¥§ ¢¨á¨¬® ®â ⮣®, çâ® ¢ íâ®â ¬®¬¥â
|
||
; ¯®¤ª«î祮 ¢ ã«¥¢ãî ¡ ªã. ‘ âà¥â쥩 ¡ ª®© ®¡®à®â - § ¯¨áì ¢ ¯®àâ
|
||
; áâà ¨æë ¬¥ï¥â ¤à¥á ⮩ áâà ¨æë, ª ª ï ãáâ ®¢«¥ ¯®àâ ¬¨ 7FFD,1FFD,
|
||
; â.¥. § ¯¨á ¢ çâ®-â® ¢ ¯®àâ PAGE3 㦮 ¯®¬¨âì, ª ª ï áâà ¨æ áâ®ï« á
|
||
; ¤à¥á #C000. <20> ¯à¨¬¥à, ¥á«¨ ã«¥¢ ï, â® ¯®¬¥ï¥âáï áâà ¨æ ¨ ¢ ¤à¥á¥
|
||
; #0000, ¥á«¨ â ¬ ¡ë«® ãáâ ®¢«¥® އ“.
|
||
;
|
||
/*
|
||
¢ãâ२¥ ¯®àâë Z84C15:
|
||
#10
|
||
#11
|
||
#12
|
||
#13
|
||
#14
|
||
#15
|
||
#16
|
||
#17
|
||
#18
|
||
#19
|
||
#1A
|
||
#1B
|
||
#1C
|
||
#1D
|
||
#1E
|
||
#1F
|
||
#EE
|
||
#EF
|
||
#F0
|
||
#F1
|
||
#F4
|
||
*/
|
||
;=======================================
|
||
|
||
;===============[ CMOS ]================ ; !TODO
|
||
|
||
;REGISTER #0E
|
||
; %10000000 - MEMORY TEST
|
||
; %01000000 - SAVE RAM DISKS
|
||
; %00100000 - UPDATE BIOS
|
||
; %00011000 - START DELAY
|
||
; %00000100 - LANGUAGE
|
||
; %00000010 - NOT USED ;!TODO
|
||
; %00000001 - QUICK START
|
||
|
||
;REGISTER #0F
|
||
; %10000000 - TYPEMATIC ON/OFF
|
||
; %01100000 - TYPEMATIC DELAY 00-250, 01-500, 10-750, 11-1000
|
||
; %00011111 - TYPEMATIC RATE 0-6, 1-8, 2-10, 3-12, 4-15, 5-20, 6-24, 7-30
|
||
|
||
;REGISTER #10
|
||
; %00000111 - SYSTEM DISK
|
||
; 1st FDD
|
||
; 2nd FDD
|
||
; 1st IDE
|
||
; 2nd IDE
|
||
; 3rd IDE
|
||
; 4th IDE
|
||
; Ram Dsk
|
||
; Recovery
|
||
; %01110000 - ALT SYSTEM DISK
|
||
|
||
;REGISTER #11
|
||
; %00000011 - FDD FIRST 720 / 1.44 / NONE
|
||
; %00001100 - FDD SECOND
|
||
; %00110000 - IDE Primary MASTER AUTO / SETUP / DISABLED
|
||
; %11000000 - IDE Primary SLAVE -----//------
|
||
|
||
;------------[HDD PRIMARY]-------------
|
||
;REGISTER #12 - CYLINDERS (MASTER) L
|
||
;REGISTER #13 - -----//------ H
|
||
;REGISTER #14 - HEADS (MASTER)
|
||
;REGISTER #15 - SECTORS (MASTER)
|
||
;
|
||
;REGISTER #16 - CYLINDERS (SLAVE) L
|
||
;REGISTER #17 - -----//------ H
|
||
;REGISTER #18 - HEADS (SLAVE)
|
||
;REGISTER #19 - SECTORS (SLAVE)
|
||
;---------------------------------------
|
||
;REGISTER #1A
|
||
; %00001111 - COLOR STYLE
|
||
; %00110000 - Frame Int (Default/Pentagon/Scorpion/Original)
|
||
; %11000000 - Screen V-Sinc (Default/312 lines 50 HZ/320 Lines 49 Hz)
|
||
|
||
;!FIXIT <EFBFBD>… ˆ‘<EFBFBD>Ž‹œ‡“…’‘Ÿ
|
||
;REGISTER #1B - HARDWARE CONFIGURATION
|
||
; %00000001 - TURBO MODE (D0..D3 - 6 OR 7)
|
||
; %00000010 - TURBO EXCHANGE ON/OFF - 1
|
||
; %00000100 - PORT EXCHANGE ON/OFF - 1
|
||
; %00011000 - COMPUTER:
|
||
; 0-SPRINTER
|
||
; 1-SPECTRUM 256
|
||
; 2-PENTAGON 128
|
||
; 3-OTHER
|
||
; %11100000 - RESERVED ;!TODO
|
||
;!FIXIT <EFBFBD>… ˆ‘<EFBFBD>Ž‹œ‡“…’‘Ÿ
|
||
;REGISTER #1C - RESET MODE
|
||
; 0-RESET 128 Basic
|
||
; 1-RESET 48 Basic & 128 mem
|
||
; 2-RESET TR-DOS & 128 mem
|
||
; 3-RESET EXPANSION (Disabled)
|
||
; 4-RESET TR-DOS & 48 mem
|
||
; 5-RESET 48 Basic
|
||
|
||
;REGISTER #1D
|
||
; %00000010 - Reboot message
|
||
; %00000001 - HDD Write protect
|
||
|
||
;REGISTER #1E
|
||
; %00000011 - TR DOS A: Default / FDD / HDD / RMD
|
||
; %00001100 - TR DOS B: Default / FDD / HDD / RMD
|
||
; %00110000 - TR DOS C: Default / FDD / HDD / RMD
|
||
; %11000000 - TR DOS D: Default / FDD / HDD / RMD
|
||
|
||
;REGISTER #1F ;R06
|
||
; %11110000 - X-Screen position
|
||
; %00001111 - Y-Screen position
|
||
|
||
;REGISTER #20
|
||
; %00110000 - IDE Secondary MASTER AUTO / SETUP / DISABLED
|
||
; %11000000 - IDE Secondary SLAVE -----//------
|
||
; .
|
||
; .
|
||
;REGISTER#35 - BASIC SETTING 1 (SYS_PAGE.CONFIG_DE+1 = #C13B on PAGE #FE)
|
||
; 0 - RESET TO BASIC 128
|
||
; 1 - RESET TO BASIC 48 (RAM128)
|
||
; 2 - RESET TO TRDOS
|
||
; 3 - RESET TO EXPANSION (DON'T USE)
|
||
; 4 - RESET TO 48 TRDOS
|
||
; 5 - RESET TO 48 BASIC (RAM48)
|
||
|
||
;REGISTER#36 - BASIC SETTING 2 ; áâ àë¥ § ç¥¨ï ¥¨§¢¥áâë
|
||
; %0000 0111
|
||
; ®¢ë¥ § 票ï:
|
||
; 0 - ZX-Sprinter
|
||
; 1 - Pentagon 48
|
||
; 2 - Pentagon 128
|
||
; 3 - Pentagon 512
|
||
; 4 - Scorpion 256
|
||
; 5 - ZX Spectrum 48
|
||
; 6 - ZX Spectrum 128
|
||
|
||
|
||
;-----------[HDD SECONDARY]------------
|
||
;REGISTER #37 - CYLINDERS (MASTER)
|
||
;REGISTER #38 - -----//------
|
||
;REGISTER #39 - HEADS (MASTER)
|
||
;REGISTER #3A - SECTORS (MASTER)
|
||
;
|
||
;REGISTER #3B - CYLINDERS (SLAVE)
|
||
;REGISTER #3‘ - -----//------
|
||
;REGISTER #3D - HEADS (SLAVE)
|
||
;REGISTER #3E - SECTORS (SLAVE)
|
||
;---------------------------------------
|
||
|
||
;REGISTER #3F - CHECKSUM SETTING
|
||
;=======================================
|
||
|
||
;
|
||
;-------------------------------[ TEST ]--------------------------------
|
||
MODULE IDE
|
||
;
|
||
; 0 - ª®¯¨ï DRV_HEAD
|
||
; 1 - ᥪâ®à®¢ ¤®à®¦ª¥
|
||
; 2 - ç¨á«® £®«®¢®ª
|
||
; 3 - ª®«¨ç¥á⢮ 樫¨¤à®¢ ¬«.
|
||
; 4 - ª®«¨ç¥á⢮ 樫¨¤à®¢ áâ à訩.
|
||
; 5 - ᥪâ®à®¢ 樫¨¤à ¬«.
|
||
; 6 - ᥪâ®à®¢ 樫¨¤à áâ àè.
|
||
; 7 - reserv - type
|
||
STRUCT HDD_INIT_TABLE
|
||
Chanel BYTE ; 0 DRVHD_H
|
||
SectorsPerTrack BYTE ; 1 SC_PT_H
|
||
HeadsNumber BYTE ; 2 HEADS_H
|
||
CylinderNumberLow BYTE ; 3 CYL_L_H
|
||
CylinderNumberHigh BYTE ; 4 CYL_H_H
|
||
SectorsPerCylinderLow BYTE ; 5 SPCLL_H
|
||
SectorsPerCylinderHigh BYTE ; 6 SPCLH_H
|
||
DriveType BYTE ; 7 DTYPE_H
|
||
ENDS
|
||
;
|
||
|
||
INIT_TBL_IDE0 HDD_INIT_TABLE = SYS_PAGE.IDE_0 ; !HARDCODE table in SYS_PAGE
|
||
INIT_TBL_IDE1 HDD_INIT_TABLE = SYS_PAGE.IDE_1 ; !HARDCODE table in SYS_PAGE
|
||
INIT_TBL_IDE2 HDD_INIT_TABLE = SYS_PAGE.IDE_2 ; !HARDCODE table in SYS_PAGE
|
||
INIT_TBL_IDE3 HDD_INIT_TABLE = SYS_PAGE.IDE_3 ; !HARDCODE table in SYS_PAGE
|
||
|
||
Write:
|
||
.DriveCtrl EQU #4152 ; HDW_DRV P_HD_CS ; #1F6 Drive Control
|
||
.Command EQU #4153 ; HDW_COM P_CMD ; #1F7 Command
|
||
.Data EQU #0150 ; HDW_DAT W170 ; #1F0 Data
|
||
.Error EQU #0151 ; HDW_ERR W171 ; #1F1 Error
|
||
.Counter EQU #0152 ; HDW_CNT P_S_CNT W172 ; #1F2 Counter
|
||
.Sector EQU #0153 ; HDW_SEC P_S_NUM W173 ; #1F3 Sector
|
||
.CylinderLow EQU #0154 ; HDW_CLL P_C_LOW W174 ; #1F4 Cylinder Low
|
||
.CylinderHigh EQU #0155 ; HDW_CLH P_C_HIG W175 ; #1F5 Cylinder High
|
||
|
||
Read:
|
||
.Control EQU #4052 ; HDR_DRV R176 ; #1F6 Drive Control
|
||
.Status EQU #4053 ; HDR_CTL P_HDST R177 ; #1F7 Status (Control)
|
||
.Data EQU #0050 ; HDR_DAT P_DATS R170 ; #1F0 Data
|
||
.Error EQU #0051 ; HDR_ERR P_ERR R171 ; #1F1 Error
|
||
.Counter EQU #0052 ; HDR_CNT R172 ; #1F2 Counter
|
||
.Sector EQU #0053 ; HDR_SEC R173 ; #1F3 Sector
|
||
.CylinderLow EQU #0054 ; HDR_CLL R174 ; #1F4 Cylinder Low
|
||
.CylinderHigh EQU #0055 ; HDR_CLH R175 ; #1F5 Cylinder High
|
||
|
||
ControlBit: ; Bits for HardDrive.Read.Status
|
||
.Busy EQU 7 ; BSY
|
||
.Ready EQU 6 ; RDY
|
||
.Fault EQU 5
|
||
.StreamErrror EQU .Fault
|
||
.DeferredWriteError EQU 4
|
||
.DataRequest EQU 3 ; DRQ
|
||
.AlignmentError EQU 2
|
||
.SenseDataAvailable EQU 1
|
||
.Error EQU 0 ; ERR
|
||
.CheckCondition EQU .Error
|
||
|
||
Chanel:
|
||
.Set_0: EQU #00BC ; ¤«ï ¨á¯®«ì§®¢ ¨ï á ¯®«®© ¤à¥á 樥© (ॣ BC), § á« âì '1'
|
||
.Set_1: EQU #20BC ; ¤«ï ¨á¯®«ì§®¢ ¨ï á ¯®«®© ¤à¥á 樥© (ॣ BC), § á« âì '1'
|
||
.Choose: EQU #BC ; ¤«ï ¨á¯®«ì§®¢ ¨ï á ¥¯®«®© ¤à¥á 樥© out (#bc),a. § á« âì '1'
|
||
Device:
|
||
.HDD EQU 1
|
||
.CDROM EQU 2
|
||
|
||
ENDMODULE
|
||
;-----------------------------------------------------------------------
|
||
|
||
;
|
||
/*
|
||
KBD_COM EQU #1B
|
||
KBD_DAT EQU #1A
|
||
COM_B EQU #1B
|
||
DAT_B EQU #1A
|
||
|
||
COM_A EQU #19
|
||
DAT_A EQU #18
|
||
|
||
LPT1_D EQU #1C
|
||
LPT1_C EQU #1D
|
||
LPT2_D EQU #1E
|
||
LPT2_C EQU #1F
|
||
|
||
STC0_C EQU #10
|
||
STC1_C EQU #11
|
||
STC2_C EQU #12
|
||
STC3_C EQU #13
|
||
*/
|
||
; !TODO ¯à¨¤ã¬ âì ª ª ®¡®§¢ âì, ç⮡ ¡ë«® ¯®ïâ® ª®£¤ ¯¨èãâ ¤«ï ¬ë誨, ª®£¤ ¤«ï ª« ¢ë ¨ â.¤.
|
||
MODULE Z84
|
||
;-------------------[Ports]
|
||
CTC:
|
||
.Ch_0 EQU #10 ; Control Register
|
||
.Ch_1 EQU #11 ; Control Register
|
||
.Ch_2 EQU #12 ; Control Register
|
||
.Ch_3 EQU #13 ; Control Register
|
||
|
||
SIO:
|
||
.Ch_A.Data EQU #18 ; Data register COM
|
||
.Ch_A.Ctrl EQU #19 ; Control register COM
|
||
.Ch_B.Data EQU #1A ; Data register keyboard & mouse
|
||
.Ch_B.Ctrl EQU #1B ; Control register keyboard & mouse
|
||
|
||
|
||
PIO:
|
||
.Port_A.Data EQU #1C ; Data register LPT 1
|
||
.Port_A.Command EQU #1D ; Command register LPT 1
|
||
.Port_B.Data EQU #1E ; Data register LPT 2
|
||
.Port_B.Command EQU #1F ; Command register LPT 2
|
||
|
||
WDT: ; Watch-Dog timer
|
||
.Master_Reg EQU #F0 ; Master register WDTMR
|
||
.Control_Reg EQU #F1 ; Control register WDTCR
|
||
|
||
IntPrior_Reg EQU #F4 ; Interrupt Priority Register
|
||
|
||
SYS:
|
||
.Control EQU #EE ; System Control Register Pointer SCRP
|
||
.Data EQU #EF ; System Control Data Port SCDP
|
||
;------------------------[]
|
||
|
||
;-------------------[Regs ]
|
||
REG:
|
||
.WaitState_Ctrl EQU 00 ; Wait state control register WCR
|
||
.WaitState_MemBound EQU 01 ; Memory Wait state Boundary Register MWBR
|
||
.CS_Boundary EQU 02 ; Chip Select Boundary Register CSBR
|
||
.Misc_Ctrl EQU 03 ; Misc.Control Register MCR
|
||
;------------------------[]
|
||
ENDMODULE
|
||
;
|
||
|
||
;INIT_TIMER:
|
||
; LD A,#D5 ; 7-© ¡¨â à §à¥è¥¨¥ ¯à¥àë¢ ¨ï
|
||
; OUT (#12),A
|
||
; LD A,20
|
||
; OUT (C),A
|
||
; LD A,#55 ; 7-© ¡¨â à §à¥è¥¨¥ ¯à¥àë¢ ¨ï
|
||
; OUT (#13),A
|
||
; LD A,0
|
||
; OUT (C),A
|
||
; LD A,0 ; ¢¥ªâ®à ¯à¥àë¢ ¨ï
|
||
; OUT (#10),A
|
||
|
||
; LD A,TABLE/256
|
||
; LD I,A
|
||
; IM 2
|
||
|
||
;Disable:
|
||
; DI
|
||
; LD BC,#12 ; 2-nd timer
|
||
; LD A,#55 ; 7-© ¡¨â à §à¥è¥¨¥ ¯à¥àë¢ ¨ï
|
||
; OUT (C),A
|
||
; IM 1
|
||
; EI
|
||
; RET
|
||
|
||
|
||
; TRDOS
|
||
; REDIR_3D13:
|
||
; BIT 7,C
|
||
; JP NZ,EXP_FNS ;#3FF8 EXP
|
||
; BIT 6,C
|
||
; JP Z,AUTO_283C
|
||
; RES 6,C
|
||
; JP HD_CMD ;#3FF0 ROM. DI
|
||
|
||
;_______________________________________________________________________________________________#
|
||
;
|
||
; DW #FEFF ; Sprinter-2000
|
||
;
|
||
; DW 0FFFEH ; Sprinter-1
|
||
; DB 0 ; ªá¥«¥à â®à
|
||
; DB 1 ; íªà
|
||
; DB 2 ; ª« ¢¨ âãà
|
||
; DB 1 ; ª®¢®ªá;
|
||
;
|
||
; DW 0FFFDH
|
||
; DB 2 ; ªá¥«¥à â®à
|
||
; DB 1 ; íªà
|
||
; DB 0 ; ª« ¢¨ âãà
|
||
; DB 1 ; ª®¢®ªá;
|
||
;
|
||
; DW 0FFFCH ; AY
|
||
; DB 0 ; ccselerator
|
||
; DB 0 ; Screen
|
||
; DB 2 ; ª« ¢¨ âãà
|
||
; DB 0 ; ª®¢®ªá;
|
||
;
|
||
; DW 0FFF9H ; ¨¤¥â¨ä¨ª â®à ª®ä¨£ãà æ¨¨ DooM
|
||
; DB 3 ; accelerator type
|
||
; DB 1 ; íªà
|
||
; DB 0 ; ª« ¢¨ âãà
|
||
; DB 2 ; ª®¢®ªá (¡« áâ¥à)
|
||
;
|
||
|
||
;ELCOM256 EQU 1 ; ०¨¬ ELCOM-256
|
||
;IF ELCOM256 EQ 1
|
||
;ELSE
|
||
;D_TBON EQU 03h ; ¤ ë¥ ¤«ï ¢ª«î票ï TURBO
|
||
;D_TBOFF EQU 02h ; ¤ ë¥ ¤«ï ¢ª«î票ï TURBO
|
||
;D_ROM16ON EQU 40h
|
||
;D_ROM16OFF EQU 00h
|
||
;CNF_0 EQU 04h
|
||
;CNF_1 EQU 0Ch
|
||
;CNF_2 EQU 14h
|
||
;CNF_3 EQU 1Ch
|
||
;ENDIF
|
||
|
||
;TTTT_EEEE EQU 100
|
||
|
||
|
||
;R170 EQU #0050 ;Data
|
||
;R171 EQU #0051 ;Error
|
||
;R172 EQU #0052 ;Direct
|
||
;R173 EQU #0053 ;Reserve
|
||
;R174 EQU #0054 ;Lenght block low
|
||
;R175 EQU #0055 ;Lenght block high
|
||
;R176 EQU #4052 ;Drive device
|
||
;R177 EQU #4053 ;Status
|
||
;W170 EQU #0150 ;Data
|
||
;W171 EQU #0151 ;????
|
||
;W172 EQU #0152 ;????
|
||
;W173 EQU #0153 ;Reserve
|
||
;W174 EQU #0154 ;Lenght block low
|
||
;W175 EQU #0155 ;Lenght block high
|
||
;W176 EQU #4152 ;Drive device
|
||
;W177 EQU #4153 ;Command
|
||
;HDW_COM EQU #4153 ; #1F7 Command
|
||
;P_CMD EQU #4153 ; WRITE
|
||
;HDW_DRV EQU #4152 ; #1F6 Drive Control
|
||
;P_HD_CS EQU #4152
|
||
;HDW_CLH EQU #0155 ; #1F5 Cylinder High
|
||
;P_C_HIG EQU #0155
|
||
;HDW_CLL EQU #0154 ; #1F4 Cylinder Low
|
||
;P_C_LOW EQU #154
|
||
;HDW_SEC EQU #0153 ; #1F3 Sector
|
||
;P_S_NUM EQU #0153
|
||
;HDW_CNT EQU #0152 ; #1F2 Counter
|
||
;P_S_CNT EQU #152
|
||
;HDW_ERR EQU #0151 ; #1F1 Error
|
||
;HDW_DAT EQU #0150 ; #1F0 Data
|
||
;HDR_CTL EQU #4053 ; #1F7 Status (Control)
|
||
;P_HDST EQU #4053 ; READ
|
||
;HDR_DRV EQU #4052 ; #1F6 Drive Control
|
||
;HDR_CLH EQU #0055 ; #1F5 Cylinder High
|
||
;HDR_CLL EQU #0054 ; #1F4 Cylinder Low
|
||
;HDR_SEC EQU #0053 ; #1F3 Sector
|
||
;HDR_CNT EQU #0052 ; #1F2 Counter
|
||
;HDR_ERR EQU #0051 ; #1F1 Error
|
||
;P_ERR EQU #051 ; READ
|
||
;HDR_DAT EQU #0050 ; #1F0 Data
|
||
;P_DATS EQU #50 ; READ/WRITE INIR/OTIR
|
||
|
||
;;Bits for HDR_CTL
|
||
;;---[]
|
||
;BSY EQU 7
|
||
;RDY EQU 6
|
||
;DRQ EQU 3
|
||
;ERR EQU 0
|
||
;;---[]
|
||
;HDD EQU 1
|
||
;CDROM EQU 2
|
||
;;EQU FOR IY+
|
||
;DRVHD_H EQU 0
|
||
;SC_PT_H EQU 1
|
||
;HEADS_H EQU 2
|
||
;CYL_L_H EQU 3
|
||
;CYL_H_H EQU 4
|
||
;SPCLL_H EQU 5
|
||
;SPCLH_H EQU 6
|
||
;DTYPE_H EQU 7
|
||
|
||
;IDE0 EQU #C1C0
|
||
;IDE1 EQU #C1C8
|
||
;IDE2 EQU #C1D0
|
||
;IDE3 EQU #C1D8
|
||
|
||
;HDD_INI_TABLE EQU #C1C0
|
||
|
||
|
||
; D_TBON EQU 3 ; ¤ ë¥ ¤«ï ¢ª«î票ï TURBO
|
||
; D_TBOFF EQU 2 ; ¤ ë¥ ¤«ï ¢ëª«î票ï TURBO
|
||
|
||
; CNF_0 EQU #04 ; ª àâ ¯®à⮢ 0
|
||
; CNF_1 EQU #0C ; ª àâ ¯®à⮢ 1
|
||
; CNF_2 EQU #14 ; ª àâ ¯®à⮢ 2
|
||
; CNF_3 EQU #1C ; ª àâ ¯®à⮢ 3
|
||
; CNF_512 EQU #80 ; ¢ª«î票¥ Pentagon 128
|
||
|
||
|
||
; áâà ¨æë á ª®ä®© ¤«ï Sp97, ¤«ï ᮢ¬¥á⨬®áâ¨ á ¤à¥¢¨¬¨ ¯à®£ ¬¨
|
||
; PG_SP1 equ #EC
|
||
; PG_SP2 equ #EE
|
||
; PG_AY equ #EA
|
||
|
||
;=================================================================================
|
||
; <EFBFBD>®pâë Sprinter. (¡ ©âë PORT_X)<<
|
||
; 0 - port FF<<
|
||
; 1 - port keyboard<<
|
||
; 2 - port BORDER<<
|
||
; 3 - port 1FFDh<<
|
||
; 4 - port 7FFDh<<
|
||
; 5 - port 3FFDh<<
|
||
; 6 - port Start-ROM<<
|
||
; 7 - port Start-ROM-ALT<<
|
||
; 8 - port ROM-BASIC48<<
|
||
; 9 - port ROM-BASIC128<<
|
||
; 10 - port ROM-TR-DOS<<
|
||
; 11 - port ROM-EXPANSION<<
|
||
; 12 - port ROM-BASIC48-ALT<<
|
||
; 13 - port ROM-BASIC128-ALT<<
|
||
; 14 - port ROM-TR-DOS-ALT<<
|
||
; 15 - port ROM-EXPANSION-ALT<<
|
||
; 16 ??<<
|
||
; .. ??<<
|
||
; 31 ???ports RAM-PAGES - ¯®pâë 㪠§ë¢ î騥, ª ª ï áâp ¨æ އ“<<
|
||
; ¯®¤ª«îç¥ ¢ ª ç¥á⢥ áâp ¨æë 0..F ¢ ª®ä¨£ãp 樨 Scorpion.<<
|
||
; 33 - port RAM-0 áâp ¨æ އ“ ¯®¤ª«îç ¥¬ ï ¢ ã«¥¢®¥ ®ª® ¯p®æ¥áá®p <<
|
||
; 34 - port RAM-5 áâp ¨æ އ“ ¯®¤ª«îç ¥¬ ï ¢ ¯¥p¢®¥ ®ª® ¯p®æ¥áá®p <<
|
||
; 35 - port RAM-2 áâp ¨æ އ“ ¯®¤ª«îç ¥¬ ï ¢® ¢â®p®¥ ®ª® ¯p®æ¥áá®p <<
|
||
; 36 - port CONFIG<<
|
||
; 37 - port COVOX-1<<
|
||
; 38 - port COVOX-2<<
|
||
; 39 - port AY-3-8910-adr<<
|
||
; 40 - port AY-3-8910-dat<<
|
||
; 41 - port KEMPSTON<<
|
||
; 42 - port ISA-interface<<
|
||
; 43 ??reserv<<
|
||
; .. ??<<
|
||
; 47 ??<<
|
||
; 48 - 51 ¯®pâë ‚ƒ93<<
|
||
; 52 - ¯®pâ DOS-1<<
|
||
; 53 - ¯®pâ DOS-2<<
|
||
; 54 ?? á«ã¦¥¡ë¥ ¯®pâë<<
|
||
; .. ??<<
|
||
; 63 ??<<
|
||
; 64 ?? ¯®pâë IDE interface<<
|
||
; .. ??<<
|
||
; 79 ??<<
|
||
; 80..127 - p¥§¥p¢.<<
|
||
; 128..143 - ¯®pâë ¨¤¥â¨ä¨ª â®p ¬ è¨ë ( ⮫쪮 ¤«ï ç⥨ï.)<<
|
||
; 144..254 - p¥§¥p¢<<
|
||
; 255 - ã«ì-¯®pâ - ®âª«î祮¥ á®áâ®ï¨¥.<<
|
||
;================================================================================= |