#include "types.h" #include "screen.h" volatile uint16_t* screen_base_p = 0; void* GetVRAMAddress() { __asm__("mov.l syscall_adress, r2\n" "mov.l getVRAM, r0\n" "jmp @r2\n" "nop\n" "syscall_adress: .long 0x80020070\n" "getVRAM: .long 0x01E6"); } void initScreen() { screen_base_p=GetVRAMAddress(); Bdisp_EnableColor(1); EnableStatusArea(3); } void stopScreen() { Bdisp_EnableColor(0); } void set_pixel(uint16_t x, uint8_t y, uint16_t c) { if(x < SCREEN_WIDTH && y < SCREEN_HEIGHT) screen_base_p[y*SCREEN_WIDTH+x]=c; } void draw_vline(uint16_t x, uint8_t y1, uint8_t y2, uint32_t c) { uint8_t i; for(i=0;i<=y2-y1;i++) set_pixel(x,y1+i,c); }