.TITLE RPLIMG ; * * * IEC-2212 SOFTWARE MODULE * * * ; REFRESHES AN IEC-2212 IMAGE ENHANCEMENT CONSOLE WITH THE IMAGE ; FILE "IMAGE.PIC" ON FLOPPY DISK IN DRIVE 1 (DX1) OR DRIVE 0 (DX0) ; DEPENDING ON THE SELECTED ENTRY POINT. ; ALL NEW CODE: 27 JULY 77 ; MODIFICATIONS TO: 16 AUGUST 77 ; PROGRAMMER: KEN DINWIDDIE .MCALL ..V2..,.REGDEF,.LOOKUP,.READW,.CLOSE ..V2.. .REGDEF .GLOBL RPLIM0,RPLIM1 ; ID-2000 REGISTER DEFINITIONS: XREG = 166000 YREG = 166002 BPMR = 166004 CSR = 166006 DREG = 166010 .PAGE .SBTTL SINGLE-BUFFERED READ LOOP RPLIM0: .LOOKUP #AREA0,#0,#IMFIL0 ; PREPARE TO READ FROM DRIVE 0 BR START RPLIM1: .LOOKUP #AREA0,#0,#IMFIL1 ; PREPARE TO READ FROM DRIVE 1 START: CLR BLK ; SET TO BEGINNING OF FILE MOV #377,R1 ; START AT TOP OF SCREEN MOV #7777,@#BPMR ; BIT PLANE MASK ALL ONE'S MOV #DREG,R3 ; DATA REGISTER ADDRESS TO R3 TST (R5)+ ; POINT TO BUFFER ADDRESS MOV (R5)+,BUFF1 ; PICK UP BUFFER POINTER FILLB: .READW #AREA0,#0,BUFF1,#4096.,BLK ; READ A BUFFER FULL ADD #20,BLK ; ADVANCE TO NEXT BLOCK MOV BUFF1,R4 ; POINT TO BUFFER #1 JSR PC,SHOW ; DISPLAY THIS BLOCK BR FILLB .PAGE .SBTTL 64-LINE INTERLACED IMAGE DISPLAY SUBROUTINE SHOW: MOV #20,R5 ; INITIALIZE BLOCK COUNTER SHOW1: MOV R1,@#YREG ; SET RASTER NUMBER CLR @#XREG ; POINT TO START OF LINE BUFFER .REPT 400 MOV (R4)+,(R3) ; LOAD LINE BUFFER WITH DATA .ENDR MOV #53,@#CSR ; SHOW THE DATA LINE WAIT: TSTB @#CSR BPL WAIT ; WAIT FOR READY BIT APPEARANCE TST R1 ; LAST LINE TO BE DISPLAYED ? BEQ DONE ; FINISH UP IF SO SUB #100,R1 ; MOVE DOWN 64 LINES BGE SHOW2 ; SKIP BIASING STEP IF STILL VIEWABLE ADD #377,R1 ; BACK NEAR TOP OF IMAGE IF WE'VE DROPPED OFF SHOW2: DEC R5 ; ACCOUNT FOR DISPLAYED RASTER BEQ SHOW3 ; QUIT IF DONE WITH THIS BLOCK JMP SHOW1 ; OR GO SHOW ANOTHER IF MORE THIS BUFFER SHOW3: RTS PC DONE: .CLOSE #0 ; CLOSE THE DISK CHANNEL TST (SP)+ ; BUMP THE STACK POINTER UP ONE RTS PC ; AND RETURN TO THE CALLING PROGRAM .PAGE .SBTTL DATA BUFFERS, POINTERS, CONSTANTS, ETC. BLK: .WORD 0 ; BLOCK COUNTER FOR DISK ACCESS IMFIL0: .RAD50 /DX0IMAGE PIC/ ; IMAGE INPUT FILE SPECIFICATION FOR DRIVE 0 IMFIL1: .RAD50 /DX1IMAGE PIC/ ; IMAGE INPUT FILE SPECIFICATION FOR DRIVE 1 AREA0: .BLKW 6 BUFF1: .WORD 0 ; SPACE FOR BUFFER #1 POINTER .END