Author Topic: Developing software tools needed to develop Apps and Plugs-Ins  (Read 63340 times)

Offline Jubadub

  • Gold Member
  • *****
  • Posts: 326
  • New Member
Re: Top 5 OS 9 Developer Tools? Plus questions
« Reply #60 on: November 15, 2017, 05:22:03 PM »
Wow, so MPW which you recommended earlier can even work with assembly?! Awesome!!!! I will probably check that before all else! :D

What OS/context would the resulting program written in assembly be running?
I haven't set my mind on anything specific for that yet, but whatever I make, it will definitely be running on Mac OS, with a preference for OSes 9.2.2, 10.4.11 and 10.5.8, and the G3, G4 and G5 processors. For now, though, it's more of a curiosity thing than any big project. But in order to even be able to come up with anything cool or useful, I first seek to get familiar with the assembly language(s).
Oh, also, what I'm about to say isn't necessarily exclusive to assembly, but whatever I make, one huge aim would be to make the application make the most out of multiple processors/cores (if more than one is available, that is -- I certainly wouldn't abandon all the amazing single-processor single-core Macs out there!), especially considering the lack of multi-threaded programs for Mac OS 9. Are there other programs for OS 9 besides Photoshop that make use of multiple threads?

Yeah it's pretty cool that it can execute in big or little endian mode.  I was pretty sure the G5 could do the switch. As far as VPC goes they may not have done the switching because of the way the memory management worked in the CPU.  Not sure I never really went into that much more than reading the specs of the PowerISA.
I'd love to see and verify all of that first-hand for myself, too. I have done much reading, but never actually spent time doing any assembly code (I'm mostly accostumed to high-level languages, so I'm in for... quite a scary, yet awesome, treat!). Hopefully I won't fry too many chips! ::)


EDIT: Almost forgot: I discovered another text-editing program for anyone interested, as well. It seems it was rather famous back in the day... It's Text-Edit Plus. Used to be shareware, but now it is 100% freeware.
https://www.tex-edit.com/
And some scripts to enhance it, all done with AppleScript (some being classic Mac OS exclusive, others X exclusive, but most of them work for both).
https://dougscripts.com/texedit/scrpcont.php

macStuff

  • Guest
Re: Top 5 OS 9 Developer Tools? Plus questions
« Reply #61 on: November 15, 2017, 08:27:48 PM »
i was just browsing the results of the "Development tools" section on the macintosh repository:
https://www.macintoshrepository.org/applications/?c=11&p=1

https://www.macintoshrepository.org/7327-script-debugger-3-0-9
is this for applescript debugging?

https://www.macintoshrepository.org/777-symantec-think-c-c-8-6
is this worth checking out? c++ on the mac?


Offline nanopico

  • Moderator
  • Platinum Member
  • *****
  • Posts: 767
Re: Top 5 OS 9 Developer Tools? Plus questions
« Reply #63 on: November 16, 2017, 06:08:08 AM »
Yeah it's pretty cool that it can execute in big or little endian mode.  I was pretty sure the G5 could do the switch. As far as VPC goes they may not have done the switching because of the way the memory management worked in the CPU.  Not sure I never really went into that much more than reading the specs of the PowerISA.
I'd love to see and verify all of that first-hand for myself, too. I have done much reading, but never actually spent time doing any assembly code (I'm mostly accostumed to high-level languages, so I'm in for... quite a scary, yet awesome, treat!). Hopefully I won't fry too many chips! ::)

In the G5 the memory manager in the CPU is always 64 bit.  When the CPU runs in 32bit mode it only uses half the address.  When you switch the endianness there are issues. 
I believe when you switch to little endian the internals of the MMU don't actually switch so now you are always getting zero. Normally not a problem, but I am assuming that VPC would be doing some sort of very low level manipulation where this could become a problem.  I may be talking through my ass though.  I have not dealt with this functionality before.  Just what I read from PowerISA and spec sheets for the Power architecture.

And MPW is a collection of tools. It is an IDE. The last versions came with assembly, c and c++ compilers for both PPC and 68k.  The pascal compiler could be added separate. Early versions include pascal.  The later versions of the c & c++ compilers where created by symantic.
If it ain't broke, don't fix it, or break it so you can fix it!

Offline Naiw

  • Veteran Member
  • ****
  • Posts: 126
  • new to the forums
Re: Top 5 OS 9 Developer Tools? Plus questions
« Reply #64 on: November 18, 2017, 06:11:31 PM »
https://www.macintoshrepository.org/1556-codewarrior-10-gold
https://web.archive.org/web/20061210025957/http://www.freescale.com/webapp/sps/site/overview.jsp?nodeId=01272694011612

