XE Disk Simulator auf einem Atari ST 1. Beschreibung. Der XE - ST Disk Simulator ist ein Programm zu emulieren zweier XE Floppys auf einem beliebigen ST. Das Programm untersttzt den vollen Percom Standart fr jede Art von 5.25" und 8" Floppys bis 1040 KB. Praktisch nutzbar sind davon bei verwendung eines entsprechenden DOS 720 KB. Zu- stzlich kann man eine ICD kompatiebele Hard Disk emulie- ren. In diesem Fall kann die Disk stufenlos zwischen 18 und 65535 Sectoren Formatiert werden. Zur Vermeidung von ber- tragungsfehlern und den damit verbundenen unschnen Geru- schen ist der US-Befehl sowie die Speedy Befehle Schreib- vorgang beenden, automatisches Formatieren, Drive/Display Einstellung und Slow/Fast Einstellung eingebaut. Durch mit- gabe des Source Codes knnen auch weitere Befehle eingebaut werden. Bitte senden sie mir in diesem Fall eine Version (mit Source) zu so das ich ihren Patch in eine Offizielle Version bernehmen kann. Das Programm untesttzt Disketten folgender Bauart: Seiten: 1 und 2 seitig Tracks 35, 40, 77 und 80 Tracks pro Seite Sectoren: 18 oder 26 Sectoren pro Track Bytes: 128 oder 256 Bytes pro Sector. und ICD Harddisk von 18 bis 65535 Sectoren 256 Byte. Wahlweise mit und ohne Kontrolle der Einhaltung dieser Wer- te durch Compilerschalter (subrange Check). Geschwindigkeit im Vergleich zu anderen Floppys: ͻ Single Density 90KDouble Density 180K Ķ Lesen Schreiben Lesen Schreiben ͹ Atari 1050 1'22" 1'23" 2'05" 2'06" Speedy TB 1'05" 1'06" 1'55" 1'56" Speedy US TB 34" 32" 54" 49" Speedy HS TB 29" 28" 44" 42" Happy WS TB 44" 50" 1'12" 1'16" Happy US TB 36" 44" 56" 1'02" Turbo TS 44" 44" ----- ----- ST GFA 1'00" 1'00" 1'55" 1'49" ST Nec 1'20" 1'48" 2'39" 3'42" ST Ram 1'00" 58" 1'55" 1'49" ͼ Legende: Speedy : Speedy 1050 Happy : Happy 1050 Turbo : 1050 Turbo oder Speedy mit Turbo Emulator ST GFA : ST mit GFA Prog. aus Happy Computer Sonderheft 20 ST Nec : ST mit meinem Programm und Nec Floppy ST Ram : ST mit meinem Programm und Ram Disk TB : Track Buffer eingeschaltet TS : Turbo Speed auf einer Turbo 1050 WS : Warp Speed auf einer Happy 1050 US : Ultra Speed auf einer Happy 1050 oder Speedy 1050 HS : Hyper Speed auf einer Speedy 1050 2. Voraussetzungen auf dem ST. Das Programm luft mit einer ST minimal Version (512 KB Atari 354). Es knnen jedoch nicht alle Funktionen ausge- nutzt werden. Optimale Benutzung ist mit einer 1.5 bis 2 MB groen Ramdisk mglich. Die Daten werden nmlich auf Dis- kette, Harddisk oder (resetfester) Ramdisk verwaltet. Dies hat drei Grnde: 1.Einmal habe ich versehentlich mit dem Fu den Monitor- stecker (Mono) rausgezupft. Ergebniss drfte bekannt sein. 2.Bei Benutzung der Ramdisk ist das Programm nicht lang- sammer als bei Verwendung eines Arrays im Hauptspeichet. 3.Abspeichern der Daten aus einem Array auf die Disk dauert eine kleine Ewigkeit. Alle Funktionen knnen (wenn auch nicht optimal) genutzt werden mit: 1.1 * 1.5 bis 2 MB Ramdisk (je nach Typ) 2.1 * 20 MB Hatdisk o.. 3.1 * 800 KB Ramddisk + 1 * Atari 514 o.. 4.2 * Atari 514 o.. Alle Funktionen mit mit nur einer simulierten Floppy kn- nen genutzt werden: 1. 1 * 800 KB Ramdisk 2. 1 * Atari 514 o.. Eine 360 KB Floppy (XF 551) kann benutzt werden: 1. 1 * 400 KB Ramdisk 2. 1 * SF 354. Die Disketten men berigens FAT oder Hyper Formatiert sein so das sie mindesten 369151 bzw. 737792 Bytes frei haben (Gilt auch fr Ramdisk). Auf Floppyspeeder, Sector- buffer und Druckerspooler sollte verzichtet werden da sie im Hintergrund arbeiten und eventulel die bertragung st- ren knnen. 3. Voraussetzungen beim XE. Das wichtigse ist das XE ST Interface aus der Happy Compu- ter bzw Bit Byter Schaltplan B-160. Leider war der Schalt- plan in der Happy Computer zweideutig, genauer gesagt hat man vergessen die Steckerbelegungenanzugeben. Ich habe daher den Schaltplan komplett neu gezeichenet und dem Bit Byter User Club zur Verfgung gestellt. Dieses Interface arbeitet berigens auch mit anderen Rechner die eine RS232 Schnittstelle mit 19200 bps haben. Das zweitwichtigste ist ein ordentliches Dos. Um die vollen 720 KB benutzen zu knnen bentigt man Sparta Dos oder My Dos 3.18 oder 4.1 (leider ist mein My Dos 4.1 der Meinung eine Disk knnte 43 Seiten haben was zu einer Katastrophe fhrt). Sparta Dos emfielt sich allen Happy und Speedy Be- sitzern und My Dos den Turbo (wrg) Benutzern. Am besten arbeitet das Programm jedoch mit einem Dos das Ultra Speed beherscht. Dos berischt: Name mgliche Diskgren (in KB) Teoretisch 78 90 113 130 157 180 173 227 250 260 315 346 360 455 500 520 693 720 1001 1040 Atari Dos 1.0 90 Atari Dos 2.0S 90 (180) Atari Dos 2.0D (90) 180 Atari Dos 2.5 % 90 130 Atari Dos 3 90 130 Atari Dos 4 90 130 180 360 OSS OS/A+ 2.00 90 180 OSS DOS XL 2.30 90 180 K-Dos 90 Bibo Dos V3.0 R * % 90 130 180 Bibo Dos V5.0 F * % 90 130 180 Bibo Dos V5.0 N % 90 130 180 Bibo Dos V6.0 % 90 130 180 360 Super Dos Speedy * % 90 130 180 Super Dos Turbo % 90 130 180 Smart Dos 90 180 Top Dos 90 130 180 360 My Dos 3.18 + 90 180 360 720 My Dos 4.1 + 90 180 360 720 My Dos 4.3 ???? Sparta Dos 2.3 *+% 78 90 113 130 157 180 173 227 250 260 347 360 500 520 720 Sparta Dos 3.2 *+% 78 90 113 130 157 180 173 227 250 260 346 360 500 520 720 Sparta Dos 3.5 ???? * Dos untersttzt Ultra Speed + Dos untersttzt Subdirectorys % Dos kann Dos 2.5 Disketten lesen und schreiben Dos hat einen Harddisk Treiber. Ab Version 2.6 ist ein Harddisktreiber der eine ICD Hard- diskt emuliert vorhanden. Diese kann ab Sparta Dos 3.2 ver- wendet werden. Dann ist es mglich die Disketten in 1 Sec- torschritten von 18 bis 65535 Sectoren zu formatieren. Mit My Dos luft der Treiber leiter nicht (ihr erinnert euch 43 Diskettenseiten). Da ICD jetz OSS aufgekauft hat drfte Sparta Dos sowieso das Dos der Zukunft sein Kleine Dos Geschichte: Diese berwltigende Auswahl von Diskettenformaten und Dos Versionen ist mglich durch den sogenanten Percom Block der von Atari (man galubt es kaum) fr die 815 (Doppelfloppy mit 2 * 180 KB) enwickelt wurde. Auch ein dazu passendens Dos hat OSS im auftrag von Atari dazu entwickel. Nur warum dies in 2 Versionen (Dos 2.0S fr Singel Density und Dos 2.0D fr Double Density) geschehen ist kann ich nicht verstehen zumal sie sich nur in der Ladeadresse des DUP und der Versionsnu- mer unterscheiden. Diese Dos hat jedoch zwei Nachteile: 1. es ld den Percom Block nur bei einem Reset und kann nur dann einen Density Wechsel feststellen (Gilt auch fr OS/A+ und DOS XL). 2. Das 2.0D DUP ist nicht zu bekommen. Und ohne kann man nur auf einem Laufwerk Double Density fahren. Zum Glck haben alle anderen Hersteller von Laufwerken und Erweiterungen (auer Atari selbst) sich an die von Atari vorgegebene Norm gehalten. Und mit der XF 551 ist dann auch Atari zu seiner eigenen Norm zurckgekehrt. Nur mit der zweiten Norm die sich auf dem Floppymarkt duchgesetzt hat konnten sie sich nicht anfreunden der US (Ultra Speed) Norm. Ich zumindest halte mich auch daran, im Gegesantz zu einem gewissen Turbo Modul (wrg). 4. Bedienung: Nach dem Laden bietet das Programm 5 Menuoptionen an: Aktivieren Desaktivieren Schreibschutz Printer ist ... Ende Auf eine GEM Schnittstelle wurde mit Absicht verzichtet. Bei dem in der Happy Computer verffentlichtem GFA Basic Pro- gramm mit voller Gem Untersttzung reicht schon der leisete Ruck an der Maus um bertragungsfehler zu erzeugen. Unter diesen Umstnden und der Tatsache das es erst fnf Menuop- tionen sind habe ich auf GEM verzichtet und eine reine TOS Anwendung geschrieben. Die Bedienug ist aber auch so recht leicht. Es reicht wenn man den entsprechenden Buchstaben auf der Tastartur drckt. Aktivieren: Mit dieser Optione wird ein Laufwerk aktiviert. Dies ent- spricht dem einlegen oder wechseln einer Diskette sowie den einstellen der Laufwerksnummer. Hierzu mu zuerst die Physikalische Nummer des zu aktiviere- den Laufwerks eingegeben werden. Dies entspricht bei einem echten Doppellaufwerk dem Schlitz in den wir unsere Disk stecken. Um Verwechslungen mit der logischen Nummer zu ver- meiden habe ich das erste Laufwerk 'A' und das zweite Lauf- werk 'B' genannt. Als zweites mu die logische Nummer angegebeben werden. Dies ist die Nummer unter dem dar XE nachher das Laufwerk anspre- chen soll. Dies entspricht also der Nummer die, bei echten Laufwerken, hinten im Laufwerksgehuse eingestellt werden kann. Sie kann zwischen 1 und 8 liegen. Beachten sie bitte das 1 das Bootlaufwerk ist und daher ein Dos enthalten soll- te und 8 meit fr die Ramdisk reseviert ist. Als letzteswird der Dateiname, unter dem unsere Disk auf einer ST-Disk, ST-Ramdisk oder ST-Harddisk gespeichert wer- den soll, eingegeben. Die ST-Disk, ... ist sozusagen die Diskettenbox aus der wir, ber den Dateinamen, eine Disk auswhlen und einlegen. Wird nichts eingegeben wird der letzte Dateiname bernommen. Nach dem Laden werden die Namen 'DISKA' und 'DISKB' benutzt. Der Extender '.DSK' wird auto- matisch angehngt. Normal: eine Diskette besteht aus drei Teilen: 1. Physikalischer Name: A oder B 2. Logischer Name: 1 bis 8 3. Datei Name DISKA.DSK C:\SPARTA.DSK etc. Alle drei Namen sind jederzeit lesbar auf dem Monitor sicht- bar. Wenn ein Dateiname noch nicht vorhanden ist wird man aufge- fordert eine neue Disk zu formatiern. Man kann alle vier Werte (Seiten pro Disk, Tracks pro Seite, Sektoren pro Track und Bytes pro Sektor) in den in Kapitel 1 genannten Grenzen einstellen. Dabei werden die Werte bei jedem Tastendruck, auf die entsprechende Taste, auf den nchtmglichen Wert geschaltet. Wenn man jedoch (ab version 2.6) Harddisk whlt wird man aufgefordert die gewnschte Anzahl von Sectoren einzugeben. In diesem Fall hat die Disk nur noch eine Seite und einen Track und ist immer Double Density. 4 Sectoren entsprechen einem Kilobyte 4096 Sectoren einem Megabyte. Gibt man einen Werd ein der einer normalen disk (z.B. 720 fr eine DD Disk) entspricht kann Sparta Dos Disk sogar mit DUPDSK auf eine Normale Disk kopieren. Beachten Sie hierbei das der Simulator zwischen zwei Forma- ten unterscheidet. Format 1 ist das Format der momentan "eingelegten" (also aktiverten) Diskette und Format 2 ist Format das beim nchsten Formatiern benutzt wird. Die Befeh- le des Percom Blocks beziehen sich immer auf Format 2, gele- sen und geschrieben wird mit Format 1. Diese Technik wird berigens auch in der Speedy verwendet und verhindert Daten- verlut und abstrze bei falscher Verwendung des Percom Blocks. Desaktiviern: Beim Desaktivieren mu nur der pysikalische Name (A oder B) eingegeben werden, Die Disk Datei wird geschlossen und die logische Nummer auf 0 gesetzt. Die wirkung ist als ob man die Diskette entnimmt und das Laufwerk ausschaltet. Schreibschutz: Auch hier mu nur der Logische Name eingegeben werden. da- nach wird eine schreibgeschtzte (simulierte) Diskette nicht schreibgeschtzt und umgekehrt. Die simulierte Diskette verhlt sich dann genauso wie ein echtes Laufwerk sich verhlt wenn eine schreibgeschtzte Disk eingelegt wird und nicht wie ein schreibschutzschal- tersich verhlt. D.H wird eine nicht schreibgeschtzte Dis- kette aktiviert geht der schreibschutz aus, wird eine Schreibgeschtzte aktiviert geht er an. Printer ist ... Zuerst wird gefragt ob sie berhaubt einen Druckerkanal ha- ben mchten. Wenn sie mit Ja geatwortet haben werden Sie gefragt ob sie ein LF (Line Feed, Zeilenvorschub) nach dem CR (Carriage Return, Zeilenecklauf) haben mchten. Das vom Atari gesensdete CR $9B wird automatisch in ein Drucker CR $0D umgewandelt wie dies z.B. bei der Atari 850 bzw 850 XL Schnittstelle blich ist. Je nach Stelleung der DIP Schalter bentigt der Drucker jedoch noch ein LF nach dem CR. Da nun der Drucker am XE meit so gestellt ist das er kein LF ben- tigt beim ST hingegen so eingestellt wird das er ein LF be- ntigt habe ich diesen Umschalter einbebaut. Zum Schlu wird noch nach einem Dateinamen gefragt. Gib man hier nichts ein wird automatisch PRN: fr Druckerausgabe eingesetzt. Am sonsten kann man die Daten auch auf Disk speichern. 5. Tips fr Selbstprogramierer. Das Programm an sich drfte wohl grtenteils selbeskommen- tiernt sein. Ein Austruck mit LISTPAS drfte dem erfahrenen Programierer mehr sagen als 1000 Wortedie ich hier verlie- ren knnte. Ich mchte daher nur etwas zum internen Aufbau der Diskette sagen. Die XE-Disk-File ist eine Random Acces Datei die nur aus den reinen Sectorenbesteht. Abhngig von verwendeten Format sind sind die einzelene Felder 128 bzw 256 Byte lang. Die File beginnt mit Sector 0 der vom XE nicht benutzt wird. Dann folgen die eigentlichen Datensectoren. Ihre Anzahl ist abhngig von Format, z.B. 720 bei einer normalen SD oder DD Diskette. Da der Sector 0 auf Normalen Floppys nicht exi- stiert (eine Speedy sendet z.B. wenn man Sector 0 mchte die Zero Page ihres Speichers) speichere ich dort das Format der Diskette und den Schreibschurzschalter. Die Bytes das Sector 0: 1 Bytes pro Sector Low 2 Bytes pro Sector High 3 Sektoren pro Track Low 4 Tracks pro Diskettenseite 5 Diskettenseiten 6 Schreibschutz 0=ausgeschaltet 1=eingeschaltet 7 ab V 2.6 Sektoren pro Track High (nur HardDisk) bis 64 Reseviert fr Erweiterungen. bis 128 Frei. Bedenken Sie bitte das bei SD nur 128 Bytes zur Verfgung stehen, d.H Ich habe mir die Hlfte reseviert. Zum Beispiel ist Byte 7 bis V2.5 unbenutzt, wird aber ab V2.6 vom Hard- disk Treiber bentigt. Der Rest ist frei fr andere Benut- zer. Der Sector 0 lt sich berigens auch vom XE aus laden und schreiben. Wer jedoch in meinen 64 Bytes (insbesondere den ersten 7) herumpfuscht mu mit Datenverlut rechen. Die Daten werden nur beim Aktiviern der Floppy gelesen und beim Formatiern und Schreibschutz setzen geschrieben. Aber auch das kann sich in spteren Versionen ndern. 6.Tips fr Umstricker. Das Programm ist in ST:Pascal plus V2.02 von CCD D.Beyel- stein geschreiben (damit habe ich die Copyrightauflagen von CCD erfllt). Meine Copyright Auflagen sehen nlich aus. Ich mchte nmlich das ein Satz oder Vermerk im Tilelbild oder Menu erscheint der etwa wie folgt aussieht: Origrinalprogramm von Martin Krischik programiert auf einem Atari ST mit ST:Pascal plus. Also das wirklich wichtige habe ich mal fett gedruckt. Aber nun zu den Tips. Das Programm ist grtenteils in Standart Pascal geschrie- ben. Soweit es mir sinnfoll erschien habe ich auf ST Spezie- fische Befehle verzichtet. Nur bei der Steuerung der RS-232 Schnittstelle habe ich direckt auf das Bios und Xbios Zuge- griffen. RS 232 Schittstellen Befehle: rsconf(0,0,...); Setzt Schittstelle auf 19200 bps ohne Handshake. Fr IBM user sieht es hier finster aus (max. 9600 bps). Bei kompatie- blen knnte man glck haben (z.B. Comodore PC) bconstat(1) <>0 Zeichen im Emfangsbuffer bconin(1) Holt ein BYTE von der Schnittstelle. bconin_c(1) Wie bconin nur rckgabe als CHAR bconout(1,byte) Sendet ein BYTE ber schnittstelle. bconout_c(1,CHAR) wie bconin nur CHAR wird gesendet. Zahlen mit einem $ am Anfang sind Hex. Das nchste Problem drfete die Bildschirsteuerung sein: getrez Hold Bildschimauflsung. setscreen_rez setzt Bildschirmadressen und Auflsung. Bei Farbe wird automatisch auf 80 Zeichen umgestellt. setcolor. denkt euch selbst ein paar schne Farben aus. select_color Schreibfarbe select_background Hintergrundfarbe wrap_off word Warp aus gotoXY Ratet mal end_of_screen lschen bis ... inv_on Invers an inv_off Invers aus clear_home Bildschirm lschen save_cursor cursor position merken restore_cursor gemerkte position setzen delete_line Zeile lschen Ich gaube das es leicheter ist diese Programm auf einen Ami- ga umzusetzen als durch das GFA Basic Programm der Happy Computer durchzusteigen und wnsche allen umstrickern und Benutzern viel glck und Spa mit dem Prgramm Martin Krischik Blser Str. 22 4390 Gladbeck Tel. 02043 648323 Spendenkonto: Deusche Bank Gladbeck KTO. 4034898 BLZ. 42070062 Spenden zwischen DM 10.-- und DM 20.-- werden gern entgegen- genommen.