home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / DRI-archive / roche / DUMPASC2.TXT < prev    next >
Internet Message Format  |  2009-12-11  |  6KB

  1. From: "French Luser" <Bill.Ga...@microsoft.com>
  2. Newsgroups: comp.os.cpm
  3. Subject: DUMPASC for CP/M-86 (Plus) Improved
  4. Date: Fri, 26 Nov 2004 12:54:44 +0100
  5. X-Priority: 3
  6. X-MSMail-Priority: Normal
  7. X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
  8. X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
  9. Lines: 126
  10. Message-ID: <41a718ee$0$16368$8fcfb975@news.wanadoo.fr>
  11. Organization: les newsgroups par Wanadoo
  12. NNTP-Posting-Host: APoitiers-106-2-3-49.w81-248.abo.wanadoo.fr
  13. X-Trace: 1101469934 news.wanadoo.fr 16368 81.248.43.49:21882
  14. X-Complaints-To: abuse@wanadoo.fr
  15.  
  16. DUMPASC.TXT  by Emmanuel ROCHE
  17. -----------
  18.  
  19. Improved DUMPASC Utility for CP/M-86 (Plus)
  20.  
  21. For years, I used DUMPASC (a  little variation  of the  DUMP.ASM
  22. example program provided by Digital Research since CP/M  1.4) to
  23. have  a  quick  look  at the  messages contained  inside program
  24. files.
  25.  
  26. One of  the  first  thing  that I  did when  moving to  the 8086
  27. version of CP/M Plus, was to use DRI XLT-86 to  translate it  in
  28. 8086 assembly language.
  29.  
  30. I published it in the comp.os.cpm Newsgroup several years ago.
  31.  
  32. Recently,  I  was finally  able to  build a  custom "IBM  Clown"
  33. running at 400-MHz,  specially made  just to  use CP/M-86  Plus.
  34. Previously, I used a TANDON 286 running at 12-MHz.
  35.  
  36. I am now able to see the CP/M Plus utilities running much faster
  37. than on my beloved Epson QX-10, using a Z-80 at 4-MHz, that  was
  38. my workhorse during 15 years. I am happy.
  39.  
  40. The only thing missing,  to finally  stop using  8-bit programs,
  41. are  WS4  for  CP/M-86  and  Mallard-86  BASIC  for  CP/M-86  or
  42. Concurrent CP/M. (Did you hear, Santa Claus?)
  43.  
  44. For exploring the various versions of programs that  appear from
  45. time to time, I continue to use heavily DUMPASC.
  46.  
  47. However, with my Super  Whizzo running  at 400-MHz,  I sometimes
  48. miss some messages now. I decided it was time to "improve" it.
  49.  
  50. So,  since  the details  of the  SYSVAR (replacing  the SCB)  of
  51. CP/M-86 Plus are now known, I "improved" it.
  52.  
  53. However, it  then refused  to run  under the  CMP86.EXE emulator
  54. under MeSsy-DOS...   Obviously, this  emulator emulates  CP/M-86
  55. Version 1.x, so don't know about Version 3.1. (Too bad  that its
  56. source code is not available...)
  57.  
  58. Since I still use WS4 and  Mallard-86 BASIC  under MeSsy-DOS  to
  59. write the  documentation and  develop CP/M-86  Plus programs,  I
  60. needed to keep it portable.
  61.  
  62. So, I  removed the  code asking  the operating  system how  many
  63. lines the  screen has,  and replaced  it by  a very  simple line
  64. counter. When it reaches 22, the program waits for a keypress.
  65.  
  66. I chose this value to be compatible with  TYPE. As  displayed by
  67. SYSVAR and SYSDAT, the standard line number for DRI OSes  on IBM
  68. Clown hardware is 24. This is  because Concurrent  CP/M and  DOS
  69. Plus have a Status Line at line 25.   Hence this  setting at  24
  70. lines. However, this means  that there  are 3  lines overlapping
  71. under CP/M-86 Plus. I decided that  this was  not a  bug, but  a
  72. feature, since it make reading the messages so much easy.
  73.  
  74. If you need to change this setting, there is a  byte at  the end
  75. of the program with the value 22 (decimal).
  76.  
  77. I also took this opportunity to  change the  character displayed
  78. after the offset. Under 8-bit CP/M Plus, I  always used  the ":"
  79. character. Unfortunately,  the Newbies  at Intel  who "designed"
  80. the 8086 choose to use ":" as the separator between segments and
  81. offsets... So, from now on, all my 16-bit dumps will use the "|"
  82. character.
  83.  
  84. Example: A>dumpasc dumpasc.cmd
  85.  
  86. 0000| ................................................................
  87. 0040| ................................................................
  88. 0080| .......Z.......<.u .......u..#.\....}.<.t...0.....^....e...<Cu.C
  89. 00C0| ..<Ou.C..<Mu............X.S...[r0....$?u.....7...r....a....\..|.
  90. 0100| /.. .*..C.........*.......<.s.< s.....SRQ....YZ[.SRQ......YZ[...
  91. 0140| .........$.<.s..0...7.......P.............X.............X.<.u..&
  92. 0180| ...t..........X...........2..|..\......SRQ.\.....YZ[..\.:.].u...
  93. 01C0| ]..PSQR....ZY[X.l...]...........................................
  94. 0200| ................................................................
  95. 0240| ................................................................
  96. 0280| ................................................................
  97. 02C0| .................................DUMPASC-86 by Emmanuel ROCHE...
  98. 0300| File not found.$...No records exist (zero-length file).$........
  99. 0340| ................................................................
  100.  
  101.  
  102. As you can see, the improved version is not much bigger than the
  103. first 8086 version. This must be the most portable CP/M  program
  104. ever... Its logic is quite Old-Fashioned.   When re-reading  the
  105. code, I saw dozens of places where I would write it differently,
  106. now. However, there is an English saying: "If  it is  not broke,
  107. don't fix it!" And I daily need it.  So, I  deciced to  "play it
  108. safe".   In  fact, I  know of  no equivalent  MeSsy-DOS program.
  109. Finally, for those still  playing with  CP/M-86 (Plus),  here is
  110. the H86 file:
  111.  
  112. :0400000300000000F9
  113. :1B000081BB000003DC891E5A01BC9E01E80B013CFF7520BA1D01E8D900E975B2
  114. :1B001B8100B123BA5C00CDE0A07D003C007401C3BA3001E8C100EB5EE8E6FF77
  115. :1B003681BB65008A073C437513438A073C4F750C438A073C4D7505BB0001EB18
  116. :1B00518103BB0000B080A2580153E899005B72308AE88AC3243F751EE8C900F3
  117. :1B006C81E83700D0C8721E8AC7E861008AC3E85C00B07CE82F00B020E82A0061
  118. :1B0087819F439E8AC5E80B00EBC9E82A00B100B200CDE03C7F73043C20730242
  119. :1B00A281B02EEB0B535251B10BCDE0595A5BC3535251B1028AD0CDE0595A5B00
  120. :1B00BD81C3B00DE8EEFFB00AE8E9FFC3240F3C0A73040430EB020437E8D9FFF9
  121. :1B00D881C39F86C45086C4D0C8D0C8D0C8D0C8E8DFFF5886C49EE8D8FFC3B1AD
  122. :1B00F38109CDE0C3A058013C807509E826000AC07402F9C38AD0B600FEC0A24B
  123. :1B010E815801BB800003DA8A070AC0C332C0A27C00BA5C00B10FCDE0C35352CB
  124. :1B01298151BA5C00B114CDE0595A5BC3A05C013A065D017511C6065D010050F5
  125. :13014481535152B101CDE05A595B58E86CFFFE065D01C3F4
  126. :1B0100820044554D504153432D383620627920456D6D616E75656C20524F4367
  127. :1B011B8248450D0A0746696C65206E6F7420666F756E642E240D0A074E6F2022
  128. :1B0136827265636F72647320657869737420287A65726F2D6C656E6774682016
  129. :0701518266696C65292E240A
  130. :02015C82160009
  131. :00000001FF
  132.  
  133. A>That's all, folks!
  134.  
  135. Yours Sincerely,
  136. "French Luser"
  137.  
  138.  
  139. EOF
  140.