26

(18 odpowiedzi, napisanych Programowanie - 16/32bit)

Ja już wiem w czym rzecz:

http://www.lua.org/versions.html#5.3:

Lua 5.3 was released on 12 Jan 2015. Its main new features are support for integers, bitwise operators, and a basic utf-8 library.

:)

27

(18 odpowiedzi, napisanych Programowanie - 16/32bit)

Kurde, nie lubię się głupio upierać ;) ale Reference manual 5.3 o tym wspomina:

2.1 – Values and Types.

The type number uses two internal representations, one called integer and the other called float. Lua has explicit rules about when each representation is used, but it also converts between them automatically as needed (see §3.4.3
http://www.lua.org/manual/5.3/manual.html#3.4.3).

28

(18 odpowiedzi, napisanych Programowanie - 16/32bit)

sqward napisał/a:

W Lua każda liczba jest double z definicji:
http://www.lua.org/pil/2.html
więc jak napiszesz:
a=2+2
to a i tak będzie reprezentowane w interpreterze jako double (czy float).

Ej, ale to by niemądre było. W Pythonie też tak to dziala, że jak trzeba (bo się nie mieści) to vm automatycznie konwertuje na większy typ, który dalej nazywa się tak samo (reprezentacja w pamięci nie jest jawna):

Python 3.4.2 (default, Oct  8 2014, 14:33:30)
[GCC 4.9.1 20140903 (prerelease)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> a=300
>>> type(a)
<class 'int'>
>>> a=a**a
>>> type(a)
<class 'int'>


A w luaconf.h jest taka definicja:

#elif defined(LUA_INT_LONG) /* }{ long */
#define LUA_INTEGER     long

więc raczej 2+2 będzie typu long int.

29

(18 odpowiedzi, napisanych Programowanie - 16/32bit)

skrzyp napisał/a:

@greblus: Jak Ty z Krakowa jesteś, to trzebaby się kiedyś ustawić, bo widzę, że nie tylko ja tu pingwinuję, pythonizuję i atarkuję jednocześnie ;D

Z Krakowa uciekłem do Niepołomic ale na browara chętnie wracam :)

30

(18 odpowiedzi, napisanych Programowanie - 16/32bit)

Cyprian napisał/a:

LUA przewnęła mi się parę razy przez dysk ale nigdy jeszcze jej nie próbowałem.
Da się może z poziomu LUA korzystać z funkcji GEM/GEMDOS/VDI itp?

Niestety działa to na tej samej zasadzie pod Windows/Linuksem/etc - tak, jeśli ktoś stworzył "bindings" do danej biblioteki. Dałoby się zrobić, pytanie czy byłoby to używalne.

31

(18 odpowiedzi, napisanych Programowanie - 16/32bit)

sqward napisał/a:

Zmień typ zmiennej Number z double na long, bo daleko na ST nie zajedziesz :)

Faktycznie, patrzyłem na luaconf.h kiedyś i sprawdziłem, że makro rozwija się do:

#define LUAI_BITSINT    16

a z tego wynika, że używa

#define LUA_INT_LONG
#define LUA_REAL_DOUBLE

zmieniłem na REAL_FLOAT, ale ja i tak używam tylko intów :P

Jakby ktoś nad wydajnością rozmyślał, to różnica jest znaczna (20 elementów fibonacciego na ST@8MHz w C 37x5ms, w Lua ~ 240x5ms) ale to trochę jak porównywanie jabłek i marchewek :)

32

(18 odpowiedzi, napisanych Programowanie - 16/32bit)

@Skrzyp: spróbuje to jakoś w miarę obiektywnie ocenić, ale łatwo nie będzie ;) bo do czego i jak porównać? Konsola interaktywna odpalona na 8Mhz STE działa żwawo i pozwala eksperymentować z cechami języka z 21-wieku.

