Jetzt klappt es mit dem Floatbefehl von Basic für GEOS2.5
Kann jetzt alle Basic-Floatbefehle in GEOS2.5 nutzen. Sinus..Cosinus..Mult..DIV usw.
Kann die Werte(String) von $100 nach $7f40 verlagern.
Test ist 2xPI.
Wie kann ich jetzt bitte die Werte in GEOS darstellen?
Danke.
Gruss
Die Funktion in ASM für GEOS für den cc65 :
Code
- .export _bildschirm
- .export _linie
- .export _schleife
- .export _bason
- .export _basoff
- .export _adrpi
- .export _adr2pi
- .export _adr10
- .export _ramfac
- .export _facstr
- .include "geosmac.inc"
- .include "jumptab.inc"
- .include "geossym.inc"
- .include "const.inc"
- .include "geossym2.inc"
- .include "inputdrv.inc"
- .include "printdrv.inc"
- .include "diskdrv.inc"
- .include "dio.inc"
- _bason:
- sei
- ldx #$37
- stx $01
- rts
- _basoff:
- ldx #$36
- stx $01
- cli
- rts
- _adrpi:
- lda #$a8
- ldy #$ae
- rts
- _adr2pi:
- lda #$09
- ldy #$e3
- rts
- _adr10:
- lda #$f9
- ldy #$ba
- rts
- _ramfac:
- jsr 48034
- rts
- _facstr:
- jsr 48605
- rts
- _schleife:
- schl:
- jmp schl
- rts
- _linie:
- LoadW r3,50
- LoadB r11L,100
- LoadW r4,300
- lda #%11111111
- jsr HorizontalLine
- rts
- _bildschirm:
- lda #0
- jsr SetPattern
- LoadB dispBufferOn,ST_WR_FORE | ST_WR_BACK
- ldy #5
- back:
- lda RecTabelle,y
- sta r2L,y
- dey
- bpl back
- jsr Rectangle
- rts
- RecTabelle:
- .byte 0
- .byte 199
- .word 0
- .word 319
Der cc65 Code:
C
- #include <geos.h>
- #include <conio.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <ctype.h>
- #include <peekpoke.h>
- struct window wholeScreen = {0, SC_PIX_HEIGHT-1, 0, SC_PIX_WIDTH-1};
- unsigned int x;
- unsigned int xx;
- unsigned char y;
- int main(void)
- {
- SetPattern(0);
- InitDrawWindow(&wholeScreen);
- Rectangle();
- y=0;
- xx=0x7f40+9;
- InitForIO();
- __asm__ ("jsr _bason");
- __asm__ ("jsr _adr2pi");
- __asm__ ("jsr _ramfac");
- __asm__ ("jsr _facstr");
- __asm__ ("jsr _basoff");
- DoneWithIO();
- for (x=0x7f40; x<xx; x++) {
- POKE(x,PEEK(256+y));
- y=y+1;
- }
- cgetc ();
- return 0;
- }