I got a SUB PROGRAM NOT DEFINE error while attempting to execute a CALL ABSOLUTE statement in QB45, while it always works well in QB.
I can't find anything in about this.
Thanks.
Code:
REM MOUSE
DECLARE SUB MouseInit ()
DECLARE SUB MouseReset ()
DECLARE SUB MouseHide ()
DECLARE SUB MouseShow ()
DECLARE FUNCTION MouseX% ()
DECLARE FUNCTION MouseY% ()
DECLARE FUNCTION MouseButtons% ()
DIM SHARED a%(34)
DEF SEG = VARSEG(a%(0))
FOR i% = 0 TO 63
READ d%
POKE VARPTR(a%(0)) + i%, d%
NEXT i%
DEF SEG
MouseInit
MouseShow
DO
LOOP UNTIL INKEY$ = CHR$(27)
MouseReset
END
'Assembly
DATA 00,00,00,00,00,00,&HB8,00,00
DATA &HCD,&H33,&H3D,&HFF,&HFF,&H75,&H0D,&H0E,&H07
DATA &HBA,&H24,&H00,&HB9,&HFF,&HFF,&HB8,&H0C,&H00
DATA &HCD,&H33,&HCB,&HB8,00,00
DATA &HCD,&H33,&HCB,&H2E,&H89,&H0E,00,00
DATA &H2E,&H89,&H16,02,00,&H2E,&H89,&H1E,04,00
DATA &HCB,&HB8,01,00,&HCD,&H33
DATA &HCB,&HB8,02,00,&HCD,&H33,&HCB
FUNCTION MouseButtons%
MouseButtons% = a%(2)
END FUNCTION
SUB MouseHide
DEF SEG = VARSEG(a%(0))
CALL ABSOLUTE(VARPTR(a%(0)) + &H3A)
DEF SEG
END SUB
SUB MouseInit
DEF SEG = VARSEG(a%(0))
CALL ABSOLUTE(VARPTR(a%(0)) + 6)
DEF SEG
END SUB
SUB MouseReset
DEF SEG = VARSEG(a%(0))
CALL ABSOLUTE(VARPTR(a%(1)) + &H1E)
DEF SEG
END SUB
SUB MouseShow
DEF SEG = VARSEG(a%(0))
CALL ABSOLUTE(VARPTR(a%(0)) + &H34)
DEF SEG
END SUB
FUNCTION MouseX%
MouseX% = a%(0)
END FUNCTION
FUNCTION MouseY%
MouseY% = a%(1)
END FUNCTION
I can't find anything in about this.
Thanks.