Add full compiler toolchain, libc, examples and reference docs
First substantive commit: the entire Sprinter C compiler tree on top of
the bare README+gitignore initial commit.
What's in here:
bin/sprinter-cc — driver script invoking SDCC + linker + mkexe
libc/ — Sprinter-specific libc layer over ESTEX/BIOS
(conio, gfx, io, mem, stdio + headers)
runtime/ — crt0 variants (default/small/banked/minimal)
+ heap + bank trampolines
toolchain/ — mkexe (SprintEXE packer, C + tests)
examples/ — 30 demo programs (gfx, file I/O, env, time, …)
lib/Makefile — builds the libc archive (sprinter.lib)
docs/ — converted Sprinter manuals + asm reference samples
third_party/ — solid-c reference compiler dump + sdcc setup script
release_docs/ — packaging / release notes
gitignore overhaul:
• Drop dangerous blanket patterns: *.asm (would hide docs/samples/*.asm)
and *.exe (case-insensitive match was hiding third_party/solid-c/*.EXE
on macOS APFS). Replaced with examples/*/*.{asm,exe,…} and lib/*.lib.
• Restore tracking of toolchain/mkexe/tests/{one,big}.bin — those are
INPUT fixtures, not build outputs.
• Collapse the duplicated SDCC/C/Sdcc sections into one section per
concern (build outputs / vendored / OS-junk).
• Add .sprinter-cc-*/, build/ (catches lib/build/ too), .claude/.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,822 @@
|
||||
|
||||
.Z80
|
||||
ASEG
|
||||
.RADIX 10
|
||||
ORG 100H
|
||||
|
||||
DB 'EX'
|
||||
DB 45H ; RESERV
|
||||
DB 0 ; MY VERSION
|
||||
DW 200H,0 ; START CODE IN FILE
|
||||
DW 0 ; LEN START LOAD DATA
|
||||
DW 0,0,0 ; RESERV
|
||||
DW 8100H ; ADRESS IN MEM
|
||||
DW 8100H ; START ADRESS
|
||||
DW 0BFFEH ; STACK ADRESS
|
||||
DS 490
|
||||
|
||||
.PHASE 8100h
|
||||
|
||||
INCLUDE SPRINT00.ASZ
|
||||
|
||||
START:
|
||||
|
||||
DI
|
||||
|
||||
LD A,CNF_0
|
||||
OUT (SYS_PORT_OFF),A
|
||||
|
||||
LD C,0A6h ; ãáâ ®¢ª ¯ «¨âàë
|
||||
LD A,1
|
||||
LD B,1
|
||||
RST 8h
|
||||
|
||||
LD C,0A6h
|
||||
LD A,0
|
||||
LD B,1
|
||||
RST 8h
|
||||
|
||||
LD C,0A6h
|
||||
LD A,2
|
||||
LD B,1
|
||||
RST 8h
|
||||
|
||||
LD C,0A6h
|
||||
LD A,3
|
||||
LD B,1
|
||||
RST 8h
|
||||
|
||||
LD A,CNF_3
|
||||
OUT (SYS_PORT_OFF),A
|
||||
|
||||
LD A,3 ; ãáâ ®¢ª ¢ãâà.¯®à⮢ Z84C15 ¤«ï ¯¥à¥§ £à㧪¨
|
||||
OUT (0EEh),A
|
||||
LD A,3
|
||||
OUT (0EFh),A ; CASH & ROM
|
||||
|
||||
; LD A,(IX+2) ; ä« £ (NOT USE!)
|
||||
; LD (FLAG),A
|
||||
|
||||
IN A,(PAGE1)
|
||||
LD (PG5+1),A
|
||||
|
||||
CALL READ_FROM_FILE ; ç¨â âì ¯à®è¨¢ªã ¨§ ä ©«
|
||||
; ¯ ¬ïâì §¢¥à᪨ ¥ ¢ë¤¥«¥ !
|
||||
; ç⥨¥ ¯àאַ ¢ áâà ¨æë 1C..1F
|
||||
LD DE,RELOAD_RET
|
||||
CALL SET_RETURN ; ãáâ ®¢ª ¤ ëå ¤«ï ¢®§¢à â
|
||||
|
||||
IN A,(0FBh) ; CASH_on
|
||||
|
||||
CALL SET_ACEX_DATA ; ¯¥à¥£à㧪 ¤ ëå ACEX ¢ FAST-RAM
|
||||
|
||||
IN A,(07Bh) ; CASH_off
|
||||
|
||||
PG5: LD A,5 ; ¢®§¢à â áâà ¨æë 1
|
||||
OUT (PAGE1),A
|
||||
|
||||
;************************************************
|
||||
|
||||
RESET:
|
||||
|
||||
DI
|
||||
|
||||
IN A,(PAGE1) ; ®âªàë⨥ ¯®àâ á¡à®á
|
||||
PUSH AF
|
||||
LD A,40h
|
||||
OUT (PAGE1),A ; set DCP page
|
||||
LD A,2Eh
|
||||
LD (04400h),A ; open for WR
|
||||
LD (04600h),A ; open for RD
|
||||
POP AF
|
||||
OUT (PAGE1),A ; Close PAGE1
|
||||
|
||||
RESET_LOOP: ; 横« á¡à®á
|
||||
LD BC,100h
|
||||
OUT (C),C
|
||||
LD BC,000h
|
||||
OUT (C),C
|
||||
JR RESET_LOOP ; ¯®«®áâìî § 横«¨âì!
|
||||
|
||||
DI ; ¯ë«¥ã«®¢¨â¥«ì
|
||||
HALT
|
||||
|
||||
;*************************************************
|
||||
SET_ACEX_DATA:
|
||||
|
||||
DI
|
||||
LD BC,1FFDh
|
||||
XOR A
|
||||
OUT (C),A ; ®âª«îç¨âì RAM-0
|
||||
|
||||
LD A,4
|
||||
OUT (SYS_PORT_ON),A ; DCP-PAGE 0
|
||||
|
||||
LD A,0
|
||||
OUT (5Ch),A
|
||||
|
||||
LD A,1Ch
|
||||
OUT (PAGE1),A ; áâà ¨æ á ¤ 묨 ä ©«
|
||||
|
||||
LD HL,04100h ; ¯¥à¥ª¨¤ë¢ ¨¥ ¤ ëå ¢ Š�˜
|
||||
LD DE,01000h
|
||||
LD BC,03000h
|
||||
LDIR
|
||||
|
||||
LD A,1
|
||||
OUT (5Ch),A
|
||||
|
||||
LD DE,00000h
|
||||
|
||||
LD BC,0F00h
|
||||
LDIR
|
||||
|
||||
IN A,(PAGE1)
|
||||
INC A
|
||||
OUT (PAGE1),A
|
||||
LD HL,4000h
|
||||
|
||||
LD BC,3100h
|
||||
LDIR
|
||||
|
||||
LD A,2
|
||||
OUT (5Ch),A ; ‘âà ¨æ Š�˜ = 2
|
||||
|
||||
LD DE,00000h
|
||||
|
||||
LD BC,0F00h
|
||||
LDIR
|
||||
|
||||
IN A,(PAGE1)
|
||||
INC A
|
||||
OUT (PAGE1),A
|
||||
LD HL,4000h
|
||||
|
||||
LD BC,3100h
|
||||
LDIR
|
||||
|
||||
LD A,3
|
||||
OUT (05Ch),A ; ‘âà ¨æ Š�˜ = 3
|
||||
|
||||
LD DE,00000h
|
||||
|
||||
LD BC,0F00h
|
||||
LDIR
|
||||
|
||||
IN A,(PAGE1)
|
||||
INC A
|
||||
OUT (PAGE1),A
|
||||
LD HL,4000h
|
||||
|
||||
LD BC,3100h
|
||||
LDIR
|
||||
|
||||
LD HL,STRING ; ä« £ ¯¥à¥§ £à㧪¨ ¨§ Š�˜-
|
||||
LD DE,03EF0h
|
||||
|
||||
LD BC,10h
|
||||
LDIR
|
||||
|
||||
LD A,0FFh
|
||||
LD (03EE0h),A ; no multiple ! ¯¥à¥§ £à㧪 ⮫쪮 ®¤
|
||||
|
||||
LD A,(FLAG) ; ¥á«¨ âãâ M
|
||||
CP "M" ; â® ¯¥à¥£à㦠âìáï ¡ã¤¥â ¤® ¯®â¥à¨ ¯ã«ìá
|
||||
; �… ˆ‘�Ž‹œ‡Ž‚€’œ!!!
|
||||
|
||||
RET NZ
|
||||
|
||||
LD (03EE0h),A ; multiple !
|
||||
|
||||
RET
|
||||
|
||||
;*******************************
|
||||
|
||||
FLAG: DB 0
|
||||
|
||||
STRING: DB "ACEX_30K_LOADING" ; ä« £ ¯¥à¥§ £à㧪¨
|
||||
|
||||
;*******************************
|
||||
|
||||
READ_FROM_FILE: ; ç¨â âì ä ©« ¯à®è¨¢ª¨ =64k
|
||||
|
||||
LD A,1
|
||||
LD HL,ROM_FILE
|
||||
LD C,11h
|
||||
RST 10h
|
||||
DI
|
||||
JP C,ERROR_FILE1
|
||||
LD (FILE_HANDLE),A
|
||||
|
||||
IN A,(PAGE3)
|
||||
PUSH AF
|
||||
LD A,1Ch
|
||||
OUT (PAGE3),A
|
||||
|
||||
LOOP_READ:
|
||||
LD A,(FILE_HANDLE)
|
||||
LD HL,0C000h
|
||||
LD DE,4000h
|
||||
LD C,13h
|
||||
RST 10h
|
||||
DI
|
||||
JP C,ERROR_FILE
|
||||
|
||||
AND A
|
||||
LD HL,4000h
|
||||
SBC HL,DE
|
||||
JP NZ,ERROR_FILE
|
||||
|
||||
IN A,(PAGE3)
|
||||
INC A
|
||||
OUT (PAGE3),A
|
||||
CP 20h
|
||||
JR NZ,LOOP_READ
|
||||
|
||||
LD A,(FILE_HANDLE)
|
||||
LD C,12h
|
||||
RST 10h
|
||||
DI
|
||||
JP C,ERROR_FILE
|
||||
POP AF
|
||||
OUT (PAGE3),A
|
||||
RET
|
||||
|
||||
ERROR_FILE:
|
||||
POP AF
|
||||
OUT (PAGE3),A
|
||||
ERROR_FILE1:
|
||||
|
||||
LD A,(FILE_HANDLE) ; § ªàëâì, ¥á«¨ ¡ë« ®âªàëâ
|
||||
AND A
|
||||
JR Z,NO_CLOSE
|
||||
LD C,12h
|
||||
RST 10h
|
||||
|
||||
NO_CLOSE:
|
||||
|
||||
LD HL,ERROR_MSG
|
||||
LD C,5Ch
|
||||
RST 10h
|
||||
DI
|
||||
|
||||
LD C,41h
|
||||
LD B,0
|
||||
RST 10h
|
||||
|
||||
RET
|
||||
|
||||
DI
|
||||
HALT
|
||||
|
||||
FILE_HANDLE: db 0
|
||||
|
||||
ERROR_MSG: db "File ERROR!",13,10,0
|
||||
|
||||
ROM_FILE: db "GAME_00.ACX",0,0,0,0,0
|
||||
|
||||
;*************************************************
|
||||
|
||||
SET_RETURN: ; ¯à®£à ¬¬ ¤«ï ãáâ ®¢ª¨
|
||||
; ¢®§¢à â ¯®á«¥ ¯¥à¥§ £à㧪¨
|
||||
; LD DE,RELOAD_RET ; €„�…‘ ‚އ‚�€’€
|
||||
|
||||
DI
|
||||
|
||||
IN A,(PAGE3)
|
||||
LD (APG3+1),A
|
||||
|
||||
LD A,41h
|
||||
OUT (PAGE3),A ; ®âªàëâì ᯥæ-áâà ¨æã
|
||||
|
||||
LD (0FFF4h),DE ; ¤à¥á ¯à®£à ¬¬ë ¯¥à¥§ ¯ãáª
|
||||
|
||||
LD A,"Z"
|
||||
LD (0FFFEh),A
|
||||
LD A,"X"
|
||||
LD (0FFFFh),A ; ä« £ ¯¥à¥§ ¯ãáª
|
||||
|
||||
|
||||
IN A,(PAGE0) ; á®åà ïâì áâà ¨æë
|
||||
LD (0FFF0h),A ; DOS-PAGE
|
||||
IN A,(PAGE1)
|
||||
LD (0FFF1h),A ;
|
||||
IN A,(PAGE2)
|
||||
LD (0FFF2h),A ; ¯à®£à ¬¬ë ¤«ï ¢®§¢à â ???
|
||||
IN A,(PAGE3)
|
||||
LD (0FFF3h),A ;
|
||||
|
||||
LD A,(APG3+1)
|
||||
OUT (PAGE3),A
|
||||
|
||||
RET
|
||||
|
||||
;**************************************************************
|
||||
|
||||
RELOAD_RET: ; ¬¥áâ®, ªã¤ ¯à®¨§¢¥¤¥ ¢®§¢à â ¯®á«¥ ¯¥à¥§ £à㧪¨
|
||||
; ®¢®© ¯à®è¨¢ª¨
|
||||
|
||||
DI
|
||||
LD SP,0BFF0h
|
||||
LD A,CNF_0 ; ª®ä¨£ãà æ¨ï ¨ ®âª«î票¥ �‡“
|
||||
OUT (SYS_PORT_OFF),A
|
||||
|
||||
LD A,(0FFF0h) ; SET PAGE DOS
|
||||
OUT (PAGE0),A
|
||||
|
||||
APG3: LD A,41h ; ¢®§¢à â áâ ன áâà ¨æë PAGE3
|
||||
OUT (PAGE3),A
|
||||
|
||||
;*****************************************************************
|
||||
; ¢ë§®¢ ®á®¢®© ¯à®£à ¬¬ë ¤«ï à ¡®âë á ®¢®© ¯à®è¨¢ª®©
|
||||
; à ¡®â î⠢ᥠäãæ¨¨ DOS/BIOS, ªà®¬¥ äãªæ¨© íªà
|
||||
|
||||
CALL MAIN_PROGRAMM
|
||||
|
||||
;*****************************************************************
|
||||
; ¢®§¢à â ¢ áâ àãî ¯à®£à ¬¬ã (RESET!)
|
||||
|
||||
LD DE,RELOAD_RET2
|
||||
CALL SET_RETURN ; ãáâ ®¢ª ¤ ëå ¤«ï ¢®§¢à â
|
||||
|
||||
JP RESET
|
||||
|
||||
RELOAD_RET2: ; áî¤ ¤®«¦® ¡ë ¢ë室¨âì ¯®á«¥ ¢®§¢à â ¯à®è¨¢ª¨,
|
||||
; ® ¯®ª ¥ ¢ë室¨â
|
||||
|
||||
DI
|
||||
LD SP,0BFF0h
|
||||
LD A,CNF_0 ; ª®ä¨£ãà æ¨ï ¨ ®âª«î票¥ �‡“
|
||||
OUT (SYS_PORT_OFF),A
|
||||
|
||||
LD A,(0FFF0h) ; SET PAGE DOS
|
||||
OUT (PAGE0),A
|
||||
|
||||
LD A,(APG3+1)
|
||||
OUT (PAGE3),A
|
||||
|
||||
LD C,41h ; RET TO DOS
|
||||
LD B,0
|
||||
RST 10h
|
||||
|
||||
RET
|
||||
|
||||
;*****************************************************************
|
||||
;
|
||||
; ”®à¬ â ०¨¬ § ª®¬¥áâ
|
||||
; €¤à¥á â®â ¦¥
|
||||
;
|
||||
; � ©â 0
|
||||
; bit 7..6 - ®¬¥à ¯ «¨âàë
|
||||
; bit 5 - £à 䨪 /⥪áâ, ¤®«¦® ¡ëâì 0 (⥪áâ ¥â)
|
||||
; bit 4 - ०¨¬ 640/320 â®ç¥ª ¢ «¨¨¨
|
||||
; bit 3 - १¥à¢ - ¤®«¦ë ¡ëâì 0
|
||||
; bit 2 - à §à¥è¥¨¥ ᬥ饨ï á¥âª¨
|
||||
; bit 1..0 - 2 áâ àè¨å ¡¨â ª®®à¤¨ âë X
|
||||
;
|
||||
; � ©â 1 8 ¬« ¤è¨å ¡¨â ª®®à¤¨ âë X
|
||||
;
|
||||
; � ©â 2 ª®®à¤¨ â Y
|
||||
;
|
||||
; � ©â 3 ᬥ饨¥ á¥âª¨ ª®®à¤¨ â
|
||||
; bit 3..0 - ᬥ饨¥ ¯® X
|
||||
; bit 7..4 - ᬥ饨¥ ¯® Y
|
||||
;
|
||||
; Š¢ ¤à ⨪ £à 䨪¨ 8x8 ¢ë¢®¤¨âáï ¨§ ¢¨àâ㠫쮣® íªà 1024x256
|
||||
; ¢ ᮮ⢥âá⢨¨ á ª®®à¤¨ â ¬¨ ¢¥à奣® «¥¢®£®
|
||||
; 㣫 § ª®¬¥áâ , § ¤ ®£® ¢ ¡ ©â å ०¨¬
|
||||
;
|
||||
; ‘¬¥é¥¨¥ á¥âª¨ § ¤ ¥âáï âà¥â쨬 ¡ ©â®¬ ०¨¬ íªà
|
||||
; „¥©áâ¢ã¥â ⮫쪮, ᮯ஢®¦¤ ¥¬ë© ¥¤¨¨æ¥©
|
||||
; ¢ ¡¨â¥ 2 ã«¥¢®£® ¡ ©â ०¨¬
|
||||
; …᫨ ¡¨â 2 ¥ ¡ë« ãáâ ®¢«¥, ⮠ᬥ饨¥
|
||||
; Ž‘’€…’‘Ÿ ’…Œ, —’Ž �›‹Ž “‘’€�Ž‚‹…�Ž �€�……
|
||||
; „¥©á⢨¥ ¡ ©â § ¤ ®£® ¢ § ª®¬¥á⥠¢ª«îç ¥âáï á«¥¤ãî饬
|
||||
; § ª®¬¥áâ¥
|
||||
;
|
||||
;
|
||||
;*****************************************************************
|
||||
|
||||
MAIN_PROGRAMM:
|
||||
|
||||
IN A,(PAGE3) ; á®åà ¨âì ¯®àâë
|
||||
PUSH AF
|
||||
IN A,(PORT_Y)
|
||||
PUSH AF
|
||||
|
||||
LD A,50h
|
||||
OUT (PAGE3),A ; íªà ¢ PAGE3
|
||||
|
||||
LD A,0 ; ª®®à¤¨ â Y
|
||||
LD DE,6180h ; ª®®à¤¨ â X ¯«îá ०¨¬
|
||||
|
||||
CALL CLEAR_SH ; ®ç¨á⪠4-£® ¡ ©â ०¨¬ íªà
|
||||
|
||||
CALL MAIN_SCROLL; § ¤ ¨¥ ®¢®£® £à ä.०¨¬
|
||||
|
||||
CALL PIC_SET ; ¯à®à¨á®¢ª ª à⨪¨ (á¥âª )
|
||||
|
||||
LD A,0 ; ª®®à¤¨ â Y
|
||||
LD DE,6180h ; ª®®à¤¨ â X ¯«îá ०¨¬
|
||||
LD BC,100 ; ç¨á«® ä३¬®¢ ¤® ¢ë室 C*256
|
||||
LOOP_SCR:
|
||||
PUSH AF
|
||||
PUSH DE
|
||||
PUSH BC
|
||||
|
||||
CALL MAIN_SCROLL2 ; ®¢ë© áªà®««¨£
|
||||
|
||||
POP BC
|
||||
POP DE
|
||||
|
||||
LD A,1 ; ¬¥ï¥¬ ª®®à¤¨ âã X
|
||||
ADD_PAR2 EQU $-1
|
||||
ADD A,E
|
||||
LD E,A
|
||||
|
||||
CP 0FFh
|
||||
JR NZ,NO_X1
|
||||
LD A,-1
|
||||
LD (ADD_PAR2),A
|
||||
NO_X1:
|
||||
CP 0
|
||||
JR NZ,NO_X2
|
||||
LD A,1
|
||||
LD (ADD_PAR2),A
|
||||
NO_X2:
|
||||
|
||||
|
||||
POP AF
|
||||
ADD A,1 ; ¬¥ï¥¬ ª®®à¤¨ âã Y
|
||||
ADD_PAR1 EQU $-1
|
||||
|
||||
PUSH AF
|
||||
|
||||
CP 0F0h
|
||||
JR NZ,NO_X3
|
||||
LD A,-1
|
||||
LD (ADD_PAR1),A
|
||||
NO_X3:
|
||||
CP 0
|
||||
JR NZ,NO_X4
|
||||
LD A,1
|
||||
LD (ADD_PAR1),A
|
||||
NO_X4:
|
||||
|
||||
LD A,7
|
||||
OUT (0FEh),A ; ¡®à¤¥à ï 㪠§ª
|
||||
|
||||
EI
|
||||
HALT
|
||||
|
||||
LD A,0
|
||||
OUT (0FEh),A
|
||||
|
||||
POP AF
|
||||
|
||||
DJNZ LOOP_SCR
|
||||
DEC C
|
||||
JR NZ,LOOP_SCR
|
||||
|
||||
POP AF ; ¢®ááâ ®¢¨âì ¯®àâë
|
||||
OUT (PORT_Y),A
|
||||
POP AF
|
||||
OUT (PAGE3),A
|
||||
|
||||
RET
|
||||
|
||||
;******************************************
|
||||
|
||||
MAIN_SCROLL2:
|
||||
DI
|
||||
|
||||
IN A,(PORT_Y)
|
||||
PUSH AF
|
||||
|
||||
|
||||
LD HL,0C310h ; ç¨ ï á 4-© áâப¨ ᢥàåã
|
||||
LOOP_SC1:
|
||||
LD A,5 ; ç¨ ¥¬ á N-£® § ª®¬¥áâ ०¨¬
|
||||
; LD A,N*2-1
|
||||
; ᬥ饨¥ ¢ ã«¥¢®¬ § ª®¬¥áâ¥
|
||||
; § ¤ ® ª ª ®«ì ¨ ¬®¦¥â ¡ëâì
|
||||
; ᬥ饮 ª ª 56-¥ § ª®¬¥áâ®,
|
||||
; ãáâ ®¢ª®© á¬¥é¥¨ï ¢ 55-¬
|
||||
;
|
||||
|
||||
OUT (PORT_Y),A
|
||||
|
||||
LD A,(HL)
|
||||
OR 04h
|
||||
LD (HL),A ; ãáâ ®¢ª ¡¨â 2 ¤«ï ¢ª«î票ï ᬥ饨ï
|
||||
|
||||
INC L
|
||||
INC L
|
||||
INC L
|
||||
LD A,(COUNT1)
|
||||
LD (HL),A ; ãáâ ®¢ª ᬥ饨ï
|
||||
|
||||
INC L
|
||||
|
||||
LD A,L
|
||||
CP 70h ; § ª 稢 ¥¬ 28-© áâப¥
|
||||
JR NZ,LOOP_SC1
|
||||
|
||||
|
||||
LD HL,0C310h ; ç¨ ï á 4-© áâப¨
|
||||
LOOP_SC2:
|
||||
|
||||
LD A,75 ; 38-¬ § ª®¬¥áâ¥
|
||||
OUT (PORT_Y),A
|
||||
|
||||
LD A,(HL)
|
||||
OR 04h
|
||||
LD (HL),A ; ãáâ ¢«¨¢ ¥¬ ®¢®¥ ᬥ饨¥
|
||||
|
||||
INC L
|
||||
INC L
|
||||
INC L
|
||||
LD (HL),88h ; á® § 票¥¬ 8 ¯¨ªá¥«¥© ¯® £®à-«¨
|
||||
; ¨ 8 ¯® ¢¥à⨪ «¨
|
||||
; ¯®áâ®ï®
|
||||
INC L
|
||||
|
||||
LD A,L
|
||||
CP 78h ; § ª 稢 ¥¬ 30-© áâப¥
|
||||
; (¤¢¥ «¨è¨å áâப¨, çâ® ¡ë
|
||||
; áà ¡®â «¨ ¡ ©âë ¢ ᬥ饮¬ ¯®
|
||||
; ¢¥à⨪ «¨ § ª®¬¥áâ¥)
|
||||
JR NZ,LOOP_SC2
|
||||
|
||||
POP AF
|
||||
OUT (PORT_Y),A
|
||||
|
||||
|
||||
LD A,(COUNT2) ; "¯« ¢®¥" ¨§¬¥¥¨¥ áç¥â稪 ¤«ï ¤¥¬®áâà æ¨¨
|
||||
ADD A,40h ; ᬥ饨ï
|
||||
LD (COUNT2),A
|
||||
JR NC,no_add1
|
||||
LD A,(COUNT1)
|
||||
ADD A,11h
|
||||
AND 77h
|
||||
LD (COUNT1),A
|
||||
no_add1:
|
||||
|
||||
RET
|
||||
|
||||
COUNT1: db 0
|
||||
COUNT2: db 0
|
||||
|
||||
;******************************************************
|
||||
|
||||
CLEAR_SH: ; § ¡¨¢ îâáï ã«ï¬¨ ¢á¥ 3-¨ ¡ ©âë ०¨¬
|
||||
IN A,(PORT_Y) ; ¢á¥¬ íªà ¥ (¢ ⮬ ç¨á«¥ ¡®à¤¥à¥ ¨ ¡« ª¥!)
|
||||
PUSH AF ; ªá¥«¥à â®à®¬
|
||||
|
||||
XOR A
|
||||
OUT (PORT_Y),A
|
||||
LD HL,0C303h
|
||||
|
||||
|
||||
CLEAR_LOOP:
|
||||
DI
|
||||
LD D,D
|
||||
LD A,0
|
||||
LD E,E
|
||||
LD (HL),A
|
||||
LD B,B
|
||||
EI
|
||||
|
||||
INC L
|
||||
INC L
|
||||
INC L
|
||||
INC L
|
||||
|
||||
LD A,L
|
||||
CP 0B3h
|
||||
JR NZ,CLEAR_LOOP
|
||||
|
||||
POP AF
|
||||
OUT (PORT_Y),A
|
||||
RET
|
||||
|
||||
;*********************************************
|
||||
|
||||
PIC_SET: ; à¨áã¥âáï á¥âª
|
||||
; ¨ ª¢ ¤à ⨪¨
|
||||
IN A,(PORT_Y)
|
||||
PUSH AF
|
||||
|
||||
DI
|
||||
|
||||
LD D,D
|
||||
LD A,8
|
||||
LD B,B
|
||||
|
||||
LD HL,0C000h
|
||||
LD C,0
|
||||
LOOP_SC7:
|
||||
LD A,0
|
||||
LOOP_SC6:
|
||||
LD B,8
|
||||
LOOP_SC5:
|
||||
OUT (PORT_Y),A
|
||||
|
||||
LD C,C
|
||||
LD (HL),C
|
||||
LD B,B
|
||||
|
||||
INC A
|
||||
DJNZ LOOP_SC5
|
||||
|
||||
INC C
|
||||
AND A
|
||||
JR NZ,LOOP_SC6
|
||||
|
||||
LD A,L
|
||||
ADD A,8
|
||||
LD L,A
|
||||
LD A,H
|
||||
ADC A,0
|
||||
LD H,A
|
||||
CP 0C3h
|
||||
JR NZ,LOOP_SC7
|
||||
|
||||
LD HL,0C000h
|
||||
LD C,0FFh
|
||||
LD D,D
|
||||
LD A,0
|
||||
LD B,B
|
||||
LOOP_SC3:
|
||||
LD E,E
|
||||
LD (HL),C ; vertical lines
|
||||
LD B,B
|
||||
|
||||
INC L
|
||||
INC L
|
||||
INC L
|
||||
INC L
|
||||
INC L
|
||||
INC L
|
||||
INC L
|
||||
|
||||
LD E,E
|
||||
LD (HL),C ; vertical lines
|
||||
LD B,B
|
||||
|
||||
INC HL
|
||||
|
||||
LD A,H
|
||||
CP 0C3h
|
||||
JR NZ,LOOP_SC3
|
||||
|
||||
LD A,0
|
||||
OUT (PORT_Y),A
|
||||
LD HL,0C000h
|
||||
|
||||
LOOP_SC4:
|
||||
OUT (PORT_Y),A
|
||||
|
||||
LD C,C
|
||||
LD (HL),C ; horizontal line
|
||||
INC H
|
||||
LD (HL),C
|
||||
INC H
|
||||
LD (HL),C
|
||||
LD B,B
|
||||
|
||||
ADD A,7
|
||||
OUT (PORT_Y),A
|
||||
|
||||
LD C,C
|
||||
LD (HL),C ; horizontal line
|
||||
DEC H
|
||||
LD (HL),C
|
||||
DEC H
|
||||
LD (HL),C
|
||||
LD B,B
|
||||
|
||||
INC A
|
||||
JR NZ,LOOP_SC4
|
||||
|
||||
|
||||
POP AF
|
||||
OUT (PORT_Y),A
|
||||
|
||||
RET
|
||||
|
||||
;*********************************************
|
||||
; ãáâ ®¢ª ०¨¬ íªà
|
||||
|
||||
MAIN_SCROLL: ; A - ª®®à¤¨ â Y
|
||||
PUSH DE
|
||||
CALL Y_SET ; ãáâ ®¢¨âì ¤ ë¥ Y ª®®à¤¨ âë ¤«ï á⮫¡æ
|
||||
POP DE
|
||||
CALL X_SET
|
||||
|
||||
LD HL,0C302h ; ¤à¥á ०¨¬
|
||||
|
||||
LD BC,Y_DATA ; ¤à¥á ¯®«®¦¥¨© Y
|
||||
LD DE,X_DATA ; ¤à¥á ०¨¬®¢ ¨ ª®®à¤¨ â X ¢ áâப å
|
||||
|
||||
M_LOOP:
|
||||
PUSH HL
|
||||
|
||||
LD A,1
|
||||
OUT (PORT_Y),A
|
||||
|
||||
DI ; ªá¥«¥à â®à®¥ § ¯®«¥¨¥ ०¨¬ íªà
|
||||
; ¤«ï ®¤®© «¨¨¨ § ª®¬¥áâ
|
||||
LD D,D
|
||||
LD A,79 ; 40 § ª®¬¥áâ (® ç¥à¥§ 1!!!)
|
||||
LD B,B
|
||||
|
||||
LD A,(BC) ; ¢§ïâì § ¯®«¨â¥«ì ¤«ï Y ª®®à¤¨ âë
|
||||
|
||||
LD E,E ; § ¯®«ïâì ª®áâ ⮩, ¢¥à⨪ «ì®
|
||||
LD (HL),A
|
||||
LD B,B
|
||||
IN A,(PORT_Y) ; ¢®ááâ ®¢«¥¨¥ ¯®àâ
|
||||
OUT (PORT_Y),A
|
||||
|
||||
DEC L
|
||||
LD L,L
|
||||
LD A,(DE) ; ¢§ïâì «¨¨î ०¨¬®¢
|
||||
LD A,A
|
||||
LD (HL),A ; ãáâ ®¢¨âì ०¨¬, ¢¥à⨪ «ì®
|
||||
LD B,B
|
||||
INC DE
|
||||
|
||||
IN A,(PORT_Y) ; ¢®ááâ ®¢«¥¨¥ ¯®àâ
|
||||
OUT (PORT_Y),A
|
||||
|
||||
DEC L
|
||||
LD L,L
|
||||
LD A,(DE) ; ¢§ïâì ¢â®àãî «¨¨î ०¨¬®¢
|
||||
LD A,A
|
||||
LD (HL),A ; ãáâ ®¢¨âì ०¨¬
|
||||
LD B,B
|
||||
DEC DE
|
||||
|
||||
IN A,(PORT_Y) ; ¢®ááâ ®¢«¥¨¥ ¯®àâ
|
||||
OUT (PORT_Y),A
|
||||
|
||||
POP HL
|
||||
INC L
|
||||
INC L
|
||||
INC L
|
||||
INC L ; á«¥¤ãîé ï áâப
|
||||
INC BC ; á«¥¤ãî騩 Y
|
||||
LD A,L
|
||||
CP 82h
|
||||
JR NZ,M_LOOP ; ¯®¢â®àïâì § ¯®«¥¨¥ ०¨¬
|
||||
|
||||
EI
|
||||
RET
|
||||
|
||||
;******************************************
|
||||
|
||||
Y_SET: ; A - Y_coord
|
||||
LD HL,Y_DATA ; ¤à¥á ¤ ëå
|
||||
LD B,32
|
||||
M_LP1:
|
||||
LD (HL),A ; Y ª®®à¤¨ âë ¤«ï ¢á¥å ª¢ ¤à ⨪®¢ ®¤®© áâப¨
|
||||
INC HL
|
||||
ADD A,8 ; 㢥«¨ç¨âì 8 ¤«ï á«¥¤ãî饩 áâப¨
|
||||
DJNZ M_LP1
|
||||
RET
|
||||
|
||||
;******************************************
|
||||
|
||||
X_SET: ; DE - X_coord + MODE
|
||||
LD HL,X_DATA ; ¤à¥á ¤ ëå
|
||||
LD B,40
|
||||
M_LPX1:
|
||||
LD (HL),E ; § ¯®¬¨âì ª®®à¤¨ âã ¤«ï ª¢ ¤à ⨪
|
||||
INC HL
|
||||
LD (HL),D
|
||||
INC HL
|
||||
LD A,E
|
||||
ADD A,8 ; 㢥«¨ç¨âì 8 ¤«ï á«¥¤ãî饣®
|
||||
LD E,A
|
||||
LD A,D
|
||||
ADC A,0
|
||||
LD D,A
|
||||
DJNZ M_LPX1 ; ¯®¢â®àïâì 40 à §
|
||||
|
||||
RET
|
||||
|
||||
;******************************************
|
||||
|
||||
X_DATA: DS 80 ; ¡®à ०¨¬®¢ ®¤®© áâப¨
|
||||
Y_DATA: DS 32 ; ¤ ë¥ Y (à áç¥âë¥)
|
||||
|
||||
|
||||
;*****************************************************************
|
||||
|
||||
DSS 8700h,255
|
||||
|
||||
.DEPHASE
|
||||
END
|
||||
|
||||
|
||||
@@ -0,0 +1,591 @@
|
||||
.LION EQU 0
|
||||
.FLEX EQU 1
|
||||
.IBMK EQU 1
|
||||
.PROJ1 EQU 0
|
||||
.PROJ2 EQU 0
|
||||
.PROJ3 EQU 1
|
||||
.PROJ4 EQU 1
|
||||
.PAL EQU 1
|
||||
|
||||
|
||||
;ELCOM256 EQU 1 ; ०¨¬ ELCOM-256
|
||||
|
||||
;IF ELCOM256 EQ 1
|
||||
|
||||
D_TBON EQU 3 ; ¤ ë¥ ¤«ï ¢ª«î票ï TURBO
|
||||
D_TBOFF EQU 2 ; ¤ ë¥ ¤«ï ¢ª«î票ï TURBO
|
||||
D_ROM16ON EQU 1
|
||||
D_ROM16OFF EQU 0
|
||||
CNF_0 EQU 04h
|
||||
CNF_1 EQU 0Ch
|
||||
CNF_2 EQU 14h
|
||||
CNF_3 EQU 1Ch
|
||||
CNF_512 EQU 80h ; ¢ª«î票¥ Pentagon 128
|
||||
|
||||
CBL_DIR EQU 78 ; ¯®àâ ã¯à ¢«¥¨ï COVOX-Blaster
|
||||
; bit 7 - 1 ¢ª«îç¨âì CBL
|
||||
|
||||
;ELSE
|
||||
;D_TBON EQU 03h ; ¤ ë¥ ¤«ï ¢ª«î票ï TURBO
|
||||
;D_TBOFF EQU 02h ; ¤ ë¥ ¤«ï ¢ª«î票ï TURBO
|
||||
;D_ROM16ON EQU 40h
|
||||
;D_ROM16OFF EQU 00h
|
||||
;CNF_0 EQU 04h
|
||||
;CNF_1 EQU 0Ch
|
||||
;CNF_2 EQU 14h
|
||||
;CNF_3 EQU 1Ch
|
||||
;ENDIF
|
||||
|
||||
SPRINTER EQU 4 ; ‚…�‘ˆŸ !!!
|
||||
ISD_WARM EQU 3
|
||||
ISD_COLD EQU 0
|
||||
IS_KEY EQU 40h ; „€��›… „‹Ÿ ‚›‚Ž„€ ‚ �Ž�’ ��ˆ ‚Š‹ž—…�ˆˆ IS-DOS
|
||||
IS_RAM_ADR EQU 5BC0h ; €„�…‘ ‡€ƒ�“‡Šˆ ��Žƒ�€ŒŒ› �…�…•Ž„€ ‚ IS-DOS
|
||||
TB_WAITES EQU 00H ; WAITë ¤«ï TURBO-MODE
|
||||
NTB_WAITES EQU 00H ; WAITë ¤«ï neTURBO-MODE
|
||||
IS_WAITES EQU 00H ; WAITë ¤«ï IS-DOS
|
||||
;****************************************
|
||||
;SYS_PORT_ON EQU 07DH
|
||||
;SYS_PORT_OFF EQU 03DH
|
||||
SYS_PORT_ON EQU 07CH
|
||||
SYS_PORT_OFF EQU 03CH
|
||||
|
||||
PAL_V_PAGE EQU 09EH
|
||||
PAL_SCP EQU 01EH
|
||||
|
||||
CNF_PAGE EQU 040H
|
||||
SYS_PAGE EQU 0FEH
|
||||
MODE_PAGE EQU 0FCH
|
||||
;SCR_PAGE EQU 0FDH
|
||||
;PAL_PAGE EQU 0FDH
|
||||
|
||||
KBD_COM EQU 1Bh
|
||||
KBD_DAT EQU 1Ah
|
||||
|
||||
COM_B EQU 1Bh
|
||||
DAT_B EQU 1Ah
|
||||
COM_A EQU 19h
|
||||
DAT_A EQU 18h
|
||||
|
||||
LPT1_D EQU 1CH
|
||||
LPT1_C EQU 1DH
|
||||
LPT2_D EQU 1EH
|
||||
LPT2_C EQU 1FH
|
||||
|
||||
STC0_C EQU 10H
|
||||
STC1_C EQU 11H
|
||||
STC2_C EQU 12H
|
||||
STC3_C EQU 13H
|
||||
|
||||
RAMD_LET EQU ('R'-'A')
|
||||
|
||||
P_KBD_OUT EQU 0F8H
|
||||
P_KBD_IN EQU 0FEH
|
||||
;***************************************
|
||||
;HD_HEADS EQU 5
|
||||
HD_CS EQU 0A0H
|
||||
|
||||
;HD_S_P_T EQU 17
|
||||
;HD_S_X_H EQU (HD_S_P_T * HD_HEADS) ; ??? ç¨á«® ᥪâ®à®¥ 樫¨¤à¥
|
||||
|
||||
P_DATS EQU 050H ; READ/WRITE INIR/OTIR
|
||||
|
||||
P_ERR EQU 051H ; READ
|
||||
P_PREC EQU 151H ; WRITE
|
||||
|
||||
P_S_CNT EQU 152H ;
|
||||
P_S_NUM EQU 153H
|
||||
P_C_LOW EQU 154H
|
||||
P_C_HIG EQU 155H ;<-\
|
||||
P_HD_CS EQU 4152H ;<-/
|
||||
|
||||
P_HDST EQU 4053H ; READ
|
||||
P_CMD EQU 4153H ; WRITE
|
||||
|
||||
P_HD3F6 EQU 4154H ; WRITE 3F6
|
||||
P_HD3F7 EQU 4055H ; READ 3F7
|
||||
|
||||
;***************************************
|
||||
CMOS_DRD equ 0FFBDh
|
||||
CMOS_DWR equ 0BFBDh
|
||||
CMOS_AWR equ 0DFBDh
|
||||
ISA_PORT equ 09FBDh
|
||||
|
||||
;***************************************
|
||||
SEC_SIZE EQU 11
|
||||
CLAST_SIZE EQU 13
|
||||
RESERV_SECS EQU 14
|
||||
FATS_NUM EQU 16
|
||||
FLS_NUM EQU 17
|
||||
S_P_D EQU 19
|
||||
FORM_CODE EQU 21
|
||||
S_P_F EQU 22
|
||||
S_P_T EQU 24
|
||||
H_P_S EQU 26
|
||||
SPECIAL_SECS EQU 28
|
||||
FAT_ID EQU 36H
|
||||
;***************************************
|
||||
|
||||
SYSTEM_ID EQU 0C020H
|
||||
|
||||
SYS_SP EQU 0C0FEH ; „Ž�Ž‹�ˆ’…‹œ�›‰ ‘’…Š
|
||||
DISK_TYPE EQU 0C100H ; ¯¥à¥ ¤à¥á æ¨ï ¤¨áª®¢
|
||||
COPY_PAGE0 EQU 0C104H ; ª®¯¨¨ § 票© ¯®à⮢ áâà ¨æ
|
||||
COPY_PAGE1 EQU 0C105H
|
||||
COPY_PAGE2 EQU 0C106H
|
||||
COPY_PAGE3 EQU 0C107H
|
||||
RAMD_VARS EQU 0C108H ; ¯¥à¥¬¥ë¥ RAM-¤¨áª®¢
|
||||
A_RAMD_VARS EQU 0C118H ; ⥪ã騩 RAM-Disk
|
||||
SP_SAVE EQU 0C11AH ; ¬¥áâ® ¤«ï á®åà ¥¨ï ¤à¥á á⥪
|
||||
ERR_SAVE EQU 0C11CH
|
||||
COPY_RGADR EQU 0C11DH
|
||||
RAM_MSD EQU 0C11EH ; áâà ¨æ ¤«ï à ¡®âë ¢ MS-DOS
|
||||
MSD_SECS EQU 0C11FH ; —¨á«® ᥪâ®à®¢ ¢ MS-DOS
|
||||
MSD_NAME EQU 0C120H ; €¤à¥á ¨¬¥¨ ©¤¥®£® ä ©«
|
||||
;MSD_FAT_SEC EQU 0C122H ; ç «ìë© á¥ªâ®à FAT
|
||||
INT_ADRESS EQU 0C124H ; ç «ìë© á¥ªâ®à CAT
|
||||
INT_PAGE EQU 0C126H ; ç «ìë© á¥ªâ®à DAT
|
||||
DS_1440 EQU 0C128H ; ä« £¨ ¯¥à¥ª«î票ï 720/1440
|
||||
F_P_S EQU 0C129H ; ç¨á«® ä ©«®¢ëå § ¯¨á¥© ¢ ᥪâ®à¥
|
||||
S_P_C EQU 0C12AH ; ç¨á«® ᥪâ®à®¢ ª â «®£
|
||||
COUNT_FL EQU 0C12BH ; áç¥â稪 ä ©«®¢ ¢ ᥪâ®à¥
|
||||
COUNT_SEC EQU 0C12CH ; áç¥â稪 ᥪâ®à®¢ ¢ ª â «®£¥
|
||||
C_P_B EQU 0C12DH ; ç¨á«® ª« áâ¥à®¢ ¡«®ª އ“
|
||||
;CLASTER_LEN EQU 0C12EH ; ¤«¨ ª« áâ¥à ¢ ¡ ©â å
|
||||
FAT_FLAG EQU 0C130H ; FAT ä« £ + FAT sector
|
||||
MSD_CONT_SEC EQU 0C132H ; ⥪ã騩 ᥪâ®à ¤«ï MS-DOS
|
||||
MSD_CONT_SEC2 EQU 0C134H
|
||||
S_X_H EQU 0C136H ; ª®«¨ç¥á⢮ ᥪâ®à®¢ 樫¨¤à¥
|
||||
CONFIG_ALL EQU 0C138H ; ®¯¨á â¥«ì ª®ä¨£ãà æ¨¨
|
||||
CONFIG_DE EQU 0C13AH ; ®¯¨á â¥«ì ª®ä¨£ãà æ¨¨
|
||||
CONFIG_BYTE EQU 0C13EH ; ¡ ©â ª®ä¨£ãà æ¨¨
|
||||
|
||||
WIN_MAP_SC EQU 0C140H
|
||||
WIN_TAB_SC EQU 0C142H
|
||||
WIN_SAV_HL EQU 0C144H
|
||||
WIN_SAV_DE EQU 0C146H
|
||||
WIN_SAV_BC EQU 0C148H
|
||||
WIN_ZG EQU 0C14AH
|
||||
WIN_PLACE_WIN EQU 0C14CH
|
||||
WIN_GR_MAP EQU 0C14EH
|
||||
|
||||
SYS_WORK1 EQU 0C150H
|
||||
SYS_WORK2 EQU 0C152H
|
||||
SYS_WORK3 EQU 0C154H
|
||||
SYS_WORK4 EQU 0C156H
|
||||
|
||||
WIN_MAP_LAB1 EQU 0C158H
|
||||
WIN_MODE_SH EQU 0C15CH
|
||||
WIN_MODE_SC EQU 0C15EH
|
||||
|
||||
MSD_FAT_SEC EQU 0C160H ; ç «ìë© á¥ªâ®à FAT
|
||||
MSD_FAT_SEC2 EQU 0C162H ; ç «ìë© á¥ªâ®à FAT
|
||||
MSD_CAT_SEC EQU 0C164H ; ç «ìë© á¥ªâ®à CAT
|
||||
MSD_CAT_SEC2 EQU 0C166H ; ç «ìë© á¥ªâ®à CAT
|
||||
MSD_DAT_SEC EQU 0C168H ; ç «ìë© á¥ªâ®à DAT
|
||||
MSD_DAT_SEC2 EQU 0C16AH ; ç «ìë© á¥ªâ®à DAT
|
||||
CLASTER_LEN EQU 0C16CH ; ¤«¨ ª« áâ¥à ¢ ¡ ©â å
|
||||
CLASTER_LEN2 EQU 0C16EH ; ¤«¨ ª« áâ¥à ¢ ¡ ©â å
|
||||
|
||||
;CMOS_FLAG_1 EQU 0C170H
|
||||
|
||||
GR_BIT_END EQU 7
|
||||
|
||||
S_BIT_END EQU 7
|
||||
S_BIT_LIN EQU 6
|
||||
S_BIT_MOD EQU 5
|
||||
|
||||
BIT_1440 EQU 1
|
||||
BIT_MASK_1440 EQU 00000010B
|
||||
|
||||
RAMD_KEYS EQU 0C180H ; ª«îç¨ RAM-Disks
|
||||
RAMD_KEY_NUM EQU 16
|
||||
|
||||
LIB_TABLE EQU 0C1A0H ; â ¡«¨æë librares 32 ¡ ©â
|
||||
; +0 ¡¨¡«¨®â¥ª DOS
|
||||
|
||||
HDD_INI_TABLE EQU 0C1C0H ; â ¡«¨æë ¤«ï ide ãáâனá⢠32 ¡ ©â
|
||||
; 0 - ª®¯¨ï DRV_HEAD
|
||||
; 1 - ᥪâ®à®¢ ¤®à®¦ª¥
|
||||
; 2 - ç¨á«® £®«®¢®ª
|
||||
; 3 - ª®«¨ç¥á⢮ 樫¨¤à®¢ ¬«.
|
||||
; 4 - ª®«¨ç¥á⢮ 樫¨¤à®¢ áâ à訩.
|
||||
; 5 - ᥪâ®à®¢ 樫¨¤à ¬«.
|
||||
; 6 - ᥪâ®à®¢ 樫¨¤à áâ àè.
|
||||
; 7 - reserv - type
|
||||
|
||||
FDD_INI_TABLE EQU 0C1E0H ; â ¡«¨æë ¤«ï FDD ãáâனá⢠32 ¡ ©â
|
||||
|
||||
RAMD_FAT EQU 0C200H ; à ᯮ«®¦¥¨¥ ¡«®ª®¢ RAM-Disk-®¢
|
||||
|
||||
MS_BPB EQU 0C400H ; ¡ãä¥à BPB
|
||||
MS_DIR EQU 0C800H ; ¡ãä¥à DIR sector
|
||||
MS_FAT EQU 0CC00H ; ¡ãä¥à FAT sector
|
||||
MS_BUF EQU 0D000H ; ¡ãä¥à DAT sector
|
||||
HD_IDF_ADR EQU 0C600H
|
||||
|
||||
|
||||
WIN_MAP_IX EQU 0E000H ; ¤ ë¥ ª àâ ®ª®
|
||||
|
||||
TASK_DATA EQU 0EC00H ; ¤ ë¥ ¤«ï § ¤ ç
|
||||
|
||||
; ***** - Žª®ë¥ ¯¥à¥¬¥ë¥ - *****
|
||||
|
||||
WIN_SIZE_H EQU 0 ; £®à¨§®â «ìë© à §¬¥à ¢ § ª®¬¥áâ å
|
||||
WIN_SIZE_V EQU 1 ; ¢¥à⨪ «ìë© à §¬¥à ¢ § ª®¬¥áâ å
|
||||
WIN_PLACE_H EQU 2 ; ¯®«®¦¥¨¥ ¯® £®à¨§®à «¨, ¢ § ª®¬¥áâ å
|
||||
WIN_PLACE_V EQU 3 ; ¯®«®¦¥¨¥ ¯® ¢¥à⨪ «¨ ¢ § ª®¬¥áâ å
|
||||
WIN_MODE EQU 4 ; ०¨¬ § ª®¬¥áâ
|
||||
WIN_MODE_S EQU 5 ; ¤®¯®«¨â¥«ìë© à¥¦¨¬
|
||||
; ¡¨â 0 - Sp-SCR,
|
||||
WIN_GR_X EQU 6 ; ¯®«®¦¥¨¥ ¯® X ¢ ¯®«¥ £à 䨪¨ (¯® § ª®¬¥áâ)
|
||||
WIN_GR_Y EQU 7 ; ¯®«®¦¥¨¥ ¯® Y ¢ ¯®«¥ £à 䨪¨ (¯® § ª®¬¥áâ)
|
||||
|
||||
WIN_HL EQU 8 ; á®åà ¥¨¥ HL
|
||||
WIN_BC EQU 10 ; á®åà ¥¨¥ BC
|
||||
WIN_DE EQU 12 ; á®åà ¥¨¥ DE
|
||||
WIN_V_BEG EQU 14 ; ç «® ®ª ¯® ¢¥à⨪ «¨
|
||||
WIN_V_END EQU 15 ; ª®¥æ ®ª ¯® ¢¥à⨪ «¨
|
||||
WIN_H_BEG EQU 16 ; ç «® ®ª ¯® £®à¨§®â «¨
|
||||
WIN_H_END EQU 17 ; ª®¥æ ®ª ¯® £®à¨§®â «¨
|
||||
WIN_SIZE_REL EQU 18 ; ॠ«ìë© à §¬¥à ¢ ᨬ¢®« å
|
||||
WIN_MODE_E EQU 19 ; ¤®¯®«¨â¥«ìë© à¥¦¨¬ íªà
|
||||
WIN_WORK_1 EQU 20 ; à ¡®ç ï ¯¥à¥¬¥ ï 1
|
||||
WIN_WORK_2 EQU 21 ; à ¡®ç ï ¯¥à¥¬¥ ï 2
|
||||
WIN_GRAF_X EQU 24 ; ç «ì ï ª®®à¤¨ â ¯® X
|
||||
WIN_GRAF_Y EQU 26 ; ç «ì ï ª®®à¤¨ â ¯® Y
|
||||
|
||||
USER_VARS EQU 0F000h ; ¯¥à¥¬¥ë¥ ¯®«ì§®¢ ⥫¥©
|
||||
|
||||
;SW_ROM EQU 3CF9H
|
||||
|
||||
; IF .PROJ4
|
||||
;RGADR EQU 0D0H
|
||||
;RGSCR EQU 0D1H
|
||||
;RGMOD EQU 0D2H
|
||||
;RGACC EQU 0D3H
|
||||
;PGACC EQU 0FCH
|
||||
|
||||
;PAGE0 EQU 0C0H
|
||||
;PAGE1 EQU 0C5H
|
||||
;PAGE2 EQU 0C2H
|
||||
;PAGE3 EQU 0C0H
|
||||
|
||||
; ELSE
|
||||
|
||||
; ENDIF
|
||||
|
||||
PAGE0 EQU 082H
|
||||
PAGE1 EQU 0A2H
|
||||
PAGE2 EQU 0C2H
|
||||
PAGE3 EQU 0E2H
|
||||
|
||||
;RGADR EQU 089H
|
||||
;RGSCR EQU 0A9H
|
||||
;RGMOD EQU 099H
|
||||
;RGACC EQU 0B9H
|
||||
PORT_Y EQU 089H
|
||||
RGADR EQU 089H
|
||||
RGSCR EQU 0E9H
|
||||
RGMOD EQU 0C9H
|
||||
;RGACC EQU 0A9H
|
||||
;PGACC EQU 0FCH
|
||||
CNF_PORT EQU 7Ch
|
||||
|
||||
ALTERA EQU 1400H
|
||||
|
||||
WG_COM EQU 00FH
|
||||
WG_TRK EQU 03FH
|
||||
WG_SEC EQU 05FH
|
||||
WG_DATA EQU 07FH
|
||||
P_DOS_FF EQU 0FFH
|
||||
|
||||
BUFER_RD EQU 5D25H
|
||||
|
||||
PR_BUFER EQU 05B00H
|
||||
AUTO_5B08 EQU 05B08H
|
||||
AUTO_5B5C EQU 05B5CH
|
||||
COPY_P128 EQU 05B5CH
|
||||
AUTO_5BFF EQU 05BFFH
|
||||
K_STATE EQU 05C00H
|
||||
KEY_TIME EQU 05C09H
|
||||
REP_K_TYME EQU 05C10H
|
||||
ZG EQU 05C36H
|
||||
ERR_BEEP EQU 05C38H
|
||||
KEY_BEEP EQU 05C39H
|
||||
ERR_NR EQU 05C3AH
|
||||
FLAGS EQU 05C3BH
|
||||
TV_FLAG EQU 05C3CH
|
||||
ERR_SP EQU 05C3DH
|
||||
LIST_SP EQU 05C3FH
|
||||
MODE EQU 05C41H
|
||||
NEW_PPC EQU 05C42H
|
||||
NEW_S_PPC EQU 05C44H
|
||||
PPC EQU 05C45H
|
||||
SUB_PPC EQU 05C47H
|
||||
BORDER EQU 05C48H
|
||||
EDIT_PPC EQU 05C49H
|
||||
BAS_VARS EQU 05C4BH
|
||||
WORK_VAR EQU 05C4DH
|
||||
CHANS EQU 05C4FH
|
||||
CUR_CHL EQU 05C51H
|
||||
BAS_PROG EQU 05C53H
|
||||
NEXT_LINE EQU 05C55H
|
||||
DATA_ADR EQU 05C57H
|
||||
E_LINE EQU 05C59H
|
||||
K_CUR EQU 05C5BH
|
||||
CH_ADR EQU 05C5DH
|
||||
SINT_ER_AD EQU 05C5FH
|
||||
WORK_SP EQU 05C61H
|
||||
STK_BOT EQU 05C63H
|
||||
STK_END EQU 05C65H
|
||||
B_REG EQU 05C67H
|
||||
MEM_CALC EQU 05C68H
|
||||
FLAGS_2 EQU 05C6AH
|
||||
L_SCR_SIZE EQU 05C6BH
|
||||
AUTO_LST_L EQU 05C6CH
|
||||
OLD_PPC EQU 05C6EH
|
||||
OLD_S_PPC EQU 05C70H
|
||||
FLG_INPUT EQU 05C71H
|
||||
S_VAR_LEN EQU 05C72H
|
||||
SINT_TB_ADR EQU 05C74H
|
||||
RAND_SEED EQU 05C76H
|
||||
FRAMES EQU 05C78H
|
||||
UDG EQU 05C7BH
|
||||
X_Y_COORD EQU 05C7DH
|
||||
PRN_POS EQU 05C7FH
|
||||
ADR_PR_BUF EQU 05C80H
|
||||
ECHO_E EQU 05C82H
|
||||
SCR_PL_M EQU 05C84H
|
||||
SCR_PL_L EQU 05C86H
|
||||
SCR_POS_M EQU 05C88H
|
||||
SCR_POS_L EQU 05C8AH
|
||||
SCROLL_ST EQU 05C8CH
|
||||
ATTR_P EQU 05C8DH
|
||||
MASK_P EQU 05C8EH
|
||||
ATTR_T EQU 05C8FH
|
||||
MASK_E EQU 05C90H
|
||||
FLAGS_ATR EQU 05C91H
|
||||
MEM_BOT EQU 05C92H
|
||||
AUTO_5C9A EQU 05C9AH
|
||||
NMI_ADR EQU 05CB0H
|
||||
TOP_CLEAR EQU 05CB2H
|
||||
P_RAMTOP EQU 05CB4H
|
||||
BEG_ADRESS EQU 05CB6H
|
||||
RET_INS EQU 05CC2H
|
||||
AUTO_5CC3 EQU 05CC3H
|
||||
DISK_A EQU 05CC8H
|
||||
DISK_B EQU 05CC9H
|
||||
DISK_C EQU 05CCAH
|
||||
DISK_D EQU 05CCBH
|
||||
CAT_SEC EQU 05CCCH
|
||||
DRV_READY EQU 05CCDH
|
||||
RD_WR_COM EQU 05CCEH
|
||||
VAR_1 EQU 05CCFH
|
||||
AUTO_5CD1 EQU 05CD1H
|
||||
AUTO_5CD2 EQU 05CD2H
|
||||
AUTO_5CD3 EQU 05CD3H
|
||||
AUTO_5CD5 EQU 05CD5H
|
||||
DOS_ERROR EQU 05CD6H
|
||||
MED_START EQU 05CD7H
|
||||
DOS_CH_ADR EQU 05CD9H
|
||||
MED_LEN EQU 05CDBH
|
||||
FL_NAME EQU 05CDDH
|
||||
FL_N_2 EQU 05CDFH
|
||||
FL_N_4 EQU 05CE1H
|
||||
FL_N_6 EQU 05CE3H
|
||||
FL_N_7 EQU 05CE4H
|
||||
FL_TYPE EQU 05CE5H
|
||||
FL_START EQU 05CE6H
|
||||
|
||||
FL_LEN EQU 05CE8H
|
||||
START_CLASTER EQU FL_LEN
|
||||
|
||||
FL_SIZE EQU 05CEAH
|
||||
FL_PLACE EQU 05CEBH
|
||||
VAR_2 EQU 05CEDH
|
||||
INTERF_I EQU 05CEFH
|
||||
VAR_2_0 EQU 05CF1H
|
||||
VAR_2_1 EQU 05CF2H
|
||||
CONT_SEC EQU 05CF4H
|
||||
CONT_TRK EQU 05CF5H
|
||||
OPER_DISK EQU 05CF6H
|
||||
DOS_FLAG EQU 05CF7H
|
||||
DISK_1_FLG EQU 05CF8H
|
||||
DISK_2_FLG EQU 05CF9H
|
||||
TIME_A EQU 05CFAH
|
||||
TIME_B EQU 05CFBH
|
||||
TIME_C EQU 05CFCH
|
||||
TIME_D EQU 05CFDH
|
||||
COMAND_WG EQU 05CFEH
|
||||
SEC_NUM EQU 05CFFH
|
||||
CONT_BUF_ADR EQU 05D00H
|
||||
WORK_2 EQU 05D02H
|
||||
WORK_4 EQU 05D04H
|
||||
S_NAME_NUM EQU 05D06H
|
||||
N_DEL_FLS EQU 05D07H
|
||||
FST_SYM_NAME EQU 05D08H
|
||||
VAR_3 EQU 05D09H
|
||||
BUF_FLAG EQU 05D0CH
|
||||
BAS_DOS_FLG EQU 05D0EH
|
||||
DOS_ERR_2 EQU 05D0FH
|
||||
ERR_3D00 EQU 05D10H
|
||||
ADR_DOS_COM EQU 05D11H
|
||||
ERR_SP_COPY EQU 05D13H
|
||||
MSG_FLAG EQU 05D15H
|
||||
PDOS_COPY EQU 05D16H
|
||||
FLAG_BOOT EQU 05D17H
|
||||
INT_1_VAR EQU 05D18H
|
||||
CONT_DISK EQU 05D19H
|
||||
ADR_RET EQU 05D1AH
|
||||
DOS_SP EQU 05D1CH
|
||||
FL_NUMBER EQU 05D1EH
|
||||
COM_LN_COPY EQU 05D20H
|
||||
L_5D23 EQU 05D23H
|
||||
BUFER EQU 05D25H
|
||||
AUTO_5D33 EQU 05D33H
|
||||
CLEAR_SEC EQU 05E06H
|
||||
CLEAR_TRK EQU 05E07H
|
||||
TYPE_DISK EQU 05E08H
|
||||
N_FILES EQU 05E09H
|
||||
FREE_SEC EQU 05E0AH
|
||||
CODE_10H EQU 05E0CH
|
||||
DISK_MRK_1 EQU 05E0FH
|
||||
DISK_ALT_NM EQU 05E10H
|
||||
N_DEL_FL EQU 05E19H
|
||||
DISK_NAME EQU 05E1AH
|
||||
|
||||
|
||||
;RET_PAGE0 MACRO
|
||||
; LD A,0
|
||||
; OUT (PAGE0),A
|
||||
; ENDM
|
||||
;RET_PAGE1 MACRO
|
||||
; LD A,5
|
||||
; OUT (PAGE1),A
|
||||
; ENDM
|
||||
;RET_PAGE2 MACRO
|
||||
; LD A,2
|
||||
; OUT (PAGE2),A
|
||||
; ENDM
|
||||
;RET_PAGE3 MACRO
|
||||
; LD A,0
|
||||
; OUT (PAGE3),A
|
||||
; ENDM
|
||||
|
||||
DSS MACRO adr,dt
|
||||
IF ADR GE $
|
||||
REPT (adr-$)/16
|
||||
DB dt,dt,dt,dt,dt,dt,dt,dt,dt,dt,dt,dt,dt,dt,dt,dt
|
||||
ENDM
|
||||
REPT adr-$
|
||||
DB dt
|
||||
ENDM
|
||||
ELSE
|
||||
.PRINTX "Error memory relocation."
|
||||
ENDIF
|
||||
ENDM
|
||||
|
||||
CALL_48 MACRO adr
|
||||
LOCAL ADR_R
|
||||
|
||||
PUSH HL
|
||||
LD HL,ADR_R
|
||||
PUSH HL
|
||||
LD HL,SW_ROM
|
||||
PUSH HL
|
||||
LD HL,adr
|
||||
JP JP_HL_48
|
||||
ADR_R: POP HL
|
||||
|
||||
ENDM
|
||||
|
||||
CALL_48X MACRO adr
|
||||
LOCAL ADR_R
|
||||
|
||||
PUSH HL
|
||||
LD HL,ADR_R
|
||||
EX (SP),HL
|
||||
|
||||
PUSH HL
|
||||
LD HL,SW_ROM
|
||||
EX (SP),HL
|
||||
|
||||
PUSH HL
|
||||
LD HL,adr
|
||||
EX (SP),HL
|
||||
|
||||
JP SW_ROM
|
||||
ADR_R:
|
||||
ENDM
|
||||
|
||||
RAMD_KEY MACRO
|
||||
SUB 4
|
||||
DI
|
||||
LD B,SYS_PAGE
|
||||
LD C,PAGE3
|
||||
OUT (C),B
|
||||
LD HL,RAMD_KEYS
|
||||
ADD A,L
|
||||
LD L,A
|
||||
DEC L
|
||||
LD (A_RAMD_VARS),HL
|
||||
INC L
|
||||
LD L,(HL)
|
||||
RET_PAGE3
|
||||
EI
|
||||
LD A,L
|
||||
ENDM
|
||||
|
||||
|
||||
|
||||
|
||||
; �®pâë Sprinter. (¡ ©âë PORT_X)<<
|
||||
; 0 - port FF<<
|
||||
; 1 - port keyboard<<
|
||||
; 2 - port BORDER<<
|
||||
; 3 - port 1FFDh<<
|
||||
; 4 - port 7FFDh<<
|
||||
; 5 - port 3FFDh<<
|
||||
; 6 - port Start-ROM<<
|
||||
; 7 - port Start-ROM-ALT<<
|
||||
; 8 - port ROM-BASIC48<<
|
||||
; 9 - port ROM-BASIC128<<
|
||||
; 10 - port ROM-TR-DOS<<
|
||||
; 11 - port ROM-EXPANSION<<
|
||||
; 12 - port ROM-BASIC48-ALT<<
|
||||
; 13 - port ROM-BASIC128-ALT<<
|
||||
; 14 - port ROM-TR-DOS-ALT<<
|
||||
; 15 - port ROM-EXPANSION-ALT<<
|
||||
; 16 Ä¿<<
|
||||
; .. Ä´<<
|
||||
; 31 ÄÁÄports RAM-PAGES - ¯®pâë 㪠§ë¢ î騥, ª ª ï áâp ¨æ އ“<<
|
||||
;¯®¤ª«îç¥ ¢ ª ç¥á⢥ áâp ¨æë 0..F ¢ ª®ä¨£ãp 樨 Scorpion.<<
|
||||
; 33 - port RAM-0 áâp ¨æ އ“ ¯®¤ª«îç ¥¬ ï ¢ ã«¥¢®¥ ®ª® ¯p®æ¥áá®p <<
|
||||
; 34 - port RAM-5 áâp ¨æ އ“ ¯®¤ª«îç ¥¬ ï ¢ ¯¥p¢®¥ ®ª® ¯p®æ¥áá®p <<
|
||||
; 35 - port RAM-2 áâp ¨æ އ“ ¯®¤ª«îç ¥¬ ï ¢® ¢â®p®¥ ®ª® ¯p®æ¥áá®p <<
|
||||
; 36 - port CONFIG<<
|
||||
; 37 - port COVOX-1<<
|
||||
; 38 - port COVOX-2<<
|
||||
; 39 - port AY-3-8910-adr<<
|
||||
; 40 - port AY-3-8910-dat<<
|
||||
; 41 - port KEMPSTON<<
|
||||
; 42 - port ISA-interface<<
|
||||
; 43 Ŀreserv<<
|
||||
; .. Ä´<<
|
||||
; 47 ÄÙ<<
|
||||
; 48 - 51 ¯®pâë ‚ƒ93<<
|
||||
; 52 - ¯®pâ DOS-1<<
|
||||
; 53 - ¯®pâ DOS-2<<
|
||||
; 54 Ä¿ á«ã¦¥¡ë¥ ¯®pâë<<
|
||||
; .. Ä´<<
|
||||
; 63 ÄÙ<<
|
||||
; 64 Ä¿ ¯®pâë IDE interface<<
|
||||
; .. Ä´<<
|
||||
; 79 ÄÙ<<
|
||||
; 80..127 - p¥§¥p¢.<<
|
||||
; 128..143 - ¯®pâë ¨¤¥â¨ä¨ª â®p ¬ è¨ë ( ⮫쪮 ¤«ï ç⥨ï.)<<
|
||||
; 144..254 - p¥§¥p¢<<
|
||||
; 255 - ã«ì-¯®pâ - ®âª«î祮¥ á®áâ®ï¨¥.<<
|
||||
;
|
||||
|
||||
Reference in New Issue
Block a user