mirror of
https://github.com/WindowsNT351/CE-Collections.git
synced 2025-12-28 01:50:26 +08:00
Compare commits
4 Commits
70f2860221
...
484fc1b738
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
484fc1b738 | ||
|
|
2c7fb2ee94 | ||
|
|
62c66fec6c | ||
|
|
e9baf36447 |
66
README.md
66
README.md
@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# ❓ 什么是 CE Collections
|
# ✏️ 什么是 CE Collections
|
||||||
CE Collections 集合了几乎所有基于 CE 内核的官方Windows版本(例如 Windows CE Core,Windows Mobile,Windows Phone等)的镜像和模拟器。
|
CE Collections 集合了几乎所有基于 CE 内核的官方Windows版本(例如 Windows CE Core,Windows Mobile,Windows Phone等)的镜像和模拟器。
|
||||||
|
|
||||||
镜像包括:
|
镜像包括:
|
||||||
@ -29,11 +29,11 @@ CE Collections 集合了几乎所有基于 CE 内核的官方Windows版本(例
|
|||||||
1. 在插入光盘之前,启动宿主操作系统(NT4.0-Win11)。
|
1. 在插入光盘之前,启动宿主操作系统(NT4.0-Win11)。
|
||||||
2. 插入光盘并等待弹出菜单,如果没有,运行[CD(DVD)ROM]:\WNT\Menu3.exe。
|
2. 插入光盘并等待弹出菜单,如果没有,运行[CD(DVD)ROM]:\WNT\Menu3.exe。
|
||||||
3. 选择要启动的操作系统(模拟器)。注意,当使用不同的主机操作系统时,会有一些不同的限制。
|
3. 选择要启动的操作系统(模拟器)。注意,当使用不同的主机操作系统时,会有一些不同的限制。
|
||||||
<img src="./menuwnt.png" width="900px;" alt=""/>
|
|
||||||
- Windows NT 4.0 可用Shell Emulator,这是Shell Emulator的最佳宿主操作系统。
|
- Windows NT 4.0 可用Shell Emulator,这是Shell Emulator的最佳宿主操作系统。
|
||||||
- Windows 2000 - XP 可以Shell Emulator(x64宿主系统上不能运行Auto PC 1.0)和ARM DeviceEmulator。
|
- Windows 2000 - XP 可以Shell Emulator(x64宿主系统上不能运行Auto PC 1.0)和ARM DeviceEmulator。
|
||||||
- Windows 7 - 8.1 可用Shell Emulator(Pocket PC 2000和x64宿主系统上的Auto PC 1.0除外)ARM DeviceEmulator、XDE Emulator和Whitebox Emulator。
|
- Windows 7 - 8.1 可用Shell Emulator(Pocket PC 2000和x64宿主系统上的Auto PC 1.0除外)ARM DeviceEmulator、XDE Emulator和Whitebox Emulator。
|
||||||
- Windows 10 - 11 可用Shell Emulator(Pocket PC 2000和x64宿主系统上的Auto PC 1.0除外)ARM DeviceEmulator和Whitebox Emulator。
|
- Windows 10 - 11 可用Shell Emulator(Pocket PC 2000和x64宿主系统上的Auto PC 1.0除外)ARM DeviceEmulator和Whitebox Emulator。
|
||||||
|
<img src="./menuwnt.png" width="900px;" alt=""/>
|
||||||
4. 完成!
|
4. 完成!
|
||||||
|
|
||||||
## CEPC平台使用方法
|
## CEPC平台使用方法
|
||||||
@ -50,14 +50,68 @@ CE Collections 集合了几乎所有基于 CE 内核的官方Windows版本(例
|
|||||||
<img src="./menudos.png" width="800px;" alt=""/>
|
<img src="./menudos.png" width="800px;" alt=""/>
|
||||||
3. 选择想使用的分辨率或确认启动。请注意,启动镜像有时存在一些限制。
|
3. 选择想使用的分辨率或确认启动。请注意,启动镜像有时存在一些限制。
|
||||||
- VGA8BPP显示驱动:
|
- VGA8BPP显示驱动:
|
||||||
<img src="./menudos2.png" width="800px;" alt=""/>
|
|
||||||
- 对于VMware、VBox、Qemu或其他现代虚拟机,只能使用低分辨率模式。
|
- 对于VMware、VBox、Qemu或其他现代虚拟机,只能使用低分辨率模式。
|
||||||
- 对于86Box PCem或实体机,务必使用S3视频卡(WinCE2.0使用S3Trio64,其他版本使用S3Virge),这样能开启高分辨率,否则只能使用低分辨率。
|
- 对于86Box PCem或实体机,务必使用S3视频卡(WinCE2.0使用S3Trio64,其他版本使用S3Virge),这样能开启高分辨率,否则只能使用低分辨率。
|
||||||
- Windows Mobile 的VESA显示驱动:
|
- Windows Mobile 的VESA显示驱动:
|
||||||
<img src="./menudos3.png" width="800px;" alt=""/>
|
|
||||||
- 由于Windows Mobile显示为竖向,有些显卡在遇到此分辨率时会显示错误,发生这种情况时请尝试使用另一个分辨率。
|
- 由于Windows Mobile显示为竖向,有些显卡在遇到此分辨率时会显示错误,发生这种情况时请尝试使用另一个分辨率。
|
||||||
|
<img src="./menudos2.png" width="800px;" alt=""/>
|
||||||
|
<img src="./menudos3.png" width="800px;" alt=""/>
|
||||||
4. 完成!
|
4. 完成!
|
||||||
|
|
||||||
|
# 🔧 CE-Collections 各部分是如何工作的
|
||||||
|
## WinNT Platform
|
||||||
|
1. 插入光盘,自动打开[CD(DVD)ROM]:\WNT\Menu3.exe
|
||||||
|
2. Menu3.exe加载显示[CD(DVD)ROM]:\WNT\menu.enus配置文件,加载[CD(DVD)ROM]:\CECV20.D0版本配置文件。
|
||||||
|
3. 选择要启动的模拟器/镜像
|
||||||
|
- Shell Emulator类
|
||||||
|
1. 使用shellmgr [模拟器种类] [路径] [主程序名称]。
|
||||||
|
2. shellmgr将模拟器复制到系统(用户)TEMP文件夹。
|
||||||
|
3. shellmgr检测宿主系统是否符合当前模拟器。
|
||||||
|
4. shellmgr对于不同模拟器做准备工作。
|
||||||
|
- WinCE 1.0: 设置需要的环境变量
|
||||||
|
- HPC/PPC 2.x: 替换模板注册表内模拟器镜像,合并注册表
|
||||||
|
- PPC 2000: 替换模板注册表内模拟器镜像,合并注册表(不同的目录结构)
|
||||||
|
- APC 1.0: 替换模板注册表内模拟器镜像,合并注册表,加载WCEFS.sys驱动,如果是Windows Vista以上系统,循环终止ApcHook.sys(如果不终止会导致系统蓝屏)。
|
||||||
|
5. shellmgr启动对应的主程序。
|
||||||
|
6. shellmgr等待主程序关闭。
|
||||||
|
7. shellmgr卸载装载的驱动,删除临时文件。
|
||||||
|
- ARM DeviceEmulator类
|
||||||
|
1. 直接使用DeviceEmulator /video [适用于本镜像的分辨率] /memsize 256
|
||||||
|
- CEPC WhiteboxEmulator类
|
||||||
|
1. 直接使用Whitebox [分辨率选择,见CEPC,相比于DOSCEPC,此处区分更详细] /M:[对应的86Box配置文件]
|
||||||
|
- XDE Emulator类
|
||||||
|
1. 使用xdemgr [XDE版本] [NK.bin]。
|
||||||
|
2. xdemgr检测宿主系统是否符合当前模拟器。
|
||||||
|
3. xdemgr复制XDE的VMM.sys(系统为32位)或VMM64.sys(系统为64位)到TEMP文件夹并加载。
|
||||||
|
4. xdemgr复制XDE的配置文件到TEMP文件夹。
|
||||||
|
5. xdemgr启动XDE模拟器。
|
||||||
|
6. xdemgr等待XDE关闭。
|
||||||
|
7. xdemgr卸载驱动,删除临时文件。
|
||||||
|
## CEPC Platform
|
||||||
|
1. 插入光盘/启动软盘,并从中引导至MS-DOS 7.1。
|
||||||
|
2. 加载LOGO.sys显示启动logo。加载光驱驱动(IDE)。
|
||||||
|
3. 检测D:是否为CE-Collections光盘,若不是,遍历寻找。
|
||||||
|
4. 打开[CD(DVD)ROM]:\DOS\Menu.bat,加载[CD(DVD)ROM]:\CECV20.D0版本配置文件。
|
||||||
|
5. 用户选择启动的镜像。
|
||||||
|
6. 自动检测选择的镜像为何种镜像(2.0-2.10/2.11-2.12 HPC2000/3.0-2013/WinMobile)。
|
||||||
|
- 2.0-2.10
|
||||||
|
1. 显示警告提示框。
|
||||||
|
2. 使用Loadcepc /D:3 [NK.bin]
|
||||||
|
- 2.11-2.12 HPC2000
|
||||||
|
1. 显示分辨率选择提示框。
|
||||||
|
2. 高分辨率使用Loadcepc /D:3 [NK.bin]
|
||||||
|
低分辨率使用Loadcepc /D:0 [NK.bin](此分辨率几乎不可用)
|
||||||
|
- 3.0-2013
|
||||||
|
1. 显示确认启动提示框。
|
||||||
|
2. 使用Loadcepc /L:800x600x16 [NK.bin]
|
||||||
|
- WinMobile
|
||||||
|
1. 显示分辨率选择提示框。
|
||||||
|
2. 修复分辨率使用Loadcepc /L:175x240x16 [NK.bin]
|
||||||
|
原始分辨率使用Loadcepc /L:320x400x16 [NK.bin]
|
||||||
|
### Loadcepc是什么?
|
||||||
|
Loadcepc是Windows CE x86镜像的引导器(Bootloader),起到将NK.bin加载至内存,设置显示分辨率,跳转到指定地址的作用。
|
||||||
|
DOS只是CE启动的跳板,CE启动后,DOS提供的中断例程和驻留在内存的程序将不可用,x86CE不是基于DOS的。
|
||||||
|
|
||||||
# ❓ QA
|
# ❓ QA
|
||||||
Q: 在 86Box 或 PCem 中无法引导光盘
|
Q: 在 86Box 或 PCem 中无法引导光盘
|
||||||
A: 请使用 7Zip 等压缩软件打开 ISO 文件,解压 [boot] 文件夹中的 img 文件,然后从软盘引导。
|
A: 请使用 7Zip 等压缩软件打开 ISO 文件,解压 [boot] 文件夹中的 img 文件,然后从软盘引导。
|
||||||
@ -81,7 +135,7 @@ Q: 你能把其他 Windows 系统集成进来吗?
|
|||||||
A: 请看项目名称——答案自明。
|
A: 请看项目名称——答案自明。
|
||||||
|
|
||||||
|
|
||||||
# ❗ 本项目集成的 CE 镜像和模拟器
|
# 🔨 本项目集成的 CE 镜像和模拟器
|
||||||
|
|
||||||
| | | | CE-Collections Supporting | | |
|
| | | | CE-Collections Supporting | | |
|
||||||
|---------------------------|---------|--------------|-----------------------------------|----------------------|----------------------|
|
|---------------------------|---------|--------------|-----------------------------------|----------------------|----------------------|
|
||||||
@ -198,7 +252,7 @@ A: 请看项目名称——答案自明。
|
|||||||
- DOS-LOGO: http://retro.timb.us/Documents/Software/DOS-LOGO.html
|
- DOS-LOGO: http://retro.timb.us/Documents/Software/DOS-LOGO.html
|
||||||
- Whitebox: https://github.com/WindowsNT351/Whitebox
|
- Whitebox: https://github.com/WindowsNT351/Whitebox
|
||||||
|
|
||||||
# 📥 SDK及其他相关工具下载
|
# ⚒️ SDK及其他相关工具下载
|
||||||
### Windows CE 1.x
|
### Windows CE 1.x
|
||||||
#### Windows CE 1.0x
|
#### Windows CE 1.0x
|
||||||
[Microsoft Visual C++ For Windows CE Version 1.0](https://archive.org/details/msvcceu.100)<br />
|
[Microsoft Visual C++ For Windows CE Version 1.0](https://archive.org/details/msvcceu.100)<br />
|
||||||
|
|||||||
Binary file not shown.
@ -129,12 +129,12 @@ BEGIN
|
|||||||
BEGIN
|
BEGIN
|
||||||
VALUE "CompanyName", "351Workshop"
|
VALUE "CompanyName", "351Workshop"
|
||||||
VALUE "FileDescription", "CE-Collections WinNT platform loader"
|
VALUE "FileDescription", "CE-Collections WinNT platform loader"
|
||||||
VALUE "FileVersion", "2.02.RC1.01"
|
VALUE "FileVersion", "2.02.RC1.02"
|
||||||
VALUE "InternalName", "menu3.exe"
|
VALUE "InternalName", "menu3.exe"
|
||||||
VALUE "LegalCopyright", "Copyright 351Workshop 2022-2025"
|
VALUE "LegalCopyright", "Copyright 351Workshop 2022-2025"
|
||||||
VALUE "OriginalFilename", "menu3.exe"
|
VALUE "OriginalFilename", "menu3.exe"
|
||||||
VALUE "ProductName", "CE-Collections"
|
VALUE "ProductName", "CE-Collections"
|
||||||
VALUE "ProductVersion", "2.02.RC1.01"
|
VALUE "ProductVersion", "2.02.RC1.02"
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
BLOCK "VarFileInfo"
|
BLOCK "VarFileInfo"
|
||||||
@ -176,6 +176,13 @@ END
|
|||||||
IDB_BITMAP1 BITMAP "res\\background.bmp"
|
IDB_BITMAP1 BITMAP "res\\background.bmp"
|
||||||
IDB_BITMAP2 BITMAP "res\\about.bmp"
|
IDB_BITMAP2 BITMAP "res\\about.bmp"
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Cursor
|
||||||
|
//
|
||||||
|
|
||||||
|
IDC_CURSOR1 CURSOR "res\\hand.cur"
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// String Table
|
// String Table
|
||||||
|
|||||||
@ -253,6 +253,10 @@
|
|||||||
RelativePath=".\res\background.bmp"
|
RelativePath=".\res\background.bmp"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\res\hand.cur"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\res\menu3.ico"
|
RelativePath=".\res\menu3.ico"
|
||||||
>
|
>
|
||||||
|
|||||||
@ -135,7 +135,7 @@ BOOL Cmenu3Dlg::OnInitDialog()
|
|||||||
GetDlgItem(IDC_STATICBTN3)->GetWindowRect(&m_rectbtn3);
|
GetDlgItem(IDC_STATICBTN3)->GetWindowRect(&m_rectbtn3);
|
||||||
ScreenToClient(&m_rectbtn3);
|
ScreenToClient(&m_rectbtn3);
|
||||||
|
|
||||||
SetWindowLong(m_hWnd, GWL_STYLE, WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX);
|
//SetWindowLong(m_hWnd, GWL_STYLE, WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX);
|
||||||
|
|
||||||
int iNodeNum = GetPrivateProfileInt(L"0", L"nodeNum", 255, lpPath);
|
int iNodeNum = GetPrivateProfileInt(L"0", L"nodeNum", 255, lpPath);
|
||||||
treeStr = new HTREEITEM[iNodeNum]();
|
treeStr = new HTREEITEM[iNodeNum]();
|
||||||
@ -306,7 +306,10 @@ void Cmenu3Dlg::OnMouseMove(UINT nFlags, CPoint point)
|
|||||||
{
|
{
|
||||||
HCURSOR hCursor;
|
HCURSOR hCursor;
|
||||||
hCursor = ::LoadCursor ( NULL, IDC_HAND );
|
hCursor = ::LoadCursor ( NULL, IDC_HAND );
|
||||||
|
if(hCursor == NULL)
|
||||||
|
hCursor = LoadCursor ( AfxGetApp()->m_hInstance, MAKEINTRESOURCE(IDC_CURSOR1) );
|
||||||
::SetCursor ( hCursor );
|
::SetCursor ( hCursor );
|
||||||
|
Sleep(10);
|
||||||
}
|
}
|
||||||
CDialog::OnMouseMove(nFlags, point);
|
CDialog::OnMouseMove(nFlags, point);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -41,4 +41,5 @@ public:
|
|||||||
CRect m_rectbtn2;
|
CRect m_rectbtn2;
|
||||||
CRect m_rectbtn3;
|
CRect m_rectbtn3;
|
||||||
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
|
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
|
||||||
|
afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
|
||||||
};
|
};
|
||||||
|
|||||||
BIN
WNT/menu3.exe/res/hand.cur
Normal file
BIN
WNT/menu3.exe/res/hand.cur
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 326 B |
@ -9,6 +9,7 @@
|
|||||||
#define IDR_MAINFRAME 128
|
#define IDR_MAINFRAME 128
|
||||||
#define IDB_BITMAP1 129
|
#define IDB_BITMAP1 129
|
||||||
#define IDB_BITMAP2 130
|
#define IDB_BITMAP2 130
|
||||||
|
#define IDC_CURSOR1 131
|
||||||
#define IDC_TREE1 1000
|
#define IDC_TREE1 1000
|
||||||
#define IDC_EDIT1 1005
|
#define IDC_EDIT1 1005
|
||||||
#define IDC_STATICBTN1 1009
|
#define IDC_STATICBTN1 1009
|
||||||
@ -20,7 +21,7 @@
|
|||||||
//
|
//
|
||||||
#ifdef APSTUDIO_INVOKED
|
#ifdef APSTUDIO_INVOKED
|
||||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||||
#define _APS_NEXT_RESOURCE_VALUE 131
|
#define _APS_NEXT_RESOURCE_VALUE 132
|
||||||
#define _APS_NEXT_COMMAND_VALUE 32771
|
#define _APS_NEXT_COMMAND_VALUE 32771
|
||||||
#define _APS_NEXT_CONTROL_VALUE 1013
|
#define _APS_NEXT_CONTROL_VALUE 1013
|
||||||
#define _APS_NEXT_SYMED_VALUE 101
|
#define _APS_NEXT_SYMED_VALUE 101
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user