home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Antic Magazine 1989 April
/
Antic_Magazine_1989_04_Antic_Side_A.atr
/
minimon.m65
< prev
next >
Wrap
Text File
|
2023-02-26
|
8KB
|
1 lines
0100 ; MINIMON¢0110 ; BY JOE KIMBROUGH¢0120 ; (c)1988, ANTIC PUBLISHING INC.¢0130 AFP = $D800¢0140 BUFF1 = $0500¢0150 CH = $02FC¢0160 COLCRS = $55¢0170 CONSOL = $D01F¢0180 EOL = $9B¢0190 FASC = $D8E6¢0200 FPI = $D9D2¢0210 IFP = $D9AA¢0220 INVFLG = $02B6¢0230 KGB = $F2FD¢0240 OUTCHAR = $F2B0¢0250 PR2 = $34F3¢0260 ROWCRS = $54¢0270 ;¢0280 *= $3400¢0290 STARTCODE¢0300 LDA $FCD8 ;800 or XL/XE?¢0310 CMP #$A2¢0320 BNE MAIN.MENU ;If not 800 then proceed¢0330 LDA #$E2¢0340 STA OS.MOD.1+1¢0350 LDA #$A4¢0360 STA OS.MOD.2+1¢0370 LDA #$F6¢0380 STA OS.MOD.1+2¢0390 STA OS.MOD.2+2¢0400 MAIN.MENU¢0410 LDY #$00¢0420 LOOP.1¢0430 LDA MENU.TEXT,Y ;Print main menu¢0440 JSR PRINT.CHAR¢0450 INY ¢0460 CPY #$56¢0470 BNE LOOP.1¢0480 ;¢0490 PUTCUR¢0500 LDA #$15 ;Place cursor¢0510 STA COLCRS¢0520 LDA #$0C¢0530 STA ROWCRS¢0540 LDA #$20¢0550 JSR PRINT.CHAR¢0560 JSR GET.CHAR ;Get menu choice¢0570 CMP #'1¢0580 BNE DPE1¢0590 ;¢0600 JMP DOSPOKE ;Go to DOSPOKE¢0610 ;¢0620 DPE1¢0630 CMP #$32¢0640 BNE DPE2¢0650 ;¢0660 JMP DOSPEEK ;Go to DOSPEEK¢0670 ;¢0680 DPE2¢0690 CMP #'3¢0700 BNE PUTCUR¢0710 ;¢0720 LDA #$0C ;Store keycode for EOL in CH for¢0730 STA CH ;auto-[RETURN] after going back to DOS¢0740 RTS ¢0750 ;¢0760 DOSPOKE¢0770 LDY #$05 ;Clear ASCII input buffer¢0780 LDA #$00¢0790 LOOP.2¢0800 STA BUFF1,Y¢0810 DEY ¢0820 BNE LOOP.2¢0830 ;¢0840 LDY #$00¢0850 LOOP.3¢0860 LDA DOSPOKE.TEXT,Y ;Print DOSPOKE screen¢0870 JSR PRINT.CHAR¢0880 INY ¢0890 CPY #$3B¢0900 BNE LOOP.3¢0910 ;¢0920 LDA #$14 ;Place cursor¢0930 STA COLCRS¢0940 LDA #$01¢0950 STA ROWCRS¢0960 LDA #$20¢0970 JSR PRINT.CHAR¢0980 LDA #$03 ;Limit input to 3 digits¢0990 STA $CF¢1000 JSR KEYBD.INP ;Get POKE value [ASC->INT]¢1010 LDA $CC ;Hi-byte > $FF ?¢1020 BNE DOSPOKE ;If not 0, then start over.¢1030 LDA $CB ;Store low byte¢1040 STA $CE¢1050 LDA #$14 ;Place cursor¢1060 STA COLCRS¢1070 LDA #$03¢1080 STA ROWCRS¢1090 LDA #$20¢1100 JSR PRINT.CHAR¢1110 LDA #$05 ;Limit input to 5 digits¢1120 STA $CF¢1130 JSR KEYBD.INP ;Get address [ASC->INT]¢1140 LDY #$00¢1150 LDA $CE ;Get stored INT¢1160 STA ($CB),Y ;Put in addr.¢1170 JMP DOSPOKE ;Go back¢1180 ;¢1190 DOSPEEK¢1200 LDY #$05 ;Clear ASCII input buffer¢1210 LDA #$00¢1220 LOOP.4¢1230 STA BUFF1,Y¢1240 DEY ¢1250 BNE LOOP.4¢1260 ;¢1270 LDY #$00¢1280 LOOP.5¢1290 LDA DOSPEEK.TEXT,Y ;Print DOSPEEK screen¢1300 JSR PRINT.CHAR¢1310 INY ¢1320 CPY #$64¢1330 BNE LOOP.5¢1340 ;¢1350 LDA #$10 ;Place cursor¢1360 STA COLCRS¢1370 LDA #$02¢1380 STA ROWCRS¢1390 LDA #$20¢1400 JSR PRINT.CHAR¢1410 LDA #$05 ;Limit input to 5 digits¢1420 STA $CF¢1430 JSR KEYBD.INP ;Get address [ASC->INT]¢1440 LDA #$10 ;Place cursor¢1450 STA COLCRS¢1460 LDA #$04¢1470 STA ROWCRS¢1480 LDA #$20¢1490 JSR PRINT.CHAR¢1500 LDY #$00¢1510 LDA ($CB),Y ;Get contents of address¢1520 STA $D4 ;Store lo-byte in FR0¢1530 LDA #$00¢1540 STA $D5 ;Put $00 in high byte FR0¢1550 JSR IFP ;Convert INT->FP¢1560 JSR FASC ;Convert FP->ASC¢1570 LDA $0580 ;Print ASCII¢1580 CMP #$30¢1590 BNE PR1¢1600 ;¢1610 INC PR2¢1620 PR1¢1630 LDY #$00¢1640 CPJ3¢1650 LDA $0580,Y¢1660 CMP #$80¢1670 BCC CPJ1¢1680 ;¢1690 EOR #$80¢1700 CPJ1¢1710 CMP #$2E¢1720 BEQ CPJ2¢1730 ;¢1740 JSR PRINT.CHAR¢1750 INY ¢1760 CPY #$07¢1770 BNE CPJ3¢1780 ;¢1790 CPJ2¢1800 LDA #$80¢1810 STA PR2¢1820 LDY #$06 ;Clear ASCII output buffer¢1830 LDA #$20¢1840 LOOP.6¢1850 STA $0580,Y¢1860 DEY ¢1870 BNE LOOP.6¢1880 ;¢1890 LDA #$9B¢1900 JSR PRINT.CHAR¢1910 CHECK.CONSOLE¢1920 LDA CONSOL ;Check console keys¢1930 CMP #$03 ;Is it OPTION?¢1940 BNE CHECK.START¢1950 ;¢1960 JMP MAIN.MENU¢1970 ;¢1980 CHECK.START¢1990 CMP #$06 ;Is it START?¢2000 BNE CHECK.CONSOLE¢2010 ;¢2020 JMP DOSPEEK ;Re-run DOSPEEK¢2030 ;¢2040 ; -----------------------------¢2050 ; Keyboard Input/ASCII->Integer¢2060 ; -----------------------------¢2070 KEYBD.INP¢2080 LDY #$00¢2090 GET.KEY¢2100 JSR GET.CHAR ;Get a key¢2110 CMP #$1B ;Is it ESC?¢2120 BNE CPJ4 ;If not, go on¢2130 ;¢2140 PLA ;Clear stack of¢2150 PLA ;return addr.¢2160 JMP MAIN.MENU¢2170 CPJ4¢2180 CMP #$9B¢2190 BEQ END.OF.LINE¢2200 ;¢2210 CMP #$7E ;Backspace¢2220 BNE CHK9¢2230 ;¢2240 TAX ¢2250 DEY ¢2260 LDA #$00¢2270 STA BUFF1,Y¢2280 TXA ¢2290 CPY #$FF ; Limit cursor travel¢2300 BEQ KEYBD.INP¢2310 ;¢2320 JSR PRINT.CHAR¢2330 JMP GET.KEY¢2340 ;¢2350 CHK9¢2360 CMP #$3A ; Is it >9?¢2370 BCS GET.KEY ; If so, go back¢2380 ;¢2390 CMP #$30 ; Is it <0?¢2400 BCC GET.KEY ; If so, go back¢2410 ;¢2420 CPY $CF ;Check inp limit¢2430 BNE DO.BUFFR¢2440 ;¢2450 LDA #$9B¢2460 JMP END.OF.LINE¢2470 ;¢2480 DO.BUFFR¢2490 JSR PRINT.CHAR¢2500 STA BUFF1,Y ; Store digit in ASCII buffer¢2510 INY ¢2520 JMP GET.KEY¢2530 ;¢2540 END.OF.LINE¢2550 JSR PRINT.CHAR¢2560 LDA #$00 ;Set up FR0¢2570 STA $F2¢2580 STA $F3¢2590 LDA #$05¢2600 STA $F4¢2610 JSR AFP ; ASC -> FP¢2620 JSR FPI ; FP -> INT¢2630 LDA $D4 ; Get lo-byte¢2640 STA $CB¢2650 LDA $D5 ; Get hi-byte¢2660 STA $CC¢2670 RTS ¢2680 ;¢2690 ;---------------¢2700 ; I/O ROUTINES¢2710 ;---------------¢2720 GET.CHAR¢2730 STY $CD ;Save Y¢2740 OS.MOD.1¢2750 JSR KGB ;Get char¢2760 CMP #$A0 ;Inverse video?¢2770 BCC NO.INV.VIDEO¢2780 ;¢2790 EOR #$80 ;Fix inv. video¢2800 NO.INV.VIDEO¢2810 LDX #$00 ;Disable inverse video key¢2820 STX INVFLG¢2830 LDY $CD ;Restore Y¢2840 RTS ¢2850 ;¢2860 PRINT.CHAR¢2870 STY $CD ;Save Y¢2880 OS.MOD.2¢2890 JSR OUTCHAR ;Print char¢2900 LDY $CD ;Restore Y¢2910 RTS ¢2920 ;¢2930 ; ------ TEXT --------¢2940 ;¢2950 MENU.TEXT¢2960 .BYTE "}",EOL¢2970 .BYTE " גנצá"¢2980 .BYTE "סדדי»סניד",EOL,EOL¢2990 .BYTE EOL,EOL,EOL¢3000 .BYTE "õ DOSPOKE",EOL,EOL¢3010 .BYTE "Ø DOSPEEK",EOL,EOL¢3020 .BYTE "ø EXIT TO DOS",EOL,EOL¢3030 .BYTE "Your choice: ",EOL¢3040 DOSPOKE.TEXT¢3050 .BYTE "}",EOL¢3060 .BYTE "Poke the integer:",EOL,EOL¢3070 .BYTE "Into the address:",EOL,EOL,EOL¢3080 .BYTE "Press דצב to exit",EOL¢3090 DOSPEEK.TEXT¢3100 .BYTE "}[Press דצב to abort input]",EOL,EOL¢3110 .BYTE "Peek address:",EOL,EOL¢3120 .BYTE "Holds number:",EOL,EOL,EOL¢3130 .BYTE "נסקחנמ Main menu",EOL,EOL¢3140 .BYTE "צקIJפק Re-run DOSPEEK",EOL¢3150 *= $02E0¢3160 .WORD STARTCODE¢3170 .END ¢əəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəə