Fix wnd_number in 016_#f01_#draw_all.t

This commit is contained in:
Ivan Baravy 2021-07-17 05:15:14 +03:00
parent ffa2480f2a
commit ba8e7940b4
5 changed files with 45 additions and 46 deletions

View File

@ -567,7 +567,7 @@ shell_dump_taskdata(int argc, char **argv) {
return; return;
} }
int idx = strtol(argv[1], NULL, 0); int idx = strtol(argv[1], NULL, 0);
taskdata_t *t = kos_task_data + idx; taskdata_t *t = kos_task_table + idx;
fprintf(fout, "event_mask: %" PRIx32 "\n", t->event_mask); fprintf(fout, "event_mask: %" PRIx32 "\n", t->event_mask);
fprintf(fout, "pid: %" PRId32 "\n", t->pid); fprintf(fout, "pid: %" PRId32 "\n", t->pid);
fprintf(fout, "state: 0x%" PRIx8 "\n", t->state); fprintf(fout, "state: 0x%" PRIx8 "\n", t->state);

View File

@ -42,42 +42,36 @@ font smoothing: 0 - off
0x007e7e7e work_graph 0x007e7e7e work_graph
/> set_window_colors 0 0 0 0 0 0 0 0 0 0 /> set_window_colors 0 0 0 0 0 0 0 0 0 0
/> dump_win_stack 5 /> dump_win_stack 2
0: 0 0: 0
1: 1 1: 1
2: 2 /> dump_win_pos 2
3: 3
4: 4
/> dump_win_pos 5
0: 0 0: 0
1: 1 1: 1
2: 2 /> dump_taskdata 2
3: 3
4: 4
/> dump_taskdata 5
event_mask: 0 event_mask: 0
pid: 0 pid: 2
state: 0x0 state: 0x0
wnd_number: 0 wnd_number: 2
counter_sum: 0 counter_sum: 0
counter_add: 0 counter_add: 0
cpu_usage: 0 cpu_usage: 0
/> dump_appdata 5 /> dump_appdata 2
app_name: app_name: OS
except_mask: 0 except_mask: 0
dbg_state: 0 dbg_state: 0
cur_dir: (null) cur_dir:
draw_bgr_x: 0 draw_bgr_x: 0
draw_bgr_y: 0 draw_bgr_y: 0
event_mask: 0 event_mask: 0
terminate_protection: 0 terminate_protection: 1
keyboard_mode: 0 keyboard_mode: 0
captionEncoding: 0 captionEncoding: 0
exec_params: (null) exec_params: (null)
wnd_caption: (null) wnd_caption:
wnd_clientbox (ltwh): 0 0 0 0 wnd_clientbox (ltwh): 5 24 291 172
priority: 0 priority: 0
in_schedule: prev (4294306402), next (4294306402) in_schedule: prev (2), next (2)
/> process_info -1 /> process_info -1
cpu_usage: 0 cpu_usage: 0

View File

@ -28,10 +28,10 @@ get_font_smoothing
get_window_colors get_window_colors
set_window_colors 0 0 0 0 0 0 0 0 0 0 set_window_colors 0 0 0 0 0 0 0 0 0 0
dump_win_stack 5 dump_win_stack 2
dump_win_pos 5 dump_win_pos 2
dump_taskdata 5 dump_taskdata 2
dump_appdata 5 dump_appdata 2
process_info -1 process_info -1
get_skin_height get_skin_height

View File

