222 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			222 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
 | ||
| ; LAST UPDATE: 05.06.2025 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
 | ||
| 
 | ||
| ; ä®à¬¨à®¢ â¥«ì EXE § £®«®¢ª , ¯ à ¬¥âàë:
 | ||
| ; ORGADR - à §¬¥à EXE § £®«®¢ª  ¤«ï "¯à ¢¨«ì®£®" ORG
 | ||
| ; VERSION (BYTE) - ¢¥àá¨ï § £®«®¢ª 
 | ||
| ; PRIMARYLOADER (WORD) - <20> §¬¥à ¯¥à¢¨ç®£® § £àã§ç¨ª  ¨«¨ 0
 | ||
| ; ADRLOAD (WORD) - €¤à¥á à á¯®«®¦¥¨ï ª®¤  ¢ ¯ ¬ï⨠(0x4100-0xFFFF)
 | ||
| ; ADRSTART (WORD) - €¤à¥á ¢ ¯ ¬ïâ¨ á ª®â®à®£® § ¯ãáâ¨âáï ª®¤ (Reg. PC)
 | ||
| ; ADRSTACK (WORD) - €¤à¥á á⥪  (Reg. SP)
 | ||
| ; RESERVED - ᪮«ìª® ¡ ©â 0 १¥à¢¨à®¢ âì
 | ||
| HDR_EXE		MACRO ORGADR,VERSION,PRIMARYLOADER,ADRLOAD,ADRSTART,ADRSTACK,RESERVED
 | ||
| 	IFNB ORGADR
 | ||
| 	IF MOMPASS > 1
 | ||
| 		ORG ORGADR - (.END - .START)
 | ||
| 	ELSE
 | ||
| 		ORG ORGADR
 | ||
| 	ENDIF
 | ||
| 	ENDIF
 | ||
| .START		DB "EXE",VERSION
 | ||
| 	IF MOMPASS > 1
 | ||
| 		DD .END - .START
 | ||
| 	ELSE
 | ||
| 		DD 22
 | ||
| 	ENDIF
 | ||
| 		DW PRIMARYLOADER
 | ||
| 		DW 0,0,0
 | ||
| 		DW ADRLOAD,ADRSTART,ADRSTACK
 | ||
| 	IF RESERVED > 0
 | ||
| 		DB RESERVED DUP (0)
 | ||
| 	ENDIF
 | ||
| .END
 | ||
| 		ENDM
 |