Spectrum ROM | Routines |
Prev: 05916 | Up: Map |
This subroutine returns in the BC register pair the stream data for a given stream.
|
|||||||
STR_DATA | 05918 | CALL FIND_INT1 | The given stream number is taken off the calculator stack. | ||||
05921 | CP 16 | Give an error if the stream number is greater than +0F. | |||||
05923 | JR C,STR_DATA1 | ||||||
This entry point is used by the routines at OPEN and CAT_ETC.
Report O - Invalid stream.
|
|||||||
REPORT_O_2 | 05925 | RST 8 | Call the error handling routine. | ||||
05926 | DEFB 23 | ||||||
Continue with valid stream numbers.
|
|||||||
STR_DATA1 | 05927 | ADD A,3 | Range now +03 to +12. | ||||
05929 | RLCA | And now +06 to +24. | |||||
05930 | LD HL,23568 | The base address of the stream data area. | |||||
05933 | LD C,A | Move the stream code to the BC register pair. | |||||
05934 | LD B,0 | ||||||
05936 | ADD HL,BC | Index into the data area and fetch the the two data bytes into the BC register pair. | |||||
05937 | LD C,(HL) | ||||||
05938 | INC HL | ||||||
05939 | LD B,(HL) | ||||||
05940 | DEC HL | Make the pointer address the first of the data bytes before returning. | |||||
05941 | RET |
Prev: 05916 | Up: Map |