Apps/FillScr: Rewrite from nasm to fasm
This commit is contained in:
@@ -521,6 +521,7 @@ tup.append_table(img_files, {
|
||||
{"LIB/SORT.OBJ", VAR_PROGS .. "/develop/libraries/sorter/sort.obj"},
|
||||
{"LIB/TINYGL.OBJ", VAR_PROGS .. "/develop/libraries/TinyGL/asm_fork/tinygl.obj"},
|
||||
{"MEDIA/ANIMAGE", VAR_PROGS .. "/media/animage/trunk/animage"},
|
||||
{"MEDIA/FILLSCR", VAR_PROGS .. "/media/FillScr/fillscr"},
|
||||
{"MEDIA/KIV", VAR_PROGS .. "/media/kiv/trunk/kiv"},
|
||||
{"MEDIA/LISTPLAY", VAR_PROGS .. "/media/listplay/trunk/listplay"},
|
||||
{"MEDIA/MIDAMP", VAR_PROGS .. "/media/midamp/trunk/midamp"},
|
||||
@@ -649,7 +650,6 @@ tup.append_table(img_files, {
|
||||
{"ACLOCK", VAR_PROGS .. "/demos/aclock/trunk/aclock"},
|
||||
{"LOD", VAR_PROGS .. "/fs/lod/lod"},
|
||||
{"DEVELOP/GENFILES", VAR_PROGS .. "/testing/genfiles/GenFiles"},
|
||||
{"MEDIA/FILLSCR", VAR_PROGS .. "/media/FillScr/fillscr"},
|
||||
})
|
||||
tup.append_table(extra_files, {
|
||||
})
|
||||
|
@@ -1,2 +1,2 @@
|
||||
if tup.getconfig("NO_NASM") ~= "" then return end
|
||||
tup.rule("fillscr.asm", "nasm -f bin -o %o %f " .. tup.getconfig("KPACK_CMD"), "fillscr")
|
||||
if tup.getconfig("NO_FASM") ~= "" then return end
|
||||
tup.rule("fillscr.asm", "fasm %f %o " .. tup.getconfig("KPACK_CMD"), "fillscr")
|
||||
|
3
programs/media/FillScr/build.bat
Normal file
3
programs/media/FillScr/build.bat
Normal file
@@ -0,0 +1,3 @@
|
||||
@fasm.exe -m 16384 fillscr.asm fillscr.kex
|
||||
@kpack fillscr.kex
|
||||
pause
|
@@ -1,28 +1,29 @@
|
||||
; to compile: nasm -f bin fillscr.asm -o fillscr ;
|
||||
; to generate random colors use "fillscr rnd" ;
|
||||
; otherwise use "filscr r,g,b, r,g,b, r,g,b,..." ;
|
||||
ORG 0
|
||||
BITS 32
|
||||
; ---------------------------- ;
|
||||
points equ END
|
||||
POINTS_SIZE equ 108
|
||||
PARAMS_SIZE equ 256
|
||||
; ---------------------------- ;
|
||||
MENUET01 db 'MENUET01'
|
||||
use32
|
||||
org 0
|
||||
db 'MENUET01'
|
||||
version dd 1
|
||||
program.start dd START
|
||||
program.end dd END
|
||||
program.memory dd END + POINTS_SIZE + PARAMS_SIZE
|
||||
program.stack dd 0
|
||||
program.params dd END + POINTS_SIZE
|
||||
program.path dd 0
|
||||
dd program.start
|
||||
dd program.end
|
||||
dd program.memory
|
||||
dd program.stack
|
||||
dd program.params
|
||||
dd 0
|
||||
; ---------------------------- ;
|
||||
|
||||
include '../../macros.inc'
|
||||
include '../../KOSfuncs.inc'
|
||||
|
||||
; ---------------------------- ;
|
||||
POINTS_SIZE = 108
|
||||
points_count dd 0
|
||||
rnd dd 0
|
||||
; ---------------------------- ;
|
||||
START:
|
||||
align 4
|
||||
program.start:
|
||||
mov edi, points
|
||||
mov esi, [program.params]
|
||||
mov esi, dword[program.params]
|
||||
cmp [esi], dword "rnd"
|
||||
jne .not_rnd
|
||||
mov [points_count], dword POINTS_SIZE / 3
|
||||
@@ -125,32 +126,29 @@ START:
|
||||
@@:
|
||||
add edx, 2
|
||||
sub eax, edx
|
||||
jnle @@
|
||||
jnle @b
|
||||
sbb edx, -1
|
||||
shr edx, 1
|
||||
; set width, height
|
||||
mov eax, 15
|
||||
mov ebx, 1
|
||||
mov ecx, edx
|
||||
int 64
|
||||
mcall SF_BACKGROUND_SET,SSF_SIZE_BG
|
||||
; set "stretch"
|
||||
; mov eax, 15
|
||||
mov ebx, 4
|
||||
mov ecx, 2
|
||||
int 64
|
||||
mcall ,SSF_MODE_BG
|
||||
; put pixels
|
||||
; mov eax, 15
|
||||
mov ebx, 5
|
||||
mov ecx, points ; BBGGRRBBGGRR...
|
||||
xor edx, edx
|
||||
mov esi, [points_count] ; size of data = count * 3
|
||||
lea esi, [esi * 2 + esi]
|
||||
int 64
|
||||
mcall ,SSF_IMAGE_BG, points ; BBGGRRBBGGRR...
|
||||
; refresh screen
|
||||
; mov eax, 15
|
||||
mov ebx, 3
|
||||
int 64
|
||||
mcall ,SSF_REDRAW_BG
|
||||
; thread terminate
|
||||
mov eax, -1
|
||||
int 64
|
||||
END:
|
||||
mcall SF_TERMINATE_PROCESS
|
||||
|
||||
align 4
|
||||
program.end:
|
||||
points rb POINTS_SIZE
|
||||
program.params rb 256
|
||||
rb 256
|
||||
align 16
|
||||
program.stack:
|
||||
program.memory:
|
@@ -1,2 +0,0 @@
|
||||
nasm -f bin fillscr.asm -o fillscr
|
||||
pause
|
Reference in New Issue
Block a user