home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga MA Magazine 1998 #3
/
amigamamagazinepolishissue1998.iso
/
bazy
/
fbn_ondr
/
onlinedirectory
/
onlinedirectoryv100.amos
/
onlinedirectoryv100.amosSourceCode
Wrap
AMOS Source Code
|
1997-01-20
|
17KB
|
595 lines
Set Buffer 40
Erase All
Request Off
Amos To Back
' __________________________________________________________________________ `
'| |`
'| Online Directory V1.00 by C. Edward Stewart 21/12/96 |`
'|__________________________________________________________________________|`
' `
_CHECK_FOR_REQTOOLS_LIBRARY:
RT= Extension_14_0F08
If RT=False Then End
_DEFINE_VARIABLES:
XOFF=0 : HIGH_ITEM=0 : PAGE=0 : OX=0 : OY=0 : WID=0 : HGT=0 : CLR=0 : RES=0
CHANGE=0 : SERIAL=0 : BPS=0 : BUF=0 : XON=0 : WIRES=0 : DTR=0 : PARITY=0
WRD=0 : SBITS=0
Global XOFF,HIGH_ITEM,PAGE,OX,OY,WID,HGT,CLR,RES,CHANGE,SERIAL,BPS,BUF,XON
Global WIRES,DTR,PARITY,WRD,SBITS
VERSION$="" : PATH$=""
Global VERSION$,PATH$,MESSAGE$
Dim BOOK_DATA$(399,6)
Global BOOK_DATA$()
_SET_VARIABLES:
HIGH_ITEM=0 : PAGE=1 : CHANGE=False : SERIAL=False
VERSION$="V1.00 20/1/97" : PATH$=Dir$
DISPLAY
SERIAL_ENV
BOOK_LOAD
BOOK_DISPLAY[PAGE]
BOOK_SELECT[PAGE]
' __________________________________________________________________________ `
'| |`
'| Procedures Start Here |`
'|__________________________________________________________________________|`
' `
Procedure DISPLAY
WID=0 : HGT=0 : CLR=0 : RES=0 : SCR=0 : A$="" : XOFF=0 : X1=0 : Y1=0 : X2=0
Y2=0 : A=0
If Exist("S:OnlineDirectory.CFG")
Open In 1,"S:OnlineDirectory.CFG"
Input #1,WID
Input #1,HGT
Input #1,CLR
Input #1,RES
Close 1
Goto DISPLAY
End If
_GET_SCREEN_MODE:
SCR= Extension_14_0814("Select a screen mode (640X200X4)")
If SCR=False Then End
WID= Extension_14_07AA
HGT= Extension_14_07BE
CLR= Extension_14_07D4
RES= Extension_14_07EA(0)
If WID<640 or WID>740 Then Goto _GET_SCREEN_MODE
If HGT<200 or HGT>300 Then Goto _GET_SCREEN_MODE
If CLR<4 Then Goto _GET_SCREEN_MODE
Open Out 1,"S:OnlineDirectory.CFG"
Print #1,WID
Print #1,HGT
Print #1,CLR
Print #1,RES
Close 1
DISPLAY:
XOFF=((WID-640)/8)/2 : X1=0 : X2=WID-1 : Y1=11 : Y2=HGT-14
A$=" Online Directory "+VERSION$
Extension_14_00C4 1,WID,HGT,CLR,RES,A$
Extension_14_064A 0
Load "OnlineDirectory.GFX",2
Extension_14_066E 1,0
Extension_14_06B2 X2,Y1+1 To X2,Y2
Extension_14_06B2 X2-1,Y1+1 To X2-1,Y2
Extension_14_06B2 X1,Y2 To X2,Y2
Extension_14_06B2 X1,Y1+17 To X2,Y1+17
Extension_14_066E 2,0
Extension_14_06B2 X1,Y1 To X2,Y1
Extension_14_06B2 X1,Y1 To X1,Y1+16
Extension_14_06B2 X1+1,Y1 To X1+1,Y1+16
Extension_14_06B2 X1,Y1+18 To X2,Y1+18
Extension_14_06B2 X1,Y1+18 To X1,Y2-1
Extension_14_06B2 X1+1,Y1+18 To X1+1,Y2-1
A=(WID-318)/2
Extension_14_0EB0 X1+A,Y2+2,1
End Proc
Procedure BOOK_LOAD
A$="" : A=0 : B=0 : X=0 : Y=0
A$=PATH$+"Book.DAT"
If Exist(A$)
X=(WID-160)/2
Y=(HGT-50)/2
Extension_14_12AE 1,X,Y,160,50," Online Directory",0
Extension_14_0468 1
Extension_14_066E 1,0
Extension_14_05E2 0,2
Extension_14_10F0 "Loading..."
For A=1 To 399
For B=1 To 6
BOOK_DATA$(A,B)=""
Next B
Next A
HIGH_ITEM=0
Open In 1,A$
Input #1,HIGH_ITEM
For A=1 To HIGH_ITEM
For B=1 To 6
Input #1,BOOK_DATA$(A,B)
Next B
Next A
Close 1
Extension_14_0324 1
End If
End Proc
Procedure BOOK_DISPLAY[PAGE]
A$="" : CLUMN=0 : ROW=0 : X=0 : Y=0 : ITEM=0 : TXT$=""
Extension_14_066E 1,0 : A$=Space$(70) : Extension_14_05E2 0,2 : Extension_14_10F0 A$
A$="Directory Page"+Str$(PAGE)+" of 7 Total Records:"+Str$(HIGH_ITEM)
Extension_14_066E 3,0 : Extension_14_05E2 0,2 : Extension_14_10F0 A$
Extension_14_066E 1,0
For CLUMN=0 To 2
For ROW=0 To 18
X=(CLUMN*27)+XOFF+1 : Y=ROW+4 : ITEM=((PAGE-1)*57)+(CLUMN*19)+ROW+1
A$=Left$(BOOK_DATA$(ITEM,1),24)+Space$(24) : TXT$=Left$(A$,24)
Extension_14_05E2 X,Y : Extension_14_0636 TXT$
Next ROW
Next CLUMN
ITEM=((PAGE-1)*57)+(OX*19)+(OY+1) : TXT$=Left$(BOOK_DATA$(ITEM,1),24)+Space$(24)
Extension_14_066E 1,2 : Extension_14_05E2(OX*27)+XOFF+1,OY+4 : Extension_14_0636 Left$(TXT$,24)
Extension_14_066E 1,0
End Proc
Procedure BOOK_SELECT[PAGE]
IN$="" : SC=0 : X=0 : Y=0 : ITEM=0 : OX=0 : OY=0 : TXT$=""
OX=X : OY=Y : ITEM=((PAGE-1)*57)+(X*19)+(Y+1) : TXT$=Left$(BOOK_DATA$(ITEM,1),24)+Space$(24)
Extension_14_066E 1,2 : Extension_14_05E2(X*27)+XOFF+1,Y+4 : Extension_14_0636 Left$(TXT$,24)
SELECT:
Do : IN$= Extension_14_0522 : SC= Extension_14_04DE : If IN$="" Then Loop
If SC=69
QUIT
End If
If SC=76
Y=Y-1
Goto SELECT1
End If
If SC=77
Y=Y+1
Goto SELECT1
End If
If SC=78
X=X+1
Goto SELECT1
End If
If SC=79
X=X-1
Goto SELECT1
End If
If SC=95
HELP
BOOK_DISPLAY[PAGE]
Goto SELECT
End If
If SC=12 or SC=94
PAGE=PAGE+1
If PAGE>7
PAGE=1
End If
BOOK_DISPLAY[PAGE]
Goto SELECT
End If
If SC=11 or SC=74
PAGE=PAGE-1
If PAGE<1
PAGE=7
End If
BOOK_DISPLAY[PAGE]
Goto SELECT
End If
If SC=18
ENTER_DATA[ITEM]
BOOK_DISPLAY[PAGE]
Goto SELECT
End If
If SC=33
BOOK_SAVE
Goto SELECT
End If
If SC=51
If Exist("S:OnlineDirectory.CFG")
Kill "S:OnlineDirectory.CFG"
End If
Extension_14_00EA 1
DISPLAY
BOOK_DISPLAY[PAGE]
End If
If SC=25
BOOK_PRINT
Goto SELECT
End If
If SC=70
BOOK_DELETE[ITEM]
Goto SELECT
End If
If SC=67 or SC=68
BOOK_DIAL[ITEM]
Goto SELECT
End If
SELECT1:
If X>2 Then X=0
If X<0 Then X=2
If Y>18 Then Y=0
If Y<0 Then Y=18
ITEM=((PAGE-1)*57)+(OX*19)+(OY+1) : TXT$=Left$(BOOK_DATA$(ITEM,1),24)+Space$(24)
Extension_14_066E 1,0 : Extension_14_05E2(OX*27)+XOFF+1,OY+4 : Extension_14_0636 Left$(TXT$,24)
OX=X : OY=Y : ITEM=((PAGE-1)*57)+(X*19)+(Y+1) : TXT$=Left$(BOOK_DATA$(ITEM,1),24)+Space$(24)
Extension_14_066E 1,2 : Extension_14_05E2(X*27)+XOFF+1,Y+4 : Extension_14_0636 Left$(TXT$,24)
Goto SELECT
End Proc
Procedure QUIT
If CHANGE=True
A= Extension_14_0D4A(" Online Directory","File has been changed.|Save it?","Yes","No")
If A=True
BOOK_SAVE
End If
End If
Extension_14_00EA 1
Amos To Front
Erase All
End
End Proc
Procedure HELP
SC=0 : IN$=""
H01$="Online Directory|"
H01$=H01$+" |Copyright 1997|C. Edward Stewart| |Help mode is now active.|"
H01$=H01$+" |Press keys as listed at the bottom|of your screen to call up|"
H01$=H01$+"help for that function."
H02$="Help Mode Terminated."
H03$="The Esc key exits the program."
H04$="The S key saves your directory|to the same directory that|"
H04$=H04$+"Online Directory is in."
H05$="The C key allows you to change|the configuration."
H06$="The P key prints out your directory|using the standard printer|"
H06$=H06$+"preferences."
H07$="The + key displays the next directory page."
H08$="The - key displays the previous directory page."
H09$="The arrow keys move the highlight|"
H09$=H09$+"bar to the entries."
H10$="The E key allows you to edit|entries or add entries."
H11$="The Del key erases the highlighted entry."
H12$="The Return key dials the selected number."
SC= Extension_14_0D9E("Help",H01$,"Start")
HELP:
Do : IN$= Extension_14_0522 : SC= Extension_14_04DE : If IN$="" Then Loop
If SC=69 Then SC= Extension_14_0D9E("Help",H03$,"Okay") : Goto HELP
If SC=33 Then SC= Extension_14_0D9E("Help",H04$,"Okay") : Goto HELP
If SC=51 Then SC= Extension_14_0D9E("Help",H05$,"Okay") : Goto HELP
If SC=25 Then SC= Extension_14_0D9E("Help",H06$,"Okay") : Goto HELP
If SC=12 or SC=94 Then SC= Extension_14_0D9E("Help",H07$,"Okay") : Goto HELP
If SC=11 or SC=74 Then SC= Extension_14_0D9E("Help",H08$,"Okay") : Goto HELP
If SC=76 or SC=79 or SC=77 or SC=78 Then SC= Extension_14_0D9E("Help",H09$,"Okay") : Goto HELP
If SC=18 Then SC= Extension_14_0D9E("Help",H10$,"Okay") : Goto HELP
If SC=70 Then SC= Extension_14_0D9E("Help",H11$,"Okay") : Goto HELP
If SC=68 or SC=67 Then SC= Extension_14_0D9E("Help",H12$,"Okay") : Goto HELP
If SC=95 Then SC= Extension_14_0D9E("Help",H02$,"Done") : Pop Proc
Goto HELP
End Proc
Procedure ENTER_DATA[RECORD]
X=0 : Y=0 : A$="" : B$=""
CHANGE=True
X=(WID-320)/2 : Y=(HGT-117)/2
A$=Str$(RECORD) : B$="000"+Right$(A$,Len(A$)-1)
A$=" Edit Entry "+Right$(B$,3)
If BOOK_DATA$(RECORD,1)=""
HIGH_ITEM=HIGH_ITEM+1
RECORD=HIGH_ITEM
For A=1 To 6
BOOK_DATA$(RECORD,A)="-"
Next A
End If
Extension_14_12AE 2,X,Y,320,117,A$,0
Extension_14_0468 2
Extension_14_066E 3,0 : Extension_14_05E2 1,1 : Extension_14_0636 "Name"
Extension_14_066E 1,0 : Extension_14_06C4 44,6 To 306,17 : Extension_14_06C4 45,6 To 305,17
Extension_14_066E 2,0 : Extension_14_06B2 46,17 To 306,17 : Extension_14_06B2 305,7 To 305,17
Extension_14_06B2 306,7 To 306,17
Extension_14_066E 3,0 : Extension_14_05E2 1,3 : Extension_14_0636 "Phone"
Extension_14_066E 1,0 : Extension_14_06C4 52,22 To 306,33 : Extension_14_06C4 53,22 To 305,33
Extension_14_066E 2,0 : Extension_14_06B2 54,33 To 306,33 : Extension_14_06B2 305,23 To 305,33
Extension_14_06B2 306,23 To 306,33
Extension_14_066E 3,0 : Extension_14_05E2 1,5 : Extension_14_0636 "Street"
Extension_14_066E 1,0 : Extension_14_06C4 60,38 To 306,49 : Extension_14_06C4 61,38 To 305,49
Extension_14_066E 2,0 : Extension_14_06B2 62,49 To 306,49 : Extension_14_06B2 305,39 To 305,49
Extension_14_06B2 306,39 To 306,49
Extension_14_066E 3,0 : Extension_14_05E2 1,7 : Extension_14_0636 "City"
Extension_14_066E 1,0 : Extension_14_06C4 44,54 To 306,65 : Extension_14_06C4 45,54 To 305,65
Extension_14_066E 2,0 : Extension_14_06B2 46,65 To 306,65 : Extension_14_06B2 305,55 To 305,65
Extension_14_06B2 306,55 To 306,65
Extension_14_066E 3,0 : Extension_14_05E2 1,9 : Extension_14_0636 "Province"
Extension_14_066E 1,0 : Extension_14_06C4 76,70 To 306,81 : Extension_14_06C4 77,70 To 305,81
Extension_14_066E 2,0 : Extension_14_06B2 78,81 To 306,81 : Extension_14_06B2 305,71 To 305,81
Extension_14_06B2 306,71 To 306,81
Extension_14_066E 3,0 : Extension_14_05E2 1,11 : Extension_14_0636 "Postal Code"
Extension_14_066E 1,0 : Extension_14_06C4 100,86 To 306,97 : Extension_14_06C4 101,86 To 305,97
Extension_14_066E 2,0 : Extension_14_06B2 102,97 To 306,97 : Extension_14_06B2 305,87 To 305,97
Extension_14_06B2 306,87 To 306,97
Extension_14_066E 1,2 : Extension_14_05E2 6,1 : Extension_14_0636 BOOK_DATA$(RECORD,1)
Extension_14_05E2 7,3 : Extension_14_0636 BOOK_DATA$(RECORD,2)
Extension_14_05E2 8,5 : Extension_14_0636 BOOK_DATA$(RECORD,3)
Extension_14_05E2 6,7 : Extension_14_0636 BOOK_DATA$(RECORD,4)
Extension_14_05E2 10,9 : Extension_14_0636 BOOK_DATA$(RECORD,5)
Extension_14_05E2 13,11 : Extension_14_0636 BOOK_DATA$(RECORD,6)
IN[6,1,31,BOOK_DATA$(RECORD,1)] : BOOK_DATA$(RECORD,1)=Param$
IN[7,3,30,BOOK_DATA$(RECORD,2)] : BOOK_DATA$(RECORD,2)=Param$
IN[8,5,29,BOOK_DATA$(RECORD,3)] : BOOK_DATA$(RECORD,3)=Param$
IN[6,7,31,BOOK_DATA$(RECORD,4)] : BOOK_DATA$(RECORD,4)=Param$
IN[10,9,27,BOOK_DATA$(RECORD,5)] : BOOK_DATA$(RECORD,5)=Param$
IN[13,11,24,BOOK_DATA$(RECORD,6)] : BOOK_DATA$(RECORD,6)=Param$
Extension_14_0324 2
End Proc
Procedure IN[X,Y,LGTH,TXT$]
MESSAGE$="" : IN$=""
Extension_14_05E2 X,Y : Extension_14_066E 2,2 : Extension_14_0636 Space$(LGTH)
Extension_14_066E 3,2 : Extension_14_05E2 X,Y : Extension_14_0636 TXT$
Extension_14_066E 1,0 : Extension_14_05E2 X,Y : MESSAGE$= Extension_14_0540
If MESSAGE$="" Then MESSAGE$=TXT$ : Extension_14_05E2 X,Y : Extension_14_0636 TXT$
MESSAGE$=Left$(MESSAGE$,LGTH)
End Proc[MESSAGE$]
Procedure BOOK_SAVE
A$="" : A=0 : B=0 : X=0 : Y=0
A= Extension_14_0D4A(" Online Directory","Sort the file?","Yes","Skip It")
If A=True Then BOOK_SORT
A$=PATH$+"Book.DAT"
If Exist(A$) Then Kill A$
X=(WID-160)/2
Y=(HGT-50)/2
Extension_14_12AE 3,X,Y,160,50," Online Directory",0
Extension_14_0468 3
Extension_14_066E 1,0
Extension_14_05E2 0,2
Extension_14_10F0 "Saving..."
Open Out 1,A$
Print #1,HIGH_ITEM
For A=1 To HIGH_ITEM
For B=1 To 6
Print #1,BOOK_DATA$(A,B)
Next B
Next A
Close 1
Extension_14_0324 3
End Proc
Procedure BOOK_SORT
X=0 : Y=0 : A=0 : B=0 : C=0
X=(WID-160)/2
Y=(HGT-50)/2
Extension_14_12AE 4,X,Y,160,50," Online Directory",0
Extension_14_0468 4
Extension_14_066E 1,0
Extension_14_05E2 0,2
Extension_14_10F0 "Sorting..."
For A=1 To HIGH_ITEM-1
For B=1 To HIGH_ITEM-1
If BOOK_DATA$(B,1)>BOOK_DATA$(B+1,1)
For C=1 To 6
Swap BOOK_DATA$(B,C),BOOK_DATA$(B+1,C)
Next C
End If
Next B
Next A
Extension_14_0324 4
BOOK_DISPLAY[PAGE]
End Proc
Procedure BOOK_PRINT
A=0 : A$="" : TXT$=""
Trap Open Port 1,"PRT:"
If Errtrap
A= Extension_14_0D9E("Online Directory","Can't Access Printer","Okay")
Pop Proc
End If
X=(WID-160)/2
Y=(HGT-50)/2
Extension_14_12AE 5,X,Y,160,50," Online Directory",0
Extension_14_0468 5
Extension_14_066E 1,0
Extension_14_05E2 0,2
Extension_14_10F0 "Printing..."
For A=1 To HIGH_ITEM
A$=BOOK_DATA$(A,1)+Space$(20)
TXT$=Left$(A$,20)+" "
A$=BOOK_DATA$(A,2)+Space$(14)
TXT$=TXT$+Left$(A$,14)+" "
A$=BOOK_DATA$(A,3)+Space$(20)
TXT$=TXT$+Left$(A$,20)+" "
A$=BOOK_DATA$(A,4)+Space$(11)
TXT$=TXT$+Left$(A$,11)+" "
A$=BOOK_DATA$(A,5)+Space$(3)
TXT$=TXT$+Left$(A$,3)+" "
A$=BOOK_DATA$(A,6)+Space$(7)
TXT$=TXT$+Left$(A$,7)
Print #1,TXT$
Next A
Close 1
Extension_14_0324 5
End Proc
Procedure BOOK_DELETE[RECORD]
A$="" : B$="" : A=0 : B=0
A$=Str$(RECORD) : B$="000"+Right$(A$,Len(A$)-1)
A$="Delete record "+Right$(B$,3)+",|"+BOOK_DATA$(RECORD,1)+"?"
A= Extension_14_0D4A(" Online Directory",A$,"Yes","No")
If A=False Then Pop Proc
CHANGE=True
If RECORD=HIGH_ITEM
For A=1 To 6
BOOK_DATA$(RECORD,A)=""
Next A
HIGH_ITEM=HIGH_ITEM-1
BOOK_DISPLAY[PAGE]
Pop Proc
End If
For A=RECORD To HIGH_ITEM-1
For B=1 To 6
BOOK_DATA$(A,B)=BOOK_DATA$(A+1,B)
BOOK_DATA$(A+1,B)=""
Next B
Next A
HIGH_ITEM=HIGH_ITEM-1
BOOK_DISPLAY[PAGE]
End Proc
Procedure BOOK_DIAL[RECORD]
A=0 : X=0 : Y=0 : A$="" : CHAN=0 : IN$="" : SC=0 : COMMAND$=""
CHAN=1
If SERIAL=False
A= Extension_14_0D9E("Online Directory","Can't find ENV:Sys/serial.prefs","Okay")
Pop Proc
End If
X=(WID-160)/2
Y=(HGT-50)/2
Extension_14_12AE 6,X,Y,160,50," Online Directory",0
Extension_14_0468 6
Extension_14_066E 1,0
Extension_14_05E2 0,2
Extension_14_10F0 " Wait "
SERIAL_OPEN[1] : SER=Param
If SER=False
Extension_14_0324 6
Pop Proc
End If
DIAL:
Wait 60
Extension_14_05E2 0,2
Extension_14_10F0 "Dialing..."
A$="ATDT"+BOOK_DATA$(RECORD,2)+Chr$(13)+Chr$(10)
Serial Send CHAN,A$
Do : A=Serial Check(CHAN) : If A<>True Then Loop
For A=1 To 12000
IN$= Extension_14_0522 : SC= Extension_14_04DE
If IN$<>"" Then A=12000
Next A
If SC=69 Then Goto _STOP_DIALING
Do : SERIAL_MSG[CHAN] : COMMAND$=Param$ : If COMMAND$="" Then Loop
COMMAND$=Lower$(COMMAND$)
If COMMAND$="busy"
Extension_14_05E2 0,2
Extension_14_10F0 " Busy "
Goto DIAL
End If
If COMMAND$="no carrier"
Extension_14_05E2 0,2
Extension_14_10F0 "No Answer "
Goto DIAL
End If
Goto DIAL
_STOP_DIALING:
Extension_14_05E2 0,2
Extension_14_10F0 " Stopping "
Serial Send CHAN,Chr$(13)
Do : A=Serial Check(CHAN) : If A<>True Then Loop
Do : SERIAL_MSG[CHAN] : COMMAND$=Param$ : If COMMAND$="" Then Loop
SERIAL_CLOSE[1]
Extension_14_0324 6
End Proc
Procedure SERIAL_ENV
A$="" : A=0 : B=0
A=Exist("ENV:Sys/serial.prefs")
If A=False Then Pop Proc
SERIAL=True
Open In 1,"ENV:Sys/serial.prefs"
For A=1 To 52
A$=Input$(1,1)
Next A
A$=Input$(1,1)
A=Asc(A$)
A$=Input$(1,1)
B=Asc(A$)
BPS=(A*256)+B
A$=Input$(1,1)
A$=Input$(1,1)
A=Asc(A$)
A$=Input$(1,1)
B=Asc(A$)
BUF=(A*65536)+(B*256)
For A=58 To 62
A$=Input$(1,1)
Next A
A$=Input$(1,1)
A=Asc(A$)
If A=0 Then XON=True : WIRES=False : DTR=False
If A=1 Then XON=False : WIRES=True : DTR=True
If A=2 Then XON=False : WIRES=False : DTR=False
A$=Input$(1,1)
A$=Input$(1,1)
A=Asc(A$)
If A=0 Then PARITY=-1
If A=1 Then PARITY=0
If A=2 Then PARITY=1
If A=3 Then PARITY=2
If A=4 Then PARITY=3
A$=Input$(1,1)
A=Asc(A$)
WRD=A
A$=Input$(1,1)
A=Asc(A$)
SBITS=A
Close 1
End Proc
Procedure SERIAL_OPEN[CHAN]
A=0 : SER=0
Trap Serial Open CHAN,PRT,SHARE,XON,WIRES
If Errtrap
A= Extension_14_0D9E("Online Directory","Can't Access Serial Port","Okay")
SER=False
Goto SER_OPEN
End If
SER=True
Serial Speed CHAN,BPS
Serial Bits CHAN,WRD,SBITS
Serial Parity CHAN,PARITY
Serial Buf CHAN,BUF
If DTR=False Then Goto SER_OPEN
Wait 10
A=Peek(12571136)
If(A and 128)=0 Then A=A+128
Poke 12571136,A
Wait 10
A=Peek(12570624)
If(A and 128)=0 Then A=A+128
Poke 12570624,A
Wait 10
A=Peek(12570624)
If(A and 128)=128 Then A=A-128
Poke 12570624,A
Wait 120
SER_OPEN:
End Proc[SER]
Procedure SERIAL_MSG[CHAN]
SER=0 : SER$=""
If SERIAL=False Then Pop Proc
Do
SER=Serial Get(CHAN)
If SER<32 or SER>127 Then Goto ACK1
SER$=SER$+Chr$(SER)
ACK1:
If SER<>True Then Loop
End Proc[SER$]
Procedure SERIAL_CLOSE[CHAN]
A=0
If DTR=False Then Goto _CLOSE
A=Peek(12570624)
If(A and 128)=0 Then A=A+128
Poke 12570624,A
Wait 60
A=Peek(12570624)
If(A and 128)=128 Then A=A-128
Poke 12570624,A
Wait 60
CONNECT=False
Goto _CLOSE1
_CLOSE:
SERIAL_MSG[CHAN]
A$="+++"
Serial Send CHAN,A$
Do : A=Serial Check(CHAN) : If A<>True Then Loop
Wait 60
Do : SERIAL_MSG[CHAN] : COMMAND$=Param$ : Print COMMAND$ : If COMMAND$<>"OK" Then Loop
A$="ath"
Serial Send CHAN,A$
Do : A=Serial Check(CHAN) : If A<>True Then Loop
Wait 60
Do : SERIAL_MSG[CHAN] : COMMAND$=Param$ : Print COMMAND$ : If COMMAND$<>"OK" Then Loop
CONNECT=False
_CLOSE1:
Serial Close 1
End Proc