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.
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
FiSh 0.70 Bocianu wydał FiSh 0.70, shell ułatwiający przeszukiwanie zasobów serwerów TNFS.
Street Fighter II już na Atari 8-bit! Vega i jego zespół wydali finalną wersję kultowej bijatyki. Wymaga 4MB cartridge i 64KB RAM.
Elite Demo 6 na Atari 8-bit! Trwają prace nad konwersją kultowej gry Elite. Szóste demo wprowadza liczne poprawki błędów.
vbcc v5 dla 6502 Kompilator C vbcc doczekał się piątej wersji dystrybucji dla 6502. Zapewnia dużo szybszą arytmetykę FPU i nowe narzędzia.
HDDRIVER 12.75 Sterownik HDDRIVER, kluczowe narzędzie dla pamięci masowej Atari 16/32-bit, otrzymał aktualizację 12.75, która naprawia błąd w HDDRUTIL.
atari.area forum » Posty przez mono
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.
ENTER "H:PA2023.LSTTylko 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...
Nie za cienki, tylko za leniwy :)
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, LIZARDEdit: Uaktualniłem tylko kopyrajta.
Edit 2: I jeszcze małe litery się zagubiły w decrushingu.
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, MQZmylił mnie początkowo atari800 dźwiękiem.
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, MQDopisałem Sikora - nie ma letko!
Edit: @Mq: Przesunąłem Twój kod do 30.
Wiesz ile cykli trwa czyszczenie ekranu? Należy się dopisać :)
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 MonoA co zazwyczaj pierdyka? Elektryka prąd nie tyka. A jak tyknie to pierdyknie... Masz na myśli napaści na pączkomaty?
Galanteria pójdzie za pół darmo - tyle co była kupowana.
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.
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ż.
Nie sec tylko sbc :D
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.
Gratulacje!
A można robić nadruk w środku kubka?
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.
Prawdziwych programistów dłubiących w lewym uchu palcem prawej ręki.
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.
ale że dobrze, czy źle?
Dobrze, dobrze.
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.
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?
zobaczcie teraz czy jest ładnie :D
Mnie się podoba :)
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ę :)
atari.area forum » Posty przez mono
Wygenerowano w 0.158 sekund, wykonano 12 zapytań