add files

This commit is contained in:
savelij13 2025-05-29 09:41:39 +03:00
parent b8d85de6a8
commit c72166080d
9 changed files with 1253 additions and 0 deletions

40
accel_sp.a80 Normal file
View File

@ -0,0 +1,40 @@
; LAST UPDATE: 28.02.2025 savelij
; mame/src/mame/sinclair/sprinter.cpp
; OFF = 0, // ld b,b
; FILL, // ld c,c
; SET_BUFFER, // ld d,d
; FILL_VERT, // ld e,e
; DOUBLE, // ld h,h
; COPY, // ld l,l
; OFF_HALT, // halt
; COPY_VERT, // ld a,a
; MODE_AND = 0xa6, // and (hl)
; MODE_XOR = 0xae, // xor (hl)
; MODE_OR = 0xb6, // or (hl)
; MODE_NOP = 0xbe // cp (hl)
; []----------------------------------------------------------[]
ACCELCMD
.OFF EQU 0x40 ; LD B,B ¢ëª«îç¨âì  ªá¥«¥à â®à
.FILL EQU 0x49 ; LD C,C ޝ¥à æ¨ï Fill - § ¯®«­¥­¨¥ ®¤­¨¬ ¡ ©â®¬.
; <20>®á«¥¤ãîé ï ª®¬ ­¤  ⨯  LD (HL),A ¯à¨¢¥¤¥â ª § ¯®«­¥­¨î
; 㪠§ ­­®£® à ­¥¥ ª®«¨ç¥á⢠ ¡ ©â §­ ç¥­¨¥¬ A.
.SET_BUFFER EQU 0x52 ; LD D,D ¢ª«îç¨âì  ªá¥«¥à â®à ¢ ०¨¬ ¯à¨¥¬  ¡ ©â  à §¬¥à 
; ¡«®ª  ¤ «¥¥ á«¥¤ã¥â ª®¬ ­¤  ⨯  LD A,dat, £¤¥ dat ¨
; ¡ã¤¥â ­®¢ë¬ à §¬¥à®¬ ¡«®ª . …᫨ à §¬¥à ¡«®ª  ¡ë«
; ãáâ ­®¢«¥­ à ­¥¥, ¥£® ¬®¦­® ­¥ ãáâ ­ ¢«¨¢ âì
.FILL_VERT EQU 0x5B ; LD E,E ޝ¥à æ¨ï Fill ¤«ï £à ä¨ç¥áª®£® íªà ­  -
; § ¯®«­¥­¨¥ ¢¥à⨪ «ì­ëå «¨­¨©
.DOUBLE EQU 0x64 ; LD H,H
.COPY EQU 0x6D ; LD L,L ª®¯¨à®¢ ­¨¥ ¡«®ª . <20>®á«¥¤ãîé ï ª®¬ ­¤  ⨯ 
; LD A,(HL) ¯à¨¢¥¤¥â ª § ¯®«­¥­¨î އ“  ªá¥«¥à â®à  ¤ ­­ë¬¨
; ¨§  ¤à¥á  (HL),   ª®¬ ­¤  ⨯  LD (DE),A ¯à¨¢¥¤¥â
; ª ¯¥à¥§ ¯¨á¨ ¤ ­­ëå ¨§ އ“  ªá¥«¥à â®à  ¢ ®á­®¢­®¥ ¨«¨ ¢¨¤¥®-އ“.
.OFF_HALT EQU 0x76
.COPY_VERT EQU 0x7F ; LD A,A - ª®¯¨à®¢ ­¨¥ ¡«®ª  ¤«ï £à ä¨ç¥áª®£® íªà ­  ¯®¤®¡­  ª®¬ ­¤¥
.MODE_AND EQU 0xA6 ; AND (HL)
.MODE_XOR EQU 0xAE ; XOR (HL)
.MODE_OR EQU 0xB6 ; OR (HL)
.MODE_NOP EQU 0xBE ; CP (HL)

163
bios_sp.a80 Normal file
View File

