Commit Graph

103 Commits

Author SHA1 Message Date
Sergey
bca590d42b Fixed issue #44.
Removed unnesessary include <sys/types.h> from stdio.h, stdlib.h,
string.h, strings.h and time.h.
2015-06-21 18:59:02 -07:00
Sergey
aedd0138b3 Fixed issue #46: broken instruction reordering in assembler. 2015-06-21 17:56:15 -07:00
Sergey
57b3ba3506 Fixed .equ syntax in assembler. 2015-06-21 17:05:04 -07:00
Sergey
e08e51f1b9 Use permanent allocation of major indexes for character devices. 2015-05-30 18:28:22 -07:00
Alexey Frunze
ea88242733 Merge remote-tracking branch 'upstream/master' 2015-05-29 22:46:46 -07:00
Serge Vakulenko
4e8398cbc9 Driver oc renamed to pwm. 2015-05-29 20:41:26 -07:00
Alexey Frunze
51f41b2cca fix libicache: sign-extend the immediate in SLTIU 2015-05-28 06:40:02 -07:00
Alexey Frunze
3afa8e5979 Smaller C: Improve initialization of variables
- throw away data of string literals inside sizeof, e.g.
    sizeof "a"
    sizeof("a"+1)
- support minimally and inconsistently bracketed (sic)
  initialization, e.g.:
    int y[4][3] = { 1, 3, 5, 2, 4, 6, 3, 5, 7 };
    struct { int a[3], b; } w[] = { { 1 }, 2 };
- scalar initializers can be optionally enclosed in
  braces, e.g.:
    int i1 = { 1 };
2015-05-23 01:15:52 -07:00
Alexey Frunze
6144631bc5 Smaller C: Support structure passing/returning by value on MIPS 2015-05-17 15:28:37 -07:00
Alexey Frunze
4ea521eabf Smaller C improvements
- type specifiers may occur in any order
  (e.g. "unsigned short int" and "int short unsigned")

- use .rodata/.rdata section for string literals
- arbitrary length string literals (hooray!)
- better concatenation of adjacent string literals
  (now works even across preprocessor directives)

Support .bss section
- -nobss option in smlrc: use .data instead of .bss as before
- take advantage of .bss in smlrc (put a large array into it)

Remove dead/useless code

Remove useless/rarely used features/options:
-use-gp (MIPS)
-flat16/-flat32 (x86)
-seg16t (x86), -seg16 is now the default
-ctor-fxn

Add/change:
- use EXIT_FAILURE=1 instead of -1 in smlrc when aborting
  due to an error
2015-05-16 05:57:39 -07:00
Sergey
c40136c25d Merge branch 'master' of https://github.com/RetroBSD/retrobsd 2015-05-14 22:52:27 -07:00
Serge Vakulenko
ea03a4bc98 ADM demo rewritten without curses.
Examples reorganized.
Added examples for 37-in-1 sensor kit (not complete yet).
2015-05-14 22:11:47 -07:00
Sergey
f2fe94f32d Register dump fixed. 2015-05-08 22:18:10 -07:00
alex
a20c02c11f Fix issue #40. Properly flush stdio's streams at exit. 2015-04-25 19:49:26 -07:00
alex
a4bdbd4662 Bugfixes
- properly sign-/zero-extend returned values, e.g. the following
function must return 255 and not -1:

unsigned char f(void) { return -1; }

- properly decay arrays on the left side of ->, e.g. the following must
compile:

{
  struct {char c;} s[1];
  s[0].c = 'a'; putchar(s[0].c);
  (s+0)->c = 'b'; putchar(s[0].c);
  (*s).c = 'c'; putchar(s[0].c);
  s->c = 'd'; putchar(s[0].c);
  putchar('\n');
}

Also:
- support structure passing/returning by value (x86 only)
2015-04-25 18:03:55 -07:00
Sergey
0005e7d7bf Fixed bug in fsck: using bcopy() instead of structure assignment.
File exception.c converted to indent4 format.
2015-02-13 21:05:03 -08:00
Sergey
942bdda5ed Diskspeed: added extra sync and timeout before each test. 2015-02-13 19:41:32 -08:00
Serge Vakulenko
5ce8a8cd33 Added diskspeed utility. 2015-02-12 19:27:59 -08:00
Serge Vakulenko
bae12383a0 Fixed build issues on Linux x86-64. 2015-01-06 19:36:49 -08:00
alex
dad5247184 Merge branch 'master' of https://github.com/alexfru/retrobsd 2014-12-29 16:36:58 -08:00
alex
b1f67fbca0 SmallerC: generate smaller & faster code; bugfixes
Improvements:
- use registers more efficiently
- eliminate some register copies and stack manipulations
- promote left operands to right immediate operands
- improve simple assignments to auto/static vars
- use bltz, blez, bgtz, bgez
- change mul/divu (by powers of 2) to sll/srl/and
- use seb, seh for sign extension instead of sll/sra
- overall generate a bit tighter, faster and more readable asm code

