vwestlife
Veteran Member
Early articles on the IBM PC showed it being used with an Amdek monitor, which was then a very popular choice for other computers which didn't (yet) provide their own color monitor, such as the Apple II and Atari 800.
That is the maximum so presumably most bytes will be transferred over the span of fewer horizontal retraces. Looking at the horizontal refresh loop (mvm_1 to mvm_h_wait), it looks like multiple single byte transfers would be handled between each vertical refresh cycle. I don't have the proper system to profile the actual code speed and determine how many bytes will be transferred.
mvm_1:
dec bx
mvm_h_refresh:
in al,dx
test al,h_retrace
jnz mvm_h_refresh ; wait for a non retrace period
; the next statement is commented out to prevent comm char loss
; cli ; disable interrupts while waiting (not long)
mvm_h_wait:
in al,dx ; get the retrace status
test al,h_retrace ; check for retrace in progress
jz mvm_h_wait ; wait until retrace
movsb ; now move one byte
; sti ; and now enable interrupts again
cmp bx,0 ; are we finished?
je mvm_end
loop mvm_1 ; only if cx not 0
cmp bx,0
je mvm_end
Not necessarily more than 1 byte per horizontal refresh but certainly more than one byte over the span of 196 horizontal refreshes between vertical refreshes.
Sure... but it's the one byte per each horizontal refresh I was talking about. I was never arguing that it couldn't move... 196 (each horizontal) + 210 (vertical blank) = 406 bytes per frame.
210 is how many words it moves during vertical blank, not bytes. So it adds up to 616 bytes per frame.
And, this snow is just in software that uses the "i" or intensity bit? So...... it might be easier to just hex-edit the MODM.COM to not issue any high bit colors?
The author was on crack, or they mistook the ability to draw text at "full resolution" in graphics mode for real redefinable characters.- in that article it says "a redefinable character set like the Atari 800" - what's up with that?