'                                                                       }.
'                                            }.                          |
'                                             |                          ^
'                                             /\                        /  \
'             \\\\\\                         /  \                      / .[ \
'             (-O-O-)                       / -  \                    / .;   \
'              \(-)/                       /      \                  /=----- "\
'*---------00o0--W----0o00-------*        /    ]   \       ^         |   / \  |
'@ project name:10questions game @       / .  |__   \     / \        |   | |  |
'@ programed by : HATEM RAYA     @      /   __   '   \   /   \      _|   | |  |_
'@ DATE         :  1998_10_25    @     /J^..| | 4_|_||\  |=  |    <<==-=-=-=-===>> 
'@ COUNTRY LEBANON               @    /   .     [  ,.  \ |[ ]|      \___ ___  _/       help??
'@ PHONE        : 03884745       @   /::::::::::::::::: \_;__|__     |        |      p
'@ EMAIL: HATEMRAYA@HOTMAIL.COM  @  ({{{{{{{{{{ }}}}}}}}})=-=-=->    |  #  [] |     /|\
'@ VOLTS = 5 DC                  @   |     ]   ^    [    |  .|/      |        |      /\
'@HTTP//:WW.GEOCITIES.COM/STAMPIC@   |        / \   l    |   |       |[*] |   |
'@                               @   |   '   /   \     _ | ; |       |   ;    |
'@                               @   |  ,   /     \  _   |.  |       | __     |
'@                               @   |  __ /       \    _| []|       |    -   |
'@                               @   |   ;(         )    |   |       |     |- |
'@                               @   |00000|~~~~~~~|00000| - |       |     _  |
'@                               @   |  -- |   |   |     |---|;\     |   __   |   
'@                               @   |     |  {|}  |.    | -__   \   |   '    |                        
'@                               @   | .   |   |   |.    | _-_ -- -\ |  __    |                            
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@---|_____|___|___|_____|____--- ___/ ....    \____                             
'------------------------------------------------------------------------------
'last year my sister rayan haded a project for school the project was 
'a wood board with 10 question at a side and 10 ansers at anather side
'and a iron nail for each anser and question if you pic the right anser
'the light will go on i volanterd to make it with bs2 and lcd +light petern
'+sound efect when i started i did not estemait the time neded to finsh
'the project .well it neded 10 hours for pro and 6 for hard wear
'bs2***QUESTION GAIME WITH LCD +LIGHS + SOUND + TWO PUSH BOTONS 
'NOTE THE EEPROM WAS FULL IT CANT HOLD NO MORE 
'DATA  THAT IS WHY I DID NOT MAKE A SPECIAL 
'PATERN SO I USED PATERN3 THAT IS FOR GOOD ANSWER
'THE PRO USED 235 LINE 
ANSER_N   VAR     BYTE   '''   HATEM ABOU RAYA
ANSER     VAR     BYTE   '
anser_1   VAR     BYTE 
QUES_N    VAR     BYTE   ' 
MARKS     VAR     BYTE   ' 
PATT      VAR     BYTE
indx	   var	    byte
note      var	    word
dura	   var	    word
r	   con	    $ff
G2	   con	    391
E3	   con	    658
F3	   con	    694
Ab3	   con	    829
Db4	   con	    1102
Gb4	   con	    1476
G4	   con	    1563
A4	   con	    1754
Bb4	   con	    1856
BE4	   con	    1960
C5	   con	    2084		'oll CON Are notes that i do not claim composing 
Db5	   con	    2204   'as i remember they are for parallax
D5	   con	    2326
G5	   con	    3126
I         con     254
E5	   con	    2632
ClrLCD    con     1       ' SCOT EDWARD LCD APREVATIONS
DispLf    con     $18
DispRt    con     $1C
prn_at    con     207
prn_at1   con     143
prn_at2   con     192
b         con     16780
dirs=%1111111100001111
on:       DIRH=   255
          FOR     PATT = 0 TO 13
          LOOKUP  PATT,[0,255,255,231,255,0,255,0,255,0,255,0,255,0],OUTH
          PAUSE   64
          NEXT
LOOP: 	 ' OUT1=  1
          pause   1000                        '  EXTERNEL MUSIC IC IF AVAILABEL
          serout  1,B,["   RL    LibcL "]
          SEROUT  1,B,[I,prn_at2,"<Menu    Names>"]
          Pause   2000
'         for b1  = 1 to 15	'shift display
'	  serout  1,B,[I,DispRt]
 '         Pause   I        
'	  Next
 '         FOR B4  = 1 TO 27 
 '         serout  1,B,[I,DispLF]
 '         PAUSE   175
 '         NEXT
HOLD1:    IF IN4  = 0 THEN HOLD1      
          serout  1,B,[I,ClrLCD]
	  serout  1,B,["calling  rayyan"]
          SEROUT  1,B,[I,prn_at2,"884745    menu"]
          PAUSE   100
          PAUSE 100
          DTMFOUT 2,100,100,[8,8,4,7,4,5]
          PAUSE  4000 
         ' for b2  = 0 to 5
          serout  1,B,[I,ClrLCD]
          PAUSE   500 
	  serout  1,B,["  LYCE NATIONAL"]
	  PAUSE   1000
          'next
	 ' serout  1,B,[I,ClrLCD]
         ' SEROUT  1,B,[I,prn_at2,"  LYCE NATIONAL"] 'you can omet the (') 
         ' PAUSE   1000                              'the lcd efect will go on this             
         ' FOR B4  = 1 TO 16                         'lcd pro i found in the internet 
         ' serout  1,B,[I,DispLF]                    'and i do not claim it 
         ' PAUSE   175
         ' NEXT     
         ' serout  1,B,[I,ClrLCD]
	 ' serout  1,B,["   IS THE BEST   "]
	 ' pause   2000
START:	  serout  1,B,[I,ClrLCD]
          serout  1,B,["TO PLAY PREES A"]
          INDX    = 0
          MARKS   = 0
          QUES_N  = 0
         'B6      = 0
HOLD:     IF IN4  = 0 THEN HOLD 
                                
          GOSUB   SONG_START    
START1:   ANSER   = 0            
          ANSER_N = 0
          INDX    = 0
         'B6      = 0
QUESTION_N: 
          QUES_N  = QUES_N + 1
          BRANCH  QUES_N,[Q1,Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8,Q9,Q10,DISP_MARKS]
                             'THIS IS THE MAINLOOP
PRES_AB:  serout  1,B,[I,ClrLCD]
          SEROUT  1,B,["  PRESS A OR B "]
          SEROUT  1,B,[I,prn_at2,"   BUTTON   "]
         'PAUSE   2000
WAIIT:    ANSER   = INB      'INB COMBINS IN4+IN5 BOTON A OR  BOTON B. IN6+7 ARE NOT 
                             ' USED BUT MUST BE GROUNDED BY 1K RESISTOR 
          IF ANSER = 0 THEN WAIIT
          IF ANSER <> anser_1  THEN WRONG 
GOOD:     serout  1,B,[I,ClrLCD]
          serout  1,B,["  WRItE ANSWER"]
          MARKS   = MARKS + 1
          GOSUB   SONG_GOOD
          GOSUB   PAT_GOOD
          GOTO    START1 
WRONG:    serout  1,B,[I,ClrLCD]
          serout  1,B,["  WRONG ANSWER"]
          GOSUB   SONG_BAD
          GOSUB   PAT_BAD
          GOTO    START1
DISP_MARKS:serout 1,B,[I,ClrLCD]  
          serout  1,B,["YOUR MARKS="]
          SEROUT  1,B,[I,140,DEC MARKS]
          PAUSE   4000
          IF      MARKS>= 8 THEN DISP_WINER    
          GOTO    START                             'END OF PROGRAM             
DISP_WINER:serout 1,B,[I,ClrLCD]  
          serout  1,B,["YOU ARE A WINER"]
          SEROUT  1,b,[I,PRN_AT2,"GOOD STUDENT"]
          GOSUB   SONG_WINER
          GOSUB   SONG_WINER   
          GOSUB   PAT_GOOD
          GOTO    START
          END                  ' THIS LINE IS JUST TO KNOW THE END OF PRO             
T_F:      SEROUT  1,B,[I,prn_at2,"A=TRUE  B= FALSE"]   
          RETURN   
Q1:       serout  1,B,[I,ClrLCD]
	  serout  1,B,["LIGHT SPEED"]
          SEROUT  1,B,[I,prn_at2,"IN 1 SECOND=?"]
          PAUSE   5000
          serout  1,B,[I,ClrLCD]
          SEROUT  1,B,["A=   200900 K.M"]
          SEROUT  1,b,[I,PRN_AT2,"B=  3000000 K.M"]
          PAUSE   4000
          anser_1 = 2
          goto    PRES_AB 
Q2:       serout  1,B,[I,ClrLCD]
	  serout  1,B,["12+12= 24"]
          GOSUB   T_F   
          PAUSE   5000
          anser_1 = 1
          goto    PRES_AB 
Q3:       serout  1,B,[I,ClrLCD]
          SEROUT  1,B,["EGSS HATCH AT 39C"]
          GOSUB   T_F      
          PAUSE   5000
          anser_1 = 1
          goto    PRES_AB
Q4:       serout  1,B,[I,ClrLCD]
          SEROUT  1,B,["MUSCLS JOINS"]
          SEROUT  1,B,[I,prn_at2,"BONES TOGETHER"]   
          PAUSE   5000
          serout  1,B,[I,ClrLCD]
          GOSUB   T_F   
          PAUSE   2000
          anser_1 = 2
          goto    PRES_AB
Q5:       serout  1,B,[I,ClrLCD]
	  serout  1,B,["10*10= 100"]
          GOSUB   T_F
          PAUSE   5000     
          anser_1 = 1
          goto    PRES_AB 
Q6:       serout  1,B,[I,ClrLCD]
	  serout  1,B,["SUN>THEN MOOON"]
          GOSUB   T_F
          PAUSE   5000   
          anser_1 = 1
          goto    PRES_AB 
Q7:       serout  1,B,[I,ClrLCD]
	  serout  1,B,["O.98789 > 123"]          
          GOSUB   T_F   
          PAUSE   5000
          anser_1 = 2
          goto    PRES_AB 
Q8:       serout  1,B,[I,ClrLCD]
	  serout  1,B,["LEBANON=1O452.KM"]
          GOSUB   T_F
          PAUSE   5000   
          anser_1 = 1
          goto    PRES_AB 
Q9:       serout  1,B,[I,ClrLCD]
	  serout  1,B,["SPIDER GET 4LEGS"]
          GOSUB   T_F   
          PAUSE   5000
          anser_1 = 2
          goto    PRES_AB 
Q10:      serout  1,B,[I,ClrLCD]
          SEROUT  1,B,["WOOD IS GOOD"]
          SEROUT  1,B,[I,prn_at2,"CODUCTV FOR HEAT"]   
          PAUSE   5000 
          anser_1 = 2
          serout  1,B,[I,ClrLCD]
          GOSUB   T_F   
          goto    PRES_AB
TON_OUT :
          freqout 2,dura,note
          RETURN
SONG_START: for   indx = 0 TO 16
	  lookup  indx,[ G4, D5, C5,BE4, A4, G5, D5, C5,BE4, A4, G5, D5, C5,BE4, C5, A4,0],note
	  lookup  indx,[800,800,150,150,150,800,800,150,150,150,800,800,150,150,150,800],dura
          GOSUB   TON_OUT
          NEXT
          RETURN
SONG_GOOD:FOR     indx = 0 TO 8
	  lookup  indx,[Db4,Gb4,Bb4,Db5,R,Bb4,Db5,0],note
	  lookup  indx,[150,150,150,300,9,200,600,200],dura
	  GOSUB   TON_OUT
    	  NEXT
          RETURN    
SONG_BAD: FOR     indx = 0 TO 20
	  lookup  indx,[ F3,R, F3,R, F3,R, F3,R,Ab3,R, G2,R, G2,R, F3,R, F3,R, E3,R, F3,0],note
	  lookup  indx,[400,3,300,3,100,1,300,9,300,1,100,5,300,1,120,5,300,9,200,9,400],dura
	  GOSUB   TON_OUT
          NEXT
          RETURN                
song_winer:' B6 = 1 
          FOR     indx = 0 TO 20   
          lookup  indx,[ C5, R, C5, R, C5, R, C5,BE4, A4,BE4, C5, D5,R, C5, E5, R, E5, R, E5,0],note
	  lookup  indx,[450,50,400,50,750,90,200,300,200,300,200,300,5,200,450,30,450,50,800],dura
          GOSUB   TON_OUT
          NEXT
          RETURN                   
PATSTART: DIRH    =255
          FOR PATT = 0 TO 13
          LOOKUP  PATT,[0,129,195,231,255,0,255,0,255,0,255,0,255,0],OUTH
          PAUSE   250
          NEXT
          RETURN 
PAT_GOOD: DIRH    =255
          FOR     PATT = 0 TO 26
          LOOKUP  PATT,[0,1,2,4,8,16,32,64,128,128,64,32,16,8,4,2,1,15,240,15,240,15,0,255,0,255,0],OUTH
          PAUSE   90
          NEXT
          'IF B6  = 1 THEN START 
          RETURN 
PAT_BAD:  DIRH    =255
          FOR     PATT = 0 TO 8
          LOOKUP  PATT,[255,126,60,24,0,24,0,24,0],OUTH
          PAUSE   500
          NEXT
          RETURN   
'                                      LED 
'OUTH * 8 -------------/\/\/\/\--------|>------GND                      
'                     1K                     
'
'STAMP PIN 2--------/\/\/\//\-------------2222TRANSISOR BAISE
'                                       ''2222 COLECTER TO SPEAKER
'                                         2222 EMITER TO GND
'
'
'STAMP PIN1 ---------------LCD
'                                    _ PUSH BUTON A
'                                   _|_
'PIN4-------------------------------T T-------------+5VOLTS 
'                  >
'                  <1K
'                  > 
'                  <
'                  | GND
'                                    _ PUSH BUTON B
'                                   _|_
'PIN5-------------------------------T T-------------+5VOLTS 
'                  >
'                  <1K
'                  > 
'                  <
'                  | GND
'
'
'
'