!--------------------------------------------------------------------------
-! Laod constant , load local , store local
+! Load constant , load local , store local
!--------------------------------------------------------------------------
loc_0: mov d6,-(sp)
adroff
move.w (a1),d0
ext.l d0 !ext works only on d register
-4: move.l d0,-(sp) !adapt for l , then "move.2l" signextended
+4: move.l d0,-(sp)
#ifdef lword
bmi 0f
clr.l -(sp)
jmp (a4)
ldc_q:
#ifdef lword
+ tst.l (sp)
+ bmi 0f
clr.l -(sp)
+ bra 1f
+0: move.l #-1,-(sp)
+1:
#endif
jmp (a4)
lol__8W: mov l_8(a2),-(sp) ; jmp (a4)
lol_w0: clr.w d0
move.b (a3)+,d0
-5: asl.l wmu,d0
- mov 16(a2,d0),-(sp)
+ asl.w wmu,d0
+ mov l0(a2,d0),-(sp)
jmp (a4)
lol_w_1: move.l #-1,d0
move.b (a3)+,d0
-2: asl.l wmu,d0
+ asl.w wmu,d0
mov 0(a2,d0),-(sp)
jmp (a4)
lol_pw: adroff
move.w (a1),d0
- bra 5b
+5: asl.l wmu,d0
+ add.l a2,d0
+ move.l d0,a0
+#if test
+ locptr
+7: bra e_badptr
+6:
+#endif
+ mov l0(a0),-(sp)
+ jmp (a4)
lol_nw: adroff
move.w (a1),d0
ext.l d0
- bra 2b
+2: asl.l wmu,d0
+ add.l a2,d0
+ move.l d0,a0
+#if test
+ locptr
+7: bra e_badptr
+6:
+#endif
+ mov (a0),-(sp)
+ jmp (a4)
lol_qnw: move.l (sp)+,d0
bra 2b
lol_qpw: move.l (sp)+,d0
ldl_w_1: move.l #-1,d0
move.b (a3)+,d0
2: asl.l wmu,d0
- mov word(a2,d0),-(sp)
- mov 0(a2,d0),-(sp)
+ add.l a2,d0
+ move.l d0,a0
+#if test
+ locptr
+7: bra e_badptr
+6:
+#endif
+ mov word(a0),-(sp)
+ mov (a0),-(sp)
jmp (a4)
ldl_pw: adroff
move.w (a1),d0
5: asl.l wmu,d0
- mov l1(a2,d0),-(sp)
- mov l0(a2,d0),-(sp)
+ add.l a2,d0
+ move.l d0,a0
+#if test
+ locptr
+7: bra e_badptr
+6:
+#endif
+ mov l1(a0),-(sp)
+ mov l0(a0),-(sp)
jmp (a4)
ldl_nw: adroff
move.w (a1),d0
sub.w #624,d0
asl.w #6,d0
move.b (a3)+,d0
-1: ext.l d0
- asl.l wmu,d0
- mov 0(a6,d0),-(sp)
+1: asl.l wmu,d0
+ add.l a6,d0
+ move.l d0,a0
+#if test
+ extptr
+7: bra e_badptr
+6:
+#endif
+ mov (a0),-(sp)
jmp (a4)
lde_lw: adroff
lde_w0: clr.w d0
move.b (a3)+,d0
1: asl.l wmu,d0
- mov word(a6,d0),-(sp)
- mov 0(a6,d0),-(sp)
+ add.l a6,d0
+ move.l d0,a0
+#if test
+ extptr
+7: bra e_badptr
+6:
+#endif
+ mov word(a0),-(sp)
+ mov (a0),-(sp)
jmp (a4)
!------------------------------------------------------------------------------
lil_0: move.l l0(a2),a0
+#if test
+ locptr
+ heaptr
+ extptr
+7: bra e_badptr
+6:
+#endif
mov (a0),-(sp)
jmp (a4)
lil_1W: move.l l1(a2),a0
+#if test
+ locptr
+ heaptr
+ extptr
+7: bra e_badptr
+6:
+#endif
mov (a0),-(sp)
jmp (a4)
lil_pw: adroff
lil_w0: clr.w d0
move.b (a3)+,d0
1: asl.l wmu,d0
- move.l l0(a2,d0),a0
+ add.l a2,d0
+ move.l d0,a0
+#if test
+ locptr
+7: bra e_badptr
+6:
+#endif
+ move.l l0(a0),a0
+#if test
+ locptr
+ heaptr
+ extptr
+7: bra e_badptr
+6:
+#endif
mov (a0),-(sp)
jmp (a4)
lil_w_1: move.l #-1,d0
move.b (a3)+,d0
1: asl.l wmu,d0
- move.l 0(a2,d0),a0
+ add.l a2,d0
+ move.l d0,a0
+#if test
+ locptr
+7: bra e_badptr
+6:
+#endif
+ move.l (a0),a0
+#if test
+ locptr
+ heaptr
+ extptr
+7: bra e_badptr
+6:
+#endif
mov (a0),-(sp)
jmp (a4)
bra 1f
lof_q: move.l (sp)+,d0
bra 1f
-lof_1W: move.l #1,d0
-2: asl.w wmu,d0
+lof_1W: move.l wrd,d0
1: move.l (sp)+,a0
- mov 0(a0,d0),-(sp)
+ add.l d0,a0
+#if test
+ locptr
+ heaptr
+ extptr
+7: bra e_badptr
+6:
+#endif
+ mov (a0),-(sp)
jmp (a4)
-lof_2W: move.l #2,d0 ; bra 2b
-lof_3W: move.l #3,d0 ; bra 2b
-lof_4W: move.l #4,d0 ; bra 2b
+lof_2W: move.l wrd+word,d0 ; bra 1b
+lof_3W: move.l wrd+word+word,d0 ; bra 1b
+lof_4W: move.l wrd+word+word+word,d0 ; bra 1b
ldf_l: adroff
move.w (a1),d0
ext.l d0
2: move.l (sp)+,a0
- mov word(a0,d0),-(sp)
- mov 0(a0,d0),-(sp)
+ add.l d0,a0
+#if test
+ locptr
+ heaptr
+ extptr
+7: bra e_badptr
+6:
+#endif
+ mov word(a0),-(sp)
+ mov (a0),-(sp)
jmp (a4)
ldf_q: move.l (sp)+,d0
bra 2b
move.w (a1),d0
bra 1f
lal_qp: move.l (sp)+,d0
- bra 1f
-lal_0: pea 16(a2)
+1: add.l #0+l0,d0
+ bra 4f
+lal_0: pea l0(a2)
jmp (a4)
lal_w0: clr.w d0
move.b (a3)+,d0
asl.l wmu,d0
-1: add.l #16,d0
+ add.l #0+l0,d0
bra 3f
lal_n: adroff
move.w (a1),d0
ext.l d0
- bra 3f
+ bra 4f
lal_qn: move.l (sp)+,d0
- bra 3f
+4: add.l a2,d0
+ move.l d0,-(sp)
+ jmp (a4)
lal__1: move.l #-1,d0
3: pea 0(a2,d0)
jmp (a4)
bra 3b
lal_w_2: move.l #-512,d0
bra 2b
+
lae_l: adroff
move.w (a1),d0
- bra 1f
+1: add.l a6,d0
+ move.l d0,-(sp)
+ jmp (a4)
lae_q: move.l (sp)+,d0
- bra 1f
+ bra 1b
lae_w0: lae_w1: lae_w2: lae_w3: lae_w4:
lae_w5: lae_w6:
sub.w #484,d0
asl.w #6,d0
move.b (a3)+,d0
asl.w wmu,d0
-1: pea 0(a6,d0)
+ pea 0(a6,d0)
jmp (a4)
!---------------------------------------------------------------------------
-lxl_1: move.l 16(a2),-(sp)
+lxl_1: move.l l0(a2),-(sp)
jmp (a4)
lxl_l: adroff
move.w (a1),d0
blt e_oddz
1: sub.l #1,d0
bra 2f
-lxl_2: move.w #1,d0
+lxl_2: move.l #1,d0
2: move.l a2,a0
-3: move.l 16(a0),a0
+3: move.l l0(a0),a0
+#if test
+ locptr
+7: bra e_badptr
+6:
+#endif
dbra d0,3b
move.l a0,-(sp)
jmp (a4)
move.w (a1),d0
bgt 1f
blt e_oddz
- pea 16(a2)
+ pea l0(a2)
jmp (a4)
1: sub.l #1,d0
3: move.l a2,a0
-2: move.l 16(a0),a0
+2: move.l l0(a0),a0
+#if test
+ locptr
+7: bra e_badptr
+6:
+#endif
dbra d0,2b
- pea 16(a0)
+ pea l0(a0)
jmp (a4)
!-----------------------------------------------------------------------
clr.l d1
move.w (a1),d1
bra 8f
-loi_s0: clr.l d1
+loi_s0: move.l #0,d1
move.b (a3)+,d1
8: cmp.w #1,d1
beq loi_1
asl.w wmu,d1
5: move.l (sp)+,a0
add.l d1,a0
+#if test
+ locptr
+ heaptr
+ extptr
+7: bra e_badptr
+6:
+#endif
sub.w #1,d0
1: mov -(a0),-(sp)
dbra d0,1b
jmp (a4)
2: move.l (sp)+,a0
+#if test
+ locptr
+ heaptr
+ extptr
+7: bra e_badptr
+6:
+#endif
move.w (a0),d0
mov d0,-(sp)
jmp (a4)
loi_1: move.l (sp)+,a0
move.w d6,d0
+#if test
+ locptr
+ heaptr
+ extptr
+7: bra e_badptr
+6:
+#endif
move.b (a0),d0
mov d0,-(sp)
jmp (a4)
! STORE GROUP
!---------------------------------------------------------------------
-stl_pw: adroff
+stl_pw: adroff
move.w (a1),d0
3: asl.l wmu,d0
- mov (sp)+,16(a2,d0)
+ add.l a2,d0
+ move.l d0,a0
+#if test
+ locptr
+7: bra e_badptr
+6:
+#endif
+ mov (sp)+,l0(a0)
jmp (a4)
stl_qpw: move.l (sp)+,d0
bra 3b
stl_w_1: move.l #-1,d0
move.b (a3)+,d0
1: asl.l wmu,d0
- mov (sp)+,0(a2,d0)
+ add.l a2,d0
+ move.l d0,a0
+#if test
+ locptr
+7: bra e_badptr
+6:
+#endif
+ mov (sp)+,(a0)
jmp (a4)
-stl_0: mov (sp)+,16(a2) ; jmp (a4)
+stl_0: mov (sp)+,l0(a2) ; jmp (a4)
stl_1W: mov (sp)+,l1(a2) ; jmp (a4)
stl__1W: mov (sp)+,l_1(a2) ; jmp (a4)
stl__2W: mov (sp)+,l_2(a2) ; jmp (a4)
sdl_w_1: move.l #-1,d0
move.b (a3)+,d0
2: asl.l wmu,d0
- mov (sp)+,0(a2,d0)
- mov (sp)+,word(a2,d0)
+ add.l a2,d0
+ move.l d0,a0
+#if test
+ locptr
+7: bra e_badptr
+6:
+#endif
+ mov (sp)+,(a0)
+ mov (sp)+,word(a0)
jmp (a4)
sdl_nw: adroff
move.w (a1),d0
sdl_pw: adroff
move.w (a1),d0
4: asl.l wmu,d0
- mov (sp)+,l0(a2,d0)
- mov (sp)+,l1(a2,d0)
+ add.l a2,d0
+ move.l d0,a0
+#if test
+ locptr
+7: bra e_badptr
+6:
+#endif
+ mov (sp)+,l0(a0)
+ mov (sp)+,l1(a0)
jmp (a4)
!------------------------------------------------------------------------
bra 1f
sde_l: adroff
move.w (a1),d0
-1: mov (sp)+,0(a6,d0)
- mov (sp)+,word(a6,d0)
+1: add.l a6,d0
+ move.l d0,a0
+#if test
+ extptr
+7: bra e_badptr
+6:
+#endif
+ mov (sp)+,(a0)
+ mov (sp)+,word(a0)
jmp (a4)
ste_qw: move.l (sp)+,d0
bra 1f
ste_w0: clr.w d0
0: move.b (a3)+,d0
1: asl.l wmu,d0
- mov (sp)+,0(a6,d0)
+ add.l a6,d0
+ move.l d0,a0
+#if test
+ extptr
+7: bra e_badptr
+6:
+#endif
+ mov (sp)+,(a0)
jmp (a4)
!-------------------------------------------------------------------------
stf_q: move.l (sp)+,a0
- bra 6f
+ bra 0f
stf_l: adroff
move.l #0,a0
move.w (a1),a0
- bra 6f
-stf_2W: move.l wrd,a0 ; add.l a0,a0
- bra 6f
+ bra 0f
+stf_2W: move.l wrd+word,d0 ; move.l d0,a0
+ bra 0f
stf_s0: clr.w d0
move.b (a3)+,d0
move.l d0,a0
- bra 6f
-stf_1W: move.l wrd,a0
-6: add.l (sp)+,a0
+ bra 0f
+stf_1W: move.l wrd,d0 ; move.l d0,a0
+0: add.l (sp)+,a0
+#if test
+ locptr
+ heaptr
+ extptr
+7: bra e_badptr
+6:
+#endif
mov (sp)+,(a0)
jmp (a4)
sdf_q: move.l (sp)+,a0
- bra 7f
+ bra 1f
sdf_l: adroff
move.l d6,a0
move.w (a1),a0
-7: add.l (sp)+,a0
+1: add.l (sp)+,a0
+#if test
+ locptr
+ heaptr
+ extptr
+7: bra e_badptr
+6:
+#endif
mov (sp)+,(a0)+
mov (sp)+,(a0)
jmp (a4)
!-----------------------------------------------------------------------------
sil_w0: move.w d6,d0
move.b (a3)+,d0
- asl.l wmu,d0
-5: move.l 16(a2,d0),a0
+5: asl.l wmu,d0
+ add.l a2,d0
+ move.l d0,a0
+#if test
+ locptr
+7: bra e_badptr
+6:
+#endif
+ move.l l0(a0),a0
+#if test
+ locptr
+ heaptr
+ extptr
+7: bra e_badptr
+6:
+#endif
mov (sp)+,(a0)
jmp (a4)
sil_w_1: move.l #-1,d0
move.b (a3)+,d0
- asl.l wmu,d0
-2: move.l 0(a2,d0),a0
+2: asl.l wmu,d0
+ add.l a2,d0
+ move.l d0,a0
+#if test
+ locptr
+7: bra e_badptr
+6:
+#endif
+ move.l (a0),a0
+#if test
+ locptr
+ heaptr
+ extptr
+7: bra e_badptr
+6:
+#endif
mov (sp)+,(a0)
jmp (a4)
sil_pw: adroff
!----------------------------------------------------------------------------
sti_1: move.l (sp)+,a0
- move.b word-1(sp),(a0) !lsb,msb goed?
+#if test
+ locptr
+ heaptr
+ extptr
+7: bra e_badptr
+6:
+#endif
+ move.b word-1(sp),(a0)
add.l wrd,sp
jmp (a4)
sti_l: adroff ; move.w (a1),d0 ; bra 0f
#ifdef lword
asr.l #1,d0 ; bne 2f
move.l (sp)+,a0; lea 2(sp),sp
+#if test
+ locptr
+ heaptr
+ extptr
+7: bra e_badptr
+6:
+#endif
move.w (sp)+,(a0); jmp (a4)
2: bcs e_oddz
#endif
sti_1W: sti_2W: sti_3W: sti_4W:
sub.w #876,d0 ; asr.w #2,d0
3: move.l (sp)+,a0
+#if test
+ locptr
+ heaptr
+ extptr
+7: bra e_badptr
+6:
+#endif
4: mov (sp)+,(a0)+
dbra d0,4b
jmp (a4)
2: move.w (sp)+,d1 ; ext.l d1
add.l d1,(sp) ; jmp (a4)
ads_1W: mov (sp)+,d0
-#ifndef lword
- ext.l d0
-#endif
+ extend d0
add.l d0,(sp); jmp (a4)
sbs_l: adroff ; move.w (a1),d0
bra 0f
bne 3f ; bsr e_iund
3:
#endif
- ad #1,(a0) ; bvs 9f
+ ad #1,(a0)
+#if test
+ bvs 9f
+#endif
jmp (a4)
#ifdef lword
inl__1W: move.l a2,a0 ; sub.l #4,a0 ; bra 4b
2: asl.l wmu,d0
1: move.l a2,a0 ; add.l d0,a0 ; bra 4b
inl_pw: adroff ; move.w (a1),d0
-6: asl.l wmu,d0 ; add.l #16,d0
+6: asl.l wmu,d0 ; add.l #0+l0,d0
bra 1b
inl_qpw: move.l (sp)+,d0 ; bra 6b
inl_nw: adroff ; move.w (a1),d0
dec_z: move.l sp,a0
4:
#if test
- !let op , test gebruikt voor tst?
+ locptr
+ heaptr
+ extptr
+7: bra e_badptr
+6:
comp und,(a0) ;bne 3f
bsr e_iund
3:
#endif
- subt #1,(a0) ; bvs 9f
+ subt #1,(a0)
+#if test
+ bvs 9f
+#endif
jmp (a4)
del_w_1: move.l #-1,d0 ; move.b (a3)+,d0
1: asl.l wmu,d0
2: move.l a2,a0 ; add.l d0,a0 ; bra 4b
del_pw: adroff ; move.w (a1),d0
-5: asl.l wmu,d0 ; add.l #16,d0 ; bra 2b
+5: asl.l wmu,d0 ; add.l #0+l0,d0 ; bra 2b
del_qpw: move.l (sp)+,d0 ; bra 5b
del_nw: adroff ; move.w (a1),d0
ext.l d0 ; bra 1f
dee_lw: adroff ; move.w (a1),d0 ; bra 0b
dee_qw: move.l (sp)+,d0 ; bra 0b
+#if test
9: bsr e_iovfl !error routine for integer overflow
jmp (a4)
+#endif
!----------------------------------------------------------------------------
zrl__1W: cl l_1(a2) ; jmp (a4)
zrl__2W: cl l_2(a2) ; jmp (a4)
zrl_w_1: move.l #-1,d0 ; move.b (a3)+,d0
-1: asl.l wmu,d0 ; cl 0(a2,d0)
+1: asl.l wmu,d0 ; add.l a2,d0
+ move.l d0,a0
+#if test
+ locptr
+7: bra e_badptr
+6:
+#endif
+ cl (a0)
jmp (a4)
zrl_nw: adroff ; move.w (a1),d0
ext.l d0 ; bra 1b
zrl_qnw: move.l (sp)+,d0 ; bra 1b
zrl_pw: adroff ; move.w (a1),d0
-2: asl.l wmu,d0 ; cl 16(a2,d0)
+2: asl.l wmu,d0 ; add.l a2,d0
+ move.l d0,a0 ; cl l0(a0)
jmp (a4)
zrl_qpw: move.l (sp)+,d0 ; bra 2b
zre_lw: adroff ; move.w (a1),d0 ; bra 7f
zre_qw: move.l (sp)+,d0 ; bra 7f
zre_w0: clr.w d0 ; move.b (a3)+,d0
-7: asl.l wmu,d0 ; cl 0(a6,d0)
+7: asl.l wmu,d0 ; add.l a6,d0
+ move.l d0,a0
+#if test
+ extptr
+7: bra e_badptr
+6:
+#endif
+ cl (a0)
jmp (a4)
zrf_l: adroff ; move.w (a1),d0 ; bra 8f
zrf_z: mov (sp)+,d0
!------------------------------------------------------------------------------
set_s0: clr.w d0 ; move.b (a3)+,d0
-0: ble e_oddz ; clr.l d1
+0: ble e_oddz ; move.l #0,d1
mov (sp)+,d1; move.l d0,d2
move.l d7,d3
1: asr.l #1,d2 ; dbcs d3,1b