Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision |
| sd:isa [2026/04/23 05:40] – appledog | sd:isa [2026/04/23 06:30] (current) – appledog |
|---|
| | 99 | [[#uab|UAB]] | UAB | Unpack AL into low 4 bytes of AL and low 4 bytes of BL | | | | 99 | [[#uab|UAB]] | UAB | Unpack AL into low 4 bytes of AL and low 4 bytes of BL | | |
| |
| | <wrap #skpc /> |
| | **''SKPC ELM, AL''**\\ Skips characters starting at ELM until the character in AL is //not// found. It finishes with ELM pointing to the first non-matching character. Most of the time this is used to skip spaces: ''SKPC ELM, $20 ; skip spaces, ELM points after last space.'' |
| |
| <wrap #pab /> | <wrap #pab /> |
| <code>#153 $99 PAB | **''#153 $99 PAB''**\\ Pack the low 4 bits of AL and BL into AL. This is useful for BCD and 4bpp video mode. |
| Pack the low 4 bits of AL and BL into AL. This is useful for BCD and 4bpp video mode. | <code> |
| Start: [ AL ][ BL ] | Start: [ AL ][ BL ] |
| [....llll][....hhhh] | [....llll][....hhhh] |
| <wrap #uab /> | <wrap #uab /> |
| **''#153 $99 UAB''** | **''#153 $99 UAB''** |
| <code>#153 $99 UAB | |
| Unpack the 8 bits in AL into AL and BL and zeroes the four high bits of AL and BL. | Unpack the 8 bits in AL into AL and BL and zeroes the four high bits of AL and BL. |
| This is useful for BCD and 4bpp video mode. | This is useful for BCD and 4bpp video mode. |
| |
| | <code> |
| Start: [ AL ][ BL ] | Start: [ AL ][ BL ] |
| [hhhhllll][........] | [hhhhllll][........] |
| **''#201 $C9 CASEB base, selector, limit''**\\ switch-case-on-byte. Index an address from the table at ''base'' and jump to it. Checks each selector byte/word/etc. Checks a maximum of ''limit'' number of records. Will fall-through if not found. Table format: [selector][addr][selector][addr][selector][addr]... | **''#201 $C9 CASEB base, selector, limit''**\\ switch-case-on-byte. Index an address from the table at ''base'' and jump to it. Checks each selector byte/word/etc. Checks a maximum of ''limit'' number of records. Will fall-through if not found. Table format: [selector][addr][selector][addr][selector][addr]... |
| |
| <codeprism lang=C highlight: [0]> | |
| int main(void) { | |
| return 0; | |
| } | |
| </codeprism> | |