1 GOTO10612 2 T=0 3 EXEC61000!:IFPEEK(61055!)THENX=PEEK(61056!):RETURNELSET=T+1:IFT<66*STHEN61784ELSERETURN 4 A=256:B=1 5 IFETHEN14 6 S=1:GOSUB7612:IFPEEK(61055!)THEN6 7 IFINKEY$="A"THEN62209ELSEPRINT#2,CHR$(21);:PRINT"X";:S=10:GOSUB7612:IFPEEK(61055!)THEN9ELSE17741 8 IFINKEY$="A"THEN26ELSEPRINT#2,CHR$(6);:PRINT".";B-1:S=10:GOSUB2:IFPEEK(61055!)=0THEN7 9 IFX=1THEN10ELSEIFX=4THENPRINT#2,CHR$(6):GOTO24ELSEIFX=24THEN26ELSE6 10 EXEC61016!:IFPEEK(61055!)=0THEN6ELSEGOSUB46:IFZ(2)<>(255ANDNOTZ(1))THEN6ELSEIFZ(1)=ATHEN8ELSEIFZ(1)<>BTHEN26 11 X=0:FORN=3TO130:X=X+Z(N):NEXT:X=XAND255:IFX<>Z(131)THEN6 12 FORN=3TO130:IFZ(N)=26THENN=130ELSEPRINT#3,CHR$(Z(N)); 13 NEXT:A=B:B=B+1AND255:GOTO8 14 GOSUB21 15 PRINT"?"; 16 IFINKEY$="A"THEN26ELSES=10:GOSUB2:IFPEEK(61055!)=0THEN15ELSEIFX=6THEN20ELSEIFX=21THEN17ELSEIFX=24THEN26ELSE15 17 PRINT"X"; 18 IFN=0THENPRINT#2,CHR$(4);ELSEPRINT#2,CHR$(1)CHR$(A)CHR$(255ANDNOTA);:X=0:FORJ=1TO128:X=X+Z(J):PRINT#2,CHR$(Z(J));:NEXT:X=XAND255:PRINT#2,CHR$(X); 19 S=0:GOSUB2:IFPEEK(61055!)THEN19ELSE16 20 IFN=0THEN24ELSEPRINT".";:GOSUB21:GOTO18 21 A=A+1AND255:N=0:IFNOTETHENRETURN 22 FORN=1TO128:IFETHENIFNOTEOF(3)THENZ(N)=ASC(INPUT$(1,3))ELSEE=0:Z(N)=26ELSEZ(N)=0 23 NEXT:RETURN 24 CLOSE3:PRINT:PRINT"File transfer complete":BEEP:GOTO28 25 RESUME26 26 SCREEN,0:PRINT:PRINT"ABORT":SOUND9394,9:CLOSE3:GOTO240 27 S=1:GOSUB2:IFPEEK(61055!)THEN27ELSEPRINT#2,CHR$(24); 28 CLOSE 29 CLOSE1:ST$="COM:"+ST$:OPENST$FOROUTPUTAS1:POKE63912!,6:POKE63913!,95:EXEC24028:EXEC27895:IFPEEK(21214)=246THENPOKE65128!,1:POKE65129!,3:POKE65130!,255:EXEC21212:ELSEPRINT"Term":EXEC21384 30 CLOSE1:OPEN"COM:"+ST$FOROUTPUTAS1:POKE63912!,6:POKE63913!,95:EXEC24028:EXEC27895:MENU 31 MAXFILES=3:CLEAR500,60999!:DEFINTA-Z:DEFSNGY:DIMZ(131):CLS:PRINT"XMODEM.NEC":PRINTFRE(0);"bytes free":GOSUB4111 32 KEY1,"Files":KEY2,"":KEY3,"":KEY4,"Up ":KEY5,"Down":FORY=6TO9:KEYY,"":NEXT:SCREEN,1 33 IF PEEK(21214)=246 THEN N3$="P1O" 34 X$=INPUT$(1):D=INSTR("FUDM",X$):ONDGOTO35,36,62029,30:IFD=0THENBEEP:GOTO34 35 FILES:Y$=INPUT$(4):GOTO34 36 Y$=INPUT$(3):LINEINPUT"File to Upload? ";Y$:OPENY$FORINPUTAS3:E=-1:GOTO38 37 Y$=INPUT$(3):LINEINPUT"File to Download? ";Y$:OPENY$FOROUTPUTAS3:E=0 38 CLS:PRINT"1) 300 bps":PRINT"2) 1200 bps":PRINT"3) 2400 bps":PRINT"4) 9600 bps":PRINT"5) 19200 bps" 39 ST$="":FORY=62470!TO62475!:ST$=ST$+CHR$(PEEK(Y)):NEXT 40 A$=INKEY$:IFA$=""THEN5363ELSEONVAL(A$)GOTO41,42,43,44,45 41 OPEN"COM:3N81NN"+N3$FOROUTPUTAS2:OPEN"COM:3N81NN"+N3$FORINPUTAS1:GOTO11060 42 OPEN"COM:5N81NN"+N3$FOROUTPUTAS2:OPEN"COM:5N81NN"+N3$FORINPUTAS1:GOTO4 43 OPEN"COM:6N81NN"+N3$FOROUTPUTAS2:OPEN"COM:6N81NN"+N3$FORINPUTAS1:GOTO4 44 OPEN"COM:8N81NN"+N3$FOROUTPUTAS2:OPEN"COM:8N81NN"+N3$FORINPUTAS1:GOTO4 45 OPEN"COM:9N81NN"+N3$FOROUTPUTAS2:OPEN"COM:9N81NN"+N3$FORINPUTAS1:GOTO4 46 FORN=1TO131:Z(N)=PEEK(61055!+N):NEXT:RETURN 47 FORY=61000!TO61053!:READI:POKEY,I:NEXT:RETURN 48 DATA33,127,238,54,0,205,194,109,200,52,35,205,211,109,119,201,33 49 DATA127,238,54,0,235,6,131,33,0,73,205,194,109,194,112,238,43,124 50 DATA181,194,99,238,201,205,211,109,19,18,5,194,96,238,33,127,238,52,201 51 REM Original adaptation for the NEC 8201A of Rick Perry's XMODEM.312 by Steve Sagman 52 REM Special thanks to Rick Perry for all his work rewriting and revising his code to work on the 8201. 53 REM Higher BPS rate support added by Gary Weber.