From: ara.t.howard@... Date: 2006-10-27T07:33:30+09:00 Subject: Re: modeling a simple cpu On Fri, 27 Oct 2006, Paul Lutus wrote: > Gavin Kistner wrote: > >> From: Ara.T.Howard [mailto:ara.t.howard@noaa.gov] >>> i need to model the on board cpu of a satellite in order to >>> mock running uploaded commands. basically i need to model >>> the internal state and all incoming commands so i can >>> determine register states at a given point in time. >> >> Not to distract the thread from your very real question, but you do >> realize that you have one of the coolest jobs around, right? :) > > The last processor I successfully modeled was the old 6502 (Apple II), since > then processor behavior has become too difficult to sort out in any > reliable way (IMHO). > > It would be interesting for the OP to reveal what kind of processor is > involved, and how complex. I am going to assume it doesn't support > interrupts or threads, otherwise there is little chance to mimic its > behavior. it's for these guys http://heasarc.nasa.gov/docs/heasarc/missions/dmsp.html http://www.ngdc.noaa.gov/dmsp/ at this point i only need to model a limited subset of the processor (i don't know the type yet). basically i'll be executing something long these lines !================================================================= !***** GAIN ORBIT MEMORY FOR OPS45 26 JAN 04 - 01 FEB 04 ***** !================================================================= ! 0.000 CMD OAXSPG 0x00 ; 807E# (PAGE=0) 0.000 CMD OGNASG LIN ; 0010# ASGC LIN ! 0.076 CMD OAXLOD 0xA2 ; 511E# (112dB) (SED) 0.076 CMD OAXSTR 0x44 ; A22E# (BC MAX) ! 0.316 CMD OAXLOD 0x03 ; 819E# (.08) (VED-1/00) 0.316 CMD OAXSTR 0x48 ; A42E# (BRDF X2) ! 0.324 CMD OAXLOD 0x06 ; 831E# (.25) (VED-00/12) 0.324 CMD OAXSTR 0x46 ; 232E# (BRDF HRD) 0.324 CMD OAXLOD 0x9E ; 4F1E# (136dB) 0.324 CMD OAXSTR 0x44 ; A22E# (BC MAX) ! 0.326 CMD OAXLOD 0x8E ; C71E# (118dB) (VES) 0.326 CMD OAXSTR 0x44 ; A22E# (BC MAX) ! 0.650 CMD OAXLOD 0x29 ; 149E# (.02) 0.650 CMD OAXSTR 0x48 ; A42E# (BRDF X2) .... .... .... as you can tell these are load/store/add instuctions. there are no parameters, all the values are burned on board before flight - so there are only certain values you can do ops with. as you can tell it's ultra simple - basically i'll just have to model rom, ram, registes, and ops. hey - a smell a ruby quiz! ;-) -a -- my religion is very simple. my religion is kindness. -- the dalai lama