home *** CD-ROM | disk | FTP | other *** search
- 100 scnclr: print "Xterm v3.1 by K.L. Colclasure (11/16/85)"
- 110 print: print "Commercial distribution prohibited without"
- 120 print "express written permission of author ..."
- 130 'RS232 drivers derived from UART.BAS by John Hodgson
- 150 size% = 5: timeout% = 500: baud% = 300
- 290 gosub 900: goto 500
- 300 key% = asc(key$): poke_w out%, key% + 256
- 310 return
- 320 gflag% = 0: char% = peek_w(in%)
- 330 if (char% and 16384) = 0 then return else gflag% = -1
- 340 char% = char% and 127: poke intrq%, 8: return
- 350 t = 0: toflag% = 0
- 360 char% = peek_w(in%)
- 370 if (char% and 16384) = 0 then t = t + 1 else 400
- 380 if t > timeout% then toflag% = -1: return
- 390 goto 360
- 400 char% = char% and 255: poke intrq%, 8: return
- 410 cksum% = 0: for i = 1 to 131
- 420 cksum% = (cksum% + buf%(n,i)) and 255: next i
- 430 if cksum% = buf%(n,132) then 450
- 440 print "Cksum error in"; blk%: key$ = nak$: return
- 450 mblk% = blk% and 255
- 460 if mblk% = buf%(n,2) then 480
- 470 print "Sync error in"; blk%: key$ = nak$: return
- 480 blk% = blk% + 1: n = n + 1: key$ = ack$
- 490 print " Recieved"; blk% - 1; chr$(13);: return
- 500 print: print "[Term: use HELP key for instructions]"
- 505 print: on error goto 0
- 510 get key$: if key$ = "" then 540
- 520 if key$ = chr$(155) then 800
- 530 gosub 300
- 540 gosub 320: if (gflag%) then print chr$(char%);
- 550 goto 510
- 600 print: print "Recieve, enter filename: ";
- 610 line input file$: if file$ = "" then 500
- 620 open "o",#1,file$: close #1
- 630 blk% = 1: n = 1: eotflag% = 0: key$ = nak$
- 650 gosub 300: for i = 1 to 132: gosub 350
- 651 if (toflag%) then key$ = nak$: goto 650
- 652 if (i = 1) and (char% = eot) then 660
- 653 buf%(n,i) = char%: next i: gosub 410
- 654 if n > top% then 670 else 650
- 660 eotflag% = -1
- 670 open "a",#1,file$
- 671 for x = 1 to (n - 1): for y = 4 to 131
- 672 print #1, chr$(buf%(x,y));
- 673 next y,x
- 674 close #1
- 680 if not (eotflag%) then n = 1: goto 650
- 685 gosub 300
- 690 print: print "Transfer complete ...": goto 500
- 700 print: print "Send, enter filename: ";
- 701 line input file$: if file$ = "" then 500
- 702 on error goto 2500
- 703 open "i",#1,file$
- 704 on error goto 0
- 710 n = lof(1): n = n / 128
- 711 if int(n) < n then n = int(n) + 1 else n = int(n)
- 712 print "File open,";n;"records."
- 720 n = 1: blk% = 1
- 730 buf%(n,1) = soh: buf%(n,2) = blk% and 255
- 731 buf%(n,3) = buf%(n,2) xor 255
- 740 for i = 4 to 131
- 741 if not eof(1) then get #1, char$ else char$ = eof$
- 742 buf%(n,i) = asc(char$): next i
- 743 gosub 770: gosub 780: print " Sent block"; blk%; chr$(13);
- 744 if not eof(1) then blk% = blk% + 1: goto 730
- 750 close #1
- 760 key$ = chr$(eot): gosub 300
- 761 gosub 320: if not gflag% then 761
- 762 if char% = nak then 760
- 763 if char% = ack then 690 else 761
- 770 cksum% = 0: for i = 1 to 131
- 771 cksum% = (cksum% + buf%(n,i)) and 255: next i
- 772 buf%(n,132) = cksum%: return
- 780 if blk% = 1 then 783
- 781 for i = 1 to 132: key$ = chr$(buf%(n,i))
- 782 gosub 300: sleep 30000: next i
- 783 gosub 320: if not gflag% then 783
- 784 if char% = nak then 781
- 785 if char% = ack then return else 783
- 800 get key$: if key$ = "" then 510 else fkey% = asc(key$)
- 810 fkey% = fkey% - 47: get key$: if key$ <> chr$(126) then 510
- 820 if fkey% = 16 then 2000
- 830 on fkey% goto 1000,1000,1000,1000,1000,600,700,600,600,1500
- 900 option base 1: dim buf%(size%*8,132): top% = size% * 8
- 910 baudr% = &hdff032: out% = &hdff030
- 920 in% = &hdff018: intrq% = &hdff09c
- 930 poke_w baudr%, (1/baud%)/(.2794*1e-06)
- 940 ack$ = chr$(6): nak$ = chr$(21): eot$ = chr$(4)
- 950 ack = 6: nak = 21: eot = 4: soh = 1
- 960 eof$ = chr$(26)
- 990 return
- 1000 goto 2000
- 1500 key$ = chr$(3): gosub 300: goto 510
- 2000 print: print "Function key assignments ..."
- 2010 print
- 2020 print "[F1] thru [F5]: User definable. (Not implemented)"
- 2030 print "[F6]: Recieve file with Xmodem protocol."
- 2040 print "[F7]: Send file with Xmodem protocol."
- 2050 print "[F8] and [F9]: Reserved for future expansion."
- 2060 print "[F10]: Send Control-C to host system."
- 2070 print
- 2080 print "Typing a Control-C will terminate the program. Use [F10]"
- 2090 print "to send this character!"
- 2100 goto 500
- 2500 print "Unable to open file ...": resume 500
-