https://github.com/timluther/clayworks_2.45 Skip to content Sign up * Why GitHub? Features - + Mobile - + Actions - + Codespaces - + Packages - + Security - + Code review - + Project management - + Integrations - + GitHub Sponsors - + Customer stories- * Team * Enterprise * Explore + Explore GitHub - Learn and contribute + Topics - + Collections - + Trending - + Learning Lab - + Open source guides - Connect with others + The ReadME Project - + Events - + Community forum - + GitHub Education - + GitHub Stars program - * Marketplace * Pricing Plans - + Compare plans - + Contact Sales - + Education - [ ] [search-key] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this user All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up {{ message }} timluther / clayworks_2.45 * Notifications * Star 2 * Fork 1 Old DOS 3D modelling program written in Pascal & Assembler 2 stars 1 fork Star Notifications * Code * Issues 0 * Pull requests 0 * Actions * Projects 0 * Wiki * Security * Insights More * Code * Issues * Pull requests * Actions * Projects * Wiki * Security * Insights main Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags 1 branch 0 tags Code Clone HTTPS GitHub CLI [https://github.com/t] Use Git or checkout with SVN using the web URL. [gh repo clone timlut] Work fast with our official CLI. Learn more. * Open with GitHub Desktop * Download ZIP Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Go back Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Go back Launching Xcode If nothing happens, download Xcode and try again. Go back Launching Visual Studio Code Your codespace will open once ready. There was a problem preparing your codespace, please try again. Latest commit @timluther timluther Update readme.txt ... 95ec3e1 Jun 16, 2021 Update readme.txt 95ec3e1 Git stats * 3 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time bin Initial commit May 29, 2021 BASIC3D.PAS Initial commit May 29, 2021 BITMAP16.PAS Initial commit May 29, 2021 BITMAP25.PAS Initial commit May 29, 2021 CHARDEF.PAS Initial commit May 29, 2021 CLAYCP.PAS Initial commit May 29, 2021 COLOUR.PAS Initial commit May 29, 2021 CPUTYPE.PAS Initial commit May 29, 2021 CRT2.PAS Initial commit May 29, 2021 DIALOGS.PAS Initial commit May 29, 2021 DISKOP.PAS Initial commit May 29, 2021 DMA.PAS Initial commit May 29, 2021 EMSUNIT.PAS Initial commit May 29, 2021 GADGETS.PAS Initial commit May 29, 2021 GBASICS.PAS Initial commit May 29, 2021 GGRAPH.PAS Initial commit May 29, 2021 LCD.PAS Initial commit May 29, 2021 MSMOUSE.PAS Initial commit May 29, 2021 PCX256.PAS Initial commit May 29, 2021 PITTIMER.PAS Initial commit May 29, 2021 SINCOS.PAS Initial commit May 29, 2021 STDPAL.PAS Initial commit May 29, 2021 SVGA256.PAS Initial commit May 29, 2021 TDB.PAS Initial commit May 29, 2021 TDEDITB.PAS Initial commit May 29, 2021 TDWIN.PAS Initial commit May 29, 2021 TMATHS.PAS Initial commit May 29, 2021 TMENUST.PAS Initial commit May 29, 2021 TTYPES.PAS Initial commit May 29, 2021 TWINB.PAS Initial commit May 29, 2021 TWINDRAW.PAS Initial commit May 29, 2021 VECTFONT.PAS Initial commit May 29, 2021 VESAINFO.PAS Initial commit May 29, 2021 VESATEST.PAS Initial commit May 29, 2021 VGA16.PAS Initial commit May 29, 2021 VGA256.PAS Initial commit May 29, 2021 VIEWS.PAS Initial commit May 29, 2021 XVGA256.PAS Initial commit May 29, 2021 readme.txt Update readme.txt Jun 16, 2021 View code readme.txt 2020: Uploaded this to Github for historical fun A live version of this can be found here: http://www.cw-3d.com/clay/downloads/cwDOS2.45/public/index.html 2000: Claworks 2.45 source code information. This zip file contains the source code to version 2.45 of Claworks. This code is several years old and has not been maintained. I am releasing it into the public domain as several people have asked for it and it might help somebody in some small way. The code is probably quite messy, may contain poorly spelt or offensive comments and should not in any way be considered 'good code'. Hey, I was a kid when I wrote most of this! I haven't had time to really go through everything and check for obvious mistakes as I am quite busy writing the new version of clayworks, working at www.aicube.com and generally doing stuff. The source is mostly in Pascal but there are some smatterings of 80386 assembler in there too. To compile this code and run clayworks you need to have Borland Pascal 6 or greater. Set your output and unit directory to the 'bin' sub directory found in the zip file (if unzipping this file using dos pkunzip, using the -d switch to preserve the directory structure). In side that directory, there are several files essential to clayworks including a few internal text files, a pcx image and In preparing this source, I have simply isolated the Pascal files needed by clayworks from all the other Pascal sources inside my aging Pascal directory. Some files may still be extraneous but I haven't looked through well enough to determine which ones are and which ones are not. All of the core UI code is contained in the files 'views.pas','tdwin.pas', 'gadgets.pas' and 'dialogs.pas'. The rendering code is contained in the files 'vga16.pas','vga256.pas' and 'xvga256.pas' although only 'vga16.pas' is used in clayworks (4bit colour mode). I'm not sure how up to data the other units are, perhaps you could get them working. I remember I did have clayworks running at 640x400 with 8bit colour on a standard vga card using the modex library but that was some time ago and not all monitors would sync to the weird rate that the mode required. Lower modes such as 320x240x256 should sync ok. However, I take no responsibility for any damage you might do to your monitor (or yourself) if you decide to use that library. Synopsis of files: BASIC3D.PAS :Basic 3d definitions BITMAP16.PAS :Code for drawing on 4bit bitmaps BITMAP25.PAS :Code for drawing on 8bit bitmaps (n.b. almost exactly the same as vga256.pas) CHARDEF.PAS :Font structures and definitions CLAYCP.PAS :Main clayworks source file COLOUR.PAS :Colour palette manipulation; gradients, colour matching and rgb<->hsv convertion CPUTYPE.PAS :CPU identification (n.b from the dark ages, don't expect it to identify your itanium!) CRT2.PAS :Bare bones replacement for the buggy Borland crt.tpu unit (runtime error 200) DIALOGS.PAS :Dialog boxes structures and code (file, colour picker etc) DISKOP.PAS :Some disk io helper functions DMA.PAS :DMA transfer. Not sure If I actually use this, it did work sometime in the last decade EMSUNIT.PAS :EMS memory extender. Not used but included anyway.. I always hated EMS anyway GADGETS.PAS :Some extra UI widgets GBASICS.PAS :Basic graphical definitions. Defines certain types such as points & rects. GGRAPH.PAS :Used for graphical initialisation LCD.PAS :No idea why this is in here, I used it for doing an lcd-a-like clock years ago MSMOUSE.PAS :Interface to a Microsoft compatible mouse driver PCX256.PAS :Loads pcx images PITTIMER.PAS :Low-level timer stuff. Not really used much. SINCOS.PAS :Tables for sine and cosine. Ha, those were the days. STDPAL.PAS :Standard clayworks palette SVGA256.PAS :Mode 13h (320x200x256) drawing code. TDB.PAS :Scene manipulation and 3d projection code TDEDITB.PAS :Scene manipulation extensions for 3d modelling TDWIN.PAS :UI interface for manipulating 3d objects TMATHS.PAS :Maths helper functions TMENUST.PAS :UI menu elements (the st stands for 'static', I have another dynamic library) TTYPES.PAS :Basic types TWINB.PAS :UI widgets. Buttons, scrollbars, lists, toolbars etc TWINDRAW.PAS :Some higher level drawing code for certain useful shapes(for clayworks anyway) VECTFONT.PAS :Borland vector font manipulation code VESAINFO.PAS :Looks at the vesa modes on your card, not used. VESATEST.PAS :Tests vesa stuff VGA16.PAS :4bit drawing library. Includes lines, points, bitmap pasting, text rendering etc VGA256.PAS :as above only 8bit VIEWS.PAS :Core UI code XVGA256.PAS :8bit rendering code only using the tweaked mode X. Have fun with the source and improve it if you like. However, if you wish to release a new version of clayworks based on this source code, you must contact me first so that we can discuss how this should be done. The main purpose of releasing the source is to help people understand what goes into a simple 3d modelling program, rather than to start a big GPL thing. Besides, who codes in Pascal these days? I hope you find this useful, I recommend looking at the UI code as it's probably the most advanced thing in here (I used this as a base for the rewrite of clayworks also, although It's evolved greatly over the years). Finally, I reserve the right to the name 'Clayworks' and do not accept liability for any damages incurred through using this source. Tim Lewis. Tokyo, 31/8/2000. About Old DOS 3D modelling program written in Pascal & Assembler Resources Readme Releases No releases published Packages 0 No packages published Languages * Pascal 100.0% * (c) 2021 GitHub, Inc. * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.