276

(76 odpowiedzi, napisanych Różne)

Intryga się zagęszcza...

10 ? CHR$(125);"LOAD ";CHR$(34);"C:";CHR$(34)
20 SOUND 3,52,14,8:FOR I=0 TO 2000:NEXT I
21 P=53760:SOUND 0,5,14,8:SOUND 1,7,14,8:POKE P+15,43:FOR I=0 TO 255:POKE P+13,PEEK(40960+I):NEXT I
22 SOUND 0,0,0,0:SOUND 1,0,0,0:SOUND 3,0,0,0
30 ? :FOR B=0 TO 4:READ A,C:? CHR$(A);CHR$(253):FOR D=0 TO C:NEXT D:NEXT B:DATA 69,100,82,100,82,0,79,0,82,0
40 DIM A$(1):RESTORE 40:? "READY":FOR I=0 TO 2:READ A$:? A$;:FOR C=0 TO 255:NEXT C:NEXT I:DATA R,U,N
50 ? :? "DeCRUSHing":FOR I=0 TO 255:POKE 53274,PEEK(53770):NEXT I
100 DIM C$(1)
101 ? :? "CASSATE OPERATING SYSTEM 1.2.3":? "2023 BC (C) BY SLMQ"
102 ? :? "YOU'RE SITTING ON STOOL NEAR THE TABLE WITH ATARI 400 AND TAPE RECORDER ON."
103 ? "THROUGH THE WINDOW YOU CAN SEE REAL WORLD. BEAUTIFUL WORLD..."
104 ? "NOW YOU CAN DO:"
105 ? :? "A.MOTOR ON":? "B.MOTOR OFF":? "C.LOAD PROGRAM":? "D.RUN PROGRAM":? "E.MAKE DEMO"
106 ? :? "WHAT NOW";:INPUT C$
32760 REM ---
32761 REM PRIMA APRILIS COMPO 2023 TAPE RECORDER
32762 REM BY MONO, SIKOR, MQ, LIZARD

Edit: Uaktualniłem tylko kopyrajta.
Edit 2: I jeszcze małe litery się zagubiły w decrushingu.

277

(76 odpowiedzi, napisanych Różne)

To ulepszona wersja ładowania (linie 20-22, reszta bez zmian):

10 ? CHR$(125);"LOAD ";CHR$(34);"C:";CHR$(34)
20 SOUND 3,52,14,8:FOR I=0 TO 2000:NEXT I
21 P=53760:SOUND 0,5,14,8:SOUND 1,7,14,8:POKE P+15,43:FOR I=0 TO 255:POKE P+13,PEEK(40960+I):NEXT I
22 SOUND 0,0,0,0:SOUND 1,0,0,0:SOUND 3,0,0,0
30 ? :FOR B=0 TO 4:READ A,C:? CHR$(A);CHR$(253):FOR D=0 TO C:NEXT D:NEXT B:DATA 69,100,82,100,82,0,79,0,82,0
32760 REM ---
32761 REM PRIMA APRILIS COMPO 2023 TAPE RECORDER
32762 REM BY MONO, SIKOR, MQ

Zmylił mnie początkowo atari800 dźwiękiem.

278

(76 odpowiedzi, napisanych Różne)

To spróbujmy jeszcze wcześniej coś załadować:

10 ? CHR$(125);"LOAD ";CHR$(34);"C:";CHR$(34)
20 SOUND 0,52,14,8:FOR I=0 TO 2000:NEXT I
21 DIM T(2):T(0)=5:T(1)=7:FOR I=0 TO 132:SOUND 0,T(RND(0)),14,8:NEXT I
22 SOUND 0,52,14,0
30 ? :FOR B=0 TO 4:READ A,C:? CHR$(A);CHR$(253):FOR D=0 TO C:NEXT D:NEXT B:DATA 69,100,82,100,82,0,79,0,82,0
32760 REM ---
32761 REM PRIMA APRILIS COMPO 2023 TAPE RECORDER
32762 REM BY MONO, SIKOR, MQ

Dopisałem Sikora - nie ma letko!

Edit: @Mq: Przesunąłem Twój kod do 30.

279

(76 odpowiedzi, napisanych Różne)

Wiesz ile cykli trwa czyszczenie ekranu? Należy się dopisać :)

280

(76 odpowiedzi, napisanych Różne)

Ległszy pod ciężarem argumentacji Lizarda, iż:
- po pierwsze primo, to marzec ma 32 dni,
- po drugie secundo, 1 kwietnia to żart,
- po trzecie tertio, Prima Aprilis wypadł na dzień wolny od pracy, więc automatycznie został przeniesiony na pierwszy dzień roboczy po dniu wolnym (z)godnie z ustawą o dniach wolnych
ogłaszam rozpoczęcie Prima Aprilis Compo AD 2023, które trwać będzie do 0:00 5 IV 2023 CEST.
Zasady jak w ubiegłym roku http://www.atari.org.pl/forum/viewtopic.php?id=18324

10 ? "LOAD ";CHR$(34);"C:";CHR$(34);
32760 REM ---
32761 REM Prima Aprilis Compo 2023 Tape Recorder
32762 REM by Mono

281

(14 odpowiedzi, napisanych Bałagan)

Pomyślności!

282

(239 odpowiedzi, napisanych Bałagan)

A co zazwyczaj pierdyka? Elektryka prąd nie tyka. A jak tyknie to pierdyknie... Masz na myśli napaści na pączkomaty?

283

(6,387 odpowiedzi, napisanych Kolekcjonowanie)

Galanteria pójdzie za pół darmo - tyle co była kupowana.

284

(13 odpowiedzi, napisanych Scena - 8bit)

CharlieChaplin napisał/a:

Mono: When and where did I say it was from Benjy Soft ? If so, that was wrong. I just loaded the Compyshop magazine and the foreword clearly says it is from Kemal Ezcan...

Thank you for clarification. I apologise if I put someone else's words to your mouth - it's my mistake.

285

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

Operacje FP ale jako rozkazy dodatkowe takiego CPU to niezły pomysł. Ale haki z jakimiś specjalnymi adresami to jakieś takie słabe.
FP mogłoby funkcjonować tak, że w A jest adres na ZPG jednego rejestru FP, a jako argument brać adres drugiego rejestru FP. Tryby adresowania dla argumentu standardowe. Albo tryb FP włączany dodatkowym znacznikiem F rejestru flagowego :) Wtedy wszystkie ADC, SBC, CMP, ROL, ROR itp. działałyby na liczbach FP na ZPG :) Tylko przydałoby się jeszcze MUL/DIV i EXP/LOG i może pewnie parę innych. No i MOV do przesłań rejestrów FP. I jakaś normalizacja liczby FP pewnie też.

286

(188 odpowiedzi, napisanych Bałagan)

Nie sec tylko sbc :D

287

(188 odpowiedzi, napisanych Bałagan)

Tak. A ja bym jeszcze zrobił nielegale, ale żeby się pokazywały dopiero jak w szklance jest 5V :)

Edit: I to wewnątrz. A na dnie KIL.

288

(127 odpowiedzi, napisanych Fabryka - 8bit)

Gratulacje!

289

(188 odpowiedzi, napisanych Bałagan)

A można robić nadruk w środku kubka?

290

(188 odpowiedzi, napisanych Bałagan)

Lizard napisał/a:
mono napisał/a:

SP-2: MSB PC-1
SP-1: LSB PC-1
SP: ---

Coś mi mówi, że liczysz nie w tę stronę. :-)

Słusznie :) Poprawiłem.

291

(188 odpowiedzi, napisanych Bałagan)

Prawdziwych programistów dłubiących w lewym uchu palcem prawej ręki.

292

(188 odpowiedzi, napisanych Bałagan)

bocianu napisał/a:

Ja widzę jeszcze parę pustych miejsc, wiec...

A ja bym dołożył jak wygląda ramka powrotu odłożona na stos przez:
- BRK
- JSR
- przerwanie IRQ/NMI.

Edit: I zobrazowałbym przy okazji który bajt na stosie wskazuje SP (że ten, na którym zostanie dopiero coś położone).

Edit 2:
-------------------
PC-3: JSR abs
PC: ---

SP+2: MSB PC-1
SP+1: LSB PC-1
SP: ---
-------------------
PC-1: BRK
PC: ---

