1

(9 odpowiedzi, napisanych Fabryka - 8bit)

jest i kolejna wersja pre-release. Z nowości doszły:

- Namespace-y  w postaci nazwanych modułów:

MODULE RAINBOW

USE ATARI.ANTIC
USE ATARI.GTIA
USE ATARI.OS

PROC Main()
  OS.CH=OS.NO_KEY

  DO
    ANTIC.WSYNC=0
    GTIA.COLPF2=ANTIC.VCOUNT+OS.RTCLOK_LO
  UNTIL OS.CH#OS.NO_KEY
  OD
RETURN

ENDMODULE

Tutorial tutaj: https://github.com/mkur/actionc/blob/ma ... MODULES.md

- Generowanie binarek, które uruchamiają się bez carta. Kompilator do binarki dołącza jedynie wykorzystane funkcje i procedury z biblioteki systemowej.

actionc --runtime standalone hello.act

- Volatile jako storage class dla zmiennych - głównie po to aby zaznaczyć kompilatorowi, że dana zmienna to rejestr sprzętowy i należy ograniczyć optymalizację kodu, która może usuwać "niepotrzebne" zapisy lub wynosić odczyty poza pętle.

VOLATILE BYTE WSYNC=$D40A

- Stałe jako bezpieczna pod względem typowania alternatywa dla DEFINE

CONST BYTE WIDTH=40
CONST CARD SCREEN_SIZE=WIDTH*24

Przykład, który wykorzystuje nowe możliwości: https://github.com/mkur/actionc/blob/ma ... plasma.act

2

(9 odpowiedzi, napisanych Fabryka - 8bit)

Dzięki tOri!

3

(227 odpowiedzi, napisanych Fabryka - 8bit)

1. przemek-o
2. perinoid
3. As
4. laborant
5. Spencer
6. mono
7. krap
8. pablozp
9. macgyver
10. Drakon
11. Lizard
12. dra030
13. dely
14. AdamK
15. pin
16. Cyprian
17. uicr0Bee
18. pajero
19. Yezy
20. Rocky
21. mayonez
22. SuN
23. JLS
24. hsimpson
25. Dragmar
26. Izy
27. Cobol
28. Lopez
29. Goolash
30. Czarny_faraon
31. lemiel - można z Sophią 3 do kompletu?
32. electron (powtórka zamówienia z aage)
33. arctus x2 (też powtórka zamówienia z aage)
34. seban (o ile nie jest jeszcze za późno)
35. markus0321
36. Marbed (bardzo poproszę)
37. mkur (o ile jeszcze można)

4

(227 odpowiedzi, napisanych Fabryka - 8bit)

1. przemek-o
2. perinoid
3. As
4. laborant
5. Spencer
6. mono
7. krap
8. pablozp
9. macgyver
10. Drakon
11. Lizard
12. dra030
13. dely
14. AdamK
15. pin
16. Cyprian
17. uicr0Bee
18. pajero
19. Yezy
20. Rocky
21. mayonez
22. SuN
23. JLS
24. hsimpson
25. Dragmar
26. Izy
27. Cobol
28. Lopez
29. Goolash
30. Czarny_faraon
31. lemiel - można z Sophią 3 do kompletu?
32. electron (powtórka zamówienia z aage)
33. arctus x2 (też powtórka zamówienia z aage)
34. seban (o ile nie jest jeszcze za późno)
35. markus0321
36. Marbed (bardzo poproszę)
37. mkur (o ile jeszcze można)

5

(9 odpowiedzi, napisanych Fabryka - 8bit)

Są już dostępne binarki (rolling release) dla Windows, Linuxa i MacOS:

https://github.com/mkur/actionc/releases/tag/nightly

Z innych rzeczy:

- Poprawiono tworzenie listingów - obecnie są zgodne z MADS. Ułatwi to wykorzystanie actionc do generowania mniej krytycznych części większych projektów. Wygenerowany kod można bez problemu zasemblować pod innym adresem początkowym.
- Doszedł nowy runner actionc-run (zastąpił on skrypt shellowy - chciałem uniknać zależności od basha dla wersji pod Windows)
- Wprowadzono workflow CI.
- Drobne usprawnienia w generacji kodu.

6

(9 odpowiedzi, napisanych Fabryka - 8bit)

Jako, że minęło już trochę czasu i commitów od upublicznienia kodu kompilatora, czas na małą aktualizację. Nowe funkcjonalności actionc:

