L'IBM 1401

Source: http://www.columbia.edu/cu/computinghistory/1401.html

Foto: Manuale di riferimento del sistema di elaborazione dati IBM 1401 A24-1403- x .

L' IBM 1401 Data Processing System , un computer con logica a transistor a programma memorizzato annunciato nell'ottobre 1959. Con una configurazione minima di $ 2500 al mese, questo era il primo computer per uso generale conveniente di IBM, ed era destinato a prendere il posto di tutte le macchine contabili e calcolatrici che fornivano ancora un'alternativa più economica ai computer IBM 650 e 70 x . Migliaia di 1401 furono venduti o affittati; infatti, è stato il primo computer a distribuire 10.000 unità. Il 1401 era un computer decimale (non binario), con parole di lunghezza variabile composte da byte da 8 bit contenenti BCD da 6 bit ( decimale in codice binario) (più bit di parità e marchio denominativo) ed era destinato principalmente ad applicazioni aziendali (la sua controparte scientifica era il 1620 ). Il 1401 fu il primo della serie 1400 di computer IBM, che in seguito incluse il 1410 , 1440 e 1460. Originariamente programmato solo in linguaggio macchina o assembly o (poco dopo) Autocoder , cosa che si rivelò difficile per molte persone, il 1401 fu presto ospita uno dei primi linguaggi di programmazione di alto livello orientati al business, RPG (Report Program Generator), che ne ha aumentato l'usabilità e la popolarità [ 4 ]. Successivamente venne aggiunto FORTRAN per la programmazione scientifica.

Secondo Hugh T. Hoskins, prima della comparsa di Autocoder esisteva un assemblatore chiamato SOPAT, fornito da IBM. Questo avvenne alla School of Business della University of Southern California nel 1962. Vedi anche i commenti successivi di Keith Williams di seguito .

Il 1401 era così popolare che (secondo la leggenda) le applicazioni 1401 erano ancora in esecuzione nel 2000 su simulatori 1401 (che a loro volta potevano essere applicazioni 70x0, quindi eseguite su simulatori propri), e questo rappresentava una sfida speciale nella conversione all'anno 2000. . Puoi scommettere che i programmatori degli anni '60 con solo poche migliaia di byte di memoria a loro disposizione non "sprecarono core" in anni a 4 cifre!.

Nella foto (da sinistra a destra; seguire i collegamenti per immagini più grandi):

La stampante 1403 poteva stampare fino a 1400 righe da 132 colonne al minuto, a volte di più. Il lettore/perforatore 1402 poteva contenere 1000 carte (mezza scatola) nel suo hopper, leggere 800 carte al minuto e perforare 250 carte al minuto. Loren Wilton (della Burroughs/Unisys, che lavorò con il 1401 mentre era al college) ha sottolineato (31 dicembre 2003) che:

... se si lascia cadere una manciata di carte nell'alimentatore di lettura (cosa che normalmente veniva fatta durante il caricamento del vassoio, e accadeva comunque non appena si avviava il lettore) il vassoio più l'alimentatore di lettura conterrebbe un'intera scatola di carte facilmente o oltre 2000 carte.

Ciò era molto utile, poiché riduceva il tempo da dedicare al caricamento delle carte nel lettore e potevi dedicare il tuo tempo alla gestione del perforatore, che aveva un hopper molto più piccolo, e degli stacker di lettura/perforazione, che solo conteneva da 800 a 1000 carte al massimo in ogni stacker. In genere veniva utilizzato solo lo stacker destro per il lettore e quello sinistro per la perforazione, quindi più stacker non erano di grande aiuto.

Se stavi eseguendo un lavoro che prevedeva la stampa di dati su moduli prestampati (soprattutto con carta multistrato o carta rigida), dovresti anche dedicare una discreta quantità di tempo al monitoraggio dell'impilatore 1403 per assicurarti di non ritrovarti con moduli rovesciarsi sul pavimento anziché impilarli ordinatamente nell'impilatore. I moduli spessi tendevano a non impilarsi bene, soprattutto se la stampante eseguiva molte rotazioni ad alta velocità, come era tipico nei lavori con moduli.

Non mostrato: l' unità di memorizzazione 1406 contenente la memoria centrale . Il 1401 era dotato di una memoria core fino a 4K caratteri a 8 bit; il 1406 ha aumentato la sua capacità di memoria a 8K, 12K o 16K (quindi il 1401 mostrato sopra ha 4K).

