300 lines
6.8 KiB
Plaintext
300 lines
6.8 KiB
Plaintext
|
|
; LAST UPDATE: 15.04.2024 savelij
|
|
|
|
WITH_BUILD EQU 1 ; BIOS NUMBER INCLUDED BUILD NUMBER
|
|
WITH_2IDE EQU 1 ; SECONDARY IDE
|
|
|
|
DSS_MAX_DRIVES_AMOUNT EQU 26
|
|
CLASSIC_CURSOR EQU 0
|
|
TABisSPACES EQU 0
|
|
EnoughtOnly_LF EQU 0
|
|
|
|
RAM_ATAPI_PK EQU 0xFEE0
|
|
RAM_ATAPI_READ EQU 0xFEF0
|
|
|
|
SIZESEC EQU 0x0800
|
|
PKTSIZE EQU 12
|
|
|
|
RAMD_KEY_NUM EQU 16
|
|
|
|
HDR_EXE_SIZE EQU 512
|
|
HDR_EXE_SHORT EQU 512 - 490
|
|
|
|
CL0 EQU 200
|
|
CL1 EQU 240
|
|
|
|
CPU0 EQU 0x0000
|
|
CPU1 EQU 0x4000
|
|
CPU2 EQU 0x8000
|
|
CPU3 EQU 0xC000
|
|
|
|
;Version EQU 0x020D ; Version BIOS
|
|
RESTARTS EQU 0FFE0H
|
|
|
|
D_TBON EQU 3 ; ¤ ë¥ ¤«ï ¢ª«î票ï TURBO
|
|
D_TBOFF EQU 2 ; ¤ ë¥ ¤«ï ¢ª«î票ï TURBO
|
|
D_ROM16ON EQU 1
|
|
D_ROM16OFF EQU 0
|
|
|
|
BIOS_SCR_X EQU 128
|
|
BIOS_SCR_Y EQU 72
|
|
|
|
AUTO
|
|
.HDD EQU 1
|
|
.CDROM EQU 2
|
|
|
|
CONF
|
|
.CNF_0 EQU 0x04
|
|
.CNF_1 EQU 0x0C
|
|
.CNF_2 EQU 0x14
|
|
.CNF_3 EQU 0x1C
|
|
.CNF_512 EQU 0x80 ; ¢ª«î票¥ Pentagon 128
|
|
|
|
; RAM PAGES
|
|
PAGE
|
|
.CONFIG EQU 0x40
|
|
.PG50 EQU 0x50
|
|
.PGA0 EQU 0xA0
|
|
.MODE EQU 0xFC
|
|
.SYSTEM EQU 0xFE
|
|
.LAST EQU 0xFF
|
|
|
|
SPECTRUM
|
|
.PAGE0 EQU 0
|
|
.PAGE1 EQU 1
|
|
.PAGE2 EQU 2
|
|
.PAGE3 EQU 3
|
|
.PAGE4 EQU 4
|
|
.PAGE5 EQU 5
|
|
.PAGE6 EQU 6
|
|
.PAGE7 EQU 7
|
|
|
|
; äãªæ¨¨ ¤à ©¢¥à®¢ IDE, FDD ...
|
|
DRIVER
|
|
.INIT EQU 0x00
|
|
.OPEN EQU 0x01
|
|
.CLOSE EQU 0x02
|
|
.MEDIA_CHECK EQU 0x03
|
|
.GET_BPB EQU 0x04
|
|
.INPUT EQU 0x05
|
|
.OUTPUT EQU 0x06
|
|
.REMOVABLE EQU 0x07
|
|
.IOCTL EQU 0x08
|
|
.READ_LONG EQU 0x09
|
|
.WRITE_LONG EQU 0x0A
|
|
|
|
; ®è¨¡ª¨ ¤à ©¢¥à®¢
|
|
DRV_ERR
|
|
.OK EQU 0x00
|
|
.BAD_COMMAND EQU 0x01
|
|
.BAD_DRIVE EQU 0x02
|
|
.UNKNOW_FORMAT EQU 0x03
|
|
.NOT_READY EQU 0x04
|
|
.SEEK_ERROR EQU 0x05
|
|
.SEC_NOT_FOUND EQU 0x06
|
|
.CRC_ERROR EQU 0x07
|
|
.WRITE_PROTECT EQU 0x08
|
|
.READ_ERROR EQU 0x09
|
|
.WRITE_ERROR EQU 0x0A
|
|
.FAILURE EQU 0x0B
|
|
.BUSY EQU 0x0C
|
|
.RESERVED EQU 0x0D
|
|
|
|
; 梥⠯®««¨âàë BIOS
|
|
INIT_VAR
|
|
SETVAR BLACK
|
|
SETVAR BLUE
|
|
SETVAR GREEN
|
|
SETVAR CYAN
|
|
SETVAR RED
|
|
SETVAR MAGENTA
|
|
SETVAR BROWN
|
|
SETVAR LGRAY
|
|
SETVAR DGRAY
|
|
SETVAR LBLUE
|
|
SETVAR LGREEN
|
|
SETVAR LCYAN
|
|
SETVAR LRED
|
|
SETVAR LMAGENT
|
|
SETVAR YELLOW
|
|
SETVAR WHITE
|
|
|
|
; ï祩ª¨ CMOS
|
|
INIT_VAR
|
|
SETVAR CMOS.SECUND ; 00
|
|
SETVAR CMOS.SECUND_ALARM ; 01
|
|
SETVAR CMOS.MINUTE ; 02
|
|
SETVAR CMOS.MINUTE_ALARM ; 03
|
|
SETVAR CMOS.HOUR ; 04
|
|
SETVAR CMOS.HOUR_ALARM ; 05
|
|
SETVAR CMOS.DAY_WEEK ; 06
|
|
SETVAR CMOS.DAY_MONTH ; 07
|
|
SETVAR CMOS.MONTH ; 08
|
|
SETVAR CMOS.YEAR ; 09
|
|
SETVAR CMOS.REG_A ; 0A
|
|
SETVAR CMOS.REG_B ; 0B
|
|
SETVAR CMOS.REG_C ; 0C
|
|
SETVAR CMOS.REG_D ; 0D
|
|
; Sprinter DATA
|
|
SETVAR CMOS.OPTIONS ; 0E OPTIONS
|
|
BITMASK MEMORY_TEST, 7 ; MEMORY TEST
|
|
BITMASK SAFE_RAMDISK, 6 ; SAFE RAM DISKS
|
|
BITMASK UPDATE_BIOS, 5 ; UPDATE BIOS
|
|
M_START_DELAY EQU %00011000 ; START DELAY
|
|
BITMASK LANGUAGE, 2 ; LANGUAGE
|
|
BITMASK QUICK_START, 0 ; QUICK START
|
|
|
|
SETVAR CMOS.YA0F ; 0F KEYBOARD
|
|
BITMASK TYPEMATIC, 7 ; TYPEMATIC ON/OFF
|
|
M_TYPEMATIC_DELAY EQU %01100000 ; TYPEMATIC DELAY 00-250, 01-500, 10-750, 11-1000
|
|
M_TYPEMATIC_RATE EQU %00011111 ; TYPEMATIC RATE 0-6, 1-8, 2-10, 3-12, 4-15, 5-20, 6-24, 7-30
|
|
|
|
SETVAR CMOS.YA10 ; 10 SYSTEM DISKS
|
|
M_SYSTEM_DISK EQU %00000111 ; SYSTEM DISK
|
|
M_ALT_DISK EQU %01110000 ; ALT SYSTEM DISK
|
|
|
|
SETVAR CMOS.YA11 ; 11 FDD & HDD
|
|
M_FDD_FIRST EQU %00000011 ; FDD FIRST 720 / 1.44 / NONE
|
|
M_FDD_SECOND EQU %00001100 ; FDD SECOND 720 / 1.44 / NONE
|
|
M_IDE_MASTER_MODE EQU %00110000 ; IDE MASTER AUTO / SETUP / DISABLED
|
|
M_IDE_SLAVE_MODE EQU %11000000 ; IDE SLAVE AUTO / SETUP / DISABLED
|
|
|
|
SETVAR CMOS.MS_CYL_LOW ; 12 CYLINDERS LOW MASTER
|
|
SETVAR CMOS.MS_CYL_HIGH ; 13 CYLINDERS HIGH MASTER
|
|
SETVAR CMOS.MS_HEADS ; 14 HEADS MASTER
|
|
SETVAR CMOS.MS_SECTORS ; 15 SECTORS MASTER
|
|
SETVAR CMOS.SL_CYL_LOW ; 16 CYLINDERS LOW SLAVE
|
|
SETVAR CMOS.SL_CYL_HIGH ; 17 CYLINDERS HIGH SLAVE
|
|
SETVAR CMOS.SL_HEADS ; 18 HEADS SLAVE
|
|
SETVAR CMOS.SL_SECTORS ; 19 SECTORS SLAVE
|
|
SETVAR CMOS.COLOR_STYLE ; 1A COLOR STYLE
|
|
M_COLOR_STYLE EQU %00001111 ; COLOR STYLE
|
|
|
|
SETVAR CMOS.YA1B ; 1B HARDWARE CONFIGURATION
|
|
M_COMPUTER EQU %00011000 ; COMPUTER
|
|
; 0-SPRINTER
|
|
; 1-SPECTRUM 256
|
|
; 2-PENTAGON 128
|
|
; 3-OTHER
|
|
BITMASK PORT_EXCHG, 2 ; PORT EXCHANGE ON/OFF - 1
|
|
BITMASK TURBO_EXCHG, 1 ; TURBO EXCHANGE ON/OFF - 1
|
|
BITMASK TURBO_MODE, 0 ; TURBO MODE (D0..D3 - 6 OR 7)
|
|
|
|
SETVAR CMOS.YA1C ; 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
|
|
SETVAR CMOS.YA1D ; 1D REBOOT MSG, HDD W/P
|
|
BITMASK REBOOT_MSG, 1 ; Reboot message
|
|
BITMASK HDD_WR_DISABLE, 0 ; HDD Write protect
|
|
|
|
SETVAR CMOS.YA1E ; 1E TRDOS
|
|
M_TRDOS_A EQU %00000011 ; TR DOS A: Default / FDD / HDD / RMD
|
|
M_TRDOS_B EQU %00001100 ; TR DOS B: Default / FDD / HDD / RMD
|
|
M_TRDOS_C EQU %00110000 ; TR DOS C: Default / FDD / HDD / RMD
|
|
M_TRDOS_D EQU %11000000 ; TR DOS A: Default / FDD / HDD / RMD
|
|
|
|
SETVAR CMOS.SCR_POS ; 1F SCREEN POSITION
|
|
M_X_SCREEN_POS EQU %11110000 ; X-Screen position
|
|
M_Y_SCREEN_POS EQU %00001111 ; Y-Screen position
|
|
|
|
SETVAR CMOS.YA20
|
|
SETVAR CMOS.YA21
|
|
SETVAR CMOS.YA22
|
|
SETVAR CMOS.YA23
|
|
SETVAR CMOS.YA24
|
|
SETVAR CMOS.YA25
|
|
SETVAR CMOS.YA26
|
|
SETVAR CMOS.YA27
|
|
SETVAR CMOS.YA28
|
|
SETVAR CMOS.YA29
|
|
SETVAR CMOS.YA2A
|
|
SETVAR CMOS.YA2B
|
|
SETVAR CMOS.YA2C
|
|
SETVAR CMOS.YA2D
|
|
SETVAR CMOS.YA2E
|
|
SETVAR CMOS.YA2F
|
|
SETVAR CMOS.YA30
|
|
SETVAR CMOS.YA31
|
|
SETVAR CMOS.CENTURY ; CENTURY
|
|
SETVAR CMOS.YA33
|
|
SETVAR CMOS.YA34
|
|
SETVAR CMOS.YA35
|
|
SETVAR CMOS.YA36
|
|
SETVAR CMOS.YA37
|
|
SETVAR CMOS.YA38
|
|
SETVAR CMOS.YA39
|
|
SETVAR CMOS.YA3A
|
|
SETVAR CMOS.YA3B
|
|
SETVAR CMOS.YA3C
|
|
SETVAR CMOS.YA3D
|
|
SETVAR CMOS.YA3E
|
|
SETVAR CMOS.CHECKSUM ; CHECKSUM
|
|
|
|
; ¯®ª ¥ ¯®ïâ®
|
|
SM_CYLL EQU 0x2F
|
|
SM_CYLH EQU 0x30
|
|
SM_HEAD EQU 0x31
|
|
SM_SECT EQU 0x32
|
|
SS_CYLL EQU 0x33
|
|
SS_CYLH EQU 0x34
|
|
SS_HEAD EQU 0x35
|
|
SS_SECT EQU 0x36
|
|
M_CYLL EQU 0x37
|
|
M_CYLH EQU 0x38
|
|
M_HEAD EQU 0x39
|
|
M_SECT EQU 0x3A
|
|
S_CYLL EQU 0x3B
|
|
S_CYLH EQU 0x3C
|
|
S_HEAD EQU 0x3D
|
|
S_SECT EQU 0x3E
|
|
|
|
; GLOBAL VARS ???
|
|
ROM_BLOCK EQU 0x1000
|
|
RAM_BLOCK EQU 0x8000
|
|
SETUP_TXT_ADR EQU 0x8005
|
|
ADR4SPECTRUM EQU 0x8200
|
|
BASIC_START EQU 0x5B00
|
|
DCP_FLEX EQU 0x1400
|
|
FONT_ROM_ADR EQU 0x2800
|
|
FN_TABL_ADR EQU 0x3000
|
|
|
|
SPVARS
|
|
;.L_B00B EQU 0xB00B
|
|
;.L_B03F EQU 0xB03F
|
|
.L_B4B2 EQU 0xB4B2
|
|
.L_B6B2 EQU 0xB6B2
|
|
.L_C124 EQU 0xC124
|
|
.L_C180 EQU 0xC180
|
|
.L_C200 EQU 0xC200
|
|
.L_C400 EQU 0xC400
|
|
.RESTART EQU 0xF000
|
|
.POWERON_DATE EQU 0xF008
|
|
.REBOOT_DATE EQU 0xF010
|
|
.COPY_CPU0 EQU 0xFFF0
|
|
.COPY_CPU1 EQU 0xFFF1
|
|
.COPY_CPU2 EQU 0xFFF2
|
|
.COPY_CPU3 EQU 0xFFF3
|
|
.ADDR EQU 0xFFF4
|
|
.SYM_Z EQU 0xFFFE
|
|
.SYM_X EQU 0xFFFF
|
|
|
|
; ¯¥à¥¬¥ë¥ ¯® áâà ¨æ ¬
|
|
|
|
; ª®¤ë ª« ¢¨ âãàë
|
|
PSKEY
|
|
; áç¨â ë¥ á ª« ¢¨ âãàë
|
|
._A EQU 0x1C
|
|
._B EQU 0x32
|
|
._C EQU 0x21
|
|
._D EQU 0x23
|
|
._E EQU 0x24
|
|
._F EQU 0x2B
|
|
._G EQU 0x34
|
|
._H EQU 0x33
|
|
._I EQU 0x43
|
|
; ¢®§¢à é ¥¬ë¥ ¢ ¯à®£à ¬¬ã
|