Contents |
Effect
Sets a system password and stores it in the SRAM of the Real Time Clock (RTC).
Syntax
SET PASSWORD <Password>
Parameter
<Password> is a string (between quotes) or a string variable. The string can contain between 0 to 255 characters. You will need to enter this pasword in blind mode on the logo screen before being able to use your computer. The password needs to be followed by a pressing of the RETURN key.
Remark: SET PROMPT and SET TITLE use also such a string of characters. Only the last entered instruction will be saved in the Real Time Clock (RTC).
Examples
SET PASSWORD "hello!"
SET PASSWORD "" ' Empty password, but you need to press the RETURN key to quit the logo screen
Here's a BASIC program to create and implement a 'simple' password of 255 characters:
10 CLEAR 1000 20 A$ = "" 30 FOR I = 1 TO 255 40 A$ = A$ + "1" 50 NEXT I 60 SET PASSWORD A$
Tips
- To skip the password, you need to boot while pressing simultaneously the GRAPH and STOP keys
- To remove the password, use SET PROMPT or SET TITLE, eventually with an empty string of characters
Storage in the RTC
The Real Time Clock (RTC) is a small storage of 53 bytes in blueMSX (52 bytes in openMSX). However, the Russian Yamaha computers with network have an additionnal byte that comes after #26 in blueMSX, so, for these machines, #27 to #34 are replaced by #28 to #35 in blueMSX.
The data saved with SET PASSWORD are stored as follows (hexadecimal locations in the files):
- #28 in blueMSX (#27 in openMSX)
This byte has always the value 01 when the string of characters X$ is used for SET PASSWORD
- #29 to #2B in blueMSX (#28 to #2A in openMSX)
If a correct password has been entered, these bytes work as a security to avoid that a power failure introduces a wrong password. They need to have always respectively the values 01, 02 and 03.
- #2C to #2F in blueMSX (#2B to #2E in openMSX)
These bytes store the password in form of a 16bit CRC value.
- #30 in blueMSX (#2F in openMSX)
When the value is different from 00, the computer will read the optional 'key cartridge value' (a 16 bit password) via I/0 port 7F and compare it with the contents of the 4 previous bytes.
Related to
Compatibility
MSX-BASIC 2.0 or higher