-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscreenlist.seq
184 lines (164 loc) · 3.96 KB
/
screenlist.seq
1
; SCREENSHOT64 BY LUTZ BELLMANN; --------------------------------------; --------------------------------------; PRESS F7 FOR MAKING THE SCREENSHOT; --------------------------------------; KERNAL ROUTINES; ------------------IOINIT = $FF84CINT = $FF81SETNAM = $FFBDSETLFS = $FFBASETMSG = $FF90SAVE = $FFD8OPEN = $FFC0GETIN = $FFE4CHROUT = $FFD2CHRIN = $FFCF; POINTERS; ------------------POINT1 = $FBPOINT2 = $FD; DATA;-------------------FNAME = $02A7BUFFER = $02F0FNAMELEN = $02F1FINDEX = $02F2HIGHMEM = $C000EXTCOL = $D020 *= $0801 .WORD SETUP-2,2018 .BYTE $9E .TEXT " 2063:" .BYTE $00,$00,$00SETUP JSR CINT LDX #MCODELENLOOP0 LDA MCODE0,X ; MOVE INTERRUPT STA MCODE,X ; TO HIMEM DEX BPL LOOP0 LDX #$00LOOP3 LDA INFOMSG,X ; PRINT INFO JSR CHROUT ; MESSAGE INX CPX #INFOMSGLEN BNE LOOP3 LDX #$00LOOP1 LDA GETFILE,X ; PRINT WELCOME JSR CHROUT ; MESSAGE INX CPX #GETFILELEN BNE LOOP1 LDA #$00 LDY #$00LOOP2 JSR CHRIN ; GET FILENAME STA FNAME,Y ; FROM USER INY CMP #13 BNE LOOP2 DEY ; CLEAR CARRIAGE RET CPY #9 ; TRUNCATE FILELEN BCC NOT0 ; GREATER THAN 9 LDY #9NOT0 LDA #"-" ; APPEND INDEX STA FNAME,Y INY LDA #"0" STA FNAME,Y INY STY FNAMELEN; SAVE FNAME LEN LDA #"0" ; SET FILEINDEX STA FINDEX ; TO 0 SEI ; DISABLE INTERRUPTS LDA #<ISR ; CHG INTERRUPT STA $0314 LDA #>ISR STA $0315 CLI ; ENABLE INTERRUPTS RTS; TEXT PASSAGE; -----------------GETFILE = * .TEXT "ENTER FILENAME: "GETFILELEN = *-GETFILE; ---------INFOMSG = * .TEXT "SCREENSHOT64 V1.1 BY" .TEXT " LUTZ BELLMANN" .BYTE 13 .TEXT "-F7 -> SAVE SCREEN &" .TEXT " EXIT" .BYTE 13 .TEXT "-F5 -> SAVE SCREEN &" .TEXT " CONTINUE" .BYTE 13 .TEXT "-R/S,RESTORE -> BREAK" .BYTE 13INFOMSGLEN = *-INFOMSG; SAVE $400-$7E8 TO DISK;-----------------------MCODE0 = *MCODE .OFFS $C000-MCODE0SAVESCR LDA #<$EA31 ; STD VEKTOR STA $0314 LDA #>$EA31 ; WIEDERHERSTELLEN STA $0315SAVECNT LDA BUSY ; TASTE GERADE ERST CMP #$01 BEQ BREAK ; GEDRUECKT? ABBR. LDA #$01 STA BUSY ; BUSY FLAG SETZEN STA EXTCOL ; WEISSER RAND LDY FNAMELEN; FILE INDEX DEY INC FINDEX ; ERHOEHEN LDA FINDEX STA FNAME,Y ; IN DATEINAMEN LDA #$00 JSR SETMSG ; NO KERNAL MESS LDA #120 STA $CD ; DELAY CURSOR LDA FNAMELEN LDX #<FNAME ; POINTER TO LDY #>FNAME ; FILENAME JSR SETNAM ; SET FILENAME LDA #$01 LDX $BA ; CURR. DEV. NO LDY #$FF JSR SETLFS ; SET Ä# AND FILE LDA #$00 STA POINT1 LDA #$04 STA POINT1+1 ;POINTER TO VICSCR LDA #POINT1 LDX #$E8 LDY #$07 JSR SAVE ; SAVE TO DISK LDA #14 STA EXTCOL ; RESTORE COLORBREAK LDA $DC0D ; INTERRUPT BEST. PLA ; ALLES VOM TAY ; STAPEL HOLEN PLA TAX PLA RTI ; RETURN FROM IRQ; MODIFIED IRQ ROUTINE; ----------------------ISR LDA $CB ; READ KEY MATRIX CMP #$03 ; F7 PRESSED? BNE NOT1 JMP SAVESCRNOT1 CMP #$06 ; F5 PRESSED BNE NOT2 LDA BUSY CMP #$01 BEQ NOT3 JMP SAVECNTNOT2 LDA #$00 ; CLEAR STA BUSY ; BUSY FLAGNOT3 JMP $EA31 ; JMP STANDARD ÉÒÑBUSY = * .BYTE $00MCODELEN = *-MCODE