Saving text characters

2

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?

Lock.nx | Open in app
2024-12-24 04:34

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


Log in to reply.