according to this info, CodeWarrior was discontinued in May 2006 with v10 being the last Version..

which is hilarious because next thing i scroll to is:
https://www.macintoshrepository.org/1651-codewarrior-11-academic-gold-
lol

No the only this that makes this confusing is that Metrowerks changed their versioning scheme a few times, first they introduced Code Warrior Pro 1 etc (Which was really CW 16 or something similar)
Then they also introduced Code Warrior Development Studio (but retained the numbering scheme).

CW Pro / Dev Studio 10 was indeed the last version.

Offline Naiw

  • Veteran Member
  • ****
  • Posts: 126
  • new to the forums
Re: Top 5 OS 9 Developer Tools? Plus questions
« Reply #65 on: November 18, 2017, 06:32:31 PM »
Yeah it's pretty cool that it can execute in big or little endian mode.  I was pretty sure the G5 could do the switch. As far as VPC goes they may not have done the switching because of the way the memory management worked in the CPU.  Not sure I never really went into that much more than reading the specs of the PowerISA.

In the G5 the memory manager in the CPU is always 64 bit.  When the CPU runs in 32bit mode it only uses half the address.  When you switch the endianness there are issues. 
I believe when you switch to little endian the internals of the MMU don't actually switch so now you are always getting zero. Normally not a problem, but I am assuming that VPC would be doing some sort of very low level manipulation where this could become a problem.  I may be talking through my ass though.  I have not dealt with this functionality before.  Just what I read from PowerISA and spec sheets for the Power architecture.

The Power PC 970(fx/MP etc) don't support little endian mode at all, the MSR[LE] bit is not regarded.

Also MSR[LE] on the old AIM PPCs was not true little endian, it's was a hack that inverted bits in the pagetable, intended to make it easy to port little endian software to the PPC.

The modern PPCs/POWER cpus today has true little endian support.

Offline Naiw

  • Veteran Member
  • ****
  • Posts: 126
  • new to the forums
Re: Top 5 OS 9 Developer Tools? Plus questions
« Reply #66 on: November 18, 2017, 06:47:34 PM »
My main focus and preference are tools that can run on at least Mac OS 9.2.2, but I would still be VERY glad to learn of options even if they are OS-X-exclusive (up to 10.5.8 Leopard Client / 10.5.8v1.1 Leopard Server, PowerPC only). Also, if some particular tool for some reason only works with System 7 or so, if you believe it to be any good, please, do share your knowledge on it, as well.

I believe the number 1 choice must be CodeWarrior (not sure what versions specifically, though, especially considering each Mac OS version), but I was wondering if the GNU-GCC toolchain was also available for OS 9. Also, I have read some guy at IBM ported Node.js over to PowerPC (or just POWER?) machines, but I haven't yet looked into it with much detail.
Also, I figure there must be some IDE for Java (do NetBeans or Eclipse for PowerPC exist?), but I haven't yet dedicated myself to looking that up yet, either.

And to stick to topic...

Yes CodeWarrior is definately the IDE to go for (provided you can find a working license file), it's way faster than MPW (and significantly more pleasing), you also have access to PowerPlant which/was by far the best native code framework for writing classic/carbon Mac OS apps.

Codewarrior Pro 7 if you primary intend to target and develop on Mac OS 9 or earlier.

If you're happy developing on Mac OS X you would go for Codewarrior Pro 9.

Codewarrior had quite neat inline assembly support also, like you could do something like

Code: [Select]
void test(int arg1, int arg2) {
   int res;

   asm {
      add res, arg1, arg2
   }

   return res;
}

etc

MPW isn't a IDE, it's a shell (and a cumbersome one as well) but it filled a purpose in particular if you had build servers and wanted to automate stuff.

As for the GNU toolchain the only port I'm aware of was the one provided with MachTen / Codebuilder, it worked but the quality of the produced code was subpar to both MWC (Metrowerks Compiler) and MrC (MPWs Compiler).
Both was available as plugins for each others though (ie metrowerks compiler for MPW and MrC for Code Warrior)


Offline Jubadub

  • Gold Member
  • *****
  • Posts: 326
  • New Member
Re: Top 5 OS 9 Developer Tools? Plus questions
« Reply #67 on: November 19, 2017, 05:16:23 AM »
Wow, all this information is pure gold. I value it so much, I can't express this feeling enough. It addressed many of my concerns that I still had, and beyond that, even.

