Intervista a Charlie Hitselberger, autore di PETTIL

RetroMagazine nr. 44 – Anno: 2023 – Autore: Carlos J. Vazquez II – trad. Francesco Fiorentini

Dalla pagina Github di Charlie Hitselberger:
https://github.com/chitselb/pettil
PETTIL é la mia implementazione del linguaggio di programmazione Forth, seguendo lo standard FORTH-83.
Gli obiettivi di questo progetto sono, in ordine sparso:

  • (PETTIL) realizzare un Forth che funzioni sul mio Commodore PET 2001
  • (PETTILmob) trovare altri interessati a questo progetto
  • (PETTILmini) emulatore di Raspberry Pi PET con una tastiera/custodia replica
  • (PETTILmobile) girare gli Stati Uniti in un autobus un museo di computer vintage
  • creare video su YouTube
  • migliorare le mie capacità di “golf del codice 6502
  • divertirmi!

Carlos Vazquez: Ok, prima di tutto, cos’è PETTIL?
Charlie Hitselberger: PETTIL è un’implementazione Forth per il PET, ma è anche un’implementazione Forth per l’intera linea di macchine Commodore a 8 bit, anche il C128.
Ho iniziato a lavorarci nel 2010, perché erano 25 anni che non facevo molto con il mio PET.
La mia intenzione con PETTIL è quella di mettere a disposizione dell’utente/programmatore la maggior parte della macchina possibile, e di farlo con un numero minimo di byte e di cicli di clock.

Quale software utilizzi per sviluppare Pettil? Se utilizzi hardware reale, quale modello di PET possiedi?
Ho iniziato lo sviluppo trovando una copia di FIG Forth e caricandola su un hardware reale, che è un PET 2001-N
serie #700251. Quel PET è stata probabilmente la decima macchina che ho programmato, ma il primo vero computer che ho comprato.
Dave McMurtrie di Pittsburgh, che gestisce il gruppo Commodore International Historical Society, è riuscito a farlo ripartire dopo che aveva smesso di funzionare nel 2019. C’è anche un VIC-20 che farà parte dell’allestimento del museo.
Michael Tomczyk è stato così gentile da autografarmelo al Kennet Square Classic computer museum un paio di anni fa.
Il mio hardware ha un PETdisk e un PETvet all’interno, e nel 1983 ho realizzato una “scheda audio” con pezzi di Radio Shack,
per l’uscita dell’altoparlante mono del CB2. È montata all’interno del case sotto il monitor.

Questo è quello che chiamo un super animale domestico (il gioco di parole è voluto!), Pettil funzionerà su un Vic non ampliato? E sulle machine basate sul processore 6502?
PETTIL separa la tabella dei simboli dal codice, quindi dopo la compilazione, tutti i 5K circa della tabella dei simboli e i 6K circa del codice “STUDIO” possono essere eliminati.Questo lascia 5,5K di CORE.
Dato che tutto il codice sorgente di PETTIL è fornito come parte del sistema, si potrebbe eliminare da questo CORE altre parole che non si usano mai e renderlo ancora più piccolo.
Il compilatore è anche responsabile del paging, quindi uno dei trucchi di PETTIL è quello di fare NEXT in soli 15 cicli di clock.
Quando è il momento di saltare alla pagina successiva (sezione di memoria da 256 byte) il compilatore inserisce una parola chiamata PAGE dizionario all’inizio di ogni pagina. Solo il PETTIL lo fa. Gli altri Forth 6502 impiegano circa 34-36 cicli di clock per incrementare il puntatore delle istruzioni a due byte.
Un VIC-20 non espanso sarebbe difficilmente compatibile con PETTIL, ma PETTIL potrebbe essere usato per generare codice destinato a quella macchina da 3,5K.

