home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
A.N.A.L.O.G. Magazine 1985 December
/
85_dec.atr
/
bootprog.asm
< prev
next >
Wrap
Assembly Source File
|
2023-02-26
|
5KB
|
1 lines
0100 .OPT NOLIST¢0110 COLOR4 = $02C8¢0120 ICCMD = $0342¢0130 ICSTA = $0343¢0140 ICBAL = $0344¢0150 ICBAH = $0345¢0160 ICBLL = $0348¢0170 ICBLH = $0349¢0180 ICAX1 = $034A¢0190 ICAX2 = $034B¢0200 CIOV = $E456¢0210 ;¢0220 ;SET STARTING ADDRESS¢0230 ;¢0240 *= $6000¢0250 ;¢0260 ;NOW OPEN KEYBOARD FOR INPUT¢0270 ;¢0280 CLD ;BINARY MODE!¢0290 LDX #$10 ;IOCB #1¢0300 LDA #$03 ;SET FOR...¢0310 STA ICCMD,X ;OPEN COMMAND¢0320 LDA #KEYBD/256 ;POINT TO...¢0330 STA ICBAH,X ;K: TEXT...¢0340 LDA #KEYBD&255 ;FOR OPEN...¢0350 STA ICBAL,X ;OPERATION¢0360 LDA #$04 ;SET FILE...¢0370 STA ICAX1,X ;FOR INPUT¢0380 LDA #$00 ;AND CLEAR...¢0390 STA ICAX2,X ;ICAX2!¢0400 JSR CIOV ;OPEN THE KEYBD!¢0410 BMI OPNERR ;BRANCH IF ERR!¢0420 ;¢0430 ;KEYBOARD'S OPEN, PRINT PROMPT!¢0440 ;¢0450 LDX #$00 ;IOCB #0 (SCREEN)¢0460 LDA #$09 ;SET COMMAND...¢0470 STA ICCMD,X ;FOR PUT RECORD¢0480 LDA #PROMPT/256 ;POINT TO...¢0490 STA ICBAH,X ;STARTING...¢0500 LDA #PROMPT&255 ;PROMPT...¢0510 STA ICBAL,X ;MESSAGE¢0520 LDA #$FF ;SET FOR...¢0530 STA ICBLL,X ;MAXIMUM TEXT...¢0540 STA ICBLH,X ;LENGTH¢0550 JSR CIOV ;PRINT IT!¢0560 BMI PRTERR ;BRANCH IF ERROR¢0570 ;¢0580 ;NOW ACCEPT A STRING FROM KEYBD¢0590 ;¢0600 GETTXT LDX #$10 ;IOCB #1 (KEYBD)¢0610 LDA #$05 ;SET UP...¢0620 STA ICCMD,X ;GET RECORD CMD¢0630 LDA #INBUF/256 ;POINT TO...¢0640 STA ICBAH,X ;THE TEXT...¢0650 LDA #INBUF&255 ;INPUT...¢0660 STA ICBAL,X ;BUFFER¢0670 LDA #40 ;ALLOW MAXIMUM...¢0680 STA ICBLL,X ;OF 40 BYTES...¢0690 LDA #0 ;ON THE...¢0700 STA ICBLH,X ;INPUT OPERATION¢0710 JSR CIOV ;GET TEXT!¢0720 BMI GETERR ;OOPS!¢0730 ;¢0740 ;NOW REPEAT IT BACK TO USER!¢0750 ;¢0760 LDX #$00 ;IOCB #0 (SCREEN)¢0770 LDA #$09 ;SET UP FOR...¢0780 STA ICCMD,X ;PUT RECORD¢0790 LDA #INBUF/256 ;POINT TO THE...¢0800 STA ICBAH,X ;TEXT THE...¢0810 LDA #INBUF&255 ;USER JUST...¢0820 STA ICBAL,X ;TYPED IN¢0830 LDA #40 ;WE KNOW THERE...¢0840 STA ICBLL,X ;WON'T BE MORE...¢0850 LDA #0 ;THAN 40 BYTES!¢0860 STA ICBLH,X¢0870 JSR CIOV ;REPEAT TEXT!¢0880 BMI PRTERR ;ERROR!¢0890 JMP GETTXT ;LOOP FOR MORE¢0900 ;¢0910 ;HERE ARE THE ERROR HANDLERS¢0920 ;---------------------------¢0930 ;¢0940 ;KEYBOARD OPEN ERROR¢0950 ;¢0960 OPNERR LDX #$00 ;IOCB #0 (SCREEN)¢0970 LDA #$09 ;SET FOR...¢0980 STA ICCMD,X ;PUT RECORD¢0990 LDA #OEMSG/256 ;POINT TO...¢1000 STA ICBAH,X ;KEYBOARD OPEN...¢1010 LDA #OEMSG&255 ;ERROR MESSAGE¢1020 STA ICBAL,X¢1030 LDA #$FF ;SET LENGTH...¢1040 STA ICBLL,X ;TO MAXIMUM¢1050 STA ICBLH,X¢1060 JSR CIOV ;PRINT MESSAGE!¢1070 BMI PRTERR ;BRANCH IF ERROR¢1080 BRK ;AND EXIT!¢1090 ;¢1100 ;TEXT PRINT ERROR¢1110 ;¢1120 PRTERR LDA #$34 ;PUT RED...¢1130 STA COLOR4 ;IN BACKGND COLOR¢1140 JMP FINISH ;AND EXIT!¢1150 ;¢1160 ;INPUT ERROR¢1170 ;¢1180 GETERR CPY #136 ;ERROR #136?¢1190 BNE NOTEOF ;NO, NOT EOF.¢1200 FINISH LDX #$10 ;GOT EOF...¢1210 LDA #$0C ;CLOSE THE...¢1220 STA ICCMD,X ;KEYBOARD...¢1230 JSR CIOV¢1240 BRK ;AND EXIT!¢1250 NOTEOF CPY #128 ;ERROR #128?¢1260 BNE NOTBRK ;NO, NOT BREAK¢1270 LDX #$00 ;IOCB #0 (SCREEN)¢1280 LDA #$09 ;PUT RECORD¢1290 STA ICCMD,X¢1300 LDA #BRKMSG/256 ;POINT TO...¢1310 STA ICBAH,X ;BREAK KEY...¢1320 LDA #BRKMSG&255 ;ERROR MESSAGE¢1330 STA ICBAL,X¢1340 LDA #$FF ;SET FOR...¢1350 STA ICBLL,X ;MAXIMUM...¢1360 STA ICBLH,X ;TEXT LENGTH¢1370 JSR CIOV ;PRINT IT,¢1380 JMP GETTXT ;GO GET TEXT.¢1390 NOTBRK CPY #137 ;TRUNCATED?¢1400 BNE NOTTRN ;NO, NOT BREAK¢1410 LDX #$00 ;IOCB #0 (SCREEN)¢1420 LDA #$09 ;PUT RECORD¢1430 STA ICCMD,X¢1440 LDA #TRNMSG/256 ;POINT TO...¢1450 STA ICBAH,X ;TRUNCATION...¢1460 LDA #TRNMSG&255 ;ERROR MESSAGE¢1470 STA ICBAL,X¢1480 LDA #$FF ;SET FOR...¢1490 STA ICBLL,X ;MAXIMUM...¢1500 STA ICBLH,X ;TEXT LENGTH¢1510 JSR CIOV ;PRINT IT,¢1520 JMP GETTXT ;GO GET TEXT.¢1530 NOTTRN LDX #$00 ;IT'S ANOTHER...¢1540 LDA #$09 ;ERROR, SO...¢1550 STA ICCMD,X ;LET'S PRINT...¢1560 LDA #OTHER/256 ;A MESSAGE...¢1570 STA ICBAH,X ;INFORMING...¢1580 LDA #OTHER&255 ;THE USER.¢1590 STA ICBAL,X¢1600 LDA #$FF¢1610 STA ICBLL,X¢1620 STA ICBLH,X¢1630 JSR CIOV ;PRINT MESSAGE¢1640 JMP GETTXT ;GET MORE TEXT!¢1650 ;¢1660 ;HERE ARE THE TEXT MESSAGES¢1670 ;¢1680 PROMPT .BYTE "ENTER TEXT, CTRL-3 TO EXIT",$9B¢1690 OEMSG .BYTE "*** KEYBOARD OPEN ERROR ***",$9B¢1700 BRKMSG .BYTE "*** DON'T PRESS THE BREAK KEY! ***",$9B¢1710 TRNMSG .BYTE "*** TEXT TOO LONG! ***",$9B¢1720 OTHER .BYTE "*** UNKNOWN ERROR!!! ***",$9B¢1730 ;¢1740 ;MISCELLANEOUS DATA¢1750 ;¢1760 KEYBD .BYTE "K:",$9B¢1770 INBUF *=*+40¢1780 .END¢