home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
8bitfiles.net/archives
/
archives.tar
/
archives
/
canada-remote-systems
/
geos
/
drivers
/
shelldc2.sda
/
EPSON8PING
(
.txt
)
< prev
next >
Wrap
GEOS ConVerT
|
2019-04-13
|
5KB
|
128 lines
Epson8pinG
PRG formatted GEOS file V1.0
Star NX-10
OP V2.0 or higherII.rel
PetASCII.rel
BLASTER'S CONVERTER V2.5
-&PChanSerial5.rel-%
PChanSerial7.rel.
Write Image V2.0
geoWrite V2.1
.Graphics portion of generic Shell Printer Driver. Read Shell easy docs for info.
@CardsWid
e =80 ;A card is 8 pixels wide. Maximum is 80.
CardsLon
g =94 ;A card is 8 pixels high. Normal is 94.
.include ShellZero ;This defines fixed zero-page locations.
@GraphicB
.block 1 ;This driver needs just one more byte.
.psect
@InitForP
rint: ;Start program here.
rts ;No dialog box used so just return.
@PrintPag
ldx #mBeginPage ;Send message at beginning of each
jsr SendMessage ;printed page (see next page for messages).
100$ jsr DoScan ;Scan head across page while printing.
lda #8 ;Since head has 8 pins in graphics mode,
jsr MoveDown ;move down 8 pixels.
lda PrintMode ;Check this byte to see if there is more to
cmp #$3e ;print on this page.
bcs 100$ ;Branch if there is more to print.
ldx #mEndPage ;Now send message at bottom of page.
jsr SendMessage
@DoScan
: ;Prints one head-scan across the page.
ldx #mBeginScan ;Print code sequence to print 640 graphic
jsr SendMessage ;dots across the page in one scan.
ldy #1 ;Open the Window starting on card (column)
100$ jsr OpenWindow ;one, at the left-hand edge of the page.
200$ jsr DoGraphicByte ;Print one vertical byte (8 pixels high).
jsr ShiftPixels ;Shift the pixels in the Window to the left.
bne 200$ ;Repeat for 8 pixels (one card or column).
ldy ActiveColumn ;See if the column number has progressed
iny ;all the way across the page past column
cpy #81 ;80.
bcc 100$ ;Repeat if column number is less than 81.
ldx #mEndScan ;Send message to end the head scan.
jsr SendMessage
@DoGraphi
cByte: ;Assemble 8 vertical pixels into a byte.
ldx #0 ;Start with top pixel.
100$ lda Window+24,x ;This is the middle column of the Window.
rol a ;Get the left-hand pixel.
rol GraphicByte ;Shift it into the graphic byte for the printer.
inx ;Move down one pixel in the Window.
cpx #8 ;See if 8 pixels have been assembled.
bcc 100$ ;Branch if not.
lda GraphicByte ;Now get the assembled byte and give it
jsr SendByte ;to the printer.
@ColorFil
ters:
.word $0001,$0000 ;black on white.
@MessageO
ffset:
.byte <(m00-messages)
.byte <(m01-messages)
.byte <(m02-messages)
.byte <(m03-messages)
.byte <(m04-messages)
.byte <(m05-messag
@ColorFil
ters:
.word $0001,$0000 ;black on white.
@MessageO
ffset:
.byte <(m00-messages)
.byte <(m01-messages)
.byte <(m02-messages)
.byte <(m03-messages)
.byte <(m04-messages)
.byte <(m05-messages)
.byte <(m06-messages)
.byte <(m07-messages)
@MessageL
ength:
.byte <(m01-m00)
.byte <(m02-m01)
.byte <(m03-m02)
.byte <(m04-m03)
.byte <(m05-m04)
.byte <(m06-m05)
.byte <(m07-m06)
.byte <(m08-m07)
@messages
: ;Printer code sequences (aka "messages").
@mBeginPa
ge =0 ;Message to send at top of each page.
m00: .byte ESC,"@" ;Reset printer (for top of form).
@mBeginSc
an =1 ;Send to start a graphic scan of 640 bytes.
m01: .byte ESC,"*",4 ;Code for 80 dpi with
.word 640 ;640 bytes.
@mEndScan
=2 ;Send at end of graphic scan.
m02: .byte CR,ESC,"J",24 ;Carriage Return and Line Feed 24/216 inches.
@mEndPage
=3 ;Send at bottom of page.
m03: .byte FF ;Form Feed to top of next page.
@mBeginTe
xt =4 ;Send at top of page in DRAFT and NLQ.
m04: .byte ESC,"@" ;Reset printer.
@mEndText
=5 ;Send at bottom
of page in DRAFT and NLQ.
m05: .byte FF
;Form Feed to top of next page.
@mTextLin
eFeed =6 ;Send Line Feed in DRAFT and NLQ.
m06: .byte CR,LF ;Carriage Return and Line Feed.
@mSetNLQ
=7 ;Send code to switch printer to NLQ font.
m07: .byte ESC,"x",1 ;NLQ on.
m08: ;One more label needed to calculate length.
HEpson 8-pin 80 dpi driver
Page: PAGE
Printed on: DATE At: TIME File: Epson8pinG
----------------------------------------------------------------------------------------------