Basic variables: Difference between revisions

From Color 64 BBS Wiki
No edit summary
No edit summary
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
[[programming features|Programming Features]] - <strong>Basic Variables Used in Color 64</strong>
[[programming features|Programming Features]] - <strong>Basic Variables Used in Color 64</strong>


The table below defines all variables used by Color 64 BBS:  
The table below defines all variables used by Color 64 BBS:


{| class="wikitable
{| class="wikitable"
|-
|-
|+List of Color 64 Defined Variables  
|+ List of Color 64 Defined Variables
! Var
! Var
! Definition and Function
! Definition and Function
|-
|-
| A  
| A
| General use numeric variable. It is used to store the current number of lines in the message editor and other routines that use the array A$().  
| General-use numeric variable. It is used to store the current number of lines in the message editor and in other routines that use the array A$().
|-
|-
| A$  
| A$
|This variable has several uses: It is used to return the character read in in the routine at line 110.  It is used very often for when information is read in from disk also. Also, the general output commands (#, $, %, & and ') will print the contents of A$ if no string expression is specified. This is a very useful shortcut in many cases and saves programming space.  
| This variable has several uses. It is used to return the character read by the routine at line 110, and it is also frequently used when information is read from disk. The general output commands (#, $, %, & and ') will print the contents of A$ if no string expression is specified. This is a useful shortcut in many cases and saves programming space.
|-
|-
| A$()  
| A$()
| This is the most heavily used string array in the Color 64 system. It is used in the message editor to hold the message lines. It is also used by many other routines which handle larger amounts of string information. It is always dimensioned to 232 when the system is first initialized.  
| This is the most heavily used string array in the Color 64 system. It is used in the message editor to hold message lines. It is also used by many other routines that handle larger amounts of string data. It is always dimensioned to 232 when the system is first initialized.
|-
|-
| A1$  
| A1$
| First line of current caller's address as stored in the password file.  
| First line of the current caller's address as stored in the password file.
|-
|-
| A2$  
| A2$
| Second line of current caller's address as stored in the password file.  
| Second line of the current caller's address as stored in the password file.
|-
|-
| AG
| A3
| Current caller's access group as stored in the password file.  
| Used in the main overlays to flag that an operation with AUX3 (Games) is about to be performed. It is immediately cleared after use at line 104. Applies to version 8.1a only.
|-
|-
| AR%
| AG
| Used only in Network overlays, to determine which message category public messages get released into, and which UD directory that Network file transfers are released into.  Defined in Net Setup.  
| Current caller's access group as stored in the password file.
|-
|-
| AT
| AR%
| Stores whether your modem supports DTR disconnect or not.  
| Used only in Network overlays to determine which message category public messages are released into, and which UD directory Network file transfers are released into. Defined in Net Setup.
|-
|-
| AZ$
| AT
| The MODEM INIT string for Hayes type modems as defined in SETUP (Ex. ATE1X1S0=1S2=43F1Q0V1M0).  
| Stores whether the modem supports DTR disconnect.
|-
|-
| B
| AZ$
| General Use
| The MODEM INIT string for Hayes-type modems as defined in SETUP (example: ATE1X1S0=1S2=43F1Q0V1M0).
|-
|-
| B$
| B
| General Use
| General use.
|-
|-
| BA
| B$
| Used only in the Network overlays, this holds the current balance of the caller.  
| General use.
|-
|-
| BD
| BA
| Current caller's date of birth in ADN format as stored in the password file.  
| Used only in the Network overlays. Holds the current balance of the caller.
|-
|-
| BD$
| BD
| Current caller's date of birth in the form "MM/DD/YYYY", calculated from the variable BD.  
| Current caller's date of birth in ADN format as stored in the password file.
|-
|-
| BM
| BD$
| Lowest message number on the system as stored in √variables.  
| Current caller's date of birth in the form "MM/DD/YYYY", calculated from the variable BD.
|-
|-
| BN%
| BM
| Used only in Network overlays.  If this variable is set the system is to lock out nodes when, upon attempting to call a remote node, a NO CARRIER status is returned from the modem.  Defined in Net Setup.  
| Lowest message number on the system as stored in √variables.
|-
|-
| BR
| BN%
| Current caller’s baud rate.  
| Used only in Network overlays. If this variable is set, the system will lock out nodes when, upon attempting to call a remote node, a NO CARRIER status is returned from the modem. Defined in Net Setup.
|-
|-
| BS
| BR
| Last used block size of the current caller.  If it is a 0, the caller last used Xmodem, otherwise they last used Punter.  
| Current caller’s baud rate.
|-
|-
| C
| BS
| General use variable which is often used to temporarily compute the current caller's absolute download credit.  
| Last used block size of the current caller. If it is 0, the caller last used Xmodem; otherwise, they last used Punter.
|-
|-
| C$
| C
| General use variable which is used many times to temporarily hold the contents of TX$, so that the previous value of TX$ can be preserved in cases where TX$ needs to be changed.  
| General-use variable often used to temporarily compute the current caller's absolute download credit.
|-
|-
| C1
| C$
| Number of download blocks given for each block uploaded as defined in SETUP.  See also C2, PD, and PU.  
| General-use variable often used to temporarily hold the contents of TX$, so the previous value of TX$ can be preserved in cases where TX$ needs to be changed.
|-
|-
| C2
| C1
| Number of free upload blocks you give each caller as defined in SETUP. See also C1, PD, and PU.  
| Number of download blocks given for each block uploaded as defined in SETUP. See also C2, PD, and PU.
|-
|-
| C2$
| C2
| This variable is two cr$'s added together. Again, it saves memory and time to print c2$ instead of cr$cr$ or chr$(13)chr$(13).  
| Number of free upload blocks given to each caller as defined in SETUP. See also C1, PD, and PU.
|-
|-
| C3
| C2$
| Credit system exemption level as defined in SETUP.  
| This variable is two CR$'s added together. It saves memory and time to print C2$ instead of CR$CR$ or CHR$(13)CHR$(13).
|-
|-
| C4
| C3
|Maximum files you want to allow on your public messages drive as defined in SETUP.  
| Credit system exemption level as defined in SETUP.
|-
|-
| CA
| C4
|Stores the current message category.  It is only used in √bbs.msgs.  
| Maximum number of files allowed on the public messages drive as defined in SETUP.
|-
|-
| CA$()
| CA
|Category names as defined in SETUP.  
| Stores the current message category. It is used only in √bbs.msgs.
|-
|-
| CA%()  
| CA$()
|The category of each message stored in public messages.  
| Category names as defined in SETUP.
|-
|-
| CA()  
| CA%()
|The level for each category as defined in SETUP.  
| Category of each message stored in public messages.
|-
|-
| CC
| CA()
| Number of message categories as defined in SETUP.  
| Level for each category as defined in SETUP.
|-
|-
| CD
| CC
| Your modem's carrier detect status value as defined by SETUP.  
| Number of message categories as defined in SETUP.
|-
|-
| CL%
| CD
| The Network window closing hour as defined in Net Setup.  
| Modem carrier-detect status value as defined in SETUP.
|-
|-
| CM%()
| CL%
| This integer array stores the BBS COMMANDS as defined in SETUP.  This array is also used to store some miscellaneous SETUP parameters.  
| Network window closing hour as defined in Net Setup.
|-
|-
| CR$
| CM%()
| This variable stores the value of a carriage return. It saves memory and time to print cr$ instead of chr$(13).  
| This integer array stores the BBS commands as defined in SETUP. This array is also used to store some miscellaneous SETUP parameters.
|-
|-
| CS$  
| CR$
| Chat subject that is displayed at the ONLINE: prompt after a caller requests chat mode.  
| This variable stores the value of a carriage return. It saves memory and time to print CR$ instead of CHR$(13).
|-
|-
| D()
| CS$
| This variable array stores the drive assignments for your file groups as defined in SETUP.  It is not wise to change these values unless you understand how the device number and drive number has been encoded in the variable; use GOSUB481-489 to select the desired drives.  
| Chat subject displayed at the ONLINE: prompt after a caller requests chat mode.
|-
|-
| D1
| D()
| The current month as computed by the timer routine at 1110-1190.  
| This array stores the drive assignments for file groups as defined in SETUP. It is not wise to change these values unless you understand how the device number and drive number have been encoded in the variable; use GOSUB481-489 to select the desired drives.
|-
|-
| D1$()
| D1
| The array (1 to 12) of month names, January to December.  
| The current month as computed by the timer routine at 1110-1190.
|-
|-
| D2
| D1$()
| The current day of the week (0 to 6, for Sunday to Saturday) as calculated by the timer routine at 1110-1190.  
| Array (1 to 12) of month names, January through December.
|-
|-
| D2$()
| D2
| The array (0 to 6) of names of the days of the week, Sunday to Saturday.  
| The current day of the week (0 to 6, for Sunday through Saturday) as calculated by the timer routine at 1110-1190.
|-
|-
| D3
| D2$()
| The current day of the month as calculated by the timer routine at 1110-1190.  
| Array (0 to 6) of day names, Sunday through Saturday.
|-
|-
| D4
| D3
| The current year as calculated by the timer routine at 1110-1190.  
| The current day of the month as calculated by the timer routine at 1110-1190.
|-
|-
| DA
| D4
| Current system ADN (Absolute Day Number).  See the section on Absolute Day Numbers for more information.  
| The current year as calculated by the timer routine at 1110-1190.
|-
|-
| DA$
| DA
| Current system date in the format "MM/DD/YYYY". It is calculated from the variable DA.  
| Current system ADN (Absolute Day Number). See the section on Absolute Day Numbers for more information.
|-
|-
| DC
| DA$
| Maximum number of downloads per call as defined in SETUP.  
| Current system date in the format "MM/DD/YYYY". It is calculated from the variable DA.
|-
|-
| DD
| DC
| Default download directory.  This is always the first directory defined in SETUP with a Y to download status.  See also UD.  
| Maximum number of downloads per call as defined in SETUP.
|-
|-
| DD$
| DD
| Current caller's membership information.  
| Default download directory. This is always the first directory defined in SETUP with a Y for download status. See also UD.
|-
|-
| DE$  
| DD$
| This variable stores the value of a DELETE character (CBM ASCII chr$(20)).  
| Current caller's membership information.
|-
|-
| DH$()
| DE$
| Drive init commands for the UD directories as defined in SETUP.  
| This variable stores the value of a DELETE character (CBM ASCII CHR$(20)).
|-
|-
| DN$()  
| DH$()
| Names of the UD directories as defined in SETUP.  
| Drive init commands for the UD directories as defined in SETUP.
|-
|-
| DN%()  
| DN$()
| Miscellaneous UD directory parameters as defined in SETUP.  
| Names of the UD directories as defined in SETUP.
|-
|-
| DR$
| DN%()
| Drive number of the currently selected drive (e.g. 0:, 1:, etc.).  
| Miscellaneous UD directory parameters as defined in SETUP.
|-
|-
| DT
| DR$
| Number of downloads made made by the caller on this call.  
| Drive number of the currently selected drive (for example, 0:, 1:, etc.).
|-
|-
| DV
| DT
| Device number of the currently selected drive.  
| Number of downloads made by the caller on this call.
|-
|-
| DX
| DV
| Last selected device/drive.  The system uses this variable to save time so that the system will not reselect a drive that was already selected. Also, setting this variable to 0 followed by a GOSUB460 will force a reselect of the current drive.  
| Device number of the currently selected drive.
|-
|-
| E1$
| DX
| This variable stores the first 3 or 4 disk errors that are displayed on the waiting for caller screen.  
| Last selected device/drive. The system uses this variable to save time so it will not reselect a drive that was already selected. Also, setting this variable to 0 followed by a GOSUB460 will force a reselect of the current drive.
|-
|-
| ED
| E1$
| Current caller's membership expiration date as stored in the password file as an ADN.  
| This variable stores the first 3 or 4 disk errors displayed on the waiting-for-caller screen.
|-
|-
| ED$  
| ED
| Current caller's membership expiration date in the format "MM/DD/YYYY". Calculated from ED.  
| Current caller's membership expiration date as stored in the password file as an ADN.
|-
| ED$
| Current caller's membership expiration date in the format "MM/DD/YYYY", calculated from ED.
|-
|-
| EM$
| EM$
| Stores user actions/summary for email report
| Stores user actions and summary information for the email report.
|-
|-
| ER  
| ER
| Error number read in from disk error channel by the routine at 510.  
| Error number read from the disk error channel by the routine at 510.
|-
|-
| ER$  
| ER$
| Error description read in from disk error channel.  
| Error description read from the disk error channel.
|-
|-
| ES  
| ES
| Error sector read in from disk error channel.  
| Error sector read from the disk error channel.
|-
|-
| ET  
| ET
| Error track read in from disk error channel.  
| Error track read from the disk error channel.
|-
|-
| F$  
| F$
| This variable stores the last filename accessed. Use F$="filename":GOSUB210 to read a seq file to the screen and modem. In some cases, this variable is used to store temporary string data.  
| This variable stores the last filename accessed. Use F$="filename":GOSUB210 to read a SEQ file to the screen and modem. In some cases, this variable is used to store temporary string data.
|-
|-
| F%()  
| F%()
| This array variable, along with F(), stores the field pointers for password file records.  
| This array variable, along with F(), stores the field pointers for password file records.
|-
|-
| F()  
| F()
| This array variable, along with F%(), stores the field pointers for the password file records. This allows easier modifications to the password file (for system upgrades) by simply changing the values in SETUP instead of through all of the other program overlays.  
| This array variable, along with F%(), stores the field pointers for password file records. This allows easier modifications to the password file during system upgrades by simply changing the values in SETUP instead of throughout the other program overlays.
|-
|-
| F(0)  
| F(0)
| The BBS's RERUN ON ERRORS status as defined in SETUP.  
| The BBS's RERUN ON ERRORS status as defined in SETUP.
|-
|-
| F1$
| F1$
| Sometimes used for filename storage prior to calling subroutine for file open.
| Sometimes used for filename storage prior to calling a file-open subroutine.
|-
|-
| FI$  
| FI$
| This variable stores the filename being edited by the online message editor. It is also used in the directory maintenance routines.  
| This variable stores the filename being edited by the online message editor. It is also used in the directory maintenance routines.
|-
|-
| FL  
| FL
| Set to 1 if your BBS is using 1541 Flash! from Skyles Electric Works.  
| Set to 1 if the BBS is using 1541 Flash! from Skyles Electric Works.
|-
|-
| FM  
| FM
| Status of the current caller's word wrap condition (use only in the message editor). If it is a 1, word wrap is on. If it is a 0, word wrap is off.  
| Status of the current caller's word-wrap condition, used only in the message editor. If it is 1, word wrap is on. If it is 0, word wrap is off.
|-
|-
| FR  
| FR
| Flag for the FROM information of the last read message.  
| Flag for the FROM information of the last read message.
|-
|-
| FR$  
| FR$
| FROM information of the last read message.  
| FROM information of the last read message.
|-
|-
| FU  
| FU
| This variable, along with FU$, RX%, TE$, TX%, TY, and Z3, is used only in the √bbs.term program and is removed from memory when the term program automatically uses the variable killer.  
| This variable, along with FU$, RX%, TE$, TX%, TY, and Z3, is used only in the √bbs.term program and is removed from memory when the term program automatically uses the variable killer.
|-
|-
| FU$  
| FU$
| See variable FU.  
| See variable FU.
|-
|-
| G$()  
| G$()
| Mod menu array dimensioned each time mod menu is entered and removed from memory when the mod menu is exited. Used only in √bbs.ov2.  
| Mod menu array dimensioned each time the mod menu is entered and removed from memory when the mod menu is exited. Used only in √bbs.ov2.
|-
|-
| G()  
| G()
| Mod menu array dimensioned each time mod menu is entered and removed from memory when the mod menu is exited. Used only in √bbs.ov2.  
| Mod menu array dimensioned each time the mod menu is entered and removed from memory when the mod menu is exited. Used only in √bbs.ov2.
|-
|-
| GA%  
| GA%
| Number of game plays for use by Mod Menu. It is first defined in √bbs.init so that the variable killer routines in √bbs.ov2 do not remove it from memory.  
| Number of game plays for use by Mod Menu. It is first defined in √bbs.init so that the variable-killer routines in √bbs.ov2 do not remove it from memory.
|-
|-
| GM
| GM
| Used only in √bbs.games; flag for when valid game choice is selected.
| Used only in √bbs.games; flag indicating a valid game choice has been selected.
|-
|-
| H  
| H
| Last selected drive number. H can be a number between 0 and 15 depending on what the last selected group of files was (e.g. Password File, System Files, Public Messages, etc).  
| Last selected drive number. H can be a number between 0 and 15 depending on what the last selected group of files was (for example, Password File, System Files, Public Messages, etc.).
|-
|-
| H$  
| H$
| The last used drive init command.  
| Last used drive init command.
|-
|-
| H$()  
| H$()
| The drive commands for your drive assignments as defined in SETUP (e.g. i0, ui, hm4 20 28).  
| Drive commands for drive assignments as defined in SETUP (for example, i0, ui, hm4 20 28).
|-
|-
| HD$()  
| HD$()
| The custom message header information as read in when a user selects [R]Read Public Msgs  
| Custom message header information as read in when a user selects [R]ead Public Msgs.
|-
|-
| HM  
| HM
| Highest message number on the system as stored in √variables.  
| Highest message number on the system as stored in √variables.
|-
|-
| I  
| I
| This is probably the most used numeric variable that doesn't have a specific function. It is used mostly as a general index variable for FOR/NEXT loops.  
| Probably the most-used numeric variable that does not have a specific function. It is used mostly as a general index variable for FOR/NEXT loops.
|-
|-
| I$  
| I$
| This variable is a general use variable, although it is specifically designed as the variable in which typed information is stored when the input routines at line 300-310 are used.  
| General-use variable, although it is specifically designed as the variable in which typed information is stored when the input routines at lines 300-310 are used.
|-
|-
| I$()  
| I$()
| General use array that should never be permanently dimensioned. The multi-scratch, multi-release, and multi-view functions in √bbs.xfer dimension this variable then execute a variable kill to remove it from memory when finished using it.  
| General-use array that should never be permanently dimensioned. The multi-scratch, multi-release, and multi-view functions in √bbs.xfer dimension this variable, then execute a variable kill to remove it from memory when finished using it.
|-
|-
| I%()  
| I%()
| General use array which should never be permanently dimensioned in memory. The self-contained directory regenerate routine in √bbs.xfer dimensions this array for temporary use then discards it with the variable killer when the routine is over.  
| General-use array that should never be permanently dimensioned in memory. The self-contained directory regenerate routine in √bbs.xfer dimensions this array for temporary use, then discards it with the variable killer when the routine is over.
|-
|-
| IC  
| IC
| This variable is set to 1 when your BBS is addressing an ICT hard disk system in chain mode. It is set to 0 when addressing all other drives or the ICT drive in non-chain mode.  
| This variable is set to 1 when the BBS is addressing an ICT hard disk system in chain mode. It is set to 0 when addressing all other drives, or the ICT drive in non-chain mode.
|-
|-
| II  
| II
| Another general use numeric variable, which should never be used to store important information because the caller log routine will destroy any information stored in II.  
| Another general-use numeric variable. It should never be used to store important information because the caller log routine will destroy any information stored in II.
|-
|-
| J  
| J
| General use variable which is often used like the variable I.  
| General-use variable often used like the variable I.
|-
|-
| KK  
| KK
| If this variable is set, the caller online has created a DEFAULT MESSAGE.  
| If this variable is set, the caller online has created a DEFAULT MESSAGE.
|-
|-
| L1  
| L1
| The access level that the BBS will automatically give a caller when their membership expires date (DD$) equals the system date (DA$) as defined in SETUP.  
| The access level that the BBS will automatically give a caller when their membership expiration date (ED$) equals the system date (DA$), as defined in SETUP.
|-
|-
| L2  
| L2
| Current caller's permanent access level. If you alter a caller's access level while they are online, LV is altered and will have an effect for the remainder of the call, but it is the value of L2 that is written back in their password file.  
| Current caller's permanent access level. If you alter a caller's access level while they are online, LV is altered and will have an effect for the remainder of the call, but it is the value of L2 that is written back to their password file.
 
Nuke’s note: This is a system security risk if L2 is ever used for another purpose. DO NOT USE!  
Nuke’s note: This is a system security risk if L2 is ever used for another purpose. DO NOT USE!
|-
|-
| LB  
| LB
| This variable is used to store miscellaneous information about the user online. It is stored in the password file and keeps track of: page-pauser lines, 40/80 column setting, and character speed.  
| This variable is used to store miscellaneous information about the user online. It is stored in the password file and keeps track of page-pauser lines, 40/80-column setting, and character speed.
|-
|-
| LC$  
| LC$
| Last caller's membership name. If the last caller had an access level of 1, this variable will be "NEW USER". If the last caller was a Network node, then this variable will be the name of the node.  
| Last caller's membership name. If the last caller had an access level of 1, this variable will be "NEW USER". If the last caller was a Network node, then this variable will be the name of the node.
|-
|-
| LD  
| LD
| Current caller's last called date as an ADN (Absolute Day Number). See the section on ADN's for more information.  
| Current caller's last-called date as an ADN (Absolute Day Number). See the section on ADNs for more information.
|-
|-
| LD$  
| LD$
| Current caller's last called date in the form "MM/DD/YYYY". It is calculated from the variable LD.  
| Current caller's last-called date in the form "MM/DD/YYYY". It is calculated from the variable LD.
|-
|-
| LG  
| LG
| This is a temporary variable used by the caller log routines. You can also use this variable to store temporary information, but the data in LG will be destroyed if the caller log routines are used.  
| Temporary variable used by the caller log routines. It can also be used to store temporary information, but the data in LG will be destroyed if the caller log routines are used.
|-
|-
| LG$  
| LG$
| This variable is a temporary holding place for the information to be later stored in the caller log. When this variable is longer than about 200 characters, it will automatically be stored into an area of RAM that contains the caller log and the variable will be reset to "".  
| Temporary holding place for information to be later stored in the caller log. When this variable becomes longer than about 200 characters, it is automatically stored into an area of RAM that contains the caller log, and the variable is reset to "".
|-
|-
| LK%()  
| LK%()
| This array stores the message links in the subject chains.  
| This array stores the message links in subject chains.
|-
|-
| LM  
| LM
| The highest message number that a caller has read on this and previous calls. When a caller logs off, this variable will be assigned at least equal to the lowest message on the system. This allows the BBS to know if this is a caller’s first call or a second (or more) call but they had not read any messages. On a caller’s first call, we don't want to scan for mail, etc.  
| The highest message number that a caller has read on this and previous calls. When a caller logs off, this variable is assigned at least equal to the lowest message on the system. This allows the BBS to know if this is a caller’s first call, or a second or later call in which they had not read any messages. On a caller’s first call, the BBS does not want to scan for mail, etc.
|-
|-
| LM%()  
| LM%()
| This variable array stores the status indicating if a level message exists for each level. These variables are assigned when the BBS in initially loaded or when the current time and date are adjusted.  
| This array stores the status indicating whether a level message exists for each level. These variables are assigned when the BBS is initially loaded or when the current time and date are adjusted.
|-
|-
| LV  
| LV
| The current caller's (or the user's being edited in password maintenance) access level. Altering this variable will only have an effect on the current call.  
| The current caller's access level, or the access level of the user being edited in password maintenance. Altering this variable will affect only the current call.
|-
|-
| M  
| M
| Used in √bbs.msgs to keep track of last message read.  
| Used in √bbs.msgs to keep track of the last message read.
|-
|-
| M1  
| M1
| The system BPS rate as defined in SETUP.  
| System BPS rate as defined in SETUP.
|-
|-
| M2  
| M2
| Used in √bbs.msgs to keep track of next message to be read.  
| Used in √bbs.msgs to keep track of the next message to be read.
|-
|-
| M3  
| M3
| Indicates if are using Network, as defined in SETUP.  
| Indicates whether Network is being used, as defined in SETUP.
|-
|-
| M4  
| M4
| Indicates if system shall adjust BPS rate to connect rate, as defined in SETUP.  
| Indicates whether the system will adjust BPS rate to connect rate, as defined in SETUP.
|-
|-
| M6  
| M6
| The default column (word wrap) setting defined in SETUP  
| Default column (word-wrap) setting as defined in SETUP.
|-
|-
| M7  
| M7
| The default Fast-Garbage-Collect mode as defined in line 10241 of √bbs.init. See the description of the !48 variable for more information.  
| Default Fast-Garbage-Collect mode as defined in line 10241 of √bbs.init. See the description of the !48 variable for more information.
|-
|-
| MB  
| MB
| Minimum number of blocks allowed on the system before messages automatically start to cycle, as defined in SETUP.  
| Minimum number of blocks allowed on the system before messages automatically start to cycle, as defined in SETUP.
|-
|-
| MC  
| MC
| Maximum number of columns (word wrap setting) for the current user. Because it is used for the word wrap routines, it is set to the screen width minus 2. Thus, it is set to 38 for 40-column users and 78 for 80-column users.  
| Maximum number of columns (word-wrap setting) for the current user. Because it is used for the word-wrap routines, it is set to the screen width minus 2. Thus, it is set to 38 for 40-column users and 78 for 80-column users.
|-
|-
| MD  
| MD
| Maximum number of days that a caller's mail will be held before it is automatically purged, as defined in SETUP.  
| Maximum number of days a caller's mail will be held before it is automatically purged, as defined in SETUP.
|-
|-
| MF%()  
| MF%()
| This array stores the ID number of the user who posted each message.  
| This array stores the ID number of the user who posted each message.
|-
|-
| MH  
| MH
| Keeps track of the number of pieces of mail held when a caller is reading their mailbox.  
| Keeps track of the number of pieces of mail held when a caller is reading their mailbox.
|-
|-
| ML  
| ML
| Maximum number of lines per message as defined in SETUP.  
| Maximum number of lines per message as defined in SETUP.
|-
|-
| MM  
| MM
| Maximum number of messages on the BBS as defined in SETUP.  
| Maximum number of messages on the BBS as defined in SETUP.
|-
|-
| MN()  
| MN()
| This array stores the message number of each of the public messages.  
| This array stores the message number of each public message.
|-
|-
| MP  
| MP
| Maximum password number on the BBS as defined in SETUP.  
| Maximum password number on the BBS as defined in SETUP.
|-
|-
| MR  
| MR
| Number of message read so far when reading E-mail.  
| Number of messages read so far when reading E-mail.
|-
|-
| MR%()  
| MR%()
| This variable array keeps track of which messages have already been read or not.  
| This array keeps track of which messages have already been read.
|-
|-
| MS  
| MS
| Number of messages to skip to read next piece of E-mail.  
| Number of messages to skip to read the next piece of E-mail.
|-
|-
| MT  
| MT
| Used in the multidownload routines to keep track of how many files have been sent so far.  
| Used in the multi-download routines to keep track of how many files have been sent so far.
|-
|-
| MT%  
| MT%
| Current speaker on/off setting in Network.  
| Current speaker on/off setting in Network.
|-
|-
| MU  
| MU
| Minimum number of blocks needed to allow uploads as defined in SETUP. The BLOCKS FREE message after the directory display or before an upload will automatically be adjusted by this value.  
| Minimum number of blocks needed to allow uploads as defined in SETUP. The BLOCKS FREE message after the directory display, or before an upload, will automatically be adjusted by this value.
|-
|-
| MX  
| MX
| Used in √bbs.msgs to keep track of next message to be read.  
| Used in √bbs.msgs to keep track of the next message to be read.
|-
|-
| N  
| N
| General Use.  
| General use.
|-
|-
| N%()  
| N%()
| Array holding status of each outgoing node.  
| Array holding the status of each outgoing node.
|-
|-
| NA$  
| NA$
| Current caller's membership name.  
| Current caller's membership name.
|-
|-
| NC%()  
| NC%()
| This array is used to calculate the number of new messages in each category when reading public msgs.  
| This array is used to calculate the number of new messages in each category when reading public messages.
|-
|-
| ND  
| ND
| Set when the date changes and is reset after the end of day routines are run.  
| Set when the date changes and reset after the end-of-day routines are run.
|-
|-
| NF$  
| NF$
| Used to hold name and ID# of remote node.  
| Used to hold the name and ID# of a remote node.
|-
|-
| NI%  
| NI%
| Used only in Network overlays, it’s the next open space in incoming node accounts file.  
| Used only in Network overlays. It is the next open space in the incoming node accounts file.
|-
|-
| NN$  
| NN$
| Your BBS system's name, defined in Net Setup.  
| BBS system name, defined in Net Setup.
|-
|-
| NN%  
| NN%
| Number of nodes, defined in Net Setup.  
| Number of nodes, defined in Net Setup.
|-
|-
| NN()  
| NN()
| Prices for outgoing nodes: (x,0) = first 1000 bytes, (x,1) = each additional 100 bytes.  
| Prices for outgoing nodes: (x,0) = first 1000 bytes, (x,1) = each additional 100 bytes.
|-
|-
| NU  
| NU
| Total number of callers who have called the BBS, as stored in √variables. NU is incremented each time a different caller calls the BBS (it is not incremented if the same caller calls twice in a row).  
| Total number of callers who have called the BBS, as stored in √variables. NU is incremented each time a different caller calls the BBS; it is not incremented if the same caller calls twice in a row.
|-
|-
| NU$  
| NU$
| This variable stores a chr$(0). It saves memory to use NU$ instead of chr$(0).  
| This variable stores CHR$(0). It saves memory to use NU$ instead of CHR$(0).
|-
|-
| OP%  
| OP%
| Opening hour for the window of outgoing Network messages.  
| Opening hour for the window of outgoing Network messages.
|-
|-
| OV  
| OV
| This variable stores a pointer number that will be used after loading another overlay to determine what line number to execute. Line 5 of every program contains an 'onovgotoXX,XX,XX' command to make sure the proper routines are run based on the value of OV.  
| This variable stores a pointer number that will be used after loading another overlay to determine what line number to execute. Line 5 of every program contains an 'ON OV GOTO XX,XX,XX' command to make sure the proper routines are run based on the value of OV.
|-
|-
| P  
| P
| General status variable. If carrier is lost, p=255. If the caller types ↑p, p=1. Use "IF P THEN RETURN" after all your inputs to make sure the BBS will abort if carrier is lost or the caller types ↑p.  
| General status variable. If carrier is lost, P=255. If the caller types ↑P, P=1. Use "IF P THEN RETURN" after all inputs to make sure the BBS aborts if carrier is lost or the caller types ↑P.
|-
|-
| P$  
| P$
| General use.  
| General use.
|-
|-
| PD  
| PD
| Caller's current number of blocks downloaded. See also C1, C2, and PU.  
| Current caller's number of blocks downloaded. See also C1, C2, and PU.
|-
|-
| PH$  
| PH$
| Current caller's phone number as stored in the password file.  
| Current caller's phone number as stored in the password file.
|-
|-
| PM  
| PM
| If this variable is a 0, the clock is in the AM range. If this variable is 1, the clock is in the PM range.  
| If this variable is 0, the clock is in the AM range. If this variable is 1, the clock is in the PM range.
|-
|-
| PN  
| PN
| Used only in Network overlays, holds number of public messages received when distributing incoming messages.  
| Used only in Network overlays. Holds the number of public messages received when distributing incoming messages.
|-
|-
| PR  
| PR
| This variable is set if you answer P to the "(S)creen or (P)rinter" question.  
| This variable is set if you answer P to the "(S)creen or (P)rinter" question.
|-
|-
| PS  
| PS
| Current caller's number of posts as stored in the password file.  
| Current caller's number of posts as stored in the password file.
|-
|-
| PU  
| PU
| Current caller's current number of blocks uploaded. The variables C1, C2, PD, and PU are used to determine a callers download credit status with the following formula:  
| Current caller's number of blocks uploaded. The variables C1, C2, PD, and PU are used to determine a caller's download credit status with the following formula:
: c2+pu*c1-pd
: C2+PU*C1-PD
|-
|-
| PW$  
| PW$
| Current caller's password. It is saved in each caller's membership record in the password file.  
| Current caller's password. It is saved in each caller's membership record in the password file.
|-
|-
| QZ%  
| QZ%
| Used as a flag when editing a message for when MCIs are turned off, and as a temporary holding variable.  
| Used as a flag when editing a message for when MCIs are turned off, and also as a temporary holding variable.
|-
|-
| R1  
| R1
| This variable is a temporary holding area for the sysops record number when using the Validate or Password Maintenance.  
| Temporary holding area for the sysop's record number when using Validate or Password Maintenance.
|-
|-
| RA  
| RA
| Set when the user is reading ALL message categories.  
| Set when the user is reading ALL message categories.
|-
|-
| RN  
| RN
| Current caller's record number (membership number). Also, during password maintenance this variable will be saved and will be reassigned to the value of the caller number being edited.  
| Current caller's record number (membership number). Also, during password maintenance, this variable is saved and then reassigned to the value of the caller number being edited.
|-
|-
| RN$  
| RN$
| Current caller's real name as stored in the password file.  
| Current caller's real name as stored in the password file.
|-
|-
| RU  
| RU
| The system's auto-release level as defined in SETUP.  
| System auto-release level as defined in SETUP.
|-
|-
| RX%  
| RX%
| See variable FU.  
| See variable FU.
|-
|-
| S  
| S
| Used only in Network overlays, holds duration of Network call.  
| Used only in Network overlays. Holds the duration of a Network call.
|-
|-
| S1  
| S1
| Number of new callers for current day as stored in √variables.  
| Number of new callers for the current day as stored in √variables.
|-
|-
| S2  
| S2
| Number of calls today as stored in √variables.  
| Number of calls today as stored in √variables.
|-
|-
| S3  
| S3
| Number of uploads today as stored in √variables.  
| Number of uploads today as stored in √variables.
|-
|-
| S4  
| S4
| Number of downloads today as stored in √variables.  
| Number of downloads today as stored in √variables.
|-
|-
| S5  
| S5
| Number of messages posted today as stored in √variables.  
| Number of messages posted today as stored in √variables.
|-
|-
| S6  
| S6
| Number of public net messages holding as stored in √variables.  
| Number of public net messages waiting as stored in √variables.
|-
|-
| S7  
| S7
| Number of outgoing messages to send as stored in √variables.  
| Number of outgoing messages to send as stored in √variables.
|-
|-
| SB  
| SB
| Set if you answered Y to screen blanking in SETUP.  
| Set if you answered Y to screen blanking in SETUP.
|-
|-
| SC  
| SC
| Set if you answered Y to daily caller log backup in SETUP.  
| Set if you answered Y to daily caller-log backup in SETUP.
|-
|-
| SD$  
| SD$
| Current download directory prefix. If you are not using multiple directories per drive, this variable will always equal "". Otherwise, it will equal "A" for directory A, "B" for directory B, etc.  
| Current download-directory prefix. If you are not using multiple directories per drive, this variable will always equal "". Otherwise, it will equal "A" for directory A, "B" for directory B, etc.
|-
|-
| SM  
| SM
| Highest message number read on this call. When a caller logs on, this variable is assigned the same value as LM, then as public messages are read, this variable is assigned the highest message number read. When a caller logs off, LM will be set equal to this variable, then stored in the password file.  
| Highest message number read on this call. When a caller logs on, this variable is assigned the same value as LM. Then, as public messages are read, this variable is assigned the highest message number read. When a caller logs off, LM is set equal to this variable and then stored in the password file.
|-
|-
| SR  
| SR
| This variable is used to represent the status byte of the current I/O function. ST is automatically updated by the C64 after every I/O and SR is used to save the value of ST when needed.  
| Used to represent the status byte of the current I/O function. ST is automatically updated by the C64 after every I/O, and SR is used to save the value of ST when needed.
|-
|-
| SU$  
| SU$
| This variable stores the subject of the last read message.  
| This variable stores the subject of the last read message.
|-
|-
| T  
| T
| General use.  
| General use.
|-
|-
| T$  
| T$
| Current time. You must GOSUB1110 to update this variable.  
| Current time. You must GOSUB1110 to update this variable.
|-
|-
| T()  
| T()
| This variable array stores the daily time limits for each access level and the per call limits for AM and PM hours, as defined in SETUP.  
| This array stores the daily time limits for each access level and the per-call limits for AM and PM hours, as defined in SETUP.
|-
|-
| T1  
| T1
| Number of invalid sign-ons since midnight last night as stored in √variables.  
| Number of invalid sign-ons since midnight last night as stored in √variables.
|-
|-
| TA  
| TA
| This variable, along with TB, is used by the multi-download routines to keep track of where the BBS is in the list of files to send.  
| This variable, along with TB, is used by the multi-download routines to keep track of where the BBS is in the list of files to send.
|-
|-
| TB  
| TB
| See TA  
| See TA.
|-
|-
| TE$  
| TE$
| See variable FU.  
| See variable FU.
|-
|-
| TI  
| TI
| The total time (in jiffies) that this caller has been online.  
| Total time, in jiffies, that the caller has been online.
|-
|-
| TI$  
| TI$
| This variable is set to "000000" when a caller logs on and is automatically incremented every second. It is used to keep track of how long a caller has been online. It is also used to keep track of how long the BBS has been waiting between calls.  
| This variable is set to "000000" when a caller logs on and is automatically incremented every second. It is used to keep track of how long a caller has been online. It is also used to keep track of how long the BBS has been waiting between calls.
|-
|-
| TM  
| TM
| Total minutes that this caller has for this call. TM-INT(TI/3600) represents the number of minutes that this caller has left for this call.  
| Total minutes the caller has for this call. TM-INT(TI/3600) represents the number of minutes the caller has left for this call.
|-
|-
| TS  
| TS
| Number of times the current caller has called. It is saved in the password file.  
| Number of times the current caller has called. It is saved in the password file.
|-
|-
| TT  
| TT
| This variable represents the time remaining for today less the value in TM. The total of TM and TT represent the total time the caller has for the rest of the day.  
| This variable represents the time remaining for today less the value in TM. The total of TM and TT represents the total time the caller has for the rest of the day.
|-
|-
| TX$  
| TX$
| This is a special variable that Color 64 reserves for disk reads and typed input. The length of TX$ determines the maximum number of characters that can be read in from keyboard or disk. It should not be changed, except by the special system routines that need to lengthen TX$ to copy larger amounts of disk data.  
| This is a special variable that Color 64 reserves for disk reads and typed input. The length of TX$ determines the maximum number of characters that can be read from keyboard or disk. It should not be changed except by special system routines that need to lengthen TX$ to copy larger amounts of disk data.
|-
|-
| TX%  
| TX%
| See variable FU.  
| See variable FU.
|-
|-
| TY  
| TY
| See variable FU.  
| See variable FU.
|-
|-
| UD  
| UD
| Default upload directory number. This is always the first upload directory in SETUP with a Y in the upload status.  
| Default upload directory number. This is always the first upload directory in SETUP with a Y in the upload status.
|-
|-
| UX  
| UX
| This variable stores the UPLOAD DESCRIPTION status of your BBS as defined in SETUP. If it has a value of 1, your system is defined to be using upload descriptions. If it has a value of 0, your system is not using upload descriptions.  
| This variable stores the UPLOAD DESCRIPTION status of the BBS as defined in SETUP. If it has a value of 1, the system is defined as using upload descriptions. If it has a value of 0, the system is not using upload descriptions.
|-
|-
| UX$  
| UX$
| This variable is used to store the first few lines of the upload description when in the message editor in √bbs.xfer.  
| This variable is used to store the first few lines of the upload description while in the message editor in √bbs.xfer.
|-
|-
| VE  
| VE
| This is used by Network to store the Network version number of the remote BBS node during a Network call.  
| Used by Network to store the Network version number of the remote BBS node during a Network call.
|-
|-
| VS  
| VS
| This variable is set if the variables have been saved and is cleared when another caller calls.  
| This variable is set if the variables have been saved and is cleared when another caller calls.
|-
|-
| VX  
| VX
| There are several routines all using the same message editor and this variable tells the BBS where to go after it finishes editing the message (e.g. back to Read Feedback, Read Mail, Read Messages, or Posting a Message).  
| Several routines use the same message editor, and this variable tells the BBS where to go after it finishes editing the message (for example, back to Read Feedback, Read Mail, Read Messages, or Posting a Message).
|-
|-
| WD%()  
| WD%()
| This variable array stores the different caller access level's purge parameters as defined in SETUP.  
| This array stores the purge parameters for the different caller access levels as defined in SETUP.
|-
|-
| X  
| X
| General use.  
| General use.
|-
|-
| X$  
| X$
| Only used in Network overlays, general use.  
| Used only in Network overlays; general use.
|-
|-
| X%  
| X%
| Used only in Network overlays, holds current node ID#.  
| Used only in Network overlays. Holds current node ID#.
|-
|-
| Z  
| Z
| Used only in Network overlays, general use.  
| Used only in Network overlays; general use.
|-
|-
| Z$  
| Z$
| General use.  
| General use.
|-
|-
| Z3  
| Z3
| See variable FU.  
| See variable FU.
|}
|}


General variables used without specific definition:  
General variables used without specific definition:
A, A$, B, B$, C, C$, I, I$, II, J, N, P$, T, X, Z$  
A, A$, B, B$, C, C$, I, I$, II, J, N, P$, T, X, Z$


Next section: [[overlay files|Generic Overlay Files]]
Next section: [[overlay files|Generic Overlay Files]]


[[programming features|Programming Features]]
[[programming features|Programming Features]]

Latest revision as of 14:39, 6 March 2026

Programming Features - Basic Variables Used in Color 64

The table below defines all variables used by Color 64 BBS:

List of Color 64 Defined Variables
Var Definition and Function
A General-use numeric variable. It is used to store the current number of lines in the message editor and in other routines that use the array A$().
A$ This variable has several uses. It is used to return the character read by the routine at line 110, and it is also frequently used when information is read from disk. The general output commands (#, $, %, & and ') will print the contents of A$ if no string expression is specified. This is a useful shortcut in many cases and saves programming space.
A$() This is the most heavily used string array in the Color 64 system. It is used in the message editor to hold message lines. It is also used by many other routines that handle larger amounts of string data. It is always dimensioned to 232 when the system is first initialized.
A1$ First line of the current caller's address as stored in the password file.
A2$ Second line of the current caller's address as stored in the password file.
A3 Used in the main overlays to flag that an operation with AUX3 (Games) is about to be performed. It is immediately cleared after use at line 104. Applies to version 8.1a only.
AG Current caller's access group as stored in the password file.
AR% Used only in Network overlays to determine which message category public messages are released into, and which UD directory Network file transfers are released into. Defined in Net Setup.
AT Stores whether the modem supports DTR disconnect.
AZ$ The MODEM INIT string for Hayes-type modems as defined in SETUP (example: ATE1X1S0=1S2=43F1Q0V1M0).
B General use.
B$ General use.
BA Used only in the Network overlays. Holds the current balance of the caller.
BD Current caller's date of birth in ADN format as stored in the password file.
BD$ Current caller's date of birth in the form "MM/DD/YYYY", calculated from the variable BD.
BM Lowest message number on the system as stored in √variables.
BN% Used only in Network overlays. If this variable is set, the system will lock out nodes when, upon attempting to call a remote node, a NO CARRIER status is returned from the modem. Defined in Net Setup.
BR Current caller’s baud rate.
BS Last used block size of the current caller. If it is 0, the caller last used Xmodem; otherwise, they last used Punter.
C General-use variable often used to temporarily compute the current caller's absolute download credit.
C$ General-use variable often used to temporarily hold the contents of TX$, so the previous value of TX$ can be preserved in cases where TX$ needs to be changed.
C1 Number of download blocks given for each block uploaded as defined in SETUP. See also C2, PD, and PU.
C2 Number of free upload blocks given to each caller as defined in SETUP. See also C1, PD, and PU.
C2$ This variable is two CR$'s added together. It saves memory and time to print C2$ instead of CR$CR$ or CHR$(13)CHR$(13).
C3 Credit system exemption level as defined in SETUP.
C4 Maximum number of files allowed on the public messages drive as defined in SETUP.
CA Stores the current message category. It is used only in √bbs.msgs.
CA$() Category names as defined in SETUP.
CA%() Category of each message stored in public messages.
CA() Level for each category as defined in SETUP.
CC Number of message categories as defined in SETUP.
CD Modem carrier-detect status value as defined in SETUP.
CL% Network window closing hour as defined in Net Setup.
CM%() This integer array stores the BBS commands as defined in SETUP. This array is also used to store some miscellaneous SETUP parameters.
CR$ This variable stores the value of a carriage return. It saves memory and time to print CR$ instead of CHR$(13).
CS$ Chat subject displayed at the ONLINE: prompt after a caller requests chat mode.
D() This array stores the drive assignments for file groups as defined in SETUP. It is not wise to change these values unless you understand how the device number and drive number have been encoded in the variable; use GOSUB481-489 to select the desired drives.
D1 The current month as computed by the timer routine at 1110-1190.
D1$() Array (1 to 12) of month names, January through December.
D2 The current day of the week (0 to 6, for Sunday through Saturday) as calculated by the timer routine at 1110-1190.
D2$() Array (0 to 6) of day names, Sunday through Saturday.
D3 The current day of the month as calculated by the timer routine at 1110-1190.
D4 The current year as calculated by the timer routine at 1110-1190.
DA Current system ADN (Absolute Day Number). See the section on Absolute Day Numbers for more information.
DA$ Current system date in the format "MM/DD/YYYY". It is calculated from the variable DA.
DC Maximum number of downloads per call as defined in SETUP.
DD Default download directory. This is always the first directory defined in SETUP with a Y for download status. See also UD.
DD$ Current caller's membership information.
DE$ This variable stores the value of a DELETE character (CBM ASCII CHR$(20)).
DH$() Drive init commands for the UD directories as defined in SETUP.
DN$() Names of the UD directories as defined in SETUP.
DN%() Miscellaneous UD directory parameters as defined in SETUP.
DR$ Drive number of the currently selected drive (for example, 0:, 1:, etc.).
DT Number of downloads made by the caller on this call.
DV Device number of the currently selected drive.
DX Last selected device/drive. The system uses this variable to save time so it will not reselect a drive that was already selected. Also, setting this variable to 0 followed by a GOSUB460 will force a reselect of the current drive.
E1$ This variable stores the first 3 or 4 disk errors displayed on the waiting-for-caller screen.
ED Current caller's membership expiration date as stored in the password file as an ADN.
ED$ Current caller's membership expiration date in the format "MM/DD/YYYY", calculated from ED.
EM$ Stores user actions and summary information for the email report.
ER Error number read from the disk error channel by the routine at 510.
ER$ Error description read from the disk error channel.
ES Error sector read from the disk error channel.
ET Error track read from the disk error channel.
F$ This variable stores the last filename accessed. Use F$="filename":GOSUB210 to read a SEQ file to the screen and modem. In some cases, this variable is used to store temporary string data.
F%() This array variable, along with F(), stores the field pointers for password file records.
F() This array variable, along with F%(), stores the field pointers for password file records. This allows easier modifications to the password file during system upgrades by simply changing the values in SETUP instead of throughout the other program overlays.
F(0) The BBS's RERUN ON ERRORS status as defined in SETUP.
F1$ Sometimes used for filename storage prior to calling a file-open subroutine.
FI$ This variable stores the filename being edited by the online message editor. It is also used in the directory maintenance routines.
FL Set to 1 if the BBS is using 1541 Flash! from Skyles Electric Works.
FM Status of the current caller's word-wrap condition, used only in the message editor. If it is 1, word wrap is on. If it is 0, word wrap is off.
FR Flag for the FROM information of the last read message.
FR$ FROM information of the last read message.
FU This variable, along with FU$, RX%, TE$, TX%, TY, and Z3, is used only in the √bbs.term program and is removed from memory when the term program automatically uses the variable killer.
FU$ See variable FU.
G$() Mod menu array dimensioned each time the mod menu is entered and removed from memory when the mod menu is exited. Used only in √bbs.ov2.
G() Mod menu array dimensioned each time the mod menu is entered and removed from memory when the mod menu is exited. Used only in √bbs.ov2.
GA% Number of game plays for use by Mod Menu. It is first defined in √bbs.init so that the variable-killer routines in √bbs.ov2 do not remove it from memory.
GM Used only in √bbs.games; flag indicating a valid game choice has been selected.
H Last selected drive number. H can be a number between 0 and 15 depending on what the last selected group of files was (for example, Password File, System Files, Public Messages, etc.).
H$ Last used drive init command.
H$() Drive commands for drive assignments as defined in SETUP (for example, i0, ui, hm4 20 28).
HD$() Custom message header information as read in when a user selects [R]ead Public Msgs.
HM Highest message number on the system as stored in √variables.
I Probably the most-used numeric variable that does not have a specific function. It is used mostly as a general index variable for FOR/NEXT loops.
I$ General-use variable, although it is specifically designed as the variable in which typed information is stored when the input routines at lines 300-310 are used.
I$() General-use array that should never be permanently dimensioned. The multi-scratch, multi-release, and multi-view functions in √bbs.xfer dimension this variable, then execute a variable kill to remove it from memory when finished using it.
I%() General-use array that should never be permanently dimensioned in memory. The self-contained directory regenerate routine in √bbs.xfer dimensions this array for temporary use, then discards it with the variable killer when the routine is over.
IC This variable is set to 1 when the BBS is addressing an ICT hard disk system in chain mode. It is set to 0 when addressing all other drives, or the ICT drive in non-chain mode.
II Another general-use numeric variable. It should never be used to store important information because the caller log routine will destroy any information stored in II.
J General-use variable often used like the variable I.
KK If this variable is set, the caller online has created a DEFAULT MESSAGE.
L1 The access level that the BBS will automatically give a caller when their membership expiration date (ED$) equals the system date (DA$), as defined in SETUP.
L2 Current caller's permanent access level. If you alter a caller's access level while they are online, LV is altered and will have an effect for the remainder of the call, but it is the value of L2 that is written back to their password file.

Nuke’s note: This is a system security risk if L2 is ever used for another purpose. DO NOT USE!

LB This variable is used to store miscellaneous information about the user online. It is stored in the password file and keeps track of page-pauser lines, 40/80-column setting, and character speed.
LC$ Last caller's membership name. If the last caller had an access level of 1, this variable will be "NEW USER". If the last caller was a Network node, then this variable will be the name of the node.
LD Current caller's last-called date as an ADN (Absolute Day Number). See the section on ADNs for more information.
LD$ Current caller's last-called date in the form "MM/DD/YYYY". It is calculated from the variable LD.
LG Temporary variable used by the caller log routines. It can also be used to store temporary information, but the data in LG will be destroyed if the caller log routines are used.
LG$ Temporary holding place for information to be later stored in the caller log. When this variable becomes longer than about 200 characters, it is automatically stored into an area of RAM that contains the caller log, and the variable is reset to "".
LK%() This array stores the message links in subject chains.
LM The highest message number that a caller has read on this and previous calls. When a caller logs off, this variable is assigned at least equal to the lowest message on the system. This allows the BBS to know if this is a caller’s first call, or a second or later call in which they had not read any messages. On a caller’s first call, the BBS does not want to scan for mail, etc.
LM%() This array stores the status indicating whether a level message exists for each level. These variables are assigned when the BBS is initially loaded or when the current time and date are adjusted.
LV The current caller's access level, or the access level of the user being edited in password maintenance. Altering this variable will affect only the current call.
M Used in √bbs.msgs to keep track of the last message read.
M1 System BPS rate as defined in SETUP.
M2 Used in √bbs.msgs to keep track of the next message to be read.
M3 Indicates whether Network is being used, as defined in SETUP.
M4 Indicates whether the system will adjust BPS rate to connect rate, as defined in SETUP.
M6 Default column (word-wrap) setting as defined in SETUP.
M7 Default Fast-Garbage-Collect mode as defined in line 10241 of √bbs.init. See the description of the !48 variable for more information.
MB Minimum number of blocks allowed on the system before messages automatically start to cycle, as defined in SETUP.
MC Maximum number of columns (word-wrap setting) for the current user. Because it is used for the word-wrap routines, it is set to the screen width minus 2. Thus, it is set to 38 for 40-column users and 78 for 80-column users.
MD Maximum number of days a caller's mail will be held before it is automatically purged, as defined in SETUP.
MF%() This array stores the ID number of the user who posted each message.
MH Keeps track of the number of pieces of mail held when a caller is reading their mailbox.
ML Maximum number of lines per message as defined in SETUP.
MM Maximum number of messages on the BBS as defined in SETUP.
MN() This array stores the message number of each public message.
MP Maximum password number on the BBS as defined in SETUP.
MR Number of messages read so far when reading E-mail.
MR%() This array keeps track of which messages have already been read.
MS Number of messages to skip to read the next piece of E-mail.
MT Used in the multi-download routines to keep track of how many files have been sent so far.
MT% Current speaker on/off setting in Network.
MU Minimum number of blocks needed to allow uploads as defined in SETUP. The BLOCKS FREE message after the directory display, or before an upload, will automatically be adjusted by this value.
MX Used in √bbs.msgs to keep track of the next message to be read.
N General use.
N%() Array holding the status of each outgoing node.
NA$ Current caller's membership name.
NC%() This array is used to calculate the number of new messages in each category when reading public messages.
ND Set when the date changes and reset after the end-of-day routines are run.
NF$ Used to hold the name and ID# of a remote node.
NI% Used only in Network overlays. It is the next open space in the incoming node accounts file.
NN$ BBS system name, defined in Net Setup.
NN% Number of nodes, defined in Net Setup.
NN() Prices for outgoing nodes: (x,0) = first 1000 bytes, (x,1) = each additional 100 bytes.
NU Total number of callers who have called the BBS, as stored in √variables. NU is incremented each time a different caller calls the BBS; it is not incremented if the same caller calls twice in a row.
NU$ This variable stores CHR$(0). It saves memory to use NU$ instead of CHR$(0).
OP% Opening hour for the window of outgoing Network messages.
OV This variable stores a pointer number that will be used after loading another overlay to determine what line number to execute. Line 5 of every program contains an 'ON OV GOTO XX,XX,XX' command to make sure the proper routines are run based on the value of OV.
P General status variable. If carrier is lost, P=255. If the caller types ↑P, P=1. Use "IF P THEN RETURN" after all inputs to make sure the BBS aborts if carrier is lost or the caller types ↑P.
P$ General use.
PD Current caller's number of blocks downloaded. See also C1, C2, and PU.
PH$ Current caller's phone number as stored in the password file.
PM If this variable is 0, the clock is in the AM range. If this variable is 1, the clock is in the PM range.
PN Used only in Network overlays. Holds the number of public messages received when distributing incoming messages.
PR This variable is set if you answer P to the "(S)creen or (P)rinter" question.
PS Current caller's number of posts as stored in the password file.
PU Current caller's number of blocks uploaded. The variables C1, C2, PD, and PU are used to determine a caller's download credit status with the following formula:
C2+PU*C1-PD
PW$ Current caller's password. It is saved in each caller's membership record in the password file.
QZ% Used as a flag when editing a message for when MCIs are turned off, and also as a temporary holding variable.
R1 Temporary holding area for the sysop's record number when using Validate or Password Maintenance.
RA Set when the user is reading ALL message categories.
RN Current caller's record number (membership number). Also, during password maintenance, this variable is saved and then reassigned to the value of the caller number being edited.
RN$ Current caller's real name as stored in the password file.
RU System auto-release level as defined in SETUP.
RX% See variable FU.
S Used only in Network overlays. Holds the duration of a Network call.
S1 Number of new callers for the current day as stored in √variables.
S2 Number of calls today as stored in √variables.
S3 Number of uploads today as stored in √variables.
S4 Number of downloads today as stored in √variables.
S5 Number of messages posted today as stored in √variables.
S6 Number of public net messages waiting as stored in √variables.
S7 Number of outgoing messages to send as stored in √variables.
SB Set if you answered Y to screen blanking in SETUP.
SC Set if you answered Y to daily caller-log backup in SETUP.
SD$ Current download-directory prefix. If you are not using multiple directories per drive, this variable will always equal "". Otherwise, it will equal "A" for directory A, "B" for directory B, etc.
SM Highest message number read on this call. When a caller logs on, this variable is assigned the same value as LM. Then, as public messages are read, this variable is assigned the highest message number read. When a caller logs off, LM is set equal to this variable and then stored in the password file.
SR Used to represent the status byte of the current I/O function. ST is automatically updated by the C64 after every I/O, and SR is used to save the value of ST when needed.
SU$ This variable stores the subject of the last read message.
T General use.
T$ Current time. You must GOSUB1110 to update this variable.
T() This array stores the daily time limits for each access level and the per-call limits for AM and PM hours, as defined in SETUP.
T1 Number of invalid sign-ons since midnight last night as stored in √variables.
TA This variable, along with TB, is used by the multi-download routines to keep track of where the BBS is in the list of files to send.
TB See TA.
TE$ See variable FU.
TI Total time, in jiffies, that the caller has been online.
TI$ This variable is set to "000000" when a caller logs on and is automatically incremented every second. It is used to keep track of how long a caller has been online. It is also used to keep track of how long the BBS has been waiting between calls.
TM Total minutes the caller has for this call. TM-INT(TI/3600) represents the number of minutes the caller has left for this call.
TS Number of times the current caller has called. It is saved in the password file.
TT This variable represents the time remaining for today less the value in TM. The total of TM and TT represents the total time the caller has for the rest of the day.
TX$ This is a special variable that Color 64 reserves for disk reads and typed input. The length of TX$ determines the maximum number of characters that can be read from keyboard or disk. It should not be changed except by special system routines that need to lengthen TX$ to copy larger amounts of disk data.
TX% See variable FU.
TY See variable FU.
UD Default upload directory number. This is always the first upload directory in SETUP with a Y in the upload status.
UX This variable stores the UPLOAD DESCRIPTION status of the BBS as defined in SETUP. If it has a value of 1, the system is defined as using upload descriptions. If it has a value of 0, the system is not using upload descriptions.
UX$ This variable is used to store the first few lines of the upload description while in the message editor in √bbs.xfer.
VE Used by Network to store the Network version number of the remote BBS node during a Network call.
VS This variable is set if the variables have been saved and is cleared when another caller calls.
VX Several routines use the same message editor, and this variable tells the BBS where to go after it finishes editing the message (for example, back to Read Feedback, Read Mail, Read Messages, or Posting a Message).
WD%() This array stores the purge parameters for the different caller access levels as defined in SETUP.
X General use.
X$ Used only in Network overlays; general use.
X% Used only in Network overlays. Holds current node ID#.
Z Used only in Network overlays; general use.
Z$ General use.
Z3 See variable FU.

General variables used without specific definition: A, A$, B, B$, C, C$, I, I$, II, J, N, P$, T, X, Z$

Next section: Generic Overlay Files

Programming Features