100 RESET 10
110 DIM A$[128],L$[50]
120 CONTROL 10,5 ; 48
130 CONTROL 10,3 ; 15 ! 9600 BAUDS
200 IMAGE #,B
210 IMAGE #,A
220 Q$=CHR$ (34)
300 ON KEY# 1," GET TEXT" GOTO 1000
305 ON KEY# 7,"   QUIT" GOTO 900
310 ON KEY# 2,"GET GRAPH" GOTO 3000
320 ON KEY# 3,"SEND GRAPH" GOTO 4000
330 CLEAR
340 DISP "  -------------------------"
350 DISP "  | SERIAL FILE TRANSFERT |"
360 DISP "  -------------------------"
370  DISP @ DISP "  (c) 2011 guillaume.tello@orange.fr"
380 KEY LABEL
390 GOTO 390
900 CLEAR @ DISP "  Bye..."
910 END
1000 CLEAR
1010 DISP "  ---------------------------"
1020 DISP "  | Receiver for TEXT files |"
1025 DISP "  ---------------------------"
2000 DISP @ DISP "  Waiting for the file name..."
2010 ENTER 10 ; F$
2020 DISP "  Name is         : ";F$
2030 OUTPUT 10 USING 200 ; 86
2040 ENTER 10 ; A$
2050 T=VAL (A$)
2060 DISP "  # of blocks     : ";T
2070 CREATE F$,T
2080 ASSIGN# 1 TO  F$
2090 DISP "  File created"
2100 OUTPUT 10 USING 200 ; 86
2110 ENTER 10 ; A$
2120 L=VAL (A$)
2130 DISP "  # of lines      : ";L
2140 DISP @ DISP "  Receiving lines..."
2150 DISP
2160 OUTPUT 10 USING 200 ; 86
2170 FOR I=1 TO L
2180 ENTER 10 ; A$
2190 PRINT# 1 ; A$
2200 DISP A$
2210 OUTPUT 10 USING 200 ; 86
2220 NEXT I
2230 ASSIGN# 1 TO  *
2240 DISP
2250 DISP "  File received !"
2260 DISP
2270 DISP "  Now type this:"
2275 DISP "  --------------" @ DISP
2280 DISP "  SCRATCH (to clear memory)"
2285 DISP "  -> eventually ASSEMBLER if working with an ASM source"
2290 DISP "  GET ";Q$;F$;Q$;" (to load the program)"
2300 DISP "  STORE ";Q$;"filename";Q$;" (to save a BASIC PROG)"
2310 DISP "  -> or use ASTORE if it is an ASSEMBLY source"
2320 DISP "  PURGE ";Q$;F$;Q$;" (to remove text file)"
2330 DISP @ DISP "  Bye..."
2340 END
3000 CLEAR
3010 DISP "  ----------------------------"
3020 DISP "  | Receiver for GRAPH files |"
3025 DISP "  ----------------------------"
3030 DISP
3050 GRAPH @ GCLEAR
3060 SCALE 0,1,0,1 @ MOVE 0,1
3080 FOR I=1 TO 240
3090 OUTPUT 10 USING 210 ; Q$
3100 ENTER 10 USING "#,50A" ; L$
3110 BPLOT L$,50
3120 NEXT I
3130 ALPHA @ CLEAR
3140 DISP "  GRAPH received!"
3150 DISP @ DISP "  Now you can type GSTORE ";Q$;"filename";Q$
3160 DISP "  to save the image."
3170 DISP
3180 DISP "  Bye.."
3190 END
4000 CLEAR
4050 GRAPH
4060 SCALE 0,1,0,239
4080 FOR I=239 TO 0 STEP -1
4085 MOVE 0,I
4090 BREAD L$,50
4100 OUTPUT 10 USING "#,50A" ; L$
4120 NEXT I
4130 ALPHA @ CLEAR
4140 DISP "  GRAPH SENT!"
4170 DISP
4180 DISP "  Bye.."
4190 END