C64Power Forum
Software => Programowanie => Wątek zaczęty przez: qus w 29 Czerwca 2016, 12:03
-
Zdaje się, że Kisiel marzy o kompilatorze basica, bo mu za wolno chodzą drajwery do UK. No i znalazłem taką ciekawostkę. Proszę spojrzeć na programik w pewnym języku:
use c64
xk,yk:byte
xk,yk=KGetCursor
KChrOut xk
KChrOut yk
KSetCursor 10 10
loop@
inc borderColor
goto loop
A teraz kod, do którego się toto skompiluje:
_borderColor equ 53280
_KChrOut equ 65490
opt f+ h-
_CODE_START equ $801
org [a(_CODE_START)],_CODE_START
dta a($80c), a(10), b($9e), c'2061', b(0), a(0)
jsr _KGetCursor
txa
jsr _KChrOut
tya
jsr _KChrOut
ldx #10
ldy #10
jsr _KSetCursor
_loop:
inc _borderColor
jmp _loop
icl './platform/c64/c64.asm'
icl './cpu/m6502/m6502.asm'
_CODE_END equ *-1
;end
inkludowany plik zawiera:
KGetCursor .proc
sec
jmp $fff0
.endp
KSetCursor .proc
clc
jmp $fff0
.endp
Ładne? :D
-
zdaje się że nie zrozumiałeś " napisz zamiast interpreter to kompilator basica,".
Kompilator ma być zamiast interpretera (ep-rom w C64), a to jest owszem sprytny ale niestety cross-compilator z innej plaformy.
-
no takiego kompilatora w romie jeszcze nikt nie zrobił. Coś ala JIT by się przydał :) ewentualnie by mógł używać rozszerzenie pamięci 16MB lub mniej.
-
To dorzucę jeszcze wyswapowywanie kodu źródłowego do pamięci wirtualnej na dyskietce, bo taki JIT to może trochę RAMu zająć.
-
64kB vs 16MB rozszerzenia ...a Ty chcesz swapać na dyskietkę ... po chuj ?
Oczywiście dyskusja typowo akademicka bo nie sądzę abyś ogarnął źródła kompilatorów... AUSTRO kompiler było coś takiego ?
-
No i jeszcze taki inny pomysł.. źródła są znane... błędy basica są znane.. może byś się pokusił o przepisanie basica od nowa tak aby był szybszy i bez błedów ?
Z pewnością możesz liczyć na feedback od naszych coderów i pomocną dłoń niewidzialnej ręki sprawiedliwości :)
PS. plus obsługa ekstra pamięci od C000 :) :) :)
-
Szybszy, bez błędów, samohostowany kompilator basica, do tego napisany w basicu v2 i żeby nie był większy niż dwa kilobajty. Inaczej to żadne wyzwanie.
-
bo jak nie Ty to kto ?
-
no to wtedy zostaje Kisiel.
-
ja już się nakodowałem testerów kernala, core6502 przy obsłudze UK1541, nie chce już tykać asm6502.
Chociaż teraz debugerów jest multum fajnych... znaczy się jeden z Samar ;)