From 05d84bef6da43f355f3e2d0da9a968f482d347fa Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Sun, 10 Feb 2019 15:39:20 +0000 Subject: [PATCH] v8080: core changes to get to the point we can start init properly --- Kernel/lowlevel-8080.s | 7 ++++--- Kernel/usermem_std-8080.s | 11 ++++++----- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/Kernel/lowlevel-8080.s b/Kernel/lowlevel-8080.s index 93765f75..c042e134 100644 --- a/Kernel/lowlevel-8080.s +++ b/Kernel/lowlevel-8080.s @@ -57,8 +57,8 @@ unix_syscall_entry: di push b ! Must preserve the frame pointer push d ! will go away when we fix the ABI - lxi h,8 ! Find arguments on stack frame FIXME: work out - ! right offset + lxi h,6 ! Find arguments on stack frame + dad sp mov a,m sta U_DATA__U_CALLNO @@ -128,7 +128,7 @@ unix_syscall_entry: unix_return: mov a,h ora l - jnz not_error + jz not_error stc jmp unix_pop not_error: @@ -239,6 +239,7 @@ interrupt_handler: push d push h call platform_interrupt_all + jmp interrupt_pop !! FIXME ! Switch stacks lxi h,0 dad sp diff --git a/Kernel/usermem_std-8080.s b/Kernel/usermem_std-8080.s index 06131ea7..1f396c5d 100644 --- a/Kernel/usermem_std-8080.s +++ b/Kernel/usermem_std-8080.s @@ -23,7 +23,7 @@ __uputc: .define __uputw __uputw: - lxi h,4 + lxi h,2 dad sp mov e,m inx h @@ -31,12 +31,12 @@ __uputw: inx h mov a,m inx h - mov l,m - xchg + mov h,m + mov l,a call map_process_always - mov m,a - inx h mov m,e + inx h + mov m,d jp map_kernel .define __ugetc @@ -48,6 +48,7 @@ __ugetc: push d call map_process_always mov e,m + mvi d,0 jp map_kernel .define __ugetw -- 2.34.1