Hallo.
Hat jemand einen Rechner mit dem UCSD p-System in Betrieb, und vielleicht Software hierzu im p- code vorliegen? Eigentlich sollte es doch eine ganze Menge geben, das P System war ja auf Portabilität ausgelegt.
Gruß
Stephan
UCSD p-System
-
-
Viel zu finden ist auf http://www.threedee.com/jcm/psystem/ bzw. http://www.threedee.com/jcm/usus/ , einfach mal anschauen.
Davon abgesehen habe ich auf einer meiner Seiten ein sehr seltenen ADA-Compiler ("L1 ADA") auch anzubieten (http://www.z80.eu/ADA.html).
Und siehe auch meine UCSD Pascal Seite, die passt auch dazu ( http://www.z80.eu/UCSD.html ).Nachtrag: Udo Munk hat mit seinem z80pack auch UCSD Disketten und Software, siehe http://www.autometer.de/unix4fun/z80pack/#ucsd_quick
-
Passt jetzt nicht ganz: ich habe ein USDC Pascal für den alphatronic P2, gibt's da Interesse dran?
Gruß, Jochen
-
Zitat
"Passt jetzt nicht ganz: ich habe ein USDC Pascal für den alphatronic P2, gibt's da Interesse dran?"
Jaaaaa! Zumindest um es bei fritzeflink zwischenzuparken, bis ich selber einen P2 habe
-
Ok, wie bekomme ich die kopiert? Oder kann ein Image erstellen? Ich habe einen P2L mit 2 Laufwerken und einen PC mit 5,25 Zoll Laufwerk, Images wäre da das einfachste, Kopien gingen aber auch (habe noch ein paar NOS Disketten).
Gruß, Jochen
-
Hallo Jochen,
lade Dir Teledisk http://www.z80.eu/transfercpm.html auf Deinen PC und ziehe die Images von den Disketten.
Der P2L verwendet Doppelseitige Disketten (DS), Double Density (DD), mit 16 Sektoren pro Spur a 256 bytes, 40 Spuren.
Am besten geht das Image-Erstellen mit einem 360K (DS-DD)-Laufwerk, z.B. an einem XT-Kompatiblen oder so einem Laufwerk im AT.
Gruß, Robert
-
-
Hier meine ersten Versuche mit Teledisk: 4 Disketten mit USCD Pascal für den alphatronic P2 (nicht PC!)
Wäre nett, wenn ich eine Rückmeldung bekommen würde, ob das funktioniert hat oder ob ich noch was an den Einstellungen ändern muss. Ich habe eine 96 TPI Laufwerk verwendet, Teledisk hat die Disketten als 48 TPI erkannt und klaglos eingescannt.Gruß, Jochen
-
Zumindest TDCHECK schreibt dass alles ok ist. Jetzt bitte von den Images Disketten erstellen und am P2 testen.
-
Ist die P3 eigentlich kompatibel zur P2?
-
Ich hoffe, dass sich H. Wiertalla da noch genauer äußert (und auch die Diskettenimages ausprobiert ),
vom P2 gab es verschiedene Modelle. Jochens P2L ist zwar dem P3 zumindest von der Speicherausstattung ähnlich (64K), aber das sagt ja nicht viel.
Sicher ist jedenfalls, dass das Diskettenformat anders ist (P2L hat DS/DD mit 320K, P3 hat DS/QD mit rund 800K)Robert
-
-
Aus den NewsGroups...
I don't know which 8080 systems they used at UCSD in 1978 for implementing the p-System.
The only 8080 system I'm certain the systems was implemented for was the Heathkit H8.
However, almost 40 years later I implemented version I.5 just for fun on the Altair system.A short demonstration video:
https://youtu.be/nl5CA7HedBQDisk images including boot/BIOS source are available here:
http://www.autometer.de/unix4fun/z80pack/ftp/altair/Enjoy,
Udo -
Hallo P2 USER und Interessierte,
das .zip File habe ich mir mal runtergeladen und von .td0 auf .img gewandelt.
Wenn ich zu Hause bin, danach teste ich die Files auf eine echte Alphatronic P2 (P2U, P2S ...) mal durch.Aber aus einen ersten Hexa-Dump ist folgendes zu erkennen.
- A) jede Diskette hat einen sogen. Batch-Block. Dieser kann im Moment nur mit dem P2 MOS Befehl "B(cr)" gestartet werden! Weitere Hintergründe stelle ich später dar zum Verständnis
- B) Mit dem Batch-Block wird ein Lader das TA Pascal in den Seicher zu bringen.
- C) beide Blöcke sind im sogen. I7 Floppymode zu interpretierenden. Das erstes Byte ist als Längenschlüssel zu beachten. Ev. meine .pdf zum P2- Floppydisktreiber zu studieren.
Ob hier nur der Speicher für eine P2 ( also 48kB) nur von 4000h bis FFFFh nutzt, habe ich noch nicht geprüft.
Weitere Infos berichte ich noch.Grüße
Helwie44 -
Wie angekündigt, stelle ich intensiv mal die Startsequenzen bei einer MOS-P2 dar.
Klar, sicher bei anderen T Startdisketten sehen die Sequenzen also auch die ersten Sectoren unterschiedlich aus.Aus diesem Beispiel erkennt man viele Informationen über den Monitor (MOS) und über die Arbeitsweise.
Bootblock:
TA Pascal TA_105.img Teil-Dump HEXA P2 Alphatronic DisketteCode....Track = 0, Sec = 1, Side= 0 unten) ....00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 0123456789abcdef ....----------------------------------------------- ---------------- 00: 30 49 34 33 30 30 2C 34 33 46 34 0D 53 34 30 30 /0I4300,43F5.S400/ 10: 30 20 30 30 20 34 30 20 30 30 20 46 44 20 46 46 /0 00 40 00 FD FF/ 20: 20 30 32 0D 55 34 33 30 30 20 46 43 30 30 0D 00 / 02.U4300 FC00../ 30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Das ist der P2-MOS Bootblock.
Mit dem Befehl "B(cr)" wird der Block in den MOS RAM (1800h ..1BFFh) abgelegt
und aus der MOS-Befehlliste ausgeführt.Dazu ist das erstes Byte hier 30h der I7 Längenschlüssel, also kein Teil eines Befehls!
Nur die folgenden Nettobytes ab 49h also "I" werden verarbeitet.
Im Klartest steht hier an:Code
Alles anzeigen(MOS Befehl)....................: Bedeutung =========================================== I4300,43F5(0dh=CR)..............: Input einlesen auf 4300h ab der letzten Position einer Sektorkante (Anfang) vom RESET MOS ist das LW 0, Seite 0, Track 0, Sector 1 eingestellt! S4000(0d=CR)....................: Substitut der Speicherstelle 4000h 00_ (_ soll ein BLANK sein).....: die Speicherstelle soll mit 00 (immer HEXA Eingaben) mit Blank übernehmen 40_.............................: die Folgestelle wird mit 40 Hexa gesetzt 00_ FD_.............................: hier immer die Eingabe mit BLANK übernehmen und Speicherstelle eins weiter!! FF_ 02(0d=CR).......................: 02 mit CR wird noch übernmmen aber der Befehl endet! U4300 FC00(0d=CR)...............: USER Start auf 4300h mit einer Gerätemaske hier FC00h (siehe MOS Beschreibung) ................................: der CODE von 4300h wird ausgeführt - fertig hier.
Nach dem "B(cr)" ist der 1. Sectror angelesen mit den Batchbefehlen. Die Position für die folgende IO (Floppylesen
) wird der nachster Sector - hier 2 mit dem I4300 43F5 verwendet. Dieser CODE (Sectoranfang: beachte im I7 Mode)
steht dann ab 4300h im Speicher. Mit USER U4300 FC00 wird dieser PASCAL Loader ausgeführt.Wer z.B ein DU.COM (Disk- Dump) im cp/m System hat - kann sehr einfach die Startsequenzen anschauen.
Danach schauen wir uns den TA-Pascal Loader aus dem Sector 2, Track 0, Side 0 genau an.
Die TA Pascal Disketten sind im .zip - Paket als einseitig mit DD 40 Track x 16 Sectoren x 256 Byte abgeegt gewesen.
Grüße Hewie44 -
Vielen Dank helwie44 †für die hervorragende Erläuterung. Würde das Ganze auch auf einer P3 laufen?
-
Leider nicht direkt startbar.
Aber wenn ich an meine P2 komme - nächste Tage - könnte ich mir vorstellen die Floppydiskaufrufe von P2 (call 0814h, call 0800h ) auf den P3/P30 ( call 055h, call 058h) und das Fehler-Flag von JNC auf JZ mal um zu patchen - mal sehen.
Sonst schaue ich sowie so in den CODE auf andere P2 zu P3 Sondereigen vorhanden sind.
Auch der Batchblock muss anders aus sehen, weil eine P3 immer den 1. Sector auf den Speicher 4000h geladen werden.
Aber ich meine alles kein Problem.
Viele Grüße
Helwie44 -
Von der Disk 105 als .img habe ich hier den TA Alphatronic P2 P-Loader mal isoliert und hier vorgestellt.
Die .td0 Files habe ich ganz einfach mit dem HxC - GOTEK Foppy-Emulator hin und her umgeformt.
Dann einfach ein .hfe FILE auf einen USB-STICK geschoben und schon gehts los in meiner P2U.
Den DUMP habe ich mit vielen Kommentaren versehen - daher ist eigentlich ales was hier ablaufen soll
leicht zu sehen und zu verstehen. Es gehts los:Code
Alles anzeigenA>SID SID VERS 1.4 #D4300,43FF The P-loader from track = 0, sector = 2, side 0 H. Wiertalla Sep-2017 -hewie44 If from TA P-PASCAL Disk CAQ105 - pur 8080 CODE! With .B(cr) in Drive 1 or A: startet in 48 kB Memory in a Alphatronic P2. 4300: C3 A0 43 43 6F 70 79 72 69 67 68 74 20 28 63 29 ..CCopyright (c) 4310: 20 54 41 20 31 39 38 31 05 42 6F 6F 74 07 3E 82 TA 1981.Boot.>. 4320: CD 00 08 D0 21 18 43 CD 5E 00 2A 04 00 F9 3E 84 ....!.C.^.*...>. 4330: 16 04 1E 00 6B CD 14 08 DA 24 43 01 00 82 11 00 ....k....$C..... 4340: 08 CD 1E 43 00 00 00 00 00 00 00 00 00 00 00 00 ...C............ 4350: 00 01 00 FD 11 FF 02 CD 1E 43 21 00 FD 11 F0 FF .........C!..... 4360: 19 F9 EB 21 00 02 E5 21 08 00 E5 21 05 00 E5 21 ...!...!...!...! 4370: 01 00 E5 21 05 00 E5 21 00 02 E5 21 08 00 E5 21 ...!...!...!...! 4380: 28 00 E5 D5 2A 00 40 E5 2A 02 40 E5 2A 00 40 E5 (...*.@.*.@.*.@. 4390: 00 00 00 00 00 C3 00 82 0E 07 CD 49 00 00 00 00 ...........I.... 43A0: 21 C0 43 CD 5E 00 CD 43 00 FE 31 DA 98 43 FE 35 !.C.^..C..1..C.5 43B0: D2 98 43 E6 07 32 FF FF C3 2A 43 00 00 00 00 00 ..C..2...*C..... 43C0: 34 0C 1B 16 0B 1E 55 43 53 44 20 50 61 73 63 61 4.....UCSD Pasca 43D0: 6C 20 4C 6F 61 64 65 72 1B 16 0D 1B 48 6F 77 20 l Loader....How 43E0: 6D 61 6E 79 20 64 72 69 76 65 73 20 28 31 2E 2E many drives (1.. 43F0: 34 29 20 3F 20 00 00 00 00 00 00 00 00 00 00 F5 4) ? ........... BEGIN: 4300 JMP 43A0 ; jmp START_P over txt .. ; "Copy..... txt BOOT_txt: 4318 05"Boot",BEL ; see HEXA DUMP F_read: 431E MVI A,82 ; read code = 82h 4320 CALL 0800 ; DENTRY used last REG = L 4323 RNC ; ok no erro Floppy retry: 4324 LXI H,4318 ; BOOT_txt is 05 = lng, "Boot" 4327 CALL 005E ; P2 MOS TXCO 432A LHLD 0004 ; get from EPRO 432D SPHL ; set STACK for MOS- P_loader 432E MVI A,84 ; pos Floppy cod 84h 4330 MVI D,04 ; sec=4 4332 MVI E,00 ; trk=0 4334 MOV L,E ; selected drive=0 and side=0 MOS logic Unit ; 0 for drive is 1 or ater A: 4335 CALL 0814 ; SENTRY Floppy driver 4338 JC 4324 ; is error !! retry 433B LXI B,8200 ; MEMORY to load first P-system BOCK 433E LXI D,0800 ; lng = 800h is 2kB 4341 CALL 431E ; 4344 NOP ; nop s for patch...??? 4345 NOP ... ; is only nop 434F NOP 4350 NOP ; get the P2 BIOS for P-System (from Floppy) 4351 LXI B,FD00 ; to MEMORY = FD00H 4354 LXI D,02FF ; lng = is 3 physica sec pro 100h = 256d !!!! 4357 CALL 431E ; call F_read , is ok if here ; ------------------------------------------------------- ; ; now init P-SYSTEM ENTRY 8200H ; see here -hw 435A LXI H,FD00 435D LXI D,FFF0 4360 DAD D ; HL <: FD00 +FFF0 4361 SPHL ; SP unter FD00h P-System 4362 XCHG 4363 LXI H,0200 ; if you have a P-System GUIDE ????? 4366 PUSH H 4367 LXI H,0008 436A PUSH H 436B LXI H,0005 436E PUSH H 436F LXI H,0001 4372 PUSH H 4373 LXI H,0005 4376 PUSH H 4377 LXI H,0200 437A PUSH H 437B LXI H,0008 437E PUSH H 437F LXI H,0028 4382 PUSH H 4383 PUSH D 4384 LHLD 4000 4387 PUSH H 4388 LHLD 4002 438B PUSH H 438C LHLD 4000 438F PUSH H 4390 NOP ; this is the PASCAL STACK methode... 4391 NOP 4392 NOP 4393 NOP 4394 NOP 4395 JMP 8200 ; GOTO 8200H in P-System ; >>> in P-SYSTEM <<< CI_error: 4398 MVI C,07 ;BELL 439A CALL 0049 ;out CO direct from REg C 439D NOP 439E NOP 439F NOP ; START for ask to many DRIVER .... START_P: 43A0 LXI H,43C0 ; 34h is =ng first byte after to TXCO 43A3 CALL 005E ; see WEB a DISPLAY - pdf 43A6 CALL 0043 ; CI get ony a char 43A9 CPI 31 ; is < 43AB JC 4398 ; not in range a char CI_error 43AE CPI 35 ; is > 4 43B0 JNC 4398 ; CI_error 43B3 ANI 07 ; make bin 1 to 4 ony MASK 43B5 STA FFFF ; save many driver !!! 43B8 JMP 432A 43BB NOP 43BC NOP ; FINI P_loader -hw 43BF NOP
Wer ein UCSD P-Pascal Handbuch hat solte es zu Hand nehmen. Ich habe damit bisher nichts wirklich gemacht.
Die Handhabung ist für mich zu andere Entwicklungswerkzeuge sehr ungewöhnt.
Wer aber übt - wird schon damit erfolgreich sein.
Ich meine, dass ich noch ein cp/m 8080 MT-PASCAL Compiler habe. Ich schau mal was der so leisten kann?
Grüße
Helwie44 -
Vielleicht kann ich da aushelfen. Ich habe die komplette Dokumentation, ca. 780 Seiten in drei Teilen: Installation Guide, User Guide, Internal Architecture. In letzteren habe ich folgendes gefunden (in den spitzen Klammern der Stack <vor>:<nach> der Anweisung):
Code0..31 <>:<word> SLDC Short Load Word Constant. Push the OP-Code with the high byte zero. 200 <byte-ptr,word>:<> STB Store Byte. Store byte TOS (Top of stack) into the location specified by byte pointer TOS-1.
Gruß, Jochen
-
Für den schnellen Einstieg sofort im Zugriff:
Zu dem UCSD P-System habe ich hier einige Handbücher als .pdf's mit guter Qualität gesichtet.
Einstieg in die HANDHABUNG:
http://pascal.hansotten.com/up…es_begUCSDpascal_1980.pdfInternal_Architecture:
http://pascal.hansotten.com/up…Internal_Architecture.pdfp-System Program Development:
p-System Program Development Softech p-System 1983
http://pascal.hansotten.com/up…Program%20Development.pdfp-System_OS:
p-System Operating System Softech p-System 1983
http://pascal.hansotten.com/up…ucsd/docs/p-System_OS.pdfDazu ein guter Überblick hier - fast für jeden der sich damit Schlau machen könnte.
http://pascal.hansotten.com/category/ucsd-p-system/Das TA P-System mit dem BIOS ( für die Aphatronic P2 - auf 48 kB RAM, 8080 CODE) kommt noch als (DISASSEMBLING)
später.
Helwie44 -
Ich habe die pdf-Version mit meinem Handbuch verglichen, die pdf-Version ist umfangreicher und vermutlich etwas neuer als mein Handbuch, bei mir fehlen z. B. Hinweise zum 68000 (weil es den noch nicht gab?) und in der pdf-Version sind einige Abschnitte dazu gekommen. Mein Internal Architecture Handbuch hat ja auch nur 140 Seiten gegenüber 470 Seiten PDF. Vielen Dank an helwie44, dann kann ich mir die Mühe sparen, die gebundenen Handbücher zu scannen.
Gruß, Jochen
-
Wie angekündigt, habe ich hier noch das TA Alphatronic P2 p-Pascal PBIOS Listing ( DISASSEMBLING).
Der Anpssungsteil vom P-System zu einer TA P2 ist eigentlich klein. Ich meine, in den vorherigen Beiträge sind in den .PDF's viel Informationen - auch zum PBIOS - was man anpassen könnte und welche Funktionen mit der EINSPRUNGS-Leiste realisiert wird.
Ich habe mich aber bisher noch nicht tief eingegraben.So habe ich den BIN-CODE ab 0FD00H - 0FFFFH als .txt zu sofortigen runterladen beigefügt.
Nur hier einen kleinen Auszug - Listing ganz unten.Code
Alles anzeigen;; this is the PBIOS for the TA P-PASCAL ; JMP Table for the Alphatronic P2 MOS- Interface ; see WEB-Site H. Wiertalla -hewie44 ; ; JMP TAB here FD00 C354FD JMP init_Psystem ;0 FD03 C386FD JMP stop_CPU ;1 FD06 3E00 MVI A,000H ;2 FD08 C9 RET FD09 C3B2FE JMP csst_C ;3 FD0C C3B8FE JMP ci_spez ;4 FD0F C3A5FD JMP get_Kmode ;5 FD12 C302FF JMP AFF02 ;6 FD15 C307FF JMP AFF07 ;7 FD18 C30CFF JMP AFF0C ;8 FD1B C311FF JMP AFF11 ;9 FD1E C321FF JMP FLO_read ;A FD21 C31CFF JMP FLO_write ;B FD24 C317FF JMP FLO_recal ;C ; FD27 00 NOP ;D FD28 00 NOP FD29 C9 RET
Dazu eine erste Version als DISASSEMBLING dazu (unten). In meiner kleinen WEB-Sammlung sollte es zwei .pdfs für den klaren Durchblick sorgen.A) MOS P2 Displaytreiber und
http://wiertalla.de/pdf/MOS Schnittstellen Level 2_Bildschirm- und Tastatur Treiber.pdfB) MOS P2 Floppytreiber ach ja, evtl. die
C) MOS P2 Beschreibung selbst!
Wer suchet - der findet. Die gewollten Links sind nicht vollständig( richtig) ? Sonst im WEB suchen, wird schon.
Viele Grüße und viel Freude beim Testen....
Helwie44 -
Ein freundlicher Nutzer des f64 hat mir den Link zu UCSD Pascal für den CBM 8096 geschickt. Vielleicht hat jemand Lust es auszuprobieren, eine solche Maschine besitze ich leider nicht. Im 2. Archiv, "USUS.zip" sind ein paar dutzend Beispielprogramme, u.a. ein paar Spiele wie das Colossal Cave Adventure, eine Tabellenkalkulation, Terminalprogramme, auch "BANNER" für Pascal ist dort. Bei Gelegenheit muss ich die Sachen mal per RS232 auf die Sage schieben.
-
Grade das hier gefunden. Noch nichts ausprobiert. Hab leider noch gar keine Ahnung von den Kisten. Weiss jemand prinzipiell, wie man diese Images (am PC) schreibt?
-
Wahrscheinlich wirst Du mit den Mac-Disketten am PC gar nichts anfangen können, sind ja keine HD Disketten (1.44MB). Höchstens mit einem Emulator.
-
Höchstens mit einem Emulator.
Kann eine Software /Emulator denn unter Windows 400/800 KB Formatierung irgendwie umsetzten?
Die Mac Laufwerke bis zum 'Superdrive' haben doch durch unterschiedliche Drehzahl Geschwindigkeiten (gesteuert von Via) diese Formatierungsdichte
erreicht bei den DD (oder abgeklebten HD)-Disketten.
Habe zu Emulatoren auch schon einiges im Netz gelesen. Aber nichts zu dieser Drehzahl-Hürde.
-
Ein Emulator muss nicht zwangsweise ein Laufwerk so emulieren, dass es dem realen Laufwerk entspricht. D.h. ein Windows-Emulator eines Macintoshs kann bspw. mit einem reinen Sector-by-Sector Image arbeiten, oder eventuell auch alternativ mit dem damaligen Disk-Image-Dateiformat von Apple.
-
Ist zwar ein bißchen spät nach den letzten Einträgen, aber ich müsste noch einen USCD-Compiler für Commodore haben (bin halt neu hier, siehe mein Hilferuf unter CBM 720). Der Compiler war für CBM 8032 oder 8096 und ich muss ihn erst einmal suchen. Wenn Interesse besteht: Meldet euch!
-
-
Mein Compiler ist leider auch für die 8096. Im Moment kann ich nicht einmal selbst etwas damit anfangen, außer unter Vice.