home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Set of Apple II Hard Drive Images
/
eric.hdv
/
SOURCE
/
FORTHSCRN.SRC.txt
< prev
next >
Wrap
Text File
|
2020-08-13
|
2KB
|
79 lines
;
; READ & PRINT FORTH SCREEN FROM DISK
; USER POKES BLOCK NUMBER (=SCRN# * 2) AT 775 & 776
; THEN CALLS 768. PROGRAM PRINTS THE SCRN, AND SETS ITSELF
; UP TO READ NEXT SEQUENTIAL SCREEN.
;
ORG $300
;
BUFFER EQU $2000
;
JMP ORIGIN
;
;PARMS FOR READ BLOCK
RBPARMS DFB $03
DFB $60 ;SLOT 6 DRIVE 1
DW BUFFER
BLOCKNUM DW $0002 ;BLOCK NUMBER
;BASIC PGM WILL POKE IN BLOCK NUMBER
;
MLIERROR JSR $FDDA
BRK
;
ORIGIN JSR $BF00
DFB $80
DW RBPARMS
BCS MLIERROR
;
JSR PRINTBUF ;PRINT 1ST HALF OF SCREEN
INC BLOCKNUM ;GET NEXT BLOCK # FOR SECOND HALF
BNE NEXTBLK
INC BLOCKNUM+1
;
NEXTBLK JSR $BF00
DFB $80
DW RBPARMS
BCS MLIERROR
;
JSR PRINTBUF
INC BLOCKNUM ;PREPARE FOR NEXT CALL
BNE NEXTBLK2
INC BLOCKNUM+1
;
NEXTBLK2 RTS
;
;
;==================================
PRINTBUF LDX #00 ;X HAS OFFSET IN BUFFER
LDY #64 ;64 CHARACTERS PER LINE
PLOOP LDA BUFFER,X
ORA #$80 ;PRINT THE BYTE
JSR $FDED
;
DEY
BNE NEXTX
LDA #$8D
JSR $FDED ;PRINT CR
LDY #64
;
NEXTX INX
BNE PLOOP
;
; NOW PRINT SECOND HALF OF BUFFER
;
LDX #00 ;X HAS OFFSET IN BUFFER
LDY #64 ;64 CHARACTERS PER LINE
PLOOP2 LDA BUFFER+$100,X
ORA #$80 ;PRINT THE BYTE
JSR $FDED
;
DEY
BNE NEXTX2
LDA #$8D
JSR $FDED ;PRINT CR
LDY #64
;
NEXTX2 INX
BNE PLOOP2
RTS