home *** CD-ROM | disk | FTP | other *** search
- ;
- ; 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
-