.bECHO H º"PR H ePR SUB eïPR-2 SUB )ËPR22 C ¶PR22 COM(k±ëREAD ME ›¸ROUT H —0×þREAD ME “ƒoÿ ÿ /* echo.h -- 03/11/85 -- defines & data structures for echo.c */ #define SELDISK 14 /* log disk drive */ #define FIRST 17 /* search for first entry */ #define NEXT 18 /* search for next entry */ #define CURDISK 25 /* get current disk drive */ #define SETDMA 26 /* set DMA address */ #define NAMELEN 14 /* maximum length of file name */ /* misc defines */ #ifndef MAXFILES #define MAXFILES 64 /* Max. files on OCC1 DD */ #endif #define DMADD 0x80 /* DMA address */ #define FCBLOC 0x5c /* default location of FCB */ #define FCBSIZ 32 /* size of FCB */ #define DMASIZ 128 /* size of DMA */ #define NOTFOUND 0xff /* bdos 17 returns this if the file isn't found */ /* function macros */ #define offset(x) (char *) dma_buf + FCBSIZ * x /* declaration of CP/M file control block */ struct fcb { char f_driv; char f_name[8]; char f_type[3]; char f_ext; char f_resv[2]; char f_rc; char f_sydx[16]; char f_cr; unsigned f_record; char f_overfl; }; #define MARGIN 2 #define OFFSET 3 #define RIGHT 73 #define PAGE 66 #define LINES 55 #define TABSP 8 #define TAB 9 #define TOF 12 #define NOPAGE 'T' #define FRFILE 'F' #define FNLEN 14 #ifdef AZTEC #define CPMEOF 26 #endif czii -m -DAZTEC -z3000 b:pr22.c m80 =b:pr22.asm czii -m -DAZTEC -z3000 b:echo.c m80 =b:echo.asm l80 b:pr22,b:pr22/n/y,b:echo/s,softlibz/s,softmatz/s/e b: era pr22.asm era echo.asm /* PR.C 06/08/85 VERSION 2.2 prints out a paginated listing of an ASCII file uses Aztec C's IO redirection, and uses a home-grown wildcard expander (cf. echo.c). Note: WordStar is a trademark of Micropro International, Aztec of Manx Software Systems. Copyright (c) 1985 William S. Edwards. May be freely redistributed, but not resold. */ #include "libc.h" #include "rout.h" #include "echo.h" #include "pr.h" BOOL no_page = FALSE; /* flag for page headers */ /* mainline--expand cmd. line args, and process each file */ main (argc, argv) int argc; char *argv[]; { register int h = 0, j; char **names, **echo(), *index(); if (argc > 1) { /* parse cmd. line arguments */ no_page = argv[1][0] == '-' && index (argv[1],'T'); /* print files */ for (h = (argv[1][0] == '-') ? 2 : 1; h < argc; h++) { names = echo (argv[h]); for (j = 0; j < MAXFILES && names[j]; j++) read_f (names[j]); } /* end for */ } /* end if */ else { fputs ("\nUsage: pr [-t] filenam1.ext filenam2.ext ...", stderr); fputs (" [ > lst:, filename.ext]\n", stderr); fputs ("-t suppresses pagination.\n", stderr); fputs ("\nWildcards may be used as arguments", stderr); } } /* read each file and print out a paginated listing */ read_f (file_n) char file_n[]; { register int in_ch = 0, pcount = 0; FILE *fopen (), *file_d; if (file_d = fopen (file_n, "r")) { int lcount = 1; if (!no_page) top_page ((pcount=1), file_n); space(OFFSET); while ((in_ch = getc (file_d)) != EOF && in_ch != CPMEOF) { frob_char (in_ch, &lcount); if (in_ch == NEWL) { if ((++lcount > LINES) && (!no_page)) { top_page (++pcount, file_n); lcount = 1; } /* end if */ space (OFFSET); } /* end if */ } /* end while */ aputc (NEWL, stdout); aputc (TOF, stdout); fclose (file_d); } /* end if */ else { fputs ("Error opening ",stderr); fputs (file_n, stderr); aputc (NEWL, stderr); } /* end else */ } /* end read_f */ /* generate page headings */ top_page (pcount, file_n) int pcount; char file_n []; { int c, loop; if (pcount > 1) aputc (TOF, stdout); putchar (NEWL); space (OFFSET); fputs (file_n, stdout); space (RIGHT - FNLEN - OFFSET); printf ("PAGE %d",pcount); for (loop = 1; loop <= MARGIN; loop++) putchar (NEWL); } /* read a character and process it. Fill out tabs with spaces, mask WordStar control chars, nad deal with newlines. */ frob_char (in_ch, loc_lines) int in_ch, *loc_lines; { static int pos = 0; if (in_ch == TAB) { do { aputc(SPACE, stdout); } while (++pos % TABSP); } else { aputc ((in_ch & MASK), stdout); pos += 1; } if (in_ch == NEWL) { pos = 0; } if (pos > (MAXLEN - OFFSET - 1)) { printf("\n"); pos = 0; *loc_lines += 1; space (OFFSET); } } /* print amount number of spaces */ space (amount) int amount; { int ind; for (ind = 1; ind < amount; ind++) putchar (SPACE); } Ãú'ú'ú'z&?$ˆD$ˆI$ŽN$ŽS$ŽX$Ž]$Žb$Žg$”l$”š###÷"÷"÷"÷"÷"÷"÷"÷"v2z2Íõ þÿ!DM!9^#V!Ío ÊI!9^#Vë##^#Vë^!-Í4 Ê�!Tå!9^#Vë##^#VÕÍ+2ÑÑ–!Ù!":!9^#Vë##^#Vë^!-Í4 ʼ!ÿ!DMÃÊ`i#DM+`ië!9~#foÍn ÊF`i)ë!9~#fo^#VÕÍùÑë!9s#r!åÝáà Ýåá#åÝá+Ýåá@ëÍn ÊCÝåá)ë!9~#fo~#¶ÊCÝåá)ë!9~#fo^#VÕÍÑÃÃÄÃ}!#å!~åÍÑÑ!#å!¬åÍÑÑ!#å!ÆåÍÑÑ!#å!áåÍÑÑÉ Usage: pr [-t] filenam1.ext filenam2.ext ... [ > lst:, filename.ext] -t suppresses pagination. Wildcards may be used as argumentsÍõ üÿ!DM!åÝá!:å!9^#VÕÍhÑÑë!9s#rz³Ê!ë!9s#r*:|µÂZ!9^#VÕ!åÝáåÍKÑÑ!åÍ Ñ!9^#VÕÍåÑDMÿÿÍC Êå`iÍC Êå!9åÅÍôÑÑ`i Í4 Êâ!9å~#fo#ëás#r!7Ío ÊÚ*:|µÂÚ!9^#VÕÝåá#åÝáåÍKÑÑ!ë!9s#r!åÍ ÑÃb!å! åÍQÑÑ!å! åÍQÑÑ!9^#VÕÍÀÑÃ9!#å!<åÍÑÑ!#å!9^#VÕÍÑÑ!#å! åÍQÑÑÉrError opening Íõ üÿ!9^#V!Ío Êm!å! åÍQÑÑ!å! åÍQÑÑ!åÍ Ñ!å!9^#VÕÍÑÑ!8åÍ Ñ!9^#VÕ!ìåÍÑÑ!ë!9s#rÃË!9å~#fo#ëás#rë+!9^#V!ÍT Êë!å! åÍQÑÑúÉPAGE %dÍõ ! 9^#V! Í4 Ê*!å! åÍQÑÑ*@#"@ë͈  ÃL!å!9^#V!Íä åÍQÑÑ!ë*@"@! 9^#V! Í4 Êb!"@*@LëÍo Ê�!žåÍÑ!"@!å!9^#VëÑå~#foëás#r!åÍ ÑÉ Íõ þÿ!ë!9s#rÃÄ!9å~#fo#ëás#rë+!9^#V!9~#foÍn Êé!å! åÍQÑÑóÉÂÏ0>&2ü?Ã>1þ&ÂÑ0:ü?·ÂÖ0>&Í;:·øõ¯2ü?ñÉ*@~·Ê 1é=¾Â1O+¾Â1 Âð0xö€¿É+~þÒ1Ãâ0:@·À*@À~·Ê<1é=¾Â11O+¾Â11 Â#1¯xÉ+~þÒ11Ã1<É*F=åÍU õÍÝ0Âw1Gñáõ~#þ Ê\1þ Âd1åÍÑ0áÃP1xÍÑ0ñGõñÂÃ0þ&ÂÃ0Ã6 ñáõ"F=Íê þ Ê�1þ Ê�1Í6 Ö1ÍÑ0Ã}1ͱ Âk1Ã¥1ͱ úk1ÍÑ0ß1Íê þ;ÊÇ1ù1ÍÆ:ÍÑ0þ Êž:Íê ù1Íõ Öÿ!ë!9s#r!ë!9s#r!ë!9s#r!yåÍ& Ñ!jå!89^#VÕÍy ÑÑ! 9å!jåÍnÑÑ!êå!åÍ5ÑÑ!å!€å!êåÍ/1ÑÑÑ! 9å!åÍ5ÑÑë!9s#r!ÿÍC Ê !9^#Vë)))))êå! 9^ÕÍ_ ÑÑå!9å~#fo#ëás#rë+)yÑs#r! 9å!åÍ5ÑÑë!9s#r!ÿÍC Ê !9^#Vë)))))êå! 9^ÕÍ_ ÑÑå!9å~#fo#ëás#rë+)yÑs#rþ!yåÍ· Ñ!yÉÍõ þÿ!ë!9s#rÃJ !9å~#fo#ëás#rë+!9^#V!@Ín Êx !å!9^#Vë)ë!9~#foÑs#rÃ9 ÉÍõ üÿ!9^#V!9s#r!9^#V!9s#r!å!å!9^#VÕÍ/1ÑÑÑ!9^#Vë~·Ê^ !9^#Vë^!*Í4 Ê3 !9^#V! å!9^#VáÍ4  !9^#V!å!9^#VáÍ4  !?å!9å~#fo#ëás#rë+ÑsÃÑ !9å~#fo#ëás#rë+Ã[ !9å~#fo#ëás#rë+^Õ!9å~#fo#ëás#rë+Ñsð ÉÍõ úÿ!ë!9s#r!ë!9s#r!ë!9s#r!åÍl Ñë!9s#r!9^#V!9s#r!å!å! 9^#VÕÍ/1ÑÑÑ!9~·Êù !9^!A+å!9å~#fo#ëás#rë+Ñs!:å!9å~#fo#ëás#rë+Ñs!å!9^#Vë#å! 9^#VÕÍØ1ÑÑÑ! å!9^#VÕÍ+2ÑÑë!9s#r!.å!9å~#fo#ëás#rë+Ñs!å!9^#V! å! 9^#VÕÍØ1ÑÑÑ!9^#VëÉÍõ þÿ!9^#VÕÍBÑë!9s#rz³ÂŸ !¨ å!#åÍ)ÑÑ!åÍÏ"Ñ!9^#VëÉOut of memory Íõ úÿ!ë!9s#r!ë!9s#r!9~#¶ÊÛ !ë!9s#r!ë!9s#rà !9å~#fo#ëás#rë+!9^#Vë#)ë!9~#fo~#¶ÊØ !9^#Vë#)ë!9~#fo^#VÕ!9^#Vë)ë!9~#fo^#VÕÍK1ÑÑëÍo ÊÕ !ë!9s#r!9^#Vë#)ë!9~#fo^#V!9s#r!9^#Vë)ë!9~#fo^#VÕ!9^#Vë#)ë!9~#foÑs#r!9^#VÕ!9^#Vë)ë!9~#foÑs#rÃõ ÃÒ É¸Ê›6â6ñ|¢g}£o´É|/g}/o´ÉéáÝåýåÅ^#V#DM!9ë9ùÕ`iÍô ëáùÁýáÝáë|µÉz¬2Ý Í™ ë:Ý ·ú}´ÉͲ ë}´É}“Â> |’ÊM !¯É}“ÂM |’Ê> !}´Éë|ªúf }“|š?>Îo&Ézæo&Éë|ªú€ }“|š>Îo&É|æo&Éz2Ý Í™ :Ý ·ú|µÉ|·ò¤ /g}/o#z·ò² /W{/_ò ÅDM!>2Ü )ë)ëÒÅ #}‘o|˜gÒÝ :Ü =2Ü Â½ Á}´É:Ü =2Ü Â½ Á}´ÉÅDM!>)ë)ëÒü =Âô Á}´É}/o|/g#}´É|µÊM Ã> |²g}³o´Éë{æ_ÊE|´ò½|7g}oÂ+´Éë{æ_ÊE)Â@}´Éë}“o|šgµÉëáÅN#F#ë ëN#F#z¸Úi{¹Òm##^#VëÁéëáÅBK^#Vz·ú“#y¾Ê�###Ã{#x¾Âˆ#~#foÁéë}“|š>?Îo&Éë}“|š>Îo&Éë{æ_ÊE|·g}o½´É|ªg}«o´É~# x±ÂÒÉÑ!9ÝåýåÅÕÞ ~#Âí!úãéÁýáÝá|µÉ7ÉVëÍõ !"!9å!9^#VÕ!QåÍÚÑÑÑÉÍõ ! 9^#Vë"!9å!9^#VÕ!QåÍÚÑÑÑÉÍõ *å!9^#VÕÍQÑÑÉÍõ ! DM`i~·Ê–`i DM†ë͚ʓ!ÉÃr!9^#Vë#^!+Í4 åÝá!9^#Vë^ëÃŽÝåá|µÊÈ!ÃË!å!9^#VÕÍ‘$ÑÑë! s!ÿÿÍ4 Êì!ÉáÝåá|µÊý!Ã!Íå!9^#VÕÍ‘$ÑÑë! s!ÿÿÍ4 Ê'!ÉáÝåá|µÊ8!Ã;!Íå!9^#VÕÍ‘$ÑÑë! s!ÿÿÍ4 Êb!É!åÍš2ÍÇ2! ^ÕÍ%/ë!9ùá!úÿ"!ÉÍsrºwïa*„!ë! s!ë! s#r!ë`is#r! s#r! s#r`iÉÍõ ! 9N#F`i~·Ê!å`i#DM+^ÕÍQÑÑÿÿÍ4 Ê!ÿÿÉÃÛ!å! åÍQÑÑÉÍõ ! 9N#F`i~·ÊM!9^#VÕ`i#DM+^ÕÍQÑÑÿÿÍ4 ÊJ!ÿÿÉÃ!ÉÍõ ! 9N#F!9^#VÕÝá!PYÍä DM`i Í4 Ê”Ýå! åÍ)ÑÑÿÿÍ4 Ê”!ÿÿÉÝåÅÍ)ÑÑÉÍõ ! 9^#VÕÍåÑDMÿÿÍ4 ÂÑ! 9^#VÕÍåÑåÝáÿÿÍ4 ÊÕ!ÿÿÉÝåáëÍ8PYÍÉÍõ ! 9N#F! ^#VÕ`i^#Vá͚ʩ! ^!Íä Ê!ÿÿÉ!ûÿå`iÑån&Íä ëás`i~#¶Â?ÅͦÑ! ^#VÕ! ^#VÕ! ^ÕÍ)ÑÑÑåÝáëÍT Ê‘Ýåá|µÂx!Ã{!å`iÑån&Íëás!ÿÿÉ! ^#V`is#rÝåáë! s#r`iå~#fo#ëás#rë+^!ÿÍä ÉÍõ !#å!9^#VÕÍ)ÑÑÉÍõ ! 9N#F!9^#VÕÅÍ)ÑÑëÍn Ê!ÿÿÉ!9^#VÕ`ië͵åÍ)ÑÑëÍn Ê&!ÿÿÉ`iÉÍõ !9N#F! ^#VÕ`i^#VáÍšÊ^! 9^#V!ÿÍä åÅÍ_ÑÑÉ! 9^#VÕ`iå~#fo#ëás#rë+Ñs!ÿÍä ÉÍõ !ÿÿå!9^#VÕÍ_ÑÑÉÍõ ! DM`i†ëͨÊ¿`i DMõÿåÍÀÑßÉÍõ þÿ!9N#F!ë!9s#r`i~·ÊM! ^!Íä Ê!ÿÿåÅÍ_ÑÑë!9s#r! ^ÕÍô%Ñë!9å~#foÍëás#r! ^!Íä ÊM*†å! ^#VëÑs#r! ^#Vë"†!ë! s!9^#VëÉÍõ ! 9N#F! ^!Íä ÊÉ! ^#VÕ`i^#VáÍHåÝáÝå! ^#VÕ! ^ÕÍS,ÑÑÑÿÿÍ4 ÊÉ!å`iÑån&Íëás!ÿÿÉ!9^#V!ÿÿÍ4 Ê!ûÿå`iÑån&Íä ëás!ë`is#r! s#r!É`i~#¶ÂÅͦÑ! ^#V!Í4 ÊL!å!9å! ^ÕÍS,ÑÑÑÿÿÍ4 °!9^#VëÉ! ^#V`is#r! ^#VÕ! ^#Váë! s#r!å`iÑån&Íëás!9^#VÕ`iå~#fo#ëás#rë+Ñs!ÿÍä ÉÍõ þÿ!9N#F! ^#V!Í4 ÊÑ`ië! s#rÉ*†|µÊñ*†ë!9s#r*†^#Vë"†Ã! ^#VÕÍBÑë!9s#rz³Â!ë! s#rÃÂ!å`iÑån&Íëás!9^#V! s#rÉÐÍõ ! 9^#Vë###ë͵#åýá*@åÝá|µÂz!<åÝá"@"<!">ÝnÝfDMÑ`iåÝá`i^#VBK! ^#VýåáÍšÊû! ^#VýåáÍ4 Ê¿`i^#VÝsÝrÃîýå`i##Ñå~#foëÍHëás#r! ^#Vë))PYDMýåáë! s#rÝåá"@`iÉ`ië*@Í4 ÊýåÍÑDM|µÂ!ÉÃ…ÉÍõ ! 9^#Vë))åÍ=6ÑDMÿÿÍ4 Ê?!É`iåÝá! 9^#VÝsÝrÝåáåÍaÑ*@ÉÍõ ! 9^#V!üÿDM*@åÝáÃ…ÝnÝfåÝá`iÝåÑëͩʢÝnÝfå`iÑëͨÂÔÝnÝfåÝåáÑëÍšÊÑ`iÝåÑëÍ©ÂÔÝnÝfå`iÑëͨÂÔÃ|ÝnÝfå! ^#Vë))PYÑÍ4 ÊÝnÝf##^#VÕ`i##Ñå~#foëás#rÝnÝf^#V`is#rÃ(ÝnÝfë`is#rÝnÝf))ÝåÑPYÍ4 Êc! ^#VÕÝåá##Ñå~#foëás#r`i^#VÝsÝrÃk`iÝuÝtÝåá"@É —"0123456789abcdefÍõ ! 9^#Vë"x!9å!9^#VÕ!¼åÍÚÑÑÑ!å*xÑsÉÍõ ! 9^#VÕ*x#"x+Ñs!ÿÍä ÉÍõ ¾ÿ!N9N#F!P9^#VÕÝáÝåá#åÝá+^Õýáz³Êìýåá%Í4 Êá!ë!9s!ë!D9s#r! ë!B9s#r!ÿë!@9s#rÝn&åýá-Í4 Êc!ë!D9s#rÝåá#åÝá+^Õýáýåá0Í4 Êz!0ë!B9s#r!ë!>9s#rÝåá#åÝá+^Õýá!0ÍS ÊÉýåá9ëÍT ÊÉ!>9^#V! Íì ýåÑÐÿë!>9s#rÃ…ýåá.Í4 Ê$!ë!@9s#rÝåá#åÝá+^Õýá!0ÍS Ê$ýåá9ëÍT Ê$!@9^#V! Íì ýåÑÐÿë!@9s#rÃàýåálÍ4 ÊdÝåá#åÝá+^Õýá!:9å!T9å~#foëás#rëüÿÍ¡2áÍ´2ÃýåádÍ4 Ê–!:9å!T9å~#fo##ëás#rë++^#VëÍ6áÍ´2ÃýåáeÍ4 ºýåáfÍ4 ºýåágÍ4 Êà!9å!T9å~#foëás#rëøÿÍ,6áÍ,6Ã!:9å!T9å~#fo##ëás#rë++^#VëÍ6áÍ´2ýåáí!9å!å!>9Í¡2ÍÇ2ÍOë!9ù!49s#rÃÔ!:9Í¡2ÍŒ2ÍÙ5Ê‚!9å! å!>9Í¡2Í3ÍÇ2Ííë!9ù!49s#r!-å!69å~#fo+ëás#rëÑsÃ¥!9å! å!>9Í¡2ÍÇ2Ííë!9ù!49s#rÃÔ!9å! å!>9Í¡2ÍÇ2ÍOë!9ù!49s#rÃÔ!9å!å!>9Í¡2ÍÇ2ÍOë!9ù!49s#rÃÔ!:9Í¡2Í$6ë!49s#rÕÍ©1Ñë!89s#rÃìýåáeÍ4 Ê(!Ã+!å!B9^#V!ÿÍ4 ÊB!ÃJ!B9^#Vëå!9å! 9Í,6Í,6Í,6ë!9ù! 9ë!49s#rÕÍ©1Ñë!89s#r!Èë!@9s#rÃì!:9Í¡2Í$6åýáýåáå!9ë!69s#rëÑsÃÔÍso d/u¨xÎsôefcŠ—!9ë!49~#foÍHë!89s#r!89^#V!@9~#foÍo Ê!@9^#V!89s#r!D9~#¶ÊJ!>9å~#fo+ëás#rë#ë!89~#foÍo ÊJ!B9^#VÕ`iÍô ÑÃ!ë!69s#rÃg!69å~#fo#ëás#r!49^#Vë~·Ê§!69^#V!@9~#foÍn ʧ!49å~#fo#ëás#rë+^Õ`iÍô ÑÃX!D9~#¶ÂÞ!>9å~#fo+ëás#rë#ë!89~#foÍo ÊÞ! å`iÍô ÑñÃéýå`iÍô ÑÃðÉÍõ !9N#F!9^#VÕÝá`iÍ6ÍÇ2!9Í¡2Íß2͇4Í$6z^ÕÝåá+åÝáÑs! 9å`iÍ6Íó2áåÍ¡2ÍM4áÍ´2Í3ÂÝåáÉÍõ !9N#F!9^#VÕÝá! 9Í¡2ÍŒ2ÍÙ5Ê! 9Í¡2Í$6Íä åýá! 9å!9Í¡2ÍŒ2Í4ÍŒ2ÿÿÿ͉3áÍ´2`iëÍÍ6ÍÇ2!9Í¡2Íß2͇4Í$6)ýåÑz^ÕÝåá+åÝáÑs! 9å`iëÍÍ6Íó2áåÍ¡2ÍM4áÍ´2ÝåÅ!9Í¡2ÍÇ2Ííë!9ùëÉ*ùÍÅ ÍÃ$ÍÝÍ8ëÉÍÝ*Þ DM*à ëÍëo&ÉÍÝÍVo&ÉÍÝ*Þ ë*+++ë*à DM*â ëéÅ!9N#F#^#Vkb6#> 6 #=Â�>6#=Šë þ: >½ æþAÚ÷þ[Ò®Ö@úþaÚ÷þ{Ò÷Ö`w# þ.ÊØ·ÊñÊÀÍþw#ÃÁ{…o|Îg ·ÊñÍþw#Ââ!¯ÁÉ!ÿÿ|·ÁÉþaØþ{ÐÖ ÉRÂßI2‹@÷IþCÂíI2Œ@2‰@÷IþMÂøI2‘@÷IþIÂJ2ˆ@÷IþXÂJ>ÿ2�@÷IþZÂJ¯2ˆ@÷IþP7À:Š@<2Š@÷IåÍ×Jþ[ÒHJþ0ÚHJþAÒDJþ:ÒHJÃ-JOÑÉÅÕ!€~6·GÊzJ#~þ ÂcJÃUJHFx+#ÊtJ~ÃiJ2Ž@ÚJ¯2Ž@:…@·Â�JÍK>*ÍîJ GFÍÍõ !å!�å!C åÍ1ÑÑÑ!å:€o&Íä C Ñs!ª"" !C DM!"à *à ëÍn Ê—"`i^! Í4 Â,!`i^! Í4 Ê4!`i#DMÃ!`i^z³Ê—"`i^!>Í4 ÊU!!åýáÃi!`i^!<Í4 ÊH"!åýá`i#DM^! Í4 ˆ!`i^! Í4 Ê‹!Ãi!`iåÝá`i#DM~·ÊÈ!`i^! Í4 ¶!`i^! Í4 ÊÅ!!å`i#DM+ÑsÃÈ!Ã�!ýåÍô%Ñýåá|µÊç!!¶åÝåÍq$ÑÑåýáÃõ!!åÝåÍ‘$ÑÑåýáýåáÿÿÍ4 ÊE"!«"å!€åÍ„1ÑÑÝå!€åÍï1ÑÑ!Í"å!€åÍï1ÑÑ!€åÍ©1Ñå!€å!åÍS,ÑÑÑ! åÍÏ"ÑÔ"`iå*à #"à +) Ñs#r`i#DM~·Ê”"`i^! Í4 ‚"`i^! Í4 Ê‘"!å`i#DM+ÑsÔ"Ã\"Ã!! å*à åÍBÑÑåÍÏ"ÑÉCan't open file for redirection: Íõ Í•! 9~#¶Êé"!í"åÍé0ÑÍ$ÉA:$$$.SUBÍõ !ýÿ"!ÿÿÉÍõ !Éõ:‹@·Ê°H:“@·úíJãåÕ*AA|=ÌÒL#"AABAÑñÉ:Õ@<ÊKú�MåÕ*ED|þÌ%M#"EDFDÑÃKGõÕÅÍÕ@ÍÁÑ=ÊNM!€ëñ=Â*M!>ÃJMñåÕÅõæ_!’@þ ÒsMÖ ÊqM<ÊqM~=wþ ˆM> ÍvL~æÂzMËMÍñÁÑáÉåÕÅÍÁþ7È·É!ÁMÍÌFÑÆ@þ@²M> ÍîJ!ÇMÍÌFÍKÃDISK FULLcon:CON:lst:LST:prn:PRN:pun:PUN:rdr:RDR:Íõ !9^#VÕ!å!9^#VÕÍ‘$ÑÑÑÉÍõ üÿ!âåÝá!ë!9s#rÃÃ$ÝåáåÝá!9å~#fo#ëás#r!9^#V! Ín Êå$ÝnÝf÷"Í4 Âï$ê$!øÿ"!ÿÿÉ! DMÃÿ$`iDM`i~#¶Ê %!9^#VÕ`i^#VÕÍK1ÑÑÊ %Ã÷$! ^#VÕýá!9^#V!Íä #ë!9s#r!9^#V!Íä Êg%ýn&Ýu|µÂg%!öÿ"!ÿÿÉ!9^#V!Íä ÊŽ%ýn&Ýu|µÂŽ%!öÿ"!ÿÿÉ! ^#VÝsÝrýn&Ýuýn&Ýu!ú'ÝuÝtÅÝå!9^#VÕ!9^#VÕ!9^#VÕýnýfÍô ë! 9ù!Ín Êë%!ÿÿÉ!9^#VëÉÍõ ! 9^#V!Ín Â&! 9^#V! Ío Ê#&!ýÿ"!ÿÿÉ! 9^#Vë)))âDM! ^#VÕ! ^#VëÍô Ñë! 9s#r!ë! s! s! s`is!÷"ë! s#r! 9^#VëÉÍõ !#DMÃ�&`i&DM`i?$ëͨʪ&!% ^z³Ê´&Ç&!ùÿ"!ÿÿÉÅ!9^#VÕÍnÑÑÊÏ&!úÿ"!ÿÿÉ!9^#V!Íä Êé&Å!åÍ5ÑÑÅ!åÍ5ÑÑÿÍ4 Ê,'!9^#V!Íä Ê'Å!åÍ5ÑÑÿÍ4 Ê)'!ÿÿ"!ÿÿÉÃL'!9^#V!Íä Í4 ÊL'!ûÿ"!ÿÿÉ!ë!! s#r!# s!$ s`iå!9^#V!Ñs#r!9^#V!Íä #ë!% s!Íä ʦ'!×'å!9^#V!Ñs#rù'!½'å!9^#V!Ñs#r!ÉÍõ !å!9^#V!%Ñs!ÉÍõ ! 9N#FÅ!åÍ5ÑÑ!ë!% s!ÉÍõ !É÷"})+ø+À"‘Q.13À"€‘Q.14À"�‘Q.15µSÀa-‘QINIT_AR_T Àa€‘QEXP_WILD_@�I‘QFCBINIT_@�Ï‘QBDOS_@�»‘QCLEAR_æR@�ß‘Q.NEÀ!!‘Q.16 Àaf‘QMAKE_NAM_À!Å‘Q.17À!!‘Q.18Àa¾‘QSORT_À þÿ‘Q.19ØRÀ!Q‘Q.21Íõ ! 9^#V!Ín Â4)! 9^#V! Ío Ê>)!ýÿ"!ÿÿÉ! 9^#Vë)))âDM!9^#VÕ!9^#VÕ! ^#VÕ`i^ë)(^#VëÍô ÑÑÑÉÍõ üÿ!DM!9^#VÕÝáÝåá$~·ÊÝ)Ýn$&å!€ÑëÍHDMë!9~#foÍ©ÊÅ)!9^#VBKÅ!9^#VÕÝåÍ”*ÑÑÑÊÝ)!ÿÿÉ!9^#V`iÍHë͵ë!9s#rz³ÊB*!9^#VÕ!9^#V`iåÝå͘0ÑÑÑë!9s#rz³ÊB*!9^#V!9~#foÍHëÍ8PYÉ!9^#V!Í8PYDM`ië!9~#foͨÊ‹*!9^#V`iÍHå!9^#V`iåÝåÍ”*ÑÑÑÊ‹*`iÉ!9^#VëÉÍõ ! 9N#F!€å!åÍ5ÑÑÅ!!åÍ5ÑÑ"|µÊÃ*!ÿÿÉ!9^#VÕ!$ ^!€å!9^#VÕÍ1ÑÑÑ!$ ^!9~#foÍä ë!$ sz³Â+`i!å~#fo#ëás#r!ÉÍõ : (o&|µÂ£+!ÿ}2 (!}2 (}2 (! (å! åÍ5ÑÑ! å!åÍ5ÑÑ: (o&Í4 Êq+!}2 (!É! å: (o&#}2 ( (#Ñs! å: (o&#}2 ( (#Ñs!" ): (o&DMë!9~#foÍo ÊÃ+!9^#VBKÅ* ) (å!9^#VÕÍ1ÑÑÑ`ië* )" )`ië: (o&ëÍH}2 (`iÉÍõ !9N#F!åÝáÃ,Ýåá#åÝáÝåáë!9~#foÍn ÊG,! 9^#VÕÍ5Ñå`i#DM+Ñs!Í4 ÂG,à ,ÝåáÉ÷"Ã,ª.ª.Íõ ! 9^#V!Ín Âx,! 9^#V! Ío Ê‚,!ýÿ"!ÿÿÉ! 9^#Vë)))âDM!9^#VÕ!9^#VÕ! ^#VÕ! ^ë)K,^#VëÍô ÑÑÑÉÍõ üÿ!DM!9^#VÕÝáÝåá$~·Ê#-Ýn$&å!€ÑëÍHDMë!9~#foÍ©Ê -!9^#VBKÅ!9^#VÕÝåÍÚ-ÑÑÑÊ#-!ÿÿÉ!9^#V`iÍHë͵ë!9s#rz³Êˆ-!9^#VÕ!9^#V`iåÝåÍ 0ÑÑÑë!9s#rz³Êˆ-!9^#V!9~#foÍHëÍ8PYÉ!9^#V!Í8PYDM`ië!9~#foͨÊÑ-!9^#V`iÍHå!9^#V`iåÝåÍÚ-ÑÑÑÊÑ-`iÉ!9^#VëÉÍõ ! 9N#F!€å!åÍ5ÑÑÅ!!åÍ5ÑÑ"Í4 Â.*Í4 Ê0.!"!å!€å!€åÍ/1ÑÑÑÃ<.*|µÊ<.!ÿÿÉ!9^#VÕ!9^#VÕ!$ ^!€åÍ1ÑÑÑÅ!"åÍ5ÑÑ"|µÊt.!ÿÿÉ!$ ^!9~#foÍä ë!$ sz³Â¦.`i!å~#fo#ëás#r!ÉÍõ þÿ!9N#F!åÝáÃÆ.Ýåá#åÝáÝåáë!9~#foÍn Ê!/`i#DM+^!9s#r!9^#V! Í4 Ê /! å!9^#VÕÍ5ÑÑ!9^#VÕ!9^#VÕÍ5ÑÑÿ.ÝåáÉÍõ ! 9^#V!Ín Âa/! 9^#V! Ío Âa/! 9^#Vë)))å^z³Âo/!ýÿ"Íš2ÿÿÿÿÉ! 9^#Vë)))è^#VBK!9^#VëÃ0Å!åÍ5ÑÑÿÍ4 ʯ/!ýÿ"Íš2ÿÿÿÿÉÅ!#åÍ5ÑÑ!ë!$ s!9å!! ^#VëÍ6ÍŒ2ÍÖ3ÍÇ2!$ ^ëÍ6Íß2Í]3Íó2áåÍ¡2Í]3áÍ´2Ã#0!úÿ"Íš2ÿÿÿÿÉÍsŽ/Â/ÿ/0!ë!# s!9Í¡2ÍŒ2ÍÙ5Ê^0!ë!! s#r!$ s!úÿ"Íš2ÿÿÿÿÉ!9Í¡2Í$6Íä ë!$ s!9Í¡2ÍŒ2Í4Í$6ë!! s#r!9Í¡2ÉÍÝ!Ã¥0ÍÝ"Å*à ë!€"à ÍÁÅ*Þ ëÍ·ÂÞ0*Þ !4ÂÐ0#4*â +"â }´Â¦0ÁÉo&"Á*â ÉÍõ Üÿ!9å!29^#VÕÍnÑÑ!9å!åÍ5ÑÑÉÅ! 9F+N+V+^+~+ngx±Ê-1w# à 1ÁÉÅ!9^#V#N#F#nëx±ÊI1s# Ã>1ÁÉ!9Åÿ^#V#~#fox±Êo1¾Ât1·Êo1# Ã[1Á!ÉÁÚ~1!}´É!ÿÿ}´É!9Åÿ^#VÕ#~#fox±Ê¦1~·Ê¦1# Õ1áÁÉ!9~#fo¯¾Ê¾1#õ1ë}´É!9Å^#VÕ#^#V#N#FëÑÃ[1!9Å^#VÕÕ#^#V#N#FëÑÕ1Åÿ!9^#VÕ#~#foëx±Ê¦1~·Ê2# Ã2ëÕ1!9Å^#VÕÕ#^#V#N#Fá¯Ã2Å!9^#V#në~·ÊC2»ÊI2#Ã62!¯ÁÉ|µÁÉÅ!9^#V#n믾Êe2#Ã\2x±ÊC2 +~»Âe2ÃI2ÊK\Íõ8ÃN\Ãh\Ö\!ñ^åÍffÑÊÑ!åëë*>Ã¥2Ñ!åëë*<w#w#w#wÉë*<~#~#~#~Éá"t2*<V+^+ÕV+^Õ*t2éá"t2*>Ñs#r#Ñs#r*t2é*>ë*<">ë"<É*<¯>žw#Â3É*<~·ÂÓ5#Â3ÃÈ5¯=Áɯ<ÁÉÅ*<ë*>###·úF3®ú(3ÃJ3®ú$3¾Ú$3Â(3+ÂL3¯ÁÉÅ*<ë*>¯Ž#Âh3ÁÉÅ*<ë*>¯ž#Â~3ÁÉÅ*<ë*>¦#“3ÁÉÅ*<ë*>¶#¨3ÁÉÅ*<ë*>®#½3ÁÉ*<~/w#ÂÍ3É*>~æ?ÈÅG*<^#V#~#fo)ë)ëÒò3#Âê3DM*<s#r#q#pÁÉ*>~æ?ÈW*<###~·ú)4å·~w+Â4áÂ4Éå7~w+Â-4áÂ)4ÉÕ~#Â>4áO·ðÃ3Å*<€2Í;4y2~2*>ˆ2Í;4:~2©2~2ͺ4€2*<w#Âv4Á:~2·ú3ÉÅ*<€2Í;4y2~2*>ˆ2Í;4ͺ4„2*<w#©4Á:~2·ú3É!„2¯w#ÂÀ4> 22!€2·~�w#ÂÑ4ŸæO„2!ˆ2·ž#Âæ4yÞÂ5!€24!25ÂË4É!25Ê35!€2·~�w#Â5ŸO„2!ˆ2·Ž#Â!5yÎÂ5Ãõ4„2!ˆ2·Ž#Â<5ÉÅ*>ˆ2~#ÂO5*<„2~#Â_5!€2¯w#Âm5> 22!€2·~�w#Â~5Ò©5€2!ˆ2·Ž#Â’5ÎÒ©5Â�5!25Âx5*<€2w#¸5ÁÉÍ,3ÊÓ5!¯ÉÍ,3ÊÈ5!¯<ÉÍ,3úÓ5ÃÈ5Í,3úÓ5ÊÓ5ÃÈ5Í,3úÈ5ÃÓ5Í,3úÈ5ÊÈ5ÃÓ5ë*<s#r#6#6Éë*<s#r#z·ò 66ÿ#6ÿÉ*<^#VëÉÉx6ü!Í@6#|µÈ+É!9^#V*-6ëÚb6*/69}“|šÚb6*-6ë"-6ë|µÉ¯=goÉ!9~#f/o|/g#"/6É,3úÈ5ÊÈ5This .LBR file contains source and object for a paginated file lister written in Aztec C (PR22.*). It also contains source for auxiliary routines which expand ambiguous CP/M file specs, which file specs may be provided as command line arguments. The output for PR.COM may be redirected to a file, or to the LST: device for printing. The command line option '-t' will suppress headings. Please send any comments to harvard!edwards on Usenet, or edwards@harvard.ARPA on Arpanet. Bill Edwardss#define TRUE 1 #define FALSE 0 #define LESS -1 #define EQUAL 0 #define MORE 1 #define MASK 0x007f #define SING '.' #define PLUR '*' #define NEWL '\n' #define LF 10 #define ESC 92 #define SPACE 32 #define MAXLEN 80 #define conv(c) isupper(*c) ? tolower((int)*c) : (int) *c #define equal(a,b) ((a == b) && (b != LF)) #define isalpha(c) (isupper(c) || islower(c)) #define iscntrl(c) (c < SPACE || c == 127) #define isascii(c) (c >= 0 && c <= 127) typedef int BOOL; per(c) || islower(c)) #defiThis .LBR file contains source and object for a paginated file lister written in Aztec C for CP/M-80. (PR22.*). It also contains source for auxiliary routines which expand ambiguous CP/M file specs, which file specs may be provided as command line arguments to PR22. The output for PR.COM may be redirected to a file, or to the LST: device for printing. The command line option '-t' will suppress headings. Please send any comments to harvard!edwards on Usenet, or edwards@harvard.ARPA on Arpanet, or post them to this BBS. Bill Edwards any comments to harvard!edwards on Usenet, or edwards@harvard.ARPA on Arpanetcii -m -DAZTEC -z3000 b:pr22.c m80 =b:pr22.asm cii -m -DAZTEC -z3000 b:echo.c m80 =b:echo.asm l80 b:pr22,b:pr22/n/y,b:echo/s,softlibc/s/e b: era pr22.asm era echo.asm  cii -m -DAZTEC -z3000 b:echo.c m80 =b:echo.asm l80 b:pr22,b:pr22/n/y,b:echo/s