Jump to content
IGNORED

My first "ASM" TI99 demo


rocky007

Recommended Posts

this long week was very interesting... i decided to finish at least my game ( Pipe Dream ) for Rainy Days.

So i tryed Peter Krull's compiler, but unfortunally my game is definitively too big.

 

So i took my courage in hand and started to learn TurboForth. I made some test and it's really very powerfull.

Unfortunally, without docs, it's little bit hard. ( by example, is it possible to BREAK a program ? )

But i'm happy, i understood the base, the stack, etc.. but need to D/L forth manual.

 

While checking the forth doc on Atariage forum i rediscovered My Little Compiler. Checked a little and finally decided to give a try.

I made my sprite/key/block routine in "assembler", and the result is really amazing ( for me ) :

 

 

The problem is...the rest of game still in basic and too slow. i have to convert the rest. but this MLC is really interesting for people

like me, too lazy to start assembler/forth.

 

I also made a little demo... ( don't take care of the magenta bug ;) ) :

 

Edited by rocky007
Link to comment
Share on other sites

that is cool stuff! Can you post the MLC code for the demo?

 

EDIT: I looked at MLC about a year ago. It's a nifty tool. But I also encourage you to take a look at TMS9900 assembly language. It's really not that difficult once you get used to it.

 

honnestly i dream to use use you Spectra 2 library. I wanted to start assembly already with the 1 st version... but confort of XBasic...

 

Here it this the code of "CHE DEMO" ;)

 

