RAMDRIVE.CFG commands:
NOTE: Atari Ramdrive will ONLY work on Atari 8-bit computers, there are no plans to produce a Windows 95/98/NT version
PRINT - parameters: between 1 and 30
parameter 1 to 30: number (0-255), string or constant (ESCAPE - 27, UP - 28, DOWN - 29, LEFT - 30, RIGHT - 31, SPACE - 32, QUOTE - 34, CLEAR - 125, DELETE - 126, TAB - 127, RETURN - 155, DELETE_LINE - 156, INSERT_LINE - 157, CLEAR_TAB - 158, SET_TAB - 159, BUZZER - 253, DELETE_CHAR - 254, INSERT_CHAR - 255)
This command works in a similar way to the BASIC PRINT command. It displays its parameters on the screen. It can take between 1 and 30 parameters, which can be either strings, numbers or constants. If a parameter is a number then corresponding ATASCII character will be displayed (65 = A, 97 = a, etc.). If the parameter is a constant then it will display the appropriate character (i.e. UP moves the cursor up one line, CLEAR clears the screen, etc.) Example:
PRINT CLEAR,"this is an example of the PRINT command",32,32," space = 32"
PROMPT - parameters: between 0 and 30
parameters 0 to 30: number (0-255), string or constant (same as PRINT)
This command will display its parameters on the screen (like the PRINT command) and then waits for the user to press a key before continuing. This is useful for allowing the user to swap disks before continuing with setting up the ramdrives.
Example:
PROMPT "Insert disk 2 and press any key to continue"
POKE - parameters:2
parameter 1: number (0-65535) - address
parameter 2: number (0-255) - value (1 byte)
This command stores its second parameter at the address represented by the first. This command works in the same way as the BASIC POKE command. Ex.:
POKE 710,20
DPOKE - parameters:2
parameter 1: number (0-65535) - address
parameter 2: number (0-65535) - value (2 bytes)
This command is similar to POKE but it stores 2 bytes worth of information represented by the second parameter at the address represented by the first. This is like Turbo Basic's DPOKE command. Ex.:
DPOKE 30000,12345
DRIVE - parameters: 3 or 18
with 3 parameters:
parameter 1: number (0-9) - drive number
parameter 2: number (0-255) or AUTO - bank number
parameter 3: constant (SSSD, SSED, SSDD, DSDD, SSSD_8K, SSSD_64K, SSSD_128K, SSSD_256K, SSSD_512K, SSSD_1024K) - ramdrive size
with 18 parameters:
parameter 1: number (0-9) - drive number
parameter 2: number (0-255) or AUTO - bank number
parameter 3: number (0-255) - compatibility byte
parameter 4: number (0-65535) - sector subtract
parameter 5: number (0-255) - status byte 1
parameter 6: number (0-255) - status byte 2
parameter 7: number (0-255) - status byte 3
parameter 8: number (0-255) - status byte 4
parameter 9: number (0-255) - config. byte 1, tracks
parameter 10: number (0-255) - config. byte 2
parameter 11: number (0-65535) - config. bytes 3 and 4, sectors per track
parameter 12: number (0-255) - config. byte 5, disk sides
parameter 13: number (0-255) - config. byte 6, density
parameter 14: constant (SD - 128, DD - 256, QD - 512, OD - 1024) - config. byte 7 and 8, sector size
parameter 15: number (0-255) - config. byte 9
parameter 16: number (0-255) - config. byte 10
parameter 17: number (0-255) - config. byte 11
parameter 18: number (0-255) - config. byte 12
This command is used to set up a ramdrive. There are 2 forms of this command, the simplest of the 2 takes 3 parameters, with the more complex taking 18. The following drives have been predefined for you: single sided single density (SSSD 90K), single sided enhanced density (SSED 130K), single sided double density (SSDD 180K), double sided double density (DSDD 360K), 8K ramdrive (SSSD_8K), 16K ramdrive (SSSD_16K), 64K ramdrive (SSSD_64K), 128K ramdrive (SSSD_128K), 256K ramdrive (SSSD_256K), 512K ramdrive (SSSD_512K) and 1024K ramdrive (SSSD_1024K). See the Technical document for more information on how to set up your own ramdrives.
DRIVE 3,AUTO,SSSD_8K
BANKS - parameters: 1
parameter 1: number (0-255) - number of banks to use
This command defines the number of extended memory banks available for all ramdrives. This should be less than or equal to the number of extended RAM banks available. You cannot set up a ramdrive that will need more banks than the value specified here.
i.e. you cannot set up a 90K ramdrive if you only have 4 16K banks (64K of expanded RAM) available. Ex.
BANKS 12
BANK_BITS - parameters 1 or 3
with 1 parameter:
parameter 1: constant (BASIC, XE_64K, XE_256K, XE_512K, XE_1024K) - extended memory configuration
with 3 parameters:
parameter 1: number (0-255) or constant (BASIC - 0, XE_64K - %00001100, XE_256K - %01101100, XE_512K - %01101110, XE_1024K - %11101110) - bank select bits
parameter 2: number (0-255) or constant (BASIC - %00000010, XE_64K - 0, XE_256K - 0, XE_512K - 0, XE_1024K - 0) - set these bits
parameter 3: number (0-255) or constant (BASIC - 0, XE_64K - %00011100, XE_256K - %01111100, XE_512K - %01111110, XE_1024K - %11111110) - clear these bits
This command identifies which bits are used for selecting the expanded RAM. The first form of this command takes 1 parameter, the second takes 3. With 1 parameter it allows you to tell Atari Ramdrive 1.0 the size of your extender RAM. The BASIC constant tells Atari Ramdrive 1.0 to use the 8K of RAM under the BASIC ROM as a small(8K) ramdisk. With 3 parameters, the first defines which bits are used for selecting the extended bank number, a 1 means this bank is used for selecting extended banks, a 0 means it isn't and should be left unchanged. The second parameter defines which bits must be set to enable extended RAM, a 1 will set this bit when extended RAM is to be accessed, a 0 will leave it unchanged. The third parameter defines which bits must be cleared when extended RAM is to be enabled, a 1 indicates this bit should be cleared when extended RAM is enabled, a 0 will leave it unchanged. All the bits used for bank selecting should be set in the third parameter to this command to ensure they have been cleared. See the technical document for more information. Ex.
BANK_BITS XE_256K
BANK_BITS %00001100,%00000000,%00011100
BANK_SIZE - parameters 1
parameter 1: constant (XE, BASIC, B_32K, B_16K, B_8K, B_4K, B_2K, B_1K) - size of extended RAM banks
Defines the size of the extended RAM banks. This command takes one parameter which will let you specify the size of your extended banks to be either 1K (B_1K), 2K (B_2K), 4K (B_4K), 8K (B_8K), 16K (B_16K, XE or BASIC), or 32K (B_32K). For more information see the technical manual. Ex.
BANK_SIZE B_16K
BANK_WINDOW - parameters 1
parameter 1: number (0-65535) or constant (XE - 16384, BASIC - 40960) - bank window address
Identifies where the extended RAM banks will appear in the memory address space. The XE constant specifies that they will appear at 16384 ($4000) and the BASIC constant that they will appear at 40960 ($A000). See the technical manual for more information. Ex.
BANK_WINDOW $4000
BANK_BITS_ADDR - parameters: 1
parameter 1: number (0-65535) or constant (XE - 54017, PORTB - 54017, BASIC - 54017) - address used for selecting bank
This command identifies the address that controls when main RAM is enabled and when extended RAM is enabled, and which extended RAM banks should appear at the bank window. The default is 54017 which is the address used in the standard XE scheme. See the technical manual for more information. Ex.
BANK_BITS_ADDR PORTB
READ_CMD - parameters 1
parameter 1: number (0-255) - SIO Read Ramdrive command
Defines the value for the Read Ramdrive SIO command. For more information on the Read Ramdrive command see the Technical manual, SIO commands. Ex.
READ_CMD 44
WRITE_CMD: parameters 1
parameter 1: number (0-255) - SIO Write Ramdrive command
Defines the value for the ramdrive Write Ramdrive SIO command. For more information on the Write Ramdrive command see the Technical manual, SIO commands.
Ex:
WRITE_CMD 45
ADDRESS_CMD - parameters 1
parameter 1: number (0-255) - SIO Read Address command
Defines the Read Address SIO command. For more information on the Read Address command see the Technical manual, SIO commands.
Ex.
ADDRESS_CMD 46
LOAD_ADDR - parameters 1 or 2
parameter 1: number (0-65535) or constant (DEFAULT - 52069) - start of code area
parameter 2: (optional) number (0-65535) or constant (MAX - 65535, CHARSET2_END - 53247) - end of code area
Defines the address the Ramdrive code will be stored in. This defaults to 52069 but can be changed to any free area of memory. This address shouldn't overlap the area the RAMDRIVE.OBJ file is loaded into (20224 to 35365 inclusive). The first parameter defines the address the code and any ramdrive data will be stored at. The second parameter if present defines the top limit for the ramdrive code and data. The code and data will not be allowed to expand past this address. Use this to make sure that the code doesn't accidentally overwrite other code elsewhere. If the second parameter is not present and the first parameter is lower than 20224 then the top limit will default to 20223. If the second parameter is not present and the first parameter is higher than 35365 then the top limit will default to 65535. If the first parameter is lower than 20224 then the second parameter must be lower than 20224 as well. You should ensure that you have defined at least 1042 bytes for the Ramdrive code and 23 bytes for each ramdrive you are setting up. Ex:
LOAD_ADDR $A000,$B000
RESET_KEY - parameters 1
parameter 1: number (0-255) or constant (HELP - 17, ESC - 28, DELETE - 52, SHIFT_HELP - 81, SHIFT_ESC - 92, SHIFT_DELETE - 116, CONTROL_HELP - 145, CONTROL_ESC - 156, CONTROL_DELETE - 180) - warm and cold start key
Identifies the key to be used to create both cold and warm starts. This command takes one parameter, which is a number representing the keypress that will cause a warmstart when pressed along with the OPTION key and a cold start when pressed along with the SELECT key. The values used here are the raw internal keypress values, as stored in location 764. This defaults to 17 which is the HELP key. Ex.
RESET_KEY 32
TRAP_RESET - parameters 1, 2 or 3
parameter 1: number (0-65526) or constant (PAGE6 - 1783, SPARE_XE - 590) - reset trap code address
parameter 2:(optional) number (0-65534) or constant (DOSINI - 12, CASINI - 2) - reset vector
parameter 3:(optional) number (0-3) or constant (DISK - 1, CASSETTE - 2, BOTH - 3) - BOOT(9) value
when this command is used the reset key will be trapped so that if it is pressed the ramdrive will not be switched off. The first parameter specifies where the reset code should be stored. The reset code itself takes up 9 bytes. The second parameter specifies where to store the reset code's address, and the third parameter specifies what value will be stored at location 9. See the technical manual for more information Ex:
TRAP_RESET $600,CASINI,BOTH
ALT_OS - parameters 0 or 5
with 5 parameters:
parameter 1: number (0-65533) or constant (OS_B - 59215, OS_C - 49293) - keyboard interrupt modification address
parameter 2: number (0-65344) or constant (OS_B - 65278, OS_C - 64337) - internal keypress conversion table
parameter 3: number (0-65535) or constant (OS_B - 64728, OS_C - 63875) - keyclick routine address
parameter 4: constant (NONE, OS_C) - OS C reset modification
parameter 5: constant (COPY, NO_COPY) - copy ROM to RAM
This command allows the Atari Ramdrive 1.0 to work under other operating systems as well as the OS C found in XL/XE machines. With no parameters Ramdrive will be set up to run under OS B. This assumes that the OS B has already been installed with a translator disk. With 5 parameters this command allows you to customise the Ramdrive set up code so that it will work under different operating systems. Parameter 1 specifies where the keyboard interrupt code modification should be made in the OS, parameter 2 gives the address of the keyboard translation table, parameter 3 the address of the keyclick routine, parameter 4 specifies whether the OS C RESET key modifications should be made, and parameter 5 specifies whether the operating system should be copied from ROM or whether it is already set up in RAM. See the technical manual for more information. Ex.
ALT_OS
ALT_OS OS_B, OS_B, OS_B, NONE, NO_COPY