News:

Marketplace board now live! Post those eBay finds!

Main Menu

Recent posts

#21
Software / Re: How to get Tiny.m by Simso...
Last post by ptek - Sep 25, 2025, 04:10 AM
Quote from: jeffburg on Sep 25, 2025, 02:42 AMThis is interesting. When I removed the NIB's from my App, OpenStep 4.2 was not happy about it. Particularly the Menus in OS4.2 are not retained by NSApplication, instead they are retained by their NIB which seems crazy to me but that's how it is. So the app would always crash after launching because the menus would be released from memory and then NSApplication would try to access them so it could render them.

Where are you running into problems? Does it not even compile? Or does it compile but then crash at launch?

  It doesn't compile I'm using the following to compile:
cc -Wall -o Tiny Tiny.m -framework AppKit

  It brings up a error about a missing end during an implementation while compiling. Here is a stackoverflow post (https://stackoverflow.com/questions/15756624/end-missing-in-implementation-context)
@end is missing in implementation context

  I thought I would use the Cocoa version instead of the NS3.0 version as the includes and parameters had changed especially around the NSWindow() allocations. The ones in the Cocoa version seem to be correct as I had tried to use tops or the convertor to convert from NS3.0 to OS4.2 but I was having problems with it. Thanks for having a look.

EDIT: You were correct about the int main() in post 3 I don't know why it didn't get copied over.
#22
Software / Re: How to get Tiny.m by Simso...
Last post by jeffburg - Sep 25, 2025, 03:33 AM
But yeah, after looking at this code in the Nextstep 3.3 example code, I would highly recommend not learning that lol. It's close enough that you can learn all the concepts but just different enough to be entirely frustrating when migrating forward to OpenStep and then Cocoa development.
#23
Software / Re: How to get Tiny.m by Simso...
Last post by jeffburg - Sep 25, 2025, 03:32 AM
I can't open the Cocoa book because it needs to be bought, but the Nextstep programming guide has a similar Tiny.m file and it has the main function declared properly. So I think there is something wrong with the example in the cocoa book.
#24
Software / Re: How to get Tiny.m by Simso...
Last post by jeffburg - Sep 25, 2025, 02:46 AM
If it's not even compiling, you may need to specify the exact path of AppKit in OpenStep because it's buried deep inside the developer folder. I can't remember the exact location. But that would be my next troubleshooting step.

<---------- Main function declaration should go here no?
{
    // create the autorelease pool
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    // create the application object
    NSApp = [NSApplication sharedApplication];
    // set up the window and drawing mechanism
    setup(  );
    // run the main event loop
    [NSApp run];
    // we get here when the window is closed
    [NSApp release];      // release the app
    [pool release];       // release the pool
    return(EXIT_SUCCESS);
}
#25
Software / Re: How to get Tiny.m by Simso...
Last post by jeffburg - Sep 25, 2025, 02:42 AM
This is interesting. When I removed the NIB's from my App, OpenStep 4.2 was not happy about it. Particularly the Menus in OS4.2 are not retained by NSApplication, instead they are retained by their NIB which seems crazy to me but that's how it is. So the app would always crash after launching because the menus would be released from memory and then NSApplication would try to access them so it could render them.

Where are you running into problems? Does it not even compile? Or does it compile but then crash at launch?
#26
Software / How to get Tiny.m by Simson Ga...
Last post by ptek - Sep 25, 2025, 02:19 AM
 
Simson L. Garfinkel wrote an excellent book for programming NS3 which he provided at https://simson.net/ref/1993/NeXTSTEP3.0.pdf. He then updated the book for MacOSX (Building Cocoa Applications: A Step by Step Guide) which is still available for sale and demonstrated on how to code a basic application without using Interface Builder. Does any one know how to get this code to work on OS4.2? I've tried replacing Cocoa.h with AppKit/AppKit.h and also replacing -framework Cocoa with -framework Appkit but have had no luck. (I do not have a Rhapsody DR2 set up to try compiling in there as well.

Non modified source code provided in Building Cocoa Applications: A Step by Step Guide
/* Tiny.m
 * A tiny Cocoa application that creates a window and then displays graphics in it.
 * IB is not used to create this application.
 *
 * Compile with:
 * cc -Wall -o Tiny Tiny.m -framework Cocoa
 *
 */
 
#import <Cocoa/Cocoa.h>         // include the Cocoa Frameworks
/************************************************************
 ** A DemoView instance object of this class draws the image.
@interface DemoView : NSView    // interface of DemoView class
{                               // (subclass of NSView class)
}
- (void)drawRect:(NSRect)rect;  // instance method interface
@end
@implementation DemoView        // implementation of DemoView class
#define X(t) (sin(t)+1) * width * 0.5     // macro for X(t)
#define Y(t) (cos(t)+1) * height * 0.5    // macro for Y(t)
- (void)drawRect:(NSRect)rect   // instance method implementation
{
    double f,g;
    double const pi = 2 * acos(0.0);
    int n = 12;                 // number of sides of the polygon
    // get the size of the application's window and view objects
    float width  = [self bounds].size.width;
    float height = [self bounds].size.height;
    [[NSColor whiteColor] set];   // set the drawing color to white
    NSRectFill([self bounds]);    // fill the view with white
    // the following statements trace two polygons with n sides
    // and connect all of the vertices with lines
    [[NSColor blackColor] set];   // set the drawing color to black
    for (f=0; f<2*pi; f+=2*pi/n) {        // draw the fancy pattern
        for (g=0; g<2*pi; g+=2*pi/n) {
            NSPoint p1 = NSMakePoint(X(f),Y(f));
            NSPoint p2 = NSMakePoint(X(g),Y(g));
            [NSBezierPath strokeLineFromPoint:p1 toPoint:p2];
        }
    }
} // end of drawRect: override method
/* windowWillClose: is a delegate method that gets invoked when
 * the on-screen window is about to close (user clicked close box).
 * In this case, we force the entire application to terminate.
 */
-(void)windowWillClose:(NSNotification *)notification
{
    [NSApp terminate:self];
}
@end  // end of DemoView implementation
/*
 * setup(  ) performs the functions that would normally be performed by
 * loading a nib file.
 */
void setup(  ) 
{
    NSWindow *myWindow;      // typed pointer to NSWindow object
    NSView   *myView;        // typed pointer to NSView object
    NSRect    graphicsRect;  // contains an origin, width, height
    // initialize the rectangle variable
    graphicsRect = NSMakeRect(100.0, 350.0, 400.0, 400.0);
    myWindow = [ [NSWindow alloc]              // create the window
               initWithContentRect: graphicsRect
                         styleMask:NSTitledWindowMask
                                  |NSClosableWindowMask
                                  |NSMiniaturizableWindowMask
                           backing:NSBackingStoreBuffered
                             defer:NO ];
    [myWindow setTitle:@"Tiny Application Window"];
    // create amd initialize the DemoView instance
    myView = [[[DemoView alloc] initWithFrame:graphicsRect] autorelease];
    [myWindow setContentView:myView ];    // set window's view
    [myWindow setDelegate:myView ];       // set window's delegate
    [myWindow makeKeyAndOrderFront: nil]; // display window
}
int main()
{
    // create the autorelease pool
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    // create the application object
    NSApp = [NSApplication sharedApplication];
    // set up the window and drawing mechanism
    setup(  );
    // run the main event loop
    [NSApp run];
    // we get here when the window is closed
    [NSApp release];      // release the app
    [pool release];       // release the pool
    return(EXIT_SUCCESS);
}

EDIT: I don't know why int main() was missing from the code, added it back in.
#27
General Discussion / Re: Logged in with Windows XP ...
Last post by ptek - Sep 25, 2025, 02:00 AM
Yes @Rhetorica you can rename the thread to something better where people with older browsers can post their results.

I've logged in with New Moon browser V28.10.7a1 (32-bit) (2025-06-27) running on Windows XP Pro (SP3) 32-bit and I can successfully upload files with this browser.
#28
Virtualization / Re: Emulators with BlueSCSI-co...
Last post by jeffburg - Sep 25, 2025, 01:33 AM
To get at your original question. Basically all of these platforms you mentioned just have raw block storage in a file format. So they all have various tools for use, but basically yes. You can image from these virtual environments to the real environment as long as the virtual environment emulates the boot process and hardware close enough (which they probably do or else the OS would not run).

So the exception would probably be if you install MacOS for Intel in one of these and try to image it to an Intel Mac, it would probably not work because of all the hacks that need to be done to make Mac OS boot on generic X86 hardware.
#29
Hardware / NeXTDimension VRAM error
Last post by KennyPowers - Sep 24, 2025, 06:55 PM
I have a NeXTDimension board that's showing the following VRAM error:

VRAM test 2 failed at 0x2e800000; bad bits 0x00000001Screenshot_20250923-161927.png

The board's onboard LED also flashes 3 times when powered on, which I believe means a VRAM error.

Does anyone know how to translate that error to a specific VRAM chip?  The ND board has 32 on-edge KM424C257Z-8 VRAM chips, totaling 4MB.
#30
Virtualization / Re: Emulators with BlueSCSI-co...
Last post by kokomuck - Sep 24, 2025, 02:48 PM
Hiay,

Thanks for the clarification re. the raw HDD images - very much appreciated.

Also, I want to thank you for clarifying the BlueSCSI/ZuluSCSI relationship. I was not aware of those issues.

So far, I bought BlueSCSI and ZuluSCSI devices to serve my various needs. Practically, there is a BlueSCSI reseller here in Belgium, that's why I chose BlueSCSI. Another reason was the availability of different adapters and cases, which werew not available for ZuluSCSI.
For ZuluSCSI, there is one retailer in Germany, who sells a subset of the products offered by ZuluSCSI/Rabbit Hole Computing.

There is one retailer for ZuluSCSI in the UK, but I have to check shipping and customs as the UK left the EU.

Another retailer in the EU with the same products as in the USA would be fantastic!

Anyhow, I am completely with you in that issue, and I will not buy any further BlueSCSI devices, but will buy ZuluSCSI instead.

Thanks again for explaining the situation!
And please keep up the development of future products, I am looking forward to buying the ZuluSCSI Wide, which I read about in the other NeXT forum.

All the best,
Kokomuck