y. did it work ? beq 100$ ; yes direrr r0 ; no, print the error 100$: return ; bye .dsabl lsb c$who:: calls systat ,<#0> return c$tran::calls transf , return .sbttl the take command .enabl lsb c$take::$name sub #filsiz ,sp ; save current def dir mov sp ,r1 ; point to it copyz #defdir ,r1 ; done tst cmdlun ; indirect file already open ? beq 10$ ; no tst sy.ini ; during init from INI file? bne 5$ ; yes, don't bother with message tst infomsg ; /41/ How verbose are we today? beq 5$ ; /41/ Not very message ,cr 5$: clr sy.ini ; not in an init file anymore calls close ,<#lun.ta> ; yes, please close it now clr cmdlun ; assume the next open will fail? 10$: copyz #200$ ,#defdir ; stuff take defaults in now calls open , tst r0 ; did the open for command file work? bne 90$ ; no, print error and exit 20$: mov #lun.ta ,cmdlun ; yes, stuff the unit number in br 100$ ; bye 90$: direrr r0 ; print a error message and exit clr cmdlun ; force input from KB: 100$: mov sp ,r1 ; restore old default directory copyz r1 ,#defdir ; simple add #filsiz ,sp ; copy def dir save area back return ; bye .save .psect $PDATA ,D 200$: .asciz /SY:*.CMD/ .even .restore .dsabl lsb global .sbttl the SYSTEM command .enabl lsb c$sys:: $name tstb @argbuf ; need something in ARGBUF bne 10$ ; oops message ,cr return 10$: strlen argbuf ; get the current length so we add argbuf ,r0 ; can stuff a carriage return movb #cr ,(r0)+ ; and a null in clrb @r0 ; all set now mov argbuf ,200$+2 mov #200$ ,r5 ; call the PK driver call runjob ; simple tst r0 ; did it work ? beq 100$ ; yes message decout r0 message 100$: message return ; ierr = runjob(buffer,mode,10,timout) ; ; All parameters for RSTS are used so we can use the ; generalized PK code used also in MINITAB (C) and TED. ; For RSX11M/M+, only the first argument is needed. .save .psect $PDATA ,D 200$: .word 4,0,220$,230$,240$ ; parameter list 220$: .word 100305 ; internal mode for running on the PK 230$: .word 10. ; first free logical unit number 240$: .word 10. ; ten minutes and i kill the PK's job .restore .dsabl lsb global c$spac::$name sub #120 ,sp ; allocate space for a buffer mov sp ,r1 ; point to it calls dskuse , ; get the usage string print r1 ; print it message ; a crlf add #120 ,sp ; pop the local buffer return ; and exit .sbttl the local type command .enabl lsb .save .psect buffer ,rw,d,lcl,rel,con buffer: .blkb 1000 .restore c$type::$name mov #buffer ,r4 ; and point to it of course calls fparse , ; parse the filename please tst r0 ; did the $parse work ok ? bne 90$ ; no print r4 ; yes, print the expanded name out message 5$: clr r2 ; assume file not open calls open ,; try to open passed filename tst r0 ; but did the open work out ? bne 90$ ; no com r2 ; flag it as being open please 10$: tst cccnt ; control C typed ? bne 90$ ; yes, abort this calls getrec , ; get the next record tst r0 ; did it work ? bne 90$ ; no 20$: tst r1 ; null record (ie, cr/lf only) ? beq 30$ ; yep print r4,r1 ; dump the record 30$: message ; a cr/lf br 10$ ; next record please 90$: tst r0 ; forced exit ? beq 95$ ; yes cmp r0 ,#ER$EOF ; end of file ? beq 95$ ; yes, its ok direrr r0 ; no, print the error out 95$: tst r2 ; is the type file open ? beq 100$ ; no 96$: calls close ,<#lun.in> ; yes, please close it up now 100$: return global .dsabl lsb .sbttl print command c$prin::calls qspool , direrr r0 return .end K11CM1MAC[.050032]K11CM1.MAC[.050032]D   X14|H [4;Ik(&'( k ߫H&P` \RrPP2PPzPP{PPPPP2P~\$\\TD 0D \~ hi) +\ ^( n ^( np\^txY\^ˀ\!kVk<\F˰<˴ˬ\VVkˤ1`@lP ABCDEFGHIJKLMNOPQRSTUVWXYZ$.?0123456789<@<SЬTЬ UQS>?\\\\\\\\\`:#@'="\abcdefghi\\\\\\\jklmnopqr\\\\\\\~stuvwxyz\\\\\\\\\\\\\\\\\\\\\\{ABCDEFGHI\\\\\\}JKLMNOPQR\\\\\\\\STUVWXYZ\\\\\\0123456789\\\\\