@ -0,0 +1,163 @@
; LAST UPDATE: 07.05.2025 savelij
; ‚ë§®¢ ä㭪権
TOBIOS EQU 0x08 ; ¤«ï ¢ë§®¢  ¨§ އ“ ¢ SLOT0 (­ ¯à¨¬¥à ¨§ DSS)
TOBIOS_18 EQU 0x18 ; ¤«ï ¢ë§®¢  ¨§ 8-© áâà ­¨æë <20>‡“ ¢ SLOT0
TOBIOS_3D13 EQU 0x3D13 ; ¤«ï ¢ë§®¢  ¨§ 8-© áâà ­¨æë <20>‡“ ¢ SLOT0
TOBIOS_FROMEXT EQU 0x3FD0 ; ¤«ï ¢ë§®¢  ¨§ 0-© áâà ­¨æë <20>‡“ ¢ SLOT0
BIOSF
; ”㭪樨 à ¡®âë á ¯ ¬ïâìî
.GETMEMSIZE EQU 0xC0 ; Ž¯à¥¤¥«¥­¨¥ ®¡ê¥¬®¢ އ“
.INITMEM EQU 0xC1 ; ˆ­¨æ¨ «¨§ æ¨ï à á¯à¥¤¥«¥­¨ï ¯ ¬ïâ¨
.GETMEM EQU 0xC2 ; ‚뤥«¥­¨¥ ¡«®ª  އ“
.FREEMEM EQU 0xC3 ; Žá¢®¡®¤¨âì ¡«®ª އ“
.GETMEMPAGE EQU 0xC4 ; <20>®«ãç¨âì 䨧¨ç¥áª¨© ­®¬¥à áâà ­¨æë ¨§ ¡«®ª  ¯ ¬ïâ¨
.GETMEMBLKPAGES EQU 0xC5 ; <20>®«ãç¨âì ᯨ᮪ 䨧¨ç¥áª¨å áâà ­¨æ ¡«®ª 
.GETBANKSPORTS EQU 0xC6 ; <20>®«ã祭¨¥  ¤à¥á®¢ ¯®à⮢ ®ª®­
.GETMEMPAGENEXT EQU 0xC7 ; <20>®«ãç¨âì ­®¬¥à á«¥¤ãî饩 áâà ­¨æë ¡«®ª 
.MERGEMEMBLOCKS EQU 0x9E ; ‘«¨ï­¨¥ ¡«®ª®¢
.DIVMEMBLOCKS EQU 0x9D ; <20> §¤¥«¥­¨¥ ¡«®ª 
.GET_RAMD_NUM EQU 0x9B ; <20>®«ãç¨âì ­®¬¥à RAM-Disk-  (0..15) ¯® ¥£® block id
.SWAP_RAM_DRIVES EQU 0x9C ; C¬¥­¨âì ­ ¡®à à ¬¤¨áª®¢ ZX <-> Sp2000
; <20> ¡®â  á ¡«®ª ¬¨ އ“, ª ª á RAM-Disks
.BLK_RD_WR EQU 0xC8 ; —⥭¨¥/§ ¯¨áì ¨§/¢ ¡«®ª ¯ ¬ï⨠ᥪâ®à ¬¨ ¯® 256 ¡ ©â
.GETMEMRMD EQU 0x92 ; <20>®«ãç¨âì ¡«®ª ¯ ¬ï⨠N bytes ¤«ï RAM-Disk' 
.FREEMEMRMD EQU 0x93 ; Žá¢®¡®¤¨âì ¡«®ª ¯ ¬ï⨠¤«ï RAM-Disk' 
.GETMEMPAGERMD EQU 0x94 ; <20>®«ãç¨âì 䨧¨ç¥áª¨© ­®¬¥à áâà ­¨æë RAM-Disk' 
.RAMD_CALC_PAGE EQU 0x98 ; ‚ëç¨á«¥­¨¥ áâà ­¨æë ¨  ¤à¥á  ¢ RAM-Disk ¯®  ¡á®«îâ­®¬ã ­®¬¥àã ᥪâ®à 
.BLK_TO_RAMD EQU 0xC9 ; <20> §­ ç¨âì ¡«®ª ¯ ¬ï⨠RAM-Disk-ã
.RAMD_CLEAR EQU 0xCA ; Žá¢®¡®¤¨âì RAM-Disk
.GET_RAMD_ST EQU 0xCE ; <20>®«ã祭¨¥ ¨¤¥­â¨ä¨ª â®à  ¡«®ª , ­ §­ ç¥­­®£® ­  RAM-Disk
; “¯à ¢«¥­¨¥ ­ §­ ç¥­¨¥¬ ­  ¤¨áª®¢®¤ë
.SET_DISK_REDIR EQU 0x99 ; <20> §­ ç¥­¨¥ ­  ⥪ã騩 «®£¨ç¥áª¨© ¤¨áª®¢®¤ TR-DOS § ¤ ­­®£® ¤à ©¢  (áâ à ï äã­ªæ¨ï ¤«ï TR-DOS!)
.GET_DISK_REDIR EQU 0x9A ; <20>®«ãç¨âì ⨯ ­ §­ ç¥­¨ï ­  ⥪ã騩 «®£¨ç¥áª¨© ¤¨áª®¢®¤ TR-DOS (áâ à ï äã­ªæ¨ï ¤«ï TR-DOS!)
.RAMD_TO_DRV EQU 0xCB ; <20> §­ ç¥­¨¥ RAM-Disk ­  ¤¨áª®¢®¤ TR-DOS
.FDD_TO_DRV EQU 0xCC ; <20> §­ ç¥­¨¥ 䨧¨ç¥áª®£® ¤¨áª®¢®¤  ­  «®£¨ç¥áª¨© TR-DOS
.HDD_TO_DRV EQU 0xCD ; <20> §­ ç¥­¨¥ ¢¨­ç¥áâ¥à  ­  ¤¨áª®¢®¤ TR-DOS
.GET_DRV_ST EQU 0xCF ; <20>®«ãç¨âì ⨯ ­ §­ ç¥­¨ï ­  «®£¨ç¥áª¨© ¤¨áª®¢®¤ TR-DOS
; ”㭪樨 ã¯à ¢«¥­¨ï ®ª­ ¬¨ ¨ ०¨¬ ¬¨ íªà ­ 
.WIN_OPEN EQU 0xB0 ; ”ã­ªæ¨ï ®âªàëâ¨ï ®ª­ 
.WIN_CLOSE EQU 0xB1 ; ‡ ªàë⨥ ®ª­ 
.WIN_COPY EQU 0xB2 ; Š®¯¨à®¢ ­¨¥ ¤ ­­ëå ⥪á⮢®£® ®ª­  ¢ ¯ ¬ïâì (§ ¯®¬¨­ ­¨¥ ®ª­ )
.WIN_RESTORE EQU 0xB3 ; Š®¯¨à®¢ ­¨¥ ¨§ ¯ ¬ï⨠¢ ⥪á⮢®¥ ®ª­® (¢®ááâ ­®¢«¥­¨¥ ®ª­ )
.WIN_GET_SYM EQU 0xB4 ; ‚§ïâì ᨬ¢®« á íªà ­ 
.WIN_PUT_SYM EQU 0xB5 ; <20>®«®¦¨âì ᨬ¢®« ­  íªà ­
.WIN_SET_ZG EQU 0xB6 ; “áâ ­®¢ª  §­ ª®£¥­¥à â®à 
.WIN_MOVE EQU 0xB7 ; <20>¥à¥¬¥é¥­¨¥ ®ª­ 
.WIN_GET_ZG EQU 0xB8 ; <20>®«ã祭¨¥ §­ ª®£¥­¥à â®à 
; ”㭪樨 ¢ë¢®¤  ⥪áâ  ­  íªà ­
.LP_OPEN_S EQU 0x80 ; Žâªàë⨥ áâ ­¤ àâ­ëå ®ª®­
.LP_PRINT_ALL EQU 0x81 ; <20>¥ç âì ᨬ¢®«®¢ á  âਡã⮬
.LP_PRINT_SYM EQU 0x82 ; ‚뢮¤ ᨬ¢®«®¢ ­  íªà ­ ¡¥§  âਡãâ 
.LP_PRINT_ATR EQU 0x83 ; ¯¥ç âì  âਡã⮢
.LP_SET_PLACE EQU 0x84 ; “áâ ­®¢ª  ⥪ã饣® §­ ª®¬¥áâ  ¢ ®ª­¥
.LP_PRINT_LN EQU 0x85 ; ‚뢮¤ áâப¨ ᨬ¢®«®¢ ­  íªà ­ á ⥪ã饣® §­ ª®¬¥áâ 
.LP_PRINT_LN2 EQU 0x86 ; ‚뢮¤ áâப¨ ᨬ¢®«®¢ ­  íªà ­ ¡¥§  âਡã⮢
.LP_PRINT_LN3 EQU 0x87 ; ‚뢮¤ áâப¨ ᨬ¢®«®¢ ¤® à §¤¥«¨â¥«ï
.LP_PRINT_LN4 EQU 0x88 ; ‚뢮¤ áâப¨ ᨬ¢®«®¢ ¤® à §¤¥«¨â¥«ï, ¡¥§  âਡã⮢
.LP_CLS_WIN EQU 0x89 ; Žç¨á⪠ íªà ­ 
.LP_SCROLL_UD EQU 0x8A ; ‘ªà®««¨­£ ç á⨠£«®¡ «ì­®£® ®ª­  ¢¢¥àå/¢­¨§
.LP_PRINT_LN5 EQU 0x8B ; ‚뢮¤ áâப¨ ᨬ¢®«®¢ ­  íªà ­ ¤® à §¤¥«¨â¥«ï
.LP_PRINT_LN6 EQU 0x8C ; ‚뢮¤ áâப¨ ᨬ¢®«®¢ ­  íªà ­ ¤® à §¤¥«¨â¥«ï ¡¥§  âਡã⮢
.LP_CLS_WIN2 EQU 0x8D ; Žç¨á⪠ íªà ­  á 㪠§ ­¨¥¬ ᨬ¢®«  § ¯®«­¥­¨ï
.LP_GET_PLACE EQU 0x8E ; <20>®«ãç¨âì ⥪ã饥 ¯®«®¦¥­¨¥ ¢ë¢®¤  ­  íªà ­
.LP_PR_LINE_DIR EQU 0xE0 ; !TODO ­¥¤®¤¥« ­ . <20>¥ç âì "¢ ª®­á®«ì" ¤® à §¤¥«¨â¥«ï
; ƒà ä¨ç¥áª¨¥ ä㭪樨
.PIC_POINT EQU 0xA1 ; “áâ ­®¢¨âì â®çªã
.PIC_SET_PAL EQU 0xA4 ; “áâ ­®¢ª  ¯ «¨âàë
.PIC_GET_PAL EQU 0xA4 ; —⥭¨¥ ¯ «¨âàë (­®¬¥à â ª®© ¦¥ ª ª ã .PIC_SET_PAL)
.SET_PAL_INIT EQU 0xA6 ; “áâ ­®¢ª  ¢­ãâ७­¥© ¯ «¨âàë
; <20> ¡®â  á HDD (fast)
.HDD_INIT EQU 0x40 ; ˆ­¨æ¨ «¨§ æ¨ï ¢¨­ç¥áâ¥à 
.HDD_RECAL EQU 0x41 ; <20>¥ª «¨¡à®¢ª  ¢¨­ç¥áâ¥à 
.HDD_TEST_IDE EQU 0x42 ; ’¥áâ ­ «¨ç¨ï ¨­â¥àä¥©á  IDE
.HDD_PREPARE EQU 0x43 ; <20>®¤£®â®¢ª  ¢¨­ç¥áâ¥à  ª ®¯¥à æ¨¨ ç⥭¨ï/§ ¯¨á¨
.HDD_READ_BPB EQU 0x44 ; —¨â âì BPB ¯¥à¢®£® à §¤¥« 
.HDD_READ EQU 0x45 ; —¨â âì ᥪâ®à  á ¢¨­ç¥áâ¥à 
.HDD_WRITE EQU 0x46 ; <20>¨á âì ᥪâ®à  ­  ¢¨­ç¥áâ¥à
.HDD_PART EQU 0x47 ; <20> áâனª  ¯ àâ¨æ¨© ¨ master/slave
.HDD_READ_NEXT EQU 0x48 ; —¨â âì á«¥¤ãî騩 ᥪâ®à (ONLY FOR LBA!)
; ”㭪樨 à ¡®âë á ¦¥á⪨¬¨ ¤¨áª ¬¨ ¨ ¤¨áª®¢®¤ ¬¨
.DRV_RESET EQU 0x51 ; ‘¡à®á ª®­â஫«¥à  ¨ ­ áâனª  ­  ¤¨áª
.DRV_READ_LONG EQU 0x52 ; —⥭¨¥ á ãáâனá⢠¢ 㪠§ ­­ãî áâà ­¨æã
.DRV_WRITE_LONG EQU 0x53 ; ‡ ¯¨áì ­  ãáâனá⢠ ¢ 㪠§ ­­ãî áâà ­¨æã
.DRV_VERIFY EQU 0x54 ; <20>஢¥àª  ᥪâ®à®¢
.DRV_READ EQU 0x55 ; —⥭¨¥ á ãáâனá⢠
.DRV_WRITE EQU 0x56 ; ‡ ¯¨áì ­  ãáâனá⢠
.DRV_DETECT EQU 0x57 ; Ž¯à¥¤¥«¥­¨¥ ¯ à ¬¥â஢ ãáâனá⢠
.DRV_GET_PAR EQU 0x58 ; <20>®«ãç¨âì ¯ à ¬¥âàë ­®á¨â¥«ï
.DRV_SET_PAR EQU 0x59 ; “áâ ­®¢¨âì ¯ à ¬¥âàë ­®á¨â¥«ï
.DRV_VERSION EQU 0x5A ; <20>®¬¥à ¢¥àᨨ ¤¨áª®¢®© ᯥæ¨ä¨ª æ¨¨
.DRV_EXTENDED EQU 0x5E ; <20> áè¨à¥­­ë¥ ä㭪樨 ¤«ï ¤à ©¢®¢ ; [x] 21/12/2023
.DRV_LIST EQU 0x5F ; ‘¯¨á®ª ¤¨áª®¢ëå ãáâனáâ¢
; ”㭪樨 ã¯à ¢«¥­¨ï '¦¥«¥§®¬'
.FN_TURBO EQU 0x8F ; ”ã­ªæ¨ï ã¯à ¢«¥­¨ï âãà¡® ०¨¬®¬ ¨ FDD 720/1440
.CheckInit EQU 0x97 ; …᫨ ®¡­ à㦥­ ¯¥à¢ë© áâ àâ, â® ¨­¨æ¨ «¨§ æ¨ï ¢á¥© ¯ ¬ïâ¨, á¨á⥬­ëå ¯¥à¥¬¥­­ëå
.FullInit EQU 0x9F ; ˆ­¨æ¨ «¨§ æ¨ï ¢á¥© ¯ ¬ïâ¨, á¨á⥬­ëå ¯¥à¥¬¥­­ëå
.FN_CRIPT EQU 0xED ; ”ã­ªæ¨ï ¨¤¥­â¨ä¨ª æ¨¨ ¬ â¥à¨­áª®© ¯« âë ¨ ª®­ä¨£ãà æ¨¨
.RST_CONF_AY8910 EQU 0xEE ; „«ï ᮢ¬¥á⨬®á⨠á á®ä⮬ Sp97, ¯¥à¥ª«î祭¨¥ ¢ ª®­äã AY8910
.FN_VERSION EQU 0xEF ; ‚ë¤ ç  ¨­ä®à¬ æ¨¨ ® ¢¥àᨨ BIOS  ¨ ¦¥«¥§ 
.RST_CONF_SP97_1 EQU 0xF0 ; „«ï ᮢ¬¥á⨬®á⨠á á®ä⮬ Sp97, ¯¥à¥ª«î祭¨¥ ¢ ª®­äã Sprinter-1
.RST_CONF_SP97_2 EQU 0xF1 ; „«ï ᮢ¬¥á⨬®á⨠á á®ä⮬ Sp97, ¯¥à¥ª«î祭¨¥ ¢ ª®­äã Sprinter-2
.FN_SYNC EQU 0xF2 ; “áâ ­®¢ª  ᨭåà®­¨§ æ¨¨, ®ç¨á⪠ áâà ­¨æë ०¨¬  íªà ­ 
.RST_CONF_CUSTOM EQU 0xF3 ; <20>¥à¥ª«î祭¨¥ ª®­ä¨£ãà æ¨¨ ¯®«ì§®¢ â¥«ï. SPRINTER_ALL
.DCP_CONFIG EQU 0xF4 ; ”ã­ªæ¨ï ã¯à ¢«¥­¨ï ¤¥è¨äà â®à®¬ ¯®à⮢. ;[x] BIOS 3.05 + ­®¢ ï ¯®¤äã­ªæ¨ï
.CMOS_TEST EQU 0xF5 ; <20>஢¥à¨âì ­ «¨ç¨¥ CMOS
.CMOS_RD EQU 0xF6 ; —¨â âì ¨§ ॣ¨áâà  CMOS
.CMOS_WR EQU 0xF7 ; <20>¨á âì ¢ ॣ¨áâà CMOS
.SET_PORTS EQU 0xF8 ; “áâ ­®¢ª  ¢­ãâ७­¨å ¯®à⮢. ”ã­ªæ¨ï ¢ à §à ¡®âª¥
.READ_PORTS EQU 0xF9 ; —⥭¨¥ ¢­ãâ७­¨å ¯®à⮢. ;[x] 26/01/2024
.GOTO_SPECTRUM EQU 0xFB ; [ ] ¤®ª®¢ëàïâì
.REINIT EQU 0xFD ; [x] restart, soft/hard reset, reinit RAM ID for spectrum pages
SWAP_RAM_DRIVES
.SP2000 EQU 0x00 ; <20>¥¦¨¬ à ¬¤¨áª®¢ Sp2000
.ZX EQU 0xFF ; <20>¥¦¨¬ à ¬¤¨áª®¢ ZX Spectrum mode
.INFO EQU 0xFE ; “§­ âì ª ª®© ०¨¬ <20>€Œ ¤¨áª®¢ ãáâ ­®¢«¥­
FN_TURBO
.OFF EQU 0x02 ;
.ON EQU 0x03 ;
.VG.OFF EQU 0x12 ;
.VG.ON EQU 0x13 ;
FN_VERSION ; ‚ë¤ ç  ¨­ä®à¬ æ¨¨ ® ¢¥àᨨ BIOS  ¨ ¦¥«¥§ . ¡ãä¥à¥ ¡ã¤¥â:
.STR_FIRMWARENAME EQU 1 ; ü ¯®«ï á ­ §¢ ­¨¥¬ ¯à®è¨¢ª¨
.STR_PC_NAME EQU 2 ; ü ¯®«ï á ­ §¢ ­¨¥¬ ª®¬¯ìîâ¥à 
.STR_BITSTREAMVER EQU 3 ; ü ¯®«ï á ¢¥àᨥ© ¡¨âáâਬ  ¢ <20>‡“
REINITMODE
.RESTART EQU 1
.SOFT_RESET EQU 2
.HARD_RESET EQU 3
.SET_ZXPAGES EQU 4
DRV_EXTENDED
.CD_Eject EQU 0x00 ; Žâªàëâì «®â®ª CD
.CD_Close EQU 0x01 ; ‡ ªàëâì «®â®ª CD
FN_CRIPT
.BOARDNUMBER EQU 0x01 ; ‚ë¤ ç  ¯®«­®£® Board Number
.ACEXANDBITSTREAM EQU 0x02 ; ‚ë¤ ç  ¬®¤¥«¨ ACEX ¨ ¢¥àᨨ ¡¨âáâਬ  ¢ ROM
LP_VIDEOMODE
.ZX_32X24_DEFAULT EQU 0x00 ; ᯥªâà㬮¢áª®¥ ®ª­® 32x24
.TXT_64X24_DEFAULT EQU 0x01 ; ⥪á⮢®¥ ®ª­® 64x24
.TXT_40X32_DEFAULT EQU 0x02 ; ⥪á⮢®¥ ®ª­® 40x24
.TXT_80X32_DEFAULT EQU 0x03 ; ⥪á⮢®¥ ®ª­® 80x32
.ZX_32X24 EQU 0x04 ; ᯥªâà㬮¢áª®¥ ®ª­®, HL - ¯®«®¦¥­¨¥ ®ª­ 
.TXT_64X24 EQU 0x05 ; ⥪á⮢®¥ ®ª­® 64x24, HL - ¯®«®¦¥­¨¥ ®ª­ 
.TXT_40X32 EQU 0x06 ; ⥪á⮢®¥ ®ª­® 40x32, HL - ¯®«®¦¥­¨¥ ®ª­ 
.TXT_80X32 EQU 0x07 ; ⥪á⮢®¥ ®ª­® 80x32, HL - ¯®«®¦¥­¨¥ ®ª­ 
.GRAF_0 EQU 0x08 ; £à ä¨ç¥áª®¥ ®ª­® 0, HL - ¯®«®¦¥­¨¥ ®ª­ 
.GRAF_1 EQU 0x09 ; £à ä¨ç¥áª®¥ ®ª­® 1, HL - ¯®«®¦¥­¨¥ ®ª­ 