L'unità di archiviazione su disco 1405 modello 1 aveva una capacità di "10 milioni di caratteri alfanumerici memorizzati su 25 dischi" (piatti). Il Modello 2 conteneva 20 milioni di caratteri su 50 piatti. Si accede a ciascun piatto tramite il proprio braccio di accesso (testina di lettura/scrittura). Si tratta di una delle prime unità disco prodotte, il discendente diretto dell'originale IBM 305 Disk File introdotto con il suo computer RAMAC (RAndoM ACcess) nel 1956. "Il metodo di elaborazione dei dati in linea mantiene continuamente i record di un'azienda in fino stato aggiornato. Qualsiasi transazione che interessa un'azienda può essere elaborata nel momento in cui si verifica e tutti i record e i conti interessati vengono aggiornati immediatamente. I dirigenti di un'organizzazione hanno a disposizione, in qualsiasi momento, informazioni che rappresentano lo stato di qualsiasi account in quel momento momento."

Dipartimento di aneddoti

Da Bob Resnikoff, forse l'unica persona qui nello staff da più tempo di me*:

Mi sembra di ricordare (anche se non posso esserne sicuro) che usavamo il 1401 per elaborare i nastri di stampa del 7090 (o 7094). Poiché il 7090 era "così veloce", era considerato uno spreco di risorse utilizzarlo per stampare. Quindi l'output di stampa e perforazione veniva scritto su nastro (parità pari per il testo, dispari per binario) che veniva poi elaborato sul 1401. Mi è sempre piaciuto il 1401; Lo ricordo come elegante ed economico nell'uso dello spazio di archiviazione (le parole erano lunghe solo quanto avevi bisogno che fossero).

Questo è mio ...

Quando ero nell'esercito in Germania a metà degli anni '60 , al quartier generale della 7a armata a Stoccarda, Patch Barracks, avevamo un mobile 1401. Era in un GRANDE rimorchio per camion. Quando uscivamo per le manovre, veniva con noi. Il rimorchio era agganciato a un due e mezzo e al rimorchio era agganciato un gigantesco generatore alimentato a gas. Una volta che siamo stati schierati nei boschi o dovunque, i lati del rimorchio si allargavano e si aveva una sala macchine abbastanza grande piena di punzonatrici, verificatori , 1401, unità a nastro, scrivanie, ecc. Forse le punzonatrici e i verificatori erano in un trailer separato, ora è tutto nuvoloso. Non ero abbastanza esaltato per avere qualcosa a che fare direttamente con il computer, facevo i key punch e gli EAM ( 407 ,selezionatore , ecc.). Non avevo idea a cosa servisse, tranne che si chiamava Sistema informativo di comando e controllo (CCIS). Comunque abbia fatto il suo lavoro, qualunque esso fosse, per settimane intere nel profondo della Foresta Nera, non importa quanto fango abbiamo trascinato.

Nel luglio 2006 ho sentito Wade Harper, che era al CCIS nello stesso periodo, che rifletteva:

È difficile credere che avessimo 12 E6 e 12 E7, 3 Lt e 2 o 3 WO per programmare un computer con SOLO 8K di memoria.