This raised two little questions for me, though: for Mac OS X development, why Codewarrior Pro 9 over CW Pro / Dev Studio 10? Was there something in the latest version that you think was worse?

And:
The modern PPCs/POWER cpus today has true little endian support.
This made me wonder, out of sheer curiosity, but do you happen to know if the Cell processor (PPC processor found in PS3s) already added true little endian support? Though knowing how closely-tied that processor is to the PPC 970 family, I'd assume that not, but I really have to wonder.

Offline ELN

  • Gold Member
  • *****
  • Posts: 295
  • new to the forums
Re: Top 5 OS 9 Developer Tools? Plus questions
« Reply #68 on: November 19, 2017, 07:03:50 AM »
The MacOS NanoKernel has some undocumented system calls to set the MSR[LE] bit. This was to accelerate VirtualPC's x86 emulation.

Offline Naiw

  • Veteran Member
  • ****
  • Posts: 126
  • new to the forums
Re: Top 5 OS 9 Developer Tools? Plus questions
« Reply #69 on: November 19, 2017, 12:15:29 PM »
Wow, all this information is pure gold. I value it so much, I can't express this feeling enough. It addressed many of my concerns that I still had, and beyond that, even.

This raised two little questions for me, though: for Mac OS X development, why Codewarrior Pro 9 over CW Pro / Dev Studio 10? Was there something in the latest version that you think was worse?

And:
The modern PPCs/POWER cpus today has true little endian support.
This made me wonder, out of sheer curiosity, but do you happen to know if the Cell processor (PPC processor found in PS3s) already added true little endian support? Though knowing how closely-tied that processor is to the PPC 970 family, I'd assume that not, but I really have to wonder.

I never updated to CW Pro 10 which is the main reason (but there are others) why I can’t recommend it; both technically and practically it’s probably fine- as I recall it; it was a very minor update so it should probably rather been called 9.5 and be a free update; But for whatever reason they gave it a new version number. I believe you’ll have a difficult time to find a license for pro 10 though.

As for PS3 Cell, I can not remember (although I ought to have the data somewhere) but I don’t think any of IBMs POWER4 derived cores (That is PPC970, PS3 Cell and Xbox Xenon) had MSR[LE] support.
However I also don’t think it matters a great deal, sure the lack of MSR[LE] meant existing VPC wouldn’t work (it wouldn’t of other reasons too) but as far as I know the only software ever to use it on MacOS was VPC and the fact it was (unlike later PPCs- freescales eBook and beyond and IBM POWER8+) a system setting rather than a per page setting really sucked.

Offline Naiw

  • Veteran Member
  • ****
  • Posts: 126
  • new to the forums
Re: Top 5 OS 9 Developer Tools? Plus questions
« Reply #70 on: November 19, 2017, 12:23:33 PM »
The MacOS NanoKernel has some undocumented system calls to set the MSR[LE] bit. This was to accelerate VirtualPC's x86 emulation.

There probably was (but it certainly would be a NOP or throw err on the G5) if nothing else there was an undocumented 68k emulator trap (via a mixed mode call) that put your function as the PPC exception handler during the call (ie. your code run in native PPC supervisor mode until you rfi) I guess you already know of it since Linux boot loaders such as BootX etc been exploiting it since forever.

Offline Naiw

  • Veteran Member
  • ****
  • Posts: 126
  • new to the forums
Re: Top 5 OS 9 Developer Tools? Plus questions
« Reply #71 on: November 19, 2017, 12:42:43 PM »

Offline Protools5LEGuy

  • Global Moderator
  • Platinum Member
  • *****
  • Posts: 2749
Re: Developing software tools needed to PROGRAM plugs
« Reply #72 on: November 19, 2017, 01:10:45 PM »
I have merged this "Top 5 Developer tools to this topic. PM if you think other should be merged to this
Looking for MacOS 9.2.4

macStuff

  • Guest
re: OMS SDK v2.2 to develop Drivers
« Reply #73 on: November 19, 2017, 05:36:47 PM »
heres a link to the post that contained the Opcode OMS SDK mentioned above http://macos9lives.com/smforum/index.php?topic=2130.0

isnt this for the purposes of creating OMS driver for hardware to work with OMS??
is this what is needed to create custom Driver for USB Midi Controllers?

folder is titled as being from January 1998
but the files are from 2001
this package seems to include an example Application aswell as an example Driver!
the sample driver appears to be for a SampleCell card
definately intended to be used with codeWarrior IDE
« Last Edit: November 19, 2017, 06:46:56 PM by macStuff »

