 sttl NEC Printer Tables
 pag

*
*   character equates used by drivers
*
bs         equ     $08                 necdbs character
nl         equ     $0A                 new line character
vt         equ     $0C                 vertical tab character
cr         equ     $0D                 carriage necrtn character
xo         equ     $12                 punch on character
sp         equ     $20                 necspc character

* -- Flag values

rawnec    equ     %00000001           1 => Raw Mode I/O selected
necnlo    equ     %00010000           1 => Treat CR as new line
neclof    equ     %00100000           1 => issue new line on line overflow
necnop    equ     %01000000           1 => device is already open
necioe    equ     %10000000           1 => permanent I/O error

 org 0
necinq rmb OQH_SIZE Input queue header
necarg0 rmb 2 TTYSET - Input arguments
necarg1 rmb 2
necarg2 rmb 2
necpos rmb 2  fdb     0                   requested character position
necold rmb 2  fdb     0                   previous character position
carage rmb 2  fdb     0                   current carage position
necfps rmb 2  fdb     0                   requested form position
nectrc rmb 2  fdb     0                   current nectrc position
necssp rmb 2  fdb     necqbf             necstb stuff pointer
necsfp rmb 2  fdb     necqbf             necstb fetch pointer
necsnd rmb 2  fdb     necqbf+NECBSIZ
necsct rmb 1  fcb     0                  in-buffer necstb count
necbsy rmb 1  fcb     0

*
*   tty information table
*
necflg rmb 0
necU   rmb 1  fcb     %00110000           control flag byte

neclef rmb 1  fcb     6                   left margin, in 12'ths of an inch
necpch rmb 1  fcb     10                  pitch designation, in chars/inch
necdep rmb 1  fcb     6                   depth designation, in lines/inch
necfrm rmb 1  fcb     132                 form length, in 12'ths of an inch
necwid rmb 1  fcb     168                 form width, in 12'ths of an inch
*
*   driver variables and other stuff
*
pitch rmb 1     fcb     12                  character pitch value
depth rmb 1     fcb     8                   line depth value
margin rmb 2    fdb     48                  left margin offset
frmlen rmb 2    fdb     528                 length of standard form
normal rmb 2    fdb     0                   form normalization constant
rtlimt rmb 2    fdb     1686                maximum carriage position
*
NECBSIZ    equ    256                  size of strobe buffer, in bytes
necqbf rmb NECBSIZ output strobe buffer
necqnd rmb 0 end of buffer
*
NEC_SIZ rmb 0 -- Size of NEC control structure
*
*   necadr descriptions and equates
*

d_lsp      equ     0                   lsp data register offset
d_msp      equ     1                   msp data register offset
cr_a       equ     2                   A-side control register offset
cr_b       equ     3                   B-side control register offset

s_tof      equ     %01000000           top of form necstb
s_rpf      equ     %01100000           right paper feed necstb
s_pfd      equ     %10000000           paper feed necstb
s_car      equ     %10100000           carage motion necstb
s_chr      equ     %11000000           character necstb
s_rst      equ     %11100000           restore necstb

back       equ     %00001000           down or left necstb modifier
*
*   necadr initialization equates
*
c_acr      equ     %00110110           basic A-side register values
c_lift     equ     %00001000                 ribbon lift modifier

c_bcr      equ     %00111110           basic B-side register values
c_irq      equ     %00000001                 irq enable modifier
c_ddr      equ     %00000100                 direction register select
c_stb      equ     %00001000                 Strobe line output
