P' will appear on your screen. You have to now enter a start address and an ending address followed by the byte that you wish to zap memory with. As an example press 'Z' and get the 'ZAP' prompt onto your screen. Now enter $0600 $0800 $FF. This will fill memory from $0600 to $0800 with the value of $FF. r a start address and an ending address followed by the byte that you wish to zap memory with. As an example press 'Z' and get the 'ZAP' prompt onto your screen. Now enter $0600 $0800 $FF. This will fill mam to disk. When the ORACLE loads a tape that will operate in the disk basic environment, then the program loads into memory, the name is printed on the screen and when loading is complete, is saved to disk using the same name as it was recorded on the tape. U - Upper ram transfer. Pressing the 'U' key will cause the ORACLE to relocate itself and its screen into upper memory. This command supports the 64k nor-gate modification, and SPECTRAL ASSOCIATES 'Supercharger'. When this command is initiated, the message 'TRANSFERING ROM TO RAM' is displayed, and a check is made to see if your computer can support 64k. If your computer is not able to access the full 64k then an error message is displayed and command is returned to the main command mode. The ORACLE will move rom to ram, and then move itself to $DE00 and moves its screen to $DA00. The stack is just before $DE00 and everything else is as it was before you moved the program. This ability of the ORACLE allows you to leave all lower 32k of ram, including the standard screen alone allowing the target program total use of memory. If this command is invoked when it is in ram then the message 'THE ORACLE II IS IN RAM' will appear, and the command is aborted. V - Video select. 'V' will get the response 'GRAPHIC MODE'. You can now enter one of the graphic modes as listed in the following list. These modes as listed are the same as those supported by basic and extended basic and use the same mode names. The ORACLE also supports those unsupported modes. The modes supported are: SG4 - 64 * 32 screen - 8 colors SG6 - 64 * 48 screen - 4 colors SG8 - 64 * 64 screen - 8 colors SG12 - 64 * 96 screen - 8 color SG24 - 64 * 192 screen - 8 colors G1C - 64 * 64 screen - 4 colors G1R - 128 * 64 screen - 2 colors G2C - 128 * 64 screen - 4 colors G2R - 128 * 96 screen - 2 colors G3C - 128 * 96 screen - 4 colors G3R - 128 * 192 screen - 2 colors G6C - 128 * 192 screen - 4 colors G6R - 256 * 192 screen - 2 colors After entry of a mode, command will return to the main command mode. When the 'CLEAR' key is pressed, the graphic mode selected with this 'V' command will be displayed. W - Write. Typing 'W' will get the response 'WRITE'. You should now enter a name, a starting address, an ending address and a execution address. All addresses are expected in hexadecimal format. The name must be no more than 8 characters in length. The disk version of the ORACLE will now prompt for 'DISK OR TAPE'.Enter either a 'D' or a 'T' and the program will be written to the media specified. The program saved can be loaded with the with the 'LOADM' or 'CLOADM' command from basic. X - Monitor screen select. The 'X' command allows you to move the ORACLE screen anywhere in memory. This feature is to ensure that there is no conflict between the target screen and the monitor screen. To utilize this feature you should first ascertain where in memory the target program is and where the target program puts its screen An example would be a program that loads into memory from $1000 to $2000. Its screen starts at $0400 and is in graphic mode SG4, which means that it takes 512 bytes for screen memory. With the ORACLE you should set the graphic screen value to $0400 with the 'P' command. The graphic mode should be set to SG4 with the 'V' command. You should now use the 'X' command to reset the monitor screen. Press the 'X' key and the response will be 'PAGE SELECT=" followed by the address that the graphic page starts, in hexadecimal format. To change this address, press the 'C' key and the message 'CHANGE PAGE SELECT' will be displayed. You should now enter the address that you want the monitor screen to occupy. With the above example, you could use $0600 which would put the screen above the target program. After the address is entered, you will get the the original message shown when you entered the 'X' command, showing the new page address you entered. To leave the command, press the 'BREAK' key and command will return to the main command mode, and the screen will be at the value entered. When you use the 'G'o command, or are stepping the program, the screen is changed to the one selected with the 'P' command. When you are returned to the ORACLE II, the screen selected with the 'X' command is selected as the active screen. Z - Zap memory. 'Z' is the command used to invoke the 'Z'ap command. When 'Z' is pressed, the message 'ZAure, you will need to enter the 'A'lter mode and then enter an address of 2BFA for cassette versions, and 2CCB for disk versions. Cassette versions should show a value of $04 and disk versions $0A. Change this value to $00 and the ORACLE II will load in anything. The above addresses rely on the ORACLE II being loaded at $2000, and if loaded elsewhere you will have to offset the address. M - Move memory. 'M' will respond with 'MOVE'. Enter a start address, an ending address, and a new start address. Memory can be moved either up or down in memory and can be moved by only 1 space if necessary. If you use the 'M'ove command to move the ORACLE II be aware that if you overwrite the active program, you could lock up your computer. P - Page select (Video screen location.) 'P' will respond with the message 'PAGE SELECT' followed by the address of the current memory location in the upper left corner of the video screen. If the address is the screen location you want, then just press 'BREAK', and command will return to the command mode. If you want to change the location of the graphic screen, then press the 'C' key, and the message displayed will change to 'CHANGE PAGE SELECT'. You should now enter the 4 digit hexadecimal address that you want the graphic screen to start. Upon entry of the address, the message 'PAGE SELECT' will again appear with the new address, and if this is as desired, then 'BREAK' will return you to the command mode. The reason for the 'P' and the 'X' commands are that your monitor screen can be located or relocated on any 512 byte page in memory. When the ORACLE is initially started, the ORACLE monitor screen is located on the page starting at address $0400. This address will interfere with quite a few programs that you may be stepping or debugging. That is the target program may also be using the screen, starting at address $0400. If you had no control of where your screen is, and you reenter the ORACLE after running the target program, the monitor screen would overwrite the screen that the target program had put there. This is avoided by allowing you to define where in memory you want the monitor screen to start, and where the target screen is. Q - Quit. Pressing the 'Q' key will allow you to enter basic. If you desire to reenter the ORACLE then all you need to do is type 'EXEC'. If you have loaded another program into memory, then it may also be necessary to input the starting address of the ORACLE II as well. If you have moved the ORACLE , then make a note as to the first byte of where the ORACLE is . This is the execution address of the ORACLE. R - Register change. Pressing the 'R' key will respond with 'CHANGE'. You can now enter one of the registers (X Y U S A B P D C), followed by either a 2 or 4 digit hexadecimal number. The ORACLE will only allow the correct input. After the data is entered, the register on your screen will update to the specified value, and return you to the message 'CHANGE'. You can now change another register, or press the 'BREAK' key to return to the command mode. S - Search memory. 'S' will get you the prompt 'SEARCH'. You should now enter a start address and an ending address. If no address is entered the ORACLE II will default to a full memory search. The message 'DATA' will now appear. You now have a choice of either a hex or an ASCII search. If you want to search a hex string press '$' followed by the hex data. No spaces are allowed between the data and you can enter up to 10 bytes. Pressing enter will initiate the search. If you want to search an ASCII string, type the data at the 'DATA' command. If a match is found, then the screen is updated to show the location of the match, and the message 'PRESS ANY KEY TO CONTINUE' is displayed. If the 'BREAK' key is pressed, then command will return to the main command mode, and the most recent match is kept displayed on the screen. If you want to see the next match, then press any other key. Upon finding all matches, command returns to the command mode. T - Tape to disk transfer. (Disk version only) Pressing the 'T' key will start the tape to disk transfer. The ORACLE will load the first machine language program that it encounters on tape and attempt to load it into memory. If the program loads too low in ram for Disk Basic, then the message 'LOADS TOO LOW' will be displayed on your screen, and loading is aborted. The address that the program loads to will be printed in the P.C. register, allowing you to 'L'oad the program in with an offset value, and 'W'rite the progrown in the P.C. register, and if so will restore memory to its original condition and clear that address from the screen breakpoint table. If no breakpoint was set at the address shown in the P.C. register, then no action will be taken. Command automatically returns to the command mode after this command is invoked. G - Go with breakpoints. The 'G' command is used to reenter a machine language program after a breakpoint has been encountered. Go will load all the registers as they are shown on the screen, and then jump to the address shown in the P.C. registers. The differences between 'G'o and 'J'ump are that 'G'o uses the stack address shown on the screen, while 'J'ump uses the ORACLE II stack. 'G'o and 'J'ump also set up the graphic screen to the mode specified by the 'V' command at the address specified by the 'P' command. This allows you to be debugging a graphic program, and as long as the mode and graphic screen locations have been specified, will return you to the graphic screen you were watching when a breakpoint was encountered. As a precaution pressing 'G' will get the response 'GO--ARE YOU SURE(Y/N)'. Pressing any key other than 'Y' will abort the command, and return you to the command mode. H - Hexadecimal to decimal conversion. Pressing 'H' will get the response 'HEX'. Enter any 4 digit hexadecimal number, and the ORACLE will convert it to a decimal number. After a conversion you can either press the 'BREAK' key to return you to the command mode, or press any other key to do another conversion. I - Decimal to hexadecimal conversion. Pressing the 'I' key will get the response 'DECIMAL'. A decimal number of up to 5 digits can now be entered, and the ORACLE will convert it to a 4 digit hexadecimal number. If the number you enter is less than 5 digits in length, then the 'ENTER' key must be pressed to force the conversion. After the conversion, 'BREAK' will return you to the command mode, and any other key will let you proceed with another conversion. J - Jump. 'J' is the command that should be normally used to initially enter a machine language program. 'J' will respond with 'JUMP'. A 4 digit hexadecimal address should be entered, and the ORACLE will jump to the given address. All registers from the screen, except for the S.P. register are loaded into the registers, and a JSR (jump to subroutine) is performed. If a RTS (return from subroutine) is encountered, command will return to the ORACLE II command mode. This command is very useful for checking out rom or ram subroutines. As an example, press 'J'. After you get the 'JUMP' reply enter the address 'A1B1'. If the active screen is at $0400 you will get a flashing cursor on your screen. If you are not at the screen address $0400, you will not get the cursor. Now press any keyboard character and command will return to ORACLE II. All the registers are updated to the value that the subroutine, put there and the 'A' register will contain the hexadecimal value of the key you pressed. As with 'G'o, the graphic screen which is selectable with the 'P' command, and the graphic mode selected with the 'V' command become the active screen and graphic mode. L - Load - from tape or disk. Pressing 'L' will get the response 'LOAD'. You should now enter the name of the machine language program that you want to load. The extension should not be used. A 4 digit hexadecimal offset may also be entered. Disk versions will now display 'TAPE OR DISK' and you should now enter either 'T' or 'D'. Loading will now start and when loaded, the transfer address will be displayed in the P.C. register. If the program loads too low in ram for disk or tape saves, then loading will be aborted, and the starting load address will be in the P.C. register. The message 'LOAD TOO LOW' will also be printed on your screen. This feature will allow you to reload the program with an offset. If the program is not on disk, or there is a disk problem of some sort, the error message 'DISK ERROR' will be displayed, and command will return to the ORACLE II. Special note on loading programs. A lot of the available programs on the market have special preloaders, and subroutines that when loaded, take over your computer. An example of this is the program that initially loads at $009F. The routine that loads here usually loads the program and then automatically starts the program. This also causes your computer to restart the program if the reset button is pressed. The ORACLE II automatically stops you from loading programs that load into low ram. To override this feat^k*the ORACLE ^k** COMMANDS * The commands used by the the ORACLE II consist of a single letter command, uwhich is usually followed by an address or addresses. All addresses are expected to be in hexadecimal format unless stipulated otherwise in the following command list. If a command requires more than one parameter, then a space or a comma must be used to seperate them. If you make a emistake in inputting data, you may backspace to correct it. The 'ENTER' key terminates input and initiates the command. If you wish to abort a command, press 'BREAK' and command will return to the command mode. Arrow keys. Pressing either the up or down arrow keys, when in the command mode, will allow you to page through memory one page at a time. This works for both hex and ASCII displays. @- ASCII/hex toggle. Pressing the '@' key will allow the user to toggle between the ASCII display and the hex display. CLEAR - Monitor/graphics toggle. Pressing the 'CLEAR' key will allow you to toggle between the ORACLE II screen and the graphics screen. 'CLEAR' works in conjunction with the 'P' command and the 'V' command. That is, when 'CLEAR' is pressed, you will see the memory designated by the 'P' command in the graphics mode selected by the 'V' command. As an example, press 'CLEAR'. Nothing will appear to happen, but you are in the graphic mode. The reason for no apparent change, is that the ORACLE is initialized to SG4 graphics mode, and the graphic screen is set to memory page $0400. Now press the 'C' key. This is the color select key, and it will allow you to toggle between the two color sets. If everything is o.k. you should now have a red screen. Next press the 'SHIFT' and 'UP-ARROW' keys together. The screen has scrolled back a page, and you are looking at memory at $0200. Each time that a 'SHIFT/UP-ARROW' or 'SHIFT/DOWN-ARROW' is performed, the graphic screen scrolls forward or backwards 512 bytes. If you press the 'SHIFT/UP-ARROWS' again you should be at page $0000. The changing graphics block that you can see is the timer byte, that is continuously changing. A - Alter memory. Typing an 'A' will get the response 'CHANGE'. Enter a 4 character hexadecimal address and the screen display will update to display memory from the address entered. If no address is given, and only the enter key is depressed, the ORACLE II defaults to the current page on the screen. The hex byte located at the the specified address will appear in the upper left corner and will be inverted. The screen will also display 'DATA' and wait for you to enter a 2 digit hexadecimal byte. After entering the byte the memory will update the data at the memory location specified, and then move the cursor to the next byte. If you don't want to change the inverted byte you can press one of the four arrow keys to move the cursor around in memory. To abort back to the command mode, press the 'BREAK' key. B - Breakpoint setting. Pressing the 'B' key will get the response 'BREAKPOINT'. You may now enter a 4 digit hexadecimal address where you wish to set a breakpoint. Breakpoints cannot be set in rom. The ORACLE II will set up a SWI ($3F) at the address specified, and store the address on your screen at one of the breakpoint registers. This will allow you to see where your breakpoints are set. The user is allowed 3 breakpoints in all. To clear the breakpoints, see the 'C' and 'F' commands. When a breakpoint is encountered by the ORACLE II, the registers are updated to the value when the breakpoint was encountered. The address in the P.C. register is the address that the SWI(3F) was encountered. C - Clear breakpoints. Pressing the 'C' key will cause the ORACLE II to clear all breakpoints set by the ORACLE II, and restore memory back to its original condition. The breakpoint table is also cleared. D - Display memory. Pressing the 'D' key will get the response 'DISPLAY'. After you enter a 4 digit hexadecimal address, the screen will display the memory at the specified address. F - Fix breakpoint. The 'F' command is used to remove only the breakpoint at the address shown in the P.C. register. This is not a necessary move because when you 'GO' to an address the ORACLE checks to see if a breakpoint is set there, and if so restores it back to its original condition. This command is most useful for clearing only one breakpoint after it has been encountered in a program, and setting up another breakpoint somewhere else in your program. When 'F' is pressed the ORACLE checks to see if a breakpoint is set at the address sh 03M'4  3H7?ĭ40:5 Z&Q3mA'BoA'?&~202040oo 0 ̦&0Doo0(m' *H60 .+o & ^' '@'ȁC'D'HF'pH'_I'S' TR'A'X'Z'  '܁V'P'0+ 4&B'ӁG'WJ'L' -M'؁W' T' E'U'Q&Ʒ~O&910 r1l1f10 l\0 L14R1L w'D% 0Z&9"4"9 N' ' 07C' _'['9"'0 J L0 ;1$0$XP4섷큷ތ%O5&E0 ņm3y 0&%~0 #1$e0&91 4 1)0 lO5 43 {0 u1' N'.m'`Z&5Z'41( 9"` ߆. '0 Φ&`9 &@ ā&4 1 5 &=1>@@ b1"40 15Z&섃@94DDDD 59 #79p91 10 l411'`5Z4&51% 1 m1B0 81"21 X10 #1 G1a0 fxs`Z&0e`1 1S`0H`0 H%4m Z'0 945 0 & .M'1=<40 ^'1@ 190 m'O 90 ~7M'kS'1G&0 'U'0 򦠁C'R&A01 M90 JG&(q'r'''0 HHHH4 0  0 j9;0?4_'^': '6'2 '.&& ]'Z` ց 'A%Z#@\%5m*4@3 m5@+ 0 2JM'+Z'Z4 4\HHHH4ীZ' 5]' ҆9A%F# p%y"9 9940 K04,적`'l&`'l'55O 31  31 0 4pG5ݦ4@0'Z&0'Z& 1"0 1"001B 59^' '' &0 0 0 0 0ZM'0$&9섣Ħ4&9 0leM'30ʡ'& : M'= O1 ?4_`0&90 !0 Ħ'L'&0 0 F%1 O_><* 0 0I1%0 m.0&0FM'03y}p% 턦L 3B1!턦Ā&1;4 !&334@&5 Z&ލ` 0X0=4 :0 ooo"Ky"'45J' 3BĀ&؆}yt 5''B913&'3AZ&94@3>4@0_M'񦤧?G 13R0[453AZ'4& 5ħO_9390[3A'ħZ&0 901#f'Y&ꍛT0 9m'?:::::3 1&0m'+0 Z&1 m!'"P;1'90 iM'0&90 EM& 0t_JZ0{M'04 d&t_45\ '`&1704'%3_4@c'6e'1&-Z&54`0z04a''n5`5 5 # 4 Z&5 10&''3D'T&D90 Z&M'ߦ`' Z#@Z&1?90ԍ2M'3A4&32Z&f'7l5090  L 'QZ&BIN94V5O)섍1?&O_ - R90 ` %+40 ڟ~|&⦄&4050453\ā ' &Z&90M'040m&d'l3#B1 %-~6| &~|*B3V Z&~2d14 20t 5 0&Z& Y1Bܝ~-F14`@Z&554TM50OJ4B!SiB$lNaaM'BbD$'=";@^nL&ba5&&O5BĄ@9BĊmB+930!%00$+#@M' X&\ ^_ [ ] 0 \@0&9hCi`qyxsBY JASON R WARDjjjjjjjjjjjjjj`ORACLE II`jj`DISK`Vqnp`jCABDXYUPSX Y U PC S A BDP CC CC BK BK BKXXXX XXXX XXXXEFHINZVCORACLE64 ?">'d DISPLAYCHANGEDATAMOVEZAPJUMPHEXDECIMALBREAKPOINTSEARCHWRITEGRAPHIC MODECHANGE PAGE SELECTTRANSFER ROM TO RAMGOmmARE YOU SURE`hYmNijjPRINTER IS OFFjjDISASSEMBLECOMMANDPRESS ANY KEY TO CONTINUEjjjDISK ERRORjjjTHE ORACLE IS IN RAMhTiAPE OR hDiISKPROGRAM LOADS TOO LOW IN RAMLOADINGjjjINPUT ERRORjjjLOADtvx$qrsva B`2`2<`2T`2`29`2 Q`2 !`2 *`2 o`2`2E``HC" C"``'`l`06XR16YR26SR36UR4KS5NS6KU7NU9Z`:`;W`=?`?i`@BACAD** & '40 40& 500& }&<'< <<Q&50 &m>'o>50>x 1%9"0 ' Z'D ؁\& mH'OH8 w''\'ށ' 'JJ'/N&=U&H=E& O3ĆU L&o1 ^>0?3CZ&0'' ' ' &{00 01 'O18 'O<: 'J316 1m1' *3D0m5' o53&> 1#41l 01jo-'O46 3GM+j'' '0'ց@'''9GH$D]#> $''ȁ ''' & D ArB 4`' '@' S Y X U_5'^9?3态#53b&4T$l&5J' l& SN U`[ 4}l5p'!P'&DDDDPXXXX P'm&1'"' 1"Z'!  l2u= A&C D'&P9TTTT%40:섧5'"'$'&'(&1"9    4cd5'dlDP1ߦ10m'/3'0'1)D$4Į:3<65~1 9 d9쁍:ċ [9] l码'''mm_^'   _k9A'0/4__0X'Y'U'4 1h*P'!J'J'!J'J'J'3J''JJ'MJ'-5 ll jj5m^'4{bOb ob !b ̈́'4Ob5 Ȧ!'҄ƀ4 dD$dll4lPCRm^'OB4m^'45w4A& 4샊m^' b14 5lŀ&O4 mZ4OaJ l_^'4& d5 544m \Ħ+ ƀ4md +4d5 4m̀ ">lPCR