New procedure

This commit is contained in:
rigreco 2015-02-15 14:37:09 +01:00
parent d93062a70c
commit 9d96acb2d0
6 changed files with 212 additions and 0 deletions

BIN
AppleII/FP converter/BtoFAC Normal file

Binary file not shown.

View File

@ -0,0 +1,48 @@
* @com.wudsn.ide.asm.hardware=APPLE2
************************************
* BASIC TO FAC TO FP1 *
* Y=NUMBER *
* CALL 2048,Y *
************************************
org $800
CHKCOM equ $DEBE
FRMNUM equ $DD67
** 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
** Applesoft FP Accumulator 5 Byte + 1 Byte Sign **
FAC equ $9D
***************************
ENTRY jsr CHKCOM
jsr FRMNUM ;VARIABLE->FAC
** FP1 to FAC conversion (conversion not yet) **
lda FAC
dec A
sta FP1
lda FAC+1
eor #$80
lsr
sta FP1+1
lda FAC+2
sta FP1+2
lda FAC+3
sta FP1+3
lda FAC+3
sta E
lda FAC+4
sta SIGN
brk

View File

@ -0,0 +1,52 @@
------+----------------------+-------------+----+---------+------+-----------------------+-------------------------------------------------------------------
Line | # File Line | Line Type | MX | Reloc | Size | Address Object Code | Source Code
------+----------------------+-------------+----+---------+------+-----------------------+-------------------------------------------------------------------
1 | 1 BtoFAC.asm 1 | Comment | 11 | | 0 | 00/8000 | * @com.wudsn.ide.asm.hardware=APPLE2
2 | 1 BtoFAC.asm 2 | Comment | 11 | | 0 | 00/8000 | ************************************
3 | 1 BtoFAC.asm 3 | Comment | 11 | | 0 | 00/8000 | * BASIC TO FAC TO FP1 *
4 | 1 BtoFAC.asm 4 | Comment | 11 | | 0 | 00/8000 | * Y=NUMBER *
5 | 1 BtoFAC.asm 5 | Comment | 11 | | 0 | 00/8000 | * CALL 2048,Y *
6 | 1 BtoFAC.asm 6 | Comment | 11 | | 0 | 00/8000 | ************************************
7 | 1 BtoFAC.asm 7 | Directive | 11 | | 0 | 00/8000 | org $800
8 | 1 BtoFAC.asm 8 | Empty | 11 | | 0 | 00/0800 |
9 | 1 BtoFAC.asm 9 | Equivalence | 11 | | 0 | 00/0800 | CHKCOM equ $DEBE
10 | 1 BtoFAC.asm 10 | Equivalence | 11 | | 0 | 00/0800 | FRMNUM equ $DD67
11 | 1 BtoFAC.asm 11 | Empty | 11 | | 0 | 00/0800 |
12 | 1 BtoFAC.asm 12 | Comment | 11 | | 0 | 00/0800 | ** Woz FP Accumulator 4 Byte + 1 Byte Extra + 1 Byte SIGN**
13 | 1 BtoFAC.asm 13 | Equivalence | 11 | | 0 | 00/0800 | FP1 equ $FA ;Translate F8 --> FA
14 | 1 BtoFAC.asm 14 | Equivalence | 11 | | 0 | 00/0800 | E equ $FE ;Translate FC --> FE
15 | 1 BtoFAC.asm 15 | Equivalence | 11 | | 0 | 00/0800 | SIGN equ $EB
16 | 1 BtoFAC.asm 16 | Empty | 11 | | 0 | 00/0800 |
17 | 1 BtoFAC.asm 17 | Comment | 11 | | 0 | 00/0800 | ** Applesoft FP Accumulator 5 Byte + 1 Byte Sign **
18 | 1 BtoFAC.asm 18 | Equivalence | 11 | | 0 | 00/0800 | FAC equ $9D
19 | 1 BtoFAC.asm 19 | Empty | 11 | | 0 | 00/0800 |
20 | 1 BtoFAC.asm 20 | Comment | 11 | | 0 | 00/0800 | ***************************
21 | 1 BtoFAC.asm 21 | Empty | 11 | | 0 | 00/0800 |
22 | 1 BtoFAC.asm 22 | Code | 11 | | 3 | 00/0800 : 20 BE DE | ENTRY jsr {$DEBE}
23 | 1 BtoFAC.asm 23 | Code | 11 | | 3 | 00/0803 : 20 67 DD | jsr {$DD67} ;VARIABLE->FAC
24 | 1 BtoFAC.asm 24 | Empty | 11 | | 0 | 00/0806 |
25 | 1 BtoFAC.asm 25 | Comment | 11 | | 0 | 00/0806 | ** FP1 to FAC conversion (conversion not yet) **
26 | 1 BtoFAC.asm 26 | Empty | 11 | | 0 | 00/0806 |
27 | 1 BtoFAC.asm 27 | Code | 11 | | 2 | 00/0806 : A5 9D | lda {$9D}
28 | 1 BtoFAC.asm 28 | Code | 11 | | 1 | 00/0808 : 3A | dec A
29 | 1 BtoFAC.asm 29 | Code | 11 | | 2 | 00/0809 : 85 FA | sta {$FA}
30 | 1 BtoFAC.asm 30 | Empty | 11 | | 0 | 00/080B |
31 | 1 BtoFAC.asm 31 | Code | 11 | | 2 | 00/080B : A5 9E | lda {$9D}+1
32 | 1 BtoFAC.asm 32 | Code | 11 | | 2 | 00/080D : 49 80 | eor #$80
33 | 1 BtoFAC.asm 33 | Code | 11 | | 1 | 00/080F : 4A | lsr
34 | 1 BtoFAC.asm 34 | Code | 11 | | 2 | 00/0810 : 85 FB | sta {$FA}+1
35 | 1 BtoFAC.asm 35 | Empty | 11 | | 0 | 00/0812 |
36 | 1 BtoFAC.asm 36 | Code | 11 | | 2 | 00/0812 : A5 9F | lda {$9D}+2
37 | 1 BtoFAC.asm 37 | Code | 11 | | 2 | 00/0814 : 85 FC | sta {$FA}+2
38 | 1 BtoFAC.asm 38 | Empty | 11 | | 0 | 00/0816 |
39 | 1 BtoFAC.asm 39 | Code | 11 | | 2 | 00/0816 : A5 A0 | lda {$9D}+3
40 | 1 BtoFAC.asm 40 | Code | 11 | | 2 | 00/0818 : 85 FD | sta {$FA}+3
41 | 1 BtoFAC.asm 41 | Empty | 11 | | 0 | 00/081A |
42 | 1 BtoFAC.asm 42 | Code | 11 | | 2 | 00/081A : A5 A0 | lda {$9D}+3
43 | 1 BtoFAC.asm 43 | Code | 11 | | 2 | 00/081C : 85 FE | sta {$FE}
44 | 1 BtoFAC.asm 44 | Empty | 11 | | 0 | 00/081E |
45 | 1 BtoFAC.asm 45 | Code | 11 | | 2 | 00/081E : A5 A1 | lda {$9D}+4
46 | 1 BtoFAC.asm 46 | Code | 11 | | 2 | 00/0820 : 85 EB | sta {$EB}
47 | 1 BtoFAC.asm 47 | Empty | 11 | | 0 | 00/0822 |
48 | 1 BtoFAC.asm 48 | Code | 11 | | 1 | 00/0822 : 00 | brk
------+----------------------+-------------+----+---------+------+-----------------------+-------------------------------------------------------------------