Sì. A proposito, E6 ed E7 sono gradi di retribuzione arruolati. LT è tenente. WO è Warrant Officer, che è una via di mezzo tra Arruolato e Ufficiale. Gli ufficiali di mandato sono solitamente piloti di elicotteri. I soldati di leva (erano tutti uomini, infatti), con una eccezione, erano Specialisti e non Sottufficiali (sottufficiali, cioè Sergenti), cioè avevano la stessa paga dei Sergenti senza dover comandare. Una buona idea, credo: promuovere le persone in base alle loro capacità e prestazioni, permettendo loro di continuare a fare ciò in cui sono bravi senza forzarli nella gestione. (A quanto pare, l'esercito ha abbandonato questa pratica alcuni anni fa.) Più tardi, Wade ha spiegato cosa stava effettivamente facendo il 1401 al CCIS:

Il 1041 è stato programmato per MRS (Military Report System) sul campo. Che era un semplice database sequenziale su nastro. 1 blocco per ogni rapporto. Ogni ufficio del quartier generale avrebbe inviato le informazioni in formato scheda che sarebbero state registrate su nastro come input per MRS. Difficilmente potremmo programmare qualcosa con solo 8K di RAM. Ogni rapporto doveva avere lo stesso formato. Nessun calcolo individuale. Un giorno stavamo facendo un giro di barnstorming e Jodie Powers si chiese se potessimo in qualche modo inserire 1 o 2K di codice sul nastro con ciascun blocco di dati. Quindi potremmo individualizzare ogni rapporto. Così finalmente l'ho programmato e funziona molto bene. Abbiamo anche programmato cose per il lavoro di guarnigione. Avevo tutte le munizioni convenzionali in Europa. Spurling (perché parlava tedesco) e penso Jerry Cook, avevano il programma degli ordini di marcia (in caso di guerra). Non ricordo gli altri progetti. Andavamo in molti quartieri generali del battaglione chiedendo lavoro. Sono rimasto nell'esercito per 20 anni. Poi ho lavorato come programmatore di sistema sull'IBM 360/370 e altri fino a quando mi sono ritirato definitivamente nel 1996. Ho avuto la fortuna di imparare la programmazione informatica nell'esercito.

_____________________________

*

Scritto prima del 2011, quando sono stato licenziato. Nel giro di un altro paio d'anni anche Bob dopo appena circa 50 anni. Fuori il vecchio e dentro il nuovo!

Lezioni dalla giungla

di Gary H. Anthès

Gary Anthes ha scritto quanto segue il 30 marzo 2005: "Il mio piccolo contributo alla 1401 Appreciation Society e all'Autocoder Programmers Alumni Association è l'allegato, una colonna che ho scritto per Computerworld alcuni anni fa. Buon divertimento." [ Computerworld , 20 agosto 1990, Manager's Journal, p.60. BYLINE: Di Gary H. Anthes. Anthes, corrispondente da Washington, DC di Computerworld, è un ex tenente jg della Marina degli Stati Uniti ed è stato assistente direttore dell'elaborazione dati presso il Navy Supply Depot a Da Nang, Vietnam.]

I razzi nemici arrivavano sempre di notte, ma non erano ben mirati e raramente facevano grandi danni. E quando un amico è stato morso da un serpente velenoso mentre si nascondeva in un bunker durante un allarme rosso, ho deciso di restare a letto ogni volta che arrivavano i razzi.

Ma poco prima dell’alba del 24 febbraio 1970, i vietcong furono fortunati e venni a conoscenza del disaster recovery.

Un razzo lanciato da qualche parte nella giungla vietnamita ha colpito il deposito di rifornimenti della marina americana vicino a Da Nang, atterrando miracolosamente su una pila di 6.000 mine anticarro. L'esplosione delle mine provocò onde d'urto in tutto il deposito, radere al suolo il centro di elaborazione dati dove lavoravo. Le esplosioni secondarie continuarono per 13 ore.

Quando ho sentito la gigantesca esplosione nel mio accampamento, a diversi chilometri di distanza, ho subito pensato alla custodia grigia che conteneva i cinque nastri che venivano aggiornati ogni giorno e portati fuori sede nel caso in cui l'elaborazione del computer dovesse mai essere spostata nella struttura di emergenza della Marina nel Filippine. Ma la custodia che conteneva i file dei dati di backup non era nel suo posto familiare accanto al mio letto; Avevo dimenticato di portarlo con me la sera prima. Con visioni di corti marziali che danzavano nella mia testa, andai al deposito di rifornimenti per aiutare nelle operazioni di pulizia e recupero.

Sebbene l'edificio che ospitava il centro di calcolo fosse crollato, il computer IBM 1401 e il suo gruppo di macchine elettromeccaniche a schede perforate sembravano più o meno intatti, sebbene coperti da tonnellate di polvere e detriti. E la custodia che conteneva i nastri magnetici era dove l'avevo lasciata, apparentemente illesa.

Due ingegneri civili dell'IBM arrivarono presto sulla scena e, se nei giorni successivi avessero dormito, non era chiaro. Il computer è stato trasportato in un magazzino intatto nelle vicinanze, dove Navy Sea Bees ha lavorato 24 ore su 24 per installare un pavimento rialzato e l'aria condizionata. Grazie a questi sforzi eroici e agli aspiratori di potenza industriale IBM, l'attrezzatura è stata ripulita e ha ripreso a funzionare nel giro di una settimana.

L'IBM 1401, un predecessore del System 360, aveva tutta la potenza di elaborazione e la memoria dei giochi arcade di oggi, ma funzionava su tre turni al giorno, sette giorni alla settimana, tenendo traccia di un inventario di 105.000 articoli che supportavano richieste per un valore di 32 milioni di dollari. un mese. Sebbene il computer e le sue applicazioni di controllo dell'inventario fossero fondamentali per la missione della Marina di rifornire le truppe da combattimento, il ripristino in caso di disastro fu eseguito così rapidamente che i vertici della Marina decisero di non mandarmi nelle Filippine con i nastri di backup. Così sono sfuggito a una corte marziale e non ho mai saputo se le esplosioni avessero trasformato i pezzetti dei nastri in una zuppa alfabetica.

Ci sono alcune lezioni in tutto questo per il gestore di data center di oggi, nessuna di queste ha a che fare con i razzi Viet Cong, le mine anticarro o i serpenti velenosi. Innanzitutto, aspettati l’inaspettato. In secondo luogo, disporre di un contratto di servizio eccezionale supportato da persone dedicate e competenti. Infine, se ti è stato affidato il caso dei nastri di backup, non lasciare il lavoro senza di essi.

Dipartimento di correzione

Quanto segue è stato ricevuto da Bill Nugent nel marzo 2005:

Quando si parla di capacità di memoria, la maggior parte delle persone intende 4K, 12K, 16K nel senso di 4096, 12288 e 16384. L'IBM 1401 aveva capacità di memoria di 4000, 8000, 12000 e 16000 parole. Potrebbe voler spiegare la differenza. Inoltre ogni posizione di memoria era una parola e non un carattere a 8 bit. Uno dei bit non era accessibile perché era un bit di parità e un altro bit era il Word Mark (WM) che segnava l'inizio dell'istruzione (lettura verso l'alto) e la fine di un campo dati (lettura verso il basso attraverso la memoria).

Le cinque tramogge di uscita (impilatori) del 1402 erano una caratteristica molto utile. Per impostazione predefinita, il perforatore lascerà cadere la carta nello stacker di sinistra e, facoltativamente, nel 2° stacker da sinistra o in quello centrale. Per impostazione predefinita, il lettore viene inserito nello stacker di destra e, facoltativamente, nel secondo stacker da destra o in quello centrale. Ho usato molti programmi e ho scritto uno o due programmi che avrebbero letto le carte dati nello stacker centrale per impostazione predefinita a meno che la carta non fosse stata sostituita, nel qual caso sarebbe caduta nel secondo dallo stacker destro e il perforatore della carta avrebbe perforato una sostituzione e rilasciarlo nell'impilatore centrale.

L'unica cosa bizzarra del 1401 era che il lettore di carte leggeva gli indirizzi da 001 a 080. Quando veniva premuto il pulsante Carica, il lettore di carte leggeva la prima carta, il registro I-Addr era impostato su 001 quindi l'esecuzione iniziava nell'indirizzo 001 e così inizierà il boot loader (fammi sapere se vuoi una spiegazione più approfondita sul boot loader). Il perforatore di schede perforava dall'indirizzo da 101 a 180 e la stampante stampava da 201 a 132 con l'indirizzo 200 utilizzato per il controllo del canale (frase destra).

Poiché il computer aveva una lunghezza di parola variabile, era facile scrivere un programma utilizzando l'aritmetica a lunghezza variabile. Un 1401 con l'opzione di istruzione moltiplica/dividi opzionale può moltiplicare due numeri decimali da 80 in circa 15 minuti con una singola istruzione.

Da Keith Williams, 1 maggio 2006:

Ho appena trovato le tue pagine sul 1401 su http://www.columbia.edu/cu/computinghistory/1401.html

Mi ha dato un grande piacere perché sono entrato in IBM nell'ottobre del 1959, proprio nel periodo in cui fu annunciato quella macchina. Il 1401 è stato il primo computer che ho conosciuto e probabilmente l'unico che ho capito a fondo. Imparai a programmare la macchina nel 1960 e nel 1961 la insegnavo ad altro personale IBM e ai programmatori dei clienti.

Mi sento obbligato a correggere un piccolo fatto contenuto nella tua pagina. Autocoder non fu il primo linguaggio di programmazione per il 1401. Il repertorio di istruzioni e il sistema di indirizzamento della memoria erano abbastanza semplici da consentire di codificare semplici routine in linguaggio macchina, ma il primo programma assembler era noto come SPS (Symbolic Programming System). Questo sistema di programmazione è stato annunciato da IBM con la macchina.

Molti dei primi 1401 (che sostituirono i sistemi contabili a schede perforate) consistevano semplicemente nell'unità di elaborazione 1401, un lettore/perforatore di schede 1402 e una stampante 1403. Non avevano unità nastro o disco, e in effetti queste unità non figuravano nel primo annuncio. Autocoder richiedeva un nastro o un'unità disco per elaborare il programma simbolico per produrre il codice oggetto. L'Autocoder fu reso disponibile per la prima volta sul 1410 e una versione 1401 non apparve fino alla fine del 1961.

Fino a quel momento avevamo programmato il 1401 in SPS (Symbolic Programming System). Il programma assemblatore SPS era contenuto in una pila di schede perforate. Anche il programma simbolico del programmatore è stato perforato su schede e posizionato dietro l'assemblatore SPS nello stack di lettura del 1402. Premendo il pulsante "Carica" ​​l'assemblatore SPS è stato caricato nella memoria centrale del 1401 e ha immediatamente letto ed elaborato il programma simbolico dell'utente. programma. La traduzione era un processo in due fasi: prima un mazzo parzialmente tradotto veniva perforato sul lato di perforazione del 1402. Questo programma parzialmente tradotto veniva quindi reimmesso nel lato di lettura del 1402 e, durante questo secondo passaggio, un programma oggetto completamente tradotto è stato colpito dal lato del pugno.

Il 1401 è stato fornito con una scelta di 5 diverse dimensioni di memoria core. Per l'elaborazione pratica "stand alone" la dimensione minima della memoria era di 4K caratteri, ma si potevano avere configurazioni di memoria da 8, 12 o 16K. Inoltre veniva fornita con una configurazione di memoria minima di 1,4K per i sistemi che dovevano essere utilizzati come sistema di stampa offline per la serie IBM 700/7000 molto più potente.

Per chiarire un punto sottolineato da Bill Nugent, la più piccola unità di memoria indirizzabile sulla serie 1400 era conosciuta come "carattere" e consisteva di otto bit binari (fisicamente, otto nuclei di ferrite). Era l'equivalente di quello che oggi chiamiamo "byte", ma quel termine non entrò in uso fino all'annuncio delle macchine di terza generazione (Sistema /360). Come spiega Bill, sei bit sono stati utilizzati per la codifica dei caratteri, utilizzando un sistema noto come BCD basato sul codice utilizzato nelle schede perforate IBM. Il settimo bit è stato utilizzato come bit di parità e l'ottavo come "Marchio verbale". Una "Parola" sulla serie 1400 consisteva in un numero variabile di posizioni di caratteri consecutive, l'ultima delle quali aveva il bit "Marchio Parola" attivo. Era quindi conosciuta come una macchina a lunghezza di parola variabile, in contrasto con la lunghezza fissa delle parole dei 709 e 650 che lo avevano preceduto. Ogni istruzione in linguaggio macchina costituiva una "parola" e poteva variare in lunghezza tra 1, 4, 7 e 8 caratteri, l'ultimo dei quali recava un marchio denominativo. Le parole di dati erano, ovviamente, di lunghezza totalmente variabile e venivano elaborate carattere per carattere in sequenza finché non veniva incontrato il marchio denominativo.

Altre storie...

Da Karen B. McLaughlin, 24 agosto 2006:

Sono stato uno dei primi programmatori SPS, iniziando al Lawrence Radiation Laboratory (LRL) nel 1961 appena uscito dall'UC Berkeley. Keith Williams ha chiarito molti dettagli che non sono riuscito a riconoscere negli altri ricordi che hanno preceduto il suo contributo. Le sue descrizioni riportavano alla mente ciò che noi programmatori dovevamo passare per testare ed eseguire il debug, incluso caricare/scaricare le schede perforate e assicurarsi che la carta fosse impilata correttamente. Nessuno ha menzionato la perforazione dei tasti, ma quella era un'altra abilità che dovevamo acquisire tutti perché il personale della perforazione era impegnato a perforare le schede dati poiché non avevamo unità a nastro. Una caratteristica significativa del 1401 (e degli altri della sua epoca) era che, poiché non esisteva un sistema operativo, qualsiasi errore poteva essere attribuito al programma nel core, rendendo il debugging un caso relativamente semplice di risoluzione dei problemi.

Un altro punto sul 1401: la console aveva interruttori di bit che consentivano a un programmatore di cambiare core in modo dinamico, il che consentiva il debug al volo, a condizione che tu conoscessi Hollerith. Dato che lo staff di programmazione ha effettuato test pratici solo un'ora al giorno, questa è stata una funzionalità utile.

Il design del programma doveva essere elegante e frugale, utilizzando sovrapposizioni e struttura prima che il termine fosse inventato. Oggi molte persone portano con sé un PDA e un telefono cellulare, ciascuno con più memoria rispetto al primo computer utilizzato per elaborare le buste paga per oltre 5.000 dipendenti presso LRL Berkeley e Livermore nel 1968.

Sono rimasto nel campo informatico, incontrando molte macchine, linguaggi, progetti e titoli di lavoro diversi, e alla fine mi sono ritirato nel 1999 dopo 25 anni al Jet Propulsion Laboratory. Con una gioiosa sensazione di eccesso, forse generata dalla mia prima esperienza con il 1401, ho appena finito di costruire un personal computer contenente quasi 500 GB di spazio di archiviazione, molto più di quanto potrò mai utilizzare.

Nel corso degli anni ho avuto un viaggio meraviglioso e stimolante, ma ho sempre pensato che programmare e utilizzare il 1401 fosse la cosa più divertente.

Robert N. Sammer, 21 maggio 2007:

Dopo aver letto gli articoli sul vostro sito web, vorrei aggiungere quanto segue.

Nel 1962, entrai a far parte del dipartimento operativo informatico dell'IBM New York Time/Life come operatore informatico 1401.

Le mie responsabilità includevano la registrazione su nastro di tutti i lavori informatici in arrivo che i programmatori inviavano al centro utilizzando il satellite 1401. Ciò consentiva agli attuali frame principali (7090, 7040/44) di elaborare i lavori senza le lunghe funzioni di input/output.

Il centro informatico di New York era un satellite del centro informatico principale di Poughkeepsie NY, quindi il secondo turno, a New York, avrebbe inviato a Poughkeepsie, tramite linee telefoniche chiamate teleprocessing, l'eccesso di lavori che non potevano essere elaborati a New York.

Dato che avevamo una scadenza da rispettare e c'erano molti lavori da teleelaborare a Poughkeepsie, ho impilato la moltitudine di lavori sul vassoio di alimentazione di lettura delle carte che poteva contenere fino a 3000 carte, ho premuto Avvio sul computer e il processo da carta a nastro è iniziato . Quando si verificava un controllo del lettore (il lettore rilevava un errore tra le spazzole di lettura e di verifica) l'operatore doveva rimuovere con attenzione le carte nella tramoggia di lettura delle carte in modo da preservare l'integrità della sequenza delle carte; rimuovere le carte dalla parte superiore del vassoio di alimentazione di lettura in modo che le carte rimanenti sul vassoio possano essere spinte verso l'alto in modo che l'operatore possa scaricare le carte all'interno del lettore. Ora l'operatore controllerà la carta per errore per vedere se c'era un motivo valido per il controllo del lettore. Se non se ne vedesse nessuna, l'operatore rimetterebbe tutte le carte nell'ordine corretto e avvierebbe il lettore. Se non accadesse nulla, l'elaborazione dalla scheda al nastro continuerebbe. Se la stessa carta fosse stata controllata da un altro lettore, il lavoro sarebbe stato eliminato dal flusso di lavoro e il programmatore sarebbe stato avvisato.

Una notte, il lettore assegnato a questo compito continuava a fornire controlli di lettura falsi. Leggerebbe cinque o sei carte e il lettore controllerà quella successiva. Dopo aver eseguito la procedura sopra descritta, il lettore leggerà nove o dieci carte e controllerà la carta successiva.

Ho chiesto al mio supervisore di chiedere ai CE (Customer Engineer) di controllare il lettore. Mi è stato detto che i CE avevano effettuato più volte controlli durante il primo turno, ma non sono riuscito a trovare alcun motivo per i controlli dei lettori. Dopo circa il ventesimo controllo dei lettori, con il tempo che stava per scadere, ho fatto quello che avrebbe fatto qualsiasi buon riparatore americano fai-da-te.

(Per alleviare lo stress di un turno di otto ore ai miei piedi, ho acquistato un paio di scarpe con la suola di gomma. Il design della suola mi ha ricordato un campo appena arato con piccole valli e picchi aguzzi che andavano da un lato all'altro su ogni scarpa.)

Se non funziona dopo averlo controllato e non aver trovato nulla di sbagliato, calcialo! Questo è esattamente quello che ho fatto. L'impronta della mia scarpa è stata lasciata sulla porta del 1401 a causa della normale polvere trovata sui pavimenti rialzati di piastrelle bianche nella sala operativa.

Il lettore non ha funzionato male durante il resto del mio turno, leggendo perfettamente. Ha funzionato il terzo turno, il primo turno e quando sono tornato al lavoro la mia impronta di scarpa era ancora lì e ho ricevuto molti ringraziamenti dai miei colleghi operatori per aver riparato il lettore.

Anche i CE sono rimasti sorpresi dalla mia soluzione. L'impronta è rimasta per alcuni giorni ma è stata rimossa prima che il responsabile CE e gli ospiti arrivassero per una visita al reparto operativo. A causa degli articoli del vostro sito web e chiedendomi cosa sarà fatto, se non altro, per il 50° anniversario dell'avvento del 1401, mi sono riqualificato per programmare il 1401 e ho scritto un piccolo programma di utilità per esso e sono sicuro al 95% che lo farà funziona se inserito nel 1401. Sì, ho giocato al computer 1401 per testare il programma e sì, è stato difficile tradurre la codifica SPS in un mazzo di oggetti come lo chiamavamo nel 1962, ma mi sono DIVERTITO. E questo dopo 38 anni di carriera nella progettazione di sistemi informatici IBM Main Frame, nella scrittura di specifiche, nella codifica, nel debug, nei test, ecc.

Commento...

4 luglio 2007:

Edward G. Nilges

13A 6F 1F Wang Long Villaggio

Yung Shue Wan

Lamma Isola

HONG KONG

Caro Frank:

Come ex programmatore dell'IBM 1401, che ha eseguito il debug di un compilatore di solo codice oggetto per Fortran dopo che l'IBM ha rimosso il supporto per il 1401 nel gennaio 1971, e che ha scoperto per conto suo calcoli di precisione extra e nuove forme di aritmetica dell'"indirizzo modificato", in realtà sono abbastanza arrabbiato nel leggere come l'esercito avesse le risorse per allestire in modo dispendioso un "data center 1401" nei boschi della Germania, mentre la mia università chiedeva risorse per insegnare ai suoi studenti.

Questo perché il data center 1401 probabilmente non faceva molto ed era uno spreco.

Ammiro il duro lavoro e l'eroismo dei tecnici dell'elaborazione dati che hanno recuperato il 1401 a Da Nang dopo un attacco missilistico vietcong. Tuttavia, nello stesso momento in cui stavo imparando il 1401, stavo marciando contro quella guerra folle, folle quanto la guerra in Iraq oggi, dove, senza dubbio, l'eroismo, l'abnegazione e il duro lavoro di lavoratori umili e poco affascinanti le specifiche vengono sprecate in modo che gli ufficiali al grado di bandiera possano essere promossi e il peggior presidente della storia americana possa fingere di essere un uomo.

La mia esperienza diretta come professionista dell'elaborazione dati nei successivi trent'anni è stata che in America il settore civile era sistematicamente affamato di tempo e risorse per sviluppare sistemi efficaci e affidabili per i bisogni umani in modo che il nostro sistema militare-industriale potesse sprecare denaro in imprese idiote. dal trasportare un mainframe in giro su un camion a "Star Wars".

Scoprii nel gennaio 1972 le conseguenze delle chiacchiere da macho degli ingegneri clienti IBM che avevano imparato da reclute le loro chiacchiere da macho, perché uno di loro aveva accusato la mia università, un'università affamata di fondi perché la Roosevelt University aveva il cattivo gusto di educare al lavoro persone di classe e persone di colore, per aver "aggiustato" il compilatore Fortran IBM 1401 affinché funzionasse sulla configurazione di memoria minima di Roosevelt... utilizzando la memoria non disponibile per passare a una subroutine che si sovrapponeva all'interprete runtime.

Questa "correzione" non era mai stata testata, ma lanciata con disprezzo al mio professore di matematica, che stava semplicemente cercando di dare agli studenti della classe operaia e agli studenti di colore la loro prima istruzione in informatica in modo che potessero competere con i bambini ricchi dell'Università di Chicago.

L'ingegnere del cliente non sapeva nemmeno, ed era apparentemente poco curioso di scoprirlo, che la Roosevelt University stava pagando e aveva l'hardware extra per eseguire moltiplicazioni e divisioni nella memoria. Ho rimosso la sua "correzione" e ho inserito l'istruzione di moltiplicazione corretta, e il compilatore ha funzionato ed è stato successivamente utilizzato nelle classi.

La mancanza di curiosità intellettuale e i discorsi sessisti degli ingegneri clienti (a cui piaceva lavorare alla Roosevelt, dicevano, perché già allora era antiquato, con una finestra di vetro su Michigan Avenue adatta per osservare le ragazze) erano parte e parte di un atteggiamento militare e aziendale quasi -elite che allora come oggi insiste nel "guidare" l'America in una guerra permanente in Iraq (che è il risultato di una mancata curiosità intellettuale sul fatto che Saddam Hussein possedesse o meno armi di distruzione di massa) e un numero crescente di americani tormentati sul posto di lavoro e fuori dai sistemi di dati costruiti da uomini ignoranti, che non riescono a fornire loro l’assicurazione sanitaria, che non riescono a fornire ai veterani i benefici che hanno guadagnato, e che non riescono a registrare la loro storia creditizia in modo accurato e rendono la loro storia creditizia preda della classe criminale.

La "Grande Società" di Lyndon Baines Johnson e il suo barlume di speranza erano già scomparsi nel 1972, e di conseguenza la Roosevelt University e i suoi studenti erano già allora sempre più incapaci di accedere ai fondi per l'istruzione o per qualsiasi reale bisogno umano, perché nel 1972, il folle bombardamento di Nixon La campagna elettorale e la destabilizzazione del governo cileno hanno avuto la precedenza.

Per questo motivo ho contribuito, lavorando 12 ore al giorno, a mantenere in vita il sistema IBM 1401 della Roosevelt University finché non fosse stato possibile aggiornarlo. Ho sviluppato una serie di software e procedure per un calcolo affidabile che hanno consentito al cancelliere di valutare accuratamente gli studenti e all'economo di pagare i dipendenti, in un'epoca in cui ciò significava codificare per la maggior parte in linguaggio assembler SPS, con il compilatore Fortran disponibile per i report.

Per questo motivo, sono inorridito nel vedere il complesso industriale militare e gli anziani respinti da questo complesso celebrare l’uso del 1401 per uccidere quattro milioni di persone in Vietnam. Sono anche registrato (su comp.risks) mentre metto in dubbio l'acquisizione del Computer Museum di Mountain View da parte di tipi hardware (e conservatori politici che, in modo inappropriato, inseriscono sproloqui pro-Bush nelle comunicazioni tecniche) che stanno ricostruendo il 1401 nell'hardware, sprecando così risorse scarse e, forse, ricostruendo tecnologie tossiche, quando il Museo del Computer potrebbe presentare molto di più della tecnologia "profonda" del passato nella simulazione del software.

Puoi leggere maggiori dettagli sulle mie prime avventure con la compilazione del 1401 nel mio libro su una tecnologia moderna. Si tratta di " Costruisci il tuo linguaggio e compilatore di rete " (Apress 2004). Rimango convinto che la MAGGIOR PARTE degli sforzi compiuti in America in materia di software e hardware, allora come oggi, non siano iniziative tecniche e intellettuali serie, ma sprechi privati ​​e pubblici intesi a dimostrare che "tutto è sotto controllo"... quando gli incidenti di Manhattan nel settembre 2001, e a Glasgow la settimana scorsa, dimostrano che non è affatto così, e che la perversione della tecnologia per dimostrazioni di forza (se non veri e propri omicidi, come quando i sistemi di dati vengono utilizzati per monitorare la nostra distruzione di obiettivi dall'aria) ha creato l'anti -Americanismo che oggi è la norma in altri paesi.

Molto sinceramente

Edward G.Nilges

Il tuo editore risponde, tardivamente (2015):

L’esercito americano in Germania negli anni ’60 era relativamente innocuo. Sicuramente un grande spreco di denaro e risorse, come lo fu la stessa Guerra Fredda, ma non fece molto più male che investire qualche pollo occasionale. Come risposi a Edward nel 2007 (abbiamo avuto una lunga corrispondenza), nel 1965 “l’invasione americana della Repubblica Dominicana fu una vera rivelazione per me (ancora adolescente ma già nell’esercito), e avvenne proprio quando Johnson cominciava a chiamare 50.000 bambini al mese per il Vietnam. Mi chiedevo: in quale esercito mi trovo?" Ho fatto domanda per essere congedato come obiettore di coscienza e ho trascorso il mio ultimo anno nell'esercito aspettando che decidessero cosa fare con la domanda.

Oggi vediamo il risultato delle priorità americane del dopoguerra: gran parte del Medio Oriente completamente al collasso, Messico e America Centrale trasformati in campi di sterminio; l’economia americana in rovina, fatta eccezione per quelli al vertice; il nostro sistema politico è determinato a distruggere tutto ciò che di buono è stato realizzato da quando FDR è entrato in carica; il pianeta stesso sta rapidamente diventando una discarica di rifiuti tossici che sprofonda in un mare morto. E questa è la breve lista. Quindi sono dalla parte di Edward, ma questo è un sito nostalgico del computer :-) Tuttavia, è sempre bene mettere le cose in prospettiva. (Aggiunta 2021: Se vuoi sapere tutto quello che c'è da sapere sulla mia gloriosa carriera nell'Esercito, puoi leggerlo qui .)

Ancora altre storie...

Da Dave Brown, 6 agosto 2015:

Mi è piaciuto leggere la tua pagina sul computer IBM 1401. Ha riportato alla mente ricordi. Una cosa che ricordo è che l'istruzione dell'Autocoder "Store B-register", codificata come "SBR", faceva sì che la CPU emettesse un brevissimo lampo radio che poteva essere captato da una radio FM a transistor posizionata sopra il cabinet della CPU. Quindi c'erano programmi che trasmettevano canti natalizi emettendo SBR alla frequenza al secondo per ciascuna nota. La stampante del 1403 aveva le lettere su una trasmissione a catena simile a una bicicletta con 132 martelli che colpivano i caratteri mentre volavano. Un programma per testare l'integrità della catena è stato chiamato "Chain Breaker". Stamperebbe una riga di carte che farebbe sparare contemporaneamente tutti i 132 martelli, esercitando uno stress considerevole sulla catena. Ricordo che sulla stampante c'era una manopola per far avanzare o ritardare il tempo del martello, a seconda del numero di copie carbone che venivano stampate, altrimenti sarebbe mancato il lato sinistro o destro di ciascuna lettera. E come l'istruzione SBR, c'erano programmi che utilizzavano il lancio dei martelli per prendere appunti per suonare i canti natalizi. Il mio preferito era il "Little Drummer Boy".