home *** CD-ROM | disk | FTP | other *** search
open in:
MacOS 8.1
|
Win98
|
DOS
browse contents |
view JSON data
|
view as text
This file was processed as: SHell self-extracting ARchive
(archive/shar).
Confidence | Program | Detection | Match Type | Support
|
---|
100%
| dexvert
| SHell self-extracting ARchive (archive/shar)
| magic
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| ASCII text
| default
| |
100%
| checkBytes
| Printable ASCII
| default
| |
100%
| perlTextCheck
| Likely Text (Perl)
| default
| |
100%
| siegfried
| fmt/329 Shell Archive Format
| default
| |
100%
| detectItEasy
| Format: plain text[LF]
| default (weak)
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 4e 65 77 73 67 72 6f 75 | 70 73 3a 20 63 6f 6d 70 |Newsgrou|ps: comp|
|00000010| 2e 73 6f 75 72 63 65 73 | 2e 6d 69 73 63 0a 46 72 |.sources|.misc.Fr|
|00000020| 6f 6d 3a 20 74 63 61 6d | 70 40 61 63 70 75 62 2e |om: tcam|p@acpub.|
|00000030| 64 75 6b 65 2e 65 64 75 | 20 28 54 65 64 20 41 2e |duke.edu| (Ted A.|
|00000040| 20 43 61 6d 70 62 65 6c | 6c 29 0a 53 75 62 6a 65 | Campbel|l).Subje|
|00000050| 63 74 3a 20 20 76 33 33 | 69 30 34 36 3a 20 20 62 |ct: v33|i046: b|
|00000060| 77 62 61 73 69 63 20 2d | 20 42 79 77 61 74 65 72 |wbasic -| Bywater|
|00000070| 20 42 41 53 49 43 20 69 | 6e 74 65 72 70 72 65 74 | BASIC i|nterpret|
|00000080| 65 72 20 76 65 72 73 69 | 6f 6e 20 31 2e 31 30 2c |er versi|on 1.10,|
|00000090| 20 50 61 72 74 31 30 2f | 31 31 0a 4d 65 73 73 61 | Part10/|11.Messa|
|000000a0| 67 65 2d 49 44 3a 20 3c | 31 39 39 32 4e 6f 76 35 |ge-ID: <|1992Nov5|
|000000b0| 2e 30 34 31 30 32 34 2e | 32 30 38 38 30 40 73 70 |.041024.|20880@sp|
|000000c0| 61 72 6b 79 2e 69 6d 64 | 2e 73 74 65 72 6c 69 6e |arky.imd|.sterlin|
|000000d0| 67 2e 63 6f 6d 3e 0a 58 | 2d 4d 64 34 2d 53 69 67 |g.com>.X|-Md4-Sig|
|000000e0| 6e 61 74 75 72 65 3a 20 | 31 31 30 38 63 32 30 66 |nature: |1108c20f|
|000000f0| 62 33 30 39 66 38 34 62 | 62 62 39 33 36 64 65 38 |b309f84b|bb936de8|
|00000100| 30 33 35 38 31 32 31 37 | 0a 44 61 74 65 3a 20 54 |03581217|.Date: T|
|00000110| 68 75 2c 20 35 20 4e 6f | 76 20 31 39 39 32 20 30 |hu, 5 No|v 1992 0|
|00000120| 34 3a 31 30 3a 32 34 20 | 47 4d 54 0a 41 70 70 72 |4:10:24 |GMT.Appr|
|00000130| 6f 76 65 64 3a 20 6b 65 | 6e 74 40 73 70 61 72 6b |oved: ke|nt@spark|
|00000140| 79 2e 69 6d 64 2e 73 74 | 65 72 6c 69 6e 67 2e 63 |y.imd.st|erling.c|
|00000150| 6f 6d 0a 0a 53 75 62 6d | 69 74 74 65 64 2d 62 79 |om..Subm|itted-by|
|00000160| 3a 20 74 63 61 6d 70 40 | 61 63 70 75 62 2e 64 75 |: tcamp@|acpub.du|
|00000170| 6b 65 2e 65 64 75 20 28 | 54 65 64 20 41 2e 20 43 |ke.edu (|Ted A. C|
|00000180| 61 6d 70 62 65 6c 6c 29 | 0a 50 6f 73 74 69 6e 67 |ampbell)|.Posting|
|00000190| 2d 6e 75 6d 62 65 72 3a | 20 56 6f 6c 75 6d 65 20 |-number:| Volume |
|000001a0| 33 33 2c 20 49 73 73 75 | 65 20 34 36 0a 41 72 63 |33, Issu|e 46.Arc|
|000001b0| 68 69 76 65 2d 6e 61 6d | 65 3a 20 62 77 62 61 73 |hive-nam|e: bwbas|
|000001c0| 69 63 2f 70 61 72 74 31 | 30 0a 45 6e 76 69 72 6f |ic/part1|0.Enviro|
|000001d0| 6e 6d 65 6e 74 3a 20 41 | 4e 53 49 2d 43 0a 0a 23 |nment: A|NSI-C..#|
|000001e0| 21 20 2f 62 69 6e 2f 73 | 68 0a 23 20 54 68 69 73 |! /bin/s|h.# This|
|000001f0| 20 69 73 20 61 20 73 68 | 65 6c 6c 20 61 72 63 68 | is a sh|ell arch|
|00000200| 69 76 65 2e 20 20 52 65 | 6d 6f 76 65 20 61 6e 79 |ive. Re|move any|
|00000210| 74 68 69 6e 67 20 62 65 | 66 6f 72 65 20 74 68 69 |thing be|fore thi|
|00000220| 73 20 6c 69 6e 65 2c 20 | 74 68 65 6e 20 66 65 65 |s line, |then fee|
|00000230| 64 20 69 74 0a 23 20 69 | 6e 74 6f 20 61 20 73 68 |d it.# i|nto a sh|
|00000240| 65 6c 6c 20 76 69 61 20 | 22 73 68 20 66 69 6c 65 |ell via |"sh file|
|00000250| 22 20 6f 72 20 73 69 6d | 69 6c 61 72 2e 20 20 54 |" or sim|ilar. T|
|00000260| 6f 20 6f 76 65 72 77 72 | 69 74 65 20 65 78 69 73 |o overwr|ite exis|
|00000270| 74 69 6e 67 20 66 69 6c | 65 73 2c 0a 23 20 74 79 |ting fil|es,.# ty|
|00000280| 70 65 20 22 73 68 20 66 | 69 6c 65 20 2d 63 22 2e |pe "sh f|ile -c".|
|00000290| 0a 23 20 43 6f 6e 74 65 | 6e 74 73 3a 20 20 62 77 |.# Conte|nts: bw|
|000002a0| 62 5f 6d 74 68 2e 63 20 | 62 77 62 61 73 69 63 2e |b_mth.c |bwbasic.|
|000002b0| 68 0a 23 20 57 72 61 70 | 70 65 64 20 62 79 20 6b |h.# Wrap|ped by k|
|000002c0| 65 6e 74 40 73 70 61 72 | 6b 79 20 6f 6e 20 57 65 |ent@spar|ky on We|
|000002d0| 64 20 4e 6f 76 20 20 34 | 20 32 31 3a 33 34 3a 32 |d Nov 4| 21:34:2|
|000002e0| 39 20 31 39 39 32 0a 50 | 41 54 48 3d 2f 62 69 6e |9 1992.P|ATH=/bin|
|000002f0| 3a 2f 75 73 72 2f 62 69 | 6e 3a 2f 75 73 72 2f 75 |:/usr/bi|n:/usr/u|
|00000300| 63 62 3a 2f 75 73 72 2f | 6c 6f 63 61 6c 2f 62 69 |cb:/usr/|local/bi|
|00000310| 6e 3a 2f 75 73 72 2f 6c | 62 69 6e 20 3b 20 65 78 |n:/usr/l|bin ; ex|
|00000320| 70 6f 72 74 20 50 41 54 | 48 0a 65 63 68 6f 20 49 |port PAT|H.echo I|
|00000330| 66 20 74 68 69 73 20 61 | 72 63 68 69 76 65 20 69 |f this a|rchive i|
|00000340| 73 20 63 6f 6d 70 6c 65 | 74 65 2c 20 79 6f 75 20 |s comple|te, you |
|00000350| 77 69 6c 6c 20 73 65 65 | 20 74 68 65 20 66 6f 6c |will see| the fol|
|00000360| 6c 6f 77 69 6e 67 20 6d | 65 73 73 61 67 65 3a 0a |lowing m|essage:.|
|00000370| 65 63 68 6f 20 27 20 20 | 20 20 20 20 20 20 20 20 |echo ' | |
|00000380| 22 73 68 61 72 3a 20 45 | 6e 64 20 6f 66 20 61 72 |"shar: E|nd of ar|
|00000390| 63 68 69 76 65 20 31 30 | 20 28 6f 66 20 31 31 29 |chive 10| (of 11)|
|000003a0| 2e 22 27 0a 69 66 20 74 | 65 73 74 20 2d 66 20 27 |."'.if t|est -f '|
|000003b0| 62 77 62 5f 6d 74 68 2e | 63 27 20 2d 61 20 22 24 |bwb_mth.|c' -a "$|
|000003c0| 7b 31 7d 22 20 21 3d 20 | 22 2d 63 22 20 3b 20 74 |{1}" != |"-c" ; t|
|000003d0| 68 65 6e 20 0a 20 20 65 | 63 68 6f 20 73 68 61 72 |hen . e|cho shar|
|000003e0| 3a 20 57 69 6c 6c 20 6e | 6f 74 20 63 6c 6f 62 62 |: Will n|ot clobb|
|000003f0| 65 72 20 65 78 69 73 74 | 69 6e 67 20 66 69 6c 65 |er exist|ing file|
|00000400| 20 5c 22 27 62 77 62 5f | 6d 74 68 2e 63 27 5c 22 | \"'bwb_|mth.c'\"|
|00000410| 0a 65 6c 73 65 0a 20 20 | 65 63 68 6f 20 73 68 61 |.else. |echo sha|
|00000420| 72 3a 20 45 78 74 72 61 | 63 74 69 6e 67 20 5c 22 |r: Extra|cting \"|
|00000430| 27 62 77 62 5f 6d 74 68 | 2e 63 27 5c 22 20 5c 28 |'bwb_mth|.c'\" \(|
|00000440| 32 37 39 30 32 20 63 68 | 61 72 61 63 74 65 72 73 |27902 ch|aracters|
|00000450| 5c 29 0a 20 20 73 65 64 | 20 22 73 2f 5e 58 2f 2f |\). sed| "s/^X//|
|00000460| 22 20 3e 27 62 77 62 5f | 6d 74 68 2e 63 27 20 3c |" >'bwb_|mth.c' <|
|00000470| 3c 27 45 4e 44 5f 4f 46 | 5f 46 49 4c 45 27 0a 58 |<'END_OF|_FILE'.X|
|00000480| 2f 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |/*******|********|
|00000490| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000004a0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000004b0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000004c0| 2a 0a 58 0a 58 20 20 20 | 20 20 20 20 20 62 77 62 |*.X.X | bwb|
|000004d0| 5f 6d 74 68 2e 63 20 20 | 20 20 20 20 20 4d 61 74 |_mth.c | Mat|
|000004e0| 68 65 6d 61 74 69 63 61 | 6c 20 46 75 6e 63 74 69 |hematica|l Functi|
|000004f0| 6f 6e 73 0a 58 20 20 20 | 20 20 20 20 20 20 20 20 |ons.X | |
|00000500| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 66 6f 72 | | for|
|00000510| 20 42 79 77 61 74 65 72 | 20 42 41 53 49 43 20 49 | Bywater| BASIC I|
|00000520| 6e 74 65 72 70 72 65 74 | 65 72 0a 58 0a 58 20 20 |nterpret|er.X.X |
|00000530| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000540| 20 20 20 20 20 20 43 6f | 70 79 72 69 67 68 74 20 | Co|pyright |
|00000550| 28 63 29 20 31 39 39 32 | 2c 20 54 65 64 20 41 2e |(c) 1992|, Ted A.|
|00000560| 20 43 61 6d 70 62 65 6c | 6c 0a 58 0a 58 20 20 20 | Campbel|l.X.X |
|00000570| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000580| 20 20 20 20 20 42 79 77 | 61 74 65 72 20 53 6f 66 | Byw|ater Sof|
|00000590| 74 77 61 72 65 0a 58 20 | 20 20 20 20 20 20 20 20 |tware.X | |
|000005a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 50 | | P|
|000005b0| 2e 20 4f 2e 20 42 6f 78 | 20 34 30 32 33 0a 58 20 |. O. Box| 4023.X |
|000005c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000005d0| 20 20 20 20 20 20 20 44 | 75 6b 65 20 53 74 61 74 | D|uke Stat|
|000005e0| 69 6f 6e 0a 58 20 20 20 | 20 20 20 20 20 20 20 20 |ion.X | |
|000005f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 44 75 72 | | Dur|
|00000600| 68 61 6d 2c 20 4e 43 20 | 20 32 37 37 30 36 0a 58 |ham, NC | 27706.X|
|00000610| 0a 58 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.X | |
|00000620| 20 20 20 20 20 20 20 20 | 20 20 65 6d 61 69 6c 3a | | email:|
|00000630| 20 74 63 61 6d 70 40 61 | 63 70 75 62 2e 64 75 6b | tcamp@a|cpub.duk|
|00000640| 65 2e 65 64 75 0a 58 0a | 58 20 20 20 20 20 20 20 |e.edu.X.|X |
|00000650| 20 43 6f 70 79 72 69 67 | 68 74 20 61 6e 64 20 50 | Copyrig|ht and P|
|00000660| 65 72 6d 69 73 73 69 6f | 6e 73 20 49 6e 66 6f 72 |ermissio|ns Infor|
|00000670| 6d 61 74 69 6f 6e 3a 0a | 58 0a 58 20 20 20 20 20 |mation:.|X.X |
|00000680| 20 20 20 41 6c 6c 20 55 | 2e 53 2e 20 61 6e 64 20 | All U|.S. and |
|00000690| 69 6e 74 65 72 6e 61 74 | 69 6f 6e 61 6c 20 63 6f |internat|ional co|
|000006a0| 70 79 72 69 67 68 74 73 | 20 61 72 65 20 63 6c 61 |pyrights| are cla|
|000006b0| 69 6d 65 64 20 62 79 20 | 74 68 65 0a 58 20 20 20 |imed by |the.X |
|000006c0| 20 20 20 20 20 61 75 74 | 68 6f 72 2e 20 54 68 65 | aut|hor. The|
|000006d0| 20 61 75 74 68 6f 72 20 | 67 72 61 6e 74 73 20 70 | author |grants p|
|000006e0| 65 72 6d 69 73 73 69 6f | 6e 20 74 6f 20 75 73 65 |ermissio|n to use|
|000006f0| 20 74 68 69 73 20 63 6f | 64 65 0a 58 20 20 20 20 | this co|de.X |
|00000700| 20 20 20 20 61 6e 64 20 | 73 6f 66 74 77 61 72 65 | and |software|
|00000710| 20 62 61 73 65 64 20 6f | 6e 20 69 74 20 75 6e 64 | based o|n it und|
|00000720| 65 72 20 74 68 65 20 66 | 6f 6c 6c 6f 77 69 6e 67 |er the f|ollowing|
|00000730| 20 63 6f 6e 64 69 74 69 | 6f 6e 73 3a 0a 58 20 20 | conditi|ons:.X |
|00000740| 20 20 20 20 20 20 28 61 | 29 20 69 6e 20 67 65 6e | (a|) in gen|
|00000750| 65 72 61 6c 2c 20 74 68 | 65 20 63 6f 64 65 20 61 |eral, th|e code a|
|00000760| 6e 64 20 73 6f 66 74 77 | 61 72 65 20 62 61 73 65 |nd softw|are base|
|00000770| 64 20 75 70 6f 6e 20 69 | 74 20 6d 61 79 20 62 65 |d upon i|t may be|
|00000780| 0a 58 20 20 20 20 20 20 | 20 20 75 73 65 64 20 62 |.X | used b|
|00000790| 79 20 69 6e 64 69 76 69 | 64 75 61 6c 73 20 61 6e |y indivi|duals an|
|000007a0| 64 20 62 79 20 6e 6f 6e | 2d 70 72 6f 66 69 74 20 |d by non|-profit |
|000007b0| 6f 72 67 61 6e 69 7a 61 | 74 69 6f 6e 73 3b 20 28 |organiza|tions; (|
|000007c0| 62 29 20 69 74 0a 58 20 | 20 20 20 20 20 20 20 6d |b) it.X | m|
|000007d0| 61 79 20 61 6c 73 6f 20 | 62 65 20 75 74 69 6c 69 |ay also |be utili|
|000007e0| 7a 65 64 20 62 79 20 67 | 6f 76 65 72 6e 6d 65 6e |zed by g|overnmen|
|000007f0| 74 61 6c 20 61 67 65 6e | 63 69 65 73 20 69 6e 20 |tal agen|cies in |
|00000800| 61 6e 79 20 63 6f 75 6e | 74 72 79 2c 0a 58 20 20 |any coun|try,.X |
|00000810| 20 20 20 20 20 20 77 69 | 74 68 20 74 68 65 20 65 | wi|th the e|
|00000820| 78 63 65 70 74 69 6f 6e | 20 6f 66 20 6d 69 6c 69 |xception| of mili|
|00000830| 74 61 72 79 20 61 67 65 | 6e 63 69 65 73 3b 20 28 |tary age|ncies; (|
|00000840| 63 29 20 74 68 65 20 63 | 6f 64 65 20 61 6e 64 2f |c) the c|ode and/|
|00000850| 6f 72 0a 58 20 20 20 20 | 20 20 20 20 73 6f 66 74 |or.X | soft|
|00000860| 77 61 72 65 20 62 61 73 | 65 64 20 75 70 6f 6e 20 |ware bas|ed upon |
|00000870| 69 74 20 6d 61 79 20 6e | 6f 74 20 62 65 20 73 6f |it may n|ot be so|
|00000880| 6c 64 20 66 6f 72 20 61 | 20 70 72 6f 66 69 74 20 |ld for a| profit |
|00000890| 77 69 74 68 6f 75 74 0a | 58 20 20 20 20 20 20 20 |without.|X |
|000008a0| 20 61 6e 20 65 78 70 6c | 69 63 69 74 20 61 6e 64 | an expl|icit and|
|000008b0| 20 73 70 65 63 69 66 69 | 63 20 70 65 72 6d 69 73 | specifi|c permis|
|000008c0| 73 69 6f 6e 20 66 72 6f | 6d 20 74 68 65 20 61 75 |sion fro|m the au|
|000008d0| 74 68 6f 72 2c 20 65 78 | 63 65 70 74 0a 58 20 20 |thor, ex|cept.X |
|000008e0| 20 20 20 20 20 20 74 68 | 61 74 20 61 20 6d 69 6e | th|at a min|
|000008f0| 69 6d 61 6c 20 66 65 65 | 20 6d 61 79 20 62 65 20 |imal fee| may be |
|00000900| 63 68 61 72 67 65 64 20 | 66 6f 72 20 6d 65 64 69 |charged |for medi|
|00000910| 61 20 6f 6e 20 77 68 69 | 63 68 20 69 74 20 69 73 |a on whi|ch it is|
|00000920| 0a 58 20 20 20 20 20 20 | 20 20 63 6f 70 69 65 64 |.X | copied|
|00000930| 2c 20 61 6e 64 20 66 6f | 72 20 63 6f 70 79 69 6e |, and fo|r copyin|
|00000940| 67 20 61 6e 64 20 68 61 | 6e 64 6c 69 6e 67 3b 20 |g and ha|ndling; |
|00000950| 28 64 29 20 74 68 65 20 | 63 6f 64 65 20 6d 75 73 |(d) the |code mus|
|00000960| 74 20 62 65 0a 58 20 20 | 20 20 20 20 20 20 64 69 |t be.X | di|
|00000970| 73 74 72 69 62 75 74 65 | 64 20 69 6e 20 74 68 65 |stribute|d in the|
|00000980| 20 66 6f 72 6d 20 69 6e | 20 77 68 69 63 68 20 69 | form in| which i|
|00000990| 74 20 68 61 73 20 62 65 | 65 6e 20 72 65 6c 65 61 |t has be|en relea|
|000009a0| 73 65 64 20 62 79 20 74 | 68 65 0a 58 20 20 20 20 |sed by t|he.X |
|000009b0| 20 20 20 20 61 75 74 68 | 6f 72 3b 20 61 6e 64 20 | auth|or; and |
|000009c0| 28 65 29 20 74 68 65 20 | 63 6f 64 65 20 61 6e 64 |(e) the |code and|
|000009d0| 20 73 6f 66 74 77 61 72 | 65 20 62 61 73 65 64 20 | softwar|e based |
|000009e0| 75 70 6f 6e 20 69 74 20 | 6d 61 79 20 6e 6f 74 0a |upon it |may not.|
|000009f0| 58 20 20 20 20 20 20 20 | 20 62 65 20 75 73 65 64 |X | be used|
|00000a00| 20 66 6f 72 20 69 6c 6c | 65 67 61 6c 20 61 63 74 | for ill|egal act|
|00000a10| 69 76 69 74 69 65 73 2e | 0a 58 0a 58 2a 2a 2a 2a |ivities.|.X.X****|
|00000a20| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000a30| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000a40| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000a50| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2f 0a 58 0a |********|****/.X.|
|00000a60| 58 23 69 6e 63 6c 75 64 | 65 20 3c 73 74 64 69 6f |X#includ|e <stdio|
|00000a70| 2e 68 3e 0a 58 23 69 6e | 63 6c 75 64 65 20 3c 73 |.h>.X#in|clude <s|
|00000a80| 74 64 6c 69 62 2e 68 3e | 0a 58 23 69 6e 63 6c 75 |tdlib.h>|.X#inclu|
|00000a90| 64 65 20 3c 63 74 79 70 | 65 2e 68 3e 0a 58 23 69 |de <ctyp|e.h>.X#i|
|00000aa0| 6e 63 6c 75 64 65 20 3c | 73 74 72 69 6e 67 2e 68 |nclude <|string.h|
|00000ab0| 3e 0a 58 23 69 6e 63 6c | 75 64 65 20 3c 6d 61 74 |>.X#incl|ude <mat|
|00000ac0| 68 2e 68 3e 0a 58 23 69 | 6e 63 6c 75 64 65 20 3c |h.h>.X#i|nclude <|
|00000ad0| 74 69 6d 65 2e 68 3e 0a | 58 0a 58 23 69 6e 63 6c |time.h>.|X.X#incl|
|00000ae0| 75 64 65 20 22 62 77 62 | 61 73 69 63 2e 68 22 0a |ude "bwb|asic.h".|
|00000af0| 58 23 69 6e 63 6c 75 64 | 65 20 22 62 77 62 5f 6d |X#includ|e "bwb_m|
|00000b00| 65 73 2e 68 22 0a 58 0a | 58 75 6e 69 6f 6e 20 75 |es.h".X.|Xunion u|
|00000b10| 6e 5f 69 6e 74 65 67 65 | 72 0a 58 20 20 20 7b 0a |n_intege|r.X {.|
|00000b20| 58 20 20 20 69 6e 74 20 | 74 68 65 5f 69 6e 74 65 |X int |the_inte|
|00000b30| 67 65 72 3b 0a 58 20 20 | 20 75 6e 73 69 67 6e 65 |ger;.X | unsigne|
|00000b40| 64 20 63 68 61 72 20 74 | 68 65 5f 63 68 61 72 73 |d char t|he_chars|
|00000b50| 5b 20 73 69 7a 65 6f 66 | 28 20 69 6e 74 20 29 20 |[ sizeof|( int ) |
|00000b60| 5d 3b 0a 58 20 20 20 7d | 20 61 6e 5f 69 6e 74 65 |];.X }| an_inte|
|00000b70| 67 65 72 3b 0a 58 0a 58 | 75 6e 69 6f 6e 20 75 6e |ger;.X.X|union un|
|00000b80| 5f 73 69 6e 67 6c 65 0a | 58 20 20 20 7b 0a 58 20 |_single.|X {.X |
|00000b90| 20 20 66 6c 6f 61 74 20 | 74 68 65 5f 66 6c 6f 61 | float |the_floa|
|00000ba0| 74 3b 0a 58 20 20 20 75 | 6e 73 69 67 6e 65 64 20 |t;.X u|nsigned |
|00000bb0| 63 68 61 72 20 74 68 65 | 5f 63 68 61 72 73 5b 20 |char the|_chars[ |
|00000bc0| 73 69 7a 65 6f 66 28 20 | 66 6c 6f 61 74 29 20 5d |sizeof( |float) ]|
|00000bd0| 3b 0a 58 20 20 20 7d 20 | 61 5f 66 6c 6f 61 74 3b |;.X } |a_float;|
|00000be0| 0a 58 0a 58 75 6e 69 6f | 6e 20 75 6e 5f 64 6f 75 |.X.Xunio|n un_dou|
|00000bf0| 62 6c 65 0a 58 20 20 20 | 7b 0a 58 20 20 20 64 6f |ble.X |{.X do|
|00000c00| 75 62 6c 65 20 74 68 65 | 5f 64 6f 75 62 6c 65 3b |uble the|_double;|
|00000c10| 0a 58 20 20 20 75 6e 73 | 69 67 6e 65 64 20 63 68 |.X uns|igned ch|
|00000c20| 61 72 20 74 68 65 5f 63 | 68 61 72 73 5b 20 73 69 |ar the_c|hars[ si|
|00000c30| 7a 65 6f 66 28 20 64 6f | 75 62 6c 65 20 29 20 5d |zeof( do|uble ) ]|
|00000c40| 3b 0a 58 20 20 20 7d 20 | 61 5f 64 6f 75 62 6c 65 |;.X } |a_double|
|00000c50| 3b 0a 58 0a 58 2f 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |;.X.X/**|********|
|00000c60| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000c70| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000c80| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000c90| 2a 2a 2a 2a 2a 0a 58 0a | 58 20 20 20 20 20 20 20 |*****.X.|X |
|00000ca0| 20 46 55 4e 43 54 49 4f | 4e 3a 20 20 20 20 20 20 | FUNCTIO|N: |
|00000cb0| 20 66 6e 63 5f 61 62 73 | 28 29 0a 58 0a 58 20 20 | fnc_abs|().X.X |
|00000cc0| 20 20 20 20 20 20 44 45 | 53 43 52 49 50 54 49 4f | DE|SCRIPTIO|
|00000cd0| 4e 3a 20 20 20 20 54 68 | 69 73 20 43 20 66 75 6e |N: Th|is C fun|
|00000ce0| 63 74 69 6f 6e 20 69 6d | 70 6c 65 6d 65 6e 74 73 |ction im|plements|
|00000cf0| 20 74 68 65 20 42 41 53 | 49 43 0a 58 20 20 20 20 | the BAS|IC.X |
|00000d00| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000d10| 20 20 20 20 70 72 65 64 | 65 66 69 6e 65 64 20 41 | pred|efined A|
|00000d20| 42 53 20 66 75 6e 63 74 | 69 6f 6e 2c 20 72 65 74 |BS funct|ion, ret|
|00000d30| 75 72 6e 69 6e 67 20 74 | 68 65 0a 58 20 20 20 20 |urning t|he.X |
|00000d40| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000d50| 20 20 20 20 61 62 73 6f | 6c 75 74 65 20 76 61 6c | abso|lute val|
|00000d60| 75 65 20 6f 66 20 74 68 | 65 20 61 72 67 75 6d 65 |ue of th|e argume|
|00000d70| 6e 74 2e 0a 58 0a 58 2a | 2a 2a 2a 2a 2a 2a 2a 2a |nt..X.X*|********|
|00000d80| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000d90| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000da0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000db0| 2a 2a 2a 2a 2a 2a 2f 0a | 58 0a 58 73 74 72 75 63 |******/.|X.Xstruc|
|00000dc0| 74 20 62 77 62 5f 76 61 | 72 69 61 62 6c 65 20 2a |t bwb_va|riable *|
|00000dd0| 0a 58 66 6e 63 5f 61 62 | 73 28 20 69 6e 74 20 61 |.Xfnc_ab|s( int a|
|00000de0| 72 67 63 2c 20 73 74 72 | 75 63 74 20 62 77 62 5f |rgc, str|uct bwb_|
|00000df0| 76 61 72 69 61 62 6c 65 | 20 2a 61 72 67 76 20 20 |variable| *argv |
|00000e00| 29 0a 58 20 20 20 7b 0a | 58 20 20 20 73 74 61 74 |).X {.|X stat|
|00000e10| 69 63 20 73 74 72 75 63 | 74 20 62 77 62 5f 76 61 |ic struc|t bwb_va|
|00000e20| 72 69 61 62 6c 65 20 6e | 76 61 72 3b 0a 58 20 20 |riable n|var;.X |
|00000e30| 20 73 74 61 74 69 63 20 | 69 6e 74 20 69 6e 69 74 | static |int init|
|00000e40| 20 3d 20 46 41 4c 53 45 | 3b 0a 58 0a 58 20 20 20 | = FALSE|;.X.X |
|00000e50| 23 69 66 20 49 4e 54 45 | 4e 53 49 56 45 5f 44 45 |#if INTE|NSIVE_DE|
|00000e60| 42 55 47 0a 58 20 20 20 | 73 70 72 69 6e 74 66 28 |BUG.X |sprintf(|
|00000e70| 20 62 77 62 5f 65 62 75 | 66 2c 20 22 69 6e 20 66 | bwb_ebu|f, "in f|
|00000e80| 6e 63 5f 61 62 73 28 29 | 3a 20 65 6e 74 65 72 65 |nc_abs()|: entere|
|00000e90| 64 20 66 75 6e 63 74 69 | 6f 6e 22 20 29 3b 0a 58 |d functi|on" );.X|
|00000ea0| 20 20 20 62 77 62 5f 64 | 65 62 75 67 28 20 62 77 | bwb_d|ebug( bw|
|00000eb0| 62 5f 65 62 75 66 20 29 | 3b 0a 58 20 20 20 23 65 |b_ebuf )|;.X #e|
|00000ec0| 6e 64 69 66 0a 58 0a 58 | 20 20 20 2f 2a 20 69 6e |ndif.X.X| /* in|
|00000ed0| 69 74 69 61 6c 69 7a 65 | 20 74 68 65 20 76 61 72 |itialize| the var|
|00000ee0| 69 61 62 6c 65 20 69 66 | 20 6e 65 63 65 73 73 61 |iable if| necessa|
|00000ef0| 72 79 20 2a 2f 0a 58 0a | 58 20 20 20 69 66 20 28 |ry */.X.|X if (|
|00000f00| 20 69 6e 69 74 20 3d 3d | 20 46 41 4c 53 45 20 29 | init ==| FALSE )|
|00000f10| 0a 58 20 20 20 20 20 20 | 7b 0a 58 20 20 20 20 20 |.X |{.X |
|00000f20| 20 69 6e 69 74 20 3d 20 | 54 52 55 45 3b 0a 58 20 | init = |TRUE;.X |
|00000f30| 20 20 20 20 20 73 74 72 | 6e 63 70 79 28 20 6e 76 | str|ncpy( nv|
|00000f40| 61 72 2e 6e 61 6d 65 2c | 20 22 28 61 62 73 20 76 |ar.name,| "(abs v|
|00000f50| 61 72 29 22 2c 20 4d 41 | 58 56 41 52 4e 41 4d 45 |ar)", MA|XVARNAME|
|00000f60| 53 49 5a 45 20 29 3b 0a | 58 20 20 20 20 20 20 23 |SIZE );.|X #|
|00000f70| 69 66 20 49 4e 54 45 4e | 53 49 56 45 5f 44 45 42 |if INTEN|SIVE_DEB|
|00000f80| 55 47 0a 58 20 20 20 20 | 20 20 73 70 72 69 6e 74 |UG.X | sprint|
|00000f90| 66 28 20 62 77 62 5f 65 | 62 75 66 2c 20 22 69 6e |f( bwb_e|buf, "in|
|00000fa0| 20 66 6e 63 5f 61 62 73 | 28 29 3a 20 72 65 61 64 | fnc_abs|(): read|
|00000fb0| 79 20 74 6f 20 6d 61 6b | 65 20 6c 6f 63 61 6c 20 |y to mak|e local |
|00000fc0| 76 61 72 69 61 62 6c 65 | 20 3c 25 73 3e 22 2c 0a |variable| <%s>",.|
|00000fd0| 58 20 20 20 20 20 20 20 | 20 20 6e 76 61 72 2e 6e |X | nvar.n|
|00000fe0| 61 6d 65 20 29 3b 0a 58 | 20 20 20 20 20 20 62 77 |ame );.X| bw|
|00000ff0| 62 5f 64 65 62 75 67 28 | 20 62 77 62 5f 65 62 75 |b_debug(| bwb_ebu|
|00001000| 66 20 29 3b 0a 58 20 20 | 20 20 20 20 23 65 6e 64 |f );.X | #end|
|00001010| 69 66 0a 58 20 20 20 20 | 20 20 76 61 72 5f 6d 61 |if.X | var_ma|
|00001020| 6b 65 28 20 26 6e 76 61 | 72 2c 20 53 49 4e 47 4c |ke( &nva|r, SINGL|
|00001030| 45 20 29 3b 0a 58 20 20 | 20 20 20 20 7d 0a 58 0a |E );.X | }.X.|
|00001040| 58 20 20 20 23 69 66 20 | 49 4e 54 45 4e 53 49 56 |X #if |INTENSIV|
|00001050| 45 5f 44 45 42 55 47 0a | 58 20 20 20 73 70 72 69 |E_DEBUG.|X spri|
|00001060| 6e 74 66 28 20 62 77 62 | 5f 65 62 75 66 2c 20 22 |ntf( bwb|_ebuf, "|
|00001070| 69 6e 20 66 6e 63 5f 61 | 62 73 28 29 3a 20 72 65 |in fnc_a|bs(): re|
|00001080| 63 65 69 76 65 64 20 66 | 5f 61 72 67 20 3c 25 66 |ceived f|_arg <%f|
|00001090| 3e 20 6e 76 61 72 20 74 | 79 70 65 20 3c 25 63 3e |> nvar t|ype <%c>|
|000010a0| 22 2c 0a 58 20 20 20 20 | 20 20 76 61 72 5f 67 65 |",.X | var_ge|
|000010b0| 74 64 76 61 6c 28 20 26 | 28 20 61 72 67 76 5b 20 |tdval( &|( argv[ |
|000010c0| 30 20 5d 20 29 20 29 2c | 20 6e 76 61 72 2e 74 79 |0 ] ) ),| nvar.ty|
|000010d0| 70 65 20 29 3b 0a 58 20 | 20 20 62 77 62 5f 64 65 |pe );.X | bwb_de|
|000010e0| 62 75 67 28 20 62 77 62 | 5f 65 62 75 66 20 29 3b |bug( bwb|_ebuf );|
|000010f0| 0a 58 20 20 20 23 65 6e | 64 69 66 0a 58 0a 58 20 |.X #en|dif.X.X |
|00001100| 20 20 23 69 66 20 50 52 | 4f 47 5f 45 52 52 4f 52 | #if PR|OG_ERROR|
|00001110| 53 0a 58 20 20 20 69 66 | 20 28 20 61 72 67 63 20 |S.X if| ( argc |
|00001120| 3c 20 31 20 29 0a 58 20 | 20 20 20 20 20 7b 0a 58 |< 1 ).X | {.X|
|00001130| 20 20 20 20 20 20 73 70 | 72 69 6e 74 66 28 20 62 | sp|rintf( b|
|00001140| 77 62 5f 65 62 75 66 2c | 20 22 4e 6f 74 20 65 6e |wb_ebuf,| "Not en|
|00001150| 6f 75 67 68 20 70 61 72 | 61 6d 65 74 65 72 73 20 |ough par|ameters |
|00001160| 28 25 64 29 20 74 6f 20 | 66 75 6e 63 74 69 6f 6e |(%d) to |function|
|00001170| 20 41 42 53 28 29 2e 22 | 2c 0a 58 20 20 20 20 20 | ABS()."|,.X |
|00001180| 20 20 20 20 61 72 67 63 | 20 29 3b 0a 58 20 20 20 | argc| );.X |
|00001190| 20 20 20 62 77 62 5f 65 | 72 72 6f 72 28 20 62 77 | bwb_e|rror( bw|
|000011a0| 62 5f 65 62 75 66 20 29 | 3b 0a 58 20 20 20 20 20 |b_ebuf )|;.X |
|000011b0| 20 72 65 74 75 72 6e 20 | 4e 55 4c 4c 3b 0a 58 20 | return |NULL;.X |
|000011c0| 20 20 20 20 20 7d 0a 58 | 20 20 20 65 6c 73 65 20 | }.X| else |
|000011d0| 69 66 20 28 20 61 72 67 | 63 20 3e 20 31 20 29 0a |if ( arg|c > 1 ).|
|000011e0| 58 20 20 20 20 20 20 7b | 0a 58 20 20 20 20 20 20 |X {|.X |
|000011f0| 73 70 72 69 6e 74 66 28 | 20 62 77 62 5f 65 62 75 |sprintf(| bwb_ebu|
|00001200| 66 2c 20 22 54 6f 6f 20 | 6d 61 6e 79 20 70 61 72 |f, "Too |many par|
|00001210| 61 6d 65 74 65 72 73 20 | 28 25 64 29 20 74 6f 20 |ameters |(%d) to |
|00001220| 66 75 6e 63 74 69 6f 6e | 20 41 42 53 28 29 2e 22 |function| ABS()."|
|00001230| 2c 0a 58 20 20 20 20 20 | 20 20 20 20 61 72 67 63 |,.X | argc|
|00001240| 20 29 3b 0a 58 20 20 20 | 20 20 20 62 77 62 5f 65 | );.X | bwb_e|
|00001250| 72 72 6f 72 28 20 62 77 | 62 5f 65 62 75 66 20 29 |rror( bw|b_ebuf )|
|00001260| 3b 0a 58 20 20 20 20 20 | 20 72 65 74 75 72 6e 20 |;.X | return |
|00001270| 4e 55 4c 4c 3b 0a 58 20 | 20 20 20 20 20 7d 0a 58 |NULL;.X | }.X|
|00001280| 20 20 20 23 65 6c 73 65 | 0a 58 20 20 20 69 66 20 | #else|.X if |
|00001290| 28 20 66 6e 63 5f 63 68 | 65 63 6b 61 72 67 73 28 |( fnc_ch|eckargs(|
|000012a0| 20 61 72 67 63 2c 20 61 | 72 67 76 2c 20 31 2c 20 | argc, a|rgv, 1, |
|000012b0| 31 20 29 20 3d 3d 20 46 | 41 4c 53 45 20 29 0a 58 |1 ) == F|ALSE ).X|
|000012c0| 20 20 20 20 20 20 7b 0a | 58 20 20 20 20 20 20 72 | {.|X r|
|000012d0| 65 74 75 72 6e 20 4e 55 | 4c 4c 3b 0a 58 20 20 20 |eturn NU|LL;.X |
|000012e0| 20 20 20 7d 0a 58 20 20 | 20 23 65 6e 64 69 66 0a | }.X | #endif.|
|000012f0| 58 0a 58 20 20 20 2f 2a | 20 61 73 73 69 67 6e 20 |X.X /*| assign |
|00001300| 76 61 6c 75 65 73 20 2a | 2f 0a 58 0a 58 20 20 20 |values *|/.X.X |
|00001310| 23 69 66 20 49 4e 54 45 | 4e 53 49 56 45 5f 44 45 |#if INTE|NSIVE_DE|
|00001320| 42 55 47 0a 58 20 20 20 | 73 70 72 69 6e 74 66 28 |BUG.X |sprintf(|
|00001330| 20 62 77 62 5f 65 62 75 | 66 2c 20 22 69 6e 20 66 | bwb_ebu|f, "in f|
|00001340| 6e 63 5f 61 62 73 28 29 | 3a 20 6e 76 61 72 20 74 |nc_abs()|: nvar t|
|00001350| 79 70 65 20 3c 25 63 3e | 3b 20 63 61 6c 6c 69 6e |ype <%c>|; callin|
|00001360| 67 20 66 69 6e 64 76 61 | 6c 28 29 22 2c 0a 58 20 |g findva|l()",.X |
|00001370| 20 20 20 20 20 6e 76 61 | 72 2e 74 79 70 65 20 29 | nva|r.type )|
|00001380| 3b 0a 58 20 20 20 62 77 | 62 5f 64 65 62 75 67 28 |;.X bw|b_debug(|
|00001390| 20 62 77 62 5f 65 62 75 | 66 20 29 3b 0a 58 20 20 | bwb_ebu|f );.X |
|000013a0| 20 23 65 6e 64 69 66 0a | 58 0a 58 20 20 20 2a 20 | #endif.|X.X * |
|000013b0| 76 61 72 5f 66 69 6e 64 | 66 76 61 6c 28 20 26 6e |var_find|fval( &n|
|000013c0| 76 61 72 2c 20 6e 76 61 | 72 2e 61 72 72 61 79 5f |var, nva|r.array_|
|000013d0| 70 6f 73 20 29 20 3d 20 | 0a 58 20 20 20 20 20 20 |pos ) = |.X |
|000013e0| 28 66 6c 6f 61 74 29 20 | 66 61 62 73 28 20 76 61 |(float) |fabs( va|
|000013f0| 72 5f 67 65 74 64 76 61 | 6c 28 20 26 28 20 61 72 |r_getdva|l( &( ar|
|00001400| 67 76 5b 20 30 20 5d 20 | 29 20 29 20 29 3b 0a 58 |gv[ 0 ] |) ) );.X|
|00001410| 0a 58 20 20 20 72 65 74 | 75 72 6e 20 26 6e 76 61 |.X ret|urn &nva|
|00001420| 72 3b 0a 58 0a 58 20 20 | 20 7d 0a 58 0a 58 2f 2a |r;.X.X | }.X.X/*|
|00001430| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001440| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001450| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001460| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 0a 58 |********|******.X|
|00001470| 0a 58 20 20 20 20 20 20 | 20 20 46 55 4e 43 54 49 |.X | FUNCTI|
|00001480| 4f 4e 3a 20 20 20 20 20 | 20 20 66 6e 63 5f 61 74 |ON: | fnc_at|
|00001490| 6e 28 29 0a 58 0a 58 20 | 20 20 20 20 20 20 20 44 |n().X.X | D|
|000014a0| 45 53 43 52 49 50 54 49 | 4f 4e 3a 20 20 20 20 54 |ESCRIPTI|ON: T|
|000014b0| 68 69 73 20 43 20 66 75 | 6e 63 74 69 6f 6e 20 69 |his C fu|nction i|
|000014c0| 6d 70 6c 65 6d 65 6e 74 | 73 20 74 68 65 20 42 41 |mplement|s the BA|
|000014d0| 53 49 43 0a 58 0a 58 20 | 20 20 20 20 20 20 20 20 |SIC.X.X | |
|000014e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 70 | | p|
|000014f0| 72 65 64 65 66 69 6e 65 | 64 20 41 54 4e 20 66 75 |redefine|d ATN fu|
|00001500| 6e 63 74 69 6f 6e 2c 20 | 72 65 74 75 72 6e 69 6e |nction, |returnin|
|00001510| 67 20 74 68 65 0a 58 20 | 20 20 20 20 20 20 20 20 |g the.X | |
|00001520| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 61 | | a|
|00001530| 72 63 74 61 6e 67 65 6e | 74 20 6f 66 20 74 68 65 |rctangen|t of the|
|00001540| 20 61 72 67 75 6d 65 6e | 74 2e 0a 58 0a 58 2a 2a | argumen|t..X.X**|
|00001550| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001560| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001570| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001580| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2f 0a 58 |********|*****/.X|
|00001590| 0a 58 73 74 72 75 63 74 | 20 62 77 62 5f 76 61 72 |.Xstruct| bwb_var|
|000015a0| 69 61 62 6c 65 20 2a 0a | 58 66 6e 63 5f 61 74 6e |iable *.|Xfnc_atn|
|000015b0| 28 20 69 6e 74 20 61 72 | 67 63 2c 20 73 74 72 75 |( int ar|gc, stru|
|000015c0| 63 74 20 62 77 62 5f 76 | 61 72 69 61 62 6c 65 20 |ct bwb_v|ariable |
|000015d0| 2a 61 72 67 76 20 20 29 | 0a 58 20 20 20 7b 0a 58 |*argv )|.X {.X|
|000015e0| 20 20 20 73 74 61 74 69 | 63 20 73 74 72 75 63 74 | stati|c struct|
|000015f0| 20 62 77 62 5f 76 61 72 | 69 61 62 6c 65 20 6e 76 | bwb_var|iable nv|
|00001600| 61 72 3b 0a 58 20 20 20 | 73 74 61 74 69 63 20 69 |ar;.X |static i|
|00001610| 6e 74 20 69 6e 69 74 20 | 3d 20 46 41 4c 53 45 3b |nt init |= FALSE;|
|00001620| 0a 58 0a 58 20 20 20 2f | 2a 20 69 6e 69 74 69 61 |.X.X /|* initia|
|00001630| 6c 69 7a 65 20 74 68 65 | 20 76 61 72 69 61 62 6c |lize the| variabl|
|00001640| 65 20 69 66 20 6e 65 63 | 65 73 73 61 72 79 20 2a |e if nec|essary *|
|00001650| 2f 0a 58 0a 58 20 20 20 | 69 66 20 28 20 69 6e 69 |/.X.X |if ( ini|
|00001660| 74 20 3d 3d 20 46 41 4c | 53 45 20 29 0a 58 20 20 |t == FAL|SE ).X |
|00001670| 20 20 20 20 7b 0a 58 20 | 20 20 20 20 20 69 6e 69 | {.X | ini|
|00001680| 74 20 3d 20 54 52 55 45 | 3b 0a 58 20 20 20 20 20 |t = TRUE|;.X |
|00001690| 20 76 61 72 5f 6d 61 6b | 65 28 20 26 6e 76 61 72 | var_mak|e( &nvar|
|000016a0| 2c 20 44 4f 55 42 4c 45 | 20 29 3b 0a 58 20 20 20 |, DOUBLE| );.X |
|000016b0| 20 20 20 7d 0a 58 0a 58 | 20 20 20 23 69 66 20 49 | }.X.X| #if I|
|000016c0| 4e 54 45 4e 53 49 56 45 | 5f 44 45 42 55 47 0a 58 |NTENSIVE|_DEBUG.X|
|000016d0| 20 20 20 73 70 72 69 6e | 74 66 28 20 62 77 62 5f | sprin|tf( bwb_|
|000016e0| 65 62 75 66 2c 20 22 69 | 6e 20 66 6e 63 5f 61 74 |ebuf, "i|n fnc_at|
|000016f0| 6e 28 29 3a 20 72 65 63 | 65 69 76 65 64 20 66 5f |n(): rec|eived f_|
|00001700| 61 72 67 20 3c 25 66 3e | 20 22 2c 0a 58 20 20 20 |arg <%f>| ",.X |
|00001710| 20 20 20 76 61 72 5f 67 | 65 74 64 76 61 6c 28 20 | var_g|etdval( |
|00001720| 26 28 20 61 72 67 76 5b | 20 30 20 5d 20 29 20 29 |&( argv[| 0 ] ) )|
|00001730| 20 29 3b 0a 58 20 20 20 | 62 77 62 5f 64 65 62 75 | );.X |bwb_debu|
|00001740| 67 28 20 62 77 62 5f 65 | 62 75 66 20 29 3b 0a 58 |g( bwb_e|buf );.X|
|00001750| 20 20 20 23 65 6e 64 69 | 66 0a 58 0a 58 20 20 20 | #endi|f.X.X |
|00001760| 23 69 66 20 50 52 4f 47 | 5f 45 52 52 4f 52 53 0a |#if PROG|_ERRORS.|
|00001770| 58 20 20 20 69 66 20 28 | 20 61 72 67 63 20 3c 20 |X if (| argc < |
|00001780| 31 20 29 0a 58 20 20 20 | 20 20 20 7b 0a 58 20 20 |1 ).X | {.X |
|00001790| 20 20 20 20 73 70 72 69 | 6e 74 66 28 20 62 77 62 | spri|ntf( bwb|
|000017a0| 5f 65 62 75 66 2c 20 22 | 4e 6f 74 20 65 6e 6f 75 |_ebuf, "|Not enou|
|000017b0| 67 68 20 70 61 72 61 6d | 65 74 65 72 73 20 28 25 |gh param|eters (%|
|000017c0| 64 29 20 74 6f 20 66 75 | 6e 63 74 69 6f 6e 20 41 |d) to fu|nction A|
|000017d0| 54 4e 28 29 2e 22 2c 0a | 58 20 20 20 20 20 20 20 |TN().",.|X |
|000017e0| 20 20 61 72 67 63 20 29 | 3b 0a 58 20 20 20 20 20 | argc )|;.X |
|000017f0| 20 62 77 62 5f 65 72 72 | 6f 72 28 20 62 77 62 5f | bwb_err|or( bwb_|
|00001800| 65 62 75 66 20 29 3b 0a | 58 20 20 20 20 20 20 72 |ebuf );.|X r|
|00001810| 65 74 75 72 6e 20 4e 55 | 4c 4c 3b 0a 58 20 20 20 |eturn NU|LL;.X |
|00001820| 20 20 20 7d 0a 58 20 20 | 20 65 6c 73 65 20 69 66 | }.X | else if|
|00001830| 20 28 20 61 72 67 63 20 | 3e 20 31 20 29 0a 58 20 | ( argc |> 1 ).X |
|00001840| 20 20 20 20 20 7b 0a 58 | 20 20 20 20 20 20 73 70 | {.X| sp|
|00001850| 72 69 6e 74 66 28 20 62 | 77 62 5f 65 62 75 66 2c |rintf( b|wb_ebuf,|
|00001860| 20 22 54 6f 6f 20 6d 61 | 6e 79 20 70 61 72 61 6d | "Too ma|ny param|
|00001870| 65 74 65 72 73 20 28 25 | 64 29 20 74 6f 20 66 75 |eters (%|d) to fu|
|00001880| 6e 63 74 69 6f 6e 20 41 | 54 4e 28 29 2e 22 2c 0a |nction A|TN().",.|
|00001890| 58 20 20 20 20 20 20 20 | 20 20 61 72 67 63 20 29 |X | argc )|
|000018a0| 3b 0a 58 20 20 20 20 20 | 20 62 77 62 5f 65 72 72 |;.X | bwb_err|
|000018b0| 6f 72 28 20 62 77 62 5f | 65 62 75 66 20 29 3b 0a |or( bwb_|ebuf );.|
|000018c0| 58 20 20 20 20 20 20 72 | 65 74 75 72 6e 20 4e 55 |X r|eturn NU|
|000018d0| 4c 4c 3b 0a 58 20 20 20 | 20 20 20 7d 0a 58 20 20 |LL;.X | }.X |
|000018e0| 20 23 65 6c 73 65 0a 58 | 20 20 20 69 66 20 28 20 | #else.X| if ( |
|000018f0| 66 6e 63 5f 63 68 65 63 | 6b 61 72 67 73 28 20 61 |fnc_chec|kargs( a|
|00001900| 72 67 63 2c 20 61 72 67 | 76 2c 20 31 2c 20 31 20 |rgc, arg|v, 1, 1 |
|00001910| 29 20 3d 3d 20 46 41 4c | 53 45 20 29 0a 58 20 20 |) == FAL|SE ).X |
|00001920| 20 20 20 20 7b 0a 58 20 | 20 20 20 20 20 72 65 74 | {.X | ret|
|00001930| 75 72 6e 20 4e 55 4c 4c | 3b 0a 58 20 20 20 20 20 |urn NULL|;.X |
|00001940| 20 7d 0a 58 20 20 20 23 | 65 6e 64 69 66 0a 58 0a | }.X #|endif.X.|
|00001950| 58 20 20 20 2f 2a 20 61 | 73 73 69 67 6e 20 76 61 |X /* a|ssign va|
|00001960| 6c 75 65 73 20 2a 2f 0a | 58 0a 58 20 20 20 2a 20 |lues */.|X.X * |
|00001970| 76 61 72 5f 66 69 6e 64 | 64 76 61 6c 28 20 26 6e |var_find|dval( &n|
|00001980| 76 61 72 2c 20 6e 76 61 | 72 2e 61 72 72 61 79 5f |var, nva|r.array_|
|00001990| 70 6f 73 20 29 20 0a 58 | 20 20 20 20 20 20 3d 20 |pos ) .X| = |
|000019a0| 61 74 61 6e 28 20 76 61 | 72 5f 67 65 74 64 76 61 |atan( va|r_getdva|
|000019b0| 6c 28 20 26 28 20 61 72 | 67 76 5b 20 30 20 5d 20 |l( &( ar|gv[ 0 ] |
|000019c0| 29 20 29 20 29 3b 0a 58 | 0a 58 20 20 20 72 65 74 |) ) );.X|.X ret|
|000019d0| 75 72 6e 20 26 6e 76 61 | 72 3b 0a 58 0a 58 20 20 |urn &nva|r;.X.X |
|000019e0| 20 7d 0a 58 0a 58 2f 2a | 2a 2a 2a 2a 2a 2a 2a 2a | }.X.X/*|********|
|000019f0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001a00| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001a10| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001a20| 2a 2a 2a 2a 2a 2a 0a 58 | 0a 58 20 20 20 20 20 20 |******.X|.X |
|00001a30| 20 20 46 55 4e 43 54 49 | 4f 4e 3a 20 20 20 20 20 | FUNCTI|ON: |
|00001a40| 20 20 66 6e 63 5f 63 6f | 73 28 29 0a 58 0a 58 20 | fnc_co|s().X.X |
|00001a50| 20 20 20 20 20 20 20 44 | 45 53 43 52 49 50 54 49 | D|ESCRIPTI|
|00001a60| 4f 4e 3a 20 20 20 20 54 | 68 69 73 20 43 20 66 75 |ON: T|his C fu|
|00001a70| 6e 63 74 69 6f 6e 20 69 | 6d 70 6c 65 6d 65 6e 74 |nction i|mplement|
|00001a80| 73 20 74 68 65 20 42 41 | 53 49 43 0a 58 20 20 20 |s the BA|SIC.X |
|00001a90| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001aa0| 20 20 20 20 20 70 72 65 | 64 65 66 69 6e 65 64 20 | pre|defined |
|00001ab0| 43 4f 53 20 66 75 6e 63 | 74 69 6f 6e 2c 20 72 65 |COS func|tion, re|
|00001ac0| 74 75 72 6e 69 6e 67 20 | 74 68 65 0a 58 20 20 20 |turning |the.X |
|00001ad0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001ae0| 20 20 20 20 20 63 6f 73 | 69 6e 65 20 6f 66 20 74 | cos|ine of t|
|00001af0| 68 65 20 61 72 67 75 6d | 65 6e 74 2e 0a 58 0a 58 |he argum|ent..X.X|
|00001b00| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001b10| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001b20| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001b30| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2f |********|*******/|
|00001b40| 0a 58 0a 58 73 74 72 75 | 63 74 20 62 77 62 5f 76 |.X.Xstru|ct bwb_v|
|00001b50| 61 72 69 61 62 6c 65 20 | 2a 0a 58 66 6e 63 5f 63 |ariable |*.Xfnc_c|
|00001b60| 6f 73 28 20 69 6e 74 20 | 61 72 67 63 2c 20 73 74 |os( int |argc, st|
|00001b70| 72 75 63 74 20 62 77 62 | 5f 76 61 72 69 61 62 6c |ruct bwb|_variabl|
|00001b80| 65 20 2a 61 72 67 76 20 | 20 29 0a 58 20 20 20 7b |e *argv | ).X {|
|00001b90| 0a 58 20 20 20 73 74 61 | 74 69 63 20 73 74 72 75 |.X sta|tic stru|
|00001ba0| 63 74 20 62 77 62 5f 76 | 61 72 69 61 62 6c 65 20 |ct bwb_v|ariable |
|00001bb0| 6e 76 61 72 3b 0a 58 20 | 20 20 73 74 61 74 69 63 |nvar;.X | static|
|00001bc0| 20 69 6e 74 20 69 6e 69 | 74 20 3d 20 46 41 4c 53 | int ini|t = FALS|
|00001bd0| 45 3b 0a 58 0a 58 20 20 | 20 2f 2a 20 69 6e 69 74 |E;.X.X | /* init|
|00001be0| 69 61 6c 69 7a 65 20 74 | 68 65 20 76 61 72 69 61 |ialize t|he varia|
|00001bf0| 62 6c 65 20 69 66 20 6e | 65 63 65 73 73 61 72 79 |ble if n|ecessary|
|00001c00| 20 2a 2f 0a 58 0a 58 20 | 20 20 69 66 20 28 20 69 | */.X.X | if ( i|
|00001c10| 6e 69 74 20 3d 3d 20 46 | 41 4c 53 45 20 29 0a 58 |nit == F|ALSE ).X|
|00001c20| 20 20 20 20 20 20 7b 0a | 58 20 20 20 20 20 20 69 | {.|X i|
|00001c30| 6e 69 74 20 3d 20 54 52 | 55 45 3b 0a 58 20 20 20 |nit = TR|UE;.X |
|00001c40| 20 20 20 76 61 72 5f 6d | 61 6b 65 28 20 26 6e 76 | var_m|ake( &nv|
|00001c50| 61 72 2c 20 44 4f 55 42 | 4c 45 20 29 3b 0a 58 20 |ar, DOUB|LE );.X |
|00001c60| 20 20 20 20 20 7d 0a 58 | 0a 58 20 20 20 23 69 66 | }.X|.X #if|
|00001c70| 20 49 4e 54 45 4e 53 49 | 56 45 5f 44 45 42 55 47 | INTENSI|VE_DEBUG|
|00001c80| 0a 58 20 20 20 73 70 72 | 69 6e 74 66 28 20 62 77 |.X spr|intf( bw|
|00001c90| 62 5f 65 62 75 66 2c 20 | 22 69 6e 20 66 6e 63 5f |b_ebuf, |"in fnc_|
|00001ca0| 63 6f 73 28 29 3a 20 72 | 65 63 65 69 76 65 64 20 |cos(): r|eceived |
|00001cb0| 66 5f 61 72 67 20 3c 25 | 66 3e 20 22 2c 0a 58 20 |f_arg <%|f> ",.X |
|00001cc0| 20 20 20 20 20 76 61 72 | 5f 67 65 74 64 76 61 6c | var|_getdval|
|00001cd0| 28 20 26 28 20 61 72 67 | 76 5b 20 30 20 5d 20 29 |( &( arg|v[ 0 ] )|
|00001ce0| 20 29 20 29 3b 0a 58 20 | 20 20 62 77 62 5f 64 65 | ) );.X | bwb_de|
|00001cf0| 62 75 67 28 20 62 77 62 | 5f 65 62 75 66 20 29 3b |bug( bwb|_ebuf );|
|00001d00| 0a 58 20 20 20 23 65 6e | 64 69 66 0a 58 0a 58 20 |.X #en|dif.X.X |
|00001d10| 20 20 23 69 66 20 50 52 | 4f 47 5f 45 52 52 4f 52 | #if PR|OG_ERROR|
|00001d20| 53 0a 58 20 20 20 69 66 | 20 28 20 61 72 67 63 20 |S.X if| ( argc |
|00001d30| 3c 20 31 20 29 0a 58 20 | 20 20 20 20 20 7b 0a 58 |< 1 ).X | {.X|
|00001d40| 20 20 20 20 20 20 73 70 | 72 69 6e 74 66 28 20 62 | sp|rintf( b|
|00001d50| 77 62 5f 65 62 75 66 2c | 20 22 4e 6f 74 20 65 6e |wb_ebuf,| "Not en|
|00001d60| 6f 75 67 68 20 70 61 72 | 61 6d 65 74 65 72 73 20 |ough par|ameters |
|00001d70| 28 25 64 29 20 74 6f 20 | 66 75 6e 63 74 69 6f 6e |(%d) to |function|
|00001d80| 20 43 4f 53 28 29 2e 22 | 2c 0a 58 20 20 20 20 20 | COS()."|,.X |
|00001d90| 20 20 20 20 61 72 67 63 | 20 29 3b 0a 58 20 20 20 | argc| );.X |
|00001da0| 20 20 20 62 77 62 5f 65 | 72 72 6f 72 28 20 62 77 | bwb_e|rror( bw|
|00001db0| 62 5f 65 62 75 66 20 29 | 3b 0a 58 20 20 20 20 20 |b_ebuf )|;.X |
|00001dc0| 20 72 65 74 75 72 6e 20 | 4e 55 4c 4c 3b 0a 58 20 | return |NULL;.X |
|00001dd0| 20 20 20 20 20 7d 0a 58 | 20 20 20 65 6c 73 65 20 | }.X| else |
|00001de0| 69 66 20 28 20 61 72 67 | 63 20 3e 20 31 20 29 0a |if ( arg|c > 1 ).|
|00001df0| 58 20 20 20 20 20 20 7b | 0a 58 20 20 20 20 20 20 |X {|.X |
|00001e00| 73 70 72 69 6e 74 66 28 | 20 62 77 62 5f 65 62 75 |sprintf(| bwb_ebu|
|00001e10| 66 2c 20 22 54 6f 6f 20 | 6d 61 6e 79 20 70 61 72 |f, "Too |many par|
|00001e20| 61 6d 65 74 65 72 73 20 | 28 25 64 29 20 74 6f 20 |ameters |(%d) to |
|00001e30| 66 75 6e 63 74 69 6f 6e | 20 43 4f 53 28 29 2e 22 |function| COS()."|
|00001e40| 2c 0a 58 20 20 20 20 20 | 20 20 20 20 61 72 67 63 |,.X | argc|
|00001e50| 20 29 3b 0a 58 20 20 20 | 20 20 20 62 77 62 5f 65 | );.X | bwb_e|
|00001e60| 72 72 6f 72 28 20 62 77 | 62 5f 65 62 75 66 20 29 |rror( bw|b_ebuf )|
|00001e70| 3b 0a 58 20 20 20 20 20 | 20 72 65 74 75 72 6e 20 |;.X | return |
|00001e80| 4e 55 4c 4c 3b 0a 58 20 | 20 20 20 20 20 7d 0a 58 |NULL;.X | }.X|
|00001e90| 20 20 20 23 65 6c 73 65 | 0a 58 20 20 20 69 66 20 | #else|.X if |
|00001ea0| 28 20 66 6e 63 5f 63 68 | 65 63 6b 61 72 67 73 28 |( fnc_ch|eckargs(|
|00001eb0| 20 61 72 67 63 2c 20 61 | 72 67 76 2c 20 31 2c 20 | argc, a|rgv, 1, |
|00001ec0| 31 20 29 20 3d 3d 20 46 | 41 4c 53 45 20 29 0a 58 |1 ) == F|ALSE ).X|
|00001ed0| 20 20 20 20 20 20 7b 0a | 58 20 20 20 20 20 20 72 | {.|X r|
|00001ee0| 65 74 75 72 6e 20 4e 55 | 4c 4c 3b 0a 58 20 20 20 |eturn NU|LL;.X |
|00001ef0| 20 20 20 7d 0a 58 20 20 | 20 23 65 6e 64 69 66 0a | }.X | #endif.|
|00001f00| 58 0a 58 20 20 20 2f 2a | 20 61 73 73 69 67 6e 20 |X.X /*| assign |
|00001f10| 76 61 6c 75 65 73 20 2a | 2f 0a 58 0a 58 20 20 20 |values *|/.X.X |
|00001f20| 2a 20 76 61 72 5f 66 69 | 6e 64 64 76 61 6c 28 20 |* var_fi|nddval( |
|00001f30| 26 6e 76 61 72 2c 20 6e | 76 61 72 2e 61 72 72 61 |&nvar, n|var.arra|
|00001f40| 79 5f 70 6f 73 20 29 20 | 0a 58 20 20 20 20 20 20 |y_pos ) |.X |
|00001f50| 3d 20 63 6f 73 28 20 76 | 61 72 5f 67 65 74 64 76 |= cos( v|ar_getdv|
|00001f60| 61 6c 28 20 26 28 20 61 | 72 67 76 5b 20 30 20 5d |al( &( a|rgv[ 0 ]|
|00001f70| 20 29 20 29 20 29 3b 0a | 58 0a 58 20 20 20 72 65 | ) ) );.|X.X re|
|00001f80| 74 75 72 6e 20 26 6e 76 | 61 72 3b 0a 58 0a 58 20 |turn &nv|ar;.X.X |
|00001f90| 20 20 7d 0a 58 0a 58 2f | 2a 2a 2a 2a 2a 2a 2a 2a | }.X.X/|********|
|00001fa0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001fb0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001fc0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001fd0| 2a 2a 2a 2a 2a 2a 2a 0a | 58 0a 58 20 20 20 20 20 |*******.|X.X |
|00001fe0| 20 20 20 46 55 4e 43 54 | 49 4f 4e 3a 20 20 20 20 | FUNCT|ION: |
|00001ff0| 20 20 20 66 6e 63 5f 6c | 6f 67 28 29 0a 58 0a 58 | fnc_l|og().X.X|
|00002000| 20 20 20 20 20 20 20 20 | 44 45 53 43 52 49 50 54 | |DESCRIPT|
|00002010| 49 4f 4e 3a 20 20 20 20 | 54 68 69 73 20 43 20 66 |ION: |This C f|
|00002020| 75 6e 63 74 69 6f 6e 20 | 69 6d 70 6c 65 6d 65 6e |unction |implemen|
|00002030| 74 73 20 74 68 65 20 42 | 41 53 49 43 0a 58 20 20 |ts the B|ASIC.X |
|00002040| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002050| 20 20 20 20 20 20 70 72 | 65 64 65 66 69 6e 65 64 | pr|edefined|
|00002060| 20 4c 4f 47 20 66 75 6e | 63 74 69 6f 6e 2c 20 72 | LOG fun|ction, r|
|00002070| 65 74 75 72 6e 69 6e 67 | 20 74 68 65 0a 58 20 20 |eturning| the.X |
|00002080| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002090| 20 20 20 20 20 20 6e 61 | 74 75 72 61 6c 20 6c 6f | na|tural lo|
|000020a0| 67 61 72 69 74 68 6d 20 | 6f 66 20 74 68 65 20 61 |garithm |of the a|
|000020b0| 72 67 75 6d 65 6e 74 2e | 0a 58 0a 58 2a 2a 2a 2a |rgument.|.X.X****|
|000020c0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000020d0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000020e0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000020f0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2f 0a 58 0a 58 |********|***/.X.X|
|00002100| 73 74 72 75 63 74 20 62 | 77 62 5f 76 61 72 69 61 |struct b|wb_varia|
|00002110| 62 6c 65 20 2a 0a 58 66 | 6e 63 5f 6c 6f 67 28 20 |ble *.Xf|nc_log( |
|00002120| 69 6e 74 20 61 72 67 63 | 2c 20 73 74 72 75 63 74 |int argc|, struct|
|00002130| 20 62 77 62 5f 76 61 72 | 69 61 62 6c 65 20 2a 61 | bwb_var|iable *a|
|00002140| 72 67 76 20 20 29 0a 58 | 20 20 20 7b 0a 58 20 20 |rgv ).X| {.X |
|00002150| 20 73 74 61 74 69 63 20 | 73 74 72 75 63 74 20 62 | static |struct b|
|00002160| 77 62 5f 76 61 72 69 61 | 62 6c 65 20 6e 76 61 72 |wb_varia|ble nvar|
|00002170| 3b 0a 58 20 20 20 73 74 | 61 74 69 63 20 69 6e 74 |;.X st|atic int|
|00002180| 20 69 6e 69 74 20 3d 20 | 46 41 4c 53 45 3b 0a 58 | init = |FALSE;.X|
|00002190| 0a 58 20 20 20 2f 2a 20 | 69 6e 69 74 69 61 6c 69 |.X /* |initiali|
|000021a0| 7a 65 20 74 68 65 20 76 | 61 72 69 61 62 6c 65 20 |ze the v|ariable |
|000021b0| 69 66 20 6e 65 63 65 73 | 73 61 72 79 20 2a 2f 0a |if neces|sary */.|
|000021c0| 58 0a 58 20 20 20 69 66 | 20 28 20 69 6e 69 74 20 |X.X if| ( init |
|000021d0| 3d 3d 20 46 41 4c 53 45 | 20 29 0a 58 20 20 20 20 |== FALSE| ).X |
|000021e0| 20 20 7b 0a 58 20 20 20 | 20 20 20 69 6e 69 74 20 | {.X | init |
|000021f0| 3d 20 54 52 55 45 3b 0a | 58 20 20 20 20 20 20 76 |= TRUE;.|X v|
|00002200| 61 72 5f 6d 61 6b 65 28 | 20 26 6e 76 61 72 2c 20 |ar_make(| &nvar, |
|00002210| 44 4f 55 42 4c 45 20 29 | 3b 0a 58 20 20 20 20 20 |DOUBLE )|;.X |
|00002220| 20 7d 0a 58 0a 58 20 20 | 20 23 69 66 20 49 4e 54 | }.X.X | #if INT|
|00002230| 45 4e 53 49 56 45 5f 44 | 45 42 55 47 0a 58 20 20 |ENSIVE_D|EBUG.X |
|00002240| 20 73 70 72 69 6e 74 66 | 28 20 62 77 62 5f 65 62 | sprintf|( bwb_eb|
|00002250| 75 66 2c 20 22 69 6e 20 | 66 6e 63 5f 6c 6f 67 28 |uf, "in |fnc_log(|
|00002260| 29 3a 20 72 65 63 65 69 | 76 65 64 20 66 5f 61 72 |): recei|ved f_ar|
|00002270| 67 20 3c 25 66 3e 20 22 | 2c 0a 58 20 20 20 20 20 |g <%f> "|,.X |
|00002280| 20 76 61 72 5f 67 65 74 | 64 76 61 6c 28 20 26 28 | var_get|dval( &(|
|00002290| 20 61 72 67 76 5b 20 30 | 20 5d 20 29 20 29 20 29 | argv[ 0| ] ) ) )|
|000022a0| 3b 0a 58 20 20 20 62 77 | 62 5f 64 65 62 75 67 28 |;.X bw|b_debug(|
|000022b0| 20 62 77 62 5f 65 62 75 | 66 20 29 3b 0a 58 20 20 | bwb_ebu|f );.X |
|000022c0| 20 23 65 6e 64 69 66 0a | 58 0a 58 20 20 20 23 69 | #endif.|X.X #i|
|000022d0| 66 20 50 52 4f 47 5f 45 | 52 52 4f 52 53 0a 58 20 |f PROG_E|RRORS.X |
|000022e0| 20 20 69 66 20 28 20 61 | 72 67 63 20 3c 20 31 20 | if ( a|rgc < 1 |
|000022f0| 29 0a 58 20 20 20 20 20 | 20 7b 0a 58 20 20 20 20 |).X | {.X |
|00002300| 20 20 73 70 72 69 6e 74 | 66 28 20 62 77 62 5f 65 | sprint|f( bwb_e|
|00002310| 62 75 66 2c 20 22 4e 6f | 74 20 65 6e 6f 75 67 68 |buf, "No|t enough|
|00002320| 20 70 61 72 61 6d 65 74 | 65 72 73 20 28 25 64 29 | paramet|ers (%d)|
|00002330| 20 74 6f 20 66 75 6e 63 | 74 69 6f 6e 20 4c 4f 47 | to func|tion LOG|
|00002340| 28 29 2e 22 2c 0a 58 20 | 20 20 20 20 20 20 20 20 |().",.X | |
|00002350| 61 72 67 63 20 29 3b 0a | 58 20 20 20 20 20 20 62 |argc );.|X b|
|00002360| 77 62 5f 65 72 72 6f 72 | 28 20 62 77 62 5f 65 62 |wb_error|( bwb_eb|
|00002370| 75 66 20 29 3b 0a 58 20 | 20 20 20 20 20 72 65 74 |uf );.X | ret|
|00002380| 75 72 6e 20 4e 55 4c 4c | 3b 0a 58 20 20 20 20 20 |urn NULL|;.X |
|00002390| 20 7d 0a 58 20 20 20 65 | 6c 73 65 20 69 66 20 28 | }.X e|lse if (|
|000023a0| 20 61 72 67 63 20 3e 20 | 31 20 29 0a 58 20 20 20 | argc > |1 ).X |
|000023b0| 20 20 20 7b 0a 58 20 20 | 20 20 20 20 73 70 72 69 | {.X | spri|
|000023c0| 6e 74 66 28 20 62 77 62 | 5f 65 62 75 66 2c 20 22 |ntf( bwb|_ebuf, "|
|000023d0| 54 6f 6f 20 6d 61 6e 79 | 20 70 61 72 61 6d 65 74 |Too many| paramet|
|000023e0| 65 72 73 20 28 25 64 29 | 20 74 6f 20 66 75 6e 63 |ers (%d)| to func|
|000023f0| 74 69 6f 6e 20 4c 4f 47 | 28 29 2e 22 2c 0a 58 20 |tion LOG|().",.X |
|00002400| 20 20 20 20 20 20 20 20 | 61 72 67 63 20 29 3b 0a | |argc );.|
|00002410| 58 20 20 20 20 20 20 62 | 77 62 5f 65 72 72 6f 72 |X b|wb_error|
|00002420| 28 20 62 77 62 5f 65 62 | 75 66 20 29 3b 0a 58 20 |( bwb_eb|uf );.X |
|00002430| 20 20 20 20 20 72 65 74 | 75 72 6e 20 4e 55 4c 4c | ret|urn NULL|
|00002440| 3b 0a 58 20 20 20 20 20 | 20 7d 0a 58 20 20 20 23 |;.X | }.X #|
|00002450| 65 6c 73 65 0a 58 20 20 | 20 69 66 20 28 20 66 6e |else.X | if ( fn|
|00002460| 63 5f 63 68 65 63 6b 61 | 72 67 73 28 20 61 72 67 |c_checka|rgs( arg|
|00002470| 63 2c 20 61 72 67 76 2c | 20 31 2c 20 31 20 29 20 |c, argv,| 1, 1 ) |
|00002480| 3d 3d 20 46 41 4c 53 45 | 20 29 0a 58 20 20 20 20 |== FALSE| ).X |
|00002490| 20 20 7b 0a 58 20 20 20 | 20 20 20 72 65 74 75 72 | {.X | retur|
|000024a0| 6e 20 4e 55 4c 4c 3b 0a | 58 20 20 20 20 20 20 7d |n NULL;.|X }|
|000024b0| 0a 58 20 20 20 23 65 6e | 64 69 66 0a 58 0a 58 20 |.X #en|dif.X.X |
|000024c0| 20 20 2f 2a 20 61 73 73 | 69 67 6e 20 76 61 6c 75 | /* ass|ign valu|
|000024d0| 65 73 20 2a 2f 0a 58 0a | 58 20 20 20 2a 20 76 61 |es */.X.|X * va|
|000024e0| 72 5f 66 69 6e 64 64 76 | 61 6c 28 20 26 6e 76 61 |r_finddv|al( &nva|
|000024f0| 72 2c 20 6e 76 61 72 2e | 61 72 72 61 79 5f 70 6f |r, nvar.|array_po|
|00002500| 73 20 29 20 0a 58 20 20 | 20 20 20 20 3d 20 6c 6f |s ) .X | = lo|
|00002510| 67 28 20 76 61 72 5f 67 | 65 74 64 76 61 6c 28 20 |g( var_g|etdval( |
|00002520| 26 28 20 61 72 67 76 5b | 20 30 20 5d 20 29 20 29 |&( argv[| 0 ] ) )|
|00002530| 20 29 3b 0a 58 0a 58 20 | 20 20 72 65 74 75 72 6e | );.X.X | return|
|00002540| 20 26 6e 76 61 72 3b 0a | 58 20 20 20 7d 0a 58 0a | &nvar;.|X }.X.|
|00002550| 58 2f 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |X/******|********|
|00002560| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002570| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002580| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002590| 2a 0a 58 0a 58 20 20 20 | 20 20 20 20 20 46 55 4e |*.X.X | FUN|
|000025a0| 43 54 49 4f 4e 3a 20 20 | 20 20 20 20 20 66 6e 63 |CTION: | fnc|
|000025b0| 5f 73 69 6e 28 29 0a 58 | 0a 58 20 20 20 20 20 20 |_sin().X|.X |
|000025c0| 20 20 44 45 53 43 52 49 | 50 54 49 4f 4e 3a 20 20 | DESCRI|PTION: |
|000025d0| 20 20 54 68 69 73 20 43 | 20 66 75 6e 63 74 69 6f | This C| functio|
|000025e0| 6e 20 69 6d 70 6c 65 6d | 65 6e 74 73 20 74 68 65 |n implem|ents the|
|000025f0| 20 42 41 53 49 43 0a 58 | 20 20 20 20 20 20 20 20 | BASIC.X| |
|00002600| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002610| 70 72 65 64 65 66 69 6e | 65 64 20 53 49 4e 20 66 |predefin|ed SIN f|
|00002620| 75 6e 63 74 69 6f 6e 2c | 20 72 65 74 75 72 6e 69 |unction,| returni|
|00002630| 6e 67 0a 58 20 20 20 20 | 20 20 20 20 20 20 20 20 |ng.X | |
|00002640| 20 20 20 20 20 20 20 20 | 20 20 20 20 74 68 65 20 | | the |
|00002650| 73 69 6e 65 20 6f 66 20 | 74 68 65 20 61 72 67 75 |sine of |the argu|
|00002660| 6d 65 6e 74 2e 0a 58 0a | 58 2a 2a 2a 2a 2a 2a 2a |ment..X.|X*******|
|00002670| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002680| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002690| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000026a0| 2a 2a 2a 2a 2a 2a 2a 2a | 2f 0a 58 0a 58 73 74 72 |********|/.X.Xstr|
|000026b0| 75 63 74 20 62 77 62 5f | 76 61 72 69 61 62 6c 65 |uct bwb_|variable|
|000026c0| 20 2a 0a 58 66 6e 63 5f | 73 69 6e 28 20 69 6e 74 | *.Xfnc_|sin( int|
|000026d0| 20 61 72 67 63 2c 20 73 | 74 72 75 63 74 20 62 77 | argc, s|truct bw|
|000026e0| 62 5f 76 61 72 69 61 62 | 6c 65 20 2a 61 72 67 76 |b_variab|le *argv|
|000026f0| 20 20 29 0a 58 20 20 20 | 7b 0a 58 20 20 20 73 74 | ).X |{.X st|
|00002700| 61 74 69 63 20 73 74 72 | 75 63 74 20 62 77 62 5f |atic str|uct bwb_|
|00002710| 76 61 72 69 61 62 6c 65 | 20 6e 76 61 72 3b 0a 58 |variable| nvar;.X|
|00002720| 20 20 20 73 74 61 74 69 | 63 20 69 6e 74 20 69 6e | stati|c int in|
|00002730| 69 74 20 3d 20 46 41 4c | 53 45 3b 0a 58 0a 58 20 |it = FAL|SE;.X.X |
|00002740| 20 20 2f 2a 20 69 6e 69 | 74 69 61 6c 69 7a 65 20 | /* ini|tialize |
|00002750| 74 68 65 20 76 61 72 69 | 61 62 6c 65 20 69 66 20 |the vari|able if |
|00002760| 6e 65 63 65 73 73 61 72 | 79 20 2a 2f 0a 58 0a 58 |necessar|y */.X.X|
|00002770| 20 20 20 69 66 20 28 20 | 69 6e 69 74 20 3d 3d 20 | if ( |init == |
|00002780| 46 41 4c 53 45 20 29 0a | 58 20 20 20 20 20 20 7b |FALSE ).|X {|
|00002790| 0a 58 20 20 20 20 20 20 | 69 6e 69 74 20 3d 20 54 |.X |init = T|
|000027a0| 52 55 45 3b 0a 58 20 20 | 20 20 20 20 76 61 72 5f |RUE;.X | var_|
|000027b0| 6d 61 6b 65 28 20 26 6e | 76 61 72 2c 20 44 4f 55 |make( &n|var, DOU|
|000027c0| 42 4c 45 20 29 3b 0a 58 | 20 20 20 20 20 20 7d 0a |BLE );.X| }.|
|000027d0| 58 0a 58 20 20 20 23 69 | 66 20 49 4e 54 45 4e 53 |X.X #i|f INTENS|
|000027e0| 49 56 45 5f 44 45 42 55 | 47 0a 58 20 20 20 73 70 |IVE_DEBU|G.X sp|
|000027f0| 72 69 6e 74 66 28 20 62 | 77 62 5f 65 62 75 66 2c |rintf( b|wb_ebuf,|
|00002800| 20 22 69 6e 20 66 6e 63 | 5f 73 69 6e 28 29 3a 20 | "in fnc|_sin(): |
|00002810| 72 65 63 65 69 76 65 64 | 20 66 5f 61 72 67 20 3c |received| f_arg <|
|00002820| 25 66 3e 20 22 2c 0a 58 | 20 20 20 20 20 20 76 61 |%f> ",.X| va|
|00002830| 72 5f 67 65 74 64 76 61 | 6c 28 20 26 28 20 61 72 |r_getdva|l( &( ar|
|00002840| 67 76 5b 20 30 20 5d 20 | 29 20 29 20 29 3b 0a 58 |gv[ 0 ] |) ) );.X|
|00002850| 20 20 20 62 77 62 5f 64 | 65 62 75 67 28 20 62 77 | bwb_d|ebug( bw|
|00002860| 62 5f 65 62 75 66 20 29 | 3b 0a 58 20 20 20 23 65 |b_ebuf )|;.X #e|
|00002870| 6e 64 69 66 0a 58 0a 58 | 20 20 20 23 69 66 20 50 |ndif.X.X| #if P|
|00002880| 52 4f 47 5f 45 52 52 4f | 52 53 0a 58 20 20 20 69 |ROG_ERRO|RS.X i|
|00002890| 66 20 28 20 61 72 67 63 | 20 3c 20 31 20 29 0a 58 |f ( argc| < 1 ).X|
|000028a0| 20 20 20 20 20 20 7b 0a | 58 20 20 20 20 20 20 73 | {.|X s|
|000028b0| 70 72 69 6e 74 66 28 20 | 62 77 62 5f 65 62 75 66 |printf( |bwb_ebuf|
|000028c0| 2c 20 22 4e 6f 74 20 65 | 6e 6f 75 67 68 20 70 61 |, "Not e|nough pa|
|000028d0| 72 61 6d 65 74 65 72 73 | 20 28 25 64 29 20 74 6f |rameters| (%d) to|
|000028e0| 20 66 75 6e 63 74 69 6f | 6e 20 53 49 4e 28 29 2e | functio|n SIN().|
|000028f0| 22 2c 0a 58 20 20 20 20 | 20 20 20 20 20 61 72 67 |",.X | arg|
|00002900| 63 20 29 3b 0a 58 20 20 | 20 20 20 20 62 77 62 5f |c );.X | bwb_|
|00002910| 65 72 72 6f 72 28 20 62 | 77 62 5f 65 62 75 66 20 |error( b|wb_ebuf |
|00002920| 29 3b 0a 58 20 20 20 20 | 20 20 72 65 74 75 72 6e |);.X | return|
|00002930| 20 4e 55 4c 4c 3b 0a 58 | 20 20 20 20 20 20 7d 0a | NULL;.X| }.|
|00002940| 58 0a 58 20 20 20 65 6c | 73 65 20 69 66 20 28 20 |X.X el|se if ( |
|00002950| 61 72 67 63 20 3e 20 31 | 20 29 0a 58 20 20 20 20 |argc > 1| ).X |
|00002960| 20 20 7b 0a 58 20 20 20 | 20 20 20 73 70 72 69 6e | {.X | sprin|
|00002970| 74 66 28 20 62 77 62 5f | 65 62 75 66 2c 20 22 54 |tf( bwb_|ebuf, "T|
|00002980| 6f 6f 20 6d 61 6e 79 20 | 70 61 72 61 6d 65 74 65 |oo many |paramete|
|00002990| 72 73 20 28 25 64 29 20 | 74 6f 20 66 75 6e 63 74 |rs (%d) |to funct|
|000029a0| 69 6f 6e 20 53 49 4e 28 | 29 2e 22 2c 0a 58 20 20 |ion SIN(|).",.X |
|000029b0| 20 20 20 20 20 20 20 61 | 72 67 63 20 29 3b 0a 58 | a|rgc );.X|
|000029c0| 20 20 20 20 20 20 62 77 | 62 5f 65 72 72 6f 72 28 | bw|b_error(|
|000029d0| 20 62 77 62 5f 65 62 75 | 66 20 29 3b 0a 58 20 20 | bwb_ebu|f );.X |
|000029e0| 20 20 20 20 72 65 74 75 | 72 6e 20 4e 55 4c 4c 3b | retu|rn NULL;|
|000029f0| 0a 58 20 20 20 20 20 20 | 7d 0a 58 20 20 20 23 65 |.X |}.X #e|
|00002a00| 6c 73 65 0a 58 20 20 20 | 69 66 20 28 20 66 6e 63 |lse.X |if ( fnc|
|00002a10| 5f 63 68 65 63 6b 61 72 | 67 73 28 20 61 72 67 63 |_checkar|gs( argc|
|00002a20| 2c 20 61 72 67 76 2c 20 | 31 2c 20 31 20 29 20 3d |, argv, |1, 1 ) =|
|00002a30| 3d 20 46 41 4c 53 45 20 | 29 0a 58 20 20 20 20 20 |= FALSE |).X |
|00002a40| 20 7b 0a 58 20 20 20 20 | 20 20 72 65 74 75 72 6e | {.X | return|
|00002a50| 20 4e 55 4c 4c 3b 0a 58 | 20 20 20 20 20 20 7d 0a | NULL;.X| }.|
|00002a60| 58 20 20 20 23 65 6e 64 | 69 66 0a 58 0a 58 20 20 |X #end|if.X.X |
|00002a70| 20 2f 2a 20 61 73 73 69 | 67 6e 20 76 61 6c 75 65 | /* assi|gn value|
|00002a80| 73 20 2a 2f 0a 58 0a 58 | 20 20 20 2a 20 76 61 72 |s */.X.X| * var|
|00002a90| 5f 66 69 6e 64 64 76 61 | 6c 28 20 26 6e 76 61 72 |_finddva|l( &nvar|
|00002aa0| 2c 20 6e 76 61 72 2e 61 | 72 72 61 79 5f 70 6f 73 |, nvar.a|rray_pos|
|00002ab0| 20 29 20 0a 58 20 20 20 | 20 20 20 3d 20 73 69 6e | ) .X | = sin|
|00002ac0| 28 20 76 61 72 5f 67 65 | 74 64 76 61 6c 28 20 26 |( var_ge|tdval( &|
|00002ad0| 28 20 61 72 67 76 5b 20 | 30 20 5d 20 29 20 29 20 |( argv[ |0 ] ) ) |
|00002ae0| 29 3b 0a 58 0a 58 20 20 | 20 72 65 74 75 72 6e 20 |);.X.X | return |
|00002af0| 26 6e 76 61 72 3b 0a 58 | 0a 58 20 20 20 7d 0a 58 |&nvar;.X|.X }.X|
|00002b00| 0a 58 0a 58 2f 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |.X.X/***|********|
|00002b10| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002b20| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002b30| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002b40| 2a 2a 2a 2a 0a 58 0a 58 | 20 20 20 20 20 20 20 20 |****.X.X| |
|00002b50| 46 55 4e 43 54 49 4f 4e | 3a 20 20 20 20 20 20 20 |FUNCTION|: |
|00002b60| 66 6e 63 5f 73 71 72 28 | 29 0a 58 0a 58 20 20 20 |fnc_sqr(|).X.X |
|00002b70| 20 20 20 20 20 44 45 53 | 43 52 49 50 54 49 4f 4e | DES|CRIPTION|
|00002b80| 3a 20 20 20 20 54 68 69 | 73 20 43 20 66 75 6e 63 |: Thi|s C func|
|00002b90| 74 69 6f 6e 20 69 6d 70 | 6c 65 6d 65 6e 74 73 20 |tion imp|lements |
|00002ba0| 74 68 65 20 42 41 53 49 | 43 0a 58 20 20 20 20 20 |the BASI|C.X |
|00002bb0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002bc0| 20 20 20 70 72 65 64 65 | 66 69 6e 65 64 20 53 51 | prede|fined SQ|
|00002bd0| 52 20 66 75 6e 63 74 69 | 6f 6e 2c 20 72 65 74 75 |R functi|on, retu|
|00002be0| 72 6e 69 6e 67 0a 58 20 | 20 20 20 20 20 20 20 20 |rning.X | |
|00002bf0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 74 | | t|
|00002c00| 68 65 20 73 71 75 61 72 | 65 20 72 6f 6f 74 20 6f |he squar|e root o|
|00002c10| 66 20 74 68 65 20 61 72 | 67 75 6d 65 6e 74 2e 0a |f the ar|gument..|
|00002c20| 58 0a 58 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |X.X*****|********|
|00002c30| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002c40| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002c50| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002c60| 2a 2a 2f 0a 58 0a 58 73 | 74 72 75 63 74 20 62 77 |**/.X.Xs|truct bw|
|00002c70| 62 5f 76 61 72 69 61 62 | 6c 65 20 2a 0a 58 66 6e |b_variab|le *.Xfn|
|00002c80| 63 5f 73 71 72 28 20 69 | 6e 74 20 61 72 67 63 2c |c_sqr( i|nt argc,|
|00002c90| 20 73 74 72 75 63 74 20 | 62 77 62 5f 76 61 72 69 | struct |bwb_vari|
|00002ca0| 61 62 6c 65 20 2a 61 72 | 67 76 20 20 29 0a 58 20 |able *ar|gv ).X |
|00002cb0| 20 20 7b 0a 58 20 20 20 | 73 74 61 74 69 63 20 73 | {.X |static s|
|00002cc0| 74 72 75 63 74 20 62 77 | 62 5f 76 61 72 69 61 62 |truct bw|b_variab|
|00002cd0| 6c 65 20 6e 76 61 72 3b | 0a 58 20 20 20 73 74 61 |le nvar;|.X sta|
|00002ce0| 74 69 63 20 69 6e 74 20 | 69 6e 69 74 20 3d 20 46 |tic int |init = F|
|00002cf0| 41 4c 53 45 3b 0a 58 0a | 58 20 20 20 2f 2a 20 69 |ALSE;.X.|X /* i|
|00002d00| 6e 69 74 69 61 6c 69 7a | 65 20 74 68 65 20 76 61 |nitializ|e the va|
|00002d10| 72 69 61 62 6c 65 20 69 | 66 20 6e 65 63 65 73 73 |riable i|f necess|
|00002d20| 61 72 79 20 2a 2f 0a 58 | 0a 58 20 20 20 69 66 20 |ary */.X|.X if |
|00002d30| 28 20 69 6e 69 74 20 3d | 3d 20 46 41 4c 53 45 20 |( init =|= FALSE |
|00002d40| 29 0a 58 20 20 20 20 20 | 20 7b 0a 58 20 20 20 20 |).X | {.X |
|00002d50| 20 20 69 6e 69 74 20 3d | 20 54 52 55 45 3b 0a 58 | init =| TRUE;.X|
|00002d60| 20 20 20 20 20 20 76 61 | 72 5f 6d 61 6b 65 28 20 | va|r_make( |
|00002d70| 26 6e 76 61 72 2c 20 44 | 4f 55 42 4c 45 20 29 3b |&nvar, D|OUBLE );|
|00002d80| 0a 58 20 20 20 20 20 20 | 7d 0a 58 0a 58 20 20 20 |.X |}.X.X |
|00002d90| 23 69 66 20 49 4e 54 45 | 4e 53 49 56 45 5f 44 45 |#if INTE|NSIVE_DE|
|00002da0| 42 55 47 0a 58 20 20 20 | 73 70 72 69 6e 74 66 28 |BUG.X |sprintf(|
|00002db0| 20 62 77 62 5f 65 62 75 | 66 2c 20 22 69 6e 20 66 | bwb_ebu|f, "in f|
|00002dc0| 6e 63 5f 73 71 72 28 29 | 3a 20 72 65 63 65 69 76 |nc_sqr()|: receiv|
|00002dd0| 65 64 20 66 5f 61 72 67 | 20 3c 25 66 3e 20 22 2c |ed f_arg| <%f> ",|
|00002de0| 0a 58 20 20 20 20 20 20 | 76 61 72 5f 67 65 74 64 |.X |var_getd|
|00002df0| 76 61 6c 28 20 26 28 20 | 61 72 67 76 5b 20 30 20 |val( &( |argv[ 0 |
|00002e00| 5d 20 29 20 29 20 29 3b | 0a 58 20 20 20 62 77 62 |] ) ) );|.X bwb|
|00002e10| 5f 64 65 62 75 67 28 20 | 62 77 62 5f 65 62 75 66 |_debug( |bwb_ebuf|
|00002e20| 20 29 3b 0a 58 20 20 20 | 23 65 6e 64 69 66 0a 58 | );.X |#endif.X|
|00002e30| 0a 58 20 20 20 23 69 66 | 20 50 52 4f 47 5f 45 52 |.X #if| PROG_ER|
|00002e40| 52 4f 52 53 0a 58 20 20 | 20 69 66 20 28 20 61 72 |RORS.X | if ( ar|
|00002e50| 67 63 20 3c 20 31 20 29 | 0a 58 20 20 20 20 20 20 |gc < 1 )|.X |
|00002e60| 7b 0a 58 20 20 20 20 20 | 20 73 70 72 69 6e 74 66 |{.X | sprintf|
|00002e70| 28 20 62 77 62 5f 65 62 | 75 66 2c 20 22 4e 6f 74 |( bwb_eb|uf, "Not|
|00002e80| 20 65 6e 6f 75 67 68 20 | 70 61 72 61 6d 65 74 65 | enough |paramete|
|00002e90| 72 73 20 28 25 64 29 20 | 74 6f 20 66 75 6e 63 74 |rs (%d) |to funct|
|00002ea0| 69 6f 6e 20 53 51 52 28 | 29 2e 22 2c 0a 58 20 20 |ion SQR(|).",.X |
|00002eb0| 20 20 20 20 20 20 20 61 | 72 67 63 20 29 3b 0a 58 | a|rgc );.X|
|00002ec0| 20 20 20 20 20 20 62 77 | 62 5f 65 72 72 6f 72 28 | bw|b_error(|
|00002ed0| 20 62 77 62 5f 65 62 75 | 66 20 29 3b 0a 58 20 20 | bwb_ebu|f );.X |
|00002ee0| 20 20 20 20 72 65 74 75 | 72 6e 20 4e 55 4c 4c 3b | retu|rn NULL;|
|00002ef0| 0a 58 20 20 20 20 20 20 | 7d 0a 58 20 20 20 65 6c |.X |}.X el|
|00002f00| 73 65 20 69 66 20 28 20 | 61 72 67 63 20 3e 20 31 |se if ( |argc > 1|
|00002f10| 20 29 0a 58 20 20 20 20 | 20 20 7b 0a 58 20 20 20 | ).X | {.X |
|00002f20| 20 20 20 73 70 72 69 6e | 74 66 28 20 62 77 62 5f | sprin|tf( bwb_|
|00002f30| 65 62 75 66 2c 20 22 54 | 6f 6f 20 6d 61 6e 79 20 |ebuf, "T|oo many |
|00002f40| 70 61 72 61 6d 65 74 65 | 72 73 20 28 25 64 29 20 |paramete|rs (%d) |
|00002f50| 74 6f 20 66 75 6e 63 74 | 69 6f 6e 20 53 51 52 28 |to funct|ion SQR(|
|00002f60| 29 2e 22 2c 0a 58 20 20 | 20 20 20 20 20 20 20 61 |).",.X | a|
|00002f70| 72 67 63 20 29 3b 0a 58 | 20 20 20 20 20 20 62 77 |rgc );.X| bw|
|00002f80| 62 5f 65 72 72 6f 72 28 | 20 62 77 62 5f 65 62 75 |b_error(| bwb_ebu|
|00002f90| 66 20 29 3b 0a 58 20 20 | 20 20 20 20 72 65 74 75 |f );.X | retu|
|00002fa0| 72 6e 20 4e 55 4c 4c 3b | 0a 58 20 20 20 20 20 20 |rn NULL;|.X |
|00002fb0| 7d 0a 58 20 20 20 23 65 | 6c 73 65 0a 58 20 20 20 |}.X #e|lse.X |
|00002fc0| 69 66 20 28 20 66 6e 63 | 5f 63 68 65 63 6b 61 72 |if ( fnc|_checkar|
|00002fd0| 67 73 28 20 61 72 67 63 | 2c 20 61 72 67 76 2c 20 |gs( argc|, argv, |
|00002fe0| 31 2c 20 31 20 29 20 3d | 3d 20 46 41 4c 53 45 20 |1, 1 ) =|= FALSE |
|00002ff0| 29 0a 58 20 20 20 20 20 | 20 7b 0a 58 20 20 20 20 |).X | {.X |
|00003000| 20 20 72 65 74 75 72 6e | 20 4e 55 4c 4c 3b 0a 58 | return| NULL;.X|
|00003010| 20 20 20 20 20 20 7d 0a | 58 20 20 20 23 65 6e 64 | }.|X #end|
|00003020| 69 66 0a 58 0a 58 20 20 | 20 2f 2a 20 61 73 73 69 |if.X.X | /* assi|
|00003030| 67 6e 20 76 61 6c 75 65 | 73 20 2a 2f 0a 58 0a 58 |gn value|s */.X.X|
|00003040| 20 20 20 2a 20 76 61 72 | 5f 66 69 6e 64 64 76 61 | * var|_finddva|
|00003050| 6c 28 20 26 6e 76 61 72 | 2c 20 6e 76 61 72 2e 61 |l( &nvar|, nvar.a|
|00003060| 72 72 61 79 5f 70 6f 73 | 20 29 20 0a 58 20 20 20 |rray_pos| ) .X |
|00003070| 20 20 20 3d 20 73 71 72 | 74 28 20 76 61 72 5f 67 | = sqr|t( var_g|
|00003080| 65 74 64 76 61 6c 28 20 | 26 28 20 61 72 67 76 5b |etdval( |&( argv[|
|00003090| 20 30 20 5d 20 29 20 29 | 20 29 3b 0a 58 0a 58 20 | 0 ] ) )| );.X.X |
|000030a0| 20 20 72 65 74 75 72 6e | 20 26 6e 76 61 72 3b 0a | return| &nvar;.|
|000030b0| 58 0a 58 20 20 20 7d 0a | 58 0a 58 2f 2a 2a 2a 2a |X.X }.|X.X/****|
|000030c0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000030d0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000030e0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000030f0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 0a 58 0a 58 20 |********|***.X.X |
|00003100| 20 20 20 20 20 20 20 46 | 55 4e 43 54 49 4f 4e 3a | F|UNCTION:|
|00003110| 20 20 20 20 20 20 20 66 | 6e 63 5f 74 61 6e 28 29 | f|nc_tan()|
|00003120| 0a 58 0a 58 20 20 20 20 | 20 20 20 20 44 45 53 43 |.X.X | DESC|
|00003130| 52 49 50 54 49 4f 4e 3a | 20 20 20 20 54 68 69 73 |RIPTION:| This|
|00003140| 20 43 20 66 75 6e 63 74 | 69 6f 6e 20 69 6d 70 6c | C funct|ion impl|
|00003150| 65 6d 65 6e 74 73 20 74 | 68 65 20 42 41 53 49 43 |ements t|he BASIC|
|00003160| 0a 58 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.X | |
|00003170| 20 20 20 20 20 20 20 20 | 20 20 70 72 65 64 65 66 | | predef|
|00003180| 69 6e 65 64 20 54 41 4e | 20 66 75 6e 63 74 69 6f |ined TAN| functio|
|00003190| 6e 2c 20 72 65 74 75 72 | 6e 69 6e 67 20 74 68 65 |n, retur|ning the|
|000031a0| 0a 58 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.X | |
|000031b0| 20 20 20 20 20 20 20 20 | 20 20 74 61 6e 67 65 6e | | tangen|
|000031c0| 74 20 6f 66 20 74 68 65 | 20 61 72 67 75 6d 65 6e |t of the| argumen|
|000031d0| 74 2e 0a 58 0a 58 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |t..X.X**|********|
|000031e0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000031f0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003200| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003210| 2a 2a 2a 2a 2a 2f 0a 58 | 0a 58 73 74 72 75 63 74 |*****/.X|.Xstruct|
|00003220| 20 62 77 62 5f 76 61 72 | 69 61 62 6c 65 20 2a 0a | bwb_var|iable *.|
|00003230| 58 66 6e 63 5f 74 61 6e | 28 20 69 6e 74 20 61 72 |Xfnc_tan|( int ar|
|00003240| 67 63 2c 20 73 74 72 75 | 63 74 20 62 77 62 5f 76 |gc, stru|ct bwb_v|
|00003250| 61 72 69 61 62 6c 65 20 | 2a 61 72 67 76 20 20 29 |ariable |*argv )|
|00003260| 0a 58 20 20 20 7b 0a 58 | 20 20 20 73 74 61 74 69 |.X {.X| stati|
|00003270| 63 20 73 74 72 75 63 74 | 20 62 77 62 5f 76 61 72 |c struct| bwb_var|
|00003280| 69 61 62 6c 65 20 6e 76 | 61 72 3b 0a 58 20 20 20 |iable nv|ar;.X |
|00003290| 73 74 61 74 69 63 20 69 | 6e 74 20 69 6e 69 74 20 |static i|nt init |
|000032a0| 3d 20 46 41 4c 53 45 3b | 0a 58 0a 58 20 20 20 2f |= FALSE;|.X.X /|
|000032b0| 2a 20 69 6e 69 74 69 61 | 6c 69 7a 65 20 74 68 65 |* initia|lize the|
|000032c0| 20 76 61 72 69 61 62 6c | 65 20 69 66 20 6e 65 63 | variabl|e if nec|
|000032d0| 65 73 73 61 72 79 20 2a | 2f 0a 58 0a 58 20 20 20 |essary *|/.X.X |
|000032e0| 69 66 20 28 20 69 6e 69 | 74 20 3d 3d 20 46 41 4c |if ( ini|t == FAL|
|000032f0| 53 45 20 29 0a 58 20 20 | 20 20 20 20 7b 0a 58 20 |SE ).X | {.X |
|00003300| 20 20 20 20 20 69 6e 69 | 74 20 3d 20 54 52 55 45 | ini|t = TRUE|
|00003310| 3b 0a 58 20 20 20 20 20 | 20 76 61 72 5f 6d 61 6b |;.X | var_mak|
|00003320| 65 28 20 26 6e 76 61 72 | 2c 20 44 4f 55 42 4c 45 |e( &nvar|, DOUBLE|
|00003330| 20 29 3b 0a 58 20 20 20 | 20 20 20 7d 0a 58 0a 58 | );.X | }.X.X|
|00003340| 20 20 20 23 69 66 20 49 | 4e 54 45 4e 53 49 56 45 | #if I|NTENSIVE|
|00003350| 5f 44 45 42 55 47 0a 58 | 20 20 20 73 70 72 69 6e |_DEBUG.X| sprin|
|00003360| 74 66 28 20 62 77 62 5f | 65 62 75 66 2c 20 22 69 |tf( bwb_|ebuf, "i|
|00003370| 6e 20 66 6e 63 5f 74 61 | 6e 28 29 3a 20 72 65 63 |n fnc_ta|n(): rec|
|00003380| 65 69 76 65 64 20 66 5f | 61 72 67 20 3c 25 66 3e |eived f_|arg <%f>|
|00003390| 20 22 2c 0a 58 20 20 20 | 20 20 20 76 61 72 5f 67 | ",.X | var_g|
|000033a0| 65 74 64 76 61 6c 28 20 | 26 28 20 61 72 67 76 5b |etdval( |&( argv[|
|000033b0| 20 30 20 5d 20 29 20 29 | 20 29 3b 0a 58 20 20 20 | 0 ] ) )| );.X |
|000033c0| 62 77 62 5f 64 65 62 75 | 67 28 20 62 77 62 5f 65 |bwb_debu|g( bwb_e|
|000033d0| 62 75 66 20 29 3b 0a 58 | 20 20 20 23 65 6e 64 69 |buf );.X| #endi|
|000033e0| 66 0a 58 0a 58 20 20 20 | 23 69 66 20 50 52 4f 47 |f.X.X |#if PROG|
|000033f0| 5f 45 52 52 4f 52 53 0a | 58 20 20 20 69 66 20 28 |_ERRORS.|X if (|
|00003400| 20 61 72 67 63 20 3c 20 | 31 20 29 0a 58 20 20 20 | argc < |1 ).X |
|00003410| 20 20 20 7b 0a 58 20 20 | 20 20 20 20 73 70 72 69 | {.X | spri|
|00003420| 6e 74 66 28 20 62 77 62 | 5f 65 62 75 66 2c 20 22 |ntf( bwb|_ebuf, "|
|00003430| 4e 6f 74 20 65 6e 6f 75 | 67 68 20 70 61 72 61 6d |Not enou|gh param|
|00003440| 65 74 65 72 73 20 28 25 | 64 29 20 74 6f 20 66 75 |eters (%|d) to fu|
|00003450| 6e 63 74 69 6f 6e 20 54 | 41 4e 28 29 2e 22 2c 0a |nction T|AN().",.|
|00003460| 58 20 20 20 20 20 20 20 | 20 20 61 72 67 63 20 29 |X | argc )|
|00003470| 3b 0a 58 20 20 20 20 20 | 20 62 77 62 5f 65 72 72 |;.X | bwb_err|
|00003480| 6f 72 28 20 62 77 62 5f | 65 62 75 66 20 29 3b 0a |or( bwb_|ebuf );.|
|00003490| 58 20 20 20 20 20 20 72 | 65 74 75 72 6e 20 4e 55 |X r|eturn NU|
|000034a0| 4c 4c 3b 0a 58 20 20 20 | 20 20 20 7d 0a 58 20 20 |LL;.X | }.X |
|000034b0| 20 65 6c 73 65 20 69 66 | 20 28 20 61 72 67 63 20 | else if| ( argc |
|000034c0| 3e 20 31 20 29 0a 58 20 | 20 20 20 20 20 7b 0a 58 |> 1 ).X | {.X|
|000034d0| 20 20 20 20 20 20 73 70 | 72 69 6e 74 66 28 20 62 | sp|rintf( b|
|000034e0| 77 62 5f 65 62 75 66 2c | 20 22 54 6f 6f 20 6d 61 |wb_ebuf,| "Too ma|
|000034f0| 6e 79 20 70 61 72 61 6d | 65 74 65 72 73 20 28 25 |ny param|eters (%|
|00003500| 64 29 20 74 6f 20 66 75 | 6e 63 74 69 6f 6e 20 54 |d) to fu|nction T|
|00003510| 41 4e 28 29 2e 22 2c 0a | 58 20 20 20 20 20 20 20 |AN().",.|X |
|00003520| 20 20 61 72 67 63 20 29 | 3b 0a 58 20 20 20 20 20 | argc )|;.X |
|00003530| 20 62 77 62 5f 65 72 72 | 6f 72 28 20 62 77 62 5f | bwb_err|or( bwb_|
|00003540| 65 62 75 66 20 29 3b 0a | 58 20 20 20 20 20 20 72 |ebuf );.|X r|
|00003550| 65 74 75 72 6e 20 4e 55 | 4c 4c 3b 0a 58 20 20 20 |eturn NU|LL;.X |
|00003560| 20 20 20 7d 0a 58 20 20 | 20 23 65 6c 73 65 0a 58 | }.X | #else.X|
|00003570| 20 20 20 69 66 20 28 20 | 66 6e 63 5f 63 68 65 63 | if ( |fnc_chec|
|00003580| 6b 61 72 67 73 28 20 61 | 72 67 63 2c 20 61 72 67 |kargs( a|rgc, arg|
|00003590| 76 2c 20 31 2c 20 31 20 | 29 20 3d 3d 20 46 41 4c |v, 1, 1 |) == FAL|
|000035a0| 53 45 20 29 0a 58 20 20 | 20 20 20 20 7b 0a 58 20 |SE ).X | {.X |
|000035b0| 20 20 20 20 20 72 65 74 | 75 72 6e 20 4e 55 4c 4c | ret|urn NULL|
|000035c0| 3b 0a 58 20 20 20 20 20 | 20 7d 0a 58 20 20 20 23 |;.X | }.X #|
|000035d0| 65 6e 64 69 66 0a 58 0a | 58 20 20 20 2f 2a 20 61 |endif.X.|X /* a|
|000035e0| 73 73 69 67 6e 20 76 61 | 6c 75 65 73 20 2a 2f 0a |ssign va|lues */.|
|000035f0| 58 0a 58 20 20 20 2a 20 | 76 61 72 5f 66 69 6e 64 |X.X * |var_find|
|00003600| 64 76 61 6c 28 20 26 6e | 76 61 72 2c 20 6e 76 61 |dval( &n|var, nva|
|00003610| 72 2e 61 72 72 61 79 5f | 70 6f 73 20 29 20 0a 58 |r.array_|pos ) .X|
|00003620| 20 20 20 20 20 20 3d 20 | 74 61 6e 28 20 76 61 72 | = |tan( var|
|00003630| 5f 67 65 74 64 76 61 6c | 28 20 26 28 20 61 72 67 |_getdval|( &( arg|
|00003640| 76 5b 20 30 20 5d 20 29 | 20 29 20 29 3b 0a 58 0a |v[ 0 ] )| ) );.X.|
|00003650| 58 20 20 20 72 65 74 75 | 72 6e 20 26 6e 76 61 72 |X retu|rn &nvar|
|00003660| 3b 0a 58 0a 58 20 20 20 | 7d 0a 58 0a 58 0a 58 2f |;.X.X |}.X.X.X/|
|00003670| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003680| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003690| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000036a0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 0a |********|*******.|
|000036b0| 58 0a 58 20 20 20 20 20 | 20 20 20 46 55 4e 43 54 |X.X | FUNCT|
|000036c0| 49 4f 4e 3a 20 20 20 20 | 20 20 20 66 6e 63 5f 73 |ION: | fnc_s|
|000036d0| 67 6e 28 29 0a 58 0a 58 | 20 20 20 20 20 20 20 20 |gn().X.X| |
|000036e0| 44 45 53 43 52 49 50 54 | 49 4f 4e 3a 20 20 20 20 |DESCRIPT|ION: |
|000036f0| 54 68 69 73 20 43 20 66 | 75 6e 63 74 69 6f 6e 20 |This C f|unction |
|00003700| 69 6d 70 6c 65 6d 65 6e | 74 73 20 74 68 65 20 42 |implemen|ts the B|
|00003710| 41 53 49 43 0a 58 20 20 | 20 20 20 20 20 20 20 20 |ASIC.X | |
|00003720| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 70 72 | | pr|
|00003730| 65 64 65 66 69 6e 65 64 | 20 53 47 4e 20 66 75 6e |edefined| SGN fun|
|00003740| 63 74 69 6f 6e 2c 20 72 | 65 74 75 72 6e 69 6e 67 |ction, r|eturning|
|00003750| 20 30 0a 58 20 20 20 20 | 20 20 20 20 20 20 20 20 | 0.X | |
|00003760| 20 20 20 20 20 20 20 20 | 20 20 20 20 69 66 20 74 | | if t|
|00003770| 68 65 20 61 72 67 75 6d | 65 6e 74 20 69 73 20 30 |he argum|ent is 0|
|00003780| 2c 20 2d 31 20 69 66 20 | 74 68 65 20 61 72 67 75 |, -1 if |the argu|
|00003790| 6d 65 6e 74 0a 58 20 20 | 20 20 20 20 20 20 20 20 |ment.X | |
|000037a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 69 73 | | is|
|000037b0| 20 6c 65 73 73 20 74 68 | 61 6e 20 30 2c 20 6f 72 | less th|an 0, or|
|000037c0| 20 31 20 69 66 20 74 68 | 65 20 61 72 67 75 6d 65 | 1 if th|e argume|
|000037d0| 6e 74 0a 58 20 20 20 20 | 20 20 20 20 20 20 20 20 |nt.X | |
|000037e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 69 73 20 6d | | is m|
|000037f0| 6f 72 65 20 74 68 61 6e | 20 30 2e 0a 58 0a 58 2a |ore than| 0..X.X*|
|00003800| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003810| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003820| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003830| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2f 0a |********|******/.|
|00003840| 58 0a 58 73 74 72 75 63 | 74 20 62 77 62 5f 76 61 |X.Xstruc|t bwb_va|
|00003850| 72 69 61 62 6c 65 20 2a | 0a 58 66 6e 63 5f 73 67 |riable *|.Xfnc_sg|
|00003860| 6e 28 20 69 6e 74 20 61 | 72 67 63 2c 20 73 74 72 |n( int a|rgc, str|
|00003870| 75 63 74 20 62 77 62 5f | 76 61 72 69 61 62 6c 65 |uct bwb_|variable|
|00003880| 20 2a 61 72 67 76 20 20 | 29 0a 58 20 20 20 7b 0a | *argv |).X {.|
|00003890| 58 20 20 20 73 74 61 74 | 69 63 20 73 74 72 75 63 |X stat|ic struc|
|000038a0| 74 20 62 77 62 5f 76 61 | 72 69 61 62 6c 65 20 6e |t bwb_va|riable n|
|000038b0| 76 61 72 3b 0a 58 20 20 | 20 64 6f 75 62 6c 65 20 |var;.X | double |
|000038c0| 64 76 61 6c 3b 0a 58 20 | 20 20 73 74 61 74 69 63 |dval;.X | static|
|000038d0| 20 69 6e 74 20 69 6e 69 | 74 20 3d 20 46 41 4c 53 | int ini|t = FALS|
|000038e0| 45 3b 0a 58 0a 58 20 20 | 20 2f 2a 20 69 6e 69 74 |E;.X.X | /* init|
|000038f0| 69 61 6c 69 7a 65 20 74 | 68 65 20 76 61 72 69 61 |ialize t|he varia|
|00003900| 62 6c 65 20 69 66 20 6e | 65 63 65 73 73 61 72 79 |ble if n|ecessary|
|00003910| 20 2a 2f 0a 58 0a 58 20 | 20 20 69 66 20 28 20 69 | */.X.X | if ( i|
|00003920| 6e 69 74 20 3d 3d 20 46 | 41 4c 53 45 20 29 0a 58 |nit == F|ALSE ).X|
|00003930| 20 20 20 20 20 20 7b 0a | 58 20 20 20 20 20 20 69 | {.|X i|
|00003940| 6e 69 74 20 3d 20 54 52 | 55 45 3b 0a 58 20 20 20 |nit = TR|UE;.X |
|00003950| 20 20 20 76 61 72 5f 6d | 61 6b 65 28 20 26 6e 76 | var_m|ake( &nv|
|00003960| 61 72 2c 20 49 4e 54 45 | 47 45 52 20 29 3b 0a 58 |ar, INTE|GER );.X|
|00003970| 20 20 20 20 20 20 7d 0a | 58 0a 58 20 20 20 23 69 | }.|X.X #i|
|00003980| 66 20 49 4e 54 45 4e 53 | 49 56 45 5f 44 45 42 55 |f INTENS|IVE_DEBU|
|00003990| 47 0a 58 20 20 20 73 70 | 72 69 6e 74 66 28 20 62 |G.X sp|rintf( b|
|000039a0| 77 62 5f 65 62 75 66 2c | 20 22 69 6e 20 66 6e 63 |wb_ebuf,| "in fnc|
|000039b0| 5f 73 67 6e 28 29 3a 20 | 72 65 63 65 69 76 65 64 |_sgn(): |received|
|000039c0| 20 66 5f 61 72 67 20 3c | 25 66 3e 20 22 2c 0a 58 | f_arg <|%f> ",.X|
|000039d0| 20 20 20 20 20 20 76 61 | 72 5f 67 65 74 64 76 61 | va|r_getdva|
|000039e0| 6c 28 20 26 28 20 61 72 | 67 76 5b 20 30 20 5d 20 |l( &( ar|gv[ 0 ] |
|000039f0| 29 20 29 20 29 3b 0a 58 | 20 20 20 62 77 62 5f 64 |) ) );.X| bwb_d|
|00003a00| 65 62 75 67 28 20 62 77 | 62 5f 65 62 75 66 20 29 |ebug( bw|b_ebuf )|
|00003a10| 3b 0a 58 20 20 20 23 65 | 6e 64 69 66 0a 58 0a 58 |;.X #e|ndif.X.X|
|00003a20| 20 20 20 23 69 66 20 50 | 52 4f 47 5f 45 52 52 4f | #if P|ROG_ERRO|
|00003a30| 52 53 0a 58 20 20 20 69 | 66 20 28 20 61 72 67 63 |RS.X i|f ( argc|
|00003a40| 20 3c 20 31 20 29 0a 58 | 20 20 20 20 20 20 7b 0a | < 1 ).X| {.|
|00003a50| 58 20 20 20 20 20 20 73 | 70 72 69 6e 74 66 28 20 |X s|printf( |
|00003a60| 62 77 62 5f 65 62 75 66 | 2c 20 22 4e 6f 74 20 65 |bwb_ebuf|, "Not e|
|00003a70| 6e 6f 75 67 68 20 70 61 | 72 61 6d 65 74 65 72 73 |nough pa|rameters|
|00003a80| 20 28 25 64 29 20 74 6f | 20 66 75 6e 63 74 69 6f | (%d) to| functio|
|00003a90| 6e 20 53 47 4e 28 29 2e | 22 2c 0a 58 20 20 20 20 |n SGN().|",.X |
|00003aa0| 20 20 20 20 20 61 72 67 | 63 20 29 3b 0a 58 20 20 | arg|c );.X |
|00003ab0| 20 20 20 20 62 77 62 5f | 65 72 72 6f 72 28 20 62 | bwb_|error( b|
|00003ac0| 77 62 5f 65 62 75 66 20 | 29 3b 0a 58 20 20 20 20 |wb_ebuf |);.X |
|00003ad0| 20 20 72 65 74 75 72 6e | 20 4e 55 4c 4c 3b 0a 58 | return| NULL;.X|
|00003ae0| 20 20 20 20 20 20 7d 0a | 58 20 20 20 65 6c 73 65 | }.|X else|
|00003af0| 20 69 66 20 28 20 61 72 | 67 63 20 3e 20 31 20 29 | if ( ar|gc > 1 )|
|00003b00| 0a 58 20 20 20 20 20 20 | 7b 0a 58 20 20 20 20 20 |.X |{.X |
|00003b10| 20 73 70 72 69 6e 74 66 | 28 20 62 77 62 5f 65 62 | sprintf|( bwb_eb|
|00003b20| 75 66 2c 20 22 54 6f 6f | 20 6d 61 6e 79 20 70 61 |uf, "Too| many pa|
|00003b30| 72 61 6d 65 74 65 72 73 | 20 28 25 64 29 20 74 6f |rameters| (%d) to|
|00003b40| 20 66 75 6e 63 74 69 6f | 6e 20 53 47 4e 28 29 2e | functio|n SGN().|
|00003b50| 22 2c 0a 58 20 20 20 20 | 20 20 20 20 20 61 72 67 |",.X | arg|
|00003b60| 63 20 29 3b 0a 58 20 20 | 20 20 20 20 62 77 62 5f |c );.X | bwb_|
|00003b70| 65 72 72 6f 72 28 20 62 | 77 62 5f 65 62 75 66 20 |error( b|wb_ebuf |
|00003b80| 29 3b 0a 58 20 20 20 20 | 20 20 72 65 74 75 72 6e |);.X | return|
|00003b90| 20 4e 55 4c 4c 3b 0a 58 | 20 20 20 20 20 20 7d 0a | NULL;.X| }.|
|00003ba0| 58 20 20 20 23 65 6c 73 | 65 0a 58 20 20 20 69 66 |X #els|e.X if|
|00003bb0| 20 28 20 66 6e 63 5f 63 | 68 65 63 6b 61 72 67 73 | ( fnc_c|heckargs|
|00003bc0| 28 20 61 72 67 63 2c 20 | 61 72 67 76 2c 20 31 2c |( argc, |argv, 1,|
|00003bd0| 20 31 20 29 20 3d 3d 20 | 46 41 4c 53 45 20 29 0a | 1 ) == |FALSE ).|
|00003be0| 58 20 20 20 20 20 20 7b | 0a 58 20 20 20 20 20 20 |X {|.X |
|00003bf0| 72 65 74 75 72 6e 20 4e | 55 4c 4c 3b 0a 58 20 20 |return N|ULL;.X |
|00003c00| 20 20 20 20 7d 0a 58 20 | 20 20 23 65 6e 64 69 66 | }.X | #endif|
|00003c10| 0a 58 0a 58 20 20 20 2f | 2a 20 61 73 73 69 67 6e |.X.X /|* assign|
|00003c20| 20 76 61 6c 75 65 73 20 | 2a 2f 0a 58 0a 58 20 20 | values |*/.X.X |
|00003c30| 20 64 76 61 6c 20 3d 20 | 76 61 72 5f 67 65 74 64 | dval = |var_getd|
|00003c40| 76 61 6c 28 20 26 28 20 | 61 72 67 76 5b 20 30 20 |val( &( |argv[ 0 |
|00003c50| 5d 20 29 29 3b 0a 58 0a | 58 20 20 20 69 66 20 28 |] ));.X.|X if (|
|00003c60| 20 64 76 61 6c 20 3d 3d | 20 30 2e 30 20 29 0a 58 | dval ==| 0.0 ).X|
|00003c70| 20 20 20 20 20 20 7b 0a | 58 20 20 20 20 20 20 2a | {.|X *|
|00003c80| 20 76 61 72 5f 66 69 6e | 64 69 76 61 6c 28 20 26 | var_fin|dival( &|
|00003c90| 6e 76 61 72 2c 20 6e 76 | 61 72 2e 61 72 72 61 79 |nvar, nv|ar.array|
|00003ca0| 5f 70 6f 73 20 29 20 3d | 20 30 3b 0a 58 20 20 20 |_pos ) =| 0;.X |
|00003cb0| 20 20 20 7d 0a 58 20 20 | 20 65 6c 73 65 20 69 66 | }.X | else if|
|00003cc0| 20 28 20 64 76 61 6c 20 | 3e 20 30 2e 30 20 29 0a | ( dval |> 0.0 ).|
|00003cd0| 58 20 20 20 20 20 20 7b | 0a 58 20 20 20 20 20 20 |X {|.X |
|00003ce0| 2a 20 76 61 72 5f 66 69 | 6e 64 69 76 61 6c 28 20 |* var_fi|ndival( |
|00003cf0| 26 6e 76 61 72 2c 20 6e | 76 61 72 2e 61 72 72 61 |&nvar, n|var.arra|
|00003d00| 79 5f 70 6f 73 20 29 20 | 3d 20 31 3b 0a 58 20 20 |y_pos ) |= 1;.X |
|00003d10| 20 20 20 20 7d 0a 58 20 | 20 20 65 6c 73 65 0a 58 | }.X | else.X|
|00003d20| 20 20 20 20 20 20 7b 0a | 58 20 20 20 20 20 20 2a | {.|X *|
|00003d30| 20 76 61 72 5f 66 69 6e | 64 69 76 61 6c 28 20 26 | var_fin|dival( &|
|00003d40| 6e 76 61 72 2c 20 6e 76 | 61 72 2e 61 72 72 61 79 |nvar, nv|ar.array|
|00003d50| 5f 70 6f 73 20 29 20 3d | 20 2d 31 3b 0a 58 20 20 |_pos ) =| -1;.X |
|00003d60| 20 20 20 20 7d 0a 58 0a | 58 20 20 20 72 65 74 75 | }.X.|X retu|
|00003d70| 72 6e 20 26 6e 76 61 72 | 3b 0a 58 20 20 20 7d 0a |rn &nvar|;.X }.|
|00003d80| 58 0a 58 2f 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |X.X/****|********|
|00003d90| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003da0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003db0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003dc0| 2a 2a 2a 0a 58 0a 58 20 | 20 20 20 20 20 20 20 46 |***.X.X | F|
|00003dd0| 55 4e 43 54 49 4f 4e 3a | 20 20 20 20 20 20 20 66 |UNCTION:| f|
|00003de0| 6e 63 5f 69 6e 74 28 29 | 0a 58 0a 58 20 20 20 20 |nc_int()|.X.X |
|00003df0| 20 20 20 20 44 45 53 43 | 52 49 50 54 49 4f 4e 3a | DESC|RIPTION:|
|00003e00| 20 20 20 20 54 68 69 73 | 20 43 20 66 75 6e 63 74 | This| C funct|
|00003e10| 69 6f 6e 20 69 6d 70 6c | 65 6d 65 6e 74 73 20 74 |ion impl|ements t|
|00003e20| 68 65 20 42 41 53 49 43 | 0a 58 20 20 20 20 20 20 |he BASIC|.X |
|00003e30| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003e40| 20 20 70 72 65 64 65 66 | 69 6e 65 64 20 49 4e 54 | predef|ined INT|
|00003e50| 20 66 75 6e 63 74 69 6f | 6e 2c 20 72 65 74 75 72 | functio|n, retur|
|00003e60| 6e 69 6e 67 20 61 6e 0a | 58 20 20 20 20 20 20 20 |ning an.|X |
|00003e70| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003e80| 20 6c 65 73 73 20 74 68 | 61 6e 20 6f 72 20 65 71 | less th|an or eq|
|00003e90| 75 61 6c 20 74 6f 20 74 | 68 65 20 61 72 67 75 6d |ual to t|he argum|
|00003ea0| 65 6e 74 2e 0a 58 0a 58 | 2a 2a 2a 2a 2a 2a 2a 2a |ent..X.X|********|
|00003eb0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003ec0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003ed0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003ee0| 2a 2a 2a 2a 2a 2a 2a 2f | 0a 58 0a 58 73 74 72 75 |*******/|.X.Xstru|
|00003ef0| 63 74 20 62 77 62 5f 76 | 61 72 69 61 62 6c 65 20 |ct bwb_v|ariable |
|00003f00| 2a 0a 58 66 6e 63 5f 69 | 6e 74 28 20 69 6e 74 20 |*.Xfnc_i|nt( int |
|00003f10| 61 72 67 63 2c 20 73 74 | 72 75 63 74 20 62 77 62 |argc, st|ruct bwb|
|00003f20| 5f 76 61 72 69 61 62 6c | 65 20 2a 61 72 67 76 20 |_variabl|e *argv |
|00003f30| 20 29 0a 58 20 20 20 7b | 0a 58 20 20 20 73 74 61 | ).X {|.X sta|
|00003f40| 74 69 63 20 73 74 72 75 | 63 74 20 62 77 62 5f 76 |tic stru|ct bwb_v|
|00003f50| 61 72 69 61 62 6c 65 20 | 6e 76 61 72 3b 0a 58 20 |ariable |nvar;.X |
|00003f60| 20 20 73 74 61 74 69 63 | 20 69 6e 74 20 69 6e 69 | static| int ini|
|00003f70| 74 20 3d 20 46 41 4c 53 | 45 3b 0a 58 0a 58 20 20 |t = FALS|E;.X.X |
|00003f80| 20 2f 2a 20 69 6e 69 74 | 69 61 6c 69 7a 65 20 74 | /* init|ialize t|
|00003f90| 68 65 20 76 61 72 69 61 | 62 6c 65 20 69 66 20 6e |he varia|ble if n|
|00003fa0| 65 63 65 73 73 61 72 79 | 20 2a 2f 0a 58 0a 58 20 |ecessary| */.X.X |
|00003fb0| 20 20 69 66 20 28 20 69 | 6e 69 74 20 3d 3d 20 46 | if ( i|nit == F|
|00003fc0| 41 4c 53 45 20 29 0a 58 | 20 20 20 20 20 20 7b 0a |ALSE ).X| {.|
|00003fd0| 58 20 20 20 20 20 20 69 | 6e 69 74 20 3d 20 54 52 |X i|nit = TR|
|00003fe0| 55 45 3b 0a 58 20 20 20 | 20 20 20 76 61 72 5f 6d |UE;.X | var_m|
|00003ff0| 61 6b 65 28 20 26 6e 76 | 61 72 2c 20 53 49 4e 47 |ake( &nv|ar, SING|
|00004000| 4c 45 20 29 3b 0a 58 20 | 20 20 20 20 20 7d 0a 58 |LE );.X | }.X|
|00004010| 0a 58 20 20 20 23 69 66 | 20 49 4e 54 45 4e 53 49 |.X #if| INTENSI|
|00004020| 56 45 5f 44 45 42 55 47 | 0a 58 20 20 20 73 70 72 |VE_DEBUG|.X spr|
|00004030| 69 6e 74 66 28 20 62 77 | 62 5f 65 62 75 66 2c 20 |intf( bw|b_ebuf, |
|00004040| 22 69 6e 20 66 6e 63 5f | 69 6e 74 28 29 3a 20 72 |"in fnc_|int(): r|
|00004050| 65 63 65 69 76 65 64 20 | 66 5f 61 72 67 20 3c 25 |eceived |f_arg <%|
|00004060| 66 3e 20 22 2c 0a 58 20 | 20 20 20 20 20 76 61 72 |f> ",.X | var|
|00004070| 5f 67 65 74 64 76 61 6c | 28 20 26 28 20 61 72 67 |_getdval|( &( arg|
|00004080| 76 5b 20 30 20 5d 20 29 | 20 29 20 29 3b 0a 58 20 |v[ 0 ] )| ) );.X |
|00004090| 20 20 62 77 62 5f 64 65 | 62 75 67 28 20 62 77 62 | bwb_de|bug( bwb|
|000040a0| 5f 65 62 75 66 20 29 3b | 0a 58 20 20 20 23 65 6e |_ebuf );|.X #en|
|000040b0| 64 69 66 0a 58 0a 58 20 | 20 20 23 69 66 20 50 52 |dif.X.X | #if PR|
|000040c0| 4f 47 5f 45 52 52 4f 52 | 53 0a 58 20 20 20 69 66 |OG_ERROR|S.X if|
|000040d0| 20 28 20 61 72 67 63 20 | 3c 20 31 20 29 0a 58 20 | ( argc |< 1 ).X |
|000040e0| 20 20 20 20 20 7b 0a 58 | 20 20 20 20 20 20 73 70 | {.X| sp|
|000040f0| 72 69 6e 74 66 28 20 62 | 77 62 5f 65 62 75 66 2c |rintf( b|wb_ebuf,|
|00004100| 20 22 4e 6f 74 20 65 6e | 6f 75 67 68 20 70 61 72 | "Not en|ough par|
|00004110| 61 6d 65 74 65 72 73 20 | 28 25 64 29 20 74 6f 20 |ameters |(%d) to |
|00004120| 66 75 6e 63 74 69 6f 6e | 20 49 4e 54 28 29 2e 22 |function| INT()."|
|00004130| 2c 0a 58 20 20 20 20 20 | 20 20 20 20 61 72 67 63 |,.X | argc|
|00004140| 20 29 3b 0a 58 20 20 20 | 20 20 20 62 77 62 5f 65 | );.X | bwb_e|
|00004150| 72 72 6f 72 28 20 62 77 | 62 5f 65 62 75 66 20 29 |rror( bw|b_ebuf )|
|00004160| 3b 0a 58 20 20 20 20 20 | 20 72 65 74 75 72 6e 20 |;.X | return |
|00004170| 4e 55 4c 4c 3b 0a 58 20 | 20 20 20 20 20 7d 0a 58 |NULL;.X | }.X|
|00004180| 20 20 20 65 6c 73 65 20 | 69 66 20 28 20 61 72 67 | else |if ( arg|
|00004190| 63 20 3e 20 31 20 29 0a | 58 20 20 20 20 20 20 7b |c > 1 ).|X {|
|000041a0| 0a 58 20 20 20 20 20 20 | 73 70 72 69 6e 74 66 28 |.X |sprintf(|
|000041b0| 20 62 77 62 5f 65 62 75 | 66 2c 20 22 54 6f 6f 20 | bwb_ebu|f, "Too |
|000041c0| 6d 61 6e 79 20 70 61 72 | 61 6d 65 74 65 72 73 20 |many par|ameters |
|000041d0| 28 25 64 29 20 74 6f 20 | 66 75 6e 63 74 69 6f 6e |(%d) to |function|
|000041e0| 20 49 4e 54 28 29 2e 22 | 2c 0a 58 20 20 20 20 20 | INT()."|,.X |
|000041f0| 20 20 20 20 61 72 67 63 | 20 29 3b 0a 58 20 20 20 | argc| );.X |
|00004200| 20 20 20 62 77 62 5f 65 | 72 72 6f 72 28 20 62 77 | bwb_e|rror( bw|
|00004210| 62 5f 65 62 75 66 20 29 | 3b 0a 58 20 20 20 20 20 |b_ebuf )|;.X |
|00004220| 20 72 65 74 75 72 6e 20 | 4e 55 4c 4c 3b 0a 58 20 | return |NULL;.X |
|00004230| 20 20 20 20 20 7d 0a 58 | 20 20 20 23 65 6c 73 65 | }.X| #else|
|00004240| 0a 58 20 20 20 69 66 20 | 28 20 66 6e 63 5f 63 68 |.X if |( fnc_ch|
|00004250| 65 63 6b 61 72 67 73 28 | 20 61 72 67 63 2c 20 61 |eckargs(| argc, a|
|00004260| 72 67 76 2c 20 31 2c 20 | 31 20 29 20 3d 3d 20 46 |rgv, 1, |1 ) == F|
|00004270| 41 4c 53 45 20 29 0a 58 | 20 20 20 20 20 20 7b 0a |ALSE ).X| {.|
|00004280| 58 20 20 20 20 20 20 72 | 65 74 75 72 6e 20 4e 55 |X r|eturn NU|
|00004290| 4c 4c 3b 0a 58 20 20 20 | 20 20 20 7d 0a 58 20 20 |LL;.X | }.X |
|000042a0| 20 23 65 6e 64 69 66 0a | 58 0a 58 20 20 20 2f 2a | #endif.|X.X /*|
|000042b0| 20 61 73 73 69 67 6e 20 | 76 61 6c 75 65 73 20 2a | assign |values *|
|000042c0| 2f 0a 58 0a 58 20 20 20 | 2a 20 76 61 72 5f 66 69 |/.X.X |* var_fi|
|000042d0| 6e 64 66 76 61 6c 28 20 | 26 6e 76 61 72 2c 20 6e |ndfval( |&nvar, n|
|000042e0| 76 61 72 2e 61 72 72 61 | 79 5f 70 6f 73 20 29 20 |var.arra|y_pos ) |
|000042f0| 0a 58 20 20 20 20 20 20 | 3d 20 28 66 6c 6f 61 74 |.X |= (float|
|00004300| 29 20 66 6c 6f 6f 72 28 | 20 76 61 72 5f 67 65 74 |) floor(| var_get|
|00004310| 64 76 61 6c 28 20 26 28 | 20 61 72 67 76 5b 20 30 |dval( &(| argv[ 0|
|00004320| 20 5d 20 29 20 29 20 29 | 3b 0a 58 0a 58 20 20 20 | ] ) ) )|;.X.X |
|00004330| 72 65 74 75 72 6e 20 26 | 6e 76 61 72 3b 0a 58 20 |return &|nvar;.X |
|00004340| 20 20 7d 0a 58 0a 58 2f | 2a 2a 2a 2a 2a 2a 2a 2a | }.X.X/|********|
|00004350| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004360| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004370| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004380| 2a 2a 2a 2a 2a 2a 2a 0a | 58 0a 58 20 20 20 20 20 |*******.|X.X |
|00004390| 20 20 20 46 55 4e 43 54 | 49 4f 4e 3a 20 20 20 20 | FUNCT|ION: |
|000043a0| 20 20 20 66 6e 63 5f 6d | 6b 69 28 29 0a 58 0a 58 | fnc_m|ki().X.X|
|000043b0| 20 20 20 20 20 20 20 20 | 44 45 53 43 52 49 50 54 | |DESCRIPT|
|000043c0| 49 4f 4e 3a 20 20 20 20 | 54 68 69 73 20 43 20 66 |ION: |This C f|
|000043d0| 75 6e 63 74 69 6f 6e 20 | 69 6d 70 6c 65 6d 65 6e |unction |implemen|
|000043e0| 74 73 20 74 68 65 20 42 | 41 53 49 43 0a 58 20 20 |ts the B|ASIC.X |
|000043f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00004400| 20 20 20 20 20 20 70 72 | 65 64 65 66 69 6e 65 64 | pr|edefined|
|00004410| 20 4d 4b 49 24 28 29 20 | 66 75 6e 63 74 69 6f 6e | MKI$() |function|
|00004420| 2e 0a 58 0a 58 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |..X.X***|********|
|00004430| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004440| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004450| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004460| 2a 2a 2a 2a 2f 0a 58 0a | 58 73 74 72 75 63 74 20 |****/.X.|Xstruct |
|00004470| 62 77 62 5f 76 61 72 69 | 61 62 6c 65 20 2a 0a 58 |bwb_vari|able *.X|
|00004480| 66 6e 63 5f 6d 6b 69 28 | 20 69 6e 74 20 61 72 67 |fnc_mki(| int arg|
|00004490| 63 2c 20 73 74 72 75 63 | 74 20 62 77 62 5f 76 61 |c, struc|t bwb_va|
|000044a0| 72 69 61 62 6c 65 20 2a | 61 72 67 76 20 20 29 0a |riable *|argv ).|
|000044b0| 58 20 20 20 7b 0a 58 20 | 20 20 72 65 67 69 73 74 |X {.X | regist|
|000044c0| 65 72 20 69 6e 74 20 69 | 3b 0a 58 20 20 20 73 74 |er int i|;.X st|
|000044d0| 61 74 69 63 20 73 74 72 | 75 63 74 20 62 77 62 5f |atic str|uct bwb_|
|000044e0| 76 61 72 69 61 62 6c 65 | 20 6e 76 61 72 3b 0a 58 |variable| nvar;.X|
|000044f0| 20 20 20 62 73 74 72 69 | 6e 67 20 2a 62 3b 0a 58 | bstri|ng *b;.X|
|00004500| 20 20 20 73 74 61 74 69 | 63 20 63 68 61 72 20 74 | stati|c char t|
|00004510| 62 75 66 5b 20 73 69 7a | 65 6f 66 28 20 69 6e 74 |buf[ siz|eof( int|
|00004520| 20 29 20 5d 3b 0a 58 20 | 20 20 73 74 61 74 69 63 | ) ];.X | static|
|00004530| 20 69 6e 74 20 69 6e 69 | 74 20 3d 20 46 41 4c 53 | int ini|t = FALS|
|00004540| 45 3b 0a 58 0a 58 20 20 | 20 2f 2a 20 69 6e 69 74 |E;.X.X | /* init|
|00004550| 69 61 6c 69 7a 65 20 74 | 68 65 20 76 61 72 69 61 |ialize t|he varia|
|00004560| 62 6c 65 20 69 66 20 6e | 65 63 65 73 73 61 72 79 |ble if n|ecessary|
|00004570| 20 2a 2f 0a 58 0a 58 20 | 20 20 69 66 20 28 20 69 | */.X.X | if ( i|
|00004580| 6e 69 74 20 3d 3d 20 46 | 41 4c 53 45 20 29 0a 58 |nit == F|ALSE ).X|
|00004590| 20 20 20 20 20 20 7b 0a | 58 20 20 20 20 20 20 69 | {.|X i|
|000045a0| 6e 69 74 20 3d 20 54 52 | 55 45 3b 0a 58 20 20 20 |nit = TR|UE;.X |
|000045b0| 20 20 20 76 61 72 5f 6d | 61 6b 65 28 20 26 6e 76 | var_m|ake( &nv|
|000045c0| 61 72 2c 20 53 54 52 49 | 4e 47 20 29 3b 0a 58 20 |ar, STRI|NG );.X |
|000045d0| 20 20 20 20 20 7d 0a 58 | 0a 58 20 20 20 23 69 66 | }.X|.X #if|
|000045e0| 20 50 52 4f 47 5f 45 52 | 52 4f 52 53 0a 58 20 20 | PROG_ER|RORS.X |
|000045f0| 20 69 66 20 28 20 61 72 | 67 63 20 3c 20 31 20 29 | if ( ar|gc < 1 )|
|00004600| 0a 58 20 20 20 20 20 20 | 7b 0a 58 20 20 20 20 20 |.X |{.X |
|00004610| 20 73 70 72 69 6e 74 66 | 28 20 62 77 62 5f 65 62 | sprintf|( bwb_eb|
|00004620| 75 66 2c 20 22 4e 6f 74 | 20 65 6e 6f 75 67 68 20 |uf, "Not| enough |
|00004630| 70 61 72 61 6d 65 74 65 | 72 73 20 28 25 64 29 20 |paramete|rs (%d) |
|00004640| 74 6f 20 66 75 6e 63 74 | 69 6f 6e 20 4d 4b 49 24 |to funct|ion MKI$|
|00004650| 28 29 2e 22 2c 0a 58 20 | 20 20 20 20 20 20 20 20 |().",.X | |
|00004660| 61 72 67 63 20 29 3b 0a | 58 20 20 20 20 20 20 62 |argc );.|X b|
|00004670| 77 62 5f 65 72 72 6f 72 | 28 20 62 77 62 5f 65 62 |wb_error|( bwb_eb|
|00004680| 75 66 20 29 3b 0a 58 20 | 20 20 20 20 20 72 65 74 |uf );.X | ret|
|00004690| 75 72 6e 20 4e 55 4c 4c | 3b 0a 58 20 20 20 20 20 |urn NULL|;.X |
|000046a0| 20 7d 0a 58 20 20 20 65 | 6c 73 65 20 69 66 20 28 | }.X e|lse if (|
|000046b0| 20 61 72 67 63 20 3e 20 | 31 20 29 0a 58 20 20 20 | argc > |1 ).X |
|000046c0| 20 20 20 7b 0a 58 20 20 | 20 20 20 20 73 70 72 69 | {.X | spri|
|000046d0| 6e 74 66 28 20 62 77 62 | 5f 65 62 75 66 2c 20 22 |ntf( bwb|_ebuf, "|
|000046e0| 54 6f 6f 20 6d 61 6e 79 | 20 70 61 72 61 6d 65 74 |Too many| paramet|
|000046f0| 65 72 73 20 28 25 64 29 | 20 74 6f 20 66 75 6e 63 |ers (%d)| to func|
|00004700| 74 69 6f 6e 20 4d 4b 49 | 24 28 29 2e 22 2c 0a 58 |tion MKI|$().",.X|
|00004710| 20 20 20 20 20 20 20 20 | 20 61 72 67 63 20 29 3b | | argc );|
|00004720| 0a 58 20 20 20 20 20 20 | 62 77 62 5f 65 72 72 6f |.X |bwb_erro|
|00004730| 72 28 20 62 77 62 5f 65 | 62 75 66 20 29 3b 0a 58 |r( bwb_e|buf );.X|
|00004740| 20 20 20 20 20 20 72 65 | 74 75 72 6e 20 4e 55 4c | re|turn NUL|
|00004750| 4c 3b 0a 58 20 20 20 20 | 20 20 7d 0a 58 20 20 20 |L;.X | }.X |
|00004760| 23 65 6c 73 65 0a 58 20 | 20 20 69 66 20 28 20 66 |#else.X | if ( f|
|00004770| 6e 63 5f 63 68 65 63 6b | 61 72 67 73 28 20 61 72 |nc_check|args( ar|
|00004780| 67 63 2c 20 61 72 67 76 | 2c 20 31 2c 20 31 20 29 |gc, argv|, 1, 1 )|
|00004790| 20 3d 3d 20 46 41 4c 53 | 45 20 29 0a 58 20 20 20 | == FALS|E ).X |
|000047a0| 20 20 20 7b 0a 58 20 20 | 20 20 20 20 72 65 74 75 | {.X | retu|
|000047b0| 72 6e 20 4e 55 4c 4c 3b | 0a 58 20 20 20 20 20 20 |rn NULL;|.X |
|000047c0| 7d 0a 58 20 20 20 23 65 | 6e 64 69 66 0a 58 0a 58 |}.X #e|ndif.X.X|
|000047d0| 20 20 20 2f 2a 20 61 73 | 73 69 67 6e 20 76 61 6c | /* as|sign val|
|000047e0| 75 65 73 20 2a 2f 0a 58 | 0a 58 20 20 20 61 6e 5f |ues */.X|.X an_|
|000047f0| 69 6e 74 65 67 65 72 2e | 74 68 65 5f 69 6e 74 65 |integer.|the_inte|
|00004800| 67 65 72 20 3d 20 76 61 | 72 5f 67 65 74 69 76 61 |ger = va|r_getiva|
|00004810| 6c 28 20 26 28 20 61 72 | 67 76 5b 20 30 20 5d 20 |l( &( ar|gv[ 0 ] |
|00004820| 29 20 29 3b 0a 58 0a 58 | 20 20 20 66 6f 72 20 28 |) );.X.X| for (|
|00004830| 20 69 20 3d 20 30 3b 20 | 69 20 3c 20 73 69 7a 65 | i = 0; |i < size|
|00004840| 6f 66 28 20 69 6e 74 20 | 29 3b 20 2b 2b 69 20 29 |of( int |); ++i )|
|00004850| 0a 58 20 20 20 20 20 20 | 7b 0a 58 20 20 20 20 20 |.X |{.X |
|00004860| 20 74 62 75 66 5b 20 69 | 20 5d 20 3d 20 61 6e 5f | tbuf[ i| ] = an_|
|00004870| 69 6e 74 65 67 65 72 2e | 74 68 65 5f 63 68 61 72 |integer.|the_char|
|00004880| 73 5b 20 69 20 5d 3b 0a | 58 20 20 20 20 20 20 7d |s[ i ];.|X }|
|00004890| 0a 58 20 20 20 62 20 3d | 20 76 61 72 5f 67 65 74 |.X b =| var_get|
|000048a0| 73 76 61 6c 28 20 26 6e | 76 61 72 20 29 3b 0a 58 |sval( &n|var );.X|
|000048b0| 20 20 20 62 2d 3e 6c 65 | 6e 67 74 68 20 3d 20 73 | b->le|ngth = s|
|000048c0| 69 7a 65 6f 66 28 20 69 | 6e 74 20 29 3b 0a 58 20 |izeof( i|nt );.X |
|000048d0| 20 20 62 2d 3e 62 75 66 | 66 65 72 20 3d 20 74 62 | b->buf|fer = tb|
|000048e0| 75 66 3b 0a 58 20 20 20 | 62 2d 3e 72 61 62 20 3d |uf;.X |b->rab =|
|000048f0| 20 46 41 4c 53 45 3b 20 | 20 20 0a 58 0a 58 20 20 | FALSE; | .X.X |
|00004900| 20 72 65 74 75 72 6e 20 | 26 6e 76 61 72 3b 0a 58 | return |&nvar;.X|
|00004910| 20 20 20 7d 0a 58 0a 58 | 2f 2a 2a 2a 2a 2a 2a 2a | }.X.X|/*******|
|00004920| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004930| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004940| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004950| 2a 2a 2a 2a 2a 2a 2a 2a | 0a 58 0a 58 20 20 20 20 |********|.X.X |
|00004960| 20 20 20 20 46 55 4e 43 | 54 49 4f 4e 3a 20 20 20 | FUNC|TION: |
|00004970| 20 20 20 20 66 6e 63 5f | 6d 6b 64 28 29 0a 58 0a | fnc_|mkd().X.|
|00004980| 58 20 20 20 20 20 20 20 | 20 44 45 53 43 52 49 50 |X | DESCRIP|
|00004990| 54 49 4f 4e 3a 20 20 20 | 20 54 68 69 73 20 43 20 |TION: | This C |
|000049a0| 66 75 6e 63 74 69 6f 6e | 20 69 6d 70 6c 65 6d 65 |function| impleme|
|000049b0| 6e 74 73 20 74 68 65 20 | 42 41 53 49 43 0a 58 20 |nts the |BASIC.X |
|000049c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000049d0| 20 20 20 20 20 20 20 70 | 72 65 64 65 66 69 6e 65 | p|redefine|
|000049e0| 64 20 4d 4b 44 24 28 29 | 20 66 75 6e 63 74 69 6f |d MKD$()| functio|
|000049f0| 6e 2e 0a 58 0a 58 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |n..X.X**|********|
|00004a00| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004a10| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004a20| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004a30| 2a 2a 2a 2a 2a 2f 0a 58 | 0a 58 73 74 72 75 63 74 |*****/.X|.Xstruct|
|00004a40| 20 62 77 62 5f 76 61 72 | 69 61 62 6c 65 20 2a 0a | bwb_var|iable *.|
|00004a50| 58 66 6e 63 5f 6d 6b 64 | 28 20 69 6e 74 20 61 72 |Xfnc_mkd|( int ar|
|00004a60| 67 63 2c 20 73 74 72 75 | 63 74 20 62 77 62 5f 76 |gc, stru|ct bwb_v|
|00004a70| 61 72 69 61 62 6c 65 20 | 2a 61 72 67 76 20 20 29 |ariable |*argv )|
|00004a80| 0a 58 20 20 20 7b 0a 58 | 20 20 20 72 65 67 69 73 |.X {.X| regis|
|00004a90| 74 65 72 20 69 6e 74 20 | 69 3b 0a 58 20 20 20 73 |ter int |i;.X s|
|00004aa0| 74 61 74 69 63 20 73 74 | 72 75 63 74 20 62 77 62 |tatic st|ruct bwb|
|00004ab0| 5f 76 61 72 69 61 62 6c | 65 20 6e 76 61 72 3b 0a |_variabl|e nvar;.|
|00004ac0| 58 20 20 20 62 73 74 72 | 69 6e 67 20 2a 62 3b 0a |X bstr|ing *b;.|
|00004ad0| 58 20 20 20 63 68 61 72 | 20 74 62 75 66 5b 20 73 |X char| tbuf[ s|
|00004ae0| 69 7a 65 6f 66 20 28 20 | 64 6f 75 62 6c 65 20 29 |izeof ( |double )|
|00004af0| 20 5d 3b 0a 58 20 20 20 | 73 74 61 74 69 63 20 69 | ];.X |static i|
|00004b00| 6e 74 20 69 6e 69 74 20 | 3d 20 46 41 4c 53 45 3b |nt init |= FALSE;|
|00004b10| 0a 58 0a 58 20 20 20 2f | 2a 20 69 6e 69 74 69 61 |.X.X /|* initia|
|00004b20| 6c 69 7a 65 20 74 68 65 | 20 76 61 72 69 61 62 6c |lize the| variabl|
|00004b30| 65 20 69 66 20 6e 65 63 | 65 73 73 61 72 79 20 2a |e if nec|essary *|
|00004b40| 2f 0a 58 0a 58 20 20 20 | 69 66 20 28 20 69 6e 69 |/.X.X |if ( ini|
|00004b50| 74 20 3d 3d 20 46 41 4c | 53 45 20 29 0a 58 20 20 |t == FAL|SE ).X |
|00004b60| 20 20 20 20 7b 0a 58 20 | 20 20 20 20 20 69 6e 69 | {.X | ini|
|00004b70| 74 20 3d 20 54 52 55 45 | 3b 0a 58 20 20 20 20 20 |t = TRUE|;.X |
|00004b80| 20 76 61 72 5f 6d 61 6b | 65 28 20 26 6e 76 61 72 | var_mak|e( &nvar|
|00004b90| 2c 20 53 54 52 49 4e 47 | 20 29 3b 0a 58 20 20 20 |, STRING| );.X |
|00004ba0| 20 20 20 7d 0a 58 0a 58 | 20 20 20 23 69 66 20 50 | }.X.X| #if P|
|00004bb0| 52 4f 47 5f 45 52 52 4f | 52 53 0a 58 20 20 20 69 |ROG_ERRO|RS.X i|
|00004bc0| 66 20 28 20 61 72 67 63 | 20 3c 20 31 20 29 0a 58 |f ( argc| < 1 ).X|
|00004bd0| 20 20 20 20 20 20 7b 0a | 58 20 20 20 20 20 20 73 | {.|X s|
|00004be0| 70 72 69 6e 74 66 28 20 | 62 77 62 5f 65 62 75 66 |printf( |bwb_ebuf|
|00004bf0| 2c 20 22 4e 6f 74 20 65 | 6e 6f 75 67 68 20 70 61 |, "Not e|nough pa|
|00004c00| 72 61 6d 65 74 65 72 73 | 20 28 25 64 29 20 74 6f |rameters| (%d) to|
|00004c10| 20 66 75 6e 63 74 69 6f | 6e 20 4d 4b 44 24 28 29 | functio|n MKD$()|
|00004c20| 2e 22 2c 0a 58 20 20 20 | 20 20 20 20 20 20 61 72 |.",.X | ar|
|00004c30| 67 63 20 29 3b 0a 58 20 | 20 20 20 20 20 62 77 62 |gc );.X | bwb|
|00004c40| 5f 65 72 72 6f 72 28 20 | 62 77 62 5f 65 62 75 66 |_error( |bwb_ebuf|
|00004c50| 20 29 3b 0a 58 20 20 20 | 20 20 20 72 65 74 75 72 | );.X | retur|
|00004c60| 6e 20 4e 55 4c 4c 3b 0a | 58 20 20 20 20 20 20 7d |n NULL;.|X }|
|00004c70| 0a 58 20 20 20 65 6c 73 | 65 20 69 66 20 28 20 61 |.X els|e if ( a|
|00004c80| 72 67 63 20 3e 20 31 20 | 29 0a 58 20 20 20 20 20 |rgc > 1 |).X |
|00004c90| 20 7b 0a 58 20 20 20 20 | 20 20 73 70 72 69 6e 74 | {.X | sprint|
|00004ca0| 66 28 20 62 77 62 5f 65 | 62 75 66 2c 20 22 54 6f |f( bwb_e|buf, "To|
|00004cb0| 6f 20 6d 61 6e 79 20 70 | 61 72 61 6d 65 74 65 72 |o many p|arameter|
|00004cc0| 73 20 28 25 64 29 20 74 | 6f 20 66 75 6e 63 74 69 |s (%d) t|o functi|
|00004cd0| 6f 6e 20 4d 4b 44 24 28 | 29 2e 22 2c 0a 58 20 20 |on MKD$(|).",.X |
|00004ce0| 20 20 20 20 20 20 20 61 | 72 67 63 20 29 3b 0a 58 | a|rgc );.X|
|00004cf0| 20 20 20 20 20 20 62 77 | 62 5f 65 72 72 6f 72 28 | bw|b_error(|
|00004d00| 20 62 77 62 5f 65 62 75 | 66 20 29 3b 0a 58 20 20 | bwb_ebu|f );.X |
|00004d10| 20 20 20 20 72 65 74 75 | 72 6e 20 4e 55 4c 4c 3b | retu|rn NULL;|
|00004d20| 0a 58 20 20 20 20 20 20 | 7d 0a 58 20 20 20 23 65 |.X |}.X #e|
|00004d30| 6c 73 65 0a 58 20 20 20 | 69 66 20 28 20 66 6e 63 |lse.X |if ( fnc|
|00004d40| 5f 63 68 65 63 6b 61 72 | 67 73 28 20 61 72 67 63 |_checkar|gs( argc|
|00004d50| 2c 20 61 72 67 76 2c 20 | 31 2c 20 31 20 29 20 3d |, argv, |1, 1 ) =|
|00004d60| 3d 20 46 41 4c 53 45 20 | 29 0a 58 20 20 20 20 20 |= FALSE |).X |
|00004d70| 20 7b 0a 58 20 20 20 20 | 20 20 72 65 74 75 72 6e | {.X | return|
|00004d80| 20 4e 55 4c 4c 3b 0a 58 | 20 20 20 20 20 20 7d 0a | NULL;.X| }.|
|00004d90| 58 20 20 20 23 65 6e 64 | 69 66 0a 58 0a 58 20 20 |X #end|if.X.X |
|00004da0| 20 2f 2a 20 61 73 73 69 | 67 6e 20 76 61 6c 75 65 | /* assi|gn value|
|00004db0| 73 20 2a 2f 0a 58 0a 58 | 20 20 20 61 5f 64 6f 75 |s */.X.X| a_dou|
|00004dc0| 62 6c 65 2e 74 68 65 5f | 64 6f 75 62 6c 65 20 3d |ble.the_|double =|
|00004dd0| 20 76 61 72 5f 67 65 74 | 64 76 61 6c 28 20 26 28 | var_get|dval( &(|
|00004de0| 20 61 72 67 76 5b 20 30 | 20 5d 20 29 20 29 3b 0a | argv[ 0| ] ) );.|
|00004df0| 58 0a 58 20 20 20 66 6f | 72 20 28 20 69 20 3d 20 |X.X fo|r ( i = |
|00004e00| 30 3b 20 69 20 3c 20 73 | 69 7a 65 6f 66 20 28 20 |0; i < s|izeof ( |
|00004e10| 64 6f 75 62 6c 65 20 29 | 3b 20 2b 2b 69 20 29 0a |double )|; ++i ).|
|00004e20| 58 20 20 20 20 20 20 7b | 0a 58 20 20 20 20 20 20 |X {|.X |
|00004e30| 74 62 75 66 5b 20 69 20 | 5d 20 3d 20 61 5f 64 6f |tbuf[ i |] = a_do|
|00004e40| 75 62 6c 65 2e 74 68 65 | 5f 63 68 61 72 73 5b 20 |uble.the|_chars[ |
|00004e50| 69 20 5d 3b 0a 58 20 20 | 20 20 20 20 74 62 75 66 |i ];.X | tbuf|
|00004e60| 5b 20 69 20 2b 20 31 20 | 5d 20 3d 20 27 5c 30 27 |[ i + 1 |] = '\0'|
|00004e70| 3b 0a 58 20 20 20 20 20 | 20 7d 0a 58 20 20 20 62 |;.X | }.X b|
|00004e80| 20 3d 20 76 61 72 5f 67 | 65 74 73 76 61 6c 28 20 | = var_g|etsval( |
|00004e90| 26 6e 76 61 72 20 29 3b | 0a 58 20 20 20 62 2d 3e |&nvar );|.X b->|
|00004ea0| 6c 65 6e 67 74 68 20 3d | 20 73 69 7a 65 6f 66 28 |length =| sizeof(|
|00004eb0| 20 64 6f 75 62 6c 65 20 | 29 3b 0a 58 20 20 20 62 | double |);.X b|
|00004ec0| 2d 3e 62 75 66 66 65 72 | 20 3d 20 74 62 75 66 3b |->buffer| = tbuf;|
|00004ed0| 0a 58 20 20 20 62 2d 3e | 72 61 62 20 3d 20 46 41 |.X b->|rab = FA|
|00004ee0| 4c 53 45 3b 0a 58 0a 58 | 20 20 20 72 65 74 75 72 |LSE;.X.X| retur|
|00004ef0| 6e 20 26 6e 76 61 72 3b | 0a 58 20 20 20 7d 0a 58 |n &nvar;|.X }.X|
|00004f00| 0a 58 2f 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |.X/*****|********|
|00004f10| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004f20| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004f30| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004f40| 2a 2a 0a 58 0a 58 20 20 | 20 20 20 20 20 20 46 55 |**.X.X | FU|
|00004f50| 4e 43 54 49 4f 4e 3a 20 | 20 20 20 20 20 20 66 6e |NCTION: | fn|
|00004f60| 63 5f 6d 6b 73 28 29 0a | 58 0a 58 20 20 20 20 20 |c_mks().|X.X |
|00004f70| 20 20 20 44 45 53 43 52 | 49 50 54 49 4f 4e 3a 20 | DESCR|IPTION: |
|00004f80| 20 20 20 54 68 69 73 20 | 43 20 66 75 6e 63 74 69 | This |C functi|
|00004f90| 6f 6e 20 69 6d 70 6c 65 | 6d 65 6e 74 73 20 74 68 |on imple|ments th|
|00004fa0| 65 20 42 41 53 49 43 0a | 58 20 20 20 20 20 20 20 |e BASIC.|X |
|00004fb0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00004fc0| 20 70 72 65 64 65 66 69 | 6e 65 64 20 4d 4b 53 24 | predefi|ned MKS$|
|00004fd0| 28 29 20 66 75 6e 63 74 | 69 6f 6e 2e 0a 58 0a 58 |() funct|ion..X.X|
|00004fe0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004ff0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00005000| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00005010| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2f |********|*******/|
|00005020| 0a 58 0a 58 73 74 72 75 | 63 74 20 62 77 62 5f 76 |.X.Xstru|ct bwb_v|
|00005030| 61 72 69 61 62 6c 65 20 | 2a 0a 58 66 6e 63 5f 6d |ariable |*.Xfnc_m|
|00005040| 6b 73 28 20 69 6e 74 20 | 61 72 67 63 2c 20 73 74 |ks( int |argc, st|
|00005050| 72 75 63 74 20 62 77 62 | 5f 76 61 72 69 61 62 6c |ruct bwb|_variabl|
|00005060| 65 20 2a 61 72 67 76 20 | 20 29 0a 58 20 20 20 7b |e *argv | ).X {|
|00005070| 0a 58 20 20 20 72 65 67 | 69 73 74 65 72 20 69 6e |.X reg|ister in|
|00005080| 74 20 69 3b 0a 58 20 20 | 20 73 74 61 74 69 63 20 |t i;.X | static |
|00005090| 73 74 72 75 63 74 20 62 | 77 62 5f 76 61 72 69 61 |struct b|wb_varia|
|000050a0| 62 6c 65 20 6e 76 61 72 | 3b 0a 58 20 20 20 73 74 |ble nvar|;.X st|
|000050b0| 61 74 69 63 20 75 6e 73 | 69 67 6e 65 64 20 63 68 |atic uns|igned ch|
|000050c0| 61 72 20 74 62 75 66 5b | 20 35 20 5d 3b 0a 58 20 |ar tbuf[| 5 ];.X |
|000050d0| 20 20 62 73 74 72 69 6e | 67 20 2a 62 3b 0a 58 20 | bstrin|g *b;.X |
|000050e0| 20 20 73 74 61 74 69 63 | 20 69 6e 74 20 69 6e 69 | static| int ini|
|000050f0| 74 20 3d 20 46 41 4c 53 | 45 3b 0a 58 0a 58 20 20 |t = FALS|E;.X.X |
|00005100| 20 2f 2a 20 69 6e 69 74 | 69 61 6c 69 7a 65 20 74 | /* init|ialize t|
|00005110| 68 65 20 76 61 72 69 61 | 62 6c 65 20 69 66 20 6e |he varia|ble if n|
|00005120| 65 63 65 73 73 61 72 79 | 20 2a 2f 0a 58 0a 58 20 |ecessary| */.X.X |
|00005130| 20 20 69 66 20 28 20 69 | 6e 69 74 20 3d 3d 20 46 | if ( i|nit == F|
|00005140| 41 4c 53 45 20 29 0a 58 | 20 20 20 20 20 20 7b 0a |ALSE ).X| {.|
|00005150| 58 20 20 20 20 20 20 69 | 6e 69 74 20 3d 20 54 52 |X i|nit = TR|
|00005160| 55 45 3b 0a 58 20 20 20 | 20 20 20 76 61 72 5f 6d |UE;.X | var_m|
|00005170| 61 6b 65 28 20 26 6e 76 | 61 72 2c 20 53 54 52 49 |ake( &nv|ar, STRI|
|00005180| 4e 47 20 29 3b 0a 58 20 | 20 20 20 20 20 7d 0a 58 |NG );.X | }.X|
|00005190| 0a 58 20 20 20 23 69 66 | 20 50 52 4f 47 5f 45 52 |.X #if| PROG_ER|
|000051a0| 52 4f 52 53 0a 58 20 20 | 20 69 66 20 28 20 61 72 |RORS.X | if ( ar|
|000051b0| 67 63 20 3c 20 31 20 29 | 0a 58 20 20 20 20 20 20 |gc < 1 )|.X |
|000051c0| 7b 0a 58 20 20 20 20 20 | 20 73 70 72 69 6e 74 66 |{.X | sprintf|
|000051d0| 28 20 62 77 62 5f 65 62 | 75 66 2c 20 22 4e 6f 74 |( bwb_eb|uf, "Not|
|000051e0| 20 65 6e 6f 75 67 68 20 | 70 61 72 61 6d 65 74 65 | enough |paramete|
|000051f0| 72 73 20 28 25 64 29 20 | 74 6f 20 66 75 6e 63 74 |rs (%d) |to funct|
|00005200| 69 6f 6e 20 4d 4b 53 24 | 28 29 2e 22 2c 0a 58 20 |ion MKS$|().",.X |
|00005210| 20 20 20 20 20 20 20 20 | 61 72 67 63 20 29 3b 0a | |argc );.|
|00005220| 58 20 20 20 20 20 20 62 | 77 62 5f 65 72 72 6f 72 |X b|wb_error|
|00005230| 28 20 62 77 62 5f 65 62 | 75 66 20 29 3b 0a 58 20 |( bwb_eb|uf );.X |
|00005240| 20 20 20 20 20 72 65 74 | 75 72 6e 20 4e 55 4c 4c | ret|urn NULL|
|00005250| 3b 0a 58 20 20 20 20 20 | 20 7d 0a 58 20 20 20 65 |;.X | }.X e|
|00005260| 6c 73 65 20 69 66 20 28 | 20 61 72 67 63 20 3e 20 |lse if (| argc > |
|00005270| 31 20 29 0a 58 20 20 20 | 20 20 20 7b 0a 58 20 20 |1 ).X | {.X |
|00005280| 20 20 20 20 73 70 72 69 | 6e 74 66 28 20 62 77 62 | spri|ntf( bwb|
|00005290| 5f 65 62 75 66 2c 20 22 | 54 6f 6f 20 6d 61 6e 79 |_ebuf, "|Too many|
|000052a0| 20 70 61 72 61 6d 65 74 | 65 72 73 20 28 25 64 29 | paramet|ers (%d)|
|000052b0| 20 74 6f 20 66 75 6e 63 | 74 69 6f 6e 20 4d 4b 53 | to func|tion MKS|
|000052c0| 24 28 29 2e 22 2c 0a 58 | 20 20 20 20 20 20 20 20 |$().",.X| |
|000052d0| 20 61 72 67 63 20 29 3b | 0a 58 20 20 20 20 20 20 | argc );|.X |
|000052e0| 62 77 62 5f 65 72 72 6f | 72 28 20 62 77 62 5f 65 |bwb_erro|r( bwb_e|
|000052f0| 62 75 66 20 29 3b 0a 58 | 20 20 20 20 20 20 72 65 |buf );.X| re|
|00005300| 74 75 72 6e 20 4e 55 4c | 4c 3b 0a 58 20 20 20 20 |turn NUL|L;.X |
|00005310| 20 20 7d 0a 58 20 20 20 | 23 65 6c 73 65 0a 58 20 | }.X |#else.X |
|00005320| 20 20 69 66 20 28 20 66 | 6e 63 5f 63 68 65 63 6b | if ( f|nc_check|
|00005330| 61 72 67 73 28 20 61 72 | 67 63 2c 20 61 72 67 76 |args( ar|gc, argv|
|00005340| 2c 20 31 2c 20 31 20 29 | 20 3d 3d 20 46 41 4c 53 |, 1, 1 )| == FALS|
|00005350| 45 20 29 0a 58 20 20 20 | 20 20 20 7b 0a 58 20 20 |E ).X | {.X |
|00005360| 20 20 20 20 72 65 74 75 | 72 6e 20 4e 55 4c 4c 3b | retu|rn NULL;|
|00005370| 0a 58 20 20 20 20 20 20 | 7d 0a 58 20 20 20 23 65 |.X |}.X #e|
|00005380| 6e 64 69 66 0a 58 0a 58 | 20 20 20 2f 2a 20 61 73 |ndif.X.X| /* as|
|00005390| 73 69 67 6e 20 76 61 6c | 75 65 73 20 2a 2f 0a 58 |sign val|ues */.X|
|000053a0| 0a 58 20 20 20 61 5f 66 | 6c 6f 61 74 2e 74 68 65 |.X a_f|loat.the|
|000053b0| 5f 66 6c 6f 61 74 20 3d | 20 76 61 72 5f 67 65 74 |_float =| var_get|
|000053c0| 66 76 61 6c 28 20 26 28 | 20 61 72 67 76 5b 20 30 |fval( &(| argv[ 0|
|000053d0| 20 5d 20 29 20 29 3b 0a | 58 0a 58 20 20 20 66 6f | ] ) );.|X.X fo|
|000053e0| 72 20 28 20 69 20 3d 20 | 30 3b 20 69 20 3c 20 73 |r ( i = |0; i < s|
|000053f0| 69 7a 65 6f 66 28 20 66 | 6c 6f 61 74 20 29 3b 20 |izeof( f|loat ); |
|00005400| 2b 2b 69 20 29 0a 58 20 | 20 20 20 20 20 7b 0a 58 |++i ).X | {.X|
|00005410| 20 20 20 20 20 20 74 62 | 75 66 5b 20 69 20 5d 20 | tb|uf[ i ] |
|00005420| 3d 20 61 5f 66 6c 6f 61 | 74 2e 74 68 65 5f 63 68 |= a_floa|t.the_ch|
|00005430| 61 72 73 5b 20 69 20 5d | 3b 0a 58 20 20 20 20 20 |ars[ i ]|;.X |
|00005440| 20 7d 0a 58 20 20 20 62 | 20 3d 20 76 61 72 5f 67 | }.X b| = var_g|
|00005450| 65 74 73 76 61 6c 28 20 | 26 6e 76 61 72 20 29 3b |etsval( |&nvar );|
|00005460| 0a 58 20 20 20 62 2d 3e | 6c 65 6e 67 74 68 20 3d |.X b->|length =|
|00005470| 20 73 69 7a 65 6f 66 28 | 20 66 6c 6f 61 74 20 29 | sizeof(| float )|
|00005480| 3b 0a 58 20 20 20 62 2d | 3e 62 75 66 66 65 72 20 |;.X b-|>buffer |
|00005490| 3d 20 74 62 75 66 3b 0a | 58 20 20 20 62 2d 3e 72 |= tbuf;.|X b->r|
|000054a0| 61 62 20 3d 20 46 41 4c | 53 45 3b 0a 58 0a 58 20 |ab = FAL|SE;.X.X |
|000054b0| 20 20 23 69 66 20 49 4e | 54 45 4e 53 49 56 45 5f | #if IN|TENSIVE_|
|000054c0| 44 45 42 55 47 0a 58 20 | 20 20 73 70 72 69 6e 74 |DEBUG.X | sprint|
|000054d0| 66 28 20 62 77 62 5f 65 | 62 75 66 2c 20 22 69 6e |f( bwb_e|buf, "in|
|000054e0| 20 66 6e 63 5f 6d 6b 73 | 28 29 3a 20 73 74 72 69 | fnc_mks|(): stri|
|000054f0| 6e 67 20 3c 25 73 3e 20 | 68 65 78 20 76 61 6c 73 |ng <%s> |hex vals|
|00005500| 20 3c 25 58 3e 3c 25 58 | 3e 3c 25 58 3e 3c 25 58 | <%X><%X|><%X><%X|
|00005510| 3e 22 2c 0a 58 20 20 20 | 20 20 20 74 62 75 66 2c |>",.X | tbuf,|
|00005520| 20 74 62 75 66 5b 20 30 | 20 5d 2c 20 74 62 75 66 | tbuf[ 0| ], tbuf|
|00005530| 5b 20 31 20 5d 2c 20 74 | 62 75 66 5b 20 32 20 5d |[ 1 ], t|buf[ 2 ]|
|00005540| 2c 20 74 62 75 66 5b 20 | 33 20 5d 20 29 3b 0a 58 |, tbuf[ |3 ] );.X|
|00005550| 20 20 20 62 77 62 5f 64 | 65 62 75 67 28 20 62 77 | bwb_d|ebug( bw|
|00005560| 62 5f 65 62 75 66 20 29 | 3b 0a 58 20 20 20 23 65 |b_ebuf )|;.X #e|
|00005570| 6e 64 69 66 0a 58 0a 58 | 20 20 20 72 65 74 75 72 |ndif.X.X| retur|
|00005580| 6e 20 26 6e 76 61 72 3b | 0a 58 20 20 20 7d 0a 58 |n &nvar;|.X }.X|
|00005590| 0a 58 2f 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |.X/*****|********|
|000055a0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000055b0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000055c0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000055d0| 2a 2a 0a 58 0a 58 20 20 | 20 20 20 20 20 20 46 55 |**.X.X | FU|
|000055e0| 4e 43 54 49 4f 4e 3a 20 | 20 20 20 20 20 20 66 6e |NCTION: | fn|
|000055f0| 63 5f 63 76 69 28 29 0a | 58 0a 58 20 20 20 20 20 |c_cvi().|X.X |
|00005600| 20 20 20 44 45 53 43 52 | 49 50 54 49 4f 4e 3a 20 | DESCR|IPTION: |
|00005610| 20 20 20 54 68 69 73 20 | 43 20 66 75 6e 63 74 69 | This |C functi|
|00005620| 6f 6e 20 69 6d 70 6c 65 | 6d 65 6e 74 73 20 74 68 |on imple|ments th|
|00005630| 65 20 42 41 53 49 43 0a | 58 20 20 20 20 20 20 20 |e BASIC.|X |
|00005640| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00005650| 20 70 72 65 64 65 66 69 | 6e 65 64 20 43 56 49 28 | predefi|ned CVI(|
|00005660| 29 20 66 75 6e 63 74 69 | 6f 6e 2e 0a 58 0a 58 2a |) functi|on..X.X*|
|00005670| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00005680| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00005690| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000056a0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2f 0a |********|******/.|
|000056b0| 58 0a 58 73 74 72 75 63 | 74 20 62 77 62 5f 76 61 |X.Xstruc|t bwb_va|
|000056c0| 72 69 61 62 6c 65 20 2a | 0a 58 66 6e 63 5f 63 76 |riable *|.Xfnc_cv|
|000056d0| 69 28 20 69 6e 74 20 61 | 72 67 63 2c 20 73 74 72 |i( int a|rgc, str|
|000056e0| 75 63 74 20 62 77 62 5f | 76 61 72 69 61 62 6c 65 |uct bwb_|variable|
|000056f0| 20 2a 61 72 67 76 20 20 | 29 0a 58 20 20 20 7b 0a | *argv |).X {.|
|00005700| 58 20 20 20 72 65 67 69 | 73 74 65 72 20 69 6e 74 |X regi|ster int|
|00005710| 20 69 3b 0a 58 20 20 20 | 73 74 72 75 63 74 20 62 | i;.X |struct b|
|00005720| 77 62 5f 76 61 72 69 61 | 62 6c 65 20 2a 76 3b 0a |wb_varia|ble *v;.|
|00005730| 58 20 20 20 62 73 74 72 | 69 6e 67 20 2a 62 3b 0a |X bstr|ing *b;.|
|00005740| 58 20 20 20 73 74 61 74 | 69 63 20 73 74 72 75 63 |X stat|ic struc|
|00005750| 74 20 62 77 62 5f 76 61 | 72 69 61 62 6c 65 20 6e |t bwb_va|riable n|
|00005760| 76 61 72 3b 0a 58 20 20 | 20 73 74 61 74 69 63 20 |var;.X | static |
|00005770| 69 6e 74 20 69 6e 69 74 | 20 3d 20 46 41 4c 53 45 |int init| = FALSE|
|00005780| 3b 0a 58 0a 58 20 20 20 | 2f 2a 20 69 6e 69 74 69 |;.X.X |/* initi|
|00005790| 61 6c 69 7a 65 20 74 68 | 65 20 76 61 72 69 61 62 |alize th|e variab|
|000057a0| 6c 65 20 69 66 20 6e 65 | 63 65 73 73 61 72 79 20 |le if ne|cessary |
|000057b0| 2a 2f 0a 58 0a 58 20 20 | 20 69 66 20 28 20 69 6e |*/.X.X | if ( in|
|000057c0| 69 74 20 3d 3d 20 46 41 | 4c 53 45 20 29 0a 58 20 |it == FA|LSE ).X |
|000057d0| 20 20 20 20 20 7b 0a 58 | 20 20 20 20 20 20 69 6e | {.X| in|
|000057e0| 69 74 20 3d 20 54 52 55 | 45 3b 0a 58 20 20 20 20 |it = TRU|E;.X |
|000057f0| 20 20 76 61 72 5f 6d 61 | 6b 65 28 20 26 6e 76 61 | var_ma|ke( &nva|
|00005800| 72 2c 20 49 4e 54 45 47 | 45 52 20 29 3b 0a 58 20 |r, INTEG|ER );.X |
|00005810| 20 20 20 20 20 7d 0a 58 | 0a 58 20 20 20 23 69 66 | }.X|.X #if|
|00005820| 20 50 52 4f 47 5f 45 52 | 52 4f 52 53 0a 58 20 20 | PROG_ER|RORS.X |
|00005830| 20 69 66 20 28 20 61 72 | 67 63 20 3c 20 31 20 29 | if ( ar|gc < 1 )|
|00005840| 0a 58 20 20 20 20 20 20 | 7b 0a 58 20 20 20 20 20 |.X |{.X |
|00005850| 20 73 70 72 69 6e 74 66 | 28 20 62 77 62 5f 65 62 | sprintf|( bwb_eb|
|00005860| 75 66 2c 20 22 4e 6f 74 | 20 65 6e 6f 75 67 68 20 |uf, "Not| enough |
|00005870| 70 61 72 61 6d 65 74 65 | 72 73 20 28 25 64 29 20 |paramete|rs (%d) |
|00005880| 74 6f 20 66 75 6e 63 74 | 69 6f 6e 20 43 56 49 28 |to funct|ion CVI(|
|00005890| 29 2e 22 2c 0a 58 20 20 | 20 20 20 20 20 20 20 61 |).",.X | a|
|000058a0| 72 67 63 20 29 3b 0a 58 | 20 20 20 20 20 20 62 77 |rgc );.X| bw|
|000058b0| 62 5f 65 72 72 6f 72 28 | 20 62 77 62 5f 65 62 75 |b_error(| bwb_ebu|
|000058c0| 66 20 29 3b 0a 58 20 20 | 20 20 20 20 72 65 74 75 |f );.X | retu|
|000058d0| 72 6e 20 4e 55 4c 4c 3b | 0a 58 20 20 20 20 20 20 |rn NULL;|.X |
|000058e0| 7d 0a 58 20 20 20 65 6c | 73 65 20 69 66 20 28 20 |}.X el|se if ( |
|000058f0| 61 72 67 63 20 3e 20 31 | 20 29 0a 58 20 20 20 20 |argc > 1| ).X |
|00005900| 20 20 7b 0a 58 20 20 20 | 20 20 20 73 70 72 69 6e | {.X | sprin|
|00005910| 74 66 28 20 62 77 62 5f | 65 62 75 66 2c 20 22 54 |tf( bwb_|ebuf, "T|
|00005920| 6f 6f 20 6d 61 6e 79 20 | 70 61 72 61 6d 65 74 65 |oo many |paramete|
|00005930| 72 73 20 28 25 64 29 20 | 74 6f 20 66 75 6e 63 74 |rs (%d) |to funct|
|00005940| 69 6f 6e 20 43 56 49 28 | 29 2e 22 2c 0a 58 20 20 |ion CVI(|).",.X |
|00005950| 20 20 20 20 20 20 20 61 | 72 67 63 20 29 3b 0a 58 | a|rgc );.X|
|00005960| 20 20 20 20 20 20 62 77 | 62 5f 65 72 72 6f 72 28 | bw|b_error(|
|00005970| 20 62 77 62 5f 65 62 75 | 66 20 29 3b 0a 58 20 20 | bwb_ebu|f );.X |
|00005980| 20 20 20 20 72 65 74 75 | 72 6e 20 4e 55 4c 4c 3b | retu|rn NULL;|
|00005990| 0a 58 20 20 20 20 20 20 | 7d 0a 58 20 20 20 23 65 |.X |}.X #e|
|000059a0| 6c 73 65 0a 58 20 20 20 | 69 66 20 28 20 66 6e 63 |lse.X |if ( fnc|
|000059b0| 5f 63 68 65 63 6b 61 72 | 67 73 28 20 61 72 67 63 |_checkar|gs( argc|
|000059c0| 2c 20 61 72 67 76 2c 20 | 31 2c 20 31 20 29 20 3d |, argv, |1, 1 ) =|
|000059d0| 3d 20 46 41 4c 53 45 20 | 29 0a 58 20 20 20 20 20 |= FALSE |).X |
|000059e0| 20 7b 0a 58 20 20 20 20 | 20 20 72 65 74 75 72 6e | {.X | return|
|000059f0| 20 4e 55 4c 4c 3b 0a 58 | 20 20 20 20 20 20 7d 0a | NULL;.X| }.|
|00005a00| 58 20 20 20 23 65 6e 64 | 69 66 0a 58 0a 58 20 20 |X #end|if.X.X |
|00005a10| 20 2f 2a 20 61 73 73 69 | 67 6e 20 76 61 6c 75 65 | /* assi|gn value|
|00005a20| 73 20 2a 2f 0a 58 0a 58 | 20 20 20 76 20 3d 20 26 |s */.X.X| v = &|
|00005a30| 28 20 61 72 67 76 5b 20 | 30 20 5d 20 29 3b 0a 58 |( argv[ |0 ] );.X|
|00005a40| 20 20 20 62 20 3d 20 76 | 61 72 5f 66 69 6e 64 73 | b = v|ar_finds|
|00005a50| 76 61 6c 28 20 76 2c 20 | 76 2d 3e 61 72 72 61 79 |val( v, |v->array|
|00005a60| 5f 70 6f 73 20 29 3b 0a | 58 0a 58 20 20 20 66 6f |_pos );.|X.X fo|
|00005a70| 72 20 28 20 69 20 3d 20 | 30 3b 20 69 20 3c 20 73 |r ( i = |0; i < s|
|00005a80| 69 7a 65 6f 66 28 20 69 | 6e 74 20 29 3b 20 2b 2b |izeof( i|nt ); ++|
|00005a90| 69 20 29 0a 58 20 20 20 | 20 20 20 7b 0a 58 20 20 |i ).X | {.X |
|00005aa0| 20 20 20 20 61 6e 5f 69 | 6e 74 65 67 65 72 2e 74 | an_i|nteger.t|
|00005ab0| 68 65 5f 63 68 61 72 73 | 5b 20 69 20 5d 20 3d 20 |he_chars|[ i ] = |
|00005ac0| 62 2d 3e 62 75 66 66 65 | 72 5b 20 69 20 5d 3b 0a |b->buffe|r[ i ];.|
|00005ad0| 58 20 20 20 20 20 20 7d | 0a 58 0a 58 20 20 20 2a |X }|.X.X *|
|00005ae0| 20 76 61 72 5f 66 69 6e | 64 69 76 61 6c 28 20 26 | var_fin|dival( &|
|00005af0| 6e 76 61 72 2c 20 6e 76 | 61 72 2e 61 72 72 61 79 |nvar, nv|ar.array|
|00005b00| 5f 70 6f 73 20 29 20 3d | 20 61 6e 5f 69 6e 74 65 |_pos ) =| an_inte|
|00005b10| 67 65 72 2e 74 68 65 5f | 69 6e 74 65 67 65 72 3b |ger.the_|integer;|
|00005b20| 0a 58 0a 58 20 20 20 72 | 65 74 75 72 6e 20 26 6e |.X.X r|eturn &n|
|00005b30| 76 61 72 3b 0a 58 20 20 | 20 7d 0a 58 0a 58 2f 2a |var;.X | }.X.X/*|
|00005b40| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00005b50| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00005b60| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00005b70| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 0a 58 |********|******.X|
|00005b80| 0a 58 20 20 20 20 20 20 | 20 20 46 55 4e 43 54 49 |.X | FUNCTI|
|00005b90| 4f 4e 3a 20 20 20 20 20 | 20 20 66 6e 63 5f 63 76 |ON: | fnc_cv|
|00005ba0| 64 28 29 0a 58 0a 58 20 | 20 20 20 20 20 20 20 44 |d().X.X | D|
|00005bb0| 45 53 43 52 49 50 54 49 | 4f 4e 3a 20 20 20 20 54 |ESCRIPTI|ON: T|
|00005bc0| 68 69 73 20 43 20 66 75 | 6e 63 74 69 6f 6e 20 69 |his C fu|nction i|
|00005bd0| 6d 70 6c 65 6d 65 6e 74 | 73 20 74 68 65 20 42 41 |mplement|s the BA|
|00005be0| 53 49 43 0a 58 20 20 20 | 20 20 20 20 20 20 20 20 |SIC.X | |
|00005bf0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 70 72 65 | | pre|
|00005c00| 64 65 66 69 6e 65 64 20 | 43 56 44 28 29 20 66 75 |defined |CVD() fu|
|00005c10| 6e 63 74 69 6f 6e 2e 0a | 58 0a 58 2a 2a 2a 2a 2a |nction..|X.X*****|
|00005c20| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00005c30| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00005c40| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00005c50| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2f 0a 58 0a 58 73 |********|**/.X.Xs|
|00005c60| 74 72 75 63 74 20 62 77 | 62 5f 76 61 72 69 61 62 |truct bw|b_variab|
|00005c70| 6c 65 20 2a 0a 58 66 6e | 63 5f 63 76 64 28 20 69 |le *.Xfn|c_cvd( i|
|00005c80| 6e 74 20 61 72 67 63 2c | 20 73 74 72 75 63 74 20 |nt argc,| struct |
|00005c90| 62 77 62 5f 76 61 72 69 | 61 62 6c 65 20 2a 61 72 |bwb_vari|able *ar|
|00005ca0| 67 76 20 20 29 0a 58 20 | 20 20 7b 0a 58 20 20 20 |gv ).X | {.X |
|00005cb0| 72 65 67 69 73 74 65 72 | 20 69 6e 74 20 69 3b 0a |register| int i;.|
|00005cc0| 58 20 20 20 73 74 72 75 | 63 74 20 62 77 62 5f 76 |X stru|ct bwb_v|
|00005cd0| 61 72 69 61 62 6c 65 20 | 2a 76 3b 0a 58 20 20 20 |ariable |*v;.X |
|00005ce0| 62 73 74 72 69 6e 67 20 | 2a 62 3b 0a 58 20 20 20 |bstring |*b;.X |
|00005cf0| 73 74 61 74 69 63 20 73 | 74 72 75 63 74 20 62 77 |static s|truct bw|
|00005d00| 62 5f 76 61 72 69 61 62 | 6c 65 20 6e 76 61 72 3b |b_variab|le nvar;|
|00005d10| 0a 58 20 20 20 73 74 61 | 74 69 63 20 69 6e 74 20 |.X sta|tic int |
|00005d20| 69 6e 69 74 20 3d 20 46 | 41 4c 53 45 3b 0a 58 0a |init = F|ALSE;.X.|
|00005d30| 58 20 20 20 2f 2a 20 69 | 6e 69 74 69 61 6c 69 7a |X /* i|nitializ|
|00005d40| 65 20 74 68 65 20 76 61 | 72 69 61 62 6c 65 20 69 |e the va|riable i|
|00005d50| 66 20 6e 65 63 65 73 73 | 61 72 79 20 2a 2f 0a 58 |f necess|ary */.X|
|00005d60| 0a 58 20 20 20 69 66 20 | 28 20 69 6e 69 74 20 3d |.X if |( init =|
|00005d70| 3d 20 46 41 4c 53 45 20 | 29 0a 58 20 20 20 20 20 |= FALSE |).X |
|00005d80| 20 7b 0a 58 20 20 20 20 | 20 20 69 6e 69 74 20 3d | {.X | init =|
|00005d90| 20 54 52 55 45 3b 0a 58 | 20 20 20 20 20 20 76 61 | TRUE;.X| va|
|00005da0| 72 5f 6d 61 6b 65 28 20 | 26 6e 76 61 72 2c 20 44 |r_make( |&nvar, D|
|00005db0| 4f 55 42 4c 45 20 29 3b | 0a 58 20 20 20 20 20 20 |OUBLE );|.X |
|00005dc0| 7d 0a 58 0a 58 20 20 20 | 23 69 66 20 50 52 4f 47 |}.X.X |#if PROG|
|00005dd0| 5f 45 52 52 4f 52 53 0a | 58 20 20 20 69 66 20 28 |_ERRORS.|X if (|
|00005de0| 20 61 72 67 63 20 3c 20 | 31 20 29 0a 58 20 20 20 | argc < |1 ).X |
|00005df0| 20 20 20 7b 0a 58 20 20 | 20 20 20 20 73 70 72 69 | {.X | spri|
|00005e00| 6e 74 66 28 20 62 77 62 | 5f 65 62 75 66 2c 20 22 |ntf( bwb|_ebuf, "|
|00005e10| 4e 6f 74 20 65 6e 6f 75 | 67 68 20 70 61 72 61 6d |Not enou|gh param|
|00005e20| 65 74 65 72 73 20 28 25 | 64 29 20 74 6f 20 66 75 |eters (%|d) to fu|
|00005e30| 6e 63 74 69 6f 6e 20 43 | 56 44 28 29 2e 22 2c 0a |nction C|VD().",.|
|00005e40| 58 20 20 20 20 20 20 20 | 20 20 61 72 67 63 20 29 |X | argc )|
|00005e50| 3b 0a 58 20 20 20 20 20 | 20 62 77 62 5f 65 72 72 |;.X | bwb_err|
|00005e60| 6f 72 28 20 62 77 62 5f | 65 62 75 66 20 29 3b 0a |or( bwb_|ebuf );.|
|00005e70| 58 20 20 20 20 20 20 72 | 65 74 75 72 6e 20 4e 55 |X r|eturn NU|
|00005e80| 4c 4c 3b 0a 58 20 20 20 | 20 20 20 7d 0a 58 20 20 |LL;.X | }.X |
|00005e90| 20 65 6c 73 65 20 69 66 | 20 28 20 61 72 67 63 20 | else if| ( argc |
|00005ea0| 3e 20 31 20 29 0a 58 20 | 20 20 20 20 20 7b 0a 58 |> 1 ).X | {.X|
|00005eb0| 20 20 20 20 20 20 73 70 | 72 69 6e 74 66 28 20 62 | sp|rintf( b|
|00005ec0| 77 62 5f 65 62 75 66 2c | 20 22 54 6f 6f 20 6d 61 |wb_ebuf,| "Too ma|
|00005ed0| 6e 79 20 70 61 72 61 6d | 65 74 65 72 73 20 28 25 |ny param|eters (%|
|00005ee0| 64 29 20 74 6f 20 66 75 | 6e 63 74 69 6f 6e 20 43 |d) to fu|nction C|
|00005ef0| 56 44 28 29 2e 22 2c 0a | 58 20 20 20 20 20 20 20 |VD().",.|X |
|00005f00| 20 20 61 72 67 63 20 29 | 3b 0a 58 20 20 20 20 20 | argc )|;.X |
|00005f10| 20 62 77 62 5f 65 72 72 | 6f 72 28 20 62 77 62 5f | bwb_err|or( bwb_|
|00005f20| 65 62 75 66 20 29 3b 0a | 58 20 20 20 20 20 20 72 |ebuf );.|X r|
|00005f30| 65 74 75 72 6e 20 4e 55 | 4c 4c 3b 0a 58 20 20 20 |eturn NU|LL;.X |
|00005f40| 20 20 20 7d 0a 58 20 20 | 20 23 65 6c 73 65 0a 58 | }.X | #else.X|
|00005f50| 20 20 20 69 66 20 28 20 | 66 6e 63 5f 63 68 65 63 | if ( |fnc_chec|
|00005f60| 6b 61 72 67 73 28 20 61 | 72 67 63 2c 20 61 72 67 |kargs( a|rgc, arg|
|00005f70| 76 2c 20 31 2c 20 31 20 | 29 20 3d 3d 20 46 41 4c |v, 1, 1 |) == FAL|
|00005f80| 53 45 20 29 0a 58 20 20 | 20 20 20 20 7b 0a 58 20 |SE ).X | {.X |
|00005f90| 20 20 20 20 20 72 65 74 | 75 72 6e 20 4e 55 4c 4c | ret|urn NULL|
|00005fa0| 3b 0a 58 20 20 20 20 20 | 20 7d 0a 58 20 20 20 23 |;.X | }.X #|
|00005fb0| 65 6e 64 69 66 0a 58 0a | 58 20 20 20 2f 2a 20 61 |endif.X.|X /* a|
|00005fc0| 73 73 69 67 6e 20 76 61 | 6c 75 65 73 20 2a 2f 0a |ssign va|lues */.|
|00005fd0| 58 0a 58 20 20 20 76 20 | 3d 20 26 28 20 61 72 67 |X.X v |= &( arg|
|00005fe0| 76 5b 20 30 20 5d 20 29 | 3b 0a 58 20 20 20 62 20 |v[ 0 ] )|;.X b |
|00005ff0| 3d 20 76 61 72 5f 66 69 | 6e 64 73 76 61 6c 28 20 |= var_fi|ndsval( |
|00006000| 76 2c 20 76 2d 3e 61 72 | 72 61 79 5f 70 6f 73 20 |v, v->ar|ray_pos |
|00006010| 29 3b 0a 58 0a 58 20 20 | 20 66 6f 72 20 28 20 69 |);.X.X | for ( i|
|00006020| 20 3d 20 30 3b 20 69 20 | 3c 20 73 69 7a 65 6f 66 | = 0; i |< sizeof|
|00006030| 28 20 64 6f 75 62 6c 65 | 20 29 3b 20 2b 2b 69 20 |( double| ); ++i |
|00006040| 29 0a 58 20 20 20 20 20 | 20 7b 0a 58 20 20 20 20 |).X | {.X |
|00006050| 20 20 61 5f 64 6f 75 62 | 6c 65 2e 74 68 65 5f 63 | a_doub|le.the_c|
|00006060| 68 61 72 73 5b 20 69 20 | 5d 20 3d 20 62 2d 3e 62 |hars[ i |] = b->b|
|00006070| 75 66 66 65 72 5b 20 69 | 20 5d 3b 0a 58 20 20 20 |uffer[ i| ];.X |
|00006080| 20 20 20 7d 0a 58 0a 58 | 20 20 20 2a 20 76 61 72 | }.X.X| * var|
|00006090| 5f 66 69 6e 64 64 76 61 | 6c 28 20 26 6e 76 61 72 |_finddva|l( &nvar|
|000060a0| 2c 20 6e 76 61 72 2e 61 | 72 72 61 79 5f 70 6f 73 |, nvar.a|rray_pos|
|000060b0| 20 29 20 3d 20 61 5f 64 | 6f 75 62 6c 65 2e 74 68 | ) = a_d|ouble.th|
|000060c0| 65 5f 64 6f 75 62 6c 65 | 3b 0a 58 0a 58 20 20 20 |e_double|;.X.X |
|000060d0| 72 65 74 75 72 6e 20 26 | 6e 76 61 72 3b 0a 58 0a |return &|nvar;.X.|
|000060e0| 58 20 20 20 7d 0a 58 0a | 58 2f 2a 2a 2a 2a 2a 2a |X }.X.|X/******|
|000060f0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00006100| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00006110| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00006120| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 0a 58 0a 58 20 20 20 |********|*.X.X |
|00006130| 20 20 20 20 20 46 55 4e | 43 54 49 4f 4e 3a 20 20 | FUN|CTION: |
|00006140| 20 20 20 20 20 66 6e 63 | 5f 63 76 73 28 29 0a 58 | fnc|_cvs().X|
|00006150| 0a 58 20 20 20 20 20 20 | 20 20 44 45 53 43 52 49 |.X | DESCRI|
|00006160| 50 54 49 4f 4e 3a 20 20 | 20 20 54 68 69 73 20 43 |PTION: | This C|
|00006170| 20 66 75 6e 63 74 69 6f | 6e 20 69 6d 70 6c 65 6d | functio|n implem|
|00006180| 65 6e 74 73 20 74 68 65 | 20 42 41 53 49 43 0a 58 |ents the| BASIC.X|
|00006190| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000061a0| 20 20 20 20 20 20 20 20 | 70 72 65 64 65 66 69 6e | |predefin|
|000061b0| 65 64 20 43 56 53 28 29 | 20 66 75 6e 63 74 69 6f |ed CVS()| functio|
|000061c0| 6e 2e 0a 58 0a 58 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |n..X.X**|********|
|000061d0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000061e0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000061f0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00006200| 2a 2a 2a 2a 2a 2f 0a 58 | 0a 58 73 74 72 75 63 74 |*****/.X|.Xstruct|
|00006210| 20 62 77 62 5f 76 61 72 | 69 61 62 6c 65 20 2a 0a | bwb_var|iable *.|
|00006220| 58 66 6e 63 5f 63 76 73 | 28 20 69 6e 74 20 61 72 |Xfnc_cvs|( int ar|
|00006230| 67 63 2c 20 73 74 72 75 | 63 74 20 62 77 62 5f 76 |gc, stru|ct bwb_v|
|00006240| 61 72 69 61 62 6c 65 20 | 2a 61 72 67 76 20 20 29 |ariable |*argv )|
|00006250| 0a 58 20 20 20 7b 0a 58 | 20 20 20 72 65 67 69 73 |.X {.X| regis|
|00006260| 74 65 72 20 69 6e 74 20 | 69 3b 0a 58 20 20 20 73 |ter int |i;.X s|
|00006270| 74 72 75 63 74 20 62 77 | 62 5f 76 61 72 69 61 62 |truct bw|b_variab|
|00006280| 6c 65 20 2a 76 3b 0a 58 | 20 20 20 62 73 74 72 69 |le *v;.X| bstri|
|00006290| 6e 67 20 2a 62 3b 0a 58 | 20 20 20 73 74 61 74 69 |ng *b;.X| stati|
|000062a0| 63 20 73 74 72 75 63 74 | 20 62 77 62 5f 76 61 72 |c struct| bwb_var|
|000062b0| 69 61 62 6c 65 20 6e 76 | 61 72 3b 0a 58 20 20 20 |iable nv|ar;.X |
|000062c0| 73 74 61 74 69 63 20 69 | 6e 74 20 69 6e 69 74 20 |static i|nt init |
|000062d0| 3d 20 46 41 4c 53 45 3b | 0a 58 0a 58 20 20 20 2f |= FALSE;|.X.X /|
|000062e0| 2a 20 69 6e 69 74 69 61 | 6c 69 7a 65 20 74 68 65 |* initia|lize the|
|000062f0| 20 76 61 72 69 61 62 6c | 65 20 69 66 20 6e 65 63 | variabl|e if nec|
|00006300| 65 73 73 61 72 79 20 2a | 2f 0a 58 0a 58 20 20 20 |essary *|/.X.X |
|00006310| 69 66 20 28 20 69 6e 69 | 74 20 3d 3d 20 46 41 4c |if ( ini|t == FAL|
|00006320| 53 45 20 29 0a 58 20 20 | 20 20 20 20 7b 0a 58 20 |SE ).X | {.X |
|00006330| 20 20 20 20 20 69 6e 69 | 74 20 3d 20 54 52 55 45 | ini|t = TRUE|
|00006340| 3b 0a 58 20 20 20 20 20 | 20 76 61 72 5f 6d 61 6b |;.X | var_mak|
|00006350| 65 28 20 26 6e 76 61 72 | 2c 20 53 49 4e 47 4c 45 |e( &nvar|, SINGLE|
|00006360| 20 29 3b 0a 58 20 20 20 | 20 20 20 7d 0a 58 0a 58 | );.X | }.X.X|
|00006370| 20 20 20 23 69 66 20 50 | 52 4f 47 5f 45 52 52 4f | #if P|ROG_ERRO|
|00006380| 52 53 0a 58 20 20 20 69 | 66 20 28 20 61 72 67 63 |RS.X i|f ( argc|
|00006390| 20 3c 20 31 20 29 0a 58 | 20 20 20 20 20 20 7b 0a | < 1 ).X| {.|
|000063a0| 58 20 20 20 20 20 20 73 | 70 72 69 6e 74 66 28 20 |X s|printf( |
|000063b0| 62 77 62 5f 65 62 75 66 | 2c 20 22 4e 6f 74 20 65 |bwb_ebuf|, "Not e|
|000063c0| 6e 6f 75 67 68 20 70 61 | 72 61 6d 65 74 65 72 73 |nough pa|rameters|
|000063d0| 20 28 25 64 29 20 74 6f | 20 66 75 6e 63 74 69 6f | (%d) to| functio|
|000063e0| 6e 20 43 56 53 28 29 2e | 22 2c 0a 58 20 20 20 20 |n CVS().|",.X |
|000063f0| 20 20 20 20 20 61 72 67 | 63 20 29 3b 0a 58 20 20 | arg|c );.X |
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.