Sonic and Sega Retro Message Board: More Sega Channel prototypes dumped. - Sonic and Sega Retro Message Board

Jump to content

Hey there, Guest!  (Log In · Register) Help
  • 18 Pages +
  • 1
  • 2
  • 3
  • 4
  • Last ►
    Locked
    Locked Forum

More Sega Channel prototypes dumped. Even earlier ones.

#16 User is offline Sik 

Posted 21 July 2011 - 07:54 PM

  • Sik is pronounced as "seek", not as "sick".
  • Posts: 6719
  • Joined: 17-March 06
  • Gender:Male
  • Project:being an asshole =P
  • Wiki edits:11
I meant "P" in the menus -_-' It looks like a joystick but I may be wrong.

#17 User is offline TomoAlien 

Posted 22 July 2011 - 03:52 AM

  • Posts: 48
  • Joined: 25-August 10
  • Gender:Male
  • Location:Poland
  • Wiki edits:2

View PostGenesisFan64, on 21 July 2011 - 02:13 PM, said:

View PostTomoAlien, on 21 July 2011 - 10:11 AM, said:

There's something on a related note:
http://www.mediafire...a4bqif4k44hl8tv

This is a savestate from the original Sega Channel rom captured using Gens/GS with the palette lock activated, and opening it up in Gsavestate and changing the pallete (It's plain black, so you must change it or else you'll see nothing) leads to well, this:

-pic-

The Sega-Pat you see on the bottom is actually two scroll layers for each frame. Also, the palette I used here is just copypasted from Sonic 1 Title Screen, and is only used here to show you that correct graphics exist in the rom.
This is proof that the intro for Sega Channel is not absent. Maybe if I'll look around the rom with HivePal I might find the correct palette.

No one fixed the final Sega Channel ROM? because I did (just the intro sequence, of course)

Posted Image Posted Image
Posted Image

Download

It doesn't work in Kega, use Regen or Gens


Odd. The intros are slightly different in Regen and Gens. In Regen, the Sega-Pat jumps onto the SEGA from top of the screen, but in Gens he shrinks into the screen, and the jingle gets cut off mid-way by the error.

#18 User is offline Rika Chou 

Posted 22 July 2011 - 05:01 AM

  • Adopt
  • Posts: 5186
  • Joined: 11-January 03
  • Gender:Not Telling
  • Location:CA US
  • Wiki edits:4
It's been a while, but I think there were a few different variations of the intro that played at random when you turned it on.

#19 User is offline Kiddo Cabbusses 

Posted 22 July 2011 - 06:37 AM

  • Posts: 1662
  • Joined: 26-February 08
  • Gender:Male
  • Location:Doylestown, PA
  • Wiki edits:100


two of the bootups for reference (Taken from the ol' "Sega Channel Memories" VHS recordings)

#20 User is offline TomoAlien 

Posted 22 July 2011 - 01:12 PM

  • Posts: 48
  • Joined: 25-August 10
  • Gender:Male
  • Location:Poland
  • Wiki edits:2

View PostKiddo Cabbusses, on 22 July 2011 - 06:37 AM, said:



two of the bootups for reference (Taken from the ol' "Sega Channel Memories" VHS recordings)


Actually, the first one in the video doesn't appear at all. The second one appears in Gens, and the Regen one isn't here at all... odd.
Also for some reason I can't get either emulator to display different animations than the ones they always show. Trying to use savestates between the emulators results in crashes. Weird weird and weird.

Also ValleyBell, could you check the final Sega Channel rom for music with that magic thingy you call M1?
This post has been edited by TomoAlien: 22 July 2011 - 01:16 PM

#21 User is offline Kiddo Cabbusses 

Posted 22 July 2011 - 01:25 PM

  • Posts: 1662
  • Joined: 26-February 08
  • Gender:Male
  • Location:Doylestown, PA
  • Wiki edits:100

View PostTomoAlien, on 22 July 2011 - 01:12 PM, said:

ngs)
Actually, the first one in the video doesn't appear at all. The second one appears in Gens, and the Regen one isn't here at all... odd.
Also for some reason I can't get either emulator to display different animations than the ones they always show. Trying to use savestates between the emulators results in crashes. Weird weird and weird.

Also ValleyBell, could you check the final Sega Channel rom for music with that magic thingy you call M1?


For reference, are we working with -both- US BIOs ROMs?

#22 User is offline DeanSatan 

Posted 22 July 2011 - 02:02 PM

  • Posts: 233
  • Joined: 07-January 09
  • Gender:Male
  • Location:SF CA
  • Project:getting paid
  • Wiki edits:1
*nostalgic sigh*

#23 User is offline Kiddo Cabbusses 

Posted 22 July 2011 - 02:21 PM

  • Posts: 1662
  • Joined: 26-February 08
  • Gender:Male
  • Location:Doylestown, PA
  • Wiki edits:100

View PostDeanSatan, on 22 July 2011 - 02:02 PM, said:

*nostalgic sigh*


Has this brought up anything new you could discuss with us?
Feels great to see you comment on the thread, BTW. :)

On that note, since I already mentioned this elsewhere, I guess I'll type out the one experience with the Sega Channel I had as a child.

