Jump to content


  • Content Count

  • Joined

  • Last visited

Contact Methods

  • Website URL

Profile Information

  • Location
    San Antonio, TX

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. I have a IIci that has been an old friend for decades. I recapped it a few years back and it has been working great, until now. Now it hangs while booting. It starts from the keyboard power key, chimes nice and loud, then the raster appears and looks good, but no happy mac face, no Welcome to Macintosh, and it never accesses the disk. It will stay like that forever. I never get any death chimes. If I try to reset PRAM with Cmd-option-P-R, it never gets around to noticing that and there is no second chime. I think it is hanging before it looks for that. The board still looks clean. I have removed all the boards and disk drives, and tried various combinations of ram. If I remove all ram, it makes its unhappy noise and the screen stays black, as it should. I am using onboard video and the raster looks good. It seems to me that memory is okay but something is going wrong while the ROM is still testing hardware, but no indication of what it is. Any advice? What is the next thing I should try?
  2. Probably, you have figured this out by now, but... The MDS linker placed the application globals 256 bytes below the a5 boundary. The MPW linker put the application globals right below the a5 boundary, without any cushion. The ROM call InitGraf expects a pointer to the 203rd byte of a 206 byte area for the QuickDraw globals. Because MDS put a 256 byte cushion below the a5 boundary before the application’s globals, MDS programs could call InitGraf with a pointer to a long word four bytes below the a5 boundary, as in your example For the MPW assembler, you must explicitly allocate some global storage for the Quickdraw globals in a data module and then pass a pointer to that module when calling InitGraf. The assembly include file QuickEqu.a includes this record definition: QDGlobals RECORD ,DECREMENT thePort DS.L 1 white DS.B 8 black DS.B 8 gray DS.B 8 ltGray DS.B 8 dkGray DS.B 8 arrow DS.B cursRec screenBits DS.B bitmapRec randSeed DS.L 1 ORG -grafSize ENDR You need to include this, then you can allocate space for your Quickdraw Globals like this: QD DS QDGlobals And, once you are using the QD globals you have defined, you can point directly to the QD data area when initializing QuickDraw, as shown below. ; thePort is a variable in QDGlobals pea QD.thePort _InitGraf There is a good example in the MPW AExamples folder, called Sample.a, which shows how to do this and a lot of other similar things that you will encounter in MPW Assembly.
  3. basalgangster

    Replacing Powerbook 180 PRAM battery

    I had to replace the PRAM battery on my Powerbook 180. It started out just failing the remember the date and time when I would remove the main battery. I knew the PRAM battery was bad, but it seemed like a hassle to replace it and I let it go. Then a few weeks ago, it got worse. It started randomly changing the date and time every time I clicked on a window or hit a key. Something had to be done. The PRAM battery on those is soldered onto the interconnect board. It's a coin type 3 V rechargeable lithium battery with solder tabs made by Panasonic (VL 2320). When I got the interconnect board out, I could see that the battery looked a little different from what I was used to. It looks like the PB-180 might have got a no-name knock-off of the regular battery. Maybe thats why it gave out earlier than the one on my PB-170, which is about a year older, and still going strong. Anyway, Panasonic still makes those batteries, and I ordered one. It's pretty easy to get the interconnect board out, but it was hard to desolder the old battery. The positive side (with the wider pin) comes out pretty easily, but the thin negative pin is tough. I ended up just cutting it off above the board, trimming the lead on the new battery, and soldering the two cut pins together. In the end it really wasn't that bad. Another benefit of replacing the battery -- charge retention on the main battery. When the PRAM battery was bad, the powerbook would discharge its main battery within a few days, even when shut down. My PB-170 can sit for weeks unused with only minimal discharge of its battery. Now, with the replaced PRAM battery, the 180 does also. I guess the main battery has been trying to recharge the dead PRAM battery when the computer wasn't in use.
  4. basalgangster

    TAM dump screen extension?

    You have TMON installed. It's a debugger. That's it's icon that is the last icon you see in your startup screen. If everything is ok, you should be able to get out of it and back to the Finder by clicking on the words ExitToShell in the second screen you show. I don't know why you are falling into TMON at startup. Usually it is activated only during a crash. Maybe something else is causing you to crash, and TMON is getting activated by that. TMON is in your Extensions folder, probably in a folder called TMON folder. If you remove it from the Extensions, TMON won't load. However, you might consider keeping it there. It can be very useful.
  5. basalgangster

    SE + MPW?

    I routinely use MPW version 3.2.3 under system 6.0.8 with no issues on a Mac Plus, a IIci and in Mini vMac.
  6. basalgangster

    68k ASM - Little Question

    Your filter function will be called by the dialog manager. You don't really have to declare it to be anything in particular, you just have to make the function you want and pass its address into ModalDialog. The Pascal declaration you have written tells us about how the stack will be set up when the filter proc executes. The stack frame (pointed to by A6) will consist of the previous A6 (at (A6)), then the return address (at 4(A6)) then itemHit (8(A6)) then theEvent (12(A6)), followed by theDialog (16(A6)) and room for a boolean result returned (20(A6)). When your filter function executes, it can find its parameters using indirection from A6 as above. You can set it up like this: ; function MyFilter (TheDialog:DialogPtr;var MyEvent:EventRecord;var ; ItemHit;integer):boolean; ; return value is only 2 bytes, the rest are each 4 bytes long myFilter: ; now some equates to find my parameters itemHit SET 8 myEvent SET 12 theDialog SET 16 result SET 20 allparams SET 12 ; this is the total number of bytes in the parameters ; here you will make some equates for your local variables myLocalLong1 SET -4 myLocalLong2 SET -8 myLocalRect SET -16 myLocalShort SET -10 ; now you can set up your stack frame to include your local variables LINK A6,#myLocalShort ; here you put your code to do whatever you want your filter function to do ; when you need them, your parameters and locals can be accessed relative to ; A6. For example, If I wat to know what dialog item was hit, I could call GetDItem MOVE.L theDialog(A6),-(SP) MOVE.W #buttonitem,-(SP) PEA myLocalLong1(A6) PEA myLocalLong2(A6) PEA myLocalRect(A6) _GetDItem ; at this point, the dialog item type is in myLocalLong1, a handle to the ; hit item is in myLocalLong2, and the items box rectangle is in myLocalRect ; now you do whatever you need to do. ; if your filter function actually handles the event, return some non-zero number MOVE.W #$0100,result(A6) ; or if you didn't handle it you return zero MOVE.W #0,result(A6) ; unlink and return UNLK A6 MOVE.L (SP)+,A0 ; this gets the return address from the stack into A0 ADDA.W #allparams,SP ;this unloads the parameters put there by the caller JMP (A0) ; all done
  7. basalgangster

    Moving files from OSX to Mac Plus 6.0.8 via FTP

    The original solution to this was BinHex. It hex-encodes a file so it is ASCII and can be transmitted over practically any protocol. I think you could use an old version of Stuffit in your emulator to encode your .sit file as binhex. You get a file with the .hqx extension as a result that can be decoded in stuffit. There was originally a program called BinHex that just did the .hqx encoding. The first Mac users encountered this problem when downloading programs from CompuServe. They had to download BinHex from CompuServe, but they couldn't decode it without having BinHex. The solution, as I remember, was a MacPascal program which was downloaded as text, but when executed, created a working binary version of BinHex.
  8. basalgangster

    Help Needed

    Very cool that you are using a Quadra to control a CNC machine. Would be great to see a picture.
  9. basalgangster

    Installing Classic OS 9 apps under OSX 10.4

    I suppose you have already tried rebuilding the classic desktop. In the preference panel for the classic environment, start classic then go to advanced and click rebuild desktop.
  10. basalgangster

    System 6 Essentials

    There were some great programs that never made the system 7 transition. Among word processors, fullwrite professional stands out. Trapeze was a great spreadsheet. There has never been another like it. MacSpin was an amazing visualization program that never was matched. Superpaint for graphics. Great desk accessories: the canvas v2 desk accessory, disktop, expressionist (equation editor) vantage text editor, number crunch.
  11. The power supply on my faithful Quadra 950 has failed. Went bad while I left it unused for a couple of months. It no longer has any voltage on the 5V PFW or TRKL lines. Can't properly test the rest of the power supply, because those are used to start it up. I have opened it up, but all I've done so far is to check the fuse. It is intact. Yes, I'm sure it's plugged in properly. Does anybody have a circuit diagram for this power supply or any experience fixing them?
  12. basalgangster

    Resource Fork - Manual Parsing

    Here is a little summary of information on page 128-131 of Volume 1 IM. ------- resource header ------ 4 bytes Offset to Resource Data 4 bytes Offset to Resource Map 4 bytes Length of Resource Data 4 bytes Length of Resource Map 112 bytes - reserved 128 bytes - available for application-specific data --------- start of resource data ------ ----- for each resource ----------- 4 bytes Length of Data variable - actual data ---------- start of Resource Map ------ 16 bytes copy of resource header 4 bytes Handle to next resource map 2 bytes File reference number 2 bytes Resource file attributes 2 bytes Offset to Type list (from beginning of resource map in bytes) 2 bytes Offset to Name List (as above) ------------- Type List -------- 2 bytes Number of types -1 ----- for each type there will be one of these ------ 4 bytes Resource Type 2 bytes Number of this type -1 2 bytes Offset to Reference List for Type Resource attributes: bit 7 (reserved) bit 6 resSysHeap bit5 resPurgeable bit 4 resLocked bit 3 resProtected bit 2 resPreload bit 1 resChanged bit 0 (reserved)
  13. basalgangster

    Umax C500 in a science museum exhibit

    You should make sure you have a copy of the full developer version of hypercard version 2.x (preferably 2.4). Apple bundled a hypercard reader with the operating system, but to make new stacks you had to buy the developer version. There were a lot of books written, but this was mostly before the era of pdfs. But to get started, the regular Apple hypercard manual is pretty helpful. Do a google search for 0340617Ahypercardi.pdf. This will get you the manual and a lot of other useful stuff.
  14. basalgangster

    Umax C500 in a science museum exhibit

    looks very cool. Have you thought about using HyperCard? It was used for this kind of thing in it's tIme, and late versions had good QuickTime support.
  15. basalgangster

    MacTCP Documentation

    MacTCP used the standard device driver calls (Open, Close, Control, etc) to control a driver. There was an SDK called the MacTCP Developer Kit, which I think might still be available from Apple's ftp server (try http://mirrors.vanadac.com/ftp.apple.com/developer/Development_Kits/). I suggest you start with the article by Steve Falkenburg in issue 6 of Develop magazine. If you don't have the magazine or developer essentials disk 6, you can see a text-only version at: http://www.mactech.com/articles/develop/issue_06/p46-69_Falkenburg_text_.html