home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / maibasicfour / mbfshl.atr < prev    next >
Text File  |  2020-01-01  |  4KB  |  75 lines

  1. 0010 REM"MBFSHL.ATR: A TAPE READER & WRITER
  2. 0020 BEGIN
  3. 0200 INPUT (0,ERR=200)'CS',"COLUMBIA UNIVERISITY KERMIT TAPE READER AND WRITE
  4. 0200:R",'LF',"(R)ead,(W)rite? ",'CI',X$; IF CTL>1 GOTO 9000
  5. 0210 ON INT((POS(X$="RrWw")+1)/2) GOTO 200,800,600
  6. 0599 REM"WRITE A TAPE
  7. 0600 INPUT"WRITE A TAPE TO SEND TO COLUMBIA UNIVERSITY",'LF',"ENTER FILE NAME
  8. 0600: ",IFILE$;IF CTL>1 CLOSE(3,IND=9);GOTO 9000
  9. 0610 CLOSE(4);OPEN(4,ERR=600)IFILE$
  10. 0615 FID4$=FID(4); IF ASC(FID4$(10))=4 CLOSE(4);LISTPROGRAM IFILE$,"TEMP";OPE
  11. 0615:N(4)"TEMP" ELSE IF ASC(FID4$(10))>1 GOTO 600
  12. 0620 CLOSE(3);OPEN(3)"R0"
  13. 0625 IFILE=IFILE+1
  14. 0630 IF IFILE=1 CLOSE(3);OPEN(3,SEQ=0)"R0";DIM OUT$(80);OUT$(1)="VOL1KERMIT";
  15. 0630:WRITERECORD(3,TBL=9950)OUT$;CLOSE(3);OPEN(3)"R0"
  16. 0640 DIM OUT$(80);OUT$(1)="HDR1",OUT$(5)=IFILE$,OUT$(22)="KERMIT0001"+STR(IFI
  17. 0640:LE:"0000")+"000100 88010 88010 000000"
  18. 0650 WRITERECORD(3,TBL=9950)OUT$;CLOSE(3);OPEN(3)"R0"
  19. 0660 OUT$(1)="HDR2D0819200300",OUT$(50)="00"
  20. 0670 WRITERECORD(3,TBL=9950)OUT$;CLOSE(3);OPEN(3)"R0"
  21. 0680 DIM OUT$(8192),OUT0$(0)
  22. 0690 READ(4,END=720)R$
  23. 0700 A=LEN(R$);IF LEN(OUT0$)+4+A>8192 WRITERECORD(3,TBL=9950)OUT0$;OUT0$="" F
  24. 0700:I; OUT0$=OUT0$+STR(A+4:"0000")+R$;GOTO 690
  25. 0720 IF OUT0$>"" WRITERECORD(3,TBL=9950)OUT0$
  26. 0730 OUT0$=""
  27. 0740 DIM OUT$(80);OUT$(1)="EOF1"+IFILE$,OUT$(22)="KERMIT0001"+STR(IFILE:"0000
  28. 0740:")+"000100 88010 88010 000000";CLOSE(3);OPEN(3)"R0";WRITERECORD(3,TBL=99
  29. 0740:50)OUT$
  30. 0750 OUT$(1)="EOF2D0819200300";CLOSE(3);OPEN(3)"R0";WRITERECORD(3,TBL=9950)OU
  31. 0750:T$
  32. 0760 PRINT "END OF FILE ",IFILE$,"..",IFILE
  33. 0770 GOTO 600
  34. 0799 REM"READ FROM TAPE
  35. 0800 INPUT "READ COLUMBIA UNIVERSITY TAPE",'LF',"ENTER STARTING SEQUENCE # ",
  36. 0800:SEQ0;IF CTL>1 GOTO 9000
  37. 0805 INPUT "ENTER OUTPUT DEVICE/FILE ",OFILE$;IF OFILE$>"" CLOSE(1);OPEN(1)OF
  38. 0805:ILE$;LOCK(1,ERR=806) ELSE GOTO 800
  39. 0810 CLOSE(3);FLAGP$="";OPEN(3,SEQ=SEQ0)"R0"
  40. 0820 DIM R$(8192);READRECORD(3,END=900,TBL=9960)R$
  41. 0825 FLAGP$="FOUND"
  42. 0829 IF R$(1,4)="VOL1" PRINT (1)R$
  43. 0830 IF POS(R$(1,4)="VOL1HDR1HDR2EOF1EOF2",4)>0 PRINT R$;IF R$(1,4)<>"HDR1" G
  44. 0830:OTO 820 ELSE B$=R$,FLAG$="",OP1$="";PRINT SEQ0,;INPUT "..CR TO CONTINUE,
  45. 0830: CTL III=HARDCOPY IT, CTL II TO SKIP ",'CI',*;L=0;IF CTL=2 OP1$="NEXT" E
  46. 0830:LSE IF CTL=3 FLAG$="PRINT";PRINT(1)R$; FI; GOTO 820
  47. 0840 IF OP0$>"" IF POS(OP0$=B$)<>5 GOTO 900
  48. 0850 IF OP1$="NEXT" GOTO 900
  49. 0860 A=NUM(R$(1,4)),A$=R$(1,A);PRINT A$;IF FLAG$="PRINT" PRINT (1)A$(5)
  50. 0870 R$=R$(A+1)
  51. 0880 L=L+1;IF L>20 IF FLAG$="" INPUT "CR TO CONTINUE,CTL II TO SKIP,CTL III T
  52. 0880:O HARDOPY IT ",'CI',*;L=0;IF CTL=2 OP1$="NEXT";GOTO 900 ELSE IF CTL=3 IF
  53. 0880: FLAG$="" FLAG$="PRINT";CLOSE(3);OPEN(3,SEQ=SEQ0)"R0";GOTO 820
  54. 0890 IF LEN(R$)>3 GOTO 860
  55. 0895 GOTO 820
  56. 0900 IF ERR=2 IF FLAGP$="" GOTO 950
  57. 0901 IF ERR=5 RETRY ELSE IF ERR<>2 ESCAPE
  58. 0905 SEQ0=SEQ0+1,FLAGP$=""
  59. 0910 CLOSE(3)
  60. 0920 OPEN(3,ERR=950)"R0"
  61. 0930 GOTO 820
  62. 0950 PRINT "END OF TAPE"
  63. 0960 GOTO 800
  64. 9949 REM CONVERSION TABLE: B4 ASCII TO STANDARD ASCII
  65. 9950 TABLE 7F000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
  66. 9950:202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F40414243
  67. 9950:4445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F6061626364656667
  68. 9950:68696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F
  69. 9959 REM CONVERSION TABLE: STANDARD ASCII TO B4 ASCII
  70. 9960 TABLE 7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F
  71. 9960:A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3
  72. 9960:C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7
  73. 9960:E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF
  74. 16000 END
  75.