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

284 lines
10 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

; 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