Pengwin Posted March 2, 2012 Share Posted March 2, 2012 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. Quote Link to comment Share on other sites More sharing options...
Pengwin Posted March 2, 2012 Author Share Posted March 2, 2012 Just spotted one thing...the last byte of the display list should have been 112, not 70. But but still doesn't work Quote Link to comment Share on other sites More sharing options...
Rybags Posted March 3, 2012 Share Posted March 3, 2012 Maybe try running it in Altirra with the debugger. Put a line at the end so it endlessly loops or something. Then you can use the debugger to check if stuff like SDLIST gets changed properly. Or you could even single-step through the program. A method I use is to have a breakpoint set e.g. to writes at $E000. Then just put writes to $E000 inside your program where you want to start to trace. Quote Link to comment Share on other sites More sharing options...
Pengwin Posted March 3, 2012 Author Share Posted March 3, 2012 (edited) 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. Edited March 3, 2012 by Pengwin Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.