Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - c4ooo

Pages: [1] 2 3 ... 17
1
ASM / Re: Memory map for TI-84 Plus
« on: February 13, 2019, 11:44:28 pm »

2
Site Feedback and Questions / Re: Login Broken
« on: September 01, 2018, 03:07:47 pm »
I had the same issue for the past 3.5 years.
Me too.

3
Axe / Re: Typing strategies?
« on: April 10, 2018, 09:37:13 pm »
Splitting your code into subprograms is helpful. You could have one subprogram that defines variables/sprites, one subprogram that runs the game, one that contains subroutines to render the game, etc, and of course the "main" program which sets everything up.

4
Axe / Re: Best axe optimizations?
« on: March 17, 2018, 04:18:30 pm »
https://www.omnimaga.org/axe-language/the-optimization-compilation/

I would say Part III: "HL is the Ans of Axe" is the most useful optimization that isn't exactly clear from the start.

5
Axe / Re: More dynamic variables?
« on: March 17, 2018, 03:17:01 pm »
I always use GetCalc(appvTEMP, size) for dynamic variables. (This creates an appvar called "TEMP" of the given size and returns a pointer to it.) Just remember to delete it later.

6
Other Calculators / Re: Why RPN?
« on: February 26, 2018, 11:22:37 pm »
When in doubt add more parentheses to eliminate the ambiguity.

