; Tarjetas Magicas
; By AsCrNet 2013.

;INCLUDE "H:RUNTIME.ACT"
;MODULE

BYTE Rtclok=$14
CARD Consol=$D01F,Sdslst=$230,CH
     
BYTE Count,Joy,Num,Tot
BYTE ARRAY Tabla  = [0 0 0 0 0 0]
BYTE ARRAY TITULO = [$F4$E1$F2$EA$E5$F4$E1$F3 
                     $00$ED$88$E7$E9$E3$E1$F3]

PROC DLI()
[$48$8A$48$A2$00$BD$17$06$8D$0A$D4$8D$19$D0$E8$E0
$0F$D0$F2$68$AA$68$40$15$17$17$19$19$1B$1B$1D$1F
$1F$1F$1D$1B$19$17$15]

PROC CHRS()
[	0 0 0 0 0 0 0 0
	56 120 184 56 56 56 254 254
	124 238 206 28 48 238 222 254
	124 238 14 28 14 14 238 124
	12 28 60 108 204 254 254 12
	254 192 252 14 14 206 254 124
	124 238 224 252 238 238 238 124
	170 170 170 170 170 170 170 170
	4 120 254 238 238 254 238 238
	192 48 48 48 48 48 192 0
	0 204 204 48 204 204 0 0
	0 48 48 252 48 48 0 0
	0 0 0 0 0 48 48 192
	0 192 240 252 252 240 192 0
	0 0 0 0 0 48 48 0
	12 12 48 48 48 192 192 0
	184 238 204 238 204 238 184 34
	184 242 184 50 184 50 252 34
	184 238 140 50 184 226 252 34
	184 238 140 50 140 238 184 34
	200 226 204 238 252 46 140 34
	252 226 200 242 140 46 248 34
	184 238 200 242 204 238 184 34
	252 46 140 46 184 50 184 34
	184 238 204 50 204 238 184 34
	184 238 204 62 140 238 184 34
	0 0 48 0 48 0 0 0
	0 0 48 0 48 48 192 0
	12 48 48 192 48 48 12 0
	0 0 252 0 252 0 0 0
	192 48 48 12 48 48 192 0
	0 60 102 12 24 0 24 0
	136 34 136 34 136 34 136 34
	124 254 238 238 254 254 238 238
	252 254 238 252 254 238 254 252
	124 254 238 224 224 238 254 124
	252 254 238 238 238 238 254 252
	254 254 224 252 252 224 254 254
	254 254 224 252 252 224 224 224
	126 254 224 238 238 230 254 126
	238 238 238 254 254 238 238 238
	254 254 56 56 56 56 254 254
	254 254 14 14 238 238 254 124
	238 238 252 248 248 252 238 238
	224 224 224 224 226 230 254 254
	238 238 254 254 214 238 238 238
	238 238 246 254 254 222 238 238
	124 254 238 238 238 238 254 124
	252 254 238 238 254 252 224 224
	124 254 238 238 238 238 252 118
	252 254 238 238 252 254 238 238
	126 254 224 252 126 14 254 252
	254 254 56 56 56 56 56 56
	238 238 238 238 238 238 254 124
	238 238 238 238 238 254 124 56
	238 238 238 238 214 254 254 238
	238 238 238 124 254 254 238 238
	238 238 238 254 124 56 56 56
	254 254 14 126 252 224 254 254
	252 192 192 240 12 12 240 0
	48 204 204 204 204 204 48 0
	48 240 48 48 48 48 252 0
	0 8 28 54 99 0 0 0
	0 0 0 0 0 0 255 0
	3 13 53 213 213 213 213 214
	255 85 85 85 85 85 85 170
	192 112 92 86 86 86 86 150
	215 213 213 213 213 37 9 2
	255 85 85 85 85 85 85 170
	214 86 86 86 86 88 96 128
	214 214 214 214 214 214 214 214
	170 170 170 170 170 170 170 170
	255 255 255 255 255 255 255 255
	85 85 85 85 85 85 85 85
	136 34 136 37 149 21 148 20
	136 34 136 34 85 85 0 0
	136 34 136 82 84 86 20 22
	148 20 148 20 148 20 148 20
	148 20 149 21 133 34 136 34
	20 22 84 86 88 34 136 34
	20 22 20 22 20 22 20 22
	0 0 85 85 136 34 136 34
	0 0 0 255 255 0 0 0
	24 24 24 255 255 24 24 24
	0 0 60 126 126 126 60 0
	0 0 0 0 255 255 255 255
	192 192 192 192 192 192 192 192
	0 0 0 255 255 24 24 24
	24 24 24 255 255 0 0 0
	240 240 240 240 240 240 240 240
	24 24 24 31 31 0 0 0
	120 96 120 96 126 24 30 0
	0 24 60 126 24 24 24 0
	0 24 24 24 126 60 24 0
	0 24 48 126 48 24 0 0
	0 24 12 126 12 24 0 0
	0 24 60 126 126 60 24 0
	60 204 204 252 204 204 204 0
	240 204 204 240 204 204 240 0
	48 204 192 192 192 204 48 0
	240 204 204 204 204 204 240 0
	252 192 192 240 192 192 252 0
	252 192 192 240 192 192 192 0
	60 192 192 252 204 204 48 0
	204 204 204 252 204 204 204 0
	252 48 48 48 48 48 252 0
	12 12 12 12 204 204 48 0
	204 204 204 240 204 204 204 0
	192 192 192 192 192 192 252 0
	204 252 252 204 204 204 204 0
	204 204 252 252 252 204 204 0
	48 204 204 204 204 204 48 0
	240 204 204 240 192 192 192 0
	48 204 204 204 252 204 51 0
	240 204 204 240 204 204 204 0
	60 192 192 48 12 12 240 0
	252 48 48 48 48 48 48 0
	204 204 204 204 204 204 48 0
	204 204 204 204 48 48 48 0
	204 204 204 204 252 252 204 0
	204 204 204 48 204 204 204 0
	204 204 204 48 48 48 48 0
	252 12 12 48 192 192 252 0
	0 24 60 126 126 24 60 0
	24 24 24 24 24 24 24 24
	0 126 120 124 110 102 6 0
	8 24 56 120 56 24 8 0
	16 24 28 30 28 24 16 0
]

