Jump to content

Redreamer82

New Members
  • Posts

    11
  • Joined

  • Last visited

Everything posted by Redreamer82

  1. Ok. Super. Thanks for the info. Tried to google it but didnt find this explanation to the issue.
  2. My Jag makes a strange almost "skreaking like" sound. It is not verry loud but I hear it when I am 1,5meter from the system. The frequency of the sound changes depending on workload or perhaps due to screen update. Should I start thinking about changing the Caps?
  3. thanks for your valuable suggestions for improvement! Im just trying to learn so I was not really aiming for a fully working demo at this moment. Skickat från min ANE-LX1 via Tapatalk
  4. Thank you for your input! I try to learn as fast as possible but some things take time to digest Skickat från min ANE-LX1 via Tapatalk
  5. Ive tried using the debugger but it does not work at the moment. Dont know why because it did work before. I get a "cant run" message or something similar. Maybe I should investigate why the debugger doesnt work, It is a powerful tool. Skickat från min ANE-LX1 via Tapatalk
  6. Thanks ggn. I think very much in 8bit 6502 terms when I write my code, but hey, Ive just started to learn. I did the asl change for a start, this fixed the wrap around effect but I still dont understand why I get a crash when trying to move the whole row. I recorded this event. I hope it will ease the understanding. https://drive.google.com/open?id=1C1tCY_SOiULPNKy5RBeK5ZB0-eGo6HiJ
  7. I guess you know about the line a commands? There you have a command that does exactly this. I dont think hires is any problem. Skickat från min ANE-LX1 via Tapatalk
  8. Hi! I've progressed somewhat since my last post and is now trying some pixel shifting. I'm starting in the top right corner and shifts word by word and plane after plane to the left. But it does not work like I want to. I can use my code for the top 19 words of each line, not for the first of some reason. I think I've done some trivial fault that any experienced assembly coder quickly can see. If anyone have a sec to have a look at my code It would be much appriciated. scroll move.w #2,-(a7) ;get screen address trap #14 ;0 1 2 3, 4 5 6 7, ... , 16 17 18 19 ;0 2 4 6, 8 10 12 14, ... , 32 34 36 38 addq.l #2,a7; ;0 8 16 24,32 40 48 56, ... , 128 136 144 152 move.l d0,scrolladr add.l #152,scrolladr ;add to get to last word, first bit plane move.l #256,d7 scroll_loop move.l scrolladr,a6 move.w #37,-(a7) ;wait for vbl trap #14 addq.l #2,a7 move.l #15,d4 ;set rows to shift bploop_resd5 move.l #3,d5 ;set bitplanes to shift bploop_resd6 move.l #18,d6 ;set words width for each row (one bit plane at the time) bploop roxl.w (a6) bp_no_carry subq.l #8,a6 dbf d6,bploop add.l #152,a6 ;jump to start. (at the end) addq.l #2,a6 ;inc to next bitplane dbf d5,bploop_resd6 add.l #152,a6 dbf d4,bploop_resd5 dbf d7,scroll_loop rts I'm surprised that the instruction after roxl.l does not trash the X flag, but this is not the main problem right now. My main problem is that if I try to shift the whole row (setting the move instruction below "bploop_resd6" to 19) makes the program crash. Probably addressing an odd byte, but I've not figured it out. =(
  9. @ggn Yea, this really helped me to understand. Ive done some C64 assembly but never done it like this. @PLM What you're saying is that I should put an "Even" after a dc.b/ds.b to be sure that I stay on the "even side" in memory?
  10. Hi! I'm new to Atari assembly. I've followed Perihelions tutorials on top of reading Abacus Atari Internals and machine language books. Anyway, in tutorial no8 he explains that the video memory must be on a 256 byte even address, but I dont understand the syntax given in the code. https://nguillaumin.github.io/perihelion-m68k-tutorials/tutorial-08.html Why does the last three rows make sure that we are on a 256byte even address? Yea, ds.b reserves 256 bytes of data but it does not align me to an even address? I hope I didnt miss read anything in the tutorial and everything was there right in front of me... move.l #screen1, d0 ; put screen1 address in d0 clr.b d0 ; put on 256 byte boundary clr.b $ffff820d ; clear STe extra bit lsr.l #8, d0 move.b d0, $ffff8203 ; put in mid screen address byte lsr.w #8, d0 move.b d0, $ffff8201 ; put in high screen address byte section bss ds.b 256 ; 256 byte clear buffer screen ds.b 32000 ; the screen
×
×
  • Create New...