home *** CD-ROM | disk | FTP | other *** search
/ AMOS PD CD / amospdcd.iso / 351-375 / apd372 / slideshow / autoexec.amos / autoexec.amosSourceCode
AMOS Source Code  |  1991-07-31  |  5KB  |  211 lines

  1. ' Slide Show Manager Version 1.2 December 1991 (c) Norman C. Borg
  2. '
  3. Dim MX(4),POSX(21,2),POSY(21,2),DRV$(4)
  4. Global D,DRV$(),DV$,SLIDE$,SLIDE,POSX(),POSY(),SCRN,NUM$,MX(),HN,MZ,PMZ
  5. FILING
  6. VARS
  7. Screen Open 1,640,250,16,Hires
  8. SLIDE=1 : ROUTINE
  9. Auto View Off 
  10. Limit Mouse 
  11. SCAN:
  12. PMZ=MZ : BUTTONOFF
  13. ZONING
  14. Do 
  15.    M=Mouse Click
  16.    If M<>0 Then MZ=Mouse Zone : Exit 
  17. Loop 
  18. If MZ=21 Then ABORT
  19. On MZ Proc FIRST,REWIND,PREVIOUS,HALT,CHOOSE,PAUSE,OTHER,FOWARD,LAST
  20. Goto SCAN
  21. Procedure FIRST
  22.    If SLIDE=1 Then Pop Proc
  23.    LIGHTBUTTON
  24.    SLIDE=1
  25.    ROUTINE
  26. End Proc
  27. Procedure REWIND
  28.    If SLIDE=1 Then Pop Proc
  29.    LIGHTBUTTON
  30.    TMZ=MZ
  31.    LESS:
  32.    Do 
  33.       ZONING
  34.       M=Mouse Click
  35.       If M<>0 Then MZ=Mouse Zone : Exit 
  36.       SLIDE=SLIDE-1 : If SLIDE<1 Then SLIDE=1 : Goto ARRIVAL
  37.       ROUTINE
  38.       LIGHTBUTTON
  39.    Loop 
  40.    If MZ<>4 and MZ<>6 Then Goto LESS
  41.    LIGHTBUTTON
  42.    If MZ=4 Then PMZ=TMZ : BUTTONOFF : Wait 30 : Goto ARRIVAL
  43.    If MZ=6
  44.       Do 
  45.          M=Mouse Click : MZ=Mouse Zone
  46.          If M<>0 and MZ=6
  47.             Exit 
  48.          End If 
  49.       Loop 
  50.    End If 
  51.    PMZ=MZ : BUTTONOFF
  52.    MZ=TMZ : LIGHTBUTTON
  53.    Goto LESS
  54.    ARRIVAL:
  55.    PMZ=MZ : BUTTONOFF
  56. End Proc
  57. Procedure PREVIOUS
  58.    If SLIDE=1 Then Pop Proc
  59.    LIGHTBUTTON
  60.    SLIDE=SLIDE-1 : If SLIDE<0 Then SLIDE=0
  61.    ROUTINE
  62. End Proc
  63. Procedure HALT
  64.    Rem useless if not in REWIND or FORWARD Modes
  65. End Proc
  66. Procedure CHOOSE
  67.    LIGHTBUTTON
  68.    TMZ=MZ
  69.    PROL:
  70.    NUM$="" : XX=545 : YY=245
  71.    ZONING
  72.    BEGIN:
  73.    If Len(NUM$)>2 Then Goto OKAY
  74.    Repeat 
  75.       M=Mouse Click : MZ=Mouse Zone
  76.    Until M<>0
  77.    If MZ<10 or MZ>20 Then Goto BEGIN
  78.    If MZ=20 Then LIGHTBUTTON : Goto OKAY
  79.    QQ=MZ-9 : T$=Str$(QQ) : T$=Right$(T$,1)
  80.    Screen SCRN : Ink 0,6 : Text XX,YY,T$ : XX=XX+8
  81.    NUM$=NUM$+T$
  82.    Goto BEGIN
  83.    OKAY:
  84.    If NUM$="" Then Goto CONCL
  85.    V=Val(NUM$)
  86.    If V>MX(D)
  87.       PMZ=MZ : BUTTONOFF
  88.       Ink 7 : Bar 545,226 To 570,233
  89.       Goto PROL
  90.    End If 
  91.    SLIDE=V
  92.    ROUTINE
  93.    CONCL:
  94.    PMZ=TMZ : BUTTONOFF
  95. End Proc
  96. Procedure PAUSE
  97.    Rem useless unless in REWIND or FORWARD Modes
  98. End Proc
  99. Procedure OTHER
  100.    If SLIDE=MX(D) Then Pop Proc
  101.    LIGHTBUTTON
  102.    SLIDE=SLIDE+1 : If SLIDE>MX(D) Then SLIDE=1
  103.    ROUTINE
  104. End Proc
  105. Procedure FOWARD
  106.    If SLIDE=MX(D) Then Pop Proc
  107.    LIGHTBUTTON
  108.    TMZ=MZ
  109.    MORE:
  110.    Do 
  111.       ZONING
  112.       M=Mouse Click
  113.       If M<>0 Then MZ=Mouse Zone : Exit 
  114.       SLIDE=SLIDE+1 : If SLIDE>MX(D) Then SLIDE=MX(D) : Goto ARRIVAL2
  115.       ROUTINE
  116.       LIGHTBUTTON
  117.    Loop 
  118.    If MZ<>4 and MZ<>6 Then Goto MORE
  119.    LIGHTBUTTON
  120.    If MZ=4 Then PMZ=TMZ : BUTTONOFF : Wait 30 : Goto ARRIVAL2
  121.    If MZ=6
  122.       Do 
  123.          M=Mouse Click : MZ=Mouse Zone
  124.          If M<>0 and MZ=6
  125.             Exit 
  126.          End If 
  127.       Loop 
  128.    End If 
  129.    PMZ=MZ : BUTTONOFF
  130.    MZ=TMZ : LIGHTBUTTON
  131.    Goto MORE
  132.    ARRIVAL2:
  133.    PMZ=MZ : BUTTONOFF
  134. End Proc
  135. Procedure LAST
  136.    If SLIDE=MX(D) Then Pop Proc
  137.    LIGHTBUTTON
  138.    SLIDE=MX(D)
  139.    ROUTINE
  140. End Proc
  141. Procedure ABORT
  142.    LIGHTBUTTON
  143.    End 
  144. End Proc
  145. Procedure LIGHTBUTTON
  146.    Screen SCRN
  147.    Ink 2 : Box POSX(MZ,1)-1,POSY(MZ,1) To POSX(MZ,2)-1,POSY(MZ,2)
  148. End Proc
  149. Procedure BUTTONOFF
  150.    Screen SCRN
  151.    Ink 6 : Box POSX(PMZ,1)-1,POSY(PMZ,1) To POSX(PMZ,2)-1,POSY(PMZ,2)
  152. End Proc
  153. Procedure VARS
  154.    For X=0 To D
  155.       Read DRV$(X)
  156.    Next 
  157.    SCRN=1
  158.    Data "dh0:","df0:","df1:","df2:"
  159. End Proc
  160. Procedure FILING
  161.    Open In 1,"Driver"
  162.    Input #1,D
  163.    If D=9 Then D=0 : Input #1,HN : Goto FINISH
  164.    For X=1 To D
  165.       Input #1,MX(X)
  166.    Next 
  167.    FINISH:
  168.    Close 1
  169. End Proc
  170. Procedure ROUTINE
  171.    SLIDE$=Str$(SLIDE) : L=Len(SLIDE$) : SLIDE$=Right$(SLIDE$,(L-1))
  172.    CHOOSEDRV
  173.    CHOOSESCRN
  174.    FF$=DV$+SLIDE$
  175.    Load Iff FF$,SCRN : Wait Vbl 
  176.    Screen To Front SCRN : View : Screen SCRN
  177.    If SLIDE=0 Then SL$=" Index" : Goto PAGE
  178.    SL$=SLIDE$+"/"+Str$(MX(D))
  179.    PAGE:
  180.    Get Rom Fonts : Set Font 2 : Ink 0,6
  181.    Text 14,227,SL$
  182. End Proc
  183. Procedure CHOOSEDRV
  184.    If D=9 Then DV$=DRV$(0) : Goto OK
  185.    If SLIDE<MX(1) Then DV$=DRV$(1) : Goto OK
  186.    If SLIDE<MX(2) and SLIDE>MX(1) Then DV$=DRV$(2) : Goto OK
  187.    If SLIDE>MX(2) Then DV$=DRV$(3)
  188.    OK:
  189. End Proc
  190. Procedure CHOOSESCRN
  191.    SCRN=SCRN+1 : If SCRN>2 Then SCRN=1
  192. End Proc
  193. Procedure ZONING
  194.    Reserve Zone 21
  195.    X1=12 : X2=35 : Y1=238 : Y2=246
  196.    For X=1 To 9
  197.       POSX(X,1)=X1 : POSX(X,2)=X2 : POSY(X,1)=Y1 : POSY(X,2)=Y2
  198.       Set Zone X,X1,Y1 To X2,Y2
  199.       X1=X1+32 : X2=X2+32
  200.    Next 
  201.    X1=300 : X2=312
  202.    For X=10 To 19
  203.       POSX(X,1)=X1 : POSX(X,2)=X2 : POSY(X,1)=Y1 : POSY(X,2)=Y2
  204.       Set Zone X,X1,Y1 To X2,Y2
  205.       X1=X1+21 : X2=X2+21
  206.    Next 
  207.    POSX(20,1)=510 : POSX(20,2)=533 : POSY(20,1)=Y1 : POSY(20,2)=Y2
  208.    POSX(21,1)=606 : POSX(21,2)=629 : POSY(21,1)=Y1 : POSY(21,2)=Y2
  209.    Set Zone 20,510,Y1 To 533,Y2
  210.    Set Zone 21,606,Y1 To 629,Y2
  211. End Proc