Diablo ASM - a Collaborate effort.
Moderator: MaxCoderz Staff
- Shadow Phoenix
- Calc Guru
- Posts: 835
- Joined: Mon 03 Jan, 2005 7:54 pm
- Location: out there. seriosly.
- dysfunction
- Calc Master
- Posts: 1454
- Joined: Wed 22 Dec, 2004 3:07 am
- Location: Through the Aura
-
- Calc King
- Posts: 2195
- Joined: Sun 27 Mar, 2005 4:06 am
- Location: sleeping
- Contact:
-
- Calc King
- Posts: 2195
- Joined: Sun 27 Mar, 2005 4:06 am
- Location: sleeping
- Contact:
-
- Calc King
- Posts: 2195
- Joined: Sun 27 Mar, 2005 4:06 am
- Location: sleeping
- Contact:
Yeah it's ASM and sure, you can help. I don't see any reason why not. We need to start dividing the tasks between us. First, get ShadowPhoenix to send you that movement engine he wrote and between us we will optimize it. I have a lot of things to concentrate on ATM so it's good to have multiple people.
- Shadow Phoenix
- Calc Guru
- Posts: 835
- Joined: Mon 03 Jan, 2005 7:54 pm
- Location: out there. seriosly.
Here is screenshot #1!
(EDIT by tr1p1ea) - Reduced your gif from 1.03MB to 11.6KB .
(EDIT by tr1p1ea) - Reduced your gif from 1.03MB to 11.6KB .
Code: Select all
; HEADER
.nolist
#include "ion.inc" ;tells TASM--the compiler--what file to read from to define rom call memory addresses and such
#include "keys.inc"
;GameEnded = saferam3 ;This is UGLY way to end a program
apdSubTimer = $8448
apdTimer = $8449
.list
#ifdef TI83P
.org progstart-2
.db $BB,$6D
#else
.org progstart
#endif
ret
jr nc,UltraStart ;Jumps to the beginning of the program (this line and the below three will be
.db "ZDiablo",0 ;The title displayed by ION--anything you want
;
; START START START START
;
UltraStart:
; ld a,0
; ld (GameEnded),a
Start:
;Starting the loop
;First check if needed to quit the program
; ld a,(GameEnded)
; cp 1
; ret z
call ClearGraphBuffer
;call getDI
;cp skUP
;call z, quit
;jp start
GetKey:
LD a, %10111111 ;2nd can be the popup menu :) or the fight thing.
call DirectInput
BIT 5, A
jp z,somewhere
;If 2nd was not pressed...then
call GetDi ; Maybe I should use Directinput here too....
cp skUp
jp z, k_Up
cp skRight
jp z, k_Right
cp skDown
jp z, k_Down
cp skLeft
jp z, k_Left
cp skUpRight
jp z,k_UpRight
cp skDownRight
jp z,k_DownRight
cp skDownLeft
jp z,k_DownLeft
cp skUpLeft
jp z,k_UpLeft
cp skMode
jp z,quit
cp skDel
call z, CLI_TurnOff ;This does APD + Power down
jp draw ; Copied from
; http://wikiti.denglend.net/index.php?title=83Plus:Ports:03
;Pause:
;bcall(_EnableAPD)
ld hl, 1 \ ld (apdsubtimer), hl ; THANKS Michael_V !!!!
ret
Quit:
;ld a,1
;ld (GameEnded),a ;This is an ugly way to quit out of the game
ret ;Any ideas - tell me
k_UpRight:
call m_up
call m_right
jp draw
k_UpLeft:
call m_up
call m_left
jp draw
k_DownRight:
call m_down
call m_right
jp draw
k_DownLeft
call m_left
call m_left
jp draw
k_Left:
call m_left
jp draw
k_Up:
call m_up
jp draw
k_Down:
call m_down
jp draw
k_Right:
call m_right
jp draw
somewhere:
jp draw
m_up:
ld a, (Ycor)
or a
ret z
dec a
ld (Ycor),a
ret
m_down:
ld a, (Ycor)
cp 56
ret z
inc a
ld (Ycor),a
ret
m_left:
ld a, (Xcor)
or a
ret z
dec a
ld (Xcor),a
ret
m_right:
ld a, (Xcor)
cp 88
ret z
inc a
ld (Xcor),a
ret
Draw:
ld b,8
ld a,(Ycor)
ld l,a
ld a, (Xcor)
ld ix, person
call ionPutSprite ; For version .000000000001 I used ion's non grayscale routine.
call ionFastCopy
jp start
Ycor: .db 5
Xcor: .db 5
Person:
.db %00011000
.db %00111100
.db %00011000
.db %00011110
.db %01111100
.db %00011000
.db %00100100
.db %01000010
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ROUTINES - LATER FOR INCLUDE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;------------------------------
;------------------------------
;------------------------------
;;;Name: DirectInput
;Inputs: A = Key Group
;Outputs: A = Key Code; Zero If None
;Destroys: A, B
DirectInput:
ld b,a
ld a,$ff ;Reset the keypad
out (1),a
ld a,b
out (1),a
in a,(1)
ret
;;;;;;;;;;;;;;;;
ClearGraphBuffer:
ld hl,plotsscreen ;used from Michael's OS due to my laziness
ld (hl),0
ld de,plotsscreen+1
ld bc,767
ldir
ret
;;;;;;;;;;;;;;;
CLI_TurnOff: ;Does this WORK? NOT TESTED!!!!!
; res onKey,(iy+keyFlags)
ld a,02h
out (10h),a ;Turn off LCD
ld a,08h
out (3),a
call $000B
ld a,36h
out (4),a
ld a,01h
out (3),a
; call RAM_FAT_Checksum
; ld (RAMChecksum),hl
ex af,af'
exx
ei
halt ;It halts until ON is pressed
ld a,0Bh
out (3),a
ld a,03h
out (10h),a ;Turn the LCD back on
; res onKey,(iy+keyFlags)
ret
;;;;;;;;;;;;;;;
Pause:
DI ; disable interrupts
LD A, 01 ; bit 3 = lcd status
OUT ($03), A ; bit 0 = ON-interrupt status
EI ; enable interrupts
HALT ; wait for ON (that's the only interrupt)
RET
;;;;;;;;;;;;;;; Halt routine : B = delay
;;;;;;;;;;;;;;; PLEASE set B to something before launching this ;P
Halt:
ei ; turn on interrupts so it doesn't crash
zloop:
halt
djnz zloop
ret
;------------------------------end
#include "DirectInput.inc"
#include "getdi.inc"
#include "keyval.inc"
.end
END
Last edited by Shadow Phoenix on Wed 14 Dec, 2005 2:03 am, edited 1 time in total.
Life is getting better.
MirageOS? Try crunchyOS.I hope I don't have to list the advantages again.
Or, the NimbusOS beta is pretty good also.
Or, the NimbusOS beta is pretty good also.
In Memory of the Maxcoderz Trophy
- Shadow Phoenix
- Calc Guru
- Posts: 835
- Joined: Mon 03 Jan, 2005 7:54 pm
- Location: out there. seriosly.
maybe CrunchyOS is a better shell....however, I dont know...please give me a list of advantages .CompWiz wrote:MirageOS? Try crunchyOS.I hope I don't have to list the advantages again.
Or, the NimbusOS beta is pretty good also.
Anyhow, the demo is just a first demo which shows how fast it is. Take note - No Bcall's anywhere. When threefingerguy gets the greyscale isometric tile placcer, then we will be able to make a proper map placer and then we will change from the guy walking to the map moving.
(EDIT by tr1p1ea) - Reduced your gif from 1.03MB to 11.6KB Smile.
Tell me the secret :O! !!! !! !!! !!!! !!!! !!! ! !! ! !!!! !!! !!!
*sorry couldnt keep my finger off the !'s!!! *
Life is getting better.