Files
reala-misaki 65112b9305 Session 1: hardware research, content measurement, codec decision, MAME harness
Verified GVRAM is one word-access per pixel in ALL color modes; chose 256-color
256x192 with movem.l bursts (page 1 sacrificed as double-buffer).

Measured 8 scenes from the Blu-ray source: blit costs under 8% of the 12fps
cycle budget, so I/O is the bottleneck, not CPU. Naive delta+RLE reaches only
3.2:1 (365 KB/s, 470MB) -> decision to use 4x4 vector quantization (~30 KB/s).

"Shot on twos" assumption failed: the transfer has zero duplicate frames, so
12fps requires explicit decimation.

Documents three false measurement results and their root causes (per-frame
Floyd-Steinberg dithering, temporal denoise, exact-match dedupe on noisy source).

MAME Lua injection harness works and is reusable for cycle-cost measurement;
the IOCS _B_READ disk benchmark is blocked returning -1.

Claude-Session: https://claude.ai/code/session_01194oWYW8DQXK1SZ2DnChW6
2026-08-23 11:23:49 -07:00

37 lines
1.1 KiB
ArmAsm

FLAG = $18000
STAT = $18004
NREAD = $18008
BUF = $20000
CHUNK = 65536 ; bytes per read
RECS = CHUNK/256 ; 256-byte records per read
NCHUNK = 16 ; 16 x 64KB = 1MB total
org $10000
start:
move.l #1,FLAG.l ; signal: started
move.l #NCHUNK,d6
moveq #0,d5 ; record position
moveq #0,d4 ; completed count
loop:
movem.l d4-d6,-(sp)
moveq #$46,d0 ; _B_READ
move.l #$80000000,d1 ; PDA=$80 (SASI unit0), mode=0
move.l d5,d2 ; position (records)
move.l #CHUNK,d3 ; byte count
lea BUF,a1
trap #15
movem.l (sp)+,d4-d6
move.l d0,STAT.l ; last status
tst.l d0
bmi.s failed
addq.l #1,d4
move.l d4,NREAD.l
add.l #RECS,d5
subq.l #1,d6
bne.s loop
move.l #$FF,FLAG.l ; signal: done OK
stop: bra.s stop
failed:
move.l #$EE,FLAG.l ; signal: error
bra.s stop