Zeal-Operating-System / ZealOS

The Zeal Operating System is a modernized fork of the 64-bit Temple Operating System, TempleOS.
https://zealos.net
The Unlicense
1.42k stars 68 forks source link

How do you export code? #2

Closed ghost closed 2 years ago

ghost commented 2 years ago

I know you could burn an ISO image in TempleOS, but it doesn't really work(doesn't ouput to disk file). Should I use special commands for this? Also how do you build the ISO of this?

TomAwezome commented 2 years ago

File exporting process is subject to change at some point in the future, but for now the process is summarized in the README.

After you've installed the latest release in a VM and made your changes, you can run the K.CC file in the Home/ directory to build a Distro ISO. Then, use either the mnt.sh or export.ps1 script to merge your changes & Distro ISO to the repo.

Alternatively, you can put individual files into a folder, and run RedSeaISO("MyChanges.ISO", "/Home/Folder"); to package them into an ISO, then use the mount scripts to export the ISO.

The mnt.sh or export.ps1 scripts both do the same thing, export the VM hard disk contents to the src/ directory of the GitHub repo. The shell script is for Linux hosts and the PowerShell script is for Windows.

ghost commented 2 years ago

Ok.... but could you export only single files or import a file into the OS?

TomAwezome commented 2 years ago

There is currently no way to export single files directly. Another pair of scripts just_mnt.sh and just_umnt.sh were created to allow you to manually mount and unmount the VM hard disk, if you wanted to navigate to the mounted folder and copy files to/from it that way.

doodayev commented 2 years ago

https://youtu.be/oZuj6IY7x7M https://youtu.be/-SVZftr06Lg @sugkiy here's two videos I made that each show off how you can import or export files (yes, you can do files one at a time, as this program allows to open those fat32 images in your file explorer) into TempleOS and this also applies to ZealOS. Just make sure that you have your virtual disc saved as vmdk (maybe it works with vdi too but I haven't tried). Here's the link to the program I use: https://sourceforge.net/projects/imdisk-toolkit/

ghost commented 2 years ago

Thanks for the fast help! I use BSD, so I don't think I need @doodayev 's imdisk-toolkit anytime soon, I used mknod to create a ramdisk. Just one more question: I tried to mount an .ISO.C image from the web, but ZealOS just said unknown filesystem. Did I do wrong on mounting the disk on Virtualbox or am I wrong with Cd("T:");?

ghost commented 2 years ago

Could you change the screen resolution while installing? It defaults to 1366x768 and skips the chossing step,

doodayev commented 2 years ago

Since you're installing in a virtual machine it's going to be skipping that step automatically. You can increase the resolution by going to System/Boot and running BootHDIns. You run it iirc with BootHDIns(); or #include BootHDIns; One of those two should work.

ghost commented 2 years ago

I didn't know that, thanks. I know this is against the Charter, but has anyone succeeded using HGBD?

TomAwezome commented 2 years ago

You can increase the resolution by going to System/Boot and running BootHDIns. You run it iirc with BootHDIns(); or #include BootHDIns; One of those two should work.

BootHDIns; has the same effect when run in any directory on a drive. All that is needed is to type BootHDIns; and Enter at the command line. It will guide you through recompiling the kernel, and choosing a video resolution is one of the last parts of this process. For more details, check here: https://github.com/Zeal-Operating-System/ZealOS/wiki/Kernel-Recompiling-(Standard)

I know this is against the Charter, but has anyone succeeded using HGBD?

The ZealOS Charter mainly applies to first-party code, meaning simply that any third-party libraries are not supported or tested. I haven't heard of anybody trying to use HGBD with ZealOS, but it's possible it might work.

TomAwezome commented 2 years ago

Just one more question: I tried to mount an .ISO.C image from the web, but ZealOS just said unknown filesystem. Did I do wrong on mounting the disk on Virtualbox or am I wrong with Cd("T:");?

Using discs can be a bit tricky. Typically the best bet is use the Mount; function and process to mount the ATAPI drive, then use DiskChange('t'); to go to the disc. Sometimes it's finicky and might need another DiskChange('t'); run to update the drive's state and properly initialize the disc to read data off it. ZealOS has support for TempleOS, ZenithOS, and ZealOS RedSea ISOs, so most ISO.C disc files should be readable.

z0mbieslayer commented 11 months ago

ZealOS has support for TempleOS, ZenithOS, and ZealOS RedSea ISOs, so most ISO.C disc files should be readable.

Sorry to reopen this, but would would there be a way to run the contents of the TempleOS Supplemental discs despite them being HC and not ZC? Namely looking for After Egypt. Tried to run it and forgot it was a different extension.

doodayev commented 11 months ago

There is a code converter in C:/System/Utilities called ConversionScript.ZC Include the function and then call the function with the directory or files you have in mind. If it doesn't work, then some things need to be updated. Please show what error message you get if you do.

z0mbieslayer commented 11 months ago

Not sure if I'm doing it right or not, but I'm getting an Undefined identifier error. This is after I've included it.

doodayev commented 11 months ago

Post a screenshot so I can see the full error

z0mbieslayer commented 11 months ago

zealos

doodayev commented 11 months ago

Oh right. There's a problem. For some reason most files in TempleOS are compressed. Make sure that you save the source code as ONLY .HC and not .HC.Z That Z at the end means that it's compressed. There's other problems with the way you're doing it so let me give it a shot and demonstrate how it's supposed to go. Wait a bit

doodayev commented 11 months ago

HowToConvertFromHolyCToZeal Alright here's a guide on how to do it.

doodayev commented 11 months ago

AfterEgypt.zip And here's my upload of AfterEgypt in case you don't want to uncompress the files yourself. (Unfortunately it doesn't work even after converting successfully. Not sure why yet)

z0mbieslayer commented 11 months ago

AfterEgypt.zip And here's my upload of AfterEgypt in case you don't want to uncompress the files yourself. (Unfortunately it doesn't work even after converting successfully. Not sure why yet)

Thanks for the help, a shame it doesn't work just like that.

GutPuncher commented 11 months ago

It would be helpful if there were compression/decompression tools for TOS .Z, Windows/Linux .zip, Linux .tar.gz, etc., implemented as a third-party program that could be transferred to the https://github.com/Zeal-Operating-System/ organization among the other supported non-standard programs.

ZealOS removes compression entirely to make all files as transparent as possible, and to save CPU time spent on decompressing/re-compressing that isn't necessary as space/speed via AHCI on modern drives is enough to negate the need for compression. However, there are use-cases for having an extra optional tool for it, e.g. uncompressing and converting TOS programs, downloading and unzipping files downloaded via FTP and reuploading compressed, unzipping master.zip repo .ZIP clones within the OS, or unzipping compressed files downloaded via Gopher.

Additionally, the ConversionScript is very minimal, and is basically just a find-and-replace. It doesn't handle situations like the many API differences between TOS and Zeal that will cause compiler errors. It would also be helpful for porting if the script was more integrated and aware of Zeal's API changes, so that it can automatically revise function calls/suggest specific changes.