- Wbudowany assembler - dodano możliwość osadzania kodu maszynowego wprost w programach Action! za pomocą bloków ASM/ENDASM.  Wbudowany assembler jest z grubsza zgodny z podstawową składnią MADS. Wewnątrz bloków ASM/ENDASM można definiować etykiety oraz odwoływać się do symboli Action!

PROC Rainbow()

BYTE vcount=$D40B, wsync=$D40A,
        rtclok=$14, color=$D018, u=$7,
        ch=764

ASM
loop:
    lda u
    sta wsync

    lda vcount
    clc
    adc rtclok
    sta color

    lda ch
    cmp #$FF
    beq loop
ENDASM
RETURN

Bardziej zaawansowany przykład tutaj:

https://github.com/mkur/actionc/blob/ma ... scroll.act

- Dodano możliwość zapisywania ciągów znaków w kodach ekranowych ANTIC za pomocą składni \{SCREEN:tekst}

    scroll_txt = "\{SCREEN:Hello world!}"

- Sporo czasu i tokenów zużyto na rozwój eksperymentalnego backendu MIR6502 - obecnie jest on konkurencyjny w stosunku do klasycznego backendu uruchamianego w trybie --optimized.

Wyniki dla kompilacji TN:

Mode             Profile/Backend   Size        Relative size       Reduction
Compatibility    legacy/classic    12,226 B    100.00%              -
Optimized        modern/classic    10,445 B    85.43%              1,781 B / 14.57%
MIR6502          modern/mir6502    9,920 B     81.14%              2,306 B / 18.86%

- Poprawiono szereg błędów zarówno w kompilatorze jak i programach towarzyszących

7

(9 odpowiedzi, napisanych Fabryka - 8bit)

AS... napisał/a:

Jaki temat!
- ja wychowałem się  na takim toms 710, właśnie z toms Navigatorem (do dziś go mam).
Wrzuć proszę fotki tej prototypowej toms 720 .

Obecnie to nawet w jednym klonie toms 720 (by Zaxon) mam też toms navigator-a i to dobrze działa :)

Zdjęcia zrobię, jak tylko wpadnę do domu rodzinnego :-) Miło, że wspominacie TN - powstanie nowego kompilatora jest ściśle związane z TN. Kompilator powstał głównie po to, żebym mógł rozszerzyć TN o nowe funkcjonalności - oryginalny kompilator generował na tyle rozwlekły kod, że po prostu brakowało już pamięci na nowe funkcje.

8

(9 odpowiedzi, napisanych Fabryka - 8bit)

Nie pamiętam dokładnie okoliczności nawiązania współpracy ale tak zgadza się - popełniłem TN dla TOMS-ów. TOMS-si wprowadzali na rynek stację TOMS 710, która miała być stacją dla mniej zaawansowanych użytkowników - stąd pomysł na bardziej przyjazny interfejs niż standardowy DUP MyDOS-a. W rozliczeniu dostałem prototypowy egzemplarz TOMS-a 720, który mam do teraz. Napisałem też dla nich program do kopiowania plików przez RS232.

9

(9 odpowiedzi, napisanych Fabryka - 8bit)

Cześć,

Zostało mi trochę tokenów, więc zsytentyzowałem kompilator skrośny dla Action!:

https://github.com/mkur/actionc

Kompilator obsługuje kilka trybów:

- tryb zgodności (--mode compatibility) - wysoce zgodny z oryginałem. Mniejsze programy często kompilują się do identycznych plików binarnych,
- tryb optymalizujący (--mode optimized) - nowy layout, dodatkowe optymalizacje, ale wciąż oparty o ten sam klasyczny backend co tryb zgodności,
- tryb eksperymentalny, wykorzystujący nowy backend (--mode mir6502). Na chwilę obecną, tryb ten generuje większe binarki niź pozostałe, ale ma największy potencjał rozwojowy.

Miłej zabawy!

10

(39 odpowiedzi, napisanych Fabryka - 8bit)

stryker napisał/a:
mkur napisał/a:

Mam prototyp TOMS-a 720 z TN w romie :-) Ale to stara wersja i lepiej wrzucić 1.23

Prototyp ? Jak wygląda ? Poproszę filmik albo zdjęcia z działania :)

