Badał ktoś ten projekt?

https://github.com/KarolS/millfork

Ja z definicji jestem bardzo sceptyczny odnośnie kompilatorów dla 6502, ale na pierwszy rzut oka ten wywarł na mnie bardzo pozytywne wrażenie.

Nie ma żadnego przykładu dla atari, ale generyczne przykłady po prostu działają:

// memorize this code for your next interview for a Millfork developer position

import stdio

void main() {
    byte i
    for i,1,to,100 {
        if i %% 15 == 0 {
            putstrz("fizzbuzz"z)
        } else if i %% 3 == 0 {
            putstrz("fizz"z)
        } else if i %% 5 == 0 {
            putstrz("buzz"z)
        } else {
            putword(i)
        }
        putchar(' ')
    }
    while(true){}
}
millfork.exe -t a8 -o out.xex fizzbuzz.mfk
Post's attachments

fizzbuzz.xex 545 b, liczba pobrań: 4 (od 2019-10-15) 

Tylko zalogowani mogą pobierać załączniki.

2 Ostatnio edytowany przez tebe (2019-10-15 17:58:22)

https://github.com/KarolS/millfork/releases

EXE-k dla Windows-a

56MB 8)

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

3 Ostatnio edytowany przez tebe (2019-10-15 20:56:03)

ciekawe podejście (MOD), niektóre niebezpieczne

ta pętla nie powinna się wykonać

import stdio

void main() {
    byte i,j

 j=1

 for i,j,to,0 {
 putword(i)
 putchar(' ')
 }

 while true{}
}
*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

4

Intuicyjne to nie jest, ale na moje oko wszystko dzieje się poprawnie. Pętla "to" liczy do góry aż napotka docelową wartość.

5

jeśli podasz stałą wartość

for i,1,to,0

pętla się nie wykona

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

6 Ostatnio edytowany przez laoo/ng (2019-10-15 22:59:32)

No to może znalazłeś buga - można wpisać issue: https://github.com/KarolS/millfork/issues

Niech się facet cieszy, że community przygląda się jego projektowi :)

7 Ostatnio edytowany przez Sikor (2019-10-16 12:50:43)

Zasadniczo TeBe ma rację - obie nie powinny się wykonać. Nigdzie nie ma zainicjowanej wartości i, chyba, że z automatu przyjmuje zero?
====
Edyta: @lao, @TeBe, to nie jest błąd. Pętla chodzi po zmiennej tu, więc pewnie nie przyrównuje do stałej?

Sikor umarł...

8

odpowiedział na zgłoszony problem z FOR

https://github.com/KarolS/millfork/issues/8

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

9

I podjął wg mnie słuszną decyzję

10

Z "podobnych" projektow jest jeszcze ten https://lemonspawn.com/turbo-rascal-syn … but-begin/ ale raczej tylko na Commodore

11

C02

https://github.com/RevCurtisP/C02

C02 is a simple C-syntax language designed to generate highly optimized code for the 6502 microprocessor. The C02 specification is a highly specific subset of the C standard with some modifications and extensions

The compiler generates assembly language code, currently targeted to the DASM assembler.

p.s.
aż trudno się zdecydować ;)

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

12

A co powiecie na taką emulację...
https://github.com/satoshinm/pill_6502

https://systemembedded.eu/ ... https://www.youtube.com/watch?v=GwS7Es1x6mw
""Ja bardzo przepraszam, ale podejrzenia panów są całkowicie bezpodstawne. Ja niczym nie handluję. Ta pani przyszła do mnie w tym Pancake-u i w nim wychodzi.""
ABBUC Member #319. Preferowana forma kontaktu: email

13

takie podsumowanie

http://8bitworkshop.com/blog/languages/ … mming.html

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C