|
|
Line 7: |
Line 7: |
| == Manual <br> == | | == Manual <br> == |
| | | |
− | (with spelling mistakes as per original document)<br>
| + | <br> |
− | <pre>32k RAMROM - INSTRUCTIONS
| + | |
− | The 32k RAMROM's main component is its 32k static ram chip which is capable of being loaded with
| + | |
− | 1 or 2 rom programs of up to 16k each. That's the maximum size that the CPC allows. When loaded,
| + | |
− | the program(s) remain usable, surviving resets, as long as the computer is on. The RAMROM is
| + | |
− | quite literally a 2 slot romboard that allows the rom programs to be written to it. What it is
| + | |
− | not is a memory expansion like the 64k and 256k memory add-ons. However, it is ram and can be
| + | |
− | used as such by imaginative programmers. Its main function, though, is to simulate roms for
| + | |
− | whatever purpose is required - usually for rom development.
| + | |
| | | |
− | In developing the RAMROM we considered including many features such as battery backup but decided
| + | <br> |
− | against them in order to keep the price down.
| + | |
| | | |
− | The 464 and 664 can access up to 7 background roms (slots 1 to 7) and 6128, 15 (slots 1 to
| + | <br> |
− | 15). If 2 or more roms occupy the same slot number then they won't work although nothing will be
| + | |
− | harmed. To avoid such clashes, the RAMROM's slot numbers are flexible, to a degree.
| + | |
− | | + | |
− | Facilities are incorporated on the board to load 2 different rom programs which can each use a
| + | |
− | different slot (serial) or can both use the same slot (parallel). In the latter case they cannot
| + | |
− | both be initialised at the same time, of course.
| + | |
− | | + | |
− | SWITCHES & LINKS
| + | |
− | | + | |
− | SWITCH ONE - left (write switch):- when set to its left position, the ram can be written to. When
| + | |
− | set right, the ram cannot be written to.
| + | |
− | | + | |
− | SWITCH TWO - centre (parallel/serial select):- set to its left position = serial; set right =
| + | |
− | parallel. Serial: two of rom slots 3 to 6 are selectable as shown in the diagrams. Only the four
| + | |
− | configurations shown are possible. If a link is removed then its associated rom slot can neither
| + | |
− | be written to nor read from. It is ok to leave the links on their pins when not using the RAMROM
| + | |
− | but problems (not damage) could occur if an actual rom is occupying the same slot as a linked but
| + | |
− | unused RAMROM slot. In serial mode the position of switch 3 doesn't matter. Parallel: only 2
| + | |
− | slots can be used - 3 or 6. In this mode the high and low 16Ks of the total 32k can each hold a
| + | |
− | different rom program in the same slot. Switch 3 is used to switch between the two.
| + | |
− | | + | |
− | SWITCH THREE - right (high/low):- see switch two. This switch must be set prior to loading a
| + | |
− | program in the parallel mode and is then used to swap between the programs in the high half and
| + | |
− | low half of the 32k. After switching from hi to lo, or vice versa, the computer must be reset
| + | |
− | to initialise the new program.
| + | |
− | | + | |
− | USING THE RAMROM
| + | |
− | | + | |
− | We are grateful to ROMBO PRODUCTIONS for allowing us to use their loader program which has been
| + | |
− | modified for our needs. It is used to load programs into the RAMROM but will be run only once.
| + | |
− | After that, its machine code remains in memory (not in the RAMROM) surviving resets. Type it in
| + | |
− | and save it.
| + | |
− | | + | |
− | With the computer turned OFF, push the RAMROM onto the CPC's expansion port (disc drive port on
| + | |
− | the 464). It doesn't matter if other peripherals are closer to or further away from the computer.
| + | |
− | | + | |
− | LOADING A ROM PROGRAM: Set the links, switch 2 and, if wanting parallel mode, switch 3 according
| + | |
− | to your choices. Run the typed-in program. Once run, the BASIC part is deleted but the machine
| + | |
− | code remains ready for further uses. Type: memory &3fff and press return. Enter your selected
| + | |
− | slot number with the following command: poke &be01,x (x = your slot number). Load your program
| + | |
− | into memory area &4000 to &7fff with: load"yourprog.rom",&4000
| + | |
− | | + | |
− | That's your program ready to be loaded into the RAMROM. Set switch 1 to write (left) and type:
| + | |
− | call &be00
| + | |
− | | + | |
− | The screen will fill very quickly. When it has done so, switch SWITCH 1 to the right. The Ready
| + | |
− | prompt will appear after a few seconds and you can then reset the computer by pressing CNTRL,
| + | |
− | SHIFT and ESC simultaneously. Assuming that your program is written correctly for rom use, it is
| + | |
− | initialised and the computer is aware of its presence. To load a second rom, set the links and
| + | |
− | switches again but don't alter the existing program's link. Poke the 2nd slot number into &be01,
| + | |
− | load the 2nd program into &4000 and call &be00.
| + | |
− | | + | |
− | SWITCH SUMMARY:- Once you've grasped their uses, it will be easy. SWITCH ONE selects write and
| + | |
− | don't write (load or don't load). It has no other function. SWITCH TWO selects serial or parallel
| + | |
− | mode. Serial = 2 different slot numbers; parallel = 2 programs in the same slot number. SWITCH
| + | |
− | THREE selects the high or low 16k rom bank when in parallel mode only. It is used when loading
| + | |
− | and also to decide which will be initialised.
| + | |
− | | + | |
− | ABOUT ROM PROGRAMS
| + | |
− | | + | |
− | Contrary to what is often thought, any old machine code program cannot be put into a rom and be
| + | |
− | expected to run. The CPC has excellent background rom facilities and, in fact, it looks for and
| + | |
− | initialises any that are present at every reset but in order for a rom to be recognised and work
| + | |
− | properly, its contents must be layed out in a certain way. Only certain parts of the rom must be
| + | |
− | layed out correctly and it is beyond the scope of these instructions to teach rom programming.
| + | |
− | | + | |
− | and finally...
| + | |
− | | + | |
− | A BASIC program can be put into a rom as long as a machine code program to download it to where
| + | |
− | BASIC programs run is also included. Several separate programs can be included in one rom, each
| + | |
− | accessible with a BAR command. The RAMROM does not need to be erased in any way before being
| + | |
− | overwritten with new programs. It is probablt that somebody will attempt to use the RAMROM as a
| + | |
− | standard romboard by piggybacking a rom chip onto the 32k ram chip. Alas, it won't work. The data
| + | |
− | and address buses are not connected to the same pins as an eprom would need.
| + | |
− | | + | |
− | ------------------------------------------------------------------------------------------------
| + | |
− | | + | |
− | TYPE-IN LOADER PROGRAM (the Os are zeroes and not letter Os)
| + | |
− | | + | |
− | 10 FOR a=&BE00 TO &BE1F
| + | |
− | 20 READ b$
| + | |
− | 30 POKE a,VAL("&"+b$)
| + | |
− | 40 NEXT
| + | |
− | 50 MODE 2
| + | |
− | 60 PRINT"POKE the ROM SLOT NUMBER into &BE01
| + | |
− | 65 PRINT"Slot 6 is selected by default.
| + | |
− | 70 PRINT:PRINT"Disable the RAM after the screen has filled
| + | |
− | 80 PRINT"and before the Ready prompt.
| + | |
− | 90 PRINT"Reset to initialise the ROM.
| + | |
− | 100 NEW
| + | |
− | 200 DATA 0E,06,CD,0F,B9,F3,C5,21
| + | |
− | 210 DATA 00,40,11,00,C0,01,00,40
| + | |
− | 220 DATA ED,B0,06,10,1B,7A,B3,20
| + | |
− | 230 DATA FB,10,F9,C1,CD,18,B9,C9
| + | |
− | | + | |
− | | + | |
− | ------------- ------------- -------------
| + | |
− | SWITCHES:- | 1 | | 2 | | 3 |
| + | |
− | ------------- ------------- -------------
| + | |
− | READ/WRITE PARL/SERIAL BANK SELECT
| + | |
− | | + | |
− | | + | |
− | ------------- ------------- -------------
| + | |
− | SWITCHES:- | 1 | | 2 | | 3 |
| + | |
− | ------------- ------------- -------------
| + | |
− | READ/WRITE PARL/SERIAL BANK SELECT
| + | |
− | | + | |
− | o o o o o o o o
| + | |
− | |6 5| 5| |6
| + | |
− | o o o o o o o o
| + | |
− | LINKS:- 3| |4 3| |4
| + | |
− | o o o o o o o o
| + | |
− | | + | |
− | (SLOT NUMBERS) 3 4 3 6 5 4 5 6
| + | |
− | | + | |
− | | + | |
− | ------------------------------------------------------------------------------------------------
| + | |
− | | + | |
− | ROM LAYOUT AS EXPECTED BY THE CPC
| + | |
− | | + | |
− | C000 Rom type - Rom type (0 = foreground; 1 = background)
| + | |
− | C001 Mark number ) for use of the programmer but
| + | |
− | C002 Version number ) they aren't essential to the
| + | |
− | C003 Modification number ) rom's operations
| + | |
− | C004 COMMAND NAME TABLE address (low byte address)
| + | |
− | C005 COMMAND NAME TABLE address (high byte address)
| + | |
− | C006/7/8 Jump to INITIALISE ROM routine start address )
| + | |
− | C009/A/B Jump to 1st command's program start address ) JUMP TABLE
| + | |
− | C00C/D/E Jump to 2nd command's program start address )
| + | |
− | etc. etc. etc.
| + | |
− | | + | |
− | | + | |
− | When the CPC is turned on or reset, it enters the rom at C006/7/8 and runs the
| + | |
− | INITIALISING ROUTINE that is jumped to from that address. Accessing roms is done via bar (|)
| + | |
− | commands either at the keyboard or within BASIC programs and each command is listed in the
| + | |
− | COMMAND NAME TABLE. C004/5 (low byte first) point to the start address of the COMMAND NAME
| + | |
− | TABLE which can be anywhere in the rom. The last character of each command name must have bit
| + | |
− | 7 set to 1 and the table must be ended with a 0. When the computer encounters a bar (|)
| + | |
− | command it searches the command name table for a match. If found, it uses the JUMP TABLE to
| + | |
− | run the associated program. NAMES and JUMPS must therefore be in the same order. A name must
| + | |
− | be included at the start of the table for the INITIALISING ROUTINE. Sorry I can't explain in
| + | |
− | depth but, once grasped, it is easy to understand.
| + | |
− | | + | |
− | ------------------------------------------------------------------------------------------------
| + | |
− | | + | |
− | MicroStyle 28 BELMONT AVENUE, LOW MOOR, BRADFORD, BD12 OPA
| + | |
− | Telephone: 0274-602180
| + | |
− | | + | |
− | | + | |
− | | + | |
− | | + | |
− | | + | |
− | </pre> | + | |
A RAM expansion board from Microstyle which behaves like ROM useful for ROM development