; SYSTEM EQUATES ;the WDT in this bank is the original one. It is used for various sequencing ;chores. The WDTimeout reg is a hardware constraing. ;Bank 0 Registers IN0 = 00 ; INPUT BYTE 2 IN1 = 01 ; INPUT BYTE 1, where zap status is EC = 02 ; E CNTR LFC = 03 ; LF CNTR CopyCnt = 04 ; Copy CNTR TEMP = 05 ; TEMP REG SC = 06 ; STATE CNTR FLG1 = 07 ; FLAG REG 1 MSC = 08 ; MOTION SENSE CNTR FLG2 = 09 ; FLAG REG 2 XC = 0A ; EXTENDER CNTR WDT = 0B ; WATCH DOG CNTR FC = 0C ; FUSER CNTR Temp1 = 0D ;Background Temp reg MCL = 0E ; M CNTR LOW BYTE MCH = 0F ; M CNTR HIGH BYTE MCEnable = 00; M Cntr Enable: active High ;Contents of Bank 0 registers ;FLG1 ECEnable = 01; E counter enable MotCounter = 05; MotSenseDelayFlag = 06; ;FLG2 FCEnable = 01; Fuser counter enable ;Bank 1 Registers uartcom = 00 ; uart command register UFLAG = 01 ; uart status flags register uflag2 = 02 IN2 = 03; right now we get 50/60~ strap info ;from here. UartTemp = 04; ;used for masking Display Status commands MoreFlags = 05; Currently holds "LargeDocMadeIt" testcounter = 08 uartstat = 09 ; uart status register ROUT2 = 0B; output holding registers ROUT3 = 0C ;Contents of Bank 1 registers ;IN2 TrailEdge = 05; Switch that is low when paper on it. SixtyHertzBit = 06; If on, we're thumping at 60 hertz. LargeDoc = 07; If on, have large doc tray in. ;MoreFlags: NoPaper = 01; This is set when we run out of paper and ; zero'd when "paper refilled" is sensed. FuserToggle = 02; This bit is used to cycle the fuser to ; 1/2 power. ;Bank 2 Registers ROW = 00 COL = 01 DSP = 02 KBDREG = 03 CPYSEL = 04; DSPTENS = 05; DSPONES = 06; TEMP4 = 07; TEMP5 = 08; TEMP6 = 09; ZEROFLG = 0A; ROUT0 = 0B; ROUT1 = 0C; MUST BE IN[8..F] WDTtimeout = 0D; Buttons = 0f; an assortment of keys from kbd ;Bank 3 registers SAVET = 048.; SavetRel = 00; SR = 049.; SaverRel = 01; ;Bits TENENT = 01; ONEENT = 00; BLANK = 00; ZCROSSING = 05; EXTF = 0C; External interrupt mask NTestSW = 00; the test switch has been set. ACTIVE LOW!! ;(see Buttons) ;Some Locations INPUT0 = 00; zap status INPUT1 = 01;INTERRUPT STATUS INPUT2 = 02; 50/60~ information OUT0 = 03; OUT1 = 04; OUT2 = 05; OUT3 = 06; ;how about some constants, too? Bit0 = 00 Bit1 = 01 Bit2 = 02 Bit3 = 03 Bit4 = 04 Bit5 = 05 Bit6 = 06 Bit7 = 07 AllOnes = 0FF; ZERO = 00; ;Names of register banks Bank0 = 00; Bank1 = 01; Bank2 = 02; Bank3 = 03; ;I/O constants ;OUTPUTS: ;OUT0 OFFLINE = 02; ONLINE = 03 Diagnostics = 04; ;OUT1 LEDRTN = 0 LEDONE = 1 LEDTEN = 2 Nchargeon = 05; this is active low in the Gnat ;OUT2 laserBeam = 00;ACTIVE LOW. when set, generating test pattern, if not serving ;This OR's with live video when a server. devbias = 01 ROShold = 05 ROSpullin = 06 ;OUT3 WatchDT = Bit7; maindrve = 01 vacuum = 02 fuser = 03 devclutch = 04 scansol = 05 Billing = 06 ;Inputs ;Input0 AddPaper = 04; active low ;Trace Outs for debugging Trace0 = 07 ; location to dump interesting data Trace1 = 17 Trace2 = 27 Trace3 = 37 Trace4 = 47 Trace5 = 57 Trace6 = 67 Trace7 = 77 ; Trace8 = 87 ; Trace9 = 97 ; TraceA = A7 ; TraceB = B7 ; Input Bits: zaptherm = 05 OutOfPaper = 04 MotionSense = 04 KbdRow1 = 00 KbdRow2 = 01 KbdRow3 = 02 KbdRow4 = 03 ; uart constants cmdUart = 09 ; uart control addr dataUart = 08 ; uart send and receive data addr intflags = 10 ; interupting device polling addr combit = 00 ; command received from server statbit = 01 ; status needs to be sent to server prntbit = 02 ;print request from server i.e. make 1 print multibit = 03 ; delay cycle down more prints coming DontTransmit = 04; Don't send character to host if set PSBIT = 05 ;Flag that is set when print is started PARBIT = 06 ;parity status holding bit BADCMDBIT = 07 RXReady = 01; receiver ready with data ;uflag2 assignment pagedelbit = 00 patternbit = 01 ;true when generating test patterns. ;random constants rosconstant = 12. ; Number of 8ms ticks to leave ros on ;for test; determines stripe width for test ;STATUS RESPONSES TO SERVER warmup = 40 ;machine is warming up ready = 41 ;ready to feed (not running) jamb = 44 ;machine is jammed fusercold = 49 ;fuser has gotten cold while printing rntredy = 4a ;printing not ready for new feed command ReadyToFeed = 4b ;printing ready to feed StatDisplayed = 4c ;"status displayed" response comrejp = 4d ;command rejected bad parity comrejun = 4e ; don't recognize command comrejil = 4f ; illegal command sequence pgsync = 52 ;page sync pgdel = 53 ;page delivered to output tray OffLineStat = 56; ClearKey = 03A; value sent to host when ClearKey hit and Online EnterKey = 03B; value sent to host when EnterKey hit and Online ; COMMANDS TO PRINTER FEEDBOT = 40 ;PRINT COMMAND READSTAT = 20 ;READ STATUS COMMAND DisplayF = 2F ;display an F on the display DisplayBlank = 3F ;display a blank on the display FEEDTOP = 50 ISTACK = 21 FEEDTOPSK = 51 FEEDBOTSK = 41 ;UART constants PARITY = 03. ;intflags bit assignments ; d0 - uart interupt flag (active high) ; d1 - 120hz interupt (active low)