SP+3: MSB PC+1
SP+2: LSB PC+1
SP+1: SR (B=1)
SP: ---
-------------------
PC: <int IRQ/NMI>

SP+3: MSB PC
SP+2: LSB PC
SP+1: SR
SP: ---
-------------------
Edit 3: poprawiłem numerowanie SP za sugestią Lizarda :) bo było odwrotnie.

293

(188 odpowiedzi, napisanych Bałagan)

bocianu napisał/a:

ale że dobrze, czy źle?

Dobrze, dobrze.

294

(188 odpowiedzi, napisanych Bałagan)

bocianu napisał/a:

do CMP doszła tabelka

Nie tylko CMP, ale i CPx, i SBC i ADC. Przy dwóch ostatnich to też NV kiedy liczby interpretowane są jako U2. ADC oczywiście inaczej ustawia znaczniki.
Ale może to już za dużo...?

Edit: Nieee, myślę jednak że w samym CMP wystarczy.

295

(188 odpowiedzi, napisanych Bałagan)

Jeszcze drobiazg - jest "Stack pointer", ale już "Program Counter"; "X - Index register", ale "Flag Register" - może by tak pisać jednak wszystko od dużej?

296

(188 odpowiedzi, napisanych Bałagan)

bocianu napisał/a:

zobaczcie teraz czy jest ładnie :D

Mnie się podoba :)

297

(188 odpowiedzi, napisanych Bałagan)

IND i IMM były w Kruszyński+Kulpa dlatego mnie nie raziło. Ale może rzeczywiście:
1. JMP (ABS) zamiast (IND)
2. (ZPG),Y zamiast (IND),Y
3. (ZPG,X) zamiast (IND,X)
czy tam ZP.

@Lizard: słusznie - REL.

@xxl: z tym BRK to same problemy :) Względem adresu powrotu z przerwania to ten rozkaz byłby 2-bajtowy, ale gdzie jest argument BRK? Za opcodem - no to proszę go pobrać. To jest niedorobione. Możliwe, że planowano mieć specjalną stronę jak stos czy ZPG żeby móc robić coś w rodzaju BRK $48 jak w Z80. Nie znam też asemblera, który by umożliwiał podawanie argumentu do BRK. No ale ja mało widziałem w życiu więc się kłócił specjalnie nie będę :)

298

(188 odpowiedzi, napisanych Bałagan)

Ruszczyc podaje niby, że PLA i TSX wpływają na NZ.
Poza tym git.

Edit: A Kruszyński+Kulpa że PLP i RTI na NV*BDIZC.

Edit 2: Może ładniej będzie NMI, RESET i IRQ bez tych VECów?

299

(188 odpowiedzi, napisanych Bałagan)

bocianu napisał/a:
mono napisał/a:

- RTI ma 7 cykli a nie 6

sprawdzałem w 3 miejscach i one wszystkie mówią że jednak 6 (w tym Pan Ruszczyc).

Rzeczywiście! Ileż to już lat żyję w błędzie... Dzięki!

(sprawdziłem w Ruszczycu, bo podejrzewałem że bezczelnie kłamie, ale w Kruszyński+Kulpa rozrysowane jest rzeczywiście 6 cykli)

300

(188 odpowiedzi, napisanych Bałagan)

Mnie się zdaje, że:
- brakuje ROR ABS,X $7E
- RTI ma 7 cykli a nie 6
Dodałbym jeszcze informację, że sekwencja przyjęcia przerwania zajmuje 7 cykli.
A nie wolałbyś mieć:
- (IND,X) zamiast IND,X
- (IND),Y zamiast IND,Y
- (IND) zamiast IND ?

Edit: Może jeszcze dodałbym wektory:
$FFFA - NMIVEC
$FFFC - RESVEC
$FFFE - IRQVEC
i że $00xx to ZPG, a $01xx to stos.
I może że BRK stan znacznika B odkłada na stosie a nie w rejestrze flagowym.

Edit 2: Aaaaaa - no i przecież że F to NV*BDIZC i rejestry A,X,Y,F,SP,PC

Edit 3: Poza tym bardzo to estetycznie i elegancko wygląda. Ja taki kubeczek chcę!