Colour pinstripe/Display: Difference between revisions

(Colour pinstripe/Display in True BASIC)
Line 1,114:
{{out}}
See [https://www.dropbox.com/s/tg4zk4jkddkok8w/Mathematica_Pinstripes_Colored.png?dl=0 here].
 
=={{header|MIPS Assembly}}==
This isn't perfect, as the edges are cut off due to overscan. But this is as close as I could get:
<lang mips>.include "\SrcAll\Header.asm"
.include "\SrcAll\BasicMacros.asm"
.include "\SrcALL\AdvancedMacros.asm"
.include "\SrcALL\MemoryMap.asm"
 
.definelabel VRAMBASE,0xA0100008 ;the extra 8 accounts for overscan
.definelabel VRAMSIZE,0x12C00 ;320x240(decimal)
 
;;;;;;;;;;;;;;;;;;;;;;;;;
 
main:
la $a0,VRAMBASE
la $a1,colors
li $t1,0x4B00/8
 
LOOP1:
lh $t0,($a1)
sh $t0,($a0)
 
lh $t0,2($a1)
sh $t0,2($a0)
lh $t0,4($a1)
sh $t0,4($a0)
lh $t0,6($a1)
sh $t0,6($a0)
lh $t0,8($a1)
sh $t0,8($a0)
lh $t0,10($a1)
sh $t0,10($a0)
lh $t0,12($a1)
sh $t0,12($a0)
lh $t0,14($a1)
sh $t0,14($a0)
addiu $a0,16
subiu $t1,1
bnez $t1,LOOP1
nop
li $t1,0x4B00/16
LOOP2:
lh $t0,($a1)
sh $t0,($a0)
sh $t0,2($a0)
lh $t0,2($a1)
sh $t0,4($a0)
sh $t0,6($a0)
lh $t0,4($a1)
sh $t0,8($a0)
sh $t0,10($a0)
lh $t0,6($a1)
sh $t0,12($a0)
sh $t0,14($a0)
 
lh $t0,8($a1)
sh $t0,16($a0)
sh $t0,18($a0)
lh $t0,10($a1)
sh $t0,20($a0)
sh $t0,22($a0)
lh $t0,12($a1)
sh $t0,24($a0)
sh $t0,26($a0)
lh $t0,14($a1)
sh $t0,28($a0)
sh $t0,30($a0)
addiu $a0,32
subiu $t1,1
bnez $t1,LOOP2
nop
li $t1,0x4B00/32
LOOP3:
lh $t0,0($a1)
sh $t0,0($a0)
sh $t0,2($a0)
sh $t0,4($a0)
lh $t0,2($a1)
sh $t0,6($a0)
sh $t0,8($a0)
sh $t0,10($a0)
lh $t0,4($a1)
sh $t0,12($a0)
sh $t0,14($a0)
sh $t0,16($a0)
lh $t0,8($a1)
sh $t0,18($a0)
sh $t0,20($a0)
sh $t0,22($a0)
lh $t0,10($a1)
sh $t0,24($a0)
sh $t0,26($a0)
sh $t0,28($a0)
lh $t0,12($a1)
sh $t0,30($a0)
sh $t0,32($a0)
sh $t0,34($a0)
lh $t0,14($a1)
sh $t0,36($a0)
sh $t0,38($a0)
sh $t0,40($a0)
lh $t0,0($a1)
sh $t0,42($a0)
sh $t0,44($a0)
sh $t0,46($a0)
lh $t0,2($a1)
sh $t0,48($a0)
sh $t0,50($a0)
sh $t0,52($a0)
lh $t0,4($a1)
sh $t0,54($a0)
sh $t0,56($a0)
sh $t0,58($a0)
lh $t0,6($a1)
sh $t0,60($a0)
sh $t0,62($a0)
addiu $a0,64
subiu $t1,1
bnez $t1,LOOP3
nop
li $t1,0x4B00/32
LOOP4:
lh $t0,0($a1)
sh $t0,0($a0)
sh $t0,2($a0)
sh $t0,4($a0)
sh $t0,6($a0)
lh $t0,2($a1)
sh $t0,8($a0)
sh $t0,10($a0)
sh $t0,12($a0)
sh $t0,14($a0)
lh $t0,4($a1)
sh $t0,16($a0)
sh $t0,18($a0)
sh $t0,20($a0)
sh $t0,22($a0)
lh $t0,6($a1)
sh $t0,24($a0)
sh $t0,26($a0)
sh $t0,28($a0)
sh $t0,30($a0)
 
lh $t0,8($a1)
sh $t0,32($a0)
sh $t0,34($a0)
sh $t0,36($a0)
sh $t0,38($a0)
lh $t0,10($a1)
sh $t0,40($a0)
sh $t0,42($a0)
sh $t0,44($a0)
sh $t0,46($a0)
lh $t0,12($a1)
sh $t0,48($a0)
sh $t0,50($a0)
sh $t0,52($a0)
sh $t0,54($a0)
lh $t0,14($a1)
sh $t0,56($a0)
sh $t0,58($a0)
sh $t0,60($a0)
sh $t0,62($a0)
 
addiu $a0,64
subiu $t1,1
bnez $t1,LOOP4
nop
shutdown:
nop ;project 64 will throw an error and end the program if I don't have a NOP here. Real hardware doesn't care.
b shutdown
nop
colors:
;colors are approximate because I'm not sure how the bit patterns work.
.halfword 0x0000,0xf000,0x0f00,0x00f0,0xf0f0,0x7fff,0xff00,0xffff
.include "\SrcN64\Footer.asm"</lang>
 
{{out}}
[[https://ibb.co/y4gg97Z Output of Nintendo 64 emulator]]
 
=={{header|Nim}}==
1,489

edits