Come ti sei avvicinato alla programmazione di computer?
Per quanto riguarda il mio inizio nella programmazione, nel 1977 ho cambiato scuola superiore e la nuova scuola aveva alcune macchine Wang 2200.
Due avevano 4K e uno 8K di RAM. Durante il mio secondo anno su quei computer, riuscii a inserire il gioco “Super Star Trek” di Mike Mayfield in un computer.
Nel 1979-1980 c’era un PDP-10 con TOPS-20 al community college locale, e io avevo accesso a quello.
La scuola in cui ho frequentato l’ultimo anno di liceo, nel Michigan, aveva un TRS-80 Model 1. Il nostro insegnante di fisica portò un PDP-10 con TOPS-20. Il nostro insegnante di fisica portò il suo PET 2001 (8K, costruito nel 1977).
Quell’anno avevo una calcolatrice TI-59 con la stampante, ma solo dopo aver comprato il PET nel 1980 mi sono sentito un vero proprietario di computer.

Super Star Trek è stata la prima esperienza di base per molti bambini negli anni ’70! Hai parlato di un museo, puoi dirmi qualcosa di più al riguardo?
Nel 2010, International ha costruito uno scuolabus e la Contea di Prince George’s (MD) lo ha portato in giro con i bambini per 10 anni.
Nel 2018 ho iniziato a occuparmi di questo progetto, ed è sempre stato un piano per rilasciare PETTIL, per mettere su un mucchio di video che mostrano come programmare un PET come questo, e di portarlo in giro (nei 48 stati inferiori) in uno scuolabus museo del computer.
Voglio un tunnel ottagonale al centro dell’autobus, per ricordare ai partecipanti il film del 2001 che ha ispirato il PET.
Questo ci riporterà indietro nel tempo della rivoluzione dei personal computer. Dopo una breve introduzione alla storia di quest’epoca 1974-1984, passeremo il resto dell’ora a programmare il PET su emulatori.
Il museo viaggerà in tutti i 48 stati inferiori entro un anno, secondo il piano, e dopo di che, dovremmo avere molti programmatori PETTIL là fuori a divertirsi con i computer a 8 bit!
Ci si sente soli a scrivere un linguaggio di programmazione e a essere l’unico programmatore al mondo che lo usa.
Questa settimana ho l’autobus in officina e alla fine della settimana andrò nell’Upper Michigan per installare l’isolamento in lana e sistemare i buchi nel pavimento. L’autobus è in modalità “capannone metallico da giardino” e il finanziamento del progetto è stato molto limitato. È importante sottolineare che PETTIL è inedito e avrebbe bisogno di aiuto.

Come può qualcuno contattarti se vuole aiutarti con la codifica del progetto pettil?
PETTILmobile@gmail.com è l’email ufficiale del progetto, e sto rimettendo in piedi PETTILmobile.com non appena possibile. È un po’ diverso da un lavoro ordinario in un cubicolo, che è quello che ho fatto dal 1982 al 2018 prima di iniziare questa ricerca.
Sto lavorando l’uscita di PETTIL nell’agosto di quest’anno (2023).

Il museo dovrebbe essere un viaggio divertente! Sembra che il museo su ruote sia in arrivo molto presto! PETTIL sarà disponibile solo per il PET 2001?
Avrò bisogno di soldi per costruirlo, e nessuno assume programmatori 6502 quest’anno. Ma ho un piano in cui il linguaggio e i video sul progetto creeranno l’opportunità di realizzare il museo e di tracciare il tour dei 100 CAP.
PETTIL ha un metacompilatore chiamato PORTIL, e PORTIL sarà incluso nel rilascio. La versione bootstrap (PETTIL prima di PORTIL) è un insieme di file di testo con una serie di script per costruirlo. È davvero vergognoso il modo in cui ho scritto il codice. Sto spostando il codice di bootstrap di PETTIL su CBM Prg Studio, per vedere se ciò lo renderà abbastanza popolare da spingere altri sviluppatori a dare una mano.