Mój pomysł był taki, żeby po pierwsze: przypomnieć sobie ANSI C, niekoniecznie w ujęciu total retro. Jak widać kod dosłownie z dzisiaj da się w PureC skompilować, no i teraz logicznie rozumując: Lua lubi się z C, więc przy odrobinie samozaparcia można spróbować "ożenić" to co przychodzi z PureC czyli GEMLIB z Lua. Znów osobiste eksperymenta - bo raz: nie znam GEMLIB (fajnie byłoby poznać), dwa nie znam Lua. Same korzyści jak widać i całkiem kształcąca zabawa ;). Aa no i jednym z założeń było działanie na Mist w trybie STEroids.

A co do współpracy z systemem - out of the box nie różni się niczym od Lua na PC. Obsługuje wejście i wyjście, plik da się otworzyć, przetworzyć, zapisać. Dla mnie szok, że jest coś takiego jak shell dla ST i to nie jeden. Gulam w każdym razie jest super.

33

(18 odpowiedzi, napisanych Programowanie - 16/32bit)

Hej mistrzowie.

Szukałem jakiegoś małego języka skryptowego dla ST na Mist i znalazłem Lua.

Jakby ktoś chciał się pobawić, więcej szczegółów tutaj:

http://blog.greblus.net/2015/01/12/lua- … -st-purec/

i tutaj:

http://blog.greblus.net/2015/01/06/lua- … -atari-st/

Tylko proszę się nie śmiać. ST to dla mnie nowość ;)

34

(16 odpowiedzi, napisanych Sprzęt - 8bit)

Na moim Side1 w oryginalnym romie też był. Jakoś trzeba było spartycjonować nową kartę więć musiał być :). Na 64KB nie chciał działać, więc robiłem to pod Altirrą i kopiowałem obraz na kartę dd pod Linuksem.

35

(16 odpowiedzi, napisanych Sprzęt - 8bit)

Ta wersja sterownika nie obsługuje dużych partycji FAT16:

http://www.atari.org.pl/forum/viewtopic … 06#p181506

36

(16 odpowiedzi, napisanych Sprzęt - 8bit)

Literówka, powinno być D3:>FDISK.COM (albo D3:FDISK.COM). Musi działać.

37

(16 odpowiedzi, napisanych Sprzęt - 8bit)

Pablozp, spróbuj podać pełną ścieżkę np: D3>FDISK.COM.

38

(16 odpowiedzi, napisanych Sprzęt - 8bit)

Pin napisał/a:

Szkoda tylko, że to tego mixa FAT16 i 32 potrzeba linucha, bo nie mam aktualnie żadnej maszyny z tym osem. Nie ma na prawdę żadnego toola na windę?

Pin, w W7 jest takie w miarę zaawansowane narzędzie do partycjonowania i na 100% da się to w nim zrobić (chodzi tylko o założenie dwóch partycji, bez uszkadzania/kasowania APT-a). U mnie problem jest w drugą stronę - Windows używam do zabawy ;) i go nie znam.

Zawsze możesz to zrobić np w gparted live-cd, te narzędzia linuksowe są po prostu bardziej przewidywalne.

Witajcie.

Zgodnie z obietnicami, zamieszczam opis partycjonowania karty CF dla Atari Side: FAT32 posłuży do ładowania gier przez Side Loader, a FAT16 do wymiany danych z PC.

Potrzebne będa:

    * Interfejs SIO2PC i AspeQt (lub SIO2SD)
    * APT_Tools_SDFS.atr ze strony FJC.
      W powyższym atr jest FATFS.SYS i stamtąd go skopiujemy, można go też wyciągnąć  z toolkit_rev_c.atr ze strony SDX.

Film na Vimeo:
http://vimeo.com/116447661

Postępując jak na filmie:

