Subject: Calimari Carl demo

From: Owen Brand <[email-masked]>
Date: Wed, 8 Sep 2010 12:39:45 -0400

Here's a little demo of my new game, Calimari Carl.  Karsten did my  
title screen, and I must say--- it looks amazing!!!  Thing is, this is  
still just in development phase.  Each level will require the player  
to collect treasure chests and avoid the octopii and sharks and  
whatnot.  Anyway, here's the rough unfinished demo.  This game will be  
converted to an 8k cart when the XB version is complete.

100 CALL CLEAR :: CALL SCREEN(6) :: CALL COLOR(2,16,1,3,16,1,4,2,1)
110 CALL CHAR(33,"6090906")
120 CALL CHAR 
(40,"00071F3F3F7F7F7E00FFFFFFFFFFFF0000FEFEFEFEFEFE00007E7E7E7E7E7E7E")
130 CALL CHAR 
(44,"007E7E7E7E7E7E007E7E7E7E7E7E7E7E007F7F7F7F7F7F0000E0F8FCFCFEFE7E")
140 CALL CHAR 
(48,"007F7F7F7F7F7F7E00FFFFFFFFFFFF7E7EFEFEFEFEFEFE7E7E7F7F3F3F1F07")
150 CALL CHAR(52,"7E7F7F7F7F7F7F007EFEFEFEFEFEFE007E7E7E7E7E7E7E")
160 CALL CHAR(56,"0080C0C0C0C0C0C0FFFFC0C0C0C0C0C0FFFF000000000000C0C")
170 CALL CHAR(60,"7F3F000000000000C0C0C0C0C0C0C0C00301")
180 DISPLAY AT(4,3):"()*8 +,8  	,8()*8   +8"
190 DISPLAY AT(5,3):"-9:; -9;  	<;-9:;   -="
200 DISPLAY AT(6,3):"-= ./-+01/./(*+8-= ./(*-="
210 DISPLAY AT(7,3):"-= 02-----02-9-=-= 02-9-="
220 DISPLAY AT(8,3):"3)*4566666456=6=3)*456=6="
230 DISPLAY AT(9,3):">::::::::::::;<;>:::::;<;"
240 CALL CHAR 
(88,"00000101030707077FFFFFFFFFFFFFFF80C0E0F0F8F8FEFF0707070707030F11")
250 CALL CHAR 
(92,"FFFFFFFFFFFFFFFFFFFFFFFFFFFEFCF060F87C7F3F3F0F0000000001FFFFFF1F")
260 CALL CHAR 
(96,"111F0FFFFFFFFFFFFFFFFFFCFCFFFFFFE0E0D8641800F8FEFF7F7F7F7FFFFFFF")
270 CALL CHAR 
(100,"FFFFFEFCF8F0E0E0FF87000000000000FFFFFF1E00000000FFFFFFFFFFFFFFFE")
280 CALL CHAR 
(104,"C0C0C080000000000000000000000101011F7F7FFFFFFFFEFEFEFEFEFE7E7EFE")
290 CALL CHAR 
(108,"030307070F0F1F1FFEFCF8F0F1F1F1F1FEFEFFFFFFFFFFFF3F3F3F3F3F3F3F1F")
300 CALL CHAR(112,"F1E1E1E1E1E1C0C0FFFFFFFFFFFFFEFC")
310 DISPLAY AT(13,14):"XYZ" :: DISPLAY AT(14,14):"[\]"
320 DISPLAY AT(15,12):"^_`ab" :: DISPLAY AT(16,14):"cdef"
330 DISPLAY AT(17,14):"gh" :: DISPLAY AT(18,12):"ijk"
340 DISPLAY AT(19,12):"lmn" :: DISPLAY AT(20,12):"opq"
350 DISPLAY AT(19,12):"lmn" :: DISPLAY AT(20,12):"opq"
360 W=RND*20+15 :: A=A+1 :: IF A>6 THEN A=1
370 CALL SPRITE(#A,33,16,98,142,-4,SGN(RND-.5))
380 CALL KEY(0,K,S) :: IF S<>0 THEN 400
390 W=W-1 :: IF W<0 THEN 360 ELSE 380
400 CALL CLEAR :: CALL DELSPRITE(ALL) :: CALL CHARSET
410 CALL CLEAR :: CALL SCREEN(8) :: CALL MAGNIFY(3) :: CALL CHAR 
(128,"0000010303071FFF") :: CALL CHAR(129,"00408080C0E0FCFF")
420 CALL CHAR(112,"FFFFFFFFFFFFFFFF") :: CALL COLOR(11,8,1,13,8,1) ::
430 CALL CHAR 
(96,"00010305071F3763CD09091B121200000080C0A0E0F8ECC6B39090D848480000")
440 CALL CHAR 
(100, 
"00042011084003131303400811200400002004881002C0C8C8C0021088042000") ::  
CALL CHAR(88,"18245ABDBD5A2418")
450 CALL CHAR 
(108,"0000006031190F1F704000000000000000000000E0EEFFEEA050280000000000")
460 CALL CHAR 
(116,"0000000031111F7F400000000000000000000000E0EEFFEEA050280000000000")
470 FOR LW=1 TO 31 STEP 2 :: CALL HCHAR(1,LW,128) :: NEXT LW :: FOR  
RW=2 TO 32 STEP 2 :: CALL HCHAR(1,RW,129) :: NEXT RW
480 REM	**INIT VARIABLES**
490 PY=160 :: PX=16 :: L=3 :: OX=20 :: POI=0
495 CALL SPRITE(#1,108,2,PY,PX):: CALL SPRITE 
(#2,96,5,32,200,0,18,#3,96,5,64,180,0,16,#4,96,5,96,86,0,20)
500 TY=INT(RND*22)+2 :: TX=INT(RND*30)+2 :: C=0
510 IF TY>20 THEN TY=20 :: IF TY<4 THEN TY=4 :: IF TX<2 THEN TX=2 ::  
IF TX>30 THEN TX=20
520 DISPLAY AT(TY,TX):CHR$(88);
530 DISPLAY AT(24,2):"BREATH "&STR$(OX); :: DISPLAY AT(24,13):"POINTS  
"&STR$(POI); :: DISPLAY AT(23,2):"LIVES "&STR$(L);
540 DISPLAY AT(24,8):CHR$(112); :: DISPLAY AT(24,19):CHR$(112); ::  
DISPLAY AT(23,7):CHR$(112);
560 CALL COLOR(13,8,2,11,8,1,8,16,1,2,2,8,3,2,8,5,2,8,6,2,8,7,2,8,4,2,8)
570 CALL COINC(ALL,M) :: IF M<>0 THEN GOTO 670
580 CALL JOYST(1,X,Y)
590 CALL MOTION(#1,(-Y*2),(X*2))
600 CALL COINC(ALL,C) :: IF C<>0 THEN GOTO 670
610 CALL COINC(#1,TY*8,TX*8,12,K) :: IF K<>0 THEN GOTO 710
620 CO=CO+1 :: IF CO=2 THEN OX=OX-1 :: IF CO=2 THEN CO=0
630 IF OX<10 THEN DISPLAY AT(24,8):CHR$(112)&CHR$(112)&STR$(OX);
640 IF OX>=10 THEN DISPLAY AT(24,8):CHR$(112)&STR$(OX);
650 IF OX=0 THEN GOTO 670
660 GOTO 570
670 CALL DELSPRITE(ALL) :: DISPLAY AT(10,10):"OCTOPUS FOOD"; :: FOR  
DL=1 TO 300 :: NEXT DL :: DISPLAY AT(10,10):"WHAT A SHAME";
680 FOR DL=1 TO 300 :: NEXT DL :: DISPLAY AT(10,10):"          	"; ::  
DISPLAY AT(TY,TX):" ";
690 L=L-1 :: IF L<0 THEN GOTO 720
700 OX=20 :: GOTO 495
710 CALL SOUND(100,220,1,440,1,659,1) :: POI=POI+100 :: OX=OX+10 ::  
DISPLAY AT(TY,TX):CHR$(112); :: GOTO 500
720 CALL CLEAR :: CALL SCREEN(9) :: FOR X=1 TO 12 :: CALL COLOR(X, 
2,1) :: NEXT X :: DISPLAY AT(10,8):"YOU LOSE, YA WANK!";
730 GOTO 730

Owen Brand

        **webmaster**
http://www.Opry99er.com

---

From: Owen Brand <[email-masked]>
Date: Wed, 8 Sep 2010 12:59:15 -0400

Okay--- if Yahoo cut that code up, I apologize... I wish i could use  
[code] tags here.  If you couldn't copy and paste it, I'll email it to  
you directly.  Thanks.  :)

On Sep 8, 2010, at 12:39 PM, Owen Brand <[email-masked]> wrote:
> (40, 
> "00071F3F3F7F7F7E00FFFFFFFFFFFF0000FEFEFEFEFEFE00007E7E7E7E7E7E7E")
> 130 CALL CHAR 
> (44, 
> "007E7E7E7E7E7E007E7E7E7E7E7E7E7E007F7F7F7F7F7F0000E0F8FCFCFEFE7E")
> 140 CALL CHAR 
> 160 CALL CHAR 
> (56,"0080C0C0C0C0C0C0FFFFC0C0C0C0C0C0FFFF000000000000C0C")
> .
.
.
.
.

---

From: Owen Brand <[email-masked]>
Date: Wed, 8 Sep 2010 14:08:12 -0400

I just wanted to clarify something that I have answered a couple times  
now from friends who were lookin out for me.  :) I realize that the  
correct spelling is "calAmari".  When I first started work on the  
game, I mistakenly typed in "calimari" and my editor corrected me by  
putting a red line under the word.  I left it for a few days and then  
it grew on me, so I kept it for "quirkiness".  :) But, until I started  
working on this game, I didn't know the correct spelling of calamari.   
See--- programming teaches you English too!

Owen Brand

        **webmaster**
http://www.Opry99er.com

On Sep 8, 2010, at 12:59 PM, Owen Brand <[email-masked]> wrote:

> [code] tags here.  If you couldn't copy and paste it, I'll email it  
> to you directly.  Thanks.  :)
>

---

From: "Beery" <[email-masked]>
Date: Wed, 08 Sep 2010 19:21:01 -0000

Can you post the file as a DSK image somewhere for us MESS only users?
If you can, thanks.  If you can't, I will just have to wait till later.

Beery

---

From: Owen Brand <[email-masked]>
Date: Wed, 8 Sep 2010 15:35:22 -0400

When I get home, I'll make up a DSK for you.  Unless someone beats me  
to it.  Anyone who wants to make up a DSK of this demo-- feel free.   
It's not complete, but if you want to test it out, that's cool!  :)

