?login_element?

Subversion Repositories NedoOS

Rev

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

  1.     DEVICE ZXSPECTRUMNEXT
  2.     ORG $8000
  3. ; multi-argument instructions
  4.     push af,hl,de   ; 3x push instruction
  5.     ld  a,1,b,2,hl,$1234,de,$5678    ; 4x ld instruction
  6.  
  7. ; all fake instructions
  8. nn EQU $56
  9. mm EQU $78
  10.     rl bc           ; rl c : rl b
  11.     rl de           ; rl e : rl d
  12.     rl hl           ; rl l : rl h
  13.     rr bc           ; rr b : rr c
  14.     rr de           ; rr d : rr e
  15.     rr hl           ; rr h : rr l
  16.     sla bc          ; sla c : rl b
  17.     sla de          ; sla e : rl d
  18.     sla hl          ; add hl,hl
  19.     sll bc          ; sli c : rl b
  20.     sll de          ; sli e : rl d
  21.     sll hl          ; sli l : rl h
  22.     sli bc          ; sli c : rl b
  23.     sli de          ; sli e : rl d
  24.     sli hl          ; sli l : rl h
  25.     sra bc          ; sra b : rr c
  26.     sra de          ; sra d : rr e
  27.     sra hl          ; sra h : rr l
  28.     srl bc          ; srl b : rr c
  29.     srl de          ; srl d : rr e
  30.     srl hl          ; srl h : rr l
  31.  
  32.     ld bc,bc        ; ld b,b : ld c,c
  33.     ld bc,de        ; ld b,d : ld c,e
  34.     ld bc,hl        ; ld b,h : ld c,l
  35.     ld bc,ix        ; ld b,xh : ld c,xl
  36.     ld bc,iy        ; ld b,yh : ld c,yl
  37.     ld bc,(hl)      ; ld c,(hl) : inc hl : ld b,(hl) : dec hl
  38.     ld bc,(ix+nn)   ; ld c,(ix+nn) : ld b,(ix+nn+1)
  39.     ld bc,(iy+nn)   ; ld c,(iy+nn) : ld b,(iy+nn+1)
  40.  
  41.     ld de,bc        ; ld d,b : ld e,c
  42.     ld de,de        ; ld d,d : ld e,e
  43.     ld de,hl        ; ld d,h : ld e,l
  44.     ld de,ix        ; ld d,xh : ld e,xl
  45.     ld de,iy        ; ld d,yh : ld e,yl
  46.     ld de,(hl)      ; ld e,(hl) : inc hl : ld d,(hl) : dec hl
  47.     ld de,(ix+nn)   ; ld e,(ix+nn) : ld d,(ix+nn+1)
  48.     ld de,(iy+nn)   ; ld e,(iy+nn) : ld d,(iy+nn+1)
  49.  
  50.     ld hl,bc        ; ld h,b : ld l,c
  51.     ld hl,de        ; ld h,d : ld l,e
  52.     ld hl,hl        ; ld h,h : ld l,l
  53.     ld hl,ix        ; push ix : pop hl
  54.     ld hl,iy        ; push iy : pop hl
  55.     ld hl,(ix+nn)   ; ld l,(ix+nn) : ld h,(ix+nn+1)
  56.     ld hl,(iy+nn)   ; ld l,(iy+nn) : ld h,(iy+nn+1)
  57.  
  58.     ld ix,bc        ; ld xh,b : ld xl,c
  59.     ld ix,de        ; ld xh,d : ld xl,e
  60.     ld ix,hl        ; push hl : pop ix
  61.     ld ix,ix        ; ld xh,xh : ld xl,xl
  62.     ld ix,iy        ; push iy : pop ix
  63.  
  64.     ld iy,bc        ; ld yh,b : ld yl,c
  65.     ld iy,de        ; ld yh,d : ld yl,e
  66.     ld iy,hl        ; push hl : pop iy
  67.     ld iy,ix        ; push ix : pop iy
  68.     ld iy,iy        ; ld yh,yh : ld yl,yl
  69.  
  70.     ld (hl),bc      ; ld (hl),c : inc hl : ld (hl),b : dec hl
  71.     ld (hl),de      ; ld (hl),e : inc hl : ld (hl),d : dec hl
  72.  
  73.     ld (ix+nn),bc   ; ld (ix+nn),c : ld (ix+nn+1),b
  74.     ld (ix+nn),de   ; ld (ix+nn),e : ld (ix+nn+1),d
  75.     ld (ix+nn),hl   ; ld (ix+nn),l : ld (ix+nn+1),h
  76.  
  77.     ld (iy+nn),bc   ; ld (iy+nn),c : ld (iy+nn+1),b
  78.     ld (iy+nn),de   ; ld (iy+nn),e : ld (iy+nn+1),d
  79.     ld (iy+nn),hl   ; ld (iy+nn),l : ld (iy+nn+1),h
  80.  
  81.     ldi bc,(hl)     ; ld c,(hl) : inc hl : ld b,(hl) : inc hl
  82.     ldi bc,(ix+nn)  ; ld c,(ix+nn) : inc ix : ld b,(ix+nn) : inc ix
  83.     ldi bc,(iy+nn)  ; ld c,(iy+nn) : inc iy : ld b,(iy+nn) : inc iy
  84.  
  85.     ldi de,(hl)     ; ld e,(hl) : inc hl : ld d,(hl) : inc hl
  86.     ldi de,(ix+nn)  ; ld e,(ix+nn) : inc ix : ld d,(ix+nn) : inc ix
  87.     ldi de,(iy+nn)  ; ld e,(iy+nn) : inc iy : ld d,(iy+nn) : inc iy
  88.  
  89.     ldi hl,(ix+nn)  ; ld l,(ix+nn) : inc ix : ld h,(ix+nn) : inc ix
  90.     ldi hl,(iy+nn)  ; ld l,(iy+nn) : inc iy : ld h,(iy+nn) : inc iy
  91.  
  92.     ldi (hl),bc     ; ld (hl),c : inc hl : ld (hl),b : inc hl
  93.     ldi (hl),de     ; ld (hl),e : inc hl : ld (hl),d : inc hl
  94.  
  95.     ldi (ix+nn),bc  ; ld (ix+nn),c : inc ix : ld (ix+nn),b : inc ix
  96.     ldi (ix+nn),de  ; ld (ix+nn),e : inc ix : ld (ix+nn),d : inc ix
  97.     ldi (ix+nn),hl  ; ld (ix+nn),l : inc ix : ld (ix+nn),h : inc ix
  98.  
  99.     ldi (iy+nn),bc  ; ld (iy+nn),c : inc iy : ld (iy+nn),b : inc iy
  100.     ldi (iy+nn),de  ; ld (iy+nn),e : inc iy : ld (iy+nn),d : inc iy
  101.     ldi (iy+nn),hl  ; ld (iy+nn),l : inc iy : ld (iy+nn),h : inc iy
  102.  
  103.     ldi a,(bc)      ; ld a,(bc) : inc bc
  104.     ldi a,(de)      ; ld a,(de) : inc de
  105.     ldi a,(hl)      ; ld a,(hl) : inc hl
  106.     ldi b,(hl)      ; ld b,(hl) : inc hl
  107.     ldi c,(hl)      ; ld c,(hl) : inc hl
  108.     ldi d,(hl)      ; ld d,(hl) : inc hl
  109.     ldi e,(hl)      ; ld e,(hl) : inc hl
  110.     ldi h,(hl)      ; ld h,(hl) : inc hl
  111.     ldi l,(hl)      ; ld l,(hl) : inc hl
  112.     ldi a,(ix+nn)   ; ld a,(ix+nn) : inc ix
  113.     ldi b,(ix+nn)   ; ld b,(ix+nn) : inc ix
  114.     ldi c,(ix+nn)   ; ld c,(ix+nn) : inc ix
  115.     ldi d,(ix+nn)   ; ld d,(ix+nn) : inc ix
  116.     ldi e,(ix+nn)   ; ld e,(ix+nn) : inc ix
  117.     ldi h,(ix+nn)   ; ld h,(ix+nn) : inc ix
  118.     ldi l,(ix+nn)   ; ld l,(ix+nn) : inc ix
  119.     ldi a,(iy+nn)   ; ld a,(iy+nn) : inc iy
  120.     ldi b,(iy+nn)   ; ld b,(iy+nn) : inc iy
  121.     ldi c,(iy+nn)   ; ld c,(iy+nn) : inc iy
  122.     ldi d,(iy+nn)   ; ld d,(iy+nn) : inc iy
  123.     ldi e,(iy+nn)   ; ld e,(iy+nn) : inc iy
  124.     ldi h,(iy+nn)   ; ld h,(iy+nn) : inc iy
  125.     ldi l,(iy+nn)   ; ld l,(iy+nn) : inc iy
  126.  
  127.     ldd a,(bc)      ; ld a,(bc) : dec bc
  128.     ldd a,(de)      ; ld a,(de) : dec de
  129.     ldd a,(hl)      ; ld a,(hl) : dec hl
  130.     ldd b,(hl)      ; ld b,(hl) : dec hl
  131.     ldd c,(hl)      ; ld c,(hl) : dec hl
  132.     ldd d,(hl)      ; ld d,(hl) : dec hl
  133.     ldd e,(hl)      ; ld e,(hl) : dec hl
  134.     ldd h,(hl)      ; ld h,(hl) : dec hl
  135.     ldd l,(hl)      ; ld l,(hl) : dec hl
  136.     ldd a,(ix+nn)   ; ld a,(ix+nn) : dec ix
  137.     ldd b,(ix+nn)   ; ld b,(ix+nn) : dec ix
  138.     ldd c,(ix+nn)   ; ld c,(ix+nn) : dec ix
  139.     ldd d,(ix+nn)   ; ld d,(ix+nn) : dec ix
  140.     ldd e,(ix+nn)   ; ld e,(ix+nn) : dec ix
  141.     ldd h,(ix+nn)   ; ld h,(ix+nn) : dec ix
  142.     ldd l,(ix+nn)   ; ld l,(ix+nn) : dec ix
  143.     ldd a,(iy+nn)   ; ld a,(iy+nn) : dec iy
  144.     ldd b,(iy+nn)   ; ld b,(iy+nn) : dec iy
  145.     ldd c,(iy+nn)   ; ld c,(iy+nn) : dec iy
  146.     ldd d,(iy+nn)   ; ld d,(iy+nn) : dec iy
  147.     ldd e,(iy+nn)   ; ld e,(iy+nn) : dec iy
  148.     ldd h,(iy+nn)   ; ld h,(iy+nn) : dec iy
  149.     ldd l,(iy+nn)   ; ld l,(iy+nn) : dec iy
  150.  
  151.     ldi (bc),a      ; ld (bc),a : inc bc
  152.     ldi (de),a      ; ld (de),a : inc de
  153.     ldi (hl),a      ; ld (hl),a : inc hl
  154.     ldi (hl),b      ; ld (hl),b : inc hl
  155.     ldi (hl),c      ; ld (hl),c : inc hl
  156.     ldi (hl),d      ; ld (hl),d : inc hl
  157.     ldi (hl),e      ; ld (hl),e : inc hl
  158.     ldi (hl),h      ; ld (hl),h : inc hl
  159.     ldi (hl),l      ; ld (hl),l : inc hl
  160.     ldi (ix+nn),a   ; ld (ix+nn),a : inc ix
  161.     ldi (ix+nn),b   ; ld (ix+nn),b : inc ix
  162.     ldi (ix+nn),c   ; ld (ix+nn),c : inc ix
  163.     ldi (ix+nn),d   ; ld (ix+nn),d : inc ix
  164.     ldi (ix+nn),e   ; ld (ix+nn),e : inc ix
  165.     ldi (ix+nn),h   ; ld (ix+nn),h : inc ix
  166.     ldi (ix+nn),l   ; ld (ix+nn),l : inc ix
  167.     ldi (iy+nn),a   ; ld (iy+nn),a : inc iy
  168.     ldi (iy+nn),b   ; ld (iy+nn),b : inc iy
  169.     ldi (iy+nn),c   ; ld (iy+nn),c : inc iy
  170.     ldi (iy+nn),d   ; ld (iy+nn),d : inc iy
  171.     ldi (iy+nn),e   ; ld (iy+nn),e : inc iy
  172.     ldi (iy+nn),h   ; ld (iy+nn),h : inc iy
  173.     ldi (iy+nn),l   ; ld (iy+nn),l : inc iy
  174.  
  175.     ldd (bc),a      ; ld (bc),a : dec bc
  176.     ldd (de),a      ; ld (de),a : dec de
  177.     ldd (hl),a      ; ld (hl),a : dec hl
  178.     ldd (hl),b      ; ld (hl),b : dec hl
  179.     ldd (hl),c      ; ld (hl),c : dec hl
  180.     ldd (hl),d      ; ld (hl),d : dec hl
  181.     ldd (hl),e      ; ld (hl),e : dec hl
  182.     ldd (hl),h      ; ld (hl),h : dec hl
  183.     ldd (hl),l      ; ld (hl),l : dec hl
  184.     ldd (ix+nn),a   ; ld (ix+nn),a : dec ix
  185.     ldd (ix+nn),b   ; ld (ix+nn),b : dec ix
  186.     ldd (ix+nn),c   ; ld (ix+nn),c : dec ix
  187.     ldd (ix+nn),d   ; ld (ix+nn),d : dec ix
  188.     ldd (ix+nn),e   ; ld (ix+nn),e : dec ix
  189.     ldd (ix+nn),h   ; ld (ix+nn),h : dec ix
  190.     ldd (ix+nn),l   ; ld (ix+nn),l : dec ix
  191.     ldd (iy+nn),a   ; ld (iy+nn),a : dec iy
  192.     ldd (iy+nn),b   ; ld (iy+nn),b : dec iy
  193.     ldd (iy+nn),c   ; ld (iy+nn),c : dec iy
  194.     ldd (iy+nn),d   ; ld (iy+nn),d : dec iy
  195.     ldd (iy+nn),e   ; ld (iy+nn),e : dec iy
  196.     ldd (iy+nn),h   ; ld (iy+nn),h : dec iy
  197.     ldd (iy+nn),l   ; ld (iy+nn),l : dec iy
  198.  
  199.     ldi (hl),mm     ; ld (hl),mm : inc hl
  200.     ldi (ix+nn),mm  ; ld (ix+nn),mm : inc ix
  201.     ldi (iy+nn),mm  ; ld (iy+nn),mm : inc iy
  202.  
  203.     ldd (hl),mm     ; ld (hl),mm : dec hl
  204.     ldd (ix+nn),mm  ; ld (ix+nn),mm : dec ix
  205.     ldd (iy+nn),mm  ; ld (iy+nn),mm : dec iy
  206.  
  207.     sub hl,bc       ; or a : sbc hl,bc
  208.     sub hl,de       ; or a : sbc hl,de
  209.     sub hl,hl       ; or a : sbc hl,hl
  210.     sub hl,sp       ; or a : sbc hl,sp
  211.  
  212. ; multi-argument fake instructions (final level)
  213.  
  214.     ; ld (hl),l : dec hl : ld (ix+nn),a : dec ix : ld (hl),mm : dec hl : ld (ix+nn),mm : dec ix
  215.     ldd (hl),l,(ix+nn),a,(hl),mm,(ix+nn),mm
  216.  
  217.     ; ld (hl),l : inc hl : ld (ix+nn),a : inc ix : ld (hl),mm : inc hl : ld (ix+nn),mm : inc ix
  218.     ldi (hl),l,(ix+nn),a,(hl),mm,(ix+nn),mm
  219.  
  220.     ; sla c : rl b : sla e : rl d : add hl,hl
  221.     sla bc,de,hl
  222.  
  223.     ; hopefully that's enough to test... was not, round 2:
  224.  
  225.     ; multi-argument instructions
  226.     pop hl,de       ; normal pop
  227.     OPT --reversepop
  228.     pop hl,de       ; reverse pop
  229.     sla b,c
  230.