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