CONTENTS PAGE. 64K AND 256K MEMORY EXPANSION UNITS. PREFACE INSTALLATION USING YOUR EXTRA RAM RAM TEST EXTENDED BASIC COMMANDS WINDOWS AND PULLDOWN MENUS 1.5.1 MORE WINDOWING ARRAYS, VARIABLES AND STRINGS 1.6.1 MORE ABOUT ARRAYS 1.6.2 STRING STORAGE ANIMATION AND PICTURE SHOWS ADVANCED PROGRAMMING PEEKING AND POKING 1.10...
64K and 256K MEMORY EXPANSIONS. These units are available for the CPC 464, 664 and 6128 computers. By using the 64K upgrade the 464 and 664 computers will have the same amount and configuration of RAM as the CPC 6128. The 256K gives an extra 192K on top of this! The expansion will allow the use of CP/M+ as supplied with the CPC 6128 with its massive 61K TPA opening up an even larger software base for Amstrad users.
The computer should power up as normal. If it fails to do so, check that all the connections are correctly made. Note that all DK'tronics products have a key location on the connector to ensure that there can be alignment problems.
With the computer set up as above, load the RSX software from the cassette tape supplied:- On disc systems type '|TAPE' and press <ENTER> b) Type 'RUN”' and press <ENTER>. c) The loading sequence is described in detail in your Amstrad user manual.
The command can be summarized:- |SAVES,[n] save data to bank (n= the bank number) |LOADS,[n] load data from bank 1.5 WINDOWS AND PULLDOWN MENUS. One of the features that makes the Amstrad's windows less flexible than those on larger business machines, is the fact that the contents of a window which overlaps another are lost when the other window is used.
1.5.1 MORE WINDOWING. A window of any size, even the whole screen, will fit into a single bank of expansion RAM. This is fine if your window is nearly a full screen or will vary in size like the above example. On the other hand if your window was defined as 10 x 10 in Mode 1, then the amount of memory needed to store this window would be less than 16K.
80 IF keypress$="n" THEN GOSUB 110 90 IF keypress$="d" THEN GOSUB 190 100 GOTO 60 110 If level=7 THEN RETURN 120 level=level+1 130 WINDOW#level, 1+level*3, 14+level*3, 1+level*2, 10+level*2 140 |SAVEW,level,1,bankaddress 150 bankaddress=bankaddress+size 160 PEN#level,0 : PAPER#level, (level AND 1) + 1 170 CLS#level 180 RETURN 190 IF level=0 THEN RETURN...
Page 9
Obviously, it would be easier to load all the records into RAM, then access the data immediately:- Instead of defining an array of dimensions 'stock(60,52)' taking over 15K of valuable RAM which could be used for programs, define and array 'stock(60)' Read all the data from disc a week at a time, and store e ach we e k of da t a i nt o ban k RA M .
Page 10
The array we are using is 304 bytes long, and starts at @stock(0). In a single bank of RAM we can store 305 bytes about 53 times. The bank address starts at 0 and goes up in steps of 305 bytes:- 0 305 610 915 1220 1525 etc.
140 CLS : LOCATE 30,1 150 PRINT "Bar Chart For Item"; itemno 160 LOCATE 10,25 170 PRINT"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec": REM 3 spaces between each. 180 FOR loop=0 TO 4 LOCATE 1,24-loop*5 PRINT STR$(loop);"000"...
If the array is to be filled with data from tape or disc, there is no need to initially clear the values to nil. If you want all elements preset to zero then the easiest way is to save a blank screen into each bank at the start of the program:- 10 MODE 1 : PAPER 0 : CLS 20 |SAVES,1...
1.7 ANIMATION AND PICTURE SHOWS. We have seen how screens and windows can be stored and retrieved. Animation is the act of putting pictures on the screen quickly enough so that the eyes see something move. With 64K or 256K of memory whole screens can be stored away, then put on the screen to produce animation.
Page 14
To use this facility of swapping from one screen to another instantly, the screen and window commands can have an added parameter which tells the computer to load or save the data to and from the alternate screen. The new forms can be written:- |SAVES, [ bank ], [ swap ] |LOADS, [ bank ], [ swap ] |SAVEW, [ window number ], [ bank ], [ bank address ], [ swap ]...
1.8 ADVANCED PROGRAMMING. This section introduces one new command and some other programming aspects which you may find useful. The new command is:- |ASKRAM, [ enquiry ], ( variable ] The command allows certain constants to be found by the program you are writing.
Page 16
If you want to use user defined graphics then add the following lines:- 10 SYMBOL AFTER 256 150 SYMBOL AFTER 0 The value in line 150 will be different depending on how many user defined graphics you want. In your program you may want to have a number of different styles of character set.
1.9 PEEKING AND POKING. There are two commands which allow the memory in the banks to be viewed and changed byte by byte. |POKE, [ bank ], [ bank address ], [ value ] |PEEK, [ bank ], [ bank address ], [ variable ] |POKE works in a similar way to the original POKE.
1.10 PROGRAMMING WITHOUT RSX's. With no RSX software the programmer can still access the memory from the RAM banks. To use the RAM yourself, some degree of understanding of the memory map of the Amstrad is necessary. From both BASIC and machine code, the original block of memory from 16384 to 32767 CANNOT be used for program.
1.11 T ECHNICAL DETAILS. 1.11.1 The Load Address. The software which loads from tape is relocatable. However the areas of memory in which the program can go is limited to between 32768 and the top of memory. This is because the banked RAM appears in the block 16384 to 32767.
If a commercial program fails to work on your CPC464 or CPC664 then try the suggestions below. 1) The software may be using the new firmware vector at &BD58. If this is the case, try running the RSX program before running your application program.
3) Bad bank parameter You have referenced a bank which can never be fitted to the computer. 4) Bad bank address The address you have given is out of range: bank addresses range from 0 to 16383. 5) Value invalid The bank address may be too large for the block of data defined.
[ swap ] 0 or omitted means act on present screen, 1 means act on alternate screen. [ start location ] and [ length] Define a block of original memory. [ variable ] Give the location of an integer variable to be assigned, for example @b%.
Page 23
Notes. On power-up, code 0 is selected. The VDU circuitry always reads from the original 64K (block 1), independently of the code. 3. If code 3 is used, reads from &4000 to &7FFF, on CPC 464 and 664 machines, will only return the correct data if the upper ROM is disabled. This is at variance with CPC 6128 operation, but is unlikely to be a significant difference.
1.15 CUSTOMIZING YOUR CP/M+ SYSTEM DISC. Converting A 464 Keyboard Scan To That Of A 6128. Some CP/M+ programs will not run correctly on the 464 computer because of the way the 6128 scans the keyboard. The following program and instructions convert (fool) CP/M+ into thinking that it is running on a 6128.
Page 25
B:MAC PATCH B:HEXCOM PATCH ERA PATCH.HEX ERA PATCH.SYM ERA PATCH.PRN ERA PATCH.ASM 5. It is possible to alter the CP/M+ disc to boot up without loading the BANK program first. Type the following if you want your system disc altered in this way:- B:SAVE B:SID C10CPM3.EMS...
Need help?
Do you have a question about the DKT64k and is the answer not in the manual?
Questions and answers