Deja Vu #08
31 мая 1999 |
|
CODING - How to create uncopyable whereas sector.
AY-Track: -= 17 INSTANTS OF SPRINGS =__________________________________________ (C) ALLEN / XLNC. __________________________________________ How to create uncopyable whereas sector ............................... First paragraph. Instead of joining ... Many of us frequently encounter such programs that are not in any copy Xia no copiers. And this well, since The authors of these programs have the opportunity to dispose of their product such as this ho tyat they, and not Uncle Vasya barahol ki, who is used to make money with the help of McDonald Copy. Do not think it wrong if I say that in every the city has its own uncle Vasya and even without one. And to the authors raises the question of how would be so tricky to write to disk, what would it no one can copy so even that it can be read. Many authors have spit on this issue and leave everything to chance - maybe a couple of bucks perepadet of lamers who do not even unaware of the existence of Uncle Vasya on flea market. Others are turning to a friend IBM'schikam. Still others are beginning to be subverted on the Speccy, though, everything is still on Speccy done is copied as easily (Remember, there were times when not everyone could copy the IS-DOS). Of all these ways the most appropriate was the second based on uncopyable whereas sectors. But it is associated with drop dead expenditure of time: you can hover to run to IBM'schiku and back home uncopyable whereas with a bunch of disks. Well, when HRC is at home, but it's expensive, and inconvenient. Item Two. Closer to the case. The article is about how you can do uncopyable whereas sector Speccy. To start sort out why it Some sectors are not copied. Yes, because they can not be formatted using standard Speccy. That is, create a title for this sector to the SH then found it and knew where to write data. And that can prevent you create it? Yes, one simple fact: not all bytes are received by the data register the SH during the recording tracks are transferred to disc directly. There are three bayta that can not be written on track the standard means: it # F5, # F6, and # F7. The reason is simple: it's control codes. (By the way, we are talking only about mode MFM. FM mode to use is inappropriate.) Valid they only (!) Mode recording track, ie, format. The first of these causes account code # A1 on disk, which is part of sync, in which SH determines that Next comes the title of the sector or the same data. But we will not go into details. The second of these causes account code # C2 on floppy disk, that is again harmonic registers not what they want from it. But the most useful code - code # F7, because it generally causes Record checksum, which is two bytes, which usually breaks all heading. And of course, this code # F7 on drive itself is not passed. So what happens when the SH is trying to create on the road such sectors. Here's what: instead of parameter (the number of the road, head, sector, length of the sector), which recorded the number # F5, # F6, or # F7, prescribes # A1, # C2 or checksum came bytes that is practically a random number, and double-byte, that is, his record demolishes even the order of numbers, and what comes after # F7, written not in a position where it was actually the title of full destroyed. And as the sector will have no TE parameters, the SH does not write data from uncopyable whereas sector anywhere, that is, if there were clues ksorki, a copy will be at least broken. Of all of the above Private encoder can be concluded that uncopyable whereas a sector on the track Speccy means impossible (at least, this idea runs through all of the text). You can, of course, to distort and make checksum is these three numbers, but, recognizing frankly, I do not know for sure what the algorithm is this checksum. Especially because there is much more simple way ... The third point. But how? Here's how. The numbers listed above, can not be written on the track in all cases except one. I do not know what caused this effect, most likely it is some kind of flaw of the microcontroller program VG93, but us this stuff is even on hand. A case it is this: after writing Checksum, SH somehow writes to drive an absolutely any byte, including the three ruleznyh. If you understand how to make the WG to create a sector number (length) # F7, can stop reading. If you have poorly understand with SH, read and memorize. For a start tell you what is in the sector (or, rather, as his form). # F5, # F5, # F5 # FE CN-cylinder number. Like all the other parameters, this number is only a formality, it does not affect the positioning of the head during formatting, and only recorded on drive, with all the exceptions listed above. HN-head number. Although the range of values this number is only a single bit, the number of Again, you can write any, other than those most three, and again for the second harmonic is indifferent while formatting. SN-sector number. Everything is still the number simply transferred to the track. SL-length sectors. All the same, the number of also postponed. CC-checksum. For the record it should once written in the data register number # F7. 22 bytes # 4E 12 bytes # 00 3 bytes # F5 1 byte # FB These sectors. (Incidentally, at a reasonable question, given some, like this: "And why, when Restoration does not write data immediately, without a team record sector, and during formatting? "reply to know those who still do not understand: if the data will fall all the same ill-fated three bytes can be written bullshit. So, if you wish - you can prescribe, check to see that, once ordered, are already recording sector). So if any of these numbers is replaced by # F7, then this option and the next followed by replacing pseudorandom numbers (Practice shows that they are usually alone the same), and after them we can write _lyuboe_ number ... That is, I do so: if when to submit cylinder number by filing # F7. Then the cylinder number and head (hand) will replace the random numbers. After that, I submit the following # F7, it falls right in the place facilities sector, followed by possible feeding the length of the sector. Attention! There is one fine, but about her below. That program, which rasformatit track in accordance with the table at the end of the program. Addresses are given for DOS v5.03/5.04 di ld hl, # 3d98; Sub-head drags on call dos; zero cylinder. ld hl, # 1feb; Sub-sets of the current hand call dos; well, which is the zero track. ; There is confusion: Zero side is , One of which corresponds to the track number ; One, if you count to 160. ld a, # f4; Filing team record a track with a pause. ld bc, # 1f; call otac; ld hl, tabl; Table sectors discussed below. ld c, # 7f; Data Register VG93. m1 ld b, # 0a; This p / n gives B B D values in the reg. C ld d, # 4e; But in general, creates probelchik. call l20b1; ld b, # 0c; An array indicating Headers ld d, 0; wok sector. call l20b1; ld b, 3; ld d, # f5; call l20b1; ld d, # fe; This p / n produces a single byte value D. call l20af; ld d, (hl); Take the cylinder number from the table call l20af inc hl ld d, (hl); Number of heads call l20af inc hl ld d, (hl); Number sector call l20af inc hl ld d, (hl); length of the sector call l20af ld d, # f7; header checksum. call l20af ld b, # 16; Space number two ld d, # 4e call l20b1 ld b, # 0c; Sinhropromezhutok ld d, 0 call l20b1 ld b, 3; sync, written # A1 ld d, # f5 call l20b1 ld d, # fb; Tag Data call l20af ld a, (hl); Checking volume sector. and 3; As SH programm checks for two cp 0; bits. Incidentally, it is convenient when jr z, k128; length of the sector, non-standard number. cp 1; jr z, k256; cp 2; jr z, k512; k1024; So. Kilobyte sector, trivia, ld b, 0; most importantly, what you read ld d, 0, at the end of applets. call l20b1; ld b, 0; ld d, 0; call l20b1; ld b, 0; ld d, 0; call l20b1; ld b, 0; ld d, 0; call l20b1; jr m5; ; k128 ld b, 128 ld d, 0 call l20b1 jr m5 k256 ld b, 0 ld d, 0 call l20b1 jr m5 k512 ld b, 0 ld d, 0 call l20b1 ld b, 0 ld d, 0 call l20b1 m5 ld d, # f7; counter. sum call l20af ld b, # 32 ld d, # 4e call l20b1 inc hl ld a, (hl) cp # ff; if not the end-repeated. jp nz, m1; ld b, 0, finished the end of the track, ld d, # 4e; call l20b1; jp m, m2; call l20b1; m2 ret; exit applets. l20b1 ld iy, # 20b1 push iy jp # 3d2f l20af ld iy, # 20af push iy jp # 3d2f otac ld iy, # 2a53 push iy jp # 3d2f dos push hl jp # 3d2f tabl db 0,0,1,1 db 0,0,2,1 db 0,0,3,1 db 0,0,4,1 db 0,0,5,1 db 0,0,6,1 db 0,0,7,1 db 0,0,8,1 db 0,0,9,1 db # f7, # f7, 3, # f7 db # ff , The first number - a cylinder And the second - head And the third - the number of sectors, , The fourth - the length. Not necessarily the second (first - - Always # F7) to make the number # F7. I prefer it, but someone more suitable # F6 or # F5. Since the method is described as a method, and not as an example program, which for some reason work, do what you like. And in the end the most important. As long uncopyable whereas the sector is third number in line, and the fourth should be # F7. This Several limits the programmer because If this number is not # F7, then for some reason data field is not. The length of such sector will be equal to KB. If just need to make the sector pomenee, you'll have after formatting it to register it with zeros, otherwise it will be of header only. The reason is that shifting the start of the header data. If this does not guarantee the safety sector, should be him. In short, safer to work with the applets, so as it is written. Although an experienced coder myself sort out my problem was only prompt method of creating uncopyable whereas sector. Attention! On paper there is a sign copyright It means that everyone take advantage of my method of creating uncopyable whereas sectors, was supposed to note this fact in a conspicuous place where the thread in HELP'e in Credits. Since there is another method as it turned out, he used to programmke "Protect", placed in an annex to DEJA VU 7, it is easy to distinguish which one is used: different number of cylinders and hand. So, while working my utilities that they are, respectively, # B2 and # 30. Although, if who wants to, can not specify whose method was used, if he does not respect copyright, and therefore the Spectrum scene. At this point I would like to finish my articles, apologized for the awkwardness presented and taken away for lengthy speeches while. Hopefully, the above need at least someone. I will be glad to answer all questions related to the Speccy. Write to me: 454129 Chelyabinsk, Novorossiysk, house 93, Apt. 14 Mazyrko Boris V. (As ALLEN / XLNC)
Other articles:
Similar articles:
В этот день... 21 November