Jump to content

Photo

ADAM Programming question


4 replies to this topic

#1 pearsoe OFFLINE  

pearsoe

    Combat Commando

  • 4 posts

Posted Tue Nov 14, 2017 3:44 PM

I have this question that has been bugging me.  Is there a ROM routine that prints the ADAM logo on the screen when you start an ADAM program or is it drawn on the screen by a routine in the boot block of each ADAM program?

 

I was looking at the SmartFiler boot block disassembly here http://ww.theadamres...misc/sfboot.asm and the routine starting at $C85C seems to display the initial boot screen.  Is it using the data at $C900 to draw the ADAM logo?  Maybe a newbie question but I'd like to know.

 

Is there some kind of template that one would use to create their own boot screen?

 



#2 Dr. D. OFFLINE  

Dr. D.

    Space Invader

  • 44 posts
  • Healer of Appliances
  • Location:Cleveland, Ohio

Posted Tue Nov 14, 2017 4:02 PM

I have this question that has been bugging me.  Is there a ROM routine that prints the ADAM logo on the screen when you start an ADAM program or is it drawn on the screen by a routine in the boot block of each ADAM program?


The routine is is not fully coded in the boot block, because it would be too big. Instead, it has even more code in an overlay file, called LOGOS in the directory, but in the evil way of Coleco boot blocks, it does not use file I/O to get the overlay by name, but rather relies upon it sitting in defined blocks on the disk/tape. The overlay loads 3 1024-byte blocks to a defined address, then the loader calls an address in the overlay.  Overall, the boot code sets up the VDP and copies color and pattern information to VRAM, which makes the image appear on the screen.
 

I was looking at the SmartFiler boot block disassembly here http://www.theadamre...misc/sfboot.asm and the routine starting at $C85C seems to display the initial boot screen.  Is it using the data at $C900 to draw the ADAM logo?  Maybe a newbie question but I'd like to know.


Hey, it was me that did the disassembly 17 years ago :-)  BTW I fixed your broken URL.

In the particular example, the data at I$C9FA is the pattern data for the ADAM bitmap logo. I just gave it as hex data to save space. I do have a disassembly utility that interprets pattern info and shows the bitmap for each byte. Many Coleco programs use the same kind of boot block, with the same ADAM logo in it.  My SmartBASIC 1.x interpreter uses a modified version of this code.
 

Is there some kind of template that one would use to create their own boot screen?


The disassembly could be used to make a template. You would just have to figure out your own bitmap and colors and where to put that data into VRAM. The ASCII text at BOOT_TEXT is just to get something on the screen fast, for you to look at, while the rest of SmartFiler loads. IIRC it's about 24K, so that would take awhile from the tape drive.

Hope this helps!

*Dr. D.* (Dr. Richard F. Drushel)


Edited by Dr. D., Tue Nov 14, 2017 4:03 PM.


#3 NIAD OFFLINE  

NIAD

    Quadrunner

  • 5,804 posts
  • Location:Chicago Suburb

Posted Tue Nov 14, 2017 9:14 PM

No "ROM routine" exists that can be CALLed.

 

BITD, I either:

 

1) Take a boot screen from another Coleco program that resided on Block #00 of the data pack or disk, copy it to my program disk at the same Block #00 location and then with File Manager v3.0, edit the text that is displayed on the screen. See the N.I.A.D. Public Domain title screen below with the large ADAM blue logo... this title screen was originally from the Coleco program Electronic FlashCard Maker. The only other change I had to make was to have it load the BASICPGM machine language file (SmartBASIC 1.0) instead of the FLASHCARD machine language file (Electronic Flashcard Maker).

 

2) Design a title screen with PowerPAINT by Digital Express and then use the SmartBASIC program called BootPic Deluxe that would create a boot screen out of it. See the example below of Easy As A,B,C.

 

Attached Thumbnails

  • N.I.A.D. - SmartBASIC BNDV #01.dsk-000.png
  • Easy as A-B-C & 1-2-3 - Disk #01 (1988) (Wizard's Lair Software).dsk-000.png


#4 pearsoe OFFLINE  

pearsoe

    Combat Commando

  • Topic Starter
  • 4 posts

Posted Tue Nov 14, 2017 11:24 PM

Thanks Dr. D and NIAD for your quick responses!

 

@Dr. D - I've been enjoying reading your TWMCA articles.  Your description of the boot block and how it is used with ADAM IDE HDs answered a lot of questions for me.  The pattern data you mention, is there a document that describes how it is used/deciphered?  Would it be in the CV Programmers Manual?  http://www.colecovis...rogrammers.html

 

Regarding the LOGOS file, if the boot screen as described by NIAD for Electronic Flashcard Maker is contained solely in the Block 0 boot block, is the purpose of the LOGOS file in SmartFiler to generate the other image of the papers being filed that is shown when SmartFiler starts?

 

Also, in 2017 what would be the easiest way to extract a boot block and transfer it to a PC for disassembly/analysis?



#5 NIAD OFFLINE  

NIAD

    Quadrunner

  • 5,804 posts
  • Location:Chicago Suburb

Posted Thu Nov 16, 2017 11:23 PM

If memory serves me right, the LOGOS file on SmartFiler is indeed the second boot/title screen.

You can download the Adam Software archive that I provided links to a couple days ago in another thread. Hundreds of Adam disk images are contained in it and they are PC format files. Gotta be all kinds of Z80 Disassemblers around for the PC or you could use Virtual Adam/Adamem emulator and one of the Adam z80 Disassembler programs either in Adam's standard OS called EOS or in CP/M.




0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users