home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 3 / PDCD_3.iso / languages / panebasic / lib / blib2 / Blib / MEMORY < prev    next >
Unknown  |  1992-12-17  |  6.3 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.

ConfidenceProgramDetectionMatch TypeSupport
100% file data default
100% xdgMime image/x-tga default



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 3d 2a 7c 21 54 68 69 | 73 20 6c 69 62 72 61 72 |(=*|!Thi|s librar|
|00000040| 79 20 63 6f 6e 74 61 69 | 6e 73 20 73 65 76 65 72 |y contai|ns sever|
|00000050| 61 6c 20 70 72 6f 63 65 | 64 75 72 65 73 20 61 6e |al proce|dures an|
|00000060| 64 20 66 75 6e 63 74 69 | 6f 6e 73 0d 00 32 40 2a |d functi|ons..2@*|
|00000070| 7c 21 74 6f 20 61 6c 6c | 6f 77 20 65 61 73 79 20 ||!to all|ow easy |
|00000080| 74 6f 20 75 73 65 20 64 | 79 6e 61 6d 69 63 20 6d |to use d|ynamic m|
|00000090| 65 6d 6f 72 79 20 61 6c | 6c 6f 63 61 74 69 6f 6e |emory al|location|
|000000a0| 2e 20 54 68 65 72 65 20 | 61 72 65 0d 00 3c 40 2a |. There |are..<@*|
|000000b0| 7c 21 20 20 20 20 20 20 | 20 20 20 20 72 65 61 6c ||! | real|
|000000c0| 6c 79 20 74 77 6f 20 61 | 6c 6c 6f 63 61 74 69 6f |ly two a|llocatio|
|000000d0| 6e 20 73 79 73 74 65 6d | 73 20 72 6f 6c 6c 65 64 |n system|s rolled|
|000000e0| 20 69 6e 74 6f 20 6f 6e | 65 20 3a 0d 00 46 40 2a | into on|e :..F@*|
|000000f0| 7c 21 20 20 73 6d 61 6c | 6c 20 2d 20 77 6f 72 6b ||! smal|l - work|
|00000100| 73 20 75 73 69 6e 67 20 | 42 41 53 49 43 27 73 20 |s using |BASIC's |
|00000110| 6f 77 6e 20 44 49 4d 20 | 63 6f 6d 6d 61 6e 64 20 |own DIM |command |
|00000120| 74 6f 20 61 6c 6c 6f 63 | 61 74 65 0d 00 50 38 2a |to alloc|ate..P8*|
|00000130| 7c 21 20 20 20 20 20 20 | 20 20 20 20 6e 65 77 20 ||! | new |
|00000140| 6d 65 6d 6f 72 79 20 69 | 66 20 6e 6f 20 66 72 65 |memory i|f no fre|
|00000150| 65 20 6d 65 6d 6f 72 79 | 20 61 76 61 69 6c 61 62 |e memory| availab|
|00000160| 6c 65 2e 0d 00 5a 41 2a | 7c 21 20 20 6c 61 72 67 |le...ZA*||! larg|
|00000170| 65 20 2d 20 61 6c 6c 6f | 63 61 74 65 73 20 6e 65 |e - allo|cates ne|
|00000180| 77 20 6d 65 6d 6f 72 79 | 20 61 62 6f 76 65 20 48 |w memory| above H|
|00000190| 49 4d 45 4d 20 62 65 20 | 72 65 71 75 65 73 74 69 |IMEM be |requesti|
|000001a0| 6e 67 20 61 0d 00 64 43 | 2a 7c 21 20 20 20 20 20 |ng a..dC|*|! |
|000001b0| 20 20 20 20 20 6c 61 72 | 67 65 72 20 77 69 6d 70 | lar|ger wimp|
|000001c0| 73 6c 6f 74 2e 20 54 68 | 65 20 77 69 6d 70 73 6c |slot. Th|e wimpsl|
|000001d0| 6f 74 20 77 69 6c 6c 20 | 61 6c 73 6f 20 62 65 20 |ot will |also be |
|000001e0| 72 65 64 75 63 65 64 0d | 00 6e 39 2a 7c 21 20 20 |reduced.|.n9*|! |
|000001f0| 20 20 20 20 20 20 20 20 | 69 6e 20 73 69 7a 65 20 | |in size |
|00000200| 69 66 20 69 74 20 63 61 | 6e 20 77 68 65 6e 20 6d |if it ca|n when m|
|00000210| 65 6d 6f 72 79 20 69 73 | 20 66 72 65 65 27 64 2e |emory is| free'd.|
|00000220| 0d 00 78 44 2a 7c 21 54 | 68 65 20 6d 65 74 68 6f |..xD*|!T|he metho|
|00000230| 64 20 75 73 65 64 20 69 | 73 20 73 65 74 20 77 68 |d used i|s set wh|
|00000240| 65 6e 20 69 6e 69 74 69 | 61 6c 69 7a 69 6e 67 20 |en initi|alizing |
|00000250| 74 68 65 20 6d 65 6d 6f | 72 79 20 72 6f 75 74 69 |the memo|ry routi|
|00000260| 6e 65 73 2e 0d 00 82 11 | 2a 7c 73 74 6f 70 20 4d |nes.....|*|stop M|
|00000270| 65 6d 6f 72 79 0d 00 8c | 16 2a 7c 73 74 61 72 74 |emory...|.*|start|
|00000280| 20 50 52 4f 43 6d 65 6d | 6f 72 79 0d 00 96 22 2a | PROCmem|ory..."*|
|00000290| 7c 21 50 52 4f 43 6d 65 | 6d 6f 72 79 28 20 65 72 ||!PROCme|mory( er|
|000002a0| 72 6f 72 20 2c 20 73 6d | 61 6c 6c 20 29 0d 00 a0 |ror , sm|all )...|
|000002b0| 07 2a 7c 21 0d 00 aa 43 | 2a 7c 21 54 68 69 73 20 |.*|!...C|*|!This |
|000002c0| 70 72 6f 63 65 64 75 72 | 65 20 69 6e 69 74 69 61 |procedur|e initia|
|000002d0| 6c 69 7a 65 73 20 74 68 | 65 20 6d 65 6d 6f 72 79 |lizes th|e memory|
|000002e0| 20 61 6c 6c 6f 63 61 74 | 69 6f 6e 20 70 72 6f 63 | allocat|ion proc|
|000002f0| 65 64 75 72 65 73 2e 0d | 00 b4 3d 2a 7c 21 49 74 |edures..|..=*|!It|
|00000300| 20 4d 55 53 54 20 62 65 | 20 63 61 6c 6c 65 64 20 | MUST be| called |
|00000310| 42 45 46 4f 52 45 20 61 | 6e 79 20 6f 74 68 65 72 |BEFORE a|ny other|
|00000320| 20 6d 65 6d 6f 72 79 20 | 70 72 6f 63 65 64 75 72 | memory |procedur|
|00000330| 65 20 6f 72 0d 00 be 43 | 2a 7c 21 66 75 6e 63 74 |e or...C|*|!funct|
|00000340| 69 6f 6e 2e 20 54 68 65 | 20 27 65 72 72 6f 72 27 |ion. The| 'error'|
|00000350| 20 62 6f 6f 6c 65 61 6e | 20 70 61 72 61 6d 65 74 | boolean| paramet|
|00000360| 65 72 20 73 70 65 63 69 | 66 69 65 73 20 77 68 65 |er speci|fies whe|
|00000370| 74 68 65 72 20 6f 72 0d | 00 c8 43 2a 7c 21 6e 6f |ther or.|..C*|!no|
|00000380| 74 20 6d 61 6c 6c 6f 63 | 20 73 68 6f 75 6c 64 20 |t malloc| should |
|00000390| 70 72 6f 64 75 63 65 20 | 61 6e 20 65 72 72 6f 72 |produce |an error|
|000003a0| 20 28 65 72 72 6f 72 20 | 6e 75 6d 62 65 72 20 31 | (error |number 1|
|000003b0| 31 29 20 77 68 65 6e 20 | 69 74 0d 00 d2 42 2a 7c |1) when |it...B*||
|000003c0| 21 63 61 6e 27 74 20 61 | 6c 6c 6f 63 61 74 65 20 |!can't a|llocate |
|000003d0| 74 68 65 20 72 65 71 75 | 69 72 65 64 20 62 6c 6f |the requ|ired blo|
|000003e0| 63 6b 20 6f 66 20 6d 65 | 6d 6f 72 79 2e 20 49 66 |ck of me|mory. If|
|000003f0| 20 74 68 65 20 62 6f 6f | 6c 65 61 6e 0d 00 dc 3f | the boo|lean...?|
|00000400| 2a 7c 21 69 73 20 46 41 | 4c 53 45 20 74 68 65 6e |*|!is FA|LSE then|
|00000410| 20 6e 6f 20 65 72 72 6f | 72 20 77 69 6c 6c 20 62 | no erro|r will b|
|00000420| 65 20 70 72 6f 64 75 63 | 65 64 2c 20 61 6e 64 20 |e produc|ed, and |
|00000430| 6d 61 6c 6c 6f 63 20 77 | 69 6c 6c 0d 00 e6 26 2a |malloc w|ill...&*|
|00000440| 7c 21 73 69 6d 70 6c 79 | 20 72 65 74 75 72 6e 20 ||!simply| return |
|00000450| 30 20 61 73 20 74 68 65 | 20 70 6f 69 6e 74 65 72 |0 as the| pointer|
|00000460| 2e 0d 00 f0 40 2a 7c 21 | 54 68 65 20 27 73 6d 61 |....@*|!|The 'sma|
|00000470| 6c 6c 27 20 62 6f 6f 6c | 65 61 6e 2c 20 69 66 20 |ll' bool|ean, if |
|00000480| 73 65 74 20 74 6f 20 54 | 52 55 45 2c 20 77 69 6c |set to T|RUE, wil|
|00000490| 6c 20 6d 61 6b 65 20 6d | 61 6c 6c 6f 63 20 75 73 |l make m|alloc us|
|000004a0| 65 0d 00 fa 43 2a 7c 21 | 42 41 53 49 43 27 73 20 |e...C*|!|BASIC's |
|000004b0| 27 44 49 4d 27 20 63 6f | 6d 6d 61 6e 64 20 74 6f |'DIM' co|mmand to|
|000004c0| 20 67 61 69 6e 20 6d 65 | 6d 6f 72 79 20 61 6c 6c | gain me|mory all|
|000004d0| 6f 63 61 74 69 6f 6e 2e | 20 54 68 69 73 20 69 73 |ocation.| This is|
|000004e0| 20 6e 6f 74 0d 01 04 42 | 2a 7c 21 61 73 20 70 6f | not...B|*|!as po|
|000004f0| 77 65 72 66 75 6c 20 62 | 75 74 20 64 6f 65 73 20 |werful b|ut does |
|00000500| 6d 65 61 6e 20 74 68 61 | 74 20 74 68 65 20 61 6c |mean tha|t the al|
|00000510| 6c 6f 63 61 74 69 6f 6e | 20 69 73 20 77 69 74 68 |location| is with|
|00000520| 69 6e 20 74 68 65 0d 01 | 0e 41 2a 7c 21 73 74 61 |in the..|.A*|!sta|
|00000530| 72 74 20 77 69 6d 70 73 | 6c 6f 74 2c 20 72 61 74 |rt wimps|lot, rat|
|00000540| 68 65 72 20 74 68 61 6e | 20 6f 6e 20 74 6f 70 20 |her than| on top |
|00000550| 6f 66 20 69 74 2e 20 41 | 6c 73 6f 20 79 6f 75 20 |of it. A|lso you |
|00000560| 63 61 6e 20 75 73 65 0d | 01 18 24 2a 7c 21 27 45 |can use.|..$*|!'E|
|00000570| 4e 44 20 3d 20 3c 65 78 | 70 72 3e 27 20 77 69 74 |ND = <ex|pr>' wit|
|00000580| 68 20 74 68 69 73 20 73 | 65 74 2e 0d 01 22 13 dd |h this s|et..."..|
|00000590| f2 6d 65 6d 6f 72 79 28 | 45 25 2c 44 25 29 0d 01 |.memory(|E%,D%)..|
|000005a0| 2c 10 ea 20 63 6f 70 79 | 72 69 67 68 74 24 0d 01 |,.. copy|right$..|
|000005b0| 36 50 63 6f 70 79 72 69 | 67 68 74 24 3d 22 44 79 |6Pcopyri|ght$="Dy|
|000005c0| 6e 61 6d 69 63 20 6d 65 | 6d 6f 72 79 20 61 6c 6c |namic me|mory all|
|000005d0| 6f 63 61 74 69 6f 6e 20 | 72 6f 75 74 69 6e 65 73 |ocation |routines|
|000005e0| 20 a9 20 63 6f 70 79 72 | 69 67 68 74 20 49 61 6e | . copyr|ight Ian|
|000005f0| 20 50 61 6c 6d 65 72 2c | 20 31 39 39 32 22 0d 01 | Palmer,| 1992"..|
|00000600| 40 2e 5f 6d 65 6d 6f 72 | 79 25 3d 30 3a 5f 6d 65 |@._memor|y%=0:_me|
|00000610| 6d 65 72 72 6f 72 25 3d | 45 25 3a c8 99 20 26 35 |merror%=|E%:.. &5|
|00000620| 31 20 b8 20 5f 6d 70 73 | 69 7a 65 25 0d 01 4a 34 |1 . _mps|ize%..J4|
|00000630| c8 99 20 26 34 30 30 45 | 43 2c 2d 31 2c 2d 31 20 |.. &400E|C,-1,-1 |
|00000640| b8 20 5f 6d 74 6f 70 25 | 3a 5f 6d 74 6f 70 25 2b |. _mtop%|:_mtop%+|
|00000650| 3d 26 38 30 30 30 3a 5f | 6d 64 69 6d 25 3d 44 25 |=&8000:_|mdim%=D%|
|00000660| 0d 01 54 05 e1 0d 01 5e | 04 0d 01 68 16 dd f2 5f |..T....^|...h..._|
|00000670| 6d 6f 72 65 5f 6d 65 6d | 6f 72 79 28 52 25 29 0d |more_mem|ory(R%).|
|00000680| 01 72 14 ea 20 53 25 2c | 4e 25 2c 46 25 2c 54 25 |.r.. S%,|N%,F%,T%|
|00000690| 2c 4d 25 0d 01 7c 4a 4d | 25 3d 5f 6d 65 6d 6f 72 |,M%..|JM|%=_memor|
|000006a0| 79 25 3a c8 95 20 4d 25 | 3c 3e 30 20 54 25 3d 4d |y%:.. M%|<>0 T%=M|
|000006b0| 25 2d 34 3a e7 20 28 4d | 25 2b 21 54 25 29 3d 5f |%-4:. (M|%+!T%)=_|
|000006c0| 6d 74 6f 70 25 20 8c 20 | 52 25 2d 3d 21 54 25 3a |mtop% . |R%-=!T%:|
|000006d0| 4d 25 3d 30 3a 8b 20 4d | 25 3d 21 4d 25 0d 01 86 |M%=0:. M|%=!M%...|
|000006e0| 53 ce 3a c8 99 20 26 34 | 30 30 45 43 2c 2d 31 2c |S.:.. &4|00EC,-1,|
|000006f0| 2d 31 20 b8 20 53 25 2c | 4e 25 2c 46 25 3a 4d 25 |-1 . S%,|N%,F%:M%|
|00000700| 3d 53 25 2b 52 25 3a e7 | 20 46 25 3c 52 25 20 8c |=S%+R%:.| F%<R% .|
|00000710| 20 85 20 30 2c 22 43 61 | 6e 27 74 20 67 65 74 20 | . 0,"Ca|n't get |
|00000720| 61 6e 79 20 6d 6f 72 65 | 20 6d 65 6d 6f 72 79 22 |any more| memory"|
|00000730| 0d 01 90 42 c8 99 20 26 | 34 30 30 45 43 2c 4d 25 |...B.. &|400EC,M%|
|00000740| 2c 4e 25 20 b8 20 54 25 | 3a f2 61 64 64 5f 66 72 |,N% . T%|:.add_fr|
|00000750| 65 65 28 53 25 2b 26 38 | 30 30 30 2c 54 25 2d 53 |ee(S%+&8|000,T%-S|
|00000760| 25 29 3a 5f 6d 74 6f 70 | 25 3d 54 25 2b 26 38 30 |%):_mtop|%=T%+&80|
|00000770| 30 30 0d 01 9a 05 e1 0d | 01 a4 04 0d 01 ae 16 dd |00......|........|
|00000780| f2 5f 6c 65 73 73 5f 6d | 65 6d 6f 72 79 28 52 25 |._less_m|emory(R%|
|00000790| 29 0d 01 b8 2a ea 20 4e | 25 2c 53 25 2c 44 25 2c |)...*. N|%,S%,D%,|
|000007a0| 54 25 2c 4c 25 3a 54 25 | 3d 21 52 25 3a 52 25 2d |T%,L%:T%|=!R%:R%-|
|000007b0| 3d 34 3a 4c 25 3d 34 2b | 21 52 25 0d 01 c2 3b 44 |=4:L%=4+|!R%...;D|
|000007c0| 25 3d 28 4c 25 20 81 20 | 5f 6d 70 73 69 7a 65 25 |%=(L% . |_mpsize%|
|000007d0| 29 2a 5f 6d 70 73 69 7a | 65 25 3a 4e 25 3d 4c 25 |)*_mpsiz|e%:N%=L%|
|000007e0| 2d 44 25 3a 53 25 3d 5f | 6d 74 6f 70 25 2d 44 25 |-D%:S%=_|mtop%-D%|
|000007f0| 2d 26 38 30 30 30 0d 01 | cc 28 c8 99 20 26 34 30 |-&8000..|.(.. &40|
|00000800| 30 45 43 2c 53 25 2c 2d | 31 20 b8 20 53 25 3a 5f |0EC,S%,-|1 . S%:_|
|00000810| 6d 74 6f 70 25 3d 53 25 | 2b 26 38 30 30 30 0d 01 |mtop%=S%|+&8000..|
|00000820| d6 23 e7 20 4e 25 3e 37 | 20 8c 20 21 52 25 3d 4e |.#. N%>7| . !R%=N|
|00000830| 25 2d 34 3a 8b 20 5f 6d | 65 6d 6f 72 79 25 3d 54 |%-4:. _m|emory%=T|
|00000840| 25 0d 01 e0 05 e1 0d 01 | ea 04 0d 01 f4 16 dd f2 |%.......|........|
|00000850| 5f 73 65 74 5f 70 72 65 | 76 28 4b 25 2c 4e 25 29 |_set_pre|v(K%,N%)|
|00000860| 0d 01 fe 21 e7 20 4b 25 | 3d 30 20 8c 20 5f 6d 65 |...!. K%|=0 . _me|
|00000870| 6d 6f 72 79 25 3d 4e 25 | 3a 8b 20 21 4b 25 3d 4e |mory%=N%|:. !K%=N|
|00000880| 25 0d 02 08 05 e1 0d 02 | 12 04 0d 02 1c 14 dd a4 |%.......|........|
|00000890| 5f 63 68 65 63 6b 5f 6d | 65 6d 28 4c 25 29 0d 02 |_check_m|em(L%)..|
|000008a0| 26 14 ea 20 41 25 2c 51 | 25 2c 53 25 2c 50 25 2c |&.. A%,Q|%,S%,P%,|
|000008b0| 54 25 0d 02 30 1f 50 25 | 3d 30 3a 53 25 3d 21 28 |T%..0.P%|=0:S%=!(|
|000008c0| 4c 25 2d 34 29 3a 41 25 | 3d 5f 6d 65 6d 6f 72 79 |L%-4):A%|=_memory|
|000008d0| 25 0d 02 3a 10 f5 3a 51 | 25 3d 21 28 41 25 2d 34 |%..:..:Q|%=!(A%-4|
|000008e0| 29 0d 02 44 97 e7 20 28 | 41 25 2b 51 25 29 3d 28 |)..D.. (|A%+Q%)=(|
|000008f0| 4c 25 2d 34 29 20 8c 20 | 53 25 3d 53 25 2b 51 25 |L%-4) . |S%=S%+Q%|
|00000900| 2b 34 3a 54 25 3d 41 25 | 2d 34 3a 21 54 25 3d 53 |+4:T%=A%|-4:!T%=S|
|00000910| 25 3a 4c 25 3d 41 25 3a | f2 5f 73 65 74 5f 70 72 |%:L%=A%:|._set_pr|
|00000920| 65 76 28 50 25 2c 21 41 | 25 29 3a 41 25 3d 50 25 |ev(P%,!A|%):A%=P%|
|00000930| 3a 8b 20 e7 20 28 4c 25 | 2b 53 25 29 3d 28 41 25 |:. . (L%|+S%)=(A%|
|00000940| 2d 34 29 20 8c 20 f2 5f | 73 65 74 5f 70 72 65 76 |-4) . ._|set_prev|
|00000950| 28 50 25 2c 21 41 25 29 | 3a 53 25 3d 53 25 2b 51 |(P%,!A%)|:S%=S%+Q|
|00000960| 25 2b 34 3a 54 25 3d 4c | 25 2d 34 3a 21 54 25 3d |%+4:T%=L|%-4:!T%=|
|00000970| 53 25 3a 41 25 3d 50 25 | 0d 02 4e 28 50 25 3d 41 |S%:A%=P%|..N(P%=A|
|00000980| 25 3a e7 20 41 25 3c 3e | 30 20 8c 20 41 25 3d 21 |%:. A%<>|0 . A%=!|
|00000990| 41 25 3a 8b 20 41 25 3d | 5f 6d 65 6d 6f 72 79 25 |A%:. A%=|_memory%|
|000009a0| 0d 02 58 0a fd 20 41 25 | 3d 30 0d 02 62 07 3d 4c |..X.. A%|=0..b.=L|
|000009b0| 25 0d 02 6c 04 0d 02 76 | 15 dd a4 5f 66 69 6e 64 |%..l...v|..._find|
|000009c0| 5f 73 70 61 63 65 28 53 | 25 29 0d 02 80 1d ea 20 |_space(S|%)..... |
|000009d0| 41 25 2c 46 25 2c 50 25 | 2c 4d 25 2c 51 25 2c 4c |A%,F%,P%|,M%,Q%,L|
|000009e0| 25 2c 4b 25 2c 4e 25 0d | 02 8a 25 4c 25 3d 30 3a |%,K%,N%.|..%L%=0:|
|000009f0| 46 25 3d 30 3a 4d 25 3d | 31 36 37 37 37 32 31 36 |F%=0:M%=|16777216|
|00000a00| 3a 41 25 3d 5f 6d 65 6d | 6f 72 79 25 0d 02 94 0c |:A%=_mem|ory%....|
|00000a10| c8 95 20 41 25 3c 3e 30 | 0d 02 9e 35 20 20 51 25 |.. A%<>0|...5 Q%|
|00000a20| 3d 21 28 41 25 2d 34 29 | 3a e7 20 51 25 3e 3d 53 |=!(A%-4)|:. Q%>=S|
|00000a30| 25 20 80 20 51 25 3c 4d | 25 20 8c 20 46 25 3d 41 |% . Q%<M|% . F%=A|
|00000a40| 25 3a 4d 25 3d 51 25 3a | 4b 25 3d 4c 25 0d 02 a8 |%:M%=Q%:|K%=L%...|
|00000a50| 12 20 20 4c 25 3d 41 25 | 3a 41 25 3d 21 41 25 0d |. L%=A%|:A%=!A%.|
|00000a60| 02 b2 05 ce 0d 02 bc 0d | e7 20 46 25 3c 3e 30 20 |........|. F%<>0 |
|00000a70| 8c 0d 02 c6 0c 20 20 4e | 25 3d 21 46 25 0d 02 d0 |..... N|%=!F%...|
|00000a80| 4b 20 20 e7 20 28 4d 25 | 2d 53 25 29 3e 37 20 8c |K . (M%|-S%)>7 .|
|00000a90| 20 41 25 3d 46 25 2d 34 | 3a 21 41 25 3d 53 25 3a | A%=F%-4|:!A%=S%:|
|00000aa0| 46 25 21 53 25 3d 28 4d | 25 2d 53 25 2d 34 29 3a |F%!S%=(M|%-S%-4):|
|00000ab0| 41 25 3d 46 25 2b 53 25 | 2b 34 3a 21 41 25 3d 21 |A%=F%+S%|+4:!A%=!|
|00000ac0| 46 25 3a 4e 25 3d 41 25 | 0d 02 da 17 20 20 f2 5f |F%:N%=A%|.... ._|
|00000ad0| 73 65 74 5f 70 72 65 76 | 28 4b 25 2c 4e 25 29 0d |set_prev|(K%,N%).|
|00000ae0| 02 e4 05 cd 0d 02 ee 07 | 3d 46 25 0d 02 f8 04 0d |........|=F%.....|
|00000af0| 03 02 15 2a 7c 73 74 6f | 70 20 50 52 4f 43 6d 65 |...*|sto|p PROCme|
|00000b00| 6d 6f 72 79 0d 03 0c 1c | 2a 7c 73 74 61 72 74 20 |mory....|*|start |
|00000b10| 50 52 4f 43 6d 65 6d 6f | 72 79 5f 73 6d 61 6c 6c |PROCmemo|ry_small|
|00000b20| 0d 03 16 17 2a 7c 21 50 | 52 4f 43 6d 65 6d 6f 72 |....*|!P|ROCmemor|
|00000b30| 79 5f 73 6d 61 6c 6c 0d | 03 20 43 2a 7c 21 54 68 |y_small.|. C*|!Th|
|00000b40| 69 73 20 70 72 6f 63 65 | 64 75 72 65 20 77 69 6c |is proce|dure wil|
|00000b50| 6c 20 73 65 74 20 74 68 | 65 20 27 73 6d 61 6c 6c |l set th|e 'small|
|00000b60| 27 20 6d 65 6d 6f 72 79 | 20 61 6c 6c 6f 63 61 74 |' memory| allocat|
|00000b70| 69 6f 6e 20 61 73 20 74 | 68 65 0d 03 2a 42 2a 7c |ion as t|he..*B*||
|00000b80| 21 63 75 72 72 65 6e 74 | 20 61 6c 6c 6f 63 61 74 |!current| allocat|
|00000b90| 69 6f 6e 20 6d 65 74 68 | 6f 64 2e 20 54 68 69 73 |ion meth|od. This|
|00000ba0| 20 63 61 6e 20 62 65 20 | 64 6f 6e 65 20 61 74 20 | can be |done at |
|00000bb0| 61 6e 79 20 74 69 6d 65 | 20 61 6e 64 0d 03 34 42 |any time| and..4B|
|00000bc0| 2a 7c 21 61 6c 6f 6e 67 | 20 77 69 74 68 20 27 50 |*|!along| with 'P|
|00000bd0| 52 4f 43 6d 65 6d 6f 72 | 79 5f 6c 61 72 67 65 27 |ROCmemor|y_large'|
|00000be0| 20 61 6c 6c 6f 77 73 20 | 62 6f 74 68 20 6d 65 6d | allows |both mem|
|00000bf0| 6f 72 79 20 61 6c 6c 6f | 63 61 74 69 6f 6e 0d 03 |ory allo|cation..|
|00000c00| 3e 2b 2a 7c 21 6d 65 74 | 68 6f 64 73 20 74 6f 20 |>+*|!met|hods to |
|00000c10| 62 65 20 75 73 65 64 20 | 61 74 20 74 68 65 20 73 |be used |at the s|
|00000c20| 61 6d 65 20 74 69 6d 65 | 2e 0d 03 48 12 dd f2 6d |ame time|...H...m|
|00000c30| 65 6d 6f 72 79 5f 73 6d | 61 6c 6c 0d 03 52 0c 5f |emory_sm|all..R._|
|00000c40| 6d 64 69 6d 25 3d b9 0d | 03 5c 05 e1 0d 03 66 04 |mdim%=..|.\....f.|
|00000c50| 0d 03 70 1b 2a 7c 73 74 | 6f 70 20 50 52 4f 43 6d |..p.*|st|op PROCm|
|00000c60| 65 6d 6f 72 79 5f 73 6d | 61 6c 6c 0d 03 7a 1c 2a |emory_sm|all..z.*|
|00000c70| 7c 73 74 61 72 74 20 50 | 52 4f 43 6d 65 6d 6f 72 ||start P|ROCmemor|
|00000c80| 79 5f 6c 61 72 67 65 0d | 03 84 17 2a 7c 21 50 52 |y_large.|...*|!PR|
|00000c90| 4f 43 6d 65 6d 6f 72 79 | 5f 6c 61 72 67 65 0d 03 |OCmemory|_large..|
|00000ca0| 8e 07 2a 7c 21 0d 03 98 | 43 2a 7c 21 54 68 69 73 |..*|!...|C*|!This|
|00000cb0| 20 70 72 6f 63 65 64 75 | 72 65 20 77 69 6c 6c 20 | procedu|re will |
|00000cc0| 73 65 74 20 74 68 65 20 | 27 6c 61 72 67 65 27 20 |set the |'large' |
|00000cd0| 6d 65 6d 6f 72 79 20 61 | 6c 6c 6f 63 61 74 69 6f |memory a|llocatio|
|00000ce0| 6e 20 61 73 20 74 68 65 | 0d 03 a2 42 2a 7c 21 63 |n as the|...B*|!c|
|00000cf0| 75 72 72 65 6e 74 20 61 | 6c 6c 6f 63 61 74 69 6f |urrent a|llocatio|
|00000d00| 6e 20 6d 65 74 68 6f 64 | 2e 20 54 68 69 73 20 63 |n method|. This c|
|00000d10| 61 6e 20 62 65 20 64 6f | 6e 65 20 61 74 20 61 6e |an be do|ne at an|
|00000d20| 79 20 74 69 6d 65 20 61 | 6e 64 0d 03 ac 42 2a 7c |y time a|nd...B*||
|00000d30| 21 61 6c 6f 6e 67 20 77 | 69 74 68 20 27 50 52 4f |!along w|ith 'PRO|
|00000d40| 43 6d 65 6d 6f 72 79 5f | 73 6d 61 6c 6c 27 20 61 |Cmemory_|small' a|
|00000d50| 6c 6c 6f 77 73 20 62 6f | 74 68 20 6d 65 6d 6f 72 |llows bo|th memor|
|00000d60| 79 20 61 6c 6c 6f 63 61 | 74 69 6f 6e 0d 03 b6 2b |y alloca|tion...+|
|00000d70| 2a 7c 21 6d 65 74 68 6f | 64 73 20 74 6f 20 62 65 |*|!metho|ds to be|
|00000d80| 20 75 73 65 64 20 61 74 | 20 74 68 65 20 73 61 6d | used at| the sam|
|00000d90| 65 20 74 69 6d 65 2e 0d | 03 c0 12 dd f2 6d 65 6d |e time..|.....mem|
|00000da0| 6f 72 79 5f 6c 61 72 67 | 65 0d 03 ca 0c 5f 6d 64 |ory_larg|e...._md|
|00000db0| 69 6d 25 3d a3 0d 03 d4 | 05 e1 0d 03 de 04 0d 03 |im%=....|........|
|00000dc0| e8 1b 2a 7c 73 74 6f 70 | 20 50 52 4f 43 6d 65 6d |..*|stop| PROCmem|
|00000dd0| 6f 72 79 5f 6c 61 72 67 | 65 0d 03 f2 14 2a 7c 73 |ory_larg|e....*|s|
|00000de0| 74 61 72 74 20 46 4e 6d | 61 6c 6c 6f 63 0d 03 fc |tart FNm|alloc...|
|00000df0| 17 2a 7c 21 46 4e 6d 61 | 6c 6c 6f 63 28 20 73 69 |.*|!FNma|lloc( si|
|00000e00| 7a 65 20 29 0d 04 06 07 | 2a 7c 21 0d 04 10 41 2a |ze )....|*|!...A*|
|00000e10| 7c 21 54 68 69 73 20 66 | 75 6e 63 74 69 6f 6e 20 ||!This f|unction |
|00000e20| 72 65 74 75 72 6e 73 20 | 61 20 70 6f 69 6e 74 65 |returns |a pointe|
|00000e30| 72 20 74 6f 20 61 20 62 | 6c 6f 63 6b 20 6f 66 20 |r to a b|lock of |
|00000e40| 6d 65 6d 6f 72 79 20 77 | 68 69 63 68 0d 04 1a 46 |memory w|hich...F|
|00000e50| 2a 7c 21 69 73 20 61 74 | 20 6c 65 61 73 74 20 27 |*|!is at| least '|
|00000e60| 73 69 7a 65 27 20 62 79 | 74 65 73 20 6c 6f 6e 67 |size' by|tes long|
|00000e70| 2e 20 49 66 20 69 74 20 | 63 61 6e 27 74 20 61 6c |. If it |can't al|
|00000e80| 6c 6f 63 61 74 65 20 74 | 68 65 20 6d 65 6d 6f 72 |locate t|he memor|
|00000e90| 79 2c 0d 04 24 3f 2a 7c | 21 74 68 65 6e 20 69 74 |y,..$?*||!then it|
|00000ea0| 20 77 69 6c 6c 20 65 69 | 74 68 65 72 20 72 65 74 | will ei|ther ret|
|00000eb0| 75 72 6e 20 30 2c 20 6f | 72 20 69 74 20 77 69 6c |urn 0, o|r it wil|
|00000ec0| 6c 20 63 61 75 73 65 20 | 61 6e 20 65 72 72 6f 72 |l cause |an error|
|00000ed0| 2c 0d 04 2e 43 2a 7c 21 | 64 65 70 65 6e 64 69 6e |,...C*|!|dependin|
|00000ee0| 67 20 6f 6e 20 74 68 65 | 20 61 63 74 69 6f 6e 20 |g on the| action |
|00000ef0| 73 70 65 63 69 66 69 65 | 64 20 69 6e 20 74 68 65 |specifie|d in the|
|00000f00| 20 69 6e 69 74 69 61 6c | 69 7a 61 74 69 6f 6e 20 | initial|ization |
|00000f10| 63 61 6c 6c 0d 04 38 15 | 2a 7c 21 74 6f 20 50 52 |call..8.|*|!to PR|
|00000f20| 4f 43 6d 65 6d 6f 72 79 | 2e 0d 04 42 10 dd a4 6d |OCmemory|...B...m|
|00000f30| 61 6c 6c 6f 63 28 53 25 | 29 0d 04 4c 26 ea 20 50 |alloc(S%|)..L&. P|
|00000f40| 25 3a e7 20 5f 6d 65 6d | 65 72 72 6f 72 25 3d 30 |%:. _mem|error%=0|
|00000f50| 20 8c 20 ea 20 85 3a ee | 20 85 20 ea 20 3d 30 0d | . . .:.| . . =0.|
|00000f60| 04 56 32 e7 20 53 25 3c | 34 20 8c 20 53 25 3d 34 |.V2. S%<|4 . S%=4|
|00000f70| 3a 8b 20 e7 20 28 53 25 | 20 83 20 34 29 3c 3e 30 |:. . (S%| . 4)<>0|
|00000f80| 20 8c 20 53 25 2b 3d 34 | 2d 28 53 25 20 83 20 34 | . S%+=4|-(S% . 4|
|00000f90| 29 0d 04 60 24 e7 20 5f | 6d 65 6d 6f 72 79 25 20 |)..`$. _|memory% |
|00000fa0| 8c 20 50 25 3d a4 5f 66 | 69 6e 64 5f 73 70 61 63 |. P%=._f|ind_spac|
|00000fb0| 65 28 53 25 29 0d 04 6a | 0c e7 20 50 25 3d 30 20 |e(S%)..j|.. P%=0 |
|00000fc0| 8c 0d 04 74 51 20 20 e7 | 20 5f 6d 64 69 6d 25 20 |...tQ .| _mdim% |
|00000fd0| 8c 20 de 20 50 25 20 53 | 25 2b 33 3a 21 50 25 3d |. . P% S|%+3:!P%=|
|00000fe0| 53 25 3a 50 25 2b 3d 34 | 3a 8b 20 f2 5f 6d 6f 72 |S%:P%+=4|:. ._mor|
|00000ff0| 65 5f 6d 65 6d 6f 72 79 | 28 53 25 2b 34 29 3a 50 |e_memory|(S%+4):P|
|00001000| 25 3d a4 5f 66 69 6e 64 | 5f 73 70 61 63 65 28 53 |%=._find|_space(S|
|00001010| 25 29 0d 04 7e 05 cd 0d | 04 88 36 e7 20 50 25 3d |%)..~...|..6. P%=|
|00001020| 30 20 80 20 5f 6d 65 6d | 65 72 72 6f 72 25 20 8c |0 . _mem|error% .|
|00001030| 20 85 20 31 31 2c 22 43 | 61 6e 27 74 20 61 6c 6c | . 11,"C|an't all|
|00001040| 6f 63 61 74 65 20 6d 65 | 6d 6f 72 79 22 0d 04 92 |ocate me|mory"...|
|00001050| 07 3d 50 25 0d 04 9c 04 | 0d 04 a6 13 2a 7c 73 74 |.=P%....|....*|st|
|00001060| 6f 70 20 46 4e 6d 61 6c | 6c 6f 63 0d 04 b0 14 2a |op FNmal|loc....*|
|00001070| 7c 73 74 61 72 74 20 50 | 52 4f 43 66 72 65 65 0d ||start P|ROCfree.|
|00001080| 04 ba 1a 2a 7c 21 50 52 | 4f 43 66 72 65 65 28 20 |...*|!PR|OCfree( |
|00001090| 70 6f 69 6e 74 65 72 20 | 29 0d 04 c4 07 2a 7c 21 |pointer |)....*|!|
|000010a0| 0d 04 ce 43 2a 7c 21 54 | 68 69 73 20 70 72 6f 63 |...C*|!T|his proc|
|000010b0| 65 64 75 72 65 20 66 72 | 65 65 73 20 74 68 65 20 |edure fr|ees the |
|000010c0| 6d 65 6d 6f 72 79 20 62 | 6c 6f 63 6b 20 70 6f 69 |memory b|lock poi|
|000010d0| 6e 74 65 64 20 74 6f 20 | 62 79 20 70 6f 69 6e 74 |nted to |by point|
|000010e0| 65 72 2e 0d 04 d8 43 2a | 7c 21 54 68 69 73 20 70 |er....C*||!This p|
|000010f0| 6f 69 6e 74 65 72 20 6d | 75 73 74 20 62 65 20 61 |ointer m|ust be a|
|00001100| 20 70 6f 69 6e 74 65 72 | 20 72 65 74 75 72 6e 65 | pointer| returne|
|00001110| 64 20 62 79 20 6d 61 6c | 6c 6f 63 2e 20 59 6f 75 |d by mal|loc. You|
|00001120| 20 73 6f 75 6c 64 0d 04 | e2 43 2a 7c 21 6e 6f 74 | sould..|.C*|!not|
|00001130| 20 74 72 79 20 74 6f 20 | 75 73 65 20 74 68 65 20 | try to |use the |
|00001140| 6d 65 6d 6f 72 79 20 70 | 6f 69 6e 74 65 64 20 74 |memory p|ointed t|
|00001150| 6f 20 62 79 20 74 68 65 | 20 70 6f 69 6e 74 65 72 |o by the| pointer|
|00001160| 20 6f 6e 63 65 20 74 68 | 65 0d 04 ec 1d 2a 7c 21 | once th|e....*|!|
|00001170| 6d 65 6d 6f 72 79 20 68 | 61 73 20 62 65 65 6e 20 |memory h|as been |
|00001180| 66 72 65 65 64 2e 0d 04 | f6 0e dd f2 66 72 65 65 |freed...|....free|
|00001190| 28 4c 25 29 0d 05 00 23 | e7 20 5f 6d 65 6d 6f 72 |(L%)...#|. _memor|
|000011a0| 79 25 20 8c 20 4c 25 3d | a4 5f 63 68 65 63 6b 5f |y% . L%=|._check_|
|000011b0| 6d 65 6d 28 4c 25 29 0d | 05 0a 5e 21 4c 25 3d 5f |mem(L%).|..^!L%=_|
|000011c0| 6d 65 6d 6f 72 79 25 3a | 5f 6d 65 6d 6f 72 79 25 |memory%:|_memory%|
|000011d0| 3d 4c 25 3a e7 20 28 4c | 25 2b 21 28 4c 25 2d 34 |=L%:. (L|%+!(L%-4|
|000011e0| 29 29 3d 5f 6d 74 6f 70 | 25 20 80 20 28 34 2b 21 |))=_mtop|% . (4+!|
|000011f0| 28 4c 25 2d 34 29 29 3e | 3d 5f 6d 70 73 69 7a 65 |(L%-4))>|=_mpsize|
|00001200| 25 20 8c 20 f2 5f 6c 65 | 73 73 5f 6d 65 6d 6f 72 |% . ._le|ss_memor|
|00001210| 79 28 4c 25 29 0d 05 14 | 05 e1 0d 05 1e 04 0d 05 |y(L%)...|........|
|00001220| 28 13 2a 7c 73 74 6f 70 | 20 50 52 4f 43 66 72 65 |(.*|stop| PROCfre|
|00001230| 65 0d 05 32 17 2a 7c 73 | 74 61 72 74 20 50 52 4f |e..2.*|s|tart PRO|
|00001240| 43 72 65 61 6c 6c 6f 63 | 0d 05 3c 29 2a 7c 21 20 |Crealloc|..<)*|! |
|00001250| 50 52 4f 43 72 65 61 6c | 6c 6f 63 28 20 70 6f 69 |PROCreal|loc( poi|
|00001260| 6e 74 65 72 20 2c 20 6e | 65 77 5f 73 69 7a 65 20 |nter , n|ew_size |
|00001270| 29 0d 05 46 07 2a 7c 21 | 0d 05 50 45 2a 7c 21 54 |)..F.*|!|..PE*|!T|
|00001280| 68 69 73 20 70 72 6f 63 | 65 64 75 72 65 20 74 61 |his proc|edure ta|
|00001290| 6b 65 73 20 61 6e 20 65 | 78 69 73 74 69 6e 67 20 |kes an e|xisting |
|000012a0| 62 6c 6f 63 6b 20 28 63 | 72 65 61 74 65 64 20 62 |block (c|reated b|
|000012b0| 79 20 6d 61 6c 6c 6f 63 | 29 20 61 6e 64 0d 05 5a |y malloc|) and..Z|
|000012c0| 3d 2a 7c 21 63 68 61 6e | 67 65 73 20 74 68 65 20 |=*|!chan|ges the |
|000012d0| 73 69 7a 65 20 69 66 20 | 6e 65 63 65 73 73 61 72 |size if |necessar|
|000012e0| 79 20 73 6f 20 74 68 61 | 74 20 69 74 20 69 73 20 |y so tha|t it is |
|000012f0| 28 61 74 20 6c 65 61 73 | 74 29 0d 05 64 40 2a 7c |(at leas|t)..d@*||
|00001300| 21 27 6e 65 77 5f 73 69 | 7a 65 27 20 62 79 74 65 |!'new_si|ze' byte|
|00001310| 73 20 6c 6f 6e 67 2e 20 | 49 66 20 74 68 65 20 62 |s long. |If the b|
|00001320| 6c 6f 63 6b 20 69 73 20 | 6d 6f 76 65 64 20 74 6f |lock is |moved to|
|00001330| 20 6d 61 6b 65 20 74 68 | 69 73 0d 05 6e 40 2a 7c | make th|is..n@*||
|00001340| 21 70 6f 73 73 69 62 6c | 65 2c 20 70 6f 69 6e 74 |!possibl|e, point|
|00001350| 65 72 20 77 69 6c 6c 20 | 62 65 20 75 70 64 61 74 |er will |be updat|
|00001360| 65 64 20 61 6e 64 20 74 | 68 65 20 64 61 74 61 20 |ed and t|he data |
|00001370| 69 6e 73 69 64 65 20 74 | 68 65 0d 05 78 28 2a 7c |inside t|he..x(*||
|00001380| 21 62 6c 6f 63 6b 20 63 | 6f 70 69 65 64 20 74 6f |!block c|opied to|
|00001390| 20 69 74 73 20 6e 65 77 | 20 6c 6f 63 61 74 69 6f | its new| locatio|
|000013a0| 6e 2e 0d 05 82 16 dd f2 | 72 65 61 6c 6c 6f 63 28 |n.......|realloc(|
|000013b0| f8 20 50 25 2c 53 25 29 | 0d 05 8c 14 ea 20 4f 25 |. P%,S%)|..... O%|
|000013c0| 2c 41 25 2c 44 25 2c 4e | 25 2c 54 25 0d 05 96 0e |,A%,D%,N|%,T%....|
|000013d0| 4f 25 3d 21 28 50 25 2d | 34 29 0d 05 a0 0d e7 20 |O%=!(P%-|4)..... |
|000013e0| 4f 25 3c 53 25 20 8c 0d | 05 aa 24 20 20 4e 25 3d |O%<S% ..|..$ N%=|
|000013f0| a4 6d 61 6c 6c 6f 63 28 | 53 25 29 3a e7 20 53 25 |.malloc(|S%):. S%|
|00001400| 3c 4f 25 20 8c 20 4f 25 | 3d 53 25 0d 05 b4 3b 20 |<O% . O%|=S%...; |
|00001410| 20 e3 20 41 25 3d 30 20 | b8 20 4f 25 2d 31 20 88 | . A%=0 |. O%-1 .|
|00001420| 20 34 3a 21 28 4e 25 2b | 41 25 29 3d 21 28 50 25 | 4:!(N%+|A%)=!(P%|
|00001430| 2b 41 25 29 3a ed 3a f2 | 66 72 65 65 28 50 25 29 |+A%):.:.|free(P%)|
|00001440| 3a 50 25 3d 4e 25 0d 05 | be 05 cc 0d 05 c8 23 20 |:P%=N%..|......# |
|00001450| 20 e7 20 28 53 25 20 83 | 20 34 29 3e 30 20 8c 20 | . (S% .| 4)>0 . |
|00001460| 53 25 2b 3d 34 2d 28 53 | 25 20 83 20 34 29 0d 05 |S%+=4-(S|% . 4)..|
|00001470| d2 34 20 20 e7 20 4f 25 | 2d 53 25 3e 31 31 20 8c |.4 . O%|-S%>11 .|
|00001480| 20 21 28 50 25 2d 34 29 | 3d 53 25 3a f2 61 64 64 | !(P%-4)|=S%:.add|
|00001490| 5f 66 72 65 65 28 50 25 | 2b 53 25 2c 4f 25 2d 53 |_free(P%|+S%,O%-S|
|000014a0| 25 29 0d 05 dc 05 cd 0d | 05 e6 05 e1 0d 05 f0 04 |%)......|........|
|000014b0| 0d 05 fa 16 2a 7c 73 74 | 6f 70 20 50 52 4f 43 72 |....*|st|op PROCr|
|000014c0| 65 61 6c 6c 6f 63 0d 06 | 04 18 2a 7c 73 74 61 72 |ealloc..|..*|star|
|000014d0| 74 20 50 52 4f 43 61 64 | 64 5f 66 72 65 65 0d 06 |t PROCad|d_free..|
|000014e0| 0e 27 2a 7c 21 50 52 4f | 43 61 64 64 5f 66 72 65 |.'*|!PRO|Cadd_fre|
|000014f0| 65 28 20 61 64 64 72 65 | 73 73 20 2c 20 6c 65 6e |e( addre|ss , len|
|00001500| 67 74 68 20 29 0d 06 18 | 47 2a 7c 21 54 68 69 73 |gth )...|G*|!This|
|00001510| 20 70 72 6f 63 65 64 75 | 72 65 20 61 6c 6c 6f 77 | procedu|re allow|
|00001520| 73 20 74 68 65 20 75 73 | 65 72 20 74 6f 20 61 64 |s the us|er to ad|
|00001530| 64 20 6e 65 77 20 61 72 | 65 61 73 20 6f 66 20 6d |d new ar|eas of m|
|00001540| 65 6d 6f 72 79 20 74 6f | 20 74 68 65 0d 06 22 46 |emory to| the.."F|
|00001550| 2a 7c 21 6d 65 6d 6f 72 | 79 20 66 72 65 65 20 70 |*|!memor|y free p|
|00001560| 6f 6f 6c 2e 20 54 68 69 | 73 20 6d 75 73 74 20 4e |ool. Thi|s must N|
|00001570| 4f 54 20 62 65 20 75 73 | 65 64 20 74 6f 20 66 72 |OT be us|ed to fr|
|00001580| 65 65 20 6d 65 6d 6f 72 | 79 20 74 68 61 74 20 68 |ee memor|y that h|
|00001590| 61 73 0d 06 2c 2e 2a 7c | 21 61 6c 72 65 61 64 79 |as..,.*||!already|
|000015a0| 20 62 65 65 6e 20 61 6c | 6c 6f 63 61 74 65 64 20 | been al|located |
|000015b0| 62 79 20 74 68 69 73 20 | 6c 69 62 72 61 72 79 2e |by this |library.|
|000015c0| 0d 06 36 15 dd f2 61 64 | 64 5f 66 72 65 65 28 50 |..6...ad|d_free(P|
|000015d0| 25 2c 4c 25 29 0d 06 40 | 18 21 50 25 3d 4c 25 2d |%,L%)..@|.!P%=L%-|
|000015e0| 34 3a f2 66 72 65 65 28 | 50 25 2b 34 29 0d 06 4a |4:.free(|P%+4)..J|
|000015f0| 05 e1 0d 06 54 04 0d 06 | 5e 17 2a 7c 73 74 6f 70 |....T...|^.*|stop|
|00001600| 20 50 52 4f 43 61 64 64 | 5f 66 72 65 65 0d 06 68 | PROCadd|_free..h|
|00001610| 12 2a 7c 73 74 61 72 74 | 20 46 4e 66 72 65 65 0d |.*|start| FNfree.|
|00001620| 06 72 0d 2a 7c 21 46 4e | 66 72 65 65 0d 06 7c 07 |.r.*|!FN|free..|.|
|00001630| 2a 7c 21 0d 06 86 3d 2a | 7c 21 54 68 69 73 20 66 |*|!...=*||!This f|
|00001640| 75 6e 63 74 69 6f 6e 20 | 72 65 74 75 72 6e 73 20 |unction |returns |
|00001650| 74 68 65 20 74 6f 74 61 | 6c 20 6d 65 6d 6f 72 79 |the tota|l memory|
|00001660| 20 61 76 61 69 6c 61 62 | 6c 65 20 74 6f 20 62 65 | availab|le to be|
|00001670| 0d 06 90 3f 2a 7c 21 61 | 6c 6c 6f 63 61 74 65 64 |...?*|!a|llocated|
|00001680| 20 75 73 69 6e 67 20 6d | 61 6c 6c 6f 63 2e 20 49 | using m|alloc. I|
|00001690| 74 20 69 6e 63 6c 75 64 | 65 73 20 61 6c 6c 20 74 |t includ|es all t|
|000016a0| 68 65 20 63 75 72 72 65 | 6e 74 20 66 72 65 65 0d |he curre|nt free.|
|000016b0| 06 9a 3f 2a 7c 21 6d 65 | 6d 6f 72 79 20 69 6e 20 |..?*|!me|mory in |
|000016c0| 74 68 65 20 73 79 73 74 | 65 6d 20 69 66 20 79 6f |the syst|em if yo|
|000016d0| 75 20 61 72 65 20 75 73 | 69 6e 67 20 74 68 65 20 |u are us|ing the |
|000016e0| 27 6c 61 72 67 65 27 20 | 6d 65 6d 6f 72 79 0d 06 |'large' |memory..|
|000016f0| a4 3e 2a 7c 21 61 6c 6c | 6f 63 61 74 69 6f 6e 20 |.>*|!all|ocation |
|00001700| 6d 65 74 68 6f 64 2c 20 | 6f 74 68 65 72 77 69 73 |method, |otherwis|
|00001710| 65 20 69 74 20 77 69 6c | 6c 20 69 6e 63 6c 75 64 |e it wil|l includ|
|00001720| 65 20 74 68 65 20 6d 65 | 6d 6f 72 79 0d 06 ae 23 |e the me|mory...#|
|00001730| 2a 7c 21 61 76 61 69 6c | 61 62 6c 65 20 66 72 6f |*|!avail|able fro|
|00001740| 6d 20 42 41 53 49 43 20 | 69 74 73 65 6c 66 2e 0d |m BASIC |itself..|
|00001750| 06 b8 0a dd a4 66 72 65 | 65 0d 06 c2 0b ea 20 41 |.....fre|e..... A|
|00001760| 25 2c 54 25 0d 06 cc 3a | 41 25 3d 5f 6d 65 6d 6f |%,T%...:|A%=_memo|
|00001770| 72 79 25 3a e7 20 5f 6d | 64 69 6d 25 20 8c 20 54 |ry%:. _m|dim% . T|
|00001780| 25 3d 93 2d e0 3a 8b 20 | c8 99 20 26 34 30 30 45 |%=.-.:. |.. &400E|
|00001790| 43 2c 2d 31 2c 2d 31 20 | b8 20 2c 2c 54 25 0d 06 |C,-1,-1 |. ,,T%..|
|000017a0| d6 21 c8 95 20 41 25 3c | 3e 30 20 54 25 2b 3d 21 |.!.. A%<|>0 T%+=!|
|000017b0| 28 41 25 2d 34 29 3a 41 | 25 3d 21 41 25 3a ce 0d |(A%-4):A|%=!A%:..|
|000017c0| 06 e0 07 3d 54 25 0d 06 | ea 04 0d 06 f4 11 2a 7c |...=T%..|......*||
|000017d0| 73 74 6f 70 20 46 4e 66 | 72 65 65 0d 06 fe 15 2a |stop FNf|ree....*|
|000017e0| 7c 73 74 61 72 74 20 46 | 4e 73 69 7a 65 5f 6f 66 ||start F|Nsize_of|
|000017f0| 0d 07 08 1b 2a 7c 21 46 | 4e 73 69 7a 65 5f 6f 66 |....*|!F|Nsize_of|
|00001800| 28 20 70 6f 69 6e 74 65 | 72 20 29 0d 07 12 07 2a |( pointe|r )....*|
|00001810| 7c 21 0d 07 1c 41 2a 7c | 21 54 68 69 73 20 66 75 ||!...A*||!This fu|
|00001820| 6e 63 74 69 6f 6e 20 72 | 65 74 75 72 6e 73 20 74 |nction r|eturns t|
|00001830| 68 65 20 73 69 7a 65 20 | 6f 66 20 74 68 65 20 6d |he size |of the m|
|00001840| 65 6d 6f 72 79 20 62 6c | 6f 63 6b 20 70 6f 69 6e |emory bl|ock poin|
|00001850| 74 65 64 0d 07 26 43 2a | 7c 21 74 6f 20 62 79 20 |ted..&C*||!to by |
|00001860| 74 68 65 20 70 6f 69 6e | 74 65 72 2e 20 54 68 69 |the poin|ter. Thi|
|00001870| 73 20 69 73 20 74 68 65 | 20 6d 61 78 69 6d 75 6d |s is the| maximum|
|00001880| 20 6e 75 6d 62 65 72 20 | 6f 66 20 62 79 74 65 73 | number |of bytes|
|00001890| 20 77 68 69 63 68 0d 07 | 30 3e 2a 7c 21 79 6f 75 | which..|0>*|!you|
|000018a0| 20 63 61 6e 20 75 73 65 | 20 73 74 61 72 74 69 6e | can use| startin|
|000018b0| 67 20 61 74 20 74 68 65 | 20 70 6f 69 6e 74 65 72 |g at the| pointer|
|000018c0| 2c 20 61 6e 64 20 67 6f | 69 6e 67 20 75 70 77 61 |, and go|ing upwa|
|000018d0| 72 64 73 2e 0d 07 3a 11 | dd a4 73 69 7a 65 5f 6f |rds...:.|..size_o|
|000018e0| 66 28 4c 25 29 0d 07 44 | 0c 3d 21 28 4c 25 2d 34 |f(L%)..D|.=!(L%-4|
|000018f0| 29 0d 07 4e 04 0d 07 58 | 14 2a 7c 73 74 6f 70 20 |)..N...X|.*|stop |
|00001900| 46 4e 73 69 7a 65 5f 6f | 66 0d ff |FNsize_o|f.. |
+--------+-------------------------+-------------------------+--------+--------+