-
Notifications
You must be signed in to change notification settings - Fork 22
Expand file tree
/
Copy pathnc.bas
More file actions
97 lines (79 loc) · 1.27 KB
/
nc.bas
File metadata and controls
97 lines (79 loc) · 1.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
' -- #FUJINET NETCAT Example --
' Default unit # for connection
CONN=2
MODE=12
TRANS=0
' RX Buffer
DIM BUF(8192) BYTE
' Procedures '''''''''''''''''''''''''
PROC BANNER
PRINT "** NETCAT IN FASTBASIC **"
PRINT
ENDPROC
PROC GETCONN
URL$="N:"
INPUT "URL: ", C$
URL$=+C$
INPUT "TRANS (0=none, 1=CR, 2=LF, 3=CR/LF): ", TRANS
ENDPROC
PROC INTCLR
POKE $D302, PEEK($D302) & 127
ENDPROC
PROC CONNECT
PRINT "Connecting to:"
PRINT URL$
NOPEN CONN,MODE,TRANS,URL$
NSTATUS CONN
ENDPROC
PROC IN
' Clear interrupt and get status
@INTCLR
NSTATUS CONN
' Check if we need to read data
BW = DPEEK($02EA)
WHILE BW
' Needs to handle the case where
' BW > 32767, giving negative.
IF BW > 8192 OR BW < 000
LN = 8192
ELSE
LN = BW
ENDIF
NGET CONN,&BUF, LN
BPUT #0, &BUF, LN
BW = BW - LN
WEND
ENDPROC
PROC OUT
GET K
NPUT CONN, &K, 1
ENDPROC
PROC NC
DO
IF PEEK($D302) & 128
@IN
ENDIF
IF PEEK($02EC) = 0
PRINT "Disconnected."
NCLOSE CONN
EXIT
ENDIF
IF KEY() THEN @OUT
LOOP
ENDPROC
''''''''''''''''''''''''
' Main Program
POKE 65,0 ' quiet SIO
@BANNER
@GETCONN
@CONNECT
IF SErr() <> 1
NSTATUS CONN
PRINT "Could not Make Connection"
PRINT "ERROR- "; PEEK($02ED)
NCLOSE CONN
ELSE
PRINT "Connected!"
@NC
ENDIF
POKE 65,3 ' noisy SIO