mAN C AN COM$$xgASM VMNR&C80 ZEXHCAT COMx%GDISCAT MNUI `yFILTW COMUIIF12 COMc&PCC C u˻PCC COM_qT3 MNUsTXTTOWS COM 2 VFILER CMDWC C #'DWC COM,& /* an.c (asm_neat) -- converts assembly language source to uniform appearance. three options are available from the menu: a - convert comments to all lower case, code to all upper. b - convert comments and code to upper case c - convert code to upper case, comments remain unchanged. note: characters within a single or double quoted string remain unchanged, if in code (label, mnemonic, or operand) area of source. usage: >an oldfile newfile 06/07/86 made menu easier to understand. frank gaude' 08/10/83 added three function options from menu. added error trapping for usage. frank gaude' 12/23/82 original program (aspretty.c) written by william meyer. assembly language version (neat.asm) written by joe wright (05/21/83) then enchanced by irv hoff (05/27/83) into three 'neat' programs. compiles with c/80 from software toolworks or manx aztec c ii controlled by the define below. */ #define C/80 /* define as C/80 or AZTEC compiler here */ #ifdef C/80 #include "tprintf.c" /* special short "printf" function */ #define NULL 0 #define EOF -1 #endif #ifdef AZTEC #include "stdio.h" #endif main(argc,argv) int argc; char **argv; { static int byte, comment, cu, f1, f2, lc, onequote, twoquote, uc; register int c; if (argc != 3) /* test for correct number of auguments */ { printf("usage: >an "); exit(1); } if ((f1 = fopen(argv[1],"r")) == NULL) /* open file 1 */ { printf("Unable to find/open/read %s\n", argv[1]); exit(1); } if ((f2 = fopen(argv[2],"w")) == NULL) /* open file 2 */ { printf("Unable to write to %s\n", argv[2]); exit(1); } byte = lc = uc = cu = 0; agn: cls(); printf("\n\t AN -- AsmNeat Program Menu\n\n"); printf("\t For desired function, enter character then \n\n"); printf("\t Conversion: A - Comments to lower case, code to upper\n"); printf("\t B - Comments and code to upper case\n"); printf("\t C - Code to upper case, comments unchanged\n"); printf("\t - Exit to Z-System\n\n"); printf("\t Choice: "); if ((byte = getresp()) == EOF) exit(0); switch(byte) { case 'a': lc = 1; break; case 'b': uc = 1; break; case 'c': cu = 1; break; default : goto agn; } printf("\n---> Converting Assembly Source File -- "); comment = onequote = twoquote = 0; /* initialize */ while ((c = getc(f1)) != EOF) { switch (c) { case ';' : comment = 1; break; case '\n': comment = onequote = twoquote = 0; break; case '"' : twoquote = ~twoquote; /* toggle */ break; case '\'': onequote = ~onequote; break; default : break; } if ((onequote != 0 || twoquote != 0) & (comment == 0)) putc(c,f2); else if ((comment == 1) & (cu == 1)) putc(c,f2); else if ((comment == 0) | (comment == 1 && uc == 1)) putc(toupper(c),f2); else if ((comment == 1) | (lc == 1)) putc(tolower(c),f2); } fclose(f1); fclose(f2); printf("done\n"); /* go home msg */ exit(0); } cls() /* clear screen function */ { static int i; for (i = 0; i < 25; i++) printf("\n"); } getresp() /* get nonwhite space character from keyboard input */ { static int byte; for (;;) { if ((byte = getchar()) == EOF) break; else if ((byte != ' ') && (byte != '\t') && (byte != '\n')) break; } return(tolower(byte)); } #ifdef C/80 #include "stdlib.c" /* must be at end of source file for inclusion */ #endif } return(tolower(byte)); } #ifdef C/80 #include "stdlib.c" /* must be at end of source file for inclusion */ *+%"H%"F%"D " " "y 6"C+6+!^6 F+N+<!* !!9~#ʗ RO"k'k +}|+#~ʂu6#~#<ʷ>!4R6#6*! * |ʴ!ͯ"r! ͯ" R Can't open > or < file.$èw*6 )! 9!"6*:B<*C 2B ́F  €> _*C~+#4N s> > !+:EºF2B_~ý   > G ʘG!* ͟> !+}  > _con:rdr:pun:lst: ==_~O7 !"# !  #¾i& ~º!h~#~#F6%pw6237!9Ly=S>wD<!gs 6#6 ~+|s#r{{ ڟ!+#^{!!Pw#w!g~<6 !|~r!N!nL}*eyb>w#%!=)${=Sbtx h&{ !~!nN#F{p+pH#x¯ ڽ+!9~ !~b!5> 6> *e w`i#Q᯾%,!$|!!9n&:ʟɯ2>[!9L):|!PwL#4!^w>2>2-:Ecx:-O”! DMi:- !Write error - Disk full $`i7.!9~=+SV+^+F+N "I> w+ w w##w w #~+:&~##K@~#.7K&*I++Kw#=a O! ~_#V!$r+sbk#|}o|g}o|g}o|g|!,|}!­­,ɯ|ʙ!|}!-z{!,zz{!-|!|g|}! -ɵz{!-||g}o).{ozg+|/g}/o~og~#fos#rN#F#xr~#~#[[`iDM!z>‚S\))Ҋ =‚ɯßz>|>MD!x<³z>ڸjS\>))#  =¸>>:!9"*++"Lt !9* ! *++"LL *++"L}2:G*++"L͆ *++"L"**++"L͟ !!9L͆ !9F}2!9L"ͻ !9L"!!9L͆ *F͓ *F͓͓ *#"+F û :G; !9FK *#"+!9F}*6K !9F:G͟K K Y  ! *#"+F|] !"*F0~ *F9͓ʥ * s*#"+F"c ! }2! ""!"*#"+Fa !"!9L ~ !0}2!"!9L ~ !0}2!"!9L ~ !9L ~ !9LF|S !9L#Q+F *+"% ! ͵ ~ ~ Y d u o x c% sͻ !9L ʠ !9L0ï !9LA *+" :G õ * !9L" *+"#*| * .|g| *+"#* >" !"** / * ͓S ͵ *|H !- * ͂ *ͯm * !(Ñ *ͯʇ * ! ͏Ñ * !( *ͯʱ * ! ͏ü *+* ͉͂ " * !9L+++| !;!ͨ!9L##L!Zͯ" ͯ@ !\!9L##L!ͨ!9LL!yͯ" ͯʄ !{!9LL!ͨ!" " " " ͖!!!!8!n!!" #ͯ !ͨ* !" 3!" 3!" 3Ó 3Y abc!!" " " * " #͓l* Ø!" ð!" " " ð* ?" ð* ?" ðððYb;k z"'Ò* ͓¿* ͓͓* ͉ͯ|* * ͟i* +ͯ* +͉ͯ|* * ͟i* ͯ* +ͯ * +͓ͯu|@* (* ͟i* +ͯ* +ͯu|i* * ͟J* * !!ͨ" !"*ö*#"+Ü!wë9"#ͯ  *͓*͓͓*͓͓  *!9n&}A[ o!9n&}a{ ousage: >an rUnable to find/open/read %s wUnable to write to %s AN -- AsmNeat Program Menu For desired function, enter character then Conversion: A - Comments to lower case, code to upper B - Comments and code to upper case C - Code to upper case, comments unchanged - Exit to Z-System Choice: ---> Converting Assembly Source File -- done ; ;The Software Toolworks C/80 Compiler and Assembler -- 09/10/83 ; pcc $1.c c $1 as $1 era $1.bak era $1.asm  -dxp # DISCAT Menu SubSystem 1 -- MASTER Catalog Functions -- -- WORKING Catalog Functions -- F - Free Space Scan 1 - Update WORKING Catalog M - Merge WORKING Catalog into 2 - Delete WORKING Catalog MASTER Catalog 3 - Cleanup WORKING Files P - Printer Scan of MASTER Catalog S - Scan MASTER Catalog U - Update MASTER Catalog V - Verify MASTER Catalog -- General Catalog Functions -- -- Miscellaneous Functions -- B - Backup the MASTER Catalog W - VFILER C - Create a New Catalog File X - Dir E - Erase Files from Catalog File N - Place a Name on a Disk Z - ZCPR3 Cmd R - Remove Disk from Catalog # f!catfree "Names of Disks ( for all) -- " m!catmerge working p catscan "Input Files and Disks to Scan For and Print ( for all) -- " /p s!catscan "Input Files and Disks to Scan For ( for all) -- " u catupd /r v!catcheck master b ac backup:=master.cat c catmake "Name of Catalog File to Create (e.g., demo.cat) -- " e caterase "Name of Files to Erase (e.g., *.asm) -- " n catname BACKUP:"Name of Disk -- " r catrmdsk "Name of Disk to Remove -- " 1 catupd /wr 2 era working.cat 3 era *.bak;era working.cat w vfiler x!xd /ogoh z!"$d$u:$c>" ##  of Disk to Remove -- " 1 catupd /wr 2 era working.cat 3 era *.bak;era working.cat w vfiler x!xd /ogoh z!"$d$u:$c>" ##!9"1 FILTW - Wordstar file filter - 04/14/84 copyright (c) 1984 by Irvin M. Hoff :] C  To use: B>FILTW A:HELLO.TXT 1) B>FILTW HELLO.TXT A:NAME.NEW 2) 1) uses original name for new file, original now named .BAK 2) original file stays intact, new file has new name$:m Y!\c +d!lc+2|2\<  ++ SOURCE FILE NOT FOUND ++$**}| !"*{z*c*"í  DISK FULL: OUTPUT$!"**#"ɯ2o2!@"!"cc ͘>2_:<20P>2A*#">  222  ʸ _*#" r*#"> …*#"> ˜*#">-*#": *#"*#"*#"> ͘2> 2͘,¤h*}">͘c<' ' CANNOT CLOSE OUTPUT$*A input lines read *A output lines with: *A tab characters retained *A high-order bits zeroed *A CTL-characters deleted *A dot commands removed *A form feeds retained *A soft hyphens fixed *A space breaks fixed *A orphan line feeds :l$!\+!]+!\ +!]t+c*}">͘c<  CANNOT CLOSE OUTPUT$c  *~4#~~#+_ J |A{04 $$$ BAK BAK @ Z3ENV* o9T oF |EMEREXINNUATCLWH\!~#i=<!]m ?`O~?`‚#Ou]/ʑ ʑ2~€l4͂@>F > F ͞IF, Version 1.2 - Conditional Test Syntax: IF condition arguments -or- IF ~condition arguments where a leading "~" negates the effect of the IF Condition Possible IF Conditions are: T Always TRUE F Always FALSE EMPTY T if Files are Empty ERROR T if Error Flag Set EXIST T if Files Exist INPUT T if User Hits T, Y, CR, or SP NULL arg T if No Arg Follows TCAP T if ZCPR3 TCAP Available WHEEL T if Wheel Byte Set reg value T if Register reg = value fcb1=fcb2 T if the Two FCB values are = Only first 2 letters of keywords are required The leading "~" is effective with all conditions except fcb1=fcb2Ao|:m o|/~!|o/)~#fo~|ofʂÆfu>F > F ͢͞ IF True? ) ͪToYo o o|$o\ͦI\<|~#,o$o\ͦI\<|~#,o͚o| w#* ̓ ͓ ̓ ~!muG:\V<=_:i_ :~0ڀ ҀGG=xɯ!~F##~#fo= Å2q gͽ:ɯ22Z y28~2:#:e:e:rѯ28~2: .)#8 ::*K>?^R#?^8#V!4m!#3G~Aڒ@ҿ2#~ [~ ʬ[ھ#•~ ¾PO 'ҿ2=^## =22~!%=_.:,<>ȷ;ɯ~T#[XWyXXXXXO+y70 e?7ɯrr > ͅZ y…~#ŒA~>ͱͱAwA0xo|g~A#~#G+~w GO> F é F F F F F F >^F @F / F 5 *. B O*. U  OG~ʀ w#s ~#ʐ ͣ ʄ +~#ʐ ͣ ” Ð O ! ʷ #­ y  a{_* } $. yO ~6 (˽6 @o&q 8)(/* program 'pcc' (pre-complie checker) scans for open and close brace- pairs of a 'c' source file. indicates if number of open/close braces are equal or not. filename to be checked is a command line argument (e.g., >pcc fn.ft). developed from program written by jack purdum. 08/05/83 frank gaude' 08/12/83 added code to count open and closing comments. made more friendly. mike kelly 09/11/83 cleaned up file listing style. fg */ #include "printf.c" /* for C/80 C environment */ /* set console control sequences edit to your terminal codes */ #define CLS 26 /* clear crt screen code */ #define CURSOR "\033=" /* cursor position lead-in pair */ #define BELL 7 main(argc, argv) int argc; char **argv; { int o_count, c_count; register char last_char; register int c; FILE *f1; putchar(CLS); printf("\n\n PRE-COMPILE CHECKER 1.1\n"); if (argc != 2) { printf("\nUsage >pcc fn.ft%c\n",BELL); exit(1); } if ((f1 = fopen(argv[1], "r")) == NULL) { printf("\nUnable to find/open %s\n", argv[1]); exit(1); } last_char = ' '; o_count = c_count = 0; puts("Opening Braces = Closing Braces = "); while ((c = agetc(f1)) != EOF) { if (last_char == '/' && c == '*') { while (c != '/' && last_char != '*') { last_char = c; c = agetc(f1); } } if (c == '\'') { last_char = c; c = agetc(f1); if (c == '\\') { while (c != '\'') c = agetc(f1); } if (c == '{' || c == '}') c = agetc(f1); } if (c == '"' && last_char != '\'') { c = agetc(f1); while (c != '"') c = agetc(f1); } if (c == '{') { ++o_count; set_cur(4,18,o_count); } if (c == '}') { ++c_count; set_cur(4,40,c_count); } last_char = c; } fclose(f1); if (o_count == c_count) printf("\nBrace pair-count is okay. Starting Pass 2...\n"); else printf("\nBrace pair-count is incorrect. Aborting!\n"); puts("Opening Comments = Closing Comments = "); f1 = fopen(argv[1], "r"); o_count = c_count = 0; last_char = ' '; while ((c = agetc(f1)) != EOF) { if (last_char == '*' && c == '/') { ++c_count; set_cur(6, 44, c_count); } if (last_char == '/' && c == '*') { ++o_count; set_cur(6, 20, o_count); } last_char = c; } fclose(f1); if (o_count == c_count) { printf("\nComment pair-count is okay. Continuing...\n"); exit(0); } else { printf("\nComment pair-count is incorrect. Aborting!\n"); exit(1); } } /* crt cursor-setting function */ set_cur(row, col, num) int row, col, num; { printf("%s%c%c%d", CURSOR, row + 31, col + 31, num); } g function */ set_cur(row, col, num) int row, col, num; { printf("%s%c%c%d", CURSU!R/! !!d!9^#V!ͣG!!d!!!9^#V##^#V!9s#rzŠ!9^#V##^#V!d!! !9s!!9s#r! 9s#r!l !9^#V$ DMͣ/!9^!/͔`i*͔`i/ͣ!9^!*ͣ`i!9s!9^#V$ DM`i'͔`i!9s!9^#V$ DM`i\͔[`i'ͣ[!9^#V$ DM?`i{͔q`i}͔!9^#V$ DM`i"͔!9^!'ͣ!9^#V$ DM`i"ͣ!9^#V$ DMè`i{͔! 9~#fo#s#r! 9^#V!!`i}͔$!9~#fo#s#r!9^#V!(!`i!9sí!9^#V]! 9^#V!9~#fo͔[!!dh!!<d!^l !sl !!9s#r! 9s#r! !9s!!9^#V##^#V!9s#r!9^#V$ DMͣT!9^!*͔ `i/͔ !9~#fo#s#r!9^#V!,!!9^!/͔I`i*͔I! 9~#fo#s#r! 9^#V!!`i!9sò!9^#V]! 9^#V!9~#fo͔ʈ!d!Ý!!d! PRE-COMPILE CHECKER %s 1.1 Usage >pcc fn.ft%c r Unable to find/open %s Opening Braces = Closing Braces = Brace pair-count is okay. Brace pair-count is incorrect.%c Starting pass 2...Opening Comments = Closing Comments = r Comment pair-count is okay. Continuing... Comment pair-count is incorrect. Aborting!%cU!9^#V!9^#V!!9^#V!!A!8d! 9%s%c%c%d=|g}o|/g}/o^#V#DM!99`iT|z2 ,: ,d}}}ž|ʭ!}­|ʞ!}|}|?>o&zo&|}|>o&|o&z2 ,: ,d||/g}/o#z/W{/_DM!>2 ,))%#}o|g= : ,=2 ,}: ,=2 ,}DM!>))\ =T}}/o|/g#}|ʭÞ|g}o{_ʥ||7g}o‹{_ʥ) }}o|gN#F# N#F#z{##^#VBK^#Vz#y####x#~#fo}|>?o&}|>o&{_ʥ|g}o|g}o~# x2!9 ,~#M!Z|7U!R/",!9!9^#V!ͪU! 9^#V",!9!9^#V!ͪU*,!9^#V U!G/DM`i~`i DM/!!9^#V#^!+͔!9^#V^ |& !) !!9^#V͚! s!͔J ! |[ !^ !v!9^#V͚! s!͔ʅ ! |ʖ !Ù !v!9^#V͚! s!͔ !!w(ͤ(! ^%!9 !"/!r wM a !! s!! s#r!`is#r! s#r! s#r`iU! 9^#VBK!G/$ ͣj  ͣj `i#DM+s; !`is͔ʒ `i! 9~#fo͔ʒ !! 9^#VU! 9^#V!9~#fo+s#r! !9^#V$ DMͣ `i#+s`i ͔ ê !u`i͔ ! 9~#fo͔ !! 9^#VU! 9N#F͂ DU `i~#fo+s#r!0 A R R h U! 9N#F`i~ʢ !R/`i#DM+^ ͔ʟ !x !R/! U! 9N#F`i~ !9^#V`i#DM+^ ͔ !ü !U! 9N#F!9^#V!PYDDM`i ͔1 ! ͔1 ! U! 9^#V͂ DM͔n ! 9^#V͂ ͔r !͘PYvU! 9N#F! ^#V`i^#VF ! ^!Dʶ !!`in&Ds`i~# C! ^#V! ^#V! ^ ʹ. | ! !`in&vs!! ^#V`is#r! s#r`i~#fo#s#r+^!DU!]/!9^#V U! 9N#F!9^#V ʞ !!9^#V`i  !`iU!9N#F! ^#V`i^#V ! 9^#V!D! 9^#V`i~#fo#s#r+s!DU!!9^#VU!G/DM`i/\`i DM]<U!9N#F!!9s#r`i~! ^!Dʡ!!9s#r! ^!9~#fovs#r! ^!D*/! ^#Vs#r! ^#V"/!! s!9^#VU! 9N#F! ^!Df! ^#V`i^#Vͨ! ^#V! ^H"͔f!`in&vs!!9^#V!͔ʟ!`in&Ds!`is#r! s#r!`i~#°C! ^#V!͔!!9! ^H"͔M!9^#V! ^#V`is#r! ^#V! ^#V! s#r!`in&vs!9^#V`i~#fo#s#r+s!DU!9N#F! ^#V!͔n`i! s#r*/|ʎ*/!9s#r*/^#V"/õ! ^#V!9s#rzµ!! s#r_!`in&vs!9^#V! s#rU*,|!",",*,DM! 9^#V*,",PY`i",!*,*, X*,*,ͨD! 9s#r! 9^#V*,",`iU! 9^#V",!9!9^#V!ͪ!*,sU! 9^#V*,#",+s!DU!N9N#F!P9^#V#+^zʼ%͔ʱ!!9s!!D9s#r! !B9s#r!!@9s#rn&-͔3!!D9s#r#+^0͔J!0!B9s#r!!>9s#r#+^!0ͳʙ9ʹʙ!>9^#V! L!>9s#rU.͔!!@9s#r#+^!0ͳ9ʹ!@9^#V! L!@9s#rðl͔4#+^!:9!T9~#fos#r~(͑(d͔f!:9!T9~#fo##s#r++^#V+͑(e͔Šf͔Šg͔ʰ!9!T9~#fos#r , ,!:9!T9~#fo##s#r++^#V+͑(}!9!!>9~(ͤ(!9!49s#rä!:9~(i(Ͷ+R!9! !>9~((ͤ(ͽ!9!49s#r!-!69~#fo+s#rsu!9! !>9~(ͤ(ͽ!9!49s#rä!9! !>9~(ͤ(!9!49s#rä!9!!>9~(ͤ(!9!49s#rä!:9~(,!49s#r͞'!89s#rüe͔!!!B9^#V!͔!!B9^#V!9! 9 , , ,!9! 9!49s#r͞'!89s#r!!@9s#rü!:9~(,!9!69s#rsäoduxxsefcZg!9!49~#foͨ!89s#r!89^#V!@9~#fo!@9^#V!89s#r!D9~#!>9~#fo+s#r#!89~#fo!B9^#V`iT!!69s#r7!69~#fo#s#r!49^#V~w!69^#V!@9~#fow!49~#fo#s#r+^`iT(!D9~#®!>9~#fo+s#r#!89~#foʮ! `iTÁù`iTU!9N#F!9^#V`i+ͤ(!9~(ͼ(d*,,^+s! 9`i+(~(**͑((U!9N#F!9^#V! 9~(i(Ͷ+! 9~(,D! 9!9~(i()i(f)͑(`i~+ͤ(!9~(ͼ(d*,),^+s! 9`i~+(~(**͑(!9~(ͤ(ͽ!9*==* ,DM*,o&=&o&=* ,*+++*,DM*,!9N#F#^#Vkb6#> 6 #=Q>6#=Z : > A[~@Êa{`w# .ʨʐw#Ñ{o|g w#²!!|a{ !9^#V*+,!9}|*+,"+,|!U!!!i,'!:o&Di,s!"-,!i,DM!",*,`i^! ͔e`i^! ͔m`i#DMI`i^z`i^!>͔ʎ!â`i^!<͔ʁ!`i#DM^! ͔`i^! ͔â`i`i#DM~`i^! ͔`i^! ͔!`i#DM+s| !z.!͚͔~!!y'!'!!'!͞'!!H"! `i*,#",+)-,s#r`i#DM~`i^! ͔»`i^! ͔!`i#DM+sÕ<!-,*,Can't open file for redirection: U2! 9~#"!&&A:$$$.SUBU!"/!U!con:CON:lst:LST:prn:PRN:pun:PUN:rdr:RDR:U!9^#V!!9^#V͚U!/!!9s#r!9~#fo#s#r!9^#V! nf0͔ó!"/!!00DM`iDM`i~#)!9^#V`i^#V@')! ^#V!9^#V!D#!9s#r!9^#V!Dpn&u|p!"/!!9^#V!Dʗn&u|—!"/!! ^#Vsrn&un&u!ut!9^#V!9^#V!9^#VnfT! 9!!!9^#VU! 9^#V!"! 9^#V! ,!"/!! 9^#V)))/DM! ^#V! ^#VT! 9s#r!! s! s! s`is!0! s#r! 9^#VU!,DMØ`i&DM`i.ʳ!% ^zʽÐ!"/!!9^#V>!"/!!9^#V!D!!͔5!9^#V!D(!͔2!"/!U!9^#V!D͔U!"/!!!! s#r!# s!$ s`i!9^#V!s#r!9^#V!D#!% s!Dʯ!!9^#V!s#r!!9^#V!s#r!U!!9^#V!%s!U! 9N#F!!!% s!U!U! 9^#V!1! 9^#V! ;!"/!! 9^#V)))/DM!9^#V!9^#V! ^#V`i^).^#VTU!DM!9^#V$~n$&!ͨDM!9~#fo !9^#VBK!9^#V͑ !!9^#V`iͨ!9s#rz? !9^#V!9^#V`i͍&!9s#rz? !9^#V!9~#foͨ͘PY!9^#V!͘PYDM`i!9~#foʈ !9^#V`iͨ!9^#V`i͑ ʈ `i!9^#VU! 9N#F!!!!"/| !!9^#V!$ ^!!9^#V'!$ ^!9~#foD!$ sz!`i!~#fo#s#r!U:$.o&| !!}2#.!}2%.}2$.!#.! ! !:%.o&͔n!!}2$.!! :$.o&#}2$.#.#s! :$.o&#}2$.#.#s!"%/:$.o&DM!9~#fo!!9^#VBK*%/#.!9^#V'`i*%/"%/`i:$.o&ͨ}2$.`iU!9N#F!"#!9~#foD"! 9^#V`i#DM+s!͔D" "U! 9^#V!m"! 9^#V! w"!"/!! 9^#V)))/DM!9^#V!9^#V! ^#V! ^)'/^#VTU!DM!9^#V$~#n$&!ͨDM!9~#fo #!9^#VBK!9^#V##!!9^#V`iͨ!9s#rz}#!9^#V!9^#V`i͕&!9s#rz}#!9^#V!9~#foͨ͘PY!9^#V!͘PYDM`i!9~#fo#!9^#V`iͨ!9^#V`i##`i!9^#VU! 9N#F!!!!"/͔ $*/͔%$!"/!!!$'1$*/|1$!!9^#V!9^#V!$ ^!'!""/|i$!!$ ^!9~#foD!$ sz›$`i!~#fo#s#r!U!9N#F!û$#!9~#fo%`i#DM+^!9s#r!9^#V! ͔$! !9^#V!9^#V!9^#Vô$U! 9^#V!V%! 9^#V! V%! 9^#V)))/^zd%!"/w(! 9^#V)))/^#VBK!9^#V&!͔ʤ%!"/w(!#!!$ s!9!! ^#V+i(ͳ)ͤ(!$ ^+ͼ(:)(~(:)͑(&!"/w(%%%%!!# s!9~(i(Ͷ+S&!!! s#r!$ s!"/w(!9~(,D!$ s!9~(i(),!! s#r!9~(=!Ú&="*,!",* ,&* ,!4*,+",}›&o&"/*,U!9!29^#V>!9!! 9F+N+V+^+~+ngx"'w# '!9^#V#N#F#nx>'s# 3'!9^#V#~#foxd'i'd'# P'!s'!}!}!9^#V#~#foxʛ'~ʛ'# Ê'!9~#foʳ'#ê'}!9^#V#^#V#N#FP'!9^#V#^#V#N#FÊ'!9^#V#~#foxʛ'~(# 'Ê'!9^#V#^#V#N#F'!9^#V#n~8(>(#+(!|!9^#V#nZ(#Q(x8( +~Z(>(!*/Â(!*/w#w#w#w*/~#~#~#~"//*/V+^+V+^*//"//*/s#r#s#r*//*/*/"/"/*/>w#(*/~°+#(å+=ɯ<*/*/####))'))))+))*/*/#E)*/*/#[)*/*/#p)*/*/#…)*/*/#š)*/~/w#ª)*/~?G*/^#V#~#fo)))#)DM*/s#r#q#p*/~?W*/###~*~w+))7~w+ **~#*O(*/;/*y29/*/C/*:9/29/͗*;/*/w#S*:9/(*/;/*y29/*/C/*͗*?/*/w#†*:9/(!?/w#*> 2:/!;/~w#®*O?/!C/#*y*!;/4!:/5¨*!:/5+!;/~w#*O?/!C/#*y**?/!C/#+*/C/~#,+*/?/~#<+!;/w#J+> 2:/!;/~w#[+҆+;/!C/#o+҆+z+!:/5U+*/;/w#•+ )ʰ+! )ʥ+!< )+å+ )+ʰ+å+ )+ð+ )+ʥ+ð+*/s#r#6#6*/s#r#z+6#6*/^#V0123456789abcdef00z!!0"$$1/5/???00000000Hr0Mr0R/W/\/a/f/k/p/u/z0-dpx # >>>>> TERM3 COMMUNICATIONS MENU <<<<< =================================================================== 1 - Originate Phone Call (dial from directory) (T3FILER) - 1 2 - Answer Phone & Enter: Conversational Mode (T3ANSWER) - 2 3 -  Terminal Mode (T3ANSWER) - 3 4 -  Computer Command Line (T3ANSWER) - 4 5 -  Message System (T3LOGIN/T3ENVSET) - 5 6 - Communications Control Menu (T3FILER) - 6 C - Communication Set Editor Macro Segment Editor - M T - Telephone Directory Editor User Database Editor - U 7 - Originate Phone Call (for T3DO) (T3TERM) - 7 8 - Scan User Activity Log (T3NOTE) - 8 9 -   - 9 0 - Initialize Modem and Telephone Interface (T3INIT) - 0 ==========================>>> H - HELP <<<========================= System File is $f1 E - Edit System File (LZED) - E S - Set System File (SETFILE) - S V - Invoke VFILER Scan Master Catalog (Discat) - D Z - Enter Command Line # 1 BASE:t3dial /m;if er;BASE:t3filer /t;fi 2 BASE:t3answer;if er;BASE:t3filer /c;fi 3 BASE:t3answer;if er;BASE:t3filer /t;fi 4 BASE:t3answer;if er;BASE:dev c crtmod;fi 5 BASE:t3answer;if er;BASE:login;BASE:t3envset;fi 6 BASE:t3filer /m 7 BASE:t3dial /m;if er;BASE:t3term /t;fi 8 ROOT:vtype TERM3:activity.txt 9 0 BASE:t3init "Enter 1 for 300 bps, 2 for 1200, 3 for 2400: " c TERM3:;edcst;$d$u: m TERM3:;edtmc t3;$d$u: t TERM3:;edtxd;$d$u: u TERM3:;eduser;$d$u: s ROOT:setfile 1 "Enter Name of System File (fn.ft): " BASE:vdo $f1 e ROOT:LZED $f1 v ROOT:vfiler d!CAT:;catscan "Define Search Mask (e.g., *.doc): ";$d$u: h!ROOT:help term3 z!"$d$u:Command>" ## ZED $f1 v ROOT:vfiler d!CAT:;c1 ---------------------------------------- | TXT-TO-WS version 1.10 (c) 1984 ESKAY | | Converts text files to WordStar format | | Released to Public Domain | ---------------------------------------- "\ͤ(" | No file found  z ""*."0*" Now processing ) (%-- unable to open, skipping -- "(.-- fatal error - unable to create file --Bͫ:(0< <L* +" |( *** END OF EXECUTION *** *"22[!"͌0ͫ(2!4[*R *[~ (# ():<2 (82~ 2#| } ɯO2 ++˾##:(8  :(*"[!"͌ Ͷ(.-- fatal error - disk/directory full -- !5 TXTTOWS$TMP"!"͌͌ø**ƀO w#"*#"w ͔͌>͌͌͌Is!O$͔`# P# O͌ʩ>ɯ͌͌͌~#%  K   y yG>GO> x?>.x?x? xxxx x x>^x@xO*. H͝W;HͳW;r# x¾H  H|}~# x ~+ x *(}&$.*/* wc.c -- text analysis utility -- written by leor zolman, 03/16/82. 'wc' prints out total number of characters, words, and lines in files declared from the command line. 'words' are defined as groups of characters delimited by blanks, tabs, or newlines. maximum number of words and lines are each 65535, but character count is virtually unlimited. usage: >wc >wc [fn2.ft2] [etc.] >wc <*.ft> >wc >wc [fn1.ft1] [etc.] 09/15/83 modified to compile with c/80 from software toolworks. fg */ #include "tprintf.c" /* from c/80 version 3.0 environment */ #define EOF -1 #define NULL 0 static int f1; static unsigned lo_totchars, hi_totchars, totwords, totlines; main(argc,argv) int argc; char **argv; { command(&argc,&argv); if (argc < 2) { printf("Usage: >wc [fn2.ft2] [etc.]\n"); printf(" >wc <*.ft> [fn.*] [etc.]\n"); exit(1); } lo_totchars = hi_totchars = totwords = totlines = 0; printf("\n\t\tChars\tWords\tLines\n"); while (--argc) dofile(*++argv); printf("Totals:"); if (hi_totchars) printf("\t\t%d%04d",hi_totchars,lo_totchars); else printf("\t\t%d",lo_totchars); printf("\t%d\t%d\n",totwords,totlines); } dofile(name) char *name; { char inword; register int c; static unsigned lo_tch, hi_tch, twords, tlines; if ((f1 = fopen(name, "r")) == NULL) { printf("Can't open %s\n",name); return; } printf("%s:\t",name); if (strlen(name) < 7) putchar('\t'); inword = lo_tch = hi_tch = twords = tlines = 0; while ((c = getc(f1)) != EOF) { if (++lo_tch == 10000) { lo_tch = 0; hi_tch++; } if (isspace(c)) { if (inword) { inword = 0; twords++; } } else if (!inword) inword = 1; if (c == '\n') tlines++; } fclose(f1); if (hi_tch) printf("%d%04d",hi_tch,lo_tch); else printf("%d",lo_tch); printf("\t%d\t%d\n",twords,tlines); if ((lo_totchars += lo_tch) >= 10000) { lo_totchars -= 10000; hi_totchars++; } hi_totchars += hi_tch; totwords += twords; totlines += tlines; } /* command -- expand wildcard filenames in the command line. usage: 'command(&argc, &argv)' modifies argc and argv as necessary. uses 'sbrk' to create new arg list. also uses 'makfcb()' and 'bdos()' from c/80 'stdlib.c' source file. written by dr. jim gillogly; modified for cp/m by walt bilofsky. (7/25/83) */ #define MAXFILES 255 /* max number of expanded files */ #define FNSIZE 15 /* filename length is 2(d:) + 8 + 1 + 3 + null */ int COMnf, *COMfn, COMc, *COMv; char *COMarg, *COMs; static expand(); command(argcp, argvp) int *argcp, *argvp; { int f_alloc[MAXFILES]; COMfn = f_alloc; COMc = *argcp; COMv = *argvp; COMfn[0] = *COMv++; /* don't expand first one */ COMnf = 1; for (COMarg = *COMv; --COMc; COMarg = *++COMv) { for (COMs = COMarg; *COMs; COMs++) if (*COMs == '?' || *COMs == '*') { expand(); goto contn; /* expand each name once */ } COMfn[COMnf++] = COMarg; /* no expansion */ contn: ; } *argcp = COMnf; COMfn[COMnf++] = -1; COMv = *argvp = sbrk(2 * COMnf); while (COMnf--) COMv[COMnf] = COMfn[COMnf]; } static expand() { char fcb[36]; static char *p, *q; static int i, flg; makfcb(COMarg, fcb); if (fcb[0] == -1) fcb[0] = '?'; /* check for all users */ for (i = flg = 1; i <= 11; ++i) /* expand *'s to ?'s */ { if (i == 9) flg = 1; if (fcb[i] == '*') flg = 0; if (flg == 0) fcb[i] = '?'; } flg = 17; bdos(26, 0x80); /* make sure dma address ok */ while ((i = bdos(flg, fcb)) != -1) { COMfn[COMnf++] = q = sbrk(FNSIZE); if (COMnf >= MAXFILES-1) { for (p = "Too many file names.\n"; putchar(*p++); ) ; exit(0); } p = 0x81 + i * 32; /* where to find directory field */ if (COMarg[1] == ':' && COMarg[0] != '?') { *q++ = COMarg[0]; *q++ = ':'; } for (i = 12; --i; ) { if (i == 3) *q++ = '.'; if ((*q = *p++ & 0177) != ' ') ++q; } *q = 0; flg = 18; } } #include "stdlib.c" /* required here for c/80 environment */ 7) != ' ') ++q; } *q = 0; flg = 18; } } #include "stdlib.c" /* requir*+%"H%"F%"D " " "y 6"C+6+!^6 F+N+<!* !!9~#ʗ RO"k'k +}|+#~ʂu6#~#<ʷ>!4R6#6*! * |ʴ!ͯ"r! ͯ" R Can't open > or < file.$èw*6 )! 9!"6D*:B<*C 2B ́F  €> _*C~+#4N s> > !+:EºF2B_~ý   > G ʘG!* ͟> !+}  > _con:rdr:pun:lst: ==_~O7 !"# !  #¾i& ~º!h~#~#F6%pw6237!9Ly=S>wD<!gs 6#6 ~+|s#r{{ ڟ!+#^{!!Pw#w!g~<6 !|~r!N!nL}*eyb>w#%!=)${=Sbtx h&{ !~!nN#F{p+pH#x¯ ڽ+!9~ !~b!5> 6> *e w`i#Q᯾%,!$|!!9n&:ʟɯ2>[!9L):|!PwL#4!^w>2>2-:Ecx:-O”! DMi:- !Write error - Disk full $`i7.!9~=+SV+^+F+N "I> w+ w w##w w #~+:&~##K@~#.7K&*I++Kw#=a O! ~_#V!$r+sbk#|}o|g}o|g}o|g|!,|}!­­,ɯ|ʙ!|}!-z{!,zz{!-|!|g|}! -ɵz{!-||g}o).{ozg+|/g}/o~og~#fos#rN#F#xr~#~#[[`iDM!z>‚S\))Ҋ =‚ɯßz>|>MD!x<³z>ڸjS\>))#  =¸>>!9"*++"Lt !9* ! *++"LL *++"L}2:G*++"L͆ *++"L"**++"L͟ !!9L͆ !9F}2!9L"ͻ !9L"!!9L͆ *F͓ *F͓͓ *#"+F û :G; !9FK *#"+!9F}*6K !9F:G͟K K Y  ! *#"+F|] !"*F0~ *F9͓ʥ * s*#"+F"c ! }2! ""!"*#"+Fa !"!9L ~ !0}2!"!9L ~ !0}2!"!9L ~ !9L ~ !9LF|S !9L#Q+F *+"% ! ͵ ~ ~ Y d u o x c% sͻ !9L ʠ !9L0ï !9LA *+" :G õ * !9L" *+"#*| * .|g| *+"#* >" !"** / * ͓S ͵ *|H !- * ͂ *ͯm * !(Ñ *ͯʇ * ! ͏Ñ * !( *ͯʱ * ! ͏ü *+* ͉͂ " !9!9S!9L !!!ͨ!" " " " !!9L+Q|P !9L##QLͫ ' !* |{ !* * Ë ! * !* * ;* !9L!ͯ" ͯ !!9L" 3!)!9L!9Lo! !9!" " " " }* " #͓ʰ* #" |\!" * #" +* I|ʆ!9F|ʃ!96* #" +Ù!9Fͯʙ!96* |­* #" +,* * |!* * ! * !* * * * " '#* " * #" +* * " * * " * * " !9!9"I!9LL"K!9LL"M*I*M##"M++LQ!"G*ML"O*K+"K|ü*M##"ML"OÜ*O"Q*QF|*Q#"Q+*QFͯ*QF͓͎ͯ*G#"G+)*I*OQë!9L*GQ*G#"G+)*I6#6!9L*G)Q"M*G+"G#|ʀ*G)*M*G)*ILQW!9!9*O!9́!9F#|´!96?!""* *#"ý*|!"!9*F|!"*|!9*6?!"!!͋*!9͋"#͓C*G#"G+)*I!"Q*Gʓ!."*#"+F|ʋs!ͨ*)))))"*O#Fͯ*OF͓͓*#"+*OF}*#"+6:! "*+"|5*+++| *#"+6.**#"+F&}o}͓2*#"*6!",!$9!9LZ!kYS S S !!ʀ#vo&%Usage: >wc [fn2.ft2] [etc.] >wc <*.ft> [fn.*] [etc.] Chars Words Lines Totals: %d%04d %d %d %d rCan't open %s %s: Too many file names. #x Arrow Keys move Pointer Use "+" and "-" if More Files +++ INTERACTIVE ASSEMBLY LANGUAGE DEVELOPMENT +++ Current File is $f1 A - Assemble/Link/Load Current File (ZAS/ZLINK) E - Edit $f1 (WordMaster) R - Run $n1.COM S - Set Current File to Edit/Assemble/Link/Load/Run (SETFILE) - S Pointer Filer 1 - Edit (NW) Assemble/Link/Load Z80's (ZAS/ZLINK) - 2 3 - Assemble/Link/Load MAC'S (M80/L80) ASM's (MAC/MLOAD) - 4 5 - Interactive (ZAS/ZLINK/WM) Convert Intel to Zilog (ZCON) - 6 7 - Edit (LZED) View (VTYPE) - 8 9 - Enter Library (NULU) Edit (WordMaster) - 0 # a $d$u:;era $n1.bak;BASE:zas $n1;if er;sak /p2 errors in assembly--cancel;else;BASE:zlink $d:$n1,a:grwlib/,a:grxlib/,a:vlib/,a:z3lib/,a:syslib/;era $n1.rel;fi e $d$u:;PRIVATE:wm $f1 r!$d$u:;$n1 "trailing parameters ( if none) -- " s ROOT:setfile 1 "Enter file name (fn.ft) to edit (and later run): " 1 $d$u:;get 100 ROOT:nw.com;poke 74e ff;poke 787 ff;go $pf 2 if12 $pt=z80;$d$u:;era $pn.bak;zas $pn;if ~er;zlink $d:$pn,a:grwlib/,a:grxlib/,a:vlib/,a:z3lib/,a:syslib/;era *.rel;else;sak /p2 errors;fi;else;sak /p2 not z80 type;fi 3 if12 $pt=mac;$d$u:;era $pn.bak;m80 =$pn;sak /zp7 Errors, cancel link (^C)?;l80 /p:100,$pn,a:vlib/s,a:z3lib/s,a:syslib/s,$pn/n/u/e;era $pn.rel;else;sak /p2 not mac type;fi 4 if12 $pt=asm;$d$u:;era $pn.bak;mac $pn $$-spz;sak /zp7 Errors, cancel load (^C)?;mload $pn;era $pn.hex;else;sak /p2 not asm file type;fi 5 $d$u:;zas $pn;if er;sak /p3 cancelled;wm $pf;else;zlink $d:$pn,a:grwlib/,a:grxlib/,a:vlib/,a:z3lib/,a:syslib/;era $pn.rel;$pn "for running COM, prameters ( if none)? ";fi 6 $d$u:;BASE:zcon $pf 7 $d$u:;BASE:lzed $pf 8 ROOT:vtype $pf 9 if ex $d$u:$pn.lbr;$d$u:;BASE:nulu -o $pn -f;else;sak /p3 library file cannot be found;fi 0 $d$u:;PRIVATE:wm $pf z!"$d$u:$c>" #x Arrow Keys move Pointer Use "+" and "-" if More Files +++ HOUSEKEEPING MENU +++ Pointer File C - Copy to another Directory (CP) P - Print (to printer)  (PRINT) E - Erase (de-allocate space) (ERA) R - Rename (REN) N - Enter Library File (NULU) V - View (screen paged) (VTYPE) System Functions F - Files Capable of Being 1 - Sort and Pack Directory (CLEANDIR) Being Unerased (UNERASE) 2 - Disk Catalog Menu (MENU/DISCAT) U - Unerase Files (UNERASE) 3 - Enter SHOW System Utility (SHOW) W - File Manipulator (VFILER) # c cp "Copy to Directory (DIR: or DU:): "=$d$u:$pf e echo $pf - delete (Y/N)? ;if in;era $d$u:$pf;fi P poke fe37 "How many columns to print, in hex (50h=80, 64h=100)? ";ROOT:print $pf "Options (=default, e=exact): ";poke fe37 50 r ren "New Name of File (no wild cards): "=$pf v ROOT:vtype $pf n if ex $d$u:$pn.lbr;$d$u:;BASE:nulu -o $pn -f;else;ROOT:sak /p3 library file cannot be found;fi f!ROOT:unerase *.* l u!ROOT:unerase "Name of File to Recover (wild cards okay): " w ROOT:vfiler $d$u: y show 1 ROOT:sap $d: 2 CAT:;ROOT:menu discat.mnu z!"$d$u:$c>" #x Arrow Keys move Pointer Use "+" and "-" if More Files +++ WRITER'S WORKBENCH +++ 0 - WordStar Edit using Document Mode Newword - 1 2 - V-Spell Spelling Check and Correction Word Plus - 3 4 - Style Writing Grammar - 5 6 - StarIndex Communications - 7 8 - ASCII to WordStar File Conversion WordStar to ASCII - 9 N - Number of Words in File Print File using PropStar - P M - Menu Housekeeping VFILER - W (Use ^Q to change file sort) # 1 $d$u:;BASE:nw $pf 2 $d$u:;era vspell.mis;PRIVATE:vs $pf;if ex vspell.mis;era vspell.mis;era BASE:vspell.bak;BASE:nw $pf;fi 3 a$u:;era $u:errwords.txt;PRIVATE:spell $d:$pf $slic;review;if ex $u:errwords.txt;markfix $d:$pf $m#;$d:;BASE:nw $pf;else;$d:;fi 4 a$u:;PRIVATE:cleanup $d:$pf $m#;$d:;BASE:nw $pf 5 a$u:;PRIVATE:phrase $d:$pf passive.txt;$d:;BASE:nw $pf 6 $d$u:;PRIVATE:si $pf 7 MAIL:;ROOT:setfile 1 t3.mnu;ROOT:menu t3.mnu;$d$u: 8 $d$u:;BASE:txttows $pf 9 $d$u:;BASE:filtw $pf 0 $d$u:;PRIVATE:ws $pf n $d$u:;BASE:wc $pf p $d$u:;BASE:ps $pf m:2 w ROOT:vfiler $d$u: z!"$d$u:$c>" ##  Z3ENV* Z3 ALIASIF NUL $1;CAT:;ROOT:MENU DISCAT.MNU;ELSE;CAT:CATSCAN $*;FI2=>2=;+2=: >2=;+_+>_+:r@/o:<;+}2r@2=;+>2<;+2<;+>2<ͩ(2!=w#"$=:<ģ~I$3####~*DUFʑNʥ0( (.G#!͞~ʏʃ~# iʏu~!ڏ#ÃͲ>.Ͳ#~1#ɯGx ~ #͇xA#͇y 0 0Gy0x##!~&#>$##ʏ#~ ʏ#9Ï~|hG|hxm!>{Ovfl"ʐG~ʒ#…*^#V~;ʮʮ>;ʺ~#®6Ð*s#r~#=<4*^#V*$~#fo|**R" ~#o Y s F KKO   y  yG>GO> se O*.  OG~#ʫ;ʟ+~#ʫ;¯ëO !#y  a{_*}$..  TITLE: C Language CMD Macro File %d%u:;get 100 ws.com;poke 392 ff;go %f 1 %d%u:;get 100 nw.com;poke 74e ff;poke 787 ff;go %f 2 if ex %d%u:%n.c;%d%u:;era %n.bak;pcc %f;c %n;as %n;era %n.asm;else;sak /p3 not c file type;fi 3 if ex %d%u:%n.c;%d%u:;era %n.bak;pcc %f;cc %f;clink %n -ns;era %n.crl;else;sak /p3 not c file type;fi 4 if ex %d%u:%n.c;%d%u:;era %n.bak;pcc %f;czii -t %f;as %n.asm;ln %n.o z80math.lib z80libc.lib;era %n.o;else;sak /p3 not c file type;fi 5 %d%u:;c %n;as %n;BASE:lzed %$ 6 xdir %d%u:*.* ogoh'Options (u=all areas, p=to printer, d=disk, CR=default): ' 7 MAIL:;ROOT:menu t3.mnu 8 ROOT:vtype %$ 9 if ex $d%u:%n.lbr;%d%u:;nulu -o %n -f;else;ROOT:sak /p3 file is not a library;fi 0 %d%u:;BASE:lzed %$ # >>> C LANGUAGE PROGRAM DEVELOPMENT <<< ================================================================== 1 - EDIT Pointer File (non-document mode) (Newword) - 1 Compile/Assemble/Link/Load Using: 2 - Software Toolworks C/80 v3.0 (C/AS) - 2 3 - BD Systems BDS-C v1.5a (CC/CLINK) - 3 4 - Manx Aztec CII v1.05c (CZII/AS/LN) - 4 5 - C Language Program Development (C/80 using LZED) - 5 6 - Directory of Files on Current Disk (XDIR) - 6 7 - Telecommunicate via Modem (from MAIL directory) (Term3) - 7 8 - View Pointer File with Forward/Backward Scroll (VTYPE) - 8 9 - Enter Pointer File Library (LBR) (NULU) - 9 0 - EDIT Pointer File using LZED (LZED) - 0 ================================================================== r File using LZED (LZED) - 0