126

Tak ogólnie, co do pliku z zawartością ROM-u, to przez 3 dni zanotowano 46 pobrań. A feedback jest zerowy. Niemniej ja bym się rad był dowiedzieć jakichś wrażeń, to znaczy przede wszystkim, czy są jakieś kłopoty, jesli tak to z czym, oraz (najlepiej) jaka jest ich przyczyna.

W ciemno wiem, że programy używające nielegalnych skoków działać przestaną, rzecz w tym, które to są, oraz konkretnie dlaczego się sypią. Bo jak się wie, to program można spaczować tak, żeby używał legalnych metod np. czytania klawiatury, czasami jest to proste.

KMK
? HEX$(6670358)

127

Draco narzeka, więc może ja się odezwę :D
Z tymi programami JBW, że nie działają to masz rację. Np. ED, AS, EYE. Trochę szkoda, bo fajne :(
Np. w ED.COM są nielegalne skoki do procedur KEYCLICK, BELL i tablicy KEYDEF. Wywaliłem dwa pierwsze skoki, a do KEYDEFa użyłem wskaźnika $79 na stronie zerowej, jak Pan Bóg przykazał :twisted: i ruszyło. Szkoda, że bez efektów dźwiękowych ;)
Testuję dalej...

Coś nie działało load/save, wgrałem poprawioną wersję.

128

Jeśli ten program korzysta z tablicy definicji klawiatury znajdującej się w ROM-ie, to po kiego w ogóle grzyba ma własną obsługę klawiatury? Nie dałoby się go skłonić do czytania klawiatury przynajmniej przez KBDVEC+4? Wtedy klik by był i td. A BELL to chyba wystarczy wysłać znak 253 do edytora (przez wektor ICPUTB kanału #0 ...).

[ Dodano: 06.12.2004 21:45:11 ]
PS. AS nie wiem co to, z EYE nie powinno być problemów, żeby to napisać od nowa ...

KMK
? HEX$(6670358)

129

AS - to był (bodajże) taki mały deassembler, podejrzewam, że historia podobna będzie jak w ED, bo coś mi się pamięta, że klikało/bzyczało podobnie....

I Ty zostaniesz big endianem...

130

Po kiego grzyba ? Nie wiem, ale po dalszej analizie widzę jeszcze kilka dziwnych rzeczy w ED.COM do poprawienia.
Szkoda, że nie mam źródeł, wtedy można i klika mieć i jingle BELL ;)
AS to podręczny dissasembler. Też coś nie tak z klawiaturą pod 816osem.
Zdaje się, że kiedyś coś mieszałeś z EYE. Może masz źródła?

131

Niestety, szukałem, ale nie mam. Poza tym "mieszanie" polegało na tym, że wziąłem "core" made by JBW i przerobiłem na binarkę relokowalną SDX, oraz dodałem pobieranie parametrów. Ale nawet nie jestem pewien, czy to ja  :lol:

W każdym razie pobierania danych z klawiatury nie poprawiłem :/

[ Dodano: 06.12.2004 22:04:49 ]
PS. Gdzieś kiedyś był sourcer, czy ktoś go ma? Może by się przydał ...

[ Dodano: 06.12.2004 22:06:06 ]
PS2. A QA działa?  :mrgreen:

KMK
? HEX$(6670358)

132

Wyciąg z doca w SDXPACK: :twisted:

EYE      COM  Written by JBW, modified by KMK.
You like this package? simply send? ? 5 USD or 12 new polish zloties...

QA u mnie nie działa. Objawy jakby coś było z folią klawiatury ;)

133

No ale nobody likes, więc po co poprawiać  :twisted: Poza tym przecież nie będę czytał/przechowywał własnych doców  :D

Zajrzałem do EYE.COM, standard, KEYCLICK oraz tablica definicji klawiatury. Pewnie QA ma to samo. Specjalista  :?

