xxl napisał/a:

wniosek: darmowa wersja jest slaba. zeby pisal programy na atari trzeba mu zaplacic ;-)

Sprawdziłem w Codex z gpt-6-luna w darmowej subskrybcji

"napisz w asemblerze dla atari 800 program do kasowania zawartosci ekranu"

Poniżej krótka procedura 6502 dla Atari 800. Wysyła do kanału E: znak sterujący 125 ($7D), który czyści ekran. Zakłada, że IOCB 0 jest otwarty na E: - tak jest zwykle po uruchomieniu programu z DOS-u.

CIOV    = $E456
IOCB0   = $0340

CLEAR_SCREEN
        LDA #$09            ; CIO PUT RECORD
        STA IOCB0+2         ; ICCOM

        LDA #<CLEAR_CHAR
        STA IOCB0+4         ; ICBAL
        LDA #>CLEAR_CHAR
        STA IOCB0+5         ; ICBAH

        LDA #$01
        STA IOCB0+8         ; ICBLL
        LDA #$00
        STA IOCB0+9         ; ICBLH

        LDX #$00            ; numer IOCB: 0
        JSR CIOV
        RTS

CLEAR_CHAR
        .BYTE $7D

Wywołanie procedury: JSR CLEAR_SCREEN. Składnia dyrektyw może się różnić zależnie od używanego asemblera Atari.

xxl napisał/a:

@mcs: ale to jest darmowy czy platny? bo czytam ze darmowa to inna wersja od platnej.

To akurat Claude w subskrybcji ale o co innego mi chodziło. Sam LLM poprzez chata jest słaby w programowaniu, dopiero w "uprzęży" agentowej (w tym przypadku Claude Code) pokazuje możliwości i następny etap to jest możliwośc samodzielnego testowanie przez "to". Teraz chyba Anthropic nie daje możliwości użycia modeli w agencie w darmowej subskrybcji ale zdaje się OpenAI z ich "uprzeżą" Codex pozwala na to. I ten "harness" to jest wymienialna rzecz, można mieć Codex od OpenAI a używać z innymi modelami. Kilka dni temu używałem lokalnie odpalonych LLM właśnie z Codexem, a dodatkowo jest sporo innych open source wersji (OpenCode, Pi, etc)

Chyba główna moja myśl jest taka że LLM poprzez chata pokazuje tylko ułamek swoich możliwości i ocenianie jakości kodu w ten sposób jest mylące. W momencie gdy odkryłem właśnie agentowe używanie modeli, moje możliwości skoczyły co najmniej dziesięciokrotnie.

A jeszcze ogólniejsza myśl jest taka, że to takie same narzędzie jak każde inne, ważne aby umieć się nim posługiwać. Każdy może kupić sobie zestaw kuchenny który używa szef kuchni Michelin ale to nie znaczy że każdy będzie potem gotował "z gwiazdką". I tu dochodzi trzeci "składnik" produktywności, wiedzia i doświadzenie odnośnie problemu który rozwiązujemy. Nawet z najlepszym modelem, z najlepszym agentem bez zrozumienia co chcemy zrobić i bardzo często jak, efekty będą słabe. To widać na scenie Atari też, najlepsze dzieła piszą ludzie którzy nie tylko dobrze posługują się AI ale też mają wiedzę "wcześniejszą" jak się programuje Atari.

No i potem pęla sprzężenia zwrotnego

"uruchom to w emulatorze i sprawdź czy działa"

Ładuję skill AltirraSDL, żeby uruchomić program przez AltirraBridge i zrobić zrzut ekranu.

● Skill(altirra-sdl-engineering)
Successfully loaded skill

  Ran 4 shell commands

Uruchamiam emulator headless i piszę skrypt testowy: breakpoint na $2000, boot XEX, zaśmiecenie ekranu, zrzut "przed", wznowienie, zrzut "po" i sprawdzenie pamięci obrazu.

  Read 1 file, ran 3 shell commands

● Background command "Run breakpoint-based clear-screen test for both XEX files in the emulator" failed with exit code 144

  Ran 2 shell commands

Stary proces emulatora się zawiesił; ubijam oba i startuję na czysto.

  Ran 3 shell commands

