100 REM CPCPARA.BAS (v1.1) -- receiving/sending with the parallel adapter 110 REM Marco Vieth, 21.2.1995 120 REM 130 CLEAR:DEFSTR a:DEFINT b-z 140 OUT &EF00,&FF:'inactive 150 ladr=&A000 160 IF PEEK(ladr)=&C3 THEN 200 170 PRINT"Please wait...":MEMORY ladr-1 180 sum=0:FOR i=&A000 TO &A20F:READ t$:POKE i,VAL("&"+t$):sum=UNT(sum+PEEK(i)):NEXT:READ t$:IF VAL("&"+t$)<>sum THEN PRINT"Checksum ERROR !":POKE ladr,0:STOP 190 'LOAD"!CPCPARA.BIN",ladr 200 MODE 2:PRINT"R)eceive or S)end ? "; 210 a=UPPER$(INKEY$):IF a<>"R" AND a<>"S" THEN 210 220 PRINT a 230 IF a="S" THEN GOTO 490 240 REM 250 REM Receiving Part 260 REM 270 ladr=&A000:rbyte=ladr:rstr=rbyte+3:rfile=rstr+3 280 MODE 2:PRINT"CPCPARA v1.1 - receiving part" 290 PRINT"This program allows you to receive files from a PC using the parallel adapter":PRINT 300 a=SPACE$(255) 310 CALL rstr,@a:IF LEN(a)=0 THEN 310 320 IF a="TRM:" THEN 410 330 PRINT"Receiving file ";a 340 OPENOUT "!"+a 350 CALL rstr,@a:IF LEN(a)>0 THEN PRINT#9,a;:GOTO 350 360 CLOSEOUT 370 PRINT"Ok.":PRINT:GOTO 300 380 END 390 ' 400 'Receive-Terminal 410 CLS:PRINT"Terminal Mode" 420 CALL rstr,@a:IF LEN(a)=0 THEN 420 430 PRINT a; 440 GOTO 420 450 ' 460 REM 470 REM Sending Part 480 REM 490 ladr=&A000:sbyte=ladr+9:sstr=sbyte+3:sfile=sstr+3:ec=sfile+3 500 IF PEEK(ladr)<>&C3 THEN RUN 510 buffer=&9000:CLOSEIN:CLOSEOUT:MEMORY buffer-1 520 MODE 2:PRINT"CPCPARA v1.1 - sending part" 530 PRINT"This program allows you to send files to a PC using the parallel adapter" 540 PRINT:PRINT"File to send (ret=Terminal, !=test): ":INPUT a 550 IF a="" THEN 760 ELSE IF a="!" THEN 880 560 PRINT"Sending a File ... (works from DISK only!)" 570 CALL sfile,@a,buffer 580 IF PEEK(ec)=1 THEN PRINT"Error ! Press a key to retry ...":CALL &BB18:GOTO 570 590 PRINT"Ok.":PRINT:GOTO 540 600 ' 610 'Sendfile in Basic (not used any more): 620 li=0 630 OPENIN "!"+a 640 i=INSTR(a,":"):IF i>0 THEN a=RIGHT$(a,LEN(a)-i) 650 CALL sstr,@a:IF PEEK(ec)=1 THEN 650 660 WHILE NOT EOF:LINE INPUT #9,a 670 PRINT"Line ";li;CHR$(13);: li=li+1 680 a=a+CHR$(13)+CHR$(10) 690 CALL sstr,@a:IF PEEK(ec)=1 THEN 690 700 WEND 710 CALL sbyte,0:'send end 720 CLOSEIN 730 END 740 ' 750 'Terminal 760 CLS:PRINT"CPC-Terminal started." 770 PRINT"Exit with '#'." 780 a="TRM:":CALL sstr,@a:'terminal mode 790 IF PEEK(ec)=1 THEN GOTO 780 800 INPUT "> ",a 810 IF a="#" THEN 850 820 IF a="" THEN a=CHR$(13) 830 CALL sstr,@a:IF PEEK(ec)=1 THEN GOTO 830 840 GOTO 800 850 CALL sbyte,0:'send end 860 END 870 ' 880 PRINT"test adapter" 890 PRINT"sending nibble..." 900 busy=INP(&F500) AND &40 910 FOR i=0 TO &FF STEP 8 920 PRINT HEX$(i\8);" "; 930 OUT &EF00,i:IF (INP(&F500) AND &40)=busy THEN 930 940 busy=busy XOR &40 950 NEXT 960 GOTO 910 970 END 980 ' 990 DATA C3,A8,A0,C3,BB,A0,C3,CC,A0,C3,D2,A1,C3,DF,A1,C3 1000 DATA EF,A1,00,C5,D5,E5,11,20,4E,06,F5,ED,78,E6,40,6F 1010 DATA 3E,BF,06,EF,ED,79,06,F5,ED,78,4F,E6,40,AD,20,06 1020 DATA 1B,7A,B3,20,F1,37,F5,3E,FF,06,EF,ED,79,F1,38,3A 1030 DATA 1E,00,16,08,F3,21,10,27,06,F5,79,E6,40,4F,ED,78 1040 DATA E6,40,A9,20,08,2B,7C,B5,20,F4,37,18,1D,3E,DF,06 1050 DATA EF,ED,79,ED,79,06,F5,ED,78,FB,4F,17,17,CB,1B,06 1060 DATA EF,3E,FF,ED,79,15,20,CC,A7,7B,E1,D1,C1,FB,C9,CD 1070 DATA 13,A0,38,23,77,B7,37,28,1E,47,23,7E,23,66,6F,04 1080 DATA 18,12,11,0A,00,CD,13,A0,30,08,1B,7A,B3,20,F6,37 1090 DATA 18,05,77,23,10,EC,A7,C9,FE,01,C0,DD,6E,00,DD,66 1100 DATA 01,CD,13,A0,77,3E,00,8F,23,77,C9,FE,01,C0,DD,6E 1110 DATA 00,DD,66,01,E5,CD,7F,A0,E1,D0,36,00,C9,F1,37,C9 1120 DATA F5,CD,DB,A0,38,F7,F1,0F,0F,0F,0F,C5,D5,E6,0F,07 1130 DATA 07,07,E6,7F,4F,11,30,75,06,F5,ED,78,E6,40,28,0B 1140 DATA 1B,7A,B3,20,F3,37,18,15,11,30,75,06,EF,ED,49,06 1150 DATA F5,ED,78,E6,40,20,06,1B,7A,B3,20,F3,37,3E,FF,06 1160 DATA EF,ED,79,D1,C1,C9,78,B1,C8,79,CD,D0,A0,D8,03,18 1170 DATA 06,7E,23,CD,D0,A0,D8,0B,78,B1,20,F5,C9,47,E5,C5 1180 DATA CD,77,BC,C1,E3,DD,E1,3F,D8,48,06,00,CD,16,A1,38 1190 DATA 73,DD,7E,12,FE,16,30,22,21,10,A2,54,5D,D5,13,36 1200 DATA 00,01,7F,00,ED,B0,D1,DD,E5,E1,01,45,00,ED,B0,21 1210 DATA 10,A2,01,80,00,CD,16,A1,38,4A,ED,5B,7D,BE,CD,80 1220 DATA BC,38,04,FE,0F,28,42,21,68,00,19,4E,36,00,23,46 1230 DATA 36,00,21,95,00,19,7E,91,77,23,7E,98,77,23,7E,DE 1240 DATA 00,77,21,53,00,19,7E,23,66,6F,2B,03,59,50,7A,B3 1250 DATA 28,C8,01,80,00,EB,B7,ED,42,30,03,B7,09,4D,EB,CD 1260 DATA 16,A1,30,EA,CD,7A,BC,37,C9,3E,00,CD,D0,A0,38,F4 1270 DATA CD,7A,BC,3F,C9,DD,6E,00,DD,66,01,7E,23,5E,23,56 1280 DATA EB,C9,FE,01,37,20,31,DD,7E,00,CD,D0,A0,18,29,FE 1290 DATA 01,37,20,24,CD,C5,A1,4F,06,00,CD,16,A1,18,19,FE 1300 DATA 02,37,20,14,DD,5E,00,DD,56,01,DD,23,DD,23,D5,CD 1310 DATA C5,A1,D1,CD,2D,A1,18,00,3E,00,CE,00,32,12,A0,C9 1320 DATA EF9B