mirror of
https://github.com/romychs/DemoN.git
synced 2025-04-18 18:12:40 +03:00
213 lines
8.3 KiB
NASM
213 lines
8.3 KiB
NASM
;[]=========================================================================[]
|
||
;[] Ž¡à ¡®âª ª« ¢¨ âãàë ¢ ®ª¥ ¤ ¬¯ á⥪ []
|
||
;[] v0.10 - ¯®á«¥¤¨¥ ¨§¬¥¥¨ï 18.03.2006 []
|
||
;[]=========================================================================[]
|
||
KStack:
|
||
ld a,b ;á®áâ®ï¨¥ <Shift><Alt><Ctrl>
|
||
and 11110000b
|
||
; ld b,a
|
||
jr z,.L100
|
||
|
||
;Ž¡à ¡®âª ª®¬¡¨ 樨 Shift + ᨬ¢®«
|
||
; and 11000000b ;<Shift>
|
||
; or a
|
||
; jr z,.L10
|
||
; ld a,d
|
||
;; cp 0x80+0x0F ;Shift+Tab
|
||
;; jp nz,Keyb+6
|
||
;; ld a,3 ;®¬¥à ®ª ¤ ¬¯
|
||
;; ld (Keyb.WinScreen),a
|
||
; jp Keyb-3
|
||
|
||
;Ž¡à ¡®âª ª®¬¡¨ 樨 Ctrl + ᨬ¢®«
|
||
; ld a,b
|
||
cp 00100000b ;<Ctrl>
|
||
jp nz,Keyb+6
|
||
ld a,d ;¯®§¨æ¨®ë© ª®¤
|
||
cp 0x80+0x2B ;<Ctrl>+<X>
|
||
jp nz,Keyb+6
|
||
ld hl,(StackDump)
|
||
ld bc,(.Coordinate)
|
||
ld a,b
|
||
ld b,0x16 ;x-ª®à¤¨ â 1 áâப¨
|
||
sub b
|
||
rlca ;*2
|
||
ld b,0
|
||
ld c,a
|
||
or a
|
||
sbc hl,bc
|
||
ld (Reg._SP),hl
|
||
ld a,-1
|
||
ld (PrintStrSP.StrSp),a
|
||
jp Keyb-11
|
||
|
||
;Ž¡à ¡®âª ¯®§¨æ¨®®£® ª®¤
|
||
.L100 ld a,e ;ASCII ª®¤
|
||
ld (.L200+1),a
|
||
ld a,d ;¯®§¨æ¨®ë© ª®¤
|
||
|
||
ld de,(.Coordinate) ;⥪ã騥 ª®®à¤¨ âë ªãàá®à
|
||
cp 0x56 ;<Right>
|
||
jr nz,.L101
|
||
ld a,(.Descript+2) ;ª®«-¢® ª®«®®ª
|
||
cp e
|
||
ld a,e
|
||
jr nz,$+3
|
||
xor a
|
||
inc a
|
||
ld (.Coordinate),a ;⥪ãé ï ª®«®ª
|
||
jp Keyb-3
|
||
|
||
.L101 cp 0x54 ;<Left>
|
||
jr nz,.L102
|
||
ld a,e ;⥪ãé ï ª®«®ª
|
||
cp 1
|
||
jr nz,$+6
|
||
ld a,(.Descript+2) ;ª®«-¢® ª®«®®ª
|
||
inc a
|
||
dec a
|
||
ld (.Coordinate),a ;⥪ãé ï ª®«®ª
|
||
jp Keyb-3
|
||
|
||
.L102 ld hl,(.Descript)
|
||
cp 0x52 ;<Down>
|
||
jr nz,.L103
|
||
ld a,d ;⥪ãé ï áâப
|
||
cp l
|
||
jr nz,.L104
|
||
ld hl,(StackDump) ; ¤à¥á 1-®© áâப¨
|
||
dec hl
|
||
dec hl
|
||
ld (StackDump),hl
|
||
ld hl,PrintStrSP.StrSp ;áâப ¢¥àè.á⥪
|
||
ld a,-1
|
||
cp (hl) ;¢ ¤ ¬¯¥?
|
||
jr z,$+3
|
||
dec (hl)
|
||
jp Keyb-11
|
||
.L104 inc a
|
||
ld (.Coordinate+1),a
|
||
jp Keyb-3
|
||
|
||
.L103 cp 0x58 ;<Up>
|
||
jr nz,.L105
|
||
ld a,d ;⥪ãé ï áâப
|
||
cp h
|
||
jr nz,.L107
|
||
ld hl,(StackDump) ; ¤à¥á 1-®© áâப¨
|
||
inc hl
|
||
inc hl
|
||
ld (StackDump),hl
|
||
ld hl,PrintStrSP.StrSp ;áâப ¢¥àè.á⥪
|
||
ld a,(hl)
|
||
cp 7 ; ¯®á«¥¤¥© áâப¥?
|
||
jr c,$+5
|
||
ld a,-2
|
||
ld (hl),a ;¢¥àè.á⥪ ¥ ¯®¯ ¤ ¥â ¢ ¤ ¬¯
|
||
inc (hl)
|
||
jp Keyb-11
|
||
.L107 dec a
|
||
ld (.Coordinate+1),a
|
||
jp Keyb-3
|
||
|
||
.L105 cp 0x53 ;<PgDown>
|
||
jr nz,.L108
|
||
ld a,d ;⥪ãé ï áâப
|
||
cp l
|
||
jr nz,.L106
|
||
ld hl,(StackDump)
|
||
ld bc,2*7
|
||
or a
|
||
sbc hl,bc
|
||
ld (StackDump),hl
|
||
ld a,-1
|
||
ld (PrintStrSP.StrSp),a ;áâப ¢¥àè.á⥪
|
||
jp Keyb-11
|
||
.L106 ld a,l ; ¯®á«¥¤îî áâபã
|
||
ld (.Coordinate+1),a
|
||
jp Keyb-3
|
||
|
||
.L108 cp 0x59 ;<PgUp>
|
||
jr nz,.L110
|
||
ld a,d ;⥪ãé ï áâப
|
||
cp h
|
||
jr nz,.L109
|
||
ld hl,(StackDump)
|
||
ld bc,2*7
|
||
add hl,bc
|
||
ld (StackDump),hl
|
||
ld a,-1
|
||
ld (PrintStrSP.StrSp),a ;áâப ¢¥àè.á⥪
|
||
jp Keyb-11
|
||
.L109 ld a,h ; ¯¥à¢ãî áâபã
|
||
ld (.Coordinate+1),a
|
||
jp Keyb-3
|
||
|
||
.L110 cp 0x57 ;<Home>
|
||
jr nz,.L200
|
||
ld a,6
|
||
ld (PrintStrSP.StrSp),a ;áâப ¢¥àè.á⥪
|
||
jp Keyb-11
|
||
|
||
;.L111 cp 0x0F ;<Tab>
|
||
; jr nz,.L200
|
||
; ld a,1 ;®¬¥à ®ª «¨á⨣
|
||
; ld (Keyb.WinScreen),a
|
||
; jp Keyb-3
|
||
|
||
;Ž¡à ¡®âª ASCII ª®¤®¢
|
||
.L200 ld a,0 ;ASCII ª®¤
|
||
cp 0x0D ;<Enter>
|
||
jp nz,Keyb+6
|
||
.L201 ld b,0 ;¤«¨ áâப¨ ¢¢®¤
|
||
ld hl,0 ;ª®®à¤¨ âë áâப¨ ¢¢®¤
|
||
call InputLine ;¢¢®¤ ç¨á«
|
||
jp c,Keyb-3 ;§ ¢¥à襨¥ ¢¢®¤ ¯® <ESC>
|
||
call PutAdres
|
||
jp c,.L201 ;®è¨¡ª ¢ ¢¥¤¥ëå ¤ ëå
|
||
ld bc,(.Coordinate)
|
||
ld a,b
|
||
ld b,0x16 ;x-ª®à¤¨ â 1 áâப¨
|
||
sub b
|
||
ex de,hl
|
||
ld hl,(StackDump)
|
||
ld b,a ;®¬¥à áâப¨ 0..7
|
||
rlca ;*2
|
||
dec c
|
||
ld c,a
|
||
jr nz,.L202 ;¯¥à¥å®¤ - ¥á«¨ ¤ ë¥, ¨ ç¥ «à¥á
|
||
|
||
ld a,(PrintStrSP.StrSp) ;áâப ¢¥àè.á⥪
|
||
cp b
|
||
jr z,.L203
|
||
ld b,0 ;¥ ¢¥à訥 á⥪
|
||
ex de,hl ;HL - ¢¢¥¤¥ë© ¤à¥á
|
||
add hl,bc
|
||
ld (StackDump),hl
|
||
ld a,-1
|
||
ld (PrintStrSP.StrSp),a
|
||
jr .L203+4
|
||
.L203 ld (Reg._SP),de ; ¤à¥á ¢¢¥¤¥ ¢¥à訥 á⥪
|
||
jp Keyb-11
|
||
|
||
.L202 ld b,0 ;¢¢®¤ ¤ ëå
|
||
or a
|
||
sbc hl,bc
|
||
ld a,d ;§ ¯¨áì ¤ ëå ¢ ¯ ¬ïâì
|
||
call Ld_hl_a
|
||
inc hl
|
||
ld a,e
|
||
call Ld_hl_a
|
||
jp Keyb-11
|
||
|
||
|
||
.Coordinate dw 0x1601 ;ªãàá®à (áâà/ª®« ªãàá®à )
|
||
.Descript:
|
||
dw 0x161D ;¯¥à¢ ï/¯®á«¥¤ïï áâப ®ª
|
||
db 2 ;ª®«-¢® ª®«®®ª
|
||
|
||
db 0x01 ;N á⮫¡æ ª®«®ª¨
|
||
db 5 ;è¨à¨ ª®«®ª¨
|
||
db 0x07,5
|
||
|