******************************************************************************* FPU_D8: cs:inc.b Size pop.w di ;The instruction print address. bsr.w P_BX_List ;Print the command name. dc.b $F6,$C1,$C0 ;Test for st(0). bne.s _ST_BX_SI push.w #_Print_ST0 _Print_STX: pop.w di pop.w si cs:move.b InstCol, ah ;The colour. move.w #ST0,dx ;The instruction to print. bsr.w Print_String ;Print it again! move.b cl, al and.b #$07, al ;Mask off the relevant. add.b #$30, al ;Convert to ASCII. es:move.b al, -4(di) ;Set it! rts _Print_ST0: bsr.w Print_Comma ; cs:move.b InstCol, ah ;Set the instruction colour. move.w #ST0,dx ;The instruction to print. bra.w Print_String ;Print the instruction. ******************************************************************************* FPU_D9: cs:inc.b Size pop.w di ;The instruction print address. dc.b $80,$F9,$00 ;Compare CL with #$C0 bge.s _Low_D9 dc.b $80,$F9,$C0 ;Compare CL with #$C0 bge.s _Process_D9 _Low_D9: bsr.w P_BX_List ;Print the command name. cs:move.b #8, EscSize ; es:cmp.b #'C', -2(di) ;Check for ESC beq.s _Esc_ _ST_BX_SI: pop.w di ;Where to print the operands. pop.w si ;The offset. bra.w Print_BX_SI ; ***************************************** _Process_D9: cs:move.b InstCol, ah ;Set the colour. move.b cl, bl ;Get the byte. dc.b $80,$F9,$E0 ;Compare CL with #$E0 bge.s _D9_List ; shr.b #2, bl ; and.w #6, bx ;Just a little bit. cs:move.w D9_LIST1(bx), dx dc.b $80,$FB,$04 ;Do a compare for FNOP? beq.s _FNOP_ ;Yes... push.w #_Print_STX ;Set we wanna come back to here. bra.w Print_String _D9_List: and.w #$1F, bx ;Mask off the relevant data. shl.w #1, bx ;Multiply by two. cs:move.w D9_LIST2(bx), dx _FNOP_: bsr.w Print_String pop.w di pop.w si rts ******************************************************************************* FPU_DA: cs:inc.b Size pop.w di ;The instruction print address. cs:move.b #16, EscSize ; move.b cl, al ; and.b #$C0, al ; cmp.b #$C0, al beq.s _P_Esc_ ; bsr.w P_BX_List ;Print the command name. bra.s _ST_BX_SI _P_Esc_: cs:move.b InstCol, ah ;Set the colour. move.w #D_ESC, dx ; bsr.w Print_String ;Print the instruction name. _Esc_: pop.w di pop.w si cs:inc.b Size ; inc.w si ; move.b cl, ch ; ds:move.b 1(si), bl ;Get our data. shr.b #3, bl ;Move our data where we want it. and.b #7, bl ;Mask our bits. cs:add.b EscSize, bl ; cs:move.b ImdCol, ah :The colour. move.b #2, cl bsr.w Print_Hex ;Print the hex. bsr.w Print_Comma ds:move.b 1(si), cl ; dc.b $0F,$BA,$F9,$08 ;Toggle the Size. bsr.w Print_BX_SI dec.w si rts ******************************************************************************* FPU_DB: rts ******************************************************************************* FPU_DC: rts ******************************************************************************* FPU_DD: rts ******************************************************************************* FPU_DE: rts ******************************************************************************* FPU_DF: rts ******************************************************************************* EscSize dc.b 0 *******************************************************************************