home *** CD-ROM | disk | FTP | other *** search
/ A.N.A.L.O.G. Magazine 1985 December / 85_dec.atr / bootprog.asm < prev    next >
Assembly Source File  |  2023-02-26  |  5KB  |  1 lines

  1. 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¢