Offline Jubadub

  • Gold Member
  • *****
  • Posts: 326
  • New Member
Re: Top 5 OS 9 Developer Tools? Plus questions
« Reply #74 on: November 19, 2017, 06:05:09 PM »
The MacOS NanoKernel has some undocumented system calls to set the MSR[LE] bit. This was to accelerate VirtualPC's x86 emulation.
Wow, is this true for all PPC versions of the MacOS kernel? (Or at least from 9~10.5.)

Apparently other mechanisms been discovered as well.

https://groups.google.com/forum/m/#!topic/comp.sys.mac.programmer.help/3NK-jAdmOqg
That link is amazing, I had never thought too hard until now about user mode x supervisor mode in PowerPC MacOS. This was quite a fascinating read... Really looking forward to fiddling with this...


Also, since we are discussing all sorts of development tools and knowledge, I guess one more thing to take a look at is the availability of Ruby programming language compilers, and its most popular framework, Ruby on Rails. From quick glances online, it seems both are available for at least PPC Mac OS X 10.5 Leopard.

I also took notice that, according to the Wikipedia entry at https://en.wikipedia.org/wiki/Xcode and Apple's official documentation, the following Xcode versions exist for OS X:
- Mac OS X 10.3 Panther: Xcode v1.0 ~ 1.5;
- Mac OS X 10.4 Tiger    : Xcode v2.0 ~ 2.5;
- Mac OS X 10.5 Leopard: Xcode v2.5 ~ 3.1.4 (Wikipedia made it sound like v3.1.3 and 3.1.4 could only be installed on 10.5.7+ or that 10.5.7+ could only have those two versions of Xcode, but the official Apple documentation did not seem to indicate any such distinction amongst all the Leopard versions).
They can be obtained for free with any Apple developer account, to which, AFAIK, anyone can subscribe to. The download pages to get Xcode directly from Apple for free is here: https://developer.apple.com/download/more/
For convenience, I used a publicly-shared, pre-existing account for logging in there, found at http://bugmenot.com/view/developer.apple.com (P.S.: After pasting the password, some trailing spaces have to be removed first). Also, I think that login link should be fine, but if somehow the Mac OS 9 Lives staff finds it "risky" or anything, feel free to remove it from my post: we all can still use our own Apple IDs (or create one) to access their downloads page, anyway.

Offline Naiw

  • Veteran Member
  • ****
  • Posts: 126
  • new to the forums
Re: Developing software tools needed to PROGRAM plugs
« Reply #75 on: November 19, 2017, 07:25:15 PM »
The nanokernel only exists on powerpc Mac OS 7-9, it's purpose was to abstract away the hardware (read powerpc) from the rest of the system.
However later on Daystar etc extended it to add support for threading native threads (required to utilitise multiprocessor machines such as Daystar Gensis MP that had two or four 604 cpus)
Apple eventually added similar support with the updated nanokernel in 8.6+ (along with additional features) that was not greatly utilitised or documented.
Mac OS itself does not depend upon or relay on the nanokernel at all, I just want to empathize on the fact the nanokernel was not a part of Mac OS but a underlying requirement of running Mac OS on on 68k systems- Mac OS always was and always been a 68k system and to retain compatibility with all software that could not change at any point. So Mac OS as an OS didn't really have much of a kernel.

Mac OS X however has a kernel, Originally with Rhapsody and Mac OS X Server 1.0-1.2 it used Mach 2.5 and starting with Mac OS X 10.0 and later it's been Xnu (Which at core is Mach 3.0 and the BSD server running in the same address space; Which also means Xnu is not a microkernel as Mach 3.0 but still uses lots of microkernel mechanics; message passing that is, so it's generally refered to as a hybridkernel.)

All these script languages such as Ruby, Python Lua etc was not popular and in some cases not existing by the time classic Mac OS was prime time. Perl was probably the biggest script language at the time and there was a mac version of it.
But in general I think it's not worth bothering with script languages on OS 9 or earlier, even if you find an old build of some language its most likely extremely dated and if you intend to port something yourself, be prepared to encounter about every technical problem you can imagine. Mac OS 9 was by modern standards really messed up at the core.

Stick with the established languages at the time if you intend to get something done.

If you really really consider command line stuff or similar consider looking at http://www.macrelix.org/ or https://en.wikipedia.org/wiki/MachTen (The latter is commercial and dated though- and more of running another system on top of mac os, for good and bad)

