(FILECREATED "16-Feb-86 00:08:50" {ERIS}<LISPCORE>LIBRARY>COLORNNCC.;9 31542 changes to: (FNS \COLORNNCC.CMD \COLORNNCC.PAR2 \COLORNNCC.INIT \COLORNNCC.STARTBOARD \COLORNNCC.SENDCOLORMAPENTRY \COLORNNCC.SENDPAGE \COLORNNCC.PILOTBITBLT \COLORNNCC24.STARTBOARD \COLORNNCC24.STARTCOLOR \COLORNNCC24.SENDPAGE \COLORNNCC.DEMO \COLORNNCC.DRAWLINE1 \COLORNNCC.TEST3 MYTEST TEST24 TESTMODE TESTCM) (VARS COLORNNCCCOMS) previous date: "15-Feb-86 21:44:39" {ERIS}<LISPCORE>LIBRARY>COLORNNCC.;7) (* Copyright (c) 1985, 1986 by Xerox Corporation. All rights reserved.) (PRETTYCOMPRINT COLORNNCCCOMS) (RPAQQ COLORNNCCCOMS ((* COLORNNCC -- Drivers for Number Nine Computer Corporation color cards. -- By Kelly Roach. *) (DECLARE: DOEVAL@LOAD DOEVAL@COMPILE DONTCOPY (CONSTANTS (DISPLAYADRH 10) (PARAMADRH 12) (REDTABLEADRL 256) (GREENTABLEADRL 512) (BLUETABLEADRL 768) (BANK0ADRL 1797) (BANK1ADRL 1798))) (COMS (* Specific to REV512X8 board. *) (INITVARS (\COLORNNCC.BANK1 0) (\COLORNNCC.BANK0 0) (\DEBUG.CURSORRAN NIL) (\DEBUG.SENDPAGERAN NIL) (\DEBUG.CURSORINTERRUPTED NIL) (\DEBUG.SENDPAGEINTERRUPTED NIL)) (MACROS \COLORNNCCBANK1 \COLORNNCCBANK0)) (COMS (* Specific to REV512X32 board. *) (INITVARS (\COLORNNCC24.REDBASE NIL) (\COLORNNCC24.GREENBASE NIL) (\COLORNNCC24.BLUEBASE NIL))) (FNS \COLORNNCC.CMD \COLORNNCC.PAR2) (FNS \COLORNNCC.INIT) (FNS \COLORNNCC.STARTBOARD \COLORNNCC.SENDCOLORMAPENTRY \COLORNNCC.SENDPAGE \COLORNNCC.PILOTBITBLT) (FNS \COLORNNCC24.STARTBOARD \COLORNNCC24.STARTCOLOR \COLORNNCC24.SENDPAGE) (FNS \COLORNNCC.DEMO \COLORNNCC.DRAWLINE1 \COLORNNCC.TEST3 MYTEST TEST24 TESTMODE TESTCM) (FILES BUSCOLOR) (* \DEBUG vars are temporary till I figure out bank switching. *) (VARS \COLORNNCC.LOCKEDFNS \COLORNNCC.LOCKEDVARS) (DECLARE: DONTEVAL@LOAD DONTEVAL@COMPILE DOCOPY (P (\COLORNNCC.INIT))))) (* COLORNNCC -- Drivers for Number Nine Computer Corporation color cards. -- By Kelly Roach. *) (DECLARE: DOEVAL@LOAD DOEVAL@COMPILE DONTCOPY (DECLARE: EVAL@COMPILE (RPAQQ DISPLAYADRH 10) (RPAQQ PARAMADRH 12) (RPAQQ REDTABLEADRL 256) (RPAQQ GREENTABLEADRL 512) (RPAQQ BLUETABLEADRL 768) (RPAQQ BANK0ADRL 1797) (RPAQQ BANK1ADRL 1798) (CONSTANTS (DISPLAYADRH 10) (PARAMADRH 12) (REDTABLEADRL 256) (GREENTABLEADRL 512) (BLUETABLEADRL 768) (BANK0ADRL 1797) (BANK1ADRL 1798)) ) ) (* Specific to REV512X8 board. *) (RPAQ? \COLORNNCC.BANK1 0) (RPAQ? \COLORNNCC.BANK0 0) (RPAQ? \DEBUG.CURSORRAN NIL) (RPAQ? \DEBUG.SENDPAGERAN NIL) (RPAQ? \DEBUG.CURSORINTERRUPTED NIL) (RPAQ? \DEBUG.SENDPAGEINTERRUPTED NIL) (DECLARE: EVAL@COMPILE (PUTPROPS \COLORNNCCBANK1 MACRO ((BANK1) (SETQ \COLORNNCC.BANK1 BANK1) (PCBUS.WRITEHL PARAMADRH BANK1ADRL \COLORNNCC.BANK1))) (PUTPROPS \COLORNNCCBANK0 MACRO ((BANK0) (SETQ \COLORNNCC.BANK0 BANK0) (PCBUS.WRITEHL PARAMADRH BANK0ADRL \COLORNNCC.BANK0))) ) (* Specific to REV512X32 board. *) (RPAQ? \COLORNNCC24.REDBASE NIL) (RPAQ? \COLORNNCC24.GREENBASE NIL) (RPAQ? \COLORNNCC24.BLUEBASE NIL) (DEFINEQ (\COLORNNCC.CMD (LAMBDA (ARG RESETFLG) (* kbr: " 4-Jan-86 16:31") (OR RESETFLG (until (EQ 0 (LOGAND 2 (PCBUS.READHL PARAMADRH 0))))) (PCBUS.WRITEHL PARAMADRH 1 (CAR ARG)) (for X in (CDR ARG) do (until (EQ 0 (LOGAND 2 (PCBUS.READHL PARAMADRH 0)))) (PCBUS.WRITEHL PARAMADRH 0 X)))) (\COLORNNCC.PAR2 (LAMBDA (ARG) (* kbr: " 4-Jan-86 16:31") (until (EQ 0 (LOGAND 2 (PCBUS.READHL 12 0)))) (PCBUS.WRITEHL 12 0 (LOGAND ARG 255)) (until (EQ 0 (LOGAND 2 (PCBUS.READHL 12 0)))) (PCBUS.WRITEHL 12 0 (LOGAND (LRSH ARG 8) 255)))) ) (DEFINEQ (\COLORNNCC.INIT (LAMBDA NIL (* kbr: "15-Feb-86 18:14") (DECLARE (GLOBALVARS \COLORNNCCWSOPS \COLORNNCC24WSOPS \COLORNNCCINFO \COLORNNCCINFO24)) (for FN in \COLORNNCC.LOCKEDFNS do (\LOCKFN FN)) (for VAR in \COLORNNCC.LOCKEDVARS do (\LOCKVAR VAR)) (SETQ \COLORNNCCWSOPS (create WSOPS STARTBOARD ←(FUNCTION \COLORNNCC.STARTBOARD) STARTCOLOR ←(FUNCTION \BUSCOLOR.STARTCOLOR) STOPCOLOR ←(FUNCTION \BUSCOLOR.STOPCOLOR) EVENTFN ←(FUNCTION \BUSCOLOR.EVENTFN) SENDCOLORMAPENTRY ←(FUNCTION \COLORNNCC.SENDCOLORMAPENTRY) SENDPAGE ←(FUNCTION \COLORNNCC.SENDPAGE) PILOTBITBLT ←(FUNCTION \COLORNNCC.PILOTBITBLT))) (SETQ \COLORNNCCINFO (create DISPLAYINFO DITYPE ←(QUOTE REV512X8) DIWIDTH ← 512 DIHEIGHT ← 480 DIBITSPERPIXEL ← 8 DIWSOPS ← \COLORNNCCWSOPS)) (\DEFINEDISPLAYINFO \COLORNNCCINFO) (SETQ \COLORNNCC24WSOPS (create WSOPS STARTBOARD ←(FUNCTION \COLORNNCC24.STARTBOARD) STARTCOLOR ←(FUNCTION \COLORNNCC24.STARTCOLOR) STOPCOLOR ←(FUNCTION \BUSCOLOR.STOPCOLOR) EVENTFN ←(FUNCTION \BUSCOLOR.EVENTFN) SENDCOLORMAPENTRY ←(FUNCTION NILL) SENDPAGE ←(FUNCTION \COLORNNCC24.SENDPAGE) PILOTBITBLT ←(FUNCTION NILL))) (SETQ \COLORNNCCINFO24 (create DISPLAYINFO DITYPE ←(QUOTE REV512X32) DIWIDTH ← 512 DIHEIGHT ← 480 DIBITSPERPIXEL ← 24 DIWSOPS ← \COLORNNCC24WSOPS)) (\DEFINEDISPLAYINFO \COLORNNCCINFO24))) ) (DEFINEQ (\COLORNNCC.STARTBOARD (LAMBDA NIL (* kbr: "13-Feb-86 23:21") (* IBM Bus Access Mode. *) (PCBUS.WRITEHL PARAMADRH 1796 255) (PCBUS.WRITEHL PARAMADRH 1797 0) (* Overlay Select. *) (PCBUS.WRITEHL PARAMADRH 1798 0) (* Board Enable. *) (PCBUS.WRITEHL PARAMADRH 1799 255) (\COLORNNCC.CMD (QUOTE (0 31 62 100 8 5 3 240 64)) T) (\COLORNNCC.CMD (QUOTE (71 64))) (\COLORNNCC.CMD (QUOTE (111))) (\COLORNNCC.CMD (QUOTE (70 0))) (* Zoom Factor. *) (PCBUS.WRITEHL PARAMADRH 1792 255) (PCBUS.WRITEHL PARAMADRH 1793 255) (PCBUS.WRITEHL PARAMADRH 1794 255) (PCBUS.WRITEHL PARAMADRH 1795 255) (\COLORNNCC.CMD (QUOTE (75 0 192 0))) (\COLORNNCC.CMD (QUOTE (112 0 0 0 127))) (\COLORNNCC.CMD (QUOTE (120 255 255 255 255 255 255 255 255))) (\COLORNNCC.CMD (QUOTE (74 255 255))) (\COLORNNCC.CMD (QUOTE (107))) (\COLORNNCC.CMD (QUOTE (13))))) (\COLORNNCC.SENDCOLORMAPENTRY (LAMBDA (FDEV COLOR# RGB) (* kbr: "15-Feb-86 21:04") (PROG NIL (PCBUS.WRITEHL PARAMADRH (IPLUS 256 COLOR#) (fetch (RGB RED) of RGB)) (PCBUS.WRITEHL PARAMADRH (IPLUS 512 COLOR#) (fetch (RGB GREEN) of RGB)) (PCBUS.WRITEHL PARAMADRH (IPLUS 768 COLOR#) (fetch (RGB BLUE) of RGB))))) (\COLORNNCC.SENDPAGE (LAMBDA (PAGE PAGE#) (* kbr: "16-Feb-86 00:03") (PROG (BANK1 BANK0 ADRL DISPINTERRUPT) (* Keyboard interrupts have to be turned off to gaurantee proper COLORNNCC bank selection. *) (SETQ DISPINTERRUPT (\GETBASE \EM.DISPINTERRUPT 0)) (* \PUTBASE \EM.DISPINTERRUPT 0 0) (SETQ BANK1 (COND ((EQ (LOGAND PAGE# 256) 0) 0) (T 255))) (SETQ BANK0 (COND ((EQ (LOGAND PAGE# 128) 0) 0) (T 255))) (\COLORNNCCBANK1 BANK1) (\COLORNNCCBANK0 BANK0) (SETQ ADRL (UNFOLD (LOGAND PAGE# 127) BYTESPERPAGE)) (\BUSBLTOUTBYTES PAGE DISPLAYADRH ADRL WORDSPERPAGE) (* \PUTBASE \EM.DISPINTERRUPT 0 DISPINTERRUPT) ))) (\COLORNNCC.PILOTBITBLT (LAMBDA (PILOTBBT N) (* kbr: "30-Jun-85 16:01") (PROG (DEST DESTBIT WIDTH HEIGHT VMADDR BUSADDRHI BUSADDRLO NWORDS ABSCURRPAGE CURRPAGEINBITMAP PAGE DISPINTERRUPT) (* The busmaster UPDATEDAEMON is a narrow communication bottleneck from the color screen bitmap to the color frame buffer. We work around this bottleneck by communicating small important changes to the color screen bitmap quickly and big less important changes slower. *) (* We try to make small changes that cross lots of pages appear visible in the frame buffer quickly by writing to both color screen bitmap and frame buffer. Big changes, which could be overwritten by other big changes before the UPDATEDAEMON notices them (and so save us time this way) are best left to the UPDATEDAEMON to handle. *) (* First, output to the color screen bitmap. *) (\PILOTBITBLT PILOTBBT N) (* If the PILOTBBT is disjoint or is fairly wide, then just return now. *) (COND ((OR (NOT (fetch (PILOTBBT PBTDISJOINT) of PILOTBBT)) (IGREATERP (fetch (PILOTBBT PBTWIDTH) of PILOTBBT) 1000)) (RETURN))) (* Probably a case worth optimizing: cursors, carets, characters, vertical drawlines, and vertical scroll bars. \BUSBLTOUTBYTES works in words, not pixels (bytes)%. We handle this problem by getting the values for our pixels from the DEST we just did our \PILOTBITBLT to, slopping over to a few unchanged pixels when necessary. *) (SETQ DEST (fetch (PILOTBBT PBTDEST) of PILOTBBT)) (SETQ DESTBIT (fetch (PILOTBBT PBTDESTBIT) of PILOTBBT)) (SETQ WIDTH (fetch (PILOTBBT PBTWIDTH) of PILOTBBT)) (SETQ HEIGHT (fetch (PILOTBBT PBTHEIGHT) of PILOTBBT)) (SETQ ABSCURRPAGE (fetch (POINTER PAGE#) of DEST)) (SETQ CURRPAGEINBITMAP (IDIFFERENCE ABSCURRPAGE ColorScreenBitMapBasePage)) (SETQ PAGE (LOGAND CURRPAGEINBITMAP 127)) (SETQ BUSADDRLO (UNFOLD (IPLUS (UNFOLD PAGE WORDSPERPAGE) (fetch (POINTER WORDINPAGE) of DEST) (FOLDLO DESTBIT BITSPERWORD)) BYTESPERWORD)) (SETQ NWORDS (IDIFFERENCE (FOLDHI (IPLUS DESTBIT WIDTH -1) BITSPERWORD) (FOLDLO DESTBIT BITSPERWORD))) (* Keyboard interrupts have to be turned off to gaurantee proper COLORNNCC bank selection. *) (SETQ DISPINTERRUPT (\GETBASE \EM.DISPINTERRUPT 0)) (\PUTBASE \EM.DISPINTERRUPT 0 0) (SETQ \COLORNNCC.SENDPAGERAN NIL) (SETQ \COLORNNCC.CURSORRAN T) (\COLORNNCCBANK1 (COND ((EQ (LOGAND CURRPAGEINBITMAP 256) 0) 0) (T 255))) (\COLORNNCCBANK0 (COND ((EQ (LOGAND CURRPAGEINBITMAP 128) 0) 0) (T 255))) (SETQ DEST (\ADDBASE DEST (FOLDLO DESTBIT BITSPERWORD))) (for I from 1 to HEIGHT do (\BUSBLTOUTBYTES DEST DISPLAYADRH BUSADDRLO NWORDS) (COND ((EQ I HEIGHT) (RETURN))) (SETQ DEST (\ADDBASE DEST WORDSPERPAGE)) (SETQ PAGE (ADD1 PAGE)) (COND ((ILESSP PAGE 128) (SETQ BUSADDRLO (IPLUS BUSADDRLO BYTESPERPAGE ))) (T (* Crossing into different bank. *) (COND ((EQ \COLORNNCC.BANK0 0) (\COLORNNCCBANK0 255)) (T (\COLORNNCCBANK1 255) (\COLORNNCCBANK0 0))) (SETQ PAGE 0) (SETQ BUSADDRLO (IDIFFERENCE BUSADDRLO (IDIFFERENCE 65536 BYTESPERPAGE) ))))) (COND (\COLORNNCC.SENDPAGERAN (SETQ \COLORNNCC.SENDPAGEINTERRUPTED T))) (\PUTBASE \EM.DISPINTERRUPT 0 DISPINTERRUPT)))) ) (DEFINEQ (\COLORNNCC24.STARTBOARD (LAMBDA NIL (* kbr: "15-Feb-86 16:14") (* First part is just like setting up the REV512X8. *) (\COLORNNCC.STARTBOARD) (* Set up REV512X32 color lookup tables. *) (for I from 4096 to 16383 do (PCBUS.WRITEHL PARAMADRH I (LOGXOR (LOGAND I 255) 255))) (* I believe the following two commands will set REV512X32 to work in RGB-GUN MODE. I was never able to find and/or make PIXEL MODE work. *) (PCBUS.WRITEHL 12 1796 0) (PCBUS.WRITEHL 12 1797 0))) (\COLORNNCC24.STARTCOLOR (LAMBDA (FDEV) (* kbr: "15-Feb-86 18:24") (PROG NIL (COND ((NULL \COLORNNCC24.REDBASE) (SETQ \COLORNNCC24.REDBASE (NCREATE (QUOTE VMEMPAGEP))) (SETQ \COLORNNCC24.GREENBASE (NCREATE (QUOTE VMEMPAGEP))) (SETQ \COLORNNCC24.BLUEBASE (NCREATE (QUOTE VMEMPAGEP))) (\LOCKPAGES \COLORNNCC24.REDBASE 1) (\LOCKPAGES \COLORNNCC24.GREENBASE 1) (\LOCKPAGES \COLORNNCC24.BLUEBASE 1) (\LOCKVAR (QUOTE \COLORNNCC24.REDBASE)) (\LOCKVAR (QUOTE \COLORNNCC24.GREENBASE)) (\LOCKVAR (QUOTE \COLORNNCC24.BLUEBASE)))) (\BUSCOLOR.STARTCOLOR FDEV)))) (\COLORNNCC24.SENDPAGE (LAMBDA (PAGE PAGE#) (* kbr: "16-Feb-86 00:01") (PROG (POINTER ADRL DISPINTERRUPT X Y REDBANK GREENBANK BLUEBANK) (* Keyboard interrupts have to be turned off to gaurantee proper COLORNNGS bank selection. *) (SETQ DISPINTERRUPT (\GETBASE \EM.DISPINTERRUPT 0)) (* \PUTBASE \EM.DISPINTERRUPT 0 0) (* The code below separates out the 8bit red, 8bit green, and 8bit blue components of a packed page of 24bit color. The first color boundary begins with one of first three bytes of the packed page, and we must case out. There will be 171, 171, and 170 bytes or a rotation thereof of red, green, and blue to be dealt with. Once the red, green, and blue components are separated out, they must be shipped to the BusMaster. We need to ship these components to the right banks of the REV512X32 board. We are only allowed to ship out a multiple of words, so we ship 172 bytes in all cases getting the extra 1, 1, and 2 bytes that we will need to ship from the right places. *) (PROGN (* Calculate red, green, blue components. *) (SETQ POINTER PAGE) (SETQ Y (IQUOTIENT PAGE# 3)) (SELECTQ (IREMAINDER PAGE# 3) (0 (SETQ X 0)) (1 (SETQ POINTER (\ADDBASE POINTER -1)) (SETQ X 170)) (PROGN (SETQ POINTER (\ADDBASE POINTER -2)) (SETQ X 340))) (for I from 0 to 171 as R from 0 by 3 as G from 1 by 3 as B from 2 by 3 do (\PUTBASEBYTE \COLORNNCC24.REDBASE I (\GETBASEBYTE POINTER R)) (\PUTBASEBYTE \COLORNNCC24.GREENBASE I (\GETBASEBYTE POINTER G)) (\PUTBASEBYTE \COLORNNCC24.BLUEBASE I (\GETBASEBYTE POINTER B))) (SETQ ADRL (IPLUS (LLSH (LOGAND Y 127) 9) X))) (PROGN (* Ship red component. *) (SETQ REDBANK (LRSH Y 7)) (PCBUS.WRITEHL 12 1024 REDBANK) (\BUSBLTOUTBYTES \COLORNNCC24.REDBASE DISPLAYADRH ADRL (FOLDLO 172 2))) (PROGN (* Ship green component. *) (SETQ GREENBANK (IPLUS 4 REDBANK)) (PCBUS.WRITEHL 12 1024 GREENBANK) (\BUSBLTOUTBYTES \COLORNNCC24.GREENBASE DISPLAYADRH ADRL (FOLDLO 172 2))) (PROGN (* Ship blue component. *) (SETQ BLUEBANK (IPLUS 8 REDBANK)) (PCBUS.WRITEHL 12 1024 BLUEBANK) (\BUSBLTOUTBYTES \COLORNNCC24.BLUEBASE DISPLAYADRH ADRL (FOLDLO 172 2))) (* \PUTBASE \EM.DISPINTERRUPT 0 DISPINTERRUPT) ))) ) (DEFINEQ (\COLORNNCC.DEMO (LAMBDA NIL (* kbr: " 4-Jan-86 16:26") (for I from 0 to 511 do (for J from 0 to 127 do (PCBUS.WRITEHL 10 (PLUS (TIMES 512 J) I) I))) (for I from 0 to 255 do (PCBUS.WRITEHL 12 (PLUS 256 I) I) (PCBUS.WRITEHL 12 (PLUS 512 I) I) (PCBUS.WRITEHL 12 (PLUS 768 I) I)))) (\COLORNNCC.DRAWLINE1 (LAMBDA (X0 Y0 XLIMIT YLIMIT DX DY CDL YINC MODE) (* edited: " 2-Jun-85 17:53") (PROG NIL (* DIR PLANE EAD DC D D2 D1 DM DI DD) (SETQ DI (IMAX DX DY)) (SETQ DD (IMIN DX DY)) (SETQ DIR (COND ((ILESSP YINC 0) (COND ((IGREATERP DY DX) 0) (T 1))) (T (COND ((IGREATERP DY DX) 2) (T 3))))) (SETQ PLANE 0) (SETQ EAD (IPLUS (ITIMES (IDIFFERENCE 479 Y0) 64) (LRSH X0 4) (ITIMES PLANE 16384))) (* CURS) (\COLORNNCC.CMD (LIST 73 (LOGAND EAD 255) (LOGAND (LRSH EAD 8) 255) (IPLUS (LLSH (LOGAND X0 15) 4) (LRSH EAD 16)))) (* WDAT) (\COLORNNCC.CMD (LIST (IPLUS 32 (SELECTQ MODE (PAINT 3) (REPLACE 0) (INVERSE 1) (RETURN))))) (PROGN (* FIGS) (\COLORNNCC.CMD (LIST 76 (IPLUS 8 DIR))) (\COLORNNCC.PAR2 (SETQ DC (IMAX DX DY))) (\COLORNNCC.PAR2 (SETQ D (IPLUS DD DD (IMINUS DI)))) (\COLORNNCC.PAR2 (SETQ D2 (LLSH (IDIFFERENCE DD DI) 1))) (\COLORNNCC.PAR2 (SETQ D1 (IPLUS DD DD))) (\COLORNNCC.PAR2 (SETQ DM 65535))) (* FIGD) (\COLORNNCC.CMD (QUOTE (108)))))) (\COLORNNCC.TEST3 (LAMBDA NIL (* edited: " 2-Jun-85 18:12") (for X from 0 to 100 by 10 do (\COLORNNCC.DRAWLINE1 0 479 512 0 X 100 0 -1 (QUOTE INVERSE))) (for Y from 0 to 90 by 10 do (\COLORNNCC.DRAWLINE1 0 479 512 0 100 Y 0 -1 (QUOTE INVERSE))))) (MYTEST (LAMBDA (COLOR) (* kbr: "14-Feb-86 00:37") (for I from 0 to 511 do (for J from 0 to I do (TEST24 I J COLOR))))) (TEST24 (LAMBDA (X Y NEWVALUE) (* kbr: "14-Feb-86 00:58") (* Write NEWVALUE out to X Y of REV512X32 board. *) (PROG (LO) (SETQ LO (IPLUS (LLSH (LOGAND Y 127) 9) X)) (PCBUS.WRITEHL 12 1024 (LRSH Y 7)) (PCBUS.WRITEHL 10 LO (LOGAND (LRSH NEWVALUE 16) 255)) (PCBUS.WRITEHL 12 1024 (IPLUS 4 (LRSH Y 7))) (PCBUS.WRITEHL 10 LO (LOGAND (LRSH NEWVALUE 8) 255)) (PCBUS.WRITEHL 12 1024 (IPLUS 8 (LRSH Y 7))) (PCBUS.WRITEHL 10 LO (LOGAND NEWVALUE 255))))) (TESTMODE (LAMBDA (X Y) (* kbr: "13-Feb-86 23:28") (PCBUS.WRITEHL 12 1796 X) (PCBUS.WRITEHL 12 1797 Y))) (TESTCM (LAMBDA NIL (* kbr: "15-Feb-86 11:14") (* Set up color tables. *) (for I from 4096 to 16383 do (PCBUS.WRITEHL PARAMADRH I (LOGXOR (LOGAND I 255) 255))))) ) (FILESLOAD BUSCOLOR) (* \DEBUG vars are temporary till I figure out bank switching. *) (RPAQQ \COLORNNCC.LOCKEDFNS (\COLORNNCC.SENDPAGE \COLORNNCC.PILOTBITBLT)) (RPAQQ \COLORNNCC.LOCKEDVARS (\COLORNNCC.BANK1 \COLORNNCC.BANK0 \DEBUG.CURSORRAN \DEBUG.SENDPAGERAN \DEBUG.CURSORINTERRUPTED \DEBUG.SENDPAGEINTERRUPTED)) (DECLARE: DONTEVAL@LOAD DONTEVAL@COMPILE DOCOPY (\COLORNNCC.INIT) ) (PUTPROPS COLORNNCC COPYRIGHT ("Xerox Corporation" 1985 1986)) (DECLARE: DONTCOPY (FILEMAP (NIL (4685 5616 (\COLORNNCC.CMD 4695 . 5178) (\COLORNNCC.PAR2 5180 . 5614)) (5617 7947 ( \COLORNNCC.INIT 5627 . 7945)) (7948 18345 (\COLORNNCC.STARTBOARD 7958 . 9539) ( \COLORNNCC.SENDCOLORMAPENTRY 9541 . 10089) (\COLORNNCC.SENDPAGE 10091 . 11747) (\COLORNNCC.PILOTBITBLT 11749 . 18343)) (18346 25083 (\COLORNNCC24.STARTBOARD 18356 . 19565) (\COLORNNCC24.STARTCOLOR 19567 . 20421) (\COLORNNCC24.SENDPAGE 20423 . 25081)) (25084 30973 (\COLORNNCC.DEMO 25094 . 25996) ( \COLORNNCC.DRAWLINE1 25998 . 28329) (\COLORNNCC.TEST3 28331 . 28786) (MYTEST 28788 . 29135) (TEST24 29137 . 30150) (TESTMODE 30152 . 30407) (TESTCM 30409 . 30971))))) STOP