IMD 1.15: 15/05/2007 13:46:32 fog mis 017   åååååååååå  åååååååååå  åååååååååå  -FOG/MIS017/MIS#017DOC+,AREACODEAQM;AREACODECOM8$%&'ASCIIDECCMDCAL 84 CAL DOC DBASE2 TIP åDBDIR AQM&!"#DBDIR CMD&DBDIR COM DBDIR DOCDBHINTS DOCFORM CMD FORM DBFFORM DOCåLIONCAL 84 2PINUPCAL84 ; POKE1 CMD()POKE1 DOC*SHOWMEM CMD$SHOWMEM DOC /MIS#017CRC-åååååååååååååååååååååååååååååååååå.PO1 .MT1 .OP 198419841984198419841984198419841984198419841984198419841984198419841984198 984198419841984198419841984198419841984198419841984198419841984198419841984 8419 9841 4198 8419 1984 1111 å 9999 8888888 44444 4198 9841 11111 99999999 8888 8888 444444 1984 8419 111111 9999 9999 888 888 4444444 9841 4198 1111 999 999 888 88  8 444 4444 8419 1984 1111 999999999 8888888 444 4444 4198 9841 1111 9999999 888 888 44444444444 1984 8419 1111 9999 888 888 44444444444  MAY JUNE ===== === ==== Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 1 2 3 4 5  9841 4198 1111 9999 8888 8888 4444 8419 1984 1111 9999 8888888 4444 4198 9841 1984 8419 9841 4198419841984198419841984198419 1 2 8 9 10 11 12 13 14 6 7 8 9 10 11 12 3 4 5 6 7 8 9 15 16 17 18 19 20 21 13 14 15 16 17 18 19 10 11 12 13 14 15 16 22 23 24 25 26 27 28 20 21 22 23 24 25 26 17 18 19 20 21 22 23 29 30 84198419841984198419841984198419841984198419 198419841984198419841984198419841984198419841984198419841984198419841984198 JANUARY FEBRUARY MARCH ======= ========  27 28 29 30 31 24 25 26 27 28 29 30 JULY AUGUST SEPTEMBER ==== ====== ========= Su Mo Tu We Th  ===== Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 1 2 3 4 1 2 3 8 9 10 11 12 13 14 5 6 7 8 9 10 11 4 5 6 7 8 9 10 15 16 Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 1 2 3 4 1 8 9 10 11 12 13 14 5 6 7 8 9 10 11 2 3 4 5 6 7 8 15 16 17 18 19 20 21 12 13 14 15 17 18 19 20 21 12 13 14 15 16 17 18 11 12 13 14 15 16 17 22 23 24 25 26 27 28 19 20 21 22 23 24 25 18 19 20 21 22 23 24 29 30 31 26 27 28 29 25 26 27 28 29 30 31 APRIL 16 17 18 9 10 11 12 13 14 15 22 23 24 25 26 27 28 19 20 21 22 23 24 25 16 17 18 19 20 21 22 29 30 31 26 27 28 29 30 31 23 24 25 26 27 28 29 30 OCTOBER NOVEMBER    DECEMBER ======= ======== ======== Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 1 2 3 1 7 greatesô easå oæ printing® Iæ � yoõ  dï  noô  wisè tï prinô undeò WordStar¬  buô  uså  thå  TYPÅ � commanä  undeò CP/Í oò anotheò outpuô method¬  simplù deletå  thå � "doô commands¢ froí thå beginninç oæ thå file®      CAL.8´  ió  á singlå pagå cale 8 9 10 11 12 13 4 5 6 7 8 9 10 2 3 4 5 6 7 8 14 15 16 17 18 19 20 11 12 13 14 15 16 17 9 10 11 12 13 14 15 21 22 23 24 25 26 27 18 19 20 21 22 23 24 16 17 18 19 20 21 22 28 29 30 31 ndaò foò 198´ thaô printó  thå �      yeaò iî largå blocë numberó aô thå toð oæ thå page¬ witè thå �      monthó listeä below®  Iô ió seô uð foò printinç aô 1° pitcè �      undeò WordStar.      LIONCAL.8´  ió  á twï pagå filå seô uð foò  printinç  aô   25 26 27 28 29 30 23 24 25 26 27 28 29 30 31 FRD 11/30/83  9 10 11 12 13 14 15 21 22 23 24 25 26 27 18 19 20 21 22 23 24 16 17 18 19 20 21 22 28 29 30 31 1° �      pitcè  undeò WordStar®  Iô haó á picturå oæ aî iratå Snoopù �      witè appropriatå commenô abovå CAL.84.      PINUPCAL.8´  haó á pinuð abovå CAL.8´ anä ió seô foò  outpuô �      aô 1° pitcè undeò WordStar. Theså fileó maù alsï bå pråinteä aô 1² pitch® Simplù deletå � thå pagå offseô .PÏ WordStaò printeò controì commanä iî eacè filå � iæ 1² pitcè ió used. F.R. Dunaway, Long Island Osborne Network (LION) 11/30/83 Edited by Jim Woolley, FOG Disk Librarian, 12/83  CAL.DOC CALENDARS FOR 1984 Thió disë containó severaì calendaró foò 1984® Alì oæ theså � havå  beeî  createä aó WordStaò nondocumenô fileó anä  shoulä  bå � printeä undeò WordStaò controì foò :::::III:,, ', 'IHMMMHHHHHHIHIIIIHHHH: ,'' ::, .::.. ', 'MMMHHHHHIIHHHHHHHII: .::: ::::::::...... ....:, MMHHHHHHHIHIIHHIIII '...'''' '''H:IIHII... ...', .MMHHHH  HHHHHHIIIIII':' ..... .:::::II. 'HHH:.. .. , .MMMMMHHHHII::''' '' .. .....:HI:, II:.. ...:: ,MHMMMMMHH:.'' ... .. ...::H:, 'I::. .: .IMHMMMHI:'' ..:. I .. .. e Kelly * * written v1.0 08-23-82 * updated v1.0 08-23-82 * * set echo off set talk off * * translate table * from hex 20 thru hex 7E * * store ' !"#$%&' +; chr(39) +; '()' +;...::II, 'II.... ::.. IMHIMMI:'' . : ....::H: I:: . ... MMHIMMI:.'' ..: ...: ... ....II,'I:.... . 'MMHIMM:'':. . .. . .. ,: ,.IIHI:::.  '*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`' +; 'abcdefghijklmnopqrstuvwxyz{|}~' to asciitbl * * * convert ascii to decimal * * store stringin to param store 31 to base store ' ' to dstring store 0 to point* * asciidec.cmd * * This command module will convert an ascii string to * a string of decimal numbers seperated by commas which * can then be used in a poke command. * * er * do while pointer registers contain a pointer to the first byte of the   specified memory variable. That first byte contains the number of characters in the variable. Your routine may do as it wishes to the memory variable; again, a simple RET gets you back where you started. The bad news is that since dB1° �      pitcè  undeò WordStar®  Iô haó á picturå oæ aî iratå Snoopù �      witè appropriatå commenô abovå CAL.84.      PINUPCAL.8´  haó á pinuð abovå CAL.8´ anä ió seô foò  outpuô �      aô 1° pitcè undeò WordStar. Theså fileó maù alsï bå prASE II's sort routine uses all the available memory, anything residing above dBASE will be wiped out if you do a sort! However, since in many cases an index can be used rather than a physical sort, this does not seem to be a big problem in most ainteä aô 1² pitch®  Resolutioî oæ � thå PINUÐ picturå ió improveä thió way®  Simplù deletå thå  pagå � offseô .PÏ WordStaò printeò controì commanä iæ 1² pitcè ió used. F.R. Dunaway, Long Island Osborne Network (LION) 11/30/83 Edited by Jim Woolley, Fpplications. I understand that a new release of dBASE, coming (maybe) in about two months, will contain some flexibility in where the call is executed to (SET CALL TO . . .??) and will also have something like PEEK and POKE. Hope this informatOG Disk Librarian, 12/83nteò controì commanä iæ 1² pitcè ió used. F.R. Dunaway, Long Island Osborne Network (LION) 11/30/83 Edited by Jim Woolley, Fion is useful to someone. Now, how about someone out there writing the dBASE based master catalog system, with ALL the goodies! åndaò foò 198´ thaô printó  thå �      yeaò iî largå blocë numberó aô thå toð oæ thå page¬ witè thå �      monthó listeä below®  Iô ió seô uð foò printinç aô 1° pitcè �      undeò WordStar.      LIONCAL.8´  ió  á twï pagå filå seô uð foò  printinç  aô  å  vÿ[GAREACODE.ASMm ßÿ öÿžÿØÿšÿ›ÿ‘ÿ�ÿ–ÿ‹ÿòÿõÿ�ÿ�ÿŒÿ“ÿ œÿ!Óÿ"$#&%('oÿ—ÿ)Ûÿ+*˜ÿŠÿ’ÿ,Äÿ-.�ÿ0/213Ïÿ4™ÿ5Îÿ”ÿ6879¼ÿ;:<†ÿˆÿ=‡ÿ²ÿ?>¬ÿ@ÍÿÌÿ‰ÿAÊÿBÇÿCDËÿE¾ÿF±ÿ°ÿGÝÿHIÌ·õÖke¢\xœœ5™4[o½ØÔ.óHÖI¯à Øz‚É�x8‡üÒ]š‰ü’[k´^?~ùyëåMök±ï§õbS»üüð#ÎI‹}ùG>ðzuqF~ÄÃi½ØÔ®¼�š.�ü<ÔXr¨gåŒÏh½žù.´^oXZûÎɱ8­›Úõ�—'¸ë¤w´¶åçølûÆÿ®õz‚±šç}ÿBïƒÀÖë�×¼pj�: §öÐX¢¦§aZwÍ´¾ïœ‹óþŒÕ<ï;øzÖIkgÂ!¿d�<Á˜8Ïû͘10k&¼ö�“£õbS»þñòDJ�ôîÐöz×z=ÁXÍ󾃡÷A`ëõJØåŽd�ô0Œ¬ÇŒÏÀ¬ùò{ìuõ,òÌ­›Úõ�áH»}r)uÒ|í;4–"c'‰žz*].Ú^¤Ç¯±ô·Ÿ³8×0Q‰½®â~ùù9>Û¾ñ«õ“ܹ4Lé1O0&&`>—÷ŸÒŒ‰W~½p]ÃH@¯Pd éYÕúI—|9ÌÒº Q¹rM;$GÝ¥g�s­,?b ”ю´ýš3Të'á]$aj,‘é Ò�ó9Šžz*].ºÆDšÿdš+[gLÌ(¸ÆDÐö µ~Ò03¢Œ‰{H‘1¤g}¤ô�11î—ö•22ßCÆÄóEJ)ÔúI."ÇÜÜO0)#±×•;׳ǹ­žÒCŠûåG œ ¥­œÏµíÒù"³Z?iyì‡dèY[/6µË<"cðÏúÈ�p ë¤ùÚwh,EÆÐ³>j„cغâ¾_ìÇTý:‰À!ûÎ~è1#Ç30kÙCÏú(ûÊzÅxÌÖëyÍëU'ý…^{èã1÷\ö�ýÐcFŽg`־ឡõzãZZþ‰›Z'm»îÒ+ÆcŠŸ÷AÙXè1#Ç30{í«Žaëþ‰k}¿ö�ª_'9ò5—}e]œŠŒ¡g}ÔcFŽg`n½ö�*³Nräk®±äñY÷ë1#Ç30k_EÆÐ³>j„cØzí›ËÕIŽ|Íõ˜‘ã˜5_~�½®žEÞ�¹õz­„ŠÃÕIfx=fäxf=‹¼³ˆuQÑõìq®íu×PÆyF�wà?¤¸_vD&{FÔXŠÿµ‡Z?)¼2&F1±õ“Z?I¶Íí¥íu×Ð0Q¯å‡qÈcäÇT^äØ5ÌJ§g‘ì«õ“ÌH@I�_ÚWÚ¯9ÃÞ±/! s{iž‘ãuȘèÈ!í!câöjý${ø1Á˜¸xÉ¡ÒGÿäíðKá¥�ÞÙWž‰ü%ÿĽû4øýQ­Ÿô˜øpö%¤zÿn‚1qÛ¥óEJ]²ïûµ‡^1s_BZW²ïì‡Z?é1#Ç30úyÍ5–†‰º854_ÞoÇP¯�9Á˜ØúI­Ÿd$ÊýPF"ò÷Gë'µ~̈š/¿Ç^ן¡õzæ»R[¯7®¥åŸ¸)uÒ+ÆcêâÔÐcFŽg`>´íºk(†æËï±×UjëõŸ©úuRü7H?ô˜‘ã˜5_~�½®ì+Ë“Îcb$Þ¡WŒÇl½þ3UfëÅ~LÕ¯“bá‡öÞ�¿"cèY[¯ç5¯W�ôŠñ˜K,üÐcFŽg`Ö¾ŠŒ¡g}ÔÇð ­×–Ö+ÆcÖIÛ.~è1#Ç30ëã1ÑúÛÏYœ+#±×=÷Ë�Øzí;U¿NºK¯�yÈ‘¯¹Ü¦ækß�Ù·^ûN•Ùº⦼_ìÇTý:‰À¡‹SC�9ž�Ycéã1[¯ç5¯W’‘(%ÈØ¹Ò^{˜‡¨éi˜>“‡ÒI£HßúIF¢I›3mRΞ9;5Å*[§×ÇסÔdR\ƒü”¶~’‘¨EÒæL›”³g&m¬²u2Ì.˜èé‘ÒÖOj½u #+Y'QÓÓ0-î¾ä£âÿŒÞ·îþò…‰‘åÂãälê$®t)Ò„wäsÅÿ½o}8Òn/LŒ,'g‘4Oøš¯ù\¶>ëõŠû)•#ívÌ­·>Ï×¢01²f×Ió¼ï�y_B¶âýûÚWÀ¥²“÷{ÝÖ[göÂÄÈJ†Y'ѧQÓ¥ÛeGü­?¹01²’߬“èÓ¨éÒ鉜w¨Œƒ�÷\¯�©sgh½Þ¸––‹‡CÎë$çLr~hÛu—^1Sëê!sÆ;4_~�½nëõZ ‡«“"£fP1dß7˜3r<³æËï±×=CëõÌw¥¶^oXZ¯�Y'm»ü:4ƒ2#eß7˜^1³õzã5/ÿÄ­“î²ïLóå÷Øëù\AľŒ‰­»x8äüýúÏTý:ÉÅÃ9“œk,ùyhÙ…w`ƯÈzÖÇÖë?SeÖI.Ιä\cÉ�ÈCË®‡ÌïPd =ë£öÕǰõúO.W'}<Ó‘¯¹3r<³æËï±×Õ³È;0·^o\KËÅÃ!çu[k.òŽ  Í4ƒŠŒŠ!?"-»üÈû­û'nêû5'½Y¿Nò‘€š¯}f�%¼3~EÆÐ³>¶^lj×?l,ê¤WpP6zÌÈñ Ìr;|ëõãׯ“â¹^c)2†žõQ#CÍ×¾së5_óúuRÆg%`Ö|í;0k,á˜ñ+2†žõ±õz­„ŠãU'™‘€šA™{èŠ7ßi_EÆÐ³>j„c¨g1òuÏÐz=ó]@#8“;i¶^o\KË?që¤m×]ãÐÈçº85äGÞ—�}e…^1s‚1±õ»^1ó}6µë/O¤ÖIïh)l+”lEÆÐ³>¾k½ž`¬æyßÁ¿Ðû °õzãºùr;QãÆ4æ¡õú® 5™ ­×w Æ”‘ØëúCÔÅVŽ¿dˆ‡Ö뻂”d*´^ß(SFb¯ëQ×½øŒý�C�yh½¾+HM¦@ëõ]�‚1e$öºþ]d8eˆ‡Ö뻂”d ´^ßÈrxs_b¬{ˆîö#ïghÙE]Œ|¹2(ç¡õú®Àš ­×w¢OXWé#s½¹òÐô9f¯¸_–÷˜eI$à=ô&[yÿ�1 Z¯ï R“6Ðz}W 7Wš4È�ùÃC”à¹,£‡¦w¼¶â~½ÉVÞ?d­×w³“ÜÐz}W Êâáøu6cxèM¶òþ!C<5/œÚ£N©=4–¨éi˜Ö]3Œ‰­¿b<æûµïT™u’#_sÙWVFb¯«¸_~Ä@�p ÅÖc¯ÛzM=&Qu’Ÿ‰¹ÆÝIr$ü„Öë Æjž÷ü ½[Ç©=Þ/6µëOfö:‰ƒ8׺c‚1±õz‚±šç}ÿBïƒÀÖ‹™ì×bßN�DàÐb_Ôô4LË�x8­—Ÿ›¬ê¤Œ~¬Œò#Žækß�ù�_ºK3‘_rk�Ö+ã¨:)ã óÕX¢¦§az‚1±õSëó¼ïà_è}XuÒ<ï;ôBïƒ@ù‘÷%Z?µ^¯„]Ï1Ï×â¤yÞwÈ�¼/![É;6ð@©´^ßp'¹¡õú®@ôƒÅqˆÎzá¡÷âÊijÎCëõ]Álk ´^ßÈrœ?yy轸2±CÏCëõ]�EÒZ¯ï Œ)#±×õ‡,‰™Ø[Æ;Z¯ï R’Ðz}W `L‰½®?”dÐ4­×wo­Ðz}W z6ÖUܯéEÞ¡É0ßu¥clßµ½ Êyh½¾+Hµ¦@ëõ]�èɼr¢šû bâˆ}÷Ë’M˜,îWúÈœCéÛwm/c"­×w)Ö³Ðz}W jx?dI¼^ëþCÓû17WÔ=Î÷+m‘ÃW¼ÿPºûwÜ­×w©Ö³Ðz}W t÷ï¸1_l{Åý¢dqÖkJwÿŽ2(ç¡õú®à¬5Z¯ï D]ä}6WFÚíþPº52lá¡õú®ÀÆj­×w¢‹^Ók_ôŠû5~]Q÷8?”nÍ„ŒYà¡õú® Õ:Z¯ï D—tdb$J·fB†­<´^ߤZßBëõ]�è®O ¨{œ+î—åý˜{Ä!Jâúð‡Ö뻂”älh½¾+Лý]Šû•6ÖÃë¢Ûö•ï³ÀCëõ]·ÕZ¯ï D÷+îWZ\½™ã>Û?ë5ض¯|wÈ Z¯ï ÎZ¹¡õú®@9.�Šû•Wt7ë5ض¯|wÈ œ‡Ö뻂ÙÖ·Ðz}W ´xr¼ðŽ¥¸_i‹¦l‡¹ð5ض¯|wȘ5Z¯ï ¸“Ðz}W ´¸¢lyTܯ4òÞó„`xˆlÛW¾;d¼Z¯ï l¬³¡õú®@wDÞë5nü�1IZ¯ï l¬ÜÐz}W éuGÆ`‡¨q㇌3æ¡õú®àlÒZ¯ï D»ò02f‰‡Ö뻂ÙÖTh½¾+Å1Šûe{Í‘‡(‰ëÃËH<­×wo“o¡õú®@ôÞdq¿â~YÞ÷1Ñ̇(Á;ȇƒç2h‚‡Öë»›d ´^ßhÒEn� ›1<”>>ù„©¸_i&2wž°ÃC”àäÃÁs“à¡õú®À&É ­×wâc]ÑY$�ŠûE‹3¢È ãúC“.rû7dÌ­×w©V h½¾+ФÁAQÍÈ ý¡I¹ýŽ2&ÏCëõ]AJò,´^ß(SFb¯ëMǾ(ƒ¦yh½¾+HMZ¡õú®@Á˜2{]h:ò9‹ûeˆ‡Ö뻂·Ö³ÐzÅ5ÎQÜy¯CÔ¸ñCFâxh½¾+°Hž…Öë»QÜy¯CÔ¸ñCÆ$yh½¾+xkM…Öë»QŒ3qˆâŽÈ{¢Æ�2&ÏCëõ]·ÕZ¯ï 4‹$:|Í"‰ŸCÔ¸ñCƬóÐz}W`a� ­×wšE>‡¨q㇠à¡õú®€ÛúZ¯ï d{åuÇRÜ/Š;"ïuˆ7~ÈH”‡Ö뻂”$7´^ßh:nŒåâ5nü�qÆ<´^ߤ&ßBëõ]�ÒÂsb<&ÎÄ=D�?dØÂCëõ]w2Z¯ï DÏæ‡¨q㇌IòÐz}W`‘ä†Öë»qÍ{loŠ}W ®Ë�u½™ãµ/aÆKq¿hqF\ñÛWþ‡¦ÃûxLÒã^ÆñÐz}WÀmM…Ö뻥Íó¾„}#û‡¦ÃûxLÒã^Fâxh½¾+˜�´�Öë»MãÔ~–¨{œšÆ©ý,ïxh½¾+˜�L…Öë»Ñ®<ÌôCÓ8µŸ%ãŒyh½¾+Hµ¦Bëõ]�èÞq÷‹þ^Ñg·ò¡éý˜›ˆ+c–xh½¾+xk} ­×wâc05#rQãoÆâQܯ÷æ¸_tb¾¿?4½sqeœ­×w6Ö³Ðz}W Iã>ûŠû•ľ1shz?æ&âʘZ¯ï f'ßBëõ  ]�Ò‚dCi'h:òÆCÓû17WFâxh½¾+°Iž…Öë»Ñ3‡yhR Åý¢³ýÀ|hzß‹~��AS<´^ߤX- õú®@tIFóÐô¾ý!ƒç¡õú®à­5Z¯ï 4½ïŘ/¶½â~¥Å¾Céƒd‡¦÷½è×4ÃCëõ]ÁÛ¤Z¯ï Œ)#±×õ‡¦·÷Ûû=Ÿo4æ¡õú®€ÛzZ¯ï DÙš³}÷+mž÷%ì›á?4½½_dÞ2(ç¡õú®ÀÂúZ¯ï DI\^Ô=Î÷+-ö¢lyœ›‡¦·÷‹Ì[ƬñÐz}W�jå†Ö뻥žC“.rûCÍ8èÏä9ã¡ôx¯?g qwH<´^ßX$gCëõ]�‚1e$öºþPzóX¢³Ÿ%ƒÆ<´^ßp'­Ðz}W `L‰½®?DÇ\•γ¸_Fâyh½¾+°H¦Bëõ]�‚1e$öºþPÚ"‡)jäÅö ‰òÐz}Wð6i­×w Æ”‘ØëúCi‹¦èg��‘xZ¯ï ÞZm õú®@T3ƈ»ŠûEÞLØŒá!Ûx/z�(ƒæñÐz}W0;i…Öë»MãknnÈ6Þ‹QÏCëõ]�Eò-´^߈þy3¶ÙÆ©ð2&ÉCëõ]��5Z¯ï DOú±ï!êÊsÓÛûEæ-C<´^ßp'ßBëõ]�‚1e$öºþÐôº#nȰ…‡Öë»îd ´^ßhÒ}ŸÅ®â~Q¼ÂŒC´èrxNÈH”‡Ö뻂Ԥ´^߈våa*=‹1ð-ºž2f�‡Ö뻂³Éh½¾+P0¦ŒÄ^עńø!ã­×wo“©Ðz}W `L‰½®?D‹3²$^soîŒ2ÇCëõ]ÁÛälh½¾+ý`qÇ~DÝãü5^¯â~ÙÎxǺ‡hqF”aöx.ã=yh½¾+HIZ¡õú®@–ÄÃÁëãáš^9o?ÖÌUÜ/Zœ‰Ì9D‹3¢ ³ÇsïÉCëõ]�MÒ‹jæíÇVܯ´¸¢¿cݽÙÆ©ð2Þ“‡Ö뻂+7´^߈n0þ�mœ /ÃVZ¯ï ÎZS¡õú®@ï –€~¬«¸_–,Ò�uÙÆ©ð2f•‡Öë» ëYh½¾+�m|Ͳ�SáeØÊCëõ]�EÒ ­×w Æ”‘ØëúC49”ÁóÐz}W`‘L�Öë»cÊHìuý¡É0¿Ö2lá¡õú®À"9Z¯ï Œ)#±×õ‡&Û™ØWé<‹û½ŒDyh½¾+°HrCëõ]�¨fd¶Æ@Ÿ°ÃC´+Ûã(î�ý˜¯uÿ¡Év&öÝ!c<´^ßœM¦Bëõ]�ÞÌÒZ¯ï Œ)#±×õ‡hqFÓ8µŸ%cò<´^ߨX- õú®@ôÌÅ=?ôÞŒxgöc*îWÚcâÅgÄ??D‹3JdeŽŒÎCëõ]ÁYë[h½¾+WÒn¶Ñî rèÍ`Ì+î�õ˜èæC´8£DVæÈxOZ¯ï Þ&ÏBëõ]�¸°×Ρ¸_i#^ö•ÿ!ZœQ"+sdÌ ­×w6Ö·Ðz}W Kð5÷ã¢Å%²2GÆ;Z¯ï f[¹¡õú®@Óëæ…‡¦y‡&Ã|×Uܯô‹$LâÜocèYyhý剔÷뻂CÛóÐúË©ï×w¢¥°­PB°ýCÏúh ­¿<Áý~}W Z Ûòs|¶}ã·…‡ÖŸÌìï×wõäƒÙà¡õSë‹}?8ï×÷•R'ù±r(ûÊz·Ø'jz¦åG<Í×¾sëõ}YßÖI~¬ʾ²Þ±õ{'?âá´îG<œÂÄÈâë¤wl=ÁÞÉ�x8š¯}7ŽŠûE‹3‘9‡(̽dЭ×wÜÖÙÐz}W Û‹}\‡(̽dPÊCëõ]Ál«´^ßhšôœE *î—m’ù8DÁaa®WȘUZ¯ï ¸“6Ðz}W  s½BÔ=ÎQpX˜ë2&ÏCëõ]�M2Z¯ï Œ)#±×õ‡(2ëÊxÇCëõ]AŠÕZ¯ï DÏÞ±fî!ª‰~`Vܯôæfñ‘Í͇Òã½þœ%ÄÝ!ãŒxh½¾+°°rCëõ]�èÙXëÆ!.y£â~¥'ï”'GÌ\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`' +; 'abcdefghijklmnopqrstuvwxyz{|}~' to asciitbl * erase store t to badrv store t to badusr store t to badstr do while badusr .or. badstr .  or. badrv @ 1,0 say 'dBASEII Directory display' @ 3,0 say 'Enter User number to use (0-15) ===>'; get userno; picture '99' @ 5,0 say 'Enter the Disk Drive to search' @ 6,0 say ' A: or B:  @ 23,0 say 'ERROR - search string not appropriate ' else store f to badstr @ 23,0 say ' ' endif findme * enddo badusr/badstr * * take the '.' out of the search str ===>'; get drive1; picture '!' @ 8,0 say 'Enter type of search to do' @ 9,0 say ' ie. ????????.??? will display entire directory' @ 10,0 say ' ????????.CMD will display all files with' @ing * store $(findme,1,dotpos-1)+$(findme,dotpos+1,len(findme)-dotpos); to stringin * * convert ascii to decimal (value returned in "stringout") * do asciidec * * poke the function (01h = show dir) * poke addrfunc,1 * *  11,0 say ' CMD as a file type' @ 13,0 say ' Enter search string ===>'; get findme; picture '!!!!!!!!!!!!' * read * if userno < 0 .or.; userno > 15 store t to  poke in search string to memory * poke addrsearch,&stringout * * convert the user number 0-15 to 0-F * store $(hextbl,userno+1,1) to stringin * * convert ascii to decimal * do asciidec * * now make the user number hbadusr @ 22,0 say 'ERROR - the user number must be from 0 to 15' else store f to badusr @ 22,0 endif userno * * if drive1 = 'A' .or.; drive1 = 'B' store f to badrv @ 21,0 say ' ex 0-F binary * store val(stringout)-48 to num1 store str(num1,2) to stringout * * poke in the user number * * poke addrusr,&stringout * * convert ascii to decimal * store drive1 to stringin * do asciidec * *  ' else store t to badrv @ 21,0 say 'ERROR - the selected drive must be A: or B:' endif drive1 * * store @('.',findme) to dotpos * if dotpos = 0 store t to badstr  now make drive 0-F binary * store val(stringout)-64 to num1 store str(num1,2) to stringout * * poke the drive to memory * poke addrdrv,&stringout * * set up the call address to the assembler routine that *    has been pre-loaded into high memory at addrdir * set call to addrdir store 'dummy' to adress * * do the call * erase call return åå!¤*í°!¥Sí°Ã¥ååå???????????end of storage used by dbdir  ísB§1A§õÅÕå:¤þÊ¥þÊ*¥Ãåͦ‰¦Íö¥ÍÃÌ¥;¦Íö¥íC7¦Íü¥ÍR¥Í¦Êº¥Íd¥Í&¦ÊÌ¥Íd¥ÃF¥: ¤2\!¤] í°É:7¦þÌ¥¥<27¦!�íK:¦  Í“¥Ͱ¥ÍŸ¥Ͱ¥Í™¥É ÍÛ¥É|ÍÛ¥É.ÍÛ¥Éþ¦Íö¥¯27¦É^ÍÛ¥# Èð¥s¦Íö¥ÃÌ¥ª¦Íö¥ÃÌ¥áÑÁñí{B§ÉÍÉõÅÕåÍáÑÁñÉÿÍþÊé¥É ÍÉ€ the memory space from A400 hex to the top of your TPA (on mine it is E400 hex, on a 64K system). The following files are required: - dbdir.cmd - asciidec.cmd - dbdir.asm The .asm file is Z80 code which was assembled using M80/L80, and doesÍÉ: ¤_ ÍÉͦ\Íõ‡‡‡‡‡2:¦ñ<ÉÍõ‡‡‡‡‡2:¦ñ<É dBASEII directory routine Version 1.3 01-20-83 $++ Entry not found ++$ User number has been altered $++ Invalid function passed ++ $ Press any key to continue $  a not very efficient method of getting the directory entries, but it works. Hope this helps explain a not too well documented command in dBASE. Any comments concerning these routines can be left on this BBS, and if you make any wonderous enhancement$+after old stackÍ Press any key to continue $ found ++$ User number has been altered $++ Invalid function passed ++ $ Press any key to continue $ s, and would like to share them, please leave them on this BBS also. Mike Kelly 02/25/83 d command in dBASE. Any comments concerning these routines can be left on this BBS, and if you make any wonderous enhancementåå The DBDIR routines demonstrate how to call an assembler subroutine from dBASEII. There are a number of restrictions! Briefly, you can load an assembler routine above location A400 hex, as long as you don't do any sorts!!!!! You have available to youå  åove the cursor to the second field), you are dumped out of the Insert mode only to find that the record count in your database has been incremented by one. Further inspection reveals, however, that the 'plus one' count is the result of two events; (1) åthe record following the intended insertion point has been triplicated, and (2) the next record has been deleted. And evidently, not by a "*" but 'all gone'. ------- Goof Hint ------- by Charlie for Charlie I was going to update a members i ----- INSERT HINT ----------- donated by Charlie from Orange Bytes Newsletter A bug has been detected useing the Insert command. It can result in the loss of data record if a carriage return is issued at the wrong time. (Tate knows anformation in my Name/Address database when I accidently entered a CONTROL CHARACTER UNKNOW into my file and it got written to the DataBase. I had 272 records in my DBF file but after that goof I got a OUT OF RANGE error after 24 records. After two loubout it but no solution yet.) So they are recommending that you do not use INSERT and INSERT BEFORE. Case in point, C.J.Thompson wrote that if you have issued the Insert command, after indexing to some intermediate record in your database, you are psy hours of research and trial/error I finally got it back on track. In my efforts, I learned a lot about things I really have no need for but what can I say, maybe some day. Anyhow, nothing worked, either in the DBF or NDX until (1) I added a new recresented with the standard data input screen with the cursor in the first position of the first field. If you enter data at this point, everything seems to work as advertised. But if you should happen to enter a carriage return (thinking perhaps, to mord (2) erased the NDX and then (3) INDEX again. It seems to be O.K. now. The error evidently changed the total record stored somewhere (I never found out where) but the 272 records was always in the DBF file. ---- Local hint (from Dave)-- When you   use GET and the 1st field is a numeric it'll probably crash, if character it's O.K. (at least for him it did) Safety hint-- After working on your DBF file and you want to use PACK. Be sure to exit first ,to force a write to disk, then re-enter to ådo your PACK operation. Some locals have lost their data otherwise, but why hasn't been pin-pointed yet. FINI for now  After working on your DBF file and you want to use PACK. Be sure to exit first ,to force a write to disk, then re-enter to ååååSET TALK OFF ERASE SET INTENSITY OFF STORE " " TO FDESC STORE " " TO FNAME @ 7,20 SAY "FILE DESCRIPTION" @ 9,20 SAY "FILE NAME" @ 7,37 GET FDESC @ 9,37 GET FNAME READ USE &FNAME COPY STRUCTURE EXTENDED TO FORM USE FåORM SET FORMAT TO PRINT STORE 2 TO CNTR ********** Next command causes expanded print on Okidata printer @ CNTR,0 SAY CHR(31) @ CNTR + 2,9 SAY "DBASE FILE LAYOUT FORM" @ CNTR + 7,4 SAY "FILE NAME:" @ CNTR + 7,15 SAY FDESC @ CNTR + 9,4 SAY "INT.   NAME:" @ CNTR + 9,15 SAY FNAME @ CNTR + 14,4 SAY "|==============================|" @ CNTR + 15,4 SAY "| FLD | NAME |TYP|WIDTH|DEC|" @ CNTR + 16,4 SAY "|==============================|" @ CNTR + 17,4 SAY "| | | | | |" STORE 2å0 TO CNTR STORE 1 TO FLD DO WHILE .NOT. EOF STORE STR(FLD,3) TO FLDS STORE STR(FIELD:LEN,3) TO LEN STORE STR(FIELD:DEC,3) TO DEC @ CNTR,4 SAY "| " + FLDS + " |" + FIELD:NAME + "| " + FIELD:TYPE + " | " + LEN + " |" + DEC + "|" STORE FLD + 1 TO FIELD:NAMEC ÑlFIELD:TYPECÛlFIELD:LENNÜlFIELD:DECNßl FLD SKIP IF EOF @ CNTR+1,4 SAY "| | | | | |" ELSE @ CNTR+1,4 SAY "|-----|----------|---|-----|---|" STORE CNTR + 2 TO CNTR ENDIF ENDDO @ CNTR + 2,4 SAY "|==============================|" ********** Next command switches Okidata printer back to normal print @ CNTR + 3,0 SAY CHR(30) EJECT SET FORMAT TO SCREEN RETURN --|" STORE CNTR + 2 TO CNTR ENDIF ENDDO @ CNTR + 2,4 SAY "|==============================|" ********** Next command s FIELD:NAMEC010000 FIELD:TYPEC001000 FIELD:LEN N003000 FIELD:DEC N003000¸¹òÆÌ:Æ:²€ÌÊ9¤ Æ€ºצ:²€ÌÊ9¤ ÍÍÆ€ºÍÆ:¦SYSTEM.SWAPDISK×&ÍÆ:ª(¶7ÆŸÍÆ,¦*SYSTEM.WRK.CODE[*]ת¶“¡ô¶צTo what codefile? ͶÆ(ͶÍÎ Æצ·¡åOƾ¶¢,ºÃ¡¹ò¹<צ$ÆÍÌ8Ê8Å¡ÆÊ8ÍÆÆ(Ê8ÍÆÏ¡¹XÆÍ+Æ,ƪ¶Æ,ŸÍž"Ë¡ ¶¦ Can't open ×ͶÆ,͹¸   ..ͶÍž¶©…Íž¶¦CP/M boot error -- ×ÍžØ8‹¡ö¶צVolume Íž¶¥&Íž¶צ  åd matrix may be used for documentation purposes. The command uses the expanded print feature of the Okidata printer. Two documented lines in the command file should be modified for your printer's expanded print feature or removed if your printer doåesn't have the expanded print feature. ocumented lines in the command file should be modified for your printer's expanded print feature or removed if your printer doåååå dBASE Form Command Computer Systems Design (408) 370-0123 The dBASE FORM command will print the field name, type, width and dec information about a dBASE file. This neatly printeå  å read * if start = 'XXXX' return endif start * @ 3,0 say 'Enter the ending address to display (in hex 0-F) ===>'; get end; picture '!!!!' * read * store $(startå,1,1) to start1 store $(start,2,1) to start2 store $(start,3,1) to start3 store $(start,4,1) to start4 * store $(end,1,1) to end1 store $(end,2,1) to end2 store $(end,3,1) to end3 store * * showmem.cmd * * This command module is used to display memory * on the console. Only printable characters show, * non-printable characters are shown as a period. * Memory is d$(end,4,1) to end4 * store @(start1,hextable) to st1 store @(start2,hextable) to st2 store @(start3,hextable) to st3 store @(start4,hextable) to st4 * store @(end1,hextable) to en1 store @(enisplayed in 64-byte chunks. * set echo off set talk off set bell off erase * * display memory * store '0123456789ABCDEF' to hextable store ' ' to line store ' ' to start store ' ' to end store t to reading do while reading erd2,hextable) to en2 store @(end3,hextable) to en3 store @(end4,hextable) to en4 * if st1 = 0 .or.; st2 = 0 .or.; st3 = 0 .or.; st4 = 0 .or.; en1 = 0 .or.; ase store t to badans do while badans @ 1,0 say ' To exit this function enter XXXX ' @ 2,0 say 'Enter the starting address to display (in hex 0-F) ===>'; get start; picture '!!!!' *  en2 = 0 .or.; en3 = 0 .or.; en4 = 0 store t to badans @ 23,0 say 'ERROR - use only 0-F to enter the address' else store f to badans @ 23,0 say '    ' endif st1/en1 * enddo badans * store (st1-1)*(16*16*16) to saddr1 store (st2-1)*(16*16) to saddr2 store (st3-1)*(16) to saddr3 store (st4-1) to saddr4 * store saddr1 + saddr2 on * enddo reading  store line + byte to line store cnt + 1 to cnt enddo line * ? '===>' + $(li+ saddr3 + saddr4 to saddr * store (en1-1)*(16*16*16) to eaddr1 store (en2-1)*(16*16) to eaddr2 store (en3-1)*(16) to eaddr3 store (en4-1) to eaddr4 * store eaddr1 + eaddr2 + eaddr3 + eaddr4 to eaddr * ene,2,64) +rase ? 'Displaying from &start hex to &end hex' ? ' Press escape to interrupt' ? ' ' store 0 to cnt store ' ' to line do while cnt < (eaddr - saddr) do while len(line) < 65 store chr(peek(saddr+cnt)) to byte if byte < ' ' .or.; byte > '~' store '.' to byte endif byte * store line + byte to line store cnt + 1 to cnt enddo line * ? '===>' + $(li showmem.cmd * * This command module is used to display memory * on the console. Only printable characters show, * non-printable characters are shown as a period. * Memory is dne,2,64) + '<===' store ' ' to line enddo cnt * store ' ' to ans set intensity off set colon off ? ' ' ? ' ' ? 'Press any key to continue' @ 0,0 get ans * read * set intensity on set colonisplayed in 64-byte chunks. * set echo off set talk off set bell off erase * * display memory * store '0123456789ABCDEF' to hextable store ' ' to line store ' ' to start store ' ' to end store t to reading do while reading er  e n characters nD Delete n characters E End edit and save changes; don't type rest of line Hstr Delete rest of line and insert string Istr Insert string at current pos nKc Kill all chars up to the nth occurrance of c L adr for nth assembly routine DEFINT range(s) of letters Define default var type INTeger DEFSNG " " " " " " " Single DEFDBL " " " " " " " Double  Print the rest of the line and go to the start of the line Q Quit edit and restore original line nSc Search for nth occurrance of c Xstr Goto the end of the line and insert string Backspace over chars; in insert mod* * showmem.cmd * * This command module is used to display memory * on the console. Only printable characters show, * non-printable characters are shown as a period. * Memory is de, delete chars End edit and save changes :Program Statements (except I/O) Statement Syntax Function CALL CALL variable [(arg list)] Call assembly or FORTRAN routine CHAIN CHAIN [MERGE] filename [,[line expisplayed in 64-byte chunks. * This too, was taken from some past issue of Dr. Dobbs. 02/20/83 Mike Kelly . Only printable characters show, * non-printable characters are shown as a period. * Memory is d][,ALL][,DELETE range]] Call a program and pass variables to it; MERGE with ASCII files allows overlays; start at line exp if given; ALL means all variables will be passed (otherwise COMMON only); DELETEne number Branch to specified line IF/GOTO IF exp GOTO line [ELSE stmt ... ] IF exp <> 0 then GOTO IF/THEN IF exp THEN stmt[:stmt] [ELSE stmt ... ] IF exp  allows deletion of an overlay before CHAIN is executed COMMON COMMON list of vars Pass vars to a CHAINed prog DEF DEF FNx[(arg list)]=exp Arith or String Function DEF USRn=address Define <> 0 then ... else ... LET [LET] var=exp Assignment MID$ MID$(string,n[,m])=string2 Replace a portion of string with string2; start at pos n for m chars NEXT NEXT var[,var   ... ] End FOR ON ERROR ON ERROR GOTO line Error trap subroutine GOTO ON/GOSUB ON exp GOSUB line[,line] Computed GOSUB ON/GOTO ON exp GOTO line[,line] Computed GOTO Statement Syntax FunºÿD¬ÿFGÛÿùÿËÿHIJKNMOL²ÿ«ÿ½ÿøÿ¯ÿÜÿQÉÿSRWTUV©ÿP­ÿªÿ÷ÿ³ÿ¼ÿïÿÆÿôÿ¨ÿ¦ÿ®ÿåÿ°ÿæÿ´ÿÐÿ·ÿêÿÿþ¸ÿƒÿ¹ÿÀÿ»ÿýóˆÚÈ+w¤kò(ñÎÂA8üOxÒÁÊ£ó4I“j NR¾ õƒ5ñß“³œpø,7¯‹À[�FºÌë]±®´hßÔz˜pø,ço*·Z�„ ¡µöníG­†}®oœH¾<&€k²pøŒ ˜ž�°žVkL8‡wòÂ�:0yI»·‰“�‡,ªjI8‡wòÂction OPTION OPTION BASE n Min val for subscripts (n=0,1) BASE OUT OUT port,byte Output byte to port POKE POKE address,byte Memory put RANDOMIZE RANDOMIZE [exp] Reseed random nu�’Âä%íÞ&NvúÁŒC …Ã;ya`;0yI»·‰“‰Ÿ±×J“µÞ®w`ëa=¯]#Þz̳­Ž[ü®˜pø,9,5Õ>FéÝ,õ(Åâ{5lšº^ˆ­Ž[ü®ØäžðŸåð¶´ô²­€.+=iŠöè}ëâ»­†ºçYL¡…Ãg9½=jí:v«¥GÂÞ‹Ž½Zér[�¡=NµÕz˜pø,¿ÛÖz̳­Ž[ü®˜Û£ÖˆËJ±ÒZkcÛ„Ãg¹Ý,õ@PÔ°çug[56Y8¼3 0¤L^ÒîmâdÒŸ˜c¤¨a¯ ”&k½=ûÉ+½©÷˜ZëmáðY®X5¯ mber generator REM REM any text Remark -- comment RESTORE RESTORE [line] Reset DATA pointer RESUME RESUME or RESUME 0 Return from ON ERROR GOTO RESUME NEXT Return to st9¨?úÉ+½©ïÙzÐÒë¥É& ‡Ïrlæ‘а×J“µÞˆ]L[}‚ä•Þ4Y8‡Ï·0H^éMdáðag9Ç9zËUm5(¶:�ønK8|FØYÎ!½e—ãBé2¯wÅ„Ã;DR&/ìÎrÛÄɰ?¢a›m ½«wSˆYê“VK#n¥ij¤e®#6Y8‡Â­wõÕÇÑÕÓïî^ñô»[ï�‰î¼”ªðGëÝGý²ü‘6êZBá�Ö»�ú•&óI]¤ëžg1uç¥gþh½û¨_–?ÎUÔ�—–yxsç¥xÕ�—úUOá�Ö»�úéTÝ“&Œ››®ž$tmt after error line RESUME line Return to specified line RETURN RETURN Return from subroutine STOP STOP Stop prog and print BREAK msg WAIT WAIT prot,mask[,select] ýI…?Zï>êŸ y¥7¹Å”å–ãB�.wx‚ä…?Zï>êï÷˜š Š-”/Qá òØâyLx‚ õ‘0Éù&úÿÊÿ?¶ÿÌÿAÂÿC@EB­à ü‡‰ÉÓ¤œPŸ y¥7µµ–¶¤+Öó¥I…-i¡ù­m+x"ìÿ°ÇÔJ϶ºÜ¥†�t™×»bmIWL8|Fš&_Z!7†´³ÜyWƒb«ˆï¶„Ãg„¡³I„ C„Ý}ÞÕgrOm¨t{¶E/B Ï#j…æ·¶­àI�ÿ�ç¾gWš¬´ÞžMÚ7õèyDMé*æµÛ¶‚'�äÈsß³‹y½«4M�t™×»b­køa�Ç·mOtœC÷QLïܶ¼ãì8Ç8—YÇ-~W¬Ç~·­q"ùò˜¬†;Î3œ,w@ ã^ïÀoÛ Þq8ÎñêØ£Ä'÷º@i²  >l™ðæÛ¶‚w†“åŽÿpϳ˜¶Þˆ­·G­]ÇnµôHØYdáÏCo�EÇ^­á ü£XT¸ÿ®èëË0·¿ ©ðW|¨ÍÔ_�ÚÂAø+þQ]ÝÁ9%vù? ÄÕ÷윧-á¯ø»w¡6S¤ëžg1…þpϳ˜6Mzé2¯wÅÚ’®˜ðWüÝuœCøâÕݽðWüÝ»N–Û�ÿà/HÚ÷l"Q8¿µþf:/-óðö�M\8ïŠíyѤ}϶á�¶¤+&ü÷®“åòÂïG­¿™ÎKÏ$ü~Ôú›é¼¯ Åß½ëd9؇ðûQëo¦óÒ3 ¿µþf:/�5á_¦ÂAx^Zæá�,üß\xÃ…ß�Z3õ7] Â¿L…ƒð¼4:ÔÈÂ_ñÍ…o!¸¢zEº>˼­‡uün›pî'™3-:–þ=,5 ˆÏ­·õ°N©±ŽßmÃöM8<Éü¶¡êç¸pî¿+ú¸�bzçÿ0íí±èØ«•>l™p.J$9Kûž½={µ"„O�¼Ò›ÈÂ�û;Äã³\8AòJoê=¦&>‹Úé-»˜6(¶„Ãg‘C{Ë.Ç…4Òe^ïŠ Ÿ4aÜÈÝÂ�ûÃ'M6‰ðÿ€t™×»bmIW¬õv½7¢Ï»„A±•.YøqÇ9>ËPluñÝ–0.ºmdáÇýçø,pÑmk½]l,“€A~Ün ûž]ô®µŰ÷XðûQëo¦þ¦ Tø—©pž—âU²ðW|sá“áÂïG­¿™ú›.Pá_¦ÂAx^êW=É-üÍÝLýª§ðûQëo¦åîßÜõã³\˜�v~[·iê|Âýj3õ$…vÇÈoëöÚþ‚¤Â¿L…ƒð¼ôLäná¯øæBú³\ˆšöhŒ%ü~Ôú›©¿éýó¢I›ªðÓäÿ¨ŸåÂ|iÒÖÛÉ6ÚþKøÑüûÏrÍ·¿ ©ð/ÓÏÿY.,S°RÓ³ñ&~’ù7Óy険ÿC½wn¥µñ&ÂéTÉ� ÅGs7Ótõ¼ ¡ðûQëo¦å~’ù7SK(„÷�'ãŽtÁ…ƒðI%’;“ÏrÁö={{,:öjE8áþ»¢�{½…ƒp.:–’…¿âCm¦·bÑá# Ý2ÿ‡2¶­=XË’vÑá#z¾4©-á¯Ø_fw3-:|Äw6q¡˜vÑá#z¾4©­ÖÛñX>B8ÿ Êñs�|– el[ëa ¹«¢ðÏ ¿{áŸA9MøgPŽ?ªpþŠ?\¨ÍôÉ+½ ú?DMûÉ+½IøýüŽs|– [:ÎÑzXêbÚ Ø~’ùó»›i1e ¿Ÿß!Ÿå–ñh=,u9.¤‘.ózWLøIæÏïn¦å¸¤KøIæßL÷�'Hþ?ìûÉ+Hž,üÍÝL÷�{LMøý¨õ7Ór� ?Éü›©%–�,üó�ÿ¨Ÿå ´õ°†ÜU±÷á#z”Ž]ÐÂ?ßùÑ>Ë…>/HØT…¾óï^øç;ÿ\ Â_ñËìBm¦·bÑá# ÿÞ¤}Þ5m=¬‹!Ü¿L?# ËÔítµIæÖÛŽpÂA8û›h" wFÐWì~ï;‹,ü~Ôú;Þ"üËTØßt�’…åø¹@„åøÝ ÿ ÊñhÂ?ƒrüQ…;›èWì÷.ig ¿µþŽ·ÿ|ç?ªðÏw~4áŸïü»þùÎ?ˆð/Sa¤‹&²ðW|ïFRø+¾¹ÎyÂゥçQŠa áb Ê" ¿µþf Š-á¯Ø�æn¦ ¬x‰ ¿µþfZ.Pá÷£Ößñá'™3µ„ÂA¸‚t‘…¿â£¹›)Ò/Ñÿ0/š´ �¦›:^¢ÂïG­¿™– Tø+þî]'#<þMTÛ_�Tø+>Ôfê/H íî^8¿µþfZL1>þC1mŒ�ÖÛqõ=[wpBåuhá÷£ÖßL÷Ч߅ß�Z3-Ëç*ú¢¦M,Ú–tÅ„ŸdþüîfšîAµû?l™ßM·-éŠõyABáÎz?jýÍt^Jµ…ë½3‘,ü~Ôú›iYþHýQÓNSb[Ò~’ùó»›G­¿ã-Âïçwœ£?Ë…-çp[Kí�±:]íecÂO2~w3Eºhú ¡µ6d$m½ Tû¼«© ÿ2.(Y¸³‰~Å~ïNBg“>@U뢋¦hëmS¹Õ„ß�ZÇ[„™ ábŠñAþŠï]â8>Ë…bÚ=Wëí¼Î!üÍÕœÂïG­¿ã-¿L…A±EîŒPø+þp¡6SPl¥ ýŠiƒb«ˆï¶„¿â›;„¿â{—Ô9„ß�ZÇ[„™ á²üq®¢äÏÞ.6–?ú¤«¨ðûQëo¦ Øú,FU[ Š­Î³pþŠï]"ñø,v¼¥‹�å�©%ìþ[æwG­�7™ðûQëo¦óRªŸå¼hÒÖÃÚ’®˜ð“Ì¿™Ö{gâg¹Pï�[im¼É„ƒð^ñô;Yø+þp¡6S\tÛ ÿCÔ´qÑmë=¦&üJO¿C»£³ÈÿaÚ4õéwá üÿ¨îfzÒ„qûÅÒí�¸ªØXþ袋¦(´ðW|4WO¿O‰�þ‡eÞè6MшKø+þî]'ËíÇð$í{6‘(üéúŒ0àíøÝ6á_¦ÂAx^J•,ü¸P›©¿ )ôð‡ùˆ>.¤ã#ÅÚ’.j¥�±mÂïçîwŸåBÏ‹&5„¹©Æš@϶ºÒdÂïG­Ÿß&þŠ�æêé÷Ïr­!T�ˆ«ïÙ§ß…ß�ZÇ[„åø¹@>Ë…2¶­óõ²(-j«GÂÎßgQáˆ?ÜñY. $E;_ëí¨ißó,¦­Wøâw|– ­‡õyA¶¤+&üñ‡;„ þp‡ðÄîþе™"]÷<‹)´;þCÛÖzXßó,¦Â?ßùçù,¢¦­‡õ]4JÓ¨½=*°¾gç~šü�ÏrAo£©ymç<á_¦ÂA¸,¤�’?# x»ØXþèdŸEÝZkßTc]L»,Ø=û¬#*>‹:ËAK}Œmk˜�0ìQkƒb«Å÷.  ‘ô~?jýoþ”ãçù,ÊØ¶Î×Ë¢´¨­ ;ŸuD… þpÇg¹0�í|­·£¦}ϳ˜¶^áˆ?ÜñY.´Öç Û’®˜ðÄîþ�øÃÂ?¸Cø+>ÔfŠtÝó,¦Ðîøel[ëa}ϳ˜ ÿ|çŸ ä³\ˆš¶ÖwÑ(M£öö¨Àúž�Oøiò?>˽�¦æµ�ó<„™¾pÂA8üoÑXtìÕŠpö$% ?îï8‡ë8‡p¥É|R²ðãþŽs|– þ‚¤}ÏÎsß³+MVz^4©¡ðg‘CÓDµ‡6iŸwõaiŠ #]÷<‹)YøqÇ9> exp >0 or omitted returns new random number Function Action SGN(exp) 1 if exp >0 0 if exp =0 -1 if exp <0 SIN(exp) Sine of the expression (in radians) SQR(exp) Square root of eË…{žÅ´iÒÛH—y½+Ö–tÅ„Ãg‘C/S°’aï±Þñ–.6–?\áðYäÐ4ùeqKjØ{¬a“º›ÉÂá³È¡ËqAÅÞ­I ÂHW¼DÉÂ�ûûåÖSøq8N$_À‚ÕH—y½+Öë¥ÉàÂ�ûûåÖSøqøÙ*ô¦&N†ÝYd¸ðãþp‡CêÀä… ~Üß/·žÂ�ûÃ#… §«ç ÉÂ�MôqøtÚ$]±NWû¼ aO§páÇýá‘Â…AYñ% ?îï—[OáÇýá“\luñÝV£ôn–zTµe~Üß/·žÂ�ûÃ#… ï÷˜YøqøtÚ°xpression TAN(exp) Tangent of the expression (in radians) :String Functions Function Action ASC(str) Returns ASCII value of first char in string CHR$(exp) Returns a 1-char string whose char has ASCII code of exp FRE(str) Òö¨ûÉ+½©çQŠaO§páÇýýrë)ü¸?'+$(s,2,lenofs)+'<===' * * blank the fcb poke fcb1,32,32,32,32,32,32,32,32,32,32,32,0,0,0,0,0 * store 0 to count store ' ' to s * string store pointer + 1 to pointer * ? 'srchchar=',srchchar * ? 'position=',position * wait enddo pointer * * take off last comma * store len(dstring) to leng store $(dstring,1,leng-1) to dstring do while count<12 store s+chr(peek(fcb1+count)) to s store count+1 to count enddo count @ 12,0 say 'fcb after poke ===>'+'&s'+'<===' * * get parameters for called pgm * *store 'abc def **' to param store ' * * poke the fcb * store 5*(16)+13 to fcb1 poke fcb1,&dstring * store 0 to count store ' ' to s * do while count'+'&s'+'<===' * * set up the call address * store 10*(16*16*16) to ca store ca+(4*(16*16)) to ca set call to ca store 'dummy' to adress * * do the call * * call adress return ' !"#$%&' to tab1a store chr(39) to tab1b store '()' to tab1c store '*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`' to tab2 store 'abcdefghijklmnopqrstuvwxyz{|}~' to tab3 store tab1a + tab1b + tab1c + tab2 + tab3 to table * store 31$  å+tab3 to table * store 31 to base store ' ' to dstring store 0 to pointer * do while pointer prompt, type AREACODE nnn whereå nnn is a three digit area code. DBASE2.TIP describes use of the dBASE II CALL statement, which is not fully documented in all of the Ashton-Tate manuals. DBHINTS.DOC provides additional information about dBASE II. The remaining files illustraåte certain features of dBASE II. ASCIIDEC will convert an ASCII string to a string of decimal equivalents of each character, separated by commas. DBDIR illustrates use of CALL to execute an assembly language routine previously loaded into mem DISK.DOC FOG/MIS.017 First Osborne Group (FOG) Miscellaneous Disk Three 1984 calendars were contributed by Frank Dunaway of the Long Island Osborne Network (LION). CAL.84 is a one page calendar wiory. It will display a disk directory on the screen. ASCIIDEC is used by DBDIR. FORM prints a form describing the structure of a specified database file. POKE1 demonstrates use of POKE and PEEK. SHOWMEM uses PEEK to display specified areas&   of memory. To run these dBASE II programs, place the appropriate program.CMD file in drive B and DBASE.COM in drive A. At the A> prompt, type DBASE At the subsequent dot prompt, type SET DEFAULT TO B DO program where program ) to byte if byte < ' ' .or.; byte > '~' store '.' to byte endif byte * store line + byte to line store cnt + 1 to cnt enddo line * ? '===>' + $(lirepresents the program of interest. Before loading DBASE to run DBDIR.CMD, its corresponding assembly language program must first be loaded into memory. Place DBDIR.COM in drive B. At the A> prompt, type B:DBDIR After this, the procedure ne,2,64) + '<===' store ' ' to line enddo cnt * store ' ' to ans set intensity off set colon off ? ' ' ? ' ' ? 'Press any key to continue' @ 0,0 get ans * read * set intensity on set colondescribed above may be used to load DBASE and DO DBDIR; note that ASCIIDEC.CMD must also be in drive B, since it is used by DBDIR.CMD. Further information about these programs may be found in their corresponding DOC files. Squeezed assembly l on * enddo reading  store line + byte to line store cnt + 1 to cnt enddo line * ? '===>' + $(lianguage AQM files may be unsqueezed using utilities found on FOG/UTL.003, 004, 014, and 031. Jim Woolley FOG Disk Librarian January 1983 ne,2,64) +rase ? 'Displaying from &start hex to &end hex' ? ' Press escape to interrupt' ? ' ' store 0 to cnt store ' ' to line do while cnt < (eaddr - saddr) do while len(line) < 65 store chr(peek(saddr+cnt)'   --> FILE: -FOG/MIS.017 CRC = 00 00 --> FILE: /MIS#017.DOC CRC = 60 73 --> FILE: AREACODE.AQM CRC = 54 C7 --> FILE: AREACODE.COM CRC = 65 C1 --> FILE: ASCIIDEC.CMD CRC = E3 78 --> FILE: CAL .84 CRC = 11 D5 --> FILE: CALå .DOC CRC = 80 2B --> FILE: DBASE2 .TIP CRC = A9 30 --> FILE: DBDIR .AQM CRC = 1C CD --> FILE: DBDIR .CMD CRC = 0E B3 --> FILE: DBDIR .COM CRC = 75 65 --> FILE: DBDIR .DOC CRC = 1E C8 --> FILE: DBHINTS .DOC CRC =å 61 B5 --> FILE: FORM .CMD CRC = 9F 37 --> FILE: FORM .DBF CRC = 9E B3 --> FILE: FORM .DOC CRC = 71 AD --> FILE: LIONCAL .84 CRC = D1 6B --> FILE: PINUPCAL.84 CRC = A2 C1 --> FILE: POKE1 .CMD CRC = 64 FC --> FIåLE: POKE1 .DOC CRC = 78 48 --> FILE: SHOWMEM .CMD CRC = DE A9 --> FILE: SHOWMEM .DOC CRC = 1A 84 ---------------------> SUM OF CRCS = 55 39 ååå