View File

@ -0,0 +1,2 @@
¥ú<1A>€€¥û
I€<EFBFBD><EFBFBD>€¥ü<EFBFBD>€¥ý<EFBFBD>ƒ€¥þ<EFBFBD>„€ €©€ ùê ¾Þ ãߪ +ë`

View File

@ -0,0 +1,53 @@
* @com.wudsn.ide.asm.hardware=APPLE2
************************************
* FP1 TO FAC TO BASIC *
* CALL 32768,X *
* PRINT X *
************************************
org $8000
CHKCOM equ $DEBE
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 ;Translate F3 --> EB
MEM equ $8080
*
** FP1 to MEM to FAC conversion FAC 5 Bytes **
*
ENTRY lda FP1 ; X1 1 Byte --> 9D FAC
inc A ; 2^(FP1+1)
sta MEM
lda FP1+1 ; M1 Hi 2 Byte --> 9E FAC
asl
eor #$80 ; Not Hi Bit Mantissa (change Sign)
sta MEM+1
lda FP1+2 ; M1 3 Byte --> 9F FAC
sta MEM+2
lda FP1+3 ; M1 Lo 4 Byte --> A0 FAC
sta MEM+3
lda E ; Extra 00 5 Byte --> A1 FAC
sta MEM+4
* lda $EB ; SIGN (F3 to EB) 6 Byte --> A2 FAC
* sta MEM+5
***************************
*
ldy #$80 ;Hi Byte MEM
lda #$80 ;Lo Byte MEM
jsr MOVFM ;MEM->FAC (9D to A2)
*
jsr CHKCOM
jsr PTRGET
tax
jsr MOVMF ;FAC->VARIABLE
DONE rts

View File

@ -0,0 +1,57 @@
------+----------------------+-------------+----+---------+------+-----------------------+-------------------------------------------------------------------
Line | # File Line | Line Type | MX | Reloc | Size | Address Object Code | Source Code
------+----------------------+-------------+----+---------+------+-----------------------+-------------------------------------------------------------------
1 | 1 FACtoB.asm 1 | Comment | 11 | | 0 | 00/8000 | * @com.wudsn.ide.asm.hardware=APPLE2
2 | 1 FACtoB.asm 2 | Comment | 11 | | 0 | 00/8000 | ************************************
3 | 1 FACtoB.asm 3 | Comment | 11 | | 0 | 00/8000 | * FP1 TO FAC TO BASIC *
4 | 1 FACtoB.asm 4 | Comment | 11 | | 0 | 00/8000 | * CALL 32768,X *
5 | 1 FACtoB.asm 5 | Comment | 11 | | 0 | 00/8000 | * PRINT X *
6 | 1 FACtoB.asm 6 | Comment | 11 | | 0 | 00/8000 | ************************************
7 | 1 FACtoB.asm 7 | Directive | 11 | | 0 | 00/8000 | org $8000
8 | 1 FACtoB.asm 8 | Empty | 11 | | 0 | 00/8000 |
9 | 1 FACtoB.asm 9 | Equivalence | 11 | | 0 | 00/8000 | CHKCOM equ $DEBE
10 | 1 FACtoB.asm 10 | Equivalence | 11 | | 0 | 00/8000 | PTRGET equ $DFE3
11 | 1 FACtoB.asm 11 | Equivalence | 11 | | 0 | 00/8000 | MOVMF equ $EB2B
12 | 1 FACtoB.asm 12 | Equivalence | 11 | | 0 | 00/8000 | MOVFM equ $EAF9
13 | 1 FACtoB.asm 13 | Empty | 11 | | 0 | 00/8000 |
14 | 1 FACtoB.asm 14 | Comment | 11 | | 0 | 00/8000 | ** Woz FP Accumulator 4 Byte + 1 Byte Extra + 1 Byte SIGN**
15 | 1 FACtoB.asm 15 | Equivalence | 11 | | 0 | 00/8000 | FP1 equ $FA ;Translate F8 --> FA
16 | 1 FACtoB.asm 16 | Equivalence | 11 | | 0 | 00/8000 | E equ $FE ;Translate FC --> FE
17 | 1 FACtoB.asm 17 | Equivalence | 11 | | 0 | 00/8000 | SIGN equ $EB ;Translate F3 --> EB
18 | 1 FACtoB.asm 18 | Empty | 11 | | 0 | 00/8000 |
19 | 1 FACtoB.asm 19 | Equivalence | 11 | | 0 | 00/8000 | MEM equ $8080
20 | 1 FACtoB.asm 20 | Comment | 11 | | 0 | 00/8000 | *
21 | 1 FACtoB.asm 21 | Comment | 11 | | 0 | 00/8000 | ** FP1 to MEM to FAC conversion FAC 5 Bytes **
22 | 1 FACtoB.asm 22 | Comment | 11 | | 0 | 00/8000 | *
23 | 1 FACtoB.asm 23 | Code | 11 | | 2 | 00/8000 : A5 FA | ENTRY lda {$FA} ; X1 1 Byte --> 9D FAC
24 | 1 FACtoB.asm 24 | Code | 11 | | 1 | 00/8002 : 1A | inc A ; 2^(FP1+1)
25 | 1 FACtoB.asm 25 | Code | 11 | | 3 | 00/8003 : 8D 80 80 | sta {$8080}
26 | 1 FACtoB.asm 26 | Empty | 11 | | 0 | 00/8006 |
27 | 1 FACtoB.asm 27 | Code | 11 | | 2 | 00/8006 : A5 FB | lda {$FA}+1 ; M1 Hi 2 Byte --> 9E FAC
28 | 1 FACtoB.asm 28 | Code | 11 | | 1 | 00/8008 : 0A | asl
29 | 1 FACtoB.asm 29 | Code | 11 | | 2 | 00/8009 : 49 80 | eor #$80 ; Not Hi Bit Mantissa (change Sign)
30 | 1 FACtoB.asm 30 | Code | 11 | | 3 | 00/800B : 8D 81 80 | sta {$8080}+1
31 | 1 FACtoB.asm 31 | Empty | 11 | | 0 | 00/800E |
32 | 1 FACtoB.asm 32 | Code | 11 | | 2 | 00/800E : A5 FC | lda {$FA}+2 ; M1 3 Byte --> 9F FAC
33 | 1 FACtoB.asm 33 | Code | 11 | | 3 | 00/8010 : 8D 82 80 | sta {$8080}+2
34 | 1 FACtoB.asm 34 | Empty | 11 | | 0 | 00/8013 |
35 | 1 FACtoB.asm 35 | Code | 11 | | 2 | 00/8013 : A5 FD | lda {$FA}+3 ; M1 Lo 4 Byte --> A0 FAC
36 | 1 FACtoB.asm 36 | Code | 11 | | 3 | 00/8015 : 8D 83 80 | sta {$8080}+3
37 | 1 FACtoB.asm 37 | Empty | 11 | | 0 | 00/8018 |
38 | 1 FACtoB.asm 38 | Code | 11 | | 2 | 00/8018 : A5 FE | lda {$FE} ; Extra 00 5 Byte --> A1 FAC
39 | 1 FACtoB.asm 39 | Code | 11 | | 3 | 00/801A : 8D 84 80 | sta {$8080}+4
40 | 1 FACtoB.asm 40 | Empty | 11 | | 0 | 00/801D |
41 | 1 FACtoB.asm 41 | Comment | 11 | | 0 | 00/801D | * lda $EB ; SIGN (F3 to EB) 6 Byte --> A2 FAC
42 | 1 FACtoB.asm 42 | Comment | 11 | | 0 | 00/801D | * sta MEM+5
43 | 1 FACtoB.asm 43 | Comment | 11 | | 0 | 00/801D | ***************************
44 | 1 FACtoB.asm 44 | Comment | 11 | | 0 | 00/801D | *
45 | 1 FACtoB.asm 45 | Code | 11 | | 2 | 00/801D : A0 80 | ldy #$80 ;Hi Byte MEM
46 | 1 FACtoB.asm 46 | Code | 11 | | 2 | 00/801F : A9 80 | lda #$80 ;Lo Byte MEM
47 | 1 FACtoB.asm 47 | Code | 11 | | 3 | 00/8021 : 20 F9 EA | jsr {$EAF9} ;MEM->FAC (9D to A2)
48 | 1 FACtoB.asm 48 | Comment | 11 | | 0 | 00/8024 | *
49 | 1 FACtoB.asm 49 | Code | 11 | | 3 | 00/8024 : 20 BE DE | jsr {$DEBE}
50 | 1 FACtoB.asm 50 | Code | 11 | | 3 | 00/8027 : 20 E3 DF | jsr {$DFE3}
51 | 1 FACtoB.asm 51 | Code | 11 | | 1 | 00/802A : AA | tax
52 | 1 FACtoB.asm 52 | Code | 11 | | 3 | 00/802B : 20 2B EB | jsr {$EB2B} ;FAC->VARIABLE
53 | 1 FACtoB.asm 53 | Code | 11 | | 1 | 00/802E : 60 | DONE rts
------+----------------------+-------------+----+---------+------+-----------------------+-------------------------------------------------------------------