I'd do it now and send it to you, but I'm not not near my computer.   
I'm on my cellphone.  :)

Thanks for the interest.

Owen Brand

        **webmaster**
http://www.Opry99er.com

On Sep 8, 2010, at 3:21 PM, "Beery" <[email-masked]> wrote:

> (88, 
> "00000101030707077FFFFFFFFFFFFFFF80C0E0F0F8F8FEFF0707070707030F11")
> > 250 CALL CHAR
> >  
> (92, 
> "FFFFFFFFFFFFFFFFFFFFFFFFFFFEFCF060F87C7F3F3F0F0000000001FFFFFF1F")
> > 260 CALL CHAR
> >  
> (96, 
> "111F0FFFFFFFFFFFFFFFFFFCFCFFFFFFE0E0D8641800F8FEFF7F7F7F7FFFFFFF")
> > 270 CALL CHAR
> >  
> (100, 
> "FFFFFEFCF8F0E0E0FF87000000000000FFFFFF1E00000000FFFFFFFFFFFFFFFE")
> > 280 CALL CHAR
> >  
> (104, 
> "C0C0C080000000000000000000000101011F7F7FFFFFFFFEFEFEFEFEFE7E7EFE")
> > 290 CALL CHAR
> >  
> (108, 
> "030307070F0F1F1FFEFCF8F0F1F1F1F1FEFEFFFFFFFFFFFF3F3F3F3F3F3F3F1F")
> (96, 
> "00010305071F3763CD09091B121200000080C0A0E0F8ECC6B39090D848480000")
> > 440 CALL CHAR
> > (100,
> >  
> (108, 
> "0000006031190F1F704000000000000000000000E0EEFFEEA050280000000000")
> > 460 CALL CHAR
> >  
> (116, 
> "0000000031111F7F400000000000000000000000E0EEFFEEA050280000000000")
> > 560 CALL COLOR 
> (13,8,2,11,8,1,8,16,1,2,2,8,3,2,8,5,2,8,6,2,8,7,2,8,4,2,8)

---

From: "opry99er" <[email-masked]>
Date: Thu, 09 Sep 2010 01:37:52 -0000

Click the following link to DL the game directly.  It is a zipped folder containing one DSK image.  Included is one XB program entitled "CALIMARI".  It does not autoload.  =)  Hope this helps some of you who don't use Classic99.  

