home *** CD-ROM | disk | FTP | other *** search
/ Datatid 1999 #6 / Datatid_1999-06.iso / internet / Tango352Promo / P.SQL / PTKPKG.1 / SQLCOB.ASM < prev    next >
Encoding:
Assembly Source File  |  1996-11-18  |  106.8 KB  |  3,723 lines

  1. ;=============================================================================
  2. ;  Copyright (c), 1988-1996, Pervasive Software Inc.
  3. ;  All Rights Reserved
  4. ;=============================================================================
  5. ;=============================================================================
  6. ;  SQLCOB.ASM
  7. ;   This module contains the code for interfacing Scalable SQL to supported
  8. ;   COBOL compilers.  Both SQL-level and Primitive-level APIs are handled.
  9. ;=============================================================================
  10. IFDEF REALIA4
  11.         EXTRN CSA$BASE : BYTE   ;Realia 4.0 COBOL Stack Area
  12. CSA$RTN EQU WORD PTR [0000H]    ;Realia 4.0 COBOL return value stack offset
  13. ENDIF
  14.  
  15. INCLUDE XMACRO.MAC
  16.         .8087
  17.         STARTFILE       SQLCOB
  18.         ASSUME          SS:DGROUP
  19.  
  20.  
  21. ;=============================================================================
  22. ;
  23. ;=============================================================================
  24. SUBFN   callxql
  25.         push    bp
  26.         mov     bp,sp
  27.         push    ds
  28.         mov     WORD PTR es:[bx+8],-1
  29.         mov     ax,SessionID
  30.         mov     WORD PTR es:[bx+10],ax
  31.         mov     ax, es
  32.         mov     ds, ax
  33.         mov     dx, bx
  34.         int     7bh
  35.         sub     ax,ax
  36.         pop     ds
  37.         pop     bp
  38.         ret
  39. ENDSUBFN        callxql
  40.  
  41. ;=============================================================================
  42. ;
  43. ;=============================================================================
  44. SUBFN   callxqlm
  45.         push    bp
  46.         mov     bp,sp
  47.         push    ds
  48.         mov     ax,DGROUP
  49.         mov     ds,ax
  50.         les     bx,DWORD PTR [bp+6]     ;ptr
  51.         mov     BYTE PTR es:[bx],  'X'
  52.         mov     BYTE PTR es:[bx+1],'Q'
  53.         mov     BYTE PTR es:[bx+2],'L'
  54.         mov     BYTE PTR es:[bx+3],'M'
  55.         mov     ax, [bp+10]             ;fcn
  56.         mov     word ptr es:[bx+4], ax
  57.         mov     word ptr es:[bx+8], -1
  58.         call    callxql
  59.         pop     ds
  60.         pop     bp
  61.         ret
  62. ENDSUBFN        callxqlm
  63.  
  64. ;=============================================================================
  65. ;
  66. ;=============================================================================
  67. SUBFN   xqlm_loaded
  68.         push    bp
  69.         mov     bp,sp
  70.         sub     sp,28
  71.         push    ds
  72.         mov     ax,DGROUP
  73.         mov     ds,ax
  74.         mov     ax, 357bh
  75.         int     21h
  76.         mov     ax,SEG SQLCODE
  77.         mov     es,ax
  78.         mov     WORD PTR es:SQLCODE,802
  79.         cmp     bx, 33h
  80.         jne     $I408
  81.         mov     WORD PTR [bp-14],-1
  82.         lea     ax,WORD PTR [bp-2]      ;btrstat
  83.         mov     WORD PTR [bp-6],ax
  84.         mov     WORD PTR [bp-4],ss
  85.         mov     ax,-1
  86.         push    ax
  87.         lea     ax,WORD PTR [bp-28]     ;XQLMPARMS
  88.         push    ss
  89.         push    ax
  90.         call    callxqlm
  91.         add     sp,6
  92.         cmp     WORD PTR [bp-20],503
  93.         jne     $I408
  94.         mov     ax,SEG SQLCODE
  95.         mov     es,ax
  96.         mov     WORD PTR es:SQLCODE,0
  97. $I408:
  98.         mov     ax,SEG SQLCODE
  99.         mov     es,ax
  100.         cmp     WORD PTR es:SQLCODE,1
  101.         sbb     ax,ax
  102.         neg     ax
  103.         pop     ds
  104.         mov     sp,bp
  105.         pop     bp
  106.         ret
  107. ENDSUBFN        xqlm_loaded
  108.  
  109.  
  110. ;=============================================================================
  111. ;
  112. ;=============================================================================
  113. SUBFN   NotLoaded
  114.         mov     ax,SEG SQLCODE
  115.         mov     es,ax
  116.         mov     ax,WORD PTR es:SQLCODE
  117.         les     bx,DWORD PTR [bp+6]     ;STATUS
  118.         mov     WORD PTR es:[bx],ax
  119.         pop     ds
  120.         mov     sp,bp
  121.         pop     bp
  122.         ret
  123. ENDSUBFN        NotLoaded
  124.  
  125.  
  126. ;=============================================================================
  127. ;
  128. ;=============================================================================
  129. SUBFN   XQLCOMPILE
  130.         push    bp
  131.         mov     bp,sp
  132.         sub     sp,18   ; size of xqlparm block plus variable parameters
  133.         push    ds
  134.         mov     ax,DGROUP
  135.         mov     ds,ax
  136.         call    xqlm_loaded
  137.         or      ax,ax
  138.         jne     $I219
  139.         jmp     NotLoaded
  140. $I219:
  141.         les     bx,DWORD PTR [bp+10]    ;CURSORID
  142.         mov     ax,WORD PTR es:[bx]
  143.         mov     WORD PTR [bp-12],ax
  144. ;
  145.         les     bx,DWORD PTR [bp+14]    ;LENGTH
  146.         mov     ax,WORD PTR es:[bx]
  147.         mov     WORD PTR [bp-6],ax
  148. ;
  149.         les     bx,dword ptr [bp+18]    ;STATEMENT
  150.         mov     WORD PTR [bp-4],bx
  151.         mov     WORD PTR [bp-2],es
  152. ;
  153.         mov     ax,3
  154.         push    ax
  155.         lea     ax,WORD PTR [bp-18]     ;XQLMPARMS
  156.         push    ss
  157.         push    ax
  158.         call    callxqlm
  159.         add     sp,6
  160. ;
  161.         les     bx,DWORD PTR [bp+14]    ;LENGTH
  162.         mov     ax,WORD PTR [bp-6]
  163.         mov     WORD PTR es:[bx],ax
  164. ;
  165.         les     bx,DWORD PTR [bp+6]     ;STATUS
  166.         mov     ax,WORD PTR [bp-10]
  167.         mov     WORD PTR es:[bx],ax
  168. ;
  169.         IFDEF REALIA4
  170.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  171.         ENDIF
  172.         mov     ax,WORD PTR [bp-10]
  173.         pop     ds
  174.         mov     sp,bp
  175.         pop     bp
  176.         ret
  177. ENDSUBFN        XQLCOMPILE
  178.  
  179.  
  180. ;=============================================================================
  181. ;
  182. ;=============================================================================
  183. SUBFN   XQLCURSOR
  184.         push    bp
  185.         mov     bp,sp
  186.         sub     sp,14  ; size of xqlparm block plus variable parameters
  187.         push    ds
  188.         mov     ax,DGROUP
  189.         mov     ds,ax
  190.         call    xqlm_loaded
  191.         or      ax,ax
  192.         jne     $I229
  193.         jmp     NotLoaded
  194. $I229:
  195.         mov     WORD PTR [bp-8],-1
  196.         mov     ax,2
  197.         push    ax
  198.         lea     ax,WORD PTR [bp-14]     ;XQLMPARMS
  199.         push    ss
  200.         push    ax
  201.         call    callxqlm
  202.         add     sp,6
  203.         les     bx,DWORD PTR [bp+10]    ;CURSORID
  204.         mov     ax,WORD PTR [bp-8]
  205.         mov     WORD PTR es:[bx],ax
  206. ;
  207.         les     bx,DWORD PTR [bp+6]     ;STATUS
  208.         mov     ax,WORD PTR [bp-6]
  209.         mov     WORD PTR es:[bx],ax
  210. ;
  211.         mov     ax,WORD PTR [bp-6]
  212.         IFDEF REALIA4
  213.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  214.         ENDIF
  215.         pop     ds
  216.         mov     sp,bp
  217.         pop     bp
  218.         ret
  219. ENDSUBFN        XQLCURSOR
  220.  
  221.  
  222. ;=============================================================================
  223. ;
  224. ;=============================================================================
  225. SUBFN   XQLDESCRIBE
  226.         push    bp
  227.         mov     bp,sp
  228.         sub     sp,28  ; size of xqlparm block plus variable parameters
  229.         push    ds
  230.         mov     ax,DGROUP
  231.         mov     ds,ax
  232.         call    xqlm_loaded
  233.         or      ax,ax
  234.         jne     $I245
  235.         jmp     NotLoaded
  236. $I245:
  237.         les     bx,DWORD PTR [bp+10]    ;CURSORID
  238.         mov     ax,WORD PTR es:[bx]
  239.         mov     WORD PTR [bp-22],ax
  240. ;
  241.         les     bx,DWORD PTR [bp+14]    ;POS
  242.         mov     ax,WORD PTR es:[bx]
  243.         mov     WORD PTR [bp-16],ax
  244. ;
  245.         les     bx,DWORD PTR [bp+34]    ;NLENGTH
  246.         mov     ax,WORD PTR es:[bx]
  247.         mov     WORD PTR [bp-6],ax
  248. ;
  249.         les     bx, dword ptr [bp+30]   ;NAME
  250.         mov     WORD PTR [bp-4],bx
  251.         mov     WORD PTR [bp-2],es
  252. ;
  253.         mov     ax,6
  254.         push    ax
  255.         lea     ax,WORD PTR [bp-28]     ;XQLMPARMS
  256.         push    ss
  257.         push    ax
  258.         call    callxqlm
  259.         add     sp,6
  260. ;
  261.         les     bx,DWORD PTR [bp+18]    ;DTYPE
  262.         mov     ax,WORD PTR [bp-14]
  263.         mov     WORD PTR es:[bx],ax
  264. ;
  265.         les     bx,DWORD PTR [bp+22]    ;SIZE
  266.         mov     ax,WORD PTR [bp-12]
  267.         mov     WORD PTR es:[bx],ax
  268. ;
  269.         les     bx,DWORD PTR [bp+26]    ;DEC
  270.         mov     ax,WORD PTR [bp-10]
  271.         mov     WORD PTR es:[bx],ax
  272. ;
  273.         les     bx,DWORD PTR [bp+30]    ;DSIZE
  274.         mov     ax,WORD PTR [bp-8]
  275.         mov     WORD PTR es:[bx],ax
  276. ;
  277.         les     bx,DWORD PTR [bp+34]    ;NLENGTH
  278.         mov     ax,WORD PTR [bp-6]
  279.         mov     WORD PTR es:[bx],ax
  280. ;
  281.         les     bx,DWORD PTR [bp+6]     ;STATUS
  282.         mov     ax,WORD PTR [bp-20]
  283.         mov     WORD PTR es:[bx],ax
  284. ;
  285.         mov     ax,WORD PTR [bp-20]
  286.         IFDEF REALIA4
  287.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  288.         ENDIF
  289.         pop     ds
  290.         mov     sp,bp
  291.         pop     bp
  292.         ret
  293. ENDSUBFN        XQLDESCRIBE
  294.  
  295. ;=============================================================================
  296. ;
  297. ;=============================================================================
  298. SUBFN   XQLEXEC
  299.         push    bp
  300.         mov     bp,sp
  301.         sub     sp,14  ; size of xqlparm block plus variable parameters
  302.         push    ds
  303.         mov     ax,DGROUP
  304.         mov     ds,ax
  305.         call    xqlm_loaded
  306.         or      ax,ax
  307.         jne     $I254
  308.         jmp     NotLoaded
  309. $I254:
  310.         les     bx,DWORD PTR [bp+10]    ;CURSORID
  311.         mov     ax,WORD PTR es:[bx]
  312.         mov     WORD PTR [bp-8],ax
  313. ;
  314.         mov     ax,8
  315.         push    ax
  316.         lea     ax,WORD PTR [bp-14]     ;XQLMPARMS
  317.         push    ss
  318.         push    ax
  319.         call    callxqlm
  320.         add     sp,6
  321. ;
  322.         les     bx,DWORD PTR [bp+6]     ;STATUS
  323.         mov     ax,WORD PTR [bp-6]
  324.         mov     WORD PTR es:[bx],ax
  325. ;
  326.         mov     ax,WORD PTR [bp-6]
  327.         IFDEF REALIA4
  328.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  329.         ENDIF
  330.         pop     ds
  331.         mov     sp,bp
  332.         pop     bp
  333.         ret
  334. ENDSUBFN        XQLEXEC
  335.  
  336. ;=============================================================================
  337. ;
  338. ;=============================================================================
  339. SUBFN   XQLFETCH
  340.         push    bp
  341.         mov     bp,sp
  342.         sub     sp,28  ; size of xqlparm block plus variable parameters
  343.         push    ds
  344.         mov     ax,DGROUP
  345.         mov     ds,ax
  346.         call    xqlm_loaded
  347.         or      ax,ax
  348.         jne     $I269
  349.         jmp     NotLoaded
  350. $I269:
  351.         les     bx,DWORD PTR [bp+10]    ;CURSORID
  352.         mov     ax,WORD PTR es:[bx]
  353.         mov     WORD PTR [bp-22],ax
  354. ;
  355.         les     bx,DWORD PTR [bp+18]    ;DLEN
  356.         mov     ax,WORD PTR es:[bx]
  357.         mov     WORD PTR [bp-14],ax
  358. ;
  359.         les     bx,DWORD PTR [bp+14]    ;OPERATION
  360.         mov     ax,WORD PTR es:[bx]
  361.         mov     WORD PTR [bp-16],ax
  362. ;
  363.         les     bx, dword ptr [bp+22]   ;BUF
  364.         mov     WORD PTR [bp-12],bx
  365.         mov     WORD PTR [bp-10],es
  366. ;
  367.         les     bx,DWORD PTR [bp+26]    ;SELECT
  368.         mov     ax,WORD PTR es:[bx]
  369.         cwd
  370.         mov     WORD PTR [bp-8],ax
  371.         mov     WORD PTR [bp-6],dx
  372. ;
  373.         les     bx,DWORD PTR [bp+30]    ;ASCII
  374.         mov     ax,WORD PTR es:[bx]
  375.         mov     WORD PTR [bp-4],ax
  376. ;
  377.         les     bx,DWORD PTR [bp+34]    ;SPACING
  378.         mov     ax,WORD PTR es:[bx]
  379.         mov     WORD PTR [bp-2],ax
  380. ;
  381.         mov     ax,5
  382.         push    ax
  383.         lea     ax,WORD PTR [bp-28]     ;XQLMPARMS
  384.         push    ss
  385.         push    ax
  386.         call    callxqlm
  387.         add     sp,6
  388. ;
  389.         les     bx,DWORD PTR [bp+18]    ;DLEN
  390.         mov     ax,WORD PTR [bp-14]
  391.         mov     WORD PTR es:[bx],ax
  392. ;
  393.         les     bx,DWORD PTR [bp+26]    ;SELECT
  394.         mov     ax,WORD PTR [bp-8]
  395.         mov     WORD PTR es:[bx],ax
  396. ;
  397.         les     bx,DWORD PTR [bp+6]     ;STATUS
  398.         mov     ax,WORD PTR [bp-20]
  399.         mov     WORD PTR es:[bx],ax
  400. ;
  401.         mov     ax,WORD PTR [bp-20]
  402.         IFDEF REALIA4
  403.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  404.         ENDIF
  405.         pop     ds
  406.         mov     sp,bp
  407.         pop     bp
  408.         ret
  409. ENDSUBFN        XQLFETCH
  410.  
  411. ;=============================================================================
  412. ;
  413. ;=============================================================================
  414. SUBFN   XQLFORMAT
  415.         push    bp
  416.         mov     bp,sp
  417.         sub     sp,20  ; size of xqlparm block plus variable parameters
  418.         push    ds
  419.         mov     ax,DGROUP
  420.         mov     ds,ax
  421.         call    xqlm_loaded
  422.         or      ax,ax
  423.         jne     $I281
  424.         jmp     NotLoaded
  425. $I281:
  426.         les     bx,DWORD PTR [bp+10]    ;CURSORID
  427.         mov     ax,WORD PTR es:[bx]
  428.         mov     WORD PTR [bp-14],ax
  429. ;
  430.         les     bx,DWORD PTR [bp+14]    ;POS
  431.         mov     ax,WORD PTR es:[bx]
  432.         mov     WORD PTR [bp-8],ax
  433. ;
  434.         les     bx,DWORD PTR [bp+18]    ;LENGTH
  435.         mov     ax,WORD PTR es:[bx]
  436.         mov     WORD PTR [bp-6],ax
  437. ;
  438.         les     bx, dword ptr [bp+22]   ;MASK
  439.         mov     WORD PTR [bp-4],bx
  440.         mov     WORD PTR [bp-2],es
  441. ;
  442.         mov     ax,4
  443.         push    ax
  444.         lea     ax,WORD PTR [bp-20]     ;XQLMPARMS
  445.         push    ss
  446.         push    ax
  447.         call    callxqlm
  448.         add     sp,6
  449. ;
  450.         les     bx,DWORD PTR [bp+6]     ;STATUS
  451.         mov     ax,WORD PTR [bp-12]
  452.         mov     WORD PTR es:[bx],ax
  453. ;
  454.         mov     ax,WORD PTR [bp-12]
  455.         IFDEF REALIA4
  456.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  457.         ENDIF
  458.         pop     ds
  459.         mov     sp,bp
  460.         pop     bp
  461.         ret
  462. ENDSUBFN        XQLFORMAT
  463.  
  464. ;=============================================================================
  465. ;
  466. ;=============================================================================
  467. SUBFN   XQLFREE
  468.         push    bp
  469.         mov     bp,sp
  470.         sub     sp,14  ; size of xqlparm block plus variable parameters
  471.         push    ds
  472.         mov     ax,DGROUP
  473.         mov     ds,ax
  474.         call    xqlm_loaded
  475.         or      ax,ax
  476.         jne     $I290
  477.         jmp     NotLoaded
  478. $I290:
  479.         les     bx,DWORD PTR [bp+10]    ;CURSORID
  480.         mov     ax,WORD PTR es:[bx]
  481.         mov     WORD PTR [bp-8],ax
  482. ;
  483.         mov     ax,9
  484.         push    ax
  485.         lea     ax,WORD PTR [bp-14]     ;XQLMPARMS
  486.         push    ss
  487.         push    ax
  488.         call    callxqlm
  489.         add     sp,6
  490. ;
  491.         les     bx,DWORD PTR [bp+6]     ;STATUS
  492.         mov     ax,WORD PTR [bp-6]
  493.         mov     WORD PTR es:[bx],ax
  494. ;
  495.         mov     ax,WORD PTR [bp-6]
  496.         IFDEF REALIA4
  497.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  498.         ENDIF
  499.         pop     ds
  500.         mov     sp,bp
  501.         pop     bp
  502.         ret
  503. ENDSUBFN        XQLFREE
  504.  
  505. ;=============================================================================
  506. ;
  507. ;=============================================================================
  508. SUBFN   XQLLOGIN
  509.         push    bp
  510.         mov     bp,sp
  511.         sub     sp,34  ; size of xqlparm block plus variable parameters
  512.         push    ds
  513.         mov     ax,DGROUP
  514.         mov     ds,ax
  515.         call    xqlm_loaded
  516.         or      ax,ax
  517.         jne     $I304
  518.         jmp     NotLoaded
  519. $I304:
  520.         mov     WORD PTR [bp-28],0
  521.         les     bx, dword ptr [bp+10]   ;USERID
  522.         mov     WORD PTR [bp-22],bx
  523.         mov     WORD PTR [bp-20],es
  524.  
  525.         les     bx, dword ptr [bp+14]   ;PSWD
  526.         mov     WORD PTR [bp-18],bx
  527.         mov     WORD PTR [bp-16],es
  528.  
  529.         les     bx, dword ptr [bp+18]   ;DICTIONARY
  530.         mov     WORD PTR [bp-14],bx
  531.         mov     WORD PTR [bp-12],es
  532.  
  533.         les     bx, dword ptr [bp+22]   ;FILEPATH
  534.         mov     WORD PTR [bp-10],bx
  535.         mov     WORD PTR [bp-8],es
  536.  
  537.         les     bx, dword ptr [bp+26]   ;MACHINE
  538.         mov     WORD PTR [bp-6],bx
  539.         mov     WORD PTR [bp-4],es
  540.         les     bx,DWORD PTR [bp+30]    ;PROCESSID
  541.         mov     ax,WORD PTR es:[bx]
  542.         mov     WORD PTR [bp-2],ax
  543.         sub     ax,ax
  544.         push    ax
  545.         lea     ax,WORD PTR [bp-34]     ;XQLMPARMS
  546.         push    ss
  547.         push    ax
  548.         call    callxqlm
  549.         add     sp,6
  550.         cmp     WORD PTR [bp-26],0
  551.         jne     $I305
  552.         mov     ax,WORD PTR [bp-24]
  553.         mov     SessionID,ax
  554. $I305:
  555.         les     bx,DWORD PTR [bp+6]     ;STATUS
  556.         mov     ax,WORD PTR [bp-26]
  557.         mov     WORD PTR es:[bx],ax
  558.         mov     ax,WORD PTR [bp-26]
  559.         IFDEF REALIA4
  560.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  561.         ENDIF
  562.         pop     ds
  563.         mov     sp,bp
  564.         pop     bp
  565.         ret
  566. ENDSUBFN        XQLLOGIN
  567.  
  568. ;=============================================================================
  569. ;
  570. ;=============================================================================
  571. SUBFN   XQLLOGOUT
  572.         push    bp
  573.         mov     bp,sp
  574.         sub     sp,14  ; size of xqlparm block plus variable parameters
  575.         push    ds
  576.         mov     ax,DGROUP
  577.         mov     ds,ax
  578.         call    xqlm_loaded
  579.         or      ax,ax
  580.         jne     $I313
  581.         jmp     NotLoaded
  582. $I313:
  583.         mov     ax,1
  584.         push    ax
  585.         lea     ax,WORD PTR [bp-14]     ;XQLMPARMS
  586.         push    ss
  587.         push    ax
  588.         call    callxqlm
  589.         add     sp,6
  590.         les     bx,DWORD PTR [bp+6]     ;STATUS
  591.         mov     ax,WORD PTR [bp-6]
  592.         mov     WORD PTR es:[bx],ax
  593. ;
  594.         mov     ax,WORD PTR [bp-6]
  595.         IFDEF REALIA4
  596.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  597.         ENDIF
  598.         pop     ds
  599.         mov     sp,bp
  600.         pop     bp
  601.         ret
  602. ENDSUBFN        XQLLOGOUT
  603.  
  604. ;=============================================================================
  605. ;
  606. ;=============================================================================
  607. SUBFN   XQLSTATUS
  608.         push    bp
  609.         mov     bp,sp
  610.         sub     sp,18  ; size of xqlparm block plus variable parameters
  611.         push    ds
  612.         mov     ax,DGROUP
  613.         mov     ds,ax
  614.         call    xqlm_loaded
  615.         or      ax,ax
  616.         jne     $I324
  617.         jmp     NotLoaded
  618. $I324:
  619.         les     bx,DWORD PTR [bp+10]    ;CURSORID
  620.         mov     ax,WORD PTR es:[bx]
  621.         mov     WORD PTR [bp-12],ax
  622. ;
  623.         les     bx,DWORD PTR [bp+14]    ;SUBFUNCTION
  624.         mov     ax,WORD PTR es:[bx]
  625.         mov     WORD PTR [bp-6],ax
  626. ;
  627.         les     bx, dword ptr [bp+18]   ;BUF
  628.         mov     WORD PTR [bp-4],bx
  629.         mov     WORD PTR [bp-2],es
  630. ;
  631.         mov     ax,10
  632.         push    ax
  633.         lea     ax,WORD PTR [bp-18]     ;XQLMPARMS
  634.         push    ss
  635.         push    ax
  636.         call    callxqlm
  637.         add     sp,6
  638. ;
  639.         les     bx,DWORD PTR [bp+6]     ;STATUS
  640.         mov     ax,WORD PTR [bp-10]
  641.         mov     WORD PTR es:[bx],ax
  642. ;
  643.         mov     ax,WORD PTR [bp-10]
  644.         IFDEF REALIA4
  645.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  646.         ENDIF
  647.         pop     ds
  648.         mov     sp,bp
  649.         pop     bp
  650.         ret
  651. ENDSUBFN        XQLSTATUS
  652.  
  653. ;=============================================================================
  654. ;
  655. ;=============================================================================
  656. SUBFN   XQLSTOP
  657.         push    bp
  658.         mov     bp,sp
  659.         sub     sp,14  ; size of xqlparm block plus variable parameters
  660.         push    ds
  661.         mov     ax,DGROUP
  662.         mov     ds,ax
  663.         call    xqlm_loaded
  664.         or      ax,ax
  665.         jne     $I332
  666.         jmp     NotLoaded
  667. $I332:
  668.         mov     ax,11
  669.         push    ax
  670.         lea     ax,WORD PTR [bp-14]     ;XQLMPARMS
  671.         push    ss
  672.         push    ax
  673.         call    callxqlm
  674.         add     sp,6
  675. ;
  676.         les     bx,DWORD PTR [bp+6]     ;STATUS
  677.         mov     ax,WORD PTR [bp-6]
  678.         mov     WORD PTR es:[bx],ax
  679. ;
  680.         mov     ax,WORD PTR [bp-6]
  681.         IFDEF REALIA4
  682.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  683.         ENDIF
  684.         pop     ds
  685.         mov     sp,bp
  686.         pop     bp
  687.         ret
  688. ENDSUBFN        XQLSTOP
  689.  
  690. ;=============================================================================
  691. ;
  692. ;=============================================================================
  693. SUBFN   XQLSUBST
  694.         push    bp
  695.         mov     bp,sp
  696.         sub     sp,26  ; size of xqlparm block plus variable parameters
  697.         push    ds
  698.         mov     ax,DGROUP
  699.         mov     ds,ax
  700.         call    xqlm_loaded
  701.         or      ax,ax
  702.         jne     $I346
  703.         jmp     NotLoaded
  704. $I346:
  705.         les     bx,DWORD PTR [bp+10]    ;CURSORID
  706.         mov     ax,WORD PTR es:[bx]
  707.         mov     WORD PTR [bp-20],ax
  708. ;
  709.         les     bx,DWORD PTR [bp+14]    ;COUNT
  710.         mov     ax,WORD PTR es:[bx]
  711.         mov     WORD PTR [bp-14],ax
  712. ;
  713.         les     bx,DWORD PTR [bp+18]    ;NLEN
  714.         mov     ax,WORD PTR es:[bx]
  715.         mov     WORD PTR [bp-12],ax
  716. ;
  717.         les     bx, dword ptr [bp+22]   ;VNAME
  718.         mov     WORD PTR [bp-10],bx
  719.         mov     WORD PTR [bp-8],es
  720. ;
  721.         les     bx,DWORD PTR [bp+26]    ;TLEN
  722.         mov     ax,WORD PTR es:[bx]
  723.         mov     WORD PTR [bp-6],ax
  724. ;
  725.         les     bx, dword ptr [bp+30]   ;VTEXT
  726.         mov     WORD PTR [bp-4],bx
  727.         mov     WORD PTR [bp-2],es
  728. ;
  729.         mov     ax,7
  730.         push    ax
  731.         lea     ax,WORD PTR [bp-26]     ;XQLMPARMS
  732.         push    ss
  733.         push    ax
  734.         call    callxqlm
  735.         add     sp,6
  736. ;
  737.         les     bx,DWORD PTR [bp+6]     ;STATUS
  738.         mov     ax,WORD PTR [bp-18]
  739.         mov     WORD PTR es:[bx],ax
  740. ;
  741.         mov     ax,WORD PTR [bp-18]
  742.         IFDEF REALIA4
  743.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  744.         ENDIF
  745.         pop     ds
  746.         mov     sp,bp
  747.         pop     bp
  748.         ret
  749. ENDSUBFN        XQLSUBST
  750.  
  751. ;=============================================================================
  752. ;
  753. ;=============================================================================
  754. SUBFN   XQLVERSION
  755.         push    bp
  756.         mov     bp,sp
  757.         sub     sp,16  ; size of xqlparm block plus variable parameters
  758.         push    ds
  759.         mov     ax,DGROUP
  760.         mov     ds,ax
  761.         call    xqlm_loaded
  762.         or      ax,ax
  763.         jne     $I355
  764.         jmp     NotLoaded
  765. $I355:
  766.         les     bx, dword ptr [bp+10]   ;BUFFER
  767.         mov     WORD PTR [bp-4],bx
  768.         mov     WORD PTR [bp-2],es
  769. ;
  770.         mov     ax,12
  771.         push    ax
  772.         lea     ax,WORD PTR [bp-16]     ;XQLMPARMS
  773.         push    ss
  774.         push    ax
  775.         call    callxqlm
  776.         add     sp,6
  777. ;
  778.         les     bx,DWORD PTR [bp+6]     ;STATUS
  779.         mov     ax,WORD PTR [bp-8]
  780.         mov     WORD PTR es:[bx],ax
  781. ;
  782.         mov     ax,WORD PTR [bp-8]
  783.         IFDEF REALIA4
  784.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  785.         ENDIF
  786.  
  787.         IFDEF REALIA4
  788.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  789.         ENDIF
  790.  
  791.         pop     ds
  792.         mov     sp,bp
  793.         pop     bp
  794.         ret
  795. ENDSUBFN        XQLVERSION
  796.  
  797. ;=============================================================================
  798. ;
  799. ;=============================================================================
  800. SUBFN   XQLCONVERT
  801.         push    bp
  802.         mov     bp,sp
  803.         sub     sp,36  ; size of xqlparm block plus variable parameters
  804.         push    ds
  805.         mov     ax,DGROUP
  806.         mov     ds,ax
  807.         call    xqlm_loaded
  808.         or      ax,ax
  809.         jne     $I372
  810.         jmp     NotLoaded
  811. $I372:
  812.         mov     WORD PTR [bp-32],13
  813.         les     bx,DWORD PTR [bp+10]    ;OPTION
  814.         mov     ax,WORD PTR es:[bx]
  815.         mov     WORD PTR [bp-24],ax
  816. ;
  817.         les     bx,DWORD PTR [bp+14]    ;TYPE
  818.         mov     ax,WORD PTR es:[bx]
  819.         mov     WORD PTR [bp-22],ax
  820. ;
  821.         les     bx,DWORD PTR [bp+18]    ;SIZE
  822.         mov     ax,WORD PTR es:[bx]
  823.         mov     WORD PTR [bp-20],ax
  824. ;
  825.         les     bx,DWORD PTR [bp+22]    ;DEC
  826.         mov     ax,WORD PTR es:[bx]
  827.         mov     WORD PTR [bp-18],ax
  828. ;
  829.         les     bx,DWORD PTR [bp+26]    ;DSIZE
  830.         mov     ax,WORD PTR es:[bx]
  831.         mov     WORD PTR [bp-16],ax
  832. ;
  833.         les     bx, dword ptr [bp+30]   ;VALUE
  834.         mov     WORD PTR [bp-14],bx
  835.         mov     WORD PTR [bp-12],es
  836. ;
  837.         les     bx, dword ptr [bp+34]   ;RETVAL
  838.         mov     WORD PTR [bp-10],bx
  839.         mov     WORD PTR [bp-8],es
  840. ;
  841.         les     bx, dword ptr [bp+38]   ;MASK
  842.         mov     WORD PTR [bp-6],bx
  843.         mov     WORD PTR [bp-4],es
  844. ;
  845.         les     bx,DWORD PTR [bp+42]    ;JUST
  846.         mov     ax,WORD PTR es:[bx]
  847.         mov     WORD PTR [bp-2],ax
  848. ;
  849.         mov     ax,13
  850.         push    ax
  851.         lea     ax,WORD PTR [bp-36]     ;XQLMPARMS
  852.         push    ss
  853.         push    ax
  854.         call    callxqlm
  855.         add     sp,6
  856. ;
  857.         les     bx,DWORD PTR [bp+6]     ;STATUS
  858.         mov     ax,WORD PTR [bp-28]
  859.         mov     WORD PTR es:[bx],ax
  860. ;
  861.         mov     ax,WORD PTR [bp-28]
  862.         IFDEF REALIA4
  863.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  864.         ENDIF
  865.         pop     ds
  866.         mov     sp,bp
  867.         pop     bp
  868.         ret
  869. ENDSUBFN        XQLCONVERT
  870.  
  871. ;=============================================================================
  872. ;
  873. ;=============================================================================
  874. SUBFN   XQLVALIDATE
  875.         push    bp
  876.         mov     bp,sp
  877.         sub     sp,24  ; size of xqlparm block plus variable parameters
  878.         push    ds
  879.         mov     ax,DGROUP
  880.         mov     ds,ax
  881.         call    xqlm_loaded
  882.         or      ax,ax
  883.         jne     $I384
  884.         jmp     NotLoaded
  885. $I384:
  886.         mov     WORD PTR [bp-20],14
  887.         les     bx, dword ptr [bp+14]   ;FIELDNAME
  888.         mov     WORD PTR [bp-10],bx
  889.         mov     WORD PTR [bp-8],es
  890. ;
  891.         les     bx,DWORD PTR [bp+10]    ;COUNT
  892.         mov     ax,WORD PTR es:[bx]
  893.         mov     WORD PTR [bp-12],ax
  894. ;
  895.         les     bx,DWORD PTR [bp+18]    ;BUFLEN
  896.         mov     ax,WORD PTR es:[bx]
  897.         mov     WORD PTR [bp-6],ax
  898. ;
  899.         les     bx, dword ptr [bp+22]   ;DATA
  900.         mov     WORD PTR [bp-4],bx
  901.         mov     WORD PTR [bp-2],es
  902. ;
  903.         mov     ax,14
  904.         push    ax
  905.         lea     ax,WORD PTR [bp-24]     ;XQLMPARMS
  906.         push    ss
  907.         push    ax
  908.         call    callxqlm
  909.         add     sp,6
  910. ;
  911.         les     bx,DWORD PTR [bp+6]     ;STATUS
  912.         mov     ax,WORD PTR [bp-16]
  913.         mov     WORD PTR es:[bx],ax
  914. ;
  915.         les     bx,DWORD PTR [bp+10]    ;COUNT
  916.         mov     ax,WORD PTR [bp-12]
  917.         mov     WORD PTR es:[bx],ax
  918. ;
  919.         mov     ax,WORD PTR [bp-16]
  920.         IFDEF REALIA4
  921.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  922.         ENDIF
  923.         pop     ds
  924.         mov     sp,bp
  925.         pop     bp
  926.         ret
  927. ENDSUBFN        XQLVALIDATE
  928.  
  929. ;=============================================================================
  930. ;
  931. ;=============================================================================
  932. SUBFN   XQLMASK
  933.         push    bp
  934.         mov     bp,sp
  935.         sub     sp,26  ; size of xqlparm block plus variable parameters
  936.         push    ds
  937.         mov     ax,DGROUP
  938.         mov     ds,ax
  939. ; Line 794
  940.         push    cs
  941.         call    xqlm_loaded
  942.         or      ax,ax
  943.         jne     $I398
  944.         jmp     NotLoaded
  945. $I398:
  946.         mov     WORD PTR [bp-22],15
  947.         les     bx,DWORD PTR [bp+10]    ;OPTION
  948.         mov     ax,WORD PTR es:[bx]
  949.         mov     WORD PTR [bp-14],ax
  950. ;
  951.         les     bx,DWORD PTR [bp+14]    ;TYPE
  952.         mov     ax,WORD PTR es:[bx]
  953.         mov     WORD PTR [bp-12],ax
  954. ;
  955.         les     bx,DWORD PTR [bp+18]    ;SIZE
  956.         mov     ax,WORD PTR es:[bx]
  957.         mov     WORD PTR [bp-10],ax
  958. ;
  959.         les     bx,DWORD PTR [bp+22]    ;DEC
  960.         mov     ax,WORD PTR es:[bx]
  961.         mov     WORD PTR [bp-8],ax
  962. ;
  963.         les     bx,DWORD PTR [bp+26]    ;LEN
  964.         mov     ax,WORD PTR es:[bx]
  965.         mov     WORD PTR [bp-6],ax
  966. ;
  967.         les     bx, dword ptr [bp+30]   ;MASK
  968.         mov     WORD PTR [bp-4],bx
  969.         mov     WORD PTR [bp-2],es
  970. ;
  971.         mov     ax,15
  972.         push    ax
  973.         lea     ax,WORD PTR [bp-26]     ;XQLMPARMS
  974.         push    ss
  975.         push    ax
  976.         call    callxqlm
  977.         add     sp,6
  978. ;
  979.         les     bx,DWORD PTR [bp+26]    ;LEN
  980.         mov     ax,WORD PTR [bp-6]
  981.         mov     WORD PTR es:[bx],ax
  982. ;
  983.         les     bx,DWORD PTR [bp+6]     ;STATUS
  984.         mov     ax,WORD PTR [bp-18]
  985.         mov     WORD PTR es:[bx],ax
  986. ;
  987.         mov     ax,WORD PTR [bp-18]
  988.         IFDEF REALIA4
  989.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  990.         ENDIF
  991.         pop     ds
  992.         mov     sp,bp
  993.         pop     bp
  994.         ret
  995. ENDSUBFN        XQLMASK
  996.  
  997. ;=============================================================================
  998. ;
  999. ;=============================================================================
  1000. SUBFN   XQLSPUTILITY
  1001.         push    bp
  1002.         mov     bp,sp
  1003.         sub     sp,24  ; size of xqlparm block plus variable parameters
  1004.         push    di
  1005.         push    si
  1006.         push    ds
  1007.         mov     ax,DGROUP
  1008.         mov     ds,ax
  1009. ;
  1010. ;       CURSORID = [bp+10]
  1011. ;       OPTION   = [bp+14]
  1012. ;       STMNTCNT = [bp+18]
  1013. ;       STMNTID  = [bp+22]
  1014. ;       BLEN     = [bp+26]
  1015. ;       BUFFER   = [bp+30]
  1016. ;
  1017.         push    cs
  1018.         call    xqlm_loaded
  1019.         or      ax,ax
  1020.         jne     SPU_1
  1021.         jmp     NotLoaded
  1022.  
  1023. SPU_1:
  1024.         les     bx, DWORD PTR [bp+10]           ; CURSORID
  1025.         mov     ax,WORD PTR es:[bx]
  1026.         mov     WORD PTR [bp-18],ax
  1027.  
  1028.         les     bx, DWORD PTR [bp+14]           ; OPTION
  1029.         mov     ax, WORD PTR es:[bx]
  1030.         mov     WORD PTR [bp-12],ax
  1031.  
  1032.         les     bx,DWORD PTR [bp+18]            ; STMNTCNT
  1033.         mov     ax,WORD PTR es:[bx]
  1034.         mov     WORD PTR [bp-10],ax
  1035.  
  1036.         les     bx,DWORD PTR [bp+22]            ; STMNTID
  1037.         mov     ax,WORD PTR es:[bx]
  1038.         mov     WORD PTR [bp-8],ax
  1039. ;
  1040.         les     bx,DWORD PTR [bp+26]            ; BLEN
  1041.         mov     ax,WORD PTR es:[bx]
  1042.         mov     WORD PTR [bp-6],ax
  1043. ;
  1044.         les     bx, dword ptr [bp+30]           ; BUFFER
  1045.         mov     word ptr [bp-4], bx
  1046.         mov     word ptr [bp-2], es
  1047.  
  1048.         mov     ax, 16                          ; Function number
  1049.         push    ax
  1050.         lea     ax, word ptr [bp-24]            ; XQLMPARMS
  1051.         push    ss
  1052.         push    ax
  1053.         call    callxqlm
  1054.         add     sp, 6
  1055.         les     bx, dword ptr [bp+18]           ; STMNTCNT
  1056.         mov     ax, word ptr [bp-10]
  1057.         mov     word ptr es:[bx], ax
  1058. ;
  1059.         les     bx, dword ptr [bp+22]           ; STMNTID
  1060.         mov     ax, word ptr [bp-8]
  1061.         mov     word ptr es:[bx], ax
  1062. ;
  1063.         les     bx, dword ptr [bp+26]           ; BLEN
  1064.         mov     ax, word ptr [bp-6]
  1065.         mov     word ptr es:[bx], ax
  1066. ;
  1067.         les     bx, dword ptr [bp+6]            ; STATUS
  1068.         mov     ax, word ptr [bp-16]
  1069.         mov     word ptr es:[bx], ax
  1070. ;
  1071.         pop     ds
  1072.         mov     sp,bp
  1073.         pop     bp
  1074.         ret
  1075. ENDSUBFN        XQLSPUTILITY
  1076.  
  1077. ;=============================================================================
  1078. ;
  1079. ;       Relational Primitive interface to COBOL language.
  1080. ;
  1081. ;=============================================================================
  1082. SUBFN   callxqlp
  1083.         push    bp
  1084.         mov     bp,sp
  1085.         push    ds
  1086.         mov     ax,DGROUP
  1087.         mov     ds,ax
  1088.         les     bx,DWORD PTR [bp+6]     ;XQLPPARMS
  1089.         mov     BYTE PTR es:[bx],  'X'
  1090.         mov     BYTE PTR es:[bx+1],'Q'
  1091.         mov     BYTE PTR es:[bx+2],'L'
  1092.         mov     BYTE PTR es:[bx+3],'P'
  1093.         mov     ax,WORD PTR [bp+10]     ;fcn
  1094.         mov     WORD PTR es:[bx+4],ax
  1095.         call    callxql
  1096.         pop     ds
  1097.         pop     bp
  1098.         ret
  1099. ENDSUBFN        callxqlp
  1100.  
  1101. ;=============================================================================
  1102. ;
  1103. ;=============================================================================
  1104. SUBFN   xqlloaded
  1105.         push    bp
  1106.         mov     bp,sp
  1107.         sub     sp,30
  1108.         push    ds
  1109.         mov     ax,DGROUP
  1110.         mov     ds,ax
  1111.         mov     ax, 357bh
  1112.         int     21h                     ; Is Btrieve installed?
  1113. ;
  1114.         xor     ax,ax
  1115.         cmp     bx, 33h                 ; Check for offset 33
  1116.         jne     $I902
  1117.         mov     WORD PTR [bp-14],-1
  1118.         lea     ax,WORD PTR [bp-2]      ;btrstat
  1119.         mov     WORD PTR [bp-6],ax
  1120.         mov     WORD PTR [bp-4],ss
  1121.         mov     ax,-1
  1122.         push    ax
  1123.         lea     ax,WORD PTR [bp-28]     ;XQLPPARMS
  1124.         push    ss
  1125.         push    ax
  1126.         call    callxqlp
  1127.         add     sp,6
  1128.         xor     ax,ax
  1129.         cmp     WORD PTR [bp-20],201
  1130.         je      $I903
  1131.         cmp     WORD PTR [bp-20],503
  1132.         jne     $I902
  1133. $I903:
  1134.         mov     ax,1                    ;stat
  1135. $I902:
  1136.         pop     ds
  1137.         mov     sp,bp
  1138.         pop     bp
  1139.         ret
  1140. ENDSUBFN        xqlloaded
  1141.  
  1142. ;=============================================================================
  1143. ;
  1144. ;=============================================================================
  1145. SUBFN   NotLoaded_xqlp
  1146.         les     bx,DWORD PTR [bp+6]     ;STATUS
  1147.         mov     WORD PTR es:[bx],200
  1148.         mov     ax,200
  1149.  
  1150.         IFDEF REALIA4
  1151.         mov     ss:CSA$BASE.CSA$RTN,ax ;save Realia 4 return code
  1152.         ENDIF
  1153.  
  1154.         pop     ds
  1155.         mov     sp,bp
  1156.         pop     bp
  1157.         ret
  1158. ENDSUBFN        NotLoaded_xqlp
  1159.  
  1160. ;=============================================================================
  1161. ;
  1162. ;=============================================================================
  1163. SUBFN   XCOMPUTE
  1164.         push    bp
  1165.         mov     bp,sp
  1166.         sub     sp,28
  1167.         push    ds
  1168.         mov     ax,DGROUP
  1169.         mov     ds,ax
  1170.         call    xqlloaded
  1171.         or      ax,ax
  1172.         jne     $I380
  1173.         jmp     NotLoaded_xqlp
  1174. $I380:
  1175.         les     bx,DWORD PTR [bp+10]    ;HANDLE
  1176.         mov     ax,WORD PTR es:[bx]
  1177.         mov     WORD PTR [bp-22],ax
  1178. ;
  1179.         les     bx,DWORD PTR [bp+14]    ;FLDNAME
  1180.         mov     WORD PTR [bp-16],bx
  1181.         mov     WORD PTR [bp-14],es
  1182. ;
  1183.         les     bx,DWORD PTR [bp+18]    ;TYPE
  1184.         mov     ax,WORD PTR es:[bx]
  1185.         mov     WORD PTR [bp-12],ax
  1186. ;
  1187.         les     bx,DWORD PTR [bp+22]    ;SIZE
  1188.         mov     ax,WORD PTR es:[bx]
  1189.         mov     WORD PTR [bp-10],ax
  1190. ;
  1191.         les     bx,DWORD PTR [bp+26]    ;DEC
  1192.         mov     ax,WORD PTR es:[bx]
  1193.         mov     WORD PTR [bp-8],ax
  1194. ;
  1195.         les     bx,DWORD PTR [bp+30]    ;EXPLEN
  1196.         mov     ax,WORD PTR es:[bx]
  1197.         mov     WORD PTR [bp-6],ax
  1198. ;
  1199.         les     bx,DWORD PTR [bp+34]    ;EXPBUF
  1200.         mov     WORD PTR [bp-4],bx
  1201.         mov     WORD PTR [bp-2],es
  1202. ;
  1203.         mov     ax,8
  1204.         push    ax
  1205.         lea     ax,WORD PTR [bp-28]     ;XQLPPARMS
  1206.         push    ss
  1207.         push    ax
  1208.         call    callxqlp
  1209.         add     sp,6
  1210. ;
  1211.         cmp     WORD PTR [bp-20],0
  1212.         jle     $I382
  1213. ;
  1214.         les     bx,DWORD PTR [bp+30]    ;EXPLEN
  1215.         mov     ax,WORD PTR [bp-6]
  1216.         mov     WORD PTR es:[bx],ax
  1217. ;
  1218. $I382:
  1219.         les     bx,DWORD PTR [bp+6]     ;STATUS
  1220.         mov     ax,WORD PTR [bp-20]
  1221.         mov     WORD PTR es:[bx],ax
  1222. ;
  1223.         mov     ax,WORD PTR [bp-20]
  1224.         IFDEF REALIA4
  1225.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  1226.         ENDIF
  1227.         pop     ds
  1228.         mov     sp,bp
  1229.         pop     bp
  1230.         ret
  1231. ENDSUBFN        XCOMPUTE
  1232.  
  1233. ;=============================================================================
  1234. ;
  1235. ;=============================================================================
  1236. SUBFN   XDESCRIBE
  1237.         push    bp
  1238.         mov     bp,sp
  1239.         sub     sp,24
  1240.         push    ds
  1241.         mov     ax,DGROUP
  1242.         mov     ds,ax
  1243. ;
  1244. ;       HANDLE = 10
  1245. ;       SUBF = 14
  1246. ;       DLEN = 18
  1247. ;       POS = 22
  1248. ;       COUNT = 26
  1249. ;       BUF = 30
  1250. ;       XQLPPARMS = -24
  1251. ;       STATUS = 6
  1252. ;
  1253.         call    xqlloaded
  1254.         or      ax,ax
  1255.         jne     $I396
  1256.         jmp     NotLoaded_xqlp
  1257. ;
  1258. ;
  1259. $I396:
  1260. ;
  1261.         les     bx,DWORD PTR [bp+10]    ;HANDLE
  1262.         mov     ax,WORD PTR es:[bx]
  1263.         mov     WORD PTR [bp-18],ax
  1264. ;
  1265.         les     bx,DWORD PTR [bp+14]    ;SUBF
  1266.         mov     ax,WORD PTR es:[bx]
  1267.         mov     WORD PTR [bp-12],ax
  1268. ;
  1269.         les     bx,DWORD PTR [bp+18]    ;DLEN
  1270.         mov     ax,WORD PTR es:[bx]
  1271.         mov     WORD PTR [bp-10],ax
  1272. ;
  1273.         les     bx,DWORD PTR [bp+22]    ;POS
  1274.         mov     ax,WORD PTR es:[bx]
  1275.         mov     WORD PTR [bp-8],ax
  1276. ;
  1277.         les     bx,DWORD PTR [bp+26]    ;COUNT
  1278.         mov     ax,WORD PTR es:[bx]
  1279.         mov     WORD PTR [bp-6],ax
  1280. ;
  1281.         mov     ax,WORD PTR [bp+30]     ;BUF
  1282.         mov     dx,WORD PTR [bp+32]
  1283.         mov     WORD PTR [bp-4],ax
  1284.         mov     WORD PTR [bp-2],dx
  1285. ;
  1286.         mov     ax,6
  1287.         push    ax
  1288.         lea     ax,WORD PTR [bp-24]     ;XQLPPARMS
  1289.         push    ss
  1290.         push    ax
  1291.         call    callxqlp
  1292.         add     sp,6
  1293. ;
  1294.         les     bx,DWORD PTR [bp+18]    ;DLEN
  1295.         mov     ax,WORD PTR [bp-10]
  1296.         mov     WORD PTR es:[bx],ax
  1297. ;
  1298.         les     bx,DWORD PTR [bp+26]    ;COUNT
  1299.         mov     ax,WORD PTR [bp-6]
  1300.         mov     WORD PTR es:[bx],ax
  1301. ;
  1302.         les     bx,DWORD PTR [bp+6]     ;STATUS
  1303.         mov     ax,WORD PTR [bp-16]
  1304.         mov     WORD PTR es:[bx],ax
  1305. ;
  1306.         mov     ax,WORD PTR [bp-16]
  1307.         IFDEF REALIA4
  1308.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  1309.         ENDIF
  1310.         pop     ds
  1311.         mov     sp,bp
  1312.         pop     bp
  1313.         ret
  1314.  
  1315. ENDSUBFN        XDESCRIBE
  1316.  
  1317. ;=============================================================================
  1318. ;
  1319. ;=============================================================================
  1320. SUBFN   XFETCH
  1321.         push    bp
  1322.         mov     bp,sp
  1323.         sub     sp,28
  1324.         push    ds
  1325.         mov     ax,DGROUP
  1326.         mov     ds,ax
  1327. ;
  1328. ;       STATUS = 6
  1329. ;       HANDLE = 10
  1330. ;       DLEN = 14
  1331. ;       OP = 18
  1332. ;       SELECT = 22
  1333. ;       REJECT = 26
  1334. ;       BUF = 30
  1335. ;       XQLPPARMS = -28
  1336. ;
  1337.         call    xqlloaded
  1338.         or      ax,ax
  1339.         jne     $I421
  1340.         jmp     NotLoaded_xqlp
  1341. $I421:
  1342. ;
  1343.         les     bx,DWORD PTR [bp+10]    ;HANDLE
  1344.         mov     ax,WORD PTR es:[bx]
  1345.         mov     WORD PTR [bp-22],ax
  1346. ;
  1347.         les     bx,DWORD PTR [bp+14]    ;DLEN
  1348.         mov     ax,WORD PTR es:[bx]
  1349.         mov     WORD PTR [bp-16],ax
  1350. ;
  1351.         les     bx,DWORD PTR [bp+18]    ;OP
  1352.         mov     ax,WORD PTR es:[bx]
  1353.         mov     WORD PTR [bp-14],ax
  1354. ;
  1355.         les     bx,DWORD PTR [bp+22]    ;SELECT
  1356.         mov     ax,WORD PTR es:[bx]
  1357.         cwd
  1358.         mov     WORD PTR [bp-12],ax
  1359.         mov     WORD PTR [bp-10],dx
  1360. ;
  1361.         les     bx,DWORD PTR [bp+26]    ;REJECT
  1362.         mov     ax,WORD PTR es:[bx]
  1363.         cwd
  1364.         mov     WORD PTR [bp-8],ax
  1365.         mov     WORD PTR [bp-6],dx
  1366. ;
  1367.         mov     ax,WORD PTR [bp+30]     ;BUF
  1368.         mov     dx,WORD PTR [bp+32]
  1369.         mov     WORD PTR [bp-4],ax
  1370.         mov     WORD PTR [bp-2],dx
  1371. ;
  1372.         mov     ax,7
  1373.         push    ax
  1374.         lea     ax,WORD PTR [bp-28]     ;XQLPPARMS
  1375.         push    ss
  1376.         push    ax
  1377.         call    callxqlp
  1378.         add     sp,6
  1379. ;
  1380.         les     bx,DWORD PTR [bp+14]    ;DLEN
  1381.         mov     ax,WORD PTR [bp-16]
  1382.         mov     WORD PTR es:[bx],ax
  1383. ;
  1384.         les     bx,DWORD PTR [bp+22]    ;SELECT
  1385.         mov     ax,WORD PTR [bp-12]
  1386.         mov     WORD PTR es:[bx],ax
  1387. ;
  1388.         les     bx,DWORD PTR [bp+26]    ;REJECT
  1389.         mov     ax,WORD PTR [bp-8]
  1390.         mov     WORD PTR es:[bx],ax
  1391. ;
  1392.         les     bx,DWORD PTR [bp+6]     ;STATUS
  1393.         mov     ax,WORD PTR [bp-20]
  1394.         mov     WORD PTR es:[bx],ax
  1395. ;
  1396.         mov     ax,WORD PTR [bp-20]
  1397.         IFDEF REALIA4
  1398.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  1399.         ENDIF
  1400.         pop     ds
  1401.         mov     sp,bp
  1402.         pop     bp
  1403.         ret
  1404.  
  1405. ENDSUBFN        XFETCH
  1406.  
  1407. ;=============================================================================
  1408. ;
  1409. ;=============================================================================
  1410. SUBFN   XFIELD
  1411.         push    bp
  1412.         mov     bp,sp
  1413.         sub     sp,22
  1414.         push    ds
  1415.         mov     ax,DGROUP
  1416.         mov     ds,ax
  1417.         call    xqlloaded
  1418.         or      ax,ax
  1419.         jne     $I434
  1420.         jmp     NotLoaded_xqlp
  1421. $I434:
  1422.         les     bx,DWORD PTR [bp+10]    ;HANDLE
  1423.         mov     ax,WORD PTR es:[bx]
  1424.         mov     WORD PTR [bp-16],ax
  1425. ;
  1426.         les     bx,DWORD PTR [bp+14]    ;SUBFUNCTION
  1427.         mov     ax,WORD PTR es:[bx]
  1428.         mov     WORD PTR [bp-10],ax
  1429. ;
  1430.         les     bx,DWORD PTR [bp+18]    ;POS
  1431.         mov     ax,WORD PTR es:[bx]
  1432.         mov     WORD PTR [bp-8],ax
  1433. ;
  1434.         les     bx,DWORD PTR [bp+22]    ;COUNT
  1435.         mov     ax,WORD PTR es:[bx]
  1436.         mov     WORD PTR [bp-6],ax
  1437. ;
  1438.         les     bx,dword ptr [bp+26]
  1439.         mov     WORD PTR [bp-4],bx
  1440.         mov     WORD PTR [bp-2],es
  1441. ;
  1442.         mov     ax,5
  1443.         push    ax
  1444.         lea     ax,WORD PTR [bp-22]     ;XQLPPARMS
  1445.         push    ss
  1446.         push    ax
  1447.         call    callxqlp
  1448.         add     sp,6
  1449. ;
  1450.         cmp     WORD PTR [bp-14],0
  1451.         jl      $I435
  1452. ;
  1453.         les     bx,DWORD PTR [bp+22]    ;COUNT
  1454.         mov     ax,WORD PTR [bp-6]
  1455.         mov     WORD PTR es:[bx],ax
  1456. ;
  1457. $I435:
  1458.         les     bx,DWORD PTR [bp+6]     ;STATUS
  1459.         mov     ax,WORD PTR [bp-14]
  1460.         mov     WORD PTR es:[bx],ax
  1461. ;
  1462.         mov     ax,WORD PTR [bp-14]
  1463.         IFDEF REALIA4
  1464.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  1465.         ENDIF
  1466.         pop     ds
  1467.         mov     sp,bp
  1468.         pop     bp
  1469.         ret
  1470.  
  1471. ENDSUBFN        XFIELD
  1472.  
  1473. ;=============================================================================
  1474. ;
  1475. ;=============================================================================
  1476. SUBFN   XFREE
  1477.         push    bp
  1478.         mov     bp,sp
  1479.         sub     sp,14
  1480.         push    ds
  1481.         mov     ax,DGROUP
  1482.         mov     ds,ax
  1483. ;
  1484. ;       STATUS = 6
  1485. ;       HANDLE = 10
  1486. ;       XQLPPARMS = -14
  1487. ;
  1488.         call    xqlloaded
  1489.         or      ax,ax
  1490.         jne     $I444
  1491.         jmp     NotLoaded_xqlp
  1492. $I444:
  1493.         les     bx,DWORD PTR [bp+10]    ;HANDLE
  1494.         mov     ax,WORD PTR es:[bx]
  1495.         mov     WORD PTR [bp-8],ax
  1496. ;
  1497.         mov     ax,3
  1498.         push    ax
  1499.         lea     ax,WORD PTR [bp-14]     ;XQLPPARMS
  1500.         push    ss
  1501.         push    ax
  1502.         call    callxqlp
  1503.         add     sp,6
  1504. ;
  1505.         les     bx,DWORD PTR [bp+6]     ;STATUS
  1506.         mov     ax,WORD PTR [bp-6]
  1507.         mov     WORD PTR es:[bx],ax
  1508. ;
  1509.         mov     ax,WORD PTR [bp-6]
  1510.         IFDEF REALIA4
  1511.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  1512.         ENDIF
  1513.         pop     ds
  1514.         mov     sp,bp
  1515.         pop     bp
  1516.         ret
  1517.  
  1518. ENDSUBFN        XFREE
  1519.  
  1520. ;=============================================================================
  1521. ;
  1522. ;=============================================================================
  1523. SUBFN   XINSERT
  1524.         push    bp
  1525.         mov     bp,sp
  1526.         sub     sp,26
  1527.         push    ds
  1528.         mov     ax,DGROUP
  1529.         mov     ds,ax
  1530. ;
  1531. ;       FILES = 18
  1532. ;       EDITCNT = 22
  1533. ;       BUF = 26
  1534. ;       XQLPPARMS = -26
  1535. ;       STATUS = 6
  1536. ;       HANDLE = 10
  1537. ;       FCOUNT = 14
  1538. ;
  1539.         call    xqlloaded
  1540.         or      ax,ax
  1541.         jne     $I457
  1542. ;
  1543.         jmp     NotLoaded_xqlp
  1544. $I457:
  1545.         les     bx,DWORD PTR [bp+10]    ;HANDLE
  1546.         mov     ax,WORD PTR es:[bx]
  1547.         mov     WORD PTR [bp-20],ax
  1548. ;
  1549.         les     bx,DWORD PTR [bp+14]    ;FCOUNT
  1550.         mov     ax,WORD PTR es:[bx]
  1551.         mov     WORD PTR [bp-14],ax
  1552. ;
  1553.         les     bx,dword ptr [bp+18]
  1554.         mov     WORD PTR [bp-12],bx
  1555.         mov     WORD PTR [bp-10],es
  1556. ;
  1557.         les     bx,DWORD PTR [bp+22]    ;EDITCNT
  1558.         mov     ax,WORD PTR es:[bx]
  1559.         cwd
  1560.         mov     WORD PTR [bp-8],ax
  1561.         mov     WORD PTR [bp-6],dx
  1562. ;
  1563.         les     bx,dword ptr [bp+26]
  1564.         mov     WORD PTR [bp-4],bx
  1565.         mov     WORD PTR [bp-2],es
  1566. ;
  1567.         mov     ax,12
  1568.         push    ax
  1569.         lea     ax,WORD PTR [bp-26]     ;XQLPPARMS
  1570.         push    ss
  1571.         push    ax
  1572.         call    callxqlp
  1573.         add     sp,6
  1574. ;
  1575.         les     bx,DWORD PTR [bp+22]    ;EDITCNT
  1576.         mov     ax,WORD PTR [bp-8]
  1577.         mov     WORD PTR es:[bx],ax
  1578. ;
  1579.         les     bx,DWORD PTR [bp+14]    ;FCOUNT
  1580.         mov     ax,WORD PTR [bp-14]
  1581.         mov     WORD PTR es:[bx],ax
  1582. ;
  1583.         les     bx,DWORD PTR [bp+6]     ;STATUS
  1584.         mov     ax,WORD PTR [bp-18]
  1585.         mov     WORD PTR es:[bx],ax
  1586. ;
  1587.         mov     ax,WORD PTR [bp-18]
  1588.         IFDEF REALIA4
  1589.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  1590.         ENDIF
  1591.         pop     ds
  1592.         mov     sp,bp
  1593.         pop     bp
  1594.         ret
  1595. ENDSUBFN        XINSERT
  1596.  
  1597. ;=============================================================================
  1598. ;
  1599. ;=============================================================================
  1600. SUBFN   XJOIN
  1601.         push    bp
  1602.         mov     bp,sp
  1603.         sub     sp,34
  1604.         push    ds
  1605.         mov     ax,DGROUP
  1606.         mov     ds,ax
  1607.         call    xqlloaded
  1608.         or      ax,ax
  1609.         jne     $I473
  1610.         jmp     NotLoaded_xqlp
  1611. $I473:
  1612.         les     bx,DWORD PTR [bp+10]    ;HANDLE
  1613.         mov     ax,WORD PTR es:[bx]
  1614.         mov     WORD PTR [bp-28],ax
  1615. ;
  1616.         les     bx,dword ptr [bp+14]
  1617.         mov     WORD PTR [bp-22],bx
  1618.         mov     WORD PTR [bp-20],es
  1619. ;
  1620.         les     bx,dword ptr [bp+18]
  1621.         mov     WORD PTR [bp-18],bx
  1622.         mov     WORD PTR [bp-16],es
  1623. ;
  1624.         les     bx,DWORD PTR [bp+22]    ;JOINTYPE
  1625.         mov     ax,WORD PTR es:[bx]
  1626.         mov     WORD PTR [bp-14],ax
  1627. ;
  1628.         les     bx,DWORD PTR [bp+26]    ;PCOUNT
  1629.         mov     ax,WORD PTR es:[bx]
  1630.         mov     WORD PTR [bp-12],ax
  1631. ;
  1632.         les     bx,dword ptr [bp+30]
  1633.         mov     WORD PTR [bp-10],bx
  1634.         mov     WORD PTR [bp-8],es
  1635. ;
  1636.         les     bx,DWORD PTR [bp+34]    ;SCOUNT
  1637.         mov     ax,WORD PTR es:[bx]
  1638.         mov     WORD PTR [bp-6],ax
  1639. ;
  1640.         les     bx,dword ptr [bp+38]    ;SNAMES
  1641.         mov     WORD PTR [bp-4],bx
  1642.         mov     WORD PTR [bp-2],es
  1643. ;
  1644.         mov     ax,11
  1645.         push    ax
  1646.         lea     ax,WORD PTR [bp-34]     ;XQLPPARMS
  1647.         push    ss
  1648.         push    ax
  1649.         call    callxqlp
  1650.         add     sp,6
  1651. ;
  1652.         les     bx,DWORD PTR [bp+6]     ;STATUS
  1653.         mov     ax,WORD PTR [bp-26]
  1654.         mov     WORD PTR es:[bx],ax
  1655. ;
  1656.         mov     ax,WORD PTR [bp-26]
  1657.         IFDEF REALIA4
  1658.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  1659.         ENDIF
  1660.         pop     ds
  1661.         mov     sp,bp
  1662.         pop     bp
  1663.         ret
  1664. ENDSUBFN        XJOIN
  1665.  
  1666. ;=============================================================================
  1667. ;
  1668. ;=============================================================================
  1669. SUBFN   XLOGIN
  1670.         push    bp
  1671.         mov     bp,sp
  1672.         sub     sp,34
  1673.         push    ds
  1674.         mov     ax,DGROUP
  1675.         mov     ds,ax
  1676.         call    xqlloaded
  1677.         or      ax,ax
  1678.         jne     $I487
  1679.         jmp     NotLoaded_xqlp
  1680. $I487:
  1681.         mov     WORD PTR [bp-28],0
  1682.         les     bx,dword ptr [bp+10]    ;userid
  1683.         mov     WORD PTR [bp-22],bx
  1684.         mov     WORD PTR [bp-20],es
  1685. ;
  1686.         les     bx,dword ptr [bp+14]    ;pswd
  1687.         mov     WORD PTR [bp-18],bx
  1688.         mov     WORD PTR [bp-16],es
  1689. ;
  1690.         les     bx,dword ptr [bp+18]    ;dictionary
  1691.         mov     WORD PTR [bp-14],bx
  1692.         mov     WORD PTR [bp-12],es
  1693. ;
  1694.         les     bx,dword ptr [bp+22]    ;filepath
  1695.         mov     WORD PTR [bp-10],bx
  1696.         mov     WORD PTR [bp-8],es
  1697. ;
  1698.         les     bx,dword ptr [bp+26]    ;machine
  1699.         mov     WORD PTR [bp-6],bx
  1700.         mov     WORD PTR [bp-4],es
  1701. ;
  1702.         les     bx,DWORD PTR [bp+30]    ;PROCESSID
  1703.         mov     ax,WORD PTR es:[bx]
  1704.         mov     WORD PTR [bp-2],ax
  1705. ;
  1706.         sub     ax,ax
  1707.         push    ax
  1708.         lea     ax,WORD PTR [bp-34]     ;XQLPPARMS
  1709.         push    ss
  1710.         push    ax
  1711.         call    callxqlp
  1712.         add     sp,6
  1713. ;
  1714.         cmp     WORD PTR [bp-26],0
  1715.         jne     $I488
  1716. ;
  1717.         mov     ax,WORD PTR [bp-24]
  1718.         mov     SessionID,ax
  1719. $I488:
  1720.         les     bx,DWORD PTR [bp+6]     ;STATUS
  1721.         mov     ax,WORD PTR [bp-26]
  1722.         mov     WORD PTR es:[bx],ax
  1723. ;
  1724.         mov     ax,WORD PTR [bp-26]
  1725.         IFDEF REALIA4
  1726.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  1727.         ENDIF
  1728.         pop     ds
  1729.         mov     sp,bp
  1730.         pop     bp
  1731.         ret
  1732. ENDSUBFN        XLOGIN
  1733.  
  1734. ;=============================================================================
  1735. ;
  1736. ;=============================================================================
  1737. SUBFN   XLOGOUT
  1738.         push    bp
  1739.         mov     bp,sp
  1740.         sub     sp,14
  1741.         push    ds
  1742.         mov     ax,DGROUP
  1743.         mov     ds,ax
  1744.         call    xqlloaded
  1745.         or      ax,ax
  1746.         jne     $I496
  1747.         jmp     NotLoaded_xqlp
  1748. $I496:
  1749.         mov     WORD PTR [bp-8],0
  1750.         mov     ax,1
  1751.         push    ax
  1752.         lea     ax,WORD PTR [bp-14]     ;XQLPPARMS
  1753.         push    ss
  1754.         push    ax
  1755.         call    callxqlp
  1756.         add     sp,6
  1757.         les     bx,DWORD PTR [bp+6]     ;STATUS
  1758.         mov     ax,WORD PTR [bp-6]
  1759.         mov     WORD PTR es:[bx],ax
  1760. ;
  1761.         mov     ax,WORD PTR [bp-6]
  1762.         IFDEF REALIA4
  1763.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  1764.         ENDIF
  1765.         pop     ds
  1766.         mov     sp,bp
  1767.         pop     bp
  1768.         ret
  1769.  
  1770. ENDSUBFN        XLOGOUT
  1771.  
  1772. ;=============================================================================
  1773. ;
  1774. ;=============================================================================
  1775. SUBFN   XMOVEFLD
  1776.         push    bp
  1777.         mov     bp,sp
  1778.         sub     sp,16
  1779.         push    ds
  1780.         mov     ax,DGROUP
  1781.         mov     ds,ax
  1782.         call    xqlloaded
  1783.         or      ax,ax
  1784.         jne     $I407
  1785.         jmp     NotLoaded_xqlp
  1786. $I407:
  1787. ;
  1788.         les     bx,DWORD PTR [bp+10]    ;HANDLE
  1789.         mov     ax,WORD PTR es:[bx]
  1790.         mov     WORD PTR [bp-10],ax
  1791. ;
  1792.         les     bx,DWORD PTR [bp+14]    ;FROMPOS
  1793.         mov     ax,WORD PTR es:[bx]
  1794.         mov     WORD PTR [bp-4],ax
  1795. ;
  1796.         les     bx,DWORD PTR [bp+18]    ;TOPOS
  1797.         mov     ax,WORD PTR es:[bx]
  1798.         mov     WORD PTR [bp-2],ax
  1799. ;
  1800.         mov     ax,4
  1801.         push    ax
  1802.         lea     ax,WORD PTR [bp-16]     ;XQLPPARMS
  1803.         push    ss
  1804.         push    ax
  1805.         call    callxqlp
  1806.         add     sp,6
  1807. ;
  1808.         les     bx,DWORD PTR [bp+6]     ;STATUS
  1809.         mov     ax,WORD PTR [bp-8]
  1810.         mov     WORD PTR es:[bx],ax
  1811. ;
  1812.         mov     ax,WORD PTR [bp-8]
  1813.         IFDEF REALIA4
  1814.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  1815.         ENDIF
  1816.         pop     ds
  1817.         mov     sp,bp
  1818.         pop     bp
  1819.         ret
  1820.  
  1821. ENDSUBFN        XMOVEFLD
  1822.  
  1823. ;=============================================================================
  1824. ;
  1825. ;=============================================================================
  1826. SUBFN   XNEW
  1827.         push    bp
  1828.         mov     bp,sp
  1829.         sub     sp,22
  1830.         push    ds
  1831.         mov     ax,DGROUP
  1832.         mov     ds,ax
  1833.         call    xqlloaded
  1834.         or      ax,ax
  1835.         jne     $I508
  1836.         jmp     NotLoaded_xqlp
  1837. $I508:
  1838.         mov     WORD PTR [bp-16],-1
  1839.         les     bx,dword ptr [bp+14]    ;filename
  1840.         mov     WORD PTR [bp-10],bx
  1841.         mov     WORD PTR [bp-8],es
  1842. ;
  1843.         les     bx,dword ptr [bp+18]    ;owner
  1844.         mov     WORD PTR [bp-6],bx
  1845.         mov     WORD PTR [bp-4],es
  1846. ;
  1847.         les     bx,DWORD PTR [bp+22]    ;OPENMODE
  1848.         mov     ax,WORD PTR es:[bx]
  1849.         mov     WORD PTR [bp-2],ax
  1850. ;
  1851.         mov     ax,2
  1852.         push    ax
  1853.         lea     ax,WORD PTR [bp-22]     ;XQLPPARMS
  1854.         push    ss
  1855.         push    ax
  1856.         call    callxqlp
  1857.         add     sp,6
  1858. ;
  1859.         cmp     WORD PTR [bp-14],0
  1860.         jne     $I509
  1861. ;
  1862.         les     bx,DWORD PTR [bp+10]    ;HANDLE
  1863.         mov     ax,WORD PTR [bp-16]
  1864.         mov     WORD PTR es:[bx],ax
  1865. ;
  1866. $I509:
  1867.         les     bx,DWORD PTR [bp+6]     ;STATUS
  1868.         mov     ax,WORD PTR [bp-14]
  1869.         mov     WORD PTR es:[bx],ax
  1870.         mov     ax,WORD PTR [bp-14]
  1871.         IFDEF REALIA4
  1872.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  1873.         ENDIF
  1874.         pop     ds
  1875.         mov     sp,bp
  1876.         pop     bp
  1877.         ret
  1878. ENDSUBFN        XNEW
  1879.  
  1880. ;=============================================================================
  1881. ;
  1882. ;=============================================================================
  1883. SUBFN   XORDER
  1884.         push    bp
  1885.         mov     bp,sp
  1886.         sub     sp,18
  1887.         push    ds
  1888.         mov     ax,DGROUP
  1889.         mov     ds,ax
  1890.         call    xqlloaded
  1891.         or      ax,ax
  1892.         jne     $I520
  1893.         jmp     NotLoaded_xqlp
  1894. $I520:
  1895.         les     bx,DWORD PTR [bp+10]    ;HANDLE
  1896.         mov     ax,WORD PTR es:[bx]
  1897.         mov     WORD PTR [bp-12],ax
  1898. ;
  1899.         les     bx,DWORD PTR [bp+14]    ;COUNT
  1900.         mov     ax,WORD PTR es:[bx]
  1901.         mov     WORD PTR [bp-6],ax
  1902. ;
  1903.         les     bx,dword ptr [bp+18]    ;buf
  1904.         mov     WORD PTR [bp-4],bx
  1905.         mov     WORD PTR [bp-2],es
  1906. ;
  1907.         mov     ax,9
  1908.         push    ax
  1909.         lea     ax,WORD PTR [bp-18]     ;XQLPPARMS
  1910.         push    ss
  1911.         push    ax
  1912.         call    callxqlp
  1913.         add     sp,6
  1914. ;
  1915.         les     bx,DWORD PTR [bp+6]     ;STATUS
  1916.         mov     ax,WORD PTR [bp-10]
  1917.         mov     WORD PTR es:[bx],ax
  1918. ;
  1919.         mov     ax,WORD PTR [bp-10]
  1920.         IFDEF REALIA4
  1921.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  1922.         ENDIF
  1923.         pop     ds
  1924.         mov     sp,bp
  1925.         pop     bp
  1926.         ret
  1927.  
  1928. ENDSUBFN        XORDER
  1929.  
  1930. ;=============================================================================
  1931. ;
  1932. ;=============================================================================
  1933. SUBFN   XREMALL
  1934.         push    bp
  1935.         mov     bp,sp
  1936.         sub     sp,28
  1937.         push    ds
  1938.         mov     ax,DGROUP
  1939.         mov     ds,ax
  1940.         call    xqlloaded
  1941.         or      ax,ax
  1942.         jne     $I534
  1943.         jmp     NotLoaded_xqlp
  1944. $I534:
  1945.         les     bx,DWORD PTR [bp+10]    ;HANDLE
  1946.         mov     ax,WORD PTR es:[bx]
  1947.         mov     WORD PTR [bp-22],ax
  1948. ;
  1949.         les     bx,DWORD PTR [bp+14]    ;FCOUNT
  1950.         mov     ax,WORD PTR es:[bx]
  1951.         mov     WORD PTR [bp-16],ax
  1952. ;
  1953.         les     bx,dword ptr [bp+18]    ;files
  1954.         mov     WORD PTR [bp-14],bx
  1955.         mov     WORD PTR [bp-12],es
  1956. ;
  1957.         les     bx,DWORD PTR [bp+22]    ;OP
  1958.         mov     ax,WORD PTR es:[bx]
  1959.         mov     WORD PTR [bp-10],ax
  1960. ;
  1961.         les     bx,DWORD PTR [bp+26]    ;SELECT
  1962.         mov     ax,WORD PTR es:[bx]
  1963.         cwd
  1964.         mov     WORD PTR [bp-8],ax
  1965.         mov     WORD PTR [bp-6],dx
  1966. ;
  1967.         les     bx,DWORD PTR [bp+30]    ;REJECT
  1968.         mov     ax,WORD PTR es:[bx]
  1969.         cwd
  1970.         mov     WORD PTR [bp-4],ax
  1971.         mov     WORD PTR [bp-2],dx
  1972. ;
  1973.         mov     ax,16
  1974.         push    ax
  1975.         lea     ax,WORD PTR [bp-28]     ;XQLPPARMS
  1976.         push    ss
  1977.         push    ax
  1978.         call    callxqlp
  1979.         add     sp,6
  1980. ;
  1981.         les     bx,DWORD PTR [bp+26]    ;SELECT
  1982.         mov     ax,WORD PTR [bp-8]
  1983.         mov     WORD PTR es:[bx],ax
  1984. ;
  1985.         les     bx,DWORD PTR [bp+30]    ;REJECT
  1986.         mov     ax,WORD PTR [bp-4]
  1987.         mov     WORD PTR es:[bx],ax
  1988. ;
  1989.         les     bx,DWORD PTR [bp+14]    ;FCOUNT
  1990.         mov     ax,WORD PTR [bp-16]
  1991.         mov     WORD PTR es:[bx],ax
  1992. ;
  1993.         les     bx,DWORD PTR [bp+6]     ;STATUS
  1994.         mov     ax,WORD PTR [bp-20]
  1995.         mov     WORD PTR es:[bx],ax
  1996. ;
  1997.         mov     ax,WORD PTR [bp-20]
  1998.         IFDEF REALIA4
  1999.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  2000.         ENDIF
  2001.         pop     ds
  2002.         mov     sp,bp
  2003.         pop     bp
  2004.         ret
  2005. ENDSUBFN        XREMALL
  2006.  
  2007. ;=============================================================================
  2008. ;
  2009. ;=============================================================================
  2010. SUBFN   XREMOVE
  2011.         push    bp
  2012.         mov     bp,sp
  2013.         sub     sp,26
  2014.         push    ds
  2015.         mov     ax,DGROUP
  2016.         mov     ds,ax
  2017.         call    xqlloaded
  2018.         or      ax,ax
  2019.         jne     $I546
  2020.         jmp     NotLoaded_xqlp
  2021. $I546:
  2022.         les     bx,DWORD PTR [bp+10]    ;HANDLE
  2023.         mov     ax,WORD PTR es:[bx]
  2024.         mov     WORD PTR [bp-20],ax
  2025.         les     bx,DWORD PTR [bp+14]    ;FCOUNT
  2026.         mov     ax,WORD PTR es:[bx]
  2027.         mov     WORD PTR [bp-14],ax
  2028.         les     bx,dword ptr [bp+18]    ;files
  2029.         mov     WORD PTR [bp-12],bx
  2030.         mov     WORD PTR [bp-10],es
  2031.         les     bx,DWORD PTR [bp+22]    ;EDITCNT
  2032.         mov     ax,WORD PTR es:[bx]
  2033.         cwd
  2034.         mov     WORD PTR [bp-8],ax
  2035.         mov     WORD PTR [bp-6],dx
  2036.         sub     ax,ax
  2037.         mov     WORD PTR [bp-2],ax
  2038.         mov     WORD PTR [bp-4],ax
  2039.         mov     ax,15
  2040.         push    ax
  2041.         lea     ax,WORD PTR [bp-26]     ;XQLPPARMS
  2042.         push    ss
  2043.         push    ax
  2044.         call    callxqlp
  2045.         add     sp,6
  2046.         les     bx,DWORD PTR [bp+22]    ;EDITCNT
  2047.         mov     ax,WORD PTR [bp-8]
  2048.         mov     WORD PTR es:[bx],ax
  2049.         les     bx,DWORD PTR [bp+14]    ;FCOUNT
  2050.         mov     ax,WORD PTR [bp-14]
  2051.         mov     WORD PTR es:[bx],ax
  2052.         les     bx,DWORD PTR [bp+6]     ;STATUS
  2053.         mov     ax,WORD PTR [bp-18]
  2054.         mov     WORD PTR es:[bx],ax
  2055.         mov     ax,WORD PTR [bp-18]
  2056.         IFDEF REALIA4
  2057.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  2058.         ENDIF
  2059.         pop     ds
  2060.         mov     sp,bp
  2061.         pop     bp
  2062.         ret
  2063. ENDSUBFN        XREMOVE
  2064.  
  2065. ;=============================================================================
  2066. ;
  2067. ;=============================================================================
  2068. SUBFN   XRESET
  2069.         push    bp
  2070.         mov     bp,sp
  2071.         sub     sp,16
  2072.         push    ds
  2073.         mov     ax,DGROUP
  2074.         mov     ds,ax
  2075.         call    xqlloaded
  2076.         or      ax,ax
  2077.         jne     $I555
  2078.         jmp     NotLoaded_xqlp
  2079. $I555:
  2080.         mov     WORD PTR [bp-10],0
  2081.         les     bx,dword ptr [bp+10]    ;machine
  2082.         mov     WORD PTR [bp-4],bx
  2083.         mov     WORD PTR [bp-2],es
  2084.         mov     ax,17
  2085.         push    ax
  2086.         lea     ax,WORD PTR [bp-16]     ;XQLPPARMS
  2087.         push    ss
  2088.         push    ax
  2089.         call    callxqlp
  2090.         add     sp,6
  2091.         les     bx,DWORD PTR [bp+6]     ;STATUS
  2092.         mov     ax,WORD PTR [bp-8]
  2093.         mov     WORD PTR es:[bx],ax
  2094.         mov     ax,WORD PTR [bp-8]
  2095.         IFDEF REALIA4
  2096.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  2097.         ENDIF
  2098.         pop     ds
  2099.         mov     sp,bp
  2100.         pop     bp
  2101.         ret
  2102. ENDSUBFN        XRESET
  2103.  
  2104. ;=============================================================================
  2105. ;
  2106. ;=============================================================================
  2107. SUBFN   XRESTRICT
  2108.         push    bp
  2109.         mov     bp,sp
  2110.         sub     sp,20
  2111.         push    ds
  2112.         mov     ax,DGROUP
  2113.         mov     ds,ax
  2114.         call    xqlloaded
  2115.         or      ax,ax
  2116.         jne     $I567
  2117.         jmp     NotLoaded_xqlp
  2118. $I567:
  2119.         les     bx,DWORD PTR [bp+10]    ;HANDLE
  2120.         mov     ax,WORD PTR es:[bx]
  2121.         mov     WORD PTR [bp-14],ax
  2122.         les     bx,DWORD PTR [bp+14]    ;NEWEXP
  2123.         mov     ax,WORD PTR es:[bx]
  2124.         mov     WORD PTR [bp-8],ax
  2125.         les     bx,DWORD PTR [bp+18]    ;EXPLEN
  2126.         mov     ax,WORD PTR es:[bx]
  2127.         mov     WORD PTR [bp-6],ax
  2128.         les     bx,dword ptr [bp+22]    ;expbuf
  2129.         mov     WORD PTR [bp-4],bx
  2130.         mov     WORD PTR [bp-2],es
  2131.         mov     ax,10
  2132.         push    ax
  2133.         lea     ax,WORD PTR [bp-20]     ;XQLPPARMS
  2134.         push    ss
  2135.         push    ax
  2136.         call    callxqlp
  2137.         add     sp,6
  2138.         cmp     WORD PTR [bp-12],0
  2139.         je      $I568
  2140.         les     bx,DWORD PTR [bp+18]    ;EXPLEN
  2141.         mov     ax,WORD PTR [bp-6]
  2142.         mov     WORD PTR es:[bx],ax
  2143. $I568:
  2144.         les     bx,DWORD PTR [bp+6]     ;STATUS
  2145.         mov     ax,WORD PTR [bp-12]
  2146.         mov     WORD PTR es:[bx],ax
  2147.         mov     ax,WORD PTR [bp-12]
  2148.         IFDEF REALIA4
  2149.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  2150.         ENDIF
  2151.         pop     ds
  2152.         mov     sp,bp
  2153.         pop     bp
  2154.         ret
  2155. ENDSUBFN        XRESTRICT
  2156.  
  2157. ;=============================================================================
  2158. ;
  2159. ;=============================================================================
  2160. SUBFN   XSTOP
  2161.         push    bp
  2162.         mov     bp,sp
  2163.         sub     sp,14
  2164.         push    ds
  2165.         mov     ax,DGROUP
  2166.         mov     ds,ax
  2167.         call    xqlloaded
  2168.         or      ax,ax
  2169.         jne     $I576
  2170.         jmp     NotLoaded_xqlp
  2171. $I576:
  2172.         mov     ax,23
  2173.         push    ax
  2174.         lea     ax,WORD PTR [bp-14]     ;XQLPPARMS
  2175.         push    ss
  2176.         push    ax
  2177.         call    callxqlp
  2178.         add     sp,6
  2179.         les     bx,DWORD PTR [bp+6]     ;STATUS
  2180.         mov     ax,WORD PTR [bp-6]
  2181.         mov     WORD PTR es:[bx],ax
  2182.         mov     ax,WORD PTR [bp-6]
  2183.         IFDEF REALIA4
  2184.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  2185.         ENDIF
  2186.         pop     ds
  2187.         mov     sp,bp
  2188.         pop     bp
  2189.         ret
  2190. ENDSUBFN        XSTOP
  2191.  
  2192. ;=============================================================================
  2193. ;
  2194. ;=============================================================================
  2195. SUBFN   XTRANS
  2196.         push    bp
  2197.         mov     bp,sp
  2198.         sub     sp,14
  2199.         push    ds
  2200.         mov     ax,DGROUP
  2201.         mov     ds,ax
  2202.         call    xqlloaded
  2203.         or      ax,ax
  2204.         jne     $I585
  2205.         jmp     NotLoaded_xqlp
  2206. $I585:
  2207.         les     bx,DWORD PTR [bp+10]    ;OPERATION
  2208.         mov     WORD PTR [bp-8],0
  2209.         mov     ax,WORD PTR es:[bx]
  2210.         mov     WORD PTR [bp-2],ax
  2211.         mov     ax,18
  2212.         push    ax
  2213.         lea     ax,WORD PTR [bp-14]     ;XQLPPARMS
  2214.         push    ss
  2215.         push    ax
  2216.         call    callxqlp
  2217.         add     sp,6
  2218.         jmp     SHORT $I587
  2219. $I587:
  2220.         les     bx,DWORD PTR [bp+6]     ;STATUS
  2221.         mov     ax,WORD PTR [bp-6]
  2222.         mov     WORD PTR es:[bx],ax
  2223.         mov     ax,WORD PTR [bp-6]
  2224.         IFDEF REALIA4
  2225.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  2226.         ENDIF
  2227.         pop     ds
  2228.         mov     sp,bp
  2229.         pop     bp
  2230.         ret
  2231. ENDSUBFN        XTRANS
  2232.  
  2233. ;=============================================================================
  2234. ;
  2235. ;=============================================================================
  2236. SUBFN   XUPDATE
  2237.         push    bp
  2238.         mov     bp,sp
  2239.         sub     sp,26
  2240.         push    ds
  2241.         mov     ax,DGROUP
  2242.         mov     ds,ax
  2243.         call    xqlloaded
  2244.         or      ax,ax
  2245.         jne     $I600
  2246.         jmp     NotLoaded_xqlp
  2247. $I600:
  2248.         les     bx,DWORD PTR [bp+10]    ;HANDLE
  2249.         mov     ax,WORD PTR es:[bx]
  2250.         mov     WORD PTR [bp-20],ax
  2251.         les     bx,DWORD PTR [bp+14]    ;FCOUNT
  2252.         mov     ax,WORD PTR es:[bx]
  2253.         mov     WORD PTR [bp-14],ax
  2254. ;
  2255.         les     bx,dword ptr [bp+18]    ;files
  2256.         mov     WORD PTR [bp-12],bx
  2257.         mov     WORD PTR [bp-10],es
  2258. ;
  2259.         les     bx,DWORD PTR [bp+22]    ;EDITCNT
  2260.         mov     ax,WORD PTR es:[bx]
  2261.         cwd
  2262.         mov     WORD PTR [bp-8],ax
  2263.         mov     WORD PTR [bp-6],dx
  2264. ;
  2265.         les     bx,dword ptr [bp+26]    ;buf
  2266.         mov     WORD PTR [bp-4],bx
  2267.         mov     WORD PTR [bp-2],es
  2268. ;
  2269.         mov     ax,13
  2270.         push    ax
  2271.         lea     ax,WORD PTR [bp-26]     ;XQLPPARMS
  2272.         push    ss
  2273.         push    ax
  2274.         call    callxqlp
  2275.         add     sp,6
  2276. ;
  2277.         les     bx,DWORD PTR [bp+22]    ;EDITCNT
  2278.         mov     ax,WORD PTR [bp-8]
  2279.         mov     WORD PTR es:[bx],ax
  2280. ;
  2281.         les     bx,DWORD PTR [bp+14]    ;FCOUNT
  2282.         mov     ax,WORD PTR [bp-14]
  2283.         mov     WORD PTR es:[bx],ax
  2284. ;
  2285.         les     bx,DWORD PTR [bp+6]     ;STATUS
  2286.         mov     ax,WORD PTR [bp-18]
  2287.         mov     WORD PTR es:[bx],ax
  2288. ;
  2289.         mov     ax,WORD PTR [bp-18]
  2290.         IFDEF REALIA4
  2291.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  2292.         ENDIF
  2293.         pop     ds
  2294.         mov     sp,bp
  2295.         pop     bp
  2296.         ret
  2297. ENDSUBFN        XUPDATE
  2298.  
  2299. ;=============================================================================
  2300. ;
  2301. ;=============================================================================
  2302. SUBFN   XSTORE
  2303.         push    bp
  2304.         mov     bp,sp
  2305.         sub     sp,22
  2306.         push    ds
  2307.         mov     ax,DGROUP
  2308.         mov     ds,ax
  2309.         call    xqlloaded
  2310.         or      ax,ax
  2311.         jne     $I612
  2312.         jmp     NotLoaded_xqlp
  2313. $I612:
  2314.         les     bx,DWORD PTR [bp+10]    ;HANDLE
  2315.         mov     ax,WORD PTR es:[bx]
  2316.         mov     WORD PTR [bp-16],ax
  2317.         les     bx,dword ptr [bp+14]    ;storename
  2318.         mov     WORD PTR [bp-10],bx
  2319.         mov     WORD PTR [bp-8],es
  2320. ;
  2321.         les     bx,DWORD PTR [bp+18]    ;BUFLEN
  2322.         mov     ax,WORD PTR es:[bx]
  2323.         mov     WORD PTR [bp-6],ax
  2324. ;
  2325.         les     bx,dword ptr [bp+22]    ;BUF
  2326.         mov     WORD PTR [bp-4],bx
  2327.         mov     WORD PTR [bp-2],es
  2328. ;
  2329.         mov     ax,21
  2330.         push    ax
  2331.         lea     ax,WORD PTR [bp-22]     ;XQLPPARMS
  2332.         push    ss
  2333.         push    ax
  2334.         call    callxqlp
  2335.         add     sp,6
  2336. ;
  2337.         les     bx,DWORD PTR [bp+6]     ;STATUS
  2338.         mov     ax,WORD PTR [bp-14]
  2339.         mov     WORD PTR es:[bx],ax
  2340. ;
  2341.         mov     ax,WORD PTR [bp-14]
  2342.         IFDEF REALIA4
  2343.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  2344.         ENDIF
  2345.         pop     ds
  2346.         mov     sp,bp
  2347.         pop     bp
  2348.         ret
  2349. ENDSUBFN        XSTORE
  2350.  
  2351. ;=============================================================================
  2352. ;
  2353. ;=============================================================================
  2354. SUBFN   XRECALL
  2355.         push    bp
  2356.         mov     bp,sp
  2357.         sub     sp,30
  2358.         push    ds
  2359.         mov     ax,DGROUP
  2360.         mov     ds,ax
  2361.         call    xqlloaded
  2362.         or      ax,ax
  2363.         jne     $I627
  2364.         jmp     NotLoaded_xqlp
  2365. $I627:
  2366.         les     bx,DWORD PTR [bp+10]    ;HANDLE
  2367.         mov     ax,WORD PTR es:[bx]
  2368.         mov     WORD PTR [bp-24],ax
  2369.         les     bx,dword ptr [bp+14]    ;RECALLNAME
  2370.         mov     WORD PTR [bp-18],bx
  2371.         mov     WORD PTR [bp-16],es
  2372. ;
  2373.         les     bx,DWORD PTR [bp+18]    ;OWNERNUM
  2374.         mov     ax,WORD PTR es:[bx]
  2375.         mov     WORD PTR [bp-14],ax
  2376. ;
  2377.         les     bx,dword ptr [bp+22]    ;OWNERLST
  2378.         mov     WORD PTR [bp-12],bx
  2379.         mov     WORD PTR [bp-10],es
  2380. ;
  2381.         les     bx,DWORD PTR [bp+26]    ;OPENMODE
  2382.         mov     ax,WORD PTR es:[bx]
  2383.         mov     WORD PTR [bp-8],ax
  2384. ;
  2385.         les     bx,DWORD PTR [bp+30]    ;BUFLEN
  2386.         mov     ax,WORD PTR es:[bx]
  2387.         mov     WORD PTR [bp-6],ax
  2388. ;
  2389.         les     bx,dword ptr [bp+34]    ;BUF
  2390.         mov     WORD PTR [bp-4],bx
  2391.         mov     WORD PTR [bp-2],es
  2392. ;
  2393.         mov     ax,22
  2394.         push    ax
  2395.         lea     ax,WORD PTR [bp-30]     ;XQLPPARMS
  2396.         push    ss
  2397.         push    ax
  2398.         call    callxqlp
  2399.         add     sp,6
  2400. ;
  2401.         cmp     WORD PTR [bp-22],0
  2402.         jne     $I628
  2403. ;
  2404.         les     bx,DWORD PTR [bp+10]    ;HANDLE
  2405.         mov     ax,WORD PTR [bp-24]
  2406.         mov     WORD PTR es:[bx],ax
  2407. ;
  2408. $I628:
  2409.         les     bx,DWORD PTR [bp+30]    ;BUFLEN
  2410.         mov     ax,WORD PTR [bp-6]
  2411.         mov     WORD PTR es:[bx],ax
  2412. ;
  2413.         les     bx,DWORD PTR [bp+6]     ;STATUS
  2414.         mov     ax,WORD PTR [bp-22]
  2415.         mov     WORD PTR es:[bx],ax
  2416. ;
  2417.         mov     ax,WORD PTR [bp-22]
  2418.         IFDEF REALIA4
  2419.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  2420.         ENDIF
  2421.         pop     ds
  2422.         mov     sp,bp
  2423.         pop     bp
  2424.         ret
  2425. ENDSUBFN        XRECALL
  2426.  
  2427. ;=============================================================================
  2428. ;
  2429. ;=============================================================================
  2430. SUBFN   XUPDALL
  2431.         push    bp
  2432.         mov     bp,sp
  2433.         sub     sp,38
  2434.         push    ds
  2435.         mov     ax,DGROUP
  2436.         mov     ds,ax
  2437.         call    xqlloaded
  2438.         or      ax,ax
  2439.         jne     $I645
  2440.         jmp     NotLoaded_xqlp
  2441. $I645:
  2442. ;
  2443.         les     bx,DWORD PTR [bp+10]    ;HANDLE
  2444.         mov     ax,WORD PTR es:[bx]
  2445.         mov     WORD PTR [bp-32],ax
  2446. ;
  2447.         les     bx,DWORD PTR [bp+14]    ;FCOUNT
  2448.         mov     ax,WORD PTR es:[bx]
  2449.         mov     WORD PTR [bp-26],ax
  2450. ;
  2451.         les     bx,dword ptr [bp+18]    ;FILES
  2452.         mov     WORD PTR [bp-24],bx
  2453.         mov     WORD PTR [bp-22],es
  2454. ;
  2455.         les     bx,DWORD PTR [bp+22]    ;OP
  2456.         mov     ax,WORD PTR es:[bx]
  2457.         mov     WORD PTR [bp-20],ax
  2458. ;
  2459.         les     bx,DWORD PTR [bp+26]    ;SELECT
  2460.         mov     ax,WORD PTR es:[bx]
  2461.         cwd
  2462.         mov     WORD PTR [bp-18],ax
  2463.         mov     WORD PTR [bp-16],dx
  2464. ;
  2465.         les     bx,DWORD PTR [bp+30]    ;REJECT
  2466.         mov     ax,WORD PTR es:[bx]
  2467.         cwd
  2468.         mov     WORD PTR [bp-14],ax
  2469.         mov     WORD PTR [bp-12],dx
  2470. ;
  2471.         les     bx,DWORD PTR [bp+34]    ;COLCNT
  2472.         mov     ax,WORD PTR es:[bx]
  2473.         mov     WORD PTR [bp-10],ax
  2474. ;
  2475.         les     bx,dword ptr [bp+38]    ;RES
  2476.         mov     WORD PTR [bp-8],bx
  2477.         mov     WORD PTR [bp-6],es
  2478. ;
  2479.         les     bx,dword ptr [bp+42]    ;COMP
  2480.         mov     WORD PTR [bp-4],bx
  2481.         mov     WORD PTR [bp-2],es
  2482. ;
  2483.         mov     ax,14
  2484.         push    ax
  2485.         lea     ax,WORD PTR [bp-38]     ;XQLPPARMS
  2486.         push    ss
  2487.         push    ax
  2488.         call    callxqlp
  2489.         add     sp,6
  2490. ;
  2491.         les     bx,DWORD PTR [bp+26]    ;SELECT
  2492.         mov     ax,WORD PTR [bp-18]
  2493.         mov     WORD PTR es:[bx],ax
  2494. ;
  2495.         les     bx,DWORD PTR [bp+30]    ;REJECT
  2496.         mov     ax,WORD PTR [bp-14]
  2497.         mov     WORD PTR es:[bx],ax
  2498. ;
  2499.         les     bx,DWORD PTR [bp+14]    ;FCOUNT
  2500.         mov     ax,WORD PTR [bp-26]
  2501.         mov     WORD PTR es:[bx],ax
  2502. ;
  2503.         les     bx,DWORD PTR [bp+6]     ;STATUS
  2504.         mov     ax,WORD PTR [bp-30]
  2505.         mov     WORD PTR es:[bx],ax
  2506. ;
  2507.         mov     ax,WORD PTR [bp-30]
  2508.         IFDEF REALIA4
  2509.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  2510.         ENDIF
  2511.         pop     ds
  2512.         mov     sp,bp
  2513.         pop     bp
  2514.         ret
  2515. ENDSUBFN        XUPDALL
  2516.  
  2517. ;=============================================================================
  2518. ;
  2519. ;=============================================================================
  2520. SUBFN   XDD
  2521.         push    bp
  2522.         mov     bp,sp
  2523.         sub     sp,18
  2524.         push    ds
  2525.         mov     ax,DGROUP
  2526.         mov     ds,ax
  2527.         call    xqlloaded
  2528.         or      ax,ax
  2529.         jne     $I655
  2530.         jmp     NotLoaded_xqlp
  2531. $I655:
  2532.         les     bx,dword ptr [bp+10]    ;DIRPATH
  2533.         mov     WORD PTR [bp-6],bx
  2534.         mov     WORD PTR [bp-4],es
  2535. ;
  2536.         les     bx,DWORD PTR [bp+14]    ;FUNCTION
  2537.         mov     ax,WORD PTR es:[bx]
  2538.         mov     WORD PTR [bp-2],ax
  2539. ;
  2540.         mov     ax,32
  2541.         push    ax
  2542.         lea     ax,WORD PTR [bp-18]     ;XQLPPARMS
  2543.         push    ss
  2544.         push    ax
  2545.         call    callxqlp
  2546.         add     sp,6
  2547. ;
  2548.         les     bx,DWORD PTR [bp+6]     ;STATUS
  2549.         mov     ax,WORD PTR [bp-10]
  2550.         mov     WORD PTR es:[bx],ax
  2551. ;
  2552.         mov     ax,WORD PTR [bp-10]
  2553.         IFDEF REALIA4
  2554.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  2555.         ENDIF
  2556.         pop     ds
  2557.         mov     sp,bp
  2558.         pop     bp
  2559.         ret
  2560. ENDSUBFN        XDD
  2561.  
  2562. ;=============================================================================
  2563. ;
  2564. ;=============================================================================
  2565. SUBFN   XDDATTR
  2566.         push    bp
  2567.         mov     bp,sp
  2568.         sub     sp,26
  2569.         push    ds
  2570.         mov     ax,DGROUP
  2571.         mov     ds,ax
  2572.         call    xqlloaded
  2573.         or      ax,ax
  2574.         jne     $I668
  2575.         jmp     NotLoaded_xqlp
  2576. $I668:
  2577.         mov     WORD PTR [bp-20],0
  2578.         les     bx,DWORD PTR [bp+10]    ;SUBFUNCTION
  2579.         mov     ax,WORD PTR es:[bx]
  2580.         mov     WORD PTR [bp-14],ax
  2581.         les     bx,dword ptr [bp+14]    ;FIELDNAME
  2582.         mov     WORD PTR [bp-12],bx
  2583.         mov     WORD PTR [bp-10],es
  2584.         les     bx,DWORD PTR [bp+18]    ;ATTR
  2585.         mov     ax,WORD PTR es:[bx]
  2586.         mov     WORD PTR [bp-8],ax
  2587. ;
  2588.         les     bx,DWORD PTR [bp+22]    ;BUFSIZE
  2589.         mov     ax,WORD PTR es:[bx]
  2590.         mov     WORD PTR [bp-6],ax
  2591. ;
  2592.         les     bx,dword ptr [bp+26]    ;ATTRBUF
  2593.         mov     WORD PTR [bp-4],bx
  2594.         mov     WORD PTR [bp-2],es
  2595. ;
  2596.         mov     ax,31
  2597.         push    ax
  2598.         lea     ax,WORD PTR [bp-26]     ;XQLPPARMS
  2599.         push    ss
  2600.         push    ax
  2601.         call    callxqlp
  2602.         add     sp,6
  2603. ;
  2604.         les     bx,DWORD PTR [bp+22]    ;BUFSIZE
  2605.         mov     ax,WORD PTR [bp-6]
  2606.         mov     WORD PTR es:[bx],ax
  2607. ;
  2608.         les     bx,DWORD PTR [bp+6]     ;STATUS
  2609.         mov     ax,WORD PTR [bp-18]
  2610.         mov     WORD PTR es:[bx],ax
  2611. ;
  2612.         mov     ax,WORD PTR [bp-18]
  2613.         IFDEF REALIA4
  2614.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  2615.         ENDIF
  2616.         pop     ds
  2617.         mov     sp,bp
  2618.         pop     bp
  2619.         ret
  2620. ENDSUBFN        XDDATTR
  2621.  
  2622. ;=============================================================================
  2623. ;
  2624. ;=============================================================================
  2625. SUBFN   XDDCREATE
  2626.         push    bp
  2627.         mov     bp,sp
  2628.         sub     sp,48
  2629.         push    ds
  2630.         mov     ax,DGROUP
  2631.         mov     ds,ax
  2632.  
  2633.  
  2634. ;       SUBFUNCTION = 10
  2635. ;       FILENAME    = 14
  2636. ;       CREATE      = 18
  2637. ;       PATHNAME    = 22
  2638. ;       OWNER       = 26
  2639. ;       OACCESS     = 30
  2640. ;       FLDCOUNT    = 34
  2641. ;       FIELDLIST   = 38
  2642. ;       KCOUNT      = 42
  2643. ;       KEYLIST     = 46
  2644. ;       BUFLEN      = 50
  2645. ;       CREATEPARMS = 54
  2646. ;       XQLPPARMS   = -48
  2647.  
  2648.         call    xqlloaded
  2649.         or      ax,ax
  2650.         jne     XDDCR_1
  2651.         jmp     NotLoaded_xqlp
  2652. XDDCR_1:
  2653.         les     bx, dword ptr [bp+10]           ; subfunction
  2654.         mov     ax, word ptr es:[bx]
  2655.         mov     word ptr [bp-36], ax
  2656.  
  2657.         les     bx, dWORD PTR [bp+14]           ; FILENAME
  2658.         mov     word ptr [bp-34], bx
  2659.         mov     word ptr [bp-32], es
  2660.  
  2661.         les     bx, dword ptr [bp+18]           ; create flag
  2662.         mov     ax, word ptr es:[bx]
  2663.         mov     word ptr [bp-30], ax
  2664.  
  2665.         les     bx, dword ptr [bp+22]           ; pathname
  2666.         mov     word ptr [bp-28], bx
  2667.         mov     word ptr [bp-26], es
  2668.  
  2669.         les     bx, dword ptr[bp+26]            ; owner
  2670.         mov     word ptr [bp-24], bx
  2671.         mov     word ptr [bp-22], es
  2672.  
  2673.         les     bx, dword ptr [bp+30]           ; owner access
  2674.         mov     ax, word ptr es:[bx]
  2675.         mov     word ptr [bp-20], ax
  2676.  
  2677.         les     bx, dword ptr [bp+34]           ; field count
  2678.         mov     ax, word ptr es:[bx]
  2679.         mov     word ptr [bp-18], ax
  2680.  
  2681.         les     bx, dword ptr [bp+38]           ; field list
  2682.         mov     word ptr [bp-16], bx
  2683.         mov     word ptr [bp-14], es
  2684.  
  2685.         les     bx, dword ptr [bp+42]           ; key count
  2686.         mov     ax, word ptr es:[bx]
  2687.         mov     word ptr [bp-12], ax
  2688.  
  2689.         les     bx, dword ptr[bp+46]            ; key list
  2690.         mov     word ptr[bp-10], bx
  2691.         mov     word ptr[bp-8], es
  2692.  
  2693.         les     bx, dword ptr[bp+50]            ; buflen
  2694.         mov     ax, word ptr es:[bx]
  2695.         mov     word ptr [bp-6], ax
  2696.  
  2697.         les     bx, dword ptr[bp+54]            ; buffer
  2698.         mov     word ptr [bp-4], bx
  2699.         mov     word ptr [bp-2], es
  2700.  
  2701.         mov     ax, 20                          ; xddcreate function
  2702.         push    ax
  2703.         lea     ax, word ptr [bp-48]            ; address of xqlpparms block
  2704.         push    ss
  2705.         push    ax
  2706.         call    callxqlp
  2707.         add     sp,6
  2708.  
  2709.         les     bx, dword ptr [bp+6]            ; status
  2710.         mov     ax, word ptr [bp-40]
  2711.         mov     word ptr es:[bx], ax
  2712.         IFDEF REALIA4
  2713.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  2714.         ENDIF
  2715.         pop     ds
  2716.         mov     sp,bp
  2717.         pop     bp
  2718.         ret
  2719. ENDSUBFN        XDDCREATE
  2720.  
  2721. ;=============================================================================
  2722. ;
  2723. ;=============================================================================
  2724. SUBFN   XDDMODIFY
  2725.         push    bp
  2726.         mov     bp,sp
  2727.         sub     sp,42
  2728.         push    ds
  2729.         mov     ax,DGROUP
  2730.         mov     ds,ax
  2731.         call    xqlloaded
  2732.         or      ax,ax
  2733.         jne     $I686
  2734.         jmp     NotLoaded_xqlp
  2735. $I686:
  2736.         les     bx,DWORD PTR [bp+10]    ;SUBFUNCTION
  2737.         mov     ax,WORD PTR es:[bx]
  2738.         mov     WORD PTR [bp-30],ax
  2739.  
  2740.         les     bx,dword ptr [bp+14]    ;FILENAME
  2741.         mov     WORD PTR [bp-28],bx
  2742.         mov     WORD PTR [bp-26],es
  2743.  
  2744.         les     bx,DWORD PTR [bp+18]    ;CREATE
  2745.         mov     ax,WORD PTR es:[bx]
  2746.         mov     WORD PTR [bp-24],ax
  2747.  
  2748.         les     bx,dword ptr [bp+22]    ;PATHNAME
  2749.         mov     WORD PTR [bp-22],bx
  2750.         mov     WORD PTR [bp-20],es
  2751.  
  2752.         les     bx,dword ptr [bp+26]    ;OWNER
  2753.         mov     WORD PTR [bp-18],bx
  2754.         mov     WORD PTR [bp-16],es
  2755.  
  2756.         les     bx,DWORD PTR [bp+30]    ;OACCESS
  2757.         mov     ax,WORD PTR es:[bx]
  2758.         mov     WORD PTR [bp-14],ax
  2759.  
  2760.         les     bx,DWORD PTR [bp+34]    ;FLDCOUNT
  2761.         mov     ax,WORD PTR es:[bx]
  2762.         mov     WORD PTR [bp-12],ax
  2763.  
  2764.         les     bx,dword ptr [bp+38]    ;FIELDLIST
  2765.         mov     WORD PTR [bp-10],bx
  2766.         mov     WORD PTR [bp-8],es
  2767.  
  2768.         les     bx,DWORD PTR [bp+42]    ;KCOUNT
  2769.         mov     ax,WORD PTR es:[bx]
  2770.         mov     WORD PTR [bp-6],ax
  2771.         les     bx,dword ptr [bp+46]    ;KEYLIST
  2772.         mov     WORD PTR [bp-4],bx
  2773.         mov     WORD PTR [bp-2],es
  2774.         mov     ax,27
  2775.         push    ax
  2776.         lea     ax,WORD PTR [bp-42]     ;XQLPPARMS
  2777.         push    ss
  2778.         push    ax
  2779.         call    callxqlp
  2780.         add     sp,6
  2781.         les     bx,DWORD PTR [bp+6]     ;STATUS
  2782.         mov     ax,WORD PTR [bp-34]
  2783.         mov     WORD PTR es:[bx],ax
  2784.         mov     ax,WORD PTR [bp-34]
  2785.         IFDEF REALIA4
  2786.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  2787.         ENDIF
  2788.         pop     ds
  2789.         mov     sp,bp
  2790.         pop     bp
  2791.         ret
  2792. ENDSUBFN        XDDMODIFY
  2793.  
  2794. ;=============================================================================
  2795. ;
  2796. ;=============================================================================
  2797. SUBFN   XDDDROP
  2798.         push    bp
  2799.         mov     bp,sp
  2800.         sub     sp,20
  2801.         push    ds
  2802.         mov     ax,DGROUP
  2803.         mov     ds,ax
  2804.         call    xqlloaded
  2805.         or      ax,ax
  2806.         jne     $I697
  2807.         jmp     NotLoaded_xqlp
  2808. $I697:
  2809.         les     bx,dword ptr [bp+10]    ;FILENAME
  2810.         mov     WORD PTR [bp-8],bx
  2811.         mov     WORD PTR [bp-6],es
  2812. ;
  2813.         les     bx,DWORD PTR [bp+14]    ;FILETYPE
  2814.         mov     ax,WORD PTR es:[bx]
  2815.         mov     WORD PTR [bp-4],ax
  2816. ;
  2817.         les     bx,DWORD PTR [bp+18]    ;DELETEPATH
  2818.         mov     ax,WORD PTR es:[bx]
  2819.         mov     WORD PTR [bp-2],ax
  2820. ;
  2821.         mov     ax,29
  2822.         push    ax
  2823.         lea     ax,WORD PTR [bp-20]     ;XQLPPARMS
  2824.         push    ss
  2825.         push    ax
  2826.         call    callxqlp
  2827.         add     sp,6
  2828. ;
  2829.         les     bx,DWORD PTR [bp+6]     ;STATUS
  2830.         mov     ax,WORD PTR [bp-12]
  2831.         mov     WORD PTR es:[bx],ax
  2832. ;
  2833.         mov     ax,WORD PTR [bp-12]
  2834.         IFDEF REALIA4
  2835.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  2836.         ENDIF
  2837.         pop     ds
  2838.         mov     sp,bp
  2839.         pop     bp
  2840.         ret
  2841. ENDSUBFN        XDDDROP
  2842.  
  2843. ;=============================================================================
  2844. ;
  2845. ;=============================================================================
  2846. SUBFN   XDDFIELD
  2847.         push    bp
  2848.         mov     bp,sp
  2849.         sub     sp,26
  2850.         push    ds
  2851.         mov     ax,DGROUP
  2852.         mov     ds,ax
  2853.         call    xqlloaded
  2854.         or      ax,ax
  2855.         jne     $I710
  2856.         jmp     NotLoaded_xqlp
  2857. $I710:
  2858.         mov     WORD PTR [bp-20],0
  2859.         les     bx,DWORD PTR [bp+10]    ;SUBFUNCTION
  2860.         mov     ax,WORD PTR es:[bx]
  2861.         mov     WORD PTR [bp-14],ax
  2862. ;
  2863.         les     bx,DWORD PTR [bp+14]    ;COUNT
  2864.         mov     ax,WORD PTR es:[bx]
  2865.         mov     WORD PTR [bp-12],ax
  2866. ;
  2867.         les     bx,DWORD PTR [bp+22]    ;BUFLEN
  2868.         mov     ax,WORD PTR es:[bx]
  2869.         mov     WORD PTR [bp-6],ax
  2870. ;
  2871.         les     bx,dword ptr [bp+18]    ;FIELDBUF
  2872.         mov     WORD PTR [bp-10],bx
  2873.         mov     WORD PTR [bp-8],es
  2874. ;
  2875.         les     bx,dword ptr [bp+26]    ;OUTBUF
  2876.         mov     WORD PTR [bp-4],bx
  2877.         mov     WORD PTR [bp-2],es
  2878. ;
  2879.         mov     ax,25
  2880.         push    ax
  2881.         lea     ax,WORD PTR [bp-26]     ;XQLPPARMS
  2882.         push    ss
  2883.         push    ax
  2884.         call    callxqlp
  2885.         add     sp,6
  2886. ;
  2887.         cmp     WORD PTR [bp-18],0
  2888.         jl      $I711
  2889. ;
  2890. ;
  2891.         les     bx,DWORD PTR [bp+14]    ;COUNT
  2892.         mov     ax,WORD PTR [bp-12]
  2893.         mov     WORD PTR es:[bx],ax
  2894. ;
  2895.         les     bx,DWORD PTR [bp+22]    ;BUFLEN
  2896.         mov     ax,WORD PTR [bp-6]
  2897.         mov     WORD PTR es:[bx],ax
  2898. ;
  2899. $I711:
  2900. ;
  2901.         les     bx,DWORD PTR [bp+6]     ;STATUS
  2902.         mov     ax,WORD PTR [bp-18]
  2903.         mov     WORD PTR es:[bx],ax
  2904. ;
  2905.         mov     ax,WORD PTR [bp-18]
  2906.         IFDEF REALIA4
  2907.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  2908.         ENDIF
  2909.         pop     ds
  2910.         mov     sp,bp
  2911.         pop     bp
  2912.         ret
  2913.  
  2914. ENDSUBFN        XDDFIELD
  2915.  
  2916. ;=============================================================================
  2917. ;
  2918. ;=============================================================================
  2919. SUBFN   XDDFILE
  2920.         push    bp
  2921.         mov     bp,sp
  2922.         sub     sp,26
  2923.         push    ds
  2924.         mov     ax,DGROUP
  2925.         mov     ds,ax
  2926.         call    xqlloaded
  2927.         or      ax,ax
  2928.         jne     $I724
  2929.         jmp     NotLoaded_xqlp
  2930. $I724:
  2931.         mov     WORD PTR [bp-20],0
  2932.         les     bx,DWORD PTR [bp+10]    ;SUBFUNCTION
  2933.         mov     ax,WORD PTR es:[bx]
  2934.         mov     WORD PTR [bp-14],ax
  2935.         les     bx,DWORD PTR [bp+14]    ;COUNT
  2936.         mov     ax,WORD PTR es:[bx]
  2937.         mov     WORD PTR [bp-12],ax
  2938.         les     bx,dword ptr [bp+18]    ;FILEBUF
  2939.         mov     WORD PTR [bp-10],bx
  2940.         mov     WORD PTR [bp-8],es
  2941.         les     bx,DWORD PTR [bp+22]    ;BUFLEN
  2942.         mov     ax,WORD PTR es:[bx]
  2943.         mov     WORD PTR [bp-6],ax
  2944.         les     bx,dword ptr [bp+26]    ;OUTBUF
  2945.         mov     WORD PTR [bp-4],bx
  2946.         mov     WORD PTR [bp-2],es
  2947.         mov     ax,24
  2948.         push    ax
  2949.         lea     ax,WORD PTR [bp-26]     ;XQLPPARMS
  2950.         push    ss
  2951.         push    ax
  2952.         call    callxqlp
  2953.         add     sp,6
  2954.         cmp     WORD PTR [bp-18],0
  2955.         jl      $I725
  2956.         les     bx,DWORD PTR [bp+14]    ;COUNT
  2957.         mov     ax,WORD PTR [bp-12]
  2958.         mov     WORD PTR es:[bx],ax
  2959.         les     bx,DWORD PTR [bp+22]    ;BUFLEN
  2960.         mov     ax,WORD PTR [bp-6]
  2961.         mov     WORD PTR es:[bx],ax
  2962. $I725:
  2963.         les     bx,DWORD PTR [bp+6]     ;STATUS
  2964.         mov     ax,WORD PTR [bp-18]
  2965.         mov     WORD PTR es:[bx],ax
  2966.         mov     ax,WORD PTR [bp-18]
  2967.         IFDEF REALIA4
  2968.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  2969.         ENDIF
  2970.         pop     ds
  2971.         mov     sp,bp
  2972.         pop     bp
  2973.         ret
  2974. ENDSUBFN        XDDFILE
  2975.  
  2976. ;=============================================================================
  2977. ;
  2978. ;=============================================================================
  2979. SUBFN   XDDINDEX
  2980.         push    bp
  2981.         mov     bp,sp
  2982.         sub     sp,26
  2983.         push    ds
  2984.         mov     ax,DGROUP
  2985.         mov     ds,ax
  2986.         call    xqlloaded
  2987.         or      ax,ax
  2988.         jne     $I738
  2989.         jmp     NotLoaded_xqlp
  2990. $I738:
  2991.         mov     WORD PTR [bp-20],0
  2992.         les     bx,DWORD PTR [bp+10]    ;SUBFUNCTION
  2993.         mov     ax,WORD PTR es:[bx]
  2994.         mov     WORD PTR [bp-14],ax
  2995.         les     bx,DWORD PTR [bp+14]    ;COUNT
  2996.         mov     ax,WORD PTR es:[bx]
  2997.         mov     WORD PTR [bp-12],ax
  2998.         les     bx,DWORD PTR [bp+22]    ;BUFLEN
  2999.         mov     ax,WORD PTR es:[bx]
  3000.         mov     WORD PTR [bp-6],ax
  3001.         les     bx,dword ptr [bp+18]    ;FIELDBUF
  3002.         mov     WORD PTR [bp-10],bx
  3003.         mov     WORD PTR [bp-8],es
  3004.         les     bx,dword ptr [bp+26]    ;OUTBUF
  3005.         mov     WORD PTR [bp-4],bx
  3006.         mov     WORD PTR [bp-2],es
  3007.         mov     ax,26
  3008.         push    ax
  3009.         lea     ax,WORD PTR [bp-26]     ;XQLPPARMS
  3010.         push    ss
  3011.         push    ax
  3012.         call    callxqlp
  3013.         add     sp,6
  3014.         cmp     WORD PTR [bp-18],0
  3015.         jl      $I739
  3016.         les     bx,DWORD PTR [bp+14]    ;COUNT
  3017.         mov     ax,WORD PTR [bp-12]
  3018.         mov     WORD PTR es:[bx],ax
  3019.         les     bx,DWORD PTR [bp+22]    ;BUFLEN
  3020.         mov     ax,WORD PTR [bp-6]
  3021.         mov     WORD PTR es:[bx],ax
  3022. $I739:
  3023.         les     bx,DWORD PTR [bp+6]     ;STATUS
  3024.         mov     ax,WORD PTR [bp-18]
  3025.         mov     WORD PTR es:[bx],ax
  3026.         mov     ax,WORD PTR [bp-18]
  3027.         IFDEF REALIA4
  3028.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  3029.         ENDIF
  3030.         pop     ds
  3031.         mov     sp,bp
  3032.         pop     bp
  3033.         ret
  3034. ENDSUBFN        XDDINDEX
  3035.  
  3036. ;=============================================================================
  3037. ;
  3038. ;=============================================================================
  3039. SUBFN   XDDPATH
  3040.         push    bp
  3041.         mov     bp,sp
  3042.         sub     sp,18
  3043.         push    ds
  3044.         mov     ax,DGROUP
  3045.         mov     ds,ax
  3046.         call    xqlloaded
  3047.         or      ax,ax
  3048.         jne     $I749
  3049.         jmp     NotLoaded_xqlp
  3050. $I749:
  3051.         les     bx,DWORD PTR [bp+10]    ;DIRTYPE
  3052.         mov     ax,WORD PTR es:[bx]
  3053.         mov     WORD PTR [bp-6],ax
  3054.         les     bx,dword ptr [bp+14]    ;PATHNAME
  3055.         mov     WORD PTR [bp-4],bx
  3056.         mov     WORD PTR [bp-2],es
  3057.         mov     ax,30
  3058.         push    ax
  3059.         lea     ax,WORD PTR [bp-18]     ;XQLPPARMS
  3060.         push    ss
  3061.         push    ax
  3062.         call    callxqlp
  3063.         add     sp,6
  3064.         les     bx,DWORD PTR [bp+6]     ;STATUS
  3065.         mov     ax,WORD PTR [bp-10]
  3066.         mov     WORD PTR es:[bx],ax
  3067.         mov     ax,WORD PTR [bp-10]
  3068.         IFDEF REALIA4
  3069.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  3070.         ENDIF
  3071.         pop     ds
  3072.         mov     sp,bp
  3073.         pop     bp
  3074.         ret
  3075. ENDSUBFN        XDDPATH
  3076.  
  3077. ;=============================================================================
  3078. ;
  3079. ;=============================================================================
  3080. SUBFN   XDDVIEW
  3081.         push    bp
  3082.         mov     bp,sp
  3083.         sub     sp,24
  3084.         push    ds
  3085.         mov     ax,DGROUP
  3086.         mov     ds,ax
  3087.         call    xqlloaded
  3088.         or      ax,ax
  3089.         jne     $I761
  3090.         jmp     NotLoaded_xqlp
  3091. $I761:
  3092.         mov     WORD PTR [bp-18],0
  3093.         les     bx,DWORD PTR [bp+10]    ;COUNT
  3094.         mov     ax,WORD PTR es:[bx]
  3095.         mov     WORD PTR [bp-12],ax
  3096.         les     bx,dword ptr [bp+14]    ;VIEWNAME
  3097.         mov     WORD PTR [bp-10],bx
  3098.         mov     WORD PTR [bp-8],es
  3099.         les     bx,DWORD PTR [bp+18]    ;BUFLEN
  3100.         mov     ax,WORD PTR es:[bx]
  3101.         mov     WORD PTR [bp-6],ax
  3102.         les     bx,dword ptr [bp+22]    ;OUTBUF
  3103.         mov     WORD PTR [bp-4],bx
  3104.         mov     WORD PTR [bp-2],es
  3105.         mov     ax,28
  3106.         push    ax
  3107.         lea     ax,WORD PTR [bp-24]     ;XQLPPARMS
  3108.         push    ss
  3109.         push    ax
  3110.         call    callxqlp
  3111.         add     sp,6
  3112.         cmp     WORD PTR [bp-16],0
  3113.         jl      $I762
  3114.         les     bx,DWORD PTR [bp+10]    ;COUNT
  3115.         mov     ax,WORD PTR [bp-12]
  3116.         mov     WORD PTR es:[bx],ax
  3117.         les     bx,DWORD PTR [bp+18]    ;BUFLEN
  3118.         mov     ax,WORD PTR [bp-6]
  3119.         mov     WORD PTR es:[bx],ax
  3120. $I762:
  3121.         les     bx,DWORD PTR [bp+6]     ;STATUS
  3122.         mov     ax,WORD PTR [bp-16]
  3123.         mov     WORD PTR es:[bx],ax
  3124.         mov     ax,WORD PTR [bp-16]
  3125.         IFDEF REALIA4
  3126.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  3127.         ENDIF
  3128.         pop     ds
  3129.         mov     sp,bp
  3130.         pop     bp
  3131.         ret
  3132. ENDSUBFN        XDDVIEW
  3133.  
  3134. ;=============================================================================
  3135. ;
  3136. ;=============================================================================
  3137. SUBFN   XACCESS
  3138.         push    bp
  3139.         mov     bp,sp
  3140.         sub     sp,40
  3141.         push    ds
  3142.         mov     ax,DGROUP
  3143.         mov     ds,ax
  3144.         call    xqlloaded
  3145.         or      ax,ax
  3146.         jne     $I779
  3147.         jmp     NotLoaded_xqlp
  3148. $I779:
  3149.         mov     WORD PTR [bp-34],0
  3150.         les     bx,dword ptr [bp+10]    ;MPSWD
  3151.         mov     WORD PTR [bp-28],bx
  3152.         mov     WORD PTR [bp-26],es
  3153.         les     bx,dword ptr [bp+14]    ;USERNAME
  3154.         mov     WORD PTR [bp-24],bx
  3155.         mov     WORD PTR [bp-22],es
  3156.         les     bx,DWORD PTR [bp+18]    ;SUBFUNCTION
  3157.         mov     ax,WORD PTR es:[bx]
  3158.         mov     WORD PTR [bp-20],ax
  3159.         les     bx,DWORD PTR [bp+22]    ;RIGHTS
  3160.         mov     ax,WORD PTR es:[bx]
  3161.         mov     WORD PTR [bp-18],ax
  3162.         les     bx,dword ptr [bp+26]    ;FILENAME
  3163.         mov     WORD PTR [bp-16],bx
  3164.         mov     WORD PTR [bp-14],es
  3165.         les     bx,DWORD PTR [bp+30]    ;COUNT
  3166.         mov     ax,WORD PTR es:[bx]
  3167.         mov     WORD PTR [bp-12],ax
  3168.         les     bx,dword ptr [bp+34]    ;FIELDNAME
  3169.         mov     WORD PTR [bp-10],bx
  3170.         mov     WORD PTR [bp-8],es
  3171.         les     bx,DWORD PTR [bp+38]    ;BUFLEN
  3172.         mov     ax,WORD PTR es:[bx]
  3173.         mov     WORD PTR [bp-6],ax
  3174.         les     bx,dword ptr [bp+42]    ;OUTBUF
  3175.         mov     WORD PTR [bp-4],bx
  3176.         mov     WORD PTR [bp-2],es
  3177.         mov     ax,35
  3178.         push    ax
  3179.         lea     ax,WORD PTR [bp-40]     ;XQLPPARMS
  3180.         push    ss
  3181.         push    ax
  3182.         call    callxqlp
  3183.         add     sp,6
  3184.         cmp     WORD PTR [bp-32],0
  3185.         jne     $I780
  3186.         les     bx,DWORD PTR [bp+30]    ;COUNT
  3187.         mov     ax,WORD PTR [bp-12]
  3188.         mov     WORD PTR es:[bx],ax
  3189.         les     bx,DWORD PTR [bp+38]    ;BUFLEN
  3190.         mov     ax,WORD PTR [bp-6]
  3191.         mov     WORD PTR es:[bx],ax
  3192. $I780:
  3193.         les     bx,DWORD PTR [bp+6]     ;STATUS
  3194.         mov     ax,WORD PTR [bp-32]
  3195.         mov     WORD PTR es:[bx],ax
  3196.         mov     ax,WORD PTR [bp-32]
  3197.         IFDEF REALIA4
  3198.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  3199.         ENDIF
  3200.         pop     ds
  3201.         mov     sp,bp
  3202.         pop     bp
  3203.         ret
  3204. ENDSUBFN        XACCESS
  3205.  
  3206. ;=============================================================================
  3207. ;
  3208. ;=============================================================================
  3209. SUBFN   XPASSWORD
  3210.         push    bp
  3211.         mov     bp,sp
  3212.         sub     sp,20
  3213.         push    ds
  3214.         mov     ax,DGROUP
  3215.         mov     ds,ax
  3216.         call    xqlloaded
  3217.         or      ax,ax
  3218.         jne     $I790
  3219.         jmp     NotLoaded_xqlp
  3220. $I790:
  3221.         mov     WORD PTR [bp-14],0
  3222.         les     bx,dword ptr [bp+10]    ;USER
  3223.         mov     WORD PTR [bp-8],bx
  3224.         mov     WORD PTR [bp-6],es
  3225.         les     bx,dword ptr [bp+14]    ;PSWD
  3226.         mov     WORD PTR [bp-4],bx
  3227.         mov     WORD PTR [bp-2],es
  3228.         mov     ax,36
  3229.         push    ax
  3230.         lea     ax,WORD PTR [bp-20]     ;XQLPPARMS
  3231.         push    ss
  3232.         push    ax
  3233.         call    callxqlp
  3234.         add     sp,6
  3235.         les     bx,DWORD PTR [bp+6]     ;STATUS
  3236.         mov     ax,WORD PTR [bp-12]
  3237.         mov     WORD PTR es:[bx],ax
  3238.         mov     ax,WORD PTR [bp-12]
  3239.         IFDEF REALIA4
  3240.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  3241.         ENDIF
  3242.         pop     ds
  3243.         mov     sp,bp
  3244.         pop     bp
  3245.         ret
  3246. ENDSUBFN        XPASSWORD
  3247.  
  3248. ;=============================================================================
  3249. ;
  3250. ;=============================================================================
  3251. SUBFN   XSECURITY
  3252.         push    bp
  3253.         mov     bp,sp
  3254.         sub     sp,18
  3255.         push    ds
  3256.         mov     ax,DGROUP
  3257.         mov     ds,ax
  3258.         call    xqlloaded
  3259.         or      ax,ax
  3260.         jne     $I800
  3261.         jmp     NotLoaded_xqlp
  3262. $I800:
  3263.         mov     WORD PTR [bp-12],0
  3264.         les     bx,dword ptr [bp+10]    ;MPSWD
  3265.         mov     WORD PTR [bp-6],bx
  3266.         mov     WORD PTR [bp-4],es
  3267.         les     bx,DWORD PTR [bp+14]    ;FLAG
  3268.         mov     ax,WORD PTR es:[bx]
  3269.         mov     WORD PTR [bp-2],ax
  3270.         mov     ax,33
  3271.         push    ax
  3272.         lea     ax,WORD PTR [bp-18]     ;XQLPPARMS
  3273.         push    ss
  3274.         push    ax
  3275.         call    callxqlp
  3276.         add     sp,6
  3277.         les     bx,DWORD PTR [bp+6]     ;STATUS
  3278.         mov     ax,WORD PTR [bp-10]
  3279.         mov     WORD PTR es:[bx],ax
  3280.         mov     ax,WORD PTR [bp-10]
  3281.         IFDEF REALIA4
  3282.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  3283.         ENDIF
  3284.         pop     ds
  3285.         mov     sp,bp
  3286.         pop     bp
  3287.         ret
  3288. ENDSUBFN        XSECURITY
  3289.  
  3290. ;=============================================================================
  3291. ;
  3292. ;=============================================================================
  3293. SUBFN   XUSER
  3294.         push    bp
  3295.         mov     bp,sp
  3296.         sub     sp,36
  3297.         push    ds
  3298.         mov     ax,DGROUP
  3299.         mov     ds,ax
  3300.         call    xqlloaded
  3301.         or      ax,ax
  3302.         jne     $I816
  3303.         jmp     NotLoaded_xqlp
  3304. $I816:
  3305.         mov     WORD PTR [bp-30],0
  3306.         les     bx,dword ptr [bp+10]    ;MPSWD
  3307.         mov     WORD PTR [bp-24],bx
  3308.         mov     WORD PTR [bp-22],es
  3309.         les     bx,DWORD PTR [bp+14]    ;SUBFUNCTION
  3310.         mov     ax,WORD PTR es:[bx]
  3311.         mov     WORD PTR [bp-20],ax
  3312.         les     bx,dword ptr [bp+18]    ;USERNAME
  3313.         mov     WORD PTR [bp-18],bx
  3314.         mov     WORD PTR [bp-16],es
  3315.         les     bx,dword ptr [bp+22]    ;PSWD
  3316.         mov     WORD PTR [bp-14],bx
  3317.         mov     WORD PTR [bp-12],es
  3318.         les     bx,DWORD PTR [bp+26]    ;GRIGHTS
  3319.         mov     ax,WORD PTR es:[bx]
  3320.         mov     WORD PTR [bp-10],ax
  3321.         les     bx,DWORD PTR [bp+30]    ;COUNT
  3322.         mov     ax,WORD PTR es:[bx]
  3323.         mov     WORD PTR [bp-8],ax
  3324.         les     bx,DWORD PTR [bp+34]    ;BUFLEN
  3325.         mov     ax,WORD PTR es:[bx]
  3326.         mov     WORD PTR [bp-6],ax
  3327.         les     bx,dword ptr [bp+38]    ;USERBUF
  3328.         mov     WORD PTR [bp-4],bx
  3329.         mov     WORD PTR [bp-2],es
  3330.         mov     ax,34
  3331.         push    ax
  3332.         lea     ax,WORD PTR [bp-36]     ;XQLPPARMS
  3333.         push    ss
  3334.         push    ax
  3335.         call    callxqlp
  3336.         add     sp,6
  3337.         les     bx,DWORD PTR [bp+30]    ;COUNT
  3338.         mov     ax,WORD PTR [bp-8]
  3339.         mov     WORD PTR es:[bx],ax
  3340.         les     bx,DWORD PTR [bp+34]    ;BUFLEN
  3341.         mov     ax,WORD PTR [bp-6]
  3342.         mov     WORD PTR es:[bx],ax
  3343.         les     bx,DWORD PTR [bp+6]     ;STATUS
  3344.         mov     ax,WORD PTR [bp-28]
  3345.         mov     WORD PTR es:[bx],ax
  3346.         mov     ax,WORD PTR [bp-28]
  3347.         IFDEF REALIA4
  3348.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  3349.         ENDIF
  3350.         pop     ds
  3351.         mov     sp,bp
  3352.         pop     bp
  3353.         ret
  3354. ENDSUBFN        XUSER
  3355.  
  3356. ;=============================================================================
  3357. ;
  3358. ;=============================================================================
  3359. SUBFN   XCHAR
  3360.         push    bp
  3361.         mov     bp,sp
  3362.         sub     sp,18
  3363.         push    ds
  3364.         mov     ax,DGROUP
  3365.         mov     ds,ax
  3366.         call    xqlloaded
  3367.         or      ax,ax
  3368.         jne     $I827
  3369.         jmp     NotLoaded_xqlp
  3370. $I827:
  3371.         les     bx,DWORD PTR [bp+10]    ;CHARFCN
  3372.         mov     ax,WORD PTR es:[bx]
  3373.         mov     WORD PTR [bp-6],ax
  3374.         les     bx,DWORD PTR [bp+14]    ;CHARTYPE
  3375.         mov     ax,WORD PTR es:[bx]
  3376.         mov     WORD PTR [bp-4],ax
  3377.         les     bx,DWORD PTR [bp+18]    ;VALUE
  3378.         mov     al,BYTE PTR es:[bx]
  3379.         cbw
  3380.         mov     WORD PTR [bp-2],ax
  3381.         mov     ax,37
  3382.         push    ax
  3383.         lea     ax,WORD PTR [bp-18]     ;XQLPPARMS
  3384.         push    ss
  3385.         push    ax
  3386.         call    callxqlp
  3387.         add     sp,6
  3388.         les     bx,DWORD PTR [bp+18]    ;VALUE
  3389.         mov     al,BYTE PTR [bp-2]
  3390.         mov     BYTE PTR es:[bx],al
  3391.         les     bx,DWORD PTR [bp+6]     ;STATUS
  3392.         mov     ax,WORD PTR [bp-10]
  3393.         mov     WORD PTR es:[bx],ax
  3394.         mov     ax,WORD PTR [bp-10]
  3395.         IFDEF REALIA4
  3396.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  3397.         ENDIF
  3398.         pop     ds
  3399.         mov     sp,bp
  3400.         pop     bp
  3401.         ret
  3402. ENDSUBFN        XCHAR
  3403.  
  3404. ;=============================================================================
  3405. ;
  3406. ;=============================================================================
  3407. SUBFN   XVERSION
  3408.         push    bp
  3409.         mov     bp,sp
  3410.         sub     sp,16
  3411.         push    ds
  3412.         mov     ax,DGROUP
  3413.         mov     ds,ax
  3414.         call    xqlloaded
  3415.         or      ax,ax
  3416.         jne     $I836
  3417.         jmp     NotLoaded_xqlp
  3418. $I836:
  3419.         les     bx,dword ptr [bp+10]    ;BUFFER
  3420.         mov     WORD PTR [bp-4],bx
  3421.         mov     WORD PTR [bp-2],es
  3422.         mov     ax,38
  3423.         push    ax
  3424.         lea     ax,WORD PTR [bp-16]     ;XQLPPARMS
  3425.         push    ss
  3426.         push    ax
  3427.         call    callxqlp
  3428.         add     sp,6
  3429.         les     bx,DWORD PTR [bp+6]     ;STATUS
  3430.         mov     ax,WORD PTR [bp-8]
  3431.         mov     WORD PTR es:[bx],ax
  3432.         mov     ax,WORD PTR [bp-8]
  3433.         IFDEF REALIA4
  3434.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  3435.         ENDIF
  3436.         pop     ds
  3437.         mov     sp,bp
  3438.         pop     bp
  3439.         ret
  3440. ENDSUBFN        XVERSION
  3441.  
  3442. ;=============================================================================
  3443. ;
  3444. ;=============================================================================
  3445. SUBFN   XCONVERT
  3446.         push    bp
  3447.         mov     bp,sp
  3448.         sub     sp,36
  3449.         push    ds
  3450.         mov     ax,DGROUP
  3451.         mov     ds,ax
  3452.         call    xqlloaded
  3453.         or      ax,ax
  3454.         jne     $I853
  3455.         jmp     NotLoaded_xqlp
  3456. $I853:
  3457.         les     bx,DWORD PTR [bp+10]    ;OPTION
  3458.         mov     ax,WORD PTR es:[bx]
  3459.         mov     WORD PTR [bp-24],ax
  3460.         les     bx,DWORD PTR [bp+14]    ;TYPE
  3461.         mov     ax,WORD PTR es:[bx]
  3462.         mov     WORD PTR [bp-22],ax
  3463.         les     bx,DWORD PTR [bp+18]    ;SIZE
  3464.         mov     ax,WORD PTR es:[bx]
  3465.         mov     WORD PTR [bp-20],ax
  3466.         les     bx,DWORD PTR [bp+22]    ;DEC
  3467.         mov     ax,WORD PTR es:[bx]
  3468.         mov     WORD PTR [bp-18],ax
  3469.         les     bx,DWORD PTR [bp+26]    ;DSIZE
  3470.         mov     ax,WORD PTR es:[bx]
  3471.         mov     WORD PTR [bp-16],ax
  3472.         les     bx,dword ptr [bp+30]    ;VALUE
  3473.         mov     WORD PTR [bp-14],bx
  3474.         mov     WORD PTR [bp-12],es
  3475.         les     bx,dword ptr [bp+34]    ;RETVAL
  3476.         mov     WORD PTR [bp-10],bx
  3477.         mov     WORD PTR [bp-8],es
  3478.         les     bx,dword ptr [bp+38]    ;MASK
  3479.         mov     WORD PTR [bp-6],bx
  3480.         mov     WORD PTR [bp-4],es
  3481.         les     bx,DWORD PTR [bp+42]    ;JUST
  3482.         mov     ax,WORD PTR es:[bx]
  3483.         mov     WORD PTR [bp-2],ax
  3484.         mov     ax,39
  3485.         push    ax
  3486.         lea     ax,WORD PTR [bp-36]     ;XQLPPARMS
  3487.         push    ss
  3488.         push    ax
  3489.         call    callxqlp
  3490.         add     sp,6
  3491.         les     bx,DWORD PTR [bp+6]     ;STATUS
  3492.         mov     ax,WORD PTR [bp-28]
  3493.         mov     WORD PTR es:[bx],ax
  3494.         mov     ax,WORD PTR [bp-28]
  3495.         IFDEF REALIA4
  3496.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  3497.         ENDIF
  3498.         pop     ds
  3499.         mov     sp,bp
  3500.         pop     bp
  3501.         ret
  3502. ENDSUBFN        XCONVERT
  3503.  
  3504. ;=============================================================================
  3505. ;
  3506. ;=============================================================================
  3507. SUBFN   XVALIDATE
  3508.         push    bp
  3509.         mov     bp,sp
  3510.         sub     sp,24
  3511.         push    ds
  3512.         mov     ax,DGROUP
  3513.         mov     ds,ax
  3514.         call    xqlloaded
  3515.         or      ax,ax
  3516.         jne     $I865
  3517.         jmp     NotLoaded_xqlp
  3518. $I865:
  3519.         les     bx,dword ptr [bp+14]    ;FIELDNAME
  3520.         mov     WORD PTR [bp-10],bx
  3521.         mov     WORD PTR [bp-8],es
  3522.         les     bx,DWORD PTR [bp+10]    ;COUNT
  3523.         mov     ax,WORD PTR es:[bx]
  3524.         mov     WORD PTR [bp-12],ax
  3525.         les     bx,DWORD PTR [bp+18]    ;BUFLEN
  3526.         mov     ax,WORD PTR es:[bx]
  3527.         mov     WORD PTR [bp-6],ax
  3528.         les     bx,dword ptr [bp+22]    ;DATA
  3529.         mov     WORD PTR [bp-4],bx
  3530.         mov     WORD PTR [bp-2],es
  3531.         mov     ax,40
  3532.         push    ax
  3533.         lea     ax,WORD PTR [bp-24]     ;XQLPPARMS
  3534.         push    ss
  3535.         push    ax
  3536.         call    callxqlp
  3537.         add     sp,6
  3538.         les     bx,DWORD PTR [bp+6]     ;STATUS
  3539.         mov     ax,WORD PTR [bp-16]
  3540.         mov     WORD PTR es:[bx],ax
  3541.         les     bx,DWORD PTR [bp+10]    ;COUNT
  3542.         mov     ax,WORD PTR [bp-12]
  3543.         mov     WORD PTR es:[bx],ax
  3544.         mov     ax,WORD PTR [bp-16]
  3545.         IFDEF REALIA4
  3546.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  3547.         ENDIF
  3548.         pop     ds
  3549.         mov     sp,bp
  3550.         pop     bp
  3551.         ret
  3552. ENDSUBFN        XVALIDATE
  3553.  
  3554. ;=============================================================================
  3555. ;
  3556. ;=============================================================================
  3557. SUBFN   XMASK
  3558.         push    bp
  3559.         mov     bp,sp
  3560.         sub     sp,26
  3561.         push    ds
  3562.         mov     ax,DGROUP
  3563.         mov     ds,ax
  3564.         call    xqlloaded
  3565.         or      ax,ax
  3566.         jne     $I879
  3567.         jmp     NotLoaded_xqlp
  3568. $I879:
  3569.         les     bx,DWORD PTR [bp+10]    ;OPTION
  3570.         mov     ax,WORD PTR es:[bx]
  3571.         mov     WORD PTR [bp-14],ax
  3572.         les     bx,DWORD PTR [bp+14]    ;TYPE
  3573.         mov     ax,WORD PTR es:[bx]
  3574.         mov     WORD PTR [bp-12],ax
  3575.         les     bx,DWORD PTR [bp+18]    ;SIZE
  3576.         mov     ax,WORD PTR es:[bx]
  3577.         mov     WORD PTR [bp-10],ax
  3578.         les     bx,DWORD PTR [bp+22]    ;DEC
  3579.         mov     ax,WORD PTR es:[bx]
  3580.         mov     WORD PTR [bp-8],ax
  3581.         les     bx,DWORD PTR [bp+26]    ;LEN
  3582.         mov     ax,WORD PTR es:[bx]
  3583.         mov     WORD PTR [bp-6],ax
  3584.         les     bx,dword ptr [bp+30]    ;MASK
  3585.         mov     WORD PTR [bp-4],bx
  3586.         mov     WORD PTR [bp-2],es
  3587.         mov     ax,41
  3588.         push    ax
  3589.         lea     ax,WORD PTR [bp-26]     ;XQLPPARMS
  3590.         push    ss
  3591.         push    ax
  3592.         call    callxqlp
  3593.         add     sp,6
  3594.         les     bx,DWORD PTR [bp+6]     ;STATUS
  3595.         mov     ax,WORD PTR [bp-18]
  3596.         mov     WORD PTR es:[bx],ax
  3597.         les     bx,DWORD PTR [bp+26]    ;LEN
  3598.         mov     ax,WORD PTR [bp-6]
  3599.         mov     WORD PTR es:[bx],ax
  3600.         mov     ax,WORD PTR [bp-18]
  3601.         IFDEF REALIA4
  3602.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  3603.         ENDIF
  3604.         pop     ds
  3605.         mov     sp,bp
  3606.         pop     bp
  3607.         ret
  3608. ENDSUBFN        XMASK
  3609.  
  3610. ;=============================================================================
  3611. ;
  3612. ;=============================================================================
  3613. SUBFN   XSTATUS
  3614.         push    bp
  3615.         mov     bp,sp
  3616.         sub     sp,20
  3617.         push    ds
  3618.         mov     ax,DGROUP
  3619.         mov     ds,ax
  3620.         call    xqlloaded
  3621.         or      ax,ax
  3622.         jne     $I891
  3623.         jmp     NotLoaded_xqlp
  3624. $I891:
  3625.         les     bx,DWORD PTR [bp+10]    ;HANDLE
  3626.         mov     ax,WORD PTR es:[bx]
  3627.         mov     WORD PTR [bp-14],ax
  3628.         les     bx,DWORD PTR [bp+14]    ;SUBFUNCTION
  3629.         mov     ax,WORD PTR es:[bx]
  3630.         mov     WORD PTR [bp-8],ax
  3631.         les     bx,DWORD PTR [bp+18]    ;LEN
  3632.         mov     ax,WORD PTR es:[bx]
  3633.         mov     WORD PTR [bp-6],ax
  3634.         les     bx,dword ptr [bp+22]    ;BUF
  3635.         mov     WORD PTR [bp-4],bx
  3636.         mov     WORD PTR [bp-2],es
  3637.         mov     ax,19
  3638.         push    ax
  3639.         lea     ax,WORD PTR [bp-20]     ;XQLPPARMS
  3640.         push    ss
  3641.         push    ax
  3642.         call    callxqlp
  3643.         add     sp,6
  3644.         les     bx,DWORD PTR [bp+18]    ;LEN
  3645.         mov     ax,WORD PTR [bp-6]
  3646.         mov     WORD PTR es:[bx],ax
  3647.         les     bx,DWORD PTR [bp+6]     ;STATUS
  3648.         mov     ax,WORD PTR [bp-12]
  3649.         mov     WORD PTR es:[bx],ax
  3650.         mov     ax,WORD PTR [bp-12]
  3651.         IFDEF REALIA4
  3652.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  3653.         ENDIF
  3654.         pop     ds
  3655.         mov     sp,bp
  3656.         pop     bp
  3657.         ret
  3658. ENDSUBFN        XSTATUS
  3659.  
  3660. ;=============================================================================
  3661. ;
  3662. ;=============================================================================
  3663. NOT_LOGGED equ 287
  3664. SUBFN   XGETSESSIONID
  3665.         push    bp
  3666.         mov     bp,sp
  3667.         push    ds
  3668.         mov     ax,DGROUP
  3669.         mov     ds,ax
  3670.         les     bx, dword ptr [bp+10]    ; sessionid
  3671.         mov     ax, SessionID
  3672.         mov     WORD PTR es:[bx], ax
  3673.         cmp     WORD PTR SessionID, -1
  3674.         jne     XGET_10
  3675.         mov     ax, NOT_LOGGED
  3676.         jmp     XGET_20
  3677. XGET_10:
  3678.         xor     ax,ax
  3679. XGET_20:
  3680.         les     bx,DWORD PTR [bp+6]     ;STATUS
  3681.         mov     WORD PTR es:[bx],ax
  3682.         IFDEF REALIA4
  3683.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  3684.         ENDIF
  3685.         pop     ds
  3686.         mov     sp,bp
  3687.         pop     bp
  3688.         ret
  3689. ENDSUBFN        XGETSESSIONID
  3690.  
  3691. ;=============================================================================
  3692. ;
  3693. ;=============================================================================
  3694. SUBFN   XPUTSESSIONID
  3695.         push    bp
  3696.         mov     bp,sp
  3697.         push    ds
  3698.         mov     ax,DGROUP
  3699.         mov     ds,ax
  3700.         les     bx, DWORD PTR [bp+10]       ; sessionid
  3701.         mov     ax, WORD PTR es:[bx]        ; get session id from user
  3702.         mov     SessionID, ax
  3703.         xor     ax,ax
  3704.         les     bx,DWORD PTR [bp+6]         ; STATUS Variable
  3705.         mov     WORD PTR es:[bx],ax         ; always return status 0
  3706.         IFDEF REALIA4
  3707.         mov     ss:CSA$BASE.CSA$RTN,ax  ;save Realia 4 return code
  3708.         ENDIF
  3709.         pop     ds
  3710.         mov     sp,bp
  3711.         pop     bp
  3712.         ret
  3713. ENDSUBFN        XPUTSESSIONID
  3714.  
  3715. ENDCODE         SQLCOB
  3716.  
  3717. DataGroup
  3718. globalW SessionID, SessionID, 0ffffH
  3719. globalW SQLCODE, SQLCODE, 0
  3720. EndData
  3721.  
  3722. END
  3723.