226

(76 odpowiedzi, napisanych Różne)

I pojawiły się kody kontrolne i już się nie da copypastą.
Udźwiękowiłem wybryki z magnetem i dodałem ciągle znikające małe litery w DECRUSHINGu.

9 TRAP 31782
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
23 MOTUR=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:? CHR$(125)
100 DIM C$(1)
101 ? :? "┌───┐":? "|* *|":? "└──┘":? "CASSATE OPERATING SYSTEM 1.2.3":? "2023 BC (C) BY PACT"
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 ? :? "STATUS MOTORU: ";:IF MOTUR=1 THEN PRINT "ON"
106 IF MOTUR=0 THEN ? "OF"
107 ? :? "A.MOTOR ON":? "B.MOTOR OFF":? "C.LOAD PROGRAM":? "D.RUN PROGRAM":? "E.MAKE DEMO":? "X.EXIT"
108 ? :? "WHAT NOW";:INPUT C$
109 C=0:IF C$<>"" THEN C=ASC(C$)-64
110 IF C=24 THEN GOSUB 20000
111 ON C GOSUB 10000,12000,14000,16000,18000
114 ? CHR$(125):GOTO 101
10000 REM MOTOR ON
10005 IF MOTUR=0 THEN MOTUR=1:SOUND 0,10,0,1:POKE 54018,52:RETURN 
10010 PRINT "ERROR: MOTUR JUZ JEST ON";CHR$(253);"!!!"
10015 GOSUB 31421
11000 RETURN 
12000 REM MOTOR OFF
12005 IF MOTUR=1 THEN MOTUR=0:SOUND 0,0,0,0:POKE 54018,60:RETURN 
12010 PRINT "ERROR: MOTUR JUZ JEST OF";CHR$(253);"!!!"
12015 GOSUB 31421
13000 RETURN 
14000 REM LOAD PROGRAM
15000 RETURN 
16000 REM RUN PROGRAM
17000 RETURN 
18000 REM MAKE DEMO
19000 RETURN 
20000 REM EXIT
20001 GRAPHICS 2+16
20002 POSITION 1,4:? #6;"   IT IS NOW SAFE"
20003 ? #6;"     TO TURN OFF"
20004 ? #6;"    YOUR COMPUTER"
20005 GOTO 20005
31421 FOR OPUZNIENIE=1 TO 1000:NEXT OPUZNIENIE:RETURN 
31782 ? "ERROR: WYKRYTO ZLE NACISNIECIE";CHR$(253);"!":TRAP 31782
31783 GOSUB 31421:GOTO 101
32760 REM ---
32761 REM PRIMA APRILIS COMPO 2023 TAPE RECORDER
32762 REM BY PRIMA APRILIS COMPO TEAM:
32763 REM MONO, SIKOR, MQ, LIZARD, MGR INZ. RAFAL, DELY

Edit: A. I jeszcze utworzyłem PACT - Prima Aprilis Compo Team - zamiast wyliczać wszystkich po literce, dwóch.

227

(76 odpowiedzi, napisanych Różne)

Jak ktoś wymyśla sobie język, w którym nie ma GOTO to sam sobie jest winny.

Edit: Dys Ys Bejzyk!

228

(76 odpowiedzi, napisanych Różne)

A gdyby tak linie 108-116 zastąpić:

107 C=ASC(C$)-64: IF C>0 THEN ON C GOTO 10000,12000,14000,16000,18000

? Taka ładna konstrukcja... Jeszcze jest ON ... GOSUB.

229

(76 odpowiedzi, napisanych Różne)

ENTER "H:PA2023.LST

Tylko jako H: trzeba sobie podmontować katalog z plikiem PA2023.LST. Załączam LST bo potem łatwiej edytować kod niż wklejać z www ze względu na potencjalne inwersy i kody kontrolne.

Edit: W załączniku BAS, którego Altirra bierze automatycznie. Swoją drogą dziwne, że LST nie bierze...

230

(76 odpowiedzi, napisanych Różne)

Nie za cienki, tylko za leniwy :)

231

(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.

232

(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.

233

(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.

234

(76 odpowiedzi, napisanych Różne)

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

235

(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

236

(14 odpowiedzi, napisanych Bałagan)

Pomyślności!

237

(238 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?

238

(6,269 odpowiedzi, napisanych Kolekcjonowanie)

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

239

(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.

240

(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ż.

241

(188 odpowiedzi, napisanych Bałagan)

Nie sec tylko sbc :D

242

(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.

243

(127 odpowiedzi, napisanych Fabryka - 8bit)

Gratulacje!

244

(188 odpowiedzi, napisanych Bałagan)

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

245

(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.

246

(188 odpowiedzi, napisanych Bałagan)

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

247

(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.

248

(188 odpowiedzi, napisanych Bałagan)

bocianu napisał/a:

ale że dobrze, czy źle?

Dobrze, dobrze.

249

(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.

250

(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?