Fatti: Fatti: A. La presente controversia trae origine da un grave incidente della circolazione avvenuto il 13 agosto 1982, verso le 19.00, sulla carreggiata nord-sud della strada cantonale a quattro corsie del Monte Ceneri in territorio di Rivera, all'altezza del rettilineo che precede la curva a sinistra detta "curva degli ufficiali". Accortosi che la vettura dietro di lui - una Ford Fiesta 110 guidata da C._ - si era fermata sulla corsia d'emergenza e che dal cofano fuoriusciva del fumo, A._ ha a sua volta accostato il proprio veicolo. Dopo aver aiutato i passeggeri a scendere dall'auto e aver posto in salvo i bagagli, egli ha avanzato di qualche metro la sua auto ed è poi tornato a fianco della Ford con una coperta che ha gettato sul motore allo scopo di spegnere le fiamme. A quel momento si è prodotta una fiammata che lo ha fatto indietreggiare istintivamente di due o tre passi verso il centro della carreggiata, dove è stato travolto dalla vettura guidata da D._. A seguito dell'incidente A._ ha subito lo spostamento di due vertebre lombari, la frattura del femore, del ginocchio destro, di entrambi i polsi e di alcune costole; ha inoltre riportato alcune ferite lacero-contuse al capo. Non avendo egli più potuto riprendere completamente l'attività professionale, il suo datore di lavoro - E._ - gli ha riconosciuto un'incapacità lavorativa effettiva del 60% a far tempo dal 1° marzo 1984; il 1° ottobre 1993 lo ha poi prepensionato con un grado d'invalidità del 100%. A seguito dell'incidente A._ ha subito lo spostamento di due vertebre lombari, la frattura del femore, del ginocchio destro, di entrambi i polsi e di alcune costole; ha inoltre riportato alcune ferite lacero-contuse al capo. Non avendo egli più potuto riprendere completamente l'attività professionale, il suo datore di lavoro - E._ - gli ha riconosciuto un'incapacità lavorativa effettiva del 60% a far tempo dal 1° marzo 1984; il 1° ottobre 1993 lo ha poi prepensionato con un grado d'invalidità del 100%. B. L'11 marzo 1987 A._ ha convenuto l'assicurazione B._ - presso la quale era assicurato il veicolo guidato da D._ - dinanzi al Pretore del Distretto di Lugano, sezione 2, onde ottenere il pagamento di fr. 397'428.90. In sede di conclusioni egli ha aumentato la propria domanda a fr. 703'583.65 e in subordine a fr. 602'194.55 (già dedotto l'acconto di fr. 200'000.-- percepito pendente causa e inclusi gli interessi maturati sino al 30 marzo 2000). B._ si è opposta alla petizione asserendo che ad A._ andava attribuita una concolpa tale da giustificare la riduzione delle sue pretese nella misura del 50%, che la sua incapacità lavorativa era unicamente del 50% - e non del 60% rispettivamente del 100% come ammesso da E._ - nonché, infine, che le singole posizioni di danno non erano state sufficientemente sostanziate né tantomeno provate. Statuendo il 13 giugno 2002, il Pretore ha condannato la B._ al pagamento di fr. 245'537.30, oltre interessi. Egli è giunto alla conclusione che ad A._ non poteva essere ascritta alcuna concolpa nell'incidente e, ai fini del suo giudizio, ha tenuto conto dell'incapacità lavorativa riconosciutagli dal datore di lavoro. Il giudice ha quindi concesso ad A._ fr. 191'305.-- per perdita di guadagno, fr. 9'032.40 per perdita su gratifiche d'anzianità, fr. 79'900.-- per perdita di guadagno da attività viticola, fr. 2'147.-- per spese di trasferta, fr. 914.80 per spese di soggiorno in Ticino e di sostituzione abiti, fr. 623.40 per spese d'ospedalizzazione a Sion, fr. 50'000.-- per torto morale, fr. 8'142.-- a titolo di supplemento di quote cassa malati, fr. 1'115.50 per costi complementari non assunti dalla cassa malati al 1° ottobre 1987 e fr. 21'695.70 per quelli futuri. A questi importi - previa deduzione dell'acconto di fr. 200'000.-- - sono stati infine aggiunti gli interessi compensatori del 5% dalla data media del 13 agosto 1992, per complessivi fr. 80'931.30. Statuendo il 13 giugno 2002, il Pretore ha condannato la B._ al pagamento di fr. 245'537.30, oltre interessi. Egli è giunto alla conclusione che ad A._ non poteva essere ascritta alcuna concolpa nell'incidente e, ai fini del suo giudizio, ha tenuto conto dell'incapacità lavorativa riconosciutagli dal datore di lavoro. Il giudice ha quindi concesso ad A._ fr. 191'305.-- per perdita di guadagno, fr. 9'032.40 per perdita su gratifiche d'anzianità, fr. 79'900.-- per perdita di guadagno da attività viticola, fr. 2'147.-- per spese di trasferta, fr. 914.80 per spese di soggiorno in Ticino e di sostituzione abiti, fr. 623.40 per spese d'ospedalizzazione a Sion, fr. 50'000.-- per torto morale, fr. 8'142.-- a titolo di supplemento di quote cassa malati, fr. 1'115.50 per costi complementari non assunti dalla cassa malati al 1° ottobre 1987 e fr. 21'695.70 per quelli futuri. A questi importi - previa deduzione dell'acconto di fr. 200'000.-- - sono stati infine aggiunti gli interessi compensatori del 5% dalla data media del 13 agosto 1992, per complessivi fr. 80'931.30. C. La predetta sentenza è stata impugnata da entrambe le parti. Con l'appello principale la B._ ha ribadito la richiesta volta alla reiezione della petizione, insistendo in particolare sull'esistenza di un'importante concolpa di A._, tale da giustificare la riduzione del risarcimento del 50%, e contestandogli la possibilità di prevalersi di un'incapacità lavorativa del 60% rispettivamente del 100%. Dopo aver proposto di dichiarare nullo l'appello principale, rispettivamente di respingerlo integralmente, con l'appello adesivo A._ ha invece domandato il versamento di fr. 817'473.95. Evase le censure d'ordine sollevate dalle parti nelle rispettive osservazioni, concernenti, da un lato, la ricevibilità dell'appello principale - privo della formale dichiarazione d'impugnazione - e, dall'altro, la facoltà di produrre nuova documentazione in sede di appello, la Corte cantonale ha modificato il giudizio di prima istanza riducendo l'importo concesso ad A._ a fr. 98'965.60, oltre interessi al 5% a far tempo dal 14 giugno 2002. I giudici del Tribunale d'appello hanno disatteso la pronunzia pretorile in più punti. Essi hanno infatti attribuito ad A._ una lieve concolpa nell'incidente, con conseguente riduzione del 25% dell'obbligo di risarcimento a carico della B._; hanno deciso di riferirsi al grado d'incapacità di lavoro del 50% indicato dal perito giudiziario - e non a quello del 60%, rispettivamente del 100%, ammesso dal datore di lavoro - come pure di riconoscere ad A._ la facoltà di aumentare le proprie pretese in sede di conclusioni. Il calcolo del risarcimento è venuto pertanto a modificarsi in maniera radicale. Evase le censure d'ordine sollevate dalle parti nelle rispettive osservazioni, concernenti, da un lato, la ricevibilità dell'appello principale - privo della formale dichiarazione d'impugnazione - e, dall'altro, la facoltà di produrre nuova documentazione in sede di appello, la Corte cantonale ha modificato il giudizio di prima istanza riducendo l'importo concesso ad A._ a fr. 98'965.60, oltre interessi al 5% a far tempo dal 14 giugno 2002. I giudici del Tribunale d'appello hanno disatteso la pronunzia pretorile in più punti. Essi hanno infatti attribuito ad A._ una lieve concolpa nell'incidente, con conseguente riduzione del 25% dell'obbligo di risarcimento a carico della B._; hanno deciso di riferirsi al grado d'incapacità di lavoro del 50% indicato dal perito giudiziario - e non a quello del 60%, rispettivamente del 100%, ammesso dal datore di lavoro - come pure di riconoscere ad A._ la facoltà di aumentare le proprie pretese in sede di conclusioni. Il calcolo del risarcimento è venuto pertanto a modificarsi in maniera radicale. D. Contro questa decisione A._ è insorto dinanzi al Tribunale federale, il 12 settembre 2003, sia con ricorso di diritto pubblico che con ricorso per riforma. Con il primo rimedio, fondato sostanzialmente sulla violazione del divieto dell'arbitrio sancito dall'art. 9 Cost., egli postula l'annullamento della sentenza impugnata. Nella risposta del 15 dicembre 2003 la B._ ha proposto la reiezione del gravame nella misura in cui ammissibile, mentre l'autorità cantonale ha rinunciato a presentare osservazioni.