China DOS Union

-- Unite DOS · Advance DOS · Grow DOS --

Union site: www.cn-dos.net Forum site: www.cn-dos.net/forum
DOS stands for freedom, openness and progress. Let us work hard, learn from the openness and GNU spirit of FreeDOS and Linux, and together build and grow a free GNU GPL world!

中国DOS联盟论坛
The time now is 2026-08-01 00:03
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » Real-time microkernel: latest graphical mode multi-window demonstration View 12,249 Replies 39
Floor 16 Posted 2005-10-30 15:03 ·  中国 辽宁 沈阳 联通
高级用户
★★
Credits 739
Posts 111
Joined 2004-11-30 00:00
21-year member
UID 34209
Gender Male
From 辽宁沈阳
Status Offline
Corrected bugs in the mutex priority top-priority protocol;
Newly added "periodic timer" kernel object for periodic transaction processing. The description is as follows:

/*
*******************************************************************************
* Periodic Timer Object Related Functions *
*******************************************************************************
*/

/* Create periodic timer object:
* pTimerName: indicates the timer object name,
*
* cwIDRBM: indicates the ring queue message object ID, used to send ring queue messages when the periodic timer times out,
*
* The return value is the periodic timer object identification ID, used for system calls related to the periodic timer object.
*/
extern CWORD _cdecl_ CreateTimer(STR *pTimerName, CWORD cwIDRBM);

/* Connect periodic timer object to make it effective, periodically send ring queue messages:
* cwIDTimer: periodic timer object identification ID,
*
* dwPeriod: indicates the timer period, unit is time slice,
*
* After success, the return value is SUCCESS, then you can use GetRBM, GetRBMTry to receive message msg,
* msg.dwSize indicates the timed-out periodic timer object ID.
*/
extern CWORD _cdecl_ ConnectTimer(CWORD cwIDTimer, DWORD dwPeriod);

/* Disconnect periodic timer object to make it invalid, stop sending ring queue messages:
* cwIDTimer: periodic timer object identification ID,
*
* After success, the return value is SUCCESS, then you can use DeleteObject to delete the periodic timer object.
*/
extern CWORD _cdecl_ UnConnectTimer(CWORD cwIDTimer);

There are new library files and application examples available for download below.
rtCell16.rar is a 16-bit application example; rtCell32.rar is a 32-bit application example.

[ Last edited by taowentao on 2005-10-30 at 15:10 ]
Floor 17 Posted 2005-11-11 11:00 ·  中国 辽宁 沈阳 联通
高级用户
★★
Credits 739
Posts 111
Joined 2004-11-30 00:00
21-year member
UID 34209
Gender Male
From 辽宁沈阳
Status Offline
rtCell has been ported to Visual C++ and MASM.

The following.obj files are compiled with Visual C++ 5.0 and MASM 6.11.

There are five.obj files and an example source code rtShell.c in the compressed file rtCell_vc5.rar:
cstart.obj, mcEntry.obj, mcKrnl.obj, mcClib32.obj, rtCell.obj
And the Visual C++ 5.0 project files: rtCell.dsp, rtCell.dsw, rtCell.ncb,
rtCell.opt, rtCell.plg are available; please put cstart.obj at the front because it contains 32-bit startup code; pay attention during compilation: align on four bytes.

There are binary tools in the release folder for generating the kernel.sys loadable by FreeDOS;

After compilation, execute make_sys.bat to generate kernel.sys, replace the kernel.sys of FreeDOS; then it can be loaded by the FreeDOS loader.

[ Last edited by taowentao on 2005-11-14 at 10:01 ]
Floor 18 Posted 2005-11-11 19:25 ·  中国 云南 红河哈尼族彝族自治州 电信
中级用户
★★
Credits 478
Posts 132
Joined 2003-07-02 00:00
23-year member
UID 6296
Gender Male
Status Offline
It's too profound, I don't understand. I'll give it a support.
Floor 19 Posted 2005-12-05 10:17 ·  中国 辽宁 沈阳 联通
高级用户
★★
Credits 739
Posts 111
Joined 2004-11-30 00:00
21-year member
UID 34209
Gender Male
From 辽宁沈阳
Status Offline
Demonstration of PS/2 (not USB) mouse and keyboard:
Data can be entered at the red cursor (flashing);
Use the mouse to change the cursor position;
Support mouse wheel operation;

Ctrl + Z switches to the list of all task states, and Ctrl + Z again switches back to the original screen.

