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 / MBUG / MBUG016.ARC / WORDBEE2.WSF < prev    next >
Text File  |  1979-12-31  |  3KB  |  127 lines

  1. ;    WORDBEE  MODIFICATIONS
  2.  
  3. ;  Listing 2 which enables the additional printer dot
  4. ;  commands to be utilised mid-line with a '\' trip.
  5.  
  6.     DEFR    16
  7. UNDR    EQU    0CC5CH ;  Note the different EQU labels
  8. ITAL    EQU    0CC2DH ;  compared to listing 1.  In each
  9. EMPH    EQU    0CC39H ;  case the address jumps into the
  10. DUBL    EQU    0CC40H ;  routine just after the command:
  11. COND    EQU    0C05AH ;      LD    A,(IY+2)
  12. BIG    EQU    0CC54H ;  If you study the code below,
  13. SUBP    EQU    0C13BH ;  will see we load the A register
  14. PRINT    EQU    0CD54H ;  before jumping to the address.
  15.  
  16.     ORG    0CA96H ;  All printing goes to here.
  17.  
  18. START    CP    '\'    ;  Is this char a slosh ?
  19.     JP    NZ,PRINT;  If not, just print it.
  20.     DEC    C    ;  Adjust line length
  21.     LD    A,(HL)    ;  Get next char
  22.     AND    0DFH    ;  Convert to upper case
  23.     LD    (HL),A    ;  and put it back
  24.     INC    HL    ;  Ready for next char
  25.     PUSH    BC    ;  Save reg
  26.     CALL    FIRST    ;  Test for each attribute
  27.     POP    BC    ;  Restore reg
  28.     RET    ; To program for next character to print.
  29.  
  30.     ORG    0DF28    ;  Where there is now space
  31.  
  32. ;  Each possibility is tested until one is found:
  33.  
  34. FIRST    CP    'U'    ;  underline ?
  35.     JR    NZ,NXT1    ;  if not underline
  36.     LD    A,(547)    ;  get switch
  37.     XOR    1H    ;  change switch pointer    
  38.     BIT    0,A    ;  test for on or off
  39.     LD    (547),A    ;  save it again
  40.     JR    Z,UNDOUT;  if 0, switch underline off
  41.     LD    A,'Y'    ;  switch underline on
  42. UNDOUT    JP    UNDR    ;  to where A is tested for 'Y'
  43.  
  44. NXT1    CP    'I'    ;  italics ?
  45.     JR    NZ,NXT2    ;
  46.     LD    A,(547)    ;  Each one is the same as above
  47.     XOR    2H    ;
  48.     BIT    1,A
  49.     LD    (547),A
  50.     JR    Z,ITOUT
  51.     LD    A,'Y'
  52. ITOUT    JP    ITAL
  53.  
  54. NXT2    CP    'M'    ;  emphasised ?
  55.     JR    NZ,NXT3
  56.     LD    A,(547)
  57.     XOR    4H
  58.     BIT    2,A
  59.     LD    (547),A
  60.     JR    Z,EMPOUT
  61.     LD    A,'Y'
  62. EMPOUT    JP    EMPH
  63.  
  64. NXT3    CP    'D'    ;  double ?
  65.     JR    NZ,NXT4
  66.     LD    A,(547)
  67.     XOR    8H
  68.     BIT    3,A
  69.     LD    (547),A
  70.     JR    Z,DBLOUT
  71.     LD    A,'Y'
  72. DBLOUT    JP    DUBL
  73.  
  74. NXT4    CP    'C'    ;  condensed ?
  75.     JR    NZ,NXT5
  76.     LD    A,(547)
  77.     XOR    10H
  78.     BIT    4,A
  79.     LD    (547),A
  80.     JR    Z,CONOUT
  81.     LD    A,'Y'
  82. CONOUT    JP    COND
  83.  
  84. NXT5    CP    'B'    ;  BIG ?
  85.     JR    NZ,NXT6
  86.     LD    A,(547)
  87.     XOR    20H
  88.     BIT    5,A
  89.     LD    (547),A
  90.     JR    Z,BIGOUT
  91.     LD    A,'Y'
  92. BIGOUT    JP    BIG
  93.  
  94. NXT6    CP    ']'    ;  new identifier for SUBscript !
  95.     JR    NZ,NXT7
  96.     LD    A,(547)
  97.     XOR    40H
  98.     BIT    6,A
  99.     LD    (547),A
  100.     JR    Z,SBPOUT
  101.     LD    A,'B'
  102. SBPOUT    JP    SUBP
  103.  
  104. NXT7    CP    '^'    ;  new ident for SUPERscript !
  105.     JR    NZ,LAST    ; It was none of above, so . .
  106.     LD    A,(547)
  107.     XOR    80H
  108.     BIT    7,A
  109.     LD    (547),A
  110.     JR    Z,SBPOUT
  111.     LD    A,'P'
  112.     JR    SBPOUT
  113.  
  114. LAST    POP    DE    ;  This routine restores all
  115.     POP    BC    ;  pointers, registers, etc
  116.     INC    C
  117.     PUSH    BC
  118.     PUSH    DE
  119.     DEC    HL
  120.     BIT    6,(HL)
  121.     JR    NZ,OUT
  122.     SET    5,(HL)
  123. OUT    LD    A,'\'    ;  Back to where we started
  124.     JP    PRINT
  125.  
  126.     END
  127.