
APPENDIX
BENCHMARK: Block Translate
PROCESSOR: zao
;Register usage
AAccumulator
BC Count
DE ASCII Buffer
DE' EBCDIC Buffer
HL Accumulator
SP Translate table pointer
Bytes Cycles
3 | 10 | LD |
| DE' ,EBCBUF | ;Load | EBCDIC | pointer |
| ||
1 | 4 | EXX |
| BC, | COUNT | ;Store | pointer | in DE' |
| |
3 | 10 | LD |
| ;COUNT | = 1~5 |
|
|
| ||
3 | 10 | LD |
| DE, | ASCIBUF | ;Load, | ASCII | pointer |
| |
3 | 10 | LD |
| SP, | XTBL | ;Load | translate | table | pointer | |
| 4 LP: | EXX |
|
|
| ;Restore EBCDIC | pointer | |||
~ | 7 | LDD |
| A,(DE') | ; Load | EBCDIC | character | |||
1 | 4 | EXX |
|
|
| ;Restore pointers |
| |||
~ | 7 | LD |
| H,O |
| ;C1ear | H |
|
|
|
1 | 4 | LD |
| L,A |
| ;Load | character | into | A | |
1 | 11 | ADD |
| HL,SP | ;Address of | ASCII character | ||||
~ | 16 | LDI |
| (DE), (HL) | ;Move | ASCII | character |
| ||
3 | 10 | JP |
| PO,LD | ;Jump | if not | done |
| ||
|
| ~6 | bytes | of | code |
|
|
|
|
|
|
| 13 | lines | of | code |
|
|
|
|
|
16 | AFN.()1664A |