perm filename CREIO[GEM,BGB] blob
sn#053590 filedate 1973-08-08 generic text, type T, neo UTF8
COMMENT ⊗ VALID 00015 PAGES
RECORD PAGE DESCRIPTION
00001 00001 VALID 00015 PAGES
00003 00002 TITLE CREIO - CRE INPUT OUTPUT SUBROUTINES - BGB - 16 APRIL 1973.
00004 00003 SUBR(FILNUM)SERIAL. SETUP FILE-SERIAL-NUMBER-NAME.
00006 00004 SUBR(TVDSKI)SERIAL INPUT TV PICTURE FROM DISK FILE.
00008 00005 SUBR(TVPACK). PACK TVBUF WITH PICTURE FROM SKY ARRAY.
00011 00006 SUBR(TVDSKO) INPUT TV PICTURE FROM A DISK FILE.
00013 00007 SUBR(TVXGP) VIDEO BUFFER TO XEROX GRAPHICS PRINTER.
00015 00008 GRAB THE DEVICE.
00017 00009 SUBR(VICXGP)Q1,Q2 VIDEO INTENSITY CONTOURS TO XGP.
00019 00010
00020 00011
00023 00012 SUBR(CREOUT) OUTPUT CONTOURS, REGION, EDGE FILE.
00025 00013 SUBR(CREIN) CONTOUR,REGION,EDGE FILE FORMAT INPUT.
00027 00014 TVIN4. FOUR BIT TELEVISION INPUT.
00029 00015 SUBR(TVIN6). SIX BIT TELEVISION INPUT.
00032 ENDMK
⊗;
TITLE CREIO - CRE INPUT OUTPUT SUBROUTINES - BGB - 16 APRIL 1973.
EXTERN REMAIN,NODCNT,FTVHIS,FTVSIX
EXTERN VCUT,TVBUF,HISTO,AVAIL2,CRE44,FILM,FLGBGB
EXTERN HEADER,HISTOG,CHR
EXTERN DPYBUF,QBLK,DPYIMG
EXTERN RELLOC,SHRINQ,SKY
EXTERN FILNAM,EXTION,PPPN,GETFIL
SUBR(FILNUM)SERIAL. ;SETUP FILE-SERIAL-NUMBER-NAME.
BEGIN FILNUM;------------------------------------------------------
EXTERN FNAME6
LAC 10,FNAME6↔LAC 1,[POINT 6,10,-1] ;FILM NAME SIXBIT.
LAC 0,1↔ILDB 2,1↔SKIPE 2↔GO .-3 ;SCAN FOR 00.
;CONVERT SERIAL NUMBER TO SIXBIT DECIMAL NUMERAL.
LACM 1,ARG1↔DAC 1,2↔DAC 1,3↔DAC 1,4↔DAC 1,5
CAIL 1,=10000↔GO L5
CAIL 1,=1000↔GO L4
CAIL 1,=100↔GO L3
CAIL 1,=10↔GO L2
↔GO L1
L5: IDIVI 1,=10000↔ADDI 1,20↔IDPB 1,0
L4: IDIVI 2,=1000 ↔ADDI 2,20↔IDPB 2,0
L3: IDIVI 3,=100 ↔ADDI 3,20↔IDPB 3,0
L2: IDIVI 4,=10 ↔ADDI 4,20↔IDPB 4,0
L1: ADDI 5,20↔IDPB 5,0
DAC 10,FILNAM
;TMP EXTENSION AND PPPN.
LAC[SIXBIT/TMP/]↔DAC EXTION
DZM EXTION+1
DZM↔SKIPE FLGBGB↔LAC[SIXBIT/DATBGB/]↔DAC PPPN
POP1J
BEND FILNUM; BGB 19 APRIL 1973 ------------------------------------
SUBR(TVDSKI)SERIAL INPUT TV PICTURE FROM DISK FILE.
COMMENT/ Serial -1 asks user for file name. Serial ≥0 attempts
film image XXXX00.TMP input. TVDSKI returns TRUE -1 if image
found or FALSE 0 if image not found./
BEGIN TVDSKI;-----------------------------------------------------
SKIPL 1,ARG1↔GO[CALL(FILNUM,1)↔GO L1]
L0: CALL(GETFIL,[SIXBIT/TMP/],[SIXBIT/DATBGB/])
FALSE: GO[DZM 1↔POP1J] ;RETURN FALSE - NO PICTURE.
L1: INIT 1,17↔SIXBIT/DSK/↔0↔HALT
LOOKUP 1,FILNAM↔GO[SKIPGE ARG1↔GO L0↔GO FALSE]
MOVS PPPN↔MOVMS ;GET FILE SIZE.
CAIN 24400↔GO L2
SUBI 200↔DACN
DIP DUMP2+1
IN 1,DUMP2↔JFCL ;NON-STANDARD SIZE.
CALL(TVPACK)
GO L4
L2: IN 1,DUMP1↔JFCL ;216 x 288 STANDARD SIZE.
L4: OUTSTR[ASCIZ" EOF.
"]↔ RELEASE 1,↔SETO 1,↔POP1J ;RETURN TRUE.
DUMP1: IOWD 200,HEADER
IOWD 24200,TVBUF↔0
DUMP2: IOWD 200,HEADER
IOWD 24200,SKY↔0
BEND TVDSKI; BGB 6 DECEMBER 1972 ---------------------------------
SUBR(TVPACK). PACK TVBUF WITH PICTURE FROM SKY ARRAY.
COMMENT/ Take a non-standard size picture from the SKY array and pack
it into the TVBUF. TVPACK loops are for R ← 0 to 215 and for C ← 0 to
287; at each target pixel a check is made to see if there is a source
pixel to be moved./
BEGIN TVPACK;-----------------------------------------------------
ACCUMULATORS{B,R1,C1,R2,C2,Q0,Q1,Q2}
;READ TV FILE HEADER & MAKE SURE THAT IT IS REASONIBLE.
SETO↔CAME HEADER↔GO[OUTSTR[ASCIZ/ UNKNOWN, TV FILE FORMAT.
/]↔POP0J]
LAC HEADER+1↔DAC BYTSIZ#
LAC HEADER+2↔DAC WWIDTH#
LAC HEADER+4↔SUB HEADER+3↔AOS↔DAC MROWS#↔LSH -1↔DAC HALFM#
LAC HEADER+6↔SUB HEADER+5↔AOS↔DAC NCOLS#↔LSH -1↔DAC HALFN#
LAC R2,HALFM↔SUBI R2,=108
LAC Q0,R2↔IMUL Q0,WWIDTH
ADDI Q0,SKY↔CDR 0,HEADER+7↔SUBI 0,200↔ADD Q0,0
LAC Q2,[POINT 6,TVBUF,-1]
DZM R1
L0: DZM C1↔LAC C2,HALFN↔SUBI C2,=144
L1: DZM B
SKIPL R2↔CAML R2,MROWS↔GO L2
SKIPL C2↔CAML C2,NCOLS↔GO L2
TLNN Q0,-1↔CALL(L3)
ILDB B,Q1
LSH B,0
L2: IDPB B,Q2
AOS C2↔AOS C1↔CAIE C1,=288↔GO L1
ADD Q0,WWIDTH↔LAC Q1,Q0
AOS R2↔AOS R1↔CAIE R1,=216↔GO L0
POP0J
;COMPUTE SOURCE COLUMN BYTE POINTER, ONCE PER PICTURE.
L3: LAC 0,C2↔IDIV 0,BYTSIZ↔ADD Q0,0 ;WORD.
IMUL 1,BYTSIZ↔LACI 0,=36↔SUB 0,1 ;P-BITS.
LSH 0,6↔IOR 0,BYTSIZ↔ROT 0,-=12 ;S-BITS.
IOR Q0,0↔LAC Q1,Q0
LACI 6↔SUB BYTSIZ↔DAP L2-1
POP0J
BEND TVPACK; BGB 18 APRIL 1973 -----------------------------------
SUBR(TVDSKO) INPUT TV PICTURE FROM A DISK FILE.
BEGIN TVDSKO;-----------------------------------------------------
CALL(GETFIL,[SIXBIT/TMP/],[SIXBIT/DATBGB/])↔POP0J
INIT 1,17↔SIXBIT/DSK/↔0↔HALT
ENTER 1,FILNAM↔GO[OUTSTR[ASCIZ/ ENTER FAILED.
/]↔GO .+4]
LAC[XWD HEADER,HEADER+1]↔DZM HEADER↔BLT HEADER+177
LAC[XWD HEAD1,HEADER]↔BLT HEADER+7
OUT 1,DUMARG↔JFCL
OUTSTR[ASCIZ" EOF.
"]↔ RELEASE 1,↔POP0J
HEAD1: -1
6 ; BITS PER BYTE.
=48 ;WORDS PER LINE.
=20 ;FIRST AND LAST ROW.
=235
=28
=315 ;FIRST AND LAST COL.
XWD -=10368,200
DUMARG: IOWD 24400,HEADER↔0
BEND TVDSKO; BGB 6 DECEMBER 1973 ---------------------------------
SUBR(TVXGP) VIDEO BUFFER TO XEROX GRAPHICS PRINTER.
BEGIN TVXGP;------------------------------------------------------
ACCUMULATORS{S2,S3,I,J,K,Q,P1,P2}
COMMENT/ One to sixteen expansion: (216*4=864) by (288*4=1152).
or 32 words per line. Buffer size (864 lines)*33+1= 28513 words./
;EXPAND CORE FOR XGP BUFFER & CLEAR THE BUFFER.
LAC 44↔DAC SAV44#↔AOS↔DAC XBUF#↔ADDI =28513+10↔CORE↔GO L5
CDR 1,XBUF↔DZM(1)↔DIP 1,1↔AOS 1↔CDR 2,44↔BLT 1,(2)
;PUT CONTROL WORDS IN THE 864 ROWS OF THE XGP IMAGE.
LAC 1,XBUF
SLACI %↔DAC(1)↔AOS 1 ;CUT PAPER.
SLACI =200⊗6↔DAC(1)↔AOS 1 ;SPACE DOWN 100 LINES.
LAC[1B11+=192B23+=32]↔LACI 2,=864 ;864 ROWS OF 32 WORDS.
DAC(1)↔ADDI 1,=33↔SOJG 2,.-2
LAC[5770B11]↔DAC(1)↔AOS 1 ;SPACE AFTER PICTURE.
SLACI %↔DAC(1) ;CUT PAPER.
;PACK VIDEO BYTES INTO XGP 4 BY 4 BIT ARRAYS.
LAC P1,[POINT 6,TVBUF,-1]
LAC P2,XBUF↔ADDI P2,3 ;BUFFER POINTER.
LACI I,=216
L1: LACI J,=32
L2: SETZB 0,1↔SETZB 2,3↔LACI K,=9
L3: ILDB Q,P1↔TRZ Q,3↔ROTC 0,4↔ROTC 2,4
IOR 0,HTT+0(Q)↔IOR 1,HTT+1(Q)
IOR 2,HTT+2(Q)↔IOR 3,HTT+3(Q)
SOJG K,L3
DAC 0,=00(P2)↔DAC 1,=33(P2)
DAC 2,=66(P2)↔DAC 3,=99(P2)
AOS P2↔SOJG J,L2
ADDI P2,=100↔SOJG I,L1
;GRAB THE DEVICE.
L4: INIT 1,117
SIXBIT/XGP/↔0↔GO[OUTSTR[ASCIZ/XGP INIT FAILED.
/]↔ POP0J]
SETZ↔SEGNUM
DAC SAVSEG#↔DETSEG
LOCK
;SLACI -=28516
LAP XBUF↔SOS↔ LIPI -=7130↔ DAC B1
ADDI =7130↔ LIPI -=7128↔ DAC B2
ADDI =7128↔ LIPI -=7128↔ DAC B3
ADDI =7128↔ LIPI -=7130↔ DAC B4
LL5:
;DAC DUMARG
OUT 1,B1↔OUTSTR[ASCIZ/ FIRE BUFFER 1 !/]↔CRLF
OUT 1,B2↔OUTSTR[ASCIZ/ FIRE BUFFER 2 !/]↔CRLF
OUT 1,B3↔OUTSTR[ASCIZ/ FIRE BUFFER 3 !/]↔CRLF
OUT 1,B4↔OUTSTR[ASCIZ/ FIRE BUFFER 4 !/]↔CRLF
UNLOCK
RELEASE 1,
LAC SAV44↔CORE
L5: OUTSTR[ASCIZ/ XGP CORE UUO FAILED.
/]↔ CRLF↔LAC SAVSEG↔ATTSEG↔JFCL↔POP0J
;HALF TONE TABLE.
HTT: 6↔7↔7↔6↔ 6↔6↔7↔6↔ 6↔6↔6↔6↔ 6↔6↔6↔6
6↔6↔6↔4↔ 4↔6↔6↔4↔ 4↔6↔6↔4↔ 4↔4↔6↔4
4↔4↔4↔4↔ 4↔4↔4↔4↔ 0↔4↔4↔4↔ 4↔4↔4↔0
0↔4↔4↔0↔ 0↔0↔4↔0↔ 0↔0↔4↔0↔ 0↔0↔0↔0
DUMARG:0↔0
B1:0↔0
B2:0↔0
B3:0↔0
B4:0↔0
BEND;1/19/73-------------------------------------------------------
SUBR(VICXGP)Q1,Q2 VIDEO INTENSITY CONTOURS TO XGP.
BEGIN VICXGP;-----------------------------------------------------
ACCUMULATORS{S2,S3,I,J,K,Q,P1,P2}
EXTERN VSEG,HSEG,TVBUF,THRESH,PACXOR
;BIT POSITIONS OF THE ARGUMENTS Q1 & Q2 ENABLE INTENSITY CUTS.
LAC 1,ARG2↔DAC 1,Q0#
LAC 1,ARG1↔ANDCMI 1,377↔DAC 1,Q1#
DZM CUT#
;CLEAR THE TMP AREA FOR VSEG-HSEG ACCUMULATION.
LAC[XWD SKY,SKY+1]↔DZM SKY↔BLT SKY+=3500
;FIND AN INTENSITY CONTOUR ENABLE BIT.
LL0: LAC 0,Q0↔LAC 1,Q1
LL1: AOS 2,CUT↔LSHC 0,1↔JUMPL 0,LL2
CAMN 0,1↔JUMPE 0,LL5↔GO LL1
;THRESHOLD THE TVBUF
LL2: DAC 0,Q0↔DAC 1,Q1
CALL(THRESH,CUT)
CALL(PACXOR)
LACI 1,=3457↔LAC VSEG(1)↔IORM SKY(1)↔SOJG 1,.-2
GO LL0
LL5: LAC[XWD SKY,VSEG]↔BLT VSEG+=3456
;PACK VSEG'S AND HSEG'S INTO THE TVBUF.
LAC[XWD LL3,2]↔BLT 14↔GO 3
LL3: =62208 ;2
ILDB 0,11 ;3
ILDB 1,12 ;4 ;GET HSEG BIT.
DPB 1,14 ;5 ;COMBINE THEM.
IDPB 0,13 ;6 ;PACK THEM INTO TVBUF.
SOJG 2,3 ;7
GO LL4 ;10
POINT 1,VSEG ;11
POINT 1,HSEG ;12
POINT 6,TVBUF ;13
POINT 1,0,34 ;14
LL4:
;EXPAND CORE FOR XGP BUFFER & CLEAR THE BUFFER.
LAC 44↔DAC SAV44#↔AOS↔DAC XBUF#↔ADDI =28513+10↔CORE↔GO L5
CDR 1,XBUF↔DZM(1)↔DIP 1,1↔AOS 1↔CDR 2,44↔BLT 1,(2)
;PUT CONTROL WORDS IN THE 864 ROWS OF THE XGP IMAGE.
LAC 1,XBUF
SLACI %↔DAC(1)↔AOS 1 ;CUT PAPER.
SLACI =200⊗6↔DAC(1)↔AOS 1 ;SPACE DOWN 100 LINES.
LAC[1B11+=192B23+=32]↔LACI 2,=864 ;864 ROWS OF 32 WORDS.
DAC(1)↔ADDI 1,=33↔SOJG 2,.-2
LAC[5770B11]↔DAC(1)↔AOS 1 ;SPACE AFTER PICTURE.
SLACI %↔DAC(1) ;CUT PAPER.
;PACK VIDEO BYTES INTO XGP 4 BY 4 BIT ARRAYS.
LAC P1,[POINT 6,TVBUF,-1]
LAC P2,XBUF↔ADDI P2,3 ;BUFFER POINTER.
LACI I,=216
L1: LACI J,=32
L2: SETZB 0,1↔SETZB 2,3↔LACI K,=9
L3: ILDB Q,P1↔LSH Q,2
CAIN J,=32↔GO[CAIN K,9↔IORI Q,4↔GO .+1]
CAMN J,K↔GO[CAIN J,1↔LACI Q,4↔GO .+1]
CAIE I,=216↔CAIN I,1↔IORI Q,8
ROTC 0,4↔ROTC 2,4
IOR 0,HTT+0(Q)↔IOR 1,HTT+1(Q)
IOR 2,HTT+2(Q)↔IOR 3,HTT+3(Q)
SOJG K,L3
DAC 0,=00(P2)↔DAC 1,=33(P2)
DAC 2,=66(P2)↔DAC 3,=99(P2)
AOS P2↔SOJG J,L2
ADDI P2,=100↔SOJG I,L1
;GRAB THE DEVICE.
L4: INIT 1,17↔SIXBIT/XGP/↔0↔GO[OUTSTR[ASCIZ/XGP INIT FAILED.
/]↔ POP2J]↔SETZ↔SEGNUM↔DAC SAVSEG#↔DETSEG
SLACI -=28516↔LAP XBUF↔SOS↔DAC DUMARG
OUT 1,DUMARG↔RELEASE 1,↔LAC SAV44↔CORE
L5: OUTSTR[ASCIZ/ XGP CORE UUO FAILED.
/]↔ CRLF↔LAC SAVSEG↔ATTSEG↔JFCL↔POP2J
;HALF TONE TABLE.
HTT: 0↔0↔0↔0↔ 8↔8↔8↔8↔ 17↔0↔0↔0↔ 17↔8↔8↔8
DUMARG:0↔0
BEND VICXGP; BGB 6 MAY 1973 ---------------------------------------
SUBR(CREOUT) OUTPUT CONTOURS, REGION, EDGE FILE.
BEGIN CREOUT;-----------------------------------------------------
CALL(SHRINQ)
CALL(GETFIL,[SIXBIT/CRE/],[0])↔POP0J
LACN FILM
CALL(RELLOC,0)
;SETUP DUMP OUT ARGUMENT IOWD.
LAC FILM↔SUB@AVAIL2
LACM 1,0↔MOVSS
LAP CRE44↔DAC OUTARG
LAC@FILM↔DAC TMP#↔DAC 1,@FILM ;FILE SIZE IN WORDS.
;FILE OUTPUT RITUAL.
LAC@AVAIL2↔SUB FILM↔DAC@AVAIL2
INIT 1,17↔SIXBIT/DSK/↔0↔HALT
ENTER 1,FILNAM
GO[OUTSTR[ASCIZ/ ENTER FAILED.
/]↔GO .+4]
OUT 1,OUTARG↔JFCL
OUTSTR[ASCIZ" EOF.
"]↔ RELEASE 1,
DZM FILNAM↔SETZ EXTION↔DZM EXTION+1↔DZM PPPN
CALL(RELLOC,FILM)
LAC TMP↔DAC@FILM
LAC@AVAIL2↔ADD FILM↔DAC@AVAIL2
POP0J
OUTARG: 0↔0
BEND CREOUT; BGB 6 DECEMBER 1972 ---------------------------------
SUBR(CREIN) CONTOUR,REGION,EDGE FILE FORMAT INPUT.
BEGIN CREIN;------------------------------------------------------
CALL(GETFIL,[SIXBIT/CRE/],[0])↔POP0J
INIT 1,17↔SIXBIT/DSK/↔0↔HALT
LOOKUP 1,FILNAM↔GO[RELEASE 1,↔GO CREIN]
DZM QBLK
LAC PPPN↔LAP FILM↔SOS↔DAC INARG ;IOWD
MOVS PPPN↔MOVMS↔ADD FILM
IORI 1777↔CAMG 44↔GO L1
CALLI 11↔HALT
LAC 44↔AOS↔SUB FILM
DIVI 7↔DAC 1,REMAINDER
L1: IN 1,INARG
OUTSTR[ASCIZ" EOF.
"]↔ RELEASE 1,
CDR@AVAIL2↔ADD FILM↔DAC@AVAIL2↔DZM@
DIP↔AOS↔LAC 1,44↔BLT(1) ;CLEAR EMPTY AREA.
CALL(RELLOC,FILM)
;RESET AVAIL2 LIST.
LAC 1,@AVAIL2↔LAC 2,44
LIPI 1,NODSIZ(1)↔GO L6
L5: HLRZM 1,(1)↔ADD 1,[XWD NODSIZ,NODSIZ]
L6: CAILE 2,NODSIZ+NODSIZ-1(1)↔GO L5
SUBI 2,NODSIZ-1(1)↔DAC 2,REMAINDER
POP0J
INARG: 0↔0
BEND CREIN; BGB 28 JANUARY 1973 ----------------------------------
;TVIN4. FOUR BIT TELEVISION INPUT.
SUBR(TVIN4)------------------------------------------------------
BEGIN TVIN4
LAC 44↔DAC TMP44#↔AOS↔DAP TVPTR
ADDI=6912↔CORE↔POP0J
L0: INIT 17,17↔SIXBIT/TV/↔0
GO[OUTSTR[ASCIZ"CAN'T INIT TV."]↔INCHRW↔GO .-3]
DZM TVERR↔INPUT 17,TVPTR↔RELEASE 17,
;REPORT ON THE ERROR BITS AND RETAKE IF NECESSARY;
LAC 1,TVERR
TRNE 1,100000↔OUTSTR[ASCIZ/TV PARITY ERROR.
/]↔ TRNE 1,000040↔OUTSTR[ASCIZ/TV DATA MISS.
/]↔ TRNE 1,000020↔OUTSTR[ASCIZ/TV NON EX MEM.
/]↔ TRNE 1,100060↔JRST L0
TIMER↔DAC TVTIME#
DATE↔DAC TVDATE#
OUTSTR[ASCIZ/AKEN./]
LAC[XWD HISTO,HISTO+1] ;CLEAR THE HISTOGRAM.
DZM HISTO↔BLT HISTO+77
;CONVERT FROM GREY CODE TO GRAY CODE.
LAC 16,[XWD L,0]↔BLT 16,12
LAP TVPTR↔GO 4
L: POINT 4,0,-1↔ FROM←←0
POINT 6,TVBUF,-1↔ TO←←1
=62208 ↔ CNT←←2
0 ↔ BYT←←3
ILDB BYT,FROM ;4
LAC BYT,GRAY(BYT) ;3
LSH BYT,2 ;6
AOS HISTO(BYT) ;7
IDPB BYT,TO ;8
SOJG CNT,4 ;9
GO .+1 ;12
LAC TMP44↔CORE↔HALT↔POP0J
BEND TVIN4; BGB 14 DECEMBER 1972 ---------------------------------
TVPTR: XWD -=6912,0 ↔ INTERN TVPTR
TVCLIP: 701002 ;BCLIP=7 TCLIP=0 CAM=1.
INTERN TVCLIP
TVYXW: BYTE(9)50,34,40
TVERR: 0
GRAY: OCT 12,13,11,10,15,14,16,17,5,4,6,7,2,3,1,0
SUBR(TVIN6). SIX BIT TELEVISION INPUT.
BEGIN TVIN6;-----------------------------------------------------
LAC 44↔DAC TMP44#↔AOS↔DAP TVPTR
ADDI=6912*4↔CORE↔POP0J
L0: INIT 17,17↔SIXBIT/TV/↔0
GO[OUTSTR[ASCIZ"CAN'T INIT TV."]↔INCHRW↔GO .-3]
DZM TVERR6#↔PUSH P,TVCLIP
LACI 76↔DPB[POINT 6,TVCLIP,23] ;TAKE CLIPS 76.
LAC TVPTR↔LIPI 440400↔DAC P1#
L1: DZM TVERR↔INPUT 17,TVPTR↔LAC TVERR
IORM TVERR6↔TRNE 100060↔GO L1
LACI 54↔DPB[POINT 6,TVCLIP,23] ;TAKE CLIPS 54.
LACI =6912↔ADDB TVPTR↔LIPI 440400↔DAC P2#
L2: DZM TVERR↔INPUT 17,TVPTR↔LAC TVERR
IORM TVERR6↔TRNE 100060↔GO L2
LACI 32↔DPB[POINT 6,TVCLIP,23] ;TAKE CLIPS 32.
LACI =6912↔ADDB TVPTR↔LIPI 440400↔DAC P3#
L3: DZM TVERR↔INPUT 17,TVPTR↔LAC TVERR
IORM TVERR6↔TRNE 100060↔GO L3
LACI 10↔DPB[POINT 6,TVCLIP,23] ;TAKE CLIPS 10.
LACI =6912↔ADDB TVPTR↔LIPI 440400↔DAC P4#
L4: DZM TVERR↔INPUT 17,TVPTR↔LAC TVERR
IORM TVERR6↔TRNE 100060↔GO L4
POP P,TVCLIP↔RELEASE 17,
;REPORT ON THE ERROR BITS.
LAC 1,TVERR6
TRNE 1,100000↔OUTSTR[ASCIZ/TV PARITY ERROR.
/]↔ TRNE 1,40 ↔OUTSTR[ASCIZ/TV DATA MISS.
/]↔ TRNE 1,20 ↔OUTSTR[ASCIZ/TV NON EX MEM.
/]↔ TIMER↔DAC TVTIME#
DATE↔DAC TVDATE#
LAC[XWD HISTO,HISTO+1]↔DZM HISTO↔BLT HISTO+77
OUTSTR[ASCIZ/AKEN./]
;CONVERT FROM GREY CODE TO GRAY CODE.
LAC[POINT 6,TVBUF,-1]↔DAC P5#
LAC[XWD L,3]↔BLT 16↔LACI =62208↔GO 3
;SIX BIT AC-LOOP.
L: ILDB 1,P1↔LAC 2,GRAY(1)
ILDB 1,P2↔ADD 2,GRAY(1)
ILDB 1,P3↔ADD 2,GRAY(1)
ILDB 1,P4↔ADD 2,GRAY(1)
IDPB 2,P5↔AOS HISTO(2)
SOJG 0,3↔GO .+1
LAC TMP44↔CORE↔HALT↔POP0J
BEND TVIN6; BGB 14 DECEMBER 1972 ---------------------------------
END