home *** CD-ROM | disk | FTP | other *** search
Unknown | 1994-06-05 | 10.7 KB |
open in:
MacOS 8.1
|
Win98
|
DOS
view JSON data
|
view as text
This file was not able to be converted.
This format is not currently supported by dexvert.
Confidence | Program | Detection | Match Type | Support
|
---|
10%
| dexvert
| Truevision Targa Graphic (image/tga)
| magic
| Supported |
100%
| file
| data
| default
| |
100%
| xdgMime
| image/x-tga
| default (weak)
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 0d 00 0a 12 2a 7c 73 74 | 61 72 74 20 4d 65 6d 6f |....*|st|art Memo|
|00000010| 72 79 0d 00 14 15 2a 7c | 21 4d 45 4d 4f 52 59 20 |ry....*||!MEMORY |
|00000020| 4c 69 62 72 61 72 79 0d | 00 1e 07 2a 7c 21 0d 00 |Library.|...*|!..|
|00000030| 28 33 2a 7c 21 56 65 72 | 73 69 6f 6e 20 32 2e 31 |(3*|!Ver|sion 2.1|
|00000040| 30 20 2d 20 28 43 29 20 | 49 61 6e 20 50 61 6c 6d |0 - (C) |Ian Palm|
|00000050| 65 72 2c 20 35 74 68 20 | 4a 75 6e 65 20 31 39 39 |er, 5th |June 199|
|00000060| 34 0d 00 32 07 2a 7c 21 | 0d 00 3c 4a 2a 7c 21 54 |4..2.*|!|..<J*|!T|
|00000070| 68 69 73 20 6c 69 62 72 | 61 72 79 20 70 72 6f 76 |his libr|ary prov|
|00000080| 69 64 65 73 20 64 79 6e | 61 6d 69 63 20 6d 65 6d |ides dyn|amic mem|
|00000090| 6f 72 79 20 61 6c 6c 6f | 63 61 74 69 6f 6e 20 66 |ory allo|cation f|
|000000a0| 6f 72 20 42 61 73 69 63 | 20 70 72 6f 67 72 61 6d |or Basic| program|
|000000b0| 73 2e 0d 00 46 4a 2a 7c | 21 54 68 65 72 65 20 61 |s...FJ*||!There a|
|000000c0| 72 65 20 74 77 6f 20 77 | 61 79 73 20 74 68 69 73 |re two w|ays this|
|000000d0| 20 6c 69 62 72 61 72 79 | 20 63 61 6e 20 67 61 69 | library| can gai|
|000000e0| 6e 20 6d 6f 72 65 20 6d | 65 6d 6f 72 79 20 66 6f |n more m|emory fo|
|000000f0| 72 20 61 6c 6c 6f 63 61 | 74 69 6f 6e 0d 00 50 4e |r alloca|tion..PN|
|00000100| 2a 7c 21 65 69 74 68 65 | 72 20 66 72 6f 6d 20 42 |*|!eithe|r from B|
|00000110| 61 73 69 63 20 69 74 73 | 65 6c 66 20 28 75 73 69 |asic its|elf (usi|
|00000120| 6e 67 20 44 49 4d 29 20 | 6f 72 20 66 72 6f 6d 20 |ng DIM) |or from |
|00000130| 74 68 65 20 57 49 4d 50 | 20 66 72 65 65 20 6d 65 |the WIMP| free me|
|00000140| 6d 6f 72 79 20 70 6f 6f | 6c 2e 0d 00 5a 48 2a 7c |mory poo|l...ZH*||
|00000150| 21 54 68 65 20 66 6f 72 | 6d 65 72 20 6d 65 74 68 |!The for|mer meth|
|00000160| 6f 64 20 69 73 20 72 65 | 66 65 72 65 64 20 74 6f |od is re|fered to|
|00000170| 20 61 73 20 74 68 65 20 | 27 73 6d 61 6c 6c 27 20 | as the |'small' |
|00000180| 6d 65 6d 6f 72 79 20 61 | 6c 6c 6f 63 61 74 69 6f |memory a|llocatio|
|00000190| 6e 2c 0d 00 64 48 2a 7c | 21 74 68 65 20 6c 61 74 |n,..dH*||!the lat|
|000001a0| 74 65 72 20 6d 65 74 68 | 6f 64 20 69 73 20 72 65 |ter meth|od is re|
|000001b0| 66 65 72 65 64 20 74 6f | 20 61 73 20 74 68 65 20 |fered to| as the |
|000001c0| 27 6c 61 72 67 65 27 20 | 6d 65 6d 6f 72 79 20 61 |'large' |memory a|
|000001d0| 6c 6c 6f 63 61 74 69 6f | 6e 2e 0d 00 6e 4f 2a 7c |llocatio|n...nO*||
|000001e0| 21 54 68 65 20 6d 65 74 | 68 6f 64 20 75 73 65 64 |!The met|hod used|
|000001f0| 20 69 73 20 73 65 6c 65 | 63 74 65 64 20 62 79 20 | is sele|cted by |
|00000200| 74 68 65 20 75 73 65 72 | 20 75 70 6f 6e 20 69 6e |the user| upon in|
|00000210| 69 74 69 61 6c 69 73 61 | 74 69 6f 6e 20 28 50 52 |itialisa|tion (PR|
|00000220| 4f 43 6d 65 6d 6f 72 79 | 29 0d 00 78 2b 2a 7c 21 |OCmemory|)..x+*|!|
|00000230| 61 6e 64 20 63 61 6e 20 | 61 6c 73 6f 20 62 65 20 |and can |also be |
|00000240| 63 68 61 6e 67 65 64 20 | 61 74 20 61 6e 79 20 74 |changed |at any t|
|00000250| 69 6d 65 2e 0d 00 82 07 | 2a 7c 21 0d 00 8c 4f 2a |ime.....|*|!...O*|
|00000260| 7c 21 54 68 65 20 4d 65 | 6d 6f 72 79 20 6c 69 62 ||!The Me|mory lib|
|00000270| 72 61 72 79 20 69 73 20 | 61 6e 20 69 6e 74 65 67 |rary is |an integ|
|00000280| 72 61 6c 20 70 61 72 74 | 20 6f 66 20 74 68 65 20 |ral part| of the |
|00000290| 42 6c 69 62 49 49 20 6c | 69 62 72 61 72 79 20 63 |BlibII l|ibrary c|
|000002a0| 6f 6c 6c 65 63 74 69 6f | 6e 2e 0d 00 96 4e 2a 7c |ollectio|n....N*||
|000002b0| 21 41 6c 74 68 6f 75 67 | 68 20 79 6f 75 20 6d 61 |!Althoug|h you ma|
|000002c0| 79 20 6e 6f 74 20 64 69 | 72 65 63 74 6c 79 20 75 |y not di|rectly u|
|000002d0| 73 65 20 69 74 2c 20 75 | 73 69 6e 67 20 6d 6f 73 |se it, u|sing mos|
|000002e0| 74 20 6f 66 20 74 68 65 | 20 6f 74 68 65 72 20 6c |t of the| other l|
|000002f0| 69 62 72 61 72 69 65 73 | 0d 00 a0 4b 2a 7c 21 77 |ibraries|...K*|!w|
|00000300| 69 6c 6c 20 72 65 71 75 | 69 72 65 20 79 6f 75 20 |ill requ|ire you |
|00000310| 74 6f 20 69 6e 69 74 69 | 61 6c 69 73 65 20 74 68 |to initi|alise th|
|00000320| 65 20 6d 65 6d 6f 72 79 | 20 6c 69 62 72 61 72 79 |e memory| library|
|00000330| 2e 20 49 6e 20 67 65 6e | 65 72 61 6c 20 61 73 73 |. In gen|eral ass|
|00000340| 75 6d 65 0d 00 aa 4f 2a | 7c 21 74 68 61 74 20 79 |ume...O*||!that y|
|00000350| 6f 75 20 6e 65 65 64 20 | 74 68 69 73 2c 20 75 6e |ou need |this, un|
|00000360| 6c 65 73 73 20 79 6f 75 | 20 61 72 65 20 75 73 69 |less you| are usi|
|00000370| 6e 67 20 6f 6e 6c 79 20 | 61 20 66 65 77 20 4f 53 |ng only |a few OS|
|00000380| 20 6c 69 62 72 61 72 79 | 20 72 6f 75 74 69 6e 65 | library| routine|
|00000390| 73 2e 0d 00 b4 11 2a 7c | 73 74 6f 70 20 4d 65 6d |s.....*||stop Mem|
|000003a0| 6f 72 79 0d 00 be 16 2a | 7c 73 74 61 72 74 20 50 |ory....*||start P|
|000003b0| 52 4f 43 6d 65 6d 6f 72 | 79 0d 00 c8 22 2a 7c 21 |ROCmemor|y..."*|!|
|000003c0| 50 52 4f 43 6d 65 6d 6f | 72 79 28 20 65 72 72 6f |PROCmemo|ry( erro|
|000003d0| 72 20 2c 20 73 6d 61 6c | 6c 20 29 0d 00 d2 07 2a |r , smal|l )....*|
|000003e0| 7c 21 0d 00 dc 4f 2a 7c | 21 54 68 69 73 20 70 72 ||!...O*||!This pr|
|000003f0| 6f 63 65 64 75 72 65 20 | 69 6e 69 74 69 61 6c 69 |ocedure |initiali|
|00000400| 73 65 73 20 74 68 65 20 | 6d 65 6d 6f 72 79 20 61 |ses the |memory a|
|00000410| 6c 6c 6f 63 61 74 69 6f | 6e 20 70 72 6f 63 65 64 |llocatio|n proced|
|00000420| 75 72 65 73 2c 20 61 6e | 64 20 4d 55 53 54 20 62 |ures, an|d MUST b|
|00000430| 65 0d 00 e6 4f 2a 7c 21 | 63 61 6c 6c 65 64 20 62 |e...O*|!|called b|
|00000440| 65 66 6f 72 65 20 61 6e | 79 20 6f 66 20 74 68 65 |efore an|y of the|
|00000450| 20 6f 74 68 65 72 20 70 | 72 6f 63 65 64 75 72 65 | other p|rocedure|
|00000460| 73 20 69 6e 20 74 68 69 | 73 20 6c 69 62 72 61 72 |s in thi|s librar|
|00000470| 79 20 28 61 6e 64 20 6d | 75 73 74 20 6f 6e 6c 79 |y (and m|ust only|
|00000480| 0d 00 f0 43 2a 7c 21 62 | 65 20 63 61 6c 6c 65 64 |...C*|!b|e called|
|00000490| 20 6f 6e 63 65 29 2e 20 | 54 68 65 20 74 77 6f 20 | once). |The two |
|000004a0| 62 6f 6f 6c 65 61 6e 20 | 70 61 72 61 6d 65 74 65 |boolean |paramete|
|000004b0| 72 73 20 61 72 65 20 61 | 73 20 66 6f 6c 6c 6f 77 |rs are a|s follow|
|000004c0| 73 20 3a 0d 00 fa 07 2a | 7c 21 0d 01 04 4b 2a 7c |s :....*||!...K*||
|000004d0| 21 20 65 72 72 6f 72 20 | 20 2d 20 20 49 66 20 54 |! error | - If T|
|000004e0| 52 55 45 20 74 68 65 20 | 6c 69 62 72 61 72 79 20 |RUE the |library |
|000004f0| 77 69 6c 6c 20 72 61 69 | 73 65 20 61 6e 20 45 52 |will rai|se an ER|
|00000500| 52 4f 52 20 28 6e 75 6d | 62 65 72 20 31 31 29 20 |ROR (num|ber 11) |
|00000510| 69 73 20 69 74 0d 01 0e | 48 2a 7c 21 20 20 20 20 |is it...|H*|! |
|00000520| 20 20 20 20 20 20 20 69 | 73 20 75 6e 61 62 6c 65 | i|s unable|
|00000530| 20 74 6f 20 61 6c 6c 6f | 63 61 74 65 20 74 68 65 | to allo|cate the|
|00000540| 20 72 65 71 75 69 72 65 | 64 20 6d 65 6d 6f 72 79 | require|d memory|
|00000550| 2c 20 69 66 20 46 41 4c | 53 45 20 6e 6f 0d 01 18 |, if FAL|SE no...|
|00000560| 4d 2a 7c 21 20 20 20 20 | 20 20 20 20 20 20 20 65 |M*|! | e|
|00000570| 72 72 6f 72 20 69 73 20 | 72 61 69 73 65 64 2c 20 |rror is |raised, |
|00000580| 61 6e 64 20 74 68 65 20 | 63 61 6c 6c 65 72 20 6d |and the |caller m|
|00000590| 75 73 74 20 68 61 6e 64 | 6c 65 20 74 68 69 73 20 |ust hand|le this |
|000005a0| 73 69 74 75 61 74 69 6f | 6e 2e 0d 01 22 4a 2a 7c |situatio|n..."J*||
|000005b0| 21 20 73 6d 61 6c 6c 20 | 20 2d 20 20 49 66 20 54 |! small | - If T|
|000005c0| 52 55 45 20 74 68 65 20 | 27 73 6d 61 6c 6c 27 20 |RUE the |'small' |
|000005d0| 6d 65 6d 6f 72 79 20 61 | 6c 6c 6f 63 61 74 69 6f |memory a|llocatio|
|000005e0| 6e 20 6d 65 74 68 6f 64 | 20 69 73 20 75 73 65 64 |n method| is used|
|000005f0| 2c 20 69 66 0d 01 2c 48 | 2a 7c 21 20 20 20 20 20 |, if..,H|*|! |
|00000600| 20 20 20 20 20 20 46 41 | 4c 53 45 20 74 68 65 6e | FA|LSE then|
|00000610| 20 74 68 65 20 6c 61 72 | 67 65 20 6d 65 6d 6f 72 | the lar|ge memor|
|00000620| 79 20 61 6c 6c 6f 63 61 | 69 74 6f 6e 20 6d 65 74 |y alloca|iton met|
|00000630| 68 6f 64 20 69 73 20 75 | 73 65 64 2e 0d 01 36 07 |hod is u|sed...6.|
|00000640| 2a 7c 21 0d 01 40 37 2a | 7c 21 20 54 68 65 20 72 |*|!..@7*||! The r|
|00000650| 65 63 6f 6d 65 6e 64 65 | 64 20 63 61 6c 6c 20 69 |ecomende|d call i|
|00000660| 73 20 50 52 4f 43 6d 65 | 6d 6f 72 79 28 46 41 4c |s PROCme|mory(FAL|
|00000670| 53 45 2c 46 41 4c 53 45 | 29 2e 0d 01 4a 13 dd f2 |SE,FALSE|)...J...|
|00000680| 6d 65 6d 6f 72 79 28 59 | 25 2c 53 25 29 0d 01 54 |memory(Y|%,S%)..T|
|00000690| 4d ea 20 50 25 2c 44 25 | 2c 41 25 2c 42 25 2c 43 |M. P%,D%|,A%,B%,C|
|000006a0| 25 2c 45 25 2c 46 25 2c | 47 25 2c 48 25 2c 49 25 |%,E%,F%,|G%,H%,I%|
|000006b0| 2c 4a 25 2c 4b 25 2c 4c | 25 2c 4d 25 2c 4e 25 2c |,J%,K%,L|%,M%,N%,|
|000006c0| 4f 25 2c 51 25 2c 52 25 | 2c 54 25 2c 55 25 2c 56 |O%,Q%,R%|,T%,U%,V|
|000006d0| 25 2c 5a 25 2c 58 25 2c | 57 25 0d 01 5e 25 ea 20 |%,Z%,X%,|W%..^%. |
|000006e0| 63 6f 70 79 72 69 67 68 | 74 24 2c 67 25 2c 68 25 |copyrigh|t$,g%,h%|
|000006f0| 2c 69 25 2c 6c 25 2c 6d | 25 2c 6e 25 2c 6f 25 0d |,i%,l%,m|%,n%,o%.|
|00000700| 01 68 47 63 6f 70 79 72 | 69 67 68 74 24 3d 22 44 |.hGcopyr|ight$="D|
|00000710| 79 6e 61 6d 69 63 20 6d | 65 6d 6f 72 79 20 61 6c |ynamic m|emory al|
|00000720| 6c 6f 63 61 74 69 6f 6e | 20 72 6f 75 74 69 6e 65 |location| routine|
|00000730| 73 2c 20 a9 20 49 61 6e | 20 50 61 6c 6d 65 72 2c |s, . Ian| Palmer,|
|00000740| 20 31 39 39 33 22 0d 01 | 72 14 de 20 5f 6d 65 6d | 1993"..|r.. _mem|
|00000750| 5f 63 6f 64 65 25 20 35 | 35 39 0d 01 7c 30 5f 6d |_code% 5|59..|0_m|
|00000760| 65 6d 5f 65 72 72 6f 72 | 25 3d 59 25 3a 5f 6d 65 |em_error|%=Y%:_me|
|00000770| 6d 64 69 6d 25 3d 53 25 | 3a c8 99 20 26 35 31 20 |mdim%=S%|:.. &51 |
|00000780| b8 20 5f 6d 70 73 69 7a | 65 25 0d 01 86 2a c8 99 |. _mpsiz|e%...*..|
|00000790| 20 26 34 30 30 45 43 2c | 2d 31 2c 2d 31 20 b8 20 | &400EC,|-1,-1 . |
|000007a0| 5f 6d 74 6f 70 25 3a 5f | 6d 74 6f 70 25 2b 3d 26 |_mtop%:_|mtop%+=&|
|000007b0| 38 30 30 30 0d 01 90 28 | e3 20 5a 25 3d 30 20 b8 |8000...(|. Z%=0 .|
|000007c0| 20 32 20 88 20 32 3a 50 | 25 3d 5f 6d 65 6d 5f 63 | 2 . 2:P|%=_mem_c|
|000007d0| 6f 64 65 25 3a 5b 4f 50 | 54 20 5a 25 0d 01 9a 21 |ode%:[OP|T Z%...!|
|000007e0| 42 20 41 25 3a 42 20 42 | 25 3a 42 20 43 25 3a 42 |B A%:B B|%:B C%:B|
|000007f0| 20 44 25 3a 42 20 52 25 | 3a 42 20 57 25 0d 01 a4 | D%:B R%|:B W%...|
|00000800| 48 2e 41 25 3a 41 44 52 | 20 52 34 2c 5f 6d 65 6d |H.A%:ADR| R4,_mem|
|00000810| 6f 72 79 25 3a 4c 44 52 | 20 52 31 2c 5b 52 34 5d |ory%:LDR| R1,[R4]|
|00000820| 3a 2e 45 25 3a 43 4d 50 | 20 52 31 2c 23 30 3a 42 |:.E%:CMP| R1,#0:B|
|00000830| 45 51 20 46 25 3a 4c 44 | 52 20 52 32 2c 5b 52 31 |EQ F%:LD|R R2,[R1|
|00000840| 2c 23 2d 34 5d 0d 01 ae | 4c 43 4d 50 20 52 32 2c |,#-4]...|LCMP R2,|
|00000850| 52 30 3a 42 47 45 20 47 | 25 3a 4d 4f 56 20 52 34 |R0:BGE G|%:MOV R4|
|00000860| 2c 52 31 3a 4c 44 52 20 | 52 31 2c 5b 52 31 5d 3a |,R1:LDR |R1,[R1]:|
|00000870| 42 20 45 25 3a 2e 46 25 | 3a 4d 4f 56 20 52 30 2c |B E%:.F%|:MOV R0,|
|00000880| 23 30 3a 41 44 52 20 52 | 31 2c 5f 6d 65 6d 72 76 |#0:ADR R|1,_memrv|
|00000890| 25 0d 01 b8 45 53 54 52 | 20 52 30 2c 5b 52 31 5d |%...ESTR| R0,[R1]|
|000008a0| 3a 4d 4f 56 20 50 43 2c | 52 31 34 3a 2e 47 25 3a |:MOV PC,|R14:.G%:|
|000008b0| 4c 44 52 20 52 32 2c 5b | 52 31 5d 3a 53 54 52 20 |LDR R2,[|R1]:STR |
|000008c0| 52 32 2c 5b 52 34 5d 3a | 41 44 52 20 52 30 2c 5f |R2,[R4]:|ADR R0,_|
|000008d0| 6d 65 6d 72 76 25 0d 01 | c2 1a 53 54 52 20 52 31 |memrv%..|..STR R1|
|000008e0| 2c 5b 52 30 5d 3a 4d 4f | 56 20 50 43 2c 52 31 34 |,[R0]:MO|V PC,R14|
|000008f0| 0d 01 cc 4d 2e 42 25 3a | 4c 44 52 20 52 35 2c 5b |...M.B%:|LDR R5,[|
|00000900| 52 30 2c 23 2d 34 5d 3a | 41 44 44 20 52 36 2c 52 |R0,#-4]:|ADD R6,R|
|00000910| 35 2c 52 30 3a 41 44 44 | 20 52 36 2c 52 36 2c 23 |5,R0:ADD| R6,R6,#|
|00000920| 34 3a 41 44 52 20 52 34 | 2c 5f 6d 65 6d 6f 72 79 |4:ADR R4|,_memory|
|00000930| 25 3a 4c 44 52 20 52 31 | 2c 5b 52 34 5d 0d 01 d6 |%:LDR R1|,[R4]...|
|00000940| 42 2e 48 25 3a 43 4d 50 | 20 52 31 2c 23 30 3a 42 |B.H%:CMP| R1,#0:B|
|00000950| 45 51 20 49 25 3a 4c 44 | 52 20 52 32 2c 5b 52 31 |EQ I%:LD|R R2,[R1|
|00000960| 2c 23 2d 34 5d 3a 41 44 | 44 20 52 33 2c 52 32 2c |,#-4]:AD|D R3,R2,|
|00000970| 52 31 3a 41 44 44 20 52 | 33 2c 52 33 2c 23 34 0d |R1:ADD R|3,R3,#4.|
|00000980| 01 e0 51 43 4d 50 20 52 | 33 2c 52 30 3a 42 45 51 |..QCMP R|3,R0:BEQ|
|00000990| 20 4a 25 3a 43 4d 50 20 | 52 36 2c 52 31 3a 42 45 | J%:CMP |R6,R1:BE|
|000009a0| 51 20 4b 25 3a 43 4d 50 | 20 52 31 2c 52 30 3a 42 |Q K%:CMP| R1,R0:B|
|000009b0| 47 54 20 49 25 3a 4d 4f | 56 20 52 34 2c 52 31 3a |GT I%:MO|V R4,R1:|
|000009c0| 4c 44 52 20 52 31 2c 5b | 52 31 5d 3a 42 20 48 25 |LDR R1,[|R1]:B H%|
|000009d0| 0d 01 ea 42 2e 49 25 3a | 53 54 52 20 52 30 2c 5b |...B.I%:|STR R0,[|
|000009e0| 52 34 5d 3a 53 54 52 20 | 52 31 2c 5b 52 30 5d 3a |R4]:STR |R1,[R0]:|
|000009f0| 42 20 4c 25 3a 2e 4a 25 | 3a 41 44 44 20 52 35 2c |B L%:.J%|:ADD R5,|
|00000a00| 52 35 2c 52 32 3a 41 44 | 44 20 52 35 2c 52 35 2c |R5,R2:AD|D R5,R5,|
|00000a10| 23 34 0d 01 f4 4a 53 54 | 52 20 52 35 2c 5b 52 31 |#4...JST|R R5,[R1|
|00000a20| 2c 23 2d 34 5d 3a 4d 4f | 56 20 52 30 2c 52 31 3a |,#-4]:MO|V R0,R1:|
|00000a30| 4c 44 52 20 52 31 2c 5b | 52 31 5d 3a 43 4d 50 20 |LDR R1,[|R1]:CMP |
|00000a40| 52 36 2c 52 31 3a 42 4e | 45 20 4c 25 3a 4c 44 52 |R6,R1:BN|E L%:LDR|
|00000a50| 20 52 32 2c 5b 52 31 2c | 23 2d 34 5d 0d 01 fe 49 | R2,[R1,|#-4]...I|
|00000a60| 2e 4b 25 3a 41 44 44 20 | 52 35 2c 52 35 2c 52 32 |.K%:ADD |R5,R5,R2|
|00000a70| 3a 41 44 44 20 52 35 2c | 52 35 2c 23 34 3a 53 54 |:ADD R5,|R5,#4:ST|
|00000a80| 52 20 52 35 2c 5b 52 30 | 2c 23 2d 34 5d 3a 4c 44 |R R5,[R0|,#-4]:LD|
|00000a90| 52 20 52 31 2c 5b 52 31 | 5d 3a 53 54 52 20 52 31 |R R1,[R1|]:STR R1|
|00000aa0| 2c 5b 52 30 5d 0d 02 08 | 39 53 54 52 20 52 30 2c |,[R0]...|9STR R0,|
|00000ab0| 5b 52 34 5d 3a 2e 4c 25 | 3a 41 44 52 20 52 31 2c |[R4]:.L%|:ADR R1,|
|00000ac0| 5f 6d 65 6d 72 76 25 3a | 53 54 52 20 52 30 2c 5b |_memrv%:|STR R0,[|
|00000ad0| 52 31 5d 3a 4d 4f 56 20 | 50 43 2c 52 31 34 0d 02 |R1]:MOV |PC,R14..|
|00000ae0| 12 49 2e 43 25 3a 41 44 | 52 20 52 31 2c 5f 6d 65 |.I.C%:AD|R R1,_me|
|00000af0| 6d 6f 72 79 25 3a 2e 4d | 25 3a 4c 44 52 20 52 32 |mory%:.M|%:LDR R2|
|00000b00| 2c 5b 52 31 5d 3a 43 4d | 50 20 52 32 2c 23 30 3a |,[R1]:CM|P R2,#0:|
|00000b10| 42 45 51 20 4e 25 3a 43 | 4d 50 20 52 32 2c 52 30 |BEQ N%:C|MP R2,R0|
|00000b20| 3a 42 45 51 20 4f 25 0d | 02 1c 4e 4d 4f 56 4c 54 |:BEQ O%.|..NMOVLT|
|00000b30| 20 52 31 2c 52 32 3a 42 | 4c 54 20 4d 25 3a 2e 4e | R1,R2:B|LT M%:.N|
|00000b40| 25 3a 4d 4f 56 20 52 31 | 2c 23 30 3a 2e 4f 25 3a |%:MOV R1|,#0:.O%:|
|00000b50| 41 44 52 20 52 30 2c 5f | 6d 65 6d 72 76 25 3a 53 |ADR R0,_|memrv%:S|
|00000b60| 54 52 20 52 31 2c 5b 52 | 30 5d 3a 4d 4f 56 20 50 |TR R1,[R|0]:MOV P|
|00000b70| 43 2c 52 31 34 0d 02 26 | 48 2e 52 25 3a 41 44 52 |C,R14..&|H.R%:ADR|
|00000b80| 20 52 34 2c 5f 6d 65 6d | 6f 72 79 25 3a 4c 44 52 | R4,_mem|ory%:LDR|
|00000b90| 20 52 32 2c 5b 52 34 5d | 3a 2e 54 25 3a 43 4d 50 | R2,[R4]|:.T%:CMP|
|00000ba0| 20 52 32 2c 23 30 3a 42 | 45 51 20 55 25 3a 4c 44 | R2,#0:B|EQ U%:LD|
|00000bb0| 52 20 52 33 2c 5b 52 32 | 2c 23 2d 34 5d 0d 02 30 |R R3,[R2|,#-4]..0|
|00000bc0| 4a 41 44 44 20 52 33 2c | 52 33 2c 52 32 3a 43 4d |JADD R3,|R3,R2:CM|
|00000bd0| 50 20 52 33 2c 52 30 3a | 42 45 51 20 56 25 3a 4d |P R3,R0:|BEQ V%:M|
|00000be0| 4f 56 20 52 34 2c 52 32 | 3a 4c 44 52 20 52 32 2c |OV R4,R2|:LDR R2,|
|00000bf0| 5b 52 32 5d 3a 42 20 54 | 25 3a 2e 55 25 3a 4d 4f |[R2]:B T|%:.U%:MO|
|00000c00| 56 20 52 32 2c 23 30 0d | 02 3a 49 2e 56 25 3a 41 |V R2,#0.|.:I.V%:A|
|00000c10| 44 52 20 52 31 2c 5f 6d | 65 6d 72 76 25 3a 53 54 |DR R1,_m|emrv%:ST|
|00000c20| 52 20 52 32 2c 5b 52 31 | 5d 3a 41 44 52 20 52 31 |R R2,[R1|]:ADR R1|
|00000c30| 2c 5f 6d 65 6d 72 76 32 | 25 3a 53 54 52 20 52 34 |,_memrv2|%:STR R4|
|00000c40| 2c 5b 52 31 5d 3a 4d 4f | 56 20 50 43 2c 52 31 34 |,[R1]:MO|V PC,R14|
|00000c50| 0d 02 44 42 2e 57 25 3a | 41 44 52 20 52 31 2c 5f |..DB.W%:|ADR R1,_|
|00000c60| 6d 65 6d 6f 72 79 25 3a | 4d 4f 56 20 52 30 2c 23 |memory%:|MOV R0,#|
|00000c70| 30 3a 4c 44 52 20 52 32 | 2c 5b 52 31 5d 3a 2e 59 |0:LDR R2|,[R1]:.Y|
|00000c80| 25 3a 43 4d 50 20 52 32 | 2c 23 30 3a 42 45 51 20 |%:CMP R2|,#0:BEQ |
|00000c90| 53 25 0d 02 4e 31 4c 44 | 52 20 52 33 2c 5b 52 32 |S%..N1LD|R R3,[R2|
|00000ca0| 2c 23 2d 34 5d 3a 41 44 | 44 20 52 30 2c 52 30 2c |,#-4]:AD|D R0,R0,|
|00000cb0| 52 33 3a 4c 44 52 20 52 | 32 2c 5b 52 32 5d 3a 42 |R3:LDR R|2,[R2]:B|
|00000cc0| 20 59 25 0d 02 58 2d 2e | 53 25 3a 41 44 52 20 52 | Y%..X-.|S%:ADR R|
|00000cd0| 31 2c 5f 6d 65 6d 72 76 | 25 3a 53 54 52 20 52 30 |1,_memrv|%:STR R0|
|00000ce0| 2c 5b 52 31 5d 3a 4d 4f | 56 20 50 43 2c 52 31 34 |,[R1]:MO|V PC,R14|
|00000cf0| 0d 02 62 42 2e 44 25 3a | 53 54 4d 46 44 20 52 31 |..bB.D%:|STMFD R1|
|00000d00| 33 21 2c 7b 52 38 2d 52 | 31 30 2c 52 31 34 7d 3a |3!,{R8-R|10,R14}:|
|00000d10| 43 4d 50 20 52 30 2c 23 | 30 3a 4c 44 4d 45 51 46 |CMP R0,#|0:LDMEQF|
|00000d20| 44 20 52 31 33 21 2c 7b | 52 38 2d 52 31 30 2c 50 |D R13!,{|R8-R10,P|
|00000d30| 43 7d 0d 02 6c 2d 43 4d | 50 20 52 31 2c 52 32 3a |C}..l-CM|P R1,R2:|
|00000d40| 4c 44 4d 45 51 46 44 20 | 52 31 33 21 2c 7b 52 38 |LDMEQFD |R13!,{R8|
|00000d50| 2d 52 31 30 2c 50 43 7d | 3a 42 4c 54 20 6c 25 0d |-R10,PC}|:BLT l%.|
|00000d60| 02 76 48 2e 67 25 3a 53 | 55 42 53 20 52 30 2c 52 |.vH.g%:S|UBS R0,R|
|00000d70| 30 2c 23 33 32 3a 42 4c | 54 20 68 25 3a 4c 44 4d |0,#32:BL|T h%:LDM|
|00000d80| 49 41 20 52 31 21 2c 7b | 52 33 2d 52 31 30 7d 3a |IA R1!,{|R3-R10}:|
|00000d90| 53 54 4d 49 41 20 52 32 | 21 2c 7b 52 33 2d 52 31 |STMIA R2|!,{R3-R1|
|00000da0| 30 7d 3a 42 20 67 25 0d | 02 80 51 2e 68 25 3a 41 |0}:B g%.|..Q.h%:A|
|00000db0| 44 44 53 20 52 30 2c 52 | 30 2c 23 33 32 3a 2e 69 |DDS R0,R|0,#32:.i|
|00000dc0| 25 3a 4c 44 4d 45 51 46 | 44 20 52 31 33 21 2c 7b |%:LDMEQF|D R13!,{|
|00000dd0| 52 38 2d 52 31 30 2c 50 | 43 7d 3a 4c 44 52 20 52 |R8-R10,P|C}:LDR R|
|00000de0| 34 2c 5b 52 31 5d 2c 23 | 34 3a 53 54 52 20 52 34 |4,[R1],#|4:STR R4|
|00000df0| 2c 5b 52 32 5d 2c 23 34 | 0d 02 8a 16 53 55 42 53 |,[R2],#4|....SUBS|
|00000e00| 20 52 30 2c 52 30 2c 23 | 34 3a 42 20 69 25 0d 02 | R0,R0,#|4:B i%..|
|00000e10| 94 21 2e 6c 25 3a 41 44 | 44 20 52 31 2c 52 31 2c |.!.l%:AD|D R1,R1,|
|00000e20| 52 30 3a 41 44 44 20 52 | 32 2c 52 32 2c 52 30 0d |R0:ADD R|2,R2,R0.|
|00000e30| 02 9e 48 2e 6d 25 3a 53 | 55 42 53 20 52 30 2c 52 |..H.m%:S|UBS R0,R|
|00000e40| 30 2c 23 33 32 3a 42 4c | 54 20 6e 25 3a 4c 44 4d |0,#32:BL|T n%:LDM|
|00000e50| 44 42 20 52 31 21 2c 7b | 52 33 2d 52 31 30 7d 3a |DB R1!,{|R3-R10}:|
|00000e60| 53 54 4d 44 42 20 52 32 | 21 2c 7b 52 33 2d 52 31 |STMDB R2|!,{R3-R1|
|00000e70| 30 7d 3a 42 20 6d 25 0d | 02 a8 44 2e 6e 25 3a 41 |0}:B m%.|..D.n%:A|
|00000e80| 44 44 53 20 52 30 2c 52 | 30 2c 23 33 32 3a 2e 6f |DDS R0,R|0,#32:.o|
|00000e90| 25 3a 4c 44 4d 45 51 46 | 44 20 52 31 33 21 2c 7b |%:LDMEQF|D R13!,{|
|00000ea0| 52 38 2d 52 31 30 2c 50 | 43 7d 3a 4c 44 52 20 52 |R8-R10,P|C}:LDR R|
|00000eb0| 34 2c 5b 52 31 2c 23 2d | 34 5d 21 0d 02 b2 27 53 |4,[R1,#-|4]!...'S|
|00000ec0| 54 52 20 52 34 2c 5b 52 | 32 2c 23 2d 34 5d 21 3a |TR R4,[R|2,#-4]!:|
|00000ed0| 53 55 42 53 20 52 30 2c | 52 30 2c 23 34 3a 42 20 |SUBS R0,|R0,#4:B |
|00000ee0| 6f 25 0d 02 bc 14 2e 5f | 6d 65 6d 6f 72 79 25 20 |o%....._|memory% |
|00000ef0| 45 51 55 44 20 30 0d 02 | c6 13 2e 5f 6d 65 6d 72 |EQUD 0..|..._memr|
|00000f00| 76 25 20 45 51 55 44 20 | 30 0d 02 d0 14 2e 5f 6d |v% EQUD |0....._m|
|00000f10| 65 6d 72 76 32 25 20 45 | 51 55 44 20 30 0d 02 da |emrv2% E|QUD 0...|
|00000f20| 07 5d 3a ed 0d 02 e4 05 | e1 0d 02 ee 04 0d 02 f8 |.]:.....|........|
|00000f30| 16 dd a4 5f 6d 6f 72 65 | 5f 6d 65 6d 6f 72 79 28 |..._more|_memory(|
|00000f40| 53 25 29 0d 03 02 1c ea | 20 4d 25 2c 4c 25 2c 41 |S%).....| M%,L%,A|
|00000f50| 25 2c 58 25 2c 59 25 2c | 5a 25 3a 4d 25 3d 30 0d |%,X%,Y%,|Z%:M%=0.|
|00000f60| 03 0c 10 e7 20 5f 6d 65 | 6d 64 69 6d 25 20 8c 0d |.... _me|mdim% ..|
|00000f70| 03 16 4d 20 20 41 25 3d | e0 3a d6 20 5f 6d 65 6d |..M A%=|.:. _mem|
|00000f80| 5f 63 6f 64 65 25 2b 31 | 36 3a 4c 25 3d 21 5f 6d |_code%+1|6:L%=!_m|
|00000f90| 65 6d 72 76 25 3a e7 20 | 4c 25 3c 3e 30 20 8c 20 |emrv%:. |L%<>0 . |
|00000fa0| 53 25 2d 3d 21 28 4c 25 | 2d 34 29 2d 34 3a 21 21 |S%-=!(L%|-4)-4:!!|
|00000fb0| 5f 6d 65 6d 72 76 32 25 | 3d 21 4c 25 0d 03 20 4b |_memrv2%|=!L%.. K|
|00000fc0| 20 20 e7 20 53 25 3c 28 | 93 2d e0 2d 32 30 34 38 | . S%<(|.-.-2048|
|00000fd0| 29 20 8c 20 de 20 4d 25 | 20 53 25 2d 31 3a 21 4d |) . . M%| S%-1:!M|
|00000fe0| 25 3d 53 25 2d 34 3a e7 | 20 4c 25 3c 3e 30 20 8c |%=S%-4:.| L%<>0 .|
|00000ff0| 20 4d 25 3d 4c 25 2d 34 | 3a 21 4d 25 3d 53 25 2b | M%=L%-4|:!M%=S%+|
|00001000| 21 28 4c 25 2d 34 29 0d | 03 2a 05 cc 0d 03 34 54 |!(L%-4).|.*....4T|
|00001010| 20 20 41 25 3d 5f 6d 74 | 6f 70 25 3a d6 20 5f 6d | A%=_mt|op%:. _m|
|00001020| 65 6d 5f 63 6f 64 65 25 | 2b 31 36 3a 4c 25 3d 21 |em_code%|+16:L%=!|
|00001030| 5f 6d 65 6d 72 76 25 3a | e7 20 4c 25 3c 3e 30 20 |_memrv%:|. L%<>0 |
|00001040| 8c 20 53 25 2d 3d 21 28 | 4c 25 2d 34 29 2d 34 3a |. S%-=!(|L%-4)-4:|
|00001050| 21 28 21 5f 6d 65 6d 72 | 76 32 25 29 3d 21 4c 25 |!(!_memr|v2%)=!L%|
|00001060| 0d 03 3e 2a 20 20 c8 99 | 20 26 34 30 30 45 43 2c |..>* ..| &400EC,|
|00001070| 2d 31 2c 2d 31 20 b8 20 | 58 25 2c 59 25 2c 5a 25 |-1,-1 . |X%,Y%,Z%|
|00001080| 3a e7 20 53 25 3c 5a 25 | 20 8c 0d 03 48 6b 20 20 |:. S%<Z%| ...Hk |
|00001090| 20 20 c8 99 20 26 34 30 | 30 45 43 2c 58 25 2b 53 | .. &40|0EC,X%+S|
|000010a0| 25 2c 59 25 20 b8 20 5a | 25 3a 4d 25 3d 58 25 2b |%,Y% . Z|%:M%=X%+|
|000010b0| 26 38 30 30 30 3a 21 4d | 25 3d 5a 25 2d 58 25 2d |&8000:!M|%=Z%-X%-|
|000010c0| 34 3a 5f 6d 74 6f 70 25 | 3d 5a 25 2b 26 38 30 30 |4:_mtop%|=Z%+&800|
|000010d0| 30 3a e7 20 4c 25 3c 3e | 30 20 8c 20 4d 25 3d 4c |0:. L%<>|0 . M%=L|
|000010e0| 25 2d 34 3a 21 4d 25 3d | 5a 25 2d 58 25 2b 21 28 |%-4:!M%=|Z%-X%+!(|
|000010f0| 4c 25 2d 34 29 0d 03 52 | 07 20 20 cd 0d 03 5c 05 |L%-4)..R|. ...\.|
|00001100| cd 0d 03 66 13 e7 20 4d | 25 3c 3e 30 20 8c 20 4d |...f.. M|%<>0 . M|
|00001110| 25 2b 3d 34 0d 03 70 07 | 3d 4d 25 0d 03 7a 04 0d |%+=4..p.|=M%..z..|
|00001120| 03 84 12 dd f2 5f 6c 65 | 73 73 5f 6d 65 6d 6f 72 |....._le|ss_memor|
|00001130| 79 0d 03 8e 1a ea 20 41 | 25 2c 42 25 2c 4c 25 2c |y..... A|%,B%,L%,|
|00001140| 43 25 2c 53 25 2c 4e 25 | 2c 44 25 0d 03 98 1d 41 |C%,S%,N%|,D%....A|
|00001150| 25 3d 5f 6d 74 6f 70 25 | 3a d6 20 5f 6d 65 6d 5f |%=_mtop%|:. _mem_|
|00001160| 63 6f 64 65 25 2b 31 36 | 0d 03 a2 2b 42 25 3d 21 |code%+16|...+B%=!|
|00001170| 5f 6d 65 6d 72 76 25 3a | 43 25 3d 21 5f 6d 65 6d |_memrv%:|C%=!_mem|
|00001180| 72 76 32 25 3a 42 25 2d | 3d 34 3a 4c 25 3d 34 2b |rv2%:B%-|=4:L%=4+|
|00001190| 21 42 25 0d 03 ac 3b 44 | 25 3d 28 4c 25 20 81 20 |!B%...;D|%=(L% . |
|000011a0| 5f 6d 70 73 69 7a 65 25 | 29 2a 5f 6d 70 73 69 7a |_mpsize%|)*_mpsiz|
|000011b0| 65 25 3a 4e 25 3d 4c 25 | 2d 44 25 3a 53 25 3d 5f |e%:N%=L%|-D%:S%=_|
|000011c0| 6d 74 6f 70 25 2d 44 25 | 2d 26 38 30 30 30 0d 03 |mtop%-D%|-&8000..|
|000011d0| b6 28 c8 99 20 26 34 30 | 30 45 43 2c 53 25 2c 2d |.(.. &40|0EC,S%,-|
|000011e0| 31 20 b8 20 53 25 3a 5f | 6d 74 6f 70 25 3d 53 25 |1 . S%:_|mtop%=S%|
|000011f0| 2b 26 38 30 30 30 0d 03 | c0 1d e7 20 4e 25 3e 37 |+&8000..|... N%>7|
|00001200| 20 8c 20 21 42 25 3d 4e | 25 2d 34 3a 8b 20 21 43 | . !B%=N|%-4:. !C|
|00001210| 25 3d 30 0d 03 ca 05 e1 | 0d 03 d4 04 0d 03 de 15 |%=0.....|........|
|00001220| 2a 7c 73 74 6f 70 20 50 | 52 4f 43 6d 65 6d 6f 72 |*|stop P|ROCmemor|
|00001230| 79 0d 03 e8 1c 2a 7c 73 | 74 61 72 74 20 50 52 4f |y....*|s|tart PRO|
|00001240| 43 6d 65 6d 6f 72 79 5f | 73 6d 61 6c 6c 0d 03 f2 |Cmemory_|small...|
|00001250| 17 2a 7c 21 50 52 4f 43 | 6d 65 6d 6f 72 79 5f 73 |.*|!PROC|memory_s|
|00001260| 6d 61 6c 6c 0d 03 fc 43 | 2a 7c 21 54 68 69 73 20 |mall...C|*|!This |
|00001270| 70 72 6f 63 65 64 75 72 | 65 20 77 69 6c 6c 20 73 |procedur|e will s|
|00001280| 65 74 20 74 68 65 20 27 | 73 6d 61 6c 6c 27 20 6d |et the '|small' m|
|00001290| 65 6d 6f 72 79 20 61 6c | 6c 6f 63 61 74 69 6f 6e |emory al|location|
|000012a0| 20 61 73 20 74 68 65 0d | 04 06 42 2a 7c 21 63 75 | as the.|..B*|!cu|
|000012b0| 72 72 65 6e 74 20 61 6c | 6c 6f 63 61 74 69 6f 6e |rrent al|location|
|000012c0| 20 6d 65 74 68 6f 64 2e | 20 54 68 69 73 20 63 61 | method.| This ca|
|000012d0| 6e 20 62 65 20 64 6f 6e | 65 20 61 74 20 61 6e 79 |n be don|e at any|
|000012e0| 20 74 69 6d 65 20 61 6e | 64 0d 04 10 42 2a 7c 21 | time an|d...B*|!|
|000012f0| 61 6c 6f 6e 67 20 77 69 | 74 68 20 27 50 52 4f 43 |along wi|th 'PROC|
|00001300| 6d 65 6d 6f 72 79 5f 6c | 61 72 67 65 27 20 61 6c |memory_l|arge' al|
|00001310| 6c 6f 77 73 20 62 6f 74 | 68 20 6d 65 6d 6f 72 79 |lows bot|h memory|
|00001320| 20 61 6c 6c 6f 63 61 74 | 69 6f 6e 0d 04 1a 2b 2a | allocat|ion...+*|
|00001330| 7c 21 6d 65 74 68 6f 64 | 73 20 74 6f 20 62 65 20 ||!method|s to be |
|00001340| 75 73 65 64 20 61 74 20 | 74 68 65 20 73 61 6d 65 |used at |the same|
|00001350| 20 74 69 6d 65 2e 0d 04 | 24 12 dd f2 6d 65 6d 6f | time...|$...memo|
|00001360| 72 79 5f 73 6d 61 6c 6c | 0d 04 2e 0e 5f 6d 65 6d |ry_small|...._mem|
|00001370| 64 69 6d 25 3d b9 0d 04 | 38 05 e1 0d 04 42 04 0d |dim%=...|8....B..|
|00001380| 04 4c 1b 2a 7c 73 74 6f | 70 20 50 52 4f 43 6d 65 |.L.*|sto|p PROCme|
|00001390| 6d 6f 72 79 5f 73 6d 61 | 6c 6c 0d 04 56 1c 2a 7c |mory_sma|ll..V.*||
|000013a0| 73 74 61 72 74 20 50 52 | 4f 43 6d 65 6d 6f 72 79 |start PR|OCmemory|
|000013b0| 5f 6c 61 72 67 65 0d 04 | 60 17 2a 7c 21 50 52 4f |_large..|`.*|!PRO|
|000013c0| 43 6d 65 6d 6f 72 79 5f | 6c 61 72 67 65 0d 04 6a |Cmemory_|large..j|
|000013d0| 07 2a 7c 21 0d 04 74 43 | 2a 7c 21 54 68 69 73 20 |.*|!..tC|*|!This |
|000013e0| 70 72 6f 63 65 64 75 72 | 65 20 77 69 6c 6c 20 73 |procedur|e will s|
|000013f0| 65 74 20 74 68 65 20 27 | 6c 61 72 67 65 27 20 6d |et the '|large' m|
|00001400| 65 6d 6f 72 79 20 61 6c | 6c 6f 63 61 74 69 6f 6e |emory al|location|
|00001410| 20 61 73 20 74 68 65 0d | 04 7e 42 2a 7c 21 63 75 | as the.|.~B*|!cu|
|00001420| 72 72 65 6e 74 20 61 6c | 6c 6f 63 61 74 69 6f 6e |rrent al|location|
|00001430| 20 6d 65 74 68 6f 64 2e | 20 54 68 69 73 20 63 61 | method.| This ca|
|00001440| 6e 20 62 65 20 64 6f 6e | 65 20 61 74 20 61 6e 79 |n be don|e at any|
|00001450| 20 74 69 6d 65 20 61 6e | 64 0d 04 88 42 2a 7c 21 | time an|d...B*|!|
|00001460| 61 6c 6f 6e 67 20 77 69 | 74 68 20 27 50 52 4f 43 |along wi|th 'PROC|
|00001470| 6d 65 6d 6f 72 79 5f 73 | 6d 61 6c 6c 27 20 61 6c |memory_s|mall' al|
|00001480| 6c 6f 77 73 20 62 6f 74 | 68 20 6d 65 6d 6f 72 79 |lows bot|h memory|
|00001490| 20 61 6c 6c 6f 63 61 74 | 69 6f 6e 0d 04 92 2b 2a | allocat|ion...+*|
|000014a0| 7c 21 6d 65 74 68 6f 64 | 73 20 74 6f 20 62 65 20 ||!method|s to be |
|000014b0| 75 73 65 64 20 61 74 20 | 74 68 65 20 73 61 6d 65 |used at |the same|
|000014c0| 20 74 69 6d 65 2e 0d 04 | 9c 12 dd f2 6d 65 6d 6f | time...|....memo|
|000014d0| 72 79 5f 6c 61 72 67 65 | 0d 04 a6 0e 5f 6d 65 6d |ry_large|...._mem|
|000014e0| 64 69 6d 25 3d a3 0d 04 | b0 05 e1 0d 04 ba 04 0d |dim%=...|........|
|000014f0| 04 c4 1b 2a 7c 73 74 6f | 70 20 50 52 4f 43 6d 65 |...*|sto|p PROCme|
|00001500| 6d 6f 72 79 5f 6c 61 72 | 67 65 0d 04 ce 14 2a 7c |mory_lar|ge....*||
|00001510| 73 74 61 72 74 20 46 4e | 6d 61 6c 6c 6f 63 0d 04 |start FN|malloc..|
|00001520| d8 17 2a 7c 21 46 4e 6d | 61 6c 6c 6f 63 28 20 73 |..*|!FNm|alloc( s|
|00001530| 69 7a 65 20 29 0d 04 e2 | 07 2a 7c 21 0d 04 ec 4e |ize )...|.*|!...N|
|00001540| 2a 7c 21 54 68 69 73 20 | 66 75 6e 63 74 69 6f 6e |*|!This |function|
|00001550| 20 72 65 74 75 72 6e 73 | 20 61 20 70 6f 69 6e 74 | returns| a point|
|00001560| 65 72 20 74 6f 20 74 68 | 65 20 73 74 61 72 74 20 |er to th|e start |
|00001570| 6f 66 20 61 20 62 6c 6f | 63 6b 20 6f 66 20 6d 65 |of a blo|ck of me|
|00001580| 6d 6f 72 79 20 77 68 69 | 63 68 0d 04 f6 51 2a 7c |mory whi|ch...Q*||
|00001590| 21 69 73 20 61 74 20 6c | 65 61 73 74 20 27 73 69 |!is at l|east 'si|
|000015a0| 7a 65 27 20 62 79 74 65 | 73 20 6c 6f 6e 67 2e 20 |ze' byte|s long. |
|000015b0| 49 66 20 6d 65 6d 6f 72 | 79 20 63 61 6e 20 6e 6f |If memor|y can no|
|000015c0| 74 20 62 65 20 61 6c 6c | 6f 63 61 74 65 64 20 74 |t be all|ocated t|
|000015d0| 68 65 20 66 75 6e 63 74 | 69 6f 6e 0d 05 00 4d 2a |he funct|ion...M*|
|000015e0| 7c 21 77 69 6c 6c 20 65 | 69 74 68 65 72 20 72 61 ||!will e|ither ra|
|000015f0| 69 73 65 20 61 6e 20 45 | 52 52 4f 52 20 6f 72 20 |ise an E|RROR or |
|00001600| 72 65 74 75 72 6e 20 30 | 20 28 64 65 70 65 6e 64 |return 0| (depend|
|00001610| 69 6e 67 20 6f 6e 20 74 | 68 65 20 73 65 74 74 69 |ing on t|he setti|
|00001620| 6e 67 20 67 69 76 65 6e | 0d 05 0a 29 2a 7c 21 61 |ng given|...)*|!a|
|00001630| 74 20 69 6e 69 74 69 61 | 6c 69 73 61 74 69 6f 6e |t initia|lisation|
|00001640| 20 6f 66 20 74 68 65 20 | 6c 69 62 72 61 72 79 29 | of the |library)|
|00001650| 2e 0d 05 14 10 dd a4 6d | 61 6c 6c 6f 63 28 41 25 |.......m|alloc(A%|
|00001660| 29 0d 05 1e 0b ea 20 4d | 25 2c 53 25 0d 05 28 2d |)..... M|%,S%..(-|
|00001670| 53 25 3d 41 25 3a 41 25 | 3d 31 32 2b 28 41 25 20 |S%=A%:A%|=12+(A% |
|00001680| 81 20 31 36 29 2a 31 36 | 3a e7 20 41 25 3c 53 25 |. 16)*16|:. A%<S%|
|00001690| 20 8c 20 41 25 2b 3d 31 | 36 0d 05 32 1c d6 20 5f | . A%+=1|6..2.. _|
|000016a0| 6d 65 6d 5f 63 6f 64 65 | 25 3a 4d 25 3d 21 5f 6d |mem_code|%:M%=!_m|
|000016b0| 65 6d 72 76 25 0d 05 3c | 0c e7 20 4d 25 3d 30 20 |emrv%..<|.. M%=0 |
|000016c0| 8c 0d 05 46 1c 20 20 4d | 25 3d a4 5f 6d 6f 72 65 |...F. M|%=._more|
|000016d0| 5f 6d 65 6d 6f 72 79 28 | 41 25 2b 34 29 0d 05 50 |_memory(|A%+4)..P|
|000016e0| 05 cd 0d 05 5a 47 e7 20 | 4d 25 3c 3e 30 20 8c 20 |....ZG. |M%<>0 . |
|000016f0| 53 25 3d 21 28 4d 25 2d | 34 29 3a e7 20 53 25 2d |S%=!(M%-|4):. S%-|
|00001700| 41 25 3e 31 35 20 8c 20 | 21 28 4d 25 2d 34 29 3d |A%>15 . |!(M%-4)=|
|00001710| 41 25 3a f2 61 64 64 5f | 66 72 65 65 28 4d 25 2b |A%:.add_|free(M%+|
|00001720| 41 25 2c 53 25 2d 41 25 | 29 0d 05 64 37 e7 20 4d |A%,S%-A%|)..d7. M|
|00001730| 25 3d 30 20 80 20 5f 6d | 65 6d 5f 65 72 72 6f 72 |%=0 . _m|em_error|
|00001740| 25 20 8c 20 85 20 31 31 | 2c 22 43 61 6e 27 74 20 |% . . 11|,"Can't |
|00001750| 61 6c 6c 6f 63 61 74 65 | 20 6d 65 6d 6f 72 79 22 |allocate| memory"|
|00001760| 0d 05 6e 07 3d 4d 25 0d | 05 78 04 0d 05 82 13 2a |..n.=M%.|.x.....*|
|00001770| 7c 73 74 6f 70 20 46 4e | 6d 61 6c 6c 6f 63 0d 05 ||stop FN|malloc..|
|00001780| 8c 14 2a 7c 73 74 61 72 | 74 20 50 52 4f 43 66 72 |..*|star|t PROCfr|
|00001790| 65 65 0d 05 96 1a 2a 7c | 21 50 52 4f 43 66 72 65 |ee....*||!PROCfre|
|000017a0| 65 28 20 70 6f 69 6e 74 | 65 72 20 29 0d 05 a0 07 |e( point|er )....|
|000017b0| 2a 7c 21 0d 05 aa 50 2a | 7c 21 44 65 61 6c 6c 6f |*|!...P*||!Deallo|
|000017c0| 63 61 74 65 73 20 74 68 | 65 20 6d 65 6d 6f 72 79 |cates th|e memory|
|000017d0| 20 70 6f 69 6e 74 65 64 | 20 74 6f 20 62 79 20 27 | pointed| to by '|
|000017e0| 70 6f 69 6e 74 65 72 27 | 2e 20 54 68 65 20 73 75 |pointer'|. The su|
|000017f0| 70 70 6c 69 65 64 20 70 | 6f 69 6e 74 65 72 20 4d |pplied p|ointer M|
|00001800| 55 53 54 0d 05 b4 51 2a | 7c 21 62 65 20 6f 6e 65 |UST...Q*||!be one|
|00001810| 20 67 69 76 65 6e 20 62 | 79 20 65 69 74 68 65 72 | given b|y either|
|00001820| 20 46 4e 6d 61 6c 6c 6f | 63 20 6f 72 20 50 52 4f | FNmallo|c or PRO|
|00001830| 43 72 65 61 6c 6c 6f 63 | 2e 20 50 61 73 73 69 6e |Crealloc|. Passin|
|00001840| 67 20 61 6e 79 20 6f 74 | 68 65 72 20 70 6f 69 6e |g any ot|her poin|
|00001850| 74 65 72 73 0d 05 be 39 | 2a 7c 21 77 69 6c 6c 20 |ters...9|*|!will |
|00001860| 63 61 75 73 65 20 74 68 | 65 20 6c 69 62 72 61 72 |cause th|e librar|
|00001870| 79 20 74 6f 20 66 61 69 | 6c 20 61 74 20 73 6f 6d |y to fai|l at som|
|00001880| 65 20 6c 65 74 65 72 20 | 64 61 74 65 2e 0d 05 c8 |e leter |date....|
|00001890| 0e dd f2 66 72 65 65 28 | 41 25 29 0d 05 d2 08 ea |...free(|A%).....|
|000018a0| 20 4c 25 0d 05 dc 1e d6 | 20 5f 6d 65 6d 5f 63 6f | L%.....| _mem_co|
|000018b0| 64 65 25 2b 34 3a 4c 25 | 3d 21 5f 6d 65 6d 72 76 |de%+4:L%|=!_memrv|
|000018c0| 25 0d 05 e6 41 e7 20 28 | 4c 25 2b 21 28 4c 25 2d |%...A. (|L%+!(L%-|
|000018d0| 34 29 29 3d 5f 6d 74 6f | 70 25 20 80 20 28 34 2b |4))=_mto|p% . (4+|
|000018e0| 21 28 4c 25 2d 34 29 29 | 3e 3d 5f 6d 70 73 69 7a |!(L%-4))|>=_mpsiz|
|000018f0| 65 25 20 8c 20 f2 5f 6c | 65 73 73 5f 6d 65 6d 6f |e% . ._l|ess_memo|
|00001900| 72 79 0d 05 f0 05 e1 0d | 05 fa 04 0d 06 04 13 2a |ry......|.......*|
|00001910| 7c 73 74 6f 70 20 50 52 | 4f 43 66 72 65 65 0d 06 ||stop PR|OCfree..|
|00001920| 0e 18 2a 7c 73 74 61 72 | 74 20 50 52 4f 43 61 64 |..*|star|t PROCad|
|00001930| 64 5f 66 72 65 65 0d 06 | 18 2d 2a 7c 21 50 52 4f |d_free..|.-*|!PRO|
|00001940| 43 61 64 64 5f 66 72 65 | 65 28 20 73 74 61 72 74 |Cadd_fre|e( start|
|00001950| 5f 61 64 64 72 65 73 73 | 20 2c 20 6c 65 6e 67 74 |_address| , lengt|
|00001960| 68 20 29 0d 06 22 07 2a | 7c 21 0d 06 2c 49 2a 7c |h )..".*||!..,I*||
|00001970| 21 54 68 69 73 20 70 72 | 6f 63 65 64 75 72 65 20 |!This pr|ocedure |
|00001980| 63 61 6e 20 62 65 20 75 | 73 65 64 20 66 6f 72 20 |can be u|sed for |
|00001990| 70 61 73 73 69 6e 67 20 | 6e 65 77 20 62 6c 6f 63 |passing |new bloc|
|000019a0| 6b 73 20 6f 66 20 6d 65 | 6d 6f 72 79 20 74 6f 20 |ks of me|mory to |
|000019b0| 74 68 65 0d 06 36 4e 2a | 7c 21 6c 69 62 72 61 72 |the..6N*||!librar|
|000019c0| 79 2e 20 59 6f 75 20 73 | 68 6f 75 6c 64 20 4e 4f |y. You s|hould NO|
|000019d0| 54 20 70 61 73 73 20 74 | 68 69 73 20 70 72 6f 63 |T pass t|his proc|
|000019e0| 65 64 75 72 65 20 62 6c | 6f 63 6b 73 20 61 6c 72 |edure bl|ocks alr|
|000019f0| 65 61 64 79 20 61 6c 6c | 6f 63 61 74 65 64 20 62 |eady all|ocated b|
|00001a00| 79 0d 06 40 4d 2a 7c 21 | 74 68 69 73 20 6c 69 62 |y..@M*|!|this lib|
|00001a10| 72 61 72 79 2c 20 72 61 | 74 68 65 72 20 69 74 20 |rary, ra|ther it |
|00001a20| 73 68 6f 75 6c 64 20 62 | 65 20 75 73 65 64 20 66 |should b|e used f|
|00001a30| 6f 72 20 6e 65 77 20 62 | 6c 6f 63 6b 73 20 6f 66 |or new b|locks of|
|00001a40| 20 6d 65 6d 6f 72 79 20 | 67 61 69 6e 65 64 0d 06 | memory |gained..|
|00001a50| 4a 4f 2a 7c 21 66 72 6f | 6d 20 65 6c 73 65 77 68 |JO*|!fro|m elsewh|
|00001a60| 65 72 65 20 28 65 67 2e | 20 66 72 6f 6d 20 74 68 |ere (eg.| from th|
|00001a70| 65 20 44 49 4d 20 63 6f | 6d 6d 61 6e 64 29 2e 20 |e DIM co|mmand). |
|00001a80| 54 68 65 20 27 73 74 61 | 72 74 5f 61 64 64 72 65 |The 'sta|rt_addre|
|00001a90| 73 73 27 20 73 68 6f 75 | 6c 64 20 62 65 0d 06 54 |ss' shou|ld be..T|
|00001aa0| 4d 2a 7c 21 74 68 65 20 | 69 6e 69 74 69 61 6c 20 |M*|!the |initial |
|00001ab0| 61 64 64 72 65 73 73 20 | 6f 66 20 74 68 65 20 62 |address |of the b|
|00001ac0| 6c 6f 63 6b 2c 20 61 6e | 64 20 27 6c 65 6e 67 74 |lock, an|d 'lengt|
|00001ad0| 68 27 20 73 68 6f 75 6c | 64 20 62 65 20 74 68 65 |h' shoul|d be the|
|00001ae0| 20 6c 65 6e 67 74 68 20 | 6f 66 0d 06 5e 11 2a 7c | length |of..^.*||
|00001af0| 21 74 68 65 20 62 6c 6f | 63 6b 2e 0d 06 68 15 dd |!the blo|ck...h..|
|00001b00| f2 61 64 64 5f 66 72 65 | 65 28 41 25 2c 4c 25 29 |.add_fre|e(A%,L%)|
|00001b10| 0d 06 72 3a 4c 25 3d 28 | 4c 25 20 81 20 31 36 29 |..r:L%=(|L% . 16)|
|00001b20| 2a 31 36 3a e7 20 4c 25 | 3e 30 20 8c 20 21 41 25 |*16:. L%|>0 . !A%|
|00001b30| 3d 4c 25 2d 34 3a 41 25 | 2b 3d 34 3a d6 20 5f 6d |=L%-4:A%|+=4:. _m|
|00001b40| 65 6d 5f 63 6f 64 65 25 | 2b 34 0d 06 7c 05 e1 0d |em_code%|+4..|...|
|00001b50| 06 86 04 0d 06 90 17 2a | 7c 73 74 6f 70 20 50 52 |.......*||stop PR|
|00001b60| 4f 43 61 64 64 5f 66 72 | 65 65 0d 06 9a 17 2a 7c |OCadd_fr|ee....*||
|00001b70| 73 74 61 72 74 20 50 52 | 4f 43 72 65 61 6c 6c 6f |start PR|OCreallo|
|00001b80| 63 0d 06 a4 28 2a 7c 21 | 50 52 4f 43 72 65 61 6c |c...(*|!|PROCreal|
|00001b90| 6c 6f 63 28 20 70 6f 69 | 6e 74 65 72 20 2c 20 6e |loc( poi|nter , n|
|00001ba0| 65 77 5f 73 69 7a 65 20 | 29 0d 06 ae 07 2a 7c 21 |ew_size |)....*|!|
|00001bb0| 0d 06 b8 4a 2a 7c 21 54 | 68 69 73 20 70 72 6f 63 |...J*|!T|his proc|
|00001bc0| 65 64 75 72 65 20 74 61 | 6b 65 73 20 74 68 65 20 |edure ta|kes the |
|00001bd0| 62 6c 6f 63 6b 20 70 6f | 69 6e 74 65 64 20 74 6f |block po|inted to|
|00001be0| 20 62 79 20 27 70 6f 69 | 6e 74 65 72 27 20 61 6e | by 'poi|nter' an|
|00001bf0| 64 20 6d 61 6b 65 73 20 | 69 74 0d 06 c2 4c 2a 7c |d makes |it...L*||
|00001c00| 21 61 74 20 6c 65 61 73 | 74 20 27 6e 65 77 5f 73 |!at leas|t 'new_s|
|00001c10| 69 7a 65 27 20 62 79 74 | 65 73 20 6c 6f 6e 67 2e |ize' byt|es long.|
|00001c20| 20 27 70 6f 69 6e 74 65 | 72 20 6d 75 73 74 20 62 | 'pointe|r must b|
|00001c30| 65 20 61 20 70 6f 69 6e | 74 65 72 20 70 72 65 76 |e a poin|ter prev|
|00001c40| 69 6f 75 73 6c 79 0d 06 | cc 4c 2a 7c 21 67 69 76 |iously..|.L*|!giv|
|00001c50| 65 6e 20 62 79 20 46 4e | 6d 61 6c 6c 6f 63 20 6f |en by FN|malloc o|
|00001c60| 72 20 50 52 4f 43 72 65 | 61 6c 6c 6f 63 2e 20 52 |r PROCre|alloc. R|
|00001c70| 65 61 6c 6c 6f 63 61 74 | 69 6f 6e 20 6d 61 79 20 |eallocat|ion may |
|00001c80| 72 65 71 75 69 72 65 20 | 72 65 6c 6f 63 61 74 69 |require |relocati|
|00001c90| 6f 6e 0d 06 d6 4a 2a 7c | 21 6f 66 20 74 68 65 20 |on...J*||!of the |
|00001ca0| 62 6c 6f 63 6b 2c 20 69 | 6e 20 77 68 69 63 68 20 |block, i|n which |
|00001cb0| 63 61 73 65 20 74 68 65 | 20 70 6f 69 6e 74 65 72 |case the| pointer|
|00001cc0| 20 69 73 20 75 70 64 61 | 74 65 64 20 61 6e 64 20 | is upda|ted and |
|00001cd0| 74 68 65 20 63 6f 6e 74 | 65 6e 74 73 0d 06 e0 4a |the cont|ents...J|
|00001ce0| 2a 7c 21 63 6f 70 69 65 | 64 20 74 6f 20 74 68 65 |*|!copie|d to the|
|00001cf0| 20 6e 65 77 20 6c 6f 63 | 61 74 69 6f 6e 2e 20 49 | new loc|ation. I|
|00001d00| 66 20 61 20 4e 55 4c 4c | 20 70 6f 69 6e 74 65 72 |f a NULL| pointer|
|00001d10| 20 69 73 20 67 69 76 65 | 6e 2c 20 50 52 4f 43 72 | is give|n, PROCr|
|00001d20| 65 61 6c 6c 6f 63 0d 06 | ea 4a 2a 7c 21 62 65 68 |ealloc..|.J*|!beh|
|00001d30| 61 76 65 73 20 6c 69 6b | 65 20 6d 61 6c 6c 6f 63 |aves lik|e malloc|
|00001d40| 2e 20 49 66 20 74 68 65 | 20 62 6c 6f 63 6b 20 63 |. If the| block c|
|00001d50| 61 6e 20 6e 6f 74 20 62 | 65 20 65 78 74 65 6e 64 |an not b|e extend|
|00001d60| 65 64 20 6e 6f 72 20 72 | 65 6c 6f 63 61 74 65 64 |ed nor r|elocated|
|00001d70| 0d 06 f4 47 2a 7c 21 74 | 68 65 6e 20 74 68 69 73 |...G*|!t|hen this|
|00001d80| 20 70 72 6f 63 65 64 75 | 72 65 20 77 69 6c 6c 20 | procedu|re will |
|00001d90| 65 69 74 68 65 72 20 72 | 61 69 73 65 20 61 6e 20 |either r|aise an |
|00001da0| 45 52 52 4f 52 20 28 6e | 75 6d 62 65 72 20 31 31 |ERROR (n|umber 11|
|00001db0| 29 20 6f 72 20 64 6f 0d | 06 fe 47 2a 7c 21 6e 6f |) or do.|..G*|!no|
|00001dc0| 74 68 69 6e 67 20 28 69 | 65 2e 20 6c 65 61 76 65 |thing (i|e. leave|
|00001dd0| 20 74 68 65 20 62 6c 6f | 63 6b 20 61 73 20 69 74 | the blo|ck as it|
|00001de0| 20 77 61 73 29 20 64 65 | 70 65 6e 64 69 6e 67 20 | was) de|pending |
|00001df0| 6f 6e 20 74 68 65 20 73 | 65 74 74 69 6e 67 0d 07 |on the s|etting..|
|00001e00| 08 1b 2a 7c 21 67 69 76 | 65 6e 20 74 6f 20 50 52 |..*|!giv|en to PR|
|00001e10| 4f 43 6d 65 6d 6f 72 79 | 2e 0d 07 12 16 dd f2 72 |OCmemory|.......r|
|00001e20| 65 61 6c 6c 6f 63 28 f8 | 20 50 25 2c 4e 25 29 0d |ealloc(.| P%,N%).|
|00001e30| 07 1c 14 ea 20 41 25 2c | 42 25 2c 43 25 2c 4d 25 |.... A%,|B%,C%,M%|
|00001e40| 2c 53 25 0d 07 26 1d e7 | 20 50 25 3d 30 20 8c 20 |,S%..&..| P%=0 . |
|00001e50| 50 25 3d a4 6d 61 6c 6c | 6f 63 28 4e 25 29 3a e1 |P%=.mall|oc(N%):.|
|00001e60| 0d 07 30 38 43 25 3d 21 | 28 50 25 2d 34 29 3a 42 |..08C%=!|(P%-4):B|
|00001e70| 25 3d 4e 25 3a 4e 25 3d | 31 32 2b 28 4e 25 20 81 |%=N%:N%=|12+(N% .|
|00001e80| 20 31 36 29 2a 31 36 3a | e7 20 4e 25 3c 42 25 20 | 16)*16:|. N%<B% |
|00001e90| 8c 20 4e 25 2b 3d 31 36 | 0d 07 3a 0e e7 20 4e 25 |. N%+=16|..:.. N%|
|00001ea0| 3c 3d 43 25 20 8c 0d 07 | 44 36 20 20 e7 20 28 43 |<=C% ...|D6 . (C|
|00001eb0| 25 2d 4e 25 29 3e 31 35 | 20 8c 20 21 28 50 25 2d |%-N%)>15| . !(P%-|
|00001ec0| 34 29 3d 4e 25 3a f2 61 | 64 64 5f 66 72 65 65 28 |4)=N%:.a|dd_free(|
|00001ed0| 50 25 2b 4e 25 2c 43 25 | 2d 4e 25 29 0d 07 4e 05 |P%+N%,C%|-N%)..N.|
|00001ee0| cc 0d 07 58 4c 20 20 41 | 25 3d 50 25 2b 43 25 2b |...XL A|%=P%+C%+|
|00001ef0| 34 3a d6 20 5f 6d 65 6d | 5f 63 6f 64 65 25 2b 38 |4:. _mem|_code%+8|
|00001f00| 3a 42 25 3d 21 5f 6d 65 | 6d 72 76 25 3a 41 25 3d |:B%=!_me|mrv%:A%=|
|00001f10| 30 3a e7 20 42 25 3c 3e | 30 20 8c 20 42 25 3d 21 |0:. B%<>|0 . B%=!|
|00001f20| 42 25 3a 41 25 3d 21 28 | 42 25 2d 34 29 0d 07 62 |B%:A%=!(|B%-4)..b|
|00001f30| 1d 20 20 e7 20 42 25 3c | 3e 30 20 80 20 43 25 2b |. . B%<|>0 . C%+|
|00001f40| 41 25 2b 34 3e 3d 4e 25 | 20 8c 0d 07 6c 1c 20 20 |A%+4>=N%| ...l. |
|00001f50| 20 20 e7 20 28 43 25 2b | 41 25 2b 34 2d 4e 25 29 | . (C%+|A%+4-N%)|
|00001f60| 3e 3d 31 36 20 8c 0d 07 | 76 3e 20 20 20 20 20 20 |>=16 ...|v> |
|00001f70| 21 21 5f 6d 65 6d 72 76 | 25 3d 21 42 25 3a 21 28 |!!_memrv|%=!B%:!(|
|00001f80| 50 25 2d 34 29 3d 4e 25 | 3a f2 61 64 64 5f 66 72 |P%-4)=N%|:.add_fr|
|00001f90| 65 65 28 50 25 2b 4e 25 | 2c 43 25 2b 41 25 2b 34 |ee(P%+N%|,C%+A%+4|
|00001fa0| 2d 4e 25 29 0d 07 80 09 | 20 20 20 20 cc 0d 07 8a |-N%)....| ....|
|00001fb0| 27 20 20 20 20 20 20 21 | 21 5f 6d 65 6d 72 76 25 |' !|!_memrv%|
|00001fc0| 3d 21 42 25 3a 21 28 50 | 25 2d 34 29 3d 43 25 2b |=!B%:!(P|%-4)=C%+|
|00001fd0| 41 25 2b 34 0d 07 94 09 | 20 20 20 20 cd 0d 07 9e |A%+4....| ....|
|00001fe0| 07 20 20 cc 0d 07 a8 1f | 20 20 20 20 e7 20 28 50 |. .....| . (P|
|00001ff0| 25 2b 43 25 2b 41 25 2b | 34 29 3d 5f 6d 74 6f 70 |%+C%+A%+|4)=_mtop|
|00002000| 25 20 8c 0d 07 b2 17 20 | 20 20 20 20 20 21 21 5f |% ..... | !!_|
|00002010| 6d 65 6d 72 76 25 3d 21 | 42 25 0d 07 bc 28 20 20 |memrv%=!|B%...( |
|00002020| 20 20 20 20 4d 25 3d a4 | 5f 6d 6f 72 65 5f 6d 65 | M%=.|_more_me|
|00002030| 6d 6f 72 79 28 4e 25 2d | 28 43 25 2b 41 25 2b 34 |mory(N%-|(C%+A%+4|
|00002040| 29 29 0d 07 c6 12 20 20 | 20 20 20 20 e7 20 4d 25 |)).... | . M%|
|00002050| 3d 30 20 8c 0d 07 d0 18 | 20 20 20 20 20 20 20 20 |=0 .....| |
|00002060| 21 21 5f 6d 65 6d 72 76 | 25 3d 42 25 0d 07 da 38 |!!_memrv|%=B%...8|
|00002070| 20 20 20 20 20 20 20 20 | e7 20 5f 6d 65 6d 5f 65 | |. _mem_e|
|00002080| 72 72 6f 72 25 20 8c 20 | 85 20 31 31 2c 22 43 61 |rror% . |. 11,"Ca|
|00002090| 6e 27 74 20 61 6c 6c 6f | 63 61 74 65 20 6d 65 6d |n't allo|cate mem|
|000020a0| 6f 72 79 22 0d 07 e4 0d | 20 20 20 20 20 20 20 20 |ory"....| |
|000020b0| e1 0d 07 ee 0b 20 20 20 | 20 20 20 cd 0d 07 f8 16 |..... | .....|
|000020c0| 20 20 20 20 20 20 53 25 | 3d 34 2b 21 28 4d 25 2d | S%|=4+!(M%-|
|000020d0| 34 29 0d 08 02 20 20 20 | 20 20 20 20 e7 20 28 53 |4)... | . (S|
|000020e0| 25 2b 43 25 2b 41 25 2b | 34 2d 4e 25 29 3e 31 36 |%+C%+A%+|4-N%)>16|
|000020f0| 20 8c 0d 08 0c 35 20 20 | 20 20 20 20 20 20 21 28 | ....5 | !(|
|00002100| 50 25 2d 34 29 3d 4e 25 | 3a f2 61 64 64 5f 66 72 |P%-4)=N%|:.add_fr|
|00002110| 65 65 28 50 25 2b 4e 25 | 2c 53 25 2b 43 25 2b 41 |ee(P%+N%|,S%+C%+A|
|00002120| 25 2b 34 2d 4e 25 29 0d | 08 16 0b 20 20 20 20 20 |%+4-N%).|... |
|00002130| 20 cc 0d 08 20 1e 20 20 | 20 20 20 20 20 20 21 28 | ... . | !(|
|00002140| 50 25 2d 34 29 3d 53 25 | 2b 43 25 2b 41 25 2b 34 |P%-4)=S%|+C%+A%+4|
|00002150| 0d 08 2a 0b 20 20 20 20 | 20 20 cd 0d 08 34 09 20 |..*. | ...4. |
|00002160| 20 20 20 cc 0d 08 3e 1e | 20 20 20 20 20 20 41 25 | ...>.| A%|
|00002170| 3d 43 25 3a 43 25 3d a4 | 6d 61 6c 6c 6f 63 28 4e |=C%:C%=.|malloc(N|
|00002180| 25 29 0d 08 48 13 20 20 | 20 20 20 20 e7 20 43 25 |%)..H. | . C%|
|00002190| 3c 3e 30 20 8c 0d 08 52 | 31 20 20 20 20 20 20 20 |<>0 ...R|1 |
|000021a0| 20 42 25 3d 50 25 3a d6 | 20 5f 6d 65 6d 5f 63 6f | B%=P%:.| _mem_co|
|000021b0| 64 65 25 2b 31 32 3a f2 | 66 72 65 65 28 50 25 29 |de%+12:.|free(P%)|
|000021c0| 3a 50 25 3d 43 25 0d 08 | 5c 0b 20 20 20 20 20 20 |:P%=C%..|\. |
|000021d0| cc 0d 08 66 38 20 20 20 | 20 20 20 20 20 e7 20 5f |...f8 | . _|
|000021e0| 6d 65 6d 5f 65 72 72 6f | 72 25 20 8c 20 85 20 31 |mem_erro|r% . . 1|
|000021f0| 31 2c 22 43 61 6e 27 74 | 20 61 6c 6c 6f 63 61 74 |1,"Can't| allocat|
|00002200| 65 20 6d 65 6d 6f 72 79 | 22 0d 08 70 0b 20 20 20 |e memory|"..p. |
|00002210| 20 20 20 cd 0d 08 7a 09 | 20 20 20 20 cd 0d 08 84 | ...z.| ....|
|00002220| 07 20 20 cd 0d 08 8e 05 | cd 0d 08 98 05 e1 0d 08 |. .....|........|
|00002230| a2 04 0d 08 ac 16 2a 7c | 73 74 6f 70 20 50 52 4f |......*||stop PRO|
|00002240| 43 72 65 61 6c 6c 6f 63 | 0d 08 b6 12 2a 7c 73 74 |Crealloc|....*|st|
|00002250| 61 72 74 20 46 4e 66 72 | 65 65 0d 08 c0 0d 2a 7c |art FNfr|ee....*||
|00002260| 21 46 4e 66 72 65 65 0d | 08 ca 07 2a 7c 21 0d 08 |!FNfree.|...*|!..|
|00002270| d4 50 2a 7c 21 54 68 69 | 73 20 66 75 6e 63 74 69 |.P*|!Thi|s functi|
|00002280| 6f 6e 20 72 65 74 75 72 | 6e 73 20 74 68 65 20 74 |on retur|ns the t|
|00002290| 6f 74 61 6c 20 6d 65 6d | 6f 72 79 20 61 76 61 69 |otal mem|ory avai|
|000022a0| 6c 61 62 6c 65 20 66 6f | 72 20 61 6c 6c 6f 63 61 |lable fo|r alloca|
|000022b0| 74 69 6f 6e 20 75 6e 64 | 65 72 20 74 68 65 0d 08 |tion und|er the..|
|000022c0| de 4e 2a 7c 21 63 75 72 | 72 65 6e 74 20 6d 65 6d |.N*|!cur|rent mem|
|000022d0| 6f 72 79 20 61 6c 6c 6f | 63 61 74 69 6f 6e 20 6d |ory allo|cation m|
|000022e0| 65 74 68 6f 64 2e 20 54 | 68 69 73 20 69 6e 63 6c |ethod. T|his incl|
|000022f0| 75 64 65 73 20 74 68 65 | 20 6d 65 6d 6f 72 79 20 |udes the| memory |
|00002300| 61 76 61 69 6c 61 62 6c | 65 20 69 6e 0d 08 e8 4e |availabl|e in...N|
|00002310| 2a 7c 21 74 68 65 20 6c | 69 62 72 61 72 69 65 73 |*|!the l|ibraries|
|00002320| 20 66 72 65 65 20 6d 65 | 6d 6f 72 79 20 73 74 72 | free me|mory str|
|00002330| 75 63 74 75 72 65 2c 20 | 61 6e 64 20 65 69 74 68 |ucture, |and eith|
|00002340| 65 72 20 74 68 65 20 6d | 65 6d 6f 72 79 20 61 76 |er the m|emory av|
|00002350| 61 69 6c 61 62 6c 65 20 | 74 6f 0d 08 f2 4d 2a 7c |ailable |to...M*||
|00002360| 21 42 61 73 69 63 27 73 | 20 44 49 4d 20 63 6f 6d |!Basic's| DIM com|
|00002370| 6d 61 6e 64 20 28 6c 65 | 73 73 20 32 6b 29 20 6f |mand (le|ss 2k) o|
|00002380| 72 20 74 68 65 20 6d 65 | 6d 6f 72 79 20 61 76 61 |r the me|mory ava|
|00002390| 69 6c 61 62 6c 65 20 69 | 6e 20 74 68 65 20 57 49 |ilable i|n the WI|
|000023a0| 4d 50 20 66 72 65 65 0d | 08 fc 13 2a 7c 21 6d 65 |MP free.|...*|!me|
|000023b0| 6d 6f 72 79 20 70 6f 6f | 6c 2e 0d 09 06 0a dd a4 |mory poo|l.......|
|000023c0| 66 72 65 65 0d 09 10 0b | ea 20 41 25 2c 42 25 0d |free....|. A%,B%.|
|000023d0| 09 1a 1f d6 20 5f 6d 65 | 6d 5f 63 6f 64 65 25 2b |.... _me|m_code%+|
|000023e0| 32 30 3a 41 25 3d 21 5f | 6d 65 6d 72 76 25 0d 09 |20:A%=!_|memrv%..|
|000023f0| 24 3f e7 20 5f 6d 65 6d | 64 69 6d 25 20 8c 20 41 |$?. _mem|dim% . A|
|00002400| 25 2b 3d 28 93 2d e0 2d | 32 30 34 38 29 3a 8b 20 |%+=(.-.-|2048):. |
|00002410| c8 99 20 26 34 30 30 45 | 43 2c 2d 31 2c 2d 31 20 |.. &400E|C,-1,-1 |
|00002420| b8 20 2c 2c 42 25 3a 41 | 25 2b 3d 42 25 0d 09 2e |. ,,B%:A|%+=B%...|
|00002430| 07 3d 41 25 0d 09 38 04 | 0d 09 42 11 2a 7c 73 74 |.=A%..8.|..B.*|st|
|00002440| 6f 70 20 46 4e 66 72 65 | 65 0d 09 4c 15 2a 7c 73 |op FNfre|e..L.*|s|
|00002450| 74 61 72 74 20 46 4e 73 | 69 7a 65 5f 6f 66 0d 09 |tart FNs|ize_of..|
|00002460| 56 1b 2a 7c 21 46 4e 73 | 69 7a 65 5f 6f 66 28 20 |V.*|!FNs|ize_of( |
|00002470| 70 6f 69 6e 74 65 72 20 | 29 0d 09 60 07 2a 7c 21 |pointer |)..`.*|!|
|00002480| 0d 09 6a 4b 2a 7c 21 54 | 68 69 73 20 66 75 6e 63 |..jK*|!T|his func|
|00002490| 74 69 6f 6e 20 72 65 74 | 75 72 6e 73 20 74 68 65 |tion ret|urns the|
|000024a0| 20 73 69 7a 65 20 6f 66 | 20 74 68 65 20 62 6c 6f | size of| the blo|
|000024b0| 63 6b 20 70 6f 69 6e 74 | 65 64 20 74 6f 20 62 79 |ck point|ed to by|
|000024c0| 20 27 70 6f 69 6e 74 65 | 72 27 2e 0d 09 74 11 dd | 'pointe|r'...t..|
|000024d0| a4 73 69 7a 65 5f 6f 66 | 28 50 25 29 0d 09 7e 0c |.size_of|(P%)..~.|
|000024e0| 3d 21 28 50 25 2d 34 29 | 0d 09 88 04 0d 09 92 14 |=!(P%-4)|........|
|000024f0| 2a 7c 73 74 6f 70 20 46 | 4e 73 69 7a 65 5f 6f 66 |*|stop F|Nsize_of|
|00002500| 0d 09 9c 18 2a 7c 73 74 | 61 72 74 20 50 52 4f 43 |....*|st|art PROC|
|00002510| 6d 65 6d 5f 63 6f 70 79 | 0d 09 a6 3c 2a 7c 21 50 |mem_copy|...<*|!P|
|00002520| 52 4f 43 6d 65 6d 5f 63 | 6f 70 79 28 20 62 79 74 |ROCmem_c|opy( byt|
|00002530| 65 73 20 2c 20 73 6f 75 | 72 63 65 5f 61 64 64 72 |es , sou|rce_addr|
|00002540| 65 73 73 20 2c 20 64 65 | 73 74 5f 61 64 64 72 65 |ess , de|st_addre|
|00002550| 73 73 20 29 0d 09 b0 07 | 2a 7c 21 0d 09 ba 4c 2a |ss )....|*|!...L*|
|00002560| 7c 21 43 6f 70 69 65 73 | 20 74 68 65 20 67 69 76 ||!Copies| the giv|
|00002570| 65 6e 20 6e 75 6d 62 65 | 72 20 6f 66 20 62 79 74 |en numbe|r of byt|
|00002580| 65 73 20 66 72 6f 6d 20 | 73 6f 75 72 63 65 5f 61 |es from |source_a|
|00002590| 64 64 72 65 73 73 20 74 | 6f 20 64 65 73 74 5f 61 |ddress t|o dest_a|
|000025a0| 64 64 72 65 73 73 2e 0d | 09 c4 4c 2a 7c 21 42 6f |ddress..|..L*|!Bo|
|000025b0| 74 68 20 61 64 64 72 65 | 73 73 65 73 20 6d 75 73 |th addre|sses mus|
|000025c0| 74 20 62 65 20 77 6f 72 | 64 20 61 6c 6c 69 67 6e |t be wor|d allign|
|000025d0| 65 64 2c 20 61 6e 64 20 | 74 68 65 20 6e 75 6d 62 |ed, and |the numb|
|000025e0| 65 72 20 6f 66 20 62 79 | 74 65 73 20 6d 75 73 74 |er of by|tes must|
|000025f0| 20 62 65 0d 09 ce 41 2a | 7c 21 61 20 6d 75 6c 74 | be...A*||!a mult|
|00002600| 69 70 6c 65 20 6f 66 20 | 34 2e 20 4f 76 65 72 6c |iple of |4. Overl|
|00002610| 61 70 70 69 6e 67 20 62 | 6c 6f 63 6b 73 20 61 72 |apping b|locks ar|
|00002620| 65 20 68 61 6e 64 6c 65 | 64 20 63 6f 72 72 65 63 |e handle|d correc|
|00002630| 74 6c 79 2e 0d 09 d8 18 | dd f2 6d 65 6d 5f 63 6f |tly.....|..mem_co|
|00002640| 70 79 28 41 25 2c 42 25 | 2c 43 25 29 0d 09 e2 13 |py(A%,B%|,C%)....|
|00002650| d6 20 5f 6d 65 6d 5f 63 | 6f 64 65 25 2b 31 32 0d |. _mem_c|ode%+12.|
|00002660| 09 ec 05 e1 0d 09 f6 04 | 0d 0a 00 17 2a 7c 73 74 |........|....*|st|
|00002670| 6f 70 20 50 52 4f 43 6d | 65 6d 5f 63 6f 70 79 0d |op PROCm|em_copy.|
|00002680| 0a 0a 1e 2a 7c 73 74 61 | 72 74 20 50 52 4f 43 6d |...*|sta|rt PROCm|
|00002690| 65 6d 5f 64 69 61 67 6e | 6f 73 74 69 63 0d 0a 14 |em_diagn|ostic...|
|000026a0| 26 2a 7c 21 50 52 4f 43 | 6d 65 6d 5f 64 69 61 67 |&*|!PROC|mem_diag|
|000026b0| 6e 6f 73 74 69 63 28 20 | 66 69 6c 65 5f 6e 61 6d |nostic( |file_nam|
|000026c0| 65 20 29 0d 0a 1e 07 2a | 7c 21 0d 0a 28 46 2a 7c |e )....*||!..(F*||
|000026d0| 21 54 68 69 73 20 70 72 | 6f 63 65 64 75 72 65 20 |!This pr|ocedure |
|000026e0| 73 61 76 65 73 20 61 20 | 64 69 61 67 6e 6f 73 74 |saves a |diagnost|
|000026f0| 69 63 20 66 69 6c 65 20 | 6f 66 20 74 68 65 20 6d |ic file |of the m|
|00002700| 65 6d 6f 72 79 20 61 6c | 6c 6f 63 61 74 69 6f 6e |emory al|location|
|00002710| 0d 0a 32 49 2a 7c 21 61 | 73 20 69 74 20 63 75 72 |..2I*|!a|s it cur|
|00002720| 72 65 6e 74 6c 79 20 73 | 74 61 6e 64 73 20 74 6f |rently s|tands to|
|00002730| 20 61 20 66 69 6c 65 20 | 77 69 74 68 20 74 68 65 | a file |with the|
|00002740| 20 6e 61 6d 65 20 67 69 | 76 65 6e 20 69 6e 20 74 | name gi|ven in t|
|00002750| 68 65 20 73 74 72 69 6e | 67 0d 0a 3c 11 2a 7c 21 |he strin|g..<.*|!|
|00002760| 66 69 6c 65 5f 6e 61 6d | 65 2e 0d 0a 46 38 2a 7c |file_nam|e...F8*||
|00002770| 21 46 6f 72 20 64 65 74 | 61 69 6c 73 20 6f 66 20 |!For det|ails of |
|00002780| 74 68 65 20 66 69 6c 65 | 20 72 65 61 64 20 74 68 |the file| read th|
|00002790| 65 20 6d 65 6d 6f 72 79 | 20 64 6f 63 75 6d 65 6e |e memory| documen|
|000027a0| 74 2e 0d 0a 50 18 dd f2 | 6d 65 6d 5f 64 69 61 67 |t...P...|mem_diag|
|000027b0| 6e 6f 73 74 69 63 28 46 | 24 29 0d 0a 5a 1a ea 20 |nostic(F|$)..Z.. |
|000027c0| 43 25 2c 50 25 2c 4e 25 | 2c 54 25 2c 46 25 2c 4c |C%,P%,N%|,T%,F%,L|
|000027d0| 25 2c 4b 25 0d 0a 64 17 | 43 25 3d ae 28 46 24 29 |%,K%..d.|C%=.(F$)|
|000027e0| 3a e7 20 43 25 3d 30 20 | 8c 20 e1 0d 0a 6e 2f d5 |:. C%=0 |. ...n/.|
|000027f0| 23 43 25 2c 22 4d 65 6d | 6f 72 79 20 4c 69 62 72 |#C%,"Mem|ory Libr|
|00002800| 61 72 79 20 44 69 61 67 | 6e 6f 73 74 69 63 20 4f |ary Diag|nostic O|
|00002810| 75 70 75 74 20 46 69 6c | 65 22 0d 0a 78 0b d5 23 |uput Fil|e"..x..#|
|00002820| 43 25 2c 22 22 0d 0a 82 | 27 d5 23 43 25 2c 22 42 |C%,""...|'.#C%,"B|
|00002830| 61 73 69 63 20 46 72 65 | 65 20 63 68 75 6e 6b 20 |asic Fre|e chunk |
|00002840| 3a 20 26 22 2b c3 7e 28 | 93 2d e0 29 0d 0a 8c 0b |: &"+.~(|.-.)....|
|00002850| d5 23 43 25 2c 22 22 0d | 0a 96 26 d5 23 43 25 2c |.#C%,"".|..&.#C%,|
|00002860| 22 46 72 65 65 20 6d 65 | 6d 6f 72 79 20 69 6e 20 |"Free me|mory in |
|00002870| 42 61 73 69 63 20 61 72 | 65 61 20 3a 22 0d 0a a0 |Basic ar|ea :"...|
|00002880| 29 4b 25 3d 30 3a 50 25 | 3d 21 5f 6d 65 6d 6f 72 |)K%=0:P%|=!_memor|
|00002890| 79 25 3a c8 95 20 50 25 | 3e 3d 26 38 30 30 30 20 |y%:.. P%|>=&8000 |
|000028a0| 80 20 50 25 3c 93 0d 0a | aa 37 d5 23 43 25 2c 22 |. P%<...|.7.#C%,"|
|000028b0| 26 22 2b c3 7e 28 50 25 | 29 2b 22 20 66 72 65 65 |&"+.~(P%|)+" free|
|000028c0| 20 26 22 2b c3 28 50 25 | 21 2d 34 29 3a 4b 25 2b | &"+.(P%|!-4):K%+|
|000028d0| 3d 50 25 21 2d 34 3a 50 | 25 3d 21 50 25 0d 0a b4 |=P%!-4:P|%=!P%...|
|000028e0| 05 ce 0d 0a be 0b d5 23 | 43 25 2c 22 22 0d 0a c8 |.......#|C%,""...|
|000028f0| 2f d5 23 43 25 2c 22 4d | 65 6d 6f 72 79 20 61 6c |/.#C%,"M|emory al|
|00002900| 6c 6f 63 61 74 69 6f 6e | 20 61 62 6f 76 65 20 42 |location| above B|
|00002910| 61 73 69 63 20 61 72 65 | 61 20 3a 22 0d 0a d2 13 |asic are|a :"....|
|00002920| 46 25 3d 50 25 3a 50 25 | 3d 93 3a 4c 25 3d 30 0d |F%=P%:P%|=.:L%=0.|
|00002930| 0a dc 18 c8 95 20 50 25 | 3c 5f 6d 74 6f 70 25 20 |..... P%|<_mtop% |
|00002940| 80 20 50 25 3e 3d 93 0d | 0a e6 77 e7 20 50 25 3c |. P%>=..|..w. P%<|
|00002950| 3e 28 46 25 2d 34 29 20 | 8c 20 d5 23 43 25 2c 22 |>(F%-4) |. .#C%,"|
|00002960| 26 22 2b c3 7e 28 50 25 | 2b 34 29 2b 22 20 75 73 |&"+.~(P%|+4)+" us|
|00002970| 65 64 20 26 22 2b c3 7e | 28 21 50 25 29 3a 4c 25 |ed &"+.~|(!P%):L%|
|00002980| 3d 30 3a 8b 20 d5 23 43 | 25 2c 22 26 22 2b c3 7e |=0:. .#C|%,"&"+.~|
|00002990| 28 50 25 2b 34 29 2b 22 | 20 66 72 65 65 20 26 22 |(P%+4)+"| free &"|
|000029a0| 2b c3 7e 28 21 50 25 29 | 3a 4b 25 2b 3d 21 50 25 |+.~(!P%)|:K%+=!P%|
|000029b0| 3a 4c 25 3d 21 50 25 3a | 46 25 3d 21 46 25 0d 0a |:L%=!P%:|F%=!F%..|
|000029c0| f0 0f 50 25 3d 50 25 2b | 34 2b 21 50 25 0d 0a fa |..P%=P%+|4+!P%...|
|000029d0| 05 ce 0d 0a fb 73 e7 20 | 50 25 3c 3e 5f 6d 74 6f |.....s. |P%<>_mto|
|000029e0| 70 25 20 8c 20 d5 23 43 | 25 2c 22 45 52 52 4f 52 |p% . .#C|%,"ERROR|
|000029f0| 3a 20 43 6f 72 72 75 70 | 74 69 6f 6e 20 69 6e 20 |: Corrup|tion in |
|00002a00| 6d 65 6d 6f 72 79 20 64 | 61 74 61 22 3a 8b 20 e7 |memory d|ata":. .|
|00002a10| 20 46 25 3c 3e 30 20 8c | 20 d5 23 43 25 2c 22 45 | F%<>0 .| .#C%,"E|
|00002a20| 52 52 4f 52 3a 20 43 6f | 72 72 75 70 74 69 6f 6e |RROR: Co|rruption|
|00002a30| 20 69 6e 20 66 72 65 65 | 20 6d 65 6d 6f 72 79 20 | in free| memory |
|00002a40| 6c 69 73 74 22 0d 0b 04 | 0b d5 23 43 25 2c 22 22 |list"...|..#C%,""|
|00002a50| 0d 0b 0e 34 d5 23 43 25 | 2c 22 54 6f 74 61 6c 20 |...4.#C%|,"Total |
|00002a60| 66 72 65 65 20 3a 20 26 | 22 2b c3 7e 28 4b 25 29 |free : &|"+.~(K%)|
|00002a70| 2b 22 20 28 26 22 2b c3 | 7e 28 4b 25 2d 4c 25 29 |+" (&"+.|~(K%-L%)|
|00002a80| 2b 22 29 22 0d 0b 18 08 | d9 23 43 25 0d 0b 22 05 |+")"....|.#C%..".|
|00002a90| e1 0d 0b 2c 1d 2a 7c 73 | 74 6f 70 20 50 52 4f 43 |...,.*|s|top PROC|
|00002aa0| 6d 65 6d 5f 64 69 61 67 | 6e 6f 73 74 69 63 0d 0b |mem_diag|nostic..|
|00002ab0| 36 04 0d ff | |6... | |
+--------+-------------------------+-------------------------+--------+--------+