Spectrum ROM | Routines |
Prev: 05918 | Up: Map |
The address of this routine is found in the parameter table.
This command allows the user to OPEN streams. A channel code must be supplied and it must be 'K', 'k', 'S', 's', 'P', or 'p'.
Note that no attempt is made to give streams +00 to +03 their initial data.
|
|||||||
OPEN | 05942 | RST 40 | Use the calculator to exchange the stream number and the channel code. | ||||
05943 | DEFB 1 | exchange | |||||
05944 | DEFB 56 | end_calc | |||||
05945 | CALL STR_DATA | Fetch the data for the stream. | |||||
05948 | LD A,B | Jump forward if both bytes of the data are zero, i.e. the stream was in a closed state. | |||||
05949 | OR C | ||||||
05950 | JR Z,OPEN_1 | ||||||
05952 | EX DE,HL | Save HL. | |||||
05953 | LD HL,(23631) | Fetch CHANS - the base address of the channel information and find the code of the channel associated with the stream being OPENed. | |||||
05956 | ADD HL,BC | ||||||
05957 | INC HL | ||||||
05958 | INC HL | ||||||
05959 | INC HL | ||||||
05960 | LD A,(HL) | ||||||
05961 | EX DE,HL | Return HL. | |||||
05962 | CP "K" | The code fetched from the channel information area must be 'K', 'S' or 'P'; give an error if it is not. | |||||
05964 | JR Z,OPEN_1 | ||||||
05966 | CP "S" | ||||||
05968 | JR Z,OPEN_1 | ||||||
05970 | CP "P" | ||||||
05972 | JR NZ,REPORT_O_2 | ||||||
OPEN_1 | 05974 | CALL OPEN_2 | Collect the appropriate data in DE. | ||||
05977 | LD (HL),E | Enter the data into the two bytes in the stream information area. | |||||
05978 | INC HL | ||||||
05979 | LD (HL),D | ||||||
05980 | RET | Finally return. |
Prev: 05918 | Up: Map |