home *** CD-ROM | disk | FTP | other *** search
/ AMOS PD CD / amospdcd.iso / 501-525 / apd520 / asstd_programs / makescreen.amos / makescreen.amosSourceCode < prev    next >
AMOS Source Code  |  1991-01-02  |  3KB  |  92 lines

  1. '           Example for creating screens which use settings  
  2. '       from preferences including mouse shape and key speed etc.      
  3. '                 (TL$ = Title.  SN = Screen number) 
  4. '               Written by Mike Warren.    January 1991. 
  5. '
  6. If Screen>-1 Then Screen Close Screen
  7. MAKESCREEN["Workbench Screen",0]
  8. Locate 12,8
  9. If Length(13)=232
  10.    Print "This screen was created using settings from Preferences"
  11. Else 
  12.    Print "  Devs/System-configuration file was not found"
  13.    Print At(15,);"Screen was created using default settings"
  14. End If 
  15. Wait Key : Screen Close Screen
  16. MAKESCREEN["",2]
  17. Print At(20,8);"This is screen 2. (No title specified)"
  18. Wait Key 
  19. Run "MenuProgram"
  20. '
  21. Procedure MAKESCREEN[TL$,SN]
  22.    If Length(13)<1
  23.       If Exist("devs/system-configuration")
  24.          Reserve As Work 13,232
  25.          Bload "devs/system-configuration",13
  26.          FS=1
  27.       End If 
  28.    End If 
  29.    Get Rom Fonts 
  30.    If Length(13)=232
  31.       Z=Start(13)
  32.       X=1+Val(Hex$(Peek(Z+15),1)+Hex$(Peek(Z+17),1)-"$"+Hex$(Peek(Z+18),2)-"$")/120
  33.       Y=1+Val(Hex$(Peek(Z+7),1)+Hex$(Peek(Z+9),1)-"$"+Hex$(Peek(Z+10),2)-"$")/120
  34.       Key Speed X,Y
  35.       Hide On 
  36.       Screen Open SN,640,260,4,Hires
  37.       Flash Off : Curs Off 
  38.       Palette 0,0,0,0,,,,,,,,,,,,,0,0,0
  39.       If Peek(Z)=9
  40.          X=1
  41.       Else 
  42.          X=2
  43.       End If 
  44.       Set Font X
  45.       If FS=1
  46.          For X=32 To 95 Step 4
  47.             W$=Bin$(Peek(Z+X),8)-"%"+Bin$(Peek(Z+X+1),8)-"%"
  48.             X$=Bin$(Peek(Z+X+2),8)-"%"+Bin$(Peek(Z+X+3),8)-"%"
  49.             For Y=1 To 16
  50.                Ink 0
  51.                Y$=Mid$(W$,Y,1) : If Y$="1" : Ink 19 : End If 
  52.                Z$=Mid$(X$,Y,1) : If Z$="1" : Ink 18 : End If 
  53.                If Val(Y$)=1 and Val(Z$)=1 : Ink 17 : End If 
  54.                Plot A,B : Inc A : If A>15 : A=0 : Inc B : End If 
  55.             Next 
  56.          Next 
  57.          Get Sprite 1,0,0 To 16,16
  58.          Hot Spot 1,255-Peek(Z+100),256-Peek(Z+101)
  59.          Change Mouse 4
  60.       End If 
  61.       Show On : Cls 0
  62.       X=Val(Hex$(Peek(Z+110),1)+Hex$(Peek(Z+111),2)-"$")
  63.       Colour Back X : Colour 0,X
  64.       Colour 1,Val(Hex$(Peek(Z+112),1)+Hex$(Peek(Z+113),2)-"$")
  65.       Colour 2,Val(Hex$(Peek(Z+114),1)+Hex$(Peek(Z+115),2)-"$")
  66.       Colour 3,Val(Hex$(Peek(Z+116),1)+Hex$(Peek(Z+117),2)-"$")
  67.       Colour 19,Val(Hex$(Peek(Z+102),1)+Hex$(Peek(Z+103),2)-"$")
  68.       Colour 18,Val(Hex$(Peek(Z+104),1)+Hex$(Peek(Z+105),2)-"$")
  69.       Colour 17,Val(Hex$(Peek(Z+106),1)+Hex$(Peek(Z+107),2)-"$")
  70.       X=Abs((Peek(Z+118)-128)*1.05) : X=(X/16)*16
  71.       Y=Peek(Z+119)-212 : If Y<1 : Y=Y+256 : End If 
  72.       Screen Display SN,X,Y,,
  73.       Limit Mouse X,Y To X+320,Y+260
  74.       For X=0 To 16
  75.          C0$=Bin$(Peek(Z+33),8)-"%"+Bin$(Peek(Z+34),8)-"%"
  76.       Next 
  77.    Else 
  78.       Screen Open SN,640,260,4,Hires
  79.       Flash Off : Key Speed 20,6
  80.       Palette 90,4095,2,3968,,,,,,,,,,,,,,4042,0,3362
  81.       Colour Back 90
  82.    End If 
  83.    Pen 1 : Paper 0 : Curs Off : Cls 0
  84.    Set Curs 192,192,192,192,192,192,192,192
  85.    If TL$<>""
  86.       Ink 1 : Bar 0,0 To 640,9
  87.       Ink 0 : Text 5,7,TL$
  88.       Bar 587,0 To 588,9 : Bar 611,0 To 612,9 : Bar 635,0 To 636,9
  89.       Box 592,1 To 604,6 : Box 619,2 To 631,8 : Ink 2
  90.       Bar 616,1 To 620,6 : Bar 616,1 To 628,2 : Bar 595,3 To 607,8
  91.    End If 
  92. End Proc