home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS - Coast to Coast / simteldosarchivecoasttocoast2.iso / asmutil / stdlib.zip / STDLIB.A < prev    next >
Text File  |  1991-03-08  |  24KB  |  1,437 lines

  1. ;
  2. ; Interface to standard library routines.
  3. ;
  4. ;
  5. ;
  6. slcall    macro    adrs
  7.     db    9ah            ;Far call opcode
  8.     dd    adrs
  9.     endm
  10. ;------------------------------------------------
  11. ;
  12. ; getc from getc.asm
  13. ;
  14. ; Calling sequence:
  15. ;
  16. ;    getc
  17. ;
  18. ; Returns char read from standard input in AL.
  19. ; Getc-     stdlib standard input (default is GetcRaw).
  20. ; GetcStdIn-    DOS standard input, current mode (raw, cooked; default=cooked).
  21. ; GetcRaw-    DOS standard input, raw mode.
  22. ; GetcBIOS-    BIOS 16h input routine.
  23. ;
  24. getc        macro
  25.         ifndef    sl_getc
  26. stdlib        segment    para public 'slcode'
  27.         extrn    sl_getc:far
  28. stdlib        ends
  29.         endif
  30.         slcall    sl_getc
  31.         endm
  32. ;
  33. ;
  34. ;
  35. GetcStdIn    macro
  36.         ifndef    sl_GetcStdIn
  37. stdlib        segment    para public 'slcode'
  38.         extrn    sl_GetcStdIn:far
  39. stdlib        ends                
  40.         endif
  41.         slcall    sl_GetcStdIn
  42.         endm
  43. ;
  44. ;
  45. ;
  46. ;
  47. GetcBIOS    macro
  48.         ifndef    sl_GetcBIOS
  49. stdlib        segment    para public 'slcode'
  50.         extrn    sl_GetcBIOS:far
  51. stdlib        ends
  52.         endif
  53.         slcall    sl_GetcBIOS
  54.         endm
  55. ;
  56. ;
  57. SetInBIOS    macro
  58.         ifndef    sl_SetInBIOS
  59. stdlib        segment    para public 'slcode'
  60.         extrn    sl_SetInBIOS:far
  61. stdlib        ends
  62.         endif
  63.         slcall    sl_SetInBIOS
  64.         endm
  65. ;
  66. SetInStd    macro
  67.         ifndef    sl_SetInStd
  68. stdlib        segment    para public 'slcode'
  69.         extrn    sl_SetInStd:far
  70. stdlib        ends
  71.         endif
  72.         slcall    sl_SetInStd
  73.         endm
  74. ;
  75. ;
  76. ;
  77. SetInAdrs    macro
  78.         ifndef    sl_SetInAdrs
  79. stdlib        segment    para public 'slcode'
  80.         extrn    sl_SetInAdrs:far
  81. stdlib        ends                
  82.         endif
  83.         slcall    sl_SetInAdrs
  84.         endm
  85. ;
  86. ;
  87. GetInAdrs    macro
  88.         ifndef    sl_GetInAdrs
  89. stdlib        segment    para public 'slcode'
  90.         extrn    sl_GetInAdrs:far
  91. stdlib        ends                
  92.         endif
  93.         slcall    sl_GetInAdrs
  94.         endm
  95. ;
  96. ;
  97. PushInAdrs    macro
  98.         ifndef    sl_PushInAdrs
  99. stdlib        segment    para public 'slcode'
  100.         extrn    sl_PushInAdrs:far
  101. stdlib        ends                
  102.         endif
  103.         slcall    sl_PushInAdrs
  104.         endm
  105. ;
  106. ;
  107. PopInAdrs    macro
  108.         ifndef    sl_PopInAdrs
  109. stdlib        segment    para public 'slcode'
  110.         extrn    sl_PopInAdrs:far
  111. stdlib        ends                
  112.         endif
  113.         slcall    sl_PopInAdrs
  114.         endm
  115. ;
  116. ;
  117. ;------------------------------------------------
  118. ;
  119. ; gets from gets.asm
  120. ;
  121. ; Calling sequence:
  122. ;
  123. ;    gets
  124. ;
  125. ; Reads a string from the standard input (up to EOLN), allocates storage
  126. ; for that string on the heap, and returns a pointer to that string in
  127. ; ES:SI.
  128. ;
  129. ;
  130. gets        macro
  131.         ifndef    sl_gets
  132. stdlib        segment    para public 'slcode'
  133.         extrn    sl_gets:far
  134. stdlib        ends
  135.         endif
  136.         slcall    sl_gets
  137.         endm
  138. ;
  139. ;
  140. atol        macro
  141.         ifndef    sl_atol
  142. stdlib        segment    para public 'slcode'
  143.         extrn    sl_atol:far
  144. stdlib        ends                
  145.         endif
  146.         slcall    sl_atol
  147.         endm
  148. ;
  149. atoul        macro
  150.         ifndef    sl_atoul
  151. stdlib        segment    para public 'slcode'
  152.         extrn    sl_atoul:far
  153. stdlib        ends                
  154.         endif
  155.         slcall    sl_atoul
  156.         endm
  157. ;
  158. ;
  159. ;
  160. atol2        macro
  161.         ifndef    sl_atol2
  162. stdlib        segment    para public 'slcode'
  163.         extrn    sl_atol2:far
  164. stdlib        ends                
  165.         endif
  166.         slcall    sl_atol2
  167.         endm
  168. ;
  169. atoul2        macro
  170.         ifndef    sl_atoul2
  171. stdlib        segment    para public 'slcode'
  172.         extrn    sl_atoul2:far
  173. stdlib        ends                
  174.         endif
  175.         slcall    sl_atoul2
  176.         endm
  177. ;
  178. ;
  179. ; atoi and atou from atoi.asm
  180. ;
  181. atoi        macro
  182.         ifndef    sl_atoi
  183. stdlib        segment    para public 'slcode'
  184.         extrn    sl_atoi:far
  185. stdlib        ends                
  186.         endif
  187.         slcall    sl_atoi
  188.         endm
  189. ;
  190. atou        macro
  191.         ifndef    sl_atou
  192. stdlib        segment    para public 'slcode'
  193.         extrn    sl_atou:far
  194. stdlib        ends                
  195.         endif
  196.         slcall    sl_atou
  197.         endm
  198. ;
  199. ;
  200. atoi2        macro
  201.         ifndef    sl_atoi2
  202. stdlib        segment    para public 'slcode'
  203.         extrn    sl_atoi2:far
  204. stdlib        ends                
  205.         endif
  206.         slcall    sl_atoi2
  207.         endm
  208. ;
  209. atou2        macro
  210.         ifndef    sl_atou2
  211. stdlib        segment    para public 'slcode'
  212.         extrn    sl_atou2:far
  213. stdlib        ends                
  214.         endif
  215.         slcall    sl_atou2
  216.         endm
  217. ;
  218. ;
  219. ; atoh/2 and atolh/2 from atoh.asm
  220. ;
  221. atoh        macro
  222.         ifndef    sl_atoh
  223. stdlib        segment    para public 'slcode'
  224.         extrn    sl_atoh:far
  225. stdlib        ends                
  226.         endif
  227.         slcall    sl_atoh
  228.         endm
  229. ;
  230. ;
  231. atolh        macro
  232.         ifndef    sl_atolh
  233. stdlib        segment    para public 'slcode'
  234.         extrn    sl_atolh:far
  235. stdlib        ends                
  236.         endif
  237.         slcall    sl_atolh
  238.         endm
  239. ;
  240. ;
  241. atoh2        macro
  242.         ifndef    sl_atoh2
  243. stdlib        segment    para public 'slcode'
  244.         extrn    sl_atoh2:far
  245. stdlib        ends                
  246.         endif
  247.         slcall    sl_atoh2
  248.         endm
  249. ;
  250. ;
  251. atolh2        macro
  252.         ifndef    sl_atolh2
  253. stdlib        segment    para public 'slcode'
  254.         extrn    sl_atolh2:far
  255. stdlib        ends                
  256.         endif
  257.         slcall    sl_atolh2
  258.         endm
  259. ;
  260. ;
  261. ;------------------------------------------------
  262. ;
  263. ;
  264. ISize        macro
  265.         ifndef    sl_ISize
  266. stdlib        segment    para public 'slcode'
  267.         extrn    sl_ISize:far
  268. stdlib        ends                
  269.         endif
  270.         slcall    sl_Isize
  271.         endm
  272. ;
  273. USize        macro
  274.         ifndef    sl_USize
  275. stdlib        segment    para public 'slcode'
  276.         extrn    sl_USize:far
  277. stdlib        ends                
  278.         endif
  279.         slcall    sl_USize
  280.         endm
  281. ;
  282. ;
  283. ; LSize and ULSize from lsize.asm
  284. ;
  285. LSize        macro
  286.         ifndef    sl_LSize
  287. stdlib        segment    para public 'slcode'
  288.         extrn    sl_LSize:far
  289. stdlib        ends                
  290.         endif
  291.         slcall    sl_Lsize
  292.         endm
  293. ;
  294. ULSize        macro
  295.         ifndef    sl_ULSize
  296. stdlib        segment    para public 'slcode'
  297.         extrn    sl_ULSize:far
  298. stdlib        ends                
  299.         endif
  300.         slcall    sl_ULSize
  301.         endm
  302. ;
  303. ;
  304. ;-----------------------------------------------------------------------
  305. ;
  306. ;
  307. Print        macro
  308.         ifndef    sl_print
  309. stdlib        segment    para public 'slcode'
  310.         extrn    sl_print:far
  311. stdlib        ends                
  312.         endif
  313.         slcall    sl_print
  314.         endm
  315. ;
  316. ;---------------------------------------------------------------------------
  317. ;
  318. ;
  319. Printf        macro
  320.         ifndef    sl_printf
  321. stdlib        segment    para public 'slcode'
  322.         extrn    sl_printf:far
  323. stdlib        ends                
  324.         endif
  325.         slcall    sl_printf
  326.         endm
  327. ;
  328. ;
  329. SPrintf        macro
  330.         ifndef    sl_sprintf
  331. stdlib        segment    para public 'slcode'
  332.         extrn    sl_sprintf:far
  333.         ifndef    sp_BufSize
  334.         extrn    sp_BufSize:word
  335.                 endif
  336. stdlib        ends                
  337.         endif
  338.         slcall    sl_sprintf
  339.         endm
  340. ;
  341. ;
  342. SBPrintf    macro
  343.         ifndef    sl_sbprintf
  344. stdlib        segment    para public 'slcode'
  345.         extrn    sl_sbprintf:far
  346. stdlib        ends                
  347.         endif
  348.         slcall    sl_sbprintf
  349.         endm
  350. ;
  351. ;
  352. ;
  353. Scanf        macro
  354.         ifndef    sl_scanf
  355. stdlib        segment    para public 'slcode'
  356.         extrn    sl_scanf:far
  357. stdlib        ends                
  358.         endif
  359.         slcall    sl_scanf
  360.         endm
  361. ;
  362. SScanf        macro
  363.         ifndef    sl_sscanf
  364. stdlib        segment    para public 'slcode'
  365.         extrn    sl_sscanf:far
  366. stdlib        ends                
  367.         endif
  368.         slcall    sl_sscanf
  369.         endm
  370. ;
  371. ;
  372. ;---------------------------------------------------------------------------
  373. ;
  374. ;
  375. Putc        macro
  376.         ifndef    sl_putc
  377. stdlib        segment    para public 'slcode'
  378.         extrn    sl_putc:far
  379. stdlib        ends                
  380.         endif
  381.         slcall    sl_putc
  382.         endm
  383. ;
  384. ;
  385. Putcr        macro
  386.         ifndef    sl_putcr
  387. stdlib        segment    para public 'slcode'
  388.         extrn    sl_putcr:far
  389. stdlib        ends                
  390.         endif
  391.         slcall    sl_putcr
  392.         endm
  393. ;
  394. ;
  395. ;
  396. PutcStdOut    macro
  397.         ifndef    sl_putcStdOut
  398. stdlib        segment    para public 'slcode'
  399.         extrn    sl_putcStdOut:far
  400. stdlib        ends                
  401.         endif
  402.         slcall    sl_putcStdOut
  403.         endm
  404. ;
  405. ;
  406. ;
  407. PutcBIOS    macro
  408.         ifndef    sl_putcBIOS
  409. stdlib        segment    para public 'slcode'
  410.         extrn    sl_putcBIOS:far
  411. stdlib        ends                
  412.         endif
  413.         slcall    sl_putcBIOS
  414.         endm
  415. ;
  416. ;
  417. ;
  418. SetOutAdrs    macro
  419.         ifndef    sl_SetOutAdrs
  420. stdlib        segment    para public 'slcode'
  421.         extrn    sl_SetOutAdrs:far
  422. stdlib        ends                
  423.         endif
  424.         slcall    sl_SetOutAdrs
  425.         endm
  426. ;
  427. ;
  428. GetOutAdrs    macro
  429.         ifndef    sl_GetOutAdrs
  430. stdlib        segment    para public 'slcode'
  431.         extrn    sl_GetOutAdrs:far
  432. stdlib        ends                
  433.         endif
  434.         slcall    sl_GetOutAdrs
  435.         endm
  436. ;
  437. ;
  438. PushOutAdrs    macro
  439.         ifndef    sl_PushOutAdrs
  440. stdlib        segment    para public 'slcode'
  441.         extrn    sl_PushOutAdrs:far
  442. stdlib        ends                
  443.         endif
  444.         slcall    sl_PushOutAdrs
  445.         endm
  446. ;
  447. ;
  448. PopOutAdrs    macro
  449.         ifndef    sl_PopOutAdrs
  450. stdlib        segment    para public 'slcode'
  451.         extrn    sl_PopOutAdrs:far
  452. stdlib        ends                
  453.         endif
  454.         slcall    sl_PopOutAdrs
  455.         endm
  456. ;
  457. ;
  458. PutISize    macro
  459.         ifndef    sl_putisize
  460. stdlib        segment    para public 'slcode'
  461.         extrn    sl_putisize:far
  462. stdlib        ends                
  463.         endif
  464.         slcall    sl_putisize
  465.         endm
  466. ;
  467. ;
  468. PutUSize    macro
  469.         ifndef    sl_putusize
  470. stdlib        segment    para public 'slcode'
  471.         extrn    sl_putusize:far
  472. stdlib        ends                
  473.         endif
  474.         slcall    sl_putusize
  475.         endm
  476. ;
  477. ;
  478. ;
  479. PutLSize    macro
  480.         ifndef    sl_putlsize
  481. stdlib        segment    para public 'slcode'
  482.         extrn    sl_putlsize:far
  483. stdlib        ends                
  484.         endif
  485.         slcall    sl_putlsize
  486.         endm
  487. ;
  488. ;
  489. PutULSize    macro
  490.         ifndef    sl_putulsize
  491. stdlib        segment    para public 'slcode'
  492.         extrn    sl_putulsize:far
  493. stdlib        ends                
  494.         endif
  495.         slcall    sl_putulsize
  496.         endm
  497. ;
  498. ;
  499. ;---------------------------------------------------------------------------
  500. ;
  501. ;
  502. Puts        macro
  503.         ifndef    sl_puts
  504. stdlib        segment    para public 'slcode'
  505.         extrn    sl_puts:far
  506. stdlib        ends                
  507.         endif
  508.         slcall    sl_puts
  509.         endm
  510. ;
  511. ;
  512. ;----------------------------------------------------------------------------
  513. ;
  514. ;
  515. Puth        macro
  516.         ifndef    sl_puth
  517. stdlib        segment    para public 'slcode'
  518.         extrn    sl_puth:far
  519. stdlib        ends                
  520.         endif
  521.         slcall    sl_puth
  522.         endm
  523. ;
  524. ;
  525. Putw        macro
  526.         ifndef    sl_putw
  527. stdlib        segment    para public 'slcode'
  528.         extrn    sl_putw:far
  529. stdlib        ends                
  530.         endif
  531.         slcall    sl_putw
  532.         endm
  533. ;
  534. ;---------------------------------------------------------------------------
  535. ;
  536. Puti        macro
  537.         ifndef    sl_puti
  538. stdlib        segment    para public 'slcode'
  539.         extrn    sl_puti:far
  540. stdlib        ends                
  541.         endif
  542.         slcall    sl_puti
  543.         endm
  544. ;
  545. ;
  546. Putu        macro
  547.         ifndef    sl_putu
  548. stdlib        segment    para public 'slcode'
  549.         extrn    sl_putu:far
  550. stdlib        ends                
  551.         endif
  552.         slcall    sl_putu
  553.         endm
  554. ;
  555. ;
  556. ;
  557. Putl        macro
  558.         ifndef    sl_putl
  559. stdlib        segment    para public 'slcode'
  560.         extrn    sl_putl:far
  561. stdlib        ends                
  562.         endif
  563.         slcall    sl_putl
  564.         endm
  565. ;
  566. ;
  567. PutUL        macro
  568.         ifndef    sl_putul
  569. stdlib        segment    para public 'slcode'
  570.         extrn    sl_putul:far
  571. stdlib        ends                
  572.         endif
  573.         slcall    sl_putul
  574.         endm
  575. ;
  576. ;
  577. ;--------------------------------------------------------------------------
  578. ;
  579. ;
  580. itoa        macro
  581.         ifndef    sl_itoa
  582. stdlib        segment    para public 'slcode'
  583.         extrn    sl_itoa:far
  584. stdlib        ends                
  585.         endif
  586.         slcall    sl_itoa
  587.         endm
  588. ;
  589. ;
  590. utoa        macro
  591.         ifndef    sl_utoa
  592. stdlib        segment    para public 'slcode'
  593.         extrn    sl_utoa:far
  594. stdlib        ends                
  595.         endif
  596.         slcall    sl_utoa
  597.         endm
  598. ;
  599. ;
  600. ;
  601. htoa        macro
  602.         ifndef    sl_htoa
  603. stdlib        segment    para public 'slcode'
  604.         extrn    sl_htoa:far
  605. stdlib        ends
  606.         endif
  607.         slcall    sl_htoa
  608.         endm
  609. ;
  610. ;
  611. wtoa        macro
  612.         ifndef    sl_wtoa
  613. stdlib        segment    para public 'slcode'
  614.         extrn    sl_wtoa:far
  615. stdlib        ends
  616.         endif
  617.         slcall    sl_wtoa
  618.         endm
  619. ;
  620. ;
  621. ;
  622. ltoa        macro
  623.         ifndef    sl_ltoa
  624. stdlib        segment    para public 'slcode'
  625.         extrn    sl_ltoa:far
  626. stdlib        ends
  627.         endif
  628.         slcall    sl_ltoa
  629.         endm
  630. ;
  631. ;
  632. ;
  633. ultoa        macro
  634.         ifndef    sl_ultoa
  635. stdlib        segment    para public 'slcode'
  636.         extrn    sl_ultoa:far
  637. stdlib        ends                
  638.         endif
  639.         slcall    sl_ultoa
  640.         endm
  641. ;
  642. ;
  643. ;
  644. MemInit        macro
  645.         ifndef    sl_MemInit
  646. stdlib        segment    para public 'slcode'
  647.         extrn    sl_MemInit:far
  648. stdlib        ends                
  649.         endif
  650.         slcall    sl_MemInit
  651.         endm
  652. ;
  653. ;
  654. ;
  655. malloc        macro
  656.         ifndef    sl_malloc
  657. stdlib        segment    para public 'slcode'
  658.         extrn    sl_malloc:far
  659. stdlib        ends                
  660.         endif
  661.         slcall    sl_malloc
  662.         endm
  663. ;
  664. ;
  665. realloc        macro
  666.         ifndef    sl_realloc
  667. stdlib        segment    para public 'slcode'
  668.         extrn    sl_realloc:far
  669. stdlib        ends                
  670.         endif
  671.         slcall    sl_realloc
  672.         endm
  673. ;
  674. ;
  675. DupPtr        macro
  676.         ifndef    sl_dupptr
  677. stdlib        segment    para public 'slcode'
  678.         extrn    sl_dupptr:far
  679. stdlib        ends                
  680.         endif
  681.         slcall    sl_dupptr
  682.         endm
  683. ;
  684. ;
  685. free        macro
  686.         ifndef    sl_free
  687. stdlib        segment    para public 'slcode'
  688.         extrn    sl_free:far
  689. stdlib        ends                
  690.         endif
  691.         slcall    sl_free
  692.         endm
  693. ;
  694. ;
  695. ;
  696. ;
  697. IsInHeap    macro
  698.         ifndef    sl_IsInHeap
  699. stdlib        segment    para public 'slcode'
  700.         extrn    sl_IsInHeap:far
  701. stdlib        ends                
  702.         endif
  703.         slcall    sl_IsInHeap
  704.         endm
  705. ;
  706. ;
  707. IsPtr        macro
  708.         ifndef    sl_IsPtr
  709. stdlib        segment    para public 'slcode'
  710.         extrn    sl_IsPtr:far
  711. stdlib        ends                
  712.         endif
  713.         slcall    sl_IsPtr
  714.         endm
  715. ;
  716. ;
  717. ;---------------------------------------------------------------------------
  718. ;
  719. IsAlNum        macro
  720.         ifndef    sl_IsAlNum
  721. stdlib        segment    para public 'slcode'
  722.         extrn    sl_IsAlNum:far
  723. stdlib        ends                
  724.         endif
  725.         slcall    sl_IsAlNum
  726.         endm
  727. ;
  728. ;
  729. ; IsxDigit- Checks al to see if it is a hex digit.
  730. ;
  731. IsxDigit    macro
  732.         ifndef    sl_IsxDigit
  733. stdlib        segment    para public 'slcode'
  734.         extrn    sl_IsxDigit:far
  735. stdlib        ends                
  736.         endif
  737.         slcall    sl_IsxDigit
  738.         endm
  739. ;
  740. ;        
  741. ;
  742. ToLower        macro
  743.         local    NoCnvrt
  744.         cmp    al, 'A'
  745.         jb    NoCnvrt
  746.         cmp    al, 'Z'
  747.         ja    NoCnvrt
  748.         or    al, 20h
  749. NoCnvrt:
  750.         endm
  751. ;
  752. ;
  753. ;
  754. ToUpper        macro
  755.         local    NoCnvrt
  756.         cmp    al, 'a'
  757.         jb    NoCnvrt
  758.         cmp    al, 'z'
  759.         ja    NoCnvrt
  760.         and    al, 05fh
  761. NoCnvrt:
  762.         endm
  763. ;
  764. ;
  765. ;
  766. IsDigit        macro
  767.         local    NotDigit, IsDigit
  768.         cmp    al, '0'
  769.         jb    NotDigit         ;Note: this also clears ZF.
  770.         cmp    al, '9'
  771.         ja    NotDigit        ;Also clears ZF.
  772.         cmp    al, al            ;Set Zero flag
  773. NotDigit:
  774.         endm
  775. ;
  776. ;
  777. ;
  778. IsAlpha        macro
  779.         local    IsAl, NotAlpha
  780.         cmp    al, 'A'
  781.         jb    NotAlpha        ;Also clears ZF.
  782.         cmp    al, 'Z'
  783.         jbe    IsAl
  784.         cmp    al, 'a'
  785.         jb    NotAlpha
  786.         cmp    al, 'z'
  787.         ja    NotAlpha
  788. IsAl:        cmp    al, al            ;Set ZF.
  789. NotAlpha:
  790.         endm
  791. ;
  792. ;
  793. IsLower        macro
  794.         local    NotLower
  795.         cmp    al, 'a'
  796.         jb    NotLower
  797.         cmp    al, 'z'
  798.         ja    NotLower
  799.         cmp    al, al            ;Set ZF.
  800. NotLower:
  801.         endm
  802. ;
  803. ;
  804. ; IsUpper-    Checks to see if the character in al is upper case.
  805. ;
  806. IsUpper        macro
  807.         local    NotUpper
  808.         cmp    al, 'A'
  809.         jb    NotUpper
  810.         cmp    al, 'Z'
  811.         ja    NotUpper
  812.         cmp    al, al            ;Set ZF.
  813. NotUpper:
  814.         endm
  815. ;
  816. ;
  817. ;--------------------------------------------------------------------------
  818. ;
  819. ;
  820. strcpy        macro
  821.         ifndef    sl_strcpy
  822. stdlib        segment    para public 'slcode'
  823.         extrn    sl_strcpy:far
  824. stdlib        ends                
  825.         endif
  826.         slcall    sl_strcpy
  827.         endm
  828. ;
  829. ;
  830. ;
  831. ;
  832. strcpyl        macro
  833.         ifndef    sl_strcpyl
  834. stdlib        segment    para public 'slcode'
  835.         extrn    sl_strcpyl:far
  836. stdlib        ends                
  837.         endif
  838.         slcall    sl_strcpyl
  839.         endm
  840. ;
  841. ;
  842. ;
  843. strdup        macro
  844.         ifndef    sl_strdup
  845. stdlib        segment    para public 'slcode'
  846.         extrn    sl_strdup:far
  847. stdlib        ends                
  848.         endif
  849.         slcall    sl_strdup
  850.         endm
  851. ;
  852. ;
  853. ;
  854. strdupl        macro
  855.         ifndef    sl_strdupl
  856. stdlib        segment    para public 'slcode'
  857.         extrn    sl_strdupl:far
  858. stdlib        ends                
  859.         endif
  860.         slcall    sl_strdupl
  861.         endm
  862. ;
  863. ;
  864. strlen        macro
  865.         ifndef    sl_strlen
  866. stdlib        segment    para public 'slcode'
  867.         extrn    sl_strlen:far
  868. stdlib        ends                
  869.         endif
  870.         slcall    sl_strlen
  871.         endm
  872. ;
  873. ;
  874. strcat        macro
  875.         ifndef    sl_strcat
  876. stdlib        segment    para public 'slcode'
  877.         extrn    sl_strcat:far
  878. stdlib        ends                
  879.         endif
  880.         slcall    sl_strcat
  881.         endm
  882. ;
  883. ;
  884. strcatl        macro
  885.         ifndef    sl_strcatl
  886. stdlib        segment    para public 'slcode'
  887.         extrn    sl_strcatl:far
  888. stdlib        ends                
  889.         endif
  890.         slcall    sl_strcatl
  891.         endm
  892. ;
  893. ;
  894. strcat2        macro
  895.         ifndef    sl_strcat2
  896. stdlib        segment    para public 'slcode'
  897.         extrn    sl_strcat2:far
  898. stdlib        ends                
  899.         endif
  900.         slcall    sl_strcat2
  901.         endm
  902. ;
  903. ;
  904. ;
  905. strcat2l    macro
  906.         ifndef    sl_strcat2l
  907. stdlib        segment    para public 'slcode'
  908.         extrn    sl_strcat2l:far
  909. stdlib        ends                
  910.         endif
  911.         slcall    sl_strcat2l
  912.         endm
  913. ;
  914. ;
  915. ;
  916. strchr        macro
  917.         ifndef    sl_strchr
  918. stdlib        segment    para public 'slcode'
  919.         extrn    sl_strchr:far
  920. stdlib        ends                
  921.         endif
  922.         slcall    sl_strchr
  923.         endm
  924. ;
  925. ;
  926. strstr        macro
  927.         ifndef    sl_strstr
  928. stdlib        segment    para public 'slcode'
  929.         extrn    sl_strstr:far
  930. stdlib        ends
  931.         endif
  932.         slcall    sl_strstr
  933.         endm
  934. ;
  935. ;
  936. ;
  937. strstrl        macro
  938.         ifndef    sl_strstrl
  939. stdlib        segment    para public 'slcode'
  940.         extrn    sl_strstrl:far
  941. stdlib        ends
  942.         endif
  943.         slcall    sl_strstrl
  944.         endm
  945. ;
  946. ;
  947. ;
  948. strcmp        macro
  949.         ifndef    sl_strcmp
  950. stdlib        segment    para public 'slcode'
  951.         extrn    sl_strcmp:far
  952. stdlib        ends                
  953.         endif
  954.         slcall    sl_strcmp
  955.         endm
  956. ;
  957. ;
  958. ; stricmp-    As with strcmp above, except it is case insensitive.
  959. ;
  960. stricmp        macro
  961.         ifndef    sl_stricmp
  962. stdlib        segment    para public 'slcode'
  963.         extrn    sl_stricmp:far
  964. stdlib        ends                
  965.         endif
  966.         slcall    sl_stricmp
  967.         endm
  968. ;
  969. ;
  970. stricmpl    macro
  971.         ifndef    sl_stricmpl
  972. stdlib        segment    para public 'slcode'
  973.         extrn    sl_stricmpl:far
  974. stdlib        ends                
  975.         endif
  976.         slcall    sl_stricmpl
  977.         endm
  978. ;
  979. strcmpl        macro
  980.         ifndef    sl_strcmpl
  981. stdlib        segment    para public 'slcode'
  982.         extrn    sl_strcmpl:far
  983. stdlib        ends                
  984.         endif
  985.         slcall    sl_strcmpl
  986.         endm
  987. ;
  988. ;
  989. strupr        macro
  990.         ifndef    sl_strupr
  991. stdlib        segment    para public 'slcode'
  992.         extrn    sl_strupr:far
  993. stdlib        ends                
  994.         endif
  995.         slcall    sl_strupr
  996.         endm
  997. ;
  998. ;
  999. strupr2        macro
  1000.         ifndef    sl_strupr2
  1001. stdlib        segment    para public 'slcode'
  1002.         extrn    sl_strupr2:far
  1003. stdlib        ends                
  1004.         endif
  1005.         slcall    sl_strupr2
  1006.         endm
  1007. ;
  1008. ;
  1009. strlwr        macro
  1010.         ifndef    sl_strlwr
  1011. stdlib        segment    para public 'slcode'
  1012.         extrn    sl_strlwr:far
  1013. stdlib        ends                
  1014.         endif
  1015.         slcall    sl_strlwr
  1016.         endm
  1017. ;
  1018. ;
  1019. strlwr2        macro
  1020.         ifndef    sl_strlwr2
  1021. stdlib        segment    para public 'slcode'
  1022.         extrn    sl_strlwr2:far
  1023. stdlib        ends                
  1024.         endif
  1025.         slcall    sl_strlwr2
  1026.         endm
  1027. ;
  1028. ;
  1029. strset        macro
  1030.         ifndef    sl_strset
  1031. stdlib        segment    para public 'slcode'
  1032.         extrn    sl_strset:far
  1033. stdlib        ends                
  1034.         endif
  1035.         slcall    sl_strset
  1036.         endm
  1037. ;
  1038. ;
  1039. strset2        macro
  1040.         ifndef    sl_strset2
  1041. stdlib        segment    para public 'slcode'
  1042.         extrn    sl_strset2:far
  1043. stdlib        ends                
  1044.         endif
  1045.         slcall    sl_strset2
  1046.         endm
  1047. ;
  1048. ;
  1049. strspan        macro
  1050.         ifndef    sl_strspan
  1051. stdlib        segment    para public 'slcode'
  1052.         extrn    sl_strspan:far
  1053. stdlib        ends                
  1054.         endif
  1055.         slcall    sl_strspan
  1056.         endm
  1057. ;
  1058. ;
  1059. ;
  1060. strspanl    macro
  1061.         ifndef    sl_strspanl
  1062. stdlib        segment    para public 'slcode'
  1063.         extrn    sl_strspanl:far
  1064. stdlib        ends                
  1065.         endif
  1066.         slcall    sl_strspanl
  1067.         endm
  1068. ;
  1069. ;
  1070. ;
  1071. strcspan    macro
  1072.         ifndef    sl_strcspan
  1073. stdlib        segment    para public 'slcode'
  1074.         extrn    sl_strcspan:far
  1075. stdlib        ends                
  1076.         endif
  1077.         slcall    sl_strcspan
  1078.         endm
  1079. ;
  1080. ;
  1081. ;
  1082. strcspanl    macro
  1083.         ifndef    sl_strcspanl
  1084. stdlib        segment    para public 'slcode'
  1085.         extrn    sl_strcspanl:far
  1086. stdlib        ends                
  1087.         endif
  1088.         slcall    sl_strcspanl
  1089.         endm
  1090. ;
  1091. ;
  1092. strins        macro
  1093.         ifndef    sl_strins
  1094. stdlib        segment    para public 'slcode'
  1095.         extrn    sl_strins:far
  1096. stdlib        ends                
  1097.         endif
  1098.         slcall    sl_strins
  1099.         endm
  1100. ;
  1101. strinsl        macro
  1102.         ifndef    sl_strinsl
  1103. stdlib        segment    para public 'slcode'
  1104.         extrn    sl_strinsl:far
  1105. stdlib        ends                
  1106.         endif
  1107.         slcall    sl_strinsl
  1108.         endm
  1109. ;
  1110. ;
  1111. strins2        macro
  1112.         ifndef    sl_strins2
  1113. stdlib        segment    para public 'slcode'
  1114.         extrn    sl_strins2:far
  1115. stdlib        ends                
  1116.         endif
  1117.         slcall    sl_strins2
  1118.         endm
  1119. ;
  1120. strins2l    macro
  1121.         ifndef    sl_strins2l
  1122. stdlib        segment    para public 'slcode'
  1123.         extrn    sl_strins2l:far
  1124. stdlib        ends                
  1125.         endif
  1126.         slcall    sl_strins2l
  1127.         endm
  1128. ;
  1129. strdel        macro
  1130.         ifndef    sl_strdel
  1131. stdlib        segment    para public 'slcode'
  1132.         extrn    sl_strdel:far
  1133. stdlib        ends                
  1134.         endif
  1135.         slcall    sl_strdel
  1136.         endm
  1137. ;
  1138. strdel2        macro
  1139.         ifndef    sl_strdel2
  1140. stdlib        segment    para public 'slcode'
  1141.         extrn    sl_strdel2:far
  1142. stdlib        ends                
  1143.         endif
  1144.         slcall    sl_strdel2
  1145.         endm
  1146. ;
  1147. strrev        macro
  1148.         ifndef    sl_strrev
  1149. stdlib        segment    para public 'slcode'
  1150.         extrn    sl_strrev:far
  1151. stdlib        ends
  1152.         endif
  1153.         slcall    sl_strrev
  1154.         endm
  1155. ;
  1156. strrev2        macro
  1157.         ifndef    sl_strrev2
  1158. stdlib        segment    para public 'slcode'
  1159.         extrn    sl_strrev2:far
  1160. stdlib        ends
  1161.         endif
  1162.         slcall    sl_strrev2
  1163.         endm
  1164. ;
  1165. ;
  1166. ;
  1167. ;
  1168. set        macro    n0,n1,n2,n3,n4,n5,n6,n7
  1169. n0        db    1
  1170. n1        db    2
  1171. n2        db    4
  1172. n3        db    8
  1173. n4        db    10h
  1174. n5        db    20h
  1175. n6        db    40h
  1176. n7        db    80h
  1177.         db    264 dup (0)
  1178.         endm
  1179. ;
  1180. ;
  1181. CreateSets    macro
  1182.         ifndef    sl_CreateSets
  1183. stdlib        segment    para public 'slcode'
  1184.         extrn    sl_CreateSets:far
  1185. stdlib        ends                
  1186.         endif
  1187.         slcall    sl_CreateSets
  1188.         endm
  1189. ;
  1190. ;
  1191. EmptySet    macro
  1192.         ifndef    sl_EmptySet
  1193. stdlib        segment    para public 'slcode'
  1194.         extrn    sl_EmptySet:far
  1195. stdlib        ends                
  1196.         endif
  1197.         slcall    sl_EmptySet
  1198.         endm
  1199. ;
  1200. ;
  1201. RangeSet    macro
  1202.         ifndef    sl_RangeSet
  1203. stdlib        segment    para public 'slcode'
  1204.         extrn    sl_RangeSet:far
  1205. stdlib        ends
  1206.         endif
  1207.         slcall    sl_RangeSet
  1208.         endm
  1209. ;
  1210. ;
  1211. AddStr        macro
  1212.         ifndef    sl_AddStr
  1213. stdlib        segment    para public 'slcode'
  1214.         extrn    sl_AddStr:far
  1215. stdlib        ends
  1216.         endif
  1217.         slcall    sl_AddStr
  1218.         endm
  1219. ;
  1220. ;
  1221. AddStrl        macro
  1222.         ifndef    sl_AddStrl
  1223. stdlib        segment    para public 'slcode'
  1224.         extrn    sl_AddStrl:far
  1225. stdlib        ends
  1226.         endif
  1227.         slcall    sl_AddStrl
  1228.         endm
  1229. ;
  1230. ;
  1231. RmvStr        macro
  1232.         ifndef    sl_RmvStr
  1233. stdlib        segment    para public 'slcode'
  1234.         extrn    sl_RmvStr:far
  1235. stdlib        ends                
  1236.         endif
  1237.         slcall    sl_RmvStr
  1238.         endm
  1239. ;
  1240. ;
  1241. RmvStrl        macro
  1242.         ifndef    sl_RmvStrl
  1243. stdlib        segment    para public 'slcode'
  1244.         extrn    sl_RmvStrl:far
  1245. stdlib        ends                
  1246.         endif
  1247.         slcall    sl_RmvStrl
  1248.         endm
  1249. ;
  1250. ;
  1251. AddChar        macro
  1252.         ifndef    sl_AddChar
  1253. stdlib        segment    para public 'slcode'
  1254.         extrn    sl_AddChar:far
  1255. stdlib        ends                
  1256.         endif
  1257.         slcall    sl_AddChar
  1258.         endm
  1259. ;
  1260. ;
  1261. RmvChar        macro
  1262.         ifndef    sl_RmvChar
  1263. stdlib        segment    para public 'slcode'
  1264.         extrn    sl_RmvChar:far
  1265. stdlib        ends
  1266.         endif
  1267.         slcall    sl_RmvChar
  1268.         endm
  1269. ;
  1270. ;
  1271. Member        macro
  1272.         ifndef    sl_member
  1273. stdlib        segment    para public 'slcode'
  1274.         extrn    sl_member:far
  1275. stdlib        ends
  1276.         endif
  1277.         slcall    sl_member
  1278.         endm
  1279. ;
  1280. ;
  1281. CopySet        macro
  1282.         ifndef    sl_CopySet
  1283. stdlib        segment    para public 'slcode'
  1284.         extrn    sl_CopySet:far
  1285. stdlib        ends
  1286.         endif
  1287.         slcall    sl_CopySet
  1288.         endm
  1289. ;
  1290. ;
  1291. setunion    macro
  1292.         ifndef    sl_union
  1293. stdlib        segment    para public 'slcode'
  1294.         extrn    sl_union:far
  1295. stdlib        ends
  1296.         endif
  1297.         slcall    sl_union
  1298.         endm
  1299. ;
  1300. ;
  1301. SetIntersect    macro
  1302.         ifndef    sl_Intersect
  1303. stdlib        segment    para public 'slcode'
  1304.         extrn    sl_Intersect:far
  1305. stdlib        ends
  1306.         endif
  1307.         slcall    sl_Intersect
  1308.         endm
  1309. ;
  1310. ;
  1311. SetDifference    macro
  1312.         ifndef    sl_Difference
  1313. stdlib        segment    para public 'slcode'
  1314.         extrn    sl_Difference:far
  1315. stdlib        ends
  1316.         endif
  1317.         slcall    sl_Difference
  1318.         endm
  1319. ;
  1320. ;
  1321. NextItem    macro
  1322.         ifndef    sl_NextItem
  1323. stdlib        segment    para public 'slcode'
  1324.         extrn    sl_NextItem:far
  1325. stdlib        ends
  1326.         endif
  1327.         slcall    sl_NextItem
  1328.         endm
  1329. ;
  1330. ;
  1331. RmvItem        macro
  1332.         ifndef    sl_RmvItem
  1333. stdlib        segment    para public 'slcode'
  1334.         extrn    sl_RmvItem:far
  1335. stdlib        ends
  1336.         endif
  1337.         slcall    sl_RmvItem
  1338.         endm
  1339. ;
  1340. ;---------------------------------------------------------------------------
  1341. ;
  1342. lsfpa        macro
  1343.         ifndef    sl_lsfpa
  1344. stdlib        segment    para public 'slcode'
  1345.         extrn    sl_lsfpa:far
  1346. stdlib        ends
  1347.         endif
  1348.         slcall    sl_lsfpa
  1349.         endm
  1350. ;
  1351. ldfpa        macro
  1352.         ifndef    sl_ldfpa
  1353. stdlib        segment    para public 'slcode'
  1354.         extrn    sl_ldfpa:far
  1355. stdlib        ends
  1356.         endif
  1357.         slcall    sl_ldfpa
  1358.         endm
  1359. ;
  1360. lsfpo        macro
  1361.         ifndef    sl_lsfpo
  1362. stdlib        segment    para public 'slcode'
  1363.         extrn    sl_lsfpo:far
  1364. stdlib        ends
  1365.         endif
  1366.         slcall    sl_lsfpo
  1367.         endm
  1368. ;
  1369. ldfpo        macro
  1370.         ifndef    sl_ldfpo
  1371. stdlib        segment    para public 'slcode'
  1372.         extrn    sl_ldfpo:far
  1373. stdlib        ends
  1374.         endif
  1375.         slcall    sl_ldfpo
  1376.         endm
  1377. ;
  1378. fpadd        macro
  1379.         ifndef    sl_fadd
  1380. stdlib        segment    para public 'slcode'
  1381.         extrn    sl_fadd:far
  1382. stdlib        ends
  1383.         endif
  1384.         slcall    sl_fadd
  1385.         endm
  1386. ;
  1387. fpsub        macro
  1388.         ifndef    sl_fsub
  1389. stdlib        segment    para public 'slcode'
  1390.         extrn    sl_fsub:far
  1391. stdlib        ends
  1392.         endif
  1393.         slcall    sl_fsub
  1394.         endm
  1395. ;
  1396. fpmul        macro
  1397.         ifndef    sl_fmul
  1398. stdlib        segment    para public 'slcode'
  1399.         extrn    sl_fmul:far
  1400. stdlib        ends
  1401.         endif
  1402.         slcall    sl_fmul
  1403.         endm
  1404. ;
  1405. fpdiv        macro
  1406.         ifndef    sl_fdiv
  1407. stdlib        segment    para public 'slcode'
  1408.         extrn    sl_fdiv:far
  1409. stdlib        ends
  1410.         endif
  1411.         slcall    sl_fdiv
  1412.         endm
  1413. ;
  1414. ;
  1415. ;
  1416. ;
  1417. ;
  1418. ;--------------------------------------------------------------------------
  1419. ;
  1420. ;
  1421. ; Routines to add:
  1422. ;
  1423. ; getenv, argc, argv
  1424. ;
  1425. ;
  1426. ; String Routines:
  1427. ;
  1428. ; strins, strinsl, strins2, strins2l, strdel, strdel2, substr, substr2
  1429. ;
  1430. ; File routines:
  1431. ;
  1432. ; fclose, feof, fflush, fgetc, fputc, fgetpos, fgets, filelength, fopen,
  1433. ; fprintf, fputs, fread, fscanf, fseek, fstat, fwrite
  1434. ;
  1435. ; getcwd, mkdir, chdir, mktemp, remove, rename, rewind, rmdir, rmtemp, 
  1436. ;
  1437.