home *** CD-ROM | disk | FTP | other *** search
- ;
- ; WS.MAC -- Overlay for WordStar Release 4 on the Commodore 128
- ;
- ; This is an overlay for WS.COM that will allow you to use all the
- ; video attributes to show printer codes on the screen of a color
- ; monitor. The overlay provides for the following attributes:
- ; Normal text bright video
- ; Strike-out (^PX) alternate color
- ; Error messages blink
- ; Marked block (^KB, ^KK) reverse video
- ; Underlined text (^PS) underlined
- ; Subscripts (^PV) alternate color
- ; Superscripts (^PT) alternate color
- ; Boldface text (^PB and ^PD) dim video
- ; Italic text (^PY) alternate color
- ;
- ; This particular selection will allow for all the various printer
- ; codes to appear differently and it combination (e.g, boldfaced
- ; italic text will be in dim alternate color). Italic, Strike-out,
- ; Superscripts, and Subscripts all appear in the same alternate
- ; color because two colors cannot be displayed simultaneously and
- ; these codes are less commonly used.
- ;
- ; A few other changes are made to WS.COM by this overlay:
- ; The delete character will be display by the standard Commodore
- ; CP/M delete character, instead of DEL.
- ; The BRITE label is set so WordStar displays normal text in
- ; brite video, instead of dim (which doesn't look too
- ; good on a color monitor).
- ; Various delays have been changed to MicroPro's recommendations
- ; for a 2-megahertz CPU.
- ;
- ; Before using this overlay, you MUST change the colors at the labels
- ; ColOn and ColOff to suit the colors you will be using. You should
- ; just use the name of the colors as listed in the equates below.
- ; Color names beginning with 'd' indicate a dark color, e.g., 'dred' means
- ; dark red. ColOn is for the color you will use to highlight the
- ; alternate color modes listed above. ColOff is the color you use for
- ; normal text. If you don't change them, your alternate color will be
- ; cyan and your normal text will be in yellow.
- ;
- ; After you've selected the colors, assemble the overlay with MAC:
- ; A>MAC WS-C128
- ; Then use MLOAD or SID to overlay your WS.COM:
- ; A>MLOAD NEWWS.COM=OLDWS.COM,WS-C128.HEX
- ; After you've tested it, rename NEWWS.COM to WS.COM and put it on your
- ; WordStar disk. Enjoy!
- ;
- ; Gene Pizzetta
- ; 481 Revere Street
- ; Revere, MA 02151
- ; Voice (617) 284-0891
- ; Compuserve 72060,505
- ; QuantumLink GeneP
- ;
- ;
- String equ 0283h ; WS string out routine
- esc equ 1Bh
- cr equ 0Dh
- lf equ 0Ah
- ;
- black equ 20h ; these equates use physical color numbers
- white equ 21h ; ..rather than logical color numbers.
- dred equ 22h ; ..Ordinarily it's best to use logical
- cyan equ 23h ; ..color numbers, but they aren't affected
- purple equ 24h ; ..by the 'dim' escape sequence. So, in
- dgreen equ 25h ; ..this case, physical colors are best.
- dblue equ 26h
- yellow equ 27h
- dpurple equ 28h
- dyellow equ 29h
- red equ 2Ah
- dcyan equ 2Bh
- mgray equ 2Ch
- green equ 2Dh
- blue equ 2Eh
- gray equ 2Fh
- ;
- ;
- ; Delete Display String
- ;
- ; The following string indicates to WordStar how to display a delete
- ; character (hex 7F) on the screen while editing. On terminals that
- ; interpret the delete character code into a displayable character, it
- ; is recommended that DELSTR be translated into the delete code itself
- ; (length of 1, then 7Fh). All characters in the string must display.
- ;
- org 0326h
- ;
- DELSTR: db 1,7Fh ; Commodore displays it ...
- ;
- ;
- ; The following string is used at sign-on to describe the type
- ; of terminal being used by WordStar. Up to 40 bytes are available
- ; for the string, including its null terminator.
- ;
- org 0342h
- ;
- CRTID: db 'Commodore 128 -- CP/M Plus',cr,lf,0
- ;
- ;
- ; Video attributes are used in various places on the WordStar display.
- ; (for complete information see PATCH.LST on your WordStar disk.)
- ; The VIDATT subroutine is used to change video attributes on the screen.
- ; This subroutine is called only when a video attribute changes.
- ;
- org 03C1h ; org at VIDATT
- ;
- VIDATT: mov a,c
- xra b
- ani 00001111b ; any change in the 'G' codes?
- jz VIDA0 ; (no)
- lxi h,AttOff ; yes, turn them all off
- call String
- lxi h,RevOn ; is it a marked block?
- mov a,c
- ani 00000100b
- cnz String
- lxi h,BliOn ; is it an error message?
- mov a,c
- ani 00000010b
- cnz String
- lxi h,UndOn ; is it underlined text?
- mov a,c
- ani 00001000b
- cnz String
- VIDA0: mov a,c ; strike-out, italic, super-, subscript?
- ani 10110001b
- jz VIDA1
- lxi h,ColOn ; change to the alternate color
- call String
- jmp VIDA2
- VIDA1: lxi h,ColOff ; change to normal color
- call String
- VIDA2: lxi h,DimOn ; do we have bold or doublestrike?
- mov a,c ; (dim must be last attribute selected)
- ani 01000000b
- jz String ; yes, go dim
- lxi h,DimOff
- jmp String ; no, go bright
- ;
- AttOff: db 3,esc,'G0'
- RevOn: db 3,esc,'G4'
- BliOn: db 3,esc,'G2'
- UndOn: db 3,esc,'G3'
- DimOff: db 2,esc,'('
- DimOn: db 2,esc,')'
- ColOff: db 4,esc,esc,esc,yellow ; this sets normal text color
- ColOn: db 4,esc,esc,esc,cyan ; this sets alternate color
- ;
- ;
- ; Normally the status line, text and directories are displayed in
- ; dim intensity so that bold and doublestruck text can be shown in
- ; high intensity. Setting BRITE to OFFh reverses the usage of
- ; bright and dim for the status line, text, and directories; normally
- ; zero.
- ;
- org 0441h
- ;
- BRITE: db 0FFh ; 0 = text dim, 0FFh = text bright
- ;
- ;
- ; Delays -- Each delay is approximately the number of milliseconds
- ; on a 4-Mhz Z80 processor, about twice as long on a 2-Mhz 8080.
- ;
- org 0444h
- ;
- DXOFF: dw 1000 ; time-out for terminal (was 2000)
- DLONG: dw 1000 ; long delays (was 2000)
- DMED: dw 500 ; medium delays (was 1000)
- DSHORT: dw 100 ; short delays (was 200)
- UPDLY: dw 100 ; update delay (was 200)
- DDISK: dw 500 ; disk access delay (no change)
- DFAST: dw 25 ; delay when fast typing (was 50)
- ;
- end