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ć.
Atari Floppy Image Toolkit Potężne narzędzie w stylu GEM do obsługi dyskietek Atari ST w przeglądarce internetowej.
Delete Me Hard Nowa, rozbudowana strzelanka arcade dla komputerów Atari XL/XE, NES oraz C64.
HDDRIVER 13.00 Nowa wersja sterownika przynosi olbrzymie zmiany, w tym ramdysk nowej generacji i inne optymalizacje.
Altirra 4.50 test 12 Nowa wersja testowa emulatora Altirra przynosi poprawki błędów oraz wierniejszą emulację plotera Atari 1020.
Another World na Atari XL/XE Niezwykły projekt w1k przenosi kultowy hit Another World na 8-bitowe komputery Atari.
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.103 sekund, wykonano 20 zapytań