Home » CEEFAX disks » telesoftware3.adl » 17_10_87/SNAPINF
17_10_87/SNAPINF
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » CEEFAX disks » telesoftware3.adl |
Filename: | 17_10_87/SNAPINF |
Read OK: | ✔ |
File size: | 3329 bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
Snapshot Documentation During the 70's Xerox developed Smalltalk - Smalltalk is the original WIMP ( Windows, Icons, Mice, Pull down/up menus ) system, Apple's Lisa and Macintosh are both developed directly from Smalltalk. During developement the system was prone to crashes so a system known as Snapshot was developed. This would, at set intervals, copy the computer's memory directly onto disc exactly as in the computer. If the system crashed users would then "Boot and Resume", the only problem being that if you did not "Boot and Resume" fast enough then the computer would take a Snapshot of the crashed system. I don't know if Xeroz were the first people to think of Snapshots but they certainly weren't the last. Many Snapshot programs have appeared for many computer's. The very best Snapshot systems, like Xerox's, have hardware support. Snapshots which use extra hardware will often have a button or switch for the user to push when she/he wants to Snapshot. But extra hardware costs extra money so hardware Snapshot systems are usualy more expensive than software Snapshots. The advantages of being able to Snapshot a computers memory are obvious, especially for machine code programmers or adventurers who forget to save regularly. With Snapsooting it is possible to forget about the need to save regularly and get on with what you are doing. It must be said though that taking a Snapshot of a commercial program can be classed as piracy. If the program is only being moved from tape to disc then the situation is not clear and mainly depends on the software house concerned some don't like you moving their software from tape to disc while others don't mind, certainly many companies sell tape to disc transfer programs and are not prosecuted. One problem though is the amount of disc space needed, even on a BBC with just 32K only 3 Snapshots can be taken on a standed 100K disc so to overcome this each new file is saved over the old one. To implement a Snapshot on a BBC is difficult. Xerox Snapsnots had substantial hardware backup so things were easier. On the BBC there are 3 main problems. Firstly, how to copy all 32K of main RAM to disc without currupting/changing it, secondly, what if the Operating System work space (that below PAGE) is currupted ? It often happens that when programmers are short of memory they use DFS workspace. This means that the DFS will not function correctly. Also where can the program "live" while it is waiting to be run and being run if all the memory is used? To overcome these problems I have used Sideways RAM (SWR). The program must be assembled in main RAM and then moved up into SWR. To do this a special program is needed to move it up. Also when assembled all the addresses the program uses must be set to point to locations in SWR address range (&8000 - &C000) and not in main RAM (0 - &7FFF) as happens when a program is normally assembled, this is because most 6502 instructions use absolute address and not relative addressing (which has become more popular on newer processors because of it's flexibility). On level 2 BASIC machines this is no problem since "phantom" assembly can be used with O%, where the assembler sets the addresses for one area of memory and places the code in another area, on older level 1 BASIC machines this is not available so I have adjusted all the absolute addresses with +&3000 so that phantom assembly is not needed (the code is assembled to &5000, so +&3000 makes all addresses greater than &8000). Also level 1 machines do not have the EQU assembly function so I have synthesised these functions with the OPT command. The program's operation is quite simple and uses what I call an "Imposter". An imposter is a copy of OS workspace as it is when it is not corrupted - that is when it is in perfect working order. The imposter is then held in SWR until the Snapshot is to be taken then it is copied down to it's old position allowing the OS (and DFS) to function as normal - this is particulary important if another filing system has been selected in the meantime. The progam uses the 6522 User VIA timer to wait for as long as the user wishes before shooting, so if this unit is disabled or corrupted the progam will either not shoot at all, or will shoot irregularly - many commercial programs use this device for timing so these cannot be Snapshot. Also model A BBC's were never fitted with this unit so any model A that has not been fully upgraded cannot Snapshoot with the timer - although *NOW should still be usable. The main use of this unit normaly is to drive the printer and user port. When the time defined by the user is up the program will copy OS workspace between 0 and &1400 up into SWR then copy the imposter down to the same area so that the disc drive will work normally. Next the rest of RAM (&1401 to &8000 - including the screen) will be saved to disc, then the old OS work space is copied down into a safe area of RAM (&3000 to &4400) and saved to disc (it not will work with cassette mainly because of the time involved at this stage). Once the memory is saved (including a copy of the stack pointer; A,X and Y are taken care of by OS) the program proceeds to return the system to it's previous state. To force the system to return to a previous state the command *RESTORE is issued (see below), this will bring the memory in from disc and carry out the above operation in reverse - if you are only restoring memory from a previous Snapshot and do not intend to take another Snapshot you need not use *READY to get an imposter. When *RESTORE is used the system will look for two files defined by the the current directory and drive settings and the names given to Snapshot at assembly time. As normal drive and directory settings included in the name will override the current drive and directory settings. One of the biggest problems is that of correctly re-loading the screen. Although the screen can easily be loaded data is contained in the 6845 CRTC (Cathode ray controller chip) which dictates what to do with the data on screen. Most of the registers in this chip are write only i.e. data can only be sent to them not read from them. When the mode is changed the OS sends these registers data so that it can handle the screen memory correctly. To allow for this, Snapshot changes the screen to the correct mode before re-loading the screen memory, the side effect here is that if a custom mode is being used the screen display will be corrupted. The next problem with the screen is one of aligment. When the BBC scrolls the screen it does so with hardware in the 6845 CRTC (using software to scroll a screen is very slow) so a screen cannot be just reloaded into it's old location, pointers in the 6845 CTRC must be ajusted. Fortunately the OS keeps a note of these pointers in page 3, unfortunately they are not in a state that the 6845 CTRC can handle so they must be adjusted before being sent to the 6845 CTRC. As if this were not bad enough, because mode 7 is different to modes 0 to 6 it must have the pointers adjusted differently. The final problem with the screen is that of the Video ULA chip which was specially designed by Acorn for the BBC. This chip holds more data about the current mode. Again resetting the mode corrects most of the data involved and, again, using a custom mode the screen will be corrupted. If the user has changed the default mode colours then when the screen is reloaded the colours will not be the same as when the mode was saved. Snapshot In Use The system supports six extra *commands. These may be proceeded by a P to prevent clashes with other ROMs and in upper or lower case e.g. *PRESTORE, *presore and *ReStOrE are all the same as *RESTORE. The six commands are:- *READY this takes a copy of OS workspace into SWR for future use - the imposter. This command must be issued before any Snapshot can be taken. *NOW this will attempt to Snapshot once the command is entered. If an imposter is not present with a *READY you will get the error "No Imposter" and no Snapshot will be taken. *WAIT x (where x is a one or two digit hex number between 1 and &FF). This will use the 6522 user VIA timer to time the period of time specified and then Snapshot memory - each extra value causes a wait of about 16 seconds. If you want to take a Snapshot in a shorter space of time line 4140 of the assembly program can be increased to a high value. Again using this command without preparing an imposter with *READY will cause the "No Imposter" error and no Snaphot will be taken. *REPEAT Once this command has been issued, any Snapshot that is taken using the timer will cause the timer to be reset so Snapshots will be taken at regular intervals. There is no need to capture a new imposter or re-issue a *WAIT. This is very useful if you intend to take a series of Snapshots during a game or while processing data. This option will stay set until Break is pressed (Break stops all Snapshooting). *RESTORE This will restore memory to it's previous state. The files retreived will depend on their file names given to Snapshot at assembly and the current drive and directory settings. *NAMES This command will print out the two file names specified at the time of assembly which are used for saving and loading Snapshots. I find it best to use the same file names for all Snapshots and just use different discs, drives and directories since I do not reassemble Snapshot for each snapshot but just have one version which I store with all my other ROMs. There are a few points about the program which must be noted. When saving memory to disc two file names must the used. When the program is assembled you are asked for these. These should be the filename you wish to save or load under. The first file name is for the memory above &1400 and the second one for the memory below &1400. You may add a directory and disc number/name to these files as normal but if you do not then the drive and directory settings present when you *READY will be used. When RESTOREing the current drive and directory settings are used to recover the Snapshot. Another program must be used to "lift" the main program into SWR. This is the move up progam and should be assembled as a machine code file on disc before loading Snapshot. It will ask you for the number of the socket the SWR is located in (the B+ 128 has SWR in sockets 1,2 13 and 14) and will create a file call UP on the disc. Once the main program is assembled just type *UP (the move up assembly program saves UP as U.UP so if your library directory is not U you will have to use *U.UP instead of just *UP) this will load and run the mover progam. After this press BREAK, you should have the message "Snapshot Version PALO004" on typing *HELP. Move up simply switches the SWR bank into the current paged ROM position and moves all the data from main RAM at &5000 into SWR at &8000. Once it has been moved up, BREAK must be pressed so that the OS can scan the ROM banks to see which contain ROMs - as far as the OS knows the SWR bank with a program in is a ROM - and recongise Snapshot. Alternatively, if you don't like pressing Break, the OS keeps a record of which sockets have ROMs in them between &2A1 and &2B1 so ?(&2A1+ <socket number of SWR socket with Snapshot in>)=&82 (for service entry only) will also switch the ROM on. If you substitue the &82 for 0 you can switch the ROM off. I have not been able to try Snapshot on an Electron but the minimum requirements for it are: 16K of SWR, a disc drive and a 6522 User VIA for timer. On the BBC the main job of the User VIA is the drive the printer so Plus 1 should provide one of these - although I don't know this for certain. With the B+ the program works as normal, but only main RAM is captured so when shadow modes are in use the screen will not be saved. For some applications this will not be a hindrance. The Master series uses private RAM for a lot of operations and allowing PAGE to be set to &E00 would therefore need a large amount of alteration for it to work. The same principles apply but more OS workspace will have to be shifted and more than one bank of SWR may be needed. This short program will provide a basic demonstration of Snapshot. 10 REM Prepare Imposter 20 *READY 30 REM Set timer running 40 *WAIT 1 50 REM Set a BASIC loop running 60 FOR x=0 TO 1400 70 PRINT x 80 NEXT 90 *RESTORE 100 REM The program will never reach here! Sometime during the running of the loop a Snapshot will be taken. The loop will then continue running. When the loop is terminated the computer will be restored to the state it was in while the loop was running, the loop will terminate again and the computer will be restored again.... and so on. This will continue until the user stops it by pressing ESCAPE or BREAK. Note that with Snapshot you are not limited to using it in a BASIC programming enviroment. Snapshots can be taken from within other language ROMs.
00000000 0d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |. | 00000010 20 20 20 53 6e 61 70 73 68 6f 74 20 44 6f 63 75 | Snapshot Docu| 00000020 6d 65 6e 74 61 74 69 6f 6e 0d 0d 20 20 20 44 75 |mentation.. Du| 00000030 72 69 6e 67 20 74 68 65 20 37 30 27 73 20 58 65 |ring the 70's Xe| 00000040 72 6f 78 20 64 65 76 65 6c 6f 70 65 64 20 53 6d |rox developed Sm| 00000050 61 6c 6c 74 61 6c 6b 20 2d 20 53 6d 61 6c 6c 74 |alltalk - Smallt| 00000060 61 6c 6b 20 69 73 20 74 68 65 20 6f 72 69 67 69 |alk is the origi| 00000070 6e 61 6c 0d 57 49 4d 50 20 28 20 57 69 6e 64 6f |nal.WIMP ( Windo| 00000080 77 73 2c 20 49 63 6f 6e 73 2c 20 4d 69 63 65 2c |ws, Icons, Mice,| 00000090 20 50 75 6c 6c 20 64 6f 77 6e 2f 75 70 20 6d 65 | Pull down/up me| 000000a0 6e 75 73 20 29 20 73 79 73 74 65 6d 2c 20 41 70 |nus ) system, Ap| 000000b0 70 6c 65 27 73 20 4c 69 73 61 0d 61 6e 64 20 4d |ple's Lisa.and M| 000000c0 61 63 69 6e 74 6f 73 68 20 61 72 65 20 62 6f 74 |acintosh are bot| 000000d0 68 20 64 65 76 65 6c 6f 70 65 64 20 64 69 72 65 |h developed dire| 000000e0 63 74 6c 79 20 66 72 6f 6d 20 53 6d 61 6c 6c 74 |ctly from Smallt| 000000f0 61 6c 6b 2e 20 44 75 72 69 6e 67 0d 64 65 76 65 |alk. During.deve| 00000100 6c 6f 70 65 6d 65 6e 74 20 74 68 65 20 73 79 73 |lopement the sys| 00000110 74 65 6d 20 77 61 73 20 70 72 6f 6e 65 20 74 6f |tem was prone to| 00000120 20 63 72 61 73 68 65 73 20 73 6f 20 61 20 73 79 | crashes so a sy| 00000130 73 74 65 6d 20 6b 6e 6f 77 6e 20 61 73 0d 53 6e |stem known as.Sn| 00000140 61 70 73 68 6f 74 20 77 61 73 20 64 65 76 65 6c |apshot was devel| 00000150 6f 70 65 64 2e 20 54 68 69 73 20 77 6f 75 6c 64 |oped. This would| 00000160 2c 20 61 74 20 73 65 74 20 69 6e 74 65 72 76 61 |, at set interva| 00000170 6c 73 2c 20 63 6f 70 79 20 74 68 65 20 63 6f 6d |ls, copy the com| 00000180 70 75 74 65 72 27 73 0d 6d 65 6d 6f 72 79 20 64 |puter's.memory d| 00000190 69 72 65 63 74 6c 79 20 6f 6e 74 6f 20 64 69 73 |irectly onto dis| 000001a0 63 20 65 78 61 63 74 6c 79 20 61 73 20 69 6e 20 |c exactly as in | 000001b0 74 68 65 20 63 6f 6d 70 75 74 65 72 2e 20 49 66 |the computer. If| 000001c0 20 74 68 65 20 73 79 73 74 65 6d 0d 63 72 61 73 | the system.cras| 000001d0 68 65 64 20 75 73 65 72 73 20 77 6f 75 6c 64 20 |hed users would | 000001e0 74 68 65 6e 20 22 42 6f 6f 74 20 61 6e 64 20 52 |then "Boot and R| 000001f0 65 73 75 6d 65 22 2c 20 74 68 65 20 6f 6e 6c 79 |esume", the only| 00000200 20 70 72 6f 62 6c 65 6d 20 62 65 69 6e 67 20 74 | problem being t| 00000210 68 61 74 0d 69 66 20 79 6f 75 20 64 69 64 20 6e |hat.if you did n| 00000220 6f 74 20 22 42 6f 6f 74 20 61 6e 64 20 52 65 73 |ot "Boot and Res| 00000230 75 6d 65 22 20 66 61 73 74 20 65 6e 6f 75 67 68 |ume" fast enough| 00000240 20 74 68 65 6e 20 74 68 65 20 63 6f 6d 70 75 74 | then the comput| 00000250 65 72 20 77 6f 75 6c 64 20 74 61 6b 65 0d 61 20 |er would take.a | 00000260 53 6e 61 70 73 68 6f 74 20 6f 66 20 74 68 65 20 |Snapshot of the | 00000270 63 72 61 73 68 65 64 20 73 79 73 74 65 6d 2e 0d |crashed system..| 00000280 0d 20 20 49 20 64 6f 6e 27 74 20 6b 6e 6f 77 20 |. I don't know | 00000290 69 66 20 58 65 72 6f 7a 20 77 65 72 65 20 74 68 |if Xeroz were th| 000002a0 65 20 66 69 72 73 74 20 70 65 6f 70 6c 65 20 74 |e first people t| 000002b0 6f 20 74 68 69 6e 6b 20 6f 66 20 53 6e 61 70 73 |o think of Snaps| 000002c0 68 6f 74 73 20 62 75 74 0d 74 68 65 79 20 63 65 |hots but.they ce| 000002d0 72 74 61 69 6e 6c 79 20 77 65 72 65 6e 27 74 20 |rtainly weren't | 000002e0 74 68 65 20 6c 61 73 74 2e 20 4d 61 6e 79 20 53 |the last. Many S| 000002f0 6e 61 70 73 68 6f 74 20 70 72 6f 67 72 61 6d 73 |napshot programs| 00000300 20 68 61 76 65 20 61 70 70 65 61 72 65 64 20 66 | have appeared f| 00000310 6f 72 0d 6d 61 6e 79 20 63 6f 6d 70 75 74 65 72 |or.many computer| 00000320 27 73 2e 20 54 68 65 20 76 65 72 79 20 62 65 73 |'s. The very bes| 00000330 74 20 53 6e 61 70 73 68 6f 74 20 73 79 73 74 65 |t Snapshot syste| 00000340 6d 73 2c 20 6c 69 6b 65 20 58 65 72 6f 78 27 73 |ms, like Xerox's| 00000350 2c 20 68 61 76 65 0d 68 61 72 64 77 61 72 65 20 |, have.hardware | 00000360 73 75 70 70 6f 72 74 2e 20 53 6e 61 70 73 68 6f |support. Snapsho| 00000370 74 73 20 77 68 69 63 68 20 75 73 65 20 65 78 74 |ts which use ext| 00000380 72 61 20 68 61 72 64 77 61 72 65 20 77 69 6c 6c |ra hardware will| 00000390 20 6f 66 74 65 6e 20 68 61 76 65 20 61 0d 62 75 | often have a.bu| 000003a0 74 74 6f 6e 20 6f 72 20 73 77 69 74 63 68 20 66 |tton or switch f| 000003b0 6f 72 20 74 68 65 20 75 73 65 72 20 74 6f 20 70 |or the user to p| 000003c0 75 73 68 20 77 68 65 6e 20 73 68 65 2f 68 65 20 |ush when she/he | 000003d0 77 61 6e 74 73 20 74 6f 20 53 6e 61 70 73 68 6f |wants to Snapsho| 000003e0 74 2e 20 42 75 74 0d 65 78 74 72 61 20 68 61 72 |t. But.extra har| 000003f0 64 77 61 72 65 20 63 6f 73 74 73 20 65 78 74 72 |dware costs extr| 00000400 61 20 6d 6f 6e 65 79 20 73 6f 20 68 61 72 64 77 |a money so hardw| 00000410 61 72 65 20 53 6e 61 70 73 68 6f 74 20 73 79 73 |are Snapshot sys| 00000420 74 65 6d 73 20 61 72 65 20 75 73 75 61 6c 79 0d |tems are usualy.| 00000430 6d 6f 72 65 20 65 78 70 65 6e 73 69 76 65 20 74 |more expensive t| 00000440 68 61 6e 20 73 6f 66 74 77 61 72 65 20 53 6e 61 |han software Sna| 00000450 70 73 68 6f 74 73 2e 0d 0d 20 20 54 68 65 20 61 |pshots... The a| 00000460 64 76 61 6e 74 61 67 65 73 20 6f 66 20 62 65 69 |dvantages of bei| 00000470 6e 67 20 61 62 6c 65 20 74 6f 20 53 6e 61 70 73 |ng able to Snaps| 00000480 68 6f 74 20 61 20 63 6f 6d 70 75 74 65 72 73 20 |hot a computers | 00000490 6d 65 6d 6f 72 79 20 61 72 65 0d 6f 62 76 69 6f |memory are.obvio| 000004a0 75 73 2c 20 65 73 70 65 63 69 61 6c 6c 79 20 66 |us, especially f| 000004b0 6f 72 20 6d 61 63 68 69 6e 65 20 63 6f 64 65 20 |or machine code | 000004c0 70 72 6f 67 72 61 6d 6d 65 72 73 20 6f 72 20 61 |programmers or a| 000004d0 64 76 65 6e 74 75 72 65 72 73 20 77 68 6f 0d 66 |dventurers who.f| 000004e0 6f 72 67 65 74 20 74 6f 20 73 61 76 65 20 72 65 |orget to save re| 000004f0 67 75 6c 61 72 6c 79 2e 20 57 69 74 68 20 53 6e |gularly. With Sn| 00000500 61 70 73 6f 6f 74 69 6e 67 20 69 74 20 69 73 20 |apsooting it is | 00000510 70 6f 73 73 69 62 6c 65 20 74 6f 20 66 6f 72 67 |possible to forg| 00000520 65 74 20 61 62 6f 75 74 0d 74 68 65 20 6e 65 65 |et about.the nee| 00000530 64 20 74 6f 20 73 61 76 65 20 72 65 67 75 6c 61 |d to save regula| 00000540 72 6c 79 20 61 6e 64 20 67 65 74 20 6f 6e 20 77 |rly and get on w| 00000550 69 74 68 20 77 68 61 74 20 79 6f 75 20 61 72 65 |ith what you are| 00000560 20 64 6f 69 6e 67 2e 20 49 74 20 6d 75 73 74 20 | doing. It must | 00000570 62 65 0d 73 61 69 64 20 74 68 6f 75 67 68 20 74 |be.said though t| 00000580 68 61 74 20 74 61 6b 69 6e 67 20 61 20 53 6e 61 |hat taking a Sna| 00000590 70 73 68 6f 74 20 6f 66 20 61 20 63 6f 6d 6d 65 |pshot of a comme| 000005a0 72 63 69 61 6c 20 70 72 6f 67 72 61 6d 20 63 61 |rcial program ca| 000005b0 6e 20 62 65 20 63 6c 61 73 73 65 64 0d 61 73 20 |n be classed.as | 000005c0 70 69 72 61 63 79 2e 20 49 66 20 74 68 65 20 70 |piracy. If the p| 000005d0 72 6f 67 72 61 6d 20 69 73 20 6f 6e 6c 79 20 62 |rogram is only b| 000005e0 65 69 6e 67 20 6d 6f 76 65 64 20 66 72 6f 6d 20 |eing moved from | 000005f0 74 61 70 65 20 74 6f 20 64 69 73 63 20 74 68 65 |tape to disc the| 00000600 6e 20 74 68 65 0d 73 69 74 75 61 74 69 6f 6e 20 |n the.situation | 00000610 69 73 20 6e 6f 74 20 63 6c 65 61 72 20 61 6e 64 |is not clear and| 00000620 20 6d 61 69 6e 6c 79 20 64 65 70 65 6e 64 73 20 | mainly depends | 00000630 6f 6e 20 74 68 65 20 73 6f 66 74 77 61 72 65 20 |on the software | 00000640 68 6f 75 73 65 20 63 6f 6e 63 65 72 6e 65 64 0d |house concerned.| 00000650 73 6f 6d 65 20 64 6f 6e 27 74 20 6c 69 6b 65 20 |some don't like | 00000660 79 6f 75 20 6d 6f 76 69 6e 67 20 74 68 65 69 72 |you moving their| 00000670 20 73 6f 66 74 77 61 72 65 20 66 72 6f 6d 20 74 | software from t| 00000680 61 70 65 20 74 6f 20 64 69 73 63 20 77 68 69 6c |ape to disc whil| 00000690 65 20 6f 74 68 65 72 73 0d 64 6f 6e 27 74 20 6d |e others.don't m| 000006a0 69 6e 64 2c 20 63 65 72 74 61 69 6e 6c 79 20 6d |ind, certainly m| 000006b0 61 6e 79 20 63 6f 6d 70 61 6e 69 65 73 20 73 65 |any companies se| 000006c0 6c 6c 20 74 61 70 65 20 74 6f 20 64 69 73 63 20 |ll tape to disc | 000006d0 74 72 61 6e 73 66 65 72 20 70 72 6f 67 72 61 6d |transfer program| 000006e0 73 0d 61 6e 64 20 61 72 65 20 6e 6f 74 20 70 72 |s.and are not pr| 000006f0 6f 73 65 63 75 74 65 64 2e 0d 0d 20 20 4f 6e 65 |osecuted... One| 00000700 20 70 72 6f 62 6c 65 6d 20 74 68 6f 75 67 68 20 | problem though | 00000710 69 73 20 74 68 65 20 61 6d 6f 75 6e 74 20 6f 66 |is the amount of| 00000720 20 64 69 73 63 20 73 70 61 63 65 20 6e 65 65 64 | disc space need| 00000730 65 64 2c 20 65 76 65 6e 20 6f 6e 20 61 20 42 42 |ed, even on a BB| 00000740 43 0d 77 69 74 68 20 6a 75 73 74 20 33 32 4b 20 |C.with just 32K | 00000750 6f 6e 6c 79 20 33 20 53 6e 61 70 73 68 6f 74 73 |only 3 Snapshots| 00000760 20 63 61 6e 20 62 65 20 74 61 6b 65 6e 20 6f 6e | can be taken on| 00000770 20 61 20 73 74 61 6e 64 65 64 20 31 30 30 4b 20 | a standed 100K | 00000780 64 69 73 63 20 73 6f 20 74 6f 0d 6f 76 65 72 63 |disc so to.overc| 00000790 6f 6d 65 20 74 68 69 73 20 65 61 63 68 20 6e 65 |ome this each ne| 000007a0 77 20 66 69 6c 65 20 69 73 20 73 61 76 65 64 20 |w file is saved | 000007b0 6f 76 65 72 20 74 68 65 20 6f 6c 64 20 6f 6e 65 |over the old one| 000007c0 2e 0d 0d 20 20 54 6f 20 69 6d 70 6c 65 6d 65 6e |... To implemen| 000007d0 74 20 61 20 53 6e 61 70 73 68 6f 74 20 6f 6e 20 |t a Snapshot on | 000007e0 61 20 42 42 43 20 69 73 20 64 69 66 66 69 63 75 |a BBC is difficu| 000007f0 6c 74 2e 20 58 65 72 6f 78 20 53 6e 61 70 73 6e |lt. Xerox Snapsn| 00000800 6f 74 73 20 68 61 64 0d 73 75 62 73 74 61 6e 74 |ots had.substant| 00000810 69 61 6c 20 68 61 72 64 77 61 72 65 20 62 61 63 |ial hardware bac| 00000820 6b 75 70 20 73 6f 20 74 68 69 6e 67 73 20 77 65 |kup so things we| 00000830 72 65 20 65 61 73 69 65 72 2e 20 4f 6e 20 74 68 |re easier. On th| 00000840 65 20 42 42 43 20 74 68 65 72 65 20 61 72 65 20 |e BBC there are | 00000850 33 0d 6d 61 69 6e 20 70 72 6f 62 6c 65 6d 73 2e |3.main problems.| 00000860 20 46 69 72 73 74 6c 79 2c 20 68 6f 77 20 74 6f | Firstly, how to| 00000870 20 63 6f 70 79 20 61 6c 6c 20 33 32 4b 20 6f 66 | copy all 32K of| 00000880 20 6d 61 69 6e 20 52 41 4d 20 74 6f 20 64 69 73 | main RAM to dis| 00000890 63 20 77 69 74 68 6f 75 74 0d 63 75 72 72 75 70 |c without.currup| 000008a0 74 69 6e 67 2f 63 68 61 6e 67 69 6e 67 20 69 74 |ting/changing it| 000008b0 2c 20 73 65 63 6f 6e 64 6c 79 2c 20 77 68 61 74 |, secondly, what| 000008c0 20 69 66 20 74 68 65 20 4f 70 65 72 61 74 69 6e | if the Operatin| 000008d0 67 20 53 79 73 74 65 6d 20 77 6f 72 6b 20 73 70 |g System work sp| 000008e0 61 63 65 0d 28 74 68 61 74 20 62 65 6c 6f 77 20 |ace.(that below | 000008f0 50 41 47 45 29 20 69 73 20 63 75 72 72 75 70 74 |PAGE) is currupt| 00000900 65 64 20 3f 20 49 74 20 6f 66 74 65 6e 20 68 61 |ed ? It often ha| 00000910 70 70 65 6e 73 20 74 68 61 74 20 77 68 65 6e 20 |ppens that when | 00000920 70 72 6f 67 72 61 6d 6d 65 72 73 0d 61 72 65 20 |programmers.are | 00000930 73 68 6f 72 74 20 6f 66 20 6d 65 6d 6f 72 79 20 |short of memory | 00000940 74 68 65 79 20 75 73 65 20 44 46 53 20 77 6f 72 |they use DFS wor| 00000950 6b 73 70 61 63 65 2e 20 54 68 69 73 20 6d 65 61 |kspace. This mea| 00000960 6e 73 20 74 68 61 74 20 74 68 65 20 44 46 53 20 |ns that the DFS | 00000970 77 69 6c 6c 0d 6e 6f 74 20 66 75 6e 63 74 69 6f |will.not functio| 00000980 6e 20 63 6f 72 72 65 63 74 6c 79 2e 20 41 6c 73 |n correctly. Als| 00000990 6f 20 77 68 65 72 65 20 63 61 6e 20 74 68 65 20 |o where can the | 000009a0 70 72 6f 67 72 61 6d 20 22 6c 69 76 65 22 20 77 |program "live" w| 000009b0 68 69 6c 65 20 69 74 20 69 73 0d 77 61 69 74 69 |hile it is.waiti| 000009c0 6e 67 20 74 6f 20 62 65 20 72 75 6e 20 61 6e 64 |ng to be run and| 000009d0 20 62 65 69 6e 67 20 72 75 6e 20 69 66 20 61 6c | being run if al| 000009e0 6c 20 74 68 65 20 6d 65 6d 6f 72 79 20 69 73 20 |l the memory is | 000009f0 75 73 65 64 3f 0d 0d 20 20 54 6f 20 6f 76 65 72 |used?.. To over| 00000a00 63 6f 6d 65 20 74 68 65 73 65 20 70 72 6f 62 6c |come these probl| 00000a10 65 6d 73 20 49 20 68 61 76 65 20 75 73 65 64 20 |ems I have used | 00000a20 53 69 64 65 77 61 79 73 20 52 41 4d 20 28 53 57 |Sideways RAM (SW| 00000a30 52 29 2e 20 54 68 65 20 70 72 6f 67 72 61 6d 0d |R). The program.| 00000a40 6d 75 73 74 20 62 65 20 61 73 73 65 6d 62 6c 65 |must be assemble| 00000a50 64 20 20 69 6e 20 6d 61 69 6e 20 52 41 4d 20 61 |d in main RAM a| 00000a60 6e 64 20 74 68 65 6e 20 6d 6f 76 65 64 20 75 70 |nd then moved up| 00000a70 20 69 6e 74 6f 20 53 57 52 2e 20 54 6f 20 64 6f | into SWR. To do| 00000a80 20 74 68 69 73 20 61 0d 73 70 65 63 69 61 6c 20 | this a.special | 00000a90 70 72 6f 67 72 61 6d 20 69 73 20 6e 65 65 64 65 |program is neede| 00000aa0 64 20 74 6f 20 6d 6f 76 65 20 69 74 20 75 70 2e |d to move it up.| 00000ab0 20 41 6c 73 6f 20 77 68 65 6e 20 61 73 73 65 6d | Also when assem| 00000ac0 62 6c 65 64 20 61 6c 6c 20 74 68 65 0d 61 64 64 |bled all the.add| 00000ad0 72 65 73 73 65 73 20 74 68 65 20 70 72 6f 67 72 |resses the progr| 00000ae0 61 6d 20 75 73 65 73 20 6d 75 73 74 20 62 65 20 |am uses must be | 00000af0 73 65 74 20 74 6f 20 70 6f 69 6e 74 20 74 6f 20 |set to point to | 00000b00 6c 6f 63 61 74 69 6f 6e 73 20 69 6e 20 53 57 52 |locations in SWR| 00000b10 0d 61 64 64 72 65 73 73 20 72 61 6e 67 65 20 28 |.address range (| 00000b20 26 38 30 30 30 20 2d 20 26 43 30 30 30 29 20 61 |&8000 - &C000) a| 00000b30 6e 64 20 6e 6f 74 20 69 6e 20 6d 61 69 6e 20 52 |nd not in main R| 00000b40 41 4d 20 28 30 20 2d 20 26 37 46 46 46 29 20 61 |AM (0 - &7FFF) a| 00000b50 73 20 68 61 70 70 65 6e 73 0d 77 68 65 6e 20 61 |s happens.when a| 00000b60 20 70 72 6f 67 72 61 6d 20 69 73 20 6e 6f 72 6d | program is norm| 00000b70 61 6c 6c 79 20 61 73 73 65 6d 62 6c 65 64 2c 20 |ally assembled, | 00000b80 74 68 69 73 20 69 73 20 62 65 63 61 75 73 65 20 |this is because | 00000b90 6d 6f 73 74 20 36 35 30 32 0d 69 6e 73 74 72 75 |most 6502.instru| 00000ba0 63 74 69 6f 6e 73 20 75 73 65 20 61 62 73 6f 6c |ctions use absol| 00000bb0 75 74 65 20 61 64 64 72 65 73 73 20 61 6e 64 20 |ute address and | 00000bc0 6e 6f 74 20 72 65 6c 61 74 69 76 65 20 61 64 64 |not relative add| 00000bd0 72 65 73 73 69 6e 67 20 28 77 68 69 63 68 20 68 |ressing (which h| 00000be0 61 73 0d 62 65 63 6f 6d 65 20 6d 6f 72 65 20 70 |as.become more p| 00000bf0 6f 70 75 6c 61 72 20 6f 6e 20 6e 65 77 65 72 20 |opular on newer | 00000c00 70 72 6f 63 65 73 73 6f 72 73 20 62 65 63 61 75 |processors becau| 00000c10 73 65 20 6f 66 20 69 74 27 73 20 66 6c 65 78 69 |se of it's flexi| 00000c20 62 69 6c 69 74 79 29 2e 20 4f 6e 0d 6c 65 76 65 |bility). On.leve| 00000c30 6c 20 32 20 42 41 53 49 43 20 6d 61 63 68 69 6e |l 2 BASIC machin| 00000c40 65 73 20 74 68 69 73 20 69 73 20 6e 6f 20 70 72 |es this is no pr| 00000c50 6f 62 6c 65 6d 20 73 69 6e 63 65 20 22 70 68 61 |oblem since "pha| 00000c60 6e 74 6f 6d 22 20 61 73 73 65 6d 62 6c 79 20 63 |ntom" assembly c| 00000c70 61 6e 20 62 65 0d 75 73 65 64 20 77 69 74 68 20 |an be.used with | 00000c80 4f 25 2c 20 77 68 65 72 65 20 74 68 65 20 61 73 |O%, where the as| 00000c90 73 65 6d 62 6c 65 72 20 73 65 74 73 20 74 68 65 |sembler sets the| 00000ca0 20 61 64 64 72 65 73 73 65 73 20 66 6f 72 20 6f | addresses for o| 00000cb0 6e 65 20 61 72 65 61 20 6f 66 0d 6d 65 6d 6f 72 |ne area of.memor| 00000cc0 79 20 61 6e 64 20 70 6c 61 63 65 73 20 74 68 65 |y and places the| 00000cd0 20 63 6f 64 65 20 69 6e 20 61 6e 6f 74 68 65 72 | code in another| 00000ce0 20 61 72 65 61 2c 20 6f 6e 20 6f 6c 64 65 72 20 | area, on older | 00000cf0 6c 65 76 65 6c 20 31 20 42 41 53 49 43 0d 6d 61 |level 1 BASIC.ma| 00000d00 63 68 69 6e 65 73 20 74 68 69 73 20 69 73 20 6e |chines this is n| 00000d10 6f 74 20 61 76 61 69 6c 61 62 6c 65 20 73 6f 20 |ot available so | 00000d20 49 20 68 61 76 65 20 61 64 6a 75 73 74 65 64 20 |I have adjusted | 00000d30 61 6c 6c 20 74 68 65 20 61 62 73 6f 6c 75 74 65 |all the absolute| 00000d40 0d 61 64 64 72 65 73 73 65 73 20 77 69 74 68 20 |.addresses with | 00000d50 2b 26 33 30 30 30 20 73 6f 20 74 68 61 74 20 70 |+&3000 so that p| 00000d60 68 61 6e 74 6f 6d 20 61 73 73 65 6d 62 6c 79 20 |hantom assembly | 00000d70 69 73 20 6e 6f 74 20 6e 65 65 64 65 64 20 28 74 |is not needed (t| 00000d80 68 65 20 63 6f 64 65 20 69 73 0d 61 73 73 65 6d |he code is.assem| 00000d90 62 6c 65 64 20 74 6f 20 26 35 30 30 30 2c 20 73 |bled to &5000, s| 00000da0 6f 20 2b 26 33 30 30 30 20 6d 61 6b 65 73 20 61 |o +&3000 makes a| 00000db0 6c 6c 20 61 64 64 72 65 73 73 65 73 20 67 72 65 |ll addresses gre| 00000dc0 61 74 65 72 20 74 68 61 6e 20 26 38 30 30 30 29 |ater than &8000)| 00000dd0 2e 0d 41 6c 73 6f 20 6c 65 76 65 6c 20 31 20 6d |..Also level 1 m| 00000de0 61 63 68 69 6e 65 73 20 64 6f 20 6e 6f 74 20 68 |achines do not h| 00000df0 61 76 65 20 74 68 65 20 45 51 55 20 61 73 73 65 |ave the EQU asse| 00000e00 6d 62 6c 79 20 66 75 6e 63 74 69 6f 6e 20 73 6f |mbly function so| 00000e10 20 49 20 68 61 76 65 0d 73 79 6e 74 68 65 73 69 | I have.synthesi| 00000e20 73 65 64 20 74 68 65 73 65 20 66 75 6e 63 74 69 |sed these functi| 00000e30 6f 6e 73 20 77 69 74 68 20 74 68 65 20 4f 50 54 |ons with the OPT| 00000e40 20 63 6f 6d 6d 61 6e 64 2e 0d 0d 20 20 20 54 68 | command... Th| 00000e50 65 20 70 72 6f 67 72 61 6d 27 73 20 6f 70 65 72 |e program's oper| 00000e60 61 74 69 6f 6e 20 69 73 20 71 75 69 74 65 20 73 |ation is quite s| 00000e70 69 6d 70 6c 65 20 61 6e 64 20 75 73 65 73 20 77 |imple and uses w| 00000e80 68 61 74 20 49 20 63 61 6c 6c 20 61 6e 0d 22 49 |hat I call an."I| 00000e90 6d 70 6f 73 74 65 72 22 2e 20 41 6e 20 69 6d 70 |mposter". An imp| 00000ea0 6f 73 74 65 72 20 69 73 20 61 20 63 6f 70 79 20 |oster is a copy | 00000eb0 6f 66 20 4f 53 20 77 6f 72 6b 73 70 61 63 65 20 |of OS workspace | 00000ec0 61 73 20 69 74 20 69 73 20 77 68 65 6e 20 69 74 |as it is when it| 00000ed0 20 69 73 20 6e 6f 74 0d 63 6f 72 72 75 70 74 65 | is not.corrupte| 00000ee0 64 20 2d 20 74 68 61 74 20 69 73 20 77 68 65 6e |d - that is when| 00000ef0 20 69 74 20 69 73 20 69 6e 20 70 65 72 66 65 63 | it is in perfec| 00000f00 74 20 77 6f 72 6b 69 6e 67 20 6f 72 64 65 72 2e |t working order.| 00000f10 20 54 68 65 20 69 6d 70 6f 73 74 65 72 20 69 73 | The imposter is| 00000f20 0d 74 68 65 6e 20 68 65 6c 64 20 69 6e 20 53 57 |.then held in SW| 00000f30 52 20 75 6e 74 69 6c 20 74 68 65 20 53 6e 61 70 |R until the Snap| 00000f40 73 68 6f 74 20 69 73 20 74 6f 20 62 65 20 74 61 |shot is to be ta| 00000f50 6b 65 6e 20 74 68 65 6e 20 69 74 20 69 73 20 63 |ken then it is c| 00000f60 6f 70 69 65 64 20 64 6f 77 6e 0d 74 6f 20 69 74 |opied down.to it| 00000f70 27 73 20 6f 6c 64 20 70 6f 73 69 74 69 6f 6e 20 |'s old position | 00000f80 61 6c 6c 6f 77 69 6e 67 20 74 68 65 20 4f 53 20 |allowing the OS | 00000f90 28 61 6e 64 20 44 46 53 29 20 74 6f 20 66 75 6e |(and DFS) to fun| 00000fa0 63 74 69 6f 6e 20 61 73 20 6e 6f 72 6d 61 6c 20 |ction as normal | 00000fb0 2d 0d 74 68 69 73 20 69 73 20 70 61 72 74 69 63 |-.this is partic| 00000fc0 75 6c 61 72 79 20 69 6d 70 6f 72 74 61 6e 74 20 |ulary important | 00000fd0 69 66 20 61 6e 6f 74 68 65 72 20 66 69 6c 69 6e |if another filin| 00000fe0 67 20 73 79 73 74 65 6d 20 68 61 73 20 62 65 65 |g system has bee| 00000ff0 6e 20 73 65 6c 65 63 74 65 64 0d 69 6e 20 74 68 |n selected.in th| 00001000 65 20 6d 65 61 6e 74 69 6d 65 2e 0d 0d 20 20 54 |e meantime... T| 00001010 68 65 20 70 72 6f 67 61 6d 20 75 73 65 73 20 74 |he progam uses t| 00001020 68 65 20 36 35 32 32 20 55 73 65 72 20 56 49 41 |he 6522 User VIA| 00001030 20 74 69 6d 65 72 20 74 6f 20 77 61 69 74 20 66 | timer to wait f| 00001040 6f 72 20 61 73 20 6c 6f 6e 67 20 61 73 20 74 68 |or as long as th| 00001050 65 20 75 73 65 72 0d 77 69 73 68 65 73 20 62 65 |e user.wishes be| 00001060 66 6f 72 65 20 73 68 6f 6f 74 69 6e 67 2c 20 73 |fore shooting, s| 00001070 6f 20 69 66 20 74 68 69 73 20 75 6e 69 74 20 69 |o if this unit i| 00001080 73 20 64 69 73 61 62 6c 65 64 20 6f 72 20 63 6f |s disabled or co| 00001090 72 72 75 70 74 65 64 20 74 68 65 0d 70 72 6f 67 |rrupted the.prog| 000010a0 61 6d 20 77 69 6c 6c 20 65 69 74 68 65 72 20 6e |am will either n| 000010b0 6f 74 20 73 68 6f 6f 74 20 61 74 20 61 6c 6c 2c |ot shoot at all,| 000010c0 20 6f 72 20 77 69 6c 6c 20 73 68 6f 6f 74 20 69 | or will shoot i| 000010d0 72 72 65 67 75 6c 61 72 6c 79 20 2d 20 6d 61 6e |rregularly - man| 000010e0 79 0d 63 6f 6d 6d 65 72 63 69 61 6c 20 70 72 6f |y.commercial pro| 000010f0 67 72 61 6d 73 20 75 73 65 20 74 68 69 73 20 64 |grams use this d| 00001100 65 76 69 63 65 20 66 6f 72 20 74 69 6d 69 6e 67 |evice for timing| 00001110 20 73 6f 20 74 68 65 73 65 20 63 61 6e 6e 6f 74 | so these cannot| 00001120 20 62 65 0d 53 6e 61 70 73 68 6f 74 2e 20 41 6c | be.Snapshot. Al| 00001130 73 6f 20 6d 6f 64 65 6c 20 41 20 42 42 43 27 73 |so model A BBC's| 00001140 20 77 65 72 65 20 6e 65 76 65 72 20 66 69 74 74 | were never fitt| 00001150 65 64 20 77 69 74 68 20 74 68 69 73 20 75 6e 69 |ed with this uni| 00001160 74 20 73 6f 20 61 6e 79 0d 6d 6f 64 65 6c 20 41 |t so any.model A| 00001170 20 74 68 61 74 20 68 61 73 20 6e 6f 74 20 62 65 | that has not be| 00001180 65 6e 20 66 75 6c 6c 79 20 75 70 67 72 61 64 65 |en fully upgrade| 00001190 64 20 63 61 6e 6e 6f 74 20 53 6e 61 70 73 68 6f |d cannot Snapsho| 000011a0 6f 74 20 77 69 74 68 20 74 68 65 20 74 69 6d 65 |ot with the time| 000011b0 72 0d 2d 20 61 6c 74 68 6f 75 67 68 20 2a 4e 4f |r.- although *NO| 000011c0 57 20 73 68 6f 75 6c 64 20 73 74 69 6c 6c 20 62 |W should still b| 000011d0 65 20 75 73 61 62 6c 65 2e 20 54 68 65 20 6d 61 |e usable. The ma| 000011e0 69 6e 20 75 73 65 20 6f 66 20 74 68 69 73 20 75 |in use of this u| 000011f0 6e 69 74 20 6e 6f 72 6d 61 6c 79 0d 69 73 20 74 |nit normaly.is t| 00001200 6f 20 64 72 69 76 65 20 74 68 65 20 70 72 69 6e |o drive the prin| 00001210 74 65 72 20 61 6e 64 20 75 73 65 72 20 70 6f 72 |ter and user por| 00001220 74 2e 0d 0d 20 20 57 68 65 6e 20 74 68 65 20 74 |t... When the t| 00001230 69 6d 65 20 64 65 66 69 6e 65 64 20 62 79 20 74 |ime defined by t| 00001240 68 65 20 75 73 65 72 20 69 73 20 75 70 20 74 68 |he user is up th| 00001250 65 20 70 72 6f 67 72 61 6d 20 77 69 6c 6c 20 63 |e program will c| 00001260 6f 70 79 20 4f 53 0d 77 6f 72 6b 73 70 61 63 65 |opy OS.workspace| 00001270 20 62 65 74 77 65 65 6e 20 30 20 61 6e 64 20 26 | between 0 and &| 00001280 31 34 30 30 20 75 70 20 69 6e 74 6f 20 53 57 52 |1400 up into SWR| 00001290 20 74 68 65 6e 20 63 6f 70 79 20 74 68 65 20 69 | then copy the i| 000012a0 6d 70 6f 73 74 65 72 20 64 6f 77 6e 20 74 6f 0d |mposter down to.| 000012b0 74 68 65 20 73 61 6d 65 20 61 72 65 61 20 73 6f |the same area so| 000012c0 20 74 68 61 74 20 74 68 65 20 64 69 73 63 20 64 | that the disc d| 000012d0 72 69 76 65 20 77 69 6c 6c 20 77 6f 72 6b 20 6e |rive will work n| 000012e0 6f 72 6d 61 6c 6c 79 2e 20 4e 65 78 74 20 74 68 |ormally. Next th| 000012f0 65 20 72 65 73 74 20 6f 66 0d 52 41 4d 20 28 26 |e rest of.RAM (&| 00001300 31 34 30 31 20 74 6f 20 26 38 30 30 30 20 2d 20 |1401 to &8000 - | 00001310 69 6e 63 6c 75 64 69 6e 67 20 74 68 65 20 73 63 |including the sc| 00001320 72 65 65 6e 29 20 77 69 6c 6c 20 62 65 20 73 61 |reen) will be sa| 00001330 76 65 64 20 74 6f 20 64 69 73 63 2c 20 74 68 65 |ved to disc, the| 00001340 6e 0d 74 68 65 20 6f 6c 64 20 4f 53 20 77 6f 72 |n.the old OS wor| 00001350 6b 20 73 70 61 63 65 20 69 73 20 63 6f 70 69 65 |k space is copie| 00001360 64 20 64 6f 77 6e 20 69 6e 74 6f 20 61 20 73 61 |d down into a sa| 00001370 66 65 20 61 72 65 61 20 6f 66 20 52 41 4d 20 28 |fe area of RAM (| 00001380 26 33 30 30 30 20 74 6f 0d 26 34 34 30 30 29 20 |&3000 to.&4400) | 00001390 61 6e 64 20 73 61 76 65 64 20 74 6f 20 64 69 73 |and saved to dis| 000013a0 63 20 28 69 74 20 6e 6f 74 20 77 69 6c 6c 20 77 |c (it not will w| 000013b0 6f 72 6b 20 77 69 74 68 20 63 61 73 73 65 74 74 |ork with cassett| 000013c0 65 20 6d 61 69 6e 6c 79 20 62 65 63 61 75 73 65 |e mainly because| 000013d0 0d 6f 66 20 74 68 65 20 74 69 6d 65 20 69 6e 76 |.of the time inv| 000013e0 6f 6c 76 65 64 20 61 74 20 74 68 69 73 20 73 74 |olved at this st| 000013f0 61 67 65 29 2e 20 4f 6e 63 65 20 74 68 65 20 6d |age). Once the m| 00001400 65 6d 6f 72 79 20 69 73 20 73 61 76 65 64 20 28 |emory is saved (| 00001410 69 6e 63 6c 75 64 69 6e 67 0d 61 20 63 6f 70 79 |including.a copy| 00001420 20 6f 66 20 74 68 65 20 73 74 61 63 6b 20 70 6f | of the stack po| 00001430 69 6e 74 65 72 3b 20 41 2c 58 20 61 6e 64 20 59 |inter; A,X and Y| 00001440 20 61 72 65 20 74 61 6b 65 6e 20 63 61 72 65 20 | are taken care | 00001450 6f 66 20 62 79 20 4f 53 29 20 74 68 65 0d 70 72 |of by OS) the.pr| 00001460 6f 67 72 61 6d 20 70 72 6f 63 65 65 64 73 20 74 |ogram proceeds t| 00001470 6f 20 72 65 74 75 72 6e 20 74 68 65 20 73 79 73 |o return the sys| 00001480 74 65 6d 20 74 6f 20 69 74 27 73 20 70 72 65 76 |tem to it's prev| 00001490 69 6f 75 73 20 73 74 61 74 65 2e 0d 0d 20 20 20 |ious state... | 000014a0 54 6f 20 66 6f 72 63 65 20 74 68 65 20 73 79 73 |To force the sys| 000014b0 74 65 6d 20 74 6f 20 72 65 74 75 72 6e 20 74 6f |tem to return to| 000014c0 20 61 20 70 72 65 76 69 6f 75 73 20 73 74 61 74 | a previous stat| 000014d0 65 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 2a 52 |e the command *R| 000014e0 45 53 54 4f 52 45 0d 69 73 20 69 73 73 75 65 64 |ESTORE.is issued| 000014f0 20 28 73 65 65 20 62 65 6c 6f 77 29 2c 20 74 68 | (see below), th| 00001500 69 73 20 77 69 6c 6c 20 62 72 69 6e 67 20 74 68 |is will bring th| 00001510 65 20 6d 65 6d 6f 72 79 20 69 6e 20 66 72 6f 6d |e memory in from| 00001520 20 64 69 73 63 20 61 6e 64 20 20 63 61 72 72 79 | disc and carry| 00001530 0d 6f 75 74 20 74 68 65 20 61 62 6f 76 65 20 6f |.out the above o| 00001540 70 65 72 61 74 69 6f 6e 20 69 6e 20 72 65 76 65 |peration in reve| 00001550 72 73 65 20 2d 20 69 66 20 79 6f 75 20 61 72 65 |rse - if you are| 00001560 20 6f 6e 6c 79 20 72 65 73 74 6f 72 69 6e 67 20 | only restoring | 00001570 6d 65 6d 6f 72 79 0d 66 72 6f 6d 20 61 20 70 72 |memory.from a pr| 00001580 65 76 69 6f 75 73 20 53 6e 61 70 73 68 6f 74 20 |evious Snapshot | 00001590 61 6e 64 20 64 6f 20 6e 6f 74 20 69 6e 74 65 6e |and do not inten| 000015a0 64 20 74 6f 20 74 61 6b 65 20 61 6e 6f 74 68 65 |d to take anothe| 000015b0 72 20 53 6e 61 70 73 68 6f 74 20 79 6f 75 0d 6e |r Snapshot you.n| 000015c0 65 65 64 20 6e 6f 74 20 75 73 65 20 2a 52 45 41 |eed not use *REA| 000015d0 44 59 20 74 6f 20 67 65 74 20 61 6e 20 69 6d 70 |DY to get an imp| 000015e0 6f 73 74 65 72 2e 20 57 68 65 6e 20 2a 52 45 53 |oster. When *RES| 000015f0 54 4f 52 45 20 69 73 20 75 73 65 64 20 74 68 65 |TORE is used the| 00001600 20 73 79 73 74 65 6d 0d 77 69 6c 6c 20 6c 6f 6f | system.will loo| 00001610 6b 20 66 6f 72 20 74 77 6f 20 66 69 6c 65 73 20 |k for two files | 00001620 64 65 66 69 6e 65 64 20 62 79 20 74 68 65 20 74 |defined by the t| 00001630 68 65 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 |he current direc| 00001640 74 6f 72 79 20 61 6e 64 20 64 72 69 76 65 0d 73 |tory and drive.s| 00001650 65 74 74 69 6e 67 73 20 61 6e 64 20 74 68 65 20 |ettings and the | 00001660 6e 61 6d 65 73 20 67 69 76 65 6e 20 74 6f 20 53 |names given to S| 00001670 6e 61 70 73 68 6f 74 20 61 74 20 61 73 73 65 6d |napshot at assem| 00001680 62 6c 79 20 74 69 6d 65 2e 20 41 73 20 6e 6f 72 |bly time. As nor| 00001690 6d 61 6c 0d 64 72 69 76 65 20 61 6e 64 20 64 69 |mal.drive and di| 000016a0 72 65 63 74 6f 72 79 20 73 65 74 74 69 6e 67 73 |rectory settings| 000016b0 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 65 | included in the| 000016c0 20 6e 61 6d 65 20 77 69 6c 6c 20 6f 76 65 72 72 | name will overr| 000016d0 69 64 65 20 74 68 65 0d 63 75 72 72 65 6e 74 20 |ide the.current | 000016e0 64 72 69 76 65 20 61 6e 64 20 64 69 72 65 63 74 |drive and direct| 000016f0 6f 72 79 20 73 65 74 74 69 6e 67 73 2e 0d 0d 20 |ory settings... | 00001700 20 20 4f 6e 65 20 6f 66 20 74 68 65 20 62 69 67 | One of the big| 00001710 67 65 73 74 20 70 72 6f 62 6c 65 6d 73 20 69 73 |gest problems is| 00001720 20 74 68 61 74 20 6f 66 20 63 6f 72 72 65 63 74 | that of correct| 00001730 6c 79 20 72 65 2d 6c 6f 61 64 69 6e 67 20 74 68 |ly re-loading th| 00001740 65 0d 73 63 72 65 65 6e 2e 20 41 6c 74 68 6f 75 |e.screen. Althou| 00001750 67 68 20 74 68 65 20 73 63 72 65 65 6e 20 63 61 |gh the screen ca| 00001760 6e 20 65 61 73 69 6c 79 20 62 65 20 6c 6f 61 64 |n easily be load| 00001770 65 64 20 64 61 74 61 20 69 73 20 63 6f 6e 74 61 |ed data is conta| 00001780 69 6e 65 64 20 69 6e 20 74 68 65 0d 36 38 34 35 |ined in the.6845| 00001790 20 43 52 54 43 20 28 43 61 74 68 6f 64 65 20 72 | CRTC (Cathode r| 000017a0 61 79 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 63 68 |ay controller ch| 000017b0 69 70 29 20 77 68 69 63 68 20 64 69 63 74 61 74 |ip) which dictat| 000017c0 65 73 20 77 68 61 74 20 74 6f 20 64 6f 20 77 69 |es what to do wi| 000017d0 74 68 0d 74 68 65 20 64 61 74 61 20 6f 6e 20 73 |th.the data on s| 000017e0 63 72 65 65 6e 2e 20 4d 6f 73 74 20 6f 66 20 74 |creen. Most of t| 000017f0 68 65 20 72 65 67 69 73 74 65 72 73 20 69 6e 20 |he registers in | 00001800 74 68 69 73 20 63 68 69 70 20 61 72 65 20 77 72 |this chip are wr| 00001810 69 74 65 20 6f 6e 6c 79 0d 69 2e 65 2e 20 64 61 |ite only.i.e. da| 00001820 74 61 20 63 61 6e 20 6f 6e 6c 79 20 62 65 20 73 |ta can only be s| 00001830 65 6e 74 20 74 6f 20 74 68 65 6d 20 6e 6f 74 20 |ent to them not | 00001840 72 65 61 64 20 66 72 6f 6d 20 74 68 65 6d 2e 20 |read from them. | 00001850 57 68 65 6e 20 74 68 65 20 6d 6f 64 65 20 69 73 |When the mode is| 00001860 0d 63 68 61 6e 67 65 64 20 74 68 65 20 4f 53 20 |.changed the OS | 00001870 73 65 6e 64 73 20 74 68 65 73 65 20 72 65 67 69 |sends these regi| 00001880 73 74 65 72 73 20 64 61 74 61 20 73 6f 20 74 68 |sters data so th| 00001890 61 74 20 69 74 20 63 61 6e 20 68 61 6e 64 6c 65 |at it can handle| 000018a0 20 74 68 65 0d 73 63 72 65 65 6e 20 6d 65 6d 6f | the.screen memo| 000018b0 72 79 20 63 6f 72 72 65 63 74 6c 79 2e 20 54 6f |ry correctly. To| 000018c0 20 61 6c 6c 6f 77 20 66 6f 72 20 74 68 69 73 2c | allow for this,| 000018d0 20 53 6e 61 70 73 68 6f 74 20 63 68 61 6e 67 65 | Snapshot change| 000018e0 73 20 74 68 65 20 73 63 72 65 65 6e 0d 74 6f 20 |s the screen.to | 000018f0 74 68 65 20 63 6f 72 72 65 63 74 20 6d 6f 64 65 |the correct mode| 00001900 20 62 65 66 6f 72 65 20 72 65 2d 6c 6f 61 64 69 | before re-loadi| 00001910 6e 67 20 74 68 65 20 73 63 72 65 65 6e 20 6d 65 |ng the screen me| 00001920 6d 6f 72 79 2c 20 74 68 65 20 73 69 64 65 20 65 |mory, the side e| 00001930 66 66 65 63 74 0d 68 65 72 65 20 69 73 20 74 68 |ffect.here is th| 00001940 61 74 20 69 66 20 61 20 63 75 73 74 6f 6d 20 6d |at if a custom m| 00001950 6f 64 65 20 69 73 20 62 65 69 6e 67 20 75 73 65 |ode is being use| 00001960 64 20 74 68 65 20 73 63 72 65 65 6e 20 64 69 73 |d the screen dis| 00001970 70 6c 61 79 20 77 69 6c 6c 20 62 65 0d 63 6f 72 |play will be.cor| 00001980 72 75 70 74 65 64 2e 0d 0d 20 20 54 68 65 20 6e |rupted... The n| 00001990 65 78 74 20 70 72 6f 62 6c 65 6d 20 77 69 74 68 |ext problem with| 000019a0 20 74 68 65 20 73 63 72 65 65 6e 20 69 73 20 6f | the screen is o| 000019b0 6e 65 20 6f 66 20 61 6c 69 67 6d 65 6e 74 2e 20 |ne of aligment. | 000019c0 57 68 65 6e 20 74 68 65 20 42 42 43 0d 73 63 72 |When the BBC.scr| 000019d0 6f 6c 6c 73 20 74 68 65 20 73 63 72 65 65 6e 20 |olls the screen | 000019e0 69 74 20 64 6f 65 73 20 73 6f 20 77 69 74 68 20 |it does so with | 000019f0 68 61 72 64 77 61 72 65 20 69 6e 20 74 68 65 20 |hardware in the | 00001a00 36 38 34 35 20 43 52 54 43 20 28 75 73 69 6e 67 |6845 CRTC (using| 00001a10 0d 73 6f 66 74 77 61 72 65 20 74 6f 20 73 63 72 |.software to scr| 00001a20 6f 6c 6c 20 61 20 73 63 72 65 65 6e 20 69 73 20 |oll a screen is | 00001a30 76 65 72 79 20 73 6c 6f 77 29 20 73 6f 20 61 20 |very slow) so a | 00001a40 73 63 72 65 65 6e 20 63 61 6e 6e 6f 74 20 62 65 |screen cannot be| 00001a50 20 6a 75 73 74 0d 72 65 6c 6f 61 64 65 64 20 69 | just.reloaded i| 00001a60 6e 74 6f 20 69 74 27 73 20 6f 6c 64 20 6c 6f 63 |nto it's old loc| 00001a70 61 74 69 6f 6e 2c 20 70 6f 69 6e 74 65 72 73 20 |ation, pointers | 00001a80 69 6e 20 74 68 65 20 36 38 34 35 20 43 54 52 43 |in the 6845 CTRC| 00001a90 20 6d 75 73 74 20 62 65 0d 61 6a 75 73 74 65 64 | must be.ajusted| 00001aa0 2e 20 46 6f 72 74 75 6e 61 74 65 6c 79 20 74 68 |. Fortunately th| 00001ab0 65 20 4f 53 20 6b 65 65 70 73 20 61 20 6e 6f 74 |e OS keeps a not| 00001ac0 65 20 6f 66 20 74 68 65 73 65 20 70 6f 69 6e 74 |e of these point| 00001ad0 65 72 73 20 69 6e 20 70 61 67 65 20 33 2c 0d 75 |ers in page 3,.u| 00001ae0 6e 66 6f 72 74 75 6e 61 74 65 6c 79 20 74 68 65 |nfortunately the| 00001af0 79 20 61 72 65 20 6e 6f 74 20 69 6e 20 61 20 73 |y are not in a s| 00001b00 74 61 74 65 20 74 68 61 74 20 74 68 65 20 36 38 |tate that the 68| 00001b10 34 35 20 43 54 52 43 20 63 61 6e 20 68 61 6e 64 |45 CTRC can hand| 00001b20 6c 65 20 73 6f 0d 74 68 65 79 20 6d 75 73 74 20 |le so.they must | 00001b30 62 65 20 61 64 6a 75 73 74 65 64 20 62 65 66 6f |be adjusted befo| 00001b40 72 65 20 62 65 69 6e 67 20 73 65 6e 74 20 74 6f |re being sent to| 00001b50 20 74 68 65 20 36 38 34 35 20 43 54 52 43 2e 20 | the 6845 CTRC. | 00001b60 41 73 20 69 66 20 74 68 69 73 20 77 65 72 65 0d |As if this were.| 00001b70 6e 6f 74 20 62 61 64 20 65 6e 6f 75 67 68 2c 20 |not bad enough, | 00001b80 62 65 63 61 75 73 65 20 6d 6f 64 65 20 37 20 69 |because mode 7 i| 00001b90 73 20 64 69 66 66 65 72 65 6e 74 20 74 6f 20 6d |s different to m| 00001ba0 6f 64 65 73 20 30 20 74 6f 20 36 20 69 74 20 6d |odes 0 to 6 it m| 00001bb0 75 73 74 20 68 61 76 65 0d 74 68 65 20 70 6f 69 |ust have.the poi| 00001bc0 6e 74 65 72 73 20 61 64 6a 75 73 74 65 64 20 64 |nters adjusted d| 00001bd0 69 66 66 65 72 65 6e 74 6c 79 2e 0d 0d 20 20 54 |ifferently... T| 00001be0 68 65 20 66 69 6e 61 6c 20 70 72 6f 62 6c 65 6d |he final problem| 00001bf0 20 77 69 74 68 20 74 68 65 20 73 63 72 65 65 6e | with the screen| 00001c00 20 69 73 20 74 68 61 74 20 6f 66 20 74 68 65 20 | is that of the | 00001c10 56 69 64 65 6f 20 55 4c 41 20 63 68 69 70 20 77 |Video ULA chip w| 00001c20 68 69 63 68 0d 77 61 73 20 73 70 65 63 69 61 6c |hich.was special| 00001c30 6c 79 20 64 65 73 69 67 6e 65 64 20 62 79 20 41 |ly designed by A| 00001c40 63 6f 72 6e 20 66 6f 72 20 74 68 65 20 42 42 43 |corn for the BBC| 00001c50 2e 20 54 68 69 73 20 63 68 69 70 20 68 6f 6c 64 |. This chip hold| 00001c60 73 20 6d 6f 72 65 20 64 61 74 61 0d 61 62 6f 75 |s more data.abou| 00001c70 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 6d 6f |t the current mo| 00001c80 64 65 2e 20 41 67 61 69 6e 20 72 65 73 65 74 74 |de. Again resett| 00001c90 69 6e 67 20 74 68 65 20 6d 6f 64 65 20 63 6f 72 |ing the mode cor| 00001ca0 72 65 63 74 73 20 6d 6f 73 74 20 6f 66 20 74 68 |rects most of th| 00001cb0 65 0d 64 61 74 61 20 69 6e 76 6f 6c 76 65 64 20 |e.data involved | 00001cc0 61 6e 64 2c 20 61 67 61 69 6e 2c 20 75 73 69 6e |and, again, usin| 00001cd0 67 20 61 20 63 75 73 74 6f 6d 20 6d 6f 64 65 20 |g a custom mode | 00001ce0 74 68 65 20 73 63 72 65 65 6e 20 77 69 6c 6c 20 |the screen will | 00001cf0 62 65 0d 63 6f 72 72 75 70 74 65 64 2e 20 49 66 |be.corrupted. If| 00001d00 20 74 68 65 20 75 73 65 72 20 68 61 73 20 63 68 | the user has ch| 00001d10 61 6e 67 65 64 20 74 68 65 20 64 65 66 61 75 6c |anged the defaul| 00001d20 74 20 6d 6f 64 65 20 63 6f 6c 6f 75 72 73 20 74 |t mode colours t| 00001d30 68 65 6e 20 77 68 65 6e 20 74 68 65 0d 73 63 72 |hen when the.scr| 00001d40 65 65 6e 20 69 73 20 72 65 6c 6f 61 64 65 64 20 |een is reloaded | 00001d50 74 68 65 20 63 6f 6c 6f 75 72 73 20 77 69 6c 6c |the colours will| 00001d60 20 6e 6f 74 20 62 65 20 74 68 65 20 73 61 6d 65 | not be the same| 00001d70 20 61 73 20 77 68 65 6e 20 74 68 65 20 6d 6f 64 | as when the mod| 00001d80 65 20 77 61 73 0d 73 61 76 65 64 2e 0d 0d 20 20 |e was.saved... | 00001d90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00001da0 53 6e 61 70 73 68 6f 74 20 49 6e 20 55 73 65 0d |Snapshot In Use.| 00001db0 0d 20 20 20 54 68 65 20 73 79 73 74 65 6d 20 73 |. The system s| 00001dc0 75 70 70 6f 72 74 73 20 73 69 78 20 65 78 74 72 |upports six extr| 00001dd0 61 20 2a 63 6f 6d 6d 61 6e 64 73 2e 20 54 68 65 |a *commands. The| 00001de0 73 65 20 6d 61 79 20 62 65 20 70 72 6f 63 65 65 |se may be procee| 00001df0 64 65 64 20 62 79 20 61 20 50 0d 74 6f 20 70 72 |ded by a P.to pr| 00001e00 65 76 65 6e 74 20 63 6c 61 73 68 65 73 20 77 69 |event clashes wi| 00001e10 74 68 20 6f 74 68 65 72 20 52 4f 4d 73 20 61 6e |th other ROMs an| 00001e20 64 20 69 6e 20 75 70 70 65 72 20 6f 72 20 6c 6f |d in upper or lo| 00001e30 77 65 72 20 63 61 73 65 20 65 2e 67 2e 0d 2a 50 |wer case e.g..*P| 00001e40 52 45 53 54 4f 52 45 2c 20 2a 70 72 65 73 6f 72 |RESTORE, *presor| 00001e50 65 20 61 6e 64 20 2a 52 65 53 74 4f 72 45 20 61 |e and *ReStOrE a| 00001e60 72 65 20 61 6c 6c 20 74 68 65 20 73 61 6d 65 20 |re all the same | 00001e70 61 73 20 2a 52 45 53 54 4f 52 45 2e 20 54 68 65 |as *RESTORE. The| 00001e80 20 73 69 78 0d 63 6f 6d 6d 61 6e 64 73 20 61 72 | six.commands ar| 00001e90 65 3a 2d 0d 0d 20 2a 52 45 41 44 59 20 74 68 69 |e:-.. *READY thi| 00001ea0 73 20 74 61 6b 65 73 20 61 20 63 6f 70 79 20 6f |s takes a copy o| 00001eb0 66 20 4f 53 20 77 6f 72 6b 73 70 61 63 65 20 69 |f OS workspace i| 00001ec0 6e 74 6f 20 53 57 52 20 66 6f 72 20 66 75 74 75 |nto SWR for futu| 00001ed0 72 65 20 75 73 65 20 2d 20 74 68 65 0d 69 6d 70 |re use - the.imp| 00001ee0 6f 73 74 65 72 2e 20 54 68 69 73 20 63 6f 6d 6d |oster. This comm| 00001ef0 61 6e 64 20 6d 75 73 74 20 62 65 20 69 73 73 75 |and must be issu| 00001f00 65 64 20 62 65 66 6f 72 65 20 61 6e 79 20 53 6e |ed before any Sn| 00001f10 61 70 73 68 6f 74 20 63 61 6e 20 62 65 20 74 61 |apshot can be ta| 00001f20 6b 65 6e 2e 0d 0d 20 2a 4e 4f 57 20 74 68 69 73 |ken... *NOW this| 00001f30 20 77 69 6c 6c 20 61 74 74 65 6d 70 74 20 74 6f | will attempt to| 00001f40 20 53 6e 61 70 73 68 6f 74 20 6f 6e 63 65 20 74 | Snapshot once t| 00001f50 68 65 20 63 6f 6d 6d 61 6e 64 20 69 73 20 65 6e |he command is en| 00001f60 74 65 72 65 64 2e 20 49 66 20 61 6e 0d 69 6d 70 |tered. If an.imp| 00001f70 6f 73 74 65 72 20 69 73 20 6e 6f 74 20 70 72 65 |oster is not pre| 00001f80 73 65 6e 74 20 77 69 74 68 20 61 20 2a 52 45 41 |sent with a *REA| 00001f90 44 59 20 79 6f 75 20 77 69 6c 6c 20 67 65 74 20 |DY you will get | 00001fa0 74 68 65 20 65 72 72 6f 72 20 22 4e 6f 0d 49 6d |the error "No.Im| 00001fb0 70 6f 73 74 65 72 22 20 61 6e 64 20 6e 6f 20 53 |poster" and no S| 00001fc0 6e 61 70 73 68 6f 74 20 77 69 6c 6c 20 62 65 20 |napshot will be | 00001fd0 74 61 6b 65 6e 2e 0d 0d 20 2a 57 41 49 54 20 78 |taken... *WAIT x| 00001fe0 20 28 77 68 65 72 65 20 78 20 69 73 20 61 20 6f | (where x is a o| 00001ff0 6e 65 20 6f 72 20 74 77 6f 20 64 69 67 69 74 20 |ne or two digit | 00002000 68 65 78 20 6e 75 6d 62 65 72 20 62 65 74 77 65 |hex number betwe| 00002010 65 6e 20 31 20 61 6e 64 20 26 46 46 29 2e 0d 54 |en 1 and &FF)..T| 00002020 68 69 73 20 77 69 6c 6c 20 75 73 65 20 74 68 65 |his will use the| 00002030 20 36 35 32 32 20 75 73 65 72 20 56 49 41 20 74 | 6522 user VIA t| 00002040 69 6d 65 72 20 74 6f 20 74 69 6d 65 20 74 68 65 |imer to time the| 00002050 20 70 65 72 69 6f 64 20 6f 66 20 74 69 6d 65 0d | period of time.| 00002060 73 70 65 63 69 66 69 65 64 20 61 6e 64 20 74 68 |specified and th| 00002070 65 6e 20 53 6e 61 70 73 68 6f 74 20 6d 65 6d 6f |en Snapshot memo| 00002080 72 79 20 2d 20 65 61 63 68 20 65 78 74 72 61 20 |ry - each extra | 00002090 76 61 6c 75 65 20 63 61 75 73 65 73 20 61 20 77 |value causes a w| 000020a0 61 69 74 20 6f 66 0d 61 62 6f 75 74 20 31 36 20 |ait of.about 16 | 000020b0 73 65 63 6f 6e 64 73 2e 20 49 66 20 79 6f 75 20 |seconds. If you | 000020c0 77 61 6e 74 20 74 6f 20 74 61 6b 65 20 61 20 53 |want to take a S| 000020d0 6e 61 70 73 68 6f 74 20 69 6e 20 61 20 73 68 6f |napshot in a sho| 000020e0 72 74 65 72 20 73 70 61 63 65 20 6f 66 0d 74 69 |rter space of.ti| 000020f0 6d 65 20 6c 69 6e 65 20 34 31 34 30 20 6f 66 20 |me line 4140 of | 00002100 74 68 65 20 61 73 73 65 6d 62 6c 79 20 70 72 6f |the assembly pro| 00002110 67 72 61 6d 20 63 61 6e 20 62 65 20 69 6e 63 72 |gram can be incr| 00002120 65 61 73 65 64 20 74 6f 20 61 20 68 69 67 68 20 |eased to a high | 00002130 76 61 6c 75 65 2e 0d 41 67 61 69 6e 20 75 73 69 |value..Again usi| 00002140 6e 67 20 74 68 69 73 20 63 6f 6d 6d 61 6e 64 20 |ng this command | 00002150 77 69 74 68 6f 75 74 20 70 72 65 70 61 72 69 6e |without preparin| 00002160 67 20 61 6e 20 69 6d 70 6f 73 74 65 72 20 77 69 |g an imposter wi| 00002170 74 68 20 2a 52 45 41 44 59 20 77 69 6c 6c 0d 63 |th *READY will.c| 00002180 61 75 73 65 20 74 68 65 20 22 4e 6f 20 49 6d 70 |ause the "No Imp| 00002190 6f 73 74 65 72 22 20 65 72 72 6f 72 20 61 6e 64 |oster" error and| 000021a0 20 6e 6f 20 53 6e 61 70 68 6f 74 20 77 69 6c 6c | no Snaphot will| 000021b0 20 62 65 20 74 61 6b 65 6e 2e 0d 0d 20 2a 52 45 | be taken... *RE| 000021c0 50 45 41 54 20 4f 6e 63 65 20 74 68 69 73 20 63 |PEAT Once this c| 000021d0 6f 6d 6d 61 6e 64 20 68 61 73 20 62 65 65 6e 20 |ommand has been | 000021e0 69 73 73 75 65 64 2c 20 61 6e 79 20 53 6e 61 70 |issued, any Snap| 000021f0 73 68 6f 74 20 74 68 61 74 20 69 73 20 74 61 6b |shot that is tak| 00002200 65 6e 0d 75 73 69 6e 67 20 74 68 65 20 74 69 6d |en.using the tim| 00002210 65 72 20 77 69 6c 6c 20 63 61 75 73 65 20 74 68 |er will cause th| 00002220 65 20 74 69 6d 65 72 20 74 6f 20 62 65 20 72 65 |e timer to be re| 00002230 73 65 74 20 73 6f 20 53 6e 61 70 73 68 6f 74 73 |set so Snapshots| 00002240 20 77 69 6c 6c 20 62 65 0d 74 61 6b 65 6e 20 61 | will be.taken a| 00002250 74 20 72 65 67 75 6c 61 72 20 69 6e 74 65 72 76 |t regular interv| 00002260 61 6c 73 2e 20 54 68 65 72 65 20 69 73 20 6e 6f |als. There is no| 00002270 20 6e 65 65 64 20 74 6f 20 63 61 70 74 75 72 65 | need to capture| 00002280 20 61 20 6e 65 77 20 69 6d 70 6f 73 74 65 72 20 | a new imposter | 00002290 6f 72 0d 72 65 2d 69 73 73 75 65 20 61 20 2a 57 |or.re-issue a *W| 000022a0 41 49 54 2e 20 54 68 69 73 20 69 73 20 76 65 72 |AIT. This is ver| 000022b0 79 20 75 73 65 66 75 6c 20 69 66 20 79 6f 75 20 |y useful if you | 000022c0 69 6e 74 65 6e 64 20 74 6f 20 74 61 6b 65 20 61 |intend to take a| 000022d0 20 73 65 72 69 65 73 20 6f 66 0d 53 6e 61 70 73 | series of.Snaps| 000022e0 68 6f 74 73 20 64 75 72 69 6e 67 20 61 20 67 61 |hots during a ga| 000022f0 6d 65 20 6f 72 20 77 68 69 6c 65 20 70 72 6f 63 |me or while proc| 00002300 65 73 73 69 6e 67 20 64 61 74 61 2e 20 54 68 69 |essing data. Thi| 00002310 73 20 6f 70 74 69 6f 6e 20 77 69 6c 6c 20 73 74 |s option will st| 00002320 61 79 0d 73 65 74 20 75 6e 74 69 6c 20 42 72 65 |ay.set until Bre| 00002330 61 6b 20 69 73 20 70 72 65 73 73 65 64 20 28 42 |ak is pressed (B| 00002340 72 65 61 6b 20 73 74 6f 70 73 20 61 6c 6c 20 53 |reak stops all S| 00002350 6e 61 70 73 68 6f 6f 74 69 6e 67 29 2e 0d 0d 20 |napshooting)... | 00002360 2a 52 45 53 54 4f 52 45 20 54 68 69 73 20 77 69 |*RESTORE This wi| 00002370 6c 6c 20 72 65 73 74 6f 72 65 20 6d 65 6d 6f 72 |ll restore memor| 00002380 79 20 74 6f 20 69 74 27 73 20 70 72 65 76 69 6f |y to it's previo| 00002390 75 73 20 73 74 61 74 65 2e 20 54 68 65 20 66 69 |us state. The fi| 000023a0 6c 65 73 0d 72 65 74 72 65 69 76 65 64 20 77 69 |les.retreived wi| 000023b0 6c 6c 20 64 65 70 65 6e 64 20 6f 6e 20 74 68 65 |ll depend on the| 000023c0 69 72 20 66 69 6c 65 20 6e 61 6d 65 73 20 67 69 |ir file names gi| 000023d0 76 65 6e 20 74 6f 20 53 6e 61 70 73 68 6f 74 20 |ven to Snapshot | 000023e0 61 74 20 61 73 73 65 6d 62 6c 79 0d 61 6e 64 20 |at assembly.and | 000023f0 74 68 65 20 63 75 72 72 65 6e 74 20 64 72 69 76 |the current driv| 00002400 65 20 61 6e 64 20 64 69 72 65 63 74 6f 72 79 20 |e and directory | 00002410 73 65 74 74 69 6e 67 73 2e 0d 0d 20 20 2a 4e 41 |settings... *NA| 00002420 4d 45 53 20 54 68 69 73 20 63 6f 6d 6d 61 6e 64 |MES This command| 00002430 20 77 69 6c 6c 20 70 72 69 6e 74 20 6f 75 74 20 | will print out | 00002440 74 68 65 20 74 77 6f 20 66 69 6c 65 20 6e 61 6d |the two file nam| 00002450 65 73 20 73 70 65 63 69 66 69 65 64 20 61 74 20 |es specified at | 00002460 74 68 65 0d 74 69 6d 65 20 6f 66 20 61 73 73 65 |the.time of asse| 00002470 6d 62 6c 79 20 77 68 69 63 68 20 61 72 65 20 75 |mbly which are u| 00002480 73 65 64 20 66 6f 72 20 73 61 76 69 6e 67 20 61 |sed for saving a| 00002490 6e 64 20 6c 6f 61 64 69 6e 67 20 53 6e 61 70 73 |nd loading Snaps| 000024a0 68 6f 74 73 2e 20 49 20 66 69 6e 64 0d 69 74 20 |hots. I find.it | 000024b0 62 65 73 74 20 74 6f 20 75 73 65 20 74 68 65 20 |best to use the | 000024c0 73 61 6d 65 20 66 69 6c 65 20 6e 61 6d 65 73 20 |same file names | 000024d0 66 6f 72 20 61 6c 6c 20 53 6e 61 70 73 68 6f 74 |for all Snapshot| 000024e0 73 20 61 6e 64 20 6a 75 73 74 20 75 73 65 0d 64 |s and just use.d| 000024f0 69 66 66 65 72 65 6e 74 20 64 69 73 63 73 2c 20 |ifferent discs, | 00002500 64 72 69 76 65 73 20 61 6e 64 20 64 69 72 65 63 |drives and direc| 00002510 74 6f 72 69 65 73 20 73 69 6e 63 65 20 49 20 64 |tories since I d| 00002520 6f 20 6e 6f 74 20 72 65 61 73 73 65 6d 62 6c 65 |o not reassemble| 00002530 0d 53 6e 61 70 73 68 6f 74 20 66 6f 72 20 65 61 |.Snapshot for ea| 00002540 63 68 20 73 6e 61 70 73 68 6f 74 20 62 75 74 20 |ch snapshot but | 00002550 6a 75 73 74 20 68 61 76 65 20 6f 6e 65 20 76 65 |just have one ve| 00002560 72 73 69 6f 6e 20 77 68 69 63 68 20 49 20 73 74 |rsion which I st| 00002570 6f 72 65 20 77 69 74 68 0d 61 6c 6c 20 6d 79 20 |ore with.all my | 00002580 6f 74 68 65 72 20 52 4f 4d 73 2e 0d 0d 20 20 20 |other ROMs... | 00002590 54 68 65 72 65 20 61 72 65 20 61 20 66 65 77 20 |There are a few | 000025a0 70 6f 69 6e 74 73 20 61 62 6f 75 74 20 74 68 65 |points about the| 000025b0 20 70 72 6f 67 72 61 6d 20 77 68 69 63 68 20 6d | program which m| 000025c0 75 73 74 20 62 65 20 6e 6f 74 65 64 2e 20 57 68 |ust be noted. Wh| 000025d0 65 6e 0d 73 61 76 69 6e 67 20 6d 65 6d 6f 72 79 |en.saving memory| 000025e0 20 74 6f 20 64 69 73 63 20 74 77 6f 20 66 69 6c | to disc two fil| 000025f0 65 20 6e 61 6d 65 73 20 6d 75 73 74 20 74 68 65 |e names must the| 00002600 20 75 73 65 64 2e 20 57 68 65 6e 20 74 68 65 20 | used. When the | 00002610 70 72 6f 67 72 61 6d 20 69 73 0d 61 73 73 65 6d |program is.assem| 00002620 62 6c 65 64 20 79 6f 75 20 61 72 65 20 61 73 6b |bled you are ask| 00002630 65 64 20 66 6f 72 20 74 68 65 73 65 2e 20 54 68 |ed for these. Th| 00002640 65 73 65 20 73 68 6f 75 6c 64 20 62 65 20 74 68 |ese should be th| 00002650 65 20 66 69 6c 65 6e 61 6d 65 20 79 6f 75 20 77 |e filename you w| 00002660 69 73 68 0d 74 6f 20 73 61 76 65 20 6f 72 20 6c |ish.to save or l| 00002670 6f 61 64 20 75 6e 64 65 72 2e 20 54 68 65 20 66 |oad under. The f| 00002680 69 72 73 74 20 66 69 6c 65 20 6e 61 6d 65 20 69 |irst file name i| 00002690 73 20 66 6f 72 20 74 68 65 20 6d 65 6d 6f 72 79 |s for the memory| 000026a0 20 61 62 6f 76 65 20 26 31 34 30 30 0d 61 6e 64 | above &1400.and| 000026b0 20 74 68 65 20 73 65 63 6f 6e 64 20 6f 6e 65 20 | the second one | 000026c0 66 6f 72 20 74 68 65 20 6d 65 6d 6f 72 79 20 62 |for the memory b| 000026d0 65 6c 6f 77 20 26 31 34 30 30 2e 20 59 6f 75 20 |elow &1400. You | 000026e0 6d 61 79 20 61 64 64 20 61 20 64 69 72 65 63 74 |may add a direct| 000026f0 6f 72 79 0d 61 6e 64 20 64 69 73 63 20 6e 75 6d |ory.and disc num| 00002700 62 65 72 2f 6e 61 6d 65 20 74 6f 20 74 68 65 73 |ber/name to thes| 00002710 65 20 66 69 6c 65 73 20 61 73 20 6e 6f 72 6d 61 |e files as norma| 00002720 6c 20 62 75 74 20 69 66 20 79 6f 75 20 64 6f 20 |l but if you do | 00002730 6e 6f 74 20 74 68 65 6e 20 74 68 65 0d 64 72 69 |not then the.dri| 00002740 76 65 20 61 6e 64 20 64 69 72 65 63 74 6f 72 79 |ve and directory| 00002750 20 73 65 74 74 69 6e 67 73 20 70 72 65 73 65 6e | settings presen| 00002760 74 20 77 68 65 6e 20 79 6f 75 20 2a 52 45 41 44 |t when you *READ| 00002770 59 20 77 69 6c 6c 20 62 65 20 75 73 65 64 2e 20 |Y will be used. | 00002780 57 68 65 6e 0d 52 45 53 54 4f 52 45 69 6e 67 20 |When.RESTOREing | 00002790 74 68 65 20 63 75 72 72 65 6e 74 20 64 72 69 76 |the current driv| 000027a0 65 20 61 6e 64 20 64 69 72 65 63 74 6f 72 79 20 |e and directory | 000027b0 73 65 74 74 69 6e 67 73 20 61 72 65 20 75 73 65 |settings are use| 000027c0 64 20 74 6f 20 72 65 63 6f 76 65 72 0d 74 68 65 |d to recover.the| 000027d0 20 53 6e 61 70 73 68 6f 74 2e 0d 0d 20 20 20 41 | Snapshot... A| 000027e0 6e 6f 74 68 65 72 20 70 72 6f 67 72 61 6d 20 6d |nother program m| 000027f0 75 73 74 20 62 65 20 75 73 65 64 20 74 6f 20 22 |ust be used to "| 00002800 6c 69 66 74 22 20 74 68 65 20 6d 61 69 6e 20 70 |lift" the main p| 00002810 72 6f 67 72 61 6d 20 69 6e 74 6f 20 53 57 52 2e |rogram into SWR.| 00002820 20 54 68 69 73 0d 69 73 20 74 68 65 20 6d 6f 76 | This.is the mov| 00002830 65 20 75 70 20 70 72 6f 67 61 6d 20 61 6e 64 20 |e up progam and | 00002840 73 68 6f 75 6c 64 20 62 65 20 61 73 73 65 6d 62 |should be assemb| 00002850 6c 65 64 20 61 73 20 61 20 6d 61 63 68 69 6e 65 |led as a machine| 00002860 20 63 6f 64 65 20 66 69 6c 65 20 6f 6e 0d 64 69 | code file on.di| 00002870 73 63 20 62 65 66 6f 72 65 20 6c 6f 61 64 69 6e |sc before loadin| 00002880 67 20 53 6e 61 70 73 68 6f 74 2e 20 49 74 20 77 |g Snapshot. It w| 00002890 69 6c 6c 20 61 73 6b 20 79 6f 75 20 66 6f 72 20 |ill ask you for | 000028a0 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 74 68 |the number of th| 000028b0 65 0d 73 6f 63 6b 65 74 20 74 68 65 20 53 57 52 |e.socket the SWR| 000028c0 20 69 73 20 6c 6f 63 61 74 65 64 20 69 6e 20 28 | is located in (| 000028d0 74 68 65 20 42 2b 20 31 32 38 20 68 61 73 20 53 |the B+ 128 has S| 000028e0 57 52 20 69 6e 20 73 6f 63 6b 65 74 73 20 31 2c |WR in sockets 1,| 000028f0 32 20 31 33 20 61 6e 64 0d 31 34 29 20 61 6e 64 |2 13 and.14) and| 00002900 20 77 69 6c 6c 20 63 72 65 61 74 65 20 61 20 66 | will create a f| 00002910 69 6c 65 20 63 61 6c 6c 20 55 50 20 6f 6e 20 74 |ile call UP on t| 00002920 68 65 20 64 69 73 63 2e 20 4f 6e 63 65 20 74 68 |he disc. Once th| 00002930 65 20 6d 61 69 6e 20 70 72 6f 67 72 61 6d 20 69 |e main program i| 00002940 73 0d 61 73 73 65 6d 62 6c 65 64 20 6a 75 73 74 |s.assembled just| 00002950 20 74 79 70 65 20 2a 55 50 20 28 74 68 65 20 6d | type *UP (the m| 00002960 6f 76 65 20 75 70 20 61 73 73 65 6d 62 6c 79 20 |ove up assembly | 00002970 70 72 6f 67 72 61 6d 20 73 61 76 65 73 20 55 50 |program saves UP| 00002980 20 61 73 20 55 2e 55 50 20 73 6f 0d 69 66 20 79 | as U.UP so.if y| 00002990 6f 75 72 20 6c 69 62 72 61 72 79 20 64 69 72 65 |our library dire| 000029a0 63 74 6f 72 79 20 69 73 20 6e 6f 74 20 55 20 79 |ctory is not U y| 000029b0 6f 75 20 77 69 6c 6c 20 68 61 76 65 20 74 6f 20 |ou will have to | 000029c0 75 73 65 20 2a 55 2e 55 50 20 69 6e 73 74 65 61 |use *U.UP instea| 000029d0 64 20 6f 66 0d 6a 75 73 74 20 2a 55 50 29 20 74 |d of.just *UP) t| 000029e0 68 69 73 20 77 69 6c 6c 20 6c 6f 61 64 20 61 6e |his will load an| 000029f0 64 20 72 75 6e 20 74 68 65 20 6d 6f 76 65 72 20 |d run the mover | 00002a00 70 72 6f 67 61 6d 2e 20 41 66 74 65 72 20 74 68 |progam. After th| 00002a10 69 73 20 70 72 65 73 73 0d 42 52 45 41 4b 2c 20 |is press.BREAK, | 00002a20 79 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 |you should have | 00002a30 74 68 65 20 6d 65 73 73 61 67 65 20 22 53 6e 61 |the message "Sna| 00002a40 70 73 68 6f 74 20 56 65 72 73 69 6f 6e 20 50 41 |pshot Version PA| 00002a50 4c 4f 30 30 34 22 20 6f 6e 20 74 79 70 69 6e 67 |LO004" on typing| 00002a60 0d 2a 48 45 4c 50 2e 0d 0d 20 20 4d 6f 76 65 20 |.*HELP... Move | 00002a70 75 70 20 73 69 6d 70 6c 79 20 73 77 69 74 63 68 |up simply switch| 00002a80 65 73 20 74 68 65 20 53 57 52 20 62 61 6e 6b 20 |es the SWR bank | 00002a90 69 6e 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 |into the current| 00002aa0 20 70 61 67 65 64 20 52 4f 4d 0d 70 6f 73 69 74 | paged ROM.posit| 00002ab0 69 6f 6e 20 61 6e 64 20 6d 6f 76 65 73 20 61 6c |ion and moves al| 00002ac0 6c 20 74 68 65 20 64 61 74 61 20 66 72 6f 6d 20 |l the data from | 00002ad0 6d 61 69 6e 20 52 41 4d 20 61 74 20 26 35 30 30 |main RAM at &500| 00002ae0 30 20 69 6e 74 6f 20 53 57 52 20 61 74 20 26 38 |0 into SWR at &8| 00002af0 30 30 30 2e 0d 4f 6e 63 65 20 69 74 20 68 61 73 |000..Once it has| 00002b00 20 62 65 65 6e 20 6d 6f 76 65 64 20 75 70 2c 20 | been moved up, | 00002b10 42 52 45 41 4b 20 6d 75 73 74 20 62 65 20 70 72 |BREAK must be pr| 00002b20 65 73 73 65 64 20 73 6f 20 74 68 61 74 20 74 68 |essed so that th| 00002b30 65 20 4f 53 20 63 61 6e 20 73 63 61 6e 0d 74 68 |e OS can scan.th| 00002b40 65 20 52 4f 4d 20 62 61 6e 6b 73 20 74 6f 20 73 |e ROM banks to s| 00002b50 65 65 20 77 68 69 63 68 20 63 6f 6e 74 61 69 6e |ee which contain| 00002b60 20 52 4f 4d 73 20 2d 20 61 73 20 66 61 72 20 61 | ROMs - as far a| 00002b70 73 20 74 68 65 20 4f 53 20 6b 6e 6f 77 73 20 74 |s the OS knows t| 00002b80 68 65 20 53 57 52 0d 62 61 6e 6b 20 77 69 74 68 |he SWR.bank with| 00002b90 20 61 20 70 72 6f 67 72 61 6d 20 69 6e 20 69 73 | a program in is| 00002ba0 20 61 20 52 4f 4d 20 2d 20 61 6e 64 20 72 65 63 | a ROM - and rec| 00002bb0 6f 6e 67 69 73 65 20 53 6e 61 70 73 68 6f 74 2e |ongise Snapshot.| 00002bc0 20 41 6c 74 65 72 6e 61 74 69 76 65 6c 79 2c 0d | Alternatively,.| 00002bd0 69 66 20 79 6f 75 20 64 6f 6e 27 74 20 6c 69 6b |if you don't lik| 00002be0 65 20 70 72 65 73 73 69 6e 67 20 42 72 65 61 6b |e pressing Break| 00002bf0 2c 20 74 68 65 20 4f 53 20 6b 65 65 70 73 20 61 |, the OS keeps a| 00002c00 20 72 65 63 6f 72 64 20 6f 66 20 77 68 69 63 68 | record of which| 00002c10 20 73 6f 63 6b 65 74 73 0d 68 61 76 65 20 52 4f | sockets.have RO| 00002c20 4d 73 20 69 6e 20 74 68 65 6d 20 62 65 74 77 65 |Ms in them betwe| 00002c30 65 6e 20 26 32 41 31 20 61 6e 64 20 26 32 42 31 |en &2A1 and &2B1| 00002c40 20 73 6f 20 3f 28 26 32 41 31 2b 20 3c 73 6f 63 | so ?(&2A1+ <soc| 00002c50 6b 65 74 20 6e 75 6d 62 65 72 20 6f 66 20 53 57 |ket number of SW| 00002c60 52 0d 73 6f 63 6b 65 74 20 77 69 74 68 20 53 6e |R.socket with Sn| 00002c70 61 70 73 68 6f 74 20 69 6e 3e 29 3d 26 38 32 20 |apshot in>)=&82 | 00002c80 28 66 6f 72 20 73 65 72 76 69 63 65 20 65 6e 74 |(for service ent| 00002c90 72 79 20 6f 6e 6c 79 29 20 77 69 6c 6c 20 61 6c |ry only) will al| 00002ca0 73 6f 20 73 77 69 74 63 68 0d 74 68 65 20 52 4f |so switch.the RO| 00002cb0 4d 20 6f 6e 2e 20 49 66 20 79 6f 75 20 73 75 62 |M on. If you sub| 00002cc0 73 74 69 74 75 65 20 74 68 65 20 26 38 32 20 66 |stitue the &82 f| 00002cd0 6f 72 20 30 20 79 6f 75 20 63 61 6e 20 73 77 69 |or 0 you can swi| 00002ce0 74 63 68 20 74 68 65 20 52 4f 4d 20 6f 66 66 2e |tch the ROM off.| 00002cf0 0d 0d 20 20 20 49 20 68 61 76 65 20 6e 6f 74 20 |.. I have not | 00002d00 62 65 65 6e 20 61 62 6c 65 20 74 6f 20 74 72 79 |been able to try| 00002d10 20 53 6e 61 70 73 68 6f 74 20 6f 6e 20 61 6e 20 | Snapshot on an | 00002d20 45 6c 65 63 74 72 6f 6e 20 62 75 74 20 74 68 65 |Electron but the| 00002d30 20 6d 69 6e 69 6d 75 6d 0d 72 65 71 75 69 72 65 | minimum.require| 00002d40 6d 65 6e 74 73 20 66 6f 72 20 69 74 20 61 72 65 |ments for it are| 00002d50 3a 20 31 36 4b 20 6f 66 20 53 57 52 2c 20 61 20 |: 16K of SWR, a | 00002d60 64 69 73 63 20 64 72 69 76 65 20 61 6e 64 20 61 |disc drive and a| 00002d70 20 36 35 32 32 20 55 73 65 72 20 56 49 41 20 66 | 6522 User VIA f| 00002d80 6f 72 0d 74 69 6d 65 72 2e 20 4f 6e 20 74 68 65 |or.timer. On the| 00002d90 20 42 42 43 20 74 68 65 20 6d 61 69 6e 20 6a 6f | BBC the main jo| 00002da0 62 20 6f 66 20 74 68 65 20 55 73 65 72 20 56 49 |b of the User VI| 00002db0 41 20 69 73 20 74 68 65 20 64 72 69 76 65 20 74 |A is the drive t| 00002dc0 68 65 20 20 70 72 69 6e 74 65 72 0d 73 6f 20 50 |he printer.so P| 00002dd0 6c 75 73 20 31 20 73 68 6f 75 6c 64 20 70 72 6f |lus 1 should pro| 00002de0 76 69 64 65 20 6f 6e 65 20 6f 66 20 74 68 65 73 |vide one of thes| 00002df0 65 20 2d 20 61 6c 74 68 6f 75 67 68 20 49 20 64 |e - although I d| 00002e00 6f 6e 27 74 20 6b 6e 6f 77 20 74 68 69 73 20 66 |on't know this f| 00002e10 6f 72 0d 63 65 72 74 61 69 6e 2e 20 57 69 74 68 |or.certain. With| 00002e20 20 74 68 65 20 42 2b 20 74 68 65 20 70 72 6f 67 | the B+ the prog| 00002e30 72 61 6d 20 77 6f 72 6b 73 20 61 73 20 6e 6f 72 |ram works as nor| 00002e40 6d 61 6c 2c 20 62 75 74 20 6f 6e 6c 79 20 6d 61 |mal, but only ma| 00002e50 69 6e 20 52 41 4d 20 69 73 0d 63 61 70 74 75 72 |in RAM is.captur| 00002e60 65 64 20 73 6f 20 77 68 65 6e 20 73 68 61 64 6f |ed so when shado| 00002e70 77 20 6d 6f 64 65 73 20 61 72 65 20 69 6e 20 75 |w modes are in u| 00002e80 73 65 20 74 68 65 20 73 63 72 65 65 6e 20 77 69 |se the screen wi| 00002e90 6c 6c 20 6e 6f 74 20 62 65 20 73 61 76 65 64 2e |ll not be saved.| 00002ea0 0d 46 6f 72 20 73 6f 6d 65 20 61 70 70 6c 69 63 |.For some applic| 00002eb0 61 74 69 6f 6e 73 20 74 68 69 73 20 77 69 6c 6c |ations this will| 00002ec0 20 6e 6f 74 20 62 65 20 61 20 68 69 6e 64 72 61 | not be a hindra| 00002ed0 6e 63 65 2e 0d 0d 20 20 54 68 65 20 4d 61 73 74 |nce... The Mast| 00002ee0 65 72 20 73 65 72 69 65 73 20 75 73 65 73 20 70 |er series uses p| 00002ef0 72 69 76 61 74 65 20 52 41 4d 20 66 6f 72 20 61 |rivate RAM for a| 00002f00 20 6c 6f 74 20 6f 66 20 6f 70 65 72 61 74 69 6f | lot of operatio| 00002f10 6e 73 20 61 6e 64 20 61 6c 6c 6f 77 69 6e 67 0d |ns and allowing.| 00002f20 50 41 47 45 20 74 6f 20 62 65 20 73 65 74 20 74 |PAGE to be set t| 00002f30 6f 20 26 45 30 30 20 77 6f 75 6c 64 20 74 68 65 |o &E00 would the| 00002f40 72 65 66 6f 72 65 20 6e 65 65 64 20 61 20 6c 61 |refore need a la| 00002f50 72 67 65 20 61 6d 6f 75 6e 74 20 6f 66 20 61 6c |rge amount of al| 00002f60 74 65 72 61 74 69 6f 6e 0d 66 6f 72 20 69 74 20 |teration.for it | 00002f70 74 6f 20 77 6f 72 6b 2e 20 54 68 65 20 73 61 6d |to work. The sam| 00002f80 65 20 70 72 69 6e 63 69 70 6c 65 73 20 61 70 70 |e principles app| 00002f90 6c 79 20 62 75 74 20 6d 6f 72 65 20 4f 53 20 77 |ly but more OS w| 00002fa0 6f 72 6b 73 70 61 63 65 20 77 69 6c 6c 20 68 61 |orkspace will ha| 00002fb0 76 65 0d 74 6f 20 62 65 20 73 68 69 66 74 65 64 |ve.to be shifted| 00002fc0 20 61 6e 64 20 6d 6f 72 65 20 74 68 61 6e 20 6f | and more than o| 00002fd0 6e 65 20 62 61 6e 6b 20 6f 66 20 53 57 52 20 6d |ne bank of SWR m| 00002fe0 61 79 20 62 65 20 6e 65 65 64 65 64 2e 0d 0d 20 |ay be needed... | 00002ff0 20 54 68 69 73 20 73 68 6f 72 74 20 70 72 6f 67 | This short prog| 00003000 72 61 6d 20 77 69 6c 6c 20 70 72 6f 76 69 64 65 |ram will provide| 00003010 20 61 20 62 61 73 69 63 20 64 65 6d 6f 6e 73 74 | a basic demonst| 00003020 72 61 74 69 6f 6e 20 6f 66 20 53 6e 61 70 73 68 |ration of Snapsh| 00003030 6f 74 2e 0d 20 20 20 20 31 30 20 52 45 4d 20 50 |ot.. 10 REM P| 00003040 72 65 70 61 72 65 20 49 6d 70 6f 73 74 65 72 0d |repare Imposter.| 00003050 20 20 20 20 32 30 20 2a 52 45 41 44 59 0d 20 20 | 20 *READY. | 00003060 20 20 33 30 20 52 45 4d 20 53 65 74 20 74 69 6d | 30 REM Set tim| 00003070 65 72 20 72 75 6e 6e 69 6e 67 0d 20 20 20 20 34 |er running. 4| 00003080 30 20 2a 57 41 49 54 20 31 0d 20 20 20 20 35 30 |0 *WAIT 1. 50| 00003090 20 52 45 4d 20 53 65 74 20 61 20 42 41 53 49 43 | REM Set a BASIC| 000030a0 20 6c 6f 6f 70 20 72 75 6e 6e 69 6e 67 0d 20 20 | loop running. | 000030b0 20 20 36 30 20 46 4f 52 20 78 3d 30 20 54 4f 20 | 60 FOR x=0 TO | 000030c0 31 34 30 30 0d 20 20 20 20 37 30 20 50 52 49 4e |1400. 70 PRIN| 000030d0 54 20 78 0d 20 20 20 20 38 30 20 4e 45 58 54 0d |T x. 80 NEXT.| 000030e0 20 20 20 20 39 30 20 2a 52 45 53 54 4f 52 45 0d | 90 *RESTORE.| 000030f0 20 20 20 20 31 30 30 20 52 45 4d 20 54 68 65 20 | 100 REM The | 00003100 70 72 6f 67 72 61 6d 20 77 69 6c 6c 20 6e 65 76 |program will nev| 00003110 65 72 20 72 65 61 63 68 20 68 65 72 65 21 0d 0d |er reach here!..| 00003120 20 20 53 6f 6d 65 74 69 6d 65 20 64 75 72 69 6e | Sometime durin| 00003130 67 20 74 68 65 20 72 75 6e 6e 69 6e 67 20 6f 66 |g the running of| 00003140 20 74 68 65 20 6c 6f 6f 70 20 61 20 53 6e 61 70 | the loop a Snap| 00003150 73 68 6f 74 20 77 69 6c 6c 20 62 65 20 74 61 6b |shot will be tak| 00003160 65 6e 2e 20 54 68 65 0d 6c 6f 6f 70 20 77 69 6c |en. The.loop wil| 00003170 6c 20 74 68 65 6e 20 63 6f 6e 74 69 6e 75 65 20 |l then continue | 00003180 72 75 6e 6e 69 6e 67 2e 20 57 68 65 6e 20 74 68 |running. When th| 00003190 65 20 6c 6f 6f 70 20 69 73 20 74 65 72 6d 69 6e |e loop is termin| 000031a0 61 74 65 64 20 74 68 65 20 63 6f 6d 70 75 74 65 |ated the compute| 000031b0 72 0d 77 69 6c 6c 20 62 65 20 72 65 73 74 6f 72 |r.will be restor| 000031c0 65 64 20 74 6f 20 74 68 65 20 73 74 61 74 65 20 |ed to the state | 000031d0 69 74 20 77 61 73 20 69 6e 20 77 68 69 6c 65 20 |it was in while | 000031e0 74 68 65 20 6c 6f 6f 70 20 77 61 73 20 72 75 6e |the loop was run| 000031f0 6e 69 6e 67 2c 20 74 68 65 0d 6c 6f 6f 70 20 77 |ning, the.loop w| 00003200 69 6c 6c 20 74 65 72 6d 69 6e 61 74 65 20 61 67 |ill terminate ag| 00003210 61 69 6e 20 61 6e 64 20 74 68 65 20 63 6f 6d 70 |ain and the comp| 00003220 75 74 65 72 20 77 69 6c 6c 20 62 65 20 72 65 73 |uter will be res| 00003230 74 6f 72 65 64 20 61 67 61 69 6e 2e 2e 2e 2e 20 |tored again.... | 00003240 61 6e 64 0d 73 6f 20 6f 6e 2e 20 54 68 69 73 20 |and.so on. This | 00003250 77 69 6c 6c 20 63 6f 6e 74 69 6e 75 65 20 75 6e |will continue un| 00003260 74 69 6c 20 74 68 65 20 75 73 65 72 20 73 74 6f |til the user sto| 00003270 70 73 20 69 74 20 62 79 20 70 72 65 73 73 69 6e |ps it by pressin| 00003280 67 20 45 53 43 41 50 45 20 6f 72 0d 42 52 45 41 |g ESCAPE or.BREA| 00003290 4b 2e 0d 0d 20 20 4e 6f 74 65 20 74 68 61 74 20 |K... Note that | 000032a0 77 69 74 68 20 53 6e 61 70 73 68 6f 74 20 79 6f |with Snapshot yo| 000032b0 75 20 61 72 65 20 6e 6f 74 20 6c 69 6d 69 74 65 |u are not limite| 000032c0 64 20 74 6f 20 75 73 69 6e 67 20 69 74 20 69 6e |d to using it in| 000032d0 20 61 20 42 41 53 49 43 0d 70 72 6f 67 72 61 6d | a BASIC.program| 000032e0 6d 69 6e 67 20 65 6e 76 69 72 6f 6d 65 6e 74 2e |ming enviroment.| 000032f0 20 53 6e 61 70 73 68 6f 74 73 20 63 61 6e 20 62 | Snapshots can b| 00003300 65 20 74 61 6b 65 6e 20 66 72 6f 6d 20 77 69 74 |e taken from wit| 00003310 68 69 6e 20 6f 74 68 65 72 20 6c 61 6e 67 75 61 |hin other langua| 00003320 67 65 0d 52 4f 4d 73 2e 0d |ge.ROMs..| 00003329