![]() |
Routines |
| Prev: 30885 | Up: Map | Next: 30975 |
|
Used by the routine at InglishMatchOneWord.
Copies byte 0 and byte 1 from the other clause record into this clause. When bit 7 of the grammar flag is set, the name bytes are copied too.
|
||||
| Inglish_CopyTwoBytesFromTheOtherClause | 30903 | EXX | Switch to the saved registers for this phrase. | |
| 30904 | LD A,(IX+1) | Read byte 1 of the other clause record. | ||
| 30907 | AND 127 | OR it, with bit 7 clear, into the clause byte at offset 1. | ||
| 30909 | OR (IY+1) | |||
| 30912 | LD (IY+1),A | Update the clause byte at offset 1. | ||
| 30915 | LD A,(IX+0) | Read byte 0 of the other clause record. | ||
| 30918 | LD (IY+0),A | Update the clause byte at offset 0. | ||
| 30921 | EXX | Switch to the saved registers for this phrase. | ||
| 30922 | LD A,(IY+28) | Read byte +28 from IY. | ||
| 30925 | OR (IY+29) | Return if bytes 28 and 29 are both zero. | ||
| 30928 | RET Z | |||
| 30929 | BIT 7,E | Return if bit 7 of the grammar flag is clear. | ||
| 30931 | RET Z | |||
| 30932 | EXX | Switch to the saved registers for this phrase. | ||
| 30933 | PUSH IY | Step the pointer on by 18 bytes. | ||
| 30935 | POP HL | |||
| 30936 | LD DE,18 | |||
| 30939 | ADD HL,DE | |||
| 30940 | PUSH HL | Step the copy source back 10 bytes. | ||
| 30941 | LD DE,65526 | |||
| 30944 | ADD HL,DE | Add 65526 to the token pointer. | ||
| 30945 | POP DE | Copy the prepared bytes. | ||
| 30946 | LD BC,6 | |||
| 30949 | LDIR | |||
| 30951 | LD DE,4 | The copy starts 4 bytes into the clause. | ||
|
This entry point is used by the routine at InglishMatchOneWord.
|
||||
| Inglish_CopyTwoBytesFromTheOtherClause_0 | 30954 | CALL Inglish_CopyWithACountOfTen | Call Inglish_CopyWithACountOfTen to copy the ten grammar bytes. | |
| 30957 | LD A,(IY+2) | Read the clause byte at offset 2. | ||
| 30960 | OR (IY+3) | Call Inglish_CopyWithACountOfTwo to copy two clause bytes when the next clause byte is zero. | ||
| 30963 | LD DE,2 | |||
| 30966 | CALL Z,Inglish_CopyWithACountOfTwo | |||
| 30969 | EXX | Switch to the saved registers for this phrase. | ||
| 30970 | RET | Return. | ||
| 30971 | LD C,6 | Copy 6 bytes of the clause. | ||
| 30973 | JR Inglish_CopyWithACountOfTwo_PointAtTheClause | Jump to Inglish_CopyWithACountOfTwo_PointAtTheClause to copy them. | ||
|
View the equivalent code in;
|
||||
| Prev: 30885 | Up: Map | Next: 30975 |