Jump to content
IGNORED

Pelusa Soft 3D Demo


devwebcl

Recommended Posts

I'll be releasing different demos & programs that still are in disks by Pelusa Software from the 80s, this time it is a small demo made in m65, which simulates the floor of Ballblaster game.

 

let me know if you are interested in the source code to look it for.

 

cheers,

 

Devwebcl

 

;SAVE #D:3D.M65

;ASM,,#D:3D.COM

;

;

.OPT NO LIST

*= $E0

LO *= *+1

HI *= *+1

POSX *= *+1

POSY *= *+1

VELX *= *+1

VELY *= *+1

COLOR *= *+1

;

AUX0 *= *+1

AUX1 *= *+1

AUX2 *= *+1

AUX3 *= *+1

AUX4 *= *+1

AUX5 *= *+1

AUX6 *= *+1

AUX7 *= *+1

AUX8 *= *+1

AUX9 *= *+1

;

STICK = $D300

STRIG = $D310

SCREEN = $8000 ;15 pages

;

;

*= $4000

JSR INIT

;

;

DEM4

LDA STICK

AND #8

BNE DEM0

JSR DERECHA

DEM0

LDA STICK

AND #4

BNE DEM1

JSR IZQUIERDA

DEM1

LDA STICK

AND #1

BNE DEM2

JSR ARRIBA

DEM2

LDA STICK

AND #2

BNE DEM3

JSR ABAJO

DEM3

JSR HSCROL

WAIT

LDA $D40B

BNE WAIT

JMP DEM4

;

;

;Create Screen

;

INIT

LDA #0

STA 559

LDA # <SCREEN

STA LO

LDA # >SCREEN

STA HI

LDX #15

LDA #0

TAY

CLR STA (LO),Y

INY

BNE CLR

INC HI

DEX

BNE CLR

;

LDA # <[sCREEN+40]

STA LO

LDA # >[sCREEN+40]

STA HI

LDA #16

STA AUX2

LDA #48

STA AUX0

CREA4

LDA AUX2

LSR A

STA AUX1

LDX #192

LDY #0

STY AUX3

CREA0

TXA

AND AUX3

ORA (LO),Y

STA (LO),Y

DEC AUX1

BNE CREA1

LDA AUX2

STA AUX1

LDA AUX3

EOR #255

STA AUX3

CREA1

TXA

LSR A

LSR A

BNE CREA2

LDA #192

INY

CREA2

TAX

CPY #40

BNE CREA0

LDA LO

CLC

ADC #80

STA LO

BCC CREA3

INC HI

CREA3

INC AUX2

INC AUX2

DEC AUX0

BNE CREA4

;

LDA # <SCREEN

STA LO

LDA # >SCREEN

STA HI

LDA #16

STA AUX2

LDA #48

STA AUX0

CREB4

LDA AUX2

LSR A

STA AUX1

LDX #3

LDY #39

LDA #0

STA AUX3

CREB0

TXA

AND AUX3

ORA (LO),Y

STA (LO),Y

DEC AUX1

BNE CREB1

LDA AUX2

STA AUX1

LDA AUX3

EOR #255

STA AUX3

CREB1

TXA

ASL A

ASL A

BNE CREB2

LDA #3

DEY

CREB2

TAX

CPY #255

BNE CREB0

LDA LO

CLC

ADC #80

STA LO

BCC CREB3

INC HI

CREB3

INC AUX2

INC AUX2

DEC AUX0

BNE CREB4

;

;

;Create DLIST

;

LDX #0

LDA #$5E

DLP

STA DL+3,X

INX

INX

INX

CPX #3*48

BCC DLP

LDA # <DL

STA 560

LDA # >DL

STA 561

LDA #35

STA 559

;

; Activate DLI

;

LDA # <DLI

STA 512

LDA # >DLI

STA 513

LDA #192

STA 54286

;

; SetUp Values

;

LDA #0

STA VELY

STA VELX

STA POSY

LDA #55

STA POSX

LDA #$C4

STA COLOR

RTS

;

;

DLI

PHA

TXA

PHA

LDX #0

DLOOP

LDA DSCROL,X

STA $D40A

STA $D404

LDA DCOLR0,X