Myślałem o tym "rozpoznawaniu" OS-u i supportu dla 65c816. Najlepsze byłoby jakieś urządzenie systemowe, które by się na tę okoliczność odpytywało np. przez XIO. Takie coś w rodzaju appl_getinfo() na ST, tylko na poziomie BIOS-u. Pytanie tylko, która literka jest *na pewno* wolna, żeby ją można było zająć na tę okoliczność.

Przy okazji: czy jest sens robić rozszerzenie handlera klawiatury o funkcje specjalne typu klik na życzenie albo tryb skanowania (żeby program nie grzęzł w procedurze pobierania bajtu z klawiatury, kiedy juzer nic nie naciska)? Nie wiem, czy ta ostatnia możliwość istnieje w systemie, ale chyba nie ...

KMK
? HEX$(6670358)

134

Na JBW nie napiszę złego słowa, bo to u nas legenda :rolleyes:  Wolę myśleć, że te nielegale wzięły się z braku literatury. Tutaj do Galicji wszystko dociera z opóźnieniem ;) a JBW zaczynał jeszcze na początku lat 80-tych.

Wywoływanie funkcji OSa przez XIO jest fajne. Z literką może być problem, więc może jakiś dodatkowy wyróżnik, np. wirtualny numer IOCB np. 8 ? :D

Niemanie klika klawiatury bym przeżył ;), bo i tak wyłączam przy starcie kompa. Ale funkcje możesz dodać, choć bardziej wolałbym szybkie SIO, albo bootowanie z dowolnego dysku (o ile miejsca zostanie :D).

Wrzuciłem w wcześniejszym poście poprawioną wersję ED26.COM - pod SDX nie działało poprawnie Load/Save. Teraz powinno być lepiej.

135

Dobra, niech będzie, że z braku literatury, aczkolwiek książki Zientary ukazały się w latach 1988-89 (heh, na I/O mam napisaną cenę "1750 złotych"), a QA jest chyba późniejszym wynalazkiem... no nic, mleko rozlane, nie ma co biadać.

Z wirtualnym numerem IOCB jest o tyle trudno, że IOCB musi jednak być gdzieś realnie w pamięci, żeby się dało co najmniej adres nazwy urządzenia ustawić. Czy "Q" jako nazwa urządzenia jest wolne? Bo wygląda dobrze (jak "query").

Bootowanie z dowolnego dysku już jest, tylko że numer dysku może ustawić tylko sterownik twardziela  ;)  Szybkie SIO i tak dodam.

KMK
? HEX$(6670358)

136

Wyguglałem tekst zachęcający do użycia Q:, o tutaj. Może więc zamiast literki użyć jakiegoś krzaka ? Wtedy prawdopodobieństwo konfliktu będzie mniejsze.

Czy będzie zawsze tylko Querowanie? Może w przyszłości jakieś Setowanie ? ;)

137

Bootowanie z dowolnego dysku już jest, tylko że numer dysku może ustawić tylko sterownik twardziela  ;)

hehe, potwierdzam, dziala. :) zdziwilo mnie niepomiernie. :)

--
= krap.pl =

138

Może więc zamiast literki użyć jakiegoś krzaka ? Wtedy prawdopodobieństwo konfliktu będzie mniejsze.

No nie wiem. Skoro literki są zajęte, to może w takim razie cyferki? Jak wygląda np.

OPEN #1,4,0,"0:"?

Bo z krzaków to się chyba tylko "@" nadaje, ale OPEN #1,4,0,"@:" jakoś obco wygląda ...  ;)

[ Dodano: 07.12.2004 18:36:01 ]
Z góglania i innej wiedzy wynika mi, że na pewno zajęte są następujące literki:

C:, D:, E:, F: (host fs w emulcach), H: (to samo), J: (u Zientary w książce), K:, L: (handler do drukarki 1020), M: (ramdysk), N: (/dev/null), P:, Q: (j/w), R:, S:, T: (modem oraz magnetofon turbo), V: (voice), W: ("okienka" w trybie GR.0, pamiętam taki handler z Bajtka).

