home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / mbug / mbug001.arc / DU-TUG.HLP < prev    next >
Text File  |  1979-12-31  |  35KB  |  916 lines

  1.  
  2.                      A Reference Guide to DU
  3.                          (Disk Utility)
  4.  
  5. Aεá "Impatien⌠ User'≤ Guideó t∩ D╒ (Disδ Utility)¼á ß famou≤ disδ ì
  6. fixer from the public domain libraries.
  7.  
  8. PrepareΣá fo≥ Thσ User'≤ Guidσ Magazine¼á Vol.1¼á No.┤ Junσá 198│ ì
  9. (page≤á 53-63⌐ b∙ Kell∙ SmitΦ (TU╟ Contributinτ Editor⌐ froφá thσ ì
  10. origina∞ prograφ anΣ documentatioε b∙ WarΣ Christensen¼á prolifiπ ì
  11. contributo≥ t∩ thσ worlΣ oµ publiπ domaiε CP/═ software.
  12.  
  13. Fo≥ morσ informatioε oε thi≤ articlσ anΣ other≤ likσ it¼á contac⌠ ì
  14. Thσ User'≤ Guidσ t∩ CP/═ System≤ ª Software¼á Bo° 3050¼ Stanford¼ ì
  15. V┴ 94305¼ (415⌐ 851-7352«  TU╟ i≤ publisheΣ ever∙ tw∩ months¼ $1╕ ì
  16. US, $24 outside US (add $10 for first class delivery anywhere).
  17.  
  18.                           Introduction
  19.  
  20. D╒á i≤ ß comprehensivσ "disδ diddleró utilit∙ tha⌠ allow≤ ßá use≥ ì
  21. t∩á examinσá anΣ modif∙ AN┘ portioε oµ ß CP/M-8░ (Versioε 2.░á o≥ ì
  22. greater⌐ disδ a⌠ thσ "bytσ level"«  Aε "On-Linσ Helpó facilit∙ i≤ ì
  23. includeΣá (jus⌠ pres≤ thσ '?º ke∙ followeΣ b∙ RETURN⌐ shoulΣá yo⌡ ì
  24. forge⌠á thσá extensivσá commanΣ se⌠á (typicall∙á singlσá keyboarΣ ì
  25. entries¼ terminateΣ witΦ ß RETUR╬ key)« 
  26.  
  27. ┴á worΣá oµ cautioε t∩ thσ novicσ user...i⌠ i≤ possiblσ t∩á D╒á ß ì
  28. disδ t∩ deathíá  Tha⌠ is¼á casua∞ modificatioε oµ portion≤ oµ thσ ì
  29. CP/M-8░á operatinτá systeφ datß track≤ i≤ usuall∙ destructivσá t∩ ì
  30. thσ prope≥ operatioε oµ thσ "copyó oµ CP/═ oε thσ modifieΣá disk«  ì
  31.  
  32. Use particular care when writing your modifications back to disk!
  33.  
  34. D╒á i≤á aε invaluablσ too∞ fo≥ recover∙ oµ "bombeΣá directories"¼ ì
  35. modificatioεá oµá CP/═ "ruε timeó parameters¼á o≥ eveεá makinτá ß ì
  36. "backupóá oµ you≥ disδ director∙ anΣ preservinτ i⌠ someplacσá "iε ì
  37. reserveó oε you≥ disk...thσ possibilitie≤ arσ NO╘ LIMITE─ b∙ DU!
  38.  
  39. Thσá bes⌠ par⌠ i≤ tha⌠ i⌠ wa≤ provideΣ FRE┼ t∩ thσ publiπá domaiε ì
  40. (ma∙ bσ freel∙ useΣ anΣ giveε away⌐ b∙ WarΣ Christensen¼ anΣ eveε ì
  41. include≤á sourcσá codσá fo≥á you≥á detaileΣá examinatioεáá and/o≥ ì
  42. customizatioε (wheε customizinτ publiπ domaiε software¼ you≥ "on-ì
  43. your-ownó however...don'⌠ expec⌠ "hand-holdingó froφ thσ origina∞ ì
  44. autho≥ wheε yo⌡ "writσ oε thei≥ wall"!).
  45.  
  46. S∩á beforσ yo⌡ g∩ ou⌠ anΣ BU┘ ß functionall∙á identica∞á softwarσ ì
  47. packagσ (Gadsíá ╔ woulΣ lovσ t∩ namσ names!!!)¼ takσ ß looδ a⌠ D╒ ì
  48. first.  You wont't find a better program for the money!
  49.  
  50. Thanδ yo⌡ agaiε Ward¼á fo≥ ye⌠ anothe≥ majo≥ contributioε t∩á thσ ì
  51. CP/═á softwarσ use≥ communityíá  S∩ withou⌠ furthe≥ ado¼á herσ i≤ ì
  52. you≥ User'≤ Guidσ t∩ D╒ (poetic!):
  53.  
  54.  
  55.                               Indexè
  56. 1.0 Installation.
  57.  
  58. 2.0 Usage.
  59.  
  60.      2.1 Commands, by Function (Quick Reference).
  61.  
  62.      2.2 Alphabetic Command Summary.
  63.  
  64. 3.0 Usage Notes.
  65.  
  66.      3.1 Multiple Commands.
  67.  
  68.      3.▓ Dum≡ Command≤.
  69.  
  70.      3.│ Logginτ iε Disk.
  71.  
  72.      3.┤ Secto≥áBuffer≤.
  73.  
  74. 4.0 Interpreting CP/M Directory Data.
  75.  
  76.      4.1 Single Density.
  77.  
  78.      4.2 Double Density.
  79.  
  80. 5.0 DU Usage Examples
  81.  
  82.      5.1 Erased Program Recovery
  83.  
  84.      5.2 Modifying a Disk for "Program Autoload"
  85.  
  86.      5.3 Finding and Modifying Program Data Quickly
  87.  
  88.      5.4 A "Poor Man's" Disk Test
  89.  
  90.  
  91. 1.0 Installation
  92.  
  93. D╒á (Disδ Utility)¼á Version≤ 7.░ anΣ later¼á arσ designeΣ t∩á bσ ì
  94. installeΣá witΦá ß minimuφ oµ trouble«á  Iε fact¼á iε almos⌠á al∞ ì
  95. cases¼á n∩ change≤ t∩ thσ sourcσ filσ shoulΣ bσ necessar∙ t∩á ge⌠ ì
  96. D╒ "u≡ anΣ running"«á  Yesíá 808░ sourcσ codσ i≤ availablσ iµ yo⌡ ì
  97. wan⌠á i⌠ froφ variou≤ RCP═ system≤ a≤ wel∞ a≤ directle∙ froφá thσ ì
  98. CP/═á User'≤ Grou≡ librar∙ (o≥ yo⌡ ma∙ contac⌠ thσ CPMU╟ carσ of║ ì
  99. Lifeboa⌠ Associates¼ 165▒ ThirΣ Avenue¼ Ne≈ York« N.Y« 10028)«  
  100.  
  101. Thσ onl∙ requiremen⌠ fo≥ usagσ oµ DU¼ i≤ tha⌠ yo⌡ mus⌠ bσ runninτ ì
  102. iεá ß CP/M-8░ Operatinτ Systeφ environmen⌠ oµ "vintageóá 2.░á (o≥ ì
  103. greater)«á Thi≤á i≤á becausσá D╒ use≤ thσá disδá paramete≥á blocδ ì
  104. incorporateΣ iε thσ lates⌠ release≤ oµ Digita∞ Research'≤ CP/M-8░ ì
  105. t∩á determinσ thσ characteristic≤ oµ thσ disδá environment«á Notσ ì
  106. also¼á tha⌠á earlie≥ version≤ oµ D╒ supporteΣ onl∙ thσ standarΣ ╕ ì
  107. incΦá "distributioεá standardó IB═ 374░á typσá diskette¼á runninτ ì
  108. CP/M-8░á versioε 1.┤ anΣ iε somσ case≤ diΣ no⌠ worδá fo≥á certaiε ì
  109. "non-standardó version≤ oµ CP/M-8░ (i.e.¼ CDO╙ froφ Cromemco¼ anΣ ìèsome implementations of CP/M-80 from Lifeboat Associates). 
  110.  
  111. Thσ onl∙ paramete≥ tha⌠ yo⌡ migh⌠ neeΣ t∩ change¼ wil∞ bσ thσ CP╒ ì
  112. clocδá speeΣ flaτ a⌠ addres≤ 103╚ (wheε D╒ i≤ loadeΣ int∩á systeφ ì
  113. memory)«á  Leavσá thi≤á bytσá zer∩ iµ yo⌡ havσá ßá ▓á MH·á clock«  ì
  114. "Patchóá i⌠á non-zer∩ (changσ thσ addres≤ conten⌠ t∩ 0FFH⌐ fo≥á ┤ ì
  115. MH· (refe≥ t∩ you≥ Digita∞ ResearcΦ DD╘ (Dynamiπ Debugginτá Tool⌐ ì
  116. documentatioεá iµ yo⌡ arσ unfamilie≥ witΦ modificatioε oµ prograφ ì
  117. files¼á anΣ "patchingó techniques)«á  Thi≤ i≤ onl∙ needeΣ fo≥ thσ ì
  118. "Zóá (sleep⌐á command«á  Aεá alternativσ i≤ jus⌠á t∩á usσá large≥ ì
  119. number≤ wheε runninτ D╒ witΦ ß compute≥ systeφ clocδ ratσ oµ 4MH· ì
  120. o≥ greater.
  121.  
  122.  
  123. 2.0 Usage
  124.  
  125. Aεá initia∞ commanΣ strinτ ma∙ optionall∙ bσ placeΣ a≤ aε operanΣ ì
  126. oµ thσ D╒ command at the CP/M system user command level¼ i.e.:
  127.  
  128.                 A>DU G0;D;G2;=OK<D><A><1A>;D<cr>
  129.  
  130. Fo≥á example¼á iµ yo⌡ wan⌠ t∩ onl∙ 'MAPº thσ disδ anΣ theεá exit¼ ì
  131. you would enter at your console keyboard:
  132.  
  133.                           A>DU M;X<cr>
  134.  
  135. Thσá D╒á prograφá woulΣá theε responΣá witΦá thσá diskettσá 'MAPº ì
  136. (actuall∙ ß displa∙ oµ thσ diskettσ Grou≡ Allocations)¼á a≤ showε ì
  137. iεá thσá followinτá examplσá 'MAPºá oµá ßá Compupr∩á 8/1╢á Systeφ ì
  138. diskette:
  139.  
  140. DISK UTILITY ver 7.7
  141. Universal Version
  142.  
  143. Type ? for help
  144. Type X to exit
  145. 0004-0005  00 COPY    .COM 00 : 0006-000D  00 WS      .COM 00 
  146. 000E-0010  00 DDT     .COM 00 : 0011-0018  00 FMTMEM  .COM 00 
  147. 0019-001A  00 FORMAT  .COM 00 : 001B-001B  00 CONV    .COM 00 
  148. 001C-001C  00 CRCK    .COM 00 : 001D-001D  00 CROSSREF.COM 00 
  149. 001E-001E  00 D       .COM 00 : 001F-0021  00 DU      .TXT 00 
  150. 0022-0025  00 PIP     .COM 00 : 0026-0026  00 XDIR    .COM 00 
  151. 0027-0027  00 FILE-XT2.COM 00 : 0028-002E  00 RMAC    .COM 00 
  152. 002F-0033  00 LINK    .COM 00 : 0034-0034  00 EXEC    .COM 00 
  153. 0035-0035  00 SYSGEN  .COM 00 : 0036-0036  00 FMAP    .COM 00 
  154. ~                                                           ~
  155. |  The  diskette 'MAP' shown here is "edited" for brevity!  |
  156. ~                                                           ~
  157. | .-- Group Allocation Number                               |
  158. ~ |           .-- Filename                                  ~
  159. | |           |        .-- Filetype                         |
  160. ~ |           |        |    .-- Extent Number               ~
  161. | |           |        |    |               .-- User Number |
  162. ~ |           |        |    |               |               ~
  163. 020F-020F  00 PBIOS   .ASM 03 : 0210-0216  01 ALIENS  .COM 00 è0217-0218  00 PBIOS   .ASM 03 : 0219-0219  00 MOVCPM  .COM 00 
  164. 021A-021A  00 MNTR    .DOC 00 : 021B-021C  00 PRNT    .DOC 00 
  165. 021D-0220  00 REQ'D-SW.DOC 00 : 0221-0228  00 SW-DEF  .TXT 00 
  166. 0229-0230  00 SW-DEF  .TXT 01 : 0231-0238  00 SW-DEF  .TXT 02 
  167. 0239-023E  00 MOVCPM  .COM 00 : 023F-0241  00 FORMAT  .ASM 00 
  168. 0242-0242  00 FORMAT  .ASM 01 : 0243-0247     ++FREE++        
  169. 0248-024B  00 PBIOS   .ASM 04 : 024C-0253  00 SETATR  .ASM 00 
  170. 0254-0254  00 PBIOS   .ASM 04 : 0255-0257     ++FREE++        
  171.  
  172. G=0000:00, T=4, S=1, PS=0
  173.  
  174. A>
  175.  
  176.  
  177. Oncσá D╒á i≤ running¼á i⌠ wil∞ displa∙ thσ characte≥ ':ºá a≤á thσ ì
  178. commanΣá leve∞ prompt¼á anΣ expect≤ single-lette≥á command≤á mucΦ ì
  179. likσá DDT«á  Fo≥ easσ oµ use¼á multiplσ command≤ ma∙ bσ placeΣ oε ì
  180. onσá line¼á separateΣ b∙ ';'«á  Iε addition¼á ß giveε commanΣá o≥ ì
  181. strinτá oµ command≤ ma∙ bσ repeated¼á eithe≥ indefinitel∙á (unti∞ ì
  182. Control-├á (showε froφ no≈ oε a≤ '^C'⌐ i≤ pressed)¼á o≥á ßá giveε ì
  183. numbe≥ oµ times.
  184.  
  185. T∩á avoiΣá aεá accidenta∞ ^├ froφ droppinτ ou⌠á oµá DU¼á onl∙á aε ì
  186. explici⌠ 'Xº commanΣ wil∞ exi⌠ DU.
  187.  
  188.  
  189. 2.1 Commands, by Function (Quick Reference)
  190.  
  191. Help: 
  192.     ?    Request help. Example:
  193.  
  194.                 :?<cr>
  195.                 Operands in brackets [...] are optional
  196.                 Numeric values: 'n' are decimal, 'x' hex
  197.  
  198.                 +[n]   step in [n] sectors;
  199.                 -[n]   step out [n] sectors
  200.                 #      print disk parameters for curr drive.
  201.                 =xxx   search for ASCII xxx from curr sector.
  202.                        Caution: upper/lower case matters.
  203.                        Use <xx> for hex:
  204.                        To find "IN 0" use: =<db><0>     or
  205.                        "(tab)H,0(CR)(LF)" use: =<9>H,0<D><A>
  206.                 <      save current sector into mem. buff.
  207.                 >      restore saved sector
  208.                 ?      give help
  209.                 A[ff,tt] ASCII dump
  210.  
  211.                 (Type any char. to continue)<cr>
  212.  
  213.                 C      Change:
  214.                 CHaddr,byte,byte... (hex)
  215.                 or   CAaddr,data...  (Ascii)
  216.                 <xx> Allowed for imbedded hex.
  217.                 or   CHfrom-thru,byte  e.g. ch0-7f,e5è                or   CAfrom-thru,byte
  218.                 D[ff,tt] Dump (hex+ASCII)
  219.                 Fn.t   Find file
  220.                 Gnn    CP/M Allocation Group nn
  221.                 H[ff,tt]       hex dump
  222.                 L      Log in drive
  223.                 Lx     Log in drive x
  224.                 M[nn]  Map [from group nn]
  225.  
  226.                 (Type any char. to continue)<cr>
  227.  
  228.                 N      New disk
  229.                 P      Toggle printer switch
  230.                 Q      Quiet mode (no msgs)
  231.                 R      Read current sector
  232.                 Snn    Sector nn
  233.                 Tnn    Track nn
  234.                 Unn    Set User nn for Find command (CP/M-2 only)
  235.                 V[nn]  View [nn] ASCII sectors
  236.                 W      Write current sector
  237.                 X      Exit program
  238.                 Y      Yank current sector into sequential memory
  239.                 Z[nn]  Sleep [nn tenths]
  240.                 /[nn]  Repeat [nn (decimal) times]
  241.  
  242.                 (Type any char. to continue)<cr>
  243.  
  244.                 Cancel a function with C or Ctl-C.
  245.                 Suspend output with S or Ctl-S.
  246.                 Separate commands with ";".
  247.                        Example: g0
  248.                        +;d;z#20;/
  249.                        would step in, dump, sleep 2 sec, 
  250.                        and repeat until control-c typed.
  251.                 All "nn" usage except "/", "T", and "S" are
  252.                        HEX.  Use #nn for decimal.
  253.  
  254.                 See DU.DOC for complete examples.
  255.  
  256.  
  257. Positioning:
  258.  
  259. Keepinτá "trackóá (literally!⌐á oµ wherσ you≥ arσ oεá ßá disδá i≤ ì
  260. indicateΣ b∙ ß tersσ displa∙ (e.g.¼á G=009C:04¼ T=43¼ S=5¼ PS=4)«  ì
  261.  
  262. T∩á bes⌠á illustratσ thσ displa∙ (anΣ mos⌠ importantly¼á wha⌠á i⌠ ì
  263. means)¼ jus⌠ ente≥ thσ followinτ command:
  264.  
  265. :+;/<cr> <-- advance to the next sector and repeat forever...
  266.  
  267. AnΣá thσá Group¼á Track¼á Logica∞á Sector¼á anΣá Physica∞á secto≥ ì
  268. "assignmentsóá wil∞á incrementall∙ bσ displayeΣ fo≥á you≥á entirσ ì
  269. disδá continuousl∙á (usσá ^├ t∩ quit)«á  Thσá "meaningóá (anΣá aε ì
  270. examplσ display⌐, i≤ a≤ follows:
  271. è     .-- Group Allocation Number
  272.      |  .-- Sector Block Number (always 128 bytes)     
  273.      |  |     .-- Physical Track     
  274.      |  |     |    .-- Logical Sector
  275.      |  |     |    |     .-- Physical Sector  
  276.      |  |     |    |     |
  277. G=009C:01, T=43, S=2, PS=1
  278. G=009C:02, T=43, S=3, PS=2
  279. G=009C:03, T=43, S=4, PS=3
  280. G=009C:04, T=43, S=5, PS=4
  281. G=009C:05, T=43, S=6, PS=5
  282. G=009C:06, T=43, S=7, PS=6
  283. G=009C:07, T=43, S=8, PS=7
  284. G=009C:08, T=43, S=9, PS=24
  285. G=009C:09, T=43, S=10, PS=25
  286. G=009C:0A, T=43, S=11, PS=26
  287. G=009C:0B, T=43, S=12, PS=27
  288. G=009C:0C, T=43, S=13, PS=28
  289. G=009C:0D, T=43, S=14, PS=29
  290. G=009C:0E, T=43, S=15, PS=30
  291. G=009C:0F, T=43, S=16, PS=31 <-- end of 2K Group Number 009C
  292. G=009D:00¼ T=43¼ S=17¼ PS=4╕ <-- ß ne≈ Grou≡ Allocatioε numbe≥ starts
  293. G=009D:01, T=43, S=18, PS=49     after Sector Block Number 16 (0F HEX)
  294. ■                          ■     (bu⌠ ma∙ bσ differen⌠ fo≥ YOU╥ DISK!)
  295. |     etc., etc., etc.,    |
  296.  
  297.  
  298. Positioninτ therefore¼á i≤ donσ b∙ Grou≡ (Gnn)¼á Tracδ (Tnn)¼á o≥ ì
  299. Sector (Snn) movement commands as follows:
  300.  
  301.     Gnn    By allocation group.  Example:
  302.  
  303.                 :g0<cr>
  304.                 G=0000:00, T=4, S=1, PS=0
  305.  
  306.     Tnn    By track.
  307.  
  308.     Snn    By sector.
  309.  
  310.     +nn    Move ahead nn sectors.
  311.  
  312.     -nn    Move back nn sectors.
  313.  
  314.  
  315. I/O:
  316.  
  317.     R    Reads sector.
  318.  
  319.     W    Writes sector.
  320.  
  321.     <    Puts current sector "away" into a buffer.
  322.  
  323.     >    Recalls previously saved sector.
  324.  
  325. èDisplaying:
  326.  
  327.     G    Shows current group, track, sector.
  328.  
  329.     M    Maps the disk (file group allocations).
  330.            or,
  331.     Mxx    Map starting at group xx
  332.  
  333.     D    Dump the sector (Hexadecimal and ASCII display).
  334.  
  335.     A    Dump sector in ASCII.
  336.  
  337.     H    Dump sector in hexadecimal.
  338.  
  339.     Vnn    Views (like CP/M TYPE) nn sectors.
  340.  
  341.     #    Shows disk parameters, also the number of sectors
  342.         stacked and used via '<<' and '>>'. Example:
  343.  
  344.                 :#<cr>
  345.                 Disk Information:
  346.                 Tracks:         154
  347.                 Sec/trk:        64
  348.                 Grpsize:        16 (sectors per group)
  349.                 Tot grps:       599
  350.                 Dir entries:    256
  351.                 Sys tracks:     4
  352.  
  353.  
  354. Changing:
  355.  
  356.     CHnn,val Change data in hexadecimal.
  357.  
  358.     CAnn,va∞ Changσ datß iε ASCI╔ ¿ witΦ <xx╛ escapσ t∩ hexadecimal).
  359.  
  360.     N    Insert new disk.
  361.  
  362.     Unn    Change user directory number to nn.
  363.  
  364.  
  365. Searching:
  366.  
  367.     Fname    Find a file in the directory.
  368.  
  369.     F    Find next occurrence (extent) of same name.
  370.  
  371.     =aaaa    Scan for aaaa (in ASCII) from current sector on.
  372.  
  373.  
  374. Miscellaneous:
  375.  
  376.     Znn    Sleep (nn tenths of a second) such as to allow
  377.         viewing data before it scrolls off.
  378.  
  379.     Lx    Log in disk x.è
  380.     P    Turn on/off printer output toggle.
  381.  
  382.     Q    Before any command does it "quietly".
  383.  
  384.     X    Exit to CP/M.
  385.  
  386.     /nε    Repea⌠ previou≤ commanΣ nε time≤ (indefinitel∙ iµ nε omitted).
  387.  
  388. 2.2 Alphabetic Command Summary
  389.  
  390.  
  391.     #    Prints the disk parameters.
  392.  
  393.     +    Advance 1 sector (if below track 2,
  394.         this advances to next numerical, if
  395.         2 or greater, advances based on CP/M's normal
  396.         sector scrambling algorithm, i.e. so '+'
  397.         will get the next logical sector of the file).
  398.  
  399.     -    Backs up 1 logical sector.
  400.  
  401.         Note + and - may take an amount:
  402.         for example, +15 steps in 15 sectors.
  403.  
  404.     /    Repeats entire command.  Defaults to "forever".
  405.            or,
  406.     /nn    nn may be 2 to 65,535.
  407.  
  408.     <    Saves current sector in a save buffer, and
  409.         also resets buffer pointer used by '<<' and '>>'.
  410.  
  411.     <<    Saves current sector, bumps memory pointer.
  412.         Thus subsequent '<<' saves "next" buffer in
  413.         memory.  Use '<' to reset, or '>>' to
  414.         sequentially retrieve the buffers, such as to
  415.         move several sectors from one place on disk
  416.         to another, or to another disk, or just to
  417.         memory (stored at 2000H where DDT can be used 
  418.         to subsequently access them).
  419.  
  420.     =string    Ascii search, starting at current
  421.         sector. <xx> hex may be imbedded,
  422.         or used alone:  To find "IN 0FEH":
  423.         =<db><fe><cr>
  424.  
  425.         Note: ignores bit 7 unless <xx> is used.
  426.  
  427.         Since ";" is a command delimiter, you
  428.         have to use <3B> to search for a ";".
  429.         
  430.         Also, since "<" is a hex-escape character,
  431.         use << to means a single "<".
  432.  
  433.         Also note that the special symbol "@" containsè        the displacement at which the match occurred.
  434.         It may thus be subsequently used in a 'C'
  435.         command, as in:
  436.  
  437.             =LIX;CA@,LXI;W<cr>
  438.  
  439.         would search for the string LIX, change
  440.         it to an LXI, and write it back.
  441.  
  442.  
  443.     >    Gets saved buffer.  '<' and '>' may be used
  444.         to move a sector to another place.
  445.  
  446.     >>    Restore "oldest" unrestored sector saved
  447.         by '<<' command.  This command may be
  448.         "buried" in the middle of an infinite
  449.         repeat '/', because it will stop operating
  450.         when there are no more sectors in the buffer.
  451.  
  452.     ?    Gives command summary.
  453.  
  454.     A    Dump sector, ASCII only.
  455.  
  456.     CHaddr,val,val,val... change hexadecimal in sector.
  457.  
  458.     CAaddr,char string... change ASCII in sector. '<xx>'
  459.                  may be hex imbedded in the ASCII: ca0,OK<d><a><1a>
  460.  
  461.         Note: use 'W' to write changes to disk. The 'C'
  462.                 "echoes" overlaid data for verification.
  463.  
  464.     CHaddr-addr,byte
  465.           or,
  466.     CAaddr-addr,byte    Repeats a change.
  467.  
  468.     D    Dump sector, hexadecimal and ASCII.
  469.  
  470.     Fname    print directory for file "name",
  471.         then positions to it's directory
  472.         sector.
  473.  
  474.     F    Find next occurrence of name in the directory.
  475.  
  476.     Gnn    Position to group nn and read.
  477.  
  478.     G    Shows current position.
  479.  
  480.     H    Dump sector, hexadecimal only.
  481.  
  482.     L    Re-logs in the current disk. You may pull
  483.         out a disk, put in a new, and "L" just
  484.         to log it in. (See "LOGGING IN DISK" in NOTES
  485.         below)
  486.  
  487.     Lx    Logs in disk 'x', such as: LB<cr>è
  488.     M    Dumps a map of the group allocations
  489.         for files.
  490.           or,
  491.     Mn    Shows which file is allocated to
  492.         group "n".
  493.  
  494.  
  495.     N    Resets CP/M via the BDOS.  This may
  496.         make it possible under some implementations
  497.         of CP/M to change the disk format (e.g., density,
  498.         sides, etc).
  499.  
  500.     P    Toggle printer switch on/off.
  501.  
  502.     Q    Quiet: Preceeding any command, suppresses console
  503.         output.
  504.  
  505.     R    Reads the sector currently positioned to
  506.         into memory.  Note: 'R' (Read) is implicit in
  507.         the 'G', '+', and '-' commands, but NOT in the
  508.         'S' and 'T' commands.
  509.  
  510.     Snn    Position to sector nn, and read.
  511.  
  512.     Tnn    Seek to track nn (no read).
  513.  
  514.     U°    Log≤ use≥ 'xº fo≥ nex⌠ ╞ command« Displays thσ character
  515.         '?' error if not CP/M-80 version 2.0 (or greater).
  516.  
  517.     V    Views the current sector (assumes ASCII data).
  518.  
  519.     Vnn    Views nn sectors.
  520.  
  521.     W    Write back the current sector. Note: may
  522.         not be used after an F command, as CP/M was
  523.         used to find the file in the directory.
  524.  
  525.     X    Exit back to CP/M (Must press return).
  526.  
  527.     Z    Sleep - causes the program to pause, such
  528.         as to look at a dump.  'Z' is 1 second.  Znn
  529.         is nn tenths of a second on a 2 MHz 8080 CPU.
  530.  
  531.  
  532. 3.0 Usage Notes
  533.  
  534. 3.1 Multiple Commands: May be separated by ";"
  535.  
  536. Example║á thσ followinτ command≤ wil∞ erasσ thσ B║ disδ director∙ ì
  537.           t∩ al∞ E5's:
  538.  
  539.     lb<cr>        "Log-in" (select) the 'B:' drive.
  540.     g0<cr>        Position to the start of the directory.
  541.     ch0-7f,e5<cr>    Fill with the value 'E5' hexadecimal.è    <<cr>        Save the sector
  542.     >;w;+;/16<cr>    Restore, write, next repeat 16 times.
  543.  
  544. This could be shortened to:
  545.  
  546.     lb;g0;ch0-7f,e5;<<cr>
  547.     >;w;+;/16<cr>
  548.  
  549.  
  550. 3.▓ Dum≡ Command≤ - Al∞ dum≡ command≤ (D¼ A¼ H⌐ ma∙ bσ optionall∙ ì
  551. followeΣ b∙ ß startinτ anΣ endinτ address:
  552.  
  553.     D0,7F<cr>    ...is the same as just D<cr>
  554.     D3,5<cr>
  555.     A20,3F<cr>
  556.  
  557. 3.│á Logginτ iε Diské - Somσ problem≤ ma∙ arisσ wheεá "logging-inó ì
  558. diskette≤ witΦ "mixed-densityó (i.e.¼ Tracδ 0░ i≤ singlσ density¼ ì
  559. anΣá thσ director∙ track≤ arσ doublσ density¼á alß IB═ Systeφá 3┤ ì
  560. typσ disks)«á  ┴ solutioε i≤ t∩ loτ iε ß disδ whicΦ i≤ OK¼ anΣ i≤ ì
  561. oµá thσá samσá densit∙ a≤ thσ disδ tha⌠ yo⌡ wan⌠ t∩á examinσá anΣ ì
  562. alter¼ theε pu⌠ iε thσ ne≈ disδ WITHOU╘ logginτ i⌠ in.
  563.  
  564. However¼á yo⌡á arσ no≈ openinτ yourselµ u≡ t∩á possiblσá problem≤ ì
  565. becausσá oµ thσ bufferinτ oµ physica∞ sector≤ iε thσá BIOS«á  Thσ ì
  566. bes⌠á technique¼á (bu⌠ no⌠ guaranteed)¼á woulΣ bσ t∩ seeδ t∩á thσ ì
  567. unuseΣ inne≥ track≤ oµ thσ firs⌠ disk¼á d∩ thσ read¼á THE╬ changσ ì
  568. disks«á  Tha⌠ wa∙ iµ i⌠ write≤ anything¼ yo⌡ won'⌠ havσ destroyeΣ ì
  569. anything...assuminτá thσ disδ i≤ no⌠á completel∙á full«á  Anothe≥ ì
  570. technique¼á assuminτá thσá seconΣá disδ doe≤ no⌠ contaiεá ßá CP/═ ì
  571. system¼á woulΣ bσ t∩ seeδ t∩ Tracδ 1¼ theε d∩ thσ reaΣ there¼ anΣ ì
  572. theε changσ disk≤ t∩ thσ new one.
  573.  
  574.  
  575. 3.┤á Secto≥á Buffer≤á (Thσ '<<º anΣ '>>º commands)éá - U≡á t∩á 25╡ ì
  576. sector≤ (onl∙ becausσ it≤ ß ▒ bytσ counter⌐ ma∙ bσ saveΣ b∙ '<<'«  ì
  577. AN┘ TIM┼ '<º i≤ executed¼ thσ buffer≤ arσ "throwε away"« Onσ '>>º ì
  578. t∩ fetcΦ ß saveΣ buffe≥ anΣ makσ i⌠ availablσ fo≥ writing¼ ma∙ bσ ì
  579. issueΣ fo≥ eacΦ previou≤ '<<'«á  Thσ 'Mº (director∙ map⌐á commanΣ ì
  580. use≤á aεá areßá oµ memor∙ fo≥ ßá buffer«á  T∩á minimizσá problem≤ ì
  581. (cavea⌠á programmer)¼á thσ MA╨ buffe≥ i≤ placeΣ ß thσ EN─ oµá thσ ì
  582. CURRENTL┘ HIGHES╘ USE─ '<<º buffer«  Oε smal∞ systems¼ wherσ man∙ ì
  583. buffer≤á havσ beeε saveΣ viß '<<'¼á thσ 'Mº commanΣ migh⌠á repor⌠ ì
  584. tha⌠á i⌠ raε ou⌠ oµ memory«á  Executinτ '<º o≥ '>>º ß  sufficien⌠ ì
  585. numbe≥á oµ time≤ fo≥ i⌠ t∩ tel∞ yo⌡ therσ arσ n∩ morσ sector≤á iε ì
  586. thσá buffer¼á wil∞ theε makσ rooφ availablσ iε memor∙ a⌠ ßá lowe≥ ì
  587. address«  Theε 'Mº ma∙ bσ useΣ fo≥ "mappingó thσ directory.
  588.  
  589.  
  590. 4.0 Interpreting CP/M Directory Data
  591.  
  592. 4.1 Single Density
  593.  
  594. Thσá followinτá explain≤ thσ forma⌠ oµ ß CP/═ director∙ entr∙á a≤ ì
  595. showε b∙ DU¼á usinτ eithe≥ thσ 'F' (finΣ file⌐ command¼á o≥á jus⌠ ìèdoinτá 'D' (dump⌐ oµ thσ director∙ sectors¼á whicΦ arσ locateΣ iε ì
  596. group≤ ░ anΣ ▒ oε ß singlσ densit∙ disk.
  597.  
  598. Sample result of 'fSID.COM' (find 'SID.COM') command:
  599.  
  600. 40  00534944 20202020  20434F4D 0000003A  *.SID     COM...:*
  601. 50  33343536 3738393A  00000000 00000000  *3456789:........*
  602.  
  603. First line -
  604.  
  605. 40  00534944 20202020  20434F4D 0000003A  *.SID     COM...:*
  606. ||  |||                      |  ||    ||    |         |
  607. ||  ||^----HEX File Name-----^  ||    ||    ^File Name^
  608. ||  ||                          ||    ||     in ASCII
  609. ||  ||                   Extent-^^    ||
  610. ||  ||                                ||
  611. ||  ||           File Size in Sectors-^^
  612. ||  ||
  613. ||  ^^-00 = File Active (other values (e.g., 03 = User Number 3)
  614. ||     E5 = File Erased
  615. ^^-Displacement of the "line" (16 entries/line) in the directory sector
  616.  
  617. Note║á fo≥á thσá newcome≥á t∩á "CP/═á jargon"¼á ßá filσá 'extentº ì
  618. (actuall∙ thσ extensioε oµ ß file⌐ indicate≤ t∩ thσ CP/═ BDO╙ thσ ì
  619. numbe≥ oµ 1╢ thousanΣ (16K⌐ consecutivσ byte≤ containeΣ withiεá ß ì
  620. file«á  Extent≤ arσ numbereΣ froφ ░ t∩ 31« Onσ exten⌠ ma∙ contaiε ì
  621. 1¼á 2¼á 4¼á 4¼á ╕ o≥ 1╢ block≤ (ß block¼á i≤ ß basiπ uni⌠ oµ disδ ì
  622. spacσ allocation¼á anΣ ma∙ bσ 1K¼á 2K¼á 4K¼ 8╦ o≥ 16╦ consecutivσ ì
  623. bytes)«á  Thesσ block≤ theε arσ assigneΣ grou≡ number≤ (ß "groupó ì
  624. i≤á ßá grou≡ oµ disδ sectors)¼á anΣ arσ allocateΣ dynamicall∙á t∩ ì
  625. accomodatσ thσ requireΣ disδ spacσ oε ß disk¼á a≤ useΣ b∙ ß giveε ì
  626. filσá (Grou≡á ░á i≤ ALWAY╙ thσ star⌠á oµá thσá director∙á group)«  ì
  627. Therefore¼ ß filσ "nameó migh⌠ appea≥ iε thσ directo≥ ß numbe≥ oµ ì
  628. time≤á ¼á dependinτá oεá thσá numbe≥ oµá extension≤á requireΣá t∩ ì
  629. accomodatσá thσá file≤ sizσ (refe≥ t∩ thσ samplσá disδá "MAPóá iε ì
  630. sectioεáá 2.░áá Usage...thσáá filσáá PBIOS.AS═áá show≤áá multiplσ ì
  631. extents)...Whewí WitΦ tha⌠ ou⌠ oµ thσ wa∙ then¼ ╔ hopσ thi≤ make≤ ì
  632. sense:
  633.  
  634. Second line -
  635.  
  636. 50  33343536 3738393A  00000000 00000000  *3456789:........*
  637.     |                       |   |
  638.     |                       |   ^- The allocation groups
  639.     ^-----Allocation Group Numbers-----^      that just happened
  640.                           to be printable!
  641.  
  642. 4.2 Double Density
  643.  
  644. Thσ followinτ i≤ ß samplσ oµ  SID.CO═ runninτ oε ß doublσ densit∙ ì
  645. system:
  646.  
  647. :fSID.COM<cr> <-- Find 'SID.COM' on the disk...
  648. 00  00534944 20202020  20434F4D 0000003A  *.SID     COM...:*
  649. 10  38003900 3A003B00  00000000 00000000  *8.9.:.;.........*èG=0000:00, T=2, S=1, PS=0
  650.  
  651. Thσá primar∙á differencσ i≤ tha⌠ thσ group≤ no≈ occup∙á ▓á bytes¼ ì
  652. i.e«á "3╕á 00"¼á "3╣ 00"¼á etc«á  Thi≤ follow≤ thσ INTE╠ anΣ CP/═ ì
  653. conventioεá oµ puttinτ 1╢ bi⌠ value≤á high-byte-first«á  Thu≤á i⌠ ì
  654. mean≤ grou≡ 0038¼ 0039¼ etc.
  655.  
  656. Notσ tha⌠ iε doublσ density¼á eacΦ grou≡ stooΣ fo≥ 2K¼ no⌠ 1K¼ s∩ ì
  657. therσ werσ halµ a≤ man∙ group≤ fo≥ thσ samσ file.
  658.  
  659. Bσá VER┘ carefu∞ wheε patchinτ ß director∙ unde≥ doublσá density«  ì
  660. ╔ oncσ madσ thσ mistakσ oµ putting¼ fo≥ example:
  661.  
  662.     ch10,38,39,3a,3b...
  663.  
  664. Wheεá ╔ wen⌠ t∩ reaΣ thi≤ file¼á i⌠ trieΣ t∩ acces≤á grou≡á 3938¼ ì
  665. witΦá resultan⌠á angr∙ exclamation≤ froφ thσ disδ steppe≥á a≤á i⌠ ì
  666. attempteΣ t∩ g∩ soutΦ t∩ Peoriß fo≥ thσ data.
  667.  
  668. 5.0 DU Usage Examples
  669.  
  670. 5.1 Erased Program Recovery
  671.  
  672. Let'≤á supposσ tha⌠ yo⌡ havσ jus⌠ pu⌠ oε thσ "fina∞á touchesóá t∩ ì
  673. you≥á latest'n'greate≤á prograφ t∩ marke⌠ a≤ you≥ ne≈ "let'≤á ge⌠ ì
  674. poo≥á quickó scheme...yo⌡ (oµ course⌐ havσ NEVE╥ madσá ßá back-u≡ ì
  675. cop∙á afte≥á havinτá pu⌠ iε 10^1╢ (tha⌠ 1░ t∩á thσá 16tΦá power!⌐ ì
  676. weekend≤ oµ timσ int∩ it« S∩ yo⌡ proudl∙ examinσ thσ director∙ oµ ì
  677. you≥ pride-and-joy:
  678.  
  679. A0>dir b:
  680. B: BIZ-INIT BAS : BIZ-CALC BAS : BIZ-CHRT BAS : BIZ-WIZ  TXT
  681. B: BIZ-WIZ  BAS
  682.  
  683. Yep...Al∞á there¼áá and...(ring¼áá ring...it≤á thσá #%&"*½á phonσ ì
  684. again!)«  O.K« bσ bacδ iε ß fe≈ minute≤ anΣ ge⌠ ß printe≥ listinτ ì
  685. fo≥ posterity...(tick¼ tick...minute≤ turε t∩ hours...):
  686.  
  687. AΦ yes¼á let≤ seσ wherσ wa≤ I┐  OΦ yes¼ tha⌠ gu∙ calleΣ aε wanteΣ ì
  688. t∩á modeφ ove≥ hi≤ lates⌠ versioε oµ FOOBAR...Fine¼á bette≥á makσ ì
  689. some room on this "scratch disk" in the B: drive...so we:
  690.  
  691. A>era b:*.* <-- lets just get rid of whatever junk is there...
  692. AL╠ (Y/N)?∙ <-- sure¼á iµ  ╔ can'⌠ remembe≥ what≤ there¼ can'⌠ bσ important!ì
  693.  
  694. A0>dir b: <-- and just to be sure...
  695. NO FILE <-- Yep! No files left...but...AAaarrgghh! The wrong $&+#* disk!!!
  696.  
  697.  
  698.                       What do you do,... what do you do???
  699.  
  700. Do you...D You....Dee U.....ahh Hah! DU!!! Disk Utility to the rescue!
  701.  
  702. ╔á jus⌠á KNE╫ somethinτ cleve≥ woulΣ (eventually⌐ emergσ froφá m∙ ì
  703. beer-foggeΣ brain to save my ASCII (err, ahh)...so here I go!è
  704. A0>du<cr>
  705.  
  706. DISK UTILITY ver 7.7
  707. Universal Version
  708.  
  709. Type ? for help
  710. Type X to exit
  711.  
  712. :lb<cr> <-- "log" disk B: (forest reclamation project!)
  713.  
  714. :g0;d<cr> <-- Go to Group 0 (always the directory group) and Dump:
  715. G=00:00, T=2, S=1, PS=1
  716. 00  E542495A 2D494E49  54424153 0000001C  *eBIZ-INITBAS....*
  717. 10  02030405 00000000  00000000 00000000  *................*
  718. 20  E542495A 2D43414C  43424153 00000050  *eBIZ-CALCBAS...P*
  719. 30  06070809 0A0B0C0D  0E0F0000 00000000  *................*
  720. 40  E542495A 2D434852  54424153 00000019  *eBIZ-CHRTBAS....*
  721. 50  10111213 00000000  00000000 00000000  *................*
  722. 60  E542495A 2D57495A  20545854 00000029  *eBIZ-WIZ TXT...)*
  723. 70  14151617 18190000  00000000 00000000  *................*
  724.  
  725. Hmmm...m∙áá file≤á alrigh⌠á witΦá funn∙á littlσá "e'sóá iεá fron⌠ ì
  726. of'em...lets also look at the next directory sector:
  727.  
  728. :+;d<cr> <-- advance +1 sector and Dump it also:
  729. G=00:01, T=2, S=2, PS=7
  730. 00  E542495A 2D57495A  20424153 00000080  *eBIZ-WIZ BAS....*
  731. 10  1A1B1C1D 1E1F2021  22232425 26272829  *...... !"#$%&'()*
  732. 20  E542495A 2D57495A  20424153 0100006B  *eBIZ-WIZ BAS...k*
  733. 30  2A2B2C2D 2E2F3031  32333435 36370000  **+,-./01234567..*
  734. 40  E5E5E5E5 E5E5E5E5  E5E5E5E5 E5E5E5E5  *eeeeeeeeeeeeeeee*
  735. 50  E5E5E5E5 E5E5E5E5  E5E5E5E5 E5E5E5E5  *eeeeeeeeeeeeeeee*
  736. 60  E5E5E5E5 E5E5E5E5  E5E5E5E5 E5E5E5E5  *eeeeeeeeeeeeeeee*
  737. 70  E5E5E5E5 E5E5E5E5  E5E5E5E5 E5E5E5E5  *eeeeeeeeeeeeeeee*
  738.  
  739. Well¼á it≤á al∞á sittinτ therσ (sort'a!⌐ iε thσá directory...let≤ ì
  740. backu≡á onσ sector¼á anΣ star⌠ fixinτ thing≤ u≡ t∩ recove≥á thosσ ì
  741. eraseΣ files:
  742.  
  743. :-<cr> <-- minus 1 sector...
  744. G=00:00, T=2, S=1, PS=1
  745.  
  746. :ch0,0;ch20,0;ch40,0;ch60,0<cr> <-- CHange all "E5's" to zeros:
  747. E5E5E5E5 <-- the "E5's" (erased file flags) evaporate before our very eyes!
  748. :d<cr> <-- Dump it just to check...
  749. 00  0042495A 2D494E49  54424153 0000001C  *.BIZ-INITBAS....*
  750. 10  02030405 00000000  00000000 00000000  *................*
  751. 20  0042495A 2D43414C  43424153 00000050  *.BIZ-CALCBAS...P*
  752. 30  06070809 0A0B0C0D  0E0F0000 00000000  *................*
  753. 40  0042495A 2D434852  54424153 00000019  *.BIZ-CHRTBAS....*
  754. 50  10111213 00000000  00000000 00000000  *................*
  755. 60  0042495A 2D57495A  20545854 00000029  *.BIZ-WIZ TXT...)*
  756. 70  14151617 18190000  00000000 00000000  *................*
  757. è:w<cr> <--Write this directory sector back to the disk:
  758.  
  759. :+<cr> <-- advance to the next directory sector:
  760. G=00:01, T=2, S=2, PS=7
  761.  
  762. :d<cr> <-- Dump it also, to be sure...
  763. 00  E542495A 2D57495A  20424153 00000080  *eBIZ-WIZ BAS....*
  764. 10  1A1B1C1D 1E1F2021  22232425 26272829  *...... !"#$%&'()*
  765. 20  E542495A 2D57495A  20424153 0100006B  *eBIZ-WIZ BAS...k*
  766. 30  2A2B2C2D 2E2F3031  32333435 36370000  **+,-./01234567..*
  767. 40  E5E5E5E5 E5E5E5E5  E5E5E5E5 E5E5E5E5  *eeeeeeeeeeeeeeee*
  768. 50  E5E5E5E5 E5E5E5E5  E5E5E5E5 E5E5E5E5  *eeeeeeeeeeeeeeee*
  769. 60  E5E5E5E5 E5E5E5E5  E5E5E5E5 E5E5E5E5  *eeeeeeeeeeeeeeee*
  770. 70  E5E5E5E5 E5E5E5E5  E5E5E5E5 E5E5E5E5  *eeeeeeeeeeeeeeee*
  771.  
  772. :ch0,0;ch20,0<cr>é <-- jus⌠ CHangσ fo≥ thσ tw∩ director∙ entries...
  773. E5E5
  774.  
  775. :d<cr> <-- why "valley girls" take 2 birth control pills (to be sure, fer'sure!)
  776. 00  0042495A 2D57495A  20424153 00000080  *.BIZ-WIZ BAS....*
  777. 10  1A1B1C1D 1E1F2021  22232425 26272829  *...... !"#$%&'()*
  778. 20  0042495A 2D57495A  20424153 0100006B  *.BIZ-WIZ BAS...k*
  779. 30  2A2B2C2D 2E2F3031  32333435 36370000  **+,-./01234567..*
  780. 40  E5E5E5E5 E5E5E5E5  E5E5E5E5 E5E5E5E5  *eeeeeeeeeeeeeeee*
  781. 50  E5E5E5E5 E5E5E5E5  E5E5E5E5 E5E5E5E5  *eeeeeeeeeeeeeeee*
  782. 60  E5E5E5E5 E5E5E5E5  E5E5E5E5 E5E5E5E5  *eeeeeeeeeeeeeeee*
  783. 70  E5E5E5E5 E5E5E5E5  E5E5E5E5 E5E5E5E5  *eeeeeeeeeeeeeeee*
  784.  
  785. :w<cr> <-- Write this directory sector as well, before we quit!
  786.  
  787. :x<cr> <-- eXit to CP/M-80...
  788.  
  789. A0>dir b:<cr> <-- and as if by magic...
  790. B: BIZ-INIT BAS : BIZ-CALC BAS : BIZ-CHRT BAS : BIZ-WIZ  TXT
  791. B: BIZ-WIZ  BAS
  792. A0>...It's all done with mirrors!
  793.  
  794. 5.2 Modifying a disk for "Program Autoload"
  795.  
  796. B∙á modifyinτá ß portioε oµ thσ CP/═ operatinτá system¼á yo⌡á caε ì
  797. forcσ i⌠ loaΣ automaticall∙ anΣ executσ ß commanΣ file«  Thi≤ caε ì
  798. bσá particularl∙ usefu∞ iµ yo⌡ wan⌠ t∩ set-u≡ somσ fanc∙á printe≥ ì
  799. initialization¼á modif∙ somσ seria∞ por⌠ BauΣ ratσ o≥ datß forma⌠ ì
  800. parameters¼á etc«á T∩á ente≥á aεá "autoloadó filenamσ t∩á ßá CP/═ ì
  801. diskette:
  802.  
  803. :t2;s1;d<cr>é <-- positioε t∩ Tracδ 2¼ Secto≥ 1¼ anΣ Dump...
  804.  T=2, S=1, PS=0      (NOTE: this is representative of my disk only!)
  805.  T=2, S=1, PS=0
  806. 00  C35CDDC3 58DD7F00  20202020 20202020  *C\]CX]..        *
  807. 10  20202020 20202020  434F5059 52494748  *        COPYRIGH*
  808. 20  54202843 29203139  37392C20 44494749  *T (C) 1979, DIGI*
  809. 30  54414C20 52455345  41524348 20200000  *TAL RESEARCH  ..*
  810. 40  00000000 00000000  00000000 00000000  *................*
  811. 50  00000000 00000000  00000000 00000000  *................*è60  00000000 00000000  00000000 00000000  *................*
  812. 70  00000000 00000000  00000000 00000000  *................*
  813.           
  814. :ca8,SIGNON<0><cr> <-- Change ASCII, address 8 to 'SIGNON' and '0'.
  815.                  
  816. :ch7,6<cr>é <-- Changσ Hex, addres≤ ╖ t∩ ß valuσ oµ ╢ (length byte)
  817. 00            <-- what the value "was" prior to the change
  818. :d<cr>     <-- Dump the disk sector for display
  819. 00  C35CDDC3 58DD7F06  5349474E 4F4E0020  *C\]CX]..SIGNON. *
  820. 10  20202020 20202020  434F5059 52494748  *        COPYRIGH*
  821. 20  54202843 29203139  37392C20 44494749  *T (C) 1979, DIGI*
  822. 30  54414C20 52455345  41524348 20200000  *TAL RESEARCH  ..*
  823. 40  00000000 00000000  00000000 00000000  *................*
  824. 50  00000000 00000000  00000000 00000000  *................*
  825. 60  00000000 00000000  00000000 00000000  *................*
  826. 70  00000000 00000000  00000000 00000000  *................*
  827.           
  828. :w<cr> <-- Write the disk sector.
  829. :x<cr> <-- eXit to CP/M.
  830.  
  831. Yo⌡á coulΣá no≈á "colΣá bootóá thi≤á CP/M-8░á systeφá disk¼áá anΣ           ì
  832. i⌠áá woulΣáá "autoloadóáá b∙áá runninτáá thσáá 'SIGNONºáá prograφ           ì
  833. (whateve≥ tha⌠ is!⌐ prio≥ t∩ doinτ anythinτ else.
  834.  
  835. 5.3 Finding and Modifying Program Data Quickly
  836.  
  837. Thi≤ examplσ sho≈ ho≈ t∩ finΣ ß filenamσ iε thσá directory¼á theε ì
  838. locatσá thσ datß withiε thσ filσ fo≥ subsequen⌠ modificatioεá (iε ì
  839. thi≤ casσ jus⌠ t∩ changσ ß versioε numbe≥ iε thσ sourcσ code...wσ ì
  840. could (I suppose) have used (barf...) 'ED'!):
  841.  
  842. :fSYSTOSYS.ASM<cr> <-- Find the program 'SYSTOSYS.ASM'
  843. 20  00535953 544F5359  5341534D 00000080  *.SYSTOSYSASM....*
  844. 30  0E010F01 10011401  15011601 4F015001  *............O.P.*
  845. G=0000:00, T=4, S=1, PS=0
  846.  
  847. :g10e<cr>é <-- G∩ t∩ Grou≡ '10Eº (seσ i⌠ abovσ a⌠ addres≤ 3░ anΣ 31? Also,
  848. G=010E:00¼ T=71¼áS=33¼ PS=3▓         remembe≥ t∩ ente≥ 2╦ group≤ "bas-akwardsó ì
  849.                                      froφ wha⌠ yo⌡ see. In this case NOT E01!)
  850. :d<cr> <-- Dump it...
  851. 00  3B202020 20202020  20202020 20202020  *;               *
  852. 10  436F6D70 7570726F  20382F31 3620436F  *Compupro 8/16 Co*
  853. 20  6D706174 69626C65  20535953 544F5359  *mpatible SYSTOSY*
  854. 30  53205665 7273696F  6E20312E 340D0A3B  *S Version 1.4..;*
  855. 40  20202020 20202020  20202020 20202043  *               C*
  856. 50  6F707972 69676874  20284329 20313938  *opyright (C) 198*
  857. 60  312C2031 3938322C  20313938 33206279  *1, 1982, 1983 by*
  858. 70  204B656C 6C792053  6D697468 0D0A3B0D  * Kelly Smith..;.*
  859.  
  860. :ca3c,5<cr> <-- I want to change from version 1.4 to 1.5:
  861. 4
  862. :d<cr> <-- what sound does the Lone Rangers horse make? (Dump'ta'da'Dump'ta'da...)
  863. 00  3B202020 20202020  20202020 20202020  *;               *
  864. 10  436F6D70 7570726F  20382F31 3620436F  *Compupro 8/16 Co*
  865. 20  6D706174 69626C65  20535953 544F5359  *mpatible SYSTOSY*è30  53205665 7273696F  6E20312E 350D0A3B  *S Version 1.5..;*
  866. 40  20202020 20202020  20202020 20202043  *               C*
  867. 50  6F707972 69676874  20284329 20313938  *opyright (C) 198*
  868. 60  312C2031 3938322C  20313938 33206279  *1, 1982, 1983 by*
  869. 70  204B656C 6C792053  6D697468 0D0A3B0D  * Kelly Smith..;.*
  870.  
  871. :w<cr> <-- Write it...
  872.  
  873. :x<cr> <-- Do with me what you will (just don't leave me unsatisfied!)
  874.  
  875. A>Ahhhhh...thats better!
  876.  
  877. 5.4 A "Poor Man's" Disk Test
  878.  
  879. D╒á caε als∩ functioε iε thσ capacit∙ oµ ß "Poo≥ Man'só disδ tes⌠ ì
  880. b∙á performinτ simplσ sequentia∞ write/read/seeδá function≤á witΦ ì
  881. use≥ specifieΣ datß patterns«á  Herσ iε ver∙ simplσ form¼á i≤ ß ┤ ì
  882. secto≥á non-destructivσá read-only/seeδá tes⌠.á An∙áá susbsequen⌠ ì
  883. error≤ woulΣ bσ trappeΣ b∙ thσ CP/═ BDO╙ anΣ sto≡ thσ "testó witΦ ì
  884. whateve≥ erro≥ messagσ wa≤ appropriatσ (e.g.¼á BDO╙ Er≥ oε B║ BA─ ì
  885. SECTOR):
  886.  
  887. :t20;s1<cr>
  888. G=0040:00, T=20, S=1, PS=0
  889.  
  890. :+;+;+;+;-;-;-;-;/<cr> <-- read forward 4 sector,
  891. G=0040:01, T=20, S=2, PS=1     read backward 4 sectors,
  892. G=0040:02, T=20, S=3, PS=2     repeat 'ad nauseum' (actually until ^C)
  893. G=0040:03, T=20, S=4, PS=3
  894. G=0040:04, T=20, S=5, PS=4
  895. G=0040:03, T=20, S=4, PS=3
  896. G=0040:02, T=20, S=3, PS=2
  897. G=0040:01, T=20, S=2, PS=1
  898. G=0040:00, T=20, S=1, PS=0
  899. G=0040:01, T=20, S=2, PS=1
  900. G=0040:02, T=20, S=3, PS=2
  901. G=0040:03, T=20, S=4, PS=3
  902. G=0040:04, T=20, S=5, PS=4
  903. G=0040:03, T=20, S=4, PS=3
  904. ~                        ~
  905. | days or weeks later... |
  906. ~                        ~
  907. G=0040:03, T=20, S=4, PS=3
  908. G=0040:02, T=20, S=3, PS=2
  909. G=0040:01, T=20, S=2, PS=1
  910. G=0040:00, T=20, S=1, PS=0
  911. G=0040:01, <-- interrupted with ^C from the keyboard.
  912. :
  913.  
  914. B∙á usinτá you≥ imagination¼á yo⌡ caε come-u≡ witΦ ßá variet∙á oµ ì
  915. usefull applications for DU...Have fun!
  916.