299
define_sp.a80 Normal file
View File

@ -0,0 +1,299 @@
; 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
; ¢®§¢à é ¥¬ë¥ ¢ ¯à®£à ¬¬ã

283
dss_sp.a80 Normal file
View File

@ -0,0 +1,283 @@
; LAST UPDATE: 28.04.2025 savelij
DSSF
; ”㭪樨 ¨¤¥­â¨ä¨ª æ¨¨ á¨á⥬ë
.VERSION EQU 0x00 ; (‚¥àá¨ï DSS)
; ”㭪樨 ¤«ï à ¡®âë á ¤¨áª®¬
.CHDISK EQU 0x01 ; (‘¬¥­  ⥪ã饣® ¤¨áª )
.CURDISK EQU 0x02 ; (<28>®¬¥à ⥪ã饣® ¤¨áª )
.DSKINFO EQU 0x03 ; (ˆ­ä®à¬ æ¨ï ® ¤¨áª¥)
.G_ENTRY EQU 0x04
.RESCANDRIVES EQU 0x08
.BOOTDSK EQU 0x09 ; (<28>®¬¥à á¨á⥬­®£® ¤¨áª )
; ”㭪樨 ¤«ï à ¡®âë á ä ©« ¬¨
.CREATE EQU 0x0A ; (‘®§¤ ­¨¥ ä ©« )
.CREAT_N EQU 0x0B ; (‘®§¤ ­¨¥ ­®¢®£® ä ©« )
.DELETE EQU 0x0E ; (“¤ «¥­¨¥ ä ©« )
.RENAME EQU 0x10 ; (<28>¥à¥¨¬¥­®¢ ­¨¥ ä ©« )
.OPEN EQU 0x11 ; (Žâªàë⨥ ä ©« )
.CLOSE EQU 0x12 ; (‡ ªàë⨥ ä ©« )
.READ EQU 0x13 ; (—⥭¨¥ ¨§ ä ©« )
.WRITE EQU 0x14 ; (‡ ¯¨áì ¢ ä ©«)
.MOVE_FP EQU 0x15 ; (<28>¥à¥¬¥é¥­¨¥ 㪠§ â¥«ï ¢ ä ©«¥)
.ATTRIB EQU 0x16 ; (<28>®«ã祭¨¥/¨§¬¥­¥­¨¥  âਡãâ  ä ©« )
.GET_D_T EQU 0x17 ; (ˆ­ä®à¬ æ¨ï ® ¤ â¥ ¨ ¢à¥¬¥­¨ ä ©« )
.PUT_D_T EQU 0x18 ; (ˆ§¬¥­¥­¨¥ ¤ âë ¨ ¢à¥¬¥­¨ ä ©« )
.F_FIRST EQU 0x19 ; (<28>®¨áª ¯¥à¢®£® ᮢ¯ ¤ î饣® ä ©« )
.F_NEXT EQU 0x1A ; (<28>®¨áª á«¥¤ãî饣® ᮢ¯ ¤ î饣® ä ©« )
.MKDIR EQU 0x1B ; (‘®§¤ ­¨¥ ª â «®£ )
.RMDIR EQU 0x1C ; (“áâà ­¥­¨¥ ª â «®£ )
.CHDIR EQU 0x1D ; (‘¬¥­  ⥪ã饣® ª â «®£ )
.CURDIR EQU 0x1E ; (ˆ­ä®à¬ æ¨ï ® ⥪ã饬 ª â «®£¥)
; ”㭪樨 ¤«ï à ¡®âë á ¤ â®© ¨ ¢à¥¬¥­¥¬
.GETTIME EQU 0x21 ; (’¥ªãé ï ¤ â  ¨ ¢à¥¬ï)
.SETTIME EQU 0x22 ; (“áâ ­®¢¨âì ⥪ãéãî ¤ âã ¨ ¢à¥¬ï)
; ”㭪樨 ã¯à ¢«¥­¨ï ¯ ¬ïâìî
.SETWIN EQU 0x38 ; (<28>®¤ª«î祭¨¥ áâà ­¨æë ¯ ¬ïâ¨)
.SETWIN1 EQU 0x39 ; (<28>®¤ª«î祭¨¥ áâà ­¨æë ¯ ¬ï⨠¢ ¯¥à¢®¥ ®ª­®)
.SETWIN2 EQU 0x3A ; (<28>®¤ª«î祭¨¥ áâà ­¨æë ¯ ¬ï⨠¢® ¢â®à®¥ ®ª­®)
.SETWIN3 EQU 0x3B ; (<28>®¤ª«î祭¨¥ áâà ­¨æë ¯ ¬ï⨠¢ âà¥âì¥ ®ª­®)
.INFOMEM EQU 0x3C ; (ˆ­ä®à¬ æ¨ï ® ¯ ¬ïâ¨)
.GETMEM EQU 0x3D ; (‚뤥«¥­¨¥ ¡«®ª  ¯ ¬ïâ¨)
.FREEMEM EQU 0x3E ; (Žá¢®¡®¦¤¥­¨¥ ¡«®ª  ¯ ¬ïâ¨)
.SETMEM EQU 0x3F ; (ˆ§¬¥­¥­¨¥ ¡«®ª  ¯ ¬ïâ¨)
; ”㭪樨 ¢¢®¤  á ª« ¢¨ âãàë
.WAITKEY EQU 0x30 ; (ަ¨¤ ­¨¥ ᨬ¢®«  á ª« ¢¨ âãàë)
.SCANKEY EQU 0x31 ; (ޝà®á ª« ¢¨ âãàë ¡¥§ ®¦¨¤ ­¨ï)
.ECHOKEY EQU 0x32 ; (ަ¨¤ ­¨¥ ᨬ¢®«  á ª« ¢¨ âãàë á ¯¥ç âìî)
.CTRLKEY EQU 0x33 ; (<28>®«ãç¨âì á®áâ®ï­¨¥ ª« ¢¨ âãàë)
.EDIT EQU 0x34
.K_CLEAR EQU 0x35 ; (Žç¨áâ¨âì ¡ãä¥à ª« ¢¨ âãàë ¨ ¢ë¯®«­¨âì äã­ªæ¨î)
.K_SETUP EQU 0x36 ; (“¯à ¢«¥­¨¥ ­ áâனª ¬¨ ª« ¢¨ âãàë)
.TESTKEY EQU 0x37 ; (ޝà®á ¡ãä¥à  ª« ¢¨ âãàë)
; ”㭪樨 ¤«ï ¨á¯®«­¥­¨ï ¯à®£à ¬¬
.EXEC EQU 0x40 ; (‚믮«­¨âì ä ©«)
.EXIT EQU 0x41 ; (‡ ¢¥à襭¨¥ ¯à®£à ¬¬ë)
.GET_ERR EQU 0x42 ; (<28>®«ãç¨âì ª®¤ § ¢¥à襭¨ï ¯à®£à ¬¬ë)
; ”㭪樨 ¤«ï à ¡®âë á® áâப ¬¨ ¨ ª®¬ ­¤­®© áâப®©
.GSWITCH EQU 0x43 ; (‚뤥«¨âì ¯ à ¬¥âà ª®¬ ­¤­®© áâப¨)
.DOSNAME EQU 0x44 ; (<28>८¡à §®¢ âì ¨¬ï ä ©« )
.EX_PATH EQU 0x45 ; (<28> §¡®à ª®¬ ­¤­®© áâப¨)
; ”㭪樨 ¤«ï à ¡®âë á ¯¥à¥¬¥­­ë¬¨
.ENVIRON EQU 0x46 ; (‘¨á⥬­®¥ ®ªà㦥­¨¥)
.APPINFO EQU 0x47 ; (<28>®«ã祭¨¥ ¨­ä®à¬ æ¨¨ ¯à¨«®¦¥­¨ï)
; ”㭪樨 à ¡®âë á íªà ­®¬
.SETVMOD EQU 0x50 ; (‚ë¡®à ०¨¬  íªà ­ )
.GETVMOD EQU 0x51 ; (<28>®«ãç¨âì ⥪ã騩 ०¨¬ íªà ­ )
.LOCATE EQU 0x52 ; (“áâ ­®¢¨âì ¯®§¨æ¨î ªãàá®à )
.CURSOR EQU 0x53 ; (<28>®«ãç¨âì ⥪ãéãî ¯®§¨æ¨î ªãàá®à )
.SELPAGE EQU 0x54 ; (‚ë¡à âì  ªâ¨¢­ãî áâà ­¨æã íªà ­ )
.SCROLL EQU 0x55 ; (<28>பàã⪠ ®ª­ )
.CLEAR EQU 0x56 ; (Žç¨á⪠ ®ª­ )
.RDCHAR EQU 0x57 ; (‘ç¨â âì ᨬ¢®« á íªà ­ )
.WRCHAR EQU 0x58 ; (<28> ¯¥ç â âì ᨬ¢®« ­  íªà ­¥)
.WINCOPY EQU 0x59 ; (‡ ¯®¬­¨âì ®ª­® íªà ­ )
.WINREST EQU 0x5A ; (‚®ááâ ­®¢¨âì ®ª­® íªà ­ )
.PUTCHAR EQU 0x5B ; (<28> ¯¥ç â âì ᨬ¢®« ¢ ⥪ã饩 ¯®§¨æ¨¨ ªãàá®à )
.PCHARS EQU 0x5C ; (<28> ¯¥ç â âì áâபã ᨬ¢®«®¢ ¢ ⥪ã饩 ¯®§¨æ¨¨ ªãàá®à )
.LIB_SUB EQU 0x5D ; [ ] 11/02/2024 - ”ã­ªæ¨ï á ¯®¯®«­ï¥¬ë¬¨ ¯®¤äã­ªæ¨ï¬¨)))
; ”㭪樨 ¤«ï ¯¥ç â¨ ­  ¯à¨­â¥à¥
.PRINT EQU 0x5F ; (‚뢮¤ ᨬ¢®«  ­  ¯à¨­â¥à ¡¥§ ®¦¨¤ ­¨ï)
EX_PATH
.GET_ALL EQU 0x00 ; <20>®¤äã­ªæ¨ï 0 - <20> §®¡à âì áâபã
.GET_DRIVE EQU 0x01 ; <20>®¤äã­ªæ¨ï 1 - ‚뤥«¨âì ¨¬ï ¤¨áª 
.GET_PATH EQU 0x02 ; <20>®¤äã­ªæ¨ï 2 - ‚뤥«¨âì ¤¨à¥ªâ®à¨î
.GET_NAME EQU 0x03 ; <20>®¤äã­ªæ¨ï 3 - ‚뤥«¨âì ¨¬ï ä ©« 
.GET_TYPE EQU 0x04 ; <20>®¤äã­ªæ¨ï 4 - ‚뤥«¨âì à áè¨à¥­¨¥ ä ©« 
.GET_ALL_EX EQU 0x05 ; <20>®¤äã­ªæ¨ï 5 - ‚뤥«¨âì ¨¬ï ¤¨áª , ¯ãâì ª ä ©«ã, ¨¬ï ä ©«  ¨ à áè¨à¥­¨¥ ä ©« 
.GSWITCH EQU 0x07 ; <20>®¤äã­ªæ¨ï 7 - ‚뤥«¨âì ¯ à ¬¥âà ª®¬ ­¤­®© áâப¨
.GETNAME EQU 0x08 ; <20>®¤äã­ªæ¨ï 8 - <20>८¡à §®¢ âì ¨§ 11 ᨬ¢®«ì­®£® ä®à¬ â  ¢ ä®à¬ â „Ž‘
.MASK EQU 0x09 ; <20>®¤äã­ªæ¨ï 9 - <20>८¡à §®¢ âì ¨§ ä®à¬ â  „Ž‘ ¢ 11 ᨬ¢®«ì­ë© ä®à¬ â
SETVMOD
.SCREEN_0 EQU 0
.SCREEN_1 EQU 1
.TXT40X32 EQU 2 ; ⥪áâ®¢ë© 40x32x16 梥⮢
.TXT80X32 EQU 3 ; ⥪áâ®¢ë© 80x32x16 梥⮢
.GRF320X256 EQU 0x81 ; £à ä¨ç¥áª¨© 320x256x256 梥⮢
.GRF640X256 EQU 0x82 ; £à ä¨ç¥áª¨© 640x256x16 梥⮢
FILEMODE
.RW EQU 0
.R EQU 1
.W EQU 2
ENVIRON
.INIT EQU 0xFF
.READ EQU 0
.GET EQU 1
.SET EQU 2
EXPATH
.GET_ALL EQU 0x00 ; <20> §®¡à âì áâபã
.GET_DRIVE EQU 0x01 ; ‚뤥«¨âì ¨¬ï ¤¨áª 
.GET_PATH EQU 0x02 ; ‚뤥«¨âì ¤¨à¥ªâ®à¨î
.GET_NAME EQU 0x03 ; ‚뤥«¨âì ¨¬ï ä ©« 
.GET_TYPE EQU 0x04 ; ‚뤥«¨âì à áè¨à¥­¨¥ ä ©« 
.GET_ALL_EX EQU 0x05 ; ‚뤥«¨âì ¨¬ï ¤¨áª , ¯ãâì ª ä ©«ã, ¨¬ï ä ©«  ¨ à áè¨à¥­¨¥ ä ©« 
.RESERVED EQU 0x06 ; ‡ à¥§¥à¢¨à®¢ ­®
.GSWITCH EQU 0x07 ; ‚뤥«¨âì ¯ à ¬¥âà ª®¬ ­¤­®© áâப¨
.GETNAME EQU 0x08 ; <20>८¡à §®¢ âì ¨§ 11 ᨬ¢®«ì­®£® ä®à¬ â  ¢ ä®à¬ â „Ž‘
.MASK EQU 0x09 ; <20>८¡à §®¢ âì ¨§ ä®à¬ â  „Ž‘ ¢ 11 ᨬ¢®«ì­ë© ä®à¬ â
; ä ©«®¢ ï ᯥæ¨ä¨ª æ¨ï ¯®¨áª  ¯¥à¢®£® ᮢ¯ ¤ î饣® ä ©«  F_FIRST
FFIRST
_INIT_VAR
_SETVAR .MaskName, 8 ; ¬ áª  ¨¬¥­¨ ¤«ï ¯®¨áª 
_SETVAR .MaskExt, 3 ; ¬ áª  à áè¨à¥­¨ï ¤«ï ¯®¨áª 
_SETVAR .MaskAttr, BYTE ; ¬ áª   ââਡã⮢ ¤«ï ¯®¨áª 
_SETVAR .NTRes, BYTE ; 1 § à¥§¥à¢¨à®¢ ­­®
_SETVAR .CrtTimeTenth, BYTE ; 1 ¬¨««¨á¥ªã­¤ë ¢à¥¬¥­¨ á®§¤ ­¨ï ä ©« 
_SETVAR .CrtTime, WORD ; 2 ¢à¥¬ï á®§¤ ­¨ï ä ©« 
_SETVAR .CrtDate, WORD ; 2 ¤ â  á®§¤ ­¨ï ä ©« 
_SETVAR .LstAccDate, WORD ; 2 ¤ â  ¯®á«¥¤­¥£® ®¡à é¥­¨ï ª ä ©«ã
_SETVAR .FstClusHI, WORD ; 2 áâ à襥 á«®¢® ­®¬¥à  ª« áâ¥à 
_SETVAR .WrtTime, WORD ; 2 ¢à¥¬ï ¯®á«¥¤­¥© § ¯¨á¨
_SETVAR .WrtDate, WORD ; 2 ¤ â  ¯®á«¥¤­¥© § ¯¨á¨
_SETVAR .FstClusLO, WORD ; 2 ¬« ¤è¥¥ á«®¢® ­®¬¥à  ª« áâ¥à 
_SETVAR .FileSize, DWORD ; 4 à §¬¥à ä ©« 
_SETVAR .Attr, BYTE ;  ââਡãâë ­ ©¤¥­­®£® ä ©« 
_SETVAR .Name, 8 ; ¨¬ï ­ ©¤¥­­®£® ä ©« 
_SETVAR .Ext, 3 ; à áè¨à¥­¨¥ ­ ©¤¥­®£® ä ©« 
_SETVAR .SIZE, 0 ; à §¬¥à áâàãªâãàë
; áâ âãáë ª« ¢¨ âãàë
KEYBSTAT
; C - ०¨¬ ª« ¢¨ âãàë
_BITMASK RUSLAT, 7 ; RUS/LAT
_BITMASK NUMLOCK, 3 ; Num Lock
_BITMASK SCROLLLOCK, 2 ; Scroll Lock
_BITMASK INSERT, 1 ; Insert
_BITMASK CAPSLOCK, 0 ; Caps Lock
; B - á®áâ®ï­¨¥ è¨ä⮢
_BITMASK LEFTSHIFT, 7 ; Left Shift
_BITMASK RIGHTSHIFT, 6 ; Right Shift
_BITMASK CTRL, 5 ; Ctrl
_BITMASK ALT, 4 ; Alt
_BITMASK LEFTCTTRL, 3 ; Left Ctrl
_BITMASK LEFTALT, 2 ; Left Alt
_BITMASK RIGHTCTRL, 1 ; Right Ctrl
_BITMASK RIGHTALT, 0 ; Right Alt
; à áª« ¤ª  ª« ¢¨ âãàë
KEYBMAP
_INIT_VAR
_SETVAR .NORMAL ; Normal
_SETVAR .SHIFT ; Shift
_SETVAR .CAPSLOCK ; Caps Lock
_SETVAR .CAPSSHIFT ; Caps Lock + Shift
_SETVAR .NORMALALTK ; Normal ( «ìâ¥à­ â¨¢­ ï ª« ¢¨ âãà )
_SETVAR .SHIFTALTK ; Shift ( «ìâ¥à­ â¨¢­ ï ª« ¢¨ âãà )
_SETVAR .CAPSLOCKALTK ; Caps Lock ( «ìâ¥à­ â¨¢­ ï ª« ¢¨ âãà )
_SETVAR .CAPSHIFTALTK ; Caps Lock + Shift ( «ìâ¥à­ â¨¢­ ï ª« ¢¨ âãà )
; <20>ਫ®¦¥­¨¥ <20>. ’ ¡«¨æ  ¯®§¨æ¨®­­ëå ª®¤®¢
SC ; ¢®§¢à é ¥¬ë¥ ᪠­ ª®¤ë
_INIT_VAR
; key ASCII/SCAN
_SETVAR .APOSTROF ; ` #00 #00
_SETVAR .ESC ; Esc #1B #01
_SETVAR .1 ; 1 #31 #02
_SETVAR .2 ; 2 #32 #03
_SETVAR .3 ; 3 #33 #04
_SETVAR .4 ; 4 #34 #05
_SETVAR .5 ; 5 #35 #06
_SETVAR .6 ; 6 #36 #07
_SETVAR .7 ; 7 #37 #08
_SETVAR .8 ; 8 #38 #09
_SETVAR .9 ; 9 #39 #0A
_SETVAR .0 ; 0 #30 #0B
_SETVAR .MINUS ; - #2D #0C
_SETVAR .EQUAL ; = #3D #0D
_SETVAR .BKSP ; BackSpace #08 #0E
_SETVAR .TAB ; Tab #09 #0F
_SETVAR .Q ; Q #51 #10
_SETVAR .W ; W #57 #11
_SETVAR .E ; E #45 #12
_SETVAR .R ; R #52 #13
_SETVAR .T ; T #54 #14
_SETVAR .Y ; Y #59 #15
_SETVAR .U ; U #55 #16
_SETVAR .I ; I #49 #17
_SETVAR .O ; O #4F #18
_SETVAR .P ; P #50 #19
_SETVAR .QSKOBKAL ; [ #5B #1A
_SETVAR .QSKOBKAR ; ] #5D #1B
_SETVAR .CAPSLOCK ; CapsLock #00 #1C
_SETVAR .A ; A #41 #1D
_SETVAR .S ; S #53 #1E
_SETVAR .D ; D #44 #1F
_SETVAR .F ; F #46 #20
_SETVAR .G ; G #47 #21
_SETVAR .H ; H #48 #22
_SETVAR .J ; J #4A #23
_SETVAR .K ; K #4B #24
_SETVAR .L ; L #4C #25
_SETVAR .DOTZAP ; ; #3B #26
_SETVAR .KAVYCH ; ' #27 #27
_SETVAR .ENTER ; Enter #0D #28
_SETVAR .LSHIFT ; LShift --- #29
_SETVAR .Z ; Z #5A #2A
_SETVAR .X ; X #58 #2B
_SETVAR .C ; C #43 #2C
; key ASCII/SCAN
_SETVAR .V ; V #56 #2D
_SETVAR .B ; B #42 #2E
_SETVAR .N ; N #4E #2F
_SETVAR .M ; M #4D #30
_SETVAR .ZAP ; , #2C #31
_SETVAR .DOT ; . #2E #32
_SETVAR .DIV ; / #2F #33
_SETVAR .RSHIFT ; RShift --- #34
_SETVAR .BSLASH ; #5C #35
_SETVAR .LCTRL ; LCtrl --- #36
_SETVAR .LALT ; LAlt --- #37
_SETVAR .SPACE ; Space #20 #38
_SETVAR .RALT ; RAlt --- #39
_SETVAR .RCTRL ; RCtrl --- #3A
_SETVAR .F1 ; F1 #00 #3B
_SETVAR .F2 ; F2 #00 #3C
_SETVAR .F3 ; F3 #00 #3D
_SETVAR .F4 ; F4 #00 #3E
_SETVAR .F5 ; F5 #00 #3F
_SETVAR .F6 ; F6 #00 #40
_SETVAR .F7 ; F7 #00 #41
_SETVAR .F8 ; F8 #00 #42
_SETVAR .F9 ; F9 #00 #43
_SETVAR .F10 ; F10 #00 #44
_SETVAR .F11 ; F11 #00 #45
_SETVAR .F12 ; F12 #00 #46
_SETVAR .PRTSCRN ; PrScrn --- #47
_SETVAR .SCRLLOCK ; ScrlLock #00 #48
_SETVAR .NUMLOCK ; NumLock #00 #49
_SETVAR .XDIV ; / #2F #4A
_SETVAR .XMUL ; * #2A #4B
_SETVAR .XMINUS ; - #2D #4C
_SETVAR .XDOTZAP ; + #2B #4D
_SETVAR .XENTER ; enter #0D #4E
_SETVAR .XDEL ; Del . #00 #4F
_SETVAR .X0 ; Ins 0 #00 #50
_SETVAR .X1 ; End 1 #00 #51
_SETVAR .X2 ; Down 2 #00 #52
_SETVAR .X3 ; PgDw 3 #00 #53
_SETVAR .X4 ; Left 4 #00 #54
_SETVAR .X5 ; 5 #00 #55
_SETVAR .X6 ; Right 6 #00 #56
_SETVAR .X7 ; Home 7 #00 #57
_SETVAR .X8 ; Up 8 #00 #58
_SETVAR .X9 ; PgUp 9 #00 #59
_INIT_VAR 0x80
_SETVAR .RUS

71
errors_sp.a80 Normal file
View File

@ -0,0 +1,71 @@
; LAST UPDATE: 13.05.2025 savelij
ERR_DSS
_INIT_VAR
_SETVAR .NO_ERROR ; EQU 0x00 ; 00 - ­¥â ®è¨¡®ª
_SETVAR .INVALID_COMMAND ; EQU 0x01 ; 01 - ­¥¢¥à­ë© ­®¬¥à ä㭪樨
_SETVAR .INVALID_DRIVE ; EQU 0x02 ; 02 - ­¥¯à ¢¨«ì­ë© ­®¬¥à ãáâனá⢠
_SETVAR .FILE_NOT_FOUND ; EQU 0x03 ; 03 - ä ©« ­¥ ®¡­ à㦥­
_SETVAR .PATH_NOT_FOUND ; EQU 0x04 ; 04 - ­¥¢¥à­ë© ¯ãâì
_SETVAR .INVALID_HANDLE ; EQU 0x05 ; 05 - ­¥áãé¥áâ¢ãî騩 ä ©«®¢ë© ¬ ­¨¯ã«ïâ®à
_SETVAR .NO_HANDLES ; EQU 0x06 ; 06 - ­¥â ᢮¡®¤­®£® ä ©«®¢®£® ¬ ­¨¯ã«ïâ®à 
_SETVAR .FILE_EXISTS ; EQU 0x07 ; 07 - ä ©« áãé¥áâ¢ã¥â
_SETVAR .READONLY ; EQU 0x08 ; 08 - ä ©« ⮫쪮 ¤«ï ç⥭¨ï
_SETVAR .ROOT_OVERFLOW ; EQU 0x09 ; 09 - ¯¥à¥¯®«­¥­¨¥ ROOT (ª®à­¥¢®£® ª â «®£ )
_SETVAR .DISK_FULL ; EQU 0x0A ; 10 - ­¥â ᢮¡®¤­®£® ¬¥áâ  ­  ¤¨áª¥
_SETVAR .DIR_NOT_EMPTY ; EQU 0x0B ; 11 - ª â «®£ ­¥ ¯ãáâ
_SETVAR .CURRENT_DIR ; EQU 0x0C ; 12 - ­¥ã¤ ç­ ï ¯®¯ë⪠ 㤠«¨âì ⥪ã騩 ª â «®£
_SETVAR .UNKNOWN_FORMAT ; EQU 0x0D ; 13 - ­¥¨§¢¥áâ­ë© ä®à¬ â
_SETVAR .INVALID_ACCESS ; EQU 0x0E ; 14 - ­¥¢®§¬®¦­ ï ®¯¥à æ¨ï
_SETVAR .DIR_EXISTS ; EQU 0x0F ; 15 - ª â «®£ 㦥 ¥áâì
_SETVAR .INVALID_NAME ; EQU 0x10 ; 16 - ­¥¢¥à­®¥ ¨¬ï
_SETVAR .INVALID_EXE ; EQU 0x11 ; 17 - ­¥¯à ¢¨«ì­ë© EXE-ä ©«
_SETVAR .UNKNOWN_EXE ; EQU 0x12 ; 18 - ­¥ ¯®¤¤¥à¦¨¢ ¥¬ ï ¢¥àá¨ï EXE-ä ©« 
_SETVAR .ACCESS_DENIED ; EQU 0x13 ; 19 - à¥áãàá ­¥ ¤®áâ㯥­
_SETVAR .NOT_READY ; EQU 0x14 ; 20 - ­¥â £®â®¢­®áâ¨
_SETVAR .SEEK_ERROR ; EQU 0x15 ; 21 - ®è¨¡ª  ¯®§¨æ¨®­¨à®¢ ­¨ï
_SETVAR .SECTOR_NOT_FOUND ; EQU 0x16 ; 22 - ᥪâ®à ­¥ ­ ©¤¥­
_SETVAR .CRC_ERROR ; EQU 0x17 ; 23 - ®è¨¡ª  CRC
_SETVAR .WRITE_PROTECT ; EQU 0x18 ; 24 - § é¨â  § ¯¨á¨
_SETVAR .READ_ERROR ; EQU 0x19 ; 25 - ®è¨¡ª  ç⥭¨ï
_SETVAR .WRITE_ERROR ; EQU 0x1A ; 26 - ®è¨¡ª  § ¯¨á¨
_SETVAR .DRIVE_FAILURE ; EQU 0x1B ; 27 - á¡®© ¤¨áª 
_SETVAR .MEDIA_CHANGED ; EQU 0x1C ; 28 - ᬥ­  ­®á¨â¥«ï
_ADDVAR 1
_SETVAR .NOT_ENOUGH_MEMORY ; EQU 0x1E ; 30 - ­¥¤®áâ â®ç­® ¯ ¬ïâ¨
_SETVAR .INVALID_MEMORY_HND ; EQU 0x1F ; 31 - ­¥áãé¥áâ¢ãî騩 ¡«®ª ¯ ¬ïâ¨
_ADDVAR 1
_SETVAR .ENV_ITEM_OVERFLOW ; EQU 0x21 ; 33 - ¯à¥¢ë襭 ¬ ªá¨¬ «ì­ë© à §¬¥à ¯¥à¥¬¥­­®©
_ADDVAR 1
_SETVAR .TOO_MANY_FILES_IN_DIR ; EQU 0x23 ; 35 - ᫨誮¬ ¬­®£® ä ©«®¢ ¢ ¤¨à¥ªâ®à¨¨
_SETVAR .TOO_DEEP_DIR_DEPTH ; EQU 0x24 ; 36 - ᫨誮¬ ¡®«ìè ï ¢«®¦¥­­®áâì ª â «®£®¢ ¨«¨ ª®«¨ç¥á⢮ ¯ ¯®ª > 1023
_SETVAR .USER_ABORT ; EQU 0x25 ; 37 - ®¯¥à æ¨ï ¯à¥à¢ ­  ¯®«ì§®¢ â¥«¥¬
_SETVAR .COMMON_ERROR ; EQU 0x26 ; 38 - ®¡é ï ®è¨¡ª 
_SETVAR .UNEXPECTED_APP_TRMN ; EQU 0x27 ; 39 - unexpected application termination / ­¥®¦¨¤ ­­®¥ § ¢¥à襭¨¥ ¯à¨«®¦¥­¨ï
_INIT_VAR 0x30
_SETVAR .INVALID_VIDEO_MODE ; EQU 0x30 ; 48 - ­¥¯à ¢¨«ì­ë© ¢¨¤¥®à¥¦¨¬
ERR_DRV
.NO_ERROR EQU 0x00 ; 00 - NO ERRORS
.INVALID_COMMAND EQU 0x01 ; 01 - BAD COMMAND
.INVALID_DRIVE EQU 0x02 ; 02 - BAD DRIVE NUMBER
.UNKNOWN_FORMAT EQU 0x03 ; 03 - UNKNOW FORMAT
.NOT_READY EQU 0x04 ; 04 - NOT READY
.SEEK_ERROR EQU 0x05 ; 05 - SEEK ERROR
.SECTOR_NOT_FOUND EQU 0x06 ; 06 - SECTOR NOT FOUND
.CRC_ERROR EQU 0x07 ; 07 - CRC ERROR
.WRITE_PROTECT EQU 0x08 ; 08 - WRITE PROTECT
.READ_ERROR EQU 0x09 ; 09 - READ ERROR
.WRITE_ERROR EQU 0x0A ; 10 - WRITE ERROR
.GENERAL_FAILURE EQU 0x0B ; 11 - FAILURE
.DEVICE_BUSY EQU 0x0C ; 12 - BUSY (DEVICE OPENED)
;.RESERVED EQU 0x0D ; 13 - RESERVED
ERR_MOUSE
.NO_ERROR EQU 0x00 ; 0 - NO ERROR
.INVALID_COMMAND EQU 0x01 ; 1 - COMMAND NOT PRESENT
.DEVICE_ABSENT EQU 0x02 ; 2 - DEVICE ABSENT
.CURSOR_ON EQU 0x03 ; 3 - CURSOR ON (already)
.CURSOR_OFF EQU 0x04 ; 4 - CURSOR OFF (already)
.CURSOR_TOO_BIG EQU 0x05 ; 5 - CURSOR IMAGE VERY BIG

34
fat_dir.a80 Normal file
View File

@ -0,0 +1,34 @@
;LAST UPDATE: 07.03.2025 savelij
; áâàãªâãà  § ¯¨á¨ ¤¨à¥ªâ®à¨¨
DIR
_INIT_VAR
_SETVAR .Name, 8 ; 8 ¨¬ï ä ©« 
_SETVAR .Ext, 3 ; 3 à áè¨à¥­¨¥ ä ©« 
_SETVAR .Attr, BYTE ; 1  ââਡãâë ä ©« 
_SETVAR .NTRes, BYTE ; 1 § à¥§¥à¢¨à®¢ ­­®
_SETVAR .CrtTimeTenth, BYTE ; 1 ¬¨««¨á¥ªã­¤ë ¢à¥¬¥­¨ á®§¤ ­¨ï ä ©« 
_SETVAR .CrtTime, WORD ; 2 ¢à¥¬ï á®§¤ ­¨ï ä ©« 
_SETVAR .CrtDate, WORD ; 2 ¤ â  á®§¤ ­¨ï ä ©« 
_SETVAR .LstAccDate, WORD ; 2 ¤ â  ¯®á«¥¤­¥£® ®¡à é¥­¨ï ª ä ©«ã
_SETVAR .FstClusHI, WORD ; 2 áâ à襥 á«®¢® ­®¬¥à  ª« áâ¥à 
_SETVAR .WrtTime, WORD ; 2 ¢à¥¬ï ¯®á«¥¤­¥© § ¯¨á¨
_SETVAR .WrtDate, WORD ; 2 ¤ â  ¯®á«¥¤­¥© § ¯¨á¨
_SETVAR .FstClusLO, WORD ; 2 ¬« ¤è¥¥ á«®¢® ­®¬¥à  ª« áâ¥à 
_SETVAR .FileSize, DWORD ; 4 à §¬¥à ä ©« 
_SETVAR .StructSize, 0 ; à §¬¥à áâàãªâãàë
;ä« £¨=¡¨âë=============
_BITMASK Device, 7
_BITMASK Archive, 5
_BITMASK Dir, 4
_BITMASK VolumeID, 3
_BITMASK System, 2
_BITMASK Hidden, 1
_BITMASK ReadOnly, 0
;ä« £¨=¬ áª¨============
.M_AttrLongName EQU .M_ReadOnly | \
.M_Hidden | \
.M_System | \
.M_VolumeID
;=======================

201
macros_sp.a80 Normal file
View File

@ -0,0 +1,201 @@
; LAST UPDATE: 30.03.2024 savelij
; ¤«ï ¢ë§ë¢®¢ BIOS
; RGC - ­®¬¥à ä㭪樨 BIOS
; RGB - ॣ¨áâà B
; RGA - ॣ¨áâà A
; RGIX - ॣ¨áâà IX
SPBIOS MACRO RGC,RGB,RGA,RGIX
IFNB RGIX
LD IX,RGIX
ENDIF
IFNB RGA
IF RGA = 0
XOR A
ELSE
LD A,RGA
ENDIF
ENDIF
IFNB RGC
IFNB RGB
LD BC,RGB << 8 + RGC
ELSE
LD C,RGC
ENDIF
ENDIF
RST 8
ENDM
; ¤«ï ¢ë§ë¢®¢ DSS
; RGC - ­®¬¥à ä㭪樨 BIOS
; RGB - ॣ¨áâà B
; RGA - ॣ¨áâà A
; RGIX - ॣ¨áâà IX
SPDSS MACRO RGC,RGB,RGA,RGIX
IFNB RGIX
LD IX,RGIX
ENDIF
IFNB RGA
IF RGA = 0
XOR A
ELSE
LD A,RGA
ENDIF
ENDIF
IFNB RGC
IFNB RGB
LD BC,RGB << 8 + RGC
ELSE
LD C,RGC
ENDIF
ENDIF
RST 0x10
ENDM
; ¤«ï à ¡®âë á MOUSE
; RGC - ­®¬¥à ä㭪樨 BIOS
; RGB - ॣ¨áâà B
; RGA - ॣ¨áâà A
; RGIX - ॣ¨áâà IX
SPMOUSE MACRO RGC,RGB,RGA,RGIX
IFNB RGIX
LD IX,RGIX
ENDIF
IFNB RGA
IF RGA = 0
XOR A
ELSE
LD A,RGA
ENDIF
ENDIF
IFNB RGC
IFNB RGB
LD BC,RGB << 8 + RGC
ELSE
LD C,RGC
ENDIF
ENDIF
RST 0x30
ENDM
; ¤«ï BIOS
; RGC - ­®¬¥à ä㭪樨 BIOS
; RGB - ॣ¨áâà B
; RGA - ॣ¨áâà A
BIOS18 MACRO RGC,RGB,RGA,RGIX
IFNB RGIX
LD IX,RGIX
ENDIF
IFNB RGA
IF RGA = 0
XOR A
ELSE
LD A,RGA
ENDIF
ENDIF
IFNB RGC
IFNB RGB
LD BC,RGB << 8 + RGC
ELSE
LD C,RGC
ENDIF
ENDIF
RST 0x18
ENDM
; ¤«ï SYSTEM.DOS ¨ SYSTEM.EXE
; RSTNUM - ­®¬¥à RST
; RGC - ­®¬¥à ä㭪樨 BIOS
; RGB - ॣ¨áâà B
; RGA - ॣ¨áâà A
SPSYSDOS MACRO RSTNUM,RGC,RGB,RGA,RGIX
IFNB RGIX
LD IX,RGIX
ENDIF
IFNB RGA
IF RGA = 0
XOR A
ELSE
LD A,RGA
ENDIF
ENDIF
IFNB RGC
IFNB RGB
LD BC,RGB << 8 + RGC
ELSE
LD C,RGC
ENDIF
ENDIF
RST RSTNUM
ENDM
; PORT -  ¤à¥á ¯®àâ 
; NUM - §­ ç¥­¨¥ ¤«ï § ¯¨á¨
; FLAG - ¯à¨ ­ «¨ç¨¨ ¢ ¯®àâ ¯¨è¥âáï ᮤ¥à¦¨¬®¥ ॣ¨áâà  A
SETPORT MACRO PORT,NUM,FLAG
IFB FLAG ; ¥á«¨ FLAG ¥áâì, ­¥ ¬¥­ï¥¬ ॣ¨áâà A
IF NUM = 0
XOR A
ELSE
LD A,NUM
ENDIF
ENDIF
OUT (PORT),A
ENDM
GETPORT MACRO PORT
IN A,(PORT)
ENDM
; ¨­¨â áç¥â稪  ¤«ï £¥­¥à æ¨¨ ¨¬¥­¨ ¬¥âª¨
GEN_NAME_INIT MACRO
NAMENUM := 0
ENDM
; £¥­¥à æ¨ï ¨¬¥­¨ ¬¥âª¨ ¨ ¨­ªà¨¬¥­â áç¥â稪  ¨¬¥­¨ ¬¥âª¨
GEN_NAME MACRO NAME,LABEL
NAMENUMTXT := "\{NAMENUM}"
NAME_{NAMENUMTXT} := $
IFNB LABEL
LABEL EQU NAMENUM ; £¥­¥à æ¨ï 㪠§ ­­®£® ¨¬¥­¨ á ⥪ã騬 ­®¬¥à®¬ á®®¡é¥­¨ï
ENDIF
NAMENUM := NAMENUM + 1
ENDM
; £¥­¥à æ¨ï â ¡«¨æë ¬¥â®ª (⮫쪮 á® ¢â®à®£® ¯à®å®¤ )
GEN_TABL MACRO NAME
IF MOMPASS > 1
CURRENT := 0
REPT MAXITEM
CURRENTTXT := "\{CURRENT}"
DW NAME_{CURRENTTXT}
CURRENT := CURRENT + 1
ENDM
ENDIF
ENDM
ACCEL MACRO BYTE
DB BYTE
ENDM
HDR_EXE MACRO VERSION,OFFSET,PRIMARYLOADER,ADRLOAD,ADRSTART,ADRSTACK,RESERVED
DB "EXE",VERSION
DD OFFSET
DW PRIMARYLOADER
DW 0,0,0
DW ADRLOAD,ADRSTART,ADRSTACK
IF RESERVED > 0
DB RESERVED DUP (0)
ENDIF
ENDM

19
mouse_sp.a80 Normal file
View File

@ -0,0 +1,19 @@
; LAST UPDATE: 12.09.2023 savelij
; ”㭪樨 ¤«ï à ¡®âë á ¬ëèìî
MOUSEF
.INIT EQU 0x00 ; ˆ­¨æ¨ «¨§ æ¨ï ¤à ©¢¥à  ¬ëè¨
.SHOW EQU 0x01 ; ‚뢥á⨠ªãàá®à ¬ëè¨ ­  íªà ­­ ï
.HIDE EQU 0x02 ; “¡à âì ªãàá®à ¬ëè¨ á íªà ­ 
.READ_STATE EQU 0x03 ; —⥭¨¥ á®áâ®ï­¨ï ¬ëè¨
.SET_POS EQU 0x04 ; “áâ ­®¢ª  ª®®à¤¨­ â ªãàá®à  ¬ëè¨
.VERT_BOUNDS EQU 0x07 ; ‡ ¤ ­¨¥ ¢¥à⨪ «ì­ëå £à ­¨æ ¯¥à¥¬¥é¥­¨ï ªãàá®à 
.HORZ_BOUNDS EQU 0x08 ; ‡ ¤ ­¨¥ £®à¨§®­â «ì­ëå £à ­¨æ ¯¥à¥¬¥é¥­¨ï ªãàá®à 
.LOAD_IMAGE EQU 0x09 ; ‡ £à㧪  ¨§®¡à ¦¥­¨ï ªãàá®à  ¬ëè¨
.SET_TXTMODE EQU 0x0A ; “áâ ­®¢ª  ªãàá®à  ¬ëè¨ ¢ ⥪á⮢®¬ ०¨¬¥
.GET_IMAGE EQU 0x0B ; <20>®«ã祭¨¥ ¨§®¡à ¦¥­¨ï ªãàá®à  ¬ëè¨
.GET_SENSETIVE EQU 0x0E ; —⥭¨¥ çã¢á⢨⥫쭮á⨠¬ëè¨
.HARD_INT EQU 0x80 ; Ž¡à ¡®â稪  ¯¯ à â­®£® ¯à¥à뢠­¨ï ®â ¬ëè¨
.CHG_VIDEOMODE EQU 0x81 ; ˆ­ä®à¬¨à®¢ ­¨¥ ® ᬥ­¥ ०¨¬  íªà ­ 
.REFRESH EQU 0x83 ; <20>à¨­ã¤¨â¥«ì­ ï ¯¥à¥à¨á®¢ª  ªãàá®à 

143
ports_sp.a80 Normal file
View File

@ -0,0 +1,143 @@
; LAST UPDATE: 30.04.2025 savelij
; <20><><EFBFBD><EFBFBD><EFBFBD> Z84
Z84
.CTC_0 EQU 0x10 ; STC0_C
.CTC_1 EQU 0x11 ; STC1_C
.CTC_2 EQU 0x12 ; STC2_C
.CTC_3 EQU 0x13 ; STC3_C
.SIO_ADATA EQU 0x18 ; DAT_A
.SIO_ACTRL EQU 0x19 ; COM_A
.SIO_BDATA EQU 0x1A ; DAT_B
.SIO_BCTRL EQU 0x1B ; COM_B
.PIO_ADATA EQU 0x1C ; LPT1_D
.PIO_ACMD EQU 0x1D ; LPT1_C
.PIO_BDATA EQU 0x1E ; LPT2_D
.PIO_BCMD EQU 0x1F ; LPT2_C
.PAL_SCP EQU .PIO_BDATA
.SCRP EQU 0xEE ; Systen Contorl Register Pointer
.SCDP EQU 0xEF ; Systen Control Data Port
.WDTMR EQU 0xF0 ; Watch-Dog Timer (Master Register)
.WDTCR EQU 0xF1 ; Watch-Dog Timer (Control Register)
.INTPRIREG EQU 0xF4 ; Interrupt Priority Register
.STC0_C EQU .CTC_0
.STC1_C EQU .CTC_1
.STC2_C EQU .CTC_2
.STC3_C EQU .CTC_3
.KBD_DAT EQU .SIO_BDATA
.KBD_COM EQU .SIO_BCTRL
.COM_A EQU .SIO_ACTRL
.DAT_A EQU .SIO_ADATA
.COM_B EQU .SIO_BCTRL
.DAT_B EQU .SIO_BDATA
.LPT1_D EQU .PIO_ADATA
.LPT1_C EQU .PIO_ACMD
.LPT2_D EQU .PIO_BDATA
.LPT2_C EQU .PIO_BCMD
; <20><><EFBFBD><EFBFBD><EFBFBD>
WINSP
.CPU0 EQU 0x82 ; <20><><EFBFBD><EFBFBD> <20><EFBFBD><E0AEA5><EFBFBD><E0AEA2><EFBFBD><EFBFBD> 0
.CPU1 EQU 0xA2 ; <20><><EFBFBD><EFBFBD> <20><EFBFBD><E0AEA5><EFBFBD><E0AEA2><EFBFBD><EFBFBD> 1
.CPU2 EQU 0xC2 ; <20><><EFBFBD><EFBFBD> <20><EFBFBD><E0AEA5><EFBFBD><E0AEA2><EFBFBD><EFBFBD> 2
.CPU3 EQU 0xE2 ; <20><><EFBFBD><EFBFBD> <20><EFBFBD><E0AEA5><EFBFBD><E0AEA2><EFBFBD><EFBFBD> 3
.SYS_OFF EQU 0x3C
.SYS_ON EQU 0x7C
.SYS_ROMS EQU 0x5C
.COVOX EQU 0x4F
.CBL_DIR EQU 0x4E ; <20><><EFBFBD><EFBFBD> <20><><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD> COVOX-Blaster
; bit 7 - 1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CBL
.MODES EQU 0x204E
.Y_PORT EQU 0x89
.RGADR EQU 0x89
.RGMOD EQU 0xC9
.RGSCR EQU 0xE9
P_KBD_OUT EQU 0xF8
P_KBD_IN EQU 0xFE
BORDER EQU 0xFE
PORT_JOI EQU 0xFF
CONF_128 EQU 0x7FFD ; <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 128 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SCORP_CONF EQU 0x1FFD ; <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Scorpion
; <20><><EFBFBD><EFBFBD><EFBFBD> CMOS
PCMOS
.DATA_RD EQU 0xFFBD
.DATA_WR EQU 0xBFBD
.ADR_WR EQU 0xDFBD
ISA_PORT EQU 0x9FBD
PG_SP1 equ 0xEC
PG_SP2 equ 0xEE
PG_AY equ 0xEA
VSYNC
.PORT EQU 0xBD
.SELECT_320L EQU 0x41
.SELECT_312L EQU 0x61
; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
FastRAM:
.ON EQU 0xFB ; <20><><EFBFBD><EFBFBD><EFBFBD><E7A5AD> <20><><EFBFBD><EFBFBD> IN A,(FastRAM.ON) - <20><EFBFBD><E0A8A1><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><20> <20><><EFBFBD><EFBFBD><EFBFBD>
.OFF EQU 0x7B ; <20><EFBFBD><EFBFBD><E7A5AD> <20><><EFBFBD><EFBFBD> IN A,(FastRAM.OFF) - <20><EFBFBD><E0A8A1><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><20> <20><><EFBFBD><EFBFBD><EFBFBD>
.SLOT0 EQU 0x5C ; <20><><EFBFBD><E0A5AA><EFBFBD><E7A5AD> <20><><EFBFBD><E0A0AD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> FastRAM.ON <20> <20><EFBFBD><E3ABA5><EFBFBD> <20><><EFBFBD><EFBFBD> (bit0..1) - <20><EFBFBD><E0A8A1><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><20> <20><><EFBFBD><EFBFBD><EFBFBD>
; <20><><EFBFBD><EFBFBD><EFBFBD> FDD
FDD
.COM EQU 0x0F
.TRK EQU 0x3F
.SEC EQU 0x5F
.DATA EQU 0x7F
.FF EQU 0xFF
.SELECT EQU 0xBD
.SEL_720 EQU 0x01
.SEL_1440 EQU 0x21
; <20><><EFBFBD><EFBFBD><EFBFBD> HDD
HDD
.P_1F7W EQU 0x4153 ; W ॣ<><E0A5A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
.P_1F7R EQU 0x4053 ; R ॣ<><E0A5A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
.P_1F6W EQU 0x4152 ; W CHS-<2D><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>⢠/LBA <20><><EFBFBD><EFBFBD><EFBFBD> 24-27
.P_1F6R EQU 0x4052 ; R CHS-<2D><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>⢠/LBA <20><><EFBFBD><EFBFBD><EFBFBD> 24-27
.P_1F5W EQU 0x0155 ; W CHS-樫<><E6A8AB><EFBFBD><EFBFBD> 8-15/LBA <20><><EFBFBD><EFBFBD><EFBFBD> 16-23
.P_1F5R EQU 0x0055 ; R CHS-樫<><E6A8AB><EFBFBD><EFBFBD> 8-15/LBA <20><><EFBFBD><EFBFBD><EFBFBD> 16-23
.P_1F4W EQU 0x0154 ; W CHS-樫<><E6A8AB><EFBFBD><EFBFBD> 0-7/LBA <20><><EFBFBD><EFBFBD><EFBFBD> 8-15
.P_1F4R EQU 0x0054 ; R CHS-樫<><E6A8AB><EFBFBD><EFBFBD> 0-7/LBA <20><><EFBFBD><EFBFBD><EFBFBD> 8-15
.P_1F3W EQU 0x0153 ; W CHS-<2D><><EFBFBD><EFBFBD><EFBFBD><><E1A5AA><EFBFBD><EFBFBD>/LBA <20><><EFBFBD><EFBFBD><EFBFBD> 0-7
.P_1F3R EQU 0x0053 ; R CHS-<2D><><EFBFBD><EFBFBD><EFBFBD><><E1A5AA><EFBFBD><EFBFBD>/LBA <20><><EFBFBD><EFBFBD><EFBFBD> 0-7
.P_1F2W EQU 0x0152 ; W <20><><EFBFBD><EFBFBD>稪 ᥪ<><E1A5AA>
.P_1F2R EQU 0x0052 ; R <20><><EFBFBD><EFBFBD>稪 ᥪ<><E1A5AA>
.P_1F1W EQU 0x0151 ; W <20><><EFBFBD><EFBFBD><><E1A2AE><EFBFBD><EFBFBD>
.P_1F1R EQU 0x0051 ; R <20><><EFBFBD><EFBFBD> <20><EFBFBD><E8A8A1>
.P_1F0W EQU 0x0150 ; W <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>訥 8 <20><><EFBFBD>
.P_1F0R EQU 0x0050 ; R <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>訥 8 <20><><EFBFBD>
.P_3F7W EQU 0x4155 ; W ॣ<><E0A5A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
.P_3F6W EQU 0x4154 ; W
.SELECT EQU 0xBC ; <20><EFBFBD> IDE <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
.SECONDARY EQU 0x01
.PRIMARY EQU 0x21
; <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HDD
BITMASK BSY, 7
BITMASK RDY, 6
BITMASK DRQ, 3
BITMASK ERR, 0
BITMASK LBA_CHS, 6 ; <20><><EFBFBD> <20><EFBFBD><EBA1AE> 1-LBA, 0-CHS
BITMASK MS_SL, 4 ; <20><><EFBFBD> <20><EFBFBD><EBA1AE> 0-MASTER, 1-SLAVE