Czyli wolne są:

A:, B:, G:, I:, O:, U:, X:, Y:, Z:

Jeśli ktoś wie coś o takich handlerach, to niech się zgłosi. Osobiście wydaje mi się, że G: jest zajęte przez coś, ale nie wiem/nie pamiętam przez co, a może się mylę.

Na nowy handler pasuje mi X: (jak eXtensions). No i chyba wywalę w końcu handler kasety a na to miejsce dam N:.

KMK
? HEX$(6670358)

139

Z małpą nie jest tak źle, automaty wyszukujące emaile zgłupieją ;)
Cyfra też może być, chociaż zero myli się z O.
Dla dodatkowej pewności mógłbyś wymusić jakieś specjalne Auxy.

Zdaje się, że Neotracker też nie działa. Czyżby Epi używał bebechów OSa ?

140

Czyli wolne są:
A:, B:, G:, I:, O:, U:, X:, Y:, Z:
Jeśli ktoś wie coś o takich handlerach, to niech się zgłosi.

A: jest zajete.

http://krap.pl/mirrorz/atari/horror.mir … dlera.html

--
= krap.pl =

141

X: zajęte, zobacz tu:
http://groups.google.com/groups?hl=pl&a … amp;rnum=2
Z: też:
http://www.sunmark.com/rtime/RTIME8.txt
G:
http://www.strotmann.de/twiki/bin/view/ … rintDevice

B:
http://www.atarimagazines.com/software/ … KEBOOT.M65

142

Aha, zaznaczyłem sobie (mam listę  ;) )

BTW. ten handler nie będzie działać bez poprawek, bo używa nielegalnego skoku JSR $C642, a ta procedura jest przesunięta nawet w ROM-ie od Atari 1450XLD (i to aż o 13 bajtów).

[ Dodano: 07.12.2004 19:01:44 ]

Skleroza  :?  Ciekawe, dlaczego Gógiel mi tego nie wyrzucił?

KMK
? HEX$(6670358)

143

Aha, zaznaczyłem sobie (mam listę  ;) )

lista na atariki rzadzi.
w ogole atariki jako zbior wiedzy niezbednej rzadzi.

eru, wielopak browara za idee. :)

--
= krap.pl =

144

Co panowie na taki koncept: ponieważ magnetofon ogólnie jest na wylocie, a bootowanie z taśmy jest już nawet w bieżącej alfie usunięte, to klawisz START nie ma zastosowania.

Więc może by go wykorzystać: jak klawisz START jest naciśnięty, to pojawia się menu z wyborem numeru dysku, z którego nalezy dokonać boota?

To by miało priorytet nad ustawieniami zapisanymi na twardzielu, odbywałby się tuż przed procedurą bootowania. A jak klawisz START nie naciśnięty, to wszystko normalnie.

KMK
? HEX$(6670358)

145

Myśle, że nieźle. A Delem niech wchodzi do biosu :-D

What can be asserted without proof can be dismissed without proof.

146

Czyli wolne są:

A:, B:, G:, I:, O:, U:, X:, Y:, Z:

"O:" też widziałem, w którychś okienkach, chyba Grzesiek to nawet w Wyprawach Kupca" umieścił...

I Ty zostaniesz big endianem...

147

Tak z ciekawości :) ... Jakieś poprawki do 1.02 są bodajże w niewydanych OS-ach dla 1450XLD i 1400XL (taki sam numer wersji - BB 2.03, tylko datą się różnią  8) )

No, fertig. Po dwóch nocach analizy ROM-u od 1450XLD (wziąłem ten nowszy) muszę stwierdzić, że numer wersji 2.03 - w porównaniu do 1.02 tego co jest w 800XL - to jest gruba przesada. Są drobne poprawki, owszem, ale to przeważnie kosmetyka.  :?

[ Dodano: 12.12.2004 06:39:42 ]

