home *** CD-ROM | disk | FTP | other *** search
/ Garbo / Garbo.cdr / mac / appl / dissbits.sit / dissbytes.a.bin < prev    next >
MacBinary  |  1989-09-13  |  12.4 KB  |  [TEXT/MACA]

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: MacBinary (archive/macBinary).

ConfidenceProgramDetectionMatch TypeSupport
66% dexvert AMOS Picture Packer (image/amosPicturePacker) ext Supported
1% dexvert Debian floppy split (archive/debianFloppySplit) ext Unsupported
1% dexvert Sound Images sound sample (audio/soundImagesSoundSample) ext Unsupported
1% dexvert DESI-III drawing (image/desiIIIDrawing) ext Unsupported
1% dexvert MS-DOS PMODE extender executable (executable/msdosPMODEExtenderExecutable) ext Unsupported
1% dexvert Alien Trilogytextures (other/alienTrilogyTextures) ext Unsupported
1% dexvert APT cache data (other/aptCacheData) ext Unsupported
1% dexvert CorelTRACE configuration (other/corelTRACEConfiguration) ext Unsupported
1% dexvert Dreamcast Disc (other/dreamcastDisc) ext Unsupported
1% dexvert EST flat binary (other/estFlatBinary) ext Unsupported
1% dexvert Finale Enigma Binary Format (other/finaleEnigmaBinaryFormat) ext Unsupported
1% dexvert Sega Genesis/Megadrive/32x ROM (other/genesisROM) ext Unsupported
1% dexvert Myth: The Fallen Lords game archive (other/mythTheFallenLordsGameArchive) ext Unsupported
1% dexvert Sound Images Sound Driver (other/soundImagesSoundDriver) ext Unsupported
1% dexvert Symantec/Norton Config (other/symantecNortonConfig) ext Unsupported
1% dexvert Vectrex ROM (other/vectrexROM) ext Unsupported
1% dexvert BIS raP encoded format (other/bisraPEncoded) ext Unsupported
1% dexvert Pascal Script binary (other/pascalScriptBinary) ext Unsupported
1% dexvert 7th Level game data archive (other/seventhLevelGameDataArchive) ext Unsupported
1% dexvert MacBinary (archive/macBinary) fallback Supported
1% dexvert Binary Text (image/binaryText) fallback Supported
1% dexvert Text File (text/txt) fallback Supported
100% file MacBinary, Tue Aug 7 15:01:31 1984, modified Sat Jun 1 16:41:51 1985, creator MacWrite, type ASCII, 12526 bytes "dissbytes.a" default (weak)
99% file data default
74% TrID Macintosh plain text (MacBinary) default
25% TrID MacBinary 1 default (weak)
100% lsar MacBinary default
100% gt2 MAC Bilddatei default (weak)


