START ;LABEL PRINTER INCLUDE (01,NAMFIL,RS) RECORD PRINTREC,C PRINTBUFF, A120 RECORD PTREC4,X P4, A96 RECORD PTREC3,X P3, A72 RECORD PTREC2,X P2, A48 RECORD PTREC1,X P1, A24 SPACE 1 RECORD STOREC,C SLNAME, 5A12 SFNAME, 5A12 SADDR1, 5A24 SADDR2, 5A24 SADDR3, 5A15 SSTATE, 5A2 SZIP, 5D5 ; THESE 5 BUFFERS HOLD THE 5 LABELS WHICH ; MIGHT BE WAITING TO PRINT. SPACE 1 RECORD,C PLINE, A24 ;HOLD ONE LINE OF ONE LABEL NUP, D1 ;N UP, NUMBER OF LABELS/WIDTH KB1, A1 ;KEYBOARD READ IN BUFFER KB3, A3 ;KEYBOARD READ IN BUFFER KBD, D3 ; KEYBOARD TERMINATOR CNT, D3 ;COUNTER FOR LOOPS LINE, D1 ;COUNTER FOR LABEL LINE NUMBER POS, D3 ;COUNTER FOR LINE POSITION RECNO, D3 ;RECORD NUMBER RECMAX, D3 ;MAX REC NUM TO PRINT EOFLAG, D1 ;FLAG SET=1 WHEN LAST REC READ SPACE 3 PROC ;LABEL PRINT PROCEDURES INIT, ON ERROR INPERR ;BAD INPUT ROUTINE SET DISPLAY(1,1,1) ;CLEAR SCREEN DISPLAY(2,30,'LABEL PRINTING PROGRAM') DISPLAY(5,5,'HOW MANY LABELS WIDE ARE THE FORMS? (1 TO 5) ') ACCEPT(KBD,KB1) ;READ N-UP VALUE NUP=KB1 DISPLAY(7,5,'WHAT IS THE BEGINNING RECORD NUMBER? ') ACCEPT(KBD,KB3) ;READ 3 CHARS IF (KBD.NE.013) GOTO INPERR ;MAYBE BAD IF NOT RECNO = KB3 ;SAVE FIRST REC NUM RECNO = RECNO-1 ; WILL BE INCR LATER DISPLAY(9,5,'WHAT IS THE ENDING RECORD NUMBER? ') ACCEPT(KBD,KB3) ;READ 3 CHARS IF (KBD.NE.013) GOTO INPERR ;MAYBE BAD IF NOT RECMAX = KB3 ;SAVE MAX REC NUM ON ERROR ;UNSET INPUT ERROR OPEN('160107NAMFILDT') ;OPEN INPUT FILE ON RXA1 SPACE 2 MLOOP, CNT = 1 ;BEGIN EACH GROUP OF LABELS HERE READ, INCR RECNO IF (RECNO.GE.RECMAX) CALL EOFSET ;RESET NUP & EOF FLAG READ(01,NAMFIL,RECNO) SLNAME(CNT)=LNAME ;STORE ALL READS IN ARRAYS SFNAME(CNT)=FNAME SADDR1(CNT)=ADDR1 SADDR2(CNT)=ADDR2 SADDR3(CNT)=ADDR3 SSTATE(CNT)=STATE SZIP(CNT) =ZIP INCR CNT IF (CNT.LE.NUP) GOTO READ ;REPEATNUP TIMES SPACE 1 LINE =1 LINBLD, CNT=1 LLOOP, PLINE= ;CLEAR LABEL LINE BUFFER CALL(LN1,LN2,LN3,LN4),LINE ;FILL PLINE POS = (24*(CNT-1))+1 PRINTBUF(POS,POS+24) = PLINE ;POSITION IN PRINT BUFFER INCR CNT IF (CNT.LE.NUP) GOTO LLOOP ;REPEAT NUP TIMES SPACE 2 CALL(PRT1,PRT2,PRT3,PRT4,PRT5),NUP ;WRITE PRINT BUFFER INCR LINE IF (LINE.LT.5) GOTO LINBLD ;REPEAT FOR ALL 4 LINES SPACE 2 FORMS(6,3) ;SKIP 3 LINES AFTER LABEL IF (EOFLAG=1) GOTO EOF ;FINISHED LAST LINE GOTO MLOOP ;FINISH FILE SPACE 4 LN1, PLINE(1,12)=SFNAME(CNT) PLINE(13,24)=SLNAME(CNT) RETURN LN2, PLINE = SADDR1(CNT) RETURN LN3, PLINE = SADDR2(CNT) RETURN LN4, PLINE(1,15) = SADDR3(CNT) PLINE(17,18) = SSTATE(CNT) PLINE(20,24) = SZIP(CNT) RETURN SPACE 2 PRT1, XMIT(6,PTREC1) RETURN PRT2, XMIT(6,PTREC2) RETURN PRT3, XMIT(6,PTREC3) RETURN PRT4, XMIT(6,PTREC4) RETURN PRT5, XMIT(6,PRINTREC) RETURN SPACE 2 INPERR, DISPLAY(20,20,'INPUT ERROR') DISPLAY(21,10,'THE QUESTIONS MUST BE ANSWERED WITH NUMBERS') DISPLAY(22,10,'PLEASE PRESS TO REPEAT QUESTIONS.') ACCEPT(KBD,KB1) GOTO INIT SPACE 3 EOFSET, NUP = CNT ;LAST LINE IS ONLY CNT LABELS WIDE EOFLAG = 1 ;SET FLAG RETURN SPACE 3 EOF, FINI(01) FINI(06) DISPLAY(10,30,'FINISHED') END