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