Offline nanopico

  • Moderator
  • Platinum Member
  • *****
  • Posts: 767
Re: Top 5 OS 9 Developer Tools? Plus questions
« Reply #76 on: November 20, 2017, 06:11:30 AM »
MPW isn't a IDE, it's a shell (and a cumbersome one as well) but it filled a purpose in particular if you had build servers and wanted to automate stuff.

What qualifies as an IDE then? MPW is definitely an IDE.
If it ain't broke, don't fix it, or break it so you can fix it!

Offline Jubadub

  • Gold Member
  • *****
  • Posts: 326
  • New Member
Re: Developing software tools needed to PROGRAM plugs
« Reply #77 on: November 20, 2017, 07:22:52 AM »
All these script languages such as Ruby, Python Lua etc was not popular and in some cases not existing by the time classic Mac OS was prime time. Perl was probably the biggest script language at the time and there was a mac version of it.
But in general I think it's not worth bothering with script languages on OS 9 or earlier, even if you find an old build of some language its most likely extremely dated and if you intend to port something yourself, be prepared to encounter about every technical problem you can imagine. Mac OS 9 was by modern standards really messed up at the core.

Stick with the established languages at the time if you intend to get something done.
Yes, you're right, but there is a reason I brought these up, although I think I wasn't clear about it until now: I wanted to highlight all sorts of development paths, because I know some people out there other than myself will also be seeing this, and some of them are more likely to get their feet wet with general PowerPC (or even 68k) Mac development through one specific language or toolchain than another, provided they have a motive like I do. Some friends I have, for instance, are familiar with these, so the more I get uncovered, the better. I also am not strictly interested in only pre-OS-X development, although it is true Mac OS 9.2.2 is my biggest interest, so I find scripting languages that got popular only past the time of OS 9's prime are still important. I don't intend to port any of them myself, either, though. (Except maybe IBM's Node.js, but that is not a priority right now.)

Indeed, as for myself, for the sake of "getting things done", I'm actually already set on C, C++ and PPC assembly, using probably CodeWarrior Pro 9, Xcode 3.1.4, MPW and/or Fantasm/LIDE (Fantasm being an interesting program I saw you mentioning on another thread. I'll make a more detailed post on that later when I can), whichever I find suits best my needs. But I think I haven't looked at every nook and cranny yet, so I'm still after as much info on tools & everything else as possible. For my and others' sakes.


Speaking of which, those paragraphs on the kernel and those two link recommendations are being all of great help. I heard much about some of these kernel details from the good folk of this forum in other threads, and from random places online, but much of it I was completely unaware about. Thanks!

Offline Naiw

  • Veteran Member
  • ****
  • Posts: 126
  • new to the forums
Re: Top 5 OS 9 Developer Tools? Plus questions
« Reply #78 on: November 20, 2017, 07:11:56 PM »
MPW isn't a IDE, it's a shell (and a cumbersome one as well) but it filled a purpose in particular if you had build servers and wanted to automate stuff.

What qualifies as an IDE then? MPW is definitely an IDE.

Ok correction, MPW is not an IDE by my definition as an IDE typically is made to accelerate the development process by providing by the very least automatic project management and build automation.

But yeah okay, if MPW qualify as an IDE, then I guess Terminal.app, command.com etc are IDEs too. Or rather what would define something not to be an IDE then?

macStuff

  • Guest
Re: Developing software tools needed to PROGRAM plugs
« Reply #79 on: November 20, 2017, 09:35:04 PM »
https://en.wikipedia.org/wiki/CodeWarrior
read the definition of codeWarrior

lets all just 'nip this one in the bud' as they say
and just move on to the more important stuff ?? ya?

;)

https://en.wikipedia.org/wiki/Macintosh_Programmer%27s_Workshop
the entry for MPW says that its a software development environment..
SDE vs IDE ..
close enough??

Quote
Macintosh Programmer's Workshop or MPW, is a software development environment for the Classic Mac OS operating system, written by Apple Computer. For Macintosh developers, it was one of the primary tools for building applications for System 7.x and Mac OS 8.x and 9.x. Initially MPW was available for purchase as part of Apple's professional developers program, but Apple made it a free download after it was superseded by CodeWarrior. On Mac OS X it was replaced by the Project Builder IDE, which eventually became Xcode.

MPW > ProjectBuilder > Xcode!!!
interesting to be told the history..

https://www.macintoshrepository.org/1360-macintosh-programmer-s-workshop-mpw-3-0-to-3-5
« Last Edit: November 20, 2017, 09:47:39 PM by macStuff »