PROC PAUSA(BYTE w)
 BYTE w1
 w1=Rtclok
 DO until Rtclok=W1+w OD
RETURN

PROC SONIDO(BYTE Fx)
 Sound(0,Fx,10,10)
 PAUSA(2)
 Sound(0,0,0,0)
RETURN

PROC ATARI()
 BYTE L,Z
 For l=0 to 30 DO
     z=Rand(75)
     Sound (0,z,10,8)
     PAUSA(2)
 OD
 Sound(0,0,0,0)
RETURN
     
PROC T1()
 Num=1
 Position(13,8) PutD(6,33)
 Position(8,11) PrintD(6,"@@@@1@@3@@5@@7@@9@11@13@15")
 Position(8,13) PrintD(6,"@@@17@19@21@23@25@27@29@31")
 Position(8,15) PrintD(6,"33@35@37@39@41@43@45@47@49")
RETURN

PROC T2()
 Num=2
 Position(13,8) PutD(6,34)
 Position(8,11) PrintD(6,"@@@@2@@3@@6@@7@10@11@14@15")
 Position(8,13) PrintD(6,"@@@18@19@22@23@26@27@30@31")
 Position(8,15) PrintD(6,"34@35@38@39@42@43@46@47@50")
RETURN

PROC T3()
 Num=4
 Position(13,8) PutD(6,35)
 Position(8,11) PrintD(6,"@@@@4@@5@@6@@7@12@13@14@15")
 Position(8,13) PrintD(6,"@@@20@21@22@23@28@29@30@31")
 Position(8,15) PrintD(6,"@@@36@37@38@39@44@45@46@47")
RETURN

PROC T4()
 Num=8
 Position(13,8) PutD(6,36)
 Position(8,11) PrintD(6,"@@@@8@@9@10@11@12@13@14@15")
 Position(8,13) PrintD(6,"@@@24@25@26@27@28@29@30@31")
 Position(8,15) PrintD(6,"@@@40@41@42@43@44@45@46@47")
RETURN

PROC T5()
 Num=16
 Position(13,8) PutD(6,37)
 Position(8,11) PrintD(6,"@@@16@17@18@19@20@21@22@23")
 Position(8,13) PrintD(6,"@@@24@25@26@27@28@29@30@31")
 Position(8,15) PrintD(6,"@@@48@49@50@@@@@@@@@@@@@@@")
RETURN

PROC T6()
 Num=32
 Position(13,8) PutD(6,38)
 Position(8,11) PrintD(6,"@@@32@33@34@35@36@37@38@39")
 Position(8,13) PrintD(6,"@@@40@41@42@43@44@45@46@47")
 Position(8,15) PrintD(6,"@@@48@49@50@@@@@@@@@@@@@@@")
RETURN

PROC PRESENTA()
 CARD Color1=$2C5
 BYTE i
 Poke(756,204)
 Position(10,7) Print("* Tarjetas M") Put(0)
 Print("gicas *")
 SONIDO(200)
 PAUSA(20)
 Position(12,9) Print("by AsCrNet, 2013")
 SONIDO(200)
 PAUSA(20)
 Position(9,11) Print("Desarrollado en ACTION!")
 SONIDO(200)
 PAUSA(20)
 Position(12,13) Print("WWW.ATARIWARE.CL")
 SONIDO(200)
 PAUSA(50)
 FOR I=0 TO 15 DO 
     COLOR1=15-I
     PAUSA(8)
 OD
RETURN

PROC INSTRUC()
BYTE J
PutD(6,125)
Position(2,0) 
FOR j=0 TO 15 DO
   PutD(6,TITULO(j))
