This commit is contained in:
Tolik 2024-07-05 03:41:56 +10:00
parent d294e37582
commit bfc070c1ee
2 changed files with 174 additions and 173 deletions

View File

@ -1,174 +1,170 @@
; ‘âப  ID ¡ãâ«® ¤¥à 
MACRO _mSYSID
DZ 'Starting...' ; ¯¥à¢ë© ᨬ¢®« ¢ § £àã§ç¨ª¥ Ž‘ § ¬¥­ï¥âáï ­  ­®¬¥à áâ à⮢®£® ¤à ©¢ , ¢â®à®© ­  ­®¬¥à  ªâ¨¢­®£® § £à㧮筮£® à §¤¥« 
MACRO _mSYSID
DZ 'Starting...' ; ¯¥à¢ë© ᨬ¢®« ¢ § £àã§ç¨ª¥ Ž‘ § ¬¥­ï¥âáï ­  ­®¬¥à áâ à⮢®£® ¤à ©¢ , ¢â®à®© ­  ­®¬¥à  ªâ¨¢­®£® § £à㧮筮£® à §¤¥« 
ENDM
;
;[‚ë§®¢ ä㭪権]--------------------------------;
ToBIOS EQU #08 ; ¤«ï ¢ë§®¢  ¨§ އ“ ¢ SLOT0 (­ ¯à¨¬¥à ¨§ DSS)
ToBIOS_18 EQU #18 ; ¤«ï ¢ë§®¢  ¨§ 8-© áâà ­¨æë <20>‡“ ¢ SLOT0
ToBIOS_3D13 EQU #3D13 ; ¤«ï ¢ë§®¢  ¨§ 8-© áâà ­¨æë <20>‡“ ¢ SLOT0
ToBIOS_FromEXT EQU #3FD0 ; ¤«ï ¢ë§®¢  ¨§ 0-© áâà ­¨æë <20>‡“ ¢ SLOT0
;-----------------------------------------------;
BIOS:
;[”㭪樨 à ¡®âë á ¯ ¬ïâìî]---------------------;
.GetMemSize EQU #C0 ;#90 ; Ž¯à¥¤¥«¥­¨¥ ®¡ê¥¬®¢ އ“
.InitMem EQU #C1 ;#91 ; ˆ­¨æ¨ «¨§ æ¨ï à á¯à¥¤¥«¥­¨ï ¯ ¬ïâ¨.
.GetMem EQU #C2 ; ‚뤥«¥­¨¥ ¡«®ª  އ“
.FreeMem EQU #C3 ; Žá¢®¡®¤¨âì ¡«®ª އ“
.GetMemPage EQU #C4 ; <20>®«ãç¨âì 䨧¨ç¥áª¨© ­®¬¥à áâà ­¨æë ¨§ ¡«®ª  ¯ ¬ïâ¨
.GetMemBlkPages EQU #C5 ; <20>®«ãç¨âì ᯨ᮪ 䨧¨ç¥áª¨å áâà ­¨æ ¡«®ª 
.GetBanksPorts EQU #C6 ; <20>®«ã祭¨¥  ¤à¥á®¢ ¯®à⮢ ®ª®­
.GetMemPageNext EQU #C7 ; <20>®«ãç¨âì ­®¬¥à á«¥¤ãî饩 áâà ­¨æë ¡«®ª  ¯® ¯à¥¤ë¤ã饬ã ü
.GET_RAMD_NUM EQU #9B ; <20>®«ãç¨âì ­®¬¥à RAM-Disk-  (0..15) ¯® ¥£® block id
.SWAP_RAM_DRIVES EQU #9C ; C¬¥­¨âì ­ ¡®à à ¬¤¨áª®¢ ZX <-> Sp2000
.SWAP_RAM_DRIVES.Sp2000 EQU #009C ; <20>¥¦¨¬ à ¬¤¨áª®¢ Sp2000
.SWAP_RAM_DRIVES.ZX EQU #FF9C ; <20>¥¦¨¬ à ¬¤¨áª®¢ ZX Spectrum mode
.SWAP_RAM_DRIVES.Info EQU #FE9C ; “§­ âì ª ª®© ०¨¬ <20>€Œ ¤¨áª®¢ ãáâ ­®¢«¥­
.DivMemBlocks EQU #9D ; <20> §¤¥«¥­¨¥ ¡«®ª 
.MergeMemBlocks EQU #9E ; ‘«¨ï­¨¥ ¡«®ª®¢
;-----------------------------------------------;
;[‚ë§®¢ ä㭪権]----------------------------------------;
ToBIOS EQU #08 ; ¤«ï ¢ë§®¢  ¨§ އ“ ¢ SLOT0 (­ ¯à¨¬¥à ¨§ DSS)
ToBIOS_18 EQU #18 ; ¤«ï ¢ë§®¢  ¨§ 8-© áâà ­¨æë <20>‡“ ¢ SLOT0
ToBIOS_3D13 EQU #3D13 ; ¤«ï ¢ë§®¢  ¨§ 8-© áâà ­¨æë <20>‡“ ¢ SLOT0
ToBIOS_FromEXT EQU #3FD0 ; ¤«ï ¢ë§®¢  ¨§ 0-© áâà ­¨æë <20>‡“ ¢ SLOT0
;-------------------------------------------------------;
;[<EFBFBD> ¡®â  á ¡«®ª ¬¨ އ“, ª ª á RAM-Disks]
.BLK_RD_WR EQU #C8 ; —⥭¨¥/§ ¯¨áì ¨§/¢ ¡«®ª ¯ ¬ï⨠ᥪâ®à ¬¨ ¯® 256 ¡ ©â
.GetMemRMD EQU #92 ; <20>®«ãç¨âì ¡«®ª ¯ ¬ï⨠N bytes ¤«ï RAM-Disk' 
.FreeMemRMD EQU #93 ; Žá¢®¡®¤¨âì ¡«®ª ¯ ¬ï⨠¤«ï RAM-Disk' 
.GetMemPageRMD EQU #94 ; <20>®«ãç¨âì 䨧¨ç¥áª¨© ­®¬¥à áâà ­¨æë RAM-Disk' 
.RAMD_CALC_PAGE EQU #98 ; ‚ëç¨á«¥­¨¥ áâà ­¨æë ¨  ¤à¥á  ¢ RAM-Disk ¯®  ¡á®«îâ­®¬ã ­®¬¥àã ᥪâ®à 
.BLK_TO_RAMD EQU #C9 ; <20> §­ ç¨âì ¡«®ª ¯ ¬ï⨠RAM-Disk-ã
.RAMD_CLEAR EQU #CA ; Žá¢®¡®¤¨âì RAM-Disk
.GET_RAMD_ST EQU #CE ; <20>®«ã祭¨¥ ¨¤¥­â¨ä¨ª â®à  ¡«®ª , ­ §­ ç¥­­®£® ­  RAM-Disk
;-----------------------------------------------;
MODULE BIOS
;BIOS:
;[”㭪樨 à ¡®âë á ¯ ¬ïâìî]-----------------------------;
GetMemSize EQU #C0 ;#90 ; Ž¯à¥¤¥«¥­¨¥ ®¡ê¥¬®¢ އ“
InitMem EQU #C1 ;#91 ; ˆ­¨æ¨ «¨§ æ¨ï à á¯à¥¤¥«¥­¨ï ¯ ¬ïâ¨.
GetMem EQU #C2 ; ‚뤥«¥­¨¥ ¡«®ª  އ“
FreeMem EQU #C3 ; Žá¢®¡®¤¨âì ¡«®ª އ“
GetMemPage EQU #C4 ; <20>®«ãç¨âì 䨧¨ç¥áª¨© ­®¬¥à áâà ­¨æë ¨§ ¡«®ª  ¯ ¬ïâ¨
GetMemBlkPages EQU #C5 ; <20>®«ãç¨âì ᯨ᮪ 䨧¨ç¥áª¨å áâà ­¨æ ¡«®ª 
GetBanksPorts EQU #C6 ; <20>®«ã祭¨¥  ¤à¥á®¢ ¯®à⮢ ®ª®­
GetMemPageNext EQU #C7 ; <20>®«ãç¨âì ­®¬¥à á«¥¤ãî饩 áâà ­¨æë ¡«®ª  ¯® ¯à¥¤ë¤ã饬ã ü
GET_RAMD_NUM EQU #9B ; <20>®«ãç¨âì ­®¬¥à RAM-Disk-  (0..15) ¯® ¥£® block id
SWAP_RAM_DRIVES EQU #9C ; C¬¥­¨âì ­ ¡®à à ¬¤¨áª®¢ ZX <-> Sp2000
.Sp2000 EQU #009C ; <20>¥¦¨¬ à ¬¤¨áª®¢ Sp2000
.ZX EQU #FF9C ; <20>¥¦¨¬ à ¬¤¨áª®¢ ZX Spectrum mode
.Info EQU #FE9C ; “§­ âì ª ª®© ०¨¬ <20>€Œ ¤¨áª®¢ ãáâ ­®¢«¥­
DivMemBlocks EQU #9D ; <20> §¤¥«¥­¨¥ ¡«®ª 
MergeMemBlocks EQU #9E ; ‘«¨ï­¨¥ ¡«®ª®¢
;[<EFBFBD> ¡®â  á ¡«®ª ¬¨ އ“, ª ª á RAM-Disks]----------------;
BLK_RD_WR EQU #C8 ; —⥭¨¥/§ ¯¨áì ¨§/¢ ¡«®ª ¯ ¬ï⨠ᥪâ®à ¬¨ ¯® 256 ¡ ©â
GetMemRMD EQU #92 ; <20>®«ãç¨âì ¡«®ª ¯ ¬ï⨠N bytes ¤«ï RAM-Disk' 
FreeMemRMD EQU #93 ; Žá¢®¡®¤¨âì ¡«®ª ¯ ¬ï⨠¤«ï RAM-Disk' 
GetMemPageRMD EQU #94 ; <20>®«ãç¨âì 䨧¨ç¥áª¨© ­®¬¥à áâà ­¨æë RAM-Disk' 
RAMD_CALC_PAGE EQU #98 ; ‚ëç¨á«¥­¨¥ áâà ­¨æë ¨  ¤à¥á  ¢ RAM-Disk ¯®  ¡á®«îâ­®¬ã ­®¬¥àã ᥪâ®à 
BLK_TO_RAMD EQU #C9 ; <20> §­ ç¨âì ¡«®ª ¯ ¬ï⨠RAM-Disk-ã
RAMD_CLEAR EQU #CA ; Žá¢®¡®¤¨âì RAM-Disk
GET_RAMD_ST EQU #CE ; <20>®«ã祭¨¥ ¨¤¥­â¨ä¨ª â®à  ¡«®ª , ­ §­ ç¥­­®£® ­  RAM-Disk
;[“¯à ¢«¥­¨¥ ­ §­ ç¥­¨¥¬ ­  ¤¨áª®¢®¤ë]------------------;
RAMD_TO_DRV EQU #CB ; <20> §­ ç¥­¨¥ RAM-Disk ­  ¤¨áª®¢®¤ TR-DOS
FDD_TO_DRV EQU #CC ; <20> §­ ç¥­¨¥ 䨧¨ç¥áª®£® ¤¨áª®¢®¤  ­  «®£¨ç¥áª¨©
HDD_TO_DRV EQU #CD ; <20> §­ ç¥­¨¥ ¢¨­ç¥áâ¥à  ­  ¤¨áª®¢®¤
GET_DRV_ST EQU #CF ; <20>®«ãç¨âì ⨯ ­ §­ ç¥­¨ï ­  «®£¨ç¥áª¨© ¤¨áª®¢®¤
;[“¯à ¢«¥­¨¥ ®ª­ ¬¨ ¨ ०¨¬ ¬¨ íªà ­ ]------------------;
WIN_OPEN EQU #B0 ; ”ã­ªæ¨ï ®âªàëâ¨ï ®ª­ .
WIN_CLOSE EQU #B1 ; § ªàë⨥ ®ª­ 
WIN_COPY EQU #B2 ; Š®¯¨à®¢ ­¨¥ ¤ ­­ëå ⥪á⮢®£® ®ª­  ¢ ¯ ¬ïâì (§ ¯®¬¨­ ­¨¥ ®ª­ )
WIN_RESTORE EQU #B3 ; Š®¯¨à®¢ ­¨¥ ¨§ ¯ ¬ï⨠¢ ⥪á⮢®¥ ®ª­® (¢®ááâ ­®¢«¥­¨¥ ®ª­ )
WIN_GET_SYM EQU #B4 ; ‚§ïâì ᨬ¢®« á íªà ­ 
WIN_PUT_SYM EQU #B5 ; <20>®«®¦¨âì ᨬ¢®« ­  íªà ­
WIN_SET_ZG EQU #B6 ; ãáâ ­®¢ª  §­ ª®£¥­¥à â®à 
WIN_MOVE EQU #B7 ; <20>¥à¥¬¥é¥­¨¥ ®ª­ 
WIN_GET_ZG EQU #B8 ; <20>®«ã祭¨¥ §­ ª®£¥­¥à â®à 
;[”㭪樨 ¯¥ç â¨ ¨ ã¯à. ०¨¬®¬ íªà ­ ]-----------------;
LP_OPEN_S EQU #80 ; Žâªàë⨥ áâ ­¤ àâ­ëå ®ª®­.
.ZX_32x24_Default EQU #0080 ; ᯥªâà㬮¢áª®¥ ®ª­® 32x24
.TXT_64x24_Default EQU #0180 ; ⥪á⮢®¥ ®ª­® 64x24
.TXT_40x32_Default EQU #0280 ; ⥪á⮢®¥ ®ª­® 40x24
.TXT_80x32_Default EQU #0380 ; ⥪á⮢®¥ ®ª­® 80x32
.ZX_32x24 EQU #0480 ; ᯥªâà㬮¢áª®¥ ®ª­®, HL - ¯®«®¦¥­¨¥ ®ª­ 
.TXT_64x24 EQU #0580 ; ⥪á⮢®¥ ®ª­® 64x24, HL - ¯®«®¦¥­¨¥ ®ª­ 
.TXT_40x32 EQU #0680 ; ⥪á⮢®¥ ®ª­® 40x32, HL - ¯®«®¦¥­¨¥ ®ª­ 
.TXT_80x32 EQU #0780 ; ⥪á⮢®¥ ®ª­® 80x32, HL - ¯®«®¦¥­¨¥ ®ª­ 
.Graf_0 EQU #0880 ; £à ä¨ç¥áª®¥ ®ª­® 0, HL - ¯®«®¦¥­¨¥ ®ª­ 
.Graf_1 EQU #0980 ; £à ä¨ç¥áª®¥ ®ª­® 1, HL - ¯®«®¦¥­¨¥ ®ª­ 
LP_PRINT_ALL EQU #81 ; <20>¥ç âì ᨬ¢®«®¢ á  âਡã⮬
LP_PRINT_SYM EQU #82 ; ‚뢮¤ ᨬ¢®«®¢ ­  íªà ­ ¡¥§  âਡãâ 
LP_PRINT_ATR EQU #83 ; ¯¥ç âì  âਡã⮢
LP_SET_PLACE EQU #84 ; “áâ ­®¢ª  ⥪ã饣® §­ ª®¬¥áâ  ¢ ®ª­¥
LP_PRINT_LINE EQU #85 ; ‚뢮¤ áâப¨ ᨬ¢®«®¢ ­  íªà ­ á ⥪ã饣® §­ ª®¬¥áâ 
LP_PRINT_LINE2 EQU #86 ; ‚뢮¤ áâப¨ ᨬ¢®«®¢ ­  íªà ­ ¡¥§  âਡã⮢
LP_PRINT_LINE3 EQU #87 ; ‚뢮¤ áâப¨ ᨬ¢®«®¢ ¤® à §¤¥«¨â¥«ï
LP_PRINT_LINE4 EQU #88 ; ‚뢮¤ áâப¨ ᨬ¢®«®¢ ¤® à §¤¥«¨â¥«ï, ¡¥§  âਡã⮢
LP_CLS_WIN EQU #89 ; Žç¨á⪠ íªà ­ 
LP_SCROLL_UD EQU #8A ; ‘ªà®««¨­£ ç á⨠£«®¡ «ì­®£® ®ª­  ¢¢¥àå/¢­¨§
LP_PRINT_LINE5 EQU #8B ; ‚뢮¤ áâப¨ ᨬ¢®«®¢ ­  íªà ­ ¤® à §¤¥«¨â¥«ï
LP_PRINT_LINE6 EQU #8C ; ‚뢮¤ áâப¨ ᨬ¢®«®¢ ­  íªà ­ ¤® à §¤¥«¨â¥«ï ¡¥§  âਡã⮢
LP_CLS_WIN2 EQU #8D ; Žç¨á⪠ íªà ­  á 㪠§ ­¨¥¬ ᨬ¢®«  § ¯®«­¥­¨ï
LP_GET_PLACE EQU #8E ; <20>®«ãç¨âì ⥪ã饥 ¯®«®¦¥­¨¥ ¢ë¢®¤  ­  íªà ­
LP_PR_LINE_DIR EQU #E0 ;!TODO ­¥¤®¤¥« ­ . <20>¥ç âì "¢ ª®­á®«ì" ¤® à §¤¥«¨â¥«ï
;[ƒà ä¨ç¥áª¨¥ ä㭪樨]----------------------------------;
PIC_POINT EQU #A1 ; “áâ ­®¢¨âì â®çªã
PIC_SET_PAL EQU #A4 ; “áâ ­®¢ª  ¯ «¨âàë
PIC_GET_PAL EQU #A4 ; —⥭¨¥ ¯ «¨âàë (­®¬¥à â ª®© ¦¥ ª ª ã .PIC_SET_PAL)
SET_PAL_INIT EQU #A6 ; “áâ ­®¢ª  ¢­ãâ७­¥© ¯ «¨âàë
;[<EFBFBD> ¡®â  á HDD. #4X (fast)]-----------------------------;
HDD_INIT EQU #40 ; ˆ­¨æ¨ «¨§ æ¨ï ¢¨­ç¥áâ¥à 
HDD_RECAL EQU #41 ; <20>¥ª «¨¡à®¢ª  ¢¨­ç¥áâ¥à 
HDD_TEST_IDE EQU #42 ; ’¥áâ ­ «¨ç¨ï ¨­â¥àä¥©á  IDE
HDD_PREPARE EQU #43 ; <20>®¤£®â®¢ª  ¢¨­ç¥áâ¥à  ª ®¯¥à æ¨¨ ç⥭¨ï/§ ¯¨á¨
HDD_READ_BPB EQU #44 ; —¨â âì BPB ¯¥à¢®£® à §¤¥« 
HDD_READ EQU #45 ; —¨â âì ᥪâ®à  á ¢¨­ç¥áâ¥à 
HDD_WRITE EQU #46 ; <20>¨á âì ᥪâ®à  ­  ¢¨­ç¥áâ¥à
HDD_PART EQU #47 ; <20> áâனª  ¯ àâ¨æ¨© ¨ master/slave
HDD_READ_NEXT EQU #48 ; —¨â âì á«¥¤ãî騩 ᥪâ®à (ONLY FOR LBA!)
;[<EFBFBD> ¡®â  á HDD ¨ ¤¨áª®¢®¤ ¬¨. #5X]----------------------;
DRV_RESET EQU #51 ; ‘¡à®á ª®­â஫«¥à  ¨ ­ áâனª  ­  ¤¨áª
DRV_READ_LONG EQU #52 ; —⥭¨¥ á ãáâனá⢠¢ 㪠§ ­­ãî áâà ­¨æã
DRV_WRITE_LONG EQU #53 ; ‡ ¯¨áì ­  ãáâனá⢠ ¢ 㪠§ ­­ãî áâà ­¨æã
DRV_VERIFY EQU #54 ; <20>஢¥àª  ᥪâ®à®¢
DRV_READ EQU #55 ; —⥭¨¥ á ãáâனá⢠
DRV_WRITE EQU #56 ; ‡ ¯¨áì ­  ãáâனá⢠
DRV_DETECT EQU #57 ; Ž¯à¥¤¥«¥­¨¥ ¯ à ¬¥â஢ ãáâனá⢠
DRV_GET_PAR EQU #58 ; <20>®«ãç¨âì ¯ à ¬¥âàë ­®á¨â¥«ï
DRV_SET_PAR EQU #59 ; “áâ ­®¢¨âì ¯ à ¬¥âàë ­®á¨â¥«ï
DRV_VERSION EQU #5A ; <20>®¬¥à ¢¥àᨨ ¤¨áª®¢®© ᯥæ¨ä¨ª æ¨¨.
DRV_EXTENDED EQU #5E ; <20> áè¨à¥­­ë¥ ä㭪樨 ¤«ï ¤à ©¢®¢ ; [x] 21/12/2023
.CD_Eject EQU #005E ; Žâªàëâì «®â®ª CD
.CD_Close EQU #015E ; ‡ ªàëâì «®â®ª CD
DRV_LIST EQU #5F ; ‘¯¨á®ª ¤¨áª®¢ëå ãáâனáâ¢
;-------------------------------------------------------;
;[“¯à ¢«¥­¨¥ ­ §­ ç¥­¨¥¬ ­  ¤¨áª®¢®¤ë]----------;
.RAMD_TO_DRV EQU #CB ; <20> §­ ç¥­¨¥ RAM-Disk ­  ¤¨áª®¢®¤ TR-DOS
.FDD_TO_DRV EQU #CC ; <20> §­ ç¥­¨¥ 䨧¨ç¥áª®£® ¤¨áª®¢®¤  ­  «®£¨ç¥áª¨©
.HDD_TO_DRV EQU #CD ; <20> §­ ç¥­¨¥ ¢¨­ç¥áâ¥à  ­  ¤¨áª®¢®¤
.GET_DRV_ST EQU #CF ; <20>®«ãç¨âì ⨯ ­ §­ ç¥­¨ï ­  «®£¨ç¥áª¨© ¤¨áª®¢®¤
;-----------------------------------------------;
;[“¯à ¢«¥­¨¥ ®ª­ ¬¨ ¨ ०¨¬ ¬¨ íªà ­ ]----------;
.WIN_OPEN EQU #B0 ; ”ã­ªæ¨ï ®âªàëâ¨ï ®ª­ .
.WIN_CLOSE EQU #B1 ; § ªàë⨥ ®ª­ 
.WIN_COPY EQU #B2 ; Š®¯¨à®¢ ­¨¥ ¤ ­­ëå ⥪á⮢®£® ®ª­  ¢ ¯ ¬ïâì (§ ¯®¬¨­ ­¨¥ ®ª­ )
.WIN_RESTORE EQU #B3 ; Š®¯¨à®¢ ­¨¥ ¨§ ¯ ¬ï⨠¢ ⥪á⮢®¥ ®ª­® (¢®ááâ ­®¢«¥­¨¥ ®ª­ )
.WIN_GET_SYM EQU #B4 ; ‚§ïâì ᨬ¢®« á íªà ­ 
.WIN_PUT_SYM EQU #B5 ; <20>®«®¦¨âì ᨬ¢®« ­  íªà ­
.WIN_SET_ZG EQU #B6 ; ãáâ ­®¢ª  §­ ª®£¥­¥à â®à 
.WIN_MOVE EQU #B7 ; <20>¥à¥¬¥é¥­¨¥ ®ª­ 
.WIN_GET_ZG EQU #B8 ; <20>®«ã祭¨¥ §­ ª®£¥­¥à â®à 
;-----------------------------------------------;
;[”㭪樨 ¯¥ç â¨ ¨ ã¯à. ०¨¬®¬ íªà ­ ]---------;
.LP_OPEN_S EQU #80 ; Žâªàë⨥ áâ ­¤ àâ­ëå ®ª®­.
.LP_OPEN_S.ZX_32x24_Default EQU #0080 ; ᯥªâà㬮¢áª®¥ ®ª­® 32x24
.LP_OPEN_S.TXT_64x24_Default EQU #0180 ; ⥪á⮢®¥ ®ª­® 64x24
.LP_OPEN_S.TXT_40x32_Default EQU #0280 ; ⥪á⮢®¥ ®ª­® 40x24
.LP_OPEN_S.TXT_80x32_Default EQU #0380 ; ⥪á⮢®¥ ®ª­® 80x32
.LP_OPEN_S.ZX_32x24 EQU #0480 ; ᯥªâà㬮¢áª®¥ ®ª­®, HL - ¯®«®¦¥­¨¥ ®ª­ 
.LP_OPEN_S.TXT_64x24 EQU #0580 ; ⥪á⮢®¥ ®ª­® 64x24, HL - ¯®«®¦¥­¨¥ ®ª­ 
.LP_OPEN_S.TXT_40x32 EQU #0680 ; ⥪á⮢®¥ ®ª­® 40x32, HL - ¯®«®¦¥­¨¥ ®ª­ 
.LP_OPEN_S.TXT_80x32 EQU #0780 ; ⥪á⮢®¥ ®ª­® 80x32, HL - ¯®«®¦¥­¨¥ ®ª­ 
.LP_OPEN_S.Graf_0 EQU #0880 ; £à ä¨ç¥áª®¥ ®ª­® 0, HL - ¯®«®¦¥­¨¥ ®ª­ 
.LP_OPEN_S.Graf_1 EQU #0980 ; £à ä¨ç¥áª®¥ ®ª­® 1, HL - ¯®«®¦¥­¨¥ ®ª­ 
.LP_PRINT_ALL EQU #81 ; <20>¥ç âì ᨬ¢®«®¢ á  âਡã⮬
.LP_PRINT_SYM EQU #82 ; ‚뢮¤ ᨬ¢®«®¢ ­  íªà ­ ¡¥§  âਡãâ 
.LP_PRINT_ATR EQU #83 ; ¯¥ç âì  âਡã⮢
.LP_SET_PLACE EQU #84 ; “áâ ­®¢ª  ⥪ã饣® §­ ª®¬¥áâ  ¢ ®ª­¥
.LP_PRINT_LINE EQU #85 ; ‚뢮¤ áâப¨ ᨬ¢®«®¢ ­  íªà ­ á ⥪ã饣® §­ ª®¬¥áâ 
.LP_PRINT_LINE2 EQU #86 ; ‚뢮¤ áâப¨ ᨬ¢®«®¢ ­  íªà ­ ¡¥§  âਡã⮢
.LP_PRINT_LINE3 EQU #87 ; ‚뢮¤ áâப¨ ᨬ¢®«®¢ ¤® à §¤¥«¨â¥«ï
.LP_PRINT_LINE4 EQU #88 ; ‚뢮¤ áâப¨ ᨬ¢®«®¢ ¤® à §¤¥«¨â¥«ï, ¡¥§  âਡã⮢
.LP_CLS_WIN EQU #89 ; Žç¨á⪠ íªà ­ 
.LP_SCROLL_UD EQU #8A ; ‘ªà®««¨­£ ç á⨠£«®¡ «ì­®£® ®ª­  ¢¢¥àå/¢­¨§
.LP_PRINT_LINE5 EQU #8B ; ‚뢮¤ áâப¨ ᨬ¢®«®¢ ­  íªà ­ ¤® à §¤¥«¨â¥«ï
.LP_PRINT_LINE6 EQU #8C ; ‚뢮¤ áâப¨ ᨬ¢®«®¢ ­  íªà ­ ¤® à §¤¥«¨â¥«ï ¡¥§  âਡã⮢
.LP_CLS_WIN2 EQU #8D ; Žç¨á⪠ íªà ­  á 㪠§ ­¨¥¬ ᨬ¢®«  § ¯®«­¥­¨ï
.LP_GET_PLACE EQU #8E ; <20>®«ãç¨âì ⥪ã饥 ¯®«®¦¥­¨¥ ¢ë¢®¤  ­  íªà ­
.LP_PR_LINE_DIR EQU #E0 ;!TODO ­¥¤®¤¥« ­ . <20>¥ç âì "¢ ª®­á®«ì" ¤® à §¤¥«¨â¥«ï
;-----------------------------------------------;
;[ƒà ä¨ç¥áª¨¥ ä㭪樨]--------------------------;
.PIC_POINT EQU #A1 ; “áâ ­®¢¨âì â®çªã
.PIC_SET_PAL EQU #A4 ; “áâ ­®¢ª  ¯ «¨âàë
.PIC_GET_PAL EQU #A4 ; —⥭¨¥ ¯ «¨âàë (­®¬¥à â ª®© ¦¥ ª ª ã .PIC_SET_PAL)
.SET_PAL_INIT EQU #A6 ; “áâ ­®¢ª  ¢­ãâ७­¥© ¯ «¨âàë
;-----------------------------------------------;
;[<EFBFBD> ¡®â  á HDD. #4X (fast)]---------------------;
.HDD_INIT EQU #40 ; ˆ­¨æ¨ «¨§ æ¨ï ¢¨­ç¥áâ¥à 
.HDD_RECAL EQU #41 ; <20>¥ª «¨¡à®¢ª  ¢¨­ç¥áâ¥à 
.HDD_TEST_IDE EQU #42 ; ’¥áâ ­ «¨ç¨ï ¨­â¥àä¥©á  IDE
.HDD_PREPARE EQU #43 ; <20>®¤£®â®¢ª  ¢¨­ç¥áâ¥à  ª ®¯¥à æ¨¨ ç⥭¨ï/§ ¯¨á¨
.HDD_READ_BPB EQU #44 ; —¨â âì BPB ¯¥à¢®£® à §¤¥« 
.HDD_READ EQU #45 ; —¨â âì ᥪâ®à  á ¢¨­ç¥áâ¥à 
.HDD_WRITE EQU #46 ; <20>¨á âì ᥪâ®à  ­  ¢¨­ç¥áâ¥à
.HDD_PART EQU #47 ; <20> áâனª  ¯ àâ¨æ¨© ¨ master/slave
.HDD_READ_NEXT EQU #48 ; —¨â âì á«¥¤ãî騩 ᥪâ®à (ONLY FOR LBA!)
;-----------------------------------------------;
;[<EFBFBD> ¡®â  á HDD ¨ ¤¨áª®¢®¤ ¬¨. #5X]--------------;
.DRV_RESET EQU #51 ; ‘¡à®á ª®­â஫«¥à  ¨ ­ áâனª  ­  ¤¨áª
.DRV_READ_LONG EQU #52 ; —⥭¨¥ á ãáâனá⢠¢ 㪠§ ­­ãî áâà ­¨æã
.DRV_WRITE_LONG EQU #53 ; ‡ ¯¨áì ­  ãáâனá⢠ ¢ 㪠§ ­­ãî áâà ­¨æã
.DRV_VERIFY EQU #54 ; <20>஢¥àª  ᥪâ®à®¢
.DRV_READ EQU #55 ; —⥭¨¥ á ãáâனá⢠
.DRV_WRITE EQU #56 ; ‡ ¯¨áì ­  ãáâனá⢠
.DRV_DETECT EQU #57 ; Ž¯à¥¤¥«¥­¨¥ ¯ à ¬¥â஢ ãáâனá⢠
.DRV_GET_PAR EQU #58 ; <20>®«ãç¨âì ¯ à ¬¥âàë ­®á¨â¥«ï
.DRV_SET_PAR EQU #59 ; “áâ ­®¢¨âì ¯ à ¬¥âàë ­®á¨â¥«ï
.DRV_VERSION EQU #5A ; <20>®¬¥à ¢¥àᨨ ¤¨áª®¢®© ᯥæ¨ä¨ª æ¨¨.
.DRV_EXTENDED EQU #5E ; <20> áè¨à¥­­ë¥ ä㭪樨 ¤«ï ¤à ©¢®¢ ; [x] 21/12/2023
.DRV_EXTENDED.CD_Eject EQU .DRV_EXTENDED
.DRV_EXTENDED.CD_Close EQU #0100 + .DRV_EXTENDED
.DRV_LIST EQU #5F ; ‘¯¨á®ª ¤¨áª®¢ëå ãáâனáâ¢
;-----------------------------------------------;
;[“¯à ¢«¥­¨¥ ¦¥«¥§®¬, ®¯à. ¢¥àᨨ]--------------;
.FN_TURBO EQU #8F ; ”ã­ªæ¨ï ã¯à ¢«¥­¨ï âãà¡® ०¨¬®¬ ¨ FDD 720/1440
.FN_TURBO.OFF EQU #02 ;
.FN_TURBO.ON EQU #03 ;
.FN_TURBO.VG.OFF EQU #12 ;
.FN_TURBO.VG.ON EQU #13 ;
.CheckInit EQU #97 ; …᫨ ®¡­ à㦥­ ¯¥à¢ë© áâ àâ, â® ¨­¨æ¨ «¨§ æ¨ï ¢á¥© ¯ ¬ïâ¨, á¨á⥬­ëå ¯¥à¥¬¥­­ëå
.FullInit EQU #9F ; ˆ­¨æ¨ «¨§ æ¨ï ¢á¥© ¯ ¬ïâ¨, á¨á⥬­ëå ¯¥à¥¬¥­­ëå
.FN_CRIPT EQU #ED ; ”ã­ªæ¨ï ¨¤¥­â¨ä¨ª æ¨¨ ¬ â¥à¨­áª®© ¯« âë ¨ ª®­ä¨£ãà æ¨¨
.FN_CRIPT.BoardNumber EQU #01ED ; ‚ë¤ ç  ¯®«­®£® Board Number
.FN_CRIPT.AcexAndBitstream EQU #02ED ; ‚ë¤ ç  ¬®¤¥«¨ ACEX ¨ ¢¥àᨨ ¡¨âáâਬ  ¢ ROM
.RST_CONF.AY8910 EQU #EE ; ¤«ï ᮢ¬¥á⨬®á⨠á á®ä⮬ Sp97, ¯¥à¥ª«î祭¨¥ ¢ ª®­äã AY8910
.FN_VERSION EQU #EF ; ‚ë¤ ç  ¨­ä®à¬ æ¨¨ ® ¢¥àᨨ BIOS  ¨ ¦¥«¥§ . ¡ãä¥à¥ ¡ã¤¥â:
.FN_VERSION.STR.FirmwareName EQU 1 ; ü ¯®«ï á ­ §¢ ­¨¥¬ ¯à®è¨¢ª¨
.FN_VERSION.STR.PC_Name EQU 2 ; ü ¯®«ï á ­ §¢ ­¨¥¬ ª®¬¯ìîâ¥à 
.FN_VERSION.STR.BitstreamVer EQU 3 ; ü ¯®«ï á ¢¥àᨥ© ¡¨âáâਬ  ¢ <EFBFBD>‡“
.RST_CONF.SP97_1 EQU #F0 ; ¤«ï ᮢ¬¥á⨬®á⨠á á®ä⮬ Sp97, ¯¥à¥ª«î祭¨¥ ¢ ª®­äã Sprinter-1
.RST_CONF.SP97_2 EQU #F1 ; ¤«ï ᮢ¬¥á⨬®á⨠á á®ä⮬ Sp97, ¯¥à¥ª«î祭¨¥ ¢ ª®­äã Sprinter-2
.FN_SYNC EQU #F2 ; “áâ ­®¢ª  ᨭåà®­¨§ æ¨¨, ®ç¨á⪠ áâà ­¨æë ०¨¬  íªà ­ 
.RST_CONF.CUSTOM EQU #F3 ; ¯¥à¥ª«î祭¨¥ ª®­ä¨£ãà æ¨¨ ¯®«ì§®¢ â¥«ï. SPRINTER_ALL
.DCP_CONFIG EQU #F4 ; ”ã­ªæ¨ï ã¯à ¢«¥­¨ï ¤¥è¨äà â®à®¬ ¯®à⮢. ;[x] BIOS 3.05 + ­®¢ ï ¯®¤äã­ªæ¨ï
.CMOS_TEST EQU #F5 ; <20>஢¥à¨âì ­ «¨ç¨¥ CMOS
.CMOS_RD EQU #F6 ; —¨â âì ¨§ ॣ¨áâà  CMOS
.CMOS_WR EQU #F7 ; <20>¨á âì ¢ ॣ¨áâà CMOS
.SET_PORTS EQU #F8 ; “áâ ­®¢ª  ¢­ãâ७­¨å ¯®à⮢. ”ã­ªæ¨ï ¢ à §à ¡®âª¥
.READ_PORTS EQU #F9 ; —⥭¨¥ ¢­ãâ७­¨å ¯®à⮢. ;[x] 26/01/2024
.GOTO_SPECTRUM EQU #FB ;[ ] ¤®ª®¢ëàïâì
.REINIT EQU #FD ;[x] restart, soft/hard reset, reinit RAM ID for spectrum pages
.REINIT.RESTART EQU #01 ;
.REINIT.SOFT_RESET EQU #02 ;
.REINIT.HARD_RESET EQU #03 ;
.REINIT.SET_ZXPAGES EQU #04 ;
;[“¯à ¢«¥­¨¥ ¦¥«¥§®¬, ®¯à. ¢¥àᨨ]----------------------;
FN_TURBO EQU #8F ; ”ã­ªæ¨ï ã¯à ¢«¥­¨ï âãà¡® ०¨¬®¬ ¨ FDD 720/1440
.OFF EQU #02 ;
.ON EQU #03 ;
.VG.OFF EQU #12 ;
.VG.ON EQU #13 ;
CheckInit EQU #97 ; …᫨ ®¡­ à㦥­ ¯¥à¢ë© áâ àâ, â® ¨­¨æ¨ «¨§ æ¨ï ¢á¥© ¯ ¬ïâ¨, á¨á⥬­ëå ¯¥à¥¬¥­­ëå
FullInit EQU #9F ; ˆ­¨æ¨ «¨§ æ¨ï ¢á¥© ¯ ¬ïâ¨, á¨á⥬­ëå ¯¥à¥¬¥­­ëå
FN_CRIPT EQU #ED ; ”ã­ªæ¨ï ¨¤¥­â¨ä¨ª æ¨¨ ¬ â¥à¨­áª®© ¯« âë ¨ ª®­ä¨£ãà æ¨¨
.BoardNumber EQU #01ED ; ‚ë¤ ç  ¯®«­®£® Board Number
.AcexAndBitstream EQU #02ED ; ‚ë¤ ç  ¬®¤¥«¨ ACEX ¨ ¢¥àᨨ ¡¨âáâਬ  ¢ ROM
RST_CONF: ; ; ;
.AY8910 EQU #EE ; ¤«ï ᮢ¬¥á⨬®á⨠á á®ä⮬ Sp97, ¯¥à¥ª«î祭¨¥ ¢ ª®­äã AY8910
.SP97_1 EQU #F0 ; ¤«ï ᮢ¬¥á⨬®á⨠á á®ä⮬ Sp97, ¯¥à¥ª«î祭¨¥ ¢ ª®­äã Sprinter-1
.SP97_2 EQU #F1 ; ¤«ï ᮢ¬¥á⨬®á⨠á á®ä⮬ Sp97, ¯¥à¥ª«î祭¨¥ ¢ ª®­äã Sprinter-2
.CUSTOM EQU #F3 ; ¯¥à¥ª«î祭¨¥ ª®­ä¨£ãà æ¨¨ ¯®«ì§®¢ â¥«ï. SPRINTER_ALL
; ; ; ;
FN_VERSION EQU #EF ; ‚ë¤ ç  ¨­ä®à¬ æ¨¨ ® ¢¥àᨨ BIOS  ¨ ¦¥«¥§ . ¡ãä¥à¥ ¡ã¤¥â:
.STR.FirmwareName EQU 1 ; ü ¯®«ï á ­ §¢ ­¨¥¬ ¯à®è¨¢ª¨
.STR.PC_Name EQU 2 ; ü ¯®«ï á ­ §¢ ­¨¥¬ ª®¬¯ìîâ¥à 
.STR.BitstreamVer EQU 3 ; ü ¯®«ï á ¢¥àᨥ© ¡¨âáâਬ  ¢ <EFBFBD>‡“
FN_SYNC EQU #F2 ; “áâ ­®¢ª  ᨭåà®­¨§ æ¨¨, ®ç¨á⪠ áâà ­¨æë ०¨¬  íªà ­ 
DCP_CONFIG EQU #F4 ; ”ã­ªæ¨ï ã¯à ¢«¥­¨ï ¤¥è¨äà â®à®¬ ¯®à⮢. ;[x] BIOS 3.05 + ­®¢ ï ¯®¤äã­ªæ¨ï
CMOS_TEST EQU #F5 ; <20>஢¥à¨âì ­ «¨ç¨¥ CMOS
CMOS_RD EQU #F6 ; —¨â âì ¨§ ॣ¨áâà  CMOS
CMOS_WR EQU #F7 ; <20>¨á âì ¢ ॣ¨áâà CMOS
SET_PORTS EQU #F8 ; “áâ ­®¢ª  ¢­ãâ७­¨å ¯®à⮢. ”ã­ªæ¨ï ¢ à §à ¡®âª¥
READ_PORTS EQU #F9 ; —⥭¨¥ ¢­ãâ७­¨å ¯®à⮢. ;[x] 26/01/2024
GOTO_SPECTRUM EQU #FB ;[ ] ¤®ª®¢ëàïâì
REINIT EQU #FD ;[x] restart, soft/hard reset, reinit RAM ID for spectrum pages
.RESTART EQU #01 ;
.SOFT_RESET EQU #02 ;
.HARD_RESET EQU #03 ;
.SET_ZXPAGES EQU #04 ;
;-----------------------------------------------;
;
;----------------[ EROOR CODES ]----------------;
BIOS.Error.NoErrors EQU 0 ;
BIOS.Error.InvalidSubFunction EQU 1 ;
BIOS.Error.BadNumber EQU 2
BIOS.Error.UnknownDevice EQU 3
BIOS.Error.UnknownFormat EQU BIOS.Error.UnknownDevice
BIOS.Error.BadDrvNumber EQU BIOS.Error.BadNumber ;
BIOS.Error.WaitPort EQU 4 ;
BIOS.Error.WriteProtect EQU 8 ;
Error:
.NoErrors EQU 0 ;
.InvalidSubFunction EQU 1 ;
.BadNumber EQU 2 ; of drive or ramblock
.UnknownDevice EQU 3 ;
.NotReady EQU 4 ;
.Seek EQU 5 ;
.SectorNotFound EQU 6 ; or No Disk
.CRC EQU 7 ;
.WriteProtect EQU 8 ;
.Read EQU 9 ;
.Write EQU 10 ;
.Failure EQU 11 ;
.Busy EQU 12 ; DEVICE OPENED
;-----------------------------------------------;
; .NO_ERROR EQU #00 ; 00 - NO ERRORS
; .INVALID_COMMAND EQU #01 ; 01 - BAD COMMAND
@ -195,14 +191,14 @@ BIOS.Error.WriteProtect EQU 8 ;
; ..‚­ãâ७­ïï äã­ªæ¨ï..
; ®âªàëâì £à ä¨ç¥áª®¥ ®ª­®, á ®¯¨á â¥«¥¬ ¢ IX
; ­  ¬¥á⥠HL, E - áâà ­¨æ  ०¨¬ , ᥤ쬮© ¡¨â E - ०¨¬ BOND
.PIC_FN0 EQU #A0
.PIC_FN0 EQU #A0
;=============================================================
;=============================================================
; point 3D13h C=0A2h
; ‚›‚Ž„ ˆ<EFBFBD>ˆˆ 'FILL' ¢å®¤: dE - ¢¥à⨪ «ì, HL - £®à¨§®­â «ì.
; IX - ¤«¨­  «¨­¨¨ ¢ â®çª å, A - 梥â
.PIC_FN2 EQU #A2
.PIC_FN2 EQU #A2
;=============================================================
;=============================================================
@ -212,13 +208,13 @@ BIOS.Error.WriteProtect EQU 8 ;
; A' - áâà ­¨æ  RAM-Disk/MEM, HL' -  ¤à¥á ¢ áâà.2
; BC' - ¤«¨­  ¤ ­­ëå
; ‚ë室: HL',A' - á«¥¤ãî騩 ¡ ©â ¢ RAM-Disk !!!
.PIC_FN3 EQU #A3
.PIC_FN3 EQU #A3
;=============================================================
;=============================================================
; point 3D13h C=0A5h
; <EFBFBD>ŽŠ€ <EFBFBD><EFBFBD>ˆ ‚›‚Ž„€ <EFBFBD> <EFBFBD>Š<EFBFBD><EFBFBD> ‚室: E = 0/1
.PIC_FN5 EQU #A5
.PIC_FN5 EQU #A5
;=============================================================
;=============================================================
@ -232,9 +228,9 @@ BIOS.Error.WriteProtect EQU 8 ;
; HL,C + DE,B -> HL,C
; dec H'
; jr nz,1
.PIC_FN7 EQU #A7
.PIC_FN7 EQU #A7
; point 3D13h C=0A8h
.PIC_FN8 EQU #A8
.PIC_FN8 EQU #A8
;=============================================================
;=============================================================
@ -248,5 +244,8 @@ BIOS.Error.WriteProtect EQU 8 ;
; 2 - ‚®ááâ ­®¢«¥­¨¥ ª à⨭ª¨ ¯®¤ ¢à¥¬¥­­ë¬ á¯à ©â®¬
; HL - Special coding data ( ¤ ­­ë¥ á¯à ©â  ä®à¬ , 梥â .. )
; flick-¯®¤®¡­ë© ä®à¬ â
.PIC_FN9 EQU #A9
.PIC_FN9 EQU #A9
;=============================================================
ENDMODULE ; BIOS
;-----------------------------------------------------------------------;

View File

@ -115,11 +115,13 @@
;=======================================
MACRO _mInfoALIGN num, filler
.temp equ $
.curr EQU $
.size EQU .temp-.curr
IF .size > 0
DISPLAY " Free bytes: ",/D,.size, " From ",/H, .curr, " to ",/H, .temp, " address."
ENDIF
ALIGN num,filler
IF (($-.temp) > 0)
DISPLAY " Free ",/D,$-.temp, " bytes at ",/H, .temp, " address."
ENDIF
.temp EQU $
ENDM
;=======================================