13 DIM ASM$(30)
70 CALL INIT
71 CALL LOAD("DSK1.MLCO")
72 ASM$(1)="DAVE"
75 Asm$(2)="=X1 =Y1 &S5 =F1 =G1 &C8.5.14"
76 Asm$(3)="&C9.5.14 &C10.5.14 &C11.5.14 Ls =T1"
79 Asm$(4)="Ll"
80 Asm$(5)="#PTBA +AX +BY"  
81 Asm$(6)="#LTBA IT CT17 ?<l"
82 Asm$(7)="#P1BA (2.130A !=a" 
83 Asm$(="(2.70B !=b"
84 Asm$(9)="+FG (1.23F !=c"
85 Asm$(10)="Lt =S1 =PF"	    
86 Asm$(11)="&P24P32 IP &P24P$T IP &P24P$I"
87 Asm$(12)="IP &P24P$R IP &P24P$U IP &P24P$L IP"
88 Asm$(13)="&P24P$E IP &P24P$Z IP &P24P32"
89 Asm$(14)="&P1P32 IP &P1P$T IP &P1P$I"
90 Asm$(15)="IP &P1P$R IP &P1P$U IP &P1P$L IP"
91 Asm$(16)="&P1P$E IP &P1P$Z IP &P1P32"
92 Asm$(17)="&P12P32 IP &P12P$T IP &P12P$I"
93 Asm$(18)="IP &P12P$R IP &P12P$U IP &P12P$L IP"
94 Asm$(19)="&P12P$E IP &P12P$Z IP &P12P32"
95 Asm$(20)="#I"
96 asm$(21)="Bs"
97 asm$(22)="La NX +AX +AX Bs"
98 asm$(23)="Lb NY +BX +BX Bs"
99 asm$(24)="Lc NG Bt"
100 asm$(25)=""
120 CALL LINK("COMPIL",ASM$())
130 IF SEG$(ASM$(1),1,2)<>"OK" THEN PRINT ASM$(1)::END
10520 CALL CHAR(36,"0000000000000000")
10530 CALL CHAR(38,"000000070F0F372D")
10540 CALL CHAR(37,"0000010101000101")
10550 CALL CHAR(39,"7F7FF7FDFFBFFEF8")
10560 CALL CHAR(40,"0101000000010305")
10570 CALL CHAR(42,"F8F0587059F8F8F0")
10580 CALL CHAR(41,"3F7F7F3F3F7F7F3F")
10590 CALL CHAR(43,"F0D0F0D070D0B8D8")
10600 CALL CHAR(44,"3F2F3E257FF78743")
10610 CALL CHAR(46,"F8FEB6EE99FFFFFE")
10620 CALL CHAR(45,"473F09067A3F0303")
10630 CALL CHAR(47,"FFFFFFFFFFFFFFFF")
10640 CALL CHAR(48,"0400000103043F0F")
10650 CALL CHAR(50,"3F373BF7FBD7FFEF")
10660 CALL CHAR(49,"0701000000000000")
10670 CALL CHAR(51,"FFFE5B0D01000000")
10680 CALL CHAR(52,"033FFAEFF7FF5FEF")
10690 CALL CHAR(54,"DFAFDFFFEFDFCFCF")
10700 CALL CHAR(53,"EFBF55FFC0000000")
10710 CALL CHAR(55,"2BDFB7F700000000")
10720 CALL CHAR(56,"000000EB7D7FFDC8")
10730 CALL CHAR(58,"000000C1E1E0C101")
10740 CALL CHAR(57,"0000000000000000")
10750 CALL CHAR(59,"0100000000230701")
10760 CALL CHAR(60,"00000000090D0480")
10770 CALL CHAR(62,"01010007D800001B")
10780 CALL CHAR(61,"C0E0CCF8F65BAFFB")
10790 CALL CHAR(63,"0100000000DFBFDD")
10800 CALL CHAR(64,"FFFFFFFFFFFFFFFF")
10810 CALL CHAR(66,"FFBBFF5FEF7FDAE6")
10820 CALL CHAR(65,"FFFFFFFFF7FF0F00")
10830 CALL CHAR(67,"F0FFEFB7FDFFFF00")
10840 CALL CHAR(68,"A0F4DEF7FAEDFFFF")
10850 CALL CHAR(70,"000000D8FFFFFDF6")
10870 CALL CHAR(69,"F7FDAAFF03000000")
10880 CALL CHAR(71,"FFFAFDBBF6FF0F05")
10890 CALL CHAR(72,"0000A7EFDDBB8783")
10900 CALL CHAR(74,"0703EFBF6AF5BFFD")
10910 CALL CHAR(73,"0000000000C04080")
10920 CALL CHAR(75,"2F0707071D3B6DB7")
10930 CALL CHAR(76,"80F8DCBFFD3F7BFF")
10940 CALL CHAR(78,"FF3F97DFAFDE75FF")
10950 CALL CHAR(77,"AE17073D7EFDFFBF")
10960 CALL CHAR(79,"FFFFFFFFFFFFFFFF")
10970 CALL CHAR(80,"FFFFFFFFFFFFFFFF")
10980 CALL CHAR(82,"FFFFFFFFFFFFFFFF")
10990 CALL CHAR(81,"FD5EBD7FFEBFD700")
11000 CALL CHAR(83,"FFFFB7EFD8D00000")
11010 CALL CHAR(84,"0000000000C0A0F8")
11020 CALL CHAR(86,"0000000000000000")
11030 CALL CHAR(85,"BCF8DCF6DFAFEFDF")
11040 CALL CHAR(87,"0000000040C0C0C0")
11050 CALL CHAR(88,"FFFFFFFFFFFFFFFF")
11060 CALL CHAR(90,"C0A0C0A0C0C08020")
11070 CALL CHAR(89,"FFFFFFFFFFFFFFFF")
11080 CALL CHAR(91,"C0B8F8F4DCE8B0D8")
11090 CALL CHAR(92,"FFFFFFFFFFFFFFFF")
11100 CALL CHAR(94,"F8F8F8F870B0F0F0")
11110 CALL CHAR(93,"FFFFFFFFFFFFFFFF")
11120 CALL CHAR(95,"F0B0C0F0E0C0C0C0")
11130 CALL CHAR(96,"E9F0C0C0E060F8F0")
11140 CALL CHAR(98,"0000000000000000")
11150 CALL CHAR(97,"F4E8E08000000000")
11160 CALL CHAR(99,"0000000000000000")
20000 CALL CLEAR
20010 CALL MAGNIFY(4) :: t=36 :: m=1
20020 for x=1 to 4
20030 for y=1 to 4
20040 CALL SPRITE(#m,t,2,y*31,x*31)
20050 t=t+4 :: m=m+1
20060 next y
20070 next x
20080 CALL LINK("DAVE") 

 

Normally the ugly magenta thing moving is "TI RULEZ", but i forgot that i redifined CHAR from 65 to 90, and hadn't the courage to change yet.

Edited by rocky007
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...