home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 June / PCO_06_97.ISO / filesbbs / DOS / CPCEMU14.ARJ / CPCPARA.BAS < prev    next >
Encoding:
BASIC Source File  |  1995-12-09  |  4.6 KB  |  124 lines

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