;macro to put a byte to the screen .macro videobits BST r4,7 BLD R30,5 OUT 0x12,R30 BST r4,6 BLD R30,5 OUT 0x12,R30 nop nop BST r4,5 BLD R30,5 OUT 0x12,R30 nop nop BST r4,4 BLD R30,5 OUT 0x12,R30 nop nop BST r4,3 BLD R30,5 OUT 0x12,R30 nop nop BST r4,2 BLD R30,5 OUT 0x12,R30 nop nop BST r4,1 BLD R30,5 OUT 0x12,R30 nop nop BST r4,0 BLD R30,5 OUT 0x12,R30 ;nop ;nop .endm .global byteblast byteblast: ;screenindex is the input parameter push r26 push r27 mov r26, r24 ;copy screenindex to X reg mov r27, r25 IN R30,0x12 ; get the current sync state LD R4,X+ videobits LD R4,X+ videobits LD R4,X+ videobits LD R4,X+ videobits LD R4,X+ videobits LD R4,X+ videobits LD R4,X+ videobits LD R4,X+ videobits LD R4,X+ videobits LD R4,X+ videobits LD R4,X+ videobits LD R4,X+ videobits LD R4,X+ videobits LD R4,X+ videobits LD R4,X+ videobits LD R4,X videobits clt IN R30,0x12 BLD R30,5 OUT 0x12,R30 pop r27 pop r26 ret