3,104 bytes added,
23:01, 17 January 2009 '''Displaying graphics when a disc directory is listed'''
There are two instructions to display a directory of a disc:
* CAT
* |DIR
The differences between these two commands are listed below.
== CAT ==
Example output using CAT command:
cat
Drive A: user 0
CATALOG .ASM 4K SCROLL .BAK 2K
HWSPRITE.ASM* 4K SPLTSCRN.ASM 3K
SCROLL .ASM 2K
163K free
Ready
Notes:
* File names are sorted into increasing alphabetical order before display
* The file-size is displayed
* The file names are printed using firmware "TXT OUTPUT" (&BB5A) function which will execute control characters.
* A "*" character is displayed after the extension if the file is read-only. If the file is read-write then a " " (space) character is displayed.
* Hidden/system files are not displayed
* Free space remaining on disc is displayed
== |DIR ==
Example output using |DIR command:
|dir
Drive A: user 0
HWSPRITE.ASM CATALOG .ASM
SPLTSCRN.ASM SCROLL .ASM
163K free
Ready
Notes:
* File names are listed in the order stored in the directory
* File size is not displayed.
* The file names are printed using firmware "TXT OUTPUT" (&BB5A) function which will execute control characters
* read-only/read-write state is not displayed
* Hidden/system files are not displayed
* Free space remaining on disc is displayed
== Displaying text and graphics using CAT and/or |DIR ==
The standard DATA and SYSTEM formats have 64 directory entries.
The following procedure is used to display a directory listing:
# Display blank line
# Display "Drive " followed by drive letter ("A" or "B")
# Display ":" character
# Display " user " followed by user number (the user number is displayed padded with spaces) e.g. " 0", " 15"
# Display blank line
# if CAT:
#* Perform directory operation and sort filenames into increasing alphabetical order
# if |DIR:
#* Perform directory operation and do not sort
# The following procedure is repeated for each filename:
#* Display the 8 characters of the name part of the filename
#* Display a "." character
#* Display the 3 characters of the extension part of the filename
#* If |DIR
#** display 3 spaces
#* if CAT
#** If file is read-only, display a "*" character, otherwise if file is read-write display a " " (space) character.
#** display 2 spaces
#** display file size in K, followed by "K" character
If you want the output to look identical with CAT and |DIR, follow these rules:
* List the directory entries in the order that they are "executed"
* Do not use the extra characters ("*" and file size) displayed by CAT, or the 3 spaces displayed by |DIR
{| class="prettytable"
! <center>Offset</center>
! <center>Count</center>
! <center>Description</center>
|-
| 0
| 1
| User number (set to "0")
|-
| 1
| 1
| Sort key (use the characters with ASCII codes 32-127 in ascending order)
|-
| 2
| 1
| ACK control code (enable printing of characters)
|-
| 3..8
| 6
| (useable)
|-
| 9
| 6
| BS (to erase "." character)
|-
| 10
| 1
| (useable)
|-
| 11
| 1
| NAK
|-
| 12..31
| 19
| not used (set to "0")
|}