nep.pgelhausen@AMES-VMSB.ARPA (02/01/86)
I am having a problem. The following program SHOULD re-instate
an OSS "supercartridge" after being 'removed' by a similar program
(the only differences are between the SEI and the CLI). When I
enter Action! from OS/A+ after turning the cart off & on w/ these
programs, I get MUCH garbage on screen (pretty lights, different
modes on each line!) & have to re-boot.
I am not too good w/ assembly language & a borrowed entirely
some code from a similar program for turning the XL basics
on & off (published as DATA statements in Compute! & hand dis-
assembled.
Could someone tell me what I'm doing wrong here??
-Richard Hartman
max.hartman@ames-vmsb
;
; TURNON -- RESTORES AN OSS SUPERCART
; "REMOVED" WITH TURNOFF
;
; COPYRIGHT RICHARD M. HARTMAN
; JAN 1986
;
SAVBNK = $CF ; UNUSED BY OS
CLKLO = 20 ; LO BYTE OF CLOCK
CURBNK = $AFFF ; SUPERCART BANK
RAMTOP = $6A ;
SEL = $D500 ; START OF BANK "SWITCHES"
ISCART = $03FA ; IS CART IN?
;
ORG $0600 ; PAGE SIX
;
START LDA CLKLO
TOP CMP CLKLO
BEQ TOP ; WAIT FOR CLOCK TO CHANGE
;
SEI ; DISABLE INTERUPTS
;
LDX SAVBNK ; RECALL SAVED BANK #
STA SEL,X ; RE-INSTALL CART
;
LDA #1
STA ISCART ; TELL OS CART IS IN
LDA $A0
STA RAMTOP ; WE HAVE LESSMORE MEMORY NOW
;
CLI ; RE-ENABLE INTERUPTS
;
; CLOSE & REOPEN SCREEN DEVICE
; (DEVICE #0) TO RESET SCREEN TO
; NEW TOP OF RAM. THESE NUMBERS
; LIFTED FROM BASIC DATA STATEMENTS
; IN NOV '85 COMPUTE! MAGAZINE'S
; "INSIGHT: ATARI" COLUMN, WHICH
; SHOWED HOW TO DISABLE THE BUILT-IN
; BASIC IN THE XL/XE SERIES ATARIS.
;
LDA #03 ; OPEN
STA $0342 ; DEV 0 COMMAND BYTE
LDA #LOW EDEV ; DEV NAME LOW
STA $0344
LDA #HIGH EDEV ; DEV NAME HI
STA $0345
LDX $00 ; AUX
JMP $E456 ; OPEN SCREEN DEV
; PERHAPS JSR INSTEAD?
RTS ; UNUSED IF ABOVE IS JMP
EDEV DB 'E:',0
------