@ -32,7 +32,12 @@ public sha3_256_oneshot as 'hash_oneshot'
public kos_time_to_epoch public kos_time_to_epoch
public umka_init public umka_init
public current_process as 'kos_current_process'
public current_slot as 'kos_current_slot'
public current_slot_idx as 'kos_current_slot_idx'
public thread_count as 'kos_thread_count' public thread_count as 'kos_thread_count'
public TASK_TABLE as 'kos_task_table'
public TASK_BASE as 'kos_task_base' public TASK_BASE as 'kos_task_base'
public TASK_DATA as 'kos_task_data' public TASK_DATA as 'kos_task_data'
public SLOT_BASE as 'kos_slot_base' public SLOT_BASE as 'kos_slot_base'
@ -192,18 +197,18 @@ macro call target {
call target call target
end if end if
} }
macro mov r, v { ;macro mov r, v {
if r eq byte [current_slot_idx] & v eq bh ; if r eq byte [current_slot_idx] & v eq bh
push eax ; push eax
mov eax, ebx ; mov eax, ebx
sub eax, SLOT_BASE ; sub eax, SLOT_BASE
shr eax, BSF sizeof.APPDATA ; shr eax, BSF sizeof.APPDATA
mov [current_slot_idx], eax ; mov [current_slot_idx], eax
pop eax ; pop eax
else ; else
mov r, v ; mov r, v
end if ; end if
} ;}
do_change_task equ hjk do_change_task equ hjk
irq0 equ jhg irq0 equ jhg
include 'core/sched.inc' include 'core/sched.inc'
@ -719,15 +724,14 @@ uglobal
align 64 align 64
os_base: rb PAGE_SIZE os_base: rb PAGE_SIZE
window_data: rb sizeof.WDATA * 256 window_data: rb sizeof.WDATA * 256
TASK_TABLE: rb 4 TASK_TABLE: rb 16
rb 12 TASK_BASE: rd 4
TASK_BASE rd 4 TASK_DATA: rd sizeof.TASKDATA * 255 / 4
TASK_DATA rd 0x7f8 CDDataBuf: rb 0x1000
CDDataBuf: rd 0x1840 idts rb IRQ_RESERVED * 8 ; IDT descriptor is 8 bytes long
idts rd 0x3c0 WIN_STACK rw 0x200 ; why not 0x100?
WIN_STACK rw 0x200 WIN_POS rw 0x200
WIN_POS rw 0x600 FDD_BUFF: rb 0x400
FDD_BUFF rb 0x2300
WIN_TEMP_XY rb 0x100 WIN_TEMP_XY rb 0x100
KEY_COUNT db ? KEY_COUNT db ?
KEY_BUFF rb 255 ; 120*2 + 2*2 = 244 bytes, actually 255 bytes KEY_BUFF rb 255 ; 120*2 + 2*2 = 244 bytes, actually 255 bytes
@ -736,7 +740,8 @@ BTN_BUFF rd 0x261
BTN_ADDR dd ? BTN_ADDR dd ?
MEM_AMOUNT rd 0x1d MEM_AMOUNT rd 0x1d
SYS_SHUTDOWN db ? SYS_SHUTDOWN db ?
sys_proc: rb sizeof.TASKDATA * 256 sys_proc: rb sizeof.PROC * 256
rb 0x10000 - (($-bss_base) AND (0x10000-1)) ; align on 0x10000
SLOT_BASE: rb sizeof.APPDATA * 256 SLOT_BASE: rb sizeof.APPDATA * 256
VGABasePtr rb 640*480 VGABasePtr rb 640*480
rb PAGE_SIZE - (($-bss_base) AND (PAGE_SIZE-1)) ; align on page rb PAGE_SIZE - (($-bss_base) AND (PAGE_SIZE-1)) ; align on page

2
umka.h
View File

@ -624,7 +624,7 @@ extern appdata_t *kos_scheduler_current[NR_SCHED_QUEUES];
extern uint32_t umka_tool; extern uint32_t umka_tool;
extern size_t kos_task_count; extern size_t kos_task_count;
extern taskdata_t *kos_task_base; extern taskdata_t *kos_task_base;
extern taskdata_t kos_task_data[]; extern taskdata_t kos_task_table[];
extern appdata_t kos_slot_base[]; extern appdata_t kos_slot_base[];
extern void umka_do_change_task(appdata_t *new); extern void umka_do_change_task(appdata_t *new);
extern void scheduler_add_thread(void); extern void scheduler_add_thread(void);