Klucz to PC wielkimi literami; breakpoint już trafił. Poprawiam skrypt i puszczam oba testy.

  Read 2 files, ran 5 shell commands

Widzę, że zrzuty "po" pokazywały loader Altirry, bo program po RTS wraca do niego i podmienia display listę. Zmienię adres powrotu na stosie na pętlę jmp *, żeby wynik został widoczny na ekranie.

  Read 2 files, ran 2 shell commands

Oba programy działają poprawnie w emulatorze AltirraSDL (headless, przez AltirraBridge). Zrzuty ekranu leżą w /tmp/ll/cls/ jako przed.png, po_cio.png i po_fast.png.

Jak testowałem. Breakpoint na $2000, boot pliku XEX, a po zatrzymaniu wypełniłem całe 960 bajtów pamięci obrazu (pod adresem z SAVMSC, czyli $BC40) znakami i inwersami, zrobiłem zrzut, potem wznowiłem program i zrzuciłem pamięć obrazu oraz ekran ponownie. Adres powrotu na stosie podmieniłem na pętlę w nieskończoność, bo inaczej po RTS loader Altirry wstawia własną display listę i zrzut "po" pokazywał ekran loadera, a nie efekt programu.

Wyniki:

┌──────────────┬────────────────────────┬──────────────────────────┬───────────────────────────────┐
│   Program    │         Przed          │            Po            │ Pamięć poniżej/powyżej ekranu │
├──────────────┼────────────────────────┼──────────────────────────┼───────────────────────────────┤
│ cls_cio.xex  │ 960 bajtów niezerowych │ 1 bajt: $80 na pozycji 2 │ nietknięta                    │
├──────────────┼────────────────────────┼──────────────────────────┼───────────────────────────────┤
│ cls_fast.xex │ 960 bajtów niezerowych │ 0 bajtów niezerowych     │ nietknięta                    │
└──────────────┴────────────────────────┴──────────────────────────┴───────────────────────────────┘

- Wersja CIO czyści ekran i zostawia kursor OS-u w wierszu 0, kolumna 2. Ten jeden bajt $80 to właśnie kursor edytora E: na lewym marginesie (LMARGN = 2). To jest poprawne i oczekiwane zachowanie polecenia CLEAR, na zrzucie widać niebieski ekran z kursorem w lewym górnym rogu.
- Wersja szybka zeruje dokładnie 960 bajtów i ani bajtu więcej. Na zrzucie jest czysty niebieski ekran bez kursora, bo ta wersja nie przechodzi przez OS.

Dwie rzeczy, na które natknąłem się po drodze w samym mostku, żebyś wiedział na przyszłość: po trafieniu breakpointu komenda FRAME blokuje się na zawsze, więc trzeba odpytywać REGS z opóźnieniem zamiast stepować klatkami, a słownik z REGS ma klucze wielkimi literami (PC, nie pc).

xxl napisał/a:

nie wiem jak udaje sie mu napisac te wszystkie cuda skoro w tak banalnych procedurach robi kardynalne bledy.

Mi wygenrował taką odpowiedź:

Oba programy są napisane, zasemblowane MADS-em bez błędów i leżą w /tmp/ll/cls/. Dałem dwie wersje, bo "najmniejszy" i "najszybszy" to na Atari dwa różne programy.

Wersja 1: przez OS (CIO), 18 bajtów kodu, 30 bajtów XEX. To "atarowski" sposób: edytor ekranowy E: traktuje znak ATASCII $7D (CLEAR) jako polecenie "wyczyść ekran i kursor do (0,0)". Nie trzeba znać adresu ani rozmiaru pamięci obrazu, działa w każdym trybie tekstowym, na 400/800 i XL/XE, pod każdym DOS-em.

asm
; cls_cio.asm - kasowanie ekranu przez CIO (urządzenie E:)
ICCOM   = $0342         ; IOCB#0 - polecenie
ICBLL   = $0348         ; IOCB#0 - długość bufora (lo)
ICBLH   = $0349         ; IOCB#0 - długość bufora (hi)
CIOV    = $E456         ; wektor CIO (stały na wszystkich OS)
PUTCHR  = $0B           ; CIO: PUT CHARACTERS
CLS     = $7D           ; ATASCII CLEAR

        org $2000

start   ldx #0          ; IOCB#0 = E:, otwarty przez OS po starcie
        stx ICBLL       ; długość 0 => CIO wysyła pojedynczy bajt z A
        stx ICBLH
        lda #PUTCHR
        sta ICCOM
        lda #CLS
        jmp CIOV        ; tail-call: RTS z CIO wraca do DOS-u

        run start       ; MADS: segment RUNAD ($02E0)

Wersja 2: bezpośrednio w pamięci obrazu, 29 bajtów kodu, 40 bajtów XEX. Do gier i dem, bez OS. Pętla ma 11 cykli na bajt, czyli całe 960 bajtów GR.0 kasuje się w około jednej trzeciej ramki.

asm
; cls_fast.asm - szybkie kasowanie GR.0 (40x24 = 960 bajtów)
SAVMSC  = $58           ; OS: adres początku pamięci obrazu
ptr     = $CB           ; wolna para na stronie zerowej

        org $2000

start   lda SAVMSC
        sta ptr
        lda SAVMSC+1
        clc
        adc #3          ; ptr = SAVMSC + $300 (ostatnia, niepełna strona)
        sta ptr+1
        ldx #3          ; licznik stron: 3,2,1,0
        ldy #$C0        ; 1. przebieg: $C0 bajtów; kolejne: pełne 256
        lda #0          ; kod ekranowy 0 = spacja
loop    dey
        sta (ptr),y
        bne loop
        dec ptr+1       ; strona niżej
        dex
        bpl loop
        rts

        run start

Dobre praktyki, które są tu zastosowane:

- Adres ekranu z SAVMSC, nie zaszyty na sztywno jako $BC40. Dzięki temu działa przy 16/32/40/48 KB RAM i z dowolnym DOS-em.
- Wskaźnik na $CB/$CC, czyli w obszarze strony zerowej wolnym dla użytkownika na każdym OS-ie i nieruszanym przez BASIC.
- Dokładnie 960 bajtów, a nie "4 strony dla wygody". Pętla idzie od końca ekranu w dół, więc nic nie wychodzi poza pamięć obrazu, która kończy się tuż pod ROM-em.
- Jedna pętla dla niepełnej i pełnych stron: pierwszy przebieg z Y=$C0 kasuje końcówkę, potem Y przewija się przez 0 i robi pełne 256 bajtów.
- Tail-call jmp CIOV w wersji 1 oszczędza bajt i poziom stosu.
- run start w MADS generuje segment RUNAD, więc XEX ładuje się i startuje pod każdym DOS-em.

Kompilacja:

mads cls_cio.asm  -o:cls_cio.xex
mads cls_fast.asm -o:cls_fast.xex

