CLIGUI 2024-12-24 04:34
I made this program which uses peek and poke to save and check a pin, but now I think it would be better as a text password.
How do I save text?
SP4CEBAR 2024-12-24 11:20 (Edited)
To save text you need to PEEK or POKE each character, for example:
PASSWORD$ = ""
CALL PEEK_STRING( PASSWORD$, $E000 )
INPUT "PASSWORD ";GUESS$
IF GUESS$ = PASSWORD$ THEN
INPUT "NEW PASSWORD ";PASSWORD$
CALL POKE_STRING( PASSWORD$, $E000 )
END IF
'S T R I N G W R I T I N G
SUB POKE_STRING( STRING$, ADDRESS )
FOR I=0 TO LEN( STRING$ ) -1
POKE ADDRESS +I, ASC( MID$( STRING$, I, 1 ) )
NEXT I
'THE NULL CHARACTER IS USED IN LANGUAGES LIKE C TO SIGNIFY THE END OF A STRING IN MEMORY
POKE ADDRESS +LEN( STRING$ ), 0
END SUB
SUB PEEK_STRING( R_STRING$, ADDRESS )
R_STRING$ = ""
I = 0
'REPEAT UNTIL THE NULL CHARACTER IS READ
REPEAT
R_STRING$ = R_STRING$ +CHR$( PEEK( ADDRESS +I ) )
INC I
UNTIL PEEK( ADDRESS +I ) = 0
END SUB
Let me know if this helps
Sylveon 2024-12-24 20:16
I used ASCII to save usernames and passwords and images on IPV
was8bit 2024-12-25 02:45 (Edited)
You can use a bulk data editor to hide anything you don’t want the average player to see… I have a demo on how to use TOOL commands to create, edit, and read data from bulk storage…
Sylveon 2024-12-25 15:21
Yes :3
CLIGUI 2024-12-28 20:19
Still not sure, having trouble with the example
SP4CEBAR 2024-12-28 21:32 (Edited)
I'm sorry for the inconvenience, the code was untested
I fixed the bug in the "POKE_STRING" subprogram, here's a new version:
SUB POKE_STRING( STRING$, ADDRESS )
FOR I=0 TO LEN( STRING$ ) -1
POKE ADDRESS +I, ASC( MID$( STRING$, I +1, 1 ) )
NEXT I
'THE NULL CHARACTER IS USED IN LANGUAGES LIKE C TO SIGNIFY THE END OF A STRING IN MEMORY
POKE ADDRESS +LEN( STRING$ ), 0
END SUB
To use the example you should hit enter on the first use to submit an empty password (because there is no password saved then), after which you can set a new password, when you rerun the program you should be able to fill in the new password.
Sylveon 2024-12-28 23:57
Thanks :3
CLIGUI 2024-12-29 02:19
No worries, here is the complete fixed example
CLIGUI 2024-12-29 02:20
PASSWORD$ = ""
CALL PEEK_STRING( PASSWORD$, $E000 )
INPUT "PASSWORD ";GUESS$
IF GUESS$ = PASSWORD$ THEN
INPUT "NEW PASSWORD ";PASSWORD$
CALL POKE_STRING( PASSWORD$, $E000 )
END IF
'S T R I N G W R I T I N G
SUB POKE_STRING( STRING$, ADDRESS )
FOR I=0 TO LEN( STRING$ ) -1
POKE ADDRESS +I, ASC( MID$( STRING$, I +1, 1 ) )
NEXT I
'THE NULL CHARACTER IS USED IN LANGUAGES LIKE C TO SIGNIFY THE END OF A STRING IN MEMORY
POKE ADDRESS +LEN( STRING$ ), 0
END SUB
SUB PEEK_STRING( R_STRING$, ADDRESS )
R_STRING$ = ""
I = 0
'REPEAT UNTIL THE NULL CHARACTER IS READ
REPEAT
R_STRING$ = R_STRING$ +CHR$( PEEK( ADDRESS +I ) )
INC I
UNTIL PEEK( ADDRESS +I ) = 0
END SUB
Sylveon 2024-12-29 13:29
Thank you :3