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

202 lines
2.9 KiB
Plaintext

; 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