˙˙00˙ ˙00˙01˙03˙01Reaching for Zero˙00 ˙ ˙ ˙03˙02COUNT DRAGONSBANE / ONE ˙02˙01˙01˙00˙˙01 I wish to thank Puh / Agony, without whom this article would have been impossible to carry out. A "friend" of mine recently bought a PC. As you understand, he is no longer a freind of mine, but anyway, he bought a PC. He called me up and said, ˙02"Hey, Countie, Intel Inside! Now I can play Doom at home. And guess what, all the packers and archieve makers are just sooo efficient. ARJ, for example, gives the best results I have ever seen!"˙01 I checked it out, and guess what, Arj WAS better than our OneWay from 1986 (we started early, you know, and until I saw the latest version of Arj, I have not seen a better packer)! To say the very least, I got upset. Actually, I wasted my Canon BJ-200ex, even though I really like(d) it, but that comes with the job. Hell NO, no PC USA-influated packer son-of-a-bitch would come and overpower the Swedish masters just like that, NO WAY! I sat down in front of One'n'One (One's special edition version of Asm'One, man, you should see its features. There is, among other things, a line of command which allows you to play ProTracker (and clones) modules with a player of 212 bytes!) in order to to hot up OneWay a little. OneWay 1.0 ((c) 1986 One) was based upon a fairly simple algoritm. ˙02X-»0 if all X comes in twos replace XXXX with 4X If 12345, then say 1. 2. equals lineup from 2 to five from five to nine, 5. is the one .9 equals line up from 9 to 1 ˙01Still, it gave extremely good results. I used a 856 K long text file ("DirectoryOpus 5.0 - the Manual") and packed it with a few tools... ˙02 Dopus.txt 856000 bytes Dopus.Arc 612324 bytes Dopus.pp 562341 bytes Dopus.zoo 512313 bytes Dopus.CrM 500235 bytes Dopus.zip 497213 bytes Dopus.lha 432124 bytes Dopus.One 312435 bytes Dopus.Arj 301234 bytes ˙01OneWay was good, but no longer the best! Accordingly, it was not good at all, and I had no use for it. I had to do a new version. I tried several ways... ˙02main: increase bytelength by two if even substract with 2 if odd unit both move result to buffer change places with odd and even add buff.icon proceed in ram ˙01Not fast enough... But hey, a speed-up routine! ˙02Speed: x+(xsinAns)-»IncBin Round Up (IncBin(Ans), store unit-»vars Sx RegEq (sinX) ; (x) ; store Ans - Sx " x " in A Move A ram ; Dim (x) ; Crow Y Define Y as (x)sin Ans + A(cosx)Ans Move Y to X Add Xmin must not exceed Ymax; or else mode hunk off If Hunk size > Ymax then A < Ans then hunk on ˙01Hmmm... That should do it! Lets try it, I thought. ˙02 Dopus5.txt 856000 bytes Doups5.one 304562 bytes Dopus5.Arj 302213 bytes ˙01FUCK! Fuck! No splinar packer can go below mine, I realized that. Fuck! I bought two six packs of malt beer and drank myself to bed. When I woke up, I was not even close to sober, but what the hell, I thought, if Van Gogh could, then why can't I? When did that maniac die, by the way, I wondered? 200 yrs? 250? BANG! There it was! Why had I not got that idea before? A PACKER THAT WORKS RETROPERSPECTIVELY!!! I had to recode the whole routine from scratch, but what I did was that I let the packer work three four times the same part! (numbers above four are too high due to machine algoritms). Now, I won't give away the code, but this is what it does... ˙021.˙01 It moves the file to Ram:, or if not given enough of free space, it works on Dh1:, or if not given enough space there either, it simply works in the ROM circuits. (A bit slow, but...) ˙022.˙01 It splits the file into smaller files of 112 K. A file of 500 K is accordingly split into 5 files. ˙023.˙01 Internal multitasking allows all files to be packed simoultaneously with the efficiency of that of Arj (I finally found out how he did). That's where the resemblance ends. It checks out what it is about to pack, and then it packs accordingly. I have inserted a PICTURE packer, a MUSIC packer, a TEXT packer and even a PACKER packer that carries on the work of previous packers. Thus, every single file gets packed the way it is supposed to pack without you having eighteen different packers, every one specialized on one sphere. Moreover, when you pack a file with subpacker MUSIC, One 2.0 makes the CPU believe that the packed music file is a picture; music turns into an IFF file, IFF file turns into music, text to a packer and packer to text. ˙024.˙01 Checks if ther are all done. If yes, then it goes on. ˙025.˙01 Then it lists the subparts in RAM (or whatever). ˙02 FILE.MUSIC XX K FILE.TEXT XX K FILE.PICTURE XX K FILE.PACKER XX K ˙01 Instead of just joining them together and say that the packing is done and display some fucking percentage text (which is what Arj does) it changes places of the split files. One 2.0, using the CPU data, can pack again. (The music looked like an IFF file to the CPU, remember?) Consequently, it packs all the packed files over again, but as the packed files look like music, text etc., it does not know they're packed, so they can be packed all over again with the same efficiency. That's what I call power! As you surely understand, this procedure takes some time. Sixteen to nineteen hours with 68020, to be exact. I had to speed it up, I realized that; the processor needed MORE electric power! So unless you have 68060, One turns off your sound channels, your printer, your modem and your monitor and uses their power, too. By doing this, One packs 960 K in just two and a half minute. OK, it is not all that system friendly, but what the hell, I thought, lets give it a try to see if it is worth using. I formatted a disk, 880 K blank, that is, and put Oepir Risti issue 1 on it. ˙02 >: cd df0: TestDisk>: dir Graphics (dir) Music (dir) Articles (dir) OepirRisti1.exe 452224 bytes OepirRisti1.info 962 bytes total 125232 bytes free total 756546 bytes used TestDisk>: ˙01 Hmm... 756546 bytes. Wonder what One could do here? ˙02 TestDisk>:c/OneWay2 -a df0:#? d0:OEPIR1.ONE OneWay2.0 Processing files... 68020 detected and used. Realtime clock turned on. One-way chat on. 00:12 10 percent done. Sound channels released. You may use them now. 00:36 32 percent done. Serial port assign released. You may now print. 00:59 62 percent done. Modem connection released. You may now call. 01:35 92 percent done. ROM circuits released. Speeding us CHIPRAM... 02:00 100 percent done. Testing integrity... 02:01 Checking for file-, link-, and root viruses. 02:03 No damaged files encountered. No salvage operation carried out. 02:06 Releasing the H.DISK-, F.DISK- and POWER lamps of the computer. Do not need their power anymore. 02:08 Validating (just to be sure)... 02:30 All done. TestDisk>: ˙01 Now guess if I was curious! ˙02 TestDisk>:dir OEPIR1.ONE 0 bytes total 0 bytes used total 1.442523 M free ˙01 Now how about that? ˙01