Can we stop writing all the extra 0x0's?
I might suggest having the parser notice when 3 aren't provided, and fill in 0x0 for all missing arguments.
(Or the parser could be smarter)
```
LOOP 0xF 0x0 0x0
SET8 0x1 #R1 0x1
GET8 0x2 0x2 0x0
IF 0x1 #R2 0xF
PASSFAIL 0x0 0x0 0x0
ENDTEST 0x0 0x0 0x0
ENDIF 0x0 0x0 0x0
DELMS 0x1 0x0 0x0
REGINC 0x1 0x0 0x0
ENDLOOP 0x0 0x0 0x0
```
Becomes
```
LOOP 0xF
SET8 0x1 #R1 0x1
GET8 0x2 0x2
IF 0x1 #R2 0xF
PASSFAIL 0x0
ENDTEST
ENDIF
DELMS 0x1
REGINC 0x1
ENDLOOP
```
Notes:
- I expect the tokenizer would fill these in, so no firmware updates are necessary.
- I don't like exceptions, so a rule like "any trailing arguments of `0x0` may be left out and are assumed to be `0x0`" should apply to all opcodes to prevent confusion.
- In cases where 0x0 is a real value, such as `REGLOD 0x1 0x0`, I personally don't think it's a problem to let people use `REGLOD 0x1` shorthand. In C and C#, we know that if you write `int a`, the variable defaults to 0.
- This might be a confusing one: `PASSFAIL`. That would set the test status to fail. The test would start with `PASSFAIL 0x1` and on a failed chip validation (sub test), we'd write `PASSFAIL; ENDTEST` or if we have "constant variables", define "PASS 0x1; FAIL 0x0" so we can write `PASSFAIL FAIL; ENDTEST`. Come to think of it, it would also be strange to see `REGLOD` which would load value 0x0 into register 0x0 (#R0).
- The other option around this is have your tokenizer know how many arguments each opcode needs, and just have the reserved/unused parameters be ones we can omit... and it fills in. So just having `PASSFAIL` or just `REGLOD` wouldn't "compile" and must include the required parameters.
I really don't want to type or see this anymore (Only 3 of those 18 args are real):
```
PASSFAIL 0x0 0x0 0x0
ENDTEST 0x0 0x0 0x0
ENDIF 0x0 0x0 0x0
DELMS 0x1 0x0 0x0
REGINC 0x1 0x0 0x0
ENDLOOP 0x0 0x0 0x0
```
Thoughts?
I think I have everything set up that it shouldn't be too difficult. I should be able to add the other functions to the FUNC process but I need to lok into it more. As I was writing it I realized that I could probably add the others just as easily but I didn;t investigate because I wanted to get these new abilities out to people. like deleting a single chip for example. It's coming. I'm also going to be releasing USB codes and the unload and download process for people that want to make their own, IDE or their own uploaders and downloaders. I'll be releasing that stuff soon but right now I am totally out of boards on Amazon and only a couple here so I need to make some. When I get caught up there I'll gather all the info and try to make it nice and understandable for those who are interested. It's not super complicated though.