STA $D018

LDA DCOLR1,X

STA $D01A

INX

CPX #48

BNE DLOOP

LDA #0

STA $D40A

STA $D01A

PLA

TAX

PLA

RTI

;

;

DERECHA

LDA VELX

BMI DER0

CMP #12 ;TOP.INC.

BCS DER1

DER0 INC VELX

DER1 RTS

;

IZQUIERDA

LDA VELX

BPL IZQ0

CMP #256-12 ;TOP.INC.

BCC IZQ1

IZQ0 DEC VELX

IZQ1 RTS

;

ARRIBA

LDA VELY

BMI ARR0

CMP #32 ;TOP.INC.

BCS ARR1

ARR0 INC VELY

ARR1 RTS

;

ABAJO

LDA VELY

BPL ABJ0

CMP #256-32 ;TOP.INC.

BCC ABJ1

ABJ0 DEC VELY

ABJ1 RTS

;

;

;

;

HSCROL

LDA VELX

BMI HSC2

CLC

ADC POSX

CMP #56*2

BCC HSC3

SBC #56*2

JMP HSC4

HSC2

CLC

ADC POSX

BPL HSC3

SEC

SBC #144

HSC4

TAX

LDA COLOR

EOR #15

STA COLOR

TXA

HSC3

STA POSX

STA AUX2

LDA #55

STA AUX0

LDA #0

STA AUX1

;

LDA #55

SEC

SBC AUX1

STA AUX5

XVEC

LDA AUX2

CMP AUX0

BCC XMNUS

SBC AUX0

STA AUX4

LDA #1

STA AUX6

BNE VCSET

XMNUS

LDA AUX0

SEC

SBC AUX2

STA AUX4

LDA #255

STA AUX6

VCSET

LDA #0

STA AUX8

STA AUX7

LDA AUX4

CMP AUX5

BCC YMAX

STA AUX9

STA AUX3

LSR A

STA AUX8

JMP BEGIN

YMAX

LDA AUX5

STA AUX9

STA AUX3

LSR A

STA AUX7

;

;

BEGIN

LDA AUX8

CLC

ADC AUX5

BCS OVER1

STA AUX8

CMP AUX3

BCC BEG2

LDA AUX8

OVER1

SBC AUX3

STA AUX8

INC AUX1

BEG2

LDA AUX7

CLC

ADC AUX4

BCS OVER2

STA AUX7

CMP AUX3

BCC PLOTT

LDA AUX7

OVER2

SBC AUX3

STA AUX7

LDA AUX0

CLC

ADC AUX6

STA AUX0

PLOTT

LDX AUX1

CPX #8

BCC PLOTE

LDA AUX0

STA BUFF-8,X

PLOTE

DEC AUX9

BNE BEGIN

;

LDA # <[sCREEN+3]

STA LO

LDA # >[sCREEN+3]

STA HI

LDX #0

LDY #0

PL3

LDA BUFF,X

AND #3

EOR #3

STA DSCROL,X

LDA BUFF,X

LSR A

LSR A

CLC

ADC LO

STA DL+4,Y

LDA HI

ADC #0

STA DL+5,Y

LDA LO

CLC

ADC #80 ;LENGTH

STA LO

BCC PL2

INC HI

PL2

INY

INY

INY

INX

CPX #48

BCC PL3

;

;

VSCROL

LDA POSY

CLC

ADC VELY

STA POSY

BMI VB0

ORA #$80

STA POSY

LDA COLOR

EOR #$0F

STA COLOR

VB0

LDA POSY

LSR A

STA AUX0

LDX #64

LDY #6

LDA COLOR

VB2

LSR AUX0

VB1

CPX #49

BCS VB3

STA DCOLR0-1,X

EOR #$0F

STA DCOLR1-1,X

EOR #$0F

VB3

DEX

CPX AUX0

BCS VB1

EOR #$0F

DEY

BNE VB2

RTS

;

;

DL

.BYTE "ppp"

*= *+[3*48]

.BYTE 65

.WORD DL

;

DCOLR0 *= *+48

DCOLR1 *= *+48

DSCROL *= *+48

BUFF *= *+48

;

;

Edited by devwebcl
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...