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