Partycjonujemy kartę FDISK-iem  na Atari. Moja karta ma 128MB (naprawdę mi wystarcza), W pierwszej kolejności inicjalizujemy kartę i dodajemy APT i partycję dla SDX. Jeśli chcemy skasować zawartość karty i utworzyć partycje od nowa wybieramy z menu Disk -> Initialize, jeśli chcemy dodać partycje czy dowiązanie dajemy Disk -> Open. Jeśli karta jest pusta, FDISK zapyta czy tworzyć partycje. Ważne: nie tworzymy FAT16/32 w FDISKU atarowym (trzeba wybrać odpowiednią opcję). Zrobimy to w następnym kroku w fdisku pod Linuksem.

Edit: FAT16 o rozmiarze mniejszym niż 32MB, większych sterownik fatfs.sys v0.7 nie obsługuje.

Formatujemy partycję SDX i FAT. FAT32 musi mieć powyżej 32MB, żeby mkfs,fat nie krzyczał, że ma za mało klastrów na utworzenie systemu plików. Dla starego Side Loadera dobrze aby FAT32 był przed FAT16, inaczej loader znajdzie FAT16 i nie będzie wiedział co z nim zrobić.

Dodajemy FAT16 jako "External" w atarowym fdisku i przypisujemy mu literę.

Odpalamy FATFS.SYS i przechodzimy na D2:. Budowanie indeksu plików (oczekiwanie po DIR) może chwile potrwać, ale powinniśmy się cieszyć zawartością partycji FAT16 pod SDX (read only). FAT32 służy do odpalania gier z loadera.

Kopiowanie danych z PC do SDX jest dzięki temu dużo szybsze i wygodniejsze.

Mam nadzieję, że się przyda ;)

40

(27 odpowiedzi, napisanych Sprzęt - 8bit)

Pin napisał/a:

Minusem jest to, że nie udało mi się zmusić SIDELOADERA do współpracy z FAT16. Tak więc, zależnie od potrzeb - deklarujcie albo FAT32 i możliwość pracy na loaderze i braku możliwości przetransferowania danych na APT, albo FAT16 i zagwostka z loaderem, ale możliwość dostępu do FATA z poziomu SDX.

Można utworzyć FAT16 do wymiany danych między PC a SDX i FAT32 dla side loadera. Przy starym side loaderze, FAT32 musi być pierwszy. Nie pytajcie mnie jaki to jest stary... U mnie w Side1 od Zaxona to taki jeszcze bez scrolla, lubię go bo jest minimalistyczny i jakieś gry mi na nim działały, a na tym ze scrollem na dole nie. Stary loader mam w Side, nowy z obsługą montowania atr/pbi w U1MB i tak jest ok.

Tutaj było więcej: http://www.atari.org.pl/forum/viewtopic … 90#p181490

Muszę się zmobilizować i nakręcić krótki filmik jak to się robi ;) bo temat jakoś dziwnie powraca, a nie jest to trudne do ogarnięcia. Może we wtorek się uda.

41

(27 odpowiedzi, napisanych Programowanie - 8 bit)

Podmień lib/atari8_graph.h na ten z załącznika, przekompiluj i zobacz czy działa jak należy :)

(0x25B6  0x0009)

Chyba tak to powinno wyglądać, jak na screenie.

42

(27 odpowiedzi, napisanych Programowanie - 8 bit)

Spencer napisał/a:

@greblus: mała prośba, czy mógłbyś sprawdzić u siebie czy konwertuje Ci tabulacje ?

Hej Spencer. Sprawdzilem jeszcze raz i masz rację, tabulatorów z utf-8 nie konwertuje. Nie zauważyłem tego, bo edytor w Action! konwertuje taby na spacje przy zapisie.  Są opcje podmiany niekonwertowalnych znaków, np. --unicode-subst= ale na to pewnie już wpadłeś.

43

(27 odpowiedzi, napisanych Programowanie - 8 bit)

Spróbujcie usunąć wrapper i wstawić tam tylko:

_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");

