Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.arcetri.astro.it/irlab/fasti/progress/nics_wave/nics_0.txt
Дата изменения: Thu Jul 28 18:24:23 2005
Дата индексирования: Sat Dec 22 10:45:44 2007
Кодировка:

Поисковые слова: http www.badastronomy.com bad tv foxapollo.html
; nics_0.asm 12-12-2001
; Nics Waveforms for SVB1 serializer.
;
; taken from Comoretto's wf
;
; WARNING: all repetition index means value+1:
; 0 means 1 iteration, 2 means 3 iterationis, 255 (the max)
; means 256 iterations
; This apply on BOTH loop and output mask, so (LINE @ 0) means LINE for 1
; clock cycle

; some symbols
;
ZERO equ #0 ; all void
BASE equ ZERO ; standard no operation pattern
PIXEL equ #01 ; xclock
XSYNC equ #02 ; xsync
LINE equ #04 ; yclock
YSYNC equ #08 ; ysync
RSTX equ #10 ; Reset of all Quadrants
SOCX equ #20 ; ADC start (Start Of Conversion)
EOF equ #40 ; End of frame
READ equ #80 ; power to output buffers
mul equ 8 ; step (1 millisecond)
ROWS equ 512 ; Number of rows in a quadrant
ROWS4 equ 127 ; Number of rows in a quadrant/4
ROWSL equ 3 ; Number of loop to complete a quadrant
COL4 equ 255 ; Number of columns in a quadrant/4
COLL equ 1 ; Number of loop to complete a quadrant

; here we define the global output masks and symbols
orgd zero ; start of output masks
dummy255 data BASE @ 255 ; 255 * noop
smallnoharm data BASE @ (20*mul-1); the old small_no_harm
BASE10 data BASE @ (10*mul-1); base delay for TINT (10usecs)
;
; values for init and frame reset
VOID3 data BASE @ 2 ; BASE for 375ns
VOID2 data BASE @ 1 ; BASE for 250ns
VOID1 data BASE @ 0 ; BASE for 125ns
LINE1 data LINE @ 0 ; LINE for 125ns
RES5 data RSTX @ 4 ; RSTX for 625ns
YINIT data YSYNC @ 7 ; Y sync for 1 usec
XINIT data XSYNC @ 2 ; X sync for 375ns
XSYNC5 data (XSYNC+READ) @ 4; X sync+read for 625ns
PIXEL3 data (PIXEL+READ) @ 2; Xclock+read for 375ns
PIXEL1 data (PIXEL+READ) @ 0; Xclock+read for 125ns
SOCX2 data (SOCX+READ) @ 1 ; SOCX+read for 250ns
READ3 data READ @ 2 ; READ for 375ns
READ1 data READ @ 0 ; READ for 125ns
READ24 data READ @ 23 ; READ for 3000ns
;
TINT equ 1000 ; base time in milliseconds
TINTC equ 2 ; TINT / .5 sec
TINTB equ 250 ; 500 msecs
TINTA equ 200 ; 2000 usecs
nreset equ 0 ; how many reset to perform

; Global start, page 0
org 0
start
outm smallnoharm ; 20 usec of void

;
; We perform some reset
startr
loadc nreset ; number of reset to perform
resl0
; init of frame (wf10)
outm VOID2 ; all quiescent (250 nsec)
outm YINIT ; Y sync (1 usec)
outm VOID2 ; all quiescent (250 nsec)
outm XINIT ; X sync ( 375ns)
outm VOID2 ; all quiescent (250 nsec)

; reset loop (loop on 512 row, 512 times wf70)
loadb ROWSL ; ROWS > 256 we split in 4 parts
resl1
loada ROWS4 ; init of row counter
resl2
outm VOID1 ; all quiescent (125 nsec)
outm LINE1 ; Y clock (125 nsec)
outm VOID3 ; all quiescent (375 nsec)
outm RES5 ; Reset (625 nsec)
outm VOID1 ; all quiescent (125 nsec)
; end of inner loop
loopa resl2
; end of intermediate loop
loopb resl1

; loop on many resets
loopc resl0

; Reading frame: first read
; init of frame (wf10)
outm VOID2 ; all quiescent (250 nsec)
outm YINIT ; Y sync (1 usec)
outm VOID2 ; all quiescent (250 nsec)
outm XINIT ; X sync ( 375ns)
outm VOID2 ; all quiescent (250 nsec)
; begin of loop on row (512)
loadd ROWSL ; ROWS > 256 we split in 4 parts
read1
loadc ROWS4 ; init of row counter
read2
; yshift (wf20)
outm VOID1 ; all quiescent (125 nsec)
outm LINE1 ; Y clock (125 nsec)
;
; init of a row (wf50)
outm XSYNC5 ; XSYNC+READ (625 nsec)
outm READ3 ; READ (375ns)
outm PIXEL3 ; PIXEL+READ (375ns)
outm READ1 ; READ (125 ns)
;
; begin of loop on columns (512)
loadb COLL ; Columns > 256 we split in 4 parts
read3
loada COL4 ; init of row counter
read4
;
; we read a pixel (wf50):
outm READ24 ; READ (3000 ns)
outm PIXEL1 ; PIXEL+READ (125 ns)
outm SOCX2 ; SOCX+READ (250 ns)
outm READ1 ; READ (125 ns)
;
; end of inner pixel loop
loopa read4
; end of intermediate pixel loop
loopb read3
; end of inner row loop
loopc read2
; end of intermediate row loop
loopd read1

;
; integration time

; Here we start TINT

tint
loadc TINTC ; TINT / .5 seconds
tintc
loadb TINTB ; each unit is worth 2 msec
tintb
loada TINTA ; each unit is worth 10 usecs
tinta
outm BASE10 ; base delay - 10 usec
loopa tinta ; inner loop
loopb tintb ; medium loop
loopc tintc ; outer loop



; Reading frame: second read
; init of frame (wf10)
outm VOID2 ; all quiescent (250 nsec)
outm YINIT ; Y sync (1 usec)
outm VOID2 ; all quiescent (250 nsec)
outm XINIT ; X sync ( 375ns)
outm VOID2 ; all quiescent (250 nsec)
; begin of loop on row (512)
loadd ROWSL ; ROWS > 256 we split in 4 parts
read6
loadc ROWS4 ; init of row counter
read7
; yshift (wf20)
outm VOID1 ; all quiescent (125 nsec)
outm LINE1 ; Y clock (125 nsec)
;
; init of a row (wf50)
outm XSYNC5 ; XSYNC+READ (625 nsec)
outm READ3 ; READ (375ns)
outm PIXEL3 ; PIXEL+READ (375ns)
outm READ1 ; READ (125 ns)
;
; begin of loop on columns (512)
loadb COLL ; Columns > 256 we split in 4 parts
read8
loada COL4 ; init of row counter
read9
;
; we read a pixel (wf50):
outm READ24 ; READ (3000 ns)
outm PIXEL1 ; PIXEL+READ (125 ns)
outm SOCX2 ; SOCX+READ (250 ns)
outm READ1 ; READ (125 ns)
;
; end of inner pixel loop
loopa read9
; end of intermediate pixel loop
loopb read8
; end of inner row loop
loopc read7
; end of intermediate row loop
loopd read6

rest 0
end