home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AMOS PD CD
/
amospdcd.iso
/
226-250
/
apd234
/
snake
/
snake!.doc
/
snake!.amosSourceCode
< prev
next >
Wrap
AMOS Source Code
|
1990-03-25
|
5KB
|
221 lines
Rem *********************************************************************
Rem ** AMOS Text by Bouch '91 (C) 1991 RIPOFFWARE SOFTWARE PRODUCTIONS **
Rem *********************************************************************
Rem Instructions
Rem
Rem To load a new file:
Rem (1) Change the variable "TITLE$" to the full pathname and title of your
Rem ASCII text file e.g. "TEXTPLUS:DOCUMENTS/RIPOFFWARE.TXP",
Rem (2) Un-comment the "NEW_FILE" line (line 31) ,
Rem (3) Run the program and view the text file as normal,
Rem (4) When you are satisfied press E to exit the program,
Rem (5) Comment out the line "NEW_FILE",
Rem (6) Change the variable TITLE$ to something more suitable
Rem e.g. "RIPOFFWARE.doc",
Rem (7) Save the program and give it an icon.
Rem
Rem ***** Look out for a new version of AMOS Text soon! - Bouch *****
Rem
TITLE$="SNAKE!.doc"
Dim LINES(1000)
Procedure NEW_FILE
Shared TITLE$
Erase 9
Open In 1,TITLE$
L=Lof(1)
Close 1
Reserve As Data 9,L+2
Bload TITLE$,Start(9)
End Proc
Procedure SET_UP_SCREEN
Shared TITLE$
Unpack 10 To 1
Screen Display 1,130,250,320,40
Screen Open 0,640,200,2,Hires
Curs Off
Palette 0,0
Set Rainbow 1,1,215,"(2,1,15)(1,0,150)(2,-1,15)","(2,1,15)(1,0,150)(2,-1,15)","(2,1,15)(1,0,150)(2,-1,15)"
Rainbow 1,0,40,215
Print Cdown$
Centre "-----AMOS TEXT READER-----(C) 1991 RIPOFFWARE-----BY DAVID BOUCHER-----"
Print Cdown$
Centre "DISPLAYING "+TITLE$
Print Cdown$
Centre "PLEASE WAIT WHILE I SORT THIS TEXT FILE OUT!"
Screen 1
Reserve Zone 7
For B=1 To 6
Read X
Set Zone B,X,15 To X+12,27
Next
Data 161,175,196,210,231,245
Set Zone 7,263,4 To 273,37
Limit Mouse
W$="A 0,(1,3)(2,3)(3,3)(4,3);A:L X=XM;L Y=YM-7;J A;"
P$="A 0,(5,3)(6,3)(7,3)(8,3)(7,3)(6,3);A:L X=XM;L Y=YM-7;J A;"
Screen 0
Colour 17,4095
Colour 18,15
Screen 1
Colour 17,4095
Colour 18,15
Sprite 8,0,0,1
Hide
X Mouse=271
Y Mouse=272
Channel 1 To Sprite 8
Amal 1,W$
Amal On 1
DEF_LINES
Screen 0
Centre "OK! - PRESS A KEY OR MOUSE BUTTON TO CONTINUE"
Print
Clear Key
Do
K$=Inkey$
Exit If K$<>""
Exit If Mouse Click=1
Loop
Amal 1,P$
Amal On 1
End Proc
Procedure MAINLOOP
Shared L,LINE
L=0
PAGE_ON[24]
Screen 1
Do
PANEL
CONTROL
C=Param
Screen 0
If C=2 and L<LINE Then PAGE_ON[24]
If C=1 and L>24 Then PAGE_BACK[24]
If C=4 and L<LINE Then PAGE_ON[1]
If C=3 and L>24 Then PAGE_BACK[1]
If C=5
Cls 0
L=0
LED[5,1]
Screen 0
PAGE_ON[24]
LED[5,0]
End If
If C=6
Cls 0
L=LINE-25
LED[6,1]
Screen 0
PAGE_ON[24]
LED[6,0]
End If
Exit If C=7
Screen 1
If L<24 Then L=24
If L=LINE Then L=LINE-1
Loop
End Proc
Procedure CONTROL
While Z=0
Do
K$=Inkey$
Z=Mouse Zone
If K$<>"" Then Z=0 : Exit
Exit If Mouse Click=1
Loop
Z$=Lower$(K$)
If Z$="u" Then Z=1
If Z$="d" Then Z=2
If Z$=Chr$(30) Then Z=3
If Z$=Chr$(31) Then Z=4
If Z$="t" Then Z=5
If Z$="b" Then Z=6
If Z$="e" Then Z=7
Wend
End Proc[Z]
Procedure DEF_LINES
Shared LINES(),LINE
LINES(0)=Start(9)-1
LINE=1
L=0
For P=Start(9) To Start(9)+Length(9)
Inc L
If Peek(P)=10 or L=78 Then LINES(LINE)=P : Inc LINE : L=0
Next
If LINE<25 Then LINE=25
End Proc
Procedure PRNT_LINE[PL]
Shared LINES()
If LINES(PL)>0
For CH=LINES(PL-1)+1 To LINES(PL)
L$=L$+Chr$(Peek(CH))
Next
If L$=Chr$(10) : Print : Else Print L$-Chr$(10) : End If
Else
Print
End If
End Proc
Procedure PAGE_ON[NOL]
Shared L,LINE
If NOL=24 Then LED[2,1] : Else LED[4,1]
Screen 0
Locate ,24
P=0
Do
Inc L
Inc P
If L=LINE Then E=True : Exit
PRNT_LINE[L]
Exit If P=NOL
Loop
If NOL=24 Then LED[2,0] : Else LED[4,0]
Screen 0
End Proc
Procedure PAGE_BACK[NOL]
Shared L,LINE
If NOL=24 Then LED[1,1] : Else LED[3,1]
Screen 0
P=0
Add L,-23
Do
Dec L
Inc P
If L=0 Then E=True : Exit
Home
Print Cup$;
PRNT_LINE[L]
Exit If P=NOL
Loop
Add L,23
If NOL=24 Then LED[1,0] : Else LED[3,0]
Screen 0
End Proc
Procedure LED[NO,MD]
Screen 1
Ink MD
If NO=1 Then Bar 163,8 To 171,11
If NO=2 Then Bar 177,8 To 185,11
If NO=3 Then Bar 198,8 To 206,11
If NO=4 Then Bar 212,8 To 220,11
If NO=5 Then Bar 233,8 To 241,11
If NO=6 Then Bar 247,8 To 255,11
If NO=7 Then Bar 280,7 To 288,10
If NO=8 Then Bar 280,20 To 288,23
End Proc
Procedure PANEL
Shared L,LINE
Ink 0,6
L#=L-24
LINE#=LINE-25
If LINE#>0
PC#=L#/LINE#
End If
PC=Int(PC#*100)
PC$=Right$(("000"+Str$(PC)-" "),3)+"%"
Text 284,36,PC$
If L<25 Then LED[7,1] : Else LED[7,0]
If L=LINE-1 Then LED[8,1] : Else LED[8,0]
End Proc
'NEW_FILE
SET_UP_SCREEN
MAINLOOP