From: Alan Cox Date: Sun, 26 Jul 2015 12:39:35 +0000 (+0100) Subject: 68hc11: start trying to tidy up the definitions X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=7bd0bad22ee710f601b7c9f642776fa30ed0342a;p=FUZIX.git 68hc11: start trying to tidy up the definitions --- diff --git a/Kernel/platform-68hc11test/eeprom.def b/Kernel/platform-68hc11test/eeprom.def index bf973028..fdad85cb 100644 --- a/Kernel/platform-68hc11test/eeprom.def +++ b/Kernel/platform-68hc11test/eeprom.def @@ -6,6 +6,10 @@ include "cpu.def" +; +; Basic layout +; +.equ EEBASE 0xF600 ; Here upwards owned by EEPROM ; ; Unbanked memory ; @@ -59,3 +63,94 @@ .equ BDEVF_LBA, 0x80 +; +; EEPROM entry points +; +; A = bank +; X = src, returns value in B or D +; +.equ fargetb , 0xFF40 +.equ fargetw , 0xFF43 +; +; A = bank B = value +; X = dst +; +.equ farputb , 0xFF46 +; +; A = bank +; X = dst, Y = value +; +.equ farputw , 0xFF49 +; +; A = srcbank, B = dstbank +; X = dst, Y = src +; kernel:_tmp1 = length (in eeprom memory - FIXME) +; +.equ farcopy , 0xFF4C +; +; B = bank, X = function, Y = far stack +; ret_x, ret_d, ret_y register values on far side +; +.equ farcall , 0xFF4F +; +; B = bank, X = function, Y = far stack +; ret_x, ret_d, ret_y register values on far side +; +.equ farjump , 0xFF52 +; +; A = bank +; +; FIXME - useless ! .equ setbank , 0xFF55 +; +; D = 0 +; +.equ reboot , 0xFF58 +; +; A = srcbank, B = dstbank +; X = dst, Y = src +; kernel:_tmp1 = length (in kernel bank) +; +.equ farzcopy , 0xFF5B +; +; A = bank +; X = dst +; Y = len +; +; Return in D +; +.equ farzero , 0xFF5E +; +; A = device id +; B = bank +; Y/D = block +; X = buffer +; +; Returns B = error code, 0 = ok +; +.equ block_read , 0xFF61 +.equ block_write , 0xFF64 +; +; X = string (in bank 0) +; +.equ conputs , 0xFF67 +; +; B = character +; +.equ conputc , 0xFF6A +; +; B = value +; +.equ conputhex , 0xFF6D +; +; B = flags (0 = wait, echo, 1 = wait no echo, 2 = nowait noecho) +; returned in B +; +.equ conin , 0xFF70 +; +; A = bank +; X = buffer +; Y = length +; +.equ spi_read , 0xFF73 +.equ spi_write , 0xFF76 + diff --git a/Kernel/platform-68hc11test/kernel.def b/Kernel/platform-68hc11test/kernel.def index 7c6e2b59..2ba69c0e 100644 --- a/Kernel/platform-68hc11test/kernel.def +++ b/Kernel/platform-68hc11test/kernel.def @@ -1,77 +1,15 @@ ; ; Hide the udata above the I/O in the gap before the EEPROM ; -.equ U_DATA , 0xF200 ; (this is struct u_data from kernel.h) -.equ U_DATA__TOTALSIZE , 0x200 ; -.equ IRQ_STACK , 0xF400 -.equ EESTACK , 0xF600 ; used for eeprom stuff +.equ U_DATA , 0xF200 ; (this is struct u_data from kernel.h) +.equ U_DATA__TOTALSIZE , 0x200 ; +.equ IRQ_STACK , 0xF400 -; -; EEPROM entry points -; -; A = bank -; X = src, returns value in B or D -.equ fargetb , 0xF840 -.equ fargetw , 0xF843 -; -; A = bank B = value -; X = dst -; -.equ farputb , 0xF846 -; -; A = bank -; X = dst, Y = value -; -.equ farputw , 0xF849 -; -; A = srcbank, B = dstbank -; X = dst, Y = src -; kernel:_tmp1 = length (in eeprom memory - FIXME) -; -.equ farcopy , 0xF84C -; -; B = bank, X = function, Y = far stack -; ret_x, ret_d, ret_y register values on far side -; -.equ farcall , 0xF84F -; -; B = bank, X = function, Y = far stack -; ret_x, ret_d, ret_y register values on far side -; -.equ farjump , 0xF852 -; -; A = bank -; -; FIXME - useless ! .equ setbank , 0xF855 -; -; D = 0 -; -.equ reboot , 0xF858 -; -; A = srcbank, B = dstbank -; X = dst, Y = src -; kernel:_tmp1 = length (in kernel bank) -; -.equ farzcopy , 0xF85B -; -; A = bank -; X = dst -; Y = len -; -; Return in D -; -.equ farzero , 0xF85E -; -; ; ; Low memory usage (not banked): FIXME - tmp1 should be in eeprom RAM ; as should ret_* ; All TBD ; -.equ tmp1 , 0xFE ; 16bits .equ curbank , 0xFD .equ usrbank , 0xFC ; we track this to emulate ; usermode copy stuff -.equ ret_x , 0xFA -.equ ret_y , 0xF8 -.equ ret_d , 0xF6