Before starting, load the FS1 master tape a few times so that you know the correct volume setting for it. Then make sure your disk has at least 15 grans of free space. Under Disk Basic set Memory Size to 48896 and type in the following program. Check it and RUN it. |
|
10 REM MEMORY SIZE MUST BE 48896
20 FOR J=0 TO 198
30 READ D
40 CK=CK+D
50 POKE -16640+J,D
60 NEXT J
70 IF CK<>18640 THEN PRINT"BAD CHECKSUM" : END
80 PRINT"SAVE THIS PROGRAM"
90 PRINT"THEN USE SYSTEM /48896 TO EXECUTE THE ML CODE"
100 DATA 243,205,201,1,33,81,191,205,207,68,175,205,18,2
110 DATA 1,203,40,33,0,160,205,150,2,205,53,2,119,198,1
120 DATA 50,63,60,43,11,120,177,32,241,1,16,1,17,0,161
130 DATA 33,0,160,237,184,33,240,159,54,0,43,16,251,33
140 DATA 152,191,34,155,119,33,0,0,34,135,119,34,136,119
150 DATA 33,128,91,34,230,160,195,96,191,83,84,65,82,84
160 DATA 32,70,83,49,32,84,65,80,69,13,33,128,191,205
170 DATA 207,68,205,73,0,205,135,2,33,0,161,1,203,41,126
180 DATA 50,63,60,205,100,2,43,11,120,177,32,243,199,83
190 DATA 84,65,82,84,32,82,69,67,79,82,68,73,78,71,32,60
200 DATA 69,78,84,69,82,62,13,1,128,49,17,0,131,33,0,67
210 DATA 237,176,1,24,0,17,87,131,33,175,191,237,176,199
220 DATA 243,1,48,49,17,102,67,33,102,131,237,176,195
230 DATA 102,67,243,49,0,98,62,67,205,156,73
|
If the DATA statements have any errors in them the message “BAD CHECKSUM” will appear. When the program is correct SAVE it onto disk. You will now need a very-good-quality blank tape on which an “intermediate” non-runnable copy of FS1 will be stored.. |
|
Still in Basic, type: SYSTEM /48896 . This will execute the machine language program just POKEd in. The first prompt you see will be to start the FS1 master tape running in the cassette recorder. Rewind it to the beginning and put it in PLAY. As the master tape is read in most of the code will be displayed in the upper right corner. When it is all in the next prompt will appear for you to put the blank tape in the recorder and set up to RECORD. The tape will start moving immediately. Once it’s going press . The intermediate copy of FS1 will be written onto the blank tape. Again the characters will be seen in the corner. At the end of the dump the disk will boot-up. Rewind the intermediate tape to the beginning and type BASIC2 to get into Level II. Just press for Memory Size. Now use the SYSTEM command etc. to load the intermediate tape just as if it were the master FS1 tape. If you get an error during the load, press RESET to boot the disk and start again from the BASIC2 entry. At the end of a successful load the disk will again boot-up. In DOS now, type: |
|
DUMP FS1/CMD (START=X'8357',END=X'B480',TRA=X'8357')
|
Don’t omit the two required blanks in the DUMP command; one after DUMP and one after /CMD. When the disk stops running it will have a copy of FS1 on it that you can run by typing FS1 . |
|
Those interested in modifying the program will know how to take it from here. The coding is self-modifying and complex. Here’s a few notes on what I have found. The routine at 72F8H that writes the border on the screen is erased once it is used. At 4AEBH and 518FH are routines that will unpredictably modify memory when called. It is best to simply put a C9H at these two locations. The main keyboard scan routine seems to be at 4A75H – it may be possible to patch in added features here. “IN RANGE” is printed at 5176H, “STALL” at 4D0EH. The area 4407H-4475H (at least) is used for variables storage. If you succeed in finding and modifying the data base I’d like to hear about it. |
|