349 lines
7.7 KiB
Plaintext
349 lines
7.7 KiB
Plaintext
|
|
; LAST UPDATE: 20.03.2025 savelij
|
|
|
|
include macros.a80
|
|
include fn_const.a80
|
|
include fn_macros.a80
|
|
include ports_sp.a80
|
|
include define_sp.a80
|
|
include macros_sp.a80
|
|
include dss_sp.a80
|
|
|
|
org PluginOrg ; #C000 - Header lenght
|
|
; Flex Navigator plugin header
|
|
PluginStart: db "FLX-PLUG" ; Id
|
|
dw 0x0000 ; LoadOffset
|
|
dw PluginEntry ; EntryOffset
|
|
db 0x00 ; PluginMode
|
|
db 0x00,0x00,0x00 ; Reserved
|
|
|
|
PluginEntry:
|
|
MAKEWINDOW WINSUBOBJ.STORE
|
|
W_MAIN 242,80,155,97
|
|
W_FILL 4,2,147,10,COLORI.BLACK
|
|
W_TEXT 6,3,COLORI.WHITE,"Calculator"
|
|
W_HORIZLINE 1,13,154
|
|
W_BORDER 8,19,139,11
|
|
W_BUTTON 8,34,26,13
|
|
W_BUTTON 36,34,26,13
|
|
W_BUTTON 64,34,26,13
|
|
W_BUTTON 92,34,26,13
|
|
W_BUTTON 120,34,26,13
|
|
W_BUTTON 8,49,26,13
|
|
W_BUTTON 36,49,26,13
|
|
W_BUTTON 64,49,26,13
|
|
W_BUTTON 92,49,26,13
|
|
W_BUTTON 120,49,26,13
|
|
W_BUTTON 8,64,26,13
|
|
W_BUTTON 36,64,26,13
|
|
W_BUTTON 64,64,26,13
|
|
W_BUTTON 92,64,26,13
|
|
W_BUTTON 120,64,26,28
|
|
W_BUTTON 8,79,26,13
|
|
W_BUTTON 36,79,26,13
|
|
W_BUTTON 64,79,26,13
|
|
W_BUTTON 92,79,26,13
|
|
W_END
|
|
ld ix, 16h
|
|
ld hl, asc_C36E ; "7"
|
|
ld de, 107h
|
|
ld bc, 75h
|
|
ld a, 80h
|
|
call JUMPS.PrnRangPathC
|
|
ld hl, asc_C370 ; "8"
|
|
ld de, 123h
|
|
ld bc, 75h
|
|
ld a, 80h
|
|
call JUMPS.PrnRangPathC
|
|
sub_C103: ld hl, asc_C372 ; "9"
|
|
ld de, 140h
|
|
ld bc, 75h
|
|
ld a, 80h
|
|
call JUMPS.PrnRangPathC
|
|
ld hl, asc_C37F ; "/"
|
|
ld de, 15Bh
|
|
ld bc, 75h
|
|
ld a, 80h
|
|
call JUMPS.PrnRangPathC
|
|
ld hl, asc_C374 ; "C"
|
|
ld de, 177h
|
|
ld bc, 75h
|
|
ld a, 80h
|
|
call JUMPS.PrnRangPathC
|
|
ld hl, asc_C368 ; "4"
|
|
ld de, 107h
|
|
ld bc, 84h
|
|
ld a, 80h
|
|
call JUMPS.PrnRangPathC
|
|
ld hl, asc_C36A ; "5"
|
|
ld de, 123h
|
|
ld bc, 84h
|
|
ld a, 80h
|
|
call JUMPS.PrnRangPathC
|
|
ld hl, asc_C36C ; "6"
|
|
ld de, 140h
|
|
ld bc, 84h
|
|
ld a, 80h
|
|
call JUMPS.PrnRangPathC
|
|
ld hl, asc_C37D ; "*"
|
|
ld de, 15Bh
|
|
ld bc, 84h
|
|
ld a, 80h
|
|
call JUMPS.PrnRangPathC
|
|
ld hl, asc_C376 ; "CE"
|
|
ld de, 178h
|
|
ld bc, 84h
|
|
ld a, 80h
|
|
call JUMPS.PrnRangPathC
|
|
ld hl, asc_C362 ; "1"
|
|
ld de, 107h
|
|
ld bc, 93h
|
|
ld a, 80h
|
|
call JUMPS.PrnRangPathC
|
|
ld hl, asc_C364 ; "2"
|
|
ld de, 123h
|
|
ld bc, 93h
|
|
ld a, 80h
|
|
call JUMPS.PrnRangPathC
|
|
ld hl, asc_C366 ; "3"
|
|
ld de, 140h
|
|
ld bc, 93h
|
|
ld a, 80h
|
|
call JUMPS.PrnRangPathC
|
|
ld hl, asc_C37B ; "-"
|
|
ld de, 15Bh
|
|
ld bc, 93h
|
|
ld a, 80h
|
|
call JUMPS.PrnRangPathC
|
|
ld hl, asc_C387 ; "="
|
|
ld de, 178h
|
|
ld bc, 9Ah
|
|
ld a, 80h
|
|
call JUMPS.PrnRangPathC
|
|
ld hl, asc_C360 ; "0"
|
|
ld de, 107h
|
|
ld bc, 0A2h
|
|
ld a, 80h
|
|
call JUMPS.PrnRangPathC
|
|
ld hl, asc_C381 ; "+/-"
|
|
ld de, 123h
|
|
ld bc, 0A2h
|
|
ld a, 80h
|
|
call JUMPS.PrnRangPathC
|
|
ld hl, asc_C385 ; "."
|
|
ld de, 13Fh
|
|
ld bc, 0A2h
|
|
ld a, 80h
|
|
call JUMPS.PrnRangPathC
|
|
ld hl, asc_C379 ; "+"
|
|
ld de, 15Bh
|
|
ld bc, 0A2h
|
|
ld a, 80h
|
|
call JUMPS.PrnRangPathC
|
|
call JUMPS.ResFire
|
|
loc_C1F4: call sub_C324
|
|
loc_C1F7: ld ix, PluginMouseTab
|
|
call JUMPS.TestCoords
|
|
SPDSS DSSF.SCANKEY
|
|
jp z, loc_C1F7
|
|
ld a, b
|
|
or a
|
|
jp nz, loc_C1F7
|
|
ld a, e
|
|
cp '0'
|
|
jp z, loc_C2CD
|
|
cp '1'
|
|
jp z, loc_C2CD
|
|
cp '2'
|
|
jp z, loc_C2CD
|
|
cp '3'
|
|
jp z, loc_C2CD
|
|
cp '4'
|
|
jp z, loc_C2CD
|
|
cp '5'
|
|
jp z, loc_C2CD
|
|
cp '6'
|
|
jp z, loc_C2CD
|
|
cp '7'
|
|
jp z, loc_C2CD
|
|
cp '8'
|
|
jp z, loc_C2CD
|
|
cp '9'
|
|
jp z, loc_C2CD
|
|
cp '.'
|
|
jp z, loc_C2CD
|
|
cp 'S'
|
|
jp z, loc_C283
|
|
cp 's'
|
|
jp z, loc_C283
|
|
cp 'R'
|
|
jp z, loc_C266
|
|
cp 'r'
|
|
jp z, loc_C266
|
|
cp 8
|
|
jp z, loc_C304
|
|
cp 1Bh
|
|
jp nz, loc_C1F4
|
|
WINDOWCLOSE
|
|
or a
|
|
ret
|
|
|
|
loc_C266: ld a, 20h ; ' '
|
|
ld (byte_C33F), a
|
|
ld a, 30h ; '0'
|
|
ld (byte_C340), a
|
|
xor a
|
|
ld (byte_C33E), a
|
|
ld (byte_C33D), a
|
|
ld b, 0Ah
|
|
ld hl, byte_C341
|
|
loc_C27C: ld (hl), a
|
|
inc hl
|
|
djnz loc_C27C
|
|
jp loc_C1F4
|
|
|
|
loc_C283: ld hl, byte_C340
|
|
ld a, (hl)
|
|
cp 30h ; '0'
|
|
jp z, loc_C1F7
|
|
ld hl, byte_C33F
|
|
ld a, (hl)
|
|
xor 0Dh
|
|
ld (hl), a
|
|
jp loc_C1F4
|
|
|
|
loc_C296: ld a, '0'
|
|
jp loc_C2CD
|
|
|
|
loc_C29B: ld a, '1'
|
|
jp loc_C2CD
|
|
|
|
loc_C2A0: ld a, '2'
|
|
jp loc_C2CD
|
|
|
|
loc_C2A5: ld a, '3'
|
|
jp loc_C2CD
|
|
|
|
loc_C2AA: ld a, '4'
|
|
jp loc_C2CD
|
|
|
|
loc_C2AF: ld a, '5'
|
|
jp loc_C2CD
|
|
|
|
loc_C2B4: ld a, '6'
|
|
jp loc_C2CD
|
|
|
|
loc_C2B9: ld a, '7'
|
|
jp loc_C2CD
|
|
|
|
loc_C2BE: ld a, '8'
|
|
jp loc_C2CD
|
|
|
|
loc_C2C3: ld a, '9'
|
|
jp loc_C2CD
|
|
|
|
loc_C2C8: ld a, '.'
|
|
jp loc_C2CD
|
|
|
|
loc_C2CD: ld c, a
|
|
ld a, (byte_C33E)
|
|
cp 0Bh
|
|
jp z, loc_C1F4
|
|
ld e, a
|
|
ld d, 0
|
|
ld hl, byte_C340
|
|
ld a, (hl)
|
|
cp '0'
|
|
jr nz, loc_C2E7
|
|
ld a, c
|
|
cp '0'
|
|
jp z, loc_C1F4
|
|
loc_C2E7: ld a, c
|
|
cp '.'
|
|
jr nz, loc_C2F8
|
|
ld a, (byte_C33D)
|
|
or a
|
|
jp nz, loc_C1F4
|
|
ld a, 0FFh
|
|
ld (byte_C33D), a
|
|
loc_C2F8: add hl, de
|
|
ld (hl), c
|
|
ld a, (byte_C33E)
|
|
inc a
|
|
ld (byte_C33E), a
|
|
jp loc_C1F4
|
|
|
|
loc_C304: ld a, (byte_C33E)
|
|
cp 1
|
|
jp z, loc_C266
|
|
dec a
|
|
ld (byte_C33E), a
|
|
ld e, a
|
|
ld d, 0
|
|
ld hl, byte_C340
|
|
add hl, de
|
|
ld a, (hl)
|
|
cp '.'
|
|
jr nz, loc_C320
|
|
ld a, d
|
|
ld (byte_C33D), a
|
|
loc_C320: ld (hl), d
|
|
jp loc_C1F4
|
|
|
|
sub_C324: ld hl, asc_C34D
|
|
call sub_C32D
|
|
ld hl, byte_C33F
|
|
sub_C32D: ld ix, 48h
|
|
ld de, 183h
|
|
ld bc, 65h
|
|
ld a, 80h
|
|
call JUMPS.PrnRangPathR
|
|
ret
|
|
|
|
byte_C33D: db 0
|
|
byte_C33E: db 0
|
|
byte_C33F: db 20h
|
|
byte_C340: db 30h
|
|
byte_C341: db 0Ch DUP 0
|
|
asc_C34D: DB " ",0
|
|
asc_C360: DB "0",0
|
|
asc_C362: DB "1",0
|
|
asc_C364: DB "2",0
|
|
asc_C366: DB "3",0
|
|
asc_C368: DB "4",0
|
|
asc_C36A: DB "5",0
|
|
asc_C36C: DB "6",0
|
|
asc_C36E: DB "7",0
|
|
asc_C370: DB "8",0
|
|
asc_C372: DB "9",0
|
|
asc_C374: DB "C",0
|
|
asc_C376: DB "CE",0
|
|
asc_C379: DB "+",0
|
|
asc_C37B: DB "-",0
|
|
asc_C37D: DB "*",0
|
|
asc_C37F: DB "/",0
|
|
asc_C381: DB "+/-",0
|
|
asc_C385: DB ".",0
|
|
asc_C387: DB "=",0
|
|
|
|
PluginMouseTab: dw 0x00FA,0x0114,0x0072,0x007F,0x0021,0x0000,loc_C2B9,0x0000
|
|
dw 0x0116,0x0130,0x0072,0x007F,0x0021,0x0000,loc_C2BE,0x0000
|
|
dw 0x0132,0x014C,0x0072,0x007F,0x0021,0x0000,loc_C2C3,0x0000
|
|
dw 0x014E,0x0168,0x0072,0x007F,0x0021,0x0000,loc_C266,0x0000
|
|
dw 0x016A,0x0184,0x0072,0x007F,0x0021,0x0000,loc_C266,0x0000
|
|
dw 0x00FA,0x0114,0x0081,0x008E,0x0021,0x0000,loc_C2AA,0x0000
|
|
dw 0x0116,0x0130,0x0081,0x008E,0x0021,0x0000,loc_C2AF,0x0000
|
|
dw 0x0132,0x014C,0x0081,0x008E,0x0021,0x0000,loc_C2B4,0x0000
|
|
dw 0x014E,0x0168,0x0081,0x008E,0x0021,0x0000,loc_C266,0x0000
|
|
dw 0x016A,0x0184,0x0081,0x008E,0x0021,0x0000,loc_C304,0x0000
|
|
dw 0x00FA,0x0114,0x0090,0x009D,0x0021,0x0000,loc_C29B,0x0000
|
|
dw 0x0116,0x0130,0x0090,0x009D,0x0021,0x0000,loc_C2A0,0x0000
|
|
dw 0x0132,0x014C,0x0090,0x009D,0x0021,0x0000,loc_C2A5,0x0000
|
|
dw 0x014E,0x0168,0x0090,0x009D,0x0021,0x0000,loc_C266,0x0000
|
|
dw 0x016A,0x0184,0x0090,0x00AC,0x0021,0x0000,loc_C266,0x0000
|
|
dw 0x00FA,0x0114,0x009F,0x00AC,0x0021,0x0000,loc_C296,0x0000
|
|
dw 0x0116,0x0130,0x009F,0x00AC,0x0021,0x0000,loc_C283,0x0000
|
|
dw 0x0132,0x014C,0x009F,0x00AC,0x0021,0x0000,loc_C2C8,0x0000
|
|
dw 0x014E,0x0168,0x009F,0x00AC,0x0021,0x0000,loc_C266,0x0000
|
|
dw 8000h
|