Jedna uwaga: jeśli program ma działać tylko na XL/XE, wersję 1 można skrócić do 6 bajtów przez wektor EOUTCH (lda #$7D / jsr $F6A4 / rts), ale ten wektor nie istnieje w OS-ie 400/800, więc nie użyłem go jako wersji głównej. Programów nie uruchamiałem w emulatorze, tylko zasemblowałem i sprawdziłem listing.

grzybson napisał/a:

Na następny test wrzucę mu snapshot z emulatora z efektu z jakiegoś dema.

Proponowałbym zainteresować się AltiraSDL i "wpiąć" bezpośrednio do Claude. Cały "myk" pracy z LLM to jak najszybsza pętla zwrotna, im bardziej uda się wyelminować manualne potwierdzenia czy sugestie tym szybciej da się osiągnąć pożadany efekt. Claude rozmawiający bezpośrednio z emulatorem może od razu weryfikować efekty swojej pracy bez konieczności potwierdzenia przez człowieka.
Cały proces to zadać zadanie i precyzyjną metodę potwierdzenia czy jest to wykonane według naszych wymagań. Z mojego doświadczenia TDD (TestDrivenDevelopment) jest bardzo efektywny we współpracy ze współczesnymi modelami.

6

(10,049 odpowiedzi, napisanych Bałagan)

https://www.bloomberg.com/news/articles ... for-travel

1. perinoid
2. Sikor
3. dely
4. takron27
5. mcs

8

(313 odpowiedzi, napisanych Zloty)

https://www.youtube.com/watch?v=XsdZNAa6dfg

Co za dantejskie sceny tam musza sie tam odbywac skoro trzeba miec konto na G aby sie zalogowac by potwierdzic wiek?

9

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

1. perinoid - wysyłkowo.
2. zorkadar - wysyłka
3. VLX (na party)
4. Kroll (party)
5. dely (party)
6. Lastic (mail shipping to Belgium ?)
7. krap (party)
8. mono (party)
9. mcs - wysyłkowo

10

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

Jarkeczek napisał/a:

Super czekam na wymiary/zdjecie i zaczniemy projektowac

mail z linkiem poszedl przez forum. zobacz czy bedzie to przydatne

11

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

jesli nikt nie ma gotowych planow, moge w najblizszym czasie porobic zdjecia i pomierzyc co trzeba

12

(174 odpowiedzi, napisanych Scena - 8bit)

1. pancio.net x1 :-)
2. Alex_D x1
3. Emu
4. perinoid
5. Renton x2
7. hsimpson
8. Graczpospolita.pl
9. Radiorob
10. zorkadar
11. lopez
12. nosty
13. thePink
14. kris3d x2
16. marekp x2
18. Filon
19. uicr0Bee
20. voy
21. Borsuk
22. Kroll
23. tooloud
24. MGor
25. mcs

perinoid napisał/a:

Jeśli nie kupisz do 7-go stycznia to się odezwij.

Dzieki! Dodaje do kalendarza :)

lopez napisał/a:

Jak coś to jeszcze u Zaxona masz klona XF551 do kupienia w wersji 3,5" oraz 5 1/4"

To ta oferta z Allegro?

anx239 napisał/a:

Jeśli sprawna to warto, taniej nie będzie łatwo znaleźć.
Jaka stacja?

Jeszcze nie mam wszystkich szczegolow bo sprzedajacy sie jednak waha...

Probuje w roznych miejscach znalezc :) Pewien jegomosc zaproponowal mi stacje za 100e i robie rozeznanie czy warto za tyle czy nie. Patrzac na obecne ceny to chyba nie jest jednak az tak drogo...

Witam, Forumowiczow

Dojrzala we mnie mysl aby powtornie sprawic sobie Stacje Dyskow do Malego Atari.
Czy ma ktos moze jakas "Nadmiarowa" moze ktora chcialby sprzedac?

18

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

ja uzywajac SIO2PC na linuxie startowalem AspeQT (https://sourceforge.net/projects/aspeqt/) i montowalem katalog jako dyskietka, wiec zwykly dir na Atari pokazuje zawartosc katalogu z linuxa. Szybka metoda na pisanie na pc, kompilacja i od razu uruchomienie na Atari bez dodatkowych akcji

19

(18 odpowiedzi, napisanych Bałagan)

niestety, ale nie okazja

20

(18 odpowiedzi, napisanych Bałagan)

znalezione :)

21

(90 odpowiedzi, napisanych Fabryka - 8bit)

napisz bezposrednio do lotharka, pewnie jakis szczegly zna ;)

22

(90 odpowiedzi, napisanych Fabryka - 8bit)

1050E chyba jest juz dostepne od jakiegos czasu?
https://lotharek.pl/productdetail.php?id=250

23

(18 odpowiedzi, napisanych Bałagan)

wyglada swietnie ze screenow

24

(18 odpowiedzi, napisanych Bałagan)

dokladnie :)

nie planuje (na razie ;) miec wiecej niz jedna Amige wiec niech bedzie taka ktora sobie da rade z najwieksza ilosci oprogramowania :)

25

(18 odpowiedzi, napisanych Bałagan)

A600 nie mialem, z 500 przeskoczylem na 1200. Moze bede musial sie zastanowic ale akurat jedna z moich ulubionych gier (a gram bardzo niewiele) jest Worms Director's Cut (dzieci tez bardzo lubia :) a to tylko na AGA chodzi

@lopez, jak Ci lezy w szafie to wiesz, moge sie nia zaopiekowac ;)