Callerlog: Difference between revisions
No edit summary |
No edit summary |
||
| (3 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
[[bbs operation|BBS Operation]] - <strong>The Caller Log</strong> | {{DISPLAYTITLE:Caller Log}} | ||
[[bbs operation|BBS Operation]] - <strong>The Caller Log System</strong> | |||
The | The Caller Log is stored on disk as a sequential file named “√caller log”. Its behavior and size limits are controlled by the parameters you defined in SETUP. | ||
Due to BASIC memory limitations, the Caller Log must always reside on drive 0. This restriction applies only to this file type and should not present any operational issues for your BBS. | |||
As the BBS runs, the variable LG$ is automatically updated with log information whenever a program performs a GOSUB to line 8003 (for i$) or 8004 (for a$). The LG$ variable can hold up to 250 characters before it is written to a special memory buffer. This buffer can store two such entries before the data must be transferred to disk. | |||
When the BBS | When the buffer becomes full, or when the BBS explicitly forces the operation, its contents are written to a temporary file named “√l” on the Caller Log drive. If multiple buffer dumps occur, additional information is appended to the same “√l” file. | ||
When the BBS returns to the Wait-For-Call screen, the contents of “√l” are appended to “√caller log”. At this point, the message “Appending to Caller Log” appears on the screen. This same message will also appear during a proper shutdown or after a crash recovery. This mechanism ensures that caller activity is preserved and written safely to disk. | |||
During the append process, a duplicate file named “√l.tmp” is created. This file is an exact copy of “√l” and is not scratched. It provides a snapshot of the most recent call. When you view the Caller Log, you will be asked “View Last Call?”. If you answer “Y”, the system displays the contents of “√l.tmp”. If you answer “N”, the full Caller Log is displayed instead. | |||
After viewing the complete Caller Log, you will be prompted to scratch it. If you answer “Y”, the log will be erased and restarted. If you answer “N”, it will remain intact. The ability to scratch the Caller Log is access-level definable in SETUP. If you intend to maintain historical records, simply avoid scratching the file. | |||
The default maximum | Caller Log maintenance is handled by lines 28500–28770 in “√bbs.init”. This routine automatically trims the Caller Log when it exceeds the maximum size defined in SETUP. The file is also governed by the “minimum UL space” setting. If either the maximum log size is exceeded or the minimum free space threshold is reached, the system trims the Caller Log by the number of blocks specified in SETUP. | ||
By default, the maximum Caller Log size is 50 blocks and the default trim size is 8 blocks. The trim size does not mean that exactly 8 blocks are always removed. Instead, the routine reduces the file to the required size and then removes an additional 8 blocks to provide working space for future entries. | |||
The entire process is automatic and designed to prevent disk-full conditions. If, in a worst-case scenario, trimming cannot free sufficient space, the system will scratch the Caller Log entirely to avoid a Disk Full Error. | |||
Next Section: [[mcicommands|MCI Commands]] | |||
[[bbs operation|BBS Operation]] | [[bbs operation|BBS Operation]] | ||
Latest revision as of 05:11, 16 February 2026
BBS Operation - The Caller Log System
The Caller Log is stored on disk as a sequential file named “√caller log”. Its behavior and size limits are controlled by the parameters you defined in SETUP.
Due to BASIC memory limitations, the Caller Log must always reside on drive 0. This restriction applies only to this file type and should not present any operational issues for your BBS.
As the BBS runs, the variable LG$ is automatically updated with log information whenever a program performs a GOSUB to line 8003 (for i$) or 8004 (for a$). The LG$ variable can hold up to 250 characters before it is written to a special memory buffer. This buffer can store two such entries before the data must be transferred to disk.
When the buffer becomes full, or when the BBS explicitly forces the operation, its contents are written to a temporary file named “√l” on the Caller Log drive. If multiple buffer dumps occur, additional information is appended to the same “√l” file.
When the BBS returns to the Wait-For-Call screen, the contents of “√l” are appended to “√caller log”. At this point, the message “Appending to Caller Log” appears on the screen. This same message will also appear during a proper shutdown or after a crash recovery. This mechanism ensures that caller activity is preserved and written safely to disk.
During the append process, a duplicate file named “√l.tmp” is created. This file is an exact copy of “√l” and is not scratched. It provides a snapshot of the most recent call. When you view the Caller Log, you will be asked “View Last Call?”. If you answer “Y”, the system displays the contents of “√l.tmp”. If you answer “N”, the full Caller Log is displayed instead.
After viewing the complete Caller Log, you will be prompted to scratch it. If you answer “Y”, the log will be erased and restarted. If you answer “N”, it will remain intact. The ability to scratch the Caller Log is access-level definable in SETUP. If you intend to maintain historical records, simply avoid scratching the file.
Caller Log maintenance is handled by lines 28500–28770 in “√bbs.init”. This routine automatically trims the Caller Log when it exceeds the maximum size defined in SETUP. The file is also governed by the “minimum UL space” setting. If either the maximum log size is exceeded or the minimum free space threshold is reached, the system trims the Caller Log by the number of blocks specified in SETUP.
By default, the maximum Caller Log size is 50 blocks and the default trim size is 8 blocks. The trim size does not mean that exactly 8 blocks are always removed. Instead, the routine reduces the file to the required size and then removes an additional 8 blocks to provide working space for future entries.
The entire process is automatic and designed to prevent disk-full conditions. If, in a worst-case scenario, trimming cannot free sufficient space, the system will scratch the Caller Log entirely to avoid a Disk Full Error.
Next Section: MCI Commands