Wygląda nieco topornie. Seryjne wyglądają zdecydowanie lepiej. Jeszcze kilka lat temu działał. Wyciągnę na święta.

11

(39 odpowiedzi, napisanych Fabryka - 8bit)

A jak to zrobić?

12

(39 odpowiedzi, napisanych Fabryka - 8bit)

Mam prototyp TOMS-a 720 z TN w romie :-) Ale to stara wersja i lepiej wrzucić 1.23

13

(39 odpowiedzi, napisanych Fabryka - 8bit)

piwkooo napisał/a:

Dobra ludziska mamy to ;)

[...]

Allee... napisał również że:
"PS. Straciłem dostęp do starego konta na forum, próbowałem się zarejestrować na nowo, ale niestety maila rejestracyjne nie dochodzą. "

I tu będzie mały problem w kontakcie.

Dzięki uprzejmości Daniela mam już dostęp do starego konta. Dzięki.

Pytanie do znających kod źródłowy a800:

Chciałbym sterować prędkością emulacji z poziomu Atari (kompiluje spore kody pod Action! Pełna prędkość przydaje się w czasie kompilalacji ale ciągłe ręczne przełączanie jest nieco niewygodne). Wyobrażam sobie, że przełączenie prędkości następowałoby po zapisaniu magicznej sekwencji bajtów do nieużywanego rejestru bądź po wyłączeniu Antica. Jakie są Wasze sugestie co do ewetualnej implementacji takiego rozwiązania? W szczególności interesują mnie uwagi co do wyboru rejestru oraz informacje o tym co może się posypać podczas przełączania prędkości.

Pozdrawiam,

--mk

15

(39 odpowiedzi, napisanych Fabryka - 8bit)

Pecus napisał/a:

Wieksze zainteresowanie by bylo, jakby toto chodzilo na jakims normalnym DOSie, na ktorym da sie cos robic (SpartaDOS), a do tego jakby jeszcze nie grzebalo w jego srodku.

Jeśli chodzi o operacje na plikach to TN jest dosyć czysto napisany - wszystkie polecenia są grzecznie przekazywane do DOS-a poprzez odpowiednie XIO. Jedynym wyjątkiem jest ustawianie bieżącego katalogu przy zmianie panelu - tutaj ze względu na wydajność zdecydowałem się na bezpośrednie grzebanie w rejestrach MyDOS-a (których lokalizacja niestety zależy od wersji). Co do wsparcia dla Sparty to imho największym problemem jest obsługa katalogów liczących więcej niż 64 pliki, co pociąga za soba konieczność dynamicznego zarządzania pamięcią (obecnie TN wykorzystuje dwa statyczne bufory).

--mk

16

(39 odpowiedzi, napisanych Fabryka - 8bit)

pajero napisał/a:

to Sie nazywa zainteresowanie....

ps. jak powrócić do katalogu nadrzędnego (wyjść z podkatalogu do ROOT)  ??

Należy nacisnąć <ESC>. Całą klawiszologię masz w pliku README ATR-a.

--mk

17

(39 odpowiedzi, napisanych Fabryka - 8bit)

Właśnie wrzuciłem wersję 1.22 na serwer:

http://inflacja.net/mkur/code/tn/tn-1.22.atr

lub jeśli ktoś woli sam plik .com:

http://inflacja.net/mkur/code/tn/TN122.COM

Poprawiłem błąd, który powodował wywalanie się programu przy wejściu do podkatalogu w przypadku gdy cartridge Action! nie jest podłączony. Nowa wersja powinna też poprawnie działać zarówno z najnowszym MyDOS-em 4.53 jak i z wersją 4.51, która jest w romie stacji TOMS 710. Jeśli chodzi o zmiany w funkcjonalości, to dodałem możliwość szybkiego przejścia do katalogu głównego danego dysku (wystarczy nacisnać jeden z klawiszy 1-9).

Pozdrawiam,

--mk

18

(25 odpowiedzi, napisanych Software, Gry - 8bit)

macgyver napisał/a:

mkur: ta..... a ile osób ma cartridge z Action! ? 3 ? 4 ? :P

Spoko, wytrzymaliście 12 lat bez nowej wersji, wytrzymacie i dodatkowy tydzień czekania na poprawkę ;-) Do 1.22 oprócz poprawy tego błędu dojdzie też rozpoznawanie wersji MyDOS-a. Czy ktoś zauważył jakieś inne poważne błędy ?

--mk

19

