Jump to content


  • Content Count

  • Joined

  • Last visited

Community Reputation

670 Excellent

1 Follower

About jacobus

  • Rank
  • Birthday 12/31/1965

Contact / Social Media

Profile Information

  • Gender
  • Location

Recent Profile Visitors

16,695 profile views
  1. I'd be interested in the right cart version
  2. Take care Jay and get well soon!
  3. That is the first software collection I've ever seen that does not include any pirated items! Amazing! 🙂
  4. 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
  5. 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
  6. Thank you for this! Once I get the code working, I'll come back to this for now, I'll go with readability 🙂
  7. 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...
  8. 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?
  9. 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.
  10. Nothing, but I couldn't see how to pass the parameters that I need - sorry to have ignored your response!
  11. 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
  12. thanks for the responses! Sounds like I was starting with the wrong code. Can anyone recommend an assembly routine that would do the following: -Copy small sequences of data (<64 bytes) from one location to another -Run in the VBI -Compatible with the TASM cross assembler version 3.2 -Fast and light thank you!
  13. Thank you - much appreciated! Progress! It now simply hangs the computer instead of crashing Altirra! 🙂 I think I forgot to mention that this needs to run in the VBI. Does that change anything?
  • Create New...