home *** CD-ROM | disk | FTP | other *** search
/ AMOS PD CD / amospdcd.iso / 501-525 / apd521 / phonics / phonics.amos / phonics.amosSourceCode < prev    next >
AMOS Source Code  |  1991-05-14  |  7KB  |  294 lines

  1. '*********************************************** 
  2. '*    Phonics Programme For 5 To 7 Year olds   *     
  3. '*            Written By Colin Edlin           *     
  4. '*               (c) 1991 ColSoft              *     
  5. '*********************************************** 
  6. Dim A$(60,4),B(60),C(10)
  7. Global A$(),B(),C(),G,SC,B$,TT,FX,FY,F,LX,WR
  8. Proc INITDATA
  9. Proc TITLE
  10. STRT:
  11. Proc SETUP
  12. Proc SETWORD
  13. If(B$="N") or(B$="n") Then Bob Off : Bob Clear : Edit 
  14. Goto STRT
  15. End 
  16. Procedure TITLE
  17.    Unpack 6 To 0 : Curs Off : Hide 
  18.    Wait 200
  19.    Screen Close 0
  20.    Unpack 8 To 2
  21.    Screen Open 0,320,266,32,Lowres : Flash Off : Cls 0
  22. Bank Swap 1,9
  23. Screen 0 : Get Palette(2) : Hide 
  24. Screen To Front 0 : B=40
  25. Autoback 0
  26. For A=0 To 232
  27. If A/2.2=Int(A/2.2) Then Dec B
  28. Get Bob 2,1,0,A To 320,A+1
  29. Get Bob 2,2,0,A+15 To 320,A+B
  30. No Mask 
  31. Paste Bob 0,A,1
  32. Paste Bob 0,A+2,Vrev(2)
  33. Wait Vbl 
  34. Next A
  35. Screen Copy 2 To 0
  36. Screen Close 2 : Erase 1
  37.    Repeat : Until Fire(1)
  38. Bank Swap 1,9
  39.    Proc WIPE
  40.    Screen Close 0
  41. End Proc
  42. Procedure INITDATA
  43.    For X=1 To 60
  44.       For Y=1 To 4
  45.          Read A$(X,Y)
  46.       Next Y
  47.       Read B(X)
  48.    Next X
  49.    Data "Cat","Sat","Bat","Let",4
  50.    Data "Eat","Meat","Rub","Seat",3
  51.    Data "Cot","Hot","Jot","Set",4
  52.    Data "Hill","Ball","Wall","Fall",1
  53.    Data "Miss","But","Nut","Hut",1
  54.    Data "Hiss","Miss","Mat","Kiss",3
  55.    Data "Can","Pan","Tin","Ran",3
  56.    Data "Ham","But","Sam","Pam",2
  57.    Data "Tap","Lap","Map","Bat",4
  58.    Data "Hid","Rid","Hut","Sid",3
  59.    Data "Bad","Rid","Mad","Sad",2
  60.    Data "Rod","Rat","Cod","Pod",2
  61.    Data "bake","cake","rake","plate",4
  62.    Data "Late","Ball","Hate","Gate",2
  63.    Data "Jill","Bill","Call","Pill",3
  64.    Data "Shell","Well","Pull","Bell",3
  65.    Data "Pull","Bull","Hull","Call",4
  66.    Data "Hop","Shut","Shop","Pop",2
  67.    Data "Shed","Bed","Red","Hop",4
  68.    Data "Pop","Lip","Pip","Rip",1
  69.    Data "Dad","Bad","Hop","Lad",3
  70.    Data "Lad","Hit","Sit","Pit",1
  71.    Data "Fan","Sun","Run","Fun",1
  72.    Data "Lid","Hid","Bun","Kid",3
  73.    Data "Face","Pace","Plate","Race",3
  74.    Data "Meat","Heat","Seat","Sit",4
  75.    Data "Fair","Hair","Chair","Chap",4
  76.    Data "Lid","Bin","Pin","Tin",1
  77.    Data "Cut","Fish","But","Hut",2
  78.    Data "Take","Lake","Cake","Hunt",4
  79.    Data "Car","Far","Call","Bar",3
  80.    Data "Wake","Pin","Rake","Make",2
  81.    Data "Pan","Pen","Hen","Men",1
  82.    Data "Ant","Pant","Hen","Rant",3
  83.    Data "Mast","Last","Fish","Past",3
  84.    Data "Lock","Tank","Rock","Sock",2
  85.    Data "Lamp","Vest","Ramp","Camp",2
  86.    Data "Vest","Rest","Pest","Lock",4
  87.    Data "Nine","Mine","Pine","Kite",4
  88.    Data "Pram","Ham","Land","Sam",3
  89.    Data "Land","Sand","Hand","Lit",4
  90.    Data "Hop","Pin","Pop","Top",2
  91.    Data "Mark","Park","Lark","Land",4
  92.    Data "Pond","Jet","Pet","Met",1
  93.    Data "Ride","Side","Tide","Land",4
  94.    Data "Play","Clay","Say","Pet",4
  95.    Data "Can","Pan","Plug","Ran",3
  96.    Data "Pad","Mad","Dad","Cat",4
  97.    Data "Map","Sap","Cap","Cat",4
  98.    Data "Late","Kate","Hate","Cat",4
  99.    Data "Tate","Cap","Gate","Rate",2
  100.    Data "Car","Far","Jar","Ball",4
  101.    Data "Cat","Bike","Like","Mike",1
  102.    Data "Late","Plank","Ate","Plate",2
  103.    Data "Bank","Pull","Plank","Rank",2
  104.    Data "Shade","Glade","Blade","Glad",4
  105.    Data "Chop","Cop","Cot","Shop",3
  106.    Data "Wait","Bake","Wake","Take",1
  107.    Data "Lake","Full","Make","Rake",2
  108.    Data "Shut","Run","Rut","Nut",2
  109. End Proc
  110. Procedure SETUP
  111.    Unpack 7 To 1 : Curs Off : Flash Off : Hide 
  112.    Double Buffer 
  113.    Get Palette(1)
  114.    WR=0
  115.    FX=30 : FY=157
  116.    Bob 1,75,155,17
  117.    Bob 4,FX,FY,9
  118.    Channel 1 To Bob 1
  119.    Channel 2 To Bob 2
  120.    Channel 3 To Bob 3
  121.    Channel 4 To Bob 4
  122.    Amal 1,3
  123.    Amal On 1
  124. End Proc
  125. Procedure SETWORD
  126.    Randomize Timer
  127.    For J=1 To 10
  128.       CC:
  129.       C(J)=Rnd(59)+1
  130.       If C(J)>1 and(C(J)=C(J-1)) Then Goto CC
  131.    Next J
  132.    SC=0
  133.    For TT=1 To 10
  134.       Cls 8,70,193 To 260,206
  135.       Proc PLACEWORD
  136.       Proc MOVEFROG
  137.    Next TT
  138.    Amal Off 
  139.    Bob Off 
  140.    Proc SCORE
  141. End Proc
  142. Procedure PLACEWORD
  143.    Ink 7
  144.    Gr Writing 0
  145.    A=C(TT)
  146.    G=B(A)
  147.    PP=76
  148.    For P=1 To 4
  149.       N$=A$(A,P)
  150.       Text PP,200,N$
  151.       PP=PP+47
  152.    Next P
  153. End Proc
  154. Procedure MOVEFROG
  155.    Sam Bank 5
  156.    RET:
  157.    Repeat 
  158.       Clear Key 
  159.       CHECK_MOVE
  160.    Until Fire(1)
  161.    If FX=31 Then F=1
  162.    If FX=32 Then F=2
  163.    If FX=33 Then F=3
  164.    If FX=34 Then F=4
  165.    If FX=30 or FX=35 Then Goto RET
  166.    Ink 7
  167.    If F=G
  168.       Bob 3,50,60,22
  169.       A$="A 0,(22,10)(23,10);M 270,0,150;P;"
  170.       Amal 3,A$ : Amal On 3
  171.       SC=SC+1
  172.       Pen 6 : Paper 8 : Locate 26,30 : Print SC
  173.       Text 100,158,"Correct Answer"
  174.       Sam Play 1,2,6000
  175.       Wait 50
  176.       Sam Play 2,2,6000
  177.       Wait 75
  178.       Sam Play 1,4,9000
  179.       Wait 20
  180.       Cls 8,92,150 To 212,159
  181.    Else 
  182.       WRONG
  183.    End If 
  184.    Amal Off 3
  185. End Proc
  186. Procedure WRONG
  187.    WR=WR+1
  188.    Pen 6 : Paper 8 : Locate 11,30 : Print WR
  189.    If G=1 Then LX=75
  190.    If G=2 Then LX=119
  191.    If G=3 Then LX=164
  192.    If G=4 Then LX=209
  193.    Bob 2,LX,174,20
  194.    Amal 2,4
  195.    Amal On 2
  196.    Ink 7
  197.    Sam Play 10,3,6000
  198.    Text 115,158,"It was "+A$(C(TT),G)
  199.    Wait 175
  200.    Cls 8,100,149 To 212,160
  201.    Bob Off 2
  202.    Amal Off 2
  203. End Proc
  204. Procedure SCORE
  205.    Proc WIPE1
  206.    Screen Close 1
  207.    Screen Open 0,640,250,16,Hires : Flash Off : Curs Off 
  208.    Cls 0
  209.    If SC>5 Then C$="Good"
  210.    If SC>7 Then C$="Very Good"
  211.    If SC>8 Then C$="Excellent"
  212.    Pen 5 : Paper 0
  213.    Locate ,1 : Centre "PHONICS"
  214.    Locate ,2 : Centre "~~~~~~~"
  215.    Pen 10
  216.    Locate ,3 : Centre "By ColSoft"
  217.    Pen 4
  218.    Locate ,4 : Centre "Written by Colin Edlin"
  219.    Pen 11
  220.    Locate ,5 : Centre "(c) July 1991 * Version 1.0 *"
  221.    Locate 4,8 : Pen 12
  222.    Print "this programme is released as shareware. You are encouraged to pass this"
  223.    Locate 4,9 : Print "programme on, provided the programme is not modified in any way. If you"
  224.    Locate 4,10 : Print "find this programme useful please send a cheque or money order for $5 to"
  225.    Locate 4,11 : Print "the address below."
  226.    Pen 5
  227.    Locate ,12 : Print 
  228.    Locate 4,13 : Print "Colin Edlin,"
  229.    Locate 4,14 : Print "PO Box 1060,"
  230.    Locate 4,15 : Print "Young,"
  231.    Locate 4,16 : Print "N.S.W."
  232.    Locate 4,17 : Print "2594."
  233.    Centre "---------------------------------THANKYOU---------------------------------"
  234.    Pen 1
  235.    Locate 27,20 : Print C$
  236.    Pen 15
  237.    Locate 27,21 : Print "Your Score was ";SC;" out of 10"
  238.    Locate 27,22 : Input "What is your name ";NA$
  239.    Locate 27,22 : Print "Thank you for playing "+NA$
  240.    Locate 27,23 : Input "Do you want to play again (Y/N) ";B$
  241.    Screen Close 0
  242. End Proc
  243. Procedure WIPE
  244.    Ink 0
  245.    XB=-1
  246.    XC=-2
  247.    For X=1 To 161
  248.       Box 0,0 To XB,270
  249.       Box 320,0 To 320-XC,270
  250.       XB=XB+2
  251.       XC=XC+2
  252.    Next X
  253. End Proc
  254. Procedure WIPE1
  255.    Ink 0
  256.    XB=0
  257.    For X=1 To 161
  258.       Box -20+XB,0+XB To 320-XB,260-XB
  259.       XB=XB+2
  260.    Next X
  261. End Proc
  262. Procedure CHECK_MOVE
  263.    Clear Key 
  264.    TEMP$=Inkey$ : TEMP=Scancode
  265.    UPPER=Key State(76) or Jup(1)
  266.    LOWER=Key State(77) or Jdown(1)
  267.    LEFT=Key State(79) or Jleft(1)
  268.    RIGHT=Key State(78) or Jright(1)
  269.    If RIGHT and FX<35
  270.       RIGHT_MOVE
  271.       Inc FX
  272.    End If 
  273.    If LEFT and FX>30
  274.       LEFT_MOVE
  275.       Dec FX
  276.    End If 
  277.    If Timer mod 250=0 and Timer>100 and ENOUGH_MEM Then Sam Play 2,4,9000
  278. End Proc
  279. Procedure LEFT_MOVE
  280.    Bob 4,X Bob(4)+4,Y Bob(4)+4,5
  281.    Sam Play 12,1,7000
  282.    Amal 4,2
  283.    Amal On 4
  284.    Wait 50
  285.    Bob 4,X Bob(4)-4,Y Bob(4)-4,9
  286. End Proc
  287. Procedure RIGHT_MOVE
  288.    Bob 4,X Bob(4)+4,Y Bob(4)+4,1
  289.    Sam Play 12,1,7000
  290.    Amal 4,1
  291.    Amal On 4
  292.    Wait 50
  293.    Bob 4,X Bob(4)-4,Y Bob(4)-4,9
  294. End Proc