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 - Matrefeytontias

Pages: 1 ... 92 93 [94] 95 96 ... 133
1396
The Axe Parser Project / Re: Features Wishlist
« on: February 13, 2013, 03:09:49 pm »
You can still build programs larger than 16Kb (up to 24Kb in fact) but you can't build them as apps.

1397
TI Z80 / Re: [AXE] input routine.
« on: February 13, 2013, 11:54:03 am »
What do you mean by "list input" ?

1398
The Axe Parser Project / Re: Features Wishlist
« on: February 12, 2013, 12:38:48 pm »
Oh waw. I didn't think Z-addressing could be of that use. To be honest, I wasn't sure on how it worked ;D

So basically (I've seen it's related to port 10), it make a row of the LCD driver's RAM the one displayed at the top of the LCD, and then the rows that are above the LCD are displayed after the last row, at the bottom ?

1399
The Axe Parser Project / Re: Features Wishlist
« on: February 12, 2013, 07:28:25 am »
I wonder what's the use of Z-addressing ...

1400
The Axe Parser Project / Re: Features Wishlist
« on: February 12, 2013, 05:43:00 am »
I think more something like foo-bar?(ee0?-1,1),0

1401
Axe / Re: What I've done?! O.o
« on: February 11, 2013, 10:15:20 am »
Something you absolutely need to know : if you want to use trig, just build some LUTs (look-up tables, tables to hold constant values instead of recalculating them) and leave sin() and cos() alone. Do that at the really beginning of your code :

:E90D3→°SinLUT+2→°CosLUT
:L1→SinLUT+256→CosLUT       // L1 or whatever free RAM area of at least 512 bytes
:~1       // the negate sign, not the minus
:For(256)    // 256 possible angles, from 0 to 255
:sin(+1→r1)→{r1+SinLUT}
:cos(r1)→{r1+CosLUT}
:r1
:End


And then, replace all of your sin(r1) with sign{r1+SinLUT} and all of your cos(r1) with sign{r1+CosLUT}, but you'll have to make sure that r1 can't go above 255. You'll have a great speed gain, you'll see.

1402
TI Z80 / Re: Mimas - an on-calculator assembly IDE
« on: February 11, 2013, 01:51:28 am »
I seriously doubt I'm good enough to write a hook-like loader, so I'll stay with modifying Mimas to integrate the plugin and I'll let you do what you can :/

I want to make Mimas able to compile CHIP-8 mnemonics into CHIP-8 bytecode (which you'll can use with a CHIP-8 interpreter I'm currently working on).

In regards of all the things to do, I think it'd be better to have a bit of training with a simpler plugin, like one to display line numbers, I'll start with that.

1403
TI Z80 / Re: Mimas - an on-calculator assembly IDE
« on: February 09, 2013, 04:16:46 am »
So I think writing a plugin requires modifying and recompiling Mimas ? If so, it doesn't make plugins portable :/

And I wanted to write a plugin to add to the parser CHIP-8 pseudo-assembly mnemonics, I wonder if that's possible.

1404
[FR] Programmation Axe Parser / Re: Manipulation des appvars en Axe
« on: February 08, 2013, 08:46:07 am »
Et non, les Pic sont des pointeurs statiques, c'est à dire qu'on ne peut pas leur assigner une valeur variable, ils ne peuvent que contenir une adresse passée avec Data(), [hex] ou "chaine".

En plus t'en as pas besoin, c'est A ton pointeur. Tu peux accéder à tes sprites avec par exemple Pt-On(0,0,A) ou Pt-On(0,0,A+16).

1405
I know C++, maybe I'll help with the parser or something.

1406
TI Z80 / Re: Mimas - an on-calculator assembly IDE
« on: February 06, 2013, 02:47:37 am »
But I'm not good enough in ASM to understand how a system works from a code :(

1407
Tha wa zeasi :P

1408
TI Z80 / Re: Mimas - an on-calculator assembly IDE
« on: February 05, 2013, 03:24:44 pm »
Mostly unrelated to the above, did you released any documentation on writing plug-ins for Mimas ? I dig through all the files included in TiCalc's mimas-0.4.zip and found many docs on how to use them, install them etc but nothing about how to create one D:

1409
ASM / [z80] Problem with the port and an Arduino
« on: February 05, 2013, 03:39:01 am »
Heya guys,