The rtCell.rar contains the hard disk image file for rtcell to boot with FreeDOS;
The Qemu.rar contains the latest Qemu virtual machine software, which applies dynamic compilation technology and is extremely fast;
Please extract these two files to the same folder, execute rtcell.bat, and the demonstration can be carried out.

The lib.rar contains application examples for GUN C 3.xx, which can be modified and compiled.
The rtCell_vc5.rar contains application examples for rtCell that can be used with Visual C++ 5.0/6.0, which can be modified and compiled.

[ Last edited by taowentao on 2005-12-6 at 17:22 ]
Floor 20 Posted 2005-12-10 14:23 ·  中国 辽宁 沈阳 联通
高级用户
★★
Credits 739
Posts 111
Joined 2004-11-30 00:00
21-year member
UID 34209
Gender Male
From 辽宁沈阳
Status Offline
Demonstration of reading operations on the root directory file of the rtCell32 hard disk and fat16 file system:

Read hard disk data by interrupt method;
Open and read the root directory file rtCell.txt of the fat16 file system and display its content.

The rtCell.rar contains the hard disk boot image file (for Qemu and bochs virtual machine simulation software),
rtCell32 is booted from it and reads the fat16 file system on it.

[ Last edited by taowentao on 2005-12-10 at 14:29 ]
Floor 21 Posted 2005-12-16 17:38 ·  中国 辽宁 沈阳 联通
高级用户
★★
Credits 739
Posts 111
Joined 2004-11-30 00:00
21-year member
UID 34209
Gender Male
From 辽宁沈阳
Status Offline
After compilation, executing make_sys.bat generates kernel.sys. After replacing the kernel.sys of FreeDOS, it can be loaded by the FreeDOS loader.

The project files in the usr_file directory are used to generate the usr.sys module for serial port communication. After compilation, executing make_usr_sys.bat generates usr.sys.

kernel.sys will load usr.sys in the root directory and send the string "abcdefghijklmnopqrstuvwxyz" to serial port 2. The result can be seen in the scom2.txt file of the Bochs virtual software.

The physical address for loading usr32.sys should be consistent with its compilation base address.

Since the size of kernel.sys does not exceed 128k (limited by the FreeDOS loader), its loading address is 0x600. Therefore, the physical address for loading usr32.sys should be after (0x20000 + 0x600 = 0x26000).

In this example, the physical address for loading usr32.sys is 0x30000.

The above is only for "ATA 1 (interrupt 14), primary hard disk, primary boot partition boot" in the FAT16 format.

In the Bochs virtual software, add the following descriptions in the configuration file bochsrc.txt:

mouse: enabled=0, type=imps2
com1: enabled=1, mode=file, dev="scom1.txt"
com2: enabled=1, mode=file, dev="scom2.txt"

rtCell_vc5.rar contains all the source code (serial communication, disk and FAT16 file operations). bochs.rar is the demonstration of rtCell in the virtual machine software Bochs.

[ Last edited by taowentao on 2005-12-19 at 10:04 ]
Floor 22 Posted 2005-12-19 10:08 ·  中国 辽宁 沈阳 联通
高级用户
★★
Credits 739
Posts 111
Joined 2004-11-30 00:00
21-year member
UID 34209
Gender Male
From 辽宁沈阳
Status Offline
Demonstration of 16-bit DOS real-mode mouse (PS2 ordinary serial port mouse) and keyboard applications:

demo.exe is a demonstration of mouse (PS2) and keyboard applications under pure DOS. Note: The mouse cannot be used in the DOS window of (Win98/2K/XP);

KERNEL.SYS is used for the mouse and keyboard demonstration loaded and started by the free loader of Free DOS;

rtCell16.lib is a 16-bit library file of the real-time microkernel rtCell (only applicable to Open Watcom C/C++);

rtPC_input.obj is a mouse (PS2) and keyboard input obj file, which performs corresponding I/O operations. The source code can be found in FreeDOS-32 release 0.0.5;

sys_demo.bat and EXEFLAT.EXE are used to generate KERNEL.SYS from demo.exe, so as to be loaded and started by the free loader of Free DOS.
Floor 23 Posted 2006-01-13 15:12 ·  中国 辽宁 沈阳 联通
高级用户
★★
Credits 739
Posts 111
Joined 2004-11-30 00:00
21-year member
UID 34209
Gender Male
From 辽宁沈阳
Status Offline
Real multi-tasking, multi(text mode) window demonstration program:

