home *** CD-ROM | disk | FTP | other *** search
- 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
-