?login_element?

Subversion Repositories NedoOS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1.  
  2.  
  3. one_ops:        ;1OP: 0     1      2      3     4         5     6       7
  4.         defw     z_jz,   z_os,  z_oc,  z_op, prplen, incvar, decvar, praddr
  5.         defw     call1s, rmobj, probj, z_rv, z_jmp,  printp, loadv,  call1n
  6.  
  7. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  8. ;
  9. z_jz:
  10.         ld      hl,(v_arg1)
  11.         ld      a,h
  12.         or      l
  13.         jp      z,branch
  14.         jp      nbranch
  15. ;
  16. z_jmp:  ld      hl,(v_arg1)
  17.         jp      pbranch
  18. ;
  19. z_ld:   ld      a,(v_arg1)
  20.         call    get_var
  21.         jp      ret_hl
  22. ;
  23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  24. ;
  25. ;Return a value
  26. ;
  27. z_rv:   ld      hl,(v_arg1)
  28.         jp      z_ret
  29. ;
  30. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  31. ;
  32. ;1OP calls
  33. ;
  34. call1s: ld      a,1
  35.         ld      (v_argc),a
  36.         xor     a
  37.         jp      call_gen
  38. ;
  39. call1n: ld      a,(zver)
  40.         cp      5
  41.         jp      c,znot
  42.         ld      a,1
  43.         ld      (v_argc),a
  44.         jp      call_gen
  45. ;
  46. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  47. ;
  48. ;Printing calls
  49. ;
  50. praddr: ld      hl,(v_arg1)
  51.         ld      e,0             ;<< v0.03 >> This is a 24-bit address
  52.         jr      printp1
  53. ;
  54. printp:
  55.         ld      hl,(v_arg1)
  56.         call    upack_addr
  57. printp1:
  58.         call    ZXPKWI
  59.         call    printwrd
  60.         bit     7,b
  61.         jr      z,printp1
  62.         call    rshift
  63.         scf
  64.         ret
  65. ;
  66. probj:  ld      de,(v_arg1)     ;Based on jzip print_object()
  67.         ld      a,d
  68.         or      e
  69.         scf                     ;NULL object
  70.         ret     z
  71.         call    objadd          ;Get address of object into HL
  72.         ld      bc,7
  73.         ld      a,(zver)
  74.         cp      4
  75.         jr      c,probj3
  76.         ld      c,12
  77. probj3: add     hl,bc
  78.         ld      e,0
  79.         call    ZXPKWI          ;BC = address
  80.         inc     bc              ;skip count byte
  81.         ld      h,b
  82.         ld      l,c
  83.         jp      printp1
  84. ;
  85. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  86. ;
  87. ;Increment & decrement
  88. ;
  89. incvar: ld      a,(v_arg1)
  90.         push    af
  91.         call    get_var
  92.         inc     hl
  93.         pop     af
  94.         call    put_var
  95.         scf
  96.         ret
  97. ;
  98. decvar: ld      a,(v_arg1)
  99.         push    af
  100.         call    get_var
  101.         dec     hl
  102.         pop     af
  103.         call    put_var
  104.         scf
  105.         ret
  106. ;
  107. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  108. ;
  109. ;Getting related objects
  110. ;
  111. z_op:   ld      de,(v_arg1)     ;Parent
  112.         ld      a,d             ;<< v1.01 Object 0 errors
  113.         or      e
  114.         jp      z,pret0         ;>> v1.01
  115.         call    objadd
  116.         call    read_parent
  117.         ex      de,hl
  118.         scf
  119.         jp      ret_hl
  120. ;
  121. z_oc:   ld      de,(v_arg1)     ;Child
  122.         ld      a,d             ;<< v1.01 Object 0 errors
  123.         or      e
  124.         jr      z,condobj       ;>> v1.01
  125.         call    objadd
  126.         call    read_child
  127.         jr      condobj
  128. ;
  129. z_os:   ld      de,(v_arg1)     ;Sibling
  130.         ld      a,d             ;<< v1.01 Object 0 errors
  131.         or      e
  132.         jr      z,condobj       ;<< v1.01
  133.         call    objadd
  134.         call    read_sibling
  135. condobj:
  136.         ex      de,hl
  137.         push    hl
  138.         call    ret_hl
  139.         pop     hl
  140.         ld      a,h
  141.         or      l
  142.         jp      nz,branch
  143.         jp      nbranch
  144. ;
  145. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  146. ;
  147. ;Remove object
  148. ;
  149. rmobj:  ld      de,(v_arg1)
  150.         ld      a,d             ;<< v1.01 Object 0 errors
  151.         or      e
  152.         scf
  153.         ret     z               ;>> v1.01
  154.         call    obj_remove
  155.         scf
  156.         ret
  157. ;
  158. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  159. ;
  160. loadv:  ld      a,(v_arg1)
  161.         call    get_var ;HL = value of referenced variable
  162.         scf
  163.         jp      ret_hl
  164. ;
  165. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  166. ;
  167. prplen: ld      hl,(v_arg1)     ;Property address
  168.         call    gplen
  169.         scf
  170.         jp      ret_hl
  171. ;
  172. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  173.