How do i insert tokens the correct way?
Doing
ld de,tAbs \ bcall(_BufReplace)
gives me this:
EDIT: This snipped by chickendude seems to be working
http://pastebin.com/fEpTzgpb
EDIT2:
Somehow when using my custom menu in the programming editor my keyhook gets deleted afterwards, even though i back it up etc.
Code:
Menu:
res indicrun,(iy+indicflags)
res apptextsave,(iy+appflags)
ld hl,rawKeyHookPtr
ld de,appBackUpScreen
ld bc,4
ldir
ld a,(flags+34h)
ld (de),a
ld hl,textShadow
ld de,appBackUpScreen+4
ld bc,128
ldir
ld hl,structStart
ld de,ramCode
ld bc,structEnd-structStart
ldir
ld hl,dialogCallback
in a,(6)
bcall(_DialogInit)
bcall(_runIndicOff)
bcall(_StartDialog)
ld a,(cxCurApp)
push af
res appCurWord,(iy+appFlags)
ld hl,cmdShadow
ld (hl),' '
ld de,cmdShadow+1
ld bc,127
ldir
ld hl,appBackUpScreen
ld de,rawKeyHookPtr
ld bc,4
ldir
ld a,(hl)
ld (flags+34h),a
ld de,textShadow
ld bc,128
ldir
pop af
jp nz,ReturnNZ
ld hl,appData+6 ; menu option
ld e,(hl)
ld d,0
ld hl,menuJumpTable-2 ; minus two because offsets start at 1
add hl,de
add hl,de
ld e,(hl)
inc hl
ld d,(hl)
ex de,hl
jp (hl)
dialogCallback:
xor a
ret
structStart:
.db 1
.db 1
.db 1
.dw sOptions-structStart
.db 5
.db 1
.db 1
.dw sItem1-structStart
.db 5
.db 1
.db 2
.dw sItem2-structStart
.db 0
sOptions:
.db 7,"VECTORS"
sItem1:
.db 4,"abs("
sItem2:
.db 5,"norm("
structEnd:
menuJumpTable:
.dw insertTokenAbs
.dw insertTokenNorm
insertTokenAbs:
ld hl,absTok
ld bc,1
call insertTok
ld a,kQuit
jp ReturnNZ
insertTokenNorm:
ld hl,normTok
ld bc,2
call insertTok
ld a,kQuit
jp ReturnNZ
absTok:
.db tAbs
normTok:
.db customTokenPrefix
.db tNormLower
insertTok:
; hl - tok
; bc - len (bytes)
push bc
ld de,appBackUpScreen
ldir
pop bc
ld hl,appBackUpScreen
ld (rclQueue),hl
add hl,bc
ld (rclQueueEnd),hl
set 7, (iy+0Eh)
set 2, (iy+33h)
ret