home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / mbug / mbug002.arc / CEBUG.DOC < prev    next >
Text File  |  1979-12-31  |  72KB  |  1,825 lines

  1. .OP
  2. .MT 0
  3. .HM 0
  4. .PL 74
  5.  
  6.         ********************************************************************
  7.         **     á       á       á       á       á       á       á       á  **
  8.         **    CEBUG DOCUMENTATION FILE      ROBIN WHITTLE     MAY 1983 á  **
  9.         **     á       á       á       á       á       á       á       á  **
  10.         ********************************************************************
  11.  
  12.  
  13.         Page 1     INTRODUCTIONá       á       á       á 
  14.         Page 2     SUMMARY OF COMMANDS á       á       á
  15.         Page 3     SUMMARY OF REGISTER NAMES   á       á
  16.         Page 4     LOADING AND RUNNING CEBUG   á       á
  17.         Page 6     EXPRESSIONS á       á       á       á
  18.         Page 7     COMMANDS (In alphabetical order)    á
  19.         Page 20    NOTES ON BREAKPOINTSá       á       á
  20.         Page 22    HANDY HINTS á       á       á       á
  21.         Page 23    INSIDE CEBUGá       á       á       á
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. è                                                                INTRODUCTION
  71.  
  72.  
  73.         ***** INTRODUCTION *************************************************
  74.  
  75.                 CEBU╟ i≤ ß versioε oµ Cromemco'≤ DEBU╟ whicΦ ha≤ beeε ì
  76.         modifieΣ t∩ ruε properl∙ unde≥ CPM« DEBUG¼ anΣ thereforσ CEBU╟ ì
  77.         i≤ t∩ m∙ knowledgσ thσ mos⌠ powerfu∞ Z-8░ debugginτ prograφ ì
  78.         available. Some of its features are :-
  79.  
  80.         **     áDisassembly into Zilog Z-80 mnemonics
  81.         **     áLine at a time assembly from Zilog Z-80 mnemonics 
  82.         **     áRead and write files from any memory location
  83.         **     áMove blocks of data around memory
  84.         **     áRead and write to I/O ports
  85.         **     áSearch through memory for any combination of bytes
  86.         **     áHex arithmatic including multiplication and division
  87.         **     áTracing and Breakpoints can be conditional on ANYTHING
  88.  
  89.                 DEBU╟ wa≤ writteε b∙ Cromemc∩ t∩ ruε unde≥ it≤ operatinτ ì
  90.         systeφ - CDO╙ - whicΦ i≤ claimeΣ t∩ bσ CP═ compatable« CDO╙ wa≤ ì
  91.         developeΣ froφ CP═ 1.│ anΣ sincσ theε botΦ CDO╙ anΣ CP═ havσ haΣ ì
  92.         quitσ ß numbe≥ oµ additiona∞ systeφ call≤ addeΣ t∩ them« Needles≤ t∩ ì
  93.         sa∙ thesσ tw∩ extension≤ arσ completel∙ incompatable¼ s∩ moderε CP═ ì
  94.         program≤ whicΦ usσ sys-call≤ beyonΣ 2╖ (1┬ hex⌐ wil∞ no⌠ worδ unde≥ ì
  95.         CDO╙ anΣ Cromemc∩ program≤ whicΦ usσ sys-call≤ abovσ 12╕ (8░ hex⌐ ì
  96.         wil∞ no⌠ worδ unde≥ CPM« CDO╙ i≤ no⌠ supporteΣ fo≥ an∙ computer≤ ì
  97.         othe≥ thaε thosσ madσ b∙ Cromemco¼ anΣ iµ yo⌡ tr∙ t∩ unrave∞ thσ ì
  98.         disδ areß oµ CDO╙ s∩ yo⌡ caε makσ i⌠ worδ oε anothe≥ computer¼ theε ì
  99.         yo⌡ arσ iε fo≥ ß biτ headache« Swappinτ betweeε tw∩ operatinτ ì
  100.         system≤ send≤ yo⌡ mad¼ anΣ thσ onl∙ rea∞ wa∙ t∩ sta∙ compatablσ witΦ ì
  101.         thσ res⌠ oµ thσ worlΣ i≤ t∩ ruε CPM« Havinτ useΣ DEBU╟ therσ wa≤ n∩ ì
  102.         wa∙ ╔ wa≤ goinτ t∩ ste≡ dowε t∩ anythinτ elsσ anΣ s∩ ╔ jus⌠ haΣ t∩ ì
  103.         makσ i⌠ worδ unde≥ CPM« 
  104.  
  105.                 Sincσ thi≤ worδ i≤ oµ valuσ t∩ man∙ other≤ ╔ havσ madσ CEBU╟ ì
  106.         anΣ thi≤ DO├ filσ availablσ t∩ al∞ interesteΣ persons« Thi≤ i≤ oµ ì
  107.         coursσ softwarσ pirac∙ bu⌠ therσ i≤ n∩ mone∙ involved¼ anΣ DEBU╟ i≤ ì
  108.         hardl∙ Cromemco'≤ breaΣ anΣ butte≥ s∩ ╔ d∩ no⌠ anticipatσ terriblσ ì
  109.         repercussions« DEBU╟ i≤ alread∙ iε widσ circulatioε bu⌠ ver∙ fe≈ ì
  110.         peoplσ kno≈ ho≈ t∩ usσ i⌠ fully« Sincσ Cromemc∩ havσ obviousl∙ pu⌠ ß ì
  111.         lo⌠ oµ effor⌠ int∩ DEBUG'≤ development¼ ╔ believσ the∙ shoulΣ makσ ß ì
  112.         CP═ versioε oµ i⌠ anΣ sel∞ i⌠ oε thσ opeε market« ╔ woulΣ mucΦ ì
  113.         rather pay $100 than spend well over 100 hours modifying DEBUG. 
  114.  
  115.                 Iε aε idea∞ worlΣ ╔ believσ tha⌠ thσ industr∙ standarΣ ì
  116.         operatinτ systeφ woulΣ morσ closel∙ resemblσ CDO╙ thaε CPM« CDO╙ i≤ ì
  117.         mucΦ nice≥ iε man∙ way≤ - yo⌡ d∩ no⌠ havσ t∩ worr∙ abou⌠ logginτ oε ì
  118.         disk≤ - anΣ i⌠ cope≤ witΦ disδ error≤ iε ß morσ civiliseΣ fashion« ì
  119.         Cromemco'≤ documentatioε (oε whicΦ thi≤ DO├ filσ i≤ based⌐ i≤ firs⌠ ì
  120.         clas≤ anΣ thei≥ program≤ arσ generall∙ ver∙ pleasan⌠ t∩ use« 
  121.  
  122.                 ╔ havσ useΣ Cromemco'≤ codσ anΣ documentatioε witΦ ì
  123.         appreciatioε bu⌠ withou⌠ thei≥ consent« Iµ yo⌡ builΣ ß bette≥ ì
  124.         mousetra≡ thσ worlΣ wil∞ bea⌠ ß pathwa∙ t∩ you≥ door¼ bu⌠ iµ yo⌡ ì
  125.         wil∞ no⌠ sel∞ you≥ mousetra≡ theε someonσ i≤ bounΣ t∩ pincΦ it« ì
  126.         Trea⌠ thi≤ prograφ a≤ yo⌡ woulΣ an∙ othe≥ preciou≤ bu⌠ illici⌠ ì
  127.         merchandise¼ sharσ i⌠ onl∙ witΦ you≥ friends.
  128.  
  129.  
  130.                                        1
  131.  
  132.  
  133.  
  134.  
  135. è                                                         SUMMARY OF COMMANDS
  136.  
  137.  
  138.         ****¬ SUMMAR┘ O╞ COMMAND╙ ******************************************
  139.  
  140.         áááááááCOMMAN─ áDESCRIPTION
  141.         ááááááá
  142.         ááááááá┴        Assemble into memory
  143.  
  144.         áááááááB       áSet and display Breakpoints
  145.  
  146.         áááááááBX      áDelete breakpoints
  147.  
  148.         áááááááC       áTrace over Calls
  149.         áááááááCN      áTrace over Calls with No display
  150.         áááááááCJ      áTrace over calls with Jumps
  151.         áááááááCNJ     áTrace over calls with Jumps with No display
  152.                 
  153.         áááááááD or DM áDisplay Memory
  154.  
  155.         áááááááDR      áDisplay registers
  156.  
  157.         áááááááE       áExamine input port
  158.  
  159.         áááááááF       áSpecify file name
  160.  
  161.         áááááááG       áGo
  162.  
  163.         áááááááH       áHexadecimal arithmatic
  164.  
  165.         áááááááL       áList in assembler mnemonics
  166.  
  167.         áááááááM       áMove memory
  168.  
  169.         áááááááO       áOutput to port
  170.  
  171.         áááááááQ       áQuery memory
  172.  
  173.         áááááááR       áRead disk file
  174.  
  175.         áááááááS or SM áSubstitute Memory
  176.  
  177.         áááááááSr      áSubstitute register (See Summary of Register Names)
  178.  
  179.         áááááááT       áTrace
  180.         áááááááTN      áTrace with No display
  181.         áááááááTJ      áTrace Jumps
  182.         áááááááTNJ     áTrace Jumps with No display
  183.  
  184.         áááááááV       áVerify memory
  185.  
  186.         áááááááW       áWrite disk file
  187.  
  188.         áááááááZ       áZap memory
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                        2
  196.  
  197.  
  198.  
  199.  
  200. è                                                   SUMMARY OF REGISTER NAMES
  201.  
  202.  
  203.         ***** SUMMARY OF REGISTER NAMES ************************************
  204.  
  205.         áááááááREGISTERáDESCRIPTION
  206.  
  207.         áááááááF       áMain Flag register comprising of
  208.         áááááááá
  209.         áááááááá       áS - Sign
  210.         áááááááá       áZ - Zero
  211.         áááááááá       áH - Half-carry
  212.         áááááááá       áV - parity/oVerflow
  213.         áááááááá       áN - subtractioN
  214.         áááááááá       áC - Carry
  215.  
  216.         ááááááá         ┼ - Interrup⌠ enablσ flip-flo≡ i≤ als∩ showε anΣ ì
  217.         áááááááá       áchanged with the F flags
  218.  
  219.         áááááááF'      áAlternate Flag register - as above except for (E)
  220.  
  221.         áááááááA       áMain 8 bit registers
  222.         áááááááB
  223.         áááááááC
  224.         áááááááD
  225.         áááááááE
  226.         áááááááH
  227.         áááááááL
  228.         ááááááá
  229.         áááááááA'      áAlternate 8 bit registers
  230.         áááááááB'
  231.         áááááááC'
  232.         áááááááD'
  233.         áááááááE'
  234.         áááááááH'
  235.         áááááááL'
  236.  
  237.         áááááááBC      áMain 16 bit register pairs
  238.         áááááááDE
  239.         áááááááHL
  240.  
  241.         áááááááBC'     áAlternate 16 bit register pairs
  242.         áááááááDE'
  243.         áááááááHL'
  244.  
  245.         áááááááIX      áIndex register IX
  246.  
  247.         áááááááIY      áIndex register IY
  248.  
  249.         áááááááSP      áStack Pointer
  250.  
  251.         áááááááPC      áProgram Counter
  252.  
  253.         áááááááI       áInterrupt vector register
  254.         áááááááIP      áInterrupt vector register as top byte
  255.  
  256.  
  257.  
  258.  
  259.  
  260.                                        3
  261.  
  262.  
  263.  
  264.  
  265. è                                                   LOADING AND RUNNING CEBUG
  266.  
  267.  
  268.         ***** LOADING AND RUNNING CEBUG ************************************
  269.  
  270.         *** LOADING ***
  271.                á
  272.                 CEBU╟ caε bσ ruε b∙ givinτ ß commanΣ linσ t∩ CP═ iε onσ oµ ì
  273.         the following formats :-
  274.  
  275.         CEBU╟ (cr⌐
  276.  
  277.                 Causσs CEBU╟ t∩ loaΣ iε a⌠ 010░ anΣ relocatσ itselµ t∩ thσ ì
  278.         to≡ oµ use≥ memory.
  279.  
  280.         CEBU╟ ZOOM.CO═ (cr⌐ 
  281.  
  282.                 Run≤ CEBU╟ a≤ abovσ bu⌠ ZOOM.CO═ wil∞ automatical∙ bσ reaΣ ì
  283.         int∩ RA═ startinτ a⌠ 0100« Thσ filenamσ ZOOM.CO═ i≤ formatteΣ t∩ thσ ì
  284.         firs⌠ defaul⌠ Filσ Contro∞ Blocδ (FCB⌐ startinτ a⌠ 005C« 
  285.  
  286.         CEBU╟ ZOOM.HE╪ (cr⌐ 
  287.  
  288.                 Work≤ a≤ abovσ bu⌠ thσ filσ i≤ reaΣ a≤ aε Inte∞ He° file« ì
  289.         CEBU╟ doe≤ no⌠ linδ relocatablσ modules.
  290.  
  291.  
  292.         *** CONTROL CHARACTERS ***
  293.          
  294.                 Unde≥ CP═ 2.2¼ thσ followinτ contro∞ character≤ havσ specia∞ ì
  295.         function≤ :-    
  296.  
  297.         Control - C (^C)       áReturn to CPM
  298.         Control - H (^H)       áDelete character to the left of cursor
  299.         Control - X (^X)       áDelete line
  300.         Control - U (^U)       áPrint # cr lf, and accept new command line 
  301.  
  302.                 Wheε CEBU╟ i≤ writinτ t∩ thσ consolσ (o≥ thσ printe≥ iµ yo⌡ ì
  303.         have used a ^P) then the following are active :-        
  304.  
  305.         Control - S (^S)        Sto≡ consolσ output« ^╙ o≥ an∙ othe≥ ì
  306.         áááááááááááááááááááááááácharacte≥ wil∞ resumσ output
  307.         Spaceáááááááááááááááááááo≥ an∙ othe≥ characte≥ wil∞ sto≡ thσ curren⌠ ì
  308.         áááááááááááááááááááááááácommandáááááááááááááááááá      á
  309.  
  310.         *** COMMAND FORMAT ***
  311.  
  312.                 Command≤ arσ 1¼ ▓ o≥ │ character≤ lonτ anΣ arσ generall∙ ì
  313.         followeΣ b∙ operands« Thσ commanΣ linσ i≤ alway≤ terminateΣ b∙ ß ì
  314.         Carriagσ Returε (cr⌐ whicΦ wil∞ generall∙ no⌠ bσ showε hereafter« ì
  315.         Space≤ o≥ comma≤ caε bσ useΣ t∩ separatσ operand≤ wherσ neccesary« ì
  316.         Somσ command≤ havσ ß onσ a≤ wel∞ a≤ ß tw∩ characte≥ representation« ì
  317.         Fo≥ instancσ al∞ thσ followinτ commanΣ line≤ wil∞ displa∙ memor∙ ì
  318.         froφ 100░ t∩ 10FF:-
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.                                        4
  326.  
  327.  
  328.  
  329.  
  330. è                                                   LOADING AND RUNNING CEBUG
  331.  
  332.  
  333.         D1000 10FF
  334.         DM 1000,10FF
  335.         D1000S100
  336.         D 1000,S100
  337.  
  338.                 Notσ tha⌠ thσ las⌠ tw∩ line≤ usσ ╙ thσ swatΦ operato≥ t∩ ì
  339.         specify that the command will cover 100 bytes.
  340.  
  341.  
  342.         *** CURRENT PROGRAM COUNTER LOCATION ($) ***
  343.  
  344.                 Thσ curren⌠ addres≤ (thσ curren⌠ valuσ oµ thσ prograφ ì
  345.         counter⌐ ma∙ bσ representeΣ b∙ thσ dolla≥ sigε ($)« Thσ followinτ ì
  346.         commanΣ wil∞ begiε prograφ executioε a⌠ thσ curren⌠ valuσ oµ thσ ì
  347.         prograφ counte≥ anΣ wil∞ sto≡ a⌠ ß temporar∙ breakpoin⌠ se⌠ a⌠ ì
  348.         the current location plus 3.
  349.  
  350.         G/$3
  351.  
  352.  
  353.         *** COMMAND STARTING ADDRESS ***
  354.  
  355.                 Thσ Assemblσ int∩ Memor∙ (A)¼ Displa∙ Memor∙ (D═ o≥ D)¼ Lis⌠ ì
  356.         iε Assemble≥ Mnemonic≤ (L⌐ anΣ Substitutσ Memor∙ (S═ o≥ S⌐ command≤ ì
  357.         eacΦ maintaiε thei≥ owε startinτ addres≤ t∩ usσ iµ nonσ i≤ giveε iε ì
  358.         thσ command« EacΦ addres≤ i≤ initial∙ 10░ bu⌠ wheε ß commanΣ ha≤ ì
  359.         beeε used¼ i≤ se⌠ t∩ onσ abovσ thσ las⌠ addres≤ accesseΣ iε tha⌠ ì
  360.         command.
  361.  
  362.  
  363.         *** @ "REGISTER" ***
  364.  
  365.                 Sa∙ yo⌡ arσ debugginτ ß relocatablσ modulσ - you≥ assemble≥ ì
  366.         prin⌠ listinτ give≤ yo⌡ addres≤ reference≤ relativσ t∩ thσ star⌠ oµ ì
  367.         thσ modulσ whicΦ showε a≤ 0000« Yo⌡ arσ debugginτ thσ modulσ iε it≤ ì
  368.         rea∞ lifσ startinτ locatioε oµ 3D9E¼ s∩ yo⌡ se⌠ └ t∩ 3D9┼ anΣ usσ i⌠ ì
  369.         iε al∞ relevan⌠ addres≤ specifications« Wheε └ i≤ noε zero¼ al∞ ì
  370.         addresse≤ iε CEBU╟ outpu⌠ arσ giveε directl∙ anΣ relativσ t∩ thσ └ ì
  371.         "register". To change it just type :- 
  372.  
  373.         @ (cr)
  374.  
  375.                áCEBUG comes back with :-
  376.  
  377.         @-XXXX
  378.                á
  379.                 Yo⌡ caε leavσ i⌠ alonσ o≥ typσ iε ß ne≈ value« Thereafte≥ ì
  380.         yo⌡ caε Assemblσ int∩ memor∙ startinτ froφ thσ bytσ 2┬ froφ thσ ì
  381.         start of the module by typing :-
  382.  
  383.         A @2B
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.                                        5
  391.  
  392.  
  393.  
  394.  
  395. è                                                                 EXPRESSIONS
  396.  
  397.  
  398.         ***** EXPRESSIONS **************************************************
  399.  
  400.         *** SPECIAL SYMBOLS ***
  401.  
  402.         ^reg   áRegister value - eg ^DE. See summary of register names
  403.         @      á@ "register"
  404.         $      áProgram counter
  405.         (expr)  Contents of memory location defined by expression expr  
  406.         [expr]  Used to force order of evaluation within a larger expression
  407.         'xy'   áValues of the ASCII characters x and y
  408.         ddd.   áValue of Decimal number ddd - eg. 256. =100 hex
  409.         HHHH   áHexadecimal value - eg. 0100
  410.  
  411.         *** UNARY OPRATORS ***
  412.  
  413.         +      áPositive number
  414.         -      áNegative number
  415.         ~      áLogical Not (Complement)
  416.  
  417.  
  418.         *** BINARY OPERATORS ***
  419.  
  420.         +      áAddition
  421.         -      áSubtraction
  422.         *      áMultiplication
  423.         %      áDivision
  424.         &      áLogical AND
  425.         |      áLogical OR
  426.                 {Notσ tha⌠ somσ printer≤ d∩ no⌠ responΣ t∩ thσ brokeε ì
  427.         áááááááávertica∞ linσ whicΦ i≤ useΣ fo≥ thσ abovσ Logica∞ O╥ ì
  428.         ááááááááfunction« It≤ he° valuσ i≤ 7C.}
  429.  
  430.         *** RELATIONAL OPERATORS ***
  431.  
  432.         =      áEqual to       á       á       á       á
  433.         <>     áNot equal to   á       á
  434.         >      áGreater than   á       á
  435.         >=     áGreater than or equal to
  436.         <      áLess than      á       á
  437.         <=     áLess than or equal to  á
  438.  
  439.                 ┴ Relationa∞ Operato≥ return≤ thσ valuσ ░ iµ thσ relatioε i≤ ì
  440.         not true and FFFF if the relation is true. For example :-
  441.  
  442.         [4+3=7]        áevaluates as FFFF
  443.         [zzz<9]&[zzz>5] evaluates as FFFF only if zzz equals 6, 7 or 8
  444.  
  445.                 Aε expressioε caε bσ useΣ an∙wherσ tha⌠ ß numbe≥ i≤ needed¼ ì
  446.         iσ. fo≥ addresses¼ datß etc« Aε expressioε mus⌠ no⌠ contaiε an∙ ì
  447.         spaces. The precedence of operators is as follows :-
  448.  
  449.                á1/     áSpecial Symbolsá       á       áHighest Precedence
  450.                á2/     áUnary Operators
  451.                á3/     áBinary Operators
  452.                á4/     áRelational operators   á       áLowest Precedence
  453.  
  454.  
  455.                                        6
  456.  
  457.  
  458.  
  459.  
  460. è                                                        COMMANDS       A, B
  461.  
  462.  
  463.                 Thσ orde≥ oµ evaluatioε caε bσ altereΣ b∙ thσ usσ oµ squarσ ì
  464.         bracket≤ █  ]« Amonτ operator≤ oµ thσ samσ precedence¼ evaluatioε ì
  465.         proceeds from left to right. For example :-
  466.  
  467.         10.+20.*3      áEquals 90. (decimal)
  468.  
  469.  
  470.         ***** CEBUG COMMANDS ***********************************************
  471.  
  472.         ***                          ***************************************
  473.         *** A - ASSEMBLE INTO MEMORY ***************************************
  474.         ***                          ***************************************
  475.  
  476.         A      áStart assembling from where you last left off
  477.         A133   áStart assembling at 133
  478.         A@40   áStart assembling at @ plus 40.
  479.  
  480.                 Thσ addres≤ anΣ thσ instructioε whicΦ i≤ alread∙ therσ i≤ ì
  481.         displayeΣ oε thσ console« Iµ yo⌡ d∩ no⌠ wan⌠ t∩ changσ i⌠ jus⌠ hi⌠ ì
  482.         (cr)« Iµ yo⌡ d∩ wan⌠ t∩ changσ i⌠ typσ iε thσ Z-8░ Assembl∙ mnemoniπ ì
  483.         witΦ appropriatσ operands« Iµ you≥ mnemoniπ make≤ n∩ sensσ theε ì
  484.         CEBU╟ wil∞ returε witΦ thσ samσ addres≤ s∩ yo⌡ caε tr∙ again« T∩ ge⌠ ì
  485.         ou⌠ oµ thi≤ modσ typσ « (cr)« 
  486.  
  487.                á       á       á       áYour input.
  488.  
  489.         -A500
  490.         0500   áLD     áC,02   á       áLD B,24.
  491.         0502   áJP     á21B0   á       áCALL @93
  492.         0505   áNOP    á       á       áSET 6,(IX+3)
  493.         0509   áLD     áC,0B   á       áDJNZ 500
  494.         050B   áCALL   á0000   á       áLD A,(IX+7)
  495.         050E   áAND    áA,A    á       á.
  496.  
  497.  
  498.         ***                                          ***********************
  499.         *** B - SET OR DISPLAY PERMANENT BREAKPOINTS ***********************
  500.         ***                                          ***********************
  501.  
  502.                 Thσ ┬ commanΣ i≤ useΣ t∩ se⌠ permanen⌠ breakpoint≤ a≤ ì
  503.         opposeΣ t∩ thσ temporar∙ breakpoint≤ whicΦ caε bσ createΣ witΦ ß G» ì
  504.         command« ┴ permanen⌠ breakpoin⌠ wil∞ remaiε iε operatioε unti∞ i⌠ i≤ ì
  505.         explicitl∙ removeΣ b∙ ß B╪ command« I⌠ i≤ possiblσ t∩ se⌠ ß tota∞ oµ ì
  506.         1▓ breakpoint≤ usinτ usinτ thσ B¼ G¼ ╘ anΣ ├ commands« Sincσ thσ ì
  507.         tracσ commanΣ require≤ ▓ oµ thesσ yo⌡ shoulΣ no⌠ se⌠ morσ thaε 1░ ì
  508.         breakpoint≤ unles≤ yo⌡ arσ no⌠ usinτ trace« Trying to trace or se⌠ ì
  509.         breakpoint≤ wheε therσ arσ to∩ man∙ breakpoint≤ alread∙ iε usσ wil∞ ì
  510.         resul⌠ iε ß ┐ beinτ displayed« T∩ displa∙ al∞ thσ currentl∙ activσ ì
  511.         breakpoint≤ simpl∙ givσ thσ commanΣ :-
  512.  
  513.         B
  514.  
  515.                 Notσ tha⌠ iµ yo⌡ se⌠ ß breakpoin⌠ a⌠ ß giveε addres≤ anΣ ì
  516.         theε wisΦ t∩ changσ thσ attribute≤ oµ tha⌠ breakpoin⌠ yo⌡ mus⌠ ì
  517.         removσ thσ firs⌠ breakpoin⌠ usinτ thσ B╪ commanΣ beforσ enterinτ thσ ì
  518.  
  519.  
  520.                                        7
  521.  
  522.  
  523.  
  524.  
  525. è                                                        COMMANDS         B
  526.  
  527.  
  528.         ne≈ breakpoin⌠ information« Iµ yo⌡ d∩ no⌠ d∩ this¼ CEBU╟ wil∞ thinδ ì
  529.         tha⌠ therσ arσ tw∩ breakpoint≤ oε thσ onσ address« Fo≥ ß ful∞ ì
  530.         discussioε oµ ho≈ thσ breakpoin⌠ anΣ tracσ function≤ arσ achieved¼ ì
  531.         seσ "Note≤ oε Breakpointsó oε pagσ 20« T∩ se⌠ permanen⌠ breakpoint≤ ì
  532.         ente≥ :-
  533.  
  534.         B breakpoint-1 breakpoint-2 breakpoint-3 etc.
  535.  
  536.                áA Breakpoint is specified by up to four fields :-
  537.  
  538.         FIELD  á       áUSE
  539.  
  540.         R      á       áReport registers flag (optional)
  541.         addr   á       áMemory address for breakpoint
  542.         {cond} á       áCondition for breakpoint (optional)
  543.         :count á       áRepeat count for breakpoint (optional)
  544.  
  545.                 Thσ repor⌠ register≤ flaτ i≤ useΣ t∩ displa∙ thσ register≤ ì
  546.         eacΦ timσ ß breakpoin⌠ i≤ encountereΣ durinτ execution« Thi≤ i≤ useΣ ì
  547.         in conjunction with the repeat count field.
  548.  
  549.                 Thσ conditioε fielΣ i≤ useΣ t∩ specif∙ ß conditiona∞ ì
  550.         breakpoint« Iµ ß conditioε i≤ specified¼ thσ breakpoin⌠ wil∞ no⌠ ì
  551.         sto≡ thσ prograφ unles≤ thσ conditioε i≤ truσ - noε zero« Thσ ì
  552.         conditioε caε bσ aε expressioε involvinτ register≤ o≥ memory« EacΦ ì
  553.         timσ thσ use≥ prograφ reache≤ thσ breakpoint¼ thσ expressioε i≤ ì
  554.         evaluated« Iµ thσ resul⌠ i≤ falsσ (zero⌐ thσ use≥ prograφ continue≤ ì
  555.         a≤ iµ thσ breakpoin⌠ diΣ no⌠ exist« Thσ tota∞ lengtΦ oµ condition≤ ì
  556.         is set by the 128 bytes that are reserved for all conditions.
  557.  
  558.                 Thσ repea⌠ counte≥ i≤ se⌠ wheε thσ breakpoin⌠ i≤ se⌠ anΣ i≤ ì
  559.         decrementeΣ eacΦ timσ thσ prograφ reache≤ thσ breakpoint« WitΦ ß ì
  560.         conditiona∞ breakpoint¼ thσ counte≥ i≤ decrementeΣ onl∙ wheε thσ ì
  561.         conditioε i≤ true« Wheε thσ counte≥ reache≤ zer∩ thσ prograφ i≤ ì
  562.         stopped¼ thσ breakpoin⌠ i≤ deleteΣ anΣ CEBU╟ prompt≤ fo≥ ß command« ì
  563.         T∩ rese⌠ thσ counte≥ t∩ it≤ origina∞ valuσ yo⌡ mus⌠ rese⌠ thσ ì
  564.         breakpoint« 
  565.  
  566.         B 106
  567.  
  568.                 Establishe≤ ß breakpoin⌠ a⌠ 106« Use≥ program≤ wil∞ bσ ì
  569.         diverteΣ froφ herσ t∩ CEBU╟ anΣ thσ proccessor'≤ register≤ wil∞ bσ ì
  570.         displayed.
  571.  
  572.         B 106:5
  573.                áStops and displays registers on the fifth execution of 106.
  574.  
  575.         B R106:5
  576.  
  577.                 Display≤ register≤ oε ever∙ executioε oµ 10╢ bu⌠ stop≤ oε ì
  578.         the fifth.
  579.  
  580.         B 106 {^A=0}
  581.  
  582.                áStops on 106 only when register A is equal to zero.
  583.  
  584.  
  585.                                        8
  586.  
  587.  
  588.  
  589.  
  590. è                                                        COMMANDS      BX, C
  591.  
  592.  
  593.         ***                               **********************************
  594.         ***    BX - DELETE BREAKPOINTS    **********************************
  595.         ***                               **********************************
  596.  
  597.         BX 
  598.                áDeletes all breakpoints.
  599.  
  600.         BX addr-1 addr-2 etc.  á
  601.  
  602.                áDeletes the breakpoints specified by the addresses.
  603.  
  604.  
  605.         ***                          ***************************************
  606.         ***   C - TRACE OVER CALLS   ***************************************
  607.         ***                          ***************************************
  608.  
  609.         C
  610.         C number of instructions (in hex)
  611.         C {expr}
  612.  
  613.                 Thσ Tracσ Ove≥ Call≤ commanΣ function≤ iε ß manne≥ simila≥ ì
  614.         t∩ thσ simplσ Tracσ command« Thσ differencσ appear≤ wheε ß CAL╠ o≥ ì
  615.         RET instruction is encountered in a multiple instruction trace.
  616.          
  617.                 Wheε ß Cal∞ instructioε i≤ encountereΣ durinτ thσ executioε ì
  618.         oµ ß ├ command¼ n∩ tracinτ i≤ performeΣ iε thσ calleΣ subroutine« ì
  619.         Tracinτ resume≤ wheε executioε return≤ t∩ thσ curren⌠ subroutinσ a⌠ ì
  620.         thσ locatioε whicΦ i≤ threσ location≤ beyonΣ thσ cal∞ instruction« ì
  621.         Thσ numbe≥ oµ instruction≤ counte≥ i≤ no⌠ decrememteΣ whilσ contro∞ ì
  622.         remain≤ iε thσ calleΣ subroutine« Thi≤ i≤ oµ particula≥ valuσ wheε ß ì
  623.         user program does a sys-call to CPM. 
  624.  
  625.                 Wheε ß RE╘ instructioε i≤ encountereΣ iε ß multiplσ ì
  626.         instructioε trace¼ tracinτ wil∞ sto≡ anΣ thσ RE╘ instructioε wil∞ bσ ì
  627.         displayed« Thi≤ allow≤ yo⌡ t∩ sto≡ executioε oµ ß subroutinσ beforσ ì
  628.         contro∞ i≤ returneΣ t∩ thσ callinτ routine« A⌠ thi≤ poin⌠ yo⌡ caε ì
  629.         examinσ thσ content≤ oµ thσ register≤ anΣ modif∙ theφ beforσ thσ ì
  630.         returε instructioε i≤ executed« 
  631.  
  632.                 Iµ ß conditiona∞ RE╘ instructioε - sucΦ a≤ RE╘ ┌ - i≤ ì
  633.         encountered¼ execu⌠ion will stop only if the condition is true. 
  634.          
  635.                 Iµ ß conditioε i≤ specified¼ it≤ expressioε (expr⌐ wil∞ onl∙ ì
  636.         bσ evaluateΣ iε thσ curren⌠ subroutine« Thσ CAL╠ anΣ RE╘ ì
  637.         instructions are treated as above.
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.                                        9
  651.  
  652.  
  653.  
  654.  
  655. è                                                   COMMANDS     CN, CJ, CNJ
  656.  
  657.  
  658.         ***    á       á       á       á       á  **************************
  659.         *** CN - TRACE OVER CALLS WITH NO DISPLAY **************************
  660.         ***    á       á       á       á       á  **************************
  661.  
  662.         CN
  663.         CN number of instructions (in hex)
  664.         CN {expr}
  665.  
  666.                 Thi≤ i≤ simila≥ t∩ thσ ├ commanΣ abovσ excep⌠ tha⌠ n∩ ì
  667.         informatioε i≤ displayeΣ a≤ thσ tracσ proggresses« Wheε thσ tracσ ì
  668.         terminates, the standard register information is displayed.
  669.  
  670.  
  671.         **¬                            á     *******************************
  672.         *** CJ - TRACE OVER CALLS WITH JUMPS *******************************
  673.         ***    á       á       á       á     *******************************
  674.  
  675.         CJ
  676.         CJ number of instructions (in hex)
  677.         CJ {expr}
  678.  
  679.                 Thi≤ i≤ simila≥ t∩ thσ ├ commanΣ abovσ witΦ onσ addition« ì
  680.         Breakpoint≤ arσ establisheΣ a⌠ al∞ instruction≤ whicΦ alte≥ thσ ì
  681.         prograφ counter« Thσ CAL╠ anΣ RE╘ instruction≤ functioε a≤ the∙ d∩ ì
  682.         in the C command.
  683.  
  684.                 WitΦ thi≤ command¼ onl∙ JP¼ J╥ anΣ CAL╠ instruction≤ arσ ì
  685.         traceΣ anΣ onl∙ thσ executioε oµ thesσ instruction≤ cause≤ thσ ì
  686.         numbe≥ oµ instruction≤ counte≥ t∩ bσ decremented¼ o≥ thσ expressioε ì
  687.         {expr² to be evaluated.
  688.  
  689.                 Noticσ tha⌠ ß conditiona∞ RE╘ instructioε whosσ conditioε i≤ ì
  690.         no⌠ truσ (whicΦ mean≤ tha⌠ thσ RE╘ instructioε i≤ no⌠ executed⌐ wil∞ ì
  691.         no⌠ sto≡ prograφ executioε bu⌠ wil∞ bσ traceΣ anΣ wil∞ causσ thσ ì
  692.         numbe≥ oµ instruction≤ counte≥ t∩ bσ decrementeΣ o≥ thσ expressioε ì
  693.         to be evaluated. 
  694.  
  695.                 Thi≤ commmanΣ wil∞ suppl∙ yo⌡ witΦ ß histor∙ oµ thσ pas⌠ ε ì
  696.         instruction≤ whicΦ altereΣ o≥ coulΣ havσ altereΣ thσ prograφ ì
  697.         counter.
  698.  
  699.  
  700.         ***    á       á       á       á       á       á      **************
  701.         *** CNJ - TRACE OVER CALLS WITH JUMPS WITH NO DISPLAY **************
  702.         ***    á       á       á       á       á       á      **************
  703.  
  704.         CNJ
  705.         CNJ number of instructions (in hex) 
  706.         CNJ {expr}
  707.  
  708.                 Thi≤ i≤ simila≥ t∩ thσ C╩ commanΣ abovσ excep⌠ tha⌠ n∩ ì
  709.         registe≥ informatioε i≤ displayeΣ unti∞ the trace terminates.
  710.  
  711.  
  712.  
  713.  
  714.  
  715.                                       10
  716.  
  717.  
  718.  
  719.  
  720. è                                                        COMMANDS      D, DR
  721.  
  722.  
  723.         ***    á       á       á     ***************************************
  724.         *** D or DM - DISPLAY MEMORY ***************************************
  725.         ***    á       á       á     ***************************************
  726.  
  727.         D
  728.         D ,ending address
  729.         D S swath-width
  730.         D beginning-addr
  731.         D beginning-addr ending-addr
  732.         D beginning-addr S swath-width
  733.  
  734.                 Thesσ al∞ displa∙ thσ content≤ oµ memor∙ iε he° anΣ ASCI╔ ì
  735.         wherσ possible« Thσ firs⌠ threσ format≤ usσ thσ enΣ oµ thσ las⌠ ì
  736.         displa∙ commanΣ fo≥ thei≥ startinτ address« Wherσ n∩ endinτ addres≤ ì
  737.         o≥ swatΦ widtΦ i≤ specified¼ thσ defaul⌠ ╕ line≤ oµ 1╢ byte≤ arσ ì
  738.         displayed.
  739.  
  740.  
  741.         ***    á       á       á   *****************************************
  742.         *** DR - DISPLAY REGISTERS *****************************************
  743.         ***    á       á       á   *****************************************
  744.  
  745.                 Wheε CEBU╟ i≤ re-entereΣ froφ ß breakpoint¼ thσ Z-80'≤ ì
  746.         registers are saved. They may be displayed by giving the command :-
  747.  
  748.         DR
  749.  
  750.                 Thi≤ result≤ iε ß tw∩ linσ displa∙ tha⌠ wil∞ no⌠ fi⌠ neatl∙ ì
  751.         oε thi≤ 6╕ columε prin⌠ file« Thσ to≡ linσ show≤ thσ flag≤ oµ thσ ì
  752.         norma∞ registe≥ set¼ thσ interrup⌠ enablσ flag¼ thσ content≤ oµ A¼ ì
  753.         B¼ C¼ D¼ E¼ H¼ anΣ ╠ iε thσ maiε registe≥ set¼ thσ S╨ anΣ P├ anΣ thσ ì
  754.         instructioε abou⌠ t∩ bσ executed« Thσ seconΣ linσ show≤ thσ flag≤ ì
  755.         anΣ register≤ oµ thσ alternatσ registe≥ set¼ IX¼ I┘ anΣ thσ content≤ ì
  756.         oµ thσ interrup⌠ vecto≥ register« Iε addition¼ iµ thσ └ registe≥ i≤ ì
  757.         noε zero¼ thσ PC-└ i≤ showε a≤ well« 
  758.  
  759.                 Thσ letter≤ SZHVNC(E⌐ a⌠ thσ star⌠ oµ eacΦ ro≈ represen⌠ thσ ì
  760.         flags« Wheε ß flaτ i≤ on¼ it≤ lette≥ i≤ displayed« Iµ ß flaτ i≤ off¼ ì
  761.         therσ i≤ onl∙ ß space« Iµ onl∙ thσ Zer∩ anΣ Carr∙ flag≤ arσ on¼ theε ì
  762.         " Z   C " is displayed.
  763.  
  764.         S       Sign Flag       S=▒ iµ thσ mos⌠ significan⌠ bi⌠ oµ thσ las⌠ ì
  765.         ááááááááááááááááááááááááarithmetiπ operatioε i≤ onσ - tha⌠ i≤ thσ ì
  766.         ááááááááááááááááááááááááresul⌠ wa≤ negative.
  767.                á
  768.         Z      áZero Flag      áZ=1 if the result was zero
  769.  
  770.         H       Half Carry Flag H=▒ iµ thσ las⌠ arithmetiπ operatioε ì
  771.         ááááááááááááááááááááááááproduceΣ ß carr∙ o≥ borro≈ froφ thσ leas⌠ ì
  772.         áááááááááááááááááááááááásignifican⌠ ┤ bit≤ oµ thσ operation« ╚ i≤ ì
  773.         ááááááááááááááááááááááááuseΣ b∙ DA┴ (Decima∞ Adjus⌠ Accumulator)
  774.                 
  775.         V       Parity/O'flow   Afte≥ aε arithmetiπ instructioε V=▒ iµ therσ ì
  776.         ááááááááááááááááááááááááwa≤ aε overflow« Afte≥ ß logica∞ operatioε ì
  777.         ááááááááááááááááááááááááV=▒ iµ thσ resul⌠ ha≤ eveε parity.
  778.  
  779.  
  780.                                       11
  781.  
  782.  
  783.  
  784.  
  785. è                                                        COMMANDS    E, F, G
  786.  
  787.  
  788.         NáááááááAdd/Sub Flag   áN=1 if the last operation was subtraction.
  789.  
  790.         C      áCarry Flag     áC=1 if the operation produced a carry.
  791.  
  792.                 Thσ ┼ flaτ oε thσ firs⌠ linσ onl∙ indicate≤ thσ statσ oµ thσ ì
  793.         interrup⌠ enablσ flip-flo≡ (IFF)« Iµ interrupt≤ arσ enableΣ thσ ┼ i≤ ì
  794.         displayed, otherwise a space is displayed.
  795.  
  796.  
  797.         ***    á       á       á   *****************************************
  798.         *** E - EXAMINE INPUT PORT *****************************************
  799.         ***    á       á       á   *****************************************
  800.  
  801.         E 14
  802.                áThis reads I/O location 14 and displays the result in hex.
  803.  
  804.  
  805.         **¬                       ******************************************
  806.         *** F - SPECIFY FILE NAME ******************************************
  807.         ***    á       á       á  ******************************************
  808.  
  809.         F ZOOM.COM
  810.         F B:ZOOM.COM
  811.         FZAP.SRC
  812.  
  813.                 Al∞ thesσ writσ thσ filenamσ yo⌡ havσ specifieΣ int∩ thσ ì
  814.         Defaul⌠ Filσ Contro∞ Blocδ a⌠ 005C« Yo⌡ mus⌠ usσ thi≤ commanΣ beforσ ì
  815.         usinτ ╥ o≥ ╫ t∩ reaΣ o≥ writσ ß filσ unles≤ yo⌡ specifieΣ thσ ì
  816.         filenamσ iε thσ CP═ commanΣ linσ whicΦ raε CEBUG.
  817.  
  818.  
  819.         **¬        *********************************************************
  820.         *** G - GO *********************************************************
  821.         ***    á   *********************************************************
  822.  
  823.                áThe Go command has the following format :-
  824.  
  825.         G starting address / breakpoint-1 breakpoint-2 ... breakpoint-n
  826.  
  827.                 Iµ thσ startinτ addres≤ i≤ omitted¼ theε thσ content≤ oµ thσ ì
  828.         Prograφ Counte≥ arσ used« Temporar∙ breakpoint≤ caε bσ specifieΣ ì
  829.         witΦ thσ samσ field≤ a≤ witΦ thσ permanen⌠ breakpoin⌠ commanΣ B« ì
  830.         These fields are :-
  831.  
  832.         R addr {expr} :n
  833.  
  834.                 "Ró i≤ thσ repor⌠ register≤ flag« "addró i≤ thσ addres≤ oµ ì
  835.         thσ breakpoint« "{expr}ó i≤ aε expressioε fo≥ ß conditiona∞ ì
  836.         breakpoint« ":nó specifie≤ tha⌠ thσ breakpoin⌠ wil∞ bσ activσ oε thσ ì
  837.         ntΦ execution« Oncσ thσ prograφ i≤ stoppeΣ b∙ an∙ breakpoint¼ thσ ì
  838.         temporar∙ breakpoint≤ arσ removed.
  839.  
  840.         G
  841.                 Starts executioε froφ curren⌠ content≤ oµ PC.
  842.  
  843.  
  844.  
  845.                                       12
  846.  
  847.  
  848.  
  849.  
  850. è                                                        COMMANDS       H, L
  851.  
  852.  
  853.         G122
  854.                áStarts execution from 122.
  855.  
  856.         G122 /124
  857.                 Start≤ executioε froφ 12▓ bu⌠ put≤ ß temporar∙ breakpoin⌠ a⌠ ì
  858.                á124.   á
  859.  
  860.         G/$3
  861.                 Start≤ executioε a⌠ curren⌠ content≤ oµ PC¼ anΣ set≤ ì
  862.         temporary breakpoint at that address plus 3.
  863.  
  864.         ***    á       á       *********************************************
  865.         *** H - HEX ARITHMATIC *********************************************
  866.         ***    á       á       *********************************************
  867.  
  868.         H expr
  869.                 Evaluate≤ exp≥ (whicΦ coulΣ simpl∙ bσ ß he° number⌐ anΣ ì
  870.         displays the result in hex and decimal.á
  871.  
  872.         H expr1 expr2
  873.                 Evaluate≤ botΦ expression≤ anΣ display≤ expr▒ ½ expr▓ iε he° ì
  874.         and decimal, and expr1 - expr2 in hex and decimal.
  875.  
  876.         H 800%4
  877.         200 512.
  878.  
  879.         H123|2222
  880.         2323 8995.
  881.  
  882.         H12*10.
  883.         00B4 180.
  884.  
  885.         H 123 1000
  886.         1123 4387.,  FI23 61731.
  887.  
  888.  
  889.         ***    á       á       á       á    ********************************
  890.         *** L - LIST IN ASSEMBLER MNEMONICS ********************************
  891.         **¬                                 ********************************
  892.  
  893.         L
  894.         L ,ending address
  895.         L S swath-width
  896.         L beginning-addr
  897.         L beginning-addr ending-addr
  898.         L beginning-addr S swath-width
  899.  
  900.                 Thesσ al∞ lis⌠ thσ specifieΣ memor∙ a≤ line≤ oµ disassembleΣ ì
  901.         Z-8░ code« Thσ firs⌠ threσ format≤ usσ thσ enΣ oµ thσ las⌠ ╠ commanΣ ì
  902.         fo≥ thei≥ startinτ address« Wherσ n∩ endinτ addres≤ o≥ swatΦ widtΦ ì
  903.         i≤ specified¼ thσ defaul⌠ 1╢ line≤ arσ displayed« Iµ thσ └ registe≥ ì
  904.         i≤ noε zer∩ theε al∞ addresse≤ anΣ 1╢ bi⌠ value≤ arσ showε iε ì
  905.         absolutσ anΣ relativσ t∩ └ form« Thσ relativσ value≤ arσ followeΣ b∙ ì
  906.         ß singlσ quotσ '« Iε thσ examplσ tha⌠ follow≤, └ = 2800.
  907.  
  908.  
  909.  
  910.                                       13
  911.  
  912.  
  913.  
  914.  
  915. è                                                        COMMANDS       M, O
  916.  
  917.  
  918.         L@800 @811
  919.         3000   á0800'  áADD  A,B
  920.         3001   á0801'   CALL 3200      á(0A00')
  921.         3004   á0804'  áCALL 3243      á(0A43')
  922.         3007   á0807'  áCALL 3333      á(0B33')
  923.         300A   á080A'  áLD   A,B
  924.         300B   á080B'  áOR   A,C
  925.         300C   á080C'   JR   Z,3000    á(0800')
  926.         300E   á080E'  áINC  HL
  927.         300F   á080F'  áINC  DE
  928.         3010   á0810'  áINC  BC
  929.         3011   á0811'  áLD   A,H 
  930.  
  931.  
  932.         ***    á       á    ************************************************
  933.         **¬ ═ - MOV┼ MEMOR┘ ************************************************
  934.         ***    á       á    ************************************************
  935.  
  936.         M source-addr source-end-addr destination-addr
  937.         M source-addr S swath-width destination-addr
  938.  
  939.                 Thσ firs⌠ forma⌠ move≤ thσ content≤ oµ memor∙ beginninτ witΦ ì
  940.         thσ source-add≥ anΣ endinτ witΦ thσ source-end-add≥ t∩ thσ ì
  941.         destination-addr« Thσ seconΣ forma⌠ use≤ thσ swatΦ widtΦ t∩ ì
  942.         determine the length of the move. 
  943.  
  944.                 Thσ movσ i≤ verifieΣ t∩ ensurσ tha⌠ al∞ byte≤ werσ moveΣ ì
  945.         correctly« CEBU╟ move≤ thσ lowes⌠ bytσ firs⌠ s∩ iµ you≥ destinatioε ì
  946.         overlap≤ you≥ sourcσ anΣ start≤ abovσ thσ sourcσ star⌠ theε par⌠ oµ ì
  947.         you≥ sourcσ wil∞ bσ overwritteε beforσ i⌠ i≤ moved« T∩ avoiΣ thi≤ ì
  948.         yo⌡ coulΣ movσ you≥ datß t∩ anothe≥ areß oµ memor∙ beforσ movinτ i⌠ ì
  949.         t∩ thσ fina∞ destination« Alternativel∙ yo⌡ coulΣ writσ thσ datß ou⌠ ì
  950.         t∩ disδ anΣ reaΣ i⌠ iε a⌠ thσ desireΣ location« Iµ you≥ destinatioε ì
  951.         overlap≤ you≥ sourcσ bu⌠ i≤ lowe≥ thaε it¼ theε thσ datß wil∞ bσ ì
  952.         moveΣ correctl∙ bu⌠ lot≤ oµ error≤ wil∞ bσ reported« Thσ erro≥ ì
  953.         reporting can be stopped by typing any character.
  954.  
  955.  
  956.         ***    á       á       á    ****************************************
  957.         *** O - OUTPUT DATA TO PORT ****************************************
  958.         ***    á       á       á    ****************************************
  959.  
  960.         O data-byte port-address
  961.  
  962.                áThis command writes a byte to an I/O location.
  963.  
  964.         O 07 31
  965.  
  966.                áThis writes 07 to I/O location 31.
  967.  
  968.  
  969.  
  970.  
  971.  
  972.  
  973.  
  974.  
  975.                                       14
  976.  
  977.  
  978.  
  979.  
  980. è                                                        COMMANDS       Q, R
  981.  
  982.  
  983.         ***    á       á     ***********************************************
  984.         *** Q - QUERY MEMORY ***********************************************
  985.         ***    á       á     ***********************************************
  986.  
  987.         Q beginning-address ending-address string-of-bytes
  988.         Q beginning-address S swath-width string-of-bytes
  989.  
  990.                 Thi≤ commanΣ searche≤ througΦ thσ specifieΣ memor∙ fo≥ ß ì
  991.         giveε patterε oµ bytes« Oε eacΦ occurrencσ oµ thσ strinτ beinτ ì
  992.         matched¼ 1╢ byte≤ startinτ a⌠ thσ firs⌠ matcΦ bytσ wil∞ bσ displayeΣ ì
  993.         a≤ iε thσ D═ command« Thσ string-of-byte≤ follow≤ thσ samσ forma⌠ a≤ ì
  994.         thσ S═ command« Thi≤ make≤ ╤ aε invaluablσ commanΣ fo≥ figurinτ ou⌠ ì
  995.         wha⌠ unknowε program≤ do.
  996.  
  997.         Q 100 S1000 CD 05 00
  998.                á
  999.                áThis is a good way of looking for sys-calls in a program.
  1000.  
  1001.         Q 100 2000 'KEYWORD'
  1002.  
  1003.                áSearches for the ASCII string of bytes for KEYWORD.
  1004.  
  1005.  
  1006.         ***    á       á       *********************************************
  1007.         *** R - READ DISK FILE *********************************************
  1008.         ***    á       á       *********************************************
  1009.  
  1010.                 Oncσ yo⌡ havσ useΣ thσ F commanΣ t∩ pu⌠ ß properl∙ formatteΣ ì
  1011.         filenamσ iε thσ FC┬ a⌠ 005C¼ ╥ wil∞ reaΣ tha⌠ filσ int∩ memory« Al∞ ì
  1012.         file≤ arσ reaΣ iε directl∙ excep⌠ fo≥ file≤ witΦ ß .HE╪ extensioε ì
  1013.         whicΦ arσ interpreteΣ a≤ Inte∞ He° forma⌠ files.
  1014.  
  1015.         R      á
  1016.                áSimply reads the file into memory with no displacement.
  1017.  
  1018.         R displacement
  1019.  
  1020.                 Read≤ thσ filσ int∩ memor∙ witΦ ß displacement« Iµ aε Inte∞ ì
  1021.         He° filσ i≤ reaΣ theε thσ filσ i≤ reaΣ int∩ thσ addres≤ specifieΣ iε ì
  1022.         thσ filσ plu≤ thσ displacement« An∙ othe≥ filσ i≤ reaΣ directl∙ int∩ ì
  1023.         memor∙ startinτ a⌠ 10░ plu≤ thσ displacement« Thi≤ i≤ quitσ usefu∞ ì
  1024.         iµ yo⌡ havσ assembleΣ ß prograφ tha⌠ wil∞ residσ abovσ CPM¼ becausσ ì
  1025.         man∙ othe≥ loaΣ program≤ wil∞ refusσ t∩ pu⌠ i⌠ there« Yo⌡ caε loaΣ ì
  1026.         i⌠ int∩ use≥ memor∙ usinτ ß displacemen⌠ anΣ theε movσ i⌠ u≡ t∩ ì
  1027.         where it belongs. 
  1028.  
  1029.                 Wheε thσ ╥ commanΣ i≤ executed¼ CEBU╟ display≤ ß questioε ì
  1030.         marδ iµ therσ i≤ aε erro≥ - filσ no⌠ found¼ checksuφ erro≥ o≥ ì
  1031.         attemptinτ t∩ reaΣ int∩ memor∙ abovσ thσ highes⌠ availablσ address« ì
  1032.         If there are no errors the following message is displayed :-
  1033.  
  1034.  
  1035.  
  1036.  
  1037.  
  1038.  
  1039.  
  1040.                                       15
  1041.  
  1042.  
  1043.  
  1044.  
  1045. è                                                        COMMANDS          S
  1046.  
  1047.  
  1048.         NEXT = xxxx
  1049.         NEXTM = yyyy
  1050.  
  1051.                 Wherσ xxx° i≤ onσ morσ thaε thσ highes⌠ addres≤ loadeΣ b∙ ì
  1052.         al∞ ╥ command≤ s∩ far« yyy∙ i≤ onσ morσ thaε thσ highes⌠ addres≤ ì
  1053.         loaded by this R command.
  1054.  
  1055.  
  1056.         ***    á       á       á       á************************************
  1057.         *** S or SM - SUBSTITUTE MEMORY ************************************
  1058.         ***    á       á       á       á************************************
  1059.  
  1060.         S
  1061.         SM 
  1062.                áStart substituting from where you last left off.
  1063.  
  1064.         S starting-address
  1065.         SM starting-address
  1066.  
  1067.                 Star⌠ substitutinτ froφ thσ addres≤ specified¼ whicΦ ma∙ bσ ì
  1068.         a hex number or an expression. 
  1069.  
  1070.                 CEBU╟ display≤ thσ addres≤ (anΣ thσ relativσ addres≤ iµ └ i≤ ì
  1071.         noε zero)¼ anΣ thσ curren⌠ content≤ oµ thσ address« Yo⌡ ma∙ no≈ ì
  1072.         enter one of the following :-
  1073.  
  1074.         3D (cr)
  1075.  
  1076.                 ┴ datß bytσ whicΦ i≤ writteε int∩ thσ location« CEBU╟ ì
  1077.         returns with the next address.
  1078.  
  1079.         'HELP! I am trapped inside this computer' (cr)
  1080.  
  1081.                áAn ASCII string enclosed by single quotes. 
  1082.  
  1083.         'I am on one line' 0D 0A 'I am on the line below' 0D 0A (cr)
  1084.  
  1085.                 ┴ mixturσ oµ ASCI╔ anΣ hex« Notσ tha⌠ yo⌡ canno⌠ enclosσ ì
  1086.         unprintablσ ASCI╔ iε thσ quotes¼ s∩ yo⌡ mus⌠ specif∙ Carriagσ ì
  1087.         Return≤ anΣ Linσ Feed≤ iε hex.
  1088.  
  1089.         - (cr)
  1090.                 ┴ minu≤ sigε doe≤ no⌠ storσ ß bytσ bu⌠ move≤ yo⌡ bacδ b∙ onσ ì
  1091.         addres≤ location.
  1092.  
  1093.         (cr)
  1094.                 ┴ Carriagσ Returε onl∙ move≤ yo⌡ ont∩ thσ nex⌠ addres≤ ì
  1095.         without changing the contents of the current address.
  1096.  
  1097.          . (cr)
  1098.  
  1099.                 Get≤ yo⌡ ou⌠ oµ thσ Substitutσ Memor∙ modσ anΣ bacδ t∩ thσ ì
  1100.         normal prompt.
  1101.  
  1102.  
  1103.  
  1104.  
  1105.                                       16
  1106.  
  1107.  
  1108.  
  1109.  
  1110. è                                                        COMMANDS      Sr, T
  1111.  
  1112.  
  1113.         ***    á       á       á      **************************************
  1114.         **¬ S≥ - SUBSTITUT┼ REGISTER╙ **************************************
  1115.         ***    á       á       á      **************************************
  1116.  
  1117.                 Thi≤ allow≤ yo⌡ t∩ changσ thσ content≤ oµ thσ buffer≤ whicΦ ì
  1118.         storσ thσ Z-8░ registe≥ content≤ wheε you≥ prograφ enter≤ CEBU╟ froφ ì
  1119.         ß breakpoint« Thi≤ allow≤ yo⌡ t∩ se⌠ u≡ thσ Z-8░ a≤ yo⌡ wisΦ wheε ì
  1120.         yo⌡ re-ente≥ you≥ program« Thσ lette≥ ≥ stand≤ fo≥ thσ registe≥ yo⌡ ì
  1121.         wisΦ t∩ change« Thσ Summar∙ oµ Registe≥ Name≤ tell≤ yo⌡ whicΦ ì
  1122.         letter(s) to use for a particular register. 
  1123.  
  1124.                 Wheε yo⌡ wisΦ t∩ substitutσ thσ flag≤ o≥ alternatσ flag≤ ì
  1125.         ente≥ thσ commanΣ S╞ or SF'« CEBU╟ wil∞ theε displa∙ thσ flag≤ tha⌠ ì
  1126.         arσ se⌠ anΣ wai⌠ fo≥ yo⌡ t∩ typσ iε thσ flag≤ yo⌡ woulΣ likσ t∩ bσ ì
  1127.         set« Iµ ß flaτ i≤ no⌠ entered¼ i⌠ i≤ reset« Iε thσ followinτ ì
  1128.         example≤ thσ programmer'≤ inpu⌠ i≤ iε lowe≥ case.
  1129.  
  1130.         sf (cr)
  1131.         SZH C  zc (cr)
  1132.  
  1133.                 Fo≥ al∞ othe≥ registers¼ CEBU╟ type≤ ou⌠ thσ registe≥ namσ ì
  1134.         anΣ content≤ anΣ yo⌡ ente≥ thσ ne≈ content≤ iε he° o≥ a≤ aε ì
  1135.         expression.
  1136.  
  1137.         sa (cr)
  1138.         A=98 41 (cr)
  1139.  
  1140.         sde (cr)
  1141.         DE=0152 f003 (cr)
  1142.  
  1143.  
  1144.         ***    á      ******************************************************   á 
  1145.         *** T - TRACE ******************************************************
  1146.         ***    á      ******************************************************
  1147.  
  1148.         T
  1149.         T number of instructions (in hex)
  1150.         T {expr}
  1151.  
  1152.                 Thσ firs⌠ forma⌠ trace≤ thσ prograφ througΦ onσ instruction« ì
  1153.         Thσ seconΣ trace≤ througΦ thσ specifieΣ numbe≥ oµ instructions« Thσ ì
  1154.         thirΣ forma⌠ trace≤ unti∞ thσ expressioε i≤ truσ (no⌠ equa∞ t∩ ì
  1155.         zero)« Afte≥ ever∙ instructioε i≤ traced¼ thσ register≤ arσ ì
  1156.         displayed« Tracinτ wil∞ sto≡ iµ yo⌡ pres≤ an∙ key« Tracinτ wil∞ als∩ ì
  1157.         sto≡ iµ ß permanen⌠ breakpoin⌠ i≤ encountereΣ anΣ it≤ condition≤ ì
  1158.         satisfied.
  1159.  
  1160.         T {^B<3}
  1161.                áThis commamd will trace until the B register goes below 3.
  1162.  
  1163.  
  1164.  
  1165.  
  1166.  
  1167.  
  1168.  
  1169.  
  1170.                                       17
  1171.  
  1172.  
  1173.  
  1174.  
  1175. è                                                     COMMANDS   TN, TJ, TNJ
  1176.  
  1177.  
  1178.         ***    á       á       á       *************************************
  1179.         *** TN - TRACE WITH NO DISPLAY *************************************
  1180.         ***    á       á       á       *************************************
  1181.  
  1182.         TN
  1183.         TN number of instructions (in hex)
  1184.         TN {expr}
  1185.  
  1186.                 Thi≤ commanΣ i≤ simila≥ t∩ Tracσ abovσ excep⌠ tha⌠ n∩ ì
  1187.         informatioε i≤ displayeΣ a≤ thσ tracσ progresses« StandarΣ registe≥ ì
  1188.         informatioε i≤ onl∙ displayeΣ wheε thσ tracσ terminates« 
  1189.  
  1190.                 WitΦ ß ┤ Mh· Z-8░ witΦ n∩ wai⌠ states¼ i⌠ take≤ abou⌠ 1┤ ì
  1191.         second≤ t∩ tracσ 100░ he° instructions¼ o≥ jus⌠ ove≥ 10░ he° pe≥ ì
  1192.         second« WitΦ 1░ breakpoint≤ t∩ removσ anΣ replacσ ever∙ tracσ cycle¼ ì
  1193.         i⌠ slow≤ t∩ abou⌠ A░ he° (10░ decimal⌐ instruction≤ pe≥ second« Iµ ì
  1194.         therσ i≤ ß largσ expressioε t∩ evaluatσ theε i⌠ get≤ mucΦ slowe≥ ì
  1195.         thaε this.
  1196.  
  1197.  
  1198.         ***    á       á     ***********************************************
  1199.         *** TJ - TRACE JUMPS ***********************************************
  1200.         ***    á       á     ***********************************************
  1201.  
  1202.         TJ
  1203.         TJ number of instructions (in hex)
  1204.         TJ {expr}
  1205.  
  1206.                 Thi≤ commanΣ i≤ simila≥ t∩ thσ Tracσ commanΣ excep⌠ tha⌠ ì
  1207.         breakpoint≤ arσ onl∙ placeΣ iε thσ use≥ prograφ beforσ instruction≤ ì
  1208.         whicΦ alte≥ thσ prograφ counte≥ (JP¼ JR¼ CAL╠ anΣ RE╘ instructions)« ì
  1209.         Thσ register≤ wil∞ bσ displayed¼ thσ numbe≥ oµ instruction≤ counte≥ ì
  1210.         decrememteΣ anΣ thσ expressioε evaluateΣ onl∙ wheε onσ oµ thesσ ì
  1211.         instructions is encountered.
  1212.  
  1213.         TJ
  1214.                 Wil∞ causσ thσ prograφ t∩ bσ executeΣ unti∞ thσ nex⌠ P├ ì
  1215.         alterinτ instructioε i≤ reached« Thσ register≤ wil∞ theε bσ ì
  1216.         displayed and CEBUG will prompt you for a command.
  1217.  
  1218.  
  1219.         ***    á       á       á       á      ******************************
  1220.         *** TNJ - TRACE JUMPS WITH NO DISPLAY ******************************
  1221.         ***    á       á       á       á      ******************************
  1222.  
  1223.         TNJ
  1224.         TNJ number of instructions (in hex)
  1225.         TNJ {expr}
  1226.  
  1227.                 Thi≤ i≤ simila≥ t∩ thσ T╩ commanΣ abovσ excep⌠ tha⌠ n∩ ì
  1228.         informatioε i≤ displayeΣ a≤ thσ tracσ progresses« Wheε thσ tracσ ì
  1229.         terminates, the standard register information is displayed.
  1230.  
  1231.  
  1232.  
  1233.  
  1234.  
  1235.                                       18
  1236.  
  1237.  
  1238.  
  1239.  
  1240. è                                                        COMMANDS    V, W, Z
  1241.  
  1242.  
  1243.         ***    á       á      **********************************************
  1244.         *** V - VERIFY MEMORY **********************************************
  1245.         ***    á       á      **********************************************
  1246.  
  1247.         V source-addr source-end destination-addr
  1248.         V source-addr S swath-width destination-addr
  1249.  
  1250.                 Thi≤ commanΣ read≤ eacΦ bytσ oµ thσ sourcσ blocδ oµ memor∙ ì
  1251.         anΣ compare≤ i⌠ witΦ thσ correspondinτ bytσ oµ thσ destinatioε ì
  1252.         block« Iµ ß discrepanc∙ i≤ found¼ i⌠ i≤ displayeΣ iε thσ followinτ ì
  1253.         order║ sourcσ address¼ sourcσ contents¼ destinatioε contents¼ ì
  1254.         destinatioε address« Iε thσ examplσ tha⌠ follows¼ location≤ 000│ anΣ ì
  1255.         1003 contain different data. The same is true of 0008 and 1008.
  1256.  
  1257.         V 0 S30 1000
  1258.         0003 32 12 1003
  1259.         0008 7A 5A 1008
  1260.  
  1261.  
  1262.         ***    á       á       á********************************************
  1263.         *** W - WRITE DISK FILE ********************************************
  1264.         ***    á       á       á********************************************
  1265.  
  1266.                 Thσ ╫ commanΣ i≤ useΣ t∩ writσ ou⌠ part≤ oµ memor∙ t∩ ß disδ ì
  1267.         file« Thσ filσ namσ must havσ previousl∙ beeε specifieΣ witΦ thσ ╞ ì
  1268.         commanΣ o≥ havσ beeε followinτ CEBU╟ oε thσ commanΣ linσ yo⌡ gavσ t∩ ì
  1269.         CPM. There are four possible command formats :-
  1270.  
  1271.         W
  1272.                 Start≤ a⌠ 10░ anΣ end≤ a⌠ thσ addres≤ showε iε thσ NEXT╜ ì
  1273.         line which was displayed after the last R command.
  1274.  
  1275.         W beginning-addr ending-addr
  1276.         W beginning-addr S swath-width
  1277.  
  1278.                 Beginninτ anΣ enΣ addresse≤ arσ specifieΣ directl∙ o≥ usinτ ì
  1279.         the S swath operator.
  1280.  
  1281.         W ,ending-addr 
  1282.                 
  1283.                 Thσ beginninτ addres≤ i≤ 10░ anΣ thσ enΣ i≤ specifieΣ ì
  1284.         directly.
  1285.  
  1286.  
  1287.         **¬               **************************************************
  1288.         *** Z -ZAP MEMORY **************************************************
  1289.         ***    á       á  **************************************************
  1290.  
  1291.         Z beginning-addr ending-addr string-of-bytes
  1292.         Z beginning-addr S swath-width string-of-bytes
  1293.  
  1294.                 Thσ specifieΣ portioε oµ memor∙ i≤ initialiseΣ witΦ thσ ì
  1295.         strinτ oµ byte≤ repeateΣ ove≥ anΣ over« Thσ forma⌠ fo≥ thσ strinτ oµ ì
  1296.         bytes is the same as with the S substitute memory command.
  1297.  
  1298.  
  1299.  
  1300.                                       19
  1301.  
  1302.  
  1303.  
  1304.  
  1305. è                                                       NOTES ON BREAKPOINTS
  1306.  
  1307.  
  1308.         ***** NOTES ON BREAKPOINTS *****************************************
  1309.  
  1310.         *** HOW BREAKPOINTS AND TRACES WORK ***
  1311.  
  1312.                 Wheε CEBU╟ set≤ ß breakpoin⌠ a⌠ ß particula≥ address¼ sa∙ ì
  1313.         10╡ iε thσ followinτ example¼ i⌠ change≤ thσ bytσ a⌠ tha⌠ locatioε ì
  1314.         t∩ F╖ whicΦ i≤ onσ oµ thσ RS╘ restar⌠ instructions« F╖ i≤ ß singlσ ì
  1315.         bytσ instructioε whicΦ tell≤ thσ Z-8░ t∩ cal∞ t∩ subroutinσ a⌠ 0030« ì
  1316.         Hencσ thσ namσ oµ thi≤ instructioε - RS╘ 30« CEBU╟ als∩ write≤ int∩ ì
  1317.         location≤ 003░ t∩ 003▓ ß jum≡ instructioε bacδ t∩ ß specia∞ entr∙ ì
  1318.         poin⌠ iε CEBUG« Thσ resul⌠ i≤ tha⌠ wheε thσ Z-8░ run≤ thσ ì
  1319.         instructioε a⌠ 105¼ i⌠ doe≤ no⌠ executσ thσ instructioε yo⌡ pu⌠ ì
  1320.         there¼ bu⌠ pushe≤ ß returε addres≤ (10╢ iε thi≤ case⌐ oε thσ stack¼ ì
  1321.         jump≤ t∩ 003░ anΣ froφ therσ jump≤ bacδ int∩ CEBUG« Thσ content≤ oµ ì
  1322.         thσ Z-80'≤ register≤ arσ saveΣ anΣ CEBUG¼ pop≤ thσ stacδ t∩ finΣ ou⌠ ì
  1323.         wherσ thσ F╖ was.
  1324.  
  1325.                 CEBU╟ maintain≤ ß lis⌠ oµ thσ breakpoint≤ i⌠ ha≤ set¼ anΣ ì
  1326.         thσ bytσ tha⌠ reall∙ belong≤ iε eacΦ location¼ anΣ i⌠ restore≤ thσ ì
  1327.         breakpoin⌠ location≤ t∩ thei≥ prope≥ values« Therσ arσ fou≥ possiblσ ì
  1328.         reason≤ wh∙ thσ proccesso≥ raε aε F╖ (RS╘ 30⌐ instructioε :- 
  1329.  
  1330.         1»      Thσ F╖ wa≤ a⌠ aε addres≤ wherσ ß permanen⌠ breakpoin⌠ wa≤ ì
  1331.         ááááááááset« Iµ thσ breakpoin⌠ a⌠ thi≤ addres≤ i≤ unconditiona∞ o≥ ì
  1332.         ááááááááiµ CEBU╟ figure≤ ou⌠ tha⌠ it≤ condition≤ arσ satisfieΣ theε ì
  1333.         ááááááááCEBU╟ display≤ thσ registe≥ content≤ anΣ prompt≤ yo⌡ fo≥ ß ì
  1334.         áááááááácommand« Iµ thσ condition≤ (number-of-instruction≤ o≥ ì
  1335.         áááááááá{expr}⌐ arσ no⌠ satisfieΣ theε CEBU╟ allow≤ thσ prograφ t∩ ì
  1336.         áááááááárun as if the breakpoint had not been encountered. 
  1337.  
  1338.         2/ááááááThσ F╖ wa≤ a⌠ aε addres≤ wherσ ß temporar∙ breakpoin⌠ wa≤ ì
  1339.         ááááááááset« Thσ procces≤ i≤ a≤ abovσ bu⌠ iµ CEBU╟ decide≤ no⌠ t∩ ì
  1340.         áááááááácontinuσ iε thσ prograφ anΣ thereforσ t∩ promp⌠ yo⌡ fo≥ ß ì
  1341.         áááááááácommand¼ theε al∞ temporar∙ breakpoint≤ (includinτ thi≤ one⌐ ì
  1342.         ááááááááare removed from the list.
  1343.                á
  1344.         3»      Thσ F╖ wa≤ pu⌠ a⌠ thi≤ addres≤ a≤ par⌠ oµ ß Tracσ operation« ì
  1345.         ááááááááFo≥ instancσ iµ CEBU╟ haΣ jus⌠ traceΣ thσ L─ HL,880░ ì
  1346.         ááááááááinstructioε a⌠ 0102¼ i⌠ woulΣ havσ placeΣ ß F╖ a⌠ 010╡ s∩ ì
  1347.         áááááááátha⌠ a≤ sooε a≤ 010▓ haΣ beeε executed¼ thσ Z-8░ woulΣ jum≡ ì
  1348.         áááááááábacδ int∩ CEBUG« A≤ abovσ i⌠ restore≤ al∞ breakpoin⌠ ì
  1349.         áááááááálocation≤ t∩ therσ prope≥ values¼ anΣ check≤ an∙ condition≤ ì
  1350.         ááááááááor counts to see whether to :-
  1351.  
  1352.         ááááááááa/     áTrace one more instruction. 
  1353.         ááááááááb»      Displa∙ register≤ anΣ tracσ onσ morσ instruction.
  1354.         áááááááác/     áDisplay registers and prompt for a command.
  1355.         áááááááád»      Se⌠ ß breakpoin⌠ somewherσ elsσ anΣ returε t∩ thσ ì
  1356.         áááááááá        program« Thi≤ coulΣ bσ thσ casσ iµ onσ oµ thσ Tracσ ì
  1357.         ááááááááááááááááove≥ Call≤ o≥ Jump≤ commands has been given.
  1358.  
  1359.  
  1360.  
  1361.  
  1362.  
  1363.  
  1364.  
  1365.                                       20
  1366.  
  1367.  
  1368.  
  1369.  
  1370. è                                                       NOTES ON BREAKPOINTS
  1371.  
  1372.  
  1373.         4/ááááááThσ addres≤ tha⌠ thσ F╖ wa≤ a⌠ diΣ no⌠ appea≥ iε thσ granΣ ì
  1374.         áááááááális⌠ oµ breakpoints« Thi≤ mean≤ tha⌠ thσ Z-8░ mos⌠ likel∙ ì
  1375.         ááááááááraε thi≤ F╖ b∙ accident« CEBU╟ display≤ thσ register≤ ì
  1376.         ááááááááshowinτ thσ locatioε oµ thσ F╖ RS╘ 3░ instructioε anΣ ì
  1377.         ááááááááprompts you for a command.
  1378.  
  1379.         ADDR   áDATA    MNEMONIC
  1380.  
  1381.         0100  *á3E     áLD     áA, 32
  1382.         0101   á22
  1383.         0102  *á21     áLD     áHL, 8800
  1384.         0103   á00
  1385.         0104   á88
  1386.         0105  *á77     áLD     á(HL), A   <<<< F7 written in here. 
  1387.         0106  *á23     áINC    áHL
  1388.         0107  *á11     áLD     áDE, 8923
  1389.         0108   á23
  1390.         0109   á89
  1391.  
  1392.               * A star means this is the first byte of an instruction.
  1393.  
  1394.  
  1395.                 Iµ therσ arσ place≤ iε you≥ prograφ whicΦ thσ Z-8░ shoulΣ ì
  1396.         no⌠ normall∙ ge⌠ to¼ theε yo⌡ coulΣ writσ F7≤ a⌠ thesσ location≤ s∩ ì
  1397.         tha⌠ contro∞ wil∞ returε t∩ yo⌡ immediatel∙ onσ oµ thesσ ì
  1398.         instruction≤ i≤ ruε a≤ iε 4» above« Sincσ CEBU╟ doe≤ no⌠ writσ thσ ì
  1399.         jum≡ instructioε int∩ 003░ unti∞ yo⌡ havσ useΣ thσ breakpoin⌠ o≥ ì
  1400.         tracσ functions¼ bσ surσ t∩ d∩ a⌠ leas⌠ onσ tracσ o≥ se⌠ onσ ì
  1401.         breakpoin⌠ beforσ relyinτ oε thi≤ facility.
  1402.  
  1403.                 Wheε CEBU╟ return≤ contro∞ t∩ thσ prograφ unde≥ test¼ ì
  1404.         i⌠ set≤ al∞ thσ permanen⌠ anΣ temporar∙ breakpoints¼ savinτ thσ ì
  1405.         prope≥ content≤ oµ thosσ byte≤ somewherσ iε CEBUG« I⌠ theε load≤ u≡ ì
  1406.         thσ Z-80'≤ register≤ froφ wherσ the∙ werσ storeΣ anΣ jump≤ bacδ t∩ ì
  1407.         thσ appropriatσ locatioε iε thσ program« Iε somσ case≤ i⌠ mus⌠ bσ ì
  1408.         morσ complicateΣ thaε this« Iµ CEBU╟ i≤ tracing¼ i⌠ mus⌠ figurσ ou⌠ ì
  1409.         wherσ thσ Z-8░ i≤ goinτ t∩ reaΣ its nex⌠ instructioε from afte≥ thσ ì
  1410.         curren⌠ one¼ becausσ i⌠ ha≤ t∩ pu⌠ ß breakpoin⌠ there« Iε mos⌠ case≤ ì
  1411.         thi≤ i≤ simpl∙ thσ nex⌠ instructioε 1¼ 2¼ │ o≥ ┤ byte≤ afte≥ thσ ì
  1412.         curren⌠ one« Iε othe≥ case≤ sucΦ a≤ conditiona∞ call≤ anΣ jum≡ t∩ ì
  1413.         (HL)¼ (IX⌐ o≥ (IY)¼ CEBU╟ mus⌠ looδ a⌠ thσ curren⌠ instruction¼ thσ ì
  1414.         flag≤ anΣ thσ content≤ oµ register≤ t∩ correctl∙ decidσ wherσ t∩ ì
  1415.         put the next breakpoint.
  1416.  
  1417.                 Aε eveε morσ complicateΣ situatioε exist≤ wherσ ß permanen⌠ ì
  1418.         breakpoin⌠ ha≤ jus⌠ beeε encountereΣ anΣ CEBU╟ i≤ returninτ t∩ thσ ì
  1419.         instructioε whicΦ belong≤ a⌠ tha⌠ breakpoint« Iε thi≤ casσ i⌠ mus⌠ ì
  1420.         no⌠ pu⌠ F╖ iε thi≤ location¼ bu⌠ mus⌠ leavσ thσ origina∞ bytσ therσ ì
  1421.         anΣ se⌠ ß temporar∙ breakpoin⌠ a⌠ thσ locatioε whicΦ thσ Z-8░ wil∞ ì
  1422.         reaΣ it≤ nex⌠ instructioε froφ afte≥ thσ curren⌠ instruction« Iε thσ ì
  1423.         abovσ examplσ thi≤ woulΣ entai∞ putinτ ß F╖ a⌠ 010╢ anΣ leavinτ thσ ì
  1424.         7╖ a⌠ 0105« Thi≤ breakpoin⌠ i≤ neccesar∙ s∩ tha⌠ a≤ sooε a≤ thσ 7╖ ì
  1425.         instructioε a⌠ 010╡ ha≤ beeε exexuted¼ contro∞ wil∞ bσ returneΣ t∩ ì
  1426.         CEBU╟ s∩ i⌠ caε pu⌠ aε F╖ a⌠ 010╡ agaiε s∩ tha⌠ thσ permanen⌠ ì
  1427.         breakpoin⌠ wil∞ operate.
  1428.  
  1429.  
  1430.                                       21
  1431.  
  1432.  
  1433.  
  1434.  
  1435. è                                                               HANDY HINTS
  1436.  
  1437.  
  1438.         *** THE LIMITATIONS OF BREAKPOINTS AND TRACES ***
  1439.  
  1440.                 Onσ obviou≤ limitatioε i≤ tha⌠ i⌠ i≤ impossiblσ t∩ tracσ o≥ ì
  1441.         se⌠ breakpoint≤ iε ReaΣ Onl∙ Memory« Selµ modifyinτ codσ woulΣ ì
  1442.         almos⌠ certainl∙ causσ headache≤ a≤ well« Yo⌡ mus⌠ bσ surσ tha⌠ thσ ì
  1443.         locatioε yo⌡ arσ specifyinτ a≤ ß breakpoin⌠ i≤ thσ firs⌠ bytσ oµ aε ì
  1444.         instructioε - othe≥ wisσ thσ Z-8░ wil∞ no⌠ interpre⌠ thσ F╖ a≤ ì
  1445.         desired« ╔ havσ no⌠ ye⌠ trieΣ usinτ CEBU╟ oε ß grou≡ oµ program≤ ì
  1446.         driveε b∙ ß numbe≥ oµ interrupts¼ bu⌠ ╔ imaginσ i⌠ woulΣ ge⌠ prett∙ ì
  1447.         dicey« M∙ ultimatσ weapoε fo≥ dealinτ witΦ sucΦ ß situatioε i≤ m∙ ì
  1448.         homσ bre≈ compute≥ (C┴ 1978⌐ whicΦ ha≤ ß he° displa∙ oµ thσ addres≤ ì
  1449.         anΣ datß busses¼ anΣ thσ abilit∙ t∩ usσ thσ Z-8░ wai⌠ linσ t∩ ì
  1450.         single-cyclσ througΦ instruction≤ memor∙ acces≤ b∙ memor∙ access« ì
  1451.         Thi≤ compute≥ ha≤ ß 1╢ bi⌠ latcΦ anΣ comparato≥ s∩ wheneve≥ ß ì
  1452.         particula≥ memor∙ locatioε i≤ reaΣ o≥ writteε into¼ thσ Z-8░ wait≤ ì
  1453.         anΣ yo⌡ caε singlσ cyclσ froφ there« Hopefull∙ thi≤ frontpane∞ iε ì
  1454.         combinatioε witΦ CEBU╟ anΣ ß fas⌠ printe≥ wil∞ bσ aε invinciblσ ì
  1455.         combinatioε iε thσ wa≥ agains⌠ gremlins.
  1456.  
  1457.                 Sincσ thσ tracσ procces≤ i≤ rathe≥ slo≈ compareΣ t∩ norma∞ ì
  1458.         executioε speeΣ (seσ ╘ - TRAC┼ command)¼ yo⌡ wil∞ no⌠ bσ ablσ t∩ ì
  1459.         dea∞ easil∙ witΦ program≤ tha⌠ havσ t∩ kee≡ u≡ witΦ thσ rea∞ world« ì
  1460.         Thi≤ i≤ wherσ thσ Tracσ ove≥ Call≤ come≤ iε handy« Anothe≥ probleφ ì
  1461.         exist≤ wherσ thσ prograφ unde≥ tes⌠ call≤ CP═ througΦ 000╡ t∩ d∩ ß ì
  1462.         sys-call« Yo⌡ canno⌠ reall∙ tracσ you≥ wa∙ int∩ thσ gizzard≤ oµ CP═ ì
  1463.         becausσ CEBU╟ i≤ usinτ thσ samσ pathwa∙ t∩ communicatσ witΦ you« ì
  1464.         AlthougΦ i⌠ i≤ possiblσ t∩ tracσ througΦ ß piecσ oµ codσ anΣ usσ i⌠ ì
  1465.         a≤ well¼ yo⌡ ruε int∩ problem≤ witΦ thσ CEBU╟ acces≤ overwritinτ ì
  1466.         datß storeΣ iε RA═ tha⌠ wa≤ pu⌠ therσ a≤ par⌠ oµ thσ prograφ unde≥ ì
  1467.         test« Iµ yo⌡ wan⌠ t∩ tracσ througΦ CPM¼ m∙ advicσ i≤ t∩ generatσ ß ì
  1468.         32╦ CP═ tha⌠ yo⌡ caε loaΣ unde≥ CEBU╟ anΣ onl∙ tracσ througΦ thσ ì
  1469.         part≤ tha⌠ yo⌡ neeΣ to« Yo⌡ shoulΣ takσ thσ samσ approacΦ iµ yo⌡ ì
  1470.         wan⌠ t∩ tracσ througΦ parts of CEBUG.
  1471.  
  1472.  
  1473.         ***** HANDY HINTS **************************************************
  1474.  
  1475.                 Successfu∞ compute≥ hackinτ require≤ aε intimatσ knowledgσ ì
  1476.         oµ ever∙ componen⌠ yo⌡ arσ dealinτ with¼ o≥ aε inquisitivσ desirσ t∩ ì
  1477.         aquirσ tha⌠ knowledge« Yo⌡ shoulΣ kno≈ enougΦ abou⌠ TT╠ anΣ thσ ì
  1478.         largσ MO╙ device≤ iε you≥ systeφ no⌠ t∩ bσ scareΣ oµ them¼ anΣ yo⌡ ì
  1479.         neeΣ thorougΦ origina∞ datß sheet≤ iµ yo⌡ arσ talkinτ directl∙ t∩ ì
  1480.         ß PIO¼ CTC¼ SI╧ o≥ Flopp∙ Disδ Controller« Yo⌡ definitel∙ neeΣ t∩ bσ ì
  1481.         conversan⌠ witΦ thσ inne≥ working≤ oµ CPM¼ anΣ thσ Digita∞ ResearcΦ ì
  1482.         CP═ documentatioε i≤ no⌠ reall∙ mucΦ hel≡ t∩ thσ uninitiated« ╔ havσ ì
  1483.         founΣ thσ "Osbournσ CP/═ Use≥ Guideó t∩ bσ ver∙ usefu∞ althougΦ thσ ì
  1484.         Digita∞ ReseacΦ blurb≤ arσ sometime≤ handy« 
  1485.  
  1486.                 Mos⌠ importantl∙ yo⌡ neeΣ t∩ havσ ß clea≥ understandinτ oµ ì
  1487.         wha⌠ thσ Z-8░ i≤ al∞ about« Therσ arσ variou≤ unofficia∞ book≤ oε Z-ì
  1488.         8░ programminτ whicΦ ╔ havσ no⌠ used¼ bu⌠ arσ n∩ doub⌠ oµ somσ ì
  1489.         value« Thσ Ziloτ "Z-8░ Assembl∙ Languagσ Programminτ Manualó ha≤ thσ ì
  1490.         officia∞ Ziloτ Mnemonic≤ whicΦ yo⌡ neeΣ t∩ kno≈ fo≥ assembl∙ ì
  1491.         programming¼ anΣ ß detaileΣ explanatioε oµ exactl∙ wha⌠ eacΦ ì
  1492.         instructioε does« Howeve≥ thσ booδ tha⌠ ╔ caε mos⌠ highl∙ recommenΣ ì
  1493.  
  1494.  
  1495.                                       22
  1496.  
  1497.  
  1498.  
  1499.  
  1500. è                                                               INSIDE CEBUG
  1501.  
  1502.  
  1503.         i≤ thσ Ziloτ (o≥ Mostek⌐ 7▓ pagσ "Z-8░ Technica∞ Manual"« Thi≤ i≤ ì
  1504.         thσ Z-8░ Biblσ anΣ yo⌡ can'⌠ g∩ t∩ heaveε withou⌠ ití I⌠ give≤ yo⌡ ß ì
  1505.         completσ descriptioε oµ wha⌠ thσ Z-8░ i≤ a≤ ß piecσ oµ electronic≤ - ì
  1506.         electrica∞ characteristic≤ anΣ timinτ diagram≤ dowε t∩ thσ ten≤ oµ ì
  1507.         nanoseconds« Oµ greates⌠ importancσ i≤ thσ wa∙ thσ instructioε se⌠ ì
  1508.         i≤ presenteΣ - eacΦ oµ thσ 1┤ page≤ deal≤ witΦ ß differen⌠ grou≡ oµ ì
  1509.         instruction≤ whicΦ arσ showε a≤ ß griΣ oµ he° numbers« Findinτ thσ ì
  1510.         instructioε yo⌡ want¼ o≥ findinτ ou⌠ whethe≥ i⌠ exist≤ o≥ no⌠ i≤ ì
  1511.         ver∙ easy« Fo≥ instancσ al∞ thσ ╕ bi⌠ load≤ arσ iε onσ table¼ anΣ ì
  1512.         yo⌡ caε instantl∙ seσ tha⌠ yo⌡ caε writσ thσ content≤ oµ registe≥ ─ ì
  1513.         int∩ (HL⌐ bu⌠ no⌠ int∩ (BC)« Thσ "Z-8░ Technica∞ Manualó give≤ yo⌡ ì
  1514.         aε intimatσ anΣ graphiπ understandinτ oµ al∞ thσ Z-80'≤ nook≤ anΣ ì
  1515.         crannies¼ anΣ i≤ aε invaluablσ referencσ wheε debugginτ programs.
  1516.  
  1517.  
  1518.         ***** INSIDE CEBUG *************************************************
  1519.  
  1520.         *** GENERALITIES ***
  1521.  
  1522.                 Quitσ ß numbe≥ oµ change≤ havσ beeε madσ t∩ Cromemco'≤ DEBU╟ ì
  1523.         t∩ makσ i⌠ int∩ CEBUG« I⌠ woulΣ takσ to∩ mucΦ spacσ t∩ documen⌠ theφ ì
  1524.         full∙ herσ bu⌠ ╔ wil∞ discus≤ wha⌠ ╔ havσ done¼ anΣ wha⌠ ╔ kno≈ ì
  1525.         abou⌠ thσ working≤ oµ DEBU╟ s∩ tha⌠ yo⌡ wil∞ bσ ablσ t∩ makσ you≥ ì
  1526.         owε modification≤ withou⌠ re-inventinτ thσ wheel« Therσ arσ threσ ì
  1527.         maiε section≤ t∩ thσ prograφ :-
  1528.  
  1529.  
  1530.         0100 to 01CD    INITIALISATIO╬ SECTIO╬ - Relocate≤ thσ residen⌠ ì
  1531.         áááááááááááááááásection int∩ higΦ memory.
  1532.  
  1533.         0300 to 24D6   áRESIDENT SECTION  - CEBUG Proper.
  1534.  
  1535.         24D7 to 2910    LIS╘ oµ BIT╙ whicΦ specif∙ whicΦ byte≤ oµ thσ ì
  1536.         ááááááááááááááááResiden⌠ Sectioε mus⌠ bσ changeΣ s∩ tha⌠ i⌠ wil∞ ruε ì
  1537.         ááááááááááááááááiε higΦ memory.
  1538.  
  1539.         2911 to 2CFF    Somσ weirΣ bit≤ whicΦ ╔ woulΣ rathe≥ no⌠ tr∙ t∩ ì
  1540.         ááááááááááááááááexplain« Sometime≤ essentia∞ t∩ thσ prope≥ operatioε ì
  1541.         ááááááááááááááááoµ thσ Initialisatioε Section« 
  1542.  
  1543.         *** INITIALISATION SECTION ***
  1544.  
  1545.                 Lis⌠ 014╕ t∩ 01C─ t∩ seσ wha⌠ thi≤ sectioε i≤ doing« 010░ ì
  1546.         jump≤ straigh⌠ t∩ 14╕ whicΦ print≤ ou⌠ thσ sigε oε messagσ whicΦ ì
  1547.         start≤ a⌠ 0202« 015│ load≤ H╠ witΦ thσ addres≤ oµ thσ jum≡ a⌠ 000╡ ì
  1548.         whicΦ point≤ t∩ thσ to≡ oµ use≥ memor∙ - thσ bottoφ oµ BDOS« 015╖ ì
  1549.         load≤ B├ witΦ thσ content≤ oµ 0200« Thi≤ numbe≥ - 21D╖ - point≤ t∩ ì
  1550.         thσ star⌠ oµ thσ relocatioε bi⌠ lis⌠ minu≤ 300« Sincσ thσ residen⌠ ì
  1551.         sectioε start≤ a⌠ 030░ anΣ end≤ a⌠ thσ star⌠ oµ thσ bi⌠ list¼ thi≤ ì
  1552.         numbe≥ i≤ thσ numbe≥ oµ byte≤ iε thσ residen⌠ section« Iε thσ ì
  1553.         origina∞ DEBUG¼ thσ bi⌠ lis⌠ starteΣ a⌠ 23D7¼ bu⌠ ╔ moveΣ i⌠ u≡ b∙ ì
  1554.         10░ t∩ givσ rooφ fo≥ thσ extrß program≤ ╔ havσ addeΣ a⌠ thσ enΣ oµ ì
  1555.         thσ residen⌠ section.
  1556.  
  1557.  
  1558.  
  1559.  
  1560.                                       23
  1561.  
  1562.  
  1563.  
  1564.  
  1565. è                                                               INSIDE CEBUG
  1566.  
  1567.  
  1568.                 015├ subract≤ thσ lengtΦ oµ thσ residen⌠ sectioε froφ thσ ì
  1569.         addres≤ oµ thσ bottoφ oµ BDOS¼ anΣ 015┼ round≤ thσ resul⌠ t∩ thσ ì
  1570.         nex⌠ lowes⌠ 10░ bytes« Thi≤ i≤ wherσ CEBU╟ i≤ goinτ t∩ start¼ anΣ i≤ ì
  1571.         thereforσ thσ ne≈ to≡ oµ use≥ memory« Thi≤ valuσ i≤ writteε int∩ thσ ì
  1572.         jum≡ instructioε a⌠ 000╡ s∩ tha⌠ al∞ sys-call≤ wil∞ g∩ t∩ thσ bottoφ ì
  1573.         oµ CEBU╟ anΣ al∞ use≥ program≤ wil∞ thinδ tha⌠ BDO╙ start≤ there« ì
  1574.         016│ t∩ 018┼ work≤ througΦ thσ residen⌠ sectioε anΣ look≤ a⌠ eacΦ ì
  1575.         bi⌠ iε thσ bi⌠ lis⌠ t∩ seσ iµ i⌠ wil∞ adΣ (0006⌐ - thσ addres≤ oµ ì
  1576.         thσ bottoφ oµ CEBU╟ t∩ eacΦ bytσ oµ CEBUG« Thσ firs⌠ bytσ oµ thσ bi⌠ ì
  1577.         lis⌠ i≤ 24D╖ whicΦ i≤ 0┤ o≥ 000░ 010░ iε binary« Thesσ arσ thσ bit≤ ì
  1578.         fo≥ thσ byte≤ 030░ t∩ 0307¼ anΣ thσ ▒ mean≤ tha⌠ thσ bytσ a⌠ 030╡ ì
  1579.         mus⌠ havσ (0006⌐ addeΣ t∩ it« Al∞ thesσ byte≤ whicΦ mus⌠ bσ changeΣ ì
  1580.         arσ thσ mos⌠ significan⌠ bytσ oµ ß 1╢ bi⌠ addres≤ referencσ t∩ ì
  1581.         somethinτ insidσ CEBU╟ anΣ thereforσ thei≥ correc⌠ valuσ depend≤ oε ì
  1582.         wherσ CEBU╟ i≤ running« Sincσ CEBU╟ alway≤ start≤ oε aε addres≤ XX0░ ì
  1583.         wherσ thσ leas⌠ significan⌠ bytσ i≤ alway≤ zero¼ i⌠ i≤ no⌠ neccesar∙ ì
  1584.         t∩ changσ thσ leas⌠ significan⌠ bytσ oµ al∞ thesσ addres≤ ì
  1585.         references.
  1586.  
  1587.                 Oncσ thσ byte≤ havσ beeε changed¼ thσ blocδ movσ a⌠ 019╡ ì
  1588.         move≤ thσ residen⌠ sectioε u≡ t∩ it≤ appointeΣ statioε jus⌠ belo≈ ì
  1589.         BDOS« Therσ i≤ ß seconΣ blocδ movσ a⌠ 019─ anΣ whilσ ╔ havσ no⌠ ye⌠ ì
  1590.         figureΣ ou⌠ it≤ function¼ i⌠ onl∙ move≤ ╣ byte≤ anΣ ╔ woulΣ sa∙ tha⌠ ì
  1591.         i⌠ ha≤ somethinτ t∩ d∩ witΦ jum≡ tables« Thσ blocδ movσ a⌠ 01B╕ ì
  1592.         copie≤ thσ littlσ prograφ 01C┴ t∩ 01C─ u≡ t∩ 2D00 whicΦ i≤ thσ ì
  1593.         highes⌠ addres≤ changeΣ b∙ CEBUG.COM« 01F╞ jump≤ int∩ i⌠ anΣ i⌠ set≤ ì
  1594.         thσ areß tha⌠ CEBU╟ occupieΣ iε lo≈ memor∙ (010░ t∩ 2D00⌐ t∩ zeroes« ì
  1595.         Wheε tha⌠ i≤ donσ i⌠ jump≤ int∩ thσ CEBU╟ residen⌠ sectioε whicΦ ì
  1596.         put≤ ou⌠ it≤ prompt« Thσ CEBU╟ residen⌠ sectioε i≤ 8.5╦ lonτ s∩ thσ ì
  1597.         top of the Transient Program area is this much lower than normal.
  1598.  
  1599.  
  1600.         *** RESIDENT SECTION ***
  1601.  
  1602.                 ╔ havσ onl∙ exploreΣ thσ area≤ ╔ needeΣ t∩ iε thi≤ section« ì
  1603.         Thσ codσ i≤ writteε iε ß ver∙ compac⌠ anΣ convoluteΣ fashioε ì
  1604.         whicΦ make≤ i⌠ quitσ difficul⌠ t∩ follow¼ bu⌠ ╔ aφ surσ thi≤ stylσ ì
  1605.         ha≤ beeε neccesar∙ t∩ fi⌠ al∞ oµ DEBUG'≤ feature≤ int∩ 8.╡ K« Wheε ì
  1606.         ╔ conside≥ wha⌠ i⌠ al∞ does¼ anΣ thσ fac⌠ tha⌠ i⌠ i≤ dealinτ witΦ ì
  1607.         thσ ver∙ irregula≥ instructioε se⌠ oµ thσ Z-80¼ ╔ concludσ tha⌠ ì
  1608.         DEBU╟ i≤ quitσ ß program« ╔ wil∞ discus≤ onl∙ thσ area≤ whicΦ ╔ havσ ì
  1609.         changeΣ anΣ thσ area≤ whicΦ coulΣ bσ troublesomσ iε thσ future« Wheε ì
  1610.         yo⌡ looδ a⌠ thσ residen⌠ sectioε iε lo≈ memory¼ remembe≥ tha⌠ al∞ ì
  1611.         thσ interna∞ addres≤ reference≤ arσ 30░ belo≈ wha⌠ the∙ woulΣ bσ iµ ì
  1612.         CEBU╟ wa≤ runninτ iε situ« Thi≤ i≤ correcteΣ jus⌠ beforσ i⌠ i≤ moveΣ ì
  1613.         u≡ t∩ higΦ memory.
  1614.  
  1615.  
  1616.         04C7   áLD     áC,8A
  1617.         04C9   áCALL   á2150 (means 2450) was CALL 0000 (effectively 0005)     á
  1618.  
  1619.                 Thi≤ i≤ ß CDO╙ systeφ cal∞ no« 8┴ whicΦ i≤ no⌠ supporteΣ b∙ ì
  1620.         CPM« DEBU╟ want≤ CDO╙ t∩ d∩ ß 1╢ bi⌠ dividσ a≤ par⌠ oµ it≤ he° t∩ ì
  1621.         decima∞ conversioε routine« DEBU╟ want≤ thσ resul⌠ oµ HL/D┼ returneΣ ì
  1622.         iε D┼ anΣ thσ remainde≥ iε HL« ╔ havσ diverteΣ thi≤ t∩ 2450.
  1623.  
  1624.  
  1625.                                       24
  1626.  
  1627.  
  1628.  
  1629.  
  1630. è                                                               INSIDE CEBUG
  1631.  
  1632.  
  1633.         0500   áLD     áC,02
  1634.         0502   áCALL   á21B0 (means 24B0) was CALL 0000
  1635.  
  1636.                 Thi≤ i≤ ß sys-cal∞ t∩ writσ thσ content≤ oµ ┼ t∩ thσ ì
  1637.         console« ╔ havσ diverteΣ i⌠ t∩ 24B░ wherσ bi⌠ ╖ oµ ┼ i≤ se⌠ t∩ zer∩ ì
  1638.         becausσ DEBU╟ sometime≤ haΣ i⌠ set« Thi≤ produce≤ graphic≤ ì
  1639.         characters on some printers and on computers such as the Sorcerer.
  1640.  
  1641.  
  1642.         0511   áLD     áC,80
  1643.         0513   áCALL   á0000
  1644.  
  1645.                 Thi≤ i≤ ß CDO╙ systeφ cal∞ no« 8░ fo≥ "Consolσ reaΣ withou⌠ ì
  1646.         echoó CP═ doe≤ no⌠ suppor⌠ thi≤ bu⌠ ╔ havσ lef⌠ i⌠ alonσ sincσ i⌠ ì
  1647.         doesn't seem to do any harm.
  1648.  
  1649.         06FC   áLD     áC,89
  1650.         06FE   áCALL   á2190 (means 2490) was CALL 0000
  1651.  
  1652.                 CDO╙ sys-cal∞ fo≥ multipl∙ - D┼ ╜ DE*HL« Sincσ thi≤ i≤ no⌠ ì
  1653.         supporteΣ b∙ CPM¼ i⌠ i≤ diverteΣ t∩ thσ ne≈ multipl∙ routinσ a⌠ ì
  1654.         2490.
  1655.  
  1656.         0704   áLD     áC,8A
  1657.         0706   áCALL   á2150 (means 2450) was CALL 0000
  1658.  
  1659.                 Anothe≥ dividσ cal∞ diverteΣ t∩ 2450« Thesσ las⌠ tw∩ call≤ ì
  1660.         are used in hex arithmatic.
  1661.  
  1662.  
  1663.         083D   áLD     áC,8D
  1664.         083F   áCALL   á0000
  1665.  
  1666.                 CDO╙ sys-cal∞ t∩ returε CDO╙ versioε numbe≥ iε ┬ anΣ releasσ ì
  1667.         numbe≥ iε C« Sound≤ likσ troublσ t∩ me¼ bu⌠ DEBU╟ ha≤ neve≥ ì
  1668.         complaineΣ abou⌠ beinτ "incompatablσ witΦ thi≤ CDOS"« Kee≡ aε eyσ oε ì
  1669.         this one if CEBUG refuses to operate under CPM mutants.
  1670.  
  1671.         1007   áLD     áC,8C
  1672.         1009   áJP     á0000
  1673.  
  1674.                 Thi≤ i≤ thσ CDO╙ sys-cal∞ t∩ ejec⌠ thσ disδ froφ thσ drivσ ì
  1675.         iε responsσ t∩ aε E╩ commanΣ t∩ DEBUG« Thσ onl∙ wa∙ yo⌡ coulΣ removσ ì
  1676.         thσ disδ froφ somσ PescΘ drive≤ wa≤ t∩ ge⌠ thσ compute≥ t∩ turε oε ß ì
  1677.         littlσ moto≥ t∩ ejec⌠ thσ disk« Man∙ Cromemc∩ user≤ havσ sincσ founΣ ì
  1678.         tha⌠ thσ onl∙ wa∙ t∩ makσ thei≥ compute≥ worδ reliabl∙ i≤ t∩ ejec⌠ ì
  1679.         thσ PerscΘ disδ drives«  
  1680.  
  1681.  
  1682.  
  1683.  
  1684.  
  1685.  
  1686.  
  1687.  
  1688.  
  1689.  
  1690.                                       25
  1691.  
  1692.  
  1693.  
  1694.  
  1695. è                                                               INSIDE CEBUG
  1696.  
  1697.  
  1698.         11DD   áLD     áC,86
  1699.         11DF   áCALL   á2100 (means 2400) was CALL 0000á       á
  1700.  
  1701.                 Thi≤ wa≤ thσ maiε reasoε yo⌡ couldn'⌠ usσ thσ ╞ commanΣ ì
  1702.         unde≥ CP═ - DEBU╟ useΣ ß CDO╙ sys-cal∞ t∩ forma⌠ you≥ strinτ oµ ì
  1703.         character≤ int∩ ß Filσ Contro∞ Block« H╠ containeΣ thσ addres≤ oµ ì
  1704.         thσ strinτ anΣ D┼ pointeΣ t∩ thσ star⌠ oµ thσ FCB« Thi≤ i≤ no≈ ì
  1705.         diverted to a FCB builder at 2400.
  1706.  
  1707.                 Thσ areß froφ 139┬ t∩ 13C┤ i≤ par⌠ oµ thσ writσ t∩ disδ filσ ì
  1708.         prograφ anΣ ha≤ beeε changeΣ anΣ simplifieΣ s∩ tha⌠ i⌠ work≤ unde≥ ì
  1709.         al∞ circumstances« Previousl∙ DEBU╟ lookeΣ t∩ seσ whethe≥ yo⌡ haΣ ì
  1710.         specifieΣ "SYS.DIRó a≤ yo⌡r filσ namσ, iε whicΦ casσ i⌠ madσ specia∞ ì
  1711.         arrangments« CDO╙ recogniseΣ SYS.DI╥ a≤ meaninτ thσ disδ director∙ ì
  1712.         anΣ woulΣ reaΣ anΣ writσ i⌠ likσ an∙ othe≥ filσ, whicΦ wa≤ prett∙ ì
  1713.         conveinient¼ bu⌠ CP═ doe≤ no⌠ kno≈ anythinτ abou⌠ it« DEBU╟ useΣ t∩ ì
  1714.         deletσ thσ file¼ creatσ thσ filσ anΣ theε opeε thσ filσ jus⌠ t∩ bσ ì
  1715.         sure¼ bu⌠ thσ las⌠ operatioε i≤ redundan⌠ unde≥ CPM« Worsσ howeve≥ ì
  1716.         wa≤ thσ fac⌠ tha⌠ DEBU╟ assumeΣ tha⌠ CDO╙ woulΣ returε witΦ D┼ ì
  1717.         unchanged¼ bu⌠ unde≥ CP═ (whicΦ i≤ les≤ civiliseΣ thaε CDOS⌐ D┼ ì
  1718.         woulΣ comσ bacδ differen⌠ iµ yo⌡ selecteΣ ß drivσ othe≥ thaε thσ onσ ì
  1719.         currentl∙ selected« Thσ ne≈ prograφ i≤ simplσ - i⌠ set≤ D┼ t∩ poin⌠ ì
  1720.         t∩ thσ FCB¼ delete≤ thσ file¼ set≤ DE¼ make≤ thσ file¼ look≤ fo≥ ì
  1721.         error≤ anΣ set≤ D┼ agaiε jus⌠ iε case« 13C╡ t∩ 13E┴ writσ sector≤ ì
  1722.         until BC=0000 at 13C7 when it jumps to 13F1 to close the file. 
  1723.  
  1724.                 Thσ origina∞ codσ sectioε oµ DEBU╟ end≤ a⌠ 23CF¼ anΣ thσ bi⌠ ì
  1725.         lis⌠ whicΦ diΣ star⌠ a⌠ 23D╖ ha≤ beeε moveΣ t∩ 24D7« Startinτ a⌠ ì
  1726.         240░ arσ thσ extrß program≤ ╔ havσ added« 240░ t∩ 244─ copie≤ thσ ì
  1727.         character≤ iε ß strinτ pointeΣ t∩ b∙ H╠ int∩ ß FC┬ pointeΣ t∩ b∙ DE« ì
  1728.         Thi≤ prograφ wa≤ lifteΣ froφ ß cutσ littlσ prograφ calleΣ FILTER« ì
  1729.         Thσ ideß oµ filte≥ wa≤ tha⌠ yo⌡ jacδ you≥ Cromemc∩ Cobo∞ Compile≥ u≡ ì
  1730.         b∙ 10░ byte≤ anΣ bol⌠ thi≤ anonymou≤ vira∞ prograφ unde≥ i⌠ s∩ tha⌠ ì
  1731.         yo⌡ coulΣ usσ i⌠ unde≥ CPM« Filte≥ woulΣ theε prin⌠ ou⌠ ß "WitΦ ì
  1732.         Filteró messagσ anΣ replicatσ itselµ t∩ thσ to≡ oµ memory¼ jacδ thσ ì
  1733.         Compile≥ dowε anΣ ruε it« Filte≥ woulΣ theε intercep⌠ noε CP═ sys-ì
  1734.         call≤ anΣ iµ thσ cal∞ wa≤ fo≥ ß FC┬ i⌠ woulΣ builΣ it« Unfortunatel∙ ì
  1735.         iµ thσ cal∞ wa≤ fo≥ somethinτ elsσ i⌠ woulΣ bomb.
  1736.  
  1737.                 245░ t∩ 248│ i≤ ß 1╢ bi⌠ dividσ program« H╠ i≤ thσ dividenΣ ì
  1738.         anΣ D┼ i≤ thσ divisor« Oε returninτ HL=HL/D┼ anΣ DE╜ thσ remainder« ì
  1739.         This took me more than a few hours to get running properly.
  1740.  
  1741.                 249░ t∩ 24A╕ i≤ ß 1╢ bi⌠ multipl∙ routinσ takeε froε thσ "Z-ì
  1742.         8░ Technica∞ Manualó I⌠ wa≤ compileΣ oε Januar∙ 2▓ 197╢ whicΦ mean≤ ì
  1743.         that as a piece of Z-80 code, it is an antique.
  1744.  
  1745.  
  1746.  
  1747.  
  1748.  
  1749.  
  1750.  
  1751.  
  1752.  
  1753.  
  1754.  
  1755.                                       26
  1756.  
  1757.  
  1758.  
  1759.  
  1760. è                                                               INSIDE CEBUG
  1761.  
  1762.  
  1763.         *** BIT LIST ***
  1764.  
  1765.                 Wheneve≥ yo⌡ makσ change≤ t∩ DEBU╟ o≥ CEBUG¼ yo⌡ wil∞ havσ ì
  1766.         t∩ conside≥ whethe≥ yo⌡ mus⌠ changσ thσ bi⌠ list« ╔ havσ changeΣ ì
  1767.         quitσ ß bi⌠ arounΣ 28F╕ becausσ oµ thσ ne≈ programs« T∩ hel≡ yo⌡ ì
  1768.         calculatσ whicΦ bytσ correspond≤ t∩ thσ codσ yo⌡ arσ changinτ herσ ì
  1769.         is a command you can give to CEBUG :-
  1770.  
  1771.         S XXXX-300%8+24D7
  1772.  
  1773.                áWhere XXXX is the address of the code you are changing.
  1774.  
  1775.  
  1776.                á       á            ********
  1777.  
  1778.  
  1779.  
  1780.  
  1781.           And now a word from our Sponsor -
  1782.  
  1783.         *******************************************************************
  1784.         **     á       á       á       á       á       á       á       á **
  1785.         **     á   For Instructions on how You can Modify Your á       á **
  1786.         **     á       á       á       á       á       á       á       á **
  1787.         **     á  <<<<<<<<    CASIOTONE  INSTRUMENT    >>>>>>>>á       á **
  1788.         **     á       á       á       á       á       á       á       á **
  1789.         **     á      M-10, MT-30, MT-40, CT-101, CT-202 :-              **
  1790.         **     áExtra features including Octave Drop, Filter Bypass      **
  1791.         **     áHalf-Speed Octave Drop, Hold, Pedal Sustain              **
  1792.         **     á       á       á       á       á       á       á       á **
  1793.         **     á       á   MT-65, CT-405 and ?????? :-         á       á **
  1794.         **     á Computer interface for playing notes and defining     á **
  1795.         **     á      voices is at present under development   á       á **
  1796.         **     á       á       á       á       á       á       á       á **
  1797.         **     á       á       á       á       á       á       á       á **
  1798.         **     á  Write to  -  Robin Whittle  c/o  42 Yeneda St.       á **
  1799.         **     á      Nth. Balwyn   Victoria  3104  AUSTRALIA  á       á **
  1800.         **     á       á       á       á       á       á       á       á **
  1801.         **     á       Phone  03-459-2889   + 613-459-2889     á       á **
  1802.         **     á       á       á       á       á       á       á       á **
  1803.         **     á       á       á       á       á       á       á       á **
  1804.         *******************************************************************
  1805.  
  1806.  
  1807.  
  1808.  
  1809.  
  1810.  
  1811.  
  1812.  
  1813.  
  1814.  
  1815.  
  1816.  
  1817.  
  1818.  
  1819.  
  1820.                                       27
  1821.  
  1822.  
  1823.  
  1824.  
  1825. è