; 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