7
TI Z80 / Re: axe set (with AI)
« on: December 27, 2017, 09:58:41 pm »
Actually there is enough free ram for 5 buffers. (Although a game i made used 6).
Take a look at this, a modified version of @Runer112's greylib:
Code: [Select]
L6->Str1B1
L3->Str1B2
L1->Str1B5
L2+103->Str1B3
L4-512->Str1B4
|E36->^^oGP
#ExprOff
Lbl GTUNE
1->K
ClrDraw^^r^^r
Rect(24,0,24,64)^^r
Rect(72,0,24,64)^^r
Rect(48,0,48,64)
Text(0,,"GREYSCALE RATE "[CF]"/"[0500]
GDISP()
While 1
Text(80,0,{Str1RATE}>Dec
Copy(L6,L3,168
GDISP()
If getKey(2)
{Str1RATE}--
Pause 50
1->K
ElseIf getKey(3)
{Str1RATE}++
Pause 50
1->K
ElseIf getKey(15)??getKey(41)??getKey(9)??getKey(54)
!If K
Return
End
Else
0->K
End
End
Return
Lbl GLOAD
Asm(3E40D3(^^oGP)^^r)
fnInt(GI, and 0)
Return
Lbl GUNLOAD
FnOff
Asm(EF204AAF32178DEF1150)
Asm(AFD3(^^oGP)^^r)
LnReg^^r
Asm(FF)
Return
#ExprOn
Lbl GDISP
FnOff
Copy(Str1B1,Str1B3)
Copy(Str1B2,Str1B4)
FnOn
Return
#ExprOff
Lbl GNOT83
Asm(DB0217ED62)
Return
#ExprOn
Lbl GI
If {Str1GNOT83}Asm(7DDEF6D303)
Asm(3E02D3(^^oGP+1)^^r3A(Str1RATE)D3(^^oGP+2)^^r
Else
Str1GI
{}--
ReturnIf ->{}
{Str1RATE}->{Str1GI}
End
DispGraph(Str1B3,Str1B4)^^r^^r
Return
L6 and L3 are still used for drawing while L2+103 and L4-512 are used for the greyscale. "Lbl GTUNE" is" the greyscale tuner, "Lbl GLOAD" initializes the greyscale (use this at start of program), "Lbl GUNLOAD" uninitilizes it (use this at end), "Lbl GDISP" flips the buffers (use this when you finish drawing your frame), "Lbl GNOT83" returns if or not the calc is an not 83, and lastly "Lbl GI" is the actual interrupt.

"Str1RATE" is a pointer to the greyscale rate, a single byte that tells how often the greyscale should update. "Str1GI" is a pointer to another byte that acts like a counter of sorts.You should ask @Runer112 for more info, I have forgot the intricacies of greyscale :(

8
TI Z80 / Re: axe set (with AI)
« on: December 27, 2017, 08:45:53 pm »
Have 4 buffers. Two for the final greyscale image, and two others for drawing on. When you finish drawing a frame, copy the draw buffer to the greyscale buffer. You can use GetCalc("prgmTEMP, 768*2) to make a temporary program were to store the buffer.

9
Other / z80 computer with arduino coprocessor.
« on: December 24, 2017, 03:41:09 pm »
I built a prototype for a z80 computer that uses an arduino for communication and bootstrapping. I can assemble a z80 source program with brass, and send it to the arduino with a small python program. The arduino is running a firmware program that waits for a program to be sent over serial, which it loads into the ram chip for the z80 to execute. The z80 communicates with the arduino via IO requests. The arduino<-->z80 API only contains 3 commands, but these can be used for the z80 to send messages to the PC via serial.

This is a small test program to send "test1" and "12345" to the PC via serial:
Code: [Select]
#define output(x, y) ld a,y \ out (x),a
#define command(x) output(PORT_COMMAND, x)
 output(PORT_ADD_LOW, writeTo & FFh)
 output(PORT_ADD_HIGH, writeTo >> 8) ;set data act-on address to writeTo
 ld hl,string1
 ld de,writeTo
 ld bc,6
 ldir ;copy string1 to writeTo
 command(COMMAND_WRITE_SERIEL) ;tell arduino to send data from act-on address to PC
 ;stuff
 ld hl,string2
 ld de,writeTo
 ld bc,6
 ldir ;copy string2 to writeTo
 command(COMMAND_WRITE_SERIEL) ;tell arduino to send data from act-on address to PC
 jr $ ;do nothing
string1:
 .db "test1",0
string2:
 .db "12345",0
writeTo:

Picture:


Todo:
    Use external clock. (Currently arduino is generating a clock signal)
    Upgrade to 128kb ram chip. (Currently i am using a 32kb one)
    Make arduino use pin registers for control signal IO. (minor)
    Make a paging circuit for said ram chip.
    Add an LCD
    Write an OS(?)
    Add an SD card(?)
    Make PCB (?)

10
TI Z80 / Re: TI84+CE Wrapper for Monochrome TI-BASIC Programs.
« on: September 02, 2017, 07:58:41 pm »
That' really cool, best of luck with this! :D
This would be really cool  :D ;D
Thanks!
For now, you can access the source here: https://goo.gl/9PGkgX
There will be more updates soon, courtesy being bored in school :P

Edit: "fixed" url, as for some reason the URL would redirect to "https://github.com/c4ooo/TI84-CE-Wrapper-for-Monochrome-TI-BASIC-Programs" instead of "https://github.com/c4ooo/TI84-CE-Wrapper-for-Monochrome-TI-BASIC-Programs.". (The second one has a period at the end).

11
Computer Projects and Ideas / Open world engine for RPGs
« on: July 19, 2017, 06:32:29 pm »
 I got bored so i started programming an engine for open world RPGs. (In c++ with openGL 2). The world is split into "cells"/"chunks" which are loaded/removed as you move around. Alpha-mapping is used to shade different ground textures onto the ground mesh. (the ground is a mesh, not a hightmap, to allow for more freedom.) I am also programming some sort of "construction set", which currently allows you to edit some values of the cell, adding/removing/manipulating prefabricated objects in the cell, and a utility to paint textures onto the ground.

Prefabs will range from things like rocks on the ground, to entire dungeons.

Progress:
Terrain rendering / resource management- mostly done.
Prefab rendering/manipulation - started
loading .ini files - need to start
construction set - lots of tedious work needs to still be done, but its not necessarily hard;
proper saveing/loading of cell data.
Resource manager for materials/textures/prefabs - started;
lighting - light is magical right?
physics - some progress, mostly on hold for now.

things that need to be done in feature that i haven't thought about yet:
Entity system.
Actual RPG elements like questing, etc.
Event Scripts.
Mesh editor (?!)

Pictures:

This is how the construction set looks so far: The ground repeats like that becomes i am too lazy to make proper terrain, so i just made it repeat.

Texturing the ground: (In this case removing textures.):

Added a prefab (that pink thing) to the cell: (as well as some texturing to the alpha map).

12
TI Z80 / Re: TI84+CE Wrapper for Monochrome TI-BASIC Programs.
« on: June 27, 2017, 06:29:54 pm »
So basically, old BASIC 83+ games that use the graph screen will function the same on the color model? That's the end goal right?
Precisely.
Do to the faster CPU they will also run faster :)

13
TI Z80 / Re: TI84+CE Wrapper for Monochrome TI-BASIC Programs.
« on: June 25, 2017, 07:36:28 pm »
This is awesome! It should be really great since I know that people with CSEs would always complain when monochrome games didn't work (usually new users), so this should help the CE crowd not follow the same ordeal.
Speaking of, someone should make this for CSE
* 123outerme runs
Thanks!
I could (and will) release the code, but unfortunately i dont think there would be anyone to port it to the CSE :(

14
TI Z80 / TI84+CE Wrapper for Monochrome TI-BASIC Programs.
« on: June 25, 2017, 11:27:45 am »
At this point this is only a proof of concept, but the goal of this project is to hook all the drawing commands in ti-basic, making them behave like they would on the monochrome calculators. As of right now i have only hooked 4 ti-basic commands: ClrDraw, pxl-on, pxl-off, and pxl-test. The library is initialized with "1:Asm(INSTLAPI" (this needs to be put at the start of the monochrome tibasic program) and de-initialized with "0:Asm(INSTLAPI".

15
The Axe Parser Project / Re: Breaking the 8K limit
« on: June 16, 2017, 11:56:56 pm »
The axiom Fullrene should allow you to bypass the 8KB program code limit. There are mixed reports of its efficacy, though. Also, the program needs to be launched from a shell, as the OS simply refuses to launch programs this large.

Alternatively, compile your code as an application to get a bit under 16KB of room, although this may not be desirable for other reasons.

Interrupts being enabled or not should have no bearing on this.
Fullrene uses interrupts to disable the limit. If you read the source, you will see that it uses the I register for interrupts. I know that zStart has a hack to disable the limit, but I don't know if it simply removes the limit firm the OS itself. I don't know about crabcake. I couldn't find a download for it anywhere. Compiling as an app is not an option for me currently for various reasons.

It uses the i register as part of the logic to disable the code limit, but it does use interrupts or the i register after that. The limit is not removed permanently; it is only removed for the remainder of the program's execution.
I thought it sent some magical number to some magical port? I remember a really old news article about this by 'thepenguin' (?).

Pages: [1] 2 3 ... 17