Siguiendo los pasos que me han dado, se me ocurrió seguir los siguientes procesos. El primero el byte $040000 para poder pasarlo a decimal, le realizo un previo proceso que es convertirlo a bytes independientes que no superen el $0F, dando vueltas por todos lados me recordé como se pasaba un decimal a hexadecimal y usando la misma regla, me di cuenta que el computador es tonto, jjajja me acorde de mi profe de PHP.
Código: Seleccionar todo
dex a hex
$00/16 = 0
$00-(0*16) = 0
$00/16 = 0
$00-(0*16) = 0
$04/16 = 4
$00-(0*16) = 0
ya con eso pude obtener el paso de hexadecimal a como si fuera nibble, un pequeño engaño.
y el resultado lo incorpora como $00,$04,$00,$00,$00,$00
si fuese otro byte $053928
lo deja como $00,$05,$03,$09,$02,$08
tarea para la casa para la semana es realizar la conversión y suma de estos bytes a decimal
les dejo el código.
Código: Seleccionar todo
*=$2000
CALCULO
.BYTE $00,$00,$00,$00,$00,$00,$00,$00 ;7
.BYTE $00,$00,$00,$00,$00,$00,$00,$00 ;15
.BYTE $9B
TOTAL
.BYTE $04,$00,$00,$9B
MUESTROASCII
.BYTE "000000",$9B
;****************************
; LIMPIO CALCULO
;****************************
LIMPIOCALCULO
LDX #15
LIMPIOCALCULO?
LDA #$00
STA CALCULO,X
CPX #0
BEQ FINLIMPIOCALCULO
DEX
JMP LIMPIOCALCULO?
FINLIMPIOCALCULO
RTS
;****************************
; PROCESO EL TOTAL
;****************************
PROCESO.TOTAL
JSR LIMPIOCALCULO
LDX #2
LDY #5
PROCESO.TOTAL?
;CARGO EL PRIMER BYTE PARA CONVERTIR A NIBBLE
LDA TOTAL,X
STA CALCULO
;SOLICITO PROCESO DE PASO A NIBBLE
JSR CONVIERTO.A.NIBBLE
LDA CALCULO+14
STA MUESTROASCII,Y ;6
DEY
LDA CALCULO+13
STA MUESTROASCII,Y ;5
CPX #0
BEQ FIN.PROCESO.TOTAL
DEY
DEX
JMP PROCESO.TOTAL?
FIN.PROCESO.TOTAL
RTS
;****************************
;CONVERTIMOS LOS BYTES A NIBBLES
;****************************
CONVIERTO.A.NIBBLE
;CARGO EL BYTE MOMENTANEO Y LO GUARDO
;
LDA #$00
STA CALCULO+15
STA CALCULO+14
STA CALCULO+13
LDA CALCULO
STA CALCULO+15
;DIVIDO POR 16 EL BYTE
;PARA OBTENER EL BYTE LOW
LSR CALCULO ;2
LSR CALCULO ;4
LSR CALCULO ;8
LSR CALCULO ;16
;CARGO AL ACUMULADOR EL RESULTADO
;DE LA DIVISION *16
;Y LO GUARDO EN CALCULO+14
LDA CALCULO
STA CALCULO
STA CALCULO+13
ASL CALCULO ;2
ASL CALCULO ;4
ASL CALCULO ;8
ASL CALCULO ;16
LDA CALCULO
SEC
LDA CALCULO+15
SBC CALCULO
STA CALCULO+14
RTS
;FIN CONVERTIMOS BYTES A NIBBLES
INICIO
LDA #0
STA 710
LDA #1
STA 752
JSR PROCESO.TOTAL
LDX #<MUESTROASCII
LDY #>MUESTROASCII
JSR $C642
LOOP
JMP LOOP
*=$2E0
.WORD INICIO
les dejo el codigo en asm por si lo quieren descargar junto con su xex