home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AMOS PD CD
/
amospdcd.iso
/
551-575
/
apd573
/
sharp2amiga
/
comms.amos
/
comms.amosSourceCode
< prev
next >
Wrap
AMOS Source Code
|
1993-12-02
|
5KB
|
213 lines
SCRSETUP
COPRBARS1
'Track Load "dh1:mods/mod.05",3: set thes e up to load your own music
'Track Play 3,0
'Track Loop On
'
'load "sprites.abk"
On Error Goto XIT
If Exist("defaults")
Open In 1,"defaults"
Line Input #1,BAUD,BITS,PARITY$,STP,DUP$
Close
Else
BAUD=2400 : BITS=8 : PARITY$="N" : STP=1 : DUP$="F"
End If
'
Serial Open 0,0 : Serial Speed 0,BAUD
Serial Bits 0,BITS,STP : Serial Parity 0,Instr("NEOS",PARITY$)-2
Serial Buf 0,Max(512,512*BAUD/1200)
While Mouse Key : Wend
'
'
Screen 3 : For I=0 To 7 : Print Using "#";I; : Print "----+----"; : Next
'
Wait 300 : Screen 0 : Cls 0
HELP
TXT$=""
MAIN:
Do
T=Free
If BAUD<9600
Screen 2 : Locate 40,0 : _DATE$ : Print Param$;" ";
_TIME$ : Print Param$
End If
'
T$="" : T$=Inkey$ : S=Scancode
Screen 1 : Ink 1 : Paper 0
If T$<>"" : Print T$; : TXT$=TXT$+T$ : End If
If T$=Chr$(13)
If Left$(TXT$,3)="+++" : TXT$="+++" : End If
Screen 0 : Pen 11 : Serial Send 0,TXT$ : Print TXT$ : Pen 9
If CAP_FLAG : Print #1,TXT$; : End If
Gosub CHK
TXT$="" : Screen 1 : Cls
End If
If S=80 : Gosub CAP : End If
If S=83 : FILE_OUT : End If
If S=84 and BO=0 and M2=0 : Screen 0 : Cls 0 : Bob 1,72,35,10 : BO=1 : S=1 : End If
If S=84 and BO=1 : Screen 0 : Cls 0 : Bob Off 1 : BO=0 : S=1 : End If
If S=86 Then Track Play 3,0 : Track Loop On
If S=87 Then Track Stop
If S=88 and M2=0 and BO=0 Then GARBAGE
If S=89 : Goto XIT : End If
If S=95 : HELP : End If
M2=Chanmv(2)
If M2=0 Then Amal Off 2
'
CHECK=Serial Get(0)
Screen 0
If CHECK>0
Print Chr$(CHECK); : A=A+1
If CHECK=7 : Bell : End If
If CHECK=13 or CHECK=10 : A=0 : Print : End If
If CHECK=12 : Cls 0 : A=0 : End If
If A>70 and CHECK=32 : Print Chr$(13) : A=0 : End If
If CAP_FLAG : Print #1,Chr$(CHECK); : End If
End If
Gosub CHK
Loop
'
XIT:
Serial Close 0
Close
Default
End
'
'
CHK:
While Not Serial Check(0) : Wend
Return
CAP:
If CAP_FLAG=0
F$=Fsel$("**","","Select File","For DOWNLOAD")
If F$<>"" : Open Out 1,F$ : CAP_FLAG=1 : End If
Else
Close 1 : CAP_FLAG=0
End If
Return
'
'
Procedure FILE_OUT
F$=Fsel$("**","","Select File","For UPLOAD")
If F$<>"" : Open In 2,F$ : L=Lof(2) : DTA$=Input$(2,L) : Close 2
Screen 0
For I=1 To L : C$=Mid$(DTA$,I,1)
Print C$; : Serial Send 0,C$
Next : DTA$=""
Print : Print "<EOF>" : Bell
End If
End Proc
Procedure HELP
Screen 0 : Pen 9 : Paper 0
Print
Print "<F1> : Open/Close Capture <F4> : Send ASCII file"
Print "<F7> : Play Music <F8> : Stop Music"
Print "<F9> : Special"
Print "<F10> : EXIT PROGRAM <Help>: Help"
End Proc
Procedure SCRSETUP
Screen Close 0
'
Unpack 5 To 0 : Locate 0,18
' Screen Open 0,640,176,4,Hires
Screen Open 1,640,16,4,Hires : Ink 1 : Paper 0 : Cls 0
Screen Open 2,640,16,2,Hires : Screen To Back 2 : Curs Off
Screen Open 3,640,16,2,Hires : Curs Off : Screen To Back 3
'
Screen Display 0,,59,,
Screen Display 1,,249,,
Screen Display 3,,240,,
End Proc
Procedure COPRBARS1
Rainbow Del 0 : Rainbow Del 1 : Rainbow Del 2 : Rainbow Del 3
Set Rainbow 0,0,16,"","","(1,2,7)(1,-2,7)" : Rainbow 0,0,46,16
Set Rainbow 1,0,16,"","","(1,2,7)(1,-2,7)" : Rainbow 1,3,239,10
Set Rainbow 2,0,32,"(1,1,15)(1,-1,15)","(1,1,15)(1,-1,15)",""
Rainbow 2,0,266,32
Screen 1 : Palette 0,0,$CCC
Screen 2 : Palette 0,$FF0 : Print "OZI-COMM V1.0"
Screen 3 : Palette 0,$FF0
End Proc
Procedure _DATE$
MTH$="JanFebMarAprMayJunJulAugSepOctNovDec"
'
' Call DOS DateStamp function
T$=Space$(12)
Dreg(1)=Varptr(T$)
RIEN=Doscall(-192)
NJ=Leek(Varptr(T$))
'
' Find this year's first day
A=1978 : JOUR=7
Do
BIS=0 : If(A and 3)=0 : BIS=1 : End If
Exit If NJ-365-BIS<0
Add JOUR,1+BIS : If JOUR>7 : Add JOUR,-7 : End If
Add NJ,-365-BIS
Inc A
Loop
'
' Find month
M=1
Do
Read N
Exit If NJ-N<0
Add NJ,-N : Inc M
Loop
Inc NJ
'
' Create the string
J$=Mid$(Str$(NJ),2) : If Len(J$)<2 : J$="0"+J$ : End If
M$=Mid$(MTH$,(M-1)*3+1,3)
A$=Mid$(Str$(A),2)
'
' Calculate day of week
'
Y=A : D=NJ
DAYTEXT$="SunMonTueWedThuFriSat"
M=M-2
If(M<1) or(M>10)
M=M+12 : Y=Y-1
End If
C=Y/100
Y=Y mod 100
T=Int(2.6*M-0.19)+D+Y+(Y/4)
DAYNUM=(T+(C/4)-C-C) mod 7
If DAYNUM<0 Then DAYNUM=DAYNUM+7
D$=Mid$(DAYTEXT$,DAYNUM*3+1,3)
DATE$=D$+" "+M$+" "+J$+", "+A$
'
' Length of each month
Data 31,28+BIS,31,30,31,30,31,31,30,31,30,31
'
End Proc[DATE$]
Procedure _TIME$
'
' Call DOS function
T$=Space$(12)
Dreg(1)=Varptr(T$)
RIEN=Doscall(-192)
MN=Leek(Varptr(T$)+4)
SEC=Leek(Varptr(T$)+8)
'
' Minutes calculation
H=MN/60 : H$=Mid$(Str$(H),2) : If Len(H$)<2 : H$="0"+H$ : End If
M=MN mod 60 : M$=Mid$(Str$(M),2) : If Len(M$)<2 : M$="0"+M$ : End If
'
' Seconds calculation
S=SEC/50 : S$=Mid$(Str$(S),2) : If Len(S$)<2 : S$="0"+S$ : End If
'
' Final string
TIME$=H$+":"+M$+":"+S$
'
End Proc[TIME$]
Procedure GARBAGE
A$="A 0,(1,6)(2,6)(3,6)(1,6)(2,6)(3,6)(1,6)(2,6)(3,6)(1,6)(2,6)(3,6)(1,6)(2,6)(3,6)(4,3)(5,3)(7,3)(3,6);M -670,0,670"
Screen 0
Channel 2 To Bob 2
Bob 2,600,150,1
Amal 2,A$
Amal On 2
'
End Proc