
 1000  *SAVE S.MON ASCII DISPLAY (DOBE)
 1010  *--------------------------------
 1020  CH     .EQ $24
 1030  A1L    .EQ $3C
 1040  A1H    .EQ $3D
 1050  A2L    .EQ $3E
 1060  A2H    .EQ $3F
 1070  BUFFER .EQ $BCDF
 1080  PRBYTE .EQ $FDDA
 1090  COUT   .EQ $FDED
 1100  *--------------------------------
 1110         .OR $FCC9
 1120         .TA $CC9
 1130   
 1140  PATCH  PHA          save byte
 1150         LDA A1L      low byte of dump address
 1160         AND #$F        is transformed to
 1170         TAX            offset in buffer
 1180         PLA          get original byte back
 1190         PHA            but keep it on the stack
 1200         STA BUFFER,X buffer the character
 1210         CPX #$F      last byte of line?
 1220         BEQ .0       if so, print the buffer
 1230         LDA A2L
 1240         CMP A1L      done with range?
 1250         BNE .3       return to monitor if not
 1260         LDA A2H
 1270         CMP A1H      check high bytes
 1280         BNE .3       return if more
 1290  
 1300  .0     PLA
 1310         JSR PRBYTE   print the last byte
 1320         LDA #60      tab to column 60
 1330         STA CH
 1340         LDX #0
 1350  .1     LDA BUFFER,X display the buffer
 1360         ORA #$80
 1370         CMP #$A0     control character?
 1380         BCS .2
 1390         LDA #$A0     if so, substitute blank
 1400  .2     JSR COUT     print the character
 1410         LDA #$A0
 1420         STA BUFFER,X blank out buffer as we go
 1430         INX
 1440         CPX #$10     done?
 1450         BCC .1       no, go on
 1460         RTS
 1470   
 1480  .3     PLA          restore original byte
 1490         JMP PRBYTE   returns to caller

