0100 ;SAVE#D:SPYPT4.M65 0110 ; 0120 ;-------------------; 0130 ; Secret Agent ; 0140 ; By: Barry Kolbe ; 0150 ; Disk I/O routines ; 0160 ; (c) 1988 ; 0170 ;-------------------; 0180 ; 0190 ;CIO equates 0200 ; 0210 ICCOM = $0342 ;command 0220 ICBAL = $0344 ;buffer address 0230 ICBAH = $0345 0240 ICBLL = $0348 ;buffer length 0250 ICBLH = $0349 0260 AUX1 = $034A ;type access 0270 AUX2 = $034B 0280 CIO = $E456 0290 ; 0300 SVEGAM JSR CLOSE1 ;close IOCB 1 0310 LDA #3 ;open 0320 LDX #$10 ;channel 1 0330 STA ICCOM,X 0340 LDA #8 ;to write 0350 STA AUX1,X 0360 LDA # FNAM 0390 STA ICBAH,X 0400 LDA #0 0410 STA AUX2,X 0420 JSR CIO ;open it! 0430 BMI IOERR ;show error 0440 LDA #$0B ;put bytes 0450 LDX #$10 ;channel 1 0460 STA ICCOM,X 0470 LDA # SAVST 0500 STA ICBAH,X 0510 LDA # <[SAVEN-SAVST+1] 0520 STA ICBLL,X ;number of 0530 LDA # >[SAVEN-SAVST+1] 0540 STA ICBLH,X ;bytes 0550 JSR CIO ;save data 0560 BMI IOERR ;woops! 0570 IODON PRINT M2 ;'done' 0580 JSR CLOSE1 ;close file 0590 RTS 0600 IOERR JSR CLOSE1 ;close IOCB 1 0610 PRINT IOMSG ;say 'Error' 0620 RTS 0630 ; 0640 CLOSE1 LDX #$10 ;close IOCB 1 0650 LDA #$0C ;close commnd 0660 STA ICCOM,X 0670 JSR CIO 0680 RTS 0690 ; 0700 LOADGAM JSR CLOSE1 ;close IOCB 1 0710 LDA #3 ;open 0720 LDX #$10 0730 STA ICCOM,X 0740 LDA # FNAM 0770 STA ICBAH,X 0780 LDA #0 0790 STA AUX2,X 0800 LDA #4 ;read 0810 STA AUX1,X 0820 JSR CIO 0830 IOJ BMI IOERR ;'Error' 0840 LDA #7 ;get bytes 0850 LDX #$10 0860 STA ICCOM,X 0870 LDA # SAVST 0900 STA ICBAH,X ;get number 0910 LDA # <[SAVEN-SAVST+1] 0920 STA ICBLL,X ;of bytes 0930 LDA # >[SAVEN-SAVST+1] 0940 STA ICBLH,X 0950 JSR CIO 0960 BMI IOJ ;'Error' 0970 ; 0980 ;Reset proper Message 0990 ; 1000 LDA FJ ;robot dead? 1010 BEQ RBK ;yes 1020 LDA # D1A 1050 STA ROBROM+1 1060 JMP IODON 1070 RBK LDA # D1F 1100 STA ROBROM+1 1110 JMP IODON 1120 ; 1130 FNAM .BYTE "D:SPY.DAT",EOL 1140 IOMSG .BYTE "File error. ",0