|
G0FTD > PSION 22.03.03 00:47l 307 Lines 5739 Bytes #999 (0) @ WW
BID : 720698G0FTD
Read: GUEST DB0FHN
Subj: QBASIC RTTY PC/Psion
Path: DB0FHN<DB0ZWI<DB0HDF<DB0HOT<DB0MRW<DB0RGB<OK0PPL<RZ6HXA<SP7MGD<WB0TAX<
IK1ZNW<GB7CRV<GB7CIP<GB7SXE
Sent: 030321/1816Z @:GB7SXE.#38.GBR.EU #:13329 [Hastings] FBB7.00i $:720698G0FT
From: G0FTD@GB7SXE.#38.GBR.EU
To : PSION@WW
From the archives comes this. It appears to have been sent/written by
G8XDM. I must admit I have only just found it so I have'nt tried it yet.
It would be interesting to try it on a Psion Revo when using the
XTM PC emulator (available as a shareware download).
Now I have my null modem adapter sorted out for my Revo for packet etc,
I could plug in my old Hamcomm modem etc.
I'd be interested if anyone gets it going on the Revo.
To run this program, save this message and edit out all my rubbish
leaving just the QBASIC source code. Save as rtty.bas and go.
For Win9x users, look at your Windows install CD and you'll find under
\oldmsdos (or similar) directory there will be QBASIC which you can
copy over and use just like the good old days :-)
Anyway, credit to G8XDM for this one.
----------------------------------------------------------------------
REM RTTY DECODER (RECEIVE ONLY)
DIM baudot(0 TO 63) AS INTEGER
DATA 00,69,00,65,32,83,73,85,13
REM _ E lf A sp S I U cr
DATA 68,82,74,78,70,67,75,84
REM D J R N F C K T
DATA 90,76,87,72,89,80,81,79
REM Z L W H Y P Q O
DATA 66,71,00,77,88,86,00,00
REM B G fs M X V ls _
DATA 51,00,45,32,39,56,55,13
REM 3 lf - sp ' 8 7 cr
DATA 42,52,33,44,37,58,40,53
REM wru 4 bel , % : ( 5
DATA 43,41,50,156,54,48,49,57
REM + ) 2 œ 6 0 1 9
DATA 63,64,00,46,47,61,00
REM ? @ fS . / = ls
FOR i = 0 TO 63
READ baudot(i)
NEXT i
REM CHANGE BELOW TO COM1 OR COM2
port$ = "com1:"
IF port$ = "com2" THEN
IER = 761
LINECTL = 763
DIVLSB = 760
DIVMSB = 761
MODCTL = 764
LINSTS = 765
p = 2
END IF
IF port$ = "com1:" THEN
IER = 1017
LINECTL = 1019
DIVLSB = 1016
DIVMSB = 1017
MODCTL = 1020
LINSTS = 1021
p = 1
END IF
port$ = port$ + "1200,n,7,1,ds0,cs0,cd0"
REM THE FOLLOWING STATEMENT ONLY OPENS THE PORT AS #1
REM THE SPEED ETC ARE ACADEMIC AT THE MOMENT
OPEN port$ FOR RANDOM AS #1
OPEN "RTTY.CAP" FOR APPEND AS #2
ON ERROR GOTO errorproc ' TRAP FRAMING ERRORS ETC
CLS
GOSUB SHOWKEYS2
LOCATE 1, 1, 1, 5, 7
REM SET INITIAL SPEED
GOSUB F1SPEED
GOSUB showtime
ON KEY(10) GOSUB ENDPROG
KEY(10) ON
ON KEY(1) GOSUB F1SPEED
KEY(1) ON
ON KEY(2) GOSUB F2SPEED
KEY(2) ON
ON KEY(3) GOSUB F3SPEED
KEY(3) ON
ON KEY(4) GOSUB F4SPEED
KEY(4) ON
ON KEY(5) GOSUB F5SPEED
KEY(5) ON
ON KEY(7) GOSUB LOGTOG
KEY(7) ON
ON KEY(8) GOSUB UOSTOG
KEY(8) ON
ON KEY(9) GOSUB UNSHIFT
KEY(9) ON
ON TIMER(59) GOSUB showtime
TIMER ON
SHIFT = 0 ' START OFF IN LETTER SHIFT
LOGFLAG = 0 ' LOGGING OFF
UOS = 0 ' UNSHIFT ON SPACE OFF
MAIN:
DO
IF LOC(1) <> 0 THEN
INDATA$ = INPUT$(1, #1)
rxdat = ASC(INDATA$)
rxdat = rxdat AND 31
IF rxdat = 4 THEN
IF UOS = 1 THEN SHIFT = 0
END IF
IF rxdat = 27 THEN SHIFT = 32
IF rxdat = 31 THEN SHIFT = 0
ASCIIDAT$ = CHR$(baudot(rxdat + SHIFT))
IF ASCIIDAT$ <> CHR$(0) THEN
PRINT ASCIIDAT$;
IF LOGFLAG = 1 THEN
PRINT #2, ASCIIDAT$;
IF ASCIIDAT$ = CHR$(13) THEN PRINT #2, CHR$(10);
END IF
END IF
END IF
x$ = INKEY$
LOOP
END ' PROGRAM NEVER GETS HERE !!!! THE ONLY WAY OUT IS F10
SHOWKEYS:
p = POS(0)
c = CSRLIN
LOCATE 25, 1
COLOR 15, 4
PRINT " F1-45 F2-50 F3-75 F4-100 F5-110";
RETURN
SHOWKEYS2:
p = POS(0)
c = CSRLIN
LOCATE 25, 48
IF LOGFLAG = 1 THEN COLOR 10, 4 ELSE COLOR 15, 4
PRINT " F7-LOG";
IF UOS = 1 THEN COLOR 10, 4 ELSE COLOR 15, 4
PRINT " F8-UOS";
COLOR 15, 4
PRINT " F9-SHIFT F10-EXIT ";
COLOR 14, 8
LOCATE c, p
RETURN
F1SPEED:
REM SET SPEED TO 45 BAUD
GOSUB SHOWKEYS
LO = 227
HI = 9
COLOR 10, 4
LOCATE 25, 2
PRINT "F1-45";
GOSUB SETSPEED
RETURN
F2SPEED:
REM SET SPEED TO 50 BAUD
GOSUB SHOWKEYS
LO = 0
HI = 9
COLOR 10, 4
LOCATE 25, 8
PRINT "F2-50";
GOSUB SETSPEED
RETURN
F3SPEED:
REM SET SPEED TO 75 BAUD
GOSUB SHOWKEYS
LO = 0
HI = 6
COLOR 10, 4
LOCATE 25, 14
PRINT "F3-75";
GOSUB SETSPEED
RETURN
F4SPEED:
REM SET SPEED TO 100 BAUD
GOSUB SHOWKEYS
LO = 128
HI = 4
COLOR 10, 4
LOCATE 25, 20
PRINT "F4-100";
GOSUB SETSPEED
RETURN
F5SPEED:
REM SET SPEED TO 110 BAUD
GOSUB SHOWKEYS
LO = 23
HI = 4
COLOR 10, 4
LOCATE 25, 27
PRINT "F5-110";
GOSUB SETSPEED
RETURN
SETSPEED:
REM SET UP UART REGISTERS for REQUIRED SPEED
OUT MODCTL, 8
IERSAVE = INP(IER)
OUT IER, 0
OUT LINECTL, INP(LINECTL) OR &H80
OUT DIVLSB, LO
OUT DIVMSB, HI
OUT LINECTL, &H4
OUT IER, IERSAVE
COLOR 14, 8
LOCATE c, p
RETURN
LOGTOG:
IF LOGFLAG = 0 THEN LOGFLAG = 1 ELSE LOGFLAG = 0
GOSUB SHOWKEYS2
RETURN
UOSTOG:
IF UOS = 0 THEN UOS = 1 ELSE UOS = 0
GOSUB SHOWKEYS2
RETURN
UNSHIFT:
IF SHIFT = 0 THEN SHIFT = 32 ELSE SHIFT = 0
RETURN
showtime:
p = POS(0)
c = CSRLIN
COLOR 11, 4
LOCATE 25, 33
PRINT " "; MID$(DATE$, 4, 3); LEFT$(DATE$, 3); RIGHT$(DATE$, 2); " ";
PRINT LEFT$(TIME$, 5);
COLOR 14, 8
LOCATE c, p
RETURN
ENDPROG:
CLOSE #1
CLOSE #2
END
errorproc:
REM ONLY FRAMING ERRORS ETC SHOULD OCCUR, SO FLASH * ON STATUS LINE.
p = POS(0)
l = CSRLIN
LOCATE 25, 42
COLOR , 4
PRINT "*";
LOCATE 25, 42
COLOR 4
PRINT " ";
COLOR 14, 8
LOCATE l, p
RESUME NEXT
------------------------------------------------------------------------
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ 73 - Andy ³
³ G0FTD ³
³ Psion Revo owner ³
³Msg sent 21-03-2003³
³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³
³ ³ Û ³ ³
ÀÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÙ
Read previous mail | Read next mail
| |