home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Games 1995 January
/
amigagames-1995-01.iso
/
archive
/
spiele
/
publicdomain
/
sk003.dms
/
sk003.adf
/
src
/
tetrisprint.s
< prev
next >
Wrap
Text File
|
2001-01-01
|
9KB
|
269 lines
;-----------------------------------------------------------------------------
; Tetris © Copyright 1990 Software Alchemy All Rights Reserved, V0.1 28-Dec-89
;-----------------------------------------------------------------------------
include 'tetris.i'
;
; Print Text, Access the ROMFont
; A0 = Pointer to Text String (null terminated) + x,y pos
; A1 = Screen
PrintText
moveq #0,d0
move.l d0,d1
move.w (a0)+,d0
move.w (a0)+,d1
mulu #44*5,d1 ; Real Y Pos of Write
add.l d1,a1 ; Delta Write
move.w d0,d3 ; Save X
lsr.w #3,d0 ; Get X Byte Position
add.w d0,a1 ; A1 = Text Write Address
move.l a1,a3 ; (save)
move.l a1,d5 ; (save)
and.w #7,d3 ; D3 = Bit Shift
sub.w #8,d3
neg.w d3
2$ moveq #0,d0 ; Get char
move.b (a0)+,d0
beq.s Print900 ; EXIT
cmp.b #13,d0 ; RETURN
bne.s 3$
add.l #9*44*5,d5
move.l d5,a1 ; Next VLine
move.l d5,a3
bra 2$
3$ cmp.b #$80,d0 ; COLORIZE
bcs.s 4$
and.b #15,d0 ; (clean.l)
mulu #44,d0
add.w d0,a1
add.w d0,a3
sub.w #44*3,a1
sub.w #44*3,a3
bra.s 2$
4$
sub.w #32,d0 ; Offset Properly
move.l Characters(pc),a2 ; Source of Characters
add.w d0,a2 ; Current Character to Dump
; Dump a Character
move.w #7,d4 ; 8 Pixels Tall
1$
; move.b (a1),d0 ; D0 = Dest Read
; lsl.w #8,d0
; move.b 1(a1),d0
; moveq #0,d1
move.b (a2),d1 ; D1 = Character Read
; lsl.w d3,d1 ; D1 = Bit Shifted Char Read
; eor.w d1,d0 ; Dest + Character
move.b d1,d0 ;(no eor)
; move.b d0,1(a1) ; Dest Write
; lsr.w #8,d0
move.b d0,(a1)
add.w #$c0,a2 ; Char Src + Modulo = Next VLine
add.w #220,a1 ; Dest + Modulo = Next VLine
dbf d4,1$
add.w #1,a3 ; NeXT Horizontal Write Please
move.l a3,a1 ; Reset Horizontal Pos
bra.s 2$ ; NeXT Letter Please!
Print900:
rts
;
; D0 = Character
;
PrintColumn
; moveq #1,d2
8$ cmp.b #$f8,$dff006
bne.s 8$
9$ cmp.b #$fa,$dff006
bne.s 9$
movem.w d0-d2,-(a7) ; shift entire field over.
bsr DrawScroller
movem.w (a7)+,d0-d2
; dbf d2,8$
bsr DrawScrollClear
; D1 = Column #7-0
; D0 = Character
and.w #$ff,d0
move.w d0,d4
and.w #7,d4
cmp.w #7,d4 ; (isn't really an 8th color)
bne.s 7$
clr.w d4
7$ lsl.w #5,d4
move.l Characters(pc),a0 ; Source of Characters
sub.w #32,d0
add.w d0,a0 ; Current Character to Dump
moveq #7,d2
clr.b d3
1$ move.b (a0),d0
btst d1,d0
beq.s 5$
movem.l d0-d2/a0,-(a7)
tst.b d3
bne.s 2$
moveq #42,d1 ; Get Horiz
moveq #26,d0
sub.w d2,d0 ; Vert
moveq #7,d2
or.w d4,d2
bsr DrawScrollBit
movem.l (a7),d0-d2/a0
2$ st d3
moveq #42,d1 ; Get Horiz
moveq #27,d0
sub.w d2,d0 ; Vert
moveq #6,d2
or.w d4,d2
bsr DrawScrollBit
movem.l (a7)+,d0-d2/a0
bra.s 6$
5$ clr.b d3
6$ add.w #$c0,a0 ; Next Down
dbf d2,1$
rts ; A0 = Ptr to CharList
GetTopaz
move.l 4,a6
lea GfxName(pc),a1
jsr -408(a6) ; OpenLibrary("graphics.library");
move.l d0,a6
move.l $94(a6),d0
; Apparently there is a problem with OpenFont under 1.3 with a custom font, and a 68030
; so I changed to a direct scam off the graphics structure...which I can't
; test but I hope is a more robust solution.
; lea TopazName(pc),a2
; lea TextAttr(pc),a0
; move.l a2,(A0) ; OpenFont(TextAttr);
; jsr $ffb8(a6)
move.l d0,a1
lea Characters(pc),a0
move.l $22(a1),(a0)
rts
; jmp $ffb2(a6) ; CloseFont (pass TextFont in A1);
TextAttr dc.l 0 ; ta_Name.l
dc.w 8,0 ; ta_YSize.w, ta_Style.b, ta_Flags.b
TopazName dc.b 'topaz.font',0
GfxName dc.b 'graphics.library',0
Characters dc.l 0
ScrollMessage
dc.b "Slick Cool Fun Games! its what everybody wants to write. "
dc.b "And now, Anselm Hook, Software Designer who has worked on "
dc.b "projects like Datastorm, Vortex, Dragons Lair II, Hybris "
dc.b "to name a few "
dc.b "reveals the coding techniques behind todays hot products "
dc.b "in 'Tetris.s' - a stunning compendium of programming "
dc.b "tips and tricks that will leave you breathless. "
dc.b " "
dc.b "Hey, whats' this? A Trashy ScrollText??? "
dc.b "Well in that case.... I think I feel "
dc.b "the need, the need for *greetings*!!! yay! "
dc.b "HI Jenn3!, S0ren Gr0nbech, Randy Linden, Andreas Hommel, Julian Lefay, "
dc.b "Chris Chirogene, Jasper, Thanos, David3, Mark Vange and Fulvio Ciano. "
dc.b "(and Daniel Shields too). Andrea and Allison. Martin Pederson, Torben Bakager, "
dc.b "Paul Lombardi. Oh and Richard Smith, Nancy Picard and Diana...and Morro and Jenna. "
dc.b "And everyone at AMUC, FAUG, The Computer Shop of Calgary, Armando Ruggeri. "
dc.b "And Chris Mate and Weaver. And Stephen Vermulen, and Gary Rhyason. "
dc.b "Rich, I hear Discovery went belly up! Feel like working in Canada? "
dc.b "RED-SECTOR, I thought your vectorballs demo was incredible. "
dc.b "SPREADPOINT, vectorscrolltextwow! "
dc.b "DOC, Jasper ect I'd like to hear from you again. Hows the disk mag? I see you finally sold IMPLODER! "
dc.b "Leo Schwab, if you send me the source + graphics for marketroids "
dc.b "I'll turn it into a public domain game 50/50 Name credits. "
dc.b "PARANOMIA, Vortex wasn't protected you losers! Woa, you're such piti"
dc.b "ful hackers you can barely crack unprotected software!!! "
dc.b "Wait till you come up against The BlackBox, children... "
dc.b "Hey Mr. Linden, you might find this useful for DL2: move.w #32,$dff1dc. "
dc.b "It basically speeds up a super-fat Amiga. HAVE FUN WITH MY MONEY. "
dc.b "Hey S0ren, when are you going to visit Canada? Call me. Jan 90 "
dc.b "P.S. My development system is a 68030!!! (2630) Na na na na bo bo... "
dc.b "My NeXT development system is just waiting for me to pay for it... "
dc.b "(You should just try the NeXT interface...I think I'll go write a "
dc.b "NeXT-Like Dock Application for the Amiga now,since this is all done;-) "
dc.b " -> -> -> The End <- <- <- "
dc.b 0
; end of tetrisprint.s
; If after you look at this code, you think something like "Hmmm, I could
; write stuff pretty easily, but the Amiga isn't that big a seller.".
;
; My response is:
;
; 1) Somebody has to produce product such that the market
; can get larger, and thus sustain more product.
;
; 2) Moreover the Amiga is incredibly powerful, sometimes I use
; an IBM and I just can't believe how totally backwards those
; systems are. Its truly amazing that a machine as old as the
; Amiga is still an order of magnitude superior to any other
; micro on the market, with the possible exception of the NeXT by
; Steve Jobs.
;
; 3) The Amiga simply outpowers the Macintosh, Atari XXt. And
; even the new 486 machines still have the cumbersome
; non-multitasking "interface" (haha) which makes working with them
; wretched, and with the Amiga sublime.
;
; 4) The Amiga is *the* defacto development system, most Development
; Groups realize this, for example an estimated %50 of Amiga Owners
; are interested or have Assemblers. You can develop on the Amiga for
; other machines and have fun doing it. Another example is I am
; finishing an Atari game right now, guess which machine compiles it!
;
; 5) While the headcount of Amiga Owners may be small, they are very
; strong, that is users use it for work, are active in the public
; eye, and *Very* vocal. Its an extremely strong public platform
; and I predict in the upcoming year that the number of installed
; Amigas will explode, quadruple quintiple even more, barring any
; kind of major recession or Acts-Of-Commodore.
;
; 6) Fred Fish, at your fingertips you have a dazzling array of
; public domain software. Much of it in source code.
;
; 7) I have for the first time started to see "definitive" software,
; where the software is limited by only the developers imagination.
; Caligari is a prime example, the developers here believe in an
; almost CyberSpace ethic, an all encompassing real-time 3d interface
; for operation on data. (I expect to see the next workbench for the
; Amiga to skip directly to 3d, from there its only a short step
; and a few network connections to true anticipatory democracy!).
;
; I do have complaints about the Amiga, such as the poor effort on
; WorkBench (at least compared to the NeXT), the dearth of truly competent
; software, the Company which "manages" it, and the price.
; But I criticize the Amiga on a different level than the IBM-Clones the
; Amiga needs work, primarily in software. The Clones need to be shot.
;
; P.S. You can try a NeXT at your local University. I suggest that somebody
; port some of their utilities over to the Amiga, or write a NeXT emulator.
; I particularily like the Dock, as a tool-space versus the amigas workbench
; which is primarily an information space.