Più ne parli e più sono entusiasta di forth!, Dal momento che è stato codificato in linguaggio assembly 6502 significa che potremmo aspettarci una versione apple ][ in futuro?
Esiste anche una suite di sviluppo test-driven chiamata PERTURB. Quando PETTIL può essere costruito da PORTIL e passa tutti i test di
PERTURB e supera tutti i test, per tutti i target di macchina, viene “rilasciato” (la maggior parte delle macchine basate su 6502 potrebbe essere un possibile).
Il Forth è un linguaggio di culto, a dire il vero. Sono un fanatico sfegatato del Forth e lo sono da quando ho scoperto “Threaded Interpretive Langauges”, un libro di R.G. Loeligar del 1982. Questa è la parte TIL di PETTIL.
Starting Forth e Thinking Forth di Leo Brodie sono i migliori punti di partenza. Leggete qualsiasi cosa di Jim Butterfield per capire il linguaggio assembly del 6502.
Far girare PETTIL anche su sistemi Apple e Atari a 8 bit? Sarebbe l’ideale!
Sfrutto molto l’editor dello schermo PET. Il mio editor è un tradizionale editor a “blocchi” Forth. Poiché non ci sono tasti CTRL o ALT sulla tastiera del PET, uso il tasto STOP come prefisso di comando nell’editor.

Alcuni giochi come Star Flight e Lord Of Conquest di Electric Arts sono stati scritti in Forth. Hai in programma un supporto per le caratteristiche di gioco di macchine specifiche (come gli sprite e il suono del Commodore 64) su pettil per quelle piattaforme?
PETTIL per il C=64 avrà un vocabolario per il suono e la grafica. L’obiettivo di PETTIL è fornire un accesso completo alla macchina e i diversi hardware saranno completamente adattati.
Deve anche funzionare sul mio vecchio PET con una semplice cassetta.

Sarebbe fantastico, questo sarebbe un altro livello!
Blazin’ Forth sul C=64 è già abbastanza buono. Utilizza anche l’editor di blocchi Forth tradizionale, ma è progettato per uno schermo di 16 righe per 64 di larghezza, che non è un C=64. L’editor di schermo di PETTIL è WYSIWYG, un posto molto migliore, per esempio, per disegnare la grafica del vostro nuovo gioco.
Dove PETTIL sarà utile è per creare un ponte Forth tra più macchine Commodore, e possibilmente per colmare il divario tra Atari e Apple.

Questo renderebbe pettil una piattaforma completa per lo sviluppo di giochi su computer a 8bit!
Voglio soprattutto che la gente capisca come funziona un computer dal livello più elementare, cosa fa un 6502 in ogni ciclo di clock quando esegue un’istruzione. Se ci mettiamo sopra Forth, dovrebbe essere più facile capire come mi sentivo io, all’epoca, ad avere quella potenza.

Il supporto di più computer basati su 6502 con un unico software sarebbe fantastico, a proposito di compatibilità incrociata!
È Forth. Se avete visto un’implementazione Forth, avete visto un’implementazione Forth. Mi prendo cura di aderire allo standard Forth-83. Ma anche in questo caso, si tratta di circa tre standard in ritardo rispetto allo standard attuale.
Ho scelto il Forth-83 perché è il più sensato per questo hardware. Cercare di mettere tutto il kit e tutto il resto di un Forth ANSI in un PET è molto più laborioso.
Questo progetto è incentrato sul minimalismo e su quanto basta per arrivare a destinazione.

Noi siamo cresciuti con computer che avevano un facile accesso ai linguaggi di programmazione, cosa diresti alle nostre giovani generazioni, in modo che si avvicinino alla programmazione informatica in quest’epoca di GUI e di linguaggi di programmazione troppo complicati?
I computer di Von Neumann esistono ancora. La legge di Moore ha raddoppiato la potenza dei computer per decenni. Il Cloud è un altro nome per “computer di qualcun altro”. Provate a capire bene come funziona il livello più basso e poi costruite qualcosa di incredibile su queste fondamenta.

Fantastico! Un’ultima cosa, puoi farci un esempio di programma hello world in pettil forth?
Ciao ( — )
.” Ciao, PETTIL” ;

In PETTIL, le maiuscole/minuscole sono caratteri diversi. In altre parole, PETTIL è sensibile alle maiuscole e alle minuscole.

Grazie per averci dedicato un po’ di tempo per parlare di pettil, sono sicuro che i nostri lettori saranno entusiasti di leggere di pettil e della sua incredibile storia!
Sarà meglio quando potremo giocarci tutti su un PET.
Grazie per avermi parlato.

Share

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.