![]() |
Routines |
| Prev: 78A5 | Up: Map | Next: 78FF |
|
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 | 78B7 | EXX | Switch to the saved registers for this phrase. | |
| 78B8 | LD A,(IX+$01) | Read byte 1 of the other clause record. | ||
| 78BB | AND $7F | OR it, with bit 7 clear, into the clause byte at offset 1. | ||
| 78BD | OR (IY+$01) | |||
| 78C0 | LD (IY+$01),A | Update the clause byte at offset 1. | ||
| 78C3 | LD A,(IX+$00) | Read byte 0 of the other clause record. | ||
| 78C6 | LD (IY+$00),A | Update the clause byte at offset 0. | ||
| 78C9 | EXX | Switch to the saved registers for this phrase. | ||
| 78CA | LD A,(IY+$1C) | Read byte +1C from IY. | ||
| 78CD | OR (IY+$1D) | Return if bytes 1C and 1D are both zero. | ||
| 78D0 | RET Z | |||
| 78D1 | BIT 7,E | Return if bit 7 of the grammar flag is clear. | ||
| 78D3 | RET Z | |||
| 78D4 | EXX | Switch to the saved registers for this phrase. | ||
| 78D5 | PUSH IY | Step the pointer on by 12 bytes. | ||
| 78D7 | POP HL | |||
| 78D8 | LD DE,$0012 | |||
| 78DB | ADD HL,DE | |||
| 78DC | PUSH HL | Step the copy source back 0A bytes. | ||
| 78DD | LD DE,$FFF6 | |||
| 78E0 | ADD HL,DE | Add FFF6 to the token pointer. | ||
| 78E1 | POP DE | Copy the prepared bytes. | ||
| 78E2 | LD BC,$0006 | |||
| 78E5 | LDIR | |||
| 78E7 | LD DE,$0004 | The copy starts 04 bytes into the clause. | ||
|
This entry point is used by the routine at InglishMatchOneWord.
|
||||
| Inglish_CopyTwoBytesFromTheOtherClause_0 | 78EA | CALL Inglish_CopyWithACountOfTen | Call Inglish_CopyWithACountOfTen to copy the ten grammar bytes. | |
| 78ED | LD A,(IY+$02) | Read the clause byte at offset 2. | ||
| 78F0 | OR (IY+$03) | Call Inglish_CopyWithACountOfTwo to copy two clause bytes when the next clause byte is zero. | ||
| 78F3 | LD DE,$0002 | |||
| 78F6 | CALL Z,Inglish_CopyWithACountOfTwo | |||
| 78F9 | EXX | Switch to the saved registers for this phrase. | ||
| 78FA | RET | Return. | ||
| 78FB | LD C,$06 | Copy 06 bytes of the clause. | ||
| 78FD | JR Inglish_CopyWithACountOfTwo_PointAtTheClause | Jump to Inglish_CopyWithACountOfTwo_PointAtTheClause to copy them. | ||
|
View the equivalent code in;
|
||||
| Prev: 78A5 | Up: Map | Next: 78FF |