" *********************************************************** " * * " * Copyright, (C) Honeywell Information Systems Inc., 1982 * " * * " * Copyright (c) 1972 by Massachusetts Institute of * " * Technology and Honeywell Information Systems, Inc. * " * * " *********************************************************** " prog to print dump tapes " Modified on 10/26/71 at 00:20:15 by R F Mabee. " Modified November 1981 by C. Hornig to not use IOM rel mode. name print include bosequ " stx2 x2 tsx2 init_io tsx2 ttyinit arg ttyrequest ldx2 x2 restore X2 ldx7 mem|0,2 get pointer to arg list lda mem|arglen+1+1,7 get argument in decimal tmoz notapeno if not supplied, use default tape # ana =o17,dl mask tape # als 12 shift stca tpchanno,04 and save als 12 shift to IDCW device position stca tpcw,20 set device code in PCW stca tpidcw,20 and in IDCW's stca rwidcw,20 .. notapeno: tsx2 itaper initialize tape for reading arg tpchanno .. lda tpchanno get channel # als 9 shift to PCW position ana =o777000,du mask channel # sta tpcw+1 and set in PCW tsx2 getprt get a printer channel sta prtchanno als 9 stba ppcw+1,40 als 12-9 stca ppcw,20 stca ptidcw,20 stca dpidcw,20 top: eax0 0 restart scan tra *+2 next: eax0 1,0 go to next scan point ldx1 bptr,0 get buffer pointer ldx7 state,0 tra 0,7 ttyrequest: x2: eax2 * return to bos lca =1,dl tra mem|1,2 " tape_w: stc2 state,0 set state tra next tapef: szn tbusy if tape channel not busy tnz tape_w szn active,0 and tape is up tnz tpact tsx2 check_status " Give it a chance to find special interrupts. zero tpchanno tra tape_w tra tape_w " Bad status, ignore it. tra tape_w " Not expecting status, ignore it. tpact: szn filled,1 if buffer needs filling tnz tape_w stc1 tbusy start filling it absa bufp,1* get address of buffer als 6 stca tprdcw,70 set address in DCW stz trys reset retry count tpskip: tsx2 bb blank buffer tsx2 connect_iom zero tpcw,tpidcw tpwt: stc2 state,0 set state to waiting for io tra next tsx2 check_status zero tpchanno tra next tra *+2 " Abnormal status. tra tpdn " Good status. staq tpstatus ana =o177700,du " Major and substatus. cmpa =o020200,du " No tape unit. tze notape cmpa =o020400,du " Unit standby. tze notape cmpa =o021000,du " Unit check. tze notape ana =o170000,du " Major status. cmpa =o040000,du " EOF tze eof aos trys retry count lda trys check for max cmpa =10,dl tmi tpretry tsx2 erpt acc 'tape error, status = ^w' arg tpstatus tra tpskip and skip record tpretry: tsx2 bb tsx2 connect_iom otherwise, retry zero tpcw,bsidcw tra tpwt tpdn: ldx7 bufp,1 stx7 d6d set descriptor addresses stx7 d6e tctr () scan backward for zeroes d6d: desc6a *,30*6 arg tctable arg tctally lda tctally ldq 30*6,dl sbq tctally anq =o77777777 length in QL mlr (),(rl,ql),fill(20) pad with blanks desc6a *,0 d6e: desc6a *,al adq 5,dl round to nearest word div 6,dl qls 18 stq bufl,1 and save length stc1 filled,1 if done, set filled switch erx1 =1,du switch to the other buffer stx1 bptr,0 stz tbusy tra tpact eof: tsx2 connect_iom zero tpcw,rwidcw tra x2 notape: stz active,0 stz tbusy if no tape, wait for spec interupt tra tape_w bb: ldx7 bufp,1 stx7 d6c set descriptor address mlr (),(),fill(0) clear buffer desc6a fence,6 except first word d6c: desc6a *,30*6 tra 0,2 " prtw: stc2 state,0 tra next printer waiting for something to do prtf: szn filled,1 tze prtw prt1: absa bufp,1* get address of buffer als 6 stca dpdcw,70 set DCW address lda bufl,1 get length arl 18 right-justify stca dpdcw,03 set tally in DCW lda bufp,1* get carriage control char ldq =o62,dl double space arl 30 tze sp ldq =o63,dl top of page cmpa =o1,dl tze sp ldq =o61,dl sp: qls 30 fill into slew command stcq ptidcw,40 " Device opcode. ldx7 bufp,1 set up descriptors stx7 d6a stx7 d6b ldq bufl,1 and length mpy 6,dl sbq 1,du not counting carriage control mrl (rl),(rl) remove the carriage control d6a: desc6a *(1),qu d6b: desc6a *,qu tsx2 connect_iom and connect at top zero ppcw,ptidcw stc2 state,0 wait for print tra next tsx2 check_status arg prtchanno tra next tra prt1 " Error, try again. stz filled,1 let tape fill buffer erx1 =1,du stx1 bptr,0 tra prtf " tbusy: oct 0 trys: oct 0 fence: vfd 36/-1 tctally: bss ,1 tctable: vfd 9/0,9/1,9/1,9/1,9/1,9/1,9/1,9/1 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 even tpstatus: oct 0,0 state: zero tapef states zero prtf zero top go back to top bptr: zero 0 buffer indexes zero 0 bufl: bss ,2 active: dec 1,1 all channels active tpchanno: vfd 18/0,6/1 prtchanno:zero 0 even tpcw: vfd o6/40,6/1,6/0,3/7,3/2,6/2,6/1 vfd 9/0 rwidcw: vfd o6/72,6/1,6/0,3/7,3/0,6/2,6/1 " Rewind/unload. bsidcw: vfd o6/46,6/1,6/0,3/7,3/2,6/2,6/1 " Backspace record. tpidcw: vfd o6/04,6/1,6/0,3/7,3/0,6/0,6/0 " Read BCD. tprdcw: vfd 18/0,3/0,3/0,12/28 " IOTD, 28 words. even ppcw: vfd o6/40,6/0,6/0,3/7,3/2,6/2,6/1 vfd 9/0 ptidcw: vfd o6/0,6/0,6/0,3/7,3/2,6/2,6/1 " Slew (filled in later). dpidcw: vfd o6/10,6/0,6/0,3/7,3/0,6/0,6/0 " Print. dpdcw: vfd 18/0,6/0,12/27 " IOTD, 27 words. filled: oct 0,0 bufp: zero b0 pointers to buffers zero b1 even b0: bss ,30 buffers b1: bss ,30 include bos_tv include bos_common end " " " ----------------------------------------------------------- " " " " Historical Background " " This edition of the Multics software materials and documentation is provided and donated " to Massachusetts Institute of Technology by Group Bull including Bull HN Information Systems Inc. " as a contribution to computer science knowledge. " This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, " Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell Bull Inc., Groupe Bull " and Bull HN Information Systems Inc. to the development of this operating system. " Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), " renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership " of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for " managing computer hardware properly and for executing programs. Many subsequent operating systems " incorporated Multics principles. " Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., " as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . " " ----------------------------------------------------------- " " Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without " fee is hereby granted,provided that the below copyright notice and historical background appear in all copies " and that both the copyright notice and historical background and this permission notice appear in supporting " documentation, and that the names of MIT, HIS, Bull or Bull HN not be used in advertising or publicity pertaining " to distribution of the programs without specific prior written permission. " Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. " Copyright 2006 by Bull HN Information Systems Inc. " Copyright 2006 by Bull SAS " All Rights Reserved " "