Streams

ZXNet echo conference «code.zx»

From Aleksandr Majorov To WoWaN Nickolaev 15 August 2001

Hello WoWaN! 14 Aug 01 19:10, WoWaN Nickolaev -> All: WN> How to reassign all SOS speccy threads to your procedures? Intercept the channel? :) #5C10 - #5C35 - addresses of channels associated with streams. Initially, streams from -3 to +3 were written there in the first 14 bytes. 2 bytes per stream, the offset relative to channel area bases. #5C4F/#5C50 - the address of the beginning of the area about channels. A channel consists of at least 5 bytes: the first 2 are output terminals, the second 2 are input terminals, the last one is the letter of the channel code (S/K/P/...) Alexand

From Aleksandr Majorov To WoWaN Nickolaev 18 August 2001

Hello WoWaN! 17 Aug 01 16:39, WoWaN Nickolaev -> Aleksandr Majorov: [skipped] WN>>> And what usually falls on the procedure, if, say, something wants WN>>> display a message? Just text with line end 0dh? AM>> But it seems that not everything is so simple... AM>> If we have an error message, then print "error" AM>> and then call the number printing procedure (TRK), then again AM>> print text, and print number again (SEC) WN> That is. several times? How do you know when the end is? Analyze the output text ;) Although I can give you a simpler method: take over call point #5CC2 (in the original there is RET, and you write there JMP xxxx) and analyze the address! Through #5CC2 TR-DOS calls p/p from the main ROM. You will have the address of the called subsystem on the stack, analyze it. If we call the CLS address (I don’t remember the address... #1F?? or #15??), then we have an error and we will print the error. It means that if it is not CLS, we honestly carry it out, if it is CLS, we take it take control of yourself, clean the stacks and so on and so forth. As a result, you write modules yourself to display error information, etc. You can rummage through the MMD code of any version - I did it everywhere interception #5CC2, otherwise I don’t remember what’s going where ;)Although I have some work somewhere - interception, output through my payments error text, waiting for my replies to Retry/Ignore/Abort and exact return of TR-DOS to continue working. But searching is lazy! ;) Alexand

From Dmitriy Nesmachny To WoWaN Nickolaev 28 August 2001

Hello WoWaN! Friday 24 Aug 2001 01:07:00, WoWaN Nickolaev -> Dmitriy Nesmachny: , AM>>>> last - channel code letter (S/K/P/...) WN>>> And what usually falls on the procedure if, say, trdos WN>>> wants to output to WN>>> screen message? Just text with line ending 0dh? DN>> Just a letter in the accumulator. WN> Agu? The printing procedure to the current thread #0010, of course, is used to call it usually not CALL #0010, but RST #10. When accessing it, the battery must have character output to the stream. Try something like this: LD A,2 CALL #1601 ;OPEN CHANEL "S" LD A,#16 ;PRINT AT 0,0 RST #10 XOR A RST #10 XOR A RST #10 LD A,"*" ;PRINT "*" RST #10 RET You should see “*” printed in the upper left corner. If you will stream number change, you will print to different devices (0.1 - system screen, 2 - screen, 3 - printer), if you change the data, you will print something accordingly other. In short, before writing your own, tinker with the standard ones and master them. Best regards, Dmitriy.