mirror of
https://github.com/sehugg/8bitworkshop.git
synced 2024-10-01 20:57:38 +00:00
56 lines
1.2 KiB
NASM
56 lines
1.2 KiB
NASM
|
.arch femto16
|
||
|
|
||
|
.include "hvsync_generator.v"
|
||
|
.include "font_cp437_8x8.v"
|
||
|
.include "ram.v"
|
||
|
.include "tile_renderer.v"
|
||
|
.include "sprite_scanline_renderer.v"
|
||
|
.include "lfsr.v"
|
||
|
.include "sound_generator.v"
|
||
|
.include "cpu16.v"
|
||
|
.include "cpu_platform.v"
|
||
|
.module cpu_platform
|
||
|
|
||
|
.org 0x8000
|
||
|
.len 1024
|
||
|
mov sp,@$6fff
|
||
|
mov dx,@InitPageTable
|
||
|
jsr dx
|
||
|
mov ax,@$4ffe
|
||
|
mov dx,@ClearTiles
|
||
|
jsr dx
|
||
|
mov dx,@ClearSprites
|
||
|
jsr dx
|
||
|
reset
|
||
|
InitPageTable:
|
||
|
mov ax,@$6000 ; screen buffer
|
||
|
mov bx,@$7e00 ; page table start
|
||
|
mov cx,#32 ; 32 rows
|
||
|
InitPTLoop:
|
||
|
mov [bx],ax
|
||
|
add ax,#32
|
||
|
inc bx
|
||
|
dec cx
|
||
|
bnz InitPTLoop
|
||
|
rts
|
||
|
ClearTiles:
|
||
|
mov bx,@$6000
|
||
|
mov cx,@$390
|
||
|
ClearLoop:
|
||
|
mov [bx],ax
|
||
|
inc bx
|
||
|
dec cx
|
||
|
bnz ClearLoop
|
||
|
rts
|
||
|
ClearSprites:
|
||
|
mov bx,@$7f00
|
||
|
mov ax,#0
|
||
|
mov cx,#$40
|
||
|
ClearSLoop:
|
||
|
mov ax,[bx]
|
||
|
add ax,@$101
|
||
|
mov [bx],ax
|
||
|
inc bx
|
||
|
dec cx
|
||
|
bnz ClearSLoop
|