home *** CD-ROM | disk | FTP | other *** search
AMOS Source Code | 1992-06-19 | 4.9 KB | 216 lines |
- Screen Open 0,640,200,8,Hires
- Flash Off : Colour 3,$2D9
- DISKNAME$="AmoNER004:"
- Dim MEN$(40),DESC$(40),TYPE$(40),NAME$(40)
- Global MEN$(),DESC$(),TYPE$(),NAME$()
- Global CURRENT_MENU$,CURRENT_ITEM,HIGH_ITEM,DISKNAME$
- DISPLAY_INTRO
- BUILD_SCREEN
- DATBASE_READ
- DEF_MEN_READ
- MENU_READER:
- DISPLAY_MENU
- Copper On
- MOUSE_READER:
- CHECK_ICON
- Repeat : Until Mouse Click
- If Mouse Zone=0 Then Goto MOUSE_READER
- If Mouse Zone=CURRENT_ITEM Then Goto MOUSE_READER
- If Mouse Zone>HIGH_ITEM and Mouse Zone<9 Then Goto MOUSE_READER
- If Mouse Zone<9
- CURRENT_ITEM=Mouse Zone
- DISPLAY_MENU
- Goto MOUSE_READER
- End If
- If Mouse Zone=9
- ENTRY_CHECK
- Goto MENU_READER
- End If
- Rem
- End
- ' This displays mikes intro.
- Procedure DISPLAY_INTRO
- Open In 1,DISKNAME$+"intro.def"
- Input #1,CHECKER
- Close 1
- If CHECKER=0
- Open Out 1,DISKNAME$+"intro.def"
- Print #1,"1"
- Close 1
- Copper Off
- Run DISKNAME$+"Amoner.Amos"
- End If
- End Proc
- ' This builds the Screen Face.
- Procedure BUILD_SCREEN
- Cls 0
- Ink 2
- For A=0 To 96 Step 12
- Box 0,A To 620,0
- Next A
- Draw 20,0 To 20,96
- NUM=0
- Reserve Zone 9
- For A=120 To 160 Step 20
- For B=0 To 40 Step 20
- Ink 5,0
- Inc NUM
- NUM$=Str$(NUM)
- If NUM=9 Then NUM$=" R"
- Text B-4,A+10,NUM$
- Ink 2,0
- Box B,A To B+15,A+14
- Set Zone NUM,B,A To B+15,A+14
- Next B
- Next A
- Ink 6,0
- For A=1 To 8
- Text 6,(A-1)*12+9,Right$(Str$(A),1)
- Next A
- Ink 2
- Box 100,105 To 300,195
- Ink 4 : Text 105,114,"AmoNER No 4/ 1-JUL-1992"
- Draw 105,116 To 296,116
- Text 105,126,"Editor: Gal-on Broner"
- Text 105,136,"Assistant Editor:"
- Text 105,145," Michael Cox"
- Text 105,154,""
- Text 105,163,"Distributors:"
- Text 105,172," Voodoo Softwere"
- Text 105,181," Niklas Konstenius"
- Text 105,190," "
- Ink 2 : Box 350,105 To 550,195
- End Proc
- ' This reads the files database from the disk.
- Procedure DATBASE_READ
- Open Random 1,DISKNAME$+"files.db"
- Field 1,8 As MEN$,72 As DESC$,1 As TYPE$,20 As NAME$
- For LOO=1 To 40
- Get 1,LOO
- MEN$(LOO)=MEN$
- DESC$(LOO)=DESC$
- TYPE$(LOO)=TYPE$
- NAME$(LOO)=NAME$
- Next LOO
- Close 1
- End Proc
- ' This reads menu information from the disk.
- Procedure DEF_MEN_READ
- Open In 1,DISKNAME$+"menu.def"
- Input #1,CURRENT_MENU$
- Input #1,CURRENT_ITEM
- Close 1
- End Proc
- ' This display the menu.
- Procedure DISPLAY_MENU
- SIZE=Len(CURRENT_MENU$)
- PLACE=0
- For LOO=1 To 40
- If Left$(MEN$(LOO),SIZE)=CURRENT_MENU$
- If PLACE+1=CURRENT_ITEM
- Ink 4,0
- Else
- Ink 2,0
- End If
- Text 26,PLACE*12+9,DESC$(LOO)
- Inc PLACE
- End If
- Next LOO
- HIGH_ITEM=PLACE
- End Proc
- ' what icon to display?
- Procedure CHECK_ICON
- Ink 0
- If CURRENT_MENU$="main" and CURRENT_ITEM=4
- Bar 356,108 To 543,191
- Paste Icon 356,108,2
- Pop Proc
- End If
- If CURRENT_MENU$="main" and CURRENT_ITEM=5
- Bar 356,108 To 543,191
- Paste Icon 356,108,3
- Pop Proc
- End If
- Bar 356,108 To 543,191
- Paste Icon 356,108,1
- End Proc
- ' This cleans up the menu.
- Procedure CLEAN_MENU
- Ink 0
- CLEAN$=Space$(72)
- For PLACE=0 To 7
- Text 26,PLACE*12+9,CLEAN$
- Next PLACE
- End Proc
- ' Now come the most importent procedure.
- ' This check the entry.
- Procedure ENTRY_CHECK
- SIZE=Len(CURRENT_MENU$)
- PLACE=1
- ENTRY_TYPE$="" : Rem The entry type.
- ENTRY_NAME$="" : Rem the entry name.
- Rem
- Rem this loop gets the entry name and type.
- Rem
- For LOO=1 To 40
- If Left$(MEN$(LOO),SIZE)=CURRENT_MENU$
- If PLACE=CURRENT_ITEM
- ENTRY_TYPE$=TYPE$(LOO)
- ENTRY_NAME$=NAME$(LOO)
- Goto ENTRY_FOUND
- End If
- Inc PLACE
- End If
- Next LOO
- ENTRY_FOUND:
- Rem
- Rem Trim off the spaces in the entry_name$
- Rem
- For LOO=1 To Len(ENTRY_NAME$)
- If Mid$(ENTRY_NAME$,LOO,1)=" "
- ENTRY_NAME$=Left$(ENTRY_NAME$,LOO-1)
- Goto ENTRY_TRIMED
- End If
- Next LOO
- End
- ENTRY_TRIMED:
- Rem
- Rem M type items are menus
- Rem
- If ENTRY_TYPE$="m"
- CURRENT_MENU$=ENTRY_NAME$
- CURRENT_ITEM=1
- CLEAN_MENU
- Pop Proc
- End If
- Rem
- Rem P type are to print on screen using Amore.
- Rem
- If ENTRY_TYPE$="p"
- BUILD_AMORE_FILE[ENTRY_NAME$]
- BUILD_MENU_FILE
- Copper Off
- Run DISKNAME$+"Amore.Amos"
- End If
- Rem
- Rem and R type to run
- Rem
- If ENTRY_TYPE$="r"
- BUILD_MENU_FILE
- Copper Off
- Run DISKNAME$+ENTRY_NAME$
- End If
- End Proc
- ' This buils proper data file for Amore.
- Procedure BUILD_AMORE_FILE[FILENAME$]
- Open Out 1,DISKNAME$+"Editor/Filename.dat"
- Print #1,FILENAME$
- Close 1
- End Proc
- ' And last, this file keeps the menu and item area.
- Procedure BUILD_MENU_FILE
- Open Out 1,DISKNAME$+"menu.def"
- Print #1,CURRENT_MENU$
- Print #1,CURRENT_ITEM
- Close 1
- End Proc