bells and whistles
ZXNet echo conference «code.zx»
From 812/17.09 → To Aleksandr Majorov 12 January 1998
11-01-98 at 03:18 Aleksandr Majorov wrote to Sergej Pou-
gachev on the topic of "bells and whistles".
Hello, Alexander!
AM> everything is elementary!
AM> by command CAT/LIST Tyr-dos reads the 8th sector
AM> into a buffer for analysis. before these it saves
AM> return address on the stack, which is "completely random"
AM> is located not far from the buffer...
Nonsense. The stack has nothing to do with it. Startup occurs during practice
virtually any value of the stack. So as not to engage in verbiage
I provide an extract containing an explanation of this launch method
disk.
"... 1. Any operation to view or change information
disk mation entails preliminary reading of the 8th sec.
tora.
2. If the 8th sector is formatted, say, 512
bytes, then these 512 bytes are regularly counted into memory independently
from the fact that a buffer of only 256 bytes was released.
3. The buffer is reserved from address #5d25. 257 bytes
not only the area of BASIC is shifting, but also the area of information
tion about channels, located in front of the BASIC area. ..."
[in my opinion on 256]
Well, accordingly, the data of the 8th sector is formed in such a way that
addresses of print procedures contained in the area of change channels
We contacted the launch address of our program from the 8th sector. Afterreading tyr-dos will try to print something and thus
we will launch the program.
I once did this myself, so it’s been tested
practice.
AM> Everything else is simple...
As you can see, it's not like that...
P.S. I re-read it before posting and decided to add:
For example, we need the percent to jump to the ADDR address, then
The 8th sector should be formed like this...
Structure of the 8th sector:
DS 256 ;What you put here is your business.
DW ADDR ;address to go to
DW ADDR ;repeat 10-15 times to be sure
DW ADDR; who knows what procedure
DW ADDR ;he's impatient to call
.....
DS XXX ;XXX depends on the sector length and may
;contain any information.
Best regards, Aleksandr
With best wishes, Ruiner.
-+- Shoo-Edit v6.06
From 812/00.00 → To Oleg Grigoriev 12 January 1998
12-01-98 at 03:34 Oleg Grigoriev wrote to Aleksandr Majorov
on the topic of "bells and whistles".
Hello Oleg!
[...]
AM>> by command CAT/LIST Tyr-dos reads the 8th sector
AM>> into a buffer for analysis. before these it saves
AM>> return address on the stack, which is "completely random"
AM>> is located not far from the buffer...
OG> Nonsense. The stack has nothing to do with it. The launch occurs during practical operation.
[..]
OG> would be the addresses of the print procedures contained in the area of the change channels
OG> came to the launch address of our program from the 8th sector. After
OG> reading tyr-dos will try to print something and thus sa-
[...]
Print you say?
How do you explain that commands are intercepted?
LOAD, RUN, SAVE, which don’t seem to print anything?
[....]
OG> Structure of the 8th sector:
OG> DS 256 ;What you put here is your business.
OG> DW ADDR ;address to go to
OG> DW ADDR ;repeat 10-15 times for reliability
OG> DW ADDR ;who knows what procedure OG> DW ADDR ;he will be impatient to call
tell me, do you always write programs like this?
knows where the process will go...
After all, programming is... hmm... an exact science ;-)))
percent works the same, and the interception address is the same...
OG> With best wishes, Ruiner.
Best regards, Aleksandr
PS. this information was thrown into .zx by someone a long time ago,
everything was explained...
-+- handles [left and right]
From 812/17.09 → To Aleksandr Majorov 13 January 1998
12-01-98 at 18:47:46 Aleksandr Majorov wrote to Oleg Gri-
goriev on the topic of "bells and whistles".
Hello, Aleksandr!
AM> Print you say?
Stack you say? Enter BASIC, set the stack to 60000 and give in
tyr-dose some command. It won’t hit the stack and, based on
your words, nothing will start. _At your place_.
AM> How do you explain that commands are intercepted
AM> LOAD, RUN, SAVE, which do not seem to print anything?
What does "Disk error" mean?
I just don’t remember how the tyr-board will react if it’s 231 bytes
(number of sectors per track) will be #10. On the other hand
On the other hand, I have never seen this situation on purpose
beat. And check the break yourself.
[skipped]
AM> tell me, do you always write programs like this?
No, I think first and then write.
AM> ...write LD HL,12345, repeat 10...15 times, who is it
I repeated exactly 10 (this was a year and a half ago, so
maybe not 10;) ) times and everything worked perfectly, with Mednonogov
in the CV it is repeated 14 times, so this number is not critical.
AM> knows where the interest will go...
Of course, this is exactly how it should be written.
For example, I set the stack in my programs as follows:
way:
LD A,R
LD L,A
HALT
LD A,R
AND #3FADD A,#40
LD H,A
LDSP,HL
This, you know, greatly promotes the production of adrenaline in the body.
ganism.
AM> finally programming is... hmm... an exact science ;-)))
That's exactly what hmm...;-) Exact science is physics, and prog-
Framing isn't even a science ;)
AM> the processor works the same, and the interception address is the same...
Theoretically yes, but in practice it’s better to play it safe. :)
AM> Best regards, Aleksandr
AM>
AM> PS. this information was thrown into .zx by someone a long time ago
AM> everything was explained...
I've been online since mid-October, but I don't read .zx regularly. You
I'd rather try it myself. ;)
With best wishes, Ruiner.
-+- Shoo-Edit v6.06
From 812/17.09 → To Ivan Mak 16 January 1998
14-01-98 at 08:38:08 Ivan Mak wrote to Aleksandr Majorov
on the topic of "bells and whistles".
Hello Ivan!
AM>> Print you say?
AM>> How do you explain that commands are intercepted
AM>> LOAD, RUN, SAVE, which don’t seem to print anything?
IM> In the channel information there are addresses of input routines. My guess
Mas tricked me and I decided to thoroughly clarify for myself
this situation. As it turned out, everything is very simple. Start address
channel areas with active buffer tr-dos #5e27 and not #5e25.
Accordingly, the address should be located at this address
(if only my literature teacher could hear me :) ) transition. Sa-
The address of the output subroutine is stored first in the channel area.
yes to the service screen. Namely, this is where tr-dos tries to print
"Disk error". Still, Mas was right about something - one thing is enough
of the transition address.
IM> these can also be used. TR-DOS will check the keystrokes in these
tr-dos itself checks keystrokes very rarely, IMHO
only in the case of "Retry, Abort, Ignore?".
IM> commands to catch BREAK, for example.
The tyr-dos breakpoint catches directly, not through channels, but by calling
procedure #1f54 of the main ROM.
IM> Although, perhaps I’m wrong.Anything can happen... Maybe I'm wrong about something...
IM> ░▒▓██ Sincerely, Ivan. ██▓▒░
With best wishes, Ruiner.
-+- Shoot-Edit v6.06