Kiedyś taka konstrukcja mi się kompilowała, ale po upgradach ubuntu przestało - w necie znalazłem tą poprawkę, wstawiłem i zaczęło się kompilować.

Edit: Poprawka oczywiście aplikowana jest na plik srclib/stdio.in.h

Mono, błąd (w Mingw) jest dokładnie taki:

./stdio.h:1010:66: error: missing binary operator before token "("
#if defined(__GLIBC__) && !defined(__UCLIBC__) && !__GLIBC_PREREQ(2, 16)

Wystarczy dodać operator binarny: czyli np.  !__GLIBC_PREREQ > (2, 16)

i jest ok. Wywalenie tego makra oczywiście również załatwia sprawę :)

44

(27 odpowiedzi, napisanych Programowanie - 8 bit)

Ten błąd z makrem w stdio.h:

#if defined(__GLIBC__) && !defined(__UCLIBC__) && !__GLIBC_PREREQ > (2, 16)
_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
#endif

Brakuje mu operatora binarnego, bo pewnie makro się zmieniło w międzyczasie :)

Tabulatory konwertuje chyba ok (screen).

45

(27 odpowiedzi, napisanych Programowanie - 8 bit)

Hej. W załączniku exe (static, stripped) z ostatnim patchem mono z obsługą:

ATARI ATARIST
RISCOS-LATIN1
ATARI8 ATARI8-ATASCII ATARI8-GRAPH ATASCII
ATARI8-ATASCII2 ATARI8-INT ATASCII2
ATARI8-KAREN ATARI8-PL
ATARI8-AWP
ATARI8-XLENT
ATARI8-PANTHER
ATARI8-PE
ATARI8-CAPEK ATARI8-CZ
ATARI8-TCHEKO
ZX80 ZX81
ZX82 ZXSPECTRUM
ZX82-PL ZXSPECTRUM-PL
PETSCII PETSCII-UC
PETSCII-LC
CP867 CP895 KAMENICKY KEYBCS2

46

(27 odpowiedzi, napisanych Programowanie - 8 bit)

mono napisał/a:

Dziękuję.

To ja dziękuje! Bez tabeli mapowań (nad którymi musiałeś się sporo nasiedzieć) nie mielibyśmy takiego fajnego narzędzia :)

47

(27 odpowiedzi, napisanych Programowanie - 8 bit)

Się skompilowało. W załącznikach iconv.exe z libiconv-2.dll i screen z Windows XP (testowałem też na W7).

48

(27 odpowiedzi, napisanych Programowanie - 8 bit)

Kompilacja na Windows nie będzie problemem, tylko w tym momencie szkoda mi było czasu na zabawę z mingw :) o wiele chętniej sprawdzam "co tam Panie nowego w Pythonie", bo od jakiegoś czasu stałem się niekompatybilny z wersją 3.

49

(27 odpowiedzi, napisanych Programowanie - 8 bit)

Mono, dzięki za twojego patcha do libiconv! Oby kiedyś został wciągnięty do oficjalnej paczki. Pod linuksem używam z powodzeniem, ale nie mam jak pod Windows skompilować więc wykorzystałem twoją tablicę atascii<->utf8 w skrypcie w Pythonie (w załączniku, może się komuś przyda).

50

(19 odpowiedzi, napisanych Fabryka - 8bit)

Pin napisał/a:
Jenot napisał/a:

żeby sobie przygotować CF z partycją FAT16 montowaną przez FATFS.SYS

Można to przecież zrobić z poziomu Atari i FDISK'a FJC. Problem tylko taki, że nie wiedzieć dlaczego /u mnie/ SideLoader próbuje czytać FAT16, lecz nie bardzo mu się to udaje, ale być może to u mnie coś jest jeszcze dodatkowo ^%^)&*^) ;)

A fat16 masz przed fat32? Zauważyłem kiedyś, że fat32 musi być po prostu pierwszy :> Od tamtej pory zero problemów.