/// CHARS - CHARACTER I/O ROUTINES. / JOHN T. EASTON SSRFC 76/08/20. / VERSION 4.1 77/12/21 CHRVER=41 IFNDEF CHRDBG < CHRDBG= 0 > IFNDEF CHRCKF < CHRCKF= 50 > IFNDEF CHRLST < CHRLST= 1 > IFNDEF CHRUFD < CHRUFD= 00 > IFNDEF CHRFLD < CHRFLD= 00 > IFNDEF CHRORG < CHRORG=5600 > IFNDEF CHRUSR < CHRUSR=0200 > IFNDEF CHRICH < CHRICH= 1 > IFNDEF CHROCH < CHROCH= 1 > IFNDEF CHRSNG < CHRSNG= 0 > IFNDEF CHROVF < CHROVF= 0 > IFNDEF CHRMAM < CHRMAM= 0 > IFNDEF ICHHND < ICHHND=6600 > IFNDEF ICH2PG < ICH2PG= 1 > IFNDEF ICHBUF < ICHBUF=2000 > IFNDEF ICHBFL < ICHBFL=2000 > IFNDEF ICHFLD < ICHFLD= 10 > IFNDEF OCHHND < OCHHND=7200 > IFNDEF OCH2PG < OCH2PG= 1 > IFNDEF OCHBUF < OCHBUF=4000 > IFNDEF OCHBFL < OCHBFL=2000 > IFNDEF OCHFLD < OCHFLD= 10 > XLIST CHRLST EJECT CHARS - DESCRIPTION. EJECT CHARS - BUILT CONSTANTS. ICHCTL= ICHBFL%2+ICHFLD ICHRIB= ICHBFL%400 OCHRIB= OCHBFL%400 OCHCTL= OCHBFL%2+OCHFLD+4000 CHRCAF= CHRFLD-CHRUFD IFZERO ICHBFL IFZERO OCHBFL IFNZRO ICHBFL&377 IFNZRO OCHBFL&377 IFNZRO ICHHND&177 IFNZRO OCHHND&177 FIELD CHRFLD%10 *CHRORG IFNZRO CHRDBG < EJECT CHARS - CHRCKP (CHECKPOINT) CHRCKP, HLT DCA CHRCKA RDF TAD CHRCKB DCA CHRCKC TAD CHRCKP CDF CHRCKF DCA I CHRCKD ISZ CHRCKD RAL DCA CHRCKE TAD CHRCKE DCA I CHRCKD ISZ CHRCKD TAD CHRCKA DCA I CHRCKD ISZ CHRCKD DCA I CHRCKD TAD CHRCKE RAR TAD CHRCKA CHRCKC, CDF JMP I CHRCKP CHRCKA, 0 CHRCKB, CDF CHRCKD, 0 CHRCKE, 0 > IFNZRO CHRMAM < EJECT CHARS - CHRMAM (MAMMOUTH FILES) ICHMF, NOP CDF CHRFLD TAD I (ICHFLP) DCA ICHMFA CDF 10 TAD I ICHMFA JMS I (CHRDCW) AND (0770) CLL RAR RTR TAD (ICHMFC) DCA ICHMFB ISZ ICHMFA CDF CHRFLD TAD I ICHMFB CDF 10 SNA JMP ICHMF1 TAD I ICHMFA ICHMF1, JMP I (ICH8) ICHMFA, 0 ICHMFB, 0 ICHMFC, 0000 0000 0000 0000 0000 1520 6001 4001 2001 0001 7601 7401 7201 7001 6437 6437 0000 6437 0000 1520 0000 7022 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 > IFNZRO CHRMAM+CHRDBG < PAGE > IFNZRO CHRICH < EJECT CHARS - IOPEN. IOPEN, CHRVER CLA IFNZRO CHRCAF < RDF TAD (CDF CIF) DCA IOPRTN > CDF CHRFLD IAC DCA I (ICHEOF) TAD (7617) DCA I (ICHFLP) TAD I (ICHLWA) DCA I (ICHPTR) TAD I (ICHJPP) DCA I (ICHJMP) IOPRTN, CDF CIF CHRUFD JMP I IOPEN ICH111, CLL RAL TAD I (ICHBFP) DCA I (ICHLWA) TAD I (ICHBFP) DCA I (ICHPTR) TAD I (ICHJPP) DCA I (ICHJMP) JMP I (ICH1) ICH12, ISZ I (ICHEOF) SMA CLA JMP I (ICH11) CLA CLL CML RAR JMP I (ICHRTN) ICH13, CLA CMA JMP I (ICHRTN) > IFNZRO CHROCH < EJECT CHARS - OOPEN. OOPEN, CHRVER OCHCLA, 7600 IFNZRO CHRCAF < RDF TAD (CDF CIF) DCA OOPRTN > TAD (OOPFN+1) DCA OOPBLK TAD (OCHHND+OCH2PG) DCA OOPA CDF 10 TAD I OCHCLA CDF CHRFLD AND (17) SNA JMP OOP4 DCA OOPDV TAD (-5) DCA OOPFNC TAD (OOPFN) DCA OOPFNQ TAD OCHCLA DCA OOPFNP OOP1, CDF 10 TAD I OOPFNP CDF CHRFLD DCA I OOPFNQ ISZ OOPFNP ISZ OOPFNQ ISZ OOPFNC JMP OOP1 TAD OOPDV CIF 10 JMS I (CHRUSR) 1 OOPA, 0 JMP OOP5 TAD OOPA DCA I (OCHHEP) OOP2, TAD OOPFN CIF 10 JMS I (CHRUSR) 3 OOPBLK, OOPFN+1 OOPLEN, 0 JMP OOP3 DCA I (OCLA) DCA I (OCHINH) JMS I (OCHIOP) ISZ OOPEN OOPRTN, CDF CIF CHRUFD JMP I OOPEN OOP3, TAD OOPFN AND (7760) SNA CLA JMP OOP6 TAD OOPDV DCA OOPFN JMP OOP2 OOP4, ISZ I (OCHINH) JMP OOPRTN OOP5, CLA CMA JMP OOPRTN OOP6, CLL CML RAR JMP OOPRTN OOPFNQ, OOPFN OOPFNP, 17600 OOPFNC, -5 OOPDV, 0 OOPFN, 0;0;0;0;0 > PAGE IFNZRO CHRICH < EJECT CHARS - ICHAR. ICHAR, HLT 7600 IFNZRO CHRCAF < RDF TAD ICHCDI DCA ICHRTN > ICH1, CDF ICHFLD ISZ ICHJMP ICHJMP, JMP ICHJMP JMP ICHAR1 JMP ICHAR2 TAD ICHJPP DCA ICHJMP TAD I ICHPTR AND (7400) CLL RTR RTR TAD ICHCW RTR RTR ISZ ICHPTR NOP JMP ICH5 ICHAR2, TAD I ICHPTR AND (7400) DCA ICHCW ISZ ICHPTR JMP ICH4 ICHAR1, TAD ICHPTR CIA TAD ICHLWA SNA CLA JMP ICH6 ICH4, TAD I ICHPTR AND (377) ICH5, DCA ICHTMP TAD ICHTMP AND (177) TAD (-32) SNA CLA JMP ICH7 ICH51, TAD ICHTMP ISZ ICHAR ICHRTN, CDF CIF CHRUFD JMP I ICHAR ICHEOF, 1 ICHFLP, 7617 ICHPTR, ICHBFL&7400+ICHBUF ICHCTR, 0 ICHLWA, ICHBFL&7400+ICHBUF ICHJPP, JMP ICHJMP ICHTMP, 0 ICH6, TAD ICHEOF SNA CLA JMP ICH9 ICH7, IFNZRO CHRSNG < TAD (JMP ICH71) DCA ICHJMP JMP ICH51 > ICH71, TAD (ICHHND+ICH2PG) DCA ICHA CDF 10 TAD I ICHFLP SNA JMP ICHRTN CDF CHRFLD CIF 10 JMS I (CHRUSR) 1 ICHA, 0 JMP I (ICH13) CDF 10 TAD I ICHFLP AND (7760) SNA IFZERO CHRMAM < JMP ICH8 > IFNZRO CHRMAM < JMP I (ICHMF) > TAD (17) CLL CML RTR RTR ICH8, DCA ICHCTR ISZ ICHFLP TAD I ICHFLP DCA ICHREC ISZ ICHFLP DCA ICHEOF ICH9, CLA CLL TAD ICHCTR SNA JMP ICH10 TAD (ICHRIB) SNL DCA ICHCTR SZL ISZ ICHEOF ICH10, CLL CML CMA RTR RTR RTR TAD (ICHCTL+1) DCA ICHCW ICHCDI, CIF CDF 0 CDF CHRFLD JMS I ICHA ICHCW, 0 ICHBFP, ICHBUF ICHREC, 0 JMP I (ICH12) ICH11, TAD ICHREC TAD (ICHRIB) DCA ICHREC TAD ICHCW AND (3600) JMP I (ICH111) PAGE > IFNZRO CHROCH < EJECT CHARS - OCHAR. OCHAR, HLT AND (377) DCA OCHTMP IFNZRO CHRCAF < RDF TAD (CIF CDF) DCA OCHCDI > ISZ OCHJMP OCHJMP, JMP OCHJMP JMP OCHAR1 JMP OCHAR2 TAD OCHJPP DCA OCHJMP TAD OCHINH SZA CLA JMP OCHRTN TAD OCHTMP CLL RTL RTL AND (7400) TAD OCHCH1 CDF OCHFLD DCA I OCHBFP TAD OCHTMP CLL RTR RTR RAR AND (7400) TAD OCHCH2 ISZ OCHBFP DCA I OCHBFP ISZ OCHBFP NOP IFNZRO CHROVF < ISZ OCHXWC SKP JMP OCHCDI > ISZ OCHDWC JMP OCHRTN TAD (OCHCTL) JMS I (OCHDMP) JMP OCHCDI JMS I (OCHIOP) JMP OCHRTN OCHAR2, TAD OCHTMP DCA OCHCH2 JMP OCHRTN OCHAR1, TAD OCHTMP DCA OCHCH1 OCHRTN, ISZ OCHAR OCHCDI, CDF CIF CHRUFD JMP I OCHAR OCHTMP, 0 OCHCH1, 0 OCHCH2, 0 OCHBFP, 0 OCHJPP, JMP OCHJMP OCHDWC, 0 OCHINH, 0 IFNZRO CHROVF < OCHXWC, 0 > OCHIOP, HLT TAD (OCHCTL&3700) CIA DCA OCHDWC TAD (OCHBUF) DCA OCHBFP TAD OCHJPP DCA OCHJMP IFZERO CHROVF < JMP I OCHIOP > IFNZRO CHROVF < NOP CDF CHRFLD DCA OCHXWC TAD I (OOPDV) JMS CHRDCW SMA CLA JMP OCHIO1 CLL CML TAD I (OCLA) TAD OCHBIB TAD I (OOPLEN) IFNZRO CHRDBG < JMS I (CHRCKP) > SNL SZA JMP OCHIO3 SZA JMP OCHIO1 IAC JMP OCHIO2 OCHIO1, CLA CMA OCHIO2, TAD OCHDWC IFNZRO CHRDBG < JMS I (CHRCKP) > DCA OCHXWC JMP I OCHIOP OCHIO3, CIA TAD OCHBIB CLL RTR RTR RTR SZA JMP OCHIO4 CLA CLL IAC RAL OCHIO4, CIA IAC IFNZRO CHRDBG < JMS I (CHRCKP) > DCA OCHXWC JMP I OCHIOP OCHBIB, OCHRIB > CHRDCW, HLT AND (0017) TAD (7760-1) DCA CHRDCX CDF 10 TAD I CHRDCX CDF CHRFLD JMP I CHRDCW CHRDCX, 0 PAGE OCHDMP, HLT DCA OCHHCW CDF CHRFLD TAD I (OCHINH) SZA CLA JMP OCH1 TAD OCLA SNA ISZ OCHHCW TAD I (OOPBLK) DCA OCHREC TAD I (OOPDV) JMS I (CHRDCW) SPA CLA JMP OCHDM1 IAC DCA OCLA OCHDM1, TAD OCHHCW CLL RTL RTL RTL AND (17) TAD OCLA DCA OCLA TAD OCLA CLL CML TAD I (OOPLEN) SNL SZA CLA JMP I OCHDMP CIF 00 CDF CHRFLD JMS I OCHHEP OCHHCW, 0 OCHBUF OCHREC, 0 JMP OCHHER OCH1, ISZ OCHDMP JMP I OCHDMP OCHHER, CLL CLA CML RAR JMP I OCHDMP OCHHEP, 0 EJECT CHARS - OCLOSE. OCLOSE, HLT CLA IFNZRO CHRCAF < RDF TAD (CDF CIF) DCA OCLRTN > CDF CHRFLD TAD I (OCHINH) SZA CLA JMP OCL5 IFNZRO CHROVF < DCA I (OCHXWC) > TAD I (OOPDV) JMS I (CHRDCW) DCA OCLB TAD OCLB AND (0770) TAD (-0020) SNA CLA JMP OCL1 TAD (232) JMS I (OCHAR) JMP OCLRTN OCL1, JMS OCL7 JMS I (OCHAR) JMP OCLRTN JMS OCL7 JMS I (OCHAR) JMP OCLRTN OCL2, TAD OCLB SPA CLA TAD (100) TAD (77) AND I (OCHDWC) SNA CLA JMP OCL3 JMS I (OCHAR) JMP OCLRTN JMP OCL2 OCL3, TAD I (OCHDWC) TAD (OCHCTL&3700) SNA JMP OCL4 TAD (4000+OCHFLD) JMS OCHDMP JMP OCLRTN OCL4, TAD I (OOPDV) CIF 10 JMS I (CHRUSR) 4 OOPFN+1 OCLA, 0 JMP OCL6 OCL5, ISZ OCLOSE OCLRTN, CDF CIF CHRUFD JMP I OCLOSE OCLB, 0 OCL6, CLA CMA JMP OCLRTN OCL7, HLT TAD I (OCHJMP) CIA TAD I (OCHJPP) SZA CLA JMP I OCL7 JMP OCL2 PAGE > XLIST 0 CHRLWA=.