Valutazione attuale:  / 0
ScarsoOttimo 

L'assemblatore per il 7070 IBM (Autocoder)

L'assemblatore del 7070 si chiamava Autocoder ed era l'unico strumento disponibile a quell'epoca per scrivere programmi; nell'ambiente IBM si parlava anche di una specie di compilatore che sarebbe stato disponibile nell'immediato futuro a nome "Commercial Translator" che sarebbe stato l'antesignano del Cobol, ma se si voleva andare "sul sicuro" non c'erano altre scelte se non l'Autocoder.

Il programma consentiva di scrivere in mnemonico tutte le istruzioni imperative del 7070, di dichiarare costanti e variabili e di definire strutture (le cosiddette dummy sections) in cui ricevere i dati letti o preparare i dati da scrivere; il suo output era naturalmente il codice oggetto del programma e la una lista che evidenziava per ogni istruzione la sua traduzione in codice macchina e la locazione in cui era stata posta; nella lista c'erano anche le eventuali segnalazioni di errore e una cross reference finale che elencava tutte le labels utilizzate e per ciascuna di esse l'elenco delle istruzioni che le avevano richiamate.

L'assemblaggio era un processo molto coreografico, infatti si poteva vedere quando il nastro di input veniva letto, poi per un certo tempo si vedevano dei nastri di lavoro, su cui venivano scritti e riletti dati temporanei, che si muovevano a scatti durante la scrittura o la lettura e velocemente all'indietro per il riavvolgimento; si capiva che l'assemblatore stava poi producendo l'output quando cominciava la lettura dai vari nastri di lavoro e la scrittura finale del codice oggetto su un nastro e contemporaneamente della lista su un altro; bisognava allora leggere e stampare il nastro della lista con il 1401, correggere gli errori sostituendo, eliminando o modificando alcune delle schede del pacco del source e ricominciare da capo.

L'assemblaggio poteva durare un'ora o anche più per cui dopo il primo run, piuttosto che fare le correzioni necessarie sul source e ripetere l'assemblaggio, si preferiva preparare delle schede di correzione nelle quali il codice veniva scritto direttamente in assoluto; questo pacchettino di schede veniva letto automaticamente al termine del caricamento del programma da nastro utilizzando il lettore della console, le istruzioni aggiunte si sovrapponevano in memoria a quelle errate ed il programma così corretto veniva eseguito; anche per l'inserimento di una piccola routine si preferiva agire in questo modo per cui ogni programma era sempre costituito dal codice presente su un nastro, più un pacchetto di schede correzioni letto dal lettore della console.

Il linkage editor era di là da venire; non esistevano strumenti per il debugging e l'unico segnale di anomalia che il programmatore poteva ricevere durante una prova era il "program check" che faceva fermare l'esecuzione del programma sull'istruzione incriminata; a quel punto il programmatore utilizzava la console per conoscere il contenuto dell'instruction counter (il registro di macchina che conteneva istante per istante l'indirizzo dell'istruzione da eseguire) a mezzo del quale poteva individuare l'istruzione in errore (che naturalmente non era mostrata in simbolico ma in codice assoluto di macchina); l'esame dei dati in memoria veniva fatto visualizzando con la console le locazioni che erano state assegnate alle variabili dall'assemblatore, il cui indirizzo veniva rilevanto dalla lista dell'assemblaggio.

Spesso l'istruzione in errore veniva modificata usando la console, dopo di che il programma veniva fatto riprendere da quel punto o da un punto diverso, semplicemente modificando il contenuto dell'instruction counter e premendo il tasto di Start; il programma poteva anche essere fermato in qualunque momento premendo il tasto di Stop.

 

Torna all'indice