http://www.opry99er.com/resources/CARL.zip

I'm looking forward to hearing some feedback for ideas, as the game is incomplete.  The next steps are:

-implement the treasure chests and level requirements
-implement a "left-facing" Carl PC graphic
-Design and implement Sharks and Sting Ray graphics
-Limit number of available tanks per level

***Love to hear some ideas.  This will be my first assembly conversion, and it'll be AORG >6000.  Might have to buy some 8k boards if there are any left.  If not, then I think Matthew has purchased another hundred from the board company and is selling them on his new website www.codehackcreate.com, I believe it is.  Anyway, I'm having some fun. =) That's what its all about, isn't it?

--- In [email-masked], "Beery" <bmiller@...> wrote:
> --- In [email-masked], Owen Brand <owenbrand@> wrote:
> >

---

From: Owen Brand <[email-masked]>
Date: Thu, 9 Sep 2010 18:32:10 -0400

I have begun cutting this code up into very small sections in  
preparation for the assembly "translation/converion." Below is the  
code I have broken down---  it is about as "disassembled" as I can  
make it. :). From here, I just need to finish the game in XB and then  
begin the conversion.  Any platitudinal advice or thoughts on doing an  
XB-->assembly conversion would be greatly appreciated.  I intend on  
keeping all these BASIC statements in the comments of source code,  
similarly to how Tursi did ZomBXB/TI Farmer.  Thanks or taking a look!!

