-
Posts
856 -
Joined
-
Last visited
Content Type
Profiles
Forums
Blogs
Gallery
Events
Store
Posts posted by Pengwin
-
-
I have this piece of code:
; Routine to load the next level level_vec .word $0000 scrn_vec .word GameScreen + $28 outchar .byte $00 loadlevel inc level ;Increment the level lda #$05 ;If the level is now 5, then set it back to 1 cmp level beq levelok lda #$01 sta level levelok ldx level ;Load the level and reduce it by 1 dex level txa ;Multiply the level by 2 for the offset asl tax lda lvlvectors,x ;Get the address of the level data sta level_vec lda lvlvectors+1,x sta level_vec+1 ldy #$00 getscrnchr lda (level_vec),y ; <---- THIS LINE HERE GENERATES THE ERROR cmp #$FF beq leveldone tax and #$0f clc adc #$40 sta outchar txa lsr lsr lsr lsr tax lda outchar rptscrnchr cpx #$00 beq getscrnchr sta (level_vec),y iny dex jmp rptscrnchr ; ++++++ HERE ++++++ leveldone lda #$00 ;Temporary instruction rts
I know it's probablu quite messy, but this is my first real assembly project.
However, when I try to run the assembler, it tells me that I have an illegal addressing mode on the indicated line. I though that indirect-indexed was allowed for LDA.
Any help please
-
I was having some trouble with Quick, setting up game screens and stuff, so I am going to take the plunge and try to code my current project in assembly.
-
Well, thanks to this thread. I have now written my first 6502 assembly program.
It's very simple, just a screen of text (mixed modes), with some flashing text. The timing for the flashing is done in a VBI, which is doubly amazing for me.
I am so chuffed
- 1
-
Slightly off topic here.
But if you could have an ideal IDE for A8 development, what features would you like?
-
After reading through this thread, I have now also added MADS, WUDSN and Eclipse, but this is mainly for learning assembly at the moment.
-
I'm quite surprised that 4 out of the 5 answers so far are from people coding directly on A8 hardware (myself included).
I thought more people were using cross compilers these days.
-
Here's a question, did the A8 have any software 80 column mode programs in the early 80s?
I don't know about any commercially available software, but Atari User did publish a type in for 80 column text to be used with your own basic programs.
-
Guess I'll be the first to answer this.
This is my first A8 project to actually get any momentum since the 80's, so things may change after this one.
Right now, I am developing directly on my 800XL, using the Quick language.
When testing, I use Atari800MacX, because of its built in monitor and debugging tools.
-
I get the same and if I FTP direct, I just get connection failed.
-
DLI's happen on the last line (or only line) for the specified mode, allowing you to make changes before the next line starts. Usually a WSYNC is used to align with the HBLANK area.
Right, so if I have a displaylist containing:
...,135,2,...
Then, if I make a colour change, it won't effect the mode 7 line that the interrupt is on, but it will effect the mode 2 line following it. Is that right?
Sorry if these are basic questions, but I've not really dealt with interrupts before.
-
I'm a little confused about Display List Interrupts.
If I have a display list as follows:
DATA($7000) [ 112,112,112,72,$94E8 8,8,8,8,8,8,8,8,8,8,8 8,6,6,6,6,135,6,7 65,$7000 ]
Should the interrupt effect the third to last line (135) or the following line (6)?
-
If you are looking at coding in assembly, I have managed to get working versions of MADS, ATASM and ZASM.
I can send you the binaries if you like.
-
Thanks for the tip Rybags. I can't use Altirra though (I'm on a mac), but atari800MacX does have a decent monitor and debugger.
What I discovered is that the displaylist, which should be entered into memory with
DATA($7000) [ 112,112,112,71,232,148 7,7,7,6,6,6,6,7,7,7,65,0,112 ]
doesn't seem to be in memory. Not sure why. I tried out one of the demo games that is available on the AtariWiki, and that fails to put the display list in memory. Looks like there could be a problem with Quick itself.
Edit: Just tried with Quick 2.1 (I was using 2.2) and the data is now being stored in memory.
-
Just spotted one thing...the last byte of the display list should have been 112, not 70. But but still doesn't work
-
Should have mentioned... the colours look great on a Pal system.
-
Works brilliantly. I love the new front screen.
The screen corruption that I saw before has now gone as well.
-
I need some help fro anyone out there who knows Quick.
I have taken a page from XXL's book and am trying to port some simple spectrum games to A8. Unlike XXL, I am not using assembly, I will be using the Quick language. In theory, this should be straight forward, but I have already hit a snag.
I am trying to create a custom display list (actually, there will be 2 in the game, but one at a time here).
I 'think' it is creating the correct list, but when I try to poke a character to the screen, I get nothing.
I tried virtually the same in TurboBasic and I got a character on the screen. Could any one help?
I am posting the code to both the Quick and the TurboBasic versions so maybe someone could see something.
Quick Code
BYTE [ DMACTL=559 ] WORD [ SDLSTL=560 MENUDLI MENUSCRN ] * FRONT MENU DISPAY LIST DATA($7000) [ 112,112,112,71,232,148 7,7,7,6,6,6,6,7,7,7,65,0,70 ] MAIN MENUDLI=$7000 MENUSCRN=$94E8 .FRONTMENU ENDMAIN * DISPLAY FRONT SCREEN PROC FRONTMENU LOCAL WORD [ PKPOS ] BEGIN DMACTL=0 SDLSTL=MENUDLI DMACTL=34 CLR($70,1) ADD(MENUSCRN,56,PKPOS) POKE(PKPOS,65) ENDPROC
TurboBasic Code
1 DMACTL=559:SDLSTL=560:MENUDLI=28672 2 MENUSCRN=38123 3 HSBMENU=INT(MENUDLI/256) 4 LSBMENU=(MENUDLI-(HSBMENU*256)) 10 FOR F=0 TO 18 20 READ A 30 POKE MENUDLI+F,A 40 NEXT F 100 POKE DMACTL,0 110 POKE SDLSTL,LSBMENU 120 POKE SDLSTL+1,HSBMENU 130 POKE DMACTL,34 150 POKE MENUSCRN,99 1000 DATA 112,112,112,71,232,148,7,7,7,6,6,6,6,7,7,7,65,0,70
Any help would be very greatly appreciated.
-
I'll be lucky if I get to level 6!
-
Atari 8-bit
Pac-Man
Donkey Kong
ST
PacMania
Sega Saturn
Virtua Fighter
-
Strange I never saw this thread before, even stranger that I found out about these 'electronic novels' last night.
Thanks to Sio2OSX, I am going to give the one not mentioned yet a try, Brimstone.
If anyone is interested, I'll post my thoughts in this thread when I've had a chance to really get to grips with it.
Like Gunstar, I would also like to get hold of originals of these, but I've never seen them in the wild.
-
Here's my first attempt: 10650
Quite proud of that
-
Thanks for confirming that for me Dan. I wasn't sure if the DLI would also work with the PMGs, but now I know.
-
I'm playing Bounty Bob right now, and I just did a 'head-count' of the number of sprites that are definitely PMGs. I count 6. Now, I know a fifth player can be created by combining missiles, or even 2 small sprites by making 2 pairs of missiles, but these appear to be full size players.
Am I right in thinking that this can be achieved by creating multiple copies of the sprite image in a single player, then changing the horizontal position of the player by using a DLI? or doesn't this apply to PMGs?
-
I'm getting better at this:
H.E.R.O. - 55780
Addressing modes help needed
in Atari 5200 / 8-bit Programming
Posted
Never mind, just found out that it is for zero-page addresses only. That will explain my error