Home
A USER GUIDE - Dilwyn Jones Sinclair QL Pages
Contents
1. COMPUTER ONE MONITOR for the Sinclair QL computer A USER GUIDE Copyright Computer One Limited 1985 No part of this manual may be adapted or reproduced in any form without the prior written approval of Computer One Limited All the information is given in good faith Computer One can accept no responsibility for any loss or damage arising from the information contained in this manual or from the use of this product Computer One reserves the right to alter the specification of the product without warning Computer One welcomes ideas and comments These and any bug reports or further enquiries should be sent on the report form at the back of this manual to Technical Enquiries Computer One Lid Science Park Milton Road Cambridge CB4 4BH Siactair amp QL are registered Trade Marks of Sinclair Research Lad Introduction Chapter Chapter Chapter 1 fata l l J 22 3 3 1 2 3 1 2 3 1 2 4 25 2 2 2 2 3 3 1 3 2 34 3 4 1 3 4 2 3 43 3 4 4 3 4 5 3 4 6 3 4 7 3 4 8 3 4 9 TABLE OF CONTENTS Page 1 Page 2 Getting started Backing up Overview Loading and running Using the monitor Command format Channels Parameters Value specifications Address specifications Ambiguities in parameters Flags Example program Page 5 The Cominands Examination Disassembling code i 2 Dumping memory 3 Displaying registers Modification Alter
2. at this address i gt z break Oc Pal gl If you now type i a 3 breaks i all current break points are displayed in window 0 Now type i go il The program will stop running when the breakpoint is reached If you now issue the regs command all registers are displayed You can see that di now has the value 50000 C350 Although we won t trace this piece of code again we can remove the break point by typing i nobreak Oc a a If you disassemble the piece of code from the break point by typing i A i dis Oc y you can see that the code sets up some registers and uses a trap call This trap returns the version of the QDOS operating system in d1 We now want to execute the next iastraction To do this we can enter N i trace 0c 1 or just trace since the PC is at the correct instruction If you now examine the registers you will see that dO has the value 1 The value should be 0 if the trap is to work correctly To change the value of a register or indeed of any memory location you can use the poke or command Both commands are the same but poke uses a default length of a byte uses a default length of a long word and tedisplays the registers The formats of the command arc pokeL_ lt size gt lt addr range gt lt value gt _ lt size gt lt addr range gt lt vatue gt size gt b or w or l The command fills all bytes words or longwords in the specified address range with the given value
3. Corrective action ensure that the first argument for divs or divu is non test first if necessary zero Messages CHK Instruction Trap Unrecognised Trap Unimplemerited Opcode Reasons other events which occur in instruction specific circumstances Only the sophisticated user is likely to meet these no doubt they ean cope it is possible that these will occur as an aiternative to egal Instruction if something has gone Wrong causing execution to continue at the wrong address for example when the correct return address for an its instruction is not on top of the stack 30 i has some NB Unimplemented opcodes may not always be spotted on ha code on top of the relevant vectors Any of these events in 4 Message Unexpected Trace Tap e Reason the trace bit in the status register has been set but not by the trac 7 command i 7 3 6 CHANNEL MANAGEMENT H imila s but not 4 c1 ds are similar to superBASIC s y dental By dolar Mhase comman Iways refer to the last channel referenced 3 identical By defauit these commands always eg a al regs i cls i j ifie cl Is can be used of course as att i ister window 2 Specific channel e wiih al comments To change the default channel for eet use the i comm i equi and a full stop command name followed by the required channel ai i 4 Example i dump 3 dump output defaults to channel 3 4 fi Command cls chan i Default channel last channe
4. dump 0 8 noasc When you are using the dump dis or trace commands you can use the down arrow to repeat the last command from the tast used address Thus to disassemble a large number of instructions from the start of the program usc dis 0 8 followed by repeated presses of the down arrow The up arrow key can be used to disassemble the few instructions before the current one or to dump the piece of memory just before ihe current address With the trace command ihe up arrow key will skip the next instruction ie it will not be executed We can now start tracing our job using the trace command This command has a simliar format to dump and dis trace C channet Jifaddress 1 inesICCl Iflags the default lines for this command is one allowing single step tracing easily Enter the command trace or trace 0 1 The first instruction has now been executed and the disassembled code of the next one has been displayed Note that a dump of the registers has automatically been done You can now use the down arrow to trace through single instructions The first few instructions of this program make up a loop which exits when di reaches 50000 and since we don t want to single step through this 12 we can set a break point at the first instruction past the end of the loop The go command can then be used to execute until a break point or error conditions is encountered The first instruction past the loop is SOC bp so sct a break point
5. gt address generated yyyy instruction in Instruction Register The program counter may not be at the start of an instruction this is why the value in the instruction register is also quoted If tracing is in progress then the offending instruction should be in view y otherwise to find the instruction it is suggested that you issue the ct dis 10 pe 29 Senet a f 4 word and lon address Hence igword data addresses must be at a word aligned even move 1 1 a0 Move 1 a0 d0 move label a3 label not word aligned will cause this exception Corrective action alter the Contents of the offending address register or rewrite the program If you alter the register to its correct value using the poke or command you can set the Program counter to the instruction that cause the error and contiaue execution Message Privilege Violation Reason certain instruction can only be executed in supervisor made c g andi w SDFFF SR or rte Corrective action set the Supervisor mode bit i ia the status register or add the instruction trap 0 to your program the QDOS call to enter supervisor mode Message Illegal Instruction Reason an unrecognised opcode has been met Suspect An rts may cause this or other errors mismanaged its disassembly is likely to be if the stack has been Message Division by Zero Reason something like divs d1 d0 has occurred when d1 contains zero
6. G084 bp 1 Note that these flags do not apply when tracing in ROM so if you decide to trace a QDOS vector using the jsr instruction then all traps used by this subroutine will be traced If you start tracing a subroutine and wish to skip the rest you can easily set a breakpoint assuming you are not in ROM by issuing the commands break a7 set break point at routine return address go continue until break point 3 5 6 Program Errors The 68008 is capable of gencrating certain sorts of exception error some of which QDOS allows the user to trap The exceptions can be annoying when developing machine code on the QL as normally the program tends to crash slowing down the OL considerably or stopping the machine altogether The monitor will report the exception which has occurred in order to allow you ta correct it and continue execution The monitor can detect errors on any jobs that have been loaded and started using the monitor or have beea EXECed since the monitor was started Thus you may get errors on jobs other than the current one The following are messages which will be issued with an explanation of the reasons why the exception may have occurred and possible corrective action The format of the message output on a program error is shown below using an illegal instruction error as the example error message Message Illegal instruction JB lt job id gt PC lt address gt SR lt status gt JB lt job id gt
7. gt the job id of the job in which the error occurred This can be any QDOS job which has been Started or examined using the monitor and need not be the current job PC lt address gt gt value of program counter when exception occurred Note that in all exceptions and the register dump the sadarose is quoted relative to bp if its value is between the contents of bp and tp unless g permanently set off SR lt status gt gt valuc of status register when the exception occurred in hex plus flag values its indica i he interrupt mask a second nibbic 4 bits indicates the setting oftl v tnd gould normally be 0 Qi that the first nibble indicates the setting of the trace and supervisor mode bits B trace super A both If an error occurs in a job that is not being traced the job is suspended and the is e regi alues of the job when job header is set to reflect the register vi h er r c You could then use the job command to make this job the current monitor job since the error gives the job id so that it can be exmained a es Address Trap Error Message FC xxx XY d lt address gt IR yyyy eee v a 00i gt user data memory access Me Om user program memory Aces 101 gt supervisor data memory access 110 gt supervisor program memory access 111 gt interrupt acknowledge X gt instruction in progress E gt exception processing Y R gt read cycle aborted W gt write cycle aborted taddress
8. move lt range gt lt address gt compare lt range gt lt address gt breaks lt address gt nobreak s lt address gt watchlesi _ lt size gt IL lt range gt lt value gt nowatchLesI _ lt size gt lt range gt suspend lt job id gt release cgjob id gt jor it lt value priority lt job id gt kill lt job id gt window cls open lt device gt close ink C lt colour gt paper E lt colour gt strip lt cotour gt border lt colour gt mode lt mode gt cloneEs lt command gt channels nochannel lt channel id gt heap lt address gt lt vatue gt noheap lt address gt eval lt value gt C C lt base gt flags nol lt flag gt Default find_b Poke_b lt range gt 0 l lt value gt 0 regs queue lt Last address gt lt last Lines gt watch_l nowatch_l priority 20 lt current job gt window lt Last chan gt ink lt Last chan gt 7 paper lt Last chan gt 0 strip lt Last chan gt 2 border lt Last chan gt 2 eval bp 10 37 sutri gess 4 1 1 Parameter Syntax The consteucts used above are defined as follows lt value gt lt hex_number gt amp lt decimal Aumber gt fsoctat_number gt 1 Asbinary_number gt lt string gt lt string gt lt value gt lt value gt l lt vatue gt lt value gt lt value gt lt value gt lt value gt lt value gt lt yalue gt lt value gt lt vaiue gt
9. Since we want to poke d0 we shall use d0 0 We can now continue tracing The next instruction to be traced is the trap When tracing a trap is usually treated by the monitor as a single instruction so that you don t have to trace through the whole trap This means that after tracing the trap instruction the next one will be the one after the trap in the oser code However if you do want to trace through traps you can use the trap flag when issuing the trace command The same applics to subroutines called using jst or bsr The jsr flag can be uscd io trace through subroutines The default for subroutine tracing is on We shall assume that we are not tracing the trap so just press the down arrow or use the trace command to continue tracing Register d1 shouid now contain the four ascii characters giving the operating system version for example 1 02 Hf you now press the down arrow key twice morc the tast two instructions of the program will put the value in d2 into the arca of memory just beyond the end of the code To cxamine this area of memory usc the dump command dump a0 7 The first 4 bytes displayed will give the operating system version number Having traced through this small program we can now kill the job using the monitor kill command kill lt job id gt The ob id gt can be obtained by using the jobs command The current job is the one whose base is given in BP relative form Another way of killing the
10. a range of memory is to be set then the address increments by 1 2 or 4 or the length of a string if a string is supplied until the second address is reached Remember that poking memory must be done with great care Examples poke 81 46 set location 8 I bp to 46 byte value poke 200 300 clear all locations from 200 bp to 2FF bp poke_w 20000 21000 23 set all words from 20000 to 20FFE to 0023 poke_1 8 a6 1 set the long word at address 8 contents of register a6 to SOUO00001 poke 0 10 0 set 16 bytes to 0 starting at O BP poke 20 hello poke the string at S20 BP is an alternative to poke which is more likely to be used on registers Command E_ lt size gt lt addr range gt value Default size longword Default value O Flags no regs Action Same as poke except that a register dump is done automatically at the end of the command Note that this can be used to set a range of registers to the given value Examples pc ao set PC register to start of current job d 3456 set register d6 to 00003456 a2 a5 bp set a2 a3 a4 to the job base register d0 20 clear all data registers 8 longwords 4 6 a6 d2 w clear word at address 6 a6 d2 w 0dD 23 set longword at 0d0 BP to 00000023 3 2 2 Moving memory Command move lt addr range gt lt address gt Action copies a block of memory byte by byte from the range specified to the caddress gt specified 18 Examples
11. before lt On executing instruction job commands which displays address in form Off output addresses xxaxtjob not xxxx bp Where job is base of current job See section 3 4 1 for use of fiag 10 Examples dump 28000 nohex Memory dump in ASCII form only regs 3 rn nope Display registers including user registers no PC or BP register trace notrap nojsr Treat execution of traps and jsrs as single instructions 2 5 EXAMPLE PROGRAM This section gives an informal introduction to the basic commands of the monitor Chapter three gives a detailed description of all the commands The system microdrive cartridge has two files example_asm and example_cde We shall use the _cde file as an example program It increments register dU 50000 times and then makes a call to one of the QDOS traps to get the version of the operating sistem The program has an error in it which we can fix while monitoring it in this example it is assumed that the monitor cartridge is in ticrodrive one First start up the monitor EXEC mdvi_c1mon and press CTRL C to get the flashing cursor in the monitor window with CIMON gt prompt To load the program into the monitor use the load command load mdv1_example_cde When the monitor has loaded this file it will have set up a job for it but the job will not have started to execute If you now type in the command jobs with no parameters information about the current jobs on the QL is di
12. channel id has a similar format and identifies a channel Note that if the id starts with a hex letter it must be preceded by a zero or 2 3 1 Value Specifications Values can be specificaed as numbers any base or combinations of numbers using the operatiors 1 amp lt gt and A value can also be an ASCII string the contents of an addrass or the value of an address There is a special null operator which can be used to resolve ambiguities See section 2 3 3 The syntax for a value can be formally specified as follows a vertical bar indicates alternative selection i lt hex number gt amp lt decimal number gt i A lt octal number gt lt binary number gt lt string gt lt string gt lt value gt lt value gt lt value gt lt value gt t lt value gt I lt value gt lt value gt lt value gt lt value gt lt value gt lt value gt lt value gt lt value gt lt valuer amp lt value gt lt value gt lt lt value gt lt value gt gt lt value gt lt value gt lt value gt lt base n gt 4 lt n ary number gt ee p lt address gt a lt address gt lt value gt The operators above which are not self explanatory are i bit or amp bit and lt shift left gt shift right not A mod allows the given value to be specified in the given base A number defaults to the hex value if it is not preceded
13. declared at the start of the file containing the code To output the code to a file in this form you should open a file as one of the monitor channels say 5 and disassembie to this file as follows dis 45 0 lt any number gt nope nohex job Repeated presses of the down arrow key would then continue to output cade to the given channel Examples dis 12 disassemble window height lines from 12 bp dis 0 100 6 nohex disassemble 6 lines from absolute address 100 outputting to channel O with no hex code dis a7 disassemble code whose address is on top of the stack Useful if the value on top of the stack is a return address dis a7 same as above example 3 1 2 Displaying memory Command dump C chanl J C lt address gt JC lt lines gt EC flags Default Channel 0 Default Address 0 BP or address after last code dumped Default Lines last dines specified or if dines is O the height of the current window or 8 if output is not to a window Flags no hex no ase no rel no pe no job Once this command has been issued the up arrow and down arrow keys without being followed by ENTER can be used to scan upwards and downwards through memory rapidly Action an area of memory is dumped in the normally accepted manner i c address hex contents ascii contents Lf the rel flag is off the address is absolute if the hex flag is of the hex dump is not output if the asc flag is olf the a
14. job is to have code in the program to explicitly kill a job You would normally have code 10 do this if the program you are developing is eventually going to be a QDOS job Although this is a fairly trivial example it helps to illustrate some of the more commeniy used commands in the monitor Chapter three contains a detailed description of these commands and all the other monitor commands including memory searching memory moving watching for particular events job control commands and channel management commands CHAPTER THREE o THE MONITOR COMMANDS This chapter gives the full dscription of each of the monitor commands giving the full syntax the default output channel the relevant flags and the default values of parameters not entered The flags cannot be abbreviated and are switched off by preceding the name with no AN flags except trap rn and job are on at system start up Note that the default channel for any command can be altered by issuing the command name followed by a channel number and full stop Several commands can be cntered in a single line by separating them with a colon i Example reg 0 set default register dump to channel 0 3 1 EXAMINATION 3 1 1 Disassembling code Command dis chan J lt address gt JL lt lines gt CL 3 flags Default Channel 3 Default Address current PC in job header or address after last code disassembied Default Lines l
15. manual probably gives the impression of a set of actual defauit channels for cach conimand It is more correct to say that a logical channel is attached to each comman and that an actual channel is then associated with cach logicai channel Logical Channet Actual channel on startup dast_chan gt o lt dump_chan gt a lt regs_chan gt 2 dis_chan gt 3 Most commands use dump_chan To alter the logical to actual relationship issue any command directed to the logical channel with a trailing full stop e g dis 0 or help 3 these would force even implicit references to the relevant windows to alter ie the implicit disassembly within a trace would now be directed to channel 0 EE axes ER its eR LR ne te eS 4 3 FLAGS oo i These can be set globally using the flags command or locally on the command itsclf Flag names cannot be abbreviated ambiguity with parameters would occur if this was allowed Flag Commands Controls rel any command which output of address in bp relative form ourputs addresses job ditto output addresses as xxxx job not xxxx bp pe dis dump regs output of location program counter i hex dis dump output of code hex i ase dump output of ascii 7 an regs output of address registers dn regs output of data registers tn regs output of user registers normally off dis trace implicit disassembly PH regs trace Ioad job implicit register dump LGW trap trace skip tracing of tra
16. set i to zero but the job is aot suspended if you wish to start the job without tracing it then use the go command N B do not start jobs which are only i data i Examples load mdv1_myprog_exe load this file and set it up as a job load flp2_my_dat r0 load this file into memory at the specified address In this last examp e you should ensure that the memory at the address specified is available probably by using the heap command and using the address returned as the load address Loading a file at an absolute address should only be used for data fites since the monitor will not sct up a job for it 20 3 4 2 Queue tracing Command queue chan 1 lt address gt C lt Llines gt el 0 No default addres except to continue tracing the remainder of Default cha Default addre a queue Default lines the previous Hines value or the height of the window if no previous dines value 8 lines if output not to window Action traces round a queuc of addresses outputing 8 bytes of memory for each address in the qucuc The listing stops if the queue wraps round on itself i e address is met again if 0 is encountered or if the number of lines specified have been output the rest of the queue can be traced by re issuing the queuc command 3 4 3 Leaving the moniter Command quit Action kills the monitor job plus any clones started with the clone command sce section 3 8 Any j
17. ace the Master copy in microdrive 2 the right hand side drive x memory as a job for your program or data Once loaded BP TP A7 the stack pointer PC ete are set to sensible values to allow you to start analysing 2 Place a blank cartridge in microdrive 1 castb your program and the memory which it affects 3 Enter the following command aan v The monitor can run severai jobs simultancously Only the current monitor LRUN mdv2_clone lt ENTER gt job would normally be traced but any other job loaded and started from the monitor will be suspended by the monitor whenever a breakpoint or program 4 The QL will respond with various instructions to name the new cartridge and error in that job occurs The monitor can then be used to examine the job initiate the copying MAKE SURE THE MASTER IS IN DRIVE 2 including the registers which are set to their values when the error occurred i 5 The cioned system may be used as soon as the microdrives have stopped running ue P 1 3 LOADING AND RUNNING In this and all subsequent sections it will be assumed that the program is in microdrive 1 It could equally well be stored on any device c g floppy disks and may be referred to as say flp1_cl mon in such cases Repeat the procedure with another cartridge and store the master and one of the copies in a safe place Use the remaining copy as your working master only use the others in an emergency Please note that you m
18. ast dines specified or if dines is O the height of the current window or 8 if output is not to a window Flags nojhex no pe no rel no job Once this command has been issued the up arrow and down arrow keys without being followed by ENTER can be used to scan upwards and downwards through code rapidly Action an arca of memory from the given or default address is disassembled in standard Mctorola format Bud code is disassembled as far as possible or ends with if found to be meaningicss The number of instructions disassembled is given by the number of incs It is advisable to use a Hines 15 vaiue which wil allow all the disassembly to fit into a window The output for cach instruction shows the address in BP relative format unless the rel flag is off or the address lies outside the current job i e outside the range BP TP the hex code for the instruction unless the hex flag is off and the disassembicd code If the pe flag is off he address is not output Note that instructions are always on word boundaries and that code disassembled may be initially incorrect if the address given is not at the start of an instruction Note that the job flag is useful if you want to produce output which can be reassembied The job flag causes relative addresses to be output in the form xxxx job where xxxx is the offset from the start of the job and job is a label which would have to be
19. at every byte w compares words with word spacing and _1 compares longwords also with word spacing Note that can be used for the addr range to search ul through the whole of the current job 19 Exampies find O 40000 cimon find w 0 2000 4AFB search ail memory for CIMON string look for break instruction from bp t0 2000 bp find within the current job SFFFFFFFF word aligned scarch 2000 decimal bytes starting at bp for 30 j find_l 1 find 0 amp 2000 30 3 4 MISCELLANEOUS COMMANDS i 3 4 1 Loading jobs Command load lt device gt lt address gt Default address job base set up by monitor Action loads the file named at the address given if supplied Uf no address is given then the file is loaded as a job This happens even if the file is only really a data file the monitor will allocate a dataspace of SLO0 bytes for any code contained in the file The internal Monitor registers bp base pointer and ip lop pointer are set to the bottom and top of the job created This arca will have addresses output in the form bp and since bp is added to certain forms of address in any case are the addresses which are most casily referenced and probably the one most frequently used The register set used is that of the new job s header q v jobs so that they reflect the values which would normally be set when the job is activated The job s priority is
20. ay cause an address trap error in the clone i Examples This cxample shows how the screen could be saved on an area of heap and then restored from the heap heap rO 8000 allocate 32k and store base in reg r0 i move 20000 8000 r0 move 32k from address 20000 the screen and store at base address move r0 8000 20000 restore sereen noheap ro dealtocate heap 3 4 9 Managing channel ids Command Channels Action displays the channel ids of all channels open for the current job and the address of the channel block on the heap 23 ae SSO cate tee Saas Command nochannel lt chan id gt Action closes the channel stated The channel id is a 32 bit number similar in format to job id 3 5 PROGRAM DEBUGGING 3 5 1 Tracing code Command Trace C chan 7 E lt address gt JE lt Lines gt EC flags Default address current Program counter PC Default lines 1 Flags no pe no hex no job nojrel no an nojdn no rn no dis no regs no watch no break no jsr no trap Action The first seven flags are present as trace normally automatically issues implicit dis and regs commands unless told otherwise by adding nodis and noregs The instruction at the address given is disassembled along with all other instructions just Prior to their execution At the end of the batch of instructions being executed normally only one for single stepping a register dump is produced and you are then ab
21. ay only copy the software for your own use The Monitor runs as a QDOS job and is initiated by the super BASIC command OVERVIEW exec mdvi_cimon lt ENTER gt at The Monitor is designed 1o give you an understandable view of the machine s Y current state It does so mostly by giving you dumps of memory in various forms dump for data disassembly for programs plus a copy of the machine s internal registers i e the data registers DO to D7 address registers A to A7 the program counter PC system stack pointer SS and status register SR When the monitor has been loaded a number of windows appear on the screcn and you may have to press CTRL C before you start entering monitor commands To re enter superBASIC or other jobs which have an active prompting cursor press CYRL C again The monitor can take its input from any channel usually this will be from the keyboard but you may wish to execute a particular set of commands every time you start the monitor When the monitor has just been EXECed you can use the down arrow or up arrow keys to open the files mdy1_boot_mon down arrow or fipL_boot_mon up arrow and the monitor will take its initial commands from one of these files See section 3 6 for move information on channel management A typical session might start and end as follows exec mdvi_cimon start Monitor lt CTRL C if necessary to switch from BASIC to Monitor load mdv2_myprog get program to be de
22. bugged into memory dis disassemble from start etc debugging your program here kitl 20003 get rid of job if necessary quit exit monitor When you EXEC the monitor there is no current job to be monitored so the monitor is set to look at SuperBASIC Remember when using the monitor that you are working with the machine at a very low evel and that it can be easy to crash the OL unless you are very careful particularly when poking values into memory or moving blocks of memory in the machine CHAPTER TWO USING THE MONITOR This chapter describes how to start using the Computer One monitor giving a description of the general format of commands the types of parameters accepted by commands and some examples of the use of the more common commands 2 1 COMMAND FORMAT The gencral format of a command is Command channel tparameterst flags where is used to denote eptionai items Some of the commands will demand that their parameters are written explicitly but most use a default to save you having to enter them All commands can be abbreviated To obtain a list of the commands available type help ENTER Cor simply h CENTER in response to the CIMON gt prompt All command lines need ENTER at the end and this will be omitted from now on More than one command can be entered on a line by using a colon as a command separator IF wo commands start with similar sets of letter
23. by a amp or Hex numbers must start with a digit or a i e put a 0 or a in front of the number if it starts with a Ictter The precedence of operators is essentially left to right inonadie operators have higher precedence than diadic but can be altered by surrounding values in square brackets Note that if a string is used in an arithmetic expression its value is considered to be the long word made up of the ASCII codes of the rightmost four characters of the string The operator in front of an address returns the long word at the specified address The operator a is used lo convert an address type into a value type Example Using indirect addressing 25 aQ address found by adding 25 to contents of AQ This could be written 25 2A0 i e the value 25 added to the contents of AQ If all this secms a bit confusing the best way to find out about values is to use the eval command which displays the 32 bit hex form of a value Below are some examples but we suggest that you try more examples yourself using the monitor AEA pass ee ti ea aa Examples eval Of amp 20 00000023 15 20 in hex eval 8 473 U00000 14 eval a 00060061 eval deba 64636261 eval I 10 0000007f eval BP contents of base pointer eval a6 address in a6 as a value cval 2a6 value in a6 same as above value eval 8 6 00000002 8 mod 6 eval 44 00000024 44 in base 8 2 3 2 Addr
24. ddress1 gt lt value gt This means that an address range is as follows 1 a single address 2 all the addresses in the range caddressl gt to caddress2 gt 1 3 if is specified them the range used wilt be from the base of the current job to the top of the current job i e BP TP 4 if a lt value is specified then the command using the range will operate on lt value addresses starting at the given address Examples amp 100 the single address 100 BP 040 010 addresses in the range Od0 BP to Of0 BP t co 20 all the data registers 8 loagwords d0 a0 same as above since address registers follow data registers ia job licader The registers r0 r7 are a set of registers which can be uscd for any purpose For example you may wish to temporarily store all the data registers in the r registers Again the best way to find out about addresses is to practise using them You can use the eval command with the amp operator to get addresses and convert them to value types i Examples cval 30 30 contents of BP eval 30 0 eval 25 a6 d0 w 5 contents of dO sign extended contents of d0 cval BP address where BP is held 2 3 3 Ambiguities in parameters A large number of the monitor commands can take default values and this can lead to ambiguities when specifying parameters of these commands with operators which are both monadic and diadic For example the command poke 4 3 ca
25. dress range since this is assumed to be the current data space of the job Example save mdv2_myjob_exe 100 a d save from the current Job s base pointer to 100 bytes from the top of the 3 4 7 Setting flags Command flags no lt flag gt e Action sets the default values for Rags on all subsequent commands The default can always be en by specify saat can always be overridden by specifying the flags on the command being Examples flags nohex norel rn output from dump or dis will suppress hex parts All addresses wilt be absolute Regs command will display user registers 22 3 4 8 Allocating heap The heap allocation commands allow you to allocate space on the common heap saving the base address of the allocated memory and to deallocate the space You can also display all the heap ailocated to the current job gt Command heap lt address gt lt value gt Action allocates cvalue gt bytes of common heap and stores the base address at the given address Command noheap lt address gt Action returns to the common heap the arca of memory whose base address is stored at the given address Note that this arca must have been allocated from the heap Command heap Action displays the base address and length of all areas of memory allocated from the heap to the current job Be wary of using the clone command with this command since the heap may be changing while the clone is looking at it This m
26. e during tracing et B another pseudo register is used to keep the bottom address relative to which 1 common addresses are taken it is called BP base pointer The top of the area is beld in a pseudo register called TP top pointer In addition there are 8 other pseudo registers called RO to R7 which you may use for your own purposes they are useful for storing temporary results especially addresses for vi subsequent use 1 1 BACKING UP Under normal circumstances you will probably be interested in debugging a he supplied microdrive castridge should be backed up immediately on receipt single program and it is this which will be held between BP and TP The his cartridge should be treated as a Master copy It is recommended that you program will need some stack space and also has to be loaded into the machi H make two backup copies using the Master cartridge only as an emergency into a safe area of memory This is where the cuncept of a job is useful The backup and not to run the software Backing up may be done by running the operating system on the QL QDOS can allocate arcus of memory which will supplied CLONL prograin as follows not conflict with other programs or data Sections of such memory are often gt a referred to as jobs and can be referenced via a special number or job_id The r Monitor s load command is responsible for asking QDOS to allocate an arca of L Pl
27. e priority command to increase the j Qs priority Note also that if you are releasing the current monitor job you can s the go command which also sets the priority to 20 if it is found te bed 3 7 5 Altering the priority of jobs Command priority C lt vatue gt lt job id gt J Default value 20 Default job id current job Action sets the priority of the given j i 3 ri given job to the given value If the priorit was and the job is not in a suspended state it will start executing Similarly ifthe priority is sct to 0 white the job is running this will stop t Example job 40006 suspend examine job and registers d0 0 alter registers go start job again 3 7 6 Killing jobs Command kill lt job id gt Action abort execution of the job stated any j iti ctii the job named will receive a not completi avon The ace Ge ction of used before exiting the monitor to force remove all jobs loaded using the load command unless the jobs contain code to delete themselves Hf you kil the o current job then certain commands including regs and trace will give an invalid jab error until you change to a new job by using the toad or job commands Note that k can be used to kill the current job man 34 3 8 CLONING MONITOR COMMANDS Command clone C lt command gt lt command gt Action if no command is specified this command lists all clones in a form similar to the jobs command Otherwise i
28. eakpoints except at the current pc r race 3 5 4 Watchpoints Command watchE_ lt size gt lt addr range gt lt value gt Default size I long word Action watches for a location at the specified address or n wate i in the range of addresses being set to the given valuc Note that longwords are watched for at the maae commana the go con docs nak sso be uscd wiih Commands nowatchE_ lt size gt lt addr range gt Action removes watches at the given address or range of addresses Command watches Action lists the addresses of all current watch points Command nowatches Action removes ail watch points Examples watch w dO 1 ve ach for me value of register dQ becoming 2999 EFFE and would be suita a Watchpoint on the Program above to stop traci r terminated dbra decrements the bottom dO until it Teacha E ee has cancel the watchpoint the command OT 40 until it reaches 1 To Nowatch_w d0 would have to be issued the size extension to the basic command must match for a register watchpoint A breakpoint in ROM can be implemented using watch pe lt address gt Watchpaints terminate execution prior to executing an instruction i e just after the disassembly The note on the use of the down arrow with breakpoints section 3 5 3 also applics to watchpoints 3 5 5 Skip Tracing It is useful to skip certain instructions especially trap cails whose affects are weil known and assumed to be correct Nor
29. ess Specification A lot of commands need an address as one or more of their parameters Normally addresses specified are taken relative to an internal register called BP However absolute addresses can be specified by following ihe relevant address with a sign Registers can also be considered as addresses hink of al as being were the value of the register a0 is held In addition addresses like a0 6 a2 22 a1 d2 or even 12 28064 may be given with the usual assembly language interpretation 12 28064 means 12 iongword contents of 28064 The formal specification for an address is as follows curly brackets followed by indicate that the part in brackets may be repeated zero or more times lt address gt lt vaiue gt lt value gt 1 register C lt value gt lt address gt w 117 lt address gt w 1 lt register gt d0 d7 aQ a7 rQ r7 pe sr I bp l tp The last part of the address specification may look rather imposing but is just a formai specification of the indirect addressing modes Examples of allowable indirect addresses are a0 contents of register aQ 31000 contents of location 31000 10 a0 d1 w 10 plus contents of a0 sign extended contents of di a0 d1 d2 _ contents of a0 contents of d1 contents of d2 Where a command takes an address range this is specified as addr range gt lt acddressi gt lt address1 gt lt address2 gt lt a
30. he clone command supplies a list of job ids which are used in the normal way Clones are sub jobs of the monitor and are therefore automatically deleted when the quit command is issued 35 ae CHAPTER FOUR SUMMARY 4 1 GENERAL COMMAND STRUCTURE command C lt channeloL 13 lt parameters gt CC J lt f Lags gt All commands can be abbreviated an ambiguous abbreviation causes the first in the following list to be take Relevant flags are listed in more detail in section 4 3 if more than one command is s Command help dis E lt address gt JE lt lines gt dump E lt address gt I lt lines gt trace lt address gt JC lt Liries gt regs jobs job lt job id gt go C lt address gt j load lt device gt C lt address gt save lt device gt lt range gt C lt value gt Default dis lt dis_chan gt lt last address gt lt last iines gt ines 0 gt use window height dump lt dump_chan gt lt last address gt lt last Lines gt up and dowa arrow set up after dis dump trace pe 1 notrap down arrow gt next instruction s up artow gt skip instruction stops on lines breakpoint or watchpoint regs i lt regs_chan gt znorn go pe 36 Command find _ lt size gt lt range gt lt value gt okel_ lt size gt lt range gt P C lt value gt _ lt size gt lt range gt E lt value gt queue lt address gt C lt Lines gt quit
31. ing memory l 2 Moving memory Verification and search Comparing memory Searching memary Miscellaneous Commands Loading jobs Queue tracing Leaving the monitor Refreshing the screen Evaluating expressions Saving areas of memory Setting flags Allocating heap Managing channel ids Chapter 4 Summary Index TABLE OF CONTENTS continued 3 5 Program debugging 3 5 1 Tracing code 3 5 2 Unconditional execution 3 5 3 Breakpoints 3 5 4 Watchpoints 3 5 5 Skip tracing 3 5 6 Program errors 3 6 Channet management 3 7 Job management 3 7 1 Listing jobs 3 7 2 Altering current monitor job 3 7 3 Suspending jobs 3 7 4 Releasing jobs 3 7 5 Altering job s priority 3 7 6 Killing jobs 3 8 Cloning monitor commands Page 36 4 1 General command structure 4 1 1 Parameter syntax 4 2 Channels 4 3 Flags snu Page 40 INTRODUCTION The Computer One Monitor is an invaluable too for anyone developing software for the QL it has been designed to take full advantage of the QDOS operating system aad can handle several jobs at once It has a large and powerful set of instructions mast of which can be invoked with only one or two key depressions Users can dump and disassembie memory trace programs and control jobs Memory can be modified moved and searched When tracing you can set breakpoints and watch for particular events There is also an extensive sct of channel management commands to allo
32. l used Action clear last screen used or given channel x i achan J C lt colour gt Comas ber Lachan Cecotour gt strip chan E lt coiour gt border C chan J E lt cotour gt Default channel last channel used Defaults ink 7 paper 0 strip 2 border 2 i er sets the Actions set the colours of various parts of a window Note that pap strip colour too Only border widths of 1 are supported 31 Commands open chan lt device gt close chan Actions open close a QDOS device Up io 16 channels can be used numbered 0 to 15 Channel 1 is always opened for input and is ihe channel from which commands are taken Thus channel 1 could be opened as a microdrive file to take a sct of initial commands when the monitor is EXECed If a file read error occurs the file is closed and a standard console device is opened and no error is reported Bad command lines will be ignored by the monitor so files of commands should be carefully constructed Command window chan Default channel last channel used Action this command allows you to alter the position and size of the last window accessed using the cursor control keys A flashing cursor appears in the channel 1 window when the command is entered Use the up arrow duwa arrow left arrow and right arrow keys to move the relevant window Use the CTRL key with these keys to move the window by 10 pixels at a time When you have finished moving altering the window ju
33. le to examine aiter registers as usual The down arrow key is set to continue tracing the disassembly of the first instruction is suppressed to join the display sensibly The uprartow key can he used to skip over a single instruction should you not wish to execute it When tracing the monitor will report program errors see section 3 5 6 break points sce section 3 5 3 and watch points see section 3 5 4 For details of the Jsr and trap flags see sections 3 5 5 Examples trace single step current instruction with disassembly before and after plus register dump trace 400 6 nohex trace through 6 instructions Starting at 400 bp with register dump at end of trace Don t output hex code with disassembled instructions Number of instructions to execute is 6 from now on 3 5 2 Unconditional execution Command go lt address gt Default address current job s program counter PC Flags nojbreak 24 Action releases the current job setting the priority to 20 if the job has no priority i e is inactive The job will continue to execute until it is sespended or D breakpoint sce section 3 5 3 or program crror occurs sce section 3 5 6 Break and Watch points i et breaks To simplify the process of debugging programs you are allowed o se reak e program to save single stepping throug g Y WA make At ze mechanism watch for certain events e g a register reaching a certain valuc 3 5 3 Break
34. lt vatue gt lt value gt lt value gt amp lt value gt lt value gt lt lt vatue gt lt vatue gt gt lt value gt lt value gt A lt vatue gt lt base gt lt value gt 2 lt address gt a lt address gt The operators above which are not self explanatory arc bit or amp bit and lt shil hift le gt shift right not A eae allows the given value to be specified in the given base and are used to alter precedence levels are as follows gt monadic amp Ah aa d yt value operand dyadic 1 amp diadic lt gt 4 liado diadic ua value operands address operands lt address gt lt value gt lt v I lt valuef t I lt register gt IC lt value gt lt address gt lt address gt wla le alue gt bp if lt value gt lt orced absolute 510000 last of these includes rn xxxx rn xxi throughout except before the commands rn rm ete Spaces are stri rn ipped in say 99 40 which causes ambiguity in some lt register gt 2d0 d7 a0 a7Ipelsrird r7lbpttp lt range gt lt address1 gt lt address2 gt lt address gt lt value gt means from job base to top of job lt size gt blwll Schannel gt lt lines gt lt decimal_number gt iode gt lt colour gt lt job id gt lt channel id gt l lt base gt lt value gt 38 Nae rer nE E Wie te E a og 4 2 CHANNELS The main text of this
35. mally the trace command will skip the inner code of a trap call producing no disassembly for the code and effectively treating the trap as a single instruction Full tracing then continues again one instruction past the call If you do wish to trace through the ODOS traps then the trap flag should be turned on when the trace command is being used i Example trace pc 5 trap It is also possible to have the Monitor set a temporary breakpoint just past a jsr or bsr instruction to allow the inner code of these instructions to be skipped as well However care should be taken when skipping any of the QDOS subroutine vectors which can return to addresses other than immediately following the jst instruction for example vector 122 In this case you can set your own breakpoints or watchpoints at all possible return addresses If you find that you have lost control of the moniter because it is waiting for the temporary breakpoint immediately following the jst you can press the CAPSLOCK key 4 times to regain control This can also be tried at other times when the monitor appears to have locked Example With the following code 0026 bp jsr 0084 bp OO2ACbp moveq 6 d0 O02 bp subg l 2 d0 27 ieee oe the trace command trace 26 nojsr will only produce output of the form 0026 bp jsr 0084 bp Q02ACbp moveq 46 d0 assuming the jsr completes correctly rather than 0026 bp jsr 0084 bp
36. move O 8000 20000 copy bottom 8000 bytes to 20000 the screcn move a0 a5 rO save registers a0 a4 in r0 r4 3 3 VERIFICATION AND SEARCH 3 3 1 Comparing memory Command compare C chanl J lt addr range gt lt address gt C flags Default channel 0 Flags no asc nojhex no pe nojrel no job Action compares the range specified with the area starting at address The first mismatch is reported in a form similar to dump giving what was found what it should be After a move no mismatch should be found unless memory has altered since it was moved If no mismatch is found the message ok is displayed Note that the specified flags apply to the dumped output i i A 3 t 3 Examples i To check that the two moves above worked correctly use compare G 8000 20000 compare 3 a0 a5 rO compare O c0 100 compare 20 bytes of memory from bp with 256 bp i 3 3 2 Memory search Command find _ lt size gt chan lt addr range gt lt value gt CC f tags Default size b byte Default channek 0 Action searches the range for the given value reporting using a dump as in the compare command If a string is given as the value then the comparison is case independent the step size for comparisons being one byte The specified string may use the character as a wild card to match with any other single character Otherwise adding _b to the main command compares bytes tocated
37. n be taken to mean poke the address 4 bp with the value 3 or poke the address bp with the default value The monitor syntax checking would take the second meaning To resolve ambiguous cases you can use the null operator to force the diadic operator to be taken as monadic i e use poke 4 4 3 to force the first meaning There are very few cases where ambiguities are likely to arise but this operator wili allow you to force the required meaning 2 4 FLAGS The flags control the precise action of certain commands and are mostly defaulted They can be set globally using the flags command but can be overridden by specifying the flag with a specific command Each flag can be preceded by no to turn it off Flag Command s Action Default rel dis dump reg jobs Output addresses in BP relative format On pe dis dump regs Output addresses for lines On displayed For reg displays PC status register and BP hex dis dump display hex code or On hex memory dump asc dump display ascii memory dump On an regs display address registers On da regs display data registers On m regs display user registers oi dis trace display disassembled code On while tracing Tegs trace job load display register dump after On command trap trace trace through traps Off jsr trace trace through jsr bsr On subroutines break trace go sct breakpoints before On execuling instruction watch trace set watchpoints
38. o TEE j i iving the job_id the owner ion lists all jobs not dependent on the monitor giving the jot c the base hich ithe job header is 68 bytes back from the base in QDOS version 1 03 and earlicr versions the priority and the job length 3 7 2 Altering the current monitor job Command job lt job id gt i Flags all those that apply to a register dump and no regs Action Makes the given job the current monitor job Automatically displays the current state of the jobs registers This allows the job 0 be Eea Mi a i i gS mand will refer to this j gisters register dumps using the regs com wi ane jons Ee ne command automatically sets the curren J Naki ajab that is currently running the current job causes the job to De suspended BP and TP are also set Note that because super Se moan ne time to time BP and TP are continuously updated and will not be alter current job is superBASIC job id 0 ein gee 3 7 3 Suspending jobs Command suspend lt jab id gt i Sayer Default current monitor job ey chased 33 Action Suspend the job with the given dob id 3 7 4 Releasing jobs Command release lt job id gt Default current monitor job Action release the job with the given Gob iu gt Note that if the job has priority 0 then releasing it wili not cause it to start executing hut will only remov Pa te M its suspended state In this case use th
39. obs loaded with the load command will not be removed use kill to remove these if necessary If you quit the monitor while there are still jobs running which have been started or examined by the monitor the system may crash if aay of the jobs encounter a breakpoint or program error after the monitor job has been deleted 3 4 4 Screen refresh Command mode lt mode gt Action f no modi is specified refreshes all current monitor windows If mode is 0 sets the screen to default startup screcn 3 4 5 Eval Command eval lt value gt L lt base gt Default channel 0 Default value hp Default base hex 21 Action evaluates the expression supplied Outputting the result as a 32 bit hex number if no base is given or as a signed number in the given base Note that the default will tcl you the address of the base of your Current job and that eval a lt address gt can be used to evaluate address expressions Examples eval 412345 2 convert octal 12345 to bin eval Oef8 8 convert SOcf8 to octal may Sections 2 3 1 and 2 3 2 show more examples of this command 3 4 6 Saving code Command save filename lt addr range gt C lt datasize gt Act saves the given range of memo i ize i 1 t 1 Ty to the given file If a data size is Specified the given file is made an EXECable job with the given value as its data size Note that the data size given will be subtracted from the top value in the ad
40. p calls normally off 4 jsr trace skip tracing of jst bsr instructions j break trace go setting of breakpoints Fi watch trace examination of watchpoints K Ea maias ade eat 39 Address specifications Address trap error Backing up Base pointer Border command Break command Breakpoints in ROM CAPSLOCK key Channel management Channels opening closing Channc ids Clone command Colours Command format Command parameters Command separator Compare command Current job Data size for jobs Debupeging Default channel changing Disassemble command Displaying memory Displaying registers Dump command Eval command Errors program INDEX 40 Find command 19 Flags t0 39 Flags command 22 Go command 24 Heap allocation 23 Heap cummand 23 Ink command 31 Ilegal instruction error 30 Job flag use of 16 Jobs loading 20 managing 33 Kill command 14 34 Kiling jobs 14 34 Leaving the monitor 21 Loading and running 3 Load command 20 Locked monitor 27 Memory compare 19 move 18 modify 17 search 19 Move command 18 Open command 32 te tg oy innean nianoanna aan Paper command Poke command Priority command Privilege violation error Program cirors Pseudo registers Quit command Queue command Refreshing the screen Regs coramand Release command Save command Skip tracing 3 13 17 34 30 28 t a 2 2 17 34 wro U5 Startup Status register Strip command Summa
41. points Command break lt address gt Action Set a break point at the specified address When using the trace or po command execution will stop at this address Note that the breakpoint is no actually set in the code until a go or trace command is issued Command nobreak lt address gt Action clear the break point at the specified address Command breaks C chan Default channel 0 Action display ali current break points Command nobreaks Action clear all breakpoints Examples with the code nohex 0000 tbpp moveq 10 d0 0002 bp moveq 7 d2 0004 bp add 1 d0 d3 0006 bp gt dora d0 0004fbp you could issuc the following commands k4 set a breakpoint at 4 bp breaks tist breakpoints 0004 bp will be listed trace 0 10 start execution of 10 instructions the trace will stop at s 0004 bp with a message of the form 25 EEn Breakpoint JB lt job id gt PC 0004 bp SR 000 trace continue trace from break another break will occur when thi pro nobreak 4 cancel the break point Program loops trace 10 instructions will be traced without interruption Note Breakpoints cannot be se a i coon Len set in ROM but they can be simulated using watch atric curcnt aand set for tracing sets all breakpoints inctuding the one instruction if any To continue from a bresk ji n rcakpoint when single stepping the trace command must be issued down arrow wel not work naa sets all br
42. ry Supervisor mode Suspend command Trace command Trace bit Value specifications Watchpoints Window command Zero divide error 41 4 t
43. s then the first command in this list will be chosen For clarity commands are always written in full in this manual 2 2 CHANNELS When the monitor is loaded a screen appears in the following format Dis 0 2 Dump 1 Regs input The screen has five channels open numbered 0 to 4 Channel 1 is the input channel and it is in this window that the monitor command prompt appears Ali commands have a default channel which is used if no channel is specified Most commands use channel 0 as their default The concept of channels is very similar to that in SuperBASIC and new channels can be opened to allow disassembly memory dumping etc to other devices such as printers or microdrive files More detailed information on channel management is given in chapter 3 section 3 6 2 3 PARAMETERS Most of the commands have some parameters following the channel number These parameters depending on the command can be colours for channel management line counts values addresses ranges of addresses or job or channel ids Colours A colour is specified as in SuperBASIC and can include values to produce stipples It is easier to specifiy stipples using binary or octal values Line counts A line specifier is a decimal integer which specifics the number of lines to be output to the screen in a dump or disassembly command Job and channel ids A job id is a 32 bit value which identifies a monitor job for example 20003 A
44. scii dump is not output Examples dump 0 6 dump 6 lines of ouiput from address O BP dump 6 a9 dump window height lines from address 6 contents of register aQ 3 1 3 Displaying registers Command regs E chanC CC Jflagsi Default channel 2 Flags nojan nojdn no ra no pe no ret no job Action displays the current job s address and data registers the status register _ the program counter and job s base pointer BP These registers are used during tracing If the pe flag is off then only the address and data registers are displayed if the an or dn flags are off then the address or data registers are not output Hf the ra flag is on then the monitor s set of user registers is displayed Examples regs output to default channel all registers except rn regs O rn nope output a d r registers to channel 0 3 2 MODIFICATION 3 2 1 Poking memory Command poke _ lt size gt lt addr range gt C lt value gt i Default size b bytes Default value 0 Note The size can be one of b w or I indicating byte word or loagword poking respectively Note that using the status register SR causes the size to be set to w and using SR in forms of this command other than to poke a constant value may give unpredictable results 17 E y SEE he eta np te a A ae Pesci Mth Action the memory specified cither by single address or a range is poked to the valuc given If
45. splayed in window Q There should now be two jobs assuming there were no other jobs running when you started the monitor the jab with job id 0 is SuperBASIC the other job is the one you have just loaded To look at the first few disassembted instructions of the job we use the dis command whicli has the form dis C channelL faddressJ linesI C 11 lags 4 ar Vineeri The default disassembly address is the one after the last address examined or the start of the current job if it has not yet been disassembled The default number of lines to display i e instructions to disassemble is 8 since the disassembly window is eight characters high So we can now enter dis or dis 0 8 and the first eight instructions are disassembled in window 3 The display shows the address the hex code and the disassembled code for each instruction The output of the addresses and the hex code can be turned off using the nope and nohex flags Remember that if you are trying to disassembie an arca that contains data rather than code the output will be meuningless Areas o can be examined using the dump command which has ihe same parameters as the dis command Each line of dumped memory consists of eight bytes giving the hex values followed by eighi bytes giving the equivalent ASCII characters Non printable ASCII characters are displayed as dots The nohex and noase flags can be used to turn off part of the display for example
46. st press ENTER to return to the monitor The size of the window will then be displayed Examples To output disassembled code to a Printer you could use open 10 seric dis 10 0 20 To open a file from which the monitor takes commands you could use open 1 mdv1_boot_mon This could be useful if you wanted to design your own sereen layout Two command files are supplied with the monitor inicrodrive cartridge boot_mon and demo_mon Note that the open command always implicitly closes the previous device open on the channel the device can be closed with the close command if necessary To open a new window and change its size open 5 scr window can now aiter move new window to suit use cursor keys here CENTER return to monitor prompt 32 3 7 JOB MANAGEME a inh i is manual a explain the concept of a job in full in this manual ere is not enough space to explain ofa ih soecrain parts of this chapter will assume that the reader Knows what a job is Some explanation is supplied in the oyerview In addition to what is sa d ahere ou should realize that jobs are normally programs and sna these pr Bt executed concurrently by QDOS i e you could start the superBASIC program repeat loop at 0 0 print dates yet still be able to use the monitor without apparent interruption 3 7 1 Listing jobs Command jobs C chan Default channel 0 oo Flags no rel no job ae RORY Re bee aae
47. t sets up a job to repeatedly execute the given command s This command can be extremely useful for monitoring the progess of jobs without explicitly tracing them For example if you suspected that a job was looping somewhere you could clone the regs command so that the registers for the job were continually updated on the screen Examples flags noregs stop all implicit register dumps clone regs start up continuous display of registers sets up a job which continuously issues the regs command This means that window 2 assuming this is still the register window is effectively jammed for all other purposes since it is homed and written to by the clone on a never ending basis The bottom of the window is always cleared just before the window is homed to cater for command whose output varies in length over a period of time e g during clone jobs clone jobs 45 would give an up to date picture of all the jobs to channel 5 which you might have opened as a sereen which docsn t interfere with the rest of the monitor screcns clone dump 5 a1 2 would continually display the memory pointed at by the register al This would be useful for monitoring the contents of 2 buffer clone eval 6 00 a6 a1 would continually ouput to channel 5 the address of the top of the superBASIC stack if the job id is 0 To control clones you can use the normal job controf commands i e suspend release priority kill T
48. w user definition of sercen layout and output to any OL device for example a printer or file The sophisticated user will be able to take advantage of the Monitor s ability to clone itse f to monitor several jabs at once This user guide assumes that the user has a knowledge of 68000 assembly language a basic knowledge of QDOS the OL operating system including the use of TRAPS to make system calls aad the concept of QDOS jobs USING THIS GUIDE This section contains a brief overview of cach chapter CHAPTER 1 describes how to backup the monitor cartridge gives a general overview of the monitor and explains how to start the monitor CHAPTER 2 describes how to use the monitor explaining the syntax of monitor commands by working through a short debugging session using one of the example programs on the system microdrive cartridge CHAPTER 3 describes each command in detail giving examples of the usc of each command CHAPTER 4 contains a summary of the commands giving the full syntax of each command The data program register displays are kept in separate windows for clarity and the form of cach can be altered to suit your own taste To keep things simple a small region in the machine is considered as the main arca under CHAPTER ONE concern and its addresses are simpler to specify and normally appear as program counter relative GETTING STARTED in actual fact since the program counter tends to chang
Download Pdf Manuals
Related Search
Related Contents
Manuel d`utilisation de wordpress Philips 9170XLcc electric razor Tellerschleifgerät TG 125/E Manual Wilo-Rexa FIT… 地上デジタルチューナーCDT15-V01取扱説明書 Unitech MS916 Manual de Usuario Copyright © All rights reserved.
Failed to retrieve file