Commit Graph

961 Commits

Author SHA1 Message Date
Kevin Lange
688e2f19bd Updated READMEs, TODOs, fonts, Bim.
* A minor bug has been fixed in bim's write_file method
* The VL Gothic fonts have been updated (and the proportional version of
  the font is now included)
* The README and TODO have both been updated to reflect current plans.
2012-09-09 20:48:43 -07:00
Kevin Lange
c8cfd50fd7 Rudimentary support for moving the viewport horiz.
Rough, still a bit broken, needs cursor tracking.

[ci skip]
2012-09-08 22:25:32 -07:00
Kevin Lange
fe07b4b9bb Support for multiple buffers (tabs) in bim.
:tabp and :tabn will switch between them.
:q will try to (fully) close the current tab, :q! will force it.
:qall will try to close all tabs; maybe I'll :qall! later.
2012-09-08 20:20:38 -07:00
Kevin Lange
3f5dbcaf9b Update core Makefile for building bim for Linux
[ci skip]
2012-09-08 16:49:40 -07:00
Kevin Lange
3a62d779f0 Include a working implementation of wcwidth()
Terminal and Bim both use this third-party implementation of wcwidth()
Please see the README for copyright and license information.

[ci skip]
2012-09-08 16:47:43 -07:00
Kevin Lange
58ca0b984c Add write support; make sacrifices to the gods
- Write support!
- The widths of characters is now determined with freetype ;-;
  I really wish wcwidth() was a real thing, but it's not.
  This is a sacrifice that had to be made.

  If you are building FOR Linux -rather than toaru- you might need to
  poke at some things to make sure it builds, but in my experience it is
  working just fine (and IMEs now work properly).

  [ci skip]
2012-09-08 15:54:56 -07:00
Kevin Lange
d424e70aa6 [bim] Insert linebreaks into the middle of lines
[ci skip]
2012-09-08 15:23:10 -07:00
Kevin Lange
df8afae9b9 Linux support for bim; fix a bug when opening
[ci skip]
2012-09-08 14:37:48 -07:00
Kevin Lange
b63f0a11f7 Refresh the statusbar when the cursor moves
Because we weren't always doing that, especially on normal-mode
movements. [ci skip]
2012-09-08 02:39:45 -07:00
Kevin Lange
d2374903f1 This is Bim, a Bad IMitation of Vim.
It's an editor, but it is incomplete. For example, write is not
supported yet, so you can open existing files and make modifications,
but you can not save them. Use it as a fun little scratchpad, I guess.
2012-09-08 01:47:19 -07:00
Kevin Lange
ea1146ea17 More minor fixes to the terminal 2012-09-08 00:17:43 -07:00
Kevin Lange
af6be648d4 A lot of refactoring 2012-09-07 20:17:00 -07:00
Kevin Lange
12bf07364c Pull the font and palette out of the terminal code
Honestly, the latter should be configurable to an extent.

