Beppe (Giuseppe Zanetti <beppe@alessia.dei.unipd.it>) (04/19/91)
Submitted-by: Beppe(Giuseppe Zanetti <beppe@alessia.dei.unipd.it> Posting-number: Volume 18, Issue 57 Archive-name: ql_tools/part01 The following are 4 programs for the Sinclair QL. Program 1: SuperBasic to Pascal Converter for Sinclair QL Program 2: QL Interlaced-like colors effects. Program 3: QL screens reader for MS-DOS computers. Program 4: Buffin & Serbuffer for QL Please refer to the Readme for more details. This is a shar file with three uuencoded files included. After unsharing this posting, for i in *.uu; do uudecode $i; done rm *.uu beppe@alessia.dei.unipd.it ---------------------------- #! /bin/sh # This is a shell archive. Remove anything before this line, then feed it # into a shell via "sh file" or similar. To overwrite existing files, # type "sh file -c". # The tool that generated this appeared in the comp.sources.unix newsgroup; # send mail to comp-sources-unix@uunet.uu.net if you want that tool. # Contents: BOOT.BTP BUFFIN.ASM COLORS.ASM INDENTER.BAS NEWQL.C Readme # SERBUFFE.ASM TEST1.PAS TEST2.PAS TEXTPROC.BAS coder.bas.uu # rlan.bas.uu token.bas.uu # Wrapped by kent@sparky on Sat Apr 13 17:37:36 1991 PATH=/bin:/usr/bin:/usr/ucb ; export PATH echo If this archive is complete, you will see the following message: echo ' "shar: End of archive 1 (of 1)."' if test -f 'BOOT.BTP' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'BOOT.BTP'\" else echo shar: Extracting \"'BOOT.BTP'\" \(779 characters\) sed "s/^X//" >'BOOT.BTP' <<'END_OF_FILE' X100 MODE 4 X110 OPEN#1,CON X120 BORDER 1,5 X130 INK 7:PAPER 0 X140 CSIZE 3,1:INK 4 X150 PRINT 'PASS';:INK 7:PRINT 'PORT:';:CSIZE 2,0:PRINT 'THE BASIC TO PASCAL PORT'\\\:INK 4 X160 PRINT ' (C) 1989 BY HTAT SOFT'\\ X170 PRINT ' by GZ'\\\ X180 CSIZE 2,0 X190 INK 7:PRINT ' MAIN MENU'\\ X200 PRINT '1) TOKENIZE PROGRAM' X210 PRINT '2) CREATE CODE' X220 PRINT '3) DIR OF FLP1_' X225 PRINT '4) TO BORLAND TURBOPASCAL' X230 PRINT '5) END OF JOB' X240 PRINT \'MAKE YOUR CHOICE:' X250 A$=INKEY$(-1):IF A$='' THEN GO TO 250 X260 IF A$='1' THEN EXEC_W FLP1_TOKEN_TASK:RUN X270 IF A$='2' THEN EXEC_W FLP1_CODER_TASK:RUN X280 IF A$='3' THEN CLS:DIR FLP1_:PAUSE:RUN X285 IF A$='4' THEN EXEC_W FLP1_TOBORLAND_TASK:RUN X290 IF A$='5' THEN CLS:PRINT 'BYE, TANK YOU':STOP X300 GO TO 250 END_OF_FILE if test 779 -ne `wc -c <'BOOT.BTP'`; then echo shar: \"'BOOT.BTP'\" unpacked with wrong size! fi # end of 'BOOT.BTP' fi if test -f 'BUFFIN.ASM' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'BUFFIN.ASM'\" else echo shar: Extracting \"'BUFFIN.ASM'\" \(2044 characters\) sed "s/^X//" >'BUFFIN.ASM' <<'END_OF_FILE' X; << BUFFIN >> FUNZIONE BASIC PER LEGGERE UN DATO CONTENUTO IN UN BUFFER X; in 163840 e' contenuto l' indirizzo del Buffer: RESPR(10000) X X; Copyright by Giuseppe Zanetti X X; Dichiarazione costanti X XBV_RIP EQU $58 X X; linkaggio funzione X XSTART LEA PROCDEF,A1 ; a1 punta tabella definizione X MOVE.W $110,A2 ;BP.INIT X JSR (A2) X X CLR.L D0 ;no errors X RTS ;torna al basic X X; tabella definizione proc/fn X XPROCDEF DC.W 0 ;0 procedure X DC.W 0 ;fine procs X DC.W 1 ;1 funzione X DC.W ROUTINE-* ;punta all' inizio X DC.B 6 ;numero caratteri nome X DC.B 'BUFFIN' ;nome X DC.B 0 ;allinea X DC.W 0 ;fine fn X X DC.B '(C) by GZ' ;Copyright by Giuseppe Zanetti X X; codice macchina funzione X XROUTINE MOVE.L #163840,A1 ;punt. buffer X MOVE.L (A1),A2 ;indirizzo del buffer X MOVE.W $E2,A1 ;entry IO.QOUT X JSR (A1) ;legge un byte X CMP.L #0,D0 ;errori ? X BEQ TUTTO_OK ;no: continua X X MOVE.W #-1,D1 ;si: restituisci il valore 0 X X;ritorna al basic un valore intero X;il valore del bytes, se lo legge X;oppure -1 se non ci sono caratteri da leggere X XTUTTO_OK MOVE.L BV_RIP(A6),A1 ;facciamo spazio nel buffer X SUBQ #2,A1 ;2 bytes per un intero X MOVE.L A1,BV_RIP(A6) ;ripristino il puntatore allo stack aritmetico X MOVE.W D1,(A6,A1.L) ;metto il valore nello stack X MOVEQ #3,D4 ;dico al basic che e' un intero X X MOVEQ #0,D0 ;no errors X RTS ;torno al basic X XEND X END_OF_FILE if test 2044 -ne `wc -c <'BUFFIN.ASM'`; then echo shar: \"'BUFFIN.ASM'\" unpacked with wrong size! fi # end of 'BUFFIN.ASM' fi if test -f 'COLORS.ASM' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'COLORS.ASM'\" else echo shar: Extracting \"'COLORS.ASM'\" \(1005 characters\) sed "s/^X//" >'COLORS.ASM' <<'END_OF_FILE' X; alterna i due screen 50 volte al secondo X X; riserva lo screen X XSTART MOVEQ #$18,d0 ;MT_ALCHP X MOVE.L #$6BE0,D1 X TRAP #$1 X TST.L D0 X BNE.S EXIT X X X; COLLEGA UN GESTORE DELLE INTERRUZIONI X X LEA INT_SERVE(PC),A1 X MOVEQ #$1C,D0 ;MT_POLL X LEA INT_LINK(PC),A0 X MOVE.L A1,4(A0) X TRAP #1 X XEXIT RTS X X; INTERRUPT X XINT_LINK DS.L 2 XINT_SERVE MOVE.L #163840,A1 X MOVE.L #98683,A2 X MOVE.B #8,0(A2) ;MODE 8 SCREEN 1 X MOVE.B 0(A1),D1 X CMP.L #8,D1 X BNE.S POKE_8 X MOVE.B #136,D2 X BRA.S CONTINUA XPOKE_8 MOVE.B #8,D2 XCONTINUA MOVE.W #1360,D0 ;LOOP DI RITARDO X DBRA D0,* ; X MOVE.B D2,0(A2) ;CAMBIA SCREEN X MOVE.B D2,0(A1) ;E VARIABILE X RTS XEND X END_OF_FILE if test 1005 -ne `wc -c <'COLORS.ASM'`; then echo shar: \"'COLORS.ASM'\" unpacked with wrong size! fi # end of 'COLORS.ASM' fi if test -f 'INDENTER.BAS' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'INDENTER.BAS'\" else echo shar: Extracting \"'INDENTER.BAS'\" \(1215 characters\) sed "s/^X//" >'INDENTER.BAS' <<'END_OF_FILE' X100 MODE 4 X110 OPEN#1,CON X120 PAPER 0:INK 4:CLS X130 CSIZE 3,1 X140 PRINT 'PASS'; X150 INK 7:PRINT 'PORT INDENTER'; X160 CSIZE 1,0:INK 4:PRINT '(C)1989 BY HTAT'\\\\\\ X170 CSIZE 2,0:INK 7 X180 PRINT 'INPUT FILENAME WITHOUT FLP1_..._PAS'\\'?>'; X190 INPUT SF$:IF SF$='' THEN GO TO 120 X200 CLS:CSIZE 0,1 X210 OPEN_IN#3,'FLP1_'&SF$&'_PAS' X220 DELETE 'FLP1_'&SF$&'_ID_PAS' X230 OPEN_NEW#4,'FLP1_'&SF$&'_ID_PAS' X240 : X250 S=0:L=0:B=0 X260 REPeat LOOP X270 IF EOF(#3) THEN EXIT LOOP X280 INPUT#3,A$:P=0:D=0:L=L+1 X290 IF ('PROGRAM' INSTR A$)=1 THEN S=0:P=0:D=2 X300 IF ('LABEL' INSTR A$)=1 THEN S=4:P=0:D=2 X310 IF ('VAR' INSTR A$)=1 THEN S=4:P=0:D=2 X320 IF ('CONST' INSTR A$)=1 THEN S=4:P=0:D=2 X330 IF ('TYPE' INSTR A$)=1 THEN S=4:P=0:D=2 X340 IF ('BEGIN' INSTR A$)=1 THEN P=1:D=1:B=B+1 X350 IF ('BEGIN (* THE PROGRAM *)' INSTR A$)=1 THEN S=0:P=0:D=1 X360 IF (': (* GOTO' INSTR A$) THEN D=S:S=0:P=0 X370 IF ('END;' INSTR A$) THEN P=-1:D=-1 X380 IF ('END.' INSTR A$) THEN S=0:P=0:D=1 X400 : X410 S=S+P X415 L$=L:L$=L$&' ':PRINT L$(1 TO 4);' |'; X420 PRINT#4,FILL$(' ',S);A$:PRINT FILL$(' ',S);A$ X430 S=S+D X440 END REPeat LOOP X450 CLOSE#3 X460 CLOSE#4 X470 CSIZE 2,0 X480 PRINT \\\'END OF INDENTATION'\\B;' STRUCTURE(S)'\\L;' LINES OF CODE'\\\ END_OF_FILE if test 1215 -ne `wc -c <'INDENTER.BAS'`; then echo shar: \"'INDENTER.BAS'\" unpacked with wrong size! fi # end of 'INDENTER.BAS' fi if test -f 'NEWQL.C' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'NEWQL.C'\" else echo shar: Extracting \"'NEWQL.C'\" \(3201 characters\) sed "s/^X//" >'NEWQL.C' <<'END_OF_FILE' X/* lettore di schermate del QL */ X/* Copyright 1990 by Giuseppe Zanetti */ X/* telefono 049-638225 Padova (Italy) */ X X#define VERSIONE "QLSCR VERSION 2.00 \n=============\n\n" X X/* grafica in EGA M&P 91-92 pag 128 */ X/* per QL screen reader */ X X#define VIDEO 0x10 X#include <stdio.h> X#include <dos.h> X#include <string.h> X XModo(modalita,colonne,pagina) Xint *modalita, *colonne, *pagina; X{ X union REGS regs; X regs.h.ah = 15; X int86(VIDEO,®s,®s); X *modalita=regs.h.al; X *colonne=regs.h.ah; X *pagina=regs.h.bh; X} X XSetModo(modalita) Xint modalita; X{ X union REGS regs; X regs.h.ah=0; X regs.h.al=modalita; X int86(VIDEO,®s,®s); X} X XEgaRegistro(indirizzo,valore) Xint indirizzo,valore; X{ X outp(0x3CE,indirizzo); X outp(0x3CF,valore); X} X XEgaPunto(x,y,colore,booleano) Xint x,y,colore,booleano; X{ X unsigned char bool=0x80; X char far *base; X X base=(char far *)(0xA0000000+((long)y*80+((long)x/8))); X bool=bool >> (x%8); X EgaRegistro(0,colore); X EgaRegistro(1,0x0F); X EgaRegistro(3,booleano); X EgaRegistro(8,bool); X *base=*base & 0xFF; X} X XFineEga() X{ X EgaRegistro(0,0); X EgaRegistro(1,0); X EgaRegistro(3,0); X EgaRegistro(8,0xFF); X} X Xmain(argc,argv) Xint argc; Xchar *argv[]; X{ X FILE *ql; X int x,y,b; X unsigned char h,l,c; X int mode,ega,lines; X X int color[]={0,1,4,3,2,5,14,15}; X X X if (argc<2) X { fprintf(stderr,VERSIONE); X fprintf(stderr,"QL scr reader: use QLSCR file [4|8|16] [e|v]\n"); X fprintf(stderr," ql mode ega mode\n"); X fprintf(stderr,"\nQL screen reader by Giuseppe Zanetti tel. 049-638225 Abano Terme, Padova (Italy)\n\n"); X fprintf(stderr,"4 ... use 4 colors mode\n8 ... use 8 colors mode\n16 .. use double size 8 colors mode\n"); X fprintf(stderr,"\n\n/e .. EGA (16 colors)\n/v .. VGA (16 colors)\n\n"); X fprintf(stderr,"This program is SHAREWARE: copy for non amatorial use is prohibited !!!\n\n"); X exit (1); X } X X if (argc>1) X mode=atoi(argv[2]); X X if ((mode != 4) && (mode != 8) && (mode != 16)) X mode = 4; X X if (argc>2) X { if ((strcmp(argv[3],"/v") == 0) || (strcmp(argv[3],"-v") == 0)) X ega=18; X else if ((strcmp(argv[3],"/e") == 0) || (strcmp(argv[3],"-e") == 0)) X ega=16; X } X X if ((ega != 18) && (ega != 16)) X ega=16; X X if (ega==6) X lines=200; X else lines=256; X X ql=fopen (argv[1],"rb"); X X if (ql == NULL) X { fprintf(stderr,"QL scr reader: not valid file\n"); X exit (1); X } X X SetModo(ega); X Xif (mode==4) X { for (y=0;(y<lines) && (!(feof(ql)));y++) X for (x=0;x<64;x++) X { h=fgetc(ql); X l=fgetc(ql); X for (b=7;b>=0;b--) X { c = (h & 0x01)*2 + (l & 0x01); X EgaPunto (x*8+b,y,color[c*2+1*(c==3)],0x18); X h>>=1; X l>>=1; X } X } X } X Xif ((mode==8) || (mode == 16)) X { for (y=0;(y<lines) && (!(feof(ql)));y++) X for (x=0;x<64;x++) X { h=fgetc(ql); X l=fgetc(ql); X for (b=3;b>=0;b--) X { c = (h & 0x01)*0 + (l & 0x01); X h>>=1; X l>>=1; X c = c + (h & 0x01)*4 + (l & 0x01)*2; X if (mode==8) X EgaPunto (x*4+b,y,color[c],0x18); X else { EgaPunto ((x*4+b)*2,y,color[c],0x18); X EgaPunto ((x*4+b)*2+1,y,color[c],0x18); X } X h>>=1; X l>>=1; X } X } X } X X fclose (ql); X getch(); X FineEga(); X SetModo(2); X X} END_OF_FILE if test 3201 -ne `wc -c <'NEWQL.C'`; then echo shar: \"'NEWQL.C'\" unpacked with wrong size! fi # end of 'NEWQL.C' fi if test -f 'Readme' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'Readme'\" else echo shar: Extracting \"'Readme'\" \(2398 characters\) sed "s/^X//" >'Readme' <<'END_OF_FILE' X---------------------------------------------------------- XProgram 1: SuperBasic to Pascal Converter for Sinclair QL X XThis simple program converts SB to Pascal. X XFiles: X BOOT.BFP INDENTER.BAS CODER.BAS X TEST1.PAS TEST2.PAS TOBORLAN.BAS X TOKEN.BAS X X---------------------------------------------------------- XProgram 2: QL Interlaced-like colors effects. X XThis program alternate QL's screens 1 and 2 50 times Xper second. The resulting effect is too 16 colors. XFlickering is normal. X XFiles: X COLORS.ASM X X---------------------------------------------------------- XProgram 3: QL screens reader for MS-DOS computers. X XThis is the Turbo C source file of my QL screens reader. XEGA or VGA card is required. XThis program works in both ql's modes (4-8 colors). XPlease redistribuite this program complete and unmodified !!! X XFiles: X NEWQL.C X X---------------------------------------------------------- XProgram 4: Buffin & Serbuffer for QL X XSerbuff is a RS232 full multitasking buffer. Xbuffin() read caracters from Serbuff buffer. X XFiles: X BUFFIN.ASM SERBUFFE.ASM X X----------------------------------------------------- XProgram 4: TEXTPROCESSOR split Quill files in Columns and justify text. X XFiles: X TEXTPROC.BAS X----------------------------------------------------- X XBeppe's Shareware Software Production X XThis program is shareware: if you want send me your contribution. X XGiuseppe Zanetti, via Vergani,11 - 35031 Abano Terme (Padova) ITALY X Xphone ++39-(0)49-638225 (italian language only, sorry) X XE-mail: INTERNET beppe@alessia.dei.unipd.it (130.186.12.101) X XThere are other programs available on request. A list of them Xappears below. X XSoftware List X============= X XTitle Computer Description X------------------------------------------------------------------------------ XNEWQL MS-DOS Read QL screens (not disks !) on EGA/VGA XCUT2QL MS-DOS Convert from Dr Halo *.cut to QL bit mapped XFANTASTIC-OCR MS-DOS PD OCR for ScanMan+ and TIFF files XIMPRESS DTP SINCLAIR QL Superbe DTP for 128K QL (with fonts & clip art) XHTPAINTER SINCLAIR QL The natural complement for Impress Dtp XBIGCOPIER SINCLAIR QL Simplify your live in files management XSOCCER MANAGER SINCLAIR QL Italian Soccer Championship XCBM2QL SINCLAIR QL Convert screens from Commodore C=64 XQSCANNED SINCLAIR QL Clip Art from ScanMan+ converted to QL XISCANNED MS-DOS QSCANNED for MS-DOS (TIFF) X END_OF_FILE if test 2398 -ne `wc -c <'Readme'`; then echo shar: \"'Readme'\" unpacked with wrong size! fi # end of 'Readme' fi if test -f 'SERBUFFE.ASM' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'SERBUFFE.ASM'\" else echo shar: Extracting \"'SERBUFFE.ASM'\" \(1941 characters\) sed "s/^X//" >'SERBUFFE.ASM' <<'END_OF_FILE' X; TASK PER GESTIRE UN BUFFER SERIALE SER2 X; in 163840 e' contenuto l' indirizzo del Buffer: RESPR(10000) X X; Copyright by Giuseppe Zanetti X X X; BLOCCO IDENTIFICAZIONE JOB X XSTART BRA.S START_TSK ;salta all' inizio del Job X DC.L 0 ;inutilizzata X DC.W $4AFB ;codice riconoscimento task X DC.W 9 ;num caratteri nome X DC.B 'SERBUFFER',0 ;nome+allineamento X X DC.B '(C)1989 by GZ' ;copyright X X; setta priorita' del Job X XSTART_TSK MOVEQ #MT_PRIOR,D0 ;setta priorita' Job X MOVEQ #-1,D1 ;Job padre:IO X MOVEQ #30,D2 ;priorita' 30 X trap #1 ;esegui X X; alloca un buffer da 10'000 bytes all' ind puntato da 163840 X X MOVE.L #10000,D1 ;buffer da 10000 bytes X MOVE.L #163840,A1 ;indirizzo del puntatore al buffer X MOVE.L (A1),A2 ;indirizzo buffer in A2 X MOVE.W $DC,A1 ;entry IO.QSET X JSR (A1) ;crea la coda X X; LOOP che legge dal buffer della SER2 e trasferisce nel mio Buffer X XLOOP MOVE.L #163996,A1 ;punt. coda ricezione SER2 X MOVE.L (A1),A2 ;indirizzo della coda X MOVE.W $E2,A1 ;entry IO.QOUT X JSR (A1) ;legge un bytes da SER2 X CMP.L #0,D0 ;errori ? X BNE LOOP ;si, rileggi X X; scrive il bytes (che e' in D1) nella mia coda X X XLOOP1 MOVE.L #163840,A1 ;punt. alla mia coda X MOVE.L (A1),A2 ;indirizzo della coda X MOVE.W $E0,A1 ;entry IO.QIN X JSR (A1) ;scrive il bytes nel buffer X X; ripete il ciclo X X BRA LOOP ;ripeti X XEND X END_OF_FILE if test 1941 -ne `wc -c <'SERBUFFE.ASM'`; then echo shar: \"'SERBUFFE.ASM'\" unpacked with wrong size! fi # end of 'SERBUFFE.ASM' fi if test -f 'TEST1.PAS' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'TEST1.PAS'\" else echo shar: Extracting \"'TEST1.PAS'\" \(536 characters\) sed "s/^X//" >'TEST1.PAS' <<'END_OF_FILE' XPROGRAM test1(input,output); X XTYPE XSTRING = ARRAY [1..255] OF CHAR; X XVAR Xfib1 : REAL; Xfib2 : REAL; Xfib : REAL; Xt : INTEGER; X XBEGIN (* THE PROGRAM *) X X(* COMPILER IS (C)1989 BY HTAT SOFT *) X X XWRITE (CHR(26)); XWRITELN ('Questo programma calcola i primi 10 numeri di Fibonacci.'); XWRITELN; XWRITE (CHR(26)); Xfib1 := 1; Xfib2 := 1; Xfib := 0; XWRITELN (fib1); XWRITELN (fib2); X XFOR t := TRUNC(1) TO TRUNC(10) DO XBEGIN (* FOR LOOP *) Xfib := fib1+fib2; Xfib1 := fib2; Xfib2 := fib; XWRITELN (fib); XEND; (* LOOP t *) X X XEND. (* OF PROGRAM BY HTAT *) END_OF_FILE if test 536 -ne `wc -c <'TEST1.PAS'`; then echo shar: \"'TEST1.PAS'\" unpacked with wrong size! fi # end of 'TEST1.PAS' fi if test -f 'TEST2.PAS' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'TEST2.PAS'\" else echo shar: Extracting \"'TEST2.PAS'\" \(536 characters\) sed "s/^X//" >'TEST2.PAS' <<'END_OF_FILE' XPROGRAM test2(input,output); X XTYPE XSTRING = ARRAY [1..255] OF CHAR; X XVAR Xfib1 : REAL; Xfib2 : REAL; Xfib : REAL; Xt : INTEGER; X XBEGIN (* THE PROGRAM *) X X(* COMPILER IS (C)1989 BY HTAT SOFT *) X X XWRITE (CHR(26)); XWRITELN ('Questo programma calcola i primi 10 numeri di Fibonacci.'); XWRITELN; XWRITE (CHR(26)); Xfib1 := 1; Xfib2 := 1; Xfib := 0; XWRITELN (fib1); XWRITELN (fib2); X XFOR t := TRUNC(1) TO TRUNC(10) DO XBEGIN (* FOR LOOP *) Xfib := fib1+fib2; Xfib1 := fib2; Xfib2 := fib; XWRITELN (fib); XEND; (* LOOP t *) X X XEND. (* OF PROGRAM BY HTAT *) END_OF_FILE if test 536 -ne `wc -c <'TEST2.PAS'`; then echo shar: \"'TEST2.PAS'\" unpacked with wrong size! fi # end of 'TEST2.PAS' fi if test -f 'TEXTPROC.BAS' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'TEXTPROC.BAS'\" else echo shar: Extracting \"'TEXTPROC.BAS'\" \(5591 characters\) sed "s/^X//" >'TEXTPROC.BAS' <<'END_OF_FILE' X100 REMark <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< X110 REMark << DOC converter by Giuseppe Zanetti << X120 REMark << phone 049/638225 Abano Terme ITALY << X130 REMark <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< X140 : X150 : X160 MODE 4 X170 WINDOW 512,256,0,0 X180 PAPER 0:INK 7 X190 CLS X200 WINDOW 484,204,(512-484)/2,0 X210 PAPER 0:INK 7:CLS X220 PAPER 2 X230 PRINT "RealText Processor versione 4.0 (C)1989-90 by Project Future "\\ X240 PAPER 0 X250 WINDOW 484,14,(512-484)/2,12:CLS:INK 2:FOR t=1 TO 8:PRINT "....:....";t;:NEXT t:INK 7 X260 WINDOW 484,204-20,(512-484)/2,25 X270 PRINT \\ X280 AT 2,0:PRINT "Device ";:UNDER 1:PRINT "sorgente:";:UNDER 0 X290 INK 2:INPUT DEV$:INK 7 X300 IF LEN(DEV$)<>5 THEN BEEP 1000,1:GO TO 280 X310 IF DEV$ INSTR "flp1_flp2_mdv1_mdv2_win1_win2_"=0 THEN BEEP 1000,1:GO TO 280 X320 AT 4,0:PRINT "Device ";:UNDER 1:PRINT "destinazione:";:UNDER 0 X330 INK 2:INPUT DEST$:INK 7 X340 IF DEST$=='scr' THEN GO TO 370 X350 IF LEN(DEST$)<>5 THEN BEEP 1000,1:GO TO 320 X360 IF DEST$ INSTR "flp1_flp2_mdv1_mdv2_win1_win2_ram1_ram2_scr"=0 THEN BEEP 1000,1:GO TO 320 X370 AT 6,0:PRINT "Nome ";:UNDER 1:PRINT "file (senza _DOC):";:UNDER 0 X380 INK 2:INPUT FILE$:INK 7 X390 IF FILE$="" THEN BEEP 1000,1:GO TO 370 X400 IF DEST$ INSTR "flp1_flp2_mdv1_mdv2_win1_win2_ram1_ram2_scr"=0 THEN BEEP 1000,1:GO TO 320 X410 : X420 CLS:AT 2,0:INPUT 'Larghezza testo :';N$:MAX='0'&N$ X430 IF MAX<30 OR MAX>80 THEN GO TO 420 X440 AT 4,0:INPUT 'Spazio tra le linee :';N$:GAP='0'&N$ X450 IF GAP<0 OR GAP>3 THEN BEEP 1000,1:GO TO 440 X460 GAP$=FILL$(CHR$(10),GAP) X470 AT 6,0:INPUT 'IGNORA RETURNS (N) :';RE$ X480 AT 8,0:PRINT 'GIUSTIFICAZIONE (Left,Indent,Right,All) :':J$=INKEY$(-1):IF NOT(J$ INSTR 'LIRA') THEN GO TO 480 X490 : X500 CLS X510 PRINT 'CONVERTO ';DEV$;FILE$;'_DOC A '; X520 IF DEST$=='scr' THEN PRINT 'SCR':ELSE PRINT DEV$;DEST$;'_LIS' X530 PRINT \'COLONNE:';MAX,'GIUSTIFICAZIONE A '; X540 IF J$=='L' THEN PRINT 'SINISTRA' X550 IF J$=='I' THEN PRINT 'INDENT' X560 IF J$=='R' THEN PRINT 'DESTRA' X570 IF J$=='A' THEN PRINT 'DESTRA&SINISTRA' X580 PRINT 'SPAZI :';GAP,'RETURNS '; X590 IF RE$=='S' THEN PRINT 'IGNORATI':ELSE PRINT 'NON IGNORATI' X600 PRINT \\\:PAUSE 400:CLS X610 : X620 OPEN_IN#3,DEV$&FILE$&'_DOC' X630 IF NOT(DEST$=='scr') THEN X640 DELETE DEV$&FILE$&'_LIS' X650 OPEN_NEW#4,DEST$&FILE$&'_LIS' X660 END IF X670 RIGHE=0 X680 FOR I=1 TO 30:W$=INKEY$(#3) X690 L$='':CA=256 X700 REPeat MAIN X710 IF CA=14 THEN BEEP 1000,0:CLOSE_FILES:COLONNE:RUN X720 W$='' X730 REPeat LOOP X737 IF EOF(#3) THEN CLOSE_FILES:COLONNE:RUN X740 CA=CODE(INKEY$(#3)) X750 IF INKEY$(#1)=CHR$(27) THEN CA=14 X760 SELect ON CA X770 =33 TO 256:W$=W$&CHR$(CA) X780 =10,13,0:IF NOT(RE$=='Y') THEN CA=0:EXIT LOOP:ELSE W$=W$&' ':CA=256:EXIT LOOP X790 =14:EXIT LOOP X800 =REMAINDER :W$=W$&' ':EXIT LOOP X810 END SELect X820 END REPeat LOOP X830 IF (LEN(L$)+LEN(W$))>MAX THEN L$=DELSPC$(L$):PPRINT L$:L$=W$:ELSE L$=L$&W$ X840 IF CA=0 THEN L$=DELSPC$(L$):FPRINT L$:L$='' X850 AT#0,0,0:PRINT#0,RIGHE X860 END REPeat MAIN X870 : X880 : X890 DEFine FuNction DELSPC$(T$) X900 LOCal R$,LOOP,F X910 R$=T$ X920 REPeat LOOP X930 F=0 X940 IF R$='' THEN EXIT LOOP X950 IF R$(1)=' ' THEN R$=R$(2 TO ):F=1 X960 IF R$(LEN(R$))=' ' THEN R$=R$(1 TO LEN(R$)-1):F=1 X970 IF NOT(F) THEN EXIT LOOP X980 END REPeat LOOP X990 RETurn R$ X1000 END DEFine DELSPC$ X1010 : X1020 DEFine PROCedure PPRINT(T$) X1030 LOCal R$,S,A$,I X1040 IF J$=='L' THEN R$=T$:GO TO 1150 X1050 IF J$=='I' THEN R$=FILL$(' ',(MAX-LEN(T$))/2)&T$:GO TO 1150 X1060 IF J$=='R' THEN R$=FILL$(' ',MAX-LEN(T$))&T$:GO TO 1150 X1070 IF NOT(' ' INSTR T$) THEN R$=T$:GO TO 1150 X1080 R$='':A$=T$ X1090 S=MAX-LEN(A$) X1100 FOR I=1 TO LEN(A$) X1110 R$=R$&A$(I) X1120 IF A$(I)=' ' AND S>0 THEN S=S-1:R$=R$&' ' X1130 NEXT I X1140 IF LEN(R$)<MAX THEN A$=R$:R$='':GO TO 1090 X1150 R$=R$&GAP$ X1160 PRINT R$ X1170 IF NOT(DEST$=='scr') THEN PRINT#4,R$ X1180 RIGHE=RIGHE+1 X1190 END DEFine PPRINT X1200 : X1210 DEFine PROCedure FPRINT(T$) X1220 LOCal R$ X1230 IF J$=='L' THEN R$=T$ X1240 IF J$=='I' THEN R$=FILL$(' ',(MAX-LEN(T$))/2)&T$ X1250 IF J$=='R' THEN R$=FILL$(' ',MAX-LEN(T$))&T$ X1260 IF J$=='A' THEN R$=T$ X1270 R$=R$&GAP$ X1280 PRINT R$ X1290 IF NOT(DEST$=='scr') THEN PRINT#4,R$ X1300 RIGHE=RIGHE+1 X1310 END DEFine FPRINT X1320 : X1330 DEFine PROCedure CLOSE_FILES X1340 CLOSE#3 X1350 IF NOT(DEST$=='scr') THEN CLOSE#4 X1360 PRINT \\\'BYE'\\ X1370 END DEFine CLOSE_FILES X1380 : X1390 : X1400 : X1410 DEFine PROCedure LOOK(F$) X1420 OPEN_IN#3,'FLP1_'&F$&'_DOC':CLS X1430 FOR L=1 TO 100000 X1440 IF EOF(#3) THEN CLOSE#3:STOP X1450 A$=INKEY$(#3) X1460 IF CODE(A$)<32 THEN PRINT \\L,A$,CODE(A$)\\:ELSE PRINT A$; X1470 END FOR L X1480 END DEFine LOOK X1490 : X1500 DEFine PROCedure COLONNE X1510 LOCal LUN,GAP,COL,A$,PAGE X1520 CLS X1530 IF DEST$=='SCR' THEN PRINT 'ERRORE':PAUSE 50:GO TO 1750 X1540 INPUT 'SPAZIO FRA LE COLONNE:';GAP X1550 LUN=(RIGHE+1) DIV 2 X1560 PRINT 'LUNGHEZZA PAGINA:';LUN X1570 INPUT 'NUOVA LUNGHEZZA (<END> PER FINIRE):';A$:IF A$=='END' THEN GO TO 1750 X1580 IF NOT(A$='') THEN LUN='0'&A$:IF LUN=0 THEN PRINT 'ERRORE':PAUSE 50:GO TO 1750 X1590 DIM TEXT$(LUN,MAX*2+GAP):PAGE=1 X1600 SL=MAX X1610 OPEN_IN#3,DEST$&FILE$&'_LIS' X1620 DELETE DEST$&FILE$&'_PAG'&PAGE&'_COL' X1630 OPEN_NEW#4,DEST$&FILE$&'_PAG'&PAGE&'_COL' X1640 FOR LOOP=0 TO LUN:TEXT$(LOOP)='' X1650 FOR COL=1 TO 2 X1660 FOR LOOP=0 TO LUN X1670 IF EOF(#3) THEN EXIT COL X1680 INPUT#3,L$ X1690 L$=L$&FILL$(' ',80):L$=L$(1 TO SL+GAP) X1700 TEXT$(LOOP)=TEXT$(LOOP)&L$ X1710 END FOR LOOP X1720 END FOR COL X1730 CLS:FOR I=0 TO LUN:PRINT TEXT$(I):PRINT#4,TEXT$(I) X1740 IF EOF(#3) THEN CLOSE#4:CLOSE#3:ELSE CLOSE#4:PAGE=PAGE+1:GO TO 1620 X1750 END DEFine COLONNE END_OF_FILE if test 5591 -ne `wc -c <'TEXTPROC.BAS'`; then echo shar: \"'TEXTPROC.BAS'\" unpacked with wrong size! fi # end of 'TEXTPROC.BAS' fi if test -f 'coder.bas.uu' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'coder.bas.uu'\" else echo shar: Extracting \"'coder.bas.uu'\" \(7166 characters\) sed "s/^X//" >'coder.bas.uu' <<'END_OF_FILE' Xbegin 666 CODER.BAS XM,3 P($U!24X*,3$P($A%041%4@HQ,C @4U1/4 HQ,S @.@HQ-# @.@HQ-3 @ XM.@HQ-C @1$5&:6YE(%!23T-E9'5R92!605),25-4*$-!3BD*,3<P($Q/0V%L XM($Q/3U L5E0*,3@P($E&($-!3CTQ(%1(14X@34]$12 T.D-,4PHQ.3 @1D]2 XM($Q/3U ],2!43R!605)054Y4"C(P,"!04DE.5"-#04X[5D%23D%-120H3$]/ XM4"D[)R Z("<["C(Q,"!65#U605)465!%)2A,3T]0*0HR,C @4T5,96-T($]. XM(%94"C(S," ],3I04DE.5"-#04X[)TE.5$5'15([)PHR-# @/3(Z4%))3E0C XM0T%..R=35%))3D<[)PHR-3 @/3,Z4%))3E0C0T%..R=214%,.R<*,C8P(#U2 XM14U!24Y$15(@.E!224Y4(S0L)S\_/S\_/SLG"C(W,"!%3D0@4T5,96-T( HR XM.# @3D585"!,3T]0"C(Y,"!%3D0@1$5&:6YE(%9!4DQ)4U0*,S P(#H*,S$P XM(#H*,S(P($1%1FEN92!04D]#961U<F4@2$5!1$52"C,S,"!,3T-A;"!!)"Q, XM3T]0"C,T,"!$14Q%5$4@)T9,4#%?)R931B0F)U]005,G"C,U,"!/4$5.7TY% XM5R,T+"=&3% Q7R<F4T8D)B=?4$%3)PHS-C @4%))3E0C-"PG4%)/1U)!32 G XM.U-&)#LG*&EN<'5T+&]U='!U="D[)PHS-S @4%))3E0C- HS.# @4%))3E0C XM-"PG5%E012<*,SDP(%!224Y4(S0L)U-44DE.1R ]($%24D%9(%LQ+BXR-35= XM($]&($-(05([)PHT,# @4%))3E0C- HT,3 @4%))3E0C-"PG5D%2)PHT,C @ XM5D%23$E35",T"C0S,"!04DE.5",T"C0T,"!04DE.5",T+"="14=)3B H*B!4 XM2$4@4%)/1U)!32 J*2<*-#4P(%!224Y4(S0*-#8P($]014Y?24XC,RPG1DQ0 XM,5\G)E-&)"8G7U!3,2<*-#<P(%)%4&5A="!,3T]0"C0X,"!)1B!%3T8H(S,I XM(%1(14X@15A)5"!,3T]0"C0Y,"!)3E!55",S+$$D.E!224Y4(S0L020*-3 P XM($5.1"!215!E870@3$]/4 HU,3 @4%))3E0C-#I04DE.5",T+"=%3D0N("@J XM($]&(%!23T=204T@0ED@2%1!5" J*2<*-3(P($-,3U-%(S,Z0TQ/4T4C-#I0 XM4DE.5" G14Y$($]&(%!(05-%(#(G"C4S,"!%3D0@1$5&:6YE($A%041%4@HU XM-# @.@HU-3 @.@HU-C @.@HU-S @.@HU.# @1$5&:6YE(%!23T-E9'5R92!- XM04E."C4Y,"!$24T@5D%23D%-120H,C P+#(P*3I$24T@5D%25%E0124H,C P XM*3I605)054Y4/3 Z3$%35"0])R<*-C P($U/1$4@-#I005!%4B P.D-,4PHV XM,3 @24Y+(#0Z0U-)6D4@,BPQ.E!224Y4("=005-3)SLZ24Y+(#<Z4%))3E0@ XM)U!/4E0@4$%30T%,($-/3E9%4E1%4B<[.D-325I%(#$L,#I)3DL@-#I04DE. XM5" G("!_,3DX.2!"62!(5$%4)SI#4TE:12 R+# Z24Y+(#<Z4%))3E0@7%Q< XM"C8R,"!04DE.5" G24Y0550@1DE,14Y!344@5TE42$]55"!&3% Q7RXN+E]4 XM3TLG7%PG/SXG.SI)3E!55"!31B0Z248@4T8D/2<G(%1(14X@0TQ3.D=/(%1/ XM(#8Q, HV,S @0TQ3"C8T,"!/4$5.7TE.(S,L)T9,4#%?)R931B0F)U]43TLG XM"C8U,"!$14Q%5$4@)T9,4#%?)R931B0F)U]04S$G"C8V,"!/4$5.7TY%5R,T XM+"=&3% Q7R<F4T8D)B=?4%,Q)PHV-S @.@HV.# @14],/3 *-CDP(%!224Y4 XM(S0L)R@J($-/35!)3$52($E3("A#*3$Y.#D@0ED@2%1!5"!33T94("HI)UQ< XM7 HW,# @4D5096%T($U!24Y?3$]/4 HW,3 @248@14],(%1(14X@15A)5"!- XM04E.7TQ/3U *-S(P(% D/4E.4"0*-S,P($E&(%194$4],"!42$5.($=/(%1/ XM(#<Q, HW-# @248@5%E013TQ(%1(14X@7U!23T,Z1T\@5$\@-S$P"C<U,"!) XM1B!465!%/3(@5$A%3B!?05-324=..D=/(%1/(#<Q, HW-C @14Y$(%)%4&5A XM="!-04E.7TQ/3U *-S<P($-,3U-%(S,Z0TQ/4T4C-#I04DE.5"!<7%PG14Y$ XM($]&(%!(05-%(#$G"C<X,"!%3D0@1$5&:6YE($U!24X*-SDP(#H*.# P(#H* XM.#$P(#H*.#(P($1%1FEN92!&=4YC=&EO;B!)3E D"C@S,"!,3T-A;"!,3T]0 XM+$$D+$(D"C@T,"!!)#U,05-4)#I")#TG)SI%3TP], HX-3 @4D5096%T($Q/ XM3U *.#8P($E&($-/1$4H020I/#$P(%1(14X@5%E013U#3T1%*$$D*3I%6$E4 XM($Q/3U *.#<P($E&($5/1B@C,RD@5$A%3B!%3TP],3I'3R!43R Y-S *.#@P XM($$D/4E.2T59)"@C,RD*.#DP($5.1"!215!E870@3$]/4 HY,# @4D5096%T XM($Q/3U *.3$P($E&($5/1B@C,RD@5$A%3B!%3TP],3I'3R!43R Y-S *.3(P XM($$D/4E.2T59)"@C,RDZ3$%35"0]020*.3,P($E&($-/1$4H020I/#TQ,"!4 XM2$5.($58250@3$]/4 HY-# @0B0]0B0F020*.34P($5.1"!215!E870@3$]/ XM4 HY-C @248@5%E013TP(%1(14X@4%))3E0@7%P*.3<P(%!224Y4($(D(3L* XM.3@P(%)%5'5R;B!") HY.3 @14Y$($1%1FEN92!)3E D"C$P,# @.@HQ,#$P XM(#H*,3 R,"!$149I;F4@1G5.8W1I;VX@3D575D%2)"A6)"Q462D*,3 S,"!, XM3T-A;"!,3T]0+$$D+$DL5"Q65B0*,3 T,"!)/3 *,3 U,"!65B0]5B0H3$5. XM*%8D*2D*,3 V,"!)1B!65B0@24Y35%(@)R0E)R!42$5.(%96)#U6)"@Q(%1/ XM($Q%3BA6)"DM,2DZ14Q312!65B0]5B0*,3 W,"!&3U(@3$]/4#TQ(%1/(%9! XM4E!53E0*,3 X,"!)1B!605).04U%)"A,3T]0*3U65B0@5$A%3B!)/4Q/3U Z XM15A)5"!,3T]0"C$P.3 @14Y$($9/4B!,3T]0"C$Q,# @248@23P^,"!42$5. XM($=/(%1/(#$Q-C *,3$Q,"!605)054Y4/59!4E!53E0K,0HQ,3(P(%0]5B0H XM3$5.*%8D*2D@24Y35%(@)R0E)PHQ,3,P(%9!4DY!344D*%9!4E!53E0I/596 XM) HQ,30P(%9!4E194$4E*%9!4E!53E0I/3,*,3$U,"!)1B!462!/4B!4/3(@ XM5$A%3B!605)465!%)2A605)054Y4*3TQ.D5,4T4@248@5#TQ(%1(14X@5D%2 XM5%E0124H5D%24%5.5"D],@HQ,38P(%)%5'5R;B!65B0*,3$W,"!%3D0@1$5& XM:6YE($Y%5U9!4@HQ,3@P(#H*,3$Y," Z"C$R,# @.@HQ,C$P($1%1FEN92!0 XM4D]#961U<F4@7T%34TE'3@HQ,C(P($Q/0V%L($$D"C$R,S @020]3D575D%2 XM)"A0)"PP*0HQ,C0P(%!224Y4(S0L020[)R Z/2 G.TE.4"0[)SLG"C$R-3 @ XM14Y$($1%1FEN92!?05-324=."C$R-C @.@HQ,C<P(#H*,3(X,"!$149I;F4@ XM4%)/0V5D=7)E(%]04D]#"C$R.3 @3$]#86P@3$]/4 HQ,S P(%!224Y4(%Q< XM"C$S,3 @4D5096%T($Q/3U *,3,R,"!)1B!0)#T])T9/4B<@5$A%3B!04DE. XM5",T.E]&3U(Z15A)5"!,3T]0"C$S,S @248@4"0]/2=#3%,G(%1(14X@4%)) XM3E0C-"PG5U))5$4@*$-(4B@R-BDI.R<Z15A)5"!,3T]0"C$S-# @248@4"0] XM/2=04DE.5"<@5$A%3B!?4%))3E0Z15A)5"!,3T]0"C$S-3 @248@4"0]/2=2 XM14TG(%1(14X@4%))3E0C-"PG*"H@)SM)3E D.R<@*BDG.D58250@3$]/4 HQ XM,S8P($E&(% D/3TG3D585"<@5$A%3B!04DE.5",T+"=%3D0[("@J($Q/3U @ XM)SLZ4"0]24Y0)#I04DE.5",T.U D.R<@*BDG.E!224Y4(S0Z15A)5"!,3T]0 XM"C$S-S @15A)5"!,3T]0"C$S.# @14Y$(%)%4&5A="!,3T]0"C$S.3 @14Y$ XM($1%1FEN92!?4%)/0PHQ-# P(#H*,30Q," Z"C$T,C @1$5&:6YE(%!23T-E XM9'5R92!?4%))3E0*,30S,"!,3T-A;"!!)"Q")"Q,3T]0"C$T-# @4D5096%T XM($Q/3U *,30U,"!)1B!,05-4)#U#2%(D*#$P*2!42$5.(%!224Y4(S0L)U=2 XM251%3$X[)SI%6$E4($Q/3U *,30V,"!!)#U)3E D"C$T-S @248@5%E013TT XM(%1(14X@0B0]020Z020](B<G(CI'3R!43R Q-3,P"C$T.# @248@5%E013TS XM(%1(14X@020](B<B)D$D)B(G(CI%3%-%($$D/41/3$Q!4B0H020I"C$T.3 @ XM248@020])R<@5$A%3B!!)#TB)R<B"C$U,# @248@3$%35"0]0TA2)"@Q,"D@ XM5$A%3B!04DE.5",T+"=74DE414Q.("@G.T$D.R<I.R<Z1T\@5$\@,38P, HQ XM-3$P($(D/4E.4"0*,34R,"!)1B!!)#TG)R!42$5.($$D/2(G)R(*,34S,"!) XM1B!")#TG(2<@5$A%3B!04DE.5",T+")74DE412 H(CM!)#LB+"<@)RD[(CI' XM3R!43R Q-3<P"C$U-# @248@0B0])RPG(%1(14X@4%))3E0C-"PB5U))5$4@ XM*"([020[(BPG(" @(" @(" G*3LB.D=/(%1/(#$U-S *,34U,"!)1B!")#TG XM.R<@5$A%3B!04DE.5",T+")74DE412 H(CM!)#LB*3LB.D=/(%1/(#$U-S * XM,34V,"!)1B!")#TG7"<@5$A%3B!04DE.5",T+")74DE414Q.("@B.T$D.R(I XM.R(Z1T\@5$\@,34W, HQ-3<P($E&($Q!4U0D/4-(4B0H,3 I(%1(14X@1T\@ XM5$\@,38P, HQ-3@P($$D/4E.4"0Z248@020])R<@04Y$(%194$4]-2!!3D0@ XM3$%35"0]0TA2)"@Q,"D@5$A%3B!'3R!43R Q-C P"C$U.3 @14Y$(%)%4&5A XM="!,3T]0"C$V,# @14Y$($1%1FEN92!?4%))3E0*,38Q," Z"C$V,C @.@HQ XM-C,P(#H*,38T,"!$149I;F4@1G5.8W1I;VX@1$],3$%2)"A3)"D*,38U,"!, XM3T-A;"!!)"Q)"C$V-C @020])R<*,38W,"!)1B!,14XH4R0I/3 @5$A%3B!' XM3R!43R Q-S$P"C$V.# @1D]2($D],2!43R!,14XH4R0I"C$V.3 @248@3D]4 XM*%,D*$DI($E.4U12("<D)2<I(%1(14X@020]020F4R0H22D*,3<P,"!.15A4 XM($D*,3<Q,"!2151U<FX@020*,3<R,"!%3D0@1$5&:6YE($1/3$Q!4B0*,3<S XM," Z"C$W-# @.@HQ-S4P(#H*,3<V,"!$149I;F4@4%)/0V5D=7)E(%]&3U(* XM,3<W,"!214UA<FL@+BXN+BXN+BXN03 D/2=605(G($$Q)#TG24Y)6B<@03(D XM/2=&24Y%)R!!,R0])U-415 G"C$W.# @3$]#86P@020L03 D+$$Q)"Q!,B0L XM03,D+%-4) HQ-SDP($$P)#U)3E D"C$X,# @020]24Y0)#I214UA<FL@5$]' XM3$E%(" ]"C$X,3 @03$D/41/3$Q!4B0H24Y0)"D*,3@R,"!!)#U)3E D.D$D XM/4E.4"0Z020]24Y0)#I214UA<FL@3U9615)/.B!?5$]?"C$X,S @03(D/41/ XM3$Q!4B0H24Y0)"D*,3@T,"!)1B!,05-4)#U#2%(D*#$P*2!42$5.(%-4)#TG XM(%1/("<Z03,D/2<Q)SI'3R!43R Q.#@P"C$X-3 @020]24Y0)#I!)#U)3E D XM.D$D/4E.4"0Z4D5-87)K($]65D523SH@7U-415!?"C$X-C @03,D/4E.4"0* XM,3@W,"!)1B!!,R0])RTQ)R!42$5.(%-4)#TG($1/5TY43R G.D5,4T4@4U0D XM/2<@5$\@)PHQ.#@P($E&($$S)#TG,2<@3U(@03,D/2<M,2<@5$A%3B!!,"0] XM3D575D%2)"A!,"0L,2DZ4%))3E0C-"PG1D]2("<[03 D.R<@.CT@5%)53D,H XM)SM!,20[)RDG.U-4)#LG(%1254Y#*"<[03(D.R<I($1/("<Z4%))3E0C-"PG XM0D5'24X@*"H@1D]2($Q/3U @*BDG.D=/(%1/(#$Y,# *,3@Y,"!!,"0]3D57 XM5D%2)"A!,"0L,"DZ4%))3E0C-"Q!,"0[)R Z/2 G.T$Q)#LG.R<Z4%))3E0C XM-"PG5TA)3$4@)SM!,"0[)R \/2 G.T$R)#LG($1/("<Z4%))3E0C-"PG0D5' XM24X@*"H@5TA)3$4@3$]/4" J*2<Z4%))3E0C-"Q!,"0[)R Z/2 G.T$P)#LG XM("L@*"<[03,D.R<I.R<*,3DP,"!%3D0@1$5&:6YE(%]&3U(*,3DQ," Z"C$Y X%,C @.@H[ X Xend END_OF_FILE if test 7166 -ne `wc -c <'coder.bas.uu'`; then echo shar: \"'coder.bas.uu'\" unpacked with wrong size! fi # end of 'coder.bas.uu' fi if test -f 'rlan.bas.uu' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'rlan.bas.uu'\" else echo shar: Extracting \"'rlan.bas.uu'\" \(955 characters\) sed "s/^X//" >'rlan.bas.uu' <<'END_OF_FILE' Xbegin 666 TOBORLAN.BAS XM,3 P($U/1$4@- HQ,3 @3U!%3B,Q+$-/3@HQ,C @4$%015(@,#I)3DL@-#I# XM3%,*,3,P($-325I%(#(L,3I04DE.5" G4$%34R<[.DE.2R W.E!224Y4("=0 XM3U)4)SLZ0U-)6D4@,"PP.E!224Y4("<@?R!(5$%4)SLZ0U-)6D4@,RPQ.E!2 XM24Y4("<@5$\@5%520D]005-#04PG.SI#4TE:12 P+# Z4%))3E0@)W\@0D]2 XM3$%.1"<*,30P($-325I%(#(L, HQ-3 @4%))3E0@7%P*,38P(%!224Y4("=) XM3E!55"!33U520T4@*%=)5$A/550@1DQ0,5\N+BY?4$%3*2=<7"<_/B<["C$W XM,"!)3E!55"!31B0Z248@4T8D/2<G(%1(14X@1T\@5$\@,3(P"C$X,"!#3%,* XM,3DP(#H*,C P($]014Y?24XC,RPG1DQ0,5\G)E-&)"8G7U!!4R<*,C$P($1% XM3$5412 G1DQ0,5]_)R931B0F)U]005,G"C(R,"!/4$5.7TY%5R,T+"=&3% Q XM7W\G)E-&)"8G7U!!4R<*,C,P(#H*,C0P(%)%4&5A="!,3T]0"C(U,"!)1B!% XM3T8H(S,I(%1(14X@15A)5"!,3T]0"C(V,"!!)#U)3DM%620H(S,I.E!224Y4 XM($$D.PHR-S @248@0T]$12A!)"D],3 @5$A%3B!04DE.5",T+$-(4B0H,3,I XM.T-(4B0H,3 I.SI%3%-%(%!224Y4(S0L020["C(X,"!%3D0@4D5096%T($Q/ XM3U *,CDP(%!224Y4(S0L1DE,3"0H0TA2)"@R-BDL,3 I"C,P,"!#3$]312,S XH"C,Q,"!#3$]312,T"C,R,"!04DE.5"!<7%PG14Y$($]&(%1!4TLG"D]3 X Xend END_OF_FILE if test 955 -ne `wc -c <'rlan.bas.uu'`; then echo shar: \"'rlan.bas.uu'\" unpacked with wrong size! fi # end of 'rlan.bas.uu' fi if test -f 'token.bas.uu' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'token.bas.uu'\" else echo shar: Extracting \"'token.bas.uu'\" \(3788 characters\) sed "s/^X//" >'token.bas.uu' <<'END_OF_FILE' Xbegin 666 TOKEN.BAS XM,3 P(%10)#TG)B ](CLZ+"%<)R8B)R(F0TA2)"@Q,"D*,3$P($U/1$4@-#I/ XM4$5.(S$L0T]..E!!4$52(# Z24Y+(#0Z0TQ3"C$R,"!#4TE:12 S+#$Z4%)) XM3E0@)U!!4U,G.SI)3DL@-SI04DE.5" G4$]25"!43TM%3DE315(G.SI#4TE: XM12 P+# Z24Y+(#0Z4%))3E0@)R!_,3DX.2!"62!(5$%4($E404Q9)UQ<7#I) XM3DL@-PHQ,S @0U-)6D4@,BPP"C$T,"!04DE.5" G24Y315)4($Y!3453(%=) XM5$A/550@1DQ0,5\N+BY?15A4("$G7%P*,34P($E.4%54("="05-)0R @4T]5 XM4D-%.B<[4T8D"C$V,"!)3E!55" G4$%30T%,($]"2D5#5#HG.T]&) HQ-S @ XM248@4T8D/2<G($]2($]&)#TG)R!42$5.($=/(%1/(#$Q, HQ.# @0TQ3"C$Y XM,"!/4$5.7TE.(S,L)T9,4#%?)R931B0*,C P($E&($]&)#P^)R<@5$A%3B!$ XM14Q%5$4@)T9,4#%?)R9/1B0F)U]43TLG.D]014Y?3D57(S0L)T9,4#%?)R9/ XM1B0F)U]43TLG.D5,4T4@3U!%3B,T+$-/3CI724Y$3U<C-"PU,3(L-3 L,"PQ XM-3 *,C$P(%!224Y4("=43TM%3DE:12 N("X@+B=<7 HR,C @5$]+14X*,C,P XM($-,3U-%(S,Z0TQ/4T4C-#I#3%,Z4%))3E0@)T9)3D4@3$%63U)/)SI"1450 XM(#$P,# P+# *,C0P(%-43U *,C4P(#H*,C8P(#H*,C<P($1%1FEN92!&=4YC XM=&EO;B!)3B0H5"0I"C(X,"!,3T-A;"!,3T]0+$$D+$(D"C(Y,"!!)#TG)SI" XM)#TG)SI%3TP], HS,# @4D5096%T($Q/3U *,S$P($E&($5/1B@C,RD@5$A% XM3B!415)-)#TG14]&)SI%6$E4($Q/3U *,S(P($$D/4E.2T59)"@C,RDZ4%)) XM3E0@020[.DE&($$D/4-(4B0H,3 I(%1(14X@14],/3$Z5$52320]020Z15A) XM5"!,3T]0"C,S,"!)1B!!)"!)3E-44B!4)"!42$5.(%1%4DTD/4$D.D58250@ XM3$]/4 HS-# @0B0]0B0F020*,S4P($5.1"!215!E870@3$]/4 HS-C @4D54 XM=7)N($(D"C,W,"!%3D0@1$5&:6YE($E.) HS.# @.@HS.3 @1$5&:6YE(%!2 XM3T-E9'5R92!43TM%3@HT,# @3$]#86P@3$]/4"Q!) HT,3 @020]24XD*"<@ XM)RDZ4D5-87)K($Y532!,24Y%00HT,C @248@5$52320])T5/1B<@5$A%3B!' XM3R!43R V-3 *-#,P(%!224Y4(S0L0TA2)"@P*3M!)#L*-#0P($DD/4E.)"@G XM(#H](R<I.E)%36%R:R!)4U1255H@3R!!4U-%1TX*-#4P($E&(%1%4DTD/2=% XM3T8G(%1(14X@1T\@5$\@-C4P"C0V,"!)1B!415)-)#TG/2<@5$A%3B!04DE. XM5",T+$-(4B0H,BD[220[.E D/4E.)"@G.B<I.E!224Y4(S0L0TA2)"@U*3M0 XM)#LZ1T\@5$\@-3$P"C0W,"!)1B!))#T])U)%32<@3U(@220]/2=214U!4DLG XM(%1(14X@4%))3E0C-"Q#2%(D*#$I.R=214TG.T-(4B0H,RD[24XD*"<G*3I' XM3R!43R T,3 *-#@P($E&($DD/3TG248G(%1(14X@4%))3E0C-"Q#2%(D*#$I XM.R=)1B<[.E D/4E.)"@G("<I.E!224Y4(S0L0TA2)"@U*3M0)#LZ1T\@5$\@ XM-#0P"C0Y,"!04DE.5",T+$-(4B0H,2D[220["C4P,"!$245325,D/2<G.DE& XM(%1%4DTD/2(C(B!42$5.($1)15-)4R0])R,G"C4Q,"!&24Y%"C4R,"!)1B!4 XM15)-)#TG14]&)R!42$5.($=/(%1/(#8U, HU,S @248@2T594D]7*#$I/3@@ XM5$A%3B!'3R!43R V-3 *-30P(#H*-34P(% D/4E.)"@G)B A7#TL.SHB)R8B XM)R(I.E)%36%R:R!005)!34544DD*-38P(% D/41)15-)4R0F4"0Z1$E%4TE3 XM)#TG)PHU-S @248@5$52320])R(G($]2(%1%4DTD/2(G(B!42$5.(% D/4E. XM)"A415)-)"DZ4%))3E0C-"Q#2%(D*#,I.U D.SI0)#U)3B0H5% D*3I)1B!4 XM15)-)#P^0TA2)"@Q,"D@5$A%3B!04DE.5",T+$-(4B0H-"D[5$52320[.D=/ XM(%1/(#4Q,#HZ14Q312!'3R!43R U,3 Z4D5-87)K(%-44DE.1T$*-3@P($E& XM(% D/3TG5$A%3B<@5$A%3B!04DE.5",T.E!224Y4(S0L0TA2)"@Q*3LG5$A% XM3B<Z1T\@5$\@-#0P"C4Y,"!)1B!0)#T])T5,4T4G(%1(14X@4%))3E0C-#I0 XM4DE.5",T+$-(4B0H,2D[)T5,4T4G.D=/(%1/(#0T, HV,# @248@5$52320] XM0TA2)"@Q,"D@5$A%3B!04DE.5",T+$-(4B0H-2D[4"0Z1T\@5$\@-#$P"C8Q XM,"!)1B!415)-)#P^)SHG(%1(14X@4%))3E0C-"Q#2%(D*#4I.U D.T-(4B0H XM-"D[5$52320["C8R,"!)1B!415)-)#TG.B<@5$A%3B!04DE.5",T+$-(4B0H XM-2D[4"0Z1T\@5$\@-#0P"C8S,"!)1B!415)-)#TG14]&)R!42$5.($=/(%1/ XM(#8U, HV-# @1T\@5$\@-3$P"C8U,"!%3D0@1$5&:6YE(%1/2T5."C8V," Z XM"C8W,"!$149I;F4@4%)/0V5D=7)E($9)3D4*-C@P($E&(%1%4DTD/2<Z)R!4 XM2$5.(%!224Y4(S0Z1T\@5$\@-#0P"C8Y,"!)1B!415)-)#U#2%(D*#$P*2!4 XM2$5.(%!224Y4(S0Z1T\@5$\@-#$P"C<P,"!%3D0@1$5&:6YE($9)3D4*-S$P XM(#H*-S(P($1%1FEN92!04D]#961U<F4@3$]/2RA&)"D*-S,P($Q/0V%L($$D XM+$Q/3U *-S0P($U/1$4@- HW-3 @3U!%3E])3B,S+"=&3% Q7R<F1B0F)U]4 XM3TLG"C<V,"!215!E870@3$]/4 HW-S @248@14]&*",S*2!42$5.($58250@ XM3$]/4 HW.# @020]24Y+15DD*",S*3I)1B!+15E23U<H,2D]."!42$5.($58 XM250@3$]/4 HW.3 @248@0T]$12A!)"D\,3 @5$A%3B!35%))4" W.DE.2R P XM.E!224Y4(%PG3$E.15!23T-!4U-)5$585%-%4%)%6%!24$%212<H*$-/1$4H XM020I*2HT*S$@5$\@*$-/1$4H020I*2HT*S0I+#LZ4U1225 @,#I)3DL@-SI' XM3R!43R X,C *.# P($E&($$D/4-(4B0H,3 I(%1(14X@4%))3E0@)[XG.D=/ XM(%1/(#@R, HX,3 @4%))3E0@020["C@R,"!%3D0@4D5096%T($Q/3U *.#,P X=($-,3U-%(S,*.#0P($5.1"!$149I;F4@3$]/2PH@ X Xend END_OF_FILE if test 3788 -ne `wc -c <'token.bas.uu'`; then echo shar: \"'token.bas.uu'\" unpacked with wrong size! fi # end of 'token.bas.uu' fi echo shar: End of archive 1 \(of 1\). cp /dev/null ark1isdone MISSING="" for I in 1 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have the archive. rm -f ark[1-9]isdone else echo You still must unpack the following archives: echo " " ${MISSING} fi exit 0 exit 0 # Just in case... -- Kent Landfield INTERNET: kent@sparky.IMD.Sterling.COM Sterling Software, IMD UUCP: uunet!sparky!kent Phone: (402) 291-8300 FAX: (402) 291-4362 Please send comp.sources.misc-related mail to kent@uunet.uu.net.