retro/native: add a missing file, update RELEASE_NOTES

FossilOrigin-Name: d2eea72001bb4d913bb351867062e0e55966c298f9a7daa240bdaf5054f8ebd4
This commit is contained in:
crc 2019-02-19 17:19:55 +00:00
parent 3efeef6b59
commit d20115ec82
3 changed files with 111 additions and 37 deletions

View file

@ -77,6 +77,13 @@ June 2019.
- add random number generator
- add image:save
### native
- add port i/o words
- add cmos rtc driver
- add serial port driver
- now builds properly on openbsd
## Tools
- use strlcpy, strlcat instead of strcpy and strcat

View file

@ -1,6 +1,6 @@
#include <stdint.h>
int32_t ngaImageCells = 9788;
int32_t ngaImage[] = { 1793,-1,9711,9787,201906,0,10,1,10,2,10,3,10,4,10,5,10,6,10,
int32_t ngaImageCells = 9883;
int32_t ngaImage[] = { 1793,-1,9806,9882,201906,0,10,1,10,2,10,3,10,4,10,5,10,6,10,
7,10,8,10,9,10,10,10,11,10,12,10,13,10,14,10,15,10,16,10,
17,10,18,10,19,10,20,10,21,10,22,10,23,10,24,10,25,10,26,10,
68223234,1,2575,85000450,1,656912,355,339,268505089,66,65,135205121,66,10,101384453,0,9,10,2049,59,
@ -159,7 +159,7 @@ int32_t ngaImage[] = { 1793,-1,9711,9787,201906,0,10,1,10,2,10,3,10,4,10,5,10,6,
2065,10,1,3112,2049,2065,4,16,10,3093,3146,147,118,58,117,112,100,97,116,101,
45,117,115,105,110,103,0,4,1793,3153,15,4,8,10,1,3149,2049,2077,16,10,
3128,3167,147,99,111,112,121,0,1793,3176,1,59,2049,2065,2049,62,10,1,3169,2049,
2252,3,3,10,3159,3196,147,83,99,111,112,101,76,105,115,116,0,9121,9152,10,
2252,3,3,10,3159,3196,147,83,99,111,112,101,76,105,115,116,0,9201,9247,10,
3183,3205,147,123,123,0,2049,1570,2,1,3196,2049,62,16,10,3199,3230,147,45,45,
45,114,101,118,101,97,108,45,45,45,0,2049,1570,1,3196,2049,2908,16,10,3214,
3244,147,125,125,0,1,3196,2049,59,4,15,11,1793,3258,3841,3196,4097,2,10,1,
@ -179,7 +179,7 @@ int32_t ngaImage[] = { 1793,-1,9711,9787,201906,0,10,1,10,2,10,3,10,4,10,5,10,6,
2065,4097,3312,10,3480,3538,134,84,101,109,112,83,116,114,105,110,103,115,0,32,
3523,3556,134,84,101,109,112,83,116,114,105,110,103,77,97,120,0,512,3539,3568,
147,83,84,82,73,78,71,83,0,2049,1543,3841,3538,3841,3556,19,18,10,3557,3588,
134,67,117,114,114,101,110,116,0,27,10,3577,3603,147,115,58,112,111,105,110,
134,67,117,114,114,101,110,116,0,1,10,3577,3603,147,115,58,112,111,105,110,
116,101,114,0,3841,3588,3841,3556,19,2049,3568,17,10,3590,3622,147,115,58,110,101,
120,116,0,1,3588,2049,3009,3841,3588,3841,3538,11,1793,3638,1,0,4097,3588,10,1,
3633,9,10,3557,3652,147,115,58,116,101,109,112,0,2,2049,82,2049,2908,2049,3603,
@ -457,36 +457,41 @@ int32_t ngaImage[] = { 1793,-1,9711,9787,201906,0,10,1,10,2,10,3,10,4,10,5,10,6,
9073,1793,9084,3,10,1,9082,2049,67,10,9016,9105,147,100,58,119,111,114,100,115,
45,119,105,116,104,0,2049,1835,2049,4655,1793,9116,2049,165,2049,9066,10,1,9111,2049,
7005,10,9089,9129,147,70,82,69,69,0,2049,3568,1,1025,18,2049,1835,18,10,9121,
9151,134,105,111,58,80,111,114,116,73,79,0,0,9138,9164,147,105,100,101,110,
116,105,102,121,0,3841,9151,2049,2567,1793,9231,1,2000,2049,8857,2,2049,2602,1793,9219,
3,2049,3697,73,79,32,68,69,86,73,67,69,32,84,89,80,69,32,50,48,
48,48,32,78,79,84,32,70,79,85,78,68,0,1,9182,2049,8950,2049,8913,10,
1,9179,1793,9226,4097,9151,10,1,9223,2049,67,10,1,9170,9,10,9121,9248,147,105,
111,58,112,111,114,116,105,111,0,2049,9164,3841,9151,2049,8831,10,9235,9265,147,105,
111,58,105,110,98,0,1,0,2049,9248,10,9255,9281,147,105,111,58,111,117,116,
98,0,1,1,2049,9248,10,9270,112,134,67,77,79,83,58,65,68,68,82,69,
83,83,0,9286,113,134,67,77,79,83,58,68,65,84,65,0,9302,9328,147,114,
116,99,58,113,117,101,114,121,0,1,112,2049,9281,1,113,2049,9265,10,9315,9351,
147,114,116,99,58,115,101,99,111,110,100,0,1,0,2049,9328,10,9337,9370,147,
114,116,99,58,109,105,110,117,116,101,0,1,2,2049,9328,10,9356,9387,147,114,
116,99,58,104,111,117,114,0,1,4,2049,9328,10,9375,9403,147,114,116,99,58,
100,97,121,0,1,7,2049,9328,10,9392,9421,147,114,116,99,58,109,111,110,116,
104,0,1,8,2049,9328,10,9408,9438,147,114,116,99,58,121,101,97,114,0,1,
9,2049,9328,10,9426,9451,147,116,105,109,101,0,2049,9387,2049,8964,1,58,2049,8900,
2049,9370,2049,8964,2049,8913,10,9443,1016,134,115,101,114,105,97,108,58,67,79,77,
49,0,9466,760,134,115,101,114,105,97,108,58,67,79,77,50,0,9481,1000,134,
115,101,114,105,97,108,58,67,79,77,51,0,9496,744,134,115,101,114,105,97,
108,58,67,79,77,52,0,9511,9541,134,115,101,114,105,97,108,58,80,111,114,
116,0,760,9526,9557,147,115,101,114,105,97,108,58,112,111,114,116,0,3841,9541,
10,9542,9580,147,115,101,114,105,97,108,58,114,101,99,101,105,118,101,100,63,
0,2049,9557,1,5,17,2049,9265,1,1,21,2049,2583,10,9560,9610,147,115,101,114,
105,97,108,58,101,109,112,116,121,63,0,2049,9557,1,5,17,2049,9265,1,32,
21,2049,2583,10,9593,9638,147,115,101,114,105,97,108,58,114,101,97,100,0,2049,
9580,1793,9647,2049,9557,2049,9265,10,1,9642,2049,2494,2049,9638,10,9623,9670,147,115,101,
114,105,97,108,58,119,114,105,116,101,0,2049,9610,1793,9679,2049,9557,2049,9281,10,
1,9674,2049,2494,2049,9670,10,9654,9701,147,115,101,114,105,97,108,58,115,101,110,
100,0,1793,9706,2049,9670,10,1,9703,2049,4023,10,9686,9726,147,115,101,114,105,97,
108,58,105,110,105,116,0,1,0,2049,9557,1,1,17,2049,9281,1,128,2049,9557,
1,3,17,2049,9281,1,3,2049,9557,2049,9281,1,0,2049,9557,1,1,17,2049,9281,
1,3,2049,9557,1,3,17,2049,9281,1,199,2049,9557,1,2,17,2049,9281,1,11,
2049,9557,1,4,17,2049,9281,10,0 };
9148,134,78,117,109,98,101,114,0,0,48,49,50,51,52,53,54,55,56,57,
65,66,67,68,69,70,0,9138,9149,134,68,73,71,73,84,83,0,9166,9187,147,
99,111,110,118,101,114,116,0,1,9149,4,2049,4082,3841,9148,1,16,19,17,4097,
9148,10,9121,9213,159,112,114,101,102,105,120,58,48,0,2049,2908,1,0,4097,9148,
1793,9224,2049,9187,10,1,9221,2049,4023,3841,9148,2049,134,10,9201,9246,134,105,111,58,
80,111,114,116,73,79,0,0,9233,9259,147,105,100,101,110,116,105,102,121,0,
3841,9246,2049,2567,1793,9326,1,2000,2049,8857,2,2049,2602,1793,9314,3,2049,3697,73,79,
32,68,69,86,73,67,69,32,84,89,80,69,32,50,48,48,48,32,78,79,
84,32,70,79,85,78,68,0,1,9277,2049,8950,2049,8913,10,1,9274,1793,9321,4097,
9246,10,1,9318,2049,67,10,1,9265,9,10,9201,9343,147,105,111,58,112,111,114,
116,105,111,0,2049,9259,3841,9246,2049,8831,10,9330,9360,147,105,111,58,105,110,98,
0,1,0,2049,9343,10,9350,9376,147,105,111,58,111,117,116,98,0,1,1,2049,
9343,10,9365,112,134,67,77,79,83,58,65,68,68,82,69,83,83,0,9381,113,
134,67,77,79,83,58,68,65,84,65,0,9397,9423,147,114,116,99,58,113,117,
101,114,121,0,1,112,2049,9376,1,113,2049,9360,10,9410,9446,147,114,116,99,58,
115,101,99,111,110,100,0,1,0,2049,9423,10,9432,9465,147,114,116,99,58,109,
105,110,117,116,101,0,1,2,2049,9423,10,9451,9482,147,114,116,99,58,104,111,
117,114,0,1,4,2049,9423,10,9470,9498,147,114,116,99,58,100,97,121,0,1,
7,2049,9423,10,9487,9516,147,114,116,99,58,109,111,110,116,104,0,1,8,2049,
9423,10,9503,9533,147,114,116,99,58,121,101,97,114,0,1,9,2049,9423,10,9521,
9546,147,116,105,109,101,0,2049,9482,2049,8964,1,58,2049,8900,2049,9465,2049,8964,2049,
8913,10,9538,1016,134,115,101,114,105,97,108,58,67,79,77,49,0,9561,760,134,
115,101,114,105,97,108,58,67,79,77,50,0,9576,1000,134,115,101,114,105,97,
108,58,67,79,77,51,0,9591,744,134,115,101,114,105,97,108,58,67,79,77,
52,0,9606,9636,134,115,101,114,105,97,108,58,80,111,114,116,0,760,9621,9652,
147,115,101,114,105,97,108,58,112,111,114,116,0,3841,9636,10,9637,9675,147,115,
101,114,105,97,108,58,114,101,99,101,105,118,101,100,63,0,2049,9652,1,5,
17,2049,9360,1,1,21,2049,2583,10,9655,9705,147,115,101,114,105,97,108,58,101,
109,112,116,121,63,0,2049,9652,1,5,17,2049,9360,1,32,21,2049,2583,10,9688,
9733,147,115,101,114,105,97,108,58,114,101,97,100,0,2049,9675,1793,9742,2049,9652,
2049,9360,10,1,9737,2049,2494,2049,9733,10,9718,9765,147,115,101,114,105,97,108,58,
119,114,105,116,101,0,2049,9705,1793,9774,2049,9652,2049,9376,10,1,9769,2049,2494,2049,
9765,10,9749,9796,147,115,101,114,105,97,108,58,115,101,110,100,0,1793,9801,2049,
9765,10,1,9798,2049,4023,10,9781,9821,147,115,101,114,105,97,108,58,105,110,105,
116,0,1,0,2049,9652,1,1,17,2049,9376,1,128,2049,9652,1,3,17,2049,9376,
1,3,2049,9652,2049,9376,1,0,2049,9652,1,1,17,2049,9376,1,3,2049,9652,1,
3,17,2049,9376,1,199,2049,9652,1,2,17,2049,9376,1,11,2049,9652,1,4,17,
2049,9376,10,0 };

View file

@ -0,0 +1,62 @@
~~~
{{
'Number var
'0123456789ABCDEF 'DIGITS s:const
:convert (c-) &DIGITS swap s:index-of @Number #16 * + !Number ;
---reveal---
:prefix:0 (s-n)
n:inc #0 !Number [ convert ] s:for-each @Number class:data ; immediate
}}
~~~
~~~
{{
'io:PortIO var
:identify
@io:PortIO n:zero? [
#2000 io:scan-for dup n:negative?
[ drop 'IO_DEVICE_TYPE_2000_NOT_FOUND s:put nl ]
[ !io:PortIO ] choose ] if ;
---reveal---
:io:portio identify @io:PortIO io:invoke ;
}}
~~~
~~~
:io:inb (p-n) #0 io:portio ;
:io:outb (vp-) #1 io:portio ;
~~~
~~~
#112 'CMOS:ADDRESS const
#113 'CMOS:DATA const
:rtc:query CMOS:ADDRESS io:outb CMOS:DATA io:inb ;
:rtc:second #0 rtc:query ;
:rtc:minute #2 rtc:query ;
:rtc:hour #4 rtc:query ;
:rtc:day #7 rtc:query ;
:rtc:month #8 rtc:query ;
:rtc:year #9 rtc:query ;
:time rtc:hour n:put $: c:put rtc:minute n:put nl ;
~~~
~~~
#1016 'serial:COM1 const
#760 'serial:COM2 const
#1000 'serial:COM3 const
#744 'serial:COM4 const
serial:COM2 'serial:Port var<n>
:serial:port @serial:Port ;
:serial:received? serial:port #5 + io:inb #1 and n:-zero? ;
:serial:empty? serial:port #5 + io:inb #32 and n:-zero? ;
:serial:read serial:received? [ serial:port io:inb ] if; serial:read ;
:serial:write serial:empty? [ serial:port io:outb ] if; serial:write ;
:serial:send [ serial:write ] s:for-each ;
:serial:init #0 serial:port #1 + io:outb #128 serial:port #3 + io:outb
#3 serial:port io:outb #0 serial:port #1 + io:outb
#3 serial:port #3 + io:outb #199 serial:port #2 + io:outb
#11 serial:port #4 + io:outb ;
~~~