Fixes:
- >>= should be unsigned when the left operand is unsigned int.
The right operand isn't important here.
- very subtle bug in e.g. void f(){int a; &a+1;/*wrong value of &a+1*/}

Other:
- include stdarg.c and skeleton.c in /share/example/Makefile
2014-12-29 16:28:56 -08:00
Alexey Frunze
3bb914c8b4 Fix >>=
>>= should be unsigned when the left operand is unsigned int. The right
operand isn't important here.
2014-12-13 01:06:53 -08:00
alex
00269e9387 Smaller C fixes and improvements:
- move va_list type detection under #ifdef as it's rarely needed anyway
- allow up to 254 characters in a string literal
- generate a warning when an integer is passed instead of a pointer (and
vice versa) as a function parameter (pass -Wall for this)
- when printing an unexpected token, print identifier tokens instead of
'<tokIdent>'
- fix: allow most control characters inside '' and ""
- fix handling of -I<path> and -SI<path>
- switch() now supports Duff's device
- for() now supports declarations in its first clause as in C99/C++
2014-12-06 16:18:17 -08:00
alex
b18ce0aa87 Fix MIPS code generation for -= and postfix --.
Also convert most of Small C sample programs to Smaller C.
2014-10-19 00:22:44 -07:00
Serge Vakulenko
a8d9b3d01f Makefiles updated for man sources. 2014-09-25 19:31:55 -07:00
Serge Vakulenko
c4da2137e1 Added man sources from 2.11bsd tape. 2014-09-25 17:14:51 -07:00
Serge Vakulenko
c42133cdff Fixed newlines in crib game. 2014-09-25 13:44:51 -07:00
Serge Vakulenko
f58c7a7426 Added missing files for atc, boggle, btlgammon, cribbage. 2014-09-17 13:54:28 -07:00
Serge Vakulenko
e557c88b1e Added manual for atc game.
Cribbage manuals installed.
2014-09-17 13:00:06 -07:00
Serge Vakulenko
850797db2e Fixed snake game.
Fixed newline bug in libcurses.

File /etc/termcap replaced by small version. Five TERM types supported:
ansi - simple generic display;
xterm - common for most modern terminal emulators;
linux - for Linux console;
cons25 - for BSD console;
vt100 - for DEC VT100 terminal emulators.

Terminal type xterm set by default.
2014-09-15 20:40:04 -07:00
Serge Vakulenko
cae7db41ca Snake fixed. 2014-09-15 14:24:17 -07:00
Serge Vakulenko
808dfaf6ef Ported snake game. 2014-09-15 12:28:43 -07:00
Sergey
d3d48970e3 Some progress with snake game. 2014-09-14 23:19:06 -07:00
Serge Vakulenko
c5ac22d17f Ported robots game. 2014-09-12 13:32:16 -07:00
Serge Vakulenko
e7b77dadc3 Ported quiz game. 2014-09-12 12:03:11 -07:00
Serge Vakulenko
2ea9e02ba5 Monop game done. 2014-09-10 20:48:05 -07:00
Serge Vakulenko
d9d91365c0 Fixed warning in mille. 2014-09-10 20:09:59 -07:00
Serge Vakulenko
2da083e9bd Some progress on 'monop' game. 2014-09-08 21:36:15 -07:00
Serge Vakulenko
e4e9ff1ef4 Ported mille game. 2014-09-08 19:19:18 -07:00
Serge Vakulenko
aecac2f5d7 Ported hangman. 2014-09-08 18:07:59 -07:00
Serge Vakulenko
8886a00340 Ported fortune. 2014-09-08 12:30:17 -07:00
Serge Vakulenko
25bcc79a69 Merge branch 'master' into games.
Conflicts:
	Makefile
2014-09-08 11:31:12 -07:00
Brian Callahan
294ccae3be emg 1.7 2014-07-10 18:11:43 -04:00
Serge Vakulenko
1c4e562363 Added kernel configuration for PICadillo-35T board. 2014-06-23 22:15:51 -07:00
Brian Callahan
70b8d93b21 Update emg man page. 2014-06-17 08:43:13 -04:00
Serge Vakulenko
5fa78e772b Moved aout sources to separate directory.
Fsutil and modff license changed to BSD style.
2014-06-04 11:46:33 -07:00
Brian Callahan
04208ea903 Remove unusued variable... put this down and walk away until tomorrow. 2014-05-29 18:20:55 -04:00
Brian Callahan
e003436e91 Dumbest off-by-one ever... 2014-05-29 18:16:24 -04:00
Brian Callahan
29904aacd7 I should trust my instincts. I had this right the first time. 2014-05-29 18:03:39 -04:00
Brian Callahan
dbe51ae294 This is cleaner, prevent the percent from being greater than 100. 2014-05-29 15:06:16 -04:00