mirror of
https://github.com/romychs/DemoN.git
synced 2025-04-18 01:52:43 +03:00
88 lines
4.8 KiB
NASM
88 lines
4.8 KiB
NASM
;[]=========================================================================[]
|
||
;[] <20>¥§¨¤¥â ®â« ¤ç¨ª []
|
||
;[] v0.03 - ¯®á«¥¤¨¥ ¨§¬¥¥¨ï 24.02.2006 []
|
||
;[] <20>à¨æ¨¯ à ¡®âë (¤¢ ¢ ਠâ ): []
|
||
;[] 1. <20>¥§¨¤¥â à ᯮ«®¦¥ ¥ ¢® ¢â®à®¬ ®ª¥ ¯ ¬ï⨠(0x8000...0xBFFF) []
|
||
;[] ˆ§ ®â« ¤ç¨ª £®â®¢¨âáï १¨¤¥â ( áâà ¨¢ îâáï ¢á¥ ¤à¥á ) ¨ ª®¯¨àã¥âáï []
|
||
;[] ¯® ¤à¥áã à ᯮ«®¦¥¨ï, ã¯à ¢«¥¨¥ ¨§ ®â« ¤ç¨ª ¯¥à¥¤ ¥âáï ¬¥âªã []
|
||
;[] Rezident.Start1, ¯®á«¥ 祣® ¯à®¨á室¨â ¢®áâ ®¢«¥¨¥ ¡ ª¨ ¯ ¬ïâ¨, à á- []
|
||
;[] ¯®«®¦¥®© ¯®¤ ®â« ¤ç¨ª®¬ ¨ ¢ë¯®«¥¨¥ ®â« ¦¨¢ ¥¬®© ª®¬ ¤ë. ‚®§¢à â []
|
||
;[] ¢ १¨¤¥â ®áãé¥á⢫ï¥âáï ¬¥âªã Rezident.RetIn1 ¨ ¤ «¥¥ ¯®á«¥ ¢®á- []
|
||
;[] â ®¢«¥¨ï ¡ ª¨ á ®â« ¤ç¨ª®¬ ¢®§¢à â ¢ ®â« ¤ç¨ª. []
|
||
;[] 2. <20>¥§¨¤¥â à ᯮ«®¦¥ ¢® ¢â®à®¬ ®ª¥ ¯ ¬ï⨠(0x8000...0xBFFF) []
|
||
;[] <20>®áª®«ìªã ¢ í⮬ ®ª¥ à ¡®â ¥â á ¬ ®â« ¤ç¨ª, â® ¯¥à¥å®¤ ¢ १¨¤¥â ¨ []
|
||
;[] ¢®§¢à â ¢ ®â« ¤ç¨ª ¯®á«¥ âà áá¨à®¢ª¨ ª®¬ ¤ë ¢ë¯®«ï¥âáï ¯à¨ ¯®¬®é¨ []
|
||
;[] ¢á¯®¬®£ ⥫쮩 ¯à®æ¥¤ãàë ¤«¨®© 7 ¡ ©â à ᯮ«®¦¥®© ¯® ¤à¥áã []
|
||
;[] AdrTmpBuf. <20>®á«¥ ª®à४樨 ¢á¥å ¤à¥á®¢ ¢ ®â« ¤ç¨ª¥ ¨ á®åà ¥¨¨ ªªã- []
|
||
;[] ¬ã«ïâ®à ®â« ¦¨¢ ¥¬®© ¯à®£à ¬¬ë ¯® ¤à¥áã Rezident+1 ¨ ¯ àë HL ¯® ¤à¥- []
|
||
;[] ce Rezident+2 ã¯à ¢«¥¨¥ ¯¥à¥¤ ¥âáï ¯® ¤à¥áã AdrTmpBuf, £¤¥ à ᯮ«®¦¥ []
|
||
;[] á«¥¤ãî騩 ª®¤ ®âª«îç î騩 ¡ ªã á ®â« ¤ç¨ª®¬: []
|
||
;[] ld a,<2C>®¬¥à<C2A5> ª¨<C2AA>®¤Žâ« ¤ç¨ª®¬ []
|
||
;[] out (<28>®¬¥à<C2A5>®àâ 2Žª ),a []
|
||
;[] jp Rezident.Start []
|
||
;[] „ «¥¥ १¨¤¥â ¢®áâ ¢«¨¢ ¥â 7 ¡ ©â § ¯®àç¥ëå ¢ë襯ॢ¥¤¥®© ¯à®æ¥- []
|
||
;[] ¤ãன, â ª¦¥ ¯ àã HL ¨ ªªã¬ã«ïâ®à ¨ ¯¥à¥å®¤¨â ª âà áá¨à®¢ª¥. ‚®§¢à â []
|
||
;[] ¯à®¨á室¨â ¬¥âªã Rezident.RetIn, £¤¥ ¯®á«¥ á®åà ¥¨ï ªªã¬ã«ïâ®à ¨ []
|
||
;[] ¯ àë HL á®åà ï¥âáï 7 ¡ ©â ¯ ¬ï⨠¨§ ¤à¥á AdrTmpBuf ¨ â㤠¯à®¯¨áë¢ - []
|
||
;[] ¥âáï ª®¤ ¢®áâ ®¢«¥¨ï ¡ ª¨ á ®â« ¤ç¨ª®¬: []
|
||
;[] ld a,<2C>®¬¥à<C2A5> ª¨‘Žâ« ¤ç¨ª®¬ []
|
||
;[] out (<28>®¬¥à<C2A5>®àâ 2Žª ),a []
|
||
;[] jp ‚Žâ« ¤ç¨ª []
|
||
;[] <20>®á«¥ ¢®§¢à â ¢ ®â« ¤ç¨ª ¢®áâ ¢«¨¢ ¥âáï ¯ ¬ïâì § ¯®àç¥ ï १¨¤¥â®¬ []
|
||
;[] ¨ ¢à¥¬¥®© ¯à®æ¥¤ãன []
|
||
;[]=========================================================================[]
|
||
AdrTmpBuf equ 0xFF00
|
||
Rezident:
|
||
ds 11
|
||
|
||
.Start ld hl,0 ;¢®áâ. ¯ ¬ï⨠§ ¯®à祮© ¯à¨
|
||
ld (AdrTmpBuf),hl ;à §¬¥é¥¨¨ १¨¤¥â
|
||
ld hl,0 ;¢® 2-¬ ®ª¥
|
||
ld (AdrTmpBuf+2),hl
|
||
ld hl,0
|
||
ld (AdrTmpBuf+4),hl
|
||
ld a,0
|
||
ld (AdrTmpBuf+6),a
|
||
.K2 ld hl,(Rezident+2) ;¢®áâ ®¢¨«¨ HL
|
||
jr .K3
|
||
;...¢®áâ ®¢¨âì ¡ ªã ¢® 2-¬ ®ª¥
|
||
.Start1 ld a,0xFF ;¡ ª ¯®¤ demon'®¬
|
||
out (EmmWin.P2),a
|
||
.K3 ld a,(Rezident+1) ;¢®áâ ®¢¨¬ ªªã¬ã«ïâ®à
|
||
|
||
.Step jp 0 ;¯¥à¥å®¤ ¢ë¯®«¥¨¥
|
||
|
||
.RetIn ld (Rezident+1),a ;á®åà ¨¬ ªªã¬ã«ïâ®à
|
||
.K4 ld (Rezident+2),hl ;á®åà ¨¬ HL
|
||
ld hl,(AdrTmpBuf) ;á®åà ¥¨¥ ¯ ¬ïâ¨
|
||
.K5 ld (Rezident+4),hl
|
||
ld hl,(AdrTmpBuf+2)
|
||
ld (Rezident+6),hl
|
||
ld hl,(AdrTmpBuf+4)
|
||
ld (Rezident+8),hl
|
||
ld a,(AdrTmpBuf+6)
|
||
ld (Rezident+10),a
|
||
.BankD1 ld hl,0xFF3E ;ld a,0xFF - N ¡ ª¨ á ®â« ¤ç
|
||
ld (AdrTmpBuf),hl
|
||
ld hl,EmmWin.P2*256+0xD3 ;out (EmmWin.P2),a
|
||
ld (AdrTmpBuf+2),hl
|
||
.Return1 ld hl,0xC3 ;jp ¢ ®â« ¤ç¨ª
|
||
ld (AdrTmpBuf+4),hl
|
||
ld a,0
|
||
ld (AdrTmpBuf+6),a
|
||
in a,(EmmWin.P2) ;®¬¥à ¡ ª¨ ¯®¤ demon'®¬
|
||
.K6 ld (Rezident),a ;á®åà ¨«¨
|
||
jp AdrTmpBuf
|
||
|
||
.RetIn1 ld (Rezident+1),a ;á®åà ¨¬ ªªã¬ã«ïâ®à
|
||
;...á®åà ¨âì ¡ ªã ¨§ 2-£® ®ª
|
||
in a,(EmmWin.P2) ;®¬¥à ¡ ª¨ ¯®¤ demon'®¬
|
||
.K1 ld (Rezident),a ;á®åà ¨«¨
|
||
.BankD ld a,0xFF ;¡ ª á demon'®¬
|
||
out (EmmWin.P2),a
|
||
|
||
.Return jp 0
|
||
|
||
.End
|
||
|