home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / basic / compiler / ubasic / ubmpqs32 / ubp.mac < prev   
Text File  |  1990-07-12  |  3KB  |  235 lines

  1. ;UB.MAC
  2. ;    MACRO LIBRARY FOR
  3. ;    UBASIC USER MAKING ROUTINE
  4. ;
  5.  
  6. SYSTBL    EQU    0000H
  7.  
  8. LSIZE    EQU    0040H    ;özù±Æ╖ò╧Éöé╠ BYTE Éöé¬Åæéóé─éáéΘ
  9. LLSIZE    EQU    0042H    ;özù±ô┴ò╩ò╧Éöé╠ BYTE Éöé¬Åæéóé─éáéΘ
  10. CALCSP    EQU    0044H    ;îvÄZâXâ^âbâNé╠â|âCâôâ^é¬éáéΘ
  11. ARRAYHEADSEG    EQU    2    ;özù±é╠HEADERò¬é╠SEGMENT
  12.  
  13. V1    EQU    0080H
  14. V2    EQU    0084H
  15. V3    EQU    0088H
  16. V4    EQU    008CH
  17. V5    EQU    0090H
  18. V6    EQU    0094H
  19. V7    EQU    0098H
  20. V8    EQU    009CH
  21. V9    EQU    00A0H
  22. V10    EQU    00A4H
  23. V11    EQU    00A8H
  24. V12    EQU    00ACH
  25. V13    EQU    00B0H
  26. V14    EQU    00B4H
  27. V15    EQU    00B8H
  28. V16    EQU    00BCH
  29.  
  30. V17    EQU    00C0H
  31. V18    EQU    00C4H
  32. V19    EQU    00C8H
  33. V20    EQU    00CCH
  34. V21    EQU    00D0H
  35. V22    EQU    00D4H
  36. V23    EQU    00D8H
  37. V24    EQU    00DCH
  38. V25    EQU    00E0H
  39. V26    EQU    00E4H
  40. V27    EQU    00E8H
  41. V28    EQU    00ECH
  42. V29    EQU    00F0H
  43. V30    EQU    00F4H
  44. V31    EQU    00F8H
  45. V32    EQU    00FCH
  46.  
  47. AR0    EQU    0020H
  48. AR1    EQU    0022H
  49. AR2    EQU    0024H
  50. AR3    EQU    0026H
  51. AR4    EQU    0028H
  52. AR5    EQU    002AH
  53. AR6    EQU    002CH
  54. AR7    EQU    002EH
  55. AR8    EQU    0030H
  56. AR9    EQU    0032H
  57. AR10    EQU    0034H
  58. AR11    EQU    0036H
  59. AR12    EQU    0038H
  60. AR13    EQU    003AH
  61. AR14    EQU    003CH
  62. AR15    EQU    003EH
  63.  
  64. ;FUNCTION CODE
  65.  
  66. SGN    EQU    1
  67. LEN    EQU    2
  68. BIT    EQU    3
  69. GCD    EQU    4
  70. SQR    EQU    5
  71. ISQR    EQU    6
  72. FIX    EQU    7
  73. KRO    EQU    8
  74. SIN    EQU    9
  75. COS    EQU    10
  76.  
  77. EXP    EQU    11
  78. LOG    EQU    12
  79. PAI    EQU    13
  80. PRM    EQU    14
  81. MOB    EQU    15
  82. EUL    EQU    16
  83. PRMDIV    EQU    17
  84.  
  85. MODPOW    EQU    26
  86. MODINV    EQU    27
  87. INIT    EQU    28
  88. ALEN    EQU    29
  89. NXTPRM    EQU    30
  90.  
  91. MAX    EQU    31
  92. MIN    EQU    32
  93. SFT    EQU    33
  94.  
  95.  
  96.  
  97. MOV_AX    MACRO    PARAM
  98.     DB    2EH        ;CS:
  99.     DB    0A1H        ;MOV AX,[PARAM]
  100.     DW    PARAM
  101.     ENDM
  102.  
  103. MOV_BX    MACRO    PARAM
  104.     DB    2EH        ;CS:
  105.     DB    8BH        ;MOV BX,[PARAM]
  106.     DB    1EH
  107.     DW    PARAM
  108.     ENDM
  109.  
  110. LDS_SI    MACRO    PARAM
  111.     DB    2EH        ;CS:
  112.     DB    0C5H,36H
  113.     DW    PARAM
  114.     ENDM
  115.  
  116. LES_DI    MACRO    PARAM
  117.     DB    2EH        ;CS:
  118.     DB    0C4H,3EH
  119.     DW    PARAM
  120.     ENDM
  121.  
  122. CALL_F    MACRO    PARAM
  123.     DB    36H        ;SS:
  124.     DB    0FFH,1EH
  125.     DW    PARAM
  126.     ENDM
  127.  
  128.  
  129.  
  130. @LET    MACRO    DEST,SORC
  131.     LDS_SI    SORC
  132.     LES_DI    DEST
  133.     MOV    CX,[SI]
  134.     AND    CX,3FFFH
  135.     INC    CX
  136.     CLD
  137.     REP    MOVSW
  138.     ENDM
  139.  
  140.  
  141. @PUSH    MACRO    SORC
  142.     LDS_SI    SORC
  143.     CALL_F    SYSTBL+4
  144.     ENDM
  145.  
  146.  
  147. @POP    MACRO    DEST
  148.     LES_DI    DEST
  149.     CALL_F    SYSTBL+8
  150.     ENDM
  151.  
  152.  
  153. @ADD    MACRO
  154.     CALL_F    SYSTBL+32    ;8*4
  155.     ENDM
  156.  
  157.  
  158. @SUB    MACRO
  159.     CALL_F    SYSTBL+36    ;9*4
  160.     ENDM
  161.  
  162.  
  163. @MUL    MACRO
  164.     CALL_F    SYSTBL+40    ;10*4
  165.     ENDM
  166.  
  167.  
  168. @DIV    MACRO
  169.     CALL_F    SYSTBL+44    ;11*4
  170.     ENDM
  171.  
  172.  
  173. @IDIV    MACRO
  174.     CALL_F    SYSTBL+48    ;12*4
  175.     ENDM
  176.  
  177.  
  178. @MOD    MACRO
  179.     CALL_F    SYSTBL+52    ;13*4
  180.     ENDM
  181.  
  182.  
  183. @P2    MACRO
  184.     CALL_F    SYSTBL+56    ;14*4
  185.     ENDM
  186.  
  187.  
  188. @FUNC    MACRO    FUNCNAME
  189.     MOV    AX,SS
  190.     MOV    DS,AX
  191.     MOV    ES,AX
  192.     MOV    AL,FUNCNAME
  193.     CALL_F    SYSTBL
  194.     ENDM
  195.  
  196. @DUMPUSH    MACRO
  197.     MOV_BX    CALCSP
  198.     MOV_AX    LLSIZE
  199.     SUB    SS:[BX],AX
  200.     ENDM
  201.  
  202. @DUMPOP    MACRO
  203.     MOV_BX    CALCSP
  204.     MOV_AX    LLSIZE
  205.     ADD    SS:[BX],AX
  206.     ENDM
  207.  
  208.  
  209. RETURN    MACRO
  210.     MOV    AX,SS
  211.     MOV    DS,AX
  212.     MOV    ES,AX
  213.     RETF            ;DB    0CBH
  214.  
  215. CODE    ENDS
  216. END    START
  217.  
  218.     ENDM
  219.  
  220.  
  221. JMPS    MACRO    DEST
  222.     JMP    SHORT DEST
  223.     ENDM
  224.  
  225. JMPE    MACRO    DEST
  226.     LOCAL    LAB
  227.     JNE    LAB
  228.     JMP    DEST
  229. LAB:
  230.     ENDM
  231.  
  232.  
  233. .LIST
  234.  
  235.