801PRT10DOC H801PRT11C  801PRT11COM'801PRT11INFaA801PRT11UPD% 9/7/86 - Removed space-wasting check to see if printer opened properly and added tab expansion to make version 1.1.  The files included in the original distribution library for 801prt11 are: 801PRT11.INF - Info on the distribution library 801PRT10.DOC - Documentation for 801PRT11 801PRT11.C - C source code for 801PRT11 801PRT11.COM - The actual 801PRT11 program. 801PRT11.UPD - Update notes. PRT11 801PRT11.C - C source code for 801PRT11 801PRT11.COM - The actual 801PRT11 progra/* 801PRT11 - MPS801 file printer version 1.1 This is a file printer designed with the Commodore MPS801 and 1525 printers in mind. It should, however, work with any printer that does not need linefeeds. It sends two extra carriage returns to the printer at the end to clear out the buffer, so that no lines will be dropped as happens with many file listers when used with the MPS801. It also filters out linefeeds. This source code and the program are in the public domain. Modify them as you see fit. 9/7/86 - Removed code-wasting check to see if printer opened ok since it didn't work and added tab expansion to make version 1.1. */ #include #define LF '\012' #define TAB '\t' #define EXPTAB " " main(argc,argv) int argc; char *argv[]; { FILE *in; FILE *lst; int ch; if (argc < 2) { printf("\n\n801PRT11 - MPS801 file printer version 1.1\n\n"); printf("Usage:\n\n801PRT11 filename\n\n"); printf("where filename is the name of the file to print out.\n\n"); exit(-1); } if ((in = fopen(argv[1], "r")) == NULL) { printf("\nCould not open file %s.\n",argv[1]); exit(-1); } lst = fopen("lst:", "w"); ch = getc(in); while (ch != EOF) { if (ch != LF) { if (ch == TAB) fprintf(lst, "%s", EXPTAB); else putc(ch, lst); } ch = getc(in); } putc('\n',lst); putc('\n',lst); fclose(in); fclose(lst); } n801aG '8o&^#V5C 6C͡E?_o&{5^#VEJXcqz3_^#V__s#ro& DMo;z(__nf! _ W!9R~D(6KB y(]T++|58 }40t5u4|-8 },0>͙ 3 o ge3;l&e3|eoV3^#V;rs#r͚V3͚^#V͚͚;r͚s#rͷV3ͷ^#Vͷͷ;rͷs#rV3^#V;rs#rx((+8>>3 o&0& DM;z ;z(Rͷ z( z( >2O :K >͙z( z { >3z { >3zRW>3zRW}(>3zRW}(>3zRW>3|/g}/o#|$/g}/o#}3ͷ^#Vr+sͷ^#Vr+s^&V'!9u&t' o g DM!9 0+nf+ww(_~w#~wr+s>͙nf~w(_~w#~wnf^Vn&f'~w&#~w'# W _ GKz _R( Fp##= nf~w(_s#rn&f'~w&#~w'# ~3  V+^z |3|3}/o o& DM!9 W| }8!) ^#V#DM _ W /_ /W! o g DM;z ;z(z(z  o g DM}3}3ͷ4ͷ5`i!+++ _0$ V3$ ^#V$ $ ;r$ s#rO V3O ^#VO O ;rO s#r _0### #)18?GNV_ipy",3<GV (1>K_,, yW`gq***|*+!)*18?IPV]kt~ 0w++*A+\+p+++8 G xQ AKm (C) Copyright 1985 Mix Software ѻ  ѻ i`B#^&V'R| ^#V /o&^V!կR|>͙>ּ͙ _/_nfV+^ _ WnfRV+^  0,_^#V o g ^VRV+^>͙ _" /_nf _G /_nfnfV+^nf _ Wr nfnfRV+^nfz͒ ͟ ͷ 0!Rz!Rx!BDM!R!>C( =¼ z͒ ͒ 0ͭ ͭ {(MD!>!jR0 = YP!]T G "#! !I(H  A0 _! ^#V>͙ 48. l1510/ciC]B`BcBU]k0'6)4*)4#,,+/= ,,, _ WRW  _ WRW }('! B) o gIF!I#V)>͙RANGE ERROR AT LINE:}(,|/8 }.8|18 }00!% B)!= INVALID POINTER AT LINE:NIL POINTER AT LINE: 0 _!l ^#V>͙   ' 9 K zg{ozg{o}/o|/gzg{o}/o|/g{({(a {(<a {(%a {(,;Zz5 R(8<3=z( >͙z {  0 _! ^#V>͙ r _ W( _ WR(z o g DM _ WDM!9 o g  o g MD!+ q#p# w# !+ ^V nfR8 ?^VR82>[I(FF!F#B)>]I(5 w(6  _ W!9y(9500000002O nFfG}( !!M)V(͂(02# 8o&)^#V])^Vo&Runtime error 23@L\jv*+7KU7^huOut of stackOut of heapInvalid pointerInvalid levelDivide by 0Undefined opcodeInvalid SetUnknown runtime callIO errorSet element too largeAttempt to write to input fileFile not openAttempt to read output fileNo memory for file bufferRange checkBad digit in numberPut errorOverflowUnderflowLog negativeSQRT,or X^Y negativeNot enough parametersRead past end of fileOut of disk space0:8_0:8WBK͔s#r{>2O ~?>͙^#V͈6#6> >>> ;x>> 5(66~(YTK&͔z 6!ut ʹK) ͔z 6s r sr:( w&wwF@ :% G:$ GpsrͫK  !ͫK X!ͫy #ͫ} (Yy N{8 (G> "#{8>G|zd"#{l"#}zz"#{"#ͫy {8 (G> "#{8>OF>FF ("#  y ;{ |y R"#|!Fw!!Fs#r+!^`iy z( ("#Sͫ^("#> z> "##|7R!~ݦ( ~ݶ(͌!W3"( ( ͌! 3V)5(Cͫ^6#V6:I ͈^6#V6:I ͈6 6#6&>͙M~ݦ( !ͫM~ݦ(%~ݶ >͙^V^VÁ~ >͙~"#M~ݦ(~ݶ nf~ "w~ݶNF͔ut} 6~~ݶ͌!(nf͈66'^VNF~($ ͔ ͔  x ͫ5( ~>w} ^#V# K oK& ͔z(KK& " (( ! x ͫ!BDM͔|(]Tq#p#x(͈s#r>2O ~?(>͙ͫi`K y(" (( ! x ͫ>  x i`L͈(}y(|FK p" (,( ( ( ͔ " (Y(U (Q,(M (I͔ +(,-((.($#( 08:8A8 G8K( k(6< 2F( ͫ!F6i`~ݶ(nfnf͈66 ~($K ͔ ͔  x ͫ~(KBM%ͫ>"# K :͔ ( ( ((' (T >" (( ( ( (͔ ͫ;z( FALSETRUE M~666 6nf 66sr{y ʽM~ ~( 6ͫ666 6nf (80s#r#s#r.% utJut ^#V#N#Fi`F&i`>F͈("N#F+~ 2y(! ͔  ^( ^#VBr+s6#6i`ͅ .^V ut66 $ͫM%>~(~(~(>w>nf~ 1! ,͔ ^( V &os&r'!>wnf~ (!"#~ s&r'!^("#> >͙%F&i`lc;tD;|(Jwg3xR >oonNfO~(O2O ~>(F~FG> ?!B)~V(w(~8 0 >GxG͂(xuLtM͙~8 0 >>Operating system error: ~A8[0>$(_(~(~(~ ~(>wɯ>>~(~(~ ~=(yOx y0n2f3^#Vx8q{qBz .{0) #N#Fq2p3#^#Vyx{z+ +s#r#  N#F#q2p3{zN#F{zq#p# n8f9 u8t9n6f7R0s6r7~D+F+~O6]T #^#V|3­}2­!}v++|/y }.y^#V+{y{_DM|18 y}0yn8f9Ru8t9~ )N#Fx +# q2p3##^#V^#V^#V+{_~ ^#V^#V+x (y $^#V+s#r#s#r+++s#rs2r3%`iq#p#q#p#s#r MD##q#pq#p>2O ~?͙^V ͊6]T6 ]T|(,ut ]T66#6 T] #6Þ͊w~(6#66666~ ~ ~=wp 6 ~08> H6 ͨ ~(1ͨ(%ͨ(ͯ666 6r Þ66r Þ!G~#( ~+<( ##r+s!G~# ~( ~+<( ##6+6!G~#<(~+( ^#Vͨ##͊~08~(2~(~ V(>"#"> ͨ wr 6Þ͊~8D(6< ^ V >Pd)Fw(#N>~w | y(6 #6 < ~ž~(6Þ~ݾ 64~ݾ(#X#6F> %ͨ(+( 9n f 6~wůw6 #r Þ#4 46 w~0+:G _ͨ^ V ͨ: Gݾ(^ ͨ:G(: Gݾ_ ͨ: Gݾ_ͨ͊~(>Þ~03~( F$Þ~ \n f ^ ~4 4 Þ :J ( ͨͨ( ͔ͨ͊ ( >65 5 6 " ͔  6 ͔  ~ (5 > Þ͊~ ~ "(͔ " ͔ 6 Þ6~!~!~!~ڷ!"(!>~ 0|"V("(~ nf ~ݾ(>|"~ /~ %~ ^ V o&~ ~ݦ> > >F$^V >w8>w8 >w85~ "~(6  \͊4~ݾ( #6 Þ5"Þ#F~ ( > ͨ #4 4w6 6#r ~w ~w >݆ w 4 ͊_4 ~8(H( ( ͨ9~(!FsM%Þn f N  s4 ~ |#͡"Þ> "#> "# 6ͷ ><o&z(>z !B0`i>_`iR0PY!>:_ݶ =ͨ>! }( ~! ~"(u!t"6#Hͨw#^V > ^Vx y= nf4 4 4 4nf ͙#͔#!9^Vn f ~ݶ^V5$5$#{ƀ_zWsr~n f w r #8$ͥ$($!#nf ^VNFsr!͸$~ݶ(!#^VNF$8$ͥ$(@%!#>ݾ(>ݾ 6nf nfNFut+"#"͸$~ݶ(4%!#>ݾ(>ݾ 6nfNF+"#$6~%!^V ~5&~5&~ $#ͨV!n"&=!F&YP~Z&^V ~ UF^~ ~|&<0(G~ xݖG0 {_0zW;y݆ O0  !NF^V4$͊B)!&B)n f 6@d)&w(Þ = : Gw: Gw'nf # 6 # O  ':  'a8{0'a8{0:(.(w# 8(:( .( 8(>/O ~08,:0(0w#~08:00G~Ow#~ 8<>(/~L(D(R(P(6^6X6R6L6F~Awnf # 6 #  R'$NF !  (a8{0w# (~ I(> I(> I(#~(nG#~ ~>(J#(F+(- #(K~#K(&k(" ()))0_ (!R{W#(~)))))o#08 :8A8G8!))V)0*** INVALID HEX DIGIT ***z~#I(~#I(B)w(M)w(ɯ ͨ| N#Fx0!BDM#^#V#;('o)͔} >͙q#px(#|^#V͈s#r;o)o)x y8BKx(~#(+F?8  *8͈͈;| o)o) ##DM͔| *è)q#p#x(x(* o& #DM~w+x( #>3+x( #+},z {ͧ,͌,>͙},z {0]o{͙!;,!w#:;, C,",",00m_!,^#Vg-s---------.!.k.!.q..... /$/>/\/z/////I.V._._-_-_-_-_-_-_-_-_-_-_-._-_-_-_-_->͙0-1200-1yO200%4V300f3V30ͭ;ͽ29110-1D7V331ͭ;<1!(!9(1-1(-(-1s#r#q#p#;1-191;-1ͭ;͞2911ͭ;461V3 1>2O :K >͙ͭ;46;1ͭ;ͨ610-1m?0;1ͭ;4~0H2 46C,!(!91C,!9(1YP!(!9MDͭ;~w1FF~ (#!F40 ;O<;1ͭ;O<0 ;R?;1ͭ;R?0 ;;@0;1ͭ;;@0 ;̈́>0;1ͭ;̈́>0 ;*=0;1ͭ;*=0 ;?0;1ͭ;?0͑0ͭ;9V30-1!911x0Gy0O;zͭ;9V30C,",",{L#^#64^V!9(0C,",",C;z͑0ͭ;!F9V3F("#0C,",",x0Gy0O;z;|x0Gy0x0>O>8yG>ɷ0!> ɯɷ0>!! (! !99ͭ;(2O w 1o:K }͙ 1K,*,*,((,- (~_#~W#~O#~G#~~_#~W#~Ox1F:1怩O͞2(    4>ɯG(~1 #~G#~_#~W#~O~7w?21gy7O 8CZQ8ZQHEZQEoE1( ɯgy -JS XAJS\\G|G| ԯw2%72|ʒ1݆w0Ò191ͽ2!9((2#^#V#N#Fx~ ͞2ɐ0D͞2 981g 2|31.3O2g1Ғ14 >.E1Ò1:1/21&|G|  &M3|G|ٛ_|W|O(!9"b34~ >/w͢444*b3(xw# 2d32e3GOW_FOW_͞291*b3g1?:e3?0 2e3V37-1~<=32e3F͞2:e3GÒ10>2d3:d3(~w#:d32d372:e32e3:d3 5 >!9"#44~ w͢4GOW_!4(GOW_!a4!a4~# > 2.g0*#4g1  -| O2Fx(*~Gx4ƀw(+N1q21ɷ4w>( 4XPC4(ͭ;+5-(+ 5. :4§5<2450k5:k50:4g:4245( 4O>]5=G>O2(CE(D /5+(- 508:0O{ 82?_y0_(>ɰ(_:4G{()5245(:4= 246(:4< ~w#~ ~ͽ2x >G2~6({{ty0.3O2>~ 4ͽ21:17( 47 47&(&| 2 >7>7  >7.3z< x< x(M!7͕7yݮy\7xݾyݾzݾ{ݖ(xݾ yݾ zݾ {ݖ ~~//<Ƥ~@zZrN vH Tʚ;@B'd 426͞2!7(!7x4x8 8 F#x8.3͞2>/!;9͒:W(~+ 6 z(C~(#. xz z(B+~0(.(#+~- >0w#29(~8_շ:xl:t:7ѳĈ: 9Jy=&:4:6< {_xK:l:t:l:6."9#l:GO7yу=l:Ky==60#{21y.3O2 <ͭ;-1xͭ;( 1D͒1~wݧ-sdnT't?@&Ghy'L5#}iU]nI¡II91f3V3ͽ291ͨ6ͮ<-12ͮ<<ͷ<8ͮ<<42ͷ<Ԯ<<ͮ~0>ͽ29142<4D7==-1x91&op=&;-1͞242!=EA91%4V3-1͞291ͽ291!"=EA2-1͞291!"=EAyO2f3V3!<@-12-191͞242-1͞29142f3V3!<@3$W;>wlzR\c|u~ r1");8uV09Q745 DW9Q7,35hDW~EAD7>( >w>w~e0 4͞2!<>EA91%4V3ͽ291ͨ6x-1I?2~(<EA91! >@%4V3%4V3~wI( ~*2O~ y8>~>04͞291ͽ291ͨ6x-1D7(-1>-1yO͞2>0>91*=%4V3 ̈́> (~w4m?7":E}Kp= L]~MNL~裪~sh!Izm j0 vhC׳]~O@wO@@4D7x@(͞291f3V3x@@!@EA2!+@EAD7@(Cͽ291!3@EA2-1͞291!3@EA91%4V342f3V3@!#@EA2!?@~w"@ͽ29191%4V3*@@%4V3~2@#EA"@͞2y2@91:@=2@ V3%4!94+:@w*@EA"@2͙wKA^#V#N#F#>(!! JS\E(!e.99>21y.3O2>!!99~064D7  +0 _!B^#V>͙fBsBBBCCCDD%D4DIDODIDvDDDDAAAAAAAAAeD[DkDDBDDDDEE.E;EYEwE>͙UBUBUBZRR|z0jC|0͂CDM!DM!> C( J= jCBBzٲ(O|z0jC|0͂CDM!DM!> !jjRR0Z = PYPYjC͂C|0jC>͙z/W{/_z/W{/_|/g}/o|/g}/o,$,$zRW(C>3RW( C>C|C|/g}/oz/W{/_{ #C^#V#^#Vs#r#s#r|/D|AD>TATA͡A!͡A^#V#^#Vs#r#s#r _ W o gzg{ozg{ozg{ozg{o{/_z/W}/o|/gzg{ozg{oz/g{/oz/g{/o{({(`i͕Ey( A<MD`i͕Ey( A#MD`i͕Ey( A,MDx y  (!UF^#N#~{({A8!UFs(|-F|/g}/o#>-> !oFO>^V##u2FUsage: 801PRT11 filename 3u2F7where filename is the name of the file to print out. 3u23 u2{ "" Fr3'v32F Could not open file %s. { "" 3u23 u2Flst:Fw323A(v; (v& 'v2F%sF 3`uM 23u23M2 3u2 3u23u23u982FV"" {[Y3&9982{ {[Y3 99|8{ nY n VVfV Zv Zi%v!{ p2Z{ p|Z(vZ9Z`TV\V h-vVfV0\V h0vZ0Z [2V 3v2V38VhV h.vVfV2V 3sv2V3`mOj2VfV Z3ZL'vVfV ZOj{ Y 2Z3bM5jr2{ r|u2T3 ^MHjt2{ Vt|u2T3 ^M-jv2{ Vv|u2T3 ^Mjx2{ ZVx|u2T3 ^M{ T2T3 ^M{ XX ^MbVb2{ Z""3Hbd{{ Z"" `Z'vf`f2{ bdf3uZ`V^^" ZvZhDv^"E 0^d{ ll ^lTR{ z2Z{ z|Z(vMZ9.| YGYFQEHC1SXOUD`V,V v ^`+vfv`^h^#h\yvi[h0V v T h-vfv&1^{ |2TfT { ||Z'vZ9hXhV+v { |2[{ ||Z'vZ9{ |2{ T^||Z'vZ9hXhV+v { |2[{ ||Z'vZ9{ Y MV998{ V)V v{ vfv{ f - { { - 2{ {{ 3\u{ 98{ zVz z+V v{ vfv{ f - { { zzz2{ z{{ 3ou{ 98{ { y +v({  f { y +v{ e0{ e7 92{ { x{ { 3u2{ { y{ { 3u98{z{ z z+v7{  f {zz z+v {zZ0z z{zZ7z zz  92{z{ z z{ { 3u2{z{ z z{ { 3u982{ 5{ { { { 3 u98{ 5F 100000.0 55+v9998FCON:FCON:FCON:VFwoV23s qV23w sV6 2V3|u2V3_u2V3uVZ)v0FV""V 23A u V"" V+V v Z)vfv h V vvfv 1fv h<vf1E h>v+f1 h>vf1a "" 0 i V vvfv f1f 1M/{ 'v 2Fr3qu23gu2Fw3\u23u2V3 u98V{ Z/+V v{ Z:)vfv>{  f "eд˔99 8V{ hWV w { hwwfvB[${ hAV w { hawfvYY{ f hbV w { hBwfv2{ 3!Z'vV9FV"" 998VZ)V vFV"" V(vfv0ߔZ)vF V{ " iv0)vf" FV""2Z"3h vye 2{ 3e yvK{ 2{ |e iv{ V)ve 9FV""V 23YuZ9O e  Z9Z9Z9982{ 3{ e Z9FV{ e ""V 2{ 3uV998VZ)vFV"" V(v 2FV"" 3V02{ 3Tu98{ Z0,V v { Z9*vfv9V998{ Za,V v { Zz*vfv{ e { 9982{ Z+3 998oV { " oV { "{  9982{ Z>3 9982{ Z?3 998qV { " qV { "{  99|A2Z3u2{ 3u2{ 3Mu2Z3M'V vVVVVVVV|tAddress too LargeDirectory FullRead Unallocated ExtentCan't Find FCBDisk FullRead Unallocated RecordNo Errors|.XXXXXXXiX_XKX4X&XXWWWWWWyWdWMW5W|Sqrt of Negative NumberLog of Negative NumberArithmetic UnderflowError Cause UnknownArithmetic OverflowDamaged Stack or HeapBad Digit in NumberDamaged Stack or HeapError Cause UnknownNo Memory for File BufferAttempt to Read OutputFile Not OpenAttempt to Write InputError Cause UnknownI/O ErrorDamaged Stack or HeapDamaged Stack or HeapInvalid InstructionDivide by ZeroDamaged Stack or HeapDamaged Stack or HeapOut of HeapOut of Stack8<69b86;  =VZ" 0 '! Z56ve e6e we e VZ4" 0 '!ZF ZF+ZF”" VX+ g"" 0 '!g" 6:8===6 e Z98==Z6:86;986698=" Z)!AFF Z6Z" V(!6 D623%FF Z6FF Z6:8Z" "" 2Z Z3g Z"  (2Z 3K 2Z$3A e! XZ" &#X 2Z3" 2Z!3  (2Z  3 :U^VNo&u&t'Ux(u&t'U~(#u&t'8==6=e =U y(~wy(#~wx(@[:86:8=9 8==> 6 9606/8<r= ===5 598 801PRT10 - MPS801 file printer version 1.0 by M. Kimmel ------------------------------------------ 801PRT10 is a file printer program designed with the Commodore MPS-801 printer in mind. It has always annoyed me that the MPS-801's buffer must be "flushed out" with a carriage return. All the file listers I've used tend to drop the last line of a file when sending it to the printer. This program sends two extra carriage returns to the printer after it print the file, to make sure the last lines are printed. It also filters out linefeeds. Usage of 801PRT10 is straightforward. Simply type: 801PRT10 filename where filename is the name of the file you want printed. For example, if you typed: 801PRT10 XYZZY.FOO the file XYZZY.FOO would be listed to your printer. 801PRT10 is designed for the Commodore MPS-801, MPS-803, and 1525 printers. However, it should work with any printer that does not require linefeeds. 801PRT10 was written in C, and compiled with MIX Software's MIX C Compiler. All the files provided in the original distribution library are in the public domain. Copy them, modify them, distribute them as you see fit. If anyone makes a new version of it, it would be nice if a copy got back to me. No big deal, though. Enjoy the program!! -Matt Kimmel I can be reached on the ARPANet as: MKimmel%UMass.BITNET@wiscvm.ARPA and on BITNet as: MKimmel@UMass.BITNET immel I can be reached on the ARPANet as: MKimmel%UMass.BITNET@wiscvm.ARPA