home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / ZCPR33 / Z3-33 / Z33-M80.HOW < prev    next >
Text File  |  2000-06-30  |  4KB  |  126 lines

  1.  
  2. Date: Thursday, 4 June 1987  21:17-MDT
  3. From: Mark Dapoz
  4. To:   info-cpm
  5. Re:   zcpr3.3
  6.  
  7. I just finished getting zcpr3.3 to assemble with M80 version 3.44 
  8. (dated Dec 9, 1981).  The following is a summary of the changes that 
  9. are needed to get the CCP portion to assemble (I still haven't recieved 
  10. the RCP & FCP portions so I don't know what changes need to be made to 
  11. those files).
  12.  
  13. 1. In all files the square brackets "[" & "]" need to be changed to "(" 
  14.    & ")" respectively on all conditional assembly statements (ie if's).  
  15.    DON'T do a global change with a text editor since some square 
  16.    brackets don't need to be changed!
  17.  
  18. in the file ZCPR33.Z80:
  19.  
  20. 2. The maclib command must be converted to upper case along with it's 
  21.    arguments
  22.  
  23. 3. The commands .Z80 and ASEG should be added.
  24.  
  25. in the file Z33HDR.LIB:
  26.  
  27. 4. The extmpath, extmpathadr and whldir equate statements should have 
  28.    the EQU changed to a DEFL (this should be changed anyways, I think).
  29.  
  30. in the file Z33MAC.LIB
  31.  
  32. 5. M80 can only handle 6 chars for a macro argument (even in version 
  33.    3.44) so the 'command' macro needs to be changed.  Following is an 
  34.    updated version:
  35.  
  36. ; Command table entry definition macro
  37.  
  38. ; Macro to form an entry for one command in the table.  The first parameter is
  39. ; the name to be used for the command (no quotes); the second parameter is the
  40. ; flag that indicates whether or not the command is to be enabled; the third
  41. ; parameter is the wheel control flag; and the last parameter is the jump
  42. ; address to the code that carries out the command.  The command names are
  43. ; automatically padded out to the correct length (they will be truncated and
  44. ; an error message will result if a command name is too long).  The characters
  45. ; in the command name are automatically converted to upper case.
  46.  
  47. command macro cmdnam,enaflg,whlflg,addr
  48.  
  49.          if     enaflg          ;; Generate command only if enabled
  50.  
  51. whlmask defl    whlflg          ;; Initialize variables
  52. count   defl    cmdsize         ;; Initialize to size of each command name
  53.  
  54.         irpc    char,cmdnam     ;; Repeat over letters in command name
  55.  
  56. count   defl    count - 1       ;; Count down characters in name
  57.  
  58.          if     ( count lt cmdsize )
  59.  
  60.                 ;; If character is lower case, convert to upper case
  61.  
  62.          if     ( '&char' ge 'a' ) and ( '&char' le 'z' )
  63.  
  64.          if     whlmask
  65.         defb    ( '&char' and 5fh ) + 80h
  66.          else   ;;not whlmask
  67.         defb    ( '&char' and 5fh )
  68.          endif  ;;whlmask
  69.  
  70.          else   ;;not lower case
  71.  
  72.          if     whlmask
  73.         defb    '&char' + 80h   ;; If controlled by wheel, set high bit
  74.          else   ;;not whlmask
  75.         defb    '&char'         ;; If not restricted, leave high bit clear
  76.          endif  ;;whlmask
  77.  
  78.          endif  ;;lower case
  79.  
  80.          endif  ;;( count lt cmdsize )
  81.  
  82. whlmask defl    false           ;; Turn off high-bit setting after first char
  83.  
  84.         endm    ;irpc
  85.  
  86.                 ;; Pad command name with blanks
  87.  
  88.          if     ( count gt cmdsize )    ;; If we underflowed
  89.         *** Command name "&cmdname" is too long / truncated ***
  90.          else
  91.         rept    count
  92.         defb    ' '
  93.         endm
  94.          endif  ;( count gt cmdsize )
  95.  
  96.         dw      addr            ;; Dispatch address for command
  97.  
  98.          endif  ;enable
  99.  
  100.         endm    ;command
  101.  
  102.  
  103. After successful assembly, the resultant .REL file was converted to a 
  104. HEX file using RELHEX.COM and then merged with the BIOS in the standard 
  105. manner.  Even though M80 only outputs 6 char labels in the REL file, it 
  106. still keeps larger labels during assembly, so the use of large labels 
  107. in zcpr3.3 doesn't affect M80 in the least.  Hope this helps in getting 
  108. people stared with assembling zcpr3.3 with M80.
  109.  
  110. A side note: zcpr3.3 came up the first time I tried booting it!  It did 
  111. take me 2 hours to figure out all the changes that needed to be made to 
  112. the source files for M80, but after that first successful assemble, it 
  113. booted with no problems.
  114.  
  115. Regarding zcpr 4.0, I'd love to hear what you're doing with it Richard, 
  116. how about posting a summary of what's going on with it, either that, or 
  117. send it directly to me.
  118.  
  119.         -Mark
  120.  
  121. "If a hardware problem causes system software to crash, the customer 
  122. engineer will blame the system programmer."
  123.  
  124.             Mark Dapoz
  125.          mdapoz@watdragon.UUCP
  126.