common_includes/define_sp.a80
2025-05-29 09:41:39 +03:00

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
; ¢®§¢à é ¥¬ë¥ ¢ ¯à®£à ¬¬ã