For my school project I want my calc to set and unset the two wires of the port 0 to drive a robot. Since I only want 4 commands, I use direct output instead of a real protocol.

So my problem is here : while I set at least one line low, there is no problem (the Arduino always receives the right bits). But when I set both lines high, sometimes the Arduino receives high-high, sometimes it receives low-low (and never low-high nor high-low).

Here's my ASM code for the link stuffs :
Code: [Select]
.org $9D93
 .db $BB,$6D
keys5thCol = $FD
keysArrows = $FE
; equates for sending values
; R → red → tip, W → white → ring
; L → low, H → high
wRLWL = 3
wRHWL = 2
wRLWH = 1
wRHWH = 0

 ld b,RHWH
Start:
 ld a,$FF
 out (1),a
 ld a,b
 out (0),a
 ld a,keysArrows
 out (1),a
 nop
 in a,(1)
 cpl
 and %00001110
; no arrow pressed
 jr z,setRHWH
 bit 1,a
 call nz,setRHWL
 bit 2,a
 call nz,setRLWH
 bit 3,a
 call nz,setRLWL
Skip:
 ld a,keys5thCol
 out (1),a
 nop
 in a,(1)
 bit 6,a
 jr nz,Start

 ld a,wRHWH
 out (0),a
 ret

setRLWH:
 ld b,wRLWH
 ret
setRHWL:
 ld b,wRHWL
 ret
setRHWH:
 ld b,wRHWH
 jr Skip
setRLWL:
 ld b,wRLWL
 ret
.end

And here's the Arduino code I wrote (it's C++) :
Code: [Select]
int ring = 2, tip = 4; // let's say that the ring is port 2 and the tip port 4

void setup(void)
{
  pinMode(ring, INPUT);
  pinMode(tip, INPUT);
  Serial.begin(9600);
}

int getBit(int port)
{
  if(digitalRead(port) == HIGH) return 0;
  else return 1;
}

void loop(void)
{
  Serial.print("Command received : ");
  switch((getBit(ring) << 1) | getBit(tip))
  {
    case 0:
      Serial.println("don't move");
      break;
    case 1:
      Serial.println("rotate right");
      break;
    case 2:
      Serial.println("rotate left");
      break;
    case 3:
      Serial.println("go forward");
      break;
  }
delay(1000);
}

I know that it's not a matter of cables nor connection.

Thanks by advance :)

EDIT : oh but, what's this wire ? The ground ? So I think it goes in this hole ... -_____________________-'

It's okay, I just forgot to plug the ground in the hole where the ground has to go. Forget that.

1410
[FR] Programmation Axe Parser / Re: Manipulation des appvars en Axe
« on: February 04, 2013, 10:49:14 am »
:GetCalc("appvA",40)->L1

O.O

Maimaimais L1 c'est une constante définie par l'Axe !

Si tu veux accéder aux données contenues dans (par exemple) Pic1 dans (re-par exemple) appvABC, tu dois :
  • Accéder à Pic1 avec GetCalc("Pic1"). Il ne faut pas écrire Pic1 en toutes lettres hein, faut aller le chercher dans [vars] [4].
  • Créer appvABC avec GetCalc("appvABC",756) : puisqu'une Pic fait 756 octets, on a qu'à créer une appvar de même taille.
  • Copier le contenu de la Pic dans l'appvar.

Tout cela se résume en trois lignes de code :

:GetCalc("Pic1")→P
:GetCalc("appvABC",756)→A
:Copy(P,A,756)    ← cette ligne copie les 756 octets commençant à l'adresse contenue dans P sur les 756 octets commençant à l'adresse contenue dans A.
:.En clair, ça copie les 756 octets de P dans A.


Et avec ça, tu auras une appvar appelée ABC qui fera 756 octets (plus le header des appvars et tout, donc un peu plus) et qui contiendra une image.

EDIT : il faut que tu comprennes qu'en Axe, le Pic1 que tu utilises pour tes sprites et tout n'est pas le même que le Pic1 auquel tu accèdes avec GetCalc : le premier n'est qu'un nombre assigné à un nom alors que le deuxième est une variable de la calculatrice, contenant une image !

Pages: 1 ... 92 93 [94] 95 96 ... 133