Interrupt-driven mouse, keyboard, event-driven multi-windows, real multi-tasking, fully preemptive real-time microkernel;

Red title is the active window, blue title is the inactive window, the inactive window can be dynamically refreshed in the background;

One of the windows displays the task status, the other two windows display the current time and the word "window", and the desktop displays keyboard input;

You can use the mouse to move, activate the window, and (lower right corner of the window) change the window size.

"ctrl + z" hotkey to switch to the task status window.

The qemu_0.8_domo.rar contains the demonstration on the virtual machine, execute rtCell.bat;
dos_demo.rar (demo.exe and demo_.exe) is used to demonstrate with a serial mouse in pure DOS (no mouse on Windows).

[ Last edited by taowentao on 2006-1-23 at 12:05 ]
Floor 24 Posted 2006-02-07 14:23 ·  中国 上海 电信
新手上路
Credits 2
Posts 1
Joined 2006-02-07 14:16
20-year member
UID 49979
Status Offline
Where is your mcKrnl.obj code? Or is this part of the code not public?
Floor 25 Posted 2006-02-07 18:03 ·  中国 辽宁 沈阳 联通
高级用户
★★
Credits 739
Posts 111
Joined 2004-11-30 00:00
21-year member
UID 34209
Gender Male
From 辽宁沈阳
Status Offline
The version with "source code open" is under way; this will take some time because any version of rtCell should simultaneously have good portability for CPUs with 16-bit, 32-bit or even longer word lengths.

[ Last edited by taowentao on 2006-2-8 at 08:17 ]
Floor 26 Posted 2006-02-08 15:05 ·  中国 海南 海口 电信
新手上路
Credits 2
Posts 1
Joined 2006-02-08 12:12
20-year member
UID 50027
Status Offline
After talking so much,
Let's download it and have a look first!
Thanks!
Floor 27 Posted 2006-10-05 22:18 ·  中国 辽宁 沈阳 移动
高级用户
★★
Credits 739
Posts 111
Joined 2004-11-30 00:00
21-year member
UID 34209
Gender Male
From 辽宁沈阳
Status Offline
giCell: Truly Graphical Mode Multi-Window - All Source Code (C Language) Less Than Six Thousand Lines, With the Following Functions:

1. Perfect and elaborate multi-viewport clipping and hidden surface removal processing, tightly integrated with the real-time microkernel rtCell;

2. Truly event (or message) driven multi-window technology, and supports top-level windows and transparent windows;

3. Currently supports Label, Edit, Botton, Slider, Listbox, scrollbar, TreeView, and Checkbox controls. Among them, the Edit control supports cut, copy, and paste (ctrl+x, ctrl+c, ctrl+v);

4. Supports window panning, zooming, and window system buttons, as well as process callbacks for windows and controls;

5. Small memory requirements (less than 64K), very small memory consumption for windows and controls, so it is highly practical. Including rtCell, mouse, keyboard, and graphics driver, it is only more than 100 K bytes under DOS.


Demonstration Method: Unzip gui_Test.rar, execute gui_Test.bat under Windows (double-click),

or directly execute bc_gui.exe under pure DOS (no mouse in the DOS window of Windows).

Note: In this demonstration, because it contains an illustrative bitmap, bc_gui.exe is relatively large.

Download Address: http://zhenlove.com.cn/cndos/fileup/files/gui_Test.rar
https://gro.clinux.org/frs/download.php/1888/bc_gui.zip

[ Last edited by taowentao on 2006-11-29 at 10:10 AM ]
来自山东,现居沈阳
Floor 28 Posted 2006-10-05 22:23 ·  中国 四川 成都 电信
铂金会员
★★★★
Credits 7,493
Posts 2,672
Joined 2005-09-02 00:00
20-year member
UID 42173
Gender Male
Status Offline

C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
Floor 29 Posted 2006-10-09 04:16 ·  中国 云南 红河哈尼族彝族自治州 电信
中级用户
★★
Credits 478
Posts 132
Joined 2003-07-02 00:00
23-year member
UID 6296
Gender Male
Status Offline
Decompression failed, it is suggested that the thread starter re - upload
Floor 30 Posted 2006-10-18 22:27 ·  中国 辽宁 沈阳 移动
高级用户
★★
Credits 739
Posts 111
Joined 2004-11-30 00:00
21-year member
UID 34209
Gender Male
From 辽宁沈阳
Status Offline
I tried, no problem. Please re-download and unzip.
来自山东,现居沈阳
Forum Jump: