Detecting the TUBE

From Retrosoftware

(Difference between revisions)
Jump to: navigation, search

Francisl (Talk | contribs)
(Detecting the TUBE - Initial version)
Next diff →

Revision as of 16:06, 25 July 2008

Detecting the TUBE

Not all software routines are compatible with the TUBE (e.g. the 6502 co-processor) in use so being able to check for this can be handy.

The code below will test for the TUBE and if detected notify the user and end the program. If the TUBE is not detected then the program will branch to the label 'routine' where your own code can go.

The Code

  10 DIM mc% 100
  20 osasci=&FFE3
  30 osbyte=&FFF4
  40 FOR opt%=0 TO 2 STEP 2
  50 P%=mc%
  60[          OPT opt%
  70           LDA #&EA
  80           LDX #&00
  90           LDY #&FF
 100           JSR osbyte
 110           CPX #&00
 120           BEQ routine
 130           LDY #&00
 140.loop      LDA message,Y
 150           JSR osasci
 160           INY
 170           CMP #&0D
 180           BNE loop
 190           RTS
 200.message   EQUS "TUBE detected!"
 210           EQUB 13
 220.routine   \ rest of program here
 230           RTS
 240]
 250 NEXT
 260 CALL mc%