Wywoływanie funkcji OSa przez XIO jest fajne. Z literką może być problem, więc może jakiś dodatkowy wyróżnik, np. wirtualny numer IOCB np. 8 ? :D

Tak sobie myślę: wirtualne kanały I/O raczej odpadają - bez możliwości ustawienia jakichkolwiek zmiennych trudno byłoby tego używać - ale fakt jest faktem, że numery od 8 do 15 się marnują. Waham się pomiędzy kilkoma koncepcjami i nie wiem, co wybrać:

1) można zlikwidować bufor drukarki, to znaczy przenieść go na miejsce bufora magnetofonu (handler magnetofonu już poleciał, więc to chyba nie szkodzi). To zwalnia 40 bajtów za IOCB #7, czyli można byłoby przypisać to miejsce do IOCB #8 i IOCB #9 powiększając w prosty sposób liczbę kanałów do 10.

Jest to dość proste do zakodowania i nowe kanały byłyby też proste do użycia, bo dokładnie tak samo, jak stare.

2) zdefiniować osiem oddzielnych kanałów IOCB w dodatkowej pamięci: stare byłyby pod $000340 a nowe powiedzmy od $010100-$01018F. Oczywiście byłyby dostępne tylko wtedy, kiedy ta pamięć istniałaby, ale za to łączna liczba kanałów wzrosłaby do 16.

Jest to dość proste do zakodowania, ale byłoby to średnio wygodne w użytkowaniu, bo trzeba byłoby pamiętać o odejmowaniu 128 od adresu wewnątrz IOCB o numerze powyżej 7, no i w ogóle o tym, że bazą nie jest w tym wypadku $0340, tylko jakiś inny adres ... no i jeszcze trzeba byłoby sprawdzać czy dodatkowa pamięć istnieje, zanim się w niej zacznie grzebać. Ale to chyba jest najmniejszy problem.

3) spróbować tak zmodyfikować CIO, żeby kanały z zakresu 8-15 mogły być umieszczone w dowolnym miejscu w pamięci, albo nigdzie. Problemy z adresowaniem ich j/w (to znaczy: to nie jest trudne, ale to jest pole do łatwego zrobienia trudnych do znalezienia błędów). Ciężka sprawa, jeśli chodzi o API, pewnie trzeba byłoby dorobić dwie nowe funkcje CIO, jedna do zainicjowania ich, druga do skasowania (a trzecia do odczytywania ich adresu bazowego ...)

No i tak w ogóle to CIO jest 16-bitowe, a przydałoby się, żeby co najmniej adres i długość bufora (albo przynajmniej sam adres) były 24-bitowe.

Ma ktoś jakieś pomysły?

KMK
? HEX$(6670358)

148

Na Atari Museum pokazały się właśnie specyfikacje do 1400XL i 1450XLD...  :D

Do sciągnięcia tu http://www.atarimuseum.com/ahs_archives … ecs-1a.pdf i tu http://www.atarimuseum.com/ahs_archives … s-rev3.pdf  8) MNIAM! :D  :D  :D

Powszechnie wiadomo, że kamień potrafi myśleć. Na tym fakcie opiera się cała elektronika.

Terry Pratchett - Równoumagicznienie

149

Waham się pomiędzy kilkoma koncepcjami i nie wiem, co wybrać

Ja proponuję na razie opcję 1 (kanały do 10). Tym bardziej, że już bufor drukarki i tak przeniosłeś ;) Można by ew. rozbudować funkcję zwracającą pierwszy wolny, żeby zwracała też jego adres bazowy. Później można by zrobić całkiem nowe CIO już bez ograniczeń ale inaczej wywoływane.

A w logu widziałem, że małpa róló :D

150

Z funkcją zwracającą pierwszy wolny, nie bardzo wiem, jak ją można rozszerzyć, żeby zwracała jeszcze adres: w X jest numer kanału, w Y status, zostaje tylko akumulator ...

A małpa owszem  ;)

KMK
? HEX$(6670358)