OD
Position(0,1) PrintD(6,"instrucciones:")
Position(0,3) PrintD(6,"- piensa un numero entre ] y [\")
Position(0,4) PrintD(6,"- selecciona las tarjetas donde aparece")
Position(0,5) PrintD(6,"  dicho numero.")
Position(0,6) PrintD(6,"- pulsa START para adivinar el numero.")
Position(5,8) PrintD(6,"tarjeta !")
Position(5,20) PrintD(6,"use JOYSTICK para seleccionar")
                           
RETURN

PROC CAJA()
BYTE J
Position(3, 9) PutD(6,0)
FOR j=0 TO 31 DO
   PutD(6,1)
OD
PutD(6,2)
Position(3,10) PutD(6,6) PrintD(6,"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@") PutD(6,6)
Position(3,11) PutD(6,6) PrintD(6,"@")
Position(5,11) PutD(6,10) PutD(6,11) PutD(6,12) PrintD(6,"@@@@@@@@@@@@@@@@@@@@@@@@@@@@") PutD(6,6)
Position(3,12) PutD(6,6) PrintD(6,"@")
Position(5,12) PutD(6,13) PutD(6,32) PutD(6,16) PrintD(6,"@@@@@@@@@@@@@@@@@@@@@@@@@@@@") PutD(6,6)
Position(3,13) PutD(6,6) PrintD(6,"@")
Position(5,13) PutD(6,14) PutD(6,17) PutD(6,15) PrintD(6,"@@@@@@@@@@@@@@@@@@@@@@@@@@@@") PutD(6,6)
Position(3,14) PutD(6,6) PrintD(6,"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@") PutD(6,6)
Position(3,15) PutD(6,6) PrintD(6,"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@") PutD(6,6)
Position(3,16) PutD(6,6) PrintD(6,"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@") PutD(6,6)
Position(3,17) PutD(6,3)
FOR j=0 TO 31 DO
   PutD(6,4)
OD
PutD(6,5)

RETURN

PROC ADIVINA()
 Position(4,11) PrintD(6,"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@")
 Position(4,12) PrintD(6,"@@@ has pensado el siguiente @@@")
 Position(4,13) PrintD(6,"@@@          numero          @@@")
 Position(4,14) PrintD(6,"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@")
 Position(4,15) PrintD(6,"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@")
 Tot=0
 FOR Num=0 TO 5 DO
    Tot==+Tabla(Num)
 OD
 ATARI()
 Position(19,15) PrintBD(6,Tot)
 Position(3,20) PrintD(6,"pulse BOTON para adivinar otra vez")
 DO UNTIL STRIG(0)<>1 OD
RETURN

PROC ITEM()
 IF TABLA(Count)=0 THEN
    Position(6,12) PutD(6,32)
 ELSEIF TABLA(Count)#0 THEN
    Position(6,12) PutD(6,8)
  FI
RETURN

PROC PANTALLA()
 CH=(Peek(106)-32)*256
 MoveBlock(CH,CHRS,1024)
 Graphics(28)
 Poke(756,CH/256) Poke(Sdslst+2,240) 
 Poke(Sdslst+3,71) Poke(Sdslst+6,6) 
 Poke(Sdslst+14,6) Poke(Sdslst+15,6) 
 MoveBlock(1536,DLI,39)
 PokeC(512,1536) Poke(54286,192) 
 Poke(708,104) Poke(709,98) 
 Poke(710,110) 
RETURN

PROC LIMPIAR()
  Count=0
  FOR Num=0 TO 5 DO
    Tabla(Num) = 0
 OD
 Num=1
RETURN

PROC MAIN()
 Graphics(0)
 Poke(709,15)
 Poke(710,0)
 Poke(752,1)
 PRESENTA()
 PANTALLA()
 
 DO
   Poke(559,0)
   INSTRUC()
   CAJA()
   T1()
   LIMPIAR()
   Poke(559,62)
   DO
     Joy=Stick(0)
     IF Joy=7 THEN 
        Count==+1
        IF Count>5 THEN Count=5 FI
     ELSEIF Joy=11 THEN 
        Count==-1
        IF Count<0 OR Count=255 THEN Count=0 FI
     FI
     IF Joy=11 OR Joy=7 THEN 
        SONIDO(155)
        IF Count=0 THEN
           T1()
           ITEM()
        ELSEIF Count=1 THEN
           T2()
           ITEM()
        ELSEIF Count=2 THEN
           T3()
           ITEM()
        ELSEIF Count=3 THEN
           T4()
           ITEM()
        ELSEIF Count=4 THEN
           T5()
           ITEM()
        ELSEIF Count=5 THEN
           T6()
           ITEM()
        FI
     FI
     IF Strig(0)=0 THEN
        SONIDO(55)
        IF TABLA(Count)=0 THEN
           Position(6,12) PutD(6,8)
           TABLA(Count)=Num
        ELSEIF TABLA(Count)#0 THEN
           Position(6,12) PutD(6,32)
           TABLA(Count)=0
        FI
     FI
     PAUSA(6)
  
   UNTIL Consol=6 OD
   ADIVINA()
 OD
RETURN
