Commit Graph

314 Commits

Author SHA1 Message Date
Virgil Dupras 51e500e8da avra: avoid pgm addr truncation error on first pass 2019-12-22 19:44:46 -05:00
Virgil Dupras b955a67daa avra: add TST 2019-12-22 19:24:36 -05:00
Virgil Dupras 6e1e8e0e59 avra: add LSL 2019-12-22 18:36:15 -05:00
Virgil Dupras 8ded02bc78 avra: fix misordered MOV, MUL, NEG and NOP 2019-12-22 18:35:08 -05:00
Virgil Dupras f54e10f9fd avra: add CALL and JMP 2019-12-22 15:54:46 -05:00
Virgil Dupras 10b925e0e0 avra: add BCLR and BSET 2019-12-22 15:11:15 -05:00
Virgil Dupras 1771ee8da7 avra: add SER 2019-12-22 15:01:08 -05:00
Virgil Dupras 0a9ac27cf6 avra: add SBIC and SBIS 2019-12-22 14:55:38 -05:00
Virgil Dupras a9dcba5793 avra: add CBR instruction 2019-12-22 14:45:10 -05:00
Virgil Dupras c968995ec0 avra: add CBI and SBI
This completes instruction support for the Blink tn45 example.
2019-12-15 20:51:31 -05:00
Virgil Dupras 5c43988649 avra: code consolidation 2019-12-15 20:15:44 -05:00
Virgil Dupras b130cac635 avra: code consolidation 2019-12-15 19:17:03 -05:00
Virgil Dupras 52359a4e42 avra: a little code deduplication 2019-12-15 18:52:00 -05:00
Virgil Dupras e9c692ed50 avra: a litte bit of code deduplication 2019-12-15 18:34:14 -05:00
Virgil Dupras 2652c81519 avra: make CLR work properly 2019-12-15 16:43:32 -05:00
Virgil Dupras 20861767e6 avra: generalize arg swapping behavior 2019-12-15 16:36:43 -05:00
Virgil Dupras 14fbfa2967 avra: small _parseArgs refactoring
Take argspec pairs directly as an argument instead of taking a
pointer to an argspec pair.
2019-12-15 16:25:16 -05:00
Virgil Dupras 62eb5589c3 avra: refactor instruction tbl
The instruction table is now beefier and has redundant data, but
this simplifies processing. This should simplify upcoming work.
2019-12-15 15:53:28 -05:00
Virgil Dupras aa8df95f7d Add "avr/" includes folder
Also, add a "real world" example in AVRA tests, a blink program on
a ATtiny45. Some instructions are commented out because they aren't
implemented yet, but not many.

The output of the program has been verified against AVRA's own
output.
2019-12-15 09:38:01 -05:00
Virgil Dupras 64935d8b40 avra: add IN and OUT instructions 2019-12-15 08:43:59 -05:00
Virgil Dupras ab578159b7 avra: refactor args parsing
This costs us a bit of space for now but should make things a lot
simpler down the road, especially with "alias ops" which are simple
syntactic sugar for another op.
2019-12-14 15:17:55 -05:00
Virgil Dupras fa75f30ffb avra: add RJMP and RCALL instructions 2019-12-14 12:28:27 -05:00
Virgil Dupras 33c480a5dd avra: remove useless instrBRBits table
I had written this when trying different approaches to adding BR and
I forgot to remove it.
2019-12-14 09:41:36 -05:00
Virgil Dupras a5efc695e9 avra: add "Rd + bit" instructions 2019-12-14 09:33:46 -05:00
Virgil Dupras c696fcbce4 avra: add "with immediate" instructions 2019-12-14 09:05:38 -05:00
Virgil Dupras 4b9712a224 avra: add branching instructions 2019-12-13 22:49:15 -05:00
Virgil Dupras 57c1a10434 avra: first steps 2019-12-13 17:38:40 -05:00
Virgil Dupras e691dab070 zasm: little drive-by optimization
Use IX directly for argspec rows instead of going through DE. It saves a bit
of processing. The code was this way because I initially didn't use IX at all,
so as code evolved, that DE translation stayed as an artifact.
2019-12-13 10:54:01 -05:00
Virgil Dupras 0d7693a163 core: remove writeHLinDE
It wasn't used much so I inlined it.
2019-12-13 09:56:23 -05:00
Virgil Dupras 4f7a05e3b7 core: remove cpHLDE
It wasn't used much, so I replaced its use in the kernel with direct code
and moved the routine in apps/ed, the only other place where it was used.
2019-12-12 15:53:14 -05:00
Virgil Dupras 43f4c5200e basic: don't choke on ':' in '"' literals 2019-12-12 12:22:38 -05:00
Virgil Dupras 3db38b0d89 basic: add while command 2019-12-12 11:17:10 -05:00
Virgil Dupras 51c977f2ed basic: allow multiple commands on the same line 2019-12-12 10:51:13 -05:00
Virgil Dupras 1710c865dc doc: refer to the new BASIC shell in example
ref #80
2019-12-11 14:57:07 -05:00
Virgil Dupras 25d25d017c Replace old shell with BASIC shell
fixes #80
2019-12-11 14:05:34 -05:00
Virgil Dupras 20151a97f8 recipes/rc2014/zasm: use BASIC shell
Also made Makefile actually portable.
2019-12-11 13:01:51 -05:00
Virgil Dupras 880775ae69 recipes/rc2014/sdcard: use BASIC shell 2019-12-11 11:18:32 -05:00
Virgil Dupras beaea6f978 basic: add puth command 2019-12-09 14:34:14 -05:00
Virgil Dupras 105acedab8 basic: improve README
markdown formatting was broken. Also, don't mark it as WIP.
2019-12-01 20:15:45 -05:00
Virgil Dupras 10864afa96 recipes/ti84: use the BASIC shell 2019-12-01 20:11:13 -05:00
Virgil Dupras 4c07639808 basic: make cmd table more compact
This shaves off quite a few bytes from the binary.
2019-11-30 21:36:34 -05:00
Virgil Dupras 4ba84dac5c basic: add getc/putc commands 2019-11-30 21:13:44 -05:00
Virgil Dupras 77485a0031 basic: change welcome prompt
This is becoming the new shell, it has to step up to its new responsibilities!
2019-11-30 20:50:34 -05:00
Virgil Dupras fc23a7c4a1 basic: do registers-to-vars transfer after pgm hook call 2019-11-25 23:16:15 -05:00
Virgil Dupras 264e72e0fd basic: add fnew and fdel commands 2019-11-25 22:49:24 -05:00
Virgil Dupras 7c893dada1 basic: can now execute user apps!
Shell replacement sequence beginning in 3, 2, 1...
2019-11-25 22:05:10 -05:00
Virgil Dupras b29073b01d basic: add fopen command 2019-11-25 21:41:37 -05:00
Virgil Dupras a0daed6812 basic: add usr command 2019-11-24 21:07:03 -05:00
Virgil Dupras 12bc120375 basic: add bsel, bseek, getb, putb commands 2019-11-24 20:34:23 -05:00
Virgil Dupras 8f1d942e5f basic: add addr command 2019-11-24 15:39:36 -05:00