This page (revision-7) was last changed on 03-Feb-2023 15:21 by Stefan Haubenthal 

This page was created on 09-Mar-2010 15:49 by Carsten Strotmann

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
7 03-Feb-2023 15:21 53 KB Stefan Haubenthal to previous wikify
6 20-Feb-2012 11:56 53 KB Stefan Haubenthal to previous | to last backslashes removed
5 16-Feb-2012 15:57 53 KB Stefan Haubenthal to previous | to last wikify
4 26-Dec-2010 13:27 53 KB Carsten Strotmann to previous | to last
3 09-Mar-2010 15:57 53 KB Carsten Strotmann to previous | to last
2 09-Mar-2010 15:51 53 KB Carsten Strotmann to previous | to last
1 09-Mar-2010 15:49 53 KB Carsten Strotmann to last

Page References

Incoming links Outgoing links

Version management

Difference between version and

At line 1 changed one line
! Atari Dos 4 (aka ANTIC Dos aka QDOS)
!!! Atari Dos 4 (aka ANTIC Dos aka QDOS)
At line 3 added one line
At line 6 added 4 lines
!! Disk
* [Atari DOS 4/DOS40-SD.ATR]
At line 13 changed one line
!!! HOW TO USE THE HELP SYSTEM
! HOW TO USE THE HELP SYSTEM
At line 16 changed 3 lines
* Press the RETURN key to go back to the previous menu.
* Press the ESC key to go back to the main menu.
* Press the BREAK key to exit from the help system and return to DOS.
* Press the RETURN key to go back to the previous menu.
* Press the ESC key to go back to the main menu.
* Press the BREAK key to exit from the help system and return to DOS.
At line 20 changed one line
!!! GENERAL INFORMATION ON DOS 4
! GENERAL INFORMATION ON DOS 4
At line 32 changed one line
!!! DISK DRIVE NUMBERS
! DISK DRIVE NUMBERS
At line 45 changed one line
!!! FILE SPECIFICATIONS AND WILDCARDS
! FILE SPECIFICATIONS AND WILDCARDS
At line 63 changed one line
!!! WILDCARDS
! WILDCARDS
At line 65 changed one line
There are two wildcard characters which may be used within file names (both the primary and the extender): the question mark "?" and the star "\*".
There are two wildcard characters which may be used within file names (both the primary and the extender): the question mark "?" and the star "*".
At line 71 changed one line
The star "\*" is equivalent to padding the rest of the field (primary or extender) with question marks.
The star "*" is equivalent to padding the rest of the field (primary or extender) with question marks.
At line 73 changed one line
Example, "D:WH\*" will match "D:WHO" and "D:WHEN" but not "D:WAVE".
Example, "D:WH*" will match "D:WHO" and "D:WHEN" but not "D:WAVE".
At line 75 changed one line
filespec "D:\*.BAS" will match all file names with extender ".BAS", and "D:\*.\*" will match anything.
filespec "D:*.BAS" will match all file names with extender ".BAS", and "D:*.*" will match anything.
At line 79 changed one line
!!! THE DOS 4 FILE MANAGEMENT SYSTEM
! THE DOS 4 FILE MANAGEMENT SYSTEM
At line 96 changed one line
!!!! Input/output control blocks (IOCBs)
!! Input/output control blocks (IOCBs)
At line 100 changed one line
!!!! The OPEN command
!! The OPEN command
At line 119 changed one line
!!!! Open Bad File Input
!! Open Bad File Input
At line 126 changed one line
!!!! Open Directory Read
!! Open Directory Read
At line 147 changed one line
!!!! Open Output
!! Open Output
At line 151 changed one line
!!!! Open Append
!! Open Append
At line 155 changed one line
!!!! Open Update
!! Open Update
At line 160 changed one line
!!!! Open Verify
!! Open Verify
At line 165 changed one line
!!!! Close
!! Close
At line 171 changed one line
!!!! Get
!! Get
At line 175 changed one line
!!!! Input
!! Input
At line 179 changed one line
!!!! Put
!! Put
At line 183 changed one line
!!!! Print
!! Print
At line 187 changed one line
!!!! Status
!! Status
At line 191 changed one line
!!!! Rename
!! Rename
At line 196 changed one line
!!!! Delete
!! Delete
At line 200 changed one line
!!!! Lock
!! Lock
At line 204 changed one line
!!!! Unlock
!! Unlock
At line 208 changed one line
!!!! Point and Note
!! Point and Note
At line 227 changed one line
!!!! Format
!! Format
At line 230 changed one line
Warning: Formatting a disk erases all the files on the disk, regardless of whether or not they are locked!!!
Warning: Formatting a disk erases all the files on the disk, regardless of whether or not they are locked!
At line 232 changed one line
!!! Boot
! Boot
At line 239 changed one line
!!! THE DOS 4 COMMAND PROCESSOR
! THE DOS 4 COMMAND PROCESSOR
At line 245 changed 2 lines
To load the Command Processor from within other software, give the command equivalent to the BASIC "DOS" command, usually something like "EXIT" or "RETURN TO DOS". Before you load the Command Processor, insert a disk that contains the Command Processor program into disk drive #1 (if using the disk drive number redirection feature of DOS 4 then the CP program must go into logical drive #1, not physical drive
#1). If you attempt to load the Command Processor without first inserting such a disk, the computer will "freeze". If this happens, press BREAK and another attempt will be made to load the Command Processor. The CP menu is constructed by reading the directory of disk drive #1 and listing all files whose names end in the extender ".COM". (If disk drive number redirection is being used, the CP reads the directory of logical drive #1, not physical drive ##) maximum of sixteen such files can be listed.
To load the Command Processor from within other software, give the command equivalent to the BASIC "DOS" command, usually something like "EXIT" or "RETURN TO DOS". Before you load the Command Processor, insert a disk that contains the Command Processor program into disk drive #1 (if using the disk drive number redirection feature of DOS 4 then the CP program must go into logical drive #1, not physical drive #1). If you attempt to load the Command Processor without first inserting such a disk, the computer will "freeze". If this happens, press BREAK and another attempt will be made to load the Command Processor. The CP menu is constructed by reading the directory of disk drive #1 and listing all files whose names end in the extender ".COM". (If disk drive number redirection is being used, the CP reads the directory of logical drive #1, not physical drive ##) maximum of sixteen such files can be listed.
At line 257 changed one line
!!! THE DOS 4 DISK UTILITY PACKAGE
! THE DOS 4 DISK UTILITY PACKAGE
At line 305 changed one line
The I. FORMAT DATA DISK command formats a blank disk. You must format a disk before you can use it to store disk files. Warning: Formatting a disk erases all the files on the disk, regardless of whether or not they are locked!!!
The I. FORMAT DATA DISK command formats a blank disk. You must format a disk before you can use it to store disk files. Warning: Formatting a disk erases all the files on the disk, regardless of whether or not they are locked!
At line 319 changed one line
rules: an extender which contains a wildcard will not match an extender of ".SYS" or ".COM". For example, "\*.\*" refers to all files except those ending in ".SYS" or ".COM", while "\*.COM" refers to all files whose names end in ".COM". When you have done this, the duplicate operation will proceed. If you specify the same drive as both source and destination, the DUP informs you that swapping is required and asks how many copies you want to make. Respond with a number from 1 to (The number defaults to 1 if you press RETURN.) When you specify the number of copies, you may place the option "/R" after the number (for example, you may type "3/R"). The /R option specifies that the drive is to be reconfigured each time disks are swapped. This makes it possible to move files between disks of different types (e.g., between single- and double-density disks) even if you have only one disk drive. If you choose the /R option, the DUP asks you to specify the drive configuration to be used for the source disk and the configuration to be used for the destination disk(s). Each time, DUP displays a menu of configurations to choose from. Next, the DUP asks for the names of the files to be copied. Respond by entering one or more file names, separated by commas, as previously described. The DUP then asks you to insert the source disk. When you have done so, it reads in as many of the specified source files as will fit into memory and then asks you insert the destination disk. Once you've done that, the data in memory is written out. If you requested more than one copy, the DUP asks you to insert the second destination disk and again the data in memory is written out. The DUP continues to ask for destination disks until it has written onto each of them. At this point, if all of the specified source disk files have been written then the operation ends. If not, the DUP asks you to reinsert the source disk, and the above steps are repeated until all of the specified files have been written onto each destination disk.
rules: an extender which contains a wildcard will not match an extender of ".SYS" or ".COM". For example, "*.*" refers to all files except those ending in ".SYS" or ".COM", while "*.COM" refers to all files whose names end in ".COM". When you have done this, the duplicate operation will proceed. If you specify the same drive as both source and destination, the DUP informs you that swapping is required and asks how many copies you want to make. Respond with a number from 1 to (The number defaults to 1 if you press RETURN.) When you specify the number of copies, you may place the option "/R" after the number (for example, you may type "3/R"). The /R option specifies that the drive is to be reconfigured each time disks are swapped. This makes it possible to move files between disks of different types (e.g., between single- and double-density disks) even if you have only one disk drive. If you choose the /R option, the DUP asks you to specify the drive configuration to be used for the source disk and the configuration to be used for the destination disk(s). Each time, DUP displays a menu of configurations to choose from. Next, the DUP asks for the names of the files to be copied. Respond by entering one or more file names, separated by commas, as previously described. The DUP then asks you to insert the source disk. When you have done so, it reads in as many of the specified source files as will fit into memory and then asks you insert the destination disk. Once you've done that, the data in memory is written out. If you requested more than one copy, the DUP asks you to insert the second destination disk and again the data in memory is written out. The DUP continues to ask for destination disks until it has written onto each of them. At this point, if all of the specified source disk files have been written then the operation ends. If not, the DUP asks you to reinsert the source disk, and the above steps are repeated until all of the specified files have been written onto each destination disk.
At line 330 changed one line
!!! ADVANCED INFORMATION
! ADVANCED INFORMATION
At line 332 changed one line
!!!! INTRODUCTION
!! INTRODUCTION
At line 337 changed one line
!!!! DISK DRIVE NUMBER INDIRECTION
!! DISK DRIVE NUMBER INDIRECTION
At line 341 changed one line
certain memory locations within DOS 4, you can make each logical drive refer to whichever physical drive you wish. Drive number indirection is controlled by DTYPE at [$73F,$A]. four low-order bits of memory location DTYPE+n gives the physical drive number to be associated with logical drive number Dn:. If the four low-order bits of DTYPE+n are zero then logical drive Dn: is not supported. You may change the contents of DTYPE at any time, even if there are open files to the drives in question. The physical drive associated with a file is determined when the OPEN statement is executed, so that changing DTYPE will not cause an open file to start reading from a different drive.
certain memory locations within DOS 4, you can make each logical drive refer to whichever physical drive you wish. Drive number indirection is controlled by DTYPE at $73F,$A. four low-order bits of memory location DTYPE+n gives the physical drive number to be associated with logical drive number Dn:. If the four low-order bits of DTYPE+n are zero then logical drive Dn: is not supported. You may change the contents of DTYPE at any time, even if there are open files to the drives in question. The physical drive associated with a file is determined when the OPEN statement is executed, so that changing DTYPE will not cause an open file to start reading from a different drive.
At line 344 changed one line
!!!! BUFFER ALLOCATION
!! BUFFER ALLOCATION
At line 346 changed 3 lines
Buffer allocation is controlled by the contents of memory locations BUFMAX at [$710,1] and BUFSIZ at [$711,1]. BUFMAX contains the number
of sector buffers to be allocated; it must be between 2 and 16 (decimal) inclusive. If you want to have N open files on a system with D disk drives then the minimum number of buffers required is N+MIN(N,D). The standard number of buffers is 5. BUFSIZ determines the size of the
buffers. It must contain either 0 (for 256-byte buffers) or $80 (for 128-byte buffers). If you have any double-density drives (or single-density drives with a two-sector VTOC), BUFSIZ must contain 0. The standard value of BUFSIZ is 0. It is recommended that you use a value of 0 even if you have only single-density drives. The contents of BUFMAX and BUFSIZ may be changed only when there are no open disk files. The recommended procedure is:
Buffer allocation is controlled by the contents of memory locations BUFMAX at $710,1 and BUFSIZ at $711,1. BUFMAX contains the number of sector buffers to be allocated; it must be between 2 and 16 (decimal) inclusive. If you want to have N open files on a system with D disk drives then the minimum number of buffers required is N+MIN(N,D). The standard number of buffers is 5. BUFSIZ determines the size of the buffers. It must contain either 0 (for 256-byte buffers) or $80 (for 128-byte buffers). If you have any double-density drives (or single-density drives with a two-sector VTOC), BUFSIZ must contain 0. The standard value of BUFSIZ is 0. It is recommended that you use a value of 0 even if you have only single-density drives. The contents of BUFMAX and BUFSIZ may be changed only when there are no open disk files. The recommended procedure is:
At line 356 changed one line
!!!! THE RESIDENT BINARY LOADER
!! THE RESIDENT BINARY LOADER
At line 372 changed one line
before calling KERNEL you must store a value into DUPFLG at [$736,1] and optionally into DUPLO at [$732,2] and DUPHI at [$734,2]. Storing zero into DUPFLG forces KERNEL to load the Command Processor when the loaded program returns. Storing any non-zero value into DUPFLG makes KERNEL load the CP only if the calling program was overwritten during the load. In this case, the calling program stores the address of its first byte into DUPLO and the address of its last byte into DUPHI. If the calling program is not overwritten during the load then KERNEL will return to the calling program instead of loading the CP. If KERNEL decides that it must load and run the Command Processor then, before it does so, it stores the error status resulting from the binary load into BLDFLG at [$737,1].
before calling KERNEL you must store a value into DUPFLG at $736,1 and optionally into DUPLO at $732,2 and DUPHI at $734,2. Storing zero into DUPFLG forces KERNEL to load the Command Processor when the loaded program returns. Storing any non-zero value into DUPFLG makes KERNEL load the CP only if the calling program was overwritten during the load. In this case, the calling program stores the address of its first byte into DUPLO and the address of its last byte into DUPHI. If the calling program is not overwritten during the load then KERNEL will return to the calling program instead of loading the CP. If KERNEL decides that it must load and run the Command Processor then, before it does so, it stores the error status resulting from the binary load into BLDFLG at $737,1.
At line 376 changed one line
!!!! THE STANDARD BINARY LOAD FILE FORMAT
!! THE STANDARD BINARY LOAD FILE FORMAT
At line 380 changed 5 lines
# A two-byte file type code, in which each byte contains $FF. This is required on the first segment in the file, but optional on subse-
quent segments.
2. A four-byte header in which the first two bytes give the address where the first byte of the data block goes, and the last two bytes
give the address where the last byte of the data block goes.
3. A data block which contains one or more bytes of data to be loaded into memory.
# A two-byte file type code, in which each byte contains $FF. This is required on the first segment in the file, but optional on subsequent segments.
# A four-byte header in which the first two bytes give the address where the first byte of the data block goes, and the last two bytes give the address where the last byte of the data block goes.
# A data block which contains one or more bytes of data to be loaded into memory.
At line 386 changed one line
There are two memory locations which have special significance to the loader: INIVEC at [$2E2,2] and RUNVEC at [$2E0,2]. Every time the loader finishes loading a segment, it checks to see if a non-zero address was loaded into INIVEC. If so, the loader immediately executes a subroutine call (JSR statement) to the address in INIVEC.
There are two memory locations which have special significance to the loader: INIVEC at $2E2,2 and RUNVEC at $2E0,2. Every time the loader finishes loading a segment, it checks to see if a non-zero address was loaded into INIVEC. If so, the loader immediately executes a subroutine call (JSR statement) to the address in INIVEC.
At line 390 changed one line
!!!! COMMAND PROCESSOR FILENAME
!! COMMAND PROCESSOR FILENAME
At line 392 changed 2 lines
DUPSPC at [$722,$10] contains the name of the file which contains the Command Processor. This is normally "D1:QDUP.SYS". The filename must end with a carriage return. If you wish to replace the Command Processor with a program of your own, place the name of the file containing
your program into DUPSPC. The program must be in the standard binary load file format. The H. WRITE DOS command can be used to write out a version of DOS 4 containing the new value of DUPSPC. Before it loads the CP, the resident FMS closes all IOCB's. The FMS does not clear the screen, so if a screen clear is desired then the CP must do it. If the CP is going to use the resident screen editor "E:", it should begin with an initialization routine which:
DUPSPC at $722,$10 contains the name of the file which contains the Command Processor. This is normally "D1:QDUP.SYS". The filename must end with a carriage return. If you wish to replace the Command Processor with a program of your own, place the name of the file containing your program into DUPSPC. The program must be in the standard binary load file format. The H. WRITE DOS command can be used to write out a version of DOS 4 containing the new value of DUPSPC. Before it loads the CP, the resident FMS closes all IOCB's. The FMS does not clear the screen, so if a screen clear is desired then the CP must do it. If the CP is going to use the resident screen editor "E:", it should begin with an initialization routine which:
At line 399 changed one line
There are two entry points which load the CP: indirectly through DOSVEC at $0A, or directly through KERNEL at $70D. The CP can determine which entry point was used by examining BLDFLG at [$737,1]. The contents of BLDFLG is zero if entry DOSVEC was used, and non-zero if entry KERNEL was used. In the latter case, the contents of BLDFLG is the error status code resulting from the binary load process; a value greater than or equal to $80 indicates that an error occurred.
There are two entry points which load the CP: indirectly through DOSVEC at $0A, or directly through KERNEL at $70D. The CP can determine which entry point was used by examining BLDFLG at $737,1. The contents of BLDFLG is zero if entry DOSVEC was used, and non-zero if entry KERNEL was used. In the latter case, the contents of BLDFLG is the error status code resulting from the binary load process; a value greater than or equal to $80 indicates that an error occurred.
At line 401 changed one line
!!!! SIO/PIO COMMANDS AND INTERCEPTION
!! SIO/PIO COMMANDS AND INTERCEPTION
At line 405 changed 3 lines
standard alternate command value
symbol
location
WRCOMD $73A,1 write
RDCOMD $73B,1 read
DWCOMD $73C,1 write
STCOMD $73D,1 status
At line 409 added 2 lines
WRCOMD is the command used to write data sectors, and DWCOMD is the command used to write directory and VTOC sectors.
Use $50 for fast write (write without verify) and $57 for slow write (write with verify).
At line 412 added one line
Memory location RRVECT at $7D1,3 contains a JMP instruction. The FMS executes a subroutine call (JSR statement) to RRVECT immediately prior to each call to SIO or PIO (the call takes place after setting up the DCB). If you store an address into RRVECT+1 and RRVECT+2, you can effectively intercept all calls to SIO or PIO. The intended use of RRVECT is to allow programs to remain responsive to the user during long disk operations. The contents of RRVECT+1 and RRVECT+2 are initialized to point to an RTS during both coldstart and warmstart. If an RRVECT routine wishes to prevent the FMS from calling SIO or PIO, it can do so by pulling the return address off the stack, adding 3, and then pushing the result back on the stack. If this is done, the RRVECT routine must store an error status code into DSTATS at $303,1 and into the 6502 Y-register before it returns.
At line 411 changed 20 lines
value
WRCOMD
[$73A,1]
write
RDCOMD
[$73B,1]
read
DWCOMD
[$73C,1]
write
STCOMD
[$73D,1]
status
WRCOMD is the command used to write
data sectors, and DWCOMD is the com-
mand used to write directory and VTOC
sectors.
Use $50 for fast write
(write without verify) and $57 for
slow write (write with verify).
!! DOS 4 MEMORY MAP
At line 432 removed 5 lines
Memory location RRVECT at [$7D1,3] contains a JMP instruction. The FMS executes a subroutine call (JSR statement) to RRVECT immediately prior to each call to SIO or PIO (the call takes place after setting up the DCB). If you store an address into RRVECT+1 and RRVECT+2, you can effectively intercept all calls to SIO or PIO. The intended use of RRVECT is to allow programs to remain responsive to the user during long disk operations. The contents of RRVECT+1 and RRVECT+2 are initialized to point to an RTS during both coldstart and warmstart. If an RRVECT routine wishes to prevent the FMS from calling SIO or PIO, it can do so by pulling the return address off the stack, adding 3, and
then pushing the result back on the stack. If this is done, the RRVECT routine must store an error status code into DSTATS at [$303,1] and into the 6502 Y-register before it returns.
!!!! DOS 4 MEMORY MAP
At line 457 changed one line
!!!! ENVIRONMENT CONTROL
!! ENVIRONMENT CONTROL
At line 459 changed 2 lines
CTBOOT at [$7D5,1] determines whether control goes to the CP or to the cartridge when the computer is turned on. If CTBOOT is zero then
control goes to the CP. If CTBOOT is non-zero then control goes to the cartridge (provided that a cartridge is installed). Built-in BASIC acts just like a cartridge.
CTBOOT at $7D5,1 determines whether control goes to the CP or to the cartridge when the computer is turned on. If CTBOOT is zero then control goes to the CP. If CTBOOT is non-zero then control goes to the cartridge (provided that a cartridge is installed). Built-in BASIC acts just like a cartridge.
At line 462 changed 2 lines
CRTENV at [$7D4,1] determines whether control goes to the CP or to the cartridge when SYSTEM RESET is pressed: zero for the CP, non-zero for
the cartridge. Any program loaded from the CP that passes control to a cartridge should store a non-zero value into CRTENV.
CRTENV at $7D4,1 determines whether control goes to the CP or to the cartridge when SYSTEM RESET is pressed: zero for the CP, non-zero for the cartridge. Any program loaded from the CP that passes control to a cartridge should store a non-zero value into CRTENV.
At line 465 changed one line
!!!! RELAXATION OF FILESPEC RULES
!! RELAXATION OF FILESPEC RULES
At line 467 changed 2 lines
REQEOL at [$7D6,1] determines how strictly the FMS enforces the rules for filespecs. A value of $FF means that the rules are strictly enforced. In particular, each filespec must end with a carriage return. A value of $0B is the same as $FF, except that extra characters in the extender are ignored. A value of $00 relaxes the rules, which means that any invalid character is interpreted to mean end-of-filespec.
The default value of REQEOL is $0B. Values other than $00, $0B, or $FF are not allowed.
REQEOL at $7D6,1 determines how strictly the FMS enforces the rules for filespecs. A value of $FF means that the rules are strictly enforced. In particular, each filespec must end with a carriage return. A value of $0B is the same as $FF, except that extra characters in the extender are ignored. A value of $00 relaxes the rules, which means that any invalid character is interpreted to mean end-of-filespec. The default value of REQEOL is $0B. Values other than $00, $0B, or $FF are not allowed.
At line 470 changed one line
!!!! I/O ERROR CODES
!! I/O ERROR CODES
At line 507 changed one line
!!!! CONFIGURING DOS 4 TO YOUR SYSTEM
!! CONFIGURING DOS 4 TO YOUR SYSTEM
At line 530 changed one line
# In response to the prompt "GIVE NAME(S) OF FILE(S) TO MOVE", type "\*.COM,\*.\*" and press RETURN.
# In response to the prompt "GIVE NAME(S) OF FILE(S) TO MOVE", type "*.COM,*.*" and press RETURN.
At line 538 changed one line
!!!! Dos 4 System Equates
!! Dos 4 System Equates