mirror of
https://github.com/rigreco/UniDisk.git
synced 2024-05-28 05:41:29 +00:00
Works
This commit is contained in:
parent
18d7995e41
commit
4e7aa5b51b
160
AppleII/FP converter/Conv3.asm
Normal file
160
AppleII/FP converter/Conv3.asm
Normal file
|
@ -0,0 +1,160 @@
|
|||
* @com.wudsn.ide.asm.hardware=APPLE2
|
||||
************************************
|
||||
* BASIC TO FAC TO FP1 *
|
||||
* X=NUMBER *
|
||||
* CALL 768,X *
|
||||
************************************
|
||||
org $300
|
||||
|
||||
CHKCOM equ $DEBE
|
||||
FRMNUM equ $DD67
|
||||
PTRGET equ $DFE3
|
||||
MOVMF equ $EB2B
|
||||
MOVFM equ $EAF9
|
||||
|
||||
** Woz FP Accumulator 4 Byte + 1 Byte Extra + 1 Byte SIGN**
|
||||
FP1 equ $FA ;Translate F8 --> FA
|
||||
E equ $FE ;Translate FC --> FE
|
||||
SIGN equ $EB
|
||||
|
||||
FP2 equ $EC
|
||||
|
||||
** Applesoft FP Accumulator 5 Byte + 1 Byte Sign **
|
||||
FAC equ $9D
|
||||
|
||||
|
||||
***************************
|
||||
|
||||
ENTRY1 jsr CHKCOM
|
||||
jsr FRMNUM ;VARIABLE X ->FAC (6 Byte Unpacked)
|
||||
|
||||
** FPC to FP1 conversion **
|
||||
|
||||
lda FAC
|
||||
dec A ; dec the EXP
|
||||
sta FP1
|
||||
|
||||
lda FAC+5
|
||||
bmi NEG ; chk the Hi bit of 1 byte Mantissa
|
||||
|
||||
POS clc ; Hi bit 0 for negative
|
||||
lda FAC+5
|
||||
|
||||
ora #$80 ; Set Hi Bit 1 byte Mantissa (change Sign only if is positive)
|
||||
ror ; Didide for 2^1
|
||||
|
||||
sta FP1+1
|
||||
|
||||
jmp CONT
|
||||
|
||||
NEG clc ; Hi bit 1 for positive
|
||||
lda FAC+5
|
||||
|
||||
ror ; Didide for 2^1
|
||||
|
||||
eor #$FF ; One's complement, NOT
|
||||
clc
|
||||
adc #01 ; Two's complement, +1
|
||||
|
||||
sta FP1+1
|
||||
|
||||
CONT lda FAC+2
|
||||
ror
|
||||
sta FP1+2
|
||||
|
||||
lda FAC+3
|
||||
ror
|
||||
sta FP1+3
|
||||
|
||||
lda FAC+4
|
||||
ror
|
||||
sta E
|
||||
|
||||
;brk
|
||||
rts
|
||||
************************************
|
||||
* FP1 Calc *
|
||||
* CALL 821 *
|
||||
************************************
|
||||
|
||||
** Copy FP1 to FP2 **
|
||||
|
||||
ENTRY2 lda FP1
|
||||
sta FP2 ;X1-->X2
|
||||
|
||||
lda FP1+1 ;M1-->M2
|
||||
sta FP2+1
|
||||
lda FP1+2
|
||||
sta FP2+2
|
||||
lda FP1+3
|
||||
sta FP2+3
|
||||
*
|
||||
** Y=X*X **
|
||||
*
|
||||
jsr $8067 ;FMUL
|
||||
|
||||
rts
|
||||
************************************
|
||||
* FP1 TO FAC TO BASIC *
|
||||
* CALL 841,Y *
|
||||
* PRINT Y *
|
||||
************************************
|
||||
|
||||
*
|
||||
** FP1 to MEM to FAC conversion **
|
||||
*
|
||||
ENTRY3 lda FP1 ; X1 1 Byte --> 9D FAC
|
||||
inc A ; 2^(FP1+1) inc EXP
|
||||
sta FAC
|
||||
|
||||
lda FP1+1
|
||||
bmi NEG2 ; chk the Hi bit of 1 byte Mantissa
|
||||
|
||||
|
||||
POS2 clc
|
||||
lda FP1+1 ; M1 Hi 2 Byte --> 9E FAC
|
||||
rol ; Multiply for 2^1
|
||||
|
||||
ora #$80 ; Set Hi Bit 1 byte Mantissa (change Sign only if is positive)
|
||||
sta FAC+1 ; To 6^ Byte of FAC Unpacked
|
||||
|
||||
;sta FAC+5 ; To 1^ Byte Mantissa of FAC UnPacked
|
||||
jmp CONT2
|
||||
|
||||
NEG2 lda FP1+1
|
||||
|
||||
sec
|
||||
sbc #01 ; One's complement inv -1
|
||||
eor #$FF ; Two's complement inv NOT
|
||||
|
||||
rol ; Multiply for 2^1
|
||||
|
||||
sta FAC+1 ; To 1^ Byte Mantissa of FAC Packed
|
||||
sta FAC+5 ; To 6^ Byte of FAC Unpacked
|
||||
|
||||
|
||||
CONT2 lda FP1+2 ; M1 3 Byte --> 9F FAC
|
||||
rol
|
||||
sta FAC+2
|
||||
|
||||
lda FP1+3 ; M1 Lo 4 Byte --> A0 FAC
|
||||
rol
|
||||
sta FAC+3
|
||||
|
||||
lda E ; Extra 5 Byte --> A1 FAC
|
||||
rol
|
||||
sta FAC+4
|
||||
|
||||
;brk
|
||||
***************************
|
||||
*
|
||||
ldy #$03 ;Hi Byte MEM
|
||||
lda #$80 ;Lo Byte MEM
|
||||
*
|
||||
jsr CHKCOM
|
||||
jsr PTRGET
|
||||
tax
|
||||
jsr MOVMF ;FAC->VARIABLE Y (5 Bytes Packed)
|
||||
|
||||
;brk
|
||||
rts
|
160
AppleII/FP converter/Conv3p.asm
Normal file
160
AppleII/FP converter/Conv3p.asm
Normal file
|
@ -0,0 +1,160 @@
|
|||
* @com.wudsn.ide.asm.hardware=APPLE2
|
||||
************************************
|
||||
* BASIC TO FAC TO FP1 *
|
||||
* X=NUMBER *
|
||||
* CALL 768,X *
|
||||
************************************
|
||||
org $300
|
||||
|
||||
CHKCOM equ $DEBE
|
||||
FRMNUM equ $DD67
|
||||
PTRGET equ $DFE3
|
||||
MOVMF equ $EB2B
|
||||
MOVFM equ $EAF9
|
||||
|
||||
** Woz FP Accumulator 4 Byte + 1 Byte Extra + 1 Byte SIGN**
|
||||
FP1 equ $FA ;Translate F8 --> FA
|
||||
E equ $FE ;Translate FC --> FE
|
||||
SIGN equ $EB
|
||||
|
||||
FP2 equ $EC
|
||||
|
||||
** Applesoft FP Accumulator 5 Byte + 1 Byte Sign **
|
||||
FAC equ $9D
|
||||
|
||||
|
||||
***************************
|
||||
|
||||
ENTRY1 jsr CHKCOM
|
||||
jsr FRMNUM ;VARIABLE X ->FAC (6 Byte Unpacked)
|
||||
|
||||
** FPC to FP1 conversion **
|
||||
|
||||
lda FAC
|
||||
dec A ; dec the EXP
|
||||
sta FP1
|
||||
|
||||
lda FAC+5
|
||||
bmi NEG ; chk the Hi bit of 1 byte Mantissa
|
||||
|
||||
POS clc ; Hi bit 0 for negative
|
||||
lda FAC+5
|
||||
|
||||
ora #$80 ; Set Hi Bit 1 byte Mantissa (change Sign only if is positive)
|
||||
ror ; Didide for 2^1
|
||||
|
||||
sta FP1+1
|
||||
|
||||
jmp CONT
|
||||
|
||||
NEG clc ; Hi bit 1 for positive
|
||||
lda FAC+5
|
||||
|
||||
ror ; Didide for 2^1
|
||||
|
||||
eor #$FF ; One's complement, NOT
|
||||
clc
|
||||
adc #01 ; Two's complement, +1
|
||||
|
||||
sta FP1+1
|
||||
|
||||
CONT lda FAC+2
|
||||
ror
|
||||
sta FP1+2
|
||||
|
||||
lda FAC+3
|
||||
ror
|
||||
sta FP1+3
|
||||
|
||||
lda FAC+4
|
||||
ror
|
||||
sta E
|
||||
|
||||
;brk
|
||||
rts
|
||||
************************************
|
||||
* FP1 Calc *
|
||||
* CALL 821 *
|
||||
************************************
|
||||
|
||||
** Copy FP1 to FP2 **
|
||||
|
||||
ENTRY2 lda FP1
|
||||
sta FP2 ;X1-->X2
|
||||
|
||||
lda FP1+1 ;M1-->M2
|
||||
sta FP2+1
|
||||
lda FP1+2
|
||||
sta FP2+2
|
||||
lda FP1+3
|
||||
sta FP2+3
|
||||
*
|
||||
** Y=X*X **
|
||||
*
|
||||
jsr $8000 ;Unidrive4p
|
||||
|
||||
rts
|
||||
************************************
|
||||
* FP1 TO FAC TO BASIC *
|
||||
* CALL 841,Y *
|
||||
* PRINT Y *
|
||||
************************************
|
||||
|
||||
*
|
||||
** FP1 to MEM to FAC conversion **
|
||||
*
|
||||
ENTRY3 lda FP1 ; X1 1 Byte --> 9D FAC
|
||||
inc A ; 2^(FP1+1) inc EXP
|
||||
sta FAC
|
||||
|
||||
lda FP1+1
|
||||
bmi NEG2 ; chk the Hi bit of 1 byte Mantissa
|
||||
|
||||
|
||||
POS2 clc
|
||||
lda FP1+1 ; M1 Hi 2 Byte --> 9E FAC
|
||||
rol ; Multiply for 2^1
|
||||
|
||||
ora #$80 ; Set Hi Bit 1 byte Mantissa (change Sign only if is positive)
|
||||
sta FAC+1 ; To 6^ Byte of FAC Unpacked
|
||||
|
||||
;sta FAC+5 ; To 1^ Byte Mantissa of FAC UnPacked
|
||||
jmp CONT2
|
||||
|
||||
NEG2 lda FP1+1
|
||||
|
||||
sec
|
||||
sbc #01 ; One's complement inv -1
|
||||
eor #$FF ; Two's complement inv NOT
|
||||
|
||||
rol ; Multiply for 2^1
|
||||
|
||||
sta FAC+1 ; To 1^ Byte Mantissa of FAC Packed
|
||||
sta FAC+5 ; To 6^ Byte of FAC Unpacked
|
||||
|
||||
|
||||
CONT2 lda FP1+2 ; M1 3 Byte --> 9F FAC
|
||||
rol
|
||||
sta FAC+2
|
||||
|
||||
lda FP1+3 ; M1 Lo 4 Byte --> A0 FAC
|
||||
rol
|
||||
sta FAC+3
|
||||
|
||||
lda E ; Extra 5 Byte --> A1 FAC
|
||||
rol
|
||||
sta FAC+4
|
||||
|
||||
;brk
|
||||
***************************
|
||||
*
|
||||
ldy #$03 ;Hi Byte MEM
|
||||
lda #$80 ;Lo Byte MEM
|
||||
*
|
||||
jsr CHKCOM
|
||||
jsr PTRGET
|
||||
tax
|
||||
jsr MOVMF ;FAC->VARIABLE Y (5 Bytes Packed)
|
||||
|
||||
;brk
|
||||
rts
|
|
@ -27,7 +27,7 @@ E EQU $FE ; $FC
|
|||
|
||||
OVLOC EQU $3F5
|
||||
|
||||
ORG $300
|
||||
ORG $8000
|
||||
|
||||
ADD CLC ;CLEAR CARRY
|
||||
LDX #$2 ;INDEX FOR 3-BYTE ADD.
|
||||
|
|
Loading…
Reference in New Issue
Block a user