home *** CD-ROM | disk | FTP | other *** search
/ Otherware / Otherware_1_SB_Development.iso / amiga / misc / amoner03.dms / amoner03.adf / Autoexec.AMOS / Autoexec.amosSourceCode next >
Encoding:
AMOS Source Code  |  1991-06-13  |  4.9 KB  |  219 lines

  1. Screen Open 0,640,200,8,Hires
  2. Flash Off : Colour 3,$2D9
  3. DISKNAME$="Amoner003:"
  4. Dim MEN$(40),DESC$(40),TYPE$(40),NAME$(40)
  5. Global MEN$(),DESC$(),TYPE$(),NAME$()
  6. Global CURRENT_MENU$,CURRENT_ITEM,HIGH_ITEM,DISKNAME$
  7. BUILD_SCREEN
  8. DATBASE_READ
  9. DEF_MEN_READ
  10. MENU_READER:
  11. DISPLAY_MENU
  12. MOUSE_READER:
  13. CHECK_ICON
  14. Repeat : Until Mouse Click
  15. If Mouse Zone=0 Then Goto MOUSE_READER
  16. If Mouse Zone=CURRENT_ITEM Then Goto MOUSE_READER
  17. If Mouse Zone>HIGH_ITEM and Mouse Zone<9 Then Goto MOUSE_READER
  18. If Mouse Zone<9
  19.    CURRENT_ITEM=Mouse Zone
  20.    DISPLAY_MENU
  21.    Goto MOUSE_READER
  22. End If 
  23. If Mouse Zone=9
  24.    ENTRY_CHECK
  25.    Goto MENU_READER
  26. End If 
  27. Rem
  28. Rem Debugging! 
  29. Rem
  30. ' For LOO=1 To 40
  31. '   Print MEN$(LOO)
  32. '   Print DESC$(LOO) 
  33. '   Print TYPE$(LOO) 
  34. '   Print NAME$(LOO) 
  35. '   Input A$ 
  36. ' Next LOO 
  37. Rem End of Debuggin
  38. Rem
  39. End 
  40. '
  41. ' This builds the Screen Face. 
  42. Procedure BUILD_SCREEN
  43.    Cls 0
  44.    Ink 2
  45.    For A=0 To 96 Step 12
  46.       Box 0,A To 620,0
  47.    Next A
  48.    Draw 20,0 To 20,96
  49.    NUM=0
  50.    Reserve Zone 9
  51.    For A=120 To 160 Step 20
  52.       For B=0 To 40 Step 20
  53.          Ink 5,0
  54.          Inc NUM
  55.          NUM$=Str$(NUM)
  56.          If NUM=9 Then NUM$=" R"
  57.          Text B-4,A+10,NUM$
  58.          Ink 2,0
  59.          Box B,A To B+15,A+14
  60.          Set Zone NUM,B,A To B+15,A+14
  61.       Next B
  62.    Next A
  63.    Ink 6,0
  64.    For A=1 To 8
  65.       Text 6,(A-1)*12+9,Right$(Str$(A),1)
  66.    Next A
  67.    Ink 2
  68.    Box 100,105 To 300,195
  69.    Ink 4 : Text 105,114,"AMONER No 3/ 16-DEC-1991"
  70.    Draw 105,116 To 296,116
  71.    Text 105,126,"Editor:  Gal-on Broner"
  72.    Text 105,136,"Assistant Editors:"
  73.    Text 105,145,"              Mike Cox"
  74.    Text 105,154,"             Paul Holt"
  75.    Text 105,163,"Distributors:"
  76.    Text 105,172,"           Scott Bonen"
  77.    Text 105,181,"        Mike Sheldrake"
  78.    Text 105,190,"            Dave Smith"
  79.    Ink 2 : Box 350,105 To 550,195
  80. End Proc
  81. ' This reads the files database from the disk. 
  82. Procedure DATBASE_READ
  83.    Open Random 1,DISKNAME$+"files.db"
  84.    Field 1,8 As MEN$,72 As DESC$,1 As TYPE$,20 As NAME$
  85.    For LOO=1 To 40
  86.       Get 1,LOO
  87.       MEN$(LOO)=MEN$
  88.       DESC$(LOO)=DESC$
  89.       TYPE$(LOO)=TYPE$
  90.       NAME$(LOO)=NAME$
  91.    Next LOO
  92.    Close 1
  93. End Proc
  94. ' This reads menu information from the disk. 
  95. Procedure DEF_MEN_READ
  96.    Open In 1,DISKNAME$+"menu.def"
  97.    Input #1,CURRENT_MENU$
  98.    Input #1,CURRENT_ITEM
  99.    Close 1
  100. End Proc
  101. ' This display the menu. 
  102. Procedure DISPLAY_MENU
  103.    SIZE=Len(CURRENT_MENU$)
  104.    PLACE=0
  105.    For LOO=1 To 40
  106.       If Left$(MEN$(LOO),SIZE)=CURRENT_MENU$
  107.          If PLACE+1=CURRENT_ITEM
  108.             Ink 4,0
  109.          Else 
  110.             Ink 2,0
  111.          End If 
  112.          Text 26,PLACE*12+9,DESC$(LOO)
  113.          Inc PLACE
  114.       End If 
  115.    Next LOO
  116.    HIGH_ITEM=PLACE
  117. End Proc
  118. ' what icon to display?
  119. Procedure CHECK_ICON
  120.    If CURRENT_MENU$="main" and CURRENT_ITEM=4
  121.       Ink 0
  122.       Bar 355,107 To 544,192
  123.       Paste Icon 355,107,1
  124.       Pop Proc
  125.    End If 
  126.    If CURRENT_MENU$="main" and CURRENT_ITEM=3
  127.       Ink 0
  128.       Bar 355,107 To 544,192
  129.       Paste Icon 355,107,2
  130.       Pop Proc
  131.    End If 
  132.    If CURRENT_MENU$="tour"
  133.       Ink 0
  134.       Bar 355,107 To 544,192
  135.       Paste Icon 355,107,4
  136.       Pop Proc
  137.    End If 
  138.    Ink 0
  139.    Bar 355,107 To 544,192
  140.    Paste Icon 355,107,3
  141. End Proc
  142. ' This cleans up the menu. 
  143. Procedure CLEAN_MENU
  144.    Ink 0
  145.    CLEAN$=Space$(72)
  146.    For PLACE=0 To 7
  147.       Text 26,PLACE*12+9,CLEAN$
  148.    Next PLACE
  149. End Proc
  150. ' Now come the most importent procedure. 
  151. ' This check the entry.
  152. Procedure ENTRY_CHECK
  153.    SIZE=Len(CURRENT_MENU$)
  154.    PLACE=1
  155.    ENTRY_TYPE$="" : Rem The entry type.  
  156.    ENTRY_NAME$="" : Rem the entry name.
  157.    Rem
  158.    Rem this loop gets the entry name and type.
  159.    Rem
  160.    For LOO=1 To 40
  161.       If Left$(MEN$(LOO),SIZE)=CURRENT_MENU$
  162.          If PLACE=CURRENT_ITEM
  163.             ENTRY_TYPE$=TYPE$(LOO)
  164.             ENTRY_NAME$=NAME$(LOO)
  165.             Goto ENTRY_FOUND
  166.          End If 
  167.          Inc PLACE
  168.       End If 
  169.    Next LOO
  170.    ENTRY_FOUND:
  171.    Rem
  172.    Rem Trip off the spaces in the entry_name$ 
  173.    Rem
  174.    For LOO=1 To Len(ENTRY_NAME$)
  175.       If Mid$(ENTRY_NAME$,LOO,1)=" "
  176.          ENTRY_NAME$=Left$(ENTRY_NAME$,LOO-1)
  177.          Goto ENTRY_TRIMED
  178.       End If 
  179.    Next LOO
  180.    End 
  181.    ENTRY_TRIMED:
  182.    Rem
  183.    Rem M type items are menus 
  184.    Rem
  185.    If ENTRY_TYPE$="m"
  186.       CURRENT_MENU$=ENTRY_NAME$
  187.       CURRENT_ITEM=1
  188.       CLEAN_MENU
  189.       Pop Proc
  190.    End If 
  191.    Rem  
  192.    Rem P type are to print on screen using Amore. 
  193.    Rem
  194.    If ENTRY_TYPE$="p"
  195.       BUILD_AMORE_FILE[ENTRY_NAME$]
  196.       BUILD_MENU_FILE
  197.       Run DISKNAME$+"Amore.Amos"
  198.    End If 
  199.    Rem  
  200.    Rem and R type to run
  201.    Rem
  202.    If ENTRY_TYPE$="r"
  203.       BUILD_MENU_FILE
  204.       Run DISKNAME$+ENTRY_NAME$
  205.    End If 
  206. End Proc
  207. ' This buils proper data file for Amore. 
  208. Procedure BUILD_AMORE_FILE[FILENAME$]
  209.    Open Out 1,DISKNAME$+"Editor/Filename.dat"
  210.    Print #1,FILENAME$
  211.    Close 1
  212. End Proc
  213. ' And last, this file keeps the menu and item area.
  214. Procedure BUILD_MENU_FILE
  215.    Open Out 1,DISKNAME$+"menu.def"
  216.    Print #1,CURRENT_MENU$
  217.    Print #1,CURRENT_ITEM
  218.    Close 1
  219. End Proc