(25 odpowiedzi, napisanych Software, Gry - 8bit)

Piguła/Shpoon napisał/a:

No niestety, ale wiesza mi się przy pacnięciu return na katalogu.
Nawet dla pewności utworzyłem gołego atr'a 720KB, ladnie sie sformatowal pod Toms Navigatorem, nagralem dosika, zastąpiłem dup.sys plikiem tn i efekt jest ten sam (także na Atarce z 1MB), emulca także wykłada!

Potwierdzam - błąd o którym pisze Piguła pojawia się gdy uruchamiamy TN bez podpiętego cartridga Action! Błąd jest spowodowany wywołaniem funkcji bibliotecznej SCopyS, która rezyduje na cartridgu... Błąd ten zostanie poprawiony w kolejnej wersji. Chwilowo, osobom wykorzystujacym podkatalogi polecam podpięcie Action!

--mk

20

(25 odpowiedzi, napisanych Software, Gry - 8bit)

Piguła/Shpoon napisał/a:

A mnie sie wiesza przy probie wejscia do katalogu zarówno pod qmegiem jak i na oryginalnym os'ie, czyli stary dobry poczciwy Toms Navigator :)

Z jakiego MyDOS-a korzystasz ? TN modyfikuje pewne wewnętrzne rejestry MyDOS-a, które są niestety zależne od wersji. TN 1.21 działa poprawnie jedynie z MyDOS-em 4.53, starsze wersje TN działają jednynie z wersją MyDOS-a zawartą w romie stacji TOMS 710 (chyba 4.50 albo 4.51). Rozpoznawanie wersji MyDOS-a jest w planach. Na razie możesz zrekompilować kod z odpowiednimi ustawieniami  - wystarczy zmienić definicję zmiennej currentDir...

--mk

21

(25 odpowiedzi, napisanych Software, Gry - 8bit)

gRzEnIu napisał/a:

mkur: czy możesz udostępnić dumpa Action!, którego jakiś czas temu zrzuciłeś i pisałeś o tym na forum ?

Jasne, jest tutaj: http://inflacja.net/mkur/code/tn/Action86.car

--mk

22

(25 odpowiedzi, napisanych Software, Gry - 8bit)

5eba napisał/a:

Jest taka możliwość, żeby udostępnić sam plik TN, TN.COM? Plugin do TC nie rozpoznaje image'a  jako prawidłowego pliku ATR, analogicznie przez sio2pc nie rozpoznaje Atari - u mnie działa tylko na emulatorze.

ATR poprawiony, wystawiłem też sam plik .com:

http://inflacja.net/mkur/code/tn/TN121.COM

--mk

23

(25 odpowiedzi, napisanych Software, Gry - 8bit)

Piguła/Shpoon napisał/a:

Plik ATR jest uszkodzony - sprobuj jeszcze raz go utworzyc!

Rzeczywiście, pod emulatorem chodzi ale już MakeATR ma kłopoty z wyświetleniem zawartości. Wrzuciłem na serwer poprawioną wersję...

--mk

24

(25 odpowiedzi, napisanych Software, Gry - 8bit)

Witam,

Po dwunastu latach przerwy mam przyjemność udostępnic nową wersję Toms Navigatora. Poprawiłem kilka błędów występujących w wersji 1.2, dodałem też obsługę dysków 5-7 oraz 9. Aktualna wersja poprawnie współdziała zarówno z MyDOS-em 4.53/4 jak i 4.53/3.

Atr zawierajacy program jak również kod źródłówy jest dostępny pod adresem:

http://inflacja.net/mkur/code/tn/tn-1.21.atr

Pozdrawiam,

--mk

25

(3 odpowiedzi, napisanych Software, Gry - 8bit)

Opowiadając sobie:

Problem okazał się związany z wyższym MEMLO podczas pracy pod emulatorem. Po prostu MyDOS w ATR-rze miał skonfigurowaną większą liczbę buforów niż ten w romie stacji Toms 720. Powodowało to, że kod generowany przez Action! wchodził częściowo na tablicę symboli. Podniesienie CODEBASE pomogło :-)

Aha jeszcze jedno - zdumpowałem swój cartridge przy pomocy programiku na stronie Jindroush-a (http://www2.asw.cz/~kubecj/acarts2.htm). Okazało się, że wersje z 1987 i 1986 różnią się dokładnie jednym bajtem ;-)