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 / UTILS / SQUSQ / CRN24PAT.AZM < prev    next >
Text File  |  2000-06-30  |  1KB  |  45 lines

  1. ;CRN24PAT.AZM
  2. ;  causes XZY files to crunch to XZZ, as suggested in the source for
  3. ;  CRUNCH24.
  4. ;  The equated labels refer to the CRUNCH24 source; the equated values
  5. ;  refer to the distributed version of CRUNCH24.COM.  This code
  6. ;  takes fewer bytes than the original.
  7. ;  To use:
  8. ;   A>Z1 CRN24PAT
  9. ;   A>MLOAD CRUNCH24.COM,CRN24PAT
  10.  
  11. CBL    EQU    0248H
  12. OUTFCB    EQU    1828H
  13. ERR7    EQU    06ECH
  14. SKP991    EQU    0349H
  15.  
  16.     ORG    CBL+20        ; start 8 lines down from CBL:
  17.  
  18.     LD    HL,OUTFCB+9    ; point to first char in extension
  19.     LD    A,' '        ; See if extension is blank
  20.     CP    (HL)        ;
  21.     LD    A,'Z'        ; we'll need a Z later
  22.     JR    Z,ZZZ        ; If so, force an extension of "ZZZ"
  23.     INC    HL        ; point to second char in extension
  24.     CP    (HL)        ; See if middle letter is "Z"
  25.     JR    NZ,XZY        ; Normal condtition- simply force 2nd ltr to Z
  26.     INC    HL        ; point to last char
  27.     CP    (HL)        ; See if last char is "Z"
  28.     JR    NZ,XZZ        ; no - extension will be "XZZ"
  29.     DEC    HL        ; point to first char
  30.     DEC    HL
  31.     CP    (HL)        ; See if first char is "Z"
  32.     JR    NZ,ZZZ        ; no - extension will be "ZZZ"
  33.     LD    DE,ERR7        ; Already "ZZZ" - User had better rename file
  34.     JP    SKP991        ; but give him a straight copy, anyway
  35. ZZZ:    LD    (HL),A        ; First char becomes Z
  36.     INC    HL
  37.     LD    (HL),A        ; Second char becomes Z
  38.     INC    HL
  39. XZY:
  40. XZZ:
  41.     LD    (HL),A        ; Pointed-to char becomes Z
  42. ; since this code takes less space than original, we fill with NOPs (00)
  43.     DB    0,0,0,0,0,0,0,0,0
  44.     END
  45.