-
Content Count
774 -
Joined
-
Last visited
Community Reputation
674 ExcellentAbout jacobus
-
Rank
Dragonstomper
- Birthday 12/31/1965
Contact / Social Media
- Website
Profile Information
-
Gender
Male
-
Location
Canada
Recent Profile Visitors
16,927 profile views
-
Nice setup Alfred! The amount of dust on that XL suggests it ran for a very long time without intervention. What was the name of your BBS? (I'm assuming it was local to the GTA) The Toronto Sun Sunshine girls - the first page of the newspaper anyone ever turned to :-)
-
and a few more... (all NTSC)
-
I'd be interested in the right cart version
-
Take care Jay and get well soon!
-
Need help with an assembly copy routine
jacobus replied to jacobus's topic in Atari 5200 / 8-bit Programming
Tried that 🙂 It fails in the VBI. -
Need help with an assembly copy routine
jacobus replied to jacobus's topic in Atari 5200 / 8-bit Programming
Sure 🙂 but it's in Quick so may not be much help. The PUSH/PULL, IPUSH/IPULL, ZPUSH/ZPULL (currently commented out) are supposed to be used to save and restore the CPU registers but the documentation is both confusing and contradictory and I have never quite figured out how to use them properly. Is this something I can add to the copy routine instead? INTER VERTBLNK LOCAL BYTE [ V ] WORD [ VD,VM OP=130,SP ] BEGIN * PUSH * IPUSH * ZPUSH * SP=OP IF VBENABLE=1 ZZC=0 REPEAT CALL($00,$00,$00,$4C00) ZZC+ UNTIL ZZC=33 VBENABLE=0 ENDIF *Horizontal Scrolling IF SCRLH=1 ;scroll right --> IF HFS=9 IF HCS<16 ;limit of screen IF MAPXR<65 HFS=12 HCS+ ENDIF ENDIF ELSE HFS- ENDIF ENDIF IF SCRLH=255 ;scroll left <-- IF HFS=12 IF HCS>0 IF MAPXL>0 HFS=9 HCS- ENDIF ENDIF ELSE HFS+ ENDIF ENDIF HSCR00=HCS HSCR01=HCS HSCR02=HCS HSCR03=HCS HSCR04=HCS HSCR05=HCS HSCR06=HCS HSCR07=HCS HSCR08=HCS HSCR09=HCS HSCR10=HCS HSCR11=HCS HSCR12=HCS HSCR13=HCS HSCR14=HCS HSCR15=HCS HSCR16=HCS *vertical scrolling IF SCRLV=1 ;top down (plyr moves up) IF VFS=0 IF VCS>0 IF MAPYT>0 VSCR00- VSCR01- VSCR02- VSCR03- VSCR04- VSCR05- VSCR06- VSCR07- VSCR08- VSCR09- VSCR10- VSCR11- VSCR12- VSCR13- VSCR14- VSCR15- VSCR16- VFS=7 VCS- ENDIF ENDIF ELSE VFS- ENDIF ENDIF IF SCRLV=255 ;bot up (plyr moves dn) IF VFS=7 IF VCS<16 IF MAPYB<64 VSCR00+ VSCR01+ VSCR02+ VSCR03+ VSCR04+ VSCR05+ VSCR06+ VSCR07+ VSCR08+ VSCR09+ VSCR10+ VSCR11+ VSCR12+ VSCR13+ VSCR14+ VSCR15+ VSCR16+ VFS=0 VCS+ ENDIF ENDIF ELSE VFS+ ENDIF ENDIF *handle joystick IF STICK0<>15 V=JOYX(STICK0) ;LUT ADD(PX,V,PX) SCRLH=0 ;no scroll flag IF PX<124 SUB(PX,V,PX) SCRLH=255 ;scroll left flag <-- ENDIF IF PX>125 SUB(PX,V,PX) SCRLH=1 ;scroll right flag --> ENDIF V=JOYY(STICK0) ;LUT ADD(PY,V,PY) SCRLV=0 IF PY<119 SUB(PY,V,PY) SCRLV=1 ENDIF IF PY>121 SUB(PY,V,PY) SCRLV=255 ENDIF ELSE SCRLH=0 SCRLV=0 ENDIF * OP=SP * PULL * IPULL * ZPULL ENDVBI -
Need help with an assembly copy routine
jacobus replied to jacobus's topic in Atari 5200 / 8-bit Programming
Thanks for all the help, I am definitely closer! The code (with some very minor changes) works when called from the main part of the program but fails when run in the VBI. I should elaborate - it runs properly once when called from the VBI but then locks up the computer. Do I need to do something different when exiting? .lsfirst zplocation .equ $CC ;; Uses memory locations starting at this address. org .equ $4C00 ;; Start of main code src .equ zplocation+$0 ;; Source dst .equ zplocation+$2 ;; Destination bytes .equ zplocation+$4 ;; Size .org org ; caller sets src & dst & bytes ; Y is size minus 1(!), maximum of 127 (i.e. 128 bytes) memcopy ; sta dst ; stx dst+1 ldy bytes loop lda (src),y sta (dst),y dey bpl loop rts .end -
Need help with an assembly copy routine
jacobus replied to jacobus's topic in Atari 5200 / 8-bit Programming
Thank you for this! Once I get the code working, I'll come back to this for now, I'll go with readability 🙂 -
Is there any significant difference between 800 motherboards? I have a revision 9 with white/light grey cartridge slots and a rev A with black ones...
-
Need help with an assembly copy routine
jacobus replied to jacobus's topic in Atari 5200 / 8-bit Programming
Thank you very much for the reply! in answer tour questions: -I do not cross page bountries -zero page is not used as a source or destination -source and destination change each time the copy routine will be called -rather not have self-modifying code, I may put this in a cart -speed is my preference - I need to copy 56 bytes 32 times for a full screen redraw -when you say size - do you mean size of code or bytes copied? Code size is not too important, (under 256 bytes preferred), bytes copied each call is either 48 or 56 Questions -I understand the first two routines, but I don't understand why in the main routine at all. Why the constants ($1234 and $5678)? thank you! Edit: Wait a second, do memcopy and loop perform the actual copy and main simply sets up and calls it? -
Need help with an assembly copy routine
jacobus replied to jacobus's topic in Atari 5200 / 8-bit Programming
Both source and destination are variable - the amount of data to copy is always 56 bytes - however I think I'd like to be able to specify that as well just in case I find another use for this code. -
Need help with an assembly copy routine
jacobus replied to jacobus's topic in Atari 5200 / 8-bit Programming
Nothing, but I couldn't see how to pass the parameters that I need - sorry to have ignored your response! -
Time to make some space! Reasonable offers considered, I will ship to US and Canada. If you are interested in a trade, I am looking for the packaging that comes with Synapse's Page 6 utility. Please read the descriptions beside each item - feel free to ask questions! Boxed 1050 in almost new condition. Tested and working. All components included. Box has some brown packing tape attached. Includes DOS 3 !!! 🙂 400 - includes Tara aftermarket keyboard. Early model - Week 12 of 1981. Machine powers up but does not boot or display anything. Parts only! 48K 800 - Parts only - missing spring from door latch, IO bezel and clear plastic power light carrier. Small chip in front right corner. 810 Drive - powers up, spins but otherwise does not respond. Small chip on one side. For parts. 2 - 850 interfaces - they power up but otherwise not tested. One has some fairly significant case damage. XEGS #1 - Bad ROM (no basic or Missile command), runs the cartridges I tested with, but no guarantees. Does not respond to keyboard. XEGS #2 - Tested and working except for sticky console keys (Option works only intermittently) XEGS #3 - Tested and working properly