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:
+566
@@ -0,0 +1,566 @@
|
||||
; ‚室ï騥 äãªæ¨¨:
|
||||
;
|
||||
; ms_init (initMouse)
|
||||
; ms_show (showMouse)
|
||||
; ms_hide (hideMouse)
|
||||
; ms_stat (getStatMouse)
|
||||
; msgstat (getGStatMouse)
|
||||
; ms_spos (setPosMouse)
|
||||
; ms_ybnd (yLimMouse)
|
||||
; ms_xbnd (xLimMouse)
|
||||
; ms_scur (setCursMouse)
|
||||
; ms_tcur (setTxtMouse)
|
||||
; ms_gcur (getCursMouse)
|
||||
; ms_gsen (getSensMouse)
|
||||
; ms_ssen (setSensMouse)
|
||||
; ms_hard (hardMouse)
|
||||
; ms_vmod (vmodeMouse)
|
||||
; ms_ref (refreshMouse)
|
||||
;
|
||||
|
||||
|
||||
|
||||
|
||||
MODULE msinit
|
||||
;
|
||||
; "mouse.h"
|
||||
; Initialization the mouse driver.
|
||||
; Returns 0 if mouse installed, -1 if not.
|
||||
;
|
||||
; char initMouse(void)
|
||||
;
|
||||
ms_init_::
|
||||
ld c,0
|
||||
rst 30h
|
||||
ld a,0 ; Ok
|
||||
ret nc
|
||||
dec a ; error
|
||||
ret
|
||||
|
||||
ENDMODULE
|
||||
|
||||
|
||||
MODULE msshow
|
||||
;
|
||||
; "mouse.h"
|
||||
; ”ãªæ¨ï ¢ë¢®¤¨â íªà ªãàá®à ¬ëè¨, ®âá«¥¦¨¢ ¥â
|
||||
; ¢á¥ ¯¥à¥¬¥é¥¨ï ªãàá®à ¨ ¯¥à¥à¨á®¢ë¢ ¥â ¥£®.
|
||||
;
|
||||
; �ਠ®è¨¡ª¥, ¢®§¢à é ¥âáï § 票¥ -1 ¨ errno
|
||||
; ᮤ¥à¦¨â ®¬¥à ®è¨¡ª¨.
|
||||
;
|
||||
; char showMouse(void)
|
||||
;
|
||||
ms_show_::
|
||||
ld c,1
|
||||
rst 30h
|
||||
ld (errno_##),a
|
||||
ld a,0 ; Ok
|
||||
ret nc
|
||||
dec a ; error
|
||||
ret
|
||||
|
||||
ENDMODULE
|
||||
|
||||
|
||||
MODULE mshide
|
||||
;
|
||||
; "mouse.h"
|
||||
; ”ãªæ¨ï áâ¨à ¥â ªãàá®à ¬ëè¨ á íªà , ® ¤à ©¢¥à ¯à®¤®«¦ ¥â
|
||||
; ®âá«¥¦¨¢ ¨¥ ¯¥à¥¬¥é¥¨ï ¬ëè¨ ¨ ¦ ⨥ ª®¯ª¨.
|
||||
;
|
||||
; �ਠ®è¨¡ª¥, ¢®§¢à é ¥âáï § 票¥ -1 ¨ errno
|
||||
; ᮤ¥à¦¨â ®¬¥à ®è¨¡ª¨.
|
||||
;
|
||||
; char hideMouse(void)
|
||||
;
|
||||
ms_hide_::
|
||||
ld c,2
|
||||
rst 30h
|
||||
ld (errno_##),a
|
||||
ld a,0 ; Ok
|
||||
ret nc
|
||||
dec a ; error
|
||||
ret
|
||||
|
||||
ENDMODULE
|
||||
|
||||
|
||||
MODULE msstat
|
||||
;
|
||||
; "mouse.h"
|
||||
; —⥨¥ á®áâ®ï¨ï ¬ëè¨.
|
||||
; ”ãªæ¨ï ¢®§¢à é ¥â ⥪ã騥 ⥪áâ®¢ë¥ ª®®à¤¨ âë ªãàá®à ¬ëè¨
|
||||
; ¨ á®áâ®ï¨¥ ¥¥ ª®¯®ª.
|
||||
; ”ãªæ¨ï ¢®§¢à é ¥â 㪠§ ⥫ì áâàãªâãàã MSSTAT, ®¯à¥¤¥«¥ãî
|
||||
; ¢ "mouse.h".
|
||||
; �ਠ®è¨¡ª¥, ¢®§¢à é ¥âáï § 票¥ -1 (0FFFFh) ¨ errno ᮤ¥à¦¨â
|
||||
; ®¬¥à ®è¨¡ª¨.
|
||||
;
|
||||
; ¢ëå®¤ë¥ ¤ ë¥:
|
||||
; A - á®áâ®ï¨¥ ª®¯®ª
|
||||
; 0 bit - «¥¢ ï
|
||||
; 1 bit - ¯à ¢ ï
|
||||
; HL - Y/X ⥪áâ. ª®®à¤¨ âë
|
||||
;
|
||||
; MSSTAT *getStatMouse()
|
||||
;
|
||||
ms_stat_::
|
||||
ld c,3 ; ¯®«ãç¨âì ª®®à¤. ¬ë誨
|
||||
rst 30h
|
||||
jr c,@1
|
||||
ld (button),a
|
||||
srl h
|
||||
rr l
|
||||
srl h
|
||||
rr l
|
||||
srl l
|
||||
ld a,e ; Y ª®®à¤¨ â (0-255)
|
||||
rra
|
||||
rra
|
||||
rra
|
||||
and 1Fh
|
||||
ld h,a ; hl = Y/X ª®®à¤. ¢ § ª®¬¥áâ å
|
||||
ld (x),hl
|
||||
ld hl,button ; Ok
|
||||
ret
|
||||
;
|
||||
@1: ld (errno_##),a
|
||||
ld hl,-1 ; error
|
||||
ret
|
||||
|
||||
dseg
|
||||
button: db 0
|
||||
x: dw 0 ; Y/X ⥪áâ. ª®®à¤¨ âë
|
||||
|
||||
ENDMODULE
|
||||
|
||||
|
||||
MODULE msgstat
|
||||
;
|
||||
; "mouse.h"
|
||||
; —⥨¥ á®áâ®ï¨ï ¬ëè¨.
|
||||
; ”ãªæ¨ï ¢®§¢à é ¥â ⥪ã騥 £à ä¨ç¥áª¨¥ ª®®à¤¨ âë ªãàá®à ¬ëè¨
|
||||
; ¨ á®áâ®ï¨¥ ¥¥ ª®¯®ª.
|
||||
; ”ãªæ¨ï ¢®§¢à é ¥â 㪠§ ⥫ì áâàãªâãàã MSGSTAT, ®¯à¥¤¥«¥ãî
|
||||
; ¢ "mouse.h".
|
||||
; �ਠ®è¨¡ª¥, ¢®§¢à é ¥âáï § 票¥ -1 (0FFFFh) ¨ errno ᮤ¥à¦¨â
|
||||
; ®¬¥à ®è¨¡ª¨.
|
||||
;
|
||||
; ¢ëå®¤ë¥ ¤ ë¥:
|
||||
; A - á®áâ®ï¨¥ ª®¯®ª
|
||||
; 0 bit - «¥¢ ï
|
||||
; 1 bit - ¯à ¢ ï
|
||||
; HL - x-ª®®à¤¨ â
|
||||
; DE - y-ª®®à¤¨ â
|
||||
;
|
||||
; MSGSTAT *getGStatMouse()
|
||||
;
|
||||
msgstat_::
|
||||
ld c,3
|
||||
rst 30h
|
||||
ld (button),a
|
||||
ld (errno_##),a
|
||||
ld (x),hl
|
||||
ld (y),de
|
||||
ld hl,button ; Ok
|
||||
ret nc
|
||||
ld hl,-1 ; error
|
||||
ret
|
||||
|
||||
dseg
|
||||
button: db 0
|
||||
x: dw 0
|
||||
y: dw 0
|
||||
|
||||
ENDMODULE
|
||||
|
||||
|
||||
MODULE msspos
|
||||
;
|
||||
; "mouse.h"
|
||||
; “áâ ®¢ª ⥪á⮢ëå ª®®à¤¨ â ªãàá®à ¬ëè¨.
|
||||
; ”ãªæ¨ï ¯¥à¥¬¥é ¥â ªãàá®à ¬ëè¨ ¢ § ¤ ë¥ ª®®à¤¨ âë.
|
||||
;
|
||||
; �ਠ®è¨¡ª¥, ¢®§¢à é ¥âáï § 票¥ -1 ¨ errno ᮤ¥à¦¨â
|
||||
; ®¬¥à ®è¨¡ª¨.
|
||||
;
|
||||
; ¢å®¤ë¥ ¤ ë¥:
|
||||
; HL - ª®«®ª
|
||||
; DE - áâப
|
||||
;
|
||||
; char setPosMouse(int col, int line)
|
||||
;
|
||||
ms_spos_::
|
||||
sla l ; *2
|
||||
rl h
|
||||
sla l
|
||||
rl h ; hl = X pos
|
||||
ld a,e
|
||||
and 1Fh
|
||||
rla
|
||||
rla
|
||||
rla
|
||||
ld e,a ; de = Y pos
|
||||
ld c,4
|
||||
rst 30h
|
||||
ld (errno_##),a
|
||||
ld a,0 ; Ok
|
||||
ret nc
|
||||
dec a ; error
|
||||
ret
|
||||
|
||||
ENDMODULE
|
||||
|
||||
|
||||
MODULE mssgpos
|
||||
;
|
||||
; "mouse.h"
|
||||
; “áâ ®¢ª £à ä¨ç¥áª¨å ª®®à¤¨ â ªãàá®à ¬ëè¨.
|
||||
; ”ãªæ¨ï ¯¥à¥¬¥é ¥â ªãàá®à ¬ëè¨ ¢ § ¤ ë¥ ª®®à¤¨ âë.
|
||||
;
|
||||
; �ਠ®è¨¡ª¥, ¢®§¢à é ¥âáï § 票¥ -1 ¨ errno ᮤ¥à¦¨â
|
||||
; ®¬¥à ®è¨¡ª¨.
|
||||
;
|
||||
; ¢å®¤ë¥ ¤ ë¥:
|
||||
; HL - x-ª®®à¤¨ â
|
||||
; DE - y-ª®®à¤¨ â
|
||||
;
|
||||
; char setGPosMouse(int x, int y)
|
||||
;
|
||||
mssgpos_::
|
||||
ld c,4
|
||||
rst 30h
|
||||
ld (errno_##),a
|
||||
ld a,0 ; Ok
|
||||
ret nc
|
||||
dec a ; error
|
||||
ret
|
||||
|
||||
ENDMODULE
|
||||
|
||||
|
||||
MODULE msybnd
|
||||
;
|
||||
; "mouse.h"
|
||||
; ‡ ¤ ¨¥ ¢¥à⨪ «ìëå £à ¨æ ¯¥à¥¬¥é¥¨ï ªãàá®à .
|
||||
; ”ãªæ¨ï § ¤ ¥â ¢¥àåîî ¬¨¨¬ «ìãî ¨ ¨¦îî ¬ ªá¨¬ «ìãî ª®®à¤¨ âë,
|
||||
; ¢ ª®â®àëå ¬®¦¥â ¯¥à¥¬¥é âìáï ªãàá®à ¬ëè¨ ¯® ¢¥à⨪ «¨.
|
||||
;
|
||||
; �ਠ®è¨¡ª¥, ¢®§¢à é ¥âáï § 票¥ -1 ¨ errno ᮤ¥à¦¨â ®¬¥à ®è¨¡ª¨.
|
||||
;
|
||||
; ¢å®¤ë¥ ¤ ë¥:
|
||||
; HL - y-¬¨¨¬ «ì ï
|
||||
; DE - y-¬ ªá¨¬ «ì ï
|
||||
;
|
||||
; char yLimMouse(int miny, int maxy)
|
||||
;
|
||||
ms_ybnd_::
|
||||
ld c,7
|
||||
rst 30h
|
||||
ld (errno_##),a
|
||||
ld a,0 ; Ok
|
||||
ret nc
|
||||
dec a ; error
|
||||
ret
|
||||
|
||||
ENDMODULE
|
||||
|
||||
|
||||
MODULE msxbnd
|
||||
;
|
||||
; "mouse.h"
|
||||
; ‡ ¤ ¨¥ £®à¨§®â «ìëå £à ¨æ ¯¥à¥¬¥é¥¨ï ªãàá®à .
|
||||
; ”ãªæ¨ï § ¤ ¥â «¥¢ãî ¬¨¨¬ «ìãî ¨ ¯à ¢ãî ¬ ªá¨¬ «ìãî ª®®à¤¨ âë,
|
||||
; ¢ ª®â®àëå ¬®¦¥â ¯¥à¥¬¥é âìáï ªãàá®à ¬ëè¨ ¯® £®à¨§®â «¨.
|
||||
;
|
||||
; �ਠ®è¨¡ª¥, ¢®§¢à é ¥âáï § 票¥ -1 ¨ errno ᮤ¥à¦¨â ®¬¥à ®è¨¡ª¨.
|
||||
;
|
||||
; ¢å®¤ë¥ ¤ ë¥:
|
||||
; HL - x-¬¨¨¬ «ì ï
|
||||
; DE - x-¬ ªá¨¬ «ì ï
|
||||
;
|
||||
; char xLimMouse(uint minx, uint maxx)
|
||||
;
|
||||
ms_xbnd_::
|
||||
ld c,8
|
||||
rst 30h
|
||||
ld (errno_##),a
|
||||
ld a,0 ; Ok
|
||||
ret nc
|
||||
dec a ; error
|
||||
ret
|
||||
|
||||
ENDMODULE
|
||||
|
||||
|
||||
MODULE msscur
|
||||
;
|
||||
; "mouse.h"
|
||||
; ‡ £à㧪 ¨§®¡à ¦¥¨ï ªãàá®à ¬ëè¨.
|
||||
; ”ãªæ¨ï § £à㦠¥â ®¢®¥ ¨§®¡à ¦¥¨¥ ªãàá®à ¬ëè¨ ¢ ¤à ©¢¥à
|
||||
; ¨ § ¤ ¥â ªâ¨¢ãî â®çªã ¨§®¡à ¦¥¨ï.
|
||||
; �¥à¥¤ ¢ë§®¢®¬ äãªæ¨¨, ¤®«¦ ¡ëâì § ¯®«¥ áâàãªâãà
|
||||
; MSCURS, ®¯à¥¤¥«¥ ï ¢ "mouse.h".
|
||||
;
|
||||
; �ਠ®è¨¡ª¥, ¢®§¢à é ¥âáï § 票¥ -1 ¨ errno ᮤ¥à¦¨â ®¬¥à
|
||||
; ®è¨¡ª¨.
|
||||
;
|
||||
; ¢å®¤ë¥ ¤ ë¥:
|
||||
; H - ¢ëá®â ªãàá®à
|
||||
; L - è¨à¨ ªãàá®à
|
||||
; D - Y ªâ¨¢ ï â®çª
|
||||
; E - X ªâ¨¢ ï â®çª
|
||||
; IX - ¨§®¡à ¦¥¨¥ ªãàá®à
|
||||
;
|
||||
; char setCursMouse(MSCURS *p)
|
||||
;
|
||||
ms_scur_::
|
||||
push ix
|
||||
ld c,(hl) ; width
|
||||
inc hl
|
||||
ld b,(hl) ; high
|
||||
inc hl
|
||||
ld e,(hl) ; xpoint
|
||||
inc hl
|
||||
ld d,(hl) ; ypoint
|
||||
inc hl
|
||||
ld a,(hl) ; *buffer
|
||||
ld lx,a
|
||||
inc hl
|
||||
ld a,(hl)
|
||||
ld hx,a
|
||||
ld l,c
|
||||
ld h,b
|
||||
ld bc,9
|
||||
rst 30h
|
||||
pop ix
|
||||
ld (errno_##),a
|
||||
ld a,0 ; Ok
|
||||
ret nc
|
||||
dec a ; error
|
||||
ret
|
||||
|
||||
ENDMODULE
|
||||
|
||||
|
||||
MODULE mstcur
|
||||
;
|
||||
; "mouse.h"
|
||||
; “áâ ®¢ª ªãàá®à ¬ëè¨ ¢ ⥪á⮢®¬ ०¨¬¥.
|
||||
; ”ãªæ¨ï ãáâ ¢«¨¢ ¥â ᨬ¢®« ¨ âਡãâ ªãàá®à ¬ëè¨
|
||||
; ¤«ï ⥪á⮢®£® ०¨¬ .
|
||||
; �ਠ®è¨¡ª¥, ¢®§¢à é ¥âáï § 票¥ -1 ¨ errno ᮤ¥à¦¨â
|
||||
; ®¬¥à ®è¨¡ª¨.
|
||||
;
|
||||
; ¢å®¤ë¥ ¤ ë¥:
|
||||
; E - XOR attribut mask
|
||||
; D - AND attribut mask
|
||||
; L - XOR simbol mask
|
||||
; H - AND simbol mask
|
||||
;
|
||||
; char setTxtMouse(MSTXT *p)
|
||||
;
|
||||
ms_tcur_::
|
||||
ld e,(hl) ; XOR attribut mask
|
||||
inc hl
|
||||
ld d,(hl) ; AND attribut mask
|
||||
inc hl
|
||||
ld a,(hl) ; XOR simbol mask
|
||||
inc hl
|
||||
ld h,(hl) ; AND simbol mask
|
||||
ld l,a
|
||||
ld bc,0Ah
|
||||
rst 30h
|
||||
ld (errno_##),a
|
||||
ld a,0 ; Ok
|
||||
ret nc
|
||||
dec a ; error
|
||||
ret
|
||||
|
||||
ENDMODULE
|
||||
|
||||
|
||||
MODULE msgcur
|
||||
;
|
||||
; "mouse.h"
|
||||
; �®«ã票¥ ¨§®¡à ¦¥¨ï ªãàá®à ¨§ ¤à ©¢¥à ¬ëè¨.
|
||||
; ”ãªæ¨ï ¢®§¢à é ¥â 㪠§ â¥«ì § ¯®«¥ãî áâàãªâãàã MSCURS,
|
||||
; ®¯à¥¤¥«¥ãî ¢ "mouse.h".
|
||||
; �ਠ®è¨¡ª¥, ¢®§¢à é ¥âáï § 票¥ -1 (0FFFFh) ¨ errno ᮤ¥à¦¨â
|
||||
; ®¬¥à ®è¨¡ª¨.
|
||||
;
|
||||
; ¢å®¤ë¥ ¤ ë¥:
|
||||
; IX - ¡ãä¥à ¤«ï ¨§®¡à ¦¥¨ï ªãàá®à
|
||||
;
|
||||
; ¢ëå®¤ë¥ ¤ ë¥:
|
||||
; H - ¢ëá®â ªãàá®à
|
||||
; L - è¨à¨ ªãàá®à
|
||||
; D - Y ªâ¨¢ ï â®çª
|
||||
; E - X ªâ¨¢ ï â®çª
|
||||
;
|
||||
; MSCURS *getCursMouse(char *buffer)
|
||||
;
|
||||
ms_gcur_::
|
||||
push ix
|
||||
push hl
|
||||
pop ix
|
||||
ld (buff),hl
|
||||
ld c,0Bh
|
||||
rst 30h
|
||||
pop ix
|
||||
ld (errno_##),a
|
||||
ld (width),hl
|
||||
ld (xpoint),de
|
||||
ld hl,width ; Ok
|
||||
ret nc
|
||||
ld hl,-1 ; error
|
||||
ret
|
||||
|
||||
dseg
|
||||
width: db 0 ; è¨à¨ ªãàá®à
|
||||
db 0 ; ¢ëá®â ªãàá®à
|
||||
xpoint: db 0 ; X ªâ¨¢ ï â®çª
|
||||
db 0 ; Y ªâ¨¢ ï â®çª
|
||||
buff: dw 0 ; ¤à¥á ¡ãä¥à ¨§®¡à ¦¥¨ï ªãàá®à
|
||||
|
||||
ENDMODULE
|
||||
|
||||
|
||||
MODULE msgsens
|
||||
;
|
||||
; "mouse.h"
|
||||
; �®«ã票¥ § 票ï çã¢á⢨⥫ì®á⨠¯¥à¥¬¥é¥¨ï ¬ëè¨
|
||||
; ¯® ¢¥à⨪ «¨ ¨ £®à¨§®â «¨.
|
||||
; ”ãªæ¨ï ¢®§¢à é ¥â 㪠§ â¥«ì § ¯®«¥ãî áâàãªâãàã MSSENS,
|
||||
; ®¯à¥¤¥«¥ãî ¢ "mouse.h".
|
||||
; �ਠ®è¨¡ª¥, ¢®§¢à é ¥âáï § 票¥ -1 (0FFFFh) ¨ errno ᮤ¥à¦¨â
|
||||
; ®¬¥à ®è¨¡ª¨.
|
||||
;
|
||||
; ¢ëå®¤ë¥ ¤ ë¥:
|
||||
; H - çã¢á⢨⥫ì®áâì ¯® ¢¥à⨪ «¨
|
||||
; L - çã¢á⢨⥫ì®áâì ¯® £®à¨§®â «¨
|
||||
;
|
||||
; MSSENS *getSensMouse()
|
||||
;
|
||||
ms_gsen_::
|
||||
ld c,0Eh
|
||||
rst 30h
|
||||
ld (errno_##),a
|
||||
ld (hsens),hl
|
||||
ld hl,hsens ; Ok
|
||||
ret nc
|
||||
ld hl,-1 ; error
|
||||
ret
|
||||
|
||||
dseg
|
||||
hsens: db 0 ; çã¢áâ¢. ¯® £®à¨§®â «¨
|
||||
db 0 ; çã¢áâ¢. ¯® ¢¥à⨪ «¨
|
||||
|
||||
ENDMODULE
|
||||
|
||||
|
||||
MODULE mssens
|
||||
;
|
||||
; "mouse.h"
|
||||
; ”ãªæ¨ï ãáâ ¢«¨¢ ¥â § 票ï çã¢á⢨⥫ì®á⨠¯¥à¥¬¥é¥¨ï
|
||||
; ¬ëè¨ ¯® ¢¥à⨪ «¨ ¨ £®à¨§®â «¨.
|
||||
; �¥à¥¤ ¢ë§®¢®¬ äãªæ¨¨, ¤®«¦ ¡ëâì § ¯®«¥ áâàãªâãà
|
||||
; MSSENS, ®¯à¥¤¥«¥ ï ¢ "mouse.h".
|
||||
; �ਠ®è¨¡ª¥, ¢®§¢à é ¥âáï § 票¥ -1 ¨ errno ᮤ¥à¦¨â ®¬¥à
|
||||
; ®è¨¡ª¨.
|
||||
;
|
||||
; ¢å®¤ë¥ ¤ ë¥:
|
||||
; H - çã¢á⢨⥫ì®áâì ¯® ¢¥à⨪ «¨
|
||||
; L - çã¢á⢨⥫ì®áâì ¯® £®à¨§®â «¨
|
||||
;
|
||||
; char setSensMouse(MSSENS *p)
|
||||
;
|
||||
ms_ssen_::
|
||||
ld a,(hl)
|
||||
inc hl
|
||||
ld h,(hl)
|
||||
ld l,a
|
||||
ld c,0Fh
|
||||
rst 30h
|
||||
ld (errno_##),a
|
||||
ld a,0
|
||||
ret nc
|
||||
dec a
|
||||
ret
|
||||
|
||||
ENDMODULE
|
||||
|
||||
|
||||
MODULE mshard
|
||||
;
|
||||
; "mouse.h"
|
||||
; Ž¡à ¡®â稪 ¯¯ à ⮣® ¯à¥àë¢ ¨ï ®â ¬ëè¨.
|
||||
; �® ¯à¨å®¤ã ¯à¥àë¢ ¨ï ®â ¬ëè¨, ¢ë§ë¢ ¥âáï ¤ ï äãªæ¨ï ¤à ©¢¥à .
|
||||
; ‚ á«ãç ¥, ª®£¤ âॡã¥âáï à ¡®â ¯®¤¯à®£à ¬¬ë ¯à¨ § ¯à¥é¥ëå ¯à¥àë-
|
||||
; ¢ ¨ïå, ¨á¯®«ì§ã©â¥ ¤ ãî äãªæ¨î, ¤«ï ¨§¡¥¦ ¨ï ¯®â¥àì ¯ ª¥â®¢
|
||||
; ¤ ëå ®â ¬ëè¨.
|
||||
; �ਠ®è¨¡ª¥, ¢®§¢à é ¥âáï § 票¥ -1 ¨ errno ᮤ¥à¦¨â ®¬¥à ®è¨¡ª¨.
|
||||
;
|
||||
; char hardMouse()
|
||||
;
|
||||
ms_hard_::
|
||||
ld c,80h
|
||||
rst 30h
|
||||
ld (errno_##),a
|
||||
ld a,0 ; Ok
|
||||
ret nc
|
||||
dec a ; error
|
||||
ret
|
||||
|
||||
ENDMODULE
|
||||
|
||||
|
||||
MODULE msvmode
|
||||
;
|
||||
; "mouse.h"
|
||||
; ˆä®à¬¨à®¢ ¨¥ ® ᬥ¥ ०¨¬ íªà .
|
||||
; ”ãªæ¨ï ¨ä®à¬¨àã¥â ¤à ©¢¥à ¬ëè¨ ®¡ ¨§¬¥¥¨¨ ०¨¬ íªà .
|
||||
; �®¬¥à ०¨¬®¢ ᮮ⢥âáâ¢ãîâ äãªæ¨¨ ãáâ ®¢ª¨ ०¨¬ íªà .
|
||||
;
|
||||
; �ਠ®è¨¡ª¥, ¢®§¢à é ¥âáï § 票¥ -1 ¨ errno ᮤ¥à¦¨â ®¬¥à
|
||||
; ®è¨¡ª¨.
|
||||
;
|
||||
; ¢å®¤ë¥ ¤ ë¥:
|
||||
; A - ०¨¬ íªà
|
||||
;
|
||||
; char vmodeMouse(char video_mode)
|
||||
;
|
||||
ms_vmod_::
|
||||
ld c,81h
|
||||
rst 30h
|
||||
ld (errno_##),a
|
||||
ld a,0 ; Ok
|
||||
ret nc
|
||||
dec a ; error
|
||||
ret
|
||||
|
||||
ENDMODULE
|
||||
|
||||
|
||||
MODULE msref
|
||||
;
|
||||
; "mouse.h"
|
||||
; �à¨ã¤¨â¥«ì ï ¯¥à¥à¨á®¢ª ªãàá®à .
|
||||
; ”ãªæ¨ï ¯¥à¥à¨á®¢ë¢ ¥â ¨§®¡à ¦¥¨¥ ªãàá®à ¬ëè¨ íªà ¥
|
||||
; ¥ ¤®¦¨¤ ïáì ®ç¥à¥¤®£® ¯à¥àë¢ ¨ï.
|
||||
; �ਠ®è¨¡ª¥, ¢®§¢à é ¥âáï § 票¥ -1 ¨ errno ᮤ¥à¦¨â
|
||||
; ®¬¥à ®è¨¡ª¨.
|
||||
;
|
||||
; char refreshMouse()
|
||||
;
|
||||
ms_ref_::
|
||||
ld c,83h
|
||||
rst 30h
|
||||
ld (errno_##),a
|
||||
ld a,0 ; Ok
|
||||
ret nc
|
||||
dec a ; error
|
||||
ret
|
||||
|
||||
ENDMODULE
|
||||
Reference in New Issue
Block a user