Add magic cursor demo part.
This commit is contained in:
parent
85bcb4f339
commit
f5b601f204
93
src/magiccursor.c
Normal file
93
src/magiccursor.c
Normal file
@ -0,0 +1,93 @@
|
||||
#include "magiccursor.h"
|
||||
|
||||
#include "crt.h"
|
||||
#include "cursor.h"
|
||||
#include "delay.h"
|
||||
#include "io.h"
|
||||
#include "printf.h"
|
||||
#include "video.h"
|
||||
|
||||
#include <stdbool.h>
|
||||
|
||||
void magicCursor_run(void) {
|
||||
cursor_enable(false);
|
||||
video_cls();
|
||||
|
||||
// maximum raster raster
|
||||
io_out(0xA0, 9);
|
||||
io_out(0xA1, 0xf);
|
||||
|
||||
video_enableVerticalStretch(false);
|
||||
video_enableHorizontalStretch(false);
|
||||
video_locate(12, 35);
|
||||
printf("THE CURSOR");
|
||||
crt_waitFrames(50);
|
||||
|
||||
cursor_setXY(45, 12);
|
||||
cursor_setStartRaster(13);
|
||||
cursor_setEndRaster(13);
|
||||
cursor_blink(CURSOR_BLINK_FAST);
|
||||
cursor_enable(true);
|
||||
crt_waitFrames(100);
|
||||
|
||||
cursor_blink(CURSOR_BLINK_SLOW);
|
||||
crt_waitFrames(100);
|
||||
|
||||
cursor_blink(CURSOR_BLINK_NONE);
|
||||
crt_waitFrames(100);
|
||||
|
||||
for (uint8_t x = 45; x >= 40; --x) {
|
||||
cursor_setXY(x, 12);
|
||||
crt_waitFrames(20);
|
||||
}
|
||||
cursor_setXY(40, 13);
|
||||
crt_waitFrames(100);
|
||||
|
||||
for (int8_t i = 13; i >= 0; --i) {
|
||||
cursor_setStartRaster(i);
|
||||
cursor_setEndRaster(i);
|
||||
crt_waitFrames(4);
|
||||
}
|
||||
|
||||
for (uint8_t j = 0; j < 3; ++j) {
|
||||
for (int8_t i = 1; i < 16; ++i) {
|
||||
cursor_setStartRaster(i);
|
||||
cursor_setEndRaster(i);
|
||||
crt_waitFrames(4);
|
||||
}
|
||||
for (int8_t i = 14; i >= 0; --i) {
|
||||
cursor_setStartRaster(i);
|
||||
cursor_setEndRaster(i);
|
||||
crt_waitFrames(4);
|
||||
}
|
||||
}
|
||||
|
||||
for (int8_t i = 1; i < 64; ++i) {
|
||||
cursor_setXY(40, 13 + i / 16);
|
||||
cursor_setStartRaster(i % 16);
|
||||
cursor_setEndRaster(i % 16);
|
||||
crt_waitFrames(4);
|
||||
}
|
||||
|
||||
cursor_setXY(40, 16);
|
||||
for (uint8_t j = 0; j < 3; ++j) {
|
||||
for (int8_t i = 14; i >= 0; --i) {
|
||||
cursor_setStartRaster(i);
|
||||
crt_waitFrames(4);
|
||||
}
|
||||
for (int8_t i = 14; i >= 0; --i) {
|
||||
cursor_setEndRaster(i);
|
||||
crt_waitFrames(4);
|
||||
}
|
||||
for (int8_t i = 1; i < 16; ++i) {
|
||||
cursor_setEndRaster(i);
|
||||
crt_waitFrames(4);
|
||||
}
|
||||
for (int8_t i = 1; i < 16; ++i) {
|
||||
cursor_setStartRaster(i);
|
||||
crt_waitFrames(4);
|
||||
}
|
||||
}
|
||||
|
||||
cursor_enable(false);
|
||||
}
|
6
src/magiccursor.h
Normal file
6
src/magiccursor.h
Normal file
@ -0,0 +1,6 @@
|
||||
#ifndef CEDA_DEMO_MAGIC_CURSOR_H
|
||||
#define CEDA_DEMO_MAGIC_CURSOR_H
|
||||
|
||||
void magicCursor_run(void);
|
||||
|
||||
#endif // CEDA_DEMO_MAGIC_CURSOR_H
|
Loading…
Reference in New Issue
Block a user