REM "CALIMARI CARL" AN OPRY99ER GAME (2010)
REM GRAPHICAL CONTRIBUTIONS BY SOMETIMES99ER
REM CODE HAS BEEN CUT INTO MOSTLY SINGLE LINE STATEMENTS FOR ASSEMBLY  
CONVERSION[/b]

[b]
REM TITLE SCREEN

REM SET UP SCREEN AND COLORS FOR TITLE SCREEN

100 CALL CLEAR
101 CALL SCREEN(6)
102  CALL COLOR(2,16,1,3,16,1,4,2,1)

REM CHARACTER DEFINITIONS FOR TITLE

REM DISPLAY "CALIMARI CARL" **DESIGNED BY SOMETIMES99ER

REM CHARACTER DEFINITIONS FOR DIVER

240 CALL CHAR 

REM DISPLAY DIVER

310 DISPLAY AT(13,14):"XYZ"
311 DISPLAY AT(14,14):"[\]"
320 DISPLAY AT(15,12):"^_`ab"
321 DISPLAY AT(16,14):"cdef"
330 DISPLAY AT(17,14):"gh"
331 DISPLAY AT(18,12):"ijk"
340 DISPLAY AT(19,12):"lmn"
341DISPLAY AT(20,12):"opq"
350 DISPLAY AT(19,12):"lmn"
351 DISPLAY AT(20,12):"opq"

REM BUBBLE ANIMATION AND KSCAN FOR MOVING INTO MAIN GAME

360 W=RND*20+15
361 A=A+1
362 IF A>6 THEN A=1
370 CALL SPRITE(#A,33,16,98,142,-4,SGN(RND-.5))
380 CALL KEY(0,K,S)
381 IF S<>0 THEN 400
390 W=W-1
391 IF W<0 THEN 360 ELSE 380

REM PREPARE SCREEN AND CHARSETS FOR GAME

400 CALL CLEAR
410 CALL DELSPRITE(ALL)
420 CALL CHARSET
430 CALL CLEAR
440 CALL SCREEN(8)
450 CALL MAGNIFY(3)

REM CHARACTER DEFS AND COLORS

460 CALL CHAR(128,"0000010303071FFF")
470 CALL CHAR(129,"00408080C0E0FCFF")
480 CALL CHAR(112,"FFFFFFFFFFFFFFFF")
490 CALL COLOR(11,8,1,13,8,1)
500 CALL CHAR 
(96,"00010305071F3763CD09091B121200000080C0A0E0F8ECC6B39090D848480000")
510 CALL CHAR 
(100, 
"00042011084003131303400811200400002004881002C0C8C8C0021088042000") ::  
CALL CHAR(88,"18245ABDBD5A2418")
520 CALL CHAR 
(108,"0000006031190F1F704000000000000000000000E0EEFFEEA050280000000000")
530 CALL CHAR 
(116,"0000000031111F7F400000000000000000000000E0EEFFEEA050280000000000")

REM DRAW WAVES AT TOP OF SCREEN

540 FOR LW=1 TO 31 STEP 2
550 CALL HCHAR(1,LW,128)
560 NEXT LW
570 FOR RW=2 TO 32 STEP 2
580 CALL HCHAR(1,RW,129)
590 NEXT RW

600 REM 	**INIT VARIABLES**

REM PLAYER'S LOCATION

610 PY=160
620 PX=16

REM LIVES

630 L=3

REM OXYGEN

640 OX=20

REM POINTS

650 POI=0

REM SET SPRITES AND PUT THE ENEMIES IN MOTION

660 CALL SPRITE(#1,108,2,PY,PX)
670 CALL SPRITE 
(#2,96,5,32,200,0,18,#3,96,5,64,180,0,16,#4,96,5,96,86,0,20)

REM SET UP THE OXYGEN TANK AND CHECK FOR "IN BOUNDS"

680 TY=INT(RND*22)+2
690 TX=INT(RND*30)+2
700 IF TY>20 THEN TY=20
710 IF TY<4 THEN TY=4
720 IF TX<2 THEN TX=2
730 IF TX>30 THEN TX=20
740 DISPLAY AT(TY,TX):CHR$(88);

REM PLACE IMPORTANT VALUES ON SCREEN

750 DISPLAY AT(24,2):"BREATH "&STR$(OX);
760 DISPLAY AT(24,13):"POINTS "&STR$(POI);
770 DISPLAY AT(23,2):"LIVES "&STR$(L);
780 DISPLAY AT(24,8):CHR$(112);
790 DISPLAY AT(24,19):CHR$(112);
800 DISPLAY AT(23,7):CHR$(112);

REM CALL REST OF COLORS FOR GAME

810 CALL COLOR(13,8,2,11,8,1,8,16,1,2,2,8,3,2,8,5,2,8,6,2,8,7,2,8,4,2,8)

REM GAME LOOP START

REM CHECK FOR SPRITE COINC

820 CALL COINC(ALL,M)
830 IF M<>0 THEN GOTO 970

REM KSCAN FOR JOYSTICK

840 CALL JOYST(1,X,Y)

REM SET AUTO MOTION FOR PC SPRITE

850 CALL MOTION(#1,(-Y*2),(X*2))

REM SECOND CHECK FOR SPRITE COINC

860 CALL COINC(ALL,C)
870 IF C<>0 THEN GOTO 970

REM CHECK FOR TANK COLLISION

880 CALL COINC(#1,TY*8,TX*8,12,K)
890 IF K<>0 THEN GOTO 1100

REM INCREASE COUNTER AND DECREASE OXYGEN

900 CO=CO+1
910 IF CO=2 THEN OX=OX-1
920 IF CO=2 THEN CO=0

REM DISPLAY CURRENT OXYGEN LEVEL

930 IF OX<10 THEN DISPLAY AT(24,8):CHR$(112)&CHR$(112)&STR$(OX);
940 IF OX>=10 THEN DISPLAY AT(24,8):CHR$(112)&STR$(OX);

REM IF OXYGEN IS 0, THEN GOTO LOSE LIFE SEQUENCE

950 IF OX=0 THEN GOTO 970
960 GOTO 820

**************************************************
******* A COLLISION HAPPENED WITH AN ENEMY*******
**************************************************

REM DELETE SPRITES AND DISPLAY MESSAGE ONSCREEN

970 CALL DELSPRITE(ALL)
980 DISPLAY AT(10,10):"OCTOPUS FOOD";

REM DELAY LOOP #1

990 FOR DL=1 TO 300
1000 NEXT DL

1010 DISPLAY AT(10,10):"WHAT A SHAME";

REM DELAY LOOP #2

1020 FOR DL=1 TO 300
1030 NEXT DL

REM CLEAR MESSAGE AND EXISTING OXYGEN TANK

1040 DISPLAY AT(10,10):"          	";
1050 DISPLAY AT(TY,TX):" ";

REM DECREASE LIVES, RESET OXYGEN TO 20

1060 L=L-1
1070 IF L<0 THEN GOTO 1160
1080 OX=20

REM RETURN TO GAME LOOP

1090 GOTO 660
********************************
*A TANK WAS RETRIEVED**********
*SO INCREASE POINTS AND OXYGEN*
********************************
1100 CALL SOUND(100,220,1,440,1,659,1)

REM INCREASE POINTS AND OXYGEN
1110 POI=POI+100
1120 OX=OX+10

REM OXYGEN LIMIT IS 50

1130 IF OX>50 THEN OX=50
1140 DISPLAY AT(TY,TX):CHR$(112);

REM RETURN TO GAME LOOP

1150 GOTO 680

*********************************
*YOU ARE OUT OF LIVES, GAME OVER*
*********************************

REM CLEAR SCREEN AND SET COLORS

1160 CALL CLEAR
1170 CALL SCREEN(9)
1180 FOR X=1 TO 12
1190 CALL COLOR(X,2,1)
1200 NEXT X

REM DISPLAY MESSAGE AND HOLD

1210 DISPLAY AT(10,8):"YOU LOSE, YA WANK!";
1220 GOTO 1220

Owen Brand

        **webmaster**
http://www.Opry99er.com

On Sep 8, 2010, at 9:37 PM, "opry99er" <[email-masked]> wrote:

> Click the following link to DL the game directly. It is a zipped  
> folder containing one DSK image. Included is one XB program entitled  
> "CALIMARI". It does not autoload. =) Hope this helps some of you who  
> don't use Classic99.
>
> ***Love to hear some ideas. This will be my first assembly  
> conversion, and it'll be AORG >6000. Might have to buy some 8k  
> boards if there are any left. If not, then I think Matthew has  
> purchased another hundred from the board company and is selling them  
> on his new website www.codehackcreate.com, I believe it is. Anyway,  
> I'm having some fun. =) That's what its all about, isn't it?
>