home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / archives / northstr / 8705-1.txt < prev    next >
Text File  |  1988-02-09  |  7KB  |  173 lines

  1.  6-May-87 09:27:22-MDT,1303;000000000000
  2. Return-Path: <dzzr@LANL.GOV>
  3. Received: from LANL.GOV by SIMTEL20.ARPA with TCP; Wed, 6 May 87 09:26:56 MDT
  4. Received: by LANL.GOV (5.54/5.17)
  5.     id AA06128; Wed, 6 May 87 09:26:33 MDT
  6. Date: Wed, 6 May 87 09:26:33 MDT
  7. From: dzzr@LANL.GOV (Douglas J Roberts)
  8. Message-Id: <8705061526.AA06128@LANL.GOV>
  9. To: northstar-users@simtel20.arpa
  10. Subject: A problem with the parallel output port.
  11. Cc: dzzr@LANL.GOV
  12.  
  13. I recently stuck an external modem on my old Northstar, using the
  14. second of its two serial ports. I then constructed a parallel cable,
  15. (thanks, Ted)
  16. removed the serial interface card from the Epson MX-80, and modified
  17. my LifeBoat Associates CP/M 2.21 using MOVCPM and SYSGEN to tell
  18. the system that the printer was now on the parallel output port.
  19.  
  20. What reached the printer was (seemingly) bit-shifted garbage. The
  21. handshaking worked fine, but I suspect that the printer driver in my
  22. CPM is fouled.
  23.  
  24. I then wrote a little 8080 test code to send characters to the
  25. parallel output port, and it worked fine. I would like to modify
  26. my USER.ASM file to include a parallel port driver that I know
  27. works, but I don't know how to patch the user stuff into CPM after 
  28. I'm done.
  29.  
  30. Can anyone out there in NETLAND help? 
  31.     
  32. Thanks in advance for all the good help....
  33.  
  34. --Doug Roberts
  35. 10-May-87 17:19:22-MDT,4408;000000000000
  36. Return-Path: <@wiscvm.wisc.edu:JETP502@CALSTATE.BITNET>
  37. Received: from wiscvm.wisc.edu by SIMTEL20.ARPA with TCP; Sun, 10 May 87 17:18:47 MDT
  38. Received: from CALSTATE.BITNET by wiscvm.wisc.edu ; Sun, 10 May 87 17:57:10 CDT
  39. Received: by CCS.CSUSCC.CALSTATE.EDU from Mail by CSUMailer (1.0a);
  40. Comment: 10 May 87 15:52:21 PST
  41. Date:     Sun, 10 May 1987 15:51 PDT
  42. From:     JETP502%CALSTATE.BITNET@wiscvm.wisc.edu
  43. Subject:  Patching Lifeboat USER.ASM
  44. To:       NORTHSTAR-USERS@SIMTEL20.ARPA
  45.  
  46. Extracted  from  "CP/M2  ON  NORTH  STAR  DISK  DOUBLE DENSITY - QUAD
  47. CAPACITY USER'S NOTES BY LIFEBOAT ASSOCIATES"
  48.  
  49. There  are  two  methods of making changes in your I/O.  The SAVEUSER
  50. program  is providad as a quick and easy way of making short patches.
  51. The  SYSGEN  procedure  is  a  comprehensive  method of making system
  52. changes.
  53.  
  54.                      PATCHING WITH SAVEUSER
  55.  
  56.      Running the SAVEUSER program at any time will write a portion of
  57. the then running  CP/M system onto the disk in drive A.  The specific
  58. portion written consists  of  the  entire USER AREA (512 bytes or two
  59. pages starting at BIOS+700 hex) and  the  MODE  AREA which is the 128
  60. bytes  immediately  before  the  USER AREA.  In the distribution  24K
  61. system the MODE AREA starts at 5980  hex  and the USER AREA starts at
  62. 5A00 hex and ends at 5BFF hex.
  63.  
  64.      Normal changes in the MODE AREA would  be  modifying  the  CONFG
  65. byte  at  59F8 hex for two sided or fast stepping drives or making  a
  66. permanent change in the MODE BYTE.  Complete definitions of these are
  67. in Appendix A.  Any changes in the USER AREA would be for the purpose
  68. of making a  quick  patch  to  your  CONSOLE,  LIST,  PUNCH or READER
  69. routines.    These patches could be made with DDT and if  they  prove
  70. satisfactory, permanently saved on the system disk with SAVEUSER.
  71.  
  72.      To run the program, simply type "SAVEUSER".  It will sign on and
  73. ask for confirmation  that  you really wish to write onto the disk in
  74. drive A.  A <CR> response will  begin  the write.  You may also abort
  75. without writing anything by entering control C.
  76.  
  77.  
  78.                         SYSGEN PROCEDURE.
  79.  
  80.      The  SYSGEN PROCEDURE is an advanced  method  of  changing  your
  81. system configuration.    It  should  only be used when your system is
  82. running  properly and you have become completely  familiar  with  the
  83. features of CP/M.  This procedure uses the ED.COM editor, the ASM.COM
  84. assembler,    the  DDT.COM  debugger,  and  the  SYSGEN.COM  program.
  85. Familiarize yourself with the use of these programs before attempting
  86. to change your system configuration in this way.
  87.  
  88.      This procedure uses the facilities of CP/M to create an assembly
  89. language file containing  your  customized  I/O.    Use as a starting
  90. point  USER.ASM  which  contains the proper equates and  jump  table.
  91. Modify USER.ASM using ED  to  suit  your  own  purposes.   Be sure to
  92. change the equate for MSIZE in the file to the desired memory size of
  93. your CP/M.  Next, assemble your modified file with ASM.COM to produce
  94. USER.HEX  which  will  be  used  to  overlay and modify your existing
  95. system.
  96.  
  97.      The existing system is then brought into memory at location 900H
  98. (hex)  using  the SYSGEN program.  This  is  the  standard  and  most
  99. convenient memory  location  for  making  changes in the CP/M system.
  100. The copy of CP/M starting at 900H is usually called the SYSGEN IMAGE.
  101. Save  the  SYSGEN  IMAGE  as  a  disk file by the  command  "SAVE  40
  102. CPM.COM<CR>".
  103.  
  104.      CPM.COM is then brought back  into  memory  under the control of
  105. DDT with the command "DDT CPM.COM<CR>". The SYSGEN IMAGE  at  900H is
  106. then  overlaid  with  USER.HEX  using  the  "I"  insert  and "R" read
  107. commands of DDT.
  108.  
  109.      Note  that  USER.HEX is read in with an offset so that  the  hex
  110. file will be placed  at 2700H.  The offset changes for each different
  111. CP/M system size and is  equal  to  2700 hex minus wherever your USER
  112. AREA begins in memory (5A00 hex in standard  24K system).  The proper
  113. offset  is  automatically  calculated for each MSIZE  by  the  OFFSET
  114. equate in USER.ASM or the DDT  "H"  hex  calculator may be used as in
  115. the example.
  116.  
  117.      At this point, the new system has been  patched with your custom
  118. I/O and may be directly put on the system tracks with SYSGEN or saved
  119. again as a disk file for later use.
  120.  
  121.                               -end-
  122.  
  123. 27-May-87 09:16:29-MDT,1633;000000000000
  124. Return-Path: <dzzr@LANL.GOV>
  125. Received: from LANL.GOV by SIMTEL20.ARPA with TCP; Wed, 27 May 87 09:16:10 MDT
  126. Received: by LANL.GOV (5.54/1.14)
  127.     id AA02139; Wed, 27 May 87 09:15:07 MDT
  128. Date: Wed, 27 May 87 09:15:07 MDT
  129. From: dzzr@lanl.gov (Douglas J Roberts)
  130. Message-Id: <8705271515.AA02139@LANL.GOV>
  131. To: northstar-users@simtel20.arpa
  132. Subject: Bug in Lifeboat CP/M 2.2 Parallel printer driver.
  133.  
  134. Some of you may remember about a month ago I sent a message to the
  135. N* group asking for help in patching my Lifeboat User area. Thanks
  136. for all the help that you sent. With your help, and the reference
  137. listed below, I fanally found & fixed the problem. It seems that
  138. the driver that came with the system set the high bit on each
  139. output character, effectivly putting my Epson MX-80 into graphics
  140. mode!
  141.  
  142. I went out yesterday & purchased the "Soul of CP/M", a pretty good
  143. reference, and was finally able to patch a modified parallel port
  144. driver into the Lifeboat CPM. What follows is the offending original
  145. driver -- all I did was remove the indicated line:
  146.  
  147.  
  148. COUT2:
  149.     ;Parallel port output.
  150.     IN    6        ;Motherboard status
  151.     ANI    1
  152.     JZ    COUT2    
  153.     MVI    A,20H        ;Reset PO flag
  154.     OUT    6        ;Output char
  155.     MOV    A,C          ;Load accumulator
  156. TIN1:
  157.     ORI    80H        ;Set strove false <-- REMOVE THIS ONE!!!
  158.     OUT    0        ;and send character
  159.     XRI    80H        ;Toggle strobe
  160.     OUT    0        ;Output
  161.     XRI    80H        ;and toggle again
  162.     OUT    0
  163.     ANI    7FH        ;Mask to ASCII
  164.     RET
  165.  
  166. What I needed, and what the "Soul" was able to give me was instructions
  167. on how to compute the offset for reading in the modified User area
  168. with DDT.
  169.  
  170. Thanks again for all your help!
  171.  
  172. --Doug
  173.