Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $0000/$0001 - M0 - address pointer
- $0002/$0003 - M2 - metastack (values are pushed/pulled here like in the stack) ($05??-$051F)?
- $0004/$0005 - M4 - address offset
- signifies the top of the metastack???
- $0006/$0007 - M6 - command queue
- $0008/$0009 - M8 - 1st math register
- $000C/$000D - MC - 2nd math register
- 00 (0) - transfer metastack values #$17/#$18 from bottom to M8 (#$E8 #$FF)
- 01 (0) - transfer metastack values #$15/#$16 from bottom to M8 (#$EA #$FF)
- 02 (0) - transfer metastack values #$13/#$14 from bottom to M8 (#$EC #$FF)
- 03 (0) - transfer metastack values #$11/#$12 from bottom to M8 (#$EE #$FF)
- 04 (0) - transfer metastack values #$0F/#$10 from bottom to M8 (#$F0 #$FF)
- 05 (0) - transfer metastack values #$0D/#$0E from bottom to M8 (#$F2 #$FF)
- 06 (0) - transfer metastack values #$0B/#$0C from bottom to M8 (#$F4 #$FF)
- 07 (0) - transfer metastack values #$09/#$0A from bottom to M8 (#$F6 #$FF)
- 08 (0) - transfer metastack values #$07/#$08 from bottom to M8 (#$F8 #$FF)
- 09 (0) - transfer metastack values #$05/#$06 from bottom to M8 (#$FA #$FF)
- 0A (0) - transfer metastack values #$03/#$04 from bottom to M8 (#$FC #$FF)
- 0B (0) - transfer metastack values #$01/#$02 from bottom to M8 (#$FE #$FF)
- 0C (0) - transfer values 0B/0C (11/12) past metastack to M8
- 0D (0) - transfer values 0D/0E (13/14) past metastack to M8
- 0E (0) - transfer values 0F/10 (15/16) past metastack to M8
- 0F (0) - transfer values 11/12 (17/18) past metastack to M8
- 10 (0) - transfer metastack values #$17/#$18 from bottom to MC (#$E8 #$FF)
- 11 (0) - transfer metastack values #$15/#$16 from bottom to MC (#$EA #$FF)
- 12 (0) - transfer metastack values #$13/#$14 from bottom to MC (#$EC #$FF)
- 13 (0) - transfer metastack values #$11/#$12 from bottom to MC (#$EE #$FF)
- 14 (0) - transfer metastack values #$0F/#$10 from bottom to MC (#$F0 #$FF)
- 15 (0) - transfer metastack values #$0D/#$0E from bottom to MC (#$F2 #$FF)
- 16 (0) - transfer metastack values #$0B/#$0C from bottom to MC (#$F4 #$FF)
- 17 (0) - transfer metastack values #$09/#$0A from bottom to MC (#$F6 #$FF)
- 18 (0) - transfer metastack values #$07/#$08 from bottom to MC (#$F8 #$FF)
- 19 (0) - transfer metastack values #$05/#$06 from bottom to MC (#$FA #$FF)
- 1A (0) - transfer metastack values #$03/#$04 from bottom to MC (#$FC #$FF)
- 1B (0) - transfer metastack values #$01/#$02 from bottom to MC (#$FE #$FF)
- 1C (0) - transfer values 0B/0C (11/12) past metastack to MC
- 1D (0) - transfer values 0D/0E (13/14) past metastack to MC
- 1E (0) - transfer values 0F/10 (15/16) past metastack to MC
- 1F (0) - transfer values 11/12 (17/18) past metastack to MC
- 2A (0) - store M8 to metastack values 03/04
- 2B (0) - store M8 to metastack values 01/02
- 3B (0) - push metastack values 01/02 to metastack
- 3C (0) - push preloaded values 0B/0C to metastack
- 3D (0) - push preloaded values 0D/0E to metastack
- 4X (0) - stores the value of X to $0008 ($0009=#$00)
- 5X (0) - stores the value of X to $000C ($000D=#$00)
- 6X (0) - push X to the metastack as a 2-byte value (value, #$00)
- 7X (0) - adds the value of X to $0008
- 81 (1) - advance M4 by value, transfer contents of augmented address ($00),0 to M8 and ($00),1 to M9
- 85 (1) - store 2-byte value of M8 to specified (2) metastack locations
- 89 (1) - store the next value to M8 ($0009=#$00)
- 8A (2) - stores the next 2 values to M8
- 8B (1) - stores the next value to MC ($000D=#$00)
- 8C (2) - stores the next 2 values to MC
- 8D (1) - push next value (1 byte) to metastack as a 2-byte value
- 8E (2) - push the next 2 values to the metastack
- 8F (1) - add the next value to M8
- 90 (2) - add the next 2 values to M8
- A0 (2) - advance M4 by next 2 values, transfer contents of augmented address (1-byte) to $0008 ($0009=#$00)
- A2 (2) - advance M4 by next 2 values, transfer contents of $0008 (1-byte) to augmented address.
- A3 (2) - push specific metastack byte as 2-byte value to metastack
- A4 (2) - store 2-byte contents of specified address (plus 0, plus 1) to M8
- A5 (2) - store 1-byte contents of specified address to $0008 ($0009=#$00)
- A6 (2) - store 2-byte contents of specified address (plus 0, plus 1) to MC
- A7 (2) - store 1-byte contents of specified address to $000C ($000D=#$00)
- A8 (2) - store 2-byte contents of M8 to specified address (plus 0, plus 1)
- A9 (2) - store 1-byte contents of $0008 to specified address
- AA (2) - push 2-byte contents of specified address (plus 0, plus 1) to metastack
- AC (2) - push current queue position to metastack & jump to specified address
- AE (1) - empty a # of values from the metastack equal to the specified value
- B0 (0) - replace M8 with the 2-byte address at the address it contains (plus 0, plus 1)
- B1 (0) - pull 2 metastack values, then store 2-byte value of M8 to that address
- B3 (0) - pushes M8 to metastack
- B4 (0) - pulls 2 values from metastack to MC
- B5 (0) - multiply the contents of M8 by the contents of MC (2-byte)
- B8 (0) - divide M8 by MC
- BB (0) - Add MC to M8
- BC (0) - subtract MC from M8
- BD (0) - perform a number of left shifts to M8 equal to MC
- BE (0) - perform a number of right shifts to M8 equal to MC
- C0 (0) - checks if M8 = MC
- C1 (0) - checks if M8 != MC
- C2 (0) - checks if M8 < MC (signed)
- C3 (0) - checks if M8 ≤ MC (signed)
- C4 (0) - checks if M8 > MC (signed)
- C5 (0) - checks if M8 ≥ MC (signed)
- C6 (0) - checks if M8 < MC (unsigned)
- C7 (0) - checks if M8 ≤ MC (unsigned)
- C8 (0) - checks if M8 > MC (unsigned)
- C9 (0) - checks if M8 ≥ MC (unsigned)
- CA (0) - checks if M8 = MC = 0
- CB (0) - take the negative of M8 (signed)
- CD (0) - swaps the contents of M8 and MC
- CF (0) - transfer values #$00-#$07 from ahead of the metastack to $0000-$0007
- inc M0, then JMP ($0000)
- D0 (0) - increments M8
- D1 (0) - decrements M8
- D2 (0) - doubles M8 (left shift)
- D3 (0) - replace M8 with the value specified at the address it contains ($0009=#$00)
- D4 (0) - Pull 2 metastack values, store $0008 to address specified
- D5 (x) - Adds the first 2 values to M8. Values 3 & 4 indicate the # of redirect addresses that
- follow. The first address is the "else" address if M8 ≥ values 3 & 4. The addresses
- after that correspond to the value of M8 beginning with #$00.
- D6 (2) - skips to the address specified in the next 2 values
- D7 (2) - skips to the address specified in the next 2 values if comparison was true
- D8 (2) - skips to the address specified in the next 2 values if comparison was false
- D9 (x) - First two values are the number of loops to run.
- Checks if the next two values are equal to M8. If they don't, advance M6 by 4.
- If the values match, rewrite M6 to address following the matching value.
- If the loop counter runs out, rewrite M6 to whatever address follows.
- DA (0) - ANDs the contents of M8 with those of MC
- DB (0) - ORAs the contents of M8 with those of MC
- DC (0) - EORs the contents of M8 with those of MC
- DE (2) - stores address of specified meta value to M8
- E9 (3) - runs subfunction specified in next 2 values & pulls a # of metastack bytes equal to 3rd value
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement