10 .OPT OBJ 20 *= $4000 30 EOL = $9B 40 ; SETUP IOCB 50 OPEN = $03 60 WRITE = $08 70 PUTREC = $09 80 PUTCHR = $0B 90 CLOSE = $0C 0100 IOCB = $0340 ;START OF IOCB 0110 ICCOM = $0342 ;COMMAND BYTE 0120 ICBAL = $0344 ;BUF ADDR LOW 0130 ICBAH = $0345 ;BUF ADDR HIGH 0140 ICBLL = $0348 ;BUF LENGTH LOW 0150 ICBLH = $0349 ;BUF LENGTH HIGH 0160 ICAX1 = $034A ;READ OR WRITE 0170 ICAX2 = $034B 0180 CIOV = $E456 0190 DEVNAM .BYTE "E:",EOL 0200 MYTEXT .BYTE "HELLO WORLD!",EOL 0210 ; 0220 OPENSCR ; OPEN SCREEN 0230 LDX #$20 ;SECOND IOCB 0240 LDA #OPEN 0250 STA ICCOM,X 0260 ; 0270 LDA #DEVNAM&255 0280 STA ICBAL,X ;LOW BYTE SCREEN 0290 LDA #DEVNAM/256 0300 STA ICBAH,X ;HIGH BYTE SCR 0310 ; 0320 ; SET SCREEN FOR WRITE OPERATION 0330 LDA #WRITE 0340 STA ICAX1,X 0350 LDA #$00 0360 STA ICAX2,X 0370 JSR CIOV 0380 ; 0390 ; SET PUT RECORD 0400 LDA #PUTREC 0410 STA ICCOM,X 0420 ; 0430 ; SET TEXT BUFFER 0440 LDA #MYTEXT&255 0450 STA ICBAL,X 0460 LDA #MYTEXT/256 0470 STA ICBAH,X 0480 ; 0490 ; PRINT MESSAGE TO SCREEN 0500 LDA #$00 0510 STA ICBLL,X 0520 LDA #$FF 0530 STA ICBLH,X 0540 ; 0550 LDA #$FF 0560 STA $02FC 0570 LOOP JSR CIOV 0580 LDA $02FC 0590 CMP #$FF 0600 BNE QUIT 0610 JMP LOOP 0620 ; 0630 ERROR BRK 0640 QUIT BRK 0650 .END