Zapomniane hasło?   Poproś o członkostwo
|
||
0-9 | A | B | C | D |
E | F | G | H | I |
J | K | L | M | N |
O | P | Q | R | S |
T | U | V | W | X |
Y | Z | inne |
GEOS dla Atari! |
Chyba każdy posiadacz komputera ośmiobitowego kojarzył w starych czasach system GEOS dla Commodore 64/128. Nie trzeba było być posiadaczem sprzętu z logiem C=, żeby nie zobaczyć gdzieś w "Bajtku" czy na giełdzie, usłyszeć w rozmowach z kolegami z podwórka, że istnieje taki graficzny system operacyjny. Duma posiadaczy Commodore 64, system z 1986 roku, firmy Berkeley Softworks, inspirowany systemem Apple Macintosh, wprowadzał alternatywę w komunikacji użytkownika z komputerem, naśladując systemy z komputerów 16-bitowych. "Przed jego powstaniem jedyną alternatywą było wprowadzanie poleceń z klawiatury i komunikacja z systemem operacyjnym w trybie tekstowym. GEOS udostępniał pulpit z umieszczonymi na nim ikonami oraz kursor poruszany za pomocą joystika, klawiatury lub myszy. Centralnym punktem systemu był górny pasek, w którego skład wchodził zegar oraz menu poleceń. Poprzez rozwijanie poszczególnych pozycji menu uzyskiwało się dostęp do poleceń systemu. Już wcześniej istniały programy udostępniające takie możliwości, ale GEOS był pierwszym środowiskiem graficznym dla komputerów ośmiobitowych" (Wiki). Entuzjastyczne recenzje systemu, pojawiły się również w polskiej prasie, choćby w "Bajtku" numer 3 z 1987 roku, w którym pojawił się artykuł "GEOS czyli jak C-64 może dogonić Macintosha". My na ośmiobitowym Atari również doczekaliśmy się podobnych rozwiązań, ale żadne nie zdobyło szerokiego uznania czy popularności takiej jak GEOS na C64 (w 1987 roku połowa czytelników Compute!'s Gazette deklarowała jego używanie). Mamy do dziś Diamond GOS z 1988 roku, wzorowany na GEM z Atari ST, jest X-BOSS z 2000 roku, mamy rodzimy TRS Desktop z 2006 roku, a także wyśmienity GUI/GOS z 2011 roku. Warto dodać, że rok po premierze GEOS przystosowano również do modelu C128 i nieoficjalnie do Commodore +4, a dwa lata później dla Apple II. GEOS jest oprogramowaniem zamkniętym, ale na szczęście dla miłośników tego systemu, w 2016 roku miał miejsce przełom - Michael Steil opublikował na GitHub pełny kod GEOS-a dla kompilatora cc65, pozyskany w wyniku inżynieri wstecznej z wersji 2.0 dla Commodore C64. I to się stało przyczynkiem również do dzisiejszej publikacji na AtariOnline.pl, o czym opowiada autor ciekawego projektu, bazującego na kodzie Steila: GEOS-a dla Atari! Oto co opowiedział Maciej Witkowiak, znany jako YTM z grupy demoscenowej Elysium, sympatyczny autor tej niespodzianki: "(...) Jestem z obozu C=, ale dawno temu ktoś dał mi w prezencie Atari 65XE. Ostatnio wyremontowałem je, naprawiłem klawiaturę, rozszerzyłem do 128K, dokupiłem cartridge (programator EEPROM już mam) i testowałem sobie różne rzeczy - poczynając od Amaurote :). Zainteresowało mnie, jak nieco szybszy CPU i liniowa organizacja grafiki pomaga w rysowaniu prostokątów. I tak, krok po kroku, w dwa tygodnie, "niechcący" sportowałem GEOS 2.0 z C64 na Atari. Fakt, że nie zatrzymałem się na etapie rysowania prostokątów wynikał z praktycznego rozumowania: nikt nie będzie pisał nowego softu na GEOS dla Atari, ale jeśli jest szansa że przynajmniej część aplikacji i akcesoriów z C64 będzie działać to... warto sprawdzić. I udało się. O ile się orientuję, to nikt tego wcześniej nawet nie próbował. Minimalne wymagania to joystick i 128KB RAM (czyli 130XE), albo lepiej - rozszerzone do 320KB. Szczęśliwie organizacja pamięci jest podobna i port jest binarnie zgodny z GEOS 2.0 z C64: ładuje ten sam manager plików (DeskTop) i "grzeczne" aplikacje po prostu działają. Te "niegrzeczne" albo odwołują się bezpośrednio do sprzętu (sprajty, dźwięk), albo obchodzą funkcje systemowe dla zaoszczędzenia pamięci. Z tych nielicznych, ale najbardziej pożądanych - pakietu aplikacji producenta: GeoWrite, GeoCalc, GeoPaint, GeoPublish, GeoFile wszystkie będą miały jakieś usterki (choć GeoChart wydaje się działać dobrze). Po prostu wolnej pamięci jest tak mało, że stosowane są różne tricki, które obchodzą funkcje systemu albo bezpośrednio wpisują bajty na ekran, który ma inną organizację: na C64 bitmapa przypomina font, na Atari jest liniowa. Są też bardziej fundamentalne powody - na przykład Desk Accessory (mały program, który można wywołać z wnętrza większej aplikacji), Calculator nie działa - bo do obliczeń odwołuje się do ROM BASICa komputera C64. Za to z tych mniej pożądanych, ale najbardziej dostępnych, z tego, co można pobrać z tej strony, większość powinna działać bez problemu. W tej chwili wszystko działa z RAM-dysku - jeden XEX ładuje system i zawartość RAM-dysku do rozszerzonej pamięci. Nie wiem jak praktycznie można załadować na Atari ~260K plik. Na tyle się nie znam i po prostu wrzucam go w emulator. Wiem, gdzie moja wiedza i zainteresowanie się kończą - na pewno nie będę się zajmował sterownikiem dysków albo drukarek na SIO, może znajdzie się ktoś kto by chciał to pociągnąć. Cały kod źródłowy i informacje wylądowały na GitHubie. Nie mamy oryginalnych źródeł. Kod dostępny w sieci wziął się z reverse engineering. W 1998/99 byłem zafascynowanym techniczną stroną GEOSa - jak oni to zrobili. Na czysto, korzystając z dostępnej dokumentacji (podręcznik programisty, nagłówki ze stałymi systemowymi i mapą pamięci) zdezasemblowałem i skomentowałem jądro systemu, dodałem kilka własnych usprawnień i niewiele myśląc wypuściłem w świat jako GEOS2000 poprzez ftp.elysium.pl. Tam też wisiały (na mirrorze są nadal), obrazy dyskietek ze wszystkim, co wówczas miałem. Okazało się, że takie rzeczy są bardzo trwałe - nie wiem kto to zrobił, ale na anglojęzycznej Wikipedii "GEOS 8-bit" do dziś jest ilustrowany obrazkiem z mojego boot dysku, z koślawą ikonką, którą narysowałem do "MasterDiskRmv" (mój mały programik do zdejmowania zabezpieczenia zapisu) i domyślną drukarką CP-80. Kiedy kupiłem SD2IEC sprzedawca dorzucił mi plik ZIP z softem - tam był ten sam obraz dysku z komunikatem "GEOS 2.0 CRACKED BY MACIEJ W." Kilka lat temu Michael Steil (mist64) wziął te źródła, skonwertował na format ca65 i wykonał fantastyczną pracę: podzielił to wszystko na względnie izolowane funkcje (mnóstwo plików-segmentów) i napisał Makefile, który sprawnie generuje oryginalne binaria (kilka wersji) albo własne wersje. Jego praca jest dostępna tutaj. Napisał w pliku README to, czego i ja się trzymam, przekazując swoją pracę w ramach Public Domain: "For the underlying work on GEOS, please respect its license. The intellectual property added by the reverse-engineering and the subsequent improvements is in the public domain, but the authors request to be credited". Ostatni automatyczny preview znajdziecie tutaj (Artifacts na dole). Jest też kod źródłowy do zbudowania GeoWrite ze zmianami dla Atari, którego binarkę umieszczam w większym XEX. Jest do pobrania stąd. Do opowieści Maćka dołączamy jeszcze zapis spotkania z nim na zoomie. Początkowo to nagranie nie miało mieć charakteru publicznego, bo było spotkaniem roboczym, żeby zapoznać się z projektem GEOS-a na Atari, wyjaśnić, co tam jeszcze jest do zrobienia. Ale wyszło na tyle ciekawie i edukacyjnie, nie tylko dla potencjalnie chętnych do pomocy, że postanowiliśmy je opublikować: 2022-11-14 13:14 by Kaz
komentarzy: 42 |
crrn @2022-11-14 13:38:54 |
Kaz @2022-11-14 13:49:40 |
Dziękuję Maćku za możliwość pierwszej publikacji takiego fajnego newsa o GEOS-ie na Atari. Cieszy też sposób, w który do nas trafiłeś, czyli przez rekomendację innego pasjonata Commodore, czyli kolegi Brusha, który publikował u nas materiał o konwersji Amaurote, pozwolę sobie zacytować: "Chciałem przedstawić Maćka Witkowiaka (YTM/Elysium), który niedługo będzie chciał scenę Atari o czymś poinformować, a nie znam lepszego miejsca od atarionline.pl. YTM, poznaj Kaz’a. Gościa który prowadzi portal, którego Atarowcom szczerze zazdroszczę :)" Bardzo dziękuję za tę przesympatyczną opinię w imieniu swoim i wszystkich osób, które przyczyniły się do stworzenia i trwania AtariOnline.pl. |
Kaz @2022-11-14 13:55:08 |
Atarifann @2022-11-14 14:32:47 |
mono @2022-11-14 16:00:15 |
@ytm: W plikach: - kernal/hw/hw1b.s - kernal/start/start_atari.s wektory w RAM są ustawiane za wcześnie - trzeba je przenieść za konfigurację pamięci w PORTB. To powinno poprawić inicjalizację systemu na starcie. @crrn: Właśnie to jest potężna zaleta tego systemu - programy czysto napisane i niezależne od sprzętu powinny śmigać i na C= i na Atari :) |
Kaz @2022-11-14 16:01:35 |
Dorzuciłem jeszcze info na AtariAge, bo temat na pewno ciekawy dla anglojęzycznych, a przy okazji więcej osób jest w stanie pomóc w ewentualnym developmencie. https://forums.atariage.com/topic/343639.../ |
Brush @2022-11-14 16:38:46 |
pirx @2022-11-14 17:00:02 |
Kaz @2022-11-14 18:07:23 |
YTM @2022-11-14 20:58:49 |
@mono Dzięki, zanotuję to sobie pod issue #2 @crrn Tak, właśnie o to chodzi, że zobaczyłem szansę aby software z C64 działał bez zmian. Inaczej nie doprowadziłbym tego aż tak daleko. Jeśli chcesz napisać coś nowego to cc65/ca65 jest najprostszą drogą. W wyniku dostaniesz plik CVT (program+metadane) który wystarczy wrzucić w katalog pod ramdisk/ i przebudować XEX. W ogóle nawet polecałbym zacząć od cc65 i potraktować C jako asembler z makrami wysokiego poziomu. |
pin @2022-11-14 21:17:03 |
Ciekawa sprawa ogólnie, ale finalnie czarno to widzę jakoś. Tzn wątpię, by ktokolwiek to sensownie pociągnął i domniemam, że znaczącą przeszkodą będzie na dzień dobry brak pamięci (podstawowej) na podstawowe sprawy związane z I/O oraz obsługą jakiegoś sensownego filesystemu (sensowny = nie Atari dos...) |
Kaz @2022-11-14 21:31:56 |
Brush @2022-11-14 21:50:07 |
Brush @2022-11-14 21:52:20 |
I tu warto poczytać: https://www.lyonlabs.org/commodore/onreq... |
Kaz @2022-11-14 22:07:27 |
YTM @2022-11-14 23:14:06 |
Jeszcze mamy w elysium filety pl katalog tools/systems/geos_software Część jest dobrze opisana, ale np. co jest na tych wszystkich dyskach z kolekcji GeoThek to nawet ja nie wiem @pin GEOS potrzebuje tylko blokowego I/O. Na sterownik drugiego urządzenia blokowego jest już zarezerwowane 3K w rozszerzonej pamięci. Na tę warstwę jest nałożony filesystem Commodore DOS z metadanymi (ikony i daty) już niezależny od sprzętu - po prostu adresuje ścieżki (1-255) i sektory (0-255) po 256 bajtów. RAM dysk udaje takie urządzenie - ma kilka ścieżek po 128 sektorów. |
Kaz @2022-11-14 23:20:23 |
mono @2022-11-14 23:30:52 |
crrn @2022-11-15 08:57:57 |
Kaz @2022-11-15 08:59:02 |
Pin @2022-11-15 13:58:31 |
Cyprian @2022-11-16 01:26:17 |
Kaz @2022-11-16 02:02:19 |
Cyprian @2022-11-16 09:58:45 |
Szczepan @2022-11-16 10:39:12 |
zyga64 @2022-11-16 11:44:46 |
Cyprian @2022-11-16 12:48:26 |
@Szczepan do Atari XL to myszka od Atari ST lub tania pecetowa myszka USB plus przejściówka "MouSTer": https://www.atarionline.pl/v01/index.php... |
Jacques @2022-11-16 13:13:47 |
pirx @2022-11-16 16:08:46 |
Jacques @2022-11-16 16:44:56 |
pin @2022-11-16 22:27:48 |
as... @2022-11-17 04:57:07 |
Kaz @2022-11-17 08:10:08 |
Dracon @2022-11-17 10:23:02 |
Kaz @2022-11-17 12:03:19 |
Dzisiaj dodane przez autora: This seems to implement SIO access without resorting to ROM: https://www.horus.com/~hias/atari/#hipat... |
YTM @2022-11-17 12:19:17 |
Kaz @2022-11-17 12:47:39 |
0xF @2022-11-18 06:51:47 |
Mówił o myszce emulującej joystick, czyli z punktu widzenia Atari/C64 widocznej jako joystick. Działa z każdym programem obsługującym joystick. IMHO można dobrze zrobić taką myszkę - w Atari800 oprogramowałem taką emulację i w "Trzmielu" nieźle sobie radziła. Ale też można sknocić na kilka sposobów. |
pin @2022-11-20 13:01:58 |
Kaz @2022-11-20 22:00:20 |
Kaz @2022-11-26 08:40:50 |
ZbyniuR @2022-12-01 01:20:30 |
«« nowsze | starsze »» |
1. Biuro |
2. Grafika |
3. Muzyka |
4. Programowanie |
5. Magnetofon |
6. Stacja dyskietek |
7. DOS-y |
8. ROM-y |
9. Rozne |
A. Schematy |
B. Emulatory |
C. Edukacyjne |
D. Komunikacja |
E. Diagnostyczne |
F. Archiwizowanie i kompresowanie |
!info |
Z. Inne platformy |
«« nowsze | starsze »» |