I believe it was the 1995 (or 1996, but the former's more likely) Doylestown Arts Festival, strangely enough. The only store remotely connected to video games there is the Cyborg One comic book shop. But there, in the middle of the street, was a white cabinet - a Sega Channel Kiosk.
I specifically remember seeing the menus in the Toejam-and-Earl style and playing "The Punisher" on the thing (with a time-reset condition similar to most Kiosks), and thinking it was the coolest thing ever, but because at the time I didn't live in Doylestown at the time (I was in Philly), I couldn't subscribe. This experience probably impacted much of how my nerddom's developed up to this point.

I've been hoping that, someday, among the ROM dumps for Sega Channel circulating recently, will come the data that was in that Kiosk, complete with the ability to play various game demos.

(Totally forgot if I brought this up before here.)

#24 User is offline Black Squirrel 

Posted 22 July 2011 - 02:39 PM

  • wikiman
  • Posts: 3779
  • Joined: 27-December 03
  • Gender:Male
  • Location:Northumberland, England
  • Project:thinking of a better member title
  • Wiki edits:20,569
Is there a mirror of the Demo #4 ROM - LocalH's link from 2009 which was plastered all over the net at the time has since expired.

#25 User is offline Kiddo Cabbusses 

Posted 22 July 2011 - 02:48 PM

  • Posts: 1662
  • Joined: 26-February 08
  • Gender:Male
  • Location:Doylestown, PA
  • Wiki edits:100
Teh ROM

I do believe the ROM is also intergrated into the No-Intro sets as "Sega Channel Demo (USA) (Program).md"
This post has been edited by Kiddo Cabbusses: 22 July 2011 - 02:49 PM

#26 User is offline ICEknight 

Posted 22 July 2011 - 03:43 PM

  • Posts: 10452
  • Joined: 11-January 03
  • Gender:Male
  • Location:Spain
  • Wiki edits:18

View PostKiddo Cabbusses, on 22 July 2011 - 02:48 PM, said:

I do believe the ROM is also intergrated into the No-Intro sets as "Sega Channel Demo (USA) (Program).md"

Jesus, that's on GoodGen level. Somebody should make an accurate ROM database for a change.
This post has been edited by ICEknight: 22 July 2011 - 03:44 PM

#27 User is offline Kiddo Cabbusses 

Posted 22 July 2011 - 04:06 PM

  • Posts: 1662
  • Joined: 26-February 08
  • Gender:Male
  • Location:Doylestown, PA
  • Wiki edits:100

View PostICEknight, on 22 July 2011 - 03:43 PM, said:

View PostKiddo Cabbusses, on 22 July 2011 - 02:48 PM, said:

I do believe the ROM is also intergrated into the No-Intro sets as "Sega Channel Demo (USA) (Program).md"

Jesus, that's on GoodGen level. Somebody should make an accurate ROM database for a change.


No-Intro normally has higher standards than that, honestly. I think part of the reason for the sloppy name is related to their internal confusion over whether they want to handle "network" content like Sega Channel and Satellaview.

(It also probably doesn't help that there wasn't a different demo up to this point - now... there are.)
This post has been edited by Kiddo Cabbusses: 22 July 2011 - 04:08 PM

#28 User is offline Andlabs 

Posted 22 July 2011 - 11:07 PM

  • 「いっきまーす」
  • Posts: 2175
  • Joined: 11-July 08
  • Gender:Male
  • Project:Writing my own MD/Genesis sound driver :D
  • Wiki edits:7,061
What should it be named? (I have an ever-growing list of naming issues to bring up...)
This post has been edited by Andlabs: 22 July 2011 - 11:08 PM

#29 User is offline evilhamwizard 

Posted 22 July 2011 - 11:20 PM

  • Posts: 1262
  • Joined: 16-June 04
  • Gender:Male
  • Wiki edits:109
There's a lot of left over DOS, C, and assembler trash inside both of the Sega Channel roms:

********************************************************************************
*              Project: Generations Lost                                       *
*               Module: vectors.s                                              *
*        Creation Date: July 1993                                              *
*               Author: R. Frericks Jr.                                        *
*   Development System: Sierra Systems 68000 Macro Assembler 3.0               *
*                                                                              *
*   Copyright (c)1993 Tengen Inc., Pacific SoftScape Inc.                      *
********************************************************************************
                nolist
                include genesis.I
                list

INITSTACK       equ     $ff8000                 ; Inital system stack pointer

*
* First $100 bytes of the 68000 ROM space.
*
                dc.l    INITSTACK               ; Reset: Initial stack pointer
                dc.l    ICD_BLK4                ; Reset: Initial program counter
                dc.l    _BusError               ; Bus Error exception
                dc.l    _AddressError           ; Addr Error execption
                dc.l    _StandardError          ; Illegal Instruction execption
                dc.l    _StandardError          ; Zero Divide execption
                dcb.l   25-6+1,_StandardError   ; Autovectors 6 through 25
                dc.l    _ExternalInt            ; Level 2 Interrupt
                dc.l    _StandardError          ; Level 3 Interrupt
                dc.l    _HorizontalInt          ; Level 4 Interrupt
                dc.l    _StandardError          ; Level 5 Interrupt
                dc.l    _VerticalInt            ; Level 6 Interrupt
                dc.l    _StandardError          ; Level 7 Interrupt
                dc.l    _NoVRAMerror            ; Trap 0
                dc.l    _NoSATerror             ; Trap 1
                dc.l    _NoObjectsError         ; Trap 2
                dcb.l   63-35+1,_StandardError  ; Autovectors 35 through 63


.opt	proc=68000
	.file	"..\c\header.c"
	.def	BYTE\	.scl	13\	.type	0xc\	.endef
	.def	WORD\	.scl	13\	.type	0xd\	.endef
	.def	DWORD\	.scl	13\	.type	0xf\	.endef
	.def	tagGENESIS_HEADER\	.scl	10\	.type	0x8\	.size	256\	.endef
	.def	System\	.val	0\	.scl	8\	.type	0x32\	.line	23\	.size	16\	.dim	16\	.endef
	.def	ReleaseYearMonth\	.val	16\	.scl	8\	.type	0x32\	.line	24\	.size	16\	.dim	16\	.endef
	.def	GameNameDomestic\	.val	32\	.scl	8\	.type	0x32\	.line	25\	.size	48\	.dim	48\	.endef
	.def	GameNameOverseas\	.val	80\	.scl	8\	.type	0x32\	.line	26\	.size	48\	.dim	48\	.endef
	.def	ProductNumVersion\	.val	128\	.scl	8\	.type	0x32\	.line	27\	.size	14\	.dim	14\	.endef
	.def	CheckSum\	.val	142\	.scl	8\	.type	0xd\	.endef
	.def	IOusage\	.val	144\	.scl	8\	.type	0x32\	.line	29\	.size	16\	.dim	16\	.endef
	.def	RomStart\	.val	160\	.scl	8\	.type	0xf\	.endef
	.def	RomEnd\	.val	164\	.scl	8\	.type	0xf\	.endef
	.def	RamStart\	.val	168\	.scl	8\	.type	0xf\	.endef
	.def	RamEnd\	.val	172\	.scl	8\	.type	0xf\	.endef
	.def	ExternalRam\	.val	176\	.scl	8\	.type	0x32\	.line	32\	.size	12\	.dim	12\	.endef
	.def	ModemData\	.val	188\	.scl	8\	.type	0x32\	.line	33\	.size	12\	.dim	12\	.endef
	.def	Memo\	.val	200\	.scl	8\	.type	0x32\	.line	34\	.size	40\	.dim	40\	.endef
	.def	Country\	.val	240\	.scl	8\	.type	0x32\	.line	35\	.size	16\	.dim	16\	.endef
	.def	.eos\	.val	256\	.scl	102\	.size	256\	.tag	tagGENESIS_HEADER\	.endef
	.def	GENESIS_HEADER\	.scl	13\	.type	0x8\	.size	256\	.tag	tagGENESIS_HEADER\	.endef
	.def	tagINIT_REGISTERS\	.scl	10\	.type	0x8\	.size	15\	.endef
	.def	ModeSet1\	.val	0\	.scl	8\	.type	0xc\	.endef
	.def	ModeSet2\	.val	1\	.scl	8\	.type	0xc\	.endef
	.def	PatternBaseAddrA\	.val	2\	.scl	8\	.type	0xc\	.endef
	.def	PatternBaseAddrW\	.val	3\	.scl	8\	.type	0xc\	.endef
	.def	PatternBaseAddrB\	.val	4\	.scl	8\	.type	0xc\	.endef
	.def	SatBaseAddr\	.val	5\	.scl	8\	.type	0xc\	.endef
	.def	BkColor\	.val	6\	.scl	8\	.type	0xc\	.endef
	.def	HInt\	.val	7\	.scl	8\	.type	0xc\	.endef
	.def	ModeSet3\	.val	8\	.scl	8\	.type	0xc\	.endef
	.def	ModeSet4\	.val	9\	.scl	8\	.type	0xc\	.endef
	.def	HScrollAddr\	.val	10\	.scl	8\	.type	0xc\	.endef
	.def	AutoIncrement\	.val	11\	.scl	8\	.type	0xc\	.endef
	.def	ScrollSize\	.val	12\	.scl	8\	.type	0xc\	.endef
	.def	WindowHpos\	.val	13\	.scl	8\	.type	0xc\	.endef
	.def	WindowVpos\	.val	14\	.scl	8\	.type	0xc\	.endef
	.def	.eos\	.val	15\	.scl	102\	.size	15\	.tag	tagINIT_REGISTERS\	.endef
	.def	INIT_REGISTERS\	.scl	13\	.type	0x8\	.size	15\	.tag	tagINIT_REGISTERS\	.endef
	.text
	.align	2
	.globl	_header
_header:
	.byte	"SEGA GENESIS\0"
	.space	3
	.byte	"(C)T-XX 1994.JAN"
	.byte	"Sega Channel    \0"
	.space	31
	.byte	"Sega Channel    \0"
	.space	31
	.byte	"GM T-000000 00"
	.word	0x0
	.byte	"J\0"
	.space	14
	.long	0x0
	.long	0xfffff
	.long	0xff0000
	.long	0xffffff
	.byte	"\0"
	.space	11
	.byte	"\0"
	.space	11
	.byte	"Developed by Pacific SoftScape Inc.\0"
	.space	4
	.byte	"JUE\0"
	.space	12
	.def	_header\	.val	_header\	.scl	2\	.type	0x8\	.size	256\	.tag	tagGENESIS_HEADER\	.endef


AboutBox:
Sierra Systems ASM68 3.00      globals.s            11/14/93 13:44  Page    1

   1 T                          	.opt	proc=68000
   2 T                          	.file	"..\c\globals.c"
   3 T                          	.def	size_t\	.scl	13\	.type	0xf\	.endef
   4 T                          	.def	va_list\	.scl	13\	.type	0x12\	.endef
   5 T                          	.def	_iobuf\	.scl	10\	.type	0x8\	.size	28\	.endef
   6 T                          	.def	ptr\	.val	0\	.scl	8\	.type	0x12\	.endef
   7 T                          	.def	base\	.val	4\	.scl	8\	.type	0x12\	.endef
   8 T                          	.def	cnt\	.val	8\	.scl	8\	.type	0x4\	.endef
   9 T                          	.def	fd\	.val	12\	.scl	8\	.type	0x4\	.endef
  10 T                          	.def	bufsize\	.val	16\	.scl	8\	.type	0x4\	.endef
  11 T                          	.def	save_cnt\	.val	20\	.scl	8\	.type	0x4\	.endef
  12 T                          	.def	flags\	.val	24\	.scl	8\	.type	0x3\	.endef
  13 T                          	.def	ungch\	.val	26\	.scl	8\	.type	0x2\	.endef
  14 T                          	.def	.eos\	.val	28\	.scl	102\	.size	28\	.tag	_iobuf\	.endef
  15 T                          	.def	FILE\	.scl	13\	.type	0x8\	.size	28\	.tag	_iobuf\	.endef
  16 T                          	.def	fpos_t\	.scl	13\	.type	0xf\	.endef
  17 T                          	.def	BYTE\	.scl	13\	.type	0xc\	.endef
  18 T                          	.def	WORD\	.scl	13\	.type	0xd\	.endef
  19 T                          	.def	DWORD\	.scl	13\	.type	0xf\	.endef
  20 T                          	.def	tagGENESIS_HEADER\	.scl	10\	.type	0x8\	.size	256\	.endef
  21 T                          	.def	System\	.val	0\	.scl	8\	.type	0x32\	.line	23\	.size	16\	.dim	16\	.endef
  22 T                          	.def	ReleaseYearMonth\	.val	16\	.scl	8\	.type	0x32\	.line	24\	.size	16\	.dim	16\	.endef
  23 T                          	.def	GameNameDomestic\	.val	32\	.scl	8\	.type	0x32\	.line	25\	.size	48\	.dim	48\	.endef
  24 T                          	.def	GameNameOverseas\	.val	80\	.scl	8\	.type	0x32\	.line	26\	.size	48\	.dim	48\	.endef
  25 T                          	.def	ProductNumVersion\	.val	128\	.scl	8\	.type	0x32\	.line	27\	.size	14\	.dim	14\	.endef
  26 T                          	.def	CheckSum\	.val	142\	.scl	8\	.type	0xd\	.endef
  27 T                          	.def	IOusage\	.val	144\	.scl	8\	.type	0x32\	.line	29\	.size	16\	.dim	16\	.endef
  28 T                          	.def	RomStart\	.val	160\	.scl	8\	.type	0xf\	.endef
  29 T                          	.def	RomEnd\	.val	164\	.scl	8\	.type	0xf\	.endef
  30 T                          	.def	RamStart\	.val	168\	.scl	8\	.type	0xf\	.endef
  31 T                          	.def	RamEnd\	.val	172\	.scl	8\	.type	0xf\	.endef
  32 T                          	.def	ExternalRam\	.val	176\	.scl	8\	.type	0x32\	.line	32\	.size	12\	.dim	12\	.endef
  33 T                          	.def	ModemData\	.val	188\	.scl	8\	.type	0x32\	.line	33\	.size	12\	.dim	12\	.endef
  34 T                          	.def	Memo\	.val	200\	.scl	8\	.type	0x32\	.line	34\	.size	40\	.dim	40\	.endef
  35 T                          	.def	Country\	.val	240\	.scl	8\	.type	0x32\	.line	35\	.size	16\	.dim	16\	.endef
  36 T                          	.def	.eos\	.val	256\	.scl	102\	.size	256\	.tag	tagGENESIS_HEADER\	.endef
  37 T                          	.def	GENESIS_HEADER\	.scl	13\	.type	0x8\	.size	256\	.tag	tagGENESIS_HEADER\	.endef
  38 T                          	.def	tagINIT_REGISTERS\	.scl	10\	.type	0x8\	.size	15\	.endef
  39 T                          	.def	ModeSet1\	.val	0\	.scl	8\	.type	0xc\	.endef
  40 T                          	.def	ModeSet2\	.val	1\	.scl	8\	.type	0xc\	.endef
  41 T                          	.def	PatternBaseAddrA\	.val	2\	.scl	8\	.type	0xc\	.endef
  42 T                          	.def	PatternBaseAddrW\	.val	3\	.scl	8\	.type	0xc\	.endef
  43 T                          	.def	PatternBaseAddrB\	.val	4\	.scl	8\	.type	0xc\	.endef
  44 T                          	.def	SatBaseAddr\	.val	5\	.scl	8\	.type	0xc\	.endef
  45 T                          	.def	BkColor\	.val	6\	.scl	8\	.type	0xc\	.endef
  46 T                          	.def	HInt\	.val	7\	.scl	8\	.type	0xc\	.endef
  47 T                          	.def	ModeSet3\	.val	8\	.scl	8\	.type	0xc\	.endef
  48 T                          	.def	ModeSet4\	.val	9\	.scl	8\	.type	0xc\	.endef
  49 T                          	.def	HScrollAddr\	.val	10\	.scl	8\	.type	0xc\	.endef
  50 T                          	.def	AutoIncrement\	.val	11\	.scl	8\	.type	0xc\	.endef
  51 T                          	.def	ScrollSize\	.val	12\	.scl	8\	.type	0xc\	.endef
  52 T                          	.def	WindowHpos\	.val	13\	.scl	8\	.type	0xc\	.endef
  53 T                          	.def	WindowVpos\	.val	14\	.scl	8\	.type	0xc\	.endef
  54 T                          	.def	.eos\	.val	15\	.scl	102\	.size	15\	.tag	tagINIT_REGISTERS\	.endef
  55 T                          	.def	INIT_REGISTERS\	.scl	13\	.type	0x8\	.size	15\	.tag	tagINIT_REGISTERS\	.endef
  56 T                          	.def	tagACTOR_DATA\	.scl	10\	.type	0x8\	.size	34\	.endef
  57 T                          	.def	pCurrentFrame\	.val	0\	.scl	8\	.type	0x1d\	.endef
  58 T                          	.def	pNextFrame\	.val	4\	.scl	8\	.type	0x1d\	.endef
  59 T                          	.def	pRomData\	.val	8\	.scl	8\	.type	0x1d\	.endef
  60 T                          	.def	Xpos\	.val	12\	.scl	8\	.type	0xd\	.endef
  61 T                          	.def	Xfrac\	.val	14\	.scl	8\	.type	0xd\	.endef

Sierra Systems ASM68 3.00      globals.s            11/14/93 13:44  Page    2

       SECTION: .text 
  62 T                          	.def	Ypos\	.val	16\	.scl	8\	.type	0xd\	.endef
  63 T                          	.def	Yfrac\	.val	18\	.scl	8\	.type	0xd\	.endef
  64 T                          	.def	X1\	.val	20\	.scl	8\	.type	0xd\	.endef
  65 T                          	.def	Y1\	.val	22\	.scl	8\	.type	0xd\	.endef
  66 T                          	.def	X2\	.val	24\	.scl	8\	.type	0xd\	.endef
  67 T                          	.def	Y2\	.val	26\	.scl	8\	.type	0xd\	.endef
  68 T                          	.def	Flags\	.val	28\	.scl	8\	.type	0xc\	.endef
  69 T                          	.def	InternalFlags\	.val	29\	.scl	8\	.type	0xc\	.endef
  70 T                          	.def	Blank\	.val	30\	.scl	8\	.type	0xc\	.endef
  71 T                          	.def	FrameCounter\	.val	31\	.scl	8\	.type	0xc\	.endef
  72 T                          	.def	SATindex\	.val	32\	.scl	8\	.type	0xc\	.endef
  73 T                          	.def	NumSAT\	.val	33\	.scl	8\	.type	0xc\	.endef
  74 T                          	.def	.eos\	.val	34\	.scl	102\	.size	34\	.tag	tagACTOR_DATA\	.endef
  75 T                          	.def	ACTOR_DATA\	.scl	13\	.type	0x8\	.size	34\	.tag	tagACTOR_DATA\	.endef
  76 T                          	.def	tagHERO\	.scl	10\	.type	0x8\	.size	98\	.endef
  77 T                          	.def	actor\	.val	0\	.scl	8\	.type	0x8\	.size	34\	.tag	tagACTOR_DATA\	.endef
  78 T                          	.def	pRomData\	.val	34\	.scl	8\	.type	0x1d\	.endef
  79 T                          	.def	MessageFunction\	.val	38\	.scl	8\	.type	0x90\	.endef
  80 T                          	.def	Health\	.val	42\	.scl	8\	.type	0xd\	.endef
  81 T                          	.def	StateFunction\	.val	44\	.scl	8\	.type	0x90\	.endef
  82 T                          	.def	Xvel\	.val	48\	.scl	8\	.type	0xd\	.endef
  83 T                          	.def	Xfrac\	.val	50\	.scl	8\	.type	0xd\	.endef
  84 T                          	.def	Xaccel\	.val	52\	.scl	8\	.type	0xd\	.endef
  85 T                          	.def	Xafrac\	.val	54\	.scl	8\	.type	0xd\	.endef
  86 T                          	.def	Xmax\	.val	56\	.scl	8\	.type	0xd\	.endef
  87 T                          	.def	Xmfrac\	.val	58\	.scl	8\	.type	0xd\	.endef
  88 T                          	.def	Yvel\	.val	60\	.scl	8\	.type	0xd\	.endef
  89 T                          	.def	Yfrac\	.val	62\	.scl	8\	.type	0xd\	.endef
  90 T                          	.def	Yaccel\	.val	64\	.scl	8\	.type	0xd\	.endef
  91 T                          	.def	Yafrac\	.val	66\	.scl	8\	.type	0xd\	.endef
  92 T                          	.def	Ymax\	.val	68\	.scl	8\	.type	0xd\	.endef
  93 T                          	.def	Ymfrac\	.val	70\	.scl	8\	.type	0xd\	.endef
  94 T                          	.def	param0\	.val	72\	.scl	8\	.type	0xd\	.endef
  95 T                          	.def	param1\	.val	74\	.scl	8\	.type	0xd\	.endef
  96 T                          	.def	param2\	.val	76\	.scl	8\	.type	0xd\	.endef
  97 T                          	.def	param3\	.val	78\	.scl	8\	.type	0xd\	.endef
  98 T                          	.def	param4\	.val	80\	.scl	8\	.type	0xd\	.endef
  99 T                          	.def	param5\	.val	82\	.scl	8\	.type	0xd\	.endef
 100 T                          	.def	Flags1\	.val	84\	.scl	8\	.type	0xc\	.endef
 101 T                          	.def	Flags2\	.val	85\	.scl	8\	.type	0xc\	.endef
 102 T                          	.def	NextState\	.val	86\	.scl	8\	.type	0xd\	.endef
 103 T                          	.def	CurrentState\	.val	88\	.scl	8\	.type	0xd\	.endef
 104 T                          	.def	pStateInfo\	.val	90\	.scl	8\	.type	0x1d\	.endef
 105 T                          	.def	pPlatform\	.val	94\	.scl	8\	.type	0x10\	.endef
 106 T                          	.def	.eos\	.val	98\	.scl	102\	.size	98\	.tag	tagHERO\	.endef
 107 T                          	.def	HERO\	.scl	13\	.type	0x8\	.size	98\	.tag	tagHERO\	.endef
 108 T                          	.def	tagOBJECT\	.scl	10\	.type	0x8\	.size	102\	.endef
 109 T                          	.def	actor\	.val	0\	.scl	8\	.type	0x8\	.size	34\	.tag	tagACTOR_DATA\	.endef
 110 T                          	.def	pRomData\	.val	34\	.scl	8\	.type	0x1d\	.endef
 111 T                          	.def	MessageFunction\	.val	38\	.scl	8\	.type	0x90\	.endef
 112 T                          	.def	Health\	.val	42\	.scl	8\	.type	0xd\	.endef
 113 T                          	.def	StateFunction\	.val	44\	.scl	8\	.type	0x90\	.endef
 114 T                          	.def	Xvel\	.val	48\	.scl	8\	.type	0xd\	.endef
 115 T                          	.def	Xfrac\	.val	50\	.scl	8\	.type	0xd\	.endef
 116 T                          	.def	Xaccel\	.val	52\	.scl	8\	.type	0xd\	.endef
 117 T                          	.def	Xafrac\	.val	54\	.scl	8\	.type	0xd\	.endef
 118 T                          	.def	Xmax\	.val	56\	.scl	8\	.type	0xd\	.endef
 119 T                          	.def	Xmfrac\	.val	58\	.scl	8\	.type	0xd\	.endef
 120 T                          	.def	Yvel\	.val	60\	.scl	8\	.type	0xd\	.endef
 121 T                          	.def	Yfrac\	.val	62\	.scl	8\	.type	0xd\	.endef

Sierra Systems ASM68 3.00      globals.s            11/14/93 13:44  Page    3

       SECTION: .text 
 122 T                          	.def	Yaccel\	.val	64\	.scl	8\	.type	0xd\	.endef
 123 T                          	.def	Yafrac\	.val	66\	.scl	8\	.type	0xd\	.endef
 124 T                          	.def	Ymax\	.val	68\	.scl	8\	.type	0xd\	.endef
 125 T                          	.def	Ymfrac\	.val	70\	.scl	8\	.type	0xd\	.endef
 126 T                          	.def	param0\	.val	72\	.scl	8\	.type	0xd\	.endef
 127 T                          	.def	param1\	.val	74\	.scl	8\	.type	0xd\	.endef
 128 T                          	.def	param2\	.val	76\	.scl	8\	.type	0xd\	.endef
 129 T                          	.def	param3\	.val	78\	.scl	8\	.type	0xd\	.endef
 130 T                          	.def	param4\	.val	80\	.scl	8\	.type	0xd\	.endef
 131 T                          	.def	param5\	.val	82\	.scl	8\	.type	0xd\	.endef
 132 T                          	.def	Flags1\	.val	84\	.scl	8\	.type	0xc\	.endef
 133 T                          	.def	Flags2\	.val	85\	.scl	8\	.type	0xc\	.endef
 134 T                          	.def	NextState\	.val	86\	.scl	8\	.type	0xd\	.endef
 135 T                          	.def	CurrentState\	.val	88\	.scl	8\	.type	0xd\	.endef
 136 T                          	.def	pStateInfo\	.val	90\	.scl	8\	.type	0x1d\	.endef
 137 T                          	.def	pPlatform\	.val	94\	.scl	8\	.type	0x10\	.endef
 138 T                          	.def	PrevObject\	.val	98\	.scl	8\	.type	0xd\	.endef
 139 T                          	.def	NextObject\	.val	100\	.scl	8\	.type	0xd\	.endef
 140 T                          	.def	.eos\	.val	102\	.scl	102\	.size	102\	.tag	tagOBJECT\	.endef
 141 T                          	.def	OBJECT\	.scl	13\	.type	0x8\	.size	102\	.tag	tagOBJECT\	.endef
 142 T                          	.text
       SECTION: .text 
 143 T                          	.globl	_ResetRegisters
 144 T 00000000                 _ResetRegisters:
 145 T 00000000 06              	.byte	0x6
 146 T 00000001 64              	.byte	0x64
 147 T 00000002 30              	.byte	0x30
 148 T 00000003 30              	.byte	0x30
 149 T 00000004 07              	.byte	0x7
 150 T 00000005 5e              	.byte	0x5e
 151 T 00000006 00              	.byte	0x0
 152 T 00000007 00              	.byte	0x0
 153 T 00000008 08              	.byte	0x8
 154 T 00000009 81              	.byte	0x81
 155 T 0000000a 00              	.byte	0x0
 156 T 0000000b 02              	.byte	0x2
 157 T 0000000c 11              	.byte	0x11
 158 T 0000000d 00              	.byte	0x0
 159 T 0000000e 00              	.byte	0x0
 160 T                          	.def	_ResetRegisters\	.val	_ResetRegisters\	.scl	2\	.type	0x8\	.size	15\	.tag	tagINIT_REGISTERS\	.endef
 161 T 0000000f                 	.align	2
 162 T                          	.globl	_Stub
 163 T                          	.def	_Stub\	.val	_Stub\	.scl	2\	.type	0x20\	.endef
 164 T 00000010                 _Stub:
 165 T 00000010 4e56 fffc       	link	a6,#-4
 166 T 00000014                 	.ln 	1
 167 T                          	.def	.bf\	.val	.\	.scl	101\	.line	56\	.endef
 168 T                          	.def	.ef\	.val	.\	.scl	101\	.line	57\	.endef
 169 T 00000014                 	.ln 	2
 170 T 00000014 4e5e            	unlk	a6
 171 T 00000016 4e75            	rts	
 172 T                          	.def	_Stub\	.val	.\	.scl	-1\	.endef
 173 T                          	.def	_Hero\	.val	_Hero\	.scl	2\	.type	0x8\	.size	98\	.tag	tagHERO\	.endef
 174 T                          	.comm	_Hero,98,2
 175 T                          	.def	_object\	.val	_object\	.scl	2\	.type	0x38\	.line	62\	.size	5100\	.tag	tagOBJECT\	.dim	50\	.endef
 176 T                          	.comm	_object,5100,2
 177 T                          	.def	_WorldXpos\	.val	_WorldXpos\	.scl	2\	.type	0xf\	.endef
 178 T                          	.comm	_WorldXpos,4,2
 179 T                          	.def	_WorldYpos\	.val	_WorldYpos\	.scl	2\	.type	0xf\	.endef
 180 T                          	.comm	_WorldYpos,4,2

Sierra Systems ASM68 3.00      globals.s            11/14/93 13:44  Page    4

       SECTION: .text 
 181 T                          	.def	_MinWorldX\	.val	_MinWorldX\	.scl	2\	.type	0xd\	.endef
 182 T                          	.comm	_MinWorldX,2,2
 183 T                          	.def	_MaxWorldX\	.val	_MaxWorldX\	.scl	2\	.type	0xd\	.endef
 184 T                          	.comm	_MaxWorldX,2,2
 185 T                          	.def	_MinWorldY\	.val	_MinWorldY\	.scl	2\	.type	0xd\	.endef
 186 T                          	.comm	_MinWorldY,2,2
 187 T                          	.def	_MaxWorldY\	.val	_MaxWorldY\	.scl	2\	.type	0xd\	.endef
 188 T                          	.comm	_MaxWorldY,2,2
 189 T                          	.def	_CurrentSequence\	.val	_CurrentSequence\	.scl	2\	.type	0xd\	.endef
 190 T                          	.comm	_CurrentSequence,2,2
 191 T                          	.def	_pSubmenu\	.val	_pSubmenu\	.scl	2\	.type	0x10\	.endef
 192 T                          	.comm	_pSubmenu,4,2
 193 T                          	.def	_GameFlags\	.val	_GameFlags\	.scl	2\	.type	0xd\	.endef
 194 T                          	.comm	_GameFlags,2,2
 195 T                          	.def	_BackdropRate\	.val	_BackdropRate\	.scl	2\	.type	0xc\	.endef
 196 T                          	.comm	_BackdropRate,1,1

Total Errors:      0
Total Warnings:    0


SYMBOL TABLE

Value     Section/Type  Name

00000000  .text         _ResetRegisters
00000010  .text         _Stub

          UNDEFINED     _P


          UNDEFINED     _CurrentSequence
          UNDEFINED     _GameFlags
          UNDEFINED     _Hero
          UNDEFINED     _MaxWorldX
          UNDEFINED     _MaxWorldY
          UNDEFINED     _MinWorldX
          UNDEFINED     _MinWorldY
          UNDEFINED     _WorldXpos
          UNDEFINED     _WorldYpos
          UNDEFINED     _object
          UNDEFINED     _pSubmenu
e

00000000  .text         _ResetRegisters
00000010  .text         _Stub

          UNDEFINED     _


/****************************************************************************
*                                                                           *
*              Project: SEGA CHANNEL                                        *
*                                                                           *
*               Module: GLOBALS.C                                           *
*                                                                           *
* Module Creation Date: October 1993                                        *
*                                                                           *
*               Author: J. Fort                                             *
*                                                                           *
*   Development System: Sierra C 3.0                                        *
*                                                                           *
*    Copyright (c)1993 Pacific SoftScape Inc.                               *
*                                                                           *
****************************************************************************/

#include <stdio.h>
#include "genesis.h"
#include "actor.h"
#include "objeng.h"


const INIT_REGISTERS ResetRegisters =
{
    0x06,               /*         ModeSet1: disable H int, stop H&V ctrs */
    0x64,               /*         ModeSet2: enable display, enable V int */
    0x30,               /* PatternBaseAddrA: @ $C000 */
    0x30,               /* PatternBaseAddrW: @ $C000 */
    0x07,               /* PatternBaseAddrB: @ $e000 */
    0x5e,               /*      SatBaseAddr: @ $bc00 */
    0x00,               /*          BkColor: color zero */
    0x00,               /*             HInt:    */
#ifdef  _DEBUG
    0x08,               /*         ModeSet3: enable ext int, full scroll */
#else
    0x08,               /*         ModeSet3: full scroll */
#endif
    0x81,               /*         ModeSet4: h 40 cell mode */
    0x00,               /*      HScrollAddr: @ $0000 */
    0x02,               /*    AutoIncrement: 2 */
    0x11,               /*       ScrollSize: 64 x 64 maps */
    0x00,               /*       WindowHpos:    */
    0x00,               /*       WindowVpos:    */
};


/***************************************************************************
  FUNCTION:     Stub -- do nothing
  DESCRIPTION:  .
  RETURNS:      .
  PARAMETERS:   .
  SIDE EFFECTS: .
  REVISIONS:    10/93   -jf-
****************************************************************************/
void Stub(void)
{
}



HERO    Hero;
OBJECT  object[MAX_OBJECTS];

DWORD   WorldXpos;                  /* 16:16 fixed point world position */
DWORD   WorldYpos;                  /* 16:16 fixed point world position */

WORD    MinWorldX,MaxWorldX;        /* world X limits */
WORD    MinWorldY,MaxWorldY;        /* world Y limits */

WORD    CurrentSequence;            /* All purpose sequence counter */
void    *pSubmenu;                  /* Pointer to submenu */

WORD    GameFlags;                  /* Where ICON's get thier data from */

BYTE    BackdropRate;               /* Where we ALWAYS get our backdrop reload from */


*                                                                           *
*              Project: Genesis CORE CODE                                   *
*                                                                           *
*               Module: STDOUT.S                                            *
*                                                                           *
* Module Creation Date: October 1993                                        *
*                                                                           *
*               Author: J. Fort                                             *
*                                                                           *
*   Development System: SIERRA SYSTEMS 3.0                                  *
*                                                                           *
*    Copyright (c)1993 Pacific SoftScape Inc                                *
*                                                                           *
*****************************************************************************
*
* Standard output and console routines. All output assumes MAPA and
* 64x64 maps. Very little error checking, call with good data.
* All positions are relative to the current window.
*
*



                nolist
                include genesis.I
                include actor.I
                include schannel.I
                list

                section .bss
** Current console I/O locations
Row             ds.w    1
Col             ds.w    1
MinRow          ds.w    1
MinCol          ds.w    1
MaxRow          ds.w    1
MaxCol          ds.w    1


        xdef    FontOffset
FontOffset      ds.w    1       ; Character offset for font addr calculations

DmaCount        ds.w    1

ScrollDMA       ds.w    8       ; 10 bytes for DMA setup
ScrollDMA2      ds.w    8       ; Another 8 words
BottomVRAM      ds.l    1       ; Command to set vram address
NumCol          ds.w    1       ; # of columns


DMA_SRCLO       EQU     7
DMA_SRCHI       EQU     9
DMA_DEST        EQU     12



                tsection .text


        xdef    _SetFontPriPal,SetFontPriPal
****************************************************************************
* DESCRIPTION:  Sets up priority and palette fields for all subsequent
*               text output. Will be erased by a call to _SetupStdout
*               Can also setup the font to be flipped if desired.
* RETURNS:      .
* PARAMETERS:   WORD - genesis format pri/pal data. Will be ADDED to the
*               base font data. (D0 - SP+4)
* SIDE EFFECTS:
* REVISIONS:    10/93   -jf-
****************************************************************************
_SetFontPriPal:
                move.w  4(sp),d0
SetFontPriPal:
                and.w   #$07FF,FontOffset
                and.w   #$F800,d0
                or.w    d0,FontOffset
                rts


        xdef    SetTextPosition,_SetTextPosition
****************************************************************************
* DESCRIPTION:  Sets up the console position for all subsequent writes
* RETURNS:      .
* PARAMETERS:   SHORT xposition         D0  SP+4
*               SHORT yposition         D1  SP+6
* SIDE EFFECTS:
* REVISIONS:    10/93   -jf-
****************************************************************************
_SetTextPosition:
                move.w  4(sp),d0
                move.w  6(sp),d1
SetTextPosition:
                add.w   MinRow,d1
                cmp.w   MaxRow,d1       ;
                JBE.s   STP_1
                move.w  MinRow,d1       ; We're too big...
STP_1:
                move.w  d1,Row
                add.w   MinCol,d0       ; Offset for minimuims
                cmp.w   MaxCol,d0
                JBE.s   STP_2
                move.w  MinCol,d0
STP_2
                move.w  D0,Col
                rts


        xdef    _SetTextWindow
****************************************************************************
* DESCRIPTION:  Sets up the extents of the text window for the STDOUT
*               functions. Also resets the origin of the window to 0,0
*               Sets up the DMA's for the scroll
* RETURNS:      .
* PARAMETERS:   WORD UpperLeft X        SP+4
*               WORD UpperLeft Y        SP+6
*               WORD LowerRight X       SP+8
*               WORD LowerRight Y       SP+10
*       OR PASS A POINTER TO AN ARRAY LIKE ABOVE TO SetTextWindow
* SIDE EFFECTS:
* REVISIONS:    10/93   -jf-
****************************************************************************
_SetTextWindow
                lea     4(sp),a0
SetTextWindow:
                move.w  (a0)+,d0
                move.w  d0,Col
                move.w  d0,MinCol               ; D0 = MIN COL
                move.w  (a0),Row
                move.w  (a0)+,MinRow
                move.w  (a0)+,d1                ; D1 = MAX COL
                move.w  d1,MaxCol
                move.w  (a0),MaxRow


                lea     ScrollDMA,a1
                SetVDPreg 1,$74,(a1)+           ; set up DMA enable
                sub.w   d0,d1                   ; # of columns
                move.w  d1,NumCol               ; Remember it
                lsl.w   #1,d1                   ; #2 = # of bytes
                CalcVDPreg 19,d1
                move.w  d1,(a1)+                ; set length low based on D1
                SetVDPreg 20,0,(a1)+            ; set length high
                move.w  Row,d1
                lsl.w   #6,d1                   ; (Row*64+Col)*2
                add.w   Col,d1                  ;
                lsl.w   #1,d1                   ;
                add.w   #MAPA_VRAM,d1           ; D1 is now top-left VRAM address
                PUSH.w  d1                      ; Save it
                move.w  d1,d0
                add.w   #128,d0                 ; Next row down - source addr
                move.w  d0,d2
                CalcVDPreg 21,d2
                move.w  d2,(a1)+                ; Low Source Address
                lsr.w   #8,d0
                CalcVDPreg 22,d0
                move.w  d0,(a1)+                ; High Source Address
                SetVDPreg 23,$C0,(a1)+          ; Really high addr - set to C0
                move.w  d1,d0                   ; Dest Addr
                and.w   #$3FFF,d0
                move.w  d0,(a1)+                ; Source Addr 1
                rol.w   #2,d1
                and.w   #$0003,d1
                or.w    #$00C0,d1
                move.w  d1,(a1)                 ; DMA SETUP!
                move.w  MaxRow,d0
                sub.w   MinRow,d0
                DEC.w   d0
                move.w  d0,DmaCount             ; # of rows to DMA
*
*
*
                INC.w   d0
                lsl.w   #7,d0                   ; # of rows * 128
                add.w   (sp)+,d0                ; And add in VRAM address of top-left
                CalcVRAMaddr d0,d1              ; Calculate it
                move.l  d1,BottomVRAM
                rts



        xdef    OutMultiText
****************************************************************************
* DESCRIPTION:  Outputs multiple text strings to multiple positios -- this
*               is a list of OutText format strings. Terminate this list with
*               an additional 0
* RETURNS:      .
* PARAMETERS:   A0 - pointer to a list of many strings
* SIDE EFFECTS:
* REVISIONS:    10/93   -jf-
****************************************************************************
OutMultiText:
                bsr.s   OutPosText      ; Display one string
                tst.b   (a0)
                bne.s   OutMultiText    ; Keep outputing
                rts




        xdef    OutPosText,_OutPosText
        xdef    OutText,_OutText
****************************************************************************
* DESCRIPTION:  Displays text at a specific point on the screen -- This
*               point is indicated by 2 position BYTES immediately before
*               the string's text. OutText is the same, but the position is
*               whatever is current
* RETURNS:      A0 - pointing after the Null Terminator
* PARAMETERS:   poitnter to a structure, X pos byte,            A0   SP+4
*               Y pos byte, null-terminated string.
* SIDE EFFECTS:
* REVISIONS:    10/93   -jf-
****************************************************************************
_OutText:       move.l  4(sp),a0
                bra.s   OutText
_OutPosText:
                move.l  4(sp),a0
OutPosText:
                PUSH.l  A3
                move.l  a0,a3
                clr.w   d0
                clr.w   d1
                move.b  (a3)+,d0                ; Xpos
                move.b  (a3)+,d1                ; Ypos!
                bsr     SetTextPosition         ; Set new position
                bra.s   OT_1

OutText:
                PUSH.l  a3
                move.l  a0,a3
OT_1:
                clr.w   d0
                move.b  (a3)+,d0
                beq.s   OT_2
                bsr     putchx                  ; Display this character
                bra.s   OT_1
OT_2:
                move.l  a3,a0
                POP.l   a3
                rts                             ; Done!



        xdef    OutHexText
****************************************************************************
* DESCRIPTION:  Displays a hex WORD value as ASCII text -- This is simpler
*               than calling PRINTF for simple hex words
* RETURNS:      .
* PARAMETERS:   D0 - WORD to display
* SIDE EFFECTS:
* REVISIONS:    11/93   -jf-
****************************************************************************
OutHexText:
                PUSH.W  d4
                PUSH.W  d3
                move.w  d0,d4
                move.w  #4-1,d3
OHT_1
                rol.w   #4,d4
                move.w  d4,d0
                and.w   #$000F,d0
                move.b  HEXASCII(pc,d0),d0
                bsr.s   putchx
                dbra    d3,OHT_1
                POP.W   d3
                POP.W   D4
                rts


HEXASCII        dc.b    '0123456789ABCDEF'

        xdef    OutDecText
****************************************************************************
* DESCRIPTION:  Displays a decimal WORD value as ASCII text -- This is simpler
*               than calling PRINTF for simple decimal values
* RETURNS:      .
* PARAMETERS:   D0 - WORD to display
* SIDE EFFECTS:
* REVISIONS:    11/93   -jf-
****************************************************************************
OutDecText:
                PUSHM.l d3-d4/a2
                clr.l   d3
                clr.w   d4                      ; flag
                move.w  d0,d3
                lea     DIVTABLE(pc),a2
ODT_1
                move.w  (a2)+,d1
                beq.s   ODT_X                   ; Done, leave
                divu.w  d1,d3                   ; Divide d3 by d0
                move.w  d3,d1                   ; quotient
                move.b  HEXASCII(pc,d1),d0
                tst.b   d1
                bne.s   ODT_3
                tst.b   d4
                bne.s   ODT_4                   ; Need terminating zeros
                move.w  #' ',d0                 ; Spaces if not
                bra.s   ODT_4

ODT_3
                st.b    d4
ODT_4
                bsr.s   putchx                  ; Display quotient
                clr.w   d3
                swap.w  d3                      ; And put remainder into d3
                bra     ODT_1

ODT_X:
                POPM.l  d3-d4/a2
                rts

DIVTABLE        dc.w    10000,1000,100,10,1,0


                

                xdef    _putchx
                xdef    putchx
********************************************************************************
* DESCRIPTION:  Stdout putch function for printf, etc.  Puts the char to the
*               Genesis Map A, 40 column mode.
*               Translates a LF to CR-LF
* PARAMETERS:   int     c  - The character to put out. (D0, SP+4)
*                       this is an INT -- so it's 32 bits long
* RETURN VALUE: void
* COMMENTS:
* REVISIONS:    9/93    -rf-
*               10/93   -jf-    Updated
********************************************************************************
_putchx:
                move.w  6(sp),d0                ; Word optimized call
putchx:
                cmp.b   #10,d0                  ; LF?
                bne.s   PC_0                    ; no, goto pc_0
                add.w   #1,Row                  ;  if LF, Row++
                bra.s   PC_A                    ;  do a CR too!
PC_0:
                cmp.b   #13,d0
                bne.s   PC_1                    ; CR? no- goto PC_1
PC_A:
                move.w  MinCol,Col              ;   if CR - Col=MinCol
                bra.s   PC_X
PC_1:
                move.w  Row,d1
                lsl.w   #6,d1                   ; (Row*64+Col)*2
                add.w   Col,d1                  ;
                lsl.w   #1,d1                   ;
                add.w   #MAPA_VRAM,d1           ;
                CalcVRAMaddr d1,d2              ;
                move.l  d2,VCTRL                ; Setup MAP VRAM address
                lea     Ascii2Font-$20(pc),a0   ; Compensate for table beginning at space too
                move.b  (a0,d0),d0              ; Get char #
                add.w   FontOffset,d0           ; Add in font offset
                move.w  d0,VDATA                ; und write to video
                INC.w   Col

*
* Simple wrap-around on the X -- but we scroll for the Y
*
PC_X:
                move.w  Col,d0
                cmp.w   MaxCol,d0
                JBE.s   PC_X1                   ; if (Col > MaxCol)
                move.w  MinCol,Col              ;   Col=MinCol
                INC.w   Row
PC_X1:
                move.w  Row,d0
                cmp.w   MaxRow,d0
                JBE.s    PC_X2
*
* We want to scroll here! -- First, copy over the DMA command so we can mod it
*
                lea     ScrollDMA,a0
                lea     ScrollDMA2,a1
                move.l  (a0)+,(a1)+
                move.l  (a0)+,(a1)+
                move.l  (a0)+,(a1)+
                move.l  (a0),(a1)               ; copied
                lea     VCTRL,a0
                SetAutoInc 1,(a0)
                move.l  #ScrollDMA2,d2          ; Source
                move.l  d2,a1                   ; Load A1
                move.w  DmaCount,d0             ; Count
PC_XA:
                move.l  (a1)+,(a0)
                move.l  (a1)+,(a0)
                move.l  (a1)+,(a0)
                move.l  (a1),(a0)               ; Do a DMA
                move.l  d2,a1                   ; Reload pointer
                add.w   #128,DMA_DEST(a1)
                add.b   #128,DMA_SRCLO(a1)
                bcc.s   PC_XB
                INC.b   DMA_SRCHI(a1)
PC_XB:
                move.w  (a0),d1
                btst.l  #1,d1
                bne.s   PC_XB                   ; Wait for DMA
                dbra    d0,PC_XA
*
* Done -- Gotta clear bottom line, we'll use the DMA that's already set up
*
                SetVDPreg 1,$64,(a0)
                SetAutoInc 2,(a0)

                move.w  NumCol,d0
                move.w  FontOffset,d1
                and.w   #$07FF,d1               ; All clears on P0!
                move.l  BottomVRAM,(a0)
                sub.w   #4,a0
PC_XC:
                move.w  d1,(a0)
                dbra    d0,PC_XC
                DEC.w   Row                     ; Correct for being one past
PC_X2:
                rts





                xdef    _SetupStdout
********************************************************************************
* DESCRIPTION:  Sets up the video for text output. Loads the font into VRAM
*               and resets the console parameters. The map will go into
*               MAPA
* PARAMETERS:
*
* RETURN VALUE: .
* COMMENTS:     .
* REVISIONS:    10/93   -jf-
**********************


#30 User is offline Kiddo Cabbusses 

Posted 22 July 2011 - 11:34 PM

  • Posts: 1662
  • Joined: 26-February 08
  • Gender:Male
  • Location:Doylestown, PA
  • Wiki edits:100

View PostAndlabs, on 22 July 2011 - 11:07 PM, said:

What should it be named? (I have an ever-growing list of naming issues to bring up...)


Tough question. I myself made the filename match the Cartridge "art" to the best of my ability, and wrote every detail (including the date written on the cart). Yes, the date was the same as the Demo #6 cart.

I'm kinda I kept a picture of the demo 4 cart, though - I was sloppy in saving stuff and didn't have that in a space where I'd end up reobtaining it easily. Basically, though, the cartridge description's the most accurate thing we got for it.

  • 18 Pages +
  • 1
  • 2
  • 3
  • 4
  • Last ►
    Locked
    Locked Forum

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users