Created
July 12, 2025 10:27
-
-
Save wolfmanjm/3d210dfdf6384a4c8f38623b31b41daa to your computer and use it in GitHub Desktop.
neopixel.fs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| \ neopixel.fs traffic lights a neopixel on pin 16, done in assembly bit blitting the data | |
| : neopixel | |
| [ | |
| $7179 h, \ addi sp,sp,-48 | |
| $c006 h, \ sw ra,0(sp) | |
| $c20e h, \ sw gp,4(sp) | |
| $c412 h, \ sw tp,8(sp) | |
| $c616 h, \ sw t0,12(sp) | |
| $c81a h, \ sw t1,16(sp) | |
| $ca1e h, \ sw t2,20(sp) | |
| $cc22 h, \ sw s0,24(sp) | |
| $ce26 h, \ sw s1,28(sp) | |
| $d02a h, \ sw a0,32(sp) | |
| $d22e h, \ sw a1,36(sp) | |
| $d432 h, \ sw a2,40(sp) | |
| $d636 h, \ sw a3,44(sp) | |
| $22f1 h, \ jal 20000248 <main> | |
| $4082 h, \ lw ra,0(sp) | |
| $4192 h, \ lw gp,4(sp) | |
| $4222 h, \ lw tp,8(sp) | |
| $42b2 h, \ lw t0,12(sp) | |
| $4342 h, \ lw t1,16(sp) | |
| $43d2 h, \ lw t2,20(sp) | |
| $4462 h, \ lw s0,24(sp) | |
| $44f2 h, \ lw s1,28(sp) | |
| $5502 h, \ lw a0,32(sp) | |
| $5592 h, \ lw a1,36(sp) | |
| $5622 h, \ lw a2,40(sp) | |
| $56b2 h, \ lw a3,44(sp) | |
| $6145 h, \ addi sp,sp,48 | |
| $8082 h, \ ret | |
| $b0002373 , \ csrr t1,mcycle | |
| $06830293 , \ addi t0,t1,104 | |
| $b0002373 , \ csrr t1,mcycle | |
| $fe536ee3 , \ bltu t1,t0,200000a2 <delay800ns+0x8> | |
| $8082 h, \ ret | |
| $b0002373 , \ csrr t1,mcycle | |
| $06330293 , \ addi t0,t1,99 | |
| $b0002373 , \ csrr t1,mcycle | |
| $fe536ee3 , \ bltu t1,t0,200000b4 <delay850ns+0x8> | |
| $8082 h, \ ret | |
| $b0002373 , \ csrr t1,mcycle | |
| $02930293 , \ addi t0,t1,41 | |
| $b0002373 , \ csrr t1,mcycle | |
| $fe536ee3 , \ bltu t1,t0,200000c6 <delay450ns+0x8> | |
| $8082 h, \ ret | |
| $b0002373 , \ csrr t1,mcycle | |
| $02d30293 , \ addi t0,t1,45 | |
| $b0002373 , \ csrr t1,mcycle | |
| $fe536ee3 , \ bltu t1,t0,200000d8 <delay400ns+0x8> | |
| $8082 h, \ ret | |
| $1171 h, \ addi sp,sp,-4 | |
| $c006 h, \ sw ra,0(sp) | |
| $3e800293 , \ li t0,1000 | |
| $02550533 , \ mul a0,a0,t0 | |
| $3775 h, \ jal 2000009a <delay800ns> | |
| $ce050513 , \ addi a0,a0,-800 | |
| $fea04de3 , \ bgtz a0,200000ee <delayus+0xc> | |
| $4082 h, \ lw ra,0(sp) | |
| $0111 h, \ addi sp,sp,4 | |
| $8082 h, \ ret | |
| $1171 h, \ addi sp,sp,-4 | |
| $c006 h, \ sw ra,0(sp) | |
| $85aa h, \ mv a1,a0 | |
| $3e800513 , \ li a0,1000 | |
| $3fe9 h, \ jal 200000e2 <delayus> | |
| $15fd h, \ addi a1,a1,-1 | |
| $feb04ce3 , \ bgtz a1,20000104 <delayms+0x6> | |
| $4082 h, \ lw ra,0(sp) | |
| $0111 h, \ addi sp,sp,4 | |
| $8082 h, \ ret | |
| $28a01333 , \ bset t1,zero,a0 | |
| $d00002b7 , \ lui t0,0xd0000 | |
| $0062ac23 , \ sw t1,24(t0) # d0000018 <GPIO_OUT+0x8> | |
| $8082 h, \ ret | |
| $28a01333 , \ bset t1,zero,a0 | |
| $d00002b7 , \ lui t0,0xd0000 | |
| $0262a023 , \ sw t1,32(t0) # d0000020 <GPIO_OUT+0x10> | |
| $8082 h, \ ret | |
| $400382b7 , \ lui t0,0x40038 | |
| $205542b3 , \ sh2add t0,a0,t0 | |
| $0042a303 , \ lw t1,4(t0) # 40038004 <GPIO_0_PAD> | |
| $04034313 , \ xori t1,t1,64 | |
| $0c037313 , \ andi t1,t1,192 | |
| $6385 h, \ lui t2,0x1 | |
| $0072e2b3 , \ or t0,t0,t2 | |
| $0062a223 , \ sw t1,4(t0) | |
| $400282b7 , \ lui t0,0x40028 | |
| $205562b3 , \ sh3add t0,a0,t0 | |
| $00b2a223 , \ sw a1,4(t0) # 40028004 <GPIO_0_CTRL> | |
| $4003b2b7 , \ lui t0,0x4003b | |
| $205542b3 , \ sh2add t0,a0,t0 | |
| $10000313 , \ li t1,256 | |
| $0062a223 , \ sw t1,4(t0) # 4003b004 <GPIO_25_PAD+0x2f9c> | |
| $8082 h, \ ret | |
| $400382b7 , \ lui t0,0x40038 | |
| $205542b3 , \ sh2add t0,a0,t0 | |
| $0042a303 , \ lw t1,4(t0) # 40038004 <GPIO_0_PAD> | |
| $fcf00393 , \ li t2,-49 | |
| $00737333 , \ and t1,t1,t2 | |
| $00459393 , \ slli t2,a1,0x4 | |
| $00736333 , \ or t1,t1,t2 | |
| $0062a223 , \ sw t1,4(t0) | |
| $8082 h, \ ret | |
| $1161 h, \ addi sp,sp,-8 | |
| $c006 h, \ sw ra,0(sp) | |
| $c226 h, \ sw s1,4(sp) | |
| $84aa h, \ mv s1,a0 | |
| $d00002b7 , \ lui t0,0xd0000 | |
| $28901333 , \ bset t1,zero,s1 | |
| $0462a023 , \ sw t1,64(t0) # d0000040 <GPIO_OE+0x10> | |
| $0262a023 , \ sw t1,32(t0) | |
| $8526 h, \ mv a0,s1 | |
| $4595 h, \ li a1,5 | |
| $3759 h, \ jal 20000132 <set_function> | |
| $d00002b7 , \ lui t0,0xd0000 | |
| $28901333 , \ bset t1,zero,s1 | |
| $0262ac23 , \ sw t1,56(t0) # d0000038 <GPIO_OE+0x8> | |
| $8526 h, \ mv a0,s1 | |
| $458d h, \ li a1,3 | |
| $3f45 h, \ jal 2000016e <set_drive> | |
| $4082 h, \ lw ra,0(sp) | |
| $4492 h, \ lw s1,4(sp) | |
| $0121 h, \ addi sp,sp,8 | |
| $8082 h, \ ret | |
| $1171 h, \ addi sp,sp,-4 | |
| $c006 h, \ sw ra,0(sp) | |
| $4541 h, \ li a0,16 | |
| $37a1 h, \ jal 20000116 <pin_high> | |
| $35e9 h, \ jal 2000009a <delay800ns> | |
| $3f89 h, \ jal 20000124 <pin_low> | |
| $35ed h, \ jal 200000be <delay450ns> | |
| $4082 h, \ lw ra,0(sp) | |
| $0111 h, \ addi sp,sp,4 | |
| $8082 h, \ ret | |
| $1171 h, \ addi sp,sp,-4 | |
| $c006 h, \ sw ra,0(sp) | |
| $4541 h, \ li a0,16 | |
| $3f15 h, \ jal 20000116 <pin_high> | |
| $35f5 h, \ jal 200000d0 <delay400ns> | |
| $3f3d h, \ jal 20000124 <pin_low> | |
| $35d1 h, \ jal 200000ac <delay850ns> | |
| $4082 h, \ lw ra,0(sp) | |
| $0111 h, \ addi sp,sp,4 | |
| $8082 h, \ ret | |
| $1171 h, \ addi sp,sp,-4 | |
| $c006 h, \ sw ra,0(sp) | |
| $8e2a h, \ mv t3,a0 | |
| $43dd h, \ li t2,23 | |
| $487e5eb3 , \ bext t4,t3,t2 | |
| $000e8463 , \ beqz t4,20000204 <np_send+0x14> | |
| $37e1 h, \ jal 200001c8 <np_one> | |
| $a011 h, \ j 20000206 <np_send+0x16> | |
| $3fe1 h, \ jal 200001dc <np_zero> | |
| $13fd h, \ addi t2,t2,-1 # fff <RVCSR_MEINEXT_OFFSET+0x41b> | |
| $fe03d8e3 , \ bgez t2,200001f8 <np_send+0x8> | |
| $4082 h, \ lw ra,0(sp) | |
| $0111 h, \ addi sp,sp,4 | |
| $8082 h, \ ret | |
| $01059293 , \ slli t0,a1,0x10 | |
| $00851313 , \ slli t1,a0,0x8 | |
| $0062e2b3 , \ or t0,t0,t1 | |
| $00c2e2b3 , \ or t0,t0,a2 | |
| $8516 h, \ mv a0,t0 | |
| $8082 h, \ ret | |
| $1171 h, \ addi sp,sp,-4 | |
| $c006 h, \ sw ra,0(sp) | |
| $37e5 h, \ jal 20000212 <np_setrgb> | |
| $37d1 h, \ jal 200001f0 <np_send> | |
| $4082 h, \ lw ra,0(sp) | |
| $0111 h, \ addi sp,sp,4 | |
| $8082 h, \ ret | |
| $1171 h, \ addi sp,sp,-4 | |
| $c006 h, \ sw ra,0(sp) | |
| $4541 h, \ li a0,16 | |
| $35ed h, \ jal 20000124 <pin_low> | |
| $06400513 , \ li a0,100 | |
| $354d h, \ jal 200000e2 <delayus> | |
| $4082 h, \ lw ra,0(sp) | |
| $0111 h, \ addi sp,sp,4 | |
| $8082 h, \ ret | |
| $1171 h, \ addi sp,sp,-4 | |
| $c006 h, \ sw ra,0(sp) | |
| $32025073 , \ csrwi mcountinhibit,4 | |
| $4541 h, \ li a0,16 | |
| $3f3d h, \ jal 20000190 <set_pin_output> | |
| $3dc1 h, \ jal 20000124 <pin_low> | |
| $0ff00513 , \ li a0,255 | |
| $4581 h, \ li a1,0 | |
| $4601 h, \ li a2,0 | |
| $37e1 h, \ jal 20000226 <np_send_rgb> | |
| $3fd1 h, \ jal 20000234 <np_reset> | |
| $3e800513 , \ li a0,1000 | |
| $3d61 h, \ jal 200000fe <delayms> | |
| $4501 h, \ li a0,0 | |
| $0ff00593 , \ li a1,255 | |
| $4601 h, \ li a2,0 | |
| $3f5d h, \ jal 20000226 <np_send_rgb> | |
| $37c9 h, \ jal 20000234 <np_reset> | |
| $3e800513 , \ li a0,1000 | |
| $3559 h, \ jal 200000fe <delayms> | |
| $4501 h, \ li a0,0 | |
| $4581 h, \ li a1,0 | |
| $0ff00613 , \ li a2,255 | |
| $3755 h, \ jal 20000226 <np_send_rgb> | |
| $3f45 h, \ jal 20000234 <np_reset> | |
| $3e800513 , \ li a0,1000 | |
| $3d95 h, \ jal 200000fe <delayms> | |
| $0ff00513 , \ li a0,255 | |
| $0ff00593 , \ li a1,255 | |
| $0ff00613 , \ li a2,255 | |
| $3779 h, \ jal 20000226 <np_send_rgb> | |
| $3f69 h, \ jal 20000234 <np_reset> | |
| $3e800513 , \ li a0,1000 | |
| $3db9 h, \ jal 200000fe <delayms> | |
| \ $bf55 h, \ j 20000256 <main+0xe> | |
| $4082 h, \ lw ra,0(sp) | |
| $0111 h, \ addi sp,sp,4 | |
| $8082 h, \ ret | |
| ] | |
| ; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment