Virgil Dupras
8ded02bc78
avra: fix misordered MOV, MUL, NEG and NOP
4 vuotta sitten
Virgil Dupras
f54e10f9fd
avra: add CALL and JMP
4 vuotta sitten
Virgil Dupras
10b925e0e0
avra: add BCLR and BSET
4 vuotta sitten
Virgil Dupras
1771ee8da7
avra: add SER
4 vuotta sitten
Virgil Dupras
0a9ac27cf6
avra: add SBIC and SBIS
4 vuotta sitten
Virgil Dupras
a9dcba5793
avra: add CBR instruction
4 vuotta sitten
Virgil Dupras
c968995ec0
avra: add CBI and SBI
This completes instruction support for the Blink tn45 example.
4 vuotta sitten
Virgil Dupras
5c43988649
avra: code consolidation
4 vuotta sitten
Virgil Dupras
b130cac635
avra: code consolidation
4 vuotta sitten
Virgil Dupras
52359a4e42
avra: a little code deduplication
4 vuotta sitten
Virgil Dupras
e9c692ed50
avra: a litte bit of code deduplication
4 vuotta sitten
Virgil Dupras
2652c81519
avra: make CLR work properly
4 vuotta sitten
Virgil Dupras
20861767e6
avra: generalize arg swapping behavior
4 vuotta sitten
Virgil Dupras
14fbfa2967
avra: small _parseArgs refactoring
Take argspec pairs directly as an argument instead of taking a
pointer to an argspec pair.
4 vuotta sitten
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.
4 vuotta sitten
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.
4 vuotta sitten
Virgil Dupras
64935d8b40
avra: add IN and OUT instructions
4 vuotta sitten
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.
4 vuotta sitten
Virgil Dupras
fa75f30ffb
avra: add RJMP and RCALL instructions
4 vuotta sitten
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.
4 vuotta sitten
Virgil Dupras
a5efc695e9
avra: add "Rd + bit" instructions
4 vuotta sitten
Virgil Dupras
c696fcbce4
avra: add "with immediate" instructions
4 vuotta sitten
Virgil Dupras
4b9712a224
avra: add branching instructions
4 vuotta sitten
Virgil Dupras
57c1a10434
avra: first steps
4 vuotta sitten
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.
4 vuotta sitten
Virgil Dupras
0d7693a163
core: remove writeHLinDE
It wasn't used much so I inlined it.
4 vuotta sitten
James Stanley
1b8b113536
Fix filesystem in shell emulator
We now treat the block device as fixed-size rather than trying to grow it in response
to kernel activity.
Previously, if you tried to create 2 files in a row, only the first 1 would actually appear,
because the device only ever got larger when a byte was written immediately past the end of
the device.
Now we just let the kernel write bytes to the disk anywhere, so new files can be created even
when the previous file is not completely full.
Also, fix buffer overrun in reading filesystem image, and use a more idiomatic fgetc loop.
4 vuotta sitten
Virgil Dupras
948a06cb41
tools/tests: add missing doc about shell tests
4 vuotta sitten
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.
4 vuotta sitten
Virgil Dupras
c002c69208
Include tools/tests/shell/test.cfs in repo
The order in which cfspack includes its file depend on the platform. To have
tests that reliably pass, test.cfs has to be committed in.
4 vuotta sitten
Virgil Dupras
9ab292a6d5
Add shell automated tests
4 vuotta sitten
Virgil Dupras
43f4c5200e
basic: don't choke on ':' in '"' literals
4 vuotta sitten
Virgil Dupras
5b155a5c15
tools: use BASIC's new while loop
Also, increase STDIO_BUFSIZE to 0x40 so that those while loops work.
4 vuotta sitten
Virgil Dupras
3db38b0d89
basic: add while command
4 vuotta sitten
Virgil Dupras
51c977f2ed
basic: allow multiple commands on the same line
4 vuotta sitten
Virgil Dupras
5d33d165a2
cfspack: allow multiple patterns and multiple paths in args
Also, always end the CFS chain with a stop block.
fixes #55 #56 #57
4 vuotta sitten
Virgil Dupras
888395d496
tools: replace tools for old shell with tools for new shell
ref #80
4 vuotta sitten
Virgil Dupras
1710c865dc
doc: refer to the new BASIC shell in example
ref #80
4 vuotta sitten
Virgil Dupras
25d25d017c
Replace old shell with BASIC shell
fixes #80
4 vuotta sitten
Virgil Dupras
20151a97f8
recipes/rc2014/zasm: use BASIC shell
Also made Makefile actually portable.
4 vuotta sitten
Virgil Dupras
880775ae69
recipes/rc2014/sdcard: use BASIC shell
4 vuotta sitten
Virgil Dupras
7907687abf
tools/uploadb: make it much much faster
By uploading a BASIC loop and then run it, we can reduce the serial
communication to pure content which greatly reduces the overhead and make
the process much much faster.
4 vuotta sitten
Virgil Dupras
b40b39f45c
tools: add blkdumpb
4 vuotta sitten
Virgil Dupras
9ec71ecfee
tools/uploadb: rewrite in C
4 vuotta sitten
Virgil Dupras
fcee98ee4e
tools: use the new "puth" BASIC command
4 vuotta sitten
Virgil Dupras
fb93fcd6e6
recipes/rc2014/eeprom: add usr.asm
A little life saver if your target shell doesn't have a proper at28w.
4 vuotta sitten
Virgil Dupras
beaea6f978
basic: add puth command
4 vuotta sitten
Virgil Dupras
d9db0a824e
Make makefiles and shell scripts portable
It's no longer required to use `gmake` under OpenBSD and shell scripts
no longer require bash.
4 vuotta sitten
Virgil Dupras
8ff4b18c51
tools: add memdumpb
In C this time. Python/Perl code is barely terser than C for these little
tools. Why bother with interpreted?
4 vuotta sitten
Virgil Dupras
b56d6ca1c7
Rewrite uploadb.py in perl
I know, this is silly, but I'm moving tools to something a bit closer to the
system. I consider perl to be more system-like than python for a simple reason:
perl is part of the OpenBSD base system and python is not.
Also, I'm learning perl and using this as an opportunity.
4 vuotta sitten