mirror of
https://github.com/romychs/DemoN.git
synced 2025-04-09 22:06:42 +03:00
initial commit
This commit is contained in:
commit
4c6b0a25fb
36
CLOCK.ASM
Normal file
36
CLOCK.ASM
Normal file
@ -0,0 +1,36 @@
|
||||
;[]=========================================================================[]
|
||||
;[] ‚뢮¤ ç ᮢ []
|
||||
;[] v0.03 - ¯®á«¥¤¨¥ ¨§¬¥¥¨ï 01.02.2006 []
|
||||
;[]=========================================================================[]
|
||||
Clock:
|
||||
ld a,(ClockOn) ;ä« £ ¢ë¢®¤ ç ᮢ
|
||||
inc a
|
||||
ret nz
|
||||
ld c,Dss.SysTime
|
||||
rst DssRst ;¯à®ç¨â âì ¤ ë¥ ® ¢à¥¬¥¨
|
||||
ld de,.String
|
||||
push de
|
||||
push bc
|
||||
push hl
|
||||
ld l,h ;ç áë
|
||||
ld h,0
|
||||
call ConvDecStr8_1
|
||||
inc de
|
||||
pop hl ;¬¨ãâë
|
||||
ld h,0
|
||||
call ConvDecStr8_1
|
||||
inc de
|
||||
pop hl
|
||||
ld l,h ;ᥪã¤ë
|
||||
ld h,0
|
||||
call ConvDecStr8_1
|
||||
ld de,71
|
||||
ld c,Bios.Lp_Set_Place ;ãáâ ®¢ª ¯®§¨æ¨¨ ¯¥ç â¨
|
||||
rst BiosRst : di
|
||||
pop hl
|
||||
ld bc,8*256+Bios.Lp_Print_Ln2 ;¢ ॣ.B ¤«¨ áâப¨
|
||||
rst BiosRst : di
|
||||
ret
|
||||
|
||||
.String db "00:00:00"
|
||||
|
22
CMDLINE.ASM
Normal file
22
CMDLINE.ASM
Normal file
@ -0,0 +1,22 @@
|
||||
;[]=========================================================================[]
|
||||
;[] Ž¡à ¡®âª ª®¬ ¤®© áâப¨ ¬®¨â®à -®â« ¤ç¨ª DemoN []
|
||||
;[] v0.10 - ¯®á«¥¤¨¥ ¨§¬¥¥¨ï 08.06.2006 []
|
||||
;[] ‚室: á⥪¥ ¤à¥á ç « ª®¬ ¤®© áâப¨ ¢ ¯ ¬ï⨠[]
|
||||
;[] ‚ë室: CF=1 - ¥â ¯ à ¬¥â஢, CF=0 - ¥áâì ¯ à ¬¥âàë []
|
||||
;[]=========================================================================[]
|
||||
CmdLine:
|
||||
pop hl ; ç «®
|
||||
ld a,(hl) ;¤«¨ ª®¬ ¤®© áâப¨
|
||||
or a
|
||||
scf
|
||||
jr z,.L1 ;¥â ¯ à ¬¥â஢
|
||||
|
||||
ld de,FDebug ;¡ãä¥à
|
||||
inc hl
|
||||
ld c,Dss.GSwitch ;¢ë¤¥«¥¨¥ ¯ à ¬¥âà
|
||||
rst DssRst
|
||||
|
||||
or a ;CF=0
|
||||
.L1
|
||||
;ret
|
||||
|
116
DATA.ASM
Normal file
116
DATA.ASM
Normal file
@ -0,0 +1,116 @@
|
||||
;[]=========================================================================[]
|
||||
;[] „ ë¥ ¬®¨â®à -®â« ¤ç¨ª DemoN []
|
||||
;[] v0.01 - ¯®á«¥¤¨¥ ¨§¬¥¥¨ï 10.10.2004 []
|
||||
;[] v0.02 - ¯®á«¥¤¨¥ ¨§¬¥¥¨ï 11.03.2005 []
|
||||
;[] v0.03 - ¯®á«¥¤¨¥ ¨§¬¥¥¨ï 05.02.2006 []
|
||||
;[] v0.10 - ¯®á«¥¤¨¥ ¨§¬¥¥¨ï 10.09.2006 []
|
||||
;[]=========================================================================[]
|
||||
SymbolNoPrint db #b0;"." ;ᨬ¢®«ë < ¯à®¡¥«
|
||||
ClockOn db On ;¯à¨§ ª ¢ë¢®¤ ç ᮢ
|
||||
DemonScreen db 0 ;®¬¥à íªà ®â« ¤ç¨ª
|
||||
OSScreen db 0 ;<3B>®¬¥à íªà Ž‘¨
|
||||
OSGrafMode db 0 ;ƒà ä¨ç¥áª¨© ०¨¬ ®á¨
|
||||
BufPage db 255 ;<3B>®¬¥à áâà ¨æë á ®ª®ë¬ ¡ãä¥à®¬
|
||||
|
||||
Hello db 13,10
|
||||
; db "‚¥àá¨ï ®âª®¬¯¨«¨à®¢ á¯¥æ¨ «ì® ¤«ï ‚ ᨫ¨ï ˆ¢ ®¢ !",13,10,10
|
||||
db "DemoN v"
|
||||
incbin "VERSION\major.bin"
|
||||
db "."
|
||||
incbin "VERSION\minor.bin"
|
||||
db " build "
|
||||
incbin "VERSION\build.bin"
|
||||
db " (alpha) <Created by Alpha Studio>",13,10
|
||||
db "Last edition "
|
||||
incbin "VERSION\date.bin"
|
||||
db " (BLR "
|
||||
incbin "VERSION\time.bin"
|
||||
db ")",13,10
|
||||
db "FidoNet: Igor Zhadinets 2:454/5.18; "
|
||||
db "e-mail: igor_ast@tut.by",13,10,10,0
|
||||
Str:
|
||||
.Load db "Load file ...",0x0D,0x0A,0
|
||||
.DA db 0x0d,0x0A,0
|
||||
|
||||
PauseFlash equ 16 ;ç áâ®â ¬¨£ ¨ï ¯à®£à.ªãàá®à
|
||||
|
||||
Color:
|
||||
.Screen db 00000111b ;®á®¢®© 梥â íªà
|
||||
.Border db 00000011b ;梥â à ¬ª¨
|
||||
.TextStrReg db 00000010b ;梥â ॣ¨áâ஢ëå ¯ à
|
||||
.TextStrWin db 00000101b ;梥⠮¬¥à®¢ ®ª®
|
||||
._SP db 00000110b ;¯®¤á¢¥âª ¢¥àè¨ë á⥪
|
||||
._PC db 01110001b ;¯®¤á¢¥âª ¢ë¯®«ï¥¬®© áâà.
|
||||
.RezArea db 00001110b ;¯®¤á¢¥âª १¨¤¥â
|
||||
.TextStrLogo db 00000100b ;梥⠫®£® ¯à®£à ¬¬ë
|
||||
.Cursor db 00011101b ;梥⠪ãàá®à -㪠§ ⥫ï
|
||||
.InLine db 00111111b ;梥â áâப¨ ¢¢®¤
|
||||
.InLineEd db 00110001b ;梥â áâப¨ ¢¢®¤ ¯à¨ ।.
|
||||
|
||||
StackDebug ds 2 ; ¤à¥á á⥪ ®â« ¤ç¨ª
|
||||
BankDebug ds 1 ;®¬¥à ¡ ª¨ ®â« ¤ç¨ª
|
||||
BankOS ds 1 ;®¬¥à ¡ ª¨ á OS
|
||||
RezAdr dw 0x7000 ; ¤à¥á ¯®á ¤ª¨ १¨¤¥â
|
||||
StackDown ds 1 ;£«ã¡¨ á⥪
|
||||
StackDump dw 0x800A ; ç «® ¤ ¬¯ á⥪
|
||||
|
||||
Reg: ;§ 票¥ ॣ¨áâ஢ëå ¯ à
|
||||
._IX dw 0
|
||||
._IY dw 0
|
||||
._HL dw 0
|
||||
._DE dw 0
|
||||
._BC dw 0
|
||||
._AF dw 0
|
||||
._HL_ dw 0
|
||||
._DE_ dw 0
|
||||
._BC_ dw 0
|
||||
._AF_ dw 0
|
||||
._IR dw 0
|
||||
._SP dw 0x7FFE
|
||||
._PC dw 0
|
||||
|
||||
WinPage: db 0xFF,0xFF,0xFF,0xFF ; ¤à¥á ¯®¤ª«îç¥ëå áâà ¨æ
|
||||
|
||||
Dump1 dw 0x4000 ; ¤à¥á ç « ¤¨ ¬¨ç¥áª®£® ¤ ¬¯
|
||||
Dump: ; ¤à¥á ç « áâப ¤ ¬¯
|
||||
dw InputLine.Buffer;0x4100
|
||||
dw InputLine.Buffer+16;0x8100
|
||||
dw PutCode.Buffer;0xC100
|
||||
dw 0x5280
|
||||
dw 0x9280
|
||||
dw 0xD280
|
||||
dw 0x6000
|
||||
dw 0xA000
|
||||
|
||||
ListAdr: ds 40 ;¡ãä¥à åà ¥¨ï ¤à¥á®¢ «¨á⨣
|
||||
ListFormat: db -1 ;ä®à¬ âë© ¢ë¢®¤ «¨á⨣
|
||||
;-1 - ¤ ; 0 - ¥â
|
||||
|
||||
DecHex db 0 ;0-HEX FF-DEC á¨á⥬
|
||||
|
||||
;======== Š®áâ ââë ======
|
||||
On equ 0xFF
|
||||
Off equ 0
|
||||
Ins equ 0
|
||||
Ovr equ 0xFF
|
||||
SysSymb equ 0x1B ;á¨áâ¥¬ë© § ª®£¥¥à â®à
|
||||
|
||||
;¯¥ç âì ç¥à¥§ ¯/¯ ¡¨®á
|
||||
ifdef D_PRINTCH_BIOS
|
||||
Demon.Bios_Win db 0 ;¨¤¥â¨ä¨ª â®à ®ª ¡¨®á
|
||||
MainWin db 80,32,0,0,00110000b,0,0,0
|
||||
ds 26,0
|
||||
endif
|
||||
|
||||
;--------------------------------------
|
||||
;„¨ «®£®¢®¥ ®ª® ¤«ï ¯¯ ¢ë室
|
||||
;--------------------------------------
|
||||
ExitDlg db 6,22,13,32,6,#40
|
||||
db "Confirmation",0
|
||||
db " You really want to quit?"
|
||||
db 0x16,32,17,"OK Cancel",0
|
||||
db 2
|
||||
db 29,17,8,2 ;Ok
|
||||
dw 0,0
|
||||
db 39,17,8,2 ;Cancel
|
||||
dw 0,Keyb.NoExit
|
389
DEMON.ASM
Normal file
389
DEMON.ASM
Normal file
@ -0,0 +1,389 @@
|
||||
;[]=========================================================================[]
|
||||
;[] Œ®¨â®à-®â« ¤ç¨ª DemoN []
|
||||
;[] v0.01 - ¯®á«¥¤¨¥ ¨§¬¥¥¨ï 10.10.2004 []
|
||||
;[] v0.02 - ¯®á«¥¤¨¥ ¨§¬¥¥¨ï 07.02.2005 []
|
||||
;[] v0.03 - ¯®á«¥¤¨¥ ¨§¬¥¥¨ï 11.03.2006 []
|
||||
;[] v0.10 - ¯®á«¥¤¨¥ ¨§¬¥¥¨ï 27.08.2006 []
|
||||
;[]=========================================================================[]
|
||||
|
||||
DEVICE ZXSPECTRUM128
|
||||
|
||||
; define DEBUG 1 ;®âªàë⨥ ¤¥¡ ££¥àëå § £«ã襪
|
||||
; define D_PRINTCH_BIOS 1
|
||||
|
||||
org #8100-512
|
||||
STARTPRG
|
||||
DB "EXE" ;EXE ID
|
||||
DB #00 ;EXE VERSION
|
||||
DW #0200 ;CODE OFFSET LOW
|
||||
DW #0000 ;CODE OFFSET HIGH
|
||||
DW #0000 ;END-BEG ;PRIMARY LOADER
|
||||
DW #0000 ;
|
||||
DW #0000 ;RESERVED
|
||||
DW #0000 ;
|
||||
DW OrgAdr ;LOAD ADDRESS
|
||||
DW OrgAdr ;START ADDRESS
|
||||
DW #C001 ;STACK ADDRESS
|
||||
|
||||
|
||||
OrgAdr equ 0x8100
|
||||
org OrgAdr
|
||||
; stack 0xC001
|
||||
|
||||
push ix ; ¤à¥á ª®¬ ¤®© áâப¨
|
||||
in a,(EmmWin.P2) ;¡ ª á ®â« ¤ç¨ª®¬
|
||||
ld (BankDebug),a
|
||||
in a,(EmmWin.P0) ;¡ ª á OS
|
||||
ld (BankOS),a
|
||||
; ld (WinPage),a
|
||||
|
||||
; ld (Reg._SP),sp ; ¤à¥á á⥪
|
||||
call SaveAllRegs ;á®åà ¥¨¥ ॣ¨áâ஢ëå ¯ à
|
||||
; ld a,(BankDebug)
|
||||
ld a,0xFF ;áªàë¢ ¥¬ ¡ ªã á ®â« ¤ç¨ª®¬
|
||||
ld (WinPage+2),a
|
||||
include "cmdline.asm"
|
||||
call nc,LoadFile
|
||||
jp Start
|
||||
|
||||
HorizLine db 8 ;ª®«¨ç¥á⢮ «¨¨©
|
||||
;1-¤«¨ 2-á⮫¡¥æ 3-áâப 4-ᨬ¢®«
|
||||
db 0x4E,0x01,0x00,0xCD, 0x17,0x01,0x03,0xC4
|
||||
db 0x17,0x01,0x09,0xC4, 0x17,0x01,0x0F,0xC4
|
||||
db 0x17,0x01,0x11,0xCD, 0x4E,0x01,0x15,0xCD
|
||||
db 0x4E,0x01,0x1E,0xCD, 0x17,0x01,0x13,0xCD
|
||||
|
||||
VerticalLine db 5 ;ª®«¨ç¥á⢮ «¨¨©
|
||||
;1-¢ëá®â 2-á⮫¡¥æ 3-áâப 4-ᨬ¢®«
|
||||
db 0x1D,0x00,0x01,0xBA, 0x10,0x09,0x01,0xB3
|
||||
db 0x08,0x0C,0x16,0xBA, 0x14,0x18,0x01,0xBA
|
||||
db 0x1D,0x4F,0x01,0xBA
|
||||
|
||||
Corner db 41 ;㣫ë à ¬®ª
|
||||
;1-á⮫¡¥æ 2-áâப 3-ᨬ¢®«
|
||||
db 0x00,0x00,0xC9, 0x00,0x03,0xC7, 0x00,0x09,0xC7
|
||||
db 0x00,0x0F,0xC7, 0x00,0x11,0xCC, 0x00,0x15,0xCC
|
||||
db 0x00,0x1E,0xC8, 0x06,0x11,0xD1, 0x06,0x13,0xCF
|
||||
db 0x09,0x00,0xD1, 0x09,0x03,0xC5, 0x09,0x09,0xC5
|
||||
db 0x09,0x0F,0xC5, 0x0C,0x11,0xD1, 0x0C,0x15,0xCB
|
||||
db 0x0C,0x1E,0xCA, 0x12,0x0F,0xC2, 0x12,0x11,0xD8
|
||||
db 0x12,0x13,0xCF, 0x18,0x00,0xCB, 0x18,0x03,0xB6
|
||||
db 0x18,0x09,0xB6, 0x18,0x0F,0xB6, 0x18,0x15,0xCA
|
||||
db 0x00,0x13,0xCC, 0x0C,0x13,0xCF, 0x4F,0x00,0xBB
|
||||
db 0x18,0x13,0xB9, 0x4F,0x15,0xB9, 0x4F,0x1E,0xBC
|
||||
db 0x18,0x11,0xB9, 0x06,0x12,0xB3, 0x12,0x10,0xB3
|
||||
db 0x12,0x12,0xB3, 0x09,0x13,0xD1, 0x09,0x14,0xB3
|
||||
db 0x09,0x15,0xCF, 0x0C,0x12,0xB3, 0x0E,0x13,0xCB
|
||||
db 0x0E,0x14,0xBA, 0x0E,0x15,0xCA
|
||||
|
||||
TextStrReg db 0x16,0x01,0x01,"IX", 0x16,0x01,0x02,"IY"
|
||||
db 0x16,0x01,0x04,"HL", 0x16,0x01,0x05,"DE"
|
||||
db 0x16,0x01,0x06,"BC", 0x16,0x01,0x07,"AF"
|
||||
db 0x16,0x01,0x0A,"HL'", 0x16,0x01,0x0B,"DE'"
|
||||
db 0x16,0x01,0x0C,"BC'", 0x16,0x01,0x0D,"AF'"
|
||||
db 0x16,0x01,0x10,"PC", 0x16, 0x0A,0x10,"IR"
|
||||
db 0x16,0x01,0x14,"SP",0
|
||||
TextStrLogo db 0x016,0x01,0x1F,0xC4,0xCD,0xCD
|
||||
db " DemoN v"
|
||||
incbin "VERSION\major.bin"
|
||||
db "."
|
||||
incbin "VERSION\minor.bin"
|
||||
db " build "
|
||||
incbin "VERSION\build.bin"
|
||||
db " (alpha)-"
|
||||
incbin "VERSION\date.bin"
|
||||
db " Igor by AlphA Studio, Hard/WCG"
|
||||
db 0x20,0xCD,0xCD,0xC4,0x00
|
||||
TextStrWin db 0x16,0x02,0x11," 0 ",0x16,0x08,0x11," 1 "
|
||||
db 0x16,0x0E,0x11," 2 ",0x16,0x14,0x11," 3 ",0
|
||||
TextStrRez db 0x16,0x0F,0x14,"REZ",0
|
||||
|
||||
|
||||
;<3B>à®æ¥¤ãà ¯à®à¨á®¢ª¨ «¨¨©
|
||||
;HL - ¤à¥á ç « â ¡«¨æë
|
||||
DrawLine ld c,(hl) ;ª®«¨ç¥á⢮ «¨¨©
|
||||
inc hl
|
||||
ld b,(hl) ;¤«¨ «¨¨¨
|
||||
inc hl
|
||||
ld e,(hl) ;á⮫¡¥æ
|
||||
inc hl
|
||||
ld d,(hl) ;áâப
|
||||
inc hl
|
||||
ld a,(hl) ;ᨬ¢®«
|
||||
push hl
|
||||
.L1 push bc
|
||||
push af
|
||||
ld bc,Dss.WrChar ;梥⠢ ॣ.B
|
||||
rst DssRst
|
||||
inc d ; à 騢 ¨¥ ª®®à¤¨ âë
|
||||
pop af
|
||||
pop bc
|
||||
djnz .L1
|
||||
pop hl
|
||||
dec c
|
||||
jr nz,DrawLine+1
|
||||
ret
|
||||
|
||||
;<3B> ç «® ¯à®£à ¬¬ë
|
||||
Start:
|
||||
ld hl,Hello ;á®®¡é¥¨¥ ¯à®£à ¬¬ë
|
||||
ld c,Dss.PChars ;¢ë¢¥á⨠áâபã
|
||||
rst DssRst
|
||||
ld c,Dss.GetVMod ;’¥ªã騩 £à ä ०¨¬
|
||||
rst DssRst
|
||||
jp c,Exit
|
||||
ld (OSGrafMode),a
|
||||
ld a,b
|
||||
ld (OSScreen),a ;¨ ⥪ãé ï áâà ¨æ íªà
|
||||
push bc
|
||||
ld bc,#0100+Dss.GetMem ;१¥à¢¨à㥬 1 áâà ¨æã ¤«ï ®ª®®£® ¡ãä¥à
|
||||
rst DssRst
|
||||
pop de ;‚ D - ®¬¥à áâà ¨æë íªà - OSScreen
|
||||
jp c,Exit ;Žè¨¡ª ¢ë¤¥«¥¨ï ¡«®ª ¯ ¬ïâ¨
|
||||
ld (BufPage),a ;‘®åà ¨¬ áâà ¨æã ¢ ¯¥à¥¬¥®©
|
||||
ld b,a
|
||||
ld a,(DemonScreen)
|
||||
cp d ;¥á«¨ íªà ë Ž‘ ¨ „¥¬® ¥ ᮢ¯ ¤ îâ
|
||||
jr nz,StartNext ;â® ¨ ¥ á®åà 塞 íªà Ž‘¨
|
||||
ld de,0 ;‘®åà 塞 íªà ¢ ¤®¯.áâà ¨æ¥
|
||||
ld hl,#2050
|
||||
ld ix,#c000
|
||||
ld c,Dss.WinCopy
|
||||
rst DssRst
|
||||
|
||||
StartNext ld a,(DemonScreen) ;íªà ®â« ¤ç¨ª
|
||||
ld b,a
|
||||
ld a,3 ;ãáâ ®¢¨âì ०¨¬ 80å32
|
||||
ld c,Dss.SetVMod ;Dss.SelPage
|
||||
; ld bc,0x0054
|
||||
rst DssRst
|
||||
ifdef D_PRINTCH_BIOS
|
||||
ld ix,MainWin ;Žâªàë⨥ ®ª ç/§ ¡¨®á
|
||||
ld e,00010001b
|
||||
rst BiosRst
|
||||
ld (Demon.Bios_Win),a
|
||||
; jr nc,.lp1
|
||||
; ld c,Dss.EchoKey ;¤¥¡ã££¥à ï § £«ãèª
|
||||
; rst DssRst
|
||||
|
||||
endif
|
||||
.lp1
|
||||
; ld a,(Color._SP) ;¯®¤á¢¥âª ¢¥àè¨ë á⥪
|
||||
; ld b,a
|
||||
; ld de,0x1C01
|
||||
; ld hl,0x010B
|
||||
; ld a," "
|
||||
; ld c,Dss.Clear
|
||||
; rst DssRst
|
||||
call ClearScreen
|
||||
call DrawDemonScreen
|
||||
|
||||
; ld c,Dss.EchoKey ;¤¥¡ã££¥à ï § £«ãèª
|
||||
; rst DssRst
|
||||
|
||||
jp Start1
|
||||
;Ž¡®¢«¥¨¥ íªà ¤¥¬®
|
||||
RefreshScreen call CursorRes
|
||||
call ClearScreen
|
||||
call DrawDemonScreen
|
||||
call Refresh
|
||||
call Cursor ;¢ª« ªãàá®à
|
||||
jp CursorSet
|
||||
|
||||
ClearScreen ld a,(Color.Screen)
|
||||
ld b,a ;®ç¨á⪠íªà
|
||||
ld de,0
|
||||
ld hl,0x2050
|
||||
ld c,Bios.Lp_Cls_Win
|
||||
rst BiosRst
|
||||
ret
|
||||
DrawDemonScreen
|
||||
ld a,(Color.Border) ;ãáâ ®¢ª 梥â à ¬ª¨
|
||||
ld (DrawLine.L1+4),a
|
||||
ld (DrawCorner+10),a
|
||||
ld a,0x14 ;ª®¤ ¬¥¬®¨ª¨ INC D
|
||||
ld (DrawLine.L1+6),a
|
||||
|
||||
ld hl,VerticalLine ;¢¥à⨪ «ìë¥ «¨¨¨
|
||||
call DrawLine
|
||||
|
||||
ld hl,HorizLine ;£®à¨§®â «ìë¥ «¨¨¨
|
||||
ld a,0x1C ;ª®¤ ¬¥¬®¨ª¨ INC E
|
||||
ld (DrawLine.L1+6),a
|
||||
call DrawLine
|
||||
|
||||
ld hl,Corner
|
||||
ld b,(hl) ;ª®«¨ç¥á⢮ 㣫®¢
|
||||
DrawCorner push bc
|
||||
inc hl
|
||||
ld e,(hl) ;á⮫¡¥æ
|
||||
inc hl
|
||||
ld d,(hl) ;áâப
|
||||
inc hl
|
||||
ld a,(hl) ;ᨬ¢®«
|
||||
push hl
|
||||
ld bc,Dss.WrChar ;梥⠢ ॣ.B
|
||||
rst DssRst
|
||||
pop hl
|
||||
pop bc
|
||||
djnz DrawCorner
|
||||
|
||||
ld hl,TextStrReg
|
||||
ld a,(Color.TextStrReg) ;梥â ॣ¨áâ஢ëå ¯ à
|
||||
ld (PrnStrColor.L1+5),a
|
||||
call PrnStrColor
|
||||
ld hl,TextStrWin
|
||||
ld a,(Color.TextStrWin) ;梥⠮¬¥à®¢ ®ª®
|
||||
ld (PrnStrColor.L1+5),a
|
||||
call PrnStrColor
|
||||
ld hl,TextStrLogo
|
||||
ld a,(Color.TextStrLogo) ;梥⠫®£® ¯à®£à ¬¬ë
|
||||
ld (PrnStrColor.L1+5),a
|
||||
call PrnStrColor
|
||||
ld hl,TextStrRez
|
||||
ld a,(Color.RezArea) ;梥â १¨¤¥â
|
||||
ld (PrnStrColor.L1+5),a
|
||||
call PrnStrColor
|
||||
ret
|
||||
ds OrgAdr+0x700-$
|
||||
Start1:
|
||||
call PreparChar ;¯®¤£®â®¢ª ¯à®£à ¬¬®£® ªãàá®à ¢¢®¤
|
||||
; ld hl,(Reg._PC)
|
||||
; ld hl,0
|
||||
; ld (ListAdr),hl
|
||||
|
||||
call Refresh
|
||||
call Keyb
|
||||
|
||||
Exit:
|
||||
ld hl,(Rst38.Vect+1) ;¢®ááâ ®¢«¥¨¥ ¢¥ªâ®à DSS
|
||||
ld (0039h),hl
|
||||
|
||||
ld a,(OSScreen) ;¨ ⥪ãé ï áâà ¨æ íªà
|
||||
ld b,a
|
||||
push bc
|
||||
ld a,(OSGrafMode)
|
||||
ld c,Dss.SetVMod
|
||||
|
||||
; ld bc,0x0100+Dss.SelPage ;¢®ááâ ®¢«¥¨¥ íªà DSS
|
||||
rst DssRst
|
||||
pop bc
|
||||
ld a,(DemonScreen)
|
||||
cp b
|
||||
jr nz,ExitNext
|
||||
ld de,0 ;‚®ááâ ¢«¨¢ ¥¬ íªà ¨§ ¤®¯.áâà ¨æë
|
||||
ld hl,#2050
|
||||
ld ix,#c000
|
||||
ld c,Dss.WinRest
|
||||
ld a,(BufPage)
|
||||
push af
|
||||
ld b,a
|
||||
rst DssRst
|
||||
pop af
|
||||
ld c,Dss.FreeMem ;Žâ¤ ¥¬ áâà ¨æã ¡ãä¥à ®¡à â® Ž‘¨
|
||||
rst DssRst
|
||||
|
||||
ExitNext
|
||||
ld bc,Dss.Exit ;®à¬ «ì®¥ § ¢¥à襨¥
|
||||
rst DssRst
|
||||
Return ret
|
||||
|
||||
Refresh:
|
||||
di
|
||||
ld de,0x0104 ;¢ë¢®¤ § 票© ॣ¨áâ஢
|
||||
ld hl,(Reg._IX)
|
||||
call PrintStrReg
|
||||
ld de,0x0204
|
||||
ld hl,(Reg._IY)
|
||||
call PrintStrReg
|
||||
ld de,0x0404
|
||||
ld hl,(Reg._HL)
|
||||
call PrintStrReg
|
||||
ld de,0x0504
|
||||
ld hl,(Reg._DE)
|
||||
call PrintStrReg
|
||||
ld de,0x0604
|
||||
ld hl,(Reg._BC)
|
||||
call PrintStrReg
|
||||
ld de,0x0A04
|
||||
ld hl,(Reg._HL_)
|
||||
call PrintStrReg
|
||||
ld de,0x0B04
|
||||
ld hl,(Reg._DE_)
|
||||
call PrintStrReg
|
||||
ld de,0x0C04
|
||||
ld hl,(Reg._BC_)
|
||||
call PrintStrReg
|
||||
ld de,0x0704
|
||||
ld hl,(Reg._AF)
|
||||
call PrintStrAF
|
||||
ld de,0x0D04
|
||||
ld hl,(Reg._AF_)
|
||||
call PrintStrAF
|
||||
ld de,0x1004
|
||||
ld hl,(Reg._PC)
|
||||
call PrintReg
|
||||
ld de,0x100D
|
||||
ld hl,(Reg._IR)
|
||||
call PrintReg
|
||||
ld de,0x1404
|
||||
ld hl,(Reg._SP)
|
||||
call PrintReg
|
||||
call PrintSPDn
|
||||
ld de,0x1413
|
||||
ld hl,(RezAdr)
|
||||
call PrintReg
|
||||
|
||||
call PrintStrWin ;¢ë¢®¤ ®¬¥à®¢ ¡ ®ª ¢ ®ª å
|
||||
|
||||
call PrintStrSP ;¢ë¢®¤ ¤ ¬¯ á⥪
|
||||
|
||||
call PrintDump
|
||||
ei
|
||||
jp DisAsm
|
||||
|
||||
DemonHelp call CursorRes
|
||||
ld ix,HelpWnd
|
||||
jp DialogWindow
|
||||
|
||||
; ld hl,HelpWndDlg
|
||||
; jp WinDialog
|
||||
HelpWnd db 6,16,11,42,7,#27
|
||||
db "DemoN Help Page",0
|
||||
db " DemoN v"
|
||||
incbin "VERSION\major.bin"
|
||||
db "."
|
||||
incbin "VERSION\minor.bin"
|
||||
db " build "
|
||||
incbin "VERSION\build.bin"
|
||||
db " (alpha)-"
|
||||
incbin "VERSION\date.bin"
|
||||
db 0x0D
|
||||
db " Igor by AlphA Studio, Hard/WCG",0x0D,0x0D
|
||||
db " OK",0
|
||||
HelpWndDlg db 1 ;Ž¯¨á â¥«ì ¤¨ «®£®¢®£® ®ª
|
||||
db 16+19,16,4,2
|
||||
dw 0,0
|
||||
|
||||
include "EQU\dss_equ.asm";"D:\WORKAST\EQU\dss_equ"
|
||||
include "EQU\bios_equ.asm";"D:\WORKAST\EQU\bios_equ"
|
||||
include "EQU\port.asm";"D:\WORKAST\EQU\port"
|
||||
include "disasm.asm";"D:\WORKAST\DEMON\disasm"
|
||||
include "util.asm";"D:\WORKAST\DEMON\util"
|
||||
include "file.asm";"D:\WORKAST\DEMON\file"
|
||||
include "error.asm";"D:\WORKAST\DEMON\error"
|
||||
include "clock.asm";"D:\WORKAST\DEMON\clock"
|
||||
include "keyb.asm";"D:\WORKAST\DEMON\keyb"
|
||||
include "kreg.asm";"D:\WORKAST\DEMON\kreg"
|
||||
include "kstack.asm";"D:\WORKAST\DEMON\kstack"
|
||||
include "kdump.asm";"D:\WORKAST\DEMON\kdump"
|
||||
include "rez.asm";"D:\WORKAST\DEMON\rez"
|
||||
include "step.asm";"D:\WORKAST\DEMON\step"
|
||||
include "savescr.asm";"D:\WORKAST\DEMON\savescr"
|
||||
include "data.asm";"D:\WORKAST\DEMON\data"
|
||||
include "tabl.asm";"D:\WORKAST\DEMON\tabl"
|
||||
include "loadbin.asm"
|
||||
include "windows.asm"
|
||||
|
||||
EndOfDaemon
|
||||
savebin "demon.exe",STARTPRG,EndOfDaemon-STARTPRG
|
377
DEMON.TXT
Normal file
377
DEMON.TXT
Normal file
@ -0,0 +1,377 @@
|
||||
<EFBFBD>®ä¨ªá¥ ï ( ®è¨¡ª¨) ¤®ª .
|
||||
<EFBFBD>¥¬®£® ¨§¬¥¥® ®¯¨á ¨¥ ¢ "2.4. „ ¬¯ ¯ ¬ïâ¨".
|
||||
|
||||
ƒ«îª¨.
|
||||
1. <20>¥ à ¡®â ¥â Ctrl+S.
|
||||
|
||||
2. <20>¥à¥©¤¨ ¢ ¯®«¥ ॣ¨áâà "PC" ¨ ¢¢¥¤¨ ¤à¥á #C000. <20>®á«¥ ¯¥à¥©¤¨ ¢ á¬-
|
||||
«¨á⨣ ( íâ®â ¤à¥á, ï ¯¥à¥å®¤¨« ¯® Ctrl+~) ¨ ¨¤¨ ¯®-áâà®ç® ¢¢¥àå
|
||||
(â.¥. ª ¬« ¤è¨¬ ¤à¥á ¬). “¢¨¤¨èì £«îª¨ á ¢ë¢®¤®¬ ¢ á¬-«¨á⨣¥. <20>¥à¥©â¨
|
||||
¬®¦¥èì ¤à㣮© ¤à¥á, £«îª ¥ ¯à®¯ ¤ ¥â. <20>ਠáâà ¨ç®¬ «¨áâ ¨¨ ¢¢¥àå,
|
||||
íâ®â £«îª ¢à®¤¥ ª ª ¥ § ¬¥â¥.
|
||||
Šáâ , ⮫쪮 é á ¯à®¢¥à¨« íâ®â ¦¥ £«îª. ‡ ¯ãáª î „¥¬® , ¯¥à¥å®¦ã ¯®
|
||||
Ctrl+~ #C000 ¨ ¨¤ã ¯®-áâà®ç® ¢¢¥àå - £«îª. ’® ¦¥ á ¬®¥ á ¤à¥á #4000.
|
||||
’.¥. ï å®çã ᪠§ âì, çâ® ¯à ¢ª ॣ¨áâà PC âãâ ¨ ¯à¨ 祬.
|
||||
|
||||
<EFBFBD>®¦¥« ¨¥. Š ª ¡ë ¡ëáâà® ¯¥à¥å®¤¨âì ¢ «î¡®¥ ®ª® „¨¬ë ?. € â® ªà㣮¢®¥ ¯®
|
||||
’ ¡ã ã⮬«ï¥â - ¯®ª ¤®©¤¥èì ¤® 㦮£® ®ª ... Œ®¦¥â ª ¦¤®¬ã ®ªã ¯à¨á¢®¨âì
|
||||
á¢®î ®â-ª« ¢¨èã, ⨯ Alt+1,2,... –¨äàã ª ¦¤®¬ã ®ªã ¬®¦® ¯®áâ ¢¨âì ¥£®
|
||||
£à ¨æã, ® ⮫쪮 ¤à㣨¬ 梥⮬, ¯à¨¬¥à ᨨ¬, çâ®¡ë ¢ £« § å ¥ â ª
|
||||
¬ ï稫®. ’¨¯ (¯®à浪®¢ë¥ ®¬¥à ⮫쪮 ¤«ï í⮣® ¯à¨¬¥à )
|
||||
|
||||
1ÍÍÍÍÍÍÍÍÑÍ
|
||||
ºIX #8080³0
|
||||
ºIY #1637³0
|
||||
2ÄÄÄÄÄÄÄÄÅÄ
|
||||
ºHL #8100³0
|
||||
ºDE #2C40³C
|
||||
ºBC #C089³D
|
||||
ºAF #FB82³%
|
||||
ºSz.h.pNc³
|
||||
3ÄÄÄÄÄÄÄÄÅÄ
|
||||
ºHL'#0000³C
|
||||
ºDE'#2E07³3
|
||||
ºBC'#0200³D
|
||||
ºAF'#FB44³%
|
||||
ºsZ.h.Pnc³
|
||||
4ÄÄÄÄÄÄÄÄÅÄ
|
||||
ºPC #0000³I
|
||||
ÌÍ 0 ÍÑÍ 1
|
||||
º #FB ³ #FF
|
||||
5ÍÍÍÍÍÏÍÍÑÍ
|
||||
ºSP #7FFE³
|
||||
6ÍÍÍÍÍÍÍÍÏÍ
|
||||
º#800A #FF0
|
||||
º#8008 #FF0
|
||||
º#8006 #100
|
||||
º#8004 #103
|
||||
º#8002 #7E6
|
||||
º#8000 #007
|
||||
º#7FFE #2CE
|
||||
º#7FFC #434
|
||||
ÈÍÍÍÍÍÍÍÍÍÍ
|
||||
|
||||
‹®¦ª ¤¥£âï ;). “ â¥¡ï ¥¬®£® ªà¨¢®¢ â ï ¢¨£ æ¨ï ¢ hex-®ª¥ ¬¥¦¤ã hex/ascii
|
||||
¤ ¬¯ ¬¨. …᫨ ¯¥à¥å®¤¨èì ¨§ ®¤®£® ¤ ¬¯ ¤à㣮©, â® ¯¥à¥å®¤¨ â®â ¦¥
|
||||
á ¬ë© ¤à¥á - íâ® «®£¨ç¥áª¨ ¯à ¢¨«ì®. Š¨¤ î ⥡¥ hex-। ªâ®à QVIEW, ï ¨¬
|
||||
PC-å¥ â®«ìª® ¨ ¯®«ì§ãîáì.
|
||||
<EFBFBD>¥à¥¤¥«ë¢ âì ¬®£® ¯®âॡã¥âáï, ¥á«¨ ¢ hex-®ª¥ áà §ã ¯à¨ªàãâ¨âì ०¨¬ । ª-
|
||||
â¨à®¢ ¨ï ?.
|
||||
|
||||
<EFBFBD>® íâ® â ª, ¬¥çâë ¡ã¤ã饥.
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
DemoN - ¬®¨â®à-®â« ¤ç¨ª ¤«ï DSS Estex
|
||||
|
||||
1. <20> § 票¥ ¯à®£à ¬¬ë.
|
||||
|
||||
Demon ¯à¥¤ § ç¥ ¤«ï ®â« ¤ª¨ ¯à®£à ¬, ¯¨á ëå áᥬ¡«¥à¥ Z80. Ž
|
||||
¯®§¢®«ï¥â âà áá¨à®¢ âì ª®¤ ¯à®£à ¬¬ë á ®âá«¥¦¨¢ ¨¥¬ á®áâ®ï¨ï ¢á¥å ॣ¨áâ஢
|
||||
¯à®æ¥áá®à ¨ ï祥ª ¯ ¬ï⨠®â« ¦¨¢ ¥¬®© ¯à®£à ¬¬ë.
|
||||
|
||||
2. ‚¥è¨© ¢¨¤ ¯à®£à ¬¬ë.
|
||||
|
||||
Demon ¨á¯®«ì§ã¥â ⥪áâ®¢ë© à¥¦¨¬ íªà .
|
||||
|
||||
’¥ªã饥 ¢à¥¬ï ÄÄÄÄÄÄÄ¿
|
||||
ÚÄÄÄÁÄÄ¿
|
||||
ÉÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ18:41:03»
|
||||
ºIX #8080³0EFC F8FC .üøüº #06CC 34 INC (HL) º
|
||||
ºIY #1637³0045 4D4F .EMOº #06CD CBB6 RES 6,(HL) º
|
||||
ÇÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄĶ #06CF 6F LD L,A º
|
||||
ºHL #8100³0081 FFFE .<2E>.þº #06D0 2606 LD H,#06 º
|
||||
ºDE #2C40³C34A 2D21 ÃJ-!º #06D2 73 LD (HL),E º
|
||||
ºBC #C089³D6C6 06C6 ÖÆ.ƺ #06D3 2C INC L º
|
||||
ºAF #FB82³%11111011 "û" º #06D4 72 LD (HL),D º
|
||||
ºSz.h.pNc³ º #06D5 2C INC L º
|
||||
ÇÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄĶ #06D6 70 LD (HL),B º
|
||||
ºHL'#0000³C34A 2DFF ÃJ-.º #06D7 2C INC L º
|
||||
ºDE'#2E07³3045 5845 0EXEº #06D8 71 LD (HL),C º
|
||||
ºBC'#0200³DCE6 0106 Üæ..º #06D9 C9 RET º
|
||||
ºAF'#FB44³%11111011 "û" º #06DA 214106 LD HL,#0641 º
|
||||
ºsZ.h.Pnc³ º #06DD 3A4006 LD A,(#0640) º
|
||||
ÇÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÂÄÄÄÄĶ #06E0 BE CP (HL) º
|
||||
ºPC #0000³IR #8059³ º #06E1 C8 RET Z º
|
||||
ÌÍ 0 ÍÑÍ 1 ÍÑÍ 2 ÍØÍ 3 ͹ #06E2 7E LD A,(HL) º
|
||||
º #FB ³ #FF ³ #E8 ³ #FF º #06E3 34 INC (HL) º
|
||||
ÌÍÍÍÍÍÏÍÍÑÍÍÏÍËÍÍÍÏÍÍÍÍ͹ #06E4 34 INC (HL) º
|
||||
ºSP #7FFE³ 0ºREZ #7000º #06E5 34 INC (HL) º
|
||||
ÌÍÍÍÍÍÍÍÍÏÍÍËÍÊÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
|
||||
º#800A #FF0Fº #4000 007E 7E6C 1038 1000 FF00 FF0F 3C3F 7F18 .~~l.8......<?.. º
|
||||
º#8008 #FF00º #4010 8002 1866 7F3E 0018 1818 0000 0000 0000 €..f.>.......... º
|
||||
º#8006 #1000º #4020 0030 6C6C 3000 3860 1860 0000 0000 0006 .0ll0.8`.`...... º
|
||||
º#8004 #1038º #4030 7C30 7878 1CFC 38FC 7878 0000 1800 6078 |0xx.ü8üxx....`x º
|
||||
º#8002 #7E6Cº #4040 7C30 FC3C F8FE FE3C CC78 1EE6 F0C6 C638 |0ü<øþþ<Ìx.æðÆÆ8 º
|
||||
º#8000 #007Eº #4050 FC78 FC78 FCCC CCC6 C6CC FE78 C078 1000 üxüxüÌÌÆÆÌþxÀx.. º
|
||||
º#7FFE #2CE4º #4060 3000 E000 1C00 3800 E030 0CE0 7000 0000 0.à...8.à0.àp... º
|
||||
º#7FFC #4340º #4070 0000 0000 1000 0000 0000 001C 18E0 7600 .............àv. º
|
||||
ÈÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
|
||||
ÄÍÍ DemoN v0.10 build 65 (alpha) Igor by AlphA Studio, 2006 ÍÍÄ
|
||||
|
||||
‚¥áì íªà à §¡¨â á«¥¤ãî騥 ®¡« áâ¨:
|
||||
- ®ª® ॣ¨áâ஢;
|
||||
- ¤ ¬¯ á⥪ ;
|
||||
- ®ª® «¨á⨣ ;
|
||||
- ¤ ¬¯ ¯ ¬ïâ¨.
|
||||
|
||||
2.1. Žª® ॣ¨áâ஢.
|
||||
|
||||
Žª® ॣ¨áâ஢ à §¡¨â® ¡®«¥¥ ¬¥«ª¨¥ ®ª (ãá«®¢ë¥ ®¡« áâ¨):
|
||||
- ®¡« áâì ¨¤¥ªáëå ॣ¨áâ஢ëå ¯ à;
|
||||
- ®¡« áâì ®á®¢®£® ¡®à ॣ¨áâ஢;
|
||||
- ®¡« áâì «ìâ¥à ⨢®£® ¡®à ॣ¨áâ஢;
|
||||
- ¨¦ïï ®¡« áâì (®á⠢訥áï âਠáâப¨);
|
||||
|
||||
2.1.1. ‘®áâ®ï¨¥ ¨¤¥ªáëå ॣ¨áâ஢ëå ¯ à.
|
||||
|
||||
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ‘®áâ®ï¨¥ ॣ¨áâ஢®© ¯ àë
|
||||
³ ÚÄÄÄÄÄÄ Œ¨¨-¤ ¬¯
|
||||
ÚÄÄÄÁÄÄ¿ ÚÄÄÄÄÄÁÄÄÄÄÄÄ¿
|
||||
ÉÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍ
|
||||
ºIX #8080³0EFC F8FC .üøüº
|
||||
ºIY #1637³0045 4D4F .EMOº
|
||||
ÇÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
|
||||
À´ ÀÄÂÄÙ ÀÂÄÙ ÀÂÄÙ ÀÂÄÙ
|
||||
³ ³ ÀÄÄÂÄÙ ÀÄ ASCII ¯à¥¤áâ ¢«¥¨¥ ¯ ¬ïâ¨
|
||||
³ ³ ÀÄÄÄÄÄÄÄÄ <20> ©âë ¨§ ¯ ¬ïâ¨, ª®â®àãî ááë« ¥âáï ॣ¨áâ஢ ï ¯ à
|
||||
³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ‡ 票¥ ॣ¨áâ஢®© ¯ àë
|
||||
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ <20>¥£¨áâ஢ ï ¯ à
|
||||
|
||||
|
||||
2.1.2. ‘®áâ®ï¨¥ ®á®¢®£® ¨ a«ìâ¥à ⨢®£® ¡®à®¢ ॣ¨áâ஢ ¯à®æ¥áá®à .
|
||||
|
||||
ÇÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
|
||||
ºHL #8100³0081 FFFE .<2E>.þº
|
||||
ºDE #2C40³C34A 2D21 ÃJ-!º
|
||||
ºBC #C089³D6C6 06C6 ÖÆ.ƺ
|
||||
ºAF #FB82³%11111011 "û" º
|
||||
ºSz.h.pNc³ º
|
||||
ÇÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
|
||||
ºHL'#0000³C34A 2DFF ÃJ-.º
|
||||
ºDE'#2B18³DD21 082E Ý!..º
|
||||
ºBC'#0200³DCE6 0106 Üæ..º
|
||||
ºAF'#FB44³%11111011 "û" º
|
||||
ºsZ.h.Pnc³ º
|
||||
ÇÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÂÄÄÄÄĶ
|
||||
|
||||
‘®áâ®ï¨¥ áâப á ॣ¨áâ஢묨 ¯ à ¬¨ HL, DE, BC ¨ HL', DE', BC' ¯®«®áâìî
|
||||
«®£¨ç® áâப ¬ á ¨¤¥ªá묨 ॣ¨áâ஢묨 ¯ à ¬¨. „ «¥¥ ¢ ¤¢ãå áâப å
|
||||
®â®¡à ¦ ¥âáï á®áâ®ï¨¥ ªªã¬ã«ïâ®à ¨ ä« £®¢ ¯à®æ¥áá®à :
|
||||
|
||||
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ <20>¥£¨áâ஢ ï ¯ à
|
||||
³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ‡ 票¥ ªªã¬ã«ïâ®à
|
||||
³ ³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ‡ 票¥ ä« £®¢®£® ॣ¨áâà
|
||||
³ ³ ³ ÚÄÄÄÄÄÄÄÄ „¢®¨ç®¥ ¯à¥¤áâ ¢«¥¨¥ ªªã¬ã«ïâ®à
|
||||
³ ³ ³ ³ ÚÄ ASCII ¯à¥¤áâ ¢«¥¨¥ ªªã¬ã«ïâ®à
|
||||
Ú´ Ú´Ú´ ÚÄÄÄÁÄÄÄ¿ ³
|
||||
|
||||
ºAF #FB82³%11111011 "û" º
|
||||
ºSz.h.pNc³ º
|
||||
ÇÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
|
||||
³³ ³ ³³³
|
||||
³³ ³ ³³ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ‘ - ä« £ ¯¥à¥®á
|
||||
³³ ³ ³ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ N - ä« £ ®¯¥à 樨 ¢ëç¨â ¨ï
|
||||
³³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ P/V - ä« £ ç¥â®£® १ã«ìâ â / ¯¥à¥¯®«¥¨ï
|
||||
³³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ H - ä« £ ¢á¯®¬®£ ⥫쮣® ¯¥à¥®á
|
||||
³ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Z - ä« £ ã«ï
|
||||
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ S - ä« £ § ª
|
||||
‡ £« ¢ ï ¡ãª¢ ᮮ⢥âáâ¢ã¥â ãáâ ®¢«¥®¬ã ä« £ã, ¯à®¯¨á ï - á¡à®è¥®¬ã.
|
||||
|
||||
2.1.3. ‘®áâ®ï¨¥ áç¥â稪 ª®¬ ¤ ¨ ॣ¨áâ஢ ¤à¥á ॣ¥¥à 樨 ¨ â ¡«¨æë
|
||||
¯à¥àë¢ ¨©.
|
||||
|
||||
ÇÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÂÄÄÄÄĶ
|
||||
ºPC #00CF³IR #8045³ º
|
||||
|
||||
À´ ÀÄÂÄÙ À´ À´À´
|
||||
³ ³ ³ ³ ÀÄÄÄÄÄ ‡ 票¥ ॣ¨áâà ¤à¥á ॣ¥¥à 樨
|
||||
³ ³ ³ ÀÄÄÄÄÄÄÄ ‡ 票¥ ॣ¨áâà ¤à¥á â ¡«¨æë ¯à¥àë¢ ¨©
|
||||
³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄ <20>¥£¨áâ஢ ï ¯ à
|
||||
³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ‡ 票¥ áç¥â稪 ª®¬ ¤
|
||||
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ <20>¥£¨áâ஢ ï ¯ à
|
||||
|
||||
2.1.4. <20>®¬¥à ¡ ®ª ¯ ¬ïâ¨, ¢ª«îç¥ëå ¢ ®ª ¯à®æ¥áá®à .
|
||||
|
||||
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 0-¥ ®ª® ¤à¥á®£® ¯à®áâà á⢠(#0000...#3FFF)
|
||||
³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄ 1-¥ ®ª® ¤à¥á®£® ¯à®áâà á⢠(#4000...#7FFF)
|
||||
³ ³ ÚÄÄÄÄÄÄÄ 2-¥ ®ª® ¤à¥á®£® ¯à®áâà á⢠(#8000...#BFFF)
|
||||
³ ³ ³ ÚÄ 3-¥ ®ª® ¤à¥á®£® ¯à®áâà á⢠(#C000...#FFFF)
|
||||
|
||||
ÌÍ 0 ÍÑÍ 1 ÍÑÍ 2 ÍØÍ 3 ͹
|
||||
º #FB ³ #FF ³ #E8 ³ #FF º
|
||||
ÌÍÍÍÍÍÏÍÍÑÍÍÏÍËÍÍÍÏÍÍÍÍ͹
|
||||
|
||||
ÀÂÙ ÀÂÙ ÀÂÙ ÀÂÙ
|
||||
³ ³ ³ ÀÄ ”¨§¨ç¥áª¨© ®¬¥à ¡ ª¨ ¯ ¬ï⨠¢ª«î祮© ¢ 0-¥ ®ª®
|
||||
³ ³ ÀÄÄÄÄÄÄÄ ”¨§¨ç¥áª¨© ®¬¥à ¡ ª¨ ¯ ¬ï⨠¢ª«î祮© ¢ 1-¥ ®ª®
|
||||
³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄ ”¨§¨ç¥áª¨© ®¬¥à ¡ ª¨ ¯ ¬ï⨠¢ª«î祮© ¢® 2-¥ ®ª®
|
||||
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ”¨§¨ç¥áª¨© ®¬¥à ¡ ª¨ ¯ ¬ï⨠¢ª«î祮© ¢ 3-¥ ®ª®
|
||||
|
||||
2.1.5. ‘®áâ®ï¨¥ 㪠§ ⥫ï á⥪ ¨ ¤à¥á à ᯮ«®¦¥¨ï १¨¤¥â .
|
||||
|
||||
ÌÍÍÍÍÍÏÍÍÑÍÍÏÍËÍÍÍÏÍÍÍÍ͹
|
||||
ºSP #7FF6³ 4ºREZ #7000º
|
||||
ÌÍÍÍÍÍÍÍÍÏÍÍËÍÊÍÍÍÍÍÍÍÍÍÊÍ
|
||||
|
||||
À´ ÀÄÂÄÙ ÀÄÂÙ ÀÂÙ ÀÄÂÄÙ
|
||||
³ ³ ³ ³ ÀÄ €¤à¥á à §¬¥é¥¨ï १¨¤¥â
|
||||
³ ³ ³ ÀÄÄÄÄÄÄ <20>¥§¨¤¥â
|
||||
³ ³ ÀÄÄÄÄÄÄÄÄÄÄ ˆá¯®«ì§®¢ ï £«ã¡¨ á⥪
|
||||
³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ‡ 票¥ 㪠§ ⥫ï á⥪
|
||||
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ <20>¥£¨áâ஢ ï ¯ à
|
||||
|
||||
‘¯à ¢ ®â ¯ àë SP ¢ë¢®¤¨âáï £«ã¡¨ ¨á¯®«ì§®¢ ®£® á⥪ . ’ ª ª®¬ ¤ë PUSH,
|
||||
CALL ¨ RST ¯à¨¢®¤ïâ ª 㢥«¨ç¥¨î í⮣® ç¨á« , ª®¬ ¤ë POP ¨ RET -
|
||||
ᮮ⢥âá⢥® ª 㬥ì襨î. —¨á«® ¢á¥£¤ ®â®¡à ¦¥® ¢ ¤¥áïâ¨ç®¬ ä®à¬ ⥠¨
|
||||
¬®¦¥â ¡ëâì ®âà¨æ ⥫ìë¬.
|
||||
|
||||
2.2. „ ¬¯ á⥪ .
|
||||
|
||||
ÌÍÍÍÍÍÍÍÍÏÍÍË ‚¥àè¨ á⥪ ¯®¤á¢¥ç¥ . <20>¨¦¥ ¯®¤á¢¥ç¥®© áâப¨ 室ïâáï
|
||||
º#8002 #6C7Eº § 票ï áïâë¥ á® á⥪ , ¢ëè¥ - § ç¥¨ï ¢ á⥪¥.
|
||||
º#8000 #7E00º
|
||||
º#7FFE #302Cº
|
||||
º#7FFC #FB82º
|
||||
º#7FFA #FB82º
|
||||
º#7FF8 #FB82º
|
||||
º#7FF6 #2C40º
|
||||
º#7FF4 #1637º
|
||||
ÈÍÍÍÍÍÍÍÍÍÍÍÊ
|
||||
ÀÄÂÄÙ ÀÄÂÄÙ
|
||||
³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄ ‡ 票¥ ¯ ¬ïâ¨
|
||||
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ €¤à¥á ¯ ¬ïâ¨
|
||||
|
||||
2.3. Žª® «¨á⨣ .
|
||||
|
||||
’¥ªã饥 ¢à¥¬ï ÄÄÄÄÄÄÄ¿
|
||||
ÚÄÄÄÁÄÄ¿
|
||||
|
||||
ËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ01:58:36»
|
||||
º #A000 7A LD A,D º
|
||||
º #A001 FE20 CP #20 º
|
||||
¶ #A003 20E2 JR NZ,#9FE7 º
|
||||
º #A005 2128A0 LD HL,#A028 º
|
||||
º #A008 AF XOR A º
|
||||
º #A009 0E0A LD C,#0A º
|
||||
º #A00B D7 RST #10 º
|
||||
º #A00C 380E JR C,#A01C º
|
||||
¶ #A00E F5 PUSH AF º
|
||||
º #A00F 2100C0 LD HL,#C000 º
|
||||
º #A012 11400A LD DE,#0A40 º
|
||||
º #A015 0E14 LD C,#14 º
|
||||
º #A017 D7 RST #10 º
|
||||
º #A018 F1 POP AF º
|
||||
¶ #A019 0E12 LD C,#12 º
|
||||
º #A01B D7 RST #10 º
|
||||
¹ #A01C 3A32A0 LD A,(#A032) º
|
||||
º #A01F 0E3C LD C,#3C º
|
||||
¹ #A021 D7 RST #10 º
|
||||
º #A022 3A33A0 LD A,(#A033) º
|
||||
ÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
|
||||
ÀÄÂÄÙ ÀÄÄÄÄÄÄÂÄÄÄÄÄÙ ÀÄÄÄÂÄÄÙ ÀÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
|
||||
³ ³ ³ ÀÄÄ Œ¥¬®¨ª ª®¬ ¤ë
|
||||
³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄ <20>®«¥ ª®¤ ª®¬ ¤ë
|
||||
³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ <20>®«¥ ¬¥âª¨
|
||||
³ (¢ ⥪ã饩 ¢¥àᨨ ¥ ॠ«¨§®¢ ®)
|
||||
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ €¤à¥á ª®¬ ¤ë
|
||||
|
||||
’¥ªãé ï ª®¬ ¤ ¯à®æ¥áá®à ( ª®â®àãî 㪠§ë¢ ¥â PC) ¢ë¤¥«¥ ¯®«®á®©.
|
||||
|
||||
2.4. „ ¬¯ ¯ ¬ïâ¨.
|
||||
|
||||
ASCII ¯à¥¤áâ ¢«¥¨¥ ¯ ¬ï⨠ÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
|
||||
ÚÄÄÄÄÄÄÄÁÄÄÄÄÄÄ¿
|
||||
ËÍÊÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
|
||||
º #4000 007E 7E6C 1038 1000 FF00 FF0F 3C3F 7F18 .~~l.8......<?.. º
|
||||
º #4010 8002 1866 7F3E 0018 1818 0000 0000 0000 €..f.>.......... º
|
||||
º #4020 0030 6C6C 3000 3860 1860 0000 0000 0006 .0ll0.8`.`...... º
|
||||
º #4030 7C30 7878 1CFC 38FC 7878 0000 1800 6078 |0xx.ü8üxx....`x º
|
||||
º #4040 7C30 FC3C F8FE FE3C CC78 1EE6 F0C6 C638 |0ü<øþþ<Ìx.æðÆÆ8 º
|
||||
º #4050 FC78 FC78 FCCC CCC6 C6CC FE78 C078 1000 üxüxüÌÌÆÆÌþxÀx.. º
|
||||
º #4060 3000 E000 1C00 3800 E030 0CE0 7000 0000 0.à...8.à0.àp... º
|
||||
º #4070 0000 0000 1000 0000 0000 001C 18E0 7600 .............àv. º
|
||||
ÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
|
||||
ÀÄÂÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
|
||||
³ ÀÄÄÄÄÄÄÄÄÄÄÄÄ HEX ¯à¥¤áâ ¢«¥¨¥ ¯ ¬ïâ¨
|
||||
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ €¤à¥á ¯ ¬ï⨠¤ ¬¯
|
||||
|
||||
3. “¯à ¢«¥¨¥.
|
||||
|
||||
“¯à ¢«¥¨¥ ¢ ¯à®£à ¬¬¥ ®áãé¥á⢫ï¥âáï ¯à¨ ¯®¬®é¨ ª« ¢¨ âãàë.
|
||||
|
||||
3.1. Ž¡é¥¥ ã¯à ¢«¥¨¥.
|
||||
|
||||
<EFBFBD>⨠¯®á«¥¤®¢ ⥫ì®á⨠ª« ¢¨ âãàëå ª®¬ ¤ ®¡à ¡ âë¢ îâáï ¢ ¥§ ¢¨á¨¬®á⨠®â
|
||||
⮣®, ¢ ª ª®¬ ®ª¥ 室¨âáï ªãàá®à ¯à®£à ¬¬ë:
|
||||
|
||||
TAB - ¯¥à¥å®¤ ¢ á«¥¤ãî饥 ®ª® ¯à®£à ¬¬ë;
|
||||
SHIFT+TAB - ¯¥à¥å®¤ ¢ ¯à¥¤ë¤ã饥 ®ª® ¯à®£à ¬¬ë;
|
||||
CTRL+E - ¯¥à¥ª«î票¥ dEc/hEc á¨áâ¥¬ë ¢ë¢®¤ ç¨á¥« íªà ¥;
|
||||
CTRL+R - ¨§¬¥¥¨¥ ¤à¥á à §¬¥é¥¨ï १¨¤¥â ;
|
||||
F7 ¨«¨ CTRL+Z - ¢ë¯®«¥¨¥ ⥪ã饩 ª®¬ ¤ë ¯à®æ¥ác®à ;
|
||||
F8 ¨«¨ CTRL+C - ¢ë¯®«¥¨¥ ⥪ã饩 ª®¬ ¤ë ¯à®æ¥ác®à á ¢â®¬ â¨ç¥áª¨¬
|
||||
¢ë¯®«¥¨¥¬ ¯®¤¯à®£à ¬¬ ¨ 横« DJNZ;
|
||||
F9 ¨«¨ CTRL+V - ¯à®¯ã᪠⥪ã饩 ª®¬ ¤ë ¯à®æ¥ác®à , ¤à¥á ¢ ॣ¨áâ஢®© ¯ à¥
|
||||
PC ãáâ ¢«¨¢ ¥âáï á«¥¤ãîéãî ª®¬ ¤ã ¡¥§ ¨á¯®«¥¨ï
|
||||
¯à¥¤ë¤ã饩;
|
||||
ESC - ¯à®á¬®âà á¨á⥬®£® íªà ;
|
||||
F10 ¨«¨ ALT+X - ¢ë室 ¨§ ¯à®£à ¬¬ë.
|
||||
|
||||
‚ ¯à®£à ¬¬¥ ॠ«¨§®¢ ¯®«®æ¥ ï áâப ¢¢®¤ . „ ë¥ ¬®¦® ¢¢®¤¨âì ª ª ¢
|
||||
HEX, â ª ¨ ¢ DEC á¨á⥬ å ¨áç¨á«¥¨ï, ¯à¨ç¥¬ HEX-ç¨á«® ¤®«¦® ç¨ âìáï á
|
||||
¯à¥ä¨ªá #, « â¨áª®© «¨â¥àë x ¨«¨ X.
|
||||
|
||||
3.2. Žª® ॣ¨áâ஢.
|
||||
|
||||
HOME - ¢ ç «® ⥪ã饩 áâப¨;
|
||||
END - ¢ ª®¥æ ⥪ã饩 áâப¨;
|
||||
PAGE UP - ¯¥à¢ãî áâபã ãá«®¢®© ®¡« áâ¨;
|
||||
PAGE DOWN - ¯®á«¥¤îî áâபã ãá«®¢®© ®¡« áâ¨;
|
||||
ENTER - ç «® । ªâ¨à®¢ ¨ï § 票ï ॣ¨áâ஢ëå ¯ à, ¡ ©â ¯ ¬ïâ¨
|
||||
¨ ASCII ¯à¥¤áâ ¢«¥¨ï ¯ ¬ï⨠¨ ªªã¬ã«ïâ®à , â ª¦¥ ®¬¥à®¢
|
||||
¡ ®ª, ¢ª«îç¥ëå ¢ ®ª ¯à®æ¥áá®à ;
|
||||
- ¨¢¥àâ¨à®¢ ¨¥ ¡¨â®¢ ¤¢®¨ç®£® ¯à¥¤áâ ¢«¥¨ï ªªã¬ã«ïâ®à ¨
|
||||
ãáâ ®¢ª / á¡à®á ä« £®¢, â ª¦¥ ®¡ã«¥¨¥ § ç¥¨ï £«ã¡¨ë
|
||||
á⥪ .
|
||||
|
||||
3.3. „ ¬¯ á⥪ .
|
||||
|
||||
PAGE UP - ¯®-áâà ¨çë© ¯à®á¬®âà á⥪ ;
|
||||
PAGE DOWN - ¯®-áâà ¨çë© ¯à®á¬®âà á⥪ ;
|
||||
HOME - ¢¥àãâì ¢¥àè¨ã á⥪ ¢ 䮪ãá;
|
||||
CTRL+X - ãáâ ®¢¨âì á⥪ ⥪ãéãî áâபã;
|
||||
ENTER - ¢¢®¤ ®¢®£® ¤à¥á ¨«¨ ¤ ëå;
|
||||
- ¢¢®¤ ¤à¥á ¢ ¯®¤á¢¥ç¥®© áâப¥ ( ¢¥à訥 á⥪ ) ¯à¨¢®¤¨â
|
||||
ª ¨§¬¥¥¨î ॣ¨áâ஢®© ¯ àë SP.
|
||||
|
||||
3.4. Žª® «¨á⨣ .
|
||||
|
||||
PAGE UP - áâà ¨æã «¨á⨣ ¢¢¥àå;
|
||||
PAGE DOWN - áâà ¨æã «¨á⨣ ¢¨§;
|
||||
HOME - ¯¥à¥å®¤ ¢ ª®«®ªã ¤à¥á ;
|
||||
END - ¯¥à¥å®¤ ¢ ª®«®ªã ¬¥¬®¨ª¨;
|
||||
CTRL+X - ãáâ ®¢¨âì § 票¥ áç¥â稪 ª®¬ ¤ ⥪ãéãî áâபã;
|
||||
RCTRL+æ¨äà - § ¯®¬¨ ¨¥ ⥪ã饣® ¤à¥á «¨á⨣ (§ ¯®¬¨âì § ª« ¤ªã);
|
||||
LCTRL+æ¨äà - ¡ëáâàë© ¯¥à¥å®¤ ¤à¥á «¨á⨣ ( á®åà. à ¥¥ § ª« ¤ªã);
|
||||
LCTRL+~ - ¡ëáâàë© æ¨ª«¨ç¥áª¨© ¯¥à¥å®¤ (®â®¡à ¦¥¨¥ «¨á⨣ )
|
||||
¢ ç «® 0..3 ®ª® ¯ ¬ï⨠¯à®æ¥áá®à ;
|
||||
ENTER - । ªâ¨à®¢ ¨¥ ¤à¥á ¨«¨ ª®¤ ª®¬ ¤ë, ¯à¨ç¥¬ ª®¤ ª®¬ ¤ë
|
||||
¢¢®¤¨âáï ⮫쪮 ¢ HEX á¨á⥬¥ ¨áç¨á«¥¨ï.
|
||||
|
||||
3.5. „ ¬¯ ¯ ¬ïâ¨.
|
||||
|
||||
PAGE UP - áâà ¨æã ¤ ¬¯ ¢¢¥àå;
|
||||
PAGE DOWN - áâà ¨æã ¤ ¬¯ ¢¨§;
|
||||
HOME - ¯¥à¥å®¤ ª ª®«®ª¥ ¤à¥á ;
|
||||
END - ¯¥à¥å®¤ ª ¯®á«¥¤¥© ª®«®ª¥ ®ª ;
|
||||
CTRL+HOME - ¯¥à¥å®¤ ¯®á«¥¤®¢ â¥«ì® (¥á«¨ ªãàá®à ãáâ ®¢«¥ ¢ ª®æ¥
|
||||
áâப¨ ¤ ¬¯ ) ª ¯¥à¢®© ª®«®ª¥ ASCII ¯à¥¤áâ ¢«¥¨ï ¯ ¬ïâ¨,
|
||||
¤ «¥¥ ª ¯¥à¢®© ª®«®ª¥ ¡ ©â ¯ ¬ï⨠¨ ª®¥æ ª ¤à¥áã;
|
||||
CTRL+END - ¯¥à¥å®¤ ª ¯®á«¥¤¥© ª®«®ª¥ ¡ ©â ¯ ¬ï⨠¨ ¤ «¥¥ ª ¯®á«¥¤¥©
|
||||
ª®«®ª¥ ASCII ¯à¥¤áâ ¢«¥¨ï ¯ ¬ïâ¨;
|
||||
ENTER - । ªâ¨à®¢ ¨¥ ¤à¥á ¨«¨ ⥪ãé¨å ¤ ëå, ¯à¨ç¥¬
|
||||
। ªâ¨à®¢ ¨¥ ¢ ¯®«¥ ¤ ëå ¨ ¢ ¯®«¥ ASCII ¯à¥¤áâ ¢«¥¨ï
|
||||
¯ ¬ï⨠¥áª®«ìª® ®â«¨ç ¥âáï - ªãàá®à ¯®á«¥ ¢¢®¤ ®ç¥à¥¤®£®
|
||||
¡ ©â ¢â®¬ â¨ç¥á¨ ¯¥à¥å®¤¨â ª á«¥¤ãî饬ã.
|
BIN
DEMON_old.EXE
Normal file
BIN
DEMON_old.EXE
Normal file
Binary file not shown.
786
DISASM.ASM
Normal file
786
DISASM.ASM
Normal file
@ -0,0 +1,786 @@
|
||||
;[]=========================================================================[]
|
||||
;[] „¨§ áᥬ¡«¥à ¬®¨â®à -®â« ¤ç¨ª DemoN []
|
||||
;[] v0.01 - ¯®á«¥¤¨¥ ¨§¬¥¥¨ï 10.10.2004 []
|
||||
;[] v0.02 - ¯®á«¥¤¨¥ ¨§¬¥¥¨ï 20.03.2005 []
|
||||
;[] v0.03 - ¯®á«¥¤¨¥ ¨§¬¥¥¨ï 16.02.2006 []
|
||||
;[] v0.10 - ¯®á«¥¤¨¥ ¨§¬¥¥¨ï 10.09.2006 []
|
||||
;[] []
|
||||
;[] DisAsm - ¢ë¢®¤ «¨á⨣ []
|
||||
;[] AttrList - ¢ë¢®¤ âਡã⮢ áâப¨ «¨á⨣ []
|
||||
;[] UpAdres - à áç¥â ¯à¥¤ë¤ã饣® ¤à¥á áâப¨ «¨á⨣ []
|
||||
;[] List - ä®à¬¨à®¢ ¨¥ áâப¨ «¨á⨣ []
|
||||
;[]=========================================================================[]
|
||||
|
||||
;[]=========================================================================[]
|
||||
;[] ‚뢮¤ «¨á⨣ []
|
||||
;[]=========================================================================[]
|
||||
DisAsm:
|
||||
ld hl,(ListAdr) ; ¤à¥á ¯¥à¢®© áâப¨ «¨á⨣
|
||||
ld de,0x011A ;ª®®à¤¨ âë ¯¥ç â¨
|
||||
.L1 push de
|
||||
push hl
|
||||
push de
|
||||
ld a,d
|
||||
dec a
|
||||
add a,a
|
||||
ld c,a
|
||||
ld b,0
|
||||
ex de,hl
|
||||
ld hl,ListAdr
|
||||
add hl,bc
|
||||
ld (hl),e ; ¤à¥á áâப¨ «¨á⨣
|
||||
inc hl
|
||||
ld (hl),d
|
||||
ex de,hl
|
||||
pop de
|
||||
|
||||
call AttrList ;®ªà á¨âì áâபã
|
||||
|
||||
.L2 call PrintReg
|
||||
pop hl
|
||||
call List
|
||||
pop de
|
||||
|
||||
; push af ;¤«¨ ª®¤ ¢à¥¬¥®
|
||||
|
||||
ld a,(ListFormat) ;ä®à¬ âë© ¢ë¢®¤
|
||||
or a
|
||||
call nz,LFormat
|
||||
|
||||
push de
|
||||
push hl
|
||||
di
|
||||
ld a,21
|
||||
add a,e
|
||||
ld e,a ;®¢ ï ª®®à¤¨ â X
|
||||
ld c,Bios.Lp_Set_Place ;ãáâ ®¢ª ¯®§¨æ¨¨ ¯¥ç â¨
|
||||
rst BiosRst
|
||||
; ld c,Dss.Locate
|
||||
; rst DssRst
|
||||
ld hl,List.String
|
||||
ld bc,32*256+Bios.Lp_Print_Ln2 ;¢ ॣ.B ¤«¨ áâப¨
|
||||
rst BiosRst
|
||||
ei
|
||||
; ld c,Dss.PChars
|
||||
; rst DssRst
|
||||
pop hl
|
||||
pop de
|
||||
|
||||
;¯¥ç âì ¤«¨ë ª®¤ ¢ ¯®«¥ ¬¥âª¨ (¢à¥¬¥®)
|
||||
; pop af
|
||||
; push de
|
||||
; push hl
|
||||
; ld e,0x24
|
||||
; push de
|
||||
; ld h,0
|
||||
; ld l,a
|
||||
; ld de,.Buf
|
||||
; call NumToStr8
|
||||
; pop de
|
||||
; ld c,Dss.Locate
|
||||
; rst DssRst
|
||||
; ld hl,.Buf
|
||||
; ld c,Dss.PChars
|
||||
; rst DssRst
|
||||
; pop hl
|
||||
; pop de
|
||||
; jr $+5
|
||||
;.Buf db "123",0
|
||||
;end (¢à¥¬¥®)
|
||||
|
||||
inc d ;á«¥¤ãîé ï áâப
|
||||
ld a,(KList.Descript) ;ª®«-¢® áâப «¨á⨣
|
||||
cp d
|
||||
jr nc,.L1
|
||||
ret
|
||||
|
||||
;[]=========================================================================[]
|
||||
;[] ‚뢮¤ âਡã⮢ áâப¨ «¨á⨣ []
|
||||
;[] ‚室: DE - ª®®à¤¨ âë ¯®¤á¢¥âª¨ []
|
||||
;[] HL - ⥪ã騩 ¤à¥á «¨á⨣ []
|
||||
;[]=========================================================================[]
|
||||
AttrList:
|
||||
di
|
||||
push hl ;⥪ã騩 ¤à¥á «¨á⨣
|
||||
push de ;⥪ã騥 ª®®à¤¨ âë
|
||||
|
||||
push hl
|
||||
ld bc,(Reg._PC) ; ¤à¥á ¯à®£à ¬¬®£® áç¥â稪
|
||||
or a ;á¡à®á ä« £ C
|
||||
sbc hl,bc
|
||||
pop hl
|
||||
jr nz,.L2
|
||||
ld a,(Color._PC) ;æ¢¥â ¯à®£à ¬¬®£® ªãàá®à
|
||||
jr .L0
|
||||
|
||||
.L2 push hl
|
||||
push de
|
||||
push hl
|
||||
ld bc,Rezident.End-Rezident;¤«¨ १¨¤¥â
|
||||
ld hl,(RezAdr) ; ç «® १¨¤¥â
|
||||
push hl
|
||||
add hl,bc ;ª®¥çë© ¤à¥á १¨¤¥â
|
||||
pop de
|
||||
dec de
|
||||
dec de
|
||||
dec de
|
||||
dec de
|
||||
pop bc
|
||||
|
||||
call AdrArea
|
||||
pop de
|
||||
pop hl
|
||||
jr c,.L3
|
||||
ld a,(Color.RezArea) ;梥⠮¡« áâ¨ à §¬¥é¥¨ï १¨¤¥â
|
||||
jr .L0
|
||||
|
||||
.L3 ld a,(Color.Screen) ;®á®¢®© 梥â
|
||||
|
||||
.L0 ld (.L1+1),a
|
||||
dec e
|
||||
ld c,Bios.Lp_Set_Place ;ãáâ ®¢ª ¯®§¨æ¨¨ ¯¥ç â¨
|
||||
rst BiosRst
|
||||
.L1 ld e,0 ;梥⠯®¤á¢¥âª¨
|
||||
ld bc,54*256+Bios.Lp_Print_Atr ;¢ ॣ.B ¤«¨ áâப¨
|
||||
rst BiosRst
|
||||
pop de
|
||||
pop hl
|
||||
ei
|
||||
ret
|
||||
|
||||
;[]=========================================================================[]
|
||||
;[] <20> áç¥â ¯à¥¤ë¤ã饣® ¤à¥á áâப¨ «¨á⨣ []
|
||||
;[] ‚室: HL - ¤à¥á ⥪ã饩 áâப¨ []
|
||||
;[] ‚ë室: HL - ¤à¥á ¯à¥¤ë¤ã饩 áâப¨ []
|
||||
;[]=========================================================================[]
|
||||
UpAdres:
|
||||
ld de,-4
|
||||
add hl,de ;4-å ¡ ©â ï ª®¬ ¤ ?
|
||||
call Ld_a_hl
|
||||
; ld a,(hl)
|
||||
cp 0xDD ;¯à¥ä¨ªá 0xDD
|
||||
jr z,$+8
|
||||
or 00110000b ;¬ ᪠¤«ï ¯à¥ä¨ªá®¢ 0xED,0xFD
|
||||
cp 0xFD
|
||||
jr nz,.L1
|
||||
push hl
|
||||
call List
|
||||
pop hl
|
||||
cp 4
|
||||
ret z
|
||||
|
||||
.L1 inc hl
|
||||
push hl ;3-å ¡ ©â ï ª®¬ ¤ ?
|
||||
call List
|
||||
pop hl
|
||||
cp 3
|
||||
ret z
|
||||
|
||||
inc hl
|
||||
push hl ;2-å ¡ ©â ï ª®¬ ¤ ?
|
||||
call List
|
||||
pop hl
|
||||
cp 2
|
||||
ret z
|
||||
|
||||
inc hl
|
||||
ret ;1-® ¡ ©â ï ª®¬ ¤ !
|
||||
|
||||
;[]=========================================================================[]
|
||||
;[] ”®à¬ â¨à®¢ ¨¥ áâப¨ «¨á⨣ []
|
||||
;[]=========================================================================[]
|
||||
LFormat:
|
||||
push hl
|
||||
ld hl,List.String+11 ; ç «® áâப¨
|
||||
ld bc,2 ;¬ ªá ª®«-¢® ¢áâ ¢«ï¥¬ëå ¯à®¡¥«®¢
|
||||
.L2 ld a,(hl)
|
||||
or a
|
||||
jr z,.Exit
|
||||
cp 0x20 ;¯à®¡¥«
|
||||
jr z,.L1
|
||||
inc hl
|
||||
dec c
|
||||
jr nz,.L2
|
||||
|
||||
.Exit pop hl
|
||||
ret
|
||||
|
||||
.L1 push de
|
||||
push bc
|
||||
push hl
|
||||
ld hl,List.String+30 ;ª®¥æ áâப¨
|
||||
ld d,h
|
||||
ld e,l
|
||||
or a
|
||||
sbc hl,bc
|
||||
pop bc
|
||||
push bc
|
||||
push hl
|
||||
sbc hl,bc ;ª®«-¢® ¡ ©â
|
||||
ld b,h
|
||||
ld c,l
|
||||
pop hl
|
||||
lddr
|
||||
pop hl
|
||||
pop bc ;ª®«-¢® ¯à®¡¥«®¢
|
||||
ld b,c
|
||||
.L3 inc hl ; ¤à¥á ¢áâ ¢ª¨
|
||||
ld a,0x20
|
||||
ld (hl),a
|
||||
djnz .L3
|
||||
pop de
|
||||
pop hl
|
||||
ret
|
||||
|
||||
;[]=========================================================================[]
|
||||
;[] ”®à¬¨à®¢ ¨¥ áâப¨ «¨á⨣ []
|
||||
;[] ‚室: HL - ¤à¥á ¯ ¬ï⨠¤¨§ áᥬ¡«¨à®¢ ¨ï []
|
||||
;[] ‚ë室: HL - á«¥¤ãî騩 § ¤¨§ áᥬ¡«¨à®¢ ®© ª®¬ ¤®© ¤à¥á ¯ ¬ï⨠[]
|
||||
;[] A - ¤«¨ ª®¤ ª®¬ ¤ë []
|
||||
;[]=========================================================================[]
|
||||
List:
|
||||
xor a ;¤«¨ ª®¤ ª®¬ ¤ë
|
||||
ld (.Byte),a
|
||||
push hl
|
||||
ld d,h
|
||||
ld e,l
|
||||
|
||||
ld hl,.String ;®ç¨á⪠¡ãä¥à áâப¨
|
||||
; di ;á ¨á¯®«ì§®¢ ¨¥¬ ªá¥«ï
|
||||
; ld d,d ;¢ª«îç¨âì ªá¥«ì
|
||||
; ld a,32 ;¤«¨ ¡ãä¥à ¨ ¡ ©â § ¯®«¨â¥«ì
|
||||
; ld c,c ;ª®¬ ¤ § ¯®«¥¨ï
|
||||
; ld (hl),a ;§ ¯®«¨âì
|
||||
; ld b,b ;¢ëª«îç¨âì ªá¥«ì
|
||||
; ei
|
||||
ld a,32 ;¤«¨ ¡ãä¥à ¨ ¡ ©â § ¯®«¨â¥«ì
|
||||
ld b,a
|
||||
ld (hl),a
|
||||
inc hl
|
||||
djnz $-2
|
||||
|
||||
ld ix,.String+2 ; ¤à¥á ¢ áâப¥ ¤«ï á«¥¤.ª®¤
|
||||
ex de,hl
|
||||
; ld a,(hl) ;¡ ©â ¨§ ¯ ¬ïâ¨
|
||||
call Ld_a_hl
|
||||
|
||||
;===============================
|
||||
cp 0xDD ;¯à¥ä¨ªá #DD
|
||||
jr z,.L43
|
||||
cp 0xFD ;¯à¥ä¨ªá #FD
|
||||
jp nz,.L30
|
||||
|
||||
ld de,"DF"
|
||||
ld a,"Y"
|
||||
jr .L42
|
||||
|
||||
.L43 ld de,"DD"
|
||||
ld a,"X"
|
||||
|
||||
.L42 ld (.String),de ;¯à¥ä¨ªá ¢ áâபã
|
||||
ld (.IRS1+1),a ;ª®à४â¨à®¢ª ॣ.¯ àë
|
||||
ld (.L9+1),a
|
||||
ld (.L13+6),a
|
||||
ld a,1
|
||||
ld (.Byte),a ;¤«¨ ª®¤ ª®¬ ¤ë
|
||||
pop hl
|
||||
inc hl
|
||||
; ld a,(hl) ;á«¥¤ãî騩 ¡ ©â ª®¬ ¤ë
|
||||
call Ld_a_hl
|
||||
push hl
|
||||
cp 0xCB
|
||||
jr z,.L40 ;ª®¬ ¤ë #DD(#FD)#CB
|
||||
|
||||
ld hl,CodeDDFD ;â ¡«¨æ ª®¤®¢
|
||||
ld bc,85 ;à §¬¥à â ¡«¨æë
|
||||
cpir ;¯®¨áª ª®¤
|
||||
jr z,.L45
|
||||
pop hl
|
||||
ld bc,ED00
|
||||
ld de,.String+9 ;ª®¯¨à®¢ ¨¥ ¬¥¬®¨ª¨ NOP *
|
||||
ld a,(bc)
|
||||
or a
|
||||
ret z
|
||||
ld (de),a
|
||||
inc de
|
||||
inc bc
|
||||
jr $-6
|
||||
|
||||
.L45 ld hl,84 ;à §¬¥à â ¡«¨æë
|
||||
or a
|
||||
sbc hl,bc
|
||||
ld de,TablDDFD
|
||||
jp .L_12+3
|
||||
|
||||
.L40 ld ix,.String+4 ; ¤à¥á ¢ áâப¥ ¤«ï á«¥¤.ª®¤
|
||||
ld de,"BC" ;¯à¥ä¨ªá ¢ áâபã
|
||||
ld (.String+2),de
|
||||
ld a,4 ;¤«¨ ª®¤
|
||||
ld (.Byte),a
|
||||
pop hl
|
||||
inc hl
|
||||
call Ld_a_hl
|
||||
ld b,a
|
||||
; ld b,(hl) ;¡ ©â-ᬥ饨¥
|
||||
inc hl
|
||||
call Ld_a_hl
|
||||
; ld a,(hl) ;á«¥¤ãî騩 ¡ ©â ª®¬ ¤ë
|
||||
inc hl
|
||||
push hl
|
||||
ld c,a
|
||||
ld h,0
|
||||
cp 0x40 ;®â 0 ¤® 0x3F (ᤢ¨£¨)
|
||||
jr c,.L44
|
||||
|
||||
call .ComCBBit ;¬¥¬®¨ª BIT,SET,RES
|
||||
ld a,c
|
||||
cp 0x80 ;ª®¬ ¤ BIT
|
||||
jr nc,.L41
|
||||
call .NomBit ;®¬¥à ¡¨â
|
||||
call .IndexRegSh ;¨¤¥ªá ï ¯ à ᮠᬥ饨¥¬
|
||||
jr .L46
|
||||
|
||||
.L41 call .NomBit ;®¬¥à ¡¨â
|
||||
jr .L44+3
|
||||
|
||||
.L44 call .ComCBSh ;¬¥¬®¨ª
|
||||
call .RegName ;ॣ¨áâà
|
||||
jr nz,$+6
|
||||
ld a,"," ;à §¤¥«¨â¥«ì
|
||||
ld (de),a
|
||||
inc de
|
||||
call .IndexRegSh ;¨¤¥ªá ï ¯ à ᮠᬥ饨¥¬
|
||||
|
||||
.L46 ld a,c
|
||||
call ConvHexStr
|
||||
ld (ix+2),l
|
||||
ld (ix+3),h
|
||||
pop hl
|
||||
ret
|
||||
|
||||
;===============================
|
||||
.L30 cp 0xCB ;¯à¥ä¨ªá #CB
|
||||
jp nz,.L20
|
||||
ld de,"BC" ;¯à¥ä¨ªá ¢ áâபã
|
||||
ld (.String),de
|
||||
pop hl
|
||||
inc hl
|
||||
call Ld_a_hl
|
||||
; ld a,(hl) ;á«¥¤ãî騩 ¡ ©â ª®¬ ¤ë
|
||||
inc hl
|
||||
push hl
|
||||
ld c,a
|
||||
ld h,0
|
||||
cp 0x40 ;®â 0 ¤® 0x3F (ᤢ¨£¨)
|
||||
jr nc,.L31
|
||||
call .ComCBSh ;¬¥¬®¨ª
|
||||
jr .L31+6
|
||||
.L31 call .ComCBBit ;¬¥¬®¨ª
|
||||
call .NomBit ;®¬¥à ¡¨â
|
||||
call .RegName ;ॣ¨áâà
|
||||
call nz,.HLReg
|
||||
ld a,c
|
||||
call ConvHexStr
|
||||
ld (ix+0),l
|
||||
ld (ix+1),h
|
||||
pop hl
|
||||
ld a,2 ;¤«¨ ª®¤ ª®¬ ¤ë
|
||||
ret
|
||||
|
||||
;===============================
|
||||
.L20 cp 0xED ;¯à¥ä¨ªá #ED
|
||||
jr nz,.L10
|
||||
ld a,1
|
||||
ld (.Byte),a ;¤«¨ ª®¤
|
||||
ld de,"DE" ;¯à¥ä¨ªá ¢ áâபã
|
||||
ld (.String),de
|
||||
pop hl
|
||||
inc hl
|
||||
push hl
|
||||
call Ld_a_hl
|
||||
; ld a,(hl) ;á«¥¤ãî騩 ¡ ©â ª®¬ ¤ë
|
||||
cp 0x40 ;®â 0 ¤® 0x3F
|
||||
jr c,.L21
|
||||
ld de,TablED-0x40*2
|
||||
cp 0x7F ;®â 0x40 ¤® 0x7E ¨§ â ¡«¨æë
|
||||
jr c,.L_12
|
||||
cp 0xA0 ;®â 0x7F ¤® 0x9F
|
||||
jr c,.L21
|
||||
ld de,TablED-0xA0*2+0x40*2-2
|
||||
cp 0xBC ;®â 0xBC ¤® 0xFF
|
||||
jr c,.L_12
|
||||
.L21 ld hl,ED00 ;ª®¬ ¤ "NOP *"
|
||||
jr .L_2-3
|
||||
|
||||
;===============================
|
||||
.L10 ld ix,.String
|
||||
ld de,Tabl00_3F ;â ¡«¨æ ᬥ饨©
|
||||
cp 0x40 ;ª®¬ ¤ë 0x00...0x3F
|
||||
jr c,.L_12
|
||||
ld de,TablC0_FF ;â ¡«¨æ ᬥ饨©
|
||||
ld c,a
|
||||
sub 0xC0 ;ª®¬ ¤ë 0xC0...0xFF
|
||||
jr nc,.L_12
|
||||
|
||||
ld a,c
|
||||
cp 0x80
|
||||
jr nc,.L8
|
||||
ld hl,MHALT
|
||||
cp 0x76 ;ª®¤ ª®¬ ¤ë HALT
|
||||
jr z,.L_2-3
|
||||
|
||||
ld hl,.String+9
|
||||
ld (hl),"L" ;¬¥¬®¨ª LD
|
||||
inc hl
|
||||
ld (hl),"D"
|
||||
inc hl
|
||||
ld (hl)," "
|
||||
inc hl
|
||||
rrca
|
||||
rrca
|
||||
rrca
|
||||
ex de,hl
|
||||
call .RegName+1 ;¯¥ç âì ॣ¨áâà
|
||||
call nz,.HLReg
|
||||
ld a,"," ;à §¤¥«¨â¥«ì
|
||||
ld (de),a
|
||||
inc de
|
||||
call .RegName ;¯¥ç âì ॣ¨áâà
|
||||
call nz,.HLReg
|
||||
xor a
|
||||
jr .L1
|
||||
|
||||
.L8 and 00111000b ;ADD,ADC,SUB,SBC,AND,XOR,OR,CP
|
||||
rrca
|
||||
rrca
|
||||
ld l,a
|
||||
ld h,0
|
||||
ld de,TablM
|
||||
add hl,de ;ᬥ饨¥ ¢ â ¡«¨æ¥
|
||||
ld a,(hl)
|
||||
inc hl
|
||||
ld h,(hl)
|
||||
ld l,a
|
||||
ld de,.String+9 ;ª®¯¨à®¢ ¨¥ ¢ áâபã-¡ãä¥à
|
||||
ld a,(hl)
|
||||
ld (de),a
|
||||
inc de
|
||||
inc hl
|
||||
or a
|
||||
jr nz,$-5
|
||||
dec de
|
||||
call .RegName ;¯¥ç âì ॣ¨áâà
|
||||
call nz,.HLReg
|
||||
xor a
|
||||
jr .L1
|
||||
|
||||
.L_12 ld l,a ;à áç¥â ¤à¥á ¢ â ¡«¨æ¥
|
||||
ld h,0
|
||||
add hl,hl ;*2
|
||||
add hl,de
|
||||
ld a,(hl)
|
||||
inc hl
|
||||
ld h,(hl)
|
||||
ld l,a ; ¤à¥á áâப¨-¬¥¬®¨ª¨
|
||||
|
||||
ld de,.String+9 ;ª®¯¨à®¢ ¨¥ ¢ áâபã-¡ãä¥à
|
||||
.L_2 ld a,(hl)
|
||||
cp 0x20
|
||||
jr c,.L1
|
||||
cp "x" ;¨¤¥ªáë© à¥£¨áâà
|
||||
jr nz,$+4
|
||||
.L9 ld a,"X"
|
||||
ld (de),a
|
||||
cp ")"
|
||||
jr nz,$+9
|
||||
ld (.TablAdr),hl
|
||||
ld (.StrAdr),de
|
||||
inc hl
|
||||
inc de
|
||||
jr .L_2
|
||||
|
||||
.L1 exa
|
||||
pop hl ;¯¥ç âì ¡ ©â
|
||||
call Ld_a_hl
|
||||
; ld a,(hl)
|
||||
inc hl
|
||||
push hl
|
||||
call ConvHexStr
|
||||
ld (ix+0),l
|
||||
ld (ix+1),h
|
||||
exa
|
||||
jp z,.LE
|
||||
|
||||
dec a ;2-å ¡ ©â ï ª®¬ ¤ (1)
|
||||
jr nz,.L3
|
||||
call .TwoByteCom
|
||||
pop hl
|
||||
ld a,(.Byte)
|
||||
inc a
|
||||
inc a ;¤«¨ ª®¤
|
||||
ret
|
||||
|
||||
.L3 dec a ;3-å ¡ ©â ï ª®¬ ¤ (2)
|
||||
jr nz,.L4
|
||||
call .ThreeByteCom
|
||||
pop hl
|
||||
ld a,(.Byte)
|
||||
add a,3 ;¤«¨ ª®¤
|
||||
ret
|
||||
|
||||
.L4 dec a ;ª®¬ ¤ë ®â®á¨â¥«ì®£® ¯¥à¥å®¤ (3)
|
||||
jr nz,.L7
|
||||
pop hl
|
||||
call Ld_a_hl
|
||||
; ld a,(hl) ;2-© ¡ ©â ª®¬ ¤ë
|
||||
inc hl
|
||||
push hl
|
||||
ld c,a
|
||||
call ConvHexStr
|
||||
ld (ix+2),l
|
||||
ld (ix+3),h
|
||||
ld a,c
|
||||
ld b,0
|
||||
pop hl
|
||||
push hl ;⥪ã騩 ¤à¥á
|
||||
bit 7,a ;§ ª ç¨á«
|
||||
jr z,$+10
|
||||
neg
|
||||
or a ;á¡à®á ä« £ C
|
||||
ld c,a
|
||||
sbc hl,bc ;®âà¨æ ⥫쮥 ᬥ饨¥
|
||||
jr $+3
|
||||
add hl,bc ;¯®«®¦¨â¥«ì®¥ ᬥ饨¥
|
||||
call NumToStr16
|
||||
pop hl
|
||||
ld a,2 ;¤«¨ ª®¤
|
||||
ret
|
||||
|
||||
.L7 dec a ;ª®¬ ¤ë à ¡®âë á ¯®àâ ¬¨ (4)
|
||||
jr nz,.L5
|
||||
inc a
|
||||
ld (.Byte),a ;¤«¨ ª®¤
|
||||
ld de,(.StrAdr) ; ¤à¥á ¢áâ ¢ª¨
|
||||
call .TwoByteCom
|
||||
jr .L6
|
||||
|
||||
.L5 dec a ;3-å ¡ ©âë¥ ª®á¢¥®© ¤à¥á 樨 (5)
|
||||
jr nz,.L11
|
||||
ld a,(.Byte)
|
||||
inc a
|
||||
inc a
|
||||
ld (.Byte),a ;¤«¨ ª®¤
|
||||
ld de,(.StrAdr) ; ¤à¥á ¢áâ ¢ª¨
|
||||
call .ThreeByteCom
|
||||
jr .L6
|
||||
|
||||
.L11 dec a ;¨¤¥ªáë¥ à¥£¨áâàë ᮠᬥ饨¥¬ (6)
|
||||
jr nz,.LE
|
||||
ld a,2
|
||||
ld (.Byte),a ;¤«¨ ª®¤
|
||||
ld de,(.StrAdr) ; ¤à¥á ¢áâ ¢ª¨
|
||||
pop hl
|
||||
call Ld_a_hl
|
||||
ld b,a
|
||||
; ld b,(hl)
|
||||
inc hl
|
||||
push hl
|
||||
ld ix,.String+4
|
||||
call .IndexRegSh
|
||||
.L6 ld hl,(.TablAdr) ; ¤à¥á ¢ â ¡«¨æ¥ ¬¥¬®¨ª
|
||||
ld a,(hl)
|
||||
cp 0x20
|
||||
jr nc,.L13
|
||||
ld a,b
|
||||
cp "," ;¬¥¬®¨ª ®ª ç. ","
|
||||
jr nz,.LE
|
||||
call .TwoByteCom
|
||||
pop hl
|
||||
ld a,4 ;¤«¨ ª®¤
|
||||
ret
|
||||
|
||||
.L13 ld b,a
|
||||
cp "x" ;¨¤¥ªáë© à¥£¨áâà
|
||||
jr nz,$+4
|
||||
ld a,"X"
|
||||
ld (de),a
|
||||
inc hl
|
||||
inc de
|
||||
jr .L6+3
|
||||
|
||||
.LE pop hl
|
||||
ld a,(.Byte) ;¤«¨ ª®¤
|
||||
inc a
|
||||
ret
|
||||
|
||||
;======== ¯¥ç âì ¢â®à®£® ª®¤ ¤¢ãå¡ ©â®© ª®¬ ¤ë ========
|
||||
.TwoByteCom:
|
||||
pop bc ; ¤à¥á ¢®§¢à â
|
||||
pop hl
|
||||
call Ld_a_hl
|
||||
; ld a,(hl) ;2-© ¡ ©â ª®¬ ¤ë
|
||||
inc hl
|
||||
push hl
|
||||
push bc
|
||||
ld c,a
|
||||
call ConvHexStr
|
||||
ld (ix+2),l
|
||||
ld (ix+3),h
|
||||
ld l,c
|
||||
ld h,0
|
||||
jp NumToStr8
|
||||
|
||||
;======== ¯¥ç âì ¢â®à®£® ¨ âà¥â쥣® ª®¤ âà¥å¡ ©â®© ª®¬ ¤ë ========
|
||||
.ThreeByteCom:
|
||||
pop bc ; ¤à¥á ¢®§¢à â
|
||||
pop hl
|
||||
call Ld_a_hl
|
||||
; ld a,(hl) ;2-© ¡ ©â ª®¬ ¤ë
|
||||
inc hl
|
||||
exa
|
||||
call Ld_a_hl
|
||||
; ld a,(hl) ;3-© ¡ ©â ª®¬ ¤ë
|
||||
inc hl
|
||||
push hl
|
||||
push bc
|
||||
ld b,a
|
||||
call ConvHexStr
|
||||
ld (ix+4),l
|
||||
ld (ix+5),h
|
||||
exa
|
||||
ld c,a
|
||||
call ConvHexStr
|
||||
ld (ix+2),l
|
||||
ld (ix+3),h
|
||||
ld h,b ;¢ HL - ç¨á«®
|
||||
ld l,c
|
||||
jp NumToStr16
|
||||
|
||||
;======== ¯¥ç âì ¬¥¬®¨ª ª®¬ ¤ á ¯à¥ä¨ªá®¬ 0xCB (ᤢ¨£¨, ¡¨â®¢ë¥) ========
|
||||
;A - ¡ ©â ª®¬ ¤ë
|
||||
;DE - ¤à¥á ¢ áâப¥
|
||||
.ComCBBit:
|
||||
and 11000000b
|
||||
rlca
|
||||
rlca
|
||||
rlca
|
||||
rlca
|
||||
ld l,a
|
||||
ld de,CB40-4
|
||||
add hl,de
|
||||
jr .ComCBSh1
|
||||
.ComCBSh:
|
||||
and 00111000b ;ᬥ饨¥ ¢ â ¡«¨æ¥
|
||||
rrca
|
||||
rrca
|
||||
ld l,a
|
||||
ld de,TablCB
|
||||
add hl,de
|
||||
ld a,(hl)
|
||||
inc hl
|
||||
ld h,(hl)
|
||||
ld l,a
|
||||
.ComCBSh1 ld de,.String+9 ;ª®¯¨à®¢ ¨¥ ¢ áâபã-¡ãä¥à
|
||||
ld a,(hl)
|
||||
ld (de),a
|
||||
inc de
|
||||
inc hl
|
||||
cp " " ;¯®á«¥¤¨© ᨬ¢®« ¬¥¬®¨ª¨
|
||||
jr nz,$-6
|
||||
ret
|
||||
|
||||
;======== ¢ëç¨á«¥¨¥ ®¬¥à ¡¨â ¢ ¡¨â®¢ëå ª®¬ ¤ å BIT, SET, RES ========
|
||||
;C - ¡ ©â ª®¬ ¤ë
|
||||
;DE - ¤à¥á ¢ áâப¥
|
||||
.NomBit:
|
||||
ld a,c
|
||||
and 00111000b ;®¬¥à ¡¨â
|
||||
rrca
|
||||
rrca
|
||||
rrca
|
||||
add a,"0"
|
||||
ld (de),a
|
||||
ld a,","
|
||||
inc de
|
||||
ld (de),a
|
||||
inc de
|
||||
ret
|
||||
|
||||
;======== ¯¥ç âì ¨¬¥¨ ॣ¨áâà ========
|
||||
;C - ª®¬ ¤
|
||||
;DE - ¤à¥á ¢ áâப¥
|
||||
.RegName:
|
||||
ld a,c
|
||||
and 00000111b ;ॣ¨áâà
|
||||
add a,"B"
|
||||
cp "F" ;B,C,D,E
|
||||
jr c,.RN1
|
||||
inc a
|
||||
inc a
|
||||
cp "H"
|
||||
jr z,.RN1
|
||||
add a,3
|
||||
cp "L"
|
||||
jr z,.RN1
|
||||
sub 13
|
||||
cp "A"
|
||||
ret nz ;®â®á¨â¥«ì ï ¤à¥á æ¨ï
|
||||
.RN1 ld (de),a
|
||||
inc de
|
||||
xor a
|
||||
ret
|
||||
|
||||
;======== ¯¥ç âì (HL) ========
|
||||
;DE - ¤à¥á ¢ áâப¥
|
||||
.HLReg:
|
||||
ex de,hl
|
||||
ld (hl),"("
|
||||
inc hl
|
||||
ld (hl),"H"
|
||||
inc hl
|
||||
ld (hl),"L"
|
||||
inc hl
|
||||
ld (hl),")"
|
||||
inc hl
|
||||
ex de,hl
|
||||
ret
|
||||
|
||||
;======== ¯¥ç âì ¨¤¥ªá®© ॣ¨áâ஢®© ¯ àë ᮠᬥ饨¥¬ ========
|
||||
;B - ᬥ饨¥
|
||||
;DE - ¤à¥á ¢ áâப¥
|
||||
.IndexRegSh:
|
||||
ld a,b
|
||||
call ConvHexStr
|
||||
ld (ix+0),l
|
||||
ld (ix+1),h
|
||||
ex de,hl
|
||||
ld (hl),"("
|
||||
inc hl
|
||||
ld (hl),"I"
|
||||
inc hl
|
||||
.IRS1 ld (hl),"X"
|
||||
inc hl
|
||||
ld a,"+" ;¯®«®¦¨â¥«ì®¥ ᬥ饨¥
|
||||
ld (hl),a
|
||||
ld a,b ;ᬥ饨¥
|
||||
bit 7,b
|
||||
jr z,$+8
|
||||
ld a,"-" ;®âà¨æ ⥫쮥 ᬥ饨¥
|
||||
ld (hl),a
|
||||
ld a,b ;ᬥ饨¥
|
||||
neg
|
||||
inc hl
|
||||
ex de,hl
|
||||
ld l,a
|
||||
ld h,0
|
||||
call NumToStr8
|
||||
ld a,")"
|
||||
ld (de),a
|
||||
ret
|
||||
|
||||
|
||||
.String db "00112233 01234567890123456789012"
|
||||
.Byte db 0
|
||||
.TablAdr dw 0
|
||||
.StrAdr dw 0
|
||||
|
71
EQU/DOS_EQU.ASM
Normal file
71
EQU/DOS_EQU.ASM
Normal file
@ -0,0 +1,71 @@
|
||||
|
||||
VERSION EQU #00
|
||||
CHDISK EQU #01
|
||||
CURDISK EQU #02
|
||||
DSKINFO EQU #03
|
||||
G_ENTRY EQU #04
|
||||
|
||||
BOOTDSK EQU #09
|
||||
CREATE EQU #0A
|
||||
CREAT_N EQU #0B
|
||||
ERASE EQU #0D
|
||||
DELETE EQU #0E
|
||||
MOVE EQU #0F
|
||||
RENAME EQU #10
|
||||
OPEN EQU #11
|
||||
CLOSE EQU #12
|
||||
READ EQU #13
|
||||
WRITE EQU #14
|
||||
MOVE_FP EQU #15
|
||||
ATTRIB EQU #16
|
||||
GET_D_T EQU #17
|
||||
PUT_D_T EQU #18
|
||||
F_FIRST EQU #19
|
||||
F_NEXT EQU #1A
|
||||
MKDIR EQU #1B
|
||||
RMDIR EQU #1C
|
||||
CHDIR EQU #1D
|
||||
CURDIR EQU #1E
|
||||
SYSTIME EQU #21
|
||||
SETTIME EQU #22
|
||||
|
||||
WAITKEY EQU #30
|
||||
SCANKEY EQU #31
|
||||
ECHOKEY EQU #32
|
||||
CTRLKEY EQU #33
|
||||
EDIT EQU #34
|
||||
K_CLEAR EQU #35
|
||||
|
||||
SETWIN EQU #38
|
||||
SETWIN1 EQU #39
|
||||
SETWIN2 EQU #3A
|
||||
SETWIN3 EQU #3B
|
||||
FREEMEM EQU #3C
|
||||
GETMEM EQU #3D
|
||||
RETMEM EQU #3E
|
||||
SETMEM EQU #3F
|
||||
|
||||
EXEC EQU #40
|
||||
EXIT EQU #41
|
||||
WAIT EQU #42
|
||||
|
||||
GSWITCH EQU #43
|
||||
DOSNAME EQU #44
|
||||
|
||||
SETVMOD EQU #50
|
||||
GETVMOD EQU #51
|
||||
LOCATE EQU #52
|
||||
CURSOR EQU #53
|
||||
SELPAGE EQU #54
|
||||
SCROLL EQU #55
|
||||
CLEAR EQU #56
|
||||
RDCHAR EQU #57
|
||||
WRCHAR EQU #58
|
||||
WINCOPY EQU #59
|
||||
WINREST EQU #5A
|
||||
PUTCHAR EQU #5B
|
||||
PCHARS EQU #5C
|
||||
RES_PRN EQU #5D
|
||||
CTRLPRN EQU #5E
|
||||
PRINT EQU #5F
|
||||
|
104
EQU/DSS.INC
Normal file
104
EQU/DSS.INC
Normal file
@ -0,0 +1,104 @@
|
||||
|
||||
DSS_VERSION EQU #00
|
||||
DSS_CHDISK EQU #01
|
||||
DSS_CURDISK EQU #02
|
||||
DSS_DSKINFO EQU #03
|
||||
;DSS_G_ENTRY EQU #04
|
||||
; EQU #05
|
||||
; EQU #06
|
||||
; EQU #07
|
||||
; EQU #08
|
||||
DSS_BOOTDSK EQU #09
|
||||
;File io
|
||||
DSS_CREATE EQU #0A
|
||||
DSS_CREAT_N EQU #0B
|
||||
; EQU #0C
|
||||
;DSS_ERASE EQU #0D
|
||||
DSS_DELETE EQU #0E
|
||||
;DSS_MOVE EQU #0F
|
||||
DSS_RENAME EQU #10
|
||||
DSS_OPEN EQU #11
|
||||
DSS_CLOSE EQU #12
|
||||
DSS_READ EQU #13
|
||||
DSS_WRITE EQU #14
|
||||
DSS_MOVE_FP EQU #15
|
||||
DSS_ATTRIB EQU #16
|
||||
DSS_GET_D_T EQU #17
|
||||
DSS_PUT_D_T EQU #18
|
||||
DSS_F_FIRST EQU #19
|
||||
DSS_F_NEXT EQU #1A
|
||||
DSS_MKDIR EQU #1B
|
||||
DSS_RMDIR EQU #1C
|
||||
DSS_CHDIR EQU #1D
|
||||
DSS_CURDIR EQU #1E
|
||||
; EQU #1F
|
||||
; EQU #20
|
||||
DSS_SYSTIME EQU #21
|
||||
DSS_SETTIME EQU #22
|
||||
; EQU #23
|
||||
; EQU #24
|
||||
; EQU #25
|
||||
; EQU #26
|
||||
; EQU #27
|
||||
; EQU #28
|
||||
; EQU #29
|
||||
; EQU #2A
|
||||
; EQU #2B
|
||||
; EQU #2C
|
||||
; EQU #2D
|
||||
; EQU #2E
|
||||
; EQU #2F
|
||||
;Keyboard
|
||||
DSS_WAITKEY EQU #30
|
||||
DSS_SCANKEY EQU #31
|
||||
DSS_ECHOKEY EQU #32
|
||||
DSS_CTRLKEY EQU #33
|
||||
;DSS_EDIT EQU #34
|
||||
DSS_K_CLEAR EQU #35
|
||||
DSS_K_SETUP EQU #36
|
||||
DSS_TESTKEY EQU #37
|
||||
;Memory
|
||||
DSS_SETWIN EQU #38
|
||||
DSS_SETWIN1 EQU #39
|
||||
DSS_SETWIN2 EQU #3A
|
||||
DSS_SETWIN3 EQU #3B
|
||||
DSS_INFOMEM EQU #3C
|
||||
DSS_GETMEM EQU #3D
|
||||
DSS_FREEMEM EQU #3E
|
||||
DSS_SETMEM EQU #3F
|
||||
;Execution
|
||||
DSS_EXEC EQU #40
|
||||
DSS_EXIT EQU #41
|
||||
DSS_WAIT EQU #42
|
||||
|
||||
DSS_GSWITCH EQU #43
|
||||
DSS_DOSNAME EQU #44
|
||||
DSS_EX_PATH EQU #45
|
||||
DSS_ENVIRON EQU #46
|
||||
DSS_APPINFO EQU #47
|
||||
; EQU #48
|
||||
; EQU #49
|
||||
; EQU #4A
|
||||
; EQU #4B
|
||||
; EQU #4C
|
||||
; EQU #4D
|
||||
; EQU #4E
|
||||
; EQU #4F
|
||||
|
||||
DSS_SETVMOD EQU #50
|
||||
DSS_GETVMOD EQU #51
|
||||
DSS_LOCATE EQU #52
|
||||
DSS_CURSOR EQU #53
|
||||
DSS_SELPAGE EQU #54
|
||||
DSS_SCROLL EQU #55
|
||||
DSS_CLEAR EQU #56
|
||||
DSS_RDCHAR EQU #57
|
||||
DSS_WRCHAR EQU #58
|
||||
DSS_WINCOPY EQU #59
|
||||
DSS_WINREST EQU #5A
|
||||
DSS_PUTCHAR EQU #5B
|
||||
DSS_PCHARS EQU #5C
|
||||
;DSS_RES_PRN EQU #5D
|
||||
;DSS_CTRLPRN EQU #5E
|
||||
DSS_PRINT EQU #5F
|
||||
;
|
59
EQU/bios_equ.asm
Normal file
59
EQU/bios_equ.asm
Normal file
@ -0,0 +1,59 @@
|
||||
BiosRst EQU #08
|
||||
|
||||
;”ãªæ¨¨ à ¡®âë á ¯ ¬ïâìî
|
||||
Bios.Emm_Fn0 EQU #C0
|
||||
Bios.Emm_Fn1 EQU #C1
|
||||
Bios.Emm_Fn2 EQU #C2
|
||||
Bios.Emm_Fn3 EQU #C3
|
||||
Bios.Emm_Fn4 EQU #C4
|
||||
Bios.Emm_Fn5 EQU #C5
|
||||
Bios.Emm_Fn6 EQU #C6
|
||||
Bios.Emm_Fn7 EQU #C7
|
||||
Bios.Emm_Fn8 EQU #C8
|
||||
Bios.Emm_Fn9 EQU #C9
|
||||
|
||||
|
||||
;”ãªæ¨¨ ã¯à ¢«¥¨ï ®ª ¬¨ ¨ ०¨¬ ¬¨ íªà
|
||||
Bios.Win_Open EQU #B0
|
||||
Bios.Win_Close EQU #B1
|
||||
Bios.Win_Copy_Win EQU #B2
|
||||
Bios.Win_Restore_Win EQU #B3
|
||||
Bios.Win_Get_Sym EQU #B4
|
||||
Bios.Win_Put_Sym EQU #B5
|
||||
Bios.Win_Set_ZG EQU #B6
|
||||
Bios.Win_Move_Win EQU #B7
|
||||
Bios.Win_Get_ZG EQU #B8
|
||||
|
||||
|
||||
|
||||
;”ãªæ¨¨ ¢ë¢®¤ ⥪áâ íªà
|
||||
Bios.Lp_Print_All EQU #81
|
||||
Bios.Lp_Print_Sym EQU #82
|
||||
Bios.Lp_Print_Atr EQU #83
|
||||
Bios.Lp_Set_Place EQU #84
|
||||
Bios.Lp_Print_Ln EQU #85
|
||||
Bios.Lp_Print_Ln2 EQU #86
|
||||
Bios.Lp_Print_Ln3 EQU #87
|
||||
Bios.Lp_Print_Ln4 EQU #88
|
||||
Bios.Lp_Cls_Win EQU #89
|
||||
Bios.Lp_Scroll_Up EQU #8A
|
||||
Bios.Lp_Print_Ln5 EQU #8B
|
||||
Bios.Lp_Print_Ln6 EQU #8C
|
||||
Bios.Lp_Cls_Win2 EQU #8D
|
||||
Bios.Lp_Get_Place EQU #8E
|
||||
|
||||
;”ãªæ¨¨ à ¡®âë á ¦¥á⪨¬¨ ¤¨áª ¬¨ ¨ ¤¨áª®¢®¤ ¬¨
|
||||
Bios.Drv_Reset EQU #51
|
||||
Bios.Drv_Verify EQU #54
|
||||
Bios.Drv_Read EQU #55
|
||||
Bios.Drv_Write EQU #56
|
||||
Bios.Drv_Detect EQU #57
|
||||
Bios.Drv_Get_Par EQU #58
|
||||
Bios.Drv_Set_Par EQU #59
|
||||
Bios.Ext_Version EQU #5A
|
||||
Bios.Drv_List EQU #5F
|
||||
|
||||
|
||||
|
||||
|
||||
|
105
EQU/dss_equ.asm
Normal file
105
EQU/dss_equ.asm
Normal file
@ -0,0 +1,105 @@
|
||||
DssRst EQU #10
|
||||
|
||||
Dss.Version EQU #00
|
||||
Dss.ChDisk EQU #01
|
||||
Dss.CurDisk EQU #02
|
||||
Dss.DskInfo EQU #03
|
||||
;Dss.G_ENTRY EQU #04
|
||||
; EQU #05
|
||||
; EQU #06
|
||||
; EQU #07
|
||||
; EQU #08
|
||||
Dss.BOOTDSK EQU #09
|
||||
;File io
|
||||
Dss.Create EQU #0A
|
||||
Dss.Creat_N EQU #0B
|
||||
; EQU #0C
|
||||
;Dss.ERASE EQU #0D
|
||||
Dss.Delete EQU #0E
|
||||
;Dss.Move EQU #0F
|
||||
Dss.Rename EQU #10
|
||||
Dss.Open EQU #11
|
||||
Dss.Close EQU #12
|
||||
Dss.Read EQU #13
|
||||
Dss.Write EQU #14
|
||||
Dss.Move_FP EQU #15
|
||||
Dss.Attrib EQU #16
|
||||
Dss.Get_D_T EQU #17
|
||||
Dss.Put_D_T EQU #18
|
||||
Dss.F_First EQU #19
|
||||
Dss.F_Next EQU #1A
|
||||
Dss.MkDir EQU #1B
|
||||
Dss.RmDir EQU #1C
|
||||
Dss.ChDir EQU #1D
|
||||
Dss.CurDir EQU #1E
|
||||
; EQU #1F
|
||||
; EQU #20
|
||||
Dss.SysTime EQU #21
|
||||
Dss.SetTime EQU #22
|
||||
; EQU #23
|
||||
; EQU #24
|
||||
; EQU #25
|
||||
; EQU #26
|
||||
; EQU #27
|
||||
; EQU #28
|
||||
; EQU #29
|
||||
; EQU #2A
|
||||
; EQU #2B
|
||||
; EQU #2C
|
||||
; EQU #2D
|
||||
; EQU #2E
|
||||
; EQU #2F
|
||||
;Keyboard
|
||||
Dss.WaitKey EQU #30
|
||||
Dss.ScanKey EQU #31
|
||||
Dss.EchoKey EQU #32
|
||||
Dss.CTRLKey EQU #33
|
||||
;Dss.EDIT EQU #34
|
||||
Dss.K_CLEAR EQU #35
|
||||
Dss.K_SETUP EQU #36
|
||||
Dss.TESTKEY EQU #37
|
||||
;Memory
|
||||
Dss.SetWin EQU #38
|
||||
Dss.SetWin1 EQU #39
|
||||
Dss.SetWin2 EQU #3A
|
||||
Dss.SetWin3 EQU #3B
|
||||
Dss.INFOMEM EQU #3C
|
||||
Dss.GetMem EQU #3D
|
||||
Dss.FreeMem EQU #3E
|
||||
Dss.SetMem EQU #3F
|
||||
;Execution
|
||||
Dss.Exec EQU #40
|
||||
Dss.Exit EQU #41
|
||||
Dss.Wait EQU #42
|
||||
|
||||
Dss.GSwitch EQU #43
|
||||
Dss.DosName EQU #44
|
||||
Dss.EX_Path EQU #45
|
||||
Dss.Environ EQU #46
|
||||
Dss.AppInfo EQU #47
|
||||
; EQU #48
|
||||
; EQU #49
|
||||
; EQU #4A
|
||||
; EQU #4B
|
||||
; EQU #4C
|
||||
; EQU #4D
|
||||
; EQU #4E
|
||||
; EQU #4F
|
||||
|
||||
Dss.SetVMod EQU #50
|
||||
Dss.GetVMod EQU #51
|
||||
Dss.Locate EQU #52
|
||||
Dss.Cursor EQU #53
|
||||
Dss.SelPage EQU #54
|
||||
Dss.Scroll EQU #55
|
||||
Dss.Clear EQU #56
|
||||
Dss.RdChar EQU #57
|
||||
Dss.WrChar EQU #58
|
||||
Dss.WinCopy EQU #59
|
||||
Dss.WinRest EQU #5A
|
||||
Dss.PutChar EQU #5B
|
||||
Dss.PChars EQU #5C
|
||||
;Dss.RES_PRN EQU #5D
|
||||
;Dss.CTRLPRN EQU #5E
|
||||
Dss.Print EQU #5F
|
||||
;
|
4
EQU/port.asm
Normal file
4
EQU/port.asm
Normal file
@ -0,0 +1,4 @@
|
||||
EmmWin.P0 EQU #82
|
||||
EmmWin.P1 EQU #A2
|
||||
EmmWin.P2 EQU #C2
|
||||
EmmWin.P3 EQU #E2
|
86
ERROR.ASM
Normal file
86
ERROR.ASM
Normal file
@ -0,0 +1,86 @@
|
||||
;[]=========================================================================[]
|
||||
;[] Ž¡à ¡®âª ®è¨¡®ª ¬®¨â®à -®â« ¤ç¨ª DemoN []
|
||||
;[] v0.10 - ¯®á«¥¤¨¥ ¨§¬¥¥¨ï 27.08.2006 []
|
||||
;[] []
|
||||
;[] ErDss - ®¯à¥¤¥«¥¨¥ ®è¨¡ª¨ DSS ¯® ¥¥ ª®¤ã []
|
||||
;[]=========================================================================[]
|
||||
|
||||
;[]=========================================================================[]
|
||||
;[] Žè¨¡ª¨ DSS []
|
||||
;[] ‚室: A - ª®¤ ®è¨¡ª¨ []
|
||||
;[] ‚ë室: A - ª®¤ ®è¨¡ª¨ []
|
||||
;[] HL - áâப -®¯¨á ¨¥ ®è¨¡ª¨ []
|
||||
;[]=========================================================================[]
|
||||
PrErDss:
|
||||
call ErDss
|
||||
ld c,Dss.PChars ;¢ë¢¥á⨠ᮮ¡é¥¨¥ ®¡ ®è¨¡ª¥
|
||||
rst DssRst
|
||||
ld hl,Str.DA ;¯¥à¥¢®¤ áâப¨
|
||||
ld c,Dss.PChars
|
||||
rst DssRst
|
||||
ret
|
||||
|
||||
ErDss:
|
||||
.MaxError equ 0x26
|
||||
cp .MaxError+1 ;¬ ªá¨¬ «ìë© ª®¤ ®è¨¡ª¨ + 1
|
||||
jr c,$+4
|
||||
ld a,.MaxError
|
||||
|
||||
push af
|
||||
add a,a
|
||||
ld hl,.Tabl
|
||||
ld d,0
|
||||
ld e,a
|
||||
add hl,de
|
||||
ld a,(hl)
|
||||
inc hl
|
||||
ld h,(hl)
|
||||
ld l,a
|
||||
pop af
|
||||
ret
|
||||
|
||||
.e01 db "Invalid function",0
|
||||
.e02 db "Invalid drive number",0
|
||||
.e03 db "File not found",0
|
||||
.e04 db "Path not found",0
|
||||
.e05 db "Invalid handle",0
|
||||
.e06 db "Too many open files",0
|
||||
.e07 db "File already exists",0
|
||||
.e08 db "File read only",0
|
||||
.e09 db "Root overflow",0
|
||||
.e0A db "No free space",0
|
||||
.e0B db "Directory not empty",0
|
||||
.e0C db "Can't delete current directory",0
|
||||
.e0D db "Invalid media",0
|
||||
.e0E db "Unknown operation",0 ;(¥¢®§¬. ®¯¥à æ¨ï)
|
||||
.e0F db "Directory exist",0
|
||||
.e10 db "Invalid filename",0
|
||||
.e11 db "Invalid EXE-file",0
|
||||
.e12 db "Not supported EXE-file",0
|
||||
.e13 db "Access denied",0
|
||||
.e14 db "Not ready",0
|
||||
.e15 db "Seek error",0
|
||||
.e16 db "Sector not found",0
|
||||
.e17 db "CRC error",0
|
||||
.e18 db "Write protect",0
|
||||
.e19 db "Read error",0
|
||||
.e1A db "Write error",0
|
||||
.e1B db "Drive failure",0
|
||||
.e1C db "Extended error: 28",0
|
||||
.e1D db "Extended error: 29",0
|
||||
.e1E db "Not enough memory",0
|
||||
.e1F db "Invalid memory block",0
|
||||
.e20 db "Extended error: 32",0
|
||||
.e21 db "Extended error: 33",0
|
||||
.e22 db "Extended error: 34",0
|
||||
.e23 db "Too many files",0 ;(ᯨ᮪ ä ©«®¢)
|
||||
.e24 db "(᫨誮¬ ¡®«ìè ï ¢«®¦. ¯ ¯®ª ¨«¨ >= 1024 ¯ ¯®ª)",0
|
||||
.e25 db "User abort",0 ;(®¯¥à æ¨ï ¯à¥à¢ ¯®«ì§®¢ ⥫¥¬)
|
||||
.e26 db "Unknown error: 38..255",0 ;38
|
||||
|
||||
.Tabl dw .e01,.e02,.e03,.e04,.e05,.e06,.e07,.e08
|
||||
dw .e09,.e0A,.e0B,.e0C,.e0D,.e0E,.e0F,.e10
|
||||
dw .e11,.e12,.e13,.e14,.e15,.e16,.e17,.e18
|
||||
dw .e19,.e1A,.e1B,.e1C,.e1D,.e1E,.e1F,.e20
|
||||
dw .e21,.e22,.e23,.e24,.e25,.e26
|
||||
|
274
FILE.ASM
Normal file
274
FILE.ASM
Normal file
@ -0,0 +1,274 @@
|
||||
;[]=========================================================================[]
|
||||
;[] ” ©«®¢ë¥ ¯à®æ¥¤ãàë ¬®¨â®à -®â« ¤ç¨ª DemoN []
|
||||
;[] v0.10 - ¯®á«¥¤¨¥ ¨§¬¥¥¨ï 27.08.2006 []
|
||||
;[]=========================================================================[]
|
||||
LoadFile:
|
||||
xor a ;¢ëª« ç ᮢ
|
||||
ld (ClockOn),a
|
||||
ld bc,0x0100+Dss.SelPage ;á¨áâ¥¬ë© íªà
|
||||
rst DssRst
|
||||
|
||||
ld hl,Str.Load ;á®®¡é¥¨¥ ® § £à㧪¥ ä ©«
|
||||
ld c,Dss.PChars
|
||||
rst DssRst
|
||||
|
||||
call LoadExe
|
||||
|
||||
ld a,(DemonScreen)
|
||||
ld b,a
|
||||
ld c,Dss.SelPage
|
||||
rst DssRst
|
||||
ld a,On ;¢ª« ç ᮢ
|
||||
ld (ClockOn),a
|
||||
ret
|
||||
|
||||
LoadExe:
|
||||
ld hl,FDebug ;¨¬ï ä ©«
|
||||
ld a,1 ;®âªàëâì ¤«ï ç⥨ï
|
||||
ld c,Dss.Open
|
||||
rst DssRst
|
||||
jp c,PrErDss ;¢ë室 á ®è¨¡ª®©
|
||||
|
||||
ld (FId),a ;§ ¯®¬¨âì ä ©«®¢ë© ¬ ¨¯ã«ïâ®à
|
||||
|
||||
ld hl,FDebug ;¡ãä¥à ¤«ï § £à㧪¨ § £®«®¢ª
|
||||
ld de,0x7F ;ª®«-¢® áç¨âë¢ ¥¬ëå ¡ ©â
|
||||
ld c,Dss.Read ;ç⥨¥
|
||||
rst DssRst
|
||||
jp c,PrErDss ;¢ë室 á ®è¨¡ª®©
|
||||
|
||||
ld hl,(FDebug) ;§ £®«®¢®ª EXE-ä ©«
|
||||
ld de,0x5845 ;'EX' ¯à®¢¥àª ¨¤¥â¨ä¨ª â®à
|
||||
sbc hl,de
|
||||
jr nz,.L1
|
||||
ld hl,FDebug+3
|
||||
ld a,(hl) ;¢¥àá¨ï EXE-ä ©«
|
||||
or a
|
||||
jr nz,.L1
|
||||
inc hl
|
||||
ld e,(hl) ; ç «® ¨á¯®«ï¥¬®£® ª®¤
|
||||
inc hl
|
||||
ld d,(hl)
|
||||
ld bc,11 ;¯à®¯ã᪠¥¬ ä« £ § £àã§ç¨ª ¨ § १¥à¢¨à®¢ ë¥ ¡ ©âë
|
||||
add hl,bc
|
||||
ld a,(hl) ;¬«.¡ ©â à ᯮ«®¦¥¨ï ª®¤ ¢ ¯ ¬ïâ¨
|
||||
ld (FRam),a
|
||||
inc hl
|
||||
ld a,(hl) ;áâ.¡ ©â à ᯮ«®¦¥¨ï ª®¤ ¢ ¯ ¬ïâ¨
|
||||
ld (FRam+1),a
|
||||
inc hl
|
||||
ld a,(hl) ;¬«.¡ ©â ¤à¥á § ¯ãáª
|
||||
ld (Reg._PC),a
|
||||
ld (ListAdr),a ;¬«.¡ ©â ¤à¥á «¨á⨣
|
||||
inc hl
|
||||
ld a,(hl) ;áâ.¡ ©â ¤à¥á § ¯ãáª
|
||||
ld (Reg._PC+1),a
|
||||
ld (ListAdr+1),a ;áâ.¡ ©â ¤à¥á «¨á⨣
|
||||
inc hl
|
||||
ld a,(hl) ;¬«.¡ ©â á⥪ ¯à®£à ¬¬ë
|
||||
ld (Reg._SP),a
|
||||
inc hl
|
||||
ld a,(hl) ;áâ.¡ ©â á⥪ ¯à®£à ¬¬ë
|
||||
ld (Reg._SP+1),a
|
||||
ld a,e
|
||||
ld (.L2+2),a
|
||||
ld a,d
|
||||
ld (.L2+3),a
|
||||
|
||||
.L1 ld hl,0
|
||||
ld ix,0 ;ᬥ饨¥ ¢ ä ©«¥
|
||||
ld bc,2*256+Dss.Move_FP ;®â®á¨â¥«ì® ª®æ
|
||||
rst DssRst
|
||||
jp c,PrErDss ;¢ë室 á ®è¨¡ª®©
|
||||
|
||||
push hl
|
||||
ld de,(FRam) ; ¤à¥á à ᯮ«®¦¥¨ï ª®¤
|
||||
set 6,d
|
||||
res 7,d ;£à㧨¬ ç¥à¥§ 1-¥ ®ª®
|
||||
ld hl,0x8000
|
||||
or a ;á¡à®á¨âì ä« £ C
|
||||
sbc hl,de ;ª®«-¢® áç¨âë¢ ¥¬ëå ¡ ©â
|
||||
ld (.L6+1),hl
|
||||
ex de,hl
|
||||
ld (.L6+4),hl
|
||||
pop hl
|
||||
call NBank ;®¯à¥¤¥«¨âì ª®«-¢® ¡ ®ª
|
||||
jp c,PrErDss ;¢ë室 á ®è¨¡ª®©
|
||||
|
||||
ld (MemId+1),a ;ª®«-¢® ¢ë¤¥«ï¥¬ëå áâà ¨æ
|
||||
ld b,a
|
||||
ld c,Dss.GetMem ;¢ë¤¥«¥¨¥ ¯ ¬ïâ¨
|
||||
rst DssRst
|
||||
jp c,PrErDss ;¢ë室 á ®è¨¡ª®©
|
||||
ld (MemId),a ;id ¡«®ª ¯ ¬ïâ¨
|
||||
|
||||
ld a,(FId) ;ä ©«®¢ë© ¬ ¨¯ã«ïâ®à
|
||||
ld hl,0
|
||||
.L2 ld ix,0 ;ᬥ饨¥ ¢ ä ©«¥
|
||||
ld bc,Dss.Move_FP ;®â®á¨â¥«ì® ç «
|
||||
rst DssRst
|
||||
jp c,PrErDss ;¢ë室 á ®è¨¡ª®©
|
||||
|
||||
ld a,(MemId) ;id ¡«®ª ¯ ¬ïâ¨
|
||||
ld bc,Dss.SetWin1 ;¢ª« 1-î ¡ ªã ¢ 1-¥ ®ª®
|
||||
rst DssRst
|
||||
jp c,PrErDss ;¢ë室 á ®è¨¡ª®©
|
||||
|
||||
.L6 ld de,0x3FFF ;ª®«-¢® áç¨âë¢ ¥¬ëå ¡ ©â
|
||||
ld hl,0x4000 ; ¤à¥á § £à㧪¨ ª®¤
|
||||
ld a,1 ;áç¥â稪 ¡ ®ª
|
||||
ld (MemId+2),a
|
||||
.L5 ld a,(FId) ;ä ©«®¢ë© ¬ ¨¯ã«ïâ®à
|
||||
ld c,Dss.Read ;ç⥨¥
|
||||
rst DssRst
|
||||
jp c,PrErDss ;¢ë室 á ®è¨¡ª®©
|
||||
|
||||
ld bc,(MemId+1)
|
||||
ld a,b
|
||||
cp c ;§ £à§¨«¨ ¢¥áì ä ©«?
|
||||
jr z,.L4 ;¯¥à¥å®¤, ¥á«¨ ¤
|
||||
|
||||
inc a
|
||||
ld (MemId+2),a ;㢥«¨ç¨âì áç¥â稪 ¡ ®ª
|
||||
ld a,(MemId) ;id ¡«®ª ¯ ¬ïâ¨
|
||||
ld c,Dss.SetWin1 ;¢ª« ¡ ªã ¢ 1-¥ ®ª®
|
||||
rst DssRst
|
||||
jp c,PrErDss ;¢ë室 á ®è¨¡ª®©
|
||||
|
||||
ld hl,0x4000 ; ¤à¥á ¢ ¯ ¬ï⨠¤«ï § £à㧪¨
|
||||
ld de,0x3FFF ;ª®«-¢® § £à㦠¥¬ëå ¡ ©â
|
||||
jr .L5
|
||||
|
||||
.L4 ld a,(FId) ;ä ©«®¢ë© ¬ ¨¯ã«ïâ®à
|
||||
ld c,Dss.Close ;§ ªàëâì ä ©«
|
||||
rst DssRst
|
||||
jp c,PrErDss ;¢ë室 á ®è¨¡ª®©
|
||||
|
||||
ld a,(MemId) ;id ¡«®ª ¯ ¬ïâ¨
|
||||
ld bc,Bios.Emm_Fn4 ;¢ëç¨á«¨âì 䨧 ®¬¥à 1-© ¡ ª¨
|
||||
rst BiosRst
|
||||
ret c ;¢ë室 á ®è¨¡ª®©
|
||||
ld (BankP),a
|
||||
ld a,(MemId+1) ;ª®«-¢® ¢ë¤¥«¥ëå áâà ¨æ
|
||||
dec a
|
||||
jr z,.L7
|
||||
|
||||
ld a,(MemId) ;id ¡«®ª ¯ ¬ïâ¨
|
||||
ld bc,1*256+Bios.Emm_Fn4 ;¢ëç¨á«¨âì 䨧 ®¬¥à 2-© ¡ ª¨
|
||||
rst BiosRst
|
||||
ret c ;¢ë室 á ®è¨¡ª®©
|
||||
ld (BankP+1),a
|
||||
ld a,(MemId+1) ;ª®«-¢® ¢ë¤¥«¥ëå áâà ¨æ
|
||||
cp 2
|
||||
jr z,.L7
|
||||
|
||||
ld a,(MemId) ;id ¡«®ª ¯ ¬ïâ¨
|
||||
ld bc,2*256+Bios.Emm_Fn4 ;¢ëç¨á«¨âì 䨧 ®¬¥à 3-© ¡ ª¨
|
||||
rst BiosRst
|
||||
ret c ;¢ë室 á ®è¨¡ª®©
|
||||
ld (BankP+2),a
|
||||
ld a,(MemId+1) ;ª®«-¢® ¢ë¤¥«¥ëå áâà ¨æ
|
||||
cp 3
|
||||
jr z,.L7
|
||||
|
||||
ld a,(MemId) ;id ¡«®ª ¯ ¬ïâ¨
|
||||
ld bc,3*256+Bios.Emm_Fn4 ;¢ëç¨á«¨âì 䨧 ®¬¥à 4-© ¡ ª¨
|
||||
rst BiosRst
|
||||
ret c ;¢ë室 á ®è¨¡ª®©
|
||||
ld (BankP+3),a
|
||||
|
||||
.L7 ld hl,WinPage
|
||||
ld de,BankP
|
||||
ld a,(MemId+1) ;ª®«-¢® ¢ë¤¥«¥ëå áâà ¨æ
|
||||
ld b,a
|
||||
cp 5
|
||||
jr c,$+4
|
||||
ld b,4 ;¯®¤ª«îç ¥¬ ¥ ¡®«¥¥ 4 ¡ ®ª
|
||||
ld a,(FRam+1) ;áâ. ¤à¥á à ᯮ«®¦¥¨ï ª®¤
|
||||
and 0xC0 ;®ª® á à ᯮ«®¦¥¨¥¬ ª®¤
|
||||
or a ;0-¥ ®ª®
|
||||
jr nz,.L8
|
||||
ld c,a
|
||||
ld a,(de)
|
||||
ld (hl),a ;¯®¤ª«îç¨âì ¡ ªã ¯à®£à ¬¬ë
|
||||
dec b
|
||||
ret z ;¢ë室, ¥á«¨ ¡®«ìè¥ ¥â ¡ ®ª
|
||||
|
||||
ld a,c
|
||||
inc de
|
||||
.L8 inc hl
|
||||
cp 0x40 ;1-¥ ®ª®
|
||||
jr nz,.L9
|
||||
ld c,a
|
||||
ld a,(de)
|
||||
ld (hl),a ;¯®¤ª«îç¨âì ¡ ªã ¯à®£à ¬¬ë
|
||||
dec b
|
||||
ret z ;¢ë室, ¥á«¨ ¡®«ìè¥ ¥â ¡ ®ª
|
||||
|
||||
ld a,c
|
||||
inc de
|
||||
.L9 inc hl
|
||||
cp 0x80 ;2-¥ ®ª®
|
||||
jr nz,.L10
|
||||
ld c,a
|
||||
ld a,(de)
|
||||
ld (hl),a ;¯®¤ª«îç¨âì ¡ ªã ¯à®£à ¬¬ë
|
||||
dec b
|
||||
ret z ;¢ë室, ¥á«¨ ¡®«ìè¥ ¥â ¡ ®ª
|
||||
|
||||
ld a,c
|
||||
inc de
|
||||
.L10 inc hl ;¨ ç¥ 3-¥ ®ª®
|
||||
ld a,(de)
|
||||
ld (hl),a ;¯®¤ª«îç¨âì ¡ ªã ¯à®£à ¬¬ë
|
||||
|
||||
ret
|
||||
|
||||
;[]=========================================================================[]
|
||||
;[] ‚ëç¨á«¥¨¥ ¥®¡å®¤¨¬®£® ª®«-¢ ¡ ®ª ¤«ï § £à㧪¨ ä ©« ¢ ¯ ¬ïâì []
|
||||
;[] ‚室: HL:IX - ¤«¨ ä ©« ¢ ¡ ©â å []
|
||||
;[] DE - ª®«-¢® ¡ ©â ¤«ï § £à㧪¨ ¢ 1-î ¡ ªã []
|
||||
;[] ‚ë室: A - ª®«-¢® ¥®¡å®¤¨¬ëå ¡ ®ª []
|
||||
;[] ä« £ C - ®è¨¡ª , ª®¤ ®è¨¡ª¨ ¢ A []
|
||||
;[]=========================================================================[]
|
||||
NBank:
|
||||
push ix
|
||||
ld b,h
|
||||
ld c,l
|
||||
pop hl
|
||||
inc bc
|
||||
xor a
|
||||
inc a
|
||||
sbc hl,de
|
||||
jr nc,$+4
|
||||
jr .L5
|
||||
ld de,16384 ;à §¬¥à ¡ ª¨
|
||||
push af
|
||||
.L2 pop af
|
||||
.L1 inc a
|
||||
jr z,.L3
|
||||
sbc hl,de
|
||||
jr nc,.L1
|
||||
.L5 dec bc
|
||||
push af
|
||||
ld a,b
|
||||
or c
|
||||
jr nz,.L2
|
||||
pop af
|
||||
or a ;á¡à®á¨âì ä« £ C
|
||||
ret
|
||||
|
||||
.L3 ld a,0x1E ;"<22>¥¤®áâ â®ç® ¯ ¬ïâ¨"
|
||||
; JP ErrorDSS
|
||||
ret
|
||||
|
||||
BankP ds 4 ;®¬¥à ¡ ®ª § £à㦠¥¬®© ¯à®£¨
|
||||
MemId ds 3 ;id-¡«®ª ¯ ¬ï⨠¯®¤ ä ©«,
|
||||
;ª®«-¢® ¢ë¤¥«¥ëå ¡ ®ª,
|
||||
;áç¥â稪 § £à㦥ëå ¡ ®ª
|
||||
FId db 0 ;ä ©«®¢ë© ¬ ¨¯ã«ïâ®à
|
||||
FDebug ds 128
|
||||
db 0
|
||||
FStart dw 0x4200
|
||||
FRam dw 0 ; ¤à¥á à ᯮ«®¦¥¨ï ª®¤ ¢ ¯ ¬ïâ¨
|
||||
|
246
KDUMP.ASM
Normal file
246
KDUMP.ASM
Normal file
@ -0,0 +1,246 @@
|
||||
;[]=========================================================================[]
|
||||
;[] Ž¡à ¡®âª ª« ¢¨ âãàë ¢ ®ª¥ ¤ ¬¯ []
|
||||
;[] v0.10 - ¯®á«¥¤¨¥ ¨§¬¥¥¨ï 31.03.2006 []
|
||||
;[]=========================================================================[]
|
||||
KDump:
|
||||
ld a,b ;á®áâ®ï¨¥ <Shift><Alt><Ctrl>
|
||||
and 11110000b
|
||||
jr z,.L100
|
||||
|
||||
;Ž¡à ¡®âª ª®¬¡¨ 樨 Ctrl + ᨬ¢®«
|
||||
.L10 cp 00100000b ;<Ctrl>
|
||||
jp nz,.L100
|
||||
ld a,d ;¯®§¨æ¨®ë© ª®¤
|
||||
|
||||
cp 0x80+0x51 ;<Ctrl>+<End)
|
||||
jr nz,.L11
|
||||
ld hl,.Coordinate ;⥪ãé ï ª®«®ª
|
||||
ld a,16
|
||||
cp (hl)
|
||||
jr nc,$+4
|
||||
ld a,32
|
||||
inc a
|
||||
ld (hl),a
|
||||
jp Keyb-3
|
||||
|
||||
.L11 cp 0x80+0x57 ;<Ctrl>+<Home)
|
||||
jp nz,Keyb-3
|
||||
; jr nz,.L11
|
||||
ld hl,.Coordinate ;⥪ãé ï ª®«®ª
|
||||
ld a,18
|
||||
cp (hl)
|
||||
jr c,$+8
|
||||
ld a,2
|
||||
cp (hl)
|
||||
jr c,$+3
|
||||
dec a
|
||||
ld (hl),a
|
||||
jp Keyb-3
|
||||
|
||||
;Ž¡à ¡®âª ¯®§¨æ¨®®£® ª®¤
|
||||
.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,(Dump1)
|
||||
ld bc,16
|
||||
add hl,bc
|
||||
ld (Dump1),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,(Dump1)
|
||||
ld bc,16
|
||||
or a
|
||||
sbc hl,bc
|
||||
ld (Dump1),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,(Dump1)
|
||||
ld bc,16*7
|
||||
add hl,bc
|
||||
ld (Dump1),hl
|
||||
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,(Dump1)
|
||||
ld bc,16*7
|
||||
or a
|
||||
sbc hl,bc
|
||||
ld (Dump1),hl
|
||||
jp Keyb-11
|
||||
jr nz,.L109
|
||||
.L109 ld a,h ; ¯¥à¢ãî áâபã
|
||||
ld (.Coordinate+1),a
|
||||
jp Keyb-3
|
||||
|
||||
.L110 cp 0x57 ;<Home>
|
||||
jr nz,.L111
|
||||
ld a,1
|
||||
ld (.Coordinate),a ;¯¥à¢ ï ª®«®ª
|
||||
jp Keyb-3
|
||||
|
||||
.L111 cp 0x51 ;<End>
|
||||
jr nz,.L200
|
||||
ld a,(.Descript+2)
|
||||
ld (.Coordinate),a ;¯¥à¢ ï ª®«®ª
|
||||
jp Keyb-3
|
||||
|
||||
;Ž¡à ¡®âª ASCII ª®¤®¢
|
||||
.L200 ld a,0 ;ASCII ª®¤
|
||||
cp 0x0D ;<Enter>
|
||||
jp nz,Keyb+6
|
||||
.L201 ld b,0 ;¤«¨ áâப¨ ¢¢®¤
|
||||
ld hl,0 ;ª®®à¤¨ âë áâப¨ ¢¢®¤
|
||||
|
||||
ld a,b
|
||||
dec a
|
||||
jr z,.L202
|
||||
dec a
|
||||
jr z,.L203
|
||||
|
||||
call InputLine ;¢¢®¤ ¤à¥á
|
||||
jp c,Keyb-3 ;§ ¢¥à襨¥ ¢¢®¤ ¯® <ESC>
|
||||
call PutAdres
|
||||
jp c,.L201 ;®è¨¡ª ¢ ¢¥¤¥ëå ¤ ëå
|
||||
ld de,16 ;ª®«-¢® ¡ ©â ¢ áâப¥
|
||||
ld a,(.Coordinate+1) ;®¬¥à áâப¨
|
||||
sub 0x16 ;ª®®à¤¨ â ¯¥à¢®© áâப¨
|
||||
jr z,$+8
|
||||
ld b,a
|
||||
or a
|
||||
sbc hl,de
|
||||
djnz $-3
|
||||
ld (Dump1),hl
|
||||
jp Keyb-11
|
||||
|
||||
.L202 call InputLineEd ;¢¢®¤ ᨬ¢®«
|
||||
jp c,Keyb-3 ;§ ¢¥à襨¥ ¢¢®¤ ¯® <ESC>
|
||||
call .L299
|
||||
ld a,c
|
||||
sub 18 ;¯¥à¢ ï ª®«®ª ¢ ¯®«¥ ¤ ëå
|
||||
ld c,a
|
||||
ld a,(InputLine.Buffer)
|
||||
ld de,256*18+34 ;1-ï ¨ ¯®á«¥¤ïï+1 ª®«®ª¨
|
||||
jr .L204
|
||||
|
||||
.L203 call InputLineEd ;¢¢®¤ ª®¤ ᨬ¢®«
|
||||
jp c,Keyb-3 ;§ ¢¥à襨¥ ¢¢®¤ ¯® <ESC>
|
||||
call PutCode
|
||||
jp c,.L201 ;®è¨¡ª ¢ ¢¥¤¥ëå ¤ ëå
|
||||
call .L299
|
||||
ld a,c
|
||||
sub 2 ;¯¥à¢ ï ª®«®ª ¢ ¯®«¥ ¤ ëå
|
||||
ld c,a
|
||||
ld a,(PutCode.Buffer) ;§ ¯¨áë¢ ¥¬ë© ¡ ©â
|
||||
ld de,256*2+18 ;1-ï ¨ ¯®á«¥¤ïï+1 ª®«®ª¨
|
||||
.L204 add hl,bc
|
||||
call Ld_hl_a
|
||||
ld a,(InputLine.EntEnd) ;¢¢®¤ § ª®ç¥ ENTER
|
||||
or a
|
||||
jp nz,Keyb-11 ;¤
|
||||
ld hl,.Coordinate ;⥪ã騥 ª®®à¤¨ âë ªãàá®à
|
||||
inc (hl)
|
||||
ld a,e ;¯¥à¢ ï ª®«®ª ¤ ëå
|
||||
cp (hl)
|
||||
jr nz,.L205
|
||||
ld a,d
|
||||
ld (hl),a ;¢ ç «® áâப¨ ª®¤
|
||||
inc hl
|
||||
ld a,0x1D ;¯®á«¥¤ïï áâப ¤ ¬¯
|
||||
cp (hl)
|
||||
jr nz,.L205-1
|
||||
ld hl,(Dump1) ;ᤢ¨ãâì ¤ ¬¯
|
||||
ld bc,16
|
||||
add hl,bc
|
||||
ld (Dump1),hl
|
||||
jr .L205
|
||||
inc (hl)
|
||||
.L205 call CursorRes ;¢ëª« ªãàá®à
|
||||
call Refresh ;®¡®¢«¥¨¥ íªà
|
||||
call Cursor ;¢ª« ªãàá®à
|
||||
call CursorSet
|
||||
jp .L201
|
||||
|
||||
.L299 ld de,16 ;ª®«-¢® ¡ ©â ¢ áâப¥
|
||||
ld hl,(Dump1) ; ¤à¥á ¢ ¯¥à¢®© áâப¥
|
||||
ld bc,(.Coordinate)
|
||||
ld a,b
|
||||
sub 0x16 ;ª®®à¤¨ â ¯¥à¢®© áâப¨
|
||||
ld b,a
|
||||
ret z
|
||||
add hl,de
|
||||
djnz $-1
|
||||
ret
|
||||
|
||||
.Coordinate dw 0x1601 ;ªãàá®à (áâà/ª®« ªãàá®à )
|
||||
.Descript:
|
||||
dw 0x161D ;¯¥à¢ ï/¯®á«¥¤ïï áâப ®ª
|
||||
db 33 ;ª®«-¢® ª®«®®ª
|
||||
|
||||
db 0x0E ;N á⮫¡æ ª®«®ª¨
|
||||
db 5 ;è¨à¨ ª®«®ª¨
|
||||
db 0x15,2,0x17,2
|
||||
db 0x1A,2,0x1C,2
|
||||
db 0x1F,2,0x21,2
|
||||
db 0x24,2,0x26,2
|
||||
db 0x29,2,0x2B,2
|
||||
db 0x2E,2,0x30,2
|
||||
db 0x33,2,0x35,2
|
||||
db 0x38,2,0x3A,2
|
||||
db 0x3E,1,0x3F,1,0x40,1,0x41,1
|
||||
db 0x42,1,0x43,1,0x44,1,0x45,1
|
||||
db 0x46,1,0x47,1,0x48,1,0x49,1
|
||||
db 0x4A,1,0x4B,1,0x4C,1,0x4D,1
|
||||
|
440
KREG.ASM
Normal file
440
KREG.ASM
Normal file
@ -0,0 +1,440 @@
|
||||
;[]=========================================================================[]
|
||||
;[] Ž¡à ¡®âª ª« ¢¨ âãàë ¢ ®ª¥ ॣ¨áâ஢ []
|
||||
;[] v0.03 - ¯®á«¥¤¨¥ ¨§¬¥¥¨ï 11.03.2006 []
|
||||
;[] v0.10 - ¯®á«¥¤¨¥ ¨§¬¥¥¨ï 14.05.2006 []
|
||||
;[]=========================================================================[]
|
||||
KReg:
|
||||
; ld a,b ;á®áâ®ï¨¥ <Shift><Alt><Ctrl>
|
||||
; and 0b11110000
|
||||
; jr z,.L100
|
||||
|
||||
;Ž¡à ¡®âª ª®¬¡¨ 樨 Shift + ᨬ¢®«
|
||||
; and 0b11000000 ;<Shift>
|
||||
; or a
|
||||
; jp z,Keyb+6
|
||||
; ld a,d
|
||||
; cp 0x80+0x0F ;Shift+Tab
|
||||
; jp nz,Keyb+6
|
||||
; ld a,2 ;®¬¥à ®ª ¤ ¬¯
|
||||
; ld (Keyb.WinScreen),a
|
||||
; jp Keyb-3
|
||||
|
||||
;Ž¡à ¡®âª ¯®§¨æ¨®®£® ª®¤
|
||||
.L100 ld a,e ;ASCII ª®¤
|
||||
ld (.L200+1),a
|
||||
ld a,d ;¯®§¨æ¨®ë© ª®¤
|
||||
|
||||
cp 0x56 ;<Right>
|
||||
jr nz,.L101
|
||||
call .DescCalc
|
||||
ld a,(hl) ;ª®«-¢® ª®«®®ª
|
||||
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
|
||||
call .DescCalc
|
||||
ld a,e ;⥪ãé ï ª®«®ª
|
||||
cp 1
|
||||
jr nz,$+4
|
||||
ld a,(hl) ;ª®«-¢® ª®«®®ª
|
||||
inc a
|
||||
dec a
|
||||
ld (.Coordinate),a ;⥪ãé ï ª®«®ª
|
||||
jp Keyb-3
|
||||
|
||||
.L102 ld hl,(.Descript)
|
||||
ld de,(.Coordinate)
|
||||
cp 0x52 ;<Down>
|
||||
jr nz,.L103
|
||||
ld a,d ;⥪ãé ï áâப
|
||||
cp l
|
||||
jr nz,.L104
|
||||
ld a,h ;1-ï áâப
|
||||
dec a
|
||||
.L104 inc a
|
||||
jr .L107+1
|
||||
|
||||
.L103 cp 0x58 ;<Up>
|
||||
jr nz,.L105
|
||||
ld a,d ;⥪ãé ï áâப
|
||||
cp h
|
||||
jr nz,.L107
|
||||
ld a,l ; ¤à¥á ¯®á«¥¤¥© áâப¨
|
||||
inc a
|
||||
.L107 dec a
|
||||
ld h,a
|
||||
ld l,1
|
||||
ld (.Coordinate),hl
|
||||
jp Keyb-3
|
||||
|
||||
.L105 ld b,3
|
||||
cp 0x53 ;<PgDown>
|
||||
jr nz,.L108
|
||||
ld hl,.PgDown
|
||||
ld a,d ;⥪ãé ï áâப
|
||||
cp (hl)
|
||||
jr c,$+5
|
||||
inc hl
|
||||
djnz $-4
|
||||
ld a,(hl)
|
||||
jr .L107+1
|
||||
|
||||
.L108 cp 0x59 ;<PgUp>
|
||||
jr nz,.L110
|
||||
ld hl,.PgUp
|
||||
ld a,d ;⥪ãé ï áâப
|
||||
cp (hl)
|
||||
jr nc,$+5
|
||||
inc hl
|
||||
djnz $-4
|
||||
ld a,(hl)
|
||||
dec a
|
||||
jr .L107+1
|
||||
|
||||
.L110 cp 0x57 ;<Home>
|
||||
jr nz,.L111
|
||||
ld a,1
|
||||
ld (.Coordinate),a ;¯¥à¢ ï ª®«®ª
|
||||
jp Keyb-3
|
||||
|
||||
.L111 cp 0x51 ;<End>
|
||||
jr nz,.L200
|
||||
call .DescCalc
|
||||
ld a,(hl) ;¯®á«¥¤ïï ª®«®ª
|
||||
ld (.Coordinate),a ;¯¥à¢ ï ª®«®ª
|
||||
jp Keyb-3
|
||||
|
||||
;.L112 cp 0x0F ;<Tab>
|
||||
; jr nz,.L200
|
||||
; ld a,4 ;®¬¥à ®ª «¨á⨣
|
||||
; 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 ;ª®®à¤¨ âë áâப¨ ¢¢®¤
|
||||
|
||||
ld a,b
|
||||
dec a
|
||||
jp nz,.L205
|
||||
ld de,(.Coordinate)
|
||||
ld a,d ;®¬¥à áâப¨
|
||||
ld c,e ;®¬¥à ª®«®ª¨
|
||||
ex de,hl ;ª®®à¤¨ âë
|
||||
ld hl,Reg._AF+1 ;ॣ A
|
||||
cp 6 ;áâப á ¯ ன AF?
|
||||
jr z,.L207
|
||||
ld hl,Reg._AF_+1 ;ॣ A'
|
||||
cp 11 ;áâப á ¯ ன AF'?
|
||||
jr z,.L207
|
||||
ld hl,Reg._AF ;ॣ F
|
||||
cp 7 ;áâப á ¯ ன AF?
|
||||
jr z,$+9
|
||||
ld hl,Reg._AF_ ;ॣ F'
|
||||
cp 12 ;áâப á ¯ ன AF'?
|
||||
jr nz,.L206
|
||||
ld a,c ;ª®à४æ¨ï ®¬¥à®¢ ¡¨â
|
||||
cp 4 ;ª®«®ª 4..6?
|
||||
jr c,$+5
|
||||
inc c
|
||||
jr .L207-4
|
||||
cp 3 ;ª®«®ª 3?
|
||||
jr z,.L207-4
|
||||
dec c
|
||||
ld a,7
|
||||
jr .L208
|
||||
.L207 ld a,10 ;ª®«®ª¨ á ¡¨â ¬¨
|
||||
cp c
|
||||
jr z,.L206
|
||||
dec a
|
||||
.L208 sub c ;®¬¥à ¡¨â
|
||||
rlca
|
||||
rlca
|
||||
rlca ;§ £®â®¢ª ¤«ï ¡¨â®¢ëå ®¯¥à 権
|
||||
ld b,a
|
||||
or 01000110b ;¤«ï BIT
|
||||
ld ($+16),a
|
||||
ld a,b
|
||||
or 11000110b ;¤«ï SET
|
||||
ld ($+14),a
|
||||
ld a,b
|
||||
or 10000110b ;¤«ï RES
|
||||
ld ($+13),a
|
||||
bit 0,(hl) ;á®áâ®ï¨¥ ¡¨â
|
||||
jr nz,$+7
|
||||
set 0,(hl) ;ãáâ ®¢ª ¡¨â
|
||||
jp Keyb-11
|
||||
res 0,(hl) ;á¡à®á ¡¨â
|
||||
jp Keyb-11
|
||||
|
||||
.L206 ex de,hl ;ª®®à¤¨ âë
|
||||
call InputLine ;¢¢®¤ ᨬ¢®«
|
||||
jp c,Keyb-3 ;§ ¢¥à襨¥ ¢¢®¤ ¯® <ESC>
|
||||
ld de,.L204-5
|
||||
push de
|
||||
ld de,(.Coordinate)
|
||||
ld hl,Reg._AF+1
|
||||
ld a,d
|
||||
ld de,0
|
||||
cp 6 ;áâப á ¯ ன AF
|
||||
ret z
|
||||
ld hl,Reg._AF_+1
|
||||
cp 11 ;áâப á ¯ ன AF'?
|
||||
ret z
|
||||
ld de,(.Coordinate)
|
||||
ld a,e
|
||||
sub 6
|
||||
ld e,a
|
||||
jr .L209
|
||||
|
||||
.L205 dec a ;¡ ©âë ¢ ¬¨¨¤ ¬¯¥
|
||||
jr nz,.L202
|
||||
call InputLine ;¢¢®¤ ç¨á«
|
||||
jp c,Keyb-3 ;§ ¢¥à襨¥ ¢¢®¤ ¯® <ESC>
|
||||
call PutCode
|
||||
jp c,.L201 ;®è¨¡ª ¢ ¢¥¤¥ëå ¤ ëå
|
||||
ld de,.L204
|
||||
push de
|
||||
ld de,(.Coordinate)
|
||||
.L209 dec d
|
||||
jr nz,$+6
|
||||
ld hl,(Reg._IX)
|
||||
ret
|
||||
dec d
|
||||
jr nz,$+6
|
||||
ld hl,(Reg._IY)
|
||||
ret
|
||||
dec d
|
||||
jr nz,$+6
|
||||
ld hl,(Reg._HL)
|
||||
ret
|
||||
dec d
|
||||
jr nz,$+6
|
||||
ld hl,(Reg._DE)
|
||||
ret
|
||||
dec d
|
||||
jr nz,$+6
|
||||
ld hl,(Reg._BC)
|
||||
ret
|
||||
dec d
|
||||
dec d
|
||||
dec d
|
||||
jr nz,$+6
|
||||
ld hl,(Reg._HL_)
|
||||
ret
|
||||
dec d
|
||||
jr nz,$+6
|
||||
ld hl,(Reg._DE_)
|
||||
ret
|
||||
dec d
|
||||
ld hl,(Reg._BC_)
|
||||
ret
|
||||
|
||||
ld a,(InputLine.Buffer)
|
||||
jr $+7
|
||||
.L204 ld a,(PutCode.Buffer) ;§ ¯¨áë¢ ¥¬ë© ¡ ©â
|
||||
dec e
|
||||
dec e ;ᬥ饨¥ ¢ ¬¨¨¤ ¬¯¥
|
||||
add hl,de ; ¤à¥á ¢ ¯ ¬ïâ¨
|
||||
call Ld_hl_a ;§ ¯¨á «¨
|
||||
jp Keyb-11
|
||||
|
||||
.L202 dec a ;®¤®¡ ©â®¥ ç¨á«® (®¬¥à ¡ ª¨)
|
||||
jr nz,.L203
|
||||
call InputLine ;¢¢®¤ ç¨á«
|
||||
jp c,Keyb-3 ;§ ¢¥à襨¥ ¢¢®¤ ¯® <ESC>
|
||||
call PutAdres
|
||||
jp c,.L201 ;®è¨¡ª ¢ ¢¥¤¥ëå ¤ ëå
|
||||
ld de,Keyb-11
|
||||
push de
|
||||
ld a,l
|
||||
ld de,(.Coordinate)
|
||||
dec e ;ª®«®ª ¢ áâப¥
|
||||
jr nz,$+6
|
||||
ld (WinPage),a ;0-¥ ®ª®
|
||||
ret
|
||||
dec e
|
||||
jr nz,$+8
|
||||
ld (WinPage+1),a ;1-¥ ®ª®
|
||||
out (EmmWin.P1),a
|
||||
ret
|
||||
dec e
|
||||
jr nz,$+6
|
||||
ld (WinPage+2),a ;2-¥ ®ª®
|
||||
ret
|
||||
ld (WinPage+3),a ;3-¥ ®ª®
|
||||
out (EmmWin.P3),a
|
||||
ret
|
||||
|
||||
.L203 dec a ;£«ã¡¨ á⥪
|
||||
jr nz,.L210
|
||||
xor a ;®¡ã«¨âì
|
||||
ld (StackDown),a
|
||||
jp Keyb-11
|
||||
|
||||
.L210 ;dec a ;¤¢ãå¡ ©â®¥ ç¨á«®
|
||||
;jp nz,Keyb+6
|
||||
call InputLine ;¢¢®¤ ç¨á« ¢ ॣ ¯ àë
|
||||
jp c,Keyb-3 ;§ ¢¥à襨¥ ¢¢®¤ ¯® <ESC>
|
||||
call PutAdres
|
||||
jp c,.L201 ;®è¨¡ª ¢ ¢¥¤¥ëå ¤ ëå
|
||||
ld de,Keyb-11
|
||||
push de
|
||||
ld de,(.Coordinate)
|
||||
dec d
|
||||
jr nz,$+6
|
||||
ld (Reg._IX),hl
|
||||
ret
|
||||
dec d
|
||||
jr nz,$+6
|
||||
ld (Reg._IY),hl
|
||||
ret
|
||||
dec d
|
||||
jr nz,$+6
|
||||
ld (Reg._HL),hl
|
||||
ret
|
||||
dec d
|
||||
jr nz,$+6
|
||||
ld (Reg._DE),hl
|
||||
ret
|
||||
dec d
|
||||
jr nz,$+6
|
||||
ld (Reg._BC),hl
|
||||
ret
|
||||
dec d
|
||||
jr nz,$+6
|
||||
ld (Reg._AF),hl
|
||||
ret
|
||||
dec d
|
||||
dec d
|
||||
jr nz,$+6
|
||||
ld (Reg._HL_),hl
|
||||
ret
|
||||
dec d
|
||||
jr nz,$+6
|
||||
ld (Reg._DE_),hl
|
||||
ret
|
||||
dec d
|
||||
jr nz,$+6
|
||||
ld (Reg._BC_),hl
|
||||
ret
|
||||
dec d
|
||||
jr nz,$+6
|
||||
ld (Reg._AF_),hl
|
||||
ret
|
||||
dec d
|
||||
dec d
|
||||
jr nz,$+13
|
||||
dec e
|
||||
jr z,$+6
|
||||
ld (Reg._IR),hl
|
||||
ret
|
||||
ld (Reg._PC),hl
|
||||
ret
|
||||
dec e
|
||||
jr z,.L211
|
||||
.Rez ld bc,Rezident.End-Rezident;¤«¨ १¨¤¥â
|
||||
push hl ;®¢®¥ ç «® १¨¤¥â
|
||||
add hl,bc ;®¢ë© ª®¥çë© ¤à¥á १¨¤¥â
|
||||
ld a,h
|
||||
and 11000000b
|
||||
ld d,a
|
||||
pop hl
|
||||
ld a,h
|
||||
and 11000000b
|
||||
cp d ;१¨¤¥â ¯¥à¥á¥ª ¥â ®ª®?
|
||||
jr z,.L212
|
||||
ld h,d
|
||||
ld l,0
|
||||
dec hl ;¯®á«¥¤¨© ¤à¥á ®ª á १¨¤¥â®¬
|
||||
or a
|
||||
sbc hl,bc
|
||||
.L212 ld (RezAdr),hl
|
||||
ret
|
||||
.L211 ld (Reg._SP),hl
|
||||
ret
|
||||
|
||||
;<3B> áç¥â ¤¥áªà¨¯â®à áâப¨ ¢ ®ª¥ ॣ¨áâ஢
|
||||
.DescCalc ld de,(.Coordinate) ;⥪ã騥 ª®®à¤¨ âë
|
||||
ld hl,.Descript+1
|
||||
ld b,d ;®¬¥à áâப¨
|
||||
inc hl ;¤¥áªà¨¯â®à áâப¨
|
||||
inc hl
|
||||
djnz $-2
|
||||
ld a,(hl) ;®¬¥à ¤¥áªà¨¯â®à áâப¨
|
||||
add a,a
|
||||
ld c,a
|
||||
dec hl
|
||||
ld b,(hl)
|
||||
push bc
|
||||
ld b,0
|
||||
ld hl,.DTabl
|
||||
add hl,bc
|
||||
ld a,(hl) ; ç «® ¤¥áªà¨¯â®à
|
||||
inc hl
|
||||
ld h,(hl)
|
||||
ld l,a
|
||||
pop bc
|
||||
ret
|
||||
|
||||
.PgDown db 2,7,12,15
|
||||
.PgUp db 14,9,4,2
|
||||
|
||||
.Coordinate dw 0x0101 ;ªãàá®à (áâà/ª®« ªãàá®à )
|
||||
|
||||
.Descript:
|
||||
dw 0x010F ;¯¥à¢ ï/ª®«-¢® áâப ®ª
|
||||
|
||||
db 0x01,0 ;®¬¥à áâப¨, ®¬¥à ¤¥áªà¨¯â®à
|
||||
db 0x02,0,0x04,0
|
||||
db 0x05,0,0x06,0,0x07,1
|
||||
db 0x08,2,0x0A,0,0x0B,0
|
||||
db 0x0C,0,0x0D,1,0x0E,2
|
||||
db 0x10,3,0x12,4,0x14,5
|
||||
|
||||
.DTabl dw .D1,.D2,.D3,.D4,.D5,.D6
|
||||
|
||||
.D1 db 9 ;ª®«-¢® ª®«®®ª ¤«ï ¯ à
|
||||
db 0x04 ;N á⮫¡æ ª®«®ª¨
|
||||
db 5 ;è¨à¨ ª®«®ª¨
|
||||
db 0x0A,2,0x0C,2,0x0F,2,0x11,2
|
||||
db 0x14,1,0x15,1,0x16,1,0x17,1
|
||||
|
||||
.D2 db 10 ;ª®«-¢® ª®«®®ª ¤«ï ¯ àë AF
|
||||
db 0x04 ;N á⮫¡æ ª®«®ª¨
|
||||
db 5 ;è¨à¨ ª®«®ª¨
|
||||
db 0x0B,1,0x0C,1,0x0D,1,0x0E,1
|
||||
db 0x0F,1,0x10,1,0x11,1,0x12,1
|
||||
db 0x15,1
|
||||
|
||||
.D3 db 6 ;ª®«-¢® ª®«®®ª ¤«ï ä« £®¢
|
||||
db 0x01 ;N á⮫¡æ ª®«®ª¨
|
||||
db 1 ;è¨à¨ ª®«®ª¨
|
||||
db 0x02,1,0x04,1
|
||||
db 0x06,1,0x07,1,0x08,1
|
||||
|
||||
.D4 db 2 ;ª®«-¢® ª®«®®ª ¤«ï PC IR
|
||||
db 0x04 ;N á⮫¡æ ª®«®ª¨
|
||||
db 5 ;è¨à¨ ª®«®ª¨
|
||||
db 0x0D,5
|
||||
|
||||
.D5 db 4 ;ª®«-¢® ª®«®®ª ¤«ï ¡ ®ª
|
||||
db 0x02 ;N á⮫¡æ ª®«®ª¨
|
||||
db 3 ;è¨à¨ ª®«®ª¨
|
||||
db 0x08,3,0x0E,3,0x14,3
|
||||
|
||||
.D6 db 3 ;ª®«-¢® ª®«®®ª
|
||||
db 0x04 ;N á⮫¡æ ª®«®ª¨
|
||||
db 5 ;è¨à¨ ª®«®ª¨
|
||||
db 0x0A,4
|
||||
db 0x13,5
|
||||
|
212
KSTACK.ASM
Normal file
212
KSTACK.ASM
Normal file
@ -0,0 +1,212 @@
|
||||
;[]=========================================================================[]
|
||||
;[] Ž¡à ¡®âª ª« ¢¨ âãàë ¢ ®ª¥ ¤ ¬¯ á⥪ []
|
||||
;[] 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
|
||||
|
87
REZ.ASM
Normal file
87
REZ.ASM
Normal file
@ -0,0 +1,87 @@
|
||||
;[]=========================================================================[]
|
||||
;[] <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
|
||||
|
64
SAVESCR.ASM
Normal file
64
SAVESCR.ASM
Normal file
@ -0,0 +1,64 @@
|
||||
;[]=========================================================================[]
|
||||
;[] ‘®åà ¥¨¥ íªà ¢ ä ©« []
|
||||
;[] v0.03 - ¯®á«¥¤¨¥ ¨§¬¥¥¨ï 11.03.2006 []
|
||||
;[]=========================================================================[]
|
||||
SaveScr:
|
||||
ld bc,1*256+Dss.GetMem
|
||||
rst DssRst ;¢ë¤¥«¥¨¥ ¡ ª¨ ¯ ¬ïâ¨
|
||||
ret c ;¢ë室 á ®è¨¡ª®©
|
||||
ld (.Id),a
|
||||
ld bc,Dss.SetWin3
|
||||
rst DssRst ;¢ª«î票¥ ¡ ª¨ ¢ 3-¥ ®ª®
|
||||
ld (.Id+1),a ;§ ¬¥é ¥¬ ï áâà ¨æ
|
||||
ld de,0 ;¯®§¨æ¨ï íªà ¥
|
||||
ld hl,0xC000
|
||||
.L1 push de
|
||||
push hl
|
||||
ld c,Dss.RdChar
|
||||
rst DssRst ;áç¨â âì ᨬ¢®« á íªà
|
||||
pop hl
|
||||
pop de
|
||||
ld (hl),a
|
||||
inc hl
|
||||
inc e
|
||||
ld a,e
|
||||
cp 0x50 ;§ ª®ç¨« áì áâப ?
|
||||
jr nz,.L1
|
||||
ld bc,0x0D0A ;ª®¥æ áâப¨
|
||||
ld (hl),b
|
||||
inc hl
|
||||
ld (hl),c
|
||||
inc hl
|
||||
ld e,0 ; ç «® áâப¨
|
||||
inc d
|
||||
ld a,d
|
||||
cp 0x20 ;ª®¥æ íªà ?
|
||||
jr nz,.L1
|
||||
|
||||
ld hl,.NameF ;¨¬ï ä ©«
|
||||
xor a ; âਡãâ
|
||||
ld c,Dss.Create
|
||||
rst DssRst
|
||||
jr c,.L2 ;®è¨¡ª
|
||||
push af
|
||||
ld hl,0xC000 ; ç «® § ¯¨áë¢ ¥¬®© ¯ ¬ïâ¨
|
||||
ld de,82*32 ;à §¬¥à § ¯¨áë¢ ¥¬®© ¨äë
|
||||
ld c,Dss.Write
|
||||
rst DssRst ;§ ¯¨á âì
|
||||
pop af
|
||||
ld c,Dss.Close
|
||||
rst DssRst ;§ ªàëâì ä ©«
|
||||
|
||||
.L2 ld a,(.Id) ;id ¯ ¬ïâ¨
|
||||
ld c,Dss.FreeMem
|
||||
rst DssRst ;®á¢®¡®¤¨âì ¯ ¬ïâì
|
||||
ld a,(.Id+1)
|
||||
out (EmmWin.P3),a ;¢®áâ ®¢¨«¨ ¡ ªã
|
||||
ret
|
||||
|
||||
.NameF db "demon.$$$",0
|
||||
.Id ds 2 ;id ¢ë¤¥«¥®£® ¡«®ª
|
||||
|
||||
;11:11 18.02.2011 ‡ £«ãèª <20>¥ ¡ë«® ¨á室¨ª :(
|
||||
; include "d:\workast\demon\screen\scrdemon"
|
||||
|
431
STEP.ASM
Normal file
431
STEP.ASM
Normal file
@ -0,0 +1,431 @@
|
||||
;[]=========================================================================[]
|
||||
;[] Žâ« ¤ª ª®¬ ¤ ¯à®£à ¬¬ë []
|
||||
;[] v0.03 - ¯®á«¥¤¨¥ ¨§¬¥¥¨ï 10.03.2006 []
|
||||
;[] v0.10 - ¯®á«¥¤¨¥ ¨§¬¥¥¨ï 18.03.2006 []
|
||||
;[]=========================================================================[]
|
||||
Step:
|
||||
di
|
||||
ld a,(WinPage+2) ;¡ ª ¯®¤ demon'®¬
|
||||
ld (Rezident.Start1+1),a ;¢ १¨¤¥â ¥¥
|
||||
ld (.BankP+1),a
|
||||
ld a,(BankDebug) ;¡ ª á demon'®¬
|
||||
ld (Rezident.BankD+1),a ;¢ १¨¤¥â ¥¥
|
||||
ld (Rezident.BankD1+2),a
|
||||
ld hl,Step.Run+3 ;â®çª ¢®§¢à â ¢ ®â« ¤ç¨ª
|
||||
ld (Rezident.Return+1),hl ;¯à®¯¨áë¢ ¥¬ ¢ १¨¤¥â¥
|
||||
ld a,l
|
||||
ld (Rezident.Return1+2),a
|
||||
ld a,h
|
||||
ld (Rezident.Return1+7),a
|
||||
ld hl,(Reg._PC)
|
||||
ld (Rezident.Step+1),hl ; ¤à¥á ®â« ¦¨¢ ¥¬®© ª®¬ ¤ë
|
||||
|
||||
ld a,(Reg._AF) ;ä« £
|
||||
ld b,a
|
||||
call Ld_a_hl
|
||||
; ld a,(hl) ;ª®¤ ª®¬ ¤ë
|
||||
|
||||
ld c,a
|
||||
and 11001111b
|
||||
cp 11000101b ;PUSH
|
||||
call z,.SpdInc
|
||||
cp 11000001b ;POP
|
||||
call z,.SpdDec
|
||||
|
||||
ld a,c
|
||||
cp 0xCD ;CALL
|
||||
jr nz,.L7
|
||||
ld a,(.Flag)
|
||||
inc a
|
||||
jp nz,.L2 ;¡¥§ § 室 ¢ ¯®¤¯à®£à ¬¬ã
|
||||
jp .L8
|
||||
.L7 cp 0xC9 ;RET
|
||||
jp z,.L9
|
||||
cp 0xC3 ;JP
|
||||
jp z,.L8+3
|
||||
cp 0x18 ;JR
|
||||
jp z,.L6
|
||||
cp 0x10 ;DJNZ
|
||||
jr nz,.L18
|
||||
ld a,(.Flag)
|
||||
inc a
|
||||
jp nz,.L2 ;¡¥§ ®â« ¤ª¨ 横«
|
||||
ld a,(Reg._BC+1)
|
||||
dec a
|
||||
jr nz,.L6
|
||||
jp .L2
|
||||
.L18 inc hl ;á«¥¤ãî騩 ¡ ©â ᮬ ¤ë
|
||||
exa
|
||||
call Ld_a_hl
|
||||
ld c,a
|
||||
exa
|
||||
; ld c,(hl)
|
||||
dec hl
|
||||
cp 0xED ;¯à¥ä¨ªá ¤«ï RETI, RETN
|
||||
jr nz,.L10
|
||||
ld a,c
|
||||
cp 0x4D ;RETI
|
||||
jp z,.L9
|
||||
cp 0x45 ;RETN
|
||||
jp z,.L9
|
||||
.L10 cp 0xDD ;¯à¥ä¨ªá ¤«ï IX
|
||||
jr nz,.L25
|
||||
ld a,c
|
||||
cp 0xE5 ;PUSH IX
|
||||
call z,.SpdInc
|
||||
cp 0xE1 ;POP IX
|
||||
call z,.SpdDec
|
||||
ld de,(Reg._IX)
|
||||
jr .L24
|
||||
.L25 cp 0xFD ;¯à¥ä¨ªá ¤«ï IY
|
||||
jr nz,.L24-4
|
||||
ld a,c
|
||||
cp 0xE5 ;PUSH IY
|
||||
call z,.SpdInc
|
||||
cp 0xE1 ;POP IY
|
||||
call z,.SpdDec
|
||||
ld de,(Reg._IY)
|
||||
jr .L24
|
||||
ld de,(Reg._HL)
|
||||
.L24 cp 0xE9 ;JP (HL/IX/IY)
|
||||
jr nz,.L23
|
||||
ex de,hl
|
||||
jp .L2+3
|
||||
.L23 cp 0x38 ;JR C,
|
||||
jr nz,.L19
|
||||
bit 0,b ;ä« £ C
|
||||
jp z,.L2 ;¥â ¯¥à¥å®¤
|
||||
jr .L6 ;¯¥à¥å®¤
|
||||
.L19 cp 0x30 ;JR NC,
|
||||
jr nz,.L20
|
||||
bit 0,b ;ä« £ C
|
||||
jp nz,.L2 ;¥â ¯¥à¥å®¤
|
||||
jr .L6 ;¯¥à¥å®¤
|
||||
.L20 cp 0x28 ;JR Z,
|
||||
jr nz,.L21
|
||||
bit 6,b ;ä« £ Z
|
||||
jp z,.L2 ;¥â ¯¥à¥å®¤
|
||||
jr .L6 ;¯¥à¥å®¤
|
||||
.L21 cp 0x20 ;JR NZ,
|
||||
jr nz,.L22
|
||||
bit 6,b ;ä« £ Z
|
||||
jp nz,.L2 ;¥â ¯¥à¥å®¤
|
||||
|
||||
.L6 inc hl
|
||||
call Ld_a_hl
|
||||
; ld a,(hl) ;ᬥ饨¥
|
||||
inc hl
|
||||
ld b,0
|
||||
ld c,a
|
||||
bit 7,a ;§ ª ç¨á«
|
||||
jr z,$+11
|
||||
neg
|
||||
or a ;á¡à®á ä« £ C
|
||||
ld c,a
|
||||
sbc hl,bc ;®âà¨æ ⥫쮥 ᬥ饨¥
|
||||
jp .L2+3
|
||||
add hl,bc ;¯®«®¦¨â¥«ì®¥ ᬥ饨¥
|
||||
jp .L2+3
|
||||
|
||||
.L22 and 11000111b
|
||||
cp 11000111b ;RST x
|
||||
jr nz,.L27
|
||||
ld a,(.Flag)
|
||||
inc a
|
||||
jp nz,.L2 ;¡¥§ § 室 ¢ ¯®¤¯à®£à ¬¬ã
|
||||
call .SpdInc
|
||||
call Ld_a_hl
|
||||
; ld a,(hl) ;¡ ©â ª®¬¤ë
|
||||
and 00111000b ; ¤à¥á ¯¥à¥å®¤
|
||||
ld h,0
|
||||
ld l,a
|
||||
jp .L2+3
|
||||
.L27 cp 11000010b ;JP flag
|
||||
jr z,.L26
|
||||
cp 11000000b ;RET flag
|
||||
jr z,.L26
|
||||
cp 11000100b ;CALL flag
|
||||
jr nz,.L2
|
||||
ld a,(.Flag)
|
||||
inc a
|
||||
jr nz,.L2 ;¡¥§ § 室 ¢ ¯®¤¯à®£à ¬¬ã
|
||||
.L26 call Ld_a_hl
|
||||
; ld a,(hl) ;ª®¤ ª®¬ ¤ë
|
||||
and 00111000b ;ä« £¨
|
||||
jr z,.L11 ;JP/CALL/RET NZ,
|
||||
cp 00001000b
|
||||
jr z,.L12 ;JP/CALL/RET Z,
|
||||
cp 00010000b
|
||||
jr z,.L13 ;JP/CALL/RET NC,
|
||||
cp 00011000b
|
||||
jr z,.L14 ;JP/CALL/RET C,
|
||||
cp 00100000b
|
||||
jr z,.L15 ;JP/CALL/RET PO,
|
||||
cp 00101000b
|
||||
jr z,.L16 ;JP/CALL/RET PE,
|
||||
cp 00110000b
|
||||
jr z,.L17 ;JP/CALL/RET P,
|
||||
bit 7,b ;JP/CALL/RET M, ä« £ S
|
||||
jr z,.L2 ;¥â ¯¥à¥å®¤
|
||||
jr .L5 ;¯¥à¥å®¤
|
||||
.L11 bit 6,b ;ä« £ Z
|
||||
jr nz,.L2 ;¥â ¯¥à¥å®¤
|
||||
jr .L5 ;¯¥à¥å®¤
|
||||
.L12 bit 6,b ;ä« £ Z
|
||||
jr z,.L2 ;¥â ¯¥à¥å®¤
|
||||
jr .L5 ;¯¥à¥å®¤
|
||||
.L13 bit 0,b ;ä« £ C
|
||||
jr nz,.L2 ;¥â ¯¥à¥å®¤
|
||||
jr .L5 ;¯¥à¥å®¤
|
||||
.L14 bit 0,b ;ä« £ C
|
||||
jr z,.L2 ;¥â ¯¥à¥å®¤
|
||||
jr .L5 ;¯¥à¥å®¤
|
||||
.L15 bit 2,b ;ä« £ P/V
|
||||
jr nz,.L2 ;¥â ¯¥à¥å®¤
|
||||
jr .L5 ;¯¥à¥å®¤
|
||||
.L16 bit 2,b ;ä« £ P/V
|
||||
jr z,.L2 ;¥â ¯¥à¥å®¤
|
||||
jr .L5 ;¯¥à¥å®¤
|
||||
.L17 bit 7,b ;ä« £ S
|
||||
jr nz,.L2 ;¥â ¯¥à¥å®¤
|
||||
|
||||
.L5 call Ld_a_hl
|
||||
; ld a,(hl) ;ª®¤ ª®¬ ¤ë
|
||||
and 00000111b ;®âá«¥¤¨âì RET'ë
|
||||
jr nz,.L8-4
|
||||
.L9 call .SpdDec
|
||||
ld hl,(Reg._SP) ;á⥪
|
||||
dec hl
|
||||
jr .L8+3
|
||||
cp 00000010b ;®âá«¥¤¨âì JP
|
||||
jr z,.L8+3
|
||||
.L8 call .SpdInc
|
||||
inc hl
|
||||
call Ld_a_hl
|
||||
ld b,a
|
||||
; ld a,(hl)
|
||||
inc hl
|
||||
call Ld_a_hl
|
||||
; ld h,(hl)
|
||||
ld h,a
|
||||
ld l,b
|
||||
jr .L2+3
|
||||
.L2 call List ;á«¥¤ãîé ï ª®¬ ¤
|
||||
ld (Reg._PC),hl ;®¢ë© PC
|
||||
push hl
|
||||
push hl
|
||||
ld a,(KList.Descript) ;ª®«¨ç¥á⢮ áâப «¨á⨣
|
||||
call AdrListTabl ;¨¦¨© ¤à¥á «¨á⨣
|
||||
ld de,(ListAdr) ;¢¥à娩 ¤à¥á «¨á⨣
|
||||
pop bc ;®¢ë© PC
|
||||
call AdrArea
|
||||
jr nc,.L1+4
|
||||
|
||||
.L1 ld (ListAdr),bc ;®¢ ï áâà ¨æ «¨á⨣
|
||||
pop hl
|
||||
|
||||
call Ld_a_hl ;á«¥¤ãî騥 § ª®¬ ¤®© ¡ ©âë
|
||||
ld c,a
|
||||
inc hl
|
||||
call Ld_a_hl
|
||||
ld b,a
|
||||
inc hl
|
||||
call Ld_a_hl
|
||||
push bc
|
||||
push af
|
||||
push hl
|
||||
|
||||
push hl
|
||||
ld hl,(RezAdr) ; ¤à¥á ¯®á ¤ª¨ १¨¤¥â
|
||||
ld a,h
|
||||
and 11000000b
|
||||
cp 10000000b ;®ª® ¯®á ¤ª¨ १¨¤¥â
|
||||
ld a,0xFF ;FF - १¨¤¥â ¢® 2-¬ ®ª¥
|
||||
jr nz,.L30
|
||||
ld de,Rezident.RetIn-Rezident
|
||||
jr .L30+4
|
||||
.L30 ld de,Rezident.RetIn1-Rezident
|
||||
inc a ;0 - १¨¤¥â ¥ ¢® 2-¬ ®ª¥
|
||||
ld (.WRez),a
|
||||
add hl,de ; ¤à¥á ¢®§¢à â ¢ १¨¤¥â
|
||||
ex de,hl
|
||||
pop hl
|
||||
ld a,d ;¯à®¯¨áë¢ ¥¬ ¯®á«¥
|
||||
call Ld_hl_a ;®â« ¦¨¢ ¥¬®© ª®¬ ¤ë
|
||||
dec hl
|
||||
ld a,e
|
||||
call Ld_hl_a
|
||||
dec hl
|
||||
ld a,0xC3 ;JP
|
||||
call Ld_hl_a
|
||||
|
||||
ld hl,(RezAdr) ; ¤à¥á ¯®á ¤ª¨
|
||||
push hl ;ª®à४æ¨ï ¤à¥á®¢ ª®¤ १¨¤¥â
|
||||
ld (Rezident.K1+1),hl ;®¬¥à ¡ ª¨ ¯®¤ ®â« ¤ç¨ª®¬
|
||||
ld (Rezident.K6+1),hl
|
||||
inc hl
|
||||
ld (Rezident.K3+1),hl ; ªªã¬ã«ïâ®à ¯à£à ¬¬ë
|
||||
ld (Rezident.RetIn+1),hl
|
||||
ld (Rezident.RetIn1+1),hl
|
||||
inc hl
|
||||
ld (Rezident.K2+1),hl ;¯ à HL ¯à®£à ¬¬ë
|
||||
ld (Rezident.K4+1),hl
|
||||
inc hl
|
||||
inc hl
|
||||
ld (Rezident.K5+1),hl ;1 ¨ 2 ¡ ©âë ¡ãä¥à
|
||||
inc hl
|
||||
inc hl
|
||||
ld (Rezident.K5+7),hl ;3 ¨ 4 ¡ ©âë ¡ãä¥à
|
||||
inc hl
|
||||
inc hl
|
||||
ld (Rezident.K5+13),hl ;5 ¨ 6 ¡ ©âë ¡ãä¥à
|
||||
inc hl
|
||||
inc hl
|
||||
ld (Rezident.K5+19),hl ;7 ¡ ©â ¡ãä¥à
|
||||
|
||||
ld a,(.WRez) ;ä« £ ¯®á ¤ª¨ १¨¤¥â
|
||||
or a
|
||||
jr nz,.L31
|
||||
ld de,Rezident.Start1-Rezident
|
||||
ld hl,(RezAdr) ; ¤à¥á ¯®á ¤ª¨
|
||||
add hl,de ;áâ àâ १¨¤¥â ¥ ¢® 2-¬ ®ª¥
|
||||
jr .L32
|
||||
|
||||
.L31 inc hl ;áâ àâ १¨¤¥â ¢® 2-¬ ®ª¥
|
||||
ld (.Run1+1),hl
|
||||
|
||||
ld hl,AdrTmpBuf
|
||||
ld de,Rezident.Start+1 ;á®åà ¥¨¥ 7 ¡ ©â ¢ १¨¤¥â¥
|
||||
ld b,3
|
||||
.L33 ld a,(hl)
|
||||
ld (de),a
|
||||
inc hl
|
||||
inc de
|
||||
ld a,(hl)
|
||||
ld (de),a
|
||||
inc hl
|
||||
inc de
|
||||
inc de
|
||||
inc de
|
||||
inc de
|
||||
inc de
|
||||
djnz .L33
|
||||
ld a,(hl)
|
||||
ld (de),a
|
||||
|
||||
ld de,.Run1+2 ;¢á¯®¬®£ ⥫ì ï ¯à®æ¥¤ãà
|
||||
ld b,7 ;¤«¨
|
||||
.L34 ld a,(de)
|
||||
ld (hl),a
|
||||
dec hl
|
||||
dec de
|
||||
djnz .L34
|
||||
inc hl
|
||||
|
||||
.L32 ld (.Run+1),hl
|
||||
|
||||
ld a,(Reg._AF+1) ; ªªã¬ã«ïâ®à ¯à®£à ¬¬ë
|
||||
ld (Rezident+1),a ;¢ १¨¤¥â
|
||||
ld hl,(Reg._HL) ;¯ à HL
|
||||
ld (Rezident+2),hl ;¢ १¨¤¥â
|
||||
|
||||
pop hl ; ¤à¥á ¯®á ¤ª¨ १¨¤¥â
|
||||
ld de,Rezident ; ç «® १¨¤¥â
|
||||
ld bc,.Buffer
|
||||
ld a,Rezident.End-Rezident ;¤«¨ १¨¤¥â
|
||||
.L3 push af
|
||||
call Ld_a_hl
|
||||
ld (bc),a ;á®åà ¥¨¥ ¯ ¬ï⨠¯®¤ १¨¤¥â®¬
|
||||
ld a,(de) ;ª®¯¨à®¢ ¨¥ १¨¤¥â
|
||||
call Ld_hl_a
|
||||
inc bc
|
||||
inc de
|
||||
inc hl
|
||||
pop af
|
||||
dec a
|
||||
jr nz,.L3
|
||||
|
||||
ld a,(WinPage) ;¡ ª ¢ 0-®¬ ®ª¥
|
||||
out (EmmWin.P0),a
|
||||
|
||||
call RestAllRegs
|
||||
ld (StackDebug),sp ;á⥪ ®â« ¤ç¨ª
|
||||
ld sp,(Reg._SP) ;á⥪ ¯à®£à ¬¬ë
|
||||
.Run jp 0 ;¯ã᪠१¨¤¥â
|
||||
|
||||
ld (Reg._SP),sp ;á⥪ ¯à®£à ¬¬ë
|
||||
ld sp,(StackDebug) ;á⥪ ®â« ¤ç¨ª
|
||||
call SaveAllRegs
|
||||
in a,(EmmWin.P0)
|
||||
ld (WinPage),a ;¡ ª ¢ 0-®¬ ®ª¥
|
||||
ld a,(BankOS) ;¡ ª á OS
|
||||
out (EmmWin.P0),a
|
||||
|
||||
ld hl,(RezAdr)
|
||||
call Ld_a_hl
|
||||
ld (WinPage+2),a ;®¬¥à ¡ ª¨ ¢® 2-®¬ ®ª¥
|
||||
inc hl ; ªªã¬ã«ïâ®à ¯à®£à ¬¬
|
||||
call Ld_a_hl
|
||||
ld (Reg._AF+1),a
|
||||
ld a,(.WRez) ;ä« £ १¨¤¥â
|
||||
or a
|
||||
jr z,.L35 ;¥ ¢® 2-¬ ®ª¥
|
||||
inc hl ;ॣ¨áâà L ¯à®£à ¬¬ë
|
||||
call Ld_a_hl
|
||||
ld (Reg._HL),a
|
||||
inc hl ;ॣ¨áâà H ¯à®£à ¬¬ë
|
||||
call Ld_a_hl
|
||||
ld (Reg._HL+1),a
|
||||
ld b,7
|
||||
ld de,AdrTmpBuf
|
||||
.L36 inc hl ;¡ãä¥à 7-¬¨ ¡ ©â
|
||||
call Ld_a_hl
|
||||
ld (de),a ;¢®áâ ®¢¨«¨
|
||||
inc de
|
||||
djnz .L36
|
||||
|
||||
.L35 pop hl
|
||||
pop af ;¢®áâ ®¢¨«¨ ª®¤ ª®¬ ¤ë
|
||||
pop bc
|
||||
call Ld_hl_a
|
||||
dec hl
|
||||
ld a,b
|
||||
call Ld_hl_a
|
||||
dec hl
|
||||
ld a,c
|
||||
call Ld_hl_a
|
||||
|
||||
ld de,.Buffer ;¢®ááâ ®¢«¥¨¥ ¯ ¬ï⨠¯®¤ १¨¤¥â®¬
|
||||
ld hl,(RezAdr) ; ¤à¥á ¯®á ¤ª¨
|
||||
ld b,Rezident.End-Rezident ;¤«¨ १¨¤¥â
|
||||
.L4 ld a,(de)
|
||||
call Ld_hl_a
|
||||
inc de
|
||||
inc hl
|
||||
djnz .L4
|
||||
ei
|
||||
ret
|
||||
|
||||
.BankP ld a,0xFF ;(2) ¡ ª ¯®¤ ®â« ¤ç¨ª®¬
|
||||
out (EmmWin.P2),a ;(2)
|
||||
.Run1 jp 0 ;(3) ¯¥à¥å®¤ ¢ १¨¤¥â
|
||||
|
||||
.SpdInc push af ;㢥«¨ç¥¨¥ £«ã¡¨ë á⥪
|
||||
ld a,(StackDown)
|
||||
inc a
|
||||
ld (StackDown),a
|
||||
pop af
|
||||
ret
|
||||
|
||||
.SpdDec push af ;㬥ì襨¥ £«ã¡¨ë á⥪
|
||||
ld a,(StackDown)
|
||||
dec a
|
||||
ld (StackDown),a
|
||||
pop af
|
||||
ret
|
||||
|
||||
.Flag db On ;ä« £ § 室 ¢ ¯®¤¯à®£à ¬¬ë
|
||||
.WRez db 0 ;ä« £ ®ª ¯®á ¤ª¨ १¨¤¥â
|
||||
|
||||
.Buffer ds Rezident.End-Rezident ;¤«¨ १¨¤¥â
|
||||
|
362
TABL.ASM
Normal file
362
TABL.ASM
Normal file
@ -0,0 +1,362 @@
|
||||
;[]=========================================================================[]
|
||||
;[] ’ ¡«¨æë ¤¨§ áᥬ¡«¥à ¬®¨â®à -®â« ¤ç¨ª DemoN []
|
||||
;[] v0.01 - ¯®á«¥¤¨¥ ¨§¬¥¥¨ï 10.10.2004 []
|
||||
;[] v0.02 - ¯®á«¥¤¨¥ ¨§¬¥¥¨ï 29.11.2004 []
|
||||
;[] v0.03 - ¯®á«¥¤¨¥ ¨§¬¥¥¨ï 29.01.2006 []
|
||||
;[]=========================================================================[]
|
||||
Tabl00_3F:
|
||||
dw M00,M01,M02,M03,M04,M05,M06,M07,M08,M09,M0A,M0B,M0C,M0D,M0E,M0F
|
||||
dw M10,M11,M12,M13,M14,M15,M16,M17,M18,M19,M1A,M1B,M1C,M1D,M1E,M1F
|
||||
dw M20,M21,M22,M23,M24,M25,M26,M27,M28,M29,M2A,M2B,M2C,M2D,M2E,M2F
|
||||
dw M30,M31,M32,M33,M34,M35,M36,M37,M38,M39,M3A,M3B,M3C,M3D,M3E,M3F
|
||||
|
||||
M00 db "NOP",0
|
||||
M01 db "LD BC,",2
|
||||
M02 db "LD (BC),A",0
|
||||
M03 db "INC BC",0
|
||||
M04 db "INC B",0
|
||||
M05 db "DEC B",0
|
||||
M06 db "LD B,",1
|
||||
M07 db "RLCA",0
|
||||
M08 db "EX AF,AF'",0
|
||||
M09 db "ADD HL,BC",0
|
||||
M0A db "LD A,(BC)",0
|
||||
M0B db "DEC BC",0
|
||||
M0C db "INC C",0
|
||||
M0D db "DEC C",0
|
||||
M0E db "LD C,",1
|
||||
M0F db "RRCA",0
|
||||
M10 db "DJNZ ",3
|
||||
M11 db "LD DE,",2
|
||||
M12 db "LD (DE),A",0
|
||||
M13 db "INC DE",0
|
||||
M14 db "INC D",0
|
||||
M15 db "DEC D",0
|
||||
M16 db "LD D,",1
|
||||
M17 db "RLA",0
|
||||
M18 db "JR ",3
|
||||
M19 db "ADD HL,DE",0
|
||||
M1A db "LD A,(DE)",0
|
||||
M1B db "DEC DE",0
|
||||
M1C db "INC E",0
|
||||
M1D db "DEC E",0
|
||||
M1E db "LD E,",1
|
||||
M1F db "RRA",0
|
||||
M20 db "JR NZ,",3
|
||||
M21 db "LD HL,",2
|
||||
M22 db "LD (),HL",5
|
||||
M23 db "INC HL",0
|
||||
M24 db "INC H",0
|
||||
M25 db "DEC H",0
|
||||
M26 db "LD H,",1
|
||||
M27 db "DAA",0
|
||||
M28 db "JR Z,",3
|
||||
M29 db "ADD HL,HL",0
|
||||
M2A db "LD HL,()",5
|
||||
M2B db "DEC HL",0
|
||||
M2C db "INC L",0
|
||||
M2D db "DEC L",0
|
||||
M2E db "LD L,",1
|
||||
M2F db "CPL",0
|
||||
M30 db "JR NC,",3
|
||||
M31 db "LD SP,",2
|
||||
M32 db "LD (),A",5
|
||||
M33 db "INC SP",0
|
||||
M34 db "INC (HL)",0
|
||||
M35 db "DEC (HL)",0
|
||||
M36 db "LD (HL),",1
|
||||
M37 db "SCF",0
|
||||
M38 db "JR C,",3
|
||||
M39 db "ADD HL,SP",0
|
||||
M3A db "LD A,()",5
|
||||
M3B db "DEC SP",0
|
||||
M3C db "INC A",0
|
||||
M3D db "DEC A",0
|
||||
M3E db "LD A,",1
|
||||
M3F db "CCF",0
|
||||
|
||||
TablC0_FF:
|
||||
dw MC0,MC1,MC2,MC3,MC4,MC5,MC6,MC7,MC8,MC9,MCA,M00,MCC,MCD,MCE,MCF
|
||||
dw MD0,MD1,MD2,MD3,MD4,MD5,MD6,MD7,MD8,MD9,MDA,MDB,MDC,MDD,MDE,MDF
|
||||
dw ME0,ME1,ME2,ME3,ME4,ME5,ME6,ME7,ME8,ME9,MEA,MEB,MEC,M00,MEE,MEF
|
||||
dw MF0,MF1,MF2,MF3,MF4,MF5,MF6,MF7,MF8,MF9,MFA,MFB,MFC,MFD,MFE,MFF
|
||||
|
||||
MC0 db "RET NZ",0
|
||||
MC1 db "POP BC",0
|
||||
MC2 db "JP NZ,",2
|
||||
MC3 db "JP ",2
|
||||
MC4 db "CALL NZ,",2
|
||||
MC5 db "PUSH BC",0
|
||||
MC6 db "ADD A,",1
|
||||
MC7 db "RST 0",0
|
||||
MC8 db "RET Z",0
|
||||
MC9 db "RET",0
|
||||
MCA db "JP Z,",2
|
||||
MCC db "CALL Z,",2
|
||||
MCD db "CALL ",2
|
||||
MCE db "ADC A,",1
|
||||
MCF db "RST 8",0
|
||||
MD0 db "RET NC",0
|
||||
MD1 db "POP DE",0
|
||||
MD2 db "JP NC,",2
|
||||
MD3 db "OUT (),A",4
|
||||
MD4 db "CALL NC,",2
|
||||
MD5 db "PUSH DE",0
|
||||
MD6 db "SUB ",1
|
||||
MD7 db "RST #10",0
|
||||
MD8 db "RET C",0
|
||||
MD9 db "EXX",0
|
||||
MDA db "JP C,",2
|
||||
MDB db "IN A,()",4
|
||||
MDC db "CALL C,",2
|
||||
MDD db "DD",0
|
||||
MDE db "SBC A,",1
|
||||
MDF db "RST #18",0
|
||||
ME0 db "RET PO",0
|
||||
ME1 db "POP HL",0
|
||||
ME2 db "JP PO,",2
|
||||
ME3 db "EX (SP),HL",0
|
||||
ME4 db "CALL PO,",2
|
||||
ME5 db "PUSH HL",0
|
||||
ME6 db "AND ",1
|
||||
ME7 db "RST #20",0
|
||||
ME8 db "RET PE",0
|
||||
ME9 db "JP (HL)",0
|
||||
MEA db "JP PE,",2
|
||||
MEB db "EX DE,HL",0
|
||||
MEC db "CALL PE,",2
|
||||
MEE db "XOR ",1
|
||||
MEF db "RST #28",0
|
||||
MF0 db "RET P",0
|
||||
MF1 db "POP AF",0
|
||||
MF2 db "JP P,",2
|
||||
MF3 db "DI",0
|
||||
MF4 db "CALL P,",2
|
||||
MF5 db "PUSH AF",0
|
||||
MF6 db "OR ",1
|
||||
MF7 db "RST #30",0
|
||||
MF8 db "RET M",0
|
||||
MF9 db "LD SP,HL",0
|
||||
MFA db "JP M,",2
|
||||
MFB db "EI",0
|
||||
MFC db "CALL M,",2
|
||||
MFD db "FD",0
|
||||
MFE db "CP ",1
|
||||
MFF db "RST #38",0
|
||||
|
||||
MHALT db "HALT",0
|
||||
|
||||
TablM:
|
||||
dw M80,M88,M90,M98,MA0,MA8,MB0,MB8
|
||||
|
||||
M80 db "ADD A,",0
|
||||
M88 db "ADC A,",0
|
||||
M90 db "SUB ",0
|
||||
M98 db "SBC A,",0
|
||||
MA0 db "AND ",0
|
||||
MA8 db "XOR ",0
|
||||
MB0 db "OR ",0
|
||||
MB8 db "CP ",0
|
||||
|
||||
CodeDDFD:
|
||||
db 0x09,0x19,0x21,0x22,0x23,0x24,0x25,0x26,0x29
|
||||
db 0x2A,0x2B,0x2C,0x2D,0x2E,0x34,0x35,0x36,0x39
|
||||
db 0x44,0x45,0x46,0x4C,0x4D,0x4E,0x54,0x55,0x56
|
||||
db 0x5C,0x5D,0x5E,0x60,0x61,0x62,0x63,0x64,0x65
|
||||
db 0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E
|
||||
db 0x6F,0x70,0x71,0x72,0x73,0x74,0x75,0x77,0x7C
|
||||
db 0x7D,0x7E,0x84,0x85,0x86,0x8C,0x8D,0x8E,0x94
|
||||
db 0x95,0x96,0x9C,0x9D,0x9E,0xA4,0xA5,0xA6,0xAC
|
||||
db 0xAD,0xAE,0xB4,0xB5,0xB6,0xBC,0xBD,0xBE,0xE1
|
||||
db 0xE3,0xE5,0xE9,0xF9
|
||||
|
||||
TablDDFD:
|
||||
dw DD09,DD19,DD21,DD22,DD23,DD24,DD25,DD26,DD29
|
||||
dw DD2A,DD2B,DD2C,DD2D,DD2E,DD34,DD35,DD36,DD39
|
||||
dw DD44,DD45,DD46,DD4C,DD4D,DD4E,DD54,DD55,DD56
|
||||
dw DD5C,DD5D,DD5E,DD60,DD61,DD62,DD63,DD64,DD65
|
||||
dw DD66,DD67,DD68,DD69,DD6A,DD6B,DD6C,DD6D,DD6E
|
||||
dw DD6F,DD70,DD71,DD72,DD73,DD74,DD75,DD77,DD7C
|
||||
dw DD7D,DD7E,DD84,DD85,DD86,DD8C,DD8D,DD8E,DD94
|
||||
dw DD95,DD96,DD9C,DD9D,DD9E,DDA4,DDA5,DDA6,DDAC
|
||||
dw DDAD,DDAE,DDB4,DDB5,DDB6,DDBC,DDBD,DDBE,DDE1
|
||||
dw DDE3,DDE5,DDE9,DDF9
|
||||
|
||||
DD09 db "ADD Ix,BC",0
|
||||
DD19 db "ADD Ix,DE",0
|
||||
DD21 db "LD Ix,",2
|
||||
DD22 db "LD (),Ix",5
|
||||
DD23 db "INC Ix",0
|
||||
DD24 db "INC Hx",0
|
||||
DD25 db "DEC Hx",0
|
||||
DD26 db "LD Hx,",1
|
||||
DD29 db "ADD Ix,Ix",0
|
||||
DD2A db "LD Ix,()",5
|
||||
DD2B db "DEC Ix",0
|
||||
DD2C db "INC Lx",0
|
||||
DD2D db "DEC Lx",0
|
||||
DD2E db "LD Lx,",1
|
||||
DD34 db "INC )",6
|
||||
DD35 db "DEC )",6
|
||||
DD36 db "LD ),",6
|
||||
DD39 db "ADD Ix,SP",0
|
||||
DD44 db "LD B,Hx",0
|
||||
DD45 db "LD B,Lx",0
|
||||
DD46 db "LD B,)",6
|
||||
DD4C db "LD C,Hx",0
|
||||
DD4D db "LD C,Lx",0
|
||||
DD4E db "LD C,)",6
|
||||
DD54 db "LD D,Hx",0
|
||||
DD55 db "LD D,Lx",0
|
||||
DD56 db "LD D,)",6
|
||||
DD5C db "LD E,Hx",0
|
||||
DD5D db "LD E,Lx",0
|
||||
DD5E db "LD E,)",6
|
||||
DD60 db "LD Hx,B",0
|
||||
DD61 db "LD Hx,C",0
|
||||
DD62 db "LD Hx,D",0
|
||||
DD63 db "LD Hx,E",0
|
||||
DD64 db "LD Hx,Hx",0
|
||||
DD65 db "LD Hx,Lx",0
|
||||
DD66 db "LD H,)",6
|
||||
DD67 db "LD Lx,A",0
|
||||
DD68 db "LD Lx,B",0
|
||||
DD69 db "LD Lx,C",0
|
||||
DD6A db "LD Lx,D",0
|
||||
DD6B db "LD Lx,E",0
|
||||
DD6C db "LD Lx,Hx",0
|
||||
DD6D db "LD Lx,Lx",0
|
||||
DD6E db "LD L,)",6
|
||||
DD6F db "LD Lx,A",0
|
||||
DD70 db "LD ),B",6
|
||||
DD71 db "LD ),C",6
|
||||
DD72 db "LD ),D",6
|
||||
DD73 db "LD ),E",6
|
||||
DD74 db "LD ),H",6
|
||||
DD75 db "LD ),L",6
|
||||
DD77 db "LD ),A",6
|
||||
DD7C db "LD A,Hx",0
|
||||
DD7D db "LD A,Lx",0
|
||||
DD7E db "LD A,)",6
|
||||
DD84 db "ADD A,Hx",0
|
||||
DD85 db "ADD A,Lx",0
|
||||
DD86 db "ADD A,)",6
|
||||
DD8C db "ADC E,Hx",0
|
||||
DD8D db "ADC E,Lx",0
|
||||
DD8E db "ADC E,)",6
|
||||
DD94 db "SUB Hx",0
|
||||
DD95 db "SUB Lx",0
|
||||
DD96 db "SUB )",6
|
||||
DD9C db "SBC A,Hx",0
|
||||
DD9D db "SBC A,Lx",0
|
||||
DD9E db "SBC A,)",6
|
||||
DDA4 db "AND Hx",0
|
||||
DDA5 db "AND Lx",0
|
||||
DDA6 db "AND )",6
|
||||
DDAC db "XOR Hx",0
|
||||
DDAD db "XOR Lx",0
|
||||
DDAE db "XOR )",6
|
||||
DDB4 db "OR Hx",0
|
||||
DDB5 db "OR Lx",0
|
||||
DDB6 db "OR )",6
|
||||
DDBC db "CP Hx",0
|
||||
DDBD db "CP Lx",0
|
||||
DDBE db "CP )",6
|
||||
DDE1 db "POP Ix",0
|
||||
DDE3 db "EX (SP),Ix",0
|
||||
DDE5 db "PUSH Ix",0
|
||||
DDE9 db "JP (Ix)",0
|
||||
DDF9 db "LD SP,Ix",0
|
||||
|
||||
TablCB:
|
||||
dw CB00,CB08,CB10,CB18,CB20,CB28,CB30,CB38
|
||||
|
||||
CB00 db "RLC "
|
||||
CB08 db "RRC "
|
||||
CB10 db "RL "
|
||||
CB18 db "RR "
|
||||
CB20 db "SLA "
|
||||
CB28 db "SRA "
|
||||
CB30 db "SLI "
|
||||
CB38 db "SRL "
|
||||
CB40 db "BIT "
|
||||
CB80 db "RES "
|
||||
CBC0 db "SET "
|
||||
|
||||
TablED:
|
||||
dw ED40,ED41,ED42,ED43,ED44,ED45,ED46,ED47
|
||||
dw ED48,ED49,ED4A,ED4B,ED44,ED4D,ED4E,ED4F
|
||||
dw ED50,ED51,ED52,ED53,ED44,ED45,ED56,ED57
|
||||
dw ED58,ED59,ED5A,ED5B,ED44,ED4D,ED5E,ED5F
|
||||
dw ED60,ED61,ED62,ED63,ED44,ED45,ED46,ED67
|
||||
dw ED68,ED69,ED6A,ED6B,ED44,ED4D,ED4E,ED6F
|
||||
dw ED70,ED71,ED72,ED73,ED44,ED45,ED56,ED00
|
||||
dw ED78,ED79,ED7A,ED7B,ED44,ED4D,ED5E
|
||||
dw EDA0,EDA1,EDA2,EDA3,ED00,ED00,ED00,ED00
|
||||
dw EDA8,EDA9,EDAA,EDAB,ED00,ED00,ED00,ED00
|
||||
dw EDB0,EDB1,EDB2,EDB3,ED00,ED00,ED00,ED00
|
||||
dw EDB8,EDB9,EDBA,EDBB
|
||||
|
||||
ED00 db "NOP *",0
|
||||
ED40 db "IN B,(C)",0
|
||||
ED41 db "OUT (C),B",0
|
||||
ED42 db "SBC HL,BC",0
|
||||
ED43 db "LD (),BC",5
|
||||
ED44 db "NEG",0
|
||||
ED45 db "RETN",0
|
||||
ED46 db "IM 0",0
|
||||
ED47 db "LD I,A",0
|
||||
ED48 db "IN C,(C)",0
|
||||
ED49 db "OUT (C),C",0
|
||||
ED4A db "ADC HL,BC",0
|
||||
ED4B db "LD BC,()",5
|
||||
ED4D db "RETI",0
|
||||
ED4E db "IM 0 *",0
|
||||
ED4F db "LD R,A",0
|
||||
ED50 db "IN D,(C)",0
|
||||
ED51 db "OUT (C),D",0
|
||||
ED52 db "SBC HL,DE",0
|
||||
ED53 db "LD (),DE",5
|
||||
ED56 db "IM 1",0
|
||||
ED57 db "LD A,I",0
|
||||
ED58 db "IN E,(C)",0
|
||||
ED59 db "OUT (C),E",0
|
||||
ED5A db "ADC HL,DE",0
|
||||
ED5B db "LD DE,()",5
|
||||
ED5E db "IM 2",0
|
||||
ED5F db "LD A,R",0
|
||||
ED60 db "IN H,(C)",0
|
||||
ED61 db "OUT (C),H",0
|
||||
ED62 db "SBC HL,HL",0
|
||||
ED63 db "LD (),HL",5
|
||||
ED67 db "RRD",0
|
||||
ED68 db "IN L,(C)",0
|
||||
ED69 db "OUT (C),L",0
|
||||
ED6A db "ADC HL,HL",0
|
||||
ED6B db "LD HL,()",5
|
||||
ED6F db "RLD",0
|
||||
ED70 db "IN F,(C)",0
|
||||
ED71 db "OUT (C),*",0
|
||||
ED72 db "SBC HL,SP",0
|
||||
ED73 db "LD (),SP",5
|
||||
ED78 db "IN A,(C)",0
|
||||
ED79 db "OUT (C),A",0
|
||||
ED7A db "ADC HL,SP",0
|
||||
ED7B db "LD SP,()",5
|
||||
EDA0 db "LDI",0
|
||||
EDA1 db "CPI",0
|
||||
EDA2 db "INI",0
|
||||
EDA3 db "OUTI",0
|
||||
EDA8 db "LDD",0
|
||||
EDA9 db "CPD",0
|
||||
EDAA db "IND",0
|
||||
EDAB db "OUTD",0
|
||||
EDB0 db "LDIR",0
|
||||
EDB1 db "CPIR",0
|
||||
EDB2 db "INIR",0
|
||||
EDB3 db "OTIR",0
|
||||
EDB8 db "LDDR",0
|
||||
EDB9 db "CPDR",0
|
||||
EDBA db "INDR",0
|
||||
EDBB db "OTDR",0
|
||||
|
923
UTIL.ASM
Normal file
923
UTIL.ASM
Normal file
@ -0,0 +1,923 @@
|
||||
;[]=========================================================================[]
|
||||
;[] <20>®¤¯à®£à ¬¬ë-ã⨫¨âë ¬®¨â®à -®â« ¤ç¨ª DemoN []
|
||||
;[] v0.01 - ¯®á«¥¤¨¥ ¨§¬¥¥¨ï 29.08.2004 []
|
||||
;[] v0.02 - ¯®á«¥¤¨¥ ¨§¬¥¥¨ï 20.03.2005 []
|
||||
;[] v0.03 - ¯®á«¥¤¨¥ ¨§¬¥¥¨ï 25.02.2006 []
|
||||
;[] v0.10 - ¯®á«¥¤¨¥ ¨§¬¥¥¨ï 17.05.2006 []
|
||||
;[] []
|
||||
;[] SaveAllRegs - á®åà ¥¨¥ § 票© ॣ¨áâ஢ëå ¯ à []
|
||||
;[] RestAllRegs - ¢®áâ ®¢«¥¨¥ § 票© ॣ¨áâ஢ëå ¯ à []
|
||||
;[] PrnStrColor - ¯¥ç âì áâப¨ ᨬ¢®«®¢ á âਡãâ ¬¨ []
|
||||
;[] PrintReg - ¯¥ç âì ¤¢ãå¡ ©â®¢®£® ç¨á« []
|
||||
;[] PrintStrAF - ¯¥ç âì § 票ï ॣ¨áâ஢®© ¯ àë AF ¨ ä« £®¢ []
|
||||
;[] PrintStrReg - ¯¥ç âì § 票© ॣ¨áâ஢ëå ¯ à á ¤à¥á㥬묨 ¡ ©â ¬¨ []
|
||||
;[] PrintStrWin - ¯¥ç âì ®¬¥à®¢ ¡ ®ª ¢ ®ª å []
|
||||
;[] PrintSPDn - ¯¥ç âì £«ã¡¨ë á⥪ []
|
||||
;[] PrintStrSp - ¯¥ç âì § 票© á⥪ []
|
||||
;[] PrintDump - ¯¥ç âì ¤ ¬¯ []
|
||||
;[] PrintStrDump - ¯¥ç âì áâப¨ ¤ ¬¯ []
|
||||
;[] ReplSymNoPrint - § ¬¥ ¥¯¥ç âëå ᨬ¢®«®¢ ¢ áâப¥ []
|
||||
;[] NumToStr16 - ä®à¬¨à®¢ ¨¥ 16-â¨à¨ç®£® ç¨á« []
|
||||
;[] NumToStr8 - ä®à¬¨à®¢ ¨¥ 8-à¨ç®£® ç¨á« []
|
||||
;[] ConvHexStr - ª®¢¥àâ¨à®¢ ¨¥ ç¨á« ¢ HEX-áâபã []
|
||||
;[] ConvDecStr - ª®¢¥àâ¨à®¢ ¨¥ 16-¡¨â®£® ç¨á« ¢ DEC-áâபã []
|
||||
;[] CursorSet - ¯à®à¨á®¢ª ªãàá®à []
|
||||
;[] CursorRes - ¢®áâ ®¢«¥¨¥ íªà ¯®¤ ªãàá®à®¬ []
|
||||
;[] Ld_a_bc - ç⥨¥ ¡ ©â ¨§ ¯ ¬ïâ¨ á ¯à®¢¥àª®© ¤à¥á , ¤à¥á ¢ BC []
|
||||
;[] Ld_a_hl - ç⥨¥ ¡ ©â ¨§ ¯ ¬ïâ¨ á ¯à®¢¥àª®© ¤à¥á , ¤à¥á ¢ HL []
|
||||
;[] Ld_hl_a - § ¯¨áì ¡ ©â ¢ ¯ ¬ïâì á ¯à®¢¥àª®© ¤à¥á , ¤à¥á ¢ HL []
|
||||
;[] AdrArea - ®¯à¥¤¥«¥¨¥ ¯à¨ ¤«¥¦®á⨠¤à¥á ®¡« á⨠¯ ¬ï⨠[]
|
||||
;[]=========================================================================[]
|
||||
|
||||
;[]=========================================================================[]
|
||||
;[] ‘®åà ¥¨¥ § 票© ॣ¨áâ஢ëå ¯ à []
|
||||
;[]=========================================================================[]
|
||||
SaveAllRegs:
|
||||
ld (Reg._HL),hl
|
||||
ld (Reg._DE),de
|
||||
ld (Reg._BC),bc
|
||||
|
||||
ld (Reg._IX),ix
|
||||
ld (Reg._IY),iy
|
||||
push af
|
||||
pop hl
|
||||
ld (Reg._AF),hl
|
||||
ld a,r
|
||||
ld (Reg._IR),a
|
||||
ld a,i
|
||||
ld (Reg._IR+1),a
|
||||
|
||||
exx
|
||||
ex af,af'
|
||||
|
||||
ld (Reg._HL_),hl
|
||||
ld (Reg._DE_),de
|
||||
ld (Reg._BC_),bc
|
||||
push af
|
||||
pop hl
|
||||
ld (Reg._AF_),hl
|
||||
ex af,af'
|
||||
exx
|
||||
|
||||
ld hl,WinPage ;á®åà ¥¨¥ ®¬¥à®¢ áâà ¨æ
|
||||
in a,(EmmWin.P0) ;0-¥ ®ª®
|
||||
ld (hl),a
|
||||
inc hl
|
||||
in a,(EmmWin.P1) ;1-¥ ®ª®
|
||||
ld (hl),a
|
||||
inc hl
|
||||
in a,(EmmWin.P2) ;2-¥ ®ª®
|
||||
ld (hl),a
|
||||
inc hl
|
||||
in a,(EmmWin.P3) ;3-¥ ®ª®
|
||||
ld (hl),a
|
||||
ret
|
||||
|
||||
;[]=========================================================================[]
|
||||
;[] ‚®áâ ®¢«¥¨¥ § 票© ॣ¨áâ஢ëå ¯ à []
|
||||
;[]=========================================================================[]
|
||||
RestAllRegs:
|
||||
ld a,(Reg._IR)
|
||||
ld r,a
|
||||
ld a,(Reg._IR+1)
|
||||
ld i,a
|
||||
ld hl,(Reg._AF)
|
||||
push hl
|
||||
pop af
|
||||
ld hl,(Reg._HL)
|
||||
ld de,(Reg._DE)
|
||||
ld bc,(Reg._BC)
|
||||
ld ix,(Reg._IX)
|
||||
ld iy,(Reg._IY)
|
||||
|
||||
exx
|
||||
ex af,af'
|
||||
ld hl,(Reg._AF_)
|
||||
push hl
|
||||
pop af
|
||||
ld hl,(Reg._HL_)
|
||||
ld de,(Reg._DE_)
|
||||
ld bc,(Reg._BC_)
|
||||
ex af,af'
|
||||
exx
|
||||
|
||||
ret
|
||||
|
||||
;[]=========================================================================[]
|
||||
;[] <20>¥ç âì áâப¨ ᨬ¢®«®¢ []
|
||||
;[] ‚室: HL - ¤à¥á áâப¨ ᨬ¢®«®¢ []
|
||||
;[] []
|
||||
;[] ”®à¬ â áâப¨: 0x16, ‘⮫¡¥æ, ‘âப , ‘¨¬¢®«ë, 0x00 []
|
||||
;[]=========================================================================[]
|
||||
ld a,(Color.Screen) ;®á®¢®© 梥â
|
||||
ld (PrnStrColor.L1+5),a
|
||||
PrnStrColor:
|
||||
ld a,(hl)
|
||||
cp 0x16 ;ª®¤ ãáâ ®¢ª¨ ¯®§¨æ¨¨ ªãàá®à
|
||||
jr nz,.L2
|
||||
inc hl
|
||||
ld e,(hl) ;á⮫¡¥æ
|
||||
ld a,e
|
||||
ld (PrtXCoord),a
|
||||
inc hl
|
||||
ld d,(hl) ;áâப
|
||||
inc hl
|
||||
ld a,(hl) ;ᨬ¢®«
|
||||
.L2 cp 0x0D
|
||||
jr nz,.L3
|
||||
inc d
|
||||
ld a,(PrtXCoord)
|
||||
ld e,a
|
||||
jr .L4
|
||||
.L3 cp 0x17
|
||||
jr nz,.L1
|
||||
inc hl
|
||||
ld a,(hl)
|
||||
ld (PrnStrColor.L1+5),a
|
||||
inc hl
|
||||
ld a,(hl)
|
||||
.L1 or a
|
||||
ret z ;¢ë室 ¥á«¨ ª®¥æ áâப¨
|
||||
push hl
|
||||
push de
|
||||
;¯¥ç âì ç/§ ¡¨®á ¨«¨ ¤áá?
|
||||
ifdef D_PRINTCH_BIOS
|
||||
ld h,0x03 ; âਡãâ
|
||||
ld l,a
|
||||
sub a ;¨¤¥â¨ä¨ª â®à ®ª
|
||||
; ld a,(Demon.Bios_Win)
|
||||
ld bc,SysSymb*256+Bios.Win_Put_Sym
|
||||
rst BiosRst
|
||||
else
|
||||
ld b,0x03
|
||||
ld c,Dss.WrChar
|
||||
rst DssRst
|
||||
endif
|
||||
pop de
|
||||
pop hl
|
||||
inc e
|
||||
.L4 inc hl
|
||||
jr PrnStrColor
|
||||
PrtXCoord db 0
|
||||
;[]=========================================================================[]
|
||||
;[] <20>¥ç âì ¤¢ãå¡ ©â®¢®£® ç¨á« []
|
||||
;[] ‚室: DE - ª®®à¤¨ âë ¯¥ç ⨠[]
|
||||
;[] HL - § 票¥ ॣ¨áâ஢®© ¯ àë []
|
||||
;[]=========================================================================[]
|
||||
PrintReg:
|
||||
di
|
||||
push hl
|
||||
ld c,Bios.Lp_Set_Place ;ãáâ ®¢ª ¯®§¨æ¨¨ ¯¥ç â¨
|
||||
rst BiosRst
|
||||
pop hl
|
||||
|
||||
ld a,(DecHex) ;á¨á⥬ áç¨á«¥¨ï
|
||||
or a
|
||||
jr z,.Hex
|
||||
|
||||
ld de,.String
|
||||
call ConvDecStr
|
||||
jr .Print
|
||||
|
||||
.Hex ld a,"#"
|
||||
ld (.String),a
|
||||
ld c,l
|
||||
ld a,h
|
||||
call ConvHexStr
|
||||
ld (.String+1),hl ;áâ à訩 ¡ ©â
|
||||
ld a,c
|
||||
call ConvHexStr
|
||||
ld (.String+3),hl ;¬« ¤è¨© ¡ ©â
|
||||
.Print ld hl,.String ;¯¥ç â ¥¬ ï áâப
|
||||
ld bc,5*256+Bios.Lp_Print_Ln2 ;¢ ॣ.B ¤«¨ áâப¨
|
||||
rst BiosRst
|
||||
ei
|
||||
ret
|
||||
|
||||
.String db "#0123"
|
||||
|
||||
;[]=========================================================================[]
|
||||
;[] <20>¥ç âì § 票ï ॣ¨áâ஢®© ¯ àë AF ¨ ä« £®¢ []
|
||||
;[] ‚室: DE - ª®®à¤¨ âë ¯¥ç ⨠[]
|
||||
;[] HL - § 票¥ ॣ¨áâ஢®© ¯ àë []
|
||||
;[]=========================================================================[]
|
||||
PrintStrAF:
|
||||
ld a,h ;§ 票¥ ॣ¨áâà A
|
||||
push hl
|
||||
ld (.String+11),a
|
||||
|
||||
ld hl,.String+1 ;¤¢®¨ç®¥ § 票¥
|
||||
push de
|
||||
ld de,0x3031 ;"01"
|
||||
ld b,8
|
||||
.L1 rlca
|
||||
jr c,$+5
|
||||
ld (hl),d ;"0"
|
||||
jr $+3
|
||||
ld (hl),e ;"1"
|
||||
inc hl
|
||||
djnz .L1
|
||||
pop de
|
||||
|
||||
inc b ;B=1
|
||||
inc hl
|
||||
inc hl
|
||||
call ReplSymNoPrint
|
||||
|
||||
pop hl
|
||||
ld a,l ;ä« £¨
|
||||
push hl
|
||||
ld hl,.Flags
|
||||
ld b,8
|
||||
res 3,a ;á¡à®á ¥¨§¢¥áâëå ä« £®¢
|
||||
res 5,a
|
||||
.L2 rlca
|
||||
jr c,$+6
|
||||
set 5,(hl) ;á¡à®è¥
|
||||
jr $+4
|
||||
res 5,(hl) ;ãáâ ®¢«¥
|
||||
inc hl
|
||||
djnz .L2
|
||||
pop hl
|
||||
|
||||
push de
|
||||
call PrintReg ;¯¥ç âì § 票ï ॣ.¯ àë
|
||||
pop de
|
||||
push de
|
||||
ld a,6
|
||||
add a,e
|
||||
ld e,a
|
||||
ld c,Bios.Lp_Set_Place
|
||||
di
|
||||
rst BiosRst
|
||||
ld hl,.String
|
||||
ld bc,13*256+Bios.Lp_Print_Ln2 ;¢ ॣ.B ¤«¨ áâப¨
|
||||
di
|
||||
rst BiosRst
|
||||
pop de
|
||||
inc d
|
||||
dec e
|
||||
dec e
|
||||
dec e
|
||||
ld c,Bios.Lp_Set_Place
|
||||
di
|
||||
rst BiosRst
|
||||
ld hl,.Flags
|
||||
ld bc,8*256+Bios.Lp_Print_Ln2 ;¢ ॣ.B ¤«¨ áâப¨
|
||||
di
|
||||
rst BiosRst
|
||||
ei
|
||||
ret
|
||||
|
||||
.String db '%01010101 " "'
|
||||
.Flags db "SZ.H.PNC"
|
||||
|
||||
;[]=========================================================================[]
|
||||
;[] <20>¥ç âì § 票© ॣ¨áâ஢ëå ¯ à á ¤à¥á㥬묨 ¡ ©â ¬¨ []
|
||||
;[] ‚室: DE - ª®®à¤¨ âë ¯¥ç ⨠[]
|
||||
;[] HL - § 票¥ ॣ¨áâ஢®© ¯ àë []
|
||||
;[]=========================================================================[]
|
||||
PrintStrReg:
|
||||
push hl
|
||||
ld b,h
|
||||
ld c,l
|
||||
|
||||
call Ld_a_bc ;ld a,(bc) ¤à¥áã¥¬ë¥ ¡ ©âë
|
||||
ld (.String+10),a
|
||||
call ConvHexStr
|
||||
ld (.String),hl
|
||||
inc bc
|
||||
call Ld_a_bc ;ld a,(bc)
|
||||
ld (.String+11),a
|
||||
call ConvHexStr
|
||||
ld (.String+2),hl
|
||||
inc bc
|
||||
call Ld_a_bc ;ld a,(bc)
|
||||
ld (.String+12),a
|
||||
call ConvHexStr
|
||||
ld (.String+5),hl
|
||||
inc bc
|
||||
call Ld_a_bc ;ld a,(bc)
|
||||
ld (.String+13),a
|
||||
call ConvHexStr
|
||||
ld (.String+7),hl
|
||||
|
||||
ld hl,.String+10 ;§ ¬¥ ¥¯¥ç âëå ᨬ¢®«®¢
|
||||
ld b,4
|
||||
call ReplSymNoPrint
|
||||
|
||||
pop hl
|
||||
push de
|
||||
call PrintReg ;¯¥ç âì § 票ï ॣ.¯ àë
|
||||
pop de
|
||||
di
|
||||
ld a,6
|
||||
add a,e
|
||||
ld e,a
|
||||
ld c,Bios.Lp_Set_Place ;ãáâ ®¢ª ¯®§¨æ¨¨ ¯¥ç â¨
|
||||
rst BiosRst
|
||||
ld hl,.String ;¯¥ç â ¥¬ ï áâப
|
||||
ld bc,14*256+Bios.Lp_Print_Ln2 ;¢ ॣ.B ¤«¨ áâப¨
|
||||
rst BiosRst
|
||||
ei
|
||||
ret
|
||||
|
||||
.String db "0123 4567 ABCD"
|
||||
|
||||
;[]=========================================================================[]
|
||||
;[] <20>¥ç âì ®¬¥à®¢ ¡ ®ª ¢ ®ª å []
|
||||
;[] ‚室: HL - ¤à¥á á®åà ¥ëå ®¬¥à®¢ []
|
||||
;[]=========================================================================[]
|
||||
PrintStrWin:
|
||||
ld hl,WinPage ;¢ë¢®¤ ®¬¥à®¢ ¡ ®ª ¢ ®ª å
|
||||
ld de,.String+3
|
||||
ld b,4
|
||||
.L1 push bc
|
||||
ld a,(hl)
|
||||
inc hl
|
||||
push hl
|
||||
ld l,a
|
||||
ld h,0
|
||||
call NumToStr8 ;ª®¢¥àâ¨à®¢ ¨¥ ¢ HEX-áâபã
|
||||
inc de
|
||||
inc de
|
||||
inc de
|
||||
pop hl
|
||||
pop bc
|
||||
djnz .L1
|
||||
|
||||
ld hl,.String
|
||||
jp PrnStrColor-6
|
||||
|
||||
.String db 0x16,0x02,0x12,"#01"
|
||||
db 0x16,0x08,0x12,"#02"
|
||||
db 0x16,0x0E,0x12,"#03"
|
||||
db 0x16,0x14,0x12,"#04",0
|
||||
|
||||
;[]=========================================================================[]
|
||||
;[] <20>¥ç âì £«ã¡¨ë á⥪ []
|
||||
;[]=========================================================================[]
|
||||
PrintSPDn:
|
||||
ld a,(StackDown)
|
||||
ld l,a
|
||||
ld a,0x7F
|
||||
cp l ;®âà¨æ ⥫쮥?
|
||||
jr nc,.L1
|
||||
res 7,l ;á¡à®á¨âì ¬¨ãá
|
||||
inc a
|
||||
sub l
|
||||
ld l,a
|
||||
.L1 ld h,0
|
||||
ld de,.String+1
|
||||
push de
|
||||
call ConvDecStr8
|
||||
pop hl
|
||||
dec hl
|
||||
ld bc,3*256+"0"
|
||||
ld (hl),c
|
||||
ld a,(hl) ;£ 襨¥ ¥§ ç é¨å ã«¥©
|
||||
cp c
|
||||
jr nz,$+8
|
||||
ld a,0x20
|
||||
ld (hl),a
|
||||
inc hl
|
||||
djnz $-8
|
||||
ld a,(StackDown)
|
||||
bit 7,a
|
||||
jr z,$+6
|
||||
dec hl ;®âà¨æ ⥫쮥 ç¨á«®
|
||||
ld a,"-"
|
||||
ld (hl),a
|
||||
|
||||
ld de,0x140A
|
||||
ld c,Bios.Lp_Set_Place ;ãáâ ®¢ª ¯®§¨æ¨¨ ¯¥ç â¨
|
||||
di
|
||||
rst BiosRst
|
||||
ld hl,.String ;¯¥ç â ¥¬ ï áâப
|
||||
ld bc,4*256+Bios.Lp_Print_Ln2 ;¢ ॣ.B ¤«¨ áâப¨
|
||||
di
|
||||
rst BiosRst
|
||||
ei
|
||||
ret
|
||||
|
||||
.String ds 4
|
||||
|
||||
;[]=========================================================================[]
|
||||
;[] <20>¥ç âì § 票© á⥪ []
|
||||
;[]=========================================================================[]
|
||||
PrintStrSP:
|
||||
ld a,(.StrSp) ;áâப á ¢¥à訮© á⥪
|
||||
inc a
|
||||
jr z,.L4 ;¥á«¨ ¢¥àè¨ á⥪ ¥ ¯®¯ ¤ ¥â ¢ ¤ ¬¯
|
||||
ld hl,(Reg._SP)
|
||||
dec hl
|
||||
dec hl
|
||||
inc hl
|
||||
inc hl
|
||||
dec a
|
||||
jr nz,$-3
|
||||
ld (StackDump),hl
|
||||
|
||||
.L4 ld hl,(StackDump) ; ç «® ¤ ¬¯
|
||||
ld de,#1601 ;ª®®à¤¨ âë ¯¥ç â¨
|
||||
ld a,-1
|
||||
ld (.StrSp),a
|
||||
|
||||
ld b,8 ;ª®«-¢® áâப ¤ ¬¯
|
||||
.L3 push bc
|
||||
push de ;ª®®à¤¨ âë
|
||||
push hl
|
||||
or a ;á¡à®á ä« £ C
|
||||
ld a,b
|
||||
ld bc,(Reg._SP) ; ¤à¥á ¢¥àè¨ë á⥪
|
||||
sbc hl,bc
|
||||
jr nz,.L2
|
||||
ld b,a
|
||||
ld a,8
|
||||
sub b
|
||||
ld (.StrSp),a ;®¬¥à áâப¨ ¢ ¤ ¬¯¥ á ¢¥à訮© á⥪
|
||||
ld a,(Color._SP) ;梥⠢¥àè¨ë á⥪
|
||||
jr .L2+3
|
||||
.L2 ld a,(Color.Screen) ;®á®¢®© 梥â
|
||||
ld (.L1+1),a ;§ ¯¨á «¨ 梥â
|
||||
ld c,Bios.Lp_Set_Place ;ãáâ ®¢ª ¯®§¨æ¨¨ ¯¥ç â¨
|
||||
di
|
||||
rst BiosRst
|
||||
.L1 ld e,0 ;梥⠯®¤á¢¥âª¨
|
||||
ld bc,11*256+Bios.Lp_Print_Atr ;¢ ॣ.B ¤«¨ áâப¨
|
||||
rst BiosRst
|
||||
pop hl
|
||||
pop de
|
||||
push de
|
||||
push hl
|
||||
call PrintReg ;¯¥ç âì ¤à¥á
|
||||
pop hl
|
||||
pop de
|
||||
push de
|
||||
dec hl
|
||||
dec hl
|
||||
push hl
|
||||
ld a,6
|
||||
add a,e
|
||||
ld e,a
|
||||
|
||||
inc hl
|
||||
inc hl
|
||||
call Ld_a_hl
|
||||
ld c,a
|
||||
inc hl
|
||||
call Ld_a_hl
|
||||
ld l,a
|
||||
ld h,c
|
||||
|
||||
call PrintReg ;¯¥ç âì § 票ï á⥪
|
||||
pop hl
|
||||
pop de
|
||||
inc d
|
||||
pop bc
|
||||
djnz .L3
|
||||
ei
|
||||
ret
|
||||
|
||||
.StrSp db 6
|
||||
|
||||
;[]=========================================================================[]
|
||||
;[] <20>¥ç âì ¤ ¬¯ []
|
||||
;[]=========================================================================[]
|
||||
PrintDump:
|
||||
ld de,0x160E ;ª®®à¤¨ âë
|
||||
ld hl,(Dump1)
|
||||
ld b,8 ;ª®«¨ç¥á⢮ áâப
|
||||
push de
|
||||
push bc
|
||||
push hl
|
||||
call PrintStrDump
|
||||
pop hl
|
||||
ld bc,16
|
||||
add hl,bc
|
||||
pop bc
|
||||
pop de
|
||||
inc d ;á«¥¤ãîé ï áâப
|
||||
djnz $-14
|
||||
ret
|
||||
|
||||
ld hl,Dump ;¢ë¢®¤ ¤ ¬¯
|
||||
; ld de,0x160E ;ª®®à¤¨ âë
|
||||
ld b,8 ;ª®«¨ç¥á⢮ áâப
|
||||
push de
|
||||
push bc
|
||||
ld c,(hl) ;¬« ¤è¨© ¡ ©â ¤à¥á
|
||||
inc hl
|
||||
push hl
|
||||
ld h,(hl) ;áâ à訩 ¡ ©â ¤à¥á
|
||||
ld l,c
|
||||
call PrintStrDump
|
||||
pop hl
|
||||
inc hl
|
||||
pop bc
|
||||
pop de
|
||||
inc d ;á«¥¤ãîé ï áâப
|
||||
djnz $-15
|
||||
ret
|
||||
|
||||
;[]=========================================================================[]
|
||||
;[] <20>¥ç âì áâப¨ ¤ ¬¯ []
|
||||
;[] ‚室: DE - ª®®à¤¨ âë ¯¥ç ⨠[]
|
||||
;[] HL - ¤à¥á ç « áâப¨ []
|
||||
;[]=========================================================================[]
|
||||
PrintStrDump:
|
||||
push de
|
||||
push hl
|
||||
|
||||
ld b,h
|
||||
ld c,l
|
||||
ld de,.String
|
||||
ld ix,.String+41
|
||||
push ix
|
||||
|
||||
ld a,8
|
||||
.L1 exa
|
||||
call Ld_a_bc ;ld a,(bc)
|
||||
ld (ix),a
|
||||
inc ix
|
||||
call ConvHexStr
|
||||
ex de,hl
|
||||
ld (hl),e
|
||||
inc hl
|
||||
ld (hl),d
|
||||
inc hl
|
||||
ex de,hl
|
||||
inc bc
|
||||
call Ld_a_bc ;ld a,(bc)
|
||||
ld (ix),a
|
||||
inc ix
|
||||
call ConvHexStr
|
||||
ex de,hl
|
||||
ld (hl),e
|
||||
inc hl
|
||||
ld (hl),d
|
||||
inc hl
|
||||
inc hl
|
||||
ex de,hl
|
||||
inc bc
|
||||
exa
|
||||
dec a
|
||||
jr nz,.L1
|
||||
|
||||
ld b,16
|
||||
pop hl
|
||||
call ReplSymNoPrint ;§ ¬¥ ¥¯¥ç âëå ᨬ¢®«®¢
|
||||
|
||||
pop hl
|
||||
pop de
|
||||
push de
|
||||
call PrintReg ;¯¥ç âì ¤à¥á áâப¨
|
||||
pop de
|
||||
di
|
||||
ld a,7
|
||||
add a,e
|
||||
ld e,a
|
||||
ld c,Bios.Lp_Set_Place ;ãáâ ®¢ª ¯®§¨æ¨¨ ¯¥ç â¨
|
||||
rst BiosRst
|
||||
ld hl,.String
|
||||
ld bc,57*256+Bios.Lp_Print_Ln2 ;¢ ॣ.B ¤«¨ áâப¨
|
||||
rst BiosRst
|
||||
ei
|
||||
ret
|
||||
|
||||
.String db "1000 2000 3000 4000 5000 6000 7000 8000 "
|
||||
db "0123456789ABCDEF"
|
||||
|
||||
;[]=========================================================================[]
|
||||
;[] ‡ ¬¥ ¥¯¥ç âëå ᨬ¢®«®¢ ¢ áâப¥ []
|
||||
;[] ‚室: B - ¤«¨ áâப¨ []
|
||||
;[] HL - ¤à¥á ç « áâப¨ []
|
||||
;[]=========================================================================[]
|
||||
ReplSymNoPrint:
|
||||
ld a,(SymbolNoPrint)
|
||||
ld c,a
|
||||
.L1 ld a,(hl)
|
||||
cp 127
|
||||
jr z,$+10
|
||||
cp 0xFF
|
||||
jr z,$+6
|
||||
cp " "
|
||||
jr nc,$+3
|
||||
ld (hl),c
|
||||
inc hl
|
||||
djnz .L1
|
||||
ret
|
||||
|
||||
;[]=========================================================================[]
|
||||
;[] ”®à¬¨à®¢ ¨¥ 16-⨡¨â®£® ç¨á« []
|
||||
;[] ‚室: DE - ¤à¥á ¡ãä¥à []
|
||||
;[] HL - ç¨á«® []
|
||||
;[]=========================================================================[]
|
||||
NumToStr16:
|
||||
ld a,(DecHex) ;á¨á⥬ áç¨á«¥¨ï
|
||||
or a
|
||||
jp nz,ConvDecStr
|
||||
|
||||
ld a,"#"
|
||||
ld (de),a
|
||||
inc de
|
||||
ld c,l
|
||||
ld a,h
|
||||
call ConvHexStr
|
||||
ex de,hl
|
||||
ld (hl),e ;áâ à訩 ¡ ©â
|
||||
inc hl
|
||||
ld (hl),d
|
||||
inc hl
|
||||
ex de,hl
|
||||
ld a,c
|
||||
call ConvHexStr
|
||||
ex de,hl
|
||||
ld (hl),e ;¬« ¤è¨© ¡ ©â
|
||||
inc hl
|
||||
ld (hl),d
|
||||
inc hl
|
||||
ex de,hl
|
||||
ret
|
||||
|
||||
;[]=========================================================================[]
|
||||
;[] ”®à¬¨à®¢ ¨¥ 8-¡¨â®£® ç¨á« []
|
||||
;[] ‚室: DE - ¤à¥á ¡ãä¥à []
|
||||
;[] HL - ç¨á«® []
|
||||
;[]=========================================================================[]
|
||||
NumToStr8:
|
||||
ld a,(DecHex) ;á¨á⥬ áç¨á«¥¨ï
|
||||
or a
|
||||
jp nz,ConvDecStr8
|
||||
|
||||
.Hex ld a,"#"
|
||||
ld (de),a
|
||||
inc de
|
||||
ld a,l
|
||||
call ConvHexStr
|
||||
ex de,hl
|
||||
ld (hl),e
|
||||
inc hl
|
||||
ld (hl),d
|
||||
inc hl
|
||||
ex de,hl
|
||||
ret
|
||||
|
||||
;[]=========================================================================[]
|
||||
;[] Š®¢¥àâ¨à®¢ ¨¥ ç¨á« ¢ HEX-áâபã []
|
||||
;[] ‚室: A - ç¨á«® []
|
||||
;[] ‚ë室: HL - HEX-áâப []
|
||||
;[]=========================================================================[]
|
||||
ConvHexStr:
|
||||
push af
|
||||
rrca
|
||||
rrca
|
||||
rrca
|
||||
rrca
|
||||
and 0x0F
|
||||
add a,0x30
|
||||
cp 0x3A
|
||||
jr c,$+4
|
||||
add a,7
|
||||
|
||||
ld l,a
|
||||
pop af
|
||||
and 0x0F
|
||||
add a,0x30
|
||||
cp 0x3A
|
||||
jr c,$+4
|
||||
add a,7
|
||||
ld h,a
|
||||
ret
|
||||
|
||||
;[]=========================================================================[]
|
||||
;[] Š®¢¥àâ¨à®¢ ¨¥ 16-¡¨â®£® ç¨á« ¢ DEC-áâபã []
|
||||
;[] ‚室: HL - ç¨á«® []
|
||||
;[] DE - ¤à¥á ç « DEC-áâப¨ []
|
||||
;[]=========================================================================[]
|
||||
ConvDecStr:
|
||||
ld bc,-10000
|
||||
ld a,0xFF
|
||||
inc a
|
||||
add hl,bc
|
||||
jr c,$-2
|
||||
sbc hl,bc
|
||||
add a,"0"
|
||||
ld (de),a
|
||||
inc de
|
||||
|
||||
ld bc,-1000
|
||||
ld a,0xFF
|
||||
inc a
|
||||
add hl,bc
|
||||
jr c,$-2
|
||||
sbc hl,bc
|
||||
add a,"0"
|
||||
ld (de),a
|
||||
inc de
|
||||
ConvDecStr8:
|
||||
ld bc,-100
|
||||
ld a,0xFF
|
||||
inc a
|
||||
add hl,bc
|
||||
jr c,$-2
|
||||
sbc hl,bc
|
||||
add a,"0"
|
||||
ld (de),a
|
||||
inc de
|
||||
ConvDecStr8_1:
|
||||
ld bc,-10
|
||||
ld a,0xFF
|
||||
inc a
|
||||
add hl,bc
|
||||
jr c,$-2
|
||||
sbc hl,bc
|
||||
|
||||
add a,"0"
|
||||
ld (de),a
|
||||
inc de
|
||||
|
||||
ld a,l
|
||||
add a,"0"
|
||||
ld (de),a
|
||||
inc de
|
||||
ret
|
||||
|
||||
;[]=========================================================================[]
|
||||
;[] <20>à®à¨á®¢ª ªãàá®à []
|
||||
;[] ‚室: B - ¤«¨ ªãàá®à []
|
||||
;[] HL - ª®®à¤¨ âë ªãàá®à []
|
||||
;[]=========================================================================[]
|
||||
CursorSet:
|
||||
ld (CursorRes+1),hl
|
||||
ex de,hl
|
||||
ld l,b ;à §¬¥à ¯® ¢¥à⨪ «¨
|
||||
ld h,1 ;à §¬¥à ¯® £®à¨§®â «¨
|
||||
ld (CursorRes+4),hl
|
||||
ld ix,.Buffer
|
||||
push de
|
||||
push hl
|
||||
push ix
|
||||
push bc
|
||||
ifdef D_PRINTCH_BIOS
|
||||
xor a
|
||||
ld c,Bios.Win_Copy_Win ;ª®¯¨à®¢ ¨¥ ¢ ¡ãä¥à
|
||||
di
|
||||
rst BiosRst
|
||||
ei
|
||||
else
|
||||
ld a,(BankDebug)
|
||||
ld b,a
|
||||
ld c,Dss.WinCopy
|
||||
rst DssRst
|
||||
endif
|
||||
|
||||
pop bc ;¢ B ¤«¨ ªãàá®à
|
||||
pop hl
|
||||
push hl
|
||||
inc hl
|
||||
ld a,(hl) ;梥â ᨬ¢®«®¢
|
||||
ld (CursorRes.L1+1),a
|
||||
ld a,(Color.Cursor)
|
||||
.L1 ld (hl),a
|
||||
inc hl ;ª ¡ ©âã 梥â
|
||||
inc hl
|
||||
djnz .L1
|
||||
|
||||
pop ix
|
||||
pop hl
|
||||
pop de
|
||||
ifdef D_PRINTCH_BIOS
|
||||
xor a
|
||||
ld c,Bios.Win_Restore_Win ;¢ë¢®¤ ªãàá®à íªà
|
||||
di
|
||||
rst BiosRst
|
||||
ei
|
||||
else
|
||||
ld a,(BankDebug)
|
||||
ld b,a
|
||||
ld c,Dss.WinRest
|
||||
rst DssRst
|
||||
endif
|
||||
ret
|
||||
|
||||
.Buffer ds 22*2 ;max ¤«¨ ªãàá®à
|
||||
|
||||
;[]=========================================================================[]
|
||||
;[] ‚®áâ ®¢«¥¨¥ íªà ¯®¤ ªãàá®à®¬ []
|
||||
;[]=========================================================================[]
|
||||
CursorRes:
|
||||
ld de,0 ;ª®®à¤¨ âë
|
||||
ld hl,0 ;à §¬¥à
|
||||
ld b,l ;¤«¨
|
||||
push de
|
||||
push hl
|
||||
ld hl,CursorSet.Buffer
|
||||
push hl
|
||||
.L1 ld a,0 ;梥â
|
||||
inc hl ;ª ¡ ©âã 梥â
|
||||
jr CursorSet.L1
|
||||
|
||||
;[]=========================================================================[]
|
||||
;[] —⥨¥ ¡ ©â ¨§ ¯ ¬ïâ¨ á ¯à®¢¥àª®© ¤à¥á []
|
||||
;[] ‚室: BC ¨«¨ HL - ¤à¥á ¢ ¯ ¬ï⨠[]
|
||||
;[] ‚ë室: A - áç¨â ë© ¡ ©â []
|
||||
;[]=========================================================================[]
|
||||
Ld_a_bc:
|
||||
ld a,11000000b ;¯à®¢¥àª ¤¨ ¯ §®
|
||||
and b
|
||||
jr z,.L1 ;¢ 0-¬ ®ª¥
|
||||
cp 10000000b ;¢® 2-®¬ ®ª¥
|
||||
ld a,(bc)
|
||||
ret nz ;¢®§¢à é ¥¬ ¡ ©â, ¥á«¨ ¥â
|
||||
ld a,(WinPage+2) ;®¬¥à ¡ ª¨ ¯®¤ ®â« ¤ç¨ª®¬
|
||||
out (EmmWin.P3),a ;¢ âà¥âì¥ ®ª® ¥¥
|
||||
set 6,b ;ª®à४â¨à㥬 ¤à¥á
|
||||
ld a,(bc) ;ç¨â ¥¬ ¡ ©â
|
||||
res 6,b ;¢®áâ ¢«¨¢ ¥¬ ¤à¥á
|
||||
jr Ld_a_hl.L1
|
||||
.L1 ld a,(WinPage) ;®¬¥à ¡ ª¨ ¢ 0-¬
|
||||
out (EmmWin.P3),a ;¢ âà¥âì¥ ®ª® ¥¥
|
||||
set 6,b ;ª®à४â¨à㥬 ¤à¥á
|
||||
set 7,b
|
||||
ld a,(bc) ;ç¨â ¥¬ ¡ ©â
|
||||
res 6,b ;¢®áâ ¢«¨¢ ¥¬ ¤à¥á
|
||||
res 7,b
|
||||
jr Ld_a_hl.L1
|
||||
Ld_a_hl:
|
||||
ld a,11000000b ;¯à®¢¥àª ¤¨ ¯ §®
|
||||
and h
|
||||
jr z,.L2 ;¢ 0-¬ ®ª¥
|
||||
cp 10000000b ;¢® 2-®¬ ®ª¥
|
||||
ld a,(hl)
|
||||
ret nz ;¢®§¢à é ¥¬ ¡ ©â, ¥á«¨ ¥â
|
||||
ld a,(WinPage+2) ;®¬¥à ¡ ª¨ ¯®¤ ®â« ¤ç¨ª®¬
|
||||
out (EmmWin.P3),a ;¢ âà¥âì¥ ®ª® ¥¥
|
||||
set 6,h ;ª®à४â¨à㥬 ¤à¥á
|
||||
ld a,(hl) ;ç¨â ¥¬ ¡ ©â
|
||||
res 6,h ;¢®áâ ¢«¨¢ ¥¬ ¤à¥á
|
||||
jr .L1
|
||||
.L2 ld a,(WinPage) ;®¬¥à ¡ ª¨ ¢ 0-¬ ®ª¥
|
||||
out (EmmWin.P3),a ;¢ âà¥âì¥ ®ª® ¥¥
|
||||
set 6,h ;ª®à४â¨à㥬 ¤à¥á
|
||||
set 7,h
|
||||
ld a,(hl) ;ç¨â ¥¬ ¡ ©â
|
||||
res 6,h ;¢®áâ ¢«¨¢ ¥¬ ¤à¥á
|
||||
res 7,h
|
||||
.L1 push af
|
||||
ld a,(WinPage+3) ;®¬¥à ¡ ª¨ ¨§ 3-£® ®ª
|
||||
out (EmmWin.P3),a ;¢®áâ ¢«¨¢ ¥¬
|
||||
pop af
|
||||
ret
|
||||
|
||||
;[]=========================================================================[]
|
||||
;[] ‡ ¯¨áì ¡ ©â ¢ ¯ ¬ïâì á ¯à®¢¥àª®© ¤à¥á []
|
||||
;[] ‚室: HL - ¤à¥á ¢ ¯ ¬ï⨠[]
|
||||
;[] A - § ¯¨áë¢ ¥¬ë© ¡ ©â []
|
||||
;[]=========================================================================[]
|
||||
Ld_hl_a:
|
||||
push af
|
||||
ld a,11000000b ;¯à®¢¥àª ¤¨ ¯ §®
|
||||
and h
|
||||
jr z,.L2 ;¢ 0-®¬ ®ª¥
|
||||
cp 10000000b ;¢® 2-®¬ ®ª¥?
|
||||
jr z,.L1
|
||||
pop af
|
||||
ld (hl),a ;§ ¯¨á «¨ ¡ ©â, ¥á«¨ ¥â
|
||||
ret
|
||||
.L1 ld a,(WinPage+2) ;®¬¥à ¡ ª¨ ¯®¤ ®â« ¤ç¨ª®¬
|
||||
out (EmmWin.P3),a ;¢ âà¥âì¥ ®ª® ¥¥
|
||||
set 6,h ;ª®à४â¨à㥬 ¤à¥á
|
||||
pop af
|
||||
ld (hl),a ;¯¨è¥¬ ¡ ©â
|
||||
jr .L3
|
||||
.L2 ld a,(WinPage) ;®¬¥à ¡ ª¨ ¢ 0-®¬
|
||||
out (EmmWin.P3),a ;¢ âà¥âì¥ ®ª® ¥¥
|
||||
set 6,h ;ª®à४â¨à㥬 ¤à¥á
|
||||
set 7,h
|
||||
pop af
|
||||
ld (hl),a ;¯¨è¥¬ ¡ ©â
|
||||
res 7,h ;¢®áâ ¢«¨¢ ¥¬ ¤à¥á
|
||||
.L3 res 6,h
|
||||
ld a,(WinPage+3) ;®¬¥à ¡ ª¨ ¨§ 3-£® ®ª
|
||||
out (EmmWin.P3),a ;¢®áâ ¢«¨¢ ¥¬
|
||||
ret
|
||||
|
||||
;[]=========================================================================[]
|
||||
;[] Ž¯à¥¤¥«¥¨¥ ¯à¨ ¤«¥¦®á⨠¤à¥á ®¡« á⨠¯ ¬ï⨠[]
|
||||
;[] ‚室: HL - ¨¦¨© ¤à¥á ®¡« á⨠¯ ¬ï⨠[]
|
||||
;[] DE - ¢¥à娩 ¤à¥á ®¡« á⨠¯ ¬ï⨠[]
|
||||
;[] BC - ¤à¥á []
|
||||
;[] ‚ë室: ä« £ C - ¤à¥á ¥ ¯à¨ ¤«¥¦¨â ®¡« á⨠¯ ¬ï⨠[]
|
||||
;[] ä« £ NC - ¤à¥á ¯à¨ ¤«¥¦¨â ®¡« á⨠¯ ¬ï⨠[]
|
||||
;[]=========================================================================[]
|
||||
AdrArea:
|
||||
or a
|
||||
sbc hl,bc
|
||||
ret c
|
||||
ex de,hl
|
||||
or a
|
||||
sbc hl,bc
|
||||
ccf
|
||||
ret
|
||||
|
1
VERSION/build.bin
Normal file
1
VERSION/build.bin
Normal file
@ -0,0 +1 @@
|
||||
0003
|
1
VERSION/date.bin
Normal file
1
VERSION/date.bin
Normal file
@ -0,0 +1 @@
|
||||
210211
|
1
VERSION/major.bin
Normal file
1
VERSION/major.bin
Normal file
@ -0,0 +1 @@
|
||||
0
|
1
VERSION/minor.bin
Normal file
1
VERSION/minor.bin
Normal file
@ -0,0 +1 @@
|
||||
11
|
1
VERSION/time.bin
Normal file
1
VERSION/time.bin
Normal file
@ -0,0 +1 @@
|
||||
00:00
|
25
changes.txt
Normal file
25
changes.txt
Normal file
@ -0,0 +1,25 @@
|
||||
DemoN v.0.11
|
||||
Hard/WCG
|
||||
|
||||
b0003 20.02.2011
|
||||
+ По кнопке <Z> PC присваивается адрес, на котором установлен курсор.
|
||||
|
||||
+ Добавил диалог Load BIN-file, но еще не довел его до ума.
|
||||
|
||||
b0002 19.02.2011
|
||||
* Изменил процедуры печати и прорисовки курсора для работы через DSS, т.к. на эмуляторе Demon не
|
||||
полноценно работает.
|
||||
|
||||
+ при старте запоминаем текущий режим экрана и при выходе - восстанавливаем.
|
||||
|
||||
+ сохраняем в буфер инфу экрана ОСи, если экран демона находится на той же странице,
|
||||
при выходе - восстанавливаем
|
||||
|
||||
* изменена П/П просмотра другого экрана, теперь она с учетом того, что демон и ОС могут быть на одном экране
|
||||
|
||||
* изменен образ "непечатаемого" символа
|
||||
|
||||
+ добавил ПП прорисовки окон и обработки диалогов - на будущее
|
||||
|
||||
b0001 18.02.2011
|
||||
* Переделал исходник под кроссассемблер sjasmplus.
|
BIN
d010_136.rar
Normal file
BIN
d010_136.rar
Normal file
Binary file not shown.
1
daemon.lst
Normal file
1
daemon.lst
Normal file
@ -0,0 +1 @@
|
||||
(0): error: Error opening file: daemon.asm
|
191
loadbin.asm
Normal file
191
loadbin.asm
Normal file
@ -0,0 +1,191 @@
|
||||
LoadBinDialog ld ix,.LoadBinWnd
|
||||
call DialogWindow
|
||||
ret
|
||||
.LoadBinEditFN ;ld hl,.LoadBinFileName
|
||||
;ld c,20
|
||||
;call InputLine.ToBuffer
|
||||
.L003 ld hl,#0f24
|
||||
ld b,20
|
||||
call InputLine1
|
||||
jr c,LoadBinDialog
|
||||
ld a,c
|
||||
and a
|
||||
jr z,.L003
|
||||
ld (.filenamelen),a
|
||||
push bc
|
||||
ld de,.LoadBinFileName
|
||||
call InputLine.FromBuffer
|
||||
pop bc
|
||||
ld a,20
|
||||
sub c
|
||||
jr z,.L001
|
||||
ld b,a
|
||||
ld a,32
|
||||
.L002 ld (de),a
|
||||
inc de
|
||||
djnz .L002
|
||||
.L001 jr LoadBinDialog
|
||||
|
||||
.EditAddres ld hl,#1021
|
||||
ld b,5
|
||||
call InputLine1
|
||||
jr c,LoadBinDialog
|
||||
push bc
|
||||
call PutAdres
|
||||
pop bc
|
||||
jr c,.EditAddres
|
||||
ld (.LoadToAdr),hl
|
||||
ld de,.AdresTxt
|
||||
call InputLine.FromBuffer
|
||||
jr LoadBinDialog
|
||||
.EditLenght ld hl,#1031
|
||||
ld b,5
|
||||
call InputLine1
|
||||
jr c,LoadBinDialog
|
||||
push bc
|
||||
call PutAdres
|
||||
pop bc
|
||||
jr c,.EditLenght
|
||||
ld (.LoadLen),hl
|
||||
ld de,.LenTxt
|
||||
call InputLine.FromBuffer
|
||||
jr LoadBinDialog
|
||||
.LoadBIN
|
||||
xor a
|
||||
ld (ClockOn),a
|
||||
ld c,Dss.Open
|
||||
ld hl,.LoadBinFileName
|
||||
push hl
|
||||
ld a,(.filenamelen)
|
||||
ld d,0
|
||||
ld e,a
|
||||
add hl,de
|
||||
ld (.restadr+1),hl
|
||||
ld (hl),0
|
||||
pop hl
|
||||
ld a,1
|
||||
rst DssRst
|
||||
jp c,.Err1
|
||||
.restadr ld hl,0
|
||||
ld (hl),32
|
||||
ld (.FMid),a
|
||||
ld hl,(.LoadToAdr)
|
||||
ld a,1 ;àäðåñ â îáëàñòè #0000-7fff?
|
||||
bit 7,h
|
||||
jr z,.adr0000
|
||||
inc a ;#8000-#bfff?
|
||||
bit 6,h
|
||||
jr z,.adr
|
||||
inc a ;#c000-ffff !!!
|
||||
jr .adr
|
||||
.adr0000 bit 6,h
|
||||
jr nz,.adr
|
||||
sub a
|
||||
.adr ld (.bank),a
|
||||
set 6,h ;àäðåñ çàãðóçêè =>#4XXX
|
||||
res 7,h
|
||||
ld (.LoadFirst+4),hl
|
||||
push hl
|
||||
ld hl,0 ;Óçíàåì äëèíó ôàéëà
|
||||
ld ix,0
|
||||
ld b,2
|
||||
ld c,Dss.Move_FP
|
||||
rst DssRst
|
||||
ld (.LoadLen),HL
|
||||
ld (.LoadEnd+1),hl
|
||||
pop hl
|
||||
.Load00 and a
|
||||
ex hl,de
|
||||
ld de,#8000
|
||||
sbc hl,de
|
||||
ld (.LoadFirst+1),hl
|
||||
ld de,(.LoadEnd+1)
|
||||
and a
|
||||
sbc hl,de
|
||||
jr c,.LoadEnd
|
||||
.LoadFirst ld de,0 ;êîëè÷åñòâî áàéò, êîòîðûå íàäî ñ÷èòàòü â ïåðâóþ áàíêó
|
||||
ld hl,0 ;àäðåñ, êóäà ñêà÷àòü
|
||||
.LoadNext call .Bank1
|
||||
ld c,Dss.Read
|
||||
ld a,(.FMid)
|
||||
rst DssRst
|
||||
jr c,.Err
|
||||
ld hl,.bank
|
||||
inc (hl)
|
||||
ld hl,(.LoadEnd+1)
|
||||
ld de,#4000
|
||||
and a
|
||||
sbc hl,de
|
||||
jr c,.LoadEnd ;Îñòàëîñü ìåíüøå 16Êá
|
||||
ld (.LoadEnd+1),hl
|
||||
ld hl,#4000
|
||||
ld de,#4000
|
||||
jr .LoadNext
|
||||
.LoadEnd ld de,0 ;êîëè÷åñòâî áàéò, êîòîðûå íåîáõîäèìî äî÷èòàòü
|
||||
call .Bank1
|
||||
ld hl,#4000
|
||||
ld a,(.FMid)
|
||||
ld c,Dss.Read
|
||||
rst DssRst
|
||||
jr c,.Err
|
||||
ld a,(.FMid)
|
||||
ld c,Dss.Close
|
||||
rst DssRst
|
||||
|
||||
ld hl,(.LoadToAdr)
|
||||
ld (ListAdr),hl
|
||||
ld a,(WinPage+1)
|
||||
out (EmmWin.P1),a
|
||||
ret
|
||||
.Err push af
|
||||
ld a,(.FMid)
|
||||
ld c,Dss.Close
|
||||
rst DssRst
|
||||
pop af
|
||||
.Err1 call ErDss
|
||||
ld c,Dss.PChars ;âûâîä òåêñòà îøèáêè è îæèäàíèÿ any key
|
||||
rst DssRst
|
||||
ld c,Dss.WaitKey
|
||||
rst DssRst
|
||||
ret
|
||||
|
||||
.Bank1 push hl
|
||||
push de
|
||||
ld a,(.bank)
|
||||
ld l,a
|
||||
ld h,0
|
||||
ld de,WinPage
|
||||
add hl,de
|
||||
ld a,(hl)
|
||||
out (EmmWin.P1),a
|
||||
pop de
|
||||
pop hl
|
||||
ret
|
||||
|
||||
|
||||
|
||||
.bank db 0
|
||||
.FMid db 0
|
||||
.filenamelen db 0
|
||||
.LoadToAdr dw #4000
|
||||
.LoadLen dw #1000
|
||||
.LoadBinWnd db 2,23,13,36,6,7
|
||||
db "Load BIN-file",0
|
||||
db "Filename: "
|
||||
.LoadBinFileName ds 20,32
|
||||
db 0X0D
|
||||
db "Addres: "
|
||||
.AdresTxt db "#4000 Lenght: "
|
||||
.LenTxt db "#1000"
|
||||
db 0x16,10+23,4+13,"OK Cancel",0
|
||||
db 5
|
||||
db 35,15,22,2 ;Filename
|
||||
dw 0,.LoadBinEditFN
|
||||
db 32,16,7,2 ;Addres
|
||||
dw 0,.EditAddres
|
||||
db 48,16,7,2 ;Lenght
|
||||
dw 0,.EditLenght
|
||||
db 30,17,8,2 ;OK
|
||||
dw 0,.LoadBIN
|
||||
db 41,17,8,2 ;Cancel
|
||||
dw 0,0
|
3
make.bat
Normal file
3
make.bat
Normal file
@ -0,0 +1,3 @@
|
||||
C:\asm\sjasm\sjasmplus.exe --lst=demon.lst --lstlab demon.asm
|
||||
copy /B /Y demon.exe M:\Install\zx\sprinter\soft\emulator\exe\disk\
|
||||
pause 0
|
26
readme.txt
Normal file
26
readme.txt
Normal file
@ -0,0 +1,26 @@
|
||||
Монитор-отладчик DemoN by Alpha Studio с небольшими доработками Hard/WCG
|
||||
|
||||
DemoN v.0.11
|
||||
|
||||
b0003 20.02.2011
|
||||
+ По кнопке <Z> PC присваивается адрес, на котором установлен курсор.
|
||||
|
||||
+ Добавил диалог Load BIN-file, но еще не довел его до ума.
|
||||
|
||||
b0002 19.02.2011
|
||||
* Изменил процедуры печати и прорисовки курсора для работы через DSS, т.к. на эмуляторе Demon не
|
||||
полноценно работает.
|
||||
|
||||
+ при старте запоминаем текущий режим экрана и при выходе - восстанавливаем.
|
||||
|
||||
+ сохраняем в буфер инфу экрана ОСи, если экран демона находится на той же странице,
|
||||
при выходе - восстанавливаем
|
||||
|
||||
* изменена П/П просмотра другого экрана, теперь она с учетом того, что демон и ОС могут быть на одном экране
|
||||
|
||||
* изменен образ "непечатаемого" символа
|
||||
|
||||
+ добавил ПП прорисовки окон и обработки диалогов - на будущее
|
||||
|
||||
b0001 18.02.2011
|
||||
* Переделал исходник под кроссассемблер sjasmplus.
|
349
windows.asm
Normal file
349
windows.asm
Normal file
@ -0,0 +1,349 @@
|
||||
|
||||
;IX - WINDOW DESCRIPTOR
|
||||
;+0 - FLAG:
|
||||
; BITS: 0 - STANDART WINDOW
|
||||
; 1 - 0 - WITHOUT HEADER / 1 - WITH HEADER
|
||||
; 2 - 0 - ORDINARY FRAME / 1 - DOUBLE FRAME
|
||||
;+1 - X COORD
|
||||
;+2 - Y COORD
|
||||
;+3 - LENGHT
|
||||
;+4 - HEIGHT
|
||||
;+5 - ATTR
|
||||
|
||||
|
||||
Windows BIT 0,(IX+0)
|
||||
JR Z,NO_STAND_WIN
|
||||
LD A,(IX+1)
|
||||
LD DE,-4
|
||||
ADD IX,DE
|
||||
PUSH IX
|
||||
LD IX,STANDART
|
||||
LD (IX+5),A
|
||||
JR STAND_WIN
|
||||
NO_STAND_WIN
|
||||
PUSH IX
|
||||
STAND_WIN
|
||||
CALL Rectang
|
||||
CALL Frame
|
||||
BIT 1,(IX+0)
|
||||
CALL NZ,WinHeader
|
||||
POP HL
|
||||
; PUSH HL
|
||||
LD DE,6
|
||||
ADD HL,DE
|
||||
bit 1,(ix+0)
|
||||
ld a,(IX+5)
|
||||
jr z,WinNoHeader
|
||||
RRCA
|
||||
RRCA
|
||||
RRCA
|
||||
RRCA
|
||||
AND #7F
|
||||
ld (PrnStrColor.L1+5),a
|
||||
push hl
|
||||
call MenuItemLen
|
||||
ld a,(ix+3)
|
||||
sbc a,b
|
||||
ld e,(ix+1)
|
||||
and a
|
||||
rra
|
||||
add a,e
|
||||
ld e,a
|
||||
ld d,(ix+2)
|
||||
pop hl
|
||||
CALL PrnStrColor
|
||||
inc hl
|
||||
ld a,(IX+5)
|
||||
WinNoHeader
|
||||
ld (PrnStrColor.L1+5),a
|
||||
ld d,(ix+2) ;Êîîðäèíàòû â îêíå
|
||||
ld e,(ix+1)
|
||||
inc d
|
||||
inc d
|
||||
inc e
|
||||
inc e
|
||||
ld a,e
|
||||
ld (PrtXCoord),a
|
||||
; LD (WINDOW_TXT),HL
|
||||
CALL PrnStrColor
|
||||
; EX (DE),HL
|
||||
RET
|
||||
|
||||
;Ðèñîâàíèå çàãîëîâêà îêíà
|
||||
WinHeader
|
||||
LD E,(IX+1)
|
||||
LD D,(IX+2)
|
||||
LD L,(IX+3)
|
||||
LD H,1
|
||||
LD A,(IX+5)
|
||||
RRCA
|
||||
RRCA
|
||||
RRCA
|
||||
RRCA
|
||||
AND #7F
|
||||
LD B,A
|
||||
LD A,#20
|
||||
CALL FillBox
|
||||
RET
|
||||
|
||||
;Ïðîöåäóðà îñâîáîæäåíèÿ ïðÿìîóãîëüíîé ïëîùàäè îêíà
|
||||
;Íà âõîä: IX - àäðåñ îïèñàòåëÿ
|
||||
Rectang LD E,(IX+1)
|
||||
LD D,(IX+2)
|
||||
LD H,(IX+4)
|
||||
LD L,(IX+3)
|
||||
LD B,(IX+5)
|
||||
LD A,#20
|
||||
CALL FillBox
|
||||
RET
|
||||
|
||||
FillBox PUSH HL
|
||||
PUSH DE
|
||||
FillB1 LD C,Dss.WrChar
|
||||
RST DssRst
|
||||
INC E
|
||||
DEC L
|
||||
JR NZ,FillB1
|
||||
POP DE
|
||||
POP HL
|
||||
INC D
|
||||
DEC H
|
||||
JR NZ,FillBox
|
||||
RET
|
||||
|
||||
|
||||
Frame LD HL,FrameType1
|
||||
BIT 2,(IX+0) ;windows type flag
|
||||
JR Z,Frame1
|
||||
LD HL,FrameType2
|
||||
Frame1 LD D,(IX+2)
|
||||
LD E,(IX+1)
|
||||
LD B,(IX+5)
|
||||
PUSH DE
|
||||
PUSH HL
|
||||
; PUSH BC
|
||||
LD A,(HL)
|
||||
LD C,Dss.WrChar
|
||||
RST DssRst
|
||||
; POP BC
|
||||
POP HL
|
||||
POP DE
|
||||
LD A,(IX+3)
|
||||
DEC A
|
||||
ADD A,E
|
||||
LD E,A
|
||||
INC HL
|
||||
LD A,(HL)
|
||||
LD C,Dss.WrChar
|
||||
PUSH DE
|
||||
PUSH HL
|
||||
RST DssRst
|
||||
POP HL
|
||||
POP DE
|
||||
LD A,(IX+4)
|
||||
DEC A
|
||||
ADD A,D
|
||||
LD D,A
|
||||
INC HL
|
||||
LD A,(HL)
|
||||
PUSH DE
|
||||
PUSH HL
|
||||
LD C,Dss.WrChar
|
||||
RST DssRst
|
||||
POP HL
|
||||
POP DE
|
||||
LD E,(IX+1)
|
||||
INC HL
|
||||
LD A,(HL)
|
||||
LD C,Dss.WrChar
|
||||
RST DssRst
|
||||
;HORIZONTAL LINES
|
||||
INC HL
|
||||
LD A,(HL)
|
||||
LD (FramHor),A
|
||||
INC HL
|
||||
PUSH HL
|
||||
LD H,(IX+2)
|
||||
LD A,(IX+4)
|
||||
DEC A
|
||||
ADD A,H
|
||||
LD L,A
|
||||
LD A,(IX+3)
|
||||
SUB 2
|
||||
LD C,Dss.WrChar
|
||||
LD E,(IX+1)
|
||||
INC E
|
||||
LD B,(IX+5)
|
||||
FramHl1 PUSH AF
|
||||
PUSH HL
|
||||
LD D,H
|
||||
LD A,0
|
||||
FramHor EQU $-1
|
||||
PUSH AF
|
||||
RST DssRst
|
||||
POP AF
|
||||
LD D,L
|
||||
RST DssRst
|
||||
POP HL
|
||||
POP AF
|
||||
INC E
|
||||
DEC A
|
||||
JR NZ,FramHl1
|
||||
POP HL
|
||||
;VERTICAL LINES
|
||||
LD A,(HL)
|
||||
LD (FramVer),A
|
||||
LD H,(IX+1)
|
||||
LD A,(IX+3)
|
||||
DEC A
|
||||
ADD A,H
|
||||
LD L,A
|
||||
LD A,(IX+4)
|
||||
SUB 2
|
||||
LD C,Dss.WrChar
|
||||
LD D,(IX+2)
|
||||
INC D
|
||||
LD B,(IX+5)
|
||||
FramVl1 PUSH AF
|
||||
PUSH HL
|
||||
LD E,H
|
||||
LD A,0
|
||||
FramVer EQU $-1
|
||||
PUSH AF
|
||||
RST DssRst
|
||||
POP AF
|
||||
LD E,L
|
||||
RST DssRst
|
||||
POP HL
|
||||
POP AF
|
||||
INC D
|
||||
DEC A
|
||||
JR NZ,FramVl1
|
||||
RET
|
||||
|
||||
;ËÈÑÒÀÅÒ ÄÎ ÑËÅÄÓÞÙÅÃÎ ÏÓÍÊÒÀ ÌÅÍÞ
|
||||
MenuItemLen
|
||||
LD B,0
|
||||
NextMnuItem
|
||||
LD A,(HL)
|
||||
INC HL
|
||||
AND A
|
||||
RET Z
|
||||
INC B
|
||||
JR NextMnuItem
|
||||
|
||||
|
||||
;Ïðîðèñîâêà îêíà è îáðàáîòêà äèàëîãà
|
||||
DialogWindow
|
||||
call Windows
|
||||
inc hl
|
||||
; jp WinDialog
|
||||
|
||||
;ÏÏ îáðàáîòêè äèàëîãîâîãî îêíà
|
||||
;Dialogs
|
||||
;+0 (1) - Count of Items
|
||||
;+1 (N) - Item Descriptor
|
||||
;Descriptor
|
||||
; +0 - X
|
||||
; +1 - Y
|
||||
; +2 - Len
|
||||
; +3 - Attrib
|
||||
; +4 (2) - Hot Key
|
||||
; +6 (2) - Routine
|
||||
|
||||
WinDialog:
|
||||
ld a,(hl)
|
||||
ld (DlgItemsCnt),a
|
||||
inc hl
|
||||
ld (.DialogAdr),hl
|
||||
xor a
|
||||
ld (SelectedItem),a
|
||||
.Lp1 ld a,(SelectedItem)
|
||||
ld l,a
|
||||
ld h,0
|
||||
add hl,hl
|
||||
add hl,hl
|
||||
add hl,hl
|
||||
ld de,0
|
||||
.DialogAdr equ $-2
|
||||
add hl,de
|
||||
ld e,(hl)
|
||||
inc hl
|
||||
ld d,(hl)
|
||||
inc hl
|
||||
ld b,(hl)
|
||||
ex hl,de
|
||||
call CursorSet
|
||||
.Lp2 ld c,Dss.ScanKey
|
||||
rst DssRst
|
||||
jr z,.Lp2
|
||||
ld a,d
|
||||
cp #52 ;<Down>
|
||||
jr nz,.Lp3
|
||||
.LpDn ld a,(DlgItemsCnt)
|
||||
ld b,a
|
||||
ld a,(SelectedItem)
|
||||
inc a
|
||||
cp b ;Äîñòèãëè ìàêñèìàëüíîãî ïóíêòà
|
||||
jr z,.Lp2
|
||||
.Lp4 ld (SelectedItem),a
|
||||
call CursorRes
|
||||
jr .Lp1
|
||||
.Lp3 cp #58 ;<Up>
|
||||
jr nz,.Lp5
|
||||
.LpUp ld a,(SelectedItem)
|
||||
and a
|
||||
jr z,.Lp2
|
||||
dec a
|
||||
jr .Lp4
|
||||
.Lp5 cp #54 ;<Left>
|
||||
jr z,.LpUp
|
||||
cp #56 ;<Right>
|
||||
jr z,.LpDn
|
||||
.LpAscii
|
||||
ld a,e ;ASCII - êîä
|
||||
cp #0D ;<Enter>
|
||||
jr nz,.Lp2
|
||||
call CursorRes
|
||||
ld a,(SelectedItem)
|
||||
ld l,a
|
||||
ld h,0
|
||||
add hl,hl
|
||||
add hl,hl
|
||||
add hl,hl
|
||||
ld de,(.DialogAdr)
|
||||
add hl,de
|
||||
ld de,6
|
||||
add hl,de
|
||||
ifdef DEBUG
|
||||
push hl
|
||||
ld de,0
|
||||
call PrintReg
|
||||
pop hl
|
||||
endif
|
||||
ld a,(hl)
|
||||
inc hl
|
||||
ld h,(hl)
|
||||
ld l,a
|
||||
or h
|
||||
ret z ;Åñëè àäðåñ =0, òî RET
|
||||
ifdef DEBUG
|
||||
push hl
|
||||
ld de,8
|
||||
call PrintReg
|
||||
pop hl
|
||||
endif
|
||||
jp (hl)
|
||||
DlgItemsCnt
|
||||
DB 0
|
||||
SelectedItem
|
||||
DB 0
|
||||
STANDART; TYPE, X, Y, L,H,COLOR
|
||||
DEFB 5,10,13,#20,6,7
|
||||
|
||||
;Ordinary frame
|
||||
FrameType1
|
||||
DB #DA,#BF,#D9,#C0,#C4,#B3
|
||||
;Double frame
|
||||
FrameType2
|
||||
DB #C9,#BB,#BC,#C8,#CD,#BA
|
Loading…
Reference in New Issue
Block a user