[ci skip]
2012-09-06 19:46:36 -07:00
Kevin Lange
7939ccb93f Minor bugfixes and readme updates.
[ci skip]
2012-09-06 14:54:05 -07:00
Kevin Lange
9948dcc4c3 Add a hacky method to get the terminal dimensions
\033[1003z will stuff them into stdin like 80,24.
This is a hack, just like the "disable local echo" hack used for
passwords and it should, ideally, be replaced with a proper system as
defined in POSIX for terminal control, but for, it works, and that's
pretty cool because it means `ls` can stop being stupid.
2012-09-05 22:47:52 -07:00
Kevin Lange
1a1a8bcdad Fix redrawing and scrolling for wide chars
[ci skip]
2012-09-05 20:42:54 -07:00
Kevin Lange
ac52d41144 Unicode Text Support
* Some applications now support UTF-8 text through the use of a very
  simple decoder.
* The terminal uses a slow, but accurate method to determine the width
  of a character the first time it is printed to the screen. Characters
  are now stored in the terminal in two bytes, rather than one, and may
  in the future be increased to 3 or 4 bytes to ensure support for
  Unicode supplemental planes.
* A simple font-fallback method is employed in the applications that
  support unicode that will make use of the VL Gothic fonts if the
  DejaVu font does not have a character. No guarantees are made for
  support of writing systems other than extended Latin and Japanese.
2012-09-05 20:19:52 -07:00
Kevin Lange
027d90a53b Fix an incorrect definition for a syscall
Wow that was a bad one.
2012-09-04 22:33:36 -07:00
Kevin Lange
5914a09735 Neglected to remove an include... 2012-09-04 20:58:19 -07:00
Kevin Lange
ed0b4d2e4b Accidentally moved a cp of a header...
... to a point before its destination existed.
2012-09-04 20:47:25 -07:00
Kevin Lange
07955c83c6 Fix dozens of build warnings and other oddities.
* Finally bring syscall.h up to speed and include all syscalls in the
  syscall module of the C library.
* Remove the third-party obfuscated C demos (we have nyancat, good
  enough)
* Fix userspace apps to build without complaining about undeclared
  strtok_r by disable __STRICT_ANSI__
* Fix .eh_frame by including the proper stuff with libgcc.
2012-09-04 20:27:49 -07:00
Kevin Lange
d19083f2aa Update TODO.md
[ci skip]
2012-09-04 17:46:59 -07:00
Kevin Lange
0cdecac8e0 Disable size overrides in rme
(Fixes a warning that was caused by a "fix" to a undefined reference to
a missing 64-bit floating-point division function)
2012-09-04 14:45:09 -07:00
Kevin Lange
efa51d0d56 Don't print silly messages in the terminal...
[ci skip]
2012-09-03 23:54:04 -07:00
Kevin Lange
89034c060f I give up; just use qemu-system-i386 everywhere. 2012-09-03 23:40:50 -07:00
Kevin Lange
7bcc2e1264 Actually fix travis. 2012-09-03 23:19:18 -07:00
Kevin Lange
0d3db775cd Fix travis builds? 2012-09-03 23:00:50 -07:00
Kevin Lange
8ed06789ed New debug printing facilities.
- Can now register a userspace file descriptor as the output for kernel
  print statements through kprintf()
- Can set logging levels for debug print messages, which are separate
  from kernel log events and meant to be more readily visible. Log
  events are recorded in a buffer to be viewed later, though nothing
  actually using logging at the moment.
- Serial output is disabled by default now. You can enable it yourself
  by appending the logtoserial argument to the kernel on boot.
2012-09-03 22:35:11 -07:00
Kevin Lange
2bd3ad4007 Merge branch 'master' of github.com:klange/osdev 2012-09-02 02:25:49 -07:00
Kevin Lange
bba242dd62 Add a testing framework.
This is an automated system by which we boot qemu headless and use the
serial line to capture output from a testing application that is started
on bootup, running with the VGA terminal shell. This might be expanded
to boot to the graphical display within VNC and perform more advanced
tests with the Python shim using a VNC module for Python; we'll see.
2012-09-02 02:24:25 -07:00
Kevin Lange
0270f608e0 Update README.md 2012-08-28 22:38:31 -07:00
Kevin Lange
9928a2b4cf Unset CC since that breaks FreeType 2012-08-28 17:25:18 -07:00
Kevin Lange
60e1248c95 Use a special build script for Travis CI. 2012-08-28 17:23:43 -07:00
Kevin Lange
e0af8227e5 Add a Travis CI configuration. 2012-08-28 17:23:28 -07:00
Kevin Lange
7274e8e938 configured run mode 2012-08-20 22:26:22 -07:00
Kevin Lange
c7cec92f35 Deprecate ',' in kernel args and fix run-fullscreen 2012-08-15 22:44:20 -07:00
Kevin Lange
b0998e2561 Fedora kinda maybe stuff 2012-08-15 21:56:53 -07:00
Kevin Lange
ecac878361 Build script 2012-08-15 17:47:34 -07:00
Kevin Lange
444207cbd2 SIGCAT and fix alignment 2012-08-13 14:47:22 -07:00
Kevin Lange
1ebfcaefb7 Update STYLE.c because it had a bad pointer 2012-07-06 21:17:08 -07:00
Kevin Lange
baaa8bc6c8 Stylistic whitespace update to syscall.c 2012-07-06 21:16:19 -07:00
Kevin Lange
c88d6dcb4f Add or update the heading comments for user apps.
Adds useful descriptions to ones that were lacking them, updates ones
that were innacurate, etc.
2012-07-06 21:08:28 -07:00
Kevin Lange
989b43ee68 Fix malloc in libc? 2012-06-01 02:02:02 +09:00
Kevin Lange
112d61fec6 Revert "Remove my allocator from newlib patches"
This reverts commit 82ca77e8bb.
2012-06-01 01:02:00 +09:00
Kevin Lange
18cb8e6183 Fix a bad argument order for a suggested ln 2012-05-31 23:40:34 +09:00
Kevin Lange
8bed24babe Add additional dependencies to README 2012-05-31 23:34:20 +09:00
Kevin Lange
755058d9af Fix some typos in the toolchain scripts 2012-05-31 22:53:42 +09:00
Kevin Lange
84ccf49990 Delayed writes [use sysfunc 3 to sync disc]
Please note that 'reboot' will not call sync yet, so make sure you do it
yourself.
2012-05-31 20:52:47 +09:00
Kevin Lange
0242e8aa11 [hopefully] Fix the EXT2 write support 2012-05-31 20:37:38 +09:00
Kevin Lange
6dae6ac0a7 Add a simple touch command (not exactly compliant) 2012-05-31 20:37:16 +09:00