-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathIHX.bas
50 lines (45 loc) · 1.08 KB
/
IHX.bas
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
10 DIM X$(0)*48
200*INIT: CLS
210 LOCATE 0,1:PRINT "IHX Transfer"
220 PRINT "[S] Send to PC"
230 PRINT "[R] Receive from PC"
240*MAINLOOP: A$= INKEY$
250 IF A$="S" THEN "SENDFN"
250 IF A$="R" THEN "RECVFN"
1000*SENDFN: CLS:
1999 RETURN
2000*RECVFN: CLS
2010 LOCATE 1,0:PRINT "Please init transfer"
2020 OPEN "COM1:"
2030 T=0: X$(0)=""
2040 WHILE(0=0)
2050 INPUT # 1,X$(0)
2060 LOCATE 0,1:PRINT X$(0)
2070 A$=LEFT$(X$(0),1)
2080 IF A$<>":" THEN
2090 LOCATE 0,3: PRINT "FORMAT ERROR!"
2100 LOCATE 0,4: PRINT "Press a key."
2110*RECV00: A$= INKEY$
2120 IF A$="" THEN "RECV00"
2130 GOTO "INIT"
2140 L=VAL("&H"+MID$(X$(0),2,2))
2150 LOCATE 0,3: PRINT "LEN: ";L
2160 P=VAL("&H"+MID$(X$(0),4,4))
2170 LOCATE 9,3: PRINT "ADDR: 0x";HEX$(P)
2180 T=VAL("&H"+MID$(X$(0),8,2))
2190 LOCATE 0,4: PRINT "TYPE: ";T
2200 IF T=1 THEN
2210 LOCATE 0,5: PRINT "END OF TRANSMISSION"
2220 GOTO "RECV00"
2230 END IF
2240 C=VAL("&H"+RIGHT$(X$(0),2))
2250 LOCATE 10,4: PRINT "CRC: ";C
2260 IF L>0 THEN
2270 X$(0)=MID$(X$(0),10,L)
2280 END
2290 L=L-1
2300 FOR I=0 TO L
2310 Y=VAL("&H"+MID$(X$(0),I*2,2))
2320 POKE (P+I), Y
2330 NEXT