From: Alan Cox Date: Fri, 28 Sep 2018 22:38:07 +0000 (+0100) Subject: socz80: update to new behaviour X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=c3e7500f81e928dadbf2281b3e2b57cc22384326;p=FUZIX.git socz80: update to new behaviour --- diff --git a/Kernel/platform-socz80/config.h b/Kernel/platform-socz80/config.h index 92cce9b8..f0218bfc 100644 --- a/Kernel/platform-socz80/config.h +++ b/Kernel/platform-socz80/config.h @@ -39,3 +39,4 @@ #define SD_DRIVE_COUNT 1 #define platform_discard() +#define platform_copyright() diff --git a/Kernel/platform-socz80/devtty.c b/Kernel/platform-socz80/devtty.c index bba94fc6..c1e6f2f4 100644 --- a/Kernel/platform-socz80/devtty.c +++ b/Kernel/platform-socz80/devtty.c @@ -25,7 +25,7 @@ void kputchar(char c) } /* Called to set baud rate etc */ -void tty_setup(uint8_t minor) +void tty_setup(uint8_t minor, uint8_t flag) { minor; } diff --git a/Kernel/platform-socz80/socz80.s b/Kernel/platform-socz80/socz80.s index 4dd4f019..cebe7d59 100644 --- a/Kernel/platform-socz80/socz80.s +++ b/Kernel/platform-socz80/socz80.s @@ -16,11 +16,15 @@ .globl map_kernel .globl map_process .globl map_process_always - .globl map_save + .globl map_kernel_di + .globl map_process_di + .globl map_process_always_di + .globl map_save_kernel .globl map_restore .globl platform_interrupt_all .globl _need_resched .globl _irqwork + .globl _int_disabled ; exported debugging tools .globl _platform_monitor @@ -56,6 +60,8 @@ .area _COMMONMEM _need_resched: .db 0 +_int_disabled: + .db 1 trapmsg: .ascii "Trapdoor: SP=" .db 0 trapmsg2: .ascii ", PC=" @@ -390,6 +396,7 @@ mmumsg: .ascii "MMU page " ; HL points to the page array for this task, or NULL for kernel ; Preserve all but a, hl map_process: +map_process_di: ld a, h or l jr nz, map_loadhl @@ -400,6 +407,7 @@ map_process: ; map the current process, preserves all registers ; map_process_always: +map_process_always_di: push hl ld hl, #U_DATA__U_PAGE call map_loadhl @@ -409,6 +417,7 @@ map_process_always: ; map the kernel. preserves all registers ; map_kernel: +map_kernel_di: push hl ld hl, #os_bank call map_loadhl @@ -423,7 +432,7 @@ map_restore: pop hl ret -map_save: +map_save_kernel: ; FIXME: Save the current mapping registers. Preserves all ; registers push hl @@ -431,6 +440,8 @@ map_save: ld (saved_map), hl ld hl, (map_current + 2) ld (saved_map + 2), hl + ld hl, #os_bank + call map_loadhl pop hl ret diff --git a/Kernel/platform-socz80/tricks.s b/Kernel/platform-socz80/tricks.s index 5292efed..4b45d69e 100644 --- a/Kernel/platform-socz80/tricks.s +++ b/Kernel/platform-socz80/tricks.s @@ -17,6 +17,7 @@ .globl unix_syscall_entry .globl map_process .globl interrupt_handler + .globl _int_disabled ; imported debug symbols .globl outstring, outde, outhl, outbc, outnewline, outchar, outcharhex @@ -124,6 +125,7 @@ _switchin: ; enable interrupts, if the ISR isn't already running ld a, (U_DATA__U_ININTERRUPT) + ld (_int_disabled),a or a ret nz ; in ISR, leave interrupts off ei