Compare commits

...

2 Commits

Author SHA1 Message Date
shikhin b38f9a663c Can now not create a file with open_file 2023-03-19 20:32:10 +05:30
shikhin 99288a9fff More TODO 2023-03-19 20:31:17 +05:30
3 changed files with 13 additions and 4 deletions

View File

@ -8,8 +8,11 @@ Feel free to add anything you think would fit in
### Basic stuff
* character-graphics windows
* model program to demonstrate windowing system
* ability to load and execute programs on the desktop
### Nice to have
* ability to load and execute programs on the desktop
* move windows
* resize windows
* ponysay

View File

@ -62,6 +62,7 @@ load_shell:
push word 0x1000
pop es
mov si, shell_name
xor dx, dx
call 0:open_file
xor bx, bx
xor di, di ; read
@ -90,7 +91,7 @@ draw:
; Draw windows
push cs ; Return segment
push word mainloop ; Return offset
mov bx, [window_chain_head]
mov bx, [di - mouse_column + window_chain_head]
mov ax, 0xf000
and ax, bx
push ax ; Call segment
@ -100,7 +101,7 @@ draw:
retf
mainloop:
cmp byte [redraw], 0
cmp byte [di - mouse_column + redraw], 0
jne draw
mov bx, [di - mouse_column + mouse_x]
@ -299,6 +300,7 @@ shell_name db 'shell.bin', 0
; out:
; ax = LBA of first sector, 0 if no space left
; cx = length in sectors
; dx = non-zero => do not create new file
; di = dirent address (in GLOBAL_DIRENTS)
; [Far calls only]
open_file:
@ -354,6 +356,9 @@ open_file:
retf
.create_file:
test dx, dx
jnz .return
; TODO: zero out the sector for this file?
inc word [es:di]

View File

@ -44,6 +44,7 @@ process_event:
initialize:
; Set wallpaper
mov si, wallpaper_name
xor dx, dx
call PONYDOS_SEG:SYS_OPEN_FILE
mov bp, PONYDOS_SEG