URL
https://opencores.org/ocsvn/System09/System09/trunk
Subversion Repositories System09
Compare Revisions
- This comparison shows the changes necessary to convert path
/System09/trunk
- from Rev 183 to Rev 184
- ↔ Reverse comparison
Rev 183 → Rev 184
/src/Flex9/flex9ram.asm
9,5 → 9,5
INCLUDE "f9-cli.asm" |
INCLUDE "f9-monio.asm" |
INCLUDE "f9-fms.asm" |
INCLUDE "f9-monex.asm" |
INCLUDE "f9-monex.txt" |
END COLDS |
/src/Flex9/flex9ram.lst
1,4009 → 1,4822
Assembler release DWC_2.0 version 2.11 |
May 6, 2004 (c) Motorola (free ware) |
0001 NAM FLEX SOURCE |
0000 INCLUDE "f9-moneq.txt" |
|
|
f9-moneq.txt page 2 |
0002 * |
0003 *************************************************** |
0004 * MEMORY MAP EQUATES * |
0005 *************************************************** |
0006 E000 MONIO EQU $E000 I/O SPACE |
0007 DFC0 MONRAM EQU $DFC0 STACK SPACE |
0008 F800 MONROM EQU $F800 START OF ROM |
0009 F000 MONEXT EQU $F000 EXTENDED COMMANDS |
0010 *MONEXT EQU $1000 EXTENDED COMMANDS |
0011 * |
0012 *************************************************** |
0013 * SYS09BUG VARIABLE SPACE |
0014 *************************************************** |
0015 * |
0016 DFC0 STACK EQU MONRAM+0 TOP OF INTERNAL STACK / USER VECTOR |
0017 DFC2 SWI3 EQU MONRAM+2 SOFTWARE INTERRUPT VECTOR #3 |
0018 DFC4 SWI2 EQU MONRAM+4 SOFTWARE INTERRUPT VECTOR #2 |
0019 DFC6 FIRQ EQU MONRAM+6 FAST INTERRUPT VECTOR |
0020 DFC8 IRQ EQU MONRAM+8 INTERRUPT VECTOR |
0021 DFCA SWI EQU MONRAM+10 SOFTWARE INTERRUPT VECTOR |
0022 DFCC SVCVO EQU MONRAM+12 SUPERVISOR CALL VECTOR ORGIN |
0023 DFCE SVCVL EQU MONRAM+14 SUPERVISOR CALL VECTOR LIMIT |
0024 DFD0 LRARAM EQU MONRAM+16 LRA ADDRESSES |
0025 DFE0 CPORT EQU MONRAM+32 RE-VECTORABLE CONTROL PORT |
0026 DFE2 ECHO EQU MONRAM+34 ECHO FLAG |
0027 DFE3 BPTBL EQU MONRAM+35 BREAKPOINT TABLE BASE ADDR |
0028 ************************************************** |
0029 * VDU BYTES * |
0030 ************************************************** |
0031 * |
0032 **** ALWAYS KEEP COLADX AND ROWADX TOGETHER ****** |
0033 DFFB COLADX EQU MONRAM+59 CURSOR COLUMN |
0034 DFFC ROWADX EQU MONRAM+60 CURSOR ROW |
0035 ************************************************** |
0036 * |
0037 DFFD NEWROW EQU MONRAM+61 NEW ROW TEMP FOR ESCAPE |
0038 DFFE ESCFLG EQU MONRAM+62 ESCAPE SEQUENCE ACTIVE |
0039 * |
0040 *************************************************** |
0041 * SERIAL PORT * |
0042 *************************************************** |
0043 * |
0044 E000 ACIAS EQU MONIO+$00 CONTROL PORT |
0045 * |
0046 *************************************************** |
0047 * PS/2 KEYBOARD PORT * |
0048 *************************************************** |
0049 * |
0050 E020 PS2KBD EQU MONIO+$20 PS/2 KEYBOARD PORT |
0051 * |
0052 *************************************************** |
0053 * ADM3A DISPLAY DRIVER VARIABLES * |
0054 *************************************************** |
0055 * |
0056 ** VIDEO DISPLAY DEFINITIONS |
0057 * |
0058 E030 VDU EQU MONIO+$30 |
0059 0000 VDUCHR EQU 0 CHARACTER REGISTER |
0060 0001 VDUATT EQU 1 ATTRIBUTE REGISTER |
0061 0002 VDUCOL EQU 2 CURSOR COLUMN |
0062 0003 VDUROW EQU 3 CURSOR ROW |
0063 0004 VDUOFF EQU 4 ROW OFFSET |
0064 * |
0065 0050 LINLEN EQU 80 LENGTH OF A LINE |
0066 0019 NUMLIN EQU 25 NUMBER OF LINES |
0067 * |
0068 *************************************************** |
0069 * Serial PROM register |
0070 *************************************************** |
0071 * |
0072 ** CONFIGURATION PROM DEFINITIONS |
0073 * |
0074 E0C0 PROMREG EQU MONIO+$C0 |
0075 0001 PCLKHI EQU $01 Toggle PROM Clock High |
0076 0000 PCLKLO EQU $00 Toggle PROM Clock Low |
0077 0002 PRSTHI EQU $02 Toggle PROM Reset High |
0078 0000 PRSTLO EQU $00 Toggle PROM Reset Low |
0079 AA55 SYNCHI EQU $AA55 Synch Pattern High Word |
0080 FF00 SYNCLO EQU $FF00 Synch Pattern Low Word |
0081 * |
0082 * |
0083 *************************************************** |
0084 * Dynamic Address Translation Registers |
0085 *************************************************** |
0086 * |
0087 ** DAT Table |
0088 * |
0089 FFF0 IC11 EQU $FFF0 DAT RAM CHIP |
0090 * |
0091 *************************************************** |
0092 * START OF ROM * |
0093 *************************************************** |
0094 * |
0095 F800 MONITV EQU MONROM+0 FDB MONITOR |
0096 F802 NXTCMV EQU MONROM+2 FDB NEXTCMD |
0097 F804 INCHV EQU MONROM+4 FDB INCH |
0098 F806 INCHEV EQU MONROM+6 FDB INCHE |
0099 F808 INCHKV EQU MONROM+8 FDB INCHEK |
0100 F80A OUTCHV EQU MONROM+10 FDB OUTCH |
0101 F80C PDATAV EQU MONROM+12 FDB PDATA |
0102 F80E PCRLFV EQU MONROM+14 FDB PCRLF |
0103 F810 PSTRGV EQU MONROM+16 FDB PSTRNG |
0104 F812 LRAV EQU MONROM+18 FDB LRA |
0002 END |
0000 INCLUDE "f9-equ.txt" |
0001 0000 Z0000 EQU $0000 |
0002 0005 Z0005 EQU $0005 |
0003 0044 Z0044 EQU $0044 |
0004 00A0 Z00A0 EQU $00A0 |
0005 C07F ZC07F EQU $C07F |
0006 C080 LINBUF EQU $C080 |
0007 C0FF ZC0FF EQU $C0FF |
0003 END |
0000 INCLUDE "f9-spool.txt" |
0001 * |
0002 ** PRINTER SPOOLING |
0003 * |
0004 C700 ORG $C700 |
0005 C700 7E C7 21 PRSPL1 JMP ZC721 |
0006 C703 7E C7 03 PRSPL2 JMP * |
0007 C706 7E C7 47 PRSPL3 JMP ZC747 |
0008 C709 7E C7 85 PRSPL4 JMP ZC785 |
0009 C70C 7E C7 95 PRSPL5 JMP ZC795 |
0010 C70F 7E C7 1F PRSPL6 JMP ZC71F |
0011 * |
0012 ** SPOOLER SCRATCH AREA |
0013 * |
0014 C712 0C 00 00 00 00 C8 ZC712 FCB $0C,$00,$00,$00,$00,$C8,$10 |
10 |
0015 C719 C8 10 ZC719 FCB $C8,$10 |
0016 C71B 00 QCNT FCB $00 |
0017 C71C 00 ZC71C FCB $00 |
0018 C71D 00 ZC71D FCB $00 |
0019 C71E 00 ZC71E FCB $00 |
0020 * |
0021 C71F 3B ZC71F RTI |
0022 C720 12 NOP |
0023 * |
0024 C721 1A 10 ZC721 ORCC #$10 |
0025 C723 BE CC 31 LDX ZCC31 |
0026 C726 10 EF 02 STS 2,X |
0027 C729 7D CC 34 TST ZCC34 |
0028 C72C 26 11 BNE ZC73F |
0029 C72E 8E CC FC LDX #ZCCFC |
0030 C731 7C CC 34 INC ZCC34 |
0031 C734 6D 84 TST ,X |
0032 C736 27 07 BEQ ZC73F |
0033 C738 BF CC 31 ZC738 STX ZCC31 |
0034 C73B 10 EE 02 LDS $02,X |
0035 C73E 3B RTI |
0036 * |
0037 C73F 8E CC F8 ZC73F LDX #ZCCF8 |
0038 C742 7F CC 34 CLR ZCC34 |
0039 C745 20 F1 BRA ZC738 |
0040 * |
0041 C747 1A 10 ZC747 ORCC #$10 |
0042 C749 7D C7 1B TST QCNT |
0043 C74C 27 29 BEQ ZC777 |
0044 C74E BE C7 19 LDX ZC719 |
0045 C751 A6 84 LDA ,X |
0046 C753 34 02 PSHS A |
0047 C755 EC 01 LDD $01,X |
0048 C757 8E CA C0 LDX #ZCAC0 |
0049 C75A ED 88 40 STD $40,X |
0050 C75D 35 02 PULS A |
0051 C75F A7 03 STA $03,X |
0052 C761 6F 84 CLR ,X |
0053 C763 86 01 LDA #$01 |
0054 C765 A7 02 STA $02,X |
0055 C767 6F 88 22 CLR $22,X |
0056 C76A 6F 88 3B CLR $3B,X |
0057 C76D 7D C7 1E ZC76D TST ZC71E |
0058 C770 27 29 BEQ ZC79B |
0059 C772 11 3F SWI3 |
0060 C774 12 NOP |
0061 C775 20 F6 BRA ZC76D |
0062 * |
0063 C777 1C EF ZC777 ANDCC #$EF |
0064 C779 AD 9F D3 ED ZC779 JSR [TOFVEC] |
0065 C77D 7F CC FC CLR ZCCFC |
0066 C780 11 3F SWI3 |
0067 C782 12 NOP |
0068 C783 20 F4 BRA ZC779 |
0069 * |
0070 C785 1A 10 ZC785 ORCC #$10 |
0071 C787 7D CC 30 TST ZCC30 |
0072 C78A 27 05 BEQ ZC791 |
0073 C78C 11 3F SWI3 |
0074 C78E 12 NOP |
0075 C78F 20 F4 BRA ZC785 |
0076 * |
0077 C791 7C CC 30 ZC791 INC ZCC30 |
0078 C794 39 RTS |
0079 * |
0080 C795 7F CC 30 ZC795 CLR ZCC30 |
0081 C798 1C EF ANDCC #$EF |
0082 C79A 39 RTS |
0083 * |
0084 C79B 7D C7 1D ZC79B TST ZC71D |
0085 C79E 26 27 BNE ZC7C7 |
0086 C7A0 8E CA C0 LDX #ZCAC0 |
0087 C7A3 BD D4 06 JSR FMS |
0088 C7A6 26 1F BNE ZC7C7 |
0089 C7A8 7D C7 1C TST ZC71C |
0090 C7AB 27 0F BEQ ZC7BC |
0091 C7AD 7F C7 1C CLR ZC71C |
0092 C7B0 81 0A CMPA #$0A |
0093 C7B2 27 0F BEQ ZC7C3 |
0094 C7B4 34 02 PSHS A |
0095 C7B6 86 0A LDA #$0A |
0096 C7B8 8D 3C BSR ZC7F6 |
0097 C7BA 35 02 PULS A |
0098 C7BC 81 0D ZC7BC CMPA #$0D |
0099 C7BE 26 03 BNE ZC7C3 |
0100 C7C0 B7 C7 1C STA ZC71C |
0101 C7C3 8D 31 ZC7C3 BSR ZC7F6 |
0102 C7C5 20 D4 BRA ZC79B |
0103 * |
0104 C7C7 86 0D ZC7C7 LDA #$0D |
0105 C7C9 8D 2B BSR ZC7F6 |
0106 C7CB 86 0A LDA #$0A |
0107 C7CD 8D 27 BSR ZC7F6 |
0108 C7CF B6 C7 12 LDA ZC712 |
0109 C7D2 8D 22 BSR ZC7F6 |
0110 C7D4 7F C7 1D CLR ZC71D |
0111 C7D7 BE C7 19 LDX ZC719 |
0112 C7DA 6D 03 TST $03,X |
0113 C7DC 27 05 BEQ ZC7E3 |
0114 C7DE 6A 03 DEC $03,X |
0115 C7E0 7E C7 47 JMP ZC747 |
0116 * |
0117 C7E3 30 04 ZC7E3 LEAX $04,X |
0118 C7E5 8C C8 40 CMPX #FCB |
0119 C7E8 26 03 BNE ZC7ED |
0120 C7EA 8E C8 10 LDX #ZC810 |
0121 C7ED BF C7 19 ZC7ED STX ZC719 |
0122 C7F0 7A C7 1B DEC QCNT |
0123 C7F3 7E C7 47 JMP ZC747 |
0124 * |
0125 C7F6 BD CC D8 ZC7F6 JSR PCHK |
0126 C7F9 2B 05 BMI ZC800 |
0127 C7FB 11 3F SWI3 |
0128 C7FD 12 NOP |
0129 C7FE 20 F6 BRA ZC7F6 |
0130 * |
0131 C800 7E CC E4 ZC800 JMP POUT |
0132 C810 ZC810 EQU $C810 |
0133 C838 ZC838 EQU $C838 |
0004 END |
0000 INCLUDE "f9-sfcb.txt" |
0001 * |
0002 ** SYSTEM FILE CONTROL BLOCK |
0003 * |
0004 C840 ORG $C840 |
0005 C840 FF FCB FCB $FF |
0006 C841 00 FCB $00 |
0007 C842 00 FCB $00 |
0008 C843 00 FCB $00 |
0009 C844 53 54 41 52 54 55 ZC844 FCC "STARTUP" |
50 |
0010 C84B 00 FCB $00 |
0011 C84C 54 58 54 FCC "TXT" |
0012 C84F 00 FCB $00 |
0005 END |
0000 INCLUDE "f9-init.txt" |
0001 * |
0002 ** FLEX INITIATION |
0003 * |
0004 CA00 ORG $CA00 |
0005 CA00 20 06 ZCA00 BRA ZCA08 |
0006 CA02 BD CA AC ZCA02 JSR >ZCAAC |
0007 CA05 39 RTS |
0008 CA06 C0 A0 ZCA06 SUBB #$A0 |
0009 CA08 86 39 ZCA08 LDA #$39 |
0010 CA0A B7 D3 FD STA >ZD3FD |
0011 CA0D BE CC 2B LDX >MEMEND |
0012 CA10 30 89 00 A1 LEAX $00A1,X |
0013 CA14 BF CA 06 STX >ZCA06 |
0014 CA17 AD 9F D3 F1 JSR [TINVEC] |
0015 CA1B BE D3 FB LDX >INVEC |
0016 CA1E BF CD 0A STX >INCH+1 |
0017 CA21 BF CD 0D STX >INCH2+1 |
0018 CA24 BE D3 F9 LDX >OUTVEC |
0019 CA27 BF CD 10 STX >OUTCH+1 |
0020 CA2A BF CD 13 STX >OUTCH2+1 |
0021 CA2D BE D3 F7 LDX >STAVEC |
0022 CA30 BF CD 4F STX >ZCD4E+1 |
0023 CA33 8E 00 A0 LDX #Z00A0 |
0024 CA36 C6 B9 LDB #$B9 |
0025 CA38 A6 84 ZCA38 LDA ,X |
0026 CA3A E7 84 STB ,X |
0027 CA3C 12 NOP |
0028 CA3D E1 84 CMPB ,X |
0029 CA3F 26 0B BNE ZCA4C |
0030 CA41 A7 84 STA ,X |
0031 CA43 30 89 04 00 LEAX $0400,X |
0032 CA47 BC CA 06 CMPX >ZCA06 |
0033 CA4A 26 EC BNE ZCA38 |
0034 CA4C 30 89 FF 5F ZCA4C LEAX $FF5F,X |
0035 CA50 BF CC 2B STX >MEMEND |
0036 CA53 8E CD 03 LDX #WARMS |
0037 CA56 BF CC 16 STX >ESCVEC |
0038 CA59 8E CA DC LDX #TTLSTR |
0039 CA5C BD CE 81 JSR >PSTRG1 |
0040 CA5F BD CE B5 JSR >PCRLF1 |
0041 CA62 8D 9E BSR ZCA02 |
0042 CA64 BD CE B5 JSR >PCRLF1 |
0043 CA67 8E C8 40 LDX #FCB |
0044 CA6A 86 01 LDA #$01 |
0045 CA6C A7 84 STA ,X |
0046 CA6E BD D4 06 JSR >FMS |
0047 CA71 27 08 BEQ ZCA7B |
0048 CA73 A6 01 LDA $01,X |
0049 CA75 BD D2 00 JSR >ZD200 |
0050 CA78 7E CD 67 JMP >WARM1 |
0051 |
0052 CA7B 8E C0 80 ZCA7B LDX #LINBUF |
0053 CA7E BF CC 14 ZCA7E STX >LINPTR |
0054 CA81 8E C8 40 LDX #FCB |
0055 CA84 BD D4 06 JSR >FMS |
0056 CA87 27 05 BEQ ZCA8E |
0057 CA89 34 30 PSHS Y,X |
0058 CA8B 7E D2 D7 JMP >ZD2D7 |
0059 |
0060 CA8E BE CC 14 ZCA8E LDX >LINPTR |
0061 CA91 A7 80 STA ,X+ |
0062 CA93 81 0D CMPA #$0D |
0063 CA95 26 E7 BNE ZCA7E |
0064 CA97 8E C8 40 LDX #FCB |
0065 CA9A BD D1 F4 JSR >ZD1F4 |
0066 CA9D 8E C0 80 LDX #LINBUF |
0067 CAA0 BF CC 14 STX >LINPTR |
0068 CAA3 8E CD 67 LDX #WARM1 |
0069 CAA6 BF CC 43 STX >ZCC43 |
0070 CAA9 7E D3 2E JMP >ZD32E |
0071 |
0072 CAAC 8E CA EC ZCAAC LDX #DATSTR |
0073 CAAF BD CE 81 JSR >PSTRG1 |
0074 CAB2 BD CE 2B JSR >INBUF1 |
0075 CAB5 8D 14 BSR ZCACB |
0076 CAB7 25 F3 BCS ZCAAC |
0077 CAB9 B7 CC 0E STA >MONTH |
0078 CABC 8D 0D BSR ZCACB |
0079 CABE 25 EC BCS ZCAAC |
0080 CAC0 B7 CC 0F ZCAC0 STA >DAY |
0081 CAC3 8D 06 BSR ZCACB |
0082 CAC5 25 E5 BCS ZCAAC |
0083 CAC7 B7 CC 10 STA >YEAR |
0084 CACA 39 RTS |
0085 |
0086 CACB BD D1 75 ZCACB JSR >INDEC1 |
0087 CACE 25 0B BCS ZCADB |
0088 CAD0 B6 CC 1C LDA >LODOFF+1 |
0089 CAD3 5D TSTB |
0090 CAD4 27 03 BEQ ZCAD9 |
0091 CAD6 1C FE ANDCC #$FE |
0092 CAD8 39 RTS |
0093 |
0094 CAD9 1A 01 ZCAD9 ORCC #$01 |
0095 CADB 39 ZCADB RTS |
0096 |
0097 CADC 36 38 30 39 20 46 TTLSTR FCC "6809 FLEX V3.01" |
4C 45 58 20 56 33 |
2E 30 31 |
0098 CAEB 04 FCB $04 |
0099 CAEC 44 41 54 45 20 28 DATSTR FCC "DATE (MM,DD,YY)? " |
4D 4D 2C 44 44 2C |
59 59 29 3F 20 |
0100 CAFD 04 FCB $04 |
0006 END |
0000 INCLUDE "f9-var.txt" |
0001 * |
0002 ** TTYSET PARAMETERS |
0003 * |
0004 CC00 ORG $CC00 |
0005 CC00 08 BSPCHR FCB $08 |
0006 CC01 18 DELCHR FCB $18 |
0007 CC02 3A EOLCHR FCB $3A |
0008 CC03 19 DEPCNT FCB 25 |
0009 CC04 00 WIDCNT FCB $00 |
0010 CC05 04 NULCNT FCB $04 |
0011 CC06 40 TABCHR FCB '@ |
0012 CC07 00 BSECHR FCB $00 |
0013 CC08 00 EJTCNT FCB $00 |
0014 CC09 FF PAUSE FCB $FF |
0015 CC0A 1B ESCCHR FCB $1B |
0016 CC0B 00 SYSDRV FCB 0 |
0017 CC0C 01 WRKDRV FCB 1 |
0018 CC0D 00 ZCC0D FCB $00 |
0019 CC0E DATERG EQU * |
0020 CC0E 00 MONTH FCB $00 |
0021 CC0F 00 DAY FCB $00 |
0022 CC10 00 YEAR FCB $00 |
0023 CC11 00 LASTRM FCB $00 |
0024 CC12 00 00 UCTVEC FDB $0000 |
0025 CC14 00 00 LINPTR FDB $0000 |
0026 CC16 00 00 ESCVEC FDB $0000 |
0027 CC18 00 CURCHR FCB $00 |
0028 CC19 00 PRVCHR FCB $00 |
0029 CC1A 00 CURLIN FCB $00 |
0030 CC1B 00 00 LODOFF FDB $0000 |
0031 CC1D 00 TRNFLG FCB $00 |
0032 CC1E 00 00 TRNVEC FDB $0000 |
0033 CC20 00 ERRTYP FCB $00 |
0034 CC21 00 SIOFLG FCB $00 |
0035 CC22 00 OUTSWT FCB $00 |
0036 CC23 00 INPSWT FCB $00 |
0037 CC24 00 00 FOPADR FDB $0000 |
0038 CC26 00 00 FIPADR FDB $0000 |
0039 CC28 00 CMDFLG FCB $00 |
0040 CC29 00 CURCOL FCB $00 |
0041 CC2A 00 FCB $00 |
0042 CC2B BF FF MEMEND FDB $BFFF |
0043 CC2D 00 00 ERRVEC FDB $0000 |
0044 CC2F 01 FIEFLG FCB $01 |
0045 CC30 00 ZCC30 FCB $00 |
0046 CC31 00 00 00 ZCC31 FCB $00,$00,$00 |
0047 CC34 00 00 00 00 00 00 ZCC34 FCB $00,$00,$00,$00,$00,$00,$00 |
00 |
0048 CC3D ZCC3D EQU $CC3D |
0049 CC3F ZCC3F EQU $CC3F |
0050 CC43 ZCC43 EQU $CC43 |
0051 CC45 ZCC45 EQU $CC45 |
0052 CC47 ZCC47 EQU $CC47 |
0053 CC49 ORG $CC49 |
0054 CC49 60 MAPUP FCB $60 MAP LOWER TO UPPERCASE |
0055 CC4A ZCC4A EQU $CC4A |
0056 CC4B ZCC4B EQU $CC4B |
0057 CC4C ZCC4C EQU $CC4C |
0058 CC4D ZCC4D EQU $CC4D |
0007 END |
0000 INCLUDE "f9-data.txt" |
0001 * |
0002 ** STRINGS AND MESSAGES |
0003 * |
0004 CC4E ORG $CC4E |
0005 CC4E 2B 2B 2B PMTSTR FCC "+++" |
0006 CC51 04 FCB $04 |
0007 CC52 3F 3F 3F QRYSTR FCC "???" |
0008 CC55 04 FCB $04 |
0009 CC56 57 48 41 54 3F WOTMSG FCC "WHAT?" |
0010 CC5B 04 FCB $04 |
0011 CC5C 43 41 4E 27 54 20 NTRMSG FCC "CAN'T TRANSFER" |
54 52 41 4E 53 46 |
45 52 |
0012 CC6A 04 FCB $04 |
0013 CC6B 4E 4F 54 20 46 4F NFDMSG FCC "NOT FOUND" |
55 4E 44 |
0014 CC74 04 FCB $04 |
0015 CC75 44 49 53 4B 20 45 DERMSG FCC "DISK ERROR #" |
52 52 4F 52 20 23 |
0016 CC81 04 FCB $04 |
0017 CC82 44 52 49 56 45 53 DNRMSG FCC "DRIVES NOT READY" |
20 4E 4F 54 20 52 |
45 41 44 59 |
0018 CC92 04 FCB $04 |
0019 * |
0020 ** MEMORY RESIDENT COMMANDS |
0021 * |
0022 CC93 47 45 54 CMDTBL FCC "GET" |
0023 CC96 00 FCB $00 |
0024 CC97 D2 0F FDB GETCMD |
0025 CC99 4D 4F 4E FCC "MON" |
0026 CC9C 00 FCB $00 |
0027 CC9D D3 4B FDB ZD34B |
0028 CC9F 00 FCB $00 |
0029 * |
0030 ** DECIMAL CONVERSION TABLE |
0031 * |
0032 CCA0 27 10 DECTBL FDB 10000 |
0033 CCA2 03 E8 FDB 1000 |
0034 CCA4 00 64 FDB 100 |
0035 CCA6 00 0A FDB 10 |
0008 END |
0000 INCLUDE "f9-cli.txt" |
0001 ********************************************* |
0002 * |
0003 * FLEX COMMAND LINE INTERPRETER & SUBROUTINES |
0004 * |
0005 ********************************************* |
0006 CD00 ORG $CD00 |
0007 * |
0008 ** FLEX JUMPS |
0009 * |
0010 CD00 7E CD 57 COLDS JMP >COLD1 |
0011 CD03 7E CD 67 WARMS JMP >WARM1 |
0012 CD06 7E CD B1 RENTER JMP >RENT1 |
0013 CD09 7E CD 09 INCH JMP >INCH |
0014 CD0C 7E CD 0C INCH2 JMP >INCH2 |
0015 CD0F 7E CD 0F OUTCH JMP >OUTCH |
0016 CD12 7E CD 12 OUTCH2 JMP >OUTCH2 |
0017 CD15 7E CE FB GETCHR JMP >GETCH1 |
0018 CD18 7E CF 41 PUTCHR JMP >PUTCH1 |
0019 CD1B 7E CE 2B INBUFF JMP >INBUF1 |
0020 CD1E 7E CE 81 PSTRNG JMP >PSTRG1 |
0021 CD21 7E CF ED CLASS JMP >CLASS1 |
0022 CD24 7E CE B5 PCRLF JMP >PCRLF1 |
0023 CD27 7E D0 0E NXTCH JMP >NXTCH1 |
0024 CD2A 7E CD EA RSTRIO JMP >RSTIO1 |
0025 CD2D 7E D0 36 GETFIL JMP >GETFL1 |
0026 CD30 7E D1 A2 LOAD JMP >LOAD1 |
0027 CD33 7E D0 EB SETEXT JMP >SETEX1 |
0028 CD36 7E D3 49 ADDBX JMP >ADDBX1 |
0029 CD39 7E CF 86 OUTDEC JMP >OUTDC1 |
0030 CD3C 7E CF D4 OUTHEX JMP >OUTHX1 |
0031 CD3F 7E D2 7F RPTERR JMP >RPTER1 |
0032 CD42 7E D1 2F GETHEX JMP >GETHX1 |
0033 CD45 7E CF D0 OUTADR JMP >OUTAD1 |
0034 CD48 7E D1 75 INDEC JMP >INDEC1 |
0035 CD4B 7E D3 29 DOCMND JMP >DOCMD1 |
0036 CD4E 7E CD 4E ZCD4E JMP >ZCD4E |
0037 CD51 7E CE 05 JMP >ZCE05 |
0038 CD54 7E CE 05 JMP >ZCE05 |
0039 * |
0040 ** COLD START ENTRY |
0041 * |
0042 CD57 10 CE C0 7F COLD1 LDS #ZC07F |
0043 CD5B 7F CC 11 ZCD5B CLR >LASTRM |
0044 CD5E BD D4 00 JSR >ZD400 |
0045 CD61 7F CC 28 CLR >CMDFLG |
0046 CD64 BD D3 FD JSR >ZD3FD |
0047 * |
0048 ** WARM START ENTRY |
0049 * |
0050 CD67 10 CE C0 7F WARM1 LDS #ZC07F |
0051 CD6B BD DE 18 JSR >WARMDR |
0052 CD6E 8E CD 03 LDX #WARMS |
0053 CD71 BF CC 16 STX >ESCVEC |
0054 CD74 8E C7 00 LDX #PRSPL1 |
0055 CD77 AF 9F D3 E9 STX [SWIVVC] |
0056 CD7B BE D3 E7 LDX >IHNDVC |
0057 CD7E AF 9F D3 EB STX [IRQVVC] |
0058 CD82 8E CC F8 LDX #ZCCF8 |
0059 CD85 BF CC 31 STX >ZCC31 |
0060 CD88 7F CC 34 CLR >ZCC34 |
0061 CD8B 7F CC 4C CLR >ZCC4C |
0062 CD8E 8D 5A BSR RSTIO1 |
0063 CD90 B6 CC 11 LDA >LASTRM |
0064 CD93 B1 CC 02 CMPA >EOLCHR |
0065 CD96 26 05 BNE ZCD9D |
0066 CD98 7C CC 15 INC >LINPTR+1 |
0067 CD9B 20 14 BRA RENT1 |
0068 |
0069 CD9D 7D CC 28 ZCD9D TST >CMDFLG |
0070 CDA0 10 26 05 97 LBNE ZD33B |
0071 CDA4 BD D4 03 JSR >FMSCLS |
0072 CDA7 26 B2 BNE ZCD5B |
0073 CDA9 8E CC 4E LDX #PMTSTR |
0074 CDAC BD CE 81 JSR >PSTRG1 |
0075 CDAF 8D 7A BSR INBUF1 |
0076 * |
0077 ** MAIN CONTROL LOOP |
0078 * |
0079 CDB1 BD D0 D4 RENT1 JSR >ZD0D4 |
0080 CDB4 81 0D CMPA #$0D |
0081 CDB6 27 E5 BEQ ZCD9D |
0082 CDB8 8E C8 40 ZCDB8 LDX #FCB |
0083 CDBB 7C CC 0D INC >ZCC0D |
0084 CDBE BD D0 36 JSR >GETFL1 |
0085 CDC1 25 16 BCS ZCDD9 |
0086 CDC3 8E CC 93 LDX #CMDTBL |
0087 CDC6 8D 3E BSR ZCE06 |
0088 CDC8 27 09 BEQ ZCDD3 |
0089 CDCA BE CC 12 LDX >UCTVEC |
0090 CDCD 27 07 BEQ ZCDD6 |
0091 CDCF 8D 35 BSR ZCE06 |
0092 CDD1 26 03 BNE ZCDD6 |
0093 CDD3 6E 98 01 ZCDD3 JMP [$01,X] |
0094 |
0095 CDD6 BD D2 2E ZCDD6 JSR >ZD22E |
0096 CDD9 8E CC 56 ZCDD9 LDX #WOTMSG |
0097 CDDC 86 15 LDA #$15 |
0098 CDDE B7 CC 20 ZCDDE STA >ERRTYP |
0099 CDE1 BD CE 81 ZCDE1 JSR >PSTRG1 |
0100 CDE4 7F CC 11 ZCDE4 CLR >LASTRM |
0101 CDE7 7E CD 67 JMP >WARM1 |
0102 * |
0103 ** RESTORE IO VECTORS |
0104 * |
0105 CDEA BE CD 13 RSTIO1 LDX >OUTCH2+1 |
0106 CDED BF CD 10 STX >OUTCH+1 |
0107 CDF0 BE CD 0D LDX >INCH2+1 |
0108 CDF3 BF CD 0A STX >INCH+1 |
0109 CDF6 7F CC 23 CLR >INPSWT |
0110 CDF9 7F CC 22 CLR >OUTSWT |
0111 CDFC 7F CC 21 CLR >SIOFLG |
0112 CDFF 7F CC 26 CLR >FIPADR |
0113 CE02 7F CC 24 CLR >FOPADR |
0114 CE05 39 ZCE05 RTS |
0115 |
0116 CE06 10 8E C8 44 ZCE06 LDY #ZC844 |
0117 CE0A A6 A0 ZCE0A LDA ,Y+ |
0118 CE0C 81 5F CMPA #$5F |
0119 CE0E 23 02 BLS ZCE12 |
0120 CE10 80 20 SUBA #$20 |
0121 CE12 A1 80 ZCE12 CMPA ,X+ |
0122 CE14 26 08 BNE ZCE1E |
0123 CE16 6D 84 TST ,X |
0124 CE18 26 F0 BNE ZCE0A |
0125 CE1A 6D A4 TST ,Y |
0126 CE1C 27 0C BEQ ZCE2A |
0127 CE1E 6D 80 ZCE1E TST ,X+ |
0128 CE20 26 FC BNE ZCE1E |
0129 CE22 30 02 LEAX $02,X |
0130 CE24 6D 84 TST ,X |
0131 CE26 26 DE BNE ZCE06 |
0132 CE28 1C FB ANDCC #$FB |
0133 CE2A 39 ZCE2A RTS |
0134 * |
0135 ** GET USER COMMAND LINE |
0136 * |
0137 CE2B 8E C0 80 INBUF1 LDX #LINBUF |
0138 CE2E BF CC 14 STX >LINPTR |
0139 CE31 BD CE FB ZCE31 JSR >GETCH1 |
0140 CE34 B1 CC 01 CMPA >DELCHR |
0141 CE37 27 1D BEQ ZCE56 |
0142 CE39 B1 CC 00 CMPA >BSPCHR |
0143 CE3C 27 1F BEQ ZCE5D |
0144 CE3E 81 0D CMPA #$0D |
0145 CE40 27 0D BEQ ZCE4F |
0146 CE42 81 0A CMPA #$0A |
0147 CE44 27 32 BEQ ZCE78 |
0148 CE46 81 1F CMPA #$1F |
0149 CE48 23 E7 BLS ZCE31 |
0150 CE4A 8C C0 FF ZCE4A CMPX #ZC0FF |
0151 CE4D 27 E2 BEQ ZCE31 |
0152 CE4F A7 80 ZCE4F STA ,X+ |
0153 CE51 81 0D CMPA #$0D |
0154 CE53 26 DC BNE ZCE31 |
0155 CE55 39 RTS |
0156 |
0157 CE56 8E CC 52 ZCE56 LDX #QRYSTR |
0158 CE59 8D 26 BSR PSTRG1 |
0159 CE5B 20 CE BRA INBUF1 |
0160 |
0161 CE5D 8C C0 80 ZCE5D CMPX #LINBUF |
0162 CE60 27 F4 BEQ ZCE56 |
0163 CE62 30 1F LEAX -$01,X |
0164 CE64 B6 CC 07 LDA >BSECHR |
0165 CE67 81 08 CMPA #$08 |
0166 CE69 26 08 BNE ZCE73 |
0167 CE6B 86 20 LDA #$20 |
0168 CE6D BD CF 66 JSR >ZCF66 |
0169 CE70 B6 CC 07 LDA >BSECHR |
0170 CE73 BD CF 66 ZCE73 JSR >ZCF66 |
0171 CE76 20 B9 BRA ZCE31 |
0172 |
0173 CE78 86 0D ZCE78 LDA #$0D |
0174 CE7A BD CF 41 JSR >PUTCH1 |
0175 CE7D 86 20 LDA #$20 |
0176 CE7F 20 C9 BRA ZCE4A |
0177 |
0178 CE81 8D 32 PSTRG1 BSR PCRLF1 |
0179 CE83 A6 84 ZCE83 LDA ,X |
0180 CE85 81 04 CMPA #$04 |
0181 CE87 27 6F BEQ ZCEF8 |
0182 CE89 BD CF 41 JSR >PUTCH1 |
0183 CE8C 30 01 LEAX $01,X |
0184 CE8E 20 F3 BRA ZCE83 |
0185 |
0186 CE90 BD CD 4E ZCE90 JSR >ZCD4E |
0187 CE93 27 65 BEQ ZCEFA |
0188 CE95 AD 9F D3 E5 JSR [ZD3E5] |
0189 CE99 B1 CC 0A CMPA >ESCCHR |
0190 CE9C 26 5C BNE ZCEFA |
0191 CE9E 7F CC 1A ZCE9E CLR >CURLIN |
0192 CEA1 AD 9F D3 E5 ZCEA1 JSR [ZD3E5] |
0193 CEA5 B1 CC 0A CMPA >ESCCHR |
0194 CEA8 27 50 BEQ ZCEFA |
0195 CEAA 81 03 CMPA #$03 CTRL C |
0196 CEAC 26 F3 BNE ZCEA1 |
0197 CEAE 7F CC 11 CLR >LASTRM |
0198 CEB1 6E 9F CC 16 JMP [ESCVEC] |
0199 * |
0200 ** PRINT CR, LINEFEED |
0201 * |
0202 CEB5 7D CC 21 PCRLF1 TST >SIOFLG |
0203 CEB8 26 27 BNE ZCEE1 |
0204 CEBA 8D D4 BSR ZCE90 |
0205 CEBC B6 CC 03 LDA >DEPCNT |
0206 CEBF 27 20 BEQ ZCEE1 |
0207 CEC1 B1 CC 1A CMPA >CURLIN |
0208 CEC4 22 18 BHI ZCEDE |
0209 CEC6 7F CC 1A CLR >CURLIN |
0210 CEC9 7D CC 09 TST >PAUSE |
0211 CECC 27 02 BEQ ZCED0 |
0212 CECE 8D CE BSR ZCE9E |
0213 CED0 34 04 ZCED0 PSHS B |
0214 CED2 F6 CC 08 LDB >EJTCNT |
0215 CED5 27 05 BEQ ZCEDC |
0216 CED7 8D 08 ZCED7 BSR ZCEE1 |
0217 CED9 5A DECB |
0218 CEDA 26 FB BNE ZCED7 |
0219 CEDC 35 04 ZCEDC PULS B |
0220 CEDE 7C CC 1A ZCEDE INC >CURLIN |
0221 CEE1 86 0D ZCEE1 LDA #$0D |
0222 CEE3 8D 5C BSR PUTCH1 |
0223 CEE5 86 0A LDA #$0A |
0224 CEE7 8D 58 BSR PUTCH1 |
0225 CEE9 34 04 PSHS B |
0226 CEEB F6 CC 05 LDB >NULCNT |
0227 CEEE 27 06 BEQ ZCEF6 |
0228 CEF0 4F ZCEF0 CLRA |
0229 CEF1 8D 4E BSR PUTCH1 |
0230 CEF3 5A DECB |
0231 CEF4 26 FA BNE ZCEF0 |
0232 CEF6 35 04 ZCEF6 PULS B |
0233 CEF8 1C FE ZCEF8 ANDCC #$FE |
0234 CEFA 39 ZCEFA RTS |
0235 * |
0236 ** GET A CHARACTER HONOURING TTYSET |
0237 * |
0238 CEFB 7D CC 23 GETCH1 TST >INPSWT |
0239 CEFE 26 1A BNE ZCF1A |
0240 CF00 7D CC 26 TST >FIPADR |
0241 CF03 27 10 BEQ ZCF15 |
0242 CF05 8D 1A BSR ZCF21 |
0243 CF07 7D CC 2F TST >FIEFLG |
0244 CF0A 27 11 BEQ ZCF1D |
0245 CF0C 7D CC 24 TST >FOPADR |
0246 CF0F 27 0C BEQ ZCF1D |
0247 CF11 8D 53 BSR ZCF66 |
0248 CF13 20 08 BRA ZCF1D |
0249 CF15 BD CD 09 ZCF15 JSR >INCH |
0250 CF18 20 03 BRA ZCF1D |
0251 |
0252 CF1A BD CD 0C ZCF1A JSR >INCH2 |
0253 CF1D 7F CC 1A ZCF1D CLR >CURLIN |
0254 CF20 39 RTS |
0255 |
0256 CF21 BF CC 47 ZCF21 STX >ZCC47 |
0257 CF24 BE CC 26 LDX >FIPADR |
0258 CF27 20 06 BRA ZCF2F |
0259 |
0260 CF29 BF CC 47 ZCF29 STX >ZCC47 |
0261 CF2C BE CC 24 LDX >FOPADR |
0262 CF2F BD D4 06 ZCF2F JSR >FMS |
0263 CF32 26 04 BNE ZCF38 |
0264 CF34 BE CC 47 LDX >ZCC47 |
0265 CF37 39 RTS |
0266 |
0267 CF38 7F CC 24 ZCF38 CLR >FOPADR |
0268 CF3B BD D2 7F JSR >RPTER1 |
0269 CF3E 7E CD 03 JMP >WARMS |
0270 * |
0271 ** OUTPUT CHARACTER HONOURING TTYSET |
0272 * |
0273 CF41 7D CC 21 PUTCH1 TST >SIOFLG |
0274 CF44 26 20 BNE ZCF66 |
0275 CF46 81 1F CMPA #$1F |
0276 CF48 22 05 BHI ZCF4F |
0277 CF4A 7F CC 29 CLR >CURCOL |
0278 CF4D 20 17 BRA ZCF66 |
0279 |
0280 CF4F 7C CC 29 ZCF4F INC >CURCOL |
0281 CF52 34 02 PSHS A |
0282 CF54 B6 CC 04 LDA >WIDCNT |
0283 CF57 27 0B BEQ ZCF64 |
0284 CF59 B1 CC 29 CMPA >CURCOL |
0285 CF5C 24 06 BCC ZCF64 |
0286 CF5E BD CE B5 JSR >PCRLF1 |
0287 CF61 7C CC 29 INC >CURCOL |
0288 CF64 35 02 ZCF64 PULS A |
0289 CF66 34 02 ZCF66 PSHS A |
0290 CF68 7D CC 22 TST >OUTSWT |
0291 CF6B 26 13 BNE ZCF80 |
0292 CF6D 7D CC 24 TST >FOPADR |
0293 CF70 27 04 BEQ ZCF76 |
0294 CF72 8D B5 BSR ZCF29 |
0295 CF74 20 0D BRA ZCF83 |
0296 |
0297 CF76 7D CC 26 ZCF76 TST >FIPADR |
0298 CF79 26 08 BNE ZCF83 |
0299 CF7B BD CD 0F JSR >OUTCH |
0300 CF7E 20 03 BRA ZCF83 |
0301 CF80 BD CD 12 ZCF80 JSR >OUTCH2 |
0302 CF83 35 02 ZCF83 PULS A |
0303 CF85 39 RTS |
0304 |
0305 CF86 7F CC 4A OUTDC1 CLR >ZCC4A |
0306 CF89 F7 CC 1D STB >TRNFLG |
0307 CF8C 86 04 LDA #$04 |
0308 CF8E B7 CC 4D STA >ZCC4D |
0309 CF91 EC 84 LDD ,X |
0310 CF93 8E CC A0 LDX #DECTBL |
0311 CF96 8D 0B ZCF96 BSR ZCFA3 |
0312 CF98 30 02 LEAX $02,X |
0313 CF9A 7A CC 4D DEC >ZCC4D |
0314 CF9D 26 F7 BNE ZCF96 |
0315 CF9F 1F 98 TFR B,A |
0316 CFA1 20 3D BRA OUTHXR |
0317 |
0318 CFA3 7F CC 4B ZCFA3 CLR >ZCC4B |
0319 CFA6 10 A3 84 ZCFA6 CMPD ,X |
0320 CFA9 25 07 BCS ZCFB2 |
0321 CFAB A3 84 SUBD ,X |
0322 CFAD 7C CC 4B INC >ZCC4B |
0323 CFB0 20 F4 BRA ZCFA6 |
0324 |
0325 CFB2 34 02 ZCFB2 PSHS A |
0326 CFB4 B6 CC 4B LDA >ZCC4B |
0327 CFB7 26 10 BNE ZCFC9 |
0328 CFB9 7D CC 4A TST >ZCC4A |
0329 CFBC 26 0B BNE ZCFC9 |
0330 CFBE 7D CC 1D TST >TRNFLG |
0331 CFC1 27 0B BEQ ZCFCE |
0332 CFC3 86 20 LDA #$20 |
0333 CFC5 8D 23 BSR ZCFEA |
0334 CFC7 20 05 BRA ZCFCE |
0335 |
0336 CFC9 7C CC 4A ZCFC9 INC >ZCC4A |
0337 CFCC 8D 12 BSR OUTHXR |
0338 CFCE 35 82 ZCFCE PULS PC,A |
0339 * |
0340 ** DISPLAY HEX ADDRESS |
0341 * |
0342 CFD0 8D 02 OUTAD1 BSR OUTHX1 |
0343 CFD2 30 01 LEAX $01,X |
0344 * |
0345 ** OUPUT HEX BYTE |
0346 * |
0347 CFD4 A6 84 OUTHX1 LDA ,X |
0348 CFD6 8D 04 BSR OUTHXL |
0349 CFD8 A6 84 LDA ,X |
0350 CFDA 20 04 BRA OUTHXR |
0351 |
0352 CFDC 44 OUTHXL LSRA |
0353 CFDD 44 LSRA |
0354 CFDE 44 LSRA |
0355 CFDF 44 LSRA |
0356 CFE0 84 0F OUTHXR ANDA #$0F |
0357 CFE2 8B 30 ADDA #$30 |
0358 CFE4 81 39 CMPA #$39 |
0359 CFE6 23 02 BLS ZCFEA |
0360 CFE8 8B 07 ADDA #$07 |
0361 CFEA 7E CF 41 ZCFEA JMP >PUTCH1 |
0362 * |
0363 ** CLASSIFY CHARACTER ALHA/NUMERIC |
0364 * |
0365 CFED 81 30 CLASS1 CMPA #'0 |
0366 CFEF 25 14 BCS ZD005 |
0367 CFF1 81 39 CMPA #'9 |
0368 CFF3 23 16 BLS ZD00B |
0369 CFF5 81 41 CMPA #'A |
0370 CFF7 25 0C BCS ZD005 |
0371 CFF9 81 5A CMPA #'Z |
0372 CFFB 23 0E BLS ZD00B |
0373 CFFD 81 61 CMPA #'a $61 |
0374 CFFF 25 04 BCS ZD005 |
0375 D001 81 7A CMPA #'z $7A |
0376 D003 23 06 BLS ZD00B |
0377 D005 1A 01 ZD005 ORCC #$01 |
0378 D007 B7 CC 11 STA >LASTRM |
0379 D00A 39 RTS |
0380 D00B 1C FE ZD00B ANDCC #$FE |
0381 D00D 39 RTS |
0382 * |
0383 ** GET NEXT CHARACTER FROM FILE |
0384 * |
0385 D00E 34 10 NXTCH1 PSHS X |
0386 D010 BE CC 14 LDX >LINPTR |
0387 D013 B6 CC 18 LDA >CURCHR |
0388 D016 B7 CC 19 STA >PRVCHR |
0389 D019 A6 80 ZD019 LDA ,X+ |
0390 D01B B7 CC 18 STA >CURCHR |
0391 D01E 81 0D CMPA #$0D |
0392 D020 27 10 BEQ ZD032 |
0393 D022 B1 CC 02 CMPA >EOLCHR |
0394 D025 27 0B BEQ ZD032 |
0395 D027 BF CC 14 STX >LINPTR |
0396 D02A 81 20 CMPA #$20 |
0397 D02C 26 04 BNE ZD032 |
0398 D02E A1 84 CMPA ,X |
0399 D030 27 E7 BEQ ZD019 |
0400 D032 8D B9 ZD032 BSR CLASS1 |
0401 D034 35 90 PULS PC,X |
0402 * |
0403 ** PARSE FILE SPEC. IN LINE BUFFER |
0404 * |
0405 D036 86 15 GETFL1 LDA #$15 |
0406 D038 A7 01 STA $01,X |
0407 D03A 86 FF LDA #$FF |
0408 D03C A7 03 STA $03,X |
0409 D03E 6F 04 CLR $04,X |
0410 D040 6F 0C CLR $0C,X |
0411 D042 BD D0 D4 JSR >ZD0D4 |
0412 D045 86 08 LDA #$08 |
0413 D047 B7 CC 4B STA >ZCC4B |
0414 D04A 8D 34 BSR ZD080 |
0415 D04C 25 2E BCS ZD07C |
0416 D04E 26 0F BNE ZD05F |
0417 D050 8D 2E BSR ZD080 |
0418 D052 25 28 BCS ZD07C |
0419 D054 26 09 BNE ZD05F |
0420 D056 BC CC 3F CMPX >ZCC3F |
0421 D059 27 6C BEQ ZD0C7 |
0422 D05B 8D 23 BSR ZD080 |
0423 D05D 23 68 BLS ZD0C7 |
0424 D05F BE CC 3F ZD05F LDX >ZCC3F |
0425 D062 6D 04 TST $04,X |
0426 D064 27 61 BEQ ZD0C7 |
0427 D066 6D 03 TST $03,X |
0428 D068 2A 0F BPL ZD079 |
0429 D06A 7D CC 0D TST >ZCC0D |
0430 D06D 27 05 BEQ ZD074 |
0431 D06F B6 CC 0B LDA >SYSDRV |
0432 D072 20 03 BRA ZD077 |
0433 |
0434 D074 B6 CC 0C ZD074 LDA >WRKDRV |
0435 D077 A7 03 ZD077 STA $03,X |
0436 D079 7F CC 0D ZD079 CLR >ZCC0D |
0437 D07C BE CC 3F ZD07C LDX >ZCC3F |
0438 D07F 39 RTS |
0439 |
0440 D080 8D 8C ZD080 BSR NXTCH1 |
0441 D082 25 43 BCS ZD0C7 |
0442 D084 81 39 CMPA #$39 |
0443 D086 22 15 BHI ZD09D |
0444 D088 BE CC 3F LDX >ZCC3F |
0445 D08B 6D 03 TST $03,X |
0446 D08D 2A 38 BPL ZD0C7 |
0447 D08F 84 03 ANDA #$03 |
0448 D091 A7 03 STA $03,X |
0449 D093 BD D0 0E JSR >NXTCH1 |
0450 D096 24 2F BCC ZD0C7 |
0451 D098 81 2E ZD098 CMPA #$2E |
0452 D09A 1C FE ANDCC #$FE |
0453 D09C 39 RTS |
0454 |
0455 D09D F6 CC 4B ZD09D LDB >ZCC4B |
0456 D0A0 2B 25 BMI ZD0C7 |
0457 D0A2 34 04 PSHS B |
0458 D0A4 C0 05 SUBB #$05 |
0459 D0A6 F7 CC 4B STB >ZCC4B |
0460 D0A9 35 04 PULS B |
0461 D0AB B1 CC 49 ZD0AB CMPA >MAPUP |
0462 D0AE 25 02 BCS ZD0B2 |
0463 D0B0 80 20 SUBA #$20 |
0464 D0B2 A7 04 ZD0B2 STA $04,X |
0465 D0B4 30 01 LEAX $01,X |
0466 D0B6 5A DECB |
0467 D0B7 BD D0 0E JSR >NXTCH1 |
0468 D0BA 24 08 BCC ZD0C4 |
0469 D0BC 81 2D CMPA #$2D |
0470 D0BE 27 04 BEQ ZD0C4 |
0471 D0C0 81 5F CMPA #$5F |
0472 D0C2 26 06 BNE ZD0CA |
0473 D0C4 5D ZD0C4 TSTB |
0474 D0C5 26 E4 BNE ZD0AB |
0475 D0C7 1A 01 ZD0C7 ORCC #$01 |
0476 D0C9 39 RTS |
0477 |
0478 D0CA 5D ZD0CA TSTB |
0479 D0CB 27 CB BEQ ZD098 |
0480 D0CD 6F 04 CLR $04,X |
0481 D0CF 30 01 LEAX $01,X |
0482 D0D1 5A DECB |
0483 D0D2 20 F6 BRA ZD0CA |
0484 |
0485 D0D4 BF CC 3F ZD0D4 STX >ZCC3F |
0486 D0D7 BE CC 14 LDX >LINPTR |
0487 D0DA A6 84 ZD0DA LDA ,X |
0488 D0DC 81 20 CMPA #$20 |
0489 D0DE 26 04 BNE ZD0E4 |
0490 D0E0 30 01 LEAX $01,X |
0491 D0E2 20 F6 BRA ZD0DA |
0492 D0E4 BF CC 14 ZD0E4 STX >LINPTR |
0493 D0E7 BE CC 3F LDX >ZCC3F |
0494 D0EA 39 RTS |
0495 * |
0496 ** DEFAULT FILE EXTENSION |
0497 * |
0498 D0EB 34 30 SETEX1 PSHS Y,X |
0499 D0ED E6 0C LDB $0C,X |
0500 D0EF 26 18 BNE ZD109 |
0501 D0F1 10 8E D1 0B LDY #EXTTBL |
0502 D0F5 81 0B CMPA #$0B |
0503 D0F7 22 10 BHI ZD109 |
0504 D0F9 C6 03 LDB #$03 |
0505 D0FB 3D MUL |
0506 D0FC 31 A5 LEAY B,Y |
0507 D0FE C6 03 LDB #$03 |
0508 D100 A6 A0 ZD100 LDA ,Y+ |
0509 D102 A7 0C STA $0C,X |
0510 D104 30 01 LEAX $01,X |
0511 D106 5A DECB |
0512 D107 26 F7 BNE ZD100 |
0513 D109 35 B0 ZD109 PULS PC,Y,X |
0514 * |
0515 ** STANDARD FILE NAME EXTTENSIONS |
0516 * |
0517 D10B 42 49 4E EXTTBL FCC "BIN" |
0518 D10E 54 58 54 FCC "TXT" |
0519 D111 43 4D 44 FCC "CMD" |
0520 D114 42 41 53 FCC "BAS" |
0521 D117 53 59 53 FCC "SYS" |
0522 D11A 42 41 4B FCC "BAK" |
0523 D11D 53 43 52 FCC "SCR" |
0524 D120 44 41 54 FCC "DAT" |
0525 D123 42 41 43 FCC "BAC" |
0526 D126 44 49 52 FCC "DIR" |
0527 D129 50 52 54 FCC "PRT" |
0528 D12C 4F 55 54 FCC "OUT" |
0529 * |
0530 ** READ A HEX ADDRESS FROM THE LINE BUFFER |
0531 * |
0532 D12F BD D2 1E GETHX1 JSR >ZD21E |
0533 D132 BD D0 0E ZD132 JSR >NXTCH1 |
0534 D135 25 22 BCS ZD159 |
0535 D137 8D 26 BSR ZD15F |
0536 D139 25 18 BCS ZD153 |
0537 D13B 34 04 PSHS B |
0538 D13D C6 04 LDB #$04 |
0539 D13F 78 CC 1C ZD13F ASL >LODOFF+1 |
0540 D142 79 CC 1B ROL >LODOFF |
0541 D145 5A DECB |
0542 D146 26 F7 BNE ZD13F |
0543 D148 35 04 PULS B |
0544 D14A BB CC 1C ADDA >LODOFF+1 |
0545 D14D B7 CC 1C STA >LODOFF+1 |
0546 D150 5C INCB |
0547 D151 20 DF BRA ZD132 |
0548 |
0549 D153 BD D0 0E ZD153 JSR >NXTCH1 |
0550 D156 24 FB BCC ZD153 |
0551 D158 39 RTS |
0552 |
0553 D159 BE CC 1B ZD159 LDX >LODOFF |
0554 D15C 1C FE ANDCC #$FE |
0555 D15E 39 RTS |
0556 |
0557 D15F 80 47 ZD15F SUBA #$47 |
0558 D161 2A 0F BPL ZD172 |
0559 D163 8B 06 ADDA #$06 |
0560 D165 2A 04 BPL ZD16B |
0561 D167 8B 07 ADDA #$07 |
0562 D169 2A 07 BPL ZD172 |
0563 D16B 8B 0A ZD16B ADDA #$0A |
0564 D16D 2B 03 BMI ZD172 |
0565 D16F 1C FE ANDCC #$FE |
0566 D171 39 RTS |
0567 |
0568 D172 1A 01 ZD172 ORCC #$01 |
0569 D174 39 RTS |
0570 |
0571 D175 BD D2 1E INDEC1 JSR >ZD21E |
0572 D178 BD D0 0E ZD178 JSR >NXTCH1 |
0573 D17B 25 DC BCS ZD159 |
0574 D17D 81 39 CMPA #$39 |
0575 D17F 22 D2 BHI ZD153 |
0576 D181 84 0F ANDA #$0F |
0577 D183 34 04 PSHS B |
0578 D185 34 02 PSHS A |
0579 D187 FC CC 1B LDD >LODOFF |
0580 D18A 58 ASLB |
0581 D18B 49 ROLA |
0582 D18C 58 ASLB |
0583 D18D 49 ROLA |
0584 D18E 58 ASLB |
0585 D18F 49 ROLA |
0586 D190 F3 CC 1B ADDD >LODOFF |
0587 D193 F3 CC 1B ADDD >LODOFF |
0588 D196 EB E0 ADDB ,S+ |
0589 D198 89 00 ADCA #$00 |
0590 D19A FD CC 1B STD >LODOFF |
0591 D19D 35 04 PULS B |
0592 D19F 5C INCB |
0593 D1A0 20 D6 BRA ZD178 |
0594 * |
0595 ** LOAD BINARY FILE |
0596 * |
0597 D1A2 7F CC 1D LOAD1 CLR >TRNFLG |
0598 D1A5 8D 3D ZD1A5 BSR ZD1E4 |
0599 D1A7 81 02 CMPA #$02 |
0600 D1A9 27 15 BEQ ZD1C0 |
0601 D1AB 81 16 CMPA #$16 |
0602 D1AD 26 F6 BNE ZD1A5 |
0603 D1AF 8D 33 BSR ZD1E4 |
0604 D1B1 B7 CC 1E STA >TRNVEC |
0605 D1B4 8D 2E BSR ZD1E4 |
0606 D1B6 B7 CC 1F STA >TRNVEC+1 |
0607 D1B9 86 01 LDA #$01 |
0608 D1BB B7 CC 1D STA >TRNFLG |
0609 D1BE 20 E5 BRA ZD1A5 |
0610 |
0611 D1C0 8D 22 ZD1C0 BSR ZD1E4 |
0612 D1C2 1F 89 TFR A,B |
0613 D1C4 8D 1E BSR ZD1E4 |
0614 D1C6 1E 89 EXG A,B |
0615 D1C8 F3 CC 1B ADDD >LODOFF |
0616 D1CB FD CC 3D STD >ZCC3D |
0617 D1CE 8D 14 BSR ZD1E4 |
0618 D1D0 1F 89 TFR A,B |
0619 D1D2 4D TSTA |
0620 D1D3 27 D0 BEQ ZD1A5 |
0621 D1D5 8D 0D ZD1D5 BSR ZD1E4 |
0622 D1D7 BE CC 3D LDX >ZCC3D |
0623 D1DA A7 80 STA ,X+ |
0624 D1DC BF CC 3D STX >ZCC3D |
0625 D1DF 5A DECB |
0626 D1E0 26 F3 BNE ZD1D5 |
0627 D1E2 20 C1 BRA ZD1A5 |
0628 |
0629 D1E4 8E C8 40 ZD1E4 LDX #FCB |
0630 D1E7 BD D4 06 JSR >FMS |
0631 D1EA 27 11 BEQ ZD1FD |
0632 D1EC A6 01 LDA $01,X |
0633 D1EE 81 08 CMPA #$08 |
0634 D1F0 26 0E BNE ZD200 |
0635 D1F2 32 62 LEAS $02,S |
0636 D1F4 86 04 ZD1F4 LDA #$04 |
0637 D1F6 A7 84 STA ,X |
0638 D1F8 BD D4 06 JSR >FMS |
0639 D1FB 26 0D BNE ZD20A |
0640 D1FD 1C FE ZD1FD ANDCC #$FE |
0641 D1FF 39 RTS |
0642 |
0643 D200 B7 CC 20 ZD200 STA >ERRTYP |
0644 D203 81 04 CMPA #$04 |
0645 D205 26 03 BNE ZD20A |
0646 D207 1A 01 ORCC #$01 |
0647 D209 39 RTS |
0648 |
0649 D20A 8D 73 ZD20A BSR RPTER1 |
0650 D20C 7E CD E4 JMP >ZCDE4 |
0651 * |
0652 ** 'GET' - LOAD BINARY FILE |
0653 * |
0654 D20F 86 00 GETCMD LDA #$00 |
0655 D211 8D 35 BSR ZD248 |
0656 D213 25 0F BCS ZD224 |
0657 D215 8D 07 BSR ZD21E |
0658 D217 7C CC 4C INC >ZCC4C |
0659 D21A 8D 86 BSR LOAD1 |
0660 D21C 20 F1 BRA GETCMD |
0661 |
0662 D21E 4F ZD21E CLRA |
0663 D21F 5F CLRB |
0664 D220 FD CC 1B STD >LODOFF |
0665 D223 39 RTS |
0666 |
0667 D224 F6 CC 4C ZD224 LDB >ZCC4C |
0668 D227 10 27 FB AE LBEQ ZCDD9 |
0669 D22B 7E CD 03 JMP >WARMS |
0670 |
0671 D22E 86 02 ZD22E LDA #$02 |
0672 D230 8D 22 BSR ZD254 |
0673 D232 8D EA BSR ZD21E |
0674 D234 BD D1 A2 JSR >LOAD1 |
0675 D237 F6 CC 1D LDB >TRNFLG |
0676 D23A 27 04 BEQ ZD240 |
0677 D23C 6E 9F CC 1E JMP [TRNVEC] |
0678 |
0679 D240 8E CC 5C ZD240 LDX #NTRMSG |
0680 D243 86 81 LDA #$81 |
0681 D245 7E CD DE JMP >ZCDDE |
0682 |
0683 D248 34 02 ZD248 PSHS A |
0684 D24A 8E C8 40 LDX #FCB |
0685 D24D BD D0 36 JSR >GETFL1 |
0686 D250 35 02 PULS A |
0687 D252 25 1A BCS ZD26E |
0688 D254 8E C8 40 ZD254 LDX #FCB |
0689 D257 BD D0 EB JSR >SETEX1 |
0690 D25A 8E C8 40 LDX #FCB |
0691 D25D 86 01 LDA #$01 |
0692 D25F A7 84 STA ,X |
0693 D261 BD D1 E4 JSR >ZD1E4 |
0694 D264 10 25 00 BB LBCS ZD323 |
0695 D268 86 FF LDA #$FF |
0696 D26A A7 88 3B STA $3B,X |
0697 D26D 39 RTS |
0698 |
0699 D26E B6 CC 11 ZD26E LDA >LASTRM |
0700 D271 81 0D CMPA #$0D |
0701 D273 27 07 BEQ ZD27C |
0702 D275 B1 CC 02 CMPA >EOLCHR |
0703 D278 10 26 FB 5D LBNE ZCDD9 |
0704 D27C 1A 01 ZD27C ORCC #$01 |
0705 D27E 39 RTS |
0706 |
0707 D27F 34 30 RPTER1 PSHS Y,X |
0708 D281 A6 01 LDA $01,X |
0709 D283 B7 CC 20 STA >ERRTYP |
0710 D286 27 63 BEQ ZD2EB |
0711 D288 BD CD EA JSR >RSTIO1 |
0712 D28B 10 BE CC 2D LDY >ERRVEC |
0713 D28F 26 08 BNE ZD299 |
0714 D291 81 10 CMPA #$10 |
0715 D293 27 58 BEQ ZD2ED |
0716 D295 10 8E D3 61 LDY #ZD361 |
0717 D299 8E C8 40 ZD299 LDX #FCB |
0718 D29C 6D 02 TST $02,X |
0719 D29E 27 09 BEQ ZD2A9 |
0720 D2A0 86 04 LDA #$04 |
0721 D2A2 A7 84 STA ,X |
0722 D2A4 BD D4 06 JSR >FMS |
0723 D2A7 26 2E BNE ZD2D7 |
0724 D2A9 8E C8 38 ZD2A9 LDX #ZC838 |
0725 D2AC C6 0B LDB #$0B |
0726 D2AE 8D 6E BSR ZD31E |
0727 D2B0 8E C8 40 LDX #FCB |
0728 D2B3 B6 CC 0B LDA >SYSDRV |
0729 D2B6 A7 03 STA $03,X |
0730 D2B8 86 01 LDA #$01 |
0731 D2BA A7 84 STA ,X |
0732 D2BC BD D4 06 JSR >FMS |
0733 D2BF 26 16 BNE ZD2D7 |
0734 D2C1 B6 CC 20 LDA >ERRTYP |
0735 D2C4 4A DECA |
0736 D2C5 47 ASRA |
0737 D2C6 47 ASRA |
0738 D2C7 4C INCA |
0739 D2C8 6F 88 20 CLR $20,X |
0740 D2CB A7 88 21 STA $21,X |
0741 D2CE 86 15 LDA #$15 |
0742 D2D0 A7 84 STA ,X |
0743 D2D2 BD D4 06 JSR >FMS |
0744 D2D5 27 1E BEQ ZD2F5 |
0745 D2D7 8E CC 75 ZD2D7 LDX #DERMSG |
0746 D2DA BD CE 81 JSR >PSTRG1 |
0747 D2DD BE CC 3F LDX >ZCC3F |
0748 D2E0 B6 CC 20 LDA >ERRTYP |
0749 D2E3 A7 01 STA $01,X |
0750 D2E5 6F 84 CLR ,X |
0751 D2E7 5F CLRB |
0752 D2E8 BD CF 86 JSR >OUTDC1 |
0753 D2EB 35 B0 ZD2EB PULS PC,Y,X |
0754 |
0755 D2ED 8E CC 82 ZD2ED LDX #DNRMSG |
0756 D2F0 BD CE 81 JSR >PSTRG1 |
0757 D2F3 20 F6 BRA ZD2EB |
0758 |
0759 D2F5 BD CE B5 ZD2F5 JSR >PCRLF1 |
0760 D2F8 8E C8 40 LDX #FCB |
0761 D2FB B6 CC 20 LDA >ERRTYP |
0762 D2FE 4A DECA |
0763 D2FF 84 03 ANDA #$03 |
0764 D301 C6 3F LDB #$3F |
0765 D303 3D MUL |
0766 D304 CB 04 ADDB #$04 |
0767 D306 E7 88 22 STB $22,X |
0768 D309 BD D4 06 ZD309 JSR >FMS |
0769 D30C 26 C9 BNE ZD2D7 |
0770 D30E BD CF 41 JSR >PUTCH1 |
0771 D311 81 0D CMPA #$0D |
0772 D313 26 F4 BNE ZD309 |
0773 D315 86 04 LDA #$04 |
0774 D317 A7 84 STA ,X |
0775 D319 BD D4 06 JSR >FMS |
0776 D31C 20 CD BRA ZD2EB |
0777 D31E 34 30 ZD31E PSHS Y,X |
0778 D320 7E D1 00 JMP >ZD100 |
0779 |
0780 D323 8E CC 6B ZD323 LDX #NFDMSG NOT FOUND |
0781 D326 7E CD E1 JMP >ZCDE1 |
0782 * |
0783 ** CALL FLEX AS A SUBROUTINE |
0784 * |
0785 D329 35 06 DOCMD1 PULS B,A |
0786 D32B FD CC 43 STD >ZCC43 |
0787 D32E 10 FF CC 45 ZD32E STS >ZCC45 |
0788 D332 7F CC 20 CLR >ERRTYP |
0789 D335 7C CC 28 INC >CMDFLG |
0790 D338 7E CD B8 JMP >ZCDB8 |
0791 D33B 7F CC 28 ZD33B CLR >CMDFLG |
0792 D33E 10 FE CC 45 LDS >ZCC45 |
0793 D342 F6 CC 20 LDB >ERRTYP |
0794 D345 6E 9F CC 43 JMP [ZCC43] |
0795 * |
0796 ** ADD ACCB TO IX |
0797 * |
0798 D349 3A ADDBX1 ABX |
0799 D34A 39 RTS |
0800 |
0801 D34B 7D CC FC ZD34B TST >ZCCFC |
0802 D34E 26 04 BNE ZD354 |
0803 D350 6E 9F D3 F3 JMP [MONVEC] |
0804 |
0805 D354 8E C8 40 ZD354 LDX #FCB |
0806 D357 86 1B LDA #$1B |
0807 D359 A7 01 STA $01,X |
0808 D35B BD D2 7F JSR >RPTER1 |
0809 D35E 7E CD 67 JMP >WARM1 |
0810 |
0811 D361 45 52 52 4F 52 53 ZD361 FCC /ERRORS/ |
0812 D367 00 00 FCB $00,$00 |
0813 D369 53 59 53 FCC /SYS/ |
0009 END |
0000 INCLUDE "f9-monio.txt" |
0001 * |
0002 ** TERMINAL AND PRINTER DRIVERS |
0003 ** SYS09BUG - Spartan 3 Starter Board |
0004 * |
0005 ** FLEX DRIVER MEMORY MAP: |
0006 ** C700 - C83F PRINTER SPOOLER |
0007 ** CCC0 - CCF7 PRINTER DRIVERS |
0008 ** D370 - D3FF CONSOLE DRIVERS |
0009 ** DE00 - DFAF DISK DRIVERS |
0010 * |
0011 * |
0012 ** INTERRUPT VECTORS |
0013 * |
0014 DFC8 IRQVEC EQU MONRAM+$08 |
0015 DFC2 SWIVEC EQU MONRAM+$02 SWI3 VECTOR |
0016 * |
0017 ** PRINTER DRIVERS |
0018 * |
0019 CCC0 ORG $CCC0 |
0020 CCC0 7E D3 70 PINIT JMP DUMRTS INITIATE PRINTER |
0021 CCD8 ORG $CCD8 |
0022 CCD8 7E D3 70 PCHK JMP DUMRTS CHECK IF PRINTER READY |
0023 CCE4 ORG $CCE4 |
0024 CCE4 7E D3 70 POUT JMP DUMRTS OUTPUT CHR. TO PRINTER |
0025 CCF8 ORG $CCF8 |
0026 CCF8 01 00 00 00 ZCCF8 FCB $01,$00,$00,$00 |
0027 CCFC 00 00 00 00 ZCCFC FCB $00,$00,$00,$00 |
0028 * |
0029 ** CONSOLE DRIVER PATCHES: |
0030 * |
0031 D370 ORG $D370 |
0032 D370 IHND EQU * INTERRUPT HANDLER |
0033 D370 TMON EQU * TIMER ON |
0034 D370 TMOFF EQU * TIMER OFF |
0035 D370 TMINT EQU * TIMER INITIALIZATION |
0036 D370 DUMRTS EQU * |
0037 D370 39 RTS |
0038 * |
0039 ** SBUG MONITOR I/O CALLS |
0040 * |
0041 D371 7E D3 70 TERINZ JMP DUMRTS INITIATE ACIA |
0042 D374 6E 9F F8 04 INCHNE JMP [MONROM+$04] INPUT WITHOUT ECHO |
0043 D378 6E 9F F8 00 MONITR JMP [MONROM+$00] |
0044 D37C 6E 9F F8 08 INCHEK JMP [MONROM+$08] CHECK FOR TERMINAL ENTRY |
0045 D380 6E 9F F8 0A OUTEEE JMP [MONROM+$0A] OUPUT CHARACTER |
0046 D384 6E 9F F8 06 INEEE JMP [MONROM+$06] INPUT WITH ECHO |
0047 |
0048 * |
0049 ** AUTO BLOCK FDBS |
0050 * |
0051 D3E5 ORG $D3E5 |
0052 D3E5 D3 74 ZD3E5 FDB INCHNE INPUT - NO ECHO |
0053 D3E7 D3 70 IHNDVC FDB IHND IRQ INTERRUPT HANDLER |
0054 D3E9 DF C2 SWIVVC FDB SWIVEC SWI3 VECTOR LOCATION |
0055 D3EB DF C8 IRQVVC FDB IRQVEC IRQ VECTOR LOCATION |
0056 D3ED D3 70 TOFVEC FDB TMOFF TIMER OFF ROUTINE |
0057 D3EF D3 70 TONVEC FDB TMON TIMER ON ROUTINE |
0058 D3F1 D3 70 TINVEC FDB TMINT TIMER INITIALIZE ROUTINE |
0059 D3F3 D3 78 MONVEC FDB MONITR MONITOR RETURN ADDRESS |
0060 D3F5 D3 71 TERVEC FDB TERINZ TERMINAL INITIATION |
0061 D3F7 D3 7C STAVEC FDB INCHEK CHECK TERMINAL STATUS |
0062 D3F9 D3 80 OUTVEC FDB OUTEEE TERMINAL CHAR OUTPUT |
0063 D3FB D3 84 INVEC FDB INEEE TERMINAL INPUT CHARACTER |
0064 D3FD 7E CA 00 ZD3FD JMP ZCA00 |
0010 END |
0000 INCLUDE "f9-fms.txt" |
0001 * |
0002 ** FILE MANAGEMENT SYSTEM |
0003 * |
0004 D400 7E D4 36 ZD400 JMP >ZD436 |
0005 D403 7E D4 59 FMSCLS JMP >ZD459 |
0006 D406 7E D4 7B FMS JMP >FMS1 |
0007 D409 20 44 49 53 4B 20 CPYMSG FCC / DISK OPERATING SYSTEM/ |
4F 50 45 52 41 54 |
49 4E 47 20 53 59 |
53 54 45 4D |
0008 D41F 20 43 4F 50 59 52 FCC / COPYRIGHT (C) 1980 BY/ |
49 47 48 54 20 28 |
43 29 20 31 39 38 |
30 20 42 59 |
0009 D435 20 54 45 43 48 4E FCC / TECHNICAL SYSTEMS CONSULTANTS/ |
49 43 41 4C 20 53 |
59 53 54 45 4D 53 |
20 43 4F 4E 53 55 |
4C 54 41 4E 54 53 |
0010 D409 ORG CPYMSG |
0011 D409 FCBPTR RMB 2 |
0012 D40B CURFCB RMB 4 |
0013 D40F ZD40F RMB 2 |
0014 D411 ZD411 RMB 1 |
0015 D412 ZD412 RMB 1 |
0016 D413 ZD413 RMB 1 |
0017 D414 ZD414 RMB 1 |
0018 D415 ZD415 RMB 2 |
0019 D417 ZD417 RMB 1 |
0020 D418 ZD418 RMB 2 |
0021 D41A ZD41A RMB 1 |
0022 D41B ZD41B RMB 2 |
0023 D41D ZD41D RMB 24 |
0024 D435 FF VERFLG FCB $FF |
0025 * |
0026 ** |
0027 * |
0028 D436 BD DE 15 ZD436 JSR >COLDDR |
0029 D439 8E D4 09 LDX #FCBPTR |
0030 D43C C6 0A LDB #$0A |
0031 D43E 8D 11 BSR ZD451 |
0032 D440 8E 00 05 LDX #Z0005 |
0033 D443 BF D4 13 STX >ZD413 |
0034 D446 BF D4 15 STX >ZD415 |
0035 D449 7F D4 1A CLR >ZD41A |
0036 D44C 8E D4 1B ZD44C LDX #ZD41B |
0037 D44F C6 1A LDB #$1A |
0038 D451 6F 80 ZD451 CLR ,X+ |
0039 D453 5A DECB |
0040 D454 26 FB BNE ZD451 |
0041 D456 7E C7 0C JMP >PRSPL5 |
0042 |
0043 D459 BD C7 09 ZD459 JSR >PRSPL4 |
0044 D45C BE D4 09 ZD45C LDX >FCBPTR |
0045 D45F 27 EB BEQ ZD44C |
0046 D461 30 88 E4 LEAX -$1C,X |
0047 D464 BF D4 0B STX >CURFCB |
0048 D467 34 20 PSHS Y |
0049 D469 BD DA C3 JSR >CLOSE |
0050 D46C 35 20 PULS Y |
0051 D46E 24 EC BCC ZD45C |
0052 D470 BE D4 0B LDX >CURFCB |
0053 D473 6F 02 CLR $02,X |
0054 D475 BD C7 0C JSR >PRSPL5 |
0055 D478 C6 FF LDB #$FF |
0056 D47A 39 RTS |
0057 |
0058 * |
0059 ** FMS CALL, PROCESSING |
0060 * |
0061 D47B 7D CC FC FMS1 TST >ZCCFC |
0062 D47E 27 03 BEQ ZD483 |
0063 D480 BD C7 09 JSR >PRSPL4 |
0064 D483 34 24 ZD483 PSHS Y,B |
0065 D485 BF D4 0B STX >CURFCB |
0066 D488 6F 01 CLR $01,X |
0067 D48A E6 84 LDB ,X |
0068 D48C 26 22 BNE DOFUNC |
0069 * |
0070 ** READ/WRITE CHAR/BYTE |
0071 * |
0072 D48E E6 02 LDB $02,X |
0073 D490 27 1A BEQ ZD4AC |
0074 D492 C1 02 CMPB #$02 |
0075 D494 27 11 BEQ ZD4A7 |
0076 D496 BD D5 B4 JSR >ZD5B4 |
0077 D499 BE D4 0B ZD499 LDX >CURFCB |
0078 D49C 25 26 BCS ZD4C4 |
0079 D49E 7D CC FC TST >ZCCFC |
0080 D4A1 26 23 BNE ZD4C6 |
0081 D4A3 5F CLRB |
0082 D4A4 35 24 PULS Y,B |
0083 D4A6 39 RTS |
0084 |
0085 D4A7 BD D6 CF ZD4A7 JSR >ZD6CF |
0086 D4AA 20 ED BRA ZD499 |
0087 D4AC C6 12 ZD4AC LDB #$12 |
0088 D4AE 20 14 BRA ZD4C4 |
0089 |
0090 D4B0 C1 16 DOFUNC CMPB #$16 |
0091 D4B2 23 04 BLS DOFUN1 |
0092 D4B4 C6 01 LDB #$01 |
0093 D4B6 20 0C BRA ZD4C4 |
0094 D4B8 5A DOFUN1 DECB |
0095 D4B9 58 ASLB |
0096 D4BA 8E D4 CE LDX #FMSTBL |
0097 D4BD AD 95 JSR [B,X] |
0098 D4BF BE D4 0B LDX >CURFCB |
0099 D4C2 24 02 BCC ZD4C6 |
0100 D4C4 E7 01 ZD4C4 STB $01,X |
0101 D4C6 BD C7 0C ZD4C6 JSR >PRSPL5 |
0102 D4C9 6D 01 TST $01,X |
0103 D4CB 35 24 PULS Y,B |
0104 D4CD 39 RTS |
0105 * |
0106 ** FMS COMMAND VECTOR TABLE |
0107 * |
0108 D4CE D9 86 FMSTBL FDB OPENRD FC 1 |
0109 D4D0 D9 D9 FDB OPENWR FC 2 |
0110 D4D2 DA F9 FDB OPENUD FC 3 |
0111 D4D4 DA C3 FDB CLOSE FC 4 |
0112 D4D6 D5 E2 FDB REWIND FC 5 |
0113 D4D8 D8 1D FDB OPNDIR FC 6 |
0114 D4DA D8 38 FDB GETREC FC 7 |
0115 D4DC D8 76 FDB PUTREC FC 8 |
0116 D4DE D6 41 FDB RDSECT FC 9 |
0117 D4E0 D6 9F FDB WRSECT FC 10 |
0118 D4E2 D9 69 FDB RESV1 FC 11 |
0119 D4E4 DB D6 FDB DELETE FC 12 |
0120 D4E6 DB 2C FDB RENAME FC 13 |
0121 D4E8 D6 99 FDB RESV2 FC 14 |
0122 D4EA DA 87 FDB NXTSEC FC 15 |
0123 D4EC D8 10 FDB OPNREC FC 16 |
0124 D4EE D5 6F FDB GETBYT FC 17 |
0125 D4F0 D5 90 FDB PUTBYT FC 18 |
0126 D4F2 DB 07 FDB RESV3 FC 19 |
0127 D4F4 DD BD FDB NXTDRV FC 20 |
0128 D4F6 DC FB FDB POSREC FC 21 |
0129 D4F8 DC E5 FDB BAKREC FC 22 |
0130 * |
0131 ** |
0132 * |
0133 D4FA 8D 20 ZD4FA BSR ZD51C |
0134 D4FC 26 05 BNE ZD503 |
0135 D4FE C6 02 LDB #$02 |
0136 D500 1A 01 ORCC #$01 |
0137 D502 39 RTS |
0138 |
0139 D503 ED 84 ZD503 STD ,X |
0140 D505 AE 84 LDX ,X |
0141 D507 6F 84 CLR ,X |
0142 D509 6F 01 CLR $01,X |
0143 D50B 39 RTS |
0144 |
0145 D50C 8D 0E ZD50C BSR ZD51C |
0146 D50E 27 05 BEQ ZD515 |
0147 D510 C6 0D LDB #$0D |
0148 D512 1A 01 ORCC #$01 |
0149 D514 39 RTS |
0150 |
0151 D515 EC 94 ZD515 LDD [,X] |
0152 D517 ED 84 STD ,X |
0153 D519 1C FE ANDCC #$FE |
0154 D51B 39 RTS |
0155 |
0156 D51C FC D4 0B ZD51C LDD >CURFCB |
0157 D51F C3 00 1C ADDD #$001C |
0158 D522 8E D4 09 LDX #FCBPTR |
0159 D525 10 AE 84 ZD525 LDY ,X |
0160 D528 26 03 BNE ZD52D |
0161 D52A 1C FB ANDCC #$FB |
0162 D52C 39 RTS |
0163 |
0164 D52D 10 A3 84 ZD52D CMPD ,X |
0165 D530 26 01 BNE ZD533 |
0166 D532 39 RTS |
0167 D533 AE 84 ZD533 LDX ,X |
0168 D535 20 EE BRA ZD525 |
0169 |
0170 D537 BE D4 0B ZD537 LDX >CURFCB |
0171 D53A 4F CLRA |
0172 D53B 5F CLRB |
0173 D53C 8D 02 BSR ZD540 |
0174 D53E C6 2F LDB #$2F |
0175 D540 A7 88 11 ZD540 STA $11,X |
0176 D543 30 01 LEAX $01,X |
0177 D545 5A DECB |
0178 D546 26 F8 BNE ZD540 |
0179 D548 39 RTS |
0180 |
0181 D549 BE D4 0B ZD549 LDX >CURFCB |
0182 D54C C6 0B LDB #$0B |
0183 D54E A6 04 ZD54E LDA $04,X |
0184 D550 A7 88 24 STA $24,X |
0185 D553 30 01 LEAX $01,X |
0186 D555 5A DECB |
0187 D556 26 F6 BNE ZD54E |
0188 D558 39 RTS |
0189 |
0190 D559 BE D4 0B ZD559 LDX >CURFCB |
0191 D55C C6 0B LDB #$0B |
0192 D55E A6 04 ZD55E LDA $04,X |
0193 D560 34 02 PSHS A |
0194 D562 A6 88 24 LDA $24,X |
0195 D565 A1 E0 CMPA ,S+ |
0196 D567 26 05 BNE ZD56E |
0197 D569 30 01 LEAX $01,X |
0198 D56B 5A DECB |
0199 D56C 26 F0 BNE ZD55E |
0200 D56E 39 ZD56E RTS |
0201 * |
0202 ** GET RANDOM BYTE FROM SECTOR |
0203 * |
0204 D56F BE D4 0B GETBYT LDX >CURFCB |
0205 D572 E6 02 LDB $02,X |
0206 D574 54 LSRB |
0207 D575 24 79 BCC ZD5F0 |
0208 D577 E6 88 23 LDB $23,X |
0209 D57A 7E D6 00 JMP >ZD600 |
0210 |
0211 D57D BE D4 0B ZD57D LDX >CURFCB |
0212 D580 E6 88 22 LDB $22,X |
0213 D583 6C 88 22 INC $22,X |
0214 D586 3A ABX |
0215 D587 A7 88 40 STA $40,X |
0216 D58A 5C INCB |
0217 D58B 26 1F BNE ZD5AC |
0218 D58D 1A 01 ORCC #$01 |
0219 D58F 39 RTS |
0220 * |
0221 ** PUT RANDOM BYTE IN SECTOR |
0222 * |
0223 D590 BE D4 0B PUTBYT LDX >CURFCB |
0224 D593 E6 02 LDB $02,X |
0225 D595 C4 03 ANDB #$03 |
0226 D597 C1 03 CMPB #$03 |
0227 D599 26 55 BNE ZD5F0 |
0228 D59B CA 80 ORB #$80 |
0229 D59D E7 02 STB $02,X |
0230 D59F E6 0F LDB $0F,X |
0231 D5A1 C5 80 BITB #$80 |
0232 D5A3 26 0A BNE ZD5AF |
0233 D5A5 E6 88 23 LDB $23,X |
0234 D5A8 3A ABX |
0235 D5A9 A7 88 40 STA $40,X |
0236 D5AC 1C FE ZD5AC ANDCC #$FE |
0237 D5AE 39 RTS |
0238 |
0239 D5AF C6 0B ZD5AF LDB #$0B |
0240 D5B1 1A 01 ORCC #$01 |
0241 D5B3 39 RTS |
0242 |
0243 D5B4 A6 88 3B ZD5B4 LDA $3B,X |
0244 D5B7 2B 3C BMI ZD5F5 |
0245 D5B9 27 07 BEQ ZD5C2 |
0246 D5BB 6A 88 3B DEC $3B,X |
0247 D5BE 86 20 LDA #$20 |
0248 D5C0 20 1D BRA ZD5DF |
0249 |
0250 D5C2 8D 31 ZD5C2 BSR ZD5F5 |
0251 D5C4 25 1B BCS ZD5E1 |
0252 D5C6 81 18 CMPA #$18 |
0253 D5C8 22 15 BHI ZD5DF |
0254 D5CA 27 F6 BEQ ZD5C2 |
0255 D5CC 81 09 CMPA #$09 |
0256 D5CE 26 0C BNE ZD5DC |
0257 D5D0 8D 23 BSR ZD5F5 |
0258 D5D2 25 0D BCS ZD5E1 |
0259 D5D4 BE D4 0B LDX >CURFCB |
0260 D5D7 A7 88 3B STA $3B,X |
0261 D5DA 20 D8 BRA ZD5B4 |
0262 |
0263 D5DC 4D ZD5DC TSTA |
0264 D5DD 27 E3 BEQ ZD5C2 |
0265 D5DF 1C FE ZD5DF ANDCC #$FE |
0266 D5E1 39 ZD5E1 RTS |
0267 * |
0268 ** REWIND FILE |
0269 * |
0270 D5E2 BD DA B1 REWIND JSR >ZDAB1 |
0271 D5E5 25 09 BCS ZD5F0 |
0272 D5E7 85 01 BITA #$01 |
0273 D5E9 27 05 BEQ ZD5F0 |
0274 D5EB A7 84 STA ,X |
0275 D5ED 7E D9 A0 JMP >ZD9A0 |
0276 |
0277 D5F0 C6 12 ZD5F0 LDB #$12 |
0278 D5F2 1A 01 ORCC #$01 |
0279 D5F4 39 RTS |
0280 |
0281 D5F5 BE D4 0B ZD5F5 LDX >CURFCB |
0282 D5F8 E6 88 22 LDB $22,X |
0283 D5FB 27 0A BEQ ZD607 |
0284 D5FD 6C 88 22 INC $22,X |
0285 D600 3A ZD600 ABX |
0286 D601 A6 88 40 LDA $40,X |
0287 D604 1C FE ANDCC #$FE |
0288 D606 39 RTS |
0289 |
0290 D607 8D 03 ZD607 BSR ZD60C |
0291 D609 24 EA BCC ZD5F5 |
0292 D60B 39 RTS |
0293 |
0294 D60C BE D4 0B ZD60C LDX >CURFCB |
0295 D60F EC 88 40 LDD $40,X |
0296 D612 6C 88 21 INC $21,X |
0297 D615 26 03 BNE ZD61A |
0298 D617 6C 88 20 INC $20,X |
0299 D61A 10 83 00 00 ZD61A CMPD #$0000 |
0300 D61E 27 1C BEQ ZD63C |
0301 D620 ED 88 1E ZD620 STD $1E,X |
0302 D623 34 02 PSHS A |
0303 D625 86 04 LDA #$04 |
0304 D627 A7 88 22 STA $22,X |
0305 D62A 35 02 PULS A |
0306 D62C 8D 13 BSR RDSECT |
0307 D62E 24 10 BCC ZD640 |
0308 D630 C5 80 BITB #$80 |
0309 D632 27 04 BEQ ZD638 |
0310 D634 C6 10 LDB #$10 |
0311 D636 20 06 BRA ZD63E |
0312 |
0313 D638 C6 09 ZD638 LDB #$09 |
0314 D63A 20 02 BRA ZD63E |
0315 |
0316 D63C C6 08 ZD63C LDB #$08 |
0317 D63E 1A 01 ZD63E ORCC #$01 |
0318 D640 39 ZD640 RTS |
0319 * |
0320 ** READ SINGLE SECTOR |
0321 * |
0322 D641 8D 25 RDSECT BSR ZD668 |
0323 D643 BE D4 0B LDX >CURFCB |
0324 D646 BD DE 0C JSR >DRIVE |
0325 D649 25 12 BCS ZD65D |
0326 D64B 8D 11 ZD64B BSR ZD65E |
0327 D64D BD DE 00 JSR >READ |
0328 D650 26 03 BNE ZD655 |
0329 D652 1C FE ANDCC #$FE |
0330 D654 39 RTS |
0331 |
0332 D655 34 04 ZD655 PSHS B |
0333 D657 8D 17 BSR ZD670 |
0334 D659 35 04 PULS B |
0335 D65B 24 EE BCC ZD64B |
0336 D65D 39 ZD65D RTS |
0337 |
0338 D65E BE D4 0B ZD65E LDX >CURFCB |
0339 D661 EC 88 1E LDD $1E,X |
0340 D664 30 88 40 LEAX $40,X |
0341 D667 39 RTS |
0342 |
0343 D668 4F ZD668 CLRA |
0344 D669 B7 D4 11 STA >ZD411 |
0345 D66C B7 D4 12 STA >ZD412 |
0346 D66F 39 RTS |
0347 |
0348 D670 C5 10 ZD670 BITB #$10 |
0349 D672 26 11 BNE ZD685 |
0350 D674 C5 80 BITB #$80 |
0351 D676 26 24 BNE ZD69C |
0352 D678 F6 D4 11 LDB >ZD411 |
0353 D67B 5C INCB |
0354 D67C C1 07 CMPB #$07 |
0355 D67E 27 05 BEQ ZD685 |
0356 D680 F7 D4 11 STB >ZD411 |
0357 D683 20 14 BRA RESV2 |
0358 |
0359 D685 7F D4 11 ZD685 CLR >ZD411 |
0360 D688 F6 D4 12 LDB >ZD412 |
0361 D68B 5C INCB |
0362 D68C C1 04 CMPB #$04 |
0363 D68E 27 0C BEQ ZD69C |
0364 D690 F7 D4 12 STB >ZD412 |
0365 D693 BE D4 0B LDX >CURFCB |
0366 D696 BD DE 09 JSR >RESTOR |
0367 * |
0368 ** RESERVED |
0369 * |
0370 D699 1C FE RESV2 ANDCC #$FE |
0371 D69B 39 RTS |
0372 D69C 1A 01 ZD69C ORCC #$01 |
0373 D69E 39 RTS |
0374 * |
0375 ** WRITE SINGLE SECTOR |
0376 * |
0377 D69F 8D C7 WRSECT BSR ZD668 |
0378 D6A1 BE D4 0B LDX >CURFCB |
0379 D6A4 BD DE 0C JSR >DRIVE |
0380 D6A7 25 20 BCS ZD6C9 |
0381 D6A9 BE D4 0B ZD6A9 LDX >CURFCB |
0382 D6AC 8D B0 BSR ZD65E |
0383 D6AE BD DE 03 JSR >WRITE |
0384 D6B1 26 0A BNE ZD6BD |
0385 D6B3 B6 D4 35 LDA >VERFLG |
0386 D6B6 27 37 BEQ ZD6EF |
0387 D6B8 BD DE 06 JSR >VERIFY |
0388 D6BB 27 32 BEQ ZD6EF |
0389 D6BD C5 40 ZD6BD BITB #$40 |
0390 D6BF 26 0B BNE ZD6CC |
0391 D6C1 34 04 PSHS B |
0392 D6C3 8D AB BSR ZD670 |
0393 D6C5 35 04 PULS B |
0394 D6C7 24 E0 BCC ZD6A9 |
0395 D6C9 39 ZD6C9 RTS |
0396 |
0397 D6CA C6 20 LDB #$20 |
0398 D6CC 1A 01 ZD6CC ORCC #$01 |
0399 D6CE 39 RTS |
0400 |
0401 D6CF BE D4 0B ZD6CF LDX >CURFCB |
0402 D6D2 E6 88 3B LDB $3B,X |
0403 D6D5 2B 3D BMI ZD714 |
0404 D6D7 81 20 CMPA #$20 |
0405 D6D9 26 0F BNE ZD6EA |
0406 D6DB 5C INCB |
0407 D6DC E7 88 3B STB $3B,X |
0408 D6DF C1 7F CMPB #$7F |
0409 D6E1 26 0C BNE ZD6EF |
0410 D6E3 20 0D BRA ZD6F2 |
0411 |
0412 D6E5 8D 0B ZD6E5 BSR ZD6F2 |
0413 D6E7 24 E6 BCC ZD6CF |
0414 D6E9 39 RTS |
0415 |
0416 D6EA 5D ZD6EA TSTB |
0417 D6EB 27 27 BEQ ZD714 |
0418 D6ED 20 F6 BRA ZD6E5 |
0419 |
0420 D6EF 1C FE ZD6EF ANDCC #$FE |
0421 D6F1 39 RTS |
0422 |
0423 D6F2 34 02 ZD6F2 PSHS A |
0424 D6F4 C1 01 CMPB #$01 |
0425 D6F6 26 04 BNE ZD6FC |
0426 D6F8 86 20 LDA #$20 |
0427 D6FA 20 10 BRA ZD70C |
0428 |
0429 D6FC 86 09 ZD6FC LDA #$09 |
0430 D6FE 8D 14 BSR ZD714 |
0431 D700 35 02 PULS A |
0432 D702 25 0F BCS ZD713 |
0433 D704 34 02 PSHS A |
0434 D706 BE D4 0B LDX >CURFCB |
0435 D709 A6 88 3B LDA $3B,X |
0436 D70C 6F 88 3B ZD70C CLR $3B,X |
0437 D70F 8D 03 BSR ZD714 |
0438 D711 35 02 PULS A |
0439 D713 39 ZD713 RTS |
0440 |
0441 D714 BE D4 0B ZD714 LDX >CURFCB |
0442 D717 E6 02 LDB $02,X |
0443 D719 C1 02 CMPB #$02 |
0444 D71B 10 26 FE D1 LBNE ZD5F0 |
0445 D71F E6 88 22 LDB $22,X |
0446 D722 C1 04 CMPB #$04 |
0447 D724 26 08 BNE ZD72E |
0448 D726 34 02 PSHS A |
0449 D728 8D 21 BSR ZD74B |
0450 D72A 35 02 PULS A |
0451 D72C 25 0F BCS ZD73D |
0452 D72E BD D5 7D ZD72E JSR >ZD57D |
0453 D731 24 0A BCC ZD73D |
0454 D733 C6 04 LDB #$04 |
0455 D735 BE D4 0B LDX >CURFCB |
0456 D738 E7 88 22 STB $22,X |
0457 D73B 1C FE ANDCC #$FE |
0458 D73D 39 ZD73D RTS |
0459 |
0460 D73E BE D4 0B ZD73E LDX >CURFCB |
0461 D741 4F CLRA |
0462 D742 5F CLRB |
0463 D743 ED 88 20 STD $20,X |
0464 D746 ED 88 42 STD $42,X |
0465 D749 20 27 BRA ZD772 |
0466 |
0467 D74B E6 88 12 ZD74B LDB $12,X |
0468 D74E 26 22 BNE ZD772 |
0469 D750 E6 88 17 LDB $17,X |
0470 D753 27 44 BEQ ZD799 |
0471 D755 6F 88 17 CLR $17,X |
0472 D758 8D 3F BSR ZD799 |
0473 D75A 25 2A BCS ZD786 |
0474 D75C 8D E0 BSR ZD73E |
0475 D75E 25 26 BCS ZD786 |
0476 D760 8D DC BSR ZD73E |
0477 D762 25 22 BCS ZD786 |
0478 D764 BE D4 0B LDX >CURFCB |
0479 D767 C6 02 LDB #$02 |
0480 D769 E7 88 17 STB $17,X |
0481 D76C EC 88 11 LDD $11,X |
0482 D76F 7E DC 82 JMP >ZDC82 |
0483 |
0484 D772 8D 0E ZD772 BSR ZD782 |
0485 D774 BE D4 0B LDX >CURFCB |
0486 D777 ED 88 40 STD $40,X |
0487 D77A BD D6 9F JSR >WRSECT |
0488 D77D 24 1A BCC ZD799 |
0489 D77F 7E DB C1 JMP >ZDBC1 |
0490 |
0491 D782 8D 03 ZD782 BSR ZD787 |
0492 D784 EC 84 LDD ,X |
0493 D786 39 ZD786 RTS |
0494 |
0495 D787 BE D4 0B ZD787 LDX >CURFCB |
0496 D78A E6 03 LDB $03,X |
0497 D78C 86 06 LDA #$06 |
0498 D78E 3D MUL |
0499 D78F 8E D4 1D LDX #ZD41D |
0500 D792 3A ABX |
0501 D793 BF D4 1B STX >ZD41B |
0502 D796 6D 84 TST ,X |
0503 D798 39 RTS |
0504 |
0505 D799 8D E7 ZD799 BSR ZD782 |
0506 D79B 26 05 BNE ZD7A2 |
0507 D79D C6 07 LDB #$07 |
0508 D79F 1A 01 ZD79F ORCC #$01 |
0509 D7A1 39 RTS |
0510 |
0511 D7A2 BE D4 0B ZD7A2 LDX >CURFCB |
0512 D7A5 ED 88 13 STD $13,X |
0513 D7A8 6D 88 12 TST $12,X |
0514 D7AB 26 03 BNE ZD7B0 |
0515 D7AD ED 88 11 STD $11,X |
0516 D7B0 6C 88 16 ZD7B0 INC $16,X |
0517 D7B3 26 03 BNE ZD7B8 |
0518 D7B5 6C 88 15 INC $15,X |
0519 D7B8 6D 88 17 ZD7B8 TST $17,X |
0520 D7BB 27 0B BEQ ZD7C8 |
0521 D7BD BD DC 43 JSR >ZDC43 |
0522 D7C0 25 DD BCS ZD79F |
0523 D7C2 BE D4 0B LDX >CURFCB |
0524 D7C5 EC 88 13 LDD $13,X |
0525 D7C8 BD D6 20 ZD7C8 JSR >ZD620 |
0526 D7CB 25 D2 BCS ZD79F |
0527 D7CD BE D4 0B LDX >CURFCB |
0528 D7D0 EC 88 40 LDD $40,X |
0529 D7D3 34 06 PSHS B,A |
0530 D7D5 8D B0 BSR ZD787 |
0531 D7D7 35 06 PULS B,A |
0532 D7D9 ED 84 STD ,X |
0533 D7DB 26 0A BNE ZD7E7 |
0534 D7DD 6F 02 CLR $02,X |
0535 D7DF 6F 03 CLR $03,X |
0536 D7E1 6F 04 CLR $04,X |
0537 D7E3 6F 05 CLR $05,X |
0538 D7E5 20 08 BRA ZD7EF |
0539 |
0540 D7E7 10 AE 04 ZD7E7 LDY $04,X |
0541 D7EA 31 3F LEAY -$01,Y |
0542 D7EC 10 AF 04 STY $04,X |
0543 D7EF 4F ZD7EF CLRA |
0544 D7F0 BE D4 0B LDX >CURFCB |
0545 D7F3 6C 88 21 INC $21,X |
0546 D7F6 26 03 BNE ZD7FB |
0547 D7F8 6C 88 20 INC $20,X |
0548 D7FB 5F ZD7FB CLRB |
0549 D7FC A7 88 40 ZD7FC STA $40,X |
0550 D7FF 30 01 LEAX $01,X |
0551 D801 5A DECB |
0552 D802 26 F8 BNE ZD7FC |
0553 D804 BE D4 0B LDX >CURFCB |
0554 D807 EC 88 20 LDD $20,X |
0555 D80A ED 88 42 STD $42,X |
0556 D80D 1C FE ANDCC #$FE |
0557 D80F 39 RTS |
0558 * |
0559 ** OPEN SYSTEM INFO. RECORD |
0560 * |
0561 D810 5F OPNREC CLRB |
0562 D811 34 04 PSHS B |
0563 D813 C6 03 LDB #$03 |
0564 D815 20 0E BRA ZD825 |
0565 D817 BE D4 15 LDX >ZD415 |
0566 D81A BF D4 13 STX >ZD413 |
0567 D81D F6 D4 13 OPNDIR LDB >ZD413 |
0568 D820 34 04 PSHS B |
0569 D822 F6 D4 14 LDB >ZD414 |
0570 D825 BE D4 0B ZD825 LDX >CURFCB |
0571 D828 E7 88 41 STB $41,X |
0572 D82B 35 04 PULS B |
0573 D82D E7 88 40 STB $40,X |
0574 D830 7F D4 18 CLR >ZD418 |
0575 D833 5F CLRB |
0576 D834 E7 88 22 STB $22,X |
0577 D837 39 RTS |
0578 * |
0579 ** GET INFO RECORD |
0580 * |
0581 D838 BE D4 0B GETREC LDX >CURFCB |
0582 D83B E6 88 22 LDB $22,X |
0583 D83E 26 1D BNE ZD85D |
0584 D840 BD D6 0C JSR >ZD60C |
0585 D843 25 30 BCS ZD875 |
0586 D845 BE D4 0B LDX >CURFCB |
0587 D848 7D D4 18 TST >ZD418 |
0588 D84B 26 05 BNE ZD852 |
0589 D84D DC 44 LDD <Z0044 |
0590 D84F FD D4 18 STD >ZD418 |
0591 D852 86 10 ZD852 LDA #$10 |
0592 D854 A7 88 22 STA $22,X |
0593 D857 EC 88 1E LDD $1E,X |
0594 D85A ED 88 2F STD $2F,X |
0595 D85D A6 88 22 ZD85D LDA $22,X |
0596 D860 A7 88 31 STA $31,X |
0597 D863 C6 18 LDB #$18 |
0598 D865 34 14 ZD865 PSHS X,B |
0599 D867 BD D5 F5 JSR >ZD5F5 |
0600 D86A 35 14 PULS X,B |
0601 D86C A7 04 STA $04,X |
0602 D86E 30 01 LEAX $01,X |
0603 D870 5A DECB |
0604 D871 26 F2 BNE ZD865 |
0605 D873 1C FE ANDCC #$FE |
0606 D875 39 ZD875 RTS |
0607 * |
0608 ** PUT INFORMATION RECORD |
0609 * |
0610 D876 BE D4 0B PUTREC LDX >CURFCB |
0611 D879 A6 88 31 LDA $31,X |
0612 D87C A7 88 22 STA $22,X |
0613 D87F C6 18 LDB #$18 |
0614 D881 34 14 ZD881 PSHS X,B |
0615 D883 A6 04 LDA $04,X |
0616 D885 BD D7 14 JSR >ZD714 |
0617 D888 35 14 PULS X,B |
0618 D88A 30 01 LEAX $01,X |
0619 D88C 5A DECB |
0620 D88D 26 F2 BNE ZD881 |
0621 D88F 7E D6 9F JMP >WRSECT |
0622 |
0623 D892 BE D4 0B ZD892 LDX >CURFCB |
0624 D895 A6 03 LDA $03,X |
0625 D897 A7 88 23 STA $23,X |
0626 D89A B6 D4 17 LDA >ZD417 |
0627 D89D 7D D4 1A TST >ZD41A |
0628 D8A0 26 31 BNE ZD8D3 |
0629 D8A2 A7 03 STA $03,X |
0630 D8A4 BE D4 15 LDX >ZD415 |
0631 D8A7 BF D4 13 STX >ZD413 |
0632 D8AA 8C 00 05 ZD8AA CMPX #Z0005 |
0633 D8AD 27 0C BEQ ZD8BB |
0634 D8AF 8D 22 BSR ZD8D3 |
0635 D8B1 23 37 BLS ZD8EA |
0636 D8B3 BE D4 18 LDX >ZD418 |
0637 D8B6 BF D4 13 STX >ZD413 |
0638 D8B9 20 EF BRA ZD8AA |
0639 |
0640 D8BB BE D4 0B ZD8BB LDX >CURFCB |
0641 D8BE A6 88 23 LDA $23,X |
0642 D8C1 A7 03 STA $03,X |
0643 D8C3 2A 0E BPL ZD8D3 |
0644 D8C5 BD DD BD ZD8C5 JSR >NXTDRV |
0645 D8C8 25 36 BCS ZD900 |
0646 D8CA 8D 07 BSR ZD8D3 |
0647 D8CC 23 1C BLS ZD8EA |
0648 D8CE BD DD AD JSR >ZDDAD |
0649 D8D1 20 F2 BRA ZD8C5 |
0650 |
0651 D8D3 BE D4 0B ZD8D3 LDX >CURFCB |
0652 D8D6 7F D4 1A CLR >ZD41A |
0653 D8D9 BD D5 49 JSR >ZD549 |
0654 D8DC BD D8 1D JSR >OPNDIR |
0655 D8DF BD D8 38 ZD8DF JSR >GETREC |
0656 D8E2 24 07 BCC ZD8EB |
0657 D8E4 C1 08 CMPB #$08 |
0658 D8E6 27 18 BEQ ZD900 |
0659 D8E8 1A 01 ORCC #$01 |
0660 D8EA 39 ZD8EA RTS |
0661 |
0662 D8EB BE D4 0B ZD8EB LDX >CURFCB |
0663 D8EE A6 04 LDA $04,X |
0664 D8F0 27 0C BEQ ZD8FE |
0665 D8F2 2A 02 BPL ZD8F6 |
0666 D8F4 8D 0F BSR ZD905 |
0667 D8F6 BD D5 59 ZD8F6 JSR >ZD559 |
0668 D8F9 26 E4 BNE ZD8DF |
0669 D8FB 1C FE ANDCC #$FE |
0670 D8FD 39 RTS |
0671 |
0672 D8FE 8D 05 ZD8FE BSR ZD905 |
0673 D900 1C FB ZD900 ANDCC #$FB |
0674 D902 1C FE ANDCC #$FE |
0675 D904 39 RTS |
0676 |
0677 D905 A6 88 33 ZD905 LDA $33,X |
0678 D908 26 0C BNE ZD916 |
0679 D90A EC 88 2F LDD $2F,X |
0680 D90D ED 88 32 STD $32,X |
0681 D910 A6 88 31 LDA $31,X |
0682 D913 A7 88 34 STA $34,X |
0683 D916 39 ZD916 RTS |
0684 |
0685 D917 BD D7 87 ZD917 JSR >ZD787 |
0686 D91A 26 17 BNE ZD933 |
0687 D91C 8D 18 BSR ZD936 |
0688 D91E 25 15 BCS ZD935 |
0689 D920 C6 06 LDB #$06 |
0690 D922 10 BE D4 0B LDY >CURFCB |
0691 D926 BE D4 1B LDX >ZD41B |
0692 D929 A6 A8 5D ZD929 LDA $5D,Y |
0693 D92C 31 21 LEAY $01,Y |
0694 D92E A7 80 STA ,X+ |
0695 D930 5A DECB |
0696 D931 26 F6 BNE ZD929 |
0697 D933 1C FE ZD933 ANDCC #$FE |
0698 D935 39 ZD935 RTS |
0699 |
0700 D936 BD D8 10 ZD936 JSR >OPNREC |
0701 D939 BD D6 0C JSR >ZD60C |
0702 D93C 25 08 BCS ZD946 |
0703 D93E BE D4 0B LDX >CURFCB |
0704 D941 C6 10 LDB #$10 |
0705 D943 E7 88 22 STB $22,X |
0706 D946 39 ZD946 RTS |
0707 |
0708 D947 BD D7 87 ZD947 JSR >ZD787 |
0709 D94A 8D EA BSR ZD936 |
0710 D94C 25 F8 BCS ZD946 |
0711 D94E C6 06 LDB #$06 |
0712 D950 10 BE D4 0B LDY >CURFCB |
0713 D954 BE D4 1B LDX >ZD41B |
0714 D957 A6 80 ZD957 LDA ,X+ |
0715 D959 A7 A8 5D STA $5D,Y |
0716 D95C 31 21 LEAY $01,Y |
0717 D95E 5A DECB |
0718 D95F 26 F6 BNE ZD957 |
0719 D961 BD D6 9F JSR >WRSECT |
0720 D964 24 E0 BCC ZD946 |
0721 D966 7E DB C1 JMP >ZDBC1 |
0722 * |
0723 ** |
0724 * |
0725 D969 BE D4 0B RESV1 LDX >CURFCB |
0726 D96C 86 02 LDA #$02 |
0727 D96E A7 02 STA $02,X |
0728 D970 EC 88 2F LDD $2F,X |
0729 D973 ED 88 1E STD $1E,X |
0730 D976 BD D6 41 JSR >RDSECT |
0731 D979 25 08 BCS ZD983 |
0732 D97B BD D8 76 JSR >PUTREC |
0733 D97E 24 05 BCC ZD985 |
0734 D980 7E DB C1 JMP >ZDBC1 |
0735 |
0736 D983 C6 0A ZD983 LDB #$0A |
0737 D985 39 ZD985 RTS |
0738 * |
0739 ** OPEN FOR READ |
0740 * |
0741 D986 BD D4 FA OPENRD JSR >ZD4FA |
0742 D989 25 3D BCS ZD9C8 |
0743 D98B BD D8 92 JSR >ZD892 |
0744 D98E 25 38 BCS ZD9C8 |
0745 D990 26 3B BNE ZD9CD |
0746 D992 BE D4 0B LDX >CURFCB |
0747 D995 7D D4 1A TST >ZD41A |
0748 D998 27 06 BEQ ZD9A0 |
0749 D99A A6 0F LDA $0F,X |
0750 D99C 85 20 BITA #$20 |
0751 D99E 26 29 BNE ZD9C9 |
0752 D9A0 BD DC C0 ZD9A0 JSR >ZDCC0 |
0753 D9A3 25 2A BCS ZD9CF |
0754 D9A5 EC 88 11 LDD $11,X |
0755 D9A8 ED 88 40 STD $40,X |
0756 D9AB BD DA 76 JSR >ZDA76 |
0757 D9AE E6 88 17 LDB $17,X |
0758 D9B1 27 13 BEQ ZD9C6 |
0759 D9B3 34 04 ZD9B3 PSHS B |
0760 D9B5 BD D6 0C JSR >ZD60C |
0761 D9B8 35 04 PULS B |
0762 D9BA 25 0C BCS ZD9C8 |
0763 D9BC 5A DECB |
0764 D9BD 26 F4 BNE ZD9B3 |
0765 D9BF BE D4 0B LDX >CURFCB |
0766 D9C2 5F CLRB |
0767 D9C3 E7 88 22 STB $22,X |
0768 D9C6 1C FE ZD9C6 ANDCC #$FE |
0769 D9C8 39 ZD9C8 RTS |
0770 |
0771 D9C9 C6 11 ZD9C9 LDB #$11 |
0772 D9CB 20 02 BRA ZD9CF |
0773 |
0774 D9CD C6 04 ZD9CD LDB #$04 |
0775 D9CF 34 04 ZD9CF PSHS B |
0776 D9D1 BD D5 0C JSR >ZD50C |
0777 D9D4 35 04 PULS B |
0778 D9D6 1A 01 ORCC #$01 |
0779 D9D8 39 RTS |
0780 |
0781 D9D9 BE D4 0B OPENWR LDX >CURFCB |
0782 D9DC 6D 03 TST $03,X |
0783 D9DE 2A 08 BPL ZD9E8 |
0784 D9E0 BD DD BD JSR >NXTDRV |
0785 D9E3 24 03 BCC ZD9E8 |
0786 D9E5 C6 10 LDB #$10 |
0787 D9E7 39 RTS |
0788 |
0789 D9E8 BD D4 FA ZD9E8 JSR >ZD4FA |
0790 D9EB 25 E2 BCS ZD9CF |
0791 D9ED BD D5 37 JSR >ZD537 |
0792 D9F0 BD D9 17 JSR >ZD917 |
0793 D9F3 25 DA BCS ZD9CF |
0794 D9F5 BD D8 92 JSR >ZD892 |
0795 D9F8 25 D5 BCS ZD9CF |
0796 D9FA 26 04 BNE ZDA00 |
0797 D9FC C6 03 LDB #$03 |
0798 D9FE 20 CF BRA ZD9CF |
0799 |
0800 DA00 BD DC C0 ZDA00 JSR >ZDCC0 |
0801 DA03 25 CA BCS ZD9CF |
0802 DA05 BE D4 0B LDX >CURFCB |
0803 DA08 C6 0A LDB #$0A |
0804 DA0A 6F 0F ZDA0A CLR $0F,X |
0805 DA0C 30 01 LEAX $01,X |
0806 DA0E 5A DECB |
0807 DA0F 26 F9 BNE ZDA0A |
0808 DA11 BE D4 0B LDX >CURFCB |
0809 DA14 EC 88 32 LDD $32,X |
0810 DA17 27 27 BEQ ZDA40 |
0811 DA19 ED 88 2F STD $2F,X |
0812 DA1C A6 88 34 LDA $34,X |
0813 DA1F A7 88 31 STA $31,X |
0814 DA22 FC CC 0E LDD >DATERG |
0815 DA25 ED 88 19 STD $19,X |
0816 DA28 B6 CC 10 LDA >YEAR |
0817 DA2B A7 88 1B STA $1B,X |
0818 DA2E BD DD AD JSR >ZDDAD |
0819 DA31 BD D9 69 JSR >RESV1 |
0820 DA34 25 99 BCS ZD9CF |
0821 DA36 8D 3E BSR ZDA76 |
0822 DA38 86 04 LDA #$04 |
0823 DA3A A7 88 22 STA $22,X |
0824 DA3D 1C FE ANDCC #$FE |
0825 DA3F 39 RTS |
0826 |
0827 DA40 BE D4 0B ZDA40 LDX >CURFCB |
0828 DA43 6F 88 17 CLR $17,X |
0829 DA46 6C 88 12 INC $12,X |
0830 DA49 EC 88 2F LDD $2F,X |
0831 DA4C BD D6 20 JSR >ZD620 |
0832 DA4F 25 0D BCS ZDA5E |
0833 DA51 BD D7 72 JSR >ZD772 |
0834 DA54 25 08 BCS ZDA5E |
0835 DA56 BD D6 9F JSR >WRSECT |
0836 DA59 24 06 BCC ZDA61 |
0837 DA5B BD DB C1 JSR >ZDBC1 |
0838 DA5E 7E D9 CF ZDA5E JMP >ZD9CF |
0839 |
0840 DA61 BE D4 0B ZDA61 LDX >CURFCB |
0841 DA64 EC 88 1E LDD $1E,X |
0842 DA67 ED 88 32 STD $32,X |
0843 DA6A 86 10 LDA #$10 |
0844 DA6C A7 88 34 STA $34,X |
0845 DA6F BD D9 47 JSR >ZD947 |
0846 DA72 25 EA BCS ZDA5E |
0847 DA74 20 8A BRA ZDA00 |
0848 |
0849 DA76 BE D4 0B ZDA76 LDX >CURFCB |
0850 DA79 A6 84 LDA ,X |
0851 DA7B A7 02 STA $02,X |
0852 DA7D 6F 84 CLR ,X |
0853 DA7F 6F 88 3B CLR $3B,X |
0854 DA82 4F CLRA |
0855 DA83 A7 88 22 STA $22,X |
0856 DA86 39 RTS |
0857 * |
0858 ** READ/WRITE NEXT SECTOR |
0859 * |
0860 DA87 8D 28 NXTSEC BSR ZDAB1 |
0861 DA89 25 0E BCS ZDA99 |
0862 DA8B 6F 84 CLR ,X |
0863 DA8D 44 LSRA |
0864 DA8E 10 25 FB 7A LBCS ZD60C |
0865 DA92 C6 04 LDB #$04 |
0866 DA94 E7 88 22 STB $22,X |
0867 DA97 1C FE ANDCC #$FE |
0868 DA99 39 ZDA99 RTS |
0869 |
0870 DA9A BE D4 0B ZDA9A LDX >CURFCB |
0871 DA9D A6 02 LDA $02,X |
0872 DA9F 81 83 CMPA #$83 |
0873 DAA1 26 0B BNE ZDAAE |
0874 DAA3 86 03 LDA #$03 |
0875 DAA5 A7 02 STA $02,X |
0876 DAA7 BD D6 9F ZDAA7 JSR >WRSECT |
0877 DAAA 10 25 01 13 LBCS ZDBC1 |
0878 DAAE 1C FE ZDAAE ANDCC #$FE |
0879 DAB0 39 RTS |
0880 |
0881 DAB1 8D E7 ZDAB1 BSR ZDA9A |
0882 DAB3 25 0D BCS ZDAC2 |
0883 DAB5 BE D4 0B LDX >CURFCB |
0884 DAB8 A6 02 LDA $02,X |
0885 DABA 81 03 CMPA #$03 |
0886 DABC 23 F0 BLS ZDAAE |
0887 DABE C6 12 LDB #$12 |
0888 DAC0 1A 01 ORCC #$01 |
0889 DAC2 39 ZDAC2 RTS |
0890 |
0891 DAC3 8D EC CLOSE BSR ZDAB1 |
0892 DAC5 25 31 BCS ZDAF8 |
0893 DAC7 81 02 CMPA #$02 |
0894 DAC9 27 08 BEQ ZDAD3 |
0895 DACB BE D4 0B ZDACB LDX >CURFCB |
0896 DACE 6F 02 CLR $02,X |
0897 DAD0 7E D5 0C JMP >ZD50C |
0898 |
0899 DAD3 A6 88 12 ZDAD3 LDA $12,X |
0900 DAD6 26 05 BNE ZDADD |
0901 DAD8 BD DB A7 JSR >ZDBA7 |
0902 DADB 20 19 BRA ZDAF6 |
0903 |
0904 DADD 8D C8 ZDADD BSR ZDAA7 |
0905 DADF 25 17 BCS ZDAF8 |
0906 DAE1 BE D4 0B LDX >CURFCB |
0907 DAE4 6D 88 17 TST $17,X |
0908 DAE7 27 05 BEQ ZDAEE |
0909 DAE9 BD DC 98 JSR >ZDC98 |
0910 DAEC 25 0A BCS ZDAF8 |
0911 DAEE BD D9 69 ZDAEE JSR >RESV1 |
0912 DAF1 25 05 BCS ZDAF8 |
0913 DAF3 BD D9 47 JSR >ZD947 |
0914 DAF6 24 D3 ZDAF6 BCC ZDACB |
0915 DAF8 39 ZDAF8 RTS |
0916 * |
0917 ** OPEN FOR UPDATE |
0918 * |
0919 DAF9 BD D9 86 OPENUD JSR >OPENRD |
0920 DAFC 25 28 BCS ZDB26 |
0921 DAFE BD D6 0C JSR >ZD60C |
0922 DB01 25 23 BCS ZDB26 |
0923 DB03 86 03 LDA #$03 |
0924 DB05 20 18 BRA ZDB1F |
0925 * |
0926 ** |
0927 * |
0928 DB07 BD D9 86 RESV3 JSR >OPENRD |
0929 DB0A 25 1A BCS ZDB26 |
0930 DB0C BE D4 0B LDX >CURFCB |
0931 DB0F A6 0F LDA $0F,X |
0932 DB11 85 80 BITA #$80 |
0933 DB13 26 12 BNE ZDB27 |
0934 DB15 EC 88 13 LDD $13,X |
0935 DB18 BD D6 20 JSR >ZD620 |
0936 DB1B 25 09 BCS ZDB26 |
0937 DB1D 86 02 LDA #$02 |
0938 DB1F BE D4 0B ZDB1F LDX >CURFCB |
0939 DB22 A7 02 STA $02,X |
0940 DB24 1C FE ANDCC #$FE |
0941 DB26 39 ZDB26 RTS |
0942 |
0943 DB27 C6 0B ZDB27 LDB #$0B |
0944 DB29 1A 01 ORCC #$01 |
0945 DB2B 39 RTS |
0946 * |
0947 ** RENAME FILE |
0948 * |
0949 DB2C 8D 35 RENAME BSR ZDB63 |
0950 DB2E BD D8 92 JSR >ZD892 |
0951 DB31 25 2A BCS ZDB5D |
0952 DB33 27 24 BEQ ZDB59 |
0953 DB35 BE D4 0B LDX >CURFCB |
0954 DB38 C6 0B LDB #$0B |
0955 DB3A A6 88 24 ZDB3A LDA $24,X |
0956 DB3D A7 04 STA $04,X |
0957 DB3F 30 01 LEAX $01,X |
0958 DB41 5A DECB |
0959 DB42 26 F6 BNE ZDB3A |
0960 DB44 8D 4D BSR ZDB93 |
0961 DB46 25 15 BCS ZDB5D |
0962 DB48 BE D4 0B LDX >CURFCB |
0963 DB4B A6 0F LDA $0F,X |
0964 DB4D 85 80 BITA #$80 |
0965 DB4F 26 D6 BNE ZDB27 |
0966 DB51 85 60 BITA #$60 |
0967 DB53 26 09 BNE ZDB5E |
0968 DB55 8D 0C BSR ZDB63 |
0969 DB57 20 55 BRA ZDBAE |
0970 |
0971 DB59 C6 03 ZDB59 LDB #$03 |
0972 DB5B 1A 01 ORCC #$01 |
0973 DB5D 39 ZDB5D RTS |
0974 DB5E C6 0C ZDB5E LDB #$0C |
0975 DB60 1A 01 ORCC #$01 |
0976 DB62 39 RTS |
0977 |
0978 DB63 BE D4 0B ZDB63 LDX >CURFCB |
0979 DB66 86 0B LDA #$0B |
0980 DB68 B7 D4 11 STA >ZD411 |
0981 DB6B A6 04 ZDB6B LDA $04,X |
0982 DB6D E6 88 35 LDB $35,X |
0983 DB70 A7 88 35 STA $35,X |
0984 DB73 E7 04 STB $04,X |
0985 DB75 30 01 LEAX $01,X |
0986 DB77 7A D4 11 DEC >ZD411 |
0987 DB7A 26 EF BNE ZDB6B |
0988 DB7C BE D4 0B LDX >CURFCB |
0989 DB7F A6 0C LDA $0C,X |
0990 DB81 26 0C BNE ZDB8F |
0991 DB83 C6 03 LDB #$03 |
0992 DB85 A6 88 3D ZDB85 LDA $3D,X |
0993 DB88 A7 0C STA $0C,X |
0994 DB8A 30 01 LEAX $01,X |
0995 DB8C 5A DECB |
0996 DB8D 26 F6 BNE ZDB85 |
0997 DB8F BE D4 0B ZDB8F LDX >CURFCB |
0998 DB92 39 RTS |
0999 |
1000 DB93 8D CE ZDB93 BSR ZDB63 |
1001 DB95 BD D8 92 ZDB95 JSR >ZD892 |
1002 DB98 25 07 BCS ZDBA1 |
1003 DB9A 26 06 BNE ZDBA2 |
1004 DB9C BE D4 0B LDX >CURFCB |
1005 DB9F 1C FE ANDCC #$FE |
1006 DBA1 39 ZDBA1 RTS |
1007 |
1008 DBA2 C6 04 ZDBA2 LDB #$04 |
1009 DBA4 1A 01 ORCC #$01 |
1010 DBA6 39 RTS |
1011 |
1012 DBA7 BE D4 0B ZDBA7 LDX >CURFCB |
1013 DBAA 86 FF LDA #$FF |
1014 DBAC A7 04 STA $04,X |
1015 DBAE BD D9 69 ZDBAE JSR >RESV1 |
1016 DBB1 BE D4 0B LDX >CURFCB |
1017 DBB4 86 00 LDA #$00 |
1018 DBB6 A7 02 STA $02,X |
1019 DBB8 39 RTS |
1020 |
1021 DBB9 ED 88 40 ZDBB9 STD $40,X |
1022 DBBC BD D6 9F JSR >WRSECT |
1023 DBBF 24 14 BCC ZDBD5 |
1024 DBC1 C5 40 ZDBC1 BITB #$40 |
1025 DBC3 26 08 BNE ZDBCD |
1026 DBC5 C5 80 BITB #$80 |
1027 DBC7 27 0A BEQ ZDBD3 |
1028 DBC9 C6 10 LDB #$10 |
1029 DBCB 20 06 BRA ZDBD3 |
1030 DBCD C6 0B ZDBCD LDB #$0B |
1031 DBCF 20 02 BRA ZDBD3 |
1032 |
1033 DBD1 C6 0A LDB #$0A |
1034 DBD3 1A 01 ZDBD3 ORCC #$01 |
1035 DBD5 39 ZDBD5 RTS |
1036 * |
1037 ** DELETE FILE |
1038 * |
1039 DBD6 BD D9 17 DELETE JSR >ZD917 |
1040 DBD9 25 5E BCS ZDC39 |
1041 DBDB 8D B8 BSR ZDB95 |
1042 DBDD 25 5A BCS ZDC39 |
1043 DBDF BE D4 0B LDX >CURFCB |
1044 DBE2 A6 0F LDA $0F,X |
1045 DBE4 85 80 BITA #$80 |
1046 DBE6 26 52 BNE ZDC3A |
1047 DBE8 85 60 BITA #$60 |
1048 DBEA 26 52 BNE ZDC3E |
1049 DBEC BD D7 87 JSR >ZD787 |
1050 DBEF BE D4 1B LDX >ZD41B |
1051 DBF2 EC 02 LDD $02,X |
1052 DBF4 26 0F BNE ZDC05 |
1053 DBF6 BE D4 0B LDX >CURFCB |
1054 DBF9 EC 88 11 LDD $11,X |
1055 DBFC 27 33 BEQ ZDC31 |
1056 DBFE BE D4 1B LDX >ZD41B |
1057 DC01 ED 84 STD ,X |
1058 DC03 20 14 BRA ZDC19 |
1059 |
1060 DC05 BE D4 0B ZDC05 LDX >CURFCB |
1061 DC08 BD D6 20 JSR >ZD620 |
1062 DC0B 25 2C BCS ZDC39 |
1063 DC0D BE D4 0B LDX >CURFCB |
1064 DC10 EC 88 11 LDD $11,X |
1065 DC13 27 1C BEQ ZDC31 |
1066 DC15 8D A2 BSR ZDBB9 |
1067 DC17 25 20 BCS ZDC39 |
1068 DC19 BE D4 0B ZDC19 LDX >CURFCB |
1069 DC1C EC 88 13 LDD $13,X |
1070 DC1F BE D4 1B LDX >ZD41B |
1071 DC22 ED 02 STD $02,X |
1072 DC24 BE D4 0B LDX >CURFCB |
1073 DC27 EC 88 15 LDD $15,X |
1074 DC2A BE D4 1B LDX >ZD41B |
1075 DC2D E3 04 ADDD $04,X |
1076 DC2F ED 04 STD $04,X |
1077 DC31 BD DB A7 ZDC31 JSR >ZDBA7 |
1078 DC34 25 03 BCS ZDC39 |
1079 DC36 BD D9 47 JSR >ZD947 |
1080 DC39 39 ZDC39 RTS |
1081 |
1082 DC3A C6 0B ZDC3A LDB #$0B |
1083 DC3C 20 02 BRA ZDC40 |
1084 DC3E C6 0C ZDC3E LDB #$0C |
1085 DC40 1A 01 ZDC40 ORCC #$01 |
1086 DC42 39 RTS |
1087 |
1088 DC43 EC 88 1E ZDC43 LDD $1E,X |
1089 DC46 5C INCB |
1090 DC47 E1 88 3C CMPB $3C,X |
1091 DC4A 23 03 BLS ZDC4F |
1092 DC4C C6 01 LDB #$01 |
1093 DC4E 4C INCA |
1094 DC4F 10 A3 88 13 ZDC4F CMPD $13,X |
1095 DC53 26 0E BNE ZDC63 |
1096 DC55 A6 88 37 LDA $37,X |
1097 DC58 81 FF CMPA #$FF |
1098 DC5A 27 07 BEQ ZDC63 |
1099 DC5C 4C INCA |
1100 DC5D A7 88 37 STA $37,X |
1101 DC60 1C FE ANDCC #$FE |
1102 DC62 39 RTS |
1103 |
1104 DC63 8D 33 ZDC63 BSR ZDC98 |
1105 DC65 25 30 BCS ZDC97 |
1106 DC67 BE D4 0B LDX >CURFCB |
1107 DC6A A6 88 3A LDA $3A,X |
1108 DC6D 8B 03 ADDA #$03 |
1109 DC6F 26 16 BNE ZDC87 |
1110 DC71 EC 88 1E LDD $1E,X |
1111 DC74 10 A3 88 11 CMPD $11,X |
1112 DC78 27 05 BEQ ZDC7F |
1113 DC7A C6 17 LDB #$17 |
1114 DC7C 1A 01 ORCC #$01 |
1115 DC7E 39 RTS |
1116 |
1117 DC7F EC 88 40 ZDC7F LDD $40,X |
1118 DC82 ED 88 38 ZDC82 STD $38,X |
1119 DC85 86 04 LDA #$04 |
1120 DC87 A7 88 3A ZDC87 STA $3A,X |
1121 DC8A EC 88 13 LDD $13,X |
1122 DC8D ED 88 35 STD $35,X |
1123 DC90 86 01 LDA #$01 |
1124 DC92 A7 88 37 STA $37,X |
1125 DC95 1C FE ANDCC #$FE |
1126 DC97 39 ZDC97 RTS |
1127 |
1128 DC98 EC 88 38 ZDC98 LDD $38,X |
1129 DC9B BD D6 20 JSR >ZD620 |
1130 DC9E 25 F7 BCS ZDC97 |
1131 DCA0 BE D4 0B LDX >CURFCB |
1132 DCA3 1F 12 TFR X,Y |
1133 DCA5 E6 88 3A LDB $3A,X |
1134 DCA8 3A ABX |
1135 DCA9 C6 03 LDB #$03 |
1136 DCAB A6 A8 35 ZDCAB LDA $35,Y |
1137 DCAE 31 21 LEAY $01,Y |
1138 DCB0 A7 88 40 STA $40,X |
1139 DCB3 30 01 LEAX $01,X |
1140 DCB5 5A DECB |
1141 DCB6 26 F3 BNE ZDCAB |
1142 DCB8 BD D6 9F JSR >WRSECT |
1143 DCBB 24 DA BCC ZDC97 |
1144 DCBD 7E DB C1 JMP >ZDBC1 |
1145 |
1146 DCC0 BD D8 10 ZDCC0 JSR >OPNREC |
1147 DCC3 BD D6 0C JSR >ZD60C |
1148 DCC6 25 46 BCS ZDD0E |
1149 DCC8 BE D4 0B LDX >CURFCB |
1150 DCCB 4F CLRA |
1151 DCCC 5F CLRB |
1152 DCCD ED 88 20 STD $20,X |
1153 DCD0 A6 88 67 LDA $67,X |
1154 DCD3 A7 88 3C STA $3C,X |
1155 DCD6 5F CLRB |
1156 DCD7 6F 88 40 ZDCD7 CLR $40,X |
1157 DCDA 30 01 LEAX $01,X |
1158 DCDC 5A DECB |
1159 DCDD 26 F8 BNE ZDCD7 |
1160 DCDF BE D4 0B LDX >CURFCB |
1161 DCE2 1C FE ANDCC #$FE |
1162 DCE4 39 RTS |
1163 * |
1164 ** BACKUP ONE RECORD |
1165 * |
1166 DCE5 BE D4 0B BAKREC LDX >CURFCB |
1167 DCE8 A6 88 17 LDA $17,X |
1168 DCEB 27 1D BEQ ZDD0A |
1169 DCED EC 88 20 LDD $20,X |
1170 DCF0 83 00 01 SUBD #$0001 |
1171 DCF3 2A 03 BPL ZDCF8 |
1172 DCF5 7E DD 9A JMP >ZDD9A |
1173 * |
1174 ** POSITION TO RECORD N |
1175 * |
1176 DCF8 ED 88 20 ZDCF8 STD $20,X |
1177 DCFB BD DA B1 POSREC JSR >ZDAB1 |
1178 DCFE 25 0E BCS ZDD0E |
1179 DD00 46 RORA |
1180 DD01 24 07 BCC ZDD0A |
1181 DD03 6F 84 CLR ,X |
1182 DD05 A6 88 17 LDA $17,X |
1183 DD08 26 05 BNE ZDD0F |
1184 DD0A C6 12 ZDD0A LDB #$12 |
1185 DD0C 1A 01 ORCC #$01 |
1186 DD0E 39 ZDD0E RTS |
1187 |
1188 DD0F 7F D4 11 ZDD0F CLR >ZD411 |
1189 DD12 EC 88 11 LDD $11,X |
1190 DD15 10 AE 88 20 LDY $20,X |
1191 DD19 27 6A BEQ ZDD85 |
1192 DD1B BD DD 9F JSR >ZDD9F |
1193 DD1E 25 EE BCS ZDD0E |
1194 DD20 4F CLRA |
1195 DD21 5F CLRB |
1196 DD22 6D 02 ZDD22 TST $02,X |
1197 DD24 27 74 BEQ ZDD9A |
1198 DD26 EB 02 ADDB $02,X |
1199 DD28 89 00 ADCA #$00 |
1200 DD2A BF D4 0F STX >ZD40F |
1201 DD2D BE D4 0B LDX >CURFCB |
1202 DD30 10 A3 88 20 CMPD $20,X |
1203 DD34 24 2C BCC ZDD62 |
1204 DD36 BE D4 0F LDX >ZD40F |
1205 DD39 30 03 LEAX $03,X |
1206 DD3B 34 02 PSHS A |
1207 DD3D B6 D4 11 LDA >ZD411 |
1208 DD40 4C INCA |
1209 DD41 B7 D4 11 STA >ZD411 |
1210 DD44 81 54 CMPA #$54 |
1211 DD46 27 08 BEQ ZDD50 |
1212 DD48 81 A8 CMPA #$A8 |
1213 DD4A 35 02 PULS A |
1214 DD4C 27 4C BEQ ZDD9A |
1215 DD4E 20 D2 BRA ZDD22 |
1216 |
1217 DD50 34 04 ZDD50 PSHS B |
1218 DD52 BE D4 0B LDX >CURFCB |
1219 DD55 EC 88 40 LDD $40,X |
1220 DD58 8D 45 BSR ZDD9F |
1221 DD5A 25 3E BCS ZDD9A |
1222 DD5C 35 04 PULS B |
1223 DD5E 35 02 PULS A |
1224 DD60 20 C0 BRA ZDD22 |
1225 |
1226 DD62 A3 88 20 ZDD62 SUBD $20,X |
1227 DD65 BE D4 0F LDX >ZD40F |
1228 DD68 A6 02 LDA $02,X |
1229 DD6A 34 04 PSHS B |
1230 DD6C A0 E0 SUBA ,S+ |
1231 DD6E 4A DECA |
1232 DD6F 1F 89 TFR A,B |
1233 DD71 A6 84 LDA ,X |
1234 DD73 EB 01 ADDB $01,X |
1235 DD75 BE D4 0B LDX >CURFCB |
1236 DD78 25 05 BCS ZDD7F |
1237 DD7A E1 88 3C ZDD7A CMPB $3C,X |
1238 DD7D 23 06 BLS ZDD85 |
1239 DD7F E0 88 3C ZDD7F SUBB $3C,X |
1240 DD82 4C INCA |
1241 DD83 20 F5 BRA ZDD7A |
1242 |
1243 DD85 BD D6 20 ZDD85 JSR >ZD620 |
1244 DD88 25 14 BCS ZDD9E |
1245 DD8A BE D4 0B LDX >CURFCB |
1246 DD8D EC 88 42 LDD $42,X |
1247 DD90 10 A3 88 20 CMPD $20,X |
1248 DD94 27 14 BEQ ZDDAA |
1249 DD96 C6 19 LDB #$19 |
1250 DD98 20 02 BRA ZDD9C |
1251 |
1252 DD9A C6 18 ZDD9A LDB #$18 |
1253 DD9C 1A 01 ZDD9C ORCC #$01 |
1254 DD9E 39 ZDD9E RTS |
1255 |
1256 DD9F BD D6 20 ZDD9F JSR >ZD620 |
1257 DDA2 25 08 BCS ZDDAC |
1258 DDA4 BE D4 0B LDX >CURFCB |
1259 DDA7 C6 44 LDB #$44 |
1260 DDA9 3A ABX |
1261 DDAA 1C FE ZDDAA ANDCC #$FE |
1262 DDAC 39 ZDDAC RTS |
1263 |
1264 DDAD BE D4 0B ZDDAD LDX >CURFCB |
1265 DDB0 C6 0B LDB #$0B |
1266 DDB2 A6 88 24 ZDDB2 LDA $24,X |
1267 DDB5 A7 04 STA $04,X |
1268 DDB7 30 01 LEAX $01,X |
1269 DDB9 5A DECB |
1270 DDBA 26 F6 BNE ZDDB2 |
1271 DDBC 39 RTS |
1272 * |
1273 ** FIND NEXT DRIVE |
1274 * |
1275 DDBD BE D4 0B NXTDRV LDX >CURFCB |
1276 DDC0 A6 03 LDA $03,X |
1277 DDC2 4C INCA |
1278 DDC3 81 04 CMPA #$04 |
1279 DDC5 24 0F BCC ZDDD6 |
1280 DDC7 A7 03 STA $03,X |
1281 DDC9 26 05 BNE ZDDD0 |
1282 DDCB BD DE 0F JSR >DRVRDY |
1283 DDCE 20 03 BRA ZDDD3 |
1284 |
1285 DDD0 BD DE 12 ZDDD0 JSR >QUICK |
1286 DDD3 25 E8 ZDDD3 BCS NXTDRV |
1287 DDD5 39 RTS |
1288 |
1289 DDD6 C6 10 ZDDD6 LDB #$10 |
1290 DDD8 1A 01 ORCC #$01 |
1291 DDDA 39 RTS |
0011 END |
0000 INCLUDE "f9-monex.txt" |
0001 * |
0002 ** FLEX 9 DISK DRIVERS |
0003 * |
0004 * FOR SYS09BUG ON THE |
0005 * DIGILENT SPARTAN 3 STARTER BOARD AND |
0006 * TERASIC CYCLONE 2 DE1 BOARD |
0007 * WITH I/O MAPPED AT $XE000 |
0008 * AND ROM MAPPED AT $XF000 |
0009 * THE DIGILENT SPARTAN 3 STARTER BOARD HAS 1MBYTE OF SRAM |
0010 * THE TERASIC CYCLONE 2 DE1 BOARD HAS 512KBYTE OF SRAM |
0011 * THE FIRST 64K IS USED BY FLEX, |
0012 * THE SECOND 128K IS USED AS A ROM DISK |
0013 * THE REMAINING RAM IS USED FOR A RAM DISK |
0014 * |
0015 * |
0016 0001 CFLAG EQU $01 CARRY FLAG |
0017 0002 VFLAG EQU $02 OVERFLOW FLAG |
0018 0004 ZFLAG EQU $04 ZERO FLAG |
0019 0008 NFLAG EQU $08 NEGATIVE FLAG |
0020 0010 IFLAG EQU $10 IRQ MASK CC |
0021 0020 HFLAG EQU $20 HALF CARRY |
0022 0040 FFLAG EQU $40 FIRQ MASK CC |
0023 0080 EFLAG EQU $80 ENTIRE FLAG |
0024 * |
0025 0000 MAPPAG EQU $00 PAGE $0000 DAT ADDRESS |
0026 FFF0 DATREG EQU IC11 DAT REGISTERS |
0027 * |
0028 * Serial Port |
0029 * |
0030 E000 ACIAC1 EQU ACIAS |
0031 E001 ACIAD1 EQU ACIAS+1 |
0032 04E2 DELCON EQU 1250 Delay (Processor clock in MHz * 50) |
0033 * |
0034 * XMODEM Control characters |
0035 * |
0036 0001 SOH EQU $01 |
0037 0004 EOT EQU $04 |
0038 0006 ACK EQU $06 |
0039 0015 NAK EQU $15 |
0040 0018 CAN EQU $18 |
0041 * |
0042 * DRIVE GEOMETRY |
0043 * |
0044 000E EMAXSEC EQU 14 ROM DISK |
0045 0030 EMAXTRK EQU 48 3 * 16 * 14 * 256 = 172,032 Bytes |
0046 0292 ETOTSEC EQU EMAXTRK*EMAXSEC-EMAXSEC |
0047 * |
0048 000E RMAXSEC EQU 14 RAM DISK |
0049 *RMAXTRK EQU 192 12 * 16 * 14 * 256 = 688,128 Bytes Digilent Spartan 3 |
0050 0040 RMAXTRK EQU 64 4 * 16 * 14 * 256 = 229,376 Bytes Terasic Cyclone 2 |
0051 0372 RTOTSEC EQU RMAXTRK*RMAXSEC-RMAXSEC |
0052 * |
0053 * DRIVE TYPES |
0054 * |
0055 0000 DTYPROM EQU 0 ROM DISK |
0056 0001 DTYPRAM EQU 1 RAM DISK |
0057 0002 DTYPFLS EQU 2 FLASH DISK |
0058 0003 DTYPNET EQU 3 FLEXNET DISK |
0059 * |
0060 DE00 ORG $DE00 |
0061 * |
0062 * DISK DRIVER JUMP TABLE LAST UPDATE: 22/12/2006 |
0063 * Disk driver for RAM Disk. |
0064 * |
0065 * 14 SECTORS PER TRACK |
0066 * 16 * N TRACKS PER DISK |
0067 * |
0068 * ROM DISK OCCUPIES $10000 - $1E000 ... $30000 - $3E000 |
0069 * RAM DISK OCCUPIES $40000 - $4E000 ... $F0000 - $FE000 |
0070 * Track Buffer page mapped at $E000 - $EFFF |
0071 * MAPPAG = $00 = 0 x $1000 (4 K pages) |
0072 |
0073 * ON SWTPC ROM AT $XF000 AND IO AT $XE000 |
0074 * APPEARS THROUGHOUT THE MEMORY SO MUST BE SKIPPED OVER |
0075 * WHEN USING RAM AS A RAMDISK. |
0076 * THE MSN OF THE TRACK MAPS INTO THE MSN OF THE DAT |
0077 * THE LSN OF THE TRACK NUMBER INDEXES INTO THE 4K RAM PAGE |
0078 * THE SECTOR MAPS INTO THE LSN OF THE DAT WHICH IS INVERTED |
0079 * |
0080 * |
0081 * |
0082 * FLEX disk jump table. |
0083 * |
0084 DE00 7E F0 57 READ JMP READSC |
0085 DE03 7E F0 5B WRITE JMP WRITSC |
0086 DE06 7E F0 5F VERIFY JMP BUSY |
0087 DE09 7E F0 63 RESTOR JMP RESTR1 |
0088 DE0C 7E F0 6C DRIVE JMP DRVSEL |
0089 DE0F 7E F0 9F DRVRDY JMP CHKRDY |
0090 DE12 7E F0 A3 QUICK JMP CHKQIK |
0091 DE15 7E F0 A7 COLDDR JMP DINIT |
0092 DE18 7E F0 BF WARMDR JMP DWARM |
0093 DE1B 7E F0 C3 SEEK JMP SEEKTS |
0094 * |
0095 * RAM SPACE |
0096 * |
0097 DE1E 00 DRVNUM FCB 0 |
0098 DE1F 00 TRACK FCB 0 |
0099 DE20 00 SECTOR FCB 0 |
0100 DE21 00 CHKSUM FCB 0 |
0101 DE22 00 CCSAVE FCB 0 |
0102 DE23 00 BLKNUM FCB 0 Xmodem block number |
0103 DE24 00 BYTCNT FCB 0 Xmodem byte count |
0104 DE25 00 00 XSTATE FDB 0 Xmodem State Vector |
0105 DE27 00 00 00 DELCNT FCB $00,$00,$00 Xmodem Poll timer |
0106 * |
0107 * Disc driver type table. |
0108 * Indexed by drive number |
0109 * |
0110 DE2A 00 DTYPTAB FCB DTYPROM Drive 0 (ROM Disk) |
0111 DE2B 01 FCB DTYPRAM Drive 1 (RAM Disk) |
0112 DE2C 02 FCB DTYPFLS Drive 2 (FLASH Disk) |
0113 DE2D 03 FCB DTYPNET Drive 3 (NETPC Disk) |
0114 * |
0115 * RAM Disk offset |
0116 * Indexed by drive type |
0117 * |
0118 DE2E 10 DOFFTAB FCB $10 ROM Disk $10000 |
0119 DE2F 40 FCB $40 RAM DISK $40000 |
0120 DE30 FF FCB $FF Flash Disk |
0121 DE31 FF FCB $FF NETPC Disk |
0122 * |
0123 DE32 REAVEC RMB 2 Disc driver jump table. |
0124 DE34 WRIVEC RMB 2 |
0125 DE36 VERVEC RMB 2 |
0126 DE38 RSTVEC RMB 2 |
0127 DE3A DRVVEC RMB 2 |
0128 DE3C CHKVEC RMB 2 |
0129 DE3E QUIVEC RMB 2 |
0130 DE40 INIVEC RMB 2 |
0131 DE42 WARVEC RMB 2 |
0132 DE44 SEEVEC RMB 2 |
0133 * |
0134 * SECTOR BUFFER |
0135 * |
0136 DE46 BUFFER RMB 256 |
0137 DF46 SYNCREG RMB 4 Prom input register |
0138 * |
0139 **************************************** |
0140 * |
0141 * START OF EXTENSION COMMANDS |
0142 * |
0143 **************************************** |
0144 * |
0145 F000 ORG MONEXT |
0146 F000 F7 BD FDB NEXTEXT Jump to next extended command |
0147 * |
0148 * |
0149 ***************************************** |
0150 * Disk drivers * |
0151 * ------------ * |
0152 * The system dependant code for the * |
0153 * disc drivers fits here. Two tables * |
0154 * must be included. These are DTYPTAB a * |
0155 * four byte table that defines which of * |
0156 * the (up to four) following sets of * |
0157 * jump tables to use, and TABSRT the * |
0158 * jump tables themselves. For a full * |
0159 * description of the floppy drivers see * |
0160 * section 4 (pp9-14) of the general * |
0161 * Flex adaptation guide. * |
0162 ***************************************** |
0163 * |
0164 * Mass storage drivers for embedded applications. |
0165 * |
0166 * Jump tables. |
0167 F002 F1 19 TABSRT FDB EREAD Drive type 0 (ROM disk). |
0168 F004 F1 41 FDB EWRITE |
0169 F006 F1 3F FDB ECHECK |
0170 F008 F1 3F FDB ECHECK |
0171 F00A F1 3F FDB ECHECK |
0172 F00C F1 3F FDB ECHECK |
0173 F00E F1 3F FDB ECHECK |
0174 F010 F0 52 FDB DDUMMY |
0175 F012 F0 52 FDB DDUMMY |
0176 F014 F0 52 FDB DDUMMY |
0177 * |
0178 F016 F1 19 FDB EREAD Drive type 1 (RAM disk). |
0179 F018 F1 41 FDB EWRITE |
0180 F01A F1 3F FDB ECHECK |
0181 F01C F1 3F FDB ECHECK |
0182 F01E F1 3F FDB ECHECK |
0183 F020 F1 3F FDB ECHECK |
0184 F022 F1 3F FDB ECHECK |
0185 F024 F0 52 FDB DDUMMY |
0186 F026 F0 52 FDB DDUMMY |
0187 F028 F0 52 FDB DDUMMY |
0188 * |
0189 F02A F0 52 FDB DDUMMY Drive type 2 (External Flash disk). |
0190 F02C F0 52 FDB DDUMMY |
0191 F02E F0 52 FDB DDUMMY |
0192 F030 F0 52 FDB DDUMMY |
0193 F032 F0 52 FDB DDUMMY |
0194 F034 F0 52 FDB DDUMMY |
0195 F036 F0 52 FDB DDUMMY |
0196 F038 F0 52 FDB DDUMMY |
0197 F03A F0 52 FDB DDUMMY |
0198 F03C F0 52 FDB DDUMMY |
0199 * |
0200 F03E F1 7A FDB NREAD Drive type 3 (NetPC drive via serial port). |
0201 F040 F1 E9 FDB NWRITE |
0202 F042 F2 49 FDB NVERIFY |
0203 F044 F2 4E FDB NCHECK |
0204 F046 F2 4E FDB NCHECK |
0205 F048 F2 4E FDB NCHECK |
0206 F04A F2 4E FDB NCHECK |
0207 F04C F0 52 FDB DDUMMY |
0208 F04E F0 52 FDB DDUMMY |
0209 F050 F0 52 FDB DDUMMY |
0210 * |
0211 * |
0212 * Dummy routine (no errors). |
0213 F052 5F DDUMMY CLRB |
0214 F053 5D TSTB Set (z)=1 |
0215 F054 1C FE ANDCC #$FF-CFLAG Set (c)=0 |
0216 F056 39 RTS |
0217 * * |
0218 ************************** |
0219 * Main Flex entry points * |
0220 ************************* |
0221 * |
0222 * Read sector routine. |
0223 * Entry: (X) = address where sector is to be placed. |
0224 * (A) = Track number. |
0225 * (B) = Sector number. |
0226 * Exit: (B) = Error code (z)=1 if no error. |
0227 F057 6E 9F DE 32 READSC JMP [REAVEC] |
0228 * |
0229 * Write track routine. |
0230 * Entry: (X) = Address of area of memory from which the data will be taken. |
0231 * (A) = Track number. |
0232 * (B) = Sector number. |
0233 * Exit: (B) = Error condition, (Z)=1 no an error. |
0234 F05B 6E 9F DE 34 WRITSC JMP [WRIVEC] |
0235 * |
0236 * Verify sector routine. |
0237 * Entry: no parameters. |
0238 * Exit: (B) = Error condition (Z)=1 if no error. |
0239 F05F 6E 9F DE 36 BUSY JMP [VERVEC] |
0240 * |
0241 * Restore drive to track 00. |
0242 * Entry: (X) = FCB address (3,X contains drive number). |
0243 * Exit: (B) = Error condition, (Z)=1 if no error. |
0244 F063 8D 07 RESTR1 BSR DRVSEL Select drive first. |
0245 F065 27 01 BEQ RST1 |
0246 F067 39 RTS |
0247 F068 6E 9F DE 38 RST1 JMP [RSTVEC] |
0248 * |
0249 * Select current drive. |
0250 * Entry: (X) = FCB address (3,X contains drive number). |
0251 * Exit: (B) = Error condition, (Z)=0 and (c)=1 if error. |
0252 * (B) = $0F if non existant drive. |
0253 F06C 34 30 DRVSEL PSHS X,Y |
0254 F06E E6 03 LDB 3,X Get driver type. |
0255 F070 F7 DE 1E STB DRVNUM |
0256 F073 8E DE 2A LDX #DTYPTAB |
0257 F076 A6 85 LDA B,X |
0258 F078 81 FF CMPA #$FF Is the drive nonexistant? |
0259 F07A 26 08 BNE DRIVE1 |
0260 F07C 35 30 PULS X,Y |
0261 F07E C6 0F LDB #$0F |
0262 F080 5D TSTB |
0263 F081 1A 01 ORCC #$01 |
0264 F083 39 RTS |
0265 * |
0266 F084 C6 14 DRIVE1 LDB #20 Get correct table start address. |
0267 F086 3D MUL |
0268 F087 8E F0 02 LDX #TABSRT |
0269 F08A 30 8B LEAX D,X |
0270 F08C 10 8E DE 32 LDY #REAVEC Copy table into ram. |
0271 F090 C6 14 LDB #20 |
0272 F092 A6 80 DRIVE2 LDA 0,X+ |
0273 F094 A7 A0 STA 0,Y+ |
0274 F096 5A DECB |
0275 F097 26 F9 BNE DRIVE2 |
0276 F099 35 30 PULS X,Y |
0277 F09B 6E 9F DE 3A JMP [DRVVEC] |
0278 * |
0279 * Check for drive ready. |
0280 * Entry: (X) = FCB address (3,X contains drive number)> |
0281 * Exit: (B) = Error condition, (Z)=0 AND (C)=1 if drive is not ready. |
0282 F09F 6E 9F DE 3C CHKRDY JMP [CHKVEC] |
0283 * |
0284 * Quick drive ready check. |
0285 * Entry: (X) = FCB address (3,X contains drive number). |
0286 * Exit: (B) = Error condition, (Z)=0 AND (c)=1 if drive not ready. |
0287 F0A3 6E 9F DE 3E CHKQIK JMP [QUIVEC] |
0288 * |
0289 * Init (cold start). |
0290 * Entry: no parameters. |
0291 * Exit: no change. |
0292 F0A7 4F DINIT CLRA |
0293 F0A8 B7 DE 1E DINIT1 STA DRVNUM Init each valid drive in turn. |
0294 F0AB 8E DE 1B LDX #DRVNUM-3 |
0295 F0AE 8D BC BSR DRVSEL |
0296 F0B0 25 04 BCS DINIT2 |
0297 F0B2 AD 9F DE 40 JSR [INIVEC] |
0298 F0B6 B6 DE 1E DINIT2 LDA DRVNUM |
0299 F0B9 4C INCA |
0300 F0BA 81 04 CMPA #4 |
0301 F0BC 26 EA BNE DINIT1 |
0302 F0BE 39 RTS |
0303 * |
0304 * Warm start. |
0305 * Entry: no parameters. |
0306 * Exit: no change. |
0307 F0BF 6E 9F DE 42 DWARM JMP [WARVEC] |
0308 * |
0309 * Seek track. |
0310 * Entry: (A) = Track number. |
0311 * (B) = Sector number. |
0312 * Exit: (B) = Error condition, (Z)=1 if no error. |
0313 F0C3 6E 9F DE 44 SEEKTS JMP [SEEVEC] |
0314 * |
0315 * |
0316 ***************************************************** |
0317 * ROMdisk drivers * |
0318 * --------------- * |
0319 * Drivers to support a ROMdisk in the external RAM * |
0320 * of the SYS09. The ROMdisk base address is $10000 * |
0321 ***************************************************** |
0322 * Dummy return for ROM disk (write protected!) |
0323 * |
0324 * MAP RAM DISK INTO MEMORY SPACE |
0325 * |
0326 F0C7 1F A8 MAPIN TFR CC,A ; Save state of interrupt masks |
0327 F0C9 B7 DE 22 STA CCSAVE |
0328 F0CC 1A 50 ORCC #FFLAG+IFLAG ; Mask interrupts while IO mapped out |
0329 F0CE CE DE 2A LDU #DTYPTAB ; Point to Drive Type table |
0330 F0D1 F6 DE 1E LDB DRVNUM ; Get working drive number |
0331 F0D4 E6 C5 LDB B,U |
0332 F0D6 CE DE 2E LDU #DOFFTAB |
0333 F0D9 B6 DE 1F LDA TRACK |
0334 F0DC AB C5 ADDA B,U ; Add Base offset into RAM |
0335 F0DE 84 F0 ANDA #$F0 ; Mask MSN |
0336 F0E0 A7 E2 STA ,-S ; Save A on stack |
0337 * |
0338 F0E2 B6 DE 20 LDA SECTOR |
0339 F0E5 80 01 SUBA #1 ; Sectors 1 to 14 => 0 to 13 |
0340 F0E7 88 0F EORA #$0F ; Complement LSNybble |
0341 F0E9 84 0F ANDA #$0F |
0342 * |
0343 F0EB AB E0 ADDA ,S+ ; Add sector to LSN of Track and pop |
0344 F0ED B7 FF F0 STA DATREG+MAPPAG |
0345 * |
0346 F0F0 B6 DE 1F LDA TRACK ; LSN of Track indexes into 4K page |
0347 F0F3 84 0F ANDA #$0F |
0348 F0F5 8B 00 ADDA #MAPPAG*16 |
0349 F0F7 5F CLRB |
0350 F0F8 1F 03 TFR D,U |
0351 F0FA 39 RTS |
0352 * |
0353 * MAP RAM DISK OUT OF MEMORY |
0354 * |
0355 F0FB 86 00 MAPOUT LDA #MAPPAG ; Point to the Flex page |
0356 F0FD 88 0F EORA #$0F ; Complement LSNybble |
0357 F0FF B7 FF F0 STA DATREG+MAPPAG ; map in Flex page |
0358 F102 B6 DE 22 LDA CCSAVE ; restore interrupt masks |
0359 F105 1F 8A TFR A,CC |
0360 F107 39 RTS |
0361 * |
0362 * Seek track and sector |
0363 * A holds track number (0-32) |
0364 * B holds sector number (1-14) |
0365 * |
0366 F108 B7 DE 1F ESEEK STA TRACK |
0367 F10B F7 DE 20 STB SECTOR |
0368 F10E 1C FE ANDCC #$FE ; CLEAR CARRY |
0369 F110 1A 04 ORCC #$04 ; SET Z |
0370 F112 39 RTS |
0371 * |
0372 * MARK DISK READ ONLY |
0373 * |
0374 F113 C6 40 EDUMMY LDB #$40 |
0375 F115 5D TSTB |
0376 F116 1A 01 ORCC #$01 |
0377 F118 39 RTS |
0378 * |
0379 F119 34 70 EREAD PSHS X,Y,U push sequentialy to preserve order on stack |
0380 F11B 17 FF EA LBSR ESEEK |
0381 F11E 17 FF A6 LBSR MAPIN build external ram address |
0382 * |
0383 F121 10 8E DE 46 LDY #BUFFER |
0384 F125 5F CLRB |
0385 F126 A6 C0 ERLOOP1 LDA 0,U+ move 256 bytes to buffer from external RAM |
0386 F128 A7 A0 STA 0,Y+ |
0387 F12A 5A DECB |
0388 F12B 26 F9 BNE ERLOOP1 |
0389 * |
0390 F12D 17 FF CB LBSR MAPOUT |
0391 * |
0392 F130 10 8E DE 46 LDY #BUFFER |
0393 F134 5F CLRB |
0394 F135 A6 A0 ERLOOP2 LDA 0,Y+ move 256 bytes from buffer to Flex RAM |
0395 F137 A7 80 STA 0,X+ |
0396 F139 5A DECB |
0397 F13A 26 F9 BNE ERLOOP2 |
0398 * |
0399 F13C 5F CLRB |
0400 F13D 35 F0 PULS X,Y,U,PC restore all registers |
0401 * |
0402 * check for marker bytes $AA55 in first bytes of first track/sector |
0403 * |
0404 *ECHECK CLRA |
0405 * LDB #1 |
0406 * LDX #BUFFER |
0407 * BSR EREAD |
0408 * LDD BUFFER |
0409 * CMPD #$AA55 |
0410 * BNE EERR |
0411 * LBRA DDUMMY |
0412 *EERR LDB #$80 not ready bit set |
0413 * TSTB |
0414 * ORCC #$01 |
0415 * RTS |
0416 F13F 5F ECHECK CLRB |
0417 F140 39 RTS |
0418 * |
0419 * Write Sector |
0420 * |
0421 F141 34 70 EWRITE PSHS X,Y,U |
0422 F143 17 FF C2 LBSR ESEEK |
0423 F146 CE DE 2A LDU #DTYPTAB ; Point to Drive Type table |
0424 F149 F6 DE 1E LDB DRVNUM ; Get working drive number |
0425 F14C E6 C5 LDB B,U ; Fetch Drive type |
0426 F14E C1 01 CMPB #DTYPRAM ; Is it a RAM Disk ? |
0427 F150 27 07 BEQ EWOK ; Yep, can write to it |
0428 F152 C1 00 CMPB #DTYPROM ; Allow writes to ROM Disk too |
0429 F154 27 03 BEQ EWOK |
0430 F156 16 FF BA LBRA EDUMMY ; Nope report read only |
0431 * |
0432 F159 10 8E DE 46 EWOK LDY #BUFFER |
0433 F15D 5F CLRB |
0434 F15E A6 80 EWLOOP1 LDA 0,X+ move 256 bytes to buffer from Flex RAM |
0435 F160 A7 A0 STA 0,Y+ |
0436 F162 5A DECB |
0437 F163 26 F9 BNE EWLOOP1 |
0438 * |
0439 F165 17 FF 5F LBSR MAPIN |
0440 * |
0441 F168 10 8E DE 46 LDY #BUFFER |
0442 F16C 5F CLRB |
0443 F16D A6 A0 EWLOOP2 LDA 0,Y+ move 256 bytes from buffer to external RAM |
0444 F16F A7 C0 STA 0,U+ |
0445 F171 5A DECB |
0446 F172 26 F9 BNE EWLOOP2 |
0447 * |
0448 F174 17 FF 84 LBSR MAPOUT |
0449 * |
0450 F177 5F CLRB |
0451 F178 35 F0 PULS X,Y,U,PC |
0452 * |
0453 * |
0454 ***************************************************** |
0455 * FlexNet drivers * |
0456 * --------------- * |
0457 * Drivers to support a remote connection via the * |
0458 * serial port using the FlexNet protocol as defined * |
0459 * in FLEXNet_421B * |
0460 ***************************************************** |
0461 * |
0462 * |
0463 * read sector from remote drive |
0464 * |
0465 F17A 34 04 NREAD PSHS B |
0466 F17C 34 02 PSHS A |
0467 F17E 7F DE 21 CLR CHKSUM clear checksum |
0468 F181 7F DE 22 CLR CHKSUM+1 |
0469 * |
0470 F184 86 73 LDA #'s Send read sector command |
0471 F186 BD F2 85 JSR SCHAR |
0472 F189 24 4C BCC NRD_DNR if timeout, then flag drive not ready |
0473 * |
0474 F18B B6 DE 1E LDA DRVNUM send drive |
0475 F18E BD F2 85 JSR SCHAR |
0476 F191 24 44 BCC NRD_DNR |
0477 * |
0478 F193 35 02 PULS A send track |
0479 F195 BD F2 85 JSR SCHAR |
0480 F198 24 3D BCC NRD_DNR |
0481 * |
0482 F19A 35 02 PULS A send sector |
0483 F19C BD F2 85 JSR SCHAR |
0484 F19F 24 36 BCC NRD_DNR |
0485 * |
0486 * transfer 256 bytes |
0487 F1A1 5F CLRB |
0488 F1A2 BD F2 67 NREAD1 JSR RCHAR read byte |
0489 F1A5 24 30 BCC NRD_DNR if timeout, then flag drive not ready |
0490 F1A7 A7 80 STA 0,X+ |
0491 F1A9 BB DE 22 ADDA CHKSUM+1 update checksum |
0492 F1AC B7 DE 22 STA CHKSUM+1 |
0493 F1AF 24 03 BCC NREAD2 |
0494 F1B1 7C DE 21 INC CHKSUM |
0495 F1B4 5A NREAD2 DECB |
0496 F1B5 26 EB BNE NREAD1 |
0497 * |
0498 * compare checksums |
0499 F1B7 BD F2 67 JSR RCHAR get checksum msb |
0500 F1BA 24 1B BCC NRD_DNR |
0501 F1BC 34 02 PSHS A |
0502 F1BE BD F2 67 JSR RCHAR get checksum lsb |
0503 F1C1 24 14 BCC NRD_DNR |
0504 F1C3 1F 89 TFR A,B |
0505 F1C5 35 02 PULS A |
0506 F1C7 10 B3 DE 21 CMPD CHKSUM compare checksums |
0507 F1CB 26 0E BNE NRD_ERR if checksum error, then flag crc read error |
0508 * |
0509 F1CD 86 06 LDA #ACK no checksum error, send ACK char |
0510 F1CF BD F2 85 JSR SCHAR |
0511 F1D2 24 03 BCC NRD_DNR |
0512 F1D4 5F CLRB all OK, flag no error |
0513 F1D5 20 0D BRA NRD_END |
0514 * |
0515 F1D7 C6 10 NRD_DNR LDB #16 flag drive not ready |
0516 F1D9 20 09 BRA NRD_END |
0517 * |
0518 F1DB 86 15 NRD_ERR LDA #NAK send NAK |
0519 F1DD BD F2 85 JSR SCHAR |
0520 F1E0 24 F5 BCC NRD_DNR |
0521 F1E2 C6 09 LDB #09 flag crc read error |
0522 * |
0523 F1E4 F7 DE 21 NRD_END STB CHKSUM used by VERIFY |
0524 F1E7 5D TSTB |
0525 F1E8 39 RTS |
0526 * |
0527 * |
0528 * write sector to remote drive |
0529 * |
0530 F1E9 34 04 NWRITE PSHS B |
0531 F1EB 34 02 PSHS A |
0532 F1ED 7F DE 21 CLR CHKSUM clear checksum |
0533 F1F0 7F DE 22 CLR CHKSUM+1 |
0534 * |
0535 F1F3 86 72 LDA #'r Send write sector command |
0536 F1F5 BD F2 85 JSR SCHAR |
0537 F1F8 24 DD BCC NRD_DNR if timeout, then flag drive not ready |
0538 * |
0539 F1FA B6 DE 1E LDA DRVNUM send drive |
0540 F1FD BD F2 85 JSR SCHAR |
0541 F200 24 D5 BCC NRD_DNR |
0542 * |
0543 F202 35 02 PULS A send track |
0544 F204 BD F2 85 JSR SCHAR |
0545 F207 24 CE BCC NRD_DNR |
0546 * |
0547 F209 35 02 PULS A send sector |
0548 F20B BD F2 85 JSR SCHAR |
0549 F20E 24 C7 BCC NRD_DNR |
0550 * |
0551 * transfer 256 bytes |
0552 F210 5F CLRB |
0553 F211 A6 80 NWRITE1 LDA 0,X+ |
0554 F213 BD F2 85 JSR SCHAR write byte |
0555 F216 24 BF BCC NRD_DNR if timeout, then flag drive not ready |
0556 F218 BB DE 22 ADDA CHKSUM+1 update checksum |
0557 F21B B7 DE 22 STA CHKSUM+1 |
0558 F21E 24 03 BCC NWRITE2 |
0559 F220 7C DE 21 INC CHKSUM |
0560 F223 5A NWRITE2 DECB |
0561 F224 26 EB BNE NWRITE1 |
0562 * |
0563 * compare checksums |
0564 F226 B6 DE 21 LDA CHKSUM |
0565 F229 BD F2 85 JSR SCHAR send checksum msb |
0566 F22C 24 A9 BCC NRD_DNR |
0567 F22E B6 DE 22 LDA CHKSUM+1 |
0568 F231 BD F2 85 JSR SCHAR send checksum lsb |
0569 F234 24 A1 BCC NRD_DNR |
0570 * |
0571 F236 BD F2 67 JSR RCHAR get checksum response |
0572 F239 24 9C BCC NRD_DNR |
0573 F23B 81 06 CMPA #ACK |
0574 F23D 26 03 BNE NWR_ERR if checksum error, then flag write error |
0575 * |
0576 F23F 5F CLRB all OK, flag no error |
0577 F240 20 02 BRA NWR_END |
0578 * |
0579 F242 C6 0A NWR_ERR LDB #10 flag write error |
0580 * |
0581 F244 F7 DE 21 NWR_END STB CHKSUM used by VERIFY |
0582 F247 5D TSTB |
0583 F248 39 RTS |
0584 * |
0585 * |
0586 * verify last sector written to remote drive |
0587 * |
0588 F249 F6 DE 21 NVERIFY LDB CHKSUM test last checksum |
0589 F24C 5D TSTB |
0590 F24D 39 RTS |
0591 * |
0592 * |
0593 * quck check and check drive ready |
0594 * |
0595 F24E 86 51 NCHECK LDA #'Q quick check command |
0596 F250 BD F2 85 JSR SCHAR |
0597 F253 24 0C BCC NCK_ERR if timeout, then flag drive not ready |
0598 |
0599 F255 BD F2 67 JSR RCHAR get response from host |
0600 F258 24 07 BCC NCK_ERR |
0601 F25A 81 06 CMPA #ACK |
0602 F25C 26 03 BNE NCK_ERR if NAK, then flag drive not ready |
0603 |
0604 F25E 5F CLRB all OK, flag drive ready |
0605 F25F 20 04 BRA NCK_END |
0606 * |
0607 F261 C6 10 NCK_ERR LDB #16 report drive not ready |
0608 F263 1A 01 ORCC #$01 check needs carry set as well |
0609 * |
0610 F265 5D NCK_END TSTB |
0611 F266 39 RTS |
0612 * |
0613 * |
0614 * recieve char from remote drive. |
0615 * timeout if no response for approx 1s. |
0616 * Entry: no parameters |
0617 * Exit: (A) = recieved char, (C)=1 if valid char, (C)=0 if timeout. |
0618 * |
0619 F267 34 30 RCHAR PSHS X,Y |
0620 * |
0621 F269 8E 03 E8 LDX #1000 1000x inner loop |
0622 F26C 10 8E 04 E2 RCHAR1 LDY #DELCON delay constant for inner loop (approx 1ms). |
0623 F270 B6 E0 00 RCHAR2 LDA ACIAC1 test for recieved char |
0624 F273 47 ASRA |
0625 F274 25 0A BCS RCHAR3 get character |
0626 F276 31 3F LEAY -1,Y else, continue to count delay |
0627 F278 26 F6 BNE RCHAR2 |
0628 F27A 30 1F LEAX -1,X |
0629 F27C 26 EE BNE RCHAR1 |
0630 F27E 35 B0 PULS X,Y,PC return with error if timed out |
0631 * |
0632 F280 B6 E0 01 RCHAR3 LDA ACIAD1 return data (carry bit still set) |
0633 F283 35 B0 PULS X,Y,PC |
0634 * |
0635 * |
0636 * transmit char to remote drive. |
0637 * timeout if no response for approx 1s. (allows for use of hardware flow control) |
0638 * Entry: (A) = char to transmit |
0639 * Exit: (A) = recieved char, (C)=1 if valid char, (C)=0 if timeout. |
0640 * |
0641 F285 34 30 SCHAR PSHS X,Y |
0642 F287 34 02 PSHS A |
0643 * |
0644 F289 8E 03 E8 LDX #1000 1000x inner loop |
0645 F28C 10 8E 04 E2 SCHAR1 LDY #DELCON delay constant for inner loop (approx 1ms). |
0646 F290 B6 E0 00 SCHAR2 LDA ACIAC1 test for space in transmit FIFO |
0647 F293 47 ASRA |
0648 F294 47 ASRA |
0649 F295 25 0C BCS SCHAR3 send character |
0650 F297 31 3F LEAY -1,Y else, continue to count delay |
0651 F299 26 F5 BNE SCHAR2 |
0652 F29B 30 1F LEAX -1,X |
0653 F29D 26 ED BNE SCHAR1 |
0654 F29F 35 02 PULS A |
0655 F2A1 35 B0 PULS X,Y,PC return with error if timed out |
0656 * |
0657 F2A3 35 02 SCHAR3 PULS A |
0658 F2A5 B7 E0 01 STA ACIAD1 send data (carry bit still set) |
0659 F2A8 35 B0 PULS X,Y,PC |
0660 * |
0661 ** 'UF' Format RAMdisc to FLEX standard. |
0662 * |
0663 F2AA 0A 0D DISFOS FCB $0A,$0D |
0664 F2AC 46 6F 72 6D 61 74 FCC 'Formating RAMdisk... ' |
69 6E 67 20 52 41 |
4D 64 69 73 6B 2E |
2E 2E 20 |
0665 F2C1 04 FCB 4 |
0666 F2C2 0A 0D 04 MESS6 FCB $0A,$0D,4 |
0667 F2C5 52 61 6D 64 69 73 FCC 'Ramdisk not allocated! ' |
6B 20 6E 6F 74 20 |
61 6C 6C 6F 63 61 |
74 65 64 21 20 |
0668 F2DC 04 FCB 4 |
0669 * |
0670 F2DD 8E F2 AA UFSUB LDX #DISFOS |
0671 F2E0 BD F4 6A JSR PDATA1 |
0672 F2E3 8E DE 2A LDX #DTYPTAB search for allocated ramdisk |
0673 F2E6 5F CLRB |
0674 F2E7 A6 85 FMT9 LDA B,X |
0675 F2E9 81 01 CMPA #DTYPRAM driver type 1 is ramdisk |
0676 F2EB 27 0C BEQ FFOUND |
0677 F2ED 5C INCB |
0678 F2EE C1 04 CMPB #4 end of table? then not allocated. |
0679 F2F0 26 F5 BNE FMT9 |
0680 F2F2 8E F2 C2 LDX #MESS6 |
0681 F2F5 BD F4 6A JSR PDATA1 |
0682 F2F8 39 RTS |
0683 * |
0684 F2F9 F7 DE 1E FFOUND STB DRVNUM |
0685 F2FC 8E DE 1B LDX #DRVNUM-3 |
0686 F2FF BD F0 6C JSR DRVSEL |
0687 * |
0688 * set up free chain |
0689 * |
0690 F302 8E DE 46 LDX #BUFFER clear out buffer |
0691 F305 4F CLRA |
0692 F306 5F CLRB |
0693 F307 A7 80 DFL1 STA 0,X+ |
0694 F309 5A DECB |
0695 F30A 26 FB BNE DFL1 |
0696 * |
0697 F30C 7F DE 1F CLR TRACK |
0698 F30F 86 01 LDA #1 |
0699 F311 B7 DE 20 STA SECTOR |
0700 F314 8E DE 46 DFL2 LDX #BUFFER |
0701 F317 B6 DE 1F LDA TRACK |
0702 F31A A7 84 STA 0,X |
0703 F31C B6 DE 20 LDA SECTOR |
0704 F31F 4C INCA |
0705 F320 81 0F CMPA #RMAXSEC+1 last sector on track? |
0706 F322 26 04 BNE DFL3 |
0707 F324 6C 84 INC 0,X |
0708 F326 86 01 LDA #1 |
0709 F328 A7 01 DFL3 STA 1,X |
0710 F32A B6 DE 1F LDA TRACK |
0711 F32D F6 DE 20 LDB SECTOR |
0712 F330 BD F0 5B JSR WRITSC |
0713 F333 7C DE 20 INC SECTOR |
0714 F336 B6 DE 20 LDA SECTOR |
0715 F339 81 0F CMPA #RMAXSEC+1 |
0716 F33B 26 D7 BNE DFL2 |
0717 F33D 86 01 LDA #1 |
0718 F33F B7 DE 20 STA SECTOR |
0719 F342 7C DE 1F INC TRACK |
0720 F345 B6 DE 1F LDA TRACK |
0721 F348 81 40 CMPA #RMAXTRK |
0722 F34A 26 C8 BNE DFL2 |
0723 * break free chain at last track/sector |
0724 F34C 8E DE 46 LDX #BUFFER |
0725 F34F 86 3F LDA #RMAXTRK-1 |
0726 F351 C6 0E LDB #RMAXSEC |
0727 F353 BD F0 57 JSR READSC |
0728 F356 8E DE 46 LDX #BUFFER |
0729 F359 6F 84 CLR 0,X |
0730 F35B 6F 01 CLR 1,X |
0731 F35D 86 3F LDA #RMAXTRK-1 |
0732 F35F C6 0E LDB #RMAXSEC |
0733 F361 BD F0 5B JSR WRITSC |
0734 * set up sector structure, SIR, directory etc |
0735 F364 8E DE 46 LDX #BUFFER |
0736 F367 4F CLRA |
0737 F368 C6 0E LDB #RMAXSEC |
0738 F36A BD F0 57 JSR READSC |
0739 F36D 8E DE 46 LDX #BUFFER |
0740 F370 6F 84 CLR 0,X break end of directory chain |
0741 F372 6F 01 CLR 1,X |
0742 F374 4F CLRA |
0743 F375 C6 0E LDB #RMAXSEC |
0744 F377 BD F0 5B JSR WRITSC |
0745 * |
0746 F37A 8E DE 46 LDX #BUFFER |
0747 F37D 4F CLRA |
0748 F37E C6 03 LDB #3 set up SIR |
0749 F380 BD F0 57 JSR READSC |
0750 F383 8E DE 46 LDX #BUFFER |
0751 F386 6F 84 CLR 0,X break forward link |
0752 F388 6F 01 CLR 1,X |
0753 F38A CC 52 41 LDD #$5241 set volume name (RAMDISK ) |
0754 F38D ED 88 10 STD 16,X |
0755 F390 CC 4D 44 LDD #$4D44 |
0756 F393 ED 88 12 STD 18,X |
0757 F396 CC 49 53 LDD #$4953 |
0758 F399 ED 88 14 STD 20,X |
0759 F39C CC 4B 20 LDD #$4B20 |
0760 F39F ED 88 16 STD 22,X |
0761 F3A2 CC 00 01 LDD #1 volume number |
0762 F3A5 ED 88 1B STD 27,X |
0763 F3A8 CC 01 01 LDD #$0101 first trk/sec 01-01 |
0764 F3AB ED 88 1D STD 29,X |
0765 F3AE 86 3F LDA #RMAXTRK-1 |
0766 F3B0 C6 0E LDB #RMAXSEC |
0767 F3B2 ED 88 1F STD 31,X |
0768 F3B5 ED 88 26 STD 38,X |
0769 F3B8 CC 03 72 LDD #RTOTSEC total DATA sectors (2912-14) |
0770 F3BB ED 88 21 STD 33,X |
0771 * |
0772 F3BE 86 01 LDA #01 month set default creation date (SYS09's birthday!) |
0773 F3C0 A7 88 23 STA 35,X |
0774 F3C3 86 07 LDA #07 day |
0775 F3C5 A7 88 24 STA 36,X |
0776 F3C8 86 07 LDA #07 year |
0777 F3CA A7 88 25 STA 37,X |
0778 * |
0779 F3CD 4F RF3 CLRA |
0780 F3CE C6 03 LDB #3 |
0781 F3D0 BD F0 5B JSR WRITSC |
0782 * |
0783 F3D3 8E DE 46 LDX #BUFFER |
0784 F3D6 4F CLRA |
0785 F3D7 C6 01 LDB #1 |
0786 F3D9 BD F0 57 JSR READSC |
0787 F3DC 8E DE 46 LDX #BUFFER |
0788 F3DF 86 AA LDA #$AA set the init flag |
0789 F3E1 A7 84 STA 0,X |
0790 F3E3 86 55 LDA #$55 |
0791 F3E5 A7 01 STA 1,X |
0792 F3E7 4F CLRA |
0793 F3E8 C6 01 LDB #1 |
0794 F3EA 7E F0 5B JMP WRITSC |
0795 * |
0796 ******************************** |
0797 * System specific Boot * |
0798 * command goes here. * |
0799 ******************************** |
0800 * |
0801 * Boot FLEX from the FPGA's internal pre-loaded scratch RAM |
0802 * |
0803 F3ED 08 08 UBMESS FCB $08, $08 |
0804 F3EF 42 6F 6F 74 69 6E FCC 'Booting internal FLEX....' |
67 20 69 6E 74 65 |
72 6E 61 6C 20 46 |
4C 45 58 2E 2E 2E |
2E |
0805 F408 0D 0A 04 FCB $0D,$0A,$04 |
0806 * |
0807 F40B 8E F3 ED UBSUB LDX #UBMESS |
0808 F40E BD F4 6A JSR PDATA1 |
0809 * |
0810 F411 8E D3 E5 LDX #$D3E5 |
0811 F414 10 8E F4 34 LDY #CONTAB Overlay console driver table |
0812 F418 EC A1 UB1 LDD 0,Y++ |
0813 F41A ED 81 STD 0,X++ |
0814 F41C 8C D3 FD CMPX #$D3FD |
0815 F41F 26 F7 BNE UB1 |
0816 * |
0817 F421 8E DE 00 LDX #$DE00 Overlay disk driver table |
0818 F424 10 8E F4 4C LDY #DISTAB |
0819 F428 EC A1 UB2 LDD 0,Y++ |
0820 F42A ED 81 STD 0,X++ |
0821 F42C 8C DE 1E CMPX #$DE1E |
0822 F42F 26 F7 BNE UB2 |
0823 * |
0824 F431 7E CD 00 UBEND JMP $CD00 |
0825 * |
0826 * FLEX console jump table. |
0827 F434 F4 76 CONTAB FDB INPNE INPUT NO ECHO |
0828 F436 F4 82 FDB DUMMY INTERRUPT HANDLER |
0829 F438 DF C2 FDB MONRAM+$02 SWI VECTOR |
0830 F43A DF C8 FDB MONRAM+$08 IRQ VECTOR |
0831 F43C F4 82 FDB DUMMY TIMER OFF |
0832 F43E F4 82 FDB DUMMY TIMER ON |
0833 F440 F4 82 FDB DUMMY TIMER INITIALIZATION |
0834 F442 F4 7E FDB CONTRL MONITOR |
0835 F444 F4 82 FDB DUMMY TERMINAL INITIALIZATION |
0836 F446 F4 7A FDB STATUS INPUT CHECK |
0837 F448 F4 6E FDB OUTP TERMINAL OUTPUT |
0838 F44A F4 72 FDB INPE TERMINAL INPUT WITH ECHO |
0839 * |
0840 * FLEX disk jump table. |
0841 F44C 7E F0 57 DISTAB JMP READSC |
0842 F44F 7E F0 5B JMP WRITSC |
0843 F452 7E F0 5F JMP BUSY |
0844 F455 7E F0 63 JMP RESTR1 |
0845 F458 7E F0 6C JMP DRVSEL |
0846 F45B 7E F0 9F JMP CHKRDY |
0847 F45E 7E F0 A3 JMP CHKQIK |
0848 F461 7E F0 A7 JMP DINIT |
0849 F464 7E F0 BF JMP DWARM |
0850 F467 7E F0 C3 JMP SEEKTS |
0851 * |
0852 * Monitor jumps |
0853 * |
0854 F46A 6E 9F F8 0C PDATA1 JMP [PDATAV] |
0855 F46E 6E 9F F8 0A OUTP JMP [OUTCHV] |
0856 F472 6E 9F F8 06 INPE JMP [INCHEV] |
0857 F476 6E 9F F8 04 INPNE JMP [INCHV] |
0858 F47A 6E 9F F8 08 STATUS JMP [INCHKV] |
0859 F47E 6E 9F F8 00 CONTRL JMP [MONITV] |
0860 F482 39 DUMMY RTS |
0861 * |
0862 ** 'UL' LOAD ROM DISK VIA SERIAL PORT |
0863 * |
0864 F483 53 65 72 69 61 6C ULMES FCC 'Serial ROM Disk upload ...' |
20 52 4F 4D 20 44 |
69 73 6B 20 75 70 |
6C 6F 61 64 20 2E |
2E 2E |
0865 F49D 0D 0A 04 FCB $0D,$0A,$04 |
0866 F4A0 52 4F 4D 20 44 69 ULMES1 FCC 'ROM Disk Loaded' |
73 6B 20 4C 6F 61 |
64 65 64 |
0867 F4AF 0D 0A 04 FCB $0D,$0A,$04 |
0868 * |
0869 F4B2 8E F4 83 ULSUB LDX #ULMES |
0870 F4B5 BD F4 6A JSR PDATA1 |
0871 * |
0872 F4B8 86 00 LDA #$00 |
0873 F4BA B7 DE 1E STA DRVNUM |
0874 F4BD 4F CLRA TRACK 0 |
0875 F4BE C6 01 LDB #$01 SECTOR 1 |
0876 F4C0 B7 DE 1F ULLOOP0 STA TRACK |
0877 F4C3 F7 DE 20 STB SECTOR` |
0878 F4C6 17 FB FE LBSR MAPIN |
0879 * |
0880 F4C9 5F CLRB xfer 256 bytes at a time. |
0881 F4CA BD F4 ED ULLOOP1 JSR LRBYTE transfer should be hex bytes |
0882 F4CD A7 C0 STA ,U+ |
0883 F4CF 5A DECB |
0884 F4D0 26 F8 BNE ULLOOP1 |
0885 * |
0886 F4D2 17 FC 26 LBSR MAPOUT |
0887 * |
0888 F4D5 B6 DE 1F LDA TRACK |
0889 F4D8 F6 DE 20 LDB SECTOR |
0890 F4DB 5C INCB |
0891 F4DC C1 0F CMPB #EMAXSEC+1 |
0892 F4DE 26 E0 BNE ULLOOP0 |
0893 F4E0 C6 01 LDB #1 |
0894 F4E2 4C INCA |
0895 F4E3 81 30 CMPA #EMAXTRK |
0896 F4E5 26 D9 BNE ULLOOP0 |
0897 * |
0898 F4E7 8E F4 A0 ULEXIT LDX #ULMES1 |
0899 F4EA 7E F4 6A JMP PDATA1 |
0900 * |
0901 * Read a byte from the serial port |
0902 * |
0903 F4ED 34 04 LRBYTE PSHS B |
0904 F4EF 8D 0E BSR LRHEX Get hex digit. |
0905 F4F1 48 ASLA |
0906 F4F2 48 ASLA Shift to msb. |
0907 F4F3 48 ASLA |
0908 F4F4 48 ASLA |
0909 F4F5 1F 89 TFR A,B Save in B. |
0910 F4F7 8D 06 BSR LRHEX Get next digit. |
0911 F4F9 34 04 PSHS B |
0912 F4FB AB E0 ADDA 0,S+ Add together bytes. |
0913 F4FD 35 84 PULS B,PC |
0914 * |
0915 F4FF BD F5 28 LRHEX JSR INTER |
0916 F502 29 FB BVS LRHEX |
0917 F504 80 30 SUBA #$30 Remove ascii bias. |
0918 F506 2B F7 BMI LRHEX |
0919 F508 81 09 CMPA #$09 Number? |
0920 F50A 2F 0A BLE LRHEX1 Yes. |
0921 F50C 81 11 CMPA #$11 Keep testing. |
0922 F50E 2B EF BMI LRHEX |
0923 F510 81 16 CMPA #$16 |
0924 F512 2E EB BGT LRHEX |
0925 F514 80 07 SUBA #$07 |
0926 F516 39 LRHEX1 RTS |
0927 * |
0928 * ACIA INPUT TEST |
0929 * |
0930 F517 B6 E0 00 INTEST LDA ACIAC1 |
0931 F51A 85 01 BITA #$01 |
0932 F51C 39 RTS |
0933 * |
0934 * RESET ACIA |
0935 * |
0936 F51D 86 03 ACIRST LDA #$03 master reset |
0937 F51F B7 E0 00 STA ACIAC1 |
0938 F522 86 11 LDA #$11 |
0939 F524 B7 E0 00 STA ACIAC1 |
0940 F527 39 RTS |
0941 * |
0942 * ACIA INPUT |
0943 * |
0944 F528 86 10 INTER LDA #16 |
0945 F52A B7 DE 27 STA DELCNT+0 |
0946 F52D 7F DE 28 CLR DELCNT+1 |
0947 F530 7F DE 29 CLR DELCNT+2 |
0948 F533 B6 E0 00 INTER0 LDA ACIAC1 |
0949 F536 85 01 BITA #$01 |
0950 F538 26 08 BNE INTER1 |
0951 F53A 85 78 BITA #$78 |
0952 F53C 27 0A BEQ INTER2 |
0953 F53E 8D DD BSR ACIRST |
0954 F540 20 E6 BRA INTER |
0955 * |
0956 F542 B6 E0 01 INTER1 LDA ACIAD1 |
0957 F545 1C 02 ANDCC #VFLAG |
0958 F547 39 RTS |
0959 * |
0960 F548 7A DE 29 INTER2 DEC DELCNT+2 |
0961 F54B 26 E6 BNE INTER0 |
0962 F54D 7A DE 28 DEC DELCNT+1 |
0963 F550 26 E1 BNE INTER0 |
0964 F552 7A DE 27 DEC DELCNT+0 |
0965 F555 26 DC BNE INTER0 |
0966 F557 4F CLRA |
0967 F558 1A 02 ORCC #VFLAG |
0968 F55A 39 RTS |
0969 * |
0970 * ACIA OUTPUT |
0971 * |
0972 F55B 34 02 OUTTER PSHS A |
0973 * |
0974 F55D B6 E0 00 OUTTE1 LDA ACIAC1 |
0975 F560 85 02 BITA #$02 |
0976 F562 26 08 BNE OUTTE2 |
0977 F564 85 78 BITA #$78 |
0978 F566 27 F5 BEQ OUTTE1 |
0979 F568 8D B3 BSR ACIRST |
0980 F56A 20 F1 BRA OUTTE1 |
0981 * |
0982 F56C 35 02 OUTTE2 PULS A |
0983 F56E B7 E0 01 STA ACIAD1 |
0984 F571 39 RTS |
0985 * |
0986 ** 'UX' Xmodem ROM Disk upload |
0987 * |
0988 F572 0D 0A UXMES FCB $0D,$0A |
0989 F574 58 6D 6F 64 65 6D FCC 'Xmodem ROM Disk Upload' |
20 52 4F 4D 20 44 |
69 73 6B 20 55 70 |
6C 6F 61 64 |
0990 F58A 04 FCB 4 |
0991 F58B 0D 0A UXMES1 FCB $0D,$0A |
0992 F58D 55 70 6C 6F 61 64 FCC 'Upload Complete' |
20 43 6F 6D 70 6C |
65 74 65 |
0993 F59C 04 FCB 4 |
0994 F59D 0D 0A UXMES2 FCB $0D,$0A |
0995 F59F 55 70 6C 6F 61 64 FCC 'Upload Error' |
20 45 72 72 6F 72 |
0996 F5AB 04 FCB 4 |
0997 * |
0998 F5AC 8E F5 72 UXSUB LDX #UXMES |
0999 F5AF 17 FE B8 LBSR PDATA1 |
1000 * |
1001 F5B2 86 01 LDA #1 |
1002 F5B4 B7 DE 23 STA BLKNUM |
1003 F5B7 8E F6 1A LDX #XSTSTR |
1004 F5BA BF DE 25 STX XSTATE |
1005 * |
1006 F5BD 86 00 LDA #$00 |
1007 F5BF B7 DE 1E STA DRVNUM |
1008 F5C2 4F CLRA TRACK 0 |
1009 F5C3 C6 01 LDB #$01 SECTOR 1 |
1010 F5C5 B7 DE 1F UXLOOP0 STA TRACK |
1011 F5C8 F7 DE 20 STB SECTOR |
1012 F5CB 17 FA F9 LBSR MAPIN |
1013 * |
1014 F5CE 5F CLRB xfer 256 bytes at a time. |
1015 F5CF 17 00 2B UXLOOP1 LBSR XBYTE transfer should be hex bytes |
1016 F5D2 25 20 BCS UXERR |
1017 F5D4 A7 C0 STA ,U+ |
1018 F5D6 5A DECB |
1019 F5D7 26 F6 BNE UXLOOP1 |
1020 * |
1021 F5D9 17 FB 1F LBSR MAPOUT |
1022 * |
1023 F5DC B6 DE 1F LDA TRACK |
1024 F5DF F6 DE 20 LDB SECTOR |
1025 F5E2 5C INCB |
1026 F5E3 C1 0F CMPB #EMAXSEC+1 |
1027 F5E5 26 DE BNE UXLOOP0 |
1028 F5E7 C6 01 LDB #1 |
1029 F5E9 4C INCA |
1030 F5EA 81 30 CMPA #EMAXTRK |
1031 F5EC 26 D7 BNE UXLOOP0 |
1032 * |
1033 F5EE 8E F5 8B UXEXIT LDX #UXMES1 |
1034 F5F1 7E F4 6A JMP PDATA1 |
1035 * |
1036 F5F4 17 FB 04 UXERR LBSR MAPOUT |
1037 F5F7 8E F5 9D LDX #UXMES2 |
1038 F5FA 16 FE 6D LBRA PDATA1 |
1039 * |
1040 * Get a Byte using XModem protocol |
1041 * Carry clear => no errors |
1042 * Carry set => errors |
1043 * |
1044 F5FD 34 10 XBYTE PSHS X |
1045 F5FF BE DE 25 LDX XSTATE |
1046 * |
1047 F602 17 FF 23 XBYTE0 LBSR INTER |
1048 F605 28 0A BVC XBYTE1 |
1049 F607 86 15 LDA #NAK |
1050 F609 17 FF 4F LBSR OUTTER |
1051 F60C 8E F6 1A LDX #XSTSTR |
1052 F60F 20 F1 BRA XBYTE0 |
1053 * |
1054 F611 AD 84 XBYTE1 JSR ,X |
1055 F613 26 ED BNE XBYTE0 |
1056 F615 BF DE 25 STX XSTATE |
1057 F618 35 90 PULS X,PC |
1058 * |
1059 * START - LOOK FOR SOH (START OF HEADER) = $01 |
1060 * |
1061 F61A 81 01 XSTSTR CMPA #SOH |
1062 F61C 26 06 BNE XSTSTR1 |
1063 F61E 8E F6 3A LDX #XSTBLK |
1064 F621 1C FA ANDCC #$FF-CFLAG-ZFLAG No abort, no valid data (no exit) |
1065 F623 39 RTS |
1066 * |
1067 F624 81 04 XSTSTR1 CMPA #EOT |
1068 F626 26 08 BNE XSTSTR2 |
1069 F628 86 06 LDA #ACK |
1070 F62A 17 FF 2E LBSR OUTTER |
1071 F62D 1A 05 ORCC #CFLAG+ZFLAG Set (c)=1 abort & exit |
1072 F62F 39 RTS |
1073 * |
1074 F630 81 18 XSTSTR2 CMPA #CAN |
1075 F632 26 03 BNE XSTSTR3 |
1076 F634 1A 05 ORCC #CFLAG+ZFLAG Set (c)=1 abort & exit |
1077 F636 39 RTS |
1078 * |
1079 F637 1C FA XSTSTR3 ANDCC #$FF-CFLAG-ZFLAG |
1080 F639 39 RTS |
1081 * |
1082 * Got SOH |
1083 * Now get block number |
1084 * |
1085 F63A B1 DE 23 XSTBLK CMPA BLKNUM |
1086 F63D 26 06 BNE XSTBLKE |
1087 F63F 8E F6 50 LDX #XSTCOM |
1088 F642 1C FA ANDCC #$FF-CFLAG-ZFLAG No abort, No valid data (no exit) |
1089 F644 39 RTS |
1090 * |
1091 * Error in block number |
1092 * |
1093 F645 86 15 XSTBLKE LDA #NAK |
1094 F647 17 FF 11 LBSR OUTTER |
1095 F64A 8E F6 1A LDX #XSTSTR |
1096 F64D 1C FA ANDCC #$FF-CFLAG-ZFLAG No abort, No valid data (no exit) |
1097 F64F 39 RTS |
1098 * |
1099 * Get complement of block number |
1100 * |
1101 F650 43 XSTCOM COMA |
1102 F651 B1 DE 23 CMPA BLKNUM |
1103 F654 26 EF BNE XSTBLKE |
1104 F656 7F DE 21 CLR CHKSUM |
1105 F659 86 80 LDA #128 |
1106 F65B B7 DE 24 STA BYTCNT |
1107 F65E 8E F6 64 LDX #XSTDAT |
1108 F661 1C FA ANDCC #$FF-CFLAG-ZFLAG No abort, No valid data (no exit) |
1109 F663 39 RTS |
1110 * |
1111 * Get data bytes |
1112 * |
1113 F664 34 02 XSTDAT PSHS A |
1114 F666 BB DE 21 ADDA CHKSUM |
1115 F669 B7 DE 21 STA CHKSUM |
1116 F66C 35 02 PULS A |
1117 F66E 7A DE 24 DEC BYTCNT |
1118 F671 26 03 BNE XSTDAT1 |
1119 F673 8E F6 7B LDX #XSTCHK |
1120 F676 1C FE XSTDAT1 ANDCC #$FF-CFLAG No abort |
1121 F678 1A 04 ORCC #ZFLAG Valid data (exit) |
1122 F67A 39 RTS |
1123 * |
1124 * Byte count reached zero |
1125 * Check checksum byte |
1126 * |
1127 F67B B1 DE 21 XSTCHK CMPA CHKSUM |
1128 F67E 26 07 BNE XSTCHK1 retry if wrong checksum |
1129 * |
1130 * Checksum OK ... |
1131 * increment block number |
1132 * and send ACK |
1133 * |
1134 F680 7C DE 23 INC BLKNUM |
1135 F683 86 06 LDA #ACK |
1136 F685 20 0D BRA XSTCHK2 |
1137 * |
1138 * Checksum Error detected ... |
1139 * Reset Sector counter in ACCB to last 128 byte boundary |
1140 * and send NAK |
1141 * |
1142 F687 34 04 XSTCHK1 PSHS B |
1143 F689 1F 30 TFR U,D |
1144 F68B 5A DECB |
1145 F68C C4 80 ANDB #128 |
1146 F68E 1F 03 TFR D,U |
1147 F690 35 04 PULS B |
1148 F692 86 15 LDA #NAK |
1149 F694 17 FE C4 XSTCHK2 LBSR OUTTER |
1150 F697 8E F6 1A LDX #XSTSTR |
1151 F69A 1C FA ANDCC #$FF-CFLAG-ZFLAG No abort, no valid data (no exit) |
1152 F69C 39 RTS |
1153 * |
1154 ** 'UP' Load ROMdisk via config PROM. |
1155 * |
1156 F69D 08 08 UPMES FCB $08,$08 |
1157 F69F 4C 6F 61 64 20 52 FCC 'Load ROM disk from config PROM.' |
4F 4D 20 64 69 73 |
6B 20 66 72 6F 6D |
20 63 6F 6E 66 69 |
67 20 50 52 4F 4D |
2E |
1158 F6BE 04 FCB 4 |
1159 F6BF 46 6F 75 6E 64 20 UPMES1 FCC 'Found SYNC, loading data...' |
53 59 4E 43 2C 20 |
6C 6F 61 64 69 6E |
67 20 64 61 74 61 |
2E 2E 2E |
1160 F6DA 0A 0D 04 FCB $0A,$0D,4 |
1161 F6DD 52 4F 4D 20 44 69 UPMES2 FCC 'ROM Disk Loaded.' |
73 6B 20 4C 6F 61 |
64 65 64 2E |
1162 F6ED 0A 0D 04 FCB $0A,$0D,4 |
1163 F6F0 52 4F 4D 20 44 69 UPMES3 FCC 'ROM Disk Not Found.' |
73 6B 20 4E 6F 74 |
20 46 6F 75 6E 64 |
2E |
1164 F703 0A 0D 04 FCB $0A,$0D,4 |
1165 * |
1166 F706 8E F6 9D UPSUB LDX #UPMES |
1167 F709 BD F4 6A JSR PDATA1 |
1168 * |
1169 F70C 8D 5A BSR UPRESET |
1170 F70E 10 8E 00 20 LDY #$0020 Set up count for 2 MBit |
1171 F712 8E 00 00 LDX #$0000 |
1172 F715 8D 6C UPSUB1 BSR UPBIT Shift in bit |
1173 F717 8D 7C BSR UPSYNC Test for Sync pattern` |
1174 F719 27 15 BEQ UPSUB4 Skip if found |
1175 F71B 30 1F LEAX -1,X Count Down inner loop |
1176 F71D 8C 00 00 CMPX #$0000 |
1177 F720 26 F3 BNE UPSUB1 Branch if inner loop not complete |
1178 F722 31 1F LEAY -1,X Count down outer loop |
1179 F724 10 8C 00 00 CMPY #$0000 |
1180 F728 26 EB BNE UPSUB1 Branch if outer loop not complete |
1181 * |
1182 F72A 8E F6 F0 LDX #UPMES3 2MBits scanned, no synch, report error |
1183 F72D 7E F4 6A JMP PDATA1 |
1184 * |
1185 F730 8E F6 BF UPSUB4 LDX #UPMES1 Sync found, now load disk |
1186 F733 BD F4 6A JSR PDATA1 |
1187 * |
1188 F736 4F CLRA |
1189 F737 B7 DE 1E STA DRVNUM select Drive 0 |
1190 F73A C6 01 LDB #$01 |
1191 F73C B7 DE 1F UPSUB2 STA TRACK track 0 |
1192 F73F F7 DE 20 STB SECTOR sector 1 |
1193 * |
1194 F742 17 F9 82 LBSR MAPIN map in buffer |
1195 F745 5F CLRB 256 byte sector |
1196 F746 8D 67 UPSUB3 BSR UPBYTE read byte from prom |
1197 F748 A7 C0 STA ,U+ Store in buffer |
1198 F74A 5A DECB |
1199 F74B 26 F9 BNE UPSUB3 Loop until sector read` |
1200 F74D 17 F9 AB LBSR MAPOUT map out buffer |
1201 * |
1202 F750 B6 DE 1F LDA TRACK Advance sector |
1203 F753 F6 DE 20 LDB SECTOR |
1204 F756 5C INCB |
1205 F757 C1 0F CMPB #EMAXSEC+1 Wrap on max sector count |
1206 F759 26 E1 BNE UPSUB2 |
1207 F75B C6 01 LDB #1 |
1208 F75D 4C INCA Advance track |
1209 F75E 81 30 CMPA #EMAXTRK |
1210 F760 26 DA BNE UPSUB2 |
1211 * |
1212 F762 8E F6 DD UPEXIT LDX #UPMES2 Load complete, report message |
1213 F765 7E F4 6A JMP PDATA1 |
1214 * |
1215 * Reset Serial PROM |
1216 * |
1217 F768 86 02 UPRESET LDA #PRSTHI Strobe the reset line |
1218 F76A B7 E0 C0 STA PROMREG |
1219 F76D 86 00 LDA #PRSTLO |
1220 F76F B7 E0 C0 STA PROMREG |
1221 F772 8E 00 00 LDX #$0000 Delay a while` |
1222 F775 30 1F UPRST1 LEAX -1,X |
1223 F777 8C 00 00 CMPX #$0000 |
1224 F77A 26 F9 BNE UPRST1 |
1225 F77C BF DF 46 STX SYNCREG+0 Clear Sync Shift Register |
1226 F77F BF DF 48 STX SYNCREG+2 |
1227 F782 39 RTS |
1228 * |
1229 * Input 1 Bit From PROM |
1230 * |
1231 F783 86 01 UPBIT LDA #PCLKHI |
1232 F785 B7 E0 C0 STA PROMREG |
1233 F788 86 00 LDA #PCLKLO |
1234 F78A B7 E0 C0 STA PROMREG |
1235 F78D B6 E0 C0 LDA PROMREG |
1236 F790 44 LSRA |
1237 F791 78 DF 49 ASL SYNCREG+3 |
1238 F794 39 RTS |
1239 * |
1240 * Test for 32 bit Sync Word |
1241 * |
1242 F795 79 DF 48 UPSYNC ROL SYNCREG+2 |
1243 F798 79 DF 47 ROL SYNCREG+1 |
1244 F79B 79 DF 46 ROL SYNCREG+0 |
1245 F79E CC FF 00 LDD #SYNCLO |
1246 F7A1 10 B3 DF 48 CMPD SYNCREG+2 |
1247 F7A5 26 07 BNE UPSYNCX |
1248 F7A7 CC AA 55 LDD #SYNCHI |
1249 F7AA 10 B3 DF 46 CMPD SYNCREG+0 |
1250 F7AE 39 UPSYNCX RTS |
1251 * |
1252 * Input 1 Byte From PROM |
1253 * |
1254 F7AF 34 04 UPBYTE PSHS B |
1255 F7B1 C6 08 LDB #8 |
1256 F7B3 8D CE UPBYTE1 BSR UPBIT |
1257 F7B5 5A DECB |
1258 F7B6 26 FB BNE UPBYTE1 |
1259 F7B8 B6 DF 49 LDA SYNCREG+3 |
1260 F7BB 35 84 PULS B,PC |
1261 * |
1262 ***** NEXTCMD ***** |
1263 * |
1264 F7BD 17 FC B2 NEXTEXT LBSR INPE GET ONE CHAR. FROM TERMINAL |
1265 F7C0 84 7F ANDA #$7F STRIP PARITY FROM CHAR. |
1266 F7C2 1F 89 TFR A,B |
1267 F7C4 86 20 LDA #$20 |
1268 F7C6 17 FC A5 LBSR OUTP PRNT SPACE |
1269 F7C9 C1 60 CMPB #$60 |
1270 F7CB 2F 02 BLE NXTEX0 |
1271 F7CD C0 20 SUBB #$20 |
1272 * |
1273 ***** DO TABLE LOOKUP ***** |
1274 * FOR COMMAND FUNCTIONS |
1275 * |
1276 F7CF 8E F7 E5 NXTEX0 LDX #EXTTAB POINT TO JUMP TABLE |
1277 F7D2 E1 80 NXTEX1 CMPB ,X+ DOES COMMAND MATCH TABLE ENTRY ? |
1278 F7D4 27 0D BEQ JMPEXT BRANCH IF MATCH FOUND |
1279 F7D6 30 02 LEAX 2,X POINT TO NEXT ENTRY IN TABLE |
1280 F7D8 8C F7 F4 CMPX #EXTEND REACHED END OF TABLE YET ? |
1281 F7DB 26 F5 BNE NXTEX1 IF NOT END, CHECK NEXT ENTRY |
1282 F7DD 8E F7 F4 LDX #MSGWHAT POINT TO MSG "WHAT?" |
1283 F7E0 16 FC 87 LBRA PDATA1 PRINT MSG AND RETURN |
1284 F7E3 6E 94 JMPEXT JMP [,X] JUMP TO COMMAND ROUTINE |
1285 * |
1286 * EXTENDED COMMAND JUMP TABLE |
1287 * |
1288 F7E5 EXTTAB EQU * |
1289 F7E5 42 FCC 'B' BOOT FLEX |
1290 F7E6 F4 0B FDB UBSUB |
1291 F7E8 4C FCC 'L' LOAD ROM DISK OVER SERIAL PORT |
1292 F7E9 F4 B2 FDB ULSUB |
1293 F7EB 46 FCC 'F' FORMAT RAM DISK |
1294 F7EC F2 DD FDB UFSUB |
1295 F7EE 50 FCC 'P' LOAD ROM DISK FROM PROM |
1296 F7EF F7 06 FDB UPSUB |
1297 F7F1 58 FCC 'X' XMODEM ROM DISK UPLOAD |
1298 F7F2 F5 AC FDB UXSUB |
1299 * |
1300 F7F4 EXTEND EQU * |
1301 * |
1302 F7F4 57 48 41 54 20 3F MSGWHAT FCC "WHAT ?" |
1303 F7FA 0A 0D 04 FCB $0A,$0D,$04 |
0012 END |
0013 END COLDS |
Program + Init Data = 7039 bytes |
Error count = 0 |
Assembler release DWC_2.0 version 2.11 |
May 6, 2004 (c) Motorola (free ware) |
0001 NAM FLEX SOURCE |
0000 INCLUDE "f9-moneq.asm" |
|
|
f9-moneq.asm page 2 |
0002 * |
0003 *************************************************** |
0004 * MEMORY MAP EQUATES * |
0005 *************************************************** |
0006 E000 MONIO EQU $E000 I/O SPACE |
0007 DFC0 MONRAM EQU $DFC0 STACK SPACE |
0008 F800 MONROM EQU $F800 START OF ROM |
0009 F000 MONEXT EQU $F000 EXTENDED COMMANDS |
0010 *MONEXT EQU $1000 EXTENDED COMMANDS |
0011 * |
0012 *************************************************** |
0013 * SYS09BUG VARIABLE SPACE |
0014 *************************************************** |
0015 * |
0016 DFC0 STACK EQU MONRAM+0 TOP OF INTERNAL STACK / USER VECTOR |
0017 DFC2 SWI3 EQU MONRAM+2 SOFTWARE INTERRUPT VECTOR #3 |
0018 DFC4 SWI2 EQU MONRAM+4 SOFTWARE INTERRUPT VECTOR #2 |
0019 DFC6 FIRQ EQU MONRAM+6 FAST INTERRUPT VECTOR |
0020 DFC8 IRQ EQU MONRAM+8 INTERRUPT VECTOR |
0021 DFCA SWI EQU MONRAM+10 SOFTWARE INTERRUPT VECTOR |
0022 DFCC SVCVO EQU MONRAM+12 SUPERVISOR CALL VECTOR ORGIN |
0023 DFCE SVCVL EQU MONRAM+14 SUPERVISOR CALL VECTOR LIMIT |
0024 DFD0 LRARAM EQU MONRAM+16 LRA ADDRESSES |
0025 DFE0 CPORT EQU MONRAM+32 RE-VECTORABLE CONTROL PORT |
0026 DFE2 ECHO EQU MONRAM+34 ECHO FLAG |
0027 DFE3 BPTBL EQU MONRAM+35 BREAKPOINT TABLE BASE ADDR |
0028 ************************************************** |
0029 * VDU BYTES * |
0030 ************************************************** |
0031 * |
0032 **** ALWAYS KEEP COLADX AND ROWADX TOGETHER ****** |
0033 DFFB COLADX EQU MONRAM+59 CURSOR COLUMN |
0034 DFFC ROWADX EQU MONRAM+60 CURSOR ROW |
0035 ************************************************** |
0036 * |
0037 DFFD NEWROW EQU MONRAM+61 NEW ROW TEMP FOR ESCAPE |
0038 DFFE ESCFLG EQU MONRAM+62 ESCAPE SEQUENCE ACTIVE |
0039 * |
0040 *************************************************** |
0041 * SERIAL PORT * |
0042 *************************************************** |
0043 * |
0044 E000 ACIAS EQU MONIO+$00 CONTROL PORT |
0045 * |
0046 *************************************************** |
0047 * PS/2 KEYBOARD PORT * |
0048 *************************************************** |
0049 * |
0050 E020 PS2KBD EQU MONIO+$20 PS/2 KEYBOARD PORT |
0051 * |
0052 *************************************************** |
0053 * ADM3A DISPLAY DRIVER VARIABLES * |
0054 *************************************************** |
0055 * |
0056 ** VIDEO DISPLAY DEFINITIONS |
0057 * |
0058 E030 VDU EQU MONIO+$30 |
0059 0000 VDUCHR EQU 0 CHARACTER REGISTER |
0060 0001 VDUATT EQU 1 ATTRIBUTE REGISTER |
0061 0002 VDUCOL EQU 2 CURSOR COLUMN |
0062 0003 VDUROW EQU 3 CURSOR ROW |
0063 0004 VDUOFF EQU 4 ROW OFFSET |
0064 * |
0065 0050 LINLEN EQU 80 LENGTH OF A LINE |
0066 0019 NUMLIN EQU 25 NUMBER OF LINES |
0067 * |
0068 *************************************************** |
0069 * Serial PROM register |
0070 *************************************************** |
0071 * |
0072 ** CONFIGURATION PROM DEFINITIONS |
0073 * |
0074 E0C0 PROMREG EQU MONIO+$C0 |
0075 0001 PCLKHI EQU $01 Toggle PROM Clock High |
0076 0000 PCLKLO EQU $00 Toggle PROM Clock Low |
0077 0002 PRSTHI EQU $02 Toggle PROM Reset High |
0078 0000 PRSTLO EQU $00 Toggle PROM Reset Low |
0079 AA55 SYNCHI EQU $AA55 Synch Pattern High Word |
0080 FF00 SYNCLO EQU $FF00 Synch Pattern Low Word |
0081 * |
0082 * |
0083 *************************************************** |
0084 * Dynamic Address Translation Registers |
0085 *************************************************** |
0086 * |
0087 ** DAT Table |
0088 * |
0089 FFF0 IC11 EQU $FFF0 DAT RAM CHIP |
0090 * |
0091 *************************************************** |
0092 * START OF ROM * |
0093 *************************************************** |
0094 * |
0095 F800 MONITV EQU MONROM+0 FDB MONITOR |
0096 F802 NXTCMV EQU MONROM+2 FDB NEXTCMD |
0097 F804 INCHV EQU MONROM+4 FDB INCH |
0098 F806 INCHEV EQU MONROM+6 FDB INCHE |
0099 F808 INCHKV EQU MONROM+8 FDB INCHEK |
0100 F80A OUTCHV EQU MONROM+10 FDB OUTCH |
0101 F80C PDATAV EQU MONROM+12 FDB PDATA |
0102 F80E PCRLFV EQU MONROM+14 FDB PCRLF |
0103 F810 PSTRGV EQU MONROM+16 FDB PSTRNG |
0104 F812 LRAV EQU MONROM+18 FDB LRA |
0002 END |
0000 INCLUDE "f9-equ.asm" |
0001 0000 Z0000 EQU $0000 |
0002 0005 Z0005 EQU $0005 |
0003 0044 Z0044 EQU $0044 |
0004 00A0 Z00A0 EQU $00A0 |
0005 C07F ZC07F EQU $C07F |
0006 C080 LINBUF EQU $C080 |
0007 C0FF ZC0FF EQU $C0FF |
0003 END |
0000 INCLUDE "f9-spool.asm" |
0001 * |
0002 ** PRINTER SPOOLING |
0003 * |
0004 C700 ORG $C700 |
0005 C700 7E C7 21 PRSPL1 JMP ZC721 |
0006 C703 7E C7 03 PRSPL2 JMP * |
0007 C706 7E C7 47 PRSPL3 JMP ZC747 |
0008 C709 7E C7 85 PRSPL4 JMP ZC785 |
0009 C70C 7E C7 95 PRSPL5 JMP ZC795 |
0010 C70F 7E C7 1F PRSPL6 JMP ZC71F |
0011 * |
0012 ** SPOOLER SCRATCH AREA |
0013 * |
0014 C712 0C 00 00 00 00 C8 ZC712 FCB $0C,$00,$00,$00,$00,$C8,$10 |
10 |
0015 C719 C8 10 ZC719 FCB $C8,$10 |
0016 C71B 00 QCNT FCB $00 |
0017 C71C 00 ZC71C FCB $00 |
0018 C71D 00 ZC71D FCB $00 |
0019 C71E 00 ZC71E FCB $00 |
0020 * |
0021 C71F 3B ZC71F RTI |
0022 C720 12 NOP |
0023 * |
0024 C721 1A 10 ZC721 ORCC #$10 |
0025 C723 BE CC 31 LDX ZCC31 |
0026 C726 10 EF 02 STS 2,X |
0027 C729 7D CC 34 TST ZCC34 |
0028 C72C 26 11 BNE ZC73F |
0029 C72E 8E CC FC LDX #ZCCFC |
0030 C731 7C CC 34 INC ZCC34 |
0031 C734 6D 84 TST ,X |
0032 C736 27 07 BEQ ZC73F |
0033 C738 BF CC 31 ZC738 STX ZCC31 |
0034 C73B 10 EE 02 LDS $02,X |
0035 C73E 3B RTI |
0036 * |
0037 C73F 8E CC F8 ZC73F LDX #ZCCF8 |
0038 C742 7F CC 34 CLR ZCC34 |
0039 C745 20 F1 BRA ZC738 |
0040 * |
0041 C747 1A 10 ZC747 ORCC #$10 |
0042 C749 7D C7 1B TST QCNT |
0043 C74C 27 29 BEQ ZC777 |
0044 C74E BE C7 19 LDX ZC719 |
0045 C751 A6 84 LDA ,X |
0046 C753 34 02 PSHS A |
0047 C755 EC 01 LDD $01,X |
0048 C757 8E CA C0 LDX #ZCAC0 |
0049 C75A ED 88 40 STD $40,X |
0050 C75D 35 02 PULS A |
0051 C75F A7 03 STA $03,X |
0052 C761 6F 84 CLR ,X |
0053 C763 86 01 LDA #$01 |
0054 C765 A7 02 STA $02,X |
0055 C767 6F 88 22 CLR $22,X |
0056 C76A 6F 88 3B CLR $3B,X |
0057 C76D 7D C7 1E ZC76D TST ZC71E |
0058 C770 27 29 BEQ ZC79B |
0059 C772 11 3F SWI3 |
0060 C774 12 NOP |
0061 C775 20 F6 BRA ZC76D |
0062 * |
0063 C777 1C EF ZC777 ANDCC #$EF |
0064 C779 AD 9F D3 ED ZC779 JSR [TOFVEC] |
0065 C77D 7F CC FC CLR ZCCFC |
0066 C780 11 3F SWI3 |
0067 C782 12 NOP |
0068 C783 20 F4 BRA ZC779 |
0069 * |
0070 C785 1A 10 ZC785 ORCC #$10 |
0071 C787 7D CC 30 TST ZCC30 |
0072 C78A 27 05 BEQ ZC791 |
0073 C78C 11 3F SWI3 |
0074 C78E 12 NOP |
0075 C78F 20 F4 BRA ZC785 |
0076 * |
0077 C791 7C CC 30 ZC791 INC ZCC30 |
0078 C794 39 RTS |
0079 * |
0080 C795 7F CC 30 ZC795 CLR ZCC30 |
0081 C798 1C EF ANDCC #$EF |
0082 C79A 39 RTS |
0083 * |
0084 C79B 7D C7 1D ZC79B TST ZC71D |
0085 C79E 26 27 BNE ZC7C7 |
0086 C7A0 8E CA C0 LDX #ZCAC0 |
0087 C7A3 BD D4 06 JSR FMS |
0088 C7A6 26 1F BNE ZC7C7 |
0089 C7A8 7D C7 1C TST ZC71C |
0090 C7AB 27 0F BEQ ZC7BC |
0091 C7AD 7F C7 1C CLR ZC71C |
0092 C7B0 81 0A CMPA #$0A |
0093 C7B2 27 0F BEQ ZC7C3 |
0094 C7B4 34 02 PSHS A |
0095 C7B6 86 0A LDA #$0A |
0096 C7B8 8D 3C BSR ZC7F6 |
0097 C7BA 35 02 PULS A |
0098 C7BC 81 0D ZC7BC CMPA #$0D |
0099 C7BE 26 03 BNE ZC7C3 |
0100 C7C0 B7 C7 1C STA ZC71C |
0101 C7C3 8D 31 ZC7C3 BSR ZC7F6 |
0102 C7C5 20 D4 BRA ZC79B |
0103 * |
0104 C7C7 86 0D ZC7C7 LDA #$0D |
0105 C7C9 8D 2B BSR ZC7F6 |
0106 C7CB 86 0A LDA #$0A |
0107 C7CD 8D 27 BSR ZC7F6 |
0108 C7CF B6 C7 12 LDA ZC712 |
0109 C7D2 8D 22 BSR ZC7F6 |
0110 C7D4 7F C7 1D CLR ZC71D |
0111 C7D7 BE C7 19 LDX ZC719 |
0112 C7DA 6D 03 TST $03,X |
0113 C7DC 27 05 BEQ ZC7E3 |
0114 C7DE 6A 03 DEC $03,X |
0115 C7E0 7E C7 47 JMP ZC747 |
0116 * |
0117 C7E3 30 04 ZC7E3 LEAX $04,X |
0118 C7E5 8C C8 40 CMPX #FCB |
0119 C7E8 26 03 BNE ZC7ED |
0120 C7EA 8E C8 10 LDX #ZC810 |
0121 C7ED BF C7 19 ZC7ED STX ZC719 |
0122 C7F0 7A C7 1B DEC QCNT |
0123 C7F3 7E C7 47 JMP ZC747 |
0124 * |
0125 C7F6 BD CC D8 ZC7F6 JSR PCHK |
0126 C7F9 2B 05 BMI ZC800 |
0127 C7FB 11 3F SWI3 |
0128 C7FD 12 NOP |
0129 C7FE 20 F6 BRA ZC7F6 |
0130 * |
0131 C800 7E CC E4 ZC800 JMP POUT |
0132 C810 ZC810 EQU $C810 |
0133 C838 ZC838 EQU $C838 |
0004 END |
0000 INCLUDE "f9-sfcb.asm" |
0001 * |
0002 ** SYSTEM FILE CONTROL BLOCK |
0003 * |
0004 C840 ORG $C840 |
0005 C840 FF FCB FCB $FF |
0006 C841 00 FCB $00 |
0007 C842 00 FCB $00 |
0008 C843 00 FCB $00 |
0009 C844 53 54 41 52 54 55 ZC844 FCC "STARTUP" |
50 |
0010 C84B 00 FCB $00 |
0011 C84C 54 58 54 FCC "TXT" |
0012 C84F 00 FCB $00 |
0005 END |
0000 INCLUDE "f9-init.asm" |
0001 * |
0002 ** FLEX INITIATION |
0003 * |
0004 CA00 ORG $CA00 |
0005 CA00 20 06 ZCA00 BRA ZCA08 |
0006 CA02 BD CA AC ZCA02 JSR >ZCAAC |
0007 CA05 39 RTS |
0008 CA06 C0 A0 ZCA06 SUBB #$A0 |
0009 CA08 86 39 ZCA08 LDA #$39 |
0010 CA0A B7 D3 FD STA >ZD3FD |
0011 CA0D BE CC 2B LDX >MEMEND |
0012 CA10 30 89 00 A1 LEAX $00A1,X |
0013 CA14 BF CA 06 STX >ZCA06 |
0014 CA17 AD 9F D3 F1 JSR [TINVEC] |
0015 CA1B BE D3 FB LDX >INVEC |
0016 CA1E BF CD 0A STX >INCH+1 |
0017 CA21 BF CD 0D STX >INCH2+1 |
0018 CA24 BE D3 F9 LDX >OUTVEC |
0019 CA27 BF CD 10 STX >OUTCH+1 |
0020 CA2A BF CD 13 STX >OUTCH2+1 |
0021 CA2D BE D3 F7 LDX >STAVEC |
0022 CA30 BF CD 4F STX >ZCD4E+1 |
0023 CA33 8E 00 A0 LDX #Z00A0 |
0024 CA36 C6 B9 LDB #$B9 |
0025 CA38 A6 84 ZCA38 LDA ,X |
0026 CA3A E7 84 STB ,X |
0027 CA3C 12 NOP |
0028 CA3D E1 84 CMPB ,X |
0029 CA3F 26 0B BNE ZCA4C |
0030 CA41 A7 84 STA ,X |
0031 CA43 30 89 04 00 LEAX $0400,X |
0032 CA47 BC CA 06 CMPX >ZCA06 |
0033 CA4A 26 EC BNE ZCA38 |
0034 CA4C 30 89 FF 5F ZCA4C LEAX $FF5F,X |
0035 CA50 BF CC 2B STX >MEMEND |
0036 CA53 8E CD 03 LDX #WARMS |
0037 CA56 BF CC 16 STX >ESCVEC |
0038 CA59 8E CA DC LDX #TTLSTR |
0039 CA5C BD CE 81 JSR >PSTRG1 |
0040 CA5F BD CE B5 JSR >PCRLF1 |
0041 CA62 8D 9E BSR ZCA02 |
0042 CA64 BD CE B5 JSR >PCRLF1 |
0043 CA67 8E C8 40 LDX #FCB |
0044 CA6A 86 01 LDA #$01 |
0045 CA6C A7 84 STA ,X |
0046 CA6E BD D4 06 JSR >FMS |
0047 CA71 27 08 BEQ ZCA7B |
0048 CA73 A6 01 LDA $01,X |
0049 CA75 BD D2 00 JSR >ZD200 |
0050 CA78 7E CD 67 JMP >WARM1 |
0051 |
0052 CA7B 8E C0 80 ZCA7B LDX #LINBUF |
0053 CA7E BF CC 14 ZCA7E STX >LINPTR |
0054 CA81 8E C8 40 LDX #FCB |
0055 CA84 BD D4 06 JSR >FMS |
0056 CA87 27 05 BEQ ZCA8E |
0057 CA89 34 30 PSHS Y,X |
0058 CA8B 7E D2 D7 JMP >ZD2D7 |
0059 |
0060 CA8E BE CC 14 ZCA8E LDX >LINPTR |
0061 CA91 A7 80 STA ,X+ |
0062 CA93 81 0D CMPA #$0D |
0063 CA95 26 E7 BNE ZCA7E |
0064 CA97 8E C8 40 LDX #FCB |
0065 CA9A BD D1 F4 JSR >ZD1F4 |
0066 CA9D 8E C0 80 LDX #LINBUF |
0067 CAA0 BF CC 14 STX >LINPTR |
0068 CAA3 8E CD 67 LDX #WARM1 |
0069 CAA6 BF CC 43 STX >ZCC43 |
0070 CAA9 7E D3 2E JMP >ZD32E |
0071 |
0072 CAAC 8E CA EC ZCAAC LDX #DATSTR |
0073 CAAF BD CE 81 JSR >PSTRG1 |
0074 CAB2 BD CE 2B JSR >INBUF1 |
0075 CAB5 8D 14 BSR ZCACB |
0076 CAB7 25 F3 BCS ZCAAC |
0077 CAB9 B7 CC 0E STA >MONTH |
0078 CABC 8D 0D BSR ZCACB |
0079 CABE 25 EC BCS ZCAAC |
0080 CAC0 B7 CC 0F ZCAC0 STA >DAY |
0081 CAC3 8D 06 BSR ZCACB |
0082 CAC5 25 E5 BCS ZCAAC |
0083 CAC7 B7 CC 10 STA >YEAR |
0084 CACA 39 RTS |
0085 |
0086 CACB BD D1 75 ZCACB JSR >INDEC1 |
0087 CACE 25 0B BCS ZCADB |
0088 CAD0 B6 CC 1C LDA >LODOFF+1 |
0089 CAD3 5D TSTB |
0090 CAD4 27 03 BEQ ZCAD9 |
0091 CAD6 1C FE ANDCC #$FE |
0092 CAD8 39 RTS |
0093 |
0094 CAD9 1A 01 ZCAD9 ORCC #$01 |
0095 CADB 39 ZCADB RTS |
0096 |
0097 CADC 36 38 30 39 20 46 TTLSTR FCC "6809 FLEX V3.01" |
4C 45 58 20 56 33 |
2E 30 31 |
0098 CAEB 04 FCB $04 |
0099 CAEC 44 41 54 45 20 28 DATSTR FCC "DATE (MM,DD,YY)? " |
4D 4D 2C 44 44 2C |
59 59 29 3F 20 |
0100 CAFD 04 FCB $04 |
0006 END |
0000 INCLUDE "f9-var.asm" |
0001 * |
0002 ** TTYSET PARAMETERS |
0003 * |
0004 CC00 ORG $CC00 |
0005 CC00 08 BSPCHR FCB $08 |
0006 CC01 18 DELCHR FCB $18 |
0007 CC02 3A EOLCHR FCB $3A |
0008 CC03 19 DEPCNT FCB 25 |
0009 CC04 00 WIDCNT FCB $00 |
0010 CC05 04 NULCNT FCB $04 |
0011 CC06 40 TABCHR FCB '@ |
0012 CC07 00 BSECHR FCB $00 |
0013 CC08 00 EJTCNT FCB $00 |
0014 CC09 FF PAUSE FCB $FF |
0015 CC0A 1B ESCCHR FCB $1B |
0016 CC0B 00 SYSDRV FCB 0 |
0017 CC0C 01 WRKDRV FCB 1 |
0018 CC0D 00 ZCC0D FCB $00 |
0019 CC0E DATERG EQU * |
0020 CC0E 00 MONTH FCB $00 |
0021 CC0F 00 DAY FCB $00 |
0022 CC10 00 YEAR FCB $00 |
0023 CC11 00 LASTRM FCB $00 |
0024 CC12 00 00 UCTVEC FDB $0000 |
0025 CC14 00 00 LINPTR FDB $0000 |
0026 CC16 00 00 ESCVEC FDB $0000 |
0027 CC18 00 CURCHR FCB $00 |
0028 CC19 00 PRVCHR FCB $00 |
0029 CC1A 00 CURLIN FCB $00 |
0030 CC1B 00 00 LODOFF FDB $0000 |
0031 CC1D 00 TRNFLG FCB $00 |
0032 CC1E 00 00 TRNVEC FDB $0000 |
0033 CC20 00 ERRTYP FCB $00 |
0034 CC21 00 SIOFLG FCB $00 |
0035 CC22 00 OUTSWT FCB $00 |
0036 CC23 00 INPSWT FCB $00 |
0037 CC24 00 00 FOPADR FDB $0000 |
0038 CC26 00 00 FIPADR FDB $0000 |
0039 CC28 00 CMDFLG FCB $00 |
0040 CC29 00 CURCOL FCB $00 |
0041 CC2A 00 FCB $00 |
0042 CC2B BF FF MEMEND FDB $BFFF |
0043 CC2D 00 00 ERRVEC FDB $0000 |
0044 CC2F 01 FIEFLG FCB $01 |
0045 CC30 00 ZCC30 FCB $00 |
0046 CC31 00 00 00 ZCC31 FCB $00,$00,$00 |
0047 CC34 00 00 00 00 00 00 ZCC34 FCB $00,$00,$00,$00,$00,$00,$00 |
00 |
0048 CC3D ZCC3D EQU $CC3D |
0049 CC3F ZCC3F EQU $CC3F |
0050 CC43 ZCC43 EQU $CC43 |
0051 CC45 ZCC45 EQU $CC45 |
0052 CC47 ZCC47 EQU $CC47 |
0053 CC49 ORG $CC49 |
0054 CC49 60 MAPUP FCB $60 MAP LOWER TO UPPERCASE |
0055 CC4A ZCC4A EQU $CC4A |
0056 CC4B ZCC4B EQU $CC4B |
0057 CC4C ZCC4C EQU $CC4C |
0058 CC4D ZCC4D EQU $CC4D |
0007 END |
0000 INCLUDE "f9-data.asm" |
0001 * |
0002 ** STRINGS AND MESSAGES |
0003 * |
0004 CC4E ORG $CC4E |
0005 CC4E 2B 2B 2B PMTSTR FCC "+++" |
0006 CC51 04 FCB $04 |
0007 CC52 3F 3F 3F QRYSTR FCC "???" |
0008 CC55 04 FCB $04 |
0009 CC56 57 48 41 54 3F WOTMSG FCC "WHAT?" |
0010 CC5B 04 FCB $04 |
0011 CC5C 43 41 4E 27 54 20 NTRMSG FCC "CAN'T TRANSFER" |
54 52 41 4E 53 46 |
45 52 |
0012 CC6A 04 FCB $04 |
0013 CC6B 4E 4F 54 20 46 4F NFDMSG FCC "NOT FOUND" |
55 4E 44 |
0014 CC74 04 FCB $04 |
0015 CC75 44 49 53 4B 20 45 DERMSG FCC "DISK ERROR #" |
52 52 4F 52 20 23 |
0016 CC81 04 FCB $04 |
0017 CC82 44 52 49 56 45 53 DNRMSG FCC "DRIVES NOT READY" |
20 4E 4F 54 20 52 |
45 41 44 59 |
0018 CC92 04 FCB $04 |
0019 * |
0020 ** MEMORY RESIDENT COMMANDS |
0021 * |
0022 CC93 47 45 54 CMDTBL FCC "GET" |
0023 CC96 00 FCB $00 |
0024 CC97 D2 0F FDB GETCMD |
0025 CC99 4D 4F 4E FCC "MON" |
0026 CC9C 00 FCB $00 |
0027 CC9D D3 4B FDB ZD34B |
0028 CC9F 00 FCB $00 |
0029 * |
0030 ** DECIMAL CONVERSION TABLE |
0031 * |
0032 CCA0 27 10 DECTBL FDB 10000 |
0033 CCA2 03 E8 FDB 1000 |
0034 CCA4 00 64 FDB 100 |
0035 CCA6 00 0A FDB 10 |
0008 END |
0000 INCLUDE "f9-cli.asm" |
0001 ********************************************* |
0002 * |
0003 * FLEX COMMAND LINE INTERPRETER & SUBROUTINES |
0004 * |
0005 ********************************************* |
0006 CD00 ORG $CD00 |
0007 * |
0008 ** FLEX JUMPS |
0009 * |
0010 CD00 7E CD 57 COLDS JMP >COLD1 |
0011 CD03 7E CD 67 WARMS JMP >WARM1 |
0012 CD06 7E CD B1 RENTER JMP >RENT1 |
0013 CD09 7E CD 09 INCH JMP >INCH |
0014 CD0C 7E CD 0C INCH2 JMP >INCH2 |
0015 CD0F 7E CD 0F OUTCH JMP >OUTCH |
0016 CD12 7E CD 12 OUTCH2 JMP >OUTCH2 |
0017 CD15 7E CE FB GETCHR JMP >GETCH1 |
0018 CD18 7E CF 41 PUTCHR JMP >PUTCH1 |
0019 CD1B 7E CE 2B INBUFF JMP >INBUF1 |
0020 CD1E 7E CE 81 PSTRNG JMP >PSTRG1 |
0021 CD21 7E CF ED CLASS JMP >CLASS1 |
0022 CD24 7E CE B5 PCRLF JMP >PCRLF1 |
0023 CD27 7E D0 0E NXTCH JMP >NXTCH1 |
0024 CD2A 7E CD EA RSTRIO JMP >RSTIO1 |
0025 CD2D 7E D0 36 GETFIL JMP >GETFL1 |
0026 CD30 7E D1 A2 LOAD JMP >LOAD1 |
0027 CD33 7E D0 EB SETEXT JMP >SETEX1 |
0028 CD36 7E D3 49 ADDBX JMP >ADDBX1 |
0029 CD39 7E CF 86 OUTDEC JMP >OUTDC1 |
0030 CD3C 7E CF D4 OUTHEX JMP >OUTHX1 |
0031 CD3F 7E D2 7F RPTERR JMP >RPTER1 |
0032 CD42 7E D1 2F GETHEX JMP >GETHX1 |
0033 CD45 7E CF D0 OUTADR JMP >OUTAD1 |
0034 CD48 7E D1 75 INDEC JMP >INDEC1 |
0035 CD4B 7E D3 29 DOCMND JMP >DOCMD1 |
0036 CD4E 7E CD 4E ZCD4E JMP >ZCD4E |
0037 CD51 7E CE 05 JMP >ZCE05 |
0038 CD54 7E CE 05 JMP >ZCE05 |
0039 * |
0040 ** COLD START ENTRY |
0041 * |
0042 CD57 10 CE C0 7F COLD1 LDS #ZC07F |
0043 CD5B 7F CC 11 ZCD5B CLR >LASTRM |
0044 CD5E BD D4 00 JSR >ZD400 |
0045 CD61 7F CC 28 CLR >CMDFLG |
0046 CD64 BD D3 FD JSR >ZD3FD |
0047 * |
0048 ** WARM START ENTRY |
0049 * |
0050 CD67 10 CE C0 7F WARM1 LDS #ZC07F |
0051 CD6B BD DE 18 JSR >WARMDR |
0052 CD6E 8E CD 03 LDX #WARMS |
0053 CD71 BF CC 16 STX >ESCVEC |
0054 CD74 8E C7 00 LDX #PRSPL1 |
0055 CD77 AF 9F D3 E9 STX [SWIVVC] |
0056 CD7B BE D3 E7 LDX >IHNDVC |
0057 CD7E AF 9F D3 EB STX [IRQVVC] |
0058 CD82 8E CC F8 LDX #ZCCF8 |
0059 CD85 BF CC 31 STX >ZCC31 |
0060 CD88 7F CC 34 CLR >ZCC34 |
0061 CD8B 7F CC 4C CLR >ZCC4C |
0062 CD8E 8D 5A BSR RSTIO1 |
0063 CD90 B6 CC 11 LDA >LASTRM |
0064 CD93 B1 CC 02 CMPA >EOLCHR |
0065 CD96 26 05 BNE ZCD9D |
0066 CD98 7C CC 15 INC >LINPTR+1 |
0067 CD9B 20 14 BRA RENT1 |
0068 |
0069 CD9D 7D CC 28 ZCD9D TST >CMDFLG |
0070 CDA0 10 26 05 97 LBNE ZD33B |
0071 CDA4 BD D4 03 JSR >FMSCLS |
0072 CDA7 26 B2 BNE ZCD5B |
0073 CDA9 8E CC 4E LDX #PMTSTR |
0074 CDAC BD CE 81 JSR >PSTRG1 |
0075 CDAF 8D 7A BSR INBUF1 |
0076 * |
0077 ** MAIN CONTROL LOOP |
0078 * |
0079 CDB1 BD D0 D4 RENT1 JSR >ZD0D4 |
0080 CDB4 81 0D CMPA #$0D |
0081 CDB6 27 E5 BEQ ZCD9D |
0082 CDB8 8E C8 40 ZCDB8 LDX #FCB |
0083 CDBB 7C CC 0D INC >ZCC0D |
0084 CDBE BD D0 36 JSR >GETFL1 |
0085 CDC1 25 16 BCS ZCDD9 |
0086 CDC3 8E CC 93 LDX #CMDTBL |
0087 CDC6 8D 3E BSR ZCE06 |
0088 CDC8 27 09 BEQ ZCDD3 |
0089 CDCA BE CC 12 LDX >UCTVEC |
0090 CDCD 27 07 BEQ ZCDD6 |
0091 CDCF 8D 35 BSR ZCE06 |
0092 CDD1 26 03 BNE ZCDD6 |
0093 CDD3 6E 98 01 ZCDD3 JMP [$01,X] |
0094 |
0095 CDD6 BD D2 2E ZCDD6 JSR >ZD22E |
0096 CDD9 8E CC 56 ZCDD9 LDX #WOTMSG |
0097 CDDC 86 15 LDA #$15 |
0098 CDDE B7 CC 20 ZCDDE STA >ERRTYP |
0099 CDE1 BD CE 81 ZCDE1 JSR >PSTRG1 |
0100 CDE4 7F CC 11 ZCDE4 CLR >LASTRM |
0101 CDE7 7E CD 67 JMP >WARM1 |
0102 * |
0103 ** RESTORE IO VECTORS |
0104 * |
0105 CDEA BE CD 13 RSTIO1 LDX >OUTCH2+1 |
0106 CDED BF CD 10 STX >OUTCH+1 |
0107 CDF0 BE CD 0D LDX >INCH2+1 |
0108 CDF3 BF CD 0A STX >INCH+1 |
0109 CDF6 7F CC 23 CLR >INPSWT |
0110 CDF9 7F CC 22 CLR >OUTSWT |
0111 CDFC 7F CC 21 CLR >SIOFLG |
0112 CDFF 7F CC 26 CLR >FIPADR |
0113 CE02 7F CC 24 CLR >FOPADR |
0114 CE05 39 ZCE05 RTS |
0115 |
0116 CE06 10 8E C8 44 ZCE06 LDY #ZC844 |
0117 CE0A A6 A0 ZCE0A LDA ,Y+ |
0118 CE0C 81 5F CMPA #$5F |
0119 CE0E 23 02 BLS ZCE12 |
0120 CE10 80 20 SUBA #$20 |
0121 CE12 A1 80 ZCE12 CMPA ,X+ |
0122 CE14 26 08 BNE ZCE1E |
0123 CE16 6D 84 TST ,X |
0124 CE18 26 F0 BNE ZCE0A |
0125 CE1A 6D A4 TST ,Y |
0126 CE1C 27 0C BEQ ZCE2A |
0127 CE1E 6D 80 ZCE1E TST ,X+ |
0128 CE20 26 FC BNE ZCE1E |
0129 CE22 30 02 LEAX $02,X |
0130 CE24 6D 84 TST ,X |
0131 CE26 26 DE BNE ZCE06 |
0132 CE28 1C FB ANDCC #$FB |
0133 CE2A 39 ZCE2A RTS |
0134 * |
0135 ** GET USER COMMAND LINE |
0136 * |
0137 CE2B 8E C0 80 INBUF1 LDX #LINBUF |
0138 CE2E BF CC 14 STX >LINPTR |
0139 CE31 BD CE FB ZCE31 JSR >GETCH1 |
0140 CE34 B1 CC 01 CMPA >DELCHR |
0141 CE37 27 1D BEQ ZCE56 |
0142 CE39 B1 CC 00 CMPA >BSPCHR |
0143 CE3C 27 1F BEQ ZCE5D |
0144 CE3E 81 0D CMPA #$0D |
0145 CE40 27 0D BEQ ZCE4F |
0146 CE42 81 0A CMPA #$0A |
0147 CE44 27 32 BEQ ZCE78 |
0148 CE46 81 1F CMPA #$1F |
0149 CE48 23 E7 BLS ZCE31 |
0150 CE4A 8C C0 FF ZCE4A CMPX #ZC0FF |
0151 CE4D 27 E2 BEQ ZCE31 |
0152 CE4F A7 80 ZCE4F STA ,X+ |
0153 CE51 81 0D CMPA #$0D |
0154 CE53 26 DC BNE ZCE31 |
0155 CE55 39 RTS |
0156 |
0157 CE56 8E CC 52 ZCE56 LDX #QRYSTR |
0158 CE59 8D 26 BSR PSTRG1 |
0159 CE5B 20 CE BRA INBUF1 |
0160 |
0161 CE5D 8C C0 80 ZCE5D CMPX #LINBUF |
0162 CE60 27 F4 BEQ ZCE56 |
0163 CE62 30 1F LEAX -$01,X |
0164 CE64 B6 CC 07 LDA >BSECHR |
0165 CE67 81 08 CMPA #$08 |
0166 CE69 26 08 BNE ZCE73 |
0167 CE6B 86 20 LDA #$20 |
0168 CE6D BD CF 66 JSR >ZCF66 |
0169 CE70 B6 CC 07 LDA >BSECHR |
0170 CE73 BD CF 66 ZCE73 JSR >ZCF66 |
0171 CE76 20 B9 BRA ZCE31 |
0172 |
0173 CE78 86 0D ZCE78 LDA #$0D |
0174 CE7A BD CF 41 JSR >PUTCH1 |
0175 CE7D 86 20 LDA #$20 |
0176 CE7F 20 C9 BRA ZCE4A |
0177 |
0178 CE81 8D 32 PSTRG1 BSR PCRLF1 |
0179 CE83 A6 84 ZCE83 LDA ,X |
0180 CE85 81 04 CMPA #$04 |
0181 CE87 27 6F BEQ ZCEF8 |
0182 CE89 BD CF 41 JSR >PUTCH1 |
0183 CE8C 30 01 LEAX $01,X |
0184 CE8E 20 F3 BRA ZCE83 |
0185 |
0186 CE90 BD CD 4E ZCE90 JSR >ZCD4E |
0187 CE93 27 65 BEQ ZCEFA |
0188 CE95 AD 9F D3 E5 JSR [ZD3E5] |
0189 CE99 B1 CC 0A CMPA >ESCCHR |
0190 CE9C 26 5C BNE ZCEFA |
0191 CE9E 7F CC 1A ZCE9E CLR >CURLIN |
0192 CEA1 AD 9F D3 E5 ZCEA1 JSR [ZD3E5] |
0193 CEA5 B1 CC 0A CMPA >ESCCHR |
0194 CEA8 27 50 BEQ ZCEFA |
0195 CEAA 81 03 CMPA #$03 CTRL C |
0196 CEAC 26 F3 BNE ZCEA1 |
0197 CEAE 7F CC 11 CLR >LASTRM |
0198 CEB1 6E 9F CC 16 JMP [ESCVEC] |
0199 * |
0200 ** PRINT CR, LINEFEED |
0201 * |
0202 CEB5 7D CC 21 PCRLF1 TST >SIOFLG |
0203 CEB8 26 27 BNE ZCEE1 |
0204 CEBA 8D D4 BSR ZCE90 |
0205 CEBC B6 CC 03 LDA >DEPCNT |
0206 CEBF 27 20 BEQ ZCEE1 |
0207 CEC1 B1 CC 1A CMPA >CURLIN |
0208 CEC4 22 18 BHI ZCEDE |
0209 CEC6 7F CC 1A CLR >CURLIN |
0210 CEC9 7D CC 09 TST >PAUSE |
0211 CECC 27 02 BEQ ZCED0 |
0212 CECE 8D CE BSR ZCE9E |
0213 CED0 34 04 ZCED0 PSHS B |
0214 CED2 F6 CC 08 LDB >EJTCNT |
0215 CED5 27 05 BEQ ZCEDC |
0216 CED7 8D 08 ZCED7 BSR ZCEE1 |
0217 CED9 5A DECB |
0218 CEDA 26 FB BNE ZCED7 |
0219 CEDC 35 04 ZCEDC PULS B |
0220 CEDE 7C CC 1A ZCEDE INC >CURLIN |
0221 CEE1 86 0D ZCEE1 LDA #$0D |
0222 CEE3 8D 5C BSR PUTCH1 |
0223 CEE5 86 0A LDA #$0A |
0224 CEE7 8D 58 BSR PUTCH1 |
0225 CEE9 34 04 PSHS B |
0226 CEEB F6 CC 05 LDB >NULCNT |
0227 CEEE 27 06 BEQ ZCEF6 |
0228 CEF0 4F ZCEF0 CLRA |
0229 CEF1 8D 4E BSR PUTCH1 |
0230 CEF3 5A DECB |
0231 CEF4 26 FA BNE ZCEF0 |
0232 CEF6 35 04 ZCEF6 PULS B |
0233 CEF8 1C FE ZCEF8 ANDCC #$FE |
0234 CEFA 39 ZCEFA RTS |
0235 * |
0236 ** GET A CHARACTER HONOURING TTYSET |
0237 * |
0238 CEFB 7D CC 23 GETCH1 TST >INPSWT |
0239 CEFE 26 1A BNE ZCF1A |
0240 CF00 7D CC 26 TST >FIPADR |
0241 CF03 27 10 BEQ ZCF15 |
0242 CF05 8D 1A BSR ZCF21 |
0243 CF07 7D CC 2F TST >FIEFLG |
0244 CF0A 27 11 BEQ ZCF1D |
0245 CF0C 7D CC 24 TST >FOPADR |
0246 CF0F 27 0C BEQ ZCF1D |
0247 CF11 8D 53 BSR ZCF66 |
0248 CF13 20 08 BRA ZCF1D |
0249 CF15 BD CD 09 ZCF15 JSR >INCH |
0250 CF18 20 03 BRA ZCF1D |
0251 |
0252 CF1A BD CD 0C ZCF1A JSR >INCH2 |
0253 CF1D 7F CC 1A ZCF1D CLR >CURLIN |
0254 CF20 39 RTS |
0255 |
0256 CF21 BF CC 47 ZCF21 STX >ZCC47 |
0257 CF24 BE CC 26 LDX >FIPADR |
0258 CF27 20 06 BRA ZCF2F |
0259 |
0260 CF29 BF CC 47 ZCF29 STX >ZCC47 |
0261 CF2C BE CC 24 LDX >FOPADR |
0262 CF2F BD D4 06 ZCF2F JSR >FMS |
0263 CF32 26 04 BNE ZCF38 |
0264 CF34 BE CC 47 LDX >ZCC47 |
0265 CF37 39 RTS |
0266 |
0267 CF38 7F CC 24 ZCF38 CLR >FOPADR |
0268 CF3B BD D2 7F JSR >RPTER1 |
0269 CF3E 7E CD 03 JMP >WARMS |
0270 * |
0271 ** OUTPUT CHARACTER HONOURING TTYSET |
0272 * |
0273 CF41 7D CC 21 PUTCH1 TST >SIOFLG |
0274 CF44 26 20 BNE ZCF66 |
0275 CF46 81 1F CMPA #$1F |
0276 CF48 22 05 BHI ZCF4F |
0277 CF4A 7F CC 29 CLR >CURCOL |
0278 CF4D 20 17 BRA ZCF66 |
0279 |
0280 CF4F 7C CC 29 ZCF4F INC >CURCOL |
0281 CF52 34 02 PSHS A |
0282 CF54 B6 CC 04 LDA >WIDCNT |
0283 CF57 27 0B BEQ ZCF64 |
0284 CF59 B1 CC 29 CMPA >CURCOL |
0285 CF5C 24 06 BCC ZCF64 |
0286 CF5E BD CE B5 JSR >PCRLF1 |
0287 CF61 7C CC 29 INC >CURCOL |
0288 CF64 35 02 ZCF64 PULS A |
0289 CF66 34 02 ZCF66 PSHS A |
0290 CF68 7D CC 22 TST >OUTSWT |
0291 CF6B 26 13 BNE ZCF80 |
0292 CF6D 7D CC 24 TST >FOPADR |
0293 CF70 27 04 BEQ ZCF76 |
0294 CF72 8D B5 BSR ZCF29 |
0295 CF74 20 0D BRA ZCF83 |
0296 |
0297 CF76 7D CC 26 ZCF76 TST >FIPADR |
0298 CF79 26 08 BNE ZCF83 |
0299 CF7B BD CD 0F JSR >OUTCH |
0300 CF7E 20 03 BRA ZCF83 |
0301 CF80 BD CD 12 ZCF80 JSR >OUTCH2 |
0302 CF83 35 02 ZCF83 PULS A |
0303 CF85 39 RTS |
0304 |
0305 CF86 7F CC 4A OUTDC1 CLR >ZCC4A |
0306 CF89 F7 CC 1D STB >TRNFLG |
0307 CF8C 86 04 LDA #$04 |
0308 CF8E B7 CC 4D STA >ZCC4D |
0309 CF91 EC 84 LDD ,X |
0310 CF93 8E CC A0 LDX #DECTBL |
0311 CF96 8D 0B ZCF96 BSR ZCFA3 |
0312 CF98 30 02 LEAX $02,X |
0313 CF9A 7A CC 4D DEC >ZCC4D |
0314 CF9D 26 F7 BNE ZCF96 |
0315 CF9F 1F 98 TFR B,A |
0316 CFA1 20 3D BRA OUTHXR |
0317 |
0318 CFA3 7F CC 4B ZCFA3 CLR >ZCC4B |
0319 CFA6 10 A3 84 ZCFA6 CMPD ,X |
0320 CFA9 25 07 BCS ZCFB2 |
0321 CFAB A3 84 SUBD ,X |
0322 CFAD 7C CC 4B INC >ZCC4B |
0323 CFB0 20 F4 BRA ZCFA6 |
0324 |
0325 CFB2 34 02 ZCFB2 PSHS A |
0326 CFB4 B6 CC 4B LDA >ZCC4B |
0327 CFB7 26 10 BNE ZCFC9 |
0328 CFB9 7D CC 4A TST >ZCC4A |
0329 CFBC 26 0B BNE ZCFC9 |
0330 CFBE 7D CC 1D TST >TRNFLG |
0331 CFC1 27 0B BEQ ZCFCE |
0332 CFC3 86 20 LDA #$20 |
0333 CFC5 8D 23 BSR ZCFEA |
0334 CFC7 20 05 BRA ZCFCE |
0335 |
0336 CFC9 7C CC 4A ZCFC9 INC >ZCC4A |
0337 CFCC 8D 12 BSR OUTHXR |
0338 CFCE 35 82 ZCFCE PULS PC,A |
0339 * |
0340 ** DISPLAY HEX ADDRESS |
0341 * |
0342 CFD0 8D 02 OUTAD1 BSR OUTHX1 |
0343 CFD2 30 01 LEAX $01,X |
0344 * |
0345 ** OUPUT HEX BYTE |
0346 * |
0347 CFD4 A6 84 OUTHX1 LDA ,X |
0348 CFD6 8D 04 BSR OUTHXL |
0349 CFD8 A6 84 LDA ,X |
0350 CFDA 20 04 BRA OUTHXR |
0351 |
0352 CFDC 44 OUTHXL LSRA |
0353 CFDD 44 LSRA |
0354 CFDE 44 LSRA |
0355 CFDF 44 LSRA |
0356 CFE0 84 0F OUTHXR ANDA #$0F |
0357 CFE2 8B 30 ADDA #$30 |
0358 CFE4 81 39 CMPA #$39 |
0359 CFE6 23 02 BLS ZCFEA |
0360 CFE8 8B 07 ADDA #$07 |
0361 CFEA 7E CF 41 ZCFEA JMP >PUTCH1 |
0362 * |
0363 ** CLASSIFY CHARACTER ALHA/NUMERIC |
0364 * |
0365 CFED 81 30 CLASS1 CMPA #'0 |
0366 CFEF 25 14 BCS ZD005 |
0367 CFF1 81 39 CMPA #'9 |
0368 CFF3 23 16 BLS ZD00B |
0369 CFF5 81 41 CMPA #'A |
0370 CFF7 25 0C BCS ZD005 |
0371 CFF9 81 5A CMPA #'Z |
0372 CFFB 23 0E BLS ZD00B |
0373 CFFD 81 61 CMPA #'a $61 |
0374 CFFF 25 04 BCS ZD005 |
0375 D001 81 7A CMPA #'z $7A |
0376 D003 23 06 BLS ZD00B |
0377 D005 1A 01 ZD005 ORCC #$01 |
0378 D007 B7 CC 11 STA >LASTRM |
0379 D00A 39 RTS |
0380 D00B 1C FE ZD00B ANDCC #$FE |
0381 D00D 39 RTS |
0382 * |
0383 ** GET NEXT CHARACTER FROM FILE |
0384 * |
0385 D00E 34 10 NXTCH1 PSHS X |
0386 D010 BE CC 14 LDX >LINPTR |
0387 D013 B6 CC 18 LDA >CURCHR |
0388 D016 B7 CC 19 STA >PRVCHR |
0389 D019 A6 80 ZD019 LDA ,X+ |
0390 D01B B7 CC 18 STA >CURCHR |
0391 D01E 81 0D CMPA #$0D |
0392 D020 27 10 BEQ ZD032 |
0393 D022 B1 CC 02 CMPA >EOLCHR |
0394 D025 27 0B BEQ ZD032 |
0395 D027 BF CC 14 STX >LINPTR |
0396 D02A 81 20 CMPA #$20 |
0397 D02C 26 04 BNE ZD032 |
0398 D02E A1 84 CMPA ,X |
0399 D030 27 E7 BEQ ZD019 |
0400 D032 8D B9 ZD032 BSR CLASS1 |
0401 D034 35 90 PULS PC,X |
0402 * |
0403 ** PARSE FILE SPEC. IN LINE BUFFER |
0404 * |
0405 D036 86 15 GETFL1 LDA #$15 |
0406 D038 A7 01 STA $01,X |
0407 D03A 86 FF LDA #$FF |
0408 D03C A7 03 STA $03,X |
0409 D03E 6F 04 CLR $04,X |
0410 D040 6F 0C CLR $0C,X |
0411 D042 BD D0 D4 JSR >ZD0D4 |
0412 D045 86 08 LDA #$08 |
0413 D047 B7 CC 4B STA >ZCC4B |
0414 D04A 8D 34 BSR ZD080 |
0415 D04C 25 2E BCS ZD07C |
0416 D04E 26 0F BNE ZD05F |
0417 D050 8D 2E BSR ZD080 |
0418 D052 25 28 BCS ZD07C |
0419 D054 26 09 BNE ZD05F |
0420 D056 BC CC 3F CMPX >ZCC3F |
0421 D059 27 6C BEQ ZD0C7 |
0422 D05B 8D 23 BSR ZD080 |
0423 D05D 23 68 BLS ZD0C7 |
0424 D05F BE CC 3F ZD05F LDX >ZCC3F |
0425 D062 6D 04 TST $04,X |
0426 D064 27 61 BEQ ZD0C7 |
0427 D066 6D 03 TST $03,X |
0428 D068 2A 0F BPL ZD079 |
0429 D06A 7D CC 0D TST >ZCC0D |
0430 D06D 27 05 BEQ ZD074 |
0431 D06F B6 CC 0B LDA >SYSDRV |
0432 D072 20 03 BRA ZD077 |
0433 |
0434 D074 B6 CC 0C ZD074 LDA >WRKDRV |
0435 D077 A7 03 ZD077 STA $03,X |
0436 D079 7F CC 0D ZD079 CLR >ZCC0D |
0437 D07C BE CC 3F ZD07C LDX >ZCC3F |
0438 D07F 39 RTS |
0439 |
0440 D080 8D 8C ZD080 BSR NXTCH1 |
0441 D082 25 43 BCS ZD0C7 |
0442 D084 81 39 CMPA #$39 |
0443 D086 22 15 BHI ZD09D |
0444 D088 BE CC 3F LDX >ZCC3F |
0445 D08B 6D 03 TST $03,X |
0446 D08D 2A 38 BPL ZD0C7 |
0447 D08F 84 03 ANDA #$03 |
0448 D091 A7 03 STA $03,X |
0449 D093 BD D0 0E JSR >NXTCH1 |
0450 D096 24 2F BCC ZD0C7 |
0451 D098 81 2E ZD098 CMPA #$2E |
0452 D09A 1C FE ANDCC #$FE |
0453 D09C 39 RTS |
0454 |
0455 D09D F6 CC 4B ZD09D LDB >ZCC4B |
0456 D0A0 2B 25 BMI ZD0C7 |
0457 D0A2 34 04 PSHS B |
0458 D0A4 C0 05 SUBB #$05 |
0459 D0A6 F7 CC 4B STB >ZCC4B |
0460 D0A9 35 04 PULS B |
0461 D0AB B1 CC 49 ZD0AB CMPA >MAPUP |
0462 D0AE 25 02 BCS ZD0B2 |
0463 D0B0 80 20 SUBA #$20 |
0464 D0B2 A7 04 ZD0B2 STA $04,X |
0465 D0B4 30 01 LEAX $01,X |
0466 D0B6 5A DECB |
0467 D0B7 BD D0 0E JSR >NXTCH1 |
0468 D0BA 24 08 BCC ZD0C4 |
0469 D0BC 81 2D CMPA #$2D |
0470 D0BE 27 04 BEQ ZD0C4 |
0471 D0C0 81 5F CMPA #$5F |
0472 D0C2 26 06 BNE ZD0CA |
0473 D0C4 5D ZD0C4 TSTB |
0474 D0C5 26 E4 BNE ZD0AB |
0475 D0C7 1A 01 ZD0C7 ORCC #$01 |
0476 D0C9 39 RTS |
0477 |
0478 D0CA 5D ZD0CA TSTB |
0479 D0CB 27 CB BEQ ZD098 |
0480 D0CD 6F 04 CLR $04,X |
0481 D0CF 30 01 LEAX $01,X |
0482 D0D1 5A DECB |
0483 D0D2 20 F6 BRA ZD0CA |
0484 |
0485 D0D4 BF CC 3F ZD0D4 STX >ZCC3F |
0486 D0D7 BE CC 14 LDX >LINPTR |
0487 D0DA A6 84 ZD0DA LDA ,X |
0488 D0DC 81 20 CMPA #$20 |
0489 D0DE 26 04 BNE ZD0E4 |
0490 D0E0 30 01 LEAX $01,X |
0491 D0E2 20 F6 BRA ZD0DA |
0492 D0E4 BF CC 14 ZD0E4 STX >LINPTR |
0493 D0E7 BE CC 3F LDX >ZCC3F |
0494 D0EA 39 RTS |
0495 * |
0496 ** DEFAULT FILE EXTENSION |
0497 * |
0498 D0EB 34 30 SETEX1 PSHS Y,X |
0499 D0ED E6 0C LDB $0C,X |
0500 D0EF 26 18 BNE ZD109 |
0501 D0F1 10 8E D1 0B LDY #EXTTBL |
0502 D0F5 81 0B CMPA #$0B |
0503 D0F7 22 10 BHI ZD109 |
0504 D0F9 C6 03 LDB #$03 |
0505 D0FB 3D MUL |
0506 D0FC 31 A5 LEAY B,Y |
0507 D0FE C6 03 LDB #$03 |
0508 D100 A6 A0 ZD100 LDA ,Y+ |
0509 D102 A7 0C STA $0C,X |
0510 D104 30 01 LEAX $01,X |
0511 D106 5A DECB |
0512 D107 26 F7 BNE ZD100 |
0513 D109 35 B0 ZD109 PULS PC,Y,X |
0514 * |
0515 ** STANDARD FILE NAME EXTTENSIONS |
0516 * |
0517 D10B 42 49 4E EXTTBL FCC "BIN" |
0518 D10E 54 58 54 FCC "TXT" |
0519 D111 43 4D 44 FCC "CMD" |
0520 D114 42 41 53 FCC "BAS" |
0521 D117 53 59 53 FCC "SYS" |
0522 D11A 42 41 4B FCC "BAK" |
0523 D11D 53 43 52 FCC "SCR" |
0524 D120 44 41 54 FCC "DAT" |
0525 D123 42 41 43 FCC "BAC" |
0526 D126 44 49 52 FCC "DIR" |
0527 D129 50 52 54 FCC "PRT" |
0528 D12C 4F 55 54 FCC "OUT" |
0529 * |
0530 ** READ A HEX ADDRESS FROM THE LINE BUFFER |
0531 * |
0532 D12F BD D2 1E GETHX1 JSR >ZD21E |
0533 D132 BD D0 0E ZD132 JSR >NXTCH1 |
0534 D135 25 22 BCS ZD159 |
0535 D137 8D 26 BSR ZD15F |
0536 D139 25 18 BCS ZD153 |
0537 D13B 34 04 PSHS B |
0538 D13D C6 04 LDB #$04 |
0539 D13F 78 CC 1C ZD13F ASL >LODOFF+1 |
0540 D142 79 CC 1B ROL >LODOFF |
0541 D145 5A DECB |
0542 D146 26 F7 BNE ZD13F |
0543 D148 35 04 PULS B |
0544 D14A BB CC 1C ADDA >LODOFF+1 |
0545 D14D B7 CC 1C STA >LODOFF+1 |
0546 D150 5C INCB |
0547 D151 20 DF BRA ZD132 |
0548 |
0549 D153 BD D0 0E ZD153 JSR >NXTCH1 |
0550 D156 24 FB BCC ZD153 |
0551 D158 39 RTS |
0552 |
0553 D159 BE CC 1B ZD159 LDX >LODOFF |
0554 D15C 1C FE ANDCC #$FE |
0555 D15E 39 RTS |
0556 |
0557 D15F 80 47 ZD15F SUBA #$47 |
0558 D161 2A 0F BPL ZD172 |
0559 D163 8B 06 ADDA #$06 |
0560 D165 2A 04 BPL ZD16B |
0561 D167 8B 07 ADDA #$07 |
0562 D169 2A 07 BPL ZD172 |
0563 D16B 8B 0A ZD16B ADDA #$0A |
0564 D16D 2B 03 BMI ZD172 |
0565 D16F 1C FE ANDCC #$FE |
0566 D171 39 RTS |
0567 |
0568 D172 1A 01 ZD172 ORCC #$01 |
0569 D174 39 RTS |
0570 |
0571 D175 BD D2 1E INDEC1 JSR >ZD21E |
0572 D178 BD D0 0E ZD178 JSR >NXTCH1 |
0573 D17B 25 DC BCS ZD159 |
0574 D17D 81 39 CMPA #$39 |
0575 D17F 22 D2 BHI ZD153 |
0576 D181 84 0F ANDA #$0F |
0577 D183 34 04 PSHS B |
0578 D185 34 02 PSHS A |
0579 D187 FC CC 1B LDD >LODOFF |
0580 D18A 58 ASLB |
0581 D18B 49 ROLA |
0582 D18C 58 ASLB |
0583 D18D 49 ROLA |
0584 D18E 58 ASLB |
0585 D18F 49 ROLA |
0586 D190 F3 CC 1B ADDD >LODOFF |
0587 D193 F3 CC 1B ADDD >LODOFF |
0588 D196 EB E0 ADDB ,S+ |
0589 D198 89 00 ADCA #$00 |
0590 D19A FD CC 1B STD >LODOFF |
0591 D19D 35 04 PULS B |
0592 D19F 5C INCB |
0593 D1A0 20 D6 BRA ZD178 |
0594 * |
0595 ** LOAD BINARY FILE |
0596 * |
0597 D1A2 7F CC 1D LOAD1 CLR >TRNFLG |
0598 D1A5 8D 3D ZD1A5 BSR ZD1E4 |
0599 D1A7 81 02 CMPA #$02 |
0600 D1A9 27 15 BEQ ZD1C0 |
0601 D1AB 81 16 CMPA #$16 |
0602 D1AD 26 F6 BNE ZD1A5 |
0603 D1AF 8D 33 BSR ZD1E4 |
0604 D1B1 B7 CC 1E STA >TRNVEC |
0605 D1B4 8D 2E BSR ZD1E4 |
0606 D1B6 B7 CC 1F STA >TRNVEC+1 |
0607 D1B9 86 01 LDA #$01 |
0608 D1BB B7 CC 1D STA >TRNFLG |
0609 D1BE 20 E5 BRA ZD1A5 |
0610 |
0611 D1C0 8D 22 ZD1C0 BSR ZD1E4 |
0612 D1C2 1F 89 TFR A,B |
0613 D1C4 8D 1E BSR ZD1E4 |
0614 D1C6 1E 89 EXG A,B |
0615 D1C8 F3 CC 1B ADDD >LODOFF |
0616 D1CB FD CC 3D STD >ZCC3D |
0617 D1CE 8D 14 BSR ZD1E4 |
0618 D1D0 1F 89 TFR A,B |
0619 D1D2 4D TSTA |
0620 D1D3 27 D0 BEQ ZD1A5 |
0621 D1D5 8D 0D ZD1D5 BSR ZD1E4 |
0622 D1D7 BE CC 3D LDX >ZCC3D |
0623 D1DA A7 80 STA ,X+ |
0624 D1DC BF CC 3D STX >ZCC3D |
0625 D1DF 5A DECB |
0626 D1E0 26 F3 BNE ZD1D5 |
0627 D1E2 20 C1 BRA ZD1A5 |
0628 |
0629 D1E4 8E C8 40 ZD1E4 LDX #FCB |
0630 D1E7 BD D4 06 JSR >FMS |
0631 D1EA 27 11 BEQ ZD1FD |
0632 D1EC A6 01 LDA $01,X |
0633 D1EE 81 08 CMPA #$08 |
0634 D1F0 26 0E BNE ZD200 |
0635 D1F2 32 62 LEAS $02,S |
0636 D1F4 86 04 ZD1F4 LDA #$04 |
0637 D1F6 A7 84 STA ,X |
0638 D1F8 BD D4 06 JSR >FMS |
0639 D1FB 26 0D BNE ZD20A |
0640 D1FD 1C FE ZD1FD ANDCC #$FE |
0641 D1FF 39 RTS |
0642 |
0643 D200 B7 CC 20 ZD200 STA >ERRTYP |
0644 D203 81 04 CMPA #$04 |
0645 D205 26 03 BNE ZD20A |
0646 D207 1A 01 ORCC #$01 |
0647 D209 39 RTS |
0648 |
0649 D20A 8D 73 ZD20A BSR RPTER1 |
0650 D20C 7E CD E4 JMP >ZCDE4 |
0651 * |
0652 ** 'GET' - LOAD BINARY FILE |
0653 * |
0654 D20F 86 00 GETCMD LDA #$00 |
0655 D211 8D 35 BSR ZD248 |
0656 D213 25 0F BCS ZD224 |
0657 D215 8D 07 BSR ZD21E |
0658 D217 7C CC 4C INC >ZCC4C |
0659 D21A 8D 86 BSR LOAD1 |
0660 D21C 20 F1 BRA GETCMD |
0661 |
0662 D21E 4F ZD21E CLRA |
0663 D21F 5F CLRB |
0664 D220 FD CC 1B STD >LODOFF |
0665 D223 39 RTS |
0666 |
0667 D224 F6 CC 4C ZD224 LDB >ZCC4C |
0668 D227 10 27 FB AE LBEQ ZCDD9 |
0669 D22B 7E CD 03 JMP >WARMS |
0670 |
0671 D22E 86 02 ZD22E LDA #$02 |
0672 D230 8D 22 BSR ZD254 |
0673 D232 8D EA BSR ZD21E |
0674 D234 BD D1 A2 JSR >LOAD1 |
0675 D237 F6 CC 1D LDB >TRNFLG |
0676 D23A 27 04 BEQ ZD240 |
0677 D23C 6E 9F CC 1E JMP [TRNVEC] |
0678 |
0679 D240 8E CC 5C ZD240 LDX #NTRMSG |
0680 D243 86 81 LDA #$81 |
0681 D245 7E CD DE JMP >ZCDDE |
0682 |
0683 D248 34 02 ZD248 PSHS A |
0684 D24A 8E C8 40 LDX #FCB |
0685 D24D BD D0 36 JSR >GETFL1 |
0686 D250 35 02 PULS A |
0687 D252 25 1A BCS ZD26E |
0688 D254 8E C8 40 ZD254 LDX #FCB |
0689 D257 BD D0 EB JSR >SETEX1 |
0690 D25A 8E C8 40 LDX #FCB |
0691 D25D 86 01 LDA #$01 |
0692 D25F A7 84 STA ,X |
0693 D261 BD D1 E4 JSR >ZD1E4 |
0694 D264 10 25 00 BB LBCS ZD323 |
0695 D268 86 FF LDA #$FF |
0696 D26A A7 88 3B STA $3B,X |
0697 D26D 39 RTS |
0698 |
0699 D26E B6 CC 11 ZD26E LDA >LASTRM |
0700 D271 81 0D CMPA #$0D |
0701 D273 27 07 BEQ ZD27C |
0702 D275 B1 CC 02 CMPA >EOLCHR |
0703 D278 10 26 FB 5D LBNE ZCDD9 |
0704 D27C 1A 01 ZD27C ORCC #$01 |
0705 D27E 39 RTS |
0706 |
0707 D27F 34 30 RPTER1 PSHS Y,X |
0708 D281 A6 01 LDA $01,X |
0709 D283 B7 CC 20 STA >ERRTYP |
0710 D286 27 63 BEQ ZD2EB |
0711 D288 BD CD EA JSR >RSTIO1 |
0712 D28B 10 BE CC 2D LDY >ERRVEC |
0713 D28F 26 08 BNE ZD299 |
0714 D291 81 10 CMPA #$10 |
0715 D293 27 58 BEQ ZD2ED |
0716 D295 10 8E D3 61 LDY #ZD361 |
0717 D299 8E C8 40 ZD299 LDX #FCB |
0718 D29C 6D 02 TST $02,X |
0719 D29E 27 09 BEQ ZD2A9 |
0720 D2A0 86 04 LDA #$04 |
0721 D2A2 A7 84 STA ,X |
0722 D2A4 BD D4 06 JSR >FMS |
0723 D2A7 26 2E BNE ZD2D7 |
0724 D2A9 8E C8 38 ZD2A9 LDX #ZC838 |
0725 D2AC C6 0B LDB #$0B |
0726 D2AE 8D 6E BSR ZD31E |
0727 D2B0 8E C8 40 LDX #FCB |
0728 D2B3 B6 CC 0B LDA >SYSDRV |
0729 D2B6 A7 03 STA $03,X |
0730 D2B8 86 01 LDA #$01 |
0731 D2BA A7 84 STA ,X |
0732 D2BC BD D4 06 JSR >FMS |
0733 D2BF 26 16 BNE ZD2D7 |
0734 D2C1 B6 CC 20 LDA >ERRTYP |
0735 D2C4 4A DECA |
0736 D2C5 47 ASRA |
0737 D2C6 47 ASRA |
0738 D2C7 4C INCA |
0739 D2C8 6F 88 20 CLR $20,X |
0740 D2CB A7 88 21 STA $21,X |
0741 D2CE 86 15 LDA #$15 |
0742 D2D0 A7 84 STA ,X |
0743 D2D2 BD D4 06 JSR >FMS |
0744 D2D5 27 1E BEQ ZD2F5 |
0745 D2D7 8E CC 75 ZD2D7 LDX #DERMSG |
0746 D2DA BD CE 81 JSR >PSTRG1 |
0747 D2DD BE CC 3F LDX >ZCC3F |
0748 D2E0 B6 CC 20 LDA >ERRTYP |
0749 D2E3 A7 01 STA $01,X |
0750 D2E5 6F 84 CLR ,X |
0751 D2E7 5F CLRB |
0752 D2E8 BD CF 86 JSR >OUTDC1 |
0753 D2EB 35 B0 ZD2EB PULS PC,Y,X |
0754 |
0755 D2ED 8E CC 82 ZD2ED LDX #DNRMSG |
0756 D2F0 BD CE 81 JSR >PSTRG1 |
0757 D2F3 20 F6 BRA ZD2EB |
0758 |
0759 D2F5 BD CE B5 ZD2F5 JSR >PCRLF1 |
0760 D2F8 8E C8 40 LDX #FCB |
0761 D2FB B6 CC 20 LDA >ERRTYP |
0762 D2FE 4A DECA |
0763 D2FF 84 03 ANDA #$03 |
0764 D301 C6 3F LDB #$3F |
0765 D303 3D MUL |
0766 D304 CB 04 ADDB #$04 |
0767 D306 E7 88 22 STB $22,X |
0768 D309 BD D4 06 ZD309 JSR >FMS |
0769 D30C 26 C9 BNE ZD2D7 |
0770 D30E BD CF 41 JSR >PUTCH1 |
0771 D311 81 0D CMPA #$0D |
0772 D313 26 F4 BNE ZD309 |
0773 D315 86 04 LDA #$04 |
0774 D317 A7 84 STA ,X |
0775 D319 BD D4 06 JSR >FMS |
0776 D31C 20 CD BRA ZD2EB |
0777 D31E 34 30 ZD31E PSHS Y,X |
0778 D320 7E D1 00 JMP >ZD100 |
0779 |
0780 D323 8E CC 6B ZD323 LDX #NFDMSG NOT FOUND |
0781 D326 7E CD E1 JMP >ZCDE1 |
0782 * |
0783 ** CALL FLEX AS A SUBROUTINE |
0784 * |
0785 D329 35 06 DOCMD1 PULS B,A |
0786 D32B FD CC 43 STD >ZCC43 |
0787 D32E 10 FF CC 45 ZD32E STS >ZCC45 |
0788 D332 7F CC 20 CLR >ERRTYP |
0789 D335 7C CC 28 INC >CMDFLG |
0790 D338 7E CD B8 JMP >ZCDB8 |
0791 D33B 7F CC 28 ZD33B CLR >CMDFLG |
0792 D33E 10 FE CC 45 LDS >ZCC45 |
0793 D342 F6 CC 20 LDB >ERRTYP |
0794 D345 6E 9F CC 43 JMP [ZCC43] |
0795 * |
0796 ** ADD ACCB TO IX |
0797 * |
0798 D349 3A ADDBX1 ABX |
0799 D34A 39 RTS |
0800 |
0801 D34B 7D CC FC ZD34B TST >ZCCFC |
0802 D34E 26 04 BNE ZD354 |
0803 D350 6E 9F D3 F3 JMP [MONVEC] |
0804 |
0805 D354 8E C8 40 ZD354 LDX #FCB |
0806 D357 86 1B LDA #$1B |
0807 D359 A7 01 STA $01,X |
0808 D35B BD D2 7F JSR >RPTER1 |
0809 D35E 7E CD 67 JMP >WARM1 |
0810 |
0811 D361 45 52 52 4F 52 53 ZD361 FCC /ERRORS/ |
0812 D367 00 00 FCB $00,$00 |
0813 D369 53 59 53 FCC /SYS/ |
0009 END |
0000 INCLUDE "f9-monio.asm" |
0001 * |
0002 ** TERMINAL AND PRINTER DRIVERS |
0003 ** SYS09BUG - Spartan 3 Starter Board |
0004 * |
0005 ** FLEX DRIVER MEMORY MAP: |
0006 ** C700 - C83F PRINTER SPOOLER |
0007 ** CCC0 - CCF7 PRINTER DRIVERS |
0008 ** D370 - D3FF CONSOLE DRIVERS |
0009 ** DE00 - DFAF DISK DRIVERS |
0010 * |
0011 * |
0012 ** INTERRUPT VECTORS |
0013 * |
0014 DFC8 IRQVEC EQU MONRAM+$08 |
0015 DFC2 SWIVEC EQU MONRAM+$02 SWI3 VECTOR |
0016 * |
0017 ** PRINTER DRIVERS |
0018 * |
0019 CCC0 ORG $CCC0 |
0020 CCC0 7E D3 70 PINIT JMP DUMRTS INITIATE PRINTER |
0021 CCD8 ORG $CCD8 |
0022 CCD8 7E D3 70 PCHK JMP DUMRTS CHECK IF PRINTER READY |
0023 CCE4 ORG $CCE4 |
0024 CCE4 7E D3 70 POUT JMP DUMRTS OUTPUT CHR. TO PRINTER |
0025 CCF8 ORG $CCF8 |
0026 CCF8 01 00 00 00 ZCCF8 FCB $01,$00,$00,$00 |
0027 CCFC 00 00 00 00 ZCCFC FCB $00,$00,$00,$00 |
0028 * |
0029 ** CONSOLE DRIVER PATCHES: |
0030 * |
0031 D370 ORG $D370 |
0032 D370 IHND EQU * INTERRUPT HANDLER |
0033 D370 TMON EQU * TIMER ON |
0034 D370 TMOFF EQU * TIMER OFF |
0035 D370 TMINT EQU * TIMER INITIALIZATION |
0036 D370 DUMRTS EQU * |
0037 D370 39 RTS |
0038 * |
0039 ** SBUG MONITOR I/O CALLS |
0040 * |
0041 D371 7E D3 70 TERINZ JMP DUMRTS INITIATE ACIA |
0042 D374 6E 9F F8 04 INCHNE JMP [MONROM+$04] INPUT WITHOUT ECHO |
0043 D378 6E 9F F8 00 MONITR JMP [MONROM+$00] |
0044 D37C 6E 9F F8 08 INCHEK JMP [MONROM+$08] CHECK FOR TERMINAL ENTRY |
0045 D380 6E 9F F8 0A OUTEEE JMP [MONROM+$0A] OUPUT CHARACTER |
0046 D384 6E 9F F8 06 INEEE JMP [MONROM+$06] INPUT WITH ECHO |
0047 |
0048 * |
0049 ** AUTO BLOCK FDBS |
0050 * |
0051 D3E5 ORG $D3E5 |
0052 D3E5 D3 74 ZD3E5 FDB INCHNE INPUT - NO ECHO |
0053 D3E7 D3 70 IHNDVC FDB IHND IRQ INTERRUPT HANDLER |
0054 D3E9 DF C2 SWIVVC FDB SWIVEC SWI3 VECTOR LOCATION |
0055 D3EB DF C8 IRQVVC FDB IRQVEC IRQ VECTOR LOCATION |
0056 D3ED D3 70 TOFVEC FDB TMOFF TIMER OFF ROUTINE |
0057 D3EF D3 70 TONVEC FDB TMON TIMER ON ROUTINE |
0058 D3F1 D3 70 TINVEC FDB TMINT TIMER INITIALIZE ROUTINE |
0059 D3F3 D3 78 MONVEC FDB MONITR MONITOR RETURN ADDRESS |
0060 D3F5 D3 71 TERVEC FDB TERINZ TERMINAL INITIATION |
0061 D3F7 D3 7C STAVEC FDB INCHEK CHECK TERMINAL STATUS |
0062 D3F9 D3 80 OUTVEC FDB OUTEEE TERMINAL CHAR OUTPUT |
0063 D3FB D3 84 INVEC FDB INEEE TERMINAL INPUT CHARACTER |
0064 D3FD 7E CA 00 ZD3FD JMP ZCA00 |
0010 END |
0000 INCLUDE "f9-fms.asm" |
0001 * |
0002 ** FILE MANAGEMENT SYSTEM |
0003 * |
0004 D400 7E D4 36 ZD400 JMP >ZD436 |
0005 D403 7E D4 59 FMSCLS JMP >ZD459 |
0006 D406 7E D4 7B FMS JMP >FMS1 |
0007 D409 20 44 49 53 4B 20 CPYMSG FCC / DISK OPERATING SYSTEM/ |
4F 50 45 52 41 54 |
49 4E 47 20 53 59 |
53 54 45 4D |
0008 D41F 20 43 4F 50 59 52 FCC / COPYRIGHT (C) 1980 BY/ |
49 47 48 54 20 28 |
43 29 20 31 39 38 |
30 20 42 59 |
0009 D435 20 54 45 43 48 4E FCC / TECHNICAL SYSTEMS CONSULTANTS/ |
49 43 41 4C 20 53 |
59 53 54 45 4D 53 |
20 43 4F 4E 53 55 |
4C 54 41 4E 54 53 |
0010 D409 ORG CPYMSG |
0011 D409 FCBPTR RMB 2 |
0012 D40B CURFCB RMB 4 |
0013 D40F ZD40F RMB 2 |
0014 D411 ZD411 RMB 1 |
0015 D412 ZD412 RMB 1 |
0016 D413 ZD413 RMB 1 |
0017 D414 ZD414 RMB 1 |
0018 D415 ZD415 RMB 2 |
0019 D417 ZD417 RMB 1 |
0020 D418 ZD418 RMB 2 |
0021 D41A ZD41A RMB 1 |
0022 D41B ZD41B RMB 2 |
0023 D41D ZD41D RMB 24 |
0024 D435 FF VERFLG FCB $FF |
0025 * |
0026 ** |
0027 * |
0028 D436 BD DE 15 ZD436 JSR >COLDDR |
0029 D439 8E D4 09 LDX #FCBPTR |
0030 D43C C6 0A LDB #$0A |
0031 D43E 8D 11 BSR ZD451 |
0032 D440 8E 00 05 LDX #Z0005 |
0033 D443 BF D4 13 STX >ZD413 |
0034 D446 BF D4 15 STX >ZD415 |
0035 D449 7F D4 1A CLR >ZD41A |
0036 D44C 8E D4 1B ZD44C LDX #ZD41B |
0037 D44F C6 1A LDB #$1A |
0038 D451 6F 80 ZD451 CLR ,X+ |
0039 D453 5A DECB |
0040 D454 26 FB BNE ZD451 |
0041 D456 7E C7 0C JMP >PRSPL5 |
0042 |
0043 D459 BD C7 09 ZD459 JSR >PRSPL4 |
0044 D45C BE D4 09 ZD45C LDX >FCBPTR |
0045 D45F 27 EB BEQ ZD44C |
0046 D461 30 88 E4 LEAX -$1C,X |
0047 D464 BF D4 0B STX >CURFCB |
0048 D467 34 20 PSHS Y |
0049 D469 BD DA C3 JSR >CLOSE |
0050 D46C 35 20 PULS Y |
0051 D46E 24 EC BCC ZD45C |
0052 D470 BE D4 0B LDX >CURFCB |
0053 D473 6F 02 CLR $02,X |
0054 D475 BD C7 0C JSR >PRSPL5 |
0055 D478 C6 FF LDB #$FF |
0056 D47A 39 RTS |
0057 |
0058 * |
0059 ** FMS CALL, PROCESSING |
0060 * |
0061 D47B 7D CC FC FMS1 TST >ZCCFC |
0062 D47E 27 03 BEQ ZD483 |
0063 D480 BD C7 09 JSR >PRSPL4 |
0064 D483 34 24 ZD483 PSHS Y,B |
0065 D485 BF D4 0B STX >CURFCB |
0066 D488 6F 01 CLR $01,X |
0067 D48A E6 84 LDB ,X |
0068 D48C 26 22 BNE DOFUNC |
0069 * |
0070 ** READ/WRITE CHAR/BYTE |
0071 * |
0072 D48E E6 02 LDB $02,X |
0073 D490 27 1A BEQ ZD4AC |
0074 D492 C1 02 CMPB #$02 |
0075 D494 27 11 BEQ ZD4A7 |
0076 D496 BD D5 B4 JSR >ZD5B4 |
0077 D499 BE D4 0B ZD499 LDX >CURFCB |
0078 D49C 25 26 BCS ZD4C4 |
0079 D49E 7D CC FC TST >ZCCFC |
0080 D4A1 26 23 BNE ZD4C6 |
0081 D4A3 5F CLRB |
0082 D4A4 35 24 PULS Y,B |
0083 D4A6 39 RTS |
0084 |
0085 D4A7 BD D6 CF ZD4A7 JSR >ZD6CF |
0086 D4AA 20 ED BRA ZD499 |
0087 D4AC C6 12 ZD4AC LDB #$12 |
0088 D4AE 20 14 BRA ZD4C4 |
0089 |
0090 D4B0 C1 16 DOFUNC CMPB #$16 |
0091 D4B2 23 04 BLS DOFUN1 |
0092 D4B4 C6 01 LDB #$01 |
0093 D4B6 20 0C BRA ZD4C4 |
0094 D4B8 5A DOFUN1 DECB |
0095 D4B9 58 ASLB |
0096 D4BA 8E D4 CE LDX #FMSTBL |
0097 D4BD AD 95 JSR [B,X] |
0098 D4BF BE D4 0B LDX >CURFCB |
0099 D4C2 24 02 BCC ZD4C6 |
0100 D4C4 E7 01 ZD4C4 STB $01,X |
0101 D4C6 BD C7 0C ZD4C6 JSR >PRSPL5 |
0102 D4C9 6D 01 TST $01,X |
0103 D4CB 35 24 PULS Y,B |
0104 D4CD 39 RTS |
0105 * |
0106 ** FMS COMMAND VECTOR TABLE |
0107 * |
0108 D4CE D9 86 FMSTBL FDB OPENRD FC 1 |
0109 D4D0 D9 D9 FDB OPENWR FC 2 |
0110 D4D2 DA F9 FDB OPENUD FC 3 |
0111 D4D4 DA C3 FDB CLOSE FC 4 |
0112 D4D6 D5 E2 FDB REWIND FC 5 |
0113 D4D8 D8 1D FDB OPNDIR FC 6 |
0114 D4DA D8 38 FDB GETREC FC 7 |
0115 D4DC D8 76 FDB PUTREC FC 8 |
0116 D4DE D6 41 FDB RDSECT FC 9 |
0117 D4E0 D6 9F FDB WRSECT FC 10 |
0118 D4E2 D9 69 FDB RESV1 FC 11 |
0119 D4E4 DB D6 FDB DELETE FC 12 |
0120 D4E6 DB 2C FDB RENAME FC 13 |
0121 D4E8 D6 99 FDB RESV2 FC 14 |
0122 D4EA DA 87 FDB NXTSEC FC 15 |
0123 D4EC D8 10 FDB OPNREC FC 16 |
0124 D4EE D5 6F FDB GETBYT FC 17 |
0125 D4F0 D5 90 FDB PUTBYT FC 18 |
0126 D4F2 DB 07 FDB RESV3 FC 19 |
0127 D4F4 DD BD FDB NXTDRV FC 20 |
0128 D4F6 DC FB FDB POSREC FC 21 |
0129 D4F8 DC E5 FDB BAKREC FC 22 |
0130 * |
0131 ** |
0132 * |
0133 D4FA 8D 20 ZD4FA BSR ZD51C |
0134 D4FC 26 05 BNE ZD503 |
0135 D4FE C6 02 LDB #$02 |
0136 D500 1A 01 ORCC #$01 |
0137 D502 39 RTS |
0138 |
0139 D503 ED 84 ZD503 STD ,X |
0140 D505 AE 84 LDX ,X |
0141 D507 6F 84 CLR ,X |
0142 D509 6F 01 CLR $01,X |
0143 D50B 39 RTS |
0144 |
0145 D50C 8D 0E ZD50C BSR ZD51C |
0146 D50E 27 05 BEQ ZD515 |
0147 D510 C6 0D LDB #$0D |
0148 D512 1A 01 ORCC #$01 |
0149 D514 39 RTS |
0150 |
0151 D515 EC 94 ZD515 LDD [,X] |
0152 D517 ED 84 STD ,X |
0153 D519 1C FE ANDCC #$FE |
0154 D51B 39 RTS |
0155 |
0156 D51C FC D4 0B ZD51C LDD >CURFCB |
0157 D51F C3 00 1C ADDD #$001C |
0158 D522 8E D4 09 LDX #FCBPTR |
0159 D525 10 AE 84 ZD525 LDY ,X |
0160 D528 26 03 BNE ZD52D |
0161 D52A 1C FB ANDCC #$FB |
0162 D52C 39 RTS |
0163 |
0164 D52D 10 A3 84 ZD52D CMPD ,X |
0165 D530 26 01 BNE ZD533 |
0166 D532 39 RTS |
0167 D533 AE 84 ZD533 LDX ,X |
0168 D535 20 EE BRA ZD525 |
0169 |
0170 D537 BE D4 0B ZD537 LDX >CURFCB |
0171 D53A 4F CLRA |
0172 D53B 5F CLRB |
0173 D53C 8D 02 BSR ZD540 |
0174 D53E C6 2F LDB #$2F |
0175 D540 A7 88 11 ZD540 STA $11,X |
0176 D543 30 01 LEAX $01,X |
0177 D545 5A DECB |
0178 D546 26 F8 BNE ZD540 |
0179 D548 39 RTS |
0180 |
0181 D549 BE D4 0B ZD549 LDX >CURFCB |
0182 D54C C6 0B LDB #$0B |
0183 D54E A6 04 ZD54E LDA $04,X |
0184 D550 A7 88 24 STA $24,X |
0185 D553 30 01 LEAX $01,X |
0186 D555 5A DECB |
0187 D556 26 F6 BNE ZD54E |
0188 D558 39 RTS |
0189 |
0190 D559 BE D4 0B ZD559 LDX >CURFCB |
0191 D55C C6 0B LDB #$0B |
0192 D55E A6 04 ZD55E LDA $04,X |
0193 D560 34 02 PSHS A |
0194 D562 A6 88 24 LDA $24,X |
0195 D565 A1 E0 CMPA ,S+ |
0196 D567 26 05 BNE ZD56E |
0197 D569 30 01 LEAX $01,X |
0198 D56B 5A DECB |
0199 D56C 26 F0 BNE ZD55E |
0200 D56E 39 ZD56E RTS |
0201 * |
0202 ** GET RANDOM BYTE FROM SECTOR |
0203 * |
0204 D56F BE D4 0B GETBYT LDX >CURFCB |
0205 D572 E6 02 LDB $02,X |
0206 D574 54 LSRB |
0207 D575 24 79 BCC ZD5F0 |
0208 D577 E6 88 23 LDB $23,X |
0209 D57A 7E D6 00 JMP >ZD600 |
0210 |
0211 D57D BE D4 0B ZD57D LDX >CURFCB |
0212 D580 E6 88 22 LDB $22,X |
0213 D583 6C 88 22 INC $22,X |
0214 D586 3A ABX |
0215 D587 A7 88 40 STA $40,X |
0216 D58A 5C INCB |
0217 D58B 26 1F BNE ZD5AC |
0218 D58D 1A 01 ORCC #$01 |
0219 D58F 39 RTS |
0220 * |
0221 ** PUT RANDOM BYTE IN SECTOR |
0222 * |
0223 D590 BE D4 0B PUTBYT LDX >CURFCB |
0224 D593 E6 02 LDB $02,X |
0225 D595 C4 03 ANDB #$03 |
0226 D597 C1 03 CMPB #$03 |
0227 D599 26 55 BNE ZD5F0 |
0228 D59B CA 80 ORB #$80 |
0229 D59D E7 02 STB $02,X |
0230 D59F E6 0F LDB $0F,X |
0231 D5A1 C5 80 BITB #$80 |
0232 D5A3 26 0A BNE ZD5AF |
0233 D5A5 E6 88 23 LDB $23,X |
0234 D5A8 3A ABX |
0235 D5A9 A7 88 40 STA $40,X |
0236 D5AC 1C FE ZD5AC ANDCC #$FE |
0237 D5AE 39 RTS |
0238 |
0239 D5AF C6 0B ZD5AF LDB #$0B |
0240 D5B1 1A 01 ORCC #$01 |
0241 D5B3 39 RTS |
0242 |
0243 D5B4 A6 88 3B ZD5B4 LDA $3B,X |
0244 D5B7 2B 3C BMI ZD5F5 |
0245 D5B9 27 07 BEQ ZD5C2 |
0246 D5BB 6A 88 3B DEC $3B,X |
0247 D5BE 86 20 LDA #$20 |
0248 D5C0 20 1D BRA ZD5DF |
0249 |
0250 D5C2 8D 31 ZD5C2 BSR ZD5F5 |
0251 D5C4 25 1B BCS ZD5E1 |
0252 D5C6 81 18 CMPA #$18 |
0253 D5C8 22 15 BHI ZD5DF |
0254 D5CA 27 F6 BEQ ZD5C2 |
0255 D5CC 81 09 CMPA #$09 |
0256 D5CE 26 0C BNE ZD5DC |
0257 D5D0 8D 23 BSR ZD5F5 |
0258 D5D2 25 0D BCS ZD5E1 |
0259 D5D4 BE D4 0B LDX >CURFCB |
0260 D5D7 A7 88 3B STA $3B,X |
0261 D5DA 20 D8 BRA ZD5B4 |
0262 |
0263 D5DC 4D ZD5DC TSTA |
0264 D5DD 27 E3 BEQ ZD5C2 |
0265 D5DF 1C FE ZD5DF ANDCC #$FE |
0266 D5E1 39 ZD5E1 RTS |
0267 * |
0268 ** REWIND FILE |
0269 * |
0270 D5E2 BD DA B1 REWIND JSR >ZDAB1 |
0271 D5E5 25 09 BCS ZD5F0 |
0272 D5E7 85 01 BITA #$01 |
0273 D5E9 27 05 BEQ ZD5F0 |
0274 D5EB A7 84 STA ,X |
0275 D5ED 7E D9 A0 JMP >ZD9A0 |
0276 |
0277 D5F0 C6 12 ZD5F0 LDB #$12 |
0278 D5F2 1A 01 ORCC #$01 |
0279 D5F4 39 RTS |
0280 |
0281 D5F5 BE D4 0B ZD5F5 LDX >CURFCB |
0282 D5F8 E6 88 22 LDB $22,X |
0283 D5FB 27 0A BEQ ZD607 |
0284 D5FD 6C 88 22 INC $22,X |
0285 D600 3A ZD600 ABX |
0286 D601 A6 88 40 LDA $40,X |
0287 D604 1C FE ANDCC #$FE |
0288 D606 39 RTS |
0289 |
0290 D607 8D 03 ZD607 BSR ZD60C |
0291 D609 24 EA BCC ZD5F5 |
0292 D60B 39 RTS |
0293 |
0294 D60C BE D4 0B ZD60C LDX >CURFCB |
0295 D60F EC 88 40 LDD $40,X |
0296 D612 6C 88 21 INC $21,X |
0297 D615 26 03 BNE ZD61A |
0298 D617 6C 88 20 INC $20,X |
0299 D61A 10 83 00 00 ZD61A CMPD #$0000 |
0300 D61E 27 1C BEQ ZD63C |
0301 D620 ED 88 1E ZD620 STD $1E,X |
0302 D623 34 02 PSHS A |
0303 D625 86 04 LDA #$04 |
0304 D627 A7 88 22 STA $22,X |
0305 D62A 35 02 PULS A |
0306 D62C 8D 13 BSR RDSECT |
0307 D62E 24 10 BCC ZD640 |
0308 D630 C5 80 BITB #$80 |
0309 D632 27 04 BEQ ZD638 |
0310 D634 C6 10 LDB #$10 |
0311 D636 20 06 BRA ZD63E |
0312 |
0313 D638 C6 09 ZD638 LDB #$09 |
0314 D63A 20 02 BRA ZD63E |
0315 |
0316 D63C C6 08 ZD63C LDB #$08 |
0317 D63E 1A 01 ZD63E ORCC #$01 |
0318 D640 39 ZD640 RTS |
0319 * |
0320 ** READ SINGLE SECTOR |
0321 * |
0322 D641 8D 25 RDSECT BSR ZD668 |
0323 D643 BE D4 0B LDX >CURFCB |
0324 D646 BD DE 0C JSR >DRIVE |
0325 D649 25 12 BCS ZD65D |
0326 D64B 8D 11 ZD64B BSR ZD65E |
0327 D64D BD DE 00 JSR >READ |
0328 D650 26 03 BNE ZD655 |
0329 D652 1C FE ANDCC #$FE |
0330 D654 39 RTS |
0331 |
0332 D655 34 04 ZD655 PSHS B |
0333 D657 8D 17 BSR ZD670 |
0334 D659 35 04 PULS B |
0335 D65B 24 EE BCC ZD64B |
0336 D65D 39 ZD65D RTS |
0337 |
0338 D65E BE D4 0B ZD65E LDX >CURFCB |
0339 D661 EC 88 1E LDD $1E,X |
0340 D664 30 88 40 LEAX $40,X |
0341 D667 39 RTS |
0342 |
0343 D668 4F ZD668 CLRA |
0344 D669 B7 D4 11 STA >ZD411 |
0345 D66C B7 D4 12 STA >ZD412 |
0346 D66F 39 RTS |
0347 |
0348 D670 C5 10 ZD670 BITB #$10 |
0349 D672 26 11 BNE ZD685 |
0350 D674 C5 80 BITB #$80 |
0351 D676 26 24 BNE ZD69C |
0352 D678 F6 D4 11 LDB >ZD411 |
0353 D67B 5C INCB |
0354 D67C C1 07 CMPB #$07 |
0355 D67E 27 05 BEQ ZD685 |
0356 D680 F7 D4 11 STB >ZD411 |
0357 D683 20 14 BRA RESV2 |
0358 |
0359 D685 7F D4 11 ZD685 CLR >ZD411 |
0360 D688 F6 D4 12 LDB >ZD412 |
0361 D68B 5C INCB |
0362 D68C C1 04 CMPB #$04 |
0363 D68E 27 0C BEQ ZD69C |
0364 D690 F7 D4 12 STB >ZD412 |
0365 D693 BE D4 0B LDX >CURFCB |
0366 D696 BD DE 09 JSR >RESTOR |
0367 * |
0368 ** RESERVED |
0369 * |
0370 D699 1C FE RESV2 ANDCC #$FE |
0371 D69B 39 RTS |
0372 D69C 1A 01 ZD69C ORCC #$01 |
0373 D69E 39 RTS |
0374 * |
0375 ** WRITE SINGLE SECTOR |
0376 * |
0377 D69F 8D C7 WRSECT BSR ZD668 |
0378 D6A1 BE D4 0B LDX >CURFCB |
0379 D6A4 BD DE 0C JSR >DRIVE |
0380 D6A7 25 20 BCS ZD6C9 |
0381 D6A9 BE D4 0B ZD6A9 LDX >CURFCB |
0382 D6AC 8D B0 BSR ZD65E |
0383 D6AE BD DE 03 JSR >WRITE |
0384 D6B1 26 0A BNE ZD6BD |
0385 D6B3 B6 D4 35 LDA >VERFLG |
0386 D6B6 27 37 BEQ ZD6EF |
0387 D6B8 BD DE 06 JSR >VERIFY |
0388 D6BB 27 32 BEQ ZD6EF |
0389 D6BD C5 40 ZD6BD BITB #$40 |
0390 D6BF 26 0B BNE ZD6CC |
0391 D6C1 34 04 PSHS B |
0392 D6C3 8D AB BSR ZD670 |
0393 D6C5 35 04 PULS B |
0394 D6C7 24 E0 BCC ZD6A9 |
0395 D6C9 39 ZD6C9 RTS |
0396 |
0397 D6CA C6 20 LDB #$20 |
0398 D6CC 1A 01 ZD6CC ORCC #$01 |
0399 D6CE 39 RTS |
0400 |
0401 D6CF BE D4 0B ZD6CF LDX >CURFCB |
0402 D6D2 E6 88 3B LDB $3B,X |
0403 D6D5 2B 3D BMI ZD714 |
0404 D6D7 81 20 CMPA #$20 |
0405 D6D9 26 0F BNE ZD6EA |
0406 D6DB 5C INCB |
0407 D6DC E7 88 3B STB $3B,X |
0408 D6DF C1 7F CMPB #$7F |
0409 D6E1 26 0C BNE ZD6EF |
0410 D6E3 20 0D BRA ZD6F2 |
0411 |
0412 D6E5 8D 0B ZD6E5 BSR ZD6F2 |
0413 D6E7 24 E6 BCC ZD6CF |
0414 D6E9 39 RTS |
0415 |
0416 D6EA 5D ZD6EA TSTB |
0417 D6EB 27 27 BEQ ZD714 |
0418 D6ED 20 F6 BRA ZD6E5 |
0419 |
0420 D6EF 1C FE ZD6EF ANDCC #$FE |
0421 D6F1 39 RTS |
0422 |
0423 D6F2 34 02 ZD6F2 PSHS A |
0424 D6F4 C1 01 CMPB #$01 |
0425 D6F6 26 04 BNE ZD6FC |
0426 D6F8 86 20 LDA #$20 |
0427 D6FA 20 10 BRA ZD70C |
0428 |
0429 D6FC 86 09 ZD6FC LDA #$09 |
0430 D6FE 8D 14 BSR ZD714 |
0431 D700 35 02 PULS A |
0432 D702 25 0F BCS ZD713 |
0433 D704 34 02 PSHS A |
0434 D706 BE D4 0B LDX >CURFCB |
0435 D709 A6 88 3B LDA $3B,X |
0436 D70C 6F 88 3B ZD70C CLR $3B,X |
0437 D70F 8D 03 BSR ZD714 |
0438 D711 35 02 PULS A |
0439 D713 39 ZD713 RTS |
0440 |
0441 D714 BE D4 0B ZD714 LDX >CURFCB |
0442 D717 E6 02 LDB $02,X |
0443 D719 C1 02 CMPB #$02 |
0444 D71B 10 26 FE D1 LBNE ZD5F0 |
0445 D71F E6 88 22 LDB $22,X |
0446 D722 C1 04 CMPB #$04 |
0447 D724 26 08 BNE ZD72E |
0448 D726 34 02 PSHS A |
0449 D728 8D 21 BSR ZD74B |
0450 D72A 35 02 PULS A |
0451 D72C 25 0F BCS ZD73D |
0452 D72E BD D5 7D ZD72E JSR >ZD57D |
0453 D731 24 0A BCC ZD73D |
0454 D733 C6 04 LDB #$04 |
0455 D735 BE D4 0B LDX >CURFCB |
0456 D738 E7 88 22 STB $22,X |
0457 D73B 1C FE ANDCC #$FE |
0458 D73D 39 ZD73D RTS |
0459 |
0460 D73E BE D4 0B ZD73E LDX >CURFCB |
0461 D741 4F CLRA |
0462 D742 5F CLRB |
0463 D743 ED 88 20 STD $20,X |
0464 D746 ED 88 42 STD $42,X |
0465 D749 20 27 BRA ZD772 |
0466 |
0467 D74B E6 88 12 ZD74B LDB $12,X |
0468 D74E 26 22 BNE ZD772 |
0469 D750 E6 88 17 LDB $17,X |
0470 D753 27 44 BEQ ZD799 |
0471 D755 6F 88 17 CLR $17,X |
0472 D758 8D 3F BSR ZD799 |
0473 D75A 25 2A BCS ZD786 |
0474 D75C 8D E0 BSR ZD73E |
0475 D75E 25 26 BCS ZD786 |
0476 D760 8D DC BSR ZD73E |
0477 D762 25 22 BCS ZD786 |
0478 D764 BE D4 0B LDX >CURFCB |
0479 D767 C6 02 LDB #$02 |
0480 D769 E7 88 17 STB $17,X |
0481 D76C EC 88 11 LDD $11,X |
0482 D76F 7E DC 82 JMP >ZDC82 |
0483 |
0484 D772 8D 0E ZD772 BSR ZD782 |
0485 D774 BE D4 0B LDX >CURFCB |
0486 D777 ED 88 40 STD $40,X |
0487 D77A BD D6 9F JSR >WRSECT |
0488 D77D 24 1A BCC ZD799 |
0489 D77F 7E DB C1 JMP >ZDBC1 |
0490 |
0491 D782 8D 03 ZD782 BSR ZD787 |
0492 D784 EC 84 LDD ,X |
0493 D786 39 ZD786 RTS |
0494 |
0495 D787 BE D4 0B ZD787 LDX >CURFCB |
0496 D78A E6 03 LDB $03,X |
0497 D78C 86 06 LDA #$06 |
0498 D78E 3D MUL |
0499 D78F 8E D4 1D LDX #ZD41D |
0500 D792 3A ABX |
0501 D793 BF D4 1B STX >ZD41B |
0502 D796 6D 84 TST ,X |
0503 D798 39 RTS |
0504 |
0505 D799 8D E7 ZD799 BSR ZD782 |
0506 D79B 26 05 BNE ZD7A2 |
0507 D79D C6 07 LDB #$07 |
0508 D79F 1A 01 ZD79F ORCC #$01 |
0509 D7A1 39 RTS |
0510 |
0511 D7A2 BE D4 0B ZD7A2 LDX >CURFCB |
0512 D7A5 ED 88 13 STD $13,X |
0513 D7A8 6D 88 12 TST $12,X |
0514 D7AB 26 03 BNE ZD7B0 |
0515 D7AD ED 88 11 STD $11,X |
0516 D7B0 6C 88 16 ZD7B0 INC $16,X |
0517 D7B3 26 03 BNE ZD7B8 |
0518 D7B5 6C 88 15 INC $15,X |
0519 D7B8 6D 88 17 ZD7B8 TST $17,X |
0520 D7BB 27 0B BEQ ZD7C8 |
0521 D7BD BD DC 43 JSR >ZDC43 |
0522 D7C0 25 DD BCS ZD79F |
0523 D7C2 BE D4 0B LDX >CURFCB |
0524 D7C5 EC 88 13 LDD $13,X |
0525 D7C8 BD D6 20 ZD7C8 JSR >ZD620 |
0526 D7CB 25 D2 BCS ZD79F |
0527 D7CD BE D4 0B LDX >CURFCB |
0528 D7D0 EC 88 40 LDD $40,X |
0529 D7D3 34 06 PSHS B,A |
0530 D7D5 8D B0 BSR ZD787 |
0531 D7D7 35 06 PULS B,A |
0532 D7D9 ED 84 STD ,X |
0533 D7DB 26 0A BNE ZD7E7 |
0534 D7DD 6F 02 CLR $02,X |
0535 D7DF 6F 03 CLR $03,X |
0536 D7E1 6F 04 CLR $04,X |
0537 D7E3 6F 05 CLR $05,X |
0538 D7E5 20 08 BRA ZD7EF |
0539 |
0540 D7E7 10 AE 04 ZD7E7 LDY $04,X |
0541 D7EA 31 3F LEAY -$01,Y |
0542 D7EC 10 AF 04 STY $04,X |
0543 D7EF 4F ZD7EF CLRA |
0544 D7F0 BE D4 0B LDX >CURFCB |
0545 D7F3 6C 88 21 INC $21,X |
0546 D7F6 26 03 BNE ZD7FB |
0547 D7F8 6C 88 20 INC $20,X |
0548 D7FB 5F ZD7FB CLRB |
0549 D7FC A7 88 40 ZD7FC STA $40,X |
0550 D7FF 30 01 LEAX $01,X |
0551 D801 5A DECB |
0552 D802 26 F8 BNE ZD7FC |
0553 D804 BE D4 0B LDX >CURFCB |
0554 D807 EC 88 20 LDD $20,X |
0555 D80A ED 88 42 STD $42,X |
0556 D80D 1C FE ANDCC #$FE |
0557 D80F 39 RTS |
0558 * |
0559 ** OPEN SYSTEM INFO. RECORD |
0560 * |
0561 D810 5F OPNREC CLRB |
0562 D811 34 04 PSHS B |
0563 D813 C6 03 LDB #$03 |
0564 D815 20 0E BRA ZD825 |
0565 D817 BE D4 15 LDX >ZD415 |
0566 D81A BF D4 13 STX >ZD413 |
0567 D81D F6 D4 13 OPNDIR LDB >ZD413 |
0568 D820 34 04 PSHS B |
0569 D822 F6 D4 14 LDB >ZD414 |
0570 D825 BE D4 0B ZD825 LDX >CURFCB |
0571 D828 E7 88 41 STB $41,X |
0572 D82B 35 04 PULS B |
0573 D82D E7 88 40 STB $40,X |
0574 D830 7F D4 18 CLR >ZD418 |
0575 D833 5F CLRB |
0576 D834 E7 88 22 STB $22,X |
0577 D837 39 RTS |
0578 * |
0579 ** GET INFO RECORD |
0580 * |
0581 D838 BE D4 0B GETREC LDX >CURFCB |
0582 D83B E6 88 22 LDB $22,X |
0583 D83E 26 1D BNE ZD85D |
0584 D840 BD D6 0C JSR >ZD60C |
0585 D843 25 30 BCS ZD875 |
0586 D845 BE D4 0B LDX >CURFCB |
0587 D848 7D D4 18 TST >ZD418 |
0588 D84B 26 05 BNE ZD852 |
0589 D84D DC 44 LDD <Z0044 |
0590 D84F FD D4 18 STD >ZD418 |
0591 D852 86 10 ZD852 LDA #$10 |
0592 D854 A7 88 22 STA $22,X |
0593 D857 EC 88 1E LDD $1E,X |
0594 D85A ED 88 2F STD $2F,X |
0595 D85D A6 88 22 ZD85D LDA $22,X |
0596 D860 A7 88 31 STA $31,X |
0597 D863 C6 18 LDB #$18 |
0598 D865 34 14 ZD865 PSHS X,B |
0599 D867 BD D5 F5 JSR >ZD5F5 |
0600 D86A 35 14 PULS X,B |
0601 D86C A7 04 STA $04,X |
0602 D86E 30 01 LEAX $01,X |
0603 D870 5A DECB |
0604 D871 26 F2 BNE ZD865 |
0605 D873 1C FE ANDCC #$FE |
0606 D875 39 ZD875 RTS |
0607 * |
0608 ** PUT INFORMATION RECORD |
0609 * |
0610 D876 BE D4 0B PUTREC LDX >CURFCB |
0611 D879 A6 88 31 LDA $31,X |
0612 D87C A7 88 22 STA $22,X |
0613 D87F C6 18 LDB #$18 |
0614 D881 34 14 ZD881 PSHS X,B |
0615 D883 A6 04 LDA $04,X |
0616 D885 BD D7 14 JSR >ZD714 |
0617 D888 35 14 PULS X,B |
0618 D88A 30 01 LEAX $01,X |
0619 D88C 5A DECB |
0620 D88D 26 F2 BNE ZD881 |
0621 D88F 7E D6 9F JMP >WRSECT |
0622 |
0623 D892 BE D4 0B ZD892 LDX >CURFCB |
0624 D895 A6 03 LDA $03,X |
0625 D897 A7 88 23 STA $23,X |
0626 D89A B6 D4 17 LDA >ZD417 |
0627 D89D 7D D4 1A TST >ZD41A |
0628 D8A0 26 31 BNE ZD8D3 |
0629 D8A2 A7 03 STA $03,X |
0630 D8A4 BE D4 15 LDX >ZD415 |
0631 D8A7 BF D4 13 STX >ZD413 |
0632 D8AA 8C 00 05 ZD8AA CMPX #Z0005 |
0633 D8AD 27 0C BEQ ZD8BB |
0634 D8AF 8D 22 BSR ZD8D3 |
0635 D8B1 23 37 BLS ZD8EA |
0636 D8B3 BE D4 18 LDX >ZD418 |
0637 D8B6 BF D4 13 STX >ZD413 |
0638 D8B9 20 EF BRA ZD8AA |
0639 |
0640 D8BB BE D4 0B ZD8BB LDX >CURFCB |
0641 D8BE A6 88 23 LDA $23,X |
0642 D8C1 A7 03 STA $03,X |
0643 D8C3 2A 0E BPL ZD8D3 |
0644 D8C5 BD DD BD ZD8C5 JSR >NXTDRV |
0645 D8C8 25 36 BCS ZD900 |
0646 D8CA 8D 07 BSR ZD8D3 |
0647 D8CC 23 1C BLS ZD8EA |
0648 D8CE BD DD AD JSR >ZDDAD |
0649 D8D1 20 F2 BRA ZD8C5 |
0650 |
0651 D8D3 BE D4 0B ZD8D3 LDX >CURFCB |
0652 D8D6 7F D4 1A CLR >ZD41A |
0653 D8D9 BD D5 49 JSR >ZD549 |
0654 D8DC BD D8 1D JSR >OPNDIR |
0655 D8DF BD D8 38 ZD8DF JSR >GETREC |
0656 D8E2 24 07 BCC ZD8EB |
0657 D8E4 C1 08 CMPB #$08 |
0658 D8E6 27 18 BEQ ZD900 |
0659 D8E8 1A 01 ORCC #$01 |
0660 D8EA 39 ZD8EA RTS |
0661 |
0662 D8EB BE D4 0B ZD8EB LDX >CURFCB |
0663 D8EE A6 04 LDA $04,X |
0664 D8F0 27 0C BEQ ZD8FE |
0665 D8F2 2A 02 BPL ZD8F6 |
0666 D8F4 8D 0F BSR ZD905 |
0667 D8F6 BD D5 59 ZD8F6 JSR >ZD559 |
0668 D8F9 26 E4 BNE ZD8DF |
0669 D8FB 1C FE ANDCC #$FE |
0670 D8FD 39 RTS |
0671 |
0672 D8FE 8D 05 ZD8FE BSR ZD905 |
0673 D900 1C FB ZD900 ANDCC #$FB |
0674 D902 1C FE ANDCC #$FE |
0675 D904 39 RTS |
0676 |
0677 D905 A6 88 33 ZD905 LDA $33,X |
0678 D908 26 0C BNE ZD916 |
0679 D90A EC 88 2F LDD $2F,X |
0680 D90D ED 88 32 STD $32,X |
0681 D910 A6 88 31 LDA $31,X |
0682 D913 A7 88 34 STA $34,X |
0683 D916 39 ZD916 RTS |
0684 |
0685 D917 BD D7 87 ZD917 JSR >ZD787 |
0686 D91A 26 17 BNE ZD933 |
0687 D91C 8D 18 BSR ZD936 |
0688 D91E 25 15 BCS ZD935 |
0689 D920 C6 06 LDB #$06 |
0690 D922 10 BE D4 0B LDY >CURFCB |
0691 D926 BE D4 1B LDX >ZD41B |
0692 D929 A6 A8 5D ZD929 LDA $5D,Y |
0693 D92C 31 21 LEAY $01,Y |
0694 D92E A7 80 STA ,X+ |
0695 D930 5A DECB |
0696 D931 26 F6 BNE ZD929 |
0697 D933 1C FE ZD933 ANDCC #$FE |
0698 D935 39 ZD935 RTS |
0699 |
0700 D936 BD D8 10 ZD936 JSR >OPNREC |
0701 D939 BD D6 0C JSR >ZD60C |
0702 D93C 25 08 BCS ZD946 |
0703 D93E BE D4 0B LDX >CURFCB |
0704 D941 C6 10 LDB #$10 |
0705 D943 E7 88 22 STB $22,X |
0706 D946 39 ZD946 RTS |
0707 |
0708 D947 BD D7 87 ZD947 JSR >ZD787 |
0709 D94A 8D EA BSR ZD936 |
0710 D94C 25 F8 BCS ZD946 |
0711 D94E C6 06 LDB #$06 |
0712 D950 10 BE D4 0B LDY >CURFCB |
0713 D954 BE D4 1B LDX >ZD41B |
0714 D957 A6 80 ZD957 LDA ,X+ |
0715 D959 A7 A8 5D STA $5D,Y |
0716 D95C 31 21 LEAY $01,Y |
0717 D95E 5A DECB |
0718 D95F 26 F6 BNE ZD957 |
0719 D961 BD D6 9F JSR >WRSECT |
0720 D964 24 E0 BCC ZD946 |
0721 D966 7E DB C1 JMP >ZDBC1 |
0722 * |
0723 ** |
0724 * |
0725 D969 BE D4 0B RESV1 LDX >CURFCB |
0726 D96C 86 02 LDA #$02 |
0727 D96E A7 02 STA $02,X |
0728 D970 EC 88 2F LDD $2F,X |
0729 D973 ED 88 1E STD $1E,X |
0730 D976 BD D6 41 JSR >RDSECT |
0731 D979 25 08 BCS ZD983 |
0732 D97B BD D8 76 JSR >PUTREC |
0733 D97E 24 05 BCC ZD985 |
0734 D980 7E DB C1 JMP >ZDBC1 |
0735 |
0736 D983 C6 0A ZD983 LDB #$0A |
0737 D985 39 ZD985 RTS |
0738 * |
0739 ** OPEN FOR READ |
0740 * |
0741 D986 BD D4 FA OPENRD JSR >ZD4FA |
0742 D989 25 3D BCS ZD9C8 |
0743 D98B BD D8 92 JSR >ZD892 |
0744 D98E 25 38 BCS ZD9C8 |
0745 D990 26 3B BNE ZD9CD |
0746 D992 BE D4 0B LDX >CURFCB |
0747 D995 7D D4 1A TST >ZD41A |
0748 D998 27 06 BEQ ZD9A0 |
0749 D99A A6 0F LDA $0F,X |
0750 D99C 85 20 BITA #$20 |
0751 D99E 26 29 BNE ZD9C9 |
0752 D9A0 BD DC C0 ZD9A0 JSR >ZDCC0 |
0753 D9A3 25 2A BCS ZD9CF |
0754 D9A5 EC 88 11 LDD $11,X |
0755 D9A8 ED 88 40 STD $40,X |
0756 D9AB BD DA 76 JSR >ZDA76 |
0757 D9AE E6 88 17 LDB $17,X |
0758 D9B1 27 13 BEQ ZD9C6 |
0759 D9B3 34 04 ZD9B3 PSHS B |
0760 D9B5 BD D6 0C JSR >ZD60C |
0761 D9B8 35 04 PULS B |
0762 D9BA 25 0C BCS ZD9C8 |
0763 D9BC 5A DECB |
0764 D9BD 26 F4 BNE ZD9B3 |
0765 D9BF BE D4 0B LDX >CURFCB |
0766 D9C2 5F CLRB |
0767 D9C3 E7 88 22 STB $22,X |
0768 D9C6 1C FE ZD9C6 ANDCC #$FE |
0769 D9C8 39 ZD9C8 RTS |
0770 |
0771 D9C9 C6 11 ZD9C9 LDB #$11 |
0772 D9CB 20 02 BRA ZD9CF |
0773 |
0774 D9CD C6 04 ZD9CD LDB #$04 |
0775 D9CF 34 04 ZD9CF PSHS B |
0776 D9D1 BD D5 0C JSR >ZD50C |
0777 D9D4 35 04 PULS B |
0778 D9D6 1A 01 ORCC #$01 |
0779 D9D8 39 RTS |
0780 |
0781 D9D9 BE D4 0B OPENWR LDX >CURFCB |
0782 D9DC 6D 03 TST $03,X |
0783 D9DE 2A 08 BPL ZD9E8 |
0784 D9E0 BD DD BD JSR >NXTDRV |
0785 D9E3 24 03 BCC ZD9E8 |
0786 D9E5 C6 10 LDB #$10 |
0787 D9E7 39 RTS |
0788 |
0789 D9E8 BD D4 FA ZD9E8 JSR >ZD4FA |
0790 D9EB 25 E2 BCS ZD9CF |
0791 D9ED BD D5 37 JSR >ZD537 |
0792 D9F0 BD D9 17 JSR >ZD917 |
0793 D9F3 25 DA BCS ZD9CF |
0794 D9F5 BD D8 92 JSR >ZD892 |
0795 D9F8 25 D5 BCS ZD9CF |
0796 D9FA 26 04 BNE ZDA00 |
0797 D9FC C6 03 LDB #$03 |
0798 D9FE 20 CF BRA ZD9CF |
0799 |
0800 DA00 BD DC C0 ZDA00 JSR >ZDCC0 |
0801 DA03 25 CA BCS ZD9CF |
0802 DA05 BE D4 0B LDX >CURFCB |
0803 DA08 C6 0A LDB #$0A |
0804 DA0A 6F 0F ZDA0A CLR $0F,X |
0805 DA0C 30 01 LEAX $01,X |
0806 DA0E 5A DECB |
0807 DA0F 26 F9 BNE ZDA0A |
0808 DA11 BE D4 0B LDX >CURFCB |
0809 DA14 EC 88 32 LDD $32,X |
0810 DA17 27 27 BEQ ZDA40 |
0811 DA19 ED 88 2F STD $2F,X |
0812 DA1C A6 88 34 LDA $34,X |
0813 DA1F A7 88 31 STA $31,X |
0814 DA22 FC CC 0E LDD >DATERG |
0815 DA25 ED 88 19 STD $19,X |
0816 DA28 B6 CC 10 LDA >YEAR |
0817 DA2B A7 88 1B STA $1B,X |
0818 DA2E BD DD AD JSR >ZDDAD |
0819 DA31 BD D9 69 JSR >RESV1 |
0820 DA34 25 99 BCS ZD9CF |
0821 DA36 8D 3E BSR ZDA76 |
0822 DA38 86 04 LDA #$04 |
0823 DA3A A7 88 22 STA $22,X |
0824 DA3D 1C FE ANDCC #$FE |
0825 DA3F 39 RTS |
0826 |
0827 DA40 BE D4 0B ZDA40 LDX >CURFCB |
0828 DA43 6F 88 17 CLR $17,X |
0829 DA46 6C 88 12 INC $12,X |
0830 DA49 EC 88 2F LDD $2F,X |
0831 DA4C BD D6 20 JSR >ZD620 |
0832 DA4F 25 0D BCS ZDA5E |
0833 DA51 BD D7 72 JSR >ZD772 |
0834 DA54 25 08 BCS ZDA5E |
0835 DA56 BD D6 9F JSR >WRSECT |
0836 DA59 24 06 BCC ZDA61 |
0837 DA5B BD DB C1 JSR >ZDBC1 |
0838 DA5E 7E D9 CF ZDA5E JMP >ZD9CF |
0839 |
0840 DA61 BE D4 0B ZDA61 LDX >CURFCB |
0841 DA64 EC 88 1E LDD $1E,X |
0842 DA67 ED 88 32 STD $32,X |
0843 DA6A 86 10 LDA #$10 |
0844 DA6C A7 88 34 STA $34,X |
0845 DA6F BD D9 47 JSR >ZD947 |
0846 DA72 25 EA BCS ZDA5E |
0847 DA74 20 8A BRA ZDA00 |
0848 |
0849 DA76 BE D4 0B ZDA76 LDX >CURFCB |
0850 DA79 A6 84 LDA ,X |
0851 DA7B A7 02 STA $02,X |
0852 DA7D 6F 84 CLR ,X |
0853 DA7F 6F 88 3B CLR $3B,X |
0854 DA82 4F CLRA |
0855 DA83 A7 88 22 STA $22,X |
0856 DA86 39 RTS |
0857 * |
0858 ** READ/WRITE NEXT SECTOR |
0859 * |
0860 DA87 8D 28 NXTSEC BSR ZDAB1 |
0861 DA89 25 0E BCS ZDA99 |
0862 DA8B 6F 84 CLR ,X |
0863 DA8D 44 LSRA |
0864 DA8E 10 25 FB 7A LBCS ZD60C |
0865 DA92 C6 04 LDB #$04 |
0866 DA94 E7 88 22 STB $22,X |
0867 DA97 1C FE ANDCC #$FE |
0868 DA99 39 ZDA99 RTS |
0869 |
0870 DA9A BE D4 0B ZDA9A LDX >CURFCB |
0871 DA9D A6 02 LDA $02,X |
0872 DA9F 81 83 CMPA #$83 |
0873 DAA1 26 0B BNE ZDAAE |
0874 DAA3 86 03 LDA #$03 |
0875 DAA5 A7 02 STA $02,X |
0876 DAA7 BD D6 9F ZDAA7 JSR >WRSECT |
0877 DAAA 10 25 01 13 LBCS ZDBC1 |
0878 DAAE 1C FE ZDAAE ANDCC #$FE |
0879 DAB0 39 RTS |
0880 |
0881 DAB1 8D E7 ZDAB1 BSR ZDA9A |
0882 DAB3 25 0D BCS ZDAC2 |
0883 DAB5 BE D4 0B LDX >CURFCB |
0884 DAB8 A6 02 LDA $02,X |
0885 DABA 81 03 CMPA #$03 |
0886 DABC 23 F0 BLS ZDAAE |
0887 DABE C6 12 LDB #$12 |
0888 DAC0 1A 01 ORCC #$01 |
0889 DAC2 39 ZDAC2 RTS |
0890 |
0891 DAC3 8D EC CLOSE BSR ZDAB1 |
0892 DAC5 25 31 BCS ZDAF8 |
0893 DAC7 81 02 CMPA #$02 |
0894 DAC9 27 08 BEQ ZDAD3 |
0895 DACB BE D4 0B ZDACB LDX >CURFCB |
0896 DACE 6F 02 CLR $02,X |
0897 DAD0 7E D5 0C JMP >ZD50C |
0898 |
0899 DAD3 A6 88 12 ZDAD3 LDA $12,X |
0900 DAD6 26 05 BNE ZDADD |
0901 DAD8 BD DB A7 JSR >ZDBA7 |
0902 DADB 20 19 BRA ZDAF6 |
0903 |
0904 DADD 8D C8 ZDADD BSR ZDAA7 |
0905 DADF 25 17 BCS ZDAF8 |
0906 DAE1 BE D4 0B LDX >CURFCB |
0907 DAE4 6D 88 17 TST $17,X |
0908 DAE7 27 05 BEQ ZDAEE |
0909 DAE9 BD DC 98 JSR >ZDC98 |
0910 DAEC 25 0A BCS ZDAF8 |
0911 DAEE BD D9 69 ZDAEE JSR >RESV1 |
0912 DAF1 25 05 BCS ZDAF8 |
0913 DAF3 BD D9 47 JSR >ZD947 |
0914 DAF6 24 D3 ZDAF6 BCC ZDACB |
0915 DAF8 39 ZDAF8 RTS |
0916 * |
0917 ** OPEN FOR UPDATE |
0918 * |
0919 DAF9 BD D9 86 OPENUD JSR >OPENRD |
0920 DAFC 25 28 BCS ZDB26 |
0921 DAFE BD D6 0C JSR >ZD60C |
0922 DB01 25 23 BCS ZDB26 |
0923 DB03 86 03 LDA #$03 |
0924 DB05 20 18 BRA ZDB1F |
0925 * |
0926 ** |
0927 * |
0928 DB07 BD D9 86 RESV3 JSR >OPENRD |
0929 DB0A 25 1A BCS ZDB26 |
0930 DB0C BE D4 0B LDX >CURFCB |
0931 DB0F A6 0F LDA $0F,X |
0932 DB11 85 80 BITA #$80 |
0933 DB13 26 12 BNE ZDB27 |
0934 DB15 EC 88 13 LDD $13,X |
0935 DB18 BD D6 20 JSR >ZD620 |
0936 DB1B 25 09 BCS ZDB26 |
0937 DB1D 86 02 LDA #$02 |
0938 DB1F BE D4 0B ZDB1F LDX >CURFCB |
0939 DB22 A7 02 STA $02,X |
0940 DB24 1C FE ANDCC #$FE |
0941 DB26 39 ZDB26 RTS |
0942 |
0943 DB27 C6 0B ZDB27 LDB #$0B |
0944 DB29 1A 01 ORCC #$01 |
0945 DB2B 39 RTS |
0946 * |
0947 ** RENAME FILE |
0948 * |
0949 DB2C 8D 35 RENAME BSR ZDB63 |
0950 DB2E BD D8 92 JSR >ZD892 |
0951 DB31 25 2A BCS ZDB5D |
0952 DB33 27 24 BEQ ZDB59 |
0953 DB35 BE D4 0B LDX >CURFCB |
0954 DB38 C6 0B LDB #$0B |
0955 DB3A A6 88 24 ZDB3A LDA $24,X |
0956 DB3D A7 04 STA $04,X |
0957 DB3F 30 01 LEAX $01,X |
0958 DB41 5A DECB |
0959 DB42 26 F6 BNE ZDB3A |
0960 DB44 8D 4D BSR ZDB93 |
0961 DB46 25 15 BCS ZDB5D |
0962 DB48 BE D4 0B LDX >CURFCB |
0963 DB4B A6 0F LDA $0F,X |
0964 DB4D 85 80 BITA #$80 |
0965 DB4F 26 D6 BNE ZDB27 |
0966 DB51 85 60 BITA #$60 |
0967 DB53 26 09 BNE ZDB5E |
0968 DB55 8D 0C BSR ZDB63 |
0969 DB57 20 55 BRA ZDBAE |
0970 |
0971 DB59 C6 03 ZDB59 LDB #$03 |
0972 DB5B 1A 01 ORCC #$01 |
0973 DB5D 39 ZDB5D RTS |
0974 DB5E C6 0C ZDB5E LDB #$0C |
0975 DB60 1A 01 ORCC #$01 |
0976 DB62 39 RTS |
0977 |
0978 DB63 BE D4 0B ZDB63 LDX >CURFCB |
0979 DB66 86 0B LDA #$0B |
0980 DB68 B7 D4 11 STA >ZD411 |
0981 DB6B A6 04 ZDB6B LDA $04,X |
0982 DB6D E6 88 35 LDB $35,X |
0983 DB70 A7 88 35 STA $35,X |
0984 DB73 E7 04 STB $04,X |
0985 DB75 30 01 LEAX $01,X |
0986 DB77 7A D4 11 DEC >ZD411 |
0987 DB7A 26 EF BNE ZDB6B |
0988 DB7C BE D4 0B LDX >CURFCB |
0989 DB7F A6 0C LDA $0C,X |
0990 DB81 26 0C BNE ZDB8F |
0991 DB83 C6 03 LDB #$03 |
0992 DB85 A6 88 3D ZDB85 LDA $3D,X |
0993 DB88 A7 0C STA $0C,X |
0994 DB8A 30 01 LEAX $01,X |
0995 DB8C 5A DECB |
0996 DB8D 26 F6 BNE ZDB85 |
0997 DB8F BE D4 0B ZDB8F LDX >CURFCB |
0998 DB92 39 RTS |
0999 |
1000 DB93 8D CE ZDB93 BSR ZDB63 |
1001 DB95 BD D8 92 ZDB95 JSR >ZD892 |
1002 DB98 25 07 BCS ZDBA1 |
1003 DB9A 26 06 BNE ZDBA2 |
1004 DB9C BE D4 0B LDX >CURFCB |
1005 DB9F 1C FE ANDCC #$FE |
1006 DBA1 39 ZDBA1 RTS |
1007 |
1008 DBA2 C6 04 ZDBA2 LDB #$04 |
1009 DBA4 1A 01 ORCC #$01 |
1010 DBA6 39 RTS |
1011 |
1012 DBA7 BE D4 0B ZDBA7 LDX >CURFCB |
1013 DBAA 86 FF LDA #$FF |
1014 DBAC A7 04 STA $04,X |
1015 DBAE BD D9 69 ZDBAE JSR >RESV1 |
1016 DBB1 BE D4 0B LDX >CURFCB |
1017 DBB4 86 00 LDA #$00 |
1018 DBB6 A7 02 STA $02,X |
1019 DBB8 39 RTS |
1020 |
1021 DBB9 ED 88 40 ZDBB9 STD $40,X |
1022 DBBC BD D6 9F JSR >WRSECT |
1023 DBBF 24 14 BCC ZDBD5 |
1024 DBC1 C5 40 ZDBC1 BITB #$40 |
1025 DBC3 26 08 BNE ZDBCD |
1026 DBC5 C5 80 BITB #$80 |
1027 DBC7 27 0A BEQ ZDBD3 |
1028 DBC9 C6 10 LDB #$10 |
1029 DBCB 20 06 BRA ZDBD3 |
1030 DBCD C6 0B ZDBCD LDB #$0B |
1031 DBCF 20 02 BRA ZDBD3 |
1032 |
1033 DBD1 C6 0A LDB #$0A |
1034 DBD3 1A 01 ZDBD3 ORCC #$01 |
1035 DBD5 39 ZDBD5 RTS |
1036 * |
1037 ** DELETE FILE |
1038 * |
1039 DBD6 BD D9 17 DELETE JSR >ZD917 |
1040 DBD9 25 5E BCS ZDC39 |
1041 DBDB 8D B8 BSR ZDB95 |
1042 DBDD 25 5A BCS ZDC39 |
1043 DBDF BE D4 0B LDX >CURFCB |
1044 DBE2 A6 0F LDA $0F,X |
1045 DBE4 85 80 BITA #$80 |
1046 DBE6 26 52 BNE ZDC3A |
1047 DBE8 85 60 BITA #$60 |
1048 DBEA 26 52 BNE ZDC3E |
1049 DBEC BD D7 87 JSR >ZD787 |
1050 DBEF BE D4 1B LDX >ZD41B |
1051 DBF2 EC 02 LDD $02,X |
1052 DBF4 26 0F BNE ZDC05 |
1053 DBF6 BE D4 0B LDX >CURFCB |
1054 DBF9 EC 88 11 LDD $11,X |
1055 DBFC 27 33 BEQ ZDC31 |
1056 DBFE BE D4 1B LDX >ZD41B |
1057 DC01 ED 84 STD ,X |
1058 DC03 20 14 BRA ZDC19 |
1059 |
1060 DC05 BE D4 0B ZDC05 LDX >CURFCB |
1061 DC08 BD D6 20 JSR >ZD620 |
1062 DC0B 25 2C BCS ZDC39 |
1063 DC0D BE D4 0B LDX >CURFCB |
1064 DC10 EC 88 11 LDD $11,X |
1065 DC13 27 1C BEQ ZDC31 |
1066 DC15 8D A2 BSR ZDBB9 |
1067 DC17 25 20 BCS ZDC39 |
1068 DC19 BE D4 0B ZDC19 LDX >CURFCB |
1069 DC1C EC 88 13 LDD $13,X |
1070 DC1F BE D4 1B LDX >ZD41B |
1071 DC22 ED 02 STD $02,X |
1072 DC24 BE D4 0B LDX >CURFCB |
1073 DC27 EC 88 15 LDD $15,X |
1074 DC2A BE D4 1B LDX >ZD41B |
1075 DC2D E3 04 ADDD $04,X |
1076 DC2F ED 04 STD $04,X |
1077 DC31 BD DB A7 ZDC31 JSR >ZDBA7 |
1078 DC34 25 03 BCS ZDC39 |
1079 DC36 BD D9 47 JSR >ZD947 |
1080 DC39 39 ZDC39 RTS |
1081 |
1082 DC3A C6 0B ZDC3A LDB #$0B |
1083 DC3C 20 02 BRA ZDC40 |
1084 DC3E C6 0C ZDC3E LDB #$0C |
1085 DC40 1A 01 ZDC40 ORCC #$01 |
1086 DC42 39 RTS |
1087 |
1088 DC43 EC 88 1E ZDC43 LDD $1E,X |
1089 DC46 5C INCB |
1090 DC47 E1 88 3C CMPB $3C,X |
1091 DC4A 23 03 BLS ZDC4F |
1092 DC4C C6 01 LDB #$01 |
1093 DC4E 4C INCA |
1094 DC4F 10 A3 88 13 ZDC4F CMPD $13,X |
1095 DC53 26 0E BNE ZDC63 |
1096 DC55 A6 88 37 LDA $37,X |
1097 DC58 81 FF CMPA #$FF |
1098 DC5A 27 07 BEQ ZDC63 |
1099 DC5C 4C INCA |
1100 DC5D A7 88 37 STA $37,X |
1101 DC60 1C FE ANDCC #$FE |
1102 DC62 39 RTS |
1103 |
1104 DC63 8D 33 ZDC63 BSR ZDC98 |
1105 DC65 25 30 BCS ZDC97 |
1106 DC67 BE D4 0B LDX >CURFCB |
1107 DC6A A6 88 3A LDA $3A,X |
1108 DC6D 8B 03 ADDA #$03 |
1109 DC6F 26 16 BNE ZDC87 |
1110 DC71 EC 88 1E LDD $1E,X |
1111 DC74 10 A3 88 11 CMPD $11,X |
1112 DC78 27 05 BEQ ZDC7F |
1113 DC7A C6 17 LDB #$17 |
1114 DC7C 1A 01 ORCC #$01 |
1115 DC7E 39 RTS |
1116 |
1117 DC7F EC 88 40 ZDC7F LDD $40,X |
1118 DC82 ED 88 38 ZDC82 STD $38,X |
1119 DC85 86 04 LDA #$04 |
1120 DC87 A7 88 3A ZDC87 STA $3A,X |
1121 DC8A EC 88 13 LDD $13,X |
1122 DC8D ED 88 35 STD $35,X |
1123 DC90 86 01 LDA #$01 |
1124 DC92 A7 88 37 STA $37,X |
1125 DC95 1C FE ANDCC #$FE |
1126 DC97 39 ZDC97 RTS |
1127 |
1128 DC98 EC 88 38 ZDC98 LDD $38,X |
1129 DC9B BD D6 20 JSR >ZD620 |
1130 DC9E 25 F7 BCS ZDC97 |
1131 DCA0 BE D4 0B LDX >CURFCB |
1132 DCA3 1F 12 TFR X,Y |
1133 DCA5 E6 88 3A LDB $3A,X |
1134 DCA8 3A ABX |
1135 DCA9 C6 03 LDB #$03 |
1136 DCAB A6 A8 35 ZDCAB LDA $35,Y |
1137 DCAE 31 21 LEAY $01,Y |
1138 DCB0 A7 88 40 STA $40,X |
1139 DCB3 30 01 LEAX $01,X |
1140 DCB5 5A DECB |
1141 DCB6 26 F3 BNE ZDCAB |
1142 DCB8 BD D6 9F JSR >WRSECT |
1143 DCBB 24 DA BCC ZDC97 |
1144 DCBD 7E DB C1 JMP >ZDBC1 |
1145 |
1146 DCC0 BD D8 10 ZDCC0 JSR >OPNREC |
1147 DCC3 BD D6 0C JSR >ZD60C |
1148 DCC6 25 46 BCS ZDD0E |
1149 DCC8 BE D4 0B LDX >CURFCB |
1150 DCCB 4F CLRA |
1151 DCCC 5F CLRB |
1152 DCCD ED 88 20 STD $20,X |
1153 DCD0 A6 88 67 LDA $67,X |
1154 DCD3 A7 88 3C STA $3C,X |
1155 DCD6 5F CLRB |
1156 DCD7 6F 88 40 ZDCD7 CLR $40,X |
1157 DCDA 30 01 LEAX $01,X |
1158 DCDC 5A DECB |
1159 DCDD 26 F8 BNE ZDCD7 |
1160 DCDF BE D4 0B LDX >CURFCB |
1161 DCE2 1C FE ANDCC #$FE |
1162 DCE4 39 RTS |
1163 * |
1164 ** BACKUP ONE RECORD |
1165 * |
1166 DCE5 BE D4 0B BAKREC LDX >CURFCB |
1167 DCE8 A6 88 17 LDA $17,X |
1168 DCEB 27 1D BEQ ZDD0A |
1169 DCED EC 88 20 LDD $20,X |
1170 DCF0 83 00 01 SUBD #$0001 |
1171 DCF3 2A 03 BPL ZDCF8 |
1172 DCF5 7E DD 9A JMP >ZDD9A |
1173 * |
1174 ** POSITION TO RECORD N |
1175 * |
1176 DCF8 ED 88 20 ZDCF8 STD $20,X |
1177 DCFB BD DA B1 POSREC JSR >ZDAB1 |
1178 DCFE 25 0E BCS ZDD0E |
1179 DD00 46 RORA |
1180 DD01 24 07 BCC ZDD0A |
1181 DD03 6F 84 CLR ,X |
1182 DD05 A6 88 17 LDA $17,X |
1183 DD08 26 05 BNE ZDD0F |
1184 DD0A C6 12 ZDD0A LDB #$12 |
1185 DD0C 1A 01 ORCC #$01 |
1186 DD0E 39 ZDD0E RTS |
1187 |
1188 DD0F 7F D4 11 ZDD0F CLR >ZD411 |
1189 DD12 EC 88 11 LDD $11,X |
1190 DD15 10 AE 88 20 LDY $20,X |
1191 DD19 27 6A BEQ ZDD85 |
1192 DD1B BD DD 9F JSR >ZDD9F |
1193 DD1E 25 EE BCS ZDD0E |
1194 DD20 4F CLRA |
1195 DD21 5F CLRB |
1196 DD22 6D 02 ZDD22 TST $02,X |
1197 DD24 27 74 BEQ ZDD9A |
1198 DD26 EB 02 ADDB $02,X |
1199 DD28 89 00 ADCA #$00 |
1200 DD2A BF D4 0F STX >ZD40F |
1201 DD2D BE D4 0B LDX >CURFCB |
1202 DD30 10 A3 88 20 CMPD $20,X |
1203 DD34 24 2C BCC ZDD62 |
1204 DD36 BE D4 0F LDX >ZD40F |
1205 DD39 30 03 LEAX $03,X |
1206 DD3B 34 02 PSHS A |
1207 DD3D B6 D4 11 LDA >ZD411 |
1208 DD40 4C INCA |
1209 DD41 B7 D4 11 STA >ZD411 |
1210 DD44 81 54 CMPA #$54 |
1211 DD46 27 08 BEQ ZDD50 |
1212 DD48 81 A8 CMPA #$A8 |
1213 DD4A 35 02 PULS A |
1214 DD4C 27 4C BEQ ZDD9A |
1215 DD4E 20 D2 BRA ZDD22 |
1216 |
1217 DD50 34 04 ZDD50 PSHS B |
1218 DD52 BE D4 0B LDX >CURFCB |
1219 DD55 EC 88 40 LDD $40,X |
1220 DD58 8D 45 BSR ZDD9F |
1221 DD5A 25 3E BCS ZDD9A |
1222 DD5C 35 04 PULS B |
1223 DD5E 35 02 PULS A |
1224 DD60 20 C0 BRA ZDD22 |
1225 |
1226 DD62 A3 88 20 ZDD62 SUBD $20,X |
1227 DD65 BE D4 0F LDX >ZD40F |
1228 DD68 A6 02 LDA $02,X |
1229 DD6A 34 04 PSHS B |
1230 DD6C A0 E0 SUBA ,S+ |
1231 DD6E 4A DECA |
1232 DD6F 1F 89 TFR A,B |
1233 DD71 A6 84 LDA ,X |
1234 DD73 EB 01 ADDB $01,X |
1235 DD75 BE D4 0B LDX >CURFCB |
1236 DD78 25 05 BCS ZDD7F |
1237 DD7A E1 88 3C ZDD7A CMPB $3C,X |
1238 DD7D 23 06 BLS ZDD85 |
1239 DD7F E0 88 3C ZDD7F SUBB $3C,X |
1240 DD82 4C INCA |
1241 DD83 20 F5 BRA ZDD7A |
1242 |
1243 DD85 BD D6 20 ZDD85 JSR >ZD620 |
1244 DD88 25 14 BCS ZDD9E |
1245 DD8A BE D4 0B LDX >CURFCB |
1246 DD8D EC 88 42 LDD $42,X |
1247 DD90 10 A3 88 20 CMPD $20,X |
1248 DD94 27 14 BEQ ZDDAA |
1249 DD96 C6 19 LDB #$19 |
1250 DD98 20 02 BRA ZDD9C |
1251 |
1252 DD9A C6 18 ZDD9A LDB #$18 |
1253 DD9C 1A 01 ZDD9C ORCC #$01 |
1254 DD9E 39 ZDD9E RTS |
1255 |
1256 DD9F BD D6 20 ZDD9F JSR >ZD620 |
1257 DDA2 25 08 BCS ZDDAC |
1258 DDA4 BE D4 0B LDX >CURFCB |
1259 DDA7 C6 44 LDB #$44 |
1260 DDA9 3A ABX |
1261 DDAA 1C FE ZDDAA ANDCC #$FE |
1262 DDAC 39 ZDDAC RTS |
1263 |
1264 DDAD BE D4 0B ZDDAD LDX >CURFCB |
1265 DDB0 C6 0B LDB #$0B |
1266 DDB2 A6 88 24 ZDDB2 LDA $24,X |
1267 DDB5 A7 04 STA $04,X |
1268 DDB7 30 01 LEAX $01,X |
1269 DDB9 5A DECB |
1270 DDBA 26 F6 BNE ZDDB2 |
1271 DDBC 39 RTS |
1272 * |
1273 ** FIND NEXT DRIVE |
1274 * |
1275 DDBD BE D4 0B NXTDRV LDX >CURFCB |
1276 DDC0 A6 03 LDA $03,X |
1277 DDC2 4C INCA |
1278 DDC3 81 04 CMPA #$04 |
1279 DDC5 24 0F BCC ZDDD6 |
1280 DDC7 A7 03 STA $03,X |
1281 DDC9 26 05 BNE ZDDD0 |
1282 DDCB BD DE 0F JSR >DRVRDY |
1283 DDCE 20 03 BRA ZDDD3 |
1284 |
1285 DDD0 BD DE 12 ZDDD0 JSR >QUICK |
1286 DDD3 25 E8 ZDDD3 BCS NXTDRV |
1287 DDD5 39 RTS |
1288 |
1289 DDD6 C6 10 ZDDD6 LDB #$10 |
1290 DDD8 1A 01 ORCC #$01 |
1291 DDDA 39 RTS |
0011 END |
0000 INCLUDE "f9-monex.txt" |
0001 * |
0002 ** FLEX 9 DISK DRIVERS |
0003 * |
0004 * FOR SYS09BUG ON THE |
0005 * DIGILENT SPARTAN 3 STARTER BOARD AND |
0006 * TERASIC CYCLONE 2 DE1 BOARD |
0007 * WITH I/O MAPPED AT $XE000 |
0008 * AND ROM MAPPED AT $XF000 |
0009 * THE DIGILENT SPARTAN 3 STARTER BOARD HAS 1MBYTE OF SRAM |
0010 * THE TERASIC CYCLONE 2 DE1 BOARD HAS 512KBYTE OF SRAM |
0011 * THE FIRST 64K IS USED BY FLEX, |
0012 * THE SECOND 128K IS USED AS A ROM DISK |
0013 * THE REMAINING RAM IS USED FOR A RAM DISK |
0014 * |
0015 * |
0016 0001 CFLAG EQU $01 CARRY FLAG |
0017 0002 VFLAG EQU $02 OVERFLOW FLAG |
0018 0004 ZFLAG EQU $04 ZERO FLAG |
0019 0008 NFLAG EQU $08 NEGATIVE FLAG |
0020 0010 IFLAG EQU $10 IRQ MASK CC |
0021 0020 HFLAG EQU $20 HALF CARRY |
0022 0040 FFLAG EQU $40 FIRQ MASK CC |
0023 0080 EFLAG EQU $80 ENTIRE FLAG |
0024 * |
0025 0000 MAPPAG EQU $00 PAGE $0000 DAT ADDRESS |
0026 FFF0 DATREG EQU IC11 DAT REGISTERS |
0027 * |
0028 * Serial Port |
0029 * |
0030 E000 ACIAC1 EQU ACIAS |
0031 E001 ACIAD1 EQU ACIAS+1 |
0032 04E2 DELCON EQU 1250 Delay (Processor clock in MHz * 50) |
0033 * |
0034 * XMODEM Control characters |
0035 * |
0036 0001 SOH EQU $01 |
0037 0004 EOT EQU $04 |
0038 0006 ACK EQU $06 |
0039 0015 NAK EQU $15 |
0040 0018 CAN EQU $18 |
0041 * |
0042 * DRIVE GEOMETRY |
0043 * |
0044 000E EMAXSEC EQU 14 ROM DISK |
0045 0030 EMAXTRK EQU 48 3 * 16 * 14 * 256 = 172,032 Bytes |
0046 0292 ETOTSEC EQU EMAXTRK*EMAXSEC-EMAXSEC |
0047 * |
0048 000E RMAXSEC EQU 14 RAM DISK |
0049 *RMAXTRK EQU 192 12 * 16 * 14 * 256 = 688,128 Bytes Digilent Spartan 3 |
0050 0040 RMAXTRK EQU 64 4 * 16 * 14 * 256 = 229,376 Bytes Terasic Cyclone 2 |
0051 0372 RTOTSEC EQU RMAXTRK*RMAXSEC-RMAXSEC |
0052 * |
0053 * DRIVE TYPES |
0054 * |
0055 0000 DTYPROM EQU 0 ROM DISK |
0056 0001 DTYPRAM EQU 1 RAM DISK |
0057 0002 DTYPFLS EQU 2 FLASH DISK |
0058 0003 DTYPNET EQU 3 FLEXNET DISK |
0059 * |
0060 DE00 ORG $DE00 |
0061 * |
0062 * DISK DRIVER JUMP TABLE LAST UPDATE: 22/12/2006 |
0063 * Disk driver for RAM Disk. |
0064 * |
0065 * 14 SECTORS PER TRACK |
0066 * 16 * N TRACKS PER DISK |
0067 * |
0068 * ROM DISK OCCUPIES $10000 - $1E000 ... $30000 - $3E000 |
0069 * RAM DISK OCCUPIES $40000 - $4E000 ... $F0000 - $FE000 |
0070 * Track Buffer page mapped at $E000 - $EFFF |
0071 * MAPPAG = $00 = 0 x $1000 (4 K pages) |
0072 |
0073 * ON SWTPC ROM AT $XF000 AND IO AT $XE000 |
0074 * APPEARS THROUGHOUT THE MEMORY SO MUST BE SKIPPED OVER |
0075 * WHEN USING RAM AS A RAMDISK. |
0076 * THE MSN OF THE TRACK MAPS INTO THE MSN OF THE DAT |
0077 * THE LSN OF THE TRACK NUMBER INDEXES INTO THE 4K RAM PAGE |
0078 * THE SECTOR MAPS INTO THE LSN OF THE DAT WHICH IS INVERTED |
0079 * |
0080 * |
0081 * |
0082 * FLEX disk jump table. |
0083 * |
0084 DE00 7E F0 57 READ JMP READSC |
0085 DE03 7E F0 5B WRITE JMP WRITSC |
0086 DE06 7E F0 5F VERIFY JMP BUSY |
0087 DE09 7E F0 63 RESTOR JMP RESTR1 |
0088 DE0C 7E F0 6C DRIVE JMP DRVSEL |
0089 DE0F 7E F0 9F DRVRDY JMP CHKRDY |
0090 DE12 7E F0 A3 QUICK JMP CHKQIK |
0091 DE15 7E F0 A7 COLDDR JMP DINIT |
0092 DE18 7E F0 BF WARMDR JMP DWARM |
0093 DE1B 7E F0 C3 SEEK JMP SEEKTS |
0094 * |
0095 * RAM SPACE |
0096 * |
0097 DE1E 00 DRVNUM FCB 0 |
0098 DE1F 00 TRACK FCB 0 |
0099 DE20 00 SECTOR FCB 0 |
0100 DE21 00 CHKSUM FCB 0 |
0101 DE22 00 CCSAVE FCB 0 |
0102 DE23 00 BLKNUM FCB 0 Xmodem block number |
0103 DE24 00 BYTCNT FCB 0 Xmodem byte count |
0104 DE25 00 00 XSTATE FDB 0 Xmodem State Vector |
0105 DE27 00 00 00 DELCNT FCB $00,$00,$00 Xmodem Poll timer |
0106 * |
0107 * Disc driver type table. |
0108 * Indexed by drive number |
0109 * |
0110 DE2A 00 DTYPTAB FCB DTYPROM Drive 0 (ROM Disk) |
0111 DE2B 01 FCB DTYPRAM Drive 1 (RAM Disk) |
0112 DE2C 02 FCB DTYPFLS Drive 2 (FLASH Disk) |
0113 DE2D 03 FCB DTYPNET Drive 3 (NETPC Disk) |
0114 * |
0115 * RAM Disk offset |
0116 * Indexed by drive type |
0117 * |
0118 DE2E 10 DOFFTAB FCB $10 ROM Disk $10000 |
0119 DE2F 40 FCB $40 RAM DISK $40000 |
0120 DE30 FF FCB $FF Flash Disk |
0121 DE31 FF FCB $FF NETPC Disk |
0122 * |
0123 DE32 REAVEC RMB 2 Disc driver jump table. |
0124 DE34 WRIVEC RMB 2 |
0125 DE36 VERVEC RMB 2 |
0126 DE38 RSTVEC RMB 2 |
0127 DE3A DRVVEC RMB 2 |
0128 DE3C CHKVEC RMB 2 |
0129 DE3E QUIVEC RMB 2 |
0130 DE40 INIVEC RMB 2 |
0131 DE42 WARVEC RMB 2 |
0132 DE44 SEEVEC RMB 2 |
0133 * |
0134 * SECTOR BUFFER |
0135 * |
0136 DE46 BUFFER RMB 256 |
0137 DF46 SYNCREG RMB 4 Prom input register |
0138 * |
0139 **************************************** |
0140 * |
0141 * START OF EXTENSION COMMANDS |
0142 * |
0143 **************************************** |
0144 * |
0145 F000 ORG MONEXT |
0146 F000 F7 BD FDB NEXTEXT Jump to next extended command |
0147 * |
0148 * |
0149 ***************************************** |
0150 * Disk drivers * |
0151 * ------------ * |
0152 * The system dependant code for the * |
0153 * disc drivers fits here. Two tables * |
0154 * must be included. These are DTYPTAB a * |
0155 * four byte table that defines which of * |
0156 * the (up to four) following sets of * |
0157 * jump tables to use, and TABSRT the * |
0158 * jump tables themselves. For a full * |
0159 * description of the floppy drivers see * |
0160 * section 4 (pp9-14) of the general * |
0161 * Flex adaptation guide. * |
0162 ***************************************** |
0163 * |
0164 * Mass storage drivers for embedded applications. |
0165 * |
0166 * Jump tables. |
0167 F002 F1 19 TABSRT FDB EREAD Drive type 0 (ROM disk). |
0168 F004 F1 41 FDB EWRITE |
0169 F006 F1 3F FDB ECHECK |
0170 F008 F1 3F FDB ECHECK |
0171 F00A F1 3F FDB ECHECK |
0172 F00C F1 3F FDB ECHECK |
0173 F00E F1 3F FDB ECHECK |
0174 F010 F0 52 FDB DDUMMY |
0175 F012 F0 52 FDB DDUMMY |
0176 F014 F0 52 FDB DDUMMY |
0177 * |
0178 F016 F1 19 FDB EREAD Drive type 1 (RAM disk). |
0179 F018 F1 41 FDB EWRITE |
0180 F01A F1 3F FDB ECHECK |
0181 F01C F1 3F FDB ECHECK |
0182 F01E F1 3F FDB ECHECK |
0183 F020 F1 3F FDB ECHECK |
0184 F022 F1 3F FDB ECHECK |
0185 F024 F0 52 FDB DDUMMY |
0186 F026 F0 52 FDB DDUMMY |
0187 F028 F0 52 FDB DDUMMY |
0188 * |
0189 F02A F0 52 FDB DDUMMY Drive type 2 (External Flash disk). |
0190 F02C F0 52 FDB DDUMMY |
0191 F02E F0 52 FDB DDUMMY |
0192 F030 F0 52 FDB DDUMMY |
0193 F032 F0 52 FDB DDUMMY |
0194 F034 F0 52 FDB DDUMMY |
0195 F036 F0 52 FDB DDUMMY |
0196 F038 F0 52 FDB DDUMMY |
0197 F03A F0 52 FDB DDUMMY |
0198 F03C F0 52 FDB DDUMMY |
0199 * |
0200 F03E F1 7A FDB NREAD Drive type 3 (NetPC drive via serial port). |
0201 F040 F1 E9 FDB NWRITE |
0202 F042 F2 49 FDB NVERIFY |
0203 F044 F2 4E FDB NCHECK |
0204 F046 F2 4E FDB NCHECK |
0205 F048 F2 4E FDB NCHECK |
0206 F04A F2 4E FDB NCHECK |
0207 F04C F0 52 FDB DDUMMY |
0208 F04E F0 52 FDB DDUMMY |
0209 F050 F0 52 FDB DDUMMY |
0210 * |
0211 * |
0212 * Dummy routine (no errors). |
0213 F052 5F DDUMMY CLRB |
0214 F053 5D TSTB Set (z)=1 |
0215 F054 1C FE ANDCC #$FF-CFLAG Set (c)=0 |
0216 F056 39 RTS |
0217 * * |
0218 ************************** |
0219 * Main Flex entry points * |
0220 ************************* |
0221 * |
0222 * Read sector routine. |
0223 * Entry: (X) = address where sector is to be placed. |
0224 * (A) = Track number. |
0225 * (B) = Sector number. |
0226 * Exit: (B) = Error code (z)=1 if no error. |
0227 F057 6E 9F DE 32 READSC JMP [REAVEC] |
0228 * |
0229 * Write track routine. |
0230 * Entry: (X) = Address of area of memory from which the data will be taken. |
0231 * (A) = Track number. |
0232 * (B) = Sector number. |
0233 * Exit: (B) = Error condition, (Z)=1 no an error. |
0234 F05B 6E 9F DE 34 WRITSC JMP [WRIVEC] |
0235 * |
0236 * Verify sector routine. |
0237 * Entry: no parameters. |
0238 * Exit: (B) = Error condition (Z)=1 if no error. |
0239 F05F 6E 9F DE 36 BUSY JMP [VERVEC] |
0240 * |
0241 * Restore drive to track 00. |
0242 * Entry: (X) = FCB address (3,X contains drive number). |
0243 * Exit: (B) = Error condition, (Z)=1 if no error. |
0244 F063 8D 07 RESTR1 BSR DRVSEL Select drive first. |
0245 F065 27 01 BEQ RST1 |
0246 F067 39 RTS |
0247 F068 6E 9F DE 38 RST1 JMP [RSTVEC] |
0248 * |
0249 * Select current drive. |
0250 * Entry: (X) = FCB address (3,X contains drive number). |
0251 * Exit: (B) = Error condition, (Z)=0 and (c)=1 if error. |
0252 * (B) = $0F if non existant drive. |
0253 F06C 34 30 DRVSEL PSHS X,Y |
0254 F06E E6 03 LDB 3,X Get driver type. |
0255 F070 F7 DE 1E STB DRVNUM |
0256 F073 8E DE 2A LDX #DTYPTAB |
0257 F076 A6 85 LDA B,X |
0258 F078 81 FF CMPA #$FF Is the drive nonexistant? |
0259 F07A 26 08 BNE DRIVE1 |
0260 F07C 35 30 PULS X,Y |
0261 F07E C6 0F LDB #$0F |
0262 F080 5D TSTB |
0263 F081 1A 01 ORCC #$01 |
0264 F083 39 RTS |
0265 * |
0266 F084 C6 14 DRIVE1 LDB #20 Get correct table start address. |
0267 F086 3D MUL |
0268 F087 8E F0 02 LDX #TABSRT |
0269 F08A 30 8B LEAX D,X |
0270 F08C 10 8E DE 32 LDY #REAVEC Copy table into ram. |
0271 F090 C6 14 LDB #20 |
0272 F092 A6 80 DRIVE2 LDA 0,X+ |
0273 F094 A7 A0 STA 0,Y+ |
0274 F096 5A DECB |
0275 F097 26 F9 BNE DRIVE2 |
0276 F099 35 30 PULS X,Y |
0277 F09B 6E 9F DE 3A JMP [DRVVEC] |
0278 * |
0279 * Check for drive ready. |
0280 * Entry: (X) = FCB address (3,X contains drive number)> |
0281 * Exit: (B) = Error condition, (Z)=0 AND (C)=1 if drive is not ready. |
0282 F09F 6E 9F DE 3C CHKRDY JMP [CHKVEC] |
0283 * |
0284 * Quick drive ready check. |
0285 * Entry: (X) = FCB address (3,X contains drive number). |
0286 * Exit: (B) = Error condition, (Z)=0 AND (c)=1 if drive not ready. |
0287 F0A3 6E 9F DE 3E CHKQIK JMP [QUIVEC] |
0288 * |
0289 * Init (cold start). |
0290 * Entry: no parameters. |
0291 * Exit: no change. |
0292 F0A7 4F DINIT CLRA |
0293 F0A8 B7 DE 1E DINIT1 STA DRVNUM Init each valid drive in turn. |
0294 F0AB 8E DE 1B LDX #DRVNUM-3 |
0295 F0AE 8D BC BSR DRVSEL |
0296 F0B0 25 04 BCS DINIT2 |
0297 F0B2 AD 9F DE 40 JSR [INIVEC] |
0298 F0B6 B6 DE 1E DINIT2 LDA DRVNUM |
0299 F0B9 4C INCA |
0300 F0BA 81 04 CMPA #4 |
0301 F0BC 26 EA BNE DINIT1 |
0302 F0BE 39 RTS |
0303 * |
0304 * Warm start. |
0305 * Entry: no parameters. |
0306 * Exit: no change. |
0307 F0BF 6E 9F DE 42 DWARM JMP [WARVEC] |
0308 * |
0309 * Seek track. |
0310 * Entry: (A) = Track number. |
0311 * (B) = Sector number. |
0312 * Exit: (B) = Error condition, (Z)=1 if no error. |
0313 F0C3 6E 9F DE 44 SEEKTS JMP [SEEVEC] |
0314 * |
0315 * |
0316 ***************************************************** |
0317 * ROMdisk drivers * |
0318 * --------------- * |
0319 * Drivers to support a ROMdisk in the external RAM * |
0320 * of the SYS09. The ROMdisk base address is $10000 * |
0321 ***************************************************** |
0322 * Dummy return for ROM disk (write protected!) |
0323 * |
0324 * MAP RAM DISK INTO MEMORY SPACE |
0325 * |
0326 F0C7 1F A8 MAPIN TFR CC,A ; Save state of interrupt masks |
0327 F0C9 B7 DE 22 STA CCSAVE |
0328 F0CC 1A 50 ORCC #FFLAG+IFLAG ; Mask interrupts while IO mapped out |
0329 F0CE CE DE 2A LDU #DTYPTAB ; Point to Drive Type table |
0330 F0D1 F6 DE 1E LDB DRVNUM ; Get working drive number |
0331 F0D4 E6 C5 LDB B,U |
0332 F0D6 CE DE 2E LDU #DOFFTAB |
0333 F0D9 B6 DE 1F LDA TRACK |
0334 F0DC AB C5 ADDA B,U ; Add Base offset into RAM |
0335 F0DE 84 F0 ANDA #$F0 ; Mask MSN |
0336 F0E0 A7 E2 STA ,-S ; Save A on stack |
0337 * |
0338 F0E2 B6 DE 20 LDA SECTOR |
0339 F0E5 80 01 SUBA #1 ; Sectors 1 to 14 => 0 to 13 |
0340 F0E7 88 0F EORA #$0F ; Complement LSNybble |
0341 F0E9 84 0F ANDA #$0F |
0342 * |
0343 F0EB AB E0 ADDA ,S+ ; Add sector to LSN of Track and pop |
0344 F0ED B7 FF F0 STA DATREG+MAPPAG |
0345 * |
0346 F0F0 B6 DE 1F LDA TRACK ; LSN of Track indexes into 4K page |
0347 F0F3 84 0F ANDA #$0F |
0348 F0F5 8B 00 ADDA #MAPPAG*16 |
0349 F0F7 5F CLRB |
0350 F0F8 1F 03 TFR D,U |
0351 F0FA 39 RTS |
0352 * |
0353 * MAP RAM DISK OUT OF MEMORY |
0354 * |
0355 F0FB 86 00 MAPOUT LDA #MAPPAG ; Point to the Flex page |
0356 F0FD 88 0F EORA #$0F ; Complement LSNybble |
0357 F0FF B7 FF F0 STA DATREG+MAPPAG ; map in Flex page |
0358 F102 B6 DE 22 LDA CCSAVE ; restore interrupt masks |
0359 F105 1F 8A TFR A,CC |
0360 F107 39 RTS |
0361 * |
0362 * Seek track and sector |
0363 * A holds track number (0-32) |
0364 * B holds sector number (1-14) |
0365 * |
0366 F108 B7 DE 1F ESEEK STA TRACK |
0367 F10B F7 DE 20 STB SECTOR |
0368 F10E 1C FE ANDCC #$FE ; CLEAR CARRY |
0369 F110 1A 04 ORCC #$04 ; SET Z |
0370 F112 39 RTS |
0371 * |
0372 * MARK DISK READ ONLY |
0373 * |
0374 F113 C6 40 EDUMMY LDB #$40 |
0375 F115 5D TSTB |
0376 F116 1A 01 ORCC #$01 |
0377 F118 39 RTS |
0378 * |
0379 F119 34 70 EREAD PSHS X,Y,U push sequentialy to preserve order on stack |
0380 F11B 17 FF EA LBSR ESEEK |
0381 F11E 17 FF A6 LBSR MAPIN build external ram address |
0382 * |
0383 F121 10 8E DE 46 LDY #BUFFER |
0384 F125 5F CLRB |
0385 F126 A6 C0 ERLOOP1 LDA 0,U+ move 256 bytes to buffer from external RAM |
0386 F128 A7 A0 STA 0,Y+ |
0387 F12A 5A DECB |
0388 F12B 26 F9 BNE ERLOOP1 |
0389 * |
0390 F12D 17 FF CB LBSR MAPOUT |
0391 * |
0392 F130 10 8E DE 46 LDY #BUFFER |
0393 F134 5F CLRB |
0394 F135 A6 A0 ERLOOP2 LDA 0,Y+ move 256 bytes from buffer to Flex RAM |
0395 F137 A7 80 STA 0,X+ |
0396 F139 5A DECB |
0397 F13A 26 F9 BNE ERLOOP2 |
0398 * |
0399 F13C 5F CLRB |
0400 F13D 35 F0 PULS X,Y,U,PC restore all registers |
0401 * |
0402 * check for marker bytes $AA55 in first bytes of first track/sector |
0403 * |
0404 *ECHECK CLRA |
0405 * LDB #1 |
0406 * LDX #BUFFER |
0407 * BSR EREAD |
0408 * LDD BUFFER |
0409 * CMPD #$AA55 |
0410 * BNE EERR |
0411 * LBRA DDUMMY |
0412 *EERR LDB #$80 not ready bit set |
0413 * TSTB |
0414 * ORCC #$01 |
0415 * RTS |
0416 F13F 5F ECHECK CLRB |
0417 F140 39 RTS |
0418 * |
0419 * Write Sector |
0420 * |
0421 F141 34 70 EWRITE PSHS X,Y,U |
0422 F143 17 FF C2 LBSR ESEEK |
0423 F146 CE DE 2A LDU #DTYPTAB ; Point to Drive Type table |
0424 F149 F6 DE 1E LDB DRVNUM ; Get working drive number |
0425 F14C E6 C5 LDB B,U ; Fetch Drive type |
0426 F14E C1 01 CMPB #DTYPRAM ; Is it a RAM Disk ? |
0427 F150 27 07 BEQ EWOK ; Yep, can write to it |
0428 F152 C1 00 CMPB #DTYPROM ; Allow writes to ROM Disk too |
0429 F154 27 03 BEQ EWOK |
0430 F156 16 FF BA LBRA EDUMMY ; Nope report read only |
0431 * |
0432 F159 10 8E DE 46 EWOK LDY #BUFFER |
0433 F15D 5F CLRB |
0434 F15E A6 80 EWLOOP1 LDA 0,X+ move 256 bytes to buffer from Flex RAM |
0435 F160 A7 A0 STA 0,Y+ |
0436 F162 5A DECB |
0437 F163 26 F9 BNE EWLOOP1 |
0438 * |
0439 F165 17 FF 5F LBSR MAPIN |
0440 * |
0441 F168 10 8E DE 46 LDY #BUFFER |
0442 F16C 5F CLRB |
0443 F16D A6 A0 EWLOOP2 LDA 0,Y+ move 256 bytes from buffer to external RAM |
0444 F16F A7 C0 STA 0,U+ |
0445 F171 5A DECB |
0446 F172 26 F9 BNE EWLOOP2 |
0447 * |
0448 F174 17 FF 84 LBSR MAPOUT |
0449 * |
0450 F177 5F CLRB |
0451 F178 35 F0 PULS X,Y,U,PC |
0452 * |
0453 * |
0454 ***************************************************** |
0455 * FlexNet drivers * |
0456 * --------------- * |
0457 * Drivers to support a remote connection via the * |
0458 * serial port using the FlexNet protocol as defined * |
0459 * in FLEXNet_421B * |
0460 ***************************************************** |
0461 * |
0462 * |
0463 * read sector from remote drive |
0464 * |
0465 F17A 34 04 NREAD PSHS B |
0466 F17C 34 02 PSHS A |
0467 F17E 7F DE 21 CLR CHKSUM clear checksum |
0468 F181 7F DE 22 CLR CHKSUM+1 |
0469 * |
0470 F184 86 73 LDA #'s Send read sector command |
0471 F186 BD F2 85 JSR SCHAR |
0472 F189 24 4C BCC NRD_DNR if timeout, then flag drive not ready |
0473 * |
0474 F18B B6 DE 1E LDA DRVNUM send drive |
0475 F18E BD F2 85 JSR SCHAR |
0476 F191 24 44 BCC NRD_DNR |
0477 * |
0478 F193 35 02 PULS A send track |
0479 F195 BD F2 85 JSR SCHAR |
0480 F198 24 3D BCC NRD_DNR |
0481 * |
0482 F19A 35 02 PULS A send sector |
0483 F19C BD F2 85 JSR SCHAR |
0484 F19F 24 36 BCC NRD_DNR |
0485 * |
0486 * transfer 256 bytes |
0487 F1A1 5F CLRB |
0488 F1A2 BD F2 67 NREAD1 JSR RCHAR read byte |
0489 F1A5 24 30 BCC NRD_DNR if timeout, then flag drive not ready |
0490 F1A7 A7 80 STA 0,X+ |
0491 F1A9 BB DE 22 ADDA CHKSUM+1 update checksum |
0492 F1AC B7 DE 22 STA CHKSUM+1 |
0493 F1AF 24 03 BCC NREAD2 |
0494 F1B1 7C DE 21 INC CHKSUM |
0495 F1B4 5A NREAD2 DECB |
0496 F1B5 26 EB BNE NREAD1 |
0497 * |
0498 * compare checksums |
0499 F1B7 BD F2 67 JSR RCHAR get checksum msb |
0500 F1BA 24 1B BCC NRD_DNR |
0501 F1BC 34 02 PSHS A |
0502 F1BE BD F2 67 JSR RCHAR get checksum lsb |
0503 F1C1 24 14 BCC NRD_DNR |
0504 F1C3 1F 89 TFR A,B |
0505 F1C5 35 02 PULS A |
0506 F1C7 10 B3 DE 21 CMPD CHKSUM compare checksums |
0507 F1CB 26 0E BNE NRD_ERR if checksum error, then flag crc read error |
0508 * |
0509 F1CD 86 06 LDA #ACK no checksum error, send ACK char |
0510 F1CF BD F2 85 JSR SCHAR |
0511 F1D2 24 03 BCC NRD_DNR |
0512 F1D4 5F CLRB all OK, flag no error |
0513 F1D5 20 0D BRA NRD_END |
0514 * |
0515 F1D7 C6 10 NRD_DNR LDB #16 flag drive not ready |
0516 F1D9 20 09 BRA NRD_END |
0517 * |
0518 F1DB 86 15 NRD_ERR LDA #NAK send NAK |
0519 F1DD BD F2 85 JSR SCHAR |
0520 F1E0 24 F5 BCC NRD_DNR |
0521 F1E2 C6 09 LDB #09 flag crc read error |
0522 * |
0523 F1E4 F7 DE 21 NRD_END STB CHKSUM used by VERIFY |
0524 F1E7 5D TSTB |
0525 F1E8 39 RTS |
0526 * |
0527 * |
0528 * write sector to remote drive |
0529 * |
0530 F1E9 34 04 NWRITE PSHS B |
0531 F1EB 34 02 PSHS A |
0532 F1ED 7F DE 21 CLR CHKSUM clear checksum |
0533 F1F0 7F DE 22 CLR CHKSUM+1 |
0534 * |
0535 F1F3 86 72 LDA #'r Send write sector command |
0536 F1F5 BD F2 85 JSR SCHAR |
0537 F1F8 24 DD BCC NRD_DNR if timeout, then flag drive not ready |
0538 * |
0539 F1FA B6 DE 1E LDA DRVNUM send drive |
0540 F1FD BD F2 85 JSR SCHAR |
0541 F200 24 D5 BCC NRD_DNR |
0542 * |
0543 F202 35 02 PULS A send track |
0544 F204 BD F2 85 JSR SCHAR |
0545 F207 24 CE BCC NRD_DNR |
0546 * |
0547 F209 35 02 PULS A send sector |
0548 F20B BD F2 85 JSR SCHAR |
0549 F20E 24 C7 BCC NRD_DNR |
0550 * |
0551 * transfer 256 bytes |
0552 F210 5F CLRB |
0553 F211 A6 80 NWRITE1 LDA 0,X+ |
0554 F213 BD F2 85 JSR SCHAR write byte |
0555 F216 24 BF BCC NRD_DNR if timeout, then flag drive not ready |
0556 F218 BB DE 22 ADDA CHKSUM+1 update checksum |
0557 F21B B7 DE 22 STA CHKSUM+1 |
0558 F21E 24 03 BCC NWRITE2 |
0559 F220 7C DE 21 INC CHKSUM |
0560 F223 5A NWRITE2 DECB |
0561 F224 26 EB BNE NWRITE1 |
0562 * |
0563 * compare checksums |
0564 F226 B6 DE 21 LDA CHKSUM |
0565 F229 BD F2 85 JSR SCHAR send checksum msb |
0566 F22C 24 A9 BCC NRD_DNR |
0567 F22E B6 DE 22 LDA CHKSUM+1 |
0568 F231 BD F2 85 JSR SCHAR send checksum lsb |
0569 F234 24 A1 BCC NRD_DNR |
0570 * |
0571 F236 BD F2 67 JSR RCHAR get checksum response |
0572 F239 24 9C BCC NRD_DNR |
0573 F23B 81 06 CMPA #ACK |
0574 F23D 26 03 BNE NWR_ERR if checksum error, then flag write error |
0575 * |
0576 F23F 5F CLRB all OK, flag no error |
0577 F240 20 02 BRA NWR_END |
0578 * |
0579 F242 C6 0A NWR_ERR LDB #10 flag write error |
0580 * |
0581 F244 F7 DE 21 NWR_END STB CHKSUM used by VERIFY |
0582 F247 5D TSTB |
0583 F248 39 RTS |
0584 * |
0585 * |
0586 * verify last sector written to remote drive |
0587 * |
0588 F249 F6 DE 21 NVERIFY LDB CHKSUM test last checksum |
0589 F24C 5D TSTB |
0590 F24D 39 RTS |
0591 * |
0592 * |
0593 * quck check and check drive ready |
0594 * |
0595 F24E 86 51 NCHECK LDA #'Q quick check command |
0596 F250 BD F2 85 JSR SCHAR |
0597 F253 24 0C BCC NCK_ERR if timeout, then flag drive not ready |
0598 |
0599 F255 BD F2 67 JSR RCHAR get response from host |
0600 F258 24 07 BCC NCK_ERR |
0601 F25A 81 06 CMPA #ACK |
0602 F25C 26 03 BNE NCK_ERR if NAK, then flag drive not ready |
0603 |
0604 F25E 5F CLRB all OK, flag drive ready |
0605 F25F 20 04 BRA NCK_END |
0606 * |
0607 F261 C6 10 NCK_ERR LDB #16 report drive not ready |
0608 F263 1A 01 ORCC #$01 check needs carry set as well |
0609 * |
0610 F265 5D NCK_END TSTB |
0611 F266 39 RTS |
0612 * |
0613 * |
0614 * recieve char from remote drive. |
0615 * timeout if no response for approx 1s. |
0616 * Entry: no parameters |
0617 * Exit: (A) = recieved char, (C)=1 if valid char, (C)=0 if timeout. |
0618 * |
0619 F267 34 30 RCHAR PSHS X,Y |
0620 * |
0621 F269 8E 03 E8 LDX #1000 1000x inner loop |
0622 F26C 10 8E 04 E2 RCHAR1 LDY #DELCON delay constant for inner loop (approx 1ms). |
0623 F270 B6 E0 00 RCHAR2 LDA ACIAC1 test for recieved char |
0624 F273 47 ASRA |
0625 F274 25 0A BCS RCHAR3 get character |
0626 F276 31 3F LEAY -1,Y else, continue to count delay |
0627 F278 26 F6 BNE RCHAR2 |
0628 F27A 30 1F LEAX -1,X |
0629 F27C 26 EE BNE RCHAR1 |
0630 F27E 35 B0 PULS X,Y,PC return with error if timed out |
0631 * |
0632 F280 B6 E0 01 RCHAR3 LDA ACIAD1 return data (carry bit still set) |
0633 F283 35 B0 PULS X,Y,PC |
0634 * |
0635 * |
0636 * transmit char to remote drive. |
0637 * timeout if no response for approx 1s. (allows for use of hardware flow control) |
0638 * Entry: (A) = char to transmit |
0639 * Exit: (A) = recieved char, (C)=1 if valid char, (C)=0 if timeout. |
0640 * |
0641 F285 34 30 SCHAR PSHS X,Y |
0642 F287 34 02 PSHS A |
0643 * |
0644 F289 8E 03 E8 LDX #1000 1000x inner loop |
0645 F28C 10 8E 04 E2 SCHAR1 LDY #DELCON delay constant for inner loop (approx 1ms). |
0646 F290 B6 E0 00 SCHAR2 LDA ACIAC1 test for space in transmit FIFO |
0647 F293 47 ASRA |
0648 F294 47 ASRA |
0649 F295 25 0C BCS SCHAR3 send character |
0650 F297 31 3F LEAY -1,Y else, continue to count delay |
0651 F299 26 F5 BNE SCHAR2 |
0652 F29B 30 1F LEAX -1,X |
0653 F29D 26 ED BNE SCHAR1 |
0654 F29F 35 02 PULS A |
0655 F2A1 35 B0 PULS X,Y,PC return with error if timed out |
0656 * |
0657 F2A3 35 02 SCHAR3 PULS A |
0658 F2A5 B7 E0 01 STA ACIAD1 send data (carry bit still set) |
0659 F2A8 35 B0 PULS X,Y,PC |
0660 * |
0661 ** 'UF' Format RAMdisc to FLEX standard. |
0662 * |
0663 F2AA 0A 0D DISFOS FCB $0A,$0D |
0664 F2AC 46 6F 72 6D 61 74 FCC 'Formating RAMdisk... ' |
69 6E 67 20 52 41 |
4D 64 69 73 6B 2E |
2E 2E 20 |
0665 F2C1 04 FCB 4 |
0666 F2C2 0A 0D 04 MESS6 FCB $0A,$0D,4 |
0667 F2C5 52 61 6D 64 69 73 FCC 'Ramdisk not allocated! ' |
6B 20 6E 6F 74 20 |
61 6C 6C 6F 63 61 |
74 65 64 21 20 |
0668 F2DC 04 FCB 4 |
0669 * |
0670 F2DD 8E F2 AA UFSUB LDX #DISFOS |
0671 F2E0 BD F4 6A JSR PDATA1 |
0672 F2E3 8E DE 2A LDX #DTYPTAB search for allocated ramdisk |
0673 F2E6 5F CLRB |
0674 F2E7 A6 85 FMT9 LDA B,X |
0675 F2E9 81 01 CMPA #DTYPRAM driver type 1 is ramdisk |
0676 F2EB 27 0C BEQ FFOUND |
0677 F2ED 5C INCB |
0678 F2EE C1 04 CMPB #4 end of table? then not allocated. |
0679 F2F0 26 F5 BNE FMT9 |
0680 F2F2 8E F2 C2 LDX #MESS6 |
0681 F2F5 BD F4 6A JSR PDATA1 |
0682 F2F8 39 RTS |
0683 * |
0684 F2F9 F7 DE 1E FFOUND STB DRVNUM |
0685 F2FC 8E DE 1B LDX #DRVNUM-3 |
0686 F2FF BD F0 6C JSR DRVSEL |
0687 * |
0688 * set up free chain |
0689 * |
0690 F302 8E DE 46 LDX #BUFFER clear out buffer |
0691 F305 4F CLRA |
0692 F306 5F CLRB |
0693 F307 A7 80 DFL1 STA 0,X+ |
0694 F309 5A DECB |
0695 F30A 26 FB BNE DFL1 |
0696 * |
0697 F30C 7F DE 1F CLR TRACK |
0698 F30F 86 01 LDA #1 |
0699 F311 B7 DE 20 STA SECTOR |
0700 F314 8E DE 46 DFL2 LDX #BUFFER |
0701 F317 B6 DE 1F LDA TRACK |
0702 F31A A7 84 STA 0,X |
0703 F31C B6 DE 20 LDA SECTOR |
0704 F31F 4C INCA |
0705 F320 81 0F CMPA #RMAXSEC+1 last sector on track? |
0706 F322 26 04 BNE DFL3 |
0707 F324 6C 84 INC 0,X |
0708 F326 86 01 LDA #1 |
0709 F328 A7 01 DFL3 STA 1,X |
0710 F32A B6 DE 1F LDA TRACK |
0711 F32D F6 DE 20 LDB SECTOR |
0712 F330 BD F0 5B JSR WRITSC |
0713 F333 7C DE 20 INC SECTOR |
0714 F336 B6 DE 20 LDA SECTOR |
0715 F339 81 0F CMPA #RMAXSEC+1 |
0716 F33B 26 D7 BNE DFL2 |
0717 F33D 86 01 LDA #1 |
0718 F33F B7 DE 20 STA SECTOR |
0719 F342 7C DE 1F INC TRACK |
0720 F345 B6 DE 1F LDA TRACK |
0721 F348 81 40 CMPA #RMAXTRK |
0722 F34A 26 C8 BNE DFL2 |
0723 * break free chain at last track/sector |
0724 F34C 8E DE 46 LDX #BUFFER |
0725 F34F 86 3F LDA #RMAXTRK-1 |
0726 F351 C6 0E LDB #RMAXSEC |
0727 F353 BD F0 57 JSR READSC |
0728 F356 8E DE 46 LDX #BUFFER |
0729 F359 6F 84 CLR 0,X |
0730 F35B 6F 01 CLR 1,X |
0731 F35D 86 3F LDA #RMAXTRK-1 |
0732 F35F C6 0E LDB #RMAXSEC |
0733 F361 BD F0 5B JSR WRITSC |
0734 * set up sector structure, SIR, directory etc |
0735 F364 8E DE 46 LDX #BUFFER |
0736 F367 4F CLRA |
0737 F368 C6 0E LDB #RMAXSEC |
0738 F36A BD F0 57 JSR READSC |
0739 F36D 8E DE 46 LDX #BUFFER |
0740 F370 6F 84 CLR 0,X break end of directory chain |
0741 F372 6F 01 CLR 1,X |
0742 F374 4F CLRA |
0743 F375 C6 0E LDB #RMAXSEC |
0744 F377 BD F0 5B JSR WRITSC |
0745 * |
0746 F37A 8E DE 46 LDX #BUFFER |
0747 F37D 4F CLRA |
0748 F37E C6 03 LDB #3 set up SIR |
0749 F380 BD F0 57 JSR READSC |
0750 F383 8E DE 46 LDX #BUFFER |
0751 F386 6F 84 CLR 0,X break forward link |
0752 F388 6F 01 CLR 1,X |
0753 F38A CC 52 41 LDD #$5241 set volume name (RAMDISK ) |
0754 F38D ED 88 10 STD 16,X |
0755 F390 CC 4D 44 LDD #$4D44 |
0756 F393 ED 88 12 STD 18,X |
0757 F396 CC 49 53 LDD #$4953 |
0758 F399 ED 88 14 STD 20,X |
0759 F39C CC 4B 20 LDD #$4B20 |
0760 F39F ED 88 16 STD 22,X |
0761 F3A2 CC 00 01 LDD #1 volume number |
0762 F3A5 ED 88 1B STD 27,X |
0763 F3A8 CC 01 01 LDD #$0101 first trk/sec 01-01 |
0764 F3AB ED 88 1D STD 29,X |
0765 F3AE 86 3F LDA #RMAXTRK-1 |
0766 F3B0 C6 0E LDB #RMAXSEC |
0767 F3B2 ED 88 1F STD 31,X |
0768 F3B5 ED 88 26 STD 38,X |
0769 F3B8 CC 03 72 LDD #RTOTSEC total DATA sectors (2912-14) |
0770 F3BB ED 88 21 STD 33,X |
0771 * |
0772 F3BE 86 01 LDA #01 month set default creation date (SYS09's birthday!) |
0773 F3C0 A7 88 23 STA 35,X |
0774 F3C3 86 07 LDA #07 day |
0775 F3C5 A7 88 24 STA 36,X |
0776 F3C8 86 07 LDA #07 year |
0777 F3CA A7 88 25 STA 37,X |
0778 * |
0779 F3CD 4F RF3 CLRA |
0780 F3CE C6 03 LDB #3 |
0781 F3D0 BD F0 5B JSR WRITSC |
0782 * |
0783 F3D3 8E DE 46 LDX #BUFFER |
0784 F3D6 4F CLRA |
0785 F3D7 C6 01 LDB #1 |
0786 F3D9 BD F0 57 JSR READSC |
0787 F3DC 8E DE 46 LDX #BUFFER |
0788 F3DF 86 AA LDA #$AA set the init flag |
0789 F3E1 A7 84 STA 0,X |
0790 F3E3 86 55 LDA #$55 |
0791 F3E5 A7 01 STA 1,X |
0792 F3E7 4F CLRA |
0793 F3E8 C6 01 LDB #1 |
0794 F3EA 7E F0 5B JMP WRITSC |
0795 * |
0796 ******************************** |
0797 * System specific Boot * |
0798 * command goes here. * |
0799 ******************************** |
0800 * |
0801 * Boot FLEX from the FPGA's internal pre-loaded scratch RAM |
0802 * |
0803 F3ED 08 08 UBMESS FCB $08, $08 |
0804 F3EF 42 6F 6F 74 69 6E FCC 'Booting internal FLEX....' |
67 20 69 6E 74 65 |
72 6E 61 6C 20 46 |
4C 45 58 2E 2E 2E |
2E |
0805 F408 0D 0A 04 FCB $0D,$0A,$04 |
0806 * |
0807 F40B 8E F3 ED UBSUB LDX #UBMESS |
0808 F40E BD F4 6A JSR PDATA1 |
0809 * |
0810 F411 8E D3 E5 LDX #$D3E5 |
0811 F414 10 8E F4 34 LDY #CONTAB Overlay console driver table |
0812 F418 EC A1 UB1 LDD 0,Y++ |
0813 F41A ED 81 STD 0,X++ |
0814 F41C 8C D3 FD CMPX #$D3FD |
0815 F41F 26 F7 BNE UB1 |
0816 * |
0817 F421 8E DE 00 LDX #$DE00 Overlay disk driver table |
0818 F424 10 8E F4 4C LDY #DISTAB |
0819 F428 EC A1 UB2 LDD 0,Y++ |
0820 F42A ED 81 STD 0,X++ |
0821 F42C 8C DE 1E CMPX #$DE1E |
0822 F42F 26 F7 BNE UB2 |
0823 * |
0824 F431 7E CD 00 UBEND JMP $CD00 |
0825 * |
0826 * FLEX console jump table. |
0827 F434 F4 76 CONTAB FDB INPNE INPUT NO ECHO |
0828 F436 F4 82 FDB DUMMY INTERRUPT HANDLER |
0829 F438 DF C2 FDB MONRAM+$02 SWI VECTOR |
0830 F43A DF C8 FDB MONRAM+$08 IRQ VECTOR |
0831 F43C F4 82 FDB DUMMY TIMER OFF |
0832 F43E F4 82 FDB DUMMY TIMER ON |
0833 F440 F4 82 FDB DUMMY TIMER INITIALIZATION |
0834 F442 F4 7E FDB CONTRL MONITOR |
0835 F444 F4 82 FDB DUMMY TERMINAL INITIALIZATION |
0836 F446 F4 7A FDB STATUS INPUT CHECK |
0837 F448 F4 6E FDB OUTP TERMINAL OUTPUT |
0838 F44A F4 72 FDB INPE TERMINAL INPUT WITH ECHO |
0839 * |
0840 * FLEX disk jump table. |
0841 F44C 7E F0 57 DISTAB JMP READSC |
0842 F44F 7E F0 5B JMP WRITSC |
0843 F452 7E F0 5F JMP BUSY |
0844 F455 7E F0 63 JMP RESTR1 |
0845 F458 7E F0 6C JMP DRVSEL |
0846 F45B 7E F0 9F JMP CHKRDY |
0847 F45E 7E F0 A3 JMP CHKQIK |
0848 F461 7E F0 A7 JMP DINIT |
0849 F464 7E F0 BF JMP DWARM |
0850 F467 7E F0 C3 JMP SEEKTS |
0851 * |
0852 * Monitor jumps |
0853 * |
0854 F46A 6E 9F F8 0C PDATA1 JMP [PDATAV] |
0855 F46E 6E 9F F8 0A OUTP JMP [OUTCHV] |
0856 F472 6E 9F F8 06 INPE JMP [INCHEV] |
0857 F476 6E 9F F8 04 INPNE JMP [INCHV] |
0858 F47A 6E 9F F8 08 STATUS JMP [INCHKV] |
0859 F47E 6E 9F F8 00 CONTRL JMP [MONITV] |
0860 F482 39 DUMMY RTS |
0861 * |
0862 ** 'UL' LOAD ROM DISK VIA SERIAL PORT |
0863 * |
0864 F483 53 65 72 69 61 6C ULMES FCC 'Serial ROM Disk upload ...' |
20 52 4F 4D 20 44 |
69 73 6B 20 75 70 |
6C 6F 61 64 20 2E |
2E 2E |
0865 F49D 0D 0A 04 FCB $0D,$0A,$04 |
0866 F4A0 52 4F 4D 20 44 69 ULMES1 FCC 'ROM Disk Loaded' |
73 6B 20 4C 6F 61 |
64 65 64 |
0867 F4AF 0D 0A 04 FCB $0D,$0A,$04 |
0868 * |
0869 F4B2 8E F4 83 ULSUB LDX #ULMES |
0870 F4B5 BD F4 6A JSR PDATA1 |
0871 * |
0872 F4B8 86 00 LDA #$00 |
0873 F4BA B7 DE 1E STA DRVNUM |
0874 F4BD 4F CLRA TRACK 0 |
0875 F4BE C6 01 LDB #$01 SECTOR 1 |
0876 F4C0 B7 DE 1F ULLOOP0 STA TRACK |
0877 F4C3 F7 DE 20 STB SECTOR` |
0878 F4C6 17 FB FE LBSR MAPIN |
0879 * |
0880 F4C9 5F CLRB xfer 256 bytes at a time. |
0881 F4CA BD F4 ED ULLOOP1 JSR LRBYTE transfer should be hex bytes |
0882 F4CD A7 C0 STA ,U+ |
0883 F4CF 5A DECB |
0884 F4D0 26 F8 BNE ULLOOP1 |
0885 * |
0886 F4D2 17 FC 26 LBSR MAPOUT |
0887 * |
0888 F4D5 B6 DE 1F LDA TRACK |
0889 F4D8 F6 DE 20 LDB SECTOR |
0890 F4DB 5C INCB |
0891 F4DC C1 0F CMPB #EMAXSEC+1 |
0892 F4DE 26 E0 BNE ULLOOP0 |
0893 F4E0 C6 01 LDB #1 |
0894 F4E2 4C INCA |
0895 F4E3 81 30 CMPA #EMAXTRK |
0896 F4E5 26 D9 BNE ULLOOP0 |
0897 * |
0898 F4E7 8E F4 A0 ULEXIT LDX #ULMES1 |
0899 F4EA 7E F4 6A JMP PDATA1 |
0900 * |
0901 * Read a byte from the serial port |
0902 * |
0903 F4ED 34 04 LRBYTE PSHS B |
0904 F4EF 8D 0E BSR LRHEX Get hex digit. |
0905 F4F1 48 ASLA |
0906 F4F2 48 ASLA Shift to msb. |
0907 F4F3 48 ASLA |
0908 F4F4 48 ASLA |
0909 F4F5 1F 89 TFR A,B Save in B. |
0910 F4F7 8D 06 BSR LRHEX Get next digit. |
0911 F4F9 34 04 PSHS B |
0912 F4FB AB E0 ADDA 0,S+ Add together bytes. |
0913 F4FD 35 84 PULS B,PC |
0914 * |
0915 F4FF BD F5 28 LRHEX JSR INTER |
0916 F502 29 FB BVS LRHEX |
0917 F504 80 30 SUBA #$30 Remove ascii bias. |
0918 F506 2B F7 BMI LRHEX |
0919 F508 81 09 CMPA #$09 Number? |
0920 F50A 2F 0A BLE LRHEX1 Yes. |
0921 F50C 81 11 CMPA #$11 Keep testing. |
0922 F50E 2B EF BMI LRHEX |
0923 F510 81 16 CMPA #$16 |
0924 F512 2E EB BGT LRHEX |
0925 F514 80 07 SUBA #$07 |
0926 F516 39 LRHEX1 RTS |
0927 * |
0928 * ACIA INPUT TEST |
0929 * |
0930 F517 B6 E0 00 INTEST LDA ACIAC1 |
0931 F51A 85 01 BITA #$01 |
0932 F51C 39 RTS |
0933 * |
0934 * RESET ACIA |
0935 * |
0936 F51D 86 03 ACIRST LDA #$03 master reset |
0937 F51F B7 E0 00 STA ACIAC1 |
0938 F522 86 11 LDA #$11 |
0939 F524 B7 E0 00 STA ACIAC1 |
0940 F527 39 RTS |
0941 * |
0942 * ACIA INPUT |
0943 * |
0944 F528 86 10 INTER LDA #16 |
0945 F52A B7 DE 27 STA DELCNT+0 |
0946 F52D 7F DE 28 CLR DELCNT+1 |
0947 F530 7F DE 29 CLR DELCNT+2 |
0948 F533 B6 E0 00 INTER0 LDA ACIAC1 |
0949 F536 85 01 BITA #$01 |
0950 F538 26 08 BNE INTER1 |
0951 F53A 85 78 BITA #$78 |
0952 F53C 27 0A BEQ INTER2 |
0953 F53E 8D DD BSR ACIRST |
0954 F540 20 E6 BRA INTER |
0955 * |
0956 F542 B6 E0 01 INTER1 LDA ACIAD1 |
0957 F545 1C 02 ANDCC #VFLAG |
0958 F547 39 RTS |
0959 * |
0960 F548 7A DE 29 INTER2 DEC DELCNT+2 |
0961 F54B 26 E6 BNE INTER0 |
0962 F54D 7A DE 28 DEC DELCNT+1 |
0963 F550 26 E1 BNE INTER0 |
0964 F552 7A DE 27 DEC DELCNT+0 |
0965 F555 26 DC BNE INTER0 |
0966 F557 4F CLRA |
0967 F558 1A 02 ORCC #VFLAG |
0968 F55A 39 RTS |
0969 * |
0970 * ACIA OUTPUT |
0971 * |
0972 F55B 34 02 OUTTER PSHS A |
0973 * |
0974 F55D B6 E0 00 OUTTE1 LDA ACIAC1 |
0975 F560 85 02 BITA #$02 |
0976 F562 26 08 BNE OUTTE2 |
0977 F564 85 78 BITA #$78 |
0978 F566 27 F5 BEQ OUTTE1 |
0979 F568 8D B3 BSR ACIRST |
0980 F56A 20 F1 BRA OUTTE1 |
0981 * |
0982 F56C 35 02 OUTTE2 PULS A |
0983 F56E B7 E0 01 STA ACIAD1 |
0984 F571 39 RTS |
0985 * |
0986 ** 'UX' Xmodem ROM Disk upload |
0987 * |
0988 F572 0D 0A UXMES FCB $0D,$0A |
0989 F574 58 6D 6F 64 65 6D FCC 'Xmodem ROM Disk Upload' |
20 52 4F 4D 20 44 |
69 73 6B 20 55 70 |
6C 6F 61 64 |
0990 F58A 04 FCB 4 |
0991 F58B 0D 0A UXMES1 FCB $0D,$0A |
0992 F58D 55 70 6C 6F 61 64 FCC 'Upload Complete' |
20 43 6F 6D 70 6C |
65 74 65 |
0993 F59C 04 FCB 4 |
0994 F59D 0D 0A UXMES2 FCB $0D,$0A |
0995 F59F 55 70 6C 6F 61 64 FCC 'Upload Error' |
20 45 72 72 6F 72 |
0996 F5AB 04 FCB 4 |
0997 * |
0998 F5AC 8E F5 72 UXSUB LDX #UXMES |
0999 F5AF 17 FE B8 LBSR PDATA1 |
1000 * |
1001 F5B2 86 01 LDA #1 |
1002 F5B4 B7 DE 23 STA BLKNUM |
1003 F5B7 8E F6 1A LDX #XSTSTR |
1004 F5BA BF DE 25 STX XSTATE |
1005 * |
1006 F5BD 86 00 LDA #$00 |
1007 F5BF B7 DE 1E STA DRVNUM |
1008 F5C2 4F CLRA TRACK 0 |
1009 F5C3 C6 01 LDB #$01 SECTOR 1 |
1010 F5C5 B7 DE 1F UXLOOP0 STA TRACK |
1011 F5C8 F7 DE 20 STB SECTOR |
1012 F5CB 17 FA F9 LBSR MAPIN |
1013 * |
1014 F5CE 5F CLRB xfer 256 bytes at a time. |
1015 F5CF 17 00 2B UXLOOP1 LBSR XBYTE transfer should be hex bytes |
1016 F5D2 25 20 BCS UXERR |
1017 F5D4 A7 C0 STA ,U+ |
1018 F5D6 5A DECB |
1019 F5D7 26 F6 BNE UXLOOP1 |
1020 * |
1021 F5D9 17 FB 1F LBSR MAPOUT |
1022 * |
1023 F5DC B6 DE 1F LDA TRACK |
1024 F5DF F6 DE 20 LDB SECTOR |
1025 F5E2 5C INCB |
1026 F5E3 C1 0F CMPB #EMAXSEC+1 |
1027 F5E5 26 DE BNE UXLOOP0 |
1028 F5E7 C6 01 LDB #1 |
1029 F5E9 4C INCA |
1030 F5EA 81 30 CMPA #EMAXTRK |
1031 F5EC 26 D7 BNE UXLOOP0 |
1032 * |
1033 F5EE 8E F5 8B UXEXIT LDX #UXMES1 |
1034 F5F1 7E F4 6A JMP PDATA1 |
1035 * |
1036 F5F4 17 FB 04 UXERR LBSR MAPOUT |
1037 F5F7 8E F5 9D LDX #UXMES2 |
1038 F5FA 16 FE 6D LBRA PDATA1 |
1039 * |
1040 * Get a Byte using XModem protocol |
1041 * Carry clear => no errors |
1042 * Carry set => errors |
1043 * |
1044 F5FD 34 10 XBYTE PSHS X |
1045 F5FF BE DE 25 LDX XSTATE |
1046 * |
1047 F602 17 FF 23 XBYTE0 LBSR INTER |
1048 F605 28 0A BVC XBYTE1 |
1049 F607 86 15 LDA #NAK |
1050 F609 17 FF 4F LBSR OUTTER |
1051 F60C 8E F6 1A LDX #XSTSTR |
1052 F60F 20 F1 BRA XBYTE0 |
1053 * |
1054 F611 AD 84 XBYTE1 JSR ,X |
1055 F613 26 ED BNE XBYTE0 |
1056 F615 BF DE 25 STX XSTATE |
1057 F618 35 90 PULS X,PC |
1058 * |
1059 * START - LOOK FOR SOH (START OF HEADER) = $01 |
1060 * |
1061 F61A 81 01 XSTSTR CMPA #SOH |
1062 F61C 26 06 BNE XSTSTR1 |
1063 F61E 8E F6 3A LDX #XSTBLK |
1064 F621 1C FA ANDCC #$FF-CFLAG-ZFLAG No abort, no valid data (no exit) |
1065 F623 39 RTS |
1066 * |
1067 F624 81 04 XSTSTR1 CMPA #EOT |
1068 F626 26 08 BNE XSTSTR2 |
1069 F628 86 06 LDA #ACK |
1070 F62A 17 FF 2E LBSR OUTTER |
1071 F62D 1A 05 ORCC #CFLAG+ZFLAG Set (c)=1 abort & exit |
1072 F62F 39 RTS |
1073 * |
1074 F630 81 18 XSTSTR2 CMPA #CAN |
1075 F632 26 03 BNE XSTSTR3 |
1076 F634 1A 05 ORCC #CFLAG+ZFLAG Set (c)=1 abort & exit |
1077 F636 39 RTS |
1078 * |
1079 F637 1C FA XSTSTR3 ANDCC #$FF-CFLAG-ZFLAG |
1080 F639 39 RTS |
1081 * |
1082 * Got SOH |
1083 * Now get block number |
1084 * |
1085 F63A B1 DE 23 XSTBLK CMPA BLKNUM |
1086 F63D 26 06 BNE XSTBLKE |
1087 F63F 8E F6 50 LDX #XSTCOM |
1088 F642 1C FA ANDCC #$FF-CFLAG-ZFLAG No abort, No valid data (no exit) |
1089 F644 39 RTS |
1090 * |
1091 * Error in block number |
1092 * |
1093 F645 86 15 XSTBLKE LDA #NAK |
1094 F647 17 FF 11 LBSR OUTTER |
1095 F64A 8E F6 1A LDX #XSTSTR |
1096 F64D 1C FA ANDCC #$FF-CFLAG-ZFLAG No abort, No valid data (no exit) |
1097 F64F 39 RTS |
1098 * |
1099 * Get complement of block number |
1100 * |
1101 F650 43 XSTCOM COMA |
1102 F651 B1 DE 23 CMPA BLKNUM |
1103 F654 26 EF BNE XSTBLKE |
1104 F656 7F DE 21 CLR CHKSUM |
1105 F659 86 80 LDA #128 |
1106 F65B B7 DE 24 STA BYTCNT |
1107 F65E 8E F6 64 LDX #XSTDAT |
1108 F661 1C FA ANDCC #$FF-CFLAG-ZFLAG No abort, No valid data (no exit) |
1109 F663 39 RTS |
1110 * |
1111 * Get data bytes |
1112 * |
1113 F664 34 02 XSTDAT PSHS A |
1114 F666 BB DE 21 ADDA CHKSUM |
1115 F669 B7 DE 21 STA CHKSUM |
1116 F66C 35 02 PULS A |
1117 F66E 7A DE 24 DEC BYTCNT |
1118 F671 26 03 BNE XSTDAT1 |
1119 F673 8E F6 7B LDX #XSTCHK |
1120 F676 1C FE XSTDAT1 ANDCC #$FF-CFLAG No abort |
1121 F678 1A 04 ORCC #ZFLAG Valid data (exit) |
1122 F67A 39 RTS |
1123 * |
1124 * Byte count reached zero |
1125 * Check checksum byte |
1126 * |
1127 F67B B1 DE 21 XSTCHK CMPA CHKSUM |
1128 F67E 26 07 BNE XSTCHK1 retry if wrong checksum |
1129 * |
1130 * Checksum OK ... |
1131 * increment block number |
1132 * and send ACK |
1133 * |
1134 F680 7C DE 23 INC BLKNUM |
1135 F683 86 06 LDA #ACK |
1136 F685 20 0D BRA XSTCHK2 |
1137 * |
1138 * Checksum Error detected ... |
1139 * Reset Sector counter in ACCB to last 128 byte boundary |
1140 * and send NAK |
1141 * |
1142 F687 34 04 XSTCHK1 PSHS B |
1143 F689 1F 30 TFR U,D |
1144 F68B 5A DECB |
1145 F68C C4 80 ANDB #128 |
1146 F68E 1F 03 TFR D,U |
1147 F690 35 04 PULS B |
1148 F692 86 15 LDA #NAK |
1149 F694 17 FE C4 XSTCHK2 LBSR OUTTER |
1150 F697 8E F6 1A LDX #XSTSTR |
1151 F69A 1C FA ANDCC #$FF-CFLAG-ZFLAG No abort, no valid data (no exit) |
1152 F69C 39 RTS |
1153 * |
1154 ** 'UP' Load ROMdisk via config PROM. |
1155 * |
1156 F69D 08 08 UPMES FCB $08,$08 |
1157 F69F 4C 6F 61 64 20 52 FCC 'Load ROM disk from config PROM.' |
4F 4D 20 64 69 73 |
6B 20 66 72 6F 6D |
20 63 6F 6E 66 69 |
67 20 50 52 4F 4D |
2E |
1158 F6BE 04 FCB 4 |
1159 F6BF 46 6F 75 6E 64 20 UPMES1 FCC 'Found SYNC, loading data...' |
53 59 4E 43 2C 20 |
6C 6F 61 64 69 6E |
67 20 64 61 74 61 |
2E 2E 2E |
1160 F6DA 0A 0D 04 FCB $0A,$0D,4 |
1161 F6DD 52 4F 4D 20 44 69 UPMES2 FCC 'ROM Disk Loaded.' |
73 6B 20 4C 6F 61 |
64 65 64 2E |
1162 F6ED 0A 0D 04 FCB $0A,$0D,4 |
1163 F6F0 52 4F 4D 20 44 69 UPMES3 FCC 'ROM Disk Not Found.' |
73 6B 20 4E 6F 74 |
20 46 6F 75 6E 64 |
2E |
1164 F703 0A 0D 04 FCB $0A,$0D,4 |
1165 * |
1166 F706 8E F6 9D UPSUB LDX #UPMES |
1167 F709 BD F4 6A JSR PDATA1 |
1168 * |
1169 F70C 8D 5A BSR UPRESET |
1170 F70E 10 8E 00 20 LDY #$0020 Set up count for 2 MBit |
1171 F712 8E 00 00 LDX #$0000 |
1172 F715 8D 6C UPSUB1 BSR UPBIT Shift in bit |
1173 F717 8D 7C BSR UPSYNC Test for Sync pattern` |
1174 F719 27 15 BEQ UPSUB4 Skip if found |
1175 F71B 30 1F LEAX -1,X Count Down inner loop |
1176 F71D 8C 00 00 CMPX #$0000 |
1177 F720 26 F3 BNE UPSUB1 Branch if inner loop not complete |
1178 F722 31 1F LEAY -1,X Count down outer loop |
1179 F724 10 8C 00 00 CMPY #$0000 |
1180 F728 26 EB BNE UPSUB1 Branch if outer loop not complete |
1181 * |
1182 F72A 8E F6 F0 LDX #UPMES3 2MBits scanned, no synch, report error |
1183 F72D 7E F4 6A JMP PDATA1 |
1184 * |
1185 F730 8E F6 BF UPSUB4 LDX #UPMES1 Sync found, now load disk |
1186 F733 BD F4 6A JSR PDATA1 |
1187 * |
1188 F736 4F CLRA |
1189 F737 B7 DE 1E STA DRVNUM select Drive 0 |
1190 F73A C6 01 LDB #$01 |
1191 F73C B7 DE 1F UPSUB2 STA TRACK track 0 |
1192 F73F F7 DE 20 STB SECTOR sector 1 |
1193 * |
1194 F742 17 F9 82 LBSR MAPIN map in buffer |
1195 F745 5F CLRB 256 byte sector |
1196 F746 8D 67 UPSUB3 BSR UPBYTE read byte from prom |
1197 F748 A7 C0 STA ,U+ Store in buffer |
1198 F74A 5A DECB |
1199 F74B 26 F9 BNE UPSUB3 Loop until sector read` |
1200 F74D 17 F9 AB LBSR MAPOUT map out buffer |
1201 * |
1202 F750 B6 DE 1F LDA TRACK Advance sector |
1203 F753 F6 DE 20 LDB SECTOR |
1204 F756 5C INCB |
1205 F757 C1 0F CMPB #EMAXSEC+1 Wrap on max sector count |
1206 F759 26 E1 BNE UPSUB2 |
1207 F75B C6 01 LDB #1 |
1208 F75D 4C INCA Advance track |
1209 F75E 81 30 CMPA #EMAXTRK |
1210 F760 26 DA BNE UPSUB2 |
1211 * |
1212 F762 8E F6 DD UPEXIT LDX #UPMES2 Load complete, report message |
1213 F765 7E F4 6A JMP PDATA1 |
1214 * |
1215 * Reset Serial PROM |
1216 * |
1217 F768 86 02 UPRESET LDA #PRSTHI Strobe the reset line |
1218 F76A B7 E0 C0 STA PROMREG |
1219 F76D 86 00 LDA #PRSTLO |
1220 F76F B7 E0 C0 STA PROMREG |
1221 F772 8E 00 00 LDX #$0000 Delay a while` |
1222 F775 30 1F UPRST1 LEAX -1,X |
1223 F777 8C 00 00 CMPX #$0000 |
1224 F77A 26 F9 BNE UPRST1 |
1225 F77C BF DF 46 STX SYNCREG+0 Clear Sync Shift Register |
1226 F77F BF DF 48 STX SYNCREG+2 |
1227 F782 39 RTS |
1228 * |
1229 * Input 1 Bit From PROM |
1230 * |
1231 F783 86 01 UPBIT LDA #PCLKHI |
1232 F785 B7 E0 C0 STA PROMREG |
1233 F788 86 00 LDA #PCLKLO |
1234 F78A B7 E0 C0 STA PROMREG |
1235 F78D B6 E0 C0 LDA PROMREG |
1236 F790 44 LSRA |
1237 F791 78 DF 49 ASL SYNCREG+3 |
1238 F794 39 RTS |
1239 * |
1240 * Test for 32 bit Sync Word |
1241 * |
1242 F795 79 DF 48 UPSYNC ROL SYNCREG+2 |
1243 F798 79 DF 47 ROL SYNCREG+1 |
1244 F79B 79 DF 46 ROL SYNCREG+0 |
1245 F79E CC FF 00 LDD #SYNCLO |
1246 F7A1 10 B3 DF 48 CMPD SYNCREG+2 |
1247 F7A5 26 07 BNE UPSYNCX |
1248 F7A7 CC AA 55 LDD #SYNCHI |
1249 F7AA 10 B3 DF 46 CMPD SYNCREG+0 |
1250 F7AE 39 UPSYNCX RTS |
1251 * |
1252 * Input 1 Byte From PROM |
1253 * |
1254 F7AF 34 04 UPBYTE PSHS B |
1255 F7B1 C6 08 LDB #8 |
1256 F7B3 8D CE UPBYTE1 BSR UPBIT |
1257 F7B5 5A DECB |
1258 F7B6 26 FB BNE UPBYTE1 |
1259 F7B8 B6 DF 49 LDA SYNCREG+3 |
1260 F7BB 35 84 PULS B,PC |
1261 * |
1262 ***** NEXTCMD ***** |
1263 * |
1264 F7BD 17 FC B2 NEXTEXT LBSR INPE GET ONE CHAR. FROM TERMINAL |
1265 F7C0 84 7F ANDA #$7F STRIP PARITY FROM CHAR. |
1266 F7C2 1F 89 TFR A,B |
1267 F7C4 86 20 LDA #$20 |
1268 F7C6 17 FC A5 LBSR OUTP PRNT SPACE |
1269 F7C9 C1 60 CMPB #$60 |
1270 F7CB 2F 02 BLE NXTEX0 |
1271 F7CD C0 20 SUBB #$20 |
1272 * |
1273 ***** DO TABLE LOOKUP ***** |
1274 * FOR COMMAND FUNCTIONS |
1275 * |
1276 F7CF 8E F7 E5 NXTEX0 LDX #EXTTAB POINT TO JUMP TABLE |
1277 F7D2 E1 80 NXTEX1 CMPB ,X+ DOES COMMAND MATCH TABLE ENTRY ? |
1278 F7D4 27 0D BEQ JMPEXT BRANCH IF MATCH FOUND |
1279 F7D6 30 02 LEAX 2,X POINT TO NEXT ENTRY IN TABLE |
1280 F7D8 8C F7 F4 CMPX #EXTEND REACHED END OF TABLE YET ? |
1281 F7DB 26 F5 BNE NXTEX1 IF NOT END, CHECK NEXT ENTRY |
1282 F7DD 8E F7 F4 LDX #MSGWHAT POINT TO MSG "WHAT?" |
1283 F7E0 16 FC 87 LBRA PDATA1 PRINT MSG AND RETURN |
1284 F7E3 6E 94 JMPEXT JMP [,X] JUMP TO COMMAND ROUTINE |
1285 * |
1286 * EXTENDED COMMAND JUMP TABLE |
1287 * |
1288 F7E5 EXTTAB EQU * |
1289 F7E5 42 FCC 'B' BOOT FLEX |
1290 F7E6 F4 0B FDB UBSUB |
1291 F7E8 4C FCC 'L' LOAD ROM DISK OVER SERIAL PORT |
1292 F7E9 F4 B2 FDB ULSUB |
1293 F7EB 46 FCC 'F' FORMAT RAM DISK |
1294 F7EC F2 DD FDB UFSUB |
1295 F7EE 50 FCC 'P' LOAD ROM DISK FROM PROM |
1296 F7EF F7 06 FDB UPSUB |
1297 F7F1 58 FCC 'X' XMODEM ROM DISK UPLOAD |
1298 F7F2 F5 AC FDB UXSUB |
1299 * |
1300 F7F4 EXTEND EQU * |
1301 * |
1302 F7F4 57 48 41 54 20 3F MSGWHAT FCC "WHAT ?" |
1303 F7FA 0A 0D 04 FCB $0A,$0D,$04 |
0012 END |
0013 END COLDS |
Program + Init Data = 7039 bytes |
Error count = 0 |
|
|
ACIAC1 E000 |
ACIAD1 E001 |
ACIAS E000 |
ACIRST F51D |
ACK 0006 |
ADDBX CD36 |
ADDBX1 D349 |
BAKREC DCE5 |
BLKNUM DE23 |
BPTBL DFE3 |
BSECHR CC07 |
BSPCHR CC00 |
BUFFER DE46 |
BUSY F05F |
BYTCNT DE24 |
CAN 0018 |
CCSAVE DE22 |
CFLAG 0001 |
CHKQIK F0A3 |
CHKRDY F09F |
CHKSUM DE21 |
CHKVEC DE3C |
CLASS CD21 |
CLASS1 CFED |
CLOSE DAC3 |
CMDFLG CC28 |
CMDTBL CC93 |
COLADX DFFB |
COLD1 CD57 |
COLDDR DE15 |
COLDS CD00 |
CONTAB F434 |
CONTRL F47E |
CPORT DFE0 |
CPYMSG D409 |
CURCHR CC18 |
CURCOL CC29 |
CURFCB D40B |
CURLIN CC1A |
DATERG CC0E |
DATREG FFF0 |
DATSTR CAEC |
DAY CC0F |
DDUMMY F052 |
DECTBL CCA0 |
DELCHR CC01 |
DELCNT DE27 |
DELCON 04E2 |
DELETE DBD6 |
DEPCNT CC03 |
DERMSG CC75 |
DFL1 F307 |
DFL2 F314 |
DFL3 F328 |
DINIT F0A7 |
DINIT1 F0A8 |
DINIT2 F0B6 |
DISFOS F2AA |
DISTAB F44C |
DNRMSG CC82 |
DOCMD1 D329 |
DOCMND CD4B |
DOFFTAB DE2E |
DOFUN1 D4B8 |
DOFUNC D4B0 |
DRIVE DE0C |
DRIVE1 F084 |
DRIVE2 F092 |
DRVNUM DE1E |
DRVRDY DE0F |
DRVSEL F06C |
DRVVEC DE3A |
DTYPFLS 0002 |
DTYPNET 0003 |
DTYPRAM 0001 |
DTYPROM 0000 |
DTYPTAB DE2A |
DUMMY F482 |
DUMRTS D370 |
DWARM F0BF |
ECHECK F13F |
ECHO DFE2 |
EDUMMY F113 |
EFLAG 0080 |
EJTCNT CC08 |
EMAXSEC 000E |
EMAXTRK 0030 |
EOLCHR CC02 |
EOT 0004 |
EREAD F119 |
ERLOOP1 F126 |
ERLOOP2 F135 |
ERRTYP CC20 |
ERRVEC CC2D |
ESCCHR CC0A |
ESCFLG DFFE |
ESCVEC CC16 |
ESEEK F108 |
ETOTSEC 0292 |
EWLOOP1 F15E |
EWLOOP2 F16D |
EWOK F159 |
EWRITE F141 |
EXTEND F7F4 |
EXTTAB F7E5 |
EXTTBL D10B |
FCB C840 |
FCBPTR D409 |
FFLAG 0040 |
FFOUND F2F9 |
FIEFLG CC2F |
FIPADR CC26 |
FIRQ DFC6 |
FMS D406 |
FMS1 D47B |
FMSCLS D403 |
FMSTBL D4CE |
FMT9 F2E7 |
FOPADR CC24 |
GETBYT D56F |
GETCH1 CEFB |
GETCHR CD15 |
GETCMD D20F |
GETFIL CD2D |
GETFL1 D036 |
GETHEX CD42 |
GETHX1 D12F |
GETREC D838 |
HFLAG 0020 |
IC11 FFF0 |
IFLAG 0010 |
IHND D370 |
IHNDVC D3E7 |
INBUF1 CE2B |
INBUFF CD1B |
INCH CD09 |
INCH2 CD0C |
INCHEK D37C |
INCHEV F806 |
INCHKV F808 |
INCHNE D374 |
INCHV F804 |
INDEC CD48 |
INDEC1 D175 |
INEEE D384 |
INIVEC DE40 |
INPE F472 |
INPNE F476 |
INPSWT CC23 |
INTER F528 |
INTER0 F533 |
INTER1 F542 |
INTER2 F548 |
INTEST F517 |
INVEC D3FB |
IRQ DFC8 |
IRQVEC DFC8 |
IRQVVC D3EB |
JMPEXT F7E3 |
LASTRM CC11 |
LINBUF C080 |
LINLEN 0050 |
LINPTR CC14 |
LOAD CD30 |
LOAD1 D1A2 |
LODOFF CC1B |
LRARAM DFD0 |
LRAV F812 |
LRBYTE F4ED |
LRHEX F4FF |
LRHEX1 F516 |
MAPIN F0C7 |
MAPOUT F0FB |
MAPPAG 0000 |
MAPUP CC49 |
MEMEND CC2B |
MESS6 F2C2 |
MONEXT F000 |
MONIO E000 |
MONITR D378 |
MONITV F800 |
MONRAM DFC0 |
MONROM F800 |
MONTH CC0E |
MONVEC D3F3 |
MSGWHAT F7F4 |
NAK 0015 |
NCHECK F24E |
NCK_END F265 |
NCK_ERR F261 |
NEWROW DFFD |
NEXTEXT F7BD |
NFDMSG CC6B |
NFLAG 0008 |
NRD_DNR F1D7 |
NRD_END F1E4 |
NRD_ERR F1DB |
NREAD F17A |
NREAD1 F1A2 |
NREAD2 F1B4 |
NTRMSG CC5C |
NULCNT CC05 |
NUMLIN 0019 |
NVERIFY F249 |
NWRITE F1E9 |
NWRITE1 F211 |
NWRITE2 F223 |
NWR_END F244 |
NWR_ERR F242 |
NXTCH CD27 |
NXTCH1 D00E |
NXTCMV F802 |
NXTDRV DDBD |
NXTEX0 F7CF |
NXTEX1 F7D2 |
NXTSEC DA87 |
OPENRD D986 |
OPENUD DAF9 |
OPENWR D9D9 |
OPNDIR D81D |
OPNREC D810 |
OUTAD1 CFD0 |
OUTADR CD45 |
OUTCH CD0F |
OUTCH2 CD12 |
OUTCHV F80A |
OUTDC1 CF86 |
OUTDEC CD39 |
OUTEEE D380 |
OUTHEX CD3C |
OUTHX1 CFD4 |
OUTHXL CFDC |
OUTHXR CFE0 |
OUTP F46E |
OUTSWT CC22 |
OUTTE1 F55D |
OUTTE2 F56C |
OUTTER F55B |
OUTVEC D3F9 |
PAUSE CC09 |
PCHK CCD8 |
PCLKHI 0001 |
PCLKLO 0000 |
PCRLF CD24 |
PCRLF1 CEB5 |
PCRLFV F80E |
PDATA1 F46A |
PDATAV F80C |
PINIT CCC0 |
PMTSTR CC4E |
POSREC DCFB |
POUT CCE4 |
PROMREG E0C0 |
PRSPL1 C700 |
PRSPL2 C703 |
PRSPL3 C706 |
PRSPL4 C709 |
PRSPL5 C70C |
PRSPL6 C70F |
PRSTHI 0002 |
PRSTLO 0000 |
PRVCHR CC19 |
PS2KBD E020 |
PSTRG1 CE81 |
PSTRGV F810 |
PSTRNG CD1E |
PUTBYT D590 |
PUTCH1 CF41 |
PUTCHR CD18 |
PUTREC D876 |
QCNT C71B |
QRYSTR CC52 |
QUICK DE12 |
QUIVEC DE3E |
RCHAR F267 |
RCHAR1 F26C |
RCHAR2 F270 |
RCHAR3 F280 |
RDSECT D641 |
READ DE00 |
READSC F057 |
REAVEC DE32 |
RENAME DB2C |
RENT1 CDB1 |
RENTER CD06 |
RESTOR DE09 |
RESTR1 F063 |
RESV1 D969 |
RESV2 D699 |
RESV3 DB07 |
REWIND D5E2 |
RF3 F3CD |
RMAXSEC 000E |
RMAXTRK 0040 |
ROWADX DFFC |
RPTER1 D27F |
RPTERR CD3F |
RST1 F068 |
RSTIO1 CDEA |
RSTRIO CD2A |
RSTVEC DE38 |
RTOTSEC 0372 |
SCHAR F285 |
SCHAR1 F28C |
SCHAR2 F290 |
SCHAR3 F2A3 |
SECTOR DE20 |
SEEK DE1B |
SEEKTS F0C3 |
SEEVEC DE44 |
SETEX1 D0EB |
SETEXT CD33 |
SIOFLG CC21 |
SOH 0001 |
STACK DFC0 |
STATUS F47A |
STAVEC D3F7 |
SVCVL DFCE |
SVCVO DFCC |
SWI DFCA |
SWI2 DFC4 |
SWI3 DFC2 |
SWIVEC DFC2 |
SWIVVC D3E9 |
SYNCHI AA55 |
SYNCLO FF00 |
SYNCREG DF46 |
SYSDRV CC0B |
TABCHR CC06 |
TABSRT F002 |
TERINZ D371 |
TERVEC D3F5 |
TINVEC D3F1 |
TMINT D370 |
TMOFF D370 |
TMON D370 |
TOFVEC D3ED |
TONVEC D3EF |
TRACK DE1F |
TRNFLG CC1D |
TRNVEC CC1E |
TTLSTR CADC |
UB1 F418 |
UB2 F428 |
UBEND F431 |
UBMESS F3ED |
UBSUB F40B |
UCTVEC CC12 |
UFSUB F2DD |
ULEXIT F4E7 |
ULLOOP0 F4C0 |
ULLOOP1 F4CA |
ULMES F483 |
ULMES1 F4A0 |
ULSUB F4B2 |
UPBIT F783 |
UPBYTE F7AF |
UPBYTE1 F7B3 |
UPEXIT F762 |
UPMES F69D |
UPMES1 F6BF |
UPMES2 F6DD |
UPMES3 F6F0 |
UPRESET F768 |
UPRST1 F775 |
UPSUB F706 |
UPSUB1 F715 |
UPSUB2 F73C |
UPSUB3 F746 |
UPSUB4 F730 |
UPSYNC F795 |
UPSYNCX F7AE |
UXERR F5F4 |
UXEXIT F5EE |
UXLOOP0 F5C5 |
UXLOOP1 F5CF |
UXMES F572 |
UXMES1 F58B |
UXMES2 F59D |
UXSUB F5AC |
VDU E030 |
VDUATT 0001 |
VDUCHR 0000 |
VDUCOL 0002 |
VDUOFF 0004 |
VDUROW 0003 |
VERFLG D435 |
VERIFY DE06 |
VERVEC DE36 |
VFLAG 0002 |
WARM1 CD67 |
WARMDR DE18 |
WARMS CD03 |
WARVEC DE42 |
WIDCNT CC04 |
WOTMSG CC56 |
WRITE DE03 |
WRITSC F05B |
WRIVEC DE34 |
WRKDRV CC0C |
WRSECT D69F |
XBYTE F5FD |
XBYTE0 F602 |
XBYTE1 F611 |
XSTATE DE25 |
XSTBLK F63A |
XSTBLKE F645 |
XSTCHK F67B |
XSTCHK1 F687 |
XSTCHK2 F694 |
XSTCOM F650 |
XSTDAT F664 |
XSTDAT1 F676 |
XSTSTR F61A |
XSTSTR1 F624 |
XSTSTR2 F630 |
XSTSTR3 F637 |
YEAR CC10 |
Z0000 0000 |
Z0005 0005 |
Z0044 0044 |
Z00A0 00A0 |
ZC07F C07F |
ZC0FF C0FF |
ZC712 C712 |
ZC719 C719 |
ZC71C C71C |
ZC71D C71D |
ZC71E C71E |
ZC71F C71F |
ZC721 C721 |
ZC738 C738 |
ZC73F C73F |
ZC747 C747 |
ZC76D C76D |
ZC777 C777 |
ZC779 C779 |
ZC785 C785 |
ZC791 C791 |
ZC795 C795 |
ZC79B C79B |
ZC7BC C7BC |
ZC7C3 C7C3 |
ZC7C7 C7C7 |
ZC7E3 C7E3 |
ZC7ED C7ED |
ZC7F6 C7F6 |
ZC800 C800 |
ZC810 C810 |
ZC838 C838 |
ZC844 C844 |
ZCA00 CA00 |
ZCA02 CA02 |
ZCA06 CA06 |
ZCA08 CA08 |
ZCA38 CA38 |
ZCA4C CA4C |
ZCA7B CA7B |
ZCA7E CA7E |
ZCA8E CA8E |
ZCAAC CAAC |
ZCAC0 CAC0 |
ZCACB CACB |
ZCAD9 CAD9 |
ZCADB CADB |
ZCC0D CC0D |
ZCC30 CC30 |
ZCC31 CC31 |
ZCC34 CC34 |
ZCC3D CC3D |
ZCC3F CC3F |
ZCC43 CC43 |
ZCC45 CC45 |
ZCC47 CC47 |
ZCC4A CC4A |
ZCC4B CC4B |
ZCC4C CC4C |
ZCC4D CC4D |
ZCCF8 CCF8 |
ZCCFC CCFC |
ZCD4E CD4E |
ZCD5B CD5B |
ZCD9D CD9D |
ZCDB8 CDB8 |
ZCDD3 CDD3 |
ZCDD6 CDD6 |
ZCDD9 CDD9 |
ZCDDE CDDE |
ZCDE1 CDE1 |
ZCDE4 CDE4 |
ZCE05 CE05 |
ZCE06 CE06 |