Errata
by Alone Coder
Inferno Guide #5
1. Article about the Hrust1 format:
"%00#%01: #dispH=#fd##fe, dispL in the bitstream" # there is a typo
(must be in a BYTE stream).
For C=3 extension HET! (It is written that there is.)
Description of links like %011xxxxx # where xxxxx, there almost everywhere
errors.
Correct version of documentation for Hrum, Hrust1 and MegaLZ formats
lies in the mhmt by Lord Vader program package.
Info Guide #10
1. There is a typo in the LVD article: 2^(55#1) instead of (2^55#1).
2. Number of colors y Sega Megadrive # 61 on the screen (since
each palette 0#th color # transparent; 15*4+back).
3. My phone is outdated # now 8(960)5718620.
4. The article about scrolling on ATM describes the behavior of counters
should be read like this:
+64 occurs when CROW 1#>0, that is:
or in textmode when moving from line 7 to line 0,
or when switching textmode#>graphics at address A5=0,
or atswitching graph#>textmod at address A5=1 and line
0..3
+8 occurs on the screen at the end of a 64#pixel block regardless
depending on the mode (in graphmode the counters +8 and +64 are connected: +8 at 111#>000
increments +64)
A3..A5 reset occurs when RCOL 1#>0, that is:
or in textmode when going to the boardYur,
or on the board when switching graphics#>textmod
Here's the discussion:
Screw (19:55:05 5/09/2009)
3. If on the border you switched from graph#
physical mode to text mode, then MMMMMMM++.
Screw (19:55:20 5/09/2009)
i.e. can this be done at least 10 times per scanline?
Alone (19:55:40 5/09/2009)probably
Screw (19:55:50 5/09/2009)
and how did you do it?
Alone (20:03:16 5/09/2009)
there I have 9 procedures that generate 0..8 such impulses
Alone (20:03:23 5/09/2009)
it means you can
Alone (20:03:25 5/09/2009)
and need
Screw (20:03:32 5/09/2009)
impulse once per scanline or how will it work out?
Alone (20:03:46 5/09/2009)
out (c),d:out (c),e:...
Screw (20:11:50 5/09/2009)
Do you have EGA or Hardware multicolor pictures?
(I understand that it’s crazy, for the test I would like both)
Alone (20:11:59 5/09/2009)
E.G.A.
Screw (20:17:02 5/09/2009)
But is it important that it is on the border?
Screw (20:17:07 5/09/2009)
not everythingdoes it matter when
Alone (20:18:03 5/09/2009)
there are still some signals, in which something else
is happening
Screw (20:18:49 5/09/2009)
why in the demo, you write, the top 8 lines of the screen failed
use ? Or switching starts to work only when
Has the main screen started drawing?
Screw (20:19:10 5/09/2009)
Can't you install counters on the upper border?
Alone (20:20:36 5/09/2009)
because there no 64 clicks
Alone (20:20:40 5/09/2009)
but you need no 8
Alone (20:20:59 5/09/2009)
it's written there
Alone (20:21:07 5/09/2009)
CROW signal (add 64 to address) yn#
controlled via multiplexer D64 (no sig#
nalu RG2). Thus, at moments of time,
when V2<>B6, you can click on any address,
divisible by64. And to click any
an address divisible by 8 must be donated
the top 8 lines of the main screen (behind #
paint them black): initially turn on tech#
START mode, and turn it off at 0..7#th
line.
Screw (20:24:33 5/09/2009)
Any address divisible by 64 is also divisible by 8 (this is
to the issue of rigor of presentation). But actually no problem #
in points 1#3 I don’t see how you can add 8 to the counter.
Only 40 or 64
Screw (20:24:59 5/09/2009)
i.e. whence it follows that one must “sacrifice
the top 8 lines of the main screen (behind #
paint them black): initially turn on tech#
START mode, and turn it off at 0..7#th
line"
Alone (20:25:07 5/09/2009)
you don't add 8. you stand still 0..7 lines
Alone (20:25:15 5/09/2009)
+40 does not occur at this time
Alone (20:25:41 5/09/2009)and if you immediately turned on EGA, then you would have an address that is a multiple of 64
Screw (20:28:27 5/09/2009)
if I had turned on EGA right away, I would have had address 0000 inside
video pages. On the upper border, +40 does not happen either. What
prevents you from clicking +64 before the interrupt arrives? That is, everything is the same
It’s not clear why you need to click on the top lines
textmodes. You can only click +64 on your dock. But this
obviously not so. How do other offsets click?
Alone (20:28:40 5/09/2009)
it's obvious
Screw (20:28:44 5/09/2009)
*what prevents you from clicking +64 before the START OF THE SCREEN (and not the arrival
interrupts)
Alone (20:28:47 5/09/2009)
+40 on the board You can't do it
Screw (20:30:32 5/09/2009)
wow, already something. +40 can only be done on the screen. And for this
we xepum 8 scanlines so that in their time you can click the desired number
+40. So ?
Alone (20:30:39 5/09/2009)
yesScrew (20:30:59 5/09/2009)
in your document we have:
2. If the graphics mode is turned on, then
I'm waiting for the line MMMMMMMLLLLLL+=40.
Alone (20:31:21 5/09/2009)
in a certain strobe
Screw (20:32:16 5/09/2009)
where do the rest of the required +40 come from? You only wrote about +64.
Each switch from text to graphic gives them maybe?
Alone (20:32:55 5/09/2009)
one more time. you first dial the +64 address, then to it
add 0..7*+40
Alone (20:33:05 5/09/2009)
you get an arbitrary address divisible by 8
Alone (20:33:15 5/09/2009)
Is this obvious or does it need to be proven?
Screw (20:33:23 5/09/2009)
it's obvious
Screw (20:35:44 5/09/2009)
i.e. On textmode we turn up the scrolling by 0#7 scanlines.
Scrolling, a multiple of 8 scanlines (the highest part), is wound onborder, because 8 scanlines # is an offset of 8*40=320, which
is obviously divisible by 64.
Alone (20:36:27 5/09/2009)
yeah
Screw (20:36:50 5/09/2009)
That's it, now everything is completely clear :) thank you :)
Screw (20:37:51 5/09/2009)
True, switching video modes on the fly cannot be done right away. That is
so that half of the screen is EGA, and the other half is #sinclair,
for example. The ATM in the anryle is screwed onto the spec very poorly and crookedly.
Screw (20:37:54 5/09/2009)
but there will be scrolling
Alone (20:38:20 5/09/2009)
and half EGA, half multicolor?
Alone (20:38:28 5/09/2009)
or half sinclair, half 16c
Screw (20:38:30 5/09/2009)
it won’t either (and it doesn’t now)
Screw (20:38:49 5/09/2009)
all non-spec screens are rendered entirely
Screw (20:39:00 5/09/2009)
todo it out of your mind, you need to throw everything out and write normally
Screw (21:05:00 5/09/2009)
and doubling the strings will work
Screw (21:09:35 5/09/2009)
and if you switch like this:
ega#>sinclair#>textmode, what will happen to the counters?
Screw (21:09:56 5/09/2009)
is it the same as switching ega#>textmode or not?
Alone (21:11:20 5/09/2009)
uh... important RG2
Alone (21:11:33 5/09/2009)
and although RGO too...
Screw (21:11:47 5/09/2009)
After all, no one forbids you to switch through Sinclair. What about
will this happen?
Alone (21:11:51 5/09/2009)
when switching to sinclair, cuhxpa seems to go astray
Alone (21:11:57 5/09/2009)
as far as I remember
Alone (21:12:01 5/09/2009)
so it's better not to do thisScrew (21:12:04 5/09/2009)
i.e. Shouldn't we even consider this option?
Alone (21:12:06 5/09/2009)
yes
Screw (21:24:38 5/09/2009)
Let's consider a scanline passing through the screen.
Spectrum has 64 clock cycles between the border and the screen. ATM has 32 clock cycles.
Right ?
Alone (21:25:00 5/09/2009)
didn't understand
Screw (21:25:37 5/09/2009)
Well, the scanline is 224 clock cycles or 448 pixels.
(448#320)/2 == 32 cycles
(448#256)/2 == bChtakt
Alone (21:26:20 5/09/2009)
you don't take into account the cancellation
Alone (21:26:37 5/09/2009)
but it may be different, you need to look at the HL8 firmware
Screw (21:27:08 5/09/2009)
For emulation it is not very important (yet, at least). We will
assume that it is executed in 0 clock cycles.
Screw(22:45:32 5/09/2009)
scrolling works, but with jambs
Screw (22:46:02 5/09/2009)
Apparently, the +64 addition worked. Because the picture
moves jerkily
Screw (22:46:11 5/09/2009)
and the cat with myxomopom is displaced
Screw (22:46:28 5/09/2009)
no, both cats are displaced
Screw (22:47:16 5/09/2009)
both above and below the picture are drawn by ramho in the form of vertical
dash
Screw (23:36:45 5/09/2009)
At what speed does your first cat come out?
Screw (23:36:55 5/09/2009)
1 pix/frame or slower?
Alone (23:37:04 5/09/2009)
faster
Alone (23:37:07 5/09/2009)
there with acceleration
Screw (23:44:15 5/09/2009)
New Frame Begin
0#>6 6 23
6#>0 6 35
0#>6 6 47
6#>0 6 59
0#>6 7 23
6#>0 7 35
0#>6 7 47
6#>0 7 59
0#>6 7 71
6#>0 7 83
0#>6 7 95
6#>0 7 107
0#>6 7 119
6#>0 7 131
0#>6 7 143
6#>0 7 155
0#>6 7 167
6#>0 7 179
0#>6 7 191
6#>0 7 203
0#>6 33 186
6#>2 62 177
2#>0 64 8
Screw (23:45:01 5/09/2009)
Why is there a switch from line 62 to line 64?
textmode to hardware multicolor, and from it to EGA?
Screw (23:45:53 5/09/2009)
0#EGA
2# HW Multicolor
6#Textmode
The first digit is # old mode, the second # new. Third # current
scanline. Fourth #offset in measures from the beginning of the scanline
Alone (23:46:34 5/09/2009)
then the top familiar place is blackened with attributes
Alone (23:46:40 5/09/2009)
it's 2 times faster
Screw (23:47:53 5/09/2009)
yeah, okay
Screw (23:48:17 5/09/2009)
that’s why I have mistakes, I haven’t remade the HW multicolor yet,current EGA
Screw (23:56:05 5/09/2009)
Once you switched from text mode to graph mode on 62 lines, then
should scroll only +64 (ten times)
Screw (23:56:19 5/09/2009)
more precisely even 11
Alone (23:56:36 5/09/2009)
It's more likely that you counted the bars incorrectly
Screw (23:56:51 5/09/2009)
sri.t watching
Screw (23:57:06 5/09/2009)
const int tScanlineWidth = 224;
const int tScreenWidth = 320/2;
const int tEachBorderWidth =(tScanlineWidth#tScreenWidth)/2;
const int iLinesAboveBorder = 64;
int iRayLine = sri.t / tScanlineWidth;
int iRayOffset = sri.t % tScanlineWidth;
Alone (23:57:12 5/09/2009)
Main screen (in EGA, Multico# modes
lor, Text) starts on line 56# after
INT.
Screw(00:01:22 6/09/2009)
exactly
Screw (00:03:29 09/06/2009)
ahh, now that's cool!
Screw (00:03:35 6/09/2009)
rocks gently
Screw (00:05:27 09/06/2009)
listen, and you also wrote that if you switch to
textmod, then there will be no address increment and you can duplicate
line. So ?
If during the retracement of the horizon#
line scan (except for line transitions
number 8x+7 to line number 8x+8) include
text mode (up to HR), and then turn off
(after HR), you can duplicate the graphic
line. That is, do scaling no ver#
ticked or waves.
Screw (00:05:41 09/06/2009)
but we’ll have to switch back, and we’ll catch the increment by
64!!!!
Alone (00:05:47 09/06/2009)
probablyAlone (00:05:58 6/09/2009)
I don't remember which board
Alone (00:06:02 09/06/2009)
maybe only on the top
Alone (00:06:28 6/09/2009)
he's special # the counter doesn't tick on him
Alone (00:06:39 09/06/2009)
+8 which
Alone (00:06:47 09/06/2009)
+64 ticks everywhere
Screw (00:07:18 6/09/2009)
yeah, since +64 ticks everywhere # that’s why it turns out 1C0
in textmode.
Screw (00:08:07 09/06/2009)
yes, clearly #1C0 is 7 text lines, or 56 graphic lines
Screw (00:09:54 6/09/2009)
and what happens if you switch from textmode not on the border,
and on the screen itself # maybe then there will be no increment?
Alone (00:10:14 09/06/2009)
haven't tried it
Screw (00:12:456/09/2009)
painlessly you can only do an increment of 320, skipping 5
lines.
Alone (00:13:22 09/06/2009)
By the way, you can try to make a horizontal scroll no 4
dating places
Alone (00:13:29 09/06/2009)
I’ll give you a picture now, I made it for myself
Screw (01:18:13 09/06/2009)
you switch textmode #> graph mode occurs on the first
frame 11 times
Screw (01:18:32 09/06/2009)
because of this, the frame turns out to be shifted
Screw (01:18:41 6/09/2009)
what don't I know yet?
Alone (01:18:52 6/09/2009)
only one frame?
Screw (01:18:58 6/09/2009)
no, that's it
Screw (01:19:05 6/09/2009)
I gave the first frame as an example
Alone (01:19:13 09/06/2009)show me
Screw (01:19:20 6/09/2009)
everything is shifted so that the picture appears from left to right
Screw (01:19:26 6/09/2009)
I'll send you the emulsion now
Screw (01:19:29 6/09/2009)
37.3
Screw (01:21:05 6/09/2009)
accept
Screw (01:22:15 6/09/2009)
11 times is clearly wrong. There should be no 64 increments
quantity that is a multiple of 5. Either one is needed for some reason
skip.
Alone (01:22:30 6/09/2009)
why a multiple of 5?
Alone (01:23:00 6/09/2009)
we no 40 dial only 8 options
Alone (01:24:41 6/09/2009)
inside 320 there are 64 options: 0, 8, 16,... 312
Alone (01:24:55 6/09/2009)
and we only have 8 lines +40Screw (01:25:48 6/09/2009)
so what? we can scroll no 8 pixels by adding 5x64.
And we add the lowest pixels 1#7, if necessary, on the upper lines
textmodes.
Alone (01:26:40 6/09/2009)
one more time. address y us consists of 10 bits
Alone (01:26:48 6/09/2009)
and 3 leading zeros
Alone (01:27:08 6/09/2009)
We type 3 bits on the text screen with absences +40
Alone (01:27:16 6/09/2009)
We type 7 bits on the board
Alone (01:27:21 6/09/2009)
taking into account those 3
Alone (01:28:24 6/09/2009)
no +64 y we have 128 different combinations
Alone (01:28:31 6/09/2009)
no +40 y we have 8 of them
Alone (01:28:58 6/09/2009)
"The number of increments no 64 must be a multiple of 5" # this
nonsense, nonsense and misunderstanding of the essence of the problemScrew (01:29:50 6/09/2009)
We type 7 bits on the border in fivefold uhkpemehtamu.
Increasing these 7 bits by one means scrolling by 8
pixels. Scrolling by 8 pixels # this is an addition of 320
to the address. Add 320 to the address # this is a fivefold increment
by 64.
Alone (01:30:16 6/09/2009)
on the border we dial 7 bits honest uhkpemehtamu
Alone (01:30:30 6/09/2009)
if you are interested in clicking 1280 times, then click
Alone (01:30:34 6/09/2009)
if you can do it in 56 lines
Screw (01:31:10 6/09/2009)
What is this new term, honest increment? we are typing uhkpemehtamu
no 64. Switching from graphic mode to text mode.
Alone (01:31:34 6/09/2009)
we dial uhkpemehtamu no 64, not no 5*64
Screw (01:32:06 6/09/2009)
There is no point in doing, for example, 2 increments of 64. And next
frame 3 increments. The picture will move horizontally.
Screw (01:32:22 6/09/2009)
thereforeincrements no 64 should be five times
Screw (01:32:29 09/06/2009)
to get a multiple of 40#ka quantity
Alone (01:32:37 6/09/2009)
3 increments not on the next frame, but when the full cycle has passed
scroll
Alone (01:32:55 6/09/2009)
8192 is not divisible by 40
Screw (01:33:04 6/09/2009)
THIS IS SO CLEAR
Screw (01:33:16 6/09/2009)
and my arguments are confirmed by the picture in the enrile
Screw (01:33:27 6/09/2009)
it is correct, only shifted to 64#40
Alone (01:33:28 6/09/2009)
in reality everything works
Screw (01:37:39 6/09/2009)
once again, let's forget for now about bpannuhre abroad 0x2000. Top
You draw pictures no multiple of 40#ka edges. And you do it on the first
frame 11 switches from graphic mode to text mode. If
believe your document # 11*64 lines will be added. And this is nothing
not a multiple of 40#ka.What we observe in the emulsion that I tell you
sent.
Alone (01:38:06 6/09/2009)
where did you get the idea that the graphics are from the beginning of the screen?
Screw (01:38:52 6/09/2009)
I see this in the untrained emulsion. The top of the cat is not displaced anywhere. A
that means it is drawn to a multiple of 40# and the address
Screw (01:40:29 6/09/2009)
This means that one hardware switch is ignored. Most likely
last. It remains to figure out why.
Alone (01:40:55 6/09/2009)
the top of the cat in the first frame is somewhere at the bottom of the screen
[that is, at the beginning of the sweep, the address is, roughly speaking, negative:
#n*40 = 8192#n*40, which, of course, is not divisible by 40.]
Screw (01:41:09 09/06/2009)
yeah, a little above the middle
Screw (01:42:03 6/09/2009)
Now I’ll look at the clock cycles in which switching occurs.
There must be a solution there.
Screw (01:43:48 6/09/2009)
New Frame Begin
0#>6 6 26
6#>0 6 38
0#>6 6 50
6#>0 6 62
0#>6 7 26
6#>0 7 38
0#>6 7 50
6#>0 7 62
0#>6 7 74
6#>0 7 86
0#>6 7 98
6#>0 7 110
0#>6 7 122
6#>0 7 134
0#>6 7 146
6#>0 7 158
0#>6 7 170
6#>0 7 182
0#>6 7 194
6#>0 7 206
0#>6 33 189 6#>2 62 180
2#>0 SKIPPED!
Screw (01:43:54 09/06/2009)
here, clearly 11 switches
Screw (01:45:59 09/06/2009)
hey, second frame # 16 switches
Screw (01:46:49 6/09/2009)
3rd frame 21 switches
Alone (01:49:37 6/09/2009)
you forgot about +64 at the beginning of the first text line
Screw (01:49:59 6/09/2009)
hmm...
Screw (01:50:03 6/09/2009)
good idea
Screw (01:50:51 6/09/2009)
I'll think about it now...
Screw (01:52:26 6/09/2009)
I haven't forgotten, but you gave me an idea
Screw (01:54:11 6/09/2009)
there are no ticks written there, in that dump
Screw (01:54:206/09/2009)
third number # line (scanline)
Screw (01:54:28 6/09/2009)
fourth # measures from the beginning of the scanline
Screw (01:54:54 6/09/2009)
clearly, by the way, no 12 bars (outs)
Screw (01:55:05 6/09/2009)
The only thing I don’t understand is the pause here:
Screw (01:55:05 6/09/2009)
6#>0 6 62
0#>6 7 26
Alone (01:55:31 6/09/2009)
0#>6 33 189
6#>2 62 180
Screw (01:55:33 09/06/2009)
188 bars between aytamu, not 12
Alone (01:55:41 6/09/2009)
between these there should have been a whopping +64
Screw (01:56:40 6/09/2009)
Only switching to the same video mode and between
speco#modes and ATM
Screw(01:56:55 6/09/2009)
Yes, and it would not come out correctly if the pack of aytob
continued to play
Alone (01:57:01 6/09/2009)
count: 40, 48, 56 lines
Screw (01:57:01 6/09/2009)
and it comes out like in real life
Alone (01:57:13 6/09/2009)
this is +192
Alone (01:58:20 6/09/2009)
there must be one more increment
Alone (01:58:29 6/09/2009)
where is he
Screw (01:59:23 6/09/2009)
Can you convert the video into a text file? I'll look at the code
Alone (02:02:22 6/09/2009)
Uploading file: CATDEMO.asm
Size: 28.3 Kb
Screw (02:02:39 6/09/2009)
thank you
Screw (02:02:40 6/09/2009)
I'll take a look nowScrew (02:12:09 6/09/2009)
what are V2 and B6?
Alone (02:12:16 6/09/2009)
signals on the diagram
Screw (02:12:43 6/09/2009)
this is understandable :) Well, but still? what do they mean
Alone (02:12:56 6/09/2009)
I don’t remember, but I lost the diagram
Alone (02:17:07 6/09/2009)
your anril won't start
Screw (02:18:09 6/09/2009)
this is 37.3 that dessoft collected
Screw (02:18:20 6/09/2009)
compiled in exactly the same way by the Intel compiler
Alone (02:18:41 6/09/2009)
children's fan to collect under the percentage, which is only his one
Alone (02:19:22 6/09/2009)
well, at least give me a screenshot
Screw (02:20:56 6/09/2009)
catch
Screw (02:21:396/09/2009)
the teeth in the screenshot are due to the fact that I am still HW multicolor
I didn't. Garbage in a vertical line # I don’t know why, but I think that
trivially fixed.
Alone (02:21:58 6/09/2009)
multicolor there is only max. 8 lines
Alone (02:22:02 6/09/2009)
and you have more
Alone (02:22:24 6/09/2009)
and there's some shit on the mushroom
Screw (02:24:05 6/09/2009)
I already wrote about garbage. Because I do the bpannuhra account alone
times in the loop, and SMT within each iteration of the loop no several
pixels selects. Crappy optimizer.
Screw (02:25:17 6/09/2009)
yes, the height of the teeth # is clearly a bug
Alone (02:26:23 6/09/2009)
about the shift # perhaps you took into account the shift on line 56, but did not take it into account
shift by 40 and 48, plus took into account the shift when switching
text#>multicolor, which should not exist
Screw (02:30:05 6/09/2009)
I took into account all the shifts that I printed.Shifts at
switching text#>graphics, according to your document, does not occur.
Only from graphics to text.
Screw (02:30:25 6/09/2009)
we need to figure out why the teeth are already 11 pixels
Alone (02:30:29 6/09/2009)
y me it is not written, but on which front
Screw (02:30:36 6/09/2009)
3. If on the border you switched from the game
physical mode to text mode, then MMMMMMM++.
Alone (02:31:00 6/09/2009)
then explain it
LD BC,#4177 ;open ports
LD DE,#A2A8 =MULTICOLOR mode=%10100010 (noturbo)
;E=EGA mode=%10101000 (turbo)
OUT (C),D ;include HE in the border field!!!
;for some reason the location on the screen also affects:
;right edge definitely works # him and Use
Screw (02:30:49 6/09/2009)
Well, I don’t know, the front was clearly indicated in the dock
Screw (02:31:21 6/09/2009)
why is HE in the border field?Alone (02:31:39 6/09/2009)
apparently because it will be +64 on the board
Screw (02:32:22 6/09/2009)
This means that you can duplicate lines if you switch them not in
border
Screw (02:32:32 6/09/2009)
on the other hand, this is what you have in your mind:
Screw (02:32:38 6/09/2009)
LD DE,#64 ;correction for turning on TEXTMODE after ver. correction
;and to skip 8 lines of the main raster. screen
Screw (02:33:48 6/09/2009)
By the way, I'm looking at my code in anrile # I made the switch no
front textmod#>graphics.
Alone (02:42:32 6/09/2009)
it’s still not clear where the other one is +64
Alone (02:42:45 6/09/2009)
11 pulses plus three familiar places
Alone (02:42:55 6/09/2009)
this is 14
Alone (02:42:59 6/09/2009)
it should be 15Alone (02:44:32 6/09/2009)
show all screen switchings
Alone (02:44:59 6/09/2009)
in the sense when the values change
Screw (02:47:44 6/09/2009)
sent it for the first frame. I can for several frames
send (1,2,3)
Alone (02:48:10 6/09/2009)
you said that there is only between EGA/multicolor and text
Alone (02:48:30 6/09/2009)
well, give me some more shots
Alone (02:49:14 6/09/2009)
oh where were you 3 years ago
Alone (02:49:19 6/09/2009)
I would remember everything and explain
Screw (02:49:51 6/09/2009)
Never mind, let’s figure it out and document it in the anryl code
Screw (02:49:52 6/09/2009)
I'll send it off now
Screw (02:54:18 6/09/2009)
here is the first frame
Screw (02:54:19 6/09/2009)
New Frame Begin
0#>6 6 24
6#>0 6 36
0#>6 6 48
6#>0 6 60
0#>6 7 24
6#>0 7 36
0#>6 7 48
6#>0 7 60
0#>6 7 72
6#>0 7 84
0#>6 7 96
6#>0 7 108
0#>6 7 120
6#>0 7 132
0#>6 7 144
6#>0 7 156
0#>6 7 168
6#>0 7 180 0#>6 7 192
6#>0 7 204
0#>6 33 187
6#>2 62 178
2#>0 SKIPPED!
Screw (02:55:09 6/09/2009)
here's the second one
New Frame Begin
0#>6 6 26
6#>0 6 38
0#>6 6 50
6#>0 6 62
0#>6 6 74
6#>0 6 86
0#>6 6 98
6#>0 6 110
0#>6 6 122
6#>0 6 134
0#>6 6 146
6#>0 6 1580#>6 6 170
6#>0 6 182
0#>6 7 26
6#>0 7 38
0#>6 7 50
6#>0 7 62
0#>6 7 74
6#>0 7 86
0#>6 7 98
6#>0 7 110
0#>6 7 122
6#>0 7 134
0#>6 7 146
6#>0 7 158
0#>6 7 170
6#>0 7 182
0#>6 7 194
6#>0 7 206
0#>6 33 189
6#>2 62 180 2#>0 SKIPPED!
Screw (02:55:24 6/09/2009)
третий
New Frame Begin
0#>6 5 26
6#>0 5 38
0#>6 5 50
6#>0 5 62
0#>6 5 74
6#>0 5 86
0#>6 5 98
6#>0 5 110
0#>6 6 26
6#>0 6 38
0#>6 6 50
6#>0 6 62
0#>6 6 74
6#>0 6 86
0#>6 6 98
6#>0 6 1100#>6 6 122
6#>0 6 134
0#>6 6 146
6#>0 6 158
0#>6 6 170
6#>0 6 182
0#>6 6 194
6#>0 6 206
0#>6 7 26
6#>0 7 38
0#>6 7 50
6#>0 7 62
0#>6 7 74
6#>0 7 86
0#>6 7 98
6#>0 7 110
0#>6 7 122
6#>0 7 134
0#>6 7 146
6#>0 7 158 0#>6 7 170
6#>0 7 182
0#>6 7 194
6#>0 7 206
0#>6 33 189
6#>2 63 180
2#>0 SKIPPED!
Alone (02:55:34 6/09/2009)
I was thinking, but there is no such thing as +40
Screw (02:55:38 6/09/2009)
fourth
New Frame Begin
0#>6 5 23
6#>0 5 35
0#>6 5 47
6#>0 5 59
0#>6 5 71
6#>0 5 83
0#>6 5 95
6#>0 5 107
0#>6 6 23
6#>0 6 35
0#>6 6 47
6#>0 6 59
0#>6 6 71
6#>0 6 83
0#>6 6 95
6#>0 6 107
0#>6 6 119
6#>0 6 131
0#>6 6 143
6#>0 6 155
0#>6 6 167
6#>0 6 179
0#>6 6 191
6#>0 6 203
0#>6 7 23
6#>0 7 35
0#>6 7 47
6#>0 7 59
0#>6 7 71 6#>0 7 83
0#>6 7 95
6#>0 7 107
0#>6 7 119
6#>0 7 131
0#>6 7 143
6#>0 7 155
0#>6 7 167
6#>0 7 179
0#>6 7 191
6#>0 7 203
0#>6 33 186
6#>2 57 177
2#>0 SKIPPED!
Alone (02:55:57 6/09/2009)
there is +8 at the end of the line where the text is #> multicolor
Alone (02:56:19 6/09/2009)
or at the beginning of the next one, which is the same
Alone (02:57:31 6/09/2009)
total 13*64+8 = 840Alone (02:57:55 6/09/2009)
if +64 no text#>EGA/multicolor, and not vice versa
Screw (02:58:45 6/09/2009)
y me now +64 just when the text#>EGA/multicolor.
Screw (02:58:51 6/09/2009)
i.e. opposite from your doki
Alone (02:59:15 6/09/2009)
is there +8?
Alone (02:59:58 6/09/2009)
you need to do this: (draw 64 px, +8)*5
Alone (03:00:23 6/09/2009)
the address depends on the moment the multicolor is turned on
Screw (03:03:42 6/09/2009)
How exactly does the address depend on the moment the multicolor is turned on?
Alone (03:04:03 6/09/2009)
if we clicked 32 ticks earlier, it would be +8+8
Screw (03:04:46 6/09/2009)
that's why you write that it only works at the end of the line?
Alone (03:04:53 6/09/2009)
yes
Screw (03:05:42 6/09/2009)maybe you can download the diagram from the maxagor website?
Screw (03:06:01 6/09/2009)
to make sure of these +8
Alone (03:06:10 6/09/2009)
you can’t be sure of +8 in the diagram
Alone (03:06:19 6/09/2009)
HL8 # is PLM
Screw (03:07:42 6/09/2009)
let's see the example of katdemy. If you're right # then after
switching to multicolor and switching back again for sure
same way. In theory we'll get another +8
Screw (03:08:28 6/09/2009)
was:
textmod#>multicolor; +8
multicolor#>ega ; +0
Alone (03:08:58 6/09/2009)
+8 at the end of the 64#pixel block, not at the switch
Screw (03:10:29 6/09/2009)
i.e. +8 is done 5 times on the scanline when drawing
multicolor/EGA ?
Alone (03:10:35 6/09/2009)yes
Alone (03:10:43 6/09/2009)
this is not the address of the beginning of the line
Alone (03:10:45 6/09/2009)
this is the CURRENT address
Alone (03:11:10 6/09/2009)
in textmode instead of 3 ml. address bit The clock generator is used
Alone (03:11:28 6/09/2009)
and in the snack box
Alone (03:11:48 6/09/2009)
meaning A3..A5
Alone (03:11:58 6/09/2009)
A0..A2 # is always the clock generator
Screw (03:15:58 6/09/2009)
Then we get that by switching from text mode to graph. mode
after border scans we get an increase of so much +8,
how many 64#pixel blocks are left to draw?
Alone (03:16:17 6/09/2009)
not right away
Screw (03:16:31 6/09/2009)
Well, we’re not interested right away, it’s just figsit will be covered up
Screw (03:16:55 6/09/2009)
Yes, and in the emulator I do offset for the line. Offset inside the line
doesn't change anymore.
Alone (03:17:12 6/09/2009)
but in reality it can
Screw (03:17:16 6/09/2009)
yeah
Screw (03:17:31 6/09/2009)
Let's leave the theoretical benefits of this aside for now
Screw (03:17:37 6/09/2009)
count offset per line
Screw (03:17:50 6/09/2009)
let's take a dump and figure out what offset we'll get in the end
Screw (03:18:16 6/09/2009)
first frame
Screw (03:18:18 6/09/2009)
look at the number of switches 6#>0 to the beginning of the screen
Alone (03:18:43 6/09/2009)
you can make a narrow EGA screen with lines every 32 bytes instead
40
Screw (03:19:44 6/09/2009)There are exactly 10 pieces before the start of the screen. That is shift by +640 or by 16
lines
Alone (03:21:01 6/09/2009)
640+64+64+64+8=840
Screw (03:23:43 6/09/2009)
on the screen switching occurs at 178 measures from the beginning
scanlines. This gives us another +64 at the moment of switching. 178
ticks # are 4 fully rendered pixel blocks. So,
there will be another +8 before the end of the scanline. This is the 62nd scanline
ends. When passing the 63rd scanline we get another +64.
Screw (03:23:48 6/09/2009)
where else +64?
Alone (03:24:05 6/09/2009)
beginning of lines 40, 48 and 56
Alone (03:24:32 6/09/2009)
There is no +64 at the moment of switching, because it's on the screen
Screw (03:24:56 6/09/2009)
and when passing no 63#th scanline it will be +64
Alone (03:25:00 6/09/2009)
there won't be
Alone (03:25:03 6/09/2009)we have multicolor
Screw (03:25:11 6/09/2009)
yes, it will be +40, that's right
Alone (03:25:18 6/09/2009)
and +40 will not be
Alone (03:25:23 6/09/2009)
y us everything is no +8
Screw (03:25:32 6/09/2009)
well 5*+8
Screw (03:26:29 6/09/2009)
yeah, that's why you switched to text mode at 33 scanlines to
hook 40, 48 and 56
Screw (03:27:17 6/09/2009)
now more #less converges
Screw (03:28:00 6/09/2009)
look what we get # it’s possible to duplicate lines, although it’s a pain
Screw (03:29:28 6/09/2009)
the idea was this (to the question of how to get out of text mode
to the graphics so as not to cheat +64) # go to the graphics at the moment
drawing the first pixels
Screw (03:29:47 6/09/2009)This is just nonsense, because the graphics address has already been screwed up five times
Screw (03:30:00 6/09/2009)
o, what if you switch to text mode at the border of a block of 64 pixels?
Screw (03:30:11 6/09/2009)
and then back again
Screw (03:30:21 6/09/2009)
Is it possible to duplicate the already drawn 64 pixels?
Alone (03:30:31 6/09/2009)
it will work out
Screw (03:30:40 6/09/2009)
consider it like pouring through the stack
Alone (03:30:51 6/09/2009)
it just won’t work “right there”
Alone (03:31:05 6/09/2009)
because there are 12 bars
Alone (03:31:22 6/09/2009)
shit is visible at this time
Alone (03:32:06 6/09/2009)
but you can probably make the row addresses not after 40, but after
40+64
Alone (03:32:16 6/09/2009)
and thenthere will be a replay at the bottom of the screen
Screw (03:32:31 6/09/2009)
possible in 40+320
Screw (03:33:14 6/09/2009)
then you can choose the lines. Alone in one frame, alone in another
# others. And shifting can be removed, for example, by extinguishing the palette
at 0
Alone (03:33:48 6/09/2009)
shifting can be removed by adjusting the number +8 or +64
Screw (03:34:29 6/09/2009)
+8 You can’t adjust it in any way, except for the text mode on the screen. So,
it will look like shit.
Alone (03:35:20 6/09/2009)
you can make several black lines in the middle of the screen and even
text box
Screw (03:35:49 6/09/2009)
ok, now I’ll make some coffee and try the +8 option
Alone (03:36:15 6/09/2009)
but I'm not sure that +64 will work on the side curb
Screw (03:36:33 6/09/2009)
must be checked
Screw (03:36:496/09/2009)
I'll borrow what we have for now. And then you will need to check
Alone (03:37:00 6/09/2009)
with black lines or text insert you can play with +40
Screw (03:37:12 6/09/2009)
but at least katdem should go with the current theory
rendering
Alone (03:37:15 6/09/2009)
and then make sure there is an even repeat below
Alone (03:37:44 6/09/2009)
in general, if you just make a frame grid, then the shift is 64 pixels
don't care
Alone (03:49:41 6/09/2009)
can be repeated with a different palette
Screw (03:51:06 6/09/2009)
Yes, you can even use the same one, it will still be cool
Share your thoughts about the article