id metadata
keyvalue
macFileType[TEXT]
macFileCreator[MACA]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 0b 64 69 73 73 62 79 | 74 65 73 2e 61 00 00 00 |..dissby|tes.a...|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 4d 41 43 | 41 00 00 00 00 00 00 00 |.TEXTMAC|A.......|
|00000050| 00 00 00 00 00 30 ee 00 | 00 00 00 97 9c 3a 0b 99 |.....0..|.....:..|
|00000060| 25 30 8f 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |%0......|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000080| 3b 0d 3b 20 20 70 72 6f | 63 65 64 75 72 65 20 64 |;.; pro|cedure d|
|00000090| 69 73 73 42 79 74 65 73 | 20 28 73 72 63 42 69 74 |issBytes| (srcBit|
|000000a0| 73 2c 20 64 73 74 42 69 | 74 73 3a 20 62 69 74 4d |s, dstBi|ts: bitM|
|000000b0| 61 70 29 3b 20 65 78 74 | 65 72 6e 61 6c 3b 0d 3b |ap); ext|ernal;.;|
|000000c0| 0d 3b 20 6d 69 6b 65 20 | 6d 6f 72 74 6f 6e 0d 3b |.; mike |morton.;|
|000000d0| 20 72 65 6c 65 61 73 65 | 3a 20 31 34 20 66 65 62 | release|: 14 feb|
|000000e0| 72 75 61 72 79 20 31 39 | 38 35 09 20 20 20 20 20 |ruary 19|85. |
|000000f0| 20 20 20 28 68 61 70 70 | 79 20 62 69 72 74 68 64 | (happ|y birthd|
|00000100| 61 79 2c 20 63 68 75 63 | 6b 21 29 0d 3b 0d 3b 20 |ay, chuc|k!).;.; |
|00000110| 76 65 72 73 69 6f 6e 20 | 6f 6e 65 2e 20 20 73 6f |version |one. so|
|00000120| 6d 65 77 68 61 74 20 74 | 65 73 74 65 64 2c 20 62 |mewhat t|ested, b|
|00000130| 75 74 20 6e 6f 74 20 69 | 6e 20 61 20 77 69 64 65 |ut not i|n a wide|
|00000140| 20 76 61 72 69 65 74 79 | 20 6f 66 20 70 72 6f 67 | variety| of prog|
|00000150| 72 61 6d 73 2e 0d 3b 0d | 3b 20 2a 2a 2a 2a 2a 2a |rams..;.|; ******|
|00000160| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000170| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000180| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000190| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000001a0| 2a 2a 2a 2a 2a 2a 2a 2a | 0d 3b 20 2a 09 09 09 09 |********|.; *....|
|000001b0| 09 09 09 09 09 20 20 20 | 20 20 20 20 2a 0d 3b 20 |..... | *.; |
|000001c0| 2a 09 09 20 20 20 20 20 | 20 20 63 6f 70 79 72 69 |*.. | copyri|
|000001d0| 67 68 74 20 31 39 38 35 | 20 62 79 20 6d 69 63 68 |ght 1985| by mich|
|000001e0| 61 65 6c 20 73 2e 20 6d | 6f 72 74 6f 6e 09 09 20 |ael s. m|orton.. |
|000001f0| 20 20 20 20 20 20 2a 0d | 3b 20 2a 20 20 20 20 70 | *.|; * p|
|00000200| 6c 65 61 73 65 20 73 65 | 65 20 64 65 74 61 69 6c |lease se|e detail|
|00000210| 73 20 62 65 6c 6f 77 20 | 6f 6e 20 75 73 69 6e 67 |s below |on using|
|00000220| 2c 20 63 6f 70 79 69 6e | 67 20 61 6e 64 20 63 68 |, copyin|g and ch|
|00000230| 61 6e 67 69 6e 67 20 74 | 68 69 73 20 73 6f 75 72 |anging t|his sour|
|00000240| 63 65 2e 20 20 20 20 2a | 0d 3b 20 2a 09 09 09 09 |ce. *|.; *....|
|00000250| 09 09 09 09 09 20 20 20 | 20 20 20 20 2a 0d 3b 20 |..... | *.; |
|00000260| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000270| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000280| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000290| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000002a0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 0d 3b |********|******.;|
|000002b0| 0d 3b 0d 3b 20 61 62 6f | 75 74 20 64 69 73 73 42 |.;.; abo|ut dissB|
|000002c0| 79 74 65 73 3a 0d 3b 20 | 2d 2d 2d 2d 2d 2d 2d 2d |ytes:.; |--------|
|000002d0| 2d 2d 2d 2d 2d 2d 2d 0d | 3b 0d 3b 20 64 69 73 73 |-------.|;.; diss|
|000002e0| 42 79 74 65 73 20 63 6f | 70 69 65 73 20 6f 6e 65 |Bytes co|pies one|
|000002f0| 20 77 68 6f 6c 65 20 62 | 69 74 4d 61 70 20 74 6f | whole b|itMap to|
|00000300| 20 61 6e 6f 74 68 65 72 | 2c 20 6d 6f 76 69 6e 67 | another|, moving|
|00000310| 20 62 79 74 65 73 20 69 | 6e 20 61 20 70 73 65 75 | bytes i|n a pseu|
|00000320| 64 6f 2d 72 61 6e 64 6f | 6d 20 6f 72 64 65 72 2e |do-rando|m order.|
|00000330| 20 20 69 74 73 20 66 75 | 6e 63 74 69 6f 6e 20 69 | its fu|nction i|
|00000340| 73 20 61 0d 3b 20 53 55 | 42 53 45 54 20 6f 66 20 |s a.; SU|BSET of |
|00000350| 64 69 73 73 42 69 74 73 | 27 2c 20 77 69 74 68 20 |dissBits|', with |
|00000360| 74 68 65 73 65 20 72 65 | 73 74 72 69 63 74 69 6f |these re|strictio|
|00000370| 6e 73 3a 0d 3b 20 20 20 | 20 20 2d 09 20 79 6f 75 |ns:.; | -. you|
|00000380| 20 6d 75 73 74 20 63 6f | 70 79 20 61 6e 20 65 6e | must co|py an en|
|00000390| 74 69 72 65 20 62 69 74 | 6d 61 70 20 74 6f 20 61 |tire bit|map to a|
|000003a0| 6e 6f 74 68 65 72 20 6f | 66 20 65 71 75 61 6c 20 |nother o|f equal |
|000003b0| 73 69 7a 65 2e 0d 3b 20 | 20 20 20 20 2d 09 20 74 |size..; | -. t|
|000003c0| 68 65 20 62 69 74 6d 61 | 70 2e 62 6f 75 6e 64 73 |he bitma|p.bounds|
|000003d0| 20 72 65 63 74 61 6e 67 | 6c 65 20 6d 75 73 74 20 | rectang|le must |
|000003e0| 62 65 20 74 68 65 20 66 | 75 6c 6c 20 77 69 64 74 |be the f|ull widt|
|000003f0| 68 20 6f 66 20 74 68 65 | 20 62 69 74 6d 61 70 2e |h of the| bitmap.|
|00000400| 20 20 74 68 69 73 20 70 | 72 6f 62 61 62 6c 79 20 | this p|robably |
|00000410| 6d 65 61 6e 73 20 79 6f | 75 72 0d 3b 09 20 64 65 |means yo|ur.;. de|
|00000420| 73 74 69 6e 61 74 69 6f | 6e 20 62 69 74 6d 61 70 |stinatio|n bitmap|
|00000430| 20 69 73 20 74 68 65 20 | 77 68 6f 6c 65 20 73 63 | is the |whole sc|
|00000440| 72 65 65 6e 2e 0d 3b 20 | 20 20 20 20 2d 09 20 74 |reen..; | -. t|
|00000450| 68 65 20 62 69 74 6d 61 | 70 20 6d 75 73 74 20 6e |he bitma|p must n|
|00000460| 6f 74 20 63 6f 6e 74 61 | 69 6e 20 6d 6f 72 65 20 |ot conta|in more |
|00000470| 74 68 61 6e 20 36 34 6b | 20 62 79 74 65 73 20 28 |than 64k| bytes (|
|00000480| 74 68 69 73 20 73 68 6f | 75 6c 64 20 62 65 20 6e |this sho|uld be n|
|00000490| 6f 20 70 72 6f 62 6c 65 | 6d 3b 20 74 68 65 20 73 |o proble|m; the s|
|000004a0| 63 72 65 65 6e 20 69 73 | 20 6f 6e 6c 79 20 32 31 |creen is| only 21|
|000004b0| 6b 62 29 2e 0d 3b 20 74 | 68 65 20 66 75 6c 6c 20 |kb)..; t|he full |
|000004c0| 73 63 72 65 65 6e 20 77 | 69 6c 6c 20 64 69 73 73 |screen w|ill diss|
|000004d0| 6f 6c 76 65 20 69 6e 20 | 61 62 6f 75 74 20 30 2e |olve in |about 0.|
|000004e0| 33 20 73 65 63 6f 6e 64 | 73 2e 20 20 69 74 20 77 |3 second|s. it w|
|000004f0| 6f 75 6c 64 20 62 65 20 | 6e 69 63 65 20 74 6f 20 |ould be |nice to |
|00000500| 68 61 76 65 20 74 68 65 | 20 65 66 66 65 63 74 20 |have the| effect |
|00000510| 72 75 6e 20 61 20 6c 69 | 74 74 6c 65 20 62 69 74 |run a li|ttle bit|
|00000520| 0d 3b 20 73 6c 6f 77 65 | 72 2c 20 62 75 74 20 74 |.; slowe|r, but t|
|00000530| 68 61 74 20 73 68 6f 77 | 73 20 75 70 20 74 68 65 |hat show|s up the|
|00000540| 20 66 61 63 74 20 74 68 | 61 74 20 74 68 65 20 64 | fact th|at the d|
|00000550| 61 74 61 20 61 72 65 20 | 6d 6f 76 65 64 20 61 20 |ata are |moved a |
|00000560| 62 79 74 65 20 61 74 20 | 61 20 74 69 6d 65 2c 20 |byte at |a time, |
|00000570| 67 69 76 69 6e 67 20 61 | 6e 20 65 66 66 65 63 74 |giving a|n effect|
|00000580| 20 6c 69 6b 65 20 61 20 | 73 68 6f 72 74 0d 3b 20 | like a |short.; |
|00000590| 62 75 72 73 74 20 6f 66 | 20 62 61 64 20 54 56 20 |burst of| bad TV |
|000005a0| 72 65 63 65 70 74 69 6f | 6e 2e 0d 3b 0d 0d 3b 20 |receptio|n..;..; |
|000005b0| 73 61 6d 70 6c 65 20 63 | 61 6c 6c 69 6e 67 20 63 |sample c|alling c|
|000005c0| 6f 64 65 3a 0d 3b 20 2d | 2d 2d 2d 2d 2d 2d 2d 2d |ode:.; -|--------|
|000005d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 0d 3b 0d 3b 20 74 |--------|--.;.; t|
|000005e0| 68 69 73 20 63 6f 64 65 | 20 69 73 20 6c 6f 6f 73 |his code| is loos|
|000005f0| 65 6c 79 20 74 61 6b 65 | 6e 20 66 72 6f 6d 20 74 |ely take|n from t|
|00000600| 68 65 20 63 75 72 73 6f | 72 20 65 64 69 74 6f 72 |he curso|r editor|
|00000610| 2e 20 20 69 74 20 75 73 | 65 73 20 74 68 72 65 65 |. it us|es three|
|00000620| 20 62 69 74 6d 61 70 73 | 2c 20 77 68 69 63 68 20 | bitmaps|, which |
|00000630| 74 61 6b 65 20 75 70 20 | 61 20 6c 6f 74 20 6f 66 |take up |a lot of|
|00000640| 0d 3b 20 6d 65 6d 6f 72 | 79 2e 20 20 6f 6e 65 20 |.; memor|y. one |
|00000650| 69 73 20 74 68 65 20 72 | 65 61 6c 20 73 63 72 65 |is the r|eal scre|
|00000660| 65 6e 3b 20 74 68 65 20 | 73 65 63 6f 6e 64 20 73 |en; the |second s|
|00000670| 61 76 65 73 20 74 68 65 | 20 6f 72 69 67 69 6e 61 |aves the| origina|
|00000680| 6c 20 73 63 72 65 65 6e | 20 77 68 69 6c 65 20 77 |l screen| while w|
|00000690| 65 20 70 6c 61 79 3b 20 | 74 68 65 20 74 68 69 72 |e play; |the thir|
|000006a0| 64 20 68 61 73 20 6e 65 | 77 0d 3b 20 73 74 75 66 |d has ne|w.; stuf|
|000006b0| 66 20 64 72 61 77 6e 20 | 69 6e 74 6f 20 69 74 2c |f drawn |into it,|
|000006c0| 20 61 6e 64 20 69 73 20 | 64 69 73 73 6f 6c 76 65 | and is |dissolve|
|000006d0| 64 20 6f 6e 74 6f 20 74 | 68 65 20 72 65 61 6c 20 |d onto t|he real |
|000006e0| 73 63 72 65 65 6e 2e 20 | 20 74 6f 20 72 65 73 74 |screen. | to rest|
|000006f0| 6f 72 65 20 74 68 65 20 | 6f 72 69 67 69 6e 61 6c |ore the |original|
|00000700| 20 73 74 75 66 66 2c 20 | 77 65 20 64 69 73 73 6f | stuff, |we disso|
|00000710| 6c 76 65 0d 3b 20 66 72 | 6f 6d 20 74 68 65 20 73 |lve.; fr|om the s|
|00000720| 65 63 6f 6e 64 20 74 6f | 20 74 68 65 20 66 69 72 |econd to| the fir|
|00000730| 73 74 2e 09 20 61 20 72 | 65 61 6c 20 70 72 6f 67 |st.. a r|eal prog|
|00000740| 72 61 6d 20 77 6f 75 6c | 64 20 6d 6f 72 65 20 6c |ram woul|d more l|
|00000750| 69 6b 65 6c 79 20 67 65 | 6e 65 72 61 74 65 20 75 |ikely ge|nerate u|
|00000760| 70 64 61 74 65 20 65 76 | 65 6e 74 73 20 66 6f 72 |pdate ev|ents for|
|00000770| 20 74 68 65 20 61 66 66 | 65 63 74 65 64 0d 3b 20 | the aff|ected.; |
|00000780| 61 72 65 61 2e 09 20 6e | 6f 74 65 20 74 68 61 74 |area.. n|ote that|
|00000790| 20 77 65 20 64 69 73 73 | 6f 6c 76 65 20 74 68 65 | we diss|olve the|
|000007a0| 20 57 48 4f 4c 45 20 73 | 63 72 65 65 6e 2c 20 61 | WHOLE s|creen, a|
|000007b0| 6e 64 20 74 68 75 73 20 | 77 65 20 68 61 76 65 20 |nd thus |we have |
|000007c0| 74 6f 20 63 6f 70 79 20 | 65 76 65 72 79 74 68 69 |to copy |everythi|
|000007d0| 6e 67 20 74 6f 20 74 68 | 65 20 74 68 69 72 64 20 |ng to th|e third |
|000007e0| 62 69 74 6d 61 70 0d 3b | 20 62 65 66 6f 72 65 20 |bitmap.;| before |
|000007f0| 77 65 20 73 74 61 72 74 | 20 64 72 61 77 69 6e 67 |we start| drawing|
|00000800| 20 74 68 65 20 74 68 69 | 6e 67 73 20 77 65 20 77 | the thi|ngs we w|
|00000810| 61 6e 74 20 74 6f 20 64 | 69 73 73 6f 6c 76 65 20 |ant to d|issolve |
|00000820| 69 6e 2e 0d 3b 20 28 63 | 61 76 65 61 74 3a 20 74 |in..; (c|aveat: t|
|00000830| 68 69 73 20 63 6f 64 65 | 20 68 61 73 20 62 65 65 |his code| has bee|
|00000840| 6e 20 65 64 69 74 65 64 | 20 61 20 6c 6f 74 20 66 |n edited| a lot f|
|00000850| 72 6f 6d 20 74 68 65 20 | 61 63 74 75 61 6c 20 61 |rom the |actual a|
|00000860| 70 70 6c 69 63 61 74 69 | 6f 6e 3b 20 69 74 27 73 |pplicati|on; it's|
|00000870| 20 6e 65 76 65 72 20 72 | 65 61 6c 6c 79 20 72 75 | never r|eally ru|
|00000880| 6e 2e 29 0d 3b 0d 3b 20 | 20 20 76 61 72 0d 3b 20 |n.).;.; | var.; |
|00000890| 20 20 20 20 20 61 6e 45 | 76 65 6e 74 3a 20 65 76 | anE|vent: ev|
|000008a0| 65 6e 74 52 65 63 6f 72 | 64 3b 09 09 20 20 20 20 |entRecor|d;.. |
|000008b0| 20 20 20 20 7b 20 75 73 | 65 64 20 74 6f 20 77 61 | { us|ed to wa|
|000008c0| 69 74 20 66 6f 72 20 61 | 20 6d 6f 75 73 65 64 6f |it for a| mousedo|
|000008d0| 77 6e 20 7d 0d 3b 20 20 | 20 20 20 20 6f 6c 64 50 |wn }.; | oldP|
|000008e0| 62 69 74 73 3a 20 20 20 | 20 20 62 69 74 6d 61 70 |bits: | bitmap|
|000008f0| 3b 09 09 20 20 20 20 20 | 20 20 20 7b 20 6f 72 69 |;.. | { ori|
|00000900| 67 69 6e 61 6c 20 73 63 | 72 65 65 6e 20 62 69 74 |ginal sc|reen bit|
|00000910| 6d 61 70 20 7d 0d 3b 20 | 20 20 20 20 20 6e 65 77 |map }.; | new|
|00000920| 42 69 74 73 3a 09 20 20 | 20 20 20 62 69 74 6d 61 |Bits:. | bitma|
|00000930| 70 3b 09 09 20 20 20 20 | 20 20 20 20 7b 20 62 69 |p;.. | { bi|
|00000940| 74 6d 61 70 20 74 6f 20 | 64 72 61 77 20 69 6e 20 |tmap to |draw in |
|00000950| 62 65 74 77 65 65 6e 20 | 73 65 74 55 70 46 61 64 |between |setUpFad|
|00000960| 65 20 61 6e 64 20 64 6f | 46 61 64 65 20 7d 0d 3b |e and do|Fade }.;|
|00000970| 20 20 20 20 20 20 73 61 | 76 42 69 74 73 3a 09 20 | sa|vBits:. |
|00000980| 20 20 20 20 62 69 74 6d | 61 70 3b 09 09 20 20 20 | bitm|ap;.. |
|00000990| 20 20 20 20 20 7b 20 62 | 69 74 6d 61 70 20 74 6f | { b|itmap to|
|000009a0| 20 73 61 76 65 20 74 68 | 65 20 73 63 72 65 65 6e | save th|e screen|
|000009b0| 20 69 6e 20 7d 0d 3b 20 | 20 20 20 20 20 64 69 73 | in }.; | dis|
|000009c0| 73 72 65 63 74 3a 20 20 | 20 20 20 72 65 63 74 3b |srect: | rect;|
|000009d0| 09 09 20 20 20 20 20 20 | 20 20 7b 20 64 69 73 73 |.. | { diss|
|000009e0| 6f 6c 76 65 20 72 65 63 | 74 61 6e 67 6c 65 20 7d |olve rec|tangle }|
|000009f0| 0d 3b 0d 3b 20 20 20 64 | 69 73 73 72 65 63 74 20 |.;.; d|issrect |
|00000a00| 3a 3d 20 74 68 65 70 6f | 72 74 5e 2e 70 6f 72 74 |:= thepo|rt^.port|
|00000a10| 62 69 74 73 2e 62 6f 75 | 6e 64 73 3b 20 20 20 20 |bits.bou|nds; |
|00000a20| 20 20 20 7b 20 73 74 65 | 61 6c 20 74 68 65 20 73 | { ste|al the s|
|00000a30| 63 72 65 65 6e 20 62 6f | 75 6e 64 73 20 7d 0d 3b |creen bo|unds }.;|
|00000a40| 20 20 20 6e 65 77 42 69 | 74 73 20 3a 3d 20 74 68 | newBi|ts := th|
|00000a50| 65 50 6f 72 74 5e 2e 70 | 6f 72 74 62 69 74 73 2e |ePort^.p|ortbits.|
|00000a60| 62 6f 75 6e 64 73 3b 20 | 20 20 20 20 20 20 20 7b |bounds; | {|
|00000a70| 20 61 6e 64 2c 20 69 6e | 20 66 61 63 74 2c 20 74 | and, in| fact, t|
|00000a80| 68 65 20 77 68 6f 6c 65 | 20 62 69 74 6d 61 70 20 |he whole| bitmap |
|00000a90| 7d 0d 3b 20 20 20 6e 65 | 77 42 69 74 73 2e 62 61 |}.; ne|wBits.ba|
|00000aa0| 73 65 41 64 64 72 20 3a | 3d 20 71 64 70 74 72 28 |seAddr :|= qdptr(|
|00000ab0| 6e 65 77 70 74 72 28 09 | 20 20 20 20 20 20 20 20 |newptr(.| |
|00000ac0| 7b 20 65 78 63 65 70 74 | 20 74 68 65 20 62 61 73 |{ except| the bas|
|00000ad0| 65 20 61 64 64 72 65 73 | 73 20 70 6f 69 6e 74 73 |e addres|s points|
|00000ae0| 20 74 6f 20 74 68 69 73 | 20 6e 65 77 20 73 74 6f | to this| new sto|
|00000af0| 72 61 67 65 20 7d 0d 3b | 09 09 20 20 20 20 20 20 |rage }.;|.. |
|00000b00| 20 20 6e 65 77 42 69 74 | 73 2e 72 6f 77 62 79 74 | newBit|s.rowbyt|
|00000b10| 65 73 2a 28 64 69 73 73 | 72 65 63 74 2e 62 6f 74 |es*(diss|rect.bot|
|00000b20| 74 6f 6d 2d 64 69 73 73 | 72 65 63 74 2e 74 6f 70 |tom-diss|rect.top|
|00000b30| 29 29 29 3b 20 7b 20 77 | 69 64 74 68 20 74 69 6d |))); { w|idth tim|
|00000b40| 65 73 20 68 65 69 67 68 | 74 20 7d 0d 3b 20 20 20 |es heigh|t }.; |
|00000b50| 73 61 76 42 69 74 73 20 | 3a 3d 20 6e 65 77 42 69 |savBits |:= newBi|
|00000b60| 74 73 3b 09 09 09 20 20 | 20 20 20 20 20 20 7b 20 |ts;... | { |
|00000b70| 74 65 6d 70 20 66 6f 72 | 20 6f 6c 64 20 73 63 72 |temp for| old scr|
|00000b80| 65 65 6e 20 6c 6f 6f 6b | 73 20 6a 75 73 74 20 74 |een look|s just t|
|00000b90| 68 65 20 73 61 6d 65 2e | 2e 2e 20 7d 0d 3b 20 20 |he same.|.. }.; |
|00000ba0| 20 73 61 76 42 69 74 73 | 2e 62 61 73 65 41 64 64 | savBits|.baseAdd|
|00000bb0| 72 20 3a 3d 20 71 64 70 | 74 72 28 6e 65 77 70 74 |r := qdp|tr(newpt|
|00000bc0| 72 28 0d 3b 09 09 20 20 | 20 20 20 20 20 20 73 61 |r(.;.. | sa|
|00000bd0| 76 42 69 74 73 2e 72 6f | 77 62 79 74 65 73 2a 28 |vBits.ro|wbytes*(|
|00000be0| 64 69 73 73 72 65 63 74 | 2e 62 6f 74 74 6f 6d 2d |dissrect|.bottom-|
|00000bf0| 64 69 73 73 72 65 63 74 | 2e 74 6f 70 29 29 29 3b |dissrect|.top)));|
|00000c00| 20 7b 20 2e 2e 2e 62 75 | 74 20 68 61 73 20 79 65 | { ...bu|t has ye|
|00000c10| 74 20 61 6e 6f 74 68 65 | 72 20 62 69 74 6d 61 70 |t anothe|r bitmap|
|00000c20| 20 7d 0d 3b 20 20 20 6f | 6c 64 50 62 69 74 73 20 | }.; o|ldPbits |
|00000c30| 3a 3d 20 74 68 65 50 6f | 72 74 5e 2e 70 6f 72 74 |:= thePo|rt^.port|
|00000c40| 42 69 74 73 3b 09 20 20 | 20 20 20 20 20 20 7b 20 |Bits;. | { |
|00000c50| 72 65 6d 65 6d 62 65 72 | 20 77 68 65 72 65 20 74 |remember| where t|
|00000c60| 68 65 20 73 63 72 65 65 | 6e 20 69 73 20 7d 0d 3b |he scree|n is }.;|
|00000c70| 20 20 20 73 65 74 50 6f | 72 74 42 69 74 73 20 28 | setPo|rtBits (|
|00000c80| 6e 65 77 42 69 74 73 29 | 3b 09 09 20 20 20 20 20 |newBits)|;.. |
|00000c90| 20 20 20 7b 20 62 75 74 | 20 66 6f 72 20 6e 6f 77 | { but| for now|
|00000ca0| 2c 20 77 65 20 64 72 61 | 77 20 69 6e 20 68 65 72 |, we dra|w in her|
|00000cb0| 65 20 7d 0d 3b 0d 3b 20 | 20 20 63 6f 70 79 42 69 |e }.;.; | copyBi|
|00000cc0| 74 73 20 28 6f 6c 64 50 | 62 69 74 73 2c 20 6e 65 |ts (oldP|bits, ne|
|00000cd0| 77 42 69 74 73 2c 20 64 | 69 73 73 72 65 63 74 2c |wBits, d|issrect,|
|00000ce0| 20 64 69 73 73 72 65 63 | 74 2c 20 73 72 63 43 6f | dissrec|t, srcCo|
|00000cf0| 70 79 2c 20 6e 69 6c 29 | 3b 20 7b 20 63 6f 70 79 |py, nil)|; { copy|
|00000d00| 20 74 68 65 20 6f 72 69 | 67 69 6e 61 6c 20 73 63 | the ori|ginal sc|
|00000d10| 72 65 65 6e 20 68 65 72 | 65 20 7d 0d 3b 20 20 20 |reen her|e }.; |
|00000d20| 63 6f 70 79 42 69 74 73 | 20 28 6f 6c 64 50 62 69 |copyBits| (oldPbi|
|00000d30| 74 73 2c 20 73 61 76 42 | 69 74 73 2c 20 64 69 73 |ts, savB|its, dis|
|00000d40| 73 72 65 63 74 2c 20 64 | 69 73 73 72 65 63 74 2c |srect, d|issrect,|
|00000d50| 20 73 72 63 43 6f 70 79 | 2c 20 6e 69 6c 29 3b 20 | srcCopy|, nil); |
|00000d60| 7b 20 61 6e 64 20 73 61 | 76 65 20 61 20 63 6f 70 |{ and sa|ve a cop|
|00000d70| 79 20 77 68 69 63 68 20 | 77 65 20 77 6f 6e 27 74 |y which |we won't|
|00000d80| 20 74 72 61 73 68 20 7d | 0d 3b 0d 3b 20 20 20 20 | trash }|.;.; |
|00000d90| 20 20 20 28 2a 2a 2a 20 | 64 6f 20 61 6c 6c 20 74 | (*** |do all t|
|00000da0| 68 65 20 64 72 61 77 69 | 6e 67 20 79 6f 75 20 77 |he drawi|ng you w|
|00000db0| 61 6e 74 20 68 65 72 65 | 3b 20 69 74 27 6c 6c 20 |ant here|; it'll |
|00000dc0| 67 6f 20 74 6f 20 74 68 | 65 20 6f 66 66 73 63 72 |go to th|e offscr|
|00000dd0| 65 65 6e 20 62 69 74 6d | 61 70 20 22 6e 65 77 42 |een bitm|ap "newB|
|00000de0| 69 74 73 22 2e 20 2a 2a | 2a 29 0d 3b 0d 3b 20 20 |its". **|*).;.; |
|00000df0| 20 64 69 73 73 42 79 74 | 65 73 20 28 6e 65 77 42 | dissByt|es (newB|
|00000e00| 69 74 73 2c 20 6f 6c 64 | 50 62 69 74 73 29 09 20 |its, old|Pbits). |
|00000e10| 20 20 20 20 20 20 20 7b | 20 70 75 74 20 6e 65 77 | {| put new|
|00000e20| 20 73 74 75 66 66 20 6f | 6e 20 73 63 72 65 65 6e | stuff o|n screen|
|00000e30| 2c 20 73 6c 6f 77 6c 79 | 20 7d 0d 3b 20 20 20 66 |, slowly| }.; f|
|00000e40| 6c 75 73 68 45 76 65 6e | 74 73 20 28 6d 44 6f 77 |lushEven|ts (mDow|
|00000e50| 6e 4d 61 73 6b 2b 6b 65 | 79 44 6f 77 6e 4d 61 73 |nMask+ke|yDownMas|
|00000e60| 6b 2c 20 30 29 3b 20 20 | 20 20 20 7b 20 69 67 6e |k, 0); | { ign|
|00000e70| 6f 72 65 20 6d 6f 75 73 | 65 64 6f 77 6e 73 20 66 |ore mous|edowns f|
|00000e80| 72 6f 6d 20 64 75 72 69 | 6e 67 20 74 68 65 20 64 |rom duri|ng the d|
|00000e90| 69 73 73 6f 6c 76 65 20 | 7d 0d 3b 20 20 20 72 65 |issolve |}.; re|
|00000ea0| 70 65 61 74 20 75 6e 74 | 69 6c 20 67 65 74 6e 65 |peat unt|il getne|
|00000eb0| 78 74 65 76 65 6e 74 28 | 6d 44 6f 77 6e 4d 61 73 |xtevent(|mDownMas|
|00000ec0| 6b 2b 6b 65 79 44 6f 77 | 6e 4d 61 73 6b 2c 61 6e |k+keyDow|nMask,an|
|00000ed0| 65 76 65 6e 74 29 3b 20 | 7b 20 77 61 69 74 20 66 |event); |{ wait f|
|00000ee0| 6f 72 20 74 68 65 6d 20 | 74 6f 20 63 6c 69 63 6b |or them |to click|
|00000ef0| 20 6f 72 20 74 79 70 65 | 20 7d 0d 3b 20 20 20 64 | or type| }.; d|
|00000f00| 69 73 73 42 79 74 65 73 | 20 28 73 61 76 42 69 74 |issBytes| (savBit|
|00000f10| 73 2c 20 6f 6c 64 50 42 | 69 74 73 29 09 20 20 20 |s, oldPB|its). |
|00000f20| 20 20 20 20 20 7b 20 72 | 65 73 74 6f 72 65 20 74 | { r|estore t|
|00000f30| 68 65 20 73 63 72 65 65 | 6e 2c 20 61 6c 73 6f 20 |he scree|n, also |
|00000f40| 73 6c 6f 77 6c 79 20 7d | 0d 3b 0d 3b 20 20 20 64 |slowly }|.;.; d|
|00000f50| 69 73 70 6f 73 50 74 72 | 20 28 70 74 72 28 6e 65 |isposPtr| (ptr(ne|
|00000f60| 77 42 69 74 73 2e 62 61 | 73 65 41 64 64 72 29 29 |wBits.ba|seAddr))|
|00000f70| 3b 09 20 20 20 20 20 20 | 20 20 7b 20 74 6f 73 73 |;. | { toss|
|00000f80| 20 73 74 75 66 66 20 77 | 65 20 64 72 65 77 20 7d | stuff w|e drew }|
|00000f90| 0d 3b 20 20 20 64 69 73 | 70 6f 73 50 74 72 20 28 |.; dis|posPtr (|
|00000fa0| 70 74 72 28 73 61 76 42 | 69 74 73 2e 62 61 73 65 |ptr(savB|its.base|
|00000fb0| 41 64 64 72 29 29 3b 09 | 20 20 20 20 20 20 20 20 |Addr));.| |
|00000fc0| 7b 20 61 6e 64 20 73 70 | 61 63 65 20 77 65 20 75 |{ and sp|ace we u|
|00000fd0| 73 65 64 20 74 6f 20 73 | 61 76 65 20 74 68 65 20 |sed to s|ave the |
|00000fe0| 6f 72 69 67 69 6e 61 6c | 20 73 63 72 65 65 6e 20 |original| screen |
|00000ff0| 7d 0d 3b 20 20 20 73 65 | 74 50 6f 72 74 42 69 74 |}.; se|tPortBit|
|00001000| 73 20 28 6f 6c 64 50 62 | 69 74 73 29 3b 09 09 20 |s (oldPb|its);.. |
|00001010| 20 20 20 20 20 20 20 7b | 20 67 6f 20 62 61 63 6b | {| go back|
|00001020| 20 74 6f 20 64 72 61 77 | 69 6e 67 20 6f 6e 20 74 | to draw|ing on t|
|00001030| 68 65 20 72 65 61 6c 20 | 73 63 72 65 65 6e 20 7d |he real |screen }|
|00001040| 0d 3b 0d 0d 3b 0d 3b 20 | 64 75 70 6c 69 63 61 74 |.;..;.; |duplicat|
|00001050| 69 6f 6e 20 61 6e 64 20 | 75 73 65 20 6f 66 20 74 |ion and |use of t|
|00001060| 68 69 73 20 72 6f 75 74 | 69 6e 65 3a 0d 3b 20 2d |his rout|ine:.; -|
|00001070| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001080| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001090| 2d 2d 0d 3b 0d 3b 20 74 | 68 69 73 20 69 73 20 66 |--.;.; t|his is f|
|000010a0| 72 65 65 77 61 72 65 2e | 20 20 79 6f 75 27 72 65 |reeware.| you're|
|000010b0| 20 77 65 6c 63 6f 6d 65 | 20 74 6f 20 63 6f 70 79 | welcome| to copy|
|000010c0| 20 69 74 20 61 6e 64 20 | 75 73 65 20 69 74 20 69 | it and |use it i|
|000010d0| 6e 20 70 72 6f 67 72 61 | 6d 73 2e 20 20 79 6f 75 |n progra|ms. you|
|000010e0| 27 72 65 20 77 65 6c 63 | 6f 6d 65 20 74 6f 20 6d |'re welc|ome to m|
|000010f0| 6f 64 69 66 79 20 69 74 | 2c 20 61 73 20 6c 6f 6e |odify it|, as lon|
|00001100| 67 0d 3b 20 61 73 20 79 | 6f 75 20 6c 65 61 76 65 |g.; as y|ou leave|
|00001110| 20 65 76 65 72 79 74 68 | 69 6e 67 20 75 70 20 75 | everyth|ing up u|
|00001120| 6e 74 69 6c 20 74 68 69 | 73 20 73 65 63 74 69 6f |ntil thi|s sectio|
|00001130| 6e 20 75 6e 63 68 61 6e | 67 65 64 2e 20 20 79 6f |n unchan|ged. yo|
|00001140| 75 27 72 65 20 77 65 6c | 63 6f 6d 65 20 74 6f 20 |u're wel|come to |
|00001150| 70 6f 72 74 20 69 74 20 | 74 6f 20 6f 74 68 65 72 |port it |to other|
|00001160| 20 6d 61 63 68 69 6e 65 | 73 3b 0d 3b 20 69 27 64 | machine|s;.; i'd|
|00001170| 20 61 70 70 72 65 63 69 | 61 74 65 20 68 65 61 72 | appreci|ate hear|
|00001180| 69 6e 67 20 61 62 6f 75 | 74 20 65 66 66 6f 72 74 |ing abou|t effort|
|00001190| 73 20 74 6f 20 64 6f 20 | 74 68 69 73 2e 0d 3b 0d |s to do |this..;.|
|000011a0| 3b 20 69 66 20 79 6f 75 | 20 75 73 65 20 69 74 20 |; if you| use it |
|000011b0| 66 6f 72 20 70 72 6f 66 | 69 74 2c 20 69 20 61 73 |for prof|it, i as|
|000011c0| 6b 20 74 68 61 74 20 79 | 6f 75 20 70 61 79 20 66 |k that y|ou pay f|
|000011d0| 6f 72 20 6d 79 20 77 6f | 72 6b 2e 20 20 77 68 79 |or my wo|rk. why|
|000011e0| 3f 0d 3b 0d 3b 20 20 20 | 20 20 20 20 6f 20 69 66 |?.;.; | o if|
|000011f0| 20 79 6f 75 20 68 61 76 | 65 20 70 72 6f 62 6c 65 | you hav|e proble|
|00001200| 6d 73 20 75 73 69 6e 67 | 20 69 74 2c 20 69 27 6c |ms using| it, i'l|
|00001210| 6c 20 74 72 79 20 74 6f | 20 68 65 6c 70 20 79 6f |l try to| help yo|
|00001220| 75 20 64 65 62 75 67 20 | 69 74 2e 0d 3b 20 20 20 |u debug |it..; |
|00001230| 20 20 20 20 6f 20 69 27 | 6c 6c 20 73 65 6e 64 20 | o i'|ll send |
|00001240| 79 6f 75 20 69 6d 70 72 | 6f 76 65 64 2c 20 64 65 |you impr|oved, de|
|00001250| 62 75 67 67 65 64 2c 20 | 66 61 73 74 65 72 20 76 |bugged, |faster v|
|00001260| 65 72 73 69 6f 6e 73 2e | 0d 3b 20 20 20 20 20 20 |ersions.|.; |
|00001270| 20 6f 20 69 27 6c 6c 20 | 74 65 6c 6c 20 79 6f 75 | o i'll |tell you|
|00001280| 20 61 62 6f 75 74 20 66 | 75 74 75 72 65 20 70 72 | about f|uture pr|
|00001290| 6f 64 75 63 74 73 2e 0d | 3b 0d 3b 20 68 6f 77 20 |oducts..|;.; how |
|000012a0| 6d 75 63 68 20 73 68 6f | 75 6c 64 20 79 6f 75 20 |much sho|uld you |
|000012b0| 70 61 79 3f 20 20 6d 79 | 20 73 75 67 67 65 73 74 |pay? my| suggest|
|000012c0| 69 6f 6e 20 69 73 3a 0d | 3b 20 20 20 20 20 20 20 |ion is:.|; |
|000012d0| 28 63 6f 73 74 20 6f 66 | 20 6f 6e 65 20 63 6f 70 |(cost of| one cop|
|000012e0| 79 20 6f 66 20 74 68 65 | 20 70 72 6f 67 72 61 6d |y of the| program|
|000012f0| 29 20 2a 20 28 6c 6f 67 | 31 30 20 6f 66 20 6e 75 |) * (log|10 of nu|
|00001300| 6d 62 65 72 20 6f 66 20 | 63 6f 70 69 65 73 20 73 |mber of |copies s|
|00001310| 6f 6c 64 29 0d 3b 20 69 | 66 20 74 68 65 20 73 75 |old).; i|f the su|
|00001320| 62 72 6f 75 74 69 6e 65 | 20 69 73 20 61 6e 20 69 |broutine| is an i|
|00001330| 6e 74 65 67 72 61 6c 20 | 70 61 72 74 20 6f 66 20 |ntegral |part of |
|00001340| 79 6f 75 72 20 70 72 6f | 67 72 61 6d 2c 20 64 6f |your pro|gram, do|
|00001350| 75 62 6c 65 20 74 68 65 | 20 61 6d 6f 75 6e 74 2e |uble the| amount.|
|00001360| 0d 3b 20 69 66 20 69 74 | 27 73 20 61 20 66 72 69 |.; if it|'s a fri|
|00001370| 6c 6c 20 28 65 2e 67 2e | 2c 20 79 6f 75 20 64 69 |ll (e.g.|, you di|
|00001380| 73 73 6f 6c 76 65 20 69 | 6e 20 79 6f 75 72 20 22 |ssolve i|n your "|
|00001390| 41 62 6f 75 74 20 4d 61 | 63 57 68 61 74 65 76 65 |About Ma|cWhateve|
|000013a0| 72 22 29 2c 20 68 61 6c | 76 65 20 69 74 2e 0d 3b |r"), hal|ve it..;|
|000013b0| 0d 3b 20 69 20 66 69 6e | 64 20 69 74 20 68 61 72 |.; i fin|d it har|
|000013c0| 64 20 74 6f 20 62 65 6c | 69 65 76 65 20 74 68 61 |d to bel|ieve tha|
|000013d0| 74 20 61 6e 79 20 64 61 | 6d 61 67 65 73 20 74 6f |t any da|mages to|
|000013e0| 20 79 6f 75 20 6f 72 20 | 61 6e 79 6f 6e 65 20 65 | you or |anyone e|
|000013f0| 6c 73 65 20 63 6f 75 6c | 64 20 63 6f 6d 65 20 66 |lse coul|d come f|
|00001400| 72 6f 6d 0d 3b 20 62 75 | 67 73 20 69 6e 20 74 68 |rom.; bu|gs in th|
|00001410| 69 73 20 72 6f 75 74 69 | 6e 65 2e 09 20 62 75 74 |is routi|ne.. but|
|00001420| 2c 20 61 6c 61 73 2c 20 | 77 68 65 74 68 65 72 20 |, alas, |whether |
|00001430| 6f 72 20 6e 6f 74 20 79 | 6f 75 20 70 61 79 20 6d |or not y|ou pay m|
|00001440| 65 2c 20 61 6c 61 73 2c | 20 69 20 63 61 6e 27 74 |e, alas,| i can't|
|00001450| 20 62 65 0d 3b 20 6c 69 | 61 62 6c 65 20 69 6e 20 | be.; li|able in |
|00001460| 61 6e 79 20 77 61 79 20 | 66 6f 72 20 61 6e 79 20 |any way |for any |
|00001470| 70 72 6f 62 6c 65 6d 73 | 20 69 6e 20 69 74 2e 0d |problems| in it..|
|00001480| 3b 0d 3b 20 73 65 6e 64 | 20 63 6f 6d 6d 65 6e 74 |;.; send| comment|
|00001490| 73 2c 20 63 6f 6e 74 72 | 69 62 75 74 69 6f 6e 73 |s, contr|ibutions|
|000014a0| 2c 20 63 72 69 74 69 63 | 69 73 6d 73 2c 20 6f 72 |, critic|isms, or|
|000014b0| 20 77 68 61 74 65 76 65 | 72 20 74 6f 3a 0d 3b 20 | whateve|r to:.; |
|000014c0| 20 20 20 20 20 20 6d 69 | 6b 65 20 6d 6f 72 74 6f | mi|ke morto|
|000014d0| 6e 0d 3b 20 20 20 20 20 | 20 20 36 20 62 6c 61 63 |n.; | 6 blac|
|000014e0| 6b 77 6f 6f 64 20 73 74 | 72 65 65 74 2c 20 23 31 |kwood st|reet, #1|
|000014f0| 30 32 0d 3b 20 20 20 20 | 20 20 20 62 6f 73 74 6f |02.; | bosto|
|00001500| 6e 2c 20 6d 61 73 73 2e | 20 20 30 32 31 31 35 0d |n, mass.| 02115.|
|00001510| 3b 20 69 66 20 79 6f 75 | 27 64 20 6c 69 6b 65 20 |; if you|'d like |
|00001520| 74 6f 20 68 65 61 72 20 | 61 62 6f 75 74 20 77 68 |to hear |about wh|
|00001530| 61 74 20 65 6c 73 65 20 | 69 27 76 65 20 70 72 6f |at else |i've pro|
|00001540| 64 75 63 65 64 20 28 61 | 73 20 6f 66 20 74 68 69 |duced (a|s of thi|
|00001550| 73 20 77 72 69 74 69 6e | 67 2c 20 69 74 27 73 20 |s writin|g, it's |
|00001560| 6e 6f 74 20 61 20 77 68 | 6f 6c 65 20 6c 6f 74 29 |not a wh|ole lot)|
|00001570| 2c 20 73 65 6e 64 20 61 | 0d 3b 20 73 65 6c 66 2d |, send a|.; self-|
|00001580| 61 64 64 72 65 73 73 65 | 64 2c 20 73 74 61 6d 70 |addresse|d, stamp|
|00001590| 65 64 20 65 6e 76 65 6c | 6f 70 65 20 74 6f 20 74 |ed envel|ope to t|
|000015a0| 68 65 20 61 64 64 72 65 | 73 73 20 61 62 6f 76 65 |he addre|ss above|
|000015b0| 2e 0d 3b 0d 0d 3b 0d 3b | 20 20 20 20 20 20 20 2d |..;..;.;| -|
|000015c0| 2d 20 65 6e 64 20 6f 66 | 20 69 6e 74 72 6f 64 75 |- end of| introdu|
|000015d0| 63 74 69 6f 6e 3b 20 72 | 65 61 6c 20 73 74 75 66 |ction; r|eal stuf|
|000015e0| 66 20 73 74 61 72 74 73 | 20 68 65 72 65 20 2d 2d |f starts| here --|
|000015f0| 0d 3b 0d 0d 3b 0d 3b 20 | 69 6e 63 6c 75 64 65 20 |.;..;.; |include |
|00001600| 66 69 6c 65 73 3a 0d 3b | 20 20 20 20 20 20 20 74 |files:.;| t|
|00001610| 6c 61 73 6d 2f 67 72 61 | 66 74 79 70 65 73 20 2d |lasm/gra|ftypes -|
|00001620| 2d 20 64 65 66 69 6e 69 | 74 69 6f 6e 73 20 6f 66 |- defini|tions of|
|00001630| 20 22 62 69 74 4d 61 70 | 22 20 61 6e 64 20 22 72 | "bitMap|" and "r|
|00001640| 65 63 74 22 0d 3b 20 20 | 20 20 20 20 20 74 6c 61 |ect".; | tla|
|00001650| 73 6d 2f 71 75 69 63 6b | 6d 61 63 73 20 2d 2d 20 |sm/quick|macs -- |
|00001660| 6d 61 63 72 6f 73 20 66 | 6f 72 20 71 75 69 63 6b |macros f|or quick|
|00001670| 64 72 61 77 20 63 61 6c | 6c 73 20 28 65 2e 67 2e |draw cal|ls (e.g.|
|00001680| 2c 20 5f 68 69 64 65 63 | 75 72 73 6f 72 29 0d 3b |, _hidec|ursor).;|
|00001690| 0d 0d 2e 6e 6f 6c 69 73 | 74 0d 2e 69 6e 63 6c 75 |...nolis|t..inclu|
|000016a0| 64 65 20 74 6c 61 73 6d | 2f 67 72 61 66 74 79 70 |de tlasm|/graftyp|
|000016b0| 65 73 0d 2e 69 6e 63 6c | 75 64 65 20 74 6c 61 73 |es..incl|ude tlas|
|000016c0| 6d 2f 71 75 69 63 6b 6d | 61 63 73 0d 2e 6c 69 73 |m/quickm|acs..lis|
|000016d0| 74 0d 0d 3b 0d 3b 20 63 | 6f 70 79 20 6f 6e 65 20 |t..;.; c|opy one |
|000016e0| 62 69 74 6d 61 70 20 74 | 6f 20 61 6e 6f 74 68 65 |bitmap t|o anothe|
|000016f0| 72 2e 20 20 74 68 65 20 | 62 69 74 6d 61 70 20 6d |r. the |bitmap m|
|00001700| 75 73 74 20 62 65 20 63 | 6f 6e 74 69 67 75 6f 75 |ust be c|ontiguou|
|00001710| 73 20 28 69 2e 65 2e 2c | 20 74 68 65 20 62 6f 75 |s (i.e.,| the bou|
|00001720| 6e 64 73 20 72 65 63 74 | 0d 3b 20 6d 75 73 74 20 |nds rect|.; must |
|00001730| 62 65 20 61 73 20 77 69 | 64 65 20 61 73 20 22 72 |be as wi|de as "r|
|00001740| 6f 77 62 79 74 65 73 22 | 29 2c 20 74 68 65 20 62 |owbytes"|), the b|
|00001750| 69 74 6d 61 70 73 20 6d | 75 73 74 20 62 65 20 74 |itmaps m|ust be t|
|00001760| 68 65 20 73 61 6d 65 20 | 73 69 7a 65 2c 20 61 6e |he same |size, an|
|00001770| 64 20 74 68 65 20 6e 75 | 6d 62 65 72 20 6f 66 20 |d the nu|mber of |
|00001780| 62 79 74 65 73 20 69 6e | 20 74 68 65 0d 3b 20 62 |bytes in| the.; b|
|00001790| 69 74 6d 61 70 20 6d 75 | 73 74 20 62 65 20 75 6e |itmap mu|st be un|
|000017a0| 64 65 72 20 36 34 6b 2e | 20 20 69 66 20 61 6e 79 |der 64k.| if any|
|000017b0| 20 6f 66 20 74 68 65 73 | 65 20 63 6f 6e 64 69 74 | of thes|e condit|
|000017c0| 69 6f 6e 73 20 61 72 65 | 6e 27 74 20 6d 65 74 2c |ions are|n't met,|
|000017d0| 20 74 68 65 20 72 6f 75 | 74 69 6e 65 20 72 65 74 | the rou|tine ret|
|000017e0| 75 72 6e 73 20 57 49 54 | 48 4f 55 54 0d 3b 20 44 |urns WIT|HOUT.; D|
|000017f0| 4f 49 4e 47 20 41 4e 59 | 54 48 49 4e 47 2e 0d 3b |OING ANY|THING..;|
|00001800| 0d 0d 2e 70 72 6f 63 20 | 20 20 64 69 73 73 42 79 |...proc | dissBy|
|00001810| 74 65 73 0d 20 20 20 20 | 20 20 20 20 6c 69 6e 6b |tes. | link|
|00001820| 20 41 36 2c 23 30 09 09 | 20 20 20 20 20 20 20 20 | A6,#0..| |
|00001830| 3b 20 73 65 74 20 75 70 | 20 61 6e 20 65 6d 70 74 |; set up| an empt|
|00001840| 79 20 73 74 61 63 6b 20 | 66 72 61 6d 65 20 28 6e |y stack |frame (n|
|00001850| 6f 20 6c 6f 63 61 6c 20 | 73 74 6f 72 61 67 65 29 |o local |storage)|
|00001860| 0d 20 20 20 20 20 20 20 | 20 6d 6f 76 65 6d 2e 6c |. | movem.l|
|00001870| 20 44 33 2f 41 32 2c 2d | 28 41 37 29 09 20 20 20 | D3/A2,-|(A7). |
|00001880| 20 20 20 20 20 3b 20 73 | 61 76 65 20 72 65 67 69 | ; s|ave regi|
|00001890| 73 74 65 72 73 20 66 6f | 72 20 6f 75 72 20 63 61 |sters fo|r our ca|
|000018a0| 6c 6c 65 72 0d 0d 20 20 | 20 20 20 20 20 20 6d 6f |ller.. | mo|
|000018b0| 76 65 2e 6c 20 38 28 41 | 36 29 2c 41 31 09 09 20 |ve.l 8(A|6),A1.. |
|000018c0| 20 20 20 20 20 20 20 3b | 20 70 6f 69 6e 74 20 74 | ;| point t|
|000018d0| 6f 20 64 65 73 74 69 6e | 61 74 69 6f 6e 20 62 69 |o destin|ation bi|
|000018e0| 74 6d 61 70 20 77 69 74 | 68 20 41 31 0d 20 20 20 |tmap wit|h A1. |
|000018f0| 20 20 20 20 20 6d 6f 76 | 65 2e 6c 20 31 32 28 41 | mov|e.l 12(A|
|00001900| 36 29 2c 41 30 09 20 20 | 20 20 20 20 20 20 3b 20 |6),A0. | ; |
|00001910| 61 6e 64 20 74 6f 20 74 | 68 65 20 73 6f 75 72 63 |and to t|he sourc|
|00001920| 65 20 62 69 74 6d 61 70 | 20 77 69 74 68 20 41 30 |e bitmap| with A0|
|00001930| 0d 0d 3b 0d 3b 20 63 68 | 65 63 6b 20 74 68 61 74 |..;.; ch|eck that|
|00001940| 20 74 68 65 20 62 69 74 | 6d 61 70 73 20 6d 61 74 | the bit|maps mat|
|00001950| 63 68 20 69 6e 20 73 69 | 7a 65 3a 0d 3b 0d 0d 20 |ch in si|ze:.;.. |
|00001960| 20 20 20 20 20 20 20 6d | 6f 76 65 2e 77 20 62 6f | m|ove.w bo|
|00001970| 75 6e 64 73 2b 62 6f 74 | 74 6f 6d 28 41 30 29 2c |unds+bot|tom(A0),|
|00001980| 44 30 20 20 20 20 20 3b | 20 70 69 63 6b 20 75 70 |D0 ;| pick up|
|00001990| 20 73 6f 75 72 63 65 2e | 62 6f 75 6e 64 73 2e 62 | source.|bounds.b|
|000019a0| 6f 74 74 6f 6d 0d 20 20 | 20 20 20 20 20 20 73 75 |ottom. | su|
|000019b0| 62 2e 77 20 62 6f 75 6e | 64 73 2b 74 6f 70 28 41 |b.w boun|ds+top(A|
|000019c0| 30 29 2c 44 30 09 20 20 | 20 20 20 20 20 20 3b 20 |0),D0. | ; |
|000019d0| 66 69 6e 64 20 28 73 6f | 75 72 63 65 2e 62 6f 75 |find (so|urce.bou|
|000019e0| 6e 64 73 2e 62 6f 74 74 | 6f 6d 2d 73 6f 75 72 63 |nds.bott|om-sourc|
|000019f0| 65 2e 62 6f 75 6e 64 73 | 2e 74 6f 70 29 0d 20 20 |e.bounds|.top). |
|00001a00| 20 20 20 20 20 20 73 77 | 61 70 20 44 30 09 09 09 | sw|ap D0...|
|00001a10| 20 20 20 20 20 20 20 20 | 3b 20 63 61 63 68 65 20 | |; cache |
|00001a20| 74 68 61 74 20 69 6e 20 | 74 68 65 20 74 6f 70 20 |that in |the top |
|00001a30| 68 61 6c 66 20 6f 66 20 | 44 30 0d 20 20 20 20 20 |half of |D0. |
|00001a40| 20 20 20 6d 6f 76 65 2e | 77 20 62 6f 75 6e 64 73 | move.|w bounds|
|00001a50| 2b 72 69 67 68 74 28 41 | 30 29 2c 44 30 20 20 20 |+right(A|0),D0 |
|00001a60| 20 20 20 3b 20 61 6e 64 | 20 66 69 6e 64 20 28 73 | ; and| find (s|
|00001a70| 6f 75 72 63 65 2e 62 6f | 75 6e 64 73 2e 72 69 67 |ource.bo|unds.rig|
|00001a80| 68 74 2e 2e 2e 0d 20 20 | 20 20 20 20 20 20 73 75 |ht.... | su|
|00001a90| 62 2e 77 20 62 6f 75 6e | 64 73 2b 6c 65 66 74 28 |b.w boun|ds+left(|
|00001aa0| 41 30 29 2c 44 30 20 20 | 20 20 20 20 20 20 3b 20 |A0),D0 | ; |
|00001ab0| 2e 2e 2e 2d 73 6f 75 72 | 63 65 2e 62 6f 75 6e 64 |...-sour|ce.bound|
|00001ac0| 73 2e 6c 65 66 74 29 0d | 0d 20 20 20 20 20 20 20 |s.left).|. |
|00001ad0| 20 6d 6f 76 65 2e 77 20 | 62 6f 75 6e 64 73 2b 62 | move.w |bounds+b|
|00001ae0| 6f 74 74 6f 6d 28 41 31 | 29 2c 44 31 20 20 20 20 |ottom(A1|),D1 |
|00001af0| 20 3b 20 70 69 63 6b 20 | 75 70 20 64 65 73 74 2e | ; pick |up dest.|
|00001b00| 62 6f 75 6e 64 73 2e 62 | 6f 74 74 6f 6d 0d 20 20 |bounds.b|ottom. |
|00001b10| 20 20 20 20 20 20 73 75 | 62 2e 77 20 62 6f 75 6e | su|b.w boun|
|00001b20| 64 73 2b 74 6f 70 28 41 | 31 29 2c 44 31 09 20 20 |ds+top(A|1),D1. |
|00001b30| 20 20 20 20 20 20 3b 20 | 66 69 6e 64 20 28 64 65 | ; |find (de|
|00001b40| 73 74 2e 62 6f 75 6e 64 | 73 2e 62 6f 74 74 6f 6d |st.bound|s.bottom|
|00001b50| 2d 64 65 73 74 2e 62 6f | 75 6e 64 73 2e 74 6f 70 |-dest.bo|unds.top|
|00001b60| 29 0d 20 20 20 20 20 20 | 20 20 73 77 61 70 20 44 |). | swap D|
|00001b70| 31 09 09 09 20 20 20 20 | 20 20 20 20 3b 20 63 61 |1... | ; ca|
|00001b80| 63 68 65 20 74 68 61 74 | 20 69 6e 20 74 68 65 20 |che that| in the |
|00001b90| 74 6f 70 20 68 61 6c 66 | 20 6f 66 20 44 31 0d 20 |top half| of D1. |
|00001ba0| 20 20 20 20 20 20 20 6d | 6f 76 65 2e 77 20 62 6f | m|ove.w bo|
|00001bb0| 75 6e 64 73 2b 72 69 67 | 68 74 28 41 31 29 2c 44 |unds+rig|ht(A1),D|
|00001bc0| 31 20 20 20 20 20 20 3b | 20 61 6e 64 20 66 69 6e |1 ;| and fin|
|00001bd0| 64 20 28 64 65 73 74 2e | 62 6f 75 6e 64 73 2e 72 |d (dest.|bounds.r|
|00001be0| 69 67 68 74 2e 2e 2e 0d | 20 20 20 20 20 20 20 20 |ight....| |
|00001bf0| 73 75 62 2e 77 20 62 6f | 75 6e 64 73 2b 6c 65 66 |sub.w bo|unds+lef|
|00001c00| 74 28 41 31 29 2c 44 31 | 20 20 20 20 20 20 20 20 |t(A1),D1| |
|00001c10| 3b 20 2e 2e 2e 2d 64 65 | 73 74 2e 62 6f 75 6e 64 |; ...-de|st.bound|
|00001c20| 73 2e 6c 65 66 74 29 0d | 0d 20 20 20 20 20 20 20 |s.left).|. |
|00001c30| 20 63 6d 70 2e 6c 20 44 | 30 2c 44 31 09 09 20 20 | cmp.l D|0,D1.. |
|00001c40| 20 20 20 20 20 20 3b 20 | 64 6f 20 68 65 69 67 68 | ; |do heigh|
|00001c50| 74 20 61 6e 64 20 77 69 | 64 74 68 20 6f 66 20 72 |t and wi|dth of r|
|00001c60| 65 63 74 61 6e 67 6c 65 | 73 20 6d 61 74 63 68 3f |ectangle|s match?|
|00001c70| 0d 20 20 20 20 20 20 20 | 20 62 6e 65 2e 73 20 6e |. | bne.s n|
|00001c80| 6f 42 79 74 65 73 09 09 | 20 20 20 20 20 20 20 20 |oBytes..| |
|00001c90| 3b 20 6e 6f 70 65 20 2d | 2d 20 63 61 6e 27 74 20 |; nope -|- can't |
|00001ca0| 68 61 6e 64 6c 65 20 74 | 68 69 73 0d 0d 20 20 20 |handle t|his.. |
|00001cb0| 20 20 20 20 20 6d 6f 76 | 65 2e 77 20 72 6f 77 62 | mov|e.w rowb|
|00001cc0| 79 74 65 73 28 41 30 29 | 2c 44 32 09 20 20 20 20 |ytes(A0)|,D2. |
|00001cd0| 20 20 20 20 3b 20 70 69 | 63 6b 20 75 70 20 62 79 | ; pi|ck up by|
|00001ce0| 74 65 73 2d 70 65 72 2d | 72 6f 77 20 69 6e 20 44 |tes-per-|row in D|
|00001cf0| 32 0d 20 20 20 20 20 20 | 20 20 63 6d 70 2e 77 20 |2. | cmp.w |
|00001d00| 72 6f 77 62 79 74 65 73 | 28 41 31 29 2c 44 32 09 |rowbytes|(A1),D2.|
|00001d10| 20 20 20 20 20 20 20 20 | 3b 20 64 6f 20 74 68 65 | |; do the|
|00001d20| 79 20 6d 61 74 63 68 3f | 0d 20 20 20 20 20 20 20 |y match?|. |
|00001d30| 20 62 6e 65 2e 73 20 6e | 6f 42 79 74 65 73 09 09 | bne.s n|oBytes..|
|00001d40| 20 20 20 20 20 20 20 20 | 3b 20 6e 6f 70 65 20 2d | |; nope -|
|00001d50| 2d 20 74 68 65 79 20 6d | 75 73 74 20 66 6f 72 20 |- they m|ust for |
|00001d60| 75 73 20 74 6f 20 63 6f | 70 79 0d 0d 20 20 20 20 |us to co|py.. |
|00001d70| 20 20 20 20 6d 6f 76 65 | 2e 77 20 44 32 2c 44 33 | move|.w D2,D3|
|00001d80| 09 09 20 20 20 20 20 20 | 20 20 3b 20 73 65 74 20 |.. | ; set |
|00001d90| 62 79 74 65 20 63 6f 75 | 6e 74 20 61 73 69 64 65 |byte cou|nt aside|
|00001da0| 20 69 6e 20 44 33 0d 20 | 20 20 20 20 20 20 20 6c | in D3. | l|
|00001db0| 73 6c 2e 77 20 23 33 2c | 20 44 32 09 09 20 20 20 |sl.w #3,| D2.. |
|00001dc0| 20 20 20 20 20 3b 20 74 | 75 72 6e 20 62 79 74 65 | ; t|urn byte|
|00001dd0| 20 63 6f 75 6e 74 20 69 | 6e 74 6f 20 62 69 74 20 | count i|nto bit |
|00001de0| 28 70 69 78 65 6c 29 20 | 63 6f 75 6e 74 0d 20 20 |(pixel) |count. |
|00001df0| 20 20 20 20 20 20 63 6d | 70 2e 77 20 44 32 2c 44 | cm|p.w D2,D|
|00001e00| 30 09 09 20 20 20 20 20 | 20 20 20 3b 20 63 6f 6d |0.. | ; com|
|00001e10| 70 61 72 65 20 61 67 61 | 69 6e 73 74 20 77 69 64 |pare aga|inst wid|
|00001e20| 74 68 20 6f 66 20 62 6f | 74 68 20 62 6f 75 6e 64 |th of bo|th bound|
|00001e30| 73 20 72 65 63 74 73 0d | 20 20 20 20 20 20 20 20 |s rects.| |
|00001e40| 62 6e 65 2e 73 20 6e 6f | 42 79 74 65 73 09 09 20 |bne.s no|Bytes.. |
|00001e50| 20 20 20 20 20 20 20 3b | 20 62 6f 75 6e 64 73 20 | ;| bounds |
|00001e60| 72 65 63 74 20 6d 75 73 | 74 20 73 70 61 6e 20 74 |rect mus|t span t|
|00001e70| 68 65 20 77 68 6f 6c 65 | 20 62 69 74 6d 61 70 21 |he whole| bitmap!|
|00001e80| 0d 0d 20 20 20 20 20 20 | 20 20 73 77 61 70 20 44 |.. | swap D|
|00001e90| 31 09 09 09 20 20 20 20 | 20 20 20 20 3b 20 62 72 |1... | ; br|
|00001ea0| 69 6e 67 20 72 65 63 74 | 20 68 65 69 67 68 74 20 |ing rect| height |
|00001eb0| 74 6f 20 44 31 2e 77 0d | 20 20 20 20 20 20 20 20 |to D1.w.| |
|00001ec0| 6d 75 6c 75 20 44 31 2c | 44 33 09 09 20 20 20 20 |mulu D1,|D3.. |
|00001ed0| 20 20 20 20 3b 20 6d 75 | 6c 74 69 70 6c 79 20 77 | ; mu|ltiply w|
|00001ee0| 69 64 74 68 20 69 6e 20 | 62 79 74 65 73 20 74 69 |idth in |bytes ti|
|00001ef0| 6d 65 73 20 68 65 69 67 | 68 74 20 74 6f 20 66 69 |mes heig|ht to fi|
|00001f00| 6e 64 20 62 79 74 65 73 | 20 69 6e 20 74 68 65 20 |nd bytes| in the |
|00001f10| 72 65 63 74 61 6e 67 6c | 65 0d 20 20 20 20 20 20 |rectangl|e. |
|00001f20| 20 20 6d 6f 76 65 2e 6c | 20 44 33 2c 44 30 09 09 | move.l| D3,D0..|
|00001f30| 20 20 20 20 20 20 20 20 | 3b 20 63 6f 70 79 20 74 | |; copy t|
|00001f40| 68 61 74 20 74 6f 20 44 | 30 20 73 6f 20 77 65 20 |hat to D|0 so we |
|00001f50| 63 61 6e 2e 2e 2e 0d 20 | 20 20 20 20 20 20 20 62 |can.... | b|
|00001f60| 73 72 20 6c 6f 67 32 09 | 09 20 20 20 20 20 20 20 |sr log2.|. |
|00001f70| 20 3b 20 63 6f 6e 76 65 | 72 74 20 62 79 74 65 20 | ; conve|rt byte |
|00001f80| 63 6f 75 6e 74 20 70 65 | 72 20 72 65 63 74 20 74 |count pe|r rect t|
|00001f90| 6f 20 63 65 69 6c 28 6c | 6f 67 32 28 62 79 74 65 |o ceil(l|og2(byte|
|00001fa0| 20 63 6f 75 6e 74 29 29 | 20 69 6e 20 44 30 2e 77 | count))| in D0.w|
|00001fb0| 0d 20 20 20 20 20 20 20 | 20 73 77 61 70 20 44 33 |. | swap D3|
|00001fc0| 09 09 09 20 20 20 20 20 | 20 20 20 3b 20 6e 6f 77 |... | ; now|
|00001fd0| 20 6d 61 6b 65 20 73 75 | 72 65 20 74 68 61 74 20 | make su|re that |
|00001fe0| 74 68 65 20 6e 75 6d 62 | 65 72 20 6f 66 20 62 69 |the numb|er of bi|
|00001ff0| 74 73 20 66 69 74 73 20 | 69 6e 20 61 20 77 6f 72 |ts fits |in a wor|
|00002000| 64 2e 2e 2e 0d 20 20 20 | 20 20 20 20 20 74 73 74 |d.... | tst|
|00002010| 2e 77 20 44 33 09 09 20 | 20 20 20 20 20 20 20 3b |.w D3.. | ;|
|00002020| 20 6c 69 6b 65 20 73 6f | 0d 20 20 20 20 20 20 20 | like so|. |
|00002030| 20 62 6e 65 2e 73 20 6e | 6f 42 79 74 65 73 09 09 | bne.s n|oBytes..|
|00002040| 20 20 20 20 20 20 20 20 | 3b 20 73 6f 72 72 79 2c | |; sorry,|
|00002050| 20 74 6f 6f 20 6c 61 72 | 67 65 3b 20 69 20 77 61 | too lar|ge; i wa|
|00002060| 6e 74 20 74 6f 20 75 73 | 65 20 77 6f 72 64 20 6f |nt to us|e word o|
|00002070| 70 73 20 69 6e 20 74 68 | 65 20 6d 61 69 6e 20 6c |ps in th|e main l|
|00002080| 6f 6f 70 0d 20 20 20 20 | 20 20 20 20 73 77 61 70 |oop. | swap|
|00002090| 20 44 33 09 09 09 20 20 | 20 20 20 20 20 20 3b 20 | D3... | ; |
|000020a0| 6e 6f 77 20 70 75 74 20 | 44 33 20 62 61 63 6b 0d |now put |D3 back.|
|000020b0| 0d 20 20 20 20 20 20 20 | 20 6c 73 6c 2e 77 20 23 |. | lsl.w #|
|000020c0| 32 2c 44 30 09 09 20 20 | 20 20 20 20 20 20 3b 20 |2,D0.. | ; |
|000020d0| 6d 61 6b 65 20 74 68 65 | 20 74 61 62 6c 65 20 73 |make the| table s|
|000020e0| 74 72 69 64 65 20 72 69 | 67 68 74 20 5b 73 69 63 |tride ri|ght [sic|
|000020f0| 3f 5d 20 28 6c 6f 6e 67 | 77 6f 72 64 73 29 0d 20 |?] (long|words). |
|00002100| 20 20 20 20 20 20 20 6c | 65 61 20 54 41 42 4c 45 | l|ea TABLE|
|00002110| 2c 41 32 09 09 20 20 20 | 20 20 20 20 20 3b 20 70 |,A2.. | ; p|
|00002120| 6f 69 6e 74 20 74 6f 20 | 74 68 65 20 74 61 62 6c |oint to |the tabl|
|00002130| 65 20 6f 66 20 58 4f 52 | 20 6d 61 73 6b 73 0d 20 |e of XOR| masks. |
|00002140| 20 20 20 20 20 20 20 6d | 6f 76 65 2e 6c 20 30 28 | m|ove.l 0(|
|00002150| 41 32 2c 44 30 2e 77 29 | 2c 44 31 09 20 20 20 20 |A2,D0.w)|,D1. |
|00002160| 20 20 20 20 3b 20 67 72 | 61 62 20 74 68 65 20 63 | ; gr|ab the c|
|00002170| 6f 72 72 65 63 74 20 6d | 61 67 69 63 20 6d 61 73 |orrect m|agic mas|
|00002180| 6b 20 69 6e 20 44 31 0d | 0d 20 20 20 20 20 20 20 |k in D1.|. |
|00002190| 20 6d 6f 76 65 2e 6c 20 | 44 31 2c 44 32 09 09 20 | move.l |D1,D2.. |
|000021a0| 20 20 20 20 20 20 20 3b | 20 31 73 74 20 73 65 71 | ;| 1st seq|
|000021b0| 75 65 6e 63 65 20 65 6c | 65 6d 65 6e 74 20 69 73 |uence el|ement is|
|000021c0| 20 74 68 65 20 6d 61 73 | 6b 20 69 74 73 65 6c 66 | the mas|k itself|
|000021d0| 0d 0d 20 20 20 20 20 20 | 20 20 6d 6f 76 65 2e 6c |.. | move.l|
|000021e0| 20 62 61 73 65 41 64 64 | 72 28 41 30 29 2c 41 30 | baseAdd|r(A0),A0|
|000021f0| 09 20 20 20 20 20 20 20 | 20 3b 20 70 69 63 6b 20 |. | ; pick |
|00002200| 75 70 20 61 20 70 6f 69 | 6e 74 65 72 20 74 6f 20 |up a poi|nter to |
|00002210| 74 68 65 20 61 63 74 75 | 61 6c 20 73 6f 75 72 63 |the actu|al sourc|
|00002220| 65 20 73 74 75 66 66 0d | 20 20 20 20 20 20 20 20 |e stuff.| |
|00002230| 6d 6f 76 65 2e 6c 20 62 | 61 73 65 41 64 64 72 20 |move.l b|aseAddr |
|00002240| 28 41 31 29 2c 41 31 09 | 20 20 20 20 20 20 20 20 |(A1),A1.| |
|00002250| 3b 20 61 6e 64 20 74 6f | 20 74 68 65 20 74 61 72 |; and to| the tar|
|00002260| 67 65 74 20 28 6d 6f 73 | 74 20 6c 69 6b 65 6c 79 |get (mos|t likely|
|00002270| 20 74 68 65 20 73 63 72 | 65 65 6e 29 0d 20 20 20 | the scr|een). |
|00002280| 20 20 20 20 20 5f 68 69 | 64 65 43 75 72 73 09 09 | _hi|deCurs..|
|00002290| 20 20 20 20 20 20 20 20 | 3b 20 64 6f 6e 27 74 20 | |; don't |
|000022a0| 6c 65 74 20 74 68 65 20 | 63 75 72 73 6f 72 20 67 |let the |cursor g|
|000022b0| 65 74 20 69 6e 20 6f 75 | 72 20 77 61 79 0d 20 20 |et in ou|r way. |
|000022c0| 20 20 20 20 20 20 62 72 | 61 2e 73 20 42 59 54 45 | br|a.s BYTE|
|000022d0| 4c 50 09 09 20 20 20 20 | 20 20 20 20 3b 20 6a 75 |LP.. | ; ju|
|000022e0| 6d 70 20 69 6e 74 6f 20 | 74 68 65 20 6c 6f 6f 70 |mp into |the loop|
|000022f0| 0d 0d 3b 20 72 65 67 69 | 73 74 65 72 20 75 73 61 |..; regi|ster usa|
|00002300| 67 65 20 66 6f 72 20 74 | 68 65 20 6c 6f 6f 70 3a |ge for t|he loop:|
|00002310| 0d 3b 20 20 20 20 20 20 | 20 44 31 20 69 73 20 74 |.; | D1 is t|
|00002320| 68 65 20 6d 61 67 69 63 | 20 58 4f 52 20 6d 61 73 |he magic| XOR mas|
|00002330| 6b 20 74 6f 20 67 65 6e | 65 72 61 74 65 20 74 68 |k to gen|erate th|
|00002340| 65 20 73 65 71 75 65 6e | 63 65 0d 3b 20 20 20 20 |e sequen|ce.; |
|00002350| 20 20 20 44 32 20 69 73 | 20 74 68 65 20 63 75 72 | D2 is| the cur|
|00002360| 72 65 6e 74 20 73 65 71 | 75 65 6e 63 65 20 65 6c |rent seq|uence el|
|00002370| 65 6d 65 6e 74 0d 3b 20 | 20 20 20 20 20 20 44 33 |ement.; | D3|
|00002380| 20 69 73 20 74 68 65 20 | 6e 75 6d 62 65 72 20 6f | is the |number o|
|00002390| 66 20 62 79 74 65 73 20 | 69 6e 20 74 68 65 20 62 |f bytes |in the b|
|000023a0| 69 74 6d 61 70 20 28 31 | 20 6d 6f 72 65 20 74 68 |itmap (1| more th|
|000023b0| 61 6e 20 74 68 65 20 68 | 69 67 68 65 73 74 20 62 |an the h|ighest b|
|000023c0| 79 74 65 20 6f 66 66 73 | 65 74 29 0d 3b 20 20 20 |yte offs|et).; |
|000023d0| 20 20 20 20 41 30 20 70 | 6f 69 6e 74 73 20 74 6f | A0 p|oints to|
|000023e0| 20 74 68 65 20 73 6f 75 | 72 63 65 20 62 69 74 6d | the sou|rce bitm|
|000023f0| 61 70 27 73 20 64 61 74 | 61 0d 3b 20 20 20 20 20 |ap's dat|a.; |
|00002400| 20 20 41 31 20 70 6f 69 | 6e 74 73 20 74 6f 20 74 | A1 poi|nts to t|
|00002410| 68 65 20 64 65 73 74 69 | 6e 61 74 69 6f 6e 20 62 |he desti|nation b|
|00002420| 69 74 6d 61 70 27 73 20 | 64 61 74 61 0d 0d 42 59 |itmap's |data..BY|
|00002430| 54 45 53 45 51 0d 20 20 | 20 20 20 20 20 20 65 6f |TESEQ. | eo|
|00002440| 72 2e 77 20 44 31 2c 44 | 32 09 09 20 20 20 20 20 |r.w D1,D|2.. |
|00002450| 20 20 20 3b 20 67 6f 20 | 74 6f 20 74 68 65 20 6e | ; go |to the n|
|00002460| 65 78 74 20 73 65 71 75 | 65 6e 63 65 20 65 6c 65 |ext sequ|ence ele|
|00002470| 6d 65 6e 74 0d 42 59 54 | 45 4c 50 0d 20 20 20 20 |ment.BYT|ELP. |
|00002480| 20 20 20 20 63 6d 70 2e | 77 20 44 32 2c 44 33 09 | cmp.|w D2,D3.|
|00002490| 09 20 20 20 20 20 20 20 | 20 3b 20 69 73 20 44 32 |. | ; is D2|
|000024a0| 20 77 69 74 68 69 6e 20 | 74 68 65 20 72 61 6e 67 | within |the rang|
|000024b0| 65 20 28 31 2e 2e 44 33 | 2d 31 29 3f 0d 20 20 20 |e (1..D3|-1)?. |
|000024c0| 20 20 20 20 20 62 6c 65 | 2e 73 20 42 59 54 45 4e | ble|.s BYTEN|
|000024d0| 45 58 54 09 09 20 20 20 | 20 20 20 20 20 3b 20 6e |EXT.. | ; n|
|000024e0| 6f 70 65 3a 20 64 6f 6e | 27 74 20 63 6f 70 79 20 |ope: don|'t copy |
|000024f0| 74 68 69 73 20 62 79 74 | 65 0d 42 59 54 45 43 4f |this byt|e.BYTECO|
|00002500| 50 59 0d 20 20 20 20 20 | 20 20 20 6d 6f 76 65 2e |PY. | move.|
|00002510| 62 20 30 28 41 30 2c 44 | 32 2e 77 29 2c 30 28 41 |b 0(A0,D|2.w),0(A|
|00002520| 31 2c 44 32 2e 77 29 20 | 20 20 20 3b 20 63 6f 70 |1,D2.w) | ; cop|
|00002530| 79 20 44 32 27 74 68 20 | 62 79 74 65 20 66 72 6f |y D2'th |byte fro|
|00002540| 6d 20 41 30 27 73 20 64 | 61 74 61 20 74 6f 20 41 |m A0's d|ata to A|
|00002550| 31 27 73 20 64 61 74 61 | 0d 42 59 54 45 4e 45 58 |1's data|.BYTENEX|
|00002560| 54 0d 20 20 20 20 20 20 | 20 20 6c 73 72 2e 77 20 |T. | lsr.w |
|00002570| 23 31 2c 44 32 09 09 20 | 20 20 20 20 20 20 20 3b |#1,D2.. | ;|
|00002580| 20 73 6c 69 64 65 20 6f | 6e 65 20 62 69 74 20 74 | slide o|ne bit t|
|00002590| 6f 20 74 68 65 20 72 69 | 67 68 74 0d 20 20 20 20 |o the ri|ght. |
|000025a0| 20 20 20 20 62 68 69 2e | 73 20 42 59 54 45 43 4f | bhi.|s BYTECO|
|000025b0| 50 59 09 09 20 20 20 20 | 20 20 20 20 3b 20 69 66 |PY.. | ; if|
|000025c0| 20 6e 6f 20 63 61 72 72 | 79 20 6f 75 74 2c 20 62 | no carr|y out, b|
|000025d0| 75 74 20 6e 6f 74 20 7a | 65 72 6f 2c 20 6c 6f 6f |ut not z|ero, loo|
|000025e0| 70 0d 20 20 20 20 20 20 | 20 20 62 6e 65 2e 73 20 |p. | bne.s |
|000025f0| 42 59 54 45 53 45 51 09 | 09 20 20 20 20 20 20 20 |BYTESEQ.|. |
|00002600| 20 3b 20 69 66 20 63 61 | 72 72 79 20 6f 75 74 2c | ; if ca|rry out,|
|00002610| 20 62 75 74 20 6e 6f 74 | 20 7a 65 72 6f 2c 20 6c | but not| zero, l|
|00002620| 6f 6f 70 20 65 61 72 6c | 69 65 72 0d 0d 20 20 20 |oop earl|ier.. |
|00002630| 20 20 20 20 20 6d 6f 76 | 65 2e 62 20 28 41 30 29 | mov|e.b (A0)|
|00002640| 2c 28 41 31 29 09 20 20 | 20 20 20 20 20 20 3b 20 |,(A1). | ; |
|00002650| 63 6f 70 79 20 74 68 65 | 20 7a 65 72 6f 27 74 68 |copy the| zero'th|
|00002660| 20 65 6c 65 6d 65 6e 74 | 2c 20 77 68 69 63 68 20 | element|, which |
|00002670| 74 68 65 20 73 65 71 75 | 65 6e 63 65 20 64 6f 65 |the sequ|ence doe|
|00002680| 73 6e 27 74 20 68 69 74 | 0d 20 20 20 20 20 20 20 |sn't hit|. |
|00002690| 20 5f 73 68 6f 77 43 75 | 72 73 09 09 20 20 20 20 | _showCu|rs.. |
|000026a0| 20 20 20 20 3b 20 62 72 | 69 6e 67 20 62 61 63 6b | ; br|ing back|
|000026b0| 20 74 68 65 20 63 75 72 | 73 6f 72 20 28 6f 72 20 | the cur|sor (or |
|000026c0| 61 74 20 6c 65 61 73 74 | 20 75 6e 64 6f 20 6f 6e |at least| undo on|
|000026d0| 65 20 6c 65 76 65 6c 20 | 6f 66 20 68 69 64 69 6e |e level |of hidin|
|000026e0| 67 29 0d 0d 4e 4f 42 59 | 54 45 53 09 09 09 09 20 |g)..NOBY|TES.... |
|000026f0| 20 20 20 20 20 20 20 3b | 20 68 65 72 65 20 77 68 | ;| here wh|
|00002700| 65 6e 20 77 65 20 63 61 | 6e 27 74 20 63 6f 70 79 |en we ca|n't copy|
|00002710| 0d 20 20 20 20 20 20 20 | 20 6d 6f 76 65 6d 2e 6c |. | movem.l|
|00002720| 20 28 41 37 29 2b 2c 44 | 33 2f 41 32 09 20 20 20 | (A7)+,D|3/A2. |
|00002730| 20 20 20 20 20 3b 20 70 | 6f 70 20 6e 65 65 64 65 | ; p|op neede|
|00002740| 64 20 72 65 67 69 73 74 | 65 72 73 0d 20 20 20 20 |d regist|ers. |
|00002750| 20 20 20 20 75 6e 6c 6b | 20 41 36 09 09 09 20 20 | unlk| A6... |
|00002760| 20 20 20 20 20 20 3b 20 | 64 65 6c 65 74 65 20 6f | ; |delete o|
|00002770| 75 72 20 65 6d 70 74 79 | 20 73 74 61 63 6b 20 66 |ur empty| stack f|
|00002780| 72 61 6d 65 0d 20 20 20 | 20 20 20 20 20 6d 6f 76 |rame. | mov|
|00002790| 65 2e 6c 20 28 41 37 29 | 2b 2c 41 30 09 09 20 20 |e.l (A7)|+,A0.. |
|000027a0| 20 20 20 20 20 20 3b 20 | 70 6f 70 20 6f 75 72 20 | ; |pop our |
|000027b0| 72 65 74 75 72 6e 0d 20 | 20 20 20 20 20 20 20 61 |return. | a|
|000027c0| 64 64 2e 6c 20 23 38 2c | 41 37 09 09 20 20 20 20 |dd.l #8,|A7.. |
|000027d0| 20 20 20 20 3b 20 64 65 | 61 6c 6c 6f 63 61 74 65 | ; de|allocate|
|000027e0| 20 70 61 72 61 6d 65 74 | 65 72 73 0d 20 20 20 20 | paramet|ers. |
|000027f0| 20 20 20 20 6a 6d 70 20 | 28 41 30 29 09 09 20 20 | jmp |(A0).. |
|00002800| 20 20 20 20 20 20 3b 20 | 61 6e 64 20 72 65 74 75 | ; |and retu|
|00002810| 72 6e 0d 0d 0d 3b 0d 3b | 20 2d 2d 2d 2d 2d 2d 2d |rn...;.;| -------|
|00002820| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002830| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002840| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002850| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002860| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 0d 3b 0d 3b |--------|----.;.;|
|00002870| 20 74 61 62 6c 65 20 6f | 66 20 28 6c 6f 6e 67 77 | table o|f (longw|
|00002880| 6f 72 64 29 20 6d 61 73 | 6b 73 20 74 6f 20 58 4f |ord) mas|ks to XO|
|00002890| 52 20 69 6e 20 73 74 72 | 61 6e 67 65 20 4b 6e 75 |R in str|ange Knu|
|000028a0| 74 68 69 61 6e 20 61 6c | 67 6f 72 69 74 68 6d 2e |thian al|gorithm.|
|000028b0| 20 20 74 68 65 20 66 69 | 72 73 74 20 74 61 62 6c | the fi|rst tabl|
|000028c0| 65 0d 3b 20 65 6e 74 72 | 79 20 69 73 20 66 6f 72 |e.; entr|y is for|
|000028d0| 20 61 20 62 69 74 2d 77 | 69 64 74 68 20 6f 66 20 | a bit-w|idth of |
|000028e0| 74 77 6f 2c 20 73 6f 20 | 74 68 65 20 74 61 62 6c |two, so |the tabl|
|000028f0| 65 20 61 63 74 75 61 6c | 6c 79 20 73 74 61 72 74 |e actual|ly start|
|00002900| 73 20 74 77 6f 20 6c 6f | 6e 67 77 6f 72 64 73 20 |s two lo|ngwords |
|00002910| 62 65 66 6f 72 65 0d 3b | 20 74 68 61 74 2e 09 20 |before.;| that.. |
|00002920| 68 61 72 64 77 61 72 65 | 20 6a 6f 63 6b 73 20 61 |hardware| jocks a|
|00002930| 6d 6f 6e 67 20 79 6f 75 | 20 6d 61 79 20 72 65 63 |mong you| may rec|
|00002940| 6f 67 6e 69 7a 65 20 74 | 68 69 73 20 73 63 68 65 |ognize t|his sche|
|00002950| 6d 65 20 61 73 20 74 68 | 65 20 73 6f 66 74 77 61 |me as th|e softwa|
|00002960| 72 65 20 61 6e 61 6c 6f | 67 0d 3b 20 6f 66 20 61 |re analo|g.; of a|
|00002970| 20 22 6d 61 78 69 6d 75 | 6d 2d 6c 65 6e 67 74 68 | "maximu|m-length|
|00002980| 20 73 65 71 75 65 6e 63 | 65 20 67 65 6e 65 72 61 | sequenc|e genera|
|00002990| 74 6f 72 22 2e 0d 3b 0d | 0d 74 61 62 6c 65 20 20 |tor"..;.|.table |
|000029a0| 20 2e 65 71 75 20 2a 2d | 38 09 09 20 20 20 20 20 | .equ *-|8.. |
|000029b0| 20 20 20 3b 20 66 69 72 | 73 74 20 65 6c 65 6d 65 | ; fir|st eleme|
|000029c0| 6e 74 20 69 73 20 23 32 | 3b 20 73 74 72 69 64 65 |nt is #2|; stride|
|000029d0| 20 69 73 20 66 6f 75 72 | 20 62 79 74 65 73 0d 2e | is four| bytes..|
|000029e0| 6c 6f 6e 67 20 20 20 33 | 6f 09 09 09 20 20 20 20 |long 3|o... |
|000029f0| 20 20 20 20 3b 20 32 0d | 2e 6c 6f 6e 67 20 20 20 | ; 2.|.long |
|00002a00| 36 6f 09 09 09 20 20 20 | 20 20 20 20 20 3b 20 33 |6o... | ; 3|
|00002a10| 0d 2e 6c 6f 6e 67 20 20 | 20 31 34 6f 09 09 09 20 |..long | 14o... |
|00002a20| 20 20 20 20 20 20 20 3b | 20 34 0d 2e 6c 6f 6e 67 | ;| 4..long|
|00002a30| 20 20 20 32 34 6f 09 09 | 09 20 20 20 20 20 20 20 | 24o..|. |
|00002a40| 20 3b 20 35 0d 2e 6c 6f | 6e 67 20 20 20 36 30 6f | ; 5..lo|ng 60o|
|00002a50| 09 09 09 20 20 20 20 20 | 20 20 20 3b 20 36 0d 2e |... | ; 6..|
|00002a60| 6c 6f 6e 67 20 20 20 31 | 34 30 6f 09 09 09 20 20 |long 1|40o... |
|00002a70| 20 20 20 20 20 20 3b 20 | 37 0d 2e 6c 6f 6e 67 20 | ; |7..long |
|00002a80| 20 20 32 37 30 6f 09 09 | 09 20 20 20 20 20 20 20 | 270o..|. |
|00002a90| 20 3b 20 38 0d 2e 6c 6f | 6e 67 20 20 20 34 32 30 | ; 8..lo|ng 420|
|00002aa0| 6f 09 09 09 20 20 20 20 | 20 20 20 20 3b 20 39 0d |o... | ; 9.|
|00002ab0| 2e 6c 6f 6e 67 20 20 20 | 31 31 30 30 6f 09 09 09 |.long |1100o...|
|00002ac0| 20 20 20 20 20 20 20 20 | 3b 20 31 30 0d 2e 6c 6f | |; 10..lo|
|00002ad0| 6e 67 20 20 20 32 34 30 | 30 6f 09 09 09 20 20 20 |ng 240|0o... |
|00002ae0| 20 20 20 20 20 3b 20 31 | 31 0d 2e 6c 6f 6e 67 20 | ; 1|1..long |
|00002af0| 20 20 36 32 34 30 6f 09 | 09 09 20 20 20 20 20 20 | 6240o.|.. |
|00002b00| 20 20 3b 20 31 32 0d 2e | 6c 6f 6e 67 20 20 20 31 | ; 12..|long 1|
|00002b10| 35 34 30 30 6f 09 09 09 | 20 20 20 20 20 20 20 20 |5400o...| |
|00002b20| 3b 20 31 33 0d 2e 6c 6f | 6e 67 20 20 20 33 32 34 |; 13..lo|ng 324|
|00002b30| 30 30 6f 09 09 09 20 20 | 20 20 20 20 20 20 3b 20 |00o... | ; |
|00002b40| 31 34 0d 2e 6c 6f 6e 67 | 20 20 20 36 30 30 30 30 |14..long| 60000|
|00002b50| 6f 09 09 09 20 20 20 20 | 20 20 20 20 3b 20 31 35 |o... | ; 15|
|00002b60| 0d 2e 6c 6f 6e 67 20 20 | 20 31 33 32 30 30 30 6f |..long | 132000o|
|00002b70| 09 09 09 20 20 20 20 20 | 20 20 20 3b 20 31 36 0d |... | ; 16.|
|00002b80| 2e 6c 6f 6e 67 20 20 20 | 32 32 30 30 30 30 6f 09 |.long |220000o.|
|00002b90| 09 09 20 20 20 20 20 20 | 20 20 3b 20 31 37 0d 2e |.. | ; 17..|
|00002ba0| 6c 6f 6e 67 20 20 20 34 | 30 32 30 30 30 6f 09 09 |long 4|02000o..|
|00002bb0| 09 20 20 20 20 20 20 20 | 20 3b 20 31 38 0d 2e 6c |. | ; 18..l|
|00002bc0| 6f 6e 67 20 20 20 31 36 | 32 30 30 30 30 6f 09 09 |ong 16|20000o..|
|00002bd0| 20 20 20 20 20 20 20 20 | 3b 20 31 39 0d 2e 6c 6f | |; 19..lo|
|00002be0| 6e 67 20 20 20 32 32 30 | 30 30 30 30 6f 09 09 20 |ng 220|0000o.. |
|00002bf0| 20 20 20 20 20 20 20 3b | 20 32 30 0d 2e 6c 6f 6e | ;| 20..lon|
|00002c00| 67 20 20 20 35 30 30 30 | 30 30 30 6f 09 09 20 20 |g 5000|000o.. |
|00002c10| 20 20 20 20 20 20 3b 20 | 32 31 0d 2e 6c 6f 6e 67 | ; |21..long|
|00002c20| 20 20 20 31 34 30 30 30 | 30 30 30 6f 09 09 20 20 | 14000|000o.. |
|00002c30| 20 20 20 20 20 20 3b 20 | 32 32 0d 2e 6c 6f 6e 67 | ; |22..long|
|00002c40| 20 20 20 32 30 34 30 30 | 30 30 30 6f 09 09 20 20 | 20400|000o.. |
|00002c50| 20 20 20 20 20 20 3b 20 | 32 33 0d 2e 6c 6f 6e 67 | ; |23..long|
|00002c60| 20 20 20 36 36 30 30 30 | 30 30 30 6f 09 09 20 20 | 66000|000o.. |
|00002c70| 20 20 20 20 20 20 3b 20 | 32 34 0d 2e 6c 6f 6e 67 | ; |24..long|
|00002c80| 20 20 20 31 31 30 30 30 | 30 30 30 30 6f 09 09 20 | 11000|0000o.. |
|00002c90| 20 20 20 20 20 20 20 3b | 20 32 35 0d 2e 6c 6f 6e | ;| 25..lon|
|00002ca0| 67 20 20 20 33 34 32 30 | 30 30 30 30 30 6f 09 09 |g 3420|00000o..|
|00002cb0| 20 20 20 20 20 20 20 20 | 3b 20 32 36 0d 2e 6c 6f | |; 26..lo|
|00002cc0| 6e 67 20 20 20 37 31 30 | 30 30 30 30 30 30 6f 09 |ng 710|000000o.|
|00002cd0| 09 20 20 20 20 20 20 20 | 20 3b 20 32 37 0d 2e 6c |. | ; 27..l|
|00002ce0| 6f 6e 67 20 20 20 31 31 | 30 30 30 30 30 30 30 30 |ong 11|00000000|
|00002cf0| 6f 09 09 20 20 20 20 20 | 20 20 20 3b 20 32 38 0d |o.. | ; 28.|
|00002d00| 2e 6c 6f 6e 67 20 20 20 | 32 34 30 30 30 30 30 30 |.long |24000000|
|00002d10| 30 30 6f 09 09 20 20 20 | 20 20 20 20 20 3b 20 32 |00o.. | ; 2|
|00002d20| 39 0d 2e 6c 6f 6e 67 20 | 20 20 36 32 34 30 30 30 |9..long | 624000|
|00002d30| 30 30 30 30 6f 09 09 20 | 20 20 20 20 20 20 20 3b |0000o.. | ;|
|00002d40| 20 33 30 0d 2e 6c 6f 6e | 67 20 20 20 31 31 30 30 | 30..lon|g 1100|
|00002d50| 30 30 30 30 30 30 30 6f | 09 09 20 20 20 20 20 20 |0000000o|.. |
|00002d60| 20 20 3b 20 33 31 0d 2e | 6c 6f 6e 67 20 20 20 32 | ; 31..|long 2|
|00002d70| 34 33 30 30 30 30 30 30 | 30 30 6f 09 09 20 20 20 |43000000|00o.. |
|00002d80| 20 20 20 20 20 3b 20 33 | 32 0d 0d 3b 0d 3b 20 2d | ; 3|2..;.; -|
|00002d90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002da0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002db0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002dc0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002dd0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002de0| 2d 2d 0d 3b 0d 3b 20 6c | 6f 67 32 20 2d 2d 20 66 |--.;.; l|og2 -- f|
|00002df0| 69 6e 64 20 74 68 65 20 | 63 65 69 6c 69 6e 67 20 |ind the |ceiling |
|00002e00| 6f 66 20 74 68 65 20 6c | 6f 67 2c 20 62 61 73 65 |of the l|og, base|
|00002e10| 20 32 2c 20 6f 66 20 61 | 20 6e 75 6d 62 65 72 2e | 2, of a| number.|
|00002e20| 0d 3b 0d 3b 20 63 61 6c | 6c 69 6e 67 20 73 65 71 |.;.; cal|ling seq|
|00002e30| 75 65 6e 63 65 3a 0d 3b | 20 20 20 20 20 20 20 6d |uence:.;| m|
|00002e40| 6f 76 65 2e 6c 20 4e 2c | 44 30 09 09 20 20 20 20 |ove.l N,|D0.. |
|00002e50| 20 20 20 20 3b 20 73 74 | 6f 72 65 20 74 68 65 20 | ; st|ore the |
|00002e60| 6e 75 6d 62 65 72 20 69 | 6e 20 44 30 0d 3b 20 20 |number i|n D0.; |
|00002e70| 20 20 20 20 20 62 73 72 | 20 4c 4f 47 32 09 09 20 | bsr| LOG2.. |
|00002e80| 20 20 20 20 20 20 20 3b | 20 63 61 6c 6c 20 75 73 | ;| call us|
|00002e90| 0d 3b 20 20 20 20 20 20 | 20 6d 6f 76 65 2e 77 20 |.; | move.w |
|00002ea0| 44 30 2c 2e 2e 2e 09 09 | 20 20 20 20 20 20 20 20 |D0,.....| |
|00002eb0| 3b 20 44 30 20 63 6f 6e | 74 61 69 6e 73 20 74 68 |; D0 con|tains th|
|00002ec0| 65 20 77 6f 72 64 20 72 | 65 73 75 6c 74 0d 3b 0d |e word r|esult.;.|
|00002ed0| 3b 20 72 65 67 69 73 74 | 65 72 73 20 75 73 65 64 |; regist|ers used|
|00002ee0| 3a 20 44 32 2c 20 28 44 | 30 29 0d 3b 0d 0d 4c 4f |: D2, (D|0).;..LO|
|00002ef0| 47 32 0d 20 20 20 20 20 | 20 20 20 74 73 74 2e 6c |G2. | tst.l|
|00002f00| 20 44 30 09 09 20 20 20 | 20 20 20 20 20 3b 20 64 | D0.. | ; d|
|00002f10| 69 64 20 74 68 65 79 20 | 70 61 73 73 20 75 73 20 |id they |pass us |
|00002f20| 61 20 7a 65 72 6f 3f 0d | 20 20 20 20 20 20 20 20 |a zero?.| |
|00002f30| 62 65 71 2e 73 20 4c 4f | 47 44 4f 4e 45 09 09 20 |beq.s LO|GDONE.. |
|00002f40| 20 20 20 20 20 20 20 3b | 20 63 61 6c 6c 20 6c 6f | ;| call lo|
|00002f50| 67 32 28 30 29 20 7a 65 | 72 6f 20 2d 2d 20 77 68 |g2(0) ze|ro -- wh|
|00002f60| 61 74 20 74 68 65 20 68 | 65 63 6b 2e 2e 2e 0d 20 |at the h|eck.... |
|00002f70| 20 20 20 20 20 20 20 73 | 75 62 2e 6c 20 23 31 2c | s|ub.l #1,|
|00002f80| 44 30 09 09 20 20 20 20 | 20 20 20 20 3b 20 73 6f |D0.. | ; so|
|00002f90| 20 32 2a 2a 6e 20 77 6f | 72 6b 73 20 72 69 67 68 | 2**n wo|rks righ|
|00002fa0| 74 20 28 73 69 67 68 29 | 0d 20 20 20 20 20 20 20 |t (sigh)|. |
|00002fb0| 20 62 65 71 2e 73 20 4c | 4f 47 44 4f 4e 45 09 09 | beq.s L|OGDONE..|
|00002fc0| 20 20 20 20 20 20 20 20 | 3b 20 69 66 20 44 30 20 | |; if D0 |
|00002fd0| 77 61 73 20 6f 6e 65 2c | 20 61 6e 73 77 65 72 20 |was one,| answer |
|00002fe0| 69 73 20 7a 65 72 6f 0d | 20 20 20 20 20 20 20 20 |is zero.| |
|00002ff0| 6d 6f 76 65 2e 77 20 23 | 33 32 2c 44 32 09 09 20 |move.w #|32,D2.. |
|00003000| 20 20 20 20 20 20 20 3b | 20 69 6e 69 74 69 61 6c | ;| initial|
|00003010| 69 7a 65 20 63 6f 75 6e | 74 0d 4c 4f 47 32 4c 50 |ize coun|t.LOG2LP|
|00003020| 0d 20 20 20 20 20 20 20 | 20 6c 73 6c 2e 6c 20 23 |. | lsl.l #|
|00003030| 31 2c 44 30 09 09 20 20 | 20 20 20 20 20 20 3b 20 |1,D0.. | ; |
|00003040| 73 6c 69 64 65 20 62 69 | 74 73 20 74 6f 20 74 68 |slide bi|ts to th|
|00003050| 65 20 6c 65 66 74 20 62 | 79 20 6f 6e 65 0d 20 20 |e left b|y one. |
|00003060| 20 20 20 20 20 20 64 62 | 63 73 20 44 32 2c 4c 4f | db|cs D2,LO|
|00003070| 47 32 4c 50 09 09 20 20 | 20 20 20 20 20 20 3b 20 |G2LP.. | ; |
|00003080| 64 65 63 72 65 6d 65 6e | 74 20 61 6e 64 20 6c 6f |decremen|t and lo|
|00003090| 6f 70 20 75 6e 74 69 6c | 20 61 20 62 69 74 20 66 |op until| a bit f|
|000030a0| 61 6c 6c 73 20 6f 66 66 | 0d 0d 20 20 20 20 20 20 |alls off|.. |
|000030b0| 20 20 6d 6f 76 65 2e 77 | 20 44 32 2c 44 30 09 09 | move.w| D2,D0..|
|000030c0| 20 20 20 20 20 20 20 20 | 3b 20 65 6c 73 65 20 73 | |; else s|
|000030d0| 61 76 65 20 6f 75 72 20 | 76 61 6c 75 65 20 77 68 |ave our |value wh|
|000030e0| 65 72 65 20 77 65 20 70 | 72 6f 6d 69 73 65 64 20 |ere we p|romised |
|000030f0| 69 74 0d 4c 4f 47 44 4f | 4e 45 09 09 09 09 20 20 |it.LOGDO|NE.... |
|00003100| 20 20 20 20 20 20 3b 20 | 68 65 72 65 20 77 69 74 | ; |here wit|
|00003110| 68 20 66 69 6e 61 6c 20 | 76 61 6c 75 65 20 69 6e |h final |value in|
|00003120| 20 44 30 0d 20 20 20 20 | 20 20 20 20 72 74 73 09 | D0. | rts.|
|00003130| 09 09 20 20 20 20 20 20 | 20 20 3b 20 61 6e 64 20 |.. | ; and |
|00003140| 72 65 74 75 72 6e 0d 0d | 2e 65 6e 64 09 09 09 09 |return..|.end....|
|00003150| 20 20 20 20 20 20 20 20 | 3b 20 70 72 6f 63 65 64 | |; proced|
|00003160| 75 72 65 20 64 69 73 73 | 42 79 74 65 73 0d 00 00 |ure diss|Bytes...|
|00003170| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+