00000000: 9B 9B 3B 49 4E 43 4C 55 44 45 22 44 33 3A 53 59 |..;INCLUDE"D3:SY|
00000010: 53 2E 41 43 54 22 9B 9B 43 41 52 44 20 41 52 52 |S.ACT"..CARD ARR|
00000020: 41 59 20 45 4F 4D 28 31 29 9B 9B 42 59 54 45 20 |AY EOM(1)..BYTE |
00000030: 45 52 52 4E 55 4D 2C 44 44 3D 35 34 30 31 38 2C |ERRNUM,DD=54018,|
00000040: 44 41 54 41 3D 35 34 30 31 36 2C 4A 49 46 3D 32 |DATA=54016,JIF=2|
00000050: 30 9B 42 59 54 45 20 41 52 52 41 59 20 42 55 46 |0.BYTE ARRAY BUF|
00000060: 2C 58 4D 4F 42 55 46 46 28 31 32 38 29 2C 62 75 |,XMOBUFF(128),bu|
00000070: 66 66 65 72 28 34 30 39 36 29 9B 9B 43 41 52 44 |ffer(4096)..CARD|
00000080: 20 41 9B 9B 3B 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A | A..;***********|
00000090: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************|
000000A0: 2A 2A 2A 2A 2A 2A 2A 2A 9B 9B 3B 42 75 72 73 74 |********..;Burst|
000000B0: 20 49 2F 4F 20 72 6F 75 74 69 6E 65 73 9B 50 52 | I/O routines.PR|
000000C0: 4F 43 20 57 72 69 74 65 42 6C 6F 63 6B 3D 2A 28 |OC WriteBlock=*(|
000000D0: 42 59 54 45 20 64 65 76 2C 20 43 41 52 44 20 61 |BYTE dev, CARD a|
000000E0: 64 64 72 2C 20 73 69 7A 65 29 9B 20 5B 24 34 38 |ddr, size). [$48|
000000F0: 24 41 39 24 42 24 38 35 24 41 35 24 41 39 24 30 |$A9$B$85$A5$A9$0|
00000100: 24 38 35 24 41 36 24 41 35 24 41 33 24 35 24 41 |$85$A6$A5$A3$5$A|
00000110: 34 24 44 30 24 32 24 36 38 24 36 30 24 36 38 5D |4$D0$2$68$60$68]|
00000120: 9B 43 48 41 52 20 46 55 4E 43 20 43 49 4F 3D 2A |.CHAR FUNC CIO=*|
00000130: 28 42 59 54 45 20 64 65 76 2C 20 43 41 52 44 20 |(BYTE dev, CARD |
00000140: 61 64 64 72 2C 73 69 7A 65 2C 20 42 59 54 45 20 |addr,size, BYTE |
00000150: 63 6D 64 2C 61 75 78 31 2C 61 75 78 32 29 9B 20 |cmd,aux1,aux2). |
00000160: 5B 24 32 39 24 46 24 38 35 24 41 30 24 38 36 24 |[$29$F$85$A0$86$|
00000170: 41 31 24 41 24 41 24 41 24 41 24 41 41 24 41 35 |A1$A$A$A$A$AA$A5|
00000180: 24 41 35 24 39 44 24 33 34 32 24 41 35 24 41 33 |$A5$9D$342$A5$A3|
00000190: 24 39 44 24 33 34 38 24 41 35 24 41 34 24 39 44 |$9D$348$A5$A4$9D|
000001A0: 24 33 34 39 24 41 35 24 41 36 24 46 30 24 38 24 |$349$A5$A6$F0$8$|
000001B0: 39 44 24 33 34 41 24 41 35 24 41 37 24 39 44 24 |9D$34A$A5$A7$9D$|
000001C0: 33 34 42 24 39 38 24 39 44 24 33 34 35 9B 20 20 |34B$98$9D$345. |
000001D0: 24 41 35 24 41 31 24 39 44 24 33 34 34 24 32 30 |$A5$A1$9D$344$20|
000001E0: 24 45 34 35 36 24 38 43 20 45 72 72 6E 75 6D 24 |$E456$8C Errnum$|
000001F0: 43 30 24 38 38 24 44 30 24 36 24 39 38 24 41 34 |C0$88$D0$6$98$A4|
00000200: 24 41 30 24 39 39 20 45 4F 46 24 36 30 5D 9B 43 |$A0$99 EOF$60].C|
00000210: 41 52 44 20 46 55 4E 43 20 52 65 61 64 42 6C 6F |ARD FUNC ReadBlo|
00000220: 63 6B 3D 2A 28 42 59 54 45 20 64 65 76 2C 20 43 |ck=*(BYTE dev, C|
00000230: 41 52 44 20 61 64 64 72 2C 20 73 69 7A 65 29 9B |ARD addr, size).|
00000240: 20 5B 24 34 38 24 41 39 24 37 24 38 35 24 41 35 | [$48$A9$7$85$A5|
00000250: 24 41 39 24 30 24 38 35 24 41 36 24 41 35 24 41 |$A9$0$85$A6$A5$A|
00000260: 33 24 35 24 41 34 24 44 30 24 36 24 38 35 24 41 |3$5$A4$D0$6$85$A|
00000270: 30 24 38 35 24 41 31 24 36 38 24 36 30 24 36 38 |0$85$A1$68$60$68|
00000280: 24 32 30 20 43 49 4F 24 42 44 24 33 34 38 24 38 |$20 CIO$BD$348$8|
00000290: 35 24 41 30 24 42 44 24 33 34 39 24 38 35 24 41 |5$A0$BD$349$85$A|
000002A0: 31 24 36 30 5D 9B 9B 9B 42 59 54 45 20 46 55 4E |1$60]...BYTE FUN|
000002B0: 43 20 55 50 50 45 52 28 42 59 54 45 20 41 29 9B |C UPPER(BYTE A).|
000002C0: 20 20 57 48 49 4C 45 20 41 3E 39 35 20 44 4F 20 | WHILE A>95 DO |
000002D0: 41 3D 3D 2D 33 32 20 4F 44 9B 52 45 54 55 52 4E |A==-32 OD.RETURN|
000002E0: 28 41 29 9B 9B 50 52 4F 43 20 45 44 49 54 46 4E |(A)..PROC EDITFN|
000002F0: 28 42 59 54 45 20 41 52 52 41 59 20 46 4E 29 9B |(BYTE ARRAY FN).|
00000300: 62 79 74 65 20 61 9B 42 59 54 45 20 41 52 52 41 |byte a.BYTE ARRA|
00000310: 59 20 54 4D 50 42 55 46 28 34 30 29 9B 20 20 46 |Y TMPBUF(40). F|
00000320: 4F 52 20 41 3D 31 20 54 4F 20 46 4E 28 30 29 20 |OR A=1 TO FN(0) |
00000330: 44 4F 9B 20 20 20 20 66 6E 28 41 29 3D 55 50 50 |DO. fn(A)=UPP|
00000340: 45 52 28 66 6E 28 41 29 29 9B 20 20 4F 44 9B 20 |ER(fn(A)). OD. |
00000350: 20 49 46 20 46 4E 28 32 29 3D 27 3A 20 4F 52 20 | IF FN(2)=': OR |
00000360: 46 4E 28 33 29 3D 27 3A 20 54 48 45 4E 20 52 45 |FN(3)=': THEN RE|
00000370: 54 55 52 4E 20 46 49 9B 20 20 4D 4F 56 45 42 4C |TURN FI. MOVEBL|
00000380: 4F 43 4B 28 58 4D 4F 42 55 46 46 2B 33 2C 46 4E |OCK(XMOBUFF+3,FN|
00000390: 2B 31 2C 46 4E 28 30 29 29 9B 20 20 58 4D 4F 42 |+1,FN(0)). XMOB|
000003A0: 55 46 46 28 30 29 3D 46 4E 28 30 29 2B 32 9B 20 |UFF(0)=FN(0)+2. |
000003B0: 20 4D 4F 56 45 42 4C 4F 43 4B 28 46 4E 2C 58 4D | MOVEBLOCK(FN,XM|
000003C0: 4F 42 55 46 46 2C 58 4D 4F 42 55 46 46 28 30 29 |OBUFF,XMOBUFF(0)|
000003D0: 2B 31 29 9B 20 20 46 4E 28 31 29 3D 27 44 9B 20 |+1). FN(1)='D. |
000003E0: 20 46 4E 28 32 29 3D 27 3A 9B 52 45 54 55 52 4E | FN(2)=':.RETURN|
000003F0: 9B 9B 70 72 6F 63 20 73 65 6E 64 62 79 74 65 28 |..proc sendbyte(|
00000400: 62 79 74 65 20 61 29 9B 3B 20 20 6D 61 73 6B 3D |byte a).; mask=|
00000410: 37 9B 20 20 64 61 74 61 3D 61 26 33 9B 20 20 61 |7. data=a&3. a|
00000420: 3D 3D 72 73 68 20 32 9B 20 20 77 68 69 6C 65 20 |==rsh 2. while |
00000430: 64 61 74 61 26 38 20 64 6F 20 6F 64 9B 20 20 64 |data&8 do od. d|
00000440: 61 74 61 3D 61 26 33 25 34 9B 20 20 61 3D 3D 72 |ata=a&3%4. a==r|
00000450: 73 68 20 32 9B 20 20 64 6F 20 75 6E 74 69 6C 20 |sh 2. do until |
00000460: 64 61 74 61 26 38 20 6F 64 9B 20 20 64 61 74 61 |data&8 od. data|
00000470: 3D 61 26 33 9B 20 20 61 3D 3D 72 73 68 20 32 9B |=a&3. a==rsh 2.|
00000480: 20 20 77 68 69 6C 65 20 64 61 74 61 26 38 20 64 | while data&8 d|
00000490: 6F 20 6F 64 9B 20 20 64 61 74 61 3D 61 26 33 25 |o od. data=a&3%|
000004A0: 34 9B 20 20 64 6F 20 75 6E 74 69 6C 20 64 61 74 |4. do until dat|
000004B0: 61 26 38 20 6F 64 9B 72 65 74 75 72 6E 9B 9B 9B |a&8 od.return...|
000004C0: 62 79 74 65 20 66 75 6E 63 20 72 65 63 62 79 74 |byte func recbyt|
000004D0: 65 28 29 9B 62 79 74 65 20 72 62 2C 42 31 2C 42 |e().byte rb,B1,B|
000004E0: 32 2C 42 33 2C 42 34 9B 3B 20 20 6D 61 73 6B 3D |2,B3,B4.; mask=|
000004F0: 38 9B 20 20 77 68 69 6C 65 20 64 61 74 61 26 34 |8. while data&4|
00000500: 20 64 6F 20 6F 64 9B 20 20 42 31 3D 64 61 74 61 | do od. B1=data|
00000510: 26 33 9B 20 20 64 61 74 61 3D 30 9B 20 20 64 6F |&3. data=0. do|
00000520: 20 75 6E 74 69 6C 20 64 61 74 61 26 34 20 6F 64 | until data&4 od|
00000530: 9B 20 20 42 32 3D 64 61 74 61 26 33 9B 20 20 64 |. B2=data&3. d|
00000540: 61 74 61 3D 38 9B 20 20 77 68 69 6C 65 20 64 61 |ata=8. while da|
00000550: 74 61 26 34 20 64 6F 20 6F 64 9B 20 20 42 33 3D |ta&4 do od. B3=|
00000560: 64 61 74 61 26 33 9B 20 20 64 61 74 61 3D 30 9B |data&3. data=0.|
00000570: 20 20 64 6F 20 75 6E 74 69 6C 20 64 61 74 61 26 | do until data&|
00000580: 34 20 6F 64 9B 20 20 42 34 3D 64 61 74 61 26 33 |4 od. B4=data&3|
00000590: 9B 20 20 64 61 74 61 3D 38 9B 20 20 52 42 3D 42 |. data=8. RB=B|
000005A0: 34 9B 20 20 52 42 3D 3D 4C 53 48 20 32 2B 42 33 |4. RB==LSH 2+B3|
000005B0: 9B 20 20 52 42 3D 3D 4C 53 48 20 32 2B 42 32 9B |. RB==LSH 2+B2.|
000005C0: 20 20 52 42 3D 3D 4C 53 48 20 32 2B 42 31 9B 72 | RB==LSH 2+B1.r|
000005D0: 65 74 75 72 6E 28 72 62 29 9B 9B 9B 50 52 4F 43 |eturn(rb)...PROC|
000005E0: 20 53 45 4E 44 28 62 79 74 65 20 61 72 72 61 79 | SEND(byte array|
000005F0: 20 78 6D 6F 6E 61 6D 29 9B 9B 42 59 54 45 20 41 | xmonam)..BYTE A|
00000600: 31 2C 41 32 2C 42 4C 4F 43 4B 4E 55 4D 2C 43 4B |1,A2,BLOCKNUM,CK|
00000610: 53 55 4D 2C 46 49 4E 49 53 48 45 44 9B 43 41 52 |SUM,FINISHED.CAR|
00000620: 44 20 52 45 41 44 53 49 5A 45 2C 62 79 74 65 73 |D READSIZE,bytes|
00000630: 6C 65 66 74 9B 9B 20 20 44 44 3D 35 36 20 64 61 |left.. DD=56 da|
00000640: 74 61 3D 37 9B 20 20 44 44 3D 36 30 20 64 61 74 |ta=7. DD=60 dat|
00000650: 61 3D 31 35 9B 20 20 46 49 4E 49 53 48 45 44 3D |a=15. FINISHED=|
00000660: 30 9B 20 20 63 6C 6F 73 65 28 32 29 9B 20 20 65 |0. close(2). e|
00000670: 64 69 74 66 6E 28 78 6D 6F 6E 61 6D 29 9B 20 20 |ditfn(xmonam). |
00000680: 6F 70 65 6E 28 32 2C 78 6D 6F 6E 61 6D 2C 34 2C |open(2,xmonam,4,|
00000690: 30 29 9B 20 20 50 52 49 4E 54 28 22 9B 9B 53 65 |0). PRINT("..Se|
000006A0: 6E 64 69 6E 67 20 66 69 6C 65 20 22 29 9B 20 20 |nding file "). |
000006B0: 70 72 69 6E 74 65 28 58 4D 4F 4E 41 4D 29 9B 20 |printe(XMONAM). |
000006C0: 20 62 79 74 65 73 6C 65 66 74 3D 30 9B 20 20 62 | bytesleft=0. b|
000006D0: 6C 6F 63 6B 6E 75 6D 3D 31 9B 20 20 64 6F 9B 20 |locknum=1. do. |
000006E0: 20 20 69 66 20 46 49 4E 49 53 48 45 44 3D 30 20 | if FINISHED=0 |
000006F0: 41 4E 44 20 62 79 74 65 73 6C 65 66 74 3C 31 32 |AND bytesleft<12|
00000700: 38 20 74 68 65 6E 9B 20 20 20 20 62 79 74 65 73 |8 then. bytes|
00000710: 6C 65 66 74 3D 72 65 61 64 62 6C 6F 63 6B 28 32 |left=readblock(2|
00000720: 2C 62 75 66 66 65 72 2C 34 30 39 36 29 9B 20 20 |,buffer,4096). |
00000730: 20 20 49 46 20 45 4F 46 28 32 29 20 54 48 45 4E | IF EOF(2) THEN|
00000740: 20 46 49 4E 49 53 48 45 44 3D 31 20 46 49 9B 20 | FINISHED=1 FI. |
00000750: 20 20 66 69 9B 20 20 20 6D 6F 76 65 62 6C 6F 63 | fi. movebloc|
00000760: 6B 28 78 6D 6F 62 75 66 66 2C 62 75 66 66 65 72 |k(xmobuff,buffer|
00000770: 2C 31 32 38 29 9B 20 20 20 6D 6F 76 65 62 6C 6F |,128). moveblo|
00000780: 63 6B 28 62 75 66 66 65 72 2C 62 75 66 66 65 72 |ck(buffer,buffer|
00000790: 2B 31 32 38 2C 34 30 39 36 29 9B 20 20 20 69 66 |+128,4096). if|
000007A0: 20 42 59 54 45 53 4C 45 46 54 3C 31 32 38 20 74 | BYTESLEFT<128 t|
000007B0: 68 65 6E 9B 20 20 20 20 66 6F 72 20 61 31 3D 62 |hen. for a1=b|
000007C0: 79 74 65 73 6C 65 66 74 20 74 6F 20 31 32 37 20 |ytesleft to 127 |
000007D0: 64 6F 9B 20 20 20 20 20 78 6D 6F 62 75 66 66 28 |do. xmobuff(|
000007E0: 61 31 29 3D 62 79 74 65 73 6C 65 66 74 9B 20 20 |a1)=bytesleft. |
000007F0: 20 20 6F 64 9B 20 20 20 20 49 46 20 46 49 4E 49 | od. IF FINI|
00000800: 53 48 45 44 3D 31 20 54 48 45 4E 20 46 49 4E 49 |SHED=1 THEN FINI|
00000810: 53 48 45 44 3D 32 20 46 49 9B 20 20 20 66 69 9B |SHED=2 FI. fi.|
00000820: 20 20 20 62 79 74 65 73 6C 65 66 74 3D 3D 2D 31 | bytesleft==-1|
00000830: 32 38 9B 20 20 20 50 52 49 4E 54 28 22 1C 20 42 |28. PRINT(". B|
00000840: 6C 6F 63 6B 20 22 29 9B 20 20 20 50 52 49 4E 54 |lock "). PRINT|
00000850: 43 45 28 42 4C 4F 43 4B 4E 55 4D 29 9B 20 20 20 |CE(BLOCKNUM). |
00000860: 43 4B 53 55 4D 3D 30 9B 20 20 20 73 65 6E 64 62 |CKSUM=0. sendb|
00000870: 79 74 65 28 31 29 9B 20 20 20 73 65 6E 64 62 79 |yte(1). sendby|
00000880: 74 65 28 42 4C 4F 43 4B 4E 55 4D 26 32 35 35 29 |te(BLOCKNUM&255)|
00000890: 9B 20 20 20 73 65 6E 64 62 79 74 65 28 32 35 35 |. sendbyte(255|
000008A0: 21 28 42 4C 4F 43 4B 4E 55 4D 26 32 35 35 29 29 |!(BLOCKNUM&255))|
000008B0: 9B 20 20 20 46 4F 52 20 41 31 3D 30 20 54 4F 20 |. FOR A1=0 TO |
000008C0: 31 32 37 20 44 4F 9B 20 20 20 20 41 32 3D 58 4D |127 DO. A2=XM|
000008D0: 4F 42 55 46 46 28 41 31 29 9B 20 20 20 20 73 65 |OBUFF(A1). se|
000008E0: 6E 64 62 79 74 65 28 41 32 29 9B 20 20 20 20 43 |ndbyte(A2). C|
000008F0: 4B 53 55 4D 3D 3D 2B 41 32 9B 20 20 20 4F 44 9B |KSUM==+A2. OD.|
00000900: 20 20 20 73 65 6E 64 62 79 74 65 28 43 4B 53 55 | sendbyte(CKSU|
00000910: 4D 29 9B 20 20 20 42 4C 4F 43 4B 4E 55 4D 3D 3D |M). BLOCKNUM==|
00000920: 2B 31 9B 20 20 55 4E 54 49 4C 20 46 49 4E 49 53 |+1. UNTIL FINIS|
00000930: 48 45 44 3D 32 20 4F 44 9B 20 20 73 65 6E 64 62 |HED=2 OD. sendb|
00000940: 79 74 65 28 34 29 9B 20 20 63 6C 6F 73 65 28 32 |yte(4). close(2|
00000950: 29 9B 20 20 44 44 3D 35 36 20 64 61 74 61 3D 31 |). DD=56 data=1|
00000960: 35 9B 20 20 44 44 3D 36 30 20 64 61 74 61 3D 31 |5. DD=60 data=1|
00000970: 35 9B 52 45 54 55 52 4E 9B 9B 9B 50 52 4F 43 20 |5.RETURN...PROC |
00000980: 52 45 43 56 28 62 79 74 65 20 61 72 72 61 79 20 |RECV(byte array |
00000990: 78 6D 6F 6E 61 6D 29 9B 9B 42 59 54 45 20 42 4C |xmonam)..BYTE BL|
000009A0: 4B 54 48 45 4D 2C 43 4B 54 48 45 4D 2C 43 4B 55 |KTHEM,CKTHEM,CKU|
000009B0: 53 2C 46 49 4E 49 53 48 45 44 2C 9B 20 20 20 20 |S,FINISHED,. |
000009C0: 20 42 42 43 2C 61 31 2C 61 32 2C 71 75 69 74 9B | BBC,a1,a2,quit.|
000009D0: 43 41 52 44 20 42 59 54 45 43 4E 54 2C 62 6C 6B |CARD BYTECNT,blk|
000009E0: 63 6E 74 2C 64 6D 70 63 6E 74 9B 9B 20 20 44 44 |cnt,dmpcnt.. DD|
000009F0: 3D 35 36 20 64 61 74 61 3D 38 9B 20 20 44 44 3D |=56 data=8. DD=|
00000A00: 36 30 20 64 61 74 61 3D 31 35 9B 20 20 51 55 49 |60 data=15. QUI|
00000A10: 54 3D 30 9B 20 20 42 59 54 45 43 4E 54 3D 30 9B |T=0. BYTECNT=0.|
00000A20: 20 20 46 49 4E 49 53 48 45 44 3D 30 9B 20 20 42 | FINISHED=0. B|
00000A30: 4C 6B 63 6E 74 3D 31 9B 20 20 63 6C 6F 73 65 28 |Lkcnt=1. close(|
00000A40: 32 29 9B 20 20 65 64 69 74 66 6E 28 78 6D 6F 6E |2). editfn(xmon|
00000A50: 61 6D 29 9B 20 20 6F 70 65 6E 28 32 2C 78 6D 6F |am). open(2,xmo|
00000A60: 6E 61 6D 2C 38 2C 30 29 9B 20 20 50 52 49 4E 54 |nam,8,0). PRINT|
00000A70: 28 22 9B 9B 52 65 63 65 69 76 69 6E 67 20 66 69 |("..Receiving fi|
00000A80: 6C 65 20 22 29 9B 20 20 50 52 49 4E 54 45 28 58 |le "). PRINTE(X|
00000A90: 4D 4F 4E 41 4D 29 9B 20 20 44 4F 9B 20 20 20 20 |MONAM). DO. |
00000AA0: 61 31 3D 72 65 63 62 79 74 65 28 29 9B 20 20 20 |a1=recbyte(). |
00000AB0: 20 69 66 20 71 75 69 74 20 74 68 65 6E 20 72 65 | if quit then re|
00000AC0: 74 75 72 6E 20 66 69 9B 20 20 20 20 69 66 20 61 |turn fi. if a|
00000AD0: 31 3D 31 20 74 68 65 6E 9B 20 20 20 20 20 20 50 |1=1 then. P|
00000AE0: 52 49 4E 54 28 22 1C 20 42 6C 6F 63 6B 20 22 29 |RINT(". Block ")|
00000AF0: 9B 20 20 20 20 20 20 70 72 69 6E 74 63 65 28 62 |. printce(b|
00000B00: 6C 6B 63 6E 74 29 9B 20 20 20 20 20 20 61 31 3D |lkcnt). a1=|
00000B10: 72 65 63 62 79 74 65 28 29 9B 20 20 20 20 20 20 |recbyte(). |
00000B20: 61 32 3D 72 65 63 62 79 74 65 28 29 9B 20 20 20 |a2=recbyte(). |
00000B30: 20 20 20 69 66 20 28 61 32 21 32 35 35 29 3D 61 | if (a2!255)=a|
00000B40: 31 20 61 6E 64 20 61 31 3D 28 62 6C 6B 63 6E 74 |1 and a1=(blkcnt|
00000B50: 26 32 35 35 29 20 74 68 65 6E 9B 20 20 20 20 20 |&255) then. |
00000B60: 20 20 63 6B 75 73 3D 30 9B 20 20 20 20 20 20 20 | ckus=0. |
00000B70: 66 6F 72 20 61 31 3D 30 20 74 6F 20 31 32 37 20 |for a1=0 to 127 |
00000B80: 64 6F 9B 20 20 20 20 20 20 20 20 61 32 3D 72 65 |do. a2=re|
00000B90: 63 62 79 74 65 28 29 9B 20 20 20 20 20 20 20 20 |cbyte(). |
00000BA0: 78 6D 6F 62 75 66 66 28 61 31 29 3D 61 32 9B 20 |xmobuff(a1)=a2. |
00000BB0: 20 20 20 20 20 20 20 63 6B 75 73 3D 3D 2B 61 32 | ckus==+a2|
00000BC0: 9B 20 20 20 20 20 20 20 6F 64 9B 20 20 20 20 20 |. od. |
00000BD0: 20 20 63 6B 74 68 65 6D 3D 72 65 63 62 79 74 65 | ckthem=recbyte|
00000BE0: 28 29 9B 20 20 20 20 20 20 20 69 66 20 63 6B 75 |(). if cku|
00000BF0: 73 3D 63 6B 74 68 65 6D 20 74 68 65 6E 9B 20 20 |s=ckthem then. |
00000C00: 20 20 20 20 20 20 62 6C 6B 63 6E 74 3D 3D 2B 31 | blkcnt==+1|
00000C10: 9B 20 20 20 20 20 20 20 20 6D 6F 76 65 62 6C 6F |. moveblo|
00000C20: 63 6B 28 62 75 66 66 65 72 2B 62 79 74 65 63 6E |ck(buffer+bytecn|
00000C30: 74 2C 78 6D 6F 62 75 66 66 2C 31 32 38 29 9B 20 |t,xmobuff,128). |
00000C40: 20 20 20 20 20 20 20 62 79 74 65 63 6E 74 3D 3D | bytecnt==|
00000C50: 2B 31 32 38 9B 20 20 20 20 20 20 20 20 69 66 20 |+128. if |
00000C60: 62 79 74 65 63 6E 74 3D 34 30 39 36 20 74 68 65 |bytecnt=4096 the|
00000C70: 6E 9B 20 20 20 20 20 20 20 20 20 77 72 69 74 65 |n. write|
00000C80: 62 6C 6F 63 6B 28 32 2C 62 75 66 66 65 72 2C 34 |block(2,buffer,4|
00000C90: 30 39 36 29 9B 20 20 20 20 20 20 20 20 20 62 79 |096). by|
00000CA0: 74 65 63 6E 74 3D 30 9B 20 20 20 20 20 20 20 20 |tecnt=0. |
00000CB0: 66 69 9B 20 20 20 20 20 20 20 65 6C 73 65 9B 20 |fi. else. |
00000CC0: 20 20 20 20 20 20 20 70 72 69 6E 74 65 28 22 42 | printe("B|
00000CD0: 61 64 20 43 68 65 63 6B 73 75 6D 22 29 9B 20 20 |ad Checksum"). |
00000CE0: 20 20 20 20 20 20 71 75 69 74 3D 31 9B 20 20 20 | quit=1. |
00000CF0: 20 20 20 20 66 69 9B 20 20 20 20 20 20 65 6C 73 | fi. els|
00000D00: 65 9B 20 20 20 20 20 20 20 70 72 69 6E 74 65 28 |e. printe(|
00000D10: 22 42 61 64 20 42 6C 6F 63 6B 20 63 6F 75 6E 74 |"Bad Block count|
00000D20: 22 29 9B 20 20 20 20 20 20 20 71 75 69 74 3D 31 |"). quit=1|
00000D30: 9B 20 20 20 20 20 20 66 69 9B 20 20 20 20 65 6C |. fi. el|
00000D40: 73 65 69 66 20 61 31 3D 34 20 74 68 65 6E 9B 20 |seif a1=4 then. |
00000D50: 20 20 20 20 61 31 3D 62 75 66 66 65 72 28 62 79 | a1=buffer(by|
00000D60: 74 65 63 6E 74 2D 31 29 9B 20 20 20 20 20 66 6F |tecnt-1). fo|
00000D70: 72 20 64 6D 70 63 6E 74 3D 62 79 74 65 63 6E 74 |r dmpcnt=bytecnt|
00000D80: 2D 31 32 38 2B 61 31 20 74 6F 20 62 79 74 65 63 |-128+a1 to bytec|
00000D90: 6E 74 2D 31 20 64 6F 9B 20 20 20 20 20 20 69 66 |nt-1 do. if|
00000DA0: 20 62 75 66 66 65 72 28 64 6D 70 63 6E 74 29 23 | buffer(dmpcnt)#|
00000DB0: 61 31 20 74 68 65 6E 9B 20 20 20 20 20 20 20 77 |a1 then. w|
00000DC0: 72 69 74 65 62 6C 6F 63 6B 28 32 2C 62 75 66 66 |riteblock(2,buff|
00000DD0: 65 72 2C 62 79 74 65 63 6E 74 29 9B 20 20 20 20 |er,bytecnt). |
00000DE0: 20 20 20 43 4C 4F 53 45 28 32 29 9B 20 20 20 20 | CLOSE(2). |
00000DF0: 20 20 20 72 65 74 75 72 6E 9B 20 20 20 20 20 20 | return. |
00000E00: 66 69 9B 20 20 20 20 20 6F 64 9B 20 20 20 20 20 |fi. od. |
00000E10: 77 72 69 74 65 62 6C 6F 63 6B 28 32 2C 62 75 66 |writeblock(2,buf|
00000E20: 66 65 72 2C 62 79 74 65 63 6E 74 2D 31 32 38 2B |fer,bytecnt-128+|
00000E30: 61 31 29 9B 20 20 20 20 20 43 4C 4F 53 45 28 32 |a1). CLOSE(2|
00000E40: 29 9B 20 20 20 20 20 72 65 74 75 72 6E 9B 20 20 |). return. |
00000E50: 20 20 66 69 9B 20 20 6F 64 20 20 20 20 9B 20 20 | fi. od . |
00000E60: 44 44 3D 35 36 20 64 61 74 61 3D 31 35 9B 20 20 |DD=56 data=15. |
00000E70: 44 44 3D 36 30 20 64 61 74 61 3D 31 35 9B 72 65 |DD=60 data=15.re|
00000E80: 74 75 72 6E 9B 9B 9B 50 52 4F 43 20 4D 41 49 4E |turn...PROC MAIN|
00000E90: 28 29 9B 9B 42 59 54 45 20 4F 50 54 9B 42 59 54 |()..BYTE OPT.BYT|
00000EA0: 45 20 41 52 52 41 59 20 46 4E 28 36 30 29 2C 6D |E ARRAY FN(60),m|
00000EB0: 66 28 36 30 29 9B 9B 9B 20 20 44 45 56 49 43 45 |f(60)... DEVICE|
00000EC0: 3D 30 9B 20 20 43 4C 4F 53 45 28 37 29 9B 20 20 |=0. CLOSE(7). |
00000ED0: 4F 50 45 4E 28 37 2C 22 4B 3A 22 2C 34 2C 30 29 |OPEN(7,"K:",4,0)|
00000EE0: 9B 20 20 50 4F 4B 45 28 38 32 2C 30 29 9B 20 20 |. POKE(82,0). |
00000EF0: 67 72 61 70 68 69 63 73 28 30 29 9B 20 20 70 6F |graphics(0). po|
00000F00: 6B 65 28 37 35 32 2C 31 29 9B 20 20 73 65 74 63 |ke(752,1). setc|
00000F10: 6F 6C 6F 72 28 31 2C 30 2C 30 29 9B 20 20 73 65 |olor(1,0,0). se|
00000F20: 74 63 6F 6C 6F 72 28 32 2C 30 2C 38 29 9B 20 20 |tcolor(2,0,8). |
00000F30: 73 65 74 63 6F 6C 6F 72 28 34 2C 30 2C 34 29 9B |setcolor(4,0,4).|
00000F40: 20 20 44 4F 9B 20 20 20 20 43 4C 4F 53 45 28 32 | DO. CLOSE(2|
00000F50: 29 9B 20 20 20 20 43 4C 4F 53 45 28 31 29 9B 20 |). CLOSE(1). |
00000F60: 20 20 20 44 44 3D 35 36 20 64 61 74 61 3D 31 35 | DD=56 data=15|
00000F70: 9B 20 20 20 20 44 44 3D 36 30 20 64 61 74 61 3D |. DD=60 data=|
00000F80: 31 35 9B 20 20 20 20 50 52 49 4E 54 28 22 7D 9B |15. PRINT("}.|
00000F90: 20 2D 20 54 68 65 20 42 65 74 74 65 72 20 42 69 | - The Better Bi|
00000FA0: 74 20 42 6C 61 73 74 20 2D 2D 2D 20 42 42 42 2E |t Blast --- BBB.|
00000FB0: 2E 2E 2E 2E 2E 20 2D 9B 9B 20 20 20 20 20 2D 20 |..... -.. - |
00000FC0: 4A 65 66 66 20 4A 6F 6E 65 73 20 3D 3D 20 53 65 |Jeff Jones == Se|
00000FD0: 61 6E 20 50 75 63 6B 65 74 74 20 2D 9B 20 9B 9B |an Puckett -. ..|
00000FE0: 9B 20 20 20 20 9B 20 20 20 53 65 6C 65 63 74 20 |. . Select |
00000FF0: 74 72 61 6E 73 66 65 72 20 6F 70 74 69 6F 6E 3A |transfer option:|
00001000: 9B 9B 20 20 31 2E 20 53 65 6E 64 20 66 69 6C 65 |.. 1. Send file|
00001010: 20 74 6F 20 6F 74 68 65 72 20 63 6F 6D 70 75 74 | to other comput|
00001020: 65 72 9B 20 20 32 2E 20 52 65 63 65 69 76 65 20 |er. 2. Receive |
00001030: 66 69 6C 65 22 29 9B 20 20 20 20 70 72 69 6E 74 |file"). print|
00001040: 28 22 9B 20 20 33 2E 20 53 65 6E 64 20 62 61 63 |(". 3. Send bac|
00001050: 6B 75 70 20 28 72 65 71 75 69 72 65 73 20 6D 65 |kup (requires me|
00001060: 74 61 66 69 6C 65 29 9B 20 20 34 2E 20 52 65 63 |tafile). 4. Rec|
00001070: 65 69 76 65 20 62 61 63 6B 75 70 20 28 72 65 71 |eive backup (req|
00001080: 75 69 72 65 73 20 6D 65 74 61 66 69 6C 65 29 9B |uires metafile).|
00001090: 9B 20 20 35 2E 20 45 78 69 74 20 70 72 6F 67 72 |. 5. Exit progr|
000010A0: 61 6D 9B 9B 9B 20 20 20 20 20 20 4B 65 79 20 6E |am... Key n|
000010B0: 75 6D 62 65 72 20 6F 66 20 63 68 6F 69 63 65 20 |umber of choice |
000010C0: 2D 3E 3F 1E 22 29 9B 20 20 20 20 4F 50 54 3D 47 |->?."). OPT=G|
000010D0: 45 54 44 28 37 29 9B 20 20 20 20 70 75 74 28 6F |ETD(7). put(o|
000010E0: 70 74 29 9B 20 20 20 20 49 46 20 4F 50 54 3D 27 |pt). IF OPT='|
000010F0: 35 20 54 48 45 4E 20 5B 24 36 43 24 30 41 24 30 |5 THEN [$6C$0A$0|
00001100: 30 5D 20 52 45 54 55 52 4E 9B 20 20 20 20 45 4C |0] RETURN. EL|
00001110: 53 45 49 46 20 4F 50 54 3D 27 32 20 54 48 45 4E |SEIF OPT='2 THEN|
00001120: 9B 20 20 20 20 20 20 50 52 49 4E 54 28 22 9B 9B |. PRINT("..|
00001130: 52 65 63 65 69 76 65 20 66 69 6C 65 6E 61 6D 65 |Receive filename|
00001140: 3F 9B 2D 3E 22 29 9B 20 20 20 20 20 20 49 4E 50 |?.->"). INP|
00001150: 55 54 53 44 28 30 2C 46 4E 29 9B 20 20 20 20 20 |UTSD(0,FN). |
00001160: 20 49 46 20 46 4E 28 30 29 20 54 48 45 4E 9B 20 | IF FN(0) THEN. |
00001170: 20 20 20 20 20 20 20 52 45 43 56 28 46 4E 29 9B | RECV(FN).|
00001180: 20 20 20 20 20 20 46 49 9B 20 20 20 20 45 4C 53 | FI. ELS|
00001190: 45 49 46 20 4F 50 54 3D 27 31 20 54 48 45 4E 9B |EIF OPT='1 THEN.|
000011A0: 20 20 20 20 20 20 50 52 49 4E 54 28 22 9B 9B 53 | PRINT("..S|
000011B0: 65 6E 64 20 66 69 6C 65 6E 61 6D 65 3F 9B 2D 3E |end filename?.->|
000011C0: 22 29 9B 20 20 20 20 20 20 49 4E 50 55 54 53 44 |"). INPUTSD|
000011D0: 28 30 2C 46 4E 29 9B 20 20 20 20 20 20 49 46 20 |(0,FN). IF |
000011E0: 46 4E 28 30 29 20 54 48 45 4E 9B 20 20 20 20 20 |FN(0) THEN. |
000011F0: 20 20 20 53 45 4E 44 28 46 4E 29 9B 20 20 20 20 | SEND(FN). |
00001200: 20 20 46 49 9B 20 20 20 20 45 4C 53 45 49 46 20 | FI. ELSEIF |
00001210: 4F 50 54 3D 27 33 20 54 48 45 4E 9B 20 20 20 20 |OPT='3 THEN. |
00001220: 20 20 50 52 49 4E 54 28 22 9B 9B 53 65 6E 64 20 | PRINT("..Send |
00001230: 62 61 63 6B 75 70 3A 20 4D 65 74 61 66 69 6C 65 |backup: Metafile|
00001240: 20 66 69 6C 65 6E 61 6D 65 3F 9B 2D 3E 22 29 9B | filename?.->").|
00001250: 20 20 20 20 20 20 69 6E 70 75 74 73 64 28 30 2C | inputsd(0,|
00001260: 6D 66 29 9B 20 20 20 20 20 20 70 72 69 6E 74 28 |mf). print(|
00001270: 22 9B 53 65 6E 64 69 6E 67 20 62 61 63 6B 75 70 |".Sending backup|
00001280: 20 66 69 6C 65 73 2E 2E 2E 9B 22 29 9B 20 20 20 | files...."). |
00001290: 20 20 20 4F 50 45 4E 28 31 2C 6D 66 2C 34 2C 30 | OPEN(1,mf,4,0|
000012A0: 29 9B 20 20 20 20 20 20 57 48 49 4C 45 20 45 4F |). WHILE EO|
000012B0: 46 28 31 29 3D 30 20 44 4F 9B 20 20 20 20 20 20 |F(1)=0 DO. |
000012C0: 20 20 49 4E 50 55 54 53 44 28 31 2C 46 4E 29 9B | INPUTSD(1,FN).|
000012D0: 20 20 20 20 20 20 20 20 50 52 49 4E 54 28 46 4E | PRINT(FN|
000012E0: 29 9B 20 20 20 20 20 20 20 20 53 45 4E 44 28 46 |). SEND(F|
000012F0: 4E 29 9B 20 20 20 20 20 20 20 20 50 55 54 45 28 |N). PUTE(|
00001300: 29 9B 20 20 20 20 20 20 4F 44 9B 20 20 20 20 20 |). OD. |
00001310: 20 43 4C 4F 53 45 28 31 29 9B 20 20 20 20 45 4C | CLOSE(1). EL|
00001320: 53 45 49 46 20 4F 50 54 3D 27 34 20 54 48 45 4E |SEIF OPT='4 THEN|
00001330: 9B 20 20 20 20 20 20 50 52 49 4E 54 28 22 9B 4D |. PRINT(".M|
00001340: 65 74 61 66 69 6C 65 20 66 69 6C 65 6E 61 6D 65 |etafile filename|
00001350: 9B 3F 22 29 9B 20 20 20 20 20 20 69 6E 70 75 74 |.?"). input|
00001360: 73 64 28 30 2C 6D 66 29 9B 20 20 20 20 20 20 50 |sd(0,mf). P|
00001370: 52 49 4E 54 28 22 9B 52 65 63 65 69 76 69 6E 67 |RINT(".Receiving|
00001380: 20 62 61 63 6B 75 70 20 66 69 6C 65 73 2E 2E 2E | backup files...|
00001390: 9B 22 29 9B 20 20 20 20 20 20 4F 50 45 4E 28 31 |."). OPEN(1|
000013A0: 2C 6D 66 2C 34 2C 30 29 9B 20 20 20 20 20 20 57 |,mf,4,0). W|
000013B0: 48 49 4C 45 20 45 4F 46 28 31 29 3D 30 20 44 4F |HILE EOF(1)=0 DO|
000013C0: 9B 20 20 20 20 20 20 20 20 49 4E 50 55 54 53 44 |. INPUTSD|
000013D0: 28 31 2C 46 4E 29 9B 20 20 20 20 20 20 20 20 50 |(1,FN). P|
000013E0: 52 49 4E 54 28 46 4E 29 9B 20 20 20 20 20 20 20 |RINT(FN). |
000013F0: 20 52 45 43 56 28 46 4E 29 9B 20 20 20 20 20 20 | RECV(FN). |
00001400: 20 20 50 55 54 45 28 29 9B 20 20 20 20 20 20 4F | PUTE(). O|
00001410: 44 9B 20 20 20 20 20 20 43 4C 4F 53 45 28 31 29 |D. CLOSE(1)|
00001420: 9B 20 20 20 20 46 49 9B 20 20 4F 44 9B 9B 52 45 |. FI. OD..RE|
00001430: 54 55 52 4E 9B 9B |TURN.. |
..;INCLUDE"D3:SYS.ACT"..CARD ARRAY EOM(1
)..BYTE ERRNUM,DD=54018,DATA=54016,JIF=2
0.BYTE ARRAY BUF,XMOBUFF(128),BUFFER(409
6)..CARD A..;***************************
********..;BURST I/O ROUTINES.PROC WRITE
BLOCK=*(BYTE DEV, CARD ADDR, SIZE). [$48
$A9$B$85$A5$A9$0$85$A6$A5$A3$5$A4$D0$2$6
8$60$68].CHAR FUNC CIO=*(BYTE DEV, CARD
ADDR,SIZE, BYTE CMD,AUX1,AUX2). [$29$F$8
5$A0$86$A1$A$A$A$A$AA$A5$A5$9D$342$A5$A3
$9D$348$A5$A4$9D$349$A5$A6$F0$8$9D$34A$A
5$A7$9D$34B$98$9D$345. $A5$A1$9D$344$20
$E456$8C ERRNUM$C0$88$D0$6$98$A4$A0$99 E
OF$60].CARD FUNC READBLOCK=*(BYTE DEV, C
ARD ADDR, SIZE). [$48$A9$7$85$A5$A9$0$85
$A6$A5$A3$5$A4$D0$6$85$A0$85$A1$68$60$68
$20 CIO$BD$348$85$A0$BD$349$85$A1$60]...
BYTE FUNC UPPER(BYTE A). WHILE A>95 DO
A==-32 OD.RETURN(A)..PROC EDITFN(BYTE AR
RAY FN).BYTE A.BYTE ARRAY TMPBUF(40). F
OR A=1 TO FN(0) DO. FN(A)=UPPER(FN(A)
). OD. IF FN(2)=': OR FN(3)=': THEN RE
TURN FI. MOVEBLOCK(XMOBUFF+3,FN+1,FN(0)
). XMOBUFF(0)=FN(0)+2. MOVEBLOCK(FN,XM
OBUFF,XMOBUFF(0)+1). FN(1)='D. FN(2)='
:.RETURN..PROC SENDBYTE(BYTE A).; MASK=
7. DATA=A&3. A==RSH 2. WHILE DATA&8 D
O OD. DATA=A&3%4. A==RSH 2. DO UNTIL
DATA&8 OD. DATA=A&3. A==RSH 2. WHILE
DATA&8 DO OD. DATA=A&3%4. DO UNTIL DAT
A&8 OD.RETURN...BYTE FUNC RECBYTE().BYTE
RB,B1,B2,B3,B4.; MASK=8. WHILE DATA&4
DO OD. B1=DATA&3. DATA=0. DO UNTIL D
ATA&4 OD. B2=DATA&3. DATA=8. WHILE DA
TA&4 DO OD. B3=DATA&3. DATA=0. DO UNT
IL DATA&4 OD. B4=DATA&3. DATA=8. RB=B
4. RB==LSH 2+B3. RB==LSH 2+B2. RB==LS
H 2+B1.RETURN(RB)...PROC SEND(BYTE ARRAY
XMONAM)..BYTE A1,A2,BLOCKNUM,CKSUM,FINI
SHED.CARD READSIZE,BYTESLEFT.. DD=56 DA
TA=7. DD=60 DATA=15. FINISHED=0. CLOS
E(2). EDITFN(XMONAM). OPEN(2,XMONAM,4,
0). PRINT("..SENDING FILE "). PRINTE(X
MONAM). BYTESLEFT=0. BLOCKNUM=1. DO.
IF FINISHED=0 AND BYTESLEFT<128 THEN.
BYTESLEFT=READBLOCK(2,BUFFER,4096).
IF EOF(2) THEN FINISHED=1 FI. FI.
MOVEBLOCK(XMOBUFF,BUFFER,128). MOVEBLO
CK(BUFFER,BUFFER+128,4096). IF BYTESLE
FT<128 THEN. FOR A1=BYTESLEFT TO 127
DO. XMOBUFF(A1)=BYTESLEFT. OD.
IF FINISHED=1 THEN FINISHED=2 FI. FI.
BYTESLEFT==-128. PRINT(". BLOCK ").
PRINTCE(BLOCKNUM). CKSUM=0. SENDB
YTE(1). SENDBYTE(BLOCKNUM&255). SEND
BYTE(255!(BLOCKNUM&255)). FOR A1=0 TO
127 DO. A2=XMOBUFF(A1). SENDBYTE(A
2). CKSUM==+A2. OD. SENDBYTE(CKSU
M). BLOCKNUM==+1. UNTIL FINISHED=2 OD
. SENDBYTE(4). CLOSE(2). DD=56 DATA=1
5. DD=60 DATA=15.RETURN...PROC RECV(BYT
E ARRAY XMONAM)..BYTE BLKTHEM,CKTHEM,CKU
S,FINISHED,. BBC,A1,A2,QUIT.CARD BYT
ECNT,BLKCNT,DMPCNT.. DD=56 DATA=8. DD=
60 DATA=15. QUIT=0. BYTECNT=0. FINISH
ED=0. BLKCNT=1. CLOSE(2). EDITFN(XMON
AM). OPEN(2,XMONAM,8,0). PRINT("..RECE
IVING FILE "). PRINTE(XMONAM). DO.
A1=RECBYTE(). IF QUIT THEN RETURN FI.
IF A1=1 THEN. PRINT(". BLOCK ")
. PRINTCE(BLKCNT). A1=RECBYTE(
). A2=RECBYTE(). IF (A2!255)=A
1 AND A1=(BLKCNT&255) THEN. CKUS=0
. FOR A1=0 TO 127 DO. A2=RE
CBYTE(). XMOBUFF(A1)=A2. C
KUS==+A2. OD. CKTHEM=RECBYTE
(). IF CKUS=CKTHEM THEN. BL
KCNT==+1. MOVEBLOCK(BUFFER+BYTECN
T,XMOBUFF,128). BYTECNT==+128.
IF BYTECNT=4096 THEN. WRITE
BLOCK(2,BUFFER,4096). BYTECNT=0.
FI. ELSE. PRINTE("B
AD CHECKSUM"). QUIT=1. FI.
ELSE. PRINTE("BAD BLOCK COUNT
"). QUIT=1. FI. ELSEIF A1=
4 THEN. A1=BUFFER(BYTECNT-1). FO
R DMPCNT=BYTECNT-128+A1 TO BYTECNT-1 DO.
IF BUFFER(DMPCNT)#A1 THEN. W
RITEBLOCK(2,BUFFER,BYTECNT). CLOSE
(2). RETURN. FI. OD.
WRITEBLOCK(2,BUFFER,BYTECNT-128+A1).
CLOSE(2). RETURN. FI. OD .
DD=56 DATA=15. DD=60 DATA=15.RETURN...P
ROC MAIN()..BYTE OPT.BYTE ARRAY FN(60),M
F(60)... DEVICE=0. CLOSE(7). OPEN(7,"
K:",4,0). POKE(82,0). GRAPHICS(0). PO
KE(752,1). SETCOLOR(1,0,0). SETCOLOR(2
,0,8). SETCOLOR(4,0,4). DO. CLOSE(2
). CLOSE(1). DD=56 DATA=15. DD=
60 DATA=15. PRINT("}. - THE BETTER BI
T BLAST --- BBB...... -.. - JEFF JON
ES == SEAN PUCKETT -. ... . SELECT
TRANSFER OPTION:.. 1. SEND FILE TO OTHE
R COMPUTER. 2. RECEIVE FILE"). PRINT
(". 3. SEND BACKUP (REQUIRES METAFILE).
4. RECEIVE BACKUP (REQUIRES METAFILE).
. 5. EXIT PROGRAM... KEY NUMBER OF
CHOICE ->?."). OPT=GETD(7). PUT(O
PT). IF OPT='5 THEN [$6C$0A$00] RETUR
N. ELSEIF OPT='2 THEN. PRINT("..
RECEIVE FILENAME?.->"). INPUTSD(0,F
N). IF FN(0) THEN. RECV(FN).
FI. ELSEIF OPT='1 THEN. PR
INT("..SEND FILENAME?.->"). INPUTSD
(0,FN). IF FN(0) THEN. SEND(
FN). FI. ELSEIF OPT='3 THEN.
PRINT("..SEND BACKUP: METAFILE FILENAM
E?.->"). INPUTSD(0,MF). PRINT(
".SENDING BACKUP FILES...."). OPEN(
1,MF,4,0). WHILE EOF(1)=0 DO.
INPUTSD(1,FN). PRINT(FN).
SEND(FN). PUTE(). OD.
CLOSE(1). ELSEIF OPT='4 THEN. P
RINT(".METAFILE FILENAME.?"). INPUT
SD(0,MF). PRINT(".RECEIVING BACKUP
FILES...."). OPEN(1,MF,4,0). W
HILE EOF(1)=0 DO. INPUTSD(1,FN).
PRINT(FN). RECV(FN).
PUTE(). OD. CLOSE(1). FI.
OD..RETURN..
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL