Appendice B

L'attivazione del sistema


Per lo sviluppo del sistema operativo Theos è stato utilizzato il seguente software presente sulla scheda master:

Sono stati preparati alcuni script che facilitano le operazioni di compilazione e il lancio di Theos sulla scheda slave.
  • GO compila tutti i file sorgenti che sono stati modificati dopo l'ultima compilazione, fa il link di tutti gli eseguibili e lancia Theos.
  • CO compila tutti i principali file sorgente (questa operazione è necessaria se si modifica una variabile globale).
  • I lancia l'ultima copia linkata di Theos.

    B.1 OS-9

    OS-9 è un sistema operativo progettato per i processori Motorola e quindi molto comune sui sistemi con bus VME. Ci sono molte rassomiglianze fra OS-9 e Unix; riguardo le caratteristiche più importanti, OS-9 è multitasking, multiutente, real-time, modulare, può risiedere su ROM.
    Subito dopo l'accensione è necessario premere il tasto Enter per avviare il sistema. In seguito viene chiesto username e password, quindi il sistema diventa attivo. Alcuni dei comandi più comuni della shell sono riportati nella tabella B.1.

    Comando Descrizione
    dir lista file nella directory corrente
    chd cambia la directory dati corrente
    chx cambia la directory comandi corrente
    copy copia un file
    copy * -w=/h0/... copia più file
    list visualizza un file su video
    list >/pp file stampa un file
    format -ds -dd /d0 formatta il floppy
    makdir crea una subdirectory
    rename cambia nome a un file
    umacs chiama l'editor uMACS
    cc chiama il compilatore C
    make esegue il makefile
    start.mrg avvia una shell a finestre
    attr visualizza e modifica i permessi d'accesso
    Ctrl-A ripete l'ultimo comando digitato
    Tabella B.1: Lista comandi della shell di OS-9

    B.2 L'editor uMACS

    L'editor di testi uMACS è simile all'EMACS dei sistemi Unix. I comandi principali di questo editor, che lavora in modo testo, sono riportati nella tabella B.2. Un comando da mettere in evidenza è quello che consente di dare un comando alla shell. Digitando ''Ctrl-X !'' è possibile compiere tutte le operazioni necessarie per lo sviluppo del software restando sempre all'interno dell'editor.

    Comando Descrizione
    Esc-Z salva ed esce
    Ctrl-X Ctrl-C esce senza salvare
    Ctrl-X S salva il file nel buffer corrente
    Ctrl-X 2 divide lo schermo in due finestre
    Ctrl-X 1 editor a pieno schermo
    Ctrl-X Ctrl-F carica un file in un nuovo buffer
    Esc S cerca una stringa partendo dal cursore
    Esc Ctrl-R sostituisce con conferma
    Ctrl-R sostituisce senza conferma
    Esc Space inizio blocco
    Esc W copia blocco
    Ctrl-W cancella blocco
    Ctrl-Y incolla blocco
    Ctrl-X ! da un comando alla shell
    Esc $<$ inizio file
    Esc $>$ fine file
    Ctrl-X = mostra posizione cursore
    Ctrl-X 0 cursore nella prossima finestra
    Esc ? apre file di aiuto
    Tabella B.2: Lista comandi dell'editor uMACS

    B.3 Il Compilatore C

    Il compilatore C viene attivato da shell dal comando cc file -options. Purtroppo non compila esattamente lo standard ANSI del linguaggio C, ma si differenzia per due aspetti:
    Per includere codice assembly lo si deve racchiudere fra le direttive #ASM e #ENDASM; tuttavia per evitare conflitti con il resto del codice bisogna tener conto delle seguenti caratteristiche del compilatore:
    Per dichiarare variabili di dimensioni maggiori di 64 Kbyte si deve utilizzare la specifica remote prima del tipo di variabile. I parametri di compilazione più utili sono: -s per eliminare i controlli sullo stack; -k2 per utilizzare le istruzioni del Motorola 68020; -bp visualizza le operazioni effettuate dal compilatore; -r produce un file contenente codice rilocabile.

    B.4 Il Debugger RBUG

    Per attivare il debugger per la scheda slave RBUG si deve aggiungere nel file starter.a il seguente codice:
    Entry:
        sub.l   a0,a0
        movec   a0,vrb
        bsr     InitRBug
        trap    #15
        bra     main
        ends
    

    Con questo accorgimento scrivendo la riga di comando eput -r -s image il programma viene caricato e lanciato ma si ferma sull'istruzione trap . Attivando sulla scheda master RBUG si può fare il debugging del programma che gira sulla scheda slave: esecuzione passo passo, modifica di registri, ecc.
    Prima di partire è bene togliere il caricamento del disco virtuale nella fase di inizializzazione, con RBUG ci vuole un tempo enormemente lungo per fare quest'operazione. Per fare ciò basta modificare la seguente riga che si trova all'inizio del file disk.c:
    #define UpLd 1
    
    Si deve semplicemente sostituire l'uno con uno zero, ricompilare e poi partire con RBUG.


    [Home] Back to Lucio's Home page.