diff --git a/constants/SP2000.inc b/constants/SP2000.inc index 06705ca..b180885 100644 --- a/constants/SP2000.inc +++ b/constants/SP2000.inc @@ -137,11 +137,13 @@ CBL: CNF_PORT: .ON EQU #74 .OFF EQU #24 -.BIOS EQU .ON -.VROM EQU .OFF -; Data: -.TURBO.ON EQU 3 ; данные для включения TURBO +.vBIOS EQU .ON +.vZX_ROM EQU .OFF +; Data: +.BIOS EQU 0 +.EXTENSION EQU 1 .TURBO.OFF EQU 2 ; данные для выключения TURBO +.TURBO.ON EQU 3 ; данные для включения TURBO .CNF_0 EQU #04 ; карта портов 0 .CNF_1 EQU #0C ; карта портов 1 (для режима почти чистого zx spectrum) .CNF_2 EQU #14 ; карта портов 2 @@ -265,6 +267,9 @@ ROM: .SLOT0 EQU #5C ; Прибито гвоздями в конфе .BIOS EQU SYS_PORT.BIOS ; для sys_port.on D_ROM16OFF .EXTENSION EQU SYS_PORT.EXTENSION ; для sys_port.on D_ROM16ON +vROM: +.BIOS EQU CNF_PORT.BIOS ; для sys_port.on D_ROM16OFF +.EXTENSION EQU CNF_PORT.EXTENSION ; для sys_port.on D_ROM16ON ; Значения: ; номер страницы bit3..0 ; разрешение записи bit4 (0 - no Write; 1 - Write) @@ -1348,20 +1353,14 @@ vROM: ; .TR_DOS_2: EQU #E5 ; vROM page TR-DOS 2. PC = #3D00..#3DFF and #1FFD bit1=0 (#24 bit0=1) .BASIC_128_2: EQU #E6 ; vROM page BASIC-128 2. #7FFD bit4=0 and #1FFD bit1=0 (#24 bit0=1) .BASIC_48_2: EQU #E7 ; vROM page BASIC-48 2. #7FFD bit4=1 and #1FFD bit1=0 (#24 bit0=1) -;#E8 - user's memory cell = 00 ; сюда можно сохранить нужное значение ;????? -;#E9 - user's memory cell = 05 ; сюда можно сохранить нужное значение ;????? -;#EA - user's memory cell = 02 ; сюда можно сохранить нужное значение ;????? .BIOS_3 EQU #EB ; vROM page BIOS-3 Port #74 = 0 ;#EC - user's memory cell = FF ; сюда можно сохранить нужное значение ;????? ;#ED - user's memory cell = 00 ; сюда можно сохранить нужное значение ;????? -;#EE - user's memory cell = 00 ; сюда можно сохранить нужное значение ;????? .BIOS_4 EQU #EF ; vROM page BIOS-4 Port #74 = 1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; SLOT0 EQU #E8 ; RAM page (окно 0000-3FFF) SLOT1 EQU #E9 ; RAM page (окно 4000-7FFF) SLOT2 EQU #EA ; RAM page (окно 8000-BFFF) -;#EC - user's memory cell ; сюда можно сохранить нужное значение -;#ED - user's memory cell ; сюда можно сохранить нужное значение RET_PORT EQU #EE ; Page set after Soft RESET. Любое, кроме 0, значение - страница куда передастся управление после Soft reset ; Установка значения в какой либо порт от #F0 до #FF приведет к одному и тому же результату, что и просто установка значения в порт #F0. В схеме сделана @@ -1435,6 +1434,159 @@ Config_PG: ;------------------------; ;;;;;;; ENDMODULE +;███████████████████████████████████████████████████████████████████████ +;███████████████████████████████████████████████████████████████████████ + + + +; +/* +внутренние порты 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) +;---------------------------------------- +;------------[HDD Secondary]------------- +;REGISTER #37 - CYLINDERS (MASTER) L +;REGISTER #38 - -----//------ H +;REGISTER #39 - HEADS (MASTER) +;REGISTER #3A - SECTORS (MASTER) +; +;REGISTER #3B - CYLINDERS (SLAVE) L +;REGISTER #3C - -----//------ H +;REGISTER #3D - HEADS (SLAVE) +;REGISTER #3E - 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 НЕ ИСПОЛЬЗУЕТСЯ +;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 НЕ ИСПОЛЬЗУЕТСЯ +;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 + +;REGISTER #3F - CHECKSUM SETTING +;======================================= ; ;-------------------------------[ TEST ]-------------------------------- @@ -1691,6 +1843,25 @@ ATA: ;----------------------------------------------------------------------- ; +/* +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] @@ -1735,7 +1906,6 @@ REG: ENDMODULE ; -;███████████████████████████████████████████████████████████████████████ ;INIT_TIMER: ; LD A,#D5 ; 7-й бит разрешение прерывания ; OUT (#12),A @@ -1760,8 +1930,6 @@ REG: ; IM 1 ; EI ; RET -;███████████████████████████████████████████████████████████████████████ - ;=======================================================================; @@ -2151,30 +2319,6 @@ REG: ; CNF_3 EQU #1C ; карта портов 3 ; CNF_512 EQU #80 ; включение Pentagon 128 -; -; внутренние порты Z84C15: -; #10 -; #11 -; #12 -; #13 -; #14 -; #15 -; #16 -; #17 -; #18 -; #19 -; #1A -; #1B -; #1C -; #1D -; #1E -; #1F -; #EE -; #EF -; #F0 -; #F1 -; #F4 -;======================================= ; страницы с конфой для Sp97, для совместимости с древними прогами ; PG_SP1 equ #EC @@ -2217,145 +2361,6 @@ REG: ; P_HD3F6 EQU #4154 ; WRITE 3F6 ; P_HD3F7 EQU #4055 ; READ 3F7 -;===============[ 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) -;---------------------------------------- -;------------[HDD Secondary]------------- -;REGISTER #37 - CYLINDERS (MASTER) L -;REGISTER #38 - -----//------ H -;REGISTER #39 - HEADS (MASTER) -;REGISTER #3A - SECTORS (MASTER) -; -;REGISTER #3B - CYLINDERS (SLAVE) L -;REGISTER #3C - -----//------ H -;REGISTER #3D - HEADS (SLAVE) -;REGISTER #3E - 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 НЕ ИСПОЛЬЗУЕТСЯ -;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 НЕ ИСПОЛЬЗУЕТСЯ -;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 - -;REGISTER #3F - CHECKSUM SETTING -;======================================= - -; 